From 51b248c9453562a663975c0cc11baa8b2c43ef30 Mon Sep 17 00:00:00 2001 From: Sandeep Dasgupta Date: Thu, 31 Jan 2019 14:18:37 -0600 Subject: [PATCH 01/15] Fixed the assembly names of some instructions which produces ambiguous disassembly. There are two variants like this: `VCVTPD2DQ xmm1, xmm2/m128` and `VCVTPD2DQ xmm1, ymm2/m256` In order to distinguish them the correct assembly mneumonic (prescribed by xed and objdump) are VCVTPD2DQX and VCVTPD2DQY resp. --- .../{vpinsrq_xmm_m64_imm8.k => pinsrq_xmm_m64_imm8.k} | 10 +++++----- .../{vcvtpd2dq_xmm_m256.k => vcvtpd2dqy_xmm_m256.k} | 8 ++++---- .../{vcvtpd2ps_xmm_m128.k => vcvtpd2psx_xmm_m128.k} | 10 +++++----- .../{vcvtpd2ps_xmm_m256.k => vcvtpd2psy_xmm_m256.k} | 6 +++--- .../{vcvttpd2dq_xmm_m128.k => vcvttpd2dqx_xmm_m128.k} | 10 +++++----- .../{vcvttpd2dq_xmm_m256.k => vcvttpd2dqy_xmm_m256.k} | 6 +++--- .../{vcvtdq2pd_ymm_ymm.k => vcvtdq2pd_ymm_xmm.k} | 4 ++-- semantics/x86-syntax.k | 8 +++++--- 8 files changed, 32 insertions(+), 30 deletions(-) rename semantics/memoryInstructions/{vpinsrq_xmm_m64_imm8.k => pinsrq_xmm_m64_imm8.k} (70%) rename semantics/memoryInstructions/{vcvtpd2dq_xmm_m256.k => vcvtpd2dqy_xmm_m256.k} (69%) rename semantics/memoryInstructions/{vcvtpd2ps_xmm_m128.k => vcvtpd2psx_xmm_m128.k} (62%) rename semantics/memoryInstructions/{vcvtpd2ps_xmm_m256.k => vcvtpd2psy_xmm_m256.k} (74%) rename semantics/memoryInstructions/{vcvttpd2dq_xmm_m128.k => vcvttpd2dqx_xmm_m128.k} (62%) rename semantics/memoryInstructions/{vcvttpd2dq_xmm_m256.k => vcvttpd2dqy_xmm_m256.k} (75%) rename semantics/registerInstructions/{vcvtdq2pd_ymm_ymm.k => vcvtdq2pd_ymm_xmm.k} (88%) diff --git a/semantics/memoryInstructions/vpinsrq_xmm_m64_imm8.k b/semantics/memoryInstructions/pinsrq_xmm_m64_imm8.k similarity index 70% rename from semantics/memoryInstructions/vpinsrq_xmm_m64_imm8.k rename to semantics/memoryInstructions/pinsrq_xmm_m64_imm8.k index fa6241dd1..edfe63203 100644 --- a/semantics/memoryInstructions/vpinsrq_xmm_m64_imm8.k +++ b/semantics/memoryInstructions/pinsrq_xmm_m64_imm8.k @@ -1,20 +1,20 @@ // Autogenerated using stratification. requires "x86-configuration.k" -module VPINSRQ-XMM-M64-IMM8 +module PINSRQ-XMM-M64-IMM8 imports X86-CONFIGURATION - context execinstr(vpinsrq:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(pinsrq:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpinsrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pinsrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 64) ~> - execinstr (vpinsrq Imm8, memOffset( MemOff), R3:Xmm, .Operands) + execinstr (pinsrq Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vpinsrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (pinsrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... diff --git a/semantics/memoryInstructions/vcvtpd2dq_xmm_m256.k b/semantics/memoryInstructions/vcvtpd2dqy_xmm_m256.k similarity index 69% rename from semantics/memoryInstructions/vcvtpd2dq_xmm_m256.k rename to semantics/memoryInstructions/vcvtpd2dqy_xmm_m256.k index fd4d76fab..0ce3461ab 100644 --- a/semantics/memoryInstructions/vcvtpd2dq_xmm_m256.k +++ b/semantics/memoryInstructions/vcvtpd2dqy_xmm_m256.k @@ -4,17 +4,17 @@ requires "x86-configuration.k" module VCVTPD2DQ-XMM-M256 imports X86-CONFIGURATION - context execinstr(vcvtpd2dq:Opcode HOLE:Mem, R2:Xmm, .Operands) [result(MemOffset)] + context execinstr(vcvtpd2dqy:Opcode HOLE:Mem, R2:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vcvtpd2dq:Opcode memOffset( MemOff:MInt):MemOffset, R2:Xmm, .Operands) => + execinstr (vcvtpd2dqy:Opcode memOffset( MemOff:MInt):MemOffset, R2:Xmm, .Operands) => loadFromMemory( MemOff, 256) ~> - execinstr (vcvtpd2dq memOffset( MemOff), R2:Xmm, .Operands) + execinstr (vcvtpd2dqy memOffset( MemOff), R2:Xmm, .Operands) ... RSMap:Map rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vcvtpd2dq:Opcode memOffset( MemOff:MInt):MemOffset, R2:Xmm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vcvtpd2dqy:Opcode memOffset( MemOff:MInt):MemOffset, R2:Xmm, .Operands) => . ... diff --git a/semantics/memoryInstructions/vcvtpd2ps_xmm_m128.k b/semantics/memoryInstructions/vcvtpd2psx_xmm_m128.k similarity index 62% rename from semantics/memoryInstructions/vcvtpd2ps_xmm_m128.k rename to semantics/memoryInstructions/vcvtpd2psx_xmm_m128.k index a9acbbfe6..ec7077ca7 100644 --- a/semantics/memoryInstructions/vcvtpd2ps_xmm_m128.k +++ b/semantics/memoryInstructions/vcvtpd2psx_xmm_m128.k @@ -1,20 +1,20 @@ // Autogenerated using stratification. requires "x86-configuration.k" -module VCVTPD2PS-XMM-M128 +module VCVTPD2PSX-XMM-M128 imports X86-CONFIGURATION - context execinstr(vcvtpd2ps:Opcode HOLE:Mem, R2:Xmm, .Operands) [result(MemOffset)] + context execinstr(vcvtpd2psx:Opcode HOLE:Mem, R2:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vcvtpd2ps:Opcode memOffset( MemOff:MInt):MemOffset, R2:Xmm, .Operands) => + execinstr (vcvtpd2psx:Opcode memOffset( MemOff:MInt):MemOffset, R2:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> - execinstr (vcvtpd2ps memOffset( MemOff), R2:Xmm, .Operands) + execinstr (vcvtpd2psx memOffset( MemOff), R2:Xmm, .Operands) ... RSMap:Map rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vcvtpd2ps:Opcode memOffset( MemOff:MInt):MemOffset, R2:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vcvtpd2psx:Opcode memOffset( MemOff:MInt):MemOffset, R2:Xmm, .Operands) => . ... diff --git a/semantics/memoryInstructions/vcvtpd2ps_xmm_m256.k b/semantics/memoryInstructions/vcvtpd2psy_xmm_m256.k similarity index 74% rename from semantics/memoryInstructions/vcvtpd2ps_xmm_m256.k rename to semantics/memoryInstructions/vcvtpd2psy_xmm_m256.k index 38fa524ef..e2af0b829 100644 --- a/semantics/memoryInstructions/vcvtpd2ps_xmm_m256.k +++ b/semantics/memoryInstructions/vcvtpd2psy_xmm_m256.k @@ -1,13 +1,13 @@ // Autogenerated using stratification. requires "x86-configuration.k" -module VCVTPD2PS-XMM-M256 +module VCVTPD2PSY-XMM-M256 imports X86-CONFIGURATION - context execinstr(vcvtpd2ps:Opcode HOLE:Mem, R2:Xmm, .Operands) [result(MemOffset)] + context execinstr(vcvtpd2psy:Opcode HOLE:Mem, R2:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vcvtpd2ps:Opcode memOffset( MemOff:MInt):MemOffset, R2:Xmm, .Operands) => + execinstr (vcvtpd2psy:Opcode memOffset( MemOff:MInt):MemOffset, R2:Xmm, .Operands) => . ... diff --git a/semantics/memoryInstructions/vcvttpd2dq_xmm_m128.k b/semantics/memoryInstructions/vcvttpd2dqx_xmm_m128.k similarity index 62% rename from semantics/memoryInstructions/vcvttpd2dq_xmm_m128.k rename to semantics/memoryInstructions/vcvttpd2dqx_xmm_m128.k index 8ed96b62f..9f2627314 100644 --- a/semantics/memoryInstructions/vcvttpd2dq_xmm_m128.k +++ b/semantics/memoryInstructions/vcvttpd2dqx_xmm_m128.k @@ -1,20 +1,20 @@ // Autogenerated using stratification. requires "x86-configuration.k" -module VCVTTPD2DQ-XMM-M128 +module VCVTTPD2DQX-XMM-M128 imports X86-CONFIGURATION - context execinstr(vcvttpd2dq:Opcode HOLE:Mem, R2:Xmm, .Operands) [result(MemOffset)] + context execinstr(vcvttpd2dqx:Opcode HOLE:Mem, R2:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vcvttpd2dq:Opcode memOffset( MemOff:MInt):MemOffset, R2:Xmm, .Operands) => + execinstr (vcvttpd2dqx:Opcode memOffset( MemOff:MInt):MemOffset, R2:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> - execinstr (vcvttpd2dq memOffset( MemOff), R2:Xmm, .Operands) + execinstr (vcvttpd2dqx memOffset( MemOff), R2:Xmm, .Operands) ... RSMap:Map rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vcvttpd2dq:Opcode memOffset( MemOff:MInt):MemOffset, R2:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vcvttpd2dqx:Opcode memOffset( MemOff:MInt):MemOffset, R2:Xmm, .Operands) => . ... diff --git a/semantics/memoryInstructions/vcvttpd2dq_xmm_m256.k b/semantics/memoryInstructions/vcvttpd2dqy_xmm_m256.k similarity index 75% rename from semantics/memoryInstructions/vcvttpd2dq_xmm_m256.k rename to semantics/memoryInstructions/vcvttpd2dqy_xmm_m256.k index 8e49459bc..e72bc31e4 100644 --- a/semantics/memoryInstructions/vcvttpd2dq_xmm_m256.k +++ b/semantics/memoryInstructions/vcvttpd2dqy_xmm_m256.k @@ -1,13 +1,13 @@ // Autogenerated using stratification. requires "x86-configuration.k" -module VCVTTPD2DQ-XMM-M256 +module VCVTTPD2DQY-XMM-M256 imports X86-CONFIGURATION - context execinstr(vcvttpd2dq:Opcode HOLE:Mem, R2:Xmm, .Operands) [result(MemOffset)] + context execinstr(vcvttpd2dqy:Opcode HOLE:Mem, R2:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vcvttpd2dq:Opcode memOffset( MemOff:MInt):MemOffset, R2:Xmm, .Operands) => + execinstr (vcvttpd2dqy:Opcode memOffset( MemOff:MInt):MemOffset, R2:Xmm, .Operands) => . ... diff --git a/semantics/registerInstructions/vcvtdq2pd_ymm_ymm.k b/semantics/registerInstructions/vcvtdq2pd_ymm_xmm.k similarity index 88% rename from semantics/registerInstructions/vcvtdq2pd_ymm_ymm.k rename to semantics/registerInstructions/vcvtdq2pd_ymm_xmm.k index de22e58da..d9c30cc39 100644 --- a/semantics/registerInstructions/vcvtdq2pd_ymm_ymm.k +++ b/semantics/registerInstructions/vcvtdq2pd_ymm_xmm.k @@ -1,11 +1,11 @@ // Autogenerated using stratification. requires "x86-configuration.k" -module VCVTDQ2PD-YMM-YMM +module VCVTDQ2PD-YMM-XMM imports X86-CONFIGURATION rule - execinstr (vcvtdq2pd R1:Ymm, R2:Ymm, .Operands) => . + execinstr (vcvtdq2pd R1:Xmm, R2:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, diff --git a/semantics/x86-syntax.k b/semantics/x86-syntax.k index 15c1f2b96..875f7f5f8 100644 --- a/semantics/x86-syntax.k +++ b/semantics/x86-syntax.k @@ -913,9 +913,10 @@ module X86-SYNTAX | "vcomiss" | "vcvtdq2pd" | "vcvtdq2ps" - | "vcvtpd2dq" + | "vcvtpd2dqy" | "vcvtpd2dqx" - | "vcvtpd2ps" + | "vcvtpd2psx" + | "vcvtpd2psy" | "vcvtph2ps" | "vcvtps2dq" | "vcvtps2pd" @@ -929,7 +930,8 @@ module X86-SYNTAX | "vcvtsi2ss" | "vcvtss2sd" | "vcvtss2si" - | "vcvttpd2dq" + | "vcvttpd2dqx" + | "vcvttpd2dqy" | "vcvttps2dq" | "vcvttsd2si" | "vcvttss2si" From 7532c1d8214a922dcf17bdf0fd6ca312a1e5ca49 Mon Sep 17 00:00:00 2001 From: andrew_miranti Date: Sat, 2 Feb 2019 23:38:35 -0600 Subject: [PATCH 02/15] Fix some missing opcodes --- semantics/x86-syntax.k | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/semantics/x86-syntax.k b/semantics/x86-syntax.k index 875f7f5f8..f0dc3f547 100644 --- a/semantics/x86-syntax.k +++ b/semantics/x86-syntax.k @@ -698,6 +698,7 @@ module X86-SYNTAX | "phsubw" | "pinsrb" | "pinsrd" + | "pinsrq" | "pinsrw" | "pmaddubsw" | "pmaddwd" @@ -913,8 +914,10 @@ module X86-SYNTAX | "vcomiss" | "vcvtdq2pd" | "vcvtdq2ps" - | "vcvtpd2dqy" + | "vcvtpd2dq" | "vcvtpd2dqx" + | "vcvtpd2dqy" + | "vcvtpd2ps" | "vcvtpd2psx" | "vcvtpd2psy" | "vcvtph2ps" @@ -930,6 +933,7 @@ module X86-SYNTAX | "vcvtsi2ss" | "vcvtss2sd" | "vcvtss2si" + | "vcvttpd2dq" | "vcvttpd2dqx" | "vcvttpd2dqy" | "vcvttps2dq" From 956e1dfd9e547f921d99bf00c2375d2ac2a61f5f Mon Sep 17 00:00:00 2001 From: andrew_miranti Date: Mon, 4 Feb 2019 12:15:11 -0600 Subject: [PATCH 03/15] Make opcodes tokens --- semantics/x86-syntax.k | 2370 ++++++++++++++++++++-------------------- 1 file changed, 1185 insertions(+), 1185 deletions(-) diff --git a/semantics/x86-syntax.k b/semantics/x86-syntax.k index f0dc3f547..8540377f9 100644 --- a/semantics/x86-syntax.k +++ b/semantics/x86-syntax.k @@ -83,7 +83,7 @@ module X86-SYNTAX | "stdout" [token] syntax AssemblerDirective ::= ".section" ".rodata" - | ".data" + | ".data" [token] | ".text" | ".bss" | ".file" String @@ -205,1196 +205,1196 @@ module X86-SYNTAX // | Sreg ":" Offset "(" R32 "," R32 ")" // | Sreg ":" Offset "(" R64 "," R64 ")" - syntax Rip ::= "%rip" + syntax Rip ::= "%rip" [token] syntax Scale ::= Int - syntax Rh ::= "%ah" - | "%bh" - | "%ch" - | "%dh" - syntax R8 ::= "%al" - | "%bl" - | "%cl" - | "%dl" - | "%sil" - | "%dil" - | "%spl" - | "%bpl" - | "%r8b" - | "%r9b" - | "%r10b" - | "%r11b" - | "%r12b" - | "%r13b" - | "%r14b" - | "%r15b" - syntax R16 ::= "%ax" - | "%bx" - | "%cx" - | "%dx" - | "%si" - | "%di" - | "%sp" - | "%bp" - | "%r8w" - | "%r9w" - | "%r10w" - | "%r11w" - | "%r12w" - | "%r13w" - | "%r14w" - | "%r15w" - syntax R32 ::= "%eax" - | "%ebx" - | "%ecx" - | "%edx" - | "%esi" - | "%edi" - | "%esp" - | "%ebp" - | "%r8d" - | "%r9d" - | "%r10d" - | "%r11d" - | "%r12d" - | "%r13d" - | "%r14d" - | "%r15d" - syntax R64 ::= "%rax" - | "%rbx" - | "%rcx" - | "%rdx" - | "%rsi" - | "%rdi" - | "%rsp" - | "%rbp" - | "%r8" - | "%r9" - | "%r10" - | "%r11" - | "%r12" - | "%r13" - | "%r14" - | "%r15" + syntax Rh ::= "%ah" [token] + | "%bh" [token] + | "%ch" [token] + | "%dh" [token] + syntax R8 ::= "%al" [token] + | "%bl" [token] + | "%cl" [token] + | "%dl" [token] + | "%sil" [token] + | "%dil" [token] + | "%spl" [token] + | "%bpl" [token] + | "%r8b" [token] + | "%r9b" [token] + | "%r10b" [token] + | "%r11b" [token] + | "%r12b" [token] + | "%r13b" [token] + | "%r14b" [token] + | "%r15b" [token] + syntax R16 ::= "%ax" [token] + | "%bx" [token] + | "%cx" [token] + | "%dx" [token] + | "%si" [token] + | "%di" [token] + | "%sp" [token] + | "%bp" [token] + | "%r8w" [token] + | "%r9w" [token] + | "%r10w" [token] + | "%r11w" [token] + | "%r12w" [token] + | "%r13w" [token] + | "%r14w" [token] + | "%r15w" [token] + syntax R32 ::= "%eax" [token] + | "%ebx" [token] + | "%ecx" [token] + | "%edx" [token] + | "%esi" [token] + | "%edi" [token] + | "%esp" [token] + | "%ebp" [token] + | "%r8d" [token] + | "%r9d" [token] + | "%r10d" [token] + | "%r11d" [token] + | "%r12d" [token] + | "%r13d" [token] + | "%r14d" [token] + | "%r15d" [token] + syntax R64 ::= "%rax" [token] + | "%rbx" [token] + | "%rcx" [token] + | "%rdx" [token] + | "%rsi" [token] + | "%rdi" [token] + | "%rsp" [token] + | "%rbp" [token] + | "%r8" [token] + | "%r9" [token] + | "%r10" [token] + | "%r11" [token] + | "%r12" [token] + | "%r13" [token] + | "%r14" [token] + | "%r15" [token] - syntax Sreg ::= "%es" - | "%cs" - | "%ss" - | "%ds" - | "%fs" - | "%gs" + syntax Sreg ::= "%es" [token] + | "%cs" [token] + | "%ss" [token] + | "%ds" [token] + | "%fs" [token] + | "%gs" [token] - syntax St ::= "%st" - | "%st(0)" - | "%st(1)" - | "%st(2)" - | "%st(3)" - | "%st(4)" - | "%st(5)" - | "%st(6)" - | "%st(7)" + syntax St ::= "%st" [token] + | "%st(0)" [token] + | "%st(1)" [token] + | "%st(2)" [token] + | "%st(3)" [token] + | "%st(4)" [token] + | "%st(5)" [token] + | "%st(6)" [token] + | "%st(7)" [token] - syntax Xmm ::= "%xmm0" - | "%xmm1" - | "%xmm2" - | "%xmm3" - | "%xmm4" - | "%xmm5" - | "%xmm6" - | "%xmm7" - | "%xmm8" - | "%xmm9" - | "%xmm10" - | "%xmm11" - | "%xmm12" - | "%xmm13" - | "%xmm14" - | "%xmm15" + syntax Xmm ::= "%xmm0" [token] + | "%xmm1" [token] + | "%xmm2" [token] + | "%xmm3" [token] + | "%xmm4" [token] + | "%xmm5" [token] + | "%xmm6" [token] + | "%xmm7" [token] + | "%xmm8" [token] + | "%xmm9" [token] + | "%xmm10" [token] + | "%xmm11" [token] + | "%xmm12" [token] + | "%xmm13" [token] + | "%xmm14" [token] + | "%xmm15" [token] - syntax Mm ::= "%mmx0" - | "%mmx1" - | "%mmx2" - | "%mmx3" - | "%mmx4" - | "%mmx5" - | "%mmx6" - | "%mmx7" + syntax Mm ::= "%mmx0" [token] + | "%mmx1" [token] + | "%mmx2" [token] + | "%mmx3" [token] + | "%mmx4" [token] + | "%mmx5" [token] + | "%mmx6" [token] + | "%mmx7" [token] - syntax Ymm ::= "%ymm0" - | "%ymm1" - | "%ymm2" - | "%ymm3" - | "%ymm4" - | "%ymm5" - | "%ymm6" - | "%ymm7" - | "%ymm8" - | "%ymm9" - | "%ymm10" - | "%ymm11" - | "%ymm12" - | "%ymm13" - | "%ymm14" - | "%ymm15" + syntax Ymm ::= "%ymm0" [token] + | "%ymm1" [token] + | "%ymm2" [token] + | "%ymm3" [token] + | "%ymm4" [token] + | "%ymm5" [token] + | "%ymm6" [token] + | "%ymm7" [token] + | "%ymm8" [token] + | "%ymm9" [token] + | "%ymm10" [token] + | "%ymm11" [token] + | "%ymm12" [token] + | "%ymm13" [token] + | "%ymm14" [token] + | "%ymm15" [token] - syntax Opcode ::= "adcb" - | "adcl" - | "adcq" - | "adcw" - | "addb" - | "addl" - | "addpd" - | "addps" - | "addq" - | "addsd" - | "addss" - | "addsubpd" - | "addsubps" - | "addw" - | "andb" - | "andl" - | "andnl" - | "andnpd" - | "andnps" - | "andnq" - | "andpd" - | "andps" - | "andq" - | "andw" - | "bextrl" - | "bextrq" - | "blendpd" - | "blendps" - | "blendvpd" - | "blendvps" - | "blsil" - | "blsiq" - | "blsmskl" - | "blsmskq" - | "blsrl" - | "blsrq" - | "bswap" - | "btcl" - | "btcq" - | "btcw" - | "btl" - | "btq" - | "btrl" - | "btrq" - | "btrw" - | "btsl" - | "btsq" - | "btsw" - | "btw" - | "bzhil" - | "bzhiq" - | "cbtw" - | "clc" - | "cltd" - | "cltq" - | "cmc" - | "cmovael" - | "cmovaeq" - | "cmovaew" - | "cmoval" - | "cmovaq" - | "cmovaw" - | "cmovbel" - | "cmovbeq" - | "cmovbew" - | "cmovbe" - | "cmovbl" - | "cmovbq" - | "cmovbw" - | "cmovcl" - | "cmovcq" - | "cmovcw" - | "cmovc" - | "cmovel" - | "cmoveq" - | "cmovew" - | "cmovgel" - | "cmovgeq" - | "cmovgew" - | "cmovge" - | "cmovgl" - | "cmovgq" - | "cmovgw" - | "cmovlel" - | "cmovleq" - | "cmovlew" - | "cmovll" - | "cmovlq" - | "cmovlw" - | "cmovnael" - | "cmovnaeq" - | "cmovnaew" - | "cmovnal" - | "cmovnaq" - | "cmovnaw" - | "cmovnbel" - | "cmovnbeq" - | "cmovnbew" - | "cmovnbl" - | "cmovnbq" - | "cmovnbw" - | "cmovncl" - | "cmovncq" - | "cmovncw" - | "cmovnel" - | "cmovne" - | "cmovneq" - | "cmovnew" - | "cmovngel" - | "cmovngeq" - | "cmovngew" - | "cmovngl" - | "cmovngq" - | "cmovngw" - | "cmovnlel" - | "cmovnleq" - | "cmovnlew" - | "cmovnll" - | "cmovnlq" - | "cmovnlw" - | "cmovnol" - | "cmovnoq" - | "cmovnow" - | "cmovnpl" - | "cmovnpq" - | "cmovnpw" - | "cmovnsl" - | "cmovnsq" - | "cmovnsw" - | "cmovnzl" - | "cmovnzq" - | "cmovnzw" - | "cmovol" - | "cmovoq" - | "cmovow" - | "cmovpel" - | "cmovpeq" - | "cmovpew" - | "cmovpl" - | "cmovpol" - | "cmovpoq" - | "cmovpow" - | "cmovpq" - | "cmovpw" - | "cmovsl" - | "cmovsq" - | "cmovsw" - | "cmovzl" - | "cmovzq" - | "cmovzw" - | "cmpb" - | "cmpl" - | "cmppd" - | "cmpps" - | "cmpq" - | "cmpsd" - | "cmpss" - | "cmpw" - | "cmpxchg16b" - | "cmpxchg8b" - | "cmpxchgb" - | "cmpxchgl" - | "cmpxchgq" - | "cmpxchgw" - | "comisd" - | "comiss" - | "cqto" - | "cvtdq2pd" - | "cvtdq2ps" - | "cvtpd2dq" - | "cvtpd2ps" - | "cvtpi2pd" - | "cvtpi2ps" - | "cvtps2dq" - | "cvtps2pd" - | "cvtsd2si" - | "cvtsd2ss" - | "cvtsi2sdl" - | "cvtsi2sdq" - | "cvtsi2ssl" - | "cvtsi2ssq" - | "cvtss2sd" - | "cvtss2si" - | "cvttpd2dq" - | "cvttps2dq" - | "cvttsd2si" - | "cvttss2si" - | "cwtd" - | "cwtl" - | "decb" - | "decl" - | "decq" - | "decw" - | "divb" - | "divl" - | "divpd" - | "divps" - | "divq" - | "divsd" - | "divss" - | "divw" - | "dppd" - | "dpps" - | "extractps" - | "haddpd" - | "haddps" - | "hsubpd" - | "hsubps" - | "idivb" - | "idivl" - | "idivq" - | "idivw" - | "imulb" - | "imull" - | "imulq" - | "imulw" - | "incb" - | "incl" - | "incq" - | "incw" - | "insertps" - | "lddqu" - | "leal" - | "leaq" - | "leaw" - | "lzcntl" - | "lzcntq" - | "lzcntw" - | "maxpd" - | "maxps" - | "maxsd" - | "maxss" - | "minpd" - | "minps" - | "minsd" - | "minss" - | "movapd" - | "movaps" - | "movb" - | "movbel" - | "movbeq" - | "movbew" - | "movbe" - | "movd" - | "movddup" - | "movdqa" - | "movdqu" - | "movhlps" - | "movhpd" - | "movhps" - | "movl" - | "movlhps" - | "movlpd" - | "movlps" - | "movmskpd" - | "movmskps" - | "movntdq" - | "movntdqa" - | "movnti" - | "movntpd" - | "movntps" - | "movq" - | "movsbl" - | "movsbq" - | "movsbw" - | "movsd" - | "movshdup" - | "movsldup" - | "movslq" - | "movss" - | "movswl" - | "movswq" - | "movupd" - | "movups" - | "movw" - | "movzbl" - | "movzbq" - | "movzbw" - | "movzwl" - | "movzwq" - | "mpsadbw" - | "mulb" - | "mull" - | "mulpd" - | "mulps" - | "mulq" - | "mulsd" - | "mulss" - | "mulw" - | "mulxl" - | "mulxq" - | "mulx" - | "negb" - | "negl" - | "negq" - | "negw" - | "nop" - | "nopl" - | "nopw" - | "notb" - | "notl" - | "notq" - | "notw" - | "orb" - | "orl" - | "orpd" - | "orps" - | "orq" - | "orw" - | "pabsb" - | "pabsd" - | "pabsw" - | "packssdw" - | "packsswb" - | "packusdw" - | "packuswb" - | "paddb" - | "paddd" - | "paddq" - | "paddsb" - | "paddsw" - | "paddusb" - | "paddusw" - | "paddw" - | "palignr" - | "pand" - | "pandn" - | "pavgb" - | "pavgw" - | "pblendvb" - | "pblendw" - | "pclmulqdq" - | "pcmpeqb" - | "pcmpeqd" - | "pcmpeqq" - | "pcmpeqw" - | "pcmpestri" - | "pcmpestrm" - | "pcmpgtb" - | "pcmpgtd" - | "pcmpgtq" - | "pcmpgtw" - | "pcmpistri" - | "pcmpistrm" - | "pdepl" - | "pdepq" - | "pextl" - | "pextq" - | "pextrb" - | "pextrd" - | "pextrq" - | "pextrw" - | "phaddd" - | "phaddsw" - | "phaddw" - | "phminposuw" - | "phsubd" - | "phsubsw" - | "phsubw" - | "pinsrb" - | "pinsrd" - | "pinsrq" - | "pinsrw" - | "pmaddubsw" - | "pmaddwd" - | "pmaxsb" - | "pmaxsd" - | "pmaxsw" - | "pmaxub" - | "pmaxud" - | "pmaxuw" - | "pminsb" - | "pminsd" - | "pminsw" - | "pminub" - | "pminud" - | "pminuw" - | "pmovmskb" - | "pmovsxbd" - | "pmovsxbq" - | "pmovsxbw" - | "pmovsxdq" - | "pmovsxwd" - | "pmovsxwq" - | "pmovzxbd" - | "pmovzxbq" - | "pmovzxbw" - | "pmovzxdq" - | "pmovzxwd" - | "pmovzxwq" - | "pmuldq" - | "pmulhrsw" - | "pmulhuw" - | "pmulhw" - | "pmulld" - | "pmullw" - | "pmuludq" - | "popcntl" - | "popcntq" - | "popcntw" - | "popq" - | "popw" - | "por" - | "psadbw" - | "pshufb" - | "pshufd" - | "pshufhw" - | "pshuflw" - | "psignb" - | "psignd" - | "psignw" - | "pslld" - | "pslldq" - | "psllq" - | "psllw" - | "psrad" - | "psraw" - | "psrld" - | "psrldq" - | "psrlq" - | "psrlw" - | "psubb" - | "psubd" - | "psubq" - | "psubsb" - | "psubsw" - | "psubusb" - | "psubusw" - | "psubw" - | "ptest" - | "punpckhbw" - | "punpckhdq" - | "punpckhqdq" - | "punpckhwd" - | "punpcklbw" - | "punpckldq" - | "punpcklqdq" - | "punpcklwd" - | "pushq" - | "pushw" - | "pxor" - | "rclb" - | "rcll" - | "rclq" - | "rclw" - | "rcpps" - | "rcpss" - | "rcrb" - | "rcrl" - | "rcrq" - | "rcrw" - | "rolb" - | "roll" - | "rolq" - | "rolw" - | "rorb" - | "rorl" - | "rorq" - | "rorw" - | "rorxl" - | "rorxq" - | "rorx" - | "roundpd" - | "roundps" - | "roundsd" - | "roundss" - | "rsqrtps" - | "rsqrtss" - | "salb" - | "sall" - | "salq" - | "salw" - | "sarb" - | "sarl" - | "sarq" - | "sarw" - | "sarxl" - | "sarxq" - | "sbbb" - | "sbbl" - | "sbbq" - | "sbbw" - | "seta" - | "setae" - | "setb" - | "setbe" - | "setc" - | "sete" - | "setg" - | "setge" - | "setl" - | "setle" - | "setna" - | "setnae" - | "setnb" - | "setnbe" - | "setnc" - | "setne" - | "setng" - | "setnge" - | "setnl" - | "setnle" - | "setno" - | "setnp" - | "setns" - | "setnz" - | "seto" - | "setp" - | "setpe" - | "setpo" - | "sets" - | "setz" - | "shlb" - | "shll" - | "shlq" - | "shlw" - | "shlxl" - | "shlxq" - | "shrb" - | "shrl" - | "shrq" - | "shrw" - | "shrxl" - | "shrxq" - | "shufpd" - | "shufps" - | "sqrtpd" - | "sqrtps" - | "sqrtsd" - | "sqrtss" - | "stc" - | "subb" - | "subl" - | "subpd" - | "subps" - | "subq" - | "subsd" - | "subss" - | "subw" - | "testb" - | "testl" - | "testq" - | "testw" - | "tzcntl" - | "tzcntq" - | "tzcntw" - | "ucomisd" - | "ucomiss" - | "unpckhpd" - | "unpckhps" - | "unpcklpd" - | "unpcklps" - | "vaddpd" - | "vaddps" - | "vaddsd" - | "vaddss" - | "vaddsubpd" - | "vaddsubps" - | "vandnpd" - | "vandnps" - | "vandpd" - | "vandps" - | "vblendpd" - | "vblendps" - | "vblendvpd" - | "vblendvps" - | "vbroadcastf128" - | "vbroadcastsd" - | "vbroadcastss" - | "vcmppd" - | "vcmpps" - | "vcmpsd" - | "vcmpss" - | "vcomisd" - | "vcomiss" - | "vcvtdq2pd" - | "vcvtdq2ps" - | "vcvtpd2dq" - | "vcvtpd2dqx" - | "vcvtpd2dqy" - | "vcvtpd2ps" - | "vcvtpd2psx" - | "vcvtpd2psy" - | "vcvtph2ps" - | "vcvtps2dq" - | "vcvtps2pd" - | "vcvtps2ph" - | "vcvtsd2si" - | "vcvtsd2ss" - | "vcvtsi2sdl" - | "vcvtsi2sdq" - | "vcvtsi2ssl" - | "vcvtsi2ssq" - | "vcvtsi2ss" - | "vcvtss2sd" - | "vcvtss2si" - | "vcvttpd2dq" - | "vcvttpd2dqx" - | "vcvttpd2dqy" - | "vcvttps2dq" - | "vcvttsd2si" - | "vcvttss2si" - | "vdivpd" - | "vdivps" - | "vdivsd" - | "vdivss" - | "vdppd" - | "vdpps" - | "vextractf128" - | "vextracti128" - | "vextractps" - | "vfmadd132pd" - | "vfmadd132ps" - | "vfmadd132sd" - | "vfmadd132ss" - | "vfmadd213pd" - | "vfmadd213ps" - | "vfmadd213sd" - | "vfmadd213ss" - | "vfmadd231pd" - | "vfmadd231ps" - | "vfmadd231sd" - | "vfmadd231ss" - | "vfmaddsub132pd" - | "vfmaddsub132ps" - | "vfmaddsub213pd" - | "vfmaddsub213ps" - | "vfmaddsub231pd" - | "vfmaddsub231ps" - | "vfmsub132pd" - | "vfmsub132ps" - | "vfmsub132sd" - | "vfmsub132ss" - | "vfmsub213pd" - | "vfmsub213ps" - | "vfmsub213sd" - | "vfmsub213ss" - | "vfmsub231pd" - | "vfmsub231ps" - | "vfmsub231sd" - | "vfmsub231ss" - | "vfmsubadd132pd" - | "vfmsubadd132ps" - | "vfmsubadd213pd" - | "vfmsubadd213ps" - | "vfmsubadd231pd" - | "vfmsubadd231ps" - | "vfnmadd132pd" - | "vfnmadd132ps" - | "vfnmadd132sd" - | "vfnmadd132ss" - | "vfnmadd213pd" - | "vfnmadd213ps" - | "vfnmadd213sd" - | "vfnmadd213ss" - | "vfnmadd231pd" - | "vfnmadd231ps" - | "vfnmadd231sd" - | "vfnmadd231ss" - | "vfnmsub132pd" - | "vfnmsub132ps" - | "vfnmsub132sd" - | "vfnmsub132ss" - | "vfnmsub213pd" - | "vfnmsub213ps" - | "vfnmsub213sd" - | "vfnmsub213ss" - | "vfnmsub231pd" - | "vfnmsub231ps" - | "vfnmsub231sd" - | "vfnmsub231ss" - | "vhaddpd" - | "vhaddps" - | "vhsubpd" - | "vhsubps" - | "vinsertf128" - | "vinserti128" - | "vinsertps" - | "vlddqu" - | "vmaskmovpd" - | "vmaskmovps" - | "vmaxpd" - | "vmaxps" - | "vmaxsd" - | "vmaxss" - | "vminpd" - | "vminps" - | "vminsd" - | "vminss" - | "vmovapd" - | "vmovaps" - | "vmovd" - | "vmovddup" - | "vmovdqa" - | "vmovdqu" - | "vmovhlps" - | "vmovhpd" - | "vmovhps" - | "vmovlhps" - | "vmovlpd" - | "vmovlps" - | "vmovmskpd" - | "vmovmskps" - | "vmovntdqa" - | "vmovntdq" - | "vmovntpd" - | "vmovntps" - | "vmovq" - | "vmovsd" - | "vmovshdup" - | "vmovsldup" - | "vmovss" - | "vmovupd" - | "vmovups" - | "vmpsadbw" - | "vmulpd" - | "vmulps" - | "vmulsd" - | "vmulss" - | "vorpd" - | "vorps" - | "vpabsb" - | "vpabsd" - | "vpabsw" - | "vpackssdw" - | "vpacksswb" - | "vpackusdw" - | "vpackuswb" - | "vpaddb" - | "vpaddd" - | "vpaddq" - | "vpaddsb" - | "vpaddsw" - | "vpaddusb" - | "vpaddusw" - | "vpaddw" - | "vpalignr" - | "vpand" - | "vpandn" - | "vpavgb" - | "vpavgw" - | "vpblendd" - | "vpblendvb" - | "vpblendw" - | "vpbroadcastb" - | "vpbroadcastd" - | "vbroadcasti128" - | "vpbroadcastq" - | "vpbroadcastw" - | "vpclmulqdq" - | "vpcmpeqb" - | "vpcmpeqd" - | "vpcmpeqq" - | "vpcmpeqw" - | "vpcmpestri" - | "vpcmpestrm" - | "vpcmpgtb" - | "vpcmpgtd" - | "vpcmpgtq" - | "vpcmpgtw" - | "vpcmpistri" - | "vpcmpistrm" - | "vperm2f128" - | "vperm2i128" - | "vpermd" - | "vpermilpd" - | "vpermilps" - | "vpermpd" - | "vpermps" - | "vpermq" - | "vpextrb" - | "vpextrd" - | "vpextrq" - | "vpextrw" - | "vphaddd" - | "vphaddsw" - | "vphaddw" - | "vphminposuw" - | "vphsubd" - | "vphsubsw" - | "vphsubw" - | "vpinsrb" - | "vpinsrd" - | "vpinsrq" - | "vpinsrw" - | "vpmaddubsw" - | "vpmaddwd" - | "vpmaskmovd" - | "vpmaskmovq" - | "vpmaxsb" - | "vpmaxsd" - | "vpmaxsw" - | "vpmaxub" - | "vpmaxud" - | "vpmaxuw" - | "vpminsb" - | "vpminsd" - | "vpminsw" - | "vpminub" - | "vpminud" - | "vpminuw" - | "vpmovmskb" - | "vpmovsxbd" - | "vpmovsxbq" - | "vpmovsxbw" - | "vpmovsxdq" - | "vpmovsxwd" - | "vpmovsxwq" - | "vpmovzxbd" - | "vpmovzxbq" - | "vpmovzxbw" - | "vpmovzxdq" - | "vpmovzxwd" - | "vpmovzxwq" - | "vpmuldq" - | "vpmulhrsw" - | "vpmulhuw" - | "vpmulhw" - | "vpmulld" - | "vpmullw" - | "vpmuludq" - | "vpor" - | "vpsadbw" - | "vpshufb" - | "vpshufd" - | "vpshufhw" - | "vpshuflw" - | "vpsignb" - | "vpsignd" - | "vpsignw" - | "vpslld" - | "vpslldq" - | "vpsllq" - | "vpsllvd" - | "vpsllvq" - | "vpsllw" - | "vpsrad" - | "vpsravd" - | "vpsraw" - | "vpsrld" - | "vpsrldq" - | "vpsrlq" - | "vpsrlvd" - | "vpsrlvq" - | "vpsrlw" - | "vpsubb" - | "vpsubd" - | "vpsubq" - | "vpsubsb" - | "vpsubsw" - | "vpsubusb" - | "vpsubusw" - | "vpsubw" - | "vptest" - | "vpunpckhbw" - | "vpunpckhdq" - | "vpunpckhqdq" - | "vpunpckhwd" - | "vpunpcklbw" - | "vpunpckldq" - | "vpunpcklqdq" - | "vpunpcklwd" - | "vpvmpgtq" - | "vpxor" - | "vrcpps" - | "vrcpss" - | "vroundpd" - | "vroundps" - | "vroundsd" - | "vroundss" - | "vrsqrtps" - | "vrsqrtss" - | "vshufpd" - | "vshufps" - | "vsqrtpd" - | "vsqrtps" - | "vsqrtsd" - | "vsqrtss" - | "vsubpd" - | "vsubps" - | "vsubsd" - | "vsubss" - | "vtestpd" - | "vtestps" - | "vucomisd" - | "vucomiss" - | "vunpckhpd" - | "vunpckhps" - | "vunpcklpd" - | "vunpcklps" - | "vxorpd" - | "vxorps" - | "vzeroall" - | "vzeroupper" - | "xaddb" - | "xaddl" - | "xaddq" - | "xaddw" - | "xchgb" - | "xchgl" - | "xchgq" - | "xchgw" - | "xorb" - | "xorl" - | "xorpd" - | "xorps" - | "xorq" - | "xorw" - | "call" - | "ret" - | "leave" - | "jmp" - | "je" - | "jne" - | "jns" - | "js" - | "jnc" - | "jb" - | "jae" - | "jnb" - | "jle" - | "jg" - | "jge" - | "jl" - | "jbe" - | "ja" - | "jp" - | "jc" - | "jecxz" - | "jna" - | "jnae" - | "jnbe" - | "jng" - | "jnge" - | "jnl" - | "jnle" - | "jno" - | "jnp" - | "jnz" - | "jo" - | "jpe" - | "jpo" - | "jrcxz" - | "jz" - | "movabsq" - | "vcvtsi2sd" - | "sarx" - | "shlx" - | "shrx" - | "cmovs" - | "cmovns" - | "cmovge" - | "cmove" - | "cmovle" - | "cmovbe" - | "ud2" - | "bsfl" - | "bsfq" - | "bsfw" - | "bsrw" - | "bsrl" - | "bsrq" - | "shldq" - | "shldl" - | "shldw" - | "shrdq" - | "shrdl" - | "shrdw" - | "pcmpestri" - | "pcmpestrm" - | "pcmpistri" - | "pcmpistrm" - | "loop" - | "loope" - | "loopne" - | "loopz" - | "loopnz" - | "scasb" - | "repz scasb" - | "repe scasb" - | "repnz scasb" - | "repne scasb" - | "scasw" - | "repz scasw" - | "repe scasw" - | "repnz scasw" - | "repne scasw" - | "scasl" - | "repz scasl" - | "repe scasl" - | "repnz scasl" - | "repne scasl" - | "scasq" - | "repz scasq" - | "repe scasq" - | "repnz scasq" - | "repne scasq" - | "std" - | "cld" - | "stosb" - | "rep stosb" - | "stosw" - | "rep stosw" - | "rep stosl" - | "stosl" - | "stosq" - | "rep stosq" - | "cmpsb" - | "repz cmpsb" - | "repe cmpsb" - | "repnz cmpsb" - | "repne cmpsb" - | "cmpsw" - | "repz cmpsw" - | "repe cmpsw" - | "repnz cmpsw" - | "repne cmpsw" - | "cmpsl" - | "repz cmpsl" - | "repe cmpsl" - | "repnz cmpsl" - | "repne cmpsl" - | "cmpsq" - | "repz cmpsq" - | "repe cmpsq" - | "repnz cmpsq" - | "repne cmpsq" - | "lodsb" - | "rep lodsb" - | "lodsw" - | "rep lodsw" - | "lodsl" - | "rep lodsl" - | "lodsq" - | "rep lodsq" - | "movsb" - | "rep movsb" - | "movsw" - | "rep movsw" - | "movsl" - | "rep movsl" - | "movsq" - | "rep movsq" - | "maskmovdqu" - | "vmaskmovdqu" - | "push" - | "pop" - | "mov" - | "sub" - | "dec" - | "cmp" - | "lea" - | "add" - | "inc" - | "nop" - | "retq" - | "callq" - | "jmpq" - | "leaveq" - | "pseudofloattestopcode1" + syntax Opcode ::= "adcb" [token] + | "adcl" [token] + | "adcq" [token] + | "adcw" [token] + | "addb" [token] + | "addl" [token] + | "addpd" [token] + | "addps" [token] + | "addq" [token] + | "addsd" [token] + | "addss" [token] + | "addsubpd" [token] + | "addsubps" [token] + | "addw" [token] + | "andb" [token] + | "andl" [token] + | "andnl" [token] + | "andnpd" [token] + | "andnps" [token] + | "andnq" [token] + | "andpd" [token] + | "andps" [token] + | "andq" [token] + | "andw" [token] + | "bextrl" [token] + | "bextrq" [token] + | "blendpd" [token] + | "blendps" [token] + | "blendvpd" [token] + | "blendvps" [token] + | "blsil" [token] + | "blsiq" [token] + | "blsmskl" [token] + | "blsmskq" [token] + | "blsrl" [token] + | "blsrq" [token] + | "bswap" [token] + | "btcl" [token] + | "btcq" [token] + | "btcw" [token] + | "btl" [token] + | "btq" [token] + | "btrl" [token] + | "btrq" [token] + | "btrw" [token] + | "btsl" [token] + | "btsq" [token] + | "btsw" [token] + | "btw" [token] + | "bzhil" [token] + | "bzhiq" [token] + | "cbtw" [token] + | "clc" [token] + | "cltd" [token] + | "cltq" [token] + | "cmc" [token] + | "cmovael" [token] + | "cmovaeq" [token] + | "cmovaew" [token] + | "cmoval" [token] + | "cmovaq" [token] + | "cmovaw" [token] + | "cmovbel" [token] + | "cmovbeq" [token] + | "cmovbew" [token] + | "cmovbe" [token] + | "cmovbl" [token] + | "cmovbq" [token] + | "cmovbw" [token] + | "cmovcl" [token] + | "cmovcq" [token] + | "cmovcw" [token] + | "cmovc" [token] + | "cmovel" [token] + | "cmoveq" [token] + | "cmovew" [token] + | "cmovgel" [token] + | "cmovgeq" [token] + | "cmovgew" [token] + | "cmovge" [token] + | "cmovgl" [token] + | "cmovgq" [token] + | "cmovgw" [token] + | "cmovlel" [token] + | "cmovleq" [token] + | "cmovlew" [token] + | "cmovll" [token] + | "cmovlq" [token] + | "cmovlw" [token] + | "cmovnael" [token] + | "cmovnaeq" [token] + | "cmovnaew" [token] + | "cmovnal" [token] + | "cmovnaq" [token] + | "cmovnaw" [token] + | "cmovnbel" [token] + | "cmovnbeq" [token] + | "cmovnbew" [token] + | "cmovnbl" [token] + | "cmovnbq" [token] + | "cmovnbw" [token] + | "cmovncl" [token] + | "cmovncq" [token] + | "cmovncw" [token] + | "cmovnel" [token] + | "cmovne" [token] + | "cmovneq" [token] + | "cmovnew" [token] + | "cmovngel" [token] + | "cmovngeq" [token] + | "cmovngew" [token] + | "cmovngl" [token] + | "cmovngq" [token] + | "cmovngw" [token] + | "cmovnlel" [token] + | "cmovnleq" [token] + | "cmovnlew" [token] + | "cmovnll" [token] + | "cmovnlq" [token] + | "cmovnlw" [token] + | "cmovnol" [token] + | "cmovnoq" [token] + | "cmovnow" [token] + | "cmovnpl" [token] + | "cmovnpq" [token] + | "cmovnpw" [token] + | "cmovnsl" [token] + | "cmovnsq" [token] + | "cmovnsw" [token] + | "cmovnzl" [token] + | "cmovnzq" [token] + | "cmovnzw" [token] + | "cmovol" [token] + | "cmovoq" [token] + | "cmovow" [token] + | "cmovpel" [token] + | "cmovpeq" [token] + | "cmovpew" [token] + | "cmovpl" [token] + | "cmovpol" [token] + | "cmovpoq" [token] + | "cmovpow" [token] + | "cmovpq" [token] + | "cmovpw" [token] + | "cmovsl" [token] + | "cmovsq" [token] + | "cmovsw" [token] + | "cmovzl" [token] + | "cmovzq" [token] + | "cmovzw" [token] + | "cmpb" [token] + | "cmpl" [token] + | "cmppd" [token] + | "cmpps" [token] + | "cmpq" [token] + | "cmpsd" [token] + | "cmpss" [token] + | "cmpw" [token] + | "cmpxchg16b" [token] + | "cmpxchg8b" [token] + | "cmpxchgb" [token] + | "cmpxchgl" [token] + | "cmpxchgq" [token] + | "cmpxchgw" [token] + | "comisd" [token] + | "comiss" [token] + | "cqto" [token] + | "cvtdq2pd" [token] + | "cvtdq2ps" [token] + | "cvtpd2dq" [token] + | "cvtpd2ps" [token] + | "cvtpi2pd" [token] + | "cvtpi2ps" [token] + | "cvtps2dq" [token] + | "cvtps2pd" [token] + | "cvtsd2si" [token] + | "cvtsd2ss" [token] + | "cvtsi2sdl" [token] + | "cvtsi2sdq" [token] + | "cvtsi2ssl" [token] + | "cvtsi2ssq" [token] + | "cvtss2sd" [token] + | "cvtss2si" [token] + | "cvttpd2dq" [token] + | "cvttps2dq" [token] + | "cvttsd2si" [token] + | "cvttss2si" [token] + | "cwtd" [token] + | "cwtl" [token] + | "decb" [token] + | "decl" [token] + | "decq" [token] + | "decw" [token] + | "divb" [token] + | "divl" [token] + | "divpd" [token] + | "divps" [token] + | "divq" [token] + | "divsd" [token] + | "divss" [token] + | "divw" [token] + | "dppd" [token] + | "dpps" [token] + | "extractps" [token] + | "haddpd" [token] + | "haddps" [token] + | "hsubpd" [token] + | "hsubps" [token] + | "idivb" [token] + | "idivl" [token] + | "idivq" [token] + | "idivw" [token] + | "imulb" [token] + | "imull" [token] + | "imulq" [token] + | "imulw" [token] + | "incb" [token] + | "incl" [token] + | "incq" [token] + | "incw" [token] + | "insertps" [token] + | "lddqu" [token] + | "leal" [token] + | "leaq" [token] + | "leaw" [token] + | "lzcntl" [token] + | "lzcntq" [token] + | "lzcntw" [token] + | "maxpd" [token] + | "maxps" [token] + | "maxsd" [token] + | "maxss" [token] + | "minpd" [token] + | "minps" [token] + | "minsd" [token] + | "minss" [token] + | "movapd" [token] + | "movaps" [token] + | "movb" [token] + | "movbel" [token] + | "movbeq" [token] + | "movbew" [token] + | "movbe" [token] + | "movd" [token] + | "movddup" [token] + | "movdqa" [token] + | "movdqu" [token] + | "movhlps" [token] + | "movhpd" [token] + | "movhps" [token] + | "movl" [token] + | "movlhps" [token] + | "movlpd" [token] + | "movlps" [token] + | "movmskpd" [token] + | "movmskps" [token] + | "movntdq" [token] + | "movntdqa" [token] + | "movnti" [token] + | "movntpd" [token] + | "movntps" [token] + | "movq" [token] + | "movsbl" [token] + | "movsbq" [token] + | "movsbw" [token] + | "movsd" [token] + | "movshdup" [token] + | "movsldup" [token] + | "movslq" [token] + | "movss" [token] + | "movswl" [token] + | "movswq" [token] + | "movupd" [token] + | "movups" [token] + | "movw" [token] + | "movzbl" [token] + | "movzbq" [token] + | "movzbw" [token] + | "movzwl" [token] + | "movzwq" [token] + | "mpsadbw" [token] + | "mulb" [token] + | "mull" [token] + | "mulpd" [token] + | "mulps" [token] + | "mulq" [token] + | "mulsd" [token] + | "mulss" [token] + | "mulw" [token] + | "mulxl" [token] + | "mulxq" [token] + | "mulx" [token] + | "negb" [token] + | "negl" [token] + | "negq" [token] + | "negw" [token] + | "nop" [token] + | "nopl" [token] + | "nopw" [token] + | "notb" [token] + | "notl" [token] + | "notq" [token] + | "notw" [token] + | "orb" [token] + | "orl" [token] + | "orpd" [token] + | "orps" [token] + | "orq" [token] + | "orw" [token] + | "pabsb" [token] + | "pabsd" [token] + | "pabsw" [token] + | "packssdw" [token] + | "packsswb" [token] + | "packusdw" [token] + | "packuswb" [token] + | "paddb" [token] + | "paddd" [token] + | "paddq" [token] + | "paddsb" [token] + | "paddsw" [token] + | "paddusb" [token] + | "paddusw" [token] + | "paddw" [token] + | "palignr" [token] + | "pand" [token] + | "pandn" [token] + | "pavgb" [token] + | "pavgw" [token] + | "pblendvb" [token] + | "pblendw" [token] + | "pclmulqdq" [token] + | "pcmpeqb" [token] + | "pcmpeqd" [token] + | "pcmpeqq" [token] + | "pcmpeqw" [token] + | "pcmpestri" [token] + | "pcmpestrm" [token] + | "pcmpgtb" [token] + | "pcmpgtd" [token] + | "pcmpgtq" [token] + | "pcmpgtw" [token] + | "pcmpistri" [token] + | "pcmpistrm" [token] + | "pdepl" [token] + | "pdepq" [token] + | "pextl" [token] + | "pextq" [token] + | "pextrb" [token] + | "pextrd" [token] + | "pextrq" [token] + | "pextrw" [token] + | "phaddd" [token] + | "phaddsw" [token] + | "phaddw" [token] + | "phminposuw" [token] + | "phsubd" [token] + | "phsubsw" [token] + | "phsubw" [token] + | "pinsrb" [token] + | "pinsrd" [token] + | "pinsrq" [token] + | "pinsrw" [token] + | "pmaddubsw" [token] + | "pmaddwd" [token] + | "pmaxsb" [token] + | "pmaxsd" [token] + | "pmaxsw" [token] + | "pmaxub" [token] + | "pmaxud" [token] + | "pmaxuw" [token] + | "pminsb" [token] + | "pminsd" [token] + | "pminsw" [token] + | "pminub" [token] + | "pminud" [token] + | "pminuw" [token] + | "pmovmskb" [token] + | "pmovsxbd" [token] + | "pmovsxbq" [token] + | "pmovsxbw" [token] + | "pmovsxdq" [token] + | "pmovsxwd" [token] + | "pmovsxwq" [token] + | "pmovzxbd" [token] + | "pmovzxbq" [token] + | "pmovzxbw" [token] + | "pmovzxdq" [token] + | "pmovzxwd" [token] + | "pmovzxwq" [token] + | "pmuldq" [token] + | "pmulhrsw" [token] + | "pmulhuw" [token] + | "pmulhw" [token] + | "pmulld" [token] + | "pmullw" [token] + | "pmuludq" [token] + | "popcntl" [token] + | "popcntq" [token] + | "popcntw" [token] + | "popq" [token] + | "popw" [token] + | "por" [token] + | "psadbw" [token] + | "pshufb" [token] + | "pshufd" [token] + | "pshufhw" [token] + | "pshuflw" [token] + | "psignb" [token] + | "psignd" [token] + | "psignw" [token] + | "pslld" [token] + | "pslldq" [token] + | "psllq" [token] + | "psllw" [token] + | "psrad" [token] + | "psraw" [token] + | "psrld" [token] + | "psrldq" [token] + | "psrlq" [token] + | "psrlw" [token] + | "psubb" [token] + | "psubd" [token] + | "psubq" [token] + | "psubsb" [token] + | "psubsw" [token] + | "psubusb" [token] + | "psubusw" [token] + | "psubw" [token] + | "ptest" [token] + | "punpckhbw" [token] + | "punpckhdq" [token] + | "punpckhqdq" [token] + | "punpckhwd" [token] + | "punpcklbw" [token] + | "punpckldq" [token] + | "punpcklqdq" [token] + | "punpcklwd" [token] + | "pushq" [token] + | "pushw" [token] + | "pxor" [token] + | "rclb" [token] + | "rcll" [token] + | "rclq" [token] + | "rclw" [token] + | "rcpps" [token] + | "rcpss" [token] + | "rcrb" [token] + | "rcrl" [token] + | "rcrq" [token] + | "rcrw" [token] + | "rolb" [token] + | "roll" [token] + | "rolq" [token] + | "rolw" [token] + | "rorb" [token] + | "rorl" [token] + | "rorq" [token] + | "rorw" [token] + | "rorxl" [token] + | "rorxq" [token] + | "rorx" [token] + | "roundpd" [token] + | "roundps" [token] + | "roundsd" [token] + | "roundss" [token] + | "rsqrtps" [token] + | "rsqrtss" [token] + | "salb" [token] + | "sall" [token] + | "salq" [token] + | "salw" [token] + | "sarb" [token] + | "sarl" [token] + | "sarq" [token] + | "sarw" [token] + | "sarxl" [token] + | "sarxq" [token] + | "sbbb" [token] + | "sbbl" [token] + | "sbbq" [token] + | "sbbw" [token] + | "seta" [token] + | "setae" [token] + | "setb" [token] + | "setbe" [token] + | "setc" [token] + | "sete" [token] + | "setg" [token] + | "setge" [token] + | "setl" [token] + | "setle" [token] + | "setna" [token] + | "setnae" [token] + | "setnb" [token] + | "setnbe" [token] + | "setnc" [token] + | "setne" [token] + | "setng" [token] + | "setnge" [token] + | "setnl" [token] + | "setnle" [token] + | "setno" [token] + | "setnp" [token] + | "setns" [token] + | "setnz" [token] + | "seto" [token] + | "setp" [token] + | "setpe" [token] + | "setpo" [token] + | "sets" [token] + | "setz" [token] + | "shlb" [token] + | "shll" [token] + | "shlq" [token] + | "shlw" [token] + | "shlxl" [token] + | "shlxq" [token] + | "shrb" [token] + | "shrl" [token] + | "shrq" [token] + | "shrw" [token] + | "shrxl" [token] + | "shrxq" [token] + | "shufpd" [token] + | "shufps" [token] + | "sqrtpd" [token] + | "sqrtps" [token] + | "sqrtsd" [token] + | "sqrtss" [token] + | "stc" [token] + | "subb" [token] + | "subl" [token] + | "subpd" [token] + | "subps" [token] + | "subq" [token] + | "subsd" [token] + | "subss" [token] + | "subw" [token] + | "testb" [token] + | "testl" [token] + | "testq" [token] + | "testw" [token] + | "tzcntl" [token] + | "tzcntq" [token] + | "tzcntw" [token] + | "ucomisd" [token] + | "ucomiss" [token] + | "unpckhpd" [token] + | "unpckhps" [token] + | "unpcklpd" [token] + | "unpcklps" [token] + | "vaddpd" [token] + | "vaddps" [token] + | "vaddsd" [token] + | "vaddss" [token] + | "vaddsubpd" [token] + | "vaddsubps" [token] + | "vandnpd" [token] + | "vandnps" [token] + | "vandpd" [token] + | "vandps" [token] + | "vblendpd" [token] + | "vblendps" [token] + | "vblendvpd" [token] + | "vblendvps" [token] + | "vbroadcastf128" [token] + | "vbroadcastsd" [token] + | "vbroadcastss" [token] + | "vcmppd" [token] + | "vcmpps" [token] + | "vcmpsd" [token] + | "vcmpss" [token] + | "vcomisd" [token] + | "vcomiss" [token] + | "vcvtdq2pd" [token] + | "vcvtdq2ps" [token] + | "vcvtpd2dq" [token] + | "vcvtpd2dqx" [token] + | "vcvtpd2dqy" [token] + | "vcvtpd2ps" [token] + | "vcvtpd2psx" [token] + | "vcvtpd2psy" [token] + | "vcvtph2ps" [token] + | "vcvtps2dq" [token] + | "vcvtps2pd" [token] + | "vcvtps2ph" [token] + | "vcvtsd2si" [token] + | "vcvtsd2ss" [token] + | "vcvtsi2sdl" [token] + | "vcvtsi2sdq" [token] + | "vcvtsi2ssl" [token] + | "vcvtsi2ssq" [token] + | "vcvtsi2ss" [token] + | "vcvtss2sd" [token] + | "vcvtss2si" [token] + | "vcvttpd2dq" [token] + | "vcvttpd2dqx" [token] + | "vcvttpd2dqy" [token] + | "vcvttps2dq" [token] + | "vcvttsd2si" [token] + | "vcvttss2si" [token] + | "vdivpd" [token] + | "vdivps" [token] + | "vdivsd" [token] + | "vdivss" [token] + | "vdppd" [token] + | "vdpps" [token] + | "vextractf128" [token] + | "vextracti128" [token] + | "vextractps" [token] + | "vfmadd132pd" [token] + | "vfmadd132ps" [token] + | "vfmadd132sd" [token] + | "vfmadd132ss" [token] + | "vfmadd213pd" [token] + | "vfmadd213ps" [token] + | "vfmadd213sd" [token] + | "vfmadd213ss" [token] + | "vfmadd231pd" [token] + | "vfmadd231ps" [token] + | "vfmadd231sd" [token] + | "vfmadd231ss" [token] + | "vfmaddsub132pd" [token] + | "vfmaddsub132ps" [token] + | "vfmaddsub213pd" [token] + | "vfmaddsub213ps" [token] + | "vfmaddsub231pd" [token] + | "vfmaddsub231ps" [token] + | "vfmsub132pd" [token] + | "vfmsub132ps" [token] + | "vfmsub132sd" [token] + | "vfmsub132ss" [token] + | "vfmsub213pd" [token] + | "vfmsub213ps" [token] + | "vfmsub213sd" [token] + | "vfmsub213ss" [token] + | "vfmsub231pd" [token] + | "vfmsub231ps" [token] + | "vfmsub231sd" [token] + | "vfmsub231ss" [token] + | "vfmsubadd132pd" [token] + | "vfmsubadd132ps" [token] + | "vfmsubadd213pd" [token] + | "vfmsubadd213ps" [token] + | "vfmsubadd231pd" [token] + | "vfmsubadd231ps" [token] + | "vfnmadd132pd" [token] + | "vfnmadd132ps" [token] + | "vfnmadd132sd" [token] + | "vfnmadd132ss" [token] + | "vfnmadd213pd" [token] + | "vfnmadd213ps" [token] + | "vfnmadd213sd" [token] + | "vfnmadd213ss" [token] + | "vfnmadd231pd" [token] + | "vfnmadd231ps" [token] + | "vfnmadd231sd" [token] + | "vfnmadd231ss" [token] + | "vfnmsub132pd" [token] + | "vfnmsub132ps" [token] + | "vfnmsub132sd" [token] + | "vfnmsub132ss" [token] + | "vfnmsub213pd" [token] + | "vfnmsub213ps" [token] + | "vfnmsub213sd" [token] + | "vfnmsub213ss" [token] + | "vfnmsub231pd" [token] + | "vfnmsub231ps" [token] + | "vfnmsub231sd" [token] + | "vfnmsub231ss" [token] + | "vhaddpd" [token] + | "vhaddps" [token] + | "vhsubpd" [token] + | "vhsubps" [token] + | "vinsertf128" [token] + | "vinserti128" [token] + | "vinsertps" [token] + | "vlddqu" [token] + | "vmaskmovpd" [token] + | "vmaskmovps" [token] + | "vmaxpd" [token] + | "vmaxps" [token] + | "vmaxsd" [token] + | "vmaxss" [token] + | "vminpd" [token] + | "vminps" [token] + | "vminsd" [token] + | "vminss" [token] + | "vmovapd" [token] + | "vmovaps" [token] + | "vmovd" [token] + | "vmovddup" [token] + | "vmovdqa" [token] + | "vmovdqu" [token] + | "vmovhlps" [token] + | "vmovhpd" [token] + | "vmovhps" [token] + | "vmovlhps" [token] + | "vmovlpd" [token] + | "vmovlps" [token] + | "vmovmskpd" [token] + | "vmovmskps" [token] + | "vmovntdqa" [token] + | "vmovntdq" [token] + | "vmovntpd" [token] + | "vmovntps" [token] + | "vmovq" [token] + | "vmovsd" [token] + | "vmovshdup" [token] + | "vmovsldup" [token] + | "vmovss" [token] + | "vmovupd" [token] + | "vmovups" [token] + | "vmpsadbw" [token] + | "vmulpd" [token] + | "vmulps" [token] + | "vmulsd" [token] + | "vmulss" [token] + | "vorpd" [token] + | "vorps" [token] + | "vpabsb" [token] + | "vpabsd" [token] + | "vpabsw" [token] + | "vpackssdw" [token] + | "vpacksswb" [token] + | "vpackusdw" [token] + | "vpackuswb" [token] + | "vpaddb" [token] + | "vpaddd" [token] + | "vpaddq" [token] + | "vpaddsb" [token] + | "vpaddsw" [token] + | "vpaddusb" [token] + | "vpaddusw" [token] + | "vpaddw" [token] + | "vpalignr" [token] + | "vpand" [token] + | "vpandn" [token] + | "vpavgb" [token] + | "vpavgw" [token] + | "vpblendd" [token] + | "vpblendvb" [token] + | "vpblendw" [token] + | "vpbroadcastb" [token] + | "vpbroadcastd" [token] + | "vbroadcasti128" [token] + | "vpbroadcastq" [token] + | "vpbroadcastw" [token] + | "vpclmulqdq" [token] + | "vpcmpeqb" [token] + | "vpcmpeqd" [token] + | "vpcmpeqq" [token] + | "vpcmpeqw" [token] + | "vpcmpestri" [token] + | "vpcmpestrm" [token] + | "vpcmpgtb" [token] + | "vpcmpgtd" [token] + | "vpcmpgtq" [token] + | "vpcmpgtw" [token] + | "vpcmpistri" [token] + | "vpcmpistrm" [token] + | "vperm2f128" [token] + | "vperm2i128" [token] + | "vpermd" [token] + | "vpermilpd" [token] + | "vpermilps" [token] + | "vpermpd" [token] + | "vpermps" [token] + | "vpermq" [token] + | "vpextrb" [token] + | "vpextrd" [token] + | "vpextrq" [token] + | "vpextrw" [token] + | "vphaddd" [token] + | "vphaddsw" [token] + | "vphaddw" [token] + | "vphminposuw" [token] + | "vphsubd" [token] + | "vphsubsw" [token] + | "vphsubw" [token] + | "vpinsrb" [token] + | "vpinsrd" [token] + | "vpinsrq" [token] + | "vpinsrw" [token] + | "vpmaddubsw" [token] + | "vpmaddwd" [token] + | "vpmaskmovd" [token] + | "vpmaskmovq" [token] + | "vpmaxsb" [token] + | "vpmaxsd" [token] + | "vpmaxsw" [token] + | "vpmaxub" [token] + | "vpmaxud" [token] + | "vpmaxuw" [token] + | "vpminsb" [token] + | "vpminsd" [token] + | "vpminsw" [token] + | "vpminub" [token] + | "vpminud" [token] + | "vpminuw" [token] + | "vpmovmskb" [token] + | "vpmovsxbd" [token] + | "vpmovsxbq" [token] + | "vpmovsxbw" [token] + | "vpmovsxdq" [token] + | "vpmovsxwd" [token] + | "vpmovsxwq" [token] + | "vpmovzxbd" [token] + | "vpmovzxbq" [token] + | "vpmovzxbw" [token] + | "vpmovzxdq" [token] + | "vpmovzxwd" [token] + | "vpmovzxwq" [token] + | "vpmuldq" [token] + | "vpmulhrsw" [token] + | "vpmulhuw" [token] + | "vpmulhw" [token] + | "vpmulld" [token] + | "vpmullw" [token] + | "vpmuludq" [token] + | "vpor" [token] + | "vpsadbw" [token] + | "vpshufb" [token] + | "vpshufd" [token] + | "vpshufhw" [token] + | "vpshuflw" [token] + | "vpsignb" [token] + | "vpsignd" [token] + | "vpsignw" [token] + | "vpslld" [token] + | "vpslldq" [token] + | "vpsllq" [token] + | "vpsllvd" [token] + | "vpsllvq" [token] + | "vpsllw" [token] + | "vpsrad" [token] + | "vpsravd" [token] + | "vpsraw" [token] + | "vpsrld" [token] + | "vpsrldq" [token] + | "vpsrlq" [token] + | "vpsrlvd" [token] + | "vpsrlvq" [token] + | "vpsrlw" [token] + | "vpsubb" [token] + | "vpsubd" [token] + | "vpsubq" [token] + | "vpsubsb" [token] + | "vpsubsw" [token] + | "vpsubusb" [token] + | "vpsubusw" [token] + | "vpsubw" [token] + | "vptest" [token] + | "vpunpckhbw" [token] + | "vpunpckhdq" [token] + | "vpunpckhqdq" [token] + | "vpunpckhwd" [token] + | "vpunpcklbw" [token] + | "vpunpckldq" [token] + | "vpunpcklqdq" [token] + | "vpunpcklwd" [token] + | "vpvmpgtq" [token] + | "vpxor" [token] + | "vrcpps" [token] + | "vrcpss" [token] + | "vroundpd" [token] + | "vroundps" [token] + | "vroundsd" [token] + | "vroundss" [token] + | "vrsqrtps" [token] + | "vrsqrtss" [token] + | "vshufpd" [token] + | "vshufps" [token] + | "vsqrtpd" [token] + | "vsqrtps" [token] + | "vsqrtsd" [token] + | "vsqrtss" [token] + | "vsubpd" [token] + | "vsubps" [token] + | "vsubsd" [token] + | "vsubss" [token] + | "vtestpd" [token] + | "vtestps" [token] + | "vucomisd" [token] + | "vucomiss" [token] + | "vunpckhpd" [token] + | "vunpckhps" [token] + | "vunpcklpd" [token] + | "vunpcklps" [token] + | "vxorpd" [token] + | "vxorps" [token] + | "vzeroall" [token] + | "vzeroupper" [token] + | "xaddb" [token] + | "xaddl" [token] + | "xaddq" [token] + | "xaddw" [token] + | "xchgb" [token] + | "xchgl" [token] + | "xchgq" [token] + | "xchgw" [token] + | "xorb" [token] + | "xorl" [token] + | "xorpd" [token] + | "xorps" [token] + | "xorq" [token] + | "xorw" [token] + | "call" [token] + | "ret" [token] + | "leave" [token] + | "jmp" [token] + | "je" [token] + | "jne" [token] + | "jns" [token] + | "js" [token] + | "jnc" [token] + | "jb" [token] + | "jae" [token] + | "jnb" [token] + | "jle" [token] + | "jg" [token] + | "jge" [token] + | "jl" [token] + | "jbe" [token] + | "ja" [token] + | "jp" [token] + | "jc" [token] + | "jecxz" [token] + | "jna" [token] + | "jnae" [token] + | "jnbe" [token] + | "jng" [token] + | "jnge" [token] + | "jnl" [token] + | "jnle" [token] + | "jno" [token] + | "jnp" [token] + | "jnz" [token] + | "jo" [token] + | "jpe" [token] + | "jpo" [token] + | "jrcxz" [token] + | "jz" [token] + | "movabsq" [token] + | "vcvtsi2sd" [token] + | "sarx" [token] + | "shlx" [token] + | "shrx" [token] + | "cmovs" [token] + | "cmovns" [token] + | "cmovge" [token] + | "cmove" [token] + | "cmovle" [token] + | "cmovbe" [token] + | "ud2" [token] + | "bsfl" [token] + | "bsfq" [token] + | "bsfw" [token] + | "bsrw" [token] + | "bsrl" [token] + | "bsrq" [token] + | "shldq" [token] + | "shldl" [token] + | "shldw" [token] + | "shrdq" [token] + | "shrdl" [token] + | "shrdw" [token] + | "pcmpestri" [token] + | "pcmpestrm" [token] + | "pcmpistri" [token] + | "pcmpistrm" [token] + | "loop" [token] + | "loope" [token] + | "loopne" [token] + | "loopz" [token] + | "loopnz" [token] + | "scasb" [token] + | "repz scasb" [token] + | "repe scasb" [token] + | "repnz scasb" [token] + | "repne scasb" [token] + | "scasw" [token] + | "repz scasw" [token] + | "repe scasw" [token] + | "repnz scasw" [token] + | "repne scasw" [token] + | "scasl" [token] + | "repz scasl" [token] + | "repe scasl" [token] + | "repnz scasl" [token] + | "repne scasl" [token] + | "scasq" [token] + | "repz scasq" [token] + | "repe scasq" [token] + | "repnz scasq" [token] + | "repne scasq" [token] + | "std" [token] + | "cld" [token] + | "stosb" [token] + | "rep stosb" [token] + | "stosw" [token] + | "rep stosw" [token] + | "rep stosl" [token] + | "stosl" [token] + | "stosq" [token] + | "rep stosq" [token] + | "cmpsb" [token] + | "repz cmpsb" [token] + | "repe cmpsb" [token] + | "repnz cmpsb" [token] + | "repne cmpsb" [token] + | "cmpsw" [token] + | "repz cmpsw" [token] + | "repe cmpsw" [token] + | "repnz cmpsw" [token] + | "repne cmpsw" [token] + | "cmpsl" [token] + | "repz cmpsl" [token] + | "repe cmpsl" [token] + | "repnz cmpsl" [token] + | "repne cmpsl" [token] + | "cmpsq" [token] + | "repz cmpsq" [token] + | "repe cmpsq" [token] + | "repnz cmpsq" [token] + | "repne cmpsq" [token] + | "lodsb" [token] + | "rep lodsb" [token] + | "lodsw" [token] + | "rep lodsw" [token] + | "lodsl" [token] + | "rep lodsl" [token] + | "lodsq" [token] + | "rep lodsq" [token] + | "movsb" [token] + | "rep movsb" [token] + | "movsw" [token] + | "rep movsw" [token] + | "movsl" [token] + | "rep movsl" [token] + | "movsq" [token] + | "rep movsq" [token] + | "maskmovdqu" [token] + | "vmaskmovdqu" [token] + | "push" [token] + | "pop" [token] + | "mov" [token] + | "sub" [token] + | "dec" [token] + | "cmp" [token] + | "lea" [token] + | "add" [token] + | "inc" [token] + | "nop" [token] + | "retq" [token] + | "callq" [token] + | "jmpq" [token] + | "leaveq" [token] + | "pseudofloattestopcode1" [token] endmodule From c43b75fc2b17bdd6826921a1a6585dc405fa594d Mon Sep 17 00:00:00 2001 From: andrew_miranti Date: Tue, 5 Feb 2019 20:21:53 -0600 Subject: [PATCH 04/15] Changes to make decoder compile --- semantics/common/library/common-c-library-configuration.k | 2 +- semantics/common/library/common-c-library-stdlib.k | 4 +--- semantics/x86-syntax.k | 7 +++++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/semantics/common/library/common-c-library-configuration.k b/semantics/common/library/common-c-library-configuration.k index 10fc117d5..cd0bdd626 100644 --- a/semantics/common/library/common-c-library-configuration.k +++ b/semantics/common/library/common-c-library-configuration.k @@ -19,7 +19,7 @@ module COMMON-C-LIBRARY-CONFIGURATION .Set - + .K .K 0 diff --git a/semantics/common/library/common-c-library-stdlib.k b/semantics/common/library/common-c-library-stdlib.k index 361e2eff0..f94e5f509 100644 --- a/semantics/common/library/common-c-library-stdlib.k +++ b/semantics/common/library/common-c-library-stdlib.k @@ -20,9 +20,7 @@ module COMMON-C-LIBRARY-STDLIB rule stdlib_exit(I::Int) => exitExecution(I) - rule stdlib_abort ~> _ - => - writeFD(#stdout, "Aborted\n") ~> flush(#stdout) ~> asCInt(134) + rule stdlib_abort ~> _ => writeFD(#stdout, "Aborted\n") ~> flush(#stdout) ~> asCInt(134) rule stdlib_atexit(FP::VoidFunctionPointer) => success ... (.K => callExitHandler(FP)) ... diff --git a/semantics/x86-syntax.k b/semantics/x86-syntax.k index 7140e9465..e82602b6c 100644 --- a/semantics/x86-syntax.k +++ b/semantics/x86-syntax.k @@ -144,12 +144,16 @@ module X86-SYNTAX | Xmm | Ymm | Mm + | Sreg + | Rip + | St // syntax Memoffs ::= Offset // | Sreg ":" Offset syntax Offset ::= Int syntax Imm ::= "$" Int | HexConstant + /*@ * `Mem` can be evaluated to a KResult `MemOffset` * Hence making MemOffset a subsort of Mem. @@ -181,7 +185,7 @@ module X86-SYNTAX | X86Id "(" R64 "," R64 ")" | X86Id "+" Int "(" R64 "," R64 "," Scale ")" | X86Id "+" Int "(" R64 "," R64 ")" - + // | Int ? How should we do this for absolute addressing? // | Sreg ":" "(" R32 ")" // | Sreg ":" "(" R64 ")" // | Sreg ":" "(" Rip ")" @@ -337,7 +341,6 @@ module X86-SYNTAX | "%ymm14" [token] | "%ymm15" [token] -<<<<<<< HEAD syntax Opcode ::= "adcb" [token] | "adcl" [token] | "adcq" [token] From 9b8787e17709613fe28351c5b6f00a434ebec1e0 Mon Sep 17 00:00:00 2001 From: andrew_miranti Date: Mon, 11 Feb 2019 19:01:56 -0600 Subject: [PATCH 05/15] Minor syntax updates because I was getting strange kompile errors --- semantics/x86-syntax.k | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/semantics/x86-syntax.k b/semantics/x86-syntax.k index e82602b6c..06feaa148 100644 --- a/semantics/x86-syntax.k +++ b/semantics/x86-syntax.k @@ -136,16 +136,17 @@ module X86-SYNTAX //syntax Simpleoperand ::= Register | Imm | MemOffset //syntax Operand ::= Simpleoperand + syntax R64OrRIP ::= R64 | Rip + syntax Register ::= Rh | R8 | R16 | R32 - | R64 + | R64OrRIP | Xmm | Ymm | Mm | Sreg - | Rip | St // syntax Memoffs ::= Offset // | Sreg ":" Offset @@ -159,14 +160,14 @@ module X86-SYNTAX * Hence making MemOffset a subsort of Mem. */ syntax Mem ::= MemOffset - syntax Mem ::= "(" Rip ")" + syntax Mem ::= /*"(" Rip ")" | X86Id "(" Rip ")" | X86Id "+" Int "(" Rip ")" //------------------------------------ - | "(" R64 ")" - | Offset "(" R64 ")" - | X86Id "(" R64 ")" - | X86Id "+" Int "(" R64 ")" + |*/ "(" R64OrRIP ")" + | Offset "(" R64OrRIP ")" + | X86Id "(" R64OrRIP ")" + | X86Id "+" Int "(" R64OrRIP ")" //------------------------------------ | "(" "," R64 "," Scale ")" | "(" "," R64 ")" From b64e647dbc2730e18c397f85c8f800975c31c2d4 Mon Sep 17 00:00:00 2001 From: andrew_miranti Date: Tue, 12 Feb 2019 00:31:20 -0600 Subject: [PATCH 06/15] The memory model migration begins. Removing lots of call sites into the old model to replace them with new, removed assembler labels (since they will not exist in the decoded instruction stream) --- semantics/common/common-memory.k | 458 ------------------ semantics/common/common.k | 2 - semantics/elf-loader.k | 27 ++ semantics/elf-syntax.k | 16 + semantics/extras/alternative_opcodes.k | 6 - semantics/hex-token.k | 18 + .../immediateInstructions/addq_r64_label.k | 34 -- .../immediateInstructions/cmpq_r64_label.k | 33 -- .../immediateInstructions/movl_r32_label.k | 22 - .../immediateInstructions/movq_r64_label.k | 23 - semantics/memoryInstructions/cmpq_m64_label.k | 42 -- semantics/memoryInstructions/movq_m64_label.k | 30 -- semantics/systemInstructions/callq_label.k | 15 - semantics/systemInstructions/ja_label.k | 23 - semantics/systemInstructions/ja_rel32.k | 20 +- semantics/systemInstructions/jae_label.k | 21 - semantics/systemInstructions/jb_label.k | 21 - semantics/systemInstructions/jbe_label.k | 23 - semantics/systemInstructions/jc_label.k | 21 - semantics/systemInstructions/je_label.k | 21 - semantics/systemInstructions/jecxz_label.k | 21 - semantics/systemInstructions/jg_label.k | 23 - semantics/systemInstructions/jge_label.k | 19 - semantics/systemInstructions/jl_label.k | 19 - semantics/systemInstructions/jle_label.k | 23 - semantics/systemInstructions/jmp_label.k | 14 - semantics/systemInstructions/jna_label.k | 21 - semantics/systemInstructions/jnae_label.k | 21 - semantics/systemInstructions/jnb_label.k | 21 - semantics/systemInstructions/jnbe_label.k | 22 - semantics/systemInstructions/jnc_label.k | 21 - semantics/systemInstructions/jne_label.k | 21 - semantics/systemInstructions/jng_label.k | 21 - semantics/systemInstructions/jnge_label.k | 21 - semantics/systemInstructions/jnl_label.k | 21 - semantics/systemInstructions/jnle_label.k | 21 - semantics/systemInstructions/jno_label.k | 21 - semantics/systemInstructions/jnp_label.k | 21 - semantics/systemInstructions/jns_label.k | 21 - semantics/systemInstructions/jnz_label.k | 21 - semantics/systemInstructions/jo_label.k | 21 - semantics/systemInstructions/jp_label.k | 21 - semantics/systemInstructions/jpe_label.k | 21 - semantics/systemInstructions/jpo_label.k | 21 - semantics/systemInstructions/jrcxz_label.k | 21 - semantics/systemInstructions/js_label.k | 21 - semantics/systemInstructions/jz_label.k | 21 - semantics/systemInstructions/loop_label.k | 33 -- semantics/systemInstructions/loope_label.k | 35 -- semantics/systemInstructions/loopne_label.k | 35 -- semantics/systemInstructions/loopnz_label.k | 35 -- semantics/systemInstructions/loopz_label.k | 35 -- semantics/x86-abstract-semantics.k | 177 +------ semantics/x86-abstract-syntax.k | 20 +- semantics/x86-commom-memory-clib-interface.k | 2 - semantics/x86-configuration.k | 32 +- semantics/x86-env-init.k | 11 +- semantics/x86-fetch-execute.k | 8 +- semantics/x86-mint-wrapper.k | 2 +- semantics/x86-semantics.k | 3 - semantics/x86-syntax.k | 106 +--- 61 files changed, 110 insertions(+), 1861 deletions(-) delete mode 100644 semantics/common/common-memory.k create mode 100644 semantics/elf-loader.k create mode 100644 semantics/elf-syntax.k create mode 100644 semantics/hex-token.k delete mode 100644 semantics/immediateInstructions/addq_r64_label.k delete mode 100644 semantics/immediateInstructions/cmpq_r64_label.k delete mode 100644 semantics/immediateInstructions/movl_r32_label.k delete mode 100644 semantics/immediateInstructions/movq_r64_label.k delete mode 100644 semantics/memoryInstructions/cmpq_m64_label.k delete mode 100644 semantics/memoryInstructions/movq_m64_label.k delete mode 100644 semantics/systemInstructions/callq_label.k delete mode 100644 semantics/systemInstructions/ja_label.k delete mode 100644 semantics/systemInstructions/jae_label.k delete mode 100644 semantics/systemInstructions/jb_label.k delete mode 100644 semantics/systemInstructions/jbe_label.k delete mode 100644 semantics/systemInstructions/jc_label.k delete mode 100644 semantics/systemInstructions/je_label.k delete mode 100644 semantics/systemInstructions/jecxz_label.k delete mode 100644 semantics/systemInstructions/jg_label.k delete mode 100644 semantics/systemInstructions/jge_label.k delete mode 100644 semantics/systemInstructions/jl_label.k delete mode 100644 semantics/systemInstructions/jle_label.k delete mode 100644 semantics/systemInstructions/jmp_label.k delete mode 100644 semantics/systemInstructions/jna_label.k delete mode 100644 semantics/systemInstructions/jnae_label.k delete mode 100644 semantics/systemInstructions/jnb_label.k delete mode 100644 semantics/systemInstructions/jnbe_label.k delete mode 100644 semantics/systemInstructions/jnc_label.k delete mode 100644 semantics/systemInstructions/jne_label.k delete mode 100644 semantics/systemInstructions/jng_label.k delete mode 100644 semantics/systemInstructions/jnge_label.k delete mode 100644 semantics/systemInstructions/jnl_label.k delete mode 100644 semantics/systemInstructions/jnle_label.k delete mode 100644 semantics/systemInstructions/jno_label.k delete mode 100644 semantics/systemInstructions/jnp_label.k delete mode 100644 semantics/systemInstructions/jns_label.k delete mode 100644 semantics/systemInstructions/jnz_label.k delete mode 100644 semantics/systemInstructions/jo_label.k delete mode 100644 semantics/systemInstructions/jp_label.k delete mode 100644 semantics/systemInstructions/jpe_label.k delete mode 100644 semantics/systemInstructions/jpo_label.k delete mode 100644 semantics/systemInstructions/jrcxz_label.k delete mode 100644 semantics/systemInstructions/js_label.k delete mode 100644 semantics/systemInstructions/jz_label.k delete mode 100644 semantics/systemInstructions/loop_label.k delete mode 100644 semantics/systemInstructions/loope_label.k delete mode 100644 semantics/systemInstructions/loopne_label.k delete mode 100644 semantics/systemInstructions/loopnz_label.k delete mode 100644 semantics/systemInstructions/loopz_label.k diff --git a/semantics/common/common-memory.k b/semantics/common/common-memory.k deleted file mode 100644 index 7641df98b..000000000 --- a/semantics/common/common-memory.k +++ /dev/null @@ -1,458 +0,0 @@ -module COMMON-MEMORY-OPAQUE-SORTS - // This sort should be provided by the client and represents the scalar values - // that can be stored in memory cells. - syntax AbstractValue [smt-prelude] -endmodule - - -module COMMON-MEMORY-SORTS - syntax MemLoc [smt-prelude] - syntax MemData - syntax MemValue - syntax MemoryMap [smt-prelude] - syntax MemorySet [smt-prelude] - syntax Memory -endmodule - - -module COMMON-MEMORY-OPAQUE-SYNTAX - imports COMMON-MEMORY-OPAQUE-SORTS - - // This function should be implemented by the client. It returns the default - // AbstractValue to be used for uninitialized memory cells. - syntax AbstractValue ::= getDefaultAbstractValue() [function] -endmodule - - -// A map to be used for memory contents: MemLoc -> AbstractValue. -// This map uses array theory and is implemented as a complete mapping, using -// the default AbstractValue as the initial binding for any key. -module COMMON-MEMORY-MAP-SYNTAX - imports COMMON-MEMORY-OPAQUE-SORTS - imports COMMON-MEMORY-SORTS - - // Empty MemoryMap - syntax MemoryMap ::= ".MemoryMap" [function] - - // Retrieve the AbstractValue associated with the given MemLoc. - syntax AbstractValue ::= selectMemoryMap(MemoryMap, MemLoc) - [function, smtlib(select)] - - // Update a MemoryMap with a new AbstractValue binding for MemLoc. - syntax MemoryMap ::= storeMemoryMap(MemoryMap, MemLoc, AbstractValue) - [function, smtlib(store)] -endmodule - - -// A set to be used to keep track of freed memory locations. This set -// is implemented as a complete array from MemLoc to Bool. -module COMMON-MEMORY-SET-SYNTAX - imports COMMON-MEMORY-OPAQUE-SORTS - imports COMMON-MEMORY-SORTS - - // Empty MemorySet - syntax MemorySet ::= ".MemorySet" [function, smtlib(smt_set_emp)] - - // Check for membership - syntax Bool ::= inMemorySet(MemLoc, MemorySet) - [function, smtlib(smt_set_mem)] - - // Add a MemLoc to the set. - syntax MemorySet ::= addMemorySet(MemorySet, MemLoc) - [function, smtlib(smt_set_add)] -endmodule - - -module COMMON-MEMORY-SYNTAX - imports COMMON-MEMORY-SORTS - imports COMMON-MEMORY-OPAQUE-SORTS - - imports INT - - // A symbolically addressed memory location. - syntax MemLoc ::= symloc(/* location ID */ Int, - /* alignment in bits */ Int, - /* location size in elements */ Int, - /* element size in bits */ Int, - /* offset in elements */ Int) - [smtlib(symloc), smt-prelude] - - // The memory model supports concrete addresses for memory locations. - // They are guaranteed to not be aliased with any of the symbolically - // addressed memory locations, but the client is responsible for not - // overlapping two or more memory locations with concrete addresses. - syntax MemLoc ::= loc(/* actual address */ Int, - /* location size in elements */ Int, - /* element size in bits */ Int, - /* offset in elements */ Int) - [smtlib(loc), smt-prelude] - - syntax Bool ::= isMemLocAlignedAt(/* alignment requirement in bits */ Int, - MemLoc) - [function] - - syntax Bool ::= isMemLocNull(MemLoc) [function] - - syntax MemData ::= ".MemData" [smtlib(emptyMemData)] - | AbstractValue MemData [smtlib(memData)] - - syntax Int ::= lengthMemData(MemData) [function] - syntax MemData ::= appendMemData(MemData, MemData) [function] - syntax MemData ::= revMemData(MemData) [function] - syntax MemData ::= takeMemData(Int, MemData) [function] - syntax MemData ::= dropMemData(Int, MemData) [function] - syntax MemData ::= makeMemData(/* number of elements */ Int, - /* initial element value */ AbstractValue) - [function] - - syntax MemValue ::= mList(/* size in elements */ Int, - /* element size in bits */ Int, - /* list of elements */ MemData) - - syntax Int ::= bitSizeOfMemValue(MemValue) [function] - - syntax Memory ::= mem(MemoryMap) - - syntax KItem ::= mSize(MemLoc) - - syntax KItem ::= mAlloc(/* allocation size in elements */ Int, - /* element size in bits */ Int, - /* alignment in bits */ Int) - - syntax KItem ::= mRead(MemLoc, - /* offset in bits */ Int, - /* size to read in elements */ Int, - /* element size in bits */ Int) - - syntax KItem ::= mWrite(MemLoc, /* offset in bits */ Int, MemValue) - - syntax KItem ::= mClear(MemLoc) - - // Int is a KResult, since mSize evaluates to an Int - syntax KResult ::= Int - - // MemLoc is a KResult, since mAlloc evaluates to a MemLoc - syntax KResult ::= MemLoc - - // MemValue is a KResult, since mRead evaluates to a MemValue - syntax KResult ::= MemValue -endmodule - - -module COMMON-MEMORY-CONFIGURATION - imports COMMON-MEMORY-MAP-SYNTAX - imports COMMON-MEMORY-SET-SYNTAX - imports COMMON-MEMORY-SYNTAX - - configuration - - 1 // TODO: should be randomly initialized - mem(.MemoryMap) - .MemorySet - -endmodule - - -module COMMON-MEMORY - imports COMMON-MEMORY-SYNTAX - imports COMMON-MEMORY-OPAQUE-SYNTAX - imports COMMON-MEMORY-MAP-SYNTAX - imports COMMON-MEMORY-SET-SYNTAX - imports COMMON-ERROR-SYNTAX - imports COMMON-UTILS-SYNTAX - imports COMMON-CONFIGURATION - - imports MAP - imports SET - - rule isMemLocAlignedAt(A:Int, loc(Addr:Int, _:Int, _:Int, _:Int)) - => - Addr %Int A ==Int 0 - rule isMemLocAlignedAt(A:Int, symloc(_:Int, LocA:Int, _:Int, _:Int, _:Int)) - => - A <=Int LocA - - rule isMemLocNull(loc(Addr:Int, _:Int, _:Int, _:Int)) => Addr ==Int 0 - rule isMemLocNull(symloc(_:Int, _:Int, _:Int, _:Int, _:Int)) => false - - rule lengthMemData(D:MemData) => lengthMemDataAux(D, 0) - - syntax Int ::= lengthMemDataAux(MemData, Int) [function] - rule lengthMemDataAux(.MemData, Len:Int) => Len - rule lengthMemDataAux(_:AbstractValue D:MemData, Len:Int) - => - lengthMemDataAux(D, Len +Int 1) - - rule appendMemData(D1:MemData, D2:MemData) - => - revAppendMemData(revMemData(D1), D2) - - rule revMemData(D:MemData) => revAppendMemData(D, .MemData) - - syntax MemData ::= revAppendMemData(MemData, MemData) [function] - rule revAppendMemData(.MemData, D:MemData) => D - rule revAppendMemData(V:AbstractValue D1:MemData, D2:MemData) - => - revAppendMemData(D1, V D2) - - rule takeMemData(N:Int, D:MemData) => takeMemDataAux(N, D, .MemData) - - syntax MemData ::= takeMemDataAux(Int, MemData, MemData) [function] - rule takeMemDataAux(N:Int, _:MemData, D:MemData) => revMemData(D) - requires N ==Int 0 - rule takeMemDataAux(N:Int, V:AbstractValue D:MemData, Acc:MemData) - => - takeMemDataAux(N -Int 1, D, V Acc) - requires N >Int 0 - - rule dropMemData(N:Int, D:MemData) => D - requires N ==Int 0 - rule dropMemData(N:Int, V:AbstractValue D:MemData) => dropMemData(N -Int 1, D) - requires N >Int 0 - - rule makeMemData(N:Int, V:AbstractValue) => makeMemDataAux(N, V, .MemData) - - syntax MemData ::= makeMemDataAux(Int, AbstractValue, MemData) [function] - rule makeMemDataAux(N:Int, _:AbstractValue, D:MemData) => D - requires N ==Int 0 - rule makeMemDataAux(N:Int, V:AbstractValue, Acc:MemData) - => - makeMemDataAux(N -Int 1, V, V Acc) - requires N >Int 0 - - rule bitSizeOfMemValue(mList(N:Int, Sz:Int, _:MemData)) => N *Int Sz - - syntax Bool ::= inBoundsAccess(/* size in elements */ Int, - /* element size in bits */ Int, - /* offset in bits */ Int, - /* access size in bits */ Int) - [function] - rule inBoundsAccess(N:Int, Sz:Int, Offs:Int, AccessSz:Int) - => - Offs >=Int 0 andBool AccessSz >=Int 0 andBool - Offs +Int AccessSz <=Int N *Int Sz andBool - Offs %Int Sz ==Int 0 - - // This function assumes that the memory access is inbounds - syntax MemValue ::= - readMemValue(/* pointer in memory location */ MemLoc, - /* offset in bits */ Int, - /* number of elements to read */ Int, - /* element size in bits */ Int, - /* memory to read from */ Memory) - [function] - rule readMemValue(loc(Addr:Int, N:Int, Sz:Int, I:Int), - Offs:Int, NumElems:Int, ElemSz:Int, mem(M:MemoryMap)) - => - mList(NumElems, Sz, readMemValueAux(loc(Addr, N, Sz, I), - Offs /Int Sz +Int NumElems -Int 1, - NumElems, - M, .MemData)) - requires ElemSz ==Int Sz - // TODO: More cases needed when sizes do not agree - rule readMemValue(symloc(LocID:Int, A:Int, N:Int, Sz:Int, I:Int), - Offs:Int, NumElems:Int, ElemSz:Int, mem(M:MemoryMap)) - => - mList(NumElems, Sz, readMemValueAux(symloc(LocID, A, N, Sz, I), - Offs /Int Sz +Int NumElems -Int 1, - NumElems, - M, .MemData)) - requires ElemSz ==Int Sz - // TODO: More cases needed when sizes do not agree - - syntax MemData ::= readMemValueAux(MemLoc, Int, Int, MemoryMap, MemData) - [function] - rule readMemValueAux(_:MemLoc, OffsI:Int, ElemsToRead:Int, _:MemoryMap, - D:MemData) - => - D - requires ElemsToRead ==Int 0 - rule readMemValueAux(loc(Addr:Int, N:Int, Sz:Int, I:Int), - OffsI:Int, ElemsToRead:Int, M:MemoryMap, D:MemData) - => - readMemValueAux(loc(Addr, N, Sz, I), OffsI -Int 1, ElemsToRead -Int 1, M, - selectMemoryMap(M, loc(Addr, N, Sz, I +Int OffsI)) D) - requires ElemsToRead >Int 0 - rule readMemValueAux(symloc(LocID:Int, A:Int, N:Int, Sz:Int, I:Int), - OffsI:Int, ElemsToRead:Int, M:MemoryMap, D:MemData) - => - readMemValueAux( - symloc(LocID, A, N, Sz, I), OffsI -Int 1, ElemsToRead -Int 1, M, - selectMemoryMap(M, symloc(LocID, A, N, Sz, I +Int OffsI)) D) - requires ElemsToRead >Int 0 - - // This function assumes that the memory access is inbounds - syntax Memory ::= writeMemValue(/* memory to write into */ Memory, - /* pointer in memory location */ MemLoc, - /* offset in bits */ Int, - /* value to write */ MemValue) - [function] - rule writeMemValue(mem(M:MemoryMap), loc(Addr:Int, N:Int, Sz:Int, I:Int), - Offs:Int, mList(NumElems:Int, ElemSz:Int, D:MemData)) - => - mem(writeMemValueAux(loc(Addr, N, Sz, I), - Offs /Int Sz, - NumElems, - D, M)) - requires ElemSz ==Int Sz - // TODO: More cases needed when sizes do not agree - rule writeMemValue(mem(M:MemoryMap), - symloc(LocID:Int, A:Int , N:Int, Sz:Int, I:Int), - Offs:Int, mList(NumElems:Int, ElemSz:Int, D:MemData)) - => - mem(writeMemValueAux(symloc(LocID, A, N, Sz, I), - Offs /Int Sz, - NumElems, - D, M)) - requires ElemSz ==Int Sz - // TODO: More cases needed when sizes do not agree - - syntax MemoryMap ::= writeMemValueAux(MemLoc, Int, Int, MemData, MemoryMap) - [function] - rule writeMemValueAux(_:MemLoc, OffsI:Int, ElemsToWrite:Int, .MemData, - M:MemoryMap) - => - M - requires ElemsToWrite ==Int 0 - rule writeMemValueAux(loc(Addr:Int, N:Int, Sz:Int, I:Int), - OffsI:Int, ElemsToWrite:Int, V:AbstractValue D:MemData, - M:MemoryMap) - => - writeMemValueAux(loc(Addr, N, Sz, I), OffsI +Int 1, ElemsToWrite -Int 1, - D, storeMemoryMap(M, loc(Addr, N, Sz, I +Int OffsI), V)) - requires ElemsToWrite >Int 0 - rule writeMemValueAux(symloc(LocID:Int, A:Int, N:Int, Sz:Int, I:Int), - OffsI:Int, ElemsToWrite:Int, V:AbstractValue D:MemData, - M:MemoryMap) - => - writeMemValueAux( - symloc(LocID, A, N, Sz, I), OffsI +Int 1, ElemsToWrite -Int 1, D, - storeMemoryMap(M, symloc(LocID, A, N, Sz, I +Int OffsI), V)) - requires ElemsToWrite >Int 0 - - rule mSize(loc(_:Int, N:Int, Sz:Int, _:Int)) => N *Int Sz - rule mSize(symloc(_:Int, _:Int, N:Int, Sz:Int, _:Int)) => N *Int Sz - - rule mAlloc(N:Int, Sz:Int, A:Int) => symloc(LocID, A, N, Sz, 0) ... - LocID:Int => LocID +Int 1 - - rule - mRead(loc(Addr:Int, N:Int, Sz:Int, I:Int), - Offs:Int, NumElems:Int, ElemSz:Int) - => - readMemValue(loc(Addr, N, Sz, I), Offs, NumElems, ElemSz, M) - ... - M:Memory - F:MemorySet - requires notBool inMemorySet(loc(Addr, N, Sz, 0), F) - andBool inBoundsAccess(N, Sz, I *Int Sz +Int Offs, - NumElems *Int ElemSz) - rule - mRead(symloc(LocID:Int, A:Int, N:Int, Sz:Int, I:Int), - Offs:Int, NumElems:Int, ElemSz:Int) - => - readMemValue(symloc(LocID, A, N, Sz, I), Offs, NumElems, ElemSz, M) - ... - M:Memory - F:MemorySet - requires notBool inMemorySet(symloc(LocID, A, N, Sz, 0), F) - andBool inBoundsAccess(N, Sz, I *Int Sz +Int Offs, - NumElems *Int ElemSz) - rule - mRead(loc(Addr:Int, N:Int, Sz:Int, I:Int), - Offs:Int, NumElems:Int, ElemSz:Int) - => - error(outOfBoundsMemoryAccess) - ... - F:MemorySet - requires notBool inBoundsAccess(N, Sz, I *Int Sz +Int Offs, - NumElems *Int ElemSz) - orBool inMemorySet(loc(Addr, N, Sz, 0), F) - rule - mRead(symloc(LocID:Int, A:Int, N:Int, Sz:Int, I:Int), - Offs:Int, NumElems:Int, ElemSz:Int) - => - error(outOfBoundsMemoryAccess) - ... - F:MemorySet - requires notBool inBoundsAccess(N, Sz, I *Int Sz +Int Offs, - NumElems *Int ElemSz) - orBool inMemorySet(symloc(LocID, A, N, Sz, 0), F) - - rule - mWrite(loc(Addr:Int, N:Int, Sz:Int, I:Int), Offs:Int, MV:MemValue) - => - . - ... - - M:Memory => writeMemValue(M, loc(Addr, N, Sz, I), Offs, MV) - - F:MemorySet - requires notBool inMemorySet(loc(Addr, N, Sz, 0), F) - andBool inBoundsAccess(N, Sz, I *Int Sz +Int Offs, - bitSizeOfMemValue(MV)) - rule - mWrite(symloc(LocID:Int, A:Int, N:Int, Sz:Int, I:Int), - Offs:Int, MV:MemValue) - => - . - ... - - M:Memory => writeMemValue(M, symloc(LocID, A, N, Sz, I), Offs, MV) - - F:MemorySet - requires notBool inMemorySet(symloc(LocID, A, N, Sz, 0), F) - andBool inBoundsAccess(N, Sz, I *Int Sz +Int Offs, - bitSizeOfMemValue(MV)) - rule - mWrite(loc(Addr:Int, N:Int, Sz:Int, I:Int), Offs:Int, MV:MemValue) - => - error(outOfBoundsMemoryAccess) - ... - F:MemorySet - requires notBool inBoundsAccess(N, Sz, I *Int Sz +Int Offs, - bitSizeOfMemValue(MV)) - orBool inMemorySet(loc(Addr, N, Sz, 0), F) - rule - mWrite(symloc(LocID:Int, A:Int, N:Int, Sz:Int, I:Int), - Offs:Int, MV:MemValue) - => - error(outOfBoundsMemoryAccess) - ... - F:MemorySet - requires notBool inBoundsAccess(N, Sz, I *Int Sz +Int Offs, - bitSizeOfMemValue(MV)) - orBool inMemorySet(symloc(LocID, A, N, Sz, 0), F) - - rule mClear(loc(Addr:Int, N:Int, Sz:Int, I:Int)) => . ... - F:MemorySet => addMemorySet(F, loc(Addr, N, Sz, 0)) - requires I ==Int 0 - rule mClear(symloc(LocID:Int, A:Int, N:Int, Sz:Int, I:Int)) => . ... - - F:MemorySet => addMemorySet(F, symloc(LocID, A, N, Sz, 0)) - - requires I ==Int 0 - - // Concrete implementation for MemoryMap - syntax MemoryMap ::= Map - - rule .MemoryMap => .Map [concrete] - - rule selectMemoryMap(M:Map, L:MemLoc) => {M[L]}:>AbstractValue - requires L in_keys(M) - [concrete] - rule selectMemoryMap(M:Map, L:MemLoc) => getDefaultAbstractValue() - requires notBool (L in_keys(M)) - [concrete] - - rule storeMemoryMap(M:Map, L:MemLoc, V:AbstractValue) => M[L <- V] [concrete] - - // Concrete implementation for MemorySet - syntax MemorySet ::= Set - - rule .MemorySet => .Set [concrete] - - rule inMemorySet(L:MemLoc, S:Set) => L in S [concrete] - - rule addMemorySet(S:Set, L:MemLoc) => SetItem(L) S [concrete] -endmodule diff --git a/semantics/common/common.k b/semantics/common/common.k index 9c875a33b..bcc36a413 100644 --- a/semantics/common/common.k +++ b/semantics/common/common.k @@ -1,6 +1,5 @@ requires "verification-lemmas.k" requires "common-configuration.k" -requires "common-memory.k" requires "common-utils.k" requires "common-error.k" requires "library/common-c-library.k" @@ -8,7 +7,6 @@ requires "library/common-c-library.k" module COMMON imports COMMON-CONFIGURATION imports VERIFICATION-LEMMAS - imports COMMON-MEMORY imports COMMON-UTILS imports COMMON-C-LIBRARY diff --git a/semantics/elf-loader.k b/semantics/elf-loader.k new file mode 100644 index 000000000..093853328 --- /dev/null +++ b/semantics/elf-loader.k @@ -0,0 +1,27 @@ +require "hex-token.k" +require "elf-syntax.k" +require "x86-configuration.k" + +module ELF-LOADER + imports MINT + imports ELF-SYNTAX + imports HEX-TOKEN + imports X86-CONFIGURATION + + rule Cs:Commands ; => Cs [structural] + rule C:Command ; Cs:Commands => C ~> Cs [structural] + rule .Commands => . [structural] + + rule Load(Base:HexConstant, Mem:HexConstant, Len:HexConstant) => . ... + ... (.List => ListItem(StringSegment(HexConstant2Int(Base), HexConstant2Int(Base) + HexConstant2Int(Len), HexConstant2StringNoPrefix(Mem)))) + + // TODO: This rule might be unwise. Right now the *parser* implicitly defines the entry point... should be the semantics job. + rule Entry(E:HexConstant) => . ... + RSMap => RSMap["RIP" <- mi(64, HexConstant2Int(E))] + + // TODO: Log these? Emit warnings? Halt? + rule NamedSymbol(_, NotPresentInFile) => . ... + + rule NamedSymbol(N:String, Addr:HexConstant) => . ... + SymMap => SymMap[N <- mi(64, HexConstant2Int(Addr))] +endmodule diff --git a/semantics/elf-syntax.k b/semantics/elf-syntax.k new file mode 100644 index 000000000..9ffb52f26 --- /dev/null +++ b/semantics/elf-syntax.k @@ -0,0 +1,16 @@ +require "hex-token.k" + +module ELF-SYNTAX + imports STRING-SYNTAX + imports HEX-TOKEN-SYNTAX + + syntax Command ::= "Load" "(" HexConstant "," HexConstant "," HexConstant ")" /* BaseAddress, MemoryContents, SegmentLength */ + // Note: SegmentLength may be "too large," remaining bytes are implicitly zero. + | "Entry" "(" HexConstant ")" + | "NamedSymbol" "(" String "," "NotPresentInFile" ")" + | "NamedSymbol" "(" String "," HexConstant ")" + + syntax Commands ::= List{Command, ";"} + + syntax Elf ::= Commands ";" +endmodule diff --git a/semantics/extras/alternative_opcodes.k b/semantics/extras/alternative_opcodes.k index e73c943c9..70769ecd1 100644 --- a/semantics/extras/alternative_opcodes.k +++ b/semantics/extras/alternative_opcodes.k @@ -89,13 +89,7 @@ module ALTERNATIVE-OPCODES rule execinstr(leaveq:Opcode .Operands) => execinstr(leave .Operands) - ... - rule - execinstr (callq:Opcode LabelId:X86Id, .Operands) => execinstr (call LabelId, .Operands) ... rule execinstr (callq:Opcode B:Builtin, .Operands) => execinstr (call B, .Operands) ... - rule - execinstr (jmpq:Opcode LabelId:X86Id, .Operands) => execinstr (jmp LabelId, .Operands) - ... diff --git a/semantics/hex-token.k b/semantics/hex-token.k new file mode 100644 index 000000000..af1972daa --- /dev/null +++ b/semantics/hex-token.k @@ -0,0 +1,18 @@ +module HEX-TOKEN-SYNTAX + syntax HexConstant ::= r"0x[0-9a-fA-F]+" [token] +endmodule + +module HEX-TOKEN + imports HEX-TOKEN-SYNTAX + imports STRING + imports INT + + syntax String ::= HexConstant2String(HexConstant) [function, hook(STRING.token2string)] + + // Remove 0x hex prefix. + syntax String ::= HexConstant2StringNoPrefix(HexConstant) [function] + rule HexConstant2StringNoPrefix(H) => substrString(HexConstant2String(H), 2, lengthString(HexConstant2String(H))) + + syntax Int ::= HexConstant2Int(HexConstant) [function] + rule HexConstant2Int(H) => String2Base(HexConstant2StringNoPrefix(H), 16) +endmodule diff --git a/semantics/immediateInstructions/addq_r64_label.k b/semantics/immediateInstructions/addq_r64_label.k deleted file mode 100644 index 45d5d4b77..000000000 --- a/semantics/immediateInstructions/addq_r64_label.k +++ /dev/null @@ -1,34 +0,0 @@ -// Autogenerated using stratification. -requires "x86-configuration.k" - -module ADDQ-R64-LABEL - imports X86-CONFIGURATION - - rule - execinstr (addq $ L:X86Id, R2:R64, .Operands) => execinstr (addq $ L:X86Id + 0, R2:R64, .Operands) - ... - - rule - execinstr (addq $ L:X86Id + I:Int , R2:R64, .Operands) => . - ... - -RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), addMInt( LoadAddr, mi(64, I))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) - -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), addMInt( LoadAddr, mi(64, I))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) - -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), addMInt( LoadAddr, mi(64, I))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), addMInt( LoadAddr, mi(64, I))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), addMInt( LoadAddr, mi(64, I))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), addMInt( LoadAddr, mi(64, I))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), addMInt( LoadAddr, mi(64, I))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), addMInt( LoadAddr, mi(64, I))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), addMInt( LoadAddr, mi(64, I))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), addMInt( LoadAddr, mi(64, I))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) - -"AF" |-> xorMInt( xorMInt( extractMInt( extractMInt(addMInt( LoadAddr, mi(64, I)), 32, 64), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), addMInt( LoadAddr, mi(64, I))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) - -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), addMInt( LoadAddr, mi(64, I))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) - -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), addMInt( LoadAddr, mi(64, I))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) - -"OF" |-> (#ifMInt ((eqMInt( extractMInt( addMInt( LoadAddr, mi(64, I)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( addMInt( LoadAddr, mi(64, I)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), addMInt( LoadAddr, mi(64, I))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) -) - - - ... L |-> LoadAddr:PointerVal ... - -endmodule diff --git a/semantics/immediateInstructions/cmpq_r64_label.k b/semantics/immediateInstructions/cmpq_r64_label.k deleted file mode 100644 index b48946b0e..000000000 --- a/semantics/immediateInstructions/cmpq_r64_label.k +++ /dev/null @@ -1,33 +0,0 @@ -// Autogenerated using stratification. -requires "x86-configuration.k" - -module CMPQ-R64-LABEL - imports X86-CONFIGURATION - - rule - execinstr (cmpq $ L:X86Id, R2:R64, .Operands) => execinstr (cmpq $ L:X86Id + 0, R2:R64, .Operands) - ... - - rule - execinstr (cmpq $ L:X86Id + I:Int, R2:R64, .Operands) => . - ... - -RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) - -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) - -"AF" |-> xorMInt( xorMInt( extractMInt( extractMInt(addMInt( LoadAddr, mi(64, I)), 32, 64), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) - -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) - -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) - -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( addMInt( LoadAddr, mi(64, I)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( addMInt( LoadAddr, mi(64, I)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) -) - - - ... L |-> LoadAddr:PointerVal ... - -endmodule - diff --git a/semantics/immediateInstructions/movl_r32_label.k b/semantics/immediateInstructions/movl_r32_label.k deleted file mode 100644 index f7f450524..000000000 --- a/semantics/immediateInstructions/movl_r32_label.k +++ /dev/null @@ -1,22 +0,0 @@ -// Autogenerated using stratification. -requires "x86-configuration.k" - -module MOVL-R32-LABEL - imports X86-CONFIGURATION - - rule - execinstr (movl $ L:X86Id, R2:R32, .Operands) => execinstr (movl $ L:X86Id + 0, R2:R32, .Operands) - ... - - rule - execinstr (movl $ L:X86Id + I:Int, R2:R32, .Operands) => . - ... - -RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), addMInt(extractMInt(LoadAddr, 32, 64), mi(32, I))) -) - - - ... L |-> LoadAddr:PointerVal ... - -endmodule diff --git a/semantics/immediateInstructions/movq_r64_label.k b/semantics/immediateInstructions/movq_r64_label.k deleted file mode 100644 index 8c654c1b4..000000000 --- a/semantics/immediateInstructions/movq_r64_label.k +++ /dev/null @@ -1,23 +0,0 @@ -// Autogenerated using stratification. -requires "x86-configuration.k" - -module MOVQ-R64-LABEL - imports X86-CONFIGURATION - - rule - execinstr (movq $ L:X86Id, R2:R64, .Operands) => execinstr (movq $ L:X86Id + 0, R2:R64, .Operands) - ... - - rule - execinstr (movq $ L:X86Id + I:Int, R2:R64, .Operands) => . - ... - -RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> addMInt( LoadAddr, mi(64, I)) -) - - - ... L |-> LoadAddr:PointerVal ... - -endmodule - diff --git a/semantics/memoryInstructions/cmpq_m64_label.k b/semantics/memoryInstructions/cmpq_m64_label.k deleted file mode 100644 index c2d02cb52..000000000 --- a/semantics/memoryInstructions/cmpq_m64_label.k +++ /dev/null @@ -1,42 +0,0 @@ -// Autogenerated using stratification. -requires "x86-configuration.k" - -module CMPQ-M64-LABEL - imports X86-CONFIGURATION - - rule - execinstr (cmpq $ L:X86Id, M:Mem, .Operands) => - execinstr (cmpq $ L:X86Id + 0, M:Mem, .Operands) - ... - - context execinstr(cmpq:Opcode $ L:X86Id + I:Int, HOLE:Mem, .Operands) [result(MemOffset)] - - rule - execinstr (cmpq:Opcode $ L:X86Id + I:Int, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( MemOff, 64) ~> - execinstr (cmpq $ L + I, memOffset( MemOff), .Operands) - ... - RSMap:Map - - rule - memLoadValue(Mem64:MInt):MemLoadValue ~> - execinstr (cmpq:Opcode $ L:X86Id + I:Int, memOffset( MemOff:MInt):MemOffset, .Operands) => - . - ... - - RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) - -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) - -"AF" |-> xorMInt( xorMInt( extractMInt( extractMInt(addMInt( LoadAddr, mi(64, I)), 32, 64), 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) - -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) - -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) - -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( addMInt( LoadAddr, mi(64, I)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( addMInt( LoadAddr, mi(64, I)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( addMInt( LoadAddr, mi(64, I)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) - ) - - ... L |-> LoadAddr:PointerVal ... -endmodule diff --git a/semantics/memoryInstructions/movq_m64_label.k b/semantics/memoryInstructions/movq_m64_label.k deleted file mode 100644 index b8ac2c543..000000000 --- a/semantics/memoryInstructions/movq_m64_label.k +++ /dev/null @@ -1,30 +0,0 @@ -// Autogenerated using stratification. -requires "x86-configuration.k" - -module MOVQ-M64-LABEL - imports X86-CONFIGURATION - - rule - execinstr (movq:Opcode $ L:X86Id, M:Mem, .Operands) => execinstr (movq:Opcode $ L:X86Id + 0, M, .Operands) - ... - - context execinstr(movq:Opcode $ L:X86Id + I:Int, HOLE:Mem, .Operands) [result(MemOffset)] - - rule - execinstr (movq:Opcode $ L:X86Id + I:Int, memOffset( MemOff:MInt):MemOffset, .Operands) => - - storeToMemory( - ptr( - getMemLoc(PV), - mi(64, svalueMInt( - addMInt( - extractMInt( getMIntVal(PV), 32, 64), mi(32, I) - )))), - MemOff, - 64 - ) - - ... - RSMap:Map - ... L |-> PV:PointerVal ... -endmodule diff --git a/semantics/systemInstructions/callq_label.k b/semantics/systemInstructions/callq_label.k deleted file mode 100644 index 3d9f0a6c8..000000000 --- a/semantics/systemInstructions/callq_label.k +++ /dev/null @@ -1,15 +0,0 @@ -requires "x86-configuration.k" - - -module CALLQ-LABEL - imports X86-CONFIGURATION - - rule - execinstr (call LabelId:X86Id, .Operands) => - storeToMemory({RSMap["RIP"]}:>MInt, subMInt(getRegisterValue(%rsp, RSMap), mi(64, 8)), 64) - ~> decRSPInBytes(8) - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... -endmodule diff --git a/semantics/systemInstructions/ja_label.k b/semantics/systemInstructions/ja_label.k deleted file mode 100644 index c6cec1bb1..000000000 --- a/semantics/systemInstructions/ja_label.k +++ /dev/null @@ -1,23 +0,0 @@ -requires "x86-configuration.k" - - -module JA-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (ja LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - - rule - execinstr (ja LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/ja_rel32.k b/semantics/systemInstructions/ja_rel32.k index 5623ff99d..7edfdbd8f 100644 --- a/semantics/systemInstructions/ja_rel32.k +++ b/semantics/systemInstructions/ja_rel32.k @@ -1,24 +1,10 @@ requires "x86-configuration.k" - module JA-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (ja Imm32:Imm, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> - addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, - 32, 64)))) - - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - - rule - execinstr (ja LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + rule execinstr (ja Imm32:Imm, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jae_label.k b/semantics/systemInstructions/jae_label.k deleted file mode 100644 index 4c4b9bbd5..000000000 --- a/semantics/systemInstructions/jae_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JAE-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jae LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jae LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/jb_label.k b/semantics/systemInstructions/jb_label.k deleted file mode 100644 index 8925ed263..000000000 --- a/semantics/systemInstructions/jb_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JB-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jb LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - - rule - execinstr (jb LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jbe_label.k b/semantics/systemInstructions/jbe_label.k deleted file mode 100644 index a9899dc3e..000000000 --- a/semantics/systemInstructions/jbe_label.k +++ /dev/null @@ -1,23 +0,0 @@ -requires "x86-configuration.k" - - -module JBE-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jbe LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) - - rule - execinstr (jbe LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jc_label.k b/semantics/systemInstructions/jc_label.k deleted file mode 100644 index 1f1c02d3d..000000000 --- a/semantics/systemInstructions/jc_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JC-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jc LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - - rule - execinstr (jc LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/je_label.k b/semantics/systemInstructions/je_label.k deleted file mode 100644 index f02240895..000000000 --- a/semantics/systemInstructions/je_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JE-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (je LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) - - rule - execinstr (je LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/jecxz_label.k b/semantics/systemInstructions/jecxz_label.k deleted file mode 100644 index 1c27aa8f8..000000000 --- a/semantics/systemInstructions/jecxz_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JECXZ-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jecxz LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt(getRegisterValue(%ecx, RSMap), mi(32, 0)) - - rule - execinstr (jecxz LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt(getRegisterValue(%ecx, RSMap), mi(32, 0)) -endmodule diff --git a/semantics/systemInstructions/jg_label.k b/semantics/systemInstructions/jg_label.k deleted file mode 100644 index f5ff9a91a..000000000 --- a/semantics/systemInstructions/jg_label.k +++ /dev/null @@ -1,23 +0,0 @@ -requires "x86-configuration.k" -module JG-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jg LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) - - rule - execinstr (jg LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - orBool - notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) -endmodule diff --git a/semantics/systemInstructions/jge_label.k b/semantics/systemInstructions/jge_label.k deleted file mode 100644 index 5cb333cc0..000000000 --- a/semantics/systemInstructions/jge_label.k +++ /dev/null @@ -1,19 +0,0 @@ -requires "x86-configuration.k" -module JGE-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jge LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) - - rule - execinstr (jge LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) -endmodule diff --git a/semantics/systemInstructions/jl_label.k b/semantics/systemInstructions/jl_label.k deleted file mode 100644 index 929b56fec..000000000 --- a/semantics/systemInstructions/jl_label.k +++ /dev/null @@ -1,19 +0,0 @@ -requires "x86-configuration.k" -module JL-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jl LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) - - rule - execinstr (jl LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) -endmodule diff --git a/semantics/systemInstructions/jle_label.k b/semantics/systemInstructions/jle_label.k deleted file mode 100644 index b186bb90a..000000000 --- a/semantics/systemInstructions/jle_label.k +++ /dev/null @@ -1,23 +0,0 @@ -requires "x86-configuration.k" -module JLE-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jle LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) - orBool - (notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) - - rule - execinstr (jle LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) - andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) -endmodule diff --git a/semantics/systemInstructions/jmp_label.k b/semantics/systemInstructions/jmp_label.k deleted file mode 100644 index 30245b395..000000000 --- a/semantics/systemInstructions/jmp_label.k +++ /dev/null @@ -1,14 +0,0 @@ -requires "x86-configuration.k" - - -module JMPQ-LABEL - imports X86-CONFIGURATION - - rule - execinstr (jmp LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - -endmodule diff --git a/semantics/systemInstructions/jna_label.k b/semantics/systemInstructions/jna_label.k deleted file mode 100644 index 3eddc8f65..000000000 --- a/semantics/systemInstructions/jna_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JNA-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jna LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - - rule - execinstr (jna LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/jnae_label.k b/semantics/systemInstructions/jnae_label.k deleted file mode 100644 index d7d881593..000000000 --- a/semantics/systemInstructions/jnae_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JNAE-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnae LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - - rule - execinstr (jnae LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/jnb_label.k b/semantics/systemInstructions/jnb_label.k deleted file mode 100644 index 28576fb3c..000000000 --- a/semantics/systemInstructions/jnb_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JNB-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnb LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jnb LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/jnbe_label.k b/semantics/systemInstructions/jnbe_label.k deleted file mode 100644 index d432d8626..000000000 --- a/semantics/systemInstructions/jnbe_label.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JNBE-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnbe LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jnbe LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jnc_label.k b/semantics/systemInstructions/jnc_label.k deleted file mode 100644 index dc21dcff9..000000000 --- a/semantics/systemInstructions/jnc_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JNC-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnc LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jnc LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/jne_label.k b/semantics/systemInstructions/jne_label.k deleted file mode 100644 index d244a1171..000000000 --- a/semantics/systemInstructions/jne_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JNE-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jne LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jne LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jng_label.k b/semantics/systemInstructions/jng_label.k deleted file mode 100644 index f4c108d16..000000000 --- a/semantics/systemInstructions/jng_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JNG-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jng LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) - - rule - execinstr (jng LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) -endmodule diff --git a/semantics/systemInstructions/jnge_label.k b/semantics/systemInstructions/jnge_label.k deleted file mode 100644 index dc117749e..000000000 --- a/semantics/systemInstructions/jnge_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JNGE-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnge LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) - - rule - execinstr (jnge LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) -endmodule diff --git a/semantics/systemInstructions/jnl_label.k b/semantics/systemInstructions/jnl_label.k deleted file mode 100644 index a7de0993d..000000000 --- a/semantics/systemInstructions/jnl_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JNL-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnl LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) - - rule - execinstr (jnl LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) -endmodule diff --git a/semantics/systemInstructions/jnle_label.k b/semantics/systemInstructions/jnle_label.k deleted file mode 100644 index 3efc2cfc8..000000000 --- a/semantics/systemInstructions/jnle_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JNLE-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnle LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) - - rule - execinstr (jnle LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) -endmodule diff --git a/semantics/systemInstructions/jno_label.k b/semantics/systemInstructions/jno_label.k deleted file mode 100644 index ba1651a5e..000000000 --- a/semantics/systemInstructions/jno_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JNO-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jno LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jno LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jnp_label.k b/semantics/systemInstructions/jnp_label.k deleted file mode 100644 index 48535e052..000000000 --- a/semantics/systemInstructions/jnp_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JNP-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnp LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jnp LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jns_label.k b/semantics/systemInstructions/jns_label.k deleted file mode 100644 index dd99ec644..000000000 --- a/semantics/systemInstructions/jns_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JNS-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jns LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jns LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/jnz_label.k b/semantics/systemInstructions/jnz_label.k deleted file mode 100644 index 14b7714f5..000000000 --- a/semantics/systemInstructions/jnz_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JNZ-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnz LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jnz LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jo_label.k b/semantics/systemInstructions/jo_label.k deleted file mode 100644 index ee4cce474..000000000 --- a/semantics/systemInstructions/jo_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JO-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jo LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) - - rule - execinstr (jo LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/jp_label.k b/semantics/systemInstructions/jp_label.k deleted file mode 100644 index d77fed5c3..000000000 --- a/semantics/systemInstructions/jp_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JP-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jp LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) - - rule - execinstr (jp LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jpe_label.k b/semantics/systemInstructions/jpe_label.k deleted file mode 100644 index d4b4f3296..000000000 --- a/semantics/systemInstructions/jpe_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JPE-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jpe LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) - - rule - execinstr (jpe LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jpo_label.k b/semantics/systemInstructions/jpo_label.k deleted file mode 100644 index 9ecb2dffd..000000000 --- a/semantics/systemInstructions/jpo_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JPO-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jpo LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jpo LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jrcxz_label.k b/semantics/systemInstructions/jrcxz_label.k deleted file mode 100644 index 4fc679959..000000000 --- a/semantics/systemInstructions/jrcxz_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JRCXZ-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jrcxz LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) - - rule - execinstr (jrcxz LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) -endmodule diff --git a/semantics/systemInstructions/js_label.k b/semantics/systemInstructions/js_label.k deleted file mode 100644 index a064ef25e..000000000 --- a/semantics/systemInstructions/js_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JS-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (js LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) - - rule - execinstr (js LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jz_label.k b/semantics/systemInstructions/jz_label.k deleted file mode 100644 index fadfebbb3..000000000 --- a/semantics/systemInstructions/jz_label.k +++ /dev/null @@ -1,21 +0,0 @@ -requires "x86-configuration.k" - - -module JZ-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jz LabelId:X86Id, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> Target)) - - ... LabelId |-> Target ... - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) - - rule - execinstr (jz LabelId:X86Id, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/loop_label.k b/semantics/systemInstructions/loop_label.k deleted file mode 100644 index 3beb71109..000000000 --- a/semantics/systemInstructions/loop_label.k +++ /dev/null @@ -1,33 +0,0 @@ -requires "x86-configuration.k" - - -module LOOP-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (loop LabelId:X86Id, .Operands) => execinstr (loop LabelId, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) - ... - RSMap - - rule - execinstr (loop LabelId:X86Id, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RIP" |-> Target) - ("RCX" |-> Count) - ) - - ... LabelId |-> Target ... - requires notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - - rule - execinstr (loop LabelId:X86Id, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RCX" |-> Count) - ) - - requires eqMInt(Count, mi(bitwidthMInt(Count), 0)) - -endmodule diff --git a/semantics/systemInstructions/loope_label.k b/semantics/systemInstructions/loope_label.k deleted file mode 100644 index 2bbae35c9..000000000 --- a/semantics/systemInstructions/loope_label.k +++ /dev/null @@ -1,35 +0,0 @@ -requires "x86-configuration.k" - - -module LOOPE-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (loope LabelId:X86Id, .Operands) => execinstr (loope LabelId, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) - ... - RSMap - - rule - execinstr (loope LabelId:X86Id, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RIP" |-> Target) - ("RCX" |-> Count) - ) - - ... LabelId |-> Target ... - requires notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) - - rule - execinstr (loope LabelId:X86Id, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RCX" |-> Count) - ) - - requires eqMInt(Count, mi(bitwidthMInt(Count), 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) - -endmodule diff --git a/semantics/systemInstructions/loopne_label.k b/semantics/systemInstructions/loopne_label.k deleted file mode 100644 index c940f161b..000000000 --- a/semantics/systemInstructions/loopne_label.k +++ /dev/null @@ -1,35 +0,0 @@ -requires "x86-configuration.k" - - -module LOOPNE-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (loopne LabelId:X86Id, .Operands) => execinstr (loope LabelId, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) - ... - RSMap - - rule - execinstr (loopne LabelId:X86Id, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RIP" |-> Target) - ("RCX" |-> Count) - ) - - ... LabelId |-> Target ... - requires notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - - rule - execinstr (loopne LabelId:X86Id, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RCX" |-> Count) - ) - - requires eqMInt(Count, mi(bitwidthMInt(Count), 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - -endmodule diff --git a/semantics/systemInstructions/loopnz_label.k b/semantics/systemInstructions/loopnz_label.k deleted file mode 100644 index 2500886bc..000000000 --- a/semantics/systemInstructions/loopnz_label.k +++ /dev/null @@ -1,35 +0,0 @@ -requires "x86-configuration.k" - - -module LOOPNE-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (loopnz LabelId:X86Id, .Operands) => execinstr (loopnz LabelId, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) - ... - RSMap - - rule - execinstr (loopnz LabelId:X86Id, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RIP" |-> Target) - ("RCX" |-> Count) - ) - - ... LabelId |-> Target ... - requires notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - - rule - execinstr (loopnz LabelId:X86Id, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RCX" |-> Count) - ) - - requires eqMInt(Count, mi(bitwidthMInt(Count), 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - -endmodule diff --git a/semantics/systemInstructions/loopz_label.k b/semantics/systemInstructions/loopz_label.k deleted file mode 100644 index 97b9d91a0..000000000 --- a/semantics/systemInstructions/loopz_label.k +++ /dev/null @@ -1,35 +0,0 @@ -requires "x86-configuration.k" - - -module LOOPE-LABEL - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (loopz LabelId:X86Id, .Operands) => execinstr (loopz LabelId, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) - ... - RSMap - - rule - execinstr (loopz LabelId:X86Id, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RIP" |-> Target) - ("RCX" |-> Count) - ) - - ... LabelId |-> Target ... - requires notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) - - rule - execinstr (loopz LabelId:X86Id, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RCX" |-> Count) - ) - - requires eqMInt(Count, mi(bitwidthMInt(Count), 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) - -endmodule diff --git a/semantics/x86-abstract-semantics.k b/semantics/x86-abstract-semantics.k index 268c90983..1e9a1dd82 100644 --- a/semantics/x86-abstract-semantics.k +++ b/semantics/x86-abstract-semantics.k @@ -1,96 +1,14 @@ require "x86-configuration.k" +require "hex-token.k" module X86-ABSTRACT-SEMANTICS imports X86-CONFIGURATION + imports HEX-TOKEN /*@ Function related to null checks */ - rule isPointerValNull(null) => true - rule isPointerValNull(ptr(Loc:MemLoc, Offs:MInt)) - => - isMemLocNull(Loc) andBool eqMInt(Offs, mi(bitwidthMInt(Offs), 0)) - - /*@ - Redefining functions over PointerVal - */ - rule getMemLoc(ptr(L:MemLoc, MI:MInt)) => L - rule getMIntVal(ptr(L:MemLoc, MI:MInt)) => MI - - syntax MInt ::= "convertPV" "(" MInt ")" [function] - rule convertPV(PV:PointerVal) => getMIntVal(PV) - rule convertPV(MI:MInt) => MI [owise] - - //rule mi(W:Int, svalueMInt(PV:PointerVal)) => ptr(getMemLoc(PV), mi(W, svalueMInt(getMIntVal(PV)))) - - //negMInt - rule negMInt(PV:PointerVal) => - ptr (getMemLoc(PV), negMInt(getMIntVal(PV))) - - //lshrMInt - rule lshrMInt(PV:PointerVal, I:Int) => - ptr (getMemLoc(PV), lshrMInt(getMIntVal(PV), I)) - - //shlMInt - rule shlMInt(PV:PointerVal, I:Int) => - ptr (getMemLoc(PV), shlMInt(getMIntVal(PV), I)) - - // Arithmetic:add - rule addMInt(PV:PointerVal, MI:MInt) => - ptr( getMemLoc(PV), addMInt(convertPV(PV), convertPV(MI))) - rule addMInt(MI:MInt, PV:PointerVal) => - ptr( getMemLoc(PV), addMInt(convertPV(MI), convertPV(PV))) - - // Arithmetic:and - rule andMInt(PV:PointerVal, MI:MInt) => - ptr( getMemLoc(PV), andMInt(convertPV(PV), convertPV(MI))) - rule andMInt(MI:MInt, PV:PointerVal) => - ptr( getMemLoc(PV), andMInt(convertPV(MI), convertPV(PV))) - - // Mul - rule mulMInt(PV:PointerVal, MI:MInt) => - ptr( getMemLoc(PV), mulMInt(convertPV(PV), convertPV(MI))) - rule mulMInt(MI:MInt, PV:PointerVal) => - ptr( getMemLoc(PV), mulMInt(convertPV(MI), convertPV(PV))) - - // Xor - rule xorMInt(PV:PointerVal, MI:MInt) => - ptr( getMemLoc(PV), xorMInt(convertPV(PV), convertPV(MI))) - rule xorMInt(MI:MInt, PV:PointerVal) => - ptr( getMemLoc(PV), xorMInt(convertPV(MI), convertPV(PV))) - - // Sub - rule subMInt(PV:PointerVal, MI:MInt) => - ptr( getMemLoc(PV), subMInt(convertPV(PV), convertPV(MI))) - - // Bitwidth - //rule bitwidthMInt(ptr(L:MemLoc, MI:MInt)) => bitwidthMInt(MI) - rule bitwidthMInt(PV:PointerVal) => bitwidthMInt(getMIntVal(PV)) - - // Extract - //rule extractMInt(ptr(L:MemLoc, MI:MInt), S:Int, E:Int) => ptr(L, extractMInt(MI, S, E)) - rule extractMInt(PV:PointerVal, S:Int, E:Int) => - ptr(getMemLoc(PV), extractMInt(getMIntVal(PV), S, E)) - - // Concatenate - rule concatenateMInt(PV:PointerVal, MI:MInt) => - ptr( getMemLoc(PV), concatenateMInt(convertPV(PV), convertPV(MI))) - rule concatenateMInt(MI:MInt, PV:PointerVal) => - ptr( getMemLoc(PV), concatenateMInt(convertPV(MI), convertPV(PV))) - - - // eqMInt - rule eqMInt(ptr(L:MemLoc, MI1:MInt), MI2:MInt) => eqMInt(MI1, MI2) - rule eqMInt(MI1:MInt, ptr(L:MemLoc, MI2:MInt)) => eqMInt(MI1, MI2) - rule eqMInt(ptr(L:MemLoc, MI1:MInt), ptr(L:MemLoc, MI2:MInt)) => - eqMInt(MI1, MI2) - - // Sign Extension - //rule mi(W:Int, svalueMInt(PV:PointerVal)) => - // ptr(getMemLoc(PV), mi(W, svalueMInt(getMIntVal(PV)))) - - // Avoid bloating - //rule ptr(L:MemLoc, ptr(L:MemLoc, M:MInt)) => ptr(L, M) + rule isPointerValNull(Addr:MInt) => uvalueMInt(Addr) ==Int 0 /*@ X86-64 mnemonic allows the following ways of computing memory offsets. @@ -111,71 +29,25 @@ module X86-ABSTRACT-SEMANTICS instrcution. */ - // rip - rule L:X86Id (%rip) => L:X86Id + 0 (%rip) ... - rule L:X86Id + I:Int (%rip) => - memOffset( ptr(getMemLoc(LoadAddr), addMInt( getMIntVal(LoadAddr), mi(bitwidthMInt(LoadAddr), I)))) - ... - RSMap - ... L |-> LoadAddr:PointerVal ... - // (%r64) rule (R1:R64):Mem => 0 (R1:R64) ... - rule I:Int (R1:R64):Mem => - memOffset( addMInt(mi(64, I), addMInt(getRegisterValue(R1, RSMap), mulMInt(mi(64, 0), mi(64, 1))))) - ... - RSMap - - rule L:X86Id (R1:R64):Mem => L:X86Id + 0 (R1:R64):Mem ... - rule L:X86Id + I:Int (R1:R64):Mem => - memOffset( addMInt(addMInt(LoadAddr, mi(bitwidthMInt(LoadAddr), I)), addMInt(getRegisterValue(R1, RSMap), mulMInt(mi(64, 0), mi(64, 1))))) - ... - RSMap - ... L |-> LoadAddr:PointerVal ... + rule I:Int (R1:R64):Mem => memOffset( addMInt(mi(64, I), getRegisterValue(R1, RSMap))) ... + RSMap // (, %r64) rule (, R2:R64):Mem => 0 (, R2, 1) ... rule I:Int (, R2:R64):Mem => I (, R2, 1) ... rule ( , R2:R64, S:Int):Mem => 0 (, R2, S) ... rule I:Int (, R2:R64):Mem => I (, R2, 1) ... - rule I:Int (, R2:R64, S:Int):Mem => - memOffset( addMInt(mi(64, I), addMInt(mi(64, 0), mulMInt(getRegisterValue(R2, RSMap), mi(64, S))))) - ... - RSMap - - rule L:X86Id (, R2:R64):Mem => L + 0 (, R2, 1) ... - rule L:X86Id ( , R2:R64, S:Int):Mem => L + 0 (, R2, S) ... - rule L:X86Id + I:Int (, R2:R64, S:Int):Mem => - memOffset( addMInt( - addMInt(LoadAddr, mi(bitwidthMInt(LoadAddr), I)), - addMInt(mi(64, 0), mulMInt(getRegisterValue(R2, RSMap), mi(64, S))))) - ... - RSMap - ... L |-> LoadAddr:PointerVal ... + rule I:Int (, R2:R64, S:Int):Mem => memOffset( addMInt(mi(64, I), mulMInt(getRegisterValue(R2, RSMap), mi(64, S)))) ... + RSMap // (%r64, %r64) rule (R1:R64, R2:R64):Mem => 0 (R1, R2, 1) ... rule (R1:R64, R2:R64, S:Int):Mem => 0 (R1, R2, S) ... rule I:Int (R1:R64, R2:R64):Mem => I (R1, R2, 1) ... - rule I:Int (R1:R64, R2:R64, S:Int):Mem => - memOffset( addMInt(mi(64, I), addMInt(getRegisterValue(R1, RSMap), mulMInt(getRegisterValue(R2, RSMap), mi(64, S))))) - ... - RSMap - - rule L:X86Id (R1:R64, R2:R64):Mem => L + 0 (R1, R2, 1) ... - rule L:X86Id (R1:R64, R2:R64, S:Int):Mem => L + 0 (R1, R2, S) ... - rule L:X86Id + I:Int (R1:R64, R2:R64):Mem => L + I (R1, R2, 1) ... - rule L:X86Id + I:Int (R1:R64, R2:R64, S:Int):Mem => - memOffset( addMInt( - addMInt(LoadAddr, mi(bitwidthMInt(LoadAddr), I)), - addMInt(getRegisterValue(R1, RSMap), mulMInt(getRegisterValue(R2, RSMap), mi(64, S))))) - ... - RSMap - ... L |-> LoadAddr:PointerVal ... - /*@ - Size of instructions. - rule getISize((OpC:Opcode OpR:Operands):Instruction) => 1 - */ + rule I:Int (R1:R64, R2:R64, S:Int):Mem => memOffset( addMInt(mi(64, I), addMInt(getRegisterValue(R1, RSMap), mulMInt(getRegisterValue(R2, RSMap), mi(64, S))))) ... + RSMap /*@ Reg to Regtstate keys @@ -434,13 +306,10 @@ module X86-ABSTRACT-SEMANTICS // Imm could be an Int rule handleImmediateWithSignExtend(($ I:Int):Imm, M:Int, N:Int) => signExtend(mi(M,I), N) - // Or a HexConstant: For hexconstants ike 0x800, we have to provide the substr 800 - // as an argument to String2Base - syntax String ::= HexConstant2String ( HexConstant ) [function, hook(STRING.token2string)] - //rule handleImmediateWithSignExtend($0x H:HexConstant, M:Int, N:Int) => - // signExtend(mi(M, String2Base(HexConstant2String(H), 16)), N) - rule handleImmediateWithSignExtend((H:HexConstant):Imm, M:Int, N:Int) => - signExtend(mi(M, String2Base(substrString(HexConstant2String(H), 3, lengthString(HexConstant2String(H))), 16)), N) + // Or a HexConstant: For hexconstants like 0x800, we have to provide the substr 800 + // as an argument to String2Base + rule handleImmediateWithSignExtend(($ H:HexConstant):Imm, M:Int, N:Int) => + signExtend(mi(M, HexConstant2Int(H)), N) /*@ Check if two registers are the same @@ -966,25 +835,5 @@ module X86-ABSTRACT-SEMANTICS #fi ) requires Count =/=Int (NumElems -Int 1) - - endmodule - - - - - - - - - - - - - - - - - - diff --git a/semantics/x86-abstract-syntax.k b/semantics/x86-abstract-syntax.k index 476a6c9e7..befb36710 100644 --- a/semantics/x86-abstract-syntax.k +++ b/semantics/x86-abstract-syntax.k @@ -1,8 +1,8 @@ +require "elf-syntax.k" require "x86-syntax.k" require "x86-memory.k" module X86-ABSTRACT-SORTS syntax PointerVal - syntax NullVal endmodule module X86-ABSTRACT-SYNTAX @@ -13,25 +13,15 @@ module X86-ABSTRACT-SYNTAX imports COMMON-MEMORY-SORTS imports X86-ABSTRACT-SORTS - - syntax PointerVal ::= ptr(MemLoc, /* offset in bits */ MInt) - syntax MInt ::= PointerVal - syntax NullVal ::= "null" - syntax PointerVal ::= NullVal + syntax PointerVal ::= MInt syntax Bool ::= isPointerValNull(PointerVal) [function] - syntax MemLoc ::= getMemLoc(PointerVal) [function] - syntax MInt ::= getMIntVal(PointerVal) [function] + + syntax ROMSegment ::= StringSegment(Int, Int, String) /*@ Sorts of config cell entities */ syntax CodeInMemory ::= code(/*PointerVal -> storeInstr(Instruction)*/ Map) - //syntax CodeInMemory ::= code(/*iloc(MInt) -> storeInstr(Instruction)*/ Map) - //syntax Int ::= iloc(MInt) - syntax StackBaseInfo ::= stackBaseInfo(/*MemLoc, Intial Offset*/ K, K) - syntax ROBaseInfo ::= roBaseInfo(/*MemLoc, Intial Offset, Next location*/ K, K, K) - syntax DataBaseInfo ::= dataBaseInfo(/*MemLoc, Intial Offset, Next location*/ K, K, K) - syntax BssBaseInfo ::= bssBaseInfo(/*MemLoc, Intial Offset, Next location*/ K, K, K) syntax Abstractinstruction ::= storedInstr(Instruction) syntax Abstractinstruction ::= execinstr(Instruction) @@ -55,8 +45,6 @@ module X86-ABSTRACT-SYNTAX Subregs to Regs */ syntax Register ::= convSubRegsToRegs(Register) [function] - //syntax R64 ::= convSubRegsToRegs(Register) [function] - //syntax Ymm ::= convSubRegsToRegs(Register) [function] /*@ Reg to Regtstate keys diff --git a/semantics/x86-commom-memory-clib-interface.k b/semantics/x86-commom-memory-clib-interface.k index fb4e820e1..315943690 100644 --- a/semantics/x86-commom-memory-clib-interface.k +++ b/semantics/x86-commom-memory-clib-interface.k @@ -1,4 +1,3 @@ -requires "common-memory.k" requires "common-utils.k" requires "common-error.k" requires "library/common-c-library.k" @@ -8,7 +7,6 @@ module COMMON-CONFIGURATION endmodule module COMMON-MEMORY-CLIB-INTERFACE - imports COMMON-MEMORY imports COMMON-UTILS imports COMMON-C-LIBRARY endmodule diff --git a/semantics/x86-configuration.k b/semantics/x86-configuration.k index 7658365f1..2f345a11a 100644 --- a/semantics/x86-configuration.k +++ b/semantics/x86-configuration.k @@ -1,4 +1,5 @@ require "x86-syntax.k" +require "elf-syntax.k" require "x86-abstract-syntax.k" require "common-memory.k" require "x86-memory.k" @@ -9,44 +10,32 @@ module X86-CONFIGURATION imports X86-SYNTAX imports X86-ABSTRACT-SYNTAX imports COMMON-MEMORY-CONFIGURATION - imports X86-MEMORY-SYNTAX imports X86-INIT-SYNTAX imports MINT-WRAPPER-SYNTAX imports X86-LOADER-SYNTAX imports COMMON-C-LIBRARY-CONFIGURATION + imports ELF-SYNTAX + imports ELF-LOADER - // configuration configuration -//initEnvironment(ListItem("a.out") ListItem("HelloWorld!") .List) ~> //initRegisters($REGV:RegValPairList) ~> //initEnvironment($ARGV:List) ~> initEnvironment(.List) ~> - $PGM:Instructions ~> - loadEntryPoint ~> + $PGM:Elf ~> inforegisters ~> fetch - .Map - .Map - .Map - .Map - .K - mi(64, 0) - .K - "text" + + .Map + + mi(64, -1) - code( .Map ) - - - stackBaseInfo(.K, .K) - roBaseInfo(.K /* Alocation id*/, .K /*Base Pointer*/, .K /*Next Location*/ ) - dataBaseInfo(.K , .K , .K ) - bssBaseInfo(.K , .K , .K ) - + .Map + .List @@ -106,7 +95,6 @@ module X86-CONFIGURATION regstatequeue: For testing purposes */ - // .List .List 0 diff --git a/semantics/x86-env-init.k b/semantics/x86-env-init.k index 8e6858467..ea82b22fa 100644 --- a/semantics/x86-env-init.k +++ b/semantics/x86-env-init.k @@ -36,7 +36,7 @@ module X86-INIT 2. Setting up argc and argv in environment memory. */ rule initEnvironment(L:List) => - //allocateStackMemory(64, 16 *Int 8) ~> allocateROMemory(64, 16 *Int 8) ~> initReturnFromEntryFunction ~> initArgc(mySize(L)) ~> initArgv(L) + //allocateStackMemory(64, 16 *Int 8) ~> allocateROMemory(64, 16 *Int 8) ~> initReturnFromEntryFunction ~> initArgc(size(L)) ~> initArgv(L) allocateStackMemory(1024, 16 *Int 8) ~> allocateROMemory(256, 16 *Int 8) ~> allocateDataMemory(256, 16 *Int 8) ~> @@ -91,13 +91,8 @@ module X86-INIT Store a fake return adress mi(64, -1) which signals program executaion halt. */ syntax KItem ::= "initReturnFromEntryFunction" - rule initReturnFromEntryFunction => storeToMemory(mi(64, -1), ptr(L, BaseOffset), 64) - ... - stackBaseInfo( L:MemLoc, BaseOffset:MInt) - - syntax Int ::= mySize(List) [function] - rule mySize(.List) => 0 - rule mySize(ListItem(_) L:List) => mySize(L) +Int 1 + rule initReturnFromEntryFunction => storeToMemory(mi(64, -1), BaseOffset, 64) ... + stackBaseInfo(BaseOffset:MInt) /*@ Initialize argc diff --git a/semantics/x86-fetch-execute.k b/semantics/x86-fetch-execute.k index b3f6583c0..85489dfba 100644 --- a/semantics/x86-fetch-execute.k +++ b/semantics/x86-fetch-execute.k @@ -8,10 +8,8 @@ module X86-FETCH-EXECUTE */ rule fetch => execinstr(OpC OpR) ~> inforegisters ~> fetch ... - //code(iloc(PC) |-> storedInstr(OpC OpR) _:Map) code(PV:PointerVal |-> storedInstr(OpC OpR) _:Map) - //... "RIP" |-> ( PC => addMInt(PC, mi(64, 1))) ... - ... "RIP" |-> ( PV => addMInt(PV, ptr(getMemLoc(PV), mi(64, 1)))) ... + ... "RIP" |-> ( PV => addMInt(PV, mi(64, 1))) ... /*@ After execution of last instrcution, no more fecthes. @@ -22,7 +20,6 @@ module X86-FETCH-EXECUTE fetch => . ... code (CMap) RSMap - //requires notBool iloc( {RSMap["RIP"]}:>MInt ) in_keys ( CMap ) requires notBool {RSMap["RIP"]}:>PointerVal in_keys ( CMap ) /*@ @@ -30,12 +27,10 @@ module X86-FETCH-EXECUTE */ rule inforegisters => . ... - // ... .List => ListItem(RSMap) ListItem(FMap) ... .List => ListItem(RSMap) RSMap FMap:Map code (CMap) - //requires iloc( {RSMap["RIP"]}:>MInt ) in_keys ( CMap ) requires {RSMap["RIP"]}:>PointerVal in_keys ( CMap ) rule @@ -44,7 +39,6 @@ module X86-FETCH-EXECUTE code (CMap) RSMap FMap:Map - //requires notBool iloc( {RSMap["RIP"]}:>MInt ) in_keys ( CMap ) requires notBool {RSMap["RIP"]}:>PointerVal in_keys ( CMap ) /*@ diff --git a/semantics/x86-mint-wrapper.k b/semantics/x86-mint-wrapper.k index 534d72556..5e3eea805 100644 --- a/semantics/x86-mint-wrapper.k +++ b/semantics/x86-mint-wrapper.k @@ -441,7 +441,7 @@ module MINT-WRAPPER /*@ Covert Ints to MInts. */ - rule convertIntsToMInts(I Is, W) => mi(I, W) convertIntsToMInts(Is, W) + rule convertIntsToMInts(I Is, W) => mi(W, I) convertIntsToMInts(Is, W) rule convertIntsToMInts(.Ints, _) => .MInts /*@ diff --git a/semantics/x86-semantics.k b/semantics/x86-semantics.k index cc4edbbe9..63444af99 100644 --- a/semantics/x86-semantics.k +++ b/semantics/x86-semantics.k @@ -3,11 +3,9 @@ require "x86-env-init.k" require "x86-fetch-execute.k" require "x86-abstract-semantics.k" require "x86-flag-checks.k" -//require "x86-verification-lemmas.k" require "x86-instructions-semantics.k" require "x86-memory.k" require "x86-mint-wrapper.k" -//require "common.k" require "x86-commom-memory-clib-interface.k" require "x86-builtin.k" require "x86-c-library.k" @@ -18,7 +16,6 @@ module X86-SEMANTICS imports X86-FETCH-EXECUTE imports X86-ABSTRACT-SEMANTICS imports X86-FLAG-CHECKS - //imports X86-VERIFICATION-LEMMAS imports X86-INSTRUCTIONS-SEMANTICS imports X86-MEMORY imports MINT-WRAPPER diff --git a/semantics/x86-syntax.k b/semantics/x86-syntax.k index 06feaa148..80961ba21 100644 --- a/semantics/x86-syntax.k +++ b/semantics/x86-syntax.k @@ -1,7 +1,8 @@ +require "hex-token.k" + module X86-SORT syntax Instructions syntax Instruction - syntax Label syntax HexConstant syntax Operands syntax MemOffset @@ -32,16 +33,13 @@ module X86-SYNTAX imports FLOAT imports STRING imports MINT - imports ID - imports MINT + imports HEX-TOKEN-SYNTAX /*@ The following captures the At&t syntax of x86 assembly. */ syntax Instructions ::= List{Instruction, ""} [klabel(instructionlist)] - syntax Instruction ::= Opcode Operands - | AssemblerDirective - | Label + syntax Instruction ::= Opcode Operands syntax Builtin ::= "putchar" [token] | "getchar" [token] @@ -74,45 +72,13 @@ module X86-SYNTAX | "free" [token] | "sqrt" [token] - syntax X86Id ::= Id - /*@ - Special symbols. - */ - syntax X86Id ::= "main" [token] - | "_start" [token] - | "stdout" [token] - - syntax AssemblerDirective ::= ".section" ".rodata" - | ".data" [token] - | ".text" - | ".bss" - | ".file" String - | ".globl" X86Id - | ".string" String - | ".ascii" String - | ".long" Int - | ".quad" Int - | ".quad" X86Id - | ".quad" X86Id "+" Int - | ".comm" X86Id "," Int "," Int - | ".zero" Int - | ".byte" Int - | ".value" Int - - syntax Label ::= X86Id ":" - - syntax HexConstant ::= r"$0x[0-9a-fA-F]+" [token] - syntax Operands ::= List{Operand, ","} [klabel(operandlist)] - syntax Operand ::= Imm - | Mem - | Register - | MemOffset - | X86Id - | Builtin - | "$" X86Id - | "$" X86Id "+" Int + syntax Operand ::= Imm + | Mem + | Register + | MemOffset + | Builtin /*@ * Adding Int and Float as operands helps in * testing float-conversion directly. @@ -126,16 +92,9 @@ module X86-SYNTAX * which requires MInt to be a subSort of Operand. */ | MInt -// | Mm -// | St -// | Memoffs -// | Sreg syntax MemOffset ::= memOffset ( MInt ) -//syntax Simpleoperand ::= Register | Imm | MemOffset -//syntax Operand ::= Simpleoperand - syntax R64OrRIP ::= R64 | Rip syntax Register ::= Rh @@ -148,11 +107,9 @@ module X86-SYNTAX | Mm | Sreg | St -// syntax Memoffs ::= Offset -// | Sreg ":" Offset + syntax Offset ::= Int - syntax Imm ::= "$" Int - | HexConstant + syntax Imm ::= "$" Int | "$" HexConstant /*@ @@ -160,55 +117,20 @@ module X86-SYNTAX * Hence making MemOffset a subsort of Mem. */ syntax Mem ::= MemOffset - syntax Mem ::= /*"(" Rip ")" - | X86Id "(" Rip ")" - | X86Id "+" Int "(" Rip ")" - //------------------------------------ - |*/ "(" R64OrRIP ")" + syntax Mem ::= "(" R64OrRIP ")" | Offset "(" R64OrRIP ")" - | X86Id "(" R64OrRIP ")" - | X86Id "+" Int "(" R64OrRIP ")" //------------------------------------ | "(" "," R64 "," Scale ")" | "(" "," R64 ")" | Offset "(" "," R64 "," Scale ")" | Offset "(" "," R64 ")" - | X86Id "(" "," R64 "," Scale ")" - | X86Id "(" "," R64 ")" - | X86Id "+" Int "(" "," R64 "," Scale ")" - | X86Id "+" Int "(" "," R64 ")" //------------------------------------ | "(" R64 "," R64 "," Scale ")" | "(" R64 "," R64 ")" | Offset "(" R64 "," R64 "," Scale ")" | Offset "(" R64 "," R64 ")" - | X86Id "(" R64 "," R64 "," Scale ")" - | X86Id "(" R64 "," R64 ")" - | X86Id "+" Int "(" R64 "," R64 "," Scale ")" - | X86Id "+" Int "(" R64 "," R64 ")" - // | Int ? How should we do this for absolute addressing? -// | Sreg ":" "(" R32 ")" -// | Sreg ":" "(" R64 ")" -// | Sreg ":" "(" Rip ")" -// | Sreg ":" Offset "(" R32 ")" -// | Sreg ":" Offset "(" R64 ")" -// | Sreg ":" Offset "(" Rip ")" -// | Sreg ":" "(" "," R32 "," Scale ")" -// | Sreg ":" "(" "," R64 "," Scale ")" -// | Sreg ":" "(" "," R32 ")" -// | Sreg ":" "(" "," R64 ")" -// | Sreg ":" Offset "(" "," R32 "," Scale ")" -// | Sreg ":" Offset "(" "," R64 "," Scale ")" -// | Sreg ":" Offset "(" "," R32 ")" -// | Sreg ":" Offset "(" "," R64 ")" -// | Sreg ":" "(" R32 "," R32 "," Scale ")" -// | Sreg ":" "(" R64 "," R64 "," Scale ")" -// | Sreg ":" "(" R32 "," R32 ")" -// | Sreg ":" "(" R64 "," R64 ")" -// | Sreg ":" Offset "(" R32 "," R32 "," Scale ")" -// | Sreg ":" Offset "(" R64 "," R64 "," Scale ")" -// | Sreg ":" Offset "(" R32 "," R32 ")" -// | Sreg ":" Offset "(" R64 "," R64 ")" + //------------------------------------ + | Offset /* For absolute addressing... not sure I like this solution */ syntax Rip ::= "%rip" [token] syntax Scale ::= Int From 54631d485dcb3bf945f9ed3163472da7e575831a Mon Sep 17 00:00:00 2001 From: andrew_miranti Date: Sat, 16 Feb 2019 17:59:24 -0600 Subject: [PATCH 07/15] Hello World Works! --- scripts/process_spec.pl | 9 +- semantics/a.out | Bin 0 -> 912672 bytes semantics/builtins.k | 32 + semantics/elf-loader.k | 8 +- semantics/elf-syntax.k | 6 +- semantics/elf_reader | Bin 0 -> 917520 bytes semantics/elf_reader.c | 212 + semantics/files-to-update.txt | 78 + semantics/helloworld.c | 4 + semantics/out.txt | 163279 ++++++++++++++++++ semantics/parser_script.sh | 4 + semantics/systemInstructions/callq_rel32.k | 20 +- semantics/test.c | 6 + semantics/x86-abstract-semantics.k | 3 +- semantics/x86-abstract-syntax.k | 17 - semantics/x86-builtin.k | 101 +- semantics/x86-c-library.k | 41 +- semantics/x86-configuration.k | 24 +- semantics/x86-env-init.k | 29 +- semantics/x86-fetch-execute.k | 82 +- semantics/x86-loader.k | 653 - semantics/x86-memory.k | 320 +- semantics/x86-mint-wrapper.k | 18 +- semantics/x86-semantics.k | 5 +- semantics/x86-syntax.k | 6 +- 25 files changed, 163864 insertions(+), 1093 deletions(-) create mode 100755 semantics/a.out create mode 100644 semantics/builtins.k create mode 100755 semantics/elf_reader create mode 100644 semantics/elf_reader.c create mode 100644 semantics/files-to-update.txt create mode 100644 semantics/helloworld.c create mode 100644 semantics/out.txt create mode 100755 semantics/parser_script.sh create mode 100644 semantics/test.c delete mode 100644 semantics/x86-loader.k diff --git a/scripts/process_spec.pl b/scripts/process_spec.pl index f8672e2ce..4a9e7c87c 100755 --- a/scripts/process_spec.pl +++ b/scripts/process_spec.pl @@ -30,7 +30,7 @@ BEGIN "$home/Github/strata-data/data-regs/instructions/"; my $script = "~/x86-semantics/scripts/process_spec.pl"; my $UTInstructionsPath = "underTestInstructions/"; - +my $DECODER_DIR = "/home/andrewmiranti/Documents/University/Grad/decoder"; # TEMPORARY my $help = ""; my $stratum = ""; my $readmod = ""; @@ -313,11 +313,16 @@ BEGIN execute("mkdir -p $UTInstructionsPath"); createSingleFileDefn(); execute("git status x86-instructions-semantics.k"); +# execute( +#"time kompile x86-semantics.k --syntax-module X86-SYNTAX --main-module X86-SEMANTICS --debug -v --backend $backend -I ~/Github/llvm-verified-backend/ -I ~/Github/llvm-verified-backend/common/x86-config/", +# 1 +# ); execute( -"time kompile x86-semantics.k --syntax-module X86-SYNTAX --main-module X86-SEMANTICS --debug -v --backend $backend -I ~/Github/llvm-verified-backend/ -I ~/Github/llvm-verified-backend/common/x86-config/", +"time kompile x86-semantics.k --syntax-module ELF-SYNTAX --main-module X86-SEMANTICS --debug -v --backend $backend -I . -I ./common/ -I $DECODER_DIR", 1 ); + exit(0); } diff --git a/semantics/a.out b/semantics/a.out new file mode 100755 index 0000000000000000000000000000000000000000..f7bf9b760b62fa697acae73754e5b835f18d6a08 GIT binary patch literal 912672 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
  • ma$_JGzlLK3R#^m^H`Jl38 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 IwHvBN>0O<)0YZTDd^$J{=Oms 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

    v=?;%J$i# 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

    F8n65S@tm~wtDR(v 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

    cQ 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 z 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

    w^|E`W2G~uZYOgrf_Yd5AwNuh>{?dtrBTdsC*&o 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 z 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 Ko_GKH?f+k(Lm4&z literal 0 HcmV?d00001 diff --git a/semantics/builtins.k b/semantics/builtins.k new file mode 100644 index 000000000..7db9b890e --- /dev/null +++ b/semantics/builtins.k @@ -0,0 +1,32 @@ +module BUILTINS + syntax Builtin ::= "putchar" [token] + | "getchar" [token] + | "printf" [token] + | "fprintf" [token] + | "sprintf" [token] + | "snprintf" [token] + | "scanf" [token] + | "fscanf" [token] + | "__isoc99_fscanf" [token] + | "sscanf" [token] + | "_IO_putc" [token] + | "fputc" [token] + | "fopen" [token] + | "freopen" [token] + | "fclose" [token] + | "fflush" [token] + | "fwrite" [token] + | "fread" [token] + | "fputs" [token] + | "puts" [token] + | "feof" [token] + | "fgetc" [token] + | "getc" [token] + | "fgets" [token] + | "gets" [token] + | "fseek" [token] + | "rewind" [token] + | "malloc" [token] + | "free" [token] + | "sqrt" [token] +endmodule diff --git a/semantics/elf-loader.k b/semantics/elf-loader.k index 093853328..a18548c1e 100644 --- a/semantics/elf-loader.k +++ b/semantics/elf-loader.k @@ -1,19 +1,21 @@ require "hex-token.k" require "elf-syntax.k" require "x86-configuration.k" +require "x86-syntax.k" module ELF-LOADER imports MINT imports ELF-SYNTAX imports HEX-TOKEN imports X86-CONFIGURATION + imports X86-SYNTAX rule Cs:Commands ; => Cs [structural] rule C:Command ; Cs:Commands => C ~> Cs [structural] rule .Commands => . [structural] rule Load(Base:HexConstant, Mem:HexConstant, Len:HexConstant) => . ... - ... (.List => ListItem(StringSegment(HexConstant2Int(Base), HexConstant2Int(Base) + HexConstant2Int(Len), HexConstant2StringNoPrefix(Mem)))) + ... (.List => ListItem(StringSegment(HexConstant2Int(Base), HexConstant2Int(Base) +Int HexConstant2Int(Len), HexConstant2StringNoPrefix(Mem)))) // TODO: This rule might be unwise. Right now the *parser* implicitly defines the entry point... should be the semantics job. rule Entry(E:HexConstant) => . ... @@ -22,6 +24,6 @@ module ELF-LOADER // TODO: Log these? Emit warnings? Halt? rule NamedSymbol(_, NotPresentInFile) => . ... - rule NamedSymbol(N:String, Addr:HexConstant) => . ... - SymMap => SymMap[N <- mi(64, HexConstant2Int(Addr))] + rule NamedSymbol(B:Builtin, Addr:HexConstant) => . ... + SymMap => SymMap[mi(64, HexConstant2Int(Addr)) <- B] endmodule diff --git a/semantics/elf-syntax.k b/semantics/elf-syntax.k index 9ffb52f26..354c05d22 100644 --- a/semantics/elf-syntax.k +++ b/semantics/elf-syntax.k @@ -1,14 +1,16 @@ +require "builtins.k" require "hex-token.k" module ELF-SYNTAX imports STRING-SYNTAX imports HEX-TOKEN-SYNTAX + imports BUILTINS syntax Command ::= "Load" "(" HexConstant "," HexConstant "," HexConstant ")" /* BaseAddress, MemoryContents, SegmentLength */ // Note: SegmentLength may be "too large," remaining bytes are implicitly zero. | "Entry" "(" HexConstant ")" - | "NamedSymbol" "(" String "," "NotPresentInFile" ")" - | "NamedSymbol" "(" String "," HexConstant ")" + | "NamedSymbol" "(" Builtin "," "NotPresentInFile" ")" + | "NamedSymbol" "(" Builtin "," HexConstant ")" syntax Commands ::= List{Command, ";"} diff --git a/semantics/elf_reader b/semantics/elf_reader new file mode 100755 index 0000000000000000000000000000000000000000..01885a67e195b79b3bee957121bbcbf5f6328132 GIT binary patch literal 917520 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

    mKB_ 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

    v#4sxc%|2zeC^LXC| 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 literal 0 HcmV?d00001 diff --git a/semantics/elf_reader.c b/semantics/elf_reader.c new file mode 100644 index 000000000..8ed7439ba --- /dev/null +++ b/semantics/elf_reader.c @@ -0,0 +1,212 @@ +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void * read_stdin() { + const size_t INITIAL_SIZE = 1024; + void * result = mmap(NULL, INITIAL_SIZE, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0); + size_t so_far = 0; + size_t size = INITIAL_SIZE; + while (!feof(stdin)) { + so_far += fread((char*)result + so_far, 1, size-so_far, stdin); + if (ferror(stdin)) { + fprintf(stderr, "Error occurred while reading"); + exit(EXIT_FAILURE); + } else if (!feof(stdin) && so_far == size) { + const size_t new_size = 2 * size; + result = mremap(result, size, new_size, MREMAP_MAYMOVE); + size = new_size; + } + } + return result; +} + +void * read_file(const char * name) { + int fd = open(name, O_RDONLY); + if (fd < 0) { + fprintf(stderr, "Failed to open file %s with error: %s\n", name, strerror(errno)); + exit(EXIT_FAILURE); + } + struct stat file_stats; + if (fstat(fd, &file_stats) < 0) { + fprintf(stderr, "Failed to stat file %s with error: %s\n", name, strerror(errno)); + exit(EXIT_FAILURE); + } + + void * result = mmap(NULL, file_stats.st_size, PROT_READ, MAP_PRIVATE, fd, 0); + if (result == (void*)-1) { + fprintf(stderr, "Failed to mmap file %s with error: %s\n", name, strerror(errno)); + exit(EXIT_FAILURE); + } + + close(fd); + return result; +} + +const Elf64_Ehdr * read_elf_header(const char * name, const void * data) { + const Elf64_Ehdr * elf_header = (const Elf64_Ehdr*)data; + if (elf_header->e_ident[EI_MAG0] != ELFMAG0 || + elf_header->e_ident[EI_MAG1] != ELFMAG1 || + elf_header->e_ident[EI_MAG2] != ELFMAG2 || + elf_header->e_ident[EI_MAG3] != ELFMAG3) { + fprintf(stderr, "File %s does not appear to be an ELF file\n", name); + exit(EXIT_FAILURE); + } + + if (elf_header->e_ident[EI_DATA] != ELFDATA2LSB) { + fprintf(stderr, "This program currently only supports LSB ELF files"); // I believe all x86_64 ELF files are LSB but might be wrong about that. + exit(EXIT_FAILURE); + } + + if (elf_header->e_ident[EI_CLASS] != ELFCLASS64) { + fprintf(stderr, "This program only supports 64-bit ELF files\n"); + exit(EXIT_FAILURE); + } + + if (elf_header->e_type != ET_EXEC) { + fprintf(stderr, "Warning - Unsupported use-case: file %s is not an executable\n", name); + } + + if (!(elf_header->e_type & EM_X86_64)) { + if (elf_header->e_type != EM_NONE) { + fprintf(stderr, "Warning: This executable's machine type is not known.\n"); + } else { + fprintf(stderr, "This executable is not x86_64, exiting.\n"); + exit(EXIT_FAILURE); + } + } + + return elf_header; +} + +size_t read_num_program_headers(const Elf64_Ehdr * header, const void * input) { + if (!header->e_phoff) { + return 0; + } + if (header->e_phnum < PN_XNUM) { + return header->e_phnum; + } else { + return ((const Elf64_Shdr*)((const char *)input + header->e_shoff))->sh_info; + } +} + +void read_program_header(const Elf64_Ehdr * file_header, const void * input) { + const size_t num_headers = read_num_program_headers(file_header, input); + + for (size_t i = 0; i < num_headers; ++i) { + const Elf64_Phdr * program_header = + (const Elf64_Phdr*)((const char*)input + file_header->e_phoff + i * file_header->e_phentsize); + switch (program_header->p_type) { + case PT_INTERP: + case PT_DYNAMIC: + fprintf(stderr, "Found dynamic linking information, this file only supports statically linked executables\n"); + exit(EXIT_FAILURE); + break; + case PT_LOAD: + printf("Load(0x%lx, 0x", (size_t)program_header->p_vaddr); + const char * base = (const char*)input + program_header->p_offset; + for (size_t i = 0; i < program_header->p_memsz; ++i) { + printf("%02x", i < program_header->p_filesz ? (unsigned int)(base[i]) & 0xFF : 0); + } + printf(", 0x%lx);\n", program_header->p_memsz); + break; + default: + break; + } + } +} + +size_t read_num_sections(const Elf64_Ehdr * header, const void * input) { + if (!header->e_shoff) { + return 0; + } + + if (header->e_shnum) { + return header->e_shnum; + } else { + return ((const Elf64_Shdr *)(((const char *)input) + header->e_shoff))->sh_size; + } +} + +const size_t NAME_NOT_FOUND = (size_t)(-1); + +const char * MAIN_SYMBOL_NAME = "main"; +// Based on code from https://wiki.osdev.org/ELF_Tutorial#Accessing_Section_Headers - since the man page doesn't document sh_link at all. +size_t find_main_in_symbol_table(const Elf64_Ehdr * elf_header, const Elf64_Shdr* section_header, const void * input, const char * query) { + const Elf64_Shdr * string_table = (const Elf64_Shdr*)(((const char *)input) + elf_header->e_shoff + section_header->sh_link * elf_header->e_shentsize); + const size_t num_symbols = section_header->sh_size / section_header->sh_entsize; + for (size_t i = 0; i < num_symbols; ++i) { + const Elf64_Sym * symbol = (const Elf64_Sym *)(((const char *)input) + section_header->sh_offset + i * section_header->sh_entsize); + const char * name = ((const char *)input) + string_table->sh_offset + symbol->st_name; + if (!strcmp(name, query)) { + return symbol->st_value; + } + } + return NAME_NOT_FOUND; +} + +// We can't use the main program entry point yet, as the glibc initialization code will not work until we have implementations of several syscalls +// (Including uname, settimeofday, among others) & an implementation of cpuid. +size_t find_symbol(const Elf64_Ehdr * elf_header, const void * input, const char * query) { + const size_t num_sections = read_num_sections(elf_header, input); + for (size_t i = 0; i < num_sections; ++i) { + const Elf64_Shdr * section_header = + (const Elf64_Shdr*)((const char*)input + elf_header->e_shoff + i * elf_header->e_shentsize); + switch (section_header->sh_type) { + case SHT_SYMTAB: + case SHT_DYNSYM: + { + const size_t result = find_main_in_symbol_table(elf_header, section_header, input, query); + if (result != NAME_NOT_FOUND) { + return result; + } + } + default: + break; + } + } + return NAME_NOT_FOUND; +} + +int main(const int argc, const char ** argv) { + const void * input = NULL; + const char * name = NULL; + + if (argc < 2) { + fprintf(stderr, "Usage: ./elf_reader (elf_file/-) name1 name2 name3... \n"); // Main is always added to this list. + exit(EXIT_FAILURE); + } + + if(!strcmp(argv[1], "-")) { + name = "stdin"; + input = read_stdin(); + } else { + name = argv[1]; + input = read_file(name); + } + + const Elf64_Ehdr * elf_header = read_elf_header(name, input); + printf("Entry(0x%lx);\n", find_symbol(elf_header, input, MAIN_SYMBOL_NAME)); + + for (int i = 2; i < argc; ++i) { + const char * symbol_name = argv[i]; + const size_t value = find_symbol(elf_header, input, symbol_name); + if (value == NAME_NOT_FOUND) { + printf("NamedSymbol(%s, NotPresentInFile);\n", symbol_name); + } else { + printf("NamedSymbol(%s, 0x%lx);\n", symbol_name, value); + } + } + + read_program_header(elf_header, input); + + return 0; +} diff --git a/semantics/files-to-update.txt b/semantics/files-to-update.txt new file mode 100644 index 000000000..8ba8b4f9f --- /dev/null +++ b/semantics/files-to-update.txt @@ -0,0 +1,78 @@ +./systemInstructions/callq_m64.k +./systemInstructions/callq_r64.k +./systemInstructions/callq_rel32.k +./systemInstructions/jae_rel32.k +./systemInstructions/jae_rel8.k +./systemInstructions/ja_rel32.k +./systemInstructions/ja_rel8.k +./systemInstructions/jbe_rel32.k +./systemInstructions/jbe_rel8.k +./systemInstructions/jb_rel32.k +./systemInstructions/jb_rel8.k +./systemInstructions/jc_rel32.k +./systemInstructions/jc_rel8.k +./systemInstructions/jecxz_rel32.k +./systemInstructions/jecxz_rel8.k +./systemInstructions/je_rel32.k +./systemInstructions/je_rel8.k +./systemInstructions/jge_rel32.k +./systemInstructions/jge_rel8.k +./systemInstructions/jg_rel32.k +./systemInstructions/jg_rel8.k +./systemInstructions/jle_rel32.k +./systemInstructions/jle_rel8.k +./systemInstructions/jl_rel32.k +./systemInstructions/jl_rel8.k +./systemInstructions/jmp_m64.k +./systemInstructions/jmp_r64.k +./systemInstructions/jmp_rel32.k +./systemInstructions/jmp_rel8.k +./systemInstructions/jnae_rel32.k +./systemInstructions/jnae_rel8.k +./systemInstructions/jna_rel32.k +./systemInstructions/jna_rel8.k +./systemInstructions/jnbe_rel32.k +./systemInstructions/jnbe_rel8.k +./systemInstructions/jnb_rel32.k +./systemInstructions/jnb_rel8.k +./systemInstructions/jnc_rel32.k +./systemInstructions/jnc_rel8.k +./systemInstructions/jne_rel32.k +./systemInstructions/jne_rel8.k +./systemInstructions/jnge_rel32.k +./systemInstructions/jnge_rel8.k +./systemInstructions/jng_rel32.k +./systemInstructions/jng_rel8.k +./systemInstructions/jnle_rel32.k +./systemInstructions/jnle_rel8.k +./systemInstructions/jnl_rel32.k +./systemInstructions/jnl_rel8.k +./systemInstructions/jno_rel32.k +./systemInstructions/jno_rel8.k +./systemInstructions/jnp_rel32.k +./systemInstructions/jnp_rel8.k +./systemInstructions/jns_rel32.k +./systemInstructions/jns_rel8.k +./systemInstructions/jnz_rel32.k +./systemInstructions/jnz_rel8.k +./systemInstructions/jo_rel32.k +./systemInstructions/jo_rel8.k +./systemInstructions/jpe_rel32.k +./systemInstructions/jpe_rel8.k +./systemInstructions/jpo_rel32.k +./systemInstructions/jpo_rel8.k +./systemInstructions/jp_rel32.k +./systemInstructions/jp_rel8.k +./systemInstructions/jrcxz_rel32.k +./systemInstructions/jrcxz_rel8.k +./systemInstructions/js_rel32.k +./systemInstructions/js_rel8.k +./systemInstructions/jz_rel32.k +./systemInstructions/jz_rel8.k +./systemInstructions/loope_rel8.k +./systemInstructions/loopne_rel8.k +./systemInstructions/loopnz_rel8.k +./systemInstructions/loop_rel8.k +./systemInstructions/loopz_rel8.k +./systemInstructions/retq.k +./systemInstructions/ud2.k diff --git a/semantics/helloworld.c b/semantics/helloworld.c new file mode 100644 index 000000000..0abea747e --- /dev/null +++ b/semantics/helloworld.c @@ -0,0 +1,4 @@ +#include +int main() { + printf("Hello World\n"); +} diff --git a/semantics/out.txt b/semantics/out.txt new file mode 100644 index 000000000..8f5ffa60f --- /dev/null +++ b/semantics/out.txt @@ -0,0 +1,163279 @@ + +a.out: file format elf64-x86-64 + + +Disassembly of section .init: + +00000000004002c8 <_init>: + 4002c8: 48 83 ec 08 sub $0x8,%rsp + 4002cc: 48 8b 05 1d 9d 2c 00 mov 0x2c9d1d(%rip),%rax # 6c9ff0 <__stack_prot+0x10> + 4002d3: 48 85 c0 test %rax,%rax + 4002d6: 74 05 je 4002dd <_init+0x15> + 4002d8: e8 23 fd bf ff callq 0 <_nl_current_LC_CTYPE> + 4002dd: 48 83 c4 08 add $0x8,%rsp + 4002e1: c3 retq + +Disassembly of section .plt: + +00000000004002f0 <.plt>: + 4002f0: ff 25 22 9d 2c 00 jmpq *0x2c9d22(%rip) # 6ca018 <_GLOBAL_OFFSET_TABLE_+0x18> + 4002f6: 68 00 00 00 00 pushq $0x0 + 4002fb: e9 00 00 00 00 jmpq 400300 <__rela_iplt_end+0x38> + 400300: ff 25 1a 9d 2c 00 jmpq *0x2c9d1a(%rip) # 6ca020 <_GLOBAL_OFFSET_TABLE_+0x20> + 400306: 68 00 00 00 00 pushq $0x0 + 40030b: e9 00 00 00 00 jmpq 400310 <__rela_iplt_end+0x48> + 400310: ff 25 12 9d 2c 00 jmpq *0x2c9d12(%rip) # 6ca028 <_GLOBAL_OFFSET_TABLE_+0x28> + 400316: 68 00 00 00 00 pushq $0x0 + 40031b: e9 00 00 00 00 jmpq 400320 <__rela_iplt_end+0x58> + 400320: ff 25 0a 9d 2c 00 jmpq *0x2c9d0a(%rip) # 6ca030 <_GLOBAL_OFFSET_TABLE_+0x30> + 400326: 68 00 00 00 00 pushq $0x0 + 40032b: e9 00 00 00 00 jmpq 400330 <__rela_iplt_end+0x68> + 400330: ff 25 02 9d 2c 00 jmpq *0x2c9d02(%rip) # 6ca038 <_GLOBAL_OFFSET_TABLE_+0x38> + 400336: 68 00 00 00 00 pushq $0x0 + 40033b: e9 00 00 00 00 jmpq 400340 <__rela_iplt_end+0x78> + 400340: ff 25 fa 9c 2c 00 jmpq *0x2c9cfa(%rip) # 6ca040 <_GLOBAL_OFFSET_TABLE_+0x40> + 400346: 68 00 00 00 00 pushq $0x0 + 40034b: e9 00 00 00 00 jmpq 400350 <__rela_iplt_end+0x88> + 400350: ff 25 f2 9c 2c 00 jmpq *0x2c9cf2(%rip) # 6ca048 <_GLOBAL_OFFSET_TABLE_+0x48> + 400356: 68 00 00 00 00 pushq $0x0 + 40035b: e9 00 00 00 00 jmpq 400360 <__rela_iplt_end+0x98> + 400360: ff 25 ea 9c 2c 00 jmpq *0x2c9cea(%rip) # 6ca050 <_GLOBAL_OFFSET_TABLE_+0x50> + 400366: 68 00 00 00 00 pushq $0x0 + 40036b: e9 00 00 00 00 jmpq 400370 <__rela_iplt_end+0xa8> + 400370: ff 25 e2 9c 2c 00 jmpq *0x2c9ce2(%rip) # 6ca058 <_GLOBAL_OFFSET_TABLE_+0x58> + 400376: 68 00 00 00 00 pushq $0x0 + 40037b: e9 00 00 00 00 jmpq 400380 <__rela_iplt_end+0xb8> + 400380: ff 25 da 9c 2c 00 jmpq *0x2c9cda(%rip) # 6ca060 <_GLOBAL_OFFSET_TABLE_+0x60> + 400386: 68 00 00 00 00 pushq $0x0 + 40038b: e9 00 00 00 00 jmpq 400390 + +Disassembly of section .text: + +0000000000400390 : + 400390: ff cf dec %edi + 400392: 0f 8e 3a 01 00 00 jle 4004d2 + 400398: 40 84 f6 test %sil,%sil + 40039b: 0f 84 31 01 00 00 je 4004d2 + 4003a1: 55 push %rbp + 4003a2: 53 push %rbx + 4003a3: be 40 00 00 00 mov $0x40,%esi + 4003a8: 89 d5 mov %edx,%ebp + 4003aa: 48 81 ec 08 06 00 00 sub $0x608,%rsp + 4003b1: 48 89 e7 mov %rsp,%rdi + 4003b4: e8 b7 23 04 00 callq 442770 <__backtrace> + 4003b9: 83 f8 02 cmp $0x2,%eax + 4003bc: 41 89 c0 mov %eax,%r8d + 4003bf: 0f 8e 04 01 00 00 jle 4004c9 + 4003c5: 48 63 dd movslq %ebp,%rbx + 4003c8: ba 1d 00 00 00 mov $0x1d,%edx + 4003cd: be c8 1b 4a 00 mov $0x4a1bc8,%esi + 4003d2: 48 89 df mov %rbx,%rdi + 4003d5: b8 01 00 00 00 mov $0x1,%eax + 4003da: 0f 05 syscall + 4003dc: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 4003e2: 76 0c jbe 4003f0 + 4003e4: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 4003eb: f7 d8 neg %eax + 4003ed: 64 89 02 mov %eax,%fs:(%rdx) + 4003f0: 41 8d 70 ff lea -0x1(%r8),%esi + 4003f4: 48 8d 7c 24 08 lea 0x8(%rsp),%rdi + 4003f9: 89 ea mov %ebp,%edx + 4003fb: e8 d0 23 04 00 callq 4427d0 <__backtrace_symbols_fd> + 400400: ba 1d 00 00 00 mov $0x1d,%edx + 400405: be e6 1b 4a 00 mov $0x4a1be6,%esi + 40040a: 48 89 df mov %rbx,%rdi + 40040d: b8 01 00 00 00 mov $0x1,%eax + 400412: 0f 05 syscall + 400414: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 40041a: 76 0c jbe 400428 + 40041c: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 400423: f7 d8 neg %eax + 400425: 64 89 02 mov %eax,%fs:(%rdx) + 400428: 31 f6 xor %esi,%esi + 40042a: bf 04 1c 4a 00 mov $0x4a1c04,%edi + 40042f: b8 02 00 00 00 mov $0x2,%eax + 400434: 0f 05 syscall + 400436: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 40043c: 76 10 jbe 40044e + 40043e: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 400445: f7 d8 neg %eax + 400447: 64 89 02 mov %eax,%fs:(%rdx) + 40044a: 48 83 c8 ff or $0xffffffffffffffff,%rax + 40044e: 4c 63 c0 movslq %eax,%r8 + 400451: 31 ed xor %ebp,%ebp + 400453: 41 ba 01 00 00 00 mov $0x1,%r10d + 400459: ba 00 04 00 00 mov $0x400,%edx + 40045e: 48 8d b4 24 00 02 00 lea 0x200(%rsp),%rsi + 400465: 00 + 400466: 4c 89 c7 mov %r8,%rdi + 400469: 89 e8 mov %ebp,%eax + 40046b: 0f 05 syscall + 40046d: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 400473: 49 89 c1 mov %rax,%r9 + 400476: 76 1a jbe 400492 + 400478: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 40047f: 41 f7 d9 neg %r9d + 400482: 64 44 89 08 mov %r9d,%fs:(%rax) + 400486: 4c 89 c7 mov %r8,%rdi + 400489: b8 03 00 00 00 mov $0x3,%eax + 40048e: 0f 05 syscall + 400490: eb 37 jmp 4004c9 + 400492: 48 85 c0 test %rax,%rax + 400495: 7e ef jle 400486 + 400497: 4c 89 ca mov %r9,%rdx + 40049a: 48 8d b4 24 00 02 00 lea 0x200(%rsp),%rsi + 4004a1: 00 + 4004a2: 48 89 df mov %rbx,%rdi + 4004a5: 44 89 d0 mov %r10d,%eax + 4004a8: 0f 05 syscall + 4004aa: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 4004b0: 76 10 jbe 4004c2 + 4004b2: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 4004b9: f7 d8 neg %eax + 4004bb: 64 89 02 mov %eax,%fs:(%rdx) + 4004be: 48 83 c8 ff or $0xffffffffffffffff,%rax + 4004c2: 49 39 c1 cmp %rax,%r9 + 4004c5: 74 92 je 400459 + 4004c7: eb bd jmp 400486 + 4004c9: 48 81 c4 08 06 00 00 add $0x608,%rsp + 4004d0: 5b pop %rbx + 4004d1: 5d pop %rbp + 4004d2: c3 retq + +00000000004004d3 : + 4004d3: 50 push %rax + 4004d4: b9 28 2e 4a 00 mov $0x4a2e28,%ecx + 4004d9: ba 75 02 00 00 mov $0x275,%edx + 4004de: be a8 1f 4a 00 mov $0x4a1fa8,%esi + 4004e3: bf 80 23 4a 00 mov $0x4a2380,%edi + 4004e8: e8 33 69 01 00 callq 416e20 <__malloc_assert> + +00000000004004ed <__gconv_release_step.part.1>: + 4004ed: 50 push %rax + 4004ee: b9 80 51 4a 00 mov $0x4a5180,%ecx + 4004f3: ba ea 00 00 00 mov $0xea,%edx + 4004f8: be 18 51 4a 00 mov $0x4a5118,%esi + 4004fd: bf 23 51 4a 00 mov $0x4a5123,%edi + 400502: e8 39 12 00 00 callq 401740 <__assert_fail> + +0000000000400507 : + 400507: 48 8b 07 mov (%rdi),%rax + 40050a: be ff ff ff 7f mov $0x7fffffff,%esi + 40050f: 0f b6 00 movzbl (%rax),%eax + 400512: 83 e8 30 sub $0x30,%eax + 400515: 48 8b 17 mov (%rdi),%rdx + 400518: 48 8d 4a 01 lea 0x1(%rdx),%rcx + 40051c: 48 89 0f mov %rcx,(%rdi) + 40051f: 0f b6 4a 01 movzbl 0x1(%rdx),%ecx + 400523: 83 e9 30 sub $0x30,%ecx + 400526: 83 f9 09 cmp $0x9,%ecx + 400529: 77 25 ja 400550 + 40052b: 85 c0 test %eax,%eax + 40052d: 78 e6 js 400515 + 40052f: 3d cc cc cc 0c cmp $0xccccccc,%eax + 400534: 7f 15 jg 40054b + 400536: 6b d0 0a imul $0xa,%eax,%edx + 400539: 89 f0 mov %esi,%eax + 40053b: 29 c8 sub %ecx,%eax + 40053d: 01 d1 add %edx,%ecx + 40053f: 39 c2 cmp %eax,%edx + 400541: b8 ff ff ff ff mov $0xffffffff,%eax + 400546: 0f 4e c1 cmovle %ecx,%eax + 400549: eb ca jmp 400515 + 40054b: 83 c8 ff or $0xffffffff,%eax + 40054e: eb c5 jmp 400515 + 400550: c3 retq + +0000000000400551 : + 400551: 48 8b 0f mov (%rdi),%rcx + 400554: 41 b8 ff ff ff 7f mov $0x7fffffff,%r8d + 40055a: 8b 01 mov (%rcx),%eax + 40055c: 48 83 c1 04 add $0x4,%rcx + 400560: 83 e8 30 sub $0x30,%eax + 400563: 8b 11 mov (%rcx),%edx + 400565: 8d 72 d0 lea -0x30(%rdx),%esi + 400568: 83 fe 09 cmp $0x9,%esi + 40056b: 77 2a ja 400597 + 40056d: 85 c0 test %eax,%eax + 40056f: 78 20 js 400591 + 400571: 3d cc cc cc 0c cmp $0xccccccc,%eax + 400576: 7f 16 jg 40058e + 400578: 6b d0 0a imul $0xa,%eax,%edx + 40057b: 44 89 c0 mov %r8d,%eax + 40057e: 29 f0 sub %esi,%eax + 400580: 01 d6 add %edx,%esi + 400582: 39 c2 cmp %eax,%edx + 400584: b8 ff ff ff ff mov $0xffffffff,%eax + 400589: 0f 4e c6 cmovle %esi,%eax + 40058c: eb 03 jmp 400591 + 40058e: 83 c8 ff or $0xffffffff,%eax + 400591: 48 83 c1 04 add $0x4,%rcx + 400595: eb cc jmp 400563 + 400597: 48 89 0f mov %rcx,(%rdi) + 40059a: c3 retq + +000000000040059b : + 40059b: 50 push %rax + 40059c: bf 02 00 00 00 mov $0x2,%edi + 4005a1: be 98 5b 4b 00 mov $0x4b5b98,%esi + 4005a6: 31 c0 xor %eax,%eax + 4005a8: e8 a3 35 07 00 callq 473b50 <_dl_dprintf> + 4005ad: bf 7f 00 00 00 mov $0x7f,%edi + 4005b2: e8 19 e2 03 00 callq 43e7d0 <_exit> + 4005b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4005be: 00 00 + +00000000004005c0 : + 4005c0: 48 8b 05 31 c4 2c 00 mov 0x2cc431(%rip),%rax # 6cc9f8 + 4005c7: 48 85 c0 test %rax,%rax + 4005ca: 74 11 je 4005dd + 4005cc: bf 7c c4 4b 00 mov $0x4bc47c,%edi + 4005d1: b9 0e 00 00 00 mov $0xe,%ecx + 4005d6: 48 89 c6 mov %rax,%rsi + 4005d9: f3 a6 repz cmpsb %es:(%rdi),%ds:(%rsi) + 4005db: 75 01 jne 4005de + 4005dd: c3 retq + 4005de: 48 89 c7 mov %rax,%rdi + 4005e1: e9 ca d7 01 00 jmpq 41ddb0 <__cfree> + 4005e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4005ed: 00 00 00 + +00000000004005f0 : + 4005f0: 8b 05 8a c0 2c 00 mov 0x2cc08a(%rip),%eax # 6cc680 <_dl_x86_cpu_features> + 4005f6: 41 54 push %r12 + 4005f8: 55 push %rbp + 4005f9: 53 push %rbx + 4005fa: 83 f8 01 cmp $0x1,%eax + 4005fd: 74 0e je 40060d + 4005ff: 83 f8 02 cmp $0x2,%eax + 400602: 0f 84 07 01 00 00 je 40070f + 400608: 5b pop %rbx + 400609: 5d pop %rbp + 40060a: 41 5c pop %r12 + 40060c: c3 retq + 40060d: 8b 35 71 c0 2c 00 mov 0x2cc071(%rip),%esi # 6cc684 <_dl_x86_cpu_features+0x4> + 400613: bf bc 00 00 00 mov $0xbc,%edi + 400618: e8 03 da 03 00 callq 43e020 + 40061d: 8b 35 61 c0 2c 00 mov 0x2cc061(%rip),%esi # 6cc684 <_dl_x86_cpu_features+0x4> + 400623: bf c2 00 00 00 mov $0xc2,%edi + 400628: 49 89 c4 mov %rax,%r12 + 40062b: e8 f0 d9 03 00 callq 43e020 + 400630: 48 85 c0 test %rax,%rax + 400633: 48 89 c5 mov %rax,%rbp + 400636: bf 03 00 00 00 mov $0x3,%edi + 40063b: 0f 8e 2c 02 00 00 jle 40086d + 400641: 44 8b 05 3c c0 2c 00 mov 0x2cc03c(%rip),%r8d # 6cc684 <_dl_x86_cpu_features+0x4> + 400648: 41 83 f8 03 cmp $0x3,%r8d + 40064c: 7e 39 jle 400687 + 40064e: 44 8b 0d 63 c0 2c 00 mov 0x2cc063(%rip),%r9d # 6cc6b8 <_dl_x86_cpu_features+0x38> + 400655: 44 8b 15 60 c0 2c 00 mov 0x2cc060(%rip),%r10d # 6cc6bc <_dl_x86_cpu_features+0x3c> + 40065c: 31 c9 xor %ecx,%ecx + 40065e: be 04 00 00 00 mov $0x4,%esi + 400663: eb 16 jmp 40067b + 400665: 0f 1f 00 nopl (%rax) + 400668: 89 c2 mov %eax,%edx + 40066a: 44 89 d9 mov %r11d,%ecx + 40066d: c1 ea 05 shr $0x5,%edx + 400670: 83 e2 07 and $0x7,%edx + 400673: 39 d7 cmp %edx,%edi + 400675: 0f 84 44 01 00 00 je 4007bf + 40067b: 44 8d 59 01 lea 0x1(%rcx),%r11d + 40067f: 89 f0 mov %esi,%eax + 400681: 0f a2 cpuid + 400683: a8 1f test $0x1f,%al + 400685: 75 e1 jne 400668 + 400687: 0f b6 15 00 c0 2c 00 movzbl 0x2cc000(%rip),%edx # 6cc68e <_dl_x86_cpu_features+0xe> + 40068e: 48 85 ed test %rbp,%rbp + 400691: 7e 11 jle 4006a4 + 400693: 85 d2 test %edx,%edx + 400695: 74 0d je 4006a4 + 400697: 48 89 e8 mov %rbp,%rax + 40069a: 89 d1 mov %edx,%ecx + 40069c: 48 99 cqto + 40069e: 48 f7 f9 idiv %rcx + 4006a1: 48 89 c5 mov %rax,%rbp + 4006a4: 4d 85 e4 test %r12,%r12 + 4006a7: 7e 2c jle 4006d5 + 4006a9: 4c 89 e0 mov %r12,%rax + 4006ac: 4c 89 25 05 aa 2c 00 mov %r12,0x2caa05(%rip) # 6cb0b8 <__x86_raw_data_cache_size> + 4006b3: 41 80 e4 00 and $0x0,%r12b + 4006b7: 48 d1 f8 sar %rax + 4006ba: 4c 89 25 07 aa 2c 00 mov %r12,0x2caa07(%rip) # 6cb0c8 <__x86_data_cache_size> + 4006c1: 48 89 05 f8 a9 2c 00 mov %rax,0x2ca9f8(%rip) # 6cb0c0 <__x86_raw_data_cache_size_half> + 4006c8: 4c 89 e0 mov %r12,%rax + 4006cb: 48 d1 f8 sar %rax + 4006ce: 48 89 05 fb a9 2c 00 mov %rax,0x2ca9fb(%rip) # 6cb0d0 <__x86_data_cache_size_half> + 4006d5: 48 85 ed test %rbp,%rbp + 4006d8: 0f 8e 2a ff ff ff jle 400608 + 4006de: 48 89 e8 mov %rbp,%rax + 4006e1: 48 89 2d b0 a9 2c 00 mov %rbp,0x2ca9b0(%rip) # 6cb098 <__x86_raw_shared_cache_size> + 4006e8: 40 80 e5 00 and $0x0,%bpl + 4006ec: 48 d1 f8 sar %rax + 4006ef: 48 89 2d b2 a9 2c 00 mov %rbp,0x2ca9b2(%rip) # 6cb0a8 <__x86_shared_cache_size> + 4006f6: 48 89 05 a3 a9 2c 00 mov %rax,0x2ca9a3(%rip) # 6cb0a0 <__x86_raw_shared_cache_size_half> + 4006fd: 48 89 e8 mov %rbp,%rax + 400700: 48 d1 f8 sar %rax + 400703: 5b pop %rbx + 400704: 48 89 05 a5 a9 2c 00 mov %rax,0x2ca9a5(%rip) # 6cb0b0 <__x86_shared_cache_size_half> + 40070b: 5d pop %rbp + 40070c: 41 5c pop %r12 + 40070e: c3 retq + 40070f: bf bc 00 00 00 mov $0xbc,%edi + 400714: e8 27 da 03 00 callq 43e140 + 400719: bf bf 00 00 00 mov $0xbf,%edi + 40071e: 49 89 c4 mov %rax,%r12 + 400721: e8 1a da 03 00 callq 43e140 + 400726: bf c2 00 00 00 mov $0xc2,%edi + 40072b: 48 89 c5 mov %rax,%rbp + 40072e: e8 0d da 03 00 callq 43e140 + 400733: 48 89 c7 mov %rax,%rdi + 400736: b8 00 00 00 80 mov $0x80000000,%eax + 40073b: 0f a2 cpuid + 40073d: 48 85 ff test %rdi,%rdi + 400740: 89 c6 mov %eax,%esi + 400742: 7e 25 jle 400769 + 400744: 3d 07 00 00 80 cmp $0x80000007,%eax + 400749: 77 45 ja 400790 + 40074b: b8 01 00 00 00 mov $0x1,%eax + 400750: 0f a2 cpuid + 400752: 81 e2 00 00 00 10 and $0x10000000,%edx + 400758: 89 c6 mov %eax,%esi + 40075a: 74 0a je 400766 + 40075c: c1 eb 10 shr $0x10,%ebx + 40075f: 0f b6 cb movzbl %bl,%ecx + 400762: 85 c9 test %ecx,%ecx + 400764: 75 42 jne 4007a8 + 400766: 48 01 fd add %rdi,%rbp + 400769: 81 fe 00 00 00 80 cmp $0x80000000,%esi + 40076f: 0f 86 2f ff ff ff jbe 4006a4 + 400775: b8 01 00 00 80 mov $0x80000001,%eax + 40077a: 0f a2 cpuid + 40077c: 80 e5 01 and $0x1,%ch + 40077f: 74 34 je 4007b5 + 400781: c7 05 2d ca 2c 00 ff movl $0xffffffff,0x2cca2d(%rip) # 6cd1b8 <__x86_prefetchw> + 400788: ff ff ff + 40078b: e9 14 ff ff ff jmpq 4006a4 + 400790: b8 08 00 00 80 mov $0x80000008,%eax + 400795: 0f a2 cpuid + 400797: c1 e9 0c shr $0xc,%ecx + 40079a: 89 c6 mov %eax,%esi + 40079c: b8 01 00 00 00 mov $0x1,%eax + 4007a1: 83 e1 0f and $0xf,%ecx + 4007a4: d3 e0 shl %cl,%eax + 4007a6: 89 c1 mov %eax,%ecx + 4007a8: 48 89 f8 mov %rdi,%rax + 4007ab: 48 99 cqto + 4007ad: 48 f7 f9 idiv %rcx + 4007b0: 48 89 c7 mov %rax,%rdi + 4007b3: eb b1 jmp 400766 + 4007b5: 85 d2 test %edx,%edx + 4007b7: 0f 89 e7 fe ff ff jns 4006a4 + 4007bd: eb c2 jmp 400781 + 4007bf: c1 e8 0e shr $0xe,%eax + 4007c2: ba 01 00 00 00 mov $0x1,%edx + 4007c7: 25 ff 03 00 00 and $0x3ff,%eax + 4007cc: 89 c6 mov %eax,%esi + 4007ce: 0f 84 ba fe ff ff je 40068e + 4007d4: 41 83 f8 0a cmp $0xa,%r8d + 4007d8: 7e 43 jle 40081d + 4007da: 31 d2 xor %edx,%edx + 4007dc: 41 bb 0b 00 00 00 mov $0xb,%r11d + 4007e2: 44 8d 42 01 lea 0x1(%rdx),%r8d + 4007e6: 44 89 d8 mov %r11d,%eax + 4007e9: 89 d1 mov %edx,%ecx + 4007eb: 0f a2 cpuid + 4007ed: 0f b6 db movzbl %bl,%ebx + 4007f0: 81 e1 f0 0f 00 00 and $0xff0,%ecx + 4007f6: 85 db test %ebx,%ebx + 4007f8: 74 23 je 40081d + 4007fa: 85 c9 test %ecx,%ecx + 4007fc: 74 1f je 40081d + 4007fe: 81 f9 00 02 00 00 cmp $0x200,%ecx + 400804: 44 89 c2 mov %r8d,%edx + 400807: 75 d9 jne 4007e2 + 400809: 0f bd c6 bsr %esi,%eax + 40080c: 8d 48 01 lea 0x1(%rax),%ecx + 40080f: 83 c8 ff or $0xffffffff,%eax + 400812: 83 eb 01 sub $0x1,%ebx + 400815: d3 e0 shl %cl,%eax + 400817: f7 d0 not %eax + 400819: 21 d8 and %ebx,%eax + 40081b: 89 c6 mov %eax,%esi + 40081d: 41 83 f9 06 cmp $0x6,%r9d + 400821: 8d 56 01 lea 0x1(%rsi),%edx + 400824: 0f 94 c1 sete %cl + 400827: 83 ff 02 cmp $0x2,%edi + 40082a: 0f 94 c0 sete %al + 40082d: 84 c1 test %al,%cl + 40082f: 0f 84 59 fe ff ff je 40068e + 400835: 83 fa 02 cmp $0x2,%edx + 400838: 0f 86 50 fe ff ff jbe 40068e + 40083e: 41 8d 4a c9 lea -0x37(%r10),%ecx + 400842: 83 f9 26 cmp $0x26,%ecx + 400845: 0f 87 43 fe ff ff ja 40068e + 40084b: b8 01 00 00 00 mov $0x1,%eax + 400850: 48 d3 e0 shl %cl,%rax + 400853: 48 b9 01 00 48 00 49 movabs $0x4900480001,%rcx + 40085a: 00 00 00 + 40085d: 48 85 c8 test %rcx,%rax + 400860: b8 02 00 00 00 mov $0x2,%eax + 400865: 0f 45 d0 cmovne %eax,%edx + 400868: e9 21 fe ff ff jmpq 40068e + 40086d: 8b 35 11 be 2c 00 mov 0x2cbe11(%rip),%esi # 6cc684 <_dl_x86_cpu_features+0x4> + 400873: bf bf 00 00 00 mov $0xbf,%edi + 400878: e8 a3 d7 03 00 callq 43e020 + 40087d: bf 02 00 00 00 mov $0x2,%edi + 400882: 48 89 c5 mov %rax,%rbp + 400885: e9 b7 fd ff ff jmpq 400641 + 40088a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +0000000000400890 <_start>: + 400890: 31 ed xor %ebp,%ebp + 400892: 49 89 d1 mov %rdx,%r9 + 400895: 5e pop %rsi + 400896: 48 89 e2 mov %rsp,%rdx + 400899: 48 83 e4 f0 and $0xfffffffffffffff0,%rsp + 40089d: 50 push %rax + 40089e: 54 push %rsp + 40089f: 49 c7 c0 c0 15 40 00 mov $0x4015c0,%r8 + 4008a6: 48 c7 c1 30 15 40 00 mov $0x401530,%rcx + 4008ad: 48 c7 c7 ae 09 40 00 mov $0x4009ae,%rdi + 4008b4: e8 27 04 00 00 callq 400ce0 <__libc_start_main> + 4008b9: f4 hlt + 4008ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +00000000004008c0 : + 4008c0: b8 57 bb 6c 00 mov $0x6cbb57,%eax + 4008c5: 55 push %rbp + 4008c6: 48 2d 50 bb 6c 00 sub $0x6cbb50,%rax + 4008cc: 48 83 f8 0e cmp $0xe,%rax + 4008d0: 48 89 e5 mov %rsp,%rbp + 4008d3: 76 1b jbe 4008f0 + 4008d5: b8 00 00 00 00 mov $0x0,%eax + 4008da: 48 85 c0 test %rax,%rax + 4008dd: 74 11 je 4008f0 + 4008df: 5d pop %rbp + 4008e0: bf 50 bb 6c 00 mov $0x6cbb50,%edi + 4008e5: ff e0 jmpq *%rax + 4008e7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4008ee: 00 00 + 4008f0: 5d pop %rbp + 4008f1: c3 retq + 4008f2: 0f 1f 40 00 nopl 0x0(%rax) + 4008f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4008fd: 00 00 00 + +0000000000400900 : + 400900: be 50 bb 6c 00 mov $0x6cbb50,%esi + 400905: 55 push %rbp + 400906: 48 81 ee 50 bb 6c 00 sub $0x6cbb50,%rsi + 40090d: 48 c1 fe 03 sar $0x3,%rsi + 400911: 48 89 e5 mov %rsp,%rbp + 400914: 48 89 f0 mov %rsi,%rax + 400917: 48 c1 e8 3f shr $0x3f,%rax + 40091b: 48 01 c6 add %rax,%rsi + 40091e: 48 d1 fe sar %rsi + 400921: 74 15 je 400938 + 400923: b8 00 00 00 00 mov $0x0,%eax + 400928: 48 85 c0 test %rax,%rax + 40092b: 74 0b je 400938 + 40092d: 5d pop %rbp + 40092e: bf 50 bb 6c 00 mov $0x6cbb50,%edi + 400933: ff e0 jmpq *%rax + 400935: 0f 1f 00 nopl (%rax) + 400938: 5d pop %rbp + 400939: c3 retq + 40093a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +0000000000400940 <__do_global_dtors_aux>: + 400940: 80 3d 19 b2 2c 00 00 cmpb $0x0,0x2cb219(%rip) # 6cbb60 + 400947: 75 22 jne 40096b <__do_global_dtors_aux+0x2b> + 400949: 55 push %rbp + 40094a: 48 89 e5 mov %rsp,%rbp + 40094d: e8 6e ff ff ff callq 4008c0 + 400952: b8 30 e1 49 00 mov $0x49e130,%eax + 400957: 48 85 c0 test %rax,%rax + 40095a: 74 07 je 400963 <__do_global_dtors_aux+0x23> + 40095c: bf a0 e1 4b 00 mov $0x4be1a0,%edi + 400961: ff d0 callq *%rax + 400963: 5d pop %rbp + 400964: c6 05 f5 b1 2c 00 01 movb $0x1,0x2cb1f5(%rip) # 6cbb60 + 40096b: f3 c3 repz retq + 40096d: 0f 1f 00 nopl (%rax) + +0000000000400970 : + 400970: 55 push %rbp + 400971: b8 00 df 49 00 mov $0x49df00,%eax + 400976: 48 85 c0 test %rax,%rax + 400979: 48 89 e5 mov %rsp,%rbp + 40097c: 74 0f je 40098d + 40097e: be 80 bb 6c 00 mov $0x6cbb80,%esi + 400983: bf a0 e1 4b 00 mov $0x4be1a0,%edi + 400988: e8 73 d5 09 00 callq 49df00 <__register_frame_info> + 40098d: bf f8 9e 6c 00 mov $0x6c9ef8,%edi + 400992: 48 83 3f 00 cmpq $0x0,(%rdi) + 400996: 75 08 jne 4009a0 + 400998: 5d pop %rbp + 400999: e9 62 ff ff ff jmpq 400900 + 40099e: 66 90 xchg %ax,%ax + 4009a0: b8 00 00 00 00 mov $0x0,%eax + 4009a5: 48 85 c0 test %rax,%rax + 4009a8: 74 ee je 400998 + 4009aa: ff d0 callq *%rax + 4009ac: eb ea jmp 400998 + +00000000004009ae

    : + 4009ae: 55 push %rbp + 4009af: 48 89 e5 mov %rsp,%rbp + 4009b2: c7 45 fc 05 00 00 00 movl $0x5,-0x4(%rbp) + 4009b9: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 4009bd: 83 6d fc 01 subl $0x1,-0x4(%rbp) + 4009c1: b8 00 00 00 00 mov $0x0,%eax + 4009c6: 5d pop %rbp + 4009c7: c3 retq + 4009c8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4009cf: 00 + +00000000004009d0 : + 4009d0: 41 56 push %r14 + 4009d2: 41 55 push %r13 + 4009d4: b8 00 00 00 00 mov $0x0,%eax + 4009d9: 41 54 push %r12 + 4009db: 55 push %rbp + 4009dc: 49 89 cc mov %rcx,%r12 + 4009df: 53 push %rbx + 4009e0: 4d 89 c5 mov %r8,%r13 + 4009e3: 4d 89 ce mov %r9,%r14 + 4009e6: 48 81 ec 90 00 00 00 sub $0x90,%rsp + 4009ed: 48 85 c0 test %rax,%rax + 4009f0: 48 89 7c 24 18 mov %rdi,0x18(%rsp) + 4009f5: 89 74 24 0c mov %esi,0xc(%rsp) + 4009f9: 48 89 54 24 10 mov %rdx,0x10(%rsp) + 4009fe: 0f 84 2d 01 00 00 je 400b31 + 400a04: 8b 0d f6 f5 bf ff mov -0x400a0a(%rip),%ecx # 0 <_nl_current_LC_CTYPE> + 400a0a: 31 c0 xor %eax,%eax + 400a0c: 85 c9 test %ecx,%ecx + 400a0e: 48 89 d1 mov %rdx,%rcx + 400a11: 0f 94 c0 sete %al + 400a14: 89 05 e6 ac 2c 00 mov %eax,0x2cace6(%rip) # 6cb700 <__libc_multiple_libcs> + 400a1a: 48 63 44 24 0c movslq 0xc(%rsp),%rax + 400a1f: 48 8d 7c c1 08 lea 0x8(%rcx,%rax,8),%rdi + 400a24: 48 8b 84 24 c0 00 00 mov 0xc0(%rsp),%rax + 400a2b: 00 + 400a2c: 48 89 3d 0d bc 2c 00 mov %rdi,0x2cbc0d(%rip) # 6cc640 <__environ> + 400a33: 48 89 05 56 95 2c 00 mov %rax,0x2c9556(%rip) # 6c9f90 <__libc_stack_end> + 400a3a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 400a40: 48 83 c7 08 add $0x8,%rdi + 400a44: 48 83 7f f8 00 cmpq $0x0,-0x8(%rdi) + 400a49: 75 f5 jne 400a40 + 400a4b: e8 50 21 04 00 callq 442ba0 <_dl_aux_init> + 400a50: 48 83 3d f0 c7 2c 00 cmpq $0x0,0x2cc7f0(%rip) # 6cd248 <_dl_phdr> + 400a57: 00 + 400a58: 75 4f jne 400aa9 + 400a5a: b8 00 00 40 00 mov $0x400000,%eax + 400a5f: 48 85 c0 test %rax,%rax + 400a62: 74 45 je 400aa9 + 400a64: 66 83 3d ca f5 ff ff cmpw $0x38,-0xa36(%rip) # 400036 <__ehdr_start+0x36> + 400a6b: 38 + 400a6c: 74 19 je 400a87 + 400a6e: b9 70 0f 4a 00 mov $0x4a0f70,%ecx + 400a73: ba af 00 00 00 mov $0xaf,%edx + 400a78: be c4 0e 4a 00 mov $0x4a0ec4,%esi + 400a7d: bf f0 0e 4a 00 mov $0x4a0ef0,%edi + 400a82: e8 b9 0c 00 00 callq 401740 <__assert_fail> + 400a87: 48 8b 05 92 f5 ff ff mov -0xa6e(%rip),%rax # 400020 <__ehdr_start+0x20> + 400a8e: 48 05 00 00 40 00 add $0x400000,%rax + 400a94: 48 89 05 ad c7 2c 00 mov %rax,0x2cc7ad(%rip) # 6cd248 <_dl_phdr> + 400a9b: 0f b7 05 96 f5 ff ff movzwl -0xa6a(%rip),%eax # 400038 <__ehdr_start+0x38> + 400aa2: 48 89 05 d7 c7 2c 00 mov %rax,0x2cc7d7(%rip) # 6cd280 <_dl_phnum> + 400aa9: 8b 05 51 ac 2c 00 mov 0x2cac51(%rip),%eax # 6cb700 <__libc_multiple_libcs> + 400aaf: 85 c0 test %eax,%eax + 400ab1: 74 4c je 400aff + 400ab3: b8 d8 01 40 00 mov $0x4001d8,%eax + 400ab8: 48 3d c8 02 40 00 cmp $0x4002c8,%rax + 400abe: 73 7b jae 400b3b + 400ac0: 83 3d 19 f7 ff ff 25 cmpl $0x25,-0x8e7(%rip) # 4001e0 <__rela_iplt_start+0x8> + 400ac7: 48 8b 2d 0a f7 ff ff mov -0x8f6(%rip),%rbp # 4001d8 <__rela_iplt_start> + 400ace: bb d8 01 40 00 mov $0x4001d8,%ebx + 400ad3: 75 20 jne 400af5 + 400ad5: 0f 1f 00 nopl (%rax) + 400ad8: ff 53 10 callq *0x10(%rbx) + 400adb: 48 83 c3 18 add $0x18,%rbx + 400adf: 48 89 45 00 mov %rax,0x0(%rbp) + 400ae3: 48 81 fb c8 02 40 00 cmp $0x4002c8,%rbx + 400aea: 73 4f jae 400b3b + 400aec: 83 7b 08 25 cmpl $0x25,0x8(%rbx) + 400af0: 48 8b 2b mov (%rbx),%rbp + 400af3: 74 e3 je 400ad8 + 400af5: bf 48 0f 4a 00 mov $0x4a0f48,%edi + 400afa: e8 91 0d 01 00 callq 411890 <__libc_fatal> + 400aff: e8 9c 34 04 00 callq 443fa0 <_dl_discover_osversion> + 400b04: 85 c0 test %eax,%eax + 400b06: 0f 88 4c 01 00 00 js 400c58 + 400b0c: 8b 15 8e c7 2c 00 mov 0x2cc78e(%rip),%edx # 6cd2a0 <_dl_osversion> + 400b12: 85 d2 test %edx,%edx + 400b14: 0f 85 03 01 00 00 jne 400c1d + 400b1a: 89 05 80 c7 2c 00 mov %eax,0x2cc780(%rip) # 6cd2a0 <_dl_osversion> + 400b20: 3d 1f 06 02 00 cmp $0x2061f,%eax + 400b25: 7f 8c jg 400ab3 + 400b27: bf d8 0e 4a 00 mov $0x4a0ed8,%edi + 400b2c: e8 5f 0d 01 00 callq 411890 <__libc_fatal> + 400b31: 31 c0 xor %eax,%eax + 400b33: 48 89 d1 mov %rdx,%rcx + 400b36: e9 d9 fe ff ff jmpq 400a14 + 400b3b: e8 e0 09 00 00 callq 401520 <__pthread_initialize_minimal> + 400b40: 48 8b 15 39 94 2c 00 mov 0x2c9439(%rip),%rdx # 6c9f80 <_dl_random> + 400b47: 48 8b 02 mov (%rdx),%rax + 400b4a: 30 c0 xor %al,%al + 400b4c: 64 48 89 04 25 28 00 mov %rax,%fs:0x28 + 400b53: 00 00 + 400b55: 48 8b 42 08 mov 0x8(%rdx),%rax + 400b59: 64 48 89 04 25 30 00 mov %rax,%fs:0x30 + 400b60: 00 00 + 400b62: 4d 85 f6 test %r14,%r14 + 400b65: 74 0c je 400b73 + 400b67: 31 d2 xor %edx,%edx + 400b69: 31 f6 xor %esi,%esi + 400b6b: 4c 89 f7 mov %r14,%rdi + 400b6e: e8 7d e0 00 00 callq 40ebf0 <__cxa_atexit> + 400b73: 48 8b 15 c6 ba 2c 00 mov 0x2cbac6(%rip),%rdx # 6cc640 <__environ> + 400b7a: 48 8b 74 24 10 mov 0x10(%rsp),%rsi + 400b7f: 8b 7c 24 0c mov 0xc(%rsp),%edi + 400b83: e8 28 35 04 00 callq 4440b0 <__libc_init_first> + 400b88: 4d 85 ed test %r13,%r13 + 400b8b: 74 0c je 400b99 + 400b8d: 31 d2 xor %edx,%edx + 400b8f: 31 f6 xor %esi,%esi + 400b91: 4c 89 ef mov %r13,%rdi + 400b94: e8 57 e0 00 00 callq 40ebf0 <__cxa_atexit> + 400b99: 83 3d f8 93 2c 00 00 cmpl $0x0,0x2c93f8(%rip) # 6c9f98 <__libc_enable_secure> + 400ba0: 0f 85 bc 00 00 00 jne 400c62 + 400ba6: 4d 85 e4 test %r12,%r12 + 400ba9: 74 13 je 400bbe + 400bab: 48 8b 15 8e ba 2c 00 mov 0x2cba8e(%rip),%rdx # 6cc640 <__environ> + 400bb2: 48 8b 74 24 10 mov 0x10(%rsp),%rsi + 400bb7: 8b 7c 24 0c mov 0xc(%rsp),%edi + 400bbb: 41 ff d4 callq *%r12 + 400bbe: 31 ff xor %edi,%edi + 400bc0: 31 f6 xor %esi,%esi + 400bc2: e8 69 1f 04 00 callq 442b30 <_dl_debug_initialize> + 400bc7: 48 8d 7c 24 20 lea 0x20(%rsp),%rdi + 400bcc: e8 9f cf 00 00 callq 40db70 <_setjmp> + 400bd1: 85 c0 test %eax,%eax + 400bd3: 75 55 jne 400c2a + 400bd5: 64 48 8b 04 25 00 03 mov %fs:0x300,%rax + 400bdc: 00 00 + 400bde: 48 89 44 24 68 mov %rax,0x68(%rsp) + 400be3: 64 48 8b 04 25 f8 02 mov %fs:0x2f8,%rax + 400bea: 00 00 + 400bec: 48 89 44 24 70 mov %rax,0x70(%rsp) + 400bf1: 48 8d 44 24 20 lea 0x20(%rsp),%rax + 400bf6: 64 48 89 04 25 00 03 mov %rax,%fs:0x300 + 400bfd: 00 00 + 400bff: 48 8b 15 3a ba 2c 00 mov 0x2cba3a(%rip),%rdx # 6cc640 <__environ> + 400c06: 48 8b 74 24 10 mov 0x10(%rsp),%rsi + 400c0b: 8b 7c 24 0c mov 0xc(%rsp),%edi + 400c0f: 48 8b 44 24 18 mov 0x18(%rsp),%rax + 400c14: ff d0 callq *%rax + 400c16: 89 c7 mov %eax,%edi + 400c18: e8 d3 dd 00 00 callq 40e9f0 + 400c1d: 39 c2 cmp %eax,%edx + 400c1f: 0f 86 fb fe ff ff jbe 400b20 + 400c25: e9 f0 fe ff ff jmpq 400b1a + 400c2a: e8 d1 f3 bf ff callq 0 <_nl_current_LC_CTYPE> + 400c2f: f0 ff 0d ca f3 bf ff lock decl -0x400c36(%rip) # 0 <_nl_current_LC_CTYPE> + 400c36: 0f 94 c0 sete %al + 400c39: 84 c0 test %al,%al + 400c3b: 74 04 je 400c41 + 400c3d: 31 c0 xor %eax,%eax + 400c3f: eb d5 jmp 400c16 + 400c41: ba 3c 00 00 00 mov $0x3c,%edx + 400c46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 400c4d: 00 00 00 + 400c50: 31 ff xor %edi,%edi + 400c52: 89 d0 mov %edx,%eax + 400c54: 0f 05 syscall + 400c56: eb f8 jmp 400c50 + 400c58: bf 20 0f 4a 00 mov $0x4a0f20,%edi + 400c5d: e8 2e 0c 01 00 callq 411890 <__libc_fatal> + 400c62: e8 59 04 00 00 callq 4010c0 <__libc_check_standard_fds> + 400c67: e9 3a ff ff ff jmpq 400ba6 + 400c6c: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000400c70 : + 400c70: 49 89 d1 mov %rdx,%r9 + 400c73: 53 push %rbx + 400c74: 49 89 c8 mov %rcx,%r8 + 400c77: b8 01 00 00 00 mov $0x1,%eax + 400c7c: 0f a2 cpuid + 400c7e: 89 15 10 ba 2c 00 mov %edx,0x2cba10(%rip) # 6cc694 <_dl_x86_cpu_features+0x14> + 400c84: 89 c2 mov %eax,%edx + 400c86: 89 1d 00 ba 2c 00 mov %ebx,0x2cba00(%rip) # 6cc68c <_dl_x86_cpu_features+0xc> + 400c8c: c1 ea 08 shr $0x8,%edx + 400c8f: 89 0d fb b9 2c 00 mov %ecx,0x2cb9fb(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> + 400c95: 89 05 ed b9 2c 00 mov %eax,0x2cb9ed(%rip) # 6cc688 <_dl_x86_cpu_features+0x8> + 400c9b: 83 e2 0f and $0xf,%edx + 400c9e: 89 17 mov %edx,(%rdi) + 400ca0: 89 c2 mov %eax,%edx + 400ca2: c1 ea 04 shr $0x4,%edx + 400ca5: 83 e2 0f and $0xf,%edx + 400ca8: 89 16 mov %edx,(%rsi) + 400caa: 89 c2 mov %eax,%edx + 400cac: c1 ea 0c shr $0xc,%edx + 400caf: 81 e2 f0 00 00 00 and $0xf0,%edx + 400cb5: 41 89 11 mov %edx,(%r9) + 400cb8: 83 3f 0f cmpl $0xf,(%rdi) + 400cbb: 75 12 jne 400ccf + 400cbd: 89 c2 mov %eax,%edx + 400cbf: c1 ea 14 shr $0x14,%edx + 400cc2: 0f b6 d2 movzbl %dl,%edx + 400cc5: 83 c2 0f add $0xf,%edx + 400cc8: 89 17 mov %edx,(%rdi) + 400cca: 41 8b 11 mov (%r9),%edx + 400ccd: 01 16 add %edx,(%rsi) + 400ccf: 83 e0 0f and $0xf,%eax + 400cd2: 41 89 00 mov %eax,(%r8) + 400cd5: 5b pop %rbx + 400cd6: c3 retq + 400cd7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 400cde: 00 00 + +0000000000400ce0 <__libc_start_main>: + 400ce0: 41 55 push %r13 + 400ce2: 41 54 push %r12 + 400ce4: 31 c0 xor %eax,%eax + 400ce6: 55 push %rbp + 400ce7: 53 push %rbx + 400ce8: 48 89 d5 mov %rdx,%rbp + 400ceb: 49 89 cc mov %rcx,%r12 + 400cee: 41 89 f3 mov %esi,%r11d + 400cf1: 49 89 fa mov %rdi,%r10 + 400cf4: 48 83 ec 28 sub $0x28,%rsp + 400cf8: 0f a2 cpuid + 400cfa: 81 fb 47 65 6e 75 cmp $0x756e6547,%ebx + 400d00: 89 05 7e b9 2c 00 mov %eax,0x2cb97e(%rip) # 6cc684 <_dl_x86_cpu_features+0x4> + 400d06: c7 44 24 10 00 00 00 movl $0x0,0x10(%rsp) + 400d0d: 00 + 400d0e: 40 0f 94 c6 sete %sil + 400d12: 81 f9 6e 74 65 6c cmp $0x6c65746e,%ecx + 400d18: c7 44 24 14 00 00 00 movl $0x0,0x14(%rsp) + 400d1f: 00 + 400d20: 0f 94 c0 sete %al + 400d23: c7 44 24 18 00 00 00 movl $0x0,0x18(%rsp) + 400d2a: 00 + 400d2b: 40 84 c6 test %al,%sil + 400d2e: 74 0c je 400d3c <__libc_start_main+0x5c> + 400d30: 81 fa 69 6e 65 49 cmp $0x49656e69,%edx + 400d36: 0f 84 6d 01 00 00 je 400ea9 <__libc_start_main+0x1c9> + 400d3c: 81 fb 41 75 74 68 cmp $0x68747541,%ebx + 400d42: 40 0f 94 c6 sete %sil + 400d46: 81 f9 63 41 4d 44 cmp $0x444d4163,%ecx + 400d4c: 0f 94 c0 sete %al + 400d4f: 40 84 c6 test %al,%sil + 400d52: 74 0c je 400d60 <__libc_start_main+0x80> + 400d54: 81 fa 65 6e 74 69 cmp $0x69746e65,%edx + 400d5a: 0f 84 94 01 00 00 je 400ef4 <__libc_start_main+0x214> + 400d60: 44 8b 2d 29 b9 2c 00 mov 0x2cb929(%rip),%r13d # 6cc690 <_dl_x86_cpu_features+0x10> + 400d67: 8b 7c 24 14 mov 0x14(%rsp),%edi + 400d6b: be 03 00 00 00 mov $0x3,%esi + 400d70: 8b 05 1e b9 2c 00 mov 0x2cb91e(%rip),%eax # 6cc694 <_dl_x86_cpu_features+0x14> + 400d76: f6 c4 01 test $0x1,%ah + 400d79: 74 0a je 400d85 <__libc_start_main+0xa5> + 400d7b: 81 0d 3b b9 2c 00 00 orl $0x4000,0x2cb93b(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 400d82: 40 00 00 + 400d85: f6 c4 80 test $0x80,%ah + 400d88: 74 0a je 400d94 <__libc_start_main+0xb4> + 400d8a: 81 0d 2c b9 2c 00 00 orl $0x8000,0x2cb92c(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 400d91: 80 00 00 + 400d94: 83 3d e9 b8 2c 00 06 cmpl $0x6,0x2cb8e9(%rip) # 6cc684 <_dl_x86_cpu_features+0x4> + 400d9b: 7e 21 jle 400dbe <__libc_start_main+0xde> + 400d9d: b8 07 00 00 00 mov $0x7,%eax + 400da2: 31 c9 xor %ecx,%ecx + 400da4: 0f a2 cpuid + 400da6: 89 05 ec b8 2c 00 mov %eax,0x2cb8ec(%rip) # 6cc698 <_dl_x86_cpu_features+0x18> + 400dac: 89 1d ea b8 2c 00 mov %ebx,0x2cb8ea(%rip) # 6cc69c <_dl_x86_cpu_features+0x1c> + 400db2: 89 0d e8 b8 2c 00 mov %ecx,0x2cb8e8(%rip) # 6cc6a0 <_dl_x86_cpu_features+0x20> + 400db8: 89 15 e6 b8 2c 00 mov %edx,0x2cb8e6(%rip) # 6cc6a4 <_dl_x86_cpu_features+0x24> + 400dbe: 41 f7 c5 00 00 00 08 test $0x8000000,%r13d + 400dc5: 74 0f je 400dd6 <__libc_start_main+0xf6> + 400dc7: 31 c9 xor %ecx,%ecx + 400dc9: 0f 01 d0 xgetbv + 400dcc: 89 c2 mov %eax,%edx + 400dce: 83 e2 06 and $0x6,%edx + 400dd1: 83 fa 06 cmp $0x6,%edx + 400dd4: 74 6f je 400e45 <__libc_start_main+0x165> + 400dd6: 83 fe 01 cmp $0x1,%esi + 400dd9: 74 2f je 400e0a <__libc_start_main+0x12a> + 400ddb: 8b 44 24 10 mov 0x10(%rsp),%eax + 400ddf: 48 83 ec 08 sub $0x8,%rsp + 400de3: 89 3d d3 b8 2c 00 mov %edi,0x2cb8d3(%rip) # 6cc6bc <_dl_x86_cpu_features+0x3c> + 400de9: ff 74 24 58 pushq 0x58(%rsp) + 400ded: 89 35 8d b8 2c 00 mov %esi,0x2cb88d(%rip) # 6cc680 <_dl_x86_cpu_features> + 400df3: 4c 89 e1 mov %r12,%rcx + 400df6: 48 89 ea mov %rbp,%rdx + 400df9: 44 89 de mov %r11d,%esi + 400dfc: 4c 89 d7 mov %r10,%rdi + 400dff: 89 05 b3 b8 2c 00 mov %eax,0x2cb8b3(%rip) # 6cc6b8 <_dl_x86_cpu_features+0x38> + 400e05: e8 c6 fb ff ff callq 4009d0 + 400e0a: 83 7c 24 10 06 cmpl $0x6,0x10(%rsp) + 400e0f: 75 ca jne 400ddb <__libc_start_main+0xfb> + 400e11: 83 ff 3f cmp $0x3f,%edi + 400e14: 0f 84 7a 01 00 00 je 400f94 <__libc_start_main+0x2b4> + 400e1a: 83 ff 3c cmp $0x3c,%edi + 400e1d: 0f 84 0b 02 00 00 je 40102e <__libc_start_main+0x34e> + 400e23: 8d 47 bb lea -0x45(%rdi),%eax + 400e26: 83 f8 01 cmp $0x1,%eax + 400e29: 0f 86 3d 01 00 00 jbe 400f6c <__libc_start_main+0x28c> + 400e2f: 83 ff 3d cmp $0x3d,%edi + 400e32: 0f 85 4e 01 00 00 jne 400f86 <__libc_start_main+0x2a6> + 400e38: 83 7c 24 18 04 cmpl $0x4,0x18(%rsp) + 400e3d: 0f 86 34 01 00 00 jbe 400f77 <__libc_start_main+0x297> + 400e43: eb 96 jmp 400ddb <__libc_start_main+0xfb> + 400e45: 41 f7 c5 00 00 00 10 test $0x10000000,%r13d + 400e4c: 74 07 je 400e55 <__libc_start_main+0x175> + 400e4e: 83 0d 6b b8 2c 00 40 orl $0x40,0x2cb86b(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 400e55: 8b 15 41 b8 2c 00 mov 0x2cb841(%rip),%edx # 6cc69c <_dl_x86_cpu_features+0x1c> + 400e5b: f6 c2 20 test $0x20,%dl + 400e5e: 74 0a je 400e6a <__libc_start_main+0x18a> + 400e60: 81 0d 56 b8 2c 00 00 orl $0xc00,0x2cb856(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 400e67: 0c 00 00 + 400e6a: 25 e0 00 00 00 and $0xe0,%eax + 400e6f: 3d e0 00 00 00 cmp $0xe0,%eax + 400e74: 0f 84 8c 01 00 00 je 401006 <__libc_start_main+0x326> + 400e7a: 41 81 e5 00 10 00 00 and $0x1000,%r13d + 400e81: 74 0a je 400e8d <__libc_start_main+0x1ad> + 400e83: 81 0d 33 b8 2c 00 80 orl $0x80,0x2cb833(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 400e8a: 00 00 00 + 400e8d: f6 05 1e b8 2c 00 01 testb $0x1,0x2cb81e(%rip) # 6cc6b2 <_dl_x86_cpu_features+0x32> + 400e94: 0f 84 3c ff ff ff je 400dd6 <__libc_start_main+0xf6> + 400e9a: 81 0d 1c b8 2c 00 00 orl $0x100,0x2cb81c(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 400ea1: 01 00 00 + 400ea4: e9 2d ff ff ff jmpq 400dd6 <__libc_start_main+0xf6> + 400ea9: 48 8d 4c 24 18 lea 0x18(%rsp),%rcx + 400eae: 48 8d 54 24 1c lea 0x1c(%rsp),%rdx + 400eb3: 48 8d 74 24 14 lea 0x14(%rsp),%rsi + 400eb8: 48 8d 7c 24 10 lea 0x10(%rsp),%rdi + 400ebd: 4c 89 4c 24 08 mov %r9,0x8(%rsp) + 400ec2: 4c 89 04 24 mov %r8,(%rsp) + 400ec6: e8 a5 fd ff ff callq 400c70 + 400ecb: 83 7c 24 10 06 cmpl $0x6,0x10(%rsp) + 400ed0: 44 8b 2d b9 b7 2c 00 mov 0x2cb7b9(%rip),%r13d # 6cc690 <_dl_x86_cpu_features+0x10> + 400ed7: 4c 8b 04 24 mov (%rsp),%r8 + 400edb: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 + 400ee0: 0f 84 ba 00 00 00 je 400fa0 <__libc_start_main+0x2c0> + 400ee6: be 01 00 00 00 mov $0x1,%esi + 400eeb: 8b 7c 24 14 mov 0x14(%rsp),%edi + 400eef: e9 7c fe ff ff jmpq 400d70 <__libc_start_main+0x90> + 400ef4: 48 8d 4c 24 18 lea 0x18(%rsp),%rcx + 400ef9: 48 8d 54 24 1c lea 0x1c(%rsp),%rdx + 400efe: 48 8d 74 24 14 lea 0x14(%rsp),%rsi + 400f03: 48 8d 7c 24 10 lea 0x10(%rsp),%rdi + 400f08: 4c 89 4c 24 08 mov %r9,0x8(%rsp) + 400f0d: 4c 89 04 24 mov %r8,(%rsp) + 400f11: e8 5a fd ff ff callq 400c70 + 400f16: b8 00 00 00 80 mov $0x80000000,%eax + 400f1b: 4c 8b 04 24 mov (%rsp),%r8 + 400f1f: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 + 400f24: 0f a2 cpuid + 400f26: 3d 00 00 00 80 cmp $0x80000000,%eax + 400f2b: 76 1f jbe 400f4c <__libc_start_main+0x26c> + 400f2d: b8 01 00 00 80 mov $0x80000001,%eax + 400f32: 0f a2 cpuid + 400f34: 89 05 6e b7 2c 00 mov %eax,0x2cb76e(%rip) # 6cc6a8 <_dl_x86_cpu_features+0x28> + 400f3a: 89 1d 6c b7 2c 00 mov %ebx,0x2cb76c(%rip) # 6cc6ac <_dl_x86_cpu_features+0x2c> + 400f40: 89 0d 6a b7 2c 00 mov %ecx,0x2cb76a(%rip) # 6cc6b0 <_dl_x86_cpu_features+0x30> + 400f46: 89 15 68 b7 2c 00 mov %edx,0x2cb768(%rip) # 6cc6b4 <_dl_x86_cpu_features+0x34> + 400f4c: 83 7c 24 10 15 cmpl $0x15,0x10(%rsp) + 400f51: 8b 7c 24 14 mov 0x14(%rsp),%edi + 400f55: 0f 84 93 00 00 00 je 400fee <__libc_start_main+0x30e> + 400f5b: be 02 00 00 00 mov $0x2,%esi + 400f60: 44 8b 2d 29 b7 2c 00 mov 0x2cb729(%rip),%r13d # 6cc690 <_dl_x86_cpu_features+0x10> + 400f67: e9 04 fe ff ff jmpq 400d70 <__libc_start_main+0x90> + 400f6c: 83 7c 24 18 01 cmpl $0x1,0x18(%rsp) + 400f71: 0f 87 64 fe ff ff ja 400ddb <__libc_start_main+0xfb> + 400f77: 81 25 1b b7 2c 00 ef andl $0xfffff7ef,0x2cb71b(%rip) # 6cc69c <_dl_x86_cpu_features+0x1c> + 400f7e: f7 ff ff + 400f81: e9 55 fe ff ff jmpq 400ddb <__libc_start_main+0xfb> + 400f86: 83 ff 47 cmp $0x47,%edi + 400f89: 74 e1 je 400f6c <__libc_start_main+0x28c> + 400f8b: 83 ff 56 cmp $0x56,%edi + 400f8e: 0f 85 47 fe ff ff jne 400ddb <__libc_start_main+0xfb> + 400f94: 83 7c 24 18 02 cmpl $0x2,0x18(%rsp) + 400f99: 76 dc jbe 400f77 <__libc_start_main+0x297> + 400f9b: e9 3b fe ff ff jmpq 400ddb <__libc_start_main+0xfb> + 400fa0: 8b 44 24 1c mov 0x1c(%rsp),%eax + 400fa4: 03 44 24 14 add 0x14(%rsp),%eax + 400fa8: 83 f8 2f cmp $0x2f,%eax + 400fab: 89 44 24 14 mov %eax,0x14(%rsp) + 400faf: 0f 87 97 00 00 00 ja 40104c <__libc_start_main+0x36c> + 400fb5: 83 f8 2e cmp $0x2e,%eax + 400fb8: 0f 83 df 00 00 00 jae 40109d <__libc_start_main+0x3bd> + 400fbe: 83 f8 1f cmp $0x1f,%eax + 400fc1: 0f 87 b6 00 00 00 ja 40107d <__libc_start_main+0x39d> + 400fc7: 83 f8 1e cmp $0x1e,%eax + 400fca: 0f 83 cd 00 00 00 jae 40109d <__libc_start_main+0x3bd> + 400fd0: 83 f8 1a cmp $0x1a,%eax + 400fd3: 0f 84 c4 00 00 00 je 40109d <__libc_start_main+0x3bd> + 400fd9: 83 f8 1c cmp $0x1c,%eax + 400fdc: 0f 85 ae 00 00 00 jne 401090 <__libc_start_main+0x3b0> + 400fe2: 83 0d d7 b6 2c 00 04 orl $0x4,0x2cb6d7(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 400fe9: e9 f8 fe ff ff jmpq 400ee6 <__libc_start_main+0x206> + 400fee: 8d 47 a0 lea -0x60(%rdi),%eax + 400ff1: 83 f8 1f cmp $0x1f,%eax + 400ff4: 0f 87 61 ff ff ff ja 400f5b <__libc_start_main+0x27b> + 400ffa: 83 0d bf b6 2c 00 10 orl $0x10,0x2cb6bf(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 401001: e9 55 ff ff ff jmpq 400f5b <__libc_start_main+0x27b> + 401006: f7 c2 00 00 01 00 test $0x10000,%edx + 40100c: 0f 84 68 fe ff ff je 400e7a <__libc_start_main+0x19a> + 401012: 81 e2 00 00 02 00 and $0x20000,%edx + 401018: 8b 05 a2 b6 2c 00 mov 0x2cb6a2(%rip),%eax # 6cc6c0 <_dl_x86_cpu_features+0x40> + 40101e: 75 1e jne 40103e <__libc_start_main+0x35e> + 401020: 80 cc 10 or $0x10,%ah + 401023: 89 05 97 b6 2c 00 mov %eax,0x2cb697(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 401029: e9 4c fe ff ff jmpq 400e7a <__libc_start_main+0x19a> + 40102e: 83 7c 24 18 03 cmpl $0x3,0x18(%rsp) + 401033: 0f 86 3e ff ff ff jbe 400f77 <__libc_start_main+0x297> + 401039: e9 9d fd ff ff jmpq 400ddb <__libc_start_main+0xfb> + 40103e: 80 cc 30 or $0x30,%ah + 401041: 89 05 79 b6 2c 00 mov %eax,0x2cb679(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 401047: e9 2e fe ff ff jmpq 400e7a <__libc_start_main+0x19a> + 40104c: 83 f8 4d cmp $0x4d,%eax + 40104f: 74 62 je 4010b3 <__libc_start_main+0x3d3> + 401051: 76 56 jbe 4010a9 <__libc_start_main+0x3c9> + 401053: 83 f8 5a cmp $0x5a,%eax + 401056: 74 5b je 4010b3 <__libc_start_main+0x3d3> + 401058: 83 f8 5d cmp $0x5d,%eax + 40105b: 74 56 je 4010b3 <__libc_start_main+0x3d3> + 40105d: 83 f8 57 cmp $0x57,%eax + 401060: 75 2e jne 401090 <__libc_start_main+0x3b0> + 401062: 8b 05 58 b6 2c 00 mov 0x2cb658(%rip),%eax # 6cc6c0 <_dl_x86_cpu_features+0x40> + 401068: 0d 00 00 02 00 or $0x20000,%eax + 40106d: 0d 30 02 00 00 or $0x230,%eax + 401072: 89 05 48 b6 2c 00 mov %eax,0x2cb648(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 401078: e9 69 fe ff ff jmpq 400ee6 <__libc_start_main+0x206> + 40107d: 83 f8 26 cmp $0x26,%eax + 401080: 0f 84 5c ff ff ff je 400fe2 <__libc_start_main+0x302> + 401086: 83 f8 2c cmp $0x2c,%eax + 401089: 74 12 je 40109d <__libc_start_main+0x3bd> + 40108b: 83 f8 25 cmp $0x25,%eax + 40108e: 74 0d je 40109d <__libc_start_main+0x3bd> + 401090: 41 f7 c5 00 00 00 10 test $0x10000000,%r13d + 401097: 0f 84 49 fe ff ff je 400ee6 <__libc_start_main+0x206> + 40109d: 83 0d 1c b6 2c 00 33 orl $0x33,0x2cb61c(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 4010a4: e9 3d fe ff ff jmpq 400ee6 <__libc_start_main+0x206> + 4010a9: 83 f8 37 cmp $0x37,%eax + 4010ac: 74 05 je 4010b3 <__libc_start_main+0x3d3> + 4010ae: 83 f8 4a cmp $0x4a,%eax + 4010b1: 75 dd jne 401090 <__libc_start_main+0x3b0> + 4010b3: 8b 05 07 b6 2c 00 mov 0x2cb607(%rip),%eax # 6cc6c0 <_dl_x86_cpu_features+0x40> + 4010b9: eb b2 jmp 40106d <__libc_start_main+0x38d> + 4010bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +00000000004010c0 <__libc_check_standard_fds>: + 4010c0: 48 81 ec 98 00 00 00 sub $0x98,%rsp + 4010c7: 31 ff xor %edi,%edi + 4010c9: 31 c0 xor %eax,%eax + 4010cb: be 01 00 00 00 mov $0x1,%esi + 4010d0: e8 fb e1 03 00 callq 43f2d0 <__libc_fcntl> + 4010d5: 83 f8 ff cmp $0xffffffff,%eax + 4010d8: 74 3c je 401116 <__libc_check_standard_fds+0x56> + 4010da: 31 c0 xor %eax,%eax + 4010dc: be 01 00 00 00 mov $0x1,%esi + 4010e1: bf 01 00 00 00 mov $0x1,%edi + 4010e6: e8 e5 e1 03 00 callq 43f2d0 <__libc_fcntl> + 4010eb: 83 f8 ff cmp $0xffffffff,%eax + 4010ee: 0f 84 8f 00 00 00 je 401183 <__libc_check_standard_fds+0xc3> + 4010f4: 31 c0 xor %eax,%eax + 4010f6: be 01 00 00 00 mov $0x1,%esi + 4010fb: bf 02 00 00 00 mov $0x2,%edi + 401100: e8 cb e1 03 00 callq 43f2d0 <__libc_fcntl> + 401105: 83 f8 ff cmp $0xffffffff,%eax + 401108: 0f 84 e5 00 00 00 je 4011f3 <__libc_check_standard_fds+0x133> + 40110e: 48 81 c4 98 00 00 00 add $0x98,%rsp + 401115: c3 retq + 401116: 49 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%r8 + 40111d: 64 41 83 38 09 cmpl $0x9,%fs:(%r8) + 401122: 75 b6 jne 4010da <__libc_check_standard_fds+0x1a> + 401124: 31 d2 xor %edx,%edx + 401126: be 01 00 02 00 mov $0x20001,%esi + 40112b: bf 83 0f 4a 00 mov $0x4a0f83,%edi + 401130: b8 02 00 00 00 mov $0x2,%eax + 401135: 0f 05 syscall + 401137: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 40113d: 0f 87 20 01 00 00 ja 401263 <__libc_check_standard_fds+0x1a3> + 401143: 85 c0 test %eax,%eax + 401145: 75 39 jne 401180 <__libc_check_standard_fds+0xc0> + 401147: 31 f6 xor %esi,%esi + 401149: 48 89 e2 mov %rsp,%rdx + 40114c: bf 01 00 00 00 mov $0x1,%edi + 401151: e8 7a df 03 00 callq 43f0d0 <__fxstat> + 401156: 85 c0 test %eax,%eax + 401158: 75 26 jne 401180 <__libc_check_standard_fds+0xc0> + 40115a: 8b 44 24 18 mov 0x18(%rsp),%eax + 40115e: 25 00 f0 00 00 and $0xf000,%eax + 401163: 3d 00 20 00 00 cmp $0x2000,%eax + 401168: 75 16 jne 401180 <__libc_check_standard_fds+0xc0> + 40116a: 48 81 7c 24 28 07 01 cmpq $0x107,0x28(%rsp) + 401171: 00 00 + 401173: 0f 84 61 ff ff ff je 4010da <__libc_check_standard_fds+0x1a> + 401179: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 401180: f4 hlt + 401181: eb fd jmp 401180 <__libc_check_standard_fds+0xc0> + 401183: 49 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%r8 + 40118a: 64 41 83 38 09 cmpl $0x9,%fs:(%r8) + 40118f: 0f 85 5f ff ff ff jne 4010f4 <__libc_check_standard_fds+0x34> + 401195: 31 d2 xor %edx,%edx + 401197: be 00 00 02 00 mov $0x20000,%esi + 40119c: bf 8d 0f 4a 00 mov $0x4a0f8d,%edi + 4011a1: b8 02 00 00 00 mov $0x2,%eax + 4011a6: 0f 05 syscall + 4011a8: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 4011ae: 0f 87 c2 00 00 00 ja 401276 <__libc_check_standard_fds+0x1b6> + 4011b4: 83 f8 01 cmp $0x1,%eax + 4011b7: 75 37 jne 4011f0 <__libc_check_standard_fds+0x130> + 4011b9: 48 89 e2 mov %rsp,%rdx + 4011bc: be 01 00 00 00 mov $0x1,%esi + 4011c1: bf 01 00 00 00 mov $0x1,%edi + 4011c6: e8 05 df 03 00 callq 43f0d0 <__fxstat> + 4011cb: 85 c0 test %eax,%eax + 4011cd: 75 21 jne 4011f0 <__libc_check_standard_fds+0x130> + 4011cf: 8b 44 24 18 mov 0x18(%rsp),%eax + 4011d3: 25 00 f0 00 00 and $0xf000,%eax + 4011d8: 3d 00 20 00 00 cmp $0x2000,%eax + 4011dd: 75 11 jne 4011f0 <__libc_check_standard_fds+0x130> + 4011df: 48 81 7c 24 28 03 01 cmpq $0x103,0x28(%rsp) + 4011e6: 00 00 + 4011e8: 0f 84 06 ff ff ff je 4010f4 <__libc_check_standard_fds+0x34> + 4011ee: 66 90 xchg %ax,%ax + 4011f0: f4 hlt + 4011f1: eb fd jmp 4011f0 <__libc_check_standard_fds+0x130> + 4011f3: 49 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%r8 + 4011fa: 64 41 83 38 09 cmpl $0x9,%fs:(%r8) + 4011ff: 0f 85 09 ff ff ff jne 40110e <__libc_check_standard_fds+0x4e> + 401205: 31 d2 xor %edx,%edx + 401207: be 00 00 02 00 mov $0x20000,%esi + 40120c: bf 8d 0f 4a 00 mov $0x4a0f8d,%edi + 401211: b8 02 00 00 00 mov $0x2,%eax + 401216: 0f 05 syscall + 401218: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 40121e: 77 4e ja 40126e <__libc_check_standard_fds+0x1ae> + 401220: 83 f8 02 cmp $0x2,%eax + 401223: 75 3b jne 401260 <__libc_check_standard_fds+0x1a0> + 401225: 48 89 e2 mov %rsp,%rdx + 401228: be 02 00 00 00 mov $0x2,%esi + 40122d: bf 01 00 00 00 mov $0x1,%edi + 401232: e8 99 de 03 00 callq 43f0d0 <__fxstat> + 401237: 85 c0 test %eax,%eax + 401239: 75 25 jne 401260 <__libc_check_standard_fds+0x1a0> + 40123b: 8b 44 24 18 mov 0x18(%rsp),%eax + 40123f: 25 00 f0 00 00 and $0xf000,%eax + 401244: 3d 00 20 00 00 cmp $0x2000,%eax + 401249: 75 15 jne 401260 <__libc_check_standard_fds+0x1a0> + 40124b: 48 81 7c 24 28 03 01 cmpq $0x103,0x28(%rsp) + 401252: 00 00 + 401254: 0f 84 b4 fe ff ff je 40110e <__libc_check_standard_fds+0x4e> + 40125a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 401260: f4 hlt + 401261: eb fd jmp 401260 <__libc_check_standard_fds+0x1a0> + 401263: f7 d8 neg %eax + 401265: 64 41 89 00 mov %eax,%fs:(%r8) + 401269: e9 12 ff ff ff jmpq 401180 <__libc_check_standard_fds+0xc0> + 40126e: f7 d8 neg %eax + 401270: 64 41 89 00 mov %eax,%fs:(%r8) + 401274: eb ea jmp 401260 <__libc_check_standard_fds+0x1a0> + 401276: f7 d8 neg %eax + 401278: 64 41 89 00 mov %eax,%fs:(%r8) + 40127c: e9 6f ff ff ff jmpq 4011f0 <__libc_check_standard_fds+0x130> + 401281: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 401288: 00 00 00 + 40128b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000401290 <__libc_setup_tls>: + 401290: 41 57 push %r15 + 401292: 41 56 push %r14 + 401294: 41 55 push %r13 + 401296: 41 54 push %r12 + 401298: 55 push %rbp + 401299: 53 push %rbx + 40129a: 48 89 f3 mov %rsi,%rbx + 40129d: 48 83 ec 18 sub $0x18,%rsp + 4012a1: 48 8b 15 a0 bf 2c 00 mov 0x2cbfa0(%rip),%rdx # 6cd248 <_dl_phdr> + 4012a8: 48 85 d2 test %rdx,%rdx + 4012ab: 74 53 je 401300 <__libc_setup_tls+0x70> + 4012ad: 48 8b 05 cc bf 2c 00 mov 0x2cbfcc(%rip),%rax # 6cd280 <_dl_phnum> + 4012b4: 48 8d 0c c5 00 00 00 lea 0x0(,%rax,8),%rcx + 4012bb: 00 + 4012bc: 48 c1 e0 06 shl $0x6,%rax + 4012c0: 48 29 c8 sub %rcx,%rax + 4012c3: 48 01 d0 add %rdx,%rax + 4012c6: 48 39 c2 cmp %rax,%rdx + 4012c9: 72 0e jb 4012d9 <__libc_setup_tls+0x49> + 4012cb: eb 33 jmp 401300 <__libc_setup_tls+0x70> + 4012cd: 0f 1f 00 nopl (%rax) + 4012d0: 48 83 c2 38 add $0x38,%rdx + 4012d4: 48 39 c2 cmp %rax,%rdx + 4012d7: 73 27 jae 401300 <__libc_setup_tls+0x70> + 4012d9: 83 3a 07 cmpl $0x7,(%rdx) + 4012dc: 75 f2 jne 4012d0 <__libc_setup_tls+0x40> + 4012de: 4c 8b 72 30 mov 0x30(%rdx),%r14 + 4012e2: 48 8b 6a 28 mov 0x28(%rdx),%rbp + 4012e6: 4c 8b 62 20 mov 0x20(%rdx),%r12 + 4012ea: 4c 8b 6a 10 mov 0x10(%rdx),%r13 + 4012ee: 4c 39 f3 cmp %r14,%rbx + 4012f1: 49 0f 42 de cmovb %r14,%rbx + 4012f5: eb 14 jmp 40130b <__libc_setup_tls+0x7b> + 4012f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4012fe: 00 00 + 401300: 45 31 f6 xor %r14d,%r14d + 401303: 45 31 ed xor %r13d,%r13d + 401306: 45 31 e4 xor %r12d,%r12d + 401309: 31 ed xor %ebp,%ebp + 40130b: 48 89 e8 mov %rbp,%rax + 40130e: 48 03 05 7b 8d 2c 00 add 0x2c8d7b(%rip),%rax # 6ca090 <_dl_tls_static_size> + 401315: 31 d2 xor %edx,%edx + 401317: 48 01 df add %rbx,%rdi + 40131a: 48 8d 44 18 ff lea -0x1(%rax,%rbx,1),%rax + 40131f: 48 f7 f3 div %rbx + 401322: 48 0f af c3 imul %rbx,%rax + 401326: 48 01 c7 add %rax,%rdi + 401329: 49 89 c7 mov %rax,%r15 + 40132c: e8 bf e7 03 00 callq 43faf0 <__sbrk> + 401331: 48 8d 74 18 ff lea -0x1(%rax,%rbx,1),%rsi + 401336: 48 89 d8 mov %rbx,%rax + 401339: 48 c7 05 3c ba 2c 00 movq $0x3e,0x2cba3c(%rip) # 6ccd80 <_dl_static_dtv> + 401340: 3e 00 00 00 + 401344: 48 f7 d8 neg %rax + 401347: 4c 8b 0d 72 9e 2c 00 mov 0x2c9e72(%rip),%r9 # 6cb1c0 <_dl_ns> + 40134e: 48 89 f1 mov %rsi,%rcx + 401351: 48 21 c1 and %rax,%rcx + 401354: 4d 85 f6 test %r14,%r14 + 401357: 74 77 je 4013d0 <__libc_setup_tls+0x140> + 401359: 4a 8d 44 35 ff lea -0x1(%rbp,%r14,1),%rax + 40135e: 31 d2 xor %edx,%edx + 401360: 4c 89 ff mov %r15,%rdi + 401363: 49 f7 f6 div %r14 + 401366: 49 0f af c6 imul %r14,%rax + 40136a: 48 29 c7 sub %rax,%rdi + 40136d: 48 01 cf add %rcx,%rdi + 401370: 4c 89 ee mov %r13,%rsi + 401373: 49 89 81 40 04 00 00 mov %rax,0x440(%r9) + 40137a: 4c 89 e2 mov %r12,%rdx + 40137d: 48 89 0c 24 mov %rcx,(%rsp) + 401381: 48 89 3d 18 ba 2c 00 mov %rdi,0x2cba18(%rip) # 6ccda0 <_dl_static_dtv+0x20> + 401388: 4c 89 4c 24 08 mov %r9,0x8(%rsp) + 40138d: c6 05 14 ba 2c 00 01 movb $0x1,0x2cba14(%rip) # 6ccda8 <_dl_static_dtv+0x28> + 401394: e8 87 ac 02 00 callq 42c020 + 401399: 48 8b 0c 24 mov (%rsp),%rcx + 40139d: bf 02 10 00 00 mov $0x1002,%edi + 4013a2: b8 9e 00 00 00 mov $0x9e,%eax + 4013a7: 4a 8d 34 39 lea (%rcx,%r15,1),%rsi + 4013ab: 48 c7 46 08 90 cd 6c movq $0x6ccd90,0x8(%rsi) + 4013b2: 00 + 4013b3: 48 89 36 mov %rsi,(%rsi) + 4013b6: 48 89 76 10 mov %rsi,0x10(%rsi) + 4013ba: 0f 05 syscall + 4013bc: 85 c0 test %eax,%eax + 4013be: 74 20 je 4013e0 <__libc_setup_tls+0x150> + 4013c0: bf 98 0f 4a 00 mov $0x4a0f98,%edi + 4013c5: e8 c6 04 01 00 callq 411890 <__libc_fatal> + 4013ca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4013d0: 4c 89 ff mov %r15,%rdi + 4013d3: 48 89 e8 mov %rbp,%rax + 4013d6: 48 29 ef sub %rbp,%rdi + 4013d9: 48 01 cf add %rcx,%rdi + 4013dc: eb 92 jmp 401370 <__libc_setup_tls+0xe0> + 4013de: 66 90 xchg %ax,%ax + 4013e0: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 + 4013e5: 4d 85 f6 test %r14,%r14 + 4013e8: 48 c7 05 cd a7 2c 00 movq $0x40,0x2ca7cd(%rip) # 6cbbc0 + 4013ef: 40 00 00 00 + 4013f3: 48 c7 05 72 b9 2c 00 movq $0x1,0x2cb972(%rip) # 6ccd70 <_dl_tls_max_dtv_idx> + 4013fa: 01 00 00 00 + 4013fe: 48 c7 05 77 bd 2c 00 movq $0x6cbbc0,0x2cbd77(%rip) # 6cd180 <_dl_tls_dtv_slotinfo_list> + 401405: c0 bb 6c 00 + 401409: 4d 89 b1 30 04 00 00 mov %r14,0x430(%r9) + 401410: 49 89 a9 28 04 00 00 mov %rbp,0x428(%r9) + 401417: 4d 89 a9 18 04 00 00 mov %r13,0x418(%r9) + 40141e: 4d 89 a1 20 04 00 00 mov %r12,0x420(%r9) + 401425: 49 c7 81 48 04 00 00 movq $0x1,0x448(%r9) + 40142c: 01 00 00 00 + 401430: 4c 89 0d b1 a7 2c 00 mov %r9,0x2ca7b1(%rip) # 6cbbe8 + 401437: 75 67 jne 4014a0 <__libc_setup_tls+0x210> + 401439: 48 89 e8 mov %rbp,%rax + 40143c: ba 01 00 00 00 mov $0x1,%edx + 401441: 48 0f af c2 imul %rdx,%rax + 401445: 48 8b 15 44 8c 2c 00 mov 0x2c8c44(%rip),%rdx # 6ca090 <_dl_tls_static_size> + 40144c: 48 c7 05 41 bd 2c 00 movq $0x1,0x2cbd41(%rip) # 6cd198 <_dl_tls_static_nelem> + 401453: 01 00 00 00 + 401457: 48 8d 54 10 3f lea 0x3f(%rax,%rdx,1),%rdx + 40145c: 48 89 05 fd b8 2c 00 mov %rax,0x2cb8fd(%rip) # 6ccd60 <_dl_tls_static_used> + 401463: b8 40 00 00 00 mov $0x40,%eax + 401468: 48 83 e2 c0 and $0xffffffffffffffc0,%rdx + 40146c: 48 81 c2 00 09 00 00 add $0x900,%rdx + 401473: 48 83 fb 40 cmp $0x40,%rbx + 401477: 48 0f 42 d8 cmovb %rax,%rbx + 40147b: 48 89 15 0e 8c 2c 00 mov %rdx,0x2c8c0e(%rip) # 6ca090 <_dl_tls_static_size> + 401482: 48 89 1d df b8 2c 00 mov %rbx,0x2cb8df(%rip) # 6ccd68 <_dl_tls_static_align> + 401489: 48 83 c4 18 add $0x18,%rsp + 40148d: 5b pop %rbx + 40148e: 5d pop %rbp + 40148f: 41 5c pop %r12 + 401491: 41 5d pop %r13 + 401493: 41 5e pop %r14 + 401495: 41 5f pop %r15 + 401497: c3 retq + 401498: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40149f: 00 + 4014a0: 4a 8d 44 35 ff lea -0x1(%rbp,%r14,1),%rax + 4014a5: 31 d2 xor %edx,%edx + 4014a7: 49 f7 f6 div %r14 + 4014aa: 4c 89 f2 mov %r14,%rdx + 4014ad: eb 92 jmp 401441 <__libc_setup_tls+0x1b1> + 4014af: 90 nop + +00000000004014b0 <_dl_tls_setup>: + 4014b0: 48 8b 05 d9 8b 2c 00 mov 0x2c8bd9(%rip),%rax # 6ca090 <_dl_tls_static_size> + 4014b7: 48 c7 05 fe a6 2c 00 movq $0x40,0x2ca6fe(%rip) # 6cbbc0 + 4014be: 40 00 00 00 + 4014c2: 48 c7 05 a3 b8 2c 00 movq $0x1,0x2cb8a3(%rip) # 6ccd70 <_dl_tls_max_dtv_idx> + 4014c9: 01 00 00 00 + 4014cd: 48 c7 05 a8 bc 2c 00 movq $0x6cbbc0,0x2cbca8(%rip) # 6cd180 <_dl_tls_dtv_slotinfo_list> + 4014d4: c0 bb 6c 00 + 4014d8: 48 c7 05 7d b8 2c 00 movq $0x900,0x2cb87d(%rip) # 6ccd60 <_dl_tls_static_used> + 4014df: 00 09 00 00 + 4014e3: 48 c7 05 7a b8 2c 00 movq $0x40,0x2cb87a(%rip) # 6ccd68 <_dl_tls_static_align> + 4014ea: 40 00 00 00 + 4014ee: 48 05 3f 09 00 00 add $0x93f,%rax + 4014f4: 48 c7 05 99 bc 2c 00 movq $0x1,0x2cbc99(%rip) # 6cd198 <_dl_tls_static_nelem> + 4014fb: 01 00 00 00 + 4014ff: 48 83 e0 c0 and $0xffffffffffffffc0,%rax + 401503: 48 05 00 09 00 00 add $0x900,%rax + 401509: 48 89 05 80 8b 2c 00 mov %rax,0x2c8b80(%rip) # 6ca090 <_dl_tls_static_size> + 401510: 31 c0 xor %eax,%eax + 401512: c3 retq + 401513: 0f 1f 00 nopl (%rax) + 401516: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40151d: 00 00 00 + +0000000000401520 <__pthread_initialize_minimal>: + 401520: be 40 00 00 00 mov $0x40,%esi + 401525: bf 00 09 00 00 mov $0x900,%edi + 40152a: e9 61 fd ff ff jmpq 401290 <__libc_setup_tls> + 40152f: 90 nop + +0000000000401530 <__libc_csu_init>: + 401530: 41 56 push %r14 + 401532: 41 be d8 9e 6c 00 mov $0x6c9ed8,%r14d + 401538: 41 55 push %r13 + 40153a: 49 81 ee d8 9e 6c 00 sub $0x6c9ed8,%r14 + 401541: 41 54 push %r12 + 401543: 55 push %rbp + 401544: 49 c1 fe 03 sar $0x3,%r14 + 401548: 53 push %rbx + 401549: 31 db xor %ebx,%ebx + 40154b: 4d 85 f6 test %r14,%r14 + 40154e: 89 fd mov %edi,%ebp + 401550: 49 89 f4 mov %rsi,%r12 + 401553: 49 89 d5 mov %rdx,%r13 + 401556: 74 20 je 401578 <__libc_csu_init+0x48> + 401558: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40155f: 00 + 401560: 4c 89 ea mov %r13,%rdx + 401563: 4c 89 e6 mov %r12,%rsi + 401566: 89 ef mov %ebp,%edi + 401568: ff 14 dd d8 9e 6c 00 callq *0x6c9ed8(,%rbx,8) + 40156f: 48 83 c3 01 add $0x1,%rbx + 401573: 4c 39 f3 cmp %r14,%rbx + 401576: 75 e8 jne 401560 <__libc_csu_init+0x30> + 401578: 41 be e8 9e 6c 00 mov $0x6c9ee8,%r14d + 40157e: 31 db xor %ebx,%ebx + 401580: 49 81 ee d8 9e 6c 00 sub $0x6c9ed8,%r14 + 401587: 49 c1 fe 03 sar $0x3,%r14 + 40158b: e8 38 ed ff ff callq 4002c8 <__rela_iplt_end> + 401590: 4d 85 f6 test %r14,%r14 + 401593: 74 1b je 4015b0 <__libc_csu_init+0x80> + 401595: 0f 1f 00 nopl (%rax) + 401598: 4c 89 ea mov %r13,%rdx + 40159b: 4c 89 e6 mov %r12,%rsi + 40159e: 89 ef mov %ebp,%edi + 4015a0: ff 14 dd d8 9e 6c 00 callq *0x6c9ed8(,%rbx,8) + 4015a7: 48 83 c3 01 add $0x1,%rbx + 4015ab: 4c 39 f3 cmp %r14,%rbx + 4015ae: 75 e8 jne 401598 <__libc_csu_init+0x68> + 4015b0: 5b pop %rbx + 4015b1: 5d pop %rbp + 4015b2: 41 5c pop %r12 + 4015b4: 41 5d pop %r13 + 4015b6: 41 5e pop %r14 + 4015b8: c3 retq + 4015b9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +00000000004015c0 <__libc_csu_fini>: + 4015c0: 53 push %rbx + 4015c1: bb f8 9e 6c 00 mov $0x6c9ef8,%ebx + 4015c6: 48 81 eb e8 9e 6c 00 sub $0x6c9ee8,%rbx + 4015cd: 48 c1 fb 03 sar $0x3,%rbx + 4015d1: 48 85 db test %rbx,%rbx + 4015d4: 74 17 je 4015ed <__libc_csu_fini+0x2d> + 4015d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4015dd: 00 00 00 + 4015e0: ff 14 dd e0 9e 6c 00 callq *0x6c9ee0(,%rbx,8) + 4015e7: 48 83 eb 01 sub $0x1,%rbx + 4015eb: 75 f3 jne 4015e0 <__libc_csu_fini+0x20> + 4015ed: 5b pop %rbx + 4015ee: e9 ad f8 09 00 jmpq 4a0ea0 <_fini> + 4015f3: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4015fa: 00 00 00 + 4015fd: 0f 1f 00 nopl (%rax) + +0000000000401600 <__assert_fail_base>: + 401600: 41 56 push %r14 + 401602: 41 55 push %r13 + 401604: b8 00 00 00 00 mov $0x0,%eax + 401609: 41 54 push %r12 + 40160b: 55 push %rbp + 40160c: 49 89 f6 mov %rsi,%r14 + 40160f: 53 push %rbx + 401610: 48 89 fd mov %rdi,%rbp + 401613: 49 89 d4 mov %rdx,%r12 + 401616: 41 89 cd mov %ecx,%r13d + 401619: 4c 89 c3 mov %r8,%rbx + 40161c: 48 83 ec 10 sub $0x10,%rsp + 401620: 48 85 c0 test %rax,%rax + 401623: 74 09 je 40162e <__assert_fail_base+0x2e> + 401625: 31 f6 xor %esi,%esi + 401627: bf 01 00 00 00 mov $0x1,%edi + 40162c: ff d0 callq *%rax + 40162e: 48 8b 3d ab 9a 2c 00 mov 0x2c9aab(%rip),%rdi # 6cb0e0 <__progname> + 401635: be 25 67 4b 00 mov $0x4b6725,%esi + 40163a: b8 6f 52 4b 00 mov $0x4b526f,%eax + 40163f: 48 85 db test %rbx,%rbx + 401642: 48 89 f2 mov %rsi,%rdx + 401645: 48 89 c1 mov %rax,%rcx + 401648: 48 0f 44 ce cmove %rsi,%rcx + 40164c: 48 0f 45 d3 cmovne %rbx,%rdx + 401650: 45 89 e9 mov %r13d,%r9d + 401653: 80 3f 00 cmpb $0x0,(%rdi) + 401656: 4d 89 e0 mov %r12,%r8 + 401659: 48 0f 44 c6 cmove %rsi,%rax + 40165d: 48 8d 74 24 04 lea 0x4(%rsp),%rsi + 401662: 56 push %rsi + 401663: 41 56 push %r14 + 401665: 48 89 ee mov %rbp,%rsi + 401668: 51 push %rcx + 401669: 52 push %rdx + 40166a: 48 89 fa mov %rdi,%rdx + 40166d: 48 89 c1 mov %rax,%rcx + 401670: 31 c0 xor %eax,%eax + 401672: 48 8d 7c 24 28 lea 0x28(%rsp),%rdi + 401677: e8 84 dc 00 00 callq 40f300 <___asprintf> + 40167c: 48 83 c4 20 add $0x20,%rsp + 401680: 85 c0 test %eax,%eax + 401682: 0f 88 93 00 00 00 js 40171b <__assert_fail_base+0x11b> + 401688: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 40168d: be 99 c4 4b 00 mov $0x4bc499,%esi + 401692: 31 ff xor %edi,%edi + 401694: 31 c0 xor %eax,%eax + 401696: e8 f5 dc 00 00 callq 40f390 <__fxprintf> + 40169b: 48 8b 3d 96 90 2c 00 mov 0x2c9096(%rip),%rdi # 6ca738 <_IO_stderr> + 4016a2: e8 99 e0 00 00 callq 40f740 <_IO_fflush> + 4016a7: 48 8b 05 d2 9a 2c 00 mov 0x2c9ad2(%rip),%rax # 6cb180 <_dl_pagesize> + 4016ae: 8b 74 24 04 mov 0x4(%rsp),%esi + 4016b2: 45 31 c9 xor %r9d,%r9d + 4016b5: 31 ff xor %edi,%edi + 4016b7: 41 b8 ff ff ff ff mov $0xffffffff,%r8d + 4016bd: b9 22 00 00 00 mov $0x22,%ecx + 4016c2: ba 03 00 00 00 mov $0x3,%edx + 4016c7: 01 c6 add %eax,%esi + 4016c9: f7 d8 neg %eax + 4016cb: 21 c6 and %eax,%esi + 4016cd: 89 74 24 04 mov %esi,0x4(%rsp) + 4016d1: 48 63 f6 movslq %esi,%rsi + 4016d4: e8 17 e5 03 00 callq 43fbf0 <__mmap> + 4016d9: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 4016dd: 48 89 c3 mov %rax,%rbx + 4016e0: 74 2a je 40170c <__assert_fail_base+0x10c> + 4016e2: 8b 44 24 04 mov 0x4(%rsp),%eax + 4016e6: 48 8b 74 24 08 mov 0x8(%rsp),%rsi + 4016eb: 48 8d 7b 04 lea 0x4(%rbx),%rdi + 4016ef: 89 03 mov %eax,(%rbx) + 4016f1: e8 fa eb ff ff callq 4002f0 <__rela_iplt_end+0x28> + 4016f6: 48 89 df mov %rbx,%rdi + 4016f9: 48 87 3d 20 aa 2c 00 xchg %rdi,0x2caa20(%rip) # 6cc120 <__abort_msg> + 401700: 48 85 ff test %rdi,%rdi + 401703: 74 07 je 40170c <__assert_fail_base+0x10c> + 401705: 8b 37 mov (%rdi),%esi + 401707: e8 a4 e5 03 00 callq 43fcb0 <__munmap> + 40170c: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi + 401711: e8 9a c6 01 00 callq 41ddb0 <__cfree> + 401716: e8 e5 c4 00 00 callq 40dc00 + 40171b: ba 12 00 00 00 mov $0x12,%edx + 401720: be 00 10 4a 00 mov $0x4a1000,%esi + 401725: bf 02 00 00 00 mov $0x2,%edi + 40172a: e8 b1 da 03 00 callq 43f1e0 <__libc_write> + 40172f: eb e5 jmp 401716 <__assert_fail_base+0x116> + 401731: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 401736: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40173d: 00 00 00 + +0000000000401740 <__assert_fail>: + 401740: 41 55 push %r13 + 401742: 41 54 push %r12 + 401744: 49 89 cd mov %rcx,%r13 + 401747: 55 push %rbp + 401748: 53 push %rbx + 401749: 48 89 f5 mov %rsi,%rbp + 40174c: 48 89 fb mov %rdi,%rbx + 40174f: 41 89 d4 mov %edx,%r12d + 401752: be d0 0f 4a 00 mov $0x4a0fd0,%esi + 401757: ba 05 00 00 00 mov $0x5,%edx + 40175c: bf 5c 26 4b 00 mov $0x4b265c,%edi + 401761: 48 83 ec 08 sub $0x8,%rsp + 401765: e8 16 00 00 00 callq 401780 <__dcgettext> + 40176a: 4d 89 e8 mov %r13,%r8 + 40176d: 44 89 e1 mov %r12d,%ecx + 401770: 48 89 ea mov %rbp,%rdx + 401773: 48 89 de mov %rbx,%rsi + 401776: 48 89 c7 mov %rax,%rdi + 401779: e8 82 fe ff ff callq 401600 <__assert_fail_base> + 40177e: 66 90 xchg %ax,%ax + +0000000000401780 <__dcgettext>: + 401780: 41 89 d1 mov %edx,%r9d + 401783: 45 31 c0 xor %r8d,%r8d + 401786: 31 c9 xor %ecx,%ecx + 401788: 31 d2 xor %edx,%edx + 40178a: e9 e1 13 00 00 jmpq 402b70 <__dcigettext> + 40178f: 90 nop + +0000000000401790 : + 401790: 55 push %rbp + 401791: 53 push %rbx + 401792: 48 89 fd mov %rdi,%rbp + 401795: 48 89 f3 mov %rsi,%rbx + 401798: 48 83 ec 08 sub $0x8,%rsp + 40179c: 48 83 7e 20 00 cmpq $0x0,0x20(%rsi) + 4017a1: 74 5d je 401800 + 4017a3: 48 8d 76 38 lea 0x38(%rsi),%rsi + 4017a7: 48 83 7d 20 00 cmpq $0x0,0x20(%rbp) + 4017ac: 74 42 je 4017f0 + 4017ae: 48 8d 7d 38 lea 0x38(%rbp),%rdi + 4017b2: e8 a9 eb ff ff callq 400360 <__rela_iplt_end+0x98> + 4017b7: 85 c0 test %eax,%eax + 4017b9: 75 27 jne 4017e2 + 4017bb: 48 8b 33 mov (%rbx),%rsi + 4017be: 48 8b 7d 00 mov 0x0(%rbp),%rdi + 4017c2: e8 99 eb ff ff callq 400360 <__rela_iplt_end+0x98> + 4017c7: 85 c0 test %eax,%eax + 4017c9: 75 17 jne 4017e2 + 4017cb: 48 8b 73 10 mov 0x10(%rbx),%rsi + 4017cf: 48 8b 7d 10 mov 0x10(%rbp),%rdi + 4017d3: e8 88 eb ff ff callq 400360 <__rela_iplt_end+0x98> + 4017d8: 85 c0 test %eax,%eax + 4017da: 75 06 jne 4017e2 + 4017dc: 8b 45 08 mov 0x8(%rbp),%eax + 4017df: 2b 43 08 sub 0x8(%rbx),%eax + 4017e2: 48 83 c4 08 add $0x8,%rsp + 4017e6: 5b pop %rbx + 4017e7: 5d pop %rbp + 4017e8: c3 retq + 4017e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4017f0: 48 8b 7d 38 mov 0x38(%rbp),%rdi + 4017f4: eb bc jmp 4017b2 + 4017f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4017fd: 00 00 00 + 401800: 48 8b 76 38 mov 0x38(%rsi),%rsi + 401804: eb a1 jmp 4017a7 + 401806: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40180d: 00 00 00 + +0000000000401810 : + 401810: 41 57 push %r15 + 401812: 41 56 push %r14 + 401814: 41 55 push %r13 + 401816: 41 54 push %r12 + 401818: 49 89 f4 mov %rsi,%r12 + 40181b: 55 push %rbp + 40181c: 53 push %rbx + 40181d: 48 89 fb mov %rdi,%rbx + 401820: 48 83 ec 08 sub $0x8,%rsp + 401824: 8b 03 mov (%rbx),%eax + 401826: 83 f8 01 cmp $0x1,%eax + 401829: 0f 84 f9 00 00 00 je 401928 + 40182f: 0f 8e d3 00 00 00 jle 401908 + 401835: 83 f8 02 cmp $0x2,%eax + 401838: 74 56 je 401890 + 40183a: 83 f8 03 cmp $0x3,%eax + 40183d: 0f 85 ad 00 00 00 jne 4018f0 + 401843: 4c 8b 6b 08 mov 0x8(%rbx),%r13 + 401847: 41 8b 6d 00 mov 0x0(%r13),%ebp + 40184b: 83 fd 01 cmp $0x1,%ebp + 40184e: 0f 84 2c 02 00 00 je 401a80 + 401854: 0f 8e 16 01 00 00 jle 401970 + 40185a: 83 fd 02 cmp $0x2,%ebp + 40185d: 0f 84 45 02 00 00 je 401aa8 + 401863: 83 fd 03 cmp $0x3,%ebp + 401866: 0f 85 74 01 00 00 jne 4019e0 + 40186c: 49 8b 7d 08 mov 0x8(%r13),%rdi + 401870: 4c 89 e6 mov %r12,%rsi + 401873: e8 98 ff ff ff callq 401810 + 401878: 48 83 f8 01 cmp $0x1,%rax + 40187c: 19 c0 sbb %eax,%eax + 40187e: f7 d0 not %eax + 401880: 83 c0 02 add $0x2,%eax + 401883: 48 98 cltq + 401885: 4d 8b 6c c5 08 mov 0x8(%r13,%rax,8),%r13 + 40188a: eb bb jmp 401847 + 40188c: 0f 1f 40 00 nopl 0x0(%rax) + 401890: 48 8b 6b 08 mov 0x8(%rbx),%rbp + 401894: 8b 45 00 mov 0x0(%rbp),%eax + 401897: 83 f8 01 cmp $0x1,%eax + 40189a: 0f 84 b8 02 00 00 je 401b58 + 4018a0: 0f 8e ea 00 00 00 jle 401990 + 4018a6: 83 f8 02 cmp $0x2,%eax + 4018a9: 0f 84 41 02 00 00 je 401af0 + 4018af: 83 f8 03 cmp $0x3,%eax + 4018b2: 75 24 jne 4018d8 + 4018b4: 48 8b 7d 08 mov 0x8(%rbp),%rdi + 4018b8: 4c 89 e6 mov %r12,%rsi + 4018bb: e8 50 ff ff ff callq 401810 + 4018c0: 48 83 f8 01 cmp $0x1,%rax + 4018c4: 19 c0 sbb %eax,%eax + 4018c6: f7 d0 not %eax + 4018c8: 83 c0 02 add $0x2,%eax + 4018cb: 48 98 cltq + 4018cd: 48 8b 6c c5 08 mov 0x8(%rbp,%rax,8),%rbp + 4018d2: eb c0 jmp 401894 + 4018d4: 0f 1f 40 00 nopl 0x0(%rax) + 4018d8: 8b 43 04 mov 0x4(%rbx),%eax + 4018db: 83 f8 0f cmp $0xf,%eax + 4018de: 0f 84 a8 02 00 00 je 401b8c + 4018e4: 45 31 ed xor %r13d,%r13d + 4018e7: 83 f8 0e cmp $0xe,%eax + 4018ea: 0f 85 08 01 00 00 jne 4019f8 + 4018f0: 31 c9 xor %ecx,%ecx + 4018f2: 48 83 c4 08 add $0x8,%rsp + 4018f6: 48 89 c8 mov %rcx,%rax + 4018f9: 5b pop %rbx + 4018fa: 5d pop %rbp + 4018fb: 41 5c pop %r12 + 4018fd: 41 5d pop %r13 + 4018ff: 41 5e pop %r14 + 401901: 41 5f pop %r15 + 401903: c3 retq + 401904: 0f 1f 40 00 nopl 0x0(%rax) + 401908: 85 c0 test %eax,%eax + 40190a: 75 e4 jne 4018f0 + 40190c: 8b 43 04 mov 0x4(%rbx),%eax + 40190f: 4c 89 e1 mov %r12,%rcx + 401912: 85 c0 test %eax,%eax + 401914: 74 dc je 4018f2 + 401916: 83 f8 01 cmp $0x1,%eax + 401919: 75 d5 jne 4018f0 + 40191b: 48 8b 4b 08 mov 0x8(%rbx),%rcx + 40191f: eb d1 jmp 4018f2 + 401921: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 401928: 48 8b 5b 08 mov 0x8(%rbx),%rbx + 40192c: 8b 03 mov (%rbx),%eax + 40192e: 83 f8 01 cmp $0x1,%eax + 401931: 0f 84 01 02 00 00 je 401b38 + 401937: 7e 7f jle 4019b8 + 401939: 83 f8 02 cmp $0x2,%eax + 40193c: 0f 84 ee 00 00 00 je 401a30 + 401942: 83 f8 03 cmp $0x3,%eax + 401945: 0f 85 d5 00 00 00 jne 401a20 + 40194b: 48 8b 7b 08 mov 0x8(%rbx),%rdi + 40194f: 4c 89 e6 mov %r12,%rsi + 401952: e8 b9 fe ff ff callq 401810 + 401957: 48 83 f8 01 cmp $0x1,%rax + 40195b: 19 c0 sbb %eax,%eax + 40195d: f7 d0 not %eax + 40195f: 83 c0 02 add $0x2,%eax + 401962: 48 98 cltq + 401964: 48 8b 5c c3 08 mov 0x8(%rbx,%rax,8),%rbx + 401969: eb c1 jmp 40192c + 40196b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 401970: 85 ed test %ebp,%ebp + 401972: 75 6c jne 4019e0 + 401974: 41 8b 45 04 mov 0x4(%r13),%eax + 401978: 85 c0 test %eax,%eax + 40197a: 0f 84 30 02 00 00 je 401bb0 + 401980: 83 f8 01 cmp $0x1,%eax + 401983: 75 5b jne 4019e0 + 401985: 49 8b 4d 08 mov 0x8(%r13),%rcx + 401989: e9 06 01 00 00 jmpq 401a94 + 40198e: 66 90 xchg %ax,%ax + 401990: 85 c0 test %eax,%eax + 401992: 0f 85 40 ff ff ff jne 4018d8 + 401998: 8b 45 04 mov 0x4(%rbp),%eax + 40199b: 85 c0 test %eax,%eax + 40199d: 0f 84 05 02 00 00 je 401ba8 + 4019a3: 83 f8 01 cmp $0x1,%eax + 4019a6: 0f 85 2c ff ff ff jne 4018d8 + 4019ac: 4c 8b 6d 08 mov 0x8(%rbp),%r13 + 4019b0: e9 b9 01 00 00 jmpq 401b6e + 4019b5: 0f 1f 00 nopl (%rax) + 4019b8: 85 c0 test %eax,%eax + 4019ba: 75 64 jne 401a20 + 4019bc: 8b 43 04 mov 0x4(%rbx),%eax + 4019bf: 85 c0 test %eax,%eax + 4019c1: 0f 84 d1 01 00 00 je 401b98 + 4019c7: 83 f8 01 cmp $0x1,%eax + 4019ca: 75 54 jne 401a20 + 4019cc: 31 c9 xor %ecx,%ecx + 4019ce: 48 83 7b 08 00 cmpq $0x0,0x8(%rbx) + 4019d3: 0f 94 c1 sete %cl + 4019d6: e9 17 ff ff ff jmpq 4018f2 + 4019db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4019e0: bd 02 00 00 00 mov $0x2,%ebp + 4019e5: 48 63 ed movslq %ebp,%rbp + 4019e8: 48 8b 5c eb 08 mov 0x8(%rbx,%rbp,8),%rbx + 4019ed: e9 32 fe ff ff jmpq 401824 + 4019f2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4019f8: 48 8b 7b 10 mov 0x10(%rbx),%rdi + 4019fc: 4c 89 e6 mov %r12,%rsi + 4019ff: e8 0c fe ff ff callq 401810 + 401a04: 8b 4b 04 mov 0x4(%rbx),%ecx + 401a07: 48 89 c5 mov %rax,%rbp + 401a0a: 83 e9 03 sub $0x3,%ecx + 401a0d: 83 f9 0a cmp $0xa,%ecx + 401a10: 0f 87 da fe ff ff ja 4018f0 + 401a16: ff 24 cd 18 10 4a 00 jmpq *0x4a1018(,%rcx,8) + 401a1d: 0f 1f 00 nopl (%rax) + 401a20: b9 01 00 00 00 mov $0x1,%ecx + 401a25: e9 c8 fe ff ff jmpq 4018f2 + 401a2a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 401a30: 48 8b 7b 08 mov 0x8(%rbx),%rdi + 401a34: 4c 89 e6 mov %r12,%rsi + 401a37: e8 d4 fd ff ff callq 401810 + 401a3c: 8b 4b 04 mov 0x4(%rbx),%ecx + 401a3f: 48 89 c5 mov %rax,%rbp + 401a42: 83 f9 0f cmp $0xf,%ecx + 401a45: 0f 84 85 01 00 00 je 401bd0 + 401a4b: 83 f9 0e cmp $0xe,%ecx + 401a4e: 0f 85 1c 04 00 00 jne 401e70 + 401a54: 48 85 c0 test %rax,%rax + 401a57: b9 01 00 00 00 mov $0x1,%ecx + 401a5c: 0f 84 90 fe ff ff je 4018f2 + 401a62: 48 8b 7b 10 mov 0x10(%rbx),%rdi + 401a66: 4c 89 e6 mov %r12,%rsi + 401a69: e8 a2 fd ff ff callq 401810 + 401a6e: 31 c9 xor %ecx,%ecx + 401a70: 48 85 c0 test %rax,%rax + 401a73: 0f 94 c1 sete %cl + 401a76: e9 77 fe ff ff jmpq 4018f2 + 401a7b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 401a80: 49 8b 7d 08 mov 0x8(%r13),%rdi + 401a84: 4c 89 e6 mov %r12,%rsi + 401a87: e8 84 fd ff ff callq 401810 + 401a8c: 31 c9 xor %ecx,%ecx + 401a8e: 48 85 c0 test %rax,%rax + 401a91: 0f 94 c1 sete %cl + 401a94: 48 83 f9 01 cmp $0x1,%rcx + 401a98: 19 ed sbb %ebp,%ebp + 401a9a: f7 d5 not %ebp + 401a9c: 83 c5 02 add $0x2,%ebp + 401a9f: e9 41 ff ff ff jmpq 4019e5 + 401aa4: 0f 1f 40 00 nopl 0x0(%rax) + 401aa8: 49 8b 7d 08 mov 0x8(%r13),%rdi + 401aac: 4c 89 e6 mov %r12,%rsi + 401aaf: e8 5c fd ff ff callq 401810 + 401ab4: 49 89 c6 mov %rax,%r14 + 401ab7: 41 8b 45 04 mov 0x4(%r13),%eax + 401abb: 83 f8 0f cmp $0xf,%eax + 401abe: 0f 84 1c 01 00 00 je 401be0 + 401ac4: 83 f8 0e cmp $0xe,%eax + 401ac7: 0f 85 eb 01 00 00 jne 401cb8 + 401acd: 4d 85 f6 test %r14,%r14 + 401ad0: 0f 84 0f ff ff ff je 4019e5 + 401ad6: 49 8b 7d 10 mov 0x10(%r13),%rdi + 401ada: 4c 89 e6 mov %r12,%rsi + 401add: e8 2e fd ff ff callq 401810 + 401ae2: 31 c9 xor %ecx,%ecx + 401ae4: 48 85 c0 test %rax,%rax + 401ae7: 0f 95 c1 setne %cl + 401aea: eb a8 jmp 401a94 + 401aec: 0f 1f 40 00 nopl 0x0(%rax) + 401af0: 48 8b 7d 08 mov 0x8(%rbp),%rdi + 401af4: 4c 89 e6 mov %r12,%rsi + 401af7: e8 14 fd ff ff callq 401810 + 401afc: 8b 4d 04 mov 0x4(%rbp),%ecx + 401aff: 49 89 c6 mov %rax,%r14 + 401b02: 83 f9 0f cmp $0xf,%ecx + 401b05: 0f 84 b5 00 00 00 je 401bc0 + 401b0b: 83 f9 0e cmp $0xe,%ecx + 401b0e: 0f 85 7c 02 00 00 jne 401d90 + 401b14: 45 31 ed xor %r13d,%r13d + 401b17: 48 85 c0 test %rax,%rax + 401b1a: 74 52 je 401b6e + 401b1c: 48 8b 7d 10 mov 0x10(%rbp),%rdi + 401b20: 4c 89 e6 mov %r12,%rsi + 401b23: 45 31 ed xor %r13d,%r13d + 401b26: e8 e5 fc ff ff callq 401810 + 401b2b: 48 85 c0 test %rax,%rax + 401b2e: 41 0f 95 c5 setne %r13b + 401b32: eb 3a jmp 401b6e + 401b34: 0f 1f 40 00 nopl 0x0(%rax) + 401b38: 48 8b 7b 08 mov 0x8(%rbx),%rdi + 401b3c: 4c 89 e6 mov %r12,%rsi + 401b3f: e8 cc fc ff ff callq 401810 + 401b44: 31 c9 xor %ecx,%ecx + 401b46: 48 85 c0 test %rax,%rax + 401b49: 0f 95 c1 setne %cl + 401b4c: e9 a1 fd ff ff jmpq 4018f2 + 401b51: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 401b58: 48 8b 7d 08 mov 0x8(%rbp),%rdi + 401b5c: 4c 89 e6 mov %r12,%rsi + 401b5f: 45 31 ed xor %r13d,%r13d + 401b62: e8 a9 fc ff ff callq 401810 + 401b67: 48 85 c0 test %rax,%rax + 401b6a: 41 0f 94 c5 sete %r13b + 401b6e: 8b 4b 04 mov 0x4(%rbx),%ecx + 401b71: 83 f9 0f cmp $0xf,%ecx + 401b74: 0f 84 26 01 00 00 je 401ca0 + 401b7a: 83 f9 0e cmp $0xe,%ecx + 401b7d: 0f 85 75 fe ff ff jne 4019f8 + 401b83: 4d 85 ed test %r13,%r13 + 401b86: 0f 84 64 fd ff ff je 4018f0 + 401b8c: 48 8b 7b 10 mov 0x10(%rbx),%rdi + 401b90: eb aa jmp 401b3c + 401b92: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 401b98: 31 c9 xor %ecx,%ecx + 401b9a: 4d 85 e4 test %r12,%r12 + 401b9d: 0f 94 c1 sete %cl + 401ba0: e9 4d fd ff ff jmpq 4018f2 + 401ba5: 0f 1f 00 nopl (%rax) + 401ba8: 4d 89 e5 mov %r12,%r13 + 401bab: eb c1 jmp 401b6e + 401bad: 0f 1f 00 nopl (%rax) + 401bb0: 4c 89 e1 mov %r12,%rcx + 401bb3: e9 dc fe ff ff jmpq 401a94 + 401bb8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 401bbf: 00 + 401bc0: 48 85 c0 test %rax,%rax + 401bc3: 41 bd 01 00 00 00 mov $0x1,%r13d + 401bc9: 75 a3 jne 401b6e + 401bcb: e9 4c ff ff ff jmpq 401b1c + 401bd0: 31 c9 xor %ecx,%ecx + 401bd2: 48 85 c0 test %rax,%rax + 401bd5: 0f 85 17 fd ff ff jne 4018f2 + 401bdb: e9 82 fe ff ff jmpq 401a62 + 401be0: 4d 85 f6 test %r14,%r14 + 401be3: bd 01 00 00 00 mov $0x1,%ebp + 401be8: 0f 85 f7 fd ff ff jne 4019e5 + 401bee: e9 e3 fe ff ff jmpq 401ad6 + 401bf3: 31 c9 xor %ecx,%ecx + 401bf5: 4c 39 e8 cmp %r13,%rax + 401bf8: 0f 95 c1 setne %cl + 401bfb: e9 f2 fc ff ff jmpq 4018f2 + 401c00: 31 c9 xor %ecx,%ecx + 401c02: 4c 39 e8 cmp %r13,%rax + 401c05: 0f 94 c1 sete %cl + 401c08: e9 e5 fc ff ff jmpq 4018f2 + 401c0d: 31 c9 xor %ecx,%ecx + 401c0f: 4c 39 e8 cmp %r13,%rax + 401c12: 0f 96 c1 setbe %cl + 401c15: e9 d8 fc ff ff jmpq 4018f2 + 401c1a: 31 c9 xor %ecx,%ecx + 401c1c: 4c 39 e8 cmp %r13,%rax + 401c1f: 0f 93 c1 setae %cl + 401c22: e9 cb fc ff ff jmpq 4018f2 + 401c27: 31 c9 xor %ecx,%ecx + 401c29: 4c 39 e8 cmp %r13,%rax + 401c2c: 0f 92 c1 setb %cl + 401c2f: e9 be fc ff ff jmpq 4018f2 + 401c34: 31 c9 xor %ecx,%ecx + 401c36: 4c 39 e8 cmp %r13,%rax + 401c39: 0f 97 c1 seta %cl + 401c3c: e9 b1 fc ff ff jmpq 4018f2 + 401c41: 4c 89 e9 mov %r13,%rcx + 401c44: 48 29 c1 sub %rax,%rcx + 401c47: e9 a6 fc ff ff jmpq 4018f2 + 401c4c: 4a 8d 0c 28 lea (%rax,%r13,1),%rcx + 401c50: e9 9d fc ff ff jmpq 4018f2 + 401c55: 48 85 c0 test %rax,%rax + 401c58: 75 0a jne 401c64 + 401c5a: bf 08 00 00 00 mov $0x8,%edi + 401c5f: e8 1c bf 00 00 callq 40db80 + 401c64: 4c 89 e8 mov %r13,%rax + 401c67: 31 d2 xor %edx,%edx + 401c69: 48 f7 f5 div %rbp + 401c6c: 48 89 d1 mov %rdx,%rcx + 401c6f: e9 7e fc ff ff jmpq 4018f2 + 401c74: 48 85 c0 test %rax,%rax + 401c77: 75 0a jne 401c83 + 401c79: bf 08 00 00 00 mov $0x8,%edi + 401c7e: e8 fd be 00 00 callq 40db80 + 401c83: 4c 89 e8 mov %r13,%rax + 401c86: 31 d2 xor %edx,%edx + 401c88: 48 f7 f5 div %rbp + 401c8b: 48 89 c1 mov %rax,%rcx + 401c8e: e9 5f fc ff ff jmpq 4018f2 + 401c93: 48 89 c1 mov %rax,%rcx + 401c96: 49 0f af cd imul %r13,%rcx + 401c9a: e9 53 fc ff ff jmpq 4018f2 + 401c9f: 90 nop + 401ca0: 4d 85 ed test %r13,%r13 + 401ca3: b9 01 00 00 00 mov $0x1,%ecx + 401ca8: 0f 85 44 fc ff ff jne 4018f2 + 401cae: e9 d9 fe ff ff jmpq 401b8c + 401cb3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 401cb8: 49 8b 7d 10 mov 0x10(%r13),%rdi + 401cbc: 4c 89 e6 mov %r12,%rsi + 401cbf: e8 4c fb ff ff callq 401810 + 401cc4: 48 89 c5 mov %rax,%rbp + 401cc7: 41 8b 45 04 mov 0x4(%r13),%eax + 401ccb: 83 e8 03 sub $0x3,%eax + 401cce: 83 f8 0a cmp $0xa,%eax + 401cd1: 0f 87 09 fd ff ff ja 4019e0 + 401cd7: ff 24 c5 70 10 4a 00 jmpq *0x4a1070(,%rax,8) + 401cde: 31 c9 xor %ecx,%ecx + 401ce0: 49 39 ee cmp %rbp,%r14 + 401ce3: 0f 94 c1 sete %cl + 401ce6: e9 a9 fd ff ff jmpq 401a94 + 401ceb: 31 c9 xor %ecx,%ecx + 401ced: 49 39 ee cmp %rbp,%r14 + 401cf0: 0f 93 c1 setae %cl + 401cf3: e9 9c fd ff ff jmpq 401a94 + 401cf8: 31 c9 xor %ecx,%ecx + 401cfa: 49 39 ee cmp %rbp,%r14 + 401cfd: 0f 96 c1 setbe %cl + 401d00: e9 8f fd ff ff jmpq 401a94 + 401d05: 31 c9 xor %ecx,%ecx + 401d07: 49 39 ee cmp %rbp,%r14 + 401d0a: 0f 97 c1 seta %cl + 401d0d: e9 82 fd ff ff jmpq 401a94 + 401d12: 31 c9 xor %ecx,%ecx + 401d14: 49 39 ee cmp %rbp,%r14 + 401d17: 0f 92 c1 setb %cl + 401d1a: e9 75 fd ff ff jmpq 401a94 + 401d1f: 4c 89 f1 mov %r14,%rcx + 401d22: 48 29 e9 sub %rbp,%rcx + 401d25: e9 6a fd ff ff jmpq 401a94 + 401d2a: 49 8d 0c 2e lea (%r14,%rbp,1),%rcx + 401d2e: e9 61 fd ff ff jmpq 401a94 + 401d33: 48 85 ed test %rbp,%rbp + 401d36: 75 0a jne 401d42 + 401d38: bf 08 00 00 00 mov $0x8,%edi + 401d3d: e8 3e be 00 00 callq 40db80 + 401d42: 4c 89 f0 mov %r14,%rax + 401d45: 31 d2 xor %edx,%edx + 401d47: 48 f7 f5 div %rbp + 401d4a: 48 89 d1 mov %rdx,%rcx + 401d4d: e9 42 fd ff ff jmpq 401a94 + 401d52: 48 85 ed test %rbp,%rbp + 401d55: 75 0a jne 401d61 + 401d57: bf 08 00 00 00 mov $0x8,%edi + 401d5c: e8 1f be 00 00 callq 40db80 + 401d61: 4c 89 f0 mov %r14,%rax + 401d64: 31 d2 xor %edx,%edx + 401d66: 48 f7 f5 div %rbp + 401d69: 48 89 c1 mov %rax,%rcx + 401d6c: e9 23 fd ff ff jmpq 401a94 + 401d71: 4c 89 f1 mov %r14,%rcx + 401d74: 48 0f af cd imul %rbp,%rcx + 401d78: e9 17 fd ff ff jmpq 401a94 + 401d7d: 31 c9 xor %ecx,%ecx + 401d7f: 49 39 ee cmp %rbp,%r14 + 401d82: 0f 95 c1 setne %cl + 401d85: e9 0a fd ff ff jmpq 401a94 + 401d8a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 401d90: 48 8b 7d 10 mov 0x10(%rbp),%rdi + 401d94: 4c 89 e6 mov %r12,%rsi + 401d97: e8 74 fa ff ff callq 401810 + 401d9c: 8b 4d 04 mov 0x4(%rbp),%ecx + 401d9f: 49 89 c7 mov %rax,%r15 + 401da2: 83 e9 03 sub $0x3,%ecx + 401da5: 83 f9 0a cmp $0xa,%ecx + 401da8: 0f 87 2a fb ff ff ja 4018d8 + 401dae: ff 24 cd c8 10 4a 00 jmpq *0x4a10c8(,%rcx,8) + 401db5: 45 31 ed xor %r13d,%r13d + 401db8: 49 39 c6 cmp %rax,%r14 + 401dbb: 41 0f 94 c5 sete %r13b + 401dbf: e9 aa fd ff ff jmpq 401b6e + 401dc4: 45 31 ed xor %r13d,%r13d + 401dc7: 49 39 c6 cmp %rax,%r14 + 401dca: 41 0f 93 c5 setae %r13b + 401dce: e9 9b fd ff ff jmpq 401b6e + 401dd3: 45 31 ed xor %r13d,%r13d + 401dd6: 49 39 c6 cmp %rax,%r14 + 401dd9: 41 0f 96 c5 setbe %r13b + 401ddd: e9 8c fd ff ff jmpq 401b6e + 401de2: 45 31 ed xor %r13d,%r13d + 401de5: 49 39 c6 cmp %rax,%r14 + 401de8: 41 0f 97 c5 seta %r13b + 401dec: e9 7d fd ff ff jmpq 401b6e + 401df1: 45 31 ed xor %r13d,%r13d + 401df4: 49 39 c6 cmp %rax,%r14 + 401df7: 41 0f 92 c5 setb %r13b + 401dfb: e9 6e fd ff ff jmpq 401b6e + 401e00: 49 29 c6 sub %rax,%r14 + 401e03: 4d 89 f5 mov %r14,%r13 + 401e06: e9 63 fd ff ff jmpq 401b6e + 401e0b: 4d 8d 2c 06 lea (%r14,%rax,1),%r13 + 401e0f: e9 5a fd ff ff jmpq 401b6e + 401e14: 48 85 c0 test %rax,%rax + 401e17: 75 0a jne 401e23 + 401e19: bf 08 00 00 00 mov $0x8,%edi + 401e1e: e8 5d bd 00 00 callq 40db80 + 401e23: 4c 89 f0 mov %r14,%rax + 401e26: 31 d2 xor %edx,%edx + 401e28: 49 f7 f7 div %r15 + 401e2b: 49 89 d5 mov %rdx,%r13 + 401e2e: e9 3b fd ff ff jmpq 401b6e + 401e33: 48 85 c0 test %rax,%rax + 401e36: 75 0a jne 401e42 + 401e38: bf 08 00 00 00 mov $0x8,%edi + 401e3d: e8 3e bd 00 00 callq 40db80 + 401e42: 4c 89 f0 mov %r14,%rax + 401e45: 31 d2 xor %edx,%edx + 401e47: 49 f7 f7 div %r15 + 401e4a: 49 89 c5 mov %rax,%r13 + 401e4d: e9 1c fd ff ff jmpq 401b6e + 401e52: 4c 0f af f0 imul %rax,%r14 + 401e56: 4d 89 f5 mov %r14,%r13 + 401e59: e9 10 fd ff ff jmpq 401b6e + 401e5e: 45 31 ed xor %r13d,%r13d + 401e61: 49 39 c6 cmp %rax,%r14 + 401e64: 41 0f 95 c5 setne %r13b + 401e68: e9 01 fd ff ff jmpq 401b6e + 401e6d: 0f 1f 00 nopl (%rax) + 401e70: 48 8b 7b 10 mov 0x10(%rbx),%rdi + 401e74: 4c 89 e6 mov %r12,%rsi + 401e77: e8 94 f9 ff ff callq 401810 + 401e7c: 8b 4b 04 mov 0x4(%rbx),%ecx + 401e7f: 49 89 c4 mov %rax,%r12 + 401e82: 83 e9 03 sub $0x3,%ecx + 401e85: 83 f9 0a cmp $0xa,%ecx + 401e88: 0f 87 92 fb ff ff ja 401a20 + 401e8e: ff 24 cd 20 11 4a 00 jmpq *0x4a1120(,%rcx,8) + 401e95: 31 c9 xor %ecx,%ecx + 401e97: 48 39 c5 cmp %rax,%rbp + 401e9a: 0f 94 c1 sete %cl + 401e9d: e9 50 fa ff ff jmpq 4018f2 + 401ea2: 31 c9 xor %ecx,%ecx + 401ea4: 48 39 c5 cmp %rax,%rbp + 401ea7: 0f 92 c1 setb %cl + 401eaa: e9 43 fa ff ff jmpq 4018f2 + 401eaf: 31 c9 xor %ecx,%ecx + 401eb1: 48 39 c5 cmp %rax,%rbp + 401eb4: 0f 97 c1 seta %cl + 401eb7: e9 36 fa ff ff jmpq 4018f2 + 401ebc: 31 c9 xor %ecx,%ecx + 401ebe: 48 39 c5 cmp %rax,%rbp + 401ec1: 0f 96 c1 setbe %cl + 401ec4: e9 29 fa ff ff jmpq 4018f2 + 401ec9: 31 c9 xor %ecx,%ecx + 401ecb: 48 39 c5 cmp %rax,%rbp + 401ece: 0f 93 c1 setae %cl + 401ed1: e9 1c fa ff ff jmpq 4018f2 + 401ed6: 31 c9 xor %ecx,%ecx + 401ed8: 48 39 c5 cmp %rax,%rbp + 401edb: 0f 95 c1 setne %cl + 401ede: e9 0f fa ff ff jmpq 4018f2 + 401ee3: 31 c9 xor %ecx,%ecx + 401ee5: 48 01 c5 add %rax,%rbp + 401ee8: 0f 94 c1 sete %cl + 401eeb: e9 02 fa ff ff jmpq 4018f2 + 401ef0: 48 85 c0 test %rax,%rax + 401ef3: 75 0a jne 401eff + 401ef5: bf 08 00 00 00 mov $0x8,%edi + 401efa: e8 81 bc 00 00 callq 40db80 + 401eff: 31 d2 xor %edx,%edx + 401f01: 48 89 e8 mov %rbp,%rax + 401f04: 31 c9 xor %ecx,%ecx + 401f06: 49 f7 f4 div %r12 + 401f09: 48 85 d2 test %rdx,%rdx + 401f0c: 0f 94 c1 sete %cl + 401f0f: e9 de f9 ff ff jmpq 4018f2 + 401f14: 48 85 c0 test %rax,%rax + 401f17: 75 0a jne 401f23 + 401f19: bf 08 00 00 00 mov $0x8,%edi + 401f1e: e8 5d bc 00 00 callq 40db80 + 401f23: 31 d2 xor %edx,%edx + 401f25: 48 89 e8 mov %rbp,%rax + 401f28: 31 c9 xor %ecx,%ecx + 401f2a: 49 f7 f4 div %r12 + 401f2d: 48 85 c0 test %rax,%rax + 401f30: 0f 94 c1 sete %cl + 401f33: e9 ba f9 ff ff jmpq 4018f2 + 401f38: 48 0f af e8 imul %rax,%rbp + 401f3c: 31 c9 xor %ecx,%ecx + 401f3e: 48 85 ed test %rbp,%rbp + 401f41: 0f 94 c1 sete %cl + 401f44: e9 a9 f9 ff ff jmpq 4018f2 + 401f49: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +0000000000401f50 <_nl_find_msg>: + 401f50: 55 push %rbp + 401f51: 48 89 f8 mov %rdi,%rax + 401f54: 48 89 e5 mov %rsp,%rbp + 401f57: 41 57 push %r15 + 401f59: 41 56 push %r14 + 401f5b: 41 55 push %r13 + 401f5d: 41 54 push %r12 + 401f5f: 53 push %rbx + 401f60: 48 81 ec 88 00 00 00 sub $0x88,%rsp + 401f67: 4c 89 85 60 ff ff ff mov %r8,-0xa0(%rbp) + 401f6e: 44 8b 47 08 mov 0x8(%rdi),%r8d + 401f72: 48 89 bd 70 ff ff ff mov %rdi,-0x90(%rbp) + 401f79: 48 89 b5 58 ff ff ff mov %rsi,-0xa8(%rbp) + 401f80: 48 89 55 a0 mov %rdx,-0x60(%rbp) + 401f84: 89 8d 68 ff ff ff mov %ecx,-0x98(%rbp) + 401f8a: 45 85 c0 test %r8d,%r8d + 401f8d: 0f 8e dd 03 00 00 jle 402370 <_nl_find_msg+0x420> + 401f93: 48 8b 58 10 mov 0x10(%rax),%rbx + 401f97: 48 85 db test %rbx,%rbx + 401f9a: 0f 84 0c 01 00 00 je 4020ac <_nl_find_msg+0x15c> + 401fa0: 48 83 7b 60 00 cmpq $0x0,0x60(%rbx) + 401fa5: 8b 43 28 mov 0x28(%rbx),%eax + 401fa8: 89 45 a8 mov %eax,-0x58(%rbp) + 401fab: 0f 84 9f 02 00 00 je 402250 <_nl_find_msg+0x300> + 401fb1: 4c 8b 75 a0 mov -0x60(%rbp),%r14 + 401fb5: 4c 89 f7 mov %r14,%rdi + 401fb8: e8 93 16 02 00 callq 423650 + 401fbd: 4c 89 f7 mov %r14,%rdi + 401fc0: 49 89 c7 mov %rax,%r15 + 401fc3: 89 85 78 ff ff ff mov %eax,-0x88(%rbp) + 401fc9: e8 62 bb 00 00 callq 40db30 <__hash_string> + 401fce: 8b 7b 58 mov 0x58(%rbx),%edi + 401fd1: 31 d2 xor %edx,%edx + 401fd3: 89 c6 mov %eax,%esi + 401fd5: 44 8b 73 68 mov 0x68(%rbx),%r14d + 401fd9: f7 f7 div %edi + 401fdb: 44 8d 47 fe lea -0x2(%rdi),%r8d + 401fdf: 89 f0 mov %esi,%eax + 401fe1: 41 89 d5 mov %edx,%r13d + 401fe4: 31 d2 xor %edx,%edx + 401fe6: 41 f7 f0 div %r8d + 401fe9: 48 8b 43 60 mov 0x60(%rbx),%rax + 401fed: 48 89 45 98 mov %rax,-0x68(%rbp) + 401ff1: 44 89 f8 mov %r15d,%eax + 401ff4: 41 89 ff mov %edi,%r15d + 401ff7: 48 89 45 80 mov %rax,-0x80(%rbp) + 401ffb: 44 8d 62 01 lea 0x1(%rdx),%r12d + 401fff: 44 89 e0 mov %r12d,%eax + 402002: 45 29 e7 sub %r12d,%r15d + 402005: 29 f8 sub %edi,%eax + 402007: 89 45 90 mov %eax,-0x70(%rbp) + 40200a: 44 89 f8 mov %r15d,%eax + 40200d: 45 89 e7 mov %r12d,%r15d + 402010: 49 89 dc mov %rbx,%r12 + 402013: 44 89 eb mov %r13d,%ebx + 402016: 41 89 c5 mov %eax,%r13d + 402019: eb 7d jmp 402098 <_nl_find_msg+0x148> + 40201b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 402020: 48 8b 4d 98 mov -0x68(%rbp),%rcx + 402024: 44 8b 14 81 mov (%rcx,%rax,4),%r10d + 402028: 41 0f ca bswap %r10d + 40202b: 45 85 d2 test %r10d,%r10d + 40202e: 74 7c je 4020ac <_nl_find_msg+0x15c> + 402030: 41 83 ea 01 sub $0x1,%r10d + 402034: 44 39 55 a8 cmp %r10d,-0x58(%rbp) + 402038: 0f 86 82 00 00 00 jbe 4020c0 <_nl_find_msg+0x170> + 40203e: 41 8b 7c 24 18 mov 0x18(%r12),%edi + 402043: 49 8b 44 24 30 mov 0x30(%r12),%rax + 402048: 85 ff test %edi,%edi + 40204a: 0f 84 e0 01 00 00 je 402230 <_nl_find_msg+0x2e0> + 402050: 4a 8d 3c d0 lea (%rax,%r10,8),%rdi + 402054: 8b 07 mov (%rdi),%eax + 402056: 0f c8 bswap %eax + 402058: 39 85 78 ff ff ff cmp %eax,-0x88(%rbp) + 40205e: 77 27 ja 402087 <_nl_find_msg+0x137> + 402060: 8b 47 04 mov 0x4(%rdi),%eax + 402063: 49 8b 34 24 mov (%r12),%rsi + 402067: 0f c8 bswap %eax + 402069: 89 c0 mov %eax,%eax + 40206b: 48 8b 7d a0 mov -0x60(%rbp),%rdi + 40206f: 48 01 c6 add %rax,%rsi + 402072: 4c 89 55 88 mov %r10,-0x78(%rbp) + 402076: e8 e5 e2 ff ff callq 400360 <__rela_iplt_end+0x98> + 40207b: 85 c0 test %eax,%eax + 40207d: 4c 8b 55 88 mov -0x78(%rbp),%r10 + 402081: 0f 84 8a 0a 00 00 je 402b11 <_nl_find_msg+0xbc1> + 402087: 8b 45 90 mov -0x70(%rbp),%eax + 40208a: 42 8d 34 3b lea (%rbx,%r15,1),%esi + 40208e: 01 d8 add %ebx,%eax + 402090: 44 39 eb cmp %r13d,%ebx + 402093: 0f 42 c6 cmovb %esi,%eax + 402096: 89 c3 mov %eax,%ebx + 402098: 45 85 f6 test %r14d,%r14d + 40209b: 89 d8 mov %ebx,%eax + 40209d: 75 81 jne 402020 <_nl_find_msg+0xd0> + 40209f: 48 8b 55 98 mov -0x68(%rbp),%rdx + 4020a3: 44 8b 14 82 mov (%rdx,%rax,4),%r10d + 4020a7: 45 85 d2 test %r10d,%r10d + 4020aa: 75 84 jne 402030 <_nl_find_msg+0xe0> + 4020ac: 31 c0 xor %eax,%eax + 4020ae: 48 8d 65 d8 lea -0x28(%rbp),%rsp + 4020b2: 5b pop %rbx + 4020b3: 41 5c pop %r12 + 4020b5: 41 5d pop %r13 + 4020b7: 41 5e pop %r14 + 4020b9: 41 5f pop %r15 + 4020bb: 5d pop %rbp + 4020bc: c3 retq + 4020bd: 0f 1f 00 nopl (%rax) + 4020c0: 44 89 d0 mov %r10d,%eax + 4020c3: 2b 45 a8 sub -0x58(%rbp),%eax + 4020c6: 48 8b 55 80 mov -0x80(%rbp),%rdx + 4020ca: 44 89 55 88 mov %r10d,-0x78(%rbp) + 4020ce: 48 c1 e0 04 shl $0x4,%rax + 4020d2: 49 03 44 24 48 add 0x48(%r12),%rax + 4020d7: 48 3b 10 cmp (%rax),%rdx + 4020da: 73 ab jae 402087 <_nl_find_msg+0x137> + 4020dc: 48 8b 70 08 mov 0x8(%rax),%rsi + 4020e0: 48 8b 7d a0 mov -0x60(%rbp),%rdi + 4020e4: e8 77 e2 ff ff callq 400360 <__rela_iplt_end+0x98> + 4020e9: 85 c0 test %eax,%eax + 4020eb: 75 9a jne 402087 <_nl_find_msg+0x137> + 4020ed: 44 8b 55 88 mov -0x78(%rbp),%r10d + 4020f1: 4c 89 e3 mov %r12,%rbx + 4020f4: 8b 45 a8 mov -0x58(%rbp),%eax + 4020f7: 4d 89 d6 mov %r10,%r14 + 4020fa: 49 39 c6 cmp %rax,%r14 + 4020fd: 0f 83 f5 01 00 00 jae 4022f8 <_nl_find_msg+0x3a8> + 402103: 8b 4b 18 mov 0x18(%rbx),%ecx + 402106: 4c 8b 3b mov (%rbx),%r15 + 402109: 48 8b 43 38 mov 0x38(%rbx),%rax + 40210d: 85 c9 test %ecx,%ecx + 40210f: 0f 84 3b 02 00 00 je 402350 <_nl_find_msg+0x400> + 402115: 4a 8d 14 f0 lea (%rax,%r14,8),%rdx + 402119: 8b 42 04 mov 0x4(%rdx),%eax + 40211c: 0f c8 bswap %eax + 40211e: 89 c0 mov %eax,%eax + 402120: 4c 01 f8 add %r15,%rax + 402123: 48 89 45 a0 mov %rax,-0x60(%rbp) + 402127: 8b 02 mov (%rdx),%eax + 402129: 8b 95 68 ff ff ff mov -0x98(%rbp),%edx + 40212f: 0f c8 bswap %eax + 402131: 83 c0 01 add $0x1,%eax + 402134: 85 d2 test %edx,%edx + 402136: 48 89 45 98 mov %rax,-0x68(%rbp) + 40213a: 0f 84 e6 01 00 00 je 402326 <_nl_find_msg+0x3d6> + 402140: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax + 402147: 48 85 c0 test %rax,%rax + 40214a: 0f 84 f7 02 00 00 je 402447 <_nl_find_msg+0x4f7> + 402150: 48 8b 40 10 mov 0x10(%rax),%rax + 402154: 48 85 c0 test %rax,%rax + 402157: 48 89 45 90 mov %rax,-0x70(%rbp) + 40215b: 0f 84 e6 02 00 00 je 402447 <_nl_find_msg+0x4f7> + 402161: b8 00 00 00 00 mov $0x0,%eax + 402166: 48 85 c0 test %rax,%rax + 402169: 74 09 je 402174 <_nl_find_msg+0x224> + 40216b: 48 8d bb 80 00 00 00 lea 0x80(%rbx),%rdi + 402172: ff d0 callq *%rax + 402174: 4c 8b 6b 78 mov 0x78(%rbx),%r13 + 402178: 4d 85 ed test %r13,%r13 + 40217b: 0f 84 17 02 00 00 je 402398 <_nl_find_msg+0x448> + 402181: 48 8b 53 70 mov 0x70(%rbx),%rdx + 402185: 4b 8d 44 6d 00 lea 0x0(%r13,%r13,2),%rax + 40218a: 48 89 5d 88 mov %rbx,-0x78(%rbp) + 40218e: 4c 8b 65 90 mov -0x70(%rbp),%r12 + 402192: 4c 89 eb mov %r13,%rbx + 402195: 4c 8d 7c c2 e8 lea -0x18(%rdx,%rax,8),%r15 + 40219a: eb 11 jmp 4021ad <_nl_find_msg+0x25d> + 40219c: 0f 1f 40 00 nopl 0x0(%rax) + 4021a0: 49 83 ef 18 sub $0x18,%r15 + 4021a4: 48 85 db test %rbx,%rbx + 4021a7: 0f 84 e7 01 00 00 je 402394 <_nl_find_msg+0x444> + 4021ad: 49 8b 3f mov (%r15),%rdi + 4021b0: 4c 89 e6 mov %r12,%rsi + 4021b3: 48 83 eb 01 sub $0x1,%rbx + 4021b7: e8 a4 e1 ff ff callq 400360 <__rela_iplt_end+0x98> + 4021bc: 85 c0 test %eax,%eax + 4021be: 75 e0 jne 4021a0 <_nl_find_msg+0x250> + 4021c0: b8 00 00 00 00 mov $0x0,%eax + 4021c5: 48 8b 5d 88 mov -0x78(%rbp),%rbx + 4021c9: 4d 89 fc mov %r15,%r12 + 4021cc: 48 85 c0 test %rax,%rax + 4021cf: 48 89 45 88 mov %rax,-0x78(%rbp) + 4021d3: 74 15 je 4021ea <_nl_find_msg+0x29a> + 4021d5: 48 8d bb 80 00 00 00 lea 0x80(%rbx),%rdi + 4021dc: e8 1f de bf ff callq 0 <_nl_current_LC_CTYPE> + 4021e1: 4d 85 e4 test %r12,%r12 + 4021e4: 0f 84 c3 01 00 00 je 4023ad <_nl_find_msg+0x45d> + 4021ea: 49 83 7c 24 08 ff cmpq $0xffffffffffffffff,0x8(%r12) + 4021f0: 0f 84 30 01 00 00 je 402326 <_nl_find_msg+0x3d6> + 4021f6: 49 8b 44 24 10 mov 0x10(%r12),%rax + 4021fb: 48 85 c0 test %rax,%rax + 4021fe: 0f 84 ed 02 00 00 je 4024f1 <_nl_find_msg+0x5a1> + 402204: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 402208: 0f 84 d7 02 00 00 je 4024e5 <_nl_find_msg+0x595> + 40220e: 4a 8b 04 f0 mov (%rax,%r14,8),%rax + 402212: 48 85 c0 test %rax,%rax + 402215: 0f 84 5f 03 00 00 je 40257a <_nl_find_msg+0x62a> + 40221b: 48 8d 78 08 lea 0x8(%rax),%rdi + 40221f: 48 8b 00 mov (%rax),%rax + 402222: 48 89 7d a0 mov %rdi,-0x60(%rbp) + 402226: 48 89 45 98 mov %rax,-0x68(%rbp) + 40222a: e9 f7 00 00 00 jmpq 402326 <_nl_find_msg+0x3d6> + 40222f: 90 nop + 402230: 4a 8d 04 d0 lea (%rax,%r10,8),%rax + 402234: 8b 95 78 ff ff ff mov -0x88(%rbp),%edx + 40223a: 3b 10 cmp (%rax),%edx + 40223c: 0f 87 45 fe ff ff ja 402087 <_nl_find_msg+0x137> + 402242: 49 8b 34 24 mov (%r12),%rsi + 402246: 8b 40 04 mov 0x4(%rax),%eax + 402249: e9 1d fe ff ff jmpq 40206b <_nl_find_msg+0x11b> + 40224e: 66 90 xchg %ax,%ax + 402250: 8b 45 a8 mov -0x58(%rbp),%eax + 402253: 45 31 ff xor %r15d,%r15d + 402256: 49 89 c5 mov %rax,%r13 + 402259: 48 89 45 90 mov %rax,-0x70(%rbp) + 40225d: 48 89 d8 mov %rbx,%rax + 402260: 4c 89 eb mov %r13,%rbx + 402263: 49 89 c5 mov %rax,%r13 + 402266: eb 31 jmp 402299 <_nl_find_msg+0x349> + 402268: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40226f: 00 + 402270: 4e 8d 34 3b lea (%rbx,%r15,1),%r14 + 402274: 48 8b 7d a0 mov -0x60(%rbp),%rdi + 402278: 49 d1 ee shr %r14 + 40227b: 43 8b 74 f4 04 mov 0x4(%r12,%r14,8),%esi + 402280: 48 03 75 98 add -0x68(%rbp),%rsi + 402284: e8 d7 e0 ff ff callq 400360 <__rela_iplt_end+0x98> + 402289: 85 c0 test %eax,%eax + 40228b: 78 5b js 4022e8 <_nl_find_msg+0x398> + 40228d: 85 c0 test %eax,%eax + 40228f: 0f 84 f3 00 00 00 je 402388 <_nl_find_msg+0x438> + 402295: 4d 8d 7e 01 lea 0x1(%r14),%r15 + 402299: 49 39 df cmp %rbx,%r15 + 40229c: 0f 83 0a fe ff ff jae 4020ac <_nl_find_msg+0x15c> + 4022a2: 41 8b 75 18 mov 0x18(%r13),%esi + 4022a6: 49 8b 45 00 mov 0x0(%r13),%rax + 4022aa: 4d 8b 65 30 mov 0x30(%r13),%r12 + 4022ae: 85 f6 test %esi,%esi + 4022b0: 48 89 45 98 mov %rax,-0x68(%rbp) + 4022b4: 74 ba je 402270 <_nl_find_msg+0x320> + 4022b6: 4d 8d 34 1f lea (%r15,%rbx,1),%r14 + 4022ba: 48 8b 7d a0 mov -0x60(%rbp),%rdi + 4022be: 49 d1 ee shr %r14 + 4022c1: 43 8b 74 f4 04 mov 0x4(%r12,%r14,8),%esi + 4022c6: 0f ce bswap %esi + 4022c8: 89 f6 mov %esi,%esi + 4022ca: 48 03 75 98 add -0x68(%rbp),%rsi + 4022ce: e8 8d e0 ff ff callq 400360 <__rela_iplt_end+0x98> + 4022d3: 85 c0 test %eax,%eax + 4022d5: 79 b6 jns 40228d <_nl_find_msg+0x33d> + 4022d7: 4d 39 f7 cmp %r14,%r15 + 4022da: 4c 89 f3 mov %r14,%rbx + 4022dd: 72 d7 jb 4022b6 <_nl_find_msg+0x366> + 4022df: e9 c8 fd ff ff jmpq 4020ac <_nl_find_msg+0x15c> + 4022e4: 0f 1f 40 00 nopl 0x0(%rax) + 4022e8: 4d 39 f7 cmp %r14,%r15 + 4022eb: 4c 89 f3 mov %r14,%rbx + 4022ee: 72 80 jb 402270 <_nl_find_msg+0x320> + 4022f0: e9 b7 fd ff ff jmpq 4020ac <_nl_find_msg+0x15c> + 4022f5: 0f 1f 00 nopl (%rax) + 4022f8: 4c 89 f1 mov %r14,%rcx + 4022fb: 48 29 c1 sub %rax,%rcx + 4022fe: 48 89 c8 mov %rcx,%rax + 402301: 48 c1 e0 04 shl $0x4,%rax + 402305: 48 03 43 50 add 0x50(%rbx),%rax + 402309: 48 8b 48 08 mov 0x8(%rax),%rcx + 40230d: 48 8b 00 mov (%rax),%rax + 402310: 48 89 4d a0 mov %rcx,-0x60(%rbp) + 402314: 48 89 45 98 mov %rax,-0x68(%rbp) + 402318: 8b 95 68 ff ff ff mov -0x98(%rbp),%edx + 40231e: 85 d2 test %edx,%edx + 402320: 0f 85 1a fe ff ff jne 402140 <_nl_find_msg+0x1f0> + 402326: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax + 40232d: 48 8b 7d 98 mov -0x68(%rbp),%rdi + 402331: 48 89 38 mov %rdi,(%rax) + 402334: 48 8b 45 a0 mov -0x60(%rbp),%rax + 402338: 48 8d 65 d8 lea -0x28(%rbp),%rsp + 40233c: 5b pop %rbx + 40233d: 41 5c pop %r12 + 40233f: 41 5d pop %r13 + 402341: 41 5e pop %r14 + 402343: 41 5f pop %r15 + 402345: 5d pop %rbp + 402346: c3 retq + 402347: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40234e: 00 00 + 402350: 4a 8d 04 f0 lea (%rax,%r14,8),%rax + 402354: 8b 50 04 mov 0x4(%rax),%edx + 402357: 8b 00 mov (%rax),%eax + 402359: 83 c0 01 add $0x1,%eax + 40235c: 49 8d 3c 17 lea (%r15,%rdx,1),%rdi + 402360: 48 89 45 98 mov %rax,-0x68(%rbp) + 402364: 48 89 7d a0 mov %rdi,-0x60(%rbp) + 402368: eb ae jmp 402318 <_nl_find_msg+0x3c8> + 40236a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 402370: e8 cb 13 00 00 callq 403740 <_nl_load_domain> + 402375: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax + 40237c: e9 12 fc ff ff jmpq 401f93 <_nl_find_msg+0x43> + 402381: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 402388: 4c 89 eb mov %r13,%rbx + 40238b: 48 8b 45 90 mov -0x70(%rbp),%rax + 40238f: e9 66 fd ff ff jmpq 4020fa <_nl_find_msg+0x1aa> + 402394: 48 8b 5d 88 mov -0x78(%rbp),%rbx + 402398: b8 00 00 00 00 mov $0x0,%eax + 40239d: 45 31 e4 xor %r12d,%r12d + 4023a0: 48 85 c0 test %rax,%rax + 4023a3: 48 89 45 88 mov %rax,-0x78(%rbp) + 4023a7: 0f 85 28 fe ff ff jne 4021d5 <_nl_find_msg+0x285> + 4023ad: b8 00 00 00 00 mov $0x0,%eax + 4023b2: 48 85 c0 test %rax,%rax + 4023b5: 74 09 je 4023c0 <_nl_find_msg+0x470> + 4023b7: 48 8d bb 80 00 00 00 lea 0x80(%rbx),%rdi + 4023be: ff d0 callq *%rax + 4023c0: 48 8b 43 78 mov 0x78(%rbx),%rax + 4023c4: 48 85 c0 test %rax,%rax + 4023c7: 48 89 45 80 mov %rax,-0x80(%rbp) + 4023cb: 0f 84 cd 06 00 00 je 402a9e <_nl_find_msg+0xb4e> + 4023d1: 48 89 c1 mov %rax,%rcx + 4023d4: 48 8b 43 70 mov 0x70(%rbx),%rax + 4023d8: 48 89 9d 68 ff ff ff mov %rbx,-0x98(%rbp) + 4023df: 4c 8b 7d 90 mov -0x70(%rbp),%r15 + 4023e3: 48 89 cb mov %rcx,%rbx + 4023e6: 48 89 c7 mov %rax,%rdi + 4023e9: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) + 4023f0: 48 8d 04 49 lea (%rcx,%rcx,2),%rax + 4023f4: 48 8d 54 c7 e8 lea -0x18(%rdi,%rax,8),%rdx + 4023f9: 49 89 d5 mov %rdx,%r13 + 4023fc: eb 0f jmp 40240d <_nl_find_msg+0x4bd> + 4023fe: 66 90 xchg %ax,%ax + 402400: 49 83 ed 18 sub $0x18,%r13 + 402404: 48 85 db test %rbx,%rbx + 402407: 0f 84 f3 02 00 00 je 402700 <_nl_find_msg+0x7b0> + 40240d: 49 8b 7d 00 mov 0x0(%r13),%rdi + 402411: 4c 89 fe mov %r15,%rsi + 402414: 48 83 eb 01 sub $0x1,%rbx + 402418: 4d 89 ec mov %r13,%r12 + 40241b: e8 40 df ff ff callq 400360 <__rela_iplt_end+0x98> + 402420: 85 c0 test %eax,%eax + 402422: 75 dc jne 402400 <_nl_find_msg+0x4b0> + 402424: 48 8b 9d 68 ff ff ff mov -0x98(%rbp),%rbx + 40242b: 48 83 7d 88 00 cmpq $0x0,-0x78(%rbp) + 402430: 0f 84 b4 fd ff ff je 4021ea <_nl_find_msg+0x29a> + 402436: 48 8d bb 80 00 00 00 lea 0x80(%rbx),%rdi + 40243d: e8 be db bf ff callq 0 <_nl_current_LC_CTYPE> + 402442: e9 a3 fd ff ff jmpq 4021ea <_nl_find_msg+0x29a> + 402447: 8b 05 d3 9b 2c 00 mov 0x2c9bd3(%rip),%eax # 6cc020 + 40244d: 4c 8b 2d c4 9b 2c 00 mov 0x2c9bc4(%rip),%r13 # 6cc018 + 402454: 85 c0 test %eax,%eax + 402456: 0f 84 73 02 00 00 je 4026cf <_nl_find_msg+0x77f> + 40245c: 4d 85 ed test %r13,%r13 + 40245f: 4c 89 6d 90 mov %r13,-0x70(%rbp) + 402463: 0f 85 f8 fc ff ff jne 402161 <_nl_find_msg+0x211> + 402469: 48 c7 c0 b0 ff ff ff mov $0xffffffffffffffb0,%rax + 402470: 64 48 8b 00 mov %fs:(%rax),%rax + 402474: 48 8b 00 mov (%rax),%rax + 402477: 48 8b 80 b0 00 00 00 mov 0xb0(%rax),%rax + 40247e: 48 89 45 90 mov %rax,-0x70(%rbp) + 402482: e9 da fc ff ff jmpq 402161 <_nl_find_msg+0x211> + 402487: 48 8b 03 mov (%rbx),%rax + 40248a: 48 89 df mov %rbx,%rdi + 40248d: 48 89 05 ac 9b 2c 00 mov %rax,0x2c9bac(%rip) # 6cc040 + 402494: e8 17 b9 01 00 callq 41ddb0 <__cfree> + 402499: 48 c7 05 8c 9b 2c 00 movq $0x0,0x2c9b8c(%rip) # 6cc030 + 4024a0: 00 00 00 00 + 4024a4: 48 c7 05 79 9b 2c 00 movq $0x0,0x2c9b79(%rip) # 6cc028 + 4024ab: 00 00 00 00 + 4024af: 83 3d 06 ad 2c 00 00 cmpl $0x0,0x2cad06(%rip) # 6cd1bc <__libc_multiple_threads> + 4024b6: 74 0b je 4024c3 <_nl_find_msg+0x573> + 4024b8: f0 ff 0d 79 9b 2c 00 lock decl 0x2c9b79(%rip) # 6cc038 + 4024bf: 75 0a jne 4024cb <_nl_find_msg+0x57b> + 4024c1: eb 22 jmp 4024e5 <_nl_find_msg+0x595> + 4024c3: ff 0d 6f 9b 2c 00 decl 0x2c9b6f(%rip) # 6cc038 + 4024c9: 74 1a je 4024e5 <_nl_find_msg+0x595> + 4024cb: 48 8d 3d 66 9b 2c 00 lea 0x2c9b66(%rip),%rdi # 6cc038 + 4024d2: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4024d9: e8 22 01 04 00 callq 442600 <__lll_unlock_wake_private> + 4024de: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4024e5: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 4024ec: e9 bd fb ff ff jmpq 4020ae <_nl_find_msg+0x15e> + 4024f1: be 01 00 00 00 mov $0x1,%esi + 4024f6: 83 3d bf ac 2c 00 00 cmpl $0x0,0x2cacbf(%rip) # 6cd1bc <__libc_multiple_threads> + 4024fd: 74 0c je 40250b <_nl_find_msg+0x5bb> + 4024ff: f0 0f b1 35 31 9b 2c lock cmpxchg %esi,0x2c9b31(%rip) # 6cc038 + 402506: 00 + 402507: 75 0b jne 402514 <_nl_find_msg+0x5c4> + 402509: eb 23 jmp 40252e <_nl_find_msg+0x5de> + 40250b: 0f b1 35 26 9b 2c 00 cmpxchg %esi,0x2c9b26(%rip) # 6cc038 + 402512: 74 1a je 40252e <_nl_find_msg+0x5de> + 402514: 48 8d 3d 1d 9b 2c 00 lea 0x2c9b1d(%rip),%rdi # 6cc038 + 40251b: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 402522: e8 a9 00 04 00 callq 4425d0 <__lll_lock_wait_private> + 402527: 48 81 c4 80 00 00 00 add $0x80,%rsp + 40252e: 49 83 7c 24 10 00 cmpq $0x0,0x10(%r12) + 402534: 0f 84 88 05 00 00 je 402ac2 <_nl_find_msg+0xb72> + 40253a: 83 3d 7b ac 2c 00 00 cmpl $0x0,0x2cac7b(%rip) # 6cd1bc <__libc_multiple_threads> + 402541: 74 0b je 40254e <_nl_find_msg+0x5fe> + 402543: f0 ff 0d ee 9a 2c 00 lock decl 0x2c9aee(%rip) # 6cc038 + 40254a: 75 0a jne 402556 <_nl_find_msg+0x606> + 40254c: eb 22 jmp 402570 <_nl_find_msg+0x620> + 40254e: ff 0d e4 9a 2c 00 decl 0x2c9ae4(%rip) # 6cc038 + 402554: 74 1a je 402570 <_nl_find_msg+0x620> + 402556: 48 8d 3d db 9a 2c 00 lea 0x2c9adb(%rip),%rdi # 6cc038 + 40255d: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 402564: e8 97 00 04 00 callq 442600 <__lll_unlock_wake_private> + 402569: 48 81 c4 80 00 00 00 add $0x80,%rsp + 402570: 49 8b 44 24 10 mov 0x10(%r12),%rax + 402575: e9 8a fc ff ff jmpq 402204 <_nl_find_msg+0x2b4> + 40257a: be 01 00 00 00 mov $0x1,%esi + 40257f: 83 3d 36 ac 2c 00 00 cmpl $0x0,0x2cac36(%rip) # 6cd1bc <__libc_multiple_threads> + 402586: 74 0c je 402594 <_nl_find_msg+0x644> + 402588: f0 0f b1 35 a8 9a 2c lock cmpxchg %esi,0x2c9aa8(%rip) # 6cc038 + 40258f: 00 + 402590: 75 0b jne 40259d <_nl_find_msg+0x64d> + 402592: eb 23 jmp 4025b7 <_nl_find_msg+0x667> + 402594: 0f b1 35 9d 9a 2c 00 cmpxchg %esi,0x2c9a9d(%rip) # 6cc038 + 40259b: 74 1a je 4025b7 <_nl_find_msg+0x667> + 40259d: 48 8d 3d 94 9a 2c 00 lea 0x2c9a94(%rip),%rdi # 6cc038 + 4025a4: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4025ab: e8 20 00 04 00 callq 4425d0 <__lll_lock_wait_private> + 4025b0: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4025b7: 48 8b 45 a0 mov -0x60(%rbp),%rax + 4025bb: 45 31 ed xor %r13d,%r13d + 4025be: 4c 89 75 a8 mov %r14,-0x58(%rbp) + 4025c2: 48 8b 0d 5f 9a 2c 00 mov 0x2c9a5f(%rip),%rcx # 6cc028 + 4025c9: 4c 8b 7d 98 mov -0x68(%rbp),%r15 + 4025cd: 45 89 ee mov %r13d,%r14d + 4025d0: 48 89 45 b8 mov %rax,-0x48(%rbp) + 4025d4: 48 8b 05 55 9a 2c 00 mov 0x2c9a55(%rip),%rax # 6cc030 + 4025db: 48 83 c0 08 add $0x8,%rax + 4025df: 48 89 45 c0 mov %rax,-0x40(%rbp) + 4025e3: eb 61 jmp 402646 <_nl_find_msg+0x6f6> + 4025e5: 0f 1f 00 nopl (%rax) + 4025e8: 45 85 f6 test %r14d,%r14d + 4025eb: 0f 84 9f 00 00 00 je 402690 <_nl_find_msg+0x740> + 4025f1: 41 83 c6 01 add $0x1,%r14d + 4025f5: 48 8b 1d 44 9a 2c 00 mov 0x2c9a44(%rip),%rbx # 6cc040 + 4025fc: 41 69 ce f0 0f 00 00 imul $0xff0,%r14d,%ecx + 402603: 48 89 df mov %rbx,%rdi + 402606: 4c 63 e9 movslq %ecx,%r13 + 402609: 4c 89 ee mov %r13,%rsi + 40260c: 4c 89 2d 15 9a 2c 00 mov %r13,0x2c9a15(%rip) # 6cc028 + 402613: e8 58 b9 01 00 callq 41df70 <__libc_realloc> + 402618: 48 85 c0 test %rax,%rax + 40261b: 0f 84 66 fe ff ff je 402487 <_nl_find_msg+0x537> + 402621: 49 8d 4d f8 lea -0x8(%r13),%rcx + 402625: 48 89 05 14 9a 2c 00 mov %rax,0x2c9a14(%rip) # 6cc040 + 40262c: 48 8d 50 08 lea 0x8(%rax),%rdx + 402630: 48 83 c0 10 add $0x10,%rax + 402634: 48 89 0d ed 99 2c 00 mov %rcx,0x2c99ed(%rip) # 6cc028 + 40263b: 48 89 45 c0 mov %rax,-0x40(%rbp) + 40263f: 48 89 15 ea 99 2c 00 mov %rdx,0x2c99ea(%rip) # 6cc030 + 402646: 48 83 f9 07 cmp $0x7,%rcx + 40264a: 76 9c jbe 4025e8 <_nl_find_msg+0x698> + 40264c: 4c 89 fa mov %r15,%rdx + 40264f: 48 03 55 b8 add -0x48(%rbp),%rdx + 402653: 49 8b 7c 24 08 mov 0x8(%r12),%rdi + 402658: 4c 8d 44 08 f8 lea -0x8(%rax,%rcx,1),%r8 + 40265d: 4c 8d 4d c8 lea -0x38(%rbp),%r9 + 402661: 48 8d 4d c0 lea -0x40(%rbp),%rcx + 402665: 48 8d 75 b8 lea -0x48(%rbp),%rsi + 402669: e8 02 20 04 00 callq 444670 <__gconv> + 40266e: a9 fb ff ff ff test $0xfffffffb,%eax + 402673: 0f 84 46 03 00 00 je 4029bf <_nl_find_msg+0xa6f> + 402679: 83 f8 05 cmp $0x5,%eax + 40267c: 0f 85 02 03 00 00 jne 402984 <_nl_find_msg+0xa34> + 402682: 48 8b 45 a0 mov -0x60(%rbp),%rax + 402686: 48 89 45 b8 mov %rax,-0x48(%rbp) + 40268a: e9 59 ff ff ff jmpq 4025e8 <_nl_find_msg+0x698> + 40268f: 90 nop + 402690: bf f0 0f 00 00 mov $0xff0,%edi + 402695: 48 c7 05 88 99 2c 00 movq $0xff0,0x2c9988(%rip) # 6cc028 + 40269c: f0 0f 00 00 + 4026a0: e8 6b b3 01 00 callq 41da10 <__libc_malloc> + 4026a5: 48 85 c0 test %rax,%rax + 4026a8: 0f 84 eb fd ff ff je 402499 <_nl_find_msg+0x549> + 4026ae: 48 8b 15 8b 99 2c 00 mov 0x2c998b(%rip),%rdx # 6cc040 + 4026b5: b9 e8 0f 00 00 mov $0xfe8,%ecx + 4026ba: 48 89 05 7f 99 2c 00 mov %rax,0x2c997f(%rip) # 6cc040 + 4026c1: 41 be 01 00 00 00 mov $0x1,%r14d + 4026c7: 48 89 10 mov %rdx,(%rax) + 4026ca: e9 5d ff ff ff jmpq 40262c <_nl_find_msg+0x6dc> + 4026cf: bf 78 11 4a 00 mov $0x4a1178,%edi + 4026d4: e8 07 c1 00 00 callq 40e7e0 + 4026d9: 48 85 c0 test %rax,%rax + 4026dc: 49 89 c4 mov %rax,%r12 + 4026df: 74 09 je 4026ea <_nl_find_msg+0x79a> + 4026e1: 80 38 00 cmpb $0x0,(%rax) + 4026e4: 0f 85 64 03 00 00 jne 402a4e <_nl_find_msg+0xafe> + 4026ea: 4c 8b 2d 27 99 2c 00 mov 0x2c9927(%rip),%r13 # 6cc018 + 4026f1: c7 05 25 99 2c 00 01 movl $0x1,0x2c9925(%rip) # 6cc020 + 4026f8: 00 00 00 + 4026fb: e9 5c fd ff ff jmpq 40245c <_nl_find_msg+0x50c> + 402700: 48 8b 9d 68 ff ff ff mov -0x98(%rbp),%rbx + 402707: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax + 40270e: 48 85 c0 test %rax,%rax + 402711: 0f 84 6d 03 00 00 je 402a84 <_nl_find_msg+0xb34> + 402717: 48 8b 7d 80 mov -0x80(%rbp),%rdi + 40271b: 48 8d 74 7f 03 lea 0x3(%rdi,%rdi,2),%rsi + 402720: 48 89 c7 mov %rax,%rdi + 402723: 48 c1 e6 03 shl $0x3,%rsi + 402727: e8 44 b8 01 00 callq 41df70 <__libc_realloc> + 40272c: 49 89 c4 mov %rax,%r12 + 40272f: 4d 85 e4 test %r12,%r12 + 402732: 0f 84 0d 02 00 00 je 402945 <_nl_find_msg+0x9f5> + 402738: 48 8b 7d 90 mov -0x70(%rbp),%rdi + 40273c: 4c 89 63 70 mov %r12,0x70(%rbx) + 402740: e8 bb 0e 02 00 callq 423600 <__strdup> + 402745: 48 85 c0 test %rax,%rax + 402748: 49 89 c5 mov %rax,%r13 + 40274b: 0f 84 f4 01 00 00 je 402945 <_nl_find_msg+0x9f5> + 402751: 48 8b 45 80 mov -0x80(%rbp),%rax + 402755: 48 8b bd 70 ff ff ff mov -0x90(%rbp),%rdi + 40275c: 4c 8d 45 c8 lea -0x38(%rbp),%r8 + 402760: 48 8b b5 58 ff ff ff mov -0xa8(%rbp),%rsi + 402767: 31 c9 xor %ecx,%ecx + 402769: ba 25 67 4b 00 mov $0x4b6725,%edx + 40276e: 48 8d 04 40 lea (%rax,%rax,2),%rax + 402772: 4d 8d 24 c4 lea (%r12,%rax,8),%r12 + 402776: 4d 89 2c 24 mov %r13,(%r12) + 40277a: 49 c7 44 24 08 ff ff movq $0xffffffffffffffff,0x8(%r12) + 402781: ff ff + 402783: e8 c8 f7 ff ff callq 401f50 <_nl_find_msg> + 402788: 48 89 c7 mov %rax,%rdi + 40278b: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 402792: 48 39 c7 cmp %rax,%rdi + 402795: 0f 84 13 f9 ff ff je 4020ae <_nl_find_msg+0x15e> + 40279b: 48 85 ff test %rdi,%rdi + 40279e: 0f 84 cd 01 00 00 je 402971 <_nl_find_msg+0xa21> + 4027a4: be 87 11 4a 00 mov $0x4a1187,%esi + 4027a9: e8 72 db ff ff callq 400320 <__rela_iplt_end+0x58> + 4027ae: 48 85 c0 test %rax,%rax + 4027b1: 0f 84 ba 01 00 00 je 402971 <_nl_find_msg+0xa21> + 4027b7: 0f b6 50 08 movzbl 0x8(%rax),%edx + 4027bb: 48 8d 70 08 lea 0x8(%rax),%rsi + 4027bf: f6 c2 df test $0xdf,%dl + 4027c2: 0f 84 8b 03 00 00 je 402b53 <_nl_find_msg+0xc03> + 4027c8: 83 ea 09 sub $0x9,%edx + 4027cb: 80 fa 01 cmp $0x1,%dl + 4027ce: ba 00 00 00 00 mov $0x0,%edx + 4027d3: 77 13 ja 4027e8 <_nl_find_msg+0x898> + 4027d5: eb 1f jmp 4027f6 <_nl_find_msg+0x8a6> + 4027d7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4027de: 00 00 + 4027e0: 83 e9 09 sub $0x9,%ecx + 4027e3: 80 f9 01 cmp $0x1,%cl + 4027e6: 76 0e jbe 4027f6 <_nl_find_msg+0x8a6> + 4027e8: 48 83 c2 01 add $0x1,%rdx + 4027ec: 0f b6 4c 10 08 movzbl 0x8(%rax,%rdx,1),%ecx + 4027f1: f6 c1 df test $0xdf,%cl + 4027f4: 75 ea jne 4027e0 <_nl_find_msg+0x890> + 4027f6: 48 8d 42 1f lea 0x1f(%rdx),%rax + 4027fa: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 4027fe: 48 29 c4 sub %rax,%rsp + 402801: 4c 8d 44 24 0f lea 0xf(%rsp),%r8 + 402806: 49 83 e0 f0 and $0xfffffffffffffff0,%r8 + 40280a: 4c 89 c7 mov %r8,%rdi + 40280d: 4c 89 45 80 mov %r8,-0x80(%rbp) + 402811: 4c 89 45 90 mov %r8,-0x70(%rbp) + 402815: e8 a6 3d 02 00 callq 4265c0 <__mempcpy> + 40281a: 31 ff xor %edi,%edi + 40281c: c6 00 00 movb $0x0,(%rax) + 40281f: 48 8b 4d 80 mov -0x80(%rbp),%rcx + 402823: 4c 89 e8 mov %r13,%rax + 402826: 4c 8b 45 90 mov -0x70(%rbp),%r8 + 40282a: eb 14 jmp 402840 <_nl_find_msg+0x8f0> + 40282c: 0f 1f 40 00 nopl 0x0(%rax) + 402830: 48 83 c0 01 add $0x1,%rax + 402834: 80 fa 2f cmp $0x2f,%dl + 402837: 0f 94 c2 sete %dl + 40283a: 0f b6 d2 movzbl %dl,%edx + 40283d: 48 01 d7 add %rdx,%rdi + 402840: 0f b6 10 movzbl (%rax),%edx + 402843: 84 d2 test %dl,%dl + 402845: 75 e9 jne 402830 <_nl_find_msg+0x8e0> + 402847: 4c 29 e8 sub %r13,%rax + 40284a: 49 0f be 55 00 movsbq 0x0(%r13),%rdx + 40284f: 48 83 c0 29 add $0x29,%rax + 402853: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 402857: 48 29 c4 sub %rax,%rsp + 40285a: 48 8d 44 24 0f lea 0xf(%rsp),%rax + 40285f: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 402863: 84 d2 test %dl,%dl + 402865: 49 89 c1 mov %rax,%r9 + 402868: 74 21 je 40288b <_nl_find_msg+0x93b> + 40286a: 4c 8b 1d 87 fe 0a 00 mov 0xafe87(%rip),%r11 # 4b26f8 <_nl_C_locobj+0x78> + 402871: 4c 89 ee mov %r13,%rsi + 402874: 41 8b 14 93 mov (%r11,%rdx,4),%edx + 402878: 48 83 c0 01 add $0x1,%rax + 40287c: 48 83 c6 01 add $0x1,%rsi + 402880: 88 50 ff mov %dl,-0x1(%rax) + 402883: 48 0f be 16 movsbq (%rsi),%rdx + 402887: 84 d2 test %dl,%dl + 402889: 75 e9 jne 402874 <_nl_find_msg+0x924> + 40288b: 48 83 ff 01 cmp $0x1,%rdi + 40288f: 0f 86 19 02 00 00 jbe 402aae <_nl_find_msg+0xb5e> + 402895: c6 00 00 movb $0x0,(%rax) + 402898: 31 ff xor %edi,%edi + 40289a: 4c 89 c0 mov %r8,%rax + 40289d: eb 11 jmp 4028b0 <_nl_find_msg+0x960> + 40289f: 90 nop + 4028a0: 48 83 c0 01 add $0x1,%rax + 4028a4: 80 fa 2f cmp $0x2f,%dl + 4028a7: 0f 94 c2 sete %dl + 4028aa: 0f b6 d2 movzbl %dl,%edx + 4028ad: 48 01 d7 add %rdx,%rdi + 4028b0: 0f b6 10 movzbl (%rax),%edx + 4028b3: 84 d2 test %dl,%dl + 4028b5: 75 e9 jne 4028a0 <_nl_find_msg+0x950> + 4028b7: 4c 29 c0 sub %r8,%rax + 4028ba: 48 83 c0 21 add $0x21,%rax + 4028be: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 4028c2: 48 29 c4 sub %rax,%rsp + 4028c5: 49 0f be 00 movsbq (%r8),%rax + 4028c9: 48 8d 74 24 0f lea 0xf(%rsp),%rsi + 4028ce: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 4028d2: 84 c0 test %al,%al + 4028d4: 0f 84 80 02 00 00 je 402b5a <_nl_find_msg+0xc0a> + 4028da: 4c 8b 05 17 fe 0a 00 mov 0xafe17(%rip),%r8 # 4b26f8 <_nl_C_locobj+0x78> + 4028e1: 48 89 f2 mov %rsi,%rdx + 4028e4: 41 8b 04 80 mov (%r8,%rax,4),%eax + 4028e8: 48 83 c2 01 add $0x1,%rdx + 4028ec: 48 83 c1 01 add $0x1,%rcx + 4028f0: 88 42 ff mov %al,-0x1(%rdx) + 4028f3: 48 0f be 01 movsbq (%rcx),%rax + 4028f7: 84 c0 test %al,%al + 4028f9: 75 e9 jne 4028e4 <_nl_find_msg+0x994> + 4028fb: 48 83 ff 01 cmp $0x1,%rdi + 4028ff: 0f 86 eb 01 00 00 jbe 402af0 <_nl_find_msg+0xba0> + 402905: c6 02 00 movb $0x0,(%rdx) + 402908: 49 8d 54 24 08 lea 0x8(%r12),%rdx + 40290d: b9 01 00 00 00 mov $0x1,%ecx + 402912: 4c 89 cf mov %r9,%rdi + 402915: e8 46 18 04 00 callq 444160 <__gconv_open> + 40291a: 85 c0 test %eax,%eax + 40291c: 74 53 je 402971 <_nl_find_msg+0xa21> + 40291e: 83 f8 ff cmp $0xffffffff,%eax + 402921: 74 45 je 402968 <_nl_find_msg+0xa18> + 402923: 48 83 7d 88 00 cmpq $0x0,-0x78(%rbp) + 402928: 74 0c je 402936 <_nl_find_msg+0x9e6> + 40292a: 48 8d bb 80 00 00 00 lea 0x80(%rbx),%rdi + 402931: e8 ca d6 bf ff callq 0 <_nl_current_LC_CTYPE> + 402936: 4c 89 ef mov %r13,%rdi + 402939: e8 72 b4 01 00 callq 41ddb0 <__cfree> + 40293e: 31 c0 xor %eax,%eax + 402940: e9 69 f7 ff ff jmpq 4020ae <_nl_find_msg+0x15e> + 402945: 48 83 7d 88 00 cmpq $0x0,-0x78(%rbp) + 40294a: 0f 84 95 fb ff ff je 4024e5 <_nl_find_msg+0x595> + 402950: 48 8d bb 80 00 00 00 lea 0x80(%rbx),%rdi + 402957: e8 a4 d6 bf ff callq 0 <_nl_current_LC_CTYPE> + 40295c: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 402963: e9 46 f7 ff ff jmpq 4020ae <_nl_find_msg+0x15e> + 402968: 49 c7 44 24 08 ff ff movq $0xffffffffffffffff,0x8(%r12) + 40296f: ff ff + 402971: 49 c7 44 24 10 00 00 movq $0x0,0x10(%r12) + 402978: 00 00 + 40297a: 48 83 43 78 01 addq $0x1,0x78(%rbx) + 40297f: e9 a7 fa ff ff jmpq 40242b <_nl_find_msg+0x4db> + 402984: 83 3d 31 a8 2c 00 00 cmpl $0x0,0x2ca831(%rip) # 6cd1bc <__libc_multiple_threads> + 40298b: 74 0b je 402998 <_nl_find_msg+0xa48> + 40298d: f0 ff 0d a4 96 2c 00 lock decl 0x2c96a4(%rip) # 6cc038 + 402994: 75 0a jne 4029a0 <_nl_find_msg+0xa50> + 402996: eb 22 jmp 4029ba <_nl_find_msg+0xa6a> + 402998: ff 0d 9a 96 2c 00 decl 0x2c969a(%rip) # 6cc038 + 40299e: 74 1a je 4029ba <_nl_find_msg+0xa6a> + 4029a0: 48 8d 3d 91 96 2c 00 lea 0x2c9691(%rip),%rdi # 6cc038 + 4029a7: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4029ae: e8 4d fc 03 00 callq 442600 <__lll_unlock_wake_private> + 4029b3: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4029ba: e9 ed f6 ff ff jmpq 4020ac <_nl_find_msg+0x15c> + 4029bf: 48 8b 05 6a 96 2c 00 mov 0x2c966a(%rip),%rax # 6cc030 + 4029c6: 48 8b 55 c0 mov -0x40(%rbp),%rdx + 4029ca: 4c 8b 75 a8 mov -0x58(%rbp),%r14 + 4029ce: 48 29 c2 sub %rax,%rdx + 4029d1: 48 83 ea 08 sub $0x8,%rdx + 4029d5: 48 89 10 mov %rdx,(%rax) + 4029d8: 49 8b 54 24 10 mov 0x10(%r12),%rdx + 4029dd: 4a 89 04 f2 mov %rax,(%rdx,%r14,8) + 4029e1: 48 8b 4d c0 mov -0x40(%rbp),%rcx + 4029e5: 48 29 c8 sub %rcx,%rax + 4029e8: 48 03 05 39 96 2c 00 add 0x2c9639(%rip),%rax # 6cc028 + 4029ef: 48 89 c2 mov %rax,%rdx + 4029f2: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 4029f6: 83 e2 07 and $0x7,%edx + 4029f9: 48 89 05 28 96 2c 00 mov %rax,0x2c9628(%rip) # 6cc028 + 402a00: 48 01 ca add %rcx,%rdx + 402a03: 48 89 15 26 96 2c 00 mov %rdx,0x2c9626(%rip) # 6cc030 + 402a0a: 83 3d ab a7 2c 00 00 cmpl $0x0,0x2ca7ab(%rip) # 6cd1bc <__libc_multiple_threads> + 402a11: 74 0b je 402a1e <_nl_find_msg+0xace> + 402a13: f0 ff 0d 1e 96 2c 00 lock decl 0x2c961e(%rip) # 6cc038 + 402a1a: 75 0a jne 402a26 <_nl_find_msg+0xad6> + 402a1c: eb 22 jmp 402a40 <_nl_find_msg+0xaf0> + 402a1e: ff 0d 14 96 2c 00 decl 0x2c9614(%rip) # 6cc038 + 402a24: 74 1a je 402a40 <_nl_find_msg+0xaf0> + 402a26: 48 8d 3d 0b 96 2c 00 lea 0x2c960b(%rip),%rdi # 6cc038 + 402a2d: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 402a34: e8 c7 fb 03 00 callq 442600 <__lll_unlock_wake_private> + 402a39: 48 81 c4 80 00 00 00 add $0x80,%rsp + 402a40: 49 8b 44 24 10 mov 0x10(%r12),%rax + 402a45: 4a 8b 04 f0 mov (%rax,%r14,8),%rax + 402a49: e9 cd f7 ff ff jmpq 40221b <_nl_find_msg+0x2cb> + 402a4e: 48 89 c7 mov %rax,%rdi + 402a51: e8 fa 0b 02 00 callq 423650 + 402a56: 4c 8d 78 01 lea 0x1(%rax),%r15 + 402a5a: 4c 89 ff mov %r15,%rdi + 402a5d: e8 ae af 01 00 callq 41da10 <__libc_malloc> + 402a62: 48 85 c0 test %rax,%rax + 402a65: 49 89 c5 mov %rax,%r13 + 402a68: 74 0e je 402a78 <_nl_find_msg+0xb28> + 402a6a: 4c 89 fa mov %r15,%rdx + 402a6d: 4c 89 e6 mov %r12,%rsi + 402a70: 48 89 c7 mov %rax,%rdi + 402a73: e8 a8 95 02 00 callq 42c020 + 402a78: 4c 89 2d 99 95 2c 00 mov %r13,0x2c9599(%rip) # 6cc018 + 402a7f: e9 6d fc ff ff jmpq 4026f1 <_nl_find_msg+0x7a1> + 402a84: 48 8b 45 80 mov -0x80(%rbp),%rax + 402a88: 48 8d 7c 40 03 lea 0x3(%rax,%rax,2),%rdi + 402a8d: 48 c1 e7 03 shl $0x3,%rdi + 402a91: e8 7a af 01 00 callq 41da10 <__libc_malloc> + 402a96: 49 89 c4 mov %rax,%r12 + 402a99: e9 91 fc ff ff jmpq 40272f <_nl_find_msg+0x7df> + 402a9e: 48 8b 43 70 mov 0x70(%rbx),%rax + 402aa2: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) + 402aa9: e9 60 fc ff ff jmpq 40270e <_nl_find_msg+0x7be> + 402aae: 48 85 ff test %rdi,%rdi + 402ab1: 48 8d 50 01 lea 0x1(%rax),%rdx + 402ab5: c6 00 2f movb $0x2f,(%rax) + 402ab8: 74 5f je 402b19 <_nl_find_msg+0xbc9> + 402aba: 48 89 d0 mov %rdx,%rax + 402abd: e9 d3 fd ff ff jmpq 402895 <_nl_find_msg+0x945> + 402ac2: 8b 7d a8 mov -0x58(%rbp),%edi + 402ac5: 03 7b 40 add 0x40(%rbx),%edi + 402ac8: be 08 00 00 00 mov $0x8,%esi + 402acd: e8 ee ba 01 00 callq 41e5c0 <__calloc> + 402ad2: 48 85 c0 test %rax,%rax + 402ad5: 49 89 44 24 10 mov %rax,0x10(%r12) + 402ada: 0f 85 d7 fa ff ff jne 4025b7 <_nl_find_msg+0x667> + 402ae0: 49 c7 44 24 10 ff ff movq $0xffffffffffffffff,0x10(%r12) + 402ae7: ff ff + 402ae9: e9 4c fa ff ff jmpq 40253a <_nl_find_msg+0x5ea> + 402aee: 66 90 xchg %ax,%ax + 402af0: 48 85 ff test %rdi,%rdi + 402af3: 48 8d 42 01 lea 0x1(%rdx),%rax + 402af7: c6 02 2f movb $0x2f,(%rdx) + 402afa: 75 0d jne 402b09 <_nl_find_msg+0xbb9> + 402afc: c6 42 01 2f movb $0x2f,0x1(%rdx) + 402b00: 48 83 c2 02 add $0x2,%rdx + 402b04: e9 fc fd ff ff jmpq 402905 <_nl_find_msg+0x9b5> + 402b09: 48 89 c2 mov %rax,%rdx + 402b0c: e9 f4 fd ff ff jmpq 402905 <_nl_find_msg+0x9b5> + 402b11: 4c 89 e3 mov %r12,%rbx + 402b14: e9 db f5 ff ff jmpq 4020f4 <_nl_find_msg+0x1a4> + 402b19: 48 8d 78 02 lea 0x2(%rax),%rdi + 402b1d: c6 40 01 2f movb $0x2f,0x1(%rax) + 402b21: ba 08 00 00 00 mov $0x8,%edx + 402b26: be b1 3f 4a 00 mov $0x4a3fb1,%esi + 402b2b: 4c 89 8d 78 ff ff ff mov %r9,-0x88(%rbp) + 402b32: 4c 89 45 80 mov %r8,-0x80(%rbp) + 402b36: 48 89 4d 90 mov %rcx,-0x70(%rbp) + 402b3a: e8 81 3a 02 00 callq 4265c0 <__mempcpy> + 402b3f: 48 8b 4d 90 mov -0x70(%rbp),%rcx + 402b43: 4c 8b 45 80 mov -0x80(%rbp),%r8 + 402b47: 4c 8b 8d 78 ff ff ff mov -0x88(%rbp),%r9 + 402b4e: e9 42 fd ff ff jmpq 402895 <_nl_find_msg+0x945> + 402b53: 31 d2 xor %edx,%edx + 402b55: e9 9c fc ff ff jmpq 4027f6 <_nl_find_msg+0x8a6> + 402b5a: 48 89 f2 mov %rsi,%rdx + 402b5d: e9 99 fd ff ff jmpq 4028fb <_nl_find_msg+0x9ab> + 402b62: 0f 1f 40 00 nopl 0x0(%rax) + 402b66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 402b6d: 00 00 00 + +0000000000402b70 <__dcigettext>: + 402b70: 55 push %rbp + 402b71: 48 89 e5 mov %rsp,%rbp + 402b74: 41 57 push %r15 + 402b76: 41 56 push %r14 + 402b78: 41 55 push %r13 + 402b7a: 41 54 push %r12 + 402b7c: 53 push %rbx + 402b7d: 48 81 ec b8 00 00 00 sub $0xb8,%rsp + 402b84: 48 85 f6 test %rsi,%rsi + 402b87: 48 89 bd 60 ff ff ff mov %rdi,-0xa0(%rbp) + 402b8e: 48 89 b5 70 ff ff ff mov %rsi,-0x90(%rbp) + 402b95: 48 89 95 48 ff ff ff mov %rdx,-0xb8(%rbp) + 402b9c: 89 8d 58 ff ff ff mov %ecx,-0xa8(%rbp) + 402ba2: 4c 89 85 50 ff ff ff mov %r8,-0xb0(%rbp) + 402ba9: 44 89 8d 5c ff ff ff mov %r9d,-0xa4(%rbp) + 402bb0: 0f 84 9a 08 00 00 je 403450 <__dcigettext+0x8e0> + 402bb6: 41 83 f9 0c cmp $0xc,%r9d + 402bba: 0f 87 46 03 00 00 ja 402f06 <__dcigettext+0x396> + 402bc0: 41 83 f9 06 cmp $0x6,%r9d + 402bc4: 0f 84 3c 03 00 00 je 402f06 <__dcigettext+0x396> + 402bca: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 402bd1: bb 00 00 00 00 mov $0x0,%ebx + 402bd6: 48 85 db test %rbx,%rbx + 402bd9: 64 8b 00 mov %fs:(%rax),%eax + 402bdc: 89 85 3c ff ff ff mov %eax,-0xc4(%rbp) + 402be2: 0f 84 65 04 00 00 je 40304d <__dcigettext+0x4dd> + 402be8: bf 20 c7 6c 00 mov $0x6cc720,%edi + 402bed: ff d3 callq *%rbx + 402bef: bf e0 bf 6c 00 mov $0x6cbfe0,%edi + 402bf4: ff d3 callq *%rbx + 402bf6: 48 83 bd 60 ff ff ff cmpq $0x0,-0xa0(%rbp) + 402bfd: 00 + 402bfe: 0f 84 91 05 00 00 je 403195 <__dcigettext+0x625> + 402c04: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax + 402c0b: 48 c7 45 b0 00 00 00 movq $0x0,-0x50(%rbp) + 402c12: 00 + 402c13: 48 89 45 c8 mov %rax,-0x38(%rbp) + 402c17: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax + 402c1e: 48 89 45 90 mov %rax,-0x70(%rbp) + 402c22: 8b 85 5c ff ff ff mov -0xa4(%rbp),%eax + 402c28: 89 c7 mov %eax,%edi + 402c2a: 89 45 98 mov %eax,-0x68(%rbp) + 402c2d: e8 fe c6 04 00 callq 44f330 <__current_locale_name> + 402c32: 48 89 c7 mov %rax,%rdi + 402c35: 48 89 c3 mov %rax,%rbx + 402c38: e8 13 0a 02 00 callq 423650 + 402c3d: 48 8d 50 01 lea 0x1(%rax),%rdx + 402c41: 48 83 c0 1f add $0x1f,%rax + 402c45: 48 89 de mov %rbx,%rsi + 402c48: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 402c4c: 48 29 c4 sub %rax,%rsp + 402c4f: 48 8d 7c 24 0f lea 0xf(%rsp),%rdi + 402c54: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 402c58: e8 c3 93 02 00 callq 42c020 + 402c5d: 48 89 85 30 ff ff ff mov %rax,-0xd0(%rbp) + 402c64: 48 89 45 a0 mov %rax,-0x60(%rbp) + 402c68: bf 60 c0 6c 00 mov $0x6cc060,%edi + 402c6d: e8 8e d3 bf ff callq 0 <_nl_current_LC_CTYPE> + 402c72: 48 8d 7d 90 lea -0x70(%rbp),%rdi + 402c76: ba 90 17 40 00 mov $0x401790,%edx + 402c7b: be 48 c0 6c 00 mov $0x6cc048,%esi + 402c80: e8 7b d9 03 00 callq 440600 <__tfind> + 402c85: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) + 402c8c: b8 00 00 00 00 mov $0x0,%eax + 402c91: 48 85 c0 test %rax,%rax + 402c94: 74 07 je 402c9d <__dcigettext+0x12d> + 402c96: bf 60 c0 6c 00 mov $0x6cc060,%edi + 402c9b: ff d0 callq *%rax + 402c9d: 48 8b 85 40 ff ff ff mov -0xc0(%rbp),%rax + 402ca4: 48 85 c0 test %rax,%rax + 402ca7: 74 12 je 402cbb <__dcigettext+0x14b> + 402ca9: 48 8b 00 mov (%rax),%rax + 402cac: 8b 0d f6 a4 2c 00 mov 0x2ca4f6(%rip),%ecx # 6cd1a8 <_nl_msg_cat_cntr> + 402cb2: 39 48 18 cmp %ecx,0x18(%rax) + 402cb5: 0f 84 02 04 00 00 je 4030bd <__dcigettext+0x54d> + 402cbb: 48 8b 1d de a4 2c 00 mov 0x2ca4de(%rip),%rbx # 6cd1a0 <_nl_domain_bindings> + 402cc2: 48 85 db test %rbx,%rbx + 402cc5: 0f 84 6a 02 00 00 je 402f35 <__dcigettext+0x3c5> + 402ccb: 4c 8b a5 60 ff ff ff mov -0xa0(%rbp),%r12 + 402cd2: eb 16 jmp 402cea <__dcigettext+0x17a> + 402cd4: 0f 1f 40 00 nopl 0x0(%rax) + 402cd8: 0f 88 55 02 00 00 js 402f33 <__dcigettext+0x3c3> + 402cde: 48 8b 1b mov (%rbx),%rbx + 402ce1: 48 85 db test %rbx,%rbx + 402ce4: 0f 84 4b 02 00 00 je 402f35 <__dcigettext+0x3c5> + 402cea: 48 8d 73 18 lea 0x18(%rbx),%rsi + 402cee: 4c 89 e7 mov %r12,%rdi + 402cf1: e8 6a d6 ff ff callq 400360 <__rela_iplt_end+0x98> + 402cf6: 85 c0 test %eax,%eax + 402cf8: 75 de jne 402cd8 <__dcigettext+0x168> + 402cfa: 48 8b 43 08 mov 0x8(%rbx),%rax + 402cfe: 80 38 2f cmpb $0x2f,(%rax) + 402d01: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) + 402d08: 0f 84 8d 00 00 00 je 402d9b <__dcigettext+0x22b> + 402d0e: 48 89 c7 mov %rax,%rdi + 402d11: 41 bd 02 10 00 00 mov $0x1002,%r13d + 402d17: e8 34 09 02 00 callq 423650 + 402d1c: 4c 8d 78 01 lea 0x1(%rax),%r15 + 402d20: eb 22 jmp 402d44 <__dcigettext+0x1d4> + 402d22: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 402d28: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 402d2f: 64 83 38 22 cmpl $0x22,%fs:(%rax) + 402d33: 0f 85 a2 01 00 00 jne 402edb <__dcigettext+0x36b> + 402d39: 4c 89 e8 mov %r13,%rax + 402d3c: 48 d1 e8 shr %rax + 402d3f: 4d 8d 6c 05 20 lea 0x20(%r13,%rax,1),%r13 + 402d44: 4b 8d 44 3d 1e lea 0x1e(%r13,%r15,1),%rax + 402d49: 4c 89 ee mov %r13,%rsi + 402d4c: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 402d50: 48 29 c4 sub %rax,%rsp + 402d53: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 402d5a: 4c 8d 64 24 0f lea 0xf(%rsp),%r12 + 402d5f: 49 83 e4 f0 and $0xfffffffffffffff0,%r12 + 402d63: 64 c7 00 00 00 00 00 movl $0x0,%fs:(%rax) + 402d6a: 4c 89 e7 mov %r12,%rdi + 402d6d: e8 5e c6 03 00 callq 43f3d0 <__getcwd> + 402d72: 48 85 c0 test %rax,%rax + 402d75: 74 b1 je 402d28 <__dcigettext+0x1b8> + 402d77: 31 f6 xor %esi,%esi + 402d79: 4c 89 e7 mov %r12,%rdi + 402d7c: e8 4f 9c 02 00 callq 42c9d0 <__rawmemchr> + 402d81: 48 8b b5 78 ff ff ff mov -0x88(%rbp),%rsi + 402d88: 48 8d 78 01 lea 0x1(%rax),%rdi + 402d8c: c6 00 2f movb $0x2f,(%rax) + 402d8f: e8 5c d5 ff ff callq 4002f0 <__rela_iplt_end+0x28> + 402d94: 4c 89 a5 78 ff ff ff mov %r12,-0x88(%rbp) + 402d9b: 8b bd 5c ff ff ff mov -0xa4(%rbp),%edi + 402da1: 48 63 c7 movslq %edi,%rax + 402da4: 44 0f b6 a0 b8 5f 4a movzbl 0x4a5fb8(%rax),%r12d + 402dab: 00 + 402dac: e8 7f c5 04 00 callq 44f330 <__current_locale_name> + 402db1: 49 89 c5 mov %rax,%r13 + 402db4: 49 81 c4 e0 5f 4a 00 add $0x4a5fe0,%r12 + 402dbb: 80 38 43 cmpb $0x43,(%rax) + 402dbe: 0f 85 81 01 00 00 jne 402f45 <__dcigettext+0x3d5> + 402dc4: 80 78 01 00 cmpb $0x0,0x1(%rax) + 402dc8: 0f 85 77 01 00 00 jne 402f45 <__dcigettext+0x3d5> + 402dce: 4c 8b bd 60 ff ff ff mov -0xa0(%rbp),%r15 + 402dd5: 4c 89 ff mov %r15,%rdi + 402dd8: e8 73 08 02 00 callq 423650 + 402ddd: 4c 89 e7 mov %r12,%rdi + 402de0: 49 89 c6 mov %rax,%r14 + 402de3: 48 89 85 20 ff ff ff mov %rax,-0xe0(%rbp) + 402dea: e8 61 08 02 00 callq 423650 + 402def: 49 8d 44 06 23 lea 0x23(%r14,%rax,1),%rax + 402df4: 4c 89 e6 mov %r12,%rsi + 402df7: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 402dfb: 48 29 c4 sub %rax,%rsp + 402dfe: 48 8d 44 24 0f lea 0xf(%rsp),%rax + 402e03: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 402e07: 48 89 c7 mov %rax,%rdi + 402e0a: 48 89 85 68 ff ff ff mov %rax,-0x98(%rbp) + 402e11: e8 fa d4 ff ff callq 400310 <__rela_iplt_end+0x48> + 402e16: b9 2f 00 00 00 mov $0x2f,%ecx + 402e1b: 48 8d 78 01 lea 0x1(%rax),%rdi + 402e1f: 4c 89 f2 mov %r14,%rdx + 402e22: 66 89 08 mov %cx,(%rax) + 402e25: 4c 89 fe mov %r15,%rsi + 402e28: e8 93 37 02 00 callq 4265c0 <__mempcpy> + 402e2d: 4c 89 ef mov %r13,%rdi + 402e30: c7 00 2e 6d 6f 00 movl $0x6f6d2e,(%rax) + 402e36: e8 15 08 02 00 callq 423650 + 402e3b: 48 83 c0 1f add $0x1f,%rax + 402e3f: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 402e43: 48 29 c4 sub %rax,%rsp + 402e46: 4c 8d 64 24 0f lea 0xf(%rsp),%r12 + 402e4b: 49 83 e4 f0 and $0xfffffffffffffff0,%r12 + 402e4f: 90 nop + 402e50: 41 0f b6 45 00 movzbl 0x0(%r13),%eax + 402e55: 3c 3a cmp $0x3a,%al + 402e57: 0f 84 73 01 00 00 je 402fd0 <__dcigettext+0x460> + 402e5d: 84 c0 test %al,%al + 402e5f: 0f 85 0b 01 00 00 jne 402f70 <__dcigettext+0x400> + 402e65: 41 c6 04 24 43 movb $0x43,(%r12) + 402e6a: 41 c6 44 24 01 00 movb $0x0,0x1(%r12) + 402e70: 41 80 7c 24 01 00 cmpb $0x0,0x1(%r12) + 402e76: 74 63 je 402edb <__dcigettext+0x36b> + 402e78: bf 99 11 4a 00 mov $0x4a1199,%edi + 402e7d: b9 06 00 00 00 mov $0x6,%ecx + 402e82: 4c 89 e6 mov %r12,%rsi + 402e85: f3 a6 repz cmpsb %es:(%rdi),%ds:(%rsi) + 402e87: 74 52 je 402edb <__dcigettext+0x36b> + 402e89: 48 8b 95 68 ff ff ff mov -0x98(%rbp),%rdx + 402e90: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi + 402e97: 48 89 d9 mov %rbx,%rcx + 402e9a: 4c 89 e6 mov %r12,%rsi + 402e9d: e8 2e 06 00 00 callq 4034d0 <_nl_find_domain> + 402ea2: 48 85 c0 test %rax,%rax + 402ea5: 49 89 c7 mov %rax,%r15 + 402ea8: 74 a6 je 402e50 <__dcigettext+0x2e0> + 402eaa: 48 8b 95 70 ff ff ff mov -0x90(%rbp),%rdx + 402eb1: 4c 8d 45 88 lea -0x78(%rbp),%r8 + 402eb5: b9 01 00 00 00 mov $0x1,%ecx + 402eba: 48 89 de mov %rbx,%rsi + 402ebd: 48 89 c7 mov %rax,%rdi + 402ec0: e8 8b f0 ff ff callq 401f50 <_nl_find_msg> + 402ec5: 48 85 c0 test %rax,%rax + 402ec8: 0f 84 12 01 00 00 je 402fe0 <__dcigettext+0x470> + 402ece: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 402ed2: 48 89 c1 mov %rax,%rcx + 402ed5: 0f 85 2f 02 00 00 jne 40310a <__dcigettext+0x59a> + 402edb: b8 00 00 00 00 mov $0x0,%eax + 402ee0: 48 85 c0 test %rax,%rax + 402ee3: 74 11 je 402ef6 <__dcigettext+0x386> + 402ee5: bf e0 bf 6c 00 mov $0x6cbfe0,%edi + 402eea: ff d0 callq *%rax + 402eec: bf 20 c7 6c 00 mov $0x6cc720,%edi + 402ef1: e8 0a d1 bf ff callq 0 <_nl_current_LC_CTYPE> + 402ef6: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 402efd: 8b 8d 3c ff ff ff mov -0xc4(%rbp),%ecx + 402f03: 64 89 08 mov %ecx,%fs:(%rax) + 402f06: 48 83 bd 50 ff ff ff cmpq $0x1,-0xb0(%rbp) + 402f0d: 01 + 402f0e: 74 54 je 402f64 <__dcigettext+0x3f4> + 402f10: 8b bd 58 ff ff ff mov -0xa8(%rbp),%edi + 402f16: 4c 8b ad 48 ff ff ff mov -0xb8(%rbp),%r13 + 402f1d: 85 ff test %edi,%edi + 402f1f: 74 43 je 402f64 <__dcigettext+0x3f4> + 402f21: 48 8d 65 d8 lea -0x28(%rbp),%rsp + 402f25: 4c 89 e8 mov %r13,%rax + 402f28: 5b pop %rbx + 402f29: 41 5c pop %r12 + 402f2b: 41 5d pop %r13 + 402f2d: 41 5e pop %r14 + 402f2f: 41 5f pop %r15 + 402f31: 5d pop %rbp + 402f32: c3 retq + 402f33: 31 db xor %ebx,%ebx + 402f35: 48 c7 85 78 ff ff ff movq $0x4a11a0,-0x88(%rbp) + 402f3c: a0 11 4a 00 + 402f40: e9 56 fe ff ff jmpq 402d9b <__dcigettext+0x22b> + 402f45: bf 90 11 4a 00 mov $0x4a1190,%edi + 402f4a: e8 91 b8 00 00 callq 40e7e0 + 402f4f: 48 85 c0 test %rax,%rax + 402f52: 0f 84 76 fe ff ff je 402dce <__dcigettext+0x25e> + 402f58: 80 38 00 cmpb $0x0,(%rax) + 402f5b: 4c 0f 45 e8 cmovne %rax,%r13 + 402f5f: e9 6a fe ff ff jmpq 402dce <__dcigettext+0x25e> + 402f64: 4c 8b ad 70 ff ff ff mov -0x90(%rbp),%r13 + 402f6b: eb b4 jmp 402f21 <__dcigettext+0x3b1> + 402f6d: 0f 1f 00 nopl (%rax) + 402f70: 4c 89 e2 mov %r12,%rdx + 402f73: eb 07 jmp 402f7c <__dcigettext+0x40c> + 402f75: 0f 1f 00 nopl (%rax) + 402f78: 3c 3a cmp $0x3a,%al + 402f7a: 74 14 je 402f90 <__dcigettext+0x420> + 402f7c: 48 83 c2 01 add $0x1,%rdx + 402f80: 49 83 c5 01 add $0x1,%r13 + 402f84: 88 42 ff mov %al,-0x1(%rdx) + 402f87: 41 0f b6 45 00 movzbl 0x0(%r13),%eax + 402f8c: 84 c0 test %al,%al + 402f8e: 75 e8 jne 402f78 <__dcigettext+0x408> + 402f90: c6 02 00 movb $0x0,(%rdx) + 402f93: 8b 15 ff 6f 2c 00 mov 0x2c6fff(%rip),%edx # 6c9f98 <__libc_enable_secure> + 402f99: 85 d2 test %edx,%edx + 402f9b: 74 1b je 402fb8 <__dcigettext+0x448> + 402f9d: be 2f 00 00 00 mov $0x2f,%esi + 402fa2: 4c 89 e7 mov %r12,%rdi + 402fa5: e8 d6 d3 ff ff callq 400380 <__rela_iplt_end+0xb8> + 402faa: 48 85 c0 test %rax,%rax + 402fad: 0f 85 9d fe ff ff jne 402e50 <__dcigettext+0x2e0> + 402fb3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 402fb8: 41 0f b6 04 24 movzbl (%r12),%eax + 402fbd: 3c 43 cmp $0x43,%al + 402fbf: 0f 85 b3 fe ff ff jne 402e78 <__dcigettext+0x308> + 402fc5: e9 a6 fe ff ff jmpq 402e70 <__dcigettext+0x300> + 402fca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 402fd0: 49 83 c5 01 add $0x1,%r13 + 402fd4: e9 77 fe ff ff jmpq 402e50 <__dcigettext+0x2e0> + 402fd9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 402fe0: 49 8b 7f 20 mov 0x20(%r15),%rdi + 402fe4: 48 85 ff test %rdi,%rdi + 402fe7: 0f 84 63 fe ff ff je 402e50 <__dcigettext+0x2e0> + 402fed: 45 31 f6 xor %r14d,%r14d + 402ff0: 4c 89 ad 28 ff ff ff mov %r13,-0xd8(%rbp) + 402ff7: 45 89 f5 mov %r14d,%r13d + 402ffa: 4d 89 e6 mov %r12,%r14 + 402ffd: 4c 8b a5 70 ff ff ff mov -0x90(%rbp),%r12 + 403004: eb 28 jmp 40302e <__dcigettext+0x4be> + 403006: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40300d: 00 00 00 + 403010: 48 85 c0 test %rax,%rax + 403013: 0f 85 e6 00 00 00 jne 4030ff <__dcigettext+0x58f> + 403019: 41 83 c5 01 add $0x1,%r13d + 40301d: 49 63 c5 movslq %r13d,%rax + 403020: 49 8b 7c c7 20 mov 0x20(%r15,%rax,8),%rdi + 403025: 48 85 ff test %rdi,%rdi + 403028: 0f 84 58 01 00 00 je 403186 <__dcigettext+0x616> + 40302e: 4c 8d 45 88 lea -0x78(%rbp),%r8 + 403032: b9 01 00 00 00 mov $0x1,%ecx + 403037: 4c 89 e2 mov %r12,%rdx + 40303a: 48 89 de mov %rbx,%rsi + 40303d: e8 0e ef ff ff callq 401f50 <_nl_find_msg> + 403042: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 403046: 75 c8 jne 403010 <__dcigettext+0x4a0> + 403048: e9 8e fe ff ff jmpq 402edb <__dcigettext+0x36b> + 40304d: 48 83 bd 60 ff ff ff cmpq $0x0,-0xa0(%rbp) + 403054: 00 + 403055: 0f 84 3a 01 00 00 je 403195 <__dcigettext+0x625> + 40305b: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax + 403062: 48 89 75 c8 mov %rsi,-0x38(%rbp) + 403066: 48 c7 45 b0 00 00 00 movq $0x0,-0x50(%rbp) + 40306d: 00 + 40306e: 48 89 45 90 mov %rax,-0x70(%rbp) + 403072: 8b 85 5c ff ff ff mov -0xa4(%rbp),%eax + 403078: 89 c7 mov %eax,%edi + 40307a: 89 45 98 mov %eax,-0x68(%rbp) + 40307d: e8 ae c2 04 00 callq 44f330 <__current_locale_name> + 403082: 48 89 c7 mov %rax,%rdi + 403085: 48 89 c3 mov %rax,%rbx + 403088: e8 c3 05 02 00 callq 423650 + 40308d: 48 8d 50 01 lea 0x1(%rax),%rdx + 403091: 48 83 c0 1f add $0x1f,%rax + 403095: 48 89 de mov %rbx,%rsi + 403098: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 40309c: 48 29 c4 sub %rax,%rsp + 40309f: 48 8d 7c 24 0f lea 0xf(%rsp),%rdi + 4030a4: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 4030a8: e8 73 8f 02 00 callq 42c020 + 4030ad: 48 89 85 30 ff ff ff mov %rax,-0xd0(%rbp) + 4030b4: 48 89 45 a0 mov %rax,-0x60(%rbp) + 4030b8: e9 b5 fb ff ff jmpq 402c72 <__dcigettext+0x102> + 4030bd: 8b b5 58 ff ff ff mov -0xa8(%rbp),%esi + 4030c3: 85 f6 test %esi,%esi + 4030c5: 0f 85 1d 03 00 00 jne 4033e8 <__dcigettext+0x878> + 4030cb: 4c 8b 68 28 mov 0x28(%rax),%r13 + 4030cf: b8 00 00 00 00 mov $0x0,%eax + 4030d4: 48 85 c0 test %rax,%rax + 4030d7: 74 11 je 4030ea <__dcigettext+0x57a> + 4030d9: bf e0 bf 6c 00 mov $0x6cbfe0,%edi + 4030de: ff d0 callq *%rax + 4030e0: bf 20 c7 6c 00 mov $0x6cc720,%edi + 4030e5: e8 16 cf bf ff callq 0 <_nl_current_LC_CTYPE> + 4030ea: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 4030f1: 8b 8d 3c ff ff ff mov -0xc4(%rbp),%ecx + 4030f7: 64 89 08 mov %ecx,%fs:(%rax) + 4030fa: e9 22 fe ff ff jmpq 402f21 <__dcigettext+0x3b1> + 4030ff: 4d 63 d5 movslq %r13d,%r10 + 403102: 48 89 c1 mov %rax,%rcx + 403105: 4f 8b 7c d7 20 mov 0x20(%r15,%r10,8),%r15 + 40310a: 48 83 bd 40 ff ff ff cmpq $0x0,-0xc0(%rbp) + 403111: 00 + 403112: 0f 84 f6 00 00 00 je 40320e <__dcigettext+0x69e> + 403118: 48 8b 9d 40 ff ff ff mov -0xc0(%rbp),%rbx + 40311f: 8b 15 83 a0 2c 00 mov 0x2ca083(%rip),%edx # 6cd1a8 <_nl_msg_cat_cntr> + 403125: 48 8b 03 mov (%rbx),%rax + 403128: 89 50 18 mov %edx,0x18(%rax) + 40312b: 4c 89 78 20 mov %r15,0x20(%rax) + 40312f: 48 8b 03 mov (%rbx),%rax + 403132: 48 8b 55 88 mov -0x78(%rbp),%rdx + 403136: 48 89 48 28 mov %rcx,0x28(%rax) + 40313a: 48 8b 03 mov (%rbx),%rax + 40313d: 48 89 50 30 mov %rdx,0x30(%rax) + 403141: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 403148: 8b 9d 3c ff ff ff mov -0xc4(%rbp),%ebx + 40314e: 64 89 18 mov %ebx,%fs:(%rax) + 403151: 8b 85 58 ff ff ff mov -0xa8(%rbp),%eax + 403157: 85 c0 test %eax,%eax + 403159: 0f 85 f9 02 00 00 jne 403458 <__dcigettext+0x8e8> + 40315f: b8 00 00 00 00 mov $0x0,%eax + 403164: 49 89 cd mov %rcx,%r13 + 403167: 48 85 c0 test %rax,%rax + 40316a: 0f 84 b1 fd ff ff je 402f21 <__dcigettext+0x3b1> + 403170: bf e0 bf 6c 00 mov $0x6cbfe0,%edi + 403175: ff d0 callq *%rax + 403177: bf 20 c7 6c 00 mov $0x6cc720,%edi + 40317c: e8 7f ce bf ff callq 0 <_nl_current_LC_CTYPE> + 403181: e9 9b fd ff ff jmpq 402f21 <__dcigettext+0x3b1> + 403186: 4c 8b ad 28 ff ff ff mov -0xd8(%rbp),%r13 + 40318d: 4d 89 f4 mov %r14,%r12 + 403190: e9 bb fc ff ff jmpq 402e50 <__dcigettext+0x2e0> + 403195: 48 8b 05 fc 6e 2c 00 mov 0x2c6efc(%rip),%rax # 6ca098 <_nl_current_default_domain> + 40319c: 48 8b 8d 70 ff ff ff mov -0x90(%rbp),%rcx + 4031a3: 48 c7 45 b0 00 00 00 movq $0x0,-0x50(%rbp) + 4031aa: 00 + 4031ab: 48 89 85 60 ff ff ff mov %rax,-0xa0(%rbp) + 4031b2: 48 89 45 90 mov %rax,-0x70(%rbp) + 4031b6: 8b 85 5c ff ff ff mov -0xa4(%rbp),%eax + 4031bc: 48 89 4d c8 mov %rcx,-0x38(%rbp) + 4031c0: 89 c7 mov %eax,%edi + 4031c2: 89 45 98 mov %eax,-0x68(%rbp) + 4031c5: e8 66 c1 04 00 callq 44f330 <__current_locale_name> + 4031ca: 48 89 c7 mov %rax,%rdi + 4031cd: 49 89 c4 mov %rax,%r12 + 4031d0: e8 7b 04 02 00 callq 423650 + 4031d5: 48 8d 50 01 lea 0x1(%rax),%rdx + 4031d9: 48 83 c0 1f add $0x1f,%rax + 4031dd: 4c 89 e6 mov %r12,%rsi + 4031e0: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 4031e4: 48 29 c4 sub %rax,%rsp + 4031e7: 48 8d 7c 24 0f lea 0xf(%rsp),%rdi + 4031ec: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 4031f0: e8 2b 8e 02 00 callq 42c020 + 4031f5: 48 85 db test %rbx,%rbx + 4031f8: 48 89 85 30 ff ff ff mov %rax,-0xd0(%rbp) + 4031ff: 48 89 45 a0 mov %rax,-0x60(%rbp) + 403203: 0f 85 5f fa ff ff jne 402c68 <__dcigettext+0xf8> + 403209: e9 64 fa ff ff jmpq 402c72 <__dcigettext+0x102> + 40320e: 48 8b bd 70 ff ff ff mov -0x90(%rbp),%rdi + 403215: 48 89 8d 78 ff ff ff mov %rcx,-0x88(%rbp) + 40321c: e8 2f 04 02 00 callq 423650 + 403221: 4c 8b a5 30 ff ff ff mov -0xd0(%rbp),%r12 + 403228: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx + 40322f: 48 8d 58 01 lea 0x1(%rax),%rbx + 403233: 41 8b 14 24 mov (%r12),%edx + 403237: 49 83 c4 04 add $0x4,%r12 + 40323b: 8d 82 ff fe fe fe lea -0x1010101(%rdx),%eax + 403241: f7 d2 not %edx + 403243: 21 d0 and %edx,%eax + 403245: 25 80 80 80 80 and $0x80808080,%eax + 40324a: 74 e7 je 403233 <__dcigettext+0x6c3> + 40324c: 89 c2 mov %eax,%edx + 40324e: 48 89 8d 78 ff ff ff mov %rcx,-0x88(%rbp) + 403255: 4c 8b b5 20 ff ff ff mov -0xe0(%rbp),%r14 + 40325c: c1 ea 10 shr $0x10,%edx + 40325f: a9 80 80 00 00 test $0x8080,%eax + 403264: 0f 44 c2 cmove %edx,%eax + 403267: 49 8d 54 24 02 lea 0x2(%r12),%rdx + 40326c: 89 c1 mov %eax,%ecx + 40326e: 4c 0f 44 e2 cmove %rdx,%r12 + 403272: 00 c1 add %al,%cl + 403274: 49 83 dc 03 sbb $0x3,%r12 + 403278: 4c 2b a5 30 ff ff ff sub -0xd0(%rbp),%r12 + 40327f: 4b 8d 7c 34 3a lea 0x3a(%r12,%r14,1),%rdi + 403284: 48 01 df add %rbx,%rdi + 403287: e8 84 a7 01 00 callq 41da10 <__libc_malloc> + 40328c: 48 85 c0 test %rax,%rax + 40328f: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx + 403296: 0f 84 a5 fe ff ff je 403141 <__dcigettext+0x5d1> + 40329c: 48 8b b5 70 ff ff ff mov -0x90(%rbp),%rsi + 4032a3: 48 8d 78 38 lea 0x38(%rax),%rdi + 4032a7: 48 89 da mov %rbx,%rdx + 4032aa: 48 89 8d 68 ff ff ff mov %rcx,-0x98(%rbp) + 4032b1: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) + 4032b8: e8 03 33 02 00 callq 4265c0 <__mempcpy> + 4032bd: 48 8b b5 60 ff ff ff mov -0xa0(%rbp),%rsi + 4032c4: 48 89 c3 mov %rax,%rbx + 4032c7: 4c 89 f0 mov %r14,%rax + 4032ca: 48 83 c0 01 add $0x1,%rax + 4032ce: 48 89 df mov %rbx,%rdi + 4032d1: 49 89 c5 mov %rax,%r13 + 4032d4: 48 89 c2 mov %rax,%rdx + 4032d7: e8 44 8d 02 00 callq 42c020 + 4032dc: 4e 8d 0c 2b lea (%rbx,%r13,1),%r9 + 4032e0: 48 8b b5 30 ff ff ff mov -0xd0(%rbp),%rsi + 4032e7: 49 8d 54 24 01 lea 0x1(%r12),%rdx + 4032ec: 4c 89 cf mov %r9,%rdi + 4032ef: e8 2c 8d 02 00 callq 42c020 + 4032f4: 4c 8b 85 78 ff ff ff mov -0x88(%rbp),%r8 + 4032fb: 49 89 c1 mov %rax,%r9 + 4032fe: 8b 85 5c ff ff ff mov -0xa4(%rbp),%eax + 403304: 48 8b 8d 68 ff ff ff mov -0x98(%rbp),%rcx + 40330b: 41 89 40 08 mov %eax,0x8(%r8) + 40330f: 8b 05 93 9e 2c 00 mov 0x2c9e93(%rip),%eax # 6cd1a8 <_nl_msg_cat_cntr> + 403315: 49 89 18 mov %rbx,(%r8) + 403318: 4d 89 48 10 mov %r9,0x10(%r8) + 40331c: 4d 89 78 20 mov %r15,0x20(%r8) + 403320: 49 89 48 28 mov %rcx,0x28(%r8) + 403324: 41 89 40 18 mov %eax,0x18(%r8) + 403328: 48 8b 45 88 mov -0x78(%rbp),%rax + 40332c: 49 89 40 30 mov %rax,0x30(%r8) + 403330: b8 00 00 00 00 mov $0x0,%eax + 403335: 48 85 c0 test %rax,%rax + 403338: 74 23 je 40335d <__dcigettext+0x7ed> + 40333a: 4c 89 85 70 ff ff ff mov %r8,-0x90(%rbp) + 403341: 48 89 8d 78 ff ff ff mov %rcx,-0x88(%rbp) + 403348: bf 60 c0 6c 00 mov $0x6cc060,%edi + 40334d: ff d0 callq *%rax + 40334f: 4c 8b 85 70 ff ff ff mov -0x90(%rbp),%r8 + 403356: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx + 40335d: 4c 89 c7 mov %r8,%rdi + 403360: ba 90 17 40 00 mov $0x401790,%edx + 403365: be 48 c0 6c 00 mov $0x6cc048,%esi + 40336a: 48 89 8d 70 ff ff ff mov %rcx,-0x90(%rbp) + 403371: 4c 89 85 78 ff ff ff mov %r8,-0x88(%rbp) + 403378: e8 23 cf 03 00 callq 4402a0 <__tsearch> + 40337d: 48 89 c3 mov %rax,%rbx + 403380: b8 00 00 00 00 mov $0x0,%eax + 403385: 4c 8b 85 78 ff ff ff mov -0x88(%rbp),%r8 + 40338c: 48 85 c0 test %rax,%rax + 40338f: 48 8b 8d 70 ff ff ff mov -0x90(%rbp),%rcx + 403396: 74 23 je 4033bb <__dcigettext+0x84b> + 403398: 4c 89 85 70 ff ff ff mov %r8,-0x90(%rbp) + 40339f: 48 89 8d 78 ff ff ff mov %rcx,-0x88(%rbp) + 4033a6: bf 60 c0 6c 00 mov $0x6cc060,%edi + 4033ab: ff d0 callq *%rax + 4033ad: 4c 8b 85 70 ff ff ff mov -0x90(%rbp),%r8 + 4033b4: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx + 4033bb: 48 85 db test %rbx,%rbx + 4033be: 74 09 je 4033c9 <__dcigettext+0x859> + 4033c0: 4c 3b 03 cmp (%rbx),%r8 + 4033c3: 0f 84 78 fd ff ff je 403141 <__dcigettext+0x5d1> + 4033c9: 4c 89 c7 mov %r8,%rdi + 4033cc: 48 89 8d 78 ff ff ff mov %rcx,-0x88(%rbp) + 4033d3: e8 d8 a9 01 00 callq 41ddb0 <__cfree> + 4033d8: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx + 4033df: e9 5d fd ff ff jmpq 403141 <__dcigettext+0x5d1> + 4033e4: 0f 1f 40 00 nopl 0x0(%rax) + 4033e8: 48 8b 58 30 mov 0x30(%rax),%rbx + 4033ec: 4c 8b 68 28 mov 0x28(%rax),%r13 + 4033f0: 48 8b 40 20 mov 0x20(%rax),%rax + 4033f4: 48 8b b5 50 ff ff ff mov -0xb0(%rbp),%rsi + 4033fb: 4c 8b 60 10 mov 0x10(%rax),%r12 + 4033ff: 49 8b bc 24 b8 00 00 mov 0xb8(%r12),%rdi + 403406: 00 + 403407: e8 04 e4 ff ff callq 401810 + 40340c: 49 3b 84 24 c0 00 00 cmp 0xc0(%r12),%rax + 403413: 00 + 403414: 0f 83 b5 fc ff ff jae 4030cf <__dcigettext+0x55f> + 40341a: 4c 89 ef mov %r13,%rdi + 40341d: 49 89 c4 mov %rax,%r12 + 403420: 4c 01 eb add %r13,%rbx + 403423: eb 1b jmp 403440 <__dcigettext+0x8d0> + 403425: 0f 1f 00 nopl (%rax) + 403428: 31 f6 xor %esi,%esi + 40342a: 49 83 ec 01 sub $0x1,%r12 + 40342e: e8 9d 95 02 00 callq 42c9d0 <__rawmemchr> + 403433: 48 8d 78 01 lea 0x1(%rax),%rdi + 403437: 48 39 df cmp %rbx,%rdi + 40343a: 0f 83 8f fc ff ff jae 4030cf <__dcigettext+0x55f> + 403440: 4d 85 e4 test %r12,%r12 + 403443: 75 e3 jne 403428 <__dcigettext+0x8b8> + 403445: 49 89 fd mov %rdi,%r13 + 403448: e9 82 fc ff ff jmpq 4030cf <__dcigettext+0x55f> + 40344d: 0f 1f 00 nopl (%rax) + 403450: 45 31 ed xor %r13d,%r13d + 403453: e9 c9 fa ff ff jmpq 402f21 <__dcigettext+0x3b1> + 403458: 4d 8b 67 10 mov 0x10(%r15),%r12 + 40345c: 48 8b b5 50 ff ff ff mov -0xb0(%rbp),%rsi + 403463: 48 89 8d 78 ff ff ff mov %rcx,-0x88(%rbp) + 40346a: 48 8b 5d 88 mov -0x78(%rbp),%rbx + 40346e: 49 8b bc 24 b8 00 00 mov 0xb8(%r12),%rdi + 403475: 00 + 403476: e8 95 e3 ff ff callq 401810 + 40347b: 49 3b 84 24 c0 00 00 cmp 0xc0(%r12),%rax + 403482: 00 + 403483: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx + 40348a: 0f 83 cf fc ff ff jae 40315f <__dcigettext+0x5ef> + 403490: 48 89 cf mov %rcx,%rdi + 403493: 49 89 c4 mov %rax,%r12 + 403496: 48 01 cb add %rcx,%rbx + 403499: 49 89 cd mov %rcx,%r13 + 40349c: 4d 85 e4 test %r12,%r12 + 40349f: 74 1c je 4034bd <__dcigettext+0x94d> + 4034a1: 31 f6 xor %esi,%esi + 4034a3: 49 83 ec 01 sub $0x1,%r12 + 4034a7: e8 24 95 02 00 callq 42c9d0 <__rawmemchr> + 4034ac: 48 8d 78 01 lea 0x1(%rax),%rdi + 4034b0: 48 39 df cmp %rbx,%rdi + 4034b3: 72 e7 jb 40349c <__dcigettext+0x92c> + 4034b5: 4c 89 e9 mov %r13,%rcx + 4034b8: e9 a2 fc ff ff jmpq 40315f <__dcigettext+0x5ef> + 4034bd: 48 89 f9 mov %rdi,%rcx + 4034c0: e9 9a fc ff ff jmpq 40315f <__dcigettext+0x5ef> + 4034c5: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4034cc: 00 00 00 + 4034cf: 90 nop + +00000000004034d0 <_nl_find_domain>: + 4034d0: 41 57 push %r15 + 4034d2: 41 56 push %r14 + 4034d4: b8 00 00 00 00 mov $0x0,%eax + 4034d9: 41 55 push %r13 + 4034db: 41 54 push %r12 + 4034dd: 49 89 f5 mov %rsi,%r13 + 4034e0: 55 push %rbp + 4034e1: 53 push %rbx + 4034e2: 48 89 fd mov %rdi,%rbp + 4034e5: 49 89 d6 mov %rdx,%r14 + 4034e8: 49 89 cc mov %rcx,%r12 + 4034eb: 48 83 ec 48 sub $0x48,%rsp + 4034ef: 48 85 c0 test %rax,%rax + 4034f2: 74 07 je 4034fb <_nl_find_domain+0x2b> + 4034f4: bf a0 c0 6c 00 mov $0x6cc0a0,%edi + 4034f9: ff d0 callq *%rax + 4034fb: 48 89 ef mov %rbp,%rdi + 4034fe: 41 bf 00 00 00 00 mov $0x0,%r15d + 403504: e8 47 01 02 00 callq 423650 + 403509: 48 83 ec 08 sub $0x8,%rsp + 40350d: 48 8d 50 01 lea 0x1(%rax),%rdx + 403511: 45 31 c9 xor %r9d,%r9d + 403514: 6a 00 pushq $0x0 + 403516: 41 56 push %r14 + 403518: 31 c9 xor %ecx,%ecx + 40351a: 6a 00 pushq $0x0 + 40351c: 6a 00 pushq $0x0 + 40351e: 4d 89 e8 mov %r13,%r8 + 403521: 6a 00 pushq $0x0 + 403523: 48 89 ee mov %rbp,%rsi + 403526: bf d8 c0 6c 00 mov $0x6cc0d8,%edi + 40352b: e8 b0 1d 00 00 callq 4052e0 <_nl_make_l10nflist> + 403530: 48 83 c4 30 add $0x30,%rsp + 403534: 4d 85 ff test %r15,%r15 + 403537: 48 89 c3 mov %rax,%rbx + 40353a: 74 08 je 403544 <_nl_find_domain+0x74> + 40353c: bf a0 c0 6c 00 mov $0x6cc0a0,%edi + 403541: 41 ff d7 callq *%r15 + 403544: 48 85 db test %rbx,%rbx + 403547: 0f 84 93 00 00 00 je 4035e0 <_nl_find_domain+0x110> + 40354d: 8b 73 08 mov 0x8(%rbx),%esi + 403550: 85 f6 test %esi,%esi + 403552: 7e 74 jle 4035c8 <_nl_find_domain+0xf8> + 403554: 48 83 7b 10 00 cmpq $0x0,0x10(%rbx) + 403559: 48 89 d8 mov %rbx,%rax + 40355c: 74 12 je 403570 <_nl_find_domain+0xa0> + 40355e: 48 83 c4 48 add $0x48,%rsp + 403562: 5b pop %rbx + 403563: 5d pop %rbp + 403564: 41 5c pop %r12 + 403566: 41 5d pop %r13 + 403568: 41 5e pop %r14 + 40356a: 41 5f pop %r15 + 40356c: c3 retq + 40356d: 0f 1f 00 nopl (%rax) + 403570: 48 8b 7b 20 mov 0x20(%rbx),%rdi + 403574: 48 85 ff test %rdi,%rdi + 403577: 74 e5 je 40355e <_nl_find_domain+0x8e> + 403579: 31 ed xor %ebp,%ebp + 40357b: eb 1a jmp 403597 <_nl_find_domain+0xc7> + 40357d: 0f 1f 00 nopl (%rax) + 403580: 48 83 7f 10 00 cmpq $0x0,0x10(%rdi) + 403585: 75 29 jne 4035b0 <_nl_find_domain+0xe0> + 403587: 83 c5 01 add $0x1,%ebp + 40358a: 48 63 c5 movslq %ebp,%rax + 40358d: 48 8b 7c c3 20 mov 0x20(%rbx,%rax,8),%rdi + 403592: 48 85 ff test %rdi,%rdi + 403595: 74 19 je 4035b0 <_nl_find_domain+0xe0> + 403597: 8b 4f 08 mov 0x8(%rdi),%ecx + 40359a: 85 c9 test %ecx,%ecx + 40359c: 7f e2 jg 403580 <_nl_find_domain+0xb0> + 40359e: 4c 89 e6 mov %r12,%rsi + 4035a1: e8 9a 01 00 00 callq 403740 <_nl_load_domain> + 4035a6: 48 63 c5 movslq %ebp,%rax + 4035a9: 48 8b 7c c3 20 mov 0x20(%rbx,%rax,8),%rdi + 4035ae: eb d0 jmp 403580 <_nl_find_domain+0xb0> + 4035b0: 48 83 c4 48 add $0x48,%rsp + 4035b4: 48 89 d8 mov %rbx,%rax + 4035b7: 5b pop %rbx + 4035b8: 5d pop %rbp + 4035b9: 41 5c pop %r12 + 4035bb: 41 5d pop %r13 + 4035bd: 41 5e pop %r14 + 4035bf: 41 5f pop %r15 + 4035c1: c3 retq + 4035c2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4035c8: 4c 89 e6 mov %r12,%rsi + 4035cb: 48 89 df mov %rbx,%rdi + 4035ce: e8 6d 01 00 00 callq 403740 <_nl_load_domain> + 4035d3: e9 7c ff ff ff jmpq 403554 <_nl_find_domain+0x84> + 4035d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4035df: 00 + 4035e0: 4c 89 ef mov %r13,%rdi + 4035e3: e8 38 1b 00 00 callq 405120 <_nl_expand_alias> + 4035e8: 48 85 c0 test %rax,%rax + 4035eb: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4035f0: 74 14 je 403606 <_nl_find_domain+0x136> + 4035f2: 48 89 c7 mov %rax,%rdi + 4035f5: e8 06 00 02 00 callq 423600 <__strdup> + 4035fa: 48 85 c0 test %rax,%rax + 4035fd: 49 89 c5 mov %rax,%r13 + 403600: 0f 84 2b 01 00 00 je 403731 <_nl_find_domain+0x261> + 403606: 4c 8d 4c 24 38 lea 0x38(%rsp),%r9 + 40360b: 4c 8d 44 24 30 lea 0x30(%rsp),%r8 + 403610: 48 8d 4c 24 28 lea 0x28(%rsp),%rcx + 403615: 48 8d 54 24 20 lea 0x20(%rsp),%rdx + 40361a: 48 8d 74 24 18 lea 0x18(%rsp),%rsi + 40361f: 4c 89 ef mov %r13,%rdi + 403622: e8 89 23 00 00 callq 4059b0 <_nl_explode_name> + 403627: 83 f8 ff cmp $0xffffffff,%eax + 40362a: 89 c3 mov %eax,%ebx + 40362c: 0f 84 ff 00 00 00 je 403731 <_nl_find_domain+0x261> + 403632: b8 00 00 00 00 mov $0x0,%eax + 403637: 48 85 c0 test %rax,%rax + 40363a: 74 07 je 403643 <_nl_find_domain+0x173> + 40363c: bf a0 c0 6c 00 mov $0x6cc0a0,%edi + 403641: ff d0 callq *%rax + 403643: 48 89 ef mov %rbp,%rdi + 403646: e8 05 00 02 00 callq 423650 + 40364b: 48 83 ec 08 sub $0x8,%rsp + 40364f: 48 8d 50 01 lea 0x1(%rax),%rdx + 403653: 48 89 ee mov %rbp,%rsi + 403656: 6a 01 pushq $0x1 + 403658: 41 56 push %r14 + 40365a: 89 d9 mov %ebx,%ecx + 40365c: ff 74 24 38 pushq 0x38(%rsp) + 403660: ff 74 24 58 pushq 0x58(%rsp) + 403664: bf d8 c0 6c 00 mov $0x6cc0d8,%edi + 403669: ff 74 24 58 pushq 0x58(%rsp) + 40366d: 4c 8b 4c 24 58 mov 0x58(%rsp),%r9 + 403672: 4c 8b 44 24 48 mov 0x48(%rsp),%r8 + 403677: e8 64 1c 00 00 callq 4052e0 <_nl_make_l10nflist> + 40367c: 48 83 c4 30 add $0x30,%rsp + 403680: 4d 85 ff test %r15,%r15 + 403683: 48 89 c5 mov %rax,%rbp + 403686: 74 0a je 403692 <_nl_find_domain+0x1c2> + 403688: bf a0 c0 6c 00 mov $0x6cc0a0,%edi + 40368d: e8 6e c9 bf ff callq 0 <_nl_current_LC_CTYPE> + 403692: 48 85 ed test %rbp,%rbp + 403695: 74 22 je 4036b9 <_nl_find_domain+0x1e9> + 403697: 8b 55 08 mov 0x8(%rbp),%edx + 40369a: 85 d2 test %edx,%edx + 40369c: 0f 8e 7f 00 00 00 jle 403721 <_nl_find_domain+0x251> + 4036a2: 48 83 7d 10 00 cmpq $0x0,0x10(%rbp) + 4036a7: 74 35 je 4036de <_nl_find_domain+0x20e> + 4036a9: 48 83 7c 24 08 00 cmpq $0x0,0x8(%rsp) + 4036af: 74 08 je 4036b9 <_nl_find_domain+0x1e9> + 4036b1: 4c 89 ef mov %r13,%rdi + 4036b4: e8 f7 a6 01 00 callq 41ddb0 <__cfree> + 4036b9: 83 e3 01 and $0x1,%ebx + 4036bc: 48 89 e8 mov %rbp,%rax + 4036bf: 0f 84 99 fe ff ff je 40355e <_nl_find_domain+0x8e> + 4036c5: 48 8b 7c 24 38 mov 0x38(%rsp),%rdi + 4036ca: 48 89 6c 24 08 mov %rbp,0x8(%rsp) + 4036cf: e8 dc a6 01 00 callq 41ddb0 <__cfree> + 4036d4: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4036d9: e9 80 fe ff ff jmpq 40355e <_nl_find_domain+0x8e> + 4036de: 48 8b 7d 20 mov 0x20(%rbp),%rdi + 4036e2: 48 85 ff test %rdi,%rdi + 4036e5: 74 c2 je 4036a9 <_nl_find_domain+0x1d9> + 4036e7: 45 31 f6 xor %r14d,%r14d + 4036ea: eb 1c jmp 403708 <_nl_find_domain+0x238> + 4036ec: 0f 1f 40 00 nopl 0x0(%rax) + 4036f0: 48 83 7f 10 00 cmpq $0x0,0x10(%rdi) + 4036f5: 75 b2 jne 4036a9 <_nl_find_domain+0x1d9> + 4036f7: 41 83 c6 01 add $0x1,%r14d + 4036fb: 49 63 c6 movslq %r14d,%rax + 4036fe: 48 8b 7c c5 20 mov 0x20(%rbp,%rax,8),%rdi + 403703: 48 85 ff test %rdi,%rdi + 403706: 74 a1 je 4036a9 <_nl_find_domain+0x1d9> + 403708: 8b 47 08 mov 0x8(%rdi),%eax + 40370b: 85 c0 test %eax,%eax + 40370d: 7f e1 jg 4036f0 <_nl_find_domain+0x220> + 40370f: 4c 89 e6 mov %r12,%rsi + 403712: e8 29 00 00 00 callq 403740 <_nl_load_domain> + 403717: 49 63 c6 movslq %r14d,%rax + 40371a: 48 8b 7c c5 20 mov 0x20(%rbp,%rax,8),%rdi + 40371f: eb cf jmp 4036f0 <_nl_find_domain+0x220> + 403721: 4c 89 e6 mov %r12,%rsi + 403724: 48 89 ef mov %rbp,%rdi + 403727: e8 14 00 00 00 callq 403740 <_nl_load_domain> + 40372c: e9 71 ff ff ff jmpq 4036a2 <_nl_find_domain+0x1d2> + 403731: 31 c0 xor %eax,%eax + 403733: e9 26 fe ff ff jmpq 40355e <_nl_find_domain+0x8e> + 403738: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40373f: 00 + +0000000000403740 <_nl_load_domain>: + 403740: 55 push %rbp + 403741: 49 89 f0 mov %rsi,%r8 + 403744: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx + 40374b: 00 00 + 40374d: 48 89 e5 mov %rsp,%rbp + 403750: 41 57 push %r15 + 403752: 41 56 push %r14 + 403754: 41 55 push %r13 + 403756: 41 54 push %r12 + 403758: 53 push %rbx + 403759: 48 89 fb mov %rdi,%rbx + 40375c: 48 81 ec 38 01 00 00 sub $0x138,%rsp + 403763: 48 3b 15 7e 89 2c 00 cmp 0x2c897e(%rip),%rdx # 6cc0e8 + 40376a: 74 46 je 4037b2 <_nl_load_domain+0x72> + 40376c: be 01 00 00 00 mov $0x1,%esi + 403771: 31 c0 xor %eax,%eax + 403773: 83 3d 42 9a 2c 00 00 cmpl $0x0,0x2c9a42(%rip) # 6cd1bc <__libc_multiple_threads> + 40377a: 74 0c je 403788 <_nl_load_domain+0x48> + 40377c: f0 0f b1 35 5c 89 2c lock cmpxchg %esi,0x2c895c(%rip) # 6cc0e0 + 403783: 00 + 403784: 75 0b jne 403791 <_nl_load_domain+0x51> + 403786: eb 23 jmp 4037ab <_nl_load_domain+0x6b> + 403788: 0f b1 35 51 89 2c 00 cmpxchg %esi,0x2c8951(%rip) # 6cc0e0 + 40378f: 74 1a je 4037ab <_nl_load_domain+0x6b> + 403791: 48 8d 3d 48 89 2c 00 lea 0x2c8948(%rip),%rdi # 6cc0e0 + 403798: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 40379f: e8 2c ee 03 00 callq 4425d0 <__lll_lock_wait_private> + 4037a4: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4037ab: 48 89 15 36 89 2c 00 mov %rdx,0x2c8936(%rip) # 6cc0e8 + 4037b2: 8b 05 2c 89 2c 00 mov 0x2c892c(%rip),%eax # 6cc0e4 + 4037b8: 44 8b 63 08 mov 0x8(%rbx),%r12d + 4037bc: 83 c0 01 add $0x1,%eax + 4037bf: 45 85 e4 test %r12d,%r12d + 4037c2: 89 05 1c 89 2c 00 mov %eax,0x2c891c(%rip) # 6cc0e4 + 4037c8: 75 4b jne 403815 <_nl_load_domain+0xd5> + 4037ca: 48 8b 3b mov (%rbx),%rdi + 4037cd: 4d 89 c6 mov %r8,%r14 + 4037d0: c7 43 08 ff ff ff ff movl $0xffffffff,0x8(%rbx) + 4037d7: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) + 4037de: 00 + 4037df: 48 85 ff test %rdi,%rdi + 4037e2: 74 2a je 40380e <_nl_load_domain+0xce> + 4037e4: b9 02 00 00 00 mov $0x2,%ecx + 4037e9: 31 f6 xor %esi,%esi + 4037eb: 89 c8 mov %ecx,%eax + 4037ed: 0f 05 syscall + 4037ef: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 4037f5: 49 89 c4 mov %rax,%r12 + 4037f8: 76 7e jbe 403878 <_nl_load_domain+0x138> + 4037fa: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 403801: 41 f7 dc neg %r12d + 403804: 64 44 89 20 mov %r12d,%fs:(%rax) + 403808: 8b 05 d6 88 2c 00 mov 0x2c88d6(%rip),%eax # 6cc0e4 + 40380e: c7 43 08 01 00 00 00 movl $0x1,0x8(%rbx) + 403815: 83 e8 01 sub $0x1,%eax + 403818: 85 c0 test %eax,%eax + 40381a: 89 05 c4 88 2c 00 mov %eax,0x2c88c4(%rip) # 6cc0e4 + 403820: 75 41 jne 403863 <_nl_load_domain+0x123> + 403822: 48 c7 05 bb 88 2c 00 movq $0x0,0x2c88bb(%rip) # 6cc0e8 + 403829: 00 00 00 00 + 40382d: 83 3d 88 99 2c 00 00 cmpl $0x0,0x2c9988(%rip) # 6cd1bc <__libc_multiple_threads> + 403834: 74 0b je 403841 <_nl_load_domain+0x101> + 403836: f0 ff 0d a3 88 2c 00 lock decl 0x2c88a3(%rip) # 6cc0e0 + 40383d: 75 0a jne 403849 <_nl_load_domain+0x109> + 40383f: eb 22 jmp 403863 <_nl_load_domain+0x123> + 403841: ff 0d 99 88 2c 00 decl 0x2c8899(%rip) # 6cc0e0 + 403847: 74 1a je 403863 <_nl_load_domain+0x123> + 403849: 48 8d 3d 90 88 2c 00 lea 0x2c8890(%rip),%rdi # 6cc0e0 + 403850: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 403857: e8 a4 ed 03 00 callq 442600 <__lll_unlock_wake_private> + 40385c: 48 81 c4 80 00 00 00 add $0x80,%rsp + 403863: 48 8d 65 d8 lea -0x28(%rbp),%rsp + 403867: 5b pop %rbx + 403868: 41 5c pop %r12 + 40386a: 41 5d pop %r13 + 40386c: 41 5e pop %r14 + 40386e: 41 5f pop %r15 + 403870: 5d pop %rbp + 403871: c3 retq + 403872: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 403878: 83 f8 ff cmp $0xffffffff,%eax + 40387b: 74 24 je 4038a1 <_nl_load_domain+0x161> + 40387d: 48 8d 95 40 ff ff ff lea -0xc0(%rbp),%rdx + 403884: 89 c6 mov %eax,%esi + 403886: bf 01 00 00 00 mov $0x1,%edi + 40388b: e8 40 b8 03 00 callq 43f0d0 <__fxstat> + 403890: 85 c0 test %eax,%eax + 403892: 74 1c je 4038b0 <_nl_load_domain+0x170> + 403894: 4d 63 e4 movslq %r12d,%r12 + 403897: 4c 89 e7 mov %r12,%rdi + 40389a: b8 03 00 00 00 mov $0x3,%eax + 40389f: 0f 05 syscall + 4038a1: 8b 05 3d 88 2c 00 mov 0x2c883d(%rip),%eax # 6cc0e4 + 4038a7: e9 62 ff ff ff jmpq 40380e <_nl_load_domain+0xce> + 4038ac: 0f 1f 40 00 nopl 0x0(%rax) + 4038b0: 4c 8b ad 70 ff ff ff mov -0x90(%rbp),%r13 + 4038b7: 49 83 fd 2f cmp $0x2f,%r13 + 4038bb: 76 d7 jbe 403894 <_nl_load_domain+0x154> + 4038bd: 45 31 c9 xor %r9d,%r9d + 4038c0: 31 ff xor %edi,%edi + 4038c2: 45 89 e0 mov %r12d,%r8d + 4038c5: b9 02 00 00 00 mov $0x2,%ecx + 4038ca: ba 01 00 00 00 mov $0x1,%edx + 4038cf: 4c 89 ee mov %r13,%rsi + 4038d2: e8 19 c3 03 00 callq 43fbf0 <__mmap> + 4038d7: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 4038db: 49 89 c7 mov %rax,%r15 + 4038de: 0f 84 b1 01 00 00 je 403a95 <_nl_load_domain+0x355> + 4038e4: 49 63 fc movslq %r12d,%rdi + 4038e7: b8 03 00 00 00 mov $0x3,%eax + 4038ec: 0f 05 syscall + 4038ee: 41 8b 07 mov (%r15),%eax + 4038f1: 3d de 12 04 95 cmp $0x950412de,%eax + 4038f6: 0f 95 c2 setne %dl + 4038f9: 3d 95 04 12 de cmp $0xde120495,%eax + 4038fe: 88 95 20 ff ff ff mov %dl,-0xe0(%rbp) + 403904: 74 1a je 403920 <_nl_load_domain+0x1e0> + 403906: 84 d2 test %dl,%dl + 403908: 74 16 je 403920 <_nl_load_domain+0x1e0> + 40390a: 4c 89 ee mov %r13,%rsi + 40390d: 4c 89 ff mov %r15,%rdi + 403910: e8 9b c3 03 00 callq 43fcb0 <__munmap> + 403915: eb 8a jmp 4038a1 <_nl_load_domain+0x161> + 403917: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40391e: 00 00 + 403920: c7 85 1c ff ff ff 01 movl $0x1,-0xe4(%rbp) + 403927: 00 00 00 + 40392a: bf c8 00 00 00 mov $0xc8,%edi + 40392f: e8 dc a0 01 00 callq 41da10 <__libc_malloc> + 403934: 48 85 c0 test %rax,%rax + 403937: 48 89 85 28 ff ff ff mov %rax,-0xd8(%rbp) + 40393e: 0f 84 5d ff ff ff je 4038a1 <_nl_load_domain+0x161> + 403944: 0f b6 95 20 ff ff ff movzbl -0xe0(%rbp),%edx + 40394b: 8b 8d 1c ff ff ff mov -0xe4(%rbp),%ecx + 403951: 48 89 43 10 mov %rax,0x10(%rbx) + 403955: 4c 89 38 mov %r15,(%rax) + 403958: 4c 89 68 10 mov %r13,0x10(%rax) + 40395c: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) + 403963: 00 + 403964: 89 48 08 mov %ecx,0x8(%rax) + 403967: 84 d2 test %dl,%dl + 403969: 89 50 18 mov %edx,0x18(%rax) + 40396c: 41 8b 47 04 mov 0x4(%r15),%eax + 403970: 0f 84 bd 01 00 00 je 403b33 <_nl_load_domain+0x3f3> + 403976: 0f c8 bswap %eax + 403978: 3d ff ff 01 00 cmp $0x1ffff,%eax + 40397d: 0f 87 4b 02 00 00 ja 403bce <_nl_load_domain+0x48e> + 403983: 41 8b 4f 08 mov 0x8(%r15),%ecx + 403987: 48 8b b5 28 ff ff ff mov -0xd8(%rbp),%rsi + 40398e: 45 8b 57 14 mov 0x14(%r15),%r10d + 403992: 0f c9 bswap %ecx + 403994: 89 4e 28 mov %ecx,0x28(%rsi) + 403997: 41 8b 4f 0c mov 0xc(%r15),%ecx + 40399b: 41 0f ca bswap %r10d + 40399e: 0f c9 bswap %ecx + 4039a0: 89 c9 mov %ecx,%ecx + 4039a2: 4c 01 f9 add %r15,%rcx + 4039a5: 48 89 4e 30 mov %rcx,0x30(%rsi) + 4039a9: 41 8b 4f 10 mov 0x10(%r15),%ecx + 4039ad: 44 89 56 58 mov %r10d,0x58(%rsi) + 4039b1: 0f c9 bswap %ecx + 4039b3: 89 c9 mov %ecx,%ecx + 4039b5: 4c 01 f9 add %r15,%rcx + 4039b8: 41 83 fa 02 cmp $0x2,%r10d + 4039bc: 48 89 4e 38 mov %rcx,0x38(%rsi) + 4039c0: 0f 86 b3 01 00 00 jbe 403b79 <_nl_load_domain+0x439> + 4039c6: 41 8b 4f 18 mov 0x18(%r15),%ecx + 4039ca: 0f c9 bswap %ecx + 4039cc: 89 c9 mov %ecx,%ecx + 4039ce: 4c 01 f9 add %r15,%rcx + 4039d1: 66 85 c0 test %ax,%ax + 4039d4: 89 56 68 mov %edx,0x68(%rsi) + 4039d7: 48 89 4e 60 mov %rcx,0x60(%rsi) + 4039db: 74 2a je 403a07 <_nl_load_domain+0x2c7> + 4039dd: 48 85 c9 test %rcx,%rcx + 4039e0: 0f 84 e8 01 00 00 je 403bce <_nl_load_domain+0x48e> + 4039e6: 80 bd 20 ff ff ff 00 cmpb $0x0,-0xe0(%rbp) + 4039ed: 41 8b 47 24 mov 0x24(%r15),%eax + 4039f1: 0f 84 02 02 00 00 je 403bf9 <_nl_load_domain+0x4b9> + 4039f7: 0f c8 bswap %eax + 4039f9: 85 c0 test %eax,%eax + 4039fb: 89 85 e0 fe ff ff mov %eax,-0x120(%rbp) + 403a01: 0f 85 9b 03 00 00 jne 403da2 <_nl_load_domain+0x662> + 403a07: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax + 403a0e: c7 40 40 00 00 00 00 movl $0x0,0x40(%rax) + 403a15: 48 c7 40 48 00 00 00 movq $0x0,0x48(%rax) + 403a1c: 00 + 403a1d: 48 89 c1 mov %rax,%rcx + 403a20: 48 c7 40 50 00 00 00 movq $0x0,0x50(%rax) + 403a27: 00 + 403a28: b8 00 00 00 00 mov $0x0,%eax + 403a2d: 48 c7 41 70 00 00 00 movq $0x0,0x70(%rcx) + 403a34: 00 + 403a35: 48 c7 41 78 00 00 00 movq $0x0,0x78(%rcx) + 403a3c: 00 + 403a3d: 48 85 c0 test %rax,%rax + 403a40: 74 0e je 403a50 <_nl_load_domain+0x310> + 403a42: 48 8d b9 80 00 00 00 lea 0x80(%rcx),%rdi + 403a49: 31 f6 xor %esi,%esi + 403a4b: e8 b0 c5 bf ff callq 0 <_nl_current_LC_CTYPE> + 403a50: 4c 8d 85 30 ff ff ff lea -0xd0(%rbp),%r8 + 403a57: 31 c9 xor %ecx,%ecx + 403a59: ba 25 67 4b 00 mov $0x4b6725,%edx + 403a5e: 4c 89 f6 mov %r14,%rsi + 403a61: 48 89 df mov %rbx,%rdi + 403a64: e8 e7 e4 ff ff callq 401f50 <_nl_find_msg> + 403a69: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 403a6d: 0f 84 5f 01 00 00 je 403bd2 <_nl_load_domain+0x492> + 403a73: 48 8b 8d 28 ff ff ff mov -0xd8(%rbp),%rcx + 403a7a: 48 89 c7 mov %rax,%rdi + 403a7d: 48 8d 91 c0 00 00 00 lea 0xc0(%rcx),%rdx + 403a84: 48 8d b1 b8 00 00 00 lea 0xb8(%rcx),%rsi + 403a8b: e8 c0 9f 00 00 callq 40da50 <__gettext_extract_plural> + 403a90: e9 0c fe ff ff jmpq 4038a1 <_nl_load_domain+0x161> + 403a95: 4c 89 ef mov %r13,%rdi + 403a98: e8 73 9f 01 00 callq 41da10 <__libc_malloc> + 403a9d: 48 85 c0 test %rax,%rax + 403aa0: 49 89 c7 mov %rax,%r15 + 403aa3: 0f 84 eb fd ff ff je 403894 <_nl_load_domain+0x154> + 403aa9: 4d 63 e4 movslq %r12d,%r12 + 403aac: 49 89 c1 mov %rax,%r9 + 403aaf: 4d 89 e8 mov %r13,%r8 + 403ab2: 45 31 d2 xor %r10d,%r10d + 403ab5: 4c 89 c2 mov %r8,%rdx + 403ab8: 4c 89 ce mov %r9,%rsi + 403abb: 4c 89 e7 mov %r12,%rdi + 403abe: 44 89 d0 mov %r10d,%eax + 403ac1: 0f 05 syscall + 403ac3: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 403ac9: 76 57 jbe 403b22 <_nl_load_domain+0x3e2> + 403acb: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 403ad2: f7 d8 neg %eax + 403ad4: 83 f8 04 cmp $0x4,%eax + 403ad7: 64 89 02 mov %eax,%fs:(%rdx) + 403ada: 0f 85 b7 fd ff ff jne 403897 <_nl_load_domain+0x157> + 403ae0: 4d 85 c0 test %r8,%r8 + 403ae3: 75 d0 jne 403ab5 <_nl_load_domain+0x375> + 403ae5: 4c 89 e7 mov %r12,%rdi + 403ae8: b8 03 00 00 00 mov $0x3,%eax + 403aed: 0f 05 syscall + 403aef: 41 8b 17 mov (%r15),%edx + 403af2: 81 fa de 12 04 95 cmp $0x950412de,%edx + 403af8: 0f 95 c0 setne %al + 403afb: 81 fa 95 04 12 de cmp $0xde120495,%edx + 403b01: 88 85 20 ff ff ff mov %al,-0xe0(%rbp) + 403b07: 0f 84 e5 0a 00 00 je 4045f2 <_nl_load_domain+0xeb2> + 403b0d: 84 c0 test %al,%al + 403b0f: 0f 84 dd 0a 00 00 je 4045f2 <_nl_load_domain+0xeb2> + 403b15: 4c 89 ff mov %r15,%rdi + 403b18: e8 93 a2 01 00 callq 41ddb0 <__cfree> + 403b1d: e9 7f fd ff ff jmpq 4038a1 <_nl_load_domain+0x161> + 403b22: 48 85 c0 test %rax,%rax + 403b25: 0f 8e 6c fd ff ff jle 403897 <_nl_load_domain+0x157> + 403b2b: 49 01 c1 add %rax,%r9 + 403b2e: 49 29 c0 sub %rax,%r8 + 403b31: eb ad jmp 403ae0 <_nl_load_domain+0x3a0> + 403b33: 3d ff ff 01 00 cmp $0x1ffff,%eax + 403b38: 0f 87 90 00 00 00 ja 403bce <_nl_load_domain+0x48e> + 403b3e: 41 8b 4f 08 mov 0x8(%r15),%ecx + 403b42: 48 8b b5 28 ff ff ff mov -0xd8(%rbp),%rsi + 403b49: 45 8b 57 14 mov 0x14(%r15),%r10d + 403b4d: 89 4e 28 mov %ecx,0x28(%rsi) + 403b50: 41 8b 4f 0c mov 0xc(%r15),%ecx + 403b54: 4c 01 f9 add %r15,%rcx + 403b57: 48 89 4e 30 mov %rcx,0x30(%rsi) + 403b5b: 41 8b 4f 10 mov 0x10(%r15),%ecx + 403b5f: 44 89 56 58 mov %r10d,0x58(%rsi) + 403b63: 4c 01 f9 add %r15,%rcx + 403b66: 41 83 fa 02 cmp $0x2,%r10d + 403b6a: 48 89 4e 38 mov %rcx,0x38(%rsi) + 403b6e: 76 09 jbe 403b79 <_nl_load_domain+0x439> + 403b70: 41 8b 4f 18 mov 0x18(%r15),%ecx + 403b74: e9 55 fe ff ff jmpq 4039ce <_nl_load_domain+0x28e> + 403b79: 66 85 c0 test %ax,%ax + 403b7c: 48 c7 46 60 00 00 00 movq $0x0,0x60(%rsi) + 403b83: 00 + 403b84: 89 56 68 mov %edx,0x68(%rsi) + 403b87: 0f 84 7a fe ff ff je 403a07 <_nl_load_domain+0x2c7> + 403b8d: 48 8b 7e 20 mov 0x20(%rsi),%rdi + 403b91: e8 1a a2 01 00 callq 41ddb0 <__cfree> + 403b96: 8b 85 1c ff ff ff mov -0xe4(%rbp),%eax + 403b9c: 85 c0 test %eax,%eax + 403b9e: 74 24 je 403bc4 <_nl_load_domain+0x484> + 403ba0: 4c 89 ee mov %r13,%rsi + 403ba3: 4c 89 ff mov %r15,%rdi + 403ba6: e8 05 c1 03 00 callq 43fcb0 <__munmap> + 403bab: 48 8b bd 28 ff ff ff mov -0xd8(%rbp),%rdi + 403bb2: e8 f9 a1 01 00 callq 41ddb0 <__cfree> + 403bb7: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) + 403bbe: 00 + 403bbf: e9 dd fc ff ff jmpq 4038a1 <_nl_load_domain+0x161> + 403bc4: 4c 89 ff mov %r15,%rdi + 403bc7: e8 e4 a1 01 00 callq 41ddb0 <__cfree> + 403bcc: eb dd jmp 403bab <_nl_load_domain+0x46b> + 403bce: 31 ff xor %edi,%edi + 403bd0: eb bf jmp 403b91 <_nl_load_domain+0x451> + 403bd2: b8 00 00 00 00 mov $0x0,%eax + 403bd7: 48 85 c0 test %rax,%rax + 403bda: 0f 84 e6 05 00 00 je 4041c6 <_nl_load_domain+0xa86> + 403be0: 4c 8b b5 28 ff ff ff mov -0xd8(%rbp),%r14 + 403be7: 49 8d be 80 00 00 00 lea 0x80(%r14),%rdi + 403bee: e8 0d c4 bf ff callq 0 <_nl_current_LC_CTYPE> + 403bf3: 49 8b 7e 20 mov 0x20(%r14),%rdi + 403bf7: eb 98 jmp 403b91 <_nl_load_domain+0x451> + 403bf9: 85 c0 test %eax,%eax + 403bfb: 89 85 e0 fe ff ff mov %eax,-0x120(%rbp) + 403c01: 0f 84 00 fe ff ff je 403a07 <_nl_load_domain+0x2c7> + 403c07: 41 8b 47 1c mov 0x1c(%r15),%eax + 403c0b: 41 8b 77 20 mov 0x20(%r15),%esi + 403c0f: 89 c1 mov %eax,%ecx + 403c11: 89 85 e8 fe ff ff mov %eax,-0x118(%rbp) + 403c17: 48 8d 04 c5 1e 00 00 lea 0x1e(,%rax,8),%rax + 403c1e: 00 + 403c1f: 4c 01 fe add %r15,%rsi + 403c22: 48 c1 e8 04 shr $0x4,%rax + 403c26: 48 c1 e0 04 shl $0x4,%rax + 403c2a: 48 29 c4 sub %rax,%rsp + 403c2d: 48 8d 44 24 0f lea 0xf(%rsp),%rax + 403c32: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 403c36: 85 c9 test %ecx,%ecx + 403c38: 48 89 85 00 ff ff ff mov %rax,-0x100(%rbp) + 403c3f: 0f 84 b3 05 00 00 je 4041f8 <_nl_load_domain+0xab8> + 403c45: 44 89 95 f8 fe ff ff mov %r10d,-0x108(%rbp) + 403c4c: 48 89 9d 08 ff ff ff mov %rbx,-0xf8(%rbp) + 403c53: 48 83 c6 04 add $0x4,%rsi + 403c57: 45 31 c0 xor %r8d,%r8d + 403c5a: 31 ff xor %edi,%edi + 403c5c: 41 bb cd 11 4a 00 mov $0x4a11cd,%r11d + 403c62: 49 bc 01 10 82 20 01 movabs $0x120821001,%r12 + 403c69: 00 00 00 + 403c6c: 44 8b 95 e8 fe ff ff mov -0x118(%rbp),%r10d + 403c73: 44 0f b6 8d 20 ff ff movzbl -0xe0(%rbp),%r9d + 403c7a: ff + 403c7b: 4c 89 ad 10 ff ff ff mov %r13,-0xf0(%rbp) + 403c82: 48 8b 9d 00 ff ff ff mov -0x100(%rbp),%rbx + 403c89: eb 57 jmp 403ce2 <_nl_load_domain+0x5a2> + 403c8b: 8b 16 mov (%rsi),%edx + 403c8d: 8b 46 fc mov -0x4(%rsi),%eax + 403c90: 0f ca bswap %edx + 403c92: 0f c8 bswap %eax + 403c94: 89 d2 mov %edx,%edx + 403c96: 4c 01 fa add %r15,%rdx + 403c99: 85 c0 test %eax,%eax + 403c9b: 0f 84 e3 00 00 00 je 403d84 <_nl_load_domain+0x644> + 403ca1: 83 e8 01 sub $0x1,%eax + 403ca4: 80 3c 02 00 cmpb $0x0,(%rdx,%rax,1) + 403ca8: 0f 85 d6 00 00 00 jne 403d84 <_nl_load_domain+0x644> + 403cae: 0f b6 02 movzbl (%rdx),%eax + 403cb1: 3c 50 cmp $0x50,%al + 403cb3: 74 3c je 403cf1 <_nl_load_domain+0x5b1> + 403cb5: 3c 49 cmp $0x49,%al + 403cb7: 0f 85 7f 08 00 00 jne 40453c <_nl_load_domain+0xdfc> + 403cbd: 80 7a 01 00 cmpb $0x0,0x1(%rdx) + 403cc1: b8 00 00 00 00 mov $0x0,%eax + 403cc6: 49 0f 44 c3 cmove %r11,%rax + 403cca: 83 c7 01 add $0x1,%edi + 403ccd: 4a 89 04 03 mov %rax,(%rbx,%r8,1) + 403cd1: 48 83 c6 08 add $0x8,%rsi + 403cd5: 49 83 c0 08 add $0x8,%r8 + 403cd9: 41 39 fa cmp %edi,%r10d + 403cdc: 0f 86 f4 04 00 00 jbe 4041d6 <_nl_load_domain+0xa96> + 403ce2: 45 84 c9 test %r9b,%r9b + 403ce5: 75 a4 jne 403c8b <_nl_load_domain+0x54b> + 403ce7: 8b 16 mov (%rsi),%edx + 403ce9: 8b 46 fc mov -0x4(%rsi),%eax + 403cec: 4c 01 fa add %r15,%rdx + 403cef: eb a8 jmp 403c99 <_nl_load_domain+0x559> + 403cf1: 31 c0 xor %eax,%eax + 403cf3: 80 7a 01 52 cmpb $0x52,0x1(%rdx) + 403cf7: 75 d1 jne 403cca <_nl_load_domain+0x58a> + 403cf9: 80 7a 02 49 cmpb $0x49,0x2(%rdx) + 403cfd: 75 cb jne 403cca <_nl_load_domain+0x58a> + 403cff: 0f b6 4a 03 movzbl 0x3(%rdx),%ecx + 403d03: 44 8d 69 a8 lea -0x58(%rcx),%r13d + 403d07: 41 80 fd 20 cmp $0x20,%r13b + 403d0b: 77 bd ja 403cca <_nl_load_domain+0x58a> + 403d0d: 4d 0f a3 ec bt %r13,%r12 + 403d11: 73 b7 jae 403cca <_nl_load_domain+0x58a> + 403d13: 44 0f b6 6a 04 movzbl 0x4(%rdx),%r13d + 403d18: 41 80 fd 38 cmp $0x38,%r13b + 403d1c: 0f 84 b1 05 00 00 je 4042d3 <_nl_load_domain+0xb93> + 403d22: 41 80 fd 31 cmp $0x31,%r13b + 403d26: 0f 84 53 05 00 00 je 40427f <_nl_load_domain+0xb3f> + 403d2c: 31 c0 xor %eax,%eax + 403d2e: 41 80 fd 33 cmp $0x33,%r13b + 403d32: 0f 85 11 09 00 00 jne 404649 <_nl_load_domain+0xf09> + 403d38: 80 7a 05 32 cmpb $0x32,0x5(%rdx) + 403d3c: 75 8c jne 403cca <_nl_load_domain+0x58a> + 403d3e: 80 7a 06 00 cmpb $0x0,0x6(%rdx) + 403d42: 75 86 jne 403cca <_nl_load_domain+0x58a> + 403d44: 80 f9 64 cmp $0x64,%cl + 403d47: 0f 84 f2 08 00 00 je 40463f <_nl_load_domain+0xeff> + 403d4d: 80 f9 69 cmp $0x69,%cl + 403d50: 0f 84 df 08 00 00 je 404635 <_nl_load_domain+0xef5> + 403d56: 80 f9 6f cmp $0x6f,%cl + 403d59: 0f 84 cc 08 00 00 je 40462b <_nl_load_domain+0xeeb> + 403d5f: 80 f9 75 cmp $0x75,%cl + 403d62: 0f 84 b9 08 00 00 je 404621 <_nl_load_domain+0xee1> + 403d68: 80 f9 78 cmp $0x78,%cl + 403d6b: 0f 84 a6 08 00 00 je 404617 <_nl_load_domain+0xed7> + 403d71: 80 f9 58 cmp $0x58,%cl + 403d74: 0f 85 bd 07 00 00 jne 404537 <_nl_load_domain+0xdf7> + 403d7a: b8 a5 5a 4b 00 mov $0x4b5aa5,%eax + 403d7f: e9 46 ff ff ff jmpq 403cca <_nl_load_domain+0x58a> + 403d84: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax + 403d8b: 4c 8b ad 10 ff ff ff mov -0xf0(%rbp),%r13 + 403d92: 48 8b 9d 08 ff ff ff mov -0xf8(%rbp),%rbx + 403d99: 48 8b 78 20 mov 0x20(%rax),%rdi + 403d9d: e9 ef fd ff ff jmpq 403b91 <_nl_load_domain+0x451> + 403da2: 41 8b 47 1c mov 0x1c(%r15),%eax + 403da6: 41 8b 77 20 mov 0x20(%r15),%esi + 403daa: 0f c8 bswap %eax + 403dac: 0f ce bswap %esi + 403dae: 89 c1 mov %eax,%ecx + 403db0: 89 85 e8 fe ff ff mov %eax,-0x118(%rbp) + 403db6: 89 c0 mov %eax,%eax + 403db8: 48 8d 04 c5 1e 00 00 lea 0x1e(,%rax,8),%rax + 403dbf: 00 + 403dc0: 89 f6 mov %esi,%esi + 403dc2: 4c 01 fe add %r15,%rsi + 403dc5: 48 c1 e8 04 shr $0x4,%rax + 403dc9: 48 c1 e0 04 shl $0x4,%rax + 403dcd: 48 29 c4 sub %rax,%rsp + 403dd0: 48 8d 44 24 0f lea 0xf(%rsp),%rax + 403dd5: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 403dd9: 85 c9 test %ecx,%ecx + 403ddb: 48 89 85 00 ff ff ff mov %rax,-0x100(%rbp) + 403de2: 0f 85 5d fe ff ff jne 403c45 <_nl_load_domain+0x505> + 403de8: 41 8b 47 28 mov 0x28(%r15),%eax + 403dec: 0f c8 bswap %eax + 403dee: 89 c0 mov %eax,%eax + 403df0: 4c 01 f8 add %r15,%rax + 403df3: 48 89 85 f0 fe ff ff mov %rax,-0x110(%rbp) + 403dfa: 41 8b 47 2c mov 0x2c(%r15),%eax + 403dfe: 0f c8 bswap %eax + 403e00: 89 c0 mov %eax,%eax + 403e02: 4c 01 f8 add %r15,%rax + 403e05: 45 89 d2 mov %r10d,%r10d + 403e08: 4c 89 b5 b0 fe ff ff mov %r14,-0x150(%rbp) + 403e0f: 48 89 85 d8 fe ff ff mov %rax,-0x128(%rbp) + 403e16: 4c 8b a5 00 ff ff ff mov -0x100(%rbp),%r12 + 403e1d: 4a 8d 04 95 00 00 00 lea 0x0(,%r10,4),%rax + 403e24: 00 + 403e25: 44 8b b5 e8 fe ff ff mov -0x118(%rbp),%r14d + 403e2c: 48 c7 85 08 ff ff ff movq $0x0,-0xf8(%rbp) + 403e33: 00 00 00 00 + 403e37: 48 89 85 b8 fe ff ff mov %rax,-0x148(%rbp) + 403e3e: 48 89 85 c0 fe ff ff mov %rax,-0x140(%rbp) + 403e45: c7 85 10 ff ff ff 00 movl $0x0,-0xf0(%rbp) + 403e4c: 00 00 00 + 403e4f: 4c 89 ad d0 fe ff ff mov %r13,-0x130(%rbp) + 403e56: 4c 89 bd f8 fe ff ff mov %r15,-0x108(%rbp) + 403e5d: 48 89 9d c8 fe ff ff mov %rbx,-0x138(%rbp) + 403e64: 45 31 ed xor %r13d,%r13d + 403e67: 80 bd 20 ff ff ff 00 cmpb $0x0,-0xe0(%rbp) + 403e6e: 0f 84 ce 02 00 00 je 404142 <_nl_load_domain+0xa02> + 403e74: 4d 85 ed test %r13,%r13 + 403e77: 0f 84 5f 07 00 00 je 4045dc <_nl_load_domain+0xe9c> + 403e7d: 48 8b 85 d8 fe ff ff mov -0x128(%rbp),%rax + 403e84: 48 8b 8d 08 ff ff ff mov -0xf8(%rbp),%rcx + 403e8b: 8b 04 88 mov (%rax,%rcx,4),%eax + 403e8e: 0f c8 bswap %eax + 403e90: 89 c2 mov %eax,%edx + 403e92: 48 03 95 f8 fe ff ff add -0x108(%rbp),%rdx + 403e99: 83 7a 08 ff cmpl $0xffffffff,0x8(%rdx) + 403e9d: 0f 84 07 03 00 00 je 4041aa <_nl_load_domain+0xa6a> + 403ea3: 4c 8d 7a 04 lea 0x4(%rdx),%r15 + 403ea7: 31 db xor %ebx,%ebx + 403ea9: eb 25 jmp 403ed0 <_nl_load_domain+0x790> + 403eab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 403eb0: 44 39 f0 cmp %r14d,%eax + 403eb3: 0f 83 f8 02 00 00 jae 4041b1 <_nl_load_domain+0xa71> + 403eb9: 89 c0 mov %eax,%eax + 403ebb: 49 8b 3c c4 mov (%r12,%rax,8),%rdi + 403ebf: 48 85 ff test %rdi,%rdi + 403ec2: 74 53 je 403f17 <_nl_load_domain+0x7d7> + 403ec4: e8 87 f7 01 00 callq 423650 + 403ec9: 49 83 c7 08 add $0x8,%r15 + 403ecd: 48 01 c3 add %rax,%rbx + 403ed0: 41 8b 07 mov (%r15),%eax + 403ed3: 0f c8 bswap %eax + 403ed5: 89 c0 mov %eax,%eax + 403ed7: 48 01 c3 add %rax,%rbx + 403eda: 41 8b 47 04 mov 0x4(%r15),%eax + 403ede: 0f c8 bswap %eax + 403ee0: 83 f8 ff cmp $0xffffffff,%eax + 403ee3: 75 cb jne 403eb0 <_nl_load_domain+0x770> + 403ee5: 4a 89 9c ed 30 ff ff mov %rbx,-0xd0(%rbp,%r13,8) + 403eec: ff + 403eed: 49 83 c5 01 add $0x1,%r13 + 403ef1: 49 83 fd 02 cmp $0x2,%r13 + 403ef5: 0f 85 6c ff ff ff jne 403e67 <_nl_load_domain+0x727> + 403efb: 48 8b 85 38 ff ff ff mov -0xc8(%rbp),%rax + 403f02: 48 03 85 30 ff ff ff add -0xd0(%rbp),%rax + 403f09: 83 85 10 ff ff ff 01 addl $0x1,-0xf0(%rbp) + 403f10: 48 01 85 c0 fe ff ff add %rax,-0x140(%rbp) + 403f17: 48 83 85 08 ff ff ff addq $0x1,-0xf8(%rbp) + 403f1e: 01 + 403f1f: 48 8b 85 08 ff ff ff mov -0xf8(%rbp),%rax + 403f26: 39 85 e0 fe ff ff cmp %eax,-0x120(%rbp) + 403f2c: 0f 87 32 ff ff ff ja 403e64 <_nl_load_domain+0x724> + 403f32: 83 bd 10 ff ff ff 00 cmpl $0x0,-0xf0(%rbp) + 403f39: 4c 8b ad d0 fe ff ff mov -0x130(%rbp),%r13 + 403f40: 4c 8b bd f8 fe ff ff mov -0x108(%rbp),%r15 + 403f47: 48 8b 9d c8 fe ff ff mov -0x138(%rbp),%rbx + 403f4e: 4c 8b b5 b0 fe ff ff mov -0x150(%rbp),%r14 + 403f55: 0f 84 ac fa ff ff je 403a07 <_nl_load_domain+0x2c7> + 403f5b: 8b 85 10 ff ff ff mov -0xf0(%rbp),%eax + 403f61: 8d 3c 00 lea (%rax,%rax,1),%edi + 403f64: 48 c1 e7 04 shl $0x4,%rdi + 403f68: 48 03 bd c0 fe ff ff add -0x140(%rbp),%rdi + 403f6f: e8 9c 9a 01 00 callq 41da10 <__libc_malloc> + 403f74: 48 85 c0 test %rax,%rax + 403f77: 48 89 85 20 ff ff ff mov %rax,-0xe0(%rbp) + 403f7e: 0f 84 42 02 00 00 je 4041c6 <_nl_load_domain+0xa86> + 403f84: 8b 85 10 ff ff ff mov -0xf0(%rbp),%eax + 403f8a: 48 8b 8d 20 ff ff ff mov -0xe0(%rbp),%rcx + 403f91: 48 8b 95 28 ff ff ff mov -0xd8(%rbp),%rdx + 403f98: 4c 8b 8d b8 fe ff ff mov -0x148(%rbp),%r9 + 403f9f: 4c 8b 95 f0 fe ff ff mov -0x110(%rbp),%r10 + 403fa6: c7 85 f8 fe ff ff 00 movl $0x0,-0x108(%rbp) + 403fad: 00 00 00 + 403fb0: 4c 89 ad c8 fe ff ff mov %r13,-0x138(%rbp) + 403fb7: 48 89 9d c0 fe ff ff mov %rbx,-0x140(%rbp) + 403fbe: 48 c1 e0 04 shl $0x4,%rax + 403fc2: 48 89 4a 20 mov %rcx,0x20(%rdx) + 403fc6: 4c 89 b5 b8 fe ff ff mov %r14,-0x148(%rbp) + 403fcd: 48 01 c1 add %rax,%rcx + 403fd0: 48 01 c8 add %rcx,%rax + 403fd3: 48 89 8d d0 fe ff ff mov %rcx,-0x130(%rbp) + 403fda: 48 89 85 e8 fe ff ff mov %rax,-0x118(%rbp) + 403fe1: 49 01 c1 add %rax,%r9 + 403fe4: 48 8b 85 d8 fe ff ff mov -0x128(%rbp),%rax + 403feb: 48 89 85 08 ff ff ff mov %rax,-0xf8(%rbp) + 403ff2: 8b 85 e0 fe ff ff mov -0x120(%rbp),%eax + 403ff8: 49 8d 04 82 lea (%r10,%rax,4),%rax + 403ffc: 48 89 85 d8 fe ff ff mov %rax,-0x128(%rbp) + 404003: 4c 3b 95 d8 fe ff ff cmp -0x128(%rbp),%r10 + 40400a: 0f 84 b7 03 00 00 je 4043c7 <_nl_load_domain+0xc87> + 404010: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax + 404017: 48 8b 8d 00 ff ff ff mov -0x100(%rbp),%rcx + 40401e: 31 d2 xor %edx,%edx + 404020: 48 8b b5 08 ff ff ff mov -0xf8(%rbp),%rsi + 404027: 44 8b 58 18 mov 0x18(%rax),%r11d + 40402b: 45 85 db test %r11d,%r11d + 40402e: 0f 84 5a 03 00 00 je 40438e <_nl_load_domain+0xc4e> + 404034: 85 d2 test %edx,%edx + 404036: 0f 84 db 04 00 00 je 404517 <_nl_load_domain+0xdd7> + 40403c: 8b 06 mov (%rsi),%eax + 40403e: 0f c8 bswap %eax + 404040: 89 c0 mov %eax,%eax + 404042: 4c 01 f8 add %r15,%rax + 404045: 83 78 08 ff cmpl $0xffffffff,0x8(%rax) + 404049: 0f 85 19 03 00 00 jne 404368 <_nl_load_domain+0xc28> + 40404f: 83 c2 01 add $0x1,%edx + 404052: 83 fa 02 cmp $0x2,%edx + 404055: 75 d4 jne 40402b <_nl_load_domain+0x8eb> + 404057: 8b 85 f8 fe ff ff mov -0x108(%rbp),%eax + 40405d: 48 8b 8d 20 ff ff ff mov -0xe0(%rbp),%rcx + 404064: 45 31 c0 xor %r8d,%r8d + 404067: 48 c1 e0 04 shl $0x4,%rax + 40406b: 48 01 c1 add %rax,%rcx + 40406e: 48 03 85 d0 fe ff ff add -0x130(%rbp),%rax + 404075: 48 89 8d e0 fe ff ff mov %rcx,-0x120(%rbp) + 40407c: 48 89 85 f0 fe ff ff mov %rax,-0x110(%rbp) + 404083: 45 85 db test %r11d,%r11d + 404086: 0f 84 a1 02 00 00 je 40432d <_nl_load_domain+0xbed> + 40408c: 45 85 c0 test %r8d,%r8d + 40408f: 0f 84 19 05 00 00 je 4045ae <_nl_load_domain+0xe6e> + 404095: 48 8b 85 08 ff ff ff mov -0xf8(%rbp),%rax + 40409c: 4c 8b b5 f0 fe ff ff mov -0x110(%rbp),%r14 + 4040a3: 8b 18 mov (%rax),%ebx + 4040a5: 0f cb bswap %ebx + 4040a7: 89 db mov %ebx,%ebx + 4040a9: 4c 01 fb add %r15,%rbx + 4040ac: 44 8b 23 mov (%rbx),%r12d + 4040af: 41 0f cc bswap %r12d + 4040b2: 45 89 e4 mov %r12d,%r12d + 4040b5: 4d 01 fc add %r15,%r12 + 4040b8: 83 7b 08 ff cmpl $0xffffffff,0x8(%rbx) + 4040bc: 0f 84 0e 05 00 00 je 4045d0 <_nl_load_domain+0xe90> + 4040c2: 4d 89 4e 08 mov %r9,0x8(%r14) + 4040c6: 4c 89 b5 b0 fe ff ff mov %r14,-0x150(%rbp) + 4040cd: 48 83 c3 04 add $0x4,%rbx + 4040d1: 44 89 85 18 ff ff ff mov %r8d,-0xe8(%rbp) + 4040d8: 4c 89 95 a8 fe ff ff mov %r10,-0x158(%rbp) + 4040df: 45 89 de mov %r11d,%r14d + 4040e2: eb 51 jmp 404135 <_nl_load_domain+0x9f5> + 4040e4: 8b 4b 04 mov 0x4(%rbx),%ecx + 4040e7: 41 0f cd bswap %r13d + 4040ea: 0f c9 bswap %ecx + 4040ec: 45 85 ed test %r13d,%r13d + 4040ef: 0f 85 1a 01 00 00 jne 40420f <_nl_load_domain+0xacf> + 4040f5: 83 f9 ff cmp $0xffffffff,%ecx + 4040f8: 0f 84 3c 01 00 00 je 40423a <_nl_load_domain+0xafa> + 4040fe: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax + 404105: 89 c9 mov %ecx,%ecx + 404107: 48 83 c3 08 add $0x8,%rbx + 40410b: 48 8b 34 c8 mov (%rax,%rcx,8),%rsi + 40410f: 31 c0 xor %eax,%eax + 404111: 48 83 c9 ff or $0xffffffffffffffff,%rcx + 404115: 48 89 f7 mov %rsi,%rdi + 404118: f2 ae repnz scas %es:(%rdi),%al + 40411a: 4c 89 cf mov %r9,%rdi + 40411d: 48 89 c8 mov %rcx,%rax + 404120: 48 f7 d0 not %rax + 404123: 4c 8d 68 ff lea -0x1(%rax),%r13 + 404127: 4c 89 ea mov %r13,%rdx + 40412a: e8 f1 7e 02 00 callq 42c020 + 40412f: 49 89 c1 mov %rax,%r9 + 404132: 4d 01 e9 add %r13,%r9 + 404135: 45 85 f6 test %r14d,%r14d + 404138: 44 8b 2b mov (%rbx),%r13d + 40413b: 75 a7 jne 4040e4 <_nl_load_domain+0x9a4> + 40413d: 8b 4b 04 mov 0x4(%rbx),%ecx + 404140: eb aa jmp 4040ec <_nl_load_domain+0x9ac> + 404142: 4d 85 ed test %r13,%r13 + 404145: 0f 84 b6 04 00 00 je 404601 <_nl_load_domain+0xec1> + 40414b: 48 8b 85 d8 fe ff ff mov -0x128(%rbp),%rax + 404152: 48 8b 8d 08 ff ff ff mov -0xf8(%rbp),%rcx + 404159: 8b 14 88 mov (%rax,%rcx,4),%edx + 40415c: 48 03 95 f8 fe ff ff add -0x108(%rbp),%rdx + 404163: 83 7a 08 ff cmpl $0xffffffff,0x8(%rdx) + 404167: 74 41 je 4041aa <_nl_load_domain+0xa6a> + 404169: 4c 8d 7a 04 lea 0x4(%rdx),%r15 + 40416d: 31 db xor %ebx,%ebx + 40416f: eb 25 jmp 404196 <_nl_load_domain+0xa56> + 404171: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 404178: 41 39 c6 cmp %eax,%r14d + 40417b: 76 34 jbe 4041b1 <_nl_load_domain+0xa71> + 40417d: 49 8b 3c c4 mov (%r12,%rax,8),%rdi + 404181: 48 85 ff test %rdi,%rdi + 404184: 0f 84 8d fd ff ff je 403f17 <_nl_load_domain+0x7d7> + 40418a: e8 c1 f4 01 00 callq 423650 + 40418f: 49 83 c7 08 add $0x8,%r15 + 404193: 48 01 c3 add %rax,%rbx + 404196: 41 8b 07 mov (%r15),%eax + 404199: 48 01 c3 add %rax,%rbx + 40419c: 41 8b 47 04 mov 0x4(%r15),%eax + 4041a0: 83 f8 ff cmp $0xffffffff,%eax + 4041a3: 75 d3 jne 404178 <_nl_load_domain+0xa38> + 4041a5: e9 3b fd ff ff jmpq 403ee5 <_nl_load_domain+0x7a5> + 4041aa: 31 db xor %ebx,%ebx + 4041ac: e9 34 fd ff ff jmpq 403ee5 <_nl_load_domain+0x7a5> + 4041b1: 4c 8b ad d0 fe ff ff mov -0x130(%rbp),%r13 + 4041b8: 4c 8b bd f8 fe ff ff mov -0x108(%rbp),%r15 + 4041bf: 48 8b 9d c8 fe ff ff mov -0x138(%rbp),%rbx + 4041c6: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax + 4041cd: 48 8b 78 20 mov 0x20(%rax),%rdi + 4041d1: e9 bb f9 ff ff jmpq 403b91 <_nl_load_domain+0x451> + 4041d6: 80 bd 20 ff ff ff 00 cmpb $0x0,-0xe0(%rbp) + 4041dd: 44 8b 95 f8 fe ff ff mov -0x108(%rbp),%r10d + 4041e4: 4c 8b ad 10 ff ff ff mov -0xf0(%rbp),%r13 + 4041eb: 48 8b 9d 08 ff ff ff mov -0xf8(%rbp),%rbx + 4041f2: 0f 85 f0 fb ff ff jne 403de8 <_nl_load_domain+0x6a8> + 4041f8: 41 8b 47 28 mov 0x28(%r15),%eax + 4041fc: 4c 01 f8 add %r15,%rax + 4041ff: 48 89 85 f0 fe ff ff mov %rax,-0x110(%rbp) + 404206: 41 8b 47 2c mov 0x2c(%r15),%eax + 40420a: e9 f3 fb ff ff jmpq 403e02 <_nl_load_domain+0x6c2> + 40420f: 45 89 ed mov %r13d,%r13d + 404212: 4c 89 e6 mov %r12,%rsi + 404215: 4c 89 cf mov %r9,%rdi + 404218: 4c 89 ea mov %r13,%rdx + 40421b: 89 8d a4 fe ff ff mov %ecx,-0x15c(%rbp) + 404221: 4d 01 ec add %r13,%r12 + 404224: e8 f7 7d 02 00 callq 42c020 + 404229: 49 89 c1 mov %rax,%r9 + 40422c: 8b 8d a4 fe ff ff mov -0x15c(%rbp),%ecx + 404232: 4d 01 e9 add %r13,%r9 + 404235: e9 bb fe ff ff jmpq 4040f5 <_nl_load_domain+0x9b5> + 40423a: 4c 8b b5 b0 fe ff ff mov -0x150(%rbp),%r14 + 404241: 4c 89 c8 mov %r9,%rax + 404244: 44 8b 85 18 ff ff ff mov -0xe8(%rbp),%r8d + 40424b: 4c 8b 95 a8 fe ff ff mov -0x158(%rbp),%r10 + 404252: 49 2b 46 08 sub 0x8(%r14),%rax + 404256: 49 89 06 mov %rax,(%r14) + 404259: 41 83 c0 01 add $0x1,%r8d + 40425d: 41 83 f8 02 cmp $0x2,%r8d + 404261: 0f 85 b6 00 00 00 jne 40431d <_nl_load_domain+0xbdd> + 404267: 83 85 f8 fe ff ff 01 addl $0x1,-0x108(%rbp) + 40426e: 49 83 c2 04 add $0x4,%r10 + 404272: 48 83 85 08 ff ff ff addq $0x4,-0xf8(%rbp) + 404279: 04 + 40427a: e9 84 fd ff ff jmpq 404003 <_nl_load_domain+0x8c3> + 40427f: 80 7a 05 36 cmpb $0x36,0x5(%rdx) + 404283: 0f 85 41 fa ff ff jne 403cca <_nl_load_domain+0x58a> + 404289: 80 7a 06 00 cmpb $0x0,0x6(%rdx) + 40428d: 0f 85 e2 02 00 00 jne 404575 <_nl_load_domain+0xe35> + 404293: 80 f9 64 cmp $0x64,%cl + 404296: 0f 84 cf 02 00 00 je 40456b <_nl_load_domain+0xe2b> + 40429c: 80 f9 69 cmp $0x69,%cl + 40429f: 0f 84 bc 02 00 00 je 404561 <_nl_load_domain+0xe21> + 4042a5: 80 f9 6f cmp $0x6f,%cl + 4042a8: 0f 84 a9 02 00 00 je 404557 <_nl_load_domain+0xe17> + 4042ae: 80 f9 75 cmp $0x75,%cl + 4042b1: 0f 84 96 02 00 00 je 40454d <_nl_load_domain+0xe0d> + 4042b7: 80 f9 78 cmp $0x78,%cl + 4042ba: 0f 84 83 02 00 00 je 404543 <_nl_load_domain+0xe03> + 4042c0: 80 f9 58 cmp $0x58,%cl + 4042c3: 0f 85 6e 02 00 00 jne 404537 <_nl_load_domain+0xdf7> + 4042c9: b8 a5 5a 4b 00 mov $0x4b5aa5,%eax + 4042ce: e9 f7 f9 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 4042d3: 80 7a 05 00 cmpb $0x0,0x5(%rdx) + 4042d7: 0f 85 ed f9 ff ff jne 403cca <_nl_load_domain+0x58a> + 4042dd: 80 f9 64 cmp $0x64,%cl + 4042e0: 0f 84 b4 02 00 00 je 40459a <_nl_load_domain+0xe5a> + 4042e6: 80 f9 69 cmp $0x69,%cl + 4042e9: 0f 84 a1 02 00 00 je 404590 <_nl_load_domain+0xe50> + 4042ef: 80 f9 6f cmp $0x6f,%cl + 4042f2: 0f 84 8e 02 00 00 je 404586 <_nl_load_domain+0xe46> + 4042f8: 80 f9 75 cmp $0x75,%cl + 4042fb: 0f 84 7b 02 00 00 je 40457c <_nl_load_domain+0xe3c> + 404301: 80 f9 78 cmp $0x78,%cl + 404304: 0f 84 9a 02 00 00 je 4045a4 <_nl_load_domain+0xe64> + 40430a: 80 f9 58 cmp $0x58,%cl + 40430d: 0f 85 24 02 00 00 jne 404537 <_nl_load_domain+0xdf7> + 404313: b8 a5 5a 4b 00 mov $0x4b5aa5,%eax + 404318: e9 ad f9 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 40431d: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax + 404324: 44 8b 58 18 mov 0x18(%rax),%r11d + 404328: e9 56 fd ff ff jmpq 404083 <_nl_load_domain+0x943> + 40432d: 45 85 c0 test %r8d,%r8d + 404330: 0f 84 e9 01 00 00 je 40451f <_nl_load_domain+0xddf> + 404336: 48 8b 85 08 ff ff ff mov -0xf8(%rbp),%rax + 40433d: 4c 8b b5 f0 fe ff ff mov -0x110(%rbp),%r14 + 404344: 8b 18 mov (%rax),%ebx + 404346: 4c 01 fb add %r15,%rbx + 404349: 44 8b 23 mov (%rbx),%r12d + 40434c: 4d 01 fc add %r15,%r12 + 40434f: 83 7b 08 ff cmpl $0xffffffff,0x8(%rbx) + 404353: 0f 85 69 fd ff ff jne 4040c2 <_nl_load_domain+0x982> + 404359: 8b 43 04 mov 0x4(%rbx),%eax + 40435c: 49 89 06 mov %rax,(%r14) + 40435f: 4d 89 66 08 mov %r12,0x8(%r14) + 404363: e9 f1 fe ff ff jmpq 404259 <_nl_load_domain+0xb19> + 404368: 48 83 c0 04 add $0x4,%rax + 40436c: eb 11 jmp 40437f <_nl_load_domain+0xc3f> + 40436e: 89 ff mov %edi,%edi + 404370: 48 83 3c f9 00 cmpq $0x0,(%rcx,%rdi,8) + 404375: 0f 84 f3 fe ff ff je 40426e <_nl_load_domain+0xb2e> + 40437b: 48 83 c0 08 add $0x8,%rax + 40437f: 8b 78 04 mov 0x4(%rax),%edi + 404382: 0f cf bswap %edi + 404384: 83 ff ff cmp $0xffffffff,%edi + 404387: 75 e5 jne 40436e <_nl_load_domain+0xc2e> + 404389: e9 c1 fc ff ff jmpq 40404f <_nl_load_domain+0x90f> + 40438e: 85 d2 test %edx,%edx + 404390: 0f 84 79 01 00 00 je 40450f <_nl_load_domain+0xdcf> + 404396: 8b 06 mov (%rsi),%eax + 404398: 4c 01 f8 add %r15,%rax + 40439b: 83 78 08 ff cmpl $0xffffffff,0x8(%rax) + 40439f: 0f 84 aa fc ff ff je 40404f <_nl_load_domain+0x90f> + 4043a5: 48 83 c0 04 add $0x4,%rax + 4043a9: eb 0f jmp 4043ba <_nl_load_domain+0xc7a> + 4043ab: 48 83 3c f9 00 cmpq $0x0,(%rcx,%rdi,8) + 4043b0: 0f 84 b8 fe ff ff je 40426e <_nl_load_domain+0xb2e> + 4043b6: 48 83 c0 08 add $0x8,%rax + 4043ba: 8b 78 04 mov 0x4(%rax),%edi + 4043bd: 83 ff ff cmp $0xffffffff,%edi + 4043c0: 75 e9 jne 4043ab <_nl_load_domain+0xc6b> + 4043c2: e9 88 fc ff ff jmpq 40404f <_nl_load_domain+0x90f> + 4043c7: 8b 8d f8 fe ff ff mov -0x108(%rbp),%ecx + 4043cd: 39 8d 10 ff ff ff cmp %ecx,-0xf0(%rbp) + 4043d3: 4c 8b ad c8 fe ff ff mov -0x138(%rbp),%r13 + 4043da: 48 8b 9d c0 fe ff ff mov -0x140(%rbp),%rbx + 4043e1: 4c 8b b5 b8 fe ff ff mov -0x148(%rbp),%r14 + 4043e8: 0f 85 49 01 00 00 jne 404537 <_nl_load_domain+0xdf7> + 4043ee: 48 8b b5 28 ff ff ff mov -0xd8(%rbp),%rsi + 4043f5: 31 c0 xor %eax,%eax + 4043f7: 8b 4e 58 mov 0x58(%rsi),%ecx + 4043fa: eb 1d jmp 404419 <_nl_load_domain+0xcd9> + 4043fc: 83 7e 68 00 cmpl $0x0,0x68(%rsi) + 404400: 48 8b 56 60 mov 0x60(%rsi),%rdx + 404404: 8b 14 82 mov (%rdx,%rax,4),%edx + 404407: 74 02 je 40440b <_nl_load_domain+0xccb> + 404409: 0f ca bswap %edx + 40440b: 48 8b bd e8 fe ff ff mov -0x118(%rbp),%rdi + 404412: 89 14 87 mov %edx,(%rdi,%rax,4) + 404415: 48 83 c0 01 add $0x1,%rax + 404419: 39 c1 cmp %eax,%ecx + 40441b: 77 df ja 4043fc <_nl_load_domain+0xcbc> + 40441d: 49 89 d8 mov %rbx,%r8 + 404420: 48 8b 9d 28 ff ff ff mov -0xd8(%rbp),%rbx + 404427: 45 31 c9 xor %r9d,%r9d + 40442a: 4d 89 cc mov %r9,%r12 + 40442d: 4d 89 f1 mov %r14,%r9 + 404430: 4d 89 ee mov %r13,%r14 + 404433: 48 8b 8d 20 ff ff ff mov -0xe0(%rbp),%rcx + 40443a: 4c 89 e0 mov %r12,%rax + 40443d: 4c 89 8d 00 ff ff ff mov %r9,-0x100(%rbp) + 404444: 48 c1 e0 04 shl $0x4,%rax + 404448: 4c 89 85 08 ff ff ff mov %r8,-0xf8(%rbp) + 40444f: 45 89 e5 mov %r12d,%r13d + 404452: 48 8b 7c 01 08 mov 0x8(%rcx,%rax,1),%rdi + 404457: e8 d4 96 00 00 callq 40db30 <__hash_string> + 40445c: 8b 7b 58 mov 0x58(%rbx),%edi + 40445f: 31 d2 xor %edx,%edx + 404461: 89 c1 mov %eax,%ecx + 404463: 4c 8b 85 08 ff ff ff mov -0xf8(%rbp),%r8 + 40446a: 4c 8b 8d 00 ff ff ff mov -0x100(%rbp),%r9 + 404471: f7 f7 div %edi + 404473: 44 8d 57 fe lea -0x2(%rdi),%r10d + 404477: 89 c8 mov %ecx,%eax + 404479: 89 d6 mov %edx,%esi + 40447b: 31 d2 xor %edx,%edx + 40447d: 41 f7 f2 div %r10d + 404480: 41 89 fa mov %edi,%r10d + 404483: 8d 42 01 lea 0x1(%rdx),%eax + 404486: 89 c1 mov %eax,%ecx + 404488: 41 29 c2 sub %eax,%r10d + 40448b: 29 f9 sub %edi,%ecx + 40448d: eb 0e jmp 40449d <_nl_load_domain+0xd5d> + 40448f: 8d 14 0e lea (%rsi,%rcx,1),%edx + 404492: 8d 3c 06 lea (%rsi,%rax,1),%edi + 404495: 44 39 d6 cmp %r10d,%esi + 404498: 0f 42 d7 cmovb %edi,%edx + 40449b: 89 d6 mov %edx,%esi + 40449d: 48 8b bd e8 fe ff ff mov -0x118(%rbp),%rdi + 4044a4: 89 f2 mov %esi,%edx + 4044a6: 48 8d 14 97 lea (%rdi,%rdx,4),%rdx + 4044aa: 44 8b 1a mov (%rdx),%r11d + 4044ad: 45 85 db test %r11d,%r11d + 4044b0: 75 dd jne 40448f <_nl_load_domain+0xd4f> + 4044b2: 8b 43 28 mov 0x28(%rbx),%eax + 4044b5: 49 83 c4 01 add $0x1,%r12 + 4044b9: 44 39 a5 10 ff ff ff cmp %r12d,-0xf0(%rbp) + 4044c0: 41 8d 44 05 01 lea 0x1(%r13,%rax,1),%eax + 4044c5: 89 02 mov %eax,(%rdx) + 4044c7: 0f 87 66 ff ff ff ja 404433 <_nl_load_domain+0xcf3> + 4044cd: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax + 4044d4: 8b 8d 10 ff ff ff mov -0xf0(%rbp),%ecx + 4044da: 4d 89 f5 mov %r14,%r13 + 4044dd: 4c 89 c3 mov %r8,%rbx + 4044e0: 4d 89 ce mov %r9,%r14 + 4044e3: 89 48 40 mov %ecx,0x40(%rax) + 4044e6: 48 8b 8d 20 ff ff ff mov -0xe0(%rbp),%rcx + 4044ed: 48 89 78 60 mov %rdi,0x60(%rax) + 4044f1: c7 40 68 00 00 00 00 movl $0x0,0x68(%rax) + 4044f8: 48 89 48 48 mov %rcx,0x48(%rax) + 4044fc: 48 8b 8d d0 fe ff ff mov -0x130(%rbp),%rcx + 404503: 48 89 48 50 mov %rcx,0x50(%rax) + 404507: 48 89 c1 mov %rax,%rcx + 40450a: e9 19 f5 ff ff jmpq 403a28 <_nl_load_domain+0x2e8> + 40450f: 41 8b 02 mov (%r10),%eax + 404512: e9 81 fe ff ff jmpq 404398 <_nl_load_domain+0xc58> + 404517: 41 8b 02 mov (%r10),%eax + 40451a: e9 1f fb ff ff jmpq 40403e <_nl_load_domain+0x8fe> + 40451f: 41 8b 1a mov (%r10),%ebx + 404522: 4c 8b b5 e0 fe ff ff mov -0x120(%rbp),%r14 + 404529: 4c 01 fb add %r15,%rbx + 40452c: 44 8b 23 mov (%rbx),%r12d + 40452f: 4d 01 fc add %r15,%r12 + 404532: e9 18 fe ff ff jmpq 40434f <_nl_load_domain+0xc0f> + 404537: e8 c4 96 00 00 callq 40dc00 + 40453c: 31 c0 xor %eax,%eax + 40453e: e9 87 f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404543: b8 5a 4a 4a 00 mov $0x4a4a5a,%eax + 404548: e9 7d f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 40454d: b8 22 66 4b 00 mov $0x4b6622,%eax + 404552: e9 73 f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404557: b8 34 4a 4a 00 mov $0x4a4a34,%eax + 40455c: e9 69 f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404561: b8 b7 52 4a 00 mov $0x4a52b7,%eax + 404566: e9 5f f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 40456b: b8 43 d4 4b 00 mov $0x4bd443,%eax + 404570: e9 55 f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404575: 31 c0 xor %eax,%eax + 404577: e9 4e f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 40457c: b8 22 66 4b 00 mov $0x4b6622,%eax + 404581: e9 44 f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404586: b8 34 4a 4a 00 mov $0x4a4a34,%eax + 40458b: e9 3a f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404590: b8 b7 52 4a 00 mov $0x4a52b7,%eax + 404595: e9 30 f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 40459a: b8 43 d4 4b 00 mov $0x4bd443,%eax + 40459f: e9 26 f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 4045a4: b8 5a 4a 4a 00 mov $0x4a4a5a,%eax + 4045a9: e9 1c f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 4045ae: 41 8b 1a mov (%r10),%ebx + 4045b1: 4c 8b b5 e0 fe ff ff mov -0x120(%rbp),%r14 + 4045b8: 0f cb bswap %ebx + 4045ba: 89 db mov %ebx,%ebx + 4045bc: 4c 01 fb add %r15,%rbx + 4045bf: 44 8b 23 mov (%rbx),%r12d + 4045c2: 41 0f cc bswap %r12d + 4045c5: 45 89 e4 mov %r12d,%r12d + 4045c8: 4d 01 fc add %r15,%r12 + 4045cb: e9 e8 fa ff ff jmpq 4040b8 <_nl_load_domain+0x978> + 4045d0: 8b 43 04 mov 0x4(%rbx),%eax + 4045d3: 0f c8 bswap %eax + 4045d5: 89 c0 mov %eax,%eax + 4045d7: e9 80 fd ff ff jmpq 40435c <_nl_load_domain+0xc1c> + 4045dc: 48 8b 85 f0 fe ff ff mov -0x110(%rbp),%rax + 4045e3: 48 8b 8d 08 ff ff ff mov -0xf8(%rbp),%rcx + 4045ea: 8b 04 88 mov (%rax,%rcx,4),%eax + 4045ed: e9 9c f8 ff ff jmpq 403e8e <_nl_load_domain+0x74e> + 4045f2: c7 85 1c ff ff ff 00 movl $0x0,-0xe4(%rbp) + 4045f9: 00 00 00 + 4045fc: e9 29 f3 ff ff jmpq 40392a <_nl_load_domain+0x1ea> + 404601: 48 8b 85 f0 fe ff ff mov -0x110(%rbp),%rax + 404608: 48 8b 8d 08 ff ff ff mov -0xf8(%rbp),%rcx + 40460f: 8b 14 88 mov (%rax,%rcx,4),%edx + 404612: e9 45 fb ff ff jmpq 40415c <_nl_load_domain+0xa1c> + 404617: b8 5a 4a 4a 00 mov $0x4a4a5a,%eax + 40461c: e9 a9 f6 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404621: b8 22 66 4b 00 mov $0x4b6622,%eax + 404626: e9 9f f6 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 40462b: b8 34 4a 4a 00 mov $0x4a4a34,%eax + 404630: e9 95 f6 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404635: b8 b7 52 4a 00 mov $0x4a52b7,%eax + 40463a: e9 8b f6 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 40463f: b8 43 d4 4b 00 mov $0x4bd443,%eax + 404644: e9 81 f6 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404649: 41 80 fd 36 cmp $0x36,%r13b + 40464d: 75 54 jne 4046a3 <_nl_load_domain+0xf63> + 40464f: 80 7a 05 34 cmpb $0x34,0x5(%rdx) + 404653: 0f 85 71 f6 ff ff jne 403cca <_nl_load_domain+0x58a> + 404659: 80 7a 06 00 cmpb $0x0,0x6(%rdx) + 40465d: 0f 85 67 f6 ff ff jne 403cca <_nl_load_domain+0x58a> + 404663: 80 f9 64 cmp $0x64,%cl + 404666: 0f 84 13 06 00 00 je 404c7f <_nl_load_domain+0x153f> + 40466c: 80 f9 69 cmp $0x69,%cl + 40466f: 0f 84 00 06 00 00 je 404c75 <_nl_load_domain+0x1535> + 404675: 80 f9 6f cmp $0x6f,%cl + 404678: 0f 84 ed 05 00 00 je 404c6b <_nl_load_domain+0x152b> + 40467e: 80 f9 75 cmp $0x75,%cl + 404681: 0f 84 da 05 00 00 je 404c61 <_nl_load_domain+0x1521> + 404687: 80 f9 78 cmp $0x78,%cl + 40468a: 0f 84 85 00 00 00 je 404715 <_nl_load_domain+0xfd5> + 404690: 80 f9 58 cmp $0x58,%cl + 404693: 0f 85 9e fe ff ff jne 404537 <_nl_load_domain+0xdf7> + 404699: b8 ca 11 4a 00 mov $0x4a11ca,%eax + 40469e: e9 27 f6 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 4046a3: 41 80 fd 4c cmp $0x4c,%r13b + 4046a7: 0f 84 a3 01 00 00 je 404850 <_nl_load_domain+0x1110> + 4046ad: 41 80 fd 46 cmp $0x46,%r13b + 4046b1: 0f 84 f8 00 00 00 je 4047af <_nl_load_domain+0x106f> + 4046b7: 41 80 fd 4d cmp $0x4d,%r13b + 4046bb: 0f 84 90 00 00 00 je 404751 <_nl_load_domain+0x1011> + 4046c1: 41 80 fd 50 cmp $0x50,%r13b + 4046c5: 0f 85 ff f5 ff ff jne 403cca <_nl_load_domain+0x58a> + 4046cb: 80 7a 05 54 cmpb $0x54,0x5(%rdx) + 4046cf: 0f 85 f5 f5 ff ff jne 403cca <_nl_load_domain+0x58a> + 4046d5: 80 7a 06 52 cmpb $0x52,0x6(%rdx) + 4046d9: 0f 85 eb f5 ff ff jne 403cca <_nl_load_domain+0x58a> + 4046df: 80 7a 07 00 cmpb $0x0,0x7(%rdx) + 4046e3: 0f 85 e1 f5 ff ff jne 403cca <_nl_load_domain+0x58a> + 4046e9: 80 f9 64 cmp $0x64,%cl + 4046ec: 74 59 je 404747 <_nl_load_domain+0x1007> + 4046ee: 80 f9 69 cmp $0x69,%cl + 4046f1: 74 4a je 40473d <_nl_load_domain+0xffd> + 4046f3: 80 f9 6f cmp $0x6f,%cl + 4046f6: 74 3b je 404733 <_nl_load_domain+0xff3> + 4046f8: 80 f9 75 cmp $0x75,%cl + 4046fb: 74 2c je 404729 <_nl_load_domain+0xfe9> + 4046fd: 80 f9 78 cmp $0x78,%cl + 404700: 74 1d je 40471f <_nl_load_domain+0xfdf> + 404702: 80 f9 58 cmp $0x58,%cl + 404705: 0f 85 2c fe ff ff jne 404537 <_nl_load_domain+0xdf7> + 40470b: b8 ca 11 4a 00 mov $0x4a11ca,%eax + 404710: e9 b5 f5 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404715: b8 c1 11 4a 00 mov $0x4a11c1,%eax + 40471a: e9 ab f5 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 40471f: b8 c1 11 4a 00 mov $0x4a11c1,%eax + 404724: e9 a1 f5 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404729: b8 c7 11 4a 00 mov $0x4a11c7,%eax + 40472e: e9 97 f5 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404733: b8 d2 11 4a 00 mov $0x4a11d2,%eax + 404738: e9 8d f5 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 40473d: b8 cf 11 4a 00 mov $0x4a11cf,%eax + 404742: e9 83 f5 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404747: b8 c4 11 4a 00 mov $0x4a11c4,%eax + 40474c: e9 79 f5 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404751: 80 7a 05 41 cmpb $0x41,0x5(%rdx) + 404755: 0f 85 6f f5 ff ff jne 403cca <_nl_load_domain+0x58a> + 40475b: 80 7a 06 58 cmpb $0x58,0x6(%rdx) + 40475f: 0f 85 65 f5 ff ff jne 403cca <_nl_load_domain+0x58a> + 404765: 80 7a 07 00 cmpb $0x0,0x7(%rdx) + 404769: 0f 85 5b f5 ff ff jne 403cca <_nl_load_domain+0x58a> + 40476f: 80 f9 64 cmp $0x64,%cl + 404772: 0f 84 df 04 00 00 je 404c57 <_nl_load_domain+0x1517> + 404778: 80 f9 69 cmp $0x69,%cl + 40477b: 0f 84 cc 04 00 00 je 404c4d <_nl_load_domain+0x150d> + 404781: 80 f9 6f cmp $0x6f,%cl + 404784: 0f 84 b9 04 00 00 je 404c43 <_nl_load_domain+0x1503> + 40478a: 80 f9 75 cmp $0x75,%cl + 40478d: 0f 84 a6 04 00 00 je 404c39 <_nl_load_domain+0x14f9> + 404793: 80 f9 78 cmp $0x78,%cl + 404796: 0f 84 4b 01 00 00 je 4048e7 <_nl_load_domain+0x11a7> + 40479c: 80 f9 58 cmp $0x58,%cl + 40479f: 0f 85 92 fd ff ff jne 404537 <_nl_load_domain+0xdf7> + 4047a5: b8 ca 11 4a 00 mov $0x4a11ca,%eax + 4047aa: e9 1b f5 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 4047af: 80 7a 05 41 cmpb $0x41,0x5(%rdx) + 4047b3: 0f 85 11 f5 ff ff jne 403cca <_nl_load_domain+0x58a> + 4047b9: 80 7a 06 53 cmpb $0x53,0x6(%rdx) + 4047bd: 0f 85 07 f5 ff ff jne 403cca <_nl_load_domain+0x58a> + 4047c3: 80 7a 07 54 cmpb $0x54,0x7(%rdx) + 4047c7: 0f 85 fd f4 ff ff jne 403cca <_nl_load_domain+0x58a> + 4047cd: 44 0f b6 6a 08 movzbl 0x8(%rdx),%r13d + 4047d2: 41 80 fd 38 cmp $0x38,%r13b + 4047d6: 0f 84 83 03 00 00 je 404b5f <_nl_load_domain+0x141f> + 4047dc: 41 80 fd 31 cmp $0x31,%r13b + 4047e0: 0f 84 35 03 00 00 je 404b1b <_nl_load_domain+0x13db> + 4047e6: 41 80 fd 33 cmp $0x33,%r13b + 4047ea: 0f 84 d7 02 00 00 je 404ac7 <_nl_load_domain+0x1387> + 4047f0: 41 80 fd 36 cmp $0x36,%r13b + 4047f4: 0f 85 d0 f4 ff ff jne 403cca <_nl_load_domain+0x58a> + 4047fa: 31 c0 xor %eax,%eax + 4047fc: 80 7a 09 34 cmpb $0x34,0x9(%rdx) + 404800: 0f 85 c4 f4 ff ff jne 403cca <_nl_load_domain+0x58a> + 404806: 80 7a 0a 00 cmpb $0x0,0xa(%rdx) + 40480a: 0f 85 ba f4 ff ff jne 403cca <_nl_load_domain+0x58a> + 404810: 80 f9 64 cmp $0x64,%cl + 404813: 0f 84 a4 02 00 00 je 404abd <_nl_load_domain+0x137d> + 404819: 80 f9 69 cmp $0x69,%cl + 40481c: 0f 84 91 02 00 00 je 404ab3 <_nl_load_domain+0x1373> + 404822: 80 f9 6f cmp $0x6f,%cl + 404825: 0f 84 7e 02 00 00 je 404aa9 <_nl_load_domain+0x1369> + 40482b: 80 f9 75 cmp $0x75,%cl + 40482e: 0f 84 6b 02 00 00 je 404a9f <_nl_load_domain+0x135f> + 404834: 80 f9 78 cmp $0x78,%cl + 404837: 0f 84 58 02 00 00 je 404a95 <_nl_load_domain+0x1355> + 40483d: 80 f9 58 cmp $0x58,%cl + 404840: 0f 85 f1 fc ff ff jne 404537 <_nl_load_domain+0xdf7> + 404846: b8 ca 11 4a 00 mov $0x4a11ca,%eax + 40484b: e9 7a f4 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404850: 80 7a 05 45 cmpb $0x45,0x5(%rdx) + 404854: 0f 85 70 f4 ff ff jne 403cca <_nl_load_domain+0x58a> + 40485a: 80 7a 06 41 cmpb $0x41,0x6(%rdx) + 40485e: 0f 85 66 f4 ff ff jne 403cca <_nl_load_domain+0x58a> + 404864: 80 7a 07 53 cmpb $0x53,0x7(%rdx) + 404868: 0f 85 5c f4 ff ff jne 403cca <_nl_load_domain+0x58a> + 40486e: 80 7a 08 54 cmpb $0x54,0x8(%rdx) + 404872: 0f 85 52 f4 ff ff jne 403cca <_nl_load_domain+0x58a> + 404878: 44 0f b6 6a 09 movzbl 0x9(%rdx),%r13d + 40487d: 41 80 fd 38 cmp $0x38,%r13b + 404881: 0f 84 34 01 00 00 je 4049bb <_nl_load_domain+0x127b> + 404887: 41 80 fd 31 cmp $0x31,%r13b + 40488b: 0f 84 e6 00 00 00 je 404977 <_nl_load_domain+0x1237> + 404891: 41 80 fd 33 cmp $0x33,%r13b + 404895: 0f 84 88 00 00 00 je 404923 <_nl_load_domain+0x11e3> + 40489b: 41 80 fd 36 cmp $0x36,%r13b + 40489f: 0f 85 25 f4 ff ff jne 403cca <_nl_load_domain+0x58a> + 4048a5: 31 c0 xor %eax,%eax + 4048a7: 80 7a 0a 34 cmpb $0x34,0xa(%rdx) + 4048ab: 0f 85 19 f4 ff ff jne 403cca <_nl_load_domain+0x58a> + 4048b1: 80 7a 0b 00 cmpb $0x0,0xb(%rdx) + 4048b5: 0f 85 0f f4 ff ff jne 403cca <_nl_load_domain+0x58a> + 4048bb: 80 f9 64 cmp $0x64,%cl + 4048be: 74 59 je 404919 <_nl_load_domain+0x11d9> + 4048c0: 80 f9 69 cmp $0x69,%cl + 4048c3: 74 4a je 40490f <_nl_load_domain+0x11cf> + 4048c5: 80 f9 6f cmp $0x6f,%cl + 4048c8: 74 3b je 404905 <_nl_load_domain+0x11c5> + 4048ca: 80 f9 75 cmp $0x75,%cl + 4048cd: 74 2c je 4048fb <_nl_load_domain+0x11bb> + 4048cf: 80 f9 78 cmp $0x78,%cl + 4048d2: 74 1d je 4048f1 <_nl_load_domain+0x11b1> + 4048d4: 80 f9 58 cmp $0x58,%cl + 4048d7: 0f 85 5a fc ff ff jne 404537 <_nl_load_domain+0xdf7> + 4048dd: b8 ca 11 4a 00 mov $0x4a11ca,%eax + 4048e2: e9 e3 f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 4048e7: b8 c1 11 4a 00 mov $0x4a11c1,%eax + 4048ec: e9 d9 f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 4048f1: b8 c1 11 4a 00 mov $0x4a11c1,%eax + 4048f6: e9 cf f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 4048fb: b8 c7 11 4a 00 mov $0x4a11c7,%eax + 404900: e9 c5 f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404905: b8 d2 11 4a 00 mov $0x4a11d2,%eax + 40490a: e9 bb f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 40490f: b8 cf 11 4a 00 mov $0x4a11cf,%eax + 404914: e9 b1 f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404919: b8 c4 11 4a 00 mov $0x4a11c4,%eax + 40491e: e9 a7 f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404923: 80 7a 0a 32 cmpb $0x32,0xa(%rdx) + 404927: 0f 85 9d f3 ff ff jne 403cca <_nl_load_domain+0x58a> + 40492d: 80 7a 0b 00 cmpb $0x0,0xb(%rdx) + 404931: 0f 85 57 01 00 00 jne 404a8e <_nl_load_domain+0x134e> + 404937: 80 f9 64 cmp $0x64,%cl + 40493a: 0f 84 44 01 00 00 je 404a84 <_nl_load_domain+0x1344> + 404940: 80 f9 69 cmp $0x69,%cl + 404943: 0f 84 31 01 00 00 je 404a7a <_nl_load_domain+0x133a> + 404949: 80 f9 6f cmp $0x6f,%cl + 40494c: 0f 84 1e 01 00 00 je 404a70 <_nl_load_domain+0x1330> + 404952: 80 f9 75 cmp $0x75,%cl + 404955: 0f 84 0b 01 00 00 je 404a66 <_nl_load_domain+0x1326> + 40495b: 80 f9 78 cmp $0x78,%cl + 40495e: 0f 84 f8 00 00 00 je 404a5c <_nl_load_domain+0x131c> + 404964: 80 f9 58 cmp $0x58,%cl + 404967: 0f 85 ca fb ff ff jne 404537 <_nl_load_domain+0xdf7> + 40496d: b8 a5 5a 4b 00 mov $0x4b5aa5,%eax + 404972: e9 53 f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404977: 80 7a 0a 36 cmpb $0x36,0xa(%rdx) + 40497b: 0f 85 49 f3 ff ff jne 403cca <_nl_load_domain+0x58a> + 404981: 80 7a 0b 00 cmpb $0x0,0xb(%rdx) + 404985: 0f 85 ca 00 00 00 jne 404a55 <_nl_load_domain+0x1315> + 40498b: 80 f9 64 cmp $0x64,%cl + 40498e: 0f 84 b7 00 00 00 je 404a4b <_nl_load_domain+0x130b> + 404994: 80 f9 69 cmp $0x69,%cl + 404997: 74 6c je 404a05 <_nl_load_domain+0x12c5> + 404999: 80 f9 6f cmp $0x6f,%cl + 40499c: 74 5d je 4049fb <_nl_load_domain+0x12bb> + 40499e: 80 f9 75 cmp $0x75,%cl + 4049a1: 74 6c je 404a0f <_nl_load_domain+0x12cf> + 4049a3: 80 f9 78 cmp $0x78,%cl + 4049a6: 74 49 je 4049f1 <_nl_load_domain+0x12b1> + 4049a8: 80 f9 58 cmp $0x58,%cl + 4049ab: 0f 85 86 fb ff ff jne 404537 <_nl_load_domain+0xdf7> + 4049b1: b8 a5 5a 4b 00 mov $0x4b5aa5,%eax + 4049b6: e9 0f f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 4049bb: 80 7a 0a 00 cmpb $0x0,0xa(%rdx) + 4049bf: 0f 85 05 f3 ff ff jne 403cca <_nl_load_domain+0x58a> + 4049c5: 80 f9 64 cmp $0x64,%cl + 4049c8: 74 77 je 404a41 <_nl_load_domain+0x1301> + 4049ca: 80 f9 69 cmp $0x69,%cl + 4049cd: 74 68 je 404a37 <_nl_load_domain+0x12f7> + 4049cf: 80 f9 6f cmp $0x6f,%cl + 4049d2: 74 59 je 404a2d <_nl_load_domain+0x12ed> + 4049d4: 80 f9 75 cmp $0x75,%cl + 4049d7: 74 4a je 404a23 <_nl_load_domain+0x12e3> + 4049d9: 80 f9 78 cmp $0x78,%cl + 4049dc: 74 3b je 404a19 <_nl_load_domain+0x12d9> + 4049de: 80 f9 58 cmp $0x58,%cl + 4049e1: 0f 85 50 fb ff ff jne 404537 <_nl_load_domain+0xdf7> + 4049e7: b8 a5 5a 4b 00 mov $0x4b5aa5,%eax + 4049ec: e9 d9 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 4049f1: b8 5a 4a 4a 00 mov $0x4a4a5a,%eax + 4049f6: e9 cf f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 4049fb: b8 34 4a 4a 00 mov $0x4a4a34,%eax + 404a00: e9 c5 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a05: b8 b7 52 4a 00 mov $0x4a52b7,%eax + 404a0a: e9 bb f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a0f: b8 22 66 4b 00 mov $0x4b6622,%eax + 404a14: e9 b1 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a19: b8 5a 4a 4a 00 mov $0x4a4a5a,%eax + 404a1e: e9 a7 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a23: b8 22 66 4b 00 mov $0x4b6622,%eax + 404a28: e9 9d f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a2d: b8 34 4a 4a 00 mov $0x4a4a34,%eax + 404a32: e9 93 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a37: b8 b7 52 4a 00 mov $0x4a52b7,%eax + 404a3c: e9 89 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a41: b8 43 d4 4b 00 mov $0x4bd443,%eax + 404a46: e9 7f f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a4b: b8 43 d4 4b 00 mov $0x4bd443,%eax + 404a50: e9 75 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a55: 31 c0 xor %eax,%eax + 404a57: e9 6e f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a5c: b8 5a 4a 4a 00 mov $0x4a4a5a,%eax + 404a61: e9 64 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a66: b8 22 66 4b 00 mov $0x4b6622,%eax + 404a6b: e9 5a f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a70: b8 34 4a 4a 00 mov $0x4a4a34,%eax + 404a75: e9 50 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a7a: b8 b7 52 4a 00 mov $0x4a52b7,%eax + 404a7f: e9 46 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a84: b8 43 d4 4b 00 mov $0x4bd443,%eax + 404a89: e9 3c f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a8e: 31 c0 xor %eax,%eax + 404a90: e9 35 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a95: b8 c1 11 4a 00 mov $0x4a11c1,%eax + 404a9a: e9 2b f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404a9f: b8 c7 11 4a 00 mov $0x4a11c7,%eax + 404aa4: e9 21 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404aa9: b8 d2 11 4a 00 mov $0x4a11d2,%eax + 404aae: e9 17 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404ab3: b8 cf 11 4a 00 mov $0x4a11cf,%eax + 404ab8: e9 0d f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404abd: b8 c4 11 4a 00 mov $0x4a11c4,%eax + 404ac2: e9 03 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404ac7: 80 7a 09 32 cmpb $0x32,0x9(%rdx) + 404acb: 0f 85 f9 f1 ff ff jne 403cca <_nl_load_domain+0x58a> + 404ad1: 80 7a 0a 00 cmpb $0x0,0xa(%rdx) + 404ad5: 0f 85 57 01 00 00 jne 404c32 <_nl_load_domain+0x14f2> + 404adb: 80 f9 64 cmp $0x64,%cl + 404ade: 0f 84 44 01 00 00 je 404c28 <_nl_load_domain+0x14e8> + 404ae4: 80 f9 69 cmp $0x69,%cl + 404ae7: 0f 84 31 01 00 00 je 404c1e <_nl_load_domain+0x14de> + 404aed: 80 f9 6f cmp $0x6f,%cl + 404af0: 0f 84 1e 01 00 00 je 404c14 <_nl_load_domain+0x14d4> + 404af6: 80 f9 75 cmp $0x75,%cl + 404af9: 0f 84 0b 01 00 00 je 404c0a <_nl_load_domain+0x14ca> + 404aff: 80 f9 78 cmp $0x78,%cl + 404b02: 0f 84 f8 00 00 00 je 404c00 <_nl_load_domain+0x14c0> + 404b08: 80 f9 58 cmp $0x58,%cl + 404b0b: 0f 85 26 fa ff ff jne 404537 <_nl_load_domain+0xdf7> + 404b11: b8 ca 11 4a 00 mov $0x4a11ca,%eax + 404b16: e9 af f1 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404b1b: 80 7a 09 36 cmpb $0x36,0x9(%rdx) + 404b1f: 0f 85 a5 f1 ff ff jne 403cca <_nl_load_domain+0x58a> + 404b25: 80 7a 0a 00 cmpb $0x0,0xa(%rdx) + 404b29: 0f 85 ca 00 00 00 jne 404bf9 <_nl_load_domain+0x14b9> + 404b2f: 80 f9 64 cmp $0x64,%cl + 404b32: 0f 84 b7 00 00 00 je 404bef <_nl_load_domain+0x14af> + 404b38: 80 f9 69 cmp $0x69,%cl + 404b3b: 74 6c je 404ba9 <_nl_load_domain+0x1469> + 404b3d: 80 f9 6f cmp $0x6f,%cl + 404b40: 74 5d je 404b9f <_nl_load_domain+0x145f> + 404b42: 80 f9 75 cmp $0x75,%cl + 404b45: 74 6c je 404bb3 <_nl_load_domain+0x1473> + 404b47: 80 f9 78 cmp $0x78,%cl + 404b4a: 74 49 je 404b95 <_nl_load_domain+0x1455> + 404b4c: 80 f9 58 cmp $0x58,%cl + 404b4f: 0f 85 e2 f9 ff ff jne 404537 <_nl_load_domain+0xdf7> + 404b55: b8 ca 11 4a 00 mov $0x4a11ca,%eax + 404b5a: e9 6b f1 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404b5f: 80 7a 09 00 cmpb $0x0,0x9(%rdx) + 404b63: 0f 85 61 f1 ff ff jne 403cca <_nl_load_domain+0x58a> + 404b69: 80 f9 64 cmp $0x64,%cl + 404b6c: 74 77 je 404be5 <_nl_load_domain+0x14a5> + 404b6e: 80 f9 69 cmp $0x69,%cl + 404b71: 74 68 je 404bdb <_nl_load_domain+0x149b> + 404b73: 80 f9 6f cmp $0x6f,%cl + 404b76: 74 59 je 404bd1 <_nl_load_domain+0x1491> + 404b78: 80 f9 75 cmp $0x75,%cl + 404b7b: 74 4a je 404bc7 <_nl_load_domain+0x1487> + 404b7d: 80 f9 78 cmp $0x78,%cl + 404b80: 74 3b je 404bbd <_nl_load_domain+0x147d> + 404b82: 80 f9 58 cmp $0x58,%cl + 404b85: 0f 85 ac f9 ff ff jne 404537 <_nl_load_domain+0xdf7> + 404b8b: b8 a5 5a 4b 00 mov $0x4b5aa5,%eax + 404b90: e9 35 f1 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404b95: b8 c1 11 4a 00 mov $0x4a11c1,%eax + 404b9a: e9 2b f1 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404b9f: b8 d2 11 4a 00 mov $0x4a11d2,%eax + 404ba4: e9 21 f1 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404ba9: b8 cf 11 4a 00 mov $0x4a11cf,%eax + 404bae: e9 17 f1 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404bb3: b8 c7 11 4a 00 mov $0x4a11c7,%eax + 404bb8: e9 0d f1 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404bbd: b8 5a 4a 4a 00 mov $0x4a4a5a,%eax + 404bc2: e9 03 f1 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404bc7: b8 22 66 4b 00 mov $0x4b6622,%eax + 404bcc: e9 f9 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404bd1: b8 34 4a 4a 00 mov $0x4a4a34,%eax + 404bd6: e9 ef f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404bdb: b8 b7 52 4a 00 mov $0x4a52b7,%eax + 404be0: e9 e5 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404be5: b8 43 d4 4b 00 mov $0x4bd443,%eax + 404bea: e9 db f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404bef: b8 c4 11 4a 00 mov $0x4a11c4,%eax + 404bf4: e9 d1 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404bf9: 31 c0 xor %eax,%eax + 404bfb: e9 ca f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404c00: b8 c1 11 4a 00 mov $0x4a11c1,%eax + 404c05: e9 c0 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404c0a: b8 c7 11 4a 00 mov $0x4a11c7,%eax + 404c0f: e9 b6 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404c14: b8 d2 11 4a 00 mov $0x4a11d2,%eax + 404c19: e9 ac f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404c1e: b8 cf 11 4a 00 mov $0x4a11cf,%eax + 404c23: e9 a2 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404c28: b8 c4 11 4a 00 mov $0x4a11c4,%eax + 404c2d: e9 98 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404c32: 31 c0 xor %eax,%eax + 404c34: e9 91 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404c39: b8 c7 11 4a 00 mov $0x4a11c7,%eax + 404c3e: e9 87 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404c43: b8 d2 11 4a 00 mov $0x4a11d2,%eax + 404c48: e9 7d f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404c4d: b8 cf 11 4a 00 mov $0x4a11cf,%eax + 404c52: e9 73 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404c57: b8 c4 11 4a 00 mov $0x4a11c4,%eax + 404c5c: e9 69 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404c61: b8 c7 11 4a 00 mov $0x4a11c7,%eax + 404c66: e9 5f f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404c6b: b8 d2 11 4a 00 mov $0x4a11d2,%eax + 404c70: e9 55 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404c75: b8 cf 11 4a 00 mov $0x4a11cf,%eax + 404c7a: e9 4b f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404c7f: b8 c4 11 4a 00 mov $0x4a11c4,%eax + 404c84: e9 41 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> + 404c89: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +0000000000404c90 : + 404c90: 48 8b 36 mov (%rsi),%rsi + 404c93: 48 8b 3f mov (%rdi),%rdi + 404c96: ba 80 26 4b 00 mov $0x4b2680,%edx + 404c9b: e9 a0 b6 ff ff jmpq 400340 <__rela_iplt_end+0x78> + +0000000000404ca0 : + 404ca0: 55 push %rbp + 404ca1: 48 63 d6 movslq %esi,%rdx + 404ca4: 48 89 fe mov %rdi,%rsi + 404ca7: 48 8d 42 2c lea 0x2c(%rdx),%rax + 404cab: 48 89 e5 mov %rsp,%rbp + 404cae: 41 57 push %r15 + 404cb0: 41 56 push %r14 + 404cb2: 41 55 push %r13 + 404cb4: 41 54 push %r12 + 404cb6: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 404cba: 53 push %rbx + 404cbb: 48 81 ec d8 01 00 00 sub $0x1d8,%rsp + 404cc2: 48 29 c4 sub %rax,%rsp + 404cc5: 48 8d 5c 24 0f lea 0xf(%rsp),%rbx + 404cca: 48 83 e3 f0 and $0xfffffffffffffff0,%rbx + 404cce: 48 89 df mov %rbx,%rdi + 404cd1: e8 ea 18 02 00 callq 4265c0 <__mempcpy> + 404cd6: ba 0e 00 00 00 mov $0xe,%edx + 404cdb: be f0 11 4a 00 mov $0x4a11f0,%esi + 404ce0: 48 89 c7 mov %rax,%rdi + 404ce3: e8 d8 18 02 00 callq 4265c0 <__mempcpy> + 404ce8: be d5 11 4a 00 mov $0x4a11d5,%esi + 404ced: 48 89 df mov %rbx,%rdi + 404cf0: e8 bb ac 00 00 callq 40f9b0 <_IO_new_fopen> + 404cf5: 48 85 c0 test %rax,%rax + 404cf8: 0f 84 0d 04 00 00 je 40510b + 404cfe: 49 89 c7 mov %rax,%r15 + 404d01: 8b 00 mov (%rax),%eax + 404d03: 89 c2 mov %eax,%edx + 404d05: 80 ce 80 or $0x80,%dh + 404d08: a8 10 test $0x10,%al + 404d0a: 41 89 17 mov %edx,(%r15) + 404d0d: 0f 85 f0 03 00 00 jne 405103 + 404d13: 48 c7 85 18 fe ff ff movq $0x0,-0x1e8(%rbp) + 404d1a: 00 00 00 00 + 404d1e: 66 90 xchg %ax,%ax + 404d20: 48 8d bd 40 fe ff ff lea -0x1c0(%rbp),%rdi + 404d27: 4c 89 fa mov %r15,%rdx + 404d2a: be 90 01 00 00 mov $0x190,%esi + 404d2f: e8 7c cb 00 00 callq 4118b0 <__fgets_unlocked> + 404d34: 48 85 c0 test %rax,%rax + 404d37: 0f 84 ff 01 00 00 je 404f3c + 404d3d: 48 8d bd 40 fe ff ff lea -0x1c0(%rbp),%rdi + 404d44: be 0a 00 00 00 mov $0xa,%esi + 404d49: e8 32 b6 ff ff callq 400380 <__rela_iplt_end+0xb8> + 404d4e: 49 89 c6 mov %rax,%r14 + 404d51: 48 c7 c0 f0 ff ff ff mov $0xfffffffffffffff0,%rax + 404d58: 0f b6 8d 40 fe ff ff movzbl -0x1c0(%rbp),%ecx + 404d5f: 64 48 8b 00 mov %fs:(%rax),%rax + 404d63: 48 89 ca mov %rcx,%rdx + 404d66: f6 44 48 01 20 testb $0x20,0x1(%rax,%rcx,2) + 404d6b: 48 8d 8d 40 fe ff ff lea -0x1c0(%rbp),%rcx + 404d72: 74 15 je 404d89 + 404d74: 0f 1f 40 00 nopl 0x0(%rax) + 404d78: 48 83 c1 01 add $0x1,%rcx + 404d7c: 0f b6 31 movzbl (%rcx),%esi + 404d7f: f6 44 70 01 20 testb $0x20,0x1(%rax,%rsi,2) + 404d84: 48 89 f2 mov %rsi,%rdx + 404d87: 75 ef jne 404d78 + 404d89: 84 d2 test %dl,%dl + 404d8b: 0f 84 9c 01 00 00 je 404f2d + 404d91: 80 fa 23 cmp $0x23,%dl + 404d94: 0f 84 93 01 00 00 je 404f2d + 404d9a: 0f b6 51 01 movzbl 0x1(%rcx),%edx + 404d9e: 48 8d 59 01 lea 0x1(%rcx),%rbx + 404da2: 84 d2 test %dl,%dl + 404da4: 75 19 jne 404dbf + 404da6: e9 15 02 00 00 jmpq 404fc0 + 404dab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 404db0: 48 83 c3 01 add $0x1,%rbx + 404db4: 0f b6 13 movzbl (%rbx),%edx + 404db7: 84 d2 test %dl,%dl + 404db9: 0f 84 01 02 00 00 je 404fc0 + 404dbf: f6 44 50 01 20 testb $0x20,0x1(%rax,%rdx,2) + 404dc4: 74 ea je 404db0 + 404dc6: 48 89 da mov %rbx,%rdx + 404dc9: 48 83 c3 01 add $0x1,%rbx + 404dcd: 0f b6 72 01 movzbl 0x1(%rdx),%esi + 404dd1: c6 02 00 movb $0x0,(%rdx) + 404dd4: f6 44 70 01 20 testb $0x20,0x1(%rax,%rsi,2) + 404dd9: 48 89 f2 mov %rsi,%rdx + 404ddc: 74 13 je 404df1 + 404dde: 66 90 xchg %ax,%ax + 404de0: 48 83 c3 01 add $0x1,%rbx + 404de4: 0f b6 33 movzbl (%rbx),%esi + 404de7: f6 44 70 01 20 testb $0x20,0x1(%rax,%rsi,2) + 404dec: 48 89 f2 mov %rsi,%rdx + 404def: 75 ef jne 404de0 + 404df1: 84 d2 test %dl,%dl + 404df3: 0f 84 34 01 00 00 je 404f2d + 404df9: 0f b6 53 01 movzbl 0x1(%rbx),%edx + 404dfd: 48 8d 73 01 lea 0x1(%rbx),%rsi + 404e01: 84 d2 test %dl,%dl + 404e03: 75 16 jne 404e1b + 404e05: eb 2e jmp 404e35 + 404e07: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 404e0e: 00 00 + 404e10: 48 83 c6 01 add $0x1,%rsi + 404e14: 0f b6 16 movzbl (%rsi),%edx + 404e17: 84 d2 test %dl,%dl + 404e19: 74 1a je 404e35 + 404e1b: 0f b6 fa movzbl %dl,%edi + 404e1e: f6 44 78 01 20 testb $0x20,0x1(%rax,%rdi,2) + 404e23: 74 eb je 404e10 + 404e25: 80 fa 0a cmp $0xa,%dl + 404e28: 0f 85 7d 02 00 00 jne 4050ab + 404e2e: c6 06 00 movb $0x0,(%rsi) + 404e31: c6 46 01 0a movb $0xa,0x1(%rsi) + 404e35: 4c 8b 25 c4 72 2c 00 mov 0x2c72c4(%rip),%r12 # 6cc100 + 404e3c: 48 8b 35 b5 72 2c 00 mov 0x2c72b5(%rip),%rsi # 6cc0f8 + 404e43: 49 39 f4 cmp %rsi,%r12 + 404e46: 0f 83 67 02 00 00 jae 4050b3 + 404e4c: 48 89 cf mov %rcx,%rdi + 404e4f: 48 89 8d 28 fe ff ff mov %rcx,-0x1d8(%rbp) + 404e56: e8 f5 e7 01 00 callq 423650 + 404e5b: 48 8d 50 01 lea 0x1(%rax),%rdx + 404e5f: 48 89 df mov %rbx,%rdi + 404e62: 48 89 95 38 fe ff ff mov %rdx,-0x1c8(%rbp) + 404e69: e8 e2 e7 01 00 callq 423650 + 404e6e: 48 8b 95 38 fe ff ff mov -0x1c8(%rbp),%rdx + 404e75: 4c 8b 1d 94 72 2c 00 mov 0x2c7294(%rip),%r11 # 6cc110 + 404e7c: 4c 8d 50 01 lea 0x1(%rax),%r10 + 404e80: 48 8b 8d 28 fe ff ff mov -0x1d8(%rbp),%rcx + 404e87: 4a 8d 04 1a lea (%rdx,%r11,1),%rax + 404e8b: 48 89 85 38 fe ff ff mov %rax,-0x1c8(%rbp) + 404e92: 4c 01 d0 add %r10,%rax + 404e95: 48 89 c7 mov %rax,%rdi + 404e98: 48 89 85 30 fe ff ff mov %rax,-0x1d0(%rbp) + 404e9f: 48 8b 05 62 72 2c 00 mov 0x2c7262(%rip),%rax # 6cc108 + 404ea6: 48 39 c7 cmp %rax,%rdi + 404ea9: 0f 87 21 01 00 00 ja 404fd0 + 404eaf: 4c 8b 0d 2a 85 2c 00 mov 0x2c852a(%rip),%r9 # 6cd3e0 + 404eb6: 48 8b 3d 1b 85 2c 00 mov 0x2c851b(%rip),%rdi # 6cd3d8 + 404ebd: 4d 89 e5 mov %r12,%r13 + 404ec0: 48 89 ce mov %rcx,%rsi + 404ec3: 4c 89 95 20 fe ff ff mov %r10,-0x1e0(%rbp) + 404eca: 49 c1 e5 04 shl $0x4,%r13 + 404ece: 4c 89 8d 28 fe ff ff mov %r9,-0x1d8(%rbp) + 404ed5: 49 83 c4 01 add $0x1,%r12 + 404ed9: 49 01 fd add %rdi,%r13 + 404edc: 4b 8d 3c 19 lea (%r9,%r11,1),%rdi + 404ee0: e8 3b 71 02 00 callq 42c020 + 404ee5: 48 8b bd 38 fe ff ff mov -0x1c8(%rbp),%rdi + 404eec: 4c 8b 8d 28 fe ff ff mov -0x1d8(%rbp),%r9 + 404ef3: 48 89 de mov %rbx,%rsi + 404ef6: 4c 8b 95 20 fe ff ff mov -0x1e0(%rbp),%r10 + 404efd: 49 89 45 00 mov %rax,0x0(%r13) + 404f01: 4c 01 cf add %r9,%rdi + 404f04: 4c 89 d2 mov %r10,%rdx + 404f07: e8 14 71 02 00 callq 42c020 + 404f0c: 48 83 85 18 fe ff ff addq $0x1,-0x1e8(%rbp) + 404f13: 01 + 404f14: 49 89 45 08 mov %rax,0x8(%r13) + 404f18: 48 8b 85 30 fe ff ff mov -0x1d0(%rbp),%rax + 404f1f: 4c 89 25 da 71 2c 00 mov %r12,0x2c71da(%rip) # 6cc100 + 404f26: 48 89 05 e3 71 2c 00 mov %rax,0x2c71e3(%rip) # 6cc110 + 404f2d: 4d 85 f6 test %r14,%r14 + 404f30: 74 6c je 404f9e + 404f32: 41 f6 07 10 testb $0x10,(%r15) + 404f36: 0f 84 e4 fd ff ff je 404d20 + 404f3c: 4c 89 ff mov %r15,%rdi + 404f3f: e8 9c a5 00 00 callq 40f4e0 <_IO_new_fclose> + 404f44: 31 c0 xor %eax,%eax + 404f46: 48 83 bd 18 fe ff ff cmpq $0x0,-0x1e8(%rbp) + 404f4d: 00 + 404f4e: 74 24 je 404f74 + 404f50: 48 8b 35 a9 71 2c 00 mov 0x2c71a9(%rip),%rsi # 6cc100 + 404f57: 48 8b 3d 7a 84 2c 00 mov 0x2c847a(%rip),%rdi # 6cd3d8 + 404f5e: b9 90 4c 40 00 mov $0x404c90,%ecx + 404f63: ba 10 00 00 00 mov $0x10,%edx + 404f68: e8 63 98 00 00 callq 40e7d0 + 404f6d: 48 8b 85 18 fe ff ff mov -0x1e8(%rbp),%rax + 404f74: 48 8d 65 d8 lea -0x28(%rbp),%rsp + 404f78: 5b pop %rbx + 404f79: 41 5c pop %r12 + 404f7b: 41 5d pop %r13 + 404f7d: 41 5e pop %r14 + 404f7f: 41 5f pop %r15 + 404f81: 5d pop %rbp + 404f82: c3 retq + 404f83: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 404f88: 48 8d bd 40 fe ff ff lea -0x1c0(%rbp),%rdi + 404f8f: be 0a 00 00 00 mov $0xa,%esi + 404f94: e8 e7 b3 ff ff callq 400380 <__rela_iplt_end+0xb8> + 404f99: 48 85 c0 test %rax,%rax + 404f9c: 75 94 jne 404f32 + 404f9e: 48 8d bd 40 fe ff ff lea -0x1c0(%rbp),%rdi + 404fa5: 4c 89 fa mov %r15,%rdx + 404fa8: be 90 01 00 00 mov $0x190,%esi + 404fad: e8 fe c8 00 00 callq 4118b0 <__fgets_unlocked> + 404fb2: 48 85 c0 test %rax,%rax + 404fb5: 75 d1 jne 404f88 + 404fb7: e9 76 ff ff ff jmpq 404f32 + 404fbc: 0f 1f 40 00 nopl 0x0(%rax) + 404fc0: 66 f7 00 00 20 testw $0x2000,(%rax) + 404fc5: 0f 85 15 fe ff ff jne 404de0 + 404fcb: e9 5d ff ff ff jmpq 404f2d + 404fd0: 4a 8d 34 12 lea (%rdx,%r10,1),%rsi + 404fd4: bf 00 04 00 00 mov $0x400,%edi + 404fd9: 4c 8b 2d 00 84 2c 00 mov 0x2c8400(%rip),%r13 # 6cd3e0 + 404fe0: 4c 89 9d 00 fe ff ff mov %r11,-0x200(%rbp) + 404fe7: 48 89 8d 08 fe ff ff mov %rcx,-0x1f8(%rbp) + 404fee: 48 81 fe 00 04 00 00 cmp $0x400,%rsi + 404ff5: 4c 89 95 10 fe ff ff mov %r10,-0x1f0(%rbp) + 404ffc: 48 89 95 20 fe ff ff mov %rdx,-0x1e0(%rbp) + 405003: 48 0f 42 f7 cmovb %rdi,%rsi + 405007: 4c 89 ef mov %r13,%rdi + 40500a: 4c 8d 04 06 lea (%rsi,%rax,1),%r8 + 40500e: 4c 89 c6 mov %r8,%rsi + 405011: 4c 89 85 28 fe ff ff mov %r8,-0x1d8(%rbp) + 405018: e8 53 8f 01 00 callq 41df70 <__libc_realloc> + 40501d: 48 85 c0 test %rax,%rax + 405020: 0f 84 16 ff ff ff je 404f3c + 405026: 49 39 c5 cmp %rax,%r13 + 405029: 48 8b 3d a8 83 2c 00 mov 0x2c83a8(%rip),%rdi # 6cd3d8 + 405030: 4c 8b 85 28 fe ff ff mov -0x1d8(%rbp),%r8 + 405037: 48 8b 95 20 fe ff ff mov -0x1e0(%rbp),%rdx + 40503e: 4c 8b 95 10 fe ff ff mov -0x1f0(%rbp),%r10 + 405045: 48 8b 8d 08 fe ff ff mov -0x1f8(%rbp),%rcx + 40504c: 4c 8b 9d 00 fe ff ff mov -0x200(%rbp),%r11 + 405053: 74 40 je 405095 + 405055: 4d 85 e4 test %r12,%r12 + 405058: 74 3b je 405095 + 40505a: 48 89 c6 mov %rax,%rsi + 40505d: 4d 89 e1 mov %r12,%r9 + 405060: 4c 29 ee sub %r13,%rsi + 405063: 49 c1 e1 04 shl $0x4,%r9 + 405067: 48 89 b5 28 fe ff ff mov %rsi,-0x1d8(%rbp) + 40506e: 49 01 f9 add %rdi,%r9 + 405071: 48 89 fe mov %rdi,%rsi + 405074: f3 0f 7e 8d 28 fe ff movq -0x1d8(%rbp),%xmm1 + 40507b: ff + 40507c: 66 0f 6c c9 punpcklqdq %xmm1,%xmm1 + 405080: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 405084: 48 83 c6 10 add $0x10,%rsi + 405088: 66 0f d4 c1 paddq %xmm1,%xmm0 + 40508c: 0f 11 46 f0 movups %xmm0,-0x10(%rsi) + 405090: 4c 39 ce cmp %r9,%rsi + 405093: 75 eb jne 405080 + 405095: 48 89 05 44 83 2c 00 mov %rax,0x2c8344(%rip) # 6cd3e0 + 40509c: 4c 89 05 65 70 2c 00 mov %r8,0x2c7065(%rip) # 6cc108 + 4050a3: 49 89 c1 mov %rax,%r9 + 4050a6: e9 12 fe ff ff jmpq 404ebd + 4050ab: c6 06 00 movb $0x0,(%rsi) + 4050ae: e9 82 fd ff ff jmpq 404e35 + 4050b3: 48 85 f6 test %rsi,%rsi + 4050b6: 74 3e je 4050f6 + 4050b8: 4c 8d 2c 36 lea (%rsi,%rsi,1),%r13 + 4050bc: 48 c1 e6 05 shl $0x5,%rsi + 4050c0: 48 8b 3d 11 83 2c 00 mov 0x2c8311(%rip),%rdi # 6cd3d8 + 4050c7: 48 89 8d 38 fe ff ff mov %rcx,-0x1c8(%rbp) + 4050ce: e8 9d 8e 01 00 callq 41df70 <__libc_realloc> + 4050d3: 48 85 c0 test %rax,%rax + 4050d6: 0f 84 60 fe ff ff je 404f3c + 4050dc: 48 89 05 f5 82 2c 00 mov %rax,0x2c82f5(%rip) # 6cd3d8 + 4050e3: 4c 89 2d 0e 70 2c 00 mov %r13,0x2c700e(%rip) # 6cc0f8 + 4050ea: 48 8b 8d 38 fe ff ff mov -0x1c8(%rbp),%rcx + 4050f1: e9 56 fd ff ff jmpq 404e4c + 4050f6: be 40 06 00 00 mov $0x640,%esi + 4050fb: 41 bd 64 00 00 00 mov $0x64,%r13d + 405101: eb bd jmp 4050c0 + 405103: 4c 89 ff mov %r15,%rdi + 405106: e8 d5 a3 00 00 callq 40f4e0 <_IO_new_fclose> + 40510b: 48 8d 65 d8 lea -0x28(%rbp),%rsp + 40510f: 31 c0 xor %eax,%eax + 405111: 5b pop %rbx + 405112: 41 5c pop %r12 + 405114: 41 5d pop %r13 + 405116: 41 5e pop %r14 + 405118: 41 5f pop %r15 + 40511a: 5d pop %rbp + 40511b: c3 retq + 40511c: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000405120 <_nl_expand_alias>: + 405120: 41 57 push %r15 + 405122: 41 56 push %r14 + 405124: be 01 00 00 00 mov $0x1,%esi + 405129: 41 55 push %r13 + 40512b: 41 54 push %r12 + 40512d: 31 c0 xor %eax,%eax + 40512f: 55 push %rbp + 405130: 53 push %rbx + 405131: 48 89 fb mov %rdi,%rbx + 405134: 48 83 ec 08 sub $0x8,%rsp + 405138: 83 3d 7d 80 2c 00 00 cmpl $0x0,0x2c807d(%rip) # 6cd1bc <__libc_multiple_threads> + 40513f: 74 0c je 40514d <_nl_expand_alias+0x2d> + 405141: f0 0f b1 35 cf 6f 2c lock cmpxchg %esi,0x2c6fcf(%rip) # 6cc118 + 405148: 00 + 405149: 75 0b jne 405156 <_nl_expand_alias+0x36> + 40514b: eb 23 jmp 405170 <_nl_expand_alias+0x50> + 40514d: 0f b1 35 c4 6f 2c 00 cmpxchg %esi,0x2c6fc4(%rip) # 6cc118 + 405154: 74 1a je 405170 <_nl_expand_alias+0x50> + 405156: 48 8d 3d bb 6f 2c 00 lea 0x2c6fbb(%rip),%rdi # 6cc118 + 40515d: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 405164: e8 67 d4 03 00 callq 4425d0 <__lll_lock_wait_private> + 405169: 48 81 c4 80 00 00 00 add $0x80,%rsp + 405170: 48 83 3d 78 6f 2c 00 cmpq $0x0,0x2c6f78(%rip) # 6cc0f0 + 405177: 00 + 405178: 0f 84 51 01 00 00 je 4052cf <_nl_expand_alias+0x1af> + 40517e: 4c 8b 3d 7b 6f 2c 00 mov 0x2c6f7b(%rip),%r15 # 6cc100 + 405185: 4d 85 ff test %r15,%r15 + 405188: 74 54 je 4051de <_nl_expand_alias+0xbe> + 40518a: 4c 8b 35 47 82 2c 00 mov 0x2c8247(%rip),%r14 # 6cd3d8 + 405191: 45 31 ed xor %r13d,%r13d + 405194: eb 19 jmp 4051af <_nl_expand_alias+0x8f> + 405196: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40519d: 00 00 00 + 4051a0: 0f 84 22 01 00 00 je 4052c8 <_nl_expand_alias+0x1a8> + 4051a6: 4c 8d 6d 01 lea 0x1(%rbp),%r13 + 4051aa: 4d 39 ef cmp %r13,%r15 + 4051ad: 76 2f jbe 4051de <_nl_expand_alias+0xbe> + 4051af: 4b 8d 6c 3d 00 lea 0x0(%r13,%r15,1),%rbp + 4051b4: ba 80 26 4b 00 mov $0x4b2680,%edx + 4051b9: 48 89 df mov %rbx,%rdi + 4051bc: 48 d1 ed shr %rbp + 4051bf: 49 89 ec mov %rbp,%r12 + 4051c2: 49 c1 e4 04 shl $0x4,%r12 + 4051c6: 4d 01 f4 add %r14,%r12 + 4051c9: 49 8b 34 24 mov (%r12),%rsi + 4051cd: e8 6e b1 ff ff callq 400340 <__rela_iplt_end+0x78> + 4051d2: 85 c0 test %eax,%eax + 4051d4: 79 ca jns 4051a0 <_nl_expand_alias+0x80> + 4051d6: 49 89 ef mov %rbp,%r15 + 4051d9: 4d 39 ef cmp %r13,%r15 + 4051dc: 77 d1 ja 4051af <_nl_expand_alias+0x8f> + 4051de: 48 8b 0d 0b 6f 2c 00 mov 0x2c6f0b(%rip),%rcx # 6cc0f0 + 4051e5: 0f b6 01 movzbl (%rcx),%eax + 4051e8: 84 c0 test %al,%al + 4051ea: 74 69 je 405255 <_nl_expand_alias+0x135> + 4051ec: 48 89 cf mov %rcx,%rdi + 4051ef: 31 f6 xor %esi,%esi + 4051f1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4051f8: 3c 3a cmp $0x3a,%al + 4051fa: 48 8d 51 01 lea 0x1(%rcx),%rdx + 4051fe: 75 17 jne 405217 <_nl_expand_alias+0xf7> + 405200: 48 89 d7 mov %rdx,%rdi + 405203: 48 8d 52 01 lea 0x1(%rdx),%rdx + 405207: 0f b6 42 ff movzbl -0x1(%rdx),%eax + 40520b: 3c 3a cmp $0x3a,%al + 40520d: 74 f1 je 405200 <_nl_expand_alias+0xe0> + 40520f: 48 89 f9 mov %rdi,%rcx + 405212: be 01 00 00 00 mov $0x1,%esi + 405217: 84 c0 test %al,%al + 405219: 0f 84 9d 00 00 00 je 4052bc <_nl_expand_alias+0x19c> + 40521f: 48 8d 77 01 lea 0x1(%rdi),%rsi + 405223: eb 0a jmp 40522f <_nl_expand_alias+0x10f> + 405225: 0f 1f 00 nopl (%rax) + 405228: 3c 3a cmp $0x3a,%al + 40522a: 74 11 je 40523d <_nl_expand_alias+0x11d> + 40522c: 48 89 d6 mov %rdx,%rsi + 40522f: 0f b6 06 movzbl (%rsi),%eax + 405232: 48 89 f1 mov %rsi,%rcx + 405235: 48 8d 56 01 lea 0x1(%rsi),%rdx + 405239: 84 c0 test %al,%al + 40523b: 75 eb jne 405228 <_nl_expand_alias+0x108> + 40523d: 48 39 fe cmp %rdi,%rsi + 405240: 77 5d ja 40529f <_nl_expand_alias+0x17f> + 405242: 84 c0 test %al,%al + 405244: 48 89 f7 mov %rsi,%rdi + 405247: be 01 00 00 00 mov $0x1,%esi + 40524c: 75 aa jne 4051f8 <_nl_expand_alias+0xd8> + 40524e: 48 89 0d 9b 6e 2c 00 mov %rcx,0x2c6e9b(%rip) # 6cc0f0 + 405255: 31 d2 xor %edx,%edx + 405257: 83 3d 5e 7f 2c 00 00 cmpl $0x0,0x2c7f5e(%rip) # 6cd1bc <__libc_multiple_threads> + 40525e: 74 0b je 40526b <_nl_expand_alias+0x14b> + 405260: f0 ff 0d b1 6e 2c 00 lock decl 0x2c6eb1(%rip) # 6cc118 + 405267: 75 0a jne 405273 <_nl_expand_alias+0x153> + 405269: eb 22 jmp 40528d <_nl_expand_alias+0x16d> + 40526b: ff 0d a7 6e 2c 00 decl 0x2c6ea7(%rip) # 6cc118 + 405271: 74 1a je 40528d <_nl_expand_alias+0x16d> + 405273: 48 8d 3d 9e 6e 2c 00 lea 0x2c6e9e(%rip),%rdi # 6cc118 + 40527a: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 405281: e8 7a d3 03 00 callq 442600 <__lll_unlock_wake_private> + 405286: 48 81 c4 80 00 00 00 add $0x80,%rsp + 40528d: 48 83 c4 08 add $0x8,%rsp + 405291: 48 89 d0 mov %rdx,%rax + 405294: 5b pop %rbx + 405295: 5d pop %rbp + 405296: 41 5c pop %r12 + 405298: 41 5d pop %r13 + 40529a: 41 5e pop %r14 + 40529c: 41 5f pop %r15 + 40529e: c3 retq + 40529f: 48 89 35 4a 6e 2c 00 mov %rsi,0x2c6e4a(%rip) # 6cc0f0 + 4052a6: 48 29 fe sub %rdi,%rsi + 4052a9: e8 f2 f9 ff ff callq 404ca0 + 4052ae: 48 85 c0 test %rax,%rax + 4052b1: 0f 84 27 ff ff ff je 4051de <_nl_expand_alias+0xbe> + 4052b7: e9 c2 fe ff ff jmpq 40517e <_nl_expand_alias+0x5e> + 4052bc: 40 84 f6 test %sil,%sil + 4052bf: 74 94 je 405255 <_nl_expand_alias+0x135> + 4052c1: eb 8b jmp 40524e <_nl_expand_alias+0x12e> + 4052c3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4052c8: 49 8b 54 24 08 mov 0x8(%r12),%rdx + 4052cd: eb 88 jmp 405257 <_nl_expand_alias+0x137> + 4052cf: 48 c7 05 16 6e 2c 00 movq $0x4a11d9,0x2c6e16(%rip) # 6cc0f0 + 4052d6: d9 11 4a 00 + 4052da: e9 9f fe ff ff jmpq 40517e <_nl_expand_alias+0x5e> + 4052df: 90 nop + +00000000004052e0 <_nl_make_l10nflist>: + 4052e0: 41 57 push %r15 + 4052e2: 41 56 push %r14 + 4052e4: 4d 89 ce mov %r9,%r14 + 4052e7: 41 55 push %r13 + 4052e9: 41 54 push %r12 + 4052eb: 41 89 cc mov %ecx,%r12d + 4052ee: 55 push %rbp + 4052ef: 53 push %rbx + 4052f0: 48 89 d3 mov %rdx,%rbx + 4052f3: 48 83 c3 02 add $0x2,%rbx + 4052f7: 48 83 ec 48 sub $0x48,%rsp + 4052fb: 48 89 7c 24 08 mov %rdi,0x8(%rsp) + 405300: 4c 89 c7 mov %r8,%rdi + 405303: 48 89 74 24 28 mov %rsi,0x28(%rsp) + 405308: 48 89 54 24 18 mov %rdx,0x18(%rsp) + 40530d: 89 4c 24 34 mov %ecx,0x34(%rsp) + 405311: 4c 89 04 24 mov %r8,(%rsp) + 405315: 4c 89 4c 24 10 mov %r9,0x10(%rsp) + 40531a: e8 31 e3 01 00 callq 423650 + 40531f: 41 83 e4 04 and $0x4,%r12d + 405323: 4c 8b bc 24 98 00 00 mov 0x98(%rsp),%r15 + 40532a: 00 + 40532b: 49 89 c5 mov %rax,%r13 + 40532e: 0f 84 5c 04 00 00 je 405790 <_nl_make_l10nflist+0x4b0> + 405334: 4c 89 f7 mov %r14,%rdi + 405337: e8 14 e3 01 00 callq 423650 + 40533c: 48 8d 68 01 lea 0x1(%rax),%rbp + 405340: 8b 44 24 34 mov 0x34(%rsp),%eax + 405344: 49 01 dd add %rbx,%r13 + 405347: 45 31 f6 xor %r14d,%r14d + 40534a: 83 e0 02 and $0x2,%eax + 40534d: 89 44 24 20 mov %eax,0x20(%rsp) + 405351: 74 11 je 405364 <_nl_make_l10nflist+0x84> + 405353: 48 8b bc 24 80 00 00 mov 0x80(%rsp),%rdi + 40535a: 00 + 40535b: e8 f0 e2 01 00 callq 423650 + 405360: 4c 8d 70 01 lea 0x1(%rax),%r14 + 405364: 8b 44 24 34 mov 0x34(%rsp),%eax + 405368: 4c 01 ed add %r13,%rbp + 40536b: 31 db xor %ebx,%ebx + 40536d: 83 e0 01 and $0x1,%eax + 405370: 89 44 24 38 mov %eax,0x38(%rsp) + 405374: 74 11 je 405387 <_nl_make_l10nflist+0xa7> + 405376: 48 8b bc 24 88 00 00 mov 0x88(%rsp),%rdi + 40537d: 00 + 40537e: e8 cd e2 01 00 callq 423650 + 405383: 48 8d 58 01 lea 0x1(%rax),%rbx + 405387: 8b 44 24 34 mov 0x34(%rsp),%eax + 40538b: 4c 01 f5 add %r14,%rbp + 40538e: 45 31 ed xor %r13d,%r13d + 405391: 83 e0 08 and $0x8,%eax + 405394: 89 44 24 3c mov %eax,0x3c(%rsp) + 405398: 74 11 je 4053ab <_nl_make_l10nflist+0xcb> + 40539a: 48 8b bc 24 90 00 00 mov 0x90(%rsp),%rdi + 4053a1: 00 + 4053a2: e8 a9 e2 01 00 callq 423650 + 4053a7: 4c 8d 68 01 lea 0x1(%rax),%r13 + 4053ab: 4c 89 ff mov %r15,%rdi + 4053ae: e8 9d e2 01 00 callq 423650 + 4053b3: 48 8d 3c 2b lea (%rbx,%rbp,1),%rdi + 4053b7: 49 89 c6 mov %rax,%r14 + 4053ba: 4c 01 ef add %r13,%rdi + 4053bd: 48 01 c7 add %rax,%rdi + 4053c0: e8 4b 86 01 00 callq 41da10 <__libc_malloc> + 4053c5: 48 85 c0 test %rax,%rax + 4053c8: 49 89 c5 mov %rax,%r13 + 4053cb: 0f 84 a3 04 00 00 je 405874 <_nl_make_l10nflist+0x594> + 4053d1: 48 8b 5c 24 18 mov 0x18(%rsp),%rbx + 4053d6: 48 8b 74 24 28 mov 0x28(%rsp),%rsi + 4053db: 48 89 c7 mov %rax,%rdi + 4053de: 48 89 da mov %rbx,%rdx + 4053e1: e8 3a 6c 02 00 callq 42c020 + 4053e6: 48 85 db test %rbx,%rbx + 4053e9: 74 25 je 405410 <_nl_make_l10nflist+0x130> + 4053eb: 4c 89 ed mov %r13,%rbp + 4053ee: 66 90 xchg %ax,%ax + 4053f0: 48 89 ef mov %rbp,%rdi + 4053f3: e8 58 e2 01 00 callq 423650 + 4053f8: 48 29 c3 sub %rax,%rbx + 4053fb: 48 83 eb 01 sub $0x1,%rbx + 4053ff: 74 0f je 405410 <_nl_make_l10nflist+0x130> + 405401: 48 01 e8 add %rbp,%rax + 405404: 48 8d 68 01 lea 0x1(%rax),%rbp + 405408: c6 00 3a movb $0x3a,(%rax) + 40540b: eb e3 jmp 4053f0 <_nl_make_l10nflist+0x110> + 40540d: 0f 1f 00 nopl (%rax) + 405410: 48 8b 44 24 18 mov 0x18(%rsp),%rax + 405415: 48 8b 34 24 mov (%rsp),%rsi + 405419: 49 8d 7c 05 00 lea 0x0(%r13,%rax,1),%rdi + 40541e: 41 c6 44 05 ff 2f movb $0x2f,-0x1(%r13,%rax,1) + 405424: e8 e7 ae ff ff callq 400310 <__rela_iplt_end+0x48> + 405429: 45 85 e4 test %r12d,%r12d + 40542c: 0f 85 ce 03 00 00 jne 405800 <_nl_make_l10nflist+0x520> + 405432: 8b 74 24 20 mov 0x20(%rsp),%esi + 405436: 85 f6 test %esi,%esi + 405438: 0f 85 a0 03 00 00 jne 4057de <_nl_make_l10nflist+0x4fe> + 40543e: 8b 4c 24 38 mov 0x38(%rsp),%ecx + 405442: 85 c9 test %ecx,%ecx + 405444: 0f 85 7b 03 00 00 jne 4057c5 <_nl_make_l10nflist+0x4e5> + 40544a: 8b 54 24 3c mov 0x3c(%rsp),%edx + 40544e: 85 d2 test %edx,%edx + 405450: 0f 85 56 03 00 00 jne 4057ac <_nl_make_l10nflist+0x4cc> + 405456: 48 8d 78 01 lea 0x1(%rax),%rdi + 40545a: 49 8d 56 01 lea 0x1(%r14),%rdx + 40545e: c6 00 2f movb $0x2f,(%rax) + 405461: 4c 89 fe mov %r15,%rsi + 405464: e8 b7 6b 02 00 callq 42c020 + 405469: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40546e: 48 8b 00 mov (%rax),%rax + 405471: 48 85 c0 test %rax,%rax + 405474: 48 89 44 24 20 mov %rax,0x20(%rsp) + 405479: 0f 84 fc 03 00 00 je 40587b <_nl_make_l10nflist+0x59b> + 40547f: 49 89 c4 mov %rax,%r12 + 405482: 31 ed xor %ebp,%ebp + 405484: 0f 1f 40 00 nopl 0x0(%rax) + 405488: 49 8b 3c 24 mov (%r12),%rdi + 40548c: 48 85 ff test %rdi,%rdi + 40548f: 74 15 je 4054a6 <_nl_make_l10nflist+0x1c6> + 405491: 4c 89 ee mov %r13,%rsi + 405494: e8 c7 ae ff ff callq 400360 <__rela_iplt_end+0x98> + 405499: 85 c0 test %eax,%eax + 40549b: 0f 84 78 03 00 00 je 405819 <_nl_make_l10nflist+0x539> + 4054a1: 78 0d js 4054b0 <_nl_make_l10nflist+0x1d0> + 4054a3: 4c 89 e5 mov %r12,%rbp + 4054a6: 4d 8b 64 24 18 mov 0x18(%r12),%r12 + 4054ab: 4d 85 e4 test %r12,%r12 + 4054ae: 75 d8 jne 405488 <_nl_make_l10nflist+0x1a8> + 4054b0: 8b 84 24 a0 00 00 00 mov 0xa0(%rsp),%eax + 4054b7: 85 c0 test %eax,%eax + 4054b9: 0f 84 57 03 00 00 je 405816 <_nl_make_l10nflist+0x536> + 4054bf: 48 8b 44 24 18 mov 0x18(%rsp),%rax + 4054c4: 45 31 e4 xor %r12d,%r12d + 4054c7: 4c 8b 74 24 28 mov 0x28(%rsp),%r14 + 4054cc: 48 85 c0 test %rax,%rax + 4054cf: 48 89 c3 mov %rax,%rbx + 4054d2: 0f 84 7c 03 00 00 je 405854 <_nl_make_l10nflist+0x574> + 4054d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4054df: 00 + 4054e0: 4c 89 f7 mov %r14,%rdi + 4054e3: 49 83 c4 01 add $0x1,%r12 + 4054e7: e8 64 e1 01 00 callq 423650 + 4054ec: 48 29 c3 sub %rax,%rbx + 4054ef: 4d 8d 74 06 01 lea 0x1(%r14,%rax,1),%r14 + 4054f4: 48 83 eb 01 sub $0x1,%rbx + 4054f8: 75 e6 jne 4054e0 <_nl_make_l10nflist+0x200> + 4054fa: 8b 44 24 34 mov 0x34(%rsp),%eax + 4054fe: 89 c2 mov %eax,%edx + 405500: 25 55 55 00 00 and $0x5555,%eax + 405505: 81 e2 aa aa ff ff and $0xffffaaaa,%edx + 40550b: d1 fa sar %edx + 40550d: 01 c2 add %eax,%edx + 40550f: 89 d0 mov %edx,%eax + 405511: 81 e2 33 33 00 00 and $0x3333,%edx + 405517: 25 cc cc ff ff and $0xffffcccc,%eax + 40551c: c1 f8 02 sar $0x2,%eax + 40551f: 01 d0 add %edx,%eax + 405521: 89 c2 mov %eax,%edx + 405523: c1 fa 04 sar $0x4,%edx + 405526: 01 d0 add %edx,%eax + 405528: 25 0f 0f 00 00 and $0xf0f,%eax + 40552d: 89 c1 mov %eax,%ecx + 40552f: c1 f9 08 sar $0x8,%ecx + 405532: 01 c1 add %eax,%ecx + 405534: b8 01 00 00 00 mov $0x1,%eax + 405539: d3 e0 shl %cl,%eax + 40553b: 48 63 f8 movslq %eax,%rdi + 40553e: 48 c1 e7 04 shl $0x4,%rdi + 405542: 4c 0f af e7 imul %rdi,%r12 + 405546: 49 8d 7c 24 28 lea 0x28(%r12),%rdi + 40554b: e8 c0 84 01 00 callq 41da10 <__libc_malloc> + 405550: 48 85 c0 test %rax,%rax + 405553: 49 89 c4 mov %rax,%r12 + 405556: 0f 84 26 03 00 00 je 405882 <_nl_make_l10nflist+0x5a2> + 40555c: 48 8b 5c 24 18 mov 0x18(%rsp),%rbx + 405561: 4c 8b 74 24 28 mov 0x28(%rsp),%r14 + 405566: 4c 89 28 mov %r13,(%rax) + 405569: 45 31 ed xor %r13d,%r13d + 40556c: 0f 1f 40 00 nopl 0x0(%rax) + 405570: 4c 89 f7 mov %r14,%rdi + 405573: 49 83 c5 01 add $0x1,%r13 + 405577: e8 d4 e0 01 00 callq 423650 + 40557c: 48 29 c3 sub %rax,%rbx + 40557f: 4d 8d 74 06 01 lea 0x1(%r14,%rax,1),%r14 + 405584: 48 83 eb 01 sub $0x1,%rbx + 405588: 75 e6 jne 405570 <_nl_make_l10nflist+0x290> + 40558a: 49 83 fd 01 cmp $0x1,%r13 + 40558e: b8 01 00 00 00 mov $0x1,%eax + 405593: 0f 84 fe 01 00 00 je 405797 <_nl_make_l10nflist+0x4b7> + 405599: 48 85 ed test %rbp,%rbp + 40559c: 41 89 44 24 08 mov %eax,0x8(%r12) + 4055a1: 49 c7 44 24 10 00 00 movq $0x0,0x10(%r12) + 4055a8: 00 00 + 4055aa: 0f 84 83 02 00 00 je 405833 <_nl_make_l10nflist+0x553> + 4055b0: 48 8b 45 18 mov 0x18(%rbp),%rax + 4055b4: 49 89 44 24 18 mov %rax,0x18(%r12) + 4055b9: 4c 89 65 18 mov %r12,0x18(%rbp) + 4055bd: 48 8b 44 24 18 mov 0x18(%rsp),%rax + 4055c2: 48 85 c0 test %rax,%rax + 4055c5: 0f 84 7f 02 00 00 je 40584a <_nl_make_l10nflist+0x56a> + 4055cb: 4c 8b 6c 24 28 mov 0x28(%rsp),%r13 + 4055d0: 48 89 c3 mov %rax,%rbx + 4055d3: 31 ed xor %ebp,%ebp + 4055d5: 0f 1f 00 nopl (%rax) + 4055d8: 4c 89 ef mov %r13,%rdi + 4055db: 48 83 c5 01 add $0x1,%rbp + 4055df: e8 6c e0 01 00 callq 423650 + 4055e4: 48 29 c3 sub %rax,%rbx + 4055e7: 4d 8d 6c 05 01 lea 0x1(%r13,%rax,1),%r13 + 4055ec: 48 83 eb 01 sub $0x1,%rbx + 4055f0: 75 e6 jne 4055d8 <_nl_make_l10nflist+0x2f8> + 4055f2: 44 8b 6c 24 34 mov 0x34(%rsp),%r13d + 4055f7: 31 c0 xor %eax,%eax + 4055f9: 48 83 fd 01 cmp $0x1,%rbp + 4055fd: 0f 94 c0 sete %al + 405600: 41 29 c5 sub %eax,%r13d + 405603: 45 85 ed test %r13d,%r13d + 405606: 0f 88 c4 00 00 00 js 4056d0 <_nl_make_l10nflist+0x3f0> + 40560c: 8b 44 24 34 mov 0x34(%rsp),%eax + 405610: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx + 405615: 31 ed xor %ebp,%ebp + 405617: f7 d0 not %eax + 405619: 89 44 24 20 mov %eax,0x20(%rsp) + 40561d: 48 8b 44 24 28 mov 0x28(%rsp),%rax + 405622: 4c 8d 34 08 lea (%rax,%rcx,1),%r14 + 405626: eb 16 jmp 40563e <_nl_make_l10nflist+0x35e> + 405628: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40562f: 00 + 405630: 41 83 ed 01 sub $0x1,%r13d + 405634: 41 83 fd ff cmp $0xffffffff,%r13d + 405638: 0f 84 9a 00 00 00 je 4056d8 <_nl_make_l10nflist+0x3f8> + 40563e: 44 85 6c 24 20 test %r13d,0x20(%rsp) + 405643: 75 eb jne 405630 <_nl_make_l10nflist+0x350> + 405645: 48 83 7c 24 18 00 cmpq $0x0,0x18(%rsp) + 40564b: 74 e3 je 405630 <_nl_make_l10nflist+0x350> + 40564d: 48 8b 5c 24 28 mov 0x28(%rsp),%rbx + 405652: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 405658: 48 89 df mov %rbx,%rdi + 40565b: 48 83 c5 01 add $0x1,%rbp + 40565f: e8 ec df 01 00 callq 423650 + 405664: 48 83 ec 08 sub $0x8,%rsp + 405668: 48 8d 50 01 lea 0x1(%rax),%rdx + 40566c: 44 89 e9 mov %r13d,%ecx + 40566f: 6a 01 pushq $0x1 + 405671: 41 57 push %r15 + 405673: 48 89 de mov %rbx,%rsi + 405676: ff b4 24 a8 00 00 00 pushq 0xa8(%rsp) + 40567d: ff b4 24 a8 00 00 00 pushq 0xa8(%rsp) + 405684: ff b4 24 a8 00 00 00 pushq 0xa8(%rsp) + 40568b: 4c 8b 4c 24 40 mov 0x40(%rsp),%r9 + 405690: 4c 8b 44 24 30 mov 0x30(%rsp),%r8 + 405695: 48 8b 7c 24 38 mov 0x38(%rsp),%rdi + 40569a: e8 41 fc ff ff callq 4052e0 <_nl_make_l10nflist> + 40569f: 48 83 c4 30 add $0x30,%rsp + 4056a3: 49 39 de cmp %rbx,%r14 + 4056a6: 49 89 44 ec 18 mov %rax,0x18(%r12,%rbp,8) + 4056ab: 76 83 jbe 405630 <_nl_make_l10nflist+0x350> + 4056ad: 31 f6 xor %esi,%esi + 4056af: 48 89 df mov %rbx,%rdi + 4056b2: e8 19 73 02 00 callq 42c9d0 <__rawmemchr> + 4056b7: 48 8d 58 01 lea 0x1(%rax),%rbx + 4056bb: 4c 39 f3 cmp %r14,%rbx + 4056be: 0f 83 6c ff ff ff jae 405630 <_nl_make_l10nflist+0x350> + 4056c4: 48 85 db test %rbx,%rbx + 4056c7: 75 8f jne 405658 <_nl_make_l10nflist+0x378> + 4056c9: e9 62 ff ff ff jmpq 405630 <_nl_make_l10nflist+0x350> + 4056ce: 66 90 xchg %ax,%ax + 4056d0: 31 ed xor %ebp,%ebp + 4056d2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4056d8: bf fe 11 4a 00 mov $0x4a11fe,%edi + 4056dd: b9 0b 00 00 00 mov $0xb,%ecx + 4056e2: 4c 89 fe mov %r15,%rsi + 4056e5: f3 a6 repz cmpsb %es:(%rdi),%ds:(%rsi) + 4056e7: 0f 85 87 00 00 00 jne 405774 <_nl_make_l10nflist+0x494> + 4056ed: 8b 5c 24 34 mov 0x34(%rsp),%ebx + 4056f1: 85 db test %ebx,%ebx + 4056f3: 78 7f js 405774 <_nl_make_l10nflist+0x494> + 4056f5: 41 89 dd mov %ebx,%r13d + 4056f8: 41 f7 d5 not %r13d + 4056fb: 45 89 ee mov %r13d,%r14d + 4056fe: 49 89 ed mov %rbp,%r13 + 405701: 4c 89 fd mov %r15,%rbp + 405704: eb 12 jmp 405718 <_nl_make_l10nflist+0x438> + 405706: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40570d: 00 00 00 + 405710: 83 eb 01 sub $0x1,%ebx + 405713: 83 fb ff cmp $0xffffffff,%ebx + 405716: 74 59 je 405771 <_nl_make_l10nflist+0x491> + 405718: 44 85 f3 test %r14d,%ebx + 40571b: 75 f3 jne 405710 <_nl_make_l10nflist+0x430> + 40571d: 48 83 ec 08 sub $0x8,%rsp + 405721: 89 d9 mov %ebx,%ecx + 405723: 4d 8d 7d 01 lea 0x1(%r13),%r15 + 405727: 6a 01 pushq $0x1 + 405729: 55 push %rbp + 40572a: ba 1b 00 00 00 mov $0x1b,%edx + 40572f: ff b4 24 a8 00 00 00 pushq 0xa8(%rsp) + 405736: ff b4 24 a8 00 00 00 pushq 0xa8(%rsp) + 40573d: be 0a 12 4a 00 mov $0x4a120a,%esi + 405742: ff b4 24 a8 00 00 00 pushq 0xa8(%rsp) + 405749: 4c 8b 4c 24 40 mov 0x40(%rsp),%r9 + 40574e: 83 eb 01 sub $0x1,%ebx + 405751: 4c 8b 44 24 30 mov 0x30(%rsp),%r8 + 405756: 48 8b 7c 24 38 mov 0x38(%rsp),%rdi + 40575b: e8 80 fb ff ff callq 4052e0 <_nl_make_l10nflist> + 405760: 48 83 c4 30 add $0x30,%rsp + 405764: 83 fb ff cmp $0xffffffff,%ebx + 405767: 4b 89 44 ec 20 mov %rax,0x20(%r12,%r13,8) + 40576c: 4d 89 fd mov %r15,%r13 + 40576f: 75 a7 jne 405718 <_nl_make_l10nflist+0x438> + 405771: 4c 89 ed mov %r13,%rbp + 405774: 49 c7 44 ec 20 00 00 movq $0x0,0x20(%r12,%rbp,8) + 40577b: 00 00 + 40577d: 4c 89 e0 mov %r12,%rax + 405780: 48 83 c4 48 add $0x48,%rsp + 405784: 5b pop %rbx + 405785: 5d pop %rbp + 405786: 41 5c pop %r12 + 405788: 41 5d pop %r13 + 40578a: 41 5e pop %r14 + 40578c: 41 5f pop %r15 + 40578e: c3 retq + 40578f: 90 nop + 405790: 31 ed xor %ebp,%ebp + 405792: e9 a9 fb ff ff jmpq 405340 <_nl_make_l10nflist+0x60> + 405797: 8b 44 24 34 mov 0x34(%rsp),%eax + 40579b: 83 e0 03 and $0x3,%eax + 40579e: 83 f8 03 cmp $0x3,%eax + 4057a1: 0f 94 c0 sete %al + 4057a4: 0f b6 c0 movzbl %al,%eax + 4057a7: e9 ed fd ff ff jmpq 405599 <_nl_make_l10nflist+0x2b9> + 4057ac: 48 8b b4 24 90 00 00 mov 0x90(%rsp),%rsi + 4057b3: 00 + 4057b4: 48 8d 78 01 lea 0x1(%rax),%rdi + 4057b8: c6 00 40 movb $0x40,(%rax) + 4057bb: e8 50 ab ff ff callq 400310 <__rela_iplt_end+0x48> + 4057c0: e9 91 fc ff ff jmpq 405456 <_nl_make_l10nflist+0x176> + 4057c5: 48 8b b4 24 88 00 00 mov 0x88(%rsp),%rsi + 4057cc: 00 + 4057cd: 48 8d 78 01 lea 0x1(%rax),%rdi + 4057d1: c6 00 2e movb $0x2e,(%rax) + 4057d4: e8 37 ab ff ff callq 400310 <__rela_iplt_end+0x48> + 4057d9: e9 6c fc ff ff jmpq 40544a <_nl_make_l10nflist+0x16a> + 4057de: 48 8b b4 24 80 00 00 mov 0x80(%rsp),%rsi + 4057e5: 00 + 4057e6: 48 8d 78 01 lea 0x1(%rax),%rdi + 4057ea: c6 00 2e movb $0x2e,(%rax) + 4057ed: e8 1e ab ff ff callq 400310 <__rela_iplt_end+0x48> + 4057f2: e9 47 fc ff ff jmpq 40543e <_nl_make_l10nflist+0x15e> + 4057f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4057fe: 00 00 + 405800: 48 8b 74 24 10 mov 0x10(%rsp),%rsi + 405805: 48 8d 78 01 lea 0x1(%rax),%rdi + 405809: c6 00 5f movb $0x5f,(%rax) + 40580c: e8 ff aa ff ff callq 400310 <__rela_iplt_end+0x48> + 405811: e9 1c fc ff ff jmpq 405432 <_nl_make_l10nflist+0x152> + 405816: 45 31 e4 xor %r12d,%r12d + 405819: 4c 89 ef mov %r13,%rdi + 40581c: e8 8f 85 01 00 callq 41ddb0 <__cfree> + 405821: 48 83 c4 48 add $0x48,%rsp + 405825: 4c 89 e0 mov %r12,%rax + 405828: 5b pop %rbx + 405829: 5d pop %rbp + 40582a: 41 5c pop %r12 + 40582c: 41 5d pop %r13 + 40582e: 41 5e pop %r14 + 405830: 41 5f pop %r15 + 405832: c3 retq + 405833: 48 8b 44 24 20 mov 0x20(%rsp),%rax + 405838: 49 89 44 24 18 mov %rax,0x18(%r12) + 40583d: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 405842: 4c 89 20 mov %r12,(%rax) + 405845: e9 73 fd ff ff jmpq 4055bd <_nl_make_l10nflist+0x2dd> + 40584a: 44 8b 6c 24 34 mov 0x34(%rsp),%r13d + 40584f: e9 af fd ff ff jmpq 405603 <_nl_make_l10nflist+0x323> + 405854: bf 28 00 00 00 mov $0x28,%edi + 405859: e8 b2 81 01 00 callq 41da10 <__libc_malloc> + 40585e: 48 85 c0 test %rax,%rax + 405861: 49 89 c4 mov %rax,%r12 + 405864: 74 1c je 405882 <_nl_make_l10nflist+0x5a2> + 405866: 4d 89 2c 24 mov %r13,(%r12) + 40586a: b8 01 00 00 00 mov $0x1,%eax + 40586f: e9 25 fd ff ff jmpq 405599 <_nl_make_l10nflist+0x2b9> + 405874: 31 c0 xor %eax,%eax + 405876: e9 05 ff ff ff jmpq 405780 <_nl_make_l10nflist+0x4a0> + 40587b: 31 ed xor %ebp,%ebp + 40587d: e9 2e fc ff ff jmpq 4054b0 <_nl_make_l10nflist+0x1d0> + 405882: 4c 89 ef mov %r13,%rdi + 405885: e8 26 85 01 00 callq 41ddb0 <__cfree> + 40588a: 31 c0 xor %eax,%eax + 40588c: e9 ef fe ff ff jmpq 405780 <_nl_make_l10nflist+0x4a0> + 405891: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 405896: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40589d: 00 00 00 + +00000000004058a0 <_nl_normalize_codeset>: + 4058a0: 41 55 push %r13 + 4058a2: 41 54 push %r12 + 4058a4: 49 89 f5 mov %rsi,%r13 + 4058a7: 55 push %rbp + 4058a8: 53 push %rbx + 4058a9: 48 89 fb mov %rdi,%rbx + 4058ac: 48 83 ec 08 sub $0x8,%rsp + 4058b0: 48 85 f6 test %rsi,%rsi + 4058b3: 0f 84 e4 00 00 00 je 40599d <_nl_normalize_codeset+0xfd> + 4058b9: 48 8b 2d 28 ce 0a 00 mov 0xace28(%rip),%rbp # 4b26e8 <_nl_C_locobj+0x68> + 4058c0: 4c 8d 24 37 lea (%rdi,%rsi,1),%r12 + 4058c4: 48 89 fa mov %rdi,%rdx + 4058c7: 41 b8 01 00 00 00 mov $0x1,%r8d + 4058cd: 31 ff xor %edi,%edi + 4058cf: 31 f6 xor %esi,%esi + 4058d1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4058d8: 0f b6 0a movzbl (%rdx),%ecx + 4058db: f6 44 4d 00 08 testb $0x8,0x0(%rbp,%rcx,2) + 4058e0: 48 89 c8 mov %rcx,%rax + 4058e3: 74 0e je 4058f3 <_nl_normalize_codeset+0x53> + 4058e5: 83 e8 30 sub $0x30,%eax + 4058e8: 48 83 c7 01 add $0x1,%rdi + 4058ec: 83 f8 0a cmp $0xa,%eax + 4058ef: 44 0f 43 c6 cmovae %esi,%r8d + 4058f3: 48 83 c2 01 add $0x1,%rdx + 4058f7: 4c 39 e2 cmp %r12,%rdx + 4058fa: 75 dc jne 4058d8 <_nl_normalize_codeset+0x38> + 4058fc: 45 85 c0 test %r8d,%r8d + 4058ff: 75 6f jne 405970 <_nl_normalize_codeset+0xd0> + 405901: 48 83 c7 01 add $0x1,%rdi + 405905: e8 06 81 01 00 callq 41da10 <__libc_malloc> + 40590a: 48 85 c0 test %rax,%rax + 40590d: 74 51 je 405960 <_nl_normalize_codeset+0xc0> + 40590f: 49 89 c0 mov %rax,%r8 + 405912: 48 8b 35 d7 cd 0a 00 mov 0xacdd7(%rip),%rsi # 4b26f0 <_nl_C_locobj+0x70> + 405919: 48 89 df mov %rbx,%rdi + 40591c: eb 16 jmp 405934 <_nl_normalize_codeset+0x94> + 40591e: 66 90 xchg %ax,%ax + 405920: 8b 14 8e mov (%rsi,%rcx,4),%edx + 405923: 49 83 c0 01 add $0x1,%r8 + 405927: 41 88 50 ff mov %dl,-0x1(%r8) + 40592b: 48 83 c7 01 add $0x1,%rdi + 40592f: 49 39 fc cmp %rdi,%r12 + 405932: 74 28 je 40595c <_nl_normalize_codeset+0xbc> + 405934: 0f b6 0f movzbl (%rdi),%ecx + 405937: f6 44 4d 01 04 testb $0x4,0x1(%rbp,%rcx,2) + 40593c: 48 89 ca mov %rcx,%rdx + 40593f: 75 df jne 405920 <_nl_normalize_codeset+0x80> + 405941: 0f b6 c9 movzbl %cl,%ecx + 405944: 83 e9 30 sub $0x30,%ecx + 405947: 83 f9 09 cmp $0x9,%ecx + 40594a: 77 df ja 40592b <_nl_normalize_codeset+0x8b> + 40594c: 48 83 c7 01 add $0x1,%rdi + 405950: 41 88 10 mov %dl,(%r8) + 405953: 49 83 c0 01 add $0x1,%r8 + 405957: 49 39 fc cmp %rdi,%r12 + 40595a: 75 d8 jne 405934 <_nl_normalize_codeset+0x94> + 40595c: 41 c6 00 00 movb $0x0,(%r8) + 405960: 48 83 c4 08 add $0x8,%rsp + 405964: 5b pop %rbx + 405965: 5d pop %rbp + 405966: 41 5c pop %r12 + 405968: 41 5d pop %r13 + 40596a: c3 retq + 40596b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 405970: 48 83 c7 04 add $0x4,%rdi + 405974: e8 97 80 01 00 callq 41da10 <__libc_malloc> + 405979: 48 85 c0 test %rax,%rax + 40597c: 74 e2 je 405960 <_nl_normalize_codeset+0xc0> + 40597e: 4d 85 ed test %r13,%r13 + 405981: c7 00 69 73 6f 00 movl $0x6f7369,(%rax) + 405987: 4c 8d 40 03 lea 0x3(%rax),%r8 + 40598b: 74 cf je 40595c <_nl_normalize_codeset+0xbc> + 40598d: 48 8b 2d 54 cd 0a 00 mov 0xacd54(%rip),%rbp # 4b26e8 <_nl_C_locobj+0x68> + 405994: 4e 8d 24 2b lea (%rbx,%r13,1),%r12 + 405998: e9 75 ff ff ff jmpq 405912 <_nl_normalize_codeset+0x72> + 40599d: bf 04 00 00 00 mov $0x4,%edi + 4059a2: e8 69 80 01 00 callq 41da10 <__libc_malloc> + 4059a7: 48 85 c0 test %rax,%rax + 4059aa: 75 d2 jne 40597e <_nl_normalize_codeset+0xde> + 4059ac: eb b2 jmp 405960 <_nl_normalize_codeset+0xc0> + 4059ae: 66 90 xchg %ax,%ax + +00000000004059b0 <_nl_explode_name>: + 4059b0: 41 56 push %r14 + 4059b2: 41 55 push %r13 + 4059b4: 41 54 push %r12 + 4059b6: 55 push %rbp + 4059b7: 53 push %rbx + 4059b8: 48 83 ec 20 sub $0x20,%rsp + 4059bc: 48 c7 02 00 00 00 00 movq $0x0,(%rdx) + 4059c3: 48 c7 01 00 00 00 00 movq $0x0,(%rcx) + 4059ca: 49 c7 00 00 00 00 00 movq $0x0,(%r8) + 4059d1: 49 c7 01 00 00 00 00 movq $0x0,(%r9) + 4059d8: 48 89 3e mov %rdi,(%rsi) + 4059db: 0f b6 07 movzbl (%rdi),%eax + 4059de: a8 bf test $0xbf,%al + 4059e0: 0f 84 aa 01 00 00 je 405b90 <_nl_explode_name+0x1e0> + 4059e6: 3c 5f cmp $0x5f,%al + 4059e8: 0f 84 a2 01 00 00 je 405b90 <_nl_explode_name+0x1e0> + 4059ee: 3c 2e cmp $0x2e,%al + 4059f0: 0f 84 9a 01 00 00 je 405b90 <_nl_explode_name+0x1e0> + 4059f6: 48 89 fb mov %rdi,%rbx + 4059f9: eb 1f jmp 405a1a <_nl_explode_name+0x6a> + 4059fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 405a00: 40 80 fe 5f cmp $0x5f,%sil + 405a04: 74 20 je 405a26 <_nl_explode_name+0x76> + 405a06: 40 80 fe 40 cmp $0x40,%sil + 405a0a: 0f 84 10 01 00 00 je 405b20 <_nl_explode_name+0x170> + 405a10: 40 80 fe 2e cmp $0x2e,%sil + 405a14: 0f 84 06 01 00 00 je 405b20 <_nl_explode_name+0x170> + 405a1a: 48 83 c3 01 add $0x1,%rbx + 405a1e: 0f b6 33 movzbl (%rbx),%esi + 405a21: 40 84 f6 test %sil,%sil + 405a24: 75 da jne 405a00 <_nl_explode_name+0x50> + 405a26: 48 39 df cmp %rbx,%rdi + 405a29: 0f 84 61 01 00 00 je 405b90 <_nl_explode_name+0x1e0> + 405a2f: 40 80 fe 5f cmp $0x5f,%sil + 405a33: 0f 85 ec 00 00 00 jne 405b25 <_nl_explode_name+0x175> + 405a39: 48 8d 43 01 lea 0x1(%rbx),%rax + 405a3d: c6 03 00 movb $0x0,(%rbx) + 405a40: 48 89 01 mov %rax,(%rcx) + 405a43: 0f b6 73 01 movzbl 0x1(%rbx),%esi + 405a47: 40 f6 c6 bf test $0xbf,%sil + 405a4b: 75 10 jne 405a5d <_nl_explode_name+0xad> + 405a4d: eb 14 jmp 405a63 <_nl_explode_name+0xb3> + 405a4f: 90 nop + 405a50: 48 83 c0 01 add $0x1,%rax + 405a54: 0f b6 30 movzbl (%rax),%esi + 405a57: 40 f6 c6 bf test $0xbf,%sil + 405a5b: 74 06 je 405a63 <_nl_explode_name+0xb3> + 405a5d: 40 80 fe 2e cmp $0x2e,%sil + 405a61: 75 ed jne 405a50 <_nl_explode_name+0xa0> + 405a63: 40 80 fe 2e cmp $0x2e,%sil + 405a67: 48 89 c3 mov %rax,%rbx + 405a6a: 41 bd 06 00 00 00 mov $0x6,%r13d + 405a70: bd 04 00 00 00 mov $0x4,%ebp + 405a75: 0f 85 bc 00 00 00 jne 405b37 <_nl_explode_name+0x187> + 405a7b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 405a80: 48 8d 7b 01 lea 0x1(%rbx),%rdi + 405a84: c6 03 00 movb $0x0,(%rbx) + 405a87: 49 89 38 mov %rdi,(%r8) + 405a8a: 0f b6 73 01 movzbl 0x1(%rbx),%esi + 405a8e: 40 f6 c6 bf test $0xbf,%sil + 405a92: 0f 84 5a 01 00 00 je 405bf2 <_nl_explode_name+0x242> + 405a98: 49 89 fc mov %rdi,%r12 + 405a9b: eb 06 jmp 405aa3 <_nl_explode_name+0xf3> + 405a9d: 0f 1f 00 nopl (%rax) + 405aa0: 49 89 dc mov %rbx,%r12 + 405aa3: 41 f6 44 24 01 bf testb $0xbf,0x1(%r12) + 405aa9: 49 8d 5c 24 01 lea 0x1(%r12),%rbx + 405aae: 75 f0 jne 405aa0 <_nl_explode_name+0xf0> + 405ab0: 48 39 df cmp %rbx,%rdi + 405ab3: 4c 89 0c 24 mov %r9,(%rsp) + 405ab7: 0f 84 40 01 00 00 je 405bfd <_nl_explode_name+0x24d> + 405abd: 48 89 de mov %rbx,%rsi + 405ac0: 4c 89 44 24 18 mov %r8,0x18(%rsp) + 405ac5: 48 89 4c 24 10 mov %rcx,0x10(%rsp) + 405aca: 48 29 fe sub %rdi,%rsi + 405acd: 48 89 54 24 08 mov %rdx,0x8(%rsp) + 405ad2: e8 c9 fd ff ff callq 4058a0 <_nl_normalize_codeset> + 405ad7: 4c 8b 0c 24 mov (%rsp),%r9 + 405adb: 48 85 c0 test %rax,%rax + 405ade: 49 89 c6 mov %rax,%r14 + 405ae1: 49 89 01 mov %rax,(%r9) + 405ae4: 0f 84 1b 01 00 00 je 405c05 <_nl_explode_name+0x255> + 405aea: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 + 405aef: 48 89 c6 mov %rax,%rsi + 405af2: 49 8b 38 mov (%r8),%rdi + 405af5: 4c 89 04 24 mov %r8,(%rsp) + 405af9: e8 62 a8 ff ff callq 400360 <__rela_iplt_end+0x98> + 405afe: 85 c0 test %eax,%eax + 405b00: 4c 8b 04 24 mov (%rsp),%r8 + 405b04: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 405b09: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx + 405b0e: 0f 84 ac 00 00 00 je 405bc0 <_nl_explode_name+0x210> + 405b14: 83 cd 03 or $0x3,%ebp + 405b17: 41 0f b6 74 24 01 movzbl 0x1(%r12),%esi + 405b1d: eb 18 jmp 405b37 <_nl_explode_name+0x187> + 405b1f: 90 nop + 405b20: 48 39 df cmp %rbx,%rdi + 405b23: 74 6b je 405b90 <_nl_explode_name+0x1e0> + 405b25: 31 ed xor %ebp,%ebp + 405b27: 40 80 fe 2e cmp $0x2e,%sil + 405b2b: 41 bd 02 00 00 00 mov $0x2,%r13d + 405b31: 0f 84 49 ff ff ff je 405a80 <_nl_explode_name+0xd0> + 405b37: 40 80 fe 40 cmp $0x40,%sil + 405b3b: 74 3b je 405b78 <_nl_explode_name+0x1c8> + 405b3d: 48 8b 01 mov (%rcx),%rax + 405b40: 48 85 c0 test %rax,%rax + 405b43: 74 0b je 405b50 <_nl_explode_name+0x1a0> + 405b45: 89 ea mov %ebp,%edx + 405b47: 83 e2 fb and $0xfffffffb,%edx + 405b4a: 80 38 00 cmpb $0x0,(%rax) + 405b4d: 0f 44 ea cmove %edx,%ebp + 405b50: 49 8b 10 mov (%r8),%rdx + 405b53: 89 e8 mov %ebp,%eax + 405b55: 48 85 d2 test %rdx,%rdx + 405b58: 74 0b je 405b65 <_nl_explode_name+0x1b5> + 405b5a: 89 e9 mov %ebp,%ecx + 405b5c: 83 e1 fd and $0xfffffffd,%ecx + 405b5f: 80 3a 00 cmpb $0x0,(%rdx) + 405b62: 0f 44 c1 cmove %ecx,%eax + 405b65: 48 83 c4 20 add $0x20,%rsp + 405b69: 5b pop %rbx + 405b6a: 5d pop %rbp + 405b6b: 41 5c pop %r12 + 405b6d: 41 5d pop %r13 + 405b6f: 41 5e pop %r14 + 405b71: c3 retq + 405b72: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 405b78: 48 8d 43 01 lea 0x1(%rbx),%rax + 405b7c: c6 03 00 movb $0x0,(%rbx) + 405b7f: 48 89 02 mov %rax,(%rdx) + 405b82: 89 e8 mov %ebp,%eax + 405b84: 83 c8 08 or $0x8,%eax + 405b87: 80 7b 01 00 cmpb $0x0,0x1(%rbx) + 405b8b: 0f 45 e8 cmovne %eax,%ebp + 405b8e: eb ad jmp 405b3d <_nl_explode_name+0x18d> + 405b90: 31 f6 xor %esi,%esi + 405b92: 4c 89 44 24 10 mov %r8,0x10(%rsp) + 405b97: 48 89 4c 24 08 mov %rcx,0x8(%rsp) + 405b9c: 48 89 14 24 mov %rdx,(%rsp) + 405ba0: 31 ed xor %ebp,%ebp + 405ba2: e8 29 6e 02 00 callq 42c9d0 <__rawmemchr> + 405ba7: 48 8b 14 24 mov (%rsp),%rdx + 405bab: 48 89 c3 mov %rax,%rbx + 405bae: 0f b6 30 movzbl (%rax),%esi + 405bb1: 48 8b 4c 24 08 mov 0x8(%rsp),%rcx + 405bb6: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 + 405bbb: e9 77 ff ff ff jmpq 405b37 <_nl_explode_name+0x187> + 405bc0: 4c 89 f7 mov %r14,%rdi + 405bc3: 4c 89 44 24 10 mov %r8,0x10(%rsp) + 405bc8: 48 89 4c 24 08 mov %rcx,0x8(%rsp) + 405bcd: 48 89 14 24 mov %rdx,(%rsp) + 405bd1: 44 89 ed mov %r13d,%ebp + 405bd4: e8 d7 81 01 00 callq 41ddb0 <__cfree> + 405bd9: 41 0f b6 74 24 01 movzbl 0x1(%r12),%esi + 405bdf: 48 8b 14 24 mov (%rsp),%rdx + 405be3: 48 8b 4c 24 08 mov 0x8(%rsp),%rcx + 405be8: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 + 405bed: e9 45 ff ff ff jmpq 405b37 <_nl_explode_name+0x187> + 405bf2: 44 89 ed mov %r13d,%ebp + 405bf5: 48 89 fb mov %rdi,%rbx + 405bf8: e9 3a ff ff ff jmpq 405b37 <_nl_explode_name+0x187> + 405bfd: 44 89 ed mov %r13d,%ebp + 405c00: e9 32 ff ff ff jmpq 405b37 <_nl_explode_name+0x187> + 405c05: b8 ff ff ff ff mov $0xffffffff,%eax + 405c0a: e9 56 ff ff ff jmpq 405b65 <_nl_explode_name+0x1b5> + 405c0f: 90 nop + +0000000000405c10 <__gettext_free_exp>: + 405c10: 48 85 ff test %rdi,%rdi + 405c13: 0f 84 af 06 00 00 je 4062c8 <__gettext_free_exp+0x6b8> + 405c19: 41 57 push %r15 + 405c1b: 41 56 push %r14 + 405c1d: 41 55 push %r13 + 405c1f: 41 54 push %r12 + 405c21: 55 push %rbp + 405c22: 53 push %rbx + 405c23: 48 89 fb mov %rdi,%rbx + 405c26: 48 83 ec 08 sub $0x8,%rsp + 405c2a: 8b 07 mov (%rdi),%eax + 405c2c: 83 f8 02 cmp $0x2,%eax + 405c2f: 74 56 je 405c87 <__gettext_free_exp+0x77> + 405c31: 83 f8 03 cmp $0x3,%eax + 405c34: 74 22 je 405c58 <__gettext_free_exp+0x48> + 405c36: 83 f8 01 cmp $0x1,%eax + 405c39: 74 7b je 405cb6 <__gettext_free_exp+0xa6> + 405c3b: 48 83 c4 08 add $0x8,%rsp + 405c3f: 48 89 df mov %rbx,%rdi + 405c42: 5b pop %rbx + 405c43: 5d pop %rbp + 405c44: 41 5c pop %r12 + 405c46: 41 5d pop %r13 + 405c48: 41 5e pop %r14 + 405c4a: 41 5f pop %r15 + 405c4c: e9 5f 81 01 00 jmpq 41ddb0 <__cfree> + 405c51: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 405c58: 48 8b 6f 18 mov 0x18(%rdi),%rbp + 405c5c: 48 85 ed test %rbp,%rbp + 405c5f: 74 26 je 405c87 <__gettext_free_exp+0x77> + 405c61: 8b 45 00 mov 0x0(%rbp),%eax + 405c64: 83 f8 02 cmp $0x2,%eax + 405c67: 0f 84 6c 03 00 00 je 405fd9 <__gettext_free_exp+0x3c9> + 405c6d: 83 f8 03 cmp $0x3,%eax + 405c70: 0f 84 5a 03 00 00 je 405fd0 <__gettext_free_exp+0x3c0> + 405c76: 83 f8 01 cmp $0x1,%eax + 405c79: 0f 84 63 03 00 00 je 405fe2 <__gettext_free_exp+0x3d2> + 405c7f: 48 89 ef mov %rbp,%rdi + 405c82: e8 29 81 01 00 callq 41ddb0 <__cfree> + 405c87: 48 8b 6b 10 mov 0x10(%rbx),%rbp + 405c8b: 48 85 ed test %rbp,%rbp + 405c8e: 74 26 je 405cb6 <__gettext_free_exp+0xa6> + 405c90: 8b 45 00 mov 0x0(%rbp),%eax + 405c93: 83 f8 02 cmp $0x2,%eax + 405c96: 0f 84 5d 01 00 00 je 405df9 <__gettext_free_exp+0x1e9> + 405c9c: 83 f8 03 cmp $0x3,%eax + 405c9f: 0f 84 4b 01 00 00 je 405df0 <__gettext_free_exp+0x1e0> + 405ca5: 83 f8 01 cmp $0x1,%eax + 405ca8: 0f 84 7b 01 00 00 je 405e29 <__gettext_free_exp+0x219> + 405cae: 48 89 ef mov %rbp,%rdi + 405cb1: e8 fa 80 01 00 callq 41ddb0 <__cfree> + 405cb6: 48 8b 6b 08 mov 0x8(%rbx),%rbp + 405cba: 48 85 ed test %rbp,%rbp + 405cbd: 0f 84 78 ff ff ff je 405c3b <__gettext_free_exp+0x2b> + 405cc3: 8b 45 00 mov 0x0(%rbp),%eax + 405cc6: 83 f8 02 cmp $0x2,%eax + 405cc9: 74 4b je 405d16 <__gettext_free_exp+0x106> + 405ccb: 83 f8 03 cmp $0x3,%eax + 405cce: 0f 84 cc 03 00 00 je 4060a0 <__gettext_free_exp+0x490> + 405cd4: 83 f8 01 cmp $0x1,%eax + 405cd7: 74 6d je 405d46 <__gettext_free_exp+0x136> + 405cd9: 48 89 ef mov %rbp,%rdi + 405cdc: e8 cf 80 01 00 callq 41ddb0 <__cfree> + 405ce1: e9 55 ff ff ff jmpq 405c3b <__gettext_free_exp+0x2b> + 405ce6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 405ced: 00 00 00 + 405cf0: 49 8b 7c 24 18 mov 0x18(%r12),%rdi + 405cf5: e8 16 ff ff ff callq 405c10 <__gettext_free_exp> + 405cfa: 49 8b 7c 24 10 mov 0x10(%r12),%rdi + 405cff: e8 0c ff ff ff callq 405c10 <__gettext_free_exp> + 405d04: 49 8b 7c 24 08 mov 0x8(%r12),%rdi + 405d09: e8 02 ff ff ff callq 405c10 <__gettext_free_exp> + 405d0e: 4c 89 e7 mov %r12,%rdi + 405d11: e8 9a 80 01 00 callq 41ddb0 <__cfree> + 405d16: 4c 8b 65 10 mov 0x10(%rbp),%r12 + 405d1a: 4d 85 e4 test %r12,%r12 + 405d1d: 74 27 je 405d46 <__gettext_free_exp+0x136> + 405d1f: 41 8b 04 24 mov (%r12),%eax + 405d23: 83 f8 02 cmp $0x2,%eax + 405d26: 0f 84 36 02 00 00 je 405f62 <__gettext_free_exp+0x352> + 405d2c: 83 f8 03 cmp $0x3,%eax + 405d2f: 0f 84 23 02 00 00 je 405f58 <__gettext_free_exp+0x348> + 405d35: 83 f8 01 cmp $0x1,%eax + 405d38: 0f 84 55 02 00 00 je 405f93 <__gettext_free_exp+0x383> + 405d3e: 4c 89 e7 mov %r12,%rdi + 405d41: e8 6a 80 01 00 callq 41ddb0 <__cfree> + 405d46: 4c 8b 65 08 mov 0x8(%rbp),%r12 + 405d4a: 4d 85 e4 test %r12,%r12 + 405d4d: 74 8a je 405cd9 <__gettext_free_exp+0xc9> + 405d4f: 41 8b 04 24 mov (%r12),%eax + 405d53: 83 f8 02 cmp $0x2,%eax + 405d56: 74 22 je 405d7a <__gettext_free_exp+0x16a> + 405d58: 83 f8 03 cmp $0x3,%eax + 405d5b: 74 13 je 405d70 <__gettext_free_exp+0x160> + 405d5d: 83 f8 01 cmp $0x1,%eax + 405d60: 74 49 je 405dab <__gettext_free_exp+0x19b> + 405d62: 4c 89 e7 mov %r12,%rdi + 405d65: e8 46 80 01 00 callq 41ddb0 <__cfree> + 405d6a: e9 6a ff ff ff jmpq 405cd9 <__gettext_free_exp+0xc9> + 405d6f: 90 nop + 405d70: 49 8b 7c 24 18 mov 0x18(%r12),%rdi + 405d75: e8 96 fe ff ff callq 405c10 <__gettext_free_exp> + 405d7a: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 + 405d7f: 4d 85 ed test %r13,%r13 + 405d82: 74 27 je 405dab <__gettext_free_exp+0x19b> + 405d84: 41 8b 45 00 mov 0x0(%r13),%eax + 405d88: 83 f8 02 cmp $0x2,%eax + 405d8b: 0f 84 b8 03 00 00 je 406149 <__gettext_free_exp+0x539> + 405d91: 83 f8 03 cmp $0x3,%eax + 405d94: 0f 84 a6 03 00 00 je 406140 <__gettext_free_exp+0x530> + 405d9a: 83 f8 01 cmp $0x1,%eax + 405d9d: 0f 84 af 03 00 00 je 406152 <__gettext_free_exp+0x542> + 405da3: 4c 89 ef mov %r13,%rdi + 405da6: e8 05 80 01 00 callq 41ddb0 <__cfree> + 405dab: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 + 405db0: 4d 85 ed test %r13,%r13 + 405db3: 74 ad je 405d62 <__gettext_free_exp+0x152> + 405db5: 41 8b 45 00 mov 0x0(%r13),%eax + 405db9: 83 f8 02 cmp $0x2,%eax + 405dbc: 0f 84 b7 00 00 00 je 405e79 <__gettext_free_exp+0x269> + 405dc2: 83 f8 03 cmp $0x3,%eax + 405dc5: 0f 84 a5 00 00 00 je 405e70 <__gettext_free_exp+0x260> + 405dcb: 83 f8 01 cmp $0x1,%eax + 405dce: 0f 84 d4 00 00 00 je 405ea8 <__gettext_free_exp+0x298> + 405dd4: 4c 89 ef mov %r13,%rdi + 405dd7: e8 d4 7f 01 00 callq 41ddb0 <__cfree> + 405ddc: 4c 89 e7 mov %r12,%rdi + 405ddf: e8 cc 7f 01 00 callq 41ddb0 <__cfree> + 405de4: e9 f0 fe ff ff jmpq 405cd9 <__gettext_free_exp+0xc9> + 405de9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 405df0: 48 8b 7d 18 mov 0x18(%rbp),%rdi + 405df4: e8 17 fe ff ff callq 405c10 <__gettext_free_exp> + 405df9: 4c 8b 65 10 mov 0x10(%rbp),%r12 + 405dfd: 4d 85 e4 test %r12,%r12 + 405e00: 74 27 je 405e29 <__gettext_free_exp+0x219> + 405e02: 41 8b 04 24 mov (%r12),%eax + 405e06: 83 f8 02 cmp $0x2,%eax + 405e09: 0f 84 5b 04 00 00 je 40626a <__gettext_free_exp+0x65a> + 405e0f: 83 f8 03 cmp $0x3,%eax + 405e12: 0f 84 48 04 00 00 je 406260 <__gettext_free_exp+0x650> + 405e18: 83 f8 01 cmp $0x1,%eax + 405e1b: 0f 84 53 04 00 00 je 406274 <__gettext_free_exp+0x664> + 405e21: 4c 89 e7 mov %r12,%rdi + 405e24: e8 87 7f 01 00 callq 41ddb0 <__cfree> + 405e29: 4c 8b 65 08 mov 0x8(%rbp),%r12 + 405e2d: 4d 85 e4 test %r12,%r12 + 405e30: 0f 84 78 fe ff ff je 405cae <__gettext_free_exp+0x9e> + 405e36: 41 8b 04 24 mov (%r12),%eax + 405e3a: 83 f8 02 cmp $0x2,%eax + 405e3d: 0f 84 a7 00 00 00 je 405eea <__gettext_free_exp+0x2da> + 405e43: 83 f8 03 cmp $0x3,%eax + 405e46: 0f 84 94 00 00 00 je 405ee0 <__gettext_free_exp+0x2d0> + 405e4c: 83 f8 01 cmp $0x1,%eax + 405e4f: 0f 84 c6 00 00 00 je 405f1b <__gettext_free_exp+0x30b> + 405e55: 4c 89 e7 mov %r12,%rdi + 405e58: e8 53 7f 01 00 callq 41ddb0 <__cfree> + 405e5d: 48 89 ef mov %rbp,%rdi + 405e60: e8 4b 7f 01 00 callq 41ddb0 <__cfree> + 405e65: e9 4c fe ff ff jmpq 405cb6 <__gettext_free_exp+0xa6> + 405e6a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 405e70: 49 8b 7d 18 mov 0x18(%r13),%rdi + 405e74: e8 97 fd ff ff callq 405c10 <__gettext_free_exp> + 405e79: 4d 8b 75 10 mov 0x10(%r13),%r14 + 405e7d: 4d 85 f6 test %r14,%r14 + 405e80: 74 26 je 405ea8 <__gettext_free_exp+0x298> + 405e82: 41 8b 06 mov (%r14),%eax + 405e85: 83 f8 02 cmp $0x2,%eax + 405e88: 0f 84 bb 01 00 00 je 406049 <__gettext_free_exp+0x439> + 405e8e: 83 f8 03 cmp $0x3,%eax + 405e91: 0f 84 a9 01 00 00 je 406040 <__gettext_free_exp+0x430> + 405e97: 83 f8 01 cmp $0x1,%eax + 405e9a: 0f 84 b2 01 00 00 je 406052 <__gettext_free_exp+0x442> + 405ea0: 4c 89 f7 mov %r14,%rdi + 405ea3: e8 08 7f 01 00 callq 41ddb0 <__cfree> + 405ea8: 4d 8b 75 08 mov 0x8(%r13),%r14 + 405eac: 4d 85 f6 test %r14,%r14 + 405eaf: 0f 84 1f ff ff ff je 405dd4 <__gettext_free_exp+0x1c4> + 405eb5: 41 8b 06 mov (%r14),%eax + 405eb8: 83 f8 02 cmp $0x2,%eax + 405ebb: 0f 84 20 02 00 00 je 4060e1 <__gettext_free_exp+0x4d1> + 405ec1: 83 f8 03 cmp $0x3,%eax + 405ec4: 0f 84 0e 02 00 00 je 4060d8 <__gettext_free_exp+0x4c8> + 405eca: 83 f8 01 cmp $0x1,%eax + 405ecd: 0f 84 17 02 00 00 je 4060ea <__gettext_free_exp+0x4da> + 405ed3: 4c 89 f7 mov %r14,%rdi + 405ed6: e8 d5 7e 01 00 callq 41ddb0 <__cfree> + 405edb: e9 f4 fe ff ff jmpq 405dd4 <__gettext_free_exp+0x1c4> + 405ee0: 49 8b 7c 24 18 mov 0x18(%r12),%rdi + 405ee5: e8 26 fd ff ff callq 405c10 <__gettext_free_exp> + 405eea: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 + 405eef: 4d 85 ed test %r13,%r13 + 405ef2: 74 27 je 405f1b <__gettext_free_exp+0x30b> + 405ef4: 41 8b 45 00 mov 0x0(%r13),%eax + 405ef8: 83 f8 02 cmp $0x2,%eax + 405efb: 0f 84 88 01 00 00 je 406089 <__gettext_free_exp+0x479> + 405f01: 83 f8 03 cmp $0x3,%eax + 405f04: 0f 84 76 01 00 00 je 406080 <__gettext_free_exp+0x470> + 405f0a: 83 f8 01 cmp $0x1,%eax + 405f0d: 0f 84 7f 01 00 00 je 406092 <__gettext_free_exp+0x482> + 405f13: 4c 89 ef mov %r13,%rdi + 405f16: e8 95 7e 01 00 callq 41ddb0 <__cfree> + 405f1b: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 + 405f20: 4d 85 ed test %r13,%r13 + 405f23: 0f 84 2c ff ff ff je 405e55 <__gettext_free_exp+0x245> + 405f29: 41 8b 45 00 mov 0x0(%r13),%eax + 405f2d: 83 f8 02 cmp $0x2,%eax + 405f30: 0f 84 73 02 00 00 je 4061a9 <__gettext_free_exp+0x599> + 405f36: 83 f8 03 cmp $0x3,%eax + 405f39: 0f 84 61 02 00 00 je 4061a0 <__gettext_free_exp+0x590> + 405f3f: 83 f8 01 cmp $0x1,%eax + 405f42: 0f 84 6a 02 00 00 je 4061b2 <__gettext_free_exp+0x5a2> + 405f48: 4c 89 ef mov %r13,%rdi + 405f4b: e8 60 7e 01 00 callq 41ddb0 <__cfree> + 405f50: e9 00 ff ff ff jmpq 405e55 <__gettext_free_exp+0x245> + 405f55: 0f 1f 00 nopl (%rax) + 405f58: 49 8b 7c 24 18 mov 0x18(%r12),%rdi + 405f5d: e8 ae fc ff ff callq 405c10 <__gettext_free_exp> + 405f62: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 + 405f67: 4d 85 ed test %r13,%r13 + 405f6a: 74 27 je 405f93 <__gettext_free_exp+0x383> + 405f6c: 41 8b 45 00 mov 0x0(%r13),%eax + 405f70: 83 f8 02 cmp $0x2,%eax + 405f73: 0f 84 f0 00 00 00 je 406069 <__gettext_free_exp+0x459> + 405f79: 83 f8 03 cmp $0x3,%eax + 405f7c: 0f 84 de 00 00 00 je 406060 <__gettext_free_exp+0x450> + 405f82: 83 f8 01 cmp $0x1,%eax + 405f85: 0f 84 e7 00 00 00 je 406072 <__gettext_free_exp+0x462> + 405f8b: 4c 89 ef mov %r13,%rdi + 405f8e: e8 1d 7e 01 00 callq 41ddb0 <__cfree> + 405f93: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 + 405f98: 4d 85 ed test %r13,%r13 + 405f9b: 0f 84 9d fd ff ff je 405d3e <__gettext_free_exp+0x12e> + 405fa1: 41 8b 45 00 mov 0x0(%r13),%eax + 405fa5: 83 f8 02 cmp $0x2,%eax + 405fa8: 0f 84 5b 02 00 00 je 406209 <__gettext_free_exp+0x5f9> + 405fae: 83 f8 03 cmp $0x3,%eax + 405fb1: 0f 84 49 02 00 00 je 406200 <__gettext_free_exp+0x5f0> + 405fb7: 83 f8 01 cmp $0x1,%eax + 405fba: 0f 84 52 02 00 00 je 406212 <__gettext_free_exp+0x602> + 405fc0: 4c 89 ef mov %r13,%rdi + 405fc3: e8 e8 7d 01 00 callq 41ddb0 <__cfree> + 405fc8: e9 71 fd ff ff jmpq 405d3e <__gettext_free_exp+0x12e> + 405fcd: 0f 1f 00 nopl (%rax) + 405fd0: 48 8b 7d 18 mov 0x18(%rbp),%rdi + 405fd4: e8 37 fc ff ff callq 405c10 <__gettext_free_exp> + 405fd9: 48 8b 7d 10 mov 0x10(%rbp),%rdi + 405fdd: e8 2e fc ff ff callq 405c10 <__gettext_free_exp> + 405fe2: 4c 8b 65 08 mov 0x8(%rbp),%r12 + 405fe6: 4d 85 e4 test %r12,%r12 + 405fe9: 0f 84 90 fc ff ff je 405c7f <__gettext_free_exp+0x6f> + 405fef: 41 8b 04 24 mov (%r12),%eax + 405ff3: 83 f8 02 cmp $0x2,%eax + 405ff6: 74 22 je 40601a <__gettext_free_exp+0x40a> + 405ff8: 83 f8 03 cmp $0x3,%eax + 405ffb: 74 13 je 406010 <__gettext_free_exp+0x400> + 405ffd: 83 f8 01 cmp $0x1,%eax + 406000: 74 22 je 406024 <__gettext_free_exp+0x414> + 406002: 4c 89 e7 mov %r12,%rdi + 406005: e8 a6 7d 01 00 callq 41ddb0 <__cfree> + 40600a: e9 70 fc ff ff jmpq 405c7f <__gettext_free_exp+0x6f> + 40600f: 90 nop + 406010: 49 8b 7c 24 18 mov 0x18(%r12),%rdi + 406015: e8 f6 fb ff ff callq 405c10 <__gettext_free_exp> + 40601a: 49 8b 7c 24 10 mov 0x10(%r12),%rdi + 40601f: e8 ec fb ff ff callq 405c10 <__gettext_free_exp> + 406024: 49 8b 7c 24 08 mov 0x8(%r12),%rdi + 406029: e8 e2 fb ff ff callq 405c10 <__gettext_free_exp> + 40602e: 4c 89 e7 mov %r12,%rdi + 406031: e8 7a 7d 01 00 callq 41ddb0 <__cfree> + 406036: e9 44 fc ff ff jmpq 405c7f <__gettext_free_exp+0x6f> + 40603b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 406040: 49 8b 7e 18 mov 0x18(%r14),%rdi + 406044: e8 c7 fb ff ff callq 405c10 <__gettext_free_exp> + 406049: 49 8b 7e 10 mov 0x10(%r14),%rdi + 40604d: e8 be fb ff ff callq 405c10 <__gettext_free_exp> + 406052: 49 8b 7e 08 mov 0x8(%r14),%rdi + 406056: e8 b5 fb ff ff callq 405c10 <__gettext_free_exp> + 40605b: e9 40 fe ff ff jmpq 405ea0 <__gettext_free_exp+0x290> + 406060: 49 8b 7d 18 mov 0x18(%r13),%rdi + 406064: e8 a7 fb ff ff callq 405c10 <__gettext_free_exp> + 406069: 49 8b 7d 10 mov 0x10(%r13),%rdi + 40606d: e8 9e fb ff ff callq 405c10 <__gettext_free_exp> + 406072: 49 8b 7d 08 mov 0x8(%r13),%rdi + 406076: e8 95 fb ff ff callq 405c10 <__gettext_free_exp> + 40607b: e9 0b ff ff ff jmpq 405f8b <__gettext_free_exp+0x37b> + 406080: 49 8b 7d 18 mov 0x18(%r13),%rdi + 406084: e8 87 fb ff ff callq 405c10 <__gettext_free_exp> + 406089: 49 8b 7d 10 mov 0x10(%r13),%rdi + 40608d: e8 7e fb ff ff callq 405c10 <__gettext_free_exp> + 406092: 49 8b 7d 08 mov 0x8(%r13),%rdi + 406096: e8 75 fb ff ff callq 405c10 <__gettext_free_exp> + 40609b: e9 73 fe ff ff jmpq 405f13 <__gettext_free_exp+0x303> + 4060a0: 4c 8b 65 18 mov 0x18(%rbp),%r12 + 4060a4: 4d 85 e4 test %r12,%r12 + 4060a7: 0f 84 69 fc ff ff je 405d16 <__gettext_free_exp+0x106> + 4060ad: 41 8b 04 24 mov (%r12),%eax + 4060b1: 83 f8 02 cmp $0x2,%eax + 4060b4: 0f 84 40 fc ff ff je 405cfa <__gettext_free_exp+0xea> + 4060ba: 83 f8 03 cmp $0x3,%eax + 4060bd: 0f 84 2d fc ff ff je 405cf0 <__gettext_free_exp+0xe0> + 4060c3: 83 f8 01 cmp $0x1,%eax + 4060c6: 0f 85 42 fc ff ff jne 405d0e <__gettext_free_exp+0xfe> + 4060cc: e9 33 fc ff ff jmpq 405d04 <__gettext_free_exp+0xf4> + 4060d1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4060d8: 49 8b 7e 18 mov 0x18(%r14),%rdi + 4060dc: e8 2f fb ff ff callq 405c10 <__gettext_free_exp> + 4060e1: 49 8b 7e 10 mov 0x10(%r14),%rdi + 4060e5: e8 26 fb ff ff callq 405c10 <__gettext_free_exp> + 4060ea: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 4060ee: 4d 85 ff test %r15,%r15 + 4060f1: 0f 84 dc fd ff ff je 405ed3 <__gettext_free_exp+0x2c3> + 4060f7: 41 8b 07 mov (%r15),%eax + 4060fa: 83 f8 02 cmp $0x2,%eax + 4060fd: 74 2a je 406129 <__gettext_free_exp+0x519> + 4060ff: 83 f8 03 cmp $0x3,%eax + 406102: 74 1c je 406120 <__gettext_free_exp+0x510> + 406104: 83 f8 01 cmp $0x1,%eax + 406107: 74 29 je 406132 <__gettext_free_exp+0x522> + 406109: 4c 89 ff mov %r15,%rdi + 40610c: e8 9f 7c 01 00 callq 41ddb0 <__cfree> + 406111: e9 bd fd ff ff jmpq 405ed3 <__gettext_free_exp+0x2c3> + 406116: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40611d: 00 00 00 + 406120: 49 8b 7f 18 mov 0x18(%r15),%rdi + 406124: e8 e7 fa ff ff callq 405c10 <__gettext_free_exp> + 406129: 49 8b 7f 10 mov 0x10(%r15),%rdi + 40612d: e8 de fa ff ff callq 405c10 <__gettext_free_exp> + 406132: 49 8b 7f 08 mov 0x8(%r15),%rdi + 406136: e8 d5 fa ff ff callq 405c10 <__gettext_free_exp> + 40613b: eb cc jmp 406109 <__gettext_free_exp+0x4f9> + 40613d: 0f 1f 00 nopl (%rax) + 406140: 49 8b 7d 18 mov 0x18(%r13),%rdi + 406144: e8 c7 fa ff ff callq 405c10 <__gettext_free_exp> + 406149: 49 8b 7d 10 mov 0x10(%r13),%rdi + 40614d: e8 be fa ff ff callq 405c10 <__gettext_free_exp> + 406152: 4d 8b 75 08 mov 0x8(%r13),%r14 + 406156: 4d 85 f6 test %r14,%r14 + 406159: 0f 84 44 fc ff ff je 405da3 <__gettext_free_exp+0x193> + 40615f: 41 8b 06 mov (%r14),%eax + 406162: 83 f8 02 cmp $0x2,%eax + 406165: 74 22 je 406189 <__gettext_free_exp+0x579> + 406167: 83 f8 03 cmp $0x3,%eax + 40616a: 74 14 je 406180 <__gettext_free_exp+0x570> + 40616c: 83 f8 01 cmp $0x1,%eax + 40616f: 74 21 je 406192 <__gettext_free_exp+0x582> + 406171: 4c 89 f7 mov %r14,%rdi + 406174: e8 37 7c 01 00 callq 41ddb0 <__cfree> + 406179: e9 25 fc ff ff jmpq 405da3 <__gettext_free_exp+0x193> + 40617e: 66 90 xchg %ax,%ax + 406180: 49 8b 7e 18 mov 0x18(%r14),%rdi + 406184: e8 87 fa ff ff callq 405c10 <__gettext_free_exp> + 406189: 49 8b 7e 10 mov 0x10(%r14),%rdi + 40618d: e8 7e fa ff ff callq 405c10 <__gettext_free_exp> + 406192: 49 8b 7e 08 mov 0x8(%r14),%rdi + 406196: e8 75 fa ff ff callq 405c10 <__gettext_free_exp> + 40619b: eb d4 jmp 406171 <__gettext_free_exp+0x561> + 40619d: 0f 1f 00 nopl (%rax) + 4061a0: 49 8b 7d 18 mov 0x18(%r13),%rdi + 4061a4: e8 67 fa ff ff callq 405c10 <__gettext_free_exp> + 4061a9: 49 8b 7d 10 mov 0x10(%r13),%rdi + 4061ad: e8 5e fa ff ff callq 405c10 <__gettext_free_exp> + 4061b2: 4d 8b 75 08 mov 0x8(%r13),%r14 + 4061b6: 4d 85 f6 test %r14,%r14 + 4061b9: 0f 84 89 fd ff ff je 405f48 <__gettext_free_exp+0x338> + 4061bf: 41 8b 06 mov (%r14),%eax + 4061c2: 83 f8 02 cmp $0x2,%eax + 4061c5: 74 22 je 4061e9 <__gettext_free_exp+0x5d9> + 4061c7: 83 f8 03 cmp $0x3,%eax + 4061ca: 74 14 je 4061e0 <__gettext_free_exp+0x5d0> + 4061cc: 83 f8 01 cmp $0x1,%eax + 4061cf: 74 21 je 4061f2 <__gettext_free_exp+0x5e2> + 4061d1: 4c 89 f7 mov %r14,%rdi + 4061d4: e8 d7 7b 01 00 callq 41ddb0 <__cfree> + 4061d9: e9 6a fd ff ff jmpq 405f48 <__gettext_free_exp+0x338> + 4061de: 66 90 xchg %ax,%ax + 4061e0: 49 8b 7e 18 mov 0x18(%r14),%rdi + 4061e4: e8 27 fa ff ff callq 405c10 <__gettext_free_exp> + 4061e9: 49 8b 7e 10 mov 0x10(%r14),%rdi + 4061ed: e8 1e fa ff ff callq 405c10 <__gettext_free_exp> + 4061f2: 49 8b 7e 08 mov 0x8(%r14),%rdi + 4061f6: e8 15 fa ff ff callq 405c10 <__gettext_free_exp> + 4061fb: eb d4 jmp 4061d1 <__gettext_free_exp+0x5c1> + 4061fd: 0f 1f 00 nopl (%rax) + 406200: 49 8b 7d 18 mov 0x18(%r13),%rdi + 406204: e8 07 fa ff ff callq 405c10 <__gettext_free_exp> + 406209: 49 8b 7d 10 mov 0x10(%r13),%rdi + 40620d: e8 fe f9 ff ff callq 405c10 <__gettext_free_exp> + 406212: 4d 8b 75 08 mov 0x8(%r13),%r14 + 406216: 4d 85 f6 test %r14,%r14 + 406219: 0f 84 a1 fd ff ff je 405fc0 <__gettext_free_exp+0x3b0> + 40621f: 41 8b 06 mov (%r14),%eax + 406222: 83 f8 02 cmp $0x2,%eax + 406225: 74 22 je 406249 <__gettext_free_exp+0x639> + 406227: 83 f8 03 cmp $0x3,%eax + 40622a: 74 14 je 406240 <__gettext_free_exp+0x630> + 40622c: 83 f8 01 cmp $0x1,%eax + 40622f: 74 21 je 406252 <__gettext_free_exp+0x642> + 406231: 4c 89 f7 mov %r14,%rdi + 406234: e8 77 7b 01 00 callq 41ddb0 <__cfree> + 406239: e9 82 fd ff ff jmpq 405fc0 <__gettext_free_exp+0x3b0> + 40623e: 66 90 xchg %ax,%ax + 406240: 49 8b 7e 18 mov 0x18(%r14),%rdi + 406244: e8 c7 f9 ff ff callq 405c10 <__gettext_free_exp> + 406249: 49 8b 7e 10 mov 0x10(%r14),%rdi + 40624d: e8 be f9 ff ff callq 405c10 <__gettext_free_exp> + 406252: 49 8b 7e 08 mov 0x8(%r14),%rdi + 406256: e8 b5 f9 ff ff callq 405c10 <__gettext_free_exp> + 40625b: eb d4 jmp 406231 <__gettext_free_exp+0x621> + 40625d: 0f 1f 00 nopl (%rax) + 406260: 49 8b 7c 24 18 mov 0x18(%r12),%rdi + 406265: e8 a6 f9 ff ff callq 405c10 <__gettext_free_exp> + 40626a: 49 8b 7c 24 10 mov 0x10(%r12),%rdi + 40626f: e8 9c f9 ff ff callq 405c10 <__gettext_free_exp> + 406274: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 + 406279: 4d 85 ed test %r13,%r13 + 40627c: 0f 84 9f fb ff ff je 405e21 <__gettext_free_exp+0x211> + 406282: 41 8b 45 00 mov 0x0(%r13),%eax + 406286: 83 f8 02 cmp $0x2,%eax + 406289: 74 26 je 4062b1 <__gettext_free_exp+0x6a1> + 40628b: 83 f8 03 cmp $0x3,%eax + 40628e: 74 18 je 4062a8 <__gettext_free_exp+0x698> + 406290: 83 f8 01 cmp $0x1,%eax + 406293: 74 25 je 4062ba <__gettext_free_exp+0x6aa> + 406295: 4c 89 ef mov %r13,%rdi + 406298: e8 13 7b 01 00 callq 41ddb0 <__cfree> + 40629d: e9 7f fb ff ff jmpq 405e21 <__gettext_free_exp+0x211> + 4062a2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4062a8: 49 8b 7d 18 mov 0x18(%r13),%rdi + 4062ac: e8 5f f9 ff ff callq 405c10 <__gettext_free_exp> + 4062b1: 49 8b 7d 10 mov 0x10(%r13),%rdi + 4062b5: e8 56 f9 ff ff callq 405c10 <__gettext_free_exp> + 4062ba: 49 8b 7d 08 mov 0x8(%r13),%rdi + 4062be: e8 4d f9 ff ff callq 405c10 <__gettext_free_exp> + 4062c3: eb d0 jmp 406295 <__gettext_free_exp+0x685> + 4062c5: 0f 1f 00 nopl (%rax) + 4062c8: f3 c3 repz retq + 4062ca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +00000000004062d0 : + 4062d0: 41 57 push %r15 + 4062d2: 41 56 push %r14 + 4062d4: 49 89 f6 mov %rsi,%r14 + 4062d7: 41 55 push %r13 + 4062d9: 41 54 push %r12 + 4062db: 55 push %rbp + 4062dc: 53 push %rbx + 4062dd: 48 83 ec 18 sub $0x18,%rsp + 4062e1: 48 8b 5e 08 mov 0x8(%rsi),%rbx + 4062e5: 48 85 db test %rbx,%rbx + 4062e8: 74 3e je 406328 + 4062ea: 48 8b 2e mov (%rsi),%rbp + 4062ed: 48 85 ed test %rbp,%rbp + 4062f0: 74 36 je 406328 + 4062f2: 41 89 fc mov %edi,%r12d + 4062f5: bf 20 00 00 00 mov $0x20,%edi + 4062fa: e8 11 77 01 00 callq 41da10 <__libc_malloc> + 4062ff: 48 85 c0 test %rax,%rax + 406302: 74 24 je 406328 + 406304: c7 00 02 00 00 00 movl $0x2,(%rax) + 40630a: 44 89 60 04 mov %r12d,0x4(%rax) + 40630e: 48 89 58 10 mov %rbx,0x10(%rax) + 406312: 48 89 68 08 mov %rbp,0x8(%rax) + 406316: 48 83 c4 18 add $0x18,%rsp + 40631a: 5b pop %rbx + 40631b: 5d pop %rbp + 40631c: 41 5c pop %r12 + 40631e: 41 5d pop %r13 + 406320: 41 5e pop %r14 + 406322: 41 5f pop %r15 + 406324: c3 retq + 406325: 0f 1f 00 nopl (%rax) + 406328: 31 ed xor %ebp,%ebp + 40632a: eb 28 jmp 406354 + 40632c: 0f 1f 40 00 nopl 0x0(%rax) + 406330: 83 f8 03 cmp $0x3,%eax + 406333: 0f 84 27 03 00 00 je 406660 + 406339: 83 f8 01 cmp $0x1,%eax + 40633c: 74 57 je 406395 + 40633e: 48 89 df mov %rbx,%rdi + 406341: e8 6a 7a 01 00 callq 41ddb0 <__cfree> + 406346: 48 83 ed 08 sub $0x8,%rbp + 40634a: 48 83 fd f0 cmp $0xfffffffffffffff0,%rbp + 40634e: 0f 84 ec 0c 00 00 je 407040 + 406354: 49 8b 5c 2e 08 mov 0x8(%r14,%rbp,1),%rbx + 406359: 48 85 db test %rbx,%rbx + 40635c: 74 e8 je 406346 + 40635e: 8b 03 mov (%rbx),%eax + 406360: 83 f8 02 cmp $0x2,%eax + 406363: 75 cb jne 406330 + 406365: 4c 8b 63 10 mov 0x10(%rbx),%r12 + 406369: 4d 85 e4 test %r12,%r12 + 40636c: 74 27 je 406395 + 40636e: 41 8b 04 24 mov (%r12),%eax + 406372: 83 f8 02 cmp $0x2,%eax + 406375: 0f 84 76 02 00 00 je 4065f1 + 40637b: 83 f8 03 cmp $0x3,%eax + 40637e: 0f 84 7c 0c 00 00 je 407000 + 406384: 83 f8 01 cmp $0x1,%eax + 406387: 0f 84 95 02 00 00 je 406622 + 40638d: 4c 89 e7 mov %r12,%rdi + 406390: e8 1b 7a 01 00 callq 41ddb0 <__cfree> + 406395: 4c 8b 63 08 mov 0x8(%rbx),%r12 + 406399: 4d 85 e4 test %r12,%r12 + 40639c: 74 a0 je 40633e + 40639e: 41 8b 04 24 mov (%r12),%eax + 4063a2: 83 f8 02 cmp $0x2,%eax + 4063a5: 74 4a je 4063f1 + 4063a7: 83 f8 03 cmp $0x3,%eax + 4063aa: 74 14 je 4063c0 + 4063ac: 83 f8 01 cmp $0x1,%eax + 4063af: 74 71 je 406422 + 4063b1: 4c 89 e7 mov %r12,%rdi + 4063b4: e8 f7 79 01 00 callq 41ddb0 <__cfree> + 4063b9: eb 83 jmp 40633e + 4063bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4063c0: 4d 8b 6c 24 18 mov 0x18(%r12),%r13 + 4063c5: 4d 85 ed test %r13,%r13 + 4063c8: 74 27 je 4063f1 + 4063ca: 41 8b 45 00 mov 0x0(%r13),%eax + 4063ce: 83 f8 02 cmp $0x2,%eax + 4063d1: 0f 84 68 0a 00 00 je 406e3f + 4063d7: 83 f8 03 cmp $0x3,%eax + 4063da: 0f 84 30 0a 00 00 je 406e10 + 4063e0: 83 f8 01 cmp $0x1,%eax + 4063e3: 0f 84 85 0a 00 00 je 406e6e + 4063e9: 4c 89 ef mov %r13,%rdi + 4063ec: e8 bf 79 01 00 callq 41ddb0 <__cfree> + 4063f1: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 + 4063f6: 4d 85 ed test %r13,%r13 + 4063f9: 74 27 je 406422 + 4063fb: 41 8b 45 00 mov 0x0(%r13),%eax + 4063ff: 83 f8 02 cmp $0x2,%eax + 406402: 0f 84 07 04 00 00 je 40680f + 406408: 83 f8 03 cmp $0x3,%eax + 40640b: 0f 84 cf 03 00 00 je 4067e0 + 406411: 83 f8 01 cmp $0x1,%eax + 406414: 0f 84 24 04 00 00 je 40683e + 40641a: 4c 89 ef mov %r13,%rdi + 40641d: e8 8e 79 01 00 callq 41ddb0 <__cfree> + 406422: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 + 406427: 4d 85 ed test %r13,%r13 + 40642a: 74 85 je 4063b1 + 40642c: 41 8b 45 00 mov 0x0(%r13),%eax + 406430: 83 f8 02 cmp $0x2,%eax + 406433: 0f 84 c8 00 00 00 je 406501 + 406439: 83 f8 03 cmp $0x3,%eax + 40643c: 0f 84 0e 0b 00 00 je 406f50 + 406442: 83 f8 01 cmp $0x1,%eax + 406445: 0f 84 e5 00 00 00 je 406530 + 40644b: 4c 89 ef mov %r13,%rdi + 40644e: e8 5d 79 01 00 callq 41ddb0 <__cfree> + 406453: e9 59 ff ff ff jmpq 4063b1 + 406458: 48 8b 78 18 mov 0x18(%rax),%rdi + 40645c: 48 89 04 24 mov %rax,(%rsp) + 406460: e8 ab f7 ff ff callq 405c10 <__gettext_free_exp> + 406465: 48 8b 04 24 mov (%rsp),%rax + 406469: 48 8b 78 10 mov 0x10(%rax),%rdi + 40646d: 48 89 04 24 mov %rax,(%rsp) + 406471: e8 9a f7 ff ff callq 405c10 <__gettext_free_exp> + 406476: 48 8b 04 24 mov (%rsp),%rax + 40647a: 48 8b 78 08 mov 0x8(%rax),%rdi + 40647e: 48 89 04 24 mov %rax,(%rsp) + 406482: e8 89 f7 ff ff callq 405c10 <__gettext_free_exp> + 406487: 48 8b 04 24 mov (%rsp),%rax + 40648b: 48 89 c7 mov %rax,%rdi + 40648e: e8 1d 79 01 00 callq 41ddb0 <__cfree> + 406493: 49 8b 47 10 mov 0x10(%r15),%rax + 406497: 48 85 c0 test %rax,%rax + 40649a: 48 89 04 24 mov %rax,(%rsp) + 40649e: 74 26 je 4064c6 + 4064a0: 8b 00 mov (%rax),%eax + 4064a2: 83 f8 02 cmp $0x2,%eax + 4064a5: 0f 84 9d 20 00 00 je 408548 + 4064ab: 83 f8 03 cmp $0x3,%eax + 4064ae: 0f 84 87 20 00 00 je 40853b + 4064b4: 83 f8 01 cmp $0x1,%eax + 4064b7: 0f 84 bd 20 00 00 je 40857a + 4064bd: 48 8b 3c 24 mov (%rsp),%rdi + 4064c1: e8 ea 78 01 00 callq 41ddb0 <__cfree> + 4064c6: 49 8b 47 08 mov 0x8(%r15),%rax + 4064ca: 48 85 c0 test %rax,%rax + 4064cd: 48 89 04 24 mov %rax,(%rsp) + 4064d1: 74 26 je 4064f9 + 4064d3: 8b 00 mov (%rax),%eax + 4064d5: 83 f8 02 cmp $0x2,%eax + 4064d8: 0f 84 9f 14 00 00 je 40797d + 4064de: 83 f8 03 cmp $0x3,%eax + 4064e1: 0f 84 89 14 00 00 je 407970 + 4064e7: 83 f8 01 cmp $0x1,%eax + 4064ea: 0f 84 bf 14 00 00 je 4079af + 4064f0: 48 8b 3c 24 mov (%rsp),%rdi + 4064f4: e8 b7 78 01 00 callq 41ddb0 <__cfree> + 4064f9: 4c 89 ff mov %r15,%rdi + 4064fc: e8 af 78 01 00 callq 41ddb0 <__cfree> + 406501: 4d 8b 7d 10 mov 0x10(%r13),%r15 + 406505: 4d 85 ff test %r15,%r15 + 406508: 74 26 je 406530 + 40650a: 41 8b 07 mov (%r15),%eax + 40650d: 83 f8 02 cmp $0x2,%eax + 406510: 0f 84 f8 10 00 00 je 40760e + 406516: 83 f8 03 cmp $0x3,%eax + 406519: 0f 84 c1 10 00 00 je 4075e0 + 40651f: 83 f8 01 cmp $0x1,%eax + 406522: 0f 84 12 05 00 00 je 406a3a + 406528: 4c 89 ff mov %r15,%rdi + 40652b: e8 80 78 01 00 callq 41ddb0 <__cfree> + 406530: 4d 8b 7d 08 mov 0x8(%r13),%r15 + 406534: 4d 85 ff test %r15,%r15 + 406537: 0f 84 0e ff ff ff je 40644b + 40653d: 41 8b 07 mov (%r15),%eax + 406540: 83 f8 02 cmp $0x2,%eax + 406543: 0f 84 8a 01 00 00 je 4066d3 + 406549: 83 f8 03 cmp $0x3,%eax + 40654c: 0f 84 4e 01 00 00 je 4066a0 + 406552: 83 f8 01 cmp $0x1,%eax + 406555: 0f 84 ab 01 00 00 je 406706 + 40655b: 4c 89 ff mov %r15,%rdi + 40655e: e8 4d 78 01 00 callq 41ddb0 <__cfree> + 406563: e9 e3 fe ff ff jmpq 40644b + 406568: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40656c: e8 9f f6 ff ff callq 405c10 <__gettext_free_exp> + 406571: 49 8b 7f 10 mov 0x10(%r15),%rdi + 406575: e8 96 f6 ff ff callq 405c10 <__gettext_free_exp> + 40657a: 49 8b 7f 08 mov 0x8(%r15),%rdi + 40657e: e8 8d f6 ff ff callq 405c10 <__gettext_free_exp> + 406583: 4c 89 ff mov %r15,%rdi + 406586: e8 25 78 01 00 callq 41ddb0 <__cfree> + 40658b: 4d 8b 7d 10 mov 0x10(%r13),%r15 + 40658f: 4d 85 ff test %r15,%r15 + 406592: 74 26 je 4065ba + 406594: 41 8b 07 mov (%r15),%eax + 406597: 83 f8 02 cmp $0x2,%eax + 40659a: 0f 84 67 20 00 00 je 408607 + 4065a0: 83 f8 03 cmp $0x3,%eax + 4065a3: 0f 84 55 20 00 00 je 4085fe + 4065a9: 83 f8 01 cmp $0x1,%eax + 4065ac: 0f 84 5e 20 00 00 je 408610 + 4065b2: 4c 89 ff mov %r15,%rdi + 4065b5: e8 f6 77 01 00 callq 41ddb0 <__cfree> + 4065ba: 4d 8b 7d 08 mov 0x8(%r13),%r15 + 4065be: 4d 85 ff test %r15,%r15 + 4065c1: 74 26 je 4065e9 + 4065c3: 41 8b 07 mov (%r15),%eax + 4065c6: 83 f8 02 cmp $0x2,%eax + 4065c9: 0f 84 aa 15 00 00 je 407b79 + 4065cf: 83 f8 03 cmp $0x3,%eax + 4065d2: 0f 84 98 15 00 00 je 407b70 + 4065d8: 83 f8 01 cmp $0x1,%eax + 4065db: 0f 84 c6 15 00 00 je 407ba7 + 4065e1: 4c 89 ff mov %r15,%rdi + 4065e4: e8 c7 77 01 00 callq 41ddb0 <__cfree> + 4065e9: 4c 89 ef mov %r13,%rdi + 4065ec: e8 bf 77 01 00 callq 41ddb0 <__cfree> + 4065f1: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 + 4065f6: 4d 85 ed test %r13,%r13 + 4065f9: 74 27 je 406622 + 4065fb: 41 8b 45 00 mov 0x0(%r13),%eax + 4065ff: 83 f8 02 cmp $0x2,%eax + 406602: 0f 84 27 13 00 00 je 40792f + 406608: 83 f8 03 cmp $0x3,%eax + 40660b: 0f 84 ef 12 00 00 je 407900 + 406611: 83 f8 01 cmp $0x1,%eax + 406614: 0f 84 78 06 00 00 je 406c92 + 40661a: 4c 89 ef mov %r13,%rdi + 40661d: e8 8e 77 01 00 callq 41ddb0 <__cfree> + 406622: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 + 406627: 4d 85 ed test %r13,%r13 + 40662a: 0f 84 5d fd ff ff je 40638d + 406630: 41 8b 45 00 mov 0x0(%r13),%eax + 406634: 83 f8 02 cmp $0x2,%eax + 406637: 0f 84 32 01 00 00 je 40676f + 40663d: 83 f8 03 cmp $0x3,%eax + 406640: 0f 84 fa 00 00 00 je 406740 + 406646: 83 f8 01 cmp $0x1,%eax + 406649: 0f 84 4f 01 00 00 je 40679e + 40664f: 4c 89 ef mov %r13,%rdi + 406652: e8 59 77 01 00 callq 41ddb0 <__cfree> + 406657: e9 31 fd ff ff jmpq 40638d + 40665c: 0f 1f 40 00 nopl 0x0(%rax) + 406660: 4c 8b 63 18 mov 0x18(%rbx),%r12 + 406664: 4d 85 e4 test %r12,%r12 + 406667: 0f 84 f8 fc ff ff je 406365 + 40666d: 41 8b 04 24 mov (%r12),%eax + 406671: 83 f8 02 cmp $0x2,%eax + 406674: 0f 84 47 09 00 00 je 406fc1 + 40667a: 83 f8 03 cmp $0x3,%eax + 40667d: 0f 84 0d 09 00 00 je 406f90 + 406683: 83 f8 01 cmp $0x1,%eax + 406686: 0f 84 73 02 00 00 je 4068ff + 40668c: 4c 89 e7 mov %r12,%rdi + 40668f: e8 1c 77 01 00 callq 41ddb0 <__cfree> + 406694: e9 cc fc ff ff jmpq 406365 + 406699: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4066a0: 49 8b 47 18 mov 0x18(%r15),%rax + 4066a4: 48 85 c0 test %rax,%rax + 4066a7: 48 89 04 24 mov %rax,(%rsp) + 4066ab: 74 26 je 4066d3 + 4066ad: 8b 00 mov (%rax),%eax + 4066af: 83 f8 02 cmp $0x2,%eax + 4066b2: 0f 84 45 13 00 00 je 4079fd + 4066b8: 83 f8 03 cmp $0x3,%eax + 4066bb: 0f 84 2f 13 00 00 je 4079f0 + 4066c1: 83 f8 01 cmp $0x1,%eax + 4066c4: 0f 84 65 13 00 00 je 407a2f + 4066ca: 48 8b 3c 24 mov (%rsp),%rdi + 4066ce: e8 dd 76 01 00 callq 41ddb0 <__cfree> + 4066d3: 49 8b 47 10 mov 0x10(%r15),%rax + 4066d7: 48 85 c0 test %rax,%rax + 4066da: 48 89 04 24 mov %rax,(%rsp) + 4066de: 74 26 je 406706 + 4066e0: 8b 00 mov (%rax),%eax + 4066e2: 83 f8 02 cmp $0x2,%eax + 4066e5: 0f 84 87 0a 00 00 je 407172 + 4066eb: 83 f8 03 cmp $0x3,%eax + 4066ee: 0f 84 4c 0a 00 00 je 407140 + 4066f4: 83 f8 01 cmp $0x1,%eax + 4066f7: 0f 84 a7 0a 00 00 je 4071a4 + 4066fd: 48 8b 3c 24 mov (%rsp),%rdi + 406701: e8 aa 76 01 00 callq 41ddb0 <__cfree> + 406706: 49 8b 47 08 mov 0x8(%r15),%rax + 40670a: 48 85 c0 test %rax,%rax + 40670d: 0f 84 48 fe ff ff je 40655b + 406713: 8b 10 mov (%rax),%edx + 406715: 83 fa 02 cmp $0x2,%edx + 406718: 0f 84 f8 0c 00 00 je 407416 + 40671e: 83 fa 03 cmp $0x3,%edx + 406721: 0f 84 b9 0c 00 00 je 4073e0 + 406727: 83 fa 01 cmp $0x1,%edx + 40672a: 0f 84 71 02 00 00 je 4069a1 + 406730: 48 89 c7 mov %rax,%rdi + 406733: e8 78 76 01 00 callq 41ddb0 <__cfree> + 406738: e9 1e fe ff ff jmpq 40655b + 40673d: 0f 1f 00 nopl (%rax) + 406740: 4d 8b 7d 18 mov 0x18(%r13),%r15 + 406744: 4d 85 ff test %r15,%r15 + 406747: 74 26 je 40676f + 406749: 41 8b 07 mov (%r15),%eax + 40674c: 83 f8 02 cmp $0x2,%eax + 40674f: 0f 84 54 16 00 00 je 407da9 + 406755: 83 f8 03 cmp $0x3,%eax + 406758: 0f 84 42 16 00 00 je 407da0 + 40675e: 83 f8 01 cmp $0x1,%eax + 406761: 0f 84 70 16 00 00 je 407dd7 + 406767: 4c 89 ff mov %r15,%rdi + 40676a: e8 41 76 01 00 callq 41ddb0 <__cfree> + 40676f: 4d 8b 7d 10 mov 0x10(%r13),%r15 + 406773: 4d 85 ff test %r15,%r15 + 406776: 74 26 je 40679e + 406778: 41 8b 07 mov (%r15),%eax + 40677b: 83 f8 02 cmp $0x2,%eax + 40677e: 0f 84 fa 0e 00 00 je 40767e + 406784: 83 f8 03 cmp $0x3,%eax + 406787: 0f 84 c3 0e 00 00 je 407650 + 40678d: 83 f8 01 cmp $0x1,%eax + 406790: 0f 84 1b 0f 00 00 je 4076b1 + 406796: 4c 89 ff mov %r15,%rdi + 406799: e8 12 76 01 00 callq 41ddb0 <__cfree> + 40679e: 4d 8b 7d 08 mov 0x8(%r13),%r15 + 4067a2: 4d 85 ff test %r15,%r15 + 4067a5: 0f 84 a4 fe ff ff je 40664f + 4067ab: 41 8b 07 mov (%r15),%eax + 4067ae: 83 f8 02 cmp $0x2,%eax + 4067b1: 0f 84 07 11 00 00 je 4078be + 4067b7: 83 f8 03 cmp $0x3,%eax + 4067ba: 0f 84 d0 10 00 00 je 407890 + 4067c0: 83 f8 01 cmp $0x1,%eax + 4067c3: 0f 84 11 04 00 00 je 406bda + 4067c9: 4c 89 ff mov %r15,%rdi + 4067cc: e8 df 75 01 00 callq 41ddb0 <__cfree> + 4067d1: e9 79 fe ff ff jmpq 40664f + 4067d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4067dd: 00 00 00 + 4067e0: 4d 8b 7d 18 mov 0x18(%r13),%r15 + 4067e4: 4d 85 ff test %r15,%r15 + 4067e7: 74 26 je 40680f + 4067e9: 41 8b 07 mov (%r15),%eax + 4067ec: 83 f8 02 cmp $0x2,%eax + 4067ef: 0f 84 f4 13 00 00 je 407be9 + 4067f5: 83 f8 03 cmp $0x3,%eax + 4067f8: 0f 84 e2 13 00 00 je 407be0 + 4067fe: 83 f8 01 cmp $0x1,%eax + 406801: 0f 84 10 14 00 00 je 407c17 + 406807: 4c 89 ff mov %r15,%rdi + 40680a: e8 a1 75 01 00 callq 41ddb0 <__cfree> + 40680f: 4d 8b 7d 10 mov 0x10(%r13),%r15 + 406813: 4d 85 ff test %r15,%r15 + 406816: 74 26 je 40683e + 406818: 41 8b 07 mov (%r15),%eax + 40681b: 83 f8 02 cmp $0x2,%eax + 40681e: 0f 84 62 0c 00 00 je 407486 + 406824: 83 f8 03 cmp $0x3,%eax + 406827: 0f 84 2b 0c 00 00 je 407458 + 40682d: 83 f8 01 cmp $0x1,%eax + 406830: 0f 84 83 0c 00 00 je 4074b9 + 406836: 4c 89 ff mov %r15,%rdi + 406839: e8 72 75 01 00 callq 41ddb0 <__cfree> + 40683e: 4d 8b 7d 08 mov 0x8(%r13),%r15 + 406842: 4d 85 ff test %r15,%r15 + 406845: 0f 84 cf fb ff ff je 40641a + 40684b: 41 8b 07 mov (%r15),%eax + 40684e: 83 f8 02 cmp $0x2,%eax + 406851: 0f 84 47 0d 00 00 je 40759e + 406857: 83 f8 03 cmp $0x3,%eax + 40685a: 0f 84 10 0d 00 00 je 407570 + 406860: 83 f8 01 cmp $0x1,%eax + 406863: 0f 84 bb 02 00 00 je 406b24 + 406869: 4c 89 ff mov %r15,%rdi + 40686c: e8 3f 75 01 00 callq 41ddb0 <__cfree> + 406871: e9 a4 fb ff ff jmpq 40641a + 406876: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40687a: e8 91 f3 ff ff callq 405c10 <__gettext_free_exp> + 40687f: 49 8b 7f 10 mov 0x10(%r15),%rdi + 406883: e8 88 f3 ff ff callq 405c10 <__gettext_free_exp> + 406888: 49 8b 7f 08 mov 0x8(%r15),%rdi + 40688c: e8 7f f3 ff ff callq 405c10 <__gettext_free_exp> + 406891: 4c 89 ff mov %r15,%rdi + 406894: e8 17 75 01 00 callq 41ddb0 <__cfree> + 406899: 4d 8b 7d 10 mov 0x10(%r13),%r15 + 40689d: 4d 85 ff test %r15,%r15 + 4068a0: 74 26 je 4068c8 + 4068a2: 41 8b 07 mov (%r15),%eax + 4068a5: 83 f8 02 cmp $0x2,%eax + 4068a8: 0f 84 10 1d 00 00 je 4085be + 4068ae: 83 f8 03 cmp $0x3,%eax + 4068b1: 0f 84 fe 1c 00 00 je 4085b5 + 4068b7: 83 f8 01 cmp $0x1,%eax + 4068ba: 0f 84 07 1d 00 00 je 4085c7 + 4068c0: 4c 89 ff mov %r15,%rdi + 4068c3: e8 e8 74 01 00 callq 41ddb0 <__cfree> + 4068c8: 4d 8b 7d 08 mov 0x8(%r13),%r15 + 4068cc: 4d 85 ff test %r15,%r15 + 4068cf: 74 26 je 4068f7 + 4068d1: 41 8b 07 mov (%r15),%eax + 4068d4: 83 f8 02 cmp $0x2,%eax + 4068d7: 0f 84 7c 13 00 00 je 407c59 + 4068dd: 83 f8 03 cmp $0x3,%eax + 4068e0: 0f 84 6a 13 00 00 je 407c50 + 4068e6: 83 f8 01 cmp $0x1,%eax + 4068e9: 0f 84 98 13 00 00 je 407c87 + 4068ef: 4c 89 ff mov %r15,%rdi + 4068f2: e8 b9 74 01 00 callq 41ddb0 <__cfree> + 4068f7: 4c 89 ef mov %r13,%rdi + 4068fa: e8 b1 74 01 00 callq 41ddb0 <__cfree> + 4068ff: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 + 406904: 4d 85 ed test %r13,%r13 + 406907: 0f 84 7f fd ff ff je 40668c + 40690d: 41 8b 45 00 mov 0x0(%r13),%eax + 406911: 83 f8 02 cmp $0x2,%eax + 406914: 0f 84 e5 03 00 00 je 406cff + 40691a: 83 f8 03 cmp $0x3,%eax + 40691d: 0f 84 ad 03 00 00 je 406cd0 + 406923: 83 f8 01 cmp $0x1,%eax + 406926: 0f 84 02 04 00 00 je 406d2e + 40692c: 4c 89 ef mov %r13,%rdi + 40692f: e8 7c 74 01 00 callq 41ddb0 <__cfree> + 406934: e9 53 fd ff ff jmpq 40668c + 406939: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 406940: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 406944: 48 89 44 24 08 mov %rax,0x8(%rsp) + 406949: 48 89 14 24 mov %rdx,(%rsp) + 40694d: e8 be f2 ff ff callq 405c10 <__gettext_free_exp> + 406952: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 406957: 48 8b 14 24 mov (%rsp),%rdx + 40695b: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40695f: 48 89 44 24 08 mov %rax,0x8(%rsp) + 406964: 48 89 14 24 mov %rdx,(%rsp) + 406968: e8 a3 f2 ff ff callq 405c10 <__gettext_free_exp> + 40696d: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 406972: 48 8b 14 24 mov (%rsp),%rdx + 406976: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40697a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40697f: 48 89 14 24 mov %rdx,(%rsp) + 406983: e8 88 f2 ff ff callq 405c10 <__gettext_free_exp> + 406988: 48 8b 14 24 mov (%rsp),%rdx + 40698c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 406991: 48 89 d7 mov %rdx,%rdi + 406994: 48 89 04 24 mov %rax,(%rsp) + 406998: e8 13 74 01 00 callq 41ddb0 <__cfree> + 40699d: 48 8b 04 24 mov (%rsp),%rax + 4069a1: 48 8b 78 08 mov 0x8(%rax),%rdi + 4069a5: 48 89 04 24 mov %rax,(%rsp) + 4069a9: e8 62 f2 ff ff callq 405c10 <__gettext_free_exp> + 4069ae: 48 8b 04 24 mov (%rsp),%rax + 4069b2: e9 79 fd ff ff jmpq 406730 + 4069b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4069be: 00 00 + 4069c0: 48 8b 04 24 mov (%rsp),%rax + 4069c4: 48 8b 78 18 mov 0x18(%rax),%rdi + 4069c8: e8 43 f2 ff ff callq 405c10 <__gettext_free_exp> + 4069cd: 48 8b 04 24 mov (%rsp),%rax + 4069d1: 48 8b 40 10 mov 0x10(%rax),%rax + 4069d5: 48 85 c0 test %rax,%rax + 4069d8: 74 25 je 4069ff + 4069da: 8b 10 mov (%rax),%edx + 4069dc: 83 fa 02 cmp $0x2,%edx + 4069df: 0f 84 fc 1c 00 00 je 4086e1 + 4069e5: 83 fa 03 cmp $0x3,%edx + 4069e8: 0f 84 e0 1c 00 00 je 4086ce + 4069ee: 83 fa 01 cmp $0x1,%edx + 4069f1: 0f 84 fd 1c 00 00 je 4086f4 + 4069f7: 48 89 c7 mov %rax,%rdi + 4069fa: e8 b1 73 01 00 callq 41ddb0 <__cfree> + 4069ff: 48 8b 04 24 mov (%rsp),%rax + 406a03: 48 8b 40 08 mov 0x8(%rax),%rax + 406a07: 48 85 c0 test %rax,%rax + 406a0a: 74 25 je 406a31 + 406a0c: 8b 10 mov (%rax),%edx + 406a0e: 83 fa 02 cmp $0x2,%edx + 406a11: 0f 84 8c 14 00 00 je 407ea3 + 406a17: 83 fa 03 cmp $0x3,%edx + 406a1a: 0f 84 70 14 00 00 je 407e90 + 406a20: 83 fa 01 cmp $0x1,%edx + 406a23: 0f 84 8d 14 00 00 je 407eb6 + 406a29: 48 89 c7 mov %rax,%rdi + 406a2c: e8 7f 73 01 00 callq 41ddb0 <__cfree> + 406a31: 48 8b 3c 24 mov (%rsp),%rdi + 406a35: e8 76 73 01 00 callq 41ddb0 <__cfree> + 406a3a: 49 8b 47 08 mov 0x8(%r15),%rax + 406a3e: 48 85 c0 test %rax,%rax + 406a41: 48 89 04 24 mov %rax,(%rsp) + 406a45: 0f 84 dd fa ff ff je 406528 + 406a4b: 8b 00 mov (%rax),%eax + 406a4d: 83 f8 02 cmp $0x2,%eax + 406a50: 0f 84 dc 08 00 00 je 407332 + 406a56: 83 f8 03 cmp $0x3,%eax + 406a59: 0f 84 a1 08 00 00 je 407300 + 406a5f: 83 f8 01 cmp $0x1,%eax + 406a62: 0f 84 fc 08 00 00 je 407364 + 406a68: 48 8b 3c 24 mov (%rsp),%rdi + 406a6c: e8 3f 73 01 00 callq 41ddb0 <__cfree> + 406a71: e9 b2 fa ff ff jmpq 406528 + 406a76: 48 8b 78 18 mov 0x18(%rax),%rdi + 406a7a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 406a7f: e8 8c f1 ff ff callq 405c10 <__gettext_free_exp> + 406a84: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 406a89: 48 8b 78 10 mov 0x10(%rax),%rdi + 406a8d: 48 89 44 24 08 mov %rax,0x8(%rsp) + 406a92: e8 79 f1 ff ff callq 405c10 <__gettext_free_exp> + 406a97: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 406a9c: 48 8b 78 08 mov 0x8(%rax),%rdi + 406aa0: 48 89 44 24 08 mov %rax,0x8(%rsp) + 406aa5: e8 66 f1 ff ff callq 405c10 <__gettext_free_exp> + 406aaa: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 406aaf: 48 89 c7 mov %rax,%rdi + 406ab2: e8 f9 72 01 00 callq 41ddb0 <__cfree> + 406ab7: 48 8b 04 24 mov (%rsp),%rax + 406abb: 48 8b 40 10 mov 0x10(%rax),%rax + 406abf: 48 85 c0 test %rax,%rax + 406ac2: 74 25 je 406ae9 + 406ac4: 8b 10 mov (%rax),%edx + 406ac6: 83 fa 02 cmp $0x2,%edx + 406ac9: 0f 84 d4 1b 00 00 je 4086a3 + 406acf: 83 fa 03 cmp $0x3,%edx + 406ad2: 0f 84 b8 1b 00 00 je 408690 + 406ad8: 83 fa 01 cmp $0x1,%edx + 406adb: 0f 84 d5 1b 00 00 je 4086b6 + 406ae1: 48 89 c7 mov %rax,%rdi + 406ae4: e8 c7 72 01 00 callq 41ddb0 <__cfree> + 406ae9: 48 8b 04 24 mov (%rsp),%rax + 406aed: 48 8b 40 08 mov 0x8(%rax),%rax + 406af1: 48 85 c0 test %rax,%rax + 406af4: 74 25 je 406b1b + 406af6: 8b 10 mov (%rax),%edx + 406af8: 83 fa 02 cmp $0x2,%edx + 406afb: 0f 84 22 14 00 00 je 407f23 + 406b01: 83 fa 03 cmp $0x3,%edx + 406b04: 0f 84 06 14 00 00 je 407f10 + 406b0a: 83 fa 01 cmp $0x1,%edx + 406b0d: 0f 84 23 14 00 00 je 407f36 + 406b13: 48 89 c7 mov %rax,%rdi + 406b16: e8 95 72 01 00 callq 41ddb0 <__cfree> + 406b1b: 48 8b 3c 24 mov (%rsp),%rdi + 406b1f: e8 8c 72 01 00 callq 41ddb0 <__cfree> + 406b24: 49 8b 47 08 mov 0x8(%r15),%rax + 406b28: 48 85 c0 test %rax,%rax + 406b2b: 48 89 04 24 mov %rax,(%rsp) + 406b2f: 0f 84 34 fd ff ff je 406869 + 406b35: 8b 00 mov (%rax),%eax + 406b37: 83 f8 02 cmp $0x2,%eax + 406b3a: 0f 84 12 07 00 00 je 407252 + 406b40: 83 f8 03 cmp $0x3,%eax + 406b43: 0f 84 d7 06 00 00 je 407220 + 406b49: 83 f8 01 cmp $0x1,%eax + 406b4c: 0f 84 32 07 00 00 je 407284 + 406b52: 48 8b 3c 24 mov (%rsp),%rdi + 406b56: e8 55 72 01 00 callq 41ddb0 <__cfree> + 406b5b: e9 09 fd ff ff jmpq 406869 + 406b60: 48 8b 04 24 mov (%rsp),%rax + 406b64: 48 8b 78 18 mov 0x18(%rax),%rdi + 406b68: e8 a3 f0 ff ff callq 405c10 <__gettext_free_exp> + 406b6d: 48 8b 04 24 mov (%rsp),%rax + 406b71: 48 8b 40 10 mov 0x10(%rax),%rax + 406b75: 48 85 c0 test %rax,%rax + 406b78: 74 25 je 406b9f + 406b7a: 8b 10 mov (%rax),%edx + 406b7c: 83 fa 02 cmp $0x2,%edx + 406b7f: 0f 84 16 1c 00 00 je 40879b + 406b85: 83 fa 03 cmp $0x3,%edx + 406b88: 0f 84 fa 1b 00 00 je 408788 + 406b8e: 83 fa 01 cmp $0x1,%edx + 406b91: 0f 84 17 1c 00 00 je 4087ae + 406b97: 48 89 c7 mov %rax,%rdi + 406b9a: e8 11 72 01 00 callq 41ddb0 <__cfree> + 406b9f: 48 8b 04 24 mov (%rsp),%rax + 406ba3: 48 8b 40 08 mov 0x8(%rax),%rax + 406ba7: 48 85 c0 test %rax,%rax + 406baa: 74 25 je 406bd1 + 406bac: 8b 10 mov (%rax),%edx + 406bae: 83 fa 02 cmp $0x2,%edx + 406bb1: 0f 84 6c 12 00 00 je 407e23 + 406bb7: 83 fa 03 cmp $0x3,%edx + 406bba: 0f 84 50 12 00 00 je 407e10 + 406bc0: 83 fa 01 cmp $0x1,%edx + 406bc3: 0f 84 6d 12 00 00 je 407e36 + 406bc9: 48 89 c7 mov %rax,%rdi + 406bcc: e8 df 71 01 00 callq 41ddb0 <__cfree> + 406bd1: 48 8b 3c 24 mov (%rsp),%rdi + 406bd5: e8 d6 71 01 00 callq 41ddb0 <__cfree> + 406bda: 49 8b 47 08 mov 0x8(%r15),%rax + 406bde: 48 85 c0 test %rax,%rax + 406be1: 48 89 04 24 mov %rax,(%rsp) + 406be5: 0f 84 de fb ff ff je 4067c9 + 406beb: 8b 00 mov (%rax),%eax + 406bed: 83 f8 02 cmp $0x2,%eax + 406bf0: 0f 84 94 04 00 00 je 40708a + 406bf6: 83 f8 03 cmp $0x3,%eax + 406bf9: 0f 84 59 04 00 00 je 407058 + 406bff: 83 f8 01 cmp $0x1,%eax + 406c02: 0f 84 b4 04 00 00 je 4070bc + 406c08: 48 8b 3c 24 mov (%rsp),%rdi + 406c0c: e8 9f 71 01 00 callq 41ddb0 <__cfree> + 406c11: e9 b3 fb ff ff jmpq 4067c9 + 406c16: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 406c1d: 00 00 00 + 406c20: 49 8b 7f 18 mov 0x18(%r15),%rdi + 406c24: e8 e7 ef ff ff callq 405c10 <__gettext_free_exp> + 406c29: 49 8b 47 10 mov 0x10(%r15),%rax + 406c2d: 48 85 c0 test %rax,%rax + 406c30: 74 25 je 406c57 + 406c32: 8b 10 mov (%rax),%edx + 406c34: 83 fa 02 cmp $0x2,%edx + 406c37: 0f 84 d8 1b 00 00 je 408815 + 406c3d: 83 fa 03 cmp $0x3,%edx + 406c40: 0f 84 be 1b 00 00 je 408804 + 406c46: 83 fa 01 cmp $0x1,%edx + 406c49: 0f 84 d7 1b 00 00 je 408826 + 406c4f: 48 89 c7 mov %rax,%rdi + 406c52: e8 59 71 01 00 callq 41ddb0 <__cfree> + 406c57: 49 8b 47 08 mov 0x8(%r15),%rax + 406c5b: 48 85 c0 test %rax,%rax + 406c5e: 48 89 04 24 mov %rax,(%rsp) + 406c62: 74 26 je 406c8a + 406c64: 8b 00 mov (%rax),%eax + 406c66: 83 f8 02 cmp $0x2,%eax + 406c69: 0f 84 2e 14 00 00 je 40809d + 406c6f: 83 f8 03 cmp $0x3,%eax + 406c72: 0f 84 18 14 00 00 je 408090 + 406c78: 83 f8 01 cmp $0x1,%eax + 406c7b: 0f 84 4e 14 00 00 je 4080cf + 406c81: 48 8b 3c 24 mov (%rsp),%rdi + 406c85: e8 26 71 01 00 callq 41ddb0 <__cfree> + 406c8a: 4c 89 ff mov %r15,%rdi + 406c8d: e8 1e 71 01 00 callq 41ddb0 <__cfree> + 406c92: 4d 8b 7d 08 mov 0x8(%r13),%r15 + 406c96: 4d 85 ff test %r15,%r15 + 406c99: 0f 84 7b f9 ff ff je 40661a + 406c9f: 41 8b 07 mov (%r15),%eax + 406ca2: 83 f8 02 cmp $0x2,%eax + 406ca5: 0f 84 f3 0a 00 00 je 40779e + 406cab: 83 f8 03 cmp $0x3,%eax + 406cae: 0f 84 bc 0a 00 00 je 407770 + 406cb4: 83 f8 01 cmp $0x1,%eax + 406cb7: 0f 84 14 0b 00 00 je 4077d1 + 406cbd: 4c 89 ff mov %r15,%rdi + 406cc0: e8 eb 70 01 00 callq 41ddb0 <__cfree> + 406cc5: e9 50 f9 ff ff jmpq 40661a + 406cca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 406cd0: 4d 8b 7d 18 mov 0x18(%r13),%r15 + 406cd4: 4d 85 ff test %r15,%r15 + 406cd7: 74 26 je 406cff + 406cd9: 41 8b 07 mov (%r15),%eax + 406cdc: 83 f8 02 cmp $0x2,%eax + 406cdf: 0f 84 5b 22 00 00 je 408f40 + 406ce5: 83 f8 03 cmp $0x3,%eax + 406ce8: 0f 84 49 22 00 00 je 408f37 + 406cee: 83 f8 01 cmp $0x1,%eax + 406cf1: 0f 84 52 22 00 00 je 408f49 + 406cf7: 4c 89 ff mov %r15,%rdi + 406cfa: e8 b1 70 01 00 callq 41ddb0 <__cfree> + 406cff: 4d 8b 7d 10 mov 0x10(%r13),%r15 + 406d03: 4d 85 ff test %r15,%r15 + 406d06: 74 26 je 406d2e + 406d08: 41 8b 07 mov (%r15),%eax + 406d0b: 83 f8 02 cmp $0x2,%eax + 406d0e: 0f 84 b5 0f 00 00 je 407cc9 + 406d14: 83 f8 03 cmp $0x3,%eax + 406d17: 0f 84 a3 0f 00 00 je 407cc0 + 406d1d: 83 f8 01 cmp $0x1,%eax + 406d20: 0f 84 d1 0f 00 00 je 407cf7 + 406d26: 4c 89 ff mov %r15,%rdi + 406d29: e8 82 70 01 00 callq 41ddb0 <__cfree> + 406d2e: 4d 8b 7d 08 mov 0x8(%r13),%r15 + 406d32: 4d 85 ff test %r15,%r15 + 406d35: 0f 84 f1 fb ff ff je 40692c + 406d3b: 41 8b 07 mov (%r15),%eax + 406d3e: 83 f8 02 cmp $0x2,%eax + 406d41: 74 56 je 406d99 + 406d43: 83 f8 03 cmp $0x3,%eax + 406d46: 0f 84 14 21 00 00 je 408e60 + 406d4c: 83 f8 01 cmp $0x1,%eax + 406d4f: 74 76 je 406dc7 + 406d51: 4c 89 ff mov %r15,%rdi + 406d54: e8 57 70 01 00 callq 41ddb0 <__cfree> + 406d59: e9 ce fb ff ff jmpq 40692c + 406d5e: 48 8b 78 18 mov 0x18(%rax),%rdi + 406d62: 48 89 04 24 mov %rax,(%rsp) + 406d66: e8 a5 ee ff ff callq 405c10 <__gettext_free_exp> + 406d6b: 48 8b 04 24 mov (%rsp),%rax + 406d6f: 48 8b 78 10 mov 0x10(%rax),%rdi + 406d73: 48 89 04 24 mov %rax,(%rsp) + 406d77: e8 94 ee ff ff callq 405c10 <__gettext_free_exp> + 406d7c: 48 8b 04 24 mov (%rsp),%rax + 406d80: 48 8b 78 08 mov 0x8(%rax),%rdi + 406d84: 48 89 04 24 mov %rax,(%rsp) + 406d88: e8 83 ee ff ff callq 405c10 <__gettext_free_exp> + 406d8d: 48 8b 04 24 mov (%rsp),%rax + 406d91: 48 89 c7 mov %rax,%rdi + 406d94: e8 17 70 01 00 callq 41ddb0 <__cfree> + 406d99: 49 8b 47 10 mov 0x10(%r15),%rax + 406d9d: 48 85 c0 test %rax,%rax + 406da0: 74 25 je 406dc7 + 406da2: 8b 10 mov (%rax),%edx + 406da4: 83 fa 02 cmp $0x2,%edx + 406da7: 0f 84 1b 16 00 00 je 4083c8 + 406dad: 83 fa 03 cmp $0x3,%edx + 406db0: 0f 84 01 16 00 00 je 4083b7 + 406db6: 83 fa 01 cmp $0x1,%edx + 406db9: 0f 84 1a 16 00 00 je 4083d9 + 406dbf: 48 89 c7 mov %rax,%rdi + 406dc2: e8 e9 6f 01 00 callq 41ddb0 <__cfree> + 406dc7: 49 8b 47 08 mov 0x8(%r15),%rax + 406dcb: 48 85 c0 test %rax,%rax + 406dce: 48 89 04 24 mov %rax,(%rsp) + 406dd2: 0f 84 79 ff ff ff je 406d51 + 406dd8: 8b 00 mov (%rax),%eax + 406dda: 83 f8 02 cmp $0x2,%eax + 406ddd: 0f 84 9a 0c 00 00 je 407a7d + 406de3: 83 f8 03 cmp $0x3,%eax + 406de6: 0f 84 84 0c 00 00 je 407a70 + 406dec: 83 f8 01 cmp $0x1,%eax + 406def: 0f 84 ba 0c 00 00 je 407aaf + 406df5: 48 8b 3c 24 mov (%rsp),%rdi + 406df9: e8 b2 6f 01 00 callq 41ddb0 <__cfree> + 406dfe: 4c 89 ff mov %r15,%rdi + 406e01: e8 aa 6f 01 00 callq 41ddb0 <__cfree> + 406e06: e9 21 fb ff ff jmpq 40692c + 406e0b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 406e10: 4d 8b 7d 18 mov 0x18(%r13),%r15 + 406e14: 4d 85 ff test %r15,%r15 + 406e17: 74 26 je 406e3f + 406e19: 41 8b 07 mov (%r15),%eax + 406e1c: 83 f8 02 cmp $0x2,%eax + 406e1f: 0f 84 73 20 00 00 je 408e98 + 406e25: 83 f8 03 cmp $0x3,%eax + 406e28: 0f 84 61 20 00 00 je 408e8f + 406e2e: 83 f8 01 cmp $0x1,%eax + 406e31: 0f 84 6a 20 00 00 je 408ea1 + 406e37: 4c 89 ff mov %r15,%rdi + 406e3a: e8 71 6f 01 00 callq 41ddb0 <__cfree> + 406e3f: 4d 8b 7d 10 mov 0x10(%r13),%r15 + 406e43: 4d 85 ff test %r15,%r15 + 406e46: 74 26 je 406e6e + 406e48: 41 8b 07 mov (%r15),%eax + 406e4b: 83 f8 02 cmp $0x2,%eax + 406e4e: 0f 84 e5 0e 00 00 je 407d39 + 406e54: 83 f8 03 cmp $0x3,%eax + 406e57: 0f 84 d3 0e 00 00 je 407d30 + 406e5d: 83 f8 01 cmp $0x1,%eax + 406e60: 0f 84 01 0f 00 00 je 407d67 + 406e66: 4c 89 ff mov %r15,%rdi + 406e69: e8 42 6f 01 00 callq 41ddb0 <__cfree> + 406e6e: 4d 8b 7d 08 mov 0x8(%r13),%r15 + 406e72: 4d 85 ff test %r15,%r15 + 406e75: 0f 84 6e f5 ff ff je 4063e9 + 406e7b: 41 8b 07 mov (%r15),%eax + 406e7e: 83 f8 02 cmp $0x2,%eax + 406e81: 74 56 je 406ed9 + 406e83: 83 f8 03 cmp $0x3,%eax + 406e86: 0f 84 7c 20 00 00 je 408f08 + 406e8c: 83 f8 01 cmp $0x1,%eax + 406e8f: 74 76 je 406f07 + 406e91: 4c 89 ff mov %r15,%rdi + 406e94: e8 17 6f 01 00 callq 41ddb0 <__cfree> + 406e99: e9 4b f5 ff ff jmpq 4063e9 + 406e9e: 48 8b 78 18 mov 0x18(%rax),%rdi + 406ea2: 48 89 04 24 mov %rax,(%rsp) + 406ea6: e8 65 ed ff ff callq 405c10 <__gettext_free_exp> + 406eab: 48 8b 04 24 mov (%rsp),%rax + 406eaf: 48 8b 78 10 mov 0x10(%rax),%rdi + 406eb3: 48 89 04 24 mov %rax,(%rsp) + 406eb7: e8 54 ed ff ff callq 405c10 <__gettext_free_exp> + 406ebc: 48 8b 04 24 mov (%rsp),%rax + 406ec0: 48 8b 78 08 mov 0x8(%rax),%rdi + 406ec4: 48 89 04 24 mov %rax,(%rsp) + 406ec8: e8 43 ed ff ff callq 405c10 <__gettext_free_exp> + 406ecd: 48 8b 04 24 mov (%rsp),%rax + 406ed1: 48 89 c7 mov %rax,%rdi + 406ed4: e8 d7 6e 01 00 callq 41ddb0 <__cfree> + 406ed9: 49 8b 47 10 mov 0x10(%r15),%rax + 406edd: 48 85 c0 test %rax,%rax + 406ee0: 74 25 je 406f07 + 406ee2: 8b 10 mov (%rax),%edx + 406ee4: 83 fa 02 cmp $0x2,%edx + 406ee7: 0f 84 9d 15 00 00 je 40848a + 406eed: 83 fa 03 cmp $0x3,%edx + 406ef0: 0f 84 83 15 00 00 je 408479 + 406ef6: 83 fa 01 cmp $0x1,%edx + 406ef9: 0f 84 9c 15 00 00 je 40849b + 406eff: 48 89 c7 mov %rax,%rdi + 406f02: e8 a9 6e 01 00 callq 41ddb0 <__cfree> + 406f07: 49 8b 47 08 mov 0x8(%r15),%rax + 406f0b: 48 85 c0 test %rax,%rax + 406f0e: 48 89 04 24 mov %rax,(%rsp) + 406f12: 0f 84 79 ff ff ff je 406e91 + 406f18: 8b 00 mov (%rax),%eax + 406f1a: 83 f8 02 cmp $0x2,%eax + 406f1d: 0f 84 da 0b 00 00 je 407afd + 406f23: 83 f8 03 cmp $0x3,%eax + 406f26: 0f 84 c4 0b 00 00 je 407af0 + 406f2c: 83 f8 01 cmp $0x1,%eax + 406f2f: 0f 84 fa 0b 00 00 je 407b2f + 406f35: 48 8b 3c 24 mov (%rsp),%rdi + 406f39: e8 72 6e 01 00 callq 41ddb0 <__cfree> + 406f3e: 4c 89 ff mov %r15,%rdi + 406f41: e8 6a 6e 01 00 callq 41ddb0 <__cfree> + 406f46: e9 9e f4 ff ff jmpq 4063e9 + 406f4b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 406f50: 4d 8b 7d 18 mov 0x18(%r13),%r15 + 406f54: 4d 85 ff test %r15,%r15 + 406f57: 0f 84 a4 f5 ff ff je 406501 + 406f5d: 41 8b 07 mov (%r15),%eax + 406f60: 83 f8 02 cmp $0x2,%eax + 406f63: 0f 84 2a f5 ff ff je 406493 + 406f69: 83 f8 03 cmp $0x3,%eax + 406f6c: 0f 84 3e 20 00 00 je 408fb0 + 406f72: 83 f8 01 cmp $0x1,%eax + 406f75: 0f 84 4b f5 ff ff je 4064c6 + 406f7b: 4c 89 ff mov %r15,%rdi + 406f7e: e8 2d 6e 01 00 callq 41ddb0 <__cfree> + 406f83: e9 79 f5 ff ff jmpq 406501 + 406f88: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 406f8f: 00 + 406f90: 4d 8b 6c 24 18 mov 0x18(%r12),%r13 + 406f95: 4d 85 ed test %r13,%r13 + 406f98: 74 27 je 406fc1 + 406f9a: 41 8b 45 00 mov 0x0(%r13),%eax + 406f9e: 83 f8 02 cmp $0x2,%eax + 406fa1: 0f 84 f2 12 00 00 je 408299 + 406fa7: 83 f8 03 cmp $0x3,%eax + 406faa: 0f 84 e0 12 00 00 je 408290 + 406fb0: 83 f8 01 cmp $0x1,%eax + 406fb3: 0f 84 0f 13 00 00 je 4082c8 + 406fb9: 4c 89 ef mov %r13,%rdi + 406fbc: e8 ef 6d 01 00 callq 41ddb0 <__cfree> + 406fc1: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 + 406fc6: 4d 85 ed test %r13,%r13 + 406fc9: 0f 84 30 f9 ff ff je 4068ff + 406fcf: 41 8b 45 00 mov 0x0(%r13),%eax + 406fd3: 83 f8 02 cmp $0x2,%eax + 406fd6: 0f 84 bd f8 ff ff je 406899 + 406fdc: 83 f8 03 cmp $0x3,%eax + 406fdf: 0f 84 ab 20 00 00 je 409090 + 406fe5: 83 f8 01 cmp $0x1,%eax + 406fe8: 0f 84 da f8 ff ff je 4068c8 + 406fee: 4c 89 ef mov %r13,%rdi + 406ff1: e8 ba 6d 01 00 callq 41ddb0 <__cfree> + 406ff6: e9 04 f9 ff ff jmpq 4068ff + 406ffb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 407000: 4d 8b 6c 24 18 mov 0x18(%r12),%r13 + 407005: 4d 85 ed test %r13,%r13 + 407008: 0f 84 e3 f5 ff ff je 4065f1 + 40700e: 41 8b 45 00 mov 0x0(%r13),%eax + 407012: 83 f8 02 cmp $0x2,%eax + 407015: 0f 84 70 f5 ff ff je 40658b + 40701b: 83 f8 03 cmp $0x3,%eax + 40701e: 0f 84 34 20 00 00 je 409058 + 407024: 83 f8 01 cmp $0x1,%eax + 407027: 0f 84 8d f5 ff ff je 4065ba + 40702d: 4c 89 ef mov %r13,%rdi + 407030: e8 7b 6d 01 00 callq 41ddb0 <__cfree> + 407035: e9 b7 f5 ff ff jmpq 4065f1 + 40703a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 407040: 48 83 c4 18 add $0x18,%rsp + 407044: 31 c0 xor %eax,%eax + 407046: 5b pop %rbx + 407047: 5d pop %rbp + 407048: 41 5c pop %r12 + 40704a: 41 5d pop %r13 + 40704c: 41 5e pop %r14 + 40704e: 41 5f pop %r15 + 407050: c3 retq + 407051: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 407058: 48 8b 04 24 mov (%rsp),%rax + 40705c: 48 8b 40 18 mov 0x18(%rax),%rax + 407060: 48 85 c0 test %rax,%rax + 407063: 74 25 je 40708a + 407065: 8b 10 mov (%rax),%edx + 407067: 83 fa 02 cmp $0x2,%edx + 40706a: 0f 84 63 20 00 00 je 4090d3 + 407070: 83 fa 03 cmp $0x3,%edx + 407073: 0f 84 47 20 00 00 je 4090c0 + 407079: 83 fa 01 cmp $0x1,%edx + 40707c: 0f 84 64 20 00 00 je 4090e6 + 407082: 48 89 c7 mov %rax,%rdi + 407085: e8 26 6d 01 00 callq 41ddb0 <__cfree> + 40708a: 48 8b 04 24 mov (%rsp),%rax + 40708e: 48 8b 40 10 mov 0x10(%rax),%rax + 407092: 48 85 c0 test %rax,%rax + 407095: 74 25 je 4070bc + 407097: 8b 10 mov (%rax),%edx + 407099: 83 fa 02 cmp $0x2,%edx + 40709c: 0f 84 01 0f 00 00 je 407fa3 + 4070a2: 83 fa 03 cmp $0x3,%edx + 4070a5: 0f 84 e5 0e 00 00 je 407f90 + 4070ab: 83 fa 01 cmp $0x1,%edx + 4070ae: 0f 84 02 0f 00 00 je 407fb6 + 4070b4: 48 89 c7 mov %rax,%rdi + 4070b7: e8 f4 6c 01 00 callq 41ddb0 <__cfree> + 4070bc: 48 8b 04 24 mov (%rsp),%rax + 4070c0: 48 8b 40 08 mov 0x8(%rax),%rax + 4070c4: 48 85 c0 test %rax,%rax + 4070c7: 0f 84 3b fb ff ff je 406c08 + 4070cd: 8b 10 mov (%rax),%edx + 4070cf: 83 fa 02 cmp $0x2,%edx + 4070d2: 74 2f je 407103 + 4070d4: 83 fa 03 cmp $0x3,%edx + 4070d7: 74 17 je 4070f0 + 4070d9: 83 fa 01 cmp $0x1,%edx + 4070dc: 74 38 je 407116 + 4070de: 48 89 c7 mov %rax,%rdi + 4070e1: e8 ca 6c 01 00 callq 41ddb0 <__cfree> + 4070e6: e9 1d fb ff ff jmpq 406c08 + 4070eb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4070f0: 48 8b 78 18 mov 0x18(%rax),%rdi + 4070f4: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4070f9: e8 12 eb ff ff callq 405c10 <__gettext_free_exp> + 4070fe: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407103: 48 8b 78 10 mov 0x10(%rax),%rdi + 407107: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40710c: e8 ff ea ff ff callq 405c10 <__gettext_free_exp> + 407111: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407116: 48 8b 78 08 mov 0x8(%rax),%rdi + 40711a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40711f: e8 ec ea ff ff callq 405c10 <__gettext_free_exp> + 407124: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407129: 48 89 c7 mov %rax,%rdi + 40712c: e8 7f 6c 01 00 callq 41ddb0 <__cfree> + 407131: e9 d2 fa ff ff jmpq 406c08 + 407136: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40713d: 00 00 00 + 407140: 48 8b 04 24 mov (%rsp),%rax + 407144: 48 8b 40 18 mov 0x18(%rax),%rax + 407148: 48 85 c0 test %rax,%rax + 40714b: 74 25 je 407172 + 40714d: 8b 10 mov (%rax),%edx + 40714f: 83 fa 02 cmp $0x2,%edx + 407152: 0f 84 cb 21 00 00 je 409323 + 407158: 83 fa 03 cmp $0x3,%edx + 40715b: 0f 84 af 21 00 00 je 409310 + 407161: 83 fa 01 cmp $0x1,%edx + 407164: 0f 84 cc 21 00 00 je 409336 + 40716a: 48 89 c7 mov %rax,%rdi + 40716d: e8 3e 6c 01 00 callq 41ddb0 <__cfree> + 407172: 48 8b 04 24 mov (%rsp),%rax + 407176: 48 8b 40 10 mov 0x10(%rax),%rax + 40717a: 48 85 c0 test %rax,%rax + 40717d: 74 25 je 4071a4 + 40717f: 8b 10 mov (%rax),%edx + 407181: 83 fa 02 cmp $0x2,%edx + 407184: 0f 84 59 0d 00 00 je 407ee3 + 40718a: 83 fa 03 cmp $0x3,%edx + 40718d: 0f 84 3d 0d 00 00 je 407ed0 + 407193: 83 fa 01 cmp $0x1,%edx + 407196: 0f 84 5a 0d 00 00 je 407ef6 + 40719c: 48 89 c7 mov %rax,%rdi + 40719f: e8 0c 6c 01 00 callq 41ddb0 <__cfree> + 4071a4: 48 8b 04 24 mov (%rsp),%rax + 4071a8: 48 8b 40 08 mov 0x8(%rax),%rax + 4071ac: 48 85 c0 test %rax,%rax + 4071af: 0f 84 48 f5 ff ff je 4066fd + 4071b5: 8b 10 mov (%rax),%edx + 4071b7: 83 fa 02 cmp $0x2,%edx + 4071ba: 74 2f je 4071eb + 4071bc: 83 fa 03 cmp $0x3,%edx + 4071bf: 74 17 je 4071d8 + 4071c1: 83 fa 01 cmp $0x1,%edx + 4071c4: 74 38 je 4071fe + 4071c6: 48 89 c7 mov %rax,%rdi + 4071c9: e8 e2 6b 01 00 callq 41ddb0 <__cfree> + 4071ce: e9 2a f5 ff ff jmpq 4066fd + 4071d3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4071d8: 48 8b 78 18 mov 0x18(%rax),%rdi + 4071dc: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4071e1: e8 2a ea ff ff callq 405c10 <__gettext_free_exp> + 4071e6: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4071eb: 48 8b 78 10 mov 0x10(%rax),%rdi + 4071ef: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4071f4: e8 17 ea ff ff callq 405c10 <__gettext_free_exp> + 4071f9: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4071fe: 48 8b 78 08 mov 0x8(%rax),%rdi + 407202: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407207: e8 04 ea ff ff callq 405c10 <__gettext_free_exp> + 40720c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407211: 48 89 c7 mov %rax,%rdi + 407214: e8 97 6b 01 00 callq 41ddb0 <__cfree> + 407219: e9 df f4 ff ff jmpq 4066fd + 40721e: 66 90 xchg %ax,%ax + 407220: 48 8b 04 24 mov (%rsp),%rax + 407224: 48 8b 40 18 mov 0x18(%rax),%rax + 407228: 48 85 c0 test %rax,%rax + 40722b: 74 25 je 407252 + 40722d: 8b 10 mov (%rax),%edx + 40722f: 83 fa 02 cmp $0x2,%edx + 407232: 0f 84 ad 20 00 00 je 4092e5 + 407238: 83 fa 03 cmp $0x3,%edx + 40723b: 0f 84 91 20 00 00 je 4092d2 + 407241: 83 fa 01 cmp $0x1,%edx + 407244: 0f 84 ae 20 00 00 je 4092f8 + 40724a: 48 89 c7 mov %rax,%rdi + 40724d: e8 5e 6b 01 00 callq 41ddb0 <__cfree> + 407252: 48 8b 04 24 mov (%rsp),%rax + 407256: 48 8b 40 10 mov 0x10(%rax),%rax + 40725a: 48 85 c0 test %rax,%rax + 40725d: 74 25 je 407284 + 40725f: 8b 10 mov (%rax),%edx + 407261: 83 fa 02 cmp $0x2,%edx + 407264: 0f 84 f9 0c 00 00 je 407f63 + 40726a: 83 fa 03 cmp $0x3,%edx + 40726d: 0f 84 dd 0c 00 00 je 407f50 + 407273: 83 fa 01 cmp $0x1,%edx + 407276: 0f 84 fa 0c 00 00 je 407f76 + 40727c: 48 89 c7 mov %rax,%rdi + 40727f: e8 2c 6b 01 00 callq 41ddb0 <__cfree> + 407284: 48 8b 04 24 mov (%rsp),%rax + 407288: 48 8b 40 08 mov 0x8(%rax),%rax + 40728c: 48 85 c0 test %rax,%rax + 40728f: 0f 84 bd f8 ff ff je 406b52 + 407295: 8b 10 mov (%rax),%edx + 407297: 83 fa 02 cmp $0x2,%edx + 40729a: 74 2f je 4072cb + 40729c: 83 fa 03 cmp $0x3,%edx + 40729f: 74 17 je 4072b8 + 4072a1: 83 fa 01 cmp $0x1,%edx + 4072a4: 74 38 je 4072de + 4072a6: 48 89 c7 mov %rax,%rdi + 4072a9: e8 02 6b 01 00 callq 41ddb0 <__cfree> + 4072ae: e9 9f f8 ff ff jmpq 406b52 + 4072b3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4072b8: 48 8b 78 18 mov 0x18(%rax),%rdi + 4072bc: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4072c1: e8 4a e9 ff ff callq 405c10 <__gettext_free_exp> + 4072c6: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4072cb: 48 8b 78 10 mov 0x10(%rax),%rdi + 4072cf: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4072d4: e8 37 e9 ff ff callq 405c10 <__gettext_free_exp> + 4072d9: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4072de: 48 8b 78 08 mov 0x8(%rax),%rdi + 4072e2: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4072e7: e8 24 e9 ff ff callq 405c10 <__gettext_free_exp> + 4072ec: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4072f1: 48 89 c7 mov %rax,%rdi + 4072f4: e8 b7 6a 01 00 callq 41ddb0 <__cfree> + 4072f9: e9 54 f8 ff ff jmpq 406b52 + 4072fe: 66 90 xchg %ax,%ax + 407300: 48 8b 04 24 mov (%rsp),%rax + 407304: 48 8b 40 18 mov 0x18(%rax),%rax + 407308: 48 85 c0 test %rax,%rax + 40730b: 74 25 je 407332 + 40730d: 8b 10 mov (%rax),%edx + 40730f: 83 fa 02 cmp $0x2,%edx + 407312: 0f 84 c9 22 00 00 je 4095e1 + 407318: 83 fa 03 cmp $0x3,%edx + 40731b: 0f 84 ad 22 00 00 je 4095ce + 407321: 83 fa 01 cmp $0x1,%edx + 407324: 0f 84 ca 22 00 00 je 4095f4 + 40732a: 48 89 c7 mov %rax,%rdi + 40732d: e8 7e 6a 01 00 callq 41ddb0 <__cfree> + 407332: 48 8b 04 24 mov (%rsp),%rax + 407336: 48 8b 40 10 mov 0x10(%rax),%rax + 40733a: 48 85 c0 test %rax,%rax + 40733d: 74 25 je 407364 + 40733f: 8b 10 mov (%rax),%edx + 407341: 83 fa 02 cmp $0x2,%edx + 407344: 0f 84 99 0c 00 00 je 407fe3 + 40734a: 83 fa 03 cmp $0x3,%edx + 40734d: 0f 84 7d 0c 00 00 je 407fd0 + 407353: 83 fa 01 cmp $0x1,%edx + 407356: 0f 84 9a 0c 00 00 je 407ff6 + 40735c: 48 89 c7 mov %rax,%rdi + 40735f: e8 4c 6a 01 00 callq 41ddb0 <__cfree> + 407364: 48 8b 04 24 mov (%rsp),%rax + 407368: 48 8b 40 08 mov 0x8(%rax),%rax + 40736c: 48 85 c0 test %rax,%rax + 40736f: 0f 84 f3 f6 ff ff je 406a68 + 407375: 8b 10 mov (%rax),%edx + 407377: 83 fa 02 cmp $0x2,%edx + 40737a: 74 2f je 4073ab + 40737c: 83 fa 03 cmp $0x3,%edx + 40737f: 74 17 je 407398 + 407381: 83 fa 01 cmp $0x1,%edx + 407384: 74 38 je 4073be + 407386: 48 89 c7 mov %rax,%rdi + 407389: e8 22 6a 01 00 callq 41ddb0 <__cfree> + 40738e: e9 d5 f6 ff ff jmpq 406a68 + 407393: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 407398: 48 8b 78 18 mov 0x18(%rax),%rdi + 40739c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4073a1: e8 6a e8 ff ff callq 405c10 <__gettext_free_exp> + 4073a6: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4073ab: 48 8b 78 10 mov 0x10(%rax),%rdi + 4073af: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4073b4: e8 57 e8 ff ff callq 405c10 <__gettext_free_exp> + 4073b9: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4073be: 48 8b 78 08 mov 0x8(%rax),%rdi + 4073c2: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4073c7: e8 44 e8 ff ff callq 405c10 <__gettext_free_exp> + 4073cc: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4073d1: 48 89 c7 mov %rax,%rdi + 4073d4: e8 d7 69 01 00 callq 41ddb0 <__cfree> + 4073d9: e9 8a f6 ff ff jmpq 406a68 + 4073de: 66 90 xchg %ax,%ax + 4073e0: 48 8b 50 18 mov 0x18(%rax),%rdx + 4073e4: 48 85 d2 test %rdx,%rdx + 4073e7: 74 2d je 407416 + 4073e9: 8b 0a mov (%rdx),%ecx + 4073eb: 83 f9 02 cmp $0x2,%ecx + 4073ee: 0f 84 27 0f 00 00 je 40831b + 4073f4: 83 f9 03 cmp $0x3,%ecx + 4073f7: 0f 84 03 0f 00 00 je 408300 + 4073fd: 83 f9 01 cmp $0x1,%ecx + 407400: 0f 84 30 0f 00 00 je 408336 + 407406: 48 89 d7 mov %rdx,%rdi + 407409: 48 89 04 24 mov %rax,(%rsp) + 40740d: e8 9e 69 01 00 callq 41ddb0 <__cfree> + 407412: 48 8b 04 24 mov (%rsp),%rax + 407416: 48 8b 50 10 mov 0x10(%rax),%rdx + 40741a: 48 85 d2 test %rdx,%rdx + 40741d: 0f 84 7e f5 ff ff je 4069a1 + 407423: 8b 0a mov (%rdx),%ecx + 407425: 83 f9 02 cmp $0x2,%ecx + 407428: 0f 84 2d f5 ff ff je 40695b + 40742e: 83 f9 03 cmp $0x3,%ecx + 407431: 0f 84 09 f5 ff ff je 406940 + 407437: 83 f9 01 cmp $0x1,%ecx + 40743a: 0f 84 36 f5 ff ff je 406976 + 407440: 48 89 d7 mov %rdx,%rdi + 407443: 48 89 04 24 mov %rax,(%rsp) + 407447: e8 64 69 01 00 callq 41ddb0 <__cfree> + 40744c: 48 8b 04 24 mov (%rsp),%rax + 407450: e9 4c f5 ff ff jmpq 4069a1 + 407455: 0f 1f 00 nopl (%rax) + 407458: 49 8b 47 18 mov 0x18(%r15),%rax + 40745c: 48 85 c0 test %rax,%rax + 40745f: 74 25 je 407486 + 407461: 8b 10 mov (%rax),%edx + 407463: 83 fa 02 cmp $0x2,%edx + 407466: 0f 84 58 23 00 00 je 4097c4 + 40746c: 83 fa 03 cmp $0x3,%edx + 40746f: 0f 84 3e 23 00 00 je 4097b3 + 407475: 83 fa 01 cmp $0x1,%edx + 407478: 0f 84 57 23 00 00 je 4097d5 + 40747e: 48 89 c7 mov %rax,%rdi + 407481: e8 2a 69 01 00 callq 41ddb0 <__cfree> + 407486: 49 8b 47 10 mov 0x10(%r15),%rax + 40748a: 48 85 c0 test %rax,%rax + 40748d: 48 89 04 24 mov %rax,(%rsp) + 407491: 74 26 je 4074b9 + 407493: 8b 00 mov (%rax),%eax + 407495: 83 f8 02 cmp $0x2,%eax + 407498: 0f 84 7f 0c 00 00 je 40811d + 40749e: 83 f8 03 cmp $0x3,%eax + 4074a1: 0f 84 69 0c 00 00 je 408110 + 4074a7: 83 f8 01 cmp $0x1,%eax + 4074aa: 0f 84 9f 0c 00 00 je 40814f + 4074b0: 48 8b 3c 24 mov (%rsp),%rdi + 4074b4: e8 f7 68 01 00 callq 41ddb0 <__cfree> + 4074b9: 49 8b 47 08 mov 0x8(%r15),%rax + 4074bd: 48 85 c0 test %rax,%rax + 4074c0: 48 89 04 24 mov %rax,(%rsp) + 4074c4: 0f 84 6c f3 ff ff je 406836 + 4074ca: 8b 00 mov (%rax),%eax + 4074cc: 83 f8 02 cmp $0x2,%eax + 4074cf: 74 2c je 4074fd + 4074d1: 83 f8 03 cmp $0x3,%eax + 4074d4: 74 1a je 4074f0 + 4074d6: 83 f8 01 cmp $0x1,%eax + 4074d9: 74 54 je 40752f + 4074db: 48 8b 3c 24 mov (%rsp),%rdi + 4074df: e8 cc 68 01 00 callq 41ddb0 <__cfree> + 4074e4: e9 4d f3 ff ff jmpq 406836 + 4074e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4074f0: 48 8b 04 24 mov (%rsp),%rax + 4074f4: 48 8b 78 18 mov 0x18(%rax),%rdi + 4074f8: e8 13 e7 ff ff callq 405c10 <__gettext_free_exp> + 4074fd: 48 8b 04 24 mov (%rsp),%rax + 407501: 48 8b 40 10 mov 0x10(%rax),%rax + 407505: 48 85 c0 test %rax,%rax + 407508: 74 25 je 40752f + 40750a: 8b 10 mov (%rax),%edx + 40750c: 83 fa 02 cmp $0x2,%edx + 40750f: 0f 84 48 12 00 00 je 40875d + 407515: 83 fa 03 cmp $0x3,%edx + 407518: 0f 84 2c 12 00 00 je 40874a + 40751e: 83 fa 01 cmp $0x1,%edx + 407521: 0f 84 49 12 00 00 je 408770 + 407527: 48 89 c7 mov %rax,%rdi + 40752a: e8 81 68 01 00 callq 41ddb0 <__cfree> + 40752f: 48 8b 04 24 mov (%rsp),%rax + 407533: 48 8b 40 08 mov 0x8(%rax),%rax + 407537: 48 85 c0 test %rax,%rax + 40753a: 74 9f je 4074db + 40753c: 8b 10 mov (%rax),%edx + 40753e: 83 fa 02 cmp $0x2,%edx + 407541: 0f 84 1c 09 00 00 je 407e63 + 407547: 83 fa 03 cmp $0x3,%edx + 40754a: 0f 84 00 09 00 00 je 407e50 + 407550: 83 fa 01 cmp $0x1,%edx + 407553: 0f 84 1d 09 00 00 je 407e76 + 407559: 48 89 c7 mov %rax,%rdi + 40755c: e8 4f 68 01 00 callq 41ddb0 <__cfree> + 407561: 48 8b 3c 24 mov (%rsp),%rdi + 407565: e8 46 68 01 00 callq 41ddb0 <__cfree> + 40756a: e9 c7 f2 ff ff jmpq 406836 + 40756f: 90 nop + 407570: 49 8b 47 18 mov 0x18(%r15),%rax + 407574: 48 85 c0 test %rax,%rax + 407577: 74 25 je 40759e + 407579: 8b 10 mov (%rax),%edx + 40757b: 83 fa 02 cmp $0x2,%edx + 40757e: 0f 84 e3 0d 00 00 je 408367 + 407584: 83 fa 03 cmp $0x3,%edx + 407587: 0f 84 c9 0d 00 00 je 408356 + 40758d: 83 fa 01 cmp $0x1,%edx + 407590: 0f 84 e2 0d 00 00 je 408378 + 407596: 48 89 c7 mov %rax,%rdi + 407599: e8 12 68 01 00 callq 41ddb0 <__cfree> + 40759e: 49 8b 47 10 mov 0x10(%r15),%rax + 4075a2: 48 85 c0 test %rax,%rax + 4075a5: 48 89 04 24 mov %rax,(%rsp) + 4075a9: 0f 84 75 f5 ff ff je 406b24 + 4075af: 8b 00 mov (%rax),%eax + 4075b1: 83 f8 02 cmp $0x2,%eax + 4075b4: 0f 84 fd f4 ff ff je 406ab7 + 4075ba: 83 f8 03 cmp $0x3,%eax + 4075bd: 0f 84 dd 20 00 00 je 4096a0 + 4075c3: 83 f8 01 cmp $0x1,%eax + 4075c6: 0f 84 1d f5 ff ff je 406ae9 + 4075cc: 48 8b 3c 24 mov (%rsp),%rdi + 4075d0: e8 db 67 01 00 callq 41ddb0 <__cfree> + 4075d5: e9 4a f5 ff ff jmpq 406b24 + 4075da: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4075e0: 49 8b 47 18 mov 0x18(%r15),%rax + 4075e4: 48 85 c0 test %rax,%rax + 4075e7: 74 25 je 40760e + 4075e9: 8b 10 mov (%rax),%edx + 4075eb: 83 fa 02 cmp $0x2,%edx + 4075ee: 0f 84 f7 0e 00 00 je 4084eb + 4075f4: 83 fa 03 cmp $0x3,%edx + 4075f7: 0f 84 dd 0e 00 00 je 4084da + 4075fd: 83 fa 01 cmp $0x1,%edx + 407600: 0f 84 f6 0e 00 00 je 4084fc + 407606: 48 89 c7 mov %rax,%rdi + 407609: e8 a2 67 01 00 callq 41ddb0 <__cfree> + 40760e: 49 8b 47 10 mov 0x10(%r15),%rax + 407612: 48 85 c0 test %rax,%rax + 407615: 48 89 04 24 mov %rax,(%rsp) + 407619: 0f 84 1b f4 ff ff je 406a3a + 40761f: 8b 00 mov (%rax),%eax + 407621: 83 f8 02 cmp $0x2,%eax + 407624: 0f 84 a3 f3 ff ff je 4069cd + 40762a: 83 f8 03 cmp $0x3,%eax + 40762d: 0f 84 8d f3 ff ff je 4069c0 + 407633: 83 f8 01 cmp $0x1,%eax + 407636: 0f 84 c3 f3 ff ff je 4069ff + 40763c: 48 8b 3c 24 mov (%rsp),%rdi + 407640: e8 6b 67 01 00 callq 41ddb0 <__cfree> + 407645: e9 f0 f3 ff ff jmpq 406a3a + 40764a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 407650: 49 8b 47 18 mov 0x18(%r15),%rax + 407654: 48 85 c0 test %rax,%rax + 407657: 74 25 je 40767e + 407659: 8b 10 mov (%rax),%edx + 40765b: 83 fa 02 cmp $0x2,%edx + 40765e: 0f 84 08 22 00 00 je 40986c + 407664: 83 fa 03 cmp $0x3,%edx + 407667: 0f 84 ee 21 00 00 je 40985b + 40766d: 83 fa 01 cmp $0x1,%edx + 407670: 0f 84 07 22 00 00 je 40987d + 407676: 48 89 c7 mov %rax,%rdi + 407679: e8 32 67 01 00 callq 41ddb0 <__cfree> + 40767e: 49 8b 47 10 mov 0x10(%r15),%rax + 407682: 48 85 c0 test %rax,%rax + 407685: 48 89 04 24 mov %rax,(%rsp) + 407689: 74 26 je 4076b1 + 40768b: 8b 00 mov (%rax),%eax + 40768d: 83 f8 02 cmp $0x2,%eax + 407690: 0f 84 87 0b 00 00 je 40821d + 407696: 83 f8 03 cmp $0x3,%eax + 407699: 0f 84 71 0b 00 00 je 408210 + 40769f: 83 f8 01 cmp $0x1,%eax + 4076a2: 0f 84 a7 0b 00 00 je 40824f + 4076a8: 48 8b 3c 24 mov (%rsp),%rdi + 4076ac: e8 ff 66 01 00 callq 41ddb0 <__cfree> + 4076b1: 49 8b 47 08 mov 0x8(%r15),%rax + 4076b5: 48 85 c0 test %rax,%rax + 4076b8: 48 89 04 24 mov %rax,(%rsp) + 4076bc: 0f 84 d4 f0 ff ff je 406796 + 4076c2: 8b 00 mov (%rax),%eax + 4076c4: 83 f8 02 cmp $0x2,%eax + 4076c7: 74 2c je 4076f5 + 4076c9: 83 f8 03 cmp $0x3,%eax + 4076cc: 74 1a je 4076e8 + 4076ce: 83 f8 01 cmp $0x1,%eax + 4076d1: 74 54 je 407727 + 4076d3: 48 8b 3c 24 mov (%rsp),%rdi + 4076d7: e8 d4 66 01 00 callq 41ddb0 <__cfree> + 4076dc: e9 b5 f0 ff ff jmpq 406796 + 4076e1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4076e8: 48 8b 04 24 mov (%rsp),%rax + 4076ec: 48 8b 78 18 mov 0x18(%rax),%rdi + 4076f0: e8 1b e5 ff ff callq 405c10 <__gettext_free_exp> + 4076f5: 48 8b 04 24 mov (%rsp),%rax + 4076f9: 48 8b 40 10 mov 0x10(%rax),%rax + 4076fd: 48 85 c0 test %rax,%rax + 407700: 74 25 je 407727 + 407702: 8b 10 mov (%rax),%edx + 407704: 83 fa 02 cmp $0x2,%edx + 407707: 0f 84 cc 10 00 00 je 4087d9 + 40770d: 83 fa 03 cmp $0x3,%edx + 407710: 0f 84 b0 10 00 00 je 4087c6 + 407716: 83 fa 01 cmp $0x1,%edx + 407719: 0f 84 cd 10 00 00 je 4087ec + 40771f: 48 89 c7 mov %rax,%rdi + 407722: e8 89 66 01 00 callq 41ddb0 <__cfree> + 407727: 48 8b 04 24 mov (%rsp),%rax + 40772b: 48 8b 40 08 mov 0x8(%rax),%rax + 40772f: 48 85 c0 test %rax,%rax + 407732: 74 9f je 4076d3 + 407734: 8b 10 mov (%rax),%edx + 407736: 83 fa 02 cmp $0x2,%edx + 407739: 0f 84 24 09 00 00 je 408063 + 40773f: 83 fa 03 cmp $0x3,%edx + 407742: 0f 84 08 09 00 00 je 408050 + 407748: 83 fa 01 cmp $0x1,%edx + 40774b: 0f 84 25 09 00 00 je 408076 + 407751: 48 89 c7 mov %rax,%rdi + 407754: e8 57 66 01 00 callq 41ddb0 <__cfree> + 407759: 48 8b 3c 24 mov (%rsp),%rdi + 40775d: e8 4e 66 01 00 callq 41ddb0 <__cfree> + 407762: e9 2f f0 ff ff jmpq 406796 + 407767: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40776e: 00 00 + 407770: 49 8b 47 18 mov 0x18(%r15),%rax + 407774: 48 85 c0 test %rax,%rax + 407777: 74 25 je 40779e + 407779: 8b 10 mov (%rax),%edx + 40777b: 83 fa 02 cmp $0x2,%edx + 40777e: 0f 84 a8 22 00 00 je 409a2c + 407784: 83 fa 03 cmp $0x3,%edx + 407787: 0f 84 8e 22 00 00 je 409a1b + 40778d: 83 fa 01 cmp $0x1,%edx + 407790: 0f 84 a7 22 00 00 je 409a3d + 407796: 48 89 c7 mov %rax,%rdi + 407799: e8 12 66 01 00 callq 41ddb0 <__cfree> + 40779e: 49 8b 47 10 mov 0x10(%r15),%rax + 4077a2: 48 85 c0 test %rax,%rax + 4077a5: 48 89 04 24 mov %rax,(%rsp) + 4077a9: 74 26 je 4077d1 + 4077ab: 8b 00 mov (%rax),%eax + 4077ad: 83 f8 02 cmp $0x2,%eax + 4077b0: 0f 84 e7 09 00 00 je 40819d + 4077b6: 83 f8 03 cmp $0x3,%eax + 4077b9: 0f 84 d1 09 00 00 je 408190 + 4077bf: 83 f8 01 cmp $0x1,%eax + 4077c2: 0f 84 07 0a 00 00 je 4081cf + 4077c8: 48 8b 3c 24 mov (%rsp),%rdi + 4077cc: e8 df 65 01 00 callq 41ddb0 <__cfree> + 4077d1: 49 8b 47 08 mov 0x8(%r15),%rax + 4077d5: 48 85 c0 test %rax,%rax + 4077d8: 48 89 04 24 mov %rax,(%rsp) + 4077dc: 0f 84 db f4 ff ff je 406cbd + 4077e2: 8b 00 mov (%rax),%eax + 4077e4: 83 f8 02 cmp $0x2,%eax + 4077e7: 74 2c je 407815 + 4077e9: 83 f8 03 cmp $0x3,%eax + 4077ec: 74 1a je 407808 + 4077ee: 83 f8 01 cmp $0x1,%eax + 4077f1: 74 54 je 407847 + 4077f3: 48 8b 3c 24 mov (%rsp),%rdi + 4077f7: e8 b4 65 01 00 callq 41ddb0 <__cfree> + 4077fc: e9 bc f4 ff ff jmpq 406cbd + 407801: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 407808: 48 8b 04 24 mov (%rsp),%rax + 40780c: 48 8b 78 18 mov 0x18(%rax),%rdi + 407810: e8 fb e3 ff ff callq 405c10 <__gettext_free_exp> + 407815: 48 8b 04 24 mov (%rsp),%rax + 407819: 48 8b 40 10 mov 0x10(%rax),%rax + 40781d: 48 85 c0 test %rax,%rax + 407820: 74 25 je 407847 + 407822: 8b 10 mov (%rax),%edx + 407824: 83 fa 02 cmp $0x2,%edx + 407827: 0f 84 f2 0e 00 00 je 40871f + 40782d: 83 fa 03 cmp $0x3,%edx + 407830: 0f 84 d6 0e 00 00 je 40870c + 407836: 83 fa 01 cmp $0x1,%edx + 407839: 0f 84 f3 0e 00 00 je 408732 + 40783f: 48 89 c7 mov %rax,%rdi + 407842: e8 69 65 01 00 callq 41ddb0 <__cfree> + 407847: 48 8b 04 24 mov (%rsp),%rax + 40784b: 48 8b 40 08 mov 0x8(%rax),%rax + 40784f: 48 85 c0 test %rax,%rax + 407852: 74 9f je 4077f3 + 407854: 8b 10 mov (%rax),%edx + 407856: 83 fa 02 cmp $0x2,%edx + 407859: 0f 84 c4 07 00 00 je 408023 + 40785f: 83 fa 03 cmp $0x3,%edx + 407862: 0f 84 a8 07 00 00 je 408010 + 407868: 83 fa 01 cmp $0x1,%edx + 40786b: 0f 84 c5 07 00 00 je 408036 + 407871: 48 89 c7 mov %rax,%rdi + 407874: e8 37 65 01 00 callq 41ddb0 <__cfree> + 407879: 48 8b 3c 24 mov (%rsp),%rdi + 40787d: e8 2e 65 01 00 callq 41ddb0 <__cfree> + 407882: e9 36 f4 ff ff jmpq 406cbd + 407887: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40788e: 00 00 + 407890: 49 8b 47 18 mov 0x18(%r15),%rax + 407894: 48 85 c0 test %rax,%rax + 407897: 74 25 je 4078be + 407899: 8b 10 mov (%rax),%edx + 40789b: 83 fa 02 cmp $0x2,%edx + 40789e: 0f 84 85 0b 00 00 je 408429 + 4078a4: 83 fa 03 cmp $0x3,%edx + 4078a7: 0f 84 6b 0b 00 00 je 408418 + 4078ad: 83 fa 01 cmp $0x1,%edx + 4078b0: 0f 84 84 0b 00 00 je 40843a + 4078b6: 48 89 c7 mov %rax,%rdi + 4078b9: e8 f2 64 01 00 callq 41ddb0 <__cfree> + 4078be: 49 8b 47 10 mov 0x10(%r15),%rax + 4078c2: 48 85 c0 test %rax,%rax + 4078c5: 48 89 04 24 mov %rax,(%rsp) + 4078c9: 0f 84 0b f3 ff ff je 406bda + 4078cf: 8b 00 mov (%rax),%eax + 4078d1: 83 f8 02 cmp $0x2,%eax + 4078d4: 0f 84 93 f2 ff ff je 406b6d + 4078da: 83 f8 03 cmp $0x3,%eax + 4078dd: 0f 84 7d f2 ff ff je 406b60 + 4078e3: 83 f8 01 cmp $0x1,%eax + 4078e6: 0f 84 b3 f2 ff ff je 406b9f + 4078ec: 48 8b 3c 24 mov (%rsp),%rdi + 4078f0: e8 bb 64 01 00 callq 41ddb0 <__cfree> + 4078f5: e9 e0 f2 ff ff jmpq 406bda + 4078fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 407900: 4d 8b 7d 18 mov 0x18(%r13),%r15 + 407904: 4d 85 ff test %r15,%r15 + 407907: 74 26 je 40792f + 407909: 41 8b 07 mov (%r15),%eax + 40790c: 83 f8 02 cmp $0x2,%eax + 40790f: 0f 84 3b 0d 00 00 je 408650 + 407915: 83 f8 03 cmp $0x3,%eax + 407918: 0f 84 29 0d 00 00 je 408647 + 40791e: 83 f8 01 cmp $0x1,%eax + 407921: 0f 84 32 0d 00 00 je 408659 + 407927: 4c 89 ff mov %r15,%rdi + 40792a: e8 81 64 01 00 callq 41ddb0 <__cfree> + 40792f: 4d 8b 7d 10 mov 0x10(%r13),%r15 + 407933: 4d 85 ff test %r15,%r15 + 407936: 0f 84 56 f3 ff ff je 406c92 + 40793c: 41 8b 07 mov (%r15),%eax + 40793f: 83 f8 02 cmp $0x2,%eax + 407942: 0f 84 e1 f2 ff ff je 406c29 + 407948: 83 f8 03 cmp $0x3,%eax + 40794b: 0f 84 cf f2 ff ff je 406c20 + 407951: 83 f8 01 cmp $0x1,%eax + 407954: 0f 84 fd f2 ff ff je 406c57 + 40795a: 4c 89 ff mov %r15,%rdi + 40795d: e8 4e 64 01 00 callq 41ddb0 <__cfree> + 407962: e9 2b f3 ff ff jmpq 406c92 + 407967: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40796e: 00 00 + 407970: 48 8b 04 24 mov (%rsp),%rax + 407974: 48 8b 78 18 mov 0x18(%rax),%rdi + 407978: e8 93 e2 ff ff callq 405c10 <__gettext_free_exp> + 40797d: 48 8b 04 24 mov (%rsp),%rax + 407981: 48 8b 40 10 mov 0x10(%rax),%rax + 407985: 48 85 c0 test %rax,%rax + 407988: 74 25 je 4079af + 40798a: 8b 10 mov (%rax),%edx + 40798c: 83 fa 02 cmp $0x2,%edx + 40798f: 0f 84 0c 1b 00 00 je 4094a1 + 407995: 83 fa 03 cmp $0x3,%edx + 407998: 0f 84 f0 1a 00 00 je 40948e + 40799e: 83 fa 01 cmp $0x1,%edx + 4079a1: 0f 84 0d 1b 00 00 je 4094b4 + 4079a7: 48 89 c7 mov %rax,%rdi + 4079aa: e8 01 64 01 00 callq 41ddb0 <__cfree> + 4079af: 48 8b 04 24 mov (%rsp),%rax + 4079b3: 48 8b 40 08 mov 0x8(%rax),%rax + 4079b7: 48 85 c0 test %rax,%rax + 4079ba: 0f 84 30 eb ff ff je 4064f0 + 4079c0: 8b 10 mov (%rax),%edx + 4079c2: 83 fa 02 cmp $0x2,%edx + 4079c5: 0f 84 69 10 00 00 je 408a34 + 4079cb: 83 fa 03 cmp $0x3,%edx + 4079ce: 0f 84 4d 10 00 00 je 408a21 + 4079d4: 83 fa 01 cmp $0x1,%edx + 4079d7: 0f 84 6a 10 00 00 je 408a47 + 4079dd: 48 89 c7 mov %rax,%rdi + 4079e0: e8 cb 63 01 00 callq 41ddb0 <__cfree> + 4079e5: e9 06 eb ff ff jmpq 4064f0 + 4079ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4079f0: 48 8b 04 24 mov (%rsp),%rax + 4079f4: 48 8b 78 18 mov 0x18(%rax),%rdi + 4079f8: e8 13 e2 ff ff callq 405c10 <__gettext_free_exp> + 4079fd: 48 8b 04 24 mov (%rsp),%rax + 407a01: 48 8b 40 10 mov 0x10(%rax),%rax + 407a05: 48 85 c0 test %rax,%rax + 407a08: 74 25 je 407a2f + 407a0a: 8b 10 mov (%rax),%edx + 407a0c: 83 fa 02 cmp $0x2,%edx + 407a0f: 0f 84 0a 1c 00 00 je 40961f + 407a15: 83 fa 03 cmp $0x3,%edx + 407a18: 0f 84 ee 1b 00 00 je 40960c + 407a1e: 83 fa 01 cmp $0x1,%edx + 407a21: 0f 84 0b 1c 00 00 je 409632 + 407a27: 48 89 c7 mov %rax,%rdi + 407a2a: e8 81 63 01 00 callq 41ddb0 <__cfree> + 407a2f: 48 8b 04 24 mov (%rsp),%rax + 407a33: 48 8b 40 08 mov 0x8(%rax),%rax + 407a37: 48 85 c0 test %rax,%rax + 407a3a: 0f 84 8a ec ff ff je 4066ca + 407a40: 8b 10 mov (%rax),%edx + 407a42: 83 fa 02 cmp $0x2,%edx + 407a45: 0f 84 a3 10 00 00 je 408aee + 407a4b: 83 fa 03 cmp $0x3,%edx + 407a4e: 0f 84 87 10 00 00 je 408adb + 407a54: 83 fa 01 cmp $0x1,%edx + 407a57: 0f 84 a4 10 00 00 je 408b01 + 407a5d: 48 89 c7 mov %rax,%rdi + 407a60: e8 4b 63 01 00 callq 41ddb0 <__cfree> + 407a65: e9 60 ec ff ff jmpq 4066ca + 407a6a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 407a70: 48 8b 04 24 mov (%rsp),%rax + 407a74: 48 8b 78 18 mov 0x18(%rax),%rdi + 407a78: e8 93 e1 ff ff callq 405c10 <__gettext_free_exp> + 407a7d: 48 8b 04 24 mov (%rsp),%rax + 407a81: 48 8b 40 10 mov 0x10(%rax),%rax + 407a85: 48 85 c0 test %rax,%rax + 407a88: 74 25 je 407aaf + 407a8a: 8b 10 mov (%rax),%edx + 407a8c: 83 fa 02 cmp $0x2,%edx + 407a8f: 0f 84 66 17 00 00 je 4091fb + 407a95: 83 fa 03 cmp $0x3,%edx + 407a98: 0f 84 4a 17 00 00 je 4091e8 + 407a9e: 83 fa 01 cmp $0x1,%edx + 407aa1: 0f 84 67 17 00 00 je 40920e + 407aa7: 48 89 c7 mov %rax,%rdi + 407aaa: e8 01 63 01 00 callq 41ddb0 <__cfree> + 407aaf: 48 8b 04 24 mov (%rsp),%rax + 407ab3: 48 8b 40 08 mov 0x8(%rax),%rax + 407ab7: 48 85 c0 test %rax,%rax + 407aba: 0f 84 35 f3 ff ff je 406df5 + 407ac0: 8b 10 mov (%rax),%edx + 407ac2: 83 fa 02 cmp $0x2,%edx + 407ac5: 0f 84 e5 0f 00 00 je 408ab0 + 407acb: 83 fa 03 cmp $0x3,%edx + 407ace: 0f 84 c9 0f 00 00 je 408a9d + 407ad4: 83 fa 01 cmp $0x1,%edx + 407ad7: 0f 84 e6 0f 00 00 je 408ac3 + 407add: 48 89 c7 mov %rax,%rdi + 407ae0: e8 cb 62 01 00 callq 41ddb0 <__cfree> + 407ae5: e9 0b f3 ff ff jmpq 406df5 + 407aea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 407af0: 48 8b 04 24 mov (%rsp),%rax + 407af4: 48 8b 78 18 mov 0x18(%rax),%rdi + 407af8: e8 13 e1 ff ff callq 405c10 <__gettext_free_exp> + 407afd: 48 8b 04 24 mov (%rsp),%rax + 407b01: 48 8b 40 10 mov 0x10(%rax),%rax + 407b05: 48 85 c0 test %rax,%rax + 407b08: 74 25 je 407b2f + 407b0a: 8b 10 mov (%rax),%edx + 407b0c: 83 fa 02 cmp $0x2,%edx + 407b0f: 0f 84 a8 16 00 00 je 4091bd + 407b15: 83 fa 03 cmp $0x3,%edx + 407b18: 0f 84 8c 16 00 00 je 4091aa + 407b1e: 83 fa 01 cmp $0x1,%edx + 407b21: 0f 84 a9 16 00 00 je 4091d0 + 407b27: 48 89 c7 mov %rax,%rdi + 407b2a: e8 81 62 01 00 callq 41ddb0 <__cfree> + 407b2f: 48 8b 04 24 mov (%rsp),%rax + 407b33: 48 8b 40 08 mov 0x8(%rax),%rax + 407b37: 48 85 c0 test %rax,%rax + 407b3a: 0f 84 f5 f3 ff ff je 406f35 + 407b40: 8b 10 mov (%rax),%edx + 407b42: 83 fa 02 cmp $0x2,%edx + 407b45: 0f 84 27 0f 00 00 je 408a72 + 407b4b: 83 fa 03 cmp $0x3,%edx + 407b4e: 0f 84 0b 0f 00 00 je 408a5f + 407b54: 83 fa 01 cmp $0x1,%edx + 407b57: 0f 84 28 0f 00 00 je 408a85 + 407b5d: 48 89 c7 mov %rax,%rdi + 407b60: e8 4b 62 01 00 callq 41ddb0 <__cfree> + 407b65: e9 cb f3 ff ff jmpq 406f35 + 407b6a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 407b70: 49 8b 7f 18 mov 0x18(%r15),%rdi + 407b74: e8 97 e0 ff ff callq 405c10 <__gettext_free_exp> + 407b79: 49 8b 47 10 mov 0x10(%r15),%rax + 407b7d: 48 85 c0 test %rax,%rax + 407b80: 74 25 je 407ba7 + 407b82: 8b 10 mov (%rax),%edx + 407b84: 83 fa 02 cmp $0x2,%edx + 407b87: 0f 84 bf 1d 00 00 je 40994c + 407b8d: 83 fa 03 cmp $0x3,%edx + 407b90: 0f 84 a5 1d 00 00 je 40993b + 407b96: 83 fa 01 cmp $0x1,%edx + 407b99: 0f 84 be 1d 00 00 je 40995d + 407b9f: 48 89 c7 mov %rax,%rdi + 407ba2: e8 09 62 01 00 callq 41ddb0 <__cfree> + 407ba7: 49 8b 47 08 mov 0x8(%r15),%rax + 407bab: 48 85 c0 test %rax,%rax + 407bae: 0f 84 2d ea ff ff je 4065e1 + 407bb4: 8b 10 mov (%rax),%edx + 407bb6: 83 fa 02 cmp $0x2,%edx + 407bb9: 0f 84 50 11 00 00 je 408d0f + 407bbf: 83 fa 03 cmp $0x3,%edx + 407bc2: 0f 84 36 11 00 00 je 408cfe + 407bc8: 83 fa 01 cmp $0x1,%edx + 407bcb: 0f 84 4f 11 00 00 je 408d20 + 407bd1: 48 89 c7 mov %rax,%rdi + 407bd4: e8 d7 61 01 00 callq 41ddb0 <__cfree> + 407bd9: e9 03 ea ff ff jmpq 4065e1 + 407bde: 66 90 xchg %ax,%ax + 407be0: 49 8b 7f 18 mov 0x18(%r15),%rdi + 407be4: e8 27 e0 ff ff callq 405c10 <__gettext_free_exp> + 407be9: 49 8b 47 10 mov 0x10(%r15),%rax + 407bed: 48 85 c0 test %rax,%rax + 407bf0: 74 25 je 407c17 + 407bf2: 8b 10 mov (%rax),%edx + 407bf4: 83 fa 02 cmp $0x2,%edx + 407bf7: 0f 84 e7 1a 00 00 je 4096e4 + 407bfd: 83 fa 03 cmp $0x3,%edx + 407c00: 0f 84 cd 1a 00 00 je 4096d3 + 407c06: 83 fa 01 cmp $0x1,%edx + 407c09: 0f 84 e6 1a 00 00 je 4096f5 + 407c0f: 48 89 c7 mov %rax,%rdi + 407c12: e8 99 61 01 00 callq 41ddb0 <__cfree> + 407c17: 49 8b 47 08 mov 0x8(%r15),%rax + 407c1b: 48 85 c0 test %rax,%rax + 407c1e: 0f 84 e3 eb ff ff je 406807 + 407c24: 8b 10 mov (%rax),%edx + 407c26: 83 fa 02 cmp $0x2,%edx + 407c29: 0f 84 5c 0f 00 00 je 408b8b + 407c2f: 83 fa 03 cmp $0x3,%edx + 407c32: 0f 84 42 0f 00 00 je 408b7a + 407c38: 83 fa 01 cmp $0x1,%edx + 407c3b: 0f 84 5b 0f 00 00 je 408b9c + 407c41: 48 89 c7 mov %rax,%rdi + 407c44: e8 67 61 01 00 callq 41ddb0 <__cfree> + 407c49: e9 b9 eb ff ff jmpq 406807 + 407c4e: 66 90 xchg %ax,%ax + 407c50: 49 8b 7f 18 mov 0x18(%r15),%rdi + 407c54: e8 b7 df ff ff callq 405c10 <__gettext_free_exp> + 407c59: 49 8b 47 10 mov 0x10(%r15),%rax + 407c5d: 48 85 c0 test %rax,%rax + 407c60: 74 25 je 407c87 + 407c62: 8b 10 mov (%rax),%edx + 407c64: 83 fa 02 cmp $0x2,%edx + 407c67: 0f 84 4f 1d 00 00 je 4099bc + 407c6d: 83 fa 03 cmp $0x3,%edx + 407c70: 0f 84 35 1d 00 00 je 4099ab + 407c76: 83 fa 01 cmp $0x1,%edx + 407c79: 0f 84 4e 1d 00 00 je 4099cd + 407c7f: 48 89 c7 mov %rax,%rdi + 407c82: e8 29 61 01 00 callq 41ddb0 <__cfree> + 407c87: 49 8b 47 08 mov 0x8(%r15),%rax + 407c8b: 48 85 c0 test %rax,%rax + 407c8e: 0f 84 5b ec ff ff je 4068ef + 407c94: 8b 10 mov (%rax),%edx + 407c96: 83 fa 02 cmp $0x2,%edx + 407c99: 0f 84 4d 0f 00 00 je 408bec + 407c9f: 83 fa 03 cmp $0x3,%edx + 407ca2: 0f 84 33 0f 00 00 je 408bdb + 407ca8: 83 fa 01 cmp $0x1,%edx + 407cab: 0f 84 4c 0f 00 00 je 408bfd + 407cb1: 48 89 c7 mov %rax,%rdi + 407cb4: e8 f7 60 01 00 callq 41ddb0 <__cfree> + 407cb9: e9 31 ec ff ff jmpq 4068ef + 407cbe: 66 90 xchg %ax,%ax + 407cc0: 49 8b 7f 18 mov 0x18(%r15),%rdi + 407cc4: e8 47 df ff ff callq 405c10 <__gettext_free_exp> + 407cc9: 49 8b 47 10 mov 0x10(%r15),%rax + 407ccd: 48 85 c0 test %rax,%rax + 407cd0: 74 25 je 407cf7 + 407cd2: 8b 10 mov (%rax),%edx + 407cd4: 83 fa 02 cmp $0x2,%edx + 407cd7: 0f 84 17 1d 00 00 je 4099f4 + 407cdd: 83 fa 03 cmp $0x3,%edx + 407ce0: 0f 84 fd 1c 00 00 je 4099e3 + 407ce6: 83 fa 01 cmp $0x1,%edx + 407ce9: 0f 84 16 1d 00 00 je 409a05 + 407cef: 48 89 c7 mov %rax,%rdi + 407cf2: e8 b9 60 01 00 callq 41ddb0 <__cfree> + 407cf7: 49 8b 47 08 mov 0x8(%r15),%rax + 407cfb: 48 85 c0 test %rax,%rax + 407cfe: 0f 84 22 f0 ff ff je 406d26 + 407d04: 8b 10 mov (%rax),%edx + 407d06: 83 fa 02 cmp $0x2,%edx + 407d09: 0f 84 1b 0e 00 00 je 408b2a + 407d0f: 83 fa 03 cmp $0x3,%edx + 407d12: 0f 84 01 0e 00 00 je 408b19 + 407d18: 83 fa 01 cmp $0x1,%edx + 407d1b: 0f 84 1a 0e 00 00 je 408b3b + 407d21: 48 89 c7 mov %rax,%rdi + 407d24: e8 87 60 01 00 callq 41ddb0 <__cfree> + 407d29: e9 f8 ef ff ff jmpq 406d26 + 407d2e: 66 90 xchg %ax,%ax + 407d30: 49 8b 7f 18 mov 0x18(%r15),%rdi + 407d34: e8 d7 de ff ff callq 405c10 <__gettext_free_exp> + 407d39: 49 8b 47 10 mov 0x10(%r15),%rax + 407d3d: 48 85 c0 test %rax,%rax + 407d40: 74 25 je 407d67 + 407d42: 8b 10 mov (%rax),%edx + 407d44: 83 fa 02 cmp $0x2,%edx + 407d47: 0f 84 3f 1a 00 00 je 40978c + 407d4d: 83 fa 03 cmp $0x3,%edx + 407d50: 0f 84 25 1a 00 00 je 40977b + 407d56: 83 fa 01 cmp $0x1,%edx + 407d59: 0f 84 3e 1a 00 00 je 40979d + 407d5f: 48 89 c7 mov %rax,%rdi + 407d62: e8 49 60 01 00 callq 41ddb0 <__cfree> + 407d67: 49 8b 47 08 mov 0x8(%r15),%rax + 407d6b: 48 85 c0 test %rax,%rax + 407d6e: 0f 84 f2 f0 ff ff je 406e66 + 407d74: 8b 10 mov (%rax),%edx + 407d76: 83 fa 02 cmp $0x2,%edx + 407d79: 0f 84 ce 0e 00 00 je 408c4d + 407d7f: 83 fa 03 cmp $0x3,%edx + 407d82: 0f 84 b4 0e 00 00 je 408c3c + 407d88: 83 fa 01 cmp $0x1,%edx + 407d8b: 0f 84 cd 0e 00 00 je 408c5e + 407d91: 48 89 c7 mov %rax,%rdi + 407d94: e8 17 60 01 00 callq 41ddb0 <__cfree> + 407d99: e9 c8 f0 ff ff jmpq 406e66 + 407d9e: 66 90 xchg %ax,%ax + 407da0: 49 8b 7f 18 mov 0x18(%r15),%rdi + 407da4: e8 67 de ff ff callq 405c10 <__gettext_free_exp> + 407da9: 49 8b 47 10 mov 0x10(%r15),%rax + 407dad: 48 85 c0 test %rax,%rax + 407db0: 74 25 je 407dd7 + 407db2: 8b 10 mov (%rax),%edx + 407db4: 83 fa 02 cmp $0x2,%edx + 407db7: 0f 84 97 19 00 00 je 409754 + 407dbd: 83 fa 03 cmp $0x3,%edx + 407dc0: 0f 84 7d 19 00 00 je 409743 + 407dc6: 83 fa 01 cmp $0x1,%edx + 407dc9: 0f 84 96 19 00 00 je 409765 + 407dcf: 48 89 c7 mov %rax,%rdi + 407dd2: e8 d9 5f 01 00 callq 41ddb0 <__cfree> + 407dd7: 49 8b 47 08 mov 0x8(%r15),%rax + 407ddb: 48 85 c0 test %rax,%rax + 407dde: 0f 84 83 e9 ff ff je 406767 + 407de4: 8b 10 mov (%rax),%edx + 407de6: 83 fa 02 cmp $0x2,%edx + 407de9: 0f 84 bf 0e 00 00 je 408cae + 407def: 83 fa 03 cmp $0x3,%edx + 407df2: 0f 84 a5 0e 00 00 je 408c9d + 407df8: 83 fa 01 cmp $0x1,%edx + 407dfb: 0f 84 be 0e 00 00 je 408cbf + 407e01: 48 89 c7 mov %rax,%rdi + 407e04: e8 a7 5f 01 00 callq 41ddb0 <__cfree> + 407e09: e9 59 e9 ff ff jmpq 406767 + 407e0e: 66 90 xchg %ax,%ax + 407e10: 48 8b 78 18 mov 0x18(%rax),%rdi + 407e14: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407e19: e8 f2 dd ff ff callq 405c10 <__gettext_free_exp> + 407e1e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407e23: 48 8b 78 10 mov 0x10(%rax),%rdi + 407e27: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407e2c: e8 df dd ff ff callq 405c10 <__gettext_free_exp> + 407e31: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407e36: 48 8b 78 08 mov 0x8(%rax),%rdi + 407e3a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407e3f: e8 cc dd ff ff callq 405c10 <__gettext_free_exp> + 407e44: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407e49: e9 7b ed ff ff jmpq 406bc9 + 407e4e: 66 90 xchg %ax,%ax + 407e50: 48 8b 78 18 mov 0x18(%rax),%rdi + 407e54: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407e59: e8 b2 dd ff ff callq 405c10 <__gettext_free_exp> + 407e5e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407e63: 48 8b 78 10 mov 0x10(%rax),%rdi + 407e67: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407e6c: e8 9f dd ff ff callq 405c10 <__gettext_free_exp> + 407e71: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407e76: 48 8b 78 08 mov 0x8(%rax),%rdi + 407e7a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407e7f: e8 8c dd ff ff callq 405c10 <__gettext_free_exp> + 407e84: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407e89: e9 cb f6 ff ff jmpq 407559 + 407e8e: 66 90 xchg %ax,%ax + 407e90: 48 8b 78 18 mov 0x18(%rax),%rdi + 407e94: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407e99: e8 72 dd ff ff callq 405c10 <__gettext_free_exp> + 407e9e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407ea3: 48 8b 78 10 mov 0x10(%rax),%rdi + 407ea7: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407eac: e8 5f dd ff ff callq 405c10 <__gettext_free_exp> + 407eb1: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407eb6: 48 8b 78 08 mov 0x8(%rax),%rdi + 407eba: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407ebf: e8 4c dd ff ff callq 405c10 <__gettext_free_exp> + 407ec4: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407ec9: e9 5b eb ff ff jmpq 406a29 + 407ece: 66 90 xchg %ax,%ax + 407ed0: 48 8b 78 18 mov 0x18(%rax),%rdi + 407ed4: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407ed9: e8 32 dd ff ff callq 405c10 <__gettext_free_exp> + 407ede: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407ee3: 48 8b 78 10 mov 0x10(%rax),%rdi + 407ee7: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407eec: e8 1f dd ff ff callq 405c10 <__gettext_free_exp> + 407ef1: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407ef6: 48 8b 78 08 mov 0x8(%rax),%rdi + 407efa: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407eff: e8 0c dd ff ff callq 405c10 <__gettext_free_exp> + 407f04: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407f09: e9 8e f2 ff ff jmpq 40719c + 407f0e: 66 90 xchg %ax,%ax + 407f10: 48 8b 78 18 mov 0x18(%rax),%rdi + 407f14: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407f19: e8 f2 dc ff ff callq 405c10 <__gettext_free_exp> + 407f1e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407f23: 48 8b 78 10 mov 0x10(%rax),%rdi + 407f27: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407f2c: e8 df dc ff ff callq 405c10 <__gettext_free_exp> + 407f31: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407f36: 48 8b 78 08 mov 0x8(%rax),%rdi + 407f3a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407f3f: e8 cc dc ff ff callq 405c10 <__gettext_free_exp> + 407f44: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407f49: e9 c5 eb ff ff jmpq 406b13 + 407f4e: 66 90 xchg %ax,%ax + 407f50: 48 8b 78 18 mov 0x18(%rax),%rdi + 407f54: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407f59: e8 b2 dc ff ff callq 405c10 <__gettext_free_exp> + 407f5e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407f63: 48 8b 78 10 mov 0x10(%rax),%rdi + 407f67: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407f6c: e8 9f dc ff ff callq 405c10 <__gettext_free_exp> + 407f71: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407f76: 48 8b 78 08 mov 0x8(%rax),%rdi + 407f7a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407f7f: e8 8c dc ff ff callq 405c10 <__gettext_free_exp> + 407f84: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407f89: e9 ee f2 ff ff jmpq 40727c + 407f8e: 66 90 xchg %ax,%ax + 407f90: 48 8b 78 18 mov 0x18(%rax),%rdi + 407f94: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407f99: e8 72 dc ff ff callq 405c10 <__gettext_free_exp> + 407f9e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407fa3: 48 8b 78 10 mov 0x10(%rax),%rdi + 407fa7: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407fac: e8 5f dc ff ff callq 405c10 <__gettext_free_exp> + 407fb1: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407fb6: 48 8b 78 08 mov 0x8(%rax),%rdi + 407fba: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407fbf: e8 4c dc ff ff callq 405c10 <__gettext_free_exp> + 407fc4: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407fc9: e9 e6 f0 ff ff jmpq 4070b4 + 407fce: 66 90 xchg %ax,%ax + 407fd0: 48 8b 78 18 mov 0x18(%rax),%rdi + 407fd4: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407fd9: e8 32 dc ff ff callq 405c10 <__gettext_free_exp> + 407fde: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407fe3: 48 8b 78 10 mov 0x10(%rax),%rdi + 407fe7: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407fec: e8 1f dc ff ff callq 405c10 <__gettext_free_exp> + 407ff1: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 407ff6: 48 8b 78 08 mov 0x8(%rax),%rdi + 407ffa: 48 89 44 24 08 mov %rax,0x8(%rsp) + 407fff: e8 0c dc ff ff callq 405c10 <__gettext_free_exp> + 408004: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408009: e9 4e f3 ff ff jmpq 40735c + 40800e: 66 90 xchg %ax,%ax + 408010: 48 8b 78 18 mov 0x18(%rax),%rdi + 408014: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408019: e8 f2 db ff ff callq 405c10 <__gettext_free_exp> + 40801e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408023: 48 8b 78 10 mov 0x10(%rax),%rdi + 408027: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40802c: e8 df db ff ff callq 405c10 <__gettext_free_exp> + 408031: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408036: 48 8b 78 08 mov 0x8(%rax),%rdi + 40803a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40803f: e8 cc db ff ff callq 405c10 <__gettext_free_exp> + 408044: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408049: e9 23 f8 ff ff jmpq 407871 + 40804e: 66 90 xchg %ax,%ax + 408050: 48 8b 78 18 mov 0x18(%rax),%rdi + 408054: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408059: e8 b2 db ff ff callq 405c10 <__gettext_free_exp> + 40805e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408063: 48 8b 78 10 mov 0x10(%rax),%rdi + 408067: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40806c: e8 9f db ff ff callq 405c10 <__gettext_free_exp> + 408071: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408076: 48 8b 78 08 mov 0x8(%rax),%rdi + 40807a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40807f: e8 8c db ff ff callq 405c10 <__gettext_free_exp> + 408084: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408089: e9 c3 f6 ff ff jmpq 407751 + 40808e: 66 90 xchg %ax,%ax + 408090: 48 8b 04 24 mov (%rsp),%rax + 408094: 48 8b 78 18 mov 0x18(%rax),%rdi + 408098: e8 73 db ff ff callq 405c10 <__gettext_free_exp> + 40809d: 48 8b 04 24 mov (%rsp),%rax + 4080a1: 48 8b 40 10 mov 0x10(%rax),%rax + 4080a5: 48 85 c0 test %rax,%rax + 4080a8: 74 25 je 4080cf + 4080aa: 8b 10 mov (%rax),%edx + 4080ac: 83 fa 02 cmp $0x2,%edx + 4080af: 0f 84 3f 08 00 00 je 4088f4 + 4080b5: 83 fa 03 cmp $0x3,%edx + 4080b8: 0f 84 23 08 00 00 je 4088e1 + 4080be: 83 fa 01 cmp $0x1,%edx + 4080c1: 0f 84 40 08 00 00 je 408907 + 4080c7: 48 89 c7 mov %rax,%rdi + 4080ca: e8 e1 5c 01 00 callq 41ddb0 <__cfree> + 4080cf: 48 8b 04 24 mov (%rsp),%rax + 4080d3: 48 8b 40 08 mov 0x8(%rax),%rax + 4080d7: 48 85 c0 test %rax,%rax + 4080da: 0f 84 a1 eb ff ff je 406c81 + 4080e0: 8b 10 mov (%rax),%edx + 4080e2: 83 fa 02 cmp $0x2,%edx + 4080e5: 0f 84 41 0d 00 00 je 408e2c + 4080eb: 83 fa 03 cmp $0x3,%edx + 4080ee: 0f 84 25 0d 00 00 je 408e19 + 4080f4: 83 fa 01 cmp $0x1,%edx + 4080f7: 0f 84 42 0d 00 00 je 408e3f + 4080fd: 48 89 c7 mov %rax,%rdi + 408100: e8 ab 5c 01 00 callq 41ddb0 <__cfree> + 408105: e9 77 eb ff ff jmpq 406c81 + 40810a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 408110: 48 8b 04 24 mov (%rsp),%rax + 408114: 48 8b 78 18 mov 0x18(%rax),%rdi + 408118: e8 f3 da ff ff callq 405c10 <__gettext_free_exp> + 40811d: 48 8b 04 24 mov (%rsp),%rax + 408121: 48 8b 40 10 mov 0x10(%rax),%rax + 408125: 48 85 c0 test %rax,%rax + 408128: 74 25 je 40814f + 40812a: 8b 10 mov (%rax),%edx + 40812c: 83 fa 02 cmp $0x2,%edx + 40812f: 0f 84 43 07 00 00 je 408878 + 408135: 83 fa 03 cmp $0x3,%edx + 408138: 0f 84 27 07 00 00 je 408865 + 40813e: 83 fa 01 cmp $0x1,%edx + 408141: 0f 84 44 07 00 00 je 40888b + 408147: 48 89 c7 mov %rax,%rdi + 40814a: e8 61 5c 01 00 callq 41ddb0 <__cfree> + 40814f: 48 8b 04 24 mov (%rsp),%rax + 408153: 48 8b 40 08 mov 0x8(%rax),%rax + 408157: 48 85 c0 test %rax,%rax + 40815a: 0f 84 50 f3 ff ff je 4074b0 + 408160: 8b 10 mov (%rax),%edx + 408162: 83 fa 02 cmp $0x2,%edx + 408165: 0f 84 45 0c 00 00 je 408db0 + 40816b: 83 fa 03 cmp $0x3,%edx + 40816e: 0f 84 29 0c 00 00 je 408d9d + 408174: 83 fa 01 cmp $0x1,%edx + 408177: 0f 84 46 0c 00 00 je 408dc3 + 40817d: 48 89 c7 mov %rax,%rdi + 408180: e8 2b 5c 01 00 callq 41ddb0 <__cfree> + 408185: e9 26 f3 ff ff jmpq 4074b0 + 40818a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 408190: 48 8b 04 24 mov (%rsp),%rax + 408194: 48 8b 78 18 mov 0x18(%rax),%rdi + 408198: e8 73 da ff ff callq 405c10 <__gettext_free_exp> + 40819d: 48 8b 04 24 mov (%rsp),%rax + 4081a1: 48 8b 40 10 mov 0x10(%rax),%rax + 4081a5: 48 85 c0 test %rax,%rax + 4081a8: 74 25 je 4081cf + 4081aa: 8b 10 mov (%rax),%edx + 4081ac: 83 fa 02 cmp $0x2,%edx + 4081af: 0f 84 7d 07 00 00 je 408932 + 4081b5: 83 fa 03 cmp $0x3,%edx + 4081b8: 0f 84 61 07 00 00 je 40891f + 4081be: 83 fa 01 cmp $0x1,%edx + 4081c1: 0f 84 7e 07 00 00 je 408945 + 4081c7: 48 89 c7 mov %rax,%rdi + 4081ca: e8 e1 5b 01 00 callq 41ddb0 <__cfree> + 4081cf: 48 8b 04 24 mov (%rsp),%rax + 4081d3: 48 8b 40 08 mov 0x8(%rax),%rax + 4081d7: 48 85 c0 test %rax,%rax + 4081da: 0f 84 e8 f5 ff ff je 4077c8 + 4081e0: 8b 10 mov (%rax),%edx + 4081e2: 83 fa 02 cmp $0x2,%edx + 4081e5: 0f 84 87 0b 00 00 je 408d72 + 4081eb: 83 fa 03 cmp $0x3,%edx + 4081ee: 0f 84 6b 0b 00 00 je 408d5f + 4081f4: 83 fa 01 cmp $0x1,%edx + 4081f7: 0f 84 88 0b 00 00 je 408d85 + 4081fd: 48 89 c7 mov %rax,%rdi + 408200: e8 ab 5b 01 00 callq 41ddb0 <__cfree> + 408205: e9 be f5 ff ff jmpq 4077c8 + 40820a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 408210: 48 8b 04 24 mov (%rsp),%rax + 408214: 48 8b 78 18 mov 0x18(%rax),%rdi + 408218: e8 f3 d9 ff ff callq 405c10 <__gettext_free_exp> + 40821d: 48 8b 04 24 mov (%rsp),%rax + 408221: 48 8b 40 10 mov 0x10(%rax),%rax + 408225: 48 85 c0 test %rax,%rax + 408228: 74 25 je 40824f + 40822a: 8b 10 mov (%rax),%edx + 40822c: 83 fa 02 cmp $0x2,%edx + 40822f: 0f 84 81 06 00 00 je 4088b6 + 408235: 83 fa 03 cmp $0x3,%edx + 408238: 0f 84 65 06 00 00 je 4088a3 + 40823e: 83 fa 01 cmp $0x1,%edx + 408241: 0f 84 82 06 00 00 je 4088c9 + 408247: 48 89 c7 mov %rax,%rdi + 40824a: e8 61 5b 01 00 callq 41ddb0 <__cfree> + 40824f: 48 8b 04 24 mov (%rsp),%rax + 408253: 48 8b 40 08 mov 0x8(%rax),%rax + 408257: 48 85 c0 test %rax,%rax + 40825a: 0f 84 48 f4 ff ff je 4076a8 + 408260: 8b 10 mov (%rax),%edx + 408262: 83 fa 02 cmp $0x2,%edx + 408265: 0f 84 83 0b 00 00 je 408dee + 40826b: 83 fa 03 cmp $0x3,%edx + 40826e: 0f 84 67 0b 00 00 je 408ddb + 408274: 83 fa 01 cmp $0x1,%edx + 408277: 0f 84 84 0b 00 00 je 408e01 + 40827d: 48 89 c7 mov %rax,%rdi + 408280: e8 2b 5b 01 00 callq 41ddb0 <__cfree> + 408285: e9 1e f4 ff ff jmpq 4076a8 + 40828a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 408290: 49 8b 7d 18 mov 0x18(%r13),%rdi + 408294: e8 77 d9 ff ff callq 405c10 <__gettext_free_exp> + 408299: 4d 8b 7d 10 mov 0x10(%r13),%r15 + 40829d: 4d 85 ff test %r15,%r15 + 4082a0: 74 26 je 4082c8 + 4082a2: 41 8b 07 mov (%r15),%eax + 4082a5: 83 f8 02 cmp $0x2,%eax + 4082a8: 0f 84 1e 07 00 00 je 4089cc + 4082ae: 83 f8 03 cmp $0x3,%eax + 4082b1: 0f 84 0c 07 00 00 je 4089c3 + 4082b7: 83 f8 01 cmp $0x1,%eax + 4082ba: 0f 84 15 07 00 00 je 4089d5 + 4082c0: 4c 89 ff mov %r15,%rdi + 4082c3: e8 e8 5a 01 00 callq 41ddb0 <__cfree> + 4082c8: 4d 8b 7d 08 mov 0x8(%r13),%r15 + 4082cc: 4d 85 ff test %r15,%r15 + 4082cf: 0f 84 e4 ec ff ff je 406fb9 + 4082d5: 41 8b 07 mov (%r15),%eax + 4082d8: 83 f8 02 cmp $0x2,%eax + 4082db: 0f 84 07 0d 00 00 je 408fe8 + 4082e1: 83 f8 03 cmp $0x3,%eax + 4082e4: 0f 84 f5 0c 00 00 je 408fdf + 4082ea: 83 f8 01 cmp $0x1,%eax + 4082ed: 0f 84 fe 0c 00 00 je 408ff1 + 4082f3: 4c 89 ff mov %r15,%rdi + 4082f6: e8 b5 5a 01 00 callq 41ddb0 <__cfree> + 4082fb: e9 b9 ec ff ff jmpq 406fb9 + 408300: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 408304: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408309: 48 89 14 24 mov %rdx,(%rsp) + 40830d: e8 fe d8 ff ff callq 405c10 <__gettext_free_exp> + 408312: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408317: 48 8b 14 24 mov (%rsp),%rdx + 40831b: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40831f: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408324: 48 89 14 24 mov %rdx,(%rsp) + 408328: e8 e3 d8 ff ff callq 405c10 <__gettext_free_exp> + 40832d: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408332: 48 8b 14 24 mov (%rsp),%rdx + 408336: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40833a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40833f: 48 89 14 24 mov %rdx,(%rsp) + 408343: e8 c8 d8 ff ff callq 405c10 <__gettext_free_exp> + 408348: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40834d: 48 8b 14 24 mov (%rsp),%rdx + 408351: e9 b0 f0 ff ff jmpq 407406 + 408356: 48 8b 78 18 mov 0x18(%rax),%rdi + 40835a: 48 89 04 24 mov %rax,(%rsp) + 40835e: e8 ad d8 ff ff callq 405c10 <__gettext_free_exp> + 408363: 48 8b 04 24 mov (%rsp),%rax + 408367: 48 8b 78 10 mov 0x10(%rax),%rdi + 40836b: 48 89 04 24 mov %rax,(%rsp) + 40836f: e8 9c d8 ff ff callq 405c10 <__gettext_free_exp> + 408374: 48 8b 04 24 mov (%rsp),%rax + 408378: 48 8b 50 08 mov 0x8(%rax),%rdx + 40837c: 48 85 d2 test %rdx,%rdx + 40837f: 0f 84 11 f2 ff ff je 407596 + 408385: 8b 0a mov (%rdx),%ecx + 408387: 83 f9 02 cmp $0x2,%ecx + 40838a: 0f 84 c3 10 00 00 je 409453 + 408390: 83 f9 03 cmp $0x3,%ecx + 408393: 0f 84 9f 10 00 00 je 409438 + 408399: 83 f9 01 cmp $0x1,%ecx + 40839c: 0f 84 cc 10 00 00 je 40946e + 4083a2: 48 89 d7 mov %rdx,%rdi + 4083a5: 48 89 04 24 mov %rax,(%rsp) + 4083a9: e8 02 5a 01 00 callq 41ddb0 <__cfree> + 4083ae: 48 8b 04 24 mov (%rsp),%rax + 4083b2: e9 df f1 ff ff jmpq 407596 + 4083b7: 48 8b 78 18 mov 0x18(%rax),%rdi + 4083bb: 48 89 04 24 mov %rax,(%rsp) + 4083bf: e8 4c d8 ff ff callq 405c10 <__gettext_free_exp> + 4083c4: 48 8b 04 24 mov (%rsp),%rax + 4083c8: 48 8b 78 10 mov 0x10(%rax),%rdi + 4083cc: 48 89 04 24 mov %rax,(%rsp) + 4083d0: e8 3b d8 ff ff callq 405c10 <__gettext_free_exp> + 4083d5: 48 8b 04 24 mov (%rsp),%rax + 4083d9: 48 8b 50 08 mov 0x8(%rax),%rdx + 4083dd: 48 85 d2 test %rdx,%rdx + 4083e0: 0f 84 d9 e9 ff ff je 406dbf + 4083e6: 8b 0a mov (%rdx),%ecx + 4083e8: 83 f9 02 cmp $0x2,%ecx + 4083eb: 0f 84 4c 11 00 00 je 40953d + 4083f1: 83 f9 03 cmp $0x3,%ecx + 4083f4: 0f 84 28 11 00 00 je 409522 + 4083fa: 83 f9 01 cmp $0x1,%ecx + 4083fd: 0f 84 55 11 00 00 je 409558 + 408403: 48 89 d7 mov %rdx,%rdi + 408406: 48 89 04 24 mov %rax,(%rsp) + 40840a: e8 a1 59 01 00 callq 41ddb0 <__cfree> + 40840f: 48 8b 04 24 mov (%rsp),%rax + 408413: e9 a7 e9 ff ff jmpq 406dbf + 408418: 48 8b 78 18 mov 0x18(%rax),%rdi + 40841c: 48 89 04 24 mov %rax,(%rsp) + 408420: e8 eb d7 ff ff callq 405c10 <__gettext_free_exp> + 408425: 48 8b 04 24 mov (%rsp),%rax + 408429: 48 8b 78 10 mov 0x10(%rax),%rdi + 40842d: 48 89 04 24 mov %rax,(%rsp) + 408431: e8 da d7 ff ff callq 405c10 <__gettext_free_exp> + 408436: 48 8b 04 24 mov (%rsp),%rax + 40843a: 48 8b 50 08 mov 0x8(%rax),%rdx + 40843e: 48 85 d2 test %rdx,%rdx + 408441: 0f 84 6f f4 ff ff je 4078b6 + 408447: 8b 0a mov (%rdx),%ecx + 408449: 83 f9 02 cmp $0x2,%ecx + 40844c: 0f 84 95 10 00 00 je 4094e7 + 408452: 83 f9 03 cmp $0x3,%ecx + 408455: 0f 84 71 10 00 00 je 4094cc + 40845b: 83 f9 01 cmp $0x1,%ecx + 40845e: 0f 84 9e 10 00 00 je 409502 + 408464: 48 89 d7 mov %rdx,%rdi + 408467: 48 89 04 24 mov %rax,(%rsp) + 40846b: e8 40 59 01 00 callq 41ddb0 <__cfree> + 408470: 48 8b 04 24 mov (%rsp),%rax + 408474: e9 3d f4 ff ff jmpq 4078b6 + 408479: 48 8b 78 18 mov 0x18(%rax),%rdi + 40847d: 48 89 04 24 mov %rax,(%rsp) + 408481: e8 8a d7 ff ff callq 405c10 <__gettext_free_exp> + 408486: 48 8b 04 24 mov (%rsp),%rax + 40848a: 48 8b 78 10 mov 0x10(%rax),%rdi + 40848e: 48 89 04 24 mov %rax,(%rsp) + 408492: e8 79 d7 ff ff callq 405c10 <__gettext_free_exp> + 408497: 48 8b 04 24 mov (%rsp),%rax + 40849b: 48 8b 50 08 mov 0x8(%rax),%rdx + 40849f: 48 85 d2 test %rdx,%rdx + 4084a2: 0f 84 57 ea ff ff je 406eff + 4084a8: 8b 0a mov (%rdx),%ecx + 4084aa: 83 f9 02 cmp $0x2,%ecx + 4084ad: 0f 84 bc 0c 00 00 je 40916f + 4084b3: 83 f9 03 cmp $0x3,%ecx + 4084b6: 0f 84 98 0c 00 00 je 409154 + 4084bc: 83 f9 01 cmp $0x1,%ecx + 4084bf: 0f 84 c5 0c 00 00 je 40918a + 4084c5: 48 89 d7 mov %rdx,%rdi + 4084c8: 48 89 04 24 mov %rax,(%rsp) + 4084cc: e8 df 58 01 00 callq 41ddb0 <__cfree> + 4084d1: 48 8b 04 24 mov (%rsp),%rax + 4084d5: e9 25 ea ff ff jmpq 406eff + 4084da: 48 8b 78 18 mov 0x18(%rax),%rdi + 4084de: 48 89 04 24 mov %rax,(%rsp) + 4084e2: e8 29 d7 ff ff callq 405c10 <__gettext_free_exp> + 4084e7: 48 8b 04 24 mov (%rsp),%rax + 4084eb: 48 8b 78 10 mov 0x10(%rax),%rdi + 4084ef: 48 89 04 24 mov %rax,(%rsp) + 4084f3: e8 18 d7 ff ff callq 405c10 <__gettext_free_exp> + 4084f8: 48 8b 04 24 mov (%rsp),%rax + 4084fc: 48 8b 50 08 mov 0x8(%rax),%rdx + 408500: 48 85 d2 test %rdx,%rdx + 408503: 0f 84 fd f0 ff ff je 407606 + 408509: 8b 0a mov (%rdx),%ecx + 40850b: 83 f9 02 cmp $0x2,%ecx + 40850e: 0f 84 e9 0e 00 00 je 4093fd + 408514: 83 f9 03 cmp $0x3,%ecx + 408517: 0f 84 c5 0e 00 00 je 4093e2 + 40851d: 83 f9 01 cmp $0x1,%ecx + 408520: 0f 84 f2 0e 00 00 je 409418 + 408526: 48 89 d7 mov %rdx,%rdi + 408529: 48 89 04 24 mov %rax,(%rsp) + 40852d: e8 7e 58 01 00 callq 41ddb0 <__cfree> + 408532: 48 8b 04 24 mov (%rsp),%rax + 408536: e9 cb f0 ff ff jmpq 407606 + 40853b: 48 8b 04 24 mov (%rsp),%rax + 40853f: 48 8b 78 18 mov 0x18(%rax),%rdi + 408543: e8 c8 d6 ff ff callq 405c10 <__gettext_free_exp> + 408548: 48 8b 04 24 mov (%rsp),%rax + 40854c: 48 8b 40 10 mov 0x10(%rax),%rax + 408550: 48 85 c0 test %rax,%rax + 408553: 74 25 je 40857a + 408555: 8b 10 mov (%rax),%edx + 408557: 83 fa 02 cmp $0x2,%edx + 40855a: 0f 84 96 04 00 00 je 4089f6 + 408560: 83 fa 03 cmp $0x3,%edx + 408563: 0f 84 7a 04 00 00 je 4089e3 + 408569: 83 fa 01 cmp $0x1,%edx + 40856c: 0f 84 97 04 00 00 je 408a09 + 408572: 48 89 c7 mov %rax,%rdi + 408575: e8 36 58 01 00 callq 41ddb0 <__cfree> + 40857a: 48 8b 04 24 mov (%rsp),%rax + 40857e: 48 8b 40 08 mov 0x8(%rax),%rax + 408582: 48 85 c0 test %rax,%rax + 408585: 0f 84 32 df ff ff je 4064bd + 40858b: 8b 10 mov (%rax),%edx + 40858d: 83 fa 02 cmp $0x2,%edx + 408590: 0f 84 21 0e 00 00 je 4093b7 + 408596: 83 fa 03 cmp $0x3,%edx + 408599: 0f 84 05 0e 00 00 je 4093a4 + 40859f: 83 fa 01 cmp $0x1,%edx + 4085a2: 0f 84 22 0e 00 00 je 4093ca + 4085a8: 48 89 c7 mov %rax,%rdi + 4085ab: e8 00 58 01 00 callq 41ddb0 <__cfree> + 4085b0: e9 08 df ff ff jmpq 4064bd + 4085b5: 49 8b 7f 18 mov 0x18(%r15),%rdi + 4085b9: e8 52 d6 ff ff callq 405c10 <__gettext_free_exp> + 4085be: 49 8b 7f 10 mov 0x10(%r15),%rdi + 4085c2: e8 49 d6 ff ff callq 405c10 <__gettext_free_exp> + 4085c7: 49 8b 47 08 mov 0x8(%r15),%rax + 4085cb: 48 85 c0 test %rax,%rax + 4085ce: 0f 84 ec e2 ff ff je 4068c0 + 4085d4: 8b 10 mov (%rax),%edx + 4085d6: 83 fa 02 cmp $0x2,%edx + 4085d9: 0f 84 35 13 00 00 je 409914 + 4085df: 83 fa 03 cmp $0x3,%edx + 4085e2: 0f 84 1b 13 00 00 je 409903 + 4085e8: 83 fa 01 cmp $0x1,%edx + 4085eb: 0f 84 34 13 00 00 je 409925 + 4085f1: 48 89 c7 mov %rax,%rdi + 4085f4: e8 b7 57 01 00 callq 41ddb0 <__cfree> + 4085f9: e9 c2 e2 ff ff jmpq 4068c0 + 4085fe: 49 8b 7f 18 mov 0x18(%r15),%rdi + 408602: e8 09 d6 ff ff callq 405c10 <__gettext_free_exp> + 408607: 49 8b 7f 10 mov 0x10(%r15),%rdi + 40860b: e8 00 d6 ff ff callq 405c10 <__gettext_free_exp> + 408610: 49 8b 47 08 mov 0x8(%r15),%rax + 408614: 48 85 c0 test %rax,%rax + 408617: 0f 84 95 df ff ff je 4065b2 + 40861d: 8b 10 mov (%rax),%edx + 40861f: 83 fa 02 cmp $0x2,%edx + 408622: 0f 84 5c 13 00 00 je 409984 + 408628: 83 fa 03 cmp $0x3,%edx + 40862b: 0f 84 42 13 00 00 je 409973 + 408631: 83 fa 01 cmp $0x1,%edx + 408634: 0f 84 5b 13 00 00 je 409995 + 40863a: 48 89 c7 mov %rax,%rdi + 40863d: e8 6e 57 01 00 callq 41ddb0 <__cfree> + 408642: e9 6b df ff ff jmpq 4065b2 + 408647: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40864b: e8 c0 d5 ff ff callq 405c10 <__gettext_free_exp> + 408650: 49 8b 7f 10 mov 0x10(%r15),%rdi + 408654: e8 b7 d5 ff ff callq 405c10 <__gettext_free_exp> + 408659: 49 8b 47 08 mov 0x8(%r15),%rax + 40865d: 48 85 c0 test %rax,%rax + 408660: 0f 84 c1 f2 ff ff je 407927 + 408666: 8b 10 mov (%rax),%edx + 408668: 83 fa 02 cmp $0x2,%edx + 40866b: 0f 84 ab 10 00 00 je 40971c + 408671: 83 fa 03 cmp $0x3,%edx + 408674: 0f 84 91 10 00 00 je 40970b + 40867a: 83 fa 01 cmp $0x1,%edx + 40867d: 0f 84 aa 10 00 00 je 40972d + 408683: 48 89 c7 mov %rax,%rdi + 408686: e8 25 57 01 00 callq 41ddb0 <__cfree> + 40868b: e9 97 f2 ff ff jmpq 407927 + 408690: 48 8b 78 18 mov 0x18(%rax),%rdi + 408694: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408699: e8 72 d5 ff ff callq 405c10 <__gettext_free_exp> + 40869e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4086a3: 48 8b 78 10 mov 0x10(%rax),%rdi + 4086a7: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4086ac: e8 5f d5 ff ff callq 405c10 <__gettext_free_exp> + 4086b1: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4086b6: 48 8b 78 08 mov 0x8(%rax),%rdi + 4086ba: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4086bf: e8 4c d5 ff ff callq 405c10 <__gettext_free_exp> + 4086c4: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4086c9: e9 13 e4 ff ff jmpq 406ae1 + 4086ce: 48 8b 78 18 mov 0x18(%rax),%rdi + 4086d2: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4086d7: e8 34 d5 ff ff callq 405c10 <__gettext_free_exp> + 4086dc: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4086e1: 48 8b 78 10 mov 0x10(%rax),%rdi + 4086e5: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4086ea: e8 21 d5 ff ff callq 405c10 <__gettext_free_exp> + 4086ef: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4086f4: 48 8b 78 08 mov 0x8(%rax),%rdi + 4086f8: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4086fd: e8 0e d5 ff ff callq 405c10 <__gettext_free_exp> + 408702: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408707: e9 eb e2 ff ff jmpq 4069f7 + 40870c: 48 8b 78 18 mov 0x18(%rax),%rdi + 408710: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408715: e8 f6 d4 ff ff callq 405c10 <__gettext_free_exp> + 40871a: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40871f: 48 8b 78 10 mov 0x10(%rax),%rdi + 408723: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408728: e8 e3 d4 ff ff callq 405c10 <__gettext_free_exp> + 40872d: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408732: 48 8b 78 08 mov 0x8(%rax),%rdi + 408736: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40873b: e8 d0 d4 ff ff callq 405c10 <__gettext_free_exp> + 408740: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408745: e9 f5 f0 ff ff jmpq 40783f + 40874a: 48 8b 78 18 mov 0x18(%rax),%rdi + 40874e: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408753: e8 b8 d4 ff ff callq 405c10 <__gettext_free_exp> + 408758: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40875d: 48 8b 78 10 mov 0x10(%rax),%rdi + 408761: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408766: e8 a5 d4 ff ff callq 405c10 <__gettext_free_exp> + 40876b: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408770: 48 8b 78 08 mov 0x8(%rax),%rdi + 408774: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408779: e8 92 d4 ff ff callq 405c10 <__gettext_free_exp> + 40877e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408783: e9 9f ed ff ff jmpq 407527 + 408788: 48 8b 78 18 mov 0x18(%rax),%rdi + 40878c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408791: e8 7a d4 ff ff callq 405c10 <__gettext_free_exp> + 408796: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40879b: 48 8b 78 10 mov 0x10(%rax),%rdi + 40879f: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4087a4: e8 67 d4 ff ff callq 405c10 <__gettext_free_exp> + 4087a9: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4087ae: 48 8b 78 08 mov 0x8(%rax),%rdi + 4087b2: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4087b7: e8 54 d4 ff ff callq 405c10 <__gettext_free_exp> + 4087bc: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4087c1: e9 d1 e3 ff ff jmpq 406b97 + 4087c6: 48 8b 78 18 mov 0x18(%rax),%rdi + 4087ca: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4087cf: e8 3c d4 ff ff callq 405c10 <__gettext_free_exp> + 4087d4: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4087d9: 48 8b 78 10 mov 0x10(%rax),%rdi + 4087dd: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4087e2: e8 29 d4 ff ff callq 405c10 <__gettext_free_exp> + 4087e7: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4087ec: 48 8b 78 08 mov 0x8(%rax),%rdi + 4087f0: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4087f5: e8 16 d4 ff ff callq 405c10 <__gettext_free_exp> + 4087fa: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4087ff: e9 1b ef ff ff jmpq 40771f + 408804: 48 8b 78 18 mov 0x18(%rax),%rdi + 408808: 48 89 04 24 mov %rax,(%rsp) + 40880c: e8 ff d3 ff ff callq 405c10 <__gettext_free_exp> + 408811: 48 8b 04 24 mov (%rsp),%rax + 408815: 48 8b 78 10 mov 0x10(%rax),%rdi + 408819: 48 89 04 24 mov %rax,(%rsp) + 40881d: e8 ee d3 ff ff callq 405c10 <__gettext_free_exp> + 408822: 48 8b 04 24 mov (%rsp),%rax + 408826: 48 8b 50 08 mov 0x8(%rax),%rdx + 40882a: 48 85 d2 test %rdx,%rdx + 40882d: 0f 84 1c e4 ff ff je 406c4f + 408833: 8b 0a mov (%rdx),%ecx + 408835: 83 f9 02 cmp $0x2,%ecx + 408838: 0f 84 3a 01 00 00 je 408978 + 40883e: 83 f9 03 cmp $0x3,%ecx + 408841: 0f 84 16 01 00 00 je 40895d + 408847: 83 f9 01 cmp $0x1,%ecx + 40884a: 0f 84 43 01 00 00 je 408993 + 408850: 48 89 d7 mov %rdx,%rdi + 408853: 48 89 04 24 mov %rax,(%rsp) + 408857: e8 54 55 01 00 callq 41ddb0 <__cfree> + 40885c: 48 8b 04 24 mov (%rsp),%rax + 408860: e9 ea e3 ff ff jmpq 406c4f + 408865: 48 8b 78 18 mov 0x18(%rax),%rdi + 408869: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40886e: e8 9d d3 ff ff callq 405c10 <__gettext_free_exp> + 408873: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408878: 48 8b 78 10 mov 0x10(%rax),%rdi + 40887c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408881: e8 8a d3 ff ff callq 405c10 <__gettext_free_exp> + 408886: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40888b: 48 8b 78 08 mov 0x8(%rax),%rdi + 40888f: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408894: e8 77 d3 ff ff callq 405c10 <__gettext_free_exp> + 408899: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40889e: e9 a4 f8 ff ff jmpq 408147 + 4088a3: 48 8b 78 18 mov 0x18(%rax),%rdi + 4088a7: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4088ac: e8 5f d3 ff ff callq 405c10 <__gettext_free_exp> + 4088b1: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4088b6: 48 8b 78 10 mov 0x10(%rax),%rdi + 4088ba: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4088bf: e8 4c d3 ff ff callq 405c10 <__gettext_free_exp> + 4088c4: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4088c9: 48 8b 78 08 mov 0x8(%rax),%rdi + 4088cd: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4088d2: e8 39 d3 ff ff callq 405c10 <__gettext_free_exp> + 4088d7: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4088dc: e9 66 f9 ff ff jmpq 408247 + 4088e1: 48 8b 78 18 mov 0x18(%rax),%rdi + 4088e5: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4088ea: e8 21 d3 ff ff callq 405c10 <__gettext_free_exp> + 4088ef: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4088f4: 48 8b 78 10 mov 0x10(%rax),%rdi + 4088f8: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4088fd: e8 0e d3 ff ff callq 405c10 <__gettext_free_exp> + 408902: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408907: 48 8b 78 08 mov 0x8(%rax),%rdi + 40890b: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408910: e8 fb d2 ff ff callq 405c10 <__gettext_free_exp> + 408915: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40891a: e9 a8 f7 ff ff jmpq 4080c7 + 40891f: 48 8b 78 18 mov 0x18(%rax),%rdi + 408923: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408928: e8 e3 d2 ff ff callq 405c10 <__gettext_free_exp> + 40892d: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408932: 48 8b 78 10 mov 0x10(%rax),%rdi + 408936: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40893b: e8 d0 d2 ff ff callq 405c10 <__gettext_free_exp> + 408940: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408945: 48 8b 78 08 mov 0x8(%rax),%rdi + 408949: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40894e: e8 bd d2 ff ff callq 405c10 <__gettext_free_exp> + 408953: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408958: e9 6a f8 ff ff jmpq 4081c7 + 40895d: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 408961: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408966: 48 89 14 24 mov %rdx,(%rsp) + 40896a: e8 a1 d2 ff ff callq 405c10 <__gettext_free_exp> + 40896f: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408974: 48 8b 14 24 mov (%rsp),%rdx + 408978: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40897c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408981: 48 89 14 24 mov %rdx,(%rsp) + 408985: e8 86 d2 ff ff callq 405c10 <__gettext_free_exp> + 40898a: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40898f: 48 8b 14 24 mov (%rsp),%rdx + 408993: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 408997: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40899c: 48 89 14 24 mov %rdx,(%rsp) + 4089a0: e8 6b d2 ff ff callq 405c10 <__gettext_free_exp> + 4089a5: 48 8b 14 24 mov (%rsp),%rdx + 4089a9: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4089ae: 48 89 d7 mov %rdx,%rdi + 4089b1: 48 89 04 24 mov %rax,(%rsp) + 4089b5: e8 f6 53 01 00 callq 41ddb0 <__cfree> + 4089ba: 48 8b 04 24 mov (%rsp),%rax + 4089be: e9 8c e2 ff ff jmpq 406c4f + 4089c3: 49 8b 7f 18 mov 0x18(%r15),%rdi + 4089c7: e8 44 d2 ff ff callq 405c10 <__gettext_free_exp> + 4089cc: 49 8b 7f 10 mov 0x10(%r15),%rdi + 4089d0: e8 3b d2 ff ff callq 405c10 <__gettext_free_exp> + 4089d5: 49 8b 7f 08 mov 0x8(%r15),%rdi + 4089d9: e8 32 d2 ff ff callq 405c10 <__gettext_free_exp> + 4089de: e9 dd f8 ff ff jmpq 4082c0 + 4089e3: 48 8b 78 18 mov 0x18(%rax),%rdi + 4089e7: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4089ec: e8 1f d2 ff ff callq 405c10 <__gettext_free_exp> + 4089f1: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4089f6: 48 8b 78 10 mov 0x10(%rax),%rdi + 4089fa: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4089ff: e8 0c d2 ff ff callq 405c10 <__gettext_free_exp> + 408a04: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408a09: 48 8b 78 08 mov 0x8(%rax),%rdi + 408a0d: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408a12: e8 f9 d1 ff ff callq 405c10 <__gettext_free_exp> + 408a17: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408a1c: e9 51 fb ff ff jmpq 408572 + 408a21: 48 8b 78 18 mov 0x18(%rax),%rdi + 408a25: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408a2a: e8 e1 d1 ff ff callq 405c10 <__gettext_free_exp> + 408a2f: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408a34: 48 8b 78 10 mov 0x10(%rax),%rdi + 408a38: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408a3d: e8 ce d1 ff ff callq 405c10 <__gettext_free_exp> + 408a42: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408a47: 48 8b 78 08 mov 0x8(%rax),%rdi + 408a4b: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408a50: e8 bb d1 ff ff callq 405c10 <__gettext_free_exp> + 408a55: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408a5a: e9 7e ef ff ff jmpq 4079dd + 408a5f: 48 8b 78 18 mov 0x18(%rax),%rdi + 408a63: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408a68: e8 a3 d1 ff ff callq 405c10 <__gettext_free_exp> + 408a6d: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408a72: 48 8b 78 10 mov 0x10(%rax),%rdi + 408a76: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408a7b: e8 90 d1 ff ff callq 405c10 <__gettext_free_exp> + 408a80: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408a85: 48 8b 78 08 mov 0x8(%rax),%rdi + 408a89: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408a8e: e8 7d d1 ff ff callq 405c10 <__gettext_free_exp> + 408a93: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408a98: e9 c0 f0 ff ff jmpq 407b5d + 408a9d: 48 8b 78 18 mov 0x18(%rax),%rdi + 408aa1: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408aa6: e8 65 d1 ff ff callq 405c10 <__gettext_free_exp> + 408aab: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408ab0: 48 8b 78 10 mov 0x10(%rax),%rdi + 408ab4: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408ab9: e8 52 d1 ff ff callq 405c10 <__gettext_free_exp> + 408abe: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408ac3: 48 8b 78 08 mov 0x8(%rax),%rdi + 408ac7: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408acc: e8 3f d1 ff ff callq 405c10 <__gettext_free_exp> + 408ad1: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408ad6: e9 02 f0 ff ff jmpq 407add + 408adb: 48 8b 78 18 mov 0x18(%rax),%rdi + 408adf: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408ae4: e8 27 d1 ff ff callq 405c10 <__gettext_free_exp> + 408ae9: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408aee: 48 8b 78 10 mov 0x10(%rax),%rdi + 408af2: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408af7: e8 14 d1 ff ff callq 405c10 <__gettext_free_exp> + 408afc: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408b01: 48 8b 78 08 mov 0x8(%rax),%rdi + 408b05: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408b0a: e8 01 d1 ff ff callq 405c10 <__gettext_free_exp> + 408b0f: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408b14: e9 44 ef ff ff jmpq 407a5d + 408b19: 48 8b 78 18 mov 0x18(%rax),%rdi + 408b1d: 48 89 04 24 mov %rax,(%rsp) + 408b21: e8 ea d0 ff ff callq 405c10 <__gettext_free_exp> + 408b26: 48 8b 04 24 mov (%rsp),%rax + 408b2a: 48 8b 78 10 mov 0x10(%rax),%rdi + 408b2e: 48 89 04 24 mov %rax,(%rsp) + 408b32: e8 d9 d0 ff ff callq 405c10 <__gettext_free_exp> + 408b37: 48 8b 04 24 mov (%rsp),%rax + 408b3b: 48 8b 50 08 mov 0x8(%rax),%rdx + 408b3f: 48 85 d2 test %rdx,%rdx + 408b42: 0f 84 d9 f1 ff ff je 407d21 + 408b48: 8b 0a mov (%rdx),%ecx + 408b4a: 83 f9 02 cmp $0x2,%ecx + 408b4d: 0f 84 40 0a 00 00 je 409593 + 408b53: 83 f9 03 cmp $0x3,%ecx + 408b56: 0f 84 1c 0a 00 00 je 409578 + 408b5c: 83 f9 01 cmp $0x1,%ecx + 408b5f: 0f 84 49 0a 00 00 je 4095ae + 408b65: 48 89 d7 mov %rdx,%rdi + 408b68: 48 89 04 24 mov %rax,(%rsp) + 408b6c: e8 3f 52 01 00 callq 41ddb0 <__cfree> + 408b71: 48 8b 04 24 mov (%rsp),%rax + 408b75: e9 a7 f1 ff ff jmpq 407d21 + 408b7a: 48 8b 78 18 mov 0x18(%rax),%rdi + 408b7e: 48 89 04 24 mov %rax,(%rsp) + 408b82: e8 89 d0 ff ff callq 405c10 <__gettext_free_exp> + 408b87: 48 8b 04 24 mov (%rsp),%rax + 408b8b: 48 8b 78 10 mov 0x10(%rax),%rdi + 408b8f: 48 89 04 24 mov %rax,(%rsp) + 408b93: e8 78 d0 ff ff callq 405c10 <__gettext_free_exp> + 408b98: 48 8b 04 24 mov (%rsp),%rax + 408b9c: 48 8b 50 08 mov 0x8(%rax),%rdx + 408ba0: 48 85 d2 test %rdx,%rdx + 408ba3: 0f 84 98 f0 ff ff je 407c41 + 408ba9: 8b 0a mov (%rdx),%ecx + 408bab: 83 f9 02 cmp $0x2,%ecx + 408bae: 0f 84 b1 0a 00 00 je 409665 + 408bb4: 83 f9 03 cmp $0x3,%ecx + 408bb7: 0f 84 8d 0a 00 00 je 40964a + 408bbd: 83 f9 01 cmp $0x1,%ecx + 408bc0: 0f 84 ba 0a 00 00 je 409680 + 408bc6: 48 89 d7 mov %rdx,%rdi + 408bc9: 48 89 04 24 mov %rax,(%rsp) + 408bcd: e8 de 51 01 00 callq 41ddb0 <__cfree> + 408bd2: 48 8b 04 24 mov (%rsp),%rax + 408bd6: e9 66 f0 ff ff jmpq 407c41 + 408bdb: 48 8b 78 18 mov 0x18(%rax),%rdi + 408bdf: 48 89 04 24 mov %rax,(%rsp) + 408be3: e8 28 d0 ff ff callq 405c10 <__gettext_free_exp> + 408be8: 48 8b 04 24 mov (%rsp),%rax + 408bec: 48 8b 78 10 mov 0x10(%rax),%rdi + 408bf0: 48 89 04 24 mov %rax,(%rsp) + 408bf4: e8 17 d0 ff ff callq 405c10 <__gettext_free_exp> + 408bf9: 48 8b 04 24 mov (%rsp),%rax + 408bfd: 48 8b 50 08 mov 0x8(%rax),%rdx + 408c01: 48 85 d2 test %rdx,%rdx + 408c04: 0f 84 a7 f0 ff ff je 407cb1 + 408c0a: 8b 0a mov (%rdx),%ecx + 408c0c: 83 f9 02 cmp $0x2,%ecx + 408c0f: 0f 84 04 05 00 00 je 409119 + 408c15: 83 f9 03 cmp $0x3,%ecx + 408c18: 0f 84 e0 04 00 00 je 4090fe + 408c1e: 83 f9 01 cmp $0x1,%ecx + 408c21: 0f 84 0d 05 00 00 je 409134 + 408c27: 48 89 d7 mov %rdx,%rdi + 408c2a: 48 89 04 24 mov %rax,(%rsp) + 408c2e: e8 7d 51 01 00 callq 41ddb0 <__cfree> + 408c33: 48 8b 04 24 mov (%rsp),%rax + 408c37: e9 75 f0 ff ff jmpq 407cb1 + 408c3c: 48 8b 78 18 mov 0x18(%rax),%rdi + 408c40: 48 89 04 24 mov %rax,(%rsp) + 408c44: e8 c7 cf ff ff callq 405c10 <__gettext_free_exp> + 408c49: 48 8b 04 24 mov (%rsp),%rax + 408c4d: 48 8b 78 10 mov 0x10(%rax),%rdi + 408c51: 48 89 04 24 mov %rax,(%rsp) + 408c55: e8 b6 cf ff ff callq 405c10 <__gettext_free_exp> + 408c5a: 48 8b 04 24 mov (%rsp),%rax + 408c5e: 48 8b 50 08 mov 0x8(%rax),%rdx + 408c62: 48 85 d2 test %rdx,%rdx + 408c65: 0f 84 26 f1 ff ff je 407d91 + 408c6b: 8b 0a mov (%rdx),%ecx + 408c6d: 83 f9 02 cmp $0x2,%ecx + 408c70: 0f 84 cb 05 00 00 je 409241 + 408c76: 83 f9 03 cmp $0x3,%ecx + 408c79: 0f 84 a7 05 00 00 je 409226 + 408c7f: 83 f9 01 cmp $0x1,%ecx + 408c82: 0f 84 d4 05 00 00 je 40925c + 408c88: 48 89 d7 mov %rdx,%rdi + 408c8b: 48 89 04 24 mov %rax,(%rsp) + 408c8f: e8 1c 51 01 00 callq 41ddb0 <__cfree> + 408c94: 48 8b 04 24 mov (%rsp),%rax + 408c98: e9 f4 f0 ff ff jmpq 407d91 + 408c9d: 48 8b 78 18 mov 0x18(%rax),%rdi + 408ca1: 48 89 04 24 mov %rax,(%rsp) + 408ca5: e8 66 cf ff ff callq 405c10 <__gettext_free_exp> + 408caa: 48 8b 04 24 mov (%rsp),%rax + 408cae: 48 8b 78 10 mov 0x10(%rax),%rdi + 408cb2: 48 89 04 24 mov %rax,(%rsp) + 408cb6: e8 55 cf ff ff callq 405c10 <__gettext_free_exp> + 408cbb: 48 8b 04 24 mov (%rsp),%rax + 408cbf: 48 8b 50 08 mov 0x8(%rax),%rdx + 408cc3: 48 85 d2 test %rdx,%rdx + 408cc6: 0f 84 35 f1 ff ff je 407e01 + 408ccc: 8b 0a mov (%rdx),%ecx + 408cce: 83 f9 02 cmp $0x2,%ecx + 408cd1: 0f 84 92 06 00 00 je 409369 + 408cd7: 83 f9 03 cmp $0x3,%ecx + 408cda: 0f 84 6e 06 00 00 je 40934e + 408ce0: 83 f9 01 cmp $0x1,%ecx + 408ce3: 0f 84 9b 06 00 00 je 409384 + 408ce9: 48 89 d7 mov %rdx,%rdi + 408cec: 48 89 04 24 mov %rax,(%rsp) + 408cf0: e8 bb 50 01 00 callq 41ddb0 <__cfree> + 408cf5: 48 8b 04 24 mov (%rsp),%rax + 408cf9: e9 03 f1 ff ff jmpq 407e01 + 408cfe: 48 8b 78 18 mov 0x18(%rax),%rdi + 408d02: 48 89 04 24 mov %rax,(%rsp) + 408d06: e8 05 cf ff ff callq 405c10 <__gettext_free_exp> + 408d0b: 48 8b 04 24 mov (%rsp),%rax + 408d0f: 48 8b 78 10 mov 0x10(%rax),%rdi + 408d13: 48 89 04 24 mov %rax,(%rsp) + 408d17: e8 f4 ce ff ff callq 405c10 <__gettext_free_exp> + 408d1c: 48 8b 04 24 mov (%rsp),%rax + 408d20: 48 8b 50 08 mov 0x8(%rax),%rdx + 408d24: 48 85 d2 test %rdx,%rdx + 408d27: 0f 84 a4 ee ff ff je 407bd1 + 408d2d: 8b 0a mov (%rdx),%ecx + 408d2f: 83 f9 02 cmp $0x2,%ecx + 408d32: 0f 84 5f 05 00 00 je 409297 + 408d38: 83 f9 03 cmp $0x3,%ecx + 408d3b: 0f 84 3b 05 00 00 je 40927c + 408d41: 83 f9 01 cmp $0x1,%ecx + 408d44: 0f 84 68 05 00 00 je 4092b2 + 408d4a: 48 89 d7 mov %rdx,%rdi + 408d4d: 48 89 04 24 mov %rax,(%rsp) + 408d51: e8 5a 50 01 00 callq 41ddb0 <__cfree> + 408d56: 48 8b 04 24 mov (%rsp),%rax + 408d5a: e9 72 ee ff ff jmpq 407bd1 + 408d5f: 48 8b 78 18 mov 0x18(%rax),%rdi + 408d63: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408d68: e8 a3 ce ff ff callq 405c10 <__gettext_free_exp> + 408d6d: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408d72: 48 8b 78 10 mov 0x10(%rax),%rdi + 408d76: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408d7b: e8 90 ce ff ff callq 405c10 <__gettext_free_exp> + 408d80: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408d85: 48 8b 78 08 mov 0x8(%rax),%rdi + 408d89: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408d8e: e8 7d ce ff ff callq 405c10 <__gettext_free_exp> + 408d93: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408d98: e9 60 f4 ff ff jmpq 4081fd + 408d9d: 48 8b 78 18 mov 0x18(%rax),%rdi + 408da1: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408da6: e8 65 ce ff ff callq 405c10 <__gettext_free_exp> + 408dab: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408db0: 48 8b 78 10 mov 0x10(%rax),%rdi + 408db4: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408db9: e8 52 ce ff ff callq 405c10 <__gettext_free_exp> + 408dbe: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408dc3: 48 8b 78 08 mov 0x8(%rax),%rdi + 408dc7: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408dcc: e8 3f ce ff ff callq 405c10 <__gettext_free_exp> + 408dd1: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408dd6: e9 a2 f3 ff ff jmpq 40817d + 408ddb: 48 8b 78 18 mov 0x18(%rax),%rdi + 408ddf: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408de4: e8 27 ce ff ff callq 405c10 <__gettext_free_exp> + 408de9: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408dee: 48 8b 78 10 mov 0x10(%rax),%rdi + 408df2: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408df7: e8 14 ce ff ff callq 405c10 <__gettext_free_exp> + 408dfc: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408e01: 48 8b 78 08 mov 0x8(%rax),%rdi + 408e05: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408e0a: e8 01 ce ff ff callq 405c10 <__gettext_free_exp> + 408e0f: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408e14: e9 64 f4 ff ff jmpq 40827d + 408e19: 48 8b 78 18 mov 0x18(%rax),%rdi + 408e1d: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408e22: e8 e9 cd ff ff callq 405c10 <__gettext_free_exp> + 408e27: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408e2c: 48 8b 78 10 mov 0x10(%rax),%rdi + 408e30: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408e35: e8 d6 cd ff ff callq 405c10 <__gettext_free_exp> + 408e3a: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408e3f: 48 8b 78 08 mov 0x8(%rax),%rdi + 408e43: 48 89 44 24 08 mov %rax,0x8(%rsp) + 408e48: e8 c3 cd ff ff callq 405c10 <__gettext_free_exp> + 408e4d: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 408e52: e9 a6 f2 ff ff jmpq 4080fd + 408e57: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 408e5e: 00 00 + 408e60: 49 8b 47 18 mov 0x18(%r15),%rax + 408e64: 48 85 c0 test %rax,%rax + 408e67: 0f 84 2c df ff ff je 406d99 + 408e6d: 8b 10 mov (%rax),%edx + 408e6f: 83 fa 02 cmp $0x2,%edx + 408e72: 0f 84 f7 de ff ff je 406d6f + 408e78: 83 fa 03 cmp $0x3,%edx + 408e7b: 0f 84 dd de ff ff je 406d5e + 408e81: 83 fa 01 cmp $0x1,%edx + 408e84: 0f 85 07 df ff ff jne 406d91 + 408e8a: e9 f1 de ff ff jmpq 406d80 + 408e8f: 49 8b 7f 18 mov 0x18(%r15),%rdi + 408e93: e8 78 cd ff ff callq 405c10 <__gettext_free_exp> + 408e98: 49 8b 7f 10 mov 0x10(%r15),%rdi + 408e9c: e8 6f cd ff ff callq 405c10 <__gettext_free_exp> + 408ea1: 49 8b 47 08 mov 0x8(%r15),%rax + 408ea5: 48 85 c0 test %rax,%rax + 408ea8: 0f 84 89 df ff ff je 406e37 + 408eae: 8b 10 mov (%rax),%edx + 408eb0: 83 fa 02 cmp $0x2,%edx + 408eb3: 74 28 je 408edd + 408eb5: 83 fa 03 cmp $0x3,%edx + 408eb8: 74 12 je 408ecc + 408eba: 83 fa 01 cmp $0x1,%edx + 408ebd: 74 2f je 408eee + 408ebf: 48 89 c7 mov %rax,%rdi + 408ec2: e8 e9 4e 01 00 callq 41ddb0 <__cfree> + 408ec7: e9 6b df ff ff jmpq 406e37 + 408ecc: 48 8b 78 18 mov 0x18(%rax),%rdi + 408ed0: 48 89 04 24 mov %rax,(%rsp) + 408ed4: e8 37 cd ff ff callq 405c10 <__gettext_free_exp> + 408ed9: 48 8b 04 24 mov (%rsp),%rax + 408edd: 48 8b 78 10 mov 0x10(%rax),%rdi + 408ee1: 48 89 04 24 mov %rax,(%rsp) + 408ee5: e8 26 cd ff ff callq 405c10 <__gettext_free_exp> + 408eea: 48 8b 04 24 mov (%rsp),%rax + 408eee: 48 8b 78 08 mov 0x8(%rax),%rdi + 408ef2: 48 89 04 24 mov %rax,(%rsp) + 408ef6: e8 15 cd ff ff callq 405c10 <__gettext_free_exp> + 408efb: 48 8b 04 24 mov (%rsp),%rax + 408eff: eb be jmp 408ebf + 408f01: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 408f08: 49 8b 47 18 mov 0x18(%r15),%rax + 408f0c: 48 85 c0 test %rax,%rax + 408f0f: 0f 84 c4 df ff ff je 406ed9 + 408f15: 8b 10 mov (%rax),%edx + 408f17: 83 fa 02 cmp $0x2,%edx + 408f1a: 0f 84 8f df ff ff je 406eaf + 408f20: 83 fa 03 cmp $0x3,%edx + 408f23: 0f 84 75 df ff ff je 406e9e + 408f29: 83 fa 01 cmp $0x1,%edx + 408f2c: 0f 85 9f df ff ff jne 406ed1 + 408f32: e9 89 df ff ff jmpq 406ec0 + 408f37: 49 8b 7f 18 mov 0x18(%r15),%rdi + 408f3b: e8 d0 cc ff ff callq 405c10 <__gettext_free_exp> + 408f40: 49 8b 7f 10 mov 0x10(%r15),%rdi + 408f44: e8 c7 cc ff ff callq 405c10 <__gettext_free_exp> + 408f49: 49 8b 47 08 mov 0x8(%r15),%rax + 408f4d: 48 85 c0 test %rax,%rax + 408f50: 0f 84 a1 dd ff ff je 406cf7 + 408f56: 8b 10 mov (%rax),%edx + 408f58: 83 fa 02 cmp $0x2,%edx + 408f5b: 74 28 je 408f85 + 408f5d: 83 fa 03 cmp $0x3,%edx + 408f60: 74 12 je 408f74 + 408f62: 83 fa 01 cmp $0x1,%edx + 408f65: 74 2f je 408f96 + 408f67: 48 89 c7 mov %rax,%rdi + 408f6a: e8 41 4e 01 00 callq 41ddb0 <__cfree> + 408f6f: e9 83 dd ff ff jmpq 406cf7 + 408f74: 48 8b 78 18 mov 0x18(%rax),%rdi + 408f78: 48 89 04 24 mov %rax,(%rsp) + 408f7c: e8 8f cc ff ff callq 405c10 <__gettext_free_exp> + 408f81: 48 8b 04 24 mov (%rsp),%rax + 408f85: 48 8b 78 10 mov 0x10(%rax),%rdi + 408f89: 48 89 04 24 mov %rax,(%rsp) + 408f8d: e8 7e cc ff ff callq 405c10 <__gettext_free_exp> + 408f92: 48 8b 04 24 mov (%rsp),%rax + 408f96: 48 8b 78 08 mov 0x8(%rax),%rdi + 408f9a: 48 89 04 24 mov %rax,(%rsp) + 408f9e: e8 6d cc ff ff callq 405c10 <__gettext_free_exp> + 408fa3: 48 8b 04 24 mov (%rsp),%rax + 408fa7: eb be jmp 408f67 + 408fa9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 408fb0: 49 8b 47 18 mov 0x18(%r15),%rax + 408fb4: 48 85 c0 test %rax,%rax + 408fb7: 0f 84 d6 d4 ff ff je 406493 + 408fbd: 8b 10 mov (%rax),%edx + 408fbf: 83 fa 02 cmp $0x2,%edx + 408fc2: 0f 84 a1 d4 ff ff je 406469 + 408fc8: 83 fa 03 cmp $0x3,%edx + 408fcb: 0f 84 87 d4 ff ff je 406458 + 408fd1: 83 fa 01 cmp $0x1,%edx + 408fd4: 0f 85 b1 d4 ff ff jne 40648b + 408fda: e9 9b d4 ff ff jmpq 40647a + 408fdf: 49 8b 7f 18 mov 0x18(%r15),%rdi + 408fe3: e8 28 cc ff ff callq 405c10 <__gettext_free_exp> + 408fe8: 49 8b 7f 10 mov 0x10(%r15),%rdi + 408fec: e8 1f cc ff ff callq 405c10 <__gettext_free_exp> + 408ff1: 49 8b 47 08 mov 0x8(%r15),%rax + 408ff5: 48 85 c0 test %rax,%rax + 408ff8: 0f 84 f5 f2 ff ff je 4082f3 + 408ffe: 8b 10 mov (%rax),%edx + 409000: 83 fa 02 cmp $0x2,%edx + 409003: 74 28 je 40902d + 409005: 83 fa 03 cmp $0x3,%edx + 409008: 74 12 je 40901c + 40900a: 83 fa 01 cmp $0x1,%edx + 40900d: 74 2f je 40903e + 40900f: 48 89 c7 mov %rax,%rdi + 409012: e8 99 4d 01 00 callq 41ddb0 <__cfree> + 409017: e9 d7 f2 ff ff jmpq 4082f3 + 40901c: 48 8b 78 18 mov 0x18(%rax),%rdi + 409020: 48 89 04 24 mov %rax,(%rsp) + 409024: e8 e7 cb ff ff callq 405c10 <__gettext_free_exp> + 409029: 48 8b 04 24 mov (%rsp),%rax + 40902d: 48 8b 78 10 mov 0x10(%rax),%rdi + 409031: 48 89 04 24 mov %rax,(%rsp) + 409035: e8 d6 cb ff ff callq 405c10 <__gettext_free_exp> + 40903a: 48 8b 04 24 mov (%rsp),%rax + 40903e: 48 8b 78 08 mov 0x8(%rax),%rdi + 409042: 48 89 04 24 mov %rax,(%rsp) + 409046: e8 c5 cb ff ff callq 405c10 <__gettext_free_exp> + 40904b: 48 8b 04 24 mov (%rsp),%rax + 40904f: eb be jmp 40900f + 409051: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 409058: 4d 8b 7d 18 mov 0x18(%r13),%r15 + 40905c: 4d 85 ff test %r15,%r15 + 40905f: 0f 84 26 d5 ff ff je 40658b + 409065: 41 8b 07 mov (%r15),%eax + 409068: 83 f8 02 cmp $0x2,%eax + 40906b: 0f 84 00 d5 ff ff je 406571 + 409071: 83 f8 03 cmp $0x3,%eax + 409074: 0f 84 ee d4 ff ff je 406568 + 40907a: 83 f8 01 cmp $0x1,%eax + 40907d: 0f 85 00 d5 ff ff jne 406583 + 409083: e9 f2 d4 ff ff jmpq 40657a + 409088: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40908f: 00 + 409090: 4d 8b 7d 18 mov 0x18(%r13),%r15 + 409094: 4d 85 ff test %r15,%r15 + 409097: 0f 84 fc d7 ff ff je 406899 + 40909d: 41 8b 07 mov (%r15),%eax + 4090a0: 83 f8 02 cmp $0x2,%eax + 4090a3: 0f 84 d6 d7 ff ff je 40687f + 4090a9: 83 f8 03 cmp $0x3,%eax + 4090ac: 0f 84 c4 d7 ff ff je 406876 + 4090b2: 83 f8 01 cmp $0x1,%eax + 4090b5: 0f 85 d6 d7 ff ff jne 406891 + 4090bb: e9 c8 d7 ff ff jmpq 406888 + 4090c0: 48 8b 78 18 mov 0x18(%rax),%rdi + 4090c4: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4090c9: e8 42 cb ff ff callq 405c10 <__gettext_free_exp> + 4090ce: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4090d3: 48 8b 78 10 mov 0x10(%rax),%rdi + 4090d7: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4090dc: e8 2f cb ff ff callq 405c10 <__gettext_free_exp> + 4090e1: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4090e6: 48 8b 78 08 mov 0x8(%rax),%rdi + 4090ea: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4090ef: e8 1c cb ff ff callq 405c10 <__gettext_free_exp> + 4090f4: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4090f9: e9 84 df ff ff jmpq 407082 + 4090fe: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 409102: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409107: 48 89 14 24 mov %rdx,(%rsp) + 40910b: e8 00 cb ff ff callq 405c10 <__gettext_free_exp> + 409110: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409115: 48 8b 14 24 mov (%rsp),%rdx + 409119: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40911d: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409122: 48 89 14 24 mov %rdx,(%rsp) + 409126: e8 e5 ca ff ff callq 405c10 <__gettext_free_exp> + 40912b: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409130: 48 8b 14 24 mov (%rsp),%rdx + 409134: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 409138: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40913d: 48 89 14 24 mov %rdx,(%rsp) + 409141: e8 ca ca ff ff callq 405c10 <__gettext_free_exp> + 409146: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40914b: 48 8b 14 24 mov (%rsp),%rdx + 40914f: e9 d3 fa ff ff jmpq 408c27 + 409154: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 409158: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40915d: 48 89 14 24 mov %rdx,(%rsp) + 409161: e8 aa ca ff ff callq 405c10 <__gettext_free_exp> + 409166: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40916b: 48 8b 14 24 mov (%rsp),%rdx + 40916f: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 409173: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409178: 48 89 14 24 mov %rdx,(%rsp) + 40917c: e8 8f ca ff ff callq 405c10 <__gettext_free_exp> + 409181: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409186: 48 8b 14 24 mov (%rsp),%rdx + 40918a: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40918e: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409193: 48 89 14 24 mov %rdx,(%rsp) + 409197: e8 74 ca ff ff callq 405c10 <__gettext_free_exp> + 40919c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4091a1: 48 8b 14 24 mov (%rsp),%rdx + 4091a5: e9 1b f3 ff ff jmpq 4084c5 + 4091aa: 48 8b 78 18 mov 0x18(%rax),%rdi + 4091ae: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4091b3: e8 58 ca ff ff callq 405c10 <__gettext_free_exp> + 4091b8: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4091bd: 48 8b 78 10 mov 0x10(%rax),%rdi + 4091c1: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4091c6: e8 45 ca ff ff callq 405c10 <__gettext_free_exp> + 4091cb: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4091d0: 48 8b 78 08 mov 0x8(%rax),%rdi + 4091d4: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4091d9: e8 32 ca ff ff callq 405c10 <__gettext_free_exp> + 4091de: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4091e3: e9 3f e9 ff ff jmpq 407b27 + 4091e8: 48 8b 78 18 mov 0x18(%rax),%rdi + 4091ec: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4091f1: e8 1a ca ff ff callq 405c10 <__gettext_free_exp> + 4091f6: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4091fb: 48 8b 78 10 mov 0x10(%rax),%rdi + 4091ff: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409204: e8 07 ca ff ff callq 405c10 <__gettext_free_exp> + 409209: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40920e: 48 8b 78 08 mov 0x8(%rax),%rdi + 409212: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409217: e8 f4 c9 ff ff callq 405c10 <__gettext_free_exp> + 40921c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409221: e9 81 e8 ff ff jmpq 407aa7 + 409226: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40922a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40922f: 48 89 14 24 mov %rdx,(%rsp) + 409233: e8 d8 c9 ff ff callq 405c10 <__gettext_free_exp> + 409238: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40923d: 48 8b 14 24 mov (%rsp),%rdx + 409241: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 409245: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40924a: 48 89 14 24 mov %rdx,(%rsp) + 40924e: e8 bd c9 ff ff callq 405c10 <__gettext_free_exp> + 409253: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409258: 48 8b 14 24 mov (%rsp),%rdx + 40925c: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 409260: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409265: 48 89 14 24 mov %rdx,(%rsp) + 409269: e8 a2 c9 ff ff callq 405c10 <__gettext_free_exp> + 40926e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409273: 48 8b 14 24 mov (%rsp),%rdx + 409277: e9 0c fa ff ff jmpq 408c88 + 40927c: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 409280: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409285: 48 89 14 24 mov %rdx,(%rsp) + 409289: e8 82 c9 ff ff callq 405c10 <__gettext_free_exp> + 40928e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409293: 48 8b 14 24 mov (%rsp),%rdx + 409297: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40929b: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4092a0: 48 89 14 24 mov %rdx,(%rsp) + 4092a4: e8 67 c9 ff ff callq 405c10 <__gettext_free_exp> + 4092a9: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4092ae: 48 8b 14 24 mov (%rsp),%rdx + 4092b2: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 4092b6: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4092bb: 48 89 14 24 mov %rdx,(%rsp) + 4092bf: e8 4c c9 ff ff callq 405c10 <__gettext_free_exp> + 4092c4: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4092c9: 48 8b 14 24 mov (%rsp),%rdx + 4092cd: e9 78 fa ff ff jmpq 408d4a + 4092d2: 48 8b 78 18 mov 0x18(%rax),%rdi + 4092d6: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4092db: e8 30 c9 ff ff callq 405c10 <__gettext_free_exp> + 4092e0: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4092e5: 48 8b 78 10 mov 0x10(%rax),%rdi + 4092e9: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4092ee: e8 1d c9 ff ff callq 405c10 <__gettext_free_exp> + 4092f3: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4092f8: 48 8b 78 08 mov 0x8(%rax),%rdi + 4092fc: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409301: e8 0a c9 ff ff callq 405c10 <__gettext_free_exp> + 409306: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40930b: e9 3a df ff ff jmpq 40724a + 409310: 48 8b 78 18 mov 0x18(%rax),%rdi + 409314: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409319: e8 f2 c8 ff ff callq 405c10 <__gettext_free_exp> + 40931e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409323: 48 8b 78 10 mov 0x10(%rax),%rdi + 409327: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40932c: e8 df c8 ff ff callq 405c10 <__gettext_free_exp> + 409331: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409336: 48 8b 78 08 mov 0x8(%rax),%rdi + 40933a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40933f: e8 cc c8 ff ff callq 405c10 <__gettext_free_exp> + 409344: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409349: e9 1c de ff ff jmpq 40716a + 40934e: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 409352: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409357: 48 89 14 24 mov %rdx,(%rsp) + 40935b: e8 b0 c8 ff ff callq 405c10 <__gettext_free_exp> + 409360: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409365: 48 8b 14 24 mov (%rsp),%rdx + 409369: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40936d: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409372: 48 89 14 24 mov %rdx,(%rsp) + 409376: e8 95 c8 ff ff callq 405c10 <__gettext_free_exp> + 40937b: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409380: 48 8b 14 24 mov (%rsp),%rdx + 409384: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 409388: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40938d: 48 89 14 24 mov %rdx,(%rsp) + 409391: e8 7a c8 ff ff callq 405c10 <__gettext_free_exp> + 409396: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40939b: 48 8b 14 24 mov (%rsp),%rdx + 40939f: e9 45 f9 ff ff jmpq 408ce9 + 4093a4: 48 8b 78 18 mov 0x18(%rax),%rdi + 4093a8: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4093ad: e8 5e c8 ff ff callq 405c10 <__gettext_free_exp> + 4093b2: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4093b7: 48 8b 78 10 mov 0x10(%rax),%rdi + 4093bb: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4093c0: e8 4b c8 ff ff callq 405c10 <__gettext_free_exp> + 4093c5: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4093ca: 48 8b 78 08 mov 0x8(%rax),%rdi + 4093ce: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4093d3: e8 38 c8 ff ff callq 405c10 <__gettext_free_exp> + 4093d8: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4093dd: e9 c6 f1 ff ff jmpq 4085a8 + 4093e2: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 4093e6: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4093eb: 48 89 14 24 mov %rdx,(%rsp) + 4093ef: e8 1c c8 ff ff callq 405c10 <__gettext_free_exp> + 4093f4: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4093f9: 48 8b 14 24 mov (%rsp),%rdx + 4093fd: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 409401: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409406: 48 89 14 24 mov %rdx,(%rsp) + 40940a: e8 01 c8 ff ff callq 405c10 <__gettext_free_exp> + 40940f: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409414: 48 8b 14 24 mov (%rsp),%rdx + 409418: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40941c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409421: 48 89 14 24 mov %rdx,(%rsp) + 409425: e8 e6 c7 ff ff callq 405c10 <__gettext_free_exp> + 40942a: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40942f: 48 8b 14 24 mov (%rsp),%rdx + 409433: e9 ee f0 ff ff jmpq 408526 + 409438: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40943c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409441: 48 89 14 24 mov %rdx,(%rsp) + 409445: e8 c6 c7 ff ff callq 405c10 <__gettext_free_exp> + 40944a: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40944f: 48 8b 14 24 mov (%rsp),%rdx + 409453: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 409457: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40945c: 48 89 14 24 mov %rdx,(%rsp) + 409460: e8 ab c7 ff ff callq 405c10 <__gettext_free_exp> + 409465: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40946a: 48 8b 14 24 mov (%rsp),%rdx + 40946e: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 409472: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409477: 48 89 14 24 mov %rdx,(%rsp) + 40947b: e8 90 c7 ff ff callq 405c10 <__gettext_free_exp> + 409480: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409485: 48 8b 14 24 mov (%rsp),%rdx + 409489: e9 14 ef ff ff jmpq 4083a2 + 40948e: 48 8b 78 18 mov 0x18(%rax),%rdi + 409492: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409497: e8 74 c7 ff ff callq 405c10 <__gettext_free_exp> + 40949c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4094a1: 48 8b 78 10 mov 0x10(%rax),%rdi + 4094a5: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4094aa: e8 61 c7 ff ff callq 405c10 <__gettext_free_exp> + 4094af: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4094b4: 48 8b 78 08 mov 0x8(%rax),%rdi + 4094b8: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4094bd: e8 4e c7 ff ff callq 405c10 <__gettext_free_exp> + 4094c2: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4094c7: e9 db e4 ff ff jmpq 4079a7 + 4094cc: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 4094d0: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4094d5: 48 89 14 24 mov %rdx,(%rsp) + 4094d9: e8 32 c7 ff ff callq 405c10 <__gettext_free_exp> + 4094de: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4094e3: 48 8b 14 24 mov (%rsp),%rdx + 4094e7: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 4094eb: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4094f0: 48 89 14 24 mov %rdx,(%rsp) + 4094f4: e8 17 c7 ff ff callq 405c10 <__gettext_free_exp> + 4094f9: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4094fe: 48 8b 14 24 mov (%rsp),%rdx + 409502: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 409506: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40950b: 48 89 14 24 mov %rdx,(%rsp) + 40950f: e8 fc c6 ff ff callq 405c10 <__gettext_free_exp> + 409514: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409519: 48 8b 14 24 mov (%rsp),%rdx + 40951d: e9 42 ef ff ff jmpq 408464 + 409522: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 409526: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40952b: 48 89 14 24 mov %rdx,(%rsp) + 40952f: e8 dc c6 ff ff callq 405c10 <__gettext_free_exp> + 409534: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409539: 48 8b 14 24 mov (%rsp),%rdx + 40953d: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 409541: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409546: 48 89 14 24 mov %rdx,(%rsp) + 40954a: e8 c1 c6 ff ff callq 405c10 <__gettext_free_exp> + 40954f: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409554: 48 8b 14 24 mov (%rsp),%rdx + 409558: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40955c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409561: 48 89 14 24 mov %rdx,(%rsp) + 409565: e8 a6 c6 ff ff callq 405c10 <__gettext_free_exp> + 40956a: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40956f: 48 8b 14 24 mov (%rsp),%rdx + 409573: e9 8b ee ff ff jmpq 408403 + 409578: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40957c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409581: 48 89 14 24 mov %rdx,(%rsp) + 409585: e8 86 c6 ff ff callq 405c10 <__gettext_free_exp> + 40958a: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40958f: 48 8b 14 24 mov (%rsp),%rdx + 409593: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 409597: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40959c: 48 89 14 24 mov %rdx,(%rsp) + 4095a0: e8 6b c6 ff ff callq 405c10 <__gettext_free_exp> + 4095a5: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4095aa: 48 8b 14 24 mov (%rsp),%rdx + 4095ae: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 4095b2: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4095b7: 48 89 14 24 mov %rdx,(%rsp) + 4095bb: e8 50 c6 ff ff callq 405c10 <__gettext_free_exp> + 4095c0: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4095c5: 48 8b 14 24 mov (%rsp),%rdx + 4095c9: e9 97 f5 ff ff jmpq 408b65 + 4095ce: 48 8b 78 18 mov 0x18(%rax),%rdi + 4095d2: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4095d7: e8 34 c6 ff ff callq 405c10 <__gettext_free_exp> + 4095dc: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4095e1: 48 8b 78 10 mov 0x10(%rax),%rdi + 4095e5: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4095ea: e8 21 c6 ff ff callq 405c10 <__gettext_free_exp> + 4095ef: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4095f4: 48 8b 78 08 mov 0x8(%rax),%rdi + 4095f8: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4095fd: e8 0e c6 ff ff callq 405c10 <__gettext_free_exp> + 409602: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409607: e9 1e dd ff ff jmpq 40732a + 40960c: 48 8b 78 18 mov 0x18(%rax),%rdi + 409610: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409615: e8 f6 c5 ff ff callq 405c10 <__gettext_free_exp> + 40961a: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40961f: 48 8b 78 10 mov 0x10(%rax),%rdi + 409623: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409628: e8 e3 c5 ff ff callq 405c10 <__gettext_free_exp> + 40962d: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409632: 48 8b 78 08 mov 0x8(%rax),%rdi + 409636: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40963b: e8 d0 c5 ff ff callq 405c10 <__gettext_free_exp> + 409640: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409645: e9 dd e3 ff ff jmpq 407a27 + 40964a: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40964e: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409653: 48 89 14 24 mov %rdx,(%rsp) + 409657: e8 b4 c5 ff ff callq 405c10 <__gettext_free_exp> + 40965c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409661: 48 8b 14 24 mov (%rsp),%rdx + 409665: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 409669: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40966e: 48 89 14 24 mov %rdx,(%rsp) + 409672: e8 99 c5 ff ff callq 405c10 <__gettext_free_exp> + 409677: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40967c: 48 8b 14 24 mov (%rsp),%rdx + 409680: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 409684: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409689: 48 89 14 24 mov %rdx,(%rsp) + 40968d: e8 7e c5 ff ff callq 405c10 <__gettext_free_exp> + 409692: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409697: 48 8b 14 24 mov (%rsp),%rdx + 40969b: e9 26 f5 ff ff jmpq 408bc6 + 4096a0: 48 8b 04 24 mov (%rsp),%rax + 4096a4: 48 8b 40 18 mov 0x18(%rax),%rax + 4096a8: 48 85 c0 test %rax,%rax + 4096ab: 0f 84 06 d4 ff ff je 406ab7 + 4096b1: 8b 10 mov (%rax),%edx + 4096b3: 83 fa 02 cmp $0x2,%edx + 4096b6: 0f 84 cd d3 ff ff je 406a89 + 4096bc: 83 fa 03 cmp $0x3,%edx + 4096bf: 0f 84 b1 d3 ff ff je 406a76 + 4096c5: 83 fa 01 cmp $0x1,%edx + 4096c8: 0f 85 e1 d3 ff ff jne 406aaf + 4096ce: e9 c9 d3 ff ff jmpq 406a9c + 4096d3: 48 8b 78 18 mov 0x18(%rax),%rdi + 4096d7: 48 89 04 24 mov %rax,(%rsp) + 4096db: e8 30 c5 ff ff callq 405c10 <__gettext_free_exp> + 4096e0: 48 8b 04 24 mov (%rsp),%rax + 4096e4: 48 8b 78 10 mov 0x10(%rax),%rdi + 4096e8: 48 89 04 24 mov %rax,(%rsp) + 4096ec: e8 1f c5 ff ff callq 405c10 <__gettext_free_exp> + 4096f1: 48 8b 04 24 mov (%rsp),%rax + 4096f5: 48 8b 78 08 mov 0x8(%rax),%rdi + 4096f9: 48 89 04 24 mov %rax,(%rsp) + 4096fd: e8 0e c5 ff ff callq 405c10 <__gettext_free_exp> + 409702: 48 8b 04 24 mov (%rsp),%rax + 409706: e9 04 e5 ff ff jmpq 407c0f + 40970b: 48 8b 78 18 mov 0x18(%rax),%rdi + 40970f: 48 89 04 24 mov %rax,(%rsp) + 409713: e8 f8 c4 ff ff callq 405c10 <__gettext_free_exp> + 409718: 48 8b 04 24 mov (%rsp),%rax + 40971c: 48 8b 78 10 mov 0x10(%rax),%rdi + 409720: 48 89 04 24 mov %rax,(%rsp) + 409724: e8 e7 c4 ff ff callq 405c10 <__gettext_free_exp> + 409729: 48 8b 04 24 mov (%rsp),%rax + 40972d: 48 8b 78 08 mov 0x8(%rax),%rdi + 409731: 48 89 04 24 mov %rax,(%rsp) + 409735: e8 d6 c4 ff ff callq 405c10 <__gettext_free_exp> + 40973a: 48 8b 04 24 mov (%rsp),%rax + 40973e: e9 40 ef ff ff jmpq 408683 + 409743: 48 8b 78 18 mov 0x18(%rax),%rdi + 409747: 48 89 04 24 mov %rax,(%rsp) + 40974b: e8 c0 c4 ff ff callq 405c10 <__gettext_free_exp> + 409750: 48 8b 04 24 mov (%rsp),%rax + 409754: 48 8b 78 10 mov 0x10(%rax),%rdi + 409758: 48 89 04 24 mov %rax,(%rsp) + 40975c: e8 af c4 ff ff callq 405c10 <__gettext_free_exp> + 409761: 48 8b 04 24 mov (%rsp),%rax + 409765: 48 8b 78 08 mov 0x8(%rax),%rdi + 409769: 48 89 04 24 mov %rax,(%rsp) + 40976d: e8 9e c4 ff ff callq 405c10 <__gettext_free_exp> + 409772: 48 8b 04 24 mov (%rsp),%rax + 409776: e9 54 e6 ff ff jmpq 407dcf + 40977b: 48 8b 78 18 mov 0x18(%rax),%rdi + 40977f: 48 89 04 24 mov %rax,(%rsp) + 409783: e8 88 c4 ff ff callq 405c10 <__gettext_free_exp> + 409788: 48 8b 04 24 mov (%rsp),%rax + 40978c: 48 8b 78 10 mov 0x10(%rax),%rdi + 409790: 48 89 04 24 mov %rax,(%rsp) + 409794: e8 77 c4 ff ff callq 405c10 <__gettext_free_exp> + 409799: 48 8b 04 24 mov (%rsp),%rax + 40979d: 48 8b 78 08 mov 0x8(%rax),%rdi + 4097a1: 48 89 04 24 mov %rax,(%rsp) + 4097a5: e8 66 c4 ff ff callq 405c10 <__gettext_free_exp> + 4097aa: 48 8b 04 24 mov (%rsp),%rax + 4097ae: e9 ac e5 ff ff jmpq 407d5f + 4097b3: 48 8b 78 18 mov 0x18(%rax),%rdi + 4097b7: 48 89 04 24 mov %rax,(%rsp) + 4097bb: e8 50 c4 ff ff callq 405c10 <__gettext_free_exp> + 4097c0: 48 8b 04 24 mov (%rsp),%rax + 4097c4: 48 8b 78 10 mov 0x10(%rax),%rdi + 4097c8: 48 89 04 24 mov %rax,(%rsp) + 4097cc: e8 3f c4 ff ff callq 405c10 <__gettext_free_exp> + 4097d1: 48 8b 04 24 mov (%rsp),%rax + 4097d5: 48 8b 50 08 mov 0x8(%rax),%rdx + 4097d9: 48 85 d2 test %rdx,%rdx + 4097dc: 0f 84 9c dc ff ff je 40747e + 4097e2: 8b 0a mov (%rdx),%ecx + 4097e4: 83 f9 02 cmp $0x2,%ecx + 4097e7: 74 3a je 409823 + 4097e9: 83 f9 03 cmp $0x3,%ecx + 4097ec: 74 1a je 409808 + 4097ee: 83 f9 01 cmp $0x1,%ecx + 4097f1: 74 4b je 40983e + 4097f3: 48 89 d7 mov %rdx,%rdi + 4097f6: 48 89 04 24 mov %rax,(%rsp) + 4097fa: e8 b1 45 01 00 callq 41ddb0 <__cfree> + 4097ff: 48 8b 04 24 mov (%rsp),%rax + 409803: e9 76 dc ff ff jmpq 40747e + 409808: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40980c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409811: 48 89 14 24 mov %rdx,(%rsp) + 409815: e8 f6 c3 ff ff callq 405c10 <__gettext_free_exp> + 40981a: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40981f: 48 8b 14 24 mov (%rsp),%rdx + 409823: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 409827: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40982c: 48 89 14 24 mov %rdx,(%rsp) + 409830: e8 db c3 ff ff callq 405c10 <__gettext_free_exp> + 409835: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40983a: 48 8b 14 24 mov (%rsp),%rdx + 40983e: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 409842: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409847: 48 89 14 24 mov %rdx,(%rsp) + 40984b: e8 c0 c3 ff ff callq 405c10 <__gettext_free_exp> + 409850: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409855: 48 8b 14 24 mov (%rsp),%rdx + 409859: eb 98 jmp 4097f3 + 40985b: 48 8b 78 18 mov 0x18(%rax),%rdi + 40985f: 48 89 04 24 mov %rax,(%rsp) + 409863: e8 a8 c3 ff ff callq 405c10 <__gettext_free_exp> + 409868: 48 8b 04 24 mov (%rsp),%rax + 40986c: 48 8b 78 10 mov 0x10(%rax),%rdi + 409870: 48 89 04 24 mov %rax,(%rsp) + 409874: e8 97 c3 ff ff callq 405c10 <__gettext_free_exp> + 409879: 48 8b 04 24 mov (%rsp),%rax + 40987d: 48 8b 50 08 mov 0x8(%rax),%rdx + 409881: 48 85 d2 test %rdx,%rdx + 409884: 0f 84 ec dd ff ff je 407676 + 40988a: 8b 0a mov (%rdx),%ecx + 40988c: 83 f9 02 cmp $0x2,%ecx + 40988f: 74 3a je 4098cb + 409891: 83 f9 03 cmp $0x3,%ecx + 409894: 74 1a je 4098b0 + 409896: 83 f9 01 cmp $0x1,%ecx + 409899: 74 4b je 4098e6 + 40989b: 48 89 d7 mov %rdx,%rdi + 40989e: 48 89 04 24 mov %rax,(%rsp) + 4098a2: e8 09 45 01 00 callq 41ddb0 <__cfree> + 4098a7: 48 8b 04 24 mov (%rsp),%rax + 4098ab: e9 c6 dd ff ff jmpq 407676 + 4098b0: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 4098b4: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4098b9: 48 89 14 24 mov %rdx,(%rsp) + 4098bd: e8 4e c3 ff ff callq 405c10 <__gettext_free_exp> + 4098c2: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4098c7: 48 8b 14 24 mov (%rsp),%rdx + 4098cb: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 4098cf: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4098d4: 48 89 14 24 mov %rdx,(%rsp) + 4098d8: e8 33 c3 ff ff callq 405c10 <__gettext_free_exp> + 4098dd: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4098e2: 48 8b 14 24 mov (%rsp),%rdx + 4098e6: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 4098ea: 48 89 44 24 08 mov %rax,0x8(%rsp) + 4098ef: 48 89 14 24 mov %rdx,(%rsp) + 4098f3: e8 18 c3 ff ff callq 405c10 <__gettext_free_exp> + 4098f8: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4098fd: 48 8b 14 24 mov (%rsp),%rdx + 409901: eb 98 jmp 40989b + 409903: 48 8b 78 18 mov 0x18(%rax),%rdi + 409907: 48 89 04 24 mov %rax,(%rsp) + 40990b: e8 00 c3 ff ff callq 405c10 <__gettext_free_exp> + 409910: 48 8b 04 24 mov (%rsp),%rax + 409914: 48 8b 78 10 mov 0x10(%rax),%rdi + 409918: 48 89 04 24 mov %rax,(%rsp) + 40991c: e8 ef c2 ff ff callq 405c10 <__gettext_free_exp> + 409921: 48 8b 04 24 mov (%rsp),%rax + 409925: 48 8b 78 08 mov 0x8(%rax),%rdi + 409929: 48 89 04 24 mov %rax,(%rsp) + 40992d: e8 de c2 ff ff callq 405c10 <__gettext_free_exp> + 409932: 48 8b 04 24 mov (%rsp),%rax + 409936: e9 b6 ec ff ff jmpq 4085f1 + 40993b: 48 8b 78 18 mov 0x18(%rax),%rdi + 40993f: 48 89 04 24 mov %rax,(%rsp) + 409943: e8 c8 c2 ff ff callq 405c10 <__gettext_free_exp> + 409948: 48 8b 04 24 mov (%rsp),%rax + 40994c: 48 8b 78 10 mov 0x10(%rax),%rdi + 409950: 48 89 04 24 mov %rax,(%rsp) + 409954: e8 b7 c2 ff ff callq 405c10 <__gettext_free_exp> + 409959: 48 8b 04 24 mov (%rsp),%rax + 40995d: 48 8b 78 08 mov 0x8(%rax),%rdi + 409961: 48 89 04 24 mov %rax,(%rsp) + 409965: e8 a6 c2 ff ff callq 405c10 <__gettext_free_exp> + 40996a: 48 8b 04 24 mov (%rsp),%rax + 40996e: e9 2c e2 ff ff jmpq 407b9f + 409973: 48 8b 78 18 mov 0x18(%rax),%rdi + 409977: 48 89 04 24 mov %rax,(%rsp) + 40997b: e8 90 c2 ff ff callq 405c10 <__gettext_free_exp> + 409980: 48 8b 04 24 mov (%rsp),%rax + 409984: 48 8b 78 10 mov 0x10(%rax),%rdi + 409988: 48 89 04 24 mov %rax,(%rsp) + 40998c: e8 7f c2 ff ff callq 405c10 <__gettext_free_exp> + 409991: 48 8b 04 24 mov (%rsp),%rax + 409995: 48 8b 78 08 mov 0x8(%rax),%rdi + 409999: 48 89 04 24 mov %rax,(%rsp) + 40999d: e8 6e c2 ff ff callq 405c10 <__gettext_free_exp> + 4099a2: 48 8b 04 24 mov (%rsp),%rax + 4099a6: e9 8f ec ff ff jmpq 40863a + 4099ab: 48 8b 78 18 mov 0x18(%rax),%rdi + 4099af: 48 89 04 24 mov %rax,(%rsp) + 4099b3: e8 58 c2 ff ff callq 405c10 <__gettext_free_exp> + 4099b8: 48 8b 04 24 mov (%rsp),%rax + 4099bc: 48 8b 78 10 mov 0x10(%rax),%rdi + 4099c0: 48 89 04 24 mov %rax,(%rsp) + 4099c4: e8 47 c2 ff ff callq 405c10 <__gettext_free_exp> + 4099c9: 48 8b 04 24 mov (%rsp),%rax + 4099cd: 48 8b 78 08 mov 0x8(%rax),%rdi + 4099d1: 48 89 04 24 mov %rax,(%rsp) + 4099d5: e8 36 c2 ff ff callq 405c10 <__gettext_free_exp> + 4099da: 48 8b 04 24 mov (%rsp),%rax + 4099de: e9 9c e2 ff ff jmpq 407c7f + 4099e3: 48 8b 78 18 mov 0x18(%rax),%rdi + 4099e7: 48 89 04 24 mov %rax,(%rsp) + 4099eb: e8 20 c2 ff ff callq 405c10 <__gettext_free_exp> + 4099f0: 48 8b 04 24 mov (%rsp),%rax + 4099f4: 48 8b 78 10 mov 0x10(%rax),%rdi + 4099f8: 48 89 04 24 mov %rax,(%rsp) + 4099fc: e8 0f c2 ff ff callq 405c10 <__gettext_free_exp> + 409a01: 48 8b 04 24 mov (%rsp),%rax + 409a05: 48 8b 78 08 mov 0x8(%rax),%rdi + 409a09: 48 89 04 24 mov %rax,(%rsp) + 409a0d: e8 fe c1 ff ff callq 405c10 <__gettext_free_exp> + 409a12: 48 8b 04 24 mov (%rsp),%rax + 409a16: e9 d4 e2 ff ff jmpq 407cef + 409a1b: 48 8b 78 18 mov 0x18(%rax),%rdi + 409a1f: 48 89 04 24 mov %rax,(%rsp) + 409a23: e8 e8 c1 ff ff callq 405c10 <__gettext_free_exp> + 409a28: 48 8b 04 24 mov (%rsp),%rax + 409a2c: 48 8b 78 10 mov 0x10(%rax),%rdi + 409a30: 48 89 04 24 mov %rax,(%rsp) + 409a34: e8 d7 c1 ff ff callq 405c10 <__gettext_free_exp> + 409a39: 48 8b 04 24 mov (%rsp),%rax + 409a3d: 48 8b 78 08 mov 0x8(%rax),%rdi + 409a41: 48 89 04 24 mov %rax,(%rsp) + 409a45: e8 c6 c1 ff ff callq 405c10 <__gettext_free_exp> + 409a4a: 48 8b 04 24 mov (%rsp),%rax + 409a4e: e9 43 dd ff ff jmpq 407796 + 409a53: 0f 1f 00 nopl (%rax) + 409a56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 409a5d: 00 00 00 + +0000000000409a60 : + 409a60: 41 57 push %r15 + 409a62: 41 56 push %r14 + 409a64: 41 55 push %r13 + 409a66: 41 54 push %r12 + 409a68: 4c 63 e7 movslq %edi,%r12 + 409a6b: 55 push %rbp + 409a6c: 53 push %rbx + 409a6d: 41 8d 5c 24 ff lea -0x1(%r12),%ebx + 409a72: 48 83 ec 18 sub $0x18,%rsp + 409a76: 85 db test %ebx,%ebx + 409a78: 0f 88 85 37 00 00 js 40d203 + 409a7e: 4c 63 eb movslq %ebx,%r13 + 409a81: 49 89 d7 mov %rdx,%r15 + 409a84: 89 dd mov %ebx,%ebp + 409a86: 4a 83 3c ea 00 cmpq $0x0,(%rdx,%r13,8) + 409a8b: 4a 8d 04 ed 00 00 00 lea 0x0(,%r13,8),%rax + 409a92: 00 + 409a93: 48 8d 4c 02 f8 lea -0x8(%rdx,%rax,1),%rcx + 409a98: 89 d8 mov %ebx,%eax + 409a9a: 75 0f jne 409aab + 409a9c: eb 72 jmp 409b10 + 409a9e: 66 90 xchg %ax,%ax + 409aa0: 48 83 e9 08 sub $0x8,%rcx + 409aa4: 48 83 79 08 00 cmpq $0x0,0x8(%rcx) + 409aa9: 74 65 je 409b10 + 409aab: 83 e8 01 sub $0x1,%eax + 409aae: 83 f8 ff cmp $0xffffffff,%eax + 409ab1: 75 ed jne 409aa0 + 409ab3: bf 20 00 00 00 mov $0x20,%edi + 409ab8: 89 34 24 mov %esi,(%rsp) + 409abb: e8 50 3f 01 00 callq 41da10 <__libc_malloc> + 409ac0: 48 85 c0 test %rax,%rax + 409ac3: 49 89 c6 mov %rax,%r14 + 409ac6: 8b 34 24 mov (%rsp),%esi + 409ac9: 74 45 je 409b10 + 409acb: 41 89 76 04 mov %esi,0x4(%r14) + 409acf: 4a 8d 34 e5 00 00 00 lea 0x0(,%r12,8),%rsi + 409ad6: 00 + 409ad7: 89 db mov %ebx,%ebx + 409ad9: 48 8d 14 dd 08 00 00 lea 0x8(,%rbx,8),%rdx + 409ae0: 00 + 409ae1: 45 89 26 mov %r12d,(%r14) + 409ae4: 48 8d 7e 08 lea 0x8(%rsi),%rdi + 409ae8: 48 29 d6 sub %rdx,%rsi + 409aeb: 48 29 d7 sub %rdx,%rdi + 409aee: 4c 01 fe add %r15,%rsi + 409af1: 4c 01 f7 add %r14,%rdi + 409af4: e8 27 25 02 00 callq 42c020 + 409af9: 48 83 c4 18 add $0x18,%rsp + 409afd: 4c 89 f0 mov %r14,%rax + 409b00: 5b pop %rbx + 409b01: 5d pop %rbp + 409b02: 41 5c pop %r12 + 409b04: 41 5d pop %r13 + 409b06: 41 5e pop %r14 + 409b08: 41 5f pop %r15 + 409b0a: c3 retq + 409b0b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 409b10: 4f 8d 24 ef lea (%r15,%r13,8),%r12 + 409b14: eb 30 jmp 409b46 + 409b16: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 409b1d: 00 00 00 + 409b20: 83 f8 03 cmp $0x3,%eax + 409b23: 0f 84 f7 02 00 00 je 409e20 + 409b29: 83 f8 01 cmp $0x1,%eax + 409b2c: 74 58 je 409b86 + 409b2e: 48 89 df mov %rbx,%rdi + 409b31: e8 7a 42 01 00 callq 41ddb0 <__cfree> + 409b36: 83 ed 01 sub $0x1,%ebp + 409b39: 49 83 ec 08 sub $0x8,%r12 + 409b3d: 83 fd ff cmp $0xffffffff,%ebp + 409b40: 0f 84 8a 0a 00 00 je 40a5d0 + 409b46: 49 8b 1c 24 mov (%r12),%rbx + 409b4a: 48 85 db test %rbx,%rbx + 409b4d: 74 e7 je 409b36 + 409b4f: 8b 03 mov (%rbx),%eax + 409b51: 83 f8 02 cmp $0x2,%eax + 409b54: 75 ca jne 409b20 + 409b56: 4c 8b 6b 10 mov 0x10(%rbx),%r13 + 409b5a: 4d 85 ed test %r13,%r13 + 409b5d: 74 27 je 409b86 + 409b5f: 41 8b 45 00 mov 0x0(%r13),%eax + 409b63: 83 f8 02 cmp $0x2,%eax + 409b66: 0f 84 35 09 00 00 je 40a4a1 + 409b6c: 83 f8 03 cmp $0x3,%eax + 409b6f: 0f 84 1b 0a 00 00 je 40a590 + 409b75: 83 f8 01 cmp $0x1,%eax + 409b78: 0f 84 63 02 00 00 je 409de1 + 409b7e: 4c 89 ef mov %r13,%rdi + 409b81: e8 2a 42 01 00 callq 41ddb0 <__cfree> + 409b86: 4c 8b 6b 08 mov 0x8(%rbx),%r13 + 409b8a: 4d 85 ed test %r13,%r13 + 409b8d: 74 9f je 409b2e + 409b8f: 41 8b 45 00 mov 0x0(%r13),%eax + 409b93: 83 f8 02 cmp $0x2,%eax + 409b96: 74 47 je 409bdf + 409b98: 83 f8 03 cmp $0x3,%eax + 409b9b: 74 13 je 409bb0 + 409b9d: 83 f8 01 cmp $0x1,%eax + 409ba0: 74 6c je 409c0e + 409ba2: 4c 89 ef mov %r13,%rdi + 409ba5: e8 06 42 01 00 callq 41ddb0 <__cfree> + 409baa: eb 82 jmp 409b2e + 409bac: 0f 1f 40 00 nopl 0x0(%rax) + 409bb0: 4d 8b 75 18 mov 0x18(%r13),%r14 + 409bb4: 4d 85 f6 test %r14,%r14 + 409bb7: 74 26 je 409bdf + 409bb9: 41 8b 06 mov (%r14),%eax + 409bbc: 83 f8 02 cmp $0x2,%eax + 409bbf: 0f 84 ca 0d 00 00 je 40a98f + 409bc5: 83 f8 03 cmp $0x3,%eax + 409bc8: 0f 84 92 0d 00 00 je 40a960 + 409bce: 83 f8 01 cmp $0x1,%eax + 409bd1: 0f 84 e7 0d 00 00 je 40a9be + 409bd7: 4c 89 f7 mov %r14,%rdi + 409bda: e8 d1 41 01 00 callq 41ddb0 <__cfree> + 409bdf: 4d 8b 75 10 mov 0x10(%r13),%r14 + 409be3: 4d 85 f6 test %r14,%r14 + 409be6: 74 26 je 409c0e + 409be8: 41 8b 06 mov (%r14),%eax + 409beb: 83 f8 02 cmp $0x2,%eax + 409bee: 0f 84 8b 04 00 00 je 40a07f + 409bf4: 83 f8 03 cmp $0x3,%eax + 409bf7: 0f 84 53 04 00 00 je 40a050 + 409bfd: 83 f8 01 cmp $0x1,%eax + 409c00: 0f 84 a8 04 00 00 je 40a0ae + 409c06: 4c 89 f7 mov %r14,%rdi + 409c09: e8 a2 41 01 00 callq 41ddb0 <__cfree> + 409c0e: 4d 8b 75 08 mov 0x8(%r13),%r14 + 409c12: 4d 85 f6 test %r14,%r14 + 409c15: 74 8b je 409ba2 + 409c17: 41 8b 06 mov (%r14),%eax + 409c1a: 83 f8 02 cmp $0x2,%eax + 409c1d: 0f 84 2f 06 00 00 je 40a252 + 409c23: 83 f8 03 cmp $0x3,%eax + 409c26: 0f 84 b4 08 00 00 je 40a4e0 + 409c2c: 83 f8 01 cmp $0x1,%eax + 409c2f: 0f 84 c8 00 00 00 je 409cfd + 409c35: 4c 89 f7 mov %r14,%rdi + 409c38: e8 73 41 01 00 callq 41ddb0 <__cfree> + 409c3d: e9 60 ff ff ff jmpq 409ba2 + 409c42: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 409c48: 48 8b 04 24 mov (%rsp),%rax + 409c4c: 48 8b 78 18 mov 0x18(%rax),%rdi + 409c50: e8 bb bf ff ff callq 405c10 <__gettext_free_exp> + 409c55: 48 8b 04 24 mov (%rsp),%rax + 409c59: 48 8b 40 10 mov 0x10(%rax),%rax + 409c5d: 48 85 c0 test %rax,%rax + 409c60: 74 25 je 409c87 + 409c62: 8b 10 mov (%rax),%edx + 409c64: 83 fa 02 cmp $0x2,%edx + 409c67: 0f 84 93 22 00 00 je 40bf00 + 409c6d: 83 fa 03 cmp $0x3,%edx + 409c70: 0f 84 77 22 00 00 je 40beed + 409c76: 83 fa 01 cmp $0x1,%edx + 409c79: 0f 84 94 22 00 00 je 40bf13 + 409c7f: 48 89 c7 mov %rax,%rdi + 409c82: e8 29 41 01 00 callq 41ddb0 <__cfree> + 409c87: 48 8b 04 24 mov (%rsp),%rax + 409c8b: 48 8b 40 08 mov 0x8(%rax),%rax + 409c8f: 48 85 c0 test %rax,%rax + 409c92: 74 25 je 409cb9 + 409c94: 8b 10 mov (%rax),%edx + 409c96: 83 fa 02 cmp $0x2,%edx + 409c99: 0f 84 6c 19 00 00 je 40b60b + 409c9f: 83 fa 03 cmp $0x3,%edx + 409ca2: 0f 84 50 19 00 00 je 40b5f8 + 409ca8: 83 fa 01 cmp $0x1,%edx + 409cab: 0f 84 6d 19 00 00 je 40b61e + 409cb1: 48 89 c7 mov %rax,%rdi + 409cb4: e8 f7 40 01 00 callq 41ddb0 <__cfree> + 409cb9: 48 8b 3c 24 mov (%rsp),%rdi + 409cbd: e8 ee 40 01 00 callq 41ddb0 <__cfree> + 409cc2: 49 8b 47 08 mov 0x8(%r15),%rax + 409cc6: 48 85 c0 test %rax,%rax + 409cc9: 48 89 04 24 mov %rax,(%rsp) + 409ccd: 74 26 je 409cf5 + 409ccf: 8b 00 mov (%rax),%eax + 409cd1: 83 f8 02 cmp $0x2,%eax + 409cd4: 0f 84 98 10 00 00 je 40ad72 + 409cda: 83 f8 03 cmp $0x3,%eax + 409cdd: 0f 84 5d 10 00 00 je 40ad40 + 409ce3: 83 f8 01 cmp $0x1,%eax + 409ce6: 0f 84 b8 10 00 00 je 40ada4 + 409cec: 48 8b 3c 24 mov (%rsp),%rdi + 409cf0: e8 bb 40 01 00 callq 41ddb0 <__cfree> + 409cf5: 4c 89 ff mov %r15,%rdi + 409cf8: e8 b3 40 01 00 callq 41ddb0 <__cfree> + 409cfd: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 409d01: 4d 85 ff test %r15,%r15 + 409d04: 0f 84 2b ff ff ff je 409c35 + 409d0a: 41 8b 07 mov (%r15),%eax + 409d0d: 83 f8 02 cmp $0x2,%eax + 409d10: 0f 84 45 02 00 00 je 409f5b + 409d16: 83 f8 03 cmp $0x3,%eax + 409d19: 0f 84 09 02 00 00 je 409f28 + 409d1f: 83 f8 01 cmp $0x1,%eax + 409d22: 0f 84 66 02 00 00 je 409f8e + 409d28: 4c 89 ff mov %r15,%rdi + 409d2b: e8 80 40 01 00 callq 41ddb0 <__cfree> + 409d30: e9 00 ff ff ff jmpq 409c35 + 409d35: 0f 1f 00 nopl (%rax) + 409d38: 49 8b 7f 18 mov 0x18(%r15),%rdi + 409d3c: e8 cf be ff ff callq 405c10 <__gettext_free_exp> + 409d41: 49 8b 47 10 mov 0x10(%r15),%rax + 409d45: 48 85 c0 test %rax,%rax + 409d48: 74 25 je 409d6f + 409d4a: 8b 10 mov (%rax),%edx + 409d4c: 83 fa 02 cmp $0x2,%edx + 409d4f: 0f 84 63 22 00 00 je 40bfb8 + 409d55: 83 fa 03 cmp $0x3,%edx + 409d58: 0f 84 49 22 00 00 je 40bfa7 + 409d5e: 83 fa 01 cmp $0x1,%edx + 409d61: 0f 84 62 22 00 00 je 40bfc9 + 409d67: 48 89 c7 mov %rax,%rdi + 409d6a: e8 41 40 01 00 callq 41ddb0 <__cfree> + 409d6f: 49 8b 47 08 mov 0x8(%r15),%rax + 409d73: 48 85 c0 test %rax,%rax + 409d76: 48 89 04 24 mov %rax,(%rsp) + 409d7a: 74 26 je 409da2 + 409d7c: 8b 00 mov (%rax),%eax + 409d7e: 83 f8 02 cmp $0x2,%eax + 409d81: 0f 84 64 1b 00 00 je 40b8eb + 409d87: 83 f8 03 cmp $0x3,%eax + 409d8a: 0f 84 4e 1b 00 00 je 40b8de + 409d90: 83 f8 01 cmp $0x1,%eax + 409d93: 0f 84 84 1b 00 00 je 40b91d + 409d99: 48 8b 3c 24 mov (%rsp),%rdi + 409d9d: e8 0e 40 01 00 callq 41ddb0 <__cfree> + 409da2: 4c 89 ff mov %r15,%rdi + 409da5: e8 06 40 01 00 callq 41ddb0 <__cfree> + 409daa: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 409dae: 4d 85 ff test %r15,%r15 + 409db1: 74 26 je 409dd9 + 409db3: 41 8b 07 mov (%r15),%eax + 409db6: 83 f8 02 cmp $0x2,%eax + 409db9: 0f 84 cf 12 00 00 je 40b08e + 409dbf: 83 f8 03 cmp $0x3,%eax + 409dc2: 0f 84 98 12 00 00 je 40b060 + 409dc8: 83 f8 01 cmp $0x1,%eax + 409dcb: 0f 84 f0 12 00 00 je 40b0c1 + 409dd1: 4c 89 ff mov %r15,%rdi + 409dd4: e8 d7 3f 01 00 callq 41ddb0 <__cfree> + 409dd9: 4c 89 f7 mov %r14,%rdi + 409ddc: e8 cf 3f 01 00 callq 41ddb0 <__cfree> + 409de1: 4d 8b 75 08 mov 0x8(%r13),%r14 + 409de5: 4d 85 f6 test %r14,%r14 + 409de8: 0f 84 90 fd ff ff je 409b7e + 409dee: 41 8b 06 mov (%r14),%eax + 409df1: 83 f8 02 cmp $0x2,%eax + 409df4: 0f 84 c5 04 00 00 je 40a2bf + 409dfa: 83 f8 03 cmp $0x3,%eax + 409dfd: 0f 84 8d 04 00 00 je 40a290 + 409e03: 83 f8 01 cmp $0x1,%eax + 409e06: 0f 84 e2 04 00 00 je 40a2ee + 409e0c: 4c 89 f7 mov %r14,%rdi + 409e0f: e8 9c 3f 01 00 callq 41ddb0 <__cfree> + 409e14: e9 65 fd ff ff jmpq 409b7e + 409e19: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 409e20: 4c 8b 6b 18 mov 0x18(%rbx),%r13 + 409e24: 4d 85 ed test %r13,%r13 + 409e27: 0f 84 29 fd ff ff je 409b56 + 409e2d: 41 8b 45 00 mov 0x0(%r13),%eax + 409e31: 83 f8 02 cmp $0x2,%eax + 409e34: 0f 84 15 07 00 00 je 40a54f + 409e3a: 83 f8 03 cmp $0x3,%eax + 409e3d: 0f 84 dd 06 00 00 je 40a520 + 409e43: 83 f8 01 cmp $0x1,%eax + 409e46: 0f 84 96 00 00 00 je 409ee2 + 409e4c: 4c 89 ef mov %r13,%rdi + 409e4f: e8 5c 3f 01 00 callq 41ddb0 <__cfree> + 409e54: e9 fd fc ff ff jmpq 409b56 + 409e59: 49 8b 7f 18 mov 0x18(%r15),%rdi + 409e5d: e8 ae bd ff ff callq 405c10 <__gettext_free_exp> + 409e62: 49 8b 7f 10 mov 0x10(%r15),%rdi + 409e66: e8 a5 bd ff ff callq 405c10 <__gettext_free_exp> + 409e6b: 49 8b 7f 08 mov 0x8(%r15),%rdi + 409e6f: e8 9c bd ff ff callq 405c10 <__gettext_free_exp> + 409e74: 4c 89 ff mov %r15,%rdi + 409e77: e8 34 3f 01 00 callq 41ddb0 <__cfree> + 409e7c: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 409e80: 4d 85 ff test %r15,%r15 + 409e83: 74 26 je 409eab + 409e85: 41 8b 07 mov (%r15),%eax + 409e88: 83 f8 02 cmp $0x2,%eax + 409e8b: 0f 84 19 1f 00 00 je 40bdaa + 409e91: 83 f8 03 cmp $0x3,%eax + 409e94: 0f 84 07 1f 00 00 je 40bda1 + 409e9a: 83 f8 01 cmp $0x1,%eax + 409e9d: 0f 84 10 1f 00 00 je 40bdb3 + 409ea3: 4c 89 ff mov %r15,%rdi + 409ea6: e8 05 3f 01 00 callq 41ddb0 <__cfree> + 409eab: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 409eaf: 4d 85 ff test %r15,%r15 + 409eb2: 74 26 je 409eda + 409eb4: 41 8b 07 mov (%r15),%eax + 409eb7: 83 f8 02 cmp $0x2,%eax + 409eba: 0f 84 16 15 00 00 je 40b3d6 + 409ec0: 83 f8 03 cmp $0x3,%eax + 409ec3: 0f 84 04 15 00 00 je 40b3cd + 409ec9: 83 f8 01 cmp $0x1,%eax + 409ecc: 0f 84 32 15 00 00 je 40b404 + 409ed2: 4c 89 ff mov %r15,%rdi + 409ed5: e8 d6 3e 01 00 callq 41ddb0 <__cfree> + 409eda: 4c 89 f7 mov %r14,%rdi + 409edd: e8 ce 3e 01 00 callq 41ddb0 <__cfree> + 409ee2: 4d 8b 75 08 mov 0x8(%r13),%r14 + 409ee6: 4d 85 f6 test %r14,%r14 + 409ee9: 0f 84 5d ff ff ff je 409e4c + 409eef: 41 8b 06 mov (%r14),%eax + 409ef2: 83 f8 02 cmp $0x2,%eax + 409ef5: 0f 84 54 09 00 00 je 40a84f + 409efb: 83 f8 03 cmp $0x3,%eax + 409efe: 0f 84 1c 09 00 00 je 40a820 + 409f04: 83 f8 01 cmp $0x1,%eax + 409f07: 0f 84 71 09 00 00 je 40a87e + 409f0d: 4c 89 f7 mov %r14,%rdi + 409f10: e8 9b 3e 01 00 callq 41ddb0 <__cfree> + 409f15: 4c 89 ef mov %r13,%rdi + 409f18: e8 93 3e 01 00 callq 41ddb0 <__cfree> + 409f1d: e9 34 fc ff ff jmpq 409b56 + 409f22: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 409f28: 49 8b 47 18 mov 0x18(%r15),%rax + 409f2c: 48 85 c0 test %rax,%rax + 409f2f: 48 89 04 24 mov %rax,(%rsp) + 409f33: 74 26 je 409f5b + 409f35: 8b 00 mov (%rax),%eax + 409f37: 83 f8 02 cmp $0x2,%eax + 409f3a: 0f 84 44 12 00 00 je 40b184 + 409f40: 83 f8 03 cmp $0x3,%eax + 409f43: 0f 84 2e 12 00 00 je 40b177 + 409f49: 83 f8 01 cmp $0x1,%eax + 409f4c: 0f 84 64 12 00 00 je 40b1b6 + 409f52: 48 8b 3c 24 mov (%rsp),%rdi + 409f56: e8 55 3e 01 00 callq 41ddb0 <__cfree> + 409f5b: 49 8b 47 10 mov 0x10(%r15),%rax + 409f5f: 48 85 c0 test %rax,%rax + 409f62: 48 89 04 24 mov %rax,(%rsp) + 409f66: 74 26 je 409f8e + 409f68: 8b 00 mov (%rax),%eax + 409f6a: 83 f8 02 cmp $0x2,%eax + 409f6d: 0f 84 3f 0c 00 00 je 40abb2 + 409f73: 83 f8 03 cmp $0x3,%eax + 409f76: 0f 84 04 0c 00 00 je 40ab80 + 409f7c: 83 f8 01 cmp $0x1,%eax + 409f7f: 0f 84 5f 0c 00 00 je 40abe4 + 409f85: 48 8b 3c 24 mov (%rsp),%rdi + 409f89: e8 22 3e 01 00 callq 41ddb0 <__cfree> + 409f8e: 49 8b 47 08 mov 0x8(%r15),%rax + 409f92: 48 85 c0 test %rax,%rax + 409f95: 0f 84 8d fd ff ff je 409d28 + 409f9b: 8b 10 mov (%rax),%edx + 409f9d: 83 fa 02 cmp $0x2,%edx + 409fa0: 0f 84 78 06 00 00 je 40a61e + 409fa6: 83 fa 03 cmp $0x3,%edx + 409fa9: 0f 84 39 06 00 00 je 40a5e8 + 409faf: 83 fa 01 cmp $0x1,%edx + 409fb2: 74 75 je 40a029 + 409fb4: 48 89 c7 mov %rax,%rdi + 409fb7: e8 f4 3d 01 00 callq 41ddb0 <__cfree> + 409fbc: e9 67 fd ff ff jmpq 409d28 + 409fc1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 409fc8: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 409fcc: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409fd1: 48 89 14 24 mov %rdx,(%rsp) + 409fd5: e8 36 bc ff ff callq 405c10 <__gettext_free_exp> + 409fda: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409fdf: 48 8b 14 24 mov (%rsp),%rdx + 409fe3: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 409fe7: 48 89 44 24 08 mov %rax,0x8(%rsp) + 409fec: 48 89 14 24 mov %rdx,(%rsp) + 409ff0: e8 1b bc ff ff callq 405c10 <__gettext_free_exp> + 409ff5: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 409ffa: 48 8b 14 24 mov (%rsp),%rdx + 409ffe: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40a002: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40a007: 48 89 14 24 mov %rdx,(%rsp) + 40a00b: e8 00 bc ff ff callq 405c10 <__gettext_free_exp> + 40a010: 48 8b 14 24 mov (%rsp),%rdx + 40a014: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40a019: 48 89 d7 mov %rdx,%rdi + 40a01c: 48 89 04 24 mov %rax,(%rsp) + 40a020: e8 8b 3d 01 00 callq 41ddb0 <__cfree> + 40a025: 48 8b 04 24 mov (%rsp),%rax + 40a029: 48 8b 78 08 mov 0x8(%rax),%rdi + 40a02d: 48 89 04 24 mov %rax,(%rsp) + 40a031: e8 da bb ff ff callq 405c10 <__gettext_free_exp> + 40a036: 48 8b 04 24 mov (%rsp),%rax + 40a03a: 48 89 c7 mov %rax,%rdi + 40a03d: e8 6e 3d 01 00 callq 41ddb0 <__cfree> + 40a042: e9 e1 fc ff ff jmpq 409d28 + 40a047: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40a04e: 00 00 + 40a050: 4d 8b 7e 18 mov 0x18(%r14),%r15 + 40a054: 4d 85 ff test %r15,%r15 + 40a057: 74 26 je 40a07f + 40a059: 41 8b 07 mov (%r15),%eax + 40a05c: 83 f8 02 cmp $0x2,%eax + 40a05f: 0f 84 29 15 00 00 je 40b58e + 40a065: 83 f8 03 cmp $0x3,%eax + 40a068: 0f 84 17 15 00 00 je 40b585 + 40a06e: 83 f8 01 cmp $0x1,%eax + 40a071: 0f 84 45 15 00 00 je 40b5bc + 40a077: 4c 89 ff mov %r15,%rdi + 40a07a: e8 31 3d 01 00 callq 41ddb0 <__cfree> + 40a07f: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 40a083: 4d 85 ff test %r15,%r15 + 40a086: 74 26 je 40a0ae + 40a088: 41 8b 07 mov (%r15),%eax + 40a08b: 83 f8 02 cmp $0x2,%eax + 40a08e: 0f 84 ba 0d 00 00 je 40ae4e + 40a094: 83 f8 03 cmp $0x3,%eax + 40a097: 0f 84 83 0d 00 00 je 40ae20 + 40a09d: 83 f8 01 cmp $0x1,%eax + 40a0a0: 0f 84 db 0d 00 00 je 40ae81 + 40a0a6: 4c 89 ff mov %r15,%rdi + 40a0a9: e8 02 3d 01 00 callq 41ddb0 <__cfree> + 40a0ae: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 40a0b2: 4d 85 ff test %r15,%r15 + 40a0b5: 0f 84 4b fb ff ff je 409c06 + 40a0bb: 41 8b 07 mov (%r15),%eax + 40a0be: 83 f8 02 cmp $0x2,%eax + 40a0c1: 0f 84 a7 06 00 00 je 40a76e + 40a0c7: 83 f8 03 cmp $0x3,%eax + 40a0ca: 0f 84 70 06 00 00 je 40a740 + 40a0d0: 83 f8 01 cmp $0x1,%eax + 40a0d3: 0f 84 91 00 00 00 je 40a16a + 40a0d9: 4c 89 ff mov %r15,%rdi + 40a0dc: e8 cf 3c 01 00 callq 41ddb0 <__cfree> + 40a0e1: e9 20 fb ff ff jmpq 409c06 + 40a0e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40a0ed: 00 00 00 + 40a0f0: 48 8b 04 24 mov (%rsp),%rax + 40a0f4: 48 8b 78 18 mov 0x18(%rax),%rdi + 40a0f8: e8 13 bb ff ff callq 405c10 <__gettext_free_exp> + 40a0fd: 48 8b 04 24 mov (%rsp),%rax + 40a101: 48 8b 40 10 mov 0x10(%rax),%rax + 40a105: 48 85 c0 test %rax,%rax + 40a108: 74 25 je 40a12f + 40a10a: 8b 10 mov (%rax),%edx + 40a10c: 83 fa 02 cmp $0x2,%edx + 40a10f: 0f 84 6f 1d 00 00 je 40be84 + 40a115: 83 fa 03 cmp $0x3,%edx + 40a118: 0f 84 53 1d 00 00 je 40be71 + 40a11e: 83 fa 01 cmp $0x1,%edx + 40a121: 0f 84 70 1d 00 00 je 40be97 + 40a127: 48 89 c7 mov %rax,%rdi + 40a12a: e8 81 3c 01 00 callq 41ddb0 <__cfree> + 40a12f: 48 8b 04 24 mov (%rsp),%rax + 40a133: 48 8b 40 08 mov 0x8(%rax),%rax + 40a137: 48 85 c0 test %rax,%rax + 40a13a: 74 25 je 40a161 + 40a13c: 8b 10 mov (%rax),%edx + 40a13e: 83 fa 02 cmp $0x2,%edx + 40a141: 0f 84 76 16 00 00 je 40b7bd + 40a147: 83 fa 03 cmp $0x3,%edx + 40a14a: 0f 84 5a 16 00 00 je 40b7aa + 40a150: 83 fa 01 cmp $0x1,%edx + 40a153: 0f 84 77 16 00 00 je 40b7d0 + 40a159: 48 89 c7 mov %rax,%rdi + 40a15c: e8 4f 3c 01 00 callq 41ddb0 <__cfree> + 40a161: 48 8b 3c 24 mov (%rsp),%rdi + 40a165: e8 46 3c 01 00 callq 41ddb0 <__cfree> + 40a16a: 49 8b 47 08 mov 0x8(%r15),%rax + 40a16e: 48 85 c0 test %rax,%rax + 40a171: 48 89 04 24 mov %rax,(%rsp) + 40a175: 0f 84 5e ff ff ff je 40a0d9 + 40a17b: 8b 00 mov (%rax),%eax + 40a17d: 83 f8 02 cmp $0x2,%eax + 40a180: 0f 84 4c 09 00 00 je 40aad2 + 40a186: 83 f8 03 cmp $0x3,%eax + 40a189: 0f 84 11 09 00 00 je 40aaa0 + 40a18f: 83 f8 01 cmp $0x1,%eax + 40a192: 0f 84 6c 09 00 00 je 40ab04 + 40a198: 48 8b 3c 24 mov (%rsp),%rdi + 40a19c: e8 0f 3c 01 00 callq 41ddb0 <__cfree> + 40a1a1: 4c 89 ff mov %r15,%rdi + 40a1a4: e8 07 3c 01 00 callq 41ddb0 <__cfree> + 40a1a9: e9 58 fa ff ff jmpq 409c06 + 40a1ae: 48 8b 78 18 mov 0x18(%rax),%rdi + 40a1b2: 48 89 04 24 mov %rax,(%rsp) + 40a1b6: e8 55 ba ff ff callq 405c10 <__gettext_free_exp> + 40a1bb: 48 8b 04 24 mov (%rsp),%rax + 40a1bf: 48 8b 78 10 mov 0x10(%rax),%rdi + 40a1c3: 48 89 04 24 mov %rax,(%rsp) + 40a1c7: e8 44 ba ff ff callq 405c10 <__gettext_free_exp> + 40a1cc: 48 8b 04 24 mov (%rsp),%rax + 40a1d0: 48 8b 78 08 mov 0x8(%rax),%rdi + 40a1d4: 48 89 04 24 mov %rax,(%rsp) + 40a1d8: e8 33 ba ff ff callq 405c10 <__gettext_free_exp> + 40a1dd: 48 8b 04 24 mov (%rsp),%rax + 40a1e1: 48 89 c7 mov %rax,%rdi + 40a1e4: e8 c7 3b 01 00 callq 41ddb0 <__cfree> + 40a1e9: 49 8b 47 10 mov 0x10(%r15),%rax + 40a1ed: 48 85 c0 test %rax,%rax + 40a1f0: 74 25 je 40a217 + 40a1f2: 8b 10 mov (%rax),%edx + 40a1f4: 83 fa 02 cmp $0x2,%edx + 40a1f7: 0f 84 26 19 00 00 je 40bb23 + 40a1fd: 83 fa 03 cmp $0x3,%edx + 40a200: 0f 84 0c 19 00 00 je 40bb12 + 40a206: 83 fa 01 cmp $0x1,%edx + 40a209: 0f 84 25 19 00 00 je 40bb34 + 40a20f: 48 89 c7 mov %rax,%rdi + 40a212: e8 99 3b 01 00 callq 41ddb0 <__cfree> + 40a217: 49 8b 47 08 mov 0x8(%r15),%rax + 40a21b: 48 85 c0 test %rax,%rax + 40a21e: 48 89 04 24 mov %rax,(%rsp) + 40a222: 74 26 je 40a24a + 40a224: 8b 00 mov (%rax),%eax + 40a226: 83 f8 02 cmp $0x2,%eax + 40a229: 0f 84 cf 0f 00 00 je 40b1fe + 40a22f: 83 f8 03 cmp $0x3,%eax + 40a232: 0f 84 b9 0f 00 00 je 40b1f1 + 40a238: 83 f8 01 cmp $0x1,%eax + 40a23b: 0f 84 ef 0f 00 00 je 40b230 + 40a241: 48 8b 3c 24 mov (%rsp),%rdi + 40a245: e8 66 3b 01 00 callq 41ddb0 <__cfree> + 40a24a: 4c 89 ff mov %r15,%rdi + 40a24d: e8 5e 3b 01 00 callq 41ddb0 <__cfree> + 40a252: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 40a256: 4d 85 ff test %r15,%r15 + 40a259: 0f 84 9e fa ff ff je 409cfd + 40a25f: 41 8b 07 mov (%r15),%eax + 40a262: 83 f8 02 cmp $0x2,%eax + 40a265: 0f 84 23 04 00 00 je 40a68e + 40a26b: 83 f8 03 cmp $0x3,%eax + 40a26e: 0f 84 ec 03 00 00 je 40a660 + 40a274: 83 f8 01 cmp $0x1,%eax + 40a277: 0f 84 45 fa ff ff je 409cc2 + 40a27d: 4c 89 ff mov %r15,%rdi + 40a280: e8 2b 3b 01 00 callq 41ddb0 <__cfree> + 40a285: e9 73 fa ff ff jmpq 409cfd + 40a28a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 40a290: 4d 8b 7e 18 mov 0x18(%r14),%r15 + 40a294: 4d 85 ff test %r15,%r15 + 40a297: 74 26 je 40a2bf + 40a299: 41 8b 07 mov (%r15),%eax + 40a29c: 83 f8 02 cmp $0x2,%eax + 40a29f: 0f 84 0d 12 00 00 je 40b4b2 + 40a2a5: 83 f8 03 cmp $0x3,%eax + 40a2a8: 0f 84 fb 11 00 00 je 40b4a9 + 40a2ae: 83 f8 01 cmp $0x1,%eax + 40a2b1: 0f 84 29 12 00 00 je 40b4e0 + 40a2b7: 4c 89 ff mov %r15,%rdi + 40a2ba: e8 f1 3a 01 00 callq 41ddb0 <__cfree> + 40a2bf: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 40a2c3: 4d 85 ff test %r15,%r15 + 40a2c6: 74 26 je 40a2ee + 40a2c8: 41 8b 07 mov (%r15),%eax + 40a2cb: 83 f8 02 cmp $0x2,%eax + 40a2ce: 0f 84 9a 0c 00 00 je 40af6e + 40a2d4: 83 f8 03 cmp $0x3,%eax + 40a2d7: 0f 84 63 0c 00 00 je 40af40 + 40a2dd: 83 f8 01 cmp $0x1,%eax + 40a2e0: 0f 84 bb 0c 00 00 je 40afa1 + 40a2e6: 4c 89 ff mov %r15,%rdi + 40a2e9: e8 c2 3a 01 00 callq 41ddb0 <__cfree> + 40a2ee: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 40a2f2: 4d 85 ff test %r15,%r15 + 40a2f5: 0f 84 11 fb ff ff je 409e0c + 40a2fb: 41 8b 07 mov (%r15),%eax + 40a2fe: 83 f8 02 cmp $0x2,%eax + 40a301: 0f 84 f7 03 00 00 je 40a6fe + 40a307: 83 f8 03 cmp $0x3,%eax + 40a30a: 0f 84 c0 03 00 00 je 40a6d0 + 40a310: 83 f8 01 cmp $0x1,%eax + 40a313: 0f 84 bb 00 00 00 je 40a3d4 + 40a319: 4c 89 ff mov %r15,%rdi + 40a31c: e8 8f 3a 01 00 callq 41ddb0 <__cfree> + 40a321: e9 e6 fa ff ff jmpq 409e0c + 40a326: 48 8b 78 18 mov 0x18(%rax),%rdi + 40a32a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40a32f: e8 dc b8 ff ff callq 405c10 <__gettext_free_exp> + 40a334: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40a339: 48 8b 78 10 mov 0x10(%rax),%rdi + 40a33d: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40a342: e8 c9 b8 ff ff callq 405c10 <__gettext_free_exp> + 40a347: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40a34c: 48 8b 78 08 mov 0x8(%rax),%rdi + 40a350: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40a355: e8 b6 b8 ff ff callq 405c10 <__gettext_free_exp> + 40a35a: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40a35f: 48 89 c7 mov %rax,%rdi + 40a362: e8 49 3a 01 00 callq 41ddb0 <__cfree> + 40a367: 48 8b 04 24 mov (%rsp),%rax + 40a36b: 48 8b 40 10 mov 0x10(%rax),%rax + 40a36f: 48 85 c0 test %rax,%rax + 40a372: 74 25 je 40a399 + 40a374: 8b 10 mov (%rax),%edx + 40a376: 83 fa 02 cmp $0x2,%edx + 40a379: 0f 84 c7 1a 00 00 je 40be46 + 40a37f: 83 fa 03 cmp $0x3,%edx + 40a382: 0f 84 ab 1a 00 00 je 40be33 + 40a388: 83 fa 01 cmp $0x1,%edx + 40a38b: 0f 84 c8 1a 00 00 je 40be59 + 40a391: 48 89 c7 mov %rax,%rdi + 40a394: e8 17 3a 01 00 callq 41ddb0 <__cfree> + 40a399: 48 8b 04 24 mov (%rsp),%rax + 40a39d: 48 8b 40 08 mov 0x8(%rax),%rax + 40a3a1: 48 85 c0 test %rax,%rax + 40a3a4: 74 25 je 40a3cb + 40a3a6: 8b 10 mov (%rax),%edx + 40a3a8: 83 fa 02 cmp $0x2,%edx + 40a3ab: 0f 84 4a 14 00 00 je 40b7fb + 40a3b1: 83 fa 03 cmp $0x3,%edx + 40a3b4: 0f 84 2e 14 00 00 je 40b7e8 + 40a3ba: 83 fa 01 cmp $0x1,%edx + 40a3bd: 0f 84 4b 14 00 00 je 40b80e + 40a3c3: 48 89 c7 mov %rax,%rdi + 40a3c6: e8 e5 39 01 00 callq 41ddb0 <__cfree> + 40a3cb: 48 8b 3c 24 mov (%rsp),%rdi + 40a3cf: e8 dc 39 01 00 callq 41ddb0 <__cfree> + 40a3d4: 49 8b 47 08 mov 0x8(%r15),%rax + 40a3d8: 48 85 c0 test %rax,%rax + 40a3db: 48 89 04 24 mov %rax,(%rsp) + 40a3df: 0f 84 34 ff ff ff je 40a319 + 40a3e5: 8b 00 mov (%rax),%eax + 40a3e7: 83 f8 02 cmp $0x2,%eax + 40a3ea: 0f 84 a2 08 00 00 je 40ac92 + 40a3f0: 83 f8 03 cmp $0x3,%eax + 40a3f3: 0f 84 67 08 00 00 je 40ac60 + 40a3f9: 83 f8 01 cmp $0x1,%eax + 40a3fc: 0f 84 c2 08 00 00 je 40acc4 + 40a402: 48 8b 3c 24 mov (%rsp),%rdi + 40a406: e8 a5 39 01 00 callq 41ddb0 <__cfree> + 40a40b: 4c 89 ff mov %r15,%rdi + 40a40e: e8 9d 39 01 00 callq 41ddb0 <__cfree> + 40a413: e9 f4 f9 ff ff jmpq 409e0c + 40a418: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40a41c: e8 ef b7 ff ff callq 405c10 <__gettext_free_exp> + 40a421: 49 8b 7f 10 mov 0x10(%r15),%rdi + 40a425: e8 e6 b7 ff ff callq 405c10 <__gettext_free_exp> + 40a42a: 49 8b 7f 08 mov 0x8(%r15),%rdi + 40a42e: e8 dd b7 ff ff callq 405c10 <__gettext_free_exp> + 40a433: 4c 89 ff mov %r15,%rdi + 40a436: e8 75 39 01 00 callq 41ddb0 <__cfree> + 40a43b: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 40a43f: 4d 85 ff test %r15,%r15 + 40a442: 74 26 je 40a46a + 40a444: 41 8b 07 mov (%r15),%eax + 40a447: 83 f8 02 cmp $0x2,%eax + 40a44a: 0f 84 11 19 00 00 je 40bd61 + 40a450: 83 f8 03 cmp $0x3,%eax + 40a453: 0f 84 ff 18 00 00 je 40bd58 + 40a459: 83 f8 01 cmp $0x1,%eax + 40a45c: 0f 84 08 19 00 00 je 40bd6a + 40a462: 4c 89 ff mov %r15,%rdi + 40a465: e8 46 39 01 00 callq 41ddb0 <__cfree> + 40a46a: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 40a46e: 4d 85 ff test %r15,%r15 + 40a471: 74 26 je 40a499 + 40a473: 41 8b 07 mov (%r15),%eax + 40a476: 83 f8 02 cmp $0x2,%eax + 40a479: 0f 84 c5 0f 00 00 je 40b444 + 40a47f: 83 f8 03 cmp $0x3,%eax + 40a482: 0f 84 b3 0f 00 00 je 40b43b + 40a488: 83 f8 01 cmp $0x1,%eax + 40a48b: 0f 84 e1 0f 00 00 je 40b472 + 40a491: 4c 89 ff mov %r15,%rdi + 40a494: e8 17 39 01 00 callq 41ddb0 <__cfree> + 40a499: 4c 89 f7 mov %r14,%rdi + 40a49c: e8 0f 39 01 00 callq 41ddb0 <__cfree> + 40a4a1: 4d 8b 75 10 mov 0x10(%r13),%r14 + 40a4a5: 4d 85 f6 test %r14,%r14 + 40a4a8: 0f 84 33 f9 ff ff je 409de1 + 40a4ae: 41 8b 06 mov (%r14),%eax + 40a4b1: 83 f8 02 cmp $0x2,%eax + 40a4b4: 0f 84 25 03 00 00 je 40a7df + 40a4ba: 83 f8 03 cmp $0x3,%eax + 40a4bd: 0f 84 ed 02 00 00 je 40a7b0 + 40a4c3: 83 f8 01 cmp $0x1,%eax + 40a4c6: 0f 84 de f8 ff ff je 409daa + 40a4cc: 4c 89 f7 mov %r14,%rdi + 40a4cf: e8 dc 38 01 00 callq 41ddb0 <__cfree> + 40a4d4: e9 08 f9 ff ff jmpq 409de1 + 40a4d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40a4e0: 4d 8b 7e 18 mov 0x18(%r14),%r15 + 40a4e4: 4d 85 ff test %r15,%r15 + 40a4e7: 0f 84 65 fd ff ff je 40a252 + 40a4ed: 41 8b 07 mov (%r15),%eax + 40a4f0: 83 f8 02 cmp $0x2,%eax + 40a4f3: 0f 84 f0 fc ff ff je 40a1e9 + 40a4f9: 83 f8 03 cmp $0x3,%eax + 40a4fc: 0f 84 7e 21 00 00 je 40c680 + 40a502: 83 f8 01 cmp $0x1,%eax + 40a505: 0f 84 0c fd ff ff je 40a217 + 40a50b: 4c 89 ff mov %r15,%rdi + 40a50e: e8 9d 38 01 00 callq 41ddb0 <__cfree> + 40a513: e9 3a fd ff ff jmpq 40a252 + 40a518: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40a51f: 00 + 40a520: 4d 8b 75 18 mov 0x18(%r13),%r14 + 40a524: 4d 85 f6 test %r14,%r14 + 40a527: 74 26 je 40a54f + 40a529: 41 8b 06 mov (%r14),%eax + 40a52c: 83 f8 02 cmp $0x2,%eax + 40a52f: 0f 84 20 15 00 00 je 40ba55 + 40a535: 83 f8 03 cmp $0x3,%eax + 40a538: 0f 84 0e 15 00 00 je 40ba4c + 40a53e: 83 f8 01 cmp $0x1,%eax + 40a541: 0f 84 3d 15 00 00 je 40ba84 + 40a547: 4c 89 f7 mov %r14,%rdi + 40a54a: e8 61 38 01 00 callq 41ddb0 <__cfree> + 40a54f: 4d 8b 75 10 mov 0x10(%r13),%r14 + 40a553: 4d 85 f6 test %r14,%r14 + 40a556: 0f 84 86 f9 ff ff je 409ee2 + 40a55c: 41 8b 06 mov (%r14),%eax + 40a55f: 83 f8 02 cmp $0x2,%eax + 40a562: 0f 84 14 f9 ff ff je 409e7c + 40a568: 83 f8 03 cmp $0x3,%eax + 40a56b: 0f 84 8f 22 00 00 je 40c800 + 40a571: 83 f8 01 cmp $0x1,%eax + 40a574: 0f 84 31 f9 ff ff je 409eab + 40a57a: 4c 89 f7 mov %r14,%rdi + 40a57d: e8 2e 38 01 00 callq 41ddb0 <__cfree> + 40a582: e9 5b f9 ff ff jmpq 409ee2 + 40a587: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40a58e: 00 00 + 40a590: 4d 8b 75 18 mov 0x18(%r13),%r14 + 40a594: 4d 85 f6 test %r14,%r14 + 40a597: 0f 84 04 ff ff ff je 40a4a1 + 40a59d: 41 8b 06 mov (%r14),%eax + 40a5a0: 83 f8 02 cmp $0x2,%eax + 40a5a3: 0f 84 92 fe ff ff je 40a43b + 40a5a9: 83 f8 03 cmp $0x3,%eax + 40a5ac: 0f 84 16 22 00 00 je 40c7c8 + 40a5b2: 83 f8 01 cmp $0x1,%eax + 40a5b5: 0f 84 af fe ff ff je 40a46a + 40a5bb: 4c 89 f7 mov %r14,%rdi + 40a5be: e8 ed 37 01 00 callq 41ddb0 <__cfree> + 40a5c3: e9 d9 fe ff ff jmpq 40a4a1 + 40a5c8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40a5cf: 00 + 40a5d0: 31 c0 xor %eax,%eax + 40a5d2: 48 83 c4 18 add $0x18,%rsp + 40a5d6: 5b pop %rbx + 40a5d7: 5d pop %rbp + 40a5d8: 41 5c pop %r12 + 40a5da: 41 5d pop %r13 + 40a5dc: 41 5e pop %r14 + 40a5de: 41 5f pop %r15 + 40a5e0: c3 retq + 40a5e1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40a5e8: 48 8b 50 18 mov 0x18(%rax),%rdx + 40a5ec: 48 85 d2 test %rdx,%rdx + 40a5ef: 74 2d je 40a61e + 40a5f1: 8b 0a mov (%rdx),%ecx + 40a5f3: 83 f9 02 cmp $0x2,%ecx + 40a5f6: 0f 84 db 14 00 00 je 40bad7 + 40a5fc: 83 f9 03 cmp $0x3,%ecx + 40a5ff: 0f 84 b7 14 00 00 je 40babc + 40a605: 83 f9 01 cmp $0x1,%ecx + 40a608: 0f 84 e4 14 00 00 je 40baf2 + 40a60e: 48 89 d7 mov %rdx,%rdi + 40a611: 48 89 04 24 mov %rax,(%rsp) + 40a615: e8 96 37 01 00 callq 41ddb0 <__cfree> + 40a61a: 48 8b 04 24 mov (%rsp),%rax + 40a61e: 48 8b 50 10 mov 0x10(%rax),%rdx + 40a622: 48 85 d2 test %rdx,%rdx + 40a625: 0f 84 fe f9 ff ff je 40a029 + 40a62b: 8b 0a mov (%rdx),%ecx + 40a62d: 83 f9 02 cmp $0x2,%ecx + 40a630: 0f 84 ad f9 ff ff je 409fe3 + 40a636: 83 f9 03 cmp $0x3,%ecx + 40a639: 0f 84 89 f9 ff ff je 409fc8 + 40a63f: 83 f9 01 cmp $0x1,%ecx + 40a642: 0f 84 b6 f9 ff ff je 409ffe + 40a648: 48 89 d7 mov %rdx,%rdi + 40a64b: 48 89 04 24 mov %rax,(%rsp) + 40a64f: e8 5c 37 01 00 callq 41ddb0 <__cfree> + 40a654: 48 8b 04 24 mov (%rsp),%rax + 40a658: e9 cc f9 ff ff jmpq 40a029 + 40a65d: 0f 1f 00 nopl (%rax) + 40a660: 49 8b 47 18 mov 0x18(%r15),%rax + 40a664: 48 85 c0 test %rax,%rax + 40a667: 74 25 je 40a68e + 40a669: 8b 10 mov (%rax),%edx + 40a66b: 83 fa 02 cmp $0x2,%edx + 40a66e: 0f 84 10 15 00 00 je 40bb84 + 40a674: 83 fa 03 cmp $0x3,%edx + 40a677: 0f 84 f6 14 00 00 je 40bb73 + 40a67d: 83 fa 01 cmp $0x1,%edx + 40a680: 0f 84 0f 15 00 00 je 40bb95 + 40a686: 48 89 c7 mov %rax,%rdi + 40a689: e8 22 37 01 00 callq 41ddb0 <__cfree> + 40a68e: 49 8b 47 10 mov 0x10(%r15),%rax + 40a692: 48 85 c0 test %rax,%rax + 40a695: 48 89 04 24 mov %rax,(%rsp) + 40a699: 0f 84 23 f6 ff ff je 409cc2 + 40a69f: 8b 00 mov (%rax),%eax + 40a6a1: 83 f8 02 cmp $0x2,%eax + 40a6a4: 0f 84 ab f5 ff ff je 409c55 + 40a6aa: 83 f8 03 cmp $0x3,%eax + 40a6ad: 0f 84 95 f5 ff ff je 409c48 + 40a6b3: 83 f8 01 cmp $0x1,%eax + 40a6b6: 0f 84 cb f5 ff ff je 409c87 + 40a6bc: 48 8b 3c 24 mov (%rsp),%rdi + 40a6c0: e8 eb 36 01 00 callq 41ddb0 <__cfree> + 40a6c5: e9 f8 f5 ff ff jmpq 409cc2 + 40a6ca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 40a6d0: 49 8b 47 18 mov 0x18(%r15),%rax + 40a6d4: 48 85 c0 test %rax,%rax + 40a6d7: 74 25 je 40a6fe + 40a6d9: 8b 10 mov (%rax),%edx + 40a6db: 83 fa 02 cmp $0x2,%edx + 40a6de: 0f 84 24 16 00 00 je 40bd08 + 40a6e4: 83 fa 03 cmp $0x3,%edx + 40a6e7: 0f 84 0a 16 00 00 je 40bcf7 + 40a6ed: 83 fa 01 cmp $0x1,%edx + 40a6f0: 0f 84 23 16 00 00 je 40bd19 + 40a6f6: 48 89 c7 mov %rax,%rdi + 40a6f9: e8 b2 36 01 00 callq 41ddb0 <__cfree> + 40a6fe: 49 8b 47 10 mov 0x10(%r15),%rax + 40a702: 48 85 c0 test %rax,%rax + 40a705: 48 89 04 24 mov %rax,(%rsp) + 40a709: 0f 84 c5 fc ff ff je 40a3d4 + 40a70f: 8b 00 mov (%rax),%eax + 40a711: 83 f8 02 cmp $0x2,%eax + 40a714: 0f 84 4d fc ff ff je 40a367 + 40a71a: 83 f8 03 cmp $0x3,%eax + 40a71d: 0f 84 ed 28 00 00 je 40d010 + 40a723: 83 f8 01 cmp $0x1,%eax + 40a726: 0f 84 6d fc ff ff je 40a399 + 40a72c: 48 8b 3c 24 mov (%rsp),%rdi + 40a730: e8 7b 36 01 00 callq 41ddb0 <__cfree> + 40a735: e9 9a fc ff ff jmpq 40a3d4 + 40a73a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 40a740: 49 8b 47 18 mov 0x18(%r15),%rax + 40a744: 48 85 c0 test %rax,%rax + 40a747: 74 25 je 40a76e + 40a749: 8b 10 mov (%rax),%edx + 40a74b: 83 fa 02 cmp $0x2,%edx + 40a74e: 0f 84 53 15 00 00 je 40bca7 + 40a754: 83 fa 03 cmp $0x3,%edx + 40a757: 0f 84 39 15 00 00 je 40bc96 + 40a75d: 83 fa 01 cmp $0x1,%edx + 40a760: 0f 84 52 15 00 00 je 40bcb8 + 40a766: 48 89 c7 mov %rax,%rdi + 40a769: e8 42 36 01 00 callq 41ddb0 <__cfree> + 40a76e: 49 8b 47 10 mov 0x10(%r15),%rax + 40a772: 48 85 c0 test %rax,%rax + 40a775: 48 89 04 24 mov %rax,(%rsp) + 40a779: 0f 84 eb f9 ff ff je 40a16a + 40a77f: 8b 00 mov (%rax),%eax + 40a781: 83 f8 02 cmp $0x2,%eax + 40a784: 0f 84 73 f9 ff ff je 40a0fd + 40a78a: 83 f8 03 cmp $0x3,%eax + 40a78d: 0f 84 5d f9 ff ff je 40a0f0 + 40a793: 83 f8 01 cmp $0x1,%eax + 40a796: 0f 84 93 f9 ff ff je 40a12f + 40a79c: 48 8b 3c 24 mov (%rsp),%rdi + 40a7a0: e8 0b 36 01 00 callq 41ddb0 <__cfree> + 40a7a5: e9 c0 f9 ff ff jmpq 40a16a + 40a7aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 40a7b0: 4d 8b 7e 18 mov 0x18(%r14),%r15 + 40a7b4: 4d 85 ff test %r15,%r15 + 40a7b7: 74 26 je 40a7df + 40a7b9: 41 8b 07 mov (%r15),%eax + 40a7bc: 83 f8 02 cmp $0x2,%eax + 40a7bf: 0f 84 2e 16 00 00 je 40bdf3 + 40a7c5: 83 f8 03 cmp $0x3,%eax + 40a7c8: 0f 84 1c 16 00 00 je 40bdea + 40a7ce: 83 f8 01 cmp $0x1,%eax + 40a7d1: 0f 84 25 16 00 00 je 40bdfc + 40a7d7: 4c 89 ff mov %r15,%rdi + 40a7da: e8 d1 35 01 00 callq 41ddb0 <__cfree> + 40a7df: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 40a7e3: 4d 85 ff test %r15,%r15 + 40a7e6: 0f 84 be f5 ff ff je 409daa + 40a7ec: 41 8b 07 mov (%r15),%eax + 40a7ef: 83 f8 02 cmp $0x2,%eax + 40a7f2: 0f 84 49 f5 ff ff je 409d41 + 40a7f8: 83 f8 03 cmp $0x3,%eax + 40a7fb: 0f 84 37 f5 ff ff je 409d38 + 40a801: 83 f8 01 cmp $0x1,%eax + 40a804: 0f 84 65 f5 ff ff je 409d6f + 40a80a: 4c 89 ff mov %r15,%rdi + 40a80d: e8 9e 35 01 00 callq 41ddb0 <__cfree> + 40a812: e9 93 f5 ff ff jmpq 409daa + 40a817: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40a81e: 00 00 + 40a820: 4d 8b 7e 18 mov 0x18(%r14),%r15 + 40a824: 4d 85 ff test %r15,%r15 + 40a827: 74 26 je 40a84f + 40a829: 41 8b 07 mov (%r15),%eax + 40a82c: 83 f8 02 cmp $0x2,%eax + 40a82f: 0f 84 ab 1d 00 00 je 40c5e0 + 40a835: 83 f8 03 cmp $0x3,%eax + 40a838: 0f 84 99 1d 00 00 je 40c5d7 + 40a83e: 83 f8 01 cmp $0x1,%eax + 40a841: 0f 84 a2 1d 00 00 je 40c5e9 + 40a847: 4c 89 ff mov %r15,%rdi + 40a84a: e8 61 35 01 00 callq 41ddb0 <__cfree> + 40a84f: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 40a853: 4d 85 ff test %r15,%r15 + 40a856: 74 26 je 40a87e + 40a858: 41 8b 07 mov (%r15),%eax + 40a85b: 83 f8 02 cmp $0x2,%eax + 40a85e: 0f 84 bc 0c 00 00 je 40b520 + 40a864: 83 f8 03 cmp $0x3,%eax + 40a867: 0f 84 aa 0c 00 00 je 40b517 + 40a86d: 83 f8 01 cmp $0x1,%eax + 40a870: 0f 84 d8 0c 00 00 je 40b54e + 40a876: 4c 89 ff mov %r15,%rdi + 40a879: e8 32 35 01 00 callq 41ddb0 <__cfree> + 40a87e: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 40a882: 4d 85 ff test %r15,%r15 + 40a885: 0f 84 82 f6 ff ff je 409f0d + 40a88b: 41 8b 07 mov (%r15),%eax + 40a88e: 83 f8 02 cmp $0x2,%eax + 40a891: 74 56 je 40a8e9 + 40a893: 83 f8 03 cmp $0x3,%eax + 40a896: 0f 84 b4 1d 00 00 je 40c650 + 40a89c: 83 f8 01 cmp $0x1,%eax + 40a89f: 74 76 je 40a917 + 40a8a1: 4c 89 ff mov %r15,%rdi + 40a8a4: e8 07 35 01 00 callq 41ddb0 <__cfree> + 40a8a9: e9 5f f6 ff ff jmpq 409f0d + 40a8ae: 48 8b 78 18 mov 0x18(%rax),%rdi + 40a8b2: 48 89 04 24 mov %rax,(%rsp) + 40a8b6: e8 55 b3 ff ff callq 405c10 <__gettext_free_exp> + 40a8bb: 48 8b 04 24 mov (%rsp),%rax + 40a8bf: 48 8b 78 10 mov 0x10(%rax),%rdi + 40a8c3: 48 89 04 24 mov %rax,(%rsp) + 40a8c7: e8 44 b3 ff ff callq 405c10 <__gettext_free_exp> + 40a8cc: 48 8b 04 24 mov (%rsp),%rax + 40a8d0: 48 8b 78 08 mov 0x8(%rax),%rdi + 40a8d4: 48 89 04 24 mov %rax,(%rsp) + 40a8d8: e8 33 b3 ff ff callq 405c10 <__gettext_free_exp> + 40a8dd: 48 8b 04 24 mov (%rsp),%rax + 40a8e1: 48 89 c7 mov %rax,%rdi + 40a8e4: e8 c7 34 01 00 callq 41ddb0 <__cfree> + 40a8e9: 49 8b 47 10 mov 0x10(%r15),%rax + 40a8ed: 48 85 c0 test %rax,%rax + 40a8f0: 74 25 je 40a917 + 40a8f2: 8b 10 mov (%rax),%edx + 40a8f4: 83 fa 02 cmp $0x2,%edx + 40a8f7: 0f 84 e8 12 00 00 je 40bbe5 + 40a8fd: 83 fa 03 cmp $0x3,%edx + 40a900: 0f 84 ce 12 00 00 je 40bbd4 + 40a906: 83 fa 01 cmp $0x1,%edx + 40a909: 0f 84 e7 12 00 00 je 40bbf6 + 40a90f: 48 89 c7 mov %rax,%rdi + 40a912: e8 99 34 01 00 callq 41ddb0 <__cfree> + 40a917: 49 8b 47 08 mov 0x8(%r15),%rax + 40a91b: 48 85 c0 test %rax,%rax + 40a91e: 48 89 04 24 mov %rax,(%rsp) + 40a922: 0f 84 79 ff ff ff je 40a8a1 + 40a928: 8b 00 mov (%rax),%eax + 40a92a: 83 f8 02 cmp $0x2,%eax + 40a92d: 0f 84 bf 09 00 00 je 40b2f2 + 40a933: 83 f8 03 cmp $0x3,%eax + 40a936: 0f 84 a9 09 00 00 je 40b2e5 + 40a93c: 83 f8 01 cmp $0x1,%eax + 40a93f: 0f 84 df 09 00 00 je 40b324 + 40a945: 48 8b 3c 24 mov (%rsp),%rdi + 40a949: e8 62 34 01 00 callq 41ddb0 <__cfree> + 40a94e: 4c 89 ff mov %r15,%rdi + 40a951: e8 5a 34 01 00 callq 41ddb0 <__cfree> + 40a956: e9 b2 f5 ff ff jmpq 409f0d + 40a95b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40a960: 4d 8b 7e 18 mov 0x18(%r14),%r15 + 40a964: 4d 85 ff test %r15,%r15 + 40a967: 74 26 je 40a98f + 40a969: 41 8b 07 mov (%r15),%eax + 40a96c: 83 f8 02 cmp $0x2,%eax + 40a96f: 0f 84 73 1d 00 00 je 40c6e8 + 40a975: 83 f8 03 cmp $0x3,%eax + 40a978: 0f 84 61 1d 00 00 je 40c6df + 40a97e: 83 f8 01 cmp $0x1,%eax + 40a981: 0f 84 6a 1d 00 00 je 40c6f1 + 40a987: 4c 89 ff mov %r15,%rdi + 40a98a: e8 21 34 01 00 callq 41ddb0 <__cfree> + 40a98f: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 40a993: 4d 85 ff test %r15,%r15 + 40a996: 74 26 je 40a9be + 40a998: 41 8b 07 mov (%r15),%eax + 40a99b: 83 f8 02 cmp $0x2,%eax + 40a99e: 0f 84 c4 09 00 00 je 40b368 + 40a9a4: 83 f8 03 cmp $0x3,%eax + 40a9a7: 0f 84 b2 09 00 00 je 40b35f + 40a9ad: 83 f8 01 cmp $0x1,%eax + 40a9b0: 0f 84 e0 09 00 00 je 40b396 + 40a9b6: 4c 89 ff mov %r15,%rdi + 40a9b9: e8 f2 33 01 00 callq 41ddb0 <__cfree> + 40a9be: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 40a9c2: 4d 85 ff test %r15,%r15 + 40a9c5: 0f 84 0c f2 ff ff je 409bd7 + 40a9cb: 41 8b 07 mov (%r15),%eax + 40a9ce: 83 f8 02 cmp $0x2,%eax + 40a9d1: 74 56 je 40aa29 + 40a9d3: 83 f8 03 cmp $0x3,%eax + 40a9d6: 0f 84 d4 1c 00 00 je 40c6b0 + 40a9dc: 83 f8 01 cmp $0x1,%eax + 40a9df: 74 76 je 40aa57 + 40a9e1: 4c 89 ff mov %r15,%rdi + 40a9e4: e8 c7 33 01 00 callq 41ddb0 <__cfree> + 40a9e9: e9 e9 f1 ff ff jmpq 409bd7 + 40a9ee: 48 8b 78 18 mov 0x18(%rax),%rdi + 40a9f2: 48 89 04 24 mov %rax,(%rsp) + 40a9f6: e8 15 b2 ff ff callq 405c10 <__gettext_free_exp> + 40a9fb: 48 8b 04 24 mov (%rsp),%rax + 40a9ff: 48 8b 78 10 mov 0x10(%rax),%rdi + 40aa03: 48 89 04 24 mov %rax,(%rsp) + 40aa07: e8 04 b2 ff ff callq 405c10 <__gettext_free_exp> + 40aa0c: 48 8b 04 24 mov (%rsp),%rax + 40aa10: 48 8b 78 08 mov 0x8(%rax),%rdi + 40aa14: 48 89 04 24 mov %rax,(%rsp) + 40aa18: e8 f3 b1 ff ff callq 405c10 <__gettext_free_exp> + 40aa1d: 48 8b 04 24 mov (%rsp),%rax + 40aa21: 48 89 c7 mov %rax,%rdi + 40aa24: e8 87 33 01 00 callq 41ddb0 <__cfree> + 40aa29: 49 8b 47 10 mov 0x10(%r15),%rax + 40aa2d: 48 85 c0 test %rax,%rax + 40aa30: 74 25 je 40aa57 + 40aa32: 8b 10 mov (%rax),%edx + 40aa34: 83 fa 02 cmp $0x2,%edx + 40aa37: 0f 84 09 12 00 00 je 40bc46 + 40aa3d: 83 fa 03 cmp $0x3,%edx + 40aa40: 0f 84 ef 11 00 00 je 40bc35 + 40aa46: 83 fa 01 cmp $0x1,%edx + 40aa49: 0f 84 08 12 00 00 je 40bc57 + 40aa4f: 48 89 c7 mov %rax,%rdi + 40aa52: e8 59 33 01 00 callq 41ddb0 <__cfree> + 40aa57: 49 8b 47 08 mov 0x8(%r15),%rax + 40aa5b: 48 85 c0 test %rax,%rax + 40aa5e: 48 89 04 24 mov %rax,(%rsp) + 40aa62: 0f 84 79 ff ff ff je 40a9e1 + 40aa68: 8b 00 mov (%rax),%eax + 40aa6a: 83 f8 02 cmp $0x2,%eax + 40aa6d: 0f 84 05 08 00 00 je 40b278 + 40aa73: 83 f8 03 cmp $0x3,%eax + 40aa76: 0f 84 ef 07 00 00 je 40b26b + 40aa7c: 83 f8 01 cmp $0x1,%eax + 40aa7f: 0f 84 25 08 00 00 je 40b2aa + 40aa85: 48 8b 3c 24 mov (%rsp),%rdi + 40aa89: e8 22 33 01 00 callq 41ddb0 <__cfree> + 40aa8e: 4c 89 ff mov %r15,%rdi + 40aa91: e8 1a 33 01 00 callq 41ddb0 <__cfree> + 40aa96: e9 3c f1 ff ff jmpq 409bd7 + 40aa9b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40aaa0: 48 8b 04 24 mov (%rsp),%rax + 40aaa4: 48 8b 40 18 mov 0x18(%rax),%rax + 40aaa8: 48 85 c0 test %rax,%rax + 40aaab: 74 25 je 40aad2 + 40aaad: 8b 10 mov (%rax),%edx + 40aaaf: 83 fa 02 cmp $0x2,%edx + 40aab2: 0f 84 81 22 00 00 je 40cd39 + 40aab8: 83 fa 03 cmp $0x3,%edx + 40aabb: 0f 84 65 22 00 00 je 40cd26 + 40aac1: 83 fa 01 cmp $0x1,%edx + 40aac4: 0f 84 82 22 00 00 je 40cd4c + 40aaca: 48 89 c7 mov %rax,%rdi + 40aacd: e8 de 32 01 00 callq 41ddb0 <__cfree> + 40aad2: 48 8b 04 24 mov (%rsp),%rax + 40aad6: 48 8b 40 10 mov 0x10(%rax),%rax + 40aada: 48 85 c0 test %rax,%rax + 40aadd: 74 25 je 40ab04 + 40aadf: 8b 10 mov (%rax),%edx + 40aae1: 83 fa 02 cmp $0x2,%edx + 40aae4: 0f 84 4f 0d 00 00 je 40b839 + 40aaea: 83 fa 03 cmp $0x3,%edx + 40aaed: 0f 84 33 0d 00 00 je 40b826 + 40aaf3: 83 fa 01 cmp $0x1,%edx + 40aaf6: 0f 84 50 0d 00 00 je 40b84c + 40aafc: 48 89 c7 mov %rax,%rdi + 40aaff: e8 ac 32 01 00 callq 41ddb0 <__cfree> + 40ab04: 48 8b 04 24 mov (%rsp),%rax + 40ab08: 48 8b 40 08 mov 0x8(%rax),%rax + 40ab0c: 48 85 c0 test %rax,%rax + 40ab0f: 0f 84 83 f6 ff ff je 40a198 + 40ab15: 8b 10 mov (%rax),%edx + 40ab17: 83 fa 02 cmp $0x2,%edx + 40ab1a: 74 2f je 40ab4b + 40ab1c: 83 fa 03 cmp $0x3,%edx + 40ab1f: 74 17 je 40ab38 + 40ab21: 83 fa 01 cmp $0x1,%edx + 40ab24: 74 38 je 40ab5e + 40ab26: 48 89 c7 mov %rax,%rdi + 40ab29: e8 82 32 01 00 callq 41ddb0 <__cfree> + 40ab2e: e9 65 f6 ff ff jmpq 40a198 + 40ab33: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40ab38: 48 8b 78 18 mov 0x18(%rax),%rdi + 40ab3c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ab41: e8 ca b0 ff ff callq 405c10 <__gettext_free_exp> + 40ab46: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ab4b: 48 8b 78 10 mov 0x10(%rax),%rdi + 40ab4f: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ab54: e8 b7 b0 ff ff callq 405c10 <__gettext_free_exp> + 40ab59: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ab5e: 48 8b 78 08 mov 0x8(%rax),%rdi + 40ab62: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ab67: e8 a4 b0 ff ff callq 405c10 <__gettext_free_exp> + 40ab6c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ab71: 48 89 c7 mov %rax,%rdi + 40ab74: e8 37 32 01 00 callq 41ddb0 <__cfree> + 40ab79: e9 1a f6 ff ff jmpq 40a198 + 40ab7e: 66 90 xchg %ax,%ax + 40ab80: 48 8b 04 24 mov (%rsp),%rax + 40ab84: 48 8b 40 18 mov 0x18(%rax),%rax + 40ab88: 48 85 c0 test %rax,%rax + 40ab8b: 74 25 je 40abb2 + 40ab8d: 8b 10 mov (%rax),%edx + 40ab8f: 83 fa 02 cmp $0x2,%edx + 40ab92: 0f 84 39 1f 00 00 je 40cad1 + 40ab98: 83 fa 03 cmp $0x3,%edx + 40ab9b: 0f 84 1d 1f 00 00 je 40cabe + 40aba1: 83 fa 01 cmp $0x1,%edx + 40aba4: 0f 84 3a 1f 00 00 je 40cae4 + 40abaa: 48 89 c7 mov %rax,%rdi + 40abad: e8 fe 31 01 00 callq 41ddb0 <__cfree> + 40abb2: 48 8b 04 24 mov (%rsp),%rax + 40abb6: 48 8b 40 10 mov 0x10(%rax),%rax + 40abba: 48 85 c0 test %rax,%rax + 40abbd: 74 25 je 40abe4 + 40abbf: 8b 10 mov (%rax),%edx + 40abc1: 83 fa 02 cmp $0x2,%edx + 40abc4: 0f 84 b5 0b 00 00 je 40b77f + 40abca: 83 fa 03 cmp $0x3,%edx + 40abcd: 0f 84 99 0b 00 00 je 40b76c + 40abd3: 83 fa 01 cmp $0x1,%edx + 40abd6: 0f 84 b6 0b 00 00 je 40b792 + 40abdc: 48 89 c7 mov %rax,%rdi + 40abdf: e8 cc 31 01 00 callq 41ddb0 <__cfree> + 40abe4: 48 8b 04 24 mov (%rsp),%rax + 40abe8: 48 8b 40 08 mov 0x8(%rax),%rax + 40abec: 48 85 c0 test %rax,%rax + 40abef: 0f 84 90 f3 ff ff je 409f85 + 40abf5: 8b 10 mov (%rax),%edx + 40abf7: 83 fa 02 cmp $0x2,%edx + 40abfa: 74 2f je 40ac2b + 40abfc: 83 fa 03 cmp $0x3,%edx + 40abff: 74 17 je 40ac18 + 40ac01: 83 fa 01 cmp $0x1,%edx + 40ac04: 74 38 je 40ac3e + 40ac06: 48 89 c7 mov %rax,%rdi + 40ac09: e8 a2 31 01 00 callq 41ddb0 <__cfree> + 40ac0e: e9 72 f3 ff ff jmpq 409f85 + 40ac13: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40ac18: 48 8b 78 18 mov 0x18(%rax),%rdi + 40ac1c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ac21: e8 ea af ff ff callq 405c10 <__gettext_free_exp> + 40ac26: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ac2b: 48 8b 78 10 mov 0x10(%rax),%rdi + 40ac2f: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ac34: e8 d7 af ff ff callq 405c10 <__gettext_free_exp> + 40ac39: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ac3e: 48 8b 78 08 mov 0x8(%rax),%rdi + 40ac42: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ac47: e8 c4 af ff ff callq 405c10 <__gettext_free_exp> + 40ac4c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ac51: 48 89 c7 mov %rax,%rdi + 40ac54: e8 57 31 01 00 callq 41ddb0 <__cfree> + 40ac59: e9 27 f3 ff ff jmpq 409f85 + 40ac5e: 66 90 xchg %ax,%ax + 40ac60: 48 8b 04 24 mov (%rsp),%rax + 40ac64: 48 8b 40 18 mov 0x18(%rax),%rax + 40ac68: 48 85 c0 test %rax,%rax + 40ac6b: 74 25 je 40ac92 + 40ac6d: 8b 10 mov (%rax),%edx + 40ac6f: 83 fa 02 cmp $0x2,%edx + 40ac72: 0f 84 1b 1e 00 00 je 40ca93 + 40ac78: 83 fa 03 cmp $0x3,%edx + 40ac7b: 0f 84 ff 1d 00 00 je 40ca80 + 40ac81: 83 fa 01 cmp $0x1,%edx + 40ac84: 0f 84 1c 1e 00 00 je 40caa6 + 40ac8a: 48 89 c7 mov %rax,%rdi + 40ac8d: e8 1e 31 01 00 callq 41ddb0 <__cfree> + 40ac92: 48 8b 04 24 mov (%rsp),%rax + 40ac96: 48 8b 40 10 mov 0x10(%rax),%rax + 40ac9a: 48 85 c0 test %rax,%rax + 40ac9d: 74 25 je 40acc4 + 40ac9f: 8b 10 mov (%rax),%edx + 40aca1: 83 fa 02 cmp $0x2,%edx + 40aca4: 0f 84 97 0a 00 00 je 40b741 + 40acaa: 83 fa 03 cmp $0x3,%edx + 40acad: 0f 84 7b 0a 00 00 je 40b72e + 40acb3: 83 fa 01 cmp $0x1,%edx + 40acb6: 0f 84 98 0a 00 00 je 40b754 + 40acbc: 48 89 c7 mov %rax,%rdi + 40acbf: e8 ec 30 01 00 callq 41ddb0 <__cfree> + 40acc4: 48 8b 04 24 mov (%rsp),%rax + 40acc8: 48 8b 40 08 mov 0x8(%rax),%rax + 40accc: 48 85 c0 test %rax,%rax + 40accf: 0f 84 2d f7 ff ff je 40a402 + 40acd5: 8b 10 mov (%rax),%edx + 40acd7: 83 fa 02 cmp $0x2,%edx + 40acda: 74 2f je 40ad0b + 40acdc: 83 fa 03 cmp $0x3,%edx + 40acdf: 74 17 je 40acf8 + 40ace1: 83 fa 01 cmp $0x1,%edx + 40ace4: 74 38 je 40ad1e + 40ace6: 48 89 c7 mov %rax,%rdi + 40ace9: e8 c2 30 01 00 callq 41ddb0 <__cfree> + 40acee: e9 0f f7 ff ff jmpq 40a402 + 40acf3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40acf8: 48 8b 78 18 mov 0x18(%rax),%rdi + 40acfc: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ad01: e8 0a af ff ff callq 405c10 <__gettext_free_exp> + 40ad06: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ad0b: 48 8b 78 10 mov 0x10(%rax),%rdi + 40ad0f: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ad14: e8 f7 ae ff ff callq 405c10 <__gettext_free_exp> + 40ad19: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ad1e: 48 8b 78 08 mov 0x8(%rax),%rdi + 40ad22: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ad27: e8 e4 ae ff ff callq 405c10 <__gettext_free_exp> + 40ad2c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ad31: 48 89 c7 mov %rax,%rdi + 40ad34: e8 77 30 01 00 callq 41ddb0 <__cfree> + 40ad39: e9 c4 f6 ff ff jmpq 40a402 + 40ad3e: 66 90 xchg %ax,%ax + 40ad40: 48 8b 04 24 mov (%rsp),%rax + 40ad44: 48 8b 40 18 mov 0x18(%rax),%rax + 40ad48: 48 85 c0 test %rax,%rax + 40ad4b: 74 25 je 40ad72 + 40ad4d: 8b 10 mov (%rax),%edx + 40ad4f: 83 fa 02 cmp $0x2,%edx + 40ad52: 0f 84 2b 1c 00 00 je 40c983 + 40ad58: 83 fa 03 cmp $0x3,%edx + 40ad5b: 0f 84 0f 1c 00 00 je 40c970 + 40ad61: 83 fa 01 cmp $0x1,%edx + 40ad64: 0f 84 2c 1c 00 00 je 40c996 + 40ad6a: 48 89 c7 mov %rax,%rdi + 40ad6d: e8 3e 30 01 00 callq 41ddb0 <__cfree> + 40ad72: 48 8b 04 24 mov (%rsp),%rax + 40ad76: 48 8b 40 10 mov 0x10(%rax),%rax + 40ad7a: 48 85 c0 test %rax,%rax + 40ad7d: 74 25 je 40ada4 + 40ad7f: 8b 10 mov (%rax),%edx + 40ad81: 83 fa 02 cmp $0x2,%edx + 40ad84: 0f 84 79 09 00 00 je 40b703 + 40ad8a: 83 fa 03 cmp $0x3,%edx + 40ad8d: 0f 84 5d 09 00 00 je 40b6f0 + 40ad93: 83 fa 01 cmp $0x1,%edx + 40ad96: 0f 84 7a 09 00 00 je 40b716 + 40ad9c: 48 89 c7 mov %rax,%rdi + 40ad9f: e8 0c 30 01 00 callq 41ddb0 <__cfree> + 40ada4: 48 8b 04 24 mov (%rsp),%rax + 40ada8: 48 8b 40 08 mov 0x8(%rax),%rax + 40adac: 48 85 c0 test %rax,%rax + 40adaf: 0f 84 37 ef ff ff je 409cec + 40adb5: 8b 10 mov (%rax),%edx + 40adb7: 83 fa 02 cmp $0x2,%edx + 40adba: 74 2f je 40adeb + 40adbc: 83 fa 03 cmp $0x3,%edx + 40adbf: 74 17 je 40add8 + 40adc1: 83 fa 01 cmp $0x1,%edx + 40adc4: 74 38 je 40adfe + 40adc6: 48 89 c7 mov %rax,%rdi + 40adc9: e8 e2 2f 01 00 callq 41ddb0 <__cfree> + 40adce: e9 19 ef ff ff jmpq 409cec + 40add3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40add8: 48 8b 78 18 mov 0x18(%rax),%rdi + 40addc: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ade1: e8 2a ae ff ff callq 405c10 <__gettext_free_exp> + 40ade6: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40adeb: 48 8b 78 10 mov 0x10(%rax),%rdi + 40adef: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40adf4: e8 17 ae ff ff callq 405c10 <__gettext_free_exp> + 40adf9: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40adfe: 48 8b 78 08 mov 0x8(%rax),%rdi + 40ae02: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ae07: e8 04 ae ff ff callq 405c10 <__gettext_free_exp> + 40ae0c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ae11: 48 89 c7 mov %rax,%rdi + 40ae14: e8 97 2f 01 00 callq 41ddb0 <__cfree> + 40ae19: e9 ce ee ff ff jmpq 409cec + 40ae1e: 66 90 xchg %ax,%ax + 40ae20: 49 8b 47 18 mov 0x18(%r15),%rax + 40ae24: 48 85 c0 test %rax,%rax + 40ae27: 74 25 je 40ae4e + 40ae29: 8b 10 mov (%rax),%edx + 40ae2b: 83 fa 02 cmp $0x2,%edx + 40ae2e: 0f 84 20 22 00 00 je 40d054 + 40ae34: 83 fa 03 cmp $0x3,%edx + 40ae37: 0f 84 06 22 00 00 je 40d043 + 40ae3d: 83 fa 01 cmp $0x1,%edx + 40ae40: 0f 84 1f 22 00 00 je 40d065 + 40ae46: 48 89 c7 mov %rax,%rdi + 40ae49: e8 62 2f 01 00 callq 41ddb0 <__cfree> + 40ae4e: 49 8b 47 10 mov 0x10(%r15),%rax + 40ae52: 48 85 c0 test %rax,%rax + 40ae55: 48 89 04 24 mov %rax,(%rsp) + 40ae59: 74 26 je 40ae81 + 40ae5b: 8b 00 mov (%rax),%eax + 40ae5d: 83 f8 02 cmp $0x2,%eax + 40ae60: 0f 84 ff 0a 00 00 je 40b965 + 40ae66: 83 f8 03 cmp $0x3,%eax + 40ae69: 0f 84 e9 0a 00 00 je 40b958 + 40ae6f: 83 f8 01 cmp $0x1,%eax + 40ae72: 0f 84 1f 0b 00 00 je 40b997 + 40ae78: 48 8b 3c 24 mov (%rsp),%rdi + 40ae7c: e8 2f 2f 01 00 callq 41ddb0 <__cfree> + 40ae81: 49 8b 47 08 mov 0x8(%r15),%rax + 40ae85: 48 85 c0 test %rax,%rax + 40ae88: 48 89 04 24 mov %rax,(%rsp) + 40ae8c: 0f 84 14 f2 ff ff je 40a0a6 + 40ae92: 8b 00 mov (%rax),%eax + 40ae94: 83 f8 02 cmp $0x2,%eax + 40ae97: 74 2c je 40aec5 + 40ae99: 83 f8 03 cmp $0x3,%eax + 40ae9c: 74 1a je 40aeb8 + 40ae9e: 83 f8 01 cmp $0x1,%eax + 40aea1: 74 54 je 40aef7 + 40aea3: 48 8b 3c 24 mov (%rsp),%rdi + 40aea7: e8 04 2f 01 00 callq 41ddb0 <__cfree> + 40aeac: e9 f5 f1 ff ff jmpq 40a0a6 + 40aeb1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40aeb8: 48 8b 04 24 mov (%rsp),%rax + 40aebc: 48 8b 78 18 mov 0x18(%rax),%rdi + 40aec0: e8 4b ad ff ff callq 405c10 <__gettext_free_exp> + 40aec5: 48 8b 04 24 mov (%rsp),%rax + 40aec9: 48 8b 40 10 mov 0x10(%rax),%rax + 40aecd: 48 85 c0 test %rax,%rax + 40aed0: 74 25 je 40aef7 + 40aed2: 8b 10 mov (%rax),%edx + 40aed4: 83 fa 02 cmp $0x2,%edx + 40aed7: 0f 84 e5 0f 00 00 je 40bec2 + 40aedd: 83 fa 03 cmp $0x3,%edx + 40aee0: 0f 84 c9 0f 00 00 je 40beaf + 40aee6: 83 fa 01 cmp $0x1,%edx + 40aee9: 0f 84 e6 0f 00 00 je 40bed5 + 40aeef: 48 89 c7 mov %rax,%rdi + 40aef2: e8 b9 2e 01 00 callq 41ddb0 <__cfree> + 40aef7: 48 8b 04 24 mov (%rsp),%rax + 40aefb: 48 8b 40 08 mov 0x8(%rax),%rax + 40aeff: 48 85 c0 test %rax,%rax + 40af02: 74 9f je 40aea3 + 40af04: 8b 10 mov (%rax),%edx + 40af06: 83 fa 02 cmp $0x2,%edx + 40af09: 0f 84 3a 07 00 00 je 40b649 + 40af0f: 83 fa 03 cmp $0x3,%edx + 40af12: 0f 84 1e 07 00 00 je 40b636 + 40af18: 83 fa 01 cmp $0x1,%edx + 40af1b: 0f 84 3b 07 00 00 je 40b65c + 40af21: 48 89 c7 mov %rax,%rdi + 40af24: e8 87 2e 01 00 callq 41ddb0 <__cfree> + 40af29: 48 8b 3c 24 mov (%rsp),%rdi + 40af2d: e8 7e 2e 01 00 callq 41ddb0 <__cfree> + 40af32: e9 6f f1 ff ff jmpq 40a0a6 + 40af37: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40af3e: 00 00 + 40af40: 49 8b 47 18 mov 0x18(%r15),%rax + 40af44: 48 85 c0 test %rax,%rax + 40af47: 74 25 je 40af6e + 40af49: 8b 10 mov (%rax),%edx + 40af4b: 83 fa 02 cmp $0x2,%edx + 40af4e: 0f 84 a8 21 00 00 je 40d0fc + 40af54: 83 fa 03 cmp $0x3,%edx + 40af57: 0f 84 8e 21 00 00 je 40d0eb + 40af5d: 83 fa 01 cmp $0x1,%edx + 40af60: 0f 84 a7 21 00 00 je 40d10d + 40af66: 48 89 c7 mov %rax,%rdi + 40af69: e8 42 2e 01 00 callq 41ddb0 <__cfree> + 40af6e: 49 8b 47 10 mov 0x10(%r15),%rax + 40af72: 48 85 c0 test %rax,%rax + 40af75: 48 89 04 24 mov %rax,(%rsp) + 40af79: 74 26 je 40afa1 + 40af7b: 8b 00 mov (%rax),%eax + 40af7d: 83 f8 02 cmp $0x2,%eax + 40af80: 0f 84 eb 08 00 00 je 40b871 + 40af86: 83 f8 03 cmp $0x3,%eax + 40af89: 0f 84 d5 08 00 00 je 40b864 + 40af8f: 83 f8 01 cmp $0x1,%eax + 40af92: 0f 84 0b 09 00 00 je 40b8a3 + 40af98: 48 8b 3c 24 mov (%rsp),%rdi + 40af9c: e8 0f 2e 01 00 callq 41ddb0 <__cfree> + 40afa1: 49 8b 47 08 mov 0x8(%r15),%rax + 40afa5: 48 85 c0 test %rax,%rax + 40afa8: 48 89 04 24 mov %rax,(%rsp) + 40afac: 0f 84 34 f3 ff ff je 40a2e6 + 40afb2: 8b 00 mov (%rax),%eax + 40afb4: 83 f8 02 cmp $0x2,%eax + 40afb7: 74 2c je 40afe5 + 40afb9: 83 f8 03 cmp $0x3,%eax + 40afbc: 74 1a je 40afd8 + 40afbe: 83 f8 01 cmp $0x1,%eax + 40afc1: 74 54 je 40b017 + 40afc3: 48 8b 3c 24 mov (%rsp),%rdi + 40afc7: e8 e4 2d 01 00 callq 41ddb0 <__cfree> + 40afcc: e9 15 f3 ff ff jmpq 40a2e6 + 40afd1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40afd8: 48 8b 04 24 mov (%rsp),%rax + 40afdc: 48 8b 78 18 mov 0x18(%rax),%rdi + 40afe0: e8 2b ac ff ff callq 405c10 <__gettext_free_exp> + 40afe5: 48 8b 04 24 mov (%rsp),%rax + 40afe9: 48 8b 40 10 mov 0x10(%rax),%rax + 40afed: 48 85 c0 test %rax,%rax + 40aff0: 74 25 je 40b017 + 40aff2: 8b 10 mov (%rax),%edx + 40aff4: 83 fa 02 cmp $0x2,%edx + 40aff7: 0f 84 7f 0f 00 00 je 40bf7c + 40affd: 83 fa 03 cmp $0x3,%edx + 40b000: 0f 84 63 0f 00 00 je 40bf69 + 40b006: 83 fa 01 cmp $0x1,%edx + 40b009: 0f 84 80 0f 00 00 je 40bf8f + 40b00f: 48 89 c7 mov %rax,%rdi + 40b012: e8 99 2d 01 00 callq 41ddb0 <__cfree> + 40b017: 48 8b 04 24 mov (%rsp),%rax + 40b01b: 48 8b 40 08 mov 0x8(%rax),%rax + 40b01f: 48 85 c0 test %rax,%rax + 40b022: 74 9f je 40afc3 + 40b024: 8b 10 mov (%rax),%edx + 40b026: 83 fa 02 cmp $0x2,%edx + 40b029: 0f 84 96 06 00 00 je 40b6c5 + 40b02f: 83 fa 03 cmp $0x3,%edx + 40b032: 0f 84 7a 06 00 00 je 40b6b2 + 40b038: 83 fa 01 cmp $0x1,%edx + 40b03b: 0f 84 97 06 00 00 je 40b6d8 + 40b041: 48 89 c7 mov %rax,%rdi + 40b044: e8 67 2d 01 00 callq 41ddb0 <__cfree> + 40b049: 48 8b 3c 24 mov (%rsp),%rdi + 40b04d: e8 5e 2d 01 00 callq 41ddb0 <__cfree> + 40b052: e9 8f f2 ff ff jmpq 40a2e6 + 40b057: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40b05e: 00 00 + 40b060: 49 8b 47 18 mov 0x18(%r15),%rax + 40b064: 48 85 c0 test %rax,%rax + 40b067: 74 25 je 40b08e + 40b069: 8b 10 mov (%rax),%edx + 40b06b: 83 fa 02 cmp $0x2,%edx + 40b06e: 0f 84 c5 1e 00 00 je 40cf39 + 40b074: 83 fa 03 cmp $0x3,%edx + 40b077: 0f 84 ab 1e 00 00 je 40cf28 + 40b07d: 83 fa 01 cmp $0x1,%edx + 40b080: 0f 84 c4 1e 00 00 je 40cf4a + 40b086: 48 89 c7 mov %rax,%rdi + 40b089: e8 22 2d 01 00 callq 41ddb0 <__cfree> + 40b08e: 49 8b 47 10 mov 0x10(%r15),%rax + 40b092: 48 85 c0 test %rax,%rax + 40b095: 48 89 04 24 mov %rax,(%rsp) + 40b099: 74 26 je 40b0c1 + 40b09b: 8b 00 mov (%rax),%eax + 40b09d: 83 f8 02 cmp $0x2,%eax + 40b0a0: 0f 84 39 09 00 00 je 40b9df + 40b0a6: 83 f8 03 cmp $0x3,%eax + 40b0a9: 0f 84 23 09 00 00 je 40b9d2 + 40b0af: 83 f8 01 cmp $0x1,%eax + 40b0b2: 0f 84 59 09 00 00 je 40ba11 + 40b0b8: 48 8b 3c 24 mov (%rsp),%rdi + 40b0bc: e8 ef 2c 01 00 callq 41ddb0 <__cfree> + 40b0c1: 49 8b 47 08 mov 0x8(%r15),%rax + 40b0c5: 48 85 c0 test %rax,%rax + 40b0c8: 48 89 04 24 mov %rax,(%rsp) + 40b0cc: 0f 84 ff ec ff ff je 409dd1 + 40b0d2: 8b 00 mov (%rax),%eax + 40b0d4: 83 f8 02 cmp $0x2,%eax + 40b0d7: 74 2c je 40b105 + 40b0d9: 83 f8 03 cmp $0x3,%eax + 40b0dc: 74 1a je 40b0f8 + 40b0de: 83 f8 01 cmp $0x1,%eax + 40b0e1: 74 54 je 40b137 + 40b0e3: 48 8b 3c 24 mov (%rsp),%rdi + 40b0e7: e8 c4 2c 01 00 callq 41ddb0 <__cfree> + 40b0ec: e9 e0 ec ff ff jmpq 409dd1 + 40b0f1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40b0f8: 48 8b 04 24 mov (%rsp),%rax + 40b0fc: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b100: e8 0b ab ff ff callq 405c10 <__gettext_free_exp> + 40b105: 48 8b 04 24 mov (%rsp),%rax + 40b109: 48 8b 40 10 mov 0x10(%rax),%rax + 40b10d: 48 85 c0 test %rax,%rax + 40b110: 74 25 je 40b137 + 40b112: 8b 10 mov (%rax),%edx + 40b114: 83 fa 02 cmp $0x2,%edx + 40b117: 0f 84 21 0e 00 00 je 40bf3e + 40b11d: 83 fa 03 cmp $0x3,%edx + 40b120: 0f 84 05 0e 00 00 je 40bf2b + 40b126: 83 fa 01 cmp $0x1,%edx + 40b129: 0f 84 22 0e 00 00 je 40bf51 + 40b12f: 48 89 c7 mov %rax,%rdi + 40b132: e8 79 2c 01 00 callq 41ddb0 <__cfree> + 40b137: 48 8b 04 24 mov (%rsp),%rax + 40b13b: 48 8b 40 08 mov 0x8(%rax),%rax + 40b13f: 48 85 c0 test %rax,%rax + 40b142: 74 9f je 40b0e3 + 40b144: 8b 10 mov (%rax),%edx + 40b146: 83 fa 02 cmp $0x2,%edx + 40b149: 0f 84 38 05 00 00 je 40b687 + 40b14f: 83 fa 03 cmp $0x3,%edx + 40b152: 0f 84 1c 05 00 00 je 40b674 + 40b158: 83 fa 01 cmp $0x1,%edx + 40b15b: 0f 84 39 05 00 00 je 40b69a + 40b161: 48 89 c7 mov %rax,%rdi + 40b164: e8 47 2c 01 00 callq 41ddb0 <__cfree> + 40b169: 48 8b 3c 24 mov (%rsp),%rdi + 40b16d: e8 3e 2c 01 00 callq 41ddb0 <__cfree> + 40b172: e9 5a ec ff ff jmpq 409dd1 + 40b177: 48 8b 04 24 mov (%rsp),%rax + 40b17b: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b17f: e8 8c aa ff ff callq 405c10 <__gettext_free_exp> + 40b184: 48 8b 04 24 mov (%rsp),%rax + 40b188: 48 8b 40 10 mov 0x10(%rax),%rax + 40b18c: 48 85 c0 test %rax,%rax + 40b18f: 74 25 je 40b1b6 + 40b191: 8b 10 mov (%rax),%edx + 40b193: 83 fa 02 cmp $0x2,%edx + 40b196: 0f 84 b9 18 00 00 je 40ca55 + 40b19c: 83 fa 03 cmp $0x3,%edx + 40b19f: 0f 84 9d 18 00 00 je 40ca42 + 40b1a5: 83 fa 01 cmp $0x1,%edx + 40b1a8: 0f 84 ba 18 00 00 je 40ca68 + 40b1ae: 48 89 c7 mov %rax,%rdi + 40b1b1: e8 fa 2b 01 00 callq 41ddb0 <__cfree> + 40b1b6: 48 8b 04 24 mov (%rsp),%rax + 40b1ba: 48 8b 40 08 mov 0x8(%rax),%rax + 40b1be: 48 85 c0 test %rax,%rax + 40b1c1: 0f 84 8b ed ff ff je 409f52 + 40b1c7: 8b 10 mov (%rax),%edx + 40b1c9: 83 fa 02 cmp $0x2,%edx + 40b1cc: 0f 84 c7 0f 00 00 je 40c199 + 40b1d2: 83 fa 03 cmp $0x3,%edx + 40b1d5: 0f 84 ab 0f 00 00 je 40c186 + 40b1db: 83 fa 01 cmp $0x1,%edx + 40b1de: 0f 84 c8 0f 00 00 je 40c1ac + 40b1e4: 48 89 c7 mov %rax,%rdi + 40b1e7: e8 c4 2b 01 00 callq 41ddb0 <__cfree> + 40b1ec: e9 61 ed ff ff jmpq 409f52 + 40b1f1: 48 8b 04 24 mov (%rsp),%rax + 40b1f5: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b1f9: e8 12 aa ff ff callq 405c10 <__gettext_free_exp> + 40b1fe: 48 8b 04 24 mov (%rsp),%rax + 40b202: 48 8b 40 10 mov 0x10(%rax),%rax + 40b206: 48 85 c0 test %rax,%rax + 40b209: 74 25 je 40b230 + 40b20b: 8b 10 mov (%rax),%edx + 40b20d: 83 fa 02 cmp $0x2,%edx + 40b210: 0f 84 2f 17 00 00 je 40c945 + 40b216: 83 fa 03 cmp $0x3,%edx + 40b219: 0f 84 13 17 00 00 je 40c932 + 40b21f: 83 fa 01 cmp $0x1,%edx + 40b222: 0f 84 30 17 00 00 je 40c958 + 40b228: 48 89 c7 mov %rax,%rdi + 40b22b: e8 80 2b 01 00 callq 41ddb0 <__cfree> + 40b230: 48 8b 04 24 mov (%rsp),%rax + 40b234: 48 8b 40 08 mov 0x8(%rax),%rax + 40b238: 48 85 c0 test %rax,%rax + 40b23b: 0f 84 00 f0 ff ff je 40a241 + 40b241: 8b 10 mov (%rax),%edx + 40b243: 83 fa 02 cmp $0x2,%edx + 40b246: 0f 84 c9 0f 00 00 je 40c215 + 40b24c: 83 fa 03 cmp $0x3,%edx + 40b24f: 0f 84 ad 0f 00 00 je 40c202 + 40b255: 83 fa 01 cmp $0x1,%edx + 40b258: 0f 84 ca 0f 00 00 je 40c228 + 40b25e: 48 89 c7 mov %rax,%rdi + 40b261: e8 4a 2b 01 00 callq 41ddb0 <__cfree> + 40b266: e9 d6 ef ff ff jmpq 40a241 + 40b26b: 48 8b 04 24 mov (%rsp),%rax + 40b26f: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b273: e8 98 a9 ff ff callq 405c10 <__gettext_free_exp> + 40b278: 48 8b 04 24 mov (%rsp),%rax + 40b27c: 48 8b 40 10 mov 0x10(%rax),%rax + 40b280: 48 85 c0 test %rax,%rax + 40b283: 74 25 je 40b2aa + 40b285: 8b 10 mov (%rax),%edx + 40b287: 83 fa 02 cmp $0x2,%edx + 40b28a: 0f 84 d5 18 00 00 je 40cb65 + 40b290: 83 fa 03 cmp $0x3,%edx + 40b293: 0f 84 b9 18 00 00 je 40cb52 + 40b299: 83 fa 01 cmp $0x1,%edx + 40b29c: 0f 84 d6 18 00 00 je 40cb78 + 40b2a2: 48 89 c7 mov %rax,%rdi + 40b2a5: e8 06 2b 01 00 callq 41ddb0 <__cfree> + 40b2aa: 48 8b 04 24 mov (%rsp),%rax + 40b2ae: 48 8b 40 08 mov 0x8(%rax),%rax + 40b2b2: 48 85 c0 test %rax,%rax + 40b2b5: 0f 84 ca f7 ff ff je 40aa85 + 40b2bb: 8b 10 mov (%rax),%edx + 40b2bd: 83 fa 02 cmp $0x2,%edx + 40b2c0: 0f 84 8d 0f 00 00 je 40c253 + 40b2c6: 83 fa 03 cmp $0x3,%edx + 40b2c9: 0f 84 71 0f 00 00 je 40c240 + 40b2cf: 83 fa 01 cmp $0x1,%edx + 40b2d2: 0f 84 8e 0f 00 00 je 40c266 + 40b2d8: 48 89 c7 mov %rax,%rdi + 40b2db: e8 d0 2a 01 00 callq 41ddb0 <__cfree> + 40b2e0: e9 a0 f7 ff ff jmpq 40aa85 + 40b2e5: 48 8b 04 24 mov (%rsp),%rax + 40b2e9: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b2ed: e8 1e a9 ff ff callq 405c10 <__gettext_free_exp> + 40b2f2: 48 8b 04 24 mov (%rsp),%rax + 40b2f6: 48 8b 40 10 mov 0x10(%rax),%rax + 40b2fa: 48 85 c0 test %rax,%rax + 40b2fd: 74 25 je 40b324 + 40b2ff: 8b 10 mov (%rax),%edx + 40b301: 83 fa 02 cmp $0x2,%edx + 40b304: 0f 84 99 18 00 00 je 40cba3 + 40b30a: 83 fa 03 cmp $0x3,%edx + 40b30d: 0f 84 7d 18 00 00 je 40cb90 + 40b313: 83 fa 01 cmp $0x1,%edx + 40b316: 0f 84 9a 18 00 00 je 40cbb6 + 40b31c: 48 89 c7 mov %rax,%rdi + 40b31f: e8 8c 2a 01 00 callq 41ddb0 <__cfree> + 40b324: 48 8b 04 24 mov (%rsp),%rax + 40b328: 48 8b 40 08 mov 0x8(%rax),%rax + 40b32c: 48 85 c0 test %rax,%rax + 40b32f: 0f 84 10 f6 ff ff je 40a945 + 40b335: 8b 10 mov (%rax),%edx + 40b337: 83 fa 02 cmp $0x2,%edx + 40b33a: 0f 84 97 0e 00 00 je 40c1d7 + 40b340: 83 fa 03 cmp $0x3,%edx + 40b343: 0f 84 7b 0e 00 00 je 40c1c4 + 40b349: 83 fa 01 cmp $0x1,%edx + 40b34c: 0f 84 98 0e 00 00 je 40c1ea + 40b352: 48 89 c7 mov %rax,%rdi + 40b355: e8 56 2a 01 00 callq 41ddb0 <__cfree> + 40b35a: e9 e6 f5 ff ff jmpq 40a945 + 40b35f: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40b363: e8 a8 a8 ff ff callq 405c10 <__gettext_free_exp> + 40b368: 49 8b 47 10 mov 0x10(%r15),%rax + 40b36c: 48 85 c0 test %rax,%rax + 40b36f: 74 25 je 40b396 + 40b371: 8b 10 mov (%rax),%edx + 40b373: 83 fa 02 cmp $0x2,%edx + 40b376: 0f 84 85 1b 00 00 je 40cf01 + 40b37c: 83 fa 03 cmp $0x3,%edx + 40b37f: 0f 84 6b 1b 00 00 je 40cef0 + 40b385: 83 fa 01 cmp $0x1,%edx + 40b388: 0f 84 84 1b 00 00 je 40cf12 + 40b38e: 48 89 c7 mov %rax,%rdi + 40b391: e8 1a 2a 01 00 callq 41ddb0 <__cfree> + 40b396: 49 8b 47 08 mov 0x8(%r15),%rax + 40b39a: 48 85 c0 test %rax,%rax + 40b39d: 0f 84 13 f6 ff ff je 40a9b6 + 40b3a3: 8b 10 mov (%rax),%edx + 40b3a5: 83 fa 02 cmp $0x2,%edx + 40b3a8: 0f 84 04 10 00 00 je 40c3b2 + 40b3ae: 83 fa 03 cmp $0x3,%edx + 40b3b1: 0f 84 ea 0f 00 00 je 40c3a1 + 40b3b7: 83 fa 01 cmp $0x1,%edx + 40b3ba: 0f 84 03 10 00 00 je 40c3c3 + 40b3c0: 48 89 c7 mov %rax,%rdi + 40b3c3: e8 e8 29 01 00 callq 41ddb0 <__cfree> + 40b3c8: e9 e9 f5 ff ff jmpq 40a9b6 + 40b3cd: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40b3d1: e8 3a a8 ff ff callq 405c10 <__gettext_free_exp> + 40b3d6: 49 8b 47 10 mov 0x10(%r15),%rax + 40b3da: 48 85 c0 test %rax,%rax + 40b3dd: 74 25 je 40b404 + 40b3df: 8b 10 mov (%rax),%edx + 40b3e1: 83 fa 02 cmp $0x2,%edx + 40b3e4: 0f 84 a7 1a 00 00 je 40ce91 + 40b3ea: 83 fa 03 cmp $0x3,%edx + 40b3ed: 0f 84 8d 1a 00 00 je 40ce80 + 40b3f3: 83 fa 01 cmp $0x1,%edx + 40b3f6: 0f 84 a6 1a 00 00 je 40cea2 + 40b3fc: 48 89 c7 mov %rax,%rdi + 40b3ff: e8 ac 29 01 00 callq 41ddb0 <__cfree> + 40b404: 49 8b 47 08 mov 0x8(%r15),%rax + 40b408: 48 85 c0 test %rax,%rax + 40b40b: 0f 84 c1 ea ff ff je 409ed2 + 40b411: 8b 10 mov (%rax),%edx + 40b413: 83 fa 02 cmp $0x2,%edx + 40b416: 0f 84 35 0f 00 00 je 40c351 + 40b41c: 83 fa 03 cmp $0x3,%edx + 40b41f: 0f 84 1b 0f 00 00 je 40c340 + 40b425: 83 fa 01 cmp $0x1,%edx + 40b428: 0f 84 34 0f 00 00 je 40c362 + 40b42e: 48 89 c7 mov %rax,%rdi + 40b431: e8 7a 29 01 00 callq 41ddb0 <__cfree> + 40b436: e9 97 ea ff ff jmpq 409ed2 + 40b43b: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40b43f: e8 cc a7 ff ff callq 405c10 <__gettext_free_exp> + 40b444: 49 8b 47 10 mov 0x10(%r15),%rax + 40b448: 48 85 c0 test %rax,%rax + 40b44b: 74 25 je 40b472 + 40b44d: 8b 10 mov (%rax),%edx + 40b44f: 83 fa 02 cmp $0x2,%edx + 40b452: 0f 84 14 1d 00 00 je 40d16c + 40b458: 83 fa 03 cmp $0x3,%edx + 40b45b: 0f 84 fa 1c 00 00 je 40d15b + 40b461: 83 fa 01 cmp $0x1,%edx + 40b464: 0f 84 13 1d 00 00 je 40d17d + 40b46a: 48 89 c7 mov %rax,%rdi + 40b46d: e8 3e 29 01 00 callq 41ddb0 <__cfree> + 40b472: 49 8b 47 08 mov 0x8(%r15),%rax + 40b476: 48 85 c0 test %rax,%rax + 40b479: 0f 84 12 f0 ff ff je 40a491 + 40b47f: 8b 10 mov (%rax),%edx + 40b481: 83 fa 02 cmp $0x2,%edx + 40b484: 0f 84 05 0e 00 00 je 40c28f + 40b48a: 83 fa 03 cmp $0x3,%edx + 40b48d: 0f 84 eb 0d 00 00 je 40c27e + 40b493: 83 fa 01 cmp $0x1,%edx + 40b496: 0f 84 04 0e 00 00 je 40c2a0 + 40b49c: 48 89 c7 mov %rax,%rdi + 40b49f: e8 0c 29 01 00 callq 41ddb0 <__cfree> + 40b4a4: e9 e8 ef ff ff jmpq 40a491 + 40b4a9: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40b4ad: e8 5e a7 ff ff callq 405c10 <__gettext_free_exp> + 40b4b2: 49 8b 47 10 mov 0x10(%r15),%rax + 40b4b6: 48 85 c0 test %rax,%rax + 40b4b9: 74 25 je 40b4e0 + 40b4bb: 8b 10 mov (%rax),%edx + 40b4bd: 83 fa 02 cmp $0x2,%edx + 40b4c0: 0f 84 6e 1c 00 00 je 40d134 + 40b4c6: 83 fa 03 cmp $0x3,%edx + 40b4c9: 0f 84 54 1c 00 00 je 40d123 + 40b4cf: 83 fa 01 cmp $0x1,%edx + 40b4d2: 0f 84 6d 1c 00 00 je 40d145 + 40b4d8: 48 89 c7 mov %rax,%rdi + 40b4db: e8 d0 28 01 00 callq 41ddb0 <__cfree> + 40b4e0: 49 8b 47 08 mov 0x8(%r15),%rax + 40b4e4: 48 85 c0 test %rax,%rax + 40b4e7: 0f 84 ca ed ff ff je 40a2b7 + 40b4ed: 8b 10 mov (%rax),%edx + 40b4ef: 83 fa 02 cmp $0x2,%edx + 40b4f2: 0f 84 1b 0f 00 00 je 40c413 + 40b4f8: 83 fa 03 cmp $0x3,%edx + 40b4fb: 0f 84 01 0f 00 00 je 40c402 + 40b501: 83 fa 01 cmp $0x1,%edx + 40b504: 0f 84 1a 0f 00 00 je 40c424 + 40b50a: 48 89 c7 mov %rax,%rdi + 40b50d: e8 9e 28 01 00 callq 41ddb0 <__cfree> + 40b512: e9 a0 ed ff ff jmpq 40a2b7 + 40b517: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40b51b: e8 f0 a6 ff ff callq 405c10 <__gettext_free_exp> + 40b520: 49 8b 47 10 mov 0x10(%r15),%rax + 40b524: 48 85 c0 test %rax,%rax + 40b527: 74 25 je 40b54e + 40b529: 8b 10 mov (%rax),%edx + 40b52b: 83 fa 02 cmp $0x2,%edx + 40b52e: 0f 84 25 19 00 00 je 40ce59 + 40b534: 83 fa 03 cmp $0x3,%edx + 40b537: 0f 84 0b 19 00 00 je 40ce48 + 40b53d: 83 fa 01 cmp $0x1,%edx + 40b540: 0f 84 24 19 00 00 je 40ce6a + 40b546: 48 89 c7 mov %rax,%rdi + 40b549: e8 62 28 01 00 callq 41ddb0 <__cfree> + 40b54e: 49 8b 47 08 mov 0x8(%r15),%rax + 40b552: 48 85 c0 test %rax,%rax + 40b555: 0f 84 1b f3 ff ff je 40a876 + 40b55b: 8b 10 mov (%rax),%edx + 40b55d: 83 fa 02 cmp $0x2,%edx + 40b560: 0f 84 8a 0d 00 00 je 40c2f0 + 40b566: 83 fa 03 cmp $0x3,%edx + 40b569: 0f 84 70 0d 00 00 je 40c2df + 40b56f: 83 fa 01 cmp $0x1,%edx + 40b572: 0f 84 89 0d 00 00 je 40c301 + 40b578: 48 89 c7 mov %rax,%rdi + 40b57b: e8 30 28 01 00 callq 41ddb0 <__cfree> + 40b580: e9 f1 f2 ff ff jmpq 40a876 + 40b585: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40b589: e8 82 a6 ff ff callq 405c10 <__gettext_free_exp> + 40b58e: 49 8b 47 10 mov 0x10(%r15),%rax + 40b592: 48 85 c0 test %rax,%rax + 40b595: 74 25 je 40b5bc + 40b597: 8b 10 mov (%rax),%edx + 40b599: 83 fa 02 cmp $0x2,%edx + 40b59c: 0f 84 27 19 00 00 je 40cec9 + 40b5a2: 83 fa 03 cmp $0x3,%edx + 40b5a5: 0f 84 0d 19 00 00 je 40ceb8 + 40b5ab: 83 fa 01 cmp $0x1,%edx + 40b5ae: 0f 84 26 19 00 00 je 40ceda + 40b5b4: 48 89 c7 mov %rax,%rdi + 40b5b7: e8 f4 27 01 00 callq 41ddb0 <__cfree> + 40b5bc: 49 8b 47 08 mov 0x8(%r15),%rax + 40b5c0: 48 85 c0 test %rax,%rax + 40b5c3: 48 89 04 24 mov %rax,(%rsp) + 40b5c7: 0f 84 aa ea ff ff je 40a077 + 40b5cd: 8b 00 mov (%rax),%eax + 40b5cf: 83 f8 02 cmp $0x2,%eax + 40b5d2: 0f 84 cd 19 00 00 je 40cfa5 + 40b5d8: 83 f8 03 cmp $0x3,%eax + 40b5db: 0f 84 b7 19 00 00 je 40cf98 + 40b5e1: 83 f8 01 cmp $0x1,%eax + 40b5e4: 0f 84 ba 0e 00 00 je 40c4a4 + 40b5ea: 48 8b 3c 24 mov (%rsp),%rdi + 40b5ee: e8 bd 27 01 00 callq 41ddb0 <__cfree> + 40b5f3: e9 7f ea ff ff jmpq 40a077 + 40b5f8: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b5fc: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b601: e8 0a a6 ff ff callq 405c10 <__gettext_free_exp> + 40b606: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b60b: 48 8b 78 10 mov 0x10(%rax),%rdi + 40b60f: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b614: e8 f7 a5 ff ff callq 405c10 <__gettext_free_exp> + 40b619: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b61e: 48 8b 78 08 mov 0x8(%rax),%rdi + 40b622: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b627: e8 e4 a5 ff ff callq 405c10 <__gettext_free_exp> + 40b62c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b631: e9 7b e6 ff ff jmpq 409cb1 + 40b636: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b63a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b63f: e8 cc a5 ff ff callq 405c10 <__gettext_free_exp> + 40b644: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b649: 48 8b 78 10 mov 0x10(%rax),%rdi + 40b64d: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b652: e8 b9 a5 ff ff callq 405c10 <__gettext_free_exp> + 40b657: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b65c: 48 8b 78 08 mov 0x8(%rax),%rdi + 40b660: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b665: e8 a6 a5 ff ff callq 405c10 <__gettext_free_exp> + 40b66a: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b66f: e9 ad f8 ff ff jmpq 40af21 + 40b674: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b678: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b67d: e8 8e a5 ff ff callq 405c10 <__gettext_free_exp> + 40b682: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b687: 48 8b 78 10 mov 0x10(%rax),%rdi + 40b68b: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b690: e8 7b a5 ff ff callq 405c10 <__gettext_free_exp> + 40b695: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b69a: 48 8b 78 08 mov 0x8(%rax),%rdi + 40b69e: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b6a3: e8 68 a5 ff ff callq 405c10 <__gettext_free_exp> + 40b6a8: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b6ad: e9 af fa ff ff jmpq 40b161 + 40b6b2: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b6b6: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b6bb: e8 50 a5 ff ff callq 405c10 <__gettext_free_exp> + 40b6c0: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b6c5: 48 8b 78 10 mov 0x10(%rax),%rdi + 40b6c9: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b6ce: e8 3d a5 ff ff callq 405c10 <__gettext_free_exp> + 40b6d3: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b6d8: 48 8b 78 08 mov 0x8(%rax),%rdi + 40b6dc: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b6e1: e8 2a a5 ff ff callq 405c10 <__gettext_free_exp> + 40b6e6: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b6eb: e9 51 f9 ff ff jmpq 40b041 + 40b6f0: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b6f4: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b6f9: e8 12 a5 ff ff callq 405c10 <__gettext_free_exp> + 40b6fe: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b703: 48 8b 78 10 mov 0x10(%rax),%rdi + 40b707: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b70c: e8 ff a4 ff ff callq 405c10 <__gettext_free_exp> + 40b711: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b716: 48 8b 78 08 mov 0x8(%rax),%rdi + 40b71a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b71f: e8 ec a4 ff ff callq 405c10 <__gettext_free_exp> + 40b724: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b729: e9 6e f6 ff ff jmpq 40ad9c + 40b72e: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b732: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b737: e8 d4 a4 ff ff callq 405c10 <__gettext_free_exp> + 40b73c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b741: 48 8b 78 10 mov 0x10(%rax),%rdi + 40b745: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b74a: e8 c1 a4 ff ff callq 405c10 <__gettext_free_exp> + 40b74f: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b754: 48 8b 78 08 mov 0x8(%rax),%rdi + 40b758: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b75d: e8 ae a4 ff ff callq 405c10 <__gettext_free_exp> + 40b762: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b767: e9 50 f5 ff ff jmpq 40acbc + 40b76c: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b770: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b775: e8 96 a4 ff ff callq 405c10 <__gettext_free_exp> + 40b77a: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b77f: 48 8b 78 10 mov 0x10(%rax),%rdi + 40b783: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b788: e8 83 a4 ff ff callq 405c10 <__gettext_free_exp> + 40b78d: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b792: 48 8b 78 08 mov 0x8(%rax),%rdi + 40b796: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b79b: e8 70 a4 ff ff callq 405c10 <__gettext_free_exp> + 40b7a0: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b7a5: e9 32 f4 ff ff jmpq 40abdc + 40b7aa: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b7ae: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b7b3: e8 58 a4 ff ff callq 405c10 <__gettext_free_exp> + 40b7b8: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b7bd: 48 8b 78 10 mov 0x10(%rax),%rdi + 40b7c1: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b7c6: e8 45 a4 ff ff callq 405c10 <__gettext_free_exp> + 40b7cb: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b7d0: 48 8b 78 08 mov 0x8(%rax),%rdi + 40b7d4: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b7d9: e8 32 a4 ff ff callq 405c10 <__gettext_free_exp> + 40b7de: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b7e3: e9 71 e9 ff ff jmpq 40a159 + 40b7e8: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b7ec: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b7f1: e8 1a a4 ff ff callq 405c10 <__gettext_free_exp> + 40b7f6: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b7fb: 48 8b 78 10 mov 0x10(%rax),%rdi + 40b7ff: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b804: e8 07 a4 ff ff callq 405c10 <__gettext_free_exp> + 40b809: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b80e: 48 8b 78 08 mov 0x8(%rax),%rdi + 40b812: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b817: e8 f4 a3 ff ff callq 405c10 <__gettext_free_exp> + 40b81c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b821: e9 9d eb ff ff jmpq 40a3c3 + 40b826: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b82a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b82f: e8 dc a3 ff ff callq 405c10 <__gettext_free_exp> + 40b834: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b839: 48 8b 78 10 mov 0x10(%rax),%rdi + 40b83d: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b842: e8 c9 a3 ff ff callq 405c10 <__gettext_free_exp> + 40b847: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b84c: 48 8b 78 08 mov 0x8(%rax),%rdi + 40b850: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40b855: e8 b6 a3 ff ff callq 405c10 <__gettext_free_exp> + 40b85a: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40b85f: e9 98 f2 ff ff jmpq 40aafc + 40b864: 48 8b 04 24 mov (%rsp),%rax + 40b868: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b86c: e8 9f a3 ff ff callq 405c10 <__gettext_free_exp> + 40b871: 48 8b 04 24 mov (%rsp),%rax + 40b875: 48 8b 40 10 mov 0x10(%rax),%rax + 40b879: 48 85 c0 test %rax,%rax + 40b87c: 74 25 je 40b8a3 + 40b87e: 8b 10 mov (%rax),%edx + 40b880: 83 fa 02 cmp $0x2,%edx + 40b883: 0f 84 d0 07 00 00 je 40c059 + 40b889: 83 fa 03 cmp $0x3,%edx + 40b88c: 0f 84 b4 07 00 00 je 40c046 + 40b892: 83 fa 01 cmp $0x1,%edx + 40b895: 0f 84 d1 07 00 00 je 40c06c + 40b89b: 48 89 c7 mov %rax,%rdi + 40b89e: e8 0d 25 01 00 callq 41ddb0 <__cfree> + 40b8a3: 48 8b 04 24 mov (%rsp),%rax + 40b8a7: 48 8b 40 08 mov 0x8(%rax),%rax + 40b8ab: 48 85 c0 test %rax,%rax + 40b8ae: 0f 84 e4 f6 ff ff je 40af98 + 40b8b4: 8b 10 mov (%rax),%edx + 40b8b6: 83 fa 02 cmp $0x2,%edx + 40b8b9: 0f 84 ed 0c 00 00 je 40c5ac + 40b8bf: 83 fa 03 cmp $0x3,%edx + 40b8c2: 0f 84 d1 0c 00 00 je 40c599 + 40b8c8: 83 fa 01 cmp $0x1,%edx + 40b8cb: 0f 84 ee 0c 00 00 je 40c5bf + 40b8d1: 48 89 c7 mov %rax,%rdi + 40b8d4: e8 d7 24 01 00 callq 41ddb0 <__cfree> + 40b8d9: e9 ba f6 ff ff jmpq 40af98 + 40b8de: 48 8b 04 24 mov (%rsp),%rax + 40b8e2: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b8e6: e8 25 a3 ff ff callq 405c10 <__gettext_free_exp> + 40b8eb: 48 8b 04 24 mov (%rsp),%rax + 40b8ef: 48 8b 40 10 mov 0x10(%rax),%rax + 40b8f3: 48 85 c0 test %rax,%rax + 40b8f6: 74 25 je 40b91d + 40b8f8: 8b 10 mov (%rax),%edx + 40b8fa: 83 fa 02 cmp $0x2,%edx + 40b8fd: 0f 84 fa 07 00 00 je 40c0fd + 40b903: 83 fa 03 cmp $0x3,%edx + 40b906: 0f 84 de 07 00 00 je 40c0ea + 40b90c: 83 fa 01 cmp $0x1,%edx + 40b90f: 0f 84 fb 07 00 00 je 40c110 + 40b915: 48 89 c7 mov %rax,%rdi + 40b918: e8 93 24 01 00 callq 41ddb0 <__cfree> + 40b91d: 48 8b 04 24 mov (%rsp),%rax + 40b921: 48 8b 40 08 mov 0x8(%rax),%rax + 40b925: 48 85 c0 test %rax,%rax + 40b928: 0f 84 6b e4 ff ff je 409d99 + 40b92e: 8b 10 mov (%rax),%edx + 40b930: 83 fa 02 cmp $0x2,%edx + 40b933: 0f 84 b9 0b 00 00 je 40c4f2 + 40b939: 83 fa 03 cmp $0x3,%edx + 40b93c: 0f 84 9d 0b 00 00 je 40c4df + 40b942: 83 fa 01 cmp $0x1,%edx + 40b945: 0f 84 ba 0b 00 00 je 40c505 + 40b94b: 48 89 c7 mov %rax,%rdi + 40b94e: e8 5d 24 01 00 callq 41ddb0 <__cfree> + 40b953: e9 41 e4 ff ff jmpq 409d99 + 40b958: 48 8b 04 24 mov (%rsp),%rax + 40b95c: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b960: e8 ab a2 ff ff callq 405c10 <__gettext_free_exp> + 40b965: 48 8b 04 24 mov (%rsp),%rax + 40b969: 48 8b 40 10 mov 0x10(%rax),%rax + 40b96d: 48 85 c0 test %rax,%rax + 40b970: 74 25 je 40b997 + 40b972: 8b 10 mov (%rax),%edx + 40b974: 83 fa 02 cmp $0x2,%edx + 40b977: 0f 84 9e 06 00 00 je 40c01b + 40b97d: 83 fa 03 cmp $0x3,%edx + 40b980: 0f 84 82 06 00 00 je 40c008 + 40b986: 83 fa 01 cmp $0x1,%edx + 40b989: 0f 84 9f 06 00 00 je 40c02e + 40b98f: 48 89 c7 mov %rax,%rdi + 40b992: e8 19 24 01 00 callq 41ddb0 <__cfree> + 40b997: 48 8b 04 24 mov (%rsp),%rax + 40b99b: 48 8b 40 08 mov 0x8(%rax),%rax + 40b99f: 48 85 c0 test %rax,%rax + 40b9a2: 0f 84 d0 f4 ff ff je 40ae78 + 40b9a8: 8b 10 mov (%rax),%edx + 40b9aa: 83 fa 02 cmp $0x2,%edx + 40b9ad: 0f 84 7d 0b 00 00 je 40c530 + 40b9b3: 83 fa 03 cmp $0x3,%edx + 40b9b6: 0f 84 61 0b 00 00 je 40c51d + 40b9bc: 83 fa 01 cmp $0x1,%edx + 40b9bf: 0f 84 7e 0b 00 00 je 40c543 + 40b9c5: 48 89 c7 mov %rax,%rdi + 40b9c8: e8 e3 23 01 00 callq 41ddb0 <__cfree> + 40b9cd: e9 a6 f4 ff ff jmpq 40ae78 + 40b9d2: 48 8b 04 24 mov (%rsp),%rax + 40b9d6: 48 8b 78 18 mov 0x18(%rax),%rdi + 40b9da: e8 31 a2 ff ff callq 405c10 <__gettext_free_exp> + 40b9df: 48 8b 04 24 mov (%rsp),%rax + 40b9e3: 48 8b 40 10 mov 0x10(%rax),%rax + 40b9e7: 48 85 c0 test %rax,%rax + 40b9ea: 74 25 je 40ba11 + 40b9ec: 8b 10 mov (%rax),%edx + 40b9ee: 83 fa 02 cmp $0x2,%edx + 40b9f1: 0f 84 44 07 00 00 je 40c13b + 40b9f7: 83 fa 03 cmp $0x3,%edx + 40b9fa: 0f 84 28 07 00 00 je 40c128 + 40ba00: 83 fa 01 cmp $0x1,%edx + 40ba03: 0f 84 45 07 00 00 je 40c14e + 40ba09: 48 89 c7 mov %rax,%rdi + 40ba0c: e8 9f 23 01 00 callq 41ddb0 <__cfree> + 40ba11: 48 8b 04 24 mov (%rsp),%rax + 40ba15: 48 8b 40 08 mov 0x8(%rax),%rax + 40ba19: 48 85 c0 test %rax,%rax + 40ba1c: 0f 84 96 f6 ff ff je 40b0b8 + 40ba22: 8b 10 mov (%rax),%edx + 40ba24: 83 fa 02 cmp $0x2,%edx + 40ba27: 0f 84 41 0b 00 00 je 40c56e + 40ba2d: 83 fa 03 cmp $0x3,%edx + 40ba30: 0f 84 25 0b 00 00 je 40c55b + 40ba36: 83 fa 01 cmp $0x1,%edx + 40ba39: 0f 84 42 0b 00 00 je 40c581 + 40ba3f: 48 89 c7 mov %rax,%rdi + 40ba42: e8 69 23 01 00 callq 41ddb0 <__cfree> + 40ba47: e9 6c f6 ff ff jmpq 40b0b8 + 40ba4c: 49 8b 7e 18 mov 0x18(%r14),%rdi + 40ba50: e8 bb a1 ff ff callq 405c10 <__gettext_free_exp> + 40ba55: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 40ba59: 4d 85 ff test %r15,%r15 + 40ba5c: 74 26 je 40ba84 + 40ba5e: 41 8b 07 mov (%r15),%eax + 40ba61: 83 f8 02 cmp $0x2,%eax + 40ba64: 0f 84 05 07 00 00 je 40c16f + 40ba6a: 83 f8 03 cmp $0x3,%eax + 40ba6d: 0f 84 f3 06 00 00 je 40c166 + 40ba73: 83 f8 01 cmp $0x1,%eax + 40ba76: 0f 84 fc 06 00 00 je 40c178 + 40ba7c: 4c 89 ff mov %r15,%rdi + 40ba7f: e8 2c 23 01 00 callq 41ddb0 <__cfree> + 40ba84: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 40ba88: 4d 85 ff test %r15,%r15 + 40ba8b: 0f 84 b6 ea ff ff je 40a547 + 40ba91: 41 8b 07 mov (%r15),%eax + 40ba94: 83 f8 02 cmp $0x2,%eax + 40ba97: 0f 84 bd 0c 00 00 je 40c75a + 40ba9d: 83 f8 03 cmp $0x3,%eax + 40baa0: 0f 84 ab 0c 00 00 je 40c751 + 40baa6: 83 f8 01 cmp $0x1,%eax + 40baa9: 0f 84 b4 0c 00 00 je 40c763 + 40baaf: 4c 89 ff mov %r15,%rdi + 40bab2: e8 f9 22 01 00 callq 41ddb0 <__cfree> + 40bab7: e9 8b ea ff ff jmpq 40a547 + 40babc: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40bac0: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40bac5: 48 89 14 24 mov %rdx,(%rsp) + 40bac9: e8 42 a1 ff ff callq 405c10 <__gettext_free_exp> + 40bace: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40bad3: 48 8b 14 24 mov (%rsp),%rdx + 40bad7: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40badb: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40bae0: 48 89 14 24 mov %rdx,(%rsp) + 40bae4: e8 27 a1 ff ff callq 405c10 <__gettext_free_exp> + 40bae9: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40baee: 48 8b 14 24 mov (%rsp),%rdx + 40baf2: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40baf6: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40bafb: 48 89 14 24 mov %rdx,(%rsp) + 40baff: e8 0c a1 ff ff callq 405c10 <__gettext_free_exp> + 40bb04: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40bb09: 48 8b 14 24 mov (%rsp),%rdx + 40bb0d: e9 fc ea ff ff jmpq 40a60e + 40bb12: 48 8b 78 18 mov 0x18(%rax),%rdi + 40bb16: 48 89 04 24 mov %rax,(%rsp) + 40bb1a: e8 f1 a0 ff ff callq 405c10 <__gettext_free_exp> + 40bb1f: 48 8b 04 24 mov (%rsp),%rax + 40bb23: 48 8b 78 10 mov 0x10(%rax),%rdi + 40bb27: 48 89 04 24 mov %rax,(%rsp) + 40bb2b: e8 e0 a0 ff ff callq 405c10 <__gettext_free_exp> + 40bb30: 48 8b 04 24 mov (%rsp),%rax + 40bb34: 48 8b 50 08 mov 0x8(%rax),%rdx + 40bb38: 48 85 d2 test %rdx,%rdx + 40bb3b: 0f 84 ce e6 ff ff je 40a20f + 40bb41: 8b 0a mov (%rdx),%ecx + 40bb43: 83 f9 02 cmp $0x2,%ecx + 40bb46: 0f 84 33 12 00 00 je 40cd7f + 40bb4c: 83 f9 03 cmp $0x3,%ecx + 40bb4f: 0f 84 0f 12 00 00 je 40cd64 + 40bb55: 83 f9 01 cmp $0x1,%ecx + 40bb58: 0f 84 3c 12 00 00 je 40cd9a + 40bb5e: 48 89 d7 mov %rdx,%rdi + 40bb61: 48 89 04 24 mov %rax,(%rsp) + 40bb65: e8 46 22 01 00 callq 41ddb0 <__cfree> + 40bb6a: 48 8b 04 24 mov (%rsp),%rax + 40bb6e: e9 9c e6 ff ff jmpq 40a20f + 40bb73: 48 8b 78 18 mov 0x18(%rax),%rdi + 40bb77: 48 89 04 24 mov %rax,(%rsp) + 40bb7b: e8 90 a0 ff ff callq 405c10 <__gettext_free_exp> + 40bb80: 48 8b 04 24 mov (%rsp),%rax + 40bb84: 48 8b 78 10 mov 0x10(%rax),%rdi + 40bb88: 48 89 04 24 mov %rax,(%rsp) + 40bb8c: e8 7f a0 ff ff callq 405c10 <__gettext_free_exp> + 40bb91: 48 8b 04 24 mov (%rsp),%rax + 40bb95: 48 8b 50 08 mov 0x8(%rax),%rdx + 40bb99: 48 85 d2 test %rdx,%rdx + 40bb9c: 0f 84 e4 ea ff ff je 40a686 + 40bba2: 8b 0a mov (%rdx),%ecx + 40bba4: 83 f9 02 cmp $0x2,%ecx + 40bba7: 0f 84 e8 10 00 00 je 40cc95 + 40bbad: 83 f9 03 cmp $0x3,%ecx + 40bbb0: 0f 84 c4 10 00 00 je 40cc7a + 40bbb6: 83 f9 01 cmp $0x1,%ecx + 40bbb9: 0f 84 f1 10 00 00 je 40ccb0 + 40bbbf: 48 89 d7 mov %rdx,%rdi + 40bbc2: 48 89 04 24 mov %rax,(%rsp) + 40bbc6: e8 e5 21 01 00 callq 41ddb0 <__cfree> + 40bbcb: 48 8b 04 24 mov (%rsp),%rax + 40bbcf: e9 b2 ea ff ff jmpq 40a686 + 40bbd4: 48 8b 78 18 mov 0x18(%rax),%rdi + 40bbd8: 48 89 04 24 mov %rax,(%rsp) + 40bbdc: e8 2f a0 ff ff callq 405c10 <__gettext_free_exp> + 40bbe1: 48 8b 04 24 mov (%rsp),%rax + 40bbe5: 48 8b 78 10 mov 0x10(%rax),%rdi + 40bbe9: 48 89 04 24 mov %rax,(%rsp) + 40bbed: e8 1e a0 ff ff callq 405c10 <__gettext_free_exp> + 40bbf2: 48 8b 04 24 mov (%rsp),%rax + 40bbf6: 48 8b 50 08 mov 0x8(%rax),%rdx + 40bbfa: 48 85 d2 test %rdx,%rdx + 40bbfd: 0f 84 0c ed ff ff je 40a90f + 40bc03: 8b 0a mov (%rdx),%ecx + 40bc05: 83 f9 02 cmp $0x2,%ecx + 40bc08: 0f 84 93 0c 00 00 je 40c8a1 + 40bc0e: 83 f9 03 cmp $0x3,%ecx + 40bc11: 0f 84 6f 0c 00 00 je 40c886 + 40bc17: 83 f9 01 cmp $0x1,%ecx + 40bc1a: 0f 84 9c 0c 00 00 je 40c8bc + 40bc20: 48 89 d7 mov %rdx,%rdi + 40bc23: 48 89 04 24 mov %rax,(%rsp) + 40bc27: e8 84 21 01 00 callq 41ddb0 <__cfree> + 40bc2c: 48 8b 04 24 mov (%rsp),%rax + 40bc30: e9 da ec ff ff jmpq 40a90f + 40bc35: 48 8b 78 18 mov 0x18(%rax),%rdi + 40bc39: 48 89 04 24 mov %rax,(%rsp) + 40bc3d: e8 ce 9f ff ff callq 405c10 <__gettext_free_exp> + 40bc42: 48 8b 04 24 mov (%rsp),%rax + 40bc46: 48 8b 78 10 mov 0x10(%rax),%rdi + 40bc4a: 48 89 04 24 mov %rax,(%rsp) + 40bc4e: e8 bd 9f ff ff callq 405c10 <__gettext_free_exp> + 40bc53: 48 8b 04 24 mov (%rsp),%rax + 40bc57: 48 8b 50 08 mov 0x8(%rax),%rdx + 40bc5b: 48 85 d2 test %rdx,%rdx + 40bc5e: 0f 84 eb ed ff ff je 40aa4f + 40bc64: 8b 0a mov (%rdx),%ecx + 40bc66: 83 f9 02 cmp $0x2,%ecx + 40bc69: 0f 84 7c 10 00 00 je 40cceb + 40bc6f: 83 f9 03 cmp $0x3,%ecx + 40bc72: 0f 84 58 10 00 00 je 40ccd0 + 40bc78: 83 f9 01 cmp $0x1,%ecx + 40bc7b: 0f 84 85 10 00 00 je 40cd06 + 40bc81: 48 89 d7 mov %rdx,%rdi + 40bc84: 48 89 04 24 mov %rax,(%rsp) + 40bc88: e8 23 21 01 00 callq 41ddb0 <__cfree> + 40bc8d: 48 8b 04 24 mov (%rsp),%rax + 40bc91: e9 b9 ed ff ff jmpq 40aa4f + 40bc96: 48 8b 78 18 mov 0x18(%rax),%rdi + 40bc9a: 48 89 04 24 mov %rax,(%rsp) + 40bc9e: e8 6d 9f ff ff callq 405c10 <__gettext_free_exp> + 40bca3: 48 8b 04 24 mov (%rsp),%rax + 40bca7: 48 8b 78 10 mov 0x10(%rax),%rdi + 40bcab: 48 89 04 24 mov %rax,(%rsp) + 40bcaf: e8 5c 9f ff ff callq 405c10 <__gettext_free_exp> + 40bcb4: 48 8b 04 24 mov (%rsp),%rax + 40bcb8: 48 8b 50 08 mov 0x8(%rax),%rdx + 40bcbc: 48 85 d2 test %rdx,%rdx + 40bcbf: 0f 84 a1 ea ff ff je 40a766 + 40bcc5: 8b 0a mov (%rdx),%ecx + 40bcc7: 83 f9 02 cmp $0x2,%ecx + 40bcca: 0f 84 f9 0c 00 00 je 40c9c9 + 40bcd0: 83 f9 03 cmp $0x3,%ecx + 40bcd3: 0f 84 d5 0c 00 00 je 40c9ae + 40bcd9: 83 f9 01 cmp $0x1,%ecx + 40bcdc: 0f 84 02 0d 00 00 je 40c9e4 + 40bce2: 48 89 d7 mov %rdx,%rdi + 40bce5: 48 89 04 24 mov %rax,(%rsp) + 40bce9: e8 c2 20 01 00 callq 41ddb0 <__cfree> + 40bcee: 48 8b 04 24 mov (%rsp),%rax + 40bcf2: e9 6f ea ff ff jmpq 40a766 + 40bcf7: 48 8b 78 18 mov 0x18(%rax),%rdi + 40bcfb: 48 89 04 24 mov %rax,(%rsp) + 40bcff: e8 0c 9f ff ff callq 405c10 <__gettext_free_exp> + 40bd04: 48 8b 04 24 mov (%rsp),%rax + 40bd08: 48 8b 78 10 mov 0x10(%rax),%rdi + 40bd0c: 48 89 04 24 mov %rax,(%rsp) + 40bd10: e8 fb 9e ff ff callq 405c10 <__gettext_free_exp> + 40bd15: 48 8b 04 24 mov (%rsp),%rax + 40bd19: 48 8b 50 08 mov 0x8(%rax),%rdx + 40bd1d: 48 85 d2 test %rdx,%rdx + 40bd20: 0f 84 d0 e9 ff ff je 40a6f6 + 40bd26: 8b 0a mov (%rdx),%ecx + 40bd28: 83 f9 02 cmp $0x2,%ecx + 40bd2b: 0f 84 0e 0f 00 00 je 40cc3f + 40bd31: 83 f9 03 cmp $0x3,%ecx + 40bd34: 0f 84 ea 0e 00 00 je 40cc24 + 40bd3a: 83 f9 01 cmp $0x1,%ecx + 40bd3d: 0f 84 17 0f 00 00 je 40cc5a + 40bd43: 48 89 d7 mov %rdx,%rdi + 40bd46: 48 89 04 24 mov %rax,(%rsp) + 40bd4a: e8 61 20 01 00 callq 41ddb0 <__cfree> + 40bd4f: 48 8b 04 24 mov (%rsp),%rax + 40bd53: e9 9e e9 ff ff jmpq 40a6f6 + 40bd58: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40bd5c: e8 af 9e ff ff callq 405c10 <__gettext_free_exp> + 40bd61: 49 8b 7f 10 mov 0x10(%r15),%rdi + 40bd65: e8 a6 9e ff ff callq 405c10 <__gettext_free_exp> + 40bd6a: 49 8b 47 08 mov 0x8(%r15),%rax + 40bd6e: 48 85 c0 test %rax,%rax + 40bd71: 0f 84 eb e6 ff ff je 40a462 + 40bd77: 8b 10 mov (%rax),%edx + 40bd79: 83 fa 02 cmp $0x2,%edx + 40bd7c: 0f 84 ef 11 00 00 je 40cf71 + 40bd82: 83 fa 03 cmp $0x3,%edx + 40bd85: 0f 84 d5 11 00 00 je 40cf60 + 40bd8b: 83 fa 01 cmp $0x1,%edx + 40bd8e: 0f 84 ee 11 00 00 je 40cf82 + 40bd94: 48 89 c7 mov %rax,%rdi + 40bd97: e8 14 20 01 00 callq 41ddb0 <__cfree> + 40bd9c: e9 c1 e6 ff ff jmpq 40a462 + 40bda1: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40bda5: e8 66 9e ff ff callq 405c10 <__gettext_free_exp> + 40bdaa: 49 8b 7f 10 mov 0x10(%r15),%rdi + 40bdae: e8 5d 9e ff ff callq 405c10 <__gettext_free_exp> + 40bdb3: 49 8b 47 08 mov 0x8(%r15),%rax + 40bdb7: 48 85 c0 test %rax,%rax + 40bdba: 0f 84 e3 e0 ff ff je 409ea3 + 40bdc0: 8b 10 mov (%rax),%edx + 40bdc2: 83 fa 02 cmp $0x2,%edx + 40bdc5: 0f 84 56 10 00 00 je 40ce21 + 40bdcb: 83 fa 03 cmp $0x3,%edx + 40bdce: 0f 84 3c 10 00 00 je 40ce10 + 40bdd4: 83 fa 01 cmp $0x1,%edx + 40bdd7: 0f 84 55 10 00 00 je 40ce32 + 40bddd: 48 89 c7 mov %rax,%rdi + 40bde0: e8 cb 1f 01 00 callq 41ddb0 <__cfree> + 40bde5: e9 b9 e0 ff ff jmpq 409ea3 + 40bdea: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40bdee: e8 1d 9e ff ff callq 405c10 <__gettext_free_exp> + 40bdf3: 49 8b 7f 10 mov 0x10(%r15),%rdi + 40bdf7: e8 14 9e ff ff callq 405c10 <__gettext_free_exp> + 40bdfc: 49 8b 47 08 mov 0x8(%r15),%rax + 40be00: 48 85 c0 test %rax,%rax + 40be03: 0f 84 ce e9 ff ff je 40a7d7 + 40be09: 8b 10 mov (%rax),%edx + 40be0b: 83 fa 02 cmp $0x2,%edx + 40be0e: 0f 84 d5 11 00 00 je 40cfe9 + 40be14: 83 fa 03 cmp $0x3,%edx + 40be17: 0f 84 bb 11 00 00 je 40cfd8 + 40be1d: 83 fa 01 cmp $0x1,%edx + 40be20: 0f 84 d4 11 00 00 je 40cffa + 40be26: 48 89 c7 mov %rax,%rdi + 40be29: e8 82 1f 01 00 callq 41ddb0 <__cfree> + 40be2e: e9 a4 e9 ff ff jmpq 40a7d7 + 40be33: 48 8b 78 18 mov 0x18(%rax),%rdi + 40be37: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40be3c: e8 cf 9d ff ff callq 405c10 <__gettext_free_exp> + 40be41: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40be46: 48 8b 78 10 mov 0x10(%rax),%rdi + 40be4a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40be4f: e8 bc 9d ff ff callq 405c10 <__gettext_free_exp> + 40be54: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40be59: 48 8b 78 08 mov 0x8(%rax),%rdi + 40be5d: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40be62: e8 a9 9d ff ff callq 405c10 <__gettext_free_exp> + 40be67: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40be6c: e9 20 e5 ff ff jmpq 40a391 + 40be71: 48 8b 78 18 mov 0x18(%rax),%rdi + 40be75: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40be7a: e8 91 9d ff ff callq 405c10 <__gettext_free_exp> + 40be7f: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40be84: 48 8b 78 10 mov 0x10(%rax),%rdi + 40be88: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40be8d: e8 7e 9d ff ff callq 405c10 <__gettext_free_exp> + 40be92: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40be97: 48 8b 78 08 mov 0x8(%rax),%rdi + 40be9b: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40bea0: e8 6b 9d ff ff callq 405c10 <__gettext_free_exp> + 40bea5: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40beaa: e9 78 e2 ff ff jmpq 40a127 + 40beaf: 48 8b 78 18 mov 0x18(%rax),%rdi + 40beb3: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40beb8: e8 53 9d ff ff callq 405c10 <__gettext_free_exp> + 40bebd: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40bec2: 48 8b 78 10 mov 0x10(%rax),%rdi + 40bec6: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40becb: e8 40 9d ff ff callq 405c10 <__gettext_free_exp> + 40bed0: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40bed5: 48 8b 78 08 mov 0x8(%rax),%rdi + 40bed9: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40bede: e8 2d 9d ff ff callq 405c10 <__gettext_free_exp> + 40bee3: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40bee8: e9 02 f0 ff ff jmpq 40aeef + 40beed: 48 8b 78 18 mov 0x18(%rax),%rdi + 40bef1: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40bef6: e8 15 9d ff ff callq 405c10 <__gettext_free_exp> + 40befb: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40bf00: 48 8b 78 10 mov 0x10(%rax),%rdi + 40bf04: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40bf09: e8 02 9d ff ff callq 405c10 <__gettext_free_exp> + 40bf0e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40bf13: 48 8b 78 08 mov 0x8(%rax),%rdi + 40bf17: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40bf1c: e8 ef 9c ff ff callq 405c10 <__gettext_free_exp> + 40bf21: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40bf26: e9 54 dd ff ff jmpq 409c7f + 40bf2b: 48 8b 78 18 mov 0x18(%rax),%rdi + 40bf2f: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40bf34: e8 d7 9c ff ff callq 405c10 <__gettext_free_exp> + 40bf39: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40bf3e: 48 8b 78 10 mov 0x10(%rax),%rdi + 40bf42: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40bf47: e8 c4 9c ff ff callq 405c10 <__gettext_free_exp> + 40bf4c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40bf51: 48 8b 78 08 mov 0x8(%rax),%rdi + 40bf55: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40bf5a: e8 b1 9c ff ff callq 405c10 <__gettext_free_exp> + 40bf5f: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40bf64: e9 c6 f1 ff ff jmpq 40b12f + 40bf69: 48 8b 78 18 mov 0x18(%rax),%rdi + 40bf6d: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40bf72: e8 99 9c ff ff callq 405c10 <__gettext_free_exp> + 40bf77: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40bf7c: 48 8b 78 10 mov 0x10(%rax),%rdi + 40bf80: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40bf85: e8 86 9c ff ff callq 405c10 <__gettext_free_exp> + 40bf8a: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40bf8f: 48 8b 78 08 mov 0x8(%rax),%rdi + 40bf93: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40bf98: e8 73 9c ff ff callq 405c10 <__gettext_free_exp> + 40bf9d: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40bfa2: e9 68 f0 ff ff jmpq 40b00f + 40bfa7: 48 8b 78 18 mov 0x18(%rax),%rdi + 40bfab: 48 89 04 24 mov %rax,(%rsp) + 40bfaf: e8 5c 9c ff ff callq 405c10 <__gettext_free_exp> + 40bfb4: 48 8b 04 24 mov (%rsp),%rax + 40bfb8: 48 8b 78 10 mov 0x10(%rax),%rdi + 40bfbc: 48 89 04 24 mov %rax,(%rsp) + 40bfc0: e8 4b 9c ff ff callq 405c10 <__gettext_free_exp> + 40bfc5: 48 8b 04 24 mov (%rsp),%rax + 40bfc9: 48 8b 50 08 mov 0x8(%rax),%rdx + 40bfcd: 48 85 d2 test %rdx,%rdx + 40bfd0: 0f 84 91 dd ff ff je 409d67 + 40bfd6: 8b 0a mov (%rdx),%ecx + 40bfd8: 83 f9 02 cmp $0x2,%ecx + 40bfdb: 0f 84 be 00 00 00 je 40c09f + 40bfe1: 83 f9 03 cmp $0x3,%ecx + 40bfe4: 0f 84 9a 00 00 00 je 40c084 + 40bfea: 83 f9 01 cmp $0x1,%ecx + 40bfed: 0f 84 c7 00 00 00 je 40c0ba + 40bff3: 48 89 d7 mov %rdx,%rdi + 40bff6: 48 89 04 24 mov %rax,(%rsp) + 40bffa: e8 b1 1d 01 00 callq 41ddb0 <__cfree> + 40bfff: 48 8b 04 24 mov (%rsp),%rax + 40c003: e9 5f dd ff ff jmpq 409d67 + 40c008: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c00c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c011: e8 fa 9b ff ff callq 405c10 <__gettext_free_exp> + 40c016: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c01b: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c01f: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c024: e8 e7 9b ff ff callq 405c10 <__gettext_free_exp> + 40c029: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c02e: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c032: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c037: e8 d4 9b ff ff callq 405c10 <__gettext_free_exp> + 40c03c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c041: e9 49 f9 ff ff jmpq 40b98f + 40c046: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c04a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c04f: e8 bc 9b ff ff callq 405c10 <__gettext_free_exp> + 40c054: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c059: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c05d: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c062: e8 a9 9b ff ff callq 405c10 <__gettext_free_exp> + 40c067: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c06c: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c070: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c075: e8 96 9b ff ff callq 405c10 <__gettext_free_exp> + 40c07a: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c07f: e9 17 f8 ff ff jmpq 40b89b + 40c084: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40c088: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c08d: 48 89 14 24 mov %rdx,(%rsp) + 40c091: e8 7a 9b ff ff callq 405c10 <__gettext_free_exp> + 40c096: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c09b: 48 8b 14 24 mov (%rsp),%rdx + 40c09f: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40c0a3: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c0a8: 48 89 14 24 mov %rdx,(%rsp) + 40c0ac: e8 5f 9b ff ff callq 405c10 <__gettext_free_exp> + 40c0b1: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c0b6: 48 8b 14 24 mov (%rsp),%rdx + 40c0ba: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40c0be: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c0c3: 48 89 14 24 mov %rdx,(%rsp) + 40c0c7: e8 44 9b ff ff callq 405c10 <__gettext_free_exp> + 40c0cc: 48 8b 14 24 mov (%rsp),%rdx + 40c0d0: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c0d5: 48 89 d7 mov %rdx,%rdi + 40c0d8: 48 89 04 24 mov %rax,(%rsp) + 40c0dc: e8 cf 1c 01 00 callq 41ddb0 <__cfree> + 40c0e1: 48 8b 04 24 mov (%rsp),%rax + 40c0e5: e9 7d dc ff ff jmpq 409d67 + 40c0ea: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c0ee: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c0f3: e8 18 9b ff ff callq 405c10 <__gettext_free_exp> + 40c0f8: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c0fd: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c101: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c106: e8 05 9b ff ff callq 405c10 <__gettext_free_exp> + 40c10b: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c110: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c114: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c119: e8 f2 9a ff ff callq 405c10 <__gettext_free_exp> + 40c11e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c123: e9 ed f7 ff ff jmpq 40b915 + 40c128: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c12c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c131: e8 da 9a ff ff callq 405c10 <__gettext_free_exp> + 40c136: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c13b: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c13f: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c144: e8 c7 9a ff ff callq 405c10 <__gettext_free_exp> + 40c149: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c14e: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c152: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c157: e8 b4 9a ff ff callq 405c10 <__gettext_free_exp> + 40c15c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c161: e9 a3 f8 ff ff jmpq 40ba09 + 40c166: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40c16a: e8 a1 9a ff ff callq 405c10 <__gettext_free_exp> + 40c16f: 49 8b 7f 10 mov 0x10(%r15),%rdi + 40c173: e8 98 9a ff ff callq 405c10 <__gettext_free_exp> + 40c178: 49 8b 7f 08 mov 0x8(%r15),%rdi + 40c17c: e8 8f 9a ff ff callq 405c10 <__gettext_free_exp> + 40c181: e9 f6 f8 ff ff jmpq 40ba7c + 40c186: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c18a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c18f: e8 7c 9a ff ff callq 405c10 <__gettext_free_exp> + 40c194: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c199: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c19d: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c1a2: e8 69 9a ff ff callq 405c10 <__gettext_free_exp> + 40c1a7: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c1ac: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c1b0: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c1b5: e8 56 9a ff ff callq 405c10 <__gettext_free_exp> + 40c1ba: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c1bf: e9 20 f0 ff ff jmpq 40b1e4 + 40c1c4: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c1c8: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c1cd: e8 3e 9a ff ff callq 405c10 <__gettext_free_exp> + 40c1d2: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c1d7: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c1db: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c1e0: e8 2b 9a ff ff callq 405c10 <__gettext_free_exp> + 40c1e5: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c1ea: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c1ee: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c1f3: e8 18 9a ff ff callq 405c10 <__gettext_free_exp> + 40c1f8: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c1fd: e9 50 f1 ff ff jmpq 40b352 + 40c202: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c206: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c20b: e8 00 9a ff ff callq 405c10 <__gettext_free_exp> + 40c210: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c215: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c219: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c21e: e8 ed 99 ff ff callq 405c10 <__gettext_free_exp> + 40c223: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c228: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c22c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c231: e8 da 99 ff ff callq 405c10 <__gettext_free_exp> + 40c236: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c23b: e9 1e f0 ff ff jmpq 40b25e + 40c240: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c244: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c249: e8 c2 99 ff ff callq 405c10 <__gettext_free_exp> + 40c24e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c253: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c257: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c25c: e8 af 99 ff ff callq 405c10 <__gettext_free_exp> + 40c261: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c266: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c26a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c26f: e8 9c 99 ff ff callq 405c10 <__gettext_free_exp> + 40c274: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c279: e9 5a f0 ff ff jmpq 40b2d8 + 40c27e: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c282: 48 89 04 24 mov %rax,(%rsp) + 40c286: e8 85 99 ff ff callq 405c10 <__gettext_free_exp> + 40c28b: 48 8b 04 24 mov (%rsp),%rax + 40c28f: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c293: 48 89 04 24 mov %rax,(%rsp) + 40c297: e8 74 99 ff ff callq 405c10 <__gettext_free_exp> + 40c29c: 48 8b 04 24 mov (%rsp),%rax + 40c2a0: 48 8b 50 08 mov 0x8(%rax),%rdx + 40c2a4: 48 85 d2 test %rdx,%rdx + 40c2a7: 0f 84 ef f1 ff ff je 40b49c + 40c2ad: 8b 0a mov (%rdx),%ecx + 40c2af: 83 f9 02 cmp $0x2,%ecx + 40c2b2: 0f 84 1d 0b 00 00 je 40cdd5 + 40c2b8: 83 f9 03 cmp $0x3,%ecx + 40c2bb: 0f 84 f9 0a 00 00 je 40cdba + 40c2c1: 83 f9 01 cmp $0x1,%ecx + 40c2c4: 0f 84 26 0b 00 00 je 40cdf0 + 40c2ca: 48 89 d7 mov %rdx,%rdi + 40c2cd: 48 89 04 24 mov %rax,(%rsp) + 40c2d1: e8 da 1a 01 00 callq 41ddb0 <__cfree> + 40c2d6: 48 8b 04 24 mov (%rsp),%rax + 40c2da: e9 bd f1 ff ff jmpq 40b49c + 40c2df: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c2e3: 48 89 04 24 mov %rax,(%rsp) + 40c2e7: e8 24 99 ff ff callq 405c10 <__gettext_free_exp> + 40c2ec: 48 8b 04 24 mov (%rsp),%rax + 40c2f0: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c2f4: 48 89 04 24 mov %rax,(%rsp) + 40c2f8: e8 13 99 ff ff callq 405c10 <__gettext_free_exp> + 40c2fd: 48 8b 04 24 mov (%rsp),%rax + 40c301: 48 8b 50 08 mov 0x8(%rax),%rdx + 40c305: 48 85 d2 test %rdx,%rdx + 40c308: 0f 84 6a f2 ff ff je 40b578 + 40c30e: 8b 0a mov (%rdx),%ecx + 40c310: 83 f9 02 cmp $0x2,%ecx + 40c313: 0f 84 de 05 00 00 je 40c8f7 + 40c319: 83 f9 03 cmp $0x3,%ecx + 40c31c: 0f 84 ba 05 00 00 je 40c8dc + 40c322: 83 f9 01 cmp $0x1,%ecx + 40c325: 0f 84 e7 05 00 00 je 40c912 + 40c32b: 48 89 d7 mov %rdx,%rdi + 40c32e: 48 89 04 24 mov %rax,(%rsp) + 40c332: e8 79 1a 01 00 callq 41ddb0 <__cfree> + 40c337: 48 8b 04 24 mov (%rsp),%rax + 40c33b: e9 38 f2 ff ff jmpq 40b578 + 40c340: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c344: 48 89 04 24 mov %rax,(%rsp) + 40c348: e8 c3 98 ff ff callq 405c10 <__gettext_free_exp> + 40c34d: 48 8b 04 24 mov (%rsp),%rax + 40c351: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c355: 48 89 04 24 mov %rax,(%rsp) + 40c359: e8 b2 98 ff ff callq 405c10 <__gettext_free_exp> + 40c35e: 48 8b 04 24 mov (%rsp),%rax + 40c362: 48 8b 50 08 mov 0x8(%rax),%rdx + 40c366: 48 85 d2 test %rdx,%rdx + 40c369: 0f 84 bf f0 ff ff je 40b42e + 40c36f: 8b 0a mov (%rdx),%ecx + 40c371: 83 f9 02 cmp $0x2,%ecx + 40c374: 0f 84 d1 04 00 00 je 40c84b + 40c37a: 83 f9 03 cmp $0x3,%ecx + 40c37d: 0f 84 ad 04 00 00 je 40c830 + 40c383: 83 f9 01 cmp $0x1,%ecx + 40c386: 0f 84 da 04 00 00 je 40c866 + 40c38c: 48 89 d7 mov %rdx,%rdi + 40c38f: 48 89 04 24 mov %rax,(%rsp) + 40c393: e8 18 1a 01 00 callq 41ddb0 <__cfree> + 40c398: 48 8b 04 24 mov (%rsp),%rax + 40c39c: e9 8d f0 ff ff jmpq 40b42e + 40c3a1: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c3a5: 48 89 04 24 mov %rax,(%rsp) + 40c3a9: e8 62 98 ff ff callq 405c10 <__gettext_free_exp> + 40c3ae: 48 8b 04 24 mov (%rsp),%rax + 40c3b2: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c3b6: 48 89 04 24 mov %rax,(%rsp) + 40c3ba: e8 51 98 ff ff callq 405c10 <__gettext_free_exp> + 40c3bf: 48 8b 04 24 mov (%rsp),%rax + 40c3c3: 48 8b 50 08 mov 0x8(%rax),%rdx + 40c3c7: 48 85 d2 test %rdx,%rdx + 40c3ca: 0f 84 f0 ef ff ff je 40b3c0 + 40c3d0: 8b 0a mov (%rdx),%ecx + 40c3d2: 83 f9 02 cmp $0x2,%ecx + 40c3d5: 0f 84 3c 07 00 00 je 40cb17 + 40c3db: 83 f9 03 cmp $0x3,%ecx + 40c3de: 0f 84 18 07 00 00 je 40cafc + 40c3e4: 83 f9 01 cmp $0x1,%ecx + 40c3e7: 0f 84 45 07 00 00 je 40cb32 + 40c3ed: 48 89 d7 mov %rdx,%rdi + 40c3f0: 48 89 04 24 mov %rax,(%rsp) + 40c3f4: e8 b7 19 01 00 callq 41ddb0 <__cfree> + 40c3f9: 48 8b 04 24 mov (%rsp),%rax + 40c3fd: e9 be ef ff ff jmpq 40b3c0 + 40c402: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c406: 48 89 04 24 mov %rax,(%rsp) + 40c40a: e8 01 98 ff ff callq 405c10 <__gettext_free_exp> + 40c40f: 48 8b 04 24 mov (%rsp),%rax + 40c413: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c417: 48 89 04 24 mov %rax,(%rsp) + 40c41b: e8 f0 97 ff ff callq 405c10 <__gettext_free_exp> + 40c420: 48 8b 04 24 mov (%rsp),%rax + 40c424: 48 8b 50 08 mov 0x8(%rax),%rdx + 40c428: 48 85 d2 test %rdx,%rdx + 40c42b: 0f 84 d9 f0 ff ff je 40b50a + 40c431: 8b 0a mov (%rdx),%ecx + 40c433: 83 f9 02 cmp $0x2,%ecx + 40c436: 0f 84 ad 07 00 00 je 40cbe9 + 40c43c: 83 f9 03 cmp $0x3,%ecx + 40c43f: 0f 84 89 07 00 00 je 40cbce + 40c445: 83 f9 01 cmp $0x1,%ecx + 40c448: 0f 84 b6 07 00 00 je 40cc04 + 40c44e: 48 89 d7 mov %rdx,%rdi + 40c451: 48 89 04 24 mov %rax,(%rsp) + 40c455: e8 56 19 01 00 callq 41ddb0 <__cfree> + 40c45a: 48 8b 04 24 mov (%rsp),%rax + 40c45e: e9 a7 f0 ff ff jmpq 40b50a + 40c463: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c467: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c46c: e8 9f 97 ff ff callq 405c10 <__gettext_free_exp> + 40c471: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c476: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c47a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c47f: e8 8c 97 ff ff callq 405c10 <__gettext_free_exp> + 40c484: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c489: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c48d: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c492: e8 79 97 ff ff callq 405c10 <__gettext_free_exp> + 40c497: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c49c: 48 89 c7 mov %rax,%rdi + 40c49f: e8 0c 19 01 00 callq 41ddb0 <__cfree> + 40c4a4: 48 8b 04 24 mov (%rsp),%rax + 40c4a8: 48 8b 40 08 mov 0x8(%rax),%rax + 40c4ac: 48 85 c0 test %rax,%rax + 40c4af: 0f 84 35 f1 ff ff je 40b5ea + 40c4b5: 8b 10 mov (%rax),%edx + 40c4b7: 83 fa 02 cmp $0x2,%edx + 40c4ba: 0f 84 57 05 00 00 je 40ca17 + 40c4c0: 83 fa 03 cmp $0x3,%edx + 40c4c3: 0f 84 3b 05 00 00 je 40ca04 + 40c4c9: 83 fa 01 cmp $0x1,%edx + 40c4cc: 0f 84 58 05 00 00 je 40ca2a + 40c4d2: 48 89 c7 mov %rax,%rdi + 40c4d5: e8 d6 18 01 00 callq 41ddb0 <__cfree> + 40c4da: e9 0b f1 ff ff jmpq 40b5ea + 40c4df: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c4e3: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c4e8: e8 23 97 ff ff callq 405c10 <__gettext_free_exp> + 40c4ed: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c4f2: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c4f6: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c4fb: e8 10 97 ff ff callq 405c10 <__gettext_free_exp> + 40c500: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c505: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c509: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c50e: e8 fd 96 ff ff callq 405c10 <__gettext_free_exp> + 40c513: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c518: e9 2e f4 ff ff jmpq 40b94b + 40c51d: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c521: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c526: e8 e5 96 ff ff callq 405c10 <__gettext_free_exp> + 40c52b: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c530: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c534: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c539: e8 d2 96 ff ff callq 405c10 <__gettext_free_exp> + 40c53e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c543: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c547: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c54c: e8 bf 96 ff ff callq 405c10 <__gettext_free_exp> + 40c551: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c556: e9 6a f4 ff ff jmpq 40b9c5 + 40c55b: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c55f: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c564: e8 a7 96 ff ff callq 405c10 <__gettext_free_exp> + 40c569: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c56e: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c572: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c577: e8 94 96 ff ff callq 405c10 <__gettext_free_exp> + 40c57c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c581: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c585: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c58a: e8 81 96 ff ff callq 405c10 <__gettext_free_exp> + 40c58f: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c594: e9 a6 f4 ff ff jmpq 40ba3f + 40c599: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c59d: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c5a2: e8 69 96 ff ff callq 405c10 <__gettext_free_exp> + 40c5a7: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c5ac: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c5b0: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c5b5: e8 56 96 ff ff callq 405c10 <__gettext_free_exp> + 40c5ba: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c5bf: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c5c3: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c5c8: e8 43 96 ff ff callq 405c10 <__gettext_free_exp> + 40c5cd: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c5d2: e9 fa f2 ff ff jmpq 40b8d1 + 40c5d7: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40c5db: e8 30 96 ff ff callq 405c10 <__gettext_free_exp> + 40c5e0: 49 8b 7f 10 mov 0x10(%r15),%rdi + 40c5e4: e8 27 96 ff ff callq 405c10 <__gettext_free_exp> + 40c5e9: 49 8b 47 08 mov 0x8(%r15),%rax + 40c5ed: 48 85 c0 test %rax,%rax + 40c5f0: 0f 84 51 e2 ff ff je 40a847 + 40c5f6: 8b 10 mov (%rax),%edx + 40c5f8: 83 fa 02 cmp $0x2,%edx + 40c5fb: 74 28 je 40c625 + 40c5fd: 83 fa 03 cmp $0x3,%edx + 40c600: 74 12 je 40c614 + 40c602: 83 fa 01 cmp $0x1,%edx + 40c605: 74 2f je 40c636 + 40c607: 48 89 c7 mov %rax,%rdi + 40c60a: e8 a1 17 01 00 callq 41ddb0 <__cfree> + 40c60f: e9 33 e2 ff ff jmpq 40a847 + 40c614: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c618: 48 89 04 24 mov %rax,(%rsp) + 40c61c: e8 ef 95 ff ff callq 405c10 <__gettext_free_exp> + 40c621: 48 8b 04 24 mov (%rsp),%rax + 40c625: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c629: 48 89 04 24 mov %rax,(%rsp) + 40c62d: e8 de 95 ff ff callq 405c10 <__gettext_free_exp> + 40c632: 48 8b 04 24 mov (%rsp),%rax + 40c636: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c63a: 48 89 04 24 mov %rax,(%rsp) + 40c63e: e8 cd 95 ff ff callq 405c10 <__gettext_free_exp> + 40c643: 48 8b 04 24 mov (%rsp),%rax + 40c647: eb be jmp 40c607 + 40c649: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40c650: 49 8b 47 18 mov 0x18(%r15),%rax + 40c654: 48 85 c0 test %rax,%rax + 40c657: 0f 84 8c e2 ff ff je 40a8e9 + 40c65d: 8b 10 mov (%rax),%edx + 40c65f: 83 fa 02 cmp $0x2,%edx + 40c662: 0f 84 57 e2 ff ff je 40a8bf + 40c668: 83 fa 03 cmp $0x3,%edx + 40c66b: 0f 84 3d e2 ff ff je 40a8ae + 40c671: 83 fa 01 cmp $0x1,%edx + 40c674: 0f 85 67 e2 ff ff jne 40a8e1 + 40c67a: e9 51 e2 ff ff jmpq 40a8d0 + 40c67f: 90 nop + 40c680: 49 8b 47 18 mov 0x18(%r15),%rax + 40c684: 48 85 c0 test %rax,%rax + 40c687: 0f 84 5c db ff ff je 40a1e9 + 40c68d: 8b 10 mov (%rax),%edx + 40c68f: 83 fa 02 cmp $0x2,%edx + 40c692: 0f 84 27 db ff ff je 40a1bf + 40c698: 83 fa 03 cmp $0x3,%edx + 40c69b: 0f 84 0d db ff ff je 40a1ae + 40c6a1: 83 fa 01 cmp $0x1,%edx + 40c6a4: 0f 85 37 db ff ff jne 40a1e1 + 40c6aa: e9 21 db ff ff jmpq 40a1d0 + 40c6af: 90 nop + 40c6b0: 49 8b 47 18 mov 0x18(%r15),%rax + 40c6b4: 48 85 c0 test %rax,%rax + 40c6b7: 0f 84 6c e3 ff ff je 40aa29 + 40c6bd: 8b 10 mov (%rax),%edx + 40c6bf: 83 fa 02 cmp $0x2,%edx + 40c6c2: 0f 84 37 e3 ff ff je 40a9ff + 40c6c8: 83 fa 03 cmp $0x3,%edx + 40c6cb: 0f 84 1d e3 ff ff je 40a9ee + 40c6d1: 83 fa 01 cmp $0x1,%edx + 40c6d4: 0f 85 47 e3 ff ff jne 40aa21 + 40c6da: e9 31 e3 ff ff jmpq 40aa10 + 40c6df: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40c6e3: e8 28 95 ff ff callq 405c10 <__gettext_free_exp> + 40c6e8: 49 8b 7f 10 mov 0x10(%r15),%rdi + 40c6ec: e8 1f 95 ff ff callq 405c10 <__gettext_free_exp> + 40c6f1: 49 8b 47 08 mov 0x8(%r15),%rax + 40c6f5: 48 85 c0 test %rax,%rax + 40c6f8: 0f 84 89 e2 ff ff je 40a987 + 40c6fe: 8b 10 mov (%rax),%edx + 40c700: 83 fa 02 cmp $0x2,%edx + 40c703: 74 28 je 40c72d + 40c705: 83 fa 03 cmp $0x3,%edx + 40c708: 74 12 je 40c71c + 40c70a: 83 fa 01 cmp $0x1,%edx + 40c70d: 74 2f je 40c73e + 40c70f: 48 89 c7 mov %rax,%rdi + 40c712: e8 99 16 01 00 callq 41ddb0 <__cfree> + 40c717: e9 6b e2 ff ff jmpq 40a987 + 40c71c: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c720: 48 89 04 24 mov %rax,(%rsp) + 40c724: e8 e7 94 ff ff callq 405c10 <__gettext_free_exp> + 40c729: 48 8b 04 24 mov (%rsp),%rax + 40c72d: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c731: 48 89 04 24 mov %rax,(%rsp) + 40c735: e8 d6 94 ff ff callq 405c10 <__gettext_free_exp> + 40c73a: 48 8b 04 24 mov (%rsp),%rax + 40c73e: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c742: 48 89 04 24 mov %rax,(%rsp) + 40c746: e8 c5 94 ff ff callq 405c10 <__gettext_free_exp> + 40c74b: 48 8b 04 24 mov (%rsp),%rax + 40c74f: eb be jmp 40c70f + 40c751: 49 8b 7f 18 mov 0x18(%r15),%rdi + 40c755: e8 b6 94 ff ff callq 405c10 <__gettext_free_exp> + 40c75a: 49 8b 7f 10 mov 0x10(%r15),%rdi + 40c75e: e8 ad 94 ff ff callq 405c10 <__gettext_free_exp> + 40c763: 49 8b 47 08 mov 0x8(%r15),%rax + 40c767: 48 85 c0 test %rax,%rax + 40c76a: 0f 84 3f f3 ff ff je 40baaf + 40c770: 8b 10 mov (%rax),%edx + 40c772: 83 fa 02 cmp $0x2,%edx + 40c775: 74 28 je 40c79f + 40c777: 83 fa 03 cmp $0x3,%edx + 40c77a: 74 12 je 40c78e + 40c77c: 83 fa 01 cmp $0x1,%edx + 40c77f: 74 2f je 40c7b0 + 40c781: 48 89 c7 mov %rax,%rdi + 40c784: e8 27 16 01 00 callq 41ddb0 <__cfree> + 40c789: e9 21 f3 ff ff jmpq 40baaf + 40c78e: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c792: 48 89 04 24 mov %rax,(%rsp) + 40c796: e8 75 94 ff ff callq 405c10 <__gettext_free_exp> + 40c79b: 48 8b 04 24 mov (%rsp),%rax + 40c79f: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c7a3: 48 89 04 24 mov %rax,(%rsp) + 40c7a7: e8 64 94 ff ff callq 405c10 <__gettext_free_exp> + 40c7ac: 48 8b 04 24 mov (%rsp),%rax + 40c7b0: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c7b4: 48 89 04 24 mov %rax,(%rsp) + 40c7b8: e8 53 94 ff ff callq 405c10 <__gettext_free_exp> + 40c7bd: 48 8b 04 24 mov (%rsp),%rax + 40c7c1: eb be jmp 40c781 + 40c7c3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40c7c8: 4d 8b 7e 18 mov 0x18(%r14),%r15 + 40c7cc: 4d 85 ff test %r15,%r15 + 40c7cf: 0f 84 66 dc ff ff je 40a43b + 40c7d5: 41 8b 07 mov (%r15),%eax + 40c7d8: 83 f8 02 cmp $0x2,%eax + 40c7db: 0f 84 40 dc ff ff je 40a421 + 40c7e1: 83 f8 03 cmp $0x3,%eax + 40c7e4: 0f 84 2e dc ff ff je 40a418 + 40c7ea: 83 f8 01 cmp $0x1,%eax + 40c7ed: 0f 85 40 dc ff ff jne 40a433 + 40c7f3: e9 32 dc ff ff jmpq 40a42a + 40c7f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40c7ff: 00 + 40c800: 4d 8b 7e 18 mov 0x18(%r14),%r15 + 40c804: 4d 85 ff test %r15,%r15 + 40c807: 0f 84 6f d6 ff ff je 409e7c + 40c80d: 41 8b 07 mov (%r15),%eax + 40c810: 83 f8 02 cmp $0x2,%eax + 40c813: 0f 84 49 d6 ff ff je 409e62 + 40c819: 83 f8 03 cmp $0x3,%eax + 40c81c: 0f 84 37 d6 ff ff je 409e59 + 40c822: 83 f8 01 cmp $0x1,%eax + 40c825: 0f 85 49 d6 ff ff jne 409e74 + 40c82b: e9 3b d6 ff ff jmpq 409e6b + 40c830: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40c834: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c839: 48 89 14 24 mov %rdx,(%rsp) + 40c83d: e8 ce 93 ff ff callq 405c10 <__gettext_free_exp> + 40c842: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c847: 48 8b 14 24 mov (%rsp),%rdx + 40c84b: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40c84f: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c854: 48 89 14 24 mov %rdx,(%rsp) + 40c858: e8 b3 93 ff ff callq 405c10 <__gettext_free_exp> + 40c85d: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c862: 48 8b 14 24 mov (%rsp),%rdx + 40c866: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40c86a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c86f: 48 89 14 24 mov %rdx,(%rsp) + 40c873: e8 98 93 ff ff callq 405c10 <__gettext_free_exp> + 40c878: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c87d: 48 8b 14 24 mov (%rsp),%rdx + 40c881: e9 06 fb ff ff jmpq 40c38c + 40c886: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40c88a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c88f: 48 89 14 24 mov %rdx,(%rsp) + 40c893: e8 78 93 ff ff callq 405c10 <__gettext_free_exp> + 40c898: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c89d: 48 8b 14 24 mov (%rsp),%rdx + 40c8a1: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40c8a5: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c8aa: 48 89 14 24 mov %rdx,(%rsp) + 40c8ae: e8 5d 93 ff ff callq 405c10 <__gettext_free_exp> + 40c8b3: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c8b8: 48 8b 14 24 mov (%rsp),%rdx + 40c8bc: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40c8c0: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c8c5: 48 89 14 24 mov %rdx,(%rsp) + 40c8c9: e8 42 93 ff ff callq 405c10 <__gettext_free_exp> + 40c8ce: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c8d3: 48 8b 14 24 mov (%rsp),%rdx + 40c8d7: e9 44 f3 ff ff jmpq 40bc20 + 40c8dc: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40c8e0: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c8e5: 48 89 14 24 mov %rdx,(%rsp) + 40c8e9: e8 22 93 ff ff callq 405c10 <__gettext_free_exp> + 40c8ee: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c8f3: 48 8b 14 24 mov (%rsp),%rdx + 40c8f7: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40c8fb: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c900: 48 89 14 24 mov %rdx,(%rsp) + 40c904: e8 07 93 ff ff callq 405c10 <__gettext_free_exp> + 40c909: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c90e: 48 8b 14 24 mov (%rsp),%rdx + 40c912: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40c916: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c91b: 48 89 14 24 mov %rdx,(%rsp) + 40c91f: e8 ec 92 ff ff callq 405c10 <__gettext_free_exp> + 40c924: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c929: 48 8b 14 24 mov (%rsp),%rdx + 40c92d: e9 f9 f9 ff ff jmpq 40c32b + 40c932: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c936: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c93b: e8 d0 92 ff ff callq 405c10 <__gettext_free_exp> + 40c940: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c945: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c949: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c94e: e8 bd 92 ff ff callq 405c10 <__gettext_free_exp> + 40c953: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c958: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c95c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c961: e8 aa 92 ff ff callq 405c10 <__gettext_free_exp> + 40c966: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c96b: e9 b8 e8 ff ff jmpq 40b228 + 40c970: 48 8b 78 18 mov 0x18(%rax),%rdi + 40c974: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c979: e8 92 92 ff ff callq 405c10 <__gettext_free_exp> + 40c97e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c983: 48 8b 78 10 mov 0x10(%rax),%rdi + 40c987: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c98c: e8 7f 92 ff ff callq 405c10 <__gettext_free_exp> + 40c991: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c996: 48 8b 78 08 mov 0x8(%rax),%rdi + 40c99a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c99f: e8 6c 92 ff ff callq 405c10 <__gettext_free_exp> + 40c9a4: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c9a9: e9 bc e3 ff ff jmpq 40ad6a + 40c9ae: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40c9b2: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c9b7: 48 89 14 24 mov %rdx,(%rsp) + 40c9bb: e8 50 92 ff ff callq 405c10 <__gettext_free_exp> + 40c9c0: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c9c5: 48 8b 14 24 mov (%rsp),%rdx + 40c9c9: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40c9cd: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c9d2: 48 89 14 24 mov %rdx,(%rsp) + 40c9d6: e8 35 92 ff ff callq 405c10 <__gettext_free_exp> + 40c9db: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c9e0: 48 8b 14 24 mov (%rsp),%rdx + 40c9e4: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40c9e8: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40c9ed: 48 89 14 24 mov %rdx,(%rsp) + 40c9f1: e8 1a 92 ff ff callq 405c10 <__gettext_free_exp> + 40c9f6: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40c9fb: 48 8b 14 24 mov (%rsp),%rdx + 40c9ff: e9 de f2 ff ff jmpq 40bce2 + 40ca04: 48 8b 78 18 mov 0x18(%rax),%rdi + 40ca08: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ca0d: e8 fe 91 ff ff callq 405c10 <__gettext_free_exp> + 40ca12: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ca17: 48 8b 78 10 mov 0x10(%rax),%rdi + 40ca1b: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ca20: e8 eb 91 ff ff callq 405c10 <__gettext_free_exp> + 40ca25: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ca2a: 48 8b 78 08 mov 0x8(%rax),%rdi + 40ca2e: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ca33: e8 d8 91 ff ff callq 405c10 <__gettext_free_exp> + 40ca38: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ca3d: e9 90 fa ff ff jmpq 40c4d2 + 40ca42: 48 8b 78 18 mov 0x18(%rax),%rdi + 40ca46: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ca4b: e8 c0 91 ff ff callq 405c10 <__gettext_free_exp> + 40ca50: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ca55: 48 8b 78 10 mov 0x10(%rax),%rdi + 40ca59: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ca5e: e8 ad 91 ff ff callq 405c10 <__gettext_free_exp> + 40ca63: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ca68: 48 8b 78 08 mov 0x8(%rax),%rdi + 40ca6c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ca71: e8 9a 91 ff ff callq 405c10 <__gettext_free_exp> + 40ca76: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ca7b: e9 2e e7 ff ff jmpq 40b1ae + 40ca80: 48 8b 78 18 mov 0x18(%rax),%rdi + 40ca84: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ca89: e8 82 91 ff ff callq 405c10 <__gettext_free_exp> + 40ca8e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ca93: 48 8b 78 10 mov 0x10(%rax),%rdi + 40ca97: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ca9c: e8 6f 91 ff ff callq 405c10 <__gettext_free_exp> + 40caa1: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40caa6: 48 8b 78 08 mov 0x8(%rax),%rdi + 40caaa: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40caaf: e8 5c 91 ff ff callq 405c10 <__gettext_free_exp> + 40cab4: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cab9: e9 cc e1 ff ff jmpq 40ac8a + 40cabe: 48 8b 78 18 mov 0x18(%rax),%rdi + 40cac2: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cac7: e8 44 91 ff ff callq 405c10 <__gettext_free_exp> + 40cacc: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cad1: 48 8b 78 10 mov 0x10(%rax),%rdi + 40cad5: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cada: e8 31 91 ff ff callq 405c10 <__gettext_free_exp> + 40cadf: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cae4: 48 8b 78 08 mov 0x8(%rax),%rdi + 40cae8: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40caed: e8 1e 91 ff ff callq 405c10 <__gettext_free_exp> + 40caf2: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40caf7: e9 ae e0 ff ff jmpq 40abaa + 40cafc: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40cb00: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cb05: 48 89 14 24 mov %rdx,(%rsp) + 40cb09: e8 02 91 ff ff callq 405c10 <__gettext_free_exp> + 40cb0e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cb13: 48 8b 14 24 mov (%rsp),%rdx + 40cb17: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40cb1b: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cb20: 48 89 14 24 mov %rdx,(%rsp) + 40cb24: e8 e7 90 ff ff callq 405c10 <__gettext_free_exp> + 40cb29: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cb2e: 48 8b 14 24 mov (%rsp),%rdx + 40cb32: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40cb36: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cb3b: 48 89 14 24 mov %rdx,(%rsp) + 40cb3f: e8 cc 90 ff ff callq 405c10 <__gettext_free_exp> + 40cb44: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cb49: 48 8b 14 24 mov (%rsp),%rdx + 40cb4d: e9 9b f8 ff ff jmpq 40c3ed + 40cb52: 48 8b 78 18 mov 0x18(%rax),%rdi + 40cb56: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cb5b: e8 b0 90 ff ff callq 405c10 <__gettext_free_exp> + 40cb60: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cb65: 48 8b 78 10 mov 0x10(%rax),%rdi + 40cb69: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cb6e: e8 9d 90 ff ff callq 405c10 <__gettext_free_exp> + 40cb73: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cb78: 48 8b 78 08 mov 0x8(%rax),%rdi + 40cb7c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cb81: e8 8a 90 ff ff callq 405c10 <__gettext_free_exp> + 40cb86: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cb8b: e9 12 e7 ff ff jmpq 40b2a2 + 40cb90: 48 8b 78 18 mov 0x18(%rax),%rdi + 40cb94: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cb99: e8 72 90 ff ff callq 405c10 <__gettext_free_exp> + 40cb9e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cba3: 48 8b 78 10 mov 0x10(%rax),%rdi + 40cba7: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cbac: e8 5f 90 ff ff callq 405c10 <__gettext_free_exp> + 40cbb1: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cbb6: 48 8b 78 08 mov 0x8(%rax),%rdi + 40cbba: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cbbf: e8 4c 90 ff ff callq 405c10 <__gettext_free_exp> + 40cbc4: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cbc9: e9 4e e7 ff ff jmpq 40b31c + 40cbce: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40cbd2: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cbd7: 48 89 14 24 mov %rdx,(%rsp) + 40cbdb: e8 30 90 ff ff callq 405c10 <__gettext_free_exp> + 40cbe0: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cbe5: 48 8b 14 24 mov (%rsp),%rdx + 40cbe9: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40cbed: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cbf2: 48 89 14 24 mov %rdx,(%rsp) + 40cbf6: e8 15 90 ff ff callq 405c10 <__gettext_free_exp> + 40cbfb: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cc00: 48 8b 14 24 mov (%rsp),%rdx + 40cc04: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40cc08: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cc0d: 48 89 14 24 mov %rdx,(%rsp) + 40cc11: e8 fa 8f ff ff callq 405c10 <__gettext_free_exp> + 40cc16: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cc1b: 48 8b 14 24 mov (%rsp),%rdx + 40cc1f: e9 2a f8 ff ff jmpq 40c44e + 40cc24: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40cc28: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cc2d: 48 89 14 24 mov %rdx,(%rsp) + 40cc31: e8 da 8f ff ff callq 405c10 <__gettext_free_exp> + 40cc36: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cc3b: 48 8b 14 24 mov (%rsp),%rdx + 40cc3f: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40cc43: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cc48: 48 89 14 24 mov %rdx,(%rsp) + 40cc4c: e8 bf 8f ff ff callq 405c10 <__gettext_free_exp> + 40cc51: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cc56: 48 8b 14 24 mov (%rsp),%rdx + 40cc5a: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40cc5e: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cc63: 48 89 14 24 mov %rdx,(%rsp) + 40cc67: e8 a4 8f ff ff callq 405c10 <__gettext_free_exp> + 40cc6c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cc71: 48 8b 14 24 mov (%rsp),%rdx + 40cc75: e9 c9 f0 ff ff jmpq 40bd43 + 40cc7a: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40cc7e: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cc83: 48 89 14 24 mov %rdx,(%rsp) + 40cc87: e8 84 8f ff ff callq 405c10 <__gettext_free_exp> + 40cc8c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cc91: 48 8b 14 24 mov (%rsp),%rdx + 40cc95: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40cc99: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cc9e: 48 89 14 24 mov %rdx,(%rsp) + 40cca2: e8 69 8f ff ff callq 405c10 <__gettext_free_exp> + 40cca7: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ccac: 48 8b 14 24 mov (%rsp),%rdx + 40ccb0: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40ccb4: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ccb9: 48 89 14 24 mov %rdx,(%rsp) + 40ccbd: e8 4e 8f ff ff callq 405c10 <__gettext_free_exp> + 40ccc2: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ccc7: 48 8b 14 24 mov (%rsp),%rdx + 40cccb: e9 ef ee ff ff jmpq 40bbbf + 40ccd0: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40ccd4: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ccd9: 48 89 14 24 mov %rdx,(%rsp) + 40ccdd: e8 2e 8f ff ff callq 405c10 <__gettext_free_exp> + 40cce2: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cce7: 48 8b 14 24 mov (%rsp),%rdx + 40cceb: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40ccef: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40ccf4: 48 89 14 24 mov %rdx,(%rsp) + 40ccf8: e8 13 8f ff ff callq 405c10 <__gettext_free_exp> + 40ccfd: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cd02: 48 8b 14 24 mov (%rsp),%rdx + 40cd06: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40cd0a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cd0f: 48 89 14 24 mov %rdx,(%rsp) + 40cd13: e8 f8 8e ff ff callq 405c10 <__gettext_free_exp> + 40cd18: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cd1d: 48 8b 14 24 mov (%rsp),%rdx + 40cd21: e9 5b ef ff ff jmpq 40bc81 + 40cd26: 48 8b 78 18 mov 0x18(%rax),%rdi + 40cd2a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cd2f: e8 dc 8e ff ff callq 405c10 <__gettext_free_exp> + 40cd34: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cd39: 48 8b 78 10 mov 0x10(%rax),%rdi + 40cd3d: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cd42: e8 c9 8e ff ff callq 405c10 <__gettext_free_exp> + 40cd47: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cd4c: 48 8b 78 08 mov 0x8(%rax),%rdi + 40cd50: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cd55: e8 b6 8e ff ff callq 405c10 <__gettext_free_exp> + 40cd5a: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cd5f: e9 66 dd ff ff jmpq 40aaca + 40cd64: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40cd68: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cd6d: 48 89 14 24 mov %rdx,(%rsp) + 40cd71: e8 9a 8e ff ff callq 405c10 <__gettext_free_exp> + 40cd76: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cd7b: 48 8b 14 24 mov (%rsp),%rdx + 40cd7f: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40cd83: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cd88: 48 89 14 24 mov %rdx,(%rsp) + 40cd8c: e8 7f 8e ff ff callq 405c10 <__gettext_free_exp> + 40cd91: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cd96: 48 8b 14 24 mov (%rsp),%rdx + 40cd9a: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40cd9e: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cda3: 48 89 14 24 mov %rdx,(%rsp) + 40cda7: e8 64 8e ff ff callq 405c10 <__gettext_free_exp> + 40cdac: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cdb1: 48 8b 14 24 mov (%rsp),%rdx + 40cdb5: e9 a4 ed ff ff jmpq 40bb5e + 40cdba: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40cdbe: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cdc3: 48 89 14 24 mov %rdx,(%rsp) + 40cdc7: e8 44 8e ff ff callq 405c10 <__gettext_free_exp> + 40cdcc: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cdd1: 48 8b 14 24 mov (%rsp),%rdx + 40cdd5: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40cdd9: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cdde: 48 89 14 24 mov %rdx,(%rsp) + 40cde2: e8 29 8e ff ff callq 405c10 <__gettext_free_exp> + 40cde7: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40cdec: 48 8b 14 24 mov (%rsp),%rdx + 40cdf0: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40cdf4: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40cdf9: 48 89 14 24 mov %rdx,(%rsp) + 40cdfd: e8 0e 8e ff ff callq 405c10 <__gettext_free_exp> + 40ce02: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40ce07: 48 8b 14 24 mov (%rsp),%rdx + 40ce0b: e9 ba f4 ff ff jmpq 40c2ca + 40ce10: 48 8b 78 18 mov 0x18(%rax),%rdi + 40ce14: 48 89 04 24 mov %rax,(%rsp) + 40ce18: e8 f3 8d ff ff callq 405c10 <__gettext_free_exp> + 40ce1d: 48 8b 04 24 mov (%rsp),%rax + 40ce21: 48 8b 78 10 mov 0x10(%rax),%rdi + 40ce25: 48 89 04 24 mov %rax,(%rsp) + 40ce29: e8 e2 8d ff ff callq 405c10 <__gettext_free_exp> + 40ce2e: 48 8b 04 24 mov (%rsp),%rax + 40ce32: 48 8b 78 08 mov 0x8(%rax),%rdi + 40ce36: 48 89 04 24 mov %rax,(%rsp) + 40ce3a: e8 d1 8d ff ff callq 405c10 <__gettext_free_exp> + 40ce3f: 48 8b 04 24 mov (%rsp),%rax + 40ce43: e9 95 ef ff ff jmpq 40bddd + 40ce48: 48 8b 78 18 mov 0x18(%rax),%rdi + 40ce4c: 48 89 04 24 mov %rax,(%rsp) + 40ce50: e8 bb 8d ff ff callq 405c10 <__gettext_free_exp> + 40ce55: 48 8b 04 24 mov (%rsp),%rax + 40ce59: 48 8b 78 10 mov 0x10(%rax),%rdi + 40ce5d: 48 89 04 24 mov %rax,(%rsp) + 40ce61: e8 aa 8d ff ff callq 405c10 <__gettext_free_exp> + 40ce66: 48 8b 04 24 mov (%rsp),%rax + 40ce6a: 48 8b 78 08 mov 0x8(%rax),%rdi + 40ce6e: 48 89 04 24 mov %rax,(%rsp) + 40ce72: e8 99 8d ff ff callq 405c10 <__gettext_free_exp> + 40ce77: 48 8b 04 24 mov (%rsp),%rax + 40ce7b: e9 c6 e6 ff ff jmpq 40b546 + 40ce80: 48 8b 78 18 mov 0x18(%rax),%rdi + 40ce84: 48 89 04 24 mov %rax,(%rsp) + 40ce88: e8 83 8d ff ff callq 405c10 <__gettext_free_exp> + 40ce8d: 48 8b 04 24 mov (%rsp),%rax + 40ce91: 48 8b 78 10 mov 0x10(%rax),%rdi + 40ce95: 48 89 04 24 mov %rax,(%rsp) + 40ce99: e8 72 8d ff ff callq 405c10 <__gettext_free_exp> + 40ce9e: 48 8b 04 24 mov (%rsp),%rax + 40cea2: 48 8b 78 08 mov 0x8(%rax),%rdi + 40cea6: 48 89 04 24 mov %rax,(%rsp) + 40ceaa: e8 61 8d ff ff callq 405c10 <__gettext_free_exp> + 40ceaf: 48 8b 04 24 mov (%rsp),%rax + 40ceb3: e9 44 e5 ff ff jmpq 40b3fc + 40ceb8: 48 8b 78 18 mov 0x18(%rax),%rdi + 40cebc: 48 89 04 24 mov %rax,(%rsp) + 40cec0: e8 4b 8d ff ff callq 405c10 <__gettext_free_exp> + 40cec5: 48 8b 04 24 mov (%rsp),%rax + 40cec9: 48 8b 78 10 mov 0x10(%rax),%rdi + 40cecd: 48 89 04 24 mov %rax,(%rsp) + 40ced1: e8 3a 8d ff ff callq 405c10 <__gettext_free_exp> + 40ced6: 48 8b 04 24 mov (%rsp),%rax + 40ceda: 48 8b 78 08 mov 0x8(%rax),%rdi + 40cede: 48 89 04 24 mov %rax,(%rsp) + 40cee2: e8 29 8d ff ff callq 405c10 <__gettext_free_exp> + 40cee7: 48 8b 04 24 mov (%rsp),%rax + 40ceeb: e9 c4 e6 ff ff jmpq 40b5b4 + 40cef0: 48 8b 78 18 mov 0x18(%rax),%rdi + 40cef4: 48 89 04 24 mov %rax,(%rsp) + 40cef8: e8 13 8d ff ff callq 405c10 <__gettext_free_exp> + 40cefd: 48 8b 04 24 mov (%rsp),%rax + 40cf01: 48 8b 78 10 mov 0x10(%rax),%rdi + 40cf05: 48 89 04 24 mov %rax,(%rsp) + 40cf09: e8 02 8d ff ff callq 405c10 <__gettext_free_exp> + 40cf0e: 48 8b 04 24 mov (%rsp),%rax + 40cf12: 48 8b 78 08 mov 0x8(%rax),%rdi + 40cf16: 48 89 04 24 mov %rax,(%rsp) + 40cf1a: e8 f1 8c ff ff callq 405c10 <__gettext_free_exp> + 40cf1f: 48 8b 04 24 mov (%rsp),%rax + 40cf23: e9 66 e4 ff ff jmpq 40b38e + 40cf28: 48 8b 78 18 mov 0x18(%rax),%rdi + 40cf2c: 48 89 04 24 mov %rax,(%rsp) + 40cf30: e8 db 8c ff ff callq 405c10 <__gettext_free_exp> + 40cf35: 48 8b 04 24 mov (%rsp),%rax + 40cf39: 48 8b 78 10 mov 0x10(%rax),%rdi + 40cf3d: 48 89 04 24 mov %rax,(%rsp) + 40cf41: e8 ca 8c ff ff callq 405c10 <__gettext_free_exp> + 40cf46: 48 8b 04 24 mov (%rsp),%rax + 40cf4a: 48 8b 78 08 mov 0x8(%rax),%rdi + 40cf4e: 48 89 04 24 mov %rax,(%rsp) + 40cf52: e8 b9 8c ff ff callq 405c10 <__gettext_free_exp> + 40cf57: 48 8b 04 24 mov (%rsp),%rax + 40cf5b: e9 26 e1 ff ff jmpq 40b086 + 40cf60: 48 8b 78 18 mov 0x18(%rax),%rdi + 40cf64: 48 89 04 24 mov %rax,(%rsp) + 40cf68: e8 a3 8c ff ff callq 405c10 <__gettext_free_exp> + 40cf6d: 48 8b 04 24 mov (%rsp),%rax + 40cf71: 48 8b 78 10 mov 0x10(%rax),%rdi + 40cf75: 48 89 04 24 mov %rax,(%rsp) + 40cf79: e8 92 8c ff ff callq 405c10 <__gettext_free_exp> + 40cf7e: 48 8b 04 24 mov (%rsp),%rax + 40cf82: 48 8b 78 08 mov 0x8(%rax),%rdi + 40cf86: 48 89 04 24 mov %rax,(%rsp) + 40cf8a: e8 81 8c ff ff callq 405c10 <__gettext_free_exp> + 40cf8f: 48 8b 04 24 mov (%rsp),%rax + 40cf93: e9 fc ed ff ff jmpq 40bd94 + 40cf98: 48 8b 04 24 mov (%rsp),%rax + 40cf9c: 48 8b 78 18 mov 0x18(%rax),%rdi + 40cfa0: e8 6b 8c ff ff callq 405c10 <__gettext_free_exp> + 40cfa5: 48 8b 04 24 mov (%rsp),%rax + 40cfa9: 48 8b 40 10 mov 0x10(%rax),%rax + 40cfad: 48 85 c0 test %rax,%rax + 40cfb0: 0f 84 ee f4 ff ff je 40c4a4 + 40cfb6: 8b 10 mov (%rax),%edx + 40cfb8: 83 fa 02 cmp $0x2,%edx + 40cfbb: 0f 84 b5 f4 ff ff je 40c476 + 40cfc1: 83 fa 03 cmp $0x3,%edx + 40cfc4: 0f 84 99 f4 ff ff je 40c463 + 40cfca: 83 fa 01 cmp $0x1,%edx + 40cfcd: 0f 85 c9 f4 ff ff jne 40c49c + 40cfd3: e9 b1 f4 ff ff jmpq 40c489 + 40cfd8: 48 8b 78 18 mov 0x18(%rax),%rdi + 40cfdc: 48 89 04 24 mov %rax,(%rsp) + 40cfe0: e8 2b 8c ff ff callq 405c10 <__gettext_free_exp> + 40cfe5: 48 8b 04 24 mov (%rsp),%rax + 40cfe9: 48 8b 78 10 mov 0x10(%rax),%rdi + 40cfed: 48 89 04 24 mov %rax,(%rsp) + 40cff1: e8 1a 8c ff ff callq 405c10 <__gettext_free_exp> + 40cff6: 48 8b 04 24 mov (%rsp),%rax + 40cffa: 48 8b 78 08 mov 0x8(%rax),%rdi + 40cffe: 48 89 04 24 mov %rax,(%rsp) + 40d002: e8 09 8c ff ff callq 405c10 <__gettext_free_exp> + 40d007: 48 8b 04 24 mov (%rsp),%rax + 40d00b: e9 16 ee ff ff jmpq 40be26 + 40d010: 48 8b 04 24 mov (%rsp),%rax + 40d014: 48 8b 40 18 mov 0x18(%rax),%rax + 40d018: 48 85 c0 test %rax,%rax + 40d01b: 0f 84 46 d3 ff ff je 40a367 + 40d021: 8b 10 mov (%rax),%edx + 40d023: 83 fa 02 cmp $0x2,%edx + 40d026: 0f 84 0d d3 ff ff je 40a339 + 40d02c: 83 fa 03 cmp $0x3,%edx + 40d02f: 0f 84 f1 d2 ff ff je 40a326 + 40d035: 83 fa 01 cmp $0x1,%edx + 40d038: 0f 85 21 d3 ff ff jne 40a35f + 40d03e: e9 09 d3 ff ff jmpq 40a34c + 40d043: 48 8b 78 18 mov 0x18(%rax),%rdi + 40d047: 48 89 04 24 mov %rax,(%rsp) + 40d04b: e8 c0 8b ff ff callq 405c10 <__gettext_free_exp> + 40d050: 48 8b 04 24 mov (%rsp),%rax + 40d054: 48 8b 78 10 mov 0x10(%rax),%rdi + 40d058: 48 89 04 24 mov %rax,(%rsp) + 40d05c: e8 af 8b ff ff callq 405c10 <__gettext_free_exp> + 40d061: 48 8b 04 24 mov (%rsp),%rax + 40d065: 48 8b 50 08 mov 0x8(%rax),%rdx + 40d069: 48 85 d2 test %rdx,%rdx + 40d06c: 0f 84 d4 dd ff ff je 40ae46 + 40d072: 8b 0a mov (%rdx),%ecx + 40d074: 83 f9 02 cmp $0x2,%ecx + 40d077: 74 3a je 40d0b3 + 40d079: 83 f9 03 cmp $0x3,%ecx + 40d07c: 74 1a je 40d098 + 40d07e: 83 f9 01 cmp $0x1,%ecx + 40d081: 74 4b je 40d0ce + 40d083: 48 89 d7 mov %rdx,%rdi + 40d086: 48 89 04 24 mov %rax,(%rsp) + 40d08a: e8 21 0d 01 00 callq 41ddb0 <__cfree> + 40d08f: 48 8b 04 24 mov (%rsp),%rax + 40d093: e9 ae dd ff ff jmpq 40ae46 + 40d098: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40d09c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40d0a1: 48 89 14 24 mov %rdx,(%rsp) + 40d0a5: e8 66 8b ff ff callq 405c10 <__gettext_free_exp> + 40d0aa: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40d0af: 48 8b 14 24 mov (%rsp),%rdx + 40d0b3: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40d0b7: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40d0bc: 48 89 14 24 mov %rdx,(%rsp) + 40d0c0: e8 4b 8b ff ff callq 405c10 <__gettext_free_exp> + 40d0c5: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40d0ca: 48 8b 14 24 mov (%rsp),%rdx + 40d0ce: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40d0d2: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40d0d7: 48 89 14 24 mov %rdx,(%rsp) + 40d0db: e8 30 8b ff ff callq 405c10 <__gettext_free_exp> + 40d0e0: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40d0e5: 48 8b 14 24 mov (%rsp),%rdx + 40d0e9: eb 98 jmp 40d083 + 40d0eb: 48 8b 78 18 mov 0x18(%rax),%rdi + 40d0ef: 48 89 04 24 mov %rax,(%rsp) + 40d0f3: e8 18 8b ff ff callq 405c10 <__gettext_free_exp> + 40d0f8: 48 8b 04 24 mov (%rsp),%rax + 40d0fc: 48 8b 78 10 mov 0x10(%rax),%rdi + 40d100: 48 89 04 24 mov %rax,(%rsp) + 40d104: e8 07 8b ff ff callq 405c10 <__gettext_free_exp> + 40d109: 48 8b 04 24 mov (%rsp),%rax + 40d10d: 48 8b 78 08 mov 0x8(%rax),%rdi + 40d111: 48 89 04 24 mov %rax,(%rsp) + 40d115: e8 f6 8a ff ff callq 405c10 <__gettext_free_exp> + 40d11a: 48 8b 04 24 mov (%rsp),%rax + 40d11e: e9 43 de ff ff jmpq 40af66 + 40d123: 48 8b 78 18 mov 0x18(%rax),%rdi + 40d127: 48 89 04 24 mov %rax,(%rsp) + 40d12b: e8 e0 8a ff ff callq 405c10 <__gettext_free_exp> + 40d130: 48 8b 04 24 mov (%rsp),%rax + 40d134: 48 8b 78 10 mov 0x10(%rax),%rdi + 40d138: 48 89 04 24 mov %rax,(%rsp) + 40d13c: e8 cf 8a ff ff callq 405c10 <__gettext_free_exp> + 40d141: 48 8b 04 24 mov (%rsp),%rax + 40d145: 48 8b 78 08 mov 0x8(%rax),%rdi + 40d149: 48 89 04 24 mov %rax,(%rsp) + 40d14d: e8 be 8a ff ff callq 405c10 <__gettext_free_exp> + 40d152: 48 8b 04 24 mov (%rsp),%rax + 40d156: e9 7d e3 ff ff jmpq 40b4d8 + 40d15b: 48 8b 78 18 mov 0x18(%rax),%rdi + 40d15f: 48 89 04 24 mov %rax,(%rsp) + 40d163: e8 a8 8a ff ff callq 405c10 <__gettext_free_exp> + 40d168: 48 8b 04 24 mov (%rsp),%rax + 40d16c: 48 8b 78 10 mov 0x10(%rax),%rdi + 40d170: 48 89 04 24 mov %rax,(%rsp) + 40d174: e8 97 8a ff ff callq 405c10 <__gettext_free_exp> + 40d179: 48 8b 04 24 mov (%rsp),%rax + 40d17d: 48 8b 50 08 mov 0x8(%rax),%rdx + 40d181: 48 85 d2 test %rdx,%rdx + 40d184: 0f 84 e0 e2 ff ff je 40b46a + 40d18a: 8b 0a mov (%rdx),%ecx + 40d18c: 83 f9 02 cmp $0x2,%ecx + 40d18f: 74 3a je 40d1cb + 40d191: 83 f9 03 cmp $0x3,%ecx + 40d194: 74 1a je 40d1b0 + 40d196: 83 f9 01 cmp $0x1,%ecx + 40d199: 74 4b je 40d1e6 + 40d19b: 48 89 d7 mov %rdx,%rdi + 40d19e: 48 89 04 24 mov %rax,(%rsp) + 40d1a2: e8 09 0c 01 00 callq 41ddb0 <__cfree> + 40d1a7: 48 8b 04 24 mov (%rsp),%rax + 40d1ab: e9 ba e2 ff ff jmpq 40b46a + 40d1b0: 48 8b 7a 18 mov 0x18(%rdx),%rdi + 40d1b4: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40d1b9: 48 89 14 24 mov %rdx,(%rsp) + 40d1bd: e8 4e 8a ff ff callq 405c10 <__gettext_free_exp> + 40d1c2: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40d1c7: 48 8b 14 24 mov (%rsp),%rdx + 40d1cb: 48 8b 7a 10 mov 0x10(%rdx),%rdi + 40d1cf: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40d1d4: 48 89 14 24 mov %rdx,(%rsp) + 40d1d8: e8 33 8a ff ff callq 405c10 <__gettext_free_exp> + 40d1dd: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40d1e2: 48 8b 14 24 mov (%rsp),%rdx + 40d1e6: 48 8b 7a 08 mov 0x8(%rdx),%rdi + 40d1ea: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40d1ef: 48 89 14 24 mov %rdx,(%rsp) + 40d1f3: e8 18 8a ff ff callq 405c10 <__gettext_free_exp> + 40d1f8: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40d1fd: 48 8b 14 24 mov (%rsp),%rdx + 40d201: eb 98 jmp 40d19b + 40d203: bf 20 00 00 00 mov $0x20,%edi + 40d208: 89 34 24 mov %esi,(%rsp) + 40d20b: e8 00 08 01 00 callq 41da10 <__libc_malloc> + 40d210: 48 85 c0 test %rax,%rax + 40d213: 8b 34 24 mov (%rsp),%esi + 40d216: 0f 84 b4 d3 ff ff je 40a5d0 + 40d21c: 44 89 20 mov %r12d,(%rax) + 40d21f: 89 70 04 mov %esi,0x4(%rax) + 40d222: e9 ab d3 ff ff jmpq 40a5d2 + 40d227: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40d22e: 00 00 + +000000000040d230 <__gettextparse>: + 40d230: 41 57 push %r15 + 40d232: 41 56 push %r14 + 40d234: 45 31 c0 xor %r8d,%r8d + 40d237: 41 55 push %r13 + 40d239: 41 54 push %r12 + 40d23b: 45 89 c5 mov %r8d,%r13d + 40d23e: 55 push %rbp + 40d23f: 53 push %rbx + 40d240: bd c8 00 00 00 mov $0xc8,%ebp + 40d245: 41 bc fe ff ff ff mov $0xfffffffe,%r12d + 40d24b: 48 81 ec 28 08 00 00 sub $0x828,%rsp + 40d252: 48 8d 9c 24 e0 01 00 lea 0x1e0(%rsp),%rbx + 40d259: 00 + 40d25a: 4c 8d 74 24 50 lea 0x50(%rsp),%r14 + 40d25f: 48 89 7c 24 18 mov %rdi,0x18(%rsp) + 40d264: c7 44 24 0c 00 00 00 movl $0x0,0xc(%rsp) + 40d26b: 00 + 40d26c: 48 89 1c 24 mov %rbx,(%rsp) + 40d270: 4c 89 f1 mov %r14,%rcx + 40d273: 48 8d 44 2d 00 lea 0x0(%rbp,%rbp,1),%rax + 40d278: 66 45 89 2e mov %r13w,(%r14) + 40d27c: 48 8d 54 01 fe lea -0x2(%rcx,%rax,1),%rdx + 40d281: 49 39 d6 cmp %rdx,%r14 + 40d284: 0f 82 c4 00 00 00 jb 40d34e <__gettextparse+0x11e> + 40d28a: 49 29 ce sub %rcx,%r14 + 40d28d: 49 d1 fe sar %r14 + 40d290: 48 81 fd 0f 27 00 00 cmp $0x270f,%rbp + 40d297: 49 8d 5e 01 lea 0x1(%r14),%rbx + 40d29b: 0f 87 0e 07 00 00 ja 40d9af <__gettextparse+0x77f> + 40d2a1: 48 3d 10 27 00 00 cmp $0x2710,%rax + 40d2a7: bd 10 27 00 00 mov $0x2710,%ebp + 40d2ac: 48 89 4c 24 10 mov %rcx,0x10(%rsp) + 40d2b1: 48 0f 46 e8 cmovbe %rax,%rbp + 40d2b5: 48 8d 44 ad 00 lea 0x0(%rbp,%rbp,4),%rax + 40d2ba: 48 8d 7c 00 07 lea 0x7(%rax,%rax,1),%rdi + 40d2bf: e8 4c 07 01 00 callq 41da10 <__libc_malloc> + 40d2c4: 48 85 c0 test %rax,%rax + 40d2c7: 49 89 c7 mov %rax,%r15 + 40d2ca: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx + 40d2cf: 0f 84 da 06 00 00 je 40d9af <__gettextparse+0x77f> + 40d2d5: 4c 8d 34 1b lea (%rbx,%rbx,1),%r14 + 40d2d9: 48 89 ce mov %rcx,%rsi + 40d2dc: 48 89 c7 mov %rax,%rdi + 40d2df: 48 c1 e3 03 shl $0x3,%rbx + 40d2e3: 4c 89 f2 mov %r14,%rdx + 40d2e6: e8 35 ed 01 00 callq 42c020 + 40d2eb: 4d 8d 14 6f lea (%r15,%rbp,2),%r10 + 40d2ef: 48 8b 34 24 mov (%rsp),%rsi + 40d2f3: 48 8d 44 2d 00 lea 0x0(%rbp,%rbp,1),%rax + 40d2f8: 48 89 da mov %rbx,%rdx + 40d2fb: 4c 89 d7 mov %r10,%rdi + 40d2fe: 48 89 44 24 20 mov %rax,0x20(%rsp) + 40d303: e8 18 ed 01 00 callq 42c020 + 40d308: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx + 40d30d: 49 89 c2 mov %rax,%r10 + 40d310: 48 8d 44 24 50 lea 0x50(%rsp),%rax + 40d315: 48 39 c1 cmp %rax,%rcx + 40d318: 74 10 je 40d32a <__gettextparse+0xfa> + 40d31a: 48 89 cf mov %rcx,%rdi + 40d31d: 4c 89 14 24 mov %r10,(%rsp) + 40d321: e8 8a 0a 01 00 callq 41ddb0 <__cfree> + 40d326: 4c 8b 14 24 mov (%rsp),%r10 + 40d32a: 48 8d 44 2d 00 lea 0x0(%rbp,%rbp,1),%rax + 40d32f: 4f 8d 74 37 fe lea -0x2(%r15,%r14,1),%r14 + 40d334: 49 8d 5c 1a f8 lea -0x8(%r10,%rbx,1),%rbx + 40d339: 49 8d 44 07 fe lea -0x2(%r15,%rax,1),%rax + 40d33e: 49 39 c6 cmp %rax,%r14 + 40d341: 0f 83 7f 06 00 00 jae 40d9c6 <__gettextparse+0x796> + 40d347: 4c 89 14 24 mov %r10,(%rsp) + 40d34b: 4c 89 f9 mov %r15,%rcx + 40d34e: 41 83 fd 09 cmp $0x9,%r13d + 40d352: 0f 84 64 06 00 00 je 40d9bc <__gettextparse+0x78c> + 40d358: 4d 63 c5 movslq %r13d,%r8 + 40d35b: 41 0f be 80 20 17 4a movsbl 0x4a1720(%r8),%eax + 40d362: 00 + 40d363: 83 f8 f6 cmp $0xfffffff6,%eax + 40d366: 74 3f je 40d3a7 <__gettextparse+0x177> + 40d368: 41 83 fc fe cmp $0xfffffffe,%r12d + 40d36c: 0f 84 2e 02 00 00 je 40d5a0 <__gettextparse+0x370> + 40d372: 45 85 e4 test %r12d,%r12d + 40d375: 0f 8e bc 01 00 00 jle 40d537 <__gettextparse+0x307> + 40d37b: 41 81 fc 06 01 00 00 cmp $0x106,%r12d + 40d382: be 02 00 00 00 mov $0x2,%esi + 40d387: 0f 8e 93 01 00 00 jle 40d520 <__gettextparse+0x2f0> + 40d38d: 8d 14 06 lea (%rsi,%rax,1),%edx + 40d390: 83 fa 36 cmp $0x36,%edx + 40d393: 77 12 ja 40d3a7 <__gettextparse+0x177> + 40d395: 48 63 d2 movslq %edx,%rdx + 40d398: 0f be ba a0 16 4a 00 movsbl 0x4a16a0(%rdx),%edi + 40d39f: 39 fe cmp %edi,%esi + 40d3a1: 0f 84 b9 01 00 00 je 40d560 <__gettextparse+0x330> + 40d3a7: 41 0f b6 b0 40 17 4a movzbl 0x4a1740(%r8),%esi + 40d3ae: 00 + 40d3af: 85 f6 test %esi,%esi + 40d3b1: 48 89 f2 mov %rsi,%rdx + 40d3b4: 74 32 je 40d3e8 <__gettextparse+0x1b8> + 40d3b6: 48 63 f6 movslq %esi,%rsi + 40d3b9: bf 01 00 00 00 mov $0x1,%edi + 40d3be: 0f b6 86 60 17 4a 00 movzbl 0x4a1760(%rsi),%eax + 40d3c5: 29 c7 sub %eax,%edi + 40d3c7: 49 89 c7 mov %rax,%r15 + 40d3ca: 80 fa 0d cmp $0xd,%dl + 40d3cd: 48 63 c7 movslq %edi,%rax + 40d3d0: 48 8b 04 c3 mov (%rbx,%rax,8),%rax + 40d3d4: 0f 87 94 03 00 00 ja 40d76e <__gettextparse+0x53e> + 40d3da: ff 24 d5 40 12 4a 00 jmpq *0x4a1240(,%rdx,8) + 40d3e1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40d3e8: 83 7c 24 0c 03 cmpl $0x3,0xc(%rsp) + 40d3ed: 75 21 jne 40d410 <__gettextparse+0x1e0> + 40d3ef: e9 54 01 00 00 jmpq 40d548 <__gettextparse+0x318> + 40d3f4: 0f 1f 40 00 nopl 0x0(%rax) + 40d3f8: 4c 39 f1 cmp %r14,%rcx + 40d3fb: 74 53 je 40d450 <__gettextparse+0x220> + 40d3fd: 49 83 ee 02 sub $0x2,%r14 + 40d401: 49 0f bf 06 movswq (%r14),%rax + 40d405: 48 83 eb 08 sub $0x8,%rbx + 40d409: 0f be 80 20 17 4a 00 movsbl 0x4a1720(%rax),%eax + 40d410: 83 f8 f6 cmp $0xfffffff6,%eax + 40d413: 74 e3 je 40d3f8 <__gettextparse+0x1c8> + 40d415: 83 c0 01 add $0x1,%eax + 40d418: 83 f8 36 cmp $0x36,%eax + 40d41b: 77 db ja 40d3f8 <__gettextparse+0x1c8> + 40d41d: 48 98 cltq + 40d41f: 80 b8 a0 16 4a 00 01 cmpb $0x1,0x4a16a0(%rax) + 40d426: 75 d0 jne 40d3f8 <__gettextparse+0x1c8> + 40d428: 44 0f b6 a8 e0 16 4a movzbl 0x4a16e0(%rax),%r13d + 40d42f: 00 + 40d430: 45 85 ed test %r13d,%r13d + 40d433: 74 c3 je 40d3f8 <__gettextparse+0x1c8> + 40d435: 48 8b 44 24 28 mov 0x28(%rsp),%rax + 40d43a: 48 83 c3 08 add $0x8,%rbx + 40d43e: c7 44 24 0c 03 00 00 movl $0x3,0xc(%rsp) + 40d445: 00 + 40d446: 48 89 03 mov %rax,(%rbx) + 40d449: e9 b0 00 00 00 jmpq 40d4fe <__gettextparse+0x2ce> + 40d44e: 66 90 xchg %ax,%ax + 40d450: bb 01 00 00 00 mov $0x1,%ebx + 40d455: 48 8d 44 24 50 lea 0x50(%rsp),%rax + 40d45a: 49 39 c6 cmp %rax,%r14 + 40d45d: 74 08 je 40d467 <__gettextparse+0x237> + 40d45f: 4c 89 f7 mov %r14,%rdi + 40d462: e8 49 09 01 00 callq 41ddb0 <__cfree> + 40d467: 48 81 c4 28 08 00 00 add $0x828,%rsp + 40d46e: 89 d8 mov %ebx,%eax + 40d470: 5b pop %rbx + 40d471: 5d pop %rbp + 40d472: 41 5c pop %r12 + 40d474: 41 5d pop %r13 + 40d476: 41 5e pop %r14 + 40d478: 41 5f pop %r15 + 40d47a: c3 retq + 40d47b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40d480: 48 8b 03 mov (%rbx),%rax + 40d483: 48 8b 53 f0 mov -0x10(%rbx),%rdx + 40d487: 48 8d 74 24 30 lea 0x30(%rsp),%rsi + 40d48c: 8b 7b f8 mov -0x8(%rbx),%edi + 40d48f: 48 89 4c 24 10 mov %rcx,0x10(%rsp) + 40d494: 48 89 54 24 30 mov %rdx,0x30(%rsp) + 40d499: 48 89 44 24 38 mov %rax,0x38(%rsp) + 40d49e: e8 2d 8e ff ff callq 4062d0 + 40d4a3: 4a 8d 3c fd 00 00 00 lea 0x0(,%r15,8),%rdi + 40d4aa: 00 + 40d4ab: 4b 8d 14 3f lea (%r15,%r15,1),%rdx + 40d4af: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx + 40d4b4: be ff ff ff ff mov $0xffffffff,%esi + 40d4b9: 41 b8 02 00 00 00 mov $0x2,%r8d + 40d4bf: 48 f7 df neg %rdi + 40d4c2: 48 f7 da neg %rdx + 40d4c5: 48 01 df add %rbx,%rdi + 40d4c8: 49 01 d6 add %rdx,%r14 + 40d4cb: 48 89 47 08 mov %rax,0x8(%rdi) + 40d4cf: 41 0f bf 06 movswl (%r14),%eax + 40d4d3: 48 8d 5f 08 lea 0x8(%rdi),%rbx + 40d4d7: 89 c2 mov %eax,%edx + 40d4d9: 01 f0 add %esi,%eax + 40d4db: 83 f8 36 cmp $0x36,%eax + 40d4de: 77 13 ja 40d4f3 <__gettextparse+0x2c3> + 40d4e0: 48 98 cltq + 40d4e2: 66 0f be b0 a0 16 4a movsbw 0x4a16a0(%rax),%si + 40d4e9: 00 + 40d4ea: 66 39 f2 cmp %si,%dx + 40d4ed: 0f 84 5b 02 00 00 je 40d74e <__gettextparse+0x51e> + 40d4f3: 4d 63 c0 movslq %r8d,%r8 + 40d4f6: 45 0f be a8 3b 17 4a movsbl 0x4a173b(%r8),%r13d + 40d4fd: 00 + 40d4fe: 49 83 c6 02 add $0x2,%r14 + 40d502: e9 6c fd ff ff jmpq 40d273 <__gettextparse+0x43> + 40d507: 49 8d 79 02 lea 0x2(%r9),%rdi + 40d50b: 48 8b 74 24 18 mov 0x18(%rsp),%rsi + 40d510: 45 85 e4 test %r12d,%r12d + 40d513: 48 89 3e mov %rdi,(%rsi) + 40d516: 7e 1f jle 40d537 <__gettextparse+0x307> + 40d518: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40d51f: 00 + 40d520: 49 63 d4 movslq %r12d,%rdx + 40d523: 0f b6 b2 80 17 4a 00 movzbl 0x4a1780(%rdx),%esi + 40d52a: e9 5e fe ff ff jmpq 40d38d <__gettextparse+0x15d> + 40d52f: 48 8b 74 24 18 mov 0x18(%rsp),%rsi + 40d534: 4c 89 0e mov %r9,(%rsi) + 40d537: 31 f6 xor %esi,%esi + 40d539: 45 31 e4 xor %r12d,%r12d + 40d53c: e9 4c fe ff ff jmpq 40d38d <__gettextparse+0x15d> + 40d541: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40d548: 41 83 fc 00 cmp $0x0,%r12d + 40d54c: 0f 8e 09 02 00 00 jle 40d75b <__gettextparse+0x52b> + 40d552: 41 bc fe ff ff ff mov $0xfffffffe,%r12d + 40d558: e9 b3 fe ff ff jmpq 40d410 <__gettextparse+0x1e0> + 40d55d: 0f 1f 00 nopl (%rax) + 40d560: 44 0f b6 aa e0 16 4a movzbl 0x4a16e0(%rdx),%r13d + 40d567: 00 + 40d568: 45 85 ed test %r13d,%r13d + 40d56b: 0f 84 c8 01 00 00 je 40d739 <__gettextparse+0x509> + 40d571: 8b 44 24 0c mov 0xc(%rsp),%eax + 40d575: 41 bc fe ff ff ff mov $0xfffffffe,%r12d + 40d57b: 83 f8 01 cmp $0x1,%eax + 40d57e: 83 d0 ff adc $0xffffffff,%eax + 40d581: 48 83 c3 08 add $0x8,%rbx + 40d585: 89 44 24 0c mov %eax,0xc(%rsp) + 40d589: 48 8b 44 24 28 mov 0x28(%rsp),%rax + 40d58e: 48 89 03 mov %rax,(%rbx) + 40d591: e9 68 ff ff ff jmpq 40d4fe <__gettextparse+0x2ce> + 40d596: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40d59d: 00 00 00 + 40d5a0: 48 8b 74 24 18 mov 0x18(%rsp),%rsi + 40d5a5: 4c 8b 0e mov (%rsi),%r9 + 40d5a8: 41 0f b6 11 movzbl (%r9),%edx + 40d5ac: 84 d2 test %dl,%dl + 40d5ae: 74 84 je 40d534 <__gettextparse+0x304> + 40d5b0: 80 fa 09 cmp $0x9,%dl + 40d5b3: 74 0b je 40d5c0 <__gettextparse+0x390> + 40d5b5: 80 fa 20 cmp $0x20,%dl + 40d5b8: 75 20 jne 40d5da <__gettextparse+0x3aa> + 40d5ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 40d5c0: 49 83 c1 01 add $0x1,%r9 + 40d5c4: 41 0f b6 11 movzbl (%r9),%edx + 40d5c8: 84 d2 test %dl,%dl + 40d5ca: 0f 84 5f ff ff ff je 40d52f <__gettextparse+0x2ff> + 40d5d0: 80 fa 20 cmp $0x20,%dl + 40d5d3: 74 eb je 40d5c0 <__gettextparse+0x390> + 40d5d5: 80 fa 09 cmp $0x9,%dl + 40d5d8: 74 e6 je 40d5c0 <__gettextparse+0x390> + 40d5da: 80 fa 7c cmp $0x7c,%dl + 40d5dd: 49 8d 79 01 lea 0x1(%r9),%rdi + 40d5e1: 44 0f be e2 movsbl %dl,%r12d + 40d5e5: 0f 87 c0 01 00 00 ja 40d7ab <__gettextparse+0x57b> + 40d5eb: 0f b6 d2 movzbl %dl,%edx + 40d5ee: ff 24 d5 b0 12 4a 00 jmpq *0x4a12b0(,%rdx,8) + 40d5f5: 48 8b 13 mov (%rbx),%rdx + 40d5f8: 48 85 d2 test %rdx,%rdx + 40d5fb: 0f 84 60 01 00 00 je 40d761 <__gettextparse+0x531> + 40d601: 48 8b 74 24 18 mov 0x18(%rsp),%rsi + 40d606: 4a 8d 3c fd 00 00 00 lea 0x0(,%r15,8),%rdi + 40d60d: 00 + 40d60e: 41 b8 01 00 00 00 mov $0x1,%r8d + 40d614: 48 f7 df neg %rdi + 40d617: 48 89 56 08 mov %rdx,0x8(%rsi) + 40d61b: 4b 8d 14 3f lea (%r15,%r15,1),%rdx + 40d61f: be f6 ff ff ff mov $0xfffffff6,%esi + 40d624: 48 f7 da neg %rdx + 40d627: e9 99 fe ff ff jmpq 40d4c5 <__gettextparse+0x295> + 40d62c: 48 8b 53 f0 mov -0x10(%rbx),%rdx + 40d630: 48 8b 73 e0 mov -0x20(%rbx),%rsi + 40d634: bf 03 00 00 00 mov $0x3,%edi + 40d639: 48 8b 03 mov (%rbx),%rax + 40d63c: 48 89 4c 24 10 mov %rcx,0x10(%rsp) + 40d641: 48 89 54 24 38 mov %rdx,0x38(%rsp) + 40d646: 48 8d 54 24 30 lea 0x30(%rsp),%rdx + 40d64b: 48 89 74 24 30 mov %rsi,0x30(%rsp) + 40d650: be 10 00 00 00 mov $0x10,%esi + 40d655: 48 89 44 24 40 mov %rax,0x40(%rsp) + 40d65a: e8 01 c4 ff ff callq 409a60 + 40d65f: e9 3f fe ff ff jmpq 40d4a3 <__gettextparse+0x273> + 40d664: 48 8b 03 mov (%rbx),%rax + 40d667: 48 8b 53 f0 mov -0x10(%rbx),%rdx + 40d66b: 48 8d 74 24 30 lea 0x30(%rsp),%rsi + 40d670: 48 89 4c 24 10 mov %rcx,0x10(%rsp) + 40d675: bf 0f 00 00 00 mov $0xf,%edi + 40d67a: 48 89 54 24 30 mov %rdx,0x30(%rsp) + 40d67f: 48 89 44 24 38 mov %rax,0x38(%rsp) + 40d684: e9 15 fe ff ff jmpq 40d49e <__gettextparse+0x26e> + 40d689: 48 8b 03 mov (%rbx),%rax + 40d68c: 48 8b 53 f0 mov -0x10(%rbx),%rdx + 40d690: 48 8d 74 24 30 lea 0x30(%rsp),%rsi + 40d695: 48 89 4c 24 10 mov %rcx,0x10(%rsp) + 40d69a: bf 0e 00 00 00 mov $0xe,%edi + 40d69f: 48 89 54 24 30 mov %rdx,0x30(%rsp) + 40d6a4: 48 89 44 24 38 mov %rax,0x38(%rsp) + 40d6a9: e9 f0 fd ff ff jmpq 40d49e <__gettextparse+0x26e> + 40d6ae: 48 8b 43 f8 mov -0x8(%rbx),%rax + 40d6b2: 4a 8d 3c fd 00 00 00 lea 0x0(,%r15,8),%rdi + 40d6b9: 00 + 40d6ba: 4b 8d 14 3f lea (%r15,%r15,1),%rdx + 40d6be: be ff ff ff ff mov $0xffffffff,%esi + 40d6c3: 41 b8 02 00 00 00 mov $0x2,%r8d + 40d6c9: 48 f7 df neg %rdi + 40d6cc: 48 f7 da neg %rdx + 40d6cf: e9 f1 fd ff ff jmpq 40d4c5 <__gettextparse+0x295> + 40d6d4: 48 8b 03 mov (%rbx),%rax + 40d6d7: 48 8d 54 24 30 lea 0x30(%rsp),%rdx + 40d6dc: be 02 00 00 00 mov $0x2,%esi + 40d6e1: bf 01 00 00 00 mov $0x1,%edi + 40d6e6: 48 89 4c 24 10 mov %rcx,0x10(%rsp) + 40d6eb: 48 89 44 24 30 mov %rax,0x30(%rsp) + 40d6f0: e8 6b c3 ff ff callq 409a60 + 40d6f5: e9 a9 fd ff ff jmpq 40d4a3 <__gettextparse+0x273> + 40d6fa: 31 d2 xor %edx,%edx + 40d6fc: 31 ff xor %edi,%edi + 40d6fe: be 01 00 00 00 mov $0x1,%esi + 40d703: 48 89 4c 24 10 mov %rcx,0x10(%rsp) + 40d708: e8 53 c3 ff ff callq 409a60 + 40d70d: 48 85 c0 test %rax,%rax + 40d710: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx + 40d715: 0f 84 b8 02 00 00 je 40d9d3 <__gettextparse+0x7a3> + 40d71b: 48 8b 13 mov (%rbx),%rdx + 40d71e: 48 89 50 08 mov %rdx,0x8(%rax) + 40d722: eb 8e jmp 40d6b2 <__gettextparse+0x482> + 40d724: 31 d2 xor %edx,%edx + 40d726: 31 f6 xor %esi,%esi + 40d728: 31 ff xor %edi,%edi + 40d72a: 48 89 4c 24 10 mov %rcx,0x10(%rsp) + 40d72f: e8 2c c3 ff ff callq 409a60 + 40d734: e9 6a fd ff ff jmpq 40d4a3 <__gettextparse+0x273> + 40d739: 48 8b 43 08 mov 0x8(%rbx),%rax + 40d73d: 31 f6 xor %esi,%esi + 40d73f: 41 b8 f0 ff ff ff mov $0xfffffff0,%r8d + 40d745: 31 d2 xor %edx,%edx + 40d747: 31 ff xor %edi,%edi + 40d749: e9 77 fd ff ff jmpq 40d4c5 <__gettextparse+0x295> + 40d74e: 44 0f b6 a8 e0 16 4a movzbl 0x4a16e0(%rax),%r13d + 40d755: 00 + 40d756: e9 a3 fd ff ff jmpq 40d4fe <__gettextparse+0x2ce> + 40d75b: 0f 85 af fc ff ff jne 40d410 <__gettextparse+0x1e0> + 40d761: 49 89 ce mov %rcx,%r14 + 40d764: bb 01 00 00 00 mov $0x1,%ebx + 40d769: e9 e7 fc ff ff jmpq 40d455 <__gettextparse+0x225> + 40d76e: 44 0f b6 86 70 17 4a movzbl 0x4a1770(%rsi),%r8d + 40d775: 00 + 40d776: 4a 8d 3c fd 00 00 00 lea 0x0(,%r15,8),%rdi + 40d77d: 00 + 40d77e: 4d 01 ff add %r15,%r15 + 40d781: 4c 89 fa mov %r15,%rdx + 40d784: 48 f7 df neg %rdi + 40d787: 48 f7 da neg %rdx + 40d78a: 41 83 e8 10 sub $0x10,%r8d + 40d78e: 49 63 f0 movslq %r8d,%rsi + 40d791: 0f be b6 17 17 4a 00 movsbl 0x4a1717(%rsi),%esi + 40d798: e9 28 fd ff ff jmpq 40d4c5 <__gettextparse+0x295> + 40d79d: 41 0f be 51 01 movsbl 0x1(%r9),%edx + 40d7a2: 41 39 d4 cmp %edx,%r12d + 40d7a5: 0f 84 5c fd ff ff je 40d507 <__gettextparse+0x2d7> + 40d7ab: be 01 00 00 00 mov $0x1,%esi + 40d7b0: 41 bc 00 01 00 00 mov $0x100,%r12d + 40d7b6: 48 8b 54 24 18 mov 0x18(%rsp),%rdx + 40d7bb: 48 89 3a mov %rdi,(%rdx) + 40d7be: e9 ca fb ff ff jmpq 40d38d <__gettextparse+0x15d> + 40d7c3: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx + 40d7ca: ff ff ff + 40d7cd: 48 23 54 24 28 and 0x28(%rsp),%rdx + 40d7d2: be 09 00 00 00 mov $0x9,%esi + 40d7d7: 41 bc 05 01 00 00 mov $0x105,%r12d + 40d7dd: 48 83 ca 05 or $0x5,%rdx + 40d7e1: 48 89 54 24 28 mov %rdx,0x28(%rsp) + 40d7e6: eb ce jmp 40d7b6 <__gettextparse+0x586> + 40d7e8: 41 80 79 01 3d cmpb $0x3d,0x1(%r9) + 40d7ed: 0f 85 18 fd ff ff jne 40d50b <__gettextparse+0x2db> + 40d7f3: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx + 40d7fa: ff ff ff + 40d7fd: 48 23 54 24 28 and 0x28(%rsp),%rdx + 40d802: 49 8d 79 02 lea 0x2(%r9),%rdi + 40d806: be 06 00 00 00 mov $0x6,%esi + 40d80b: 41 bc 02 01 00 00 mov $0x102,%r12d + 40d811: 48 83 ca 0d or $0xd,%rdx + 40d815: 48 89 54 24 28 mov %rdx,0x28(%rsp) + 40d81a: eb 9a jmp 40d7b6 <__gettextparse+0x586> + 40d81c: 41 80 79 01 3d cmpb $0x3d,0x1(%r9) + 40d821: 0f 84 d0 01 00 00 je 40d9f7 <__gettextparse+0x7c7> + 40d827: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx + 40d82e: ff ff ff + 40d831: 48 23 54 24 28 and 0x28(%rsp),%rdx + 40d836: be 07 00 00 00 mov $0x7,%esi + 40d83b: 41 bc 03 01 00 00 mov $0x103,%r12d + 40d841: 48 83 ca 09 or $0x9,%rdx + 40d845: 48 89 54 24 28 mov %rdx,0x28(%rsp) + 40d84a: e9 67 ff ff ff jmpq 40d7b6 <__gettextparse+0x586> + 40d84f: 41 80 79 01 3d cmpb $0x3d,0x1(%r9) + 40d854: be 01 00 00 00 mov $0x1,%esi + 40d859: 41 bc 00 01 00 00 mov $0x100,%r12d + 40d85f: 0f 85 51 ff ff ff jne 40d7b6 <__gettextparse+0x586> + 40d865: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx + 40d86c: ff ff ff + 40d86f: 48 23 54 24 28 and 0x28(%rsp),%rdx + 40d874: 49 8d 79 02 lea 0x2(%r9),%rdi + 40d878: be 06 00 00 00 mov $0x6,%esi + 40d87d: 41 bc 02 01 00 00 mov $0x102,%r12d + 40d883: 48 83 ca 0c or $0xc,%rdx + 40d887: 48 89 54 24 28 mov %rdx,0x28(%rsp) + 40d88c: e9 25 ff ff ff jmpq 40d7b6 <__gettextparse+0x586> + 40d891: 41 80 79 01 3d cmpb $0x3d,0x1(%r9) + 40d896: 0f 84 87 01 00 00 je 40da23 <__gettextparse+0x7f3> + 40d89c: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx + 40d8a3: ff ff ff + 40d8a6: 48 23 54 24 28 and 0x28(%rsp),%rdx + 40d8ab: be 07 00 00 00 mov $0x7,%esi + 40d8b0: 41 bc 03 01 00 00 mov $0x103,%r12d + 40d8b6: 48 83 ca 08 or $0x8,%rdx + 40d8ba: 48 89 54 24 28 mov %rdx,0x28(%rsp) + 40d8bf: e9 f2 fe ff ff jmpq 40d7b6 <__gettextparse+0x586> + 40d8c4: 41 0f be 51 01 movsbl 0x1(%r9),%edx + 40d8c9: 41 8d 74 24 d0 lea -0x30(%r12),%esi + 40d8ce: 48 63 f6 movslq %esi,%rsi + 40d8d1: 44 8d 4a d0 lea -0x30(%rdx),%r9d + 40d8d5: 41 80 f9 09 cmp $0x9,%r9b + 40d8d9: 77 1f ja 40d8fa <__gettextparse+0x6ca> + 40d8db: 83 ea 30 sub $0x30,%edx + 40d8de: 48 8d 34 b6 lea (%rsi,%rsi,4),%rsi + 40d8e2: 48 83 c7 01 add $0x1,%rdi + 40d8e6: 48 63 d2 movslq %edx,%rdx + 40d8e9: 48 8d 34 72 lea (%rdx,%rsi,2),%rsi + 40d8ed: 0f be 17 movsbl (%rdi),%edx + 40d8f0: 44 8d 4a d0 lea -0x30(%rdx),%r9d + 40d8f4: 41 80 f9 09 cmp $0x9,%r9b + 40d8f8: 76 e1 jbe 40d8db <__gettextparse+0x6ab> + 40d8fa: 48 89 74 24 28 mov %rsi,0x28(%rsp) + 40d8ff: 41 bc 06 01 00 00 mov $0x106,%r12d + 40d905: be 0b 00 00 00 mov $0xb,%esi + 40d90a: e9 a7 fe ff ff jmpq 40d7b6 <__gettextparse+0x586> + 40d90f: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx + 40d916: ff ff ff + 40d919: 48 23 54 24 28 and 0x28(%rsp),%rdx + 40d91e: be 09 00 00 00 mov $0x9,%esi + 40d923: 41 bc 05 01 00 00 mov $0x105,%r12d + 40d929: 48 83 ca 04 or $0x4,%rdx + 40d92d: 48 89 54 24 28 mov %rdx,0x28(%rsp) + 40d932: e9 7f fe ff ff jmpq 40d7b6 <__gettextparse+0x586> + 40d937: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx + 40d93e: ff ff ff + 40d941: 48 23 54 24 28 and 0x28(%rsp),%rdx + 40d946: be 08 00 00 00 mov $0x8,%esi + 40d94b: 41 bc 04 01 00 00 mov $0x104,%r12d + 40d951: 48 83 ca 06 or $0x6,%rdx + 40d955: 48 89 54 24 28 mov %rdx,0x28(%rsp) + 40d95a: e9 57 fe ff ff jmpq 40d7b6 <__gettextparse+0x586> + 40d95f: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx + 40d966: ff ff ff + 40d969: 48 23 54 24 28 and 0x28(%rsp),%rdx + 40d96e: be 09 00 00 00 mov $0x9,%esi + 40d973: 41 bc 05 01 00 00 mov $0x105,%r12d + 40d979: 48 83 ca 03 or $0x3,%rdx + 40d97d: 48 89 54 24 28 mov %rdx,0x28(%rsp) + 40d982: e9 2f fe ff ff jmpq 40d7b6 <__gettextparse+0x586> + 40d987: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx + 40d98e: ff ff ff + 40d991: 48 23 54 24 28 and 0x28(%rsp),%rdx + 40d996: be 08 00 00 00 mov $0x8,%esi + 40d99b: 41 bc 04 01 00 00 mov $0x104,%r12d + 40d9a1: 48 83 ca 07 or $0x7,%rdx + 40d9a5: 48 89 54 24 28 mov %rdx,0x28(%rsp) + 40d9aa: e9 07 fe ff ff jmpq 40d7b6 <__gettextparse+0x586> + 40d9af: 49 89 ce mov %rcx,%r14 + 40d9b2: bb 02 00 00 00 mov $0x2,%ebx + 40d9b7: e9 99 fa ff ff jmpq 40d455 <__gettextparse+0x225> + 40d9bc: 49 89 ce mov %rcx,%r14 + 40d9bf: 31 db xor %ebx,%ebx + 40d9c1: e9 8f fa ff ff jmpq 40d455 <__gettextparse+0x225> + 40d9c6: 4d 89 fe mov %r15,%r14 + 40d9c9: bb 01 00 00 00 mov $0x1,%ebx + 40d9ce: e9 82 fa ff ff jmpq 40d455 <__gettextparse+0x225> + 40d9d3: 4a 8d 3c fd 00 00 00 lea 0x0(,%r15,8),%rdi + 40d9da: 00 + 40d9db: 4d 01 ff add %r15,%r15 + 40d9de: be ff ff ff ff mov $0xffffffff,%esi + 40d9e3: 4c 89 fa mov %r15,%rdx + 40d9e6: 41 b8 02 00 00 00 mov $0x2,%r8d + 40d9ec: 48 f7 df neg %rdi + 40d9ef: 48 f7 da neg %rdx + 40d9f2: e9 ce fa ff ff jmpq 40d4c5 <__gettextparse+0x295> + 40d9f7: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx + 40d9fe: ff ff ff + 40da01: 48 23 54 24 28 and 0x28(%rsp),%rdx + 40da06: 49 8d 79 02 lea 0x2(%r9),%rdi + 40da0a: be 07 00 00 00 mov $0x7,%esi + 40da0f: 41 bc 03 01 00 00 mov $0x103,%r12d + 40da15: 48 83 ca 0b or $0xb,%rdx + 40da19: 48 89 54 24 28 mov %rdx,0x28(%rsp) + 40da1e: e9 93 fd ff ff jmpq 40d7b6 <__gettextparse+0x586> + 40da23: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx + 40da2a: ff ff ff + 40da2d: 48 23 54 24 28 and 0x28(%rsp),%rdx + 40da32: 49 8d 79 02 lea 0x2(%r9),%rdi + 40da36: be 07 00 00 00 mov $0x7,%esi + 40da3b: 41 bc 03 01 00 00 mov $0x103,%r12d + 40da41: 48 83 ca 0a or $0xa,%rdx + 40da45: 48 89 54 24 28 mov %rdx,0x28(%rsp) + 40da4a: e9 67 fd ff ff jmpq 40d7b6 <__gettextparse+0x586> + 40da4f: 90 nop + +000000000040da50 <__gettext_extract_plural>: + 40da50: 41 55 push %r13 + 40da52: 41 54 push %r12 + 40da54: 55 push %rbp + 40da55: 53 push %rbx + 40da56: 48 89 f5 mov %rsi,%rbp + 40da59: 48 89 d3 mov %rdx,%rbx + 40da5c: 48 83 ec 28 sub $0x28,%rsp + 40da60: 48 85 ff test %rdi,%rdi + 40da63: 0f 84 9f 00 00 00 je 40db08 <__gettext_extract_plural+0xb8> + 40da69: 49 89 fd mov %rdi,%r13 + 40da6c: be 87 18 4a 00 mov $0x4a1887,%esi + 40da71: e8 aa 28 ff ff callq 400320 <__rela_iplt_end+0x58> + 40da76: be 8f 18 4a 00 mov $0x4a188f,%esi + 40da7b: 49 89 c4 mov %rax,%r12 + 40da7e: 4c 89 ef mov %r13,%rdi + 40da81: e8 9a 28 ff ff callq 400320 <__rela_iplt_end+0x58> + 40da86: 4d 85 e4 test %r12,%r12 + 40da89: 74 7d je 40db08 <__gettext_extract_plural+0xb8> + 40da8b: 48 85 c0 test %rax,%rax + 40da8e: 74 78 je 40db08 <__gettext_extract_plural+0xb8> + 40da90: 4c 8d 68 09 lea 0x9(%rax),%r13 + 40da94: 0f b6 40 09 movzbl 0x9(%rax),%eax + 40da98: 84 c0 test %al,%al + 40da9a: 74 6c je 40db08 <__gettext_extract_plural+0xb8> + 40da9c: 48 c7 c2 f0 ff ff ff mov $0xfffffffffffffff0,%rdx + 40daa3: 64 48 8b 0a mov %fs:(%rdx),%rcx + 40daa7: eb 14 jmp 40dabd <__gettext_extract_plural+0x6d> + 40daa9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40dab0: 49 83 c5 01 add $0x1,%r13 + 40dab4: 41 0f b6 45 00 movzbl 0x0(%r13),%eax + 40dab9: 84 c0 test %al,%al + 40dabb: 74 4b je 40db08 <__gettext_extract_plural+0xb8> + 40dabd: 0f b6 d0 movzbl %al,%edx + 40dac0: f6 44 51 01 20 testb $0x20,0x1(%rcx,%rdx,2) + 40dac5: 75 e9 jne 40dab0 <__gettext_extract_plural+0x60> + 40dac7: 83 e8 30 sub $0x30,%eax + 40daca: 3c 09 cmp $0x9,%al + 40dacc: 77 3a ja 40db08 <__gettext_extract_plural+0xb8> + 40dace: 48 8d 74 24 08 lea 0x8(%rsp),%rsi + 40dad3: ba 0a 00 00 00 mov $0xa,%edx + 40dad8: 4c 89 ef mov %r13,%rdi + 40dadb: e8 70 11 00 00 callq 40ec50 <__strtoul> + 40dae0: 4c 39 6c 24 08 cmp %r13,0x8(%rsp) + 40dae5: 74 21 je 40db08 <__gettext_extract_plural+0xb8> + 40dae7: 48 8d 7c 24 10 lea 0x10(%rsp),%rdi + 40daec: 49 83 c4 07 add $0x7,%r12 + 40daf0: 48 89 03 mov %rax,(%rbx) + 40daf3: 4c 89 64 24 10 mov %r12,0x10(%rsp) + 40daf8: e8 33 f7 ff ff callq 40d230 <__gettextparse> + 40dafd: 85 c0 test %eax,%eax + 40daff: 74 21 je 40db22 <__gettext_extract_plural+0xd2> + 40db01: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40db08: 48 c7 45 00 a0 18 4a movq $0x4a18a0,0x0(%rbp) + 40db0f: 00 + 40db10: 48 c7 03 02 00 00 00 movq $0x2,(%rbx) + 40db17: 48 83 c4 28 add $0x28,%rsp + 40db1b: 5b pop %rbx + 40db1c: 5d pop %rbp + 40db1d: 41 5c pop %r12 + 40db1f: 41 5d pop %r13 + 40db21: c3 retq + 40db22: 48 8b 44 24 18 mov 0x18(%rsp),%rax + 40db27: 48 89 45 00 mov %rax,0x0(%rbp) + 40db2b: eb ea jmp 40db17 <__gettext_extract_plural+0xc7> + 40db2d: 0f 1f 00 nopl (%rax) + +000000000040db30 <__hash_string>: + 40db30: 31 c0 xor %eax,%eax + 40db32: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 40db38: 0f b6 17 movzbl (%rdi),%edx + 40db3b: 84 d2 test %dl,%dl + 40db3d: 74 27 je 40db66 <__hash_string+0x36> + 40db3f: 48 c1 e0 04 shl $0x4,%rax + 40db43: 48 83 c7 01 add $0x1,%rdi + 40db47: 48 01 d0 add %rdx,%rax + 40db4a: 48 89 c2 mov %rax,%rdx + 40db4d: 81 e2 00 00 00 f0 and $0xf0000000,%edx + 40db53: 74 e3 je 40db38 <__hash_string+0x8> + 40db55: 48 31 d0 xor %rdx,%rax + 40db58: 48 c1 ea 18 shr $0x18,%rdx + 40db5c: 48 31 d0 xor %rdx,%rax + 40db5f: 0f b6 17 movzbl (%rdi),%edx + 40db62: 84 d2 test %dl,%dl + 40db64: 75 d9 jne 40db3f <__hash_string+0xf> + 40db66: f3 c3 repz retq + 40db68: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40db6f: 00 + +000000000040db70 <_setjmp>: + 40db70: 31 f6 xor %esi,%esi + 40db72: e9 b9 18 04 00 jmpq 44f430 <__sigsetjmp> + 40db77: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40db7e: 00 00 + +000000000040db80 : + 40db80: 64 8b 0c 25 d4 02 00 mov %fs:0x2d4,%ecx + 40db87: 00 + 40db88: 64 8b 04 25 d0 02 00 mov %fs:0x2d0,%eax + 40db8f: 00 + 40db90: 48 63 f0 movslq %eax,%rsi + 40db93: 85 f6 test %esi,%esi + 40db95: 75 31 jne 40dbc8 + 40db97: b8 ba 00 00 00 mov $0xba,%eax + 40db9c: 0f 05 syscall + 40db9e: 89 c1 mov %eax,%ecx + 40dba0: 64 89 04 25 d0 02 00 mov %eax,%fs:0x2d0 + 40dba7: 00 + 40dba8: 48 63 f0 movslq %eax,%rsi + 40dbab: 48 63 d7 movslq %edi,%rdx + 40dbae: b8 ea 00 00 00 mov $0xea,%eax + 40dbb3: 48 63 f9 movslq %ecx,%rdi + 40dbb6: 0f 05 syscall + 40dbb8: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 40dbbe: 77 20 ja 40dbe0 + 40dbc0: f3 c3 repz retq + 40dbc2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 40dbc8: 85 c9 test %ecx,%ecx + 40dbca: 7f df jg 40dbab + 40dbcc: 89 ca mov %ecx,%edx + 40dbce: f7 da neg %edx + 40dbd0: 81 e1 ff ff ff 7f and $0x7fffffff,%ecx + 40dbd6: 0f 44 d6 cmove %esi,%edx + 40dbd9: 89 d1 mov %edx,%ecx + 40dbdb: eb ce jmp 40dbab + 40dbdd: 0f 1f 00 nopl (%rax) + 40dbe0: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 40dbe7: f7 d8 neg %eax + 40dbe9: 64 89 02 mov %eax,%fs:(%rdx) + 40dbec: b8 ff ff ff ff mov $0xffffffff,%eax + 40dbf1: c3 retq + 40dbf2: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40dbf9: 00 00 00 + 40dbfc: 0f 1f 40 00 nopl 0x0(%rax) + +000000000040dc00 : + 40dc00: 48 81 ec 28 01 00 00 sub $0x128,%rsp + 40dc07: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx + 40dc0e: 00 00 + 40dc10: 48 3b 15 21 e5 2b 00 cmp 0x2be521(%rip),%rdx # 6cc138 + 40dc17: 74 46 je 40dc5f + 40dc19: be 01 00 00 00 mov $0x1,%esi + 40dc1e: 31 c0 xor %eax,%eax + 40dc20: 83 3d 95 f5 2b 00 00 cmpl $0x0,0x2bf595(%rip) # 6cd1bc <__libc_multiple_threads> + 40dc27: 74 0c je 40dc35 + 40dc29: f0 0f b1 35 ff e4 2b lock cmpxchg %esi,0x2be4ff(%rip) # 6cc130 + 40dc30: 00 + 40dc31: 75 0b jne 40dc3e + 40dc33: eb 23 jmp 40dc58 + 40dc35: 0f b1 35 f4 e4 2b 00 cmpxchg %esi,0x2be4f4(%rip) # 6cc130 + 40dc3c: 74 1a je 40dc58 + 40dc3e: 48 8d 3d eb e4 2b 00 lea 0x2be4eb(%rip),%rdi # 6cc130 + 40dc45: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 40dc4c: e8 7f 49 03 00 callq 4425d0 <__lll_lock_wait_private> + 40dc51: 48 81 c4 80 00 00 00 add $0x80,%rsp + 40dc58: 48 89 15 d9 e4 2b 00 mov %rdx,0x2be4d9(%rip) # 6cc138 + 40dc5f: 8b 05 db e4 2b 00 mov 0x2be4db(%rip),%eax # 6cc140 + 40dc65: 83 05 c8 e4 2b 00 01 addl $0x1,0x2be4c8(%rip) # 6cc134 + 40dc6c: 85 c0 test %eax,%eax + 40dc6e: 74 43 je 40dcb3 + 40dc70: 83 f8 01 cmp $0x1,%eax + 40dc73: 74 77 je 40dcec + 40dc75: 83 f8 02 cmp $0x2,%eax + 40dc78: 0f 84 8e 00 00 00 je 40dd0c + 40dc7e: 83 f8 03 cmp $0x3,%eax + 40dc81: 0f 84 42 01 00 00 je 40ddc9 + 40dc87: 83 f8 04 cmp $0x4,%eax + 40dc8a: 0f 84 05 02 00 00 je 40de95 + 40dc90: 83 f8 05 cmp $0x5,%eax + 40dc93: 0f 84 1a 02 00 00 je 40deb3 + 40dc99: 83 f8 06 cmp $0x6,%eax + 40dc9c: 0f 84 34 02 00 00 je 40ded6 + 40dca2: 83 f8 07 cmp $0x7,%eax + 40dca5: 0f 84 2c 02 00 00 je 40ded7 + 40dcab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40dcb0: f4 hlt + 40dcb1: eb fd jmp 40dcb0 + 40dcb3: 31 c0 xor %eax,%eax + 40dcb5: b9 10 00 00 00 mov $0x10,%ecx + 40dcba: 48 89 e7 mov %rsp,%rdi + 40dcbd: f3 48 ab rep stos %rax,%es:(%rdi) + 40dcc0: 31 d2 xor %edx,%edx + 40dcc2: 48 89 e6 mov %rsp,%rsi + 40dcc5: bf 01 00 00 00 mov $0x1,%edi + 40dcca: c7 05 6c e4 2b 00 01 movl $0x1,0x2be46c(%rip) # 6cc140 + 40dcd1: 00 00 00 + 40dcd4: 48 c7 04 24 20 00 00 movq $0x20,(%rsp) + 40dcdb: 00 + 40dcdc: e8 5f 1a 04 00 callq 44f740 <__sigprocmask> + 40dce1: 8b 05 59 e4 2b 00 mov 0x2be459(%rip),%eax # 6cc140 + 40dce7: 83 f8 01 cmp $0x1,%eax + 40dcea: 75 89 jne 40dc75 + 40dcec: 31 ff xor %edi,%edi + 40dcee: c7 05 48 e4 2b 00 02 movl $0x2,0x2be448(%rip) # 6cc140 + 40dcf5: 00 00 00 + 40dcf8: e8 03 7d 00 00 callq 415a00 <_IO_flush_all_lockp> + 40dcfd: 8b 05 3d e4 2b 00 mov 0x2be43d(%rip),%eax # 6cc140 + 40dd03: 83 f8 02 cmp $0x2,%eax + 40dd06: 0f 85 72 ff ff ff jne 40dc7e + 40dd0c: 83 2d 21 e4 2b 00 01 subl $0x1,0x2be421(%rip) # 6cc134 + 40dd13: c7 05 23 e4 2b 00 00 movl $0x0,0x2be423(%rip) # 6cc140 + 40dd1a: 00 00 00 + 40dd1d: 75 41 jne 40dd60 + 40dd1f: 48 c7 05 0e e4 2b 00 movq $0x0,0x2be40e(%rip) # 6cc138 + 40dd26: 00 00 00 00 + 40dd2a: 83 3d 8b f4 2b 00 00 cmpl $0x0,0x2bf48b(%rip) # 6cd1bc <__libc_multiple_threads> + 40dd31: 74 0b je 40dd3e + 40dd33: f0 ff 0d f6 e3 2b 00 lock decl 0x2be3f6(%rip) # 6cc130 + 40dd3a: 75 0a jne 40dd46 + 40dd3c: eb 22 jmp 40dd60 + 40dd3e: ff 0d ec e3 2b 00 decl 0x2be3ec(%rip) # 6cc130 + 40dd44: 74 1a je 40dd60 + 40dd46: 48 8d 3d e3 e3 2b 00 lea 0x2be3e3(%rip),%rdi # 6cc130 + 40dd4d: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 40dd54: e8 a7 48 03 00 callq 442600 <__lll_unlock_wake_private> + 40dd59: 48 81 c4 80 00 00 00 add $0x80,%rsp + 40dd60: bf 06 00 00 00 mov $0x6,%edi + 40dd65: e8 16 fe ff ff callq 40db80 + 40dd6a: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx + 40dd71: 00 00 + 40dd73: 48 3b 15 be e3 2b 00 cmp 0x2be3be(%rip),%rdx # 6cc138 + 40dd7a: 74 46 je 40ddc2 + 40dd7c: be 01 00 00 00 mov $0x1,%esi + 40dd81: 31 c0 xor %eax,%eax + 40dd83: 83 3d 32 f4 2b 00 00 cmpl $0x0,0x2bf432(%rip) # 6cd1bc <__libc_multiple_threads> + 40dd8a: 74 0c je 40dd98 + 40dd8c: f0 0f b1 35 9c e3 2b lock cmpxchg %esi,0x2be39c(%rip) # 6cc130 + 40dd93: 00 + 40dd94: 75 0b jne 40dda1 + 40dd96: eb 23 jmp 40ddbb + 40dd98: 0f b1 35 91 e3 2b 00 cmpxchg %esi,0x2be391(%rip) # 6cc130 + 40dd9f: 74 1a je 40ddbb + 40dda1: 48 8d 3d 88 e3 2b 00 lea 0x2be388(%rip),%rdi # 6cc130 + 40dda8: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 40ddaf: e8 1c 48 03 00 callq 4425d0 <__lll_lock_wait_private> + 40ddb4: 48 81 c4 80 00 00 00 add $0x80,%rsp + 40ddbb: 48 89 15 76 e3 2b 00 mov %rdx,0x2be376(%rip) # 6cc138 + 40ddc2: 83 05 6b e3 2b 00 01 addl $0x1,0x2be36b(%rip) # 6cc134 + 40ddc9: 48 8d b4 24 80 00 00 lea 0x80(%rsp),%rsi + 40ddd0: 00 + 40ddd1: 31 c0 xor %eax,%eax + 40ddd3: b9 13 00 00 00 mov $0x13,%ecx + 40ddd8: 31 d2 xor %edx,%edx + 40ddda: c7 05 5c e3 2b 00 04 movl $0x4,0x2be35c(%rip) # 6cc140 + 40dde1: 00 00 00 + 40dde4: 48 89 f7 mov %rsi,%rdi + 40dde7: f3 48 ab rep stos %rax,%es:(%rdi) + 40ddea: 48 c7 84 24 88 00 00 movq $0xffffffffffffffff,0x88(%rsp) + 40ddf1: 00 ff ff ff ff + 40ddf6: bf 06 00 00 00 mov $0x6,%edi + 40ddfb: 48 c7 46 10 ff ff ff movq $0xffffffffffffffff,0x10(%rsi) + 40de02: ff + 40de03: 48 c7 46 18 ff ff ff movq $0xffffffffffffffff,0x18(%rsi) + 40de0a: ff + 40de0b: 48 c7 46 20 ff ff ff movq $0xffffffffffffffff,0x20(%rsi) + 40de12: ff + 40de13: 48 c7 46 28 ff ff ff movq $0xffffffffffffffff,0x28(%rsi) + 40de1a: ff + 40de1b: 48 c7 46 30 ff ff ff movq $0xffffffffffffffff,0x30(%rsi) + 40de22: ff + 40de23: 48 c7 46 38 ff ff ff movq $0xffffffffffffffff,0x38(%rsi) + 40de2a: ff + 40de2b: 48 c7 46 40 ff ff ff movq $0xffffffffffffffff,0x40(%rsi) + 40de32: ff + 40de33: 48 c7 46 48 ff ff ff movq $0xffffffffffffffff,0x48(%rsi) + 40de3a: ff + 40de3b: 48 c7 46 50 ff ff ff movq $0xffffffffffffffff,0x50(%rsi) + 40de42: ff + 40de43: 48 c7 46 58 ff ff ff movq $0xffffffffffffffff,0x58(%rsi) + 40de4a: ff + 40de4b: 48 c7 46 60 ff ff ff movq $0xffffffffffffffff,0x60(%rsi) + 40de52: ff + 40de53: 48 c7 46 68 ff ff ff movq $0xffffffffffffffff,0x68(%rsi) + 40de5a: ff + 40de5b: 48 c7 46 70 ff ff ff movq $0xffffffffffffffff,0x70(%rsi) + 40de62: ff + 40de63: 48 c7 46 78 ff ff ff movq $0xffffffffffffffff,0x78(%rsi) + 40de6a: ff + 40de6b: 48 c7 86 80 00 00 00 movq $0xffffffffffffffff,0x80(%rsi) + 40de72: ff ff ff ff + 40de76: c7 84 24 08 01 00 00 movl $0x0,0x108(%rsp) + 40de7d: 00 00 00 00 + 40de81: e8 8a 18 04 00 callq 44f710 <__sigaction> + 40de86: 8b 05 b4 e2 2b 00 mov 0x2be2b4(%rip),%eax # 6cc140 + 40de8c: 83 f8 04 cmp $0x4,%eax + 40de8f: 0f 85 fb fd ff ff jne 40dc90 + 40de95: c7 05 a1 e2 2b 00 05 movl $0x5,0x2be2a1(%rip) # 6cc140 + 40de9c: 00 00 00 + 40de9f: e8 4c 35 00 00 callq 4113f0 <__fcloseall> + 40dea4: 8b 05 96 e2 2b 00 mov 0x2be296(%rip),%eax # 6cc140 + 40deaa: 83 f8 05 cmp $0x5,%eax + 40dead: 0f 85 e6 fd ff ff jne 40dc99 + 40deb3: bf 06 00 00 00 mov $0x6,%edi + 40deb8: c7 05 7e e2 2b 00 06 movl $0x6,0x2be27e(%rip) # 6cc140 + 40debf: 00 00 00 + 40dec2: e8 b9 fc ff ff callq 40db80 + 40dec7: 8b 05 73 e2 2b 00 mov 0x2be273(%rip),%eax # 6cc140 + 40decd: 83 f8 06 cmp $0x6,%eax + 40ded0: 0f 85 cc fd ff ff jne 40dca2 + 40ded6: f4 hlt + 40ded7: bf 7f 00 00 00 mov $0x7f,%edi + 40dedc: c7 05 5a e2 2b 00 08 movl $0x8,0x2be25a(%rip) # 6cc140 + 40dee3: 00 00 00 + 40dee6: e8 e5 08 03 00 callq 43e7d0 <_exit> + 40deeb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +000000000040def0 : + 40def0: 41 57 push %r15 + 40def2: 41 56 push %r14 + 40def4: 48 89 f8 mov %rdi,%rax + 40def7: 41 55 push %r13 + 40def9: 41 54 push %r12 + 40defb: 49 89 d4 mov %rdx,%r12 + 40defe: 55 push %rbp + 40deff: 53 push %rbx + 40df00: 49 d1 ec shr %r12 + 40df03: 4d 89 e7 mov %r12,%r15 + 40df06: 48 89 d5 mov %rdx,%rbp + 40df09: 48 83 ec 58 sub $0x58,%rsp + 40df0d: 4c 29 e5 sub %r12,%rbp + 40df10: 4c 0f af 3f imul (%rdi),%r15 + 40df14: 48 89 7c 24 18 mov %rdi,0x18(%rsp) + 40df19: 48 89 74 24 28 mov %rsi,0x28(%rsp) + 40df1e: 48 89 54 24 48 mov %rdx,0x48(%rsp) + 40df23: 49 01 f7 add %rsi,%r15 + 40df26: 49 83 fc 01 cmp $0x1,%r12 + 40df2a: 76 0b jbe 40df37 + 40df2c: 4c 89 e2 mov %r12,%rdx + 40df2f: 48 89 c7 mov %rax,%rdi + 40df32: e8 b9 ff ff ff callq 40def0 + 40df37: 48 83 fd 01 cmp $0x1,%rbp + 40df3b: 76 10 jbe 40df4d + 40df3d: 48 8b 7c 24 18 mov 0x18(%rsp),%rdi + 40df42: 48 89 ea mov %rbp,%rdx + 40df45: 4c 89 fe mov %r15,%rsi + 40df48: e8 a3 ff ff ff callq 40def0 + 40df4d: 48 8b 44 24 18 mov 0x18(%rsp),%rax + 40df52: 48 8b 38 mov (%rax),%rdi + 40df55: 48 8b 58 20 mov 0x20(%rax),%rbx + 40df59: 4c 8b 70 10 mov 0x10(%rax),%r14 + 40df5d: 48 89 7c 24 10 mov %rdi,0x10(%rsp) + 40df62: 48 8b 78 18 mov 0x18(%rax),%rdi + 40df66: 48 8b 40 08 mov 0x8(%rax),%rax + 40df6a: 48 89 7c 24 08 mov %rdi,0x8(%rsp) + 40df6f: 48 83 f8 01 cmp $0x1,%rax + 40df73: 0f 84 df 02 00 00 je 40e258 + 40df79: 0f 82 61 02 00 00 jb 40e1e0 + 40df7f: 48 83 f8 02 cmp $0x2,%rax + 40df83: 74 73 je 40dff8 + 40df85: 48 83 f8 03 cmp $0x3,%rax + 40df89: 0f 85 29 03 00 00 jne 40e2b8 + 40df8f: 48 85 ed test %rbp,%rbp + 40df92: 0f 84 91 03 00 00 je 40e329 + 40df98: 4d 85 e4 test %r12,%r12 + 40df9b: 4c 8b 6c 24 28 mov 0x28(%rsp),%r13 + 40dfa0: 75 32 jne 40dfd4 + 40dfa2: e9 82 03 00 00 jmpq 40e329 + 40dfa7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40dfae: 00 00 + 40dfb0: 49 8b 07 mov (%r15),%rax + 40dfb3: 48 83 ed 01 sub $0x1,%rbp + 40dfb7: 49 83 c7 08 add $0x8,%r15 + 40dfbb: 48 89 03 mov %rax,(%rbx) + 40dfbe: 48 83 c3 08 add $0x8,%rbx + 40dfc2: 4d 85 e4 test %r12,%r12 + 40dfc5: 0f 84 85 01 00 00 je 40e150 + 40dfcb: 48 85 ed test %rbp,%rbp + 40dfce: 0f 84 7c 01 00 00 je 40e150 + 40dfd4: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 40dfd9: 49 8b 37 mov (%r15),%rsi + 40dfdc: 49 8b 7d 00 mov 0x0(%r13),%rdi + 40dfe0: 41 ff d6 callq *%r14 + 40dfe3: 85 c0 test %eax,%eax + 40dfe5: 7f c9 jg 40dfb0 + 40dfe7: 49 8b 45 00 mov 0x0(%r13),%rax + 40dfeb: 49 83 ec 01 sub $0x1,%r12 + 40dfef: 49 83 c5 08 add $0x8,%r13 + 40dff3: eb c6 jmp 40dfbb + 40dff5: 0f 1f 00 nopl (%rax) + 40dff8: 48 8b 74 24 10 mov 0x10(%rsp),%rsi + 40dffd: b8 08 00 00 00 mov $0x8,%eax + 40e002: 4c 8b 6c 24 28 mov 0x28(%rsp),%r13 + 40e007: 4c 89 74 24 30 mov %r14,0x30(%rsp) + 40e00c: 48 29 f0 sub %rsi,%rax + 40e00f: 4c 89 6c 24 20 mov %r13,0x20(%rsp) + 40e014: 49 89 f6 mov %rsi,%r14 + 40e017: 48 89 44 24 38 mov %rax,0x38(%rsp) + 40e01c: b8 10 00 00 00 mov $0x10,%eax + 40e021: 49 89 ed mov %rbp,%r13 + 40e024: 48 29 f0 sub %rsi,%rax + 40e027: 4d 85 e4 test %r12,%r12 + 40e02a: 4c 89 fd mov %r15,%rbp + 40e02d: 48 89 44 24 40 mov %rax,0x40(%rsp) + 40e032: 0f 84 09 01 00 00 je 40e141 + 40e038: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40e03f: 00 + 40e040: 4d 85 ed test %r13,%r13 + 40e043: 0f 84 f8 00 00 00 je 40e141 + 40e049: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 40e04e: 48 89 ee mov %rbp,%rsi + 40e051: 48 8b 7c 24 20 mov 0x20(%rsp),%rdi + 40e056: 48 8b 44 24 30 mov 0x30(%rsp),%rax + 40e05b: 4e 8d 3c 33 lea (%rbx,%r14,1),%r15 + 40e05f: ff d0 callq *%rax + 40e061: 85 c0 test %eax,%eax + 40e063: 0f 8e 47 01 00 00 jle 40e1b0 + 40e069: 48 89 e8 mov %rbp,%rax + 40e06c: 49 83 ed 01 sub $0x1,%r13 + 40e070: 4c 01 f5 add %r14,%rbp + 40e073: 4c 39 fb cmp %r15,%rbx + 40e076: 0f 83 b9 00 00 00 jae 40e135 + 40e07c: 48 8b 7c 24 38 mov 0x38(%rsp),%rdi + 40e081: 48 8b 74 24 40 mov 0x40(%rsp),%rsi + 40e086: 49 8d 57 07 lea 0x7(%r15),%rdx + 40e08a: 4c 01 ff add %r15,%rdi + 40e08d: 49 8d 0c 37 lea (%r15,%rsi,1),%rcx + 40e091: 48 29 fa sub %rdi,%rdx + 40e094: 48 c1 ea 03 shr $0x3,%rdx + 40e098: 48 83 c2 01 add $0x1,%rdx + 40e09c: 48 39 c8 cmp %rcx,%rax + 40e09f: 48 8d 48 10 lea 0x10(%rax),%rcx + 40e0a3: 40 0f 93 c6 setae %sil + 40e0a7: 48 39 cb cmp %rcx,%rbx + 40e0aa: 0f 93 c1 setae %cl + 40e0ad: 40 08 ce or %cl,%sil + 40e0b0: 0f 84 da 00 00 00 je 40e190 + 40e0b6: 48 83 fa 18 cmp $0x18,%rdx + 40e0ba: 0f 86 d0 00 00 00 jbe 40e190 + 40e0c0: 48 89 c1 mov %rax,%rcx + 40e0c3: 48 c1 e1 3c shl $0x3c,%rcx + 40e0c7: 48 c1 e9 3f shr $0x3f,%rcx + 40e0cb: 48 39 d1 cmp %rdx,%rcx + 40e0ce: 48 0f 47 ca cmova %rdx,%rcx + 40e0d2: 48 85 c9 test %rcx,%rcx + 40e0d5: 0f 84 f5 00 00 00 je 40e1d0 + 40e0db: 48 8b 30 mov (%rax),%rsi + 40e0de: 4c 8d 48 08 lea 0x8(%rax),%r9 + 40e0e2: 48 89 33 mov %rsi,(%rbx) + 40e0e5: 48 29 ca sub %rcx,%rdx + 40e0e8: 48 c1 e1 03 shl $0x3,%rcx + 40e0ec: 45 31 db xor %r11d,%r11d + 40e0ef: 48 8d 72 fe lea -0x2(%rdx),%rsi + 40e0f3: 48 01 c8 add %rcx,%rax + 40e0f6: 48 01 cb add %rcx,%rbx + 40e0f9: 31 c9 xor %ecx,%ecx + 40e0fb: 48 d1 ee shr %rsi + 40e0fe: 48 83 c6 01 add $0x1,%rsi + 40e102: 4c 8d 14 36 lea (%rsi,%rsi,1),%r10 + 40e106: 66 0f 6f 04 08 movdqa (%rax,%rcx,1),%xmm0 + 40e10b: 49 83 c3 01 add $0x1,%r11 + 40e10f: 0f 11 04 0b movups %xmm0,(%rbx,%rcx,1) + 40e113: 48 83 c1 10 add $0x10,%rcx + 40e117: 49 39 f3 cmp %rsi,%r11 + 40e11a: 72 ea jb 40e106 + 40e11c: 4a 8d 04 d5 00 00 00 lea 0x0(,%r10,8),%rax + 40e123: 00 + 40e124: 48 01 c7 add %rax,%rdi + 40e127: 49 01 c1 add %rax,%r9 + 40e12a: 49 39 d2 cmp %rdx,%r10 + 40e12d: 74 06 je 40e135 + 40e12f: 49 8b 01 mov (%r9),%rax + 40e132: 48 89 07 mov %rax,(%rdi) + 40e135: 4d 85 e4 test %r12,%r12 + 40e138: 4c 89 fb mov %r15,%rbx + 40e13b: 0f 85 ff fe ff ff jne 40e040 + 40e141: 4c 89 ed mov %r13,%rbp + 40e144: 4c 8b 6c 24 20 mov 0x20(%rsp),%r13 + 40e149: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40e150: 4d 85 e4 test %r12,%r12 + 40e153: 0f 85 df 00 00 00 jne 40e238 + 40e159: 48 8b 54 24 48 mov 0x48(%rsp),%rdx + 40e15e: 48 8b 44 24 18 mov 0x18(%rsp),%rax + 40e163: 48 8b 7c 24 28 mov 0x28(%rsp),%rdi + 40e168: 48 29 ea sub %rbp,%rdx + 40e16b: 48 8b 70 20 mov 0x20(%rax),%rsi + 40e16f: 48 0f af 54 24 10 imul 0x10(%rsp),%rdx + 40e175: 48 83 c4 58 add $0x58,%rsp + 40e179: 5b pop %rbx + 40e17a: 5d pop %rbp + 40e17b: 41 5c pop %r12 + 40e17d: 41 5d pop %r13 + 40e17f: 41 5e pop %r14 + 40e181: 41 5f pop %r15 + 40e183: e9 98 de 01 00 jmpq 42c020 + 40e188: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40e18f: 00 + 40e190: 48 83 c0 08 add $0x8,%rax + 40e194: 48 8b 50 f8 mov -0x8(%rax),%rdx + 40e198: 48 83 c3 08 add $0x8,%rbx + 40e19c: 49 39 df cmp %rbx,%r15 + 40e19f: 48 89 53 f8 mov %rdx,-0x8(%rbx) + 40e1a3: 77 eb ja 40e190 + 40e1a5: eb 8e jmp 40e135 + 40e1a7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40e1ae: 00 00 + 40e1b0: 48 8b 7c 24 20 mov 0x20(%rsp),%rdi + 40e1b5: 49 83 ec 01 sub $0x1,%r12 + 40e1b9: 48 89 f8 mov %rdi,%rax + 40e1bc: 4c 01 f7 add %r14,%rdi + 40e1bf: 48 89 7c 24 20 mov %rdi,0x20(%rsp) + 40e1c4: e9 aa fe ff ff jmpq 40e073 + 40e1c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40e1d0: 49 89 c1 mov %rax,%r9 + 40e1d3: 48 89 df mov %rbx,%rdi + 40e1d6: e9 0a ff ff ff jmpq 40e0e5 + 40e1db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40e1e0: 4d 85 e4 test %r12,%r12 + 40e1e3: 4c 8b 6c 24 28 mov 0x28(%rsp),%r13 + 40e1e8: 75 20 jne 40e20a + 40e1ea: e9 61 ff ff ff jmpq 40e150 + 40e1ef: 90 nop + 40e1f0: 41 8b 07 mov (%r15),%eax + 40e1f3: 48 83 ed 01 sub $0x1,%rbp + 40e1f7: 49 83 c7 04 add $0x4,%r15 + 40e1fb: 89 03 mov %eax,(%rbx) + 40e1fd: 48 83 c3 04 add $0x4,%rbx + 40e201: 4d 85 e4 test %r12,%r12 + 40e204: 0f 84 46 ff ff ff je 40e150 + 40e20a: 48 85 ed test %rbp,%rbp + 40e20d: 0f 84 3d ff ff ff je 40e150 + 40e213: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 40e218: 4c 89 fe mov %r15,%rsi + 40e21b: 4c 89 ef mov %r13,%rdi + 40e21e: 41 ff d6 callq *%r14 + 40e221: 85 c0 test %eax,%eax + 40e223: 7f cb jg 40e1f0 + 40e225: 41 8b 45 00 mov 0x0(%r13),%eax + 40e229: 49 83 ec 01 sub $0x1,%r12 + 40e22d: 49 83 c5 04 add $0x4,%r13 + 40e231: eb c8 jmp 40e1fb + 40e233: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40e238: 4c 89 e2 mov %r12,%rdx + 40e23b: 4c 89 ee mov %r13,%rsi + 40e23e: 48 89 df mov %rbx,%rdi + 40e241: 48 0f af 54 24 10 imul 0x10(%rsp),%rdx + 40e247: e8 d4 dd 01 00 callq 42c020 + 40e24c: e9 08 ff ff ff jmpq 40e159 + 40e251: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40e258: 48 85 ed test %rbp,%rbp + 40e25b: 0f 84 c8 00 00 00 je 40e329 + 40e261: 4d 85 e4 test %r12,%r12 + 40e264: 4c 8b 6c 24 28 mov 0x28(%rsp),%r13 + 40e269: 75 29 jne 40e294 + 40e26b: e9 b9 00 00 00 jmpq 40e329 + 40e270: 49 8b 07 mov (%r15),%rax + 40e273: 48 83 ed 01 sub $0x1,%rbp + 40e277: 49 83 c7 08 add $0x8,%r15 + 40e27b: 48 89 03 mov %rax,(%rbx) + 40e27e: 48 83 c3 08 add $0x8,%rbx + 40e282: 4d 85 e4 test %r12,%r12 + 40e285: 0f 84 c5 fe ff ff je 40e150 + 40e28b: 48 85 ed test %rbp,%rbp + 40e28e: 0f 84 bc fe ff ff je 40e150 + 40e294: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 40e299: 4c 89 fe mov %r15,%rsi + 40e29c: 4c 89 ef mov %r13,%rdi + 40e29f: 41 ff d6 callq *%r14 + 40e2a2: 85 c0 test %eax,%eax + 40e2a4: 7f ca jg 40e270 + 40e2a6: 49 8b 45 00 mov 0x0(%r13),%rax + 40e2aa: 49 83 ec 01 sub $0x1,%r12 + 40e2ae: 49 83 c5 08 add $0x8,%r13 + 40e2b2: eb c7 jmp 40e27b + 40e2b4: 0f 1f 40 00 nopl 0x0(%rax) + 40e2b8: 4c 8b 6c 24 28 mov 0x28(%rsp),%r13 + 40e2bd: 4d 85 e4 test %r12,%r12 + 40e2c0: 0f 84 8a fe ff ff je 40e150 + 40e2c6: 48 85 ed test %rbp,%rbp + 40e2c9: 0f 84 81 fe ff ff je 40e150 + 40e2cf: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 40e2d4: 4c 89 fe mov %r15,%rsi + 40e2d7: 4c 89 ef mov %r13,%rdi + 40e2da: 41 ff d6 callq *%r14 + 40e2dd: 85 c0 test %eax,%eax + 40e2df: 48 8b 54 24 10 mov 0x10(%rsp),%rdx + 40e2e4: 7e 2a jle 40e310 + 40e2e6: 4c 89 fe mov %r15,%rsi + 40e2e9: 48 89 df mov %rbx,%rdi + 40e2ec: 48 83 ed 01 sub $0x1,%rbp + 40e2f0: e8 cb 82 01 00 callq 4265c0 <__mempcpy> + 40e2f5: 4c 03 7c 24 10 add 0x10(%rsp),%r15 + 40e2fa: 4d 85 e4 test %r12,%r12 + 40e2fd: 48 89 c3 mov %rax,%rbx + 40e300: 75 c4 jne 40e2c6 + 40e302: e9 49 fe ff ff jmpq 40e150 + 40e307: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40e30e: 00 00 + 40e310: 4c 89 ee mov %r13,%rsi + 40e313: 48 89 df mov %rbx,%rdi + 40e316: 49 83 ec 01 sub $0x1,%r12 + 40e31a: e8 a1 82 01 00 callq 4265c0 <__mempcpy> + 40e31f: 4c 03 6c 24 10 add 0x10(%rsp),%r13 + 40e324: 48 89 c3 mov %rax,%rbx + 40e327: eb 94 jmp 40e2bd + 40e329: 4c 8b 6c 24 28 mov 0x28(%rsp),%r13 + 40e32e: e9 1d fe ff ff jmpq 40e150 + 40e333: 0f 1f 00 nopl (%rax) + 40e336: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40e33d: 00 00 00 + +000000000040e340 <__qsort_r>: + 40e340: 55 push %rbp + 40e341: 48 89 e5 mov %rsp,%rbp + 40e344: 41 57 push %r15 + 40e346: 41 56 push %r14 + 40e348: 41 55 push %r13 + 40e34a: 41 54 push %r12 + 40e34c: 49 89 fe mov %rdi,%r14 + 40e34f: 53 push %rbx + 40e350: 49 89 cf mov %rcx,%r15 + 40e353: 48 89 d3 mov %rdx,%rbx + 40e356: 49 89 f5 mov %rsi,%r13 + 40e359: 48 83 ec 68 sub $0x68,%rsp + 40e35d: 48 83 fa 20 cmp $0x20,%rdx + 40e361: 48 89 75 88 mov %rsi,-0x78(%rbp) + 40e365: 0f 87 f5 02 00 00 ja 40e660 <__qsort_r+0x320> + 40e36b: 4c 0f af ea imul %rdx,%r13 + 40e36f: 49 81 fd ff 03 00 00 cmp $0x3ff,%r13 + 40e376: 0f 86 f8 02 00 00 jbe 40e674 <__qsort_r+0x334> + 40e37c: 8b 15 ce dd 2b 00 mov 0x2bddce(%rip),%edx # 6cc150 + 40e382: 85 d2 test %edx,%edx + 40e384: 0f 84 96 03 00 00 je 40e720 <__qsort_r+0x3e0> + 40e38a: 48 63 f2 movslq %edx,%rsi + 40e38d: 4c 89 e8 mov %r13,%rax + 40e390: 31 d2 xor %edx,%edx + 40e392: 48 f7 f6 div %rsi + 40e395: 48 3b 05 ac dd 2b 00 cmp 0x2bddac(%rip),%rax # 6cc148 + 40e39c: 0f 87 fe 02 00 00 ja 40e6a0 <__qsort_r+0x360> + 40e3a2: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 40e3a9: 4c 89 ef mov %r13,%rdi + 40e3ac: 4c 89 45 98 mov %r8,-0x68(%rbp) + 40e3b0: 64 44 8b 20 mov %fs:(%rax),%r12d + 40e3b4: e8 57 f6 00 00 callq 41da10 <__libc_malloc> + 40e3b9: 48 c7 c1 d0 ff ff ff mov $0xffffffffffffffd0,%rcx + 40e3c0: 48 85 c0 test %rax,%rax + 40e3c3: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) + 40e3ca: 4c 8b 45 98 mov -0x68(%rbp),%r8 + 40e3ce: 64 44 89 21 mov %r12d,%fs:(%rcx) + 40e3d2: 0f 84 c8 02 00 00 je 40e6a0 <__qsort_r+0x360> + 40e3d8: 48 89 45 c0 mov %rax,-0x40(%rbp) + 40e3dc: 48 89 c6 mov %rax,%rsi + 40e3df: 48 83 fb 20 cmp $0x20,%rbx + 40e3e3: 48 89 5d a0 mov %rbx,-0x60(%rbp) + 40e3e7: 48 c7 45 a8 04 00 00 movq $0x4,-0x58(%rbp) + 40e3ee: 00 + 40e3ef: 4c 89 7d b0 mov %r15,-0x50(%rbp) + 40e3f3: 4c 89 45 b8 mov %r8,-0x48(%rbp) + 40e3f7: 0f 86 cb 02 00 00 jbe 40e6c8 <__qsort_r+0x388> + 40e3fd: 48 8b 45 88 mov -0x78(%rbp),%rax + 40e401: 4c 8d 0c c5 00 00 00 lea 0x0(,%rax,8),%r9 + 40e408: 00 + 40e409: 4e 8d 24 0e lea (%rsi,%r9,1),%r12 + 40e40d: 4b 8d 04 0c lea (%r12,%r9,1),%rax + 40e411: 49 39 c4 cmp %rax,%r12 + 40e414: 48 89 45 80 mov %rax,-0x80(%rbp) + 40e418: 0f 83 94 03 00 00 jae 40e7b2 <__qsort_r+0x472> + 40e41e: 49 8d 4c 24 08 lea 0x8(%r12),%rcx + 40e423: 4c 8d 58 07 lea 0x7(%rax),%r11 + 40e427: 4c 89 e2 mov %r12,%rdx + 40e42a: 48 c1 e2 3c shl $0x3c,%rdx + 40e42e: 49 29 cb sub %rcx,%r11 + 40e431: 48 c1 ea 3f shr $0x3f,%rdx + 40e435: 49 c1 eb 03 shr $0x3,%r11 + 40e439: 49 8d 7b 01 lea 0x1(%r11),%rdi + 40e43d: 48 39 fa cmp %rdi,%rdx + 40e440: 48 0f 47 d7 cmova %rdi,%rdx + 40e444: 48 83 ff 0a cmp $0xa,%rdi + 40e448: 0f 87 29 03 00 00 ja 40e777 <__qsort_r+0x437> + 40e44e: 48 89 fa mov %rdi,%rdx + 40e451: 48 83 fa 01 cmp $0x1,%rdx + 40e455: 4d 89 34 24 mov %r14,(%r12) + 40e459: 49 8d 04 1e lea (%r14,%rbx,1),%rax + 40e45d: 0f 84 a9 00 00 00 je 40e50c <__qsort_r+0x1cc> + 40e463: 49 89 44 24 08 mov %rax,0x8(%r12) + 40e468: 48 01 d8 add %rbx,%rax + 40e46b: 48 83 fa 02 cmp $0x2,%rdx + 40e46f: 49 8d 4c 24 10 lea 0x10(%r12),%rcx + 40e474: 0f 84 92 00 00 00 je 40e50c <__qsort_r+0x1cc> + 40e47a: 49 89 44 24 10 mov %rax,0x10(%r12) + 40e47f: 48 01 d8 add %rbx,%rax + 40e482: 48 83 fa 03 cmp $0x3,%rdx + 40e486: 49 8d 4c 24 18 lea 0x18(%r12),%rcx + 40e48b: 74 7f je 40e50c <__qsort_r+0x1cc> + 40e48d: 49 89 44 24 18 mov %rax,0x18(%r12) + 40e492: 48 01 d8 add %rbx,%rax + 40e495: 48 83 fa 04 cmp $0x4,%rdx + 40e499: 49 8d 4c 24 20 lea 0x20(%r12),%rcx + 40e49e: 74 6c je 40e50c <__qsort_r+0x1cc> + 40e4a0: 49 89 44 24 20 mov %rax,0x20(%r12) + 40e4a5: 48 01 d8 add %rbx,%rax + 40e4a8: 48 83 fa 05 cmp $0x5,%rdx + 40e4ac: 49 8d 4c 24 28 lea 0x28(%r12),%rcx + 40e4b1: 74 59 je 40e50c <__qsort_r+0x1cc> + 40e4b3: 49 89 44 24 28 mov %rax,0x28(%r12) + 40e4b8: 48 01 d8 add %rbx,%rax + 40e4bb: 48 83 fa 06 cmp $0x6,%rdx + 40e4bf: 49 8d 4c 24 30 lea 0x30(%r12),%rcx + 40e4c4: 74 46 je 40e50c <__qsort_r+0x1cc> + 40e4c6: 49 89 44 24 30 mov %rax,0x30(%r12) + 40e4cb: 48 01 d8 add %rbx,%rax + 40e4ce: 48 83 fa 07 cmp $0x7,%rdx + 40e4d2: 49 8d 4c 24 38 lea 0x38(%r12),%rcx + 40e4d7: 74 33 je 40e50c <__qsort_r+0x1cc> + 40e4d9: 49 89 44 24 38 mov %rax,0x38(%r12) + 40e4de: 48 01 d8 add %rbx,%rax + 40e4e1: 48 83 fa 08 cmp $0x8,%rdx + 40e4e5: 49 8d 4c 24 40 lea 0x40(%r12),%rcx + 40e4ea: 74 20 je 40e50c <__qsort_r+0x1cc> + 40e4ec: 49 89 44 24 40 mov %rax,0x40(%r12) + 40e4f1: 48 01 d8 add %rbx,%rax + 40e4f4: 48 83 fa 0a cmp $0xa,%rdx + 40e4f8: 49 8d 4c 24 48 lea 0x48(%r12),%rcx + 40e4fd: 75 0d jne 40e50c <__qsort_r+0x1cc> + 40e4ff: 49 8d 4c 24 50 lea 0x50(%r12),%rcx + 40e504: 49 89 44 24 48 mov %rax,0x48(%r12) + 40e509: 48 01 d8 add %rbx,%rax + 40e50c: 48 39 d7 cmp %rdx,%rdi + 40e50f: 74 72 je 40e583 <__qsort_r+0x243> + 40e511: 48 29 d7 sub %rdx,%rdi + 40e514: 4c 8d 47 fe lea -0x2(%rdi),%r8 + 40e518: 49 d1 e8 shr %r8 + 40e51b: 49 83 c0 01 add $0x1,%r8 + 40e51f: 49 39 d3 cmp %rdx,%r11 + 40e522: 4f 8d 14 00 lea (%r8,%r8,1),%r10 + 40e526: 74 58 je 40e580 <__qsort_r+0x240> + 40e528: 4c 8d 1c 03 lea (%rbx,%rax,1),%r11 + 40e52c: 48 89 45 98 mov %rax,-0x68(%rbp) + 40e530: 48 03 55 88 add -0x78(%rbp),%rdx + 40e534: f3 0f 7e 45 98 movq -0x68(%rbp),%xmm0 + 40e539: 4c 89 5d 98 mov %r11,-0x68(%rbp) + 40e53d: 4c 8d 1c 1b lea (%rbx,%rbx,1),%r11 + 40e541: 0f 16 45 98 movhps -0x68(%rbp),%xmm0 + 40e545: 4c 89 5d 98 mov %r11,-0x68(%rbp) + 40e549: 48 8d 34 d6 lea (%rsi,%rdx,8),%rsi + 40e54d: 31 d2 xor %edx,%edx + 40e54f: f3 0f 7e 4d 98 movq -0x68(%rbp),%xmm1 + 40e554: 66 0f 6c c9 punpcklqdq %xmm1,%xmm1 + 40e558: 48 83 c2 01 add $0x1,%rdx + 40e55c: 48 83 c6 10 add $0x10,%rsi + 40e560: 0f 29 46 f0 movaps %xmm0,-0x10(%rsi) + 40e564: 66 0f d4 c1 paddq %xmm1,%xmm0 + 40e568: 4c 39 c2 cmp %r8,%rdx + 40e56b: 72 eb jb 40e558 <__qsort_r+0x218> + 40e56d: 48 89 da mov %rbx,%rdx + 40e570: 4a 8d 0c d1 lea (%rcx,%r10,8),%rcx + 40e574: 49 0f af d2 imul %r10,%rdx + 40e578: 48 01 d0 add %rdx,%rax + 40e57b: 4c 39 d7 cmp %r10,%rdi + 40e57e: 74 03 je 40e583 <__qsort_r+0x243> + 40e580: 48 89 01 mov %rax,(%rcx) + 40e583: 4c 89 ce mov %r9,%rsi + 40e586: 48 03 75 c0 add -0x40(%rbp),%rsi + 40e58a: 48 8b 45 88 mov -0x78(%rbp),%rax + 40e58e: 48 c7 45 a0 08 00 00 movq $0x8,-0x60(%rbp) + 40e595: 00 + 40e596: 48 c7 45 a8 03 00 00 movq $0x3,-0x58(%rbp) + 40e59d: 00 + 40e59e: 48 83 f8 01 cmp $0x1,%rax + 40e5a2: 0f 86 e3 01 00 00 jbe 40e78b <__qsort_r+0x44b> + 40e5a8: 48 8d 7d a0 lea -0x60(%rbp),%rdi + 40e5ac: 48 89 c2 mov %rax,%rdx + 40e5af: e8 3c f9 ff ff callq 40def0 + 40e5b4: 48 c7 45 90 00 00 00 movq $0x0,-0x70(%rbp) + 40e5bb: 00 + 40e5bc: 48 8b 45 90 mov -0x70(%rbp),%rax + 40e5c0: 4c 89 75 98 mov %r14,-0x68(%rbp) + 40e5c4: 0f 1f 40 00 nopl 0x0(%rax) + 40e5c8: 4d 8b 3c c4 mov (%r12,%rax,8),%r15 + 40e5cc: 4c 8b 6d 98 mov -0x68(%rbp),%r13 + 40e5d0: 4d 39 ef cmp %r13,%r15 + 40e5d3: 74 5d je 40e632 <__qsort_r+0x2f2> + 40e5d5: 48 8b 7d 80 mov -0x80(%rbp),%rdi + 40e5d9: 4c 89 ee mov %r13,%rsi + 40e5dc: 48 89 da mov %rbx,%rdx + 40e5df: e8 3c da 01 00 callq 42c020 + 40e5e4: 4c 89 ef mov %r13,%rdi + 40e5e7: 48 8b 75 90 mov -0x70(%rbp),%rsi + 40e5eb: eb 06 jmp 40e5f3 <__qsort_r+0x2b3> + 40e5ed: 0f 1f 00 nopl (%rax) + 40e5f0: 49 89 c7 mov %rax,%r15 + 40e5f3: 4c 89 f8 mov %r15,%rax + 40e5f6: 31 d2 xor %edx,%edx + 40e5f8: 49 89 3c f4 mov %rdi,(%r12,%rsi,8) + 40e5fc: 4c 29 f0 sub %r14,%rax + 40e5ff: 4c 89 fe mov %r15,%rsi + 40e602: 48 f7 f3 div %rbx + 40e605: 48 89 da mov %rbx,%rdx + 40e608: 49 89 c5 mov %rax,%r13 + 40e60b: e8 10 da 01 00 callq 42c020 + 40e610: 4b 8d 14 ec lea (%r12,%r13,8),%rdx + 40e614: 4c 89 ee mov %r13,%rsi + 40e617: 4c 89 ff mov %r15,%rdi + 40e61a: 48 8b 02 mov (%rdx),%rax + 40e61d: 48 3b 45 98 cmp -0x68(%rbp),%rax + 40e621: 75 cd jne 40e5f0 <__qsort_r+0x2b0> + 40e623: 48 8b 75 80 mov -0x80(%rbp),%rsi + 40e627: 4c 89 3a mov %r15,(%rdx) + 40e62a: 48 89 da mov %rbx,%rdx + 40e62d: e8 ee d9 01 00 callq 42c020 + 40e632: 48 83 45 90 01 addq $0x1,-0x70(%rbp) + 40e637: 48 01 5d 98 add %rbx,-0x68(%rbp) + 40e63b: 48 8b 45 90 mov -0x70(%rbp),%rax + 40e63f: 48 39 45 88 cmp %rax,-0x78(%rbp) + 40e643: 75 83 jne 40e5c8 <__qsort_r+0x288> + 40e645: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi + 40e64c: e8 5f f7 00 00 callq 41ddb0 <__cfree> + 40e651: 48 8d 65 d8 lea -0x28(%rbp),%rsp + 40e655: 5b pop %rbx + 40e656: 41 5c pop %r12 + 40e658: 41 5d pop %r13 + 40e65a: 41 5e pop %r14 + 40e65c: 41 5f pop %r15 + 40e65e: 5d pop %rbp + 40e65f: c3 retq + 40e660: 49 c1 e5 04 shl $0x4,%r13 + 40e664: 49 01 d5 add %rdx,%r13 + 40e667: 49 81 fd ff 03 00 00 cmp $0x3ff,%r13 + 40e66e: 0f 87 08 fd ff ff ja 40e37c <__qsort_r+0x3c> + 40e674: 49 83 c5 1e add $0x1e,%r13 + 40e678: 48 c7 85 78 ff ff ff movq $0x0,-0x88(%rbp) + 40e67f: 00 00 00 00 + 40e683: 49 83 e5 f0 and $0xfffffffffffffff0,%r13 + 40e687: 4c 29 ec sub %r13,%rsp + 40e68a: 48 8d 74 24 0f lea 0xf(%rsp),%rsi + 40e68f: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 40e693: 48 89 75 c0 mov %rsi,-0x40(%rbp) + 40e697: e9 43 fd ff ff jmpq 40e3df <__qsort_r+0x9f> + 40e69c: 0f 1f 40 00 nopl 0x0(%rax) + 40e6a0: 48 8b 75 88 mov -0x78(%rbp),%rsi + 40e6a4: 4c 89 f9 mov %r15,%rcx + 40e6a7: 48 89 da mov %rbx,%rdx + 40e6aa: 4c 89 f7 mov %r14,%rdi + 40e6ad: e8 ce 10 04 00 callq 44f780 <_quicksort> + 40e6b2: 48 8d 65 d8 lea -0x28(%rbp),%rsp + 40e6b6: 5b pop %rbx + 40e6b7: 41 5c pop %r12 + 40e6b9: 41 5d pop %r13 + 40e6bb: 41 5e pop %r14 + 40e6bd: 41 5f pop %r15 + 40e6bf: 5d pop %rbp + 40e6c0: c3 retq + 40e6c1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40e6c8: 48 89 d8 mov %rbx,%rax + 40e6cb: 4c 09 f0 or %r14,%rax + 40e6ce: a8 03 test $0x3,%al + 40e6d0: 75 20 jne 40e6f2 <__qsort_r+0x3b2> + 40e6d2: 48 83 fb 04 cmp $0x4,%rbx + 40e6d6: 0f 84 de 00 00 00 je 40e7ba <__qsort_r+0x47a> + 40e6dc: 48 83 fb 08 cmp $0x8,%rbx + 40e6e0: 0f 84 b5 00 00 00 je 40e79b <__qsort_r+0x45b> + 40e6e6: a8 07 test $0x7,%al + 40e6e8: 75 08 jne 40e6f2 <__qsort_r+0x3b2> + 40e6ea: 48 c7 45 a8 02 00 00 movq $0x2,-0x58(%rbp) + 40e6f1: 00 + 40e6f2: 48 8b 45 88 mov -0x78(%rbp),%rax + 40e6f6: 48 83 f8 01 cmp $0x1,%rax + 40e6fa: 0f 86 45 ff ff ff jbe 40e645 <__qsort_r+0x305> + 40e700: 48 8d 7d a0 lea -0x60(%rbp),%rdi + 40e704: 48 89 c2 mov %rax,%rdx + 40e707: 4c 89 f6 mov %r14,%rsi + 40e70a: e8 e1 f7 ff ff callq 40def0 + 40e70f: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi + 40e716: e8 95 f6 00 00 callq 41ddb0 <__cfree> + 40e71b: e9 31 ff ff ff jmpq 40e651 <__qsort_r+0x311> + 40e720: bf 55 00 00 00 mov $0x55,%edi + 40e725: 4c 89 45 98 mov %r8,-0x68(%rbp) + 40e729: e8 e2 01 03 00 callq 43e910 <__sysconf> + 40e72e: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 40e732: 48 ba ff ff ff ff ff movabs $0x1fffffffffffffff,%rdx + 40e739: ff ff 1f + 40e73c: 4c 8b 45 98 mov -0x68(%rbp),%r8 + 40e740: 74 0f je 40e751 <__qsort_r+0x411> + 40e742: 48 8d 50 03 lea 0x3(%rax),%rdx + 40e746: 48 85 c0 test %rax,%rax + 40e749: 48 0f 49 d0 cmovns %rax,%rdx + 40e74d: 48 c1 fa 02 sar $0x2,%rdx + 40e751: 4c 89 45 98 mov %r8,-0x68(%rbp) + 40e755: 48 89 15 ec d9 2b 00 mov %rdx,0x2bd9ec(%rip) # 6cc148 + 40e75c: bf 1e 00 00 00 mov $0x1e,%edi + 40e761: e8 aa 01 03 00 callq 43e910 <__sysconf> + 40e766: 4c 8b 45 98 mov -0x68(%rbp),%r8 + 40e76a: 89 c2 mov %eax,%edx + 40e76c: 89 05 de d9 2b 00 mov %eax,0x2bd9de(%rip) # 6cc150 + 40e772: e9 13 fc ff ff jmpq 40e38a <__qsort_r+0x4a> + 40e777: 48 85 d2 test %rdx,%rdx + 40e77a: 0f 85 d1 fc ff ff jne 40e451 <__qsort_r+0x111> + 40e780: 4c 89 e1 mov %r12,%rcx + 40e783: 4c 89 f0 mov %r14,%rax + 40e786: e9 86 fd ff ff jmpq 40e511 <__qsort_r+0x1d1> + 40e78b: 48 83 7d 88 00 cmpq $0x0,-0x78(%rbp) + 40e790: 0f 85 1e fe ff ff jne 40e5b4 <__qsort_r+0x274> + 40e796: e9 aa fe ff ff jmpq 40e645 <__qsort_r+0x305> + 40e79b: 41 f6 c6 07 test $0x7,%r14b + 40e79f: 0f 85 41 ff ff ff jne 40e6e6 <__qsort_r+0x3a6> + 40e7a5: 48 c7 45 a8 01 00 00 movq $0x1,-0x58(%rbp) + 40e7ac: 00 + 40e7ad: e9 40 ff ff ff jmpq 40e6f2 <__qsort_r+0x3b2> + 40e7b2: 4c 89 e6 mov %r12,%rsi + 40e7b5: e9 d0 fd ff ff jmpq 40e58a <__qsort_r+0x24a> + 40e7ba: 48 c7 45 a8 00 00 00 movq $0x0,-0x58(%rbp) + 40e7c1: 00 + 40e7c2: e9 2b ff ff ff jmpq 40e6f2 <__qsort_r+0x3b2> + 40e7c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40e7ce: 00 00 + +000000000040e7d0 : + 40e7d0: 45 31 c0 xor %r8d,%r8d + 40e7d3: e9 68 fb ff ff jmpq 40e340 <__qsort_r> + 40e7d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40e7df: 00 + +000000000040e7e0 : + 40e7e0: 41 57 push %r15 + 40e7e2: 41 56 push %r14 + 40e7e4: 41 55 push %r13 + 40e7e6: 41 54 push %r12 + 40e7e8: 55 push %rbp + 40e7e9: 53 push %rbx + 40e7ea: 48 89 fb mov %rdi,%rbx + 40e7ed: 48 83 ec 08 sub $0x8,%rsp + 40e7f1: e8 5a 4e 01 00 callq 423650 + 40e7f6: 48 8b 2d 43 de 2b 00 mov 0x2bde43(%rip),%rbp # 6cc640 <__environ> + 40e7fd: 48 85 ed test %rbp,%rbp + 40e800: 0f 84 b2 00 00 00 je 40e8b8 + 40e806: 49 89 c5 mov %rax,%r13 + 40e809: 0f b6 03 movzbl (%rbx),%eax + 40e80c: 84 c0 test %al,%al + 40e80e: 0f 84 a4 00 00 00 je 40e8b8 + 40e814: 80 7b 01 00 cmpb $0x0,0x1(%rbx) + 40e818: 75 46 jne 40e860 + 40e81a: 48 8b 5d 00 mov 0x0(%rbp),%rbx + 40e81e: 80 cc 3d or $0x3d,%ah + 40e821: 48 85 db test %rbx,%rbx + 40e824: 75 17 jne 40e83d + 40e826: eb 1e jmp 40e846 + 40e828: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40e82f: 00 + 40e830: 48 83 c5 08 add $0x8,%rbp + 40e834: 48 8b 5d 00 mov 0x0(%rbp),%rbx + 40e838: 48 85 db test %rbx,%rbx + 40e83b: 74 09 je 40e846 + 40e83d: 66 3b 03 cmp (%rbx),%ax + 40e840: 75 ee jne 40e830 + 40e842: 48 83 c3 02 add $0x2,%rbx + 40e846: 48 83 c4 08 add $0x8,%rsp + 40e84a: 48 89 d8 mov %rbx,%rax + 40e84d: 5b pop %rbx + 40e84e: 5d pop %rbp + 40e84f: 41 5c pop %r12 + 40e851: 41 5d pop %r13 + 40e853: 41 5e pop %r14 + 40e855: 41 5f pop %r15 + 40e857: c3 retq + 40e858: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40e85f: 00 + 40e860: 44 0f b7 23 movzwl (%rbx),%r12d + 40e864: 4c 8d 7b 02 lea 0x2(%rbx),%r15 + 40e868: 48 8b 5d 00 mov 0x0(%rbp),%rbx + 40e86c: 4d 8d 75 fe lea -0x2(%r13),%r14 + 40e870: 48 85 db test %rbx,%rbx + 40e873: 75 18 jne 40e88d + 40e875: eb cf jmp 40e846 + 40e877: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40e87e: 00 00 + 40e880: 48 83 c5 08 add $0x8,%rbp + 40e884: 48 8b 5d 00 mov 0x0(%rbp),%rbx + 40e888: 48 85 db test %rbx,%rbx + 40e88b: 74 b9 je 40e846 + 40e88d: 66 44 3b 23 cmp (%rbx),%r12w + 40e891: 75 ed jne 40e880 + 40e893: 48 8d 7b 02 lea 0x2(%rbx),%rdi + 40e897: 4c 89 f2 mov %r14,%rdx + 40e89a: 4c 89 fe mov %r15,%rsi + 40e89d: e8 4e 4f 01 00 callq 4237f0 + 40e8a2: 85 c0 test %eax,%eax + 40e8a4: 75 da jne 40e880 + 40e8a6: 42 80 3c 2b 3d cmpb $0x3d,(%rbx,%r13,1) + 40e8ab: 75 d3 jne 40e880 + 40e8ad: 4a 8d 5c 2b 01 lea 0x1(%rbx,%r13,1),%rbx + 40e8b2: eb 92 jmp 40e846 + 40e8b4: 0f 1f 40 00 nopl 0x0(%rax) + 40e8b8: 31 db xor %ebx,%ebx + 40e8ba: eb 8a jmp 40e846 + 40e8bc: 0f 1f 40 00 nopl 0x0(%rax) + +000000000040e8c0 <__run_exit_handlers>: + 40e8c0: 41 55 push %r13 + 40e8c2: 41 54 push %r12 + 40e8c4: b8 00 00 00 00 mov $0x0,%eax + 40e8c9: 55 push %rbp + 40e8ca: 53 push %rbx + 40e8cb: 48 89 f5 mov %rsi,%rbp + 40e8ce: 89 fb mov %edi,%ebx + 40e8d0: 41 89 d4 mov %edx,%r12d + 40e8d3: 48 83 ec 08 sub $0x8,%rsp + 40e8d7: 48 85 c0 test %rax,%rax + 40e8da: 74 05 je 40e8e1 <__run_exit_handlers+0x21> + 40e8dc: e8 1f 17 bf ff callq 0 <_nl_current_LC_CTYPE> + 40e8e1: 4c 8b 6d 00 mov 0x0(%rbp),%r13 + 40e8e5: 4d 85 ed test %r13,%r13 + 40e8e8: 74 56 je 40e940 <__run_exit_handlers+0x80> + 40e8ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 40e8f0: 49 8b 45 08 mov 0x8(%r13),%rax + 40e8f4: 48 89 c2 mov %rax,%rdx + 40e8f7: 48 c1 e2 05 shl $0x5,%rdx + 40e8fb: 48 85 c0 test %rax,%rax + 40e8fe: 49 8d 4c 15 f0 lea -0x10(%r13,%rdx,1),%rcx + 40e903: 74 2a je 40e92f <__run_exit_handlers+0x6f> + 40e905: 48 83 e8 01 sub $0x1,%rax + 40e909: 49 89 45 08 mov %rax,0x8(%r13) + 40e90d: 48 8b 11 mov (%rcx),%rdx + 40e910: 48 83 fa 03 cmp $0x3,%rdx + 40e914: 0f 84 a6 00 00 00 je 40e9c0 <__run_exit_handlers+0x100> + 40e91a: 48 83 fa 04 cmp $0x4,%rdx + 40e91e: 74 78 je 40e998 <__run_exit_handlers+0xd8> + 40e920: 48 83 fa 02 cmp $0x2,%rdx + 40e924: 74 4a je 40e970 <__run_exit_handlers+0xb0> + 40e926: 48 83 e9 20 sub $0x20,%rcx + 40e92a: 48 85 c0 test %rax,%rax + 40e92d: 75 d6 jne 40e905 <__run_exit_handlers+0x45> + 40e92f: 49 8b 45 00 mov 0x0(%r13),%rax + 40e933: 48 85 c0 test %rax,%rax + 40e936: 48 89 45 00 mov %rax,0x0(%rbp) + 40e93a: 0f 85 9d 00 00 00 jne 40e9dd <__run_exit_handlers+0x11d> + 40e940: 45 84 e4 test %r12b,%r12b + 40e943: 74 20 je 40e965 <__run_exit_handlers+0xa5> + 40e945: b8 58 e1 4b 00 mov $0x4be158,%eax + 40e94a: 48 3d 60 e1 4b 00 cmp $0x4be160,%rax + 40e950: 73 13 jae 40e965 <__run_exit_handlers+0xa5> + 40e952: 48 89 c5 mov %rax,%rbp + 40e955: ff 55 00 callq *0x0(%rbp) + 40e958: 48 83 c5 08 add $0x8,%rbp + 40e95c: 48 81 fd 60 e1 4b 00 cmp $0x4be160,%rbp + 40e963: 72 f0 jb 40e955 <__run_exit_handlers+0x95> + 40e965: 89 df mov %ebx,%edi + 40e967: e8 64 fe 02 00 callq 43e7d0 <_exit> + 40e96c: 0f 1f 40 00 nopl 0x0(%rax) + 40e970: 48 c1 e0 05 shl $0x5,%rax + 40e974: 89 df mov %ebx,%edi + 40e976: 4c 01 e8 add %r13,%rax + 40e979: 48 8b 50 18 mov 0x18(%rax),%rdx + 40e97d: 48 8b 70 20 mov 0x20(%rax),%rsi + 40e981: 48 c1 ca 11 ror $0x11,%rdx + 40e985: 64 48 33 14 25 30 00 xor %fs:0x30,%rdx + 40e98c: 00 00 + 40e98e: ff d2 callq *%rdx + 40e990: e9 5b ff ff ff jmpq 40e8f0 <__run_exit_handlers+0x30> + 40e995: 0f 1f 00 nopl (%rax) + 40e998: 48 c1 e0 05 shl $0x5,%rax + 40e99c: 89 de mov %ebx,%esi + 40e99e: 4c 01 e8 add %r13,%rax + 40e9a1: 48 8b 50 18 mov 0x18(%rax),%rdx + 40e9a5: 48 8b 78 20 mov 0x20(%rax),%rdi + 40e9a9: 48 c1 ca 11 ror $0x11,%rdx + 40e9ad: 64 48 33 14 25 30 00 xor %fs:0x30,%rdx + 40e9b4: 00 00 + 40e9b6: ff d2 callq *%rdx + 40e9b8: e9 33 ff ff ff jmpq 40e8f0 <__run_exit_handlers+0x30> + 40e9bd: 0f 1f 00 nopl (%rax) + 40e9c0: 48 c1 e0 05 shl $0x5,%rax + 40e9c4: 49 8b 44 05 18 mov 0x18(%r13,%rax,1),%rax + 40e9c9: 48 c1 c8 11 ror $0x11,%rax + 40e9cd: 64 48 33 04 25 30 00 xor %fs:0x30,%rax + 40e9d4: 00 00 + 40e9d6: ff d0 callq *%rax + 40e9d8: e9 13 ff ff ff jmpq 40e8f0 <__run_exit_handlers+0x30> + 40e9dd: 4c 89 ef mov %r13,%rdi + 40e9e0: e8 cb f3 00 00 callq 41ddb0 <__cfree> + 40e9e5: e9 f7 fe ff ff jmpq 40e8e1 <__run_exit_handlers+0x21> + 40e9ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +000000000040e9f0 : + 40e9f0: 48 83 ec 08 sub $0x8,%rsp + 40e9f4: ba 01 00 00 00 mov $0x1,%edx + 40e9f9: be a0 a0 6c 00 mov $0x6ca0a0,%esi + 40e9fe: e8 bd fe ff ff callq 40e8c0 <__run_exit_handlers> + 40ea03: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40ea0a: 00 00 00 + 40ea0d: 0f 1f 00 nopl (%rax) + +000000000040ea10 <__new_exitfn>: + 40ea10: 55 push %rbp + 40ea11: 53 push %rbx + 40ea12: be 01 00 00 00 mov $0x1,%esi + 40ea17: 48 89 fb mov %rdi,%rbx + 40ea1a: 31 c0 xor %eax,%eax + 40ea1c: 48 83 ec 08 sub $0x8,%rsp + 40ea20: 83 3d 95 e7 2b 00 00 cmpl $0x0,0x2be795(%rip) # 6cd1bc <__libc_multiple_threads> + 40ea27: 74 0c je 40ea35 <__new_exitfn+0x25> + 40ea29: f0 0f b1 35 3f db 2b lock cmpxchg %esi,0x2bdb3f(%rip) # 6cc570 + 40ea30: 00 + 40ea31: 75 0b jne 40ea3e <__new_exitfn+0x2e> + 40ea33: eb 23 jmp 40ea58 <__new_exitfn+0x48> + 40ea35: 0f b1 35 34 db 2b 00 cmpxchg %esi,0x2bdb34(%rip) # 6cc570 + 40ea3c: 74 1a je 40ea58 <__new_exitfn+0x48> + 40ea3e: 48 8d 3d 2b db 2b 00 lea 0x2bdb2b(%rip),%rdi # 6cc570 + 40ea45: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 40ea4c: e8 7f 3b 03 00 callq 4425d0 <__lll_lock_wait_private> + 40ea51: 48 81 c4 80 00 00 00 add $0x80,%rsp + 40ea58: 48 8b 2b mov (%rbx),%rbp + 40ea5b: 31 ff xor %edi,%edi + 40ea5d: 48 85 ed test %rbp,%rbp + 40ea60: 48 89 e8 mov %rbp,%rax + 40ea63: 0f 84 10 01 00 00 je 40eb79 <__new_exitfn+0x169> + 40ea69: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40ea70: 48 8b 48 08 mov 0x8(%rax),%rcx + 40ea74: 48 85 c9 test %rcx,%rcx + 40ea77: 74 3e je 40eab7 <__new_exitfn+0xa7> + 40ea79: 48 8d 51 ff lea -0x1(%rcx),%rdx + 40ea7d: 48 89 d6 mov %rdx,%rsi + 40ea80: 48 c1 e6 05 shl $0x5,%rsi + 40ea84: 48 83 7c 30 10 00 cmpq $0x0,0x10(%rax,%rsi,1) + 40ea8a: 75 47 jne 40ead3 <__new_exitfn+0xc3> + 40ea8c: 48 c1 e1 05 shl $0x5,%rcx + 40ea90: 48 8d 4c 08 d0 lea -0x30(%rax,%rcx,1),%rcx + 40ea95: eb 1b jmp 40eab2 <__new_exitfn+0xa2> + 40ea97: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40ea9e: 00 00 + 40eaa0: 48 83 e9 20 sub $0x20,%rcx + 40eaa4: 48 8d 72 ff lea -0x1(%rdx),%rsi + 40eaa8: 48 83 79 20 00 cmpq $0x0,0x20(%rcx) + 40eaad: 75 31 jne 40eae0 <__new_exitfn+0xd0> + 40eaaf: 48 89 f2 mov %rsi,%rdx + 40eab2: 48 85 d2 test %rdx,%rdx + 40eab5: 75 e9 jne 40eaa0 <__new_exitfn+0x90> + 40eab7: 48 8b 10 mov (%rax),%rdx + 40eaba: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) + 40eac1: 00 + 40eac2: 48 89 c7 mov %rax,%rdi + 40eac5: 48 85 d2 test %rdx,%rdx + 40eac8: 0f 84 9d 00 00 00 je 40eb6b <__new_exitfn+0x15b> + 40eace: 48 89 d0 mov %rdx,%rax + 40ead1: eb 9d jmp 40ea70 <__new_exitfn+0x60> + 40ead3: 48 89 ca mov %rcx,%rdx + 40ead6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40eadd: 00 00 00 + 40eae0: 48 83 fa 20 cmp $0x20,%rdx + 40eae4: 74 63 je 40eb49 <__new_exitfn+0x139> + 40eae6: 48 89 d1 mov %rdx,%rcx + 40eae9: 48 83 c2 01 add $0x1,%rdx + 40eaed: 48 c1 e1 05 shl $0x5,%rcx + 40eaf1: 48 89 50 08 mov %rdx,0x8(%rax) + 40eaf5: 48 8d 74 08 10 lea 0x10(%rax,%rcx,1),%rsi + 40eafa: 48 c7 06 01 00 00 00 movq $0x1,(%rsi) + 40eb01: 48 83 05 a7 e6 2b 00 addq $0x1,0x2be6a7(%rip) # 6cd1b0 <__new_exitfn_called> + 40eb08: 01 + 40eb09: 83 3d ac e6 2b 00 00 cmpl $0x0,0x2be6ac(%rip) # 6cd1bc <__libc_multiple_threads> + 40eb10: 74 0b je 40eb1d <__new_exitfn+0x10d> + 40eb12: f0 ff 0d 57 da 2b 00 lock decl 0x2bda57(%rip) # 6cc570 + 40eb19: 75 0a jne 40eb25 <__new_exitfn+0x115> + 40eb1b: eb 22 jmp 40eb3f <__new_exitfn+0x12f> + 40eb1d: ff 0d 4d da 2b 00 decl 0x2bda4d(%rip) # 6cc570 + 40eb23: 74 1a je 40eb3f <__new_exitfn+0x12f> + 40eb25: 48 8d 3d 44 da 2b 00 lea 0x2bda44(%rip),%rdi # 6cc570 + 40eb2c: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 40eb33: e8 c8 3a 03 00 callq 442600 <__lll_unlock_wake_private> + 40eb38: 48 81 c4 80 00 00 00 add $0x80,%rsp + 40eb3f: 48 83 c4 08 add $0x8,%rsp + 40eb43: 48 89 f0 mov %rsi,%rax + 40eb46: 5b pop %rbx + 40eb47: 5d pop %rbp + 40eb48: c3 retq + 40eb49: 48 85 ff test %rdi,%rdi + 40eb4c: 48 89 f8 mov %rdi,%rax + 40eb4f: 75 1a jne 40eb6b <__new_exitfn+0x15b> + 40eb51: be 10 04 00 00 mov $0x410,%esi + 40eb56: bf 01 00 00 00 mov $0x1,%edi + 40eb5b: e8 60 fa 00 00 callq 41e5c0 <__calloc> + 40eb60: 48 85 c0 test %rax,%rax + 40eb63: 74 2d je 40eb92 <__new_exitfn+0x182> + 40eb65: 48 89 28 mov %rbp,(%rax) + 40eb68: 48 89 03 mov %rax,(%rbx) + 40eb6b: 48 8d 70 10 lea 0x10(%rax),%rsi + 40eb6f: 48 c7 40 08 01 00 00 movq $0x1,0x8(%rax) + 40eb76: 00 + 40eb77: eb 81 jmp 40eafa <__new_exitfn+0xea> + 40eb79: b9 18 19 4a 00 mov $0x4a1918,%ecx + 40eb7e: ba 64 00 00 00 mov $0x64,%edx + 40eb83: be 00 19 4a 00 mov $0x4a1900,%esi + 40eb88: bf 0d 19 4a 00 mov $0x4a190d,%edi + 40eb8d: e8 ae 2b ff ff callq 401740 <__assert_fail> + 40eb92: 31 f6 xor %esi,%esi + 40eb94: e9 70 ff ff ff jmpq 40eb09 <__new_exitfn+0xf9> + 40eb99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +000000000040eba0 <__internal_atexit>: + 40eba0: 41 54 push %r12 + 40eba2: 55 push %rbp + 40eba3: 49 89 f4 mov %rsi,%r12 + 40eba6: 53 push %rbx + 40eba7: 48 89 fb mov %rdi,%rbx + 40ebaa: 48 89 cf mov %rcx,%rdi + 40ebad: 48 89 d5 mov %rdx,%rbp + 40ebb0: e8 5b fe ff ff callq 40ea10 <__new_exitfn> + 40ebb5: 48 85 c0 test %rax,%rax + 40ebb8: 74 2a je 40ebe4 <__internal_atexit+0x44> + 40ebba: 48 89 df mov %rbx,%rdi + 40ebbd: 4c 89 60 10 mov %r12,0x10(%rax) + 40ebc1: 48 89 68 18 mov %rbp,0x18(%rax) + 40ebc5: 64 48 33 3c 25 30 00 xor %fs:0x30,%rdi + 40ebcc: 00 00 + 40ebce: 48 c1 c7 11 rol $0x11,%rdi + 40ebd2: 48 89 78 08 mov %rdi,0x8(%rax) + 40ebd6: 48 c7 00 04 00 00 00 movq $0x4,(%rax) + 40ebdd: 31 c0 xor %eax,%eax + 40ebdf: 5b pop %rbx + 40ebe0: 5d pop %rbp + 40ebe1: 41 5c pop %r12 + 40ebe3: c3 retq + 40ebe4: b8 ff ff ff ff mov $0xffffffff,%eax + 40ebe9: eb f4 jmp 40ebdf <__internal_atexit+0x3f> + 40ebeb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +000000000040ebf0 <__cxa_atexit>: + 40ebf0: 41 54 push %r12 + 40ebf2: 55 push %rbp + 40ebf3: 49 89 f4 mov %rsi,%r12 + 40ebf6: 53 push %rbx + 40ebf7: 48 89 fb mov %rdi,%rbx + 40ebfa: bf a0 a0 6c 00 mov $0x6ca0a0,%edi + 40ebff: 48 89 d5 mov %rdx,%rbp + 40ec02: e8 09 fe ff ff callq 40ea10 <__new_exitfn> + 40ec07: 48 85 c0 test %rax,%rax + 40ec0a: 74 2a je 40ec36 <__cxa_atexit+0x46> + 40ec0c: 48 89 df mov %rbx,%rdi + 40ec0f: 4c 89 60 10 mov %r12,0x10(%rax) + 40ec13: 48 89 68 18 mov %rbp,0x18(%rax) + 40ec17: 64 48 33 3c 25 30 00 xor %fs:0x30,%rdi + 40ec1e: 00 00 + 40ec20: 48 c1 c7 11 rol $0x11,%rdi + 40ec24: 48 89 78 08 mov %rdi,0x8(%rax) + 40ec28: 48 c7 00 04 00 00 00 movq $0x4,(%rax) + 40ec2f: 31 c0 xor %eax,%eax + 40ec31: 5b pop %rbx + 40ec32: 5d pop %rbp + 40ec33: 41 5c pop %r12 + 40ec35: c3 retq + 40ec36: b8 ff ff ff ff mov $0xffffffff,%eax + 40ec3b: eb f4 jmp 40ec31 <__cxa_atexit+0x41> + 40ec3d: 0f 1f 00 nopl (%rax) + +000000000040ec40 <__strtoul_internal>: + 40ec40: 48 c7 c0 b8 ff ff ff mov $0xffffffffffffffb8,%rax + 40ec47: 64 4c 8b 00 mov %fs:(%rax),%r8 + 40ec4b: e9 20 00 00 00 jmpq 40ec70 <____strtoul_l_internal> + +000000000040ec50 <__strtoul>: + 40ec50: 48 c7 c0 b8 ff ff ff mov $0xffffffffffffffb8,%rax + 40ec57: 31 c9 xor %ecx,%ecx + 40ec59: 64 4c 8b 00 mov %fs:(%rax),%r8 + 40ec5d: e9 0e 00 00 00 jmpq 40ec70 <____strtoul_l_internal> + 40ec62: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40ec69: 00 00 00 + 40ec6c: 0f 1f 40 00 nopl 0x0(%rax) + +000000000040ec70 <____strtoul_l_internal>: + 40ec70: 41 57 push %r15 + 40ec72: 41 56 push %r14 + 40ec74: 49 89 f7 mov %rsi,%r15 + 40ec77: 41 55 push %r13 + 40ec79: 41 54 push %r12 + 40ec7b: 49 89 fe mov %rdi,%r14 + 40ec7e: 55 push %rbp + 40ec7f: 53 push %rbx + 40ec80: 48 83 ec 28 sub $0x28,%rsp + 40ec84: 85 c9 test %ecx,%ecx + 40ec86: 74 16 je 40ec9e <____strtoul_l_internal+0x2e> + 40ec88: 49 8b 70 08 mov 0x8(%r8),%rsi + 40ec8c: 48 8b 4e 50 mov 0x50(%rsi),%rcx + 40ec90: 0f b6 01 movzbl (%rcx),%eax + 40ec93: 83 e8 01 sub $0x1,%eax + 40ec96: 3c 7d cmp $0x7d,%al + 40ec98: 0f 86 f2 00 00 00 jbe 40ed90 <____strtoul_l_internal+0x120> + 40ec9e: 31 c9 xor %ecx,%ecx + 40eca0: 31 ed xor %ebp,%ebp + 40eca2: 83 fa 01 cmp $0x1,%edx + 40eca5: 0f 84 c5 00 00 00 je 40ed70 <____strtoul_l_internal+0x100> + 40ecab: 83 fa 24 cmp $0x24,%edx + 40ecae: 0f 87 bc 00 00 00 ja 40ed70 <____strtoul_l_internal+0x100> + 40ecb4: 49 0f be 06 movsbq (%r14),%rax + 40ecb8: 49 8b 70 68 mov 0x68(%r8),%rsi + 40ecbc: 4d 89 f4 mov %r14,%r12 + 40ecbf: f6 44 46 01 20 testb $0x20,0x1(%rsi,%rax,2) + 40ecc4: 48 89 c3 mov %rax,%rbx + 40ecc7: 74 1a je 40ece3 <____strtoul_l_internal+0x73> + 40ecc9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40ecd0: 49 83 c4 01 add $0x1,%r12 + 40ecd4: 49 0f be 04 24 movsbq (%r12),%rax + 40ecd9: f6 44 46 01 20 testb $0x20,0x1(%rsi,%rax,2) + 40ecde: 48 89 c3 mov %rax,%rbx + 40ece1: 75 ed jne 40ecd0 <____strtoul_l_internal+0x60> + 40ece3: 84 db test %bl,%bl + 40ece5: 0f 84 bd 00 00 00 je 40eda8 <____strtoul_l_internal+0x138> + 40eceb: 80 fb 2d cmp $0x2d,%bl + 40ecee: 0f 84 10 03 00 00 je 40f004 <____strtoul_l_internal+0x394> + 40ecf4: 80 fb 2b cmp $0x2b,%bl + 40ecf7: c7 44 24 14 00 00 00 movl $0x0,0x14(%rsp) + 40ecfe: 00 + 40ecff: 0f 84 5a 03 00 00 je 40f05f <____strtoul_l_internal+0x3ef> + 40ed05: 80 fb 30 cmp $0x30,%bl + 40ed08: 0f 84 dd 00 00 00 je 40edeb <____strtoul_l_internal+0x17b> + 40ed0e: 85 d2 test %edx,%edx + 40ed10: 0f 85 e1 00 00 00 jne 40edf7 <____strtoul_l_internal+0x187> + 40ed16: 48 85 c9 test %rcx,%rcx + 40ed19: 48 89 0c 24 mov %rcx,(%rsp) + 40ed1d: 0f 84 73 03 00 00 je 40f096 <____strtoul_l_internal+0x426> + 40ed23: 48 89 ef mov %rbp,%rdi + 40ed26: e8 25 49 01 00 callq 423650 + 40ed2b: 48 85 c0 test %rax,%rax + 40ed2e: 49 89 c5 mov %rax,%r13 + 40ed31: 74 78 je 40edab <____strtoul_l_internal+0x13b> + 40ed33: 0f b6 7d 00 movzbl 0x0(%rbp),%edi + 40ed37: 48 8b 0c 24 mov (%rsp),%rcx + 40ed3b: 40 38 df cmp %bl,%dil + 40ed3e: 0f 85 0e 02 00 00 jne 40ef52 <____strtoul_l_internal+0x2e2> + 40ed44: 31 d2 xor %edx,%edx + 40ed46: eb 18 jmp 40ed60 <____strtoul_l_internal+0xf0> + 40ed48: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40ed4f: 00 + 40ed50: 41 0f b6 34 14 movzbl (%r12,%rdx,1),%esi + 40ed55: 40 38 74 15 00 cmp %sil,0x0(%rbp,%rdx,1) + 40ed5a: 0f 85 f2 01 00 00 jne 40ef52 <____strtoul_l_internal+0x2e2> + 40ed60: 48 83 c2 01 add $0x1,%rdx + 40ed64: 48 39 d0 cmp %rdx,%rax + 40ed67: 75 e7 jne 40ed50 <____strtoul_l_internal+0xe0> + 40ed69: eb 40 jmp 40edab <____strtoul_l_internal+0x13b> + 40ed6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40ed70: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 40ed77: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) + 40ed7e: 31 c0 xor %eax,%eax + 40ed80: 48 83 c4 28 add $0x28,%rsp + 40ed84: 5b pop %rbx + 40ed85: 5d pop %rbp + 40ed86: 41 5c pop %r12 + 40ed88: 41 5d pop %r13 + 40ed8a: 41 5e pop %r14 + 40ed8c: 41 5f pop %r15 + 40ed8e: c3 retq + 40ed8f: 90 nop + 40ed90: 48 8b 6e 48 mov 0x48(%rsi),%rbp + 40ed94: 80 7d 00 00 cmpb $0x0,0x0(%rbp) + 40ed98: 0f 85 04 ff ff ff jne 40eca2 <____strtoul_l_internal+0x32> + 40ed9e: e9 fb fe ff ff jmpq 40ec9e <____strtoul_l_internal+0x2e> + 40eda3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40eda8: 4d 89 f4 mov %r14,%r12 + 40edab: 4d 85 ff test %r15,%r15 + 40edae: 0f 84 ba 02 00 00 je 40f06e <____strtoul_l_internal+0x3fe> + 40edb4: 4c 89 e0 mov %r12,%rax + 40edb7: 4c 29 f0 sub %r14,%rax + 40edba: 48 83 f8 01 cmp $0x1,%rax + 40edbe: 7e 17 jle 40edd7 <____strtoul_l_internal+0x167> + 40edc0: 49 0f be 54 24 ff movsbq -0x1(%r12),%rdx + 40edc6: 48 8b 05 2b 39 0a 00 mov 0xa392b(%rip),%rax # 4b26f8 <_nl_C_locobj+0x78> + 40edcd: 83 3c 90 58 cmpl $0x58,(%rax,%rdx,4) + 40edd1: 0f 84 6e 02 00 00 je 40f045 <____strtoul_l_internal+0x3d5> + 40edd7: 4d 89 37 mov %r14,(%r15) + 40edda: 48 83 c4 28 add $0x28,%rsp + 40edde: 31 c0 xor %eax,%eax + 40ede0: 5b pop %rbx + 40ede1: 5d pop %rbp + 40ede2: 41 5c pop %r12 + 40ede4: 41 5d pop %r13 + 40ede6: 41 5e pop %r14 + 40ede8: 41 5f pop %r15 + 40edea: c3 retq + 40edeb: f7 c2 ef ff ff ff test $0xffffffef,%edx + 40edf1: 0f 84 24 02 00 00 je 40f01b <____strtoul_l_internal+0x3ab> + 40edf7: 83 fa 0a cmp $0xa,%edx + 40edfa: 0f 84 16 ff ff ff je 40ed16 <____strtoul_l_internal+0xa6> + 40ee00: 8d 4a fe lea -0x2(%rdx),%ecx + 40ee03: 45 31 ed xor %r13d,%r13d + 40ee06: 31 c0 xor %eax,%eax + 40ee08: 48 63 c9 movslq %ecx,%rcx + 40ee0b: 4c 39 e0 cmp %r12,%rax + 40ee0e: 48 8b 3c cd c0 27 4b mov 0x4b27c0(,%rcx,8),%rdi + 40ee15: 00 + 40ee16: 48 89 3c 24 mov %rdi,(%rsp) + 40ee1a: 0f b6 b9 80 27 4b 00 movzbl 0x4b2780(%rcx),%edi + 40ee21: 40 88 7c 24 13 mov %dil,0x13(%rsp) + 40ee26: 74 83 je 40edab <____strtoul_l_internal+0x13b> + 40ee28: 84 db test %bl,%bl + 40ee2a: 0f 84 7b ff ff ff je 40edab <____strtoul_l_internal+0x13b> + 40ee30: 4d 8d 45 ff lea -0x1(%r13),%r8 + 40ee34: 4c 8b 15 ad 38 0a 00 mov 0xa38ad(%rip),%r10 # 4b26e8 <_nl_C_locobj+0x68> + 40ee3b: 4c 8b 1d b6 38 0a 00 mov 0xa38b6(%rip),%r11 # 4b26f8 <_nl_C_locobj+0x78> + 40ee42: 48 63 ca movslq %edx,%rcx + 40ee45: 4c 89 e7 mov %r12,%rdi + 40ee48: 4c 89 64 24 18 mov %r12,0x18(%rsp) + 40ee4d: 4c 89 44 24 08 mov %r8,0x8(%rsp) + 40ee52: 4c 8b 04 24 mov (%rsp),%r8 + 40ee56: 45 31 c9 xor %r9d,%r9d + 40ee59: 31 f6 xor %esi,%esi + 40ee5b: 49 89 cc mov %rcx,%r12 + 40ee5e: 66 90 xchg %ax,%ax + 40ee60: 8d 4b d0 lea -0x30(%rbx),%ecx + 40ee63: 80 f9 09 cmp $0x9,%cl + 40ee66: 0f 86 aa 00 00 00 jbe 40ef16 <____strtoul_l_internal+0x2a6> + 40ee6c: 4d 85 ed test %r13,%r13 + 40ee6f: 0f 84 8f 00 00 00 je 40ef04 <____strtoul_l_internal+0x294> + 40ee75: 38 5d 00 cmp %bl,0x0(%rbp) + 40ee78: 0f 85 86 00 00 00 jne 40ef04 <____strtoul_l_internal+0x294> + 40ee7e: 31 c9 xor %ecx,%ecx + 40ee80: 88 1c 24 mov %bl,(%rsp) + 40ee83: eb 0d jmp 40ee92 <____strtoul_l_internal+0x222> + 40ee85: 0f 1f 00 nopl (%rax) + 40ee88: 0f b6 1c 0f movzbl (%rdi,%rcx,1),%ebx + 40ee8c: 38 5c 0d 00 cmp %bl,0x0(%rbp,%rcx,1) + 40ee90: 75 6e jne 40ef00 <____strtoul_l_internal+0x290> + 40ee92: 48 83 c1 01 add $0x1,%rcx + 40ee96: 49 39 cd cmp %rcx,%r13 + 40ee99: 75 ed jne 40ee88 <____strtoul_l_internal+0x218> + 40ee9b: 48 8b 5c 24 08 mov 0x8(%rsp),%rbx + 40eea0: 48 8d 0c 1f lea (%rdi,%rbx,1),%rcx + 40eea4: 0f 1f 40 00 nopl 0x0(%rax) + 40eea8: 48 8d 79 01 lea 0x1(%rcx),%rdi + 40eeac: 0f b6 59 01 movzbl 0x1(%rcx),%ebx + 40eeb0: 48 39 f8 cmp %rdi,%rax + 40eeb3: 74 04 je 40eeb9 <____strtoul_l_internal+0x249> + 40eeb5: 84 db test %bl,%bl + 40eeb7: 75 a7 jne 40ee60 <____strtoul_l_internal+0x1f0> + 40eeb9: 4c 8b 64 24 18 mov 0x18(%rsp),%r12 + 40eebe: 49 39 fc cmp %rdi,%r12 + 40eec1: 0f 84 e4 fe ff ff je 40edab <____strtoul_l_internal+0x13b> + 40eec7: 4d 85 ff test %r15,%r15 + 40eeca: 74 03 je 40eecf <____strtoul_l_internal+0x25f> + 40eecc: 49 89 3f mov %rdi,(%r15) + 40eecf: 45 85 c9 test %r9d,%r9d + 40eed2: 0f 84 17 01 00 00 je 40efef <____strtoul_l_internal+0x37f> + 40eed8: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 40eedf: 64 c7 00 22 00 00 00 movl $0x22,%fs:(%rax) + 40eee6: 48 83 c4 28 add $0x28,%rsp + 40eeea: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 40eef1: 5b pop %rbx + 40eef2: 5d pop %rbp + 40eef3: 41 5c pop %r12 + 40eef5: 41 5d pop %r13 + 40eef7: 41 5e pop %r14 + 40eef9: 41 5f pop %r15 + 40eefb: c3 retq + 40eefc: 0f 1f 40 00 nopl 0x0(%rax) + 40ef00: 0f b6 1c 24 movzbl (%rsp),%ebx + 40ef04: 0f b6 db movzbl %bl,%ebx + 40ef07: 41 f6 44 5a 01 04 testb $0x4,0x1(%r10,%rbx,2) + 40ef0d: 74 aa je 40eeb9 <____strtoul_l_internal+0x249> + 40ef0f: 41 8b 0c 9b mov (%r11,%rbx,4),%ecx + 40ef13: 83 e9 37 sub $0x37,%ecx + 40ef16: 0f b6 d9 movzbl %cl,%ebx + 40ef19: 39 d3 cmp %edx,%ebx + 40ef1b: 7d 9c jge 40eeb9 <____strtoul_l_internal+0x249> + 40ef1d: 49 39 f0 cmp %rsi,%r8 + 40ef20: 72 0e jb 40ef30 <____strtoul_l_internal+0x2c0> + 40ef22: 3a 4c 24 13 cmp 0x13(%rsp),%cl + 40ef26: 76 18 jbe 40ef40 <____strtoul_l_internal+0x2d0> + 40ef28: 49 39 f0 cmp %rsi,%r8 + 40ef2b: 75 13 jne 40ef40 <____strtoul_l_internal+0x2d0> + 40ef2d: 0f 1f 00 nopl (%rax) + 40ef30: 48 89 f9 mov %rdi,%rcx + 40ef33: 41 b9 01 00 00 00 mov $0x1,%r9d + 40ef39: e9 6a ff ff ff jmpq 40eea8 <____strtoul_l_internal+0x238> + 40ef3e: 66 90 xchg %ax,%ax + 40ef40: 49 0f af f4 imul %r12,%rsi + 40ef44: 0f b6 c9 movzbl %cl,%ecx + 40ef47: 48 01 ce add %rcx,%rsi + 40ef4a: 48 89 f9 mov %rdi,%rcx + 40ef4d: e9 56 ff ff ff jmpq 40eea8 <____strtoul_l_internal+0x238> + 40ef52: 84 db test %bl,%bl + 40ef54: 0f 84 34 01 00 00 je 40f08e <____strtoul_l_internal+0x41e> + 40ef5a: 4c 8b 05 87 37 0a 00 mov 0xa3787(%rip),%r8 # 4b26e8 <_nl_C_locobj+0x68> + 40ef61: 4c 8b 0d 90 37 0a 00 mov 0xa3790(%rip),%r9 # 4b26f8 <_nl_C_locobj+0x78> + 40ef68: 4c 89 e6 mov %r12,%rsi + 40ef6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40ef70: 8d 53 d0 lea -0x30(%rbx),%edx + 40ef73: 80 fa 09 cmp $0x9,%dl + 40ef76: 76 25 jbe 40ef9d <____strtoul_l_internal+0x32d> + 40ef78: 40 3a 3e cmp (%rsi),%dil + 40ef7b: 75 53 jne 40efd0 <____strtoul_l_internal+0x360> + 40ef7d: 31 d2 xor %edx,%edx + 40ef7f: eb 13 jmp 40ef94 <____strtoul_l_internal+0x324> + 40ef81: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40ef88: 44 0f b6 1c 16 movzbl (%rsi,%rdx,1),%r11d + 40ef8d: 44 38 5c 15 00 cmp %r11b,0x0(%rbp,%rdx,1) + 40ef92: 75 3c jne 40efd0 <____strtoul_l_internal+0x360> + 40ef94: 48 83 c2 01 add $0x1,%rdx + 40ef98: 48 39 d0 cmp %rdx,%rax + 40ef9b: 75 eb jne 40ef88 <____strtoul_l_internal+0x318> + 40ef9d: 48 83 c6 01 add $0x1,%rsi + 40efa1: 0f b6 1e movzbl (%rsi),%ebx + 40efa4: 84 db test %bl,%bl + 40efa6: 75 c8 jne 40ef70 <____strtoul_l_internal+0x300> + 40efa8: 48 89 ea mov %rbp,%rdx + 40efab: 4c 89 e7 mov %r12,%rdi + 40efae: e8 0d 01 00 00 callq 40f0c0 <__correctly_grouped_prefixmb> + 40efb3: 41 0f b6 1c 24 movzbl (%r12),%ebx + 40efb8: b9 08 00 00 00 mov $0x8,%ecx + 40efbd: ba 0a 00 00 00 mov $0xa,%edx + 40efc2: e9 41 fe ff ff jmpq 40ee08 <____strtoul_l_internal+0x198> + 40efc7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40efce: 00 00 + 40efd0: 0f b6 db movzbl %bl,%ebx + 40efd3: 41 f6 44 58 01 04 testb $0x4,0x1(%r8,%rbx,2) + 40efd9: 74 cd je 40efa8 <____strtoul_l_internal+0x338> + 40efdb: 41 83 3c 99 40 cmpl $0x40,(%r9,%rbx,4) + 40efe0: 7f c6 jg 40efa8 <____strtoul_l_internal+0x338> + 40efe2: 48 83 c6 01 add $0x1,%rsi + 40efe6: 0f b6 1e movzbl (%rsi),%ebx + 40efe9: 84 db test %bl,%bl + 40efeb: 75 83 jne 40ef70 <____strtoul_l_internal+0x300> + 40efed: eb b9 jmp 40efa8 <____strtoul_l_internal+0x338> + 40efef: 8b 54 24 14 mov 0x14(%rsp),%edx + 40eff3: 48 89 f0 mov %rsi,%rax + 40eff6: 48 f7 d8 neg %rax + 40eff9: 85 d2 test %edx,%edx + 40effb: 48 0f 44 c6 cmove %rsi,%rax + 40efff: e9 7c fd ff ff jmpq 40ed80 <____strtoul_l_internal+0x110> + 40f004: 41 0f b6 5c 24 01 movzbl 0x1(%r12),%ebx + 40f00a: c7 44 24 14 01 00 00 movl $0x1,0x14(%rsp) + 40f011: 00 + 40f012: 49 83 c4 01 add $0x1,%r12 + 40f016: e9 ea fc ff ff jmpq 40ed05 <____strtoul_l_internal+0x95> + 40f01b: 49 0f be 74 24 01 movsbq 0x1(%r12),%rsi + 40f021: 48 8b 05 d0 36 0a 00 mov 0xa36d0(%rip),%rax # 4b26f8 <_nl_C_locobj+0x78> + 40f028: 83 3c b0 58 cmpl $0x58,(%rax,%rsi,4) + 40f02c: 74 47 je 40f075 <____strtoul_l_internal+0x405> + 40f02e: 85 d2 test %edx,%edx + 40f030: 0f 85 c1 fd ff ff jne 40edf7 <____strtoul_l_internal+0x187> + 40f036: b9 06 00 00 00 mov $0x6,%ecx + 40f03b: ba 08 00 00 00 mov $0x8,%edx + 40f040: e9 be fd ff ff jmpq 40ee03 <____strtoul_l_internal+0x193> + 40f045: 41 80 7c 24 fe 30 cmpb $0x30,-0x2(%r12) + 40f04b: 0f 85 86 fd ff ff jne 40edd7 <____strtoul_l_internal+0x167> + 40f051: 49 83 ec 01 sub $0x1,%r12 + 40f055: 31 c0 xor %eax,%eax + 40f057: 4d 89 27 mov %r12,(%r15) + 40f05a: e9 21 fd ff ff jmpq 40ed80 <____strtoul_l_internal+0x110> + 40f05f: 41 0f b6 5c 24 01 movzbl 0x1(%r12),%ebx + 40f065: 49 83 c4 01 add $0x1,%r12 + 40f069: e9 97 fc ff ff jmpq 40ed05 <____strtoul_l_internal+0x95> + 40f06e: 31 c0 xor %eax,%eax + 40f070: e9 0b fd ff ff jmpq 40ed80 <____strtoul_l_internal+0x110> + 40f075: 41 0f b6 5c 24 02 movzbl 0x2(%r12),%ebx + 40f07b: b9 0e 00 00 00 mov $0xe,%ecx + 40f080: 49 83 c4 02 add $0x2,%r12 + 40f084: ba 10 00 00 00 mov $0x10,%edx + 40f089: e9 75 fd ff ff jmpq 40ee03 <____strtoul_l_internal+0x193> + 40f08e: 4c 89 e6 mov %r12,%rsi + 40f091: e9 12 ff ff ff jmpq 40efa8 <____strtoul_l_internal+0x338> + 40f096: b9 08 00 00 00 mov $0x8,%ecx + 40f09b: ba 0a 00 00 00 mov $0xa,%edx + 40f0a0: e9 5e fd ff ff jmpq 40ee03 <____strtoul_l_internal+0x193> + 40f0a5: 90 nop + 40f0a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40f0ad: 00 00 00 + +000000000040f0b0 <__strtoul_l>: + 40f0b0: 49 89 c8 mov %rcx,%r8 + 40f0b3: 31 c9 xor %ecx,%ecx + 40f0b5: e9 b6 fb ff ff jmpq 40ec70 <____strtoul_l_internal> + 40f0ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +000000000040f0c0 <__correctly_grouped_prefixmb>: + 40f0c0: 41 57 push %r15 + 40f0c2: 41 56 push %r14 + 40f0c4: 41 55 push %r13 + 40f0c6: 41 54 push %r12 + 40f0c8: 55 push %rbp + 40f0c9: 53 push %rbx + 40f0ca: 48 83 ec 18 sub $0x18,%rsp + 40f0ce: 48 85 c9 test %rcx,%rcx + 40f0d1: 48 89 4c 24 08 mov %rcx,0x8(%rsp) + 40f0d6: 0f 84 fd 00 00 00 je 40f1d9 <__correctly_grouped_prefixmb+0x119> + 40f0dc: 48 89 fd mov %rdi,%rbp + 40f0df: 48 89 d7 mov %rdx,%rdi + 40f0e2: 48 89 34 24 mov %rsi,(%rsp) + 40f0e6: 48 89 d3 mov %rdx,%rbx + 40f0e9: e8 62 45 01 00 callq 423650 + 40f0ee: 48 8b 34 24 mov (%rsp),%rsi + 40f0f2: 48 39 ee cmp %rbp,%rsi + 40f0f5: 0f 86 ad 00 00 00 jbe 40f1a8 <__correctly_grouped_prefixmb+0xe8> + 40f0fb: 4c 8d 78 ff lea -0x1(%rax),%r15 + 40f0ff: 48 8d 55 ff lea -0x1(%rbp),%rdx + 40f103: 4c 8d 4e ff lea -0x1(%rsi),%r9 + 40f107: 4c 39 cd cmp %r9,%rbp + 40f10a: 0f 87 c9 00 00 00 ja 40f1d9 <__correctly_grouped_prefixmb+0x119> + 40f110: 44 0f b6 13 movzbl (%rbx),%r10d + 40f114: 4e 8d 1c 3e lea (%rsi,%r15,1),%r11 + 40f118: eb 17 jmp 40f131 <__correctly_grouped_prefixmb+0x71> + 40f11a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 40f120: 49 83 e9 01 sub $0x1,%r9 + 40f124: 49 83 eb 01 sub $0x1,%r11 + 40f128: 49 39 d1 cmp %rdx,%r9 + 40f12b: 0f 84 a8 00 00 00 je 40f1d9 <__correctly_grouped_prefixmb+0x119> + 40f131: 45 38 53 ff cmp %r10b,-0x1(%r11) + 40f135: 75 e9 jne 40f120 <__correctly_grouped_prefixmb+0x60> + 40f137: 0f b6 43 01 movzbl 0x1(%rbx),%eax + 40f13b: 84 c0 test %al,%al + 40f13d: 74 2b je 40f16a <__correctly_grouped_prefixmb+0xaa> + 40f13f: 41 38 43 fe cmp %al,-0x2(%r11) + 40f143: 75 db jne 40f120 <__correctly_grouped_prefixmb+0x60> + 40f145: 48 8d 43 02 lea 0x2(%rbx),%rax + 40f149: 4c 89 d9 mov %r11,%rcx + 40f14c: eb 14 jmp 40f162 <__correctly_grouped_prefixmb+0xa2> + 40f14e: 66 90 xchg %ax,%ax + 40f150: 44 0f b6 41 fd movzbl -0x3(%rcx),%r8d + 40f155: 48 83 c0 01 add $0x1,%rax + 40f159: 48 83 e9 01 sub $0x1,%rcx + 40f15d: 44 38 c7 cmp %r8b,%dil + 40f160: 75 be jne 40f120 <__correctly_grouped_prefixmb+0x60> + 40f162: 0f b6 38 movzbl (%rax),%edi + 40f165: 40 84 ff test %dil,%dil + 40f168: 75 e6 jne 40f150 <__correctly_grouped_prefixmb+0x90> + 40f16a: 4c 39 cd cmp %r9,%rbp + 40f16d: 77 6a ja 40f1d9 <__correctly_grouped_prefixmb+0x119> + 40f16f: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 40f174: 48 89 f1 mov %rsi,%rcx + 40f177: 4c 29 c9 sub %r9,%rcx + 40f17a: 48 0f be 00 movsbq (%rax),%rax + 40f17e: 49 89 c5 mov %rax,%r13 + 40f181: 83 c0 01 add $0x1,%eax + 40f184: 48 98 cltq + 40f186: 48 39 c1 cmp %rax,%rcx + 40f189: 74 60 je 40f1eb <__correctly_grouped_prefixmb+0x12b> + 40f18b: 4c 89 0c 24 mov %r9,(%rsp) + 40f18f: 7e 09 jle 40f19a <__correctly_grouped_prefixmb+0xda> + 40f191: 4b 8d 44 29 01 lea 0x1(%r9,%r13,1),%rax + 40f196: 48 89 04 24 mov %rax,(%rsp) + 40f19a: 48 3b 2c 24 cmp (%rsp),%rbp + 40f19e: 48 8b 34 24 mov (%rsp),%rsi + 40f1a2: 0f 82 5b ff ff ff jb 40f103 <__correctly_grouped_prefixmb+0x43> + 40f1a8: 48 39 f5 cmp %rsi,%rbp + 40f1ab: 48 89 f0 mov %rsi,%rax + 40f1ae: 48 0f 43 c5 cmovae %rbp,%rax + 40f1b2: 48 83 c4 18 add $0x18,%rsp + 40f1b6: 5b pop %rbx + 40f1b7: 5d pop %rbp + 40f1b8: 41 5c pop %r12 + 40f1ba: 41 5d pop %r13 + 40f1bc: 41 5e pop %r14 + 40f1be: 41 5f pop %r15 + 40f1c0: c3 retq + 40f1c1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40f1c8: 49 83 e9 01 sub $0x1,%r9 + 40f1cc: 49 83 eb 01 sub $0x1,%r11 + 40f1d0: 4c 39 ca cmp %r9,%rdx + 40f1d3: 0f 85 d7 00 00 00 jne 40f2b0 <__correctly_grouped_prefixmb+0x1f0> + 40f1d9: 48 83 c4 18 add $0x18,%rsp + 40f1dd: 48 89 f0 mov %rsi,%rax + 40f1e0: 5b pop %rbx + 40f1e1: 5d pop %rbp + 40f1e2: 41 5c pop %r12 + 40f1e4: 41 5d pop %r13 + 40f1e6: 41 5e pop %r14 + 40f1e8: 41 5f pop %r15 + 40f1ea: c3 retq + 40f1eb: 4d 8d 61 ff lea -0x1(%r9),%r12 + 40f1ef: 4c 8b 74 24 08 mov 0x8(%rsp),%r14 + 40f1f4: 4c 89 24 24 mov %r12,(%rsp) + 40f1f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40f1ff: 00 + 40f200: 41 0f b6 46 01 movzbl 0x1(%r14),%eax + 40f205: 84 c0 test %al,%al + 40f207: 74 08 je 40f211 <__correctly_grouped_prefixmb+0x151> + 40f209: 49 83 c6 01 add $0x1,%r14 + 40f20d: 4c 0f be e8 movsbq %al,%r13 + 40f211: 41 80 fd 7f cmp $0x7f,%r13b + 40f215: 0f 84 85 00 00 00 je 40f2a0 <__correctly_grouped_prefixmb+0x1e0> + 40f21b: 45 84 ed test %r13b,%r13b + 40f21e: 0f 88 7c 00 00 00 js 40f2a0 <__correctly_grouped_prefixmb+0x1e0> + 40f224: 4c 39 e5 cmp %r12,%rbp + 40f227: 77 b0 ja 40f1d9 <__correctly_grouped_prefixmb+0x119> + 40f229: 4f 8d 1c 39 lea (%r9,%r15,1),%r11 + 40f22d: 4d 89 e1 mov %r12,%r9 + 40f230: 45 84 d2 test %r10b,%r10b + 40f233: 74 2c je 40f261 <__correctly_grouped_prefixmb+0x1a1> + 40f235: 45 3a 53 ff cmp -0x1(%r11),%r10b + 40f239: 48 8d 43 01 lea 0x1(%rbx),%rax + 40f23d: 4c 89 df mov %r11,%rdi + 40f240: 74 18 je 40f25a <__correctly_grouped_prefixmb+0x19a> + 40f242: eb 3c jmp 40f280 <__correctly_grouped_prefixmb+0x1c0> + 40f244: 0f 1f 40 00 nopl 0x0(%rax) + 40f248: 44 0f b6 47 fe movzbl -0x2(%rdi),%r8d + 40f24d: 48 83 c0 01 add $0x1,%rax + 40f251: 48 83 ef 01 sub $0x1,%rdi + 40f255: 44 38 c1 cmp %r8b,%cl + 40f258: 75 26 jne 40f280 <__correctly_grouped_prefixmb+0x1c0> + 40f25a: 0f b6 08 movzbl (%rax),%ecx + 40f25d: 84 c9 test %cl,%cl + 40f25f: 75 e7 jne 40f248 <__correctly_grouped_prefixmb+0x188> + 40f261: 4d 29 cc sub %r9,%r12 + 40f264: 4c 39 cd cmp %r9,%rbp + 40f267: 77 27 ja 40f290 <__correctly_grouped_prefixmb+0x1d0> + 40f269: 49 0f be c5 movsbq %r13b,%rax + 40f26d: 49 39 c4 cmp %rax,%r12 + 40f270: 0f 85 24 ff ff ff jne 40f19a <__correctly_grouped_prefixmb+0xda> + 40f276: 4d 8d 61 ff lea -0x1(%r9),%r12 + 40f27a: eb 84 jmp 40f200 <__correctly_grouped_prefixmb+0x140> + 40f27c: 0f 1f 40 00 nopl 0x0(%rax) + 40f280: 49 83 e9 01 sub $0x1,%r9 + 40f284: 49 83 eb 01 sub $0x1,%r11 + 40f288: 4c 39 ca cmp %r9,%rdx + 40f28b: 75 a3 jne 40f230 <__correctly_grouped_prefixmb+0x170> + 40f28d: 49 29 d4 sub %rdx,%r12 + 40f290: 4d 39 e5 cmp %r12,%r13 + 40f293: 0f 8c 01 ff ff ff jl 40f19a <__correctly_grouped_prefixmb+0xda> + 40f299: e9 3b ff ff ff jmpq 40f1d9 <__correctly_grouped_prefixmb+0x119> + 40f29e: 66 90 xchg %ax,%ax + 40f2a0: 4c 39 e5 cmp %r12,%rbp + 40f2a3: 0f 87 30 ff ff ff ja 40f1d9 <__correctly_grouped_prefixmb+0x119> + 40f2a9: 4f 8d 1c 39 lea (%r9,%r15,1),%r11 + 40f2ad: 4d 89 e1 mov %r12,%r9 + 40f2b0: 45 84 d2 test %r10b,%r10b + 40f2b3: 74 38 je 40f2ed <__correctly_grouped_prefixmb+0x22d> + 40f2b5: 45 38 53 ff cmp %r10b,-0x1(%r11) + 40f2b9: 48 8d 43 01 lea 0x1(%rbx),%rax + 40f2bd: 4c 89 df mov %r11,%rdi + 40f2c0: 74 24 je 40f2e6 <__correctly_grouped_prefixmb+0x226> + 40f2c2: e9 01 ff ff ff jmpq 40f1c8 <__correctly_grouped_prefixmb+0x108> + 40f2c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40f2ce: 00 00 + 40f2d0: 44 0f b6 47 fe movzbl -0x2(%rdi),%r8d + 40f2d5: 48 83 c0 01 add $0x1,%rax + 40f2d9: 48 83 ef 01 sub $0x1,%rdi + 40f2dd: 44 38 c1 cmp %r8b,%cl + 40f2e0: 0f 85 e2 fe ff ff jne 40f1c8 <__correctly_grouped_prefixmb+0x108> + 40f2e6: 0f b6 08 movzbl (%rax),%ecx + 40f2e9: 84 c9 test %cl,%cl + 40f2eb: 75 e3 jne 40f2d0 <__correctly_grouped_prefixmb+0x210> + 40f2ed: 4c 39 cd cmp %r9,%rbp + 40f2f0: 76 84 jbe 40f276 <__correctly_grouped_prefixmb+0x1b6> + 40f2f2: e9 e2 fe ff ff jmpq 40f1d9 <__correctly_grouped_prefixmb+0x119> + 40f2f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40f2fe: 00 00 + +000000000040f300 <___asprintf>: + 40f300: 48 81 ec d8 00 00 00 sub $0xd8,%rsp + 40f307: 84 c0 test %al,%al + 40f309: 48 89 54 24 30 mov %rdx,0x30(%rsp) + 40f30e: 48 89 4c 24 38 mov %rcx,0x38(%rsp) + 40f313: 4c 89 44 24 40 mov %r8,0x40(%rsp) + 40f318: 4c 89 4c 24 48 mov %r9,0x48(%rsp) + 40f31d: 74 37 je 40f356 <___asprintf+0x56> + 40f31f: 0f 29 44 24 50 movaps %xmm0,0x50(%rsp) + 40f324: 0f 29 4c 24 60 movaps %xmm1,0x60(%rsp) + 40f329: 0f 29 54 24 70 movaps %xmm2,0x70(%rsp) + 40f32e: 0f 29 9c 24 80 00 00 movaps %xmm3,0x80(%rsp) + 40f335: 00 + 40f336: 0f 29 a4 24 90 00 00 movaps %xmm4,0x90(%rsp) + 40f33d: 00 + 40f33e: 0f 29 ac 24 a0 00 00 movaps %xmm5,0xa0(%rsp) + 40f345: 00 + 40f346: 0f 29 b4 24 b0 00 00 movaps %xmm6,0xb0(%rsp) + 40f34d: 00 + 40f34e: 0f 29 bc 24 c0 00 00 movaps %xmm7,0xc0(%rsp) + 40f355: 00 + 40f356: 48 8d 84 24 e0 00 00 lea 0xe0(%rsp),%rax + 40f35d: 00 + 40f35e: 48 8d 54 24 08 lea 0x8(%rsp),%rdx + 40f363: 48 89 44 24 10 mov %rax,0x10(%rsp) + 40f368: 48 8d 44 24 20 lea 0x20(%rsp),%rax + 40f36d: c7 44 24 08 10 00 00 movl $0x10,0x8(%rsp) + 40f374: 00 + 40f375: c7 44 24 0c 30 00 00 movl $0x30,0xc(%rsp) + 40f37c: 00 + 40f37d: 48 89 44 24 18 mov %rax,0x18(%rsp) + 40f382: e8 19 1f 00 00 callq 4112a0 <_IO_vasprintf> + 40f387: 48 81 c4 d8 00 00 00 add $0xd8,%rsp + 40f38e: c3 retq + 40f38f: 90 nop + +000000000040f390 <__fxprintf>: + 40f390: 55 push %rbp + 40f391: 48 89 e5 mov %rsp,%rbp + 40f394: 41 55 push %r13 + 40f396: 41 54 push %r12 + 40f398: 53 push %rbx + 40f399: 49 89 fc mov %rdi,%r12 + 40f39c: 49 89 f5 mov %rsi,%r13 + 40f39f: 48 81 ec d8 00 00 00 sub $0xd8,%rsp + 40f3a6: 84 c0 test %al,%al + 40f3a8: 48 89 95 40 ff ff ff mov %rdx,-0xc0(%rbp) + 40f3af: 48 89 8d 48 ff ff ff mov %rcx,-0xb8(%rbp) + 40f3b6: 4c 89 85 50 ff ff ff mov %r8,-0xb0(%rbp) + 40f3bd: 4c 89 8d 58 ff ff ff mov %r9,-0xa8(%rbp) + 40f3c4: 74 26 je 40f3ec <__fxprintf+0x5c> + 40f3c6: 0f 29 85 60 ff ff ff movaps %xmm0,-0xa0(%rbp) + 40f3cd: 0f 29 8d 70 ff ff ff movaps %xmm1,-0x90(%rbp) + 40f3d4: 0f 29 55 80 movaps %xmm2,-0x80(%rbp) + 40f3d8: 0f 29 5d 90 movaps %xmm3,-0x70(%rbp) + 40f3dc: 0f 29 65 a0 movaps %xmm4,-0x60(%rbp) + 40f3e0: 0f 29 6d b0 movaps %xmm5,-0x50(%rbp) + 40f3e4: 0f 29 75 c0 movaps %xmm6,-0x40(%rbp) + 40f3e8: 0f 29 7d d0 movaps %xmm7,-0x30(%rbp) + 40f3ec: 4d 85 e4 test %r12,%r12 + 40f3ef: 48 8d 45 10 lea 0x10(%rbp),%rax + 40f3f3: 4c 0f 44 25 3d b3 2b cmove 0x2bb33d(%rip),%r12 # 6ca738 <_IO_stderr> + 40f3fa: 00 + 40f3fb: 48 89 85 20 ff ff ff mov %rax,-0xe0(%rbp) + 40f402: 48 8d 85 30 ff ff ff lea -0xd0(%rbp),%rax + 40f409: c7 85 18 ff ff ff 10 movl $0x10,-0xe8(%rbp) + 40f410: 00 00 00 + 40f413: c7 85 1c ff ff ff 30 movl $0x30,-0xe4(%rbp) + 40f41a: 00 00 00 + 40f41d: 48 89 85 28 ff ff ff mov %rax,-0xd8(%rbp) + 40f424: 41 8b 84 24 c0 00 00 mov 0xc0(%r12),%eax + 40f42b: 00 + 40f42c: 85 c0 test %eax,%eax + 40f42e: 7e 70 jle 40f4a0 <__fxprintf+0x110> + 40f430: 4c 89 ef mov %r13,%rdi + 40f433: 48 89 e3 mov %rsp,%rbx + 40f436: e8 15 42 01 00 callq 423650 + 40f43b: 48 83 c0 01 add $0x1,%rax + 40f43f: 48 8d 14 85 12 00 00 lea 0x12(,%rax,4),%rdx + 40f446: 00 + 40f447: 48 83 e2 f0 and $0xfffffffffffffff0,%rdx + 40f44b: 48 29 d4 sub %rdx,%rsp + 40f44e: 48 85 c0 test %rax,%rax + 40f451: 48 89 e6 mov %rsp,%rsi + 40f454: 74 28 je 40f47e <__fxprintf+0xee> + 40f456: 41 0f be 4d 00 movsbl 0x0(%r13),%ecx + 40f45b: 84 c9 test %cl,%cl + 40f45d: 78 5e js 40f4bd <__fxprintf+0x12d> + 40f45f: 31 d2 xor %edx,%edx + 40f461: eb 0f jmp 40f472 <__fxprintf+0xe2> + 40f463: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40f468: 41 0f be 4c 15 00 movsbl 0x0(%r13,%rdx,1),%ecx + 40f46e: 84 c9 test %cl,%cl + 40f470: 78 4b js 40f4bd <__fxprintf+0x12d> + 40f472: 89 0c 96 mov %ecx,(%rsi,%rdx,4) + 40f475: 48 83 c2 01 add $0x1,%rdx + 40f479: 48 39 d0 cmp %rdx,%rax + 40f47c: 75 ea jne 40f468 <__fxprintf+0xd8> + 40f47e: 48 8d 95 18 ff ff ff lea -0xe8(%rbp),%rdx + 40f485: 4c 89 e7 mov %r12,%rdi + 40f488: e8 03 fd 04 00 callq 45f190 <_IO_vfwprintf> + 40f48d: 48 89 dc mov %rbx,%rsp + 40f490: 48 8d 65 e8 lea -0x18(%rbp),%rsp + 40f494: 5b pop %rbx + 40f495: 41 5c pop %r12 + 40f497: 41 5d pop %r13 + 40f499: 5d pop %rbp + 40f49a: c3 retq + 40f49b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40f4a0: 48 8d 95 18 ff ff ff lea -0xe8(%rbp),%rdx + 40f4a7: 4c 89 ee mov %r13,%rsi + 40f4aa: 4c 89 e7 mov %r12,%rdi + 40f4ad: e8 1e 54 04 00 callq 4548d0 <_IO_vfprintf> + 40f4b2: 48 8d 65 e8 lea -0x18(%rbp),%rsp + 40f4b6: 5b pop %rbx + 40f4b7: 41 5c pop %r12 + 40f4b9: 41 5d pop %r13 + 40f4bb: 5d pop %rbp + 40f4bc: c3 retq + 40f4bd: b9 48 19 4a 00 mov $0x4a1948,%ecx + 40f4c2: ba 2c 00 00 00 mov $0x2c,%edx + 40f4c7: be 25 19 4a 00 mov $0x4a1925,%esi + 40f4cc: bf 30 19 4a 00 mov $0x4a1930,%edi + 40f4d1: e8 6a 22 ff ff callq 401740 <__assert_fail> + 40f4d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40f4dd: 00 00 00 + +000000000040f4e0 <_IO_new_fclose>: + 40f4e0: 41 54 push %r12 + 40f4e2: 55 push %rbp + 40f4e3: 53 push %rbx + 40f4e4: 8b 07 mov (%rdi),%eax + 40f4e6: 48 89 fb mov %rdi,%rbx + 40f4e9: f6 c4 20 test $0x20,%ah + 40f4ec: 0f 85 fe 00 00 00 jne 40f5f0 <_IO_new_fclose+0x110> + 40f4f2: 89 c2 mov %eax,%edx + 40f4f4: 81 e2 00 80 00 00 and $0x8000,%edx + 40f4fa: 0f 84 fc 00 00 00 je 40f5fc <_IO_new_fclose+0x11c> + 40f500: c1 e0 1a shl $0x1a,%eax + 40f503: c1 f8 1f sar $0x1f,%eax + 40f506: 85 d2 test %edx,%edx + 40f508: 89 c5 mov %eax,%ebp + 40f50a: 0f 84 71 01 00 00 je 40f681 <_IO_new_fclose+0x1a1> + 40f510: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 40f517: 31 f6 xor %esi,%esi + 40f519: 48 89 df mov %rbx,%rdi + 40f51c: ff 50 10 callq *0x10(%rax) + 40f51f: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax + 40f525: 85 c0 test %eax,%eax + 40f527: 0f 8e a3 01 00 00 jle 40f6d0 <_IO_new_fclose+0x1f0> + 40f52d: 4c 8b a3 98 00 00 00 mov 0x98(%rbx),%r12 + 40f534: be 01 00 00 00 mov $0x1,%esi + 40f539: 31 c0 xor %eax,%eax + 40f53b: 83 3d 7a dc 2b 00 00 cmpl $0x0,0x2bdc7a(%rip) # 6cd1bc <__libc_multiple_threads> + 40f542: 74 0c je 40f550 <_IO_new_fclose+0x70> + 40f544: f0 0f b1 35 84 dd 2b lock cmpxchg %esi,0x2bdd84(%rip) # 6cd2d0 <__gconv_lock> + 40f54b: 00 + 40f54c: 75 0b jne 40f559 <_IO_new_fclose+0x79> + 40f54e: eb 23 jmp 40f573 <_IO_new_fclose+0x93> + 40f550: 0f b1 35 79 dd 2b 00 cmpxchg %esi,0x2bdd79(%rip) # 6cd2d0 <__gconv_lock> + 40f557: 74 1a je 40f573 <_IO_new_fclose+0x93> + 40f559: 48 8d 3d 70 dd 2b 00 lea 0x2bdd70(%rip),%rdi # 6cd2d0 <__gconv_lock> + 40f560: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 40f567: e8 64 30 03 00 callq 4425d0 <__lll_lock_wait_private> + 40f56c: 48 81 c4 80 00 00 00 add $0x80,%rsp + 40f573: 49 8b 7c 24 48 mov 0x48(%r12),%rdi + 40f578: e8 43 5f 03 00 callq 4454c0 <__gconv_release_step> + 40f57d: 49 8b bc 24 88 00 00 mov 0x88(%r12),%rdi + 40f584: 00 + 40f585: e8 36 5f 03 00 callq 4454c0 <__gconv_release_step> + 40f58a: 83 3d 2b dc 2b 00 00 cmpl $0x0,0x2bdc2b(%rip) # 6cd1bc <__libc_multiple_threads> + 40f591: 74 0b je 40f59e <_IO_new_fclose+0xbe> + 40f593: f0 ff 0d 36 dd 2b 00 lock decl 0x2bdd36(%rip) # 6cd2d0 <__gconv_lock> + 40f59a: 75 0a jne 40f5a6 <_IO_new_fclose+0xc6> + 40f59c: eb 22 jmp 40f5c0 <_IO_new_fclose+0xe0> + 40f59e: ff 0d 2c dd 2b 00 decl 0x2bdd2c(%rip) # 6cd2d0 <__gconv_lock> + 40f5a4: 74 1a je 40f5c0 <_IO_new_fclose+0xe0> + 40f5a6: 48 8d 3d 23 dd 2b 00 lea 0x2bdd23(%rip),%rdi # 6cd2d0 <__gconv_lock> + 40f5ad: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 40f5b4: e8 47 30 03 00 callq 442600 <__lll_unlock_wake_private> + 40f5b9: 48 81 c4 80 00 00 00 add $0x80,%rsp + 40f5c0: 48 3b 1d 81 b1 2b 00 cmp 0x2bb181(%rip),%rbx # 6ca748 <_IO_stdin> + 40f5c7: 74 1a je 40f5e3 <_IO_new_fclose+0x103> + 40f5c9: 48 3b 1d 70 b1 2b 00 cmp 0x2bb170(%rip),%rbx # 6ca740 <_IO_stdout> + 40f5d0: 74 11 je 40f5e3 <_IO_new_fclose+0x103> + 40f5d2: 48 3b 1d 5f b1 2b 00 cmp 0x2bb15f(%rip),%rbx # 6ca738 <_IO_stderr> + 40f5d9: 74 08 je 40f5e3 <_IO_new_fclose+0x103> + 40f5db: 48 89 df mov %rbx,%rdi + 40f5de: e8 cd e7 00 00 callq 41ddb0 <__cfree> + 40f5e3: 89 e8 mov %ebp,%eax + 40f5e5: 5b pop %rbx + 40f5e6: 5d pop %rbp + 40f5e7: 41 5c pop %r12 + 40f5e9: c3 retq + 40f5ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 40f5f0: e8 5b 4e 00 00 callq 414450 <_IO_un_link> + 40f5f5: 8b 03 mov (%rbx),%eax + 40f5f7: f6 c4 80 test $0x80,%ah + 40f5fa: 75 5a jne 40f656 <_IO_new_fclose+0x176> + 40f5fc: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 40f603: 64 4c 8b 04 25 10 00 mov %fs:0x10,%r8 + 40f60a: 00 00 + 40f60c: 4c 3b 42 08 cmp 0x8(%rdx),%r8 + 40f610: 74 40 je 40f652 <_IO_new_fclose+0x172> + 40f612: be 01 00 00 00 mov $0x1,%esi + 40f617: 31 c0 xor %eax,%eax + 40f619: 83 3d 9c db 2b 00 00 cmpl $0x0,0x2bdb9c(%rip) # 6cd1bc <__libc_multiple_threads> + 40f620: 74 08 je 40f62a <_IO_new_fclose+0x14a> + 40f622: f0 0f b1 32 lock cmpxchg %esi,(%rdx) + 40f626: 75 07 jne 40f62f <_IO_new_fclose+0x14f> + 40f628: eb 1b jmp 40f645 <_IO_new_fclose+0x165> + 40f62a: 0f b1 32 cmpxchg %esi,(%rdx) + 40f62d: 74 16 je 40f645 <_IO_new_fclose+0x165> + 40f62f: 48 8d 3a lea (%rdx),%rdi + 40f632: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 40f639: e8 92 2f 03 00 callq 4425d0 <__lll_lock_wait_private> + 40f63e: 48 81 c4 80 00 00 00 add $0x80,%rsp + 40f645: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 40f64c: 8b 03 mov (%rbx),%eax + 40f64e: 4c 89 42 08 mov %r8,0x8(%rdx) + 40f652: 83 42 04 01 addl $0x1,0x4(%rdx) + 40f656: 89 c2 mov %eax,%edx + 40f658: 81 e2 00 80 00 00 and $0x8000,%edx + 40f65e: f6 c4 20 test $0x20,%ah + 40f661: 0f 84 99 fe ff ff je 40f500 <_IO_new_fclose+0x20> + 40f667: 48 89 df mov %rbx,%rdi + 40f66a: e8 71 3c 00 00 callq 4132e0 <_IO_new_file_close_it> + 40f66f: 8b 13 mov (%rbx),%edx + 40f671: 89 c5 mov %eax,%ebp + 40f673: 81 e2 00 80 00 00 and $0x8000,%edx + 40f679: 85 d2 test %edx,%edx + 40f67b: 0f 85 8f fe ff ff jne 40f510 <_IO_new_fclose+0x30> + 40f681: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 40f688: 83 6a 04 01 subl $0x1,0x4(%rdx) + 40f68c: 0f 85 7e fe ff ff jne 40f510 <_IO_new_fclose+0x30> + 40f692: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) + 40f699: 00 + 40f69a: 83 3d 1b db 2b 00 00 cmpl $0x0,0x2bdb1b(%rip) # 6cd1bc <__libc_multiple_threads> + 40f6a1: 74 07 je 40f6aa <_IO_new_fclose+0x1ca> + 40f6a3: f0 ff 0a lock decl (%rdx) + 40f6a6: 75 06 jne 40f6ae <_IO_new_fclose+0x1ce> + 40f6a8: eb 1a jmp 40f6c4 <_IO_new_fclose+0x1e4> + 40f6aa: ff 0a decl (%rdx) + 40f6ac: 74 16 je 40f6c4 <_IO_new_fclose+0x1e4> + 40f6ae: 48 8d 3a lea (%rdx),%rdi + 40f6b1: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 40f6b8: e8 43 2f 03 00 callq 442600 <__lll_unlock_wake_private> + 40f6bd: 48 81 c4 80 00 00 00 add $0x80,%rsp + 40f6c4: e9 47 fe ff ff jmpq 40f510 <_IO_new_fclose+0x30> + 40f6c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40f6d0: 48 83 7b 48 00 cmpq $0x0,0x48(%rbx) + 40f6d5: 0f 84 e5 fe ff ff je 40f5c0 <_IO_new_fclose+0xe0> + 40f6db: 48 89 df mov %rbx,%rdi + 40f6de: e8 4d 53 00 00 callq 414a30 <_IO_free_backup_area> + 40f6e3: e9 d8 fe ff ff jmpq 40f5c0 <_IO_new_fclose+0xe0> + 40f6e8: 48 89 c6 mov %rax,%rsi + 40f6eb: f7 03 00 80 00 00 testl $0x8000,(%rbx) + 40f6f1: 75 3f jne 40f732 <_IO_new_fclose+0x252> + 40f6f3: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 40f6fa: 83 6a 04 01 subl $0x1,0x4(%rdx) + 40f6fe: 75 32 jne 40f732 <_IO_new_fclose+0x252> + 40f700: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) + 40f707: 00 + 40f708: 83 3d ad da 2b 00 00 cmpl $0x0,0x2bdaad(%rip) # 6cd1bc <__libc_multiple_threads> + 40f70f: 74 07 je 40f718 <_IO_new_fclose+0x238> + 40f711: f0 ff 0a lock decl (%rdx) + 40f714: 75 06 jne 40f71c <_IO_new_fclose+0x23c> + 40f716: eb 1a jmp 40f732 <_IO_new_fclose+0x252> + 40f718: ff 0a decl (%rdx) + 40f71a: 74 16 je 40f732 <_IO_new_fclose+0x252> + 40f71c: 48 8d 3a lea (%rdx),%rdi + 40f71f: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 40f726: e8 d5 2e 03 00 callq 442600 <__lll_unlock_wake_private> + 40f72b: 48 81 c4 80 00 00 00 add $0x80,%rsp + 40f732: 48 89 f7 mov %rsi,%rdi + 40f735: e8 36 ce 08 00 callq 49c570 <_Unwind_Resume> + 40f73a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +000000000040f740 <_IO_fflush>: + 40f740: 48 85 ff test %rdi,%rdi + 40f743: 0f 84 d7 00 00 00 je 40f820 <_IO_fflush+0xe0> + 40f749: 53 push %rbx + 40f74a: 8b 07 mov (%rdi),%eax + 40f74c: 48 89 fa mov %rdi,%rdx + 40f74f: 25 00 80 00 00 and $0x8000,%eax + 40f754: 75 59 jne 40f7af <_IO_fflush+0x6f> + 40f756: 4c 8b 87 88 00 00 00 mov 0x88(%rdi),%r8 + 40f75d: 64 4c 8b 0c 25 10 00 mov %fs:0x10,%r9 + 40f764: 00 00 + 40f766: 4d 3b 48 08 cmp 0x8(%r8),%r9 + 40f76a: 74 3e je 40f7aa <_IO_fflush+0x6a> + 40f76c: be 01 00 00 00 mov $0x1,%esi + 40f771: 83 3d 44 da 2b 00 00 cmpl $0x0,0x2bda44(%rip) # 6cd1bc <__libc_multiple_threads> + 40f778: 74 09 je 40f783 <_IO_fflush+0x43> + 40f77a: f0 41 0f b1 30 lock cmpxchg %esi,(%r8) + 40f77f: 75 08 jne 40f789 <_IO_fflush+0x49> + 40f781: eb 1c jmp 40f79f <_IO_fflush+0x5f> + 40f783: 41 0f b1 30 cmpxchg %esi,(%r8) + 40f787: 74 16 je 40f79f <_IO_fflush+0x5f> + 40f789: 49 8d 38 lea (%r8),%rdi + 40f78c: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 40f793: e8 38 2e 03 00 callq 4425d0 <__lll_lock_wait_private> + 40f798: 48 81 c4 80 00 00 00 add $0x80,%rsp + 40f79f: 4c 8b 82 88 00 00 00 mov 0x88(%rdx),%r8 + 40f7a6: 4d 89 48 08 mov %r9,0x8(%r8) + 40f7aa: 41 83 40 04 01 addl $0x1,0x4(%r8) + 40f7af: 48 8b 82 d8 00 00 00 mov 0xd8(%rdx),%rax + 40f7b6: 48 89 d3 mov %rdx,%rbx + 40f7b9: 48 89 d7 mov %rdx,%rdi + 40f7bc: ff 50 60 callq *0x60(%rax) + 40f7bf: 31 d2 xor %edx,%edx + 40f7c1: 85 c0 test %eax,%eax + 40f7c3: 0f 95 c2 setne %dl + 40f7c6: f7 da neg %edx + 40f7c8: f7 03 00 80 00 00 testl $0x8000,(%rbx) + 40f7ce: 74 08 je 40f7d8 <_IO_fflush+0x98> + 40f7d0: 89 d0 mov %edx,%eax + 40f7d2: 5b pop %rbx + 40f7d3: c3 retq + 40f7d4: 0f 1f 40 00 nopl 0x0(%rax) + 40f7d8: 48 8b b3 88 00 00 00 mov 0x88(%rbx),%rsi + 40f7df: 83 6e 04 01 subl $0x1,0x4(%rsi) + 40f7e3: 75 eb jne 40f7d0 <_IO_fflush+0x90> + 40f7e5: 48 c7 46 08 00 00 00 movq $0x0,0x8(%rsi) + 40f7ec: 00 + 40f7ed: 83 3d c8 d9 2b 00 00 cmpl $0x0,0x2bd9c8(%rip) # 6cd1bc <__libc_multiple_threads> + 40f7f4: 74 07 je 40f7fd <_IO_fflush+0xbd> + 40f7f6: f0 ff 0e lock decl (%rsi) + 40f7f9: 75 06 jne 40f801 <_IO_fflush+0xc1> + 40f7fb: eb 1a jmp 40f817 <_IO_fflush+0xd7> + 40f7fd: ff 0e decl (%rsi) + 40f7ff: 74 16 je 40f817 <_IO_fflush+0xd7> + 40f801: 48 8d 3e lea (%rsi),%rdi + 40f804: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 40f80b: e8 f0 2d 03 00 callq 442600 <__lll_unlock_wake_private> + 40f810: 48 81 c4 80 00 00 00 add $0x80,%rsp + 40f817: 89 d0 mov %edx,%eax + 40f819: 5b pop %rbx + 40f81a: c3 retq + 40f81b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40f820: e9 ab 64 00 00 jmpq 415cd0 <_IO_flush_all> + 40f825: 48 89 c6 mov %rax,%rsi + 40f828: f7 03 00 80 00 00 testl $0x8000,(%rbx) + 40f82e: 75 3f jne 40f86f <_IO_fflush+0x12f> + 40f830: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 40f837: 83 6a 04 01 subl $0x1,0x4(%rdx) + 40f83b: 75 32 jne 40f86f <_IO_fflush+0x12f> + 40f83d: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) + 40f844: 00 + 40f845: 83 3d 70 d9 2b 00 00 cmpl $0x0,0x2bd970(%rip) # 6cd1bc <__libc_multiple_threads> + 40f84c: 74 07 je 40f855 <_IO_fflush+0x115> + 40f84e: f0 ff 0a lock decl (%rdx) + 40f851: 75 06 jne 40f859 <_IO_fflush+0x119> + 40f853: eb 1a jmp 40f86f <_IO_fflush+0x12f> + 40f855: ff 0a decl (%rdx) + 40f857: 74 16 je 40f86f <_IO_fflush+0x12f> + 40f859: 48 8d 3a lea (%rdx),%rdi + 40f85c: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 40f863: e8 98 2d 03 00 callq 442600 <__lll_unlock_wake_private> + 40f868: 48 81 c4 80 00 00 00 add $0x80,%rsp + 40f86f: 48 89 f7 mov %rsi,%rdi + 40f872: e8 f9 cc 08 00 callq 49c570 <_Unwind_Resume> + 40f877: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40f87e: 00 00 + +000000000040f880 <__fopen_maybe_mmap>: + 40f880: f6 47 74 01 testb $0x1,0x74(%rdi) + 40f884: 48 89 f8 mov %rdi,%rax + 40f887: 74 30 je 40f8b9 <__fopen_maybe_mmap+0x39> + 40f889: f6 07 08 testb $0x8,(%rdi) + 40f88c: 74 2b je 40f8b9 <__fopen_maybe_mmap+0x39> + 40f88e: 8b 97 c0 00 00 00 mov 0xc0(%rdi),%edx + 40f894: b9 a0 19 4a 00 mov $0x4a19a0,%ecx + 40f899: 85 d2 test %edx,%edx + 40f89b: ba a0 1c 4a 00 mov $0x4a1ca0,%edx + 40f8a0: 48 0f 4f d1 cmovg %rcx,%rdx + 40f8a4: 48 89 97 d8 00 00 00 mov %rdx,0xd8(%rdi) + 40f8ab: 48 8b 97 a0 00 00 00 mov 0xa0(%rdi),%rdx + 40f8b2: 48 89 8a 30 01 00 00 mov %rcx,0x130(%rdx) + 40f8b9: f3 c3 repz retq + 40f8bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +000000000040f8c0 <__fopen_internal>: + 40f8c0: 41 55 push %r13 + 40f8c2: 41 54 push %r12 + 40f8c4: 41 89 d5 mov %edx,%r13d + 40f8c7: 55 push %rbp + 40f8c8: 53 push %rbx + 40f8c9: 48 89 fd mov %rdi,%rbp + 40f8cc: bf 28 02 00 00 mov $0x228,%edi + 40f8d1: 49 89 f4 mov %rsi,%r12 + 40f8d4: 48 83 ec 08 sub $0x8,%rsp + 40f8d8: e8 33 e1 00 00 callq 41da10 <__libc_malloc> + 40f8dd: 48 85 c0 test %rax,%rax + 40f8e0: 0f 84 b2 00 00 00 je 40f998 <__fopen_internal+0xd8> + 40f8e6: 48 8d 90 e0 00 00 00 lea 0xe0(%rax),%rdx + 40f8ed: 48 8d 88 f0 00 00 00 lea 0xf0(%rax),%rcx + 40f8f4: 48 89 c3 mov %rax,%rbx + 40f8f7: 31 f6 xor %esi,%esi + 40f8f9: 48 89 c7 mov %rax,%rdi + 40f8fc: 41 b8 20 1b 4a 00 mov $0x4a1b20,%r8d + 40f902: 48 89 90 88 00 00 00 mov %rdx,0x88(%rax) + 40f909: 31 d2 xor %edx,%edx + 40f90b: e8 b0 5b 00 00 callq 4154c0 <_IO_no_init> + 40f910: 48 89 df mov %rbx,%rdi + 40f913: 48 c7 83 d8 00 00 00 movq $0x4a1e20,0xd8(%rbx) + 40f91a: 20 1e 4a 00 + 40f91e: e8 0d 37 00 00 callq 413030 <_IO_new_file_init> + 40f923: 44 89 e9 mov %r13d,%ecx + 40f926: 4c 89 e2 mov %r12,%rdx + 40f929: 48 89 ee mov %rbp,%rsi + 40f92c: 48 89 df mov %rbx,%rdi + 40f92f: e8 2c 3b 00 00 callq 413460 <_IO_new_file_fopen> + 40f934: 48 85 c0 test %rax,%rax + 40f937: 74 63 je 40f99c <__fopen_internal+0xdc> + 40f939: f6 43 74 01 testb $0x1,0x74(%rbx) + 40f93d: 74 05 je 40f944 <__fopen_internal+0x84> + 40f93f: f6 03 08 testb $0x8,(%rbx) + 40f942: 75 14 jne 40f958 <__fopen_internal+0x98> + 40f944: 48 83 c4 08 add $0x8,%rsp + 40f948: 48 89 d8 mov %rbx,%rax + 40f94b: 5b pop %rbx + 40f94c: 5d pop %rbp + 40f94d: 41 5c pop %r12 + 40f94f: 41 5d pop %r13 + 40f951: c3 retq + 40f952: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 40f958: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax + 40f95e: ba a0 19 4a 00 mov $0x4a19a0,%edx + 40f963: 85 c0 test %eax,%eax + 40f965: b8 a0 1c 4a 00 mov $0x4a1ca0,%eax + 40f96a: 48 0f 4f c2 cmovg %rdx,%rax + 40f96e: 48 89 83 d8 00 00 00 mov %rax,0xd8(%rbx) + 40f975: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 40f97c: 48 89 90 30 01 00 00 mov %rdx,0x130(%rax) + 40f983: 48 83 c4 08 add $0x8,%rsp + 40f987: 48 89 d8 mov %rbx,%rax + 40f98a: 5b pop %rbx + 40f98b: 5d pop %rbp + 40f98c: 41 5c pop %r12 + 40f98e: 41 5d pop %r13 + 40f990: c3 retq + 40f991: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40f998: 31 db xor %ebx,%ebx + 40f99a: eb a8 jmp 40f944 <__fopen_internal+0x84> + 40f99c: 48 89 df mov %rbx,%rdi + 40f99f: e8 ac 4a 00 00 callq 414450 <_IO_un_link> + 40f9a4: 48 89 df mov %rbx,%rdi + 40f9a7: 31 db xor %ebx,%ebx + 40f9a9: e8 02 e4 00 00 callq 41ddb0 <__cfree> + 40f9ae: eb 94 jmp 40f944 <__fopen_internal+0x84> + +000000000040f9b0 <_IO_new_fopen>: + 40f9b0: 41 54 push %r12 + 40f9b2: 55 push %rbp + 40f9b3: 48 89 fd mov %rdi,%rbp + 40f9b6: 53 push %rbx + 40f9b7: bf 28 02 00 00 mov $0x228,%edi + 40f9bc: 49 89 f4 mov %rsi,%r12 + 40f9bf: e8 4c e0 00 00 callq 41da10 <__libc_malloc> + 40f9c4: 48 85 c0 test %rax,%rax + 40f9c7: 0f 84 a3 00 00 00 je 40fa70 <_IO_new_fopen+0xc0> + 40f9cd: 48 8d 90 e0 00 00 00 lea 0xe0(%rax),%rdx + 40f9d4: 48 8d 88 f0 00 00 00 lea 0xf0(%rax),%rcx + 40f9db: 48 89 c3 mov %rax,%rbx + 40f9de: 31 f6 xor %esi,%esi + 40f9e0: 48 89 c7 mov %rax,%rdi + 40f9e3: 41 b8 20 1b 4a 00 mov $0x4a1b20,%r8d + 40f9e9: 48 89 90 88 00 00 00 mov %rdx,0x88(%rax) + 40f9f0: 31 d2 xor %edx,%edx + 40f9f2: e8 c9 5a 00 00 callq 4154c0 <_IO_no_init> + 40f9f7: 48 89 df mov %rbx,%rdi + 40f9fa: 48 c7 83 d8 00 00 00 movq $0x4a1e20,0xd8(%rbx) + 40fa01: 20 1e 4a 00 + 40fa05: e8 26 36 00 00 callq 413030 <_IO_new_file_init> + 40fa0a: b9 01 00 00 00 mov $0x1,%ecx + 40fa0f: 4c 89 e2 mov %r12,%rdx + 40fa12: 48 89 ee mov %rbp,%rsi + 40fa15: 48 89 df mov %rbx,%rdi + 40fa18: e8 43 3a 00 00 callq 413460 <_IO_new_file_fopen> + 40fa1d: 48 85 c0 test %rax,%rax + 40fa20: 74 52 je 40fa74 <_IO_new_fopen+0xc4> + 40fa22: f6 43 74 01 testb $0x1,0x74(%rbx) + 40fa26: 74 05 je 40fa2d <_IO_new_fopen+0x7d> + 40fa28: f6 03 08 testb $0x8,(%rbx) + 40fa2b: 75 0b jne 40fa38 <_IO_new_fopen+0x88> + 40fa2d: 48 89 d8 mov %rbx,%rax + 40fa30: 5b pop %rbx + 40fa31: 5d pop %rbp + 40fa32: 41 5c pop %r12 + 40fa34: c3 retq + 40fa35: 0f 1f 00 nopl (%rax) + 40fa38: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax + 40fa3e: ba a0 19 4a 00 mov $0x4a19a0,%edx + 40fa43: 85 c0 test %eax,%eax + 40fa45: b8 a0 1c 4a 00 mov $0x4a1ca0,%eax + 40fa4a: 48 0f 4f c2 cmovg %rdx,%rax + 40fa4e: 48 89 83 d8 00 00 00 mov %rax,0xd8(%rbx) + 40fa55: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 40fa5c: 48 89 90 30 01 00 00 mov %rdx,0x130(%rax) + 40fa63: 48 89 d8 mov %rbx,%rax + 40fa66: 5b pop %rbx + 40fa67: 5d pop %rbp + 40fa68: 41 5c pop %r12 + 40fa6a: c3 retq + 40fa6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40fa70: 31 db xor %ebx,%ebx + 40fa72: eb b9 jmp 40fa2d <_IO_new_fopen+0x7d> + 40fa74: 48 89 df mov %rbx,%rdi + 40fa77: e8 d4 49 00 00 callq 414450 <_IO_un_link> + 40fa7c: 48 89 df mov %rbx,%rdi + 40fa7f: 31 db xor %ebx,%ebx + 40fa81: e8 2a e3 00 00 callq 41ddb0 <__cfree> + 40fa86: eb a5 jmp 40fa2d <_IO_new_fopen+0x7d> + 40fa88: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 40fa8f: 00 + +000000000040fa90 : + 40fa90: 41 54 push %r12 + 40fa92: 55 push %rbp + 40fa93: 41 89 f4 mov %esi,%r12d + 40fa96: 53 push %rbx + 40fa97: 48 89 fb mov %rdi,%rbx + 40fa9a: 48 83 ec 10 sub $0x10,%rsp + 40fa9e: 48 8b af 98 00 00 00 mov 0x98(%rdi),%rbp + 40faa5: 48 89 ef mov %rbp,%rdi + 40faa8: ff 55 20 callq *0x20(%rbp) + 40faab: 85 c0 test %eax,%eax + 40faad: 0f 9f c2 setg %dl + 40fab0: 41 38 d4 cmp %dl,%r12b + 40fab3: 73 3b jae 40faf0 + 40fab5: 48 8b 53 08 mov 0x8(%rbx),%rdx + 40fab9: 48 2b 53 18 sub 0x18(%rbx),%rdx + 40fabd: 48 63 c8 movslq %eax,%rcx + 40fac0: 48 8b b3 a0 00 00 00 mov 0xa0(%rbx),%rsi + 40fac7: 48 89 d0 mov %rdx,%rax + 40faca: 48 99 cqto + 40facc: 48 f7 f9 idiv %rcx + 40facf: 48 c1 e0 02 shl $0x2,%rax + 40fad3: 48 01 46 08 add %rax,0x8(%rsi) + 40fad7: 48 8b 46 08 mov 0x8(%rsi),%rax + 40fadb: 48 89 06 mov %rax,(%rsi) + 40fade: 31 c0 xor %eax,%eax + 40fae0: 48 83 c4 10 add $0x10,%rsp + 40fae4: 5b pop %rbx + 40fae5: 5d pop %rbp + 40fae6: 41 5c pop %r12 + 40fae8: c3 retq + 40fae9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40faf0: 48 8b 43 18 mov 0x18(%rbx),%rax + 40faf4: 48 89 44 24 08 mov %rax,0x8(%rsp) + 40faf9: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 40fb00: 48 8b 50 58 mov 0x58(%rax),%rdx + 40fb04: 48 89 50 60 mov %rdx,0x60(%rax) + 40fb08: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 40fb0f: 48 8b 4b 08 mov 0x8(%rbx),%rcx + 40fb13: 48 8b 53 18 mov 0x18(%rbx),%rdx + 40fb17: 48 8d 78 08 lea 0x8(%rax),%rdi + 40fb1b: 48 8d 70 58 lea 0x58(%rax),%rsi + 40fb1f: 57 push %rdi + 40fb20: ff 70 38 pushq 0x38(%rax) + 40fb23: 48 89 ef mov %rbp,%rdi + 40fb26: 4c 8b 48 10 mov 0x10(%rax),%r9 + 40fb2a: 4c 8d 44 24 18 lea 0x18(%rsp),%r8 + 40fb2f: ff 55 18 callq *0x18(%rbp) + 40fb32: 83 f8 02 cmp $0x2,%eax + 40fb35: 5a pop %rdx + 40fb36: 59 pop %rcx + 40fb37: 74 17 je 40fb50 + 40fb39: 83 f8 01 cmp $0x1,%eax + 40fb3c: 74 bb je 40faf9 + 40fb3e: 48 8b b3 a0 00 00 00 mov 0xa0(%rbx),%rsi + 40fb45: eb 90 jmp 40fad7 + 40fb47: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 40fb4e: 00 00 + 40fb50: 83 0b 20 orl $0x20,(%rbx) + 40fb53: b8 ff ff ff ff mov $0xffffffff,%eax + 40fb58: eb 86 jmp 40fae0 + 40fb5a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +000000000040fb60 <_IO_wfile_underflow>: + 40fb60: 8b 07 mov (%rdi),%eax + 40fb62: a8 04 test $0x4,%al + 40fb64: 0f 85 96 04 00 00 jne 410000 <_IO_wfile_underflow+0x4a0> + 40fb6a: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax + 40fb71: 48 8b 10 mov (%rax),%rdx + 40fb74: 48 3b 50 08 cmp 0x8(%rax),%rdx + 40fb78: 0f 82 62 03 00 00 jb 40fee0 <_IO_wfile_underflow+0x380> + 40fb7e: 41 57 push %r15 + 40fb80: 41 56 push %r14 + 40fb82: 41 55 push %r13 + 40fb84: 41 54 push %r12 + 40fb86: 55 push %rbp + 40fb87: 53 push %rbx + 40fb88: 48 89 fb mov %rdi,%rbx + 40fb8b: 48 83 ec 28 sub $0x28,%rsp + 40fb8f: 48 8b 57 08 mov 0x8(%rdi),%rdx + 40fb93: 48 3b 57 10 cmp 0x10(%rdi),%rdx + 40fb97: 4c 8b a7 98 00 00 00 mov 0x98(%rdi),%r12 + 40fb9e: 0f 82 7c 03 00 00 jb 40ff20 <_IO_wfile_underflow+0x3c0> + 40fba4: 48 8b 47 38 mov 0x38(%rdi),%rax + 40fba8: 48 89 47 10 mov %rax,0x10(%rdi) + 40fbac: 48 89 47 08 mov %rax,0x8(%rdi) + 40fbb0: 48 89 47 18 mov %rax,0x18(%rdi) + 40fbb4: 48 85 c0 test %rax,%rax + 40fbb7: 0f 84 8b 04 00 00 je 410048 <_IO_wfile_underflow+0x4e8> + 40fbbd: 48 89 43 30 mov %rax,0x30(%rbx) + 40fbc1: 48 89 43 28 mov %rax,0x28(%rbx) + 40fbc5: 48 89 43 20 mov %rax,0x20(%rbx) + 40fbc9: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 40fbd0: 48 83 78 30 00 cmpq $0x0,0x30(%rax) + 40fbd5: 0f 84 45 04 00 00 je 410020 <_IO_wfile_underflow+0x4c0> + 40fbdb: f7 03 02 02 00 00 testl $0x202,(%rbx) + 40fbe1: 0f 84 a9 00 00 00 je 40fc90 <_IO_wfile_underflow+0x130> + 40fbe7: 48 8b 2d 52 ab 2b 00 mov 0x2bab52(%rip),%rbp # 6ca740 <_IO_stdout> + 40fbee: 8b 55 00 mov 0x0(%rbp),%edx + 40fbf1: 89 d0 mov %edx,%eax + 40fbf3: 25 00 80 00 00 and $0x8000,%eax + 40fbf8: 0f 85 92 03 00 00 jne 40ff90 <_IO_wfile_underflow+0x430> + 40fbfe: 4c 8b 85 88 00 00 00 mov 0x88(%rbp),%r8 + 40fc05: 64 4c 8b 0c 25 10 00 mov %fs:0x10,%r9 + 40fc0c: 00 00 + 40fc0e: 4d 3b 48 08 cmp 0x8(%r8),%r9 + 40fc12: 0f 84 c4 04 00 00 je 4100dc <_IO_wfile_underflow+0x57c> + 40fc18: be 01 00 00 00 mov $0x1,%esi + 40fc1d: 83 3d 98 d5 2b 00 00 cmpl $0x0,0x2bd598(%rip) # 6cd1bc <__libc_multiple_threads> + 40fc24: 74 09 je 40fc2f <_IO_wfile_underflow+0xcf> + 40fc26: f0 41 0f b1 30 lock cmpxchg %esi,(%r8) + 40fc2b: 75 08 jne 40fc35 <_IO_wfile_underflow+0xd5> + 40fc2d: eb 1c jmp 40fc4b <_IO_wfile_underflow+0xeb> + 40fc2f: 41 0f b1 30 cmpxchg %esi,(%r8) + 40fc33: 74 16 je 40fc4b <_IO_wfile_underflow+0xeb> + 40fc35: 49 8d 38 lea (%r8),%rdi + 40fc38: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 40fc3f: e8 8c 29 03 00 callq 4425d0 <__lll_lock_wait_private> + 40fc44: 48 81 c4 80 00 00 00 add $0x80,%rsp + 40fc4b: 48 8b 3d ee aa 2b 00 mov 0x2baaee(%rip),%rdi # 6ca740 <_IO_stdout> + 40fc52: 4c 8b 85 88 00 00 00 mov 0x88(%rbp),%r8 + 40fc59: 8b 17 mov (%rdi),%edx + 40fc5b: 4d 89 48 08 mov %r9,0x8(%r8) + 40fc5f: 81 e2 88 02 00 00 and $0x288,%edx + 40fc65: 41 83 40 04 01 addl $0x1,0x4(%r8) + 40fc6a: 81 fa 80 02 00 00 cmp $0x280,%edx + 40fc70: 0f 84 2f 03 00 00 je 40ffa5 <_IO_wfile_underflow+0x445> + 40fc76: f7 45 00 00 80 00 00 testl $0x8000,0x0(%rbp) + 40fc7d: 75 11 jne 40fc90 <_IO_wfile_underflow+0x130> + 40fc7f: 48 8b 95 88 00 00 00 mov 0x88(%rbp),%rdx + 40fc86: 83 6a 04 01 subl $0x1,0x4(%rdx) + 40fc8a: 0f 84 15 04 00 00 je 4100a5 <_IO_wfile_underflow+0x545> + 40fc90: 48 89 df mov %rbx,%rdi + 40fc93: 4c 8d 6c 24 10 lea 0x10(%rsp),%r13 + 40fc98: 31 ed xor %ebp,%ebp + 40fc9a: e8 21 4d 00 00 callq 4149c0 <_IO_switch_to_get_mode> + 40fc9f: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 40fca6: 4c 8b 73 10 mov 0x10(%rbx),%r14 + 40fcaa: 48 8b 50 30 mov 0x30(%rax),%rdx + 40fcae: 48 89 10 mov %rdx,(%rax) + 40fcb1: 48 89 50 10 mov %rdx,0x10(%rax) + 40fcb5: 48 89 50 08 mov %rdx,0x8(%rax) + 40fcb9: 48 89 50 28 mov %rdx,0x28(%rax) + 40fcbd: 48 89 50 20 mov %rdx,0x20(%rax) + 40fcc1: 48 89 50 18 mov %rdx,0x18(%rax) + 40fcc5: 0f 1f 00 nopl (%rax) + 40fcc8: 48 8b 53 40 mov 0x40(%rbx),%rdx + 40fccc: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 40fcd3: 4c 89 f6 mov %r14,%rsi + 40fcd6: 48 89 df mov %rbx,%rdi + 40fcd9: 4c 29 f2 sub %r14,%rdx + 40fcdc: ff 50 70 callq *0x70(%rax) + 40fcdf: 48 83 f8 00 cmp $0x0,%rax + 40fce3: 0f 8e f7 00 00 00 jle 40fde0 <_IO_wfile_underflow+0x280> + 40fce9: 48 8b 8b 90 00 00 00 mov 0x90(%rbx),%rcx + 40fcf0: 48 01 43 10 add %rax,0x10(%rbx) + 40fcf4: 48 83 f9 ff cmp $0xffffffffffffffff,%rcx + 40fcf8: 74 0a je 40fd04 <_IO_wfile_underflow+0x1a4> + 40fcfa: 48 01 c1 add %rax,%rcx + 40fcfd: 48 89 8b 90 00 00 00 mov %rcx,0x90(%rbx) + 40fd04: 48 8b 93 a0 00 00 00 mov 0xa0(%rbx),%rdx + 40fd0b: 48 85 ed test %rbp,%rbp + 40fd0e: 48 8b 4a 58 mov 0x58(%rdx),%rcx + 40fd12: 48 89 4a 60 mov %rcx,0x60(%rdx) + 40fd16: 48 8b 7b 08 mov 0x8(%rbx),%rdi + 40fd1a: 48 8b 4b 10 mov 0x10(%rbx),%rcx + 40fd1e: 48 89 7b 18 mov %rdi,0x18(%rbx) + 40fd22: 0f 85 38 01 00 00 jne 40fe60 <_IO_wfile_underflow+0x300> + 40fd28: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 40fd2f: 48 8d 50 08 lea 0x8(%rax),%rdx + 40fd33: 48 8d 70 58 lea 0x58(%rax),%rsi + 40fd37: 52 push %rdx + 40fd38: ff 70 38 pushq 0x38(%rax) + 40fd3b: 48 89 fa mov %rdi,%rdx + 40fd3e: 4c 8b 48 08 mov 0x8(%rax),%r9 + 40fd42: 4c 89 e7 mov %r12,%rdi + 40fd45: 4c 8d 44 24 18 lea 0x18(%rsp),%r8 + 40fd4a: 41 ff 54 24 18 callq *0x18(%r12) + 40fd4f: 5a pop %rdx + 40fd50: 59 pop %rcx + 40fd51: 48 8b 4c 24 08 mov 0x8(%rsp),%rcx + 40fd56: 31 ed xor %ebp,%ebp + 40fd58: 48 89 ce mov %rcx,%rsi + 40fd5b: 48 8b 93 a0 00 00 00 mov 0xa0(%rbx),%rdx + 40fd62: 48 89 73 08 mov %rsi,0x8(%rbx) + 40fd66: 48 8b 7a 30 mov 0x30(%rdx),%rdi + 40fd6a: 48 39 7a 08 cmp %rdi,0x8(%rdx) + 40fd6e: 0f 85 74 02 00 00 jne 40ffe8 <_IO_wfile_underflow+0x488> + 40fd74: 83 f8 02 cmp $0x2,%eax + 40fd77: 0f 84 74 01 00 00 je 40fef1 <_IO_wfile_underflow+0x391> + 40fd7d: 83 f8 01 cmp $0x1,%eax + 40fd80: 0f 85 5e 03 00 00 jne 4100e4 <_IO_wfile_underflow+0x584> + 40fd86: 48 85 ed test %rbp,%rbp + 40fd89: 75 3d jne 40fdc8 <_IO_wfile_underflow+0x268> + 40fd8b: 4c 8b 73 18 mov 0x18(%rbx),%r14 + 40fd8f: 4c 39 f6 cmp %r14,%rsi + 40fd92: 0f 87 80 00 00 00 ja 40fe18 <_IO_wfile_underflow+0x2b8> + 40fd98: 48 8b 6b 10 mov 0x10(%rbx),%rbp + 40fd9c: 48 29 f5 sub %rsi,%rbp + 40fd9f: 48 83 fd 0f cmp $0xf,%rbp + 40fda3: 0f 87 48 01 00 00 ja 40fef1 <_IO_wfile_underflow+0x391> + 40fda9: 48 89 ea mov %rbp,%rdx + 40fdac: 4c 89 ef mov %r13,%rdi + 40fdaf: e8 6c c2 01 00 callq 42c020 + 40fdb4: 4c 89 73 10 mov %r14,0x10(%rbx) + 40fdb8: 4c 89 73 08 mov %r14,0x8(%rbx) + 40fdbc: e9 07 ff ff ff jmpq 40fcc8 <_IO_wfile_underflow+0x168> + 40fdc1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40fdc8: 48 89 c8 mov %rcx,%rax + 40fdcb: 4c 29 e8 sub %r13,%rax + 40fdce: 75 78 jne 40fe48 <_IO_wfile_underflow+0x2e8> + 40fdd0: 48 83 fd 10 cmp $0x10,%rbp + 40fdd4: 0f 84 17 01 00 00 je 40fef1 <_IO_wfile_underflow+0x391> + 40fdda: 4c 8b 73 18 mov 0x18(%rbx),%r14 + 40fdde: eb d4 jmp 40fdb4 <_IO_wfile_underflow+0x254> + 40fde0: 0f 85 da 01 00 00 jne 40ffc0 <_IO_wfile_underflow+0x460> + 40fde6: 48 85 ed test %rbp,%rbp + 40fde9: 0f 85 d1 01 00 00 jne 40ffc0 <_IO_wfile_underflow+0x460> + 40fdef: 8b 03 mov (%rbx),%eax + 40fdf1: 48 c7 83 90 00 00 00 movq $0xffffffffffffffff,0x90(%rbx) + 40fdf8: ff ff ff ff + 40fdfc: 83 c8 10 or $0x10,%eax + 40fdff: 89 03 mov %eax,(%rbx) + 40fe01: b8 ff ff ff ff mov $0xffffffff,%eax + 40fe06: 48 83 c4 28 add $0x28,%rsp + 40fe0a: 5b pop %rbx + 40fe0b: 5d pop %rbp + 40fe0c: 41 5c pop %r12 + 40fe0e: 41 5d pop %r13 + 40fe10: 41 5e pop %r14 + 40fe12: 41 5f pop %r15 + 40fe14: c3 retq + 40fe15: 0f 1f 00 nopl (%rax) + 40fe18: 4c 8b 7b 10 mov 0x10(%rbx),%r15 + 40fe1c: 4c 89 f7 mov %r14,%rdi + 40fe1f: 49 29 f7 sub %rsi,%r15 + 40fe22: 4c 89 fa mov %r15,%rdx + 40fe25: e8 d6 04 ff ff callq 400300 <__rela_iplt_end+0x38> + 40fe2a: 4c 8b 73 10 mov 0x10(%rbx),%r14 + 40fe2e: 48 8b 43 18 mov 0x18(%rbx),%rax + 40fe32: 4d 29 fe sub %r15,%r14 + 40fe35: 48 89 43 08 mov %rax,0x8(%rbx) + 40fe39: 4c 89 73 10 mov %r14,0x10(%rbx) + 40fe3d: e9 86 fe ff ff jmpq 40fcc8 <_IO_wfile_underflow+0x168> + 40fe42: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 40fe48: 48 29 c5 sub %rax,%rbp + 40fe4b: 48 89 ce mov %rcx,%rsi + 40fe4e: 4c 89 ef mov %r13,%rdi + 40fe51: 48 89 ea mov %rbp,%rdx + 40fe54: e8 a7 04 ff ff callq 400300 <__rela_iplt_end+0x38> + 40fe59: e9 72 ff ff ff jmpq 40fdd0 <_IO_wfile_underflow+0x270> + 40fe5e: 66 90 xchg %ax,%ax + 40fe60: 41 b8 10 00 00 00 mov $0x10,%r8d + 40fe66: 4d 8d 74 2d 00 lea 0x0(%r13,%rbp,1),%r14 + 40fe6b: 48 89 fe mov %rdi,%rsi + 40fe6e: 49 29 e8 sub %rbp,%r8 + 40fe71: 49 39 c0 cmp %rax,%r8 + 40fe74: 4c 89 f7 mov %r14,%rdi + 40fe77: 49 0f 46 c0 cmovbe %r8,%rax + 40fe7b: 48 89 c2 mov %rax,%rdx + 40fe7e: 49 89 c7 mov %rax,%r15 + 40fe81: e8 3a 67 01 00 callq 4265c0 <__mempcpy> + 40fe86: 48 8b 93 a0 00 00 00 mov 0xa0(%rbx),%rdx + 40fe8d: 4c 01 fd add %r15,%rbp + 40fe90: 4c 89 e7 mov %r12,%rdi + 40fe93: 48 8d 4a 08 lea 0x8(%rdx),%rcx + 40fe97: 48 8d 72 58 lea 0x58(%rdx),%rsi + 40fe9b: 51 push %rcx + 40fe9c: ff 72 38 pushq 0x38(%rdx) + 40fe9f: 48 89 c1 mov %rax,%rcx + 40fea2: 4c 8b 4a 08 mov 0x8(%rdx),%r9 + 40fea6: 4c 89 ea mov %r13,%rdx + 40fea9: 4c 8d 44 24 18 lea 0x18(%rsp),%r8 + 40feae: 41 ff 54 24 18 callq *0x18(%r12) + 40feb3: 48 85 ed test %rbp,%rbp + 40feb6: 5e pop %rsi + 40feb7: 5f pop %rdi + 40feb8: 0f 84 93 fe ff ff je 40fd51 <_IO_wfile_underflow+0x1f1> + 40febe: 48 8b 4c 24 08 mov 0x8(%rsp),%rcx + 40fec3: be 00 00 00 00 mov $0x0,%esi + 40fec8: 48 89 ca mov %rcx,%rdx + 40fecb: 4c 29 f2 sub %r14,%rdx + 40fece: 48 0f 48 d6 cmovs %rsi,%rdx + 40fed2: 48 89 d6 mov %rdx,%rsi + 40fed5: 48 03 73 08 add 0x8(%rbx),%rsi + 40fed9: e9 7d fe ff ff jmpq 40fd5b <_IO_wfile_underflow+0x1fb> + 40fede: 66 90 xchg %ax,%ax + 40fee0: 8b 02 mov (%rdx),%eax + 40fee2: c3 retq + 40fee3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 40fee8: 83 f8 02 cmp $0x2,%eax + 40feeb: 0f 85 88 01 00 00 jne 410079 <_IO_wfile_underflow+0x519> + 40fef1: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 40fef8: 64 c7 00 54 00 00 00 movl $0x54,%fs:(%rax) + 40feff: 83 0b 20 orl $0x20,(%rbx) + 40ff02: 48 83 c4 28 add $0x28,%rsp + 40ff06: 5b pop %rbx + 40ff07: b8 ff ff ff ff mov $0xffffffff,%eax + 40ff0c: 5d pop %rbp + 40ff0d: 41 5c pop %r12 + 40ff0f: 41 5d pop %r13 + 40ff11: 41 5e pop %r14 + 40ff13: 41 5f pop %r15 + 40ff15: c3 retq + 40ff16: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 40ff1d: 00 00 00 + 40ff20: 48 89 54 24 10 mov %rdx,0x10(%rsp) + 40ff25: 48 8b 50 58 mov 0x58(%rax),%rdx + 40ff29: 48 89 50 60 mov %rdx,0x60(%rax) + 40ff2d: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax + 40ff34: 48 8b 4f 10 mov 0x10(%rdi),%rcx + 40ff38: 48 8b 57 08 mov 0x8(%rdi),%rdx + 40ff3c: 4c 8b 48 30 mov 0x30(%rax),%r9 + 40ff40: 48 8d 78 08 lea 0x8(%rax),%rdi + 40ff44: 48 8d 70 58 lea 0x58(%rax),%rsi + 40ff48: 4c 89 08 mov %r9,(%rax) + 40ff4b: 4c 89 48 10 mov %r9,0x10(%rax) + 40ff4f: 57 push %rdi + 40ff50: ff 70 38 pushq 0x38(%rax) + 40ff53: 4c 89 e7 mov %r12,%rdi + 40ff56: 4c 8d 44 24 20 lea 0x20(%rsp),%r8 + 40ff5b: 41 ff 54 24 18 callq *0x18(%r12) + 40ff60: 48 8b 53 08 mov 0x8(%rbx),%rdx + 40ff64: 48 8b 74 24 20 mov 0x20(%rsp),%rsi + 40ff69: 48 89 53 18 mov %rdx,0x18(%rbx) + 40ff6d: 48 8b 93 a0 00 00 00 mov 0xa0(%rbx),%rdx + 40ff74: 48 89 73 08 mov %rsi,0x8(%rbx) + 40ff78: 41 58 pop %r8 + 40ff7a: 48 8b 0a mov (%rdx),%rcx + 40ff7d: 48 3b 4a 08 cmp 0x8(%rdx),%rcx + 40ff81: 41 59 pop %r9 + 40ff83: 0f 83 5f ff ff ff jae 40fee8 <_IO_wfile_underflow+0x388> + 40ff89: 8b 01 mov (%rcx),%eax + 40ff8b: e9 76 fe ff ff jmpq 40fe06 <_IO_wfile_underflow+0x2a6> + 40ff90: 81 e2 88 02 00 00 and $0x288,%edx + 40ff96: 81 fa 80 02 00 00 cmp $0x280,%edx + 40ff9c: 0f 85 ee fc ff ff jne 40fc90 <_IO_wfile_underflow+0x130> + 40ffa2: 48 89 ef mov %rbp,%rdi + 40ffa5: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 40ffac: be ff ff ff ff mov $0xffffffff,%esi + 40ffb1: ff 50 18 callq *0x18(%rax) + 40ffb4: e9 bd fc ff ff jmpq 40fc76 <_IO_wfile_underflow+0x116> + 40ffb9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 40ffc0: 83 0b 20 orl $0x20,(%rbx) + 40ffc3: 48 85 ed test %rbp,%rbp + 40ffc6: 0f 84 84 01 00 00 je 410150 <_IO_wfile_underflow+0x5f0> + 40ffcc: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 40ffd3: 64 c7 00 54 00 00 00 movl $0x54,%fs:(%rax) + 40ffda: b8 ff ff ff ff mov $0xffffffff,%eax + 40ffdf: e9 22 fe ff ff jmpq 40fe06 <_IO_wfile_underflow+0x2a6> + 40ffe4: 0f 1f 40 00 nopl 0x0(%rax) + 40ffe8: 48 8b 02 mov (%rdx),%rax + 40ffeb: 8b 00 mov (%rax),%eax + 40ffed: 48 83 c4 28 add $0x28,%rsp + 40fff1: 5b pop %rbx + 40fff2: 5d pop %rbp + 40fff3: 41 5c pop %r12 + 40fff5: 41 5d pop %r13 + 40fff7: 41 5e pop %r14 + 40fff9: 41 5f pop %r15 + 40fffb: c3 retq + 40fffc: 0f 1f 40 00 nopl 0x0(%rax) + 410000: 83 c8 20 or $0x20,%eax + 410003: 89 07 mov %eax,(%rdi) + 410005: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41000c: 64 c7 00 09 00 00 00 movl $0x9,%fs:(%rax) + 410013: b8 ff ff ff ff mov $0xffffffff,%eax + 410018: c3 retq + 410019: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 410020: 48 8b 78 40 mov 0x40(%rax),%rdi + 410024: 48 85 ff test %rdi,%rdi + 410027: 74 0b je 410034 <_IO_wfile_underflow+0x4d4> + 410029: e8 82 dd 00 00 callq 41ddb0 <__cfree> + 41002e: 81 23 ff fe ff ff andl $0xfffffeff,(%rbx) + 410034: 48 89 df mov %rbx,%rdi + 410037: e8 64 46 05 00 callq 4646a0 <_IO_wdoallocbuf> + 41003c: e9 9a fb ff ff jmpq 40fbdb <_IO_wfile_underflow+0x7b> + 410041: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 410048: 48 8b 7b 48 mov 0x48(%rbx),%rdi + 41004c: 48 85 ff test %rdi,%rdi + 41004f: 74 0b je 41005c <_IO_wfile_underflow+0x4fc> + 410051: e8 5a dd 00 00 callq 41ddb0 <__cfree> + 410056: 81 23 ff fe ff ff andl $0xfffffeff,(%rbx) + 41005c: 48 89 df mov %rbx,%rdi + 41005f: e8 9c 4d 00 00 callq 414e00 <_IO_doallocbuf> + 410064: 48 8b 43 38 mov 0x38(%rbx),%rax + 410068: 48 89 43 10 mov %rax,0x10(%rbx) + 41006c: 48 89 43 08 mov %rax,0x8(%rbx) + 410070: 48 89 43 18 mov %rax,0x18(%rbx) + 410074: e9 44 fb ff ff jmpq 40fbbd <_IO_wfile_underflow+0x5d> + 410079: 48 8b 53 10 mov 0x10(%rbx),%rdx + 41007d: 48 8b 7b 38 mov 0x38(%rbx),%rdi + 410081: 48 29 f2 sub %rsi,%rdx + 410084: e8 77 02 ff ff callq 400300 <__rela_iplt_end+0x38> + 410089: 48 8b 43 38 mov 0x38(%rbx),%rax + 41008d: 48 89 c2 mov %rax,%rdx + 410090: 48 2b 53 08 sub 0x8(%rbx),%rdx + 410094: 48 89 43 18 mov %rax,0x18(%rbx) + 410098: 48 01 53 10 add %rdx,0x10(%rbx) + 41009c: 48 89 43 08 mov %rax,0x8(%rbx) + 4100a0: e9 0f fb ff ff jmpq 40fbb4 <_IO_wfile_underflow+0x54> + 4100a5: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) + 4100ac: 00 + 4100ad: 83 3d 08 d1 2b 00 00 cmpl $0x0,0x2bd108(%rip) # 6cd1bc <__libc_multiple_threads> + 4100b4: 74 07 je 4100bd <_IO_wfile_underflow+0x55d> + 4100b6: f0 ff 0a lock decl (%rdx) + 4100b9: 75 06 jne 4100c1 <_IO_wfile_underflow+0x561> + 4100bb: eb 1a jmp 4100d7 <_IO_wfile_underflow+0x577> + 4100bd: ff 0a decl (%rdx) + 4100bf: 74 16 je 4100d7 <_IO_wfile_underflow+0x577> + 4100c1: 48 8d 3a lea (%rdx),%rdi + 4100c4: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4100cb: e8 30 25 03 00 callq 442600 <__lll_unlock_wake_private> + 4100d0: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4100d7: e9 b4 fb ff ff jmpq 40fc90 <_IO_wfile_underflow+0x130> + 4100dc: 48 89 ef mov %rbp,%rdi + 4100df: e9 7b fb ff ff jmpq 40fc5f <_IO_wfile_underflow+0xff> + 4100e4: b9 80 19 4a 00 mov $0x4a1980,%ecx + 4100e9: ba 35 01 00 00 mov $0x135,%edx + 4100ee: be 53 19 4a 00 mov $0x4a1953,%esi + 4100f3: bf 5e 19 4a 00 mov $0x4a195e,%edi + 4100f8: e8 43 16 ff ff callq 401740 <__assert_fail> + 4100fd: f7 45 00 00 80 00 00 testl $0x8000,0x0(%rbp) + 410104: 48 89 c6 mov %rax,%rsi + 410107: 75 3f jne 410148 <_IO_wfile_underflow+0x5e8> + 410109: 48 8b 95 88 00 00 00 mov 0x88(%rbp),%rdx + 410110: 83 6a 04 01 subl $0x1,0x4(%rdx) + 410114: 75 32 jne 410148 <_IO_wfile_underflow+0x5e8> + 410116: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) + 41011d: 00 + 41011e: 83 3d 97 d0 2b 00 00 cmpl $0x0,0x2bd097(%rip) # 6cd1bc <__libc_multiple_threads> + 410125: 74 07 je 41012e <_IO_wfile_underflow+0x5ce> + 410127: f0 ff 0a lock decl (%rdx) + 41012a: 75 06 jne 410132 <_IO_wfile_underflow+0x5d2> + 41012c: eb 1a jmp 410148 <_IO_wfile_underflow+0x5e8> + 41012e: ff 0a decl (%rdx) + 410130: 74 16 je 410148 <_IO_wfile_underflow+0x5e8> + 410132: 48 8d 3a lea (%rdx),%rdi + 410135: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41013c: e8 bf 24 03 00 callq 442600 <__lll_unlock_wake_private> + 410141: 48 81 c4 80 00 00 00 add $0x80,%rsp + 410148: 48 89 f7 mov %rsi,%rdi + 41014b: e8 20 c4 08 00 callq 49c570 <_Unwind_Resume> + 410150: 83 c8 ff or $0xffffffff,%eax + 410153: e9 ae fc ff ff jmpq 40fe06 <_IO_wfile_underflow+0x2a6> + 410158: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41015f: 00 + +0000000000410160 <_IO_wfile_seekoff>: + 410160: 41 57 push %r15 + 410162: 41 56 push %r14 + 410164: 49 89 ff mov %rdi,%r15 + 410167: 41 55 push %r13 + 410169: 41 54 push %r12 + 41016b: 55 push %rbp + 41016c: 53 push %rbx + 41016d: 48 81 ec b8 00 00 00 sub $0xb8,%rsp + 410174: 85 c9 test %ecx,%ecx + 410176: 0f 84 a4 02 00 00 je 410420 <_IO_wfile_seekoff+0x2c0> + 41017c: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax + 410183: 48 89 f3 mov %rsi,%rbx + 410186: 89 d5 mov %edx,%ebp + 410188: 48 8b 70 08 mov 0x8(%rax),%rsi + 41018c: 48 39 70 10 cmp %rsi,0x10(%rax) + 410190: 74 3e je 4101d0 <_IO_wfile_seekoff+0x70> + 410192: 48 8b 48 20 mov 0x20(%rax),%rcx + 410196: 48 8b 50 18 mov 0x18(%rax),%rdx + 41019a: 45 31 e4 xor %r12d,%r12d + 41019d: 48 39 d1 cmp %rdx,%rcx + 4101a0: 76 46 jbe 4101e8 <_IO_wfile_seekoff+0x88> + 4101a2: 4c 89 ff mov %r15,%rdi + 4101a5: e8 f6 45 05 00 callq 4647a0 <_IO_switch_to_wget_mode> + 4101aa: 85 c0 test %eax,%eax + 4101ac: ba ff ff ff ff mov $0xffffffff,%edx + 4101b1: 0f 84 41 03 00 00 je 4104f8 <_IO_wfile_seekoff+0x398> + 4101b7: 48 81 c4 b8 00 00 00 add $0xb8,%rsp + 4101be: 48 89 d0 mov %rdx,%rax + 4101c1: 5b pop %rbx + 4101c2: 5d pop %rbp + 4101c3: 41 5c pop %r12 + 4101c5: 41 5d pop %r13 + 4101c7: 41 5e pop %r14 + 4101c9: 41 5f pop %r15 + 4101cb: c3 retq + 4101cc: 0f 1f 40 00 nopl 0x0(%rax) + 4101d0: 48 8b 50 18 mov 0x18(%rax),%rdx + 4101d4: 48 8b 48 20 mov 0x20(%rax),%rcx + 4101d8: 48 39 ca cmp %rcx,%rdx + 4101db: 75 bd jne 41019a <_IO_wfile_seekoff+0x3a> + 4101dd: 41 bc 01 00 00 00 mov $0x1,%r12d + 4101e3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4101e8: 41 f7 07 00 08 00 00 testl $0x800,(%r15) + 4101ef: 75 b1 jne 4101a2 <_IO_wfile_seekoff+0x42> + 4101f1: 48 83 78 30 00 cmpq $0x0,0x30(%rax) + 4101f6: 0f 84 b4 03 00 00 je 4105b0 <_IO_wfile_seekoff+0x450> + 4101fc: 83 fd 01 cmp $0x1,%ebp + 4101ff: 0f 84 bb 01 00 00 je 4103c0 <_IO_wfile_seekoff+0x260> + 410205: 83 fd 02 cmp $0x2,%ebp + 410208: 0f 85 c2 00 00 00 jne 4102d0 <_IO_wfile_seekoff+0x170> + 41020e: 49 8b 87 d8 00 00 00 mov 0xd8(%r15),%rax + 410215: 48 8d 74 24 20 lea 0x20(%rsp),%rsi + 41021a: 4c 89 ff mov %r15,%rdi + 41021d: ff 90 90 00 00 00 callq *0x90(%rax) + 410223: 85 c0 test %eax,%eax + 410225: 0f 84 85 00 00 00 je 4102b0 <_IO_wfile_seekoff+0x150> + 41022b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 410230: 4c 89 ff mov %r15,%rdi + 410233: e8 68 61 00 00 callq 4163a0 <_IO_unsave_markers> + 410238: 49 8b 87 d8 00 00 00 mov 0xd8(%r15),%rax + 41023f: 89 ea mov %ebp,%edx + 410241: 48 89 de mov %rbx,%rsi + 410244: 4c 89 ff mov %r15,%rdi + 410247: ff 90 80 00 00 00 callq *0x80(%rax) + 41024d: 48 c7 c2 ff ff ff ff mov $0xffffffffffffffff,%rdx + 410254: 48 39 d0 cmp %rdx,%rax + 410257: 0f 84 5a ff ff ff je 4101b7 <_IO_wfile_seekoff+0x57> + 41025d: 49 8b 57 38 mov 0x38(%r15),%rdx + 410261: 41 83 27 ef andl $0xffffffef,(%r15) + 410265: 49 89 87 90 00 00 00 mov %rax,0x90(%r15) + 41026c: 49 89 57 18 mov %rdx,0x18(%r15) + 410270: 49 89 57 08 mov %rdx,0x8(%r15) + 410274: 49 89 57 10 mov %rdx,0x10(%r15) + 410278: 49 89 57 28 mov %rdx,0x28(%r15) + 41027c: 49 89 57 20 mov %rdx,0x20(%r15) + 410280: 49 89 57 30 mov %rdx,0x30(%r15) + 410284: 49 8b 97 a0 00 00 00 mov 0xa0(%r15),%rdx + 41028b: 48 8b 4a 30 mov 0x30(%rdx),%rcx + 41028f: 48 89 4a 10 mov %rcx,0x10(%rdx) + 410293: 48 89 0a mov %rcx,(%rdx) + 410296: 48 89 4a 08 mov %rcx,0x8(%rdx) + 41029a: 48 89 4a 20 mov %rcx,0x20(%rdx) + 41029e: 48 89 4a 18 mov %rcx,0x18(%rdx) + 4102a2: 48 89 4a 28 mov %rcx,0x28(%rdx) + 4102a6: 48 89 c2 mov %rax,%rdx + 4102a9: e9 09 ff ff ff jmpq 4101b7 <_IO_wfile_seekoff+0x57> + 4102ae: 66 90 xchg %ax,%ax + 4102b0: 8b 44 24 38 mov 0x38(%rsp),%eax + 4102b4: 25 00 f0 00 00 and $0xf000,%eax + 4102b9: 3d 00 80 00 00 cmp $0x8000,%eax + 4102be: 0f 85 6c ff ff ff jne 410230 <_IO_wfile_seekoff+0xd0> + 4102c4: 48 03 5c 24 50 add 0x50(%rsp),%rbx + 4102c9: 31 ed xor %ebp,%ebp + 4102cb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4102d0: 49 8b 87 90 00 00 00 mov 0x90(%r15),%rax + 4102d7: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 4102db: 0f 84 27 02 00 00 je 410508 <_IO_wfile_seekoff+0x3a8> + 4102e1: 49 83 7f 18 00 cmpq $0x0,0x18(%r15) + 4102e6: 41 8b 17 mov (%r15),%edx + 4102e9: 74 25 je 410310 <_IO_wfile_seekoff+0x1b0> + 4102eb: f6 c6 01 test $0x1,%dh + 4102ee: 75 20 jne 410310 <_IO_wfile_seekoff+0x1b0> + 4102f0: 49 8b 4f 38 mov 0x38(%r15),%rcx + 4102f4: 48 89 ce mov %rcx,%rsi + 4102f7: 49 2b 77 10 sub 0x10(%r15),%rsi + 4102fb: 48 01 c6 add %rax,%rsi + 4102fe: 48 39 de cmp %rbx,%rsi + 410301: 7f 0d jg 410310 <_IO_wfile_seekoff+0x1b0> + 410303: 48 39 c3 cmp %rax,%rbx + 410306: 0f 8c ac 03 00 00 jl 4106b8 <_IO_wfile_seekoff+0x558> + 41030c: 0f 1f 40 00 nopl 0x0(%rax) + 410310: 83 e2 04 and $0x4,%edx + 410313: 0f 85 17 ff ff ff jne 410230 <_IO_wfile_seekoff+0xd0> + 410319: 49 8b 57 38 mov 0x38(%r15),%rdx + 41031d: 49 8b 47 40 mov 0x40(%r15),%rax + 410321: 49 89 dd mov %rbx,%r13 + 410324: 48 89 d6 mov %rdx,%rsi + 410327: 48 29 c6 sub %rax,%rsi + 41032a: 48 29 d0 sub %rdx,%rax + 41032d: ba 00 00 00 00 mov $0x0,%edx + 410332: 48 21 de and %rbx,%rsi + 410335: 49 29 f5 sub %rsi,%r13 + 410338: 49 39 c5 cmp %rax,%r13 + 41033b: 49 8b 87 d8 00 00 00 mov 0xd8(%r15),%rax + 410342: 0f 8f d8 01 00 00 jg 410520 <_IO_wfile_seekoff+0x3c0> + 410348: 4c 89 ff mov %r15,%rdi + 41034b: ff 90 80 00 00 00 callq *0x80(%rax) + 410351: 48 85 c0 test %rax,%rax + 410354: 49 89 c6 mov %rax,%r14 + 410357: 0f 88 8b 01 00 00 js 4104e8 <_IO_wfile_seekoff+0x388> + 41035d: 4d 85 ed test %r13,%r13 + 410360: 0f 84 ce 01 00 00 je 410534 <_IO_wfile_seekoff+0x3d4> + 410366: 49 8b 87 d8 00 00 00 mov 0xd8(%r15),%rax + 41036d: 45 85 e4 test %r12d,%r12d + 410370: 49 8b 77 38 mov 0x38(%r15),%rsi + 410374: 4c 89 ea mov %r13,%rdx + 410377: 48 8b 40 70 mov 0x70(%rax),%rax + 41037b: 75 07 jne 410384 <_IO_wfile_seekoff+0x224> + 41037d: 49 8b 57 40 mov 0x40(%r15),%rdx + 410381: 48 29 f2 sub %rsi,%rdx + 410384: 4c 89 ff mov %r15,%rdi + 410387: ff d0 callq *%rax + 410389: 49 39 c5 cmp %rax,%r13 + 41038c: 49 89 c4 mov %rax,%r12 + 41038f: 48 89 c2 mov %rax,%rdx + 410392: 0f 8e a4 01 00 00 jle 41053c <_IO_wfile_seekoff+0x3dc> + 410398: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 41039c: 4c 89 eb mov %r13,%rbx + 41039f: bd 01 00 00 00 mov $0x1,%ebp + 4103a4: 0f 84 86 fe ff ff je 410230 <_IO_wfile_seekoff+0xd0> + 4103aa: 48 29 c3 sub %rax,%rbx + 4103ad: bd 01 00 00 00 mov $0x1,%ebp + 4103b2: e9 79 fe ff ff jmpq 410230 <_IO_wfile_seekoff+0xd0> + 4103b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4103be: 00 00 + 4103c0: 4d 8b af 98 00 00 00 mov 0x98(%r15),%r13 + 4103c7: 4c 89 ef mov %r13,%rdi + 4103ca: 41 ff 55 20 callq *0x20(%r13) + 4103ce: 85 c0 test %eax,%eax + 4103d0: 0f 8e 6a 03 00 00 jle 410740 <_IO_wfile_seekoff+0x5e0> + 4103d6: 49 8b 8f a0 00 00 00 mov 0xa0(%r15),%rcx + 4103dd: 48 98 cltq + 4103df: 48 8b 51 08 mov 0x8(%rcx),%rdx + 4103e3: 48 2b 11 sub (%rcx),%rdx + 4103e6: 48 c1 fa 02 sar $0x2,%rdx + 4103ea: 48 0f af c2 imul %rdx,%rax + 4103ee: 48 29 c3 sub %rax,%rbx + 4103f1: 49 8b 47 10 mov 0x10(%r15),%rax + 4103f5: 49 2b 47 08 sub 0x8(%r15),%rax + 4103f9: 48 29 c3 sub %rax,%rbx + 4103fc: 49 8b 87 90 00 00 00 mov 0x90(%r15),%rax + 410403: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 410407: 0f 84 23 fe ff ff je 410230 <_IO_wfile_seekoff+0xd0> + 41040d: 48 01 c3 add %rax,%rbx + 410410: 31 ed xor %ebp,%ebp + 410412: e9 ca fe ff ff jmpq 4102e1 <_IO_wfile_seekoff+0x181> + 410417: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 41041e: 00 00 + 410420: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax + 410427: 48 83 78 30 00 cmpq $0x0,0x30(%rax) + 41042c: 0f 84 06 03 00 00 je 410738 <_IO_wfile_seekoff+0x5d8> + 410432: 8b 17 mov (%rdi),%edx + 410434: 4c 8b 60 20 mov 0x20(%rax),%r12 + 410438: 48 8b 68 18 mov 0x18(%rax),%rbp + 41043c: 41 89 d5 mov %edx,%r13d + 41043f: 41 81 e5 00 10 00 00 and $0x1000,%r13d + 410446: 49 39 ec cmp %rbp,%r12 + 410449: 76 09 jbe 410454 <_IO_wfile_seekoff+0x2f4> + 41044b: 45 85 ed test %r13d,%r13d + 41044e: 0f 85 1c 02 00 00 jne 410670 <_IO_wfile_seekoff+0x510> + 410454: 80 e6 01 and $0x1,%dh + 410457: 0f 84 b3 01 00 00 je 410610 <_IO_wfile_seekoff+0x4b0> + 41045d: 48 8b 78 08 mov 0x8(%rax),%rdi + 410461: 48 39 38 cmp %rdi,(%rax) + 410464: 72 6e jb 4104d4 <_IO_wfile_seekoff+0x374> + 410466: 4c 8b 70 40 mov 0x40(%rax),%r14 + 41046a: 48 8b 40 50 mov 0x50(%rax),%rax + 41046e: 4c 89 74 24 08 mov %r14,0x8(%rsp) + 410473: 48 89 04 24 mov %rax,(%rsp) + 410477: 49 8b 9f 98 00 00 00 mov 0x98(%r15),%rbx + 41047e: 48 89 df mov %rbx,%rdi + 410481: ff 53 20 callq *0x20(%rbx) + 410484: 49 39 ec cmp %rbp,%r12 + 410487: 0f 87 a3 01 00 00 ja 410630 <_IO_wfile_seekoff+0x4d0> + 41048d: 85 c0 test %eax,%eax + 41048f: 0f 8e 3b 03 00 00 jle 4107d0 <_IO_wfile_seekoff+0x670> + 410495: 48 8b 14 24 mov (%rsp),%rdx + 410499: 48 98 cltq + 41049b: 4c 29 f2 sub %r14,%rdx + 41049e: 48 c1 fa 02 sar $0x2,%rdx + 4104a2: 48 0f af d0 imul %rax,%rdx + 4104a6: 49 8b 47 10 mov 0x10(%r15),%rax + 4104aa: 49 2b 47 08 sub 0x8(%r15),%rax + 4104ae: 48 f7 da neg %rdx + 4104b1: 48 89 d3 mov %rdx,%rbx + 4104b4: 48 29 c3 sub %rax,%rbx + 4104b7: 49 8b 87 90 00 00 00 mov 0x90(%r15),%rax + 4104be: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 4104c2: 0f 84 e0 02 00 00 je 4107a8 <_IO_wfile_seekoff+0x648> + 4104c8: 48 01 c3 add %rax,%rbx + 4104cb: 48 89 da mov %rbx,%rdx + 4104ce: 0f 89 e3 fc ff ff jns 4101b7 <_IO_wfile_seekoff+0x57> + 4104d4: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 4104db: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) + 4104e2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4104e8: 48 c7 c2 ff ff ff ff mov $0xffffffffffffffff,%rdx + 4104ef: e9 c3 fc ff ff jmpq 4101b7 <_IO_wfile_seekoff+0x57> + 4104f4: 0f 1f 40 00 nopl 0x0(%rax) + 4104f8: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax + 4104ff: e9 ed fc ff ff jmpq 4101f1 <_IO_wfile_seekoff+0x91> + 410504: 0f 1f 40 00 nopl 0x0(%rax) + 410508: 41 8b 17 mov (%r15),%edx + 41050b: 83 e2 04 and $0x4,%edx + 41050e: 0f 85 1c fd ff ff jne 410230 <_IO_wfile_seekoff+0xd0> + 410514: e9 00 fe ff ff jmpq 410319 <_IO_wfile_seekoff+0x1b9> + 410519: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 410520: 48 89 de mov %rbx,%rsi + 410523: 4c 89 ff mov %r15,%rdi + 410526: ff 90 80 00 00 00 callq *0x80(%rax) + 41052c: 48 85 c0 test %rax,%rax + 41052f: 49 89 c6 mov %rax,%r14 + 410532: 78 b4 js 4104e8 <_IO_wfile_seekoff+0x388> + 410534: 31 d2 xor %edx,%edx + 410536: 45 31 ed xor %r13d,%r13d + 410539: 45 31 e4 xor %r12d,%r12d + 41053c: 49 8b 47 38 mov 0x38(%r15),%rax + 410540: be 01 00 00 00 mov $0x1,%esi + 410545: 4c 89 ff mov %r15,%rdi + 410548: 49 89 47 18 mov %rax,0x18(%r15) + 41054c: 49 89 47 28 mov %rax,0x28(%r15) + 410550: 48 01 c2 add %rax,%rdx + 410553: 49 89 47 20 mov %rax,0x20(%r15) + 410557: 49 89 47 30 mov %rax,0x30(%r15) + 41055b: 49 01 c5 add %rax,%r13 + 41055e: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax + 410565: 49 89 57 10 mov %rdx,0x10(%r15) + 410569: 4d 89 6f 08 mov %r13,0x8(%r15) + 41056d: 48 8b 50 30 mov 0x30(%rax),%rdx + 410571: 48 89 50 10 mov %rdx,0x10(%rax) + 410575: 48 89 10 mov %rdx,(%rax) + 410578: 48 89 50 08 mov %rdx,0x8(%rax) + 41057c: 48 89 50 20 mov %rdx,0x20(%rax) + 410580: 48 89 50 18 mov %rdx,0x18(%rax) + 410584: 48 89 50 28 mov %rdx,0x28(%rax) + 410588: e8 03 f5 ff ff callq 40fa90 + 41058d: 85 c0 test %eax,%eax + 41058f: 0f 85 9b fc ff ff jne 410230 <_IO_wfile_seekoff+0xd0> + 410595: 4d 01 e6 add %r12,%r14 + 410598: 41 83 27 ef andl $0xffffffef,(%r15) + 41059c: 48 89 da mov %rbx,%rdx + 41059f: 4d 89 b7 90 00 00 00 mov %r14,0x90(%r15) + 4105a6: e9 0c fc ff ff jmpq 4101b7 <_IO_wfile_seekoff+0x57> + 4105ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4105b0: 48 8b 78 10 mov 0x10(%rax),%rdi + 4105b4: 48 85 ff test %rdi,%rdi + 4105b7: 74 0c je 4105c5 <_IO_wfile_seekoff+0x465> + 4105b9: e8 f2 d7 00 00 callq 41ddb0 <__cfree> + 4105be: 41 81 27 ff fe ff ff andl $0xfffffeff,(%r15) + 4105c5: 4c 89 ff mov %r15,%rdi + 4105c8: e8 33 48 00 00 callq 414e00 <_IO_doallocbuf> + 4105cd: 49 8b 47 38 mov 0x38(%r15),%rax + 4105d1: 49 89 47 28 mov %rax,0x28(%r15) + 4105d5: 49 89 47 20 mov %rax,0x20(%r15) + 4105d9: 49 89 47 30 mov %rax,0x30(%r15) + 4105dd: 49 89 47 18 mov %rax,0x18(%r15) + 4105e1: 49 89 47 08 mov %rax,0x8(%r15) + 4105e5: 49 89 47 10 mov %rax,0x10(%r15) + 4105e9: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax + 4105f0: 48 8b 50 30 mov 0x30(%rax),%rdx + 4105f4: 48 89 50 20 mov %rdx,0x20(%rax) + 4105f8: 48 89 50 18 mov %rdx,0x18(%rax) + 4105fc: 48 89 50 28 mov %rdx,0x28(%rax) + 410600: 48 89 50 10 mov %rdx,0x10(%rax) + 410604: 48 89 10 mov %rdx,(%rax) + 410607: 48 89 50 08 mov %rdx,0x8(%rax) + 41060b: e9 ec fb ff ff jmpq 4101fc <_IO_wfile_seekoff+0x9c> + 410610: 48 8b 78 10 mov 0x10(%rax),%rdi + 410614: 4c 8b 30 mov (%rax),%r14 + 410617: 48 8b 40 08 mov 0x8(%rax),%rax + 41061b: 48 89 7c 24 08 mov %rdi,0x8(%rsp) + 410620: 48 89 04 24 mov %rax,(%rsp) + 410624: e9 4e fe ff ff jmpq 410477 <_IO_wfile_seekoff+0x317> + 410629: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 410630: 85 c0 test %eax,%eax + 410632: 0f 8e e0 01 00 00 jle 410818 <_IO_wfile_seekoff+0x6b8> + 410638: 49 8b 97 a0 00 00 00 mov 0xa0(%r15),%rdx + 41063f: 48 98 cltq + 410641: 48 8b 5a 20 mov 0x20(%rdx),%rbx + 410645: 48 2b 5a 18 sub 0x18(%rdx),%rbx + 410649: 48 c1 fb 02 sar $0x2,%rbx + 41064d: 48 0f af d8 imul %rax,%rbx + 410651: 48 89 dd mov %rbx,%rbp + 410654: 45 85 ed test %r13d,%r13d + 410657: 49 8b 57 28 mov 0x28(%r15),%rdx + 41065b: 74 4b je 4106a8 <_IO_wfile_seekoff+0x548> + 41065d: 49 2b 57 20 sub 0x20(%r15),%rdx + 410661: 48 8d 1c 2a lea (%rdx,%rbp,1),%rbx + 410665: e9 4d fe ff ff jmpq 4104b7 <_IO_wfile_seekoff+0x357> + 41066a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 410670: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 410677: 31 f6 xor %esi,%esi + 410679: ba 02 00 00 00 mov $0x2,%edx + 41067e: ff 90 80 00 00 00 callq *0x80(%rax) + 410684: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 410688: 0f 84 5a fe ff ff je 4104e8 <_IO_wfile_seekoff+0x388> + 41068e: 49 89 87 90 00 00 00 mov %rax,0x90(%r15) + 410695: 41 8b 17 mov (%r15),%edx + 410698: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax + 41069f: e9 b0 fd ff ff jmpq 410454 <_IO_wfile_seekoff+0x2f4> + 4106a4: 0f 1f 40 00 nopl 0x0(%rax) + 4106a8: 49 2b 57 10 sub 0x10(%r15),%rdx + 4106ac: 48 8d 1c 2a lea (%rdx,%rbp,1),%rbx + 4106b0: e9 02 fe ff ff jmpq 4104b7 <_IO_wfile_seekoff+0x357> + 4106b5: 0f 1f 00 nopl (%rax) + 4106b8: 48 89 d8 mov %rbx,%rax + 4106bb: 49 89 4f 18 mov %rcx,0x18(%r15) + 4106bf: 49 89 4f 28 mov %rcx,0x28(%r15) + 4106c3: 48 29 f0 sub %rsi,%rax + 4106c6: 49 89 4f 20 mov %rcx,0x20(%r15) + 4106ca: 49 89 4f 30 mov %rcx,0x30(%r15) + 4106ce: 48 01 c8 add %rcx,%rax + 4106d1: 31 f6 xor %esi,%esi + 4106d3: 4c 89 ff mov %r15,%rdi + 4106d6: 49 89 47 08 mov %rax,0x8(%r15) + 4106da: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax + 4106e1: 48 8b 50 30 mov 0x30(%rax),%rdx + 4106e5: 48 89 50 10 mov %rdx,0x10(%rax) + 4106e9: 48 89 10 mov %rdx,(%rax) + 4106ec: 48 89 50 08 mov %rdx,0x8(%rax) + 4106f0: 48 89 50 20 mov %rdx,0x20(%rax) + 4106f4: 48 89 50 18 mov %rdx,0x18(%rax) + 4106f8: 48 89 50 28 mov %rdx,0x28(%rax) + 4106fc: e8 8f f3 ff ff callq 40fa90 + 410701: 85 c0 test %eax,%eax + 410703: 0f 85 27 fb ff ff jne 410230 <_IO_wfile_seekoff+0xd0> + 410709: 49 8b b7 90 00 00 00 mov 0x90(%r15),%rsi + 410710: 41 83 27 ef andl $0xffffffef,(%r15) + 410714: 48 85 f6 test %rsi,%rsi + 410717: 78 12 js 41072b <_IO_wfile_seekoff+0x5cb> + 410719: 49 8b 87 d8 00 00 00 mov 0xd8(%r15),%rax + 410720: 31 d2 xor %edx,%edx + 410722: 4c 89 ff mov %r15,%rdi + 410725: ff 90 80 00 00 00 callq *0x80(%rax) + 41072b: 48 89 da mov %rbx,%rdx + 41072e: e9 84 fa ff ff jmpq 4101b7 <_IO_wfile_seekoff+0x57> + 410733: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 410738: 31 db xor %ebx,%ebx + 41073a: e9 78 fd ff ff jmpq 4104b7 <_IO_wfile_seekoff+0x357> + 41073f: 90 nop + 410740: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax + 410747: 4c 89 ef mov %r13,%rdi + 41074a: 48 8b 50 60 mov 0x60(%rax),%rdx + 41074e: 4c 8b 00 mov (%rax),%r8 + 410751: 4c 2b 40 10 sub 0x10(%rax),%r8 + 410755: 48 89 50 58 mov %rdx,0x58(%rax) + 410759: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax + 410760: 49 8b 4f 10 mov 0x10(%r15),%rcx + 410764: 49 8b 57 18 mov 0x18(%r15),%rdx + 410768: 49 c1 f8 02 sar $0x2,%r8 + 41076c: 48 8d 70 58 lea 0x58(%rax),%rsi + 410770: 41 ff 55 30 callq *0x30(%r13) + 410774: 49 8b 4f 18 mov 0x18(%r15),%rcx + 410778: 48 63 d0 movslq %eax,%rdx + 41077b: 48 8d 04 11 lea (%rcx,%rdx,1),%rax + 41077f: 49 89 47 08 mov %rax,0x8(%r15) + 410783: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax + 41078a: 48 8b 30 mov (%rax),%rsi + 41078d: 48 89 70 08 mov %rsi,0x8(%rax) + 410791: 49 8b 47 10 mov 0x10(%r15),%rax + 410795: 48 29 c8 sub %rcx,%rax + 410798: 48 29 d0 sub %rdx,%rax + 41079b: 48 29 c3 sub %rax,%rbx + 41079e: e9 59 fc ff ff jmpq 4103fc <_IO_wfile_seekoff+0x29c> + 4107a3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4107a8: 49 8b 87 d8 00 00 00 mov 0xd8(%r15),%rax + 4107af: 31 f6 xor %esi,%esi + 4107b1: ba 01 00 00 00 mov $0x1,%edx + 4107b6: 4c 89 ff mov %r15,%rdi + 4107b9: ff 90 80 00 00 00 callq *0x80(%rax) + 4107bf: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 4107c3: 0f 84 1f fd ff ff je 4104e8 <_IO_wfile_seekoff+0x388> + 4107c9: e9 fa fc ff ff jmpq 4104c8 <_IO_wfile_seekoff+0x368> + 4107ce: 66 90 xchg %ax,%ax + 4107d0: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax + 4107d7: 4d 89 f0 mov %r14,%r8 + 4107da: 4c 2b 44 24 08 sub 0x8(%rsp),%r8 + 4107df: 49 8b 4f 10 mov 0x10(%r15),%rcx + 4107e3: 49 8b 57 18 mov 0x18(%r15),%rdx + 4107e7: 48 89 df mov %rbx,%rdi + 4107ea: 48 8d 74 24 20 lea 0x20(%rsp),%rsi + 4107ef: 48 8b 40 60 mov 0x60(%rax),%rax + 4107f3: 49 c1 f8 02 sar $0x2,%r8 + 4107f7: 48 89 44 24 20 mov %rax,0x20(%rsp) + 4107fc: ff 53 30 callq *0x30(%rbx) + 4107ff: 49 8b 4f 10 mov 0x10(%r15),%rcx + 410803: 49 2b 4f 18 sub 0x18(%r15),%rcx + 410807: 48 63 d0 movslq %eax,%rdx + 41080a: 48 89 d3 mov %rdx,%rbx + 41080d: 48 29 cb sub %rcx,%rbx + 410810: e9 a2 fc ff ff jmpq 4104b7 <_IO_wfile_seekoff+0x357> + 410815: 0f 1f 00 nopl (%rax) + 410818: 4d 8b b7 a0 00 00 00 mov 0xa0(%r15),%r14 + 41081f: 49 8b 4e 20 mov 0x20(%r14),%rcx + 410823: 4d 8b 66 18 mov 0x18(%r14),%r12 + 410827: 48 89 cd mov %rcx,%rbp + 41082a: 48 89 4c 24 08 mov %rcx,0x8(%rsp) + 41082f: 4c 29 e5 sub %r12,%rbp + 410832: 48 89 ef mov %rbp,%rdi + 410835: e8 d6 d1 00 00 callq 41da10 <__libc_malloc> + 41083a: 4c 89 64 24 20 mov %r12,0x20(%rsp) + 41083f: 48 89 44 24 18 mov %rax,0x18(%rsp) + 410844: 49 89 c2 mov %rax,%r10 + 410847: 49 8b 46 60 mov 0x60(%r14),%rax + 41084b: 4c 01 d5 add %r10,%rbp + 41084e: 4d 89 d1 mov %r10,%r9 + 410851: 4c 89 e2 mov %r12,%rdx + 410854: 48 89 df mov %rbx,%rdi + 410857: 48 89 44 24 10 mov %rax,0x10(%rsp) + 41085c: 48 8d 44 24 18 lea 0x18(%rsp),%rax + 410861: 50 push %rax + 410862: 55 push %rbp + 410863: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx + 410868: 4c 89 54 24 10 mov %r10,0x10(%rsp) + 41086d: 4c 8d 44 24 30 lea 0x30(%rsp),%r8 + 410872: 48 8d 74 24 20 lea 0x20(%rsp),%rsi + 410877: ff 53 08 callq *0x8(%rbx) + 41087a: 5a pop %rdx + 41087b: 85 c0 test %eax,%eax + 41087d: 59 pop %rcx + 41087e: 4c 8b 14 24 mov (%rsp),%r10 + 410882: 75 15 jne 410899 <_IO_wfile_seekoff+0x739> + 410884: 48 8b 6c 24 18 mov 0x18(%rsp),%rbp + 410889: 4c 89 d7 mov %r10,%rdi + 41088c: 4c 29 d5 sub %r10,%rbp + 41088f: e8 1c d5 00 00 callq 41ddb0 <__cfree> + 410894: e9 bb fd ff ff jmpq 410654 <_IO_wfile_seekoff+0x4f4> + 410899: 4c 89 d7 mov %r10,%rdi + 41089c: e8 0f d5 00 00 callq 41ddb0 <__cfree> + 4108a1: ba ff ff ff ff mov $0xffffffff,%edx + 4108a6: e9 0c f9 ff ff jmpq 4101b7 <_IO_wfile_seekoff+0x57> + 4108ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +00000000004108b0 <_IO_wfile_underflow_mmap>: + 4108b0: 8b 07 mov (%rdi),%eax + 4108b2: a8 04 test $0x4,%al + 4108b4: 0f 85 f6 00 00 00 jne 4109b0 <_IO_wfile_underflow_mmap+0x100> + 4108ba: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax + 4108c1: 48 8b 10 mov (%rax),%rdx + 4108c4: 48 3b 50 08 cmp 0x8(%rax),%rdx + 4108c8: 0f 82 a2 00 00 00 jb 410970 <_IO_wfile_underflow_mmap+0xc0> + 4108ce: 55 push %rbp + 4108cf: 53 push %rbx + 4108d0: 48 89 fb mov %rdi,%rbx + 4108d3: 48 83 ec 18 sub $0x18,%rsp + 4108d7: 48 8b 57 08 mov 0x8(%rdi),%rdx + 4108db: 48 3b 57 10 cmp 0x10(%rdi),%rdx + 4108df: 48 8b af 98 00 00 00 mov 0x98(%rdi),%rbp + 4108e6: 0f 83 8c 00 00 00 jae 410978 <_IO_wfile_underflow_mmap+0xc8> + 4108ec: 48 83 78 30 00 cmpq $0x0,0x30(%rax) + 4108f1: 48 89 54 24 08 mov %rdx,0x8(%rsp) + 4108f6: 0f 84 d4 00 00 00 je 4109d0 <_IO_wfile_underflow_mmap+0x120> + 4108fc: 48 8b 50 58 mov 0x58(%rax),%rdx + 410900: 48 89 50 60 mov %rdx,0x60(%rax) + 410904: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 41090b: 48 8b 4b 10 mov 0x10(%rbx),%rcx + 41090f: 48 8b 53 08 mov 0x8(%rbx),%rdx + 410913: 4c 8b 48 30 mov 0x30(%rax),%r9 + 410917: 48 8d 78 08 lea 0x8(%rax),%rdi + 41091b: 48 8d 70 58 lea 0x58(%rax),%rsi + 41091f: 4c 89 08 mov %r9,(%rax) + 410922: 4c 89 48 10 mov %r9,0x10(%rax) + 410926: 57 push %rdi + 410927: ff 70 38 pushq 0x38(%rax) + 41092a: 48 89 ef mov %rbp,%rdi + 41092d: 4c 8d 44 24 18 lea 0x18(%rsp),%r8 + 410932: ff 55 18 callq *0x18(%rbp) + 410935: 48 8b 44 24 18 mov 0x18(%rsp),%rax + 41093a: 48 89 43 08 mov %rax,0x8(%rbx) + 41093e: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 410945: 59 pop %rcx + 410946: 5e pop %rsi + 410947: 48 8b 10 mov (%rax),%rdx + 41094a: 48 3b 50 08 cmp 0x8(%rax),%rdx + 41094e: 72 50 jb 4109a0 <_IO_wfile_underflow_mmap+0xf0> + 410950: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 410957: 64 c7 00 54 00 00 00 movl $0x54,%fs:(%rax) + 41095e: 83 0b 20 orl $0x20,(%rbx) + 410961: b8 ff ff ff ff mov $0xffffffff,%eax + 410966: 48 83 c4 18 add $0x18,%rsp + 41096a: 5b pop %rbx + 41096b: 5d pop %rbp + 41096c: c3 retq + 41096d: 0f 1f 00 nopl (%rax) + 410970: 8b 02 mov (%rdx),%eax + 410972: c3 retq + 410973: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 410978: e8 b3 24 00 00 callq 412e30 <_IO_file_underflow_mmap> + 41097d: 89 c2 mov %eax,%edx + 41097f: b8 ff ff ff ff mov $0xffffffff,%eax + 410984: 39 c2 cmp %eax,%edx + 410986: 74 de je 410966 <_IO_wfile_underflow_mmap+0xb6> + 410988: 48 8b 53 08 mov 0x8(%rbx),%rdx + 41098c: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 410993: e9 54 ff ff ff jmpq 4108ec <_IO_wfile_underflow_mmap+0x3c> + 410998: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41099f: 00 + 4109a0: 8b 02 mov (%rdx),%eax + 4109a2: 48 83 c4 18 add $0x18,%rsp + 4109a6: 5b pop %rbx + 4109a7: 5d pop %rbp + 4109a8: c3 retq + 4109a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4109b0: 83 c8 20 or $0x20,%eax + 4109b3: 89 07 mov %eax,(%rdi) + 4109b5: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 4109bc: 64 c7 00 09 00 00 00 movl $0x9,%fs:(%rax) + 4109c3: b8 ff ff ff ff mov $0xffffffff,%eax + 4109c8: c3 retq + 4109c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4109d0: 48 8b 78 40 mov 0x40(%rax),%rdi + 4109d4: 48 85 ff test %rdi,%rdi + 4109d7: 74 0b je 4109e4 <_IO_wfile_underflow_mmap+0x134> + 4109d9: e8 d2 d3 00 00 callq 41ddb0 <__cfree> + 4109de: 81 23 ff fe ff ff andl $0xfffffeff,(%rbx) + 4109e4: 48 89 df mov %rbx,%rdi + 4109e7: e8 b4 3c 05 00 callq 4646a0 <_IO_wdoallocbuf> + 4109ec: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 4109f3: e9 04 ff ff ff jmpq 4108fc <_IO_wfile_underflow_mmap+0x4c> + 4109f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4109ff: 00 + +0000000000410a00 <_IO_wfile_underflow_maybe_mmap>: + 410a00: 53 push %rbx + 410a01: 48 89 fb mov %rdi,%rbx + 410a04: e8 b7 22 00 00 callq 412cc0 <_IO_file_underflow_maybe_mmap> + 410a09: 83 f8 ff cmp $0xffffffff,%eax + 410a0c: 75 02 jne 410a10 <_IO_wfile_underflow_maybe_mmap+0x10> + 410a0e: 5b pop %rbx + 410a0f: c3 retq + 410a10: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 410a17: 48 89 df mov %rbx,%rdi + 410a1a: 5b pop %rbx + 410a1b: 48 8b 80 30 01 00 00 mov 0x130(%rax),%rax + 410a22: 48 8b 40 20 mov 0x20(%rax),%rax + 410a26: ff e0 jmpq *%rax + 410a28: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 410a2f: 00 + +0000000000410a30 <_IO_wdo_write>: + 410a30: 41 57 push %r15 + 410a32: 41 56 push %r14 + 410a34: 41 55 push %r13 + 410a36: 41 54 push %r12 + 410a38: 55 push %rbp + 410a39: 53 push %rbx + 410a3a: 48 89 fb mov %rdi,%rbx + 410a3d: 48 83 ec 38 sub $0x38,%rsp + 410a41: 48 85 d2 test %rdx,%rdx + 410a44: 0f 84 46 01 00 00 je 410b90 <_IO_wdo_write+0x160> + 410a4a: 4c 8b 4f 28 mov 0x28(%rdi),%r9 + 410a4e: 4c 39 4f 30 cmp %r9,0x30(%rdi) + 410a52: 49 89 f7 mov %rsi,%r15 + 410a55: 48 8b 87 98 00 00 00 mov 0x98(%rdi),%rax + 410a5c: 49 89 d4 mov %rdx,%r12 + 410a5f: 48 8b 77 20 mov 0x20(%rdi),%rsi + 410a63: 48 89 44 24 08 mov %rax,0x8(%rsp) + 410a68: 0f 84 5e 01 00 00 je 410bcc <_IO_wdo_write+0x19c> + 410a6e: 48 89 f5 mov %rsi,%rbp + 410a71: e9 a7 00 00 00 jmpq 410b1d <_IO_wdo_write+0xed> + 410a76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 410a7d: 00 00 00 + 410a80: 4c 8d 6c 24 20 lea 0x20(%rsp),%r13 + 410a85: 48 8d 44 24 30 lea 0x30(%rsp),%rax + 410a8a: 4d 89 e9 mov %r13,%r9 + 410a8d: 4c 89 ed mov %r13,%rbp + 410a90: 48 8b bb a0 00 00 00 mov 0xa0(%rbx),%rdi + 410a97: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 410a9c: 4b 8d 0c a7 lea (%r15,%r12,4),%rcx + 410aa0: 4c 89 fa mov %r15,%rdx + 410aa3: 48 8d 77 58 lea 0x58(%rdi),%rsi + 410aa7: 48 8d 7c 24 18 lea 0x18(%rsp),%rdi + 410aac: 57 push %rdi + 410aad: 50 push %rax + 410aae: 48 8b 44 24 18 mov 0x18(%rsp),%rax + 410ab3: 4c 8d 44 24 20 lea 0x20(%rsp),%r8 + 410ab8: 48 89 c7 mov %rax,%rdi + 410abb: ff 50 08 callq *0x8(%rax) + 410abe: 41 89 c6 mov %eax,%r14d + 410ac1: 48 89 ee mov %rbp,%rsi + 410ac4: 48 89 df mov %rbx,%rdi + 410ac7: 58 pop %rax + 410ac8: 5a pop %rdx + 410ac9: 48 8b 54 24 18 mov 0x18(%rsp),%rdx + 410ace: 4c 29 ea sub %r13,%rdx + 410ad1: e8 fa 26 00 00 callq 4131d0 <_IO_new_do_write> + 410ad6: 83 f8 ff cmp $0xffffffff,%eax + 410ad9: 0f 84 99 00 00 00 je 410b78 <_IO_wdo_write+0x148> + 410adf: 48 8b 54 24 10 mov 0x10(%rsp),%rdx + 410ae4: 48 89 d0 mov %rdx,%rax + 410ae7: 4c 29 f8 sub %r15,%rax + 410aea: 48 89 c6 mov %rax,%rsi + 410aed: 48 c1 fe 02 sar $0x2,%rsi + 410af1: 49 29 f4 sub %rsi,%r12 + 410af4: 45 85 f6 test %r14d,%r14d + 410af7: 74 10 je 410b09 <_IO_wdo_write+0xd9> + 410af9: 41 83 fe 01 cmp $0x1,%r14d + 410afd: 75 41 jne 410b40 <_IO_wdo_write+0x110> + 410aff: 48 83 c0 03 add $0x3,%rax + 410b03: 48 83 f8 06 cmp $0x6,%rax + 410b07: 76 37 jbe 410b40 <_IO_wdo_write+0x110> + 410b09: 4d 85 e4 test %r12,%r12 + 410b0c: 0f 84 7e 00 00 00 je 410b90 <_IO_wdo_write+0x160> + 410b12: 4c 8b 4b 28 mov 0x28(%rbx),%r9 + 410b16: 48 8b 6b 20 mov 0x20(%rbx),%rbp + 410b1a: 49 89 d7 mov %rdx,%r15 + 410b1d: 4c 89 c8 mov %r9,%rax + 410b20: 49 89 ed mov %rbp,%r13 + 410b23: 48 29 e8 sub %rbp,%rax + 410b26: 48 83 f8 0f cmp $0xf,%rax + 410b2a: 0f 86 50 ff ff ff jbe 410a80 <_IO_wdo_write+0x50> + 410b30: 48 8b 43 40 mov 0x40(%rbx),%rax + 410b34: e9 57 ff ff ff jmpq 410a90 <_IO_wdo_write+0x60> + 410b39: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 410b40: 48 8b 93 a0 00 00 00 mov 0xa0(%rbx),%rdx + 410b47: 31 c0 xor %eax,%eax + 410b49: 4d 85 e4 test %r12,%r12 + 410b4c: 0f 95 c0 setne %al + 410b4f: f7 d8 neg %eax + 410b51: f7 03 02 02 00 00 testl $0x202,(%rbx) + 410b57: 48 8b 4a 30 mov 0x30(%rdx),%rcx + 410b5b: 48 89 4a 10 mov %rcx,0x10(%rdx) + 410b5f: 48 89 0a mov %rcx,(%rdx) + 410b62: 48 89 4a 08 mov %rcx,0x8(%rdx) + 410b66: 48 89 4a 20 mov %rcx,0x20(%rdx) + 410b6a: 48 89 4a 18 mov %rcx,0x18(%rdx) + 410b6e: 75 04 jne 410b74 <_IO_wdo_write+0x144> + 410b70: 48 8b 4a 38 mov 0x38(%rdx),%rcx + 410b74: 48 89 4a 28 mov %rcx,0x28(%rdx) + 410b78: 48 83 c4 38 add $0x38,%rsp + 410b7c: 5b pop %rbx + 410b7d: 5d pop %rbp + 410b7e: 41 5c pop %r12 + 410b80: 41 5d pop %r13 + 410b82: 41 5e pop %r14 + 410b84: 41 5f pop %r15 + 410b86: c3 retq + 410b87: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 410b8e: 00 00 + 410b90: 48 8b 93 a0 00 00 00 mov 0xa0(%rbx),%rdx + 410b97: 8b 03 mov (%rbx),%eax + 410b99: 48 8b 4a 30 mov 0x30(%rdx),%rcx + 410b9d: 25 02 02 00 00 and $0x202,%eax + 410ba2: 48 89 4a 10 mov %rcx,0x10(%rdx) + 410ba6: 48 89 0a mov %rcx,(%rdx) + 410ba9: 48 89 4a 08 mov %rcx,0x8(%rdx) + 410bad: 48 89 4a 20 mov %rcx,0x20(%rdx) + 410bb1: 48 89 4a 18 mov %rcx,0x18(%rdx) + 410bb5: 74 b9 je 410b70 <_IO_wdo_write+0x140> + 410bb7: 48 89 4a 28 mov %rcx,0x28(%rdx) + 410bbb: 48 83 c4 38 add $0x38,%rsp + 410bbf: 31 c0 xor %eax,%eax + 410bc1: 5b pop %rbx + 410bc2: 5d pop %rbp + 410bc3: 41 5c pop %r12 + 410bc5: 41 5d pop %r13 + 410bc7: 41 5e pop %r14 + 410bc9: 41 5f pop %r15 + 410bcb: c3 retq + 410bcc: 49 39 f1 cmp %rsi,%r9 + 410bcf: 0f 84 99 fe ff ff je 410a6e <_IO_wdo_write+0x3e> + 410bd5: 4c 89 ca mov %r9,%rdx + 410bd8: 48 29 f2 sub %rsi,%rdx + 410bdb: e8 f0 25 00 00 callq 4131d0 <_IO_new_do_write> + 410be0: 83 f8 ff cmp $0xffffffff,%eax + 410be3: 74 93 je 410b78 <_IO_wdo_write+0x148> + 410be5: 4c 8b 4b 28 mov 0x28(%rbx),%r9 + 410be9: 48 8b 73 20 mov 0x20(%rbx),%rsi + 410bed: e9 7c fe ff ff jmpq 410a6e <_IO_wdo_write+0x3e> + 410bf2: 0f 1f 40 00 nopl 0x0(%rax) + 410bf6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 410bfd: 00 00 00 + +0000000000410c00 <_IO_wfile_overflow>: + 410c00: 8b 17 mov (%rdi),%edx + 410c02: f6 c2 08 test $0x8,%dl + 410c05: 74 19 je 410c20 <_IO_wfile_overflow+0x20> + 410c07: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 410c0e: 83 ca 20 or $0x20,%edx + 410c11: 89 17 mov %edx,(%rdi) + 410c13: 64 c7 00 09 00 00 00 movl $0x9,%fs:(%rax) + 410c1a: b8 ff ff ff ff mov $0xffffffff,%eax + 410c1f: c3 retq + 410c20: 55 push %rbp + 410c21: 53 push %rbx + 410c22: 89 f5 mov %esi,%ebp + 410c24: 48 89 fb mov %rdi,%rbx + 410c27: 48 83 ec 08 sub $0x8,%rsp + 410c2b: f6 c6 08 test $0x8,%dh + 410c2e: 75 6f jne 410c9f <_IO_wfile_overflow+0x9f> + 410c30: 48 8b 8f a0 00 00 00 mov 0xa0(%rdi),%rcx + 410c37: 48 83 79 18 00 cmpq $0x0,0x18(%rcx) + 410c3c: 0f 84 be 01 00 00 je 410e00 <_IO_wfile_overflow+0x200> + 410c42: 48 8b 01 mov (%rcx),%rax + 410c45: 48 8b 71 38 mov 0x38(%rcx),%rsi + 410c49: 48 39 f0 cmp %rsi,%rax + 410c4c: 0f 84 8e 01 00 00 je 410de0 <_IO_wfile_overflow+0x1e0> + 410c52: 48 89 71 28 mov %rsi,0x28(%rcx) + 410c56: 48 8b 71 08 mov 0x8(%rcx),%rsi + 410c5a: 48 89 41 20 mov %rax,0x20(%rcx) + 410c5e: 48 89 41 18 mov %rax,0x18(%rcx) + 410c62: 48 89 31 mov %rsi,(%rcx) + 410c65: 48 89 71 10 mov %rsi,0x10(%rcx) + 410c69: 48 8b 73 08 mov 0x8(%rbx),%rsi + 410c6d: 48 89 73 28 mov %rsi,0x28(%rbx) + 410c71: 48 89 73 20 mov %rsi,0x20(%rbx) + 410c75: 48 8b 73 40 mov 0x40(%rbx),%rsi + 410c79: 48 89 73 30 mov %rsi,0x30(%rbx) + 410c7d: 48 8b 73 10 mov 0x10(%rbx),%rsi + 410c81: 48 89 73 08 mov %rsi,0x8(%rbx) + 410c85: 48 89 73 18 mov %rsi,0x18(%rbx) + 410c89: 89 d6 mov %edx,%esi + 410c8b: 81 ce 00 08 00 00 or $0x800,%esi + 410c91: 81 e2 02 02 00 00 and $0x202,%edx + 410c97: 89 33 mov %esi,(%rbx) + 410c99: 74 04 je 410c9f <_IO_wfile_overflow+0x9f> + 410c9b: 48 89 41 28 mov %rax,0x28(%rcx) + 410c9f: 83 fd ff cmp $0xffffffff,%ebp + 410ca2: 74 7c je 410d20 <_IO_wfile_overflow+0x120> + 410ca4: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 410cab: 48 8b 48 20 mov 0x20(%rax),%rcx + 410caf: 48 3b 48 38 cmp 0x38(%rax),%rcx + 410cb3: 0f 84 9f 00 00 00 je 410d58 <_IO_wfile_overflow+0x158> + 410cb9: 48 8d 51 04 lea 0x4(%rcx),%rdx + 410cbd: 48 89 50 20 mov %rdx,0x20(%rax) + 410cc1: 89 29 mov %ebp,(%rcx) + 410cc3: 8b 0b mov (%rbx),%ecx + 410cc5: f6 c1 02 test $0x2,%cl + 410cc8: 74 3e je 410d08 <_IO_wfile_overflow+0x108> + 410cca: 8b 8b c0 00 00 00 mov 0xc0(%rbx),%ecx + 410cd0: 85 c9 test %ecx,%ecx + 410cd2: 0f 8e c8 00 00 00 jle 410da0 <_IO_wfile_overflow+0x1a0> + 410cd8: 48 8b 70 18 mov 0x18(%rax),%rsi + 410cdc: 48 89 df mov %rbx,%rdi + 410cdf: 48 29 f2 sub %rsi,%rdx + 410ce2: 48 c1 fa 02 sar $0x2,%rdx + 410ce6: e8 45 fd ff ff callq 410a30 <_IO_wdo_write> + 410ceb: 83 f8 ff cmp $0xffffffff,%eax + 410cee: 0f 94 c0 sete %al + 410cf1: 84 c0 test %al,%al + 410cf3: 74 1d je 410d12 <_IO_wfile_overflow+0x112> + 410cf5: 48 83 c4 08 add $0x8,%rsp + 410cf9: b8 ff ff ff ff mov $0xffffffff,%eax + 410cfe: 5b pop %rbx + 410cff: 5d pop %rbp + 410d00: c3 retq + 410d01: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 410d08: 80 e5 02 and $0x2,%ch + 410d0b: 74 05 je 410d12 <_IO_wfile_overflow+0x112> + 410d0d: 83 fd 0a cmp $0xa,%ebp + 410d10: 74 b8 je 410cca <_IO_wfile_overflow+0xca> + 410d12: 48 83 c4 08 add $0x8,%rsp + 410d16: 89 e8 mov %ebp,%eax + 410d18: 5b pop %rbx + 410d19: 5d pop %rbp + 410d1a: c3 retq + 410d1b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 410d20: 8b bb c0 00 00 00 mov 0xc0(%rbx),%edi + 410d26: 85 ff test %edi,%edi + 410d28: 0f 8e 92 00 00 00 jle 410dc0 <_IO_wfile_overflow+0x1c0> + 410d2e: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 410d35: 48 89 df mov %rbx,%rdi + 410d38: 48 8b 70 18 mov 0x18(%rax),%rsi + 410d3c: 48 8b 50 20 mov 0x20(%rax),%rdx + 410d40: 48 83 c4 08 add $0x8,%rsp + 410d44: 5b pop %rbx + 410d45: 5d pop %rbp + 410d46: 48 29 f2 sub %rsi,%rdx + 410d49: 48 c1 fa 02 sar $0x2,%rdx + 410d4d: e9 de fc ff ff jmpq 410a30 <_IO_wdo_write> + 410d52: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 410d58: 8b b3 c0 00 00 00 mov 0xc0(%rbx),%esi + 410d5e: 85 f6 test %esi,%esi + 410d60: 0f 8e c7 00 00 00 jle 410e2d <_IO_wfile_overflow+0x22d> + 410d66: 48 8b 70 18 mov 0x18(%rax),%rsi + 410d6a: 48 89 df mov %rbx,%rdi + 410d6d: 48 29 f1 sub %rsi,%rcx + 410d70: 48 89 ca mov %rcx,%rdx + 410d73: 48 c1 fa 02 sar $0x2,%rdx + 410d77: e8 b4 fc ff ff callq 410a30 <_IO_wdo_write> + 410d7c: 83 f8 ff cmp $0xffffffff,%eax + 410d7f: 0f 94 c0 sete %al + 410d82: 84 c0 test %al,%al + 410d84: 0f 85 6b ff ff ff jne 410cf5 <_IO_wfile_overflow+0xf5> + 410d8a: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 410d91: 48 8b 48 20 mov 0x20(%rax),%rcx + 410d95: e9 1f ff ff ff jmpq 410cb9 <_IO_wfile_overflow+0xb9> + 410d9a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 410da0: 48 8b 73 20 mov 0x20(%rbx),%rsi + 410da4: 48 8b 53 28 mov 0x28(%rbx),%rdx + 410da8: 48 89 df mov %rbx,%rdi + 410dab: 48 29 f2 sub %rsi,%rdx + 410dae: e8 1d 24 00 00 callq 4131d0 <_IO_new_do_write> + 410db3: 83 f8 ff cmp $0xffffffff,%eax + 410db6: 0f 94 c0 sete %al + 410db9: e9 33 ff ff ff jmpq 410cf1 <_IO_wfile_overflow+0xf1> + 410dbe: 66 90 xchg %ax,%ax + 410dc0: 48 8b 73 20 mov 0x20(%rbx),%rsi + 410dc4: 48 8b 53 28 mov 0x28(%rbx),%rdx + 410dc8: 48 83 c4 08 add $0x8,%rsp + 410dcc: 48 89 df mov %rbx,%rdi + 410dcf: 5b pop %rbx + 410dd0: 5d pop %rbp + 410dd1: 48 29 f2 sub %rsi,%rdx + 410dd4: e9 f7 23 00 00 jmpq 4131d0 <_IO_new_do_write> + 410dd9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 410de0: 48 8b 47 38 mov 0x38(%rdi),%rax + 410de4: 48 89 47 08 mov %rax,0x8(%rdi) + 410de8: 48 89 47 10 mov %rax,0x10(%rdi) + 410dec: 48 8b 41 30 mov 0x30(%rcx),%rax + 410df0: 48 89 01 mov %rax,(%rcx) + 410df3: 48 89 41 08 mov %rax,0x8(%rcx) + 410df7: e9 56 fe ff ff jmpq 410c52 <_IO_wfile_overflow+0x52> + 410dfc: 0f 1f 40 00 nopl 0x0(%rax) + 410e00: e8 9b 38 05 00 callq 4646a0 <_IO_wdoallocbuf> + 410e05: 48 8b 8b a0 00 00 00 mov 0xa0(%rbx),%rcx + 410e0c: 48 83 7b 20 00 cmpq $0x0,0x20(%rbx) + 410e11: 48 8b 41 30 mov 0x30(%rcx),%rax + 410e15: 48 89 41 10 mov %rax,0x10(%rcx) + 410e19: 48 89 01 mov %rax,(%rcx) + 410e1c: 48 89 41 08 mov %rax,0x8(%rcx) + 410e20: 74 29 je 410e4b <_IO_wfile_overflow+0x24b> + 410e22: 48 8b 71 38 mov 0x38(%rcx),%rsi + 410e26: 8b 13 mov (%rbx),%edx + 410e28: e9 25 fe ff ff jmpq 410c52 <_IO_wfile_overflow+0x52> + 410e2d: 48 8b 73 20 mov 0x20(%rbx),%rsi + 410e31: 48 8b 53 28 mov 0x28(%rbx),%rdx + 410e35: 48 89 df mov %rbx,%rdi + 410e38: 48 29 f2 sub %rsi,%rdx + 410e3b: e8 90 23 00 00 callq 4131d0 <_IO_new_do_write> + 410e40: 83 f8 ff cmp $0xffffffff,%eax + 410e43: 0f 94 c0 sete %al + 410e46: e9 37 ff ff ff jmpq 410d82 <_IO_wfile_overflow+0x182> + 410e4b: 48 89 df mov %rbx,%rdi + 410e4e: e8 ad 3f 00 00 callq 414e00 <_IO_doallocbuf> + 410e53: 48 8b 43 38 mov 0x38(%rbx),%rax + 410e57: 48 8b 8b a0 00 00 00 mov 0xa0(%rbx),%rcx + 410e5e: 48 89 43 08 mov %rax,0x8(%rbx) + 410e62: 48 89 43 10 mov %rax,0x10(%rbx) + 410e66: 48 8b 01 mov (%rcx),%rax + 410e69: eb b7 jmp 410e22 <_IO_wfile_overflow+0x222> + 410e6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000410e70 <_IO_wfile_sync>: + 410e70: 41 54 push %r12 + 410e72: 55 push %rbp + 410e73: 53 push %rbx + 410e74: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax + 410e7b: 48 89 fb mov %rdi,%rbx + 410e7e: 48 8b 50 20 mov 0x20(%rax),%rdx + 410e82: 48 8b 70 18 mov 0x18(%rax),%rsi + 410e86: 48 39 f2 cmp %rsi,%rdx + 410e89: 76 3c jbe 410ec7 <_IO_wfile_sync+0x57> + 410e8b: 8b 87 c0 00 00 00 mov 0xc0(%rdi),%eax + 410e91: 85 c0 test %eax,%eax + 410e93: 0f 8e a7 00 00 00 jle 410f40 <_IO_wfile_sync+0xd0> + 410e99: 48 29 f2 sub %rsi,%rdx + 410e9c: 48 c1 fa 02 sar $0x2,%rdx + 410ea0: e8 8b fb ff ff callq 410a30 <_IO_wdo_write> + 410ea5: 85 c0 test %eax,%eax + 410ea7: 0f 95 c0 setne %al + 410eaa: 84 c0 test %al,%al + 410eac: 74 12 je 410ec0 <_IO_wfile_sync+0x50> + 410eae: 5b pop %rbx + 410eaf: b8 ff ff ff ff mov $0xffffffff,%eax + 410eb4: 5d pop %rbp + 410eb5: 41 5c pop %r12 + 410eb7: c3 retq + 410eb8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 410ebf: 00 + 410ec0: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 410ec7: 48 8b 28 mov (%rax),%rbp + 410eca: 48 2b 68 08 sub 0x8(%rax),%rbp + 410ece: 48 c1 fd 02 sar $0x2,%rbp + 410ed2: 48 85 ed test %rbp,%rbp + 410ed5: 75 19 jne 410ef0 <_IO_wfile_sync+0x80> + 410ed7: 48 c7 83 90 00 00 00 movq $0xffffffffffffffff,0x90(%rbx) + 410ede: ff ff ff ff + 410ee2: 31 c0 xor %eax,%eax + 410ee4: 5b pop %rbx + 410ee5: 5d pop %rbp + 410ee6: 41 5c pop %r12 + 410ee8: c3 retq + 410ee9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 410ef0: 4c 8b a3 98 00 00 00 mov 0x98(%rbx),%r12 + 410ef7: 4c 89 e7 mov %r12,%rdi + 410efa: 41 ff 54 24 20 callq *0x20(%r12) + 410eff: 85 c0 test %eax,%eax + 410f01: 7e 7d jle 410f80 <_IO_wfile_sync+0x110> + 410f03: 48 63 f0 movslq %eax,%rsi + 410f06: 48 0f af f5 imul %rbp,%rsi + 410f0a: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 410f11: ba 01 00 00 00 mov $0x1,%edx + 410f16: 48 89 df mov %rbx,%rdi + 410f19: ff 90 80 00 00 00 callq *0x80(%rax) + 410f1f: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 410f23: 74 3b je 410f60 <_IO_wfile_sync+0xf0> + 410f25: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 410f2c: 48 8b 10 mov (%rax),%rdx + 410f2f: 48 89 50 08 mov %rdx,0x8(%rax) + 410f33: 48 8b 43 08 mov 0x8(%rbx),%rax + 410f37: 48 89 43 10 mov %rax,0x10(%rbx) + 410f3b: eb 9a jmp 410ed7 <_IO_wfile_sync+0x67> + 410f3d: 0f 1f 00 nopl (%rax) + 410f40: 48 8b 77 20 mov 0x20(%rdi),%rsi + 410f44: 48 8b 57 28 mov 0x28(%rdi),%rdx + 410f48: 48 29 f2 sub %rsi,%rdx + 410f4b: e8 80 22 00 00 callq 4131d0 <_IO_new_do_write> + 410f50: 85 c0 test %eax,%eax + 410f52: 0f 95 c0 setne %al + 410f55: e9 50 ff ff ff jmpq 410eaa <_IO_wfile_sync+0x3a> + 410f5a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 410f60: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 410f67: 64 83 38 1d cmpl $0x1d,%fs:(%rax) + 410f6b: 0f 85 3d ff ff ff jne 410eae <_IO_wfile_sync+0x3e> + 410f71: e9 61 ff ff ff jmpq 410ed7 <_IO_wfile_sync+0x67> + 410f76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 410f7d: 00 00 00 + 410f80: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 410f87: 49 89 e8 mov %rbp,%r8 + 410f8a: 4c 89 e7 mov %r12,%rdi + 410f8d: 48 8b 50 60 mov 0x60(%rax),%rdx + 410f91: 48 89 50 58 mov %rdx,0x58(%rax) + 410f95: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 410f9c: 48 8b 4b 10 mov 0x10(%rbx),%rcx + 410fa0: 48 8b 53 18 mov 0x18(%rbx),%rdx + 410fa4: 48 8d 70 58 lea 0x58(%rax),%rsi + 410fa8: 41 ff 54 24 30 callq *0x30(%r12) + 410fad: 48 8b 53 18 mov 0x18(%rbx),%rdx + 410fb1: 48 98 cltq + 410fb3: 48 8d 0c 02 lea (%rdx,%rax,1),%rcx + 410fb7: 48 2b 53 10 sub 0x10(%rbx),%rdx + 410fbb: 48 89 4b 08 mov %rcx,0x8(%rbx) + 410fbf: 48 8d 34 02 lea (%rdx,%rax,1),%rsi + 410fc3: e9 42 ff ff ff jmpq 410f0a <_IO_wfile_sync+0x9a> + 410fc8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 410fcf: 00 + +0000000000410fd0 <_IO_wfile_xsputn>: + 410fd0: 48 85 d2 test %rdx,%rdx + 410fd3: 0f 84 df 01 00 00 je 4111b8 <_IO_wfile_xsputn+0x1e8> + 410fd9: 41 57 push %r15 + 410fdb: 41 56 push %r14 + 410fdd: 41 55 push %r13 + 410fdf: 41 54 push %r12 + 410fe1: 49 89 fd mov %rdi,%r13 + 410fe4: 55 push %rbp + 410fe5: 53 push %rbx + 410fe6: 48 89 f5 mov %rsi,%rbp + 410fe9: 49 89 d4 mov %rdx,%r12 + 410fec: 48 83 ec 28 sub $0x28,%rsp + 410ff0: 41 8b 45 00 mov 0x0(%r13),%eax + 410ff4: 4c 8b b7 a0 00 00 00 mov 0xa0(%rdi),%r14 + 410ffb: 25 00 0a 00 00 and $0xa00,%eax + 411000: 49 8b 5e 28 mov 0x28(%r14),%rbx + 411004: 49 8b 7e 20 mov 0x20(%r14),%rdi + 411008: 3d 00 0a 00 00 cmp $0xa00,%eax + 41100d: 0f 84 cd 01 00 00 je 4111e0 <_IO_wfile_xsputn+0x210> + 411013: 48 29 fb sub %rdi,%rbx + 411016: 45 31 ff xor %r15d,%r15d + 411019: 48 c1 fb 02 sar $0x2,%rbx + 41101d: 48 85 db test %rbx,%rbx + 411020: 0f 84 9a 01 00 00 je 4111c0 <_IO_wfile_xsputn+0x1f0> + 411026: 49 39 dc cmp %rbx,%r12 + 411029: 49 0f 46 dc cmovbe %r12,%rbx + 41102d: 48 83 fb 14 cmp $0x14,%rbx + 411031: 0f 87 f9 01 00 00 ja 411230 <_IO_wfile_xsputn+0x260> + 411037: 48 8d 55 10 lea 0x10(%rbp),%rdx + 41103b: 8d 43 ff lea -0x1(%rbx),%eax + 41103e: 48 39 d7 cmp %rdx,%rdi + 411041: 48 8d 57 10 lea 0x10(%rdi),%rdx + 411045: 89 c1 mov %eax,%ecx + 411047: 40 0f 93 c6 setae %sil + 41104b: 48 39 d5 cmp %rdx,%rbp + 41104e: 0f 93 c2 setae %dl + 411051: 40 08 d6 or %dl,%sil + 411054: 0f 84 06 02 00 00 je 411260 <_IO_wfile_xsputn+0x290> + 41105a: 83 fb 0c cmp $0xc,%ebx + 41105d: 0f 86 fd 01 00 00 jbe 411260 <_IO_wfile_xsputn+0x290> + 411063: 49 89 e8 mov %rbp,%r8 + 411066: 41 83 e0 0f and $0xf,%r8d + 41106a: 49 c1 e8 02 shr $0x2,%r8 + 41106e: 49 f7 d8 neg %r8 + 411071: 41 83 e0 03 and $0x3,%r8d + 411075: 41 39 d8 cmp %ebx,%r8d + 411078: 44 0f 47 c3 cmova %ebx,%r8d + 41107c: 45 85 c0 test %r8d,%r8d + 41107f: 0f 84 cb 01 00 00 je 411250 <_IO_wfile_xsputn+0x280> + 411085: 8b 55 00 mov 0x0(%rbp),%edx + 411088: 41 83 f8 01 cmp $0x1,%r8d + 41108c: 48 8d 77 04 lea 0x4(%rdi),%rsi + 411090: 4c 8d 55 04 lea 0x4(%rbp),%r10 + 411094: 8d 4b fe lea -0x2(%rbx),%ecx + 411097: 89 17 mov %edx,(%rdi) + 411099: 74 28 je 4110c3 <_IO_wfile_xsputn+0xf3> + 41109b: 8b 55 04 mov 0x4(%rbp),%edx + 41109e: 41 83 f8 03 cmp $0x3,%r8d + 4110a2: 48 8d 77 08 lea 0x8(%rdi),%rsi + 4110a6: 4c 8d 55 08 lea 0x8(%rbp),%r10 + 4110aa: 8d 4b fd lea -0x3(%rbx),%ecx + 4110ad: 89 57 04 mov %edx,0x4(%rdi) + 4110b0: 75 11 jne 4110c3 <_IO_wfile_xsputn+0xf3> + 4110b2: 8b 55 08 mov 0x8(%rbp),%edx + 4110b5: 48 8d 77 0c lea 0xc(%rdi),%rsi + 4110b9: 4c 8d 55 0c lea 0xc(%rbp),%r10 + 4110bd: 8d 4b fc lea -0x4(%rbx),%ecx + 4110c0: 89 57 08 mov %edx,0x8(%rdi) + 4110c3: 89 da mov %ebx,%edx + 4110c5: 89 44 24 1c mov %eax,0x1c(%rsp) + 4110c9: 44 29 c2 sub %r8d,%edx + 4110cc: 45 89 c0 mov %r8d,%r8d + 4110cf: 89 54 24 14 mov %edx,0x14(%rsp) + 4110d3: 83 ea 04 sub $0x4,%edx + 4110d6: 49 c1 e0 02 shl $0x2,%r8 + 4110da: c1 ea 02 shr $0x2,%edx + 4110dd: 4e 8d 5c 05 00 lea 0x0(%rbp,%r8,1),%r11 + 4110e2: 83 c2 01 add $0x1,%edx + 4110e5: 44 8d 0c 95 00 00 00 lea 0x0(,%rdx,4),%r9d + 4110ec: 00 + 4110ed: 44 89 4c 24 18 mov %r9d,0x18(%rsp) + 4110f2: 4e 8d 0c 07 lea (%rdi,%r8,1),%r9 + 4110f6: 45 31 c0 xor %r8d,%r8d + 4110f9: 4c 89 4c 24 08 mov %r9,0x8(%rsp) + 4110fe: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 411103: 45 31 c9 xor %r9d,%r9d + 411106: 66 43 0f 6f 04 03 movdqa (%r11,%r8,1),%xmm0 + 41110c: 41 83 c1 01 add $0x1,%r9d + 411110: 42 0f 11 04 00 movups %xmm0,(%rax,%r8,1) + 411115: 49 83 c0 10 add $0x10,%r8 + 411119: 41 39 d1 cmp %edx,%r9d + 41111c: 72 e8 jb 411106 <_IO_wfile_xsputn+0x136> + 41111e: 44 8b 5c 24 18 mov 0x18(%rsp),%r11d + 411123: 8b 44 24 1c mov 0x1c(%rsp),%eax + 411127: 44 89 da mov %r11d,%edx + 41112a: 44 29 d9 sub %r11d,%ecx + 41112d: 48 c1 e2 02 shl $0x2,%rdx + 411131: 48 01 d6 add %rdx,%rsi + 411134: 49 01 d2 add %rdx,%r10 + 411137: 44 39 5c 24 14 cmp %r11d,0x14(%rsp) + 41113c: 74 1c je 41115a <_IO_wfile_xsputn+0x18a> + 41113e: 41 8b 12 mov (%r10),%edx + 411141: 85 c9 test %ecx,%ecx + 411143: 89 16 mov %edx,(%rsi) + 411145: 74 13 je 41115a <_IO_wfile_xsputn+0x18a> + 411147: 41 8b 52 04 mov 0x4(%r10),%edx + 41114b: 83 f9 01 cmp $0x1,%ecx + 41114e: 89 56 04 mov %edx,0x4(%rsi) + 411151: 74 07 je 41115a <_IO_wfile_xsputn+0x18a> + 411153: 41 8b 52 08 mov 0x8(%r10),%edx + 411157: 89 56 08 mov %edx,0x8(%rsi) + 41115a: 48 8d 04 85 04 00 00 lea 0x4(,%rax,4),%rax + 411161: 00 + 411162: 48 01 c7 add %rax,%rdi + 411165: 48 01 c5 add %rax,%rbp + 411168: 49 89 7e 20 mov %rdi,0x20(%r14) + 41116c: 4c 89 e0 mov %r12,%rax + 41116f: 48 29 d8 sub %rbx,%rax + 411172: 48 89 c3 mov %rax,%rbx + 411175: 75 4c jne 4111c3 <_IO_wfile_xsputn+0x1f3> + 411177: 45 85 ff test %r15d,%r15d + 41117a: 74 23 je 41119f <_IO_wfile_xsputn+0x1cf> + 41117c: 49 8b 85 a0 00 00 00 mov 0xa0(%r13),%rax + 411183: 48 8b 50 20 mov 0x20(%rax),%rdx + 411187: 48 8b 70 18 mov 0x18(%rax),%rsi + 41118b: 48 39 f2 cmp %rsi,%rdx + 41118e: 74 0f je 41119f <_IO_wfile_xsputn+0x1cf> + 411190: 48 29 f2 sub %rsi,%rdx + 411193: 4c 89 ef mov %r13,%rdi + 411196: 48 c1 fa 02 sar $0x2,%rdx + 41119a: e8 91 f8 ff ff callq 410a30 <_IO_wdo_write> + 41119f: 48 83 c4 28 add $0x28,%rsp + 4111a3: 4c 89 e0 mov %r12,%rax + 4111a6: 48 29 d8 sub %rbx,%rax + 4111a9: 5b pop %rbx + 4111aa: 5d pop %rbp + 4111ab: 41 5c pop %r12 + 4111ad: 41 5d pop %r13 + 4111af: 41 5e pop %r14 + 4111b1: 41 5f pop %r15 + 4111b3: c3 retq + 4111b4: 0f 1f 40 00 nopl 0x0(%rax) + 4111b8: 31 c0 xor %eax,%eax + 4111ba: c3 retq + 4111bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4111c0: 4c 89 e3 mov %r12,%rbx + 4111c3: 48 89 da mov %rbx,%rdx + 4111c6: 48 89 ee mov %rbp,%rsi + 4111c9: 4c 89 ef mov %r13,%rdi + 4111cc: e8 df 2d 05 00 callq 463fb0 <_IO_wdefault_xsputn> + 4111d1: 48 29 c3 sub %rax,%rbx + 4111d4: eb a1 jmp 411177 <_IO_wfile_xsputn+0x1a7> + 4111d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4111dd: 00 00 00 + 4111e0: 49 8b 5e 38 mov 0x38(%r14),%rbx + 4111e4: 45 31 ff xor %r15d,%r15d + 4111e7: 48 29 fb sub %rdi,%rbx + 4111ea: 48 c1 fb 02 sar $0x2,%rbx + 4111ee: 48 39 da cmp %rbx,%rdx + 4111f1: 0f 87 26 fe ff ff ja 41101d <_IO_wfile_xsputn+0x4d> + 4111f7: 48 8d 14 96 lea (%rsi,%rdx,4),%rdx + 4111fb: 48 39 d6 cmp %rdx,%rsi + 4111fe: 0f 83 19 fe ff ff jae 41101d <_IO_wfile_xsputn+0x4d> + 411204: 83 7a fc 0a cmpl $0xa,-0x4(%rdx) + 411208: 48 8d 42 fc lea -0x4(%rdx),%rax + 41120c: 75 0b jne 411219 <_IO_wfile_xsputn+0x249> + 41120e: eb 78 jmp 411288 <_IO_wfile_xsputn+0x2b8> + 411210: 48 83 e8 04 sub $0x4,%rax + 411214: 83 38 0a cmpl $0xa,(%rax) + 411217: 74 6f je 411288 <_IO_wfile_xsputn+0x2b8> + 411219: 48 39 c5 cmp %rax,%rbp + 41121c: 72 f2 jb 411210 <_IO_wfile_xsputn+0x240> + 41121e: 45 31 ff xor %r15d,%r15d + 411221: e9 f7 fd ff ff jmpq 41101d <_IO_wfile_xsputn+0x4d> + 411226: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41122d: 00 00 00 + 411230: 48 89 ee mov %rbp,%rsi + 411233: 48 89 da mov %rbx,%rdx + 411236: 48 8d 6c 9d 00 lea 0x0(%rbp,%rbx,4),%rbp + 41123b: e8 00 d1 02 00 callq 43e340 <__wmempcpy> + 411240: 49 89 46 20 mov %rax,0x20(%r14) + 411244: e9 23 ff ff ff jmpq 41116c <_IO_wfile_xsputn+0x19c> + 411249: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 411250: 49 89 ea mov %rbp,%r10 + 411253: 48 89 fe mov %rdi,%rsi + 411256: e9 68 fe ff ff jmpq 4110c3 <_IO_wfile_xsputn+0xf3> + 41125b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 411260: 89 c6 mov %eax,%esi + 411262: 31 d2 xor %edx,%edx + 411264: 48 83 c6 01 add $0x1,%rsi + 411268: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41126f: 00 + 411270: 8b 4c 95 00 mov 0x0(%rbp,%rdx,4),%ecx + 411274: 89 0c 97 mov %ecx,(%rdi,%rdx,4) + 411277: 48 83 c2 01 add $0x1,%rdx + 41127b: 48 39 f2 cmp %rsi,%rdx + 41127e: 75 f0 jne 411270 <_IO_wfile_xsputn+0x2a0> + 411280: e9 d5 fe ff ff jmpq 41115a <_IO_wfile_xsputn+0x18a> + 411285: 0f 1f 00 nopl (%rax) + 411288: 48 29 e8 sub %rbp,%rax + 41128b: 41 bf 01 00 00 00 mov $0x1,%r15d + 411291: 48 c1 f8 02 sar $0x2,%rax + 411295: 48 8d 58 01 lea 0x1(%rax),%rbx + 411299: e9 7f fd ff ff jmpq 41101d <_IO_wfile_xsputn+0x4d> + 41129e: 66 90 xchg %ax,%ax + +00000000004112a0 <_IO_vasprintf>: + 4112a0: 41 55 push %r13 + 4112a2: 41 54 push %r12 + 4112a4: 49 89 fc mov %rdi,%r12 + 4112a7: 55 push %rbp + 4112a8: 53 push %rbx + 4112a9: bf 64 00 00 00 mov $0x64,%edi + 4112ae: 48 89 f5 mov %rsi,%rbp + 4112b1: 49 89 d5 mov %rdx,%r13 + 4112b4: 48 81 ec f8 00 00 00 sub $0xf8,%rsp + 4112bb: e8 50 c7 00 00 callq 41da10 <__libc_malloc> + 4112c0: 48 85 c0 test %rax,%rax + 4112c3: 0f 84 17 01 00 00 je 4113e0 <_IO_vasprintf+0x140> + 4112c9: 48 89 c3 mov %rax,%rbx + 4112cc: 45 31 c0 xor %r8d,%r8d + 4112cf: 31 c9 xor %ecx,%ecx + 4112d1: ba ff ff ff ff mov $0xffffffff,%edx + 4112d6: be 00 80 00 00 mov $0x8000,%esi + 4112db: 48 89 e7 mov %rsp,%rdi + 4112de: 48 c7 84 24 88 00 00 movq $0x0,0x88(%rsp) + 4112e5: 00 00 00 00 00 + 4112ea: e8 d1 41 00 00 callq 4154c0 <_IO_no_init> + 4112ef: 48 89 d9 mov %rbx,%rcx + 4112f2: 48 89 de mov %rbx,%rsi + 4112f5: ba 64 00 00 00 mov $0x64,%edx + 4112fa: 48 89 e7 mov %rsp,%rdi + 4112fd: 48 c7 84 24 d8 00 00 movq $0x4a1f00,0xd8(%rsp) + 411304: 00 00 1f 4a 00 + 411309: e8 32 59 00 00 callq 416c40 <_IO_str_init_static_internal> + 41130e: 4c 89 ea mov %r13,%rdx + 411311: 48 89 ee mov %rbp,%rsi + 411314: 48 89 e7 mov %rsp,%rdi + 411317: 83 24 24 fe andl $0xfffffffe,(%rsp) + 41131b: 48 c7 84 24 e0 00 00 movq $0x41da10,0xe0(%rsp) + 411322: 00 10 da 41 00 + 411327: 48 c7 84 24 e8 00 00 movq $0x41ddb0,0xe8(%rsp) + 41132e: 00 b0 dd 41 00 + 411333: e8 98 35 04 00 callq 4548d0 <_IO_vfprintf> + 411338: 85 c0 test %eax,%eax + 41133a: 89 c3 mov %eax,%ebx + 41133c: 0f 88 8e 00 00 00 js 4113d0 <_IO_vasprintf+0x130> + 411342: 48 8b 44 24 20 mov 0x20(%rsp),%rax + 411347: 48 8b 6c 24 28 mov 0x28(%rsp),%rbp + 41134c: 48 8b 54 24 30 mov 0x30(%rsp),%rdx + 411351: 48 29 c5 sub %rax,%rbp + 411354: 48 29 c2 sub %rax,%rdx + 411357: 4c 8d 6d 01 lea 0x1(%rbp),%r13 + 41135b: 48 d1 ea shr %rdx + 41135e: 49 39 d5 cmp %rdx,%r13 + 411361: 72 2d jb 411390 <_IO_vasprintf+0xf0> + 411363: 48 8b 7c 24 38 mov 0x38(%rsp),%rdi + 411368: 4c 89 ee mov %r13,%rsi + 41136b: e8 00 cc 00 00 callq 41df70 <__libc_realloc> + 411370: 48 85 c0 test %rax,%rax + 411373: 49 89 04 24 mov %rax,(%r12) + 411377: 74 4c je 4113c5 <_IO_vasprintf+0x125> + 411379: c6 04 28 00 movb $0x0,(%rax,%rbp,1) + 41137d: 89 d8 mov %ebx,%eax + 41137f: 48 81 c4 f8 00 00 00 add $0xf8,%rsp + 411386: 5b pop %rbx + 411387: 5d pop %rbp + 411388: 41 5c pop %r12 + 41138a: 41 5d pop %r13 + 41138c: c3 retq + 41138d: 0f 1f 00 nopl (%rax) + 411390: 4c 89 ef mov %r13,%rdi + 411393: e8 78 c6 00 00 callq 41da10 <__libc_malloc> + 411398: 48 85 c0 test %rax,%rax + 41139b: 49 89 04 24 mov %rax,(%r12) + 41139f: 74 c2 je 411363 <_IO_vasprintf+0xc3> + 4113a1: 4c 8b 6c 24 38 mov 0x38(%rsp),%r13 + 4113a6: 48 89 ea mov %rbp,%rdx + 4113a9: 48 89 c7 mov %rax,%rdi + 4113ac: 4c 89 ee mov %r13,%rsi + 4113af: e8 6c ac 01 00 callq 42c020 + 4113b4: 4c 89 ef mov %r13,%rdi + 4113b7: e8 f4 c9 00 00 callq 41ddb0 <__cfree> + 4113bc: 49 8b 04 24 mov (%r12),%rax + 4113c0: 48 85 c0 test %rax,%rax + 4113c3: 75 b4 jne 411379 <_IO_vasprintf+0xd9> + 4113c5: 48 8b 44 24 38 mov 0x38(%rsp),%rax + 4113ca: 49 89 04 24 mov %rax,(%r12) + 4113ce: eb a9 jmp 411379 <_IO_vasprintf+0xd9> + 4113d0: 48 8b 7c 24 38 mov 0x38(%rsp),%rdi + 4113d5: e8 d6 c9 00 00 callq 41ddb0 <__cfree> + 4113da: 89 d8 mov %ebx,%eax + 4113dc: eb a1 jmp 41137f <_IO_vasprintf+0xdf> + 4113de: 66 90 xchg %ax,%ax + 4113e0: b8 ff ff ff ff mov $0xffffffff,%eax + 4113e5: eb 98 jmp 41137f <_IO_vasprintf+0xdf> + 4113e7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4113ee: 00 00 + +00000000004113f0 <__fcloseall>: + 4113f0: e9 fb 2d 00 00 jmpq 4141f0 <_IO_cleanup> + 4113f5: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4113fc: 00 00 00 + 4113ff: 90 nop + +0000000000411400 <__libc_message.constprop.0>: + 411400: 55 push %rbp + 411401: bf 14 1c 4a 00 mov $0x4a1c14,%edi + 411406: 48 89 e5 mov %rsp,%rbp + 411409: 41 57 push %r15 + 41140b: 41 56 push %r14 + 41140d: 48 8d 45 10 lea 0x10(%rbp),%rax + 411411: 41 55 push %r13 + 411413: 41 54 push %r12 + 411415: 53 push %rbx + 411416: 48 83 ec 58 sub $0x58,%rsp + 41141a: 48 89 45 90 mov %rax,-0x70(%rbp) + 41141e: 48 8d 45 a0 lea -0x60(%rbp),%rax + 411422: 48 89 55 b0 mov %rdx,-0x50(%rbp) + 411426: 48 89 4d b8 mov %rcx,-0x48(%rbp) + 41142a: 4c 89 45 c0 mov %r8,-0x40(%rbp) + 41142e: 4c 89 4d c8 mov %r9,-0x38(%rbp) + 411432: c7 45 88 10 00 00 00 movl $0x10,-0x78(%rbp) + 411439: 48 89 45 98 mov %rax,-0x68(%rbp) + 41143d: e8 5e 05 04 00 callq 4519a0 <__libc_secure_getenv> + 411442: 48 85 c0 test %rax,%rax + 411445: 74 09 je 411450 <__libc_message.constprop.0+0x50> + 411447: 80 38 00 cmpb $0x0,(%rax) + 41144a: 0f 85 26 01 00 00 jne 411576 <__libc_message.constprop.0+0x176> + 411450: be 02 09 00 00 mov $0x902,%esi + 411455: bf 27 1c 4a 00 mov $0x4a1c27,%edi + 41145a: b8 02 00 00 00 mov $0x2,%eax + 41145f: 0f 05 syscall + 411461: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 411467: 0f 87 2b 01 00 00 ja 411598 <__libc_message.constprop.0+0x198> + 41146d: 83 f8 ff cmp $0xffffffff,%eax + 411470: 41 89 c5 mov %eax,%r13d + 411473: 0f 84 fd 00 00 00 je 411576 <__libc_message.constprop.0+0x176> + 411479: 4c 63 e0 movslq %eax,%r12 + 41147c: 8b 45 88 mov -0x78(%rbp),%eax + 41147f: 83 f8 2f cmp $0x2f,%eax + 411482: 0f 87 ff 00 00 00 ja 411587 <__libc_message.constprop.0+0x187> + 411488: 89 c2 mov %eax,%edx + 41148a: 48 03 55 98 add -0x68(%rbp),%rdx + 41148e: 83 c0 08 add $0x8,%eax + 411491: 89 45 88 mov %eax,-0x78(%rbp) + 411494: 4c 8b 32 mov (%rdx),%r14 + 411497: 4c 89 f7 mov %r14,%rdi + 41149a: e8 b1 21 01 00 callq 423650 + 41149f: 48 83 ec 30 sub $0x30,%rsp + 4114a3: 49 89 c0 mov %rax,%r8 + 4114a6: 41 b9 14 00 00 00 mov $0x14,%r9d + 4114ac: 48 8d 44 24 0f lea 0xf(%rsp),%rax + 4114b1: 48 83 ec 20 sub $0x20,%rsp + 4114b5: 48 8d 5c 24 0f lea 0xf(%rsp),%rbx + 4114ba: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 4114be: 48 83 e3 f0 and $0xfffffffffffffff0,%rbx + 4114c2: 4c 89 30 mov %r14,(%rax) + 4114c5: 4c 89 40 08 mov %r8,0x8(%rax) + 4114c9: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) + 4114d0: 00 + 4114d1: 4c 89 33 mov %r14,(%rbx) + 4114d4: 4c 89 43 08 mov %r8,0x8(%rbx) + 4114d8: ba 01 00 00 00 mov $0x1,%edx + 4114dd: 48 89 de mov %rbx,%rsi + 4114e0: 4c 89 e7 mov %r12,%rdi + 4114e3: 44 89 c8 mov %r9d,%eax + 4114e6: 0f 05 syscall + 4114e8: 48 83 f8 fc cmp $0xfffffffffffffffc,%rax + 4114ec: 74 ea je 4114d8 <__libc_message.constprop.0+0xd8> + 4114ee: 4c 8b 3d 8b 9c 2b 00 mov 0x2b9c8b(%rip),%r15 # 6cb180 <_dl_pagesize> + 4114f5: 49 39 c0 cmp %rax,%r8 + 4114f8: b9 22 00 00 00 mov $0x22,%ecx + 4114fd: 41 0f 94 c4 sete %r12b + 411501: ba 03 00 00 00 mov $0x3,%edx + 411506: 45 31 c9 xor %r9d,%r9d + 411509: 31 ff xor %edi,%edi + 41150b: 4b 8d 04 38 lea (%r8,%r15,1),%rax + 41150f: 49 f7 df neg %r15 + 411512: 41 83 c8 ff or $0xffffffff,%r8d + 411516: 49 21 c7 and %rax,%r15 + 411519: 4c 89 fe mov %r15,%rsi + 41151c: e8 cf e6 02 00 callq 43fbf0 <__mmap> + 411521: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 411525: 49 89 c6 mov %rax,%r14 + 411528: 74 36 je 411560 <__libc_message.constprop.0+0x160> + 41152a: 48 8b 53 08 mov 0x8(%rbx),%rdx + 41152e: 48 8b 33 mov (%rbx),%rsi + 411531: 48 8d 78 04 lea 0x4(%rax),%rdi + 411535: 44 89 38 mov %r15d,(%rax) + 411538: e8 83 50 01 00 callq 4265c0 <__mempcpy> + 41153d: 4c 89 f7 mov %r14,%rdi + 411540: c6 00 00 movb $0x0,(%rax) + 411543: 48 87 3d d6 ab 2b 00 xchg %rdi,0x2babd6(%rip) # 6cc120 <__abort_msg> + 41154a: 48 85 ff test %rdi,%rdi + 41154d: 74 11 je 411560 <__libc_message.constprop.0+0x160> + 41154f: 8b 37 mov (%rdi),%esi + 411551: e8 5a e7 02 00 callq 43fcb0 <__munmap> + 411556: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41155d: 00 00 00 + 411560: 41 0f b6 f4 movzbl %r12b,%esi + 411564: 44 89 ea mov %r13d,%edx + 411567: bf 01 00 00 00 mov $0x1,%edi + 41156c: e8 1f ee fe ff callq 400390 + 411571: e8 8a c6 ff ff callq 40dc00 + 411576: 41 bc 02 00 00 00 mov $0x2,%r12d + 41157c: 41 bd 02 00 00 00 mov $0x2,%r13d + 411582: e9 f5 fe ff ff jmpq 41147c <__libc_message.constprop.0+0x7c> + 411587: 48 8b 55 90 mov -0x70(%rbp),%rdx + 41158b: 48 8d 42 08 lea 0x8(%rdx),%rax + 41158f: 48 89 45 90 mov %rax,-0x70(%rbp) + 411593: e9 fc fe ff ff jmpq 411494 <__libc_message.constprop.0+0x94> + 411598: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 41159f: f7 d8 neg %eax + 4115a1: 41 bc 02 00 00 00 mov $0x2,%r12d + 4115a7: 41 bd 02 00 00 00 mov $0x2,%r13d + 4115ad: 64 89 02 mov %eax,%fs:(%rdx) + 4115b0: e9 c7 fe ff ff jmpq 41147c <__libc_message.constprop.0+0x7c> + 4115b5: 90 nop + 4115b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4115bd: 00 00 00 + +00000000004115c0 <__libc_message>: + 4115c0: 55 push %rbp + 4115c1: 48 89 e5 mov %rsp,%rbp + 4115c4: 41 57 push %r15 + 4115c6: 41 56 push %r14 + 4115c8: 48 8d 45 10 lea 0x10(%rbp),%rax + 4115cc: 41 55 push %r13 + 4115ce: 41 54 push %r12 + 4115d0: 53 push %rbx + 4115d1: 41 89 ff mov %edi,%r15d + 4115d4: bf 14 1c 4a 00 mov $0x4a1c14,%edi + 4115d9: 48 89 f3 mov %rsi,%rbx + 4115dc: 48 83 ec 68 sub $0x68,%rsp + 4115e0: 48 89 45 90 mov %rax,-0x70(%rbp) + 4115e4: 48 8d 45 a0 lea -0x60(%rbp),%rax + 4115e8: 48 89 55 b0 mov %rdx,-0x50(%rbp) + 4115ec: 48 89 4d b8 mov %rcx,-0x48(%rbp) + 4115f0: 4c 89 45 c0 mov %r8,-0x40(%rbp) + 4115f4: 4c 89 4d c8 mov %r9,-0x38(%rbp) + 4115f8: c7 45 88 10 00 00 00 movl $0x10,-0x78(%rbp) + 4115ff: 48 89 45 98 mov %rax,-0x68(%rbp) + 411603: e8 98 03 04 00 callq 4519a0 <__libc_secure_getenv> + 411608: 48 85 c0 test %rax,%rax + 41160b: 74 09 je 411616 <__libc_message+0x56> + 41160d: 80 38 00 cmpb $0x0,(%rax) + 411610: 0f 85 81 01 00 00 jne 411797 <__libc_message+0x1d7> + 411616: be 02 09 00 00 mov $0x902,%esi + 41161b: bf 27 1c 4a 00 mov $0x4a1c27,%edi + 411620: b8 02 00 00 00 mov $0x2,%eax + 411625: 0f 05 syscall + 411627: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 41162d: 0f 87 58 01 00 00 ja 41178b <__libc_message+0x1cb> + 411633: 83 f8 ff cmp $0xffffffff,%eax + 411636: 89 85 7c ff ff ff mov %eax,-0x84(%rbp) + 41163c: 0f 84 55 01 00 00 je 411797 <__libc_message+0x1d7> + 411642: 44 0f b6 2b movzbl (%rbx),%r13d + 411646: 45 31 e4 xor %r12d,%r12d + 411649: 45 31 f6 xor %r14d,%r14d + 41164c: 45 84 ed test %r13b,%r13b + 41164f: 0f 84 5f 01 00 00 je 4117b4 <__libc_message+0x1f4> + 411655: 0f 1f 00 nopl (%rax) + 411658: 44 89 ea mov %r13d,%edx + 41165b: 48 89 d8 mov %rbx,%rax + 41165e: eb 15 jmp 411675 <__libc_message+0xb5> + 411660: 48 8d 78 01 lea 0x1(%rax),%rdi + 411664: be 25 00 00 00 mov $0x25,%esi + 411669: e8 72 b5 01 00 callq 42cbe0 <__strchrnul> + 41166e: 0f b6 10 movzbl (%rax),%edx + 411671: 84 d2 test %dl,%dl + 411673: 74 0b je 411680 <__libc_message+0xc0> + 411675: 80 fa 25 cmp $0x25,%dl + 411678: 75 e6 jne 411660 <__libc_message+0xa0> + 41167a: 80 78 01 73 cmpb $0x73,0x1(%rax) + 41167e: 75 e0 jne 411660 <__libc_message+0xa0> + 411680: 41 80 fd 25 cmp $0x25,%r13b + 411684: 74 3a je 4116c0 <__libc_message+0x100> + 411686: 48 89 c6 mov %rax,%rsi + 411689: 48 89 d9 mov %rbx,%rcx + 41168c: 48 29 de sub %rbx,%rsi + 41168f: 48 89 c3 mov %rax,%rbx + 411692: 48 83 ec 30 sub $0x30,%rsp + 411696: 45 8d 54 24 01 lea 0x1(%r12),%r10d + 41169b: 48 8d 54 24 0f lea 0xf(%rsp),%rdx + 4116a0: 48 83 e2 f0 and $0xfffffffffffffff0,%rdx + 4116a4: 48 89 0a mov %rcx,(%rdx) + 4116a7: 48 89 72 08 mov %rsi,0x8(%rdx) + 4116ab: 4c 89 72 10 mov %r14,0x10(%rdx) + 4116af: 44 0f b6 2b movzbl (%rbx),%r13d + 4116b3: 45 84 ed test %r13b,%r13b + 4116b6: 74 48 je 411700 <__libc_message+0x140> + 4116b8: 45 89 d4 mov %r10d,%r12d + 4116bb: 49 89 d6 mov %rdx,%r14 + 4116be: eb 98 jmp 411658 <__libc_message+0x98> + 4116c0: 80 7b 01 73 cmpb $0x73,0x1(%rbx) + 4116c4: 75 c0 jne 411686 <__libc_message+0xc6> + 4116c6: 8b 45 88 mov -0x78(%rbp),%eax + 4116c9: 83 f8 2f cmp $0x2f,%eax + 4116cc: 0f 87 ee 00 00 00 ja 4117c0 <__libc_message+0x200> + 4116d2: 89 c2 mov %eax,%edx + 4116d4: 48 03 55 98 add -0x68(%rbp),%rdx + 4116d8: 83 c0 08 add $0x8,%eax + 4116db: 89 45 88 mov %eax,-0x78(%rbp) + 4116de: 48 8b 0a mov (%rdx),%rcx + 4116e1: 48 83 c3 02 add $0x2,%rbx + 4116e5: 48 89 cf mov %rcx,%rdi + 4116e8: 48 89 8d 70 ff ff ff mov %rcx,-0x90(%rbp) + 4116ef: e8 5c 1f 01 00 callq 423650 + 4116f4: 48 8b 8d 70 ff ff ff mov -0x90(%rbp),%rcx + 4116fb: 48 89 c6 mov %rax,%rsi + 4116fe: eb 92 jmp 411692 <__libc_message+0xd2> + 411700: 4d 63 c2 movslq %r10d,%r8 + 411703: 49 63 d4 movslq %r12d,%rdx + 411706: 4c 89 c0 mov %r8,%rax + 411709: 48 c1 e2 04 shl $0x4,%rdx + 41170d: 48 c1 e0 04 shl $0x4,%rax + 411711: 48 83 c0 10 add $0x10,%rax + 411715: 48 29 c4 sub %rax,%rsp + 411718: 31 c0 xor %eax,%eax + 41171a: 4c 8d 6c 24 0f lea 0xf(%rsp),%r13 + 41171f: 49 83 e5 f0 and $0xfffffffffffffff0,%r13 + 411723: 4c 01 ea add %r13,%rdx + 411726: eb 17 jmp 41173f <__libc_message+0x17f> + 411728: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41172f: 00 + 411730: 49 8b 0e mov (%r14),%rcx + 411733: 49 8b 76 08 mov 0x8(%r14),%rsi + 411737: 48 83 ea 10 sub $0x10,%rdx + 41173b: 4d 8b 76 10 mov 0x10(%r14),%r14 + 41173f: 48 8d 1c 30 lea (%rax,%rsi,1),%rbx + 411743: 49 39 d5 cmp %rdx,%r13 + 411746: 48 89 0a mov %rcx,(%rdx) + 411749: 48 89 72 08 mov %rsi,0x8(%rdx) + 41174d: 48 89 d8 mov %rbx,%rax + 411750: 75 de jne 411730 <__libc_message+0x170> + 411752: 4c 63 b5 7c ff ff ff movslq -0x84(%rbp),%r14 + 411759: 41 b9 14 00 00 00 mov $0x14,%r9d + 41175f: 90 nop + 411760: 4c 89 c2 mov %r8,%rdx + 411763: 4c 89 ee mov %r13,%rsi + 411766: 4c 89 f7 mov %r14,%rdi + 411769: 44 89 c8 mov %r9d,%eax + 41176c: 0f 05 syscall + 41176e: 48 83 f8 fc cmp $0xfffffffffffffffc,%rax + 411772: 49 89 c4 mov %rax,%r12 + 411775: 74 e9 je 411760 <__libc_message+0x1a0> + 411777: 45 85 ff test %r15d,%r15d + 41177a: 75 55 jne 4117d1 <__libc_message+0x211> + 41177c: 48 8d 65 d8 lea -0x28(%rbp),%rsp + 411780: 5b pop %rbx + 411781: 41 5c pop %r12 + 411783: 41 5d pop %r13 + 411785: 41 5e pop %r14 + 411787: 41 5f pop %r15 + 411789: 5d pop %rbp + 41178a: c3 retq + 41178b: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 411792: f7 d8 neg %eax + 411794: 64 89 02 mov %eax,%fs:(%rdx) + 411797: 44 0f b6 2b movzbl (%rbx),%r13d + 41179b: 45 31 e4 xor %r12d,%r12d + 41179e: 45 31 f6 xor %r14d,%r14d + 4117a1: c7 85 7c ff ff ff 02 movl $0x2,-0x84(%rbp) + 4117a8: 00 00 00 + 4117ab: 45 84 ed test %r13b,%r13b + 4117ae: 0f 85 a4 fe ff ff jne 411658 <__libc_message+0x98> + 4117b4: 45 85 ff test %r15d,%r15d + 4117b7: 74 c3 je 41177c <__libc_message+0x1bc> + 4117b9: 31 f6 xor %esi,%esi + 4117bb: e9 b3 00 00 00 jmpq 411873 <__libc_message+0x2b3> + 4117c0: 48 8b 55 90 mov -0x70(%rbp),%rdx + 4117c4: 48 8d 42 08 lea 0x8(%rdx),%rax + 4117c8: 48 89 45 90 mov %rax,-0x70(%rbp) + 4117cc: e9 0d ff ff ff jmpq 4116de <__libc_message+0x11e> + 4117d1: 48 8b 05 a8 99 2b 00 mov 0x2b99a8(%rip),%rax # 6cb180 <_dl_pagesize> + 4117d8: 45 31 c9 xor %r9d,%r9d + 4117db: 31 ff xor %edi,%edi + 4117dd: 41 b8 ff ff ff ff mov $0xffffffff,%r8d + 4117e3: b9 22 00 00 00 mov $0x22,%ecx + 4117e8: ba 03 00 00 00 mov $0x3,%edx + 4117ed: 44 89 95 78 ff ff ff mov %r10d,-0x88(%rbp) + 4117f4: 4c 8d 1c 03 lea (%rbx,%rax,1),%r11 + 4117f8: 48 f7 d8 neg %rax + 4117fb: 49 21 c3 and %rax,%r11 + 4117fe: 4c 89 de mov %r11,%rsi + 411801: 4d 89 de mov %r11,%r14 + 411804: e8 e7 e3 02 00 callq 43fbf0 <__mmap> + 411809: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 41180d: 48 89 85 70 ff ff ff mov %rax,-0x90(%rbp) + 411814: 74 54 je 41186a <__libc_message+0x2aa> + 411816: 44 8b 95 78 ff ff ff mov -0x88(%rbp),%r10d + 41181d: 44 89 30 mov %r14d,(%rax) + 411820: 4d 8d 75 08 lea 0x8(%r13),%r14 + 411824: 48 83 c0 04 add $0x4,%rax + 411828: 41 8d 52 ff lea -0x1(%r10),%edx + 41182c: 48 c1 e2 04 shl $0x4,%rdx + 411830: 4d 8d 6c 15 18 lea 0x18(%r13,%rdx,1),%r13 + 411835: 49 8b 76 f8 mov -0x8(%r14),%rsi + 411839: 49 8b 16 mov (%r14),%rdx + 41183c: 48 89 c7 mov %rax,%rdi + 41183f: 49 83 c6 10 add $0x10,%r14 + 411843: e8 78 4d 01 00 callq 4265c0 <__mempcpy> + 411848: 4d 39 ee cmp %r13,%r14 + 41184b: 75 e8 jne 411835 <__libc_message+0x275> + 41184d: c6 00 00 movb $0x0,(%rax) + 411850: 48 8b bd 70 ff ff ff mov -0x90(%rbp),%rdi + 411857: 48 87 3d c2 a8 2b 00 xchg %rdi,0x2ba8c2(%rip) # 6cc120 <__abort_msg> + 41185e: 48 85 ff test %rdi,%rdi + 411861: 74 07 je 41186a <__libc_message+0x2aa> + 411863: 8b 37 mov (%rdi),%esi + 411865: e8 46 e4 02 00 callq 43fcb0 <__munmap> + 41186a: 31 f6 xor %esi,%esi + 41186c: 4c 39 e3 cmp %r12,%rbx + 41186f: 40 0f 94 c6 sete %sil + 411873: 8b 95 7c ff ff ff mov -0x84(%rbp),%edx + 411879: 44 89 ff mov %r15d,%edi + 41187c: e8 0f eb fe ff callq 400390 + 411881: e8 7a c3 ff ff callq 40dc00 + 411886: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41188d: 00 00 00 + +0000000000411890 <__libc_fatal>: + 411890: 48 89 fa mov %rdi,%rdx + 411893: 48 83 ec 08 sub $0x8,%rsp + 411897: be 99 c4 4b 00 mov $0x4bc499,%esi + 41189c: bf 01 00 00 00 mov $0x1,%edi + 4118a1: 31 c0 xor %eax,%eax + 4118a3: e8 58 fb ff ff callq 411400 <__libc_message.constprop.0> + 4118a8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4118af: 00 + +00000000004118b0 <__fgets_unlocked>: + 4118b0: 85 f6 test %esi,%esi + 4118b2: 0f 8e 88 00 00 00 jle 411940 <__fgets_unlocked+0x90> + 4118b8: 83 fe 01 cmp $0x1,%esi + 4118bb: 41 54 push %r12 + 4118bd: 55 push %rbp + 4118be: 53 push %rbx + 4118bf: 48 89 fb mov %rdi,%rbx + 4118c2: 74 6c je 411930 <__fgets_unlocked+0x80> + 4118c4: 8b 02 mov (%rdx),%eax + 4118c6: 48 89 d5 mov %rdx,%rbp + 4118c9: 83 ee 01 sub $0x1,%esi + 4118cc: 41 b8 01 00 00 00 mov $0x1,%r8d + 4118d2: b9 0a 00 00 00 mov $0xa,%ecx + 4118d7: 41 89 c4 mov %eax,%r12d + 4118da: 83 e0 df and $0xffffffdf,%eax + 4118dd: 89 02 mov %eax,(%rdx) + 4118df: 48 63 d6 movslq %esi,%rdx + 4118e2: 48 89 fe mov %rdi,%rsi + 4118e5: 48 89 ef mov %rbp,%rdi + 4118e8: 41 83 e4 20 and $0x20,%r12d + 4118ec: e8 1f 1b 05 00 callq 463410 <_IO_getline> + 4118f1: 48 85 c0 test %rax,%rax + 4118f4: 8b 55 00 mov 0x0(%rbp),%edx + 4118f7: 75 17 jne 411910 <__fgets_unlocked+0x60> + 4118f9: 31 db xor %ebx,%ebx + 4118fb: 41 09 d4 or %edx,%r12d + 4118fe: 48 89 d8 mov %rbx,%rax + 411901: 44 89 65 00 mov %r12d,0x0(%rbp) + 411905: 5b pop %rbx + 411906: 5d pop %rbp + 411907: 41 5c pop %r12 + 411909: c3 retq + 41190a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 411910: f6 c2 20 test $0x20,%dl + 411913: 74 0d je 411922 <__fgets_unlocked+0x72> + 411915: 48 c7 c1 d0 ff ff ff mov $0xffffffffffffffd0,%rcx + 41191c: 64 83 39 0b cmpl $0xb,%fs:(%rcx) + 411920: 75 d7 jne 4118f9 <__fgets_unlocked+0x49> + 411922: c6 04 03 00 movb $0x0,(%rbx,%rax,1) + 411926: 8b 55 00 mov 0x0(%rbp),%edx + 411929: eb d0 jmp 4118fb <__fgets_unlocked+0x4b> + 41192b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 411930: c6 07 00 movb $0x0,(%rdi) + 411933: 48 89 f8 mov %rdi,%rax + 411936: eb cd jmp 411905 <__fgets_unlocked+0x55> + 411938: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41193f: 00 + 411940: 31 c0 xor %eax,%eax + 411942: c3 retq + 411943: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41194a: 00 00 00 + 41194d: 0f 1f 00 nopl (%rax) + +0000000000411950 <_IO_file_seekoff_maybe_mmap>: + 411950: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 411957: 53 push %rbx + 411958: 48 89 fb mov %rdi,%rbx + 41195b: ff 90 80 00 00 00 callq *0x80(%rax) + 411961: 48 85 c0 test %rax,%rax + 411964: 78 0a js 411970 <_IO_file_seekoff_maybe_mmap+0x20> + 411966: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) + 41196d: 5b pop %rbx + 41196e: c3 retq + 41196f: 90 nop + 411970: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 411977: 5b pop %rbx + 411978: c3 retq + 411979: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +0000000000411980 <_IO_file_close>: + 411980: 48 63 7f 70 movslq 0x70(%rdi),%rdi + 411984: b8 03 00 00 00 mov $0x3,%eax + 411989: 0f 05 syscall + 41198b: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 411991: 76 11 jbe 4119a4 <_IO_file_close+0x24> + 411993: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 41199a: f7 d8 neg %eax + 41199c: 64 89 02 mov %eax,%fs:(%rdx) + 41199f: b8 ff ff ff ff mov $0xffffffff,%eax + 4119a4: f3 c3 repz retq + 4119a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4119ad: 00 00 00 + +00000000004119b0 <_IO_new_file_setbuf>: + 4119b0: 53 push %rbx + 4119b1: 48 89 fb mov %rdi,%rbx + 4119b4: e8 37 38 00 00 callq 4151f0 <_IO_default_setbuf> + 4119b9: 48 85 c0 test %rax,%rax + 4119bc: 74 1f je 4119dd <_IO_new_file_setbuf+0x2d> + 4119be: 48 8b 43 38 mov 0x38(%rbx),%rax + 4119c2: 48 89 43 30 mov %rax,0x30(%rbx) + 4119c6: 48 89 43 28 mov %rax,0x28(%rbx) + 4119ca: 48 89 43 20 mov %rax,0x20(%rbx) + 4119ce: 48 89 43 18 mov %rax,0x18(%rbx) + 4119d2: 48 89 43 08 mov %rax,0x8(%rbx) + 4119d6: 48 89 43 10 mov %rax,0x10(%rbx) + 4119da: 48 89 d8 mov %rbx,%rax + 4119dd: 5b pop %rbx + 4119de: c3 retq + 4119df: 90 nop + +00000000004119e0 <_IO_file_setbuf_mmap>: + 4119e0: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax + 4119e7: 53 push %rbx + 4119e8: 48 89 fb mov %rdi,%rbx + 4119eb: 48 c7 87 d8 00 00 00 movq $0x4a1e20,0xd8(%rdi) + 4119f2: 20 1e 4a 00 + 4119f6: 48 c7 80 30 01 00 00 movq $0x4a1b20,0x130(%rax) + 4119fd: 20 1b 4a 00 + 411a01: e8 ea 37 00 00 callq 4151f0 <_IO_default_setbuf> + 411a06: 48 85 c0 test %rax,%rax + 411a09: 74 25 je 411a30 <_IO_file_setbuf_mmap+0x50> + 411a0b: 48 8b 43 38 mov 0x38(%rbx),%rax + 411a0f: 48 89 43 30 mov %rax,0x30(%rbx) + 411a13: 48 89 43 28 mov %rax,0x28(%rbx) + 411a17: 48 89 43 20 mov %rax,0x20(%rbx) + 411a1b: 48 89 43 18 mov %rax,0x18(%rbx) + 411a1f: 48 89 43 08 mov %rax,0x8(%rbx) + 411a23: 48 89 43 10 mov %rax,0x10(%rbx) + 411a27: 48 89 d8 mov %rbx,%rax + 411a2a: 5b pop %rbx + 411a2b: c3 retq + 411a2c: 0f 1f 40 00 nopl 0x0(%rax) + 411a30: 48 8b 93 a0 00 00 00 mov 0xa0(%rbx),%rdx + 411a37: 48 c7 83 d8 00 00 00 movq $0x4a1d60,0xd8(%rbx) + 411a3e: 60 1d 4a 00 + 411a42: 48 c7 82 30 01 00 00 movq $0x4a1a60,0x130(%rdx) + 411a49: 60 1a 4a 00 + 411a4d: 5b pop %rbx + 411a4e: c3 retq + 411a4f: 90 nop + +0000000000411a50 <_IO_new_file_underflow>: + 411a50: 8b 07 mov (%rdi),%eax + 411a52: a8 04 test $0x4,%al + 411a54: 0f 85 16 02 00 00 jne 411c70 <_IO_new_file_underflow+0x220> + 411a5a: 48 8b 57 08 mov 0x8(%rdi),%rdx + 411a5e: 48 3b 57 10 cmp 0x10(%rdi),%rdx + 411a62: 0f 82 68 01 00 00 jb 411bd0 <_IO_new_file_underflow+0x180> + 411a68: 55 push %rbp + 411a69: 53 push %rbx + 411a6a: 48 89 fb mov %rdi,%rbx + 411a6d: 48 83 ec 08 sub $0x8,%rsp + 411a71: 48 83 7f 38 00 cmpq $0x0,0x38(%rdi) + 411a76: 0f 84 b4 01 00 00 je 411c30 <_IO_new_file_underflow+0x1e0> + 411a7c: a9 02 02 00 00 test $0x202,%eax + 411a81: 0f 84 d9 00 00 00 je 411b60 <_IO_new_file_underflow+0x110> + 411a87: 48 8b 2d b2 8c 2b 00 mov 0x2b8cb2(%rip),%rbp # 6ca740 <_IO_stdout> + 411a8e: 8b 55 00 mov 0x0(%rbp),%edx + 411a91: 89 d0 mov %edx,%eax + 411a93: 25 00 80 00 00 and $0x8000,%eax + 411a98: 0f 85 3a 01 00 00 jne 411bd8 <_IO_new_file_underflow+0x188> + 411a9e: 4c 8b 85 88 00 00 00 mov 0x88(%rbp),%r8 + 411aa5: 64 4c 8b 0c 25 10 00 mov %fs:0x10,%r9 + 411aac: 00 00 + 411aae: 4d 3b 48 08 cmp 0x8(%r8),%r9 + 411ab2: 0f 84 a8 01 00 00 je 411c60 <_IO_new_file_underflow+0x210> + 411ab8: be 01 00 00 00 mov $0x1,%esi + 411abd: 83 3d f8 b6 2b 00 00 cmpl $0x0,0x2bb6f8(%rip) # 6cd1bc <__libc_multiple_threads> + 411ac4: 74 09 je 411acf <_IO_new_file_underflow+0x7f> + 411ac6: f0 41 0f b1 30 lock cmpxchg %esi,(%r8) + 411acb: 75 08 jne 411ad5 <_IO_new_file_underflow+0x85> + 411acd: eb 1c jmp 411aeb <_IO_new_file_underflow+0x9b> + 411acf: 41 0f b1 30 cmpxchg %esi,(%r8) + 411ad3: 74 16 je 411aeb <_IO_new_file_underflow+0x9b> + 411ad5: 49 8d 38 lea (%r8),%rdi + 411ad8: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 411adf: e8 ec 0a 03 00 callq 4425d0 <__lll_lock_wait_private> + 411ae4: 48 81 c4 80 00 00 00 add $0x80,%rsp + 411aeb: 48 8b 3d 4e 8c 2b 00 mov 0x2b8c4e(%rip),%rdi # 6ca740 <_IO_stdout> + 411af2: 4c 8b 85 88 00 00 00 mov 0x88(%rbp),%r8 + 411af9: 8b 17 mov (%rdi),%edx + 411afb: 4d 89 48 08 mov %r9,0x8(%r8) + 411aff: 81 e2 88 02 00 00 and $0x288,%edx + 411b05: 41 83 40 04 01 addl $0x1,0x4(%r8) + 411b0a: 81 fa 80 02 00 00 cmp $0x280,%edx + 411b10: 0f 84 d7 00 00 00 je 411bed <_IO_new_file_underflow+0x19d> + 411b16: f7 45 00 00 80 00 00 testl $0x8000,0x0(%rbp) + 411b1d: 75 41 jne 411b60 <_IO_new_file_underflow+0x110> + 411b1f: 48 8b 95 88 00 00 00 mov 0x88(%rbp),%rdx + 411b26: 83 6a 04 01 subl $0x1,0x4(%rdx) + 411b2a: 75 34 jne 411b60 <_IO_new_file_underflow+0x110> + 411b2c: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) + 411b33: 00 + 411b34: 83 3d 81 b6 2b 00 00 cmpl $0x0,0x2bb681(%rip) # 6cd1bc <__libc_multiple_threads> + 411b3b: 74 07 je 411b44 <_IO_new_file_underflow+0xf4> + 411b3d: f0 ff 0a lock decl (%rdx) + 411b40: 75 06 jne 411b48 <_IO_new_file_underflow+0xf8> + 411b42: eb 1a jmp 411b5e <_IO_new_file_underflow+0x10e> + 411b44: ff 0a decl (%rdx) + 411b46: 74 16 je 411b5e <_IO_new_file_underflow+0x10e> + 411b48: 48 8d 3a lea (%rdx),%rdi + 411b4b: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 411b52: e8 a9 0a 03 00 callq 442600 <__lll_unlock_wake_private> + 411b57: 48 81 c4 80 00 00 00 add $0x80,%rsp + 411b5e: 66 90 xchg %ax,%ax + 411b60: 48 89 df mov %rbx,%rdi + 411b63: e8 58 2e 00 00 callq 4149c0 <_IO_switch_to_get_mode> + 411b68: 48 8b 73 38 mov 0x38(%rbx),%rsi + 411b6c: 48 8b 53 40 mov 0x40(%rbx),%rdx + 411b70: 48 89 df mov %rbx,%rdi + 411b73: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 411b7a: 48 29 f2 sub %rsi,%rdx + 411b7d: 48 89 73 08 mov %rsi,0x8(%rbx) + 411b81: 48 89 73 18 mov %rsi,0x18(%rbx) + 411b85: 48 89 73 10 mov %rsi,0x10(%rbx) + 411b89: 48 89 73 30 mov %rsi,0x30(%rbx) + 411b8d: 48 89 73 28 mov %rsi,0x28(%rbx) + 411b91: 48 89 73 20 mov %rsi,0x20(%rbx) + 411b95: ff 50 70 callq *0x70(%rax) + 411b98: 48 83 f8 00 cmp $0x0,%rax + 411b9c: 7e 6a jle 411c08 <_IO_new_file_underflow+0x1b8> + 411b9e: 48 8b 93 90 00 00 00 mov 0x90(%rbx),%rdx + 411ba5: 48 01 43 10 add %rax,0x10(%rbx) + 411ba9: 48 83 fa ff cmp $0xffffffffffffffff,%rdx + 411bad: 74 0a je 411bb9 <_IO_new_file_underflow+0x169> + 411baf: 48 01 c2 add %rax,%rdx + 411bb2: 48 89 93 90 00 00 00 mov %rdx,0x90(%rbx) + 411bb9: 48 8b 43 08 mov 0x8(%rbx),%rax + 411bbd: 0f b6 00 movzbl (%rax),%eax + 411bc0: 48 83 c4 08 add $0x8,%rsp + 411bc4: 5b pop %rbx + 411bc5: 5d pop %rbp + 411bc6: c3 retq + 411bc7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 411bce: 00 00 + 411bd0: 0f b6 02 movzbl (%rdx),%eax + 411bd3: c3 retq + 411bd4: 0f 1f 40 00 nopl 0x0(%rax) + 411bd8: 81 e2 88 02 00 00 and $0x288,%edx + 411bde: 81 fa 80 02 00 00 cmp $0x280,%edx + 411be4: 0f 85 76 ff ff ff jne 411b60 <_IO_new_file_underflow+0x110> + 411bea: 48 89 ef mov %rbp,%rdi + 411bed: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 411bf4: be ff ff ff ff mov $0xffffffff,%esi + 411bf9: ff 50 18 callq *0x18(%rax) + 411bfc: e9 15 ff ff ff jmpq 411b16 <_IO_new_file_underflow+0xc6> + 411c01: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 411c08: 8b 03 mov (%rbx),%eax + 411c0a: 75 4c jne 411c58 <_IO_new_file_underflow+0x208> + 411c0c: 83 c8 10 or $0x10,%eax + 411c0f: 89 03 mov %eax,(%rbx) + 411c11: 48 c7 83 90 00 00 00 movq $0xffffffffffffffff,0x90(%rbx) + 411c18: ff ff ff ff + 411c1c: 48 83 c4 08 add $0x8,%rsp + 411c20: b8 ff ff ff ff mov $0xffffffff,%eax + 411c25: 5b pop %rbx + 411c26: 5d pop %rbp + 411c27: c3 retq + 411c28: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 411c2f: 00 + 411c30: 48 8b 7f 48 mov 0x48(%rdi),%rdi + 411c34: 48 85 ff test %rdi,%rdi + 411c37: 74 0b je 411c44 <_IO_new_file_underflow+0x1f4> + 411c39: e8 72 c1 00 00 callq 41ddb0 <__cfree> + 411c3e: 81 23 ff fe ff ff andl $0xfffffeff,(%rbx) + 411c44: 48 89 df mov %rbx,%rdi + 411c47: e8 b4 31 00 00 callq 414e00 <_IO_doallocbuf> + 411c4c: 8b 03 mov (%rbx),%eax + 411c4e: e9 29 fe ff ff jmpq 411a7c <_IO_new_file_underflow+0x2c> + 411c53: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 411c58: 83 c8 20 or $0x20,%eax + 411c5b: eb b2 jmp 411c0f <_IO_new_file_underflow+0x1bf> + 411c5d: 0f 1f 00 nopl (%rax) + 411c60: 48 89 ef mov %rbp,%rdi + 411c63: e9 97 fe ff ff jmpq 411aff <_IO_new_file_underflow+0xaf> + 411c68: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 411c6f: 00 + 411c70: 83 c8 20 or $0x20,%eax + 411c73: 89 07 mov %eax,(%rdi) + 411c75: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 411c7c: 64 c7 00 09 00 00 00 movl $0x9,%fs:(%rax) + 411c83: b8 ff ff ff ff mov $0xffffffff,%eax + 411c88: c3 retq + 411c89: f7 45 00 00 80 00 00 testl $0x8000,0x0(%rbp) + 411c90: 48 89 c6 mov %rax,%rsi + 411c93: 75 3f jne 411cd4 <_IO_new_file_underflow+0x284> + 411c95: 48 8b 95 88 00 00 00 mov 0x88(%rbp),%rdx + 411c9c: 83 6a 04 01 subl $0x1,0x4(%rdx) + 411ca0: 75 32 jne 411cd4 <_IO_new_file_underflow+0x284> + 411ca2: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) + 411ca9: 00 + 411caa: 83 3d 0b b5 2b 00 00 cmpl $0x0,0x2bb50b(%rip) # 6cd1bc <__libc_multiple_threads> + 411cb1: 74 07 je 411cba <_IO_new_file_underflow+0x26a> + 411cb3: f0 ff 0a lock decl (%rdx) + 411cb6: 75 06 jne 411cbe <_IO_new_file_underflow+0x26e> + 411cb8: eb 1a jmp 411cd4 <_IO_new_file_underflow+0x284> + 411cba: ff 0a decl (%rdx) + 411cbc: 74 16 je 411cd4 <_IO_new_file_underflow+0x284> + 411cbe: 48 8d 3a lea (%rdx),%rdi + 411cc1: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 411cc8: e8 33 09 03 00 callq 442600 <__lll_unlock_wake_private> + 411ccd: 48 81 c4 80 00 00 00 add $0x80,%rsp + 411cd4: 48 89 f7 mov %rsi,%rdi + 411cd7: e8 94 a8 08 00 callq 49c570 <_Unwind_Resume> + 411cdc: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000411ce0 <_IO_new_file_seekoff>: + 411ce0: 41 56 push %r14 + 411ce2: 41 55 push %r13 + 411ce4: 41 54 push %r12 + 411ce6: 55 push %rbp + 411ce7: 53 push %rbx + 411ce8: 48 89 fb mov %rdi,%rbx + 411ceb: 48 81 ec 90 00 00 00 sub $0x90,%rsp + 411cf2: 85 c9 test %ecx,%ecx + 411cf4: 0f 84 d6 02 00 00 je 411fd0 <_IO_new_file_seekoff+0x2f0> + 411cfa: 48 8b 47 10 mov 0x10(%rdi),%rax + 411cfe: 48 39 47 18 cmp %rax,0x18(%rdi) + 411d02: 48 89 f5 mov %rsi,%rbp + 411d05: 41 89 d4 mov %edx,%r12d + 411d08: 0f 84 ca 00 00 00 je 411dd8 <_IO_new_file_seekoff+0xf8> + 411d0e: 48 8b 57 28 mov 0x28(%rdi),%rdx + 411d12: 48 8b 47 20 mov 0x20(%rdi),%rax + 411d16: 45 31 ed xor %r13d,%r13d + 411d19: 48 39 c2 cmp %rax,%rdx + 411d1c: 0f 86 ce 00 00 00 jbe 411df0 <_IO_new_file_seekoff+0x110> + 411d22: 48 89 df mov %rbx,%rdi + 411d25: e8 96 2c 00 00 callq 4149c0 <_IO_switch_to_get_mode> + 411d2a: 85 c0 test %eax,%eax + 411d2c: 0f 85 06 03 00 00 jne 412038 <_IO_new_file_seekoff+0x358> + 411d32: 48 83 7b 38 00 cmpq $0x0,0x38(%rbx) + 411d37: 0f 84 ca 00 00 00 je 411e07 <_IO_new_file_seekoff+0x127> + 411d3d: 41 83 fc 01 cmp $0x1,%r12d + 411d41: 0f 84 09 01 00 00 je 411e50 <_IO_new_file_seekoff+0x170> + 411d47: 41 83 fc 02 cmp $0x2,%r12d + 411d4b: 0f 85 bf 01 00 00 jne 411f10 <_IO_new_file_seekoff+0x230> + 411d51: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 411d58: 48 89 e6 mov %rsp,%rsi + 411d5b: 48 89 df mov %rbx,%rdi + 411d5e: ff 90 90 00 00 00 callq *0x90(%rax) + 411d64: 85 c0 test %eax,%eax + 411d66: 0f 84 84 01 00 00 je 411ef0 <_IO_new_file_seekoff+0x210> + 411d6c: 48 89 df mov %rbx,%rdi + 411d6f: e8 2c 46 00 00 callq 4163a0 <_IO_unsave_markers> + 411d74: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 411d7b: 48 89 ee mov %rbp,%rsi + 411d7e: 48 c7 c5 ff ff ff ff mov $0xffffffffffffffff,%rbp + 411d85: 44 89 e2 mov %r12d,%edx + 411d88: 48 89 df mov %rbx,%rdi + 411d8b: ff 90 80 00 00 00 callq *0x80(%rax) + 411d91: 48 39 e8 cmp %rbp,%rax + 411d94: 74 29 je 411dbf <_IO_new_file_seekoff+0xdf> + 411d96: 48 8b 53 38 mov 0x38(%rbx),%rdx + 411d9a: 83 23 ef andl $0xffffffef,(%rbx) + 411d9d: 48 89 c5 mov %rax,%rbp + 411da0: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) + 411da7: 48 89 53 18 mov %rdx,0x18(%rbx) + 411dab: 48 89 53 08 mov %rdx,0x8(%rbx) + 411daf: 48 89 53 10 mov %rdx,0x10(%rbx) + 411db3: 48 89 53 28 mov %rdx,0x28(%rbx) + 411db7: 48 89 53 20 mov %rdx,0x20(%rbx) + 411dbb: 48 89 53 30 mov %rdx,0x30(%rbx) + 411dbf: 48 81 c4 90 00 00 00 add $0x90,%rsp + 411dc6: 48 89 e8 mov %rbp,%rax + 411dc9: 5b pop %rbx + 411dca: 5d pop %rbp + 411dcb: 41 5c pop %r12 + 411dcd: 41 5d pop %r13 + 411dcf: 41 5e pop %r14 + 411dd1: c3 retq + 411dd2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 411dd8: 48 8b 47 20 mov 0x20(%rdi),%rax + 411ddc: 48 8b 57 28 mov 0x28(%rdi),%rdx + 411de0: 48 39 d0 cmp %rdx,%rax + 411de3: 0f 85 2d ff ff ff jne 411d16 <_IO_new_file_seekoff+0x36> + 411de9: 41 bd 01 00 00 00 mov $0x1,%r13d + 411def: 90 nop + 411df0: f7 03 00 08 00 00 testl $0x800,(%rbx) + 411df6: 0f 85 26 ff ff ff jne 411d22 <_IO_new_file_seekoff+0x42> + 411dfc: 48 83 7b 38 00 cmpq $0x0,0x38(%rbx) + 411e01: 0f 85 36 ff ff ff jne 411d3d <_IO_new_file_seekoff+0x5d> + 411e07: 48 8b 7b 18 mov 0x18(%rbx),%rdi + 411e0b: 48 85 ff test %rdi,%rdi + 411e0e: 74 0b je 411e1b <_IO_new_file_seekoff+0x13b> + 411e10: e8 9b bf 00 00 callq 41ddb0 <__cfree> + 411e15: 81 23 ff fe ff ff andl $0xfffffeff,(%rbx) + 411e1b: 48 89 df mov %rbx,%rdi + 411e1e: e8 dd 2f 00 00 callq 414e00 <_IO_doallocbuf> + 411e23: 48 8b 43 38 mov 0x38(%rbx),%rax + 411e27: 41 83 fc 01 cmp $0x1,%r12d + 411e2b: 48 89 43 28 mov %rax,0x28(%rbx) + 411e2f: 48 89 43 20 mov %rax,0x20(%rbx) + 411e33: 48 89 43 30 mov %rax,0x30(%rbx) + 411e37: 48 89 43 18 mov %rax,0x18(%rbx) + 411e3b: 48 89 43 08 mov %rax,0x8(%rbx) + 411e3f: 48 89 43 10 mov %rax,0x10(%rbx) + 411e43: 0f 85 fe fe ff ff jne 411d47 <_IO_new_file_seekoff+0x67> + 411e49: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 411e50: 48 8b 43 10 mov 0x10(%rbx),%rax + 411e54: 48 2b 43 08 sub 0x8(%rbx),%rax + 411e58: 48 8b b3 90 00 00 00 mov 0x90(%rbx),%rsi + 411e5f: 48 29 c5 sub %rax,%rbp + 411e62: 48 83 fe ff cmp $0xffffffffffffffff,%rsi + 411e66: 0f 84 00 ff ff ff je 411d6c <_IO_new_file_seekoff+0x8c> + 411e6c: 48 01 f5 add %rsi,%rbp + 411e6f: 0f 88 ae 01 00 00 js 412023 <_IO_new_file_seekoff+0x343> + 411e75: 45 31 e4 xor %r12d,%r12d + 411e78: 48 83 7b 18 00 cmpq $0x0,0x18(%rbx) + 411e7d: 8b 03 mov (%rbx),%eax + 411e7f: 0f 84 9e 00 00 00 je 411f23 <_IO_new_file_seekoff+0x243> + 411e85: f6 c4 01 test $0x1,%ah + 411e88: 0f 85 95 00 00 00 jne 411f23 <_IO_new_file_seekoff+0x243> + 411e8e: 48 8b 53 38 mov 0x38(%rbx),%rdx + 411e92: 48 89 d1 mov %rdx,%rcx + 411e95: 48 2b 4b 10 sub 0x10(%rbx),%rcx + 411e99: 48 01 f1 add %rsi,%rcx + 411e9c: 48 39 e9 cmp %rbp,%rcx + 411e9f: 0f 8f 7e 00 00 00 jg 411f23 <_IO_new_file_seekoff+0x243> + 411ea5: 48 39 f5 cmp %rsi,%rbp + 411ea8: 7d 79 jge 411f23 <_IO_new_file_seekoff+0x243> + 411eaa: 48 89 ef mov %rbp,%rdi + 411ead: 83 e0 ef and $0xffffffef,%eax + 411eb0: 48 89 53 18 mov %rdx,0x18(%rbx) + 411eb4: 48 29 cf sub %rcx,%rdi + 411eb7: 48 89 53 28 mov %rdx,0x28(%rbx) + 411ebb: 48 89 53 20 mov %rdx,0x20(%rbx) + 411ebf: 48 89 f9 mov %rdi,%rcx + 411ec2: 48 89 53 30 mov %rdx,0x30(%rbx) + 411ec6: 89 03 mov %eax,(%rbx) + 411ec8: 48 01 d1 add %rdx,%rcx + 411ecb: 48 85 f6 test %rsi,%rsi + 411ece: 48 89 4b 08 mov %rcx,0x8(%rbx) + 411ed2: 0f 88 e7 fe ff ff js 411dbf <_IO_new_file_seekoff+0xdf> + 411ed8: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 411edf: 31 d2 xor %edx,%edx + 411ee1: 48 89 df mov %rbx,%rdi + 411ee4: ff 90 80 00 00 00 callq *0x80(%rax) + 411eea: e9 d0 fe ff ff jmpq 411dbf <_IO_new_file_seekoff+0xdf> + 411eef: 90 nop + 411ef0: 8b 44 24 18 mov 0x18(%rsp),%eax + 411ef4: 25 00 f0 00 00 and $0xf000,%eax + 411ef9: 3d 00 80 00 00 cmp $0x8000,%eax + 411efe: 0f 85 68 fe ff ff jne 411d6c <_IO_new_file_seekoff+0x8c> + 411f04: 48 03 6c 24 30 add 0x30(%rsp),%rbp + 411f09: 45 31 e4 xor %r12d,%r12d + 411f0c: 0f 1f 40 00 nopl 0x0(%rax) + 411f10: 48 8b b3 90 00 00 00 mov 0x90(%rbx),%rsi + 411f17: 48 83 fe ff cmp $0xffffffffffffffff,%rsi + 411f1b: 0f 85 57 ff ff ff jne 411e78 <_IO_new_file_seekoff+0x198> + 411f21: 8b 03 mov (%rbx),%eax + 411f23: a8 04 test $0x4,%al + 411f25: 0f 85 41 fe ff ff jne 411d6c <_IO_new_file_seekoff+0x8c> + 411f2b: 48 8b 53 38 mov 0x38(%rbx),%rdx + 411f2f: 48 8b 43 40 mov 0x40(%rbx),%rax + 411f33: 49 89 ec mov %rbp,%r12 + 411f36: 48 89 d6 mov %rdx,%rsi + 411f39: 48 29 c6 sub %rax,%rsi + 411f3c: 48 29 d0 sub %rdx,%rax + 411f3f: ba 00 00 00 00 mov $0x0,%edx + 411f44: 48 21 ee and %rbp,%rsi + 411f47: 49 29 f4 sub %rsi,%r12 + 411f4a: 49 39 c4 cmp %rax,%r12 + 411f4d: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 411f54: 0f 8f ee 00 00 00 jg 412048 <_IO_new_file_seekoff+0x368> + 411f5a: 48 89 df mov %rbx,%rdi + 411f5d: ff 90 80 00 00 00 callq *0x80(%rax) + 411f63: 48 85 c0 test %rax,%rax + 411f66: 49 89 c6 mov %rax,%r14 + 411f69: 0f 88 c9 00 00 00 js 412038 <_IO_new_file_seekoff+0x358> + 411f6f: 4d 85 e4 test %r12,%r12 + 411f72: 0f 84 e4 00 00 00 je 41205c <_IO_new_file_seekoff+0x37c> + 411f78: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 411f7f: 45 85 ed test %r13d,%r13d + 411f82: 48 8b 73 38 mov 0x38(%rbx),%rsi + 411f86: 4c 89 e2 mov %r12,%rdx + 411f89: 48 8b 40 70 mov 0x70(%rax),%rax + 411f8d: 75 07 jne 411f96 <_IO_new_file_seekoff+0x2b6> + 411f8f: 48 8b 53 40 mov 0x40(%rbx),%rdx + 411f93: 48 29 f2 sub %rsi,%rdx + 411f96: 48 89 df mov %rbx,%rdi + 411f99: ff d0 callq *%rax + 411f9b: 49 39 c4 cmp %rax,%r12 + 411f9e: 48 89 c1 mov %rax,%rcx + 411fa1: 0f 8e bc 00 00 00 jle 412063 <_IO_new_file_seekoff+0x383> + 411fa7: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 411fab: 4c 89 e5 mov %r12,%rbp + 411fae: 41 bc 01 00 00 00 mov $0x1,%r12d + 411fb4: 0f 84 b2 fd ff ff je 411d6c <_IO_new_file_seekoff+0x8c> + 411fba: 48 29 c5 sub %rax,%rbp + 411fbd: 41 bc 01 00 00 00 mov $0x1,%r12d + 411fc3: e9 a4 fd ff ff jmpq 411d6c <_IO_new_file_seekoff+0x8c> + 411fc8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 411fcf: 00 + 411fd0: 48 83 7f 38 00 cmpq $0x0,0x38(%rdi) + 411fd5: 0f 84 1d 01 00 00 je 4120f8 <_IO_new_file_seekoff+0x418> + 411fdb: 4c 8b 6f 28 mov 0x28(%rdi),%r13 + 411fdf: 4c 8b 67 20 mov 0x20(%rdi),%r12 + 411fe3: 8b 2f mov (%rdi),%ebp + 411fe5: 81 e5 00 10 00 00 and $0x1000,%ebp + 411feb: 4d 39 e5 cmp %r12,%r13 + 411fee: 76 08 jbe 411ff8 <_IO_new_file_seekoff+0x318> + 411ff0: 85 ed test %ebp,%ebp + 411ff2: 0f 85 c0 00 00 00 jne 4120b8 <_IO_new_file_seekoff+0x3d8> + 411ff8: 48 8b 83 90 00 00 00 mov 0x90(%rbx),%rax + 411fff: 4d 39 e5 cmp %r12,%r13 + 412002: 0f 87 98 00 00 00 ja 4120a0 <_IO_new_file_seekoff+0x3c0> + 412008: 48 8b 6b 08 mov 0x8(%rbx),%rbp + 41200c: 48 2b 6b 10 sub 0x10(%rbx),%rbp + 412010: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 412014: 0f 84 f6 00 00 00 je 412110 <_IO_new_file_seekoff+0x430> + 41201a: 48 01 c5 add %rax,%rbp + 41201d: 0f 89 9c fd ff ff jns 411dbf <_IO_new_file_seekoff+0xdf> + 412023: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41202a: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) + 412031: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 412038: 48 c7 c5 ff ff ff ff mov $0xffffffffffffffff,%rbp + 41203f: e9 7b fd ff ff jmpq 411dbf <_IO_new_file_seekoff+0xdf> + 412044: 0f 1f 40 00 nopl 0x0(%rax) + 412048: 48 89 ee mov %rbp,%rsi + 41204b: 48 89 df mov %rbx,%rdi + 41204e: ff 90 80 00 00 00 callq *0x80(%rax) + 412054: 48 85 c0 test %rax,%rax + 412057: 49 89 c6 mov %rax,%r14 + 41205a: 78 dc js 412038 <_IO_new_file_seekoff+0x358> + 41205c: 31 c9 xor %ecx,%ecx + 41205e: 45 31 e4 xor %r12d,%r12d + 412061: 31 c0 xor %eax,%eax + 412063: 48 8b 53 38 mov 0x38(%rbx),%rdx + 412067: 4c 01 f0 add %r14,%rax + 41206a: 83 23 ef andl $0xffffffef,(%rbx) + 41206d: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) + 412074: 49 01 d4 add %rdx,%r12 + 412077: 48 01 d1 add %rdx,%rcx + 41207a: 48 89 53 18 mov %rdx,0x18(%rbx) + 41207e: 4c 89 63 08 mov %r12,0x8(%rbx) + 412082: 48 89 4b 10 mov %rcx,0x10(%rbx) + 412086: 48 89 53 28 mov %rdx,0x28(%rbx) + 41208a: 48 89 53 20 mov %rdx,0x20(%rbx) + 41208e: 48 89 53 30 mov %rdx,0x30(%rbx) + 412092: e9 28 fd ff ff jmpq 411dbf <_IO_new_file_seekoff+0xdf> + 412097: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 41209e: 00 00 + 4120a0: 85 ed test %ebp,%ebp + 4120a2: 48 8b 6b 28 mov 0x28(%rbx),%rbp + 4120a6: 74 40 je 4120e8 <_IO_new_file_seekoff+0x408> + 4120a8: 48 2b 6b 20 sub 0x20(%rbx),%rbp + 4120ac: e9 5f ff ff ff jmpq 412010 <_IO_new_file_seekoff+0x330> + 4120b1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4120b8: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 4120bf: 31 f6 xor %esi,%esi + 4120c1: ba 02 00 00 00 mov $0x2,%edx + 4120c6: ff 90 80 00 00 00 callq *0x80(%rax) + 4120cc: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 4120d0: 0f 84 62 ff ff ff je 412038 <_IO_new_file_seekoff+0x358> + 4120d6: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) + 4120dd: e9 1d ff ff ff jmpq 411fff <_IO_new_file_seekoff+0x31f> + 4120e2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4120e8: 48 2b 6b 10 sub 0x10(%rbx),%rbp + 4120ec: e9 1f ff ff ff jmpq 412010 <_IO_new_file_seekoff+0x330> + 4120f1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4120f8: 48 8b 87 90 00 00 00 mov 0x90(%rdi),%rax + 4120ff: 31 ed xor %ebp,%ebp + 412101: e9 0a ff ff ff jmpq 412010 <_IO_new_file_seekoff+0x330> + 412106: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41210d: 00 00 00 + 412110: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 412117: 31 f6 xor %esi,%esi + 412119: ba 01 00 00 00 mov $0x1,%edx + 41211e: 48 89 df mov %rbx,%rdi + 412121: ff 90 80 00 00 00 callq *0x80(%rax) + 412127: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 41212b: 0f 84 07 ff ff ff je 412038 <_IO_new_file_seekoff+0x358> + 412131: e9 e4 fe ff ff jmpq 41201a <_IO_new_file_seekoff+0x33a> + 412136: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41213d: 00 00 00 + +0000000000412140 <_IO_file_close_mmap>: + 412140: 53 push %rbx + 412141: 48 89 fb mov %rdi,%rbx + 412144: 48 8b 7f 38 mov 0x38(%rdi),%rdi + 412148: 48 8b 73 40 mov 0x40(%rbx),%rsi + 41214c: 48 29 fe sub %rdi,%rsi + 41214f: e8 5c db 02 00 callq 43fcb0 <__munmap> + 412154: 48 c7 43 40 00 00 00 movq $0x0,0x40(%rbx) + 41215b: 00 + 41215c: 48 c7 43 38 00 00 00 movq $0x0,0x38(%rbx) + 412163: 00 + 412164: b8 03 00 00 00 mov $0x3,%eax + 412169: 48 63 7b 70 movslq 0x70(%rbx),%rdi + 41216d: 0f 05 syscall + 41216f: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 412175: 76 11 jbe 412188 <_IO_file_close_mmap+0x48> + 412177: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 41217e: f7 d8 neg %eax + 412180: 64 89 02 mov %eax,%fs:(%rdx) + 412183: b8 ff ff ff ff mov $0xffffffff,%eax + 412188: 5b pop %rbx + 412189: c3 retq + 41218a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +0000000000412190 <_IO_file_seek>: + 412190: 8b 7f 70 mov 0x70(%rdi),%edi + 412193: e9 98 03 03 00 jmpq 442530 <__libc_lseek> + 412198: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41219f: 00 + +00000000004121a0 <_IO_file_sync_mmap>: + 4121a0: 53 push %rbx + 4121a1: 48 8b 77 08 mov 0x8(%rdi),%rsi + 4121a5: 48 89 fb mov %rdi,%rbx + 4121a8: 48 3b 77 10 cmp 0x10(%rdi),%rsi + 4121ac: 74 32 je 4121e0 <_IO_file_sync_mmap+0x40> + 4121ae: 48 2b 77 38 sub 0x38(%rdi),%rsi + 4121b2: 8b 7f 70 mov 0x70(%rdi),%edi + 4121b5: 31 d2 xor %edx,%edx + 4121b7: e8 74 03 03 00 callq 442530 <__libc_lseek> + 4121bc: 48 8b 73 08 mov 0x8(%rbx),%rsi + 4121c0: 48 2b 73 38 sub 0x38(%rbx),%rsi + 4121c4: 48 39 f0 cmp %rsi,%rax + 4121c7: 75 27 jne 4121f0 <_IO_file_sync_mmap+0x50> + 4121c9: 48 8b 43 18 mov 0x18(%rbx),%rax + 4121cd: 48 89 b3 90 00 00 00 mov %rsi,0x90(%rbx) + 4121d4: 48 89 43 08 mov %rax,0x8(%rbx) + 4121d8: 48 89 43 10 mov %rax,0x10(%rbx) + 4121dc: 31 c0 xor %eax,%eax + 4121de: 5b pop %rbx + 4121df: c3 retq + 4121e0: 48 2b 77 38 sub 0x38(%rdi),%rsi + 4121e4: eb e3 jmp 4121c9 <_IO_file_sync_mmap+0x29> + 4121e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4121ed: 00 00 00 + 4121f0: 83 0b 20 orl $0x20,(%rbx) + 4121f3: b8 ff ff ff ff mov $0xffffffff,%eax + 4121f8: 5b pop %rbx + 4121f9: c3 retq + 4121fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +0000000000412200 <_IO_file_xsgetn_maybe_mmap>: + 412200: 41 55 push %r13 + 412202: 41 54 push %r12 + 412204: 49 89 d4 mov %rdx,%r12 + 412207: 55 push %rbp + 412208: 53 push %rbx + 412209: 48 89 f5 mov %rsi,%rbp + 41220c: 48 89 fb mov %rdi,%rbx + 41220f: 48 81 ec 98 00 00 00 sub $0x98,%rsp + 412216: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 41221d: 48 89 e6 mov %rsp,%rsi + 412220: ff 90 90 00 00 00 callq *0x90(%rax) + 412226: 85 c0 test %eax,%eax + 412228: 75 10 jne 41223a <_IO_file_xsgetn_maybe_mmap+0x3a> + 41222a: 8b 44 24 18 mov 0x18(%rsp),%eax + 41222e: 25 00 f0 00 00 and $0xf000,%eax + 412233: 3d 00 80 00 00 cmp $0x8000,%eax + 412238: 74 56 je 412290 <_IO_file_xsgetn_maybe_mmap+0x90> + 41223a: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax + 412240: ba 20 1e 4a 00 mov $0x4a1e20,%edx + 412245: 85 c0 test %eax,%eax + 412247: b8 20 1b 4a 00 mov $0x4a1b20,%eax + 41224c: 48 0f 4e c2 cmovle %rdx,%rax + 412250: 48 89 83 d8 00 00 00 mov %rax,0xd8(%rbx) + 412257: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 41225e: 48 c7 80 30 01 00 00 movq $0x4a1b20,0x130(%rax) + 412265: 20 1b 4a 00 + 412269: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 412270: 4c 89 e2 mov %r12,%rdx + 412273: 48 89 ee mov %rbp,%rsi + 412276: 48 89 df mov %rbx,%rdi + 412279: ff 50 40 callq *0x40(%rax) + 41227c: 48 81 c4 98 00 00 00 add $0x98,%rsp + 412283: 5b pop %rbx + 412284: 5d pop %rbp + 412285: 41 5c pop %r12 + 412287: 41 5d pop %r13 + 412289: c3 retq + 41228a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 412290: 48 8b 74 24 30 mov 0x30(%rsp),%rsi + 412295: 48 85 f6 test %rsi,%rsi + 412298: 74 a0 je 41223a <_IO_file_xsgetn_maybe_mmap+0x3a> + 41229a: 48 8b 83 90 00 00 00 mov 0x90(%rbx),%rax + 4122a1: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 4122a5: 74 05 je 4122ac <_IO_file_xsgetn_maybe_mmap+0xac> + 4122a7: 48 39 c6 cmp %rax,%rsi + 4122aa: 7c 8e jl 41223a <_IO_file_xsgetn_maybe_mmap+0x3a> + 4122ac: 44 8b 43 70 mov 0x70(%rbx),%r8d + 4122b0: 45 31 c9 xor %r9d,%r9d + 4122b3: 31 ff xor %edi,%edi + 4122b5: b9 01 00 00 00 mov $0x1,%ecx + 4122ba: ba 01 00 00 00 mov $0x1,%edx + 4122bf: e8 2c d9 02 00 callq 43fbf0 <__mmap> + 4122c4: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 4122c8: 49 89 c5 mov %rax,%r13 + 4122cb: 0f 84 69 ff ff ff je 41223a <_IO_file_xsgetn_maybe_mmap+0x3a> + 4122d1: 48 8b 74 24 30 mov 0x30(%rsp),%rsi + 4122d6: 8b 7b 70 mov 0x70(%rbx),%edi + 4122d9: 31 d2 xor %edx,%edx + 4122db: e8 50 02 03 00 callq 442530 <__libc_lseek> + 4122e0: 48 8b 74 24 30 mov 0x30(%rsp),%rsi + 4122e5: 48 39 f0 cmp %rsi,%rax + 4122e8: 74 18 je 412302 <_IO_file_xsgetn_maybe_mmap+0x102> + 4122ea: 4c 89 ef mov %r13,%rdi + 4122ed: e8 be d9 02 00 callq 43fcb0 <__munmap> + 4122f2: 48 c7 83 90 00 00 00 movq $0xffffffffffffffff,0x90(%rbx) + 4122f9: ff ff ff ff + 4122fd: e9 38 ff ff ff jmpq 41223a <_IO_file_xsgetn_maybe_mmap+0x3a> + 412302: 49 8d 54 05 00 lea 0x0(%r13,%rax,1),%rdx + 412307: 31 c9 xor %ecx,%ecx + 412309: 4c 89 ee mov %r13,%rsi + 41230c: 48 89 df mov %rbx,%rdi + 41230f: e8 8c 2a 00 00 callq 414da0 <_IO_setb> + 412314: 48 8b 83 90 00 00 00 mov 0x90(%rbx),%rax + 41231b: ba 00 00 00 00 mov $0x0,%edx + 412320: 4c 89 6b 18 mov %r13,0x18(%rbx) + 412324: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 412328: 48 0f 44 c2 cmove %rdx,%rax + 41232c: 8b 93 c0 00 00 00 mov 0xc0(%rbx),%edx + 412332: 4c 01 e8 add %r13,%rax + 412335: 48 89 43 08 mov %rax,0x8(%rbx) + 412339: 48 8b 44 24 30 mov 0x30(%rsp),%rax + 41233e: 49 01 c5 add %rax,%r13 + 412341: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) + 412348: 85 d2 test %edx,%edx + 41234a: b8 60 1a 4a 00 mov $0x4a1a60,%eax + 41234f: ba 60 1d 4a 00 mov $0x4a1d60,%edx + 412354: 4c 89 6b 10 mov %r13,0x10(%rbx) + 412358: 48 0f 4e c2 cmovle %rdx,%rax + 41235c: 48 89 83 d8 00 00 00 mov %rax,0xd8(%rbx) + 412363: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 41236a: 48 c7 80 30 01 00 00 movq $0x4a1a60,0x130(%rax) + 412371: 60 1a 4a 00 + 412375: e9 ef fe ff ff jmpq 412269 <_IO_file_xsgetn_maybe_mmap+0x69> + 41237a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +0000000000412380 <_IO_file_stat>: + 412380: 48 89 f2 mov %rsi,%rdx + 412383: 8b 77 70 mov 0x70(%rdi),%esi + 412386: bf 01 00 00 00 mov $0x1,%edi + 41238b: e9 40 cd 02 00 jmpq 43f0d0 <__fxstat> + +0000000000412390 <_IO_new_file_write>: + 412390: 48 85 d2 test %rdx,%rdx + 412393: 41 56 push %r14 + 412395: 49 89 fe mov %rdi,%r14 + 412398: 41 55 push %r13 + 41239a: 41 54 push %r12 + 41239c: 55 push %rbp + 41239d: 53 push %rbx + 41239e: 0f 8e 93 00 00 00 jle 412437 <_IO_new_file_write+0xa7> + 4123a4: 48 89 f5 mov %rsi,%rbp + 4123a7: 49 89 d4 mov %rdx,%r12 + 4123aa: 48 89 d3 mov %rdx,%rbx + 4123ad: 41 bd 01 00 00 00 mov $0x1,%r13d + 4123b3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4123b8: 41 f6 46 74 02 testb $0x2,0x74(%r14) + 4123bd: 74 51 je 412410 <_IO_new_file_write+0x80> + 4123bf: 49 63 7e 70 movslq 0x70(%r14),%rdi + 4123c3: 48 89 da mov %rbx,%rdx + 4123c6: 48 89 ee mov %rbp,%rsi + 4123c9: 44 89 e8 mov %r13d,%eax + 4123cc: 0f 05 syscall + 4123ce: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 4123d4: 76 49 jbe 41241f <_IO_new_file_write+0x8f> + 4123d6: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 4123dd: f7 d8 neg %eax + 4123df: 64 89 02 mov %eax,%fs:(%rdx) + 4123e2: 41 83 0e 20 orl $0x20,(%r14) + 4123e6: 4c 89 e0 mov %r12,%rax + 4123e9: 48 29 d8 sub %rbx,%rax + 4123ec: 49 8b 96 90 00 00 00 mov 0x90(%r14),%rdx + 4123f3: 48 85 d2 test %rdx,%rdx + 4123f6: 78 0a js 412402 <_IO_new_file_write+0x72> + 4123f8: 48 01 c2 add %rax,%rdx + 4123fb: 49 89 96 90 00 00 00 mov %rdx,0x90(%r14) + 412402: 5b pop %rbx + 412403: 5d pop %rbp + 412404: 41 5c pop %r12 + 412406: 41 5d pop %r13 + 412408: 41 5e pop %r14 + 41240a: c3 retq + 41240b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 412410: 41 8b 7e 70 mov 0x70(%r14),%edi + 412414: 48 89 da mov %rbx,%rdx + 412417: 48 89 ee mov %rbp,%rsi + 41241a: e8 c1 cd 02 00 callq 43f1e0 <__libc_write> + 41241f: 48 85 c0 test %rax,%rax + 412422: 78 be js 4123e2 <_IO_new_file_write+0x52> + 412424: 48 29 c3 sub %rax,%rbx + 412427: 48 01 c5 add %rax,%rbp + 41242a: 48 85 db test %rbx,%rbx + 41242d: 7f 89 jg 4123b8 <_IO_new_file_write+0x28> + 41242f: 4c 89 e0 mov %r12,%rax + 412432: 48 29 d8 sub %rbx,%rax + 412435: eb b5 jmp 4123ec <_IO_new_file_write+0x5c> + 412437: 31 c0 xor %eax,%eax + 412439: eb b1 jmp 4123ec <_IO_new_file_write+0x5c> + 41243b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000412440 <_IO_file_xsgetn_mmap>: + 412440: 41 57 push %r15 + 412442: 41 56 push %r14 + 412444: 49 89 d7 mov %rdx,%r15 + 412447: 41 55 push %r13 + 412449: 41 54 push %r12 + 41244b: 49 89 f6 mov %rsi,%r14 + 41244e: 55 push %rbp + 41244f: 53 push %rbx + 412450: 48 89 fd mov %rdi,%rbp + 412453: 49 89 f4 mov %rsi,%r12 + 412456: 48 81 ec 98 00 00 00 sub $0x98,%rsp + 41245d: 4c 8b 6f 08 mov 0x8(%rdi),%r13 + 412461: 48 8b 5f 10 mov 0x10(%rdi),%rbx + 412465: 4c 29 eb sub %r13,%rbx + 412468: 48 39 d3 cmp %rdx,%rbx + 41246b: 0f 83 80 01 00 00 jae 4125f1 <_IO_file_xsgetn_mmap+0x1b1> + 412471: f7 07 00 01 00 00 testl $0x100,(%rdi) + 412477: 0f 85 93 01 00 00 jne 412610 <_IO_file_xsgetn_mmap+0x1d0> + 41247d: 48 8b 85 d8 00 00 00 mov 0xd8(%rbp),%rax + 412484: 48 89 e6 mov %rsp,%rsi + 412487: 48 89 ef mov %rbp,%rdi + 41248a: ff 90 90 00 00 00 callq *0x90(%rax) + 412490: 85 c0 test %eax,%eax + 412492: 75 14 jne 4124a8 <_IO_file_xsgetn_mmap+0x68> + 412494: 8b 44 24 18 mov 0x18(%rsp),%eax + 412498: 25 00 f0 00 00 and $0xf000,%eax + 41249d: 3d 00 80 00 00 cmp $0x8000,%eax + 4124a2: 0f 84 88 00 00 00 je 412530 <_IO_file_xsgetn_mmap+0xf0> + 4124a8: 48 8b 7d 38 mov 0x38(%rbp),%rdi + 4124ac: 48 8b 75 40 mov 0x40(%rbp),%rsi + 4124b0: 48 29 fe sub %rdi,%rsi + 4124b3: e8 f8 d7 02 00 callq 43fcb0 <__munmap> + 4124b8: 8b 85 c0 00 00 00 mov 0xc0(%rbp),%eax + 4124be: ba 20 1e 4a 00 mov $0x4a1e20,%edx + 4124c3: 48 c7 45 40 00 00 00 movq $0x0,0x40(%rbp) + 4124ca: 00 + 4124cb: 48 c7 45 38 00 00 00 movq $0x0,0x38(%rbp) + 4124d2: 00 + 4124d3: 48 c7 45 18 00 00 00 movq $0x0,0x18(%rbp) + 4124da: 00 + 4124db: 4c 89 f6 mov %r14,%rsi + 4124de: 48 c7 45 08 00 00 00 movq $0x0,0x8(%rbp) + 4124e5: 00 + 4124e6: 48 c7 45 10 00 00 00 movq $0x0,0x10(%rbp) + 4124ed: 00 + 4124ee: 48 89 ef mov %rbp,%rdi + 4124f1: 85 c0 test %eax,%eax + 4124f3: b8 20 1b 4a 00 mov $0x4a1b20,%eax + 4124f8: 48 0f 4e c2 cmovle %rdx,%rax + 4124fc: 4d 29 f4 sub %r14,%r12 + 4124ff: 4c 89 fa mov %r15,%rdx + 412502: 48 89 85 d8 00 00 00 mov %rax,0xd8(%rbp) + 412509: 48 8b 85 a0 00 00 00 mov 0xa0(%rbp),%rax + 412510: 48 c7 80 30 01 00 00 movq $0x4a1b20,0x130(%rax) + 412517: 20 1b 4a 00 + 41251b: 48 8b 85 d8 00 00 00 mov 0xd8(%rbp),%rax + 412522: ff 50 40 callq *0x40(%rax) + 412525: 4c 01 e0 add %r12,%rax + 412528: e9 cf 00 00 00 jmpq 4125fc <_IO_file_xsgetn_mmap+0x1bc> + 41252d: 0f 1f 00 nopl (%rax) + 412530: 48 8b 5c 24 30 mov 0x30(%rsp),%rbx + 412535: 48 85 db test %rbx,%rbx + 412538: 0f 84 6a ff ff ff je 4124a8 <_IO_file_xsgetn_mmap+0x68> + 41253e: e8 4d d6 02 00 callq 43fb90 <__getpagesize> + 412543: 48 8b 7d 38 mov 0x38(%rbp),%rdi + 412547: 48 63 c8 movslq %eax,%rcx + 41254a: 48 89 ce mov %rcx,%rsi + 41254d: 48 8d 54 0b ff lea -0x1(%rbx,%rcx,1),%rdx + 412552: 48 f7 de neg %rsi + 412555: 49 89 f8 mov %rdi,%r8 + 412558: 48 21 f2 and %rsi,%rdx + 41255b: 48 89 f8 mov %rdi,%rax + 41255e: 49 f7 d0 not %r8 + 412561: 4c 03 45 40 add 0x40(%rbp),%r8 + 412565: 4c 01 c1 add %r8,%rcx + 412568: 48 21 ce and %rcx,%rsi + 41256b: 48 39 f2 cmp %rsi,%rdx + 41256e: 0f 82 01 01 00 00 jb 412675 <_IO_file_xsgetn_mmap+0x235> + 412574: 0f 87 21 01 00 00 ja 41269b <_IO_file_xsgetn_mmap+0x25b> + 41257a: 48 01 fb add %rdi,%rbx + 41257d: 48 89 5d 40 mov %rbx,0x40(%rbp) + 412581: 49 89 dd mov %rbx,%r13 + 412584: 48 8b 55 10 mov 0x10(%rbp),%rdx + 412588: 48 2b 55 08 sub 0x8(%rbp),%rdx + 41258c: 4c 89 ee mov %r13,%rsi + 41258f: 48 8b 8d 90 00 00 00 mov 0x90(%rbp),%rcx + 412596: 48 29 c6 sub %rax,%rsi + 412599: 48 89 7d 18 mov %rdi,0x18(%rbp) + 41259d: 48 29 d1 sub %rdx,%rcx + 4125a0: 48 39 f1 cmp %rsi,%rcx + 4125a3: 48 89 ca mov %rcx,%rdx + 4125a6: 48 89 8d 90 00 00 00 mov %rcx,0x90(%rbp) + 4125ad: 0f 8d ae 00 00 00 jge 412661 <_IO_file_xsgetn_mmap+0x221> + 4125b3: 48 01 fa add %rdi,%rdx + 4125b6: 8b 7d 70 mov 0x70(%rbp),%edi + 4125b9: 4c 89 6d 10 mov %r13,0x10(%rbp) + 4125bd: 48 89 55 08 mov %rdx,0x8(%rbp) + 4125c1: 31 d2 xor %edx,%edx + 4125c3: e8 68 ff 02 00 callq 442530 <__libc_lseek> + 4125c8: 48 8b 55 40 mov 0x40(%rbp),%rdx + 4125cc: 48 2b 55 38 sub 0x38(%rbp),%rdx + 4125d0: 48 39 d0 cmp %rdx,%rax + 4125d3: 0f 84 f3 00 00 00 je 4126cc <_IO_file_xsgetn_mmap+0x28c> + 4125d9: 83 4d 00 20 orl $0x20,0x0(%rbp) + 4125dd: 4c 8b 6d 08 mov 0x8(%rbp),%r13 + 4125e1: 48 8b 5d 10 mov 0x10(%rbp),%rbx + 4125e5: 4c 29 eb sub %r13,%rbx + 4125e8: 4c 39 fb cmp %r15,%rbx + 4125eb: 73 04 jae 4125f1 <_IO_file_xsgetn_mmap+0x1b1> + 4125ed: 83 4d 00 10 orl $0x10,0x0(%rbp) + 4125f1: 48 85 db test %rbx,%rbx + 4125f4: 75 4a jne 412640 <_IO_file_xsgetn_mmap+0x200> + 4125f6: 4c 89 e0 mov %r12,%rax + 4125f9: 4c 29 f0 sub %r14,%rax + 4125fc: 48 81 c4 98 00 00 00 add $0x98,%rsp + 412603: 5b pop %rbx + 412604: 5d pop %rbp + 412605: 41 5c pop %r12 + 412607: 41 5d pop %r13 + 412609: 41 5e pop %r14 + 41260b: 41 5f pop %r15 + 41260d: c3 retq + 41260e: 66 90 xchg %ax,%ax + 412610: 48 89 da mov %rbx,%rdx + 412613: 4c 89 ee mov %r13,%rsi + 412616: 4c 89 f7 mov %r14,%rdi + 412619: e8 a2 3f 01 00 callq 4265c0 <__mempcpy> + 41261e: 48 89 ef mov %rbp,%rdi + 412621: 49 29 df sub %rbx,%r15 + 412624: 49 89 c4 mov %rax,%r12 + 412627: e8 34 23 00 00 callq 414960 <_IO_switch_to_main_get_area> + 41262c: 4c 8b 6d 08 mov 0x8(%rbp),%r13 + 412630: 48 8b 5d 10 mov 0x10(%rbp),%rbx + 412634: 4c 29 eb sub %r13,%rbx + 412637: 49 39 df cmp %rbx,%r15 + 41263a: 0f 87 3d fe ff ff ja 41247d <_IO_file_xsgetn_mmap+0x3d> + 412640: 4c 39 fb cmp %r15,%rbx + 412643: 4c 89 e7 mov %r12,%rdi + 412646: 4c 89 ee mov %r13,%rsi + 412649: 49 0f 47 df cmova %r15,%rbx + 41264d: 48 89 da mov %rbx,%rdx + 412650: 4c 01 eb add %r13,%rbx + 412653: e8 68 3f 01 00 callq 4265c0 <__mempcpy> + 412658: 48 89 5d 08 mov %rbx,0x8(%rbp) + 41265c: 49 89 c4 mov %rax,%r12 + 41265f: eb 95 jmp 4125f6 <_IO_file_xsgetn_mmap+0x1b6> + 412661: 4d 85 ff test %r15,%r15 + 412664: 4c 89 6d 08 mov %r13,0x8(%rbp) + 412668: 4c 89 6d 10 mov %r13,0x10(%rbp) + 41266c: 74 88 je 4125f6 <_IO_file_xsgetn_mmap+0x1b6> + 41266e: 31 db xor %ebx,%ebx + 412670: e9 78 ff ff ff jmpq 4125ed <_IO_file_xsgetn_mmap+0x1ad> + 412675: 48 01 d7 add %rdx,%rdi + 412678: 48 29 d6 sub %rdx,%rsi + 41267b: e8 30 d6 02 00 callq 43fcb0 <__munmap> + 412680: 48 8b 7d 38 mov 0x38(%rbp),%rdi + 412684: 48 89 fb mov %rdi,%rbx + 412687: 48 03 5c 24 30 add 0x30(%rsp),%rbx + 41268c: 48 89 f8 mov %rdi,%rax + 41268f: 48 89 5d 40 mov %rbx,0x40(%rbp) + 412693: 49 89 dd mov %rbx,%r13 + 412696: e9 e9 fe ff ff jmpq 412584 <_IO_file_xsgetn_mmap+0x144> + 41269b: 31 c0 xor %eax,%eax + 41269d: b9 01 00 00 00 mov $0x1,%ecx + 4126a2: e8 a9 fe 02 00 callq 442550 <__mremap> + 4126a7: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 4126ab: 0f 84 f7 fd ff ff je 4124a8 <_IO_file_xsgetn_mmap+0x68> + 4126b1: 48 89 c3 mov %rax,%rbx + 4126b4: 48 03 5c 24 30 add 0x30(%rsp),%rbx + 4126b9: 48 89 45 38 mov %rax,0x38(%rbp) + 4126bd: 48 89 c7 mov %rax,%rdi + 4126c0: 48 89 5d 40 mov %rbx,0x40(%rbp) + 4126c4: 49 89 dd mov %rbx,%r13 + 4126c7: e9 b8 fe ff ff jmpq 412584 <_IO_file_xsgetn_mmap+0x144> + 4126cc: 48 89 85 90 00 00 00 mov %rax,0x90(%rbp) + 4126d3: e9 05 ff ff ff jmpq 4125dd <_IO_file_xsgetn_mmap+0x19d> + 4126d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4126df: 00 + +00000000004126e0 <_IO_file_xsgetn>: + 4126e0: 41 56 push %r14 + 4126e2: 41 55 push %r13 + 4126e4: 49 89 f6 mov %rsi,%r14 + 4126e7: 41 54 push %r12 + 4126e9: 55 push %rbp + 4126ea: 49 89 d5 mov %rdx,%r13 + 4126ed: 53 push %rbx + 4126ee: 48 83 7f 38 00 cmpq $0x0,0x38(%rdi) + 4126f3: 48 89 fb mov %rdi,%rbx + 4126f6: 0f 84 a4 01 00 00 je 4128a0 <_IO_file_xsgetn+0x1c0> + 4126fc: 4d 85 ed test %r13,%r13 + 4126ff: 4d 89 ec mov %r13,%r12 + 412702: 0f 84 c8 00 00 00 je 4127d0 <_IO_file_xsgetn+0xf0> + 412708: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41270f: 00 + 412710: 48 8b 73 08 mov 0x8(%rbx),%rsi + 412714: 48 8b 6b 10 mov 0x10(%rbx),%rbp + 412718: 48 29 f5 sub %rsi,%rbp + 41271b: 4c 39 e5 cmp %r12,%rbp + 41271e: 0f 83 c4 00 00 00 jae 4127e8 <_IO_file_xsgetn+0x108> + 412724: 48 85 ed test %rbp,%rbp + 412727: 0f 85 23 01 00 00 jne 412850 <_IO_file_xsgetn+0x170> + 41272d: f7 03 00 01 00 00 testl $0x100,(%rbx) + 412733: 0f 85 07 01 00 00 jne 412840 <_IO_file_xsgetn+0x160> + 412739: 48 8b 53 38 mov 0x38(%rbx),%rdx + 41273d: 48 85 d2 test %rdx,%rdx + 412740: 0f 84 ba 00 00 00 je 412800 <_IO_file_xsgetn+0x120> + 412746: 48 8b 4b 40 mov 0x40(%rbx),%rcx + 41274a: 48 29 d1 sub %rdx,%rcx + 41274d: 49 39 cc cmp %rcx,%r12 + 412750: 0f 82 1a 01 00 00 jb 412870 <_IO_file_xsgetn+0x190> + 412756: 48 83 f9 7f cmp $0x7f,%rcx + 41275a: 48 89 53 18 mov %rdx,0x18(%rbx) + 41275e: 48 89 53 08 mov %rdx,0x8(%rbx) + 412762: 48 89 53 10 mov %rdx,0x10(%rbx) + 412766: 48 89 53 28 mov %rdx,0x28(%rbx) + 41276a: 48 89 53 20 mov %rdx,0x20(%rbx) + 41276e: 48 89 53 30 mov %rdx,0x30(%rbx) + 412772: 0f 86 b8 00 00 00 jbe 412830 <_IO_file_xsgetn+0x150> + 412778: 4c 89 e0 mov %r12,%rax + 41277b: 31 d2 xor %edx,%edx + 41277d: 48 f7 f1 div %rcx + 412780: 4c 89 e0 mov %r12,%rax + 412783: 48 29 d0 sub %rdx,%rax + 412786: 48 89 c2 mov %rax,%rdx + 412789: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 412790: 4c 89 f6 mov %r14,%rsi + 412793: 48 89 df mov %rbx,%rdi + 412796: ff 50 70 callq *0x70(%rax) + 412799: 48 83 f8 00 cmp $0x0,%rax + 41279d: 0f 8e ed 00 00 00 jle 412890 <_IO_file_xsgetn+0x1b0> + 4127a3: 48 8b 93 90 00 00 00 mov 0x90(%rbx),%rdx + 4127aa: 49 01 c6 add %rax,%r14 + 4127ad: 49 29 c4 sub %rax,%r12 + 4127b0: 48 83 fa ff cmp $0xffffffffffffffff,%rdx + 4127b4: 74 0a je 4127c0 <_IO_file_xsgetn+0xe0> + 4127b6: 48 01 d0 add %rdx,%rax + 4127b9: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) + 4127c0: 4d 85 e4 test %r12,%r12 + 4127c3: 0f 85 47 ff ff ff jne 412710 <_IO_file_xsgetn+0x30> + 4127c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4127d0: 45 31 e4 xor %r12d,%r12d + 4127d3: 4c 89 e8 mov %r13,%rax + 4127d6: 5b pop %rbx + 4127d7: 4c 29 e0 sub %r12,%rax + 4127da: 5d pop %rbp + 4127db: 41 5c pop %r12 + 4127dd: 41 5d pop %r13 + 4127df: 41 5e pop %r14 + 4127e1: c3 retq + 4127e2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4127e8: 4c 89 e2 mov %r12,%rdx + 4127eb: 4c 89 f7 mov %r14,%rdi + 4127ee: e8 2d 98 01 00 callq 42c020 + 4127f3: 4c 01 63 08 add %r12,0x8(%rbx) + 4127f7: eb d7 jmp 4127d0 <_IO_file_xsgetn+0xf0> + 4127f9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 412800: 48 c7 43 18 00 00 00 movq $0x0,0x18(%rbx) + 412807: 00 + 412808: 48 c7 43 08 00 00 00 movq $0x0,0x8(%rbx) + 41280f: 00 + 412810: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) + 412817: 00 + 412818: 48 c7 43 28 00 00 00 movq $0x0,0x28(%rbx) + 41281f: 00 + 412820: 48 c7 43 20 00 00 00 movq $0x0,0x20(%rbx) + 412827: 00 + 412828: 48 c7 43 30 00 00 00 movq $0x0,0x30(%rbx) + 41282f: 00 + 412830: 4c 89 e2 mov %r12,%rdx + 412833: e9 51 ff ff ff jmpq 412789 <_IO_file_xsgetn+0xa9> + 412838: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41283f: 00 + 412840: 48 89 df mov %rbx,%rdi + 412843: e8 18 21 00 00 callq 414960 <_IO_switch_to_main_get_area> + 412848: e9 73 ff ff ff jmpq 4127c0 <_IO_file_xsgetn+0xe0> + 41284d: 0f 1f 00 nopl (%rax) + 412850: 4c 89 f7 mov %r14,%rdi + 412853: 48 89 ea mov %rbp,%rdx + 412856: 49 29 ec sub %rbp,%r12 + 412859: e8 62 3d 01 00 callq 4265c0 <__mempcpy> + 41285e: 48 01 6b 08 add %rbp,0x8(%rbx) + 412862: 49 89 c6 mov %rax,%r14 + 412865: e9 c3 fe ff ff jmpq 41272d <_IO_file_xsgetn+0x4d> + 41286a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 412870: 48 89 df mov %rbx,%rdi + 412873: e8 48 22 00 00 callq 414ac0 <__underflow> + 412878: 83 f8 ff cmp $0xffffffff,%eax + 41287b: 0f 85 3f ff ff ff jne 4127c0 <_IO_file_xsgetn+0xe0> + 412881: 4c 89 e8 mov %r13,%rax + 412884: 5b pop %rbx + 412885: 4c 29 e0 sub %r12,%rax + 412888: 5d pop %rbp + 412889: 41 5c pop %r12 + 41288b: 41 5d pop %r13 + 41288d: 41 5e pop %r14 + 41288f: c3 retq + 412890: 75 2f jne 4128c1 <_IO_file_xsgetn+0x1e1> + 412892: 83 0b 10 orl $0x10,(%rbx) + 412895: e9 39 ff ff ff jmpq 4127d3 <_IO_file_xsgetn+0xf3> + 41289a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4128a0: 48 8b 7f 48 mov 0x48(%rdi),%rdi + 4128a4: 48 85 ff test %rdi,%rdi + 4128a7: 74 0b je 4128b4 <_IO_file_xsgetn+0x1d4> + 4128a9: e8 02 b5 00 00 callq 41ddb0 <__cfree> + 4128ae: 81 23 ff fe ff ff andl $0xfffffeff,(%rbx) + 4128b4: 48 89 df mov %rbx,%rdi + 4128b7: e8 44 25 00 00 callq 414e00 <_IO_doallocbuf> + 4128bc: e9 3b fe ff ff jmpq 4126fc <_IO_file_xsgetn+0x1c> + 4128c1: 83 0b 20 orl $0x20,(%rbx) + 4128c4: e9 0a ff ff ff jmpq 4127d3 <_IO_file_xsgetn+0xf3> + 4128c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +00000000004128d0 <_IO_file_seekoff_mmap>: + 4128d0: 55 push %rbp + 4128d1: 53 push %rbx + 4128d2: 48 89 fb mov %rdi,%rbx + 4128d5: 48 83 ec 08 sub $0x8,%rsp + 4128d9: 85 c9 test %ecx,%ecx + 4128db: 0f 84 87 00 00 00 je 412968 <_IO_file_seekoff_mmap+0x98> + 4128e1: 83 fa 01 cmp $0x1,%edx + 4128e4: 48 89 f5 mov %rsi,%rbp + 4128e7: 74 6f je 412958 <_IO_file_seekoff_mmap+0x88> + 4128e9: 83 fa 02 cmp $0x2,%edx + 4128ec: 75 0b jne 4128f9 <_IO_file_seekoff_mmap+0x29> + 4128ee: 48 8b 47 40 mov 0x40(%rdi),%rax + 4128f2: 48 2b 47 38 sub 0x38(%rdi),%rax + 4128f6: 48 01 c5 add %rax,%rbp + 4128f9: 48 85 ed test %rbp,%rbp + 4128fc: 0f 88 96 00 00 00 js 412998 <_IO_file_seekoff_mmap+0xc8> + 412902: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 412909: 31 d2 xor %edx,%edx + 41290b: 48 89 ee mov %rbp,%rsi + 41290e: 48 89 df mov %rbx,%rdi + 412911: ff 90 80 00 00 00 callq *0x80(%rax) + 412917: 48 85 c0 test %rax,%rax + 41291a: 0f 88 8f 00 00 00 js 4129af <_IO_file_seekoff_mmap+0xdf> + 412920: 48 8b 4b 40 mov 0x40(%rbx),%rcx + 412924: 48 8b 53 38 mov 0x38(%rbx),%rdx + 412928: 48 89 ce mov %rcx,%rsi + 41292b: 48 89 53 18 mov %rdx,0x18(%rbx) + 41292f: 48 29 d6 sub %rdx,%rsi + 412932: 48 39 f5 cmp %rsi,%rbp + 412935: 7e 51 jle 412988 <_IO_file_seekoff_mmap+0xb8> + 412937: 48 89 4b 08 mov %rcx,0x8(%rbx) + 41293b: 48 89 4b 10 mov %rcx,0x10(%rbx) + 41293f: 83 23 ef andl $0xffffffef,(%rbx) + 412942: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) + 412949: 48 89 e8 mov %rbp,%rax + 41294c: 48 83 c4 08 add $0x8,%rsp + 412950: 5b pop %rbx + 412951: 5d pop %rbp + 412952: c3 retq + 412953: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 412958: 48 8b 47 08 mov 0x8(%rdi),%rax + 41295c: 48 2b 47 18 sub 0x18(%rdi),%rax + 412960: 48 01 c5 add %rax,%rbp + 412963: eb 94 jmp 4128f9 <_IO_file_seekoff_mmap+0x29> + 412965: 0f 1f 00 nopl (%rax) + 412968: 48 8b 57 10 mov 0x10(%rdi),%rdx + 41296c: 48 2b 57 08 sub 0x8(%rdi),%rdx + 412970: 48 8b 87 90 00 00 00 mov 0x90(%rdi),%rax + 412977: 48 83 c4 08 add $0x8,%rsp + 41297b: 5b pop %rbx + 41297c: 5d pop %rbp + 41297d: 48 29 d0 sub %rdx,%rax + 412980: c3 retq + 412981: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 412988: 48 01 ea add %rbp,%rdx + 41298b: 48 89 53 08 mov %rdx,0x8(%rbx) + 41298f: 48 89 53 10 mov %rdx,0x10(%rbx) + 412993: eb aa jmp 41293f <_IO_file_seekoff_mmap+0x6f> + 412995: 0f 1f 00 nopl (%rax) + 412998: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41299f: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) + 4129a6: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 4129ad: eb 9d jmp 41294c <_IO_file_seekoff_mmap+0x7c> + 4129af: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 4129b6: eb 94 jmp 41294c <_IO_file_seekoff_mmap+0x7c> + 4129b8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4129bf: 00 + +00000000004129c0 <_IO_file_read>: + 4129c0: f6 47 74 02 testb $0x2,0x74(%rdi) + 4129c4: 74 32 je 4129f8 <_IO_file_read+0x38> + 4129c6: 48 63 7f 70 movslq 0x70(%rdi),%rdi + 4129ca: 31 c0 xor %eax,%eax + 4129cc: 0f 05 syscall + 4129ce: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 4129d4: 76 1a jbe 4129f0 <_IO_file_read+0x30> + 4129d6: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 4129dd: f7 d8 neg %eax + 4129df: 64 89 02 mov %eax,%fs:(%rdx) + 4129e2: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 4129e9: c3 retq + 4129ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4129f0: f3 c3 repz retq + 4129f2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4129f8: 8b 7f 70 mov 0x70(%rdi),%edi + 4129fb: e9 80 c7 02 00 jmpq 43f180 <__libc_read> + +0000000000412a00 <_IO_new_file_xsputn>: + 412a00: 31 c0 xor %eax,%eax + 412a02: 48 85 d2 test %rdx,%rdx + 412a05: 0f 84 84 00 00 00 je 412a8f <_IO_new_file_xsputn+0x8f> + 412a0b: 41 57 push %r15 + 412a0d: 41 56 push %r14 + 412a0f: 41 55 push %r13 + 412a11: 41 54 push %r12 + 412a13: 49 89 f5 mov %rsi,%r13 + 412a16: 55 push %rbp + 412a17: 53 push %rbx + 412a18: 49 89 d4 mov %rdx,%r12 + 412a1b: 48 89 fb mov %rdi,%rbx + 412a1e: 48 83 ec 08 sub $0x8,%rsp + 412a22: 8b 07 mov (%rdi),%eax + 412a24: 25 00 0a 00 00 and $0xa00,%eax + 412a29: 3d 00 0a 00 00 cmp $0xa00,%eax + 412a2e: 0f 84 bc 00 00 00 je 412af0 <_IO_new_file_xsputn+0xf0> + 412a34: 48 8b 57 30 mov 0x30(%rdi),%rdx + 412a38: 48 8b 7f 28 mov 0x28(%rdi),%rdi + 412a3c: 48 39 fa cmp %rdi,%rdx + 412a3f: 76 57 jbe 412a98 <_IO_new_file_xsputn+0x98> + 412a41: 48 29 fa sub %rdi,%rdx + 412a44: 45 31 f6 xor %r14d,%r14d + 412a47: 48 85 d2 test %rdx,%rdx + 412a4a: 0f 84 f0 00 00 00 je 412b40 <_IO_new_file_xsputn+0x140> + 412a50: 49 39 d4 cmp %rdx,%r12 + 412a53: 4c 89 ee mov %r13,%rsi + 412a56: 49 0f 46 d4 cmovbe %r12,%rdx + 412a5a: 48 89 d5 mov %rdx,%rbp + 412a5d: e8 5e 3b 01 00 callq 4265c0 <__mempcpy> + 412a62: 48 89 43 28 mov %rax,0x28(%rbx) + 412a66: 4c 89 e0 mov %r12,%rax + 412a69: 49 01 ed add %rbp,%r13 + 412a6c: 48 29 e8 sub %rbp,%rax + 412a6f: 48 89 c5 mov %rax,%rbp + 412a72: 49 01 ee add %rbp,%r14 + 412a75: 0f 85 12 02 00 00 jne 412c8d <_IO_new_file_xsputn+0x28d> + 412a7b: 4c 89 e0 mov %r12,%rax + 412a7e: 48 29 e8 sub %rbp,%rax + 412a81: 48 83 c4 08 add $0x8,%rsp + 412a85: 5b pop %rbx + 412a86: 5d pop %rbp + 412a87: 41 5c pop %r12 + 412a89: 41 5d pop %r13 + 412a8b: 41 5e pop %r14 + 412a8d: 41 5f pop %r15 + 412a8f: f3 c3 repz retq + 412a91: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 412a98: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 412a9f: be ff ff ff ff mov $0xffffffff,%esi + 412aa4: 48 89 df mov %rbx,%rdi + 412aa7: 4c 89 e5 mov %r12,%rbp + 412aaa: ff 50 18 callq *0x18(%rax) + 412aad: 83 f8 ff cmp $0xffffffff,%eax + 412ab0: 74 c9 je 412a7b <_IO_new_file_xsputn+0x7b> + 412ab2: 48 8b 4b 40 mov 0x40(%rbx),%rcx + 412ab6: 48 2b 4b 38 sub 0x38(%rbx),%rcx + 412aba: 31 d2 xor %edx,%edx + 412abc: 48 83 f9 7f cmp $0x7f,%rcx + 412ac0: 0f 87 ad 00 00 00 ja 412b73 <_IO_new_file_xsputn+0x173> + 412ac6: 49 89 ee mov %rbp,%r14 + 412ac9: 49 29 d6 sub %rdx,%r14 + 412acc: 0f 85 ae 00 00 00 jne 412b80 <_IO_new_file_xsputn+0x180> + 412ad2: 48 85 ed test %rbp,%rbp + 412ad5: 74 a4 je 412a7b <_IO_new_file_xsputn+0x7b> + 412ad7: 4b 8d 74 35 00 lea 0x0(%r13,%r14,1),%rsi + 412adc: 48 89 ea mov %rbp,%rdx + 412adf: 48 89 df mov %rbx,%rdi + 412ae2: e8 e9 23 00 00 callq 414ed0 <_IO_default_xsputn> + 412ae7: 48 29 c5 sub %rax,%rbp + 412aea: eb 8f jmp 412a7b <_IO_new_file_xsputn+0x7b> + 412aec: 0f 1f 40 00 nopl 0x0(%rax) + 412af0: 48 8b 7f 28 mov 0x28(%rdi),%rdi + 412af4: 48 8b 53 40 mov 0x40(%rbx),%rdx + 412af8: 48 29 fa sub %rdi,%rdx + 412afb: 49 39 d4 cmp %rdx,%r12 + 412afe: 0f 87 40 ff ff ff ja 412a44 <_IO_new_file_xsputn+0x44> + 412b04: 4a 8d 0c 26 lea (%rsi,%r12,1),%rcx + 412b08: 48 39 ce cmp %rcx,%rsi + 412b0b: 73 25 jae 412b32 <_IO_new_file_xsputn+0x132> + 412b0d: 80 79 ff 0a cmpb $0xa,-0x1(%rcx) + 412b11: 48 8d 41 ff lea -0x1(%rcx),%rax + 412b15: 75 16 jne 412b2d <_IO_new_file_xsputn+0x12d> + 412b17: e9 e4 00 00 00 jmpq 412c00 <_IO_new_file_xsputn+0x200> + 412b1c: 0f 1f 40 00 nopl 0x0(%rax) + 412b20: 48 83 e8 01 sub $0x1,%rax + 412b24: 80 38 0a cmpb $0xa,(%rax) + 412b27: 0f 84 d3 00 00 00 je 412c00 <_IO_new_file_xsputn+0x200> + 412b2d: 49 39 c5 cmp %rax,%r13 + 412b30: 75 ee jne 412b20 <_IO_new_file_xsputn+0x120> + 412b32: 45 31 f6 xor %r14d,%r14d + 412b35: e9 16 ff ff ff jmpq 412a50 <_IO_new_file_xsputn+0x50> + 412b3a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 412b40: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 412b47: be ff ff ff ff mov $0xffffffff,%esi + 412b4c: 48 89 df mov %rbx,%rdi + 412b4f: ff 50 18 callq *0x18(%rax) + 412b52: 89 c2 mov %eax,%edx + 412b54: 31 c0 xor %eax,%eax + 412b56: 83 fa ff cmp $0xffffffff,%edx + 412b59: 0f 84 22 ff ff ff je 412a81 <_IO_new_file_xsputn+0x81> + 412b5f: 48 8b 4b 40 mov 0x40(%rbx),%rcx + 412b63: 48 2b 4b 38 sub 0x38(%rbx),%rcx + 412b67: 4c 89 e5 mov %r12,%rbp + 412b6a: 4d 89 e6 mov %r12,%r14 + 412b6d: 48 83 f9 7f cmp $0x7f,%rcx + 412b71: 76 0d jbe 412b80 <_IO_new_file_xsputn+0x180> + 412b73: 48 89 e8 mov %rbp,%rax + 412b76: 31 d2 xor %edx,%edx + 412b78: 48 f7 f1 div %rcx + 412b7b: e9 46 ff ff ff jmpq 412ac6 <_IO_new_file_xsputn+0xc6> + 412b80: f7 03 00 10 00 00 testl $0x1000,(%rbx) + 412b86: 0f 84 94 00 00 00 je 412c20 <_IO_new_file_xsputn+0x220> + 412b8c: 48 c7 83 90 00 00 00 movq $0xffffffffffffffff,0x90(%rbx) + 412b93: ff ff ff ff + 412b97: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 412b9e: 4c 89 f2 mov %r14,%rdx + 412ba1: 4c 89 ee mov %r13,%rsi + 412ba4: 48 89 df mov %rbx,%rdi + 412ba7: ff 50 78 callq *0x78(%rax) + 412baa: 49 89 c7 mov %rax,%r15 + 412bad: 0f b7 83 80 00 00 00 movzwl 0x80(%rbx),%eax + 412bb4: 4d 85 ff test %r15,%r15 + 412bb7: 74 09 je 412bc2 <_IO_new_file_xsputn+0x1c2> + 412bb9: 66 85 c0 test %ax,%ax + 412bbc: 0f 85 ae 00 00 00 jne 412c70 <_IO_new_file_xsputn+0x270> + 412bc2: 8b 93 c0 00 00 00 mov 0xc0(%rbx),%edx + 412bc8: 48 8b 43 38 mov 0x38(%rbx),%rax + 412bcc: 85 d2 test %edx,%edx + 412bce: 48 89 43 18 mov %rax,0x18(%rbx) + 412bd2: 48 89 43 08 mov %rax,0x8(%rbx) + 412bd6: 48 89 43 10 mov %rax,0x10(%rbx) + 412bda: 48 89 43 28 mov %rax,0x28(%rbx) + 412bde: 48 89 43 20 mov %rax,0x20(%rbx) + 412be2: 7e 7b jle 412c5f <_IO_new_file_xsputn+0x25f> + 412be4: 48 8b 43 40 mov 0x40(%rbx),%rax + 412be8: 4c 29 fd sub %r15,%rbp + 412beb: 4d 39 f7 cmp %r14,%r15 + 412bee: 48 89 43 30 mov %rax,0x30(%rbx) + 412bf2: 0f 83 da fe ff ff jae 412ad2 <_IO_new_file_xsputn+0xd2> + 412bf8: e9 7e fe ff ff jmpq 412a7b <_IO_new_file_xsputn+0x7b> + 412bfd: 0f 1f 00 nopl (%rax) + 412c00: 4c 29 e8 sub %r13,%rax + 412c03: 41 be 01 00 00 00 mov $0x1,%r14d + 412c09: 4c 89 e5 mov %r12,%rbp + 412c0c: 48 83 c0 01 add $0x1,%rax + 412c10: 48 89 c2 mov %rax,%rdx + 412c13: 0f 85 37 fe ff ff jne 412a50 <_IO_new_file_xsputn+0x50> + 412c19: e9 54 fe ff ff jmpq 412a72 <_IO_new_file_xsputn+0x72> + 412c1e: 66 90 xchg %ax,%ax + 412c20: 48 8b 43 10 mov 0x10(%rbx),%rax + 412c24: 48 8b 73 20 mov 0x20(%rbx),%rsi + 412c28: 48 39 f0 cmp %rsi,%rax + 412c2b: 0f 84 66 ff ff ff je 412b97 <_IO_new_file_xsputn+0x197> + 412c31: 48 29 c6 sub %rax,%rsi + 412c34: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 412c3b: ba 01 00 00 00 mov $0x1,%edx + 412c40: 48 89 df mov %rbx,%rdi + 412c43: ff 90 80 00 00 00 callq *0x80(%rax) + 412c49: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 412c4d: 0f 84 28 fe ff ff je 412a7b <_IO_new_file_xsputn+0x7b> + 412c53: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) + 412c5a: e9 38 ff ff ff jmpq 412b97 <_IO_new_file_xsputn+0x197> + 412c5f: f7 03 02 02 00 00 testl $0x202,(%rbx) + 412c65: 0f 85 7d ff ff ff jne 412be8 <_IO_new_file_xsputn+0x1e8> + 412c6b: e9 74 ff ff ff jmpq 412be4 <_IO_new_file_xsputn+0x1e4> + 412c70: 8d 78 ff lea -0x1(%rax),%edi + 412c73: 44 89 fa mov %r15d,%edx + 412c76: 4c 89 ee mov %r13,%rsi + 412c79: e8 42 2d 00 00 callq 4159c0 <_IO_adjust_column> + 412c7e: 83 c0 01 add $0x1,%eax + 412c81: 66 89 83 80 00 00 00 mov %ax,0x80(%rbx) + 412c88: e9 35 ff ff ff jmpq 412bc2 <_IO_new_file_xsputn+0x1c2> + 412c8d: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 412c94: 83 ce ff or $0xffffffff,%esi + 412c97: 48 89 df mov %rbx,%rdi + 412c9a: ff 50 18 callq *0x18(%rax) + 412c9d: 83 c0 01 add $0x1,%eax + 412ca0: 0f 85 0c fe ff ff jne 412ab2 <_IO_new_file_xsputn+0xb2> + 412ca6: 48 85 ed test %rbp,%rbp + 412ca9: 0f 85 cc fd ff ff jne 412a7b <_IO_new_file_xsputn+0x7b> + 412caf: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 412cb6: e9 c6 fd ff ff jmpq 412a81 <_IO_new_file_xsputn+0x81> + 412cbb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000412cc0 <_IO_file_underflow_maybe_mmap>: + 412cc0: 55 push %rbp + 412cc1: 53 push %rbx + 412cc2: 48 89 fb mov %rdi,%rbx + 412cc5: 48 81 ec 98 00 00 00 sub $0x98,%rsp + 412ccc: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 412cd3: 48 89 e6 mov %rsp,%rsi + 412cd6: ff 90 90 00 00 00 callq *0x90(%rax) + 412cdc: 85 c0 test %eax,%eax + 412cde: 75 10 jne 412cf0 <_IO_file_underflow_maybe_mmap+0x30> + 412ce0: 8b 44 24 18 mov 0x18(%rsp),%eax + 412ce4: 25 00 f0 00 00 and $0xf000,%eax + 412ce9: 3d 00 80 00 00 cmp $0x8000,%eax + 412cee: 74 50 je 412d40 <_IO_file_underflow_maybe_mmap+0x80> + 412cf0: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax + 412cf6: ba 20 1e 4a 00 mov $0x4a1e20,%edx + 412cfb: 85 c0 test %eax,%eax + 412cfd: b8 20 1b 4a 00 mov $0x4a1b20,%eax + 412d02: 48 0f 4e c2 cmovle %rdx,%rax + 412d06: 48 89 83 d8 00 00 00 mov %rax,0xd8(%rbx) + 412d0d: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 412d14: 48 c7 80 30 01 00 00 movq $0x4a1b20,0x130(%rax) + 412d1b: 20 1b 4a 00 + 412d1f: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 412d26: 48 89 df mov %rbx,%rdi + 412d29: ff 50 20 callq *0x20(%rax) + 412d2c: 48 81 c4 98 00 00 00 add $0x98,%rsp + 412d33: 5b pop %rbx + 412d34: 5d pop %rbp + 412d35: c3 retq + 412d36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 412d3d: 00 00 00 + 412d40: 48 8b 74 24 30 mov 0x30(%rsp),%rsi + 412d45: 48 85 f6 test %rsi,%rsi + 412d48: 74 a6 je 412cf0 <_IO_file_underflow_maybe_mmap+0x30> + 412d4a: 48 8b 83 90 00 00 00 mov 0x90(%rbx),%rax + 412d51: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 412d55: 74 05 je 412d5c <_IO_file_underflow_maybe_mmap+0x9c> + 412d57: 48 39 c6 cmp %rax,%rsi + 412d5a: 7c 94 jl 412cf0 <_IO_file_underflow_maybe_mmap+0x30> + 412d5c: 44 8b 43 70 mov 0x70(%rbx),%r8d + 412d60: 45 31 c9 xor %r9d,%r9d + 412d63: 31 ff xor %edi,%edi + 412d65: b9 01 00 00 00 mov $0x1,%ecx + 412d6a: ba 01 00 00 00 mov $0x1,%edx + 412d6f: e8 7c ce 02 00 callq 43fbf0 <__mmap> + 412d74: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 412d78: 48 89 c5 mov %rax,%rbp + 412d7b: 0f 84 6f ff ff ff je 412cf0 <_IO_file_underflow_maybe_mmap+0x30> + 412d81: 48 8b 74 24 30 mov 0x30(%rsp),%rsi + 412d86: 8b 7b 70 mov 0x70(%rbx),%edi + 412d89: 31 d2 xor %edx,%edx + 412d8b: e8 a0 f7 02 00 callq 442530 <__libc_lseek> + 412d90: 48 8b 74 24 30 mov 0x30(%rsp),%rsi + 412d95: 48 39 f0 cmp %rsi,%rax + 412d98: 74 18 je 412db2 <_IO_file_underflow_maybe_mmap+0xf2> + 412d9a: 48 89 ef mov %rbp,%rdi + 412d9d: e8 0e cf 02 00 callq 43fcb0 <__munmap> + 412da2: 48 c7 83 90 00 00 00 movq $0xffffffffffffffff,0x90(%rbx) + 412da9: ff ff ff ff + 412dad: e9 3e ff ff ff jmpq 412cf0 <_IO_file_underflow_maybe_mmap+0x30> + 412db2: 48 8d 54 05 00 lea 0x0(%rbp,%rax,1),%rdx + 412db7: 31 c9 xor %ecx,%ecx + 412db9: 48 89 ee mov %rbp,%rsi + 412dbc: 48 89 df mov %rbx,%rdi + 412dbf: e8 dc 1f 00 00 callq 414da0 <_IO_setb> + 412dc4: 48 8b 83 90 00 00 00 mov 0x90(%rbx),%rax + 412dcb: ba 00 00 00 00 mov $0x0,%edx + 412dd0: 48 89 6b 18 mov %rbp,0x18(%rbx) + 412dd4: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 412dd8: 48 0f 44 c2 cmove %rdx,%rax + 412ddc: 8b 93 c0 00 00 00 mov 0xc0(%rbx),%edx + 412de2: 48 01 e8 add %rbp,%rax + 412de5: 48 89 43 08 mov %rax,0x8(%rbx) + 412de9: 48 8b 44 24 30 mov 0x30(%rsp),%rax + 412dee: 48 01 c5 add %rax,%rbp + 412df1: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) + 412df8: 85 d2 test %edx,%edx + 412dfa: b8 60 1a 4a 00 mov $0x4a1a60,%eax + 412dff: ba 60 1d 4a 00 mov $0x4a1d60,%edx + 412e04: 48 89 6b 10 mov %rbp,0x10(%rbx) + 412e08: 48 0f 4e c2 cmovle %rdx,%rax + 412e0c: 48 89 83 d8 00 00 00 mov %rax,0xd8(%rbx) + 412e13: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 412e1a: 48 c7 80 30 01 00 00 movq $0x4a1a60,0x130(%rax) + 412e21: 60 1a 4a 00 + 412e25: e9 f5 fe ff ff jmpq 412d1f <_IO_file_underflow_maybe_mmap+0x5f> + 412e2a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +0000000000412e30 <_IO_file_underflow_mmap>: + 412e30: 48 8b 47 08 mov 0x8(%rdi),%rax + 412e34: 48 3b 47 10 cmp 0x10(%rdi),%rax + 412e38: 73 06 jae 412e40 <_IO_file_underflow_mmap+0x10> + 412e3a: 0f b6 00 movzbl (%rax),%eax + 412e3d: c3 retq + 412e3e: 66 90 xchg %ax,%ax + 412e40: 55 push %rbp + 412e41: 53 push %rbx + 412e42: 48 89 fb mov %rdi,%rbx + 412e45: 48 81 ec 98 00 00 00 sub $0x98,%rsp + 412e4c: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 412e53: 48 89 e6 mov %rsp,%rsi + 412e56: ff 90 90 00 00 00 callq *0x90(%rax) + 412e5c: 85 c0 test %eax,%eax + 412e5e: 75 14 jne 412e74 <_IO_file_underflow_mmap+0x44> + 412e60: 8b 44 24 18 mov 0x18(%rsp),%eax + 412e64: 25 00 f0 00 00 and $0xf000,%eax + 412e69: 3d 00 80 00 00 cmp $0x8000,%eax + 412e6e: 0f 84 84 00 00 00 je 412ef8 <_IO_file_underflow_mmap+0xc8> + 412e74: 48 8b 7b 38 mov 0x38(%rbx),%rdi + 412e78: 48 8b 73 40 mov 0x40(%rbx),%rsi + 412e7c: 48 29 fe sub %rdi,%rsi + 412e7f: e8 2c ce 02 00 callq 43fcb0 <__munmap> + 412e84: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax + 412e8a: ba 20 1e 4a 00 mov $0x4a1e20,%edx + 412e8f: 48 c7 43 40 00 00 00 movq $0x0,0x40(%rbx) + 412e96: 00 + 412e97: 48 c7 43 38 00 00 00 movq $0x0,0x38(%rbx) + 412e9e: 00 + 412e9f: 48 c7 43 18 00 00 00 movq $0x0,0x18(%rbx) + 412ea6: 00 + 412ea7: 48 89 df mov %rbx,%rdi + 412eaa: 48 c7 43 08 00 00 00 movq $0x0,0x8(%rbx) + 412eb1: 00 + 412eb2: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) + 412eb9: 00 + 412eba: 85 c0 test %eax,%eax + 412ebc: b8 20 1b 4a 00 mov $0x4a1b20,%eax + 412ec1: 48 0f 4e c2 cmovle %rdx,%rax + 412ec5: 48 89 83 d8 00 00 00 mov %rax,0xd8(%rbx) + 412ecc: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 412ed3: 48 c7 80 30 01 00 00 movq $0x4a1b20,0x130(%rax) + 412eda: 20 1b 4a 00 + 412ede: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 412ee5: ff 50 20 callq *0x20(%rax) + 412ee8: 48 81 c4 98 00 00 00 add $0x98,%rsp + 412eef: 5b pop %rbx + 412ef0: 5d pop %rbp + 412ef1: c3 retq + 412ef2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 412ef8: 48 8b 6c 24 30 mov 0x30(%rsp),%rbp + 412efd: 48 85 ed test %rbp,%rbp + 412f00: 0f 84 6e ff ff ff je 412e74 <_IO_file_underflow_mmap+0x44> + 412f06: e8 85 cc 02 00 callq 43fb90 <__getpagesize> + 412f0b: 48 8b 7b 38 mov 0x38(%rbx),%rdi + 412f0f: 48 98 cltq + 412f11: 48 89 c6 mov %rax,%rsi + 412f14: 48 8d 54 05 ff lea -0x1(%rbp,%rax,1),%rdx + 412f19: 48 f7 de neg %rsi + 412f1c: 48 89 f9 mov %rdi,%rcx + 412f1f: 48 21 f2 and %rsi,%rdx + 412f22: 49 89 f8 mov %rdi,%r8 + 412f25: 48 f7 d1 not %rcx + 412f28: 48 03 4b 40 add 0x40(%rbx),%rcx + 412f2c: 48 01 c8 add %rcx,%rax + 412f2f: 48 21 c6 and %rax,%rsi + 412f32: 48 39 f2 cmp %rsi,%rdx + 412f35: 0f 82 8d 00 00 00 jb 412fc8 <_IO_file_underflow_mmap+0x198> + 412f3b: 0f 87 aa 00 00 00 ja 412feb <_IO_file_underflow_mmap+0x1bb> + 412f41: 48 01 fd add %rdi,%rbp + 412f44: 48 89 6b 40 mov %rbp,0x40(%rbx) + 412f48: 48 8b 53 10 mov 0x10(%rbx),%rdx + 412f4c: 48 2b 53 08 sub 0x8(%rbx),%rdx + 412f50: 48 89 ee mov %rbp,%rsi + 412f53: 48 8b 83 90 00 00 00 mov 0x90(%rbx),%rax + 412f5a: 4c 29 c6 sub %r8,%rsi + 412f5d: 48 89 7b 18 mov %rdi,0x18(%rbx) + 412f61: 48 29 d0 sub %rdx,%rax + 412f64: 48 39 f0 cmp %rsi,%rax + 412f67: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) + 412f6e: 7d 40 jge 412fb0 <_IO_file_underflow_mmap+0x180> + 412f70: 48 01 c7 add %rax,%rdi + 412f73: 31 d2 xor %edx,%edx + 412f75: 48 89 6b 10 mov %rbp,0x10(%rbx) + 412f79: 48 89 7b 08 mov %rdi,0x8(%rbx) + 412f7d: 8b 7b 70 mov 0x70(%rbx),%edi + 412f80: e8 ab f5 02 00 callq 442530 <__libc_lseek> + 412f85: 48 8b 53 40 mov 0x40(%rbx),%rdx + 412f89: 48 2b 53 38 sub 0x38(%rbx),%rdx + 412f8d: 48 39 d0 cmp %rdx,%rax + 412f90: 0f 84 86 00 00 00 je 41301c <_IO_file_underflow_mmap+0x1ec> + 412f96: 83 0b 20 orl $0x20,(%rbx) + 412f99: 48 8b 43 08 mov 0x8(%rbx),%rax + 412f9d: 48 3b 43 10 cmp 0x10(%rbx),%rax + 412fa1: 73 15 jae 412fb8 <_IO_file_underflow_mmap+0x188> + 412fa3: 0f b6 00 movzbl (%rax),%eax + 412fa6: 48 81 c4 98 00 00 00 add $0x98,%rsp + 412fad: 5b pop %rbx + 412fae: 5d pop %rbp + 412faf: c3 retq + 412fb0: 48 89 6b 08 mov %rbp,0x8(%rbx) + 412fb4: 48 89 6b 10 mov %rbp,0x10(%rbx) + 412fb8: 83 0b 10 orl $0x10,(%rbx) + 412fbb: b8 ff ff ff ff mov $0xffffffff,%eax + 412fc0: e9 23 ff ff ff jmpq 412ee8 <_IO_file_underflow_mmap+0xb8> + 412fc5: 0f 1f 00 nopl (%rax) + 412fc8: 48 01 d7 add %rdx,%rdi + 412fcb: 48 29 d6 sub %rdx,%rsi + 412fce: e8 dd cc 02 00 callq 43fcb0 <__munmap> + 412fd3: 48 8b 7b 38 mov 0x38(%rbx),%rdi + 412fd7: 48 89 fd mov %rdi,%rbp + 412fda: 48 03 6c 24 30 add 0x30(%rsp),%rbp + 412fdf: 49 89 f8 mov %rdi,%r8 + 412fe2: 48 89 6b 40 mov %rbp,0x40(%rbx) + 412fe6: e9 5d ff ff ff jmpq 412f48 <_IO_file_underflow_mmap+0x118> + 412feb: 31 c0 xor %eax,%eax + 412fed: b9 01 00 00 00 mov $0x1,%ecx + 412ff2: e8 59 f5 02 00 callq 442550 <__mremap> + 412ff7: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 412ffb: 0f 84 73 fe ff ff je 412e74 <_IO_file_underflow_mmap+0x44> + 413001: 48 89 c5 mov %rax,%rbp + 413004: 48 03 6c 24 30 add 0x30(%rsp),%rbp + 413009: 48 89 43 38 mov %rax,0x38(%rbx) + 41300d: 49 89 c0 mov %rax,%r8 + 413010: 48 89 c7 mov %rax,%rdi + 413013: 48 89 6b 40 mov %rbp,0x40(%rbx) + 413017: e9 2c ff ff ff jmpq 412f48 <_IO_file_underflow_mmap+0x118> + 41301c: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) + 413023: e9 71 ff ff ff jmpq 412f99 <_IO_file_underflow_mmap+0x169> + 413028: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41302f: 00 + +0000000000413030 <_IO_new_file_init>: + 413030: 55 push %rbp + 413031: 53 push %rbx + 413032: 48 c7 c5 ff ff ff ff mov $0xffffffffffffffff,%rbp + 413039: 48 89 fb mov %rdi,%rbx + 41303c: 48 83 ec 08 sub $0x8,%rsp + 413040: 81 0f 0c 24 00 00 orl $0x240c,(%rdi) + 413046: 48 89 af 90 00 00 00 mov %rbp,0x90(%rdi) + 41304d: e8 9e 16 00 00 callq 4146f0 <_IO_link_in> + 413052: 89 6b 70 mov %ebp,0x70(%rbx) + 413055: 48 83 c4 08 add $0x8,%rsp + 413059: 5b pop %rbx + 41305a: 5d pop %rbp + 41305b: c3 retq + 41305c: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000413060 <_IO_file_open>: + 413060: 55 push %rbp + 413061: 53 push %rbx + 413062: 48 89 fb mov %rdi,%rbx + 413065: 48 89 f7 mov %rsi,%rdi + 413068: 48 63 f2 movslq %edx,%rsi + 41306b: 48 83 ec 18 sub $0x18,%rsp + 41306f: f6 43 74 02 testb $0x2,0x74(%rbx) + 413073: 74 6b je 4130e0 <_IO_file_open+0x80> + 413075: 48 63 d1 movslq %ecx,%rdx + 413078: b8 02 00 00 00 mov $0x2,%eax + 41307d: 0f 05 syscall + 41307f: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 413085: 89 c5 mov %eax,%ebp + 413087: 77 47 ja 4130d0 <_IO_file_open+0x70> + 413089: 85 ed test %ebp,%ebp + 41308b: 78 4f js 4130dc <_IO_file_open+0x7c> + 41308d: 8b 13 mov (%rbx),%edx + 41308f: 44 89 c0 mov %r8d,%eax + 413092: 41 81 e0 04 10 00 00 and $0x1004,%r8d + 413099: 25 0c 10 00 00 and $0x100c,%eax + 41309e: 89 6b 70 mov %ebp,0x70(%rbx) + 4130a1: 81 e2 f3 ef ff ff and $0xffffeff3,%edx + 4130a7: 09 d0 or %edx,%eax + 4130a9: 41 81 f8 04 10 00 00 cmp $0x1004,%r8d + 4130b0: 89 03 mov %eax,(%rbx) + 4130b2: 74 4c je 413100 <_IO_file_open+0xa0> + 4130b4: 48 89 df mov %rbx,%rdi + 4130b7: e8 34 16 00 00 callq 4146f0 <_IO_link_in> + 4130bc: 48 89 d8 mov %rbx,%rax + 4130bf: 48 83 c4 18 add $0x18,%rsp + 4130c3: 5b pop %rbx + 4130c4: 5d pop %rbp + 4130c5: c3 retq + 4130c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4130cd: 00 00 00 + 4130d0: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 4130d7: f7 d8 neg %eax + 4130d9: 64 89 02 mov %eax,%fs:(%rdx) + 4130dc: 31 c0 xor %eax,%eax + 4130de: eb df jmp 4130bf <_IO_file_open+0x5f> + 4130e0: 89 ca mov %ecx,%edx + 4130e2: 31 c0 xor %eax,%eax + 4130e4: 44 89 44 24 0c mov %r8d,0xc(%rsp) + 4130e9: e8 32 c0 02 00 callq 43f120 <__libc_open> + 4130ee: 44 8b 44 24 0c mov 0xc(%rsp),%r8d + 4130f3: 89 c5 mov %eax,%ebp + 4130f5: eb 92 jmp 413089 <_IO_file_open+0x29> + 4130f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4130fe: 00 00 + 413100: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 413107: 31 f6 xor %esi,%esi + 413109: ba 02 00 00 00 mov $0x2,%edx + 41310e: 48 89 df mov %rbx,%rdi + 413111: ff 90 80 00 00 00 callq *0x80(%rax) + 413117: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 41311b: 75 97 jne 4130b4 <_IO_file_open+0x54> + 41311d: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 413124: 64 83 3a 1d cmpl $0x1d,%fs:(%rdx) + 413128: 74 8a je 4130b4 <_IO_file_open+0x54> + 41312a: 48 63 fd movslq %ebp,%rdi + 41312d: b8 03 00 00 00 mov $0x3,%eax + 413132: 0f 05 syscall + 413134: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 41313a: 76 a0 jbe 4130dc <_IO_file_open+0x7c> + 41313c: f7 d8 neg %eax + 41313e: 64 89 02 mov %eax,%fs:(%rdx) + 413141: 31 c0 xor %eax,%eax + 413143: e9 77 ff ff ff jmpq 4130bf <_IO_file_open+0x5f> + 413148: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41314f: 00 + +0000000000413150 <_IO_new_file_attach>: + 413150: 83 7f 70 ff cmpl $0xffffffff,0x70(%rdi) + 413154: 75 5a jne 4131b0 <_IO_new_file_attach+0x60> + 413156: 8b 07 mov (%rdi),%eax + 413158: 41 54 push %r12 + 41315a: b9 03 00 00 00 mov $0x3,%ecx + 41315f: 55 push %rbp + 413160: 48 c7 c5 d0 ff ff ff mov $0xffffffffffffffd0,%rbp + 413167: ba 01 00 00 00 mov $0x1,%edx + 41316c: 53 push %rbx + 41316d: 89 77 70 mov %esi,0x70(%rdi) + 413170: 48 89 fb mov %rdi,%rbx + 413173: 83 e0 f3 and $0xfffffff3,%eax + 413176: 31 f6 xor %esi,%esi + 413178: 48 c7 87 90 00 00 00 movq $0xffffffffffffffff,0x90(%rdi) + 41317f: ff ff ff ff + 413183: 83 c8 40 or $0x40,%eax + 413186: 64 44 8b 65 00 mov %fs:0x0(%rbp),%r12d + 41318b: 89 07 mov %eax,(%rdi) + 41318d: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 413194: ff 50 48 callq *0x48(%rax) + 413197: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 41319b: 74 1b je 4131b8 <_IO_new_file_attach+0x68> + 41319d: 64 44 89 65 00 mov %r12d,%fs:0x0(%rbp) + 4131a2: 48 89 d8 mov %rbx,%rax + 4131a5: 5b pop %rbx + 4131a6: 5d pop %rbp + 4131a7: 41 5c pop %r12 + 4131a9: c3 retq + 4131aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4131b0: 31 c0 xor %eax,%eax + 4131b2: c3 retq + 4131b3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4131b8: 31 c0 xor %eax,%eax + 4131ba: 64 83 7d 00 1d cmpl $0x1d,%fs:0x0(%rbp) + 4131bf: 74 dc je 41319d <_IO_new_file_attach+0x4d> + 4131c1: eb e2 jmp 4131a5 <_IO_new_file_attach+0x55> + 4131c3: 0f 1f 00 nopl (%rax) + 4131c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4131cd: 00 00 00 + +00000000004131d0 <_IO_new_do_write>: + 4131d0: 31 c0 xor %eax,%eax + 4131d2: 48 85 d2 test %rdx,%rdx + 4131d5: 75 09 jne 4131e0 <_IO_new_do_write+0x10> + 4131d7: c3 retq + 4131d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4131df: 00 + 4131e0: 41 55 push %r13 + 4131e2: 41 54 push %r12 + 4131e4: 49 89 f4 mov %rsi,%r12 + 4131e7: 55 push %rbp + 4131e8: 53 push %rbx + 4131e9: 48 89 d5 mov %rdx,%rbp + 4131ec: 48 89 fb mov %rdi,%rbx + 4131ef: 48 83 ec 08 sub $0x8,%rsp + 4131f3: f7 07 00 10 00 00 testl $0x1000,(%rdi) + 4131f9: 0f 85 a1 00 00 00 jne 4132a0 <_IO_new_do_write+0xd0> + 4131ff: 48 8b 47 10 mov 0x10(%rdi),%rax + 413203: 48 8b 77 20 mov 0x20(%rdi),%rsi + 413207: 48 39 f0 cmp %rsi,%rax + 41320a: 74 2a je 413236 <_IO_new_do_write+0x66> + 41320c: 48 29 c6 sub %rax,%rsi + 41320f: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 413216: ba 01 00 00 00 mov $0x1,%edx + 41321b: ff 90 80 00 00 00 callq *0x80(%rax) + 413221: 48 89 c2 mov %rax,%rdx + 413224: b8 ff ff ff ff mov $0xffffffff,%eax + 413229: 48 83 fa ff cmp $0xffffffffffffffff,%rdx + 41322d: 74 62 je 413291 <_IO_new_do_write+0xc1> + 41322f: 48 89 93 90 00 00 00 mov %rdx,0x90(%rbx) + 413236: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 41323d: 48 89 ea mov %rbp,%rdx + 413240: 4c 89 e6 mov %r12,%rsi + 413243: 48 89 df mov %rbx,%rdi + 413246: ff 50 78 callq *0x78(%rax) + 413249: 49 89 c5 mov %rax,%r13 + 41324c: 0f b7 83 80 00 00 00 movzwl 0x80(%rbx),%eax + 413253: 4d 85 ed test %r13,%r13 + 413256: 74 05 je 41325d <_IO_new_do_write+0x8d> + 413258: 66 85 c0 test %ax,%ax + 41325b: 75 63 jne 4132c0 <_IO_new_do_write+0xf0> + 41325d: 8b 93 c0 00 00 00 mov 0xc0(%rbx),%edx + 413263: 48 8b 43 38 mov 0x38(%rbx),%rax + 413267: 85 d2 test %edx,%edx + 413269: 48 89 43 18 mov %rax,0x18(%rbx) + 41326d: 48 89 43 08 mov %rax,0x8(%rbx) + 413271: 48 89 43 10 mov %rax,0x10(%rbx) + 413275: 48 89 43 28 mov %rax,0x28(%rbx) + 413279: 48 89 43 20 mov %rax,0x20(%rbx) + 41327d: 7e 31 jle 4132b0 <_IO_new_do_write+0xe0> + 41327f: 48 8b 43 40 mov 0x40(%rbx),%rax + 413283: 48 89 43 30 mov %rax,0x30(%rbx) + 413287: 31 c0 xor %eax,%eax + 413289: 4c 39 ed cmp %r13,%rbp + 41328c: 0f 95 c0 setne %al + 41328f: f7 d8 neg %eax + 413291: 48 83 c4 08 add $0x8,%rsp + 413295: 5b pop %rbx + 413296: 5d pop %rbp + 413297: 41 5c pop %r12 + 413299: 41 5d pop %r13 + 41329b: c3 retq + 41329c: 0f 1f 40 00 nopl 0x0(%rax) + 4132a0: 48 c7 87 90 00 00 00 movq $0xffffffffffffffff,0x90(%rdi) + 4132a7: ff ff ff ff + 4132ab: eb 89 jmp 413236 <_IO_new_do_write+0x66> + 4132ad: 0f 1f 00 nopl (%rax) + 4132b0: f7 03 02 02 00 00 testl $0x202,(%rbx) + 4132b6: 75 cb jne 413283 <_IO_new_do_write+0xb3> + 4132b8: eb c5 jmp 41327f <_IO_new_do_write+0xaf> + 4132ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4132c0: 8d 78 ff lea -0x1(%rax),%edi + 4132c3: 44 89 ea mov %r13d,%edx + 4132c6: 4c 89 e6 mov %r12,%rsi + 4132c9: e8 f2 26 00 00 callq 4159c0 <_IO_adjust_column> + 4132ce: 83 c0 01 add $0x1,%eax + 4132d1: 66 89 83 80 00 00 00 mov %ax,0x80(%rbx) + 4132d8: e9 80 ff ff ff jmpq 41325d <_IO_new_do_write+0x8d> + 4132dd: 0f 1f 00 nopl (%rax) + +00000000004132e0 <_IO_new_file_close_it>: + 4132e0: 8b 47 70 mov 0x70(%rdi),%eax + 4132e3: 83 f8 ff cmp $0xffffffff,%eax + 4132e6: 0f 84 fe 00 00 00 je 4133ea <_IO_new_file_close_it+0x10a> + 4132ec: 41 54 push %r12 + 4132ee: 55 push %rbp + 4132ef: 45 31 e4 xor %r12d,%r12d + 4132f2: 53 push %rbx + 4132f3: 8b 07 mov (%rdi),%eax + 4132f5: 48 89 fb mov %rdi,%rbx + 4132f8: 25 08 08 00 00 and $0x808,%eax + 4132fd: 3d 00 08 00 00 cmp $0x800,%eax + 413302: 0f 84 08 01 00 00 je 413410 <_IO_new_file_close_it+0x130> + 413308: 48 89 df mov %rbx,%rdi + 41330b: 31 ed xor %ebp,%ebp + 41330d: e8 8e 30 00 00 callq 4163a0 <_IO_unsave_markers> + 413312: f6 43 74 20 testb $0x20,0x74(%rbx) + 413316: 0f 84 d4 00 00 00 je 4133f0 <_IO_new_file_close_it+0x110> + 41331c: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax + 413322: 85 c0 test %eax,%eax + 413324: 7e 5a jle 413380 <_IO_new_file_close_it+0xa0> + 413326: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 41332d: 48 83 78 40 00 cmpq $0x0,0x40(%rax) + 413332: 74 08 je 41333c <_IO_new_file_close_it+0x5c> + 413334: 48 89 df mov %rbx,%rdi + 413337: e8 e4 14 05 00 callq 464820 <_IO_free_wbackup_area> + 41333c: 31 c9 xor %ecx,%ecx + 41333e: 31 d2 xor %edx,%edx + 413340: 31 f6 xor %esi,%esi + 413342: 48 89 df mov %rbx,%rdi + 413345: e8 46 05 05 00 callq 463890 <_IO_wsetb> + 41334a: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 413351: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) + 413358: 00 + 413359: 48 c7 00 00 00 00 00 movq $0x0,(%rax) + 413360: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) + 413367: 00 + 413368: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) + 41336f: 00 + 413370: 48 c7 40 18 00 00 00 movq $0x0,0x18(%rax) + 413377: 00 + 413378: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) + 41337f: 00 + 413380: 31 c9 xor %ecx,%ecx + 413382: 31 d2 xor %edx,%edx + 413384: 31 f6 xor %esi,%esi + 413386: 48 89 df mov %rbx,%rdi + 413389: e8 12 1a 00 00 callq 414da0 <_IO_setb> + 41338e: 48 c7 43 18 00 00 00 movq $0x0,0x18(%rbx) + 413395: 00 + 413396: 48 c7 43 08 00 00 00 movq $0x0,0x8(%rbx) + 41339d: 00 + 41339e: 48 89 df mov %rbx,%rdi + 4133a1: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) + 4133a8: 00 + 4133a9: 48 c7 43 28 00 00 00 movq $0x0,0x28(%rbx) + 4133b0: 00 + 4133b1: 48 c7 43 20 00 00 00 movq $0x0,0x20(%rbx) + 4133b8: 00 + 4133b9: 48 c7 43 30 00 00 00 movq $0x0,0x30(%rbx) + 4133c0: 00 + 4133c1: e8 8a 10 00 00 callq 414450 <_IO_un_link> + 4133c6: 85 ed test %ebp,%ebp + 4133c8: 44 89 e0 mov %r12d,%eax + 4133cb: c7 03 0c 24 ad fb movl $0xfbad240c,(%rbx) + 4133d1: c7 43 70 ff ff ff ff movl $0xffffffff,0x70(%rbx) + 4133d8: 48 c7 83 90 00 00 00 movq $0xffffffffffffffff,0x90(%rbx) + 4133df: ff ff ff ff + 4133e3: 0f 45 c5 cmovne %ebp,%eax + 4133e6: 5b pop %rbx + 4133e7: 5d pop %rbp + 4133e8: 41 5c pop %r12 + 4133ea: f3 c3 repz retq + 4133ec: 0f 1f 40 00 nopl 0x0(%rax) + 4133f0: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 4133f7: 48 89 df mov %rbx,%rdi + 4133fa: ff 90 88 00 00 00 callq *0x88(%rax) + 413400: 89 c5 mov %eax,%ebp + 413402: e9 15 ff ff ff jmpq 41331c <_IO_new_file_close_it+0x3c> + 413407: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 41340e: 00 00 + 413410: 8b 97 c0 00 00 00 mov 0xc0(%rdi),%edx + 413416: 85 d2 test %edx,%edx + 413418: 7e 26 jle 413440 <_IO_new_file_close_it+0x160> + 41341a: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax + 413421: 48 8b 70 18 mov 0x18(%rax),%rsi + 413425: 48 8b 50 20 mov 0x20(%rax),%rdx + 413429: 48 29 f2 sub %rsi,%rdx + 41342c: 48 c1 fa 02 sar $0x2,%rdx + 413430: e8 fb d5 ff ff callq 410a30 <_IO_wdo_write> + 413435: 41 89 c4 mov %eax,%r12d + 413438: e9 cb fe ff ff jmpq 413308 <_IO_new_file_close_it+0x28> + 41343d: 0f 1f 00 nopl (%rax) + 413440: 48 8b 77 20 mov 0x20(%rdi),%rsi + 413444: 48 8b 57 28 mov 0x28(%rdi),%rdx + 413448: 48 29 f2 sub %rsi,%rdx + 41344b: e8 80 fd ff ff callq 4131d0 <_IO_new_do_write> + 413450: 41 89 c4 mov %eax,%r12d + 413453: e9 b0 fe ff ff jmpq 413308 <_IO_new_file_close_it+0x28> + 413458: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41345f: 00 + +0000000000413460 <_IO_new_file_fopen>: + 413460: 41 57 push %r15 + 413462: 41 56 push %r14 + 413464: 41 55 push %r13 + 413466: 41 54 push %r12 + 413468: 55 push %rbp + 413469: 53 push %rbx + 41346a: 48 83 ec 28 sub $0x28,%rsp + 41346e: 83 7f 70 ff cmpl $0xffffffff,0x70(%rdi) + 413472: 75 54 jne 4134c8 <_IO_new_file_fopen+0x68> + 413474: 0f b6 02 movzbl (%rdx),%eax + 413477: 3c 72 cmp $0x72,%al + 413479: 0f 84 51 05 00 00 je 4139d0 <_IO_new_file_fopen+0x570> + 41347f: 3c 77 cmp $0x77,%al + 413481: 74 5d je 4134e0 <_IO_new_file_fopen+0x80> + 413483: 3c 61 cmp $0x61,%al + 413485: 0f 84 25 05 00 00 je 4139b0 <_IO_new_file_fopen+0x550> + 41348b: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 413492: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) + 413499: 48 83 c4 28 add $0x28,%rsp + 41349d: 31 c0 xor %eax,%eax + 41349f: 5b pop %rbx + 4134a0: 5d pop %rbp + 4134a1: 41 5c pop %r12 + 4134a3: 41 5d pop %r13 + 4134a5: 41 5e pop %r14 + 4134a7: 41 5f pop %r15 + 4134a9: c3 retq + 4134aa: 48 c7 c5 d0 ff ff ff mov $0xffffffffffffffd0,%rbp + 4134b1: 48 89 df mov %rbx,%rdi + 4134b4: 64 44 8b 65 00 mov %fs:0x0(%rbp),%r12d + 4134b9: e8 22 fe ff ff callq 4132e0 <_IO_new_file_close_it> + 4134be: 64 44 89 65 00 mov %r12d,%fs:0x0(%rbp) + 4134c3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4134c8: 31 c0 xor %eax,%eax + 4134ca: 48 83 c4 28 add $0x28,%rsp + 4134ce: 5b pop %rbx + 4134cf: 5d pop %rbp + 4134d0: 41 5c pop %r12 + 4134d2: 41 5d pop %r13 + 4134d4: 41 5e pop %r14 + 4134d6: 41 5f pop %r15 + 4134d8: c3 retq + 4134d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4134e0: 41 b8 04 00 00 00 mov $0x4,%r8d + 4134e6: b8 01 00 00 00 mov $0x1,%eax + 4134eb: 41 ba 40 02 00 00 mov $0x240,%r10d + 4134f1: 44 0f b6 4a 01 movzbl 0x1(%rdx),%r9d + 4134f6: 4c 8d 62 01 lea 0x1(%rdx),%r12 + 4134fa: 41 80 f9 63 cmp $0x63,%r9b + 4134fe: 0f 84 bb 05 00 00 je 413abf <_IO_new_file_fopen+0x65f> + 413504: 0f 8f ee 03 00 00 jg 4138f8 <_IO_new_file_fopen+0x498> + 41350a: 41 80 f9 2b cmp $0x2b,%r9b + 41350e: 0f 84 c3 05 00 00 je 413ad7 <_IO_new_file_fopen+0x677> + 413514: 41 80 f9 62 cmp $0x62,%r9b + 413518: 74 16 je 413530 <_IO_new_file_fopen+0xd0> + 41351a: 45 84 c9 test %r9b,%r9b + 41351d: 49 89 d4 mov %rdx,%r12 + 413520: 0f 84 2a 01 00 00 je 413650 <_IO_new_file_fopen+0x1f0> + 413526: 49 89 d4 mov %rdx,%r12 + 413529: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 413530: 44 0f b6 4a 02 movzbl 0x2(%rdx),%r9d + 413535: 4c 8d 5a 02 lea 0x2(%rdx),%r11 + 413539: 41 80 f9 63 cmp $0x63,%r9b + 41353d: 0f 84 ae 05 00 00 je 413af1 <_IO_new_file_fopen+0x691> + 413543: 0f 8f 07 04 00 00 jg 413950 <_IO_new_file_fopen+0x4f0> + 413549: 41 80 f9 2b cmp $0x2b,%r9b + 41354d: 0f 84 a7 05 00 00 je 413afa <_IO_new_file_fopen+0x69a> + 413553: 41 80 f9 62 cmp $0x62,%r9b + 413557: 0f 84 12 05 00 00 je 413a6f <_IO_new_file_fopen+0x60f> + 41355d: 45 84 c9 test %r9b,%r9b + 413560: 0f 84 ea 00 00 00 je 413650 <_IO_new_file_fopen+0x1f0> + 413566: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41356d: 00 00 00 + 413570: 44 0f b6 4a 03 movzbl 0x3(%rdx),%r9d + 413575: 4c 8d 5a 03 lea 0x3(%rdx),%r11 + 413579: 41 80 f9 63 cmp $0x63,%r9b + 41357d: 0f 84 9f 05 00 00 je 413b22 <_IO_new_file_fopen+0x6c2> + 413583: 0f 8f f7 03 00 00 jg 413980 <_IO_new_file_fopen+0x520> + 413589: 41 80 f9 2b cmp $0x2b,%r9b + 41358d: 0f 84 7b 05 00 00 je 413b0e <_IO_new_file_fopen+0x6ae> + 413593: 41 80 f9 62 cmp $0x62,%r9b + 413597: 0f 84 f9 04 00 00 je 413a96 <_IO_new_file_fopen+0x636> + 41359d: 45 84 c9 test %r9b,%r9b + 4135a0: 0f 84 aa 00 00 00 je 413650 <_IO_new_file_fopen+0x1f0> + 4135a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4135ad: 00 00 00 + 4135b0: 44 0f b6 4a 04 movzbl 0x4(%rdx),%r9d + 4135b5: 4c 8d 5a 04 lea 0x4(%rdx),%r11 + 4135b9: 41 80 f9 63 cmp $0x63,%r9b + 4135bd: 0f 84 85 05 00 00 je 413b48 <_IO_new_file_fopen+0x6e8> + 4135c3: 0f 8f 17 04 00 00 jg 4139e0 <_IO_new_file_fopen+0x580> + 4135c9: 41 80 f9 2b cmp $0x2b,%r9b + 4135cd: 0f 84 61 05 00 00 je 413b34 <_IO_new_file_fopen+0x6d4> + 4135d3: 41 80 f9 62 cmp $0x62,%r9b + 4135d7: 0f 84 c5 04 00 00 je 413aa2 <_IO_new_file_fopen+0x642> + 4135dd: 45 84 c9 test %r9b,%r9b + 4135e0: 74 6e je 413650 <_IO_new_file_fopen+0x1f0> + 4135e2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4135e8: 44 0f b6 4a 05 movzbl 0x5(%rdx),%r9d + 4135ed: 4c 8d 5a 05 lea 0x5(%rdx),%r11 + 4135f1: 41 80 f9 63 cmp $0x63,%r9b + 4135f5: 0f 84 7c 05 00 00 je 413b77 <_IO_new_file_fopen+0x717> + 4135fb: 0f 8f 0f 04 00 00 jg 413a10 <_IO_new_file_fopen+0x5b0> + 413601: 41 80 f9 2b cmp $0x2b,%r9b + 413605: 0f 84 58 05 00 00 je 413b63 <_IO_new_file_fopen+0x703> + 41360b: 41 80 f9 62 cmp $0x62,%r9b + 41360f: 0f 84 99 04 00 00 je 413aae <_IO_new_file_fopen+0x64e> + 413615: 45 84 c9 test %r9b,%r9b + 413618: 74 36 je 413650 <_IO_new_file_fopen+0x1f0> + 41361a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 413620: 4c 8d 4a 06 lea 0x6(%rdx),%r9 + 413624: 0f b6 52 06 movzbl 0x6(%rdx),%edx + 413628: 80 fa 63 cmp $0x63,%dl + 41362b: 0f 84 88 05 00 00 je 413bb9 <_IO_new_file_fopen+0x759> + 413631: 0f 8f 09 04 00 00 jg 413a40 <_IO_new_file_fopen+0x5e0> + 413637: 80 fa 2b cmp $0x2b,%dl + 41363a: 0f 84 65 05 00 00 je 413ba5 <_IO_new_file_fopen+0x745> + 413640: 80 fa 62 cmp $0x62,%dl + 413643: 4d 0f 44 e1 cmove %r9,%r12 + 413647: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 41364e: 00 00 + 413650: 44 89 d2 mov %r10d,%edx + 413653: 41 89 c9 mov %ecx,%r9d + 413656: b9 b6 01 00 00 mov $0x1b6,%ecx + 41365b: 09 c2 or %eax,%edx + 41365d: 48 89 fb mov %rdi,%rbx + 413660: e8 fb f9 ff ff callq 413060 <_IO_file_open> + 413665: 48 85 c0 test %rax,%rax + 413668: 48 89 c5 mov %rax,%rbp + 41366b: 0f 84 57 fe ff ff je 4134c8 <_IO_new_file_fopen+0x68> + 413671: 49 8d 7c 24 01 lea 0x1(%r12),%rdi + 413676: be 30 1c 4a 00 mov $0x4a1c30,%esi + 41367b: e8 a0 cc fe ff callq 400320 <__rela_iplt_end+0x58> + 413680: 48 85 c0 test %rax,%rax + 413683: 49 89 c5 mov %rax,%r13 + 413686: 0f 84 f4 03 00 00 je 413a80 <_IO_new_file_fopen+0x620> + 41368c: 4c 8d 78 05 lea 0x5(%rax),%r15 + 413690: be 2c 00 00 00 mov $0x2c,%esi + 413695: 4c 89 ff mov %r15,%rdi + 413698: e8 43 95 01 00 callq 42cbe0 <__strchrnul> + 41369d: 4c 29 f8 sub %r15,%rax + 4136a0: 48 8d 78 03 lea 0x3(%rax),%rdi + 4136a4: 49 89 c6 mov %rax,%r14 + 4136a7: e8 64 a3 00 00 callq 41da10 <__libc_malloc> + 4136ac: 48 85 c0 test %rax,%rax + 4136af: 49 89 c4 mov %rax,%r12 + 4136b2: 0f 84 f2 fd ff ff je 4134aa <_IO_new_file_fopen+0x4a> + 4136b8: 4c 89 f2 mov %r14,%rdx + 4136bb: 4c 89 fe mov %r15,%rsi + 4136be: 48 89 c7 mov %rax,%rdi + 4136c1: e8 fa 2e 01 00 callq 4265c0 <__mempcpy> + 4136c6: c6 00 00 movb $0x0,(%rax) + 4136c9: 45 0f b6 04 24 movzbl (%r12),%r8d + 4136ce: 45 84 c0 test %r8b,%r8b + 4136d1: 0f 84 08 05 00 00 je 413bdf <_IO_new_file_fopen+0x77f> + 4136d7: 4c 8b 1d 0a f0 09 00 mov 0x9f00a(%rip),%r11 # 4b26e8 <_nl_C_locobj+0x68> + 4136de: 4c 8b 35 13 f0 09 00 mov 0x9f013(%rip),%r14 # 4b26f8 <_nl_C_locobj+0x78> + 4136e5: 4d 89 e1 mov %r12,%r9 + 4136e8: 4c 89 e0 mov %r12,%rax + 4136eb: 45 31 ff xor %r15d,%r15d + 4136ee: 49 ba 07 40 00 00 00 movabs $0x8000000004007,%r10 + 4136f5: 00 08 00 + 4136f8: eb 26 jmp 413720 <_IO_new_file_fopen+0x2c0> + 4136fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 413700: 41 80 f8 2f cmp $0x2f,%r8b + 413704: 0f 84 26 02 00 00 je 413930 <_IO_new_file_fopen+0x4d0> + 41370a: 49 83 c1 01 add $0x1,%r9 + 41370e: 45 0f b6 01 movzbl (%r9),%r8d + 413712: 45 84 c0 test %r8b,%r8b + 413715: 74 54 je 41376b <_IO_new_file_fopen+0x30b> + 413717: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 41371e: 00 00 + 413720: 49 0f be f8 movsbq %r8b,%rdi + 413724: 41 8d 48 d4 lea -0x2c(%r8),%ecx + 413728: ba 01 00 00 00 mov $0x1,%edx + 41372d: 41 0f b7 34 7b movzwl (%r11,%rdi,2),%esi + 413732: 66 c1 ee 03 shr $0x3,%si + 413736: 83 e6 01 and $0x1,%esi + 413739: 80 f9 33 cmp $0x33,%cl + 41373c: 77 10 ja 41374e <_IO_new_file_fopen+0x2ee> + 41373e: 4c 89 d2 mov %r10,%rdx + 413741: 48 d3 ea shr %cl,%rdx + 413744: 83 e2 01 and $0x1,%edx + 413747: 48 83 f2 01 xor $0x1,%rdx + 41374b: 83 e2 01 and $0x1,%edx + 41374e: 40 38 f2 cmp %sil,%dl + 413751: 77 ad ja 413700 <_IO_new_file_fopen+0x2a0> + 413753: 41 8b 14 be mov (%r14,%rdi,4),%edx + 413757: 49 83 c1 01 add $0x1,%r9 + 41375b: 48 83 c0 01 add $0x1,%rax + 41375f: 88 50 ff mov %dl,-0x1(%rax) + 413762: 45 0f b6 01 movzbl (%r9),%r8d + 413766: 45 84 c0 test %r8b,%r8b + 413769: 75 b5 jne 413720 <_IO_new_file_fopen+0x2c0> + 41376b: 41 83 ff 01 cmp $0x1,%r15d + 41376f: 7f 17 jg 413788 <_IO_new_file_fopen+0x328> + 413771: 45 85 ff test %r15d,%r15d + 413774: 48 8d 50 01 lea 0x1(%rax),%rdx + 413778: c6 00 2f movb $0x2f,(%rax) + 41377b: 0f 85 56 04 00 00 jne 413bd7 <_IO_new_file_fopen+0x777> + 413781: 48 8d 42 01 lea 0x1(%rdx),%rax + 413785: c6 02 2f movb $0x2f,(%rdx) + 413788: c6 00 00 movb $0x0,(%rax) + 41378b: 41 80 7c 24 02 00 cmpb $0x0,0x2(%r12) + 413791: 75 22 jne 4137b5 <_IO_new_file_fopen+0x355> + 413793: 48 8b 0d 5e ef 09 00 mov 0x9ef5e(%rip),%rcx # 4b26f8 <_nl_C_locobj+0x78> + 41379a: 31 c0 xor %eax,%eax + 41379c: 0f 1f 40 00 nopl 0x0(%rax) + 4137a0: 49 0f be 54 05 05 movsbq 0x5(%r13,%rax,1),%rdx + 4137a6: 8b 14 91 mov (%rcx,%rdx,4),%edx + 4137a9: 41 88 14 04 mov %dl,(%r12,%rax,1) + 4137ad: 48 83 c0 01 add $0x1,%rax + 4137b1: 84 d2 test %dl,%dl + 4137b3: 75 eb jne 4137a0 <_IO_new_file_fopen+0x340> + 4137b5: 4c 89 e6 mov %r12,%rsi + 4137b8: 48 89 e7 mov %rsp,%rdi + 4137bb: e8 10 af 02 00 callq 43e6d0 <__wcsmbs_named_conv> + 4137c0: 85 c0 test %eax,%eax + 4137c2: 0f 85 b8 03 00 00 jne 413b80 <_IO_new_file_fopen+0x720> + 4137c8: 4c 89 e7 mov %r12,%rdi + 4137cb: e8 e0 a5 00 00 callq 41ddb0 <__cfree> + 4137d0: 48 83 7c 24 08 01 cmpq $0x1,0x8(%rsp) + 4137d6: 0f 85 2b 04 00 00 jne 413c07 <_IO_new_file_fopen+0x7a7> + 4137dc: 48 83 7c 24 18 01 cmpq $0x1,0x18(%rsp) + 4137e2: 0f 85 06 04 00 00 jne 413bee <_IO_new_file_fopen+0x78e> + 4137e8: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 4137ef: be e0 45 4b 00 mov $0x4b45e0,%esi + 4137f4: b9 18 00 00 00 mov $0x18,%ecx + 4137f9: 48 8b 50 08 mov 0x8(%rax),%rdx + 4137fd: 48 c7 40 58 00 00 00 movq $0x0,0x58(%rax) + 413804: 00 + 413805: 48 89 10 mov %rdx,(%rax) + 413808: 48 8b 50 18 mov 0x18(%rax),%rdx + 41380c: 48 89 50 20 mov %rdx,0x20(%rax) + 413810: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 413817: 48 c7 40 60 00 00 00 movq $0x0,0x60(%rax) + 41381e: 00 + 41381f: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 413826: 48 8d 50 68 lea 0x68(%rax),%rdx + 41382a: 48 89 93 98 00 00 00 mov %rdx,0x98(%rbx) + 413831: 48 89 d7 mov %rdx,%rdi + 413834: 48 8b 14 24 mov (%rsp),%rdx + 413838: f3 48 a5 rep movsq %ds:(%rsi),%es:(%rdi) + 41383b: 48 c7 80 a8 00 00 00 movq $0x1,0xa8(%rax) + 413842: 01 00 00 00 + 413846: c7 80 cc 00 00 00 00 movl $0x0,0xcc(%rax) + 41384d: 00 00 00 + 413850: 48 89 90 b0 00 00 00 mov %rdx,0xb0(%rax) + 413857: c7 80 d0 00 00 00 01 movl $0x1,0xd0(%rax) + 41385e: 00 00 00 + 413861: c7 80 c8 00 00 00 01 movl $0x1,0xc8(%rax) + 413868: 00 00 00 + 41386b: 48 8b 8d a0 00 00 00 mov 0xa0(%rbp),%rcx + 413872: 48 c7 80 e8 00 00 00 movq $0x1,0xe8(%rax) + 413879: 01 00 00 00 + 41387d: c7 80 0c 01 00 00 00 movl $0x0,0x10c(%rax) + 413884: 00 00 00 + 413887: c7 80 10 01 00 00 01 movl $0x1,0x110(%rax) + 41388e: 00 00 00 + 413891: c7 80 08 01 00 00 09 movl $0x9,0x108(%rax) + 413898: 00 00 00 + 41389b: 48 8d 51 58 lea 0x58(%rcx),%rdx + 41389f: 48 89 90 d8 00 00 00 mov %rdx,0xd8(%rax) + 4138a6: 48 8b 54 24 10 mov 0x10(%rsp),%rdx + 4138ab: 48 89 90 f0 00 00 00 mov %rdx,0xf0(%rax) + 4138b2: 48 8b 8d a0 00 00 00 mov 0xa0(%rbp),%rcx + 4138b9: 48 8d 51 58 lea 0x58(%rcx),%rdx + 4138bd: 48 89 90 18 01 00 00 mov %rdx,0x118(%rax) + 4138c4: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 4138cb: 48 8b 80 30 01 00 00 mov 0x130(%rax),%rax + 4138d2: 48 89 83 d8 00 00 00 mov %rax,0xd8(%rbx) + 4138d9: c7 85 c0 00 00 00 01 movl $0x1,0xc0(%rbp) + 4138e0: 00 00 00 + 4138e3: 48 83 c4 28 add $0x28,%rsp + 4138e7: 5b pop %rbx + 4138e8: 48 89 e8 mov %rbp,%rax + 4138eb: 5d pop %rbp + 4138ec: 41 5c pop %r12 + 4138ee: 41 5d pop %r13 + 4138f0: 41 5e pop %r14 + 4138f2: 41 5f pop %r15 + 4138f4: c3 retq + 4138f5: 0f 1f 00 nopl (%rax) + 4138f8: 41 80 f9 6d cmp $0x6d,%r9b + 4138fc: 0f 84 c9 01 00 00 je 413acb <_IO_new_file_fopen+0x66b> + 413902: 41 80 f9 78 cmp $0x78,%r9b + 413906: 0f 84 aa 01 00 00 je 413ab6 <_IO_new_file_fopen+0x656> + 41390c: 41 80 f9 65 cmp $0x65,%r9b + 413910: 0f 85 10 fc ff ff jne 413526 <_IO_new_file_fopen+0xc6> + 413916: 41 81 ca 00 00 08 00 or $0x80000,%r10d + 41391d: 83 4f 74 40 orl $0x40,0x74(%rdi) + 413921: 49 89 d4 mov %rdx,%r12 + 413924: e9 07 fc ff ff jmpq 413530 <_IO_new_file_fopen+0xd0> + 413929: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 413930: 41 83 c7 01 add $0x1,%r15d + 413934: 41 83 ff 03 cmp $0x3,%r15d + 413938: 0f 84 4a fe ff ff je 413788 <_IO_new_file_fopen+0x328> + 41393e: c6 00 2f movb $0x2f,(%rax) + 413941: 48 83 c0 01 add $0x1,%rax + 413945: e9 c0 fd ff ff jmpq 41370a <_IO_new_file_fopen+0x2aa> + 41394a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 413950: 41 80 f9 6d cmp $0x6d,%r9b + 413954: 0f 84 8e 01 00 00 je 413ae8 <_IO_new_file_fopen+0x688> + 41395a: 41 80 f9 78 cmp $0x78,%r9b + 41395e: 0f 84 07 01 00 00 je 413a6b <_IO_new_file_fopen+0x60b> + 413964: 41 80 f9 65 cmp $0x65,%r9b + 413968: 0f 85 02 fc ff ff jne 413570 <_IO_new_file_fopen+0x110> + 41396e: 41 81 ca 00 00 08 00 or $0x80000,%r10d + 413975: 83 4f 74 40 orl $0x40,0x74(%rdi) + 413979: e9 f2 fb ff ff jmpq 413570 <_IO_new_file_fopen+0x110> + 41397e: 66 90 xchg %ax,%ax + 413980: 41 80 f9 6d cmp $0x6d,%r9b + 413984: 0f 84 a1 01 00 00 je 413b2b <_IO_new_file_fopen+0x6cb> + 41398a: 41 80 f9 78 cmp $0x78,%r9b + 41398e: 0f 84 fe 00 00 00 je 413a92 <_IO_new_file_fopen+0x632> + 413994: 41 80 f9 65 cmp $0x65,%r9b + 413998: 0f 85 12 fc ff ff jne 4135b0 <_IO_new_file_fopen+0x150> + 41399e: 41 81 ca 00 00 08 00 or $0x80000,%r10d + 4139a5: 83 4f 74 40 orl $0x40,0x74(%rdi) + 4139a9: e9 02 fc ff ff jmpq 4135b0 <_IO_new_file_fopen+0x150> + 4139ae: 66 90 xchg %ax,%ax + 4139b0: 41 b8 04 10 00 00 mov $0x1004,%r8d + 4139b6: b8 01 00 00 00 mov $0x1,%eax + 4139bb: 41 ba 40 04 00 00 mov $0x440,%r10d + 4139c1: e9 2b fb ff ff jmpq 4134f1 <_IO_new_file_fopen+0x91> + 4139c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4139cd: 00 00 00 + 4139d0: 41 b8 08 00 00 00 mov $0x8,%r8d + 4139d6: 31 c0 xor %eax,%eax + 4139d8: 45 31 d2 xor %r10d,%r10d + 4139db: e9 11 fb ff ff jmpq 4134f1 <_IO_new_file_fopen+0x91> + 4139e0: 41 80 f9 6d cmp $0x6d,%r9b + 4139e4: 0f 84 67 01 00 00 je 413b51 <_IO_new_file_fopen+0x6f1> + 4139ea: 41 80 f9 78 cmp $0x78,%r9b + 4139ee: 0f 84 aa 00 00 00 je 413a9e <_IO_new_file_fopen+0x63e> + 4139f4: 41 80 f9 65 cmp $0x65,%r9b + 4139f8: 0f 85 ea fb ff ff jne 4135e8 <_IO_new_file_fopen+0x188> + 4139fe: 41 81 ca 00 00 08 00 or $0x80000,%r10d + 413a05: 83 4f 74 40 orl $0x40,0x74(%rdi) + 413a09: e9 da fb ff ff jmpq 4135e8 <_IO_new_file_fopen+0x188> + 413a0e: 66 90 xchg %ax,%ax + 413a10: 41 80 f9 6d cmp $0x6d,%r9b + 413a14: 0f 84 40 01 00 00 je 413b5a <_IO_new_file_fopen+0x6fa> + 413a1a: 41 80 f9 78 cmp $0x78,%r9b + 413a1e: 0f 84 86 00 00 00 je 413aaa <_IO_new_file_fopen+0x64a> + 413a24: 41 80 f9 65 cmp $0x65,%r9b + 413a28: 0f 85 f2 fb ff ff jne 413620 <_IO_new_file_fopen+0x1c0> + 413a2e: 41 81 ca 00 00 08 00 or $0x80000,%r10d + 413a35: 83 4f 74 40 orl $0x40,0x74(%rdi) + 413a39: e9 e2 fb ff ff jmpq 413620 <_IO_new_file_fopen+0x1c0> + 413a3e: 66 90 xchg %ax,%ax + 413a40: 80 fa 6d cmp $0x6d,%dl + 413a43: 0f 84 79 01 00 00 je 413bc2 <_IO_new_file_fopen+0x762> + 413a49: 80 fa 78 cmp $0x78,%dl + 413a4c: 0f 84 79 01 00 00 je 413bcb <_IO_new_file_fopen+0x76b> + 413a52: 80 fa 65 cmp $0x65,%dl + 413a55: 0f 85 f5 fb ff ff jne 413650 <_IO_new_file_fopen+0x1f0> + 413a5b: 41 81 ca 00 00 08 00 or $0x80000,%r10d + 413a62: 83 4f 74 40 orl $0x40,0x74(%rdi) + 413a66: e9 e5 fb ff ff jmpq 413650 <_IO_new_file_fopen+0x1f0> + 413a6b: 41 80 ca 80 or $0x80,%r10b + 413a6f: 4d 89 dc mov %r11,%r12 + 413a72: e9 f9 fa ff ff jmpq 413570 <_IO_new_file_fopen+0x110> + 413a77: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 413a7e: 00 00 + 413a80: 48 83 c4 28 add $0x28,%rsp + 413a84: 48 89 e8 mov %rbp,%rax + 413a87: 5b pop %rbx + 413a88: 5d pop %rbp + 413a89: 41 5c pop %r12 + 413a8b: 41 5d pop %r13 + 413a8d: 41 5e pop %r14 + 413a8f: 41 5f pop %r15 + 413a91: c3 retq + 413a92: 41 80 ca 80 or $0x80,%r10b + 413a96: 4d 89 dc mov %r11,%r12 + 413a99: e9 12 fb ff ff jmpq 4135b0 <_IO_new_file_fopen+0x150> + 413a9e: 41 80 ca 80 or $0x80,%r10b + 413aa2: 4d 89 dc mov %r11,%r12 + 413aa5: e9 3e fb ff ff jmpq 4135e8 <_IO_new_file_fopen+0x188> + 413aaa: 41 80 ca 80 or $0x80,%r10b + 413aae: 4d 89 dc mov %r11,%r12 + 413ab1: e9 6a fb ff ff jmpq 413620 <_IO_new_file_fopen+0x1c0> + 413ab6: 41 80 ca 80 or $0x80,%r10b + 413aba: e9 71 fa ff ff jmpq 413530 <_IO_new_file_fopen+0xd0> + 413abf: 83 4f 74 02 orl $0x2,0x74(%rdi) + 413ac3: 49 89 d4 mov %rdx,%r12 + 413ac6: e9 65 fa ff ff jmpq 413530 <_IO_new_file_fopen+0xd0> + 413acb: 83 4f 74 01 orl $0x1,0x74(%rdi) + 413acf: 49 89 d4 mov %rdx,%r12 + 413ad2: e9 59 fa ff ff jmpq 413530 <_IO_new_file_fopen+0xd0> + 413ad7: 41 81 e0 00 10 00 00 and $0x1000,%r8d + 413ade: b8 02 00 00 00 mov $0x2,%eax + 413ae3: e9 48 fa ff ff jmpq 413530 <_IO_new_file_fopen+0xd0> + 413ae8: 83 4f 74 01 orl $0x1,0x74(%rdi) + 413aec: e9 7f fa ff ff jmpq 413570 <_IO_new_file_fopen+0x110> + 413af1: 83 4f 74 02 orl $0x2,0x74(%rdi) + 413af5: e9 76 fa ff ff jmpq 413570 <_IO_new_file_fopen+0x110> + 413afa: 41 81 e0 00 10 00 00 and $0x1000,%r8d + 413b01: 4d 89 dc mov %r11,%r12 + 413b04: b8 02 00 00 00 mov $0x2,%eax + 413b09: e9 62 fa ff ff jmpq 413570 <_IO_new_file_fopen+0x110> + 413b0e: 41 81 e0 00 10 00 00 and $0x1000,%r8d + 413b15: 4d 89 dc mov %r11,%r12 + 413b18: b8 02 00 00 00 mov $0x2,%eax + 413b1d: e9 8e fa ff ff jmpq 4135b0 <_IO_new_file_fopen+0x150> + 413b22: 83 4f 74 02 orl $0x2,0x74(%rdi) + 413b26: e9 85 fa ff ff jmpq 4135b0 <_IO_new_file_fopen+0x150> + 413b2b: 83 4f 74 01 orl $0x1,0x74(%rdi) + 413b2f: e9 7c fa ff ff jmpq 4135b0 <_IO_new_file_fopen+0x150> + 413b34: 41 81 e0 00 10 00 00 and $0x1000,%r8d + 413b3b: 4d 89 dc mov %r11,%r12 + 413b3e: b8 02 00 00 00 mov $0x2,%eax + 413b43: e9 a0 fa ff ff jmpq 4135e8 <_IO_new_file_fopen+0x188> + 413b48: 83 4f 74 02 orl $0x2,0x74(%rdi) + 413b4c: e9 97 fa ff ff jmpq 4135e8 <_IO_new_file_fopen+0x188> + 413b51: 83 4f 74 01 orl $0x1,0x74(%rdi) + 413b55: e9 8e fa ff ff jmpq 4135e8 <_IO_new_file_fopen+0x188> + 413b5a: 83 4f 74 01 orl $0x1,0x74(%rdi) + 413b5e: e9 bd fa ff ff jmpq 413620 <_IO_new_file_fopen+0x1c0> + 413b63: 41 81 e0 00 10 00 00 and $0x1000,%r8d + 413b6a: 4d 89 dc mov %r11,%r12 + 413b6d: b8 02 00 00 00 mov $0x2,%eax + 413b72: e9 a9 fa ff ff jmpq 413620 <_IO_new_file_fopen+0x1c0> + 413b77: 83 4f 74 02 orl $0x2,0x74(%rdi) + 413b7b: e9 a0 fa ff ff jmpq 413620 <_IO_new_file_fopen+0x1c0> + 413b80: 48 89 df mov %rbx,%rdi + 413b83: e8 58 f7 ff ff callq 4132e0 <_IO_new_file_close_it> + 413b88: 4c 89 e7 mov %r12,%rdi + 413b8b: e8 20 a2 00 00 callq 41ddb0 <__cfree> + 413b90: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 413b97: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) + 413b9e: 31 c0 xor %eax,%eax + 413ba0: e9 25 f9 ff ff jmpq 4134ca <_IO_new_file_fopen+0x6a> + 413ba5: 41 81 e0 00 10 00 00 and $0x1000,%r8d + 413bac: 4d 89 cc mov %r9,%r12 + 413baf: b8 02 00 00 00 mov $0x2,%eax + 413bb4: e9 97 fa ff ff jmpq 413650 <_IO_new_file_fopen+0x1f0> + 413bb9: 83 4f 74 02 orl $0x2,0x74(%rdi) + 413bbd: e9 8e fa ff ff jmpq 413650 <_IO_new_file_fopen+0x1f0> + 413bc2: 83 4f 74 01 orl $0x1,0x74(%rdi) + 413bc6: e9 85 fa ff ff jmpq 413650 <_IO_new_file_fopen+0x1f0> + 413bcb: 41 80 ca 80 or $0x80,%r10b + 413bcf: 4d 89 cc mov %r9,%r12 + 413bd2: e9 79 fa ff ff jmpq 413650 <_IO_new_file_fopen+0x1f0> + 413bd7: 48 89 d0 mov %rdx,%rax + 413bda: e9 a9 fb ff ff jmpq 413788 <_IO_new_file_fopen+0x328> + 413bdf: 49 8d 54 24 01 lea 0x1(%r12),%rdx + 413be4: 41 c6 04 24 2f movb $0x2f,(%r12) + 413be9: e9 93 fb ff ff jmpq 413781 <_IO_new_file_fopen+0x321> + 413bee: b9 70 1c 4a 00 mov $0x4a1c70,%ecx + 413bf3: ba 80 01 00 00 mov $0x180,%edx + 413bf8: be 54 19 4a 00 mov $0x4a1954,%esi + 413bfd: bf 4c 1c 4a 00 mov $0x4a1c4c,%edi + 413c02: e8 39 db fe ff callq 401740 <__assert_fail> + 413c07: b9 70 1c 4a 00 mov $0x4a1c70,%ecx + 413c0c: ba 7f 01 00 00 mov $0x17f,%edx + 413c11: be 54 19 4a 00 mov $0x4a1954,%esi + 413c16: bf 36 1c 4a 00 mov $0x4a1c36,%edi + 413c1b: e8 20 db fe ff callq 401740 <__assert_fail> + +0000000000413c20 <_IO_new_file_finish>: + 413c20: 53 push %rbx + 413c21: 83 7f 70 ff cmpl $0xffffffff,0x70(%rdi) + 413c25: 48 89 fb mov %rdi,%rbx + 413c28: 74 2a je 413c54 <_IO_new_file_finish+0x34> + 413c2a: 8b 87 c0 00 00 00 mov 0xc0(%rdi),%eax + 413c30: 85 c0 test %eax,%eax + 413c32: 7e 4c jle 413c80 <_IO_new_file_finish+0x60> + 413c34: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax + 413c3b: 48 8b 70 18 mov 0x18(%rax),%rsi + 413c3f: 48 8b 50 20 mov 0x20(%rax),%rdx + 413c43: 48 29 f2 sub %rsi,%rdx + 413c46: 48 c1 fa 02 sar $0x2,%rdx + 413c4a: e8 e1 cd ff ff callq 410a30 <_IO_wdo_write> + 413c4f: f6 03 40 testb $0x40,(%rbx) + 413c52: 74 0c je 413c60 <_IO_new_file_finish+0x40> + 413c54: 48 89 df mov %rbx,%rdi + 413c57: 31 f6 xor %esi,%esi + 413c59: 5b pop %rbx + 413c5a: e9 b1 19 00 00 jmpq 415610 <_IO_default_finish> + 413c5f: 90 nop + 413c60: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 413c67: 48 89 df mov %rbx,%rdi + 413c6a: ff 90 88 00 00 00 callq *0x88(%rax) + 413c70: 48 89 df mov %rbx,%rdi + 413c73: 31 f6 xor %esi,%esi + 413c75: 5b pop %rbx + 413c76: e9 95 19 00 00 jmpq 415610 <_IO_default_finish> + 413c7b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 413c80: 48 8b 77 20 mov 0x20(%rdi),%rsi + 413c84: 48 8b 57 28 mov 0x28(%rdi),%rdx + 413c88: 48 29 f2 sub %rsi,%rdx + 413c8b: e8 40 f5 ff ff callq 4131d0 <_IO_new_do_write> + 413c90: eb bd jmp 413c4f <_IO_new_file_finish+0x2f> + 413c92: 0f 1f 40 00 nopl 0x0(%rax) + 413c96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 413c9d: 00 00 00 + +0000000000413ca0 <_IO_new_file_overflow>: + 413ca0: 8b 0f mov (%rdi),%ecx + 413ca2: f6 c1 08 test $0x8,%cl + 413ca5: 0f 85 95 01 00 00 jne 413e40 <_IO_new_file_overflow+0x1a0> + 413cab: f6 c5 08 test $0x8,%ch + 413cae: 41 54 push %r12 + 413cb0: 55 push %rbp + 413cb1: 89 f5 mov %esi,%ebp + 413cb3: 53 push %rbx + 413cb4: 48 89 fb mov %rdi,%rbx + 413cb7: 74 4f je 413d08 <_IO_new_file_overflow+0x68> + 413cb9: 48 8b 77 20 mov 0x20(%rdi),%rsi + 413cbd: 48 85 f6 test %rsi,%rsi + 413cc0: 0f 84 9a 01 00 00 je 413e60 <_IO_new_file_overflow+0x1c0> + 413cc6: 48 8b 57 28 mov 0x28(%rdi),%rdx + 413cca: 83 fd ff cmp $0xffffffff,%ebp + 413ccd: 0f 84 4d 01 00 00 je 413e20 <_IO_new_file_overflow+0x180> + 413cd3: 48 39 53 40 cmp %rdx,0x40(%rbx) + 413cd7: 0f 84 fb 00 00 00 je 413dd8 <_IO_new_file_overflow+0x138> + 413cdd: 48 8d 42 01 lea 0x1(%rdx),%rax + 413ce1: 48 89 43 28 mov %rax,0x28(%rbx) + 413ce5: 40 88 2a mov %bpl,(%rdx) + 413ce8: 8b 03 mov (%rbx),%eax + 413cea: a8 02 test $0x2,%al + 413cec: 0f 85 86 00 00 00 jne 413d78 <_IO_new_file_overflow+0xd8> + 413cf2: f6 c4 02 test $0x2,%ah + 413cf5: 74 05 je 413cfc <_IO_new_file_overflow+0x5c> + 413cf7: 83 fd 0a cmp $0xa,%ebp + 413cfa: 74 7c je 413d78 <_IO_new_file_overflow+0xd8> + 413cfc: 40 0f b6 c5 movzbl %bpl,%eax + 413d00: 5b pop %rbx + 413d01: 5d pop %rbp + 413d02: 41 5c pop %r12 + 413d04: c3 retq + 413d05: 0f 1f 00 nopl (%rax) + 413d08: 48 83 7f 20 00 cmpq $0x0,0x20(%rdi) + 413d0d: 0f 84 4d 01 00 00 je 413e60 <_IO_new_file_overflow+0x1c0> + 413d13: 48 8b 57 08 mov 0x8(%rdi),%rdx + 413d17: f6 c5 01 test $0x1,%ch + 413d1a: 0f 85 80 00 00 00 jne 413da0 <_IO_new_file_overflow+0x100> + 413d20: 48 8b 43 40 mov 0x40(%rbx),%rax + 413d24: 48 39 d0 cmp %rdx,%rax + 413d27: 0f 84 03 01 00 00 je 413e30 <_IO_new_file_overflow+0x190> + 413d2d: 48 8b 73 10 mov 0x10(%rbx),%rsi + 413d31: 8b bb c0 00 00 00 mov 0xc0(%rbx),%edi + 413d37: 48 89 43 30 mov %rax,0x30(%rbx) + 413d3b: 89 c8 mov %ecx,%eax + 413d3d: 80 cc 08 or $0x8,%ah + 413d40: 48 89 73 08 mov %rsi,0x8(%rbx) + 413d44: 48 89 73 18 mov %rsi,0x18(%rbx) + 413d48: 48 89 53 28 mov %rdx,0x28(%rbx) + 413d4c: 48 89 53 20 mov %rdx,0x20(%rbx) + 413d50: 48 89 d6 mov %rdx,%rsi + 413d53: 85 ff test %edi,%edi + 413d55: 89 03 mov %eax,(%rbx) + 413d57: 0f 8f 6d ff ff ff jg 413cca <_IO_new_file_overflow+0x2a> + 413d5d: 81 e1 02 02 00 00 and $0x202,%ecx + 413d63: 0f 84 61 ff ff ff je 413cca <_IO_new_file_overflow+0x2a> + 413d69: 48 89 53 30 mov %rdx,0x30(%rbx) + 413d6d: e9 58 ff ff ff jmpq 413cca <_IO_new_file_overflow+0x2a> + 413d72: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 413d78: 48 8b 73 20 mov 0x20(%rbx),%rsi + 413d7c: 48 8b 53 28 mov 0x28(%rbx),%rdx + 413d80: 48 89 df mov %rbx,%rdi + 413d83: 48 29 f2 sub %rsi,%rdx + 413d86: e8 45 f4 ff ff callq 4131d0 <_IO_new_do_write> + 413d8b: 83 f8 ff cmp $0xffffffff,%eax + 413d8e: 0f 85 68 ff ff ff jne 413cfc <_IO_new_file_overflow+0x5c> + 413d94: b8 ff ff ff ff mov $0xffffffff,%eax + 413d99: e9 62 ff ff ff jmpq 413d00 <_IO_new_file_overflow+0x60> + 413d9e: 66 90 xchg %ax,%ax + 413da0: 4c 8b 63 10 mov 0x10(%rbx),%r12 + 413da4: 48 89 df mov %rbx,%rdi + 413da7: 49 29 d4 sub %rdx,%r12 + 413daa: e8 81 0c 00 00 callq 414a30 <_IO_free_backup_area> + 413daf: 48 8b 53 18 mov 0x18(%rbx),%rdx + 413db3: 8b 0b mov (%rbx),%ecx + 413db5: 48 89 d0 mov %rdx,%rax + 413db8: 48 2b 43 38 sub 0x38(%rbx),%rax + 413dbc: 4c 39 e0 cmp %r12,%rax + 413dbf: 49 0f 47 c4 cmova %r12,%rax + 413dc3: 48 29 c2 sub %rax,%rdx + 413dc6: 48 89 53 18 mov %rdx,0x18(%rbx) + 413dca: 48 89 53 08 mov %rdx,0x8(%rbx) + 413dce: e9 4d ff ff ff jmpq 413d20 <_IO_new_file_overflow+0x80> + 413dd3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 413dd8: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax + 413dde: 85 c0 test %eax,%eax + 413de0: 0f 8e 9a 00 00 00 jle 413e80 <_IO_new_file_overflow+0x1e0> + 413de6: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 413ded: 48 89 df mov %rbx,%rdi + 413df0: 48 8b 70 18 mov 0x18(%rax),%rsi + 413df4: 48 8b 50 20 mov 0x20(%rax),%rdx + 413df8: 48 29 f2 sub %rsi,%rdx + 413dfb: 48 c1 fa 02 sar $0x2,%rdx + 413dff: e8 2c cc ff ff callq 410a30 <_IO_wdo_write> + 413e04: 83 f8 ff cmp $0xffffffff,%eax + 413e07: 0f 94 c0 sete %al + 413e0a: 84 c0 test %al,%al + 413e0c: 0f 85 82 ff ff ff jne 413d94 <_IO_new_file_overflow+0xf4> + 413e12: 48 8b 53 28 mov 0x28(%rbx),%rdx + 413e16: e9 c2 fe ff ff jmpq 413cdd <_IO_new_file_overflow+0x3d> + 413e1b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 413e20: 48 89 df mov %rbx,%rdi + 413e23: 48 29 f2 sub %rsi,%rdx + 413e26: 5b pop %rbx + 413e27: 5d pop %rbp + 413e28: 41 5c pop %r12 + 413e2a: e9 a1 f3 ff ff jmpq 4131d0 <_IO_new_do_write> + 413e2f: 90 nop + 413e30: 48 8b 53 38 mov 0x38(%rbx),%rdx + 413e34: 48 89 53 10 mov %rdx,0x10(%rbx) + 413e38: 48 89 d6 mov %rdx,%rsi + 413e3b: e9 f1 fe ff ff jmpq 413d31 <_IO_new_file_overflow+0x91> + 413e40: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 413e47: 83 c9 20 or $0x20,%ecx + 413e4a: 89 0f mov %ecx,(%rdi) + 413e4c: 64 c7 00 09 00 00 00 movl $0x9,%fs:(%rax) + 413e53: b8 ff ff ff ff mov $0xffffffff,%eax + 413e58: c3 retq + 413e59: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 413e60: 48 89 df mov %rbx,%rdi + 413e63: e8 98 0f 00 00 callq 414e00 <_IO_doallocbuf> + 413e68: 48 8b 53 38 mov 0x38(%rbx),%rdx + 413e6c: 8b 0b mov (%rbx),%ecx + 413e6e: 48 89 53 18 mov %rdx,0x18(%rbx) + 413e72: 48 89 53 08 mov %rdx,0x8(%rbx) + 413e76: 48 89 53 10 mov %rdx,0x10(%rbx) + 413e7a: e9 98 fe ff ff jmpq 413d17 <_IO_new_file_overflow+0x77> + 413e7f: 90 nop + 413e80: 48 29 f2 sub %rsi,%rdx + 413e83: 48 89 df mov %rbx,%rdi + 413e86: e8 45 f3 ff ff callq 4131d0 <_IO_new_do_write> + 413e8b: 83 f8 ff cmp $0xffffffff,%eax + 413e8e: 0f 94 c0 sete %al + 413e91: e9 74 ff ff ff jmpq 413e0a <_IO_new_file_overflow+0x16a> + 413e96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 413e9d: 00 00 00 + +0000000000413ea0 <_IO_new_file_sync>: + 413ea0: 53 push %rbx + 413ea1: 48 8b 57 28 mov 0x28(%rdi),%rdx + 413ea5: 48 89 fb mov %rdi,%rbx + 413ea8: 48 8b 77 20 mov 0x20(%rdi),%rsi + 413eac: 48 39 f2 cmp %rsi,%rdx + 413eaf: 76 2e jbe 413edf <_IO_new_file_sync+0x3f> + 413eb1: 8b 87 c0 00 00 00 mov 0xc0(%rdi),%eax + 413eb7: 85 c0 test %eax,%eax + 413eb9: 7e 6d jle 413f28 <_IO_new_file_sync+0x88> + 413ebb: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax + 413ec2: 48 8b 70 18 mov 0x18(%rax),%rsi + 413ec6: 48 8b 50 20 mov 0x20(%rax),%rdx + 413eca: 48 29 f2 sub %rsi,%rdx + 413ecd: 48 c1 fa 02 sar $0x2,%rdx + 413ed1: e8 5a cb ff ff callq 410a30 <_IO_wdo_write> + 413ed6: 85 c0 test %eax,%eax + 413ed8: 0f 95 c0 setne %al + 413edb: 84 c0 test %al,%al + 413edd: 75 6e jne 413f4d <_IO_new_file_sync+0xad> + 413edf: 48 8b 73 08 mov 0x8(%rbx),%rsi + 413ee3: 48 2b 73 10 sub 0x10(%rbx),%rsi + 413ee7: 75 17 jne 413f00 <_IO_new_file_sync+0x60> + 413ee9: 48 c7 83 90 00 00 00 movq $0xffffffffffffffff,0x90(%rbx) + 413ef0: ff ff ff ff + 413ef4: 31 c0 xor %eax,%eax + 413ef6: 5b pop %rbx + 413ef7: c3 retq + 413ef8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 413eff: 00 + 413f00: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 413f07: ba 01 00 00 00 mov $0x1,%edx + 413f0c: 48 89 df mov %rbx,%rdi + 413f0f: ff 90 80 00 00 00 callq *0x80(%rax) + 413f15: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 413f19: 74 25 je 413f40 <_IO_new_file_sync+0xa0> + 413f1b: 48 8b 43 08 mov 0x8(%rbx),%rax + 413f1f: 48 89 43 10 mov %rax,0x10(%rbx) + 413f23: eb c4 jmp 413ee9 <_IO_new_file_sync+0x49> + 413f25: 0f 1f 00 nopl (%rax) + 413f28: 48 29 f2 sub %rsi,%rdx + 413f2b: e8 a0 f2 ff ff callq 4131d0 <_IO_new_do_write> + 413f30: 85 c0 test %eax,%eax + 413f32: 0f 95 c0 setne %al + 413f35: eb a4 jmp 413edb <_IO_new_file_sync+0x3b> + 413f37: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 413f3e: 00 00 + 413f40: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 413f47: 64 83 38 1d cmpl $0x1d,%fs:(%rax) + 413f4b: 74 9c je 413ee9 <_IO_new_file_sync+0x49> + 413f4d: b8 ff ff ff ff mov $0xffffffff,%eax + 413f52: 5b pop %rbx + 413f53: c3 retq + 413f54: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 413f5b: 00 00 00 + 413f5e: 66 90 xchg %ax,%ax + +0000000000413f60 : + 413f60: 41 57 push %r15 + 413f62: 41 56 push %r14 + 413f64: 41 55 push %r13 + 413f66: 41 54 push %r12 + 413f68: 49 89 f4 mov %rsi,%r12 + 413f6b: 55 push %rbp + 413f6c: 53 push %rbx + 413f6d: 49 89 fd mov %rdi,%r13 + 413f70: 48 89 f5 mov %rsi,%rbp + 413f73: 48 83 ec 28 sub $0x28,%rsp + 413f77: 4c 8b 47 18 mov 0x18(%rdi),%r8 + 413f7b: 48 8b 47 60 mov 0x60(%rdi),%rax + 413f7f: 4d 29 c4 sub %r8,%r12 + 413f82: 48 85 c0 test %rax,%rax + 413f85: 0f 84 36 01 00 00 je 4140c1 + 413f8b: 4c 89 e3 mov %r12,%rbx + 413f8e: 48 89 c1 mov %rax,%rcx + 413f91: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 413f98: 48 63 79 10 movslq 0x10(%rcx),%rdi + 413f9c: 48 8b 09 mov (%rcx),%rcx + 413f9f: 48 39 fb cmp %rdi,%rbx + 413fa2: 48 0f 4f df cmovg %rdi,%rbx + 413fa6: 48 85 c9 test %rcx,%rcx + 413fa9: 75 ed jne 413f98 + 413fab: 49 8b 75 58 mov 0x58(%r13),%rsi + 413faf: 4d 8b 7d 48 mov 0x48(%r13),%r15 + 413fb3: 4c 89 e2 mov %r12,%rdx + 413fb6: 48 29 da sub %rbx,%rdx + 413fb9: 49 89 f6 mov %rsi,%r14 + 413fbc: 4d 29 fe sub %r15,%r14 + 413fbf: 4c 39 f2 cmp %r14,%rdx + 413fc2: 77 4c ja 414010 + 413fc4: 49 29 d6 sub %rdx,%r14 + 413fc7: 48 85 db test %rbx,%rbx + 413fca: 0f 88 0b 01 00 00 js 4140db + 413fd0: 48 85 d2 test %rdx,%rdx + 413fd3: 0f 85 c7 00 00 00 jne 4140a0 + 413fd9: 4d 01 fe add %r15,%r14 + 413fdc: 4c 89 e6 mov %r12,%rsi + 413fdf: 48 85 c0 test %rax,%rax + 413fe2: 4d 89 75 50 mov %r14,0x50(%r13) + 413fe6: 74 13 je 413ffb + 413fe8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 413fef: 00 + 413ff0: 29 70 10 sub %esi,0x10(%rax) + 413ff3: 48 8b 00 mov (%rax),%rax + 413ff6: 48 85 c0 test %rax,%rax + 413ff9: 75 f5 jne 413ff0 + 413ffb: 31 c0 xor %eax,%eax + 413ffd: 48 83 c4 28 add $0x28,%rsp + 414001: 5b pop %rbx + 414002: 5d pop %rbp + 414003: 41 5c pop %r12 + 414005: 41 5d pop %r13 + 414007: 41 5e pop %r14 + 414009: 41 5f pop %r15 + 41400b: c3 retq + 41400c: 0f 1f 40 00 nopl 0x0(%rax) + 414010: 48 8d 42 64 lea 0x64(%rdx),%rax + 414014: 4c 89 44 24 18 mov %r8,0x18(%rsp) + 414019: 48 89 74 24 10 mov %rsi,0x10(%rsp) + 41401e: 48 89 54 24 08 mov %rdx,0x8(%rsp) + 414023: 48 89 c7 mov %rax,%rdi + 414026: 48 89 04 24 mov %rax,(%rsp) + 41402a: e8 e1 99 00 00 callq 41da10 <__libc_malloc> + 41402f: 48 85 c0 test %rax,%rax + 414032: 0f 84 0b 01 00 00 je 414143 + 414038: 48 85 db test %rbx,%rbx + 41403b: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 414040: 48 8b 74 24 10 mov 0x10(%rsp),%rsi + 414045: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 + 41404a: 0f 88 b3 00 00 00 js 414103 + 414050: 4c 8d 70 64 lea 0x64(%rax),%r14 + 414054: 49 8d 34 18 lea (%r8,%rbx,1),%rsi + 414058: 48 89 44 24 08 mov %rax,0x8(%rsp) + 41405d: 4c 89 f7 mov %r14,%rdi + 414060: e8 bb 7f 01 00 callq 42c020 + 414065: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 + 41406a: 4c 89 ff mov %r15,%rdi + 41406d: 4c 89 4c 24 08 mov %r9,0x8(%rsp) + 414072: e8 39 9d 00 00 callq 41ddb0 <__cfree> + 414077: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 + 41407c: 4c 8b 3c 24 mov (%rsp),%r15 + 414080: 48 89 ee mov %rbp,%rsi + 414083: 49 8b 45 60 mov 0x60(%r13),%rax + 414087: 49 2b 75 18 sub 0x18(%r13),%rsi + 41408b: 4d 01 cf add %r9,%r15 + 41408e: 4d 89 4d 48 mov %r9,0x48(%r13) + 414092: 4d 89 7d 58 mov %r15,0x58(%r13) + 414096: e9 44 ff ff ff jmpq 413fdf + 41409b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4140a0: 4b 8d 3c 37 lea (%r15,%r14,1),%rdi + 4140a4: 49 8d 34 18 lea (%r8,%rbx,1),%rsi + 4140a8: e8 73 7f 01 00 callq 42c020 + 4140ad: 48 89 ee mov %rbp,%rsi + 4140b0: 4d 03 75 48 add 0x48(%r13),%r14 + 4140b4: 49 2b 75 18 sub 0x18(%r13),%rsi + 4140b8: 49 8b 45 60 mov 0x60(%r13),%rax + 4140bc: e9 1e ff ff ff jmpq 413fdf + 4140c1: 48 8b 77 58 mov 0x58(%rdi),%rsi + 4140c5: 4c 8b 7f 48 mov 0x48(%rdi),%r15 + 4140c9: 49 89 f6 mov %rsi,%r14 + 4140cc: 4d 29 fe sub %r15,%r14 + 4140cf: 4d 85 e4 test %r12,%r12 + 4140d2: 0f 89 01 ff ff ff jns 413fd9 + 4140d8: 4c 89 e3 mov %r12,%rbx + 4140db: 4b 8d 3c 37 lea (%r15,%r14,1),%rdi + 4140df: 48 89 da mov %rbx,%rdx + 4140e2: 48 01 de add %rbx,%rsi + 4140e5: 48 f7 da neg %rdx + 4140e8: e8 13 c2 fe ff callq 400300 <__rela_iplt_end+0x38> + 4140ed: 49 8b 75 18 mov 0x18(%r13),%rsi + 4140f1: 4c 89 f7 mov %r14,%rdi + 4140f4: 48 89 ea mov %rbp,%rdx + 4140f7: 48 29 df sub %rbx,%rdi + 4140fa: 49 03 7d 48 add 0x48(%r13),%rdi + 4140fe: 48 29 f2 sub %rsi,%rdx + 414101: eb a5 jmp 4140a8 + 414103: 4c 8d 70 64 lea 0x64(%rax),%r14 + 414107: 48 89 da mov %rbx,%rdx + 41410a: 48 01 de add %rbx,%rsi + 41410d: 48 f7 da neg %rdx + 414110: 4c 89 44 24 10 mov %r8,0x10(%rsp) + 414115: 48 89 44 24 08 mov %rax,0x8(%rsp) + 41411a: 4c 89 f7 mov %r14,%rdi + 41411d: e8 9e 24 01 00 callq 4265c0 <__mempcpy> + 414122: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 + 414127: 4c 89 e2 mov %r12,%rdx + 41412a: 48 89 c7 mov %rax,%rdi + 41412d: 4c 89 c6 mov %r8,%rsi + 414130: e8 8b 24 01 00 callq 4265c0 <__mempcpy> + 414135: 4d 8b 7d 48 mov 0x48(%r13),%r15 + 414139: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 + 41413e: e9 27 ff ff ff jmpq 41406a + 414143: b8 ff ff ff ff mov $0xffffffff,%eax + 414148: e9 b0 fe ff ff jmpq 413ffd + 41414d: 0f 1f 00 nopl (%rax) + +0000000000414150 : + 414150: 48 8b 05 39 84 2b 00 mov 0x2b8439(%rip),%rax # 6cc590 + 414157: 48 85 c0 test %rax,%rax + 41415a: 74 47 je 4141a3 + 41415c: f7 00 00 80 00 00 testl $0x8000,(%rax) + 414162: 75 3f jne 4141a3 + 414164: 48 8b 90 88 00 00 00 mov 0x88(%rax),%rdx + 41416b: 83 6a 04 01 subl $0x1,0x4(%rdx) + 41416f: 75 32 jne 4141a3 + 414171: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) + 414178: 00 + 414179: 83 3d 3c 90 2b 00 00 cmpl $0x0,0x2b903c(%rip) # 6cd1bc <__libc_multiple_threads> + 414180: 74 07 je 414189 + 414182: f0 ff 0a lock decl (%rdx) + 414185: 75 06 jne 41418d + 414187: eb 1a jmp 4141a3 + 414189: ff 0a decl (%rdx) + 41418b: 74 16 je 4141a3 + 41418d: 48 8d 3a lea (%rdx),%rdi + 414190: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 414197: e8 64 e4 02 00 callq 442600 <__lll_unlock_wake_private> + 41419c: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4141a3: 83 2d fa 83 2b 00 01 subl $0x1,0x2b83fa(%rip) # 6cc5a4 + 4141aa: 75 41 jne 4141ed + 4141ac: 48 c7 05 f1 83 2b 00 movq $0x0,0x2b83f1(%rip) # 6cc5a8 + 4141b3: 00 00 00 00 + 4141b7: 83 3d fe 8f 2b 00 00 cmpl $0x0,0x2b8ffe(%rip) # 6cd1bc <__libc_multiple_threads> + 4141be: 74 0b je 4141cb + 4141c0: f0 ff 0d d9 83 2b 00 lock decl 0x2b83d9(%rip) # 6cc5a0 + 4141c7: 75 0a jne 4141d3 + 4141c9: eb 22 jmp 4141ed + 4141cb: ff 0d cf 83 2b 00 decl 0x2b83cf(%rip) # 6cc5a0 + 4141d1: 74 1a je 4141ed + 4141d3: 48 8d 3d c6 83 2b 00 lea 0x2b83c6(%rip),%rdi # 6cc5a0 + 4141da: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4141e1: e8 1a e4 02 00 callq 442600 <__lll_unlock_wake_private> + 4141e6: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4141ed: f3 c3 repz retq + 4141ef: 90 nop + +00000000004141f0 <_IO_cleanup>: + 4141f0: 41 55 push %r13 + 4141f2: 41 54 push %r12 + 4141f4: 45 31 e4 xor %r12d,%r12d + 4141f7: 55 push %rbp + 4141f8: 53 push %rbx + 4141f9: 48 83 ec 08 sub $0x8,%rsp + 4141fd: 48 8b 1d bc 5e 2b 00 mov 0x2b5ebc(%rip),%rbx # 6ca0c0 <_IO_list_all> + 414204: 8b 2d 8e 83 2b 00 mov 0x2b838e(%rip),%ebp # 6cc598 <_IO_list_all_stamp> + 41420a: 48 85 db test %rbx,%rbx + 41420d: 75 47 jne 414256 <_IO_cleanup+0x66> + 41420f: e9 bc 01 00 00 jmpq 4143d0 <_IO_cleanup+0x1e0> + 414214: 0f 1f 40 00 nopl 0x0(%rax) + 414218: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 41421f: be ff ff ff ff mov $0xffffffff,%esi + 414224: 48 89 df mov %rbx,%rdi + 414227: ff 50 18 callq *0x18(%rax) + 41422a: 83 f8 ff cmp $0xffffffff,%eax + 41422d: 8b 15 65 83 2b 00 mov 0x2b8365(%rip),%edx # 6cc598 <_IO_list_all_stamp> + 414233: 0f 84 8f 01 00 00 je 4143c8 <_IO_cleanup+0x1d8> + 414239: 39 d5 cmp %edx,%ebp + 41423b: 48 c7 05 4a 83 2b 00 movq $0x0,0x2b834a(%rip) # 6cc590 + 414242: 00 00 00 00 + 414246: 74 41 je 414289 <_IO_cleanup+0x99> + 414248: 48 8b 1d 71 5e 2b 00 mov 0x2b5e71(%rip),%rbx # 6ca0c0 <_IO_list_all> + 41424f: 89 d5 mov %edx,%ebp + 414251: 48 85 db test %rbx,%rbx + 414254: 74 3e je 414294 <_IO_cleanup+0xa4> + 414256: 8b 8b c0 00 00 00 mov 0xc0(%rbx),%ecx + 41425c: 48 89 1d 2d 83 2b 00 mov %rbx,0x2b832d(%rip) # 6cc590 + 414263: 85 c9 test %ecx,%ecx + 414265: 0f 8e 45 01 00 00 jle 4143b0 <_IO_cleanup+0x1c0> + 41426b: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 414272: 48 8b 70 18 mov 0x18(%rax),%rsi + 414276: 48 39 70 20 cmp %rsi,0x20(%rax) + 41427a: 77 9c ja 414218 <_IO_cleanup+0x28> + 41427c: 48 c7 05 09 83 2b 00 movq $0x0,0x2b8309(%rip) # 6cc590 + 414283: 00 00 00 00 + 414287: 89 ea mov %ebp,%edx + 414289: 48 8b 5b 68 mov 0x68(%rbx),%rbx + 41428d: 89 d5 mov %edx,%ebp + 41428f: 48 85 db test %rbx,%rbx + 414292: 75 c2 jne 414256 <_IO_cleanup+0x66> + 414294: 48 8b 1d 25 5e 2b 00 mov 0x2b5e25(%rip),%rbx # 6ca0c0 <_IO_list_all> + 41429b: 48 85 db test %rbx,%rbx + 41429e: 0f 84 2c 01 00 00 je 4143d0 <_IO_cleanup+0x1e0> + 4142a4: 64 4c 8b 2c 25 10 00 mov %fs:0x10,%r13 + 4142ab: 00 00 + 4142ad: e9 95 00 00 00 jmpq 414347 <_IO_cleanup+0x157> + 4142b2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4142b8: 48 8b 83 88 00 00 00 mov 0x88(%rbx),%rax + 4142bf: 4c 89 68 08 mov %r13,0x8(%rax) + 4142c3: c7 40 04 01 00 00 00 movl $0x1,0x4(%rax) + 4142ca: 80 3d b7 82 2b 00 00 cmpb $0x0,0x2b82b7(%rip) # 6cc588 + 4142d1: 75 2b jne 4142fe <_IO_cleanup+0x10e> + 4142d3: 8b 03 mov (%rbx),%eax + 4142d5: a8 01 test $0x1,%al + 4142d7: 75 25 jne 4142fe <_IO_cleanup+0x10e> + 4142d9: 83 c8 01 or $0x1,%eax + 4142dc: 89 03 mov %eax,(%rbx) + 4142de: 48 8b 05 9b 82 2b 00 mov 0x2b829b(%rip),%rax # 6cc580 + 4142e5: 48 89 1d 94 82 2b 00 mov %rbx,0x2b8294(%rip) # 6cc580 + 4142ec: 48 89 83 a8 00 00 00 mov %rax,0xa8(%rbx) + 4142f3: 48 8b 43 38 mov 0x38(%rbx),%rax + 4142f7: 48 89 83 b0 00 00 00 mov %rax,0xb0(%rbx) + 4142fe: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 414305: 31 d2 xor %edx,%edx + 414307: 31 f6 xor %esi,%esi + 414309: 48 89 df mov %rbx,%rdi + 41430c: ff 50 58 callq *0x58(%rax) + 41430f: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax + 414315: 85 c0 test %eax,%eax + 414317: 7e 0e jle 414327 <_IO_cleanup+0x137> + 414319: 31 c9 xor %ecx,%ecx + 41431b: 31 d2 xor %edx,%edx + 41431d: 31 f6 xor %esi,%esi + 41431f: 48 89 df mov %rbx,%rdi + 414322: e8 69 f5 04 00 callq 463890 <_IO_wsetb> + 414327: 83 fd 02 cmp $0x2,%ebp + 41432a: 0f 85 b0 00 00 00 jne 4143e0 <_IO_cleanup+0x1f0> + 414330: c7 83 c0 00 00 00 ff movl $0xffffffff,0xc0(%rbx) + 414337: ff ff ff + 41433a: 48 8b 5b 68 mov 0x68(%rbx),%rbx + 41433e: 48 85 db test %rbx,%rbx + 414341: 0f 84 89 00 00 00 je 4143d0 <_IO_cleanup+0x1e0> + 414347: f6 03 02 testb $0x2,(%rbx) + 41434a: 75 e4 jne 414330 <_IO_cleanup+0x140> + 41434c: 8b 93 c0 00 00 00 mov 0xc0(%rbx),%edx + 414352: 85 d2 test %edx,%edx + 414354: 74 da je 414330 <_IO_cleanup+0x140> + 414356: 31 ed xor %ebp,%ebp + 414358: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 41435f: 48 85 d2 test %rdx,%rdx + 414362: 0f 84 62 ff ff ff je 4142ca <_IO_cleanup+0xda> + 414368: 4c 3b 6a 08 cmp 0x8(%rdx),%r13 + 41436c: 0f 84 c6 00 00 00 je 414438 <_IO_cleanup+0x248> + 414372: 31 c0 xor %eax,%eax + 414374: b9 01 00 00 00 mov $0x1,%ecx + 414379: 83 3d 3c 8e 2b 00 00 cmpl $0x0,0x2b8e3c(%rip) # 6cd1bc <__libc_multiple_threads> + 414380: 74 06 je 414388 <_IO_cleanup+0x198> + 414382: f0 0f b1 0a lock cmpxchg %ecx,(%rdx) + 414386: eb 03 jmp 41438b <_IO_cleanup+0x19b> + 414388: 0f b1 0a cmpxchg %ecx,(%rdx) + 41438b: 85 c0 test %eax,%eax + 41438d: 0f 84 25 ff ff ff je 4142b8 <_IO_cleanup+0xc8> + 414393: 83 c5 01 add $0x1,%ebp + 414396: e8 95 ac 02 00 callq 43f030 <__sched_yield> + 41439b: 83 fd 02 cmp $0x2,%ebp + 41439e: 0f 84 26 ff ff ff je 4142ca <_IO_cleanup+0xda> + 4143a4: eb b2 jmp 414358 <_IO_cleanup+0x168> + 4143a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4143ad: 00 00 00 + 4143b0: 48 8b 43 20 mov 0x20(%rbx),%rax + 4143b4: 48 39 43 28 cmp %rax,0x28(%rbx) + 4143b8: 0f 87 5a fe ff ff ja 414218 <_IO_cleanup+0x28> + 4143be: e9 b9 fe ff ff jmpq 41427c <_IO_cleanup+0x8c> + 4143c3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4143c8: 41 89 c4 mov %eax,%r12d + 4143cb: e9 69 fe ff ff jmpq 414239 <_IO_cleanup+0x49> + 4143d0: 48 83 c4 08 add $0x8,%rsp + 4143d4: 44 89 e0 mov %r12d,%eax + 4143d7: 5b pop %rbx + 4143d8: 5d pop %rbp + 4143d9: 41 5c pop %r12 + 4143db: 41 5d pop %r13 + 4143dd: c3 retq + 4143de: 66 90 xchg %ax,%ax + 4143e0: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 4143e7: 48 85 d2 test %rdx,%rdx + 4143ea: 0f 84 40 ff ff ff je 414330 <_IO_cleanup+0x140> + 4143f0: 83 6a 04 01 subl $0x1,0x4(%rdx) + 4143f4: 0f 85 36 ff ff ff jne 414330 <_IO_cleanup+0x140> + 4143fa: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) + 414401: 00 + 414402: 83 3d b3 8d 2b 00 00 cmpl $0x0,0x2b8db3(%rip) # 6cd1bc <__libc_multiple_threads> + 414409: 74 07 je 414412 <_IO_cleanup+0x222> + 41440b: f0 ff 0a lock decl (%rdx) + 41440e: 75 06 jne 414416 <_IO_cleanup+0x226> + 414410: eb 1a jmp 41442c <_IO_cleanup+0x23c> + 414412: ff 0a decl (%rdx) + 414414: 74 16 je 41442c <_IO_cleanup+0x23c> + 414416: 48 8d 3a lea (%rdx),%rdi + 414419: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 414420: e8 db e1 02 00 callq 442600 <__lll_unlock_wake_private> + 414425: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41442c: e9 ff fe ff ff jmpq 414330 <_IO_cleanup+0x140> + 414431: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 414438: 83 42 04 01 addl $0x1,0x4(%rdx) + 41443c: e9 89 fe ff ff jmpq 4142ca <_IO_cleanup+0xda> + 414441: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 414446: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41444d: 00 00 00 + +0000000000414450 <_IO_un_link>: + 414450: f6 07 80 testb $0x80,(%rdi) + 414453: 0f 84 da 01 00 00 je 414633 <_IO_un_link+0x1e3> + 414459: 55 push %rbp + 41445a: 53 push %rbx + 41445b: bd 00 00 00 00 mov $0x0,%ebp + 414460: 48 89 fb mov %rdi,%rbx + 414463: 48 83 ec 28 sub $0x28,%rsp + 414467: 48 85 ed test %rbp,%rbp + 41446a: 0f 84 28 02 00 00 je 414698 <_IO_un_link+0x248> + 414470: 31 d2 xor %edx,%edx + 414472: be 50 41 41 00 mov $0x414150,%esi + 414477: 48 89 e7 mov %rsp,%rdi + 41447a: e8 81 bb be ff callq 0 <_nl_current_LC_CTYPE> + 41447f: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx + 414486: 00 00 + 414488: 48 3b 15 19 81 2b 00 cmp 0x2b8119(%rip),%rdx # 6cc5a8 + 41448f: 74 46 je 4144d7 <_IO_un_link+0x87> + 414491: be 01 00 00 00 mov $0x1,%esi + 414496: 31 c0 xor %eax,%eax + 414498: 83 3d 1d 8d 2b 00 00 cmpl $0x0,0x2b8d1d(%rip) # 6cd1bc <__libc_multiple_threads> + 41449f: 74 0c je 4144ad <_IO_un_link+0x5d> + 4144a1: f0 0f b1 35 f7 80 2b lock cmpxchg %esi,0x2b80f7(%rip) # 6cc5a0 + 4144a8: 00 + 4144a9: 75 0b jne 4144b6 <_IO_un_link+0x66> + 4144ab: eb 23 jmp 4144d0 <_IO_un_link+0x80> + 4144ad: 0f b1 35 ec 80 2b 00 cmpxchg %esi,0x2b80ec(%rip) # 6cc5a0 + 4144b4: 74 1a je 4144d0 <_IO_un_link+0x80> + 4144b6: 48 8d 3d e3 80 2b 00 lea 0x2b80e3(%rip),%rdi # 6cc5a0 + 4144bd: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4144c4: e8 07 e1 02 00 callq 4425d0 <__lll_lock_wait_private> + 4144c9: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4144d0: 48 89 15 d1 80 2b 00 mov %rdx,0x2b80d1(%rip) # 6cc5a8 + 4144d7: 8b 33 mov (%rbx),%esi + 4144d9: 8b 15 c5 80 2b 00 mov 0x2b80c5(%rip),%edx # 6cc5a4 + 4144df: 48 89 1d aa 80 2b 00 mov %rbx,0x2b80aa(%rip) # 6cc590 + 4144e6: 89 f0 mov %esi,%eax + 4144e8: 83 c2 01 add $0x1,%edx + 4144eb: 25 00 80 00 00 and $0x8000,%eax + 4144f0: 89 15 ae 80 2b 00 mov %edx,0x2b80ae(%rip) # 6cc5a4 + 4144f6: 0f 85 7c 01 00 00 jne 414678 <_IO_un_link+0x228> + 4144fc: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 414503: 64 4c 8b 04 25 10 00 mov %fs:0x10,%r8 + 41450a: 00 00 + 41450c: 4c 3b 42 08 cmp 0x8(%rdx),%r8 + 414510: 74 3c je 41454e <_IO_un_link+0xfe> + 414512: be 01 00 00 00 mov $0x1,%esi + 414517: 83 3d 9e 8c 2b 00 00 cmpl $0x0,0x2b8c9e(%rip) # 6cd1bc <__libc_multiple_threads> + 41451e: 74 08 je 414528 <_IO_un_link+0xd8> + 414520: f0 0f b1 32 lock cmpxchg %esi,(%rdx) + 414524: 75 07 jne 41452d <_IO_un_link+0xdd> + 414526: eb 1b jmp 414543 <_IO_un_link+0xf3> + 414528: 0f b1 32 cmpxchg %esi,(%rdx) + 41452b: 74 16 je 414543 <_IO_un_link+0xf3> + 41452d: 48 8d 3a lea (%rdx),%rdi + 414530: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 414537: e8 94 e0 02 00 callq 4425d0 <__lll_lock_wait_private> + 41453c: 48 81 c4 80 00 00 00 add $0x80,%rsp + 414543: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 41454a: 4c 89 42 08 mov %r8,0x8(%rdx) + 41454e: 8b 33 mov (%rbx),%esi + 414550: 48 8b 3d 69 5b 2b 00 mov 0x2b5b69(%rip),%rdi # 6ca0c0 <_IO_list_all> + 414557: 83 42 04 01 addl $0x1,0x4(%rdx) + 41455b: 89 f0 mov %esi,%eax + 41455d: 25 00 80 00 00 and $0x8000,%eax + 414562: 48 85 ff test %rdi,%rdi + 414565: 74 36 je 41459d <_IO_un_link+0x14d> + 414567: 48 39 fb cmp %rdi,%rbx + 41456a: 0f 84 60 01 00 00 je 4146d0 <_IO_un_link+0x280> + 414570: 48 8b 4f 68 mov 0x68(%rdi),%rcx + 414574: 48 85 c9 test %rcx,%rcx + 414577: 74 24 je 41459d <_IO_un_link+0x14d> + 414579: 48 39 cb cmp %rcx,%rbx + 41457c: 75 16 jne 414594 <_IO_un_link+0x144> + 41457e: e9 64 01 00 00 jmpq 4146e7 <_IO_un_link+0x297> + 414583: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 414588: 48 39 d3 cmp %rdx,%rbx + 41458b: 0f 84 1f 01 00 00 je 4146b0 <_IO_un_link+0x260> + 414591: 48 89 d1 mov %rdx,%rcx + 414594: 48 8b 51 68 mov 0x68(%rcx),%rdx + 414598: 48 85 d2 test %rdx,%rdx + 41459b: 75 eb jne 414588 <_IO_un_link+0x138> + 41459d: 40 80 e6 7f and $0x7f,%sil + 4145a1: 85 c0 test %eax,%eax + 4145a3: 89 33 mov %esi,(%rbx) + 4145a5: 0f 85 bf 00 00 00 jne 41466a <_IO_un_link+0x21a> + 4145ab: 48 8b b3 88 00 00 00 mov 0x88(%rbx),%rsi + 4145b2: 8b 46 04 mov 0x4(%rsi),%eax + 4145b5: 83 e8 01 sub $0x1,%eax + 4145b8: 85 c0 test %eax,%eax + 4145ba: 89 46 04 mov %eax,0x4(%rsi) + 4145bd: 8b 15 e1 7f 2b 00 mov 0x2b7fe1(%rip),%edx # 6cc5a4 + 4145c3: 74 73 je 414638 <_IO_un_link+0x1e8> + 4145c5: 83 ea 01 sub $0x1,%edx + 4145c8: 48 c7 05 bd 7f 2b 00 movq $0x0,0x2b7fbd(%rip) # 6cc590 + 4145cf: 00 00 00 00 + 4145d3: 85 d2 test %edx,%edx + 4145d5: 89 15 c9 7f 2b 00 mov %edx,0x2b7fc9(%rip) # 6cc5a4 + 4145db: 75 41 jne 41461e <_IO_un_link+0x1ce> + 4145dd: 48 c7 05 c0 7f 2b 00 movq $0x0,0x2b7fc0(%rip) # 6cc5a8 + 4145e4: 00 00 00 00 + 4145e8: 83 3d cd 8b 2b 00 00 cmpl $0x0,0x2b8bcd(%rip) # 6cd1bc <__libc_multiple_threads> + 4145ef: 74 0b je 4145fc <_IO_un_link+0x1ac> + 4145f1: f0 ff 0d a8 7f 2b 00 lock decl 0x2b7fa8(%rip) # 6cc5a0 + 4145f8: 75 0a jne 414604 <_IO_un_link+0x1b4> + 4145fa: eb 22 jmp 41461e <_IO_un_link+0x1ce> + 4145fc: ff 0d 9e 7f 2b 00 decl 0x2b7f9e(%rip) # 6cc5a0 + 414602: 74 1a je 41461e <_IO_un_link+0x1ce> + 414604: 48 8d 3d 95 7f 2b 00 lea 0x2b7f95(%rip),%rdi # 6cc5a0 + 41460b: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 414612: e8 e9 df 02 00 callq 442600 <__lll_unlock_wake_private> + 414617: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41461e: 48 85 ed test %rbp,%rbp + 414621: 74 0a je 41462d <_IO_un_link+0x1dd> + 414623: 31 f6 xor %esi,%esi + 414625: 48 89 e7 mov %rsp,%rdi + 414628: e8 d3 b9 be ff callq 0 <_nl_current_LC_CTYPE> + 41462d: 48 83 c4 28 add $0x28,%rsp + 414631: 5b pop %rbx + 414632: 5d pop %rbp + 414633: f3 c3 repz retq + 414635: 0f 1f 00 nopl (%rax) + 414638: 48 c7 46 08 00 00 00 movq $0x0,0x8(%rsi) + 41463f: 00 + 414640: 83 3d 75 8b 2b 00 00 cmpl $0x0,0x2b8b75(%rip) # 6cd1bc <__libc_multiple_threads> + 414647: 74 07 je 414650 <_IO_un_link+0x200> + 414649: f0 ff 0e lock decl (%rsi) + 41464c: 75 06 jne 414654 <_IO_un_link+0x204> + 41464e: eb 1a jmp 41466a <_IO_un_link+0x21a> + 414650: ff 0e decl (%rsi) + 414652: 74 16 je 41466a <_IO_un_link+0x21a> + 414654: 48 8d 3e lea (%rsi),%rdi + 414657: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41465e: e8 9d df 02 00 callq 442600 <__lll_unlock_wake_private> + 414663: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41466a: 8b 15 34 7f 2b 00 mov 0x2b7f34(%rip),%edx # 6cc5a4 + 414670: e9 50 ff ff ff jmpq 4145c5 <_IO_un_link+0x175> + 414675: 0f 1f 00 nopl (%rax) + 414678: 48 8b 3d 41 5a 2b 00 mov 0x2b5a41(%rip),%rdi # 6ca0c0 <_IO_list_all> + 41467f: 48 85 ff test %rdi,%rdi + 414682: 0f 85 df fe ff ff jne 414567 <_IO_un_link+0x117> + 414688: 40 80 e6 7f and $0x7f,%sil + 41468c: 89 33 mov %esi,(%rbx) + 41468e: e9 32 ff ff ff jmpq 4145c5 <_IO_un_link+0x175> + 414693: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 414698: 48 c7 04 24 50 41 41 movq $0x414150,(%rsp) + 41469f: 00 + 4146a0: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) + 4146a7: 00 00 + 4146a9: e9 d1 fd ff ff jmpq 41447f <_IO_un_link+0x2f> + 4146ae: 66 90 xchg %ax,%ax + 4146b0: 48 83 c1 68 add $0x68,%rcx + 4146b4: 48 8b 53 68 mov 0x68(%rbx),%rdx + 4146b8: 83 05 d9 7e 2b 00 01 addl $0x1,0x2b7ed9(%rip) # 6cc598 <_IO_list_all_stamp> + 4146bf: 48 89 11 mov %rdx,(%rcx) + 4146c2: e9 d6 fe ff ff jmpq 41459d <_IO_un_link+0x14d> + 4146c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4146ce: 00 00 + 4146d0: 48 8b 53 68 mov 0x68(%rbx),%rdx + 4146d4: 83 05 bd 7e 2b 00 01 addl $0x1,0x2b7ebd(%rip) # 6cc598 <_IO_list_all_stamp> + 4146db: 48 89 15 de 59 2b 00 mov %rdx,0x2b59de(%rip) # 6ca0c0 <_IO_list_all> + 4146e2: e9 b6 fe ff ff jmpq 41459d <_IO_un_link+0x14d> + 4146e7: 48 8d 4f 68 lea 0x68(%rdi),%rcx + 4146eb: eb c7 jmp 4146b4 <_IO_un_link+0x264> + 4146ed: 0f 1f 00 nopl (%rax) + +00000000004146f0 <_IO_link_in>: + 4146f0: 8b 07 mov (%rdi),%eax + 4146f2: a8 80 test $0x80,%al + 4146f4: 0f 85 ab 01 00 00 jne 4148a5 <_IO_link_in+0x1b5> + 4146fa: 55 push %rbp + 4146fb: 53 push %rbx + 4146fc: bd 00 00 00 00 mov $0x0,%ebp + 414701: 0c 80 or $0x80,%al + 414703: 48 89 fb mov %rdi,%rbx + 414706: 48 83 ec 28 sub $0x28,%rsp + 41470a: 48 85 ed test %rbp,%rbp + 41470d: 89 07 mov %eax,(%rdi) + 41470f: 0f 84 bb 01 00 00 je 4148d0 <_IO_link_in+0x1e0> + 414715: 31 d2 xor %edx,%edx + 414717: be 50 41 41 00 mov $0x414150,%esi + 41471c: 48 89 e7 mov %rsp,%rdi + 41471f: e8 dc b8 be ff callq 0 <_nl_current_LC_CTYPE> + 414724: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx + 41472b: 00 00 + 41472d: 48 3b 15 74 7e 2b 00 cmp 0x2b7e74(%rip),%rdx # 6cc5a8 + 414734: 74 46 je 41477c <_IO_link_in+0x8c> + 414736: be 01 00 00 00 mov $0x1,%esi + 41473b: 31 c0 xor %eax,%eax + 41473d: 83 3d 78 8a 2b 00 00 cmpl $0x0,0x2b8a78(%rip) # 6cd1bc <__libc_multiple_threads> + 414744: 74 0c je 414752 <_IO_link_in+0x62> + 414746: f0 0f b1 35 52 7e 2b lock cmpxchg %esi,0x2b7e52(%rip) # 6cc5a0 + 41474d: 00 + 41474e: 75 0b jne 41475b <_IO_link_in+0x6b> + 414750: eb 23 jmp 414775 <_IO_link_in+0x85> + 414752: 0f b1 35 47 7e 2b 00 cmpxchg %esi,0x2b7e47(%rip) # 6cc5a0 + 414759: 74 1a je 414775 <_IO_link_in+0x85> + 41475b: 48 8d 3d 3e 7e 2b 00 lea 0x2b7e3e(%rip),%rdi # 6cc5a0 + 414762: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 414769: e8 62 de 02 00 callq 4425d0 <__lll_lock_wait_private> + 41476e: 48 81 c4 80 00 00 00 add $0x80,%rsp + 414775: 48 89 15 2c 7e 2b 00 mov %rdx,0x2b7e2c(%rip) # 6cc5a8 + 41477c: 8b 0b mov (%rbx),%ecx + 41477e: 8b 15 20 7e 2b 00 mov 0x2b7e20(%rip),%edx # 6cc5a4 + 414784: 48 89 1d 05 7e 2b 00 mov %rbx,0x2b7e05(%rip) # 6cc590 + 41478b: 89 c8 mov %ecx,%eax + 41478d: 83 c2 01 add $0x1,%edx + 414790: 25 00 80 00 00 and $0x8000,%eax + 414795: 89 15 09 7e 2b 00 mov %edx,0x2b7e09(%rip) # 6cc5a4 + 41479b: 0f 85 0f 01 00 00 jne 4148b0 <_IO_link_in+0x1c0> + 4147a1: 4c 8b 83 88 00 00 00 mov 0x88(%rbx),%r8 + 4147a8: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx + 4147af: 00 00 + 4147b1: 49 3b 50 08 cmp 0x8(%r8),%rdx + 4147b5: 74 40 je 4147f7 <_IO_link_in+0x107> + 4147b7: be 01 00 00 00 mov $0x1,%esi + 4147bc: 83 3d f9 89 2b 00 00 cmpl $0x0,0x2b89f9(%rip) # 6cd1bc <__libc_multiple_threads> + 4147c3: 74 09 je 4147ce <_IO_link_in+0xde> + 4147c5: f0 41 0f b1 30 lock cmpxchg %esi,(%r8) + 4147ca: 75 08 jne 4147d4 <_IO_link_in+0xe4> + 4147cc: eb 1c jmp 4147ea <_IO_link_in+0xfa> + 4147ce: 41 0f b1 30 cmpxchg %esi,(%r8) + 4147d2: 74 16 je 4147ea <_IO_link_in+0xfa> + 4147d4: 49 8d 38 lea (%r8),%rdi + 4147d7: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4147de: e8 ed dd 02 00 callq 4425d0 <__lll_lock_wait_private> + 4147e3: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4147ea: 4c 8b 83 88 00 00 00 mov 0x88(%rbx),%r8 + 4147f1: 8b 0b mov (%rbx),%ecx + 4147f3: 49 89 50 08 mov %rdx,0x8(%r8) + 4147f7: 48 8b 05 c2 58 2b 00 mov 0x2b58c2(%rip),%rax # 6ca0c0 <_IO_list_all> + 4147fe: 41 83 40 04 01 addl $0x1,0x4(%r8) + 414803: 83 05 8e 7d 2b 00 01 addl $0x1,0x2b7d8e(%rip) # 6cc598 <_IO_list_all_stamp> + 41480a: 80 e5 80 and $0x80,%ch + 41480d: 48 89 1d ac 58 2b 00 mov %rbx,0x2b58ac(%rip) # 6ca0c0 <_IO_list_all> + 414814: 48 89 43 68 mov %rax,0x68(%rbx) + 414818: 0f 85 06 01 00 00 jne 414924 <_IO_link_in+0x234> + 41481e: 41 8b 40 04 mov 0x4(%r8),%eax + 414822: 83 e8 01 sub $0x1,%eax + 414825: 85 c0 test %eax,%eax + 414827: 41 89 40 04 mov %eax,0x4(%r8) + 41482b: 8b 15 73 7d 2b 00 mov 0x2b7d73(%rip),%edx # 6cc5a4 + 414831: 0f 84 b9 00 00 00 je 4148f0 <_IO_link_in+0x200> + 414837: 83 ea 01 sub $0x1,%edx + 41483a: 48 c7 05 4b 7d 2b 00 movq $0x0,0x2b7d4b(%rip) # 6cc590 + 414841: 00 00 00 00 + 414845: 85 d2 test %edx,%edx + 414847: 89 15 57 7d 2b 00 mov %edx,0x2b7d57(%rip) # 6cc5a4 + 41484d: 75 41 jne 414890 <_IO_link_in+0x1a0> + 41484f: 48 c7 05 4e 7d 2b 00 movq $0x0,0x2b7d4e(%rip) # 6cc5a8 + 414856: 00 00 00 00 + 41485a: 83 3d 5b 89 2b 00 00 cmpl $0x0,0x2b895b(%rip) # 6cd1bc <__libc_multiple_threads> + 414861: 74 0b je 41486e <_IO_link_in+0x17e> + 414863: f0 ff 0d 36 7d 2b 00 lock decl 0x2b7d36(%rip) # 6cc5a0 + 41486a: 75 0a jne 414876 <_IO_link_in+0x186> + 41486c: eb 22 jmp 414890 <_IO_link_in+0x1a0> + 41486e: ff 0d 2c 7d 2b 00 decl 0x2b7d2c(%rip) # 6cc5a0 + 414874: 74 1a je 414890 <_IO_link_in+0x1a0> + 414876: 48 8d 3d 23 7d 2b 00 lea 0x2b7d23(%rip),%rdi # 6cc5a0 + 41487d: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 414884: e8 77 dd 02 00 callq 442600 <__lll_unlock_wake_private> + 414889: 48 81 c4 80 00 00 00 add $0x80,%rsp + 414890: 48 85 ed test %rbp,%rbp + 414893: 74 0a je 41489f <_IO_link_in+0x1af> + 414895: 31 f6 xor %esi,%esi + 414897: 48 89 e7 mov %rsp,%rdi + 41489a: e8 61 b7 be ff callq 0 <_nl_current_LC_CTYPE> + 41489f: 48 83 c4 28 add $0x28,%rsp + 4148a3: 5b pop %rbx + 4148a4: 5d pop %rbp + 4148a5: f3 c3 repz retq + 4148a7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4148ae: 00 00 + 4148b0: 48 8b 05 09 58 2b 00 mov 0x2b5809(%rip),%rax # 6ca0c0 <_IO_list_all> + 4148b7: 83 05 da 7c 2b 00 01 addl $0x1,0x2b7cda(%rip) # 6cc598 <_IO_list_all_stamp> + 4148be: 48 89 1d fb 57 2b 00 mov %rbx,0x2b57fb(%rip) # 6ca0c0 <_IO_list_all> + 4148c5: 48 89 43 68 mov %rax,0x68(%rbx) + 4148c9: e9 69 ff ff ff jmpq 414837 <_IO_link_in+0x147> + 4148ce: 66 90 xchg %ax,%ax + 4148d0: 48 c7 04 24 50 41 41 movq $0x414150,(%rsp) + 4148d7: 00 + 4148d8: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) + 4148df: 00 00 + 4148e1: e9 3e fe ff ff jmpq 414724 <_IO_link_in+0x34> + 4148e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4148ed: 00 00 00 + 4148f0: 49 c7 40 08 00 00 00 movq $0x0,0x8(%r8) + 4148f7: 00 + 4148f8: 83 3d bd 88 2b 00 00 cmpl $0x0,0x2b88bd(%rip) # 6cd1bc <__libc_multiple_threads> + 4148ff: 74 08 je 414909 <_IO_link_in+0x219> + 414901: f0 41 ff 08 lock decl (%r8) + 414905: 75 07 jne 41490e <_IO_link_in+0x21e> + 414907: eb 1b jmp 414924 <_IO_link_in+0x234> + 414909: 41 ff 08 decl (%r8) + 41490c: 74 16 je 414924 <_IO_link_in+0x234> + 41490e: 49 8d 38 lea (%r8),%rdi + 414911: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 414918: e8 e3 dc 02 00 callq 442600 <__lll_unlock_wake_private> + 41491d: 48 81 c4 80 00 00 00 add $0x80,%rsp + 414924: 8b 15 7a 7c 2b 00 mov 0x2b7c7a(%rip),%edx # 6cc5a4 + 41492a: e9 08 ff ff ff jmpq 414837 <_IO_link_in+0x147> + 41492f: 90 nop + +0000000000414930 <_IO_least_marker>: + 414930: 48 8b 57 60 mov 0x60(%rdi),%rdx + 414934: 48 89 f0 mov %rsi,%rax + 414937: 48 2b 47 18 sub 0x18(%rdi),%rax + 41493b: 48 85 d2 test %rdx,%rdx + 41493e: 74 13 je 414953 <_IO_least_marker+0x23> + 414940: 48 63 4a 10 movslq 0x10(%rdx),%rcx + 414944: 48 8b 12 mov (%rdx),%rdx + 414947: 48 39 c8 cmp %rcx,%rax + 41494a: 48 0f 4f c1 cmovg %rcx,%rax + 41494e: 48 85 d2 test %rdx,%rdx + 414951: 75 ed jne 414940 <_IO_least_marker+0x10> + 414953: f3 c3 repz retq + 414955: 90 nop + 414956: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41495d: 00 00 00 + +0000000000414960 <_IO_switch_to_main_get_area>: + 414960: 48 8b 47 10 mov 0x10(%rdi),%rax + 414964: 48 8b 57 58 mov 0x58(%rdi),%rdx + 414968: 81 27 ff fe ff ff andl $0xfffffeff,(%rdi) + 41496e: 48 89 57 10 mov %rdx,0x10(%rdi) + 414972: 48 89 47 58 mov %rax,0x58(%rdi) + 414976: 48 8b 57 18 mov 0x18(%rdi),%rdx + 41497a: 48 8b 47 48 mov 0x48(%rdi),%rax + 41497e: 48 89 57 48 mov %rdx,0x48(%rdi) + 414982: 48 89 47 18 mov %rax,0x18(%rdi) + 414986: 48 89 47 08 mov %rax,0x8(%rdi) + 41498a: c3 retq + 41498b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000414990 <_IO_switch_to_backup_area>: + 414990: 48 8b 57 10 mov 0x10(%rdi),%rdx + 414994: 48 8b 47 58 mov 0x58(%rdi),%rax + 414998: 48 8b 4f 48 mov 0x48(%rdi),%rcx + 41499c: 81 0f 00 01 00 00 orl $0x100,(%rdi) + 4149a2: 48 89 57 58 mov %rdx,0x58(%rdi) + 4149a6: 48 8b 57 18 mov 0x18(%rdi),%rdx + 4149aa: 48 89 47 10 mov %rax,0x10(%rdi) + 4149ae: 48 89 4f 18 mov %rcx,0x18(%rdi) + 4149b2: 48 89 57 48 mov %rdx,0x48(%rdi) + 4149b6: 48 89 47 08 mov %rax,0x8(%rdi) + 4149ba: c3 retq + 4149bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +00000000004149c0 <_IO_switch_to_get_mode>: + 4149c0: 48 8b 47 28 mov 0x28(%rdi),%rax + 4149c4: 48 3b 47 20 cmp 0x20(%rdi),%rax + 4149c8: 53 push %rbx + 4149c9: 48 89 fb mov %rdi,%rbx + 4149cc: 77 42 ja 414a10 <_IO_switch_to_get_mode+0x50> + 4149ce: 8b 13 mov (%rbx),%edx + 4149d0: f6 c6 01 test $0x1,%dh + 4149d3: 75 2b jne 414a00 <_IO_switch_to_get_mode+0x40> + 4149d5: 48 39 43 10 cmp %rax,0x10(%rbx) + 4149d9: 48 8b 4b 38 mov 0x38(%rbx),%rcx + 4149dd: 48 89 4b 18 mov %rcx,0x18(%rbx) + 4149e1: 73 04 jae 4149e7 <_IO_switch_to_get_mode+0x27> + 4149e3: 48 89 43 10 mov %rax,0x10(%rbx) + 4149e7: 80 e6 f7 and $0xf7,%dh + 4149ea: 48 89 43 08 mov %rax,0x8(%rbx) + 4149ee: 48 89 43 30 mov %rax,0x30(%rbx) + 4149f2: 48 89 43 20 mov %rax,0x20(%rbx) + 4149f6: 89 13 mov %edx,(%rbx) + 4149f8: 31 c0 xor %eax,%eax + 4149fa: 5b pop %rbx + 4149fb: c3 retq + 4149fc: 0f 1f 40 00 nopl 0x0(%rax) + 414a00: 48 8b 4b 50 mov 0x50(%rbx),%rcx + 414a04: 48 89 4b 18 mov %rcx,0x18(%rbx) + 414a08: eb dd jmp 4149e7 <_IO_switch_to_get_mode+0x27> + 414a0a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 414a10: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 414a17: be ff ff ff ff mov $0xffffffff,%esi + 414a1c: ff 50 18 callq *0x18(%rax) + 414a1f: 83 f8 ff cmp $0xffffffff,%eax + 414a22: 74 d6 je 4149fa <_IO_switch_to_get_mode+0x3a> + 414a24: 48 8b 43 28 mov 0x28(%rbx),%rax + 414a28: eb a4 jmp 4149ce <_IO_switch_to_get_mode+0xe> + 414a2a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +0000000000414a30 <_IO_free_backup_area>: + 414a30: 53 push %rbx + 414a31: 8b 07 mov (%rdi),%eax + 414a33: 48 89 fb mov %rdi,%rbx + 414a36: f6 c4 01 test $0x1,%ah + 414a39: 74 45 je 414a80 <_IO_free_backup_area+0x50> + 414a3b: 80 e4 fe and $0xfe,%ah + 414a3e: 89 07 mov %eax,(%rdi) + 414a40: 48 8b 47 58 mov 0x58(%rdi),%rax + 414a44: 48 89 47 10 mov %rax,0x10(%rdi) + 414a48: 48 8b 43 48 mov 0x48(%rbx),%rax + 414a4c: 48 8b 7f 18 mov 0x18(%rdi),%rdi + 414a50: 48 89 43 18 mov %rax,0x18(%rbx) + 414a54: 48 89 43 08 mov %rax,0x8(%rbx) + 414a58: e8 53 93 00 00 callq 41ddb0 <__cfree> + 414a5d: 48 c7 43 48 00 00 00 movq $0x0,0x48(%rbx) + 414a64: 00 + 414a65: 48 c7 43 58 00 00 00 movq $0x0,0x58(%rbx) + 414a6c: 00 + 414a6d: 48 c7 43 50 00 00 00 movq $0x0,0x50(%rbx) + 414a74: 00 + 414a75: 5b pop %rbx + 414a76: c3 retq + 414a77: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 414a7e: 00 00 + 414a80: 48 8b 7f 48 mov 0x48(%rdi),%rdi + 414a84: eb d2 jmp 414a58 <_IO_free_backup_area+0x28> + 414a86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 414a8d: 00 00 00 + +0000000000414a90 <__overflow>: + 414a90: 8b 87 c0 00 00 00 mov 0xc0(%rdi),%eax + 414a96: 85 c0 test %eax,%eax + 414a98: 75 0a jne 414aa4 <__overflow+0x14> + 414a9a: c7 87 c0 00 00 00 ff movl $0xffffffff,0xc0(%rdi) + 414aa1: ff ff ff + 414aa4: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 414aab: 48 8b 40 18 mov 0x18(%rax),%rax + 414aaf: ff e0 jmpq *%rax + 414ab1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 414ab6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 414abd: 00 00 00 + +0000000000414ac0 <__underflow>: + 414ac0: 53 push %rbx + 414ac1: 8b 87 c0 00 00 00 mov 0xc0(%rdi),%eax + 414ac7: 85 c0 test %eax,%eax + 414ac9: 75 55 jne 414b20 <__underflow+0x60> + 414acb: c7 87 c0 00 00 00 ff movl $0xffffffff,0xc0(%rdi) + 414ad2: ff ff ff + 414ad5: 8b 07 mov (%rdi),%eax + 414ad7: 48 89 fb mov %rdi,%rbx + 414ada: f6 c4 08 test $0x8,%ah + 414add: 0f 85 85 00 00 00 jne 414b68 <__underflow+0xa8> + 414ae3: 48 8b 57 08 mov 0x8(%rdi),%rdx + 414ae7: 48 8b 77 10 mov 0x10(%rdi),%rsi + 414aeb: 48 39 f2 cmp %rsi,%rdx + 414aee: 72 6d jb 414b5d <__underflow+0x9d> + 414af0: f6 c4 01 test $0x1,%ah + 414af3: 75 3b jne 414b30 <__underflow+0x70> + 414af5: 48 83 7b 60 00 cmpq $0x0,0x60(%rbx) + 414afa: 0f 84 e0 00 00 00 je 414be0 <__underflow+0x120> + 414b00: 48 89 df mov %rbx,%rdi + 414b03: e8 58 f4 ff ff callq 413f60 + 414b08: 85 c0 test %eax,%eax + 414b0a: 75 19 jne 414b25 <__underflow+0x65> + 414b0c: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 414b13: 48 89 df mov %rbx,%rdi + 414b16: 5b pop %rbx + 414b17: 48 8b 40 20 mov 0x20(%rax),%rax + 414b1b: ff e0 jmpq *%rax + 414b1d: 0f 1f 00 nopl (%rax) + 414b20: 83 f8 ff cmp $0xffffffff,%eax + 414b23: 74 b0 je 414ad5 <__underflow+0x15> + 414b25: b8 ff ff ff ff mov $0xffffffff,%eax + 414b2a: 5b pop %rbx + 414b2b: c3 retq + 414b2c: 0f 1f 40 00 nopl 0x0(%rax) + 414b30: 48 8b 4b 58 mov 0x58(%rbx),%rcx + 414b34: 48 8b 53 48 mov 0x48(%rbx),%rdx + 414b38: 80 e4 fe and $0xfe,%ah + 414b3b: 48 89 73 58 mov %rsi,0x58(%rbx) + 414b3f: 48 8b 73 18 mov 0x18(%rbx),%rsi + 414b43: 89 03 mov %eax,(%rbx) + 414b45: 48 39 d1 cmp %rdx,%rcx + 414b48: 48 89 4b 10 mov %rcx,0x10(%rbx) + 414b4c: 48 89 53 18 mov %rdx,0x18(%rbx) + 414b50: 48 89 73 48 mov %rsi,0x48(%rbx) + 414b54: 48 89 53 08 mov %rdx,0x8(%rbx) + 414b58: 48 89 ce mov %rcx,%rsi + 414b5b: 76 98 jbe 414af5 <__underflow+0x35> + 414b5d: 0f b6 02 movzbl (%rdx),%eax + 414b60: 5b pop %rbx + 414b61: c3 retq + 414b62: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 414b68: 48 8b 57 28 mov 0x28(%rdi),%rdx + 414b6c: 48 3b 57 20 cmp 0x20(%rdi),%rdx + 414b70: 77 4e ja 414bc0 <__underflow+0x100> + 414b72: f6 c4 01 test $0x1,%ah + 414b75: 75 31 jne 414ba8 <__underflow+0xe8> + 414b77: 48 8b 73 10 mov 0x10(%rbx),%rsi + 414b7b: 48 8b 4b 38 mov 0x38(%rbx),%rcx + 414b7f: 48 39 d6 cmp %rdx,%rsi + 414b82: 48 89 4b 18 mov %rcx,0x18(%rbx) + 414b86: 73 07 jae 414b8f <__underflow+0xcf> + 414b88: 48 89 53 10 mov %rdx,0x10(%rbx) + 414b8c: 48 89 d6 mov %rdx,%rsi + 414b8f: 80 e4 f7 and $0xf7,%ah + 414b92: 48 89 53 08 mov %rdx,0x8(%rbx) + 414b96: 48 89 53 30 mov %rdx,0x30(%rbx) + 414b9a: 48 89 53 20 mov %rdx,0x20(%rbx) + 414b9e: 89 03 mov %eax,(%rbx) + 414ba0: e9 46 ff ff ff jmpq 414aeb <__underflow+0x2b> + 414ba5: 0f 1f 00 nopl (%rax) + 414ba8: 48 8b 4b 50 mov 0x50(%rbx),%rcx + 414bac: 48 8b 73 10 mov 0x10(%rbx),%rsi + 414bb0: 48 89 4b 18 mov %rcx,0x18(%rbx) + 414bb4: eb d9 jmp 414b8f <__underflow+0xcf> + 414bb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 414bbd: 00 00 00 + 414bc0: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 414bc7: be ff ff ff ff mov $0xffffffff,%esi + 414bcc: ff 50 18 callq *0x18(%rax) + 414bcf: 83 f8 ff cmp $0xffffffff,%eax + 414bd2: 0f 84 4d ff ff ff je 414b25 <__underflow+0x65> + 414bd8: 8b 03 mov (%rbx),%eax + 414bda: 48 8b 53 28 mov 0x28(%rbx),%rdx + 414bde: eb 92 jmp 414b72 <__underflow+0xb2> + 414be0: 48 8b 7b 48 mov 0x48(%rbx),%rdi + 414be4: 48 85 ff test %rdi,%rdi + 414be7: 0f 84 1f ff ff ff je 414b0c <__underflow+0x4c> + 414bed: f6 c4 01 test $0x1,%ah + 414bf0: 74 1c je 414c0e <__underflow+0x14e> + 414bf2: 80 e4 fe and $0xfe,%ah + 414bf5: 48 89 7b 08 mov %rdi,0x8(%rbx) + 414bf9: 89 03 mov %eax,(%rbx) + 414bfb: 48 8b 43 58 mov 0x58(%rbx),%rax + 414bff: 48 89 43 10 mov %rax,0x10(%rbx) + 414c03: 48 8b 43 18 mov 0x18(%rbx),%rax + 414c07: 48 89 7b 18 mov %rdi,0x18(%rbx) + 414c0b: 48 89 c7 mov %rax,%rdi + 414c0e: e8 9d 91 00 00 callq 41ddb0 <__cfree> + 414c13: 48 c7 43 48 00 00 00 movq $0x0,0x48(%rbx) + 414c1a: 00 + 414c1b: 48 c7 43 58 00 00 00 movq $0x0,0x58(%rbx) + 414c22: 00 + 414c23: 48 c7 43 50 00 00 00 movq $0x0,0x50(%rbx) + 414c2a: 00 + 414c2b: e9 dc fe ff ff jmpq 414b0c <__underflow+0x4c> + +0000000000414c30 <__uflow>: + 414c30: 53 push %rbx + 414c31: 8b 87 c0 00 00 00 mov 0xc0(%rdi),%eax + 414c37: 85 c0 test %eax,%eax + 414c39: 75 55 jne 414c90 <__uflow+0x60> + 414c3b: c7 87 c0 00 00 00 ff movl $0xffffffff,0xc0(%rdi) + 414c42: ff ff ff + 414c45: 8b 07 mov (%rdi),%eax + 414c47: 48 89 fb mov %rdi,%rbx + 414c4a: f6 c4 08 test $0x8,%ah + 414c4d: 0f 85 dd 00 00 00 jne 414d30 <__uflow+0x100> + 414c53: 48 8b 57 08 mov 0x8(%rdi),%rdx + 414c57: 48 8b 77 10 mov 0x10(%rdi),%rsi + 414c5b: 48 39 f2 cmp %rsi,%rdx + 414c5e: 0f 82 bc 00 00 00 jb 414d20 <__uflow+0xf0> + 414c64: f6 c4 01 test $0x1,%ah + 414c67: 75 37 jne 414ca0 <__uflow+0x70> + 414c69: 48 83 7b 60 00 cmpq $0x0,0x60(%rbx) + 414c6e: 74 64 je 414cd4 <__uflow+0xa4> + 414c70: 48 89 df mov %rbx,%rdi + 414c73: e8 e8 f2 ff ff callq 413f60 + 414c78: 85 c0 test %eax,%eax + 414c7a: 75 19 jne 414c95 <__uflow+0x65> + 414c7c: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 414c83: 48 89 df mov %rbx,%rdi + 414c86: 5b pop %rbx + 414c87: 48 8b 40 28 mov 0x28(%rax),%rax + 414c8b: ff e0 jmpq *%rax + 414c8d: 0f 1f 00 nopl (%rax) + 414c90: 83 f8 ff cmp $0xffffffff,%eax + 414c93: 74 b0 je 414c45 <__uflow+0x15> + 414c95: b8 ff ff ff ff mov $0xffffffff,%eax + 414c9a: 5b pop %rbx + 414c9b: c3 retq + 414c9c: 0f 1f 40 00 nopl 0x0(%rax) + 414ca0: 48 8b 4b 58 mov 0x58(%rbx),%rcx + 414ca4: 48 8b 53 48 mov 0x48(%rbx),%rdx + 414ca8: 80 e4 fe and $0xfe,%ah + 414cab: 48 89 73 58 mov %rsi,0x58(%rbx) + 414caf: 48 8b 73 18 mov 0x18(%rbx),%rsi + 414cb3: 89 03 mov %eax,(%rbx) + 414cb5: 48 39 d1 cmp %rdx,%rcx + 414cb8: 48 89 4b 10 mov %rcx,0x10(%rbx) + 414cbc: 48 89 53 18 mov %rdx,0x18(%rbx) + 414cc0: 48 89 73 48 mov %rsi,0x48(%rbx) + 414cc4: 77 5a ja 414d20 <__uflow+0xf0> + 414cc6: 48 83 7b 60 00 cmpq $0x0,0x60(%rbx) + 414ccb: 48 89 53 08 mov %rdx,0x8(%rbx) + 414ccf: 48 89 ce mov %rcx,%rsi + 414cd2: 75 9c jne 414c70 <__uflow+0x40> + 414cd4: 48 8b 7b 48 mov 0x48(%rbx),%rdi + 414cd8: 48 85 ff test %rdi,%rdi + 414cdb: 74 9f je 414c7c <__uflow+0x4c> + 414cdd: f6 c4 01 test $0x1,%ah + 414ce0: 74 1c je 414cfe <__uflow+0xce> + 414ce2: 80 e4 fe and $0xfe,%ah + 414ce5: 48 89 7b 08 mov %rdi,0x8(%rbx) + 414ce9: 89 03 mov %eax,(%rbx) + 414ceb: 48 8b 43 58 mov 0x58(%rbx),%rax + 414cef: 48 89 43 10 mov %rax,0x10(%rbx) + 414cf3: 48 8b 43 18 mov 0x18(%rbx),%rax + 414cf7: 48 89 7b 18 mov %rdi,0x18(%rbx) + 414cfb: 48 89 c7 mov %rax,%rdi + 414cfe: e8 ad 90 00 00 callq 41ddb0 <__cfree> + 414d03: 48 c7 43 48 00 00 00 movq $0x0,0x48(%rbx) + 414d0a: 00 + 414d0b: 48 c7 43 58 00 00 00 movq $0x0,0x58(%rbx) + 414d12: 00 + 414d13: 48 c7 43 50 00 00 00 movq $0x0,0x50(%rbx) + 414d1a: 00 + 414d1b: e9 5c ff ff ff jmpq 414c7c <__uflow+0x4c> + 414d20: 48 8d 42 01 lea 0x1(%rdx),%rax + 414d24: 48 89 43 08 mov %rax,0x8(%rbx) + 414d28: 0f b6 02 movzbl (%rdx),%eax + 414d2b: 5b pop %rbx + 414d2c: c3 retq + 414d2d: 0f 1f 00 nopl (%rax) + 414d30: 48 8b 57 28 mov 0x28(%rdi),%rdx + 414d34: 48 3b 57 20 cmp 0x20(%rdi),%rdx + 414d38: 77 46 ja 414d80 <__uflow+0x150> + 414d3a: f6 c4 01 test $0x1,%ah + 414d3d: 75 31 jne 414d70 <__uflow+0x140> + 414d3f: 48 8b 73 10 mov 0x10(%rbx),%rsi + 414d43: 48 8b 4b 38 mov 0x38(%rbx),%rcx + 414d47: 48 39 d6 cmp %rdx,%rsi + 414d4a: 48 89 4b 18 mov %rcx,0x18(%rbx) + 414d4e: 73 07 jae 414d57 <__uflow+0x127> + 414d50: 48 89 53 10 mov %rdx,0x10(%rbx) + 414d54: 48 89 d6 mov %rdx,%rsi + 414d57: 80 e4 f7 and $0xf7,%ah + 414d5a: 48 89 53 08 mov %rdx,0x8(%rbx) + 414d5e: 48 89 53 30 mov %rdx,0x30(%rbx) + 414d62: 48 89 53 20 mov %rdx,0x20(%rbx) + 414d66: 89 03 mov %eax,(%rbx) + 414d68: e9 ee fe ff ff jmpq 414c5b <__uflow+0x2b> + 414d6d: 0f 1f 00 nopl (%rax) + 414d70: 48 8b 4b 50 mov 0x50(%rbx),%rcx + 414d74: 48 8b 73 10 mov 0x10(%rbx),%rsi + 414d78: 48 89 4b 18 mov %rcx,0x18(%rbx) + 414d7c: eb d9 jmp 414d57 <__uflow+0x127> + 414d7e: 66 90 xchg %ax,%ax + 414d80: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 414d87: be ff ff ff ff mov $0xffffffff,%esi + 414d8c: ff 50 18 callq *0x18(%rax) + 414d8f: 83 f8 ff cmp $0xffffffff,%eax + 414d92: 0f 84 fd fe ff ff je 414c95 <__uflow+0x65> + 414d98: 8b 03 mov (%rbx),%eax + 414d9a: 48 8b 53 28 mov 0x28(%rbx),%rdx + 414d9e: eb 9a jmp 414d3a <__uflow+0x10a> + +0000000000414da0 <_IO_setb>: + 414da0: 53 push %rbx + 414da1: 48 89 fb mov %rdi,%rbx + 414da4: 48 83 ec 20 sub $0x20,%rsp + 414da8: 48 8b 7f 38 mov 0x38(%rdi),%rdi + 414dac: 8b 03 mov (%rbx),%eax + 414dae: 48 85 ff test %rdi,%rdi + 414db1: 74 04 je 414db7 <_IO_setb+0x17> + 414db3: a8 01 test $0x1,%al + 414db5: 74 21 je 414dd8 <_IO_setb+0x38> + 414db7: 48 89 53 40 mov %rdx,0x40(%rbx) + 414dbb: 89 c2 mov %eax,%edx + 414dbd: 83 c8 01 or $0x1,%eax + 414dc0: 83 e2 fe and $0xfffffffe,%edx + 414dc3: 85 c9 test %ecx,%ecx + 414dc5: 48 89 73 38 mov %rsi,0x38(%rbx) + 414dc9: 0f 45 c2 cmovne %edx,%eax + 414dcc: 89 03 mov %eax,(%rbx) + 414dce: 48 83 c4 20 add $0x20,%rsp + 414dd2: 5b pop %rbx + 414dd3: c3 retq + 414dd4: 0f 1f 40 00 nopl 0x0(%rax) + 414dd8: 89 4c 24 1c mov %ecx,0x1c(%rsp) + 414ddc: 48 89 54 24 10 mov %rdx,0x10(%rsp) + 414de1: 48 89 74 24 08 mov %rsi,0x8(%rsp) + 414de6: e8 c5 8f 00 00 callq 41ddb0 <__cfree> + 414deb: 8b 03 mov (%rbx),%eax + 414ded: 8b 4c 24 1c mov 0x1c(%rsp),%ecx + 414df1: 48 8b 54 24 10 mov 0x10(%rsp),%rdx + 414df6: 48 8b 74 24 08 mov 0x8(%rsp),%rsi + 414dfb: eb ba jmp 414db7 <_IO_setb+0x17> + 414dfd: 0f 1f 00 nopl (%rax) + +0000000000414e00 <_IO_doallocbuf>: + 414e00: 48 83 7f 38 00 cmpq $0x0,0x38(%rdi) + 414e05: 74 09 je 414e10 <_IO_doallocbuf+0x10> + 414e07: c3 retq + 414e08: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 414e0f: 00 + 414e10: 41 54 push %r12 + 414e12: 55 push %rbp + 414e13: 53 push %rbx + 414e14: 8b 07 mov (%rdi),%eax + 414e16: 48 89 fb mov %rdi,%rbx + 414e19: a8 02 test $0x2,%al + 414e1b: 74 0a je 414e27 <_IO_doallocbuf+0x27> + 414e1d: 8b 97 c0 00 00 00 mov 0xc0(%rdi),%edx + 414e23: 85 d2 test %edx,%edx + 414e25: 7e 49 jle 414e70 <_IO_doallocbuf+0x70> + 414e27: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 414e2e: 48 89 df mov %rbx,%rdi + 414e31: ff 50 68 callq *0x68(%rax) + 414e34: 83 f8 ff cmp $0xffffffff,%eax + 414e37: 74 07 je 414e40 <_IO_doallocbuf+0x40> + 414e39: 5b pop %rbx + 414e3a: 5d pop %rbp + 414e3b: 41 5c pop %r12 + 414e3d: c3 retq + 414e3e: 66 90 xchg %ax,%ax + 414e40: 48 8b 7b 38 mov 0x38(%rbx),%rdi + 414e44: 4c 8d a3 84 00 00 00 lea 0x84(%rbx),%r12 + 414e4b: 48 8d ab 83 00 00 00 lea 0x83(%rbx),%rbp + 414e52: 8b 03 mov (%rbx),%eax + 414e54: 48 85 ff test %rdi,%rdi + 414e57: 74 04 je 414e5d <_IO_doallocbuf+0x5d> + 414e59: a8 01 test $0x1,%al + 414e5b: 74 23 je 414e80 <_IO_doallocbuf+0x80> + 414e5d: 83 c8 01 or $0x1,%eax + 414e60: 48 89 6b 38 mov %rbp,0x38(%rbx) + 414e64: 4c 89 63 40 mov %r12,0x40(%rbx) + 414e68: 89 03 mov %eax,(%rbx) + 414e6a: eb cd jmp 414e39 <_IO_doallocbuf+0x39> + 414e6c: 0f 1f 40 00 nopl 0x0(%rax) + 414e70: 4c 8d a7 84 00 00 00 lea 0x84(%rdi),%r12 + 414e77: 48 8d af 83 00 00 00 lea 0x83(%rdi),%rbp + 414e7e: eb dd jmp 414e5d <_IO_doallocbuf+0x5d> + 414e80: e8 2b 8f 00 00 callq 41ddb0 <__cfree> + 414e85: 8b 03 mov (%rbx),%eax + 414e87: eb d4 jmp 414e5d <_IO_doallocbuf+0x5d> + 414e89: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +0000000000414e90 <_IO_default_underflow>: + 414e90: b8 ff ff ff ff mov $0xffffffff,%eax + 414e95: c3 retq + 414e96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 414e9d: 00 00 00 + +0000000000414ea0 <_IO_default_uflow>: + 414ea0: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 414ea7: 53 push %rbx + 414ea8: 48 89 fb mov %rdi,%rbx + 414eab: ff 50 20 callq *0x20(%rax) + 414eae: 83 f8 ff cmp $0xffffffff,%eax + 414eb1: 74 0f je 414ec2 <_IO_default_uflow+0x22> + 414eb3: 48 8b 43 08 mov 0x8(%rbx),%rax + 414eb7: 48 8d 50 01 lea 0x1(%rax),%rdx + 414ebb: 48 89 53 08 mov %rdx,0x8(%rbx) + 414ebf: 0f b6 00 movzbl (%rax),%eax + 414ec2: 5b pop %rbx + 414ec3: c3 retq + 414ec4: 66 90 xchg %ax,%ax + 414ec6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 414ecd: 00 00 00 + +0000000000414ed0 <_IO_default_xsputn>: + 414ed0: 48 85 d2 test %rdx,%rdx + 414ed3: 0f 84 b7 00 00 00 je 414f90 <_IO_default_xsputn+0xc0> + 414ed9: 41 56 push %r14 + 414edb: 41 55 push %r13 + 414edd: 49 89 f6 mov %rsi,%r14 + 414ee0: 41 54 push %r12 + 414ee2: 55 push %rbp + 414ee3: 49 89 fc mov %rdi,%r12 + 414ee6: 53 push %rbx + 414ee7: 49 89 d5 mov %rdx,%r13 + 414eea: 48 89 d5 mov %rdx,%rbp + 414eed: 0f 1f 00 nopl (%rax) + 414ef0: 49 8b 7c 24 28 mov 0x28(%r12),%rdi + 414ef5: 49 8b 5c 24 30 mov 0x30(%r12),%rbx + 414efa: 48 39 df cmp %rbx,%rdi + 414efd: 73 36 jae 414f35 <_IO_default_xsputn+0x65> + 414eff: 48 29 fb sub %rdi,%rbx + 414f02: 48 39 dd cmp %rbx,%rbp + 414f05: 48 0f 46 dd cmovbe %rbp,%rbx + 414f09: 48 83 fb 14 cmp $0x14,%rbx + 414f0d: 77 51 ja 414f60 <_IO_default_xsputn+0x90> + 414f0f: 48 85 db test %rbx,%rbx + 414f12: 74 1e je 414f32 <_IO_default_xsputn+0x62> + 414f14: 31 c0 xor %eax,%eax + 414f16: 41 0f b6 14 06 movzbl (%r14,%rax,1),%edx + 414f1b: 88 14 07 mov %dl,(%rdi,%rax,1) + 414f1e: 48 83 c0 01 add $0x1,%rax + 414f22: 48 39 c3 cmp %rax,%rbx + 414f25: 75 ef jne 414f16 <_IO_default_xsputn+0x46> + 414f27: 48 01 df add %rbx,%rdi + 414f2a: 49 01 de add %rbx,%r14 + 414f2d: 49 89 7c 24 28 mov %rdi,0x28(%r12) + 414f32: 48 29 dd sub %rbx,%rbp + 414f35: 48 85 ed test %rbp,%rbp + 414f38: 74 3e je 414f78 <_IO_default_xsputn+0xa8> + 414f3a: 49 8b 84 24 d8 00 00 mov 0xd8(%r12),%rax + 414f41: 00 + 414f42: 41 0f b6 36 movzbl (%r14),%esi + 414f46: 4c 89 e7 mov %r12,%rdi + 414f49: 49 8d 5e 01 lea 0x1(%r14),%rbx + 414f4d: ff 50 18 callq *0x18(%rax) + 414f50: 83 f8 ff cmp $0xffffffff,%eax + 414f53: 74 23 je 414f78 <_IO_default_xsputn+0xa8> + 414f55: 48 83 ed 01 sub $0x1,%rbp + 414f59: 49 89 de mov %rbx,%r14 + 414f5c: eb 92 jmp 414ef0 <_IO_default_xsputn+0x20> + 414f5e: 66 90 xchg %ax,%ax + 414f60: 4c 89 f6 mov %r14,%rsi + 414f63: 48 89 da mov %rbx,%rdx + 414f66: 49 01 de add %rbx,%r14 + 414f69: e8 52 16 01 00 callq 4265c0 <__mempcpy> + 414f6e: 49 89 44 24 28 mov %rax,0x28(%r12) + 414f73: eb bd jmp 414f32 <_IO_default_xsputn+0x62> + 414f75: 0f 1f 00 nopl (%rax) + 414f78: 4c 89 e8 mov %r13,%rax + 414f7b: 5b pop %rbx + 414f7c: 48 29 e8 sub %rbp,%rax + 414f7f: 5d pop %rbp + 414f80: 41 5c pop %r12 + 414f82: 41 5d pop %r13 + 414f84: 41 5e pop %r14 + 414f86: c3 retq + 414f87: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 414f8e: 00 00 + 414f90: 31 c0 xor %eax,%eax + 414f92: c3 retq + 414f93: 0f 1f 00 nopl (%rax) + 414f96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 414f9d: 00 00 00 + +0000000000414fa0 <_IO_sgetn>: + 414fa0: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 414fa7: 48 8b 40 40 mov 0x40(%rax),%rax + 414fab: ff e0 jmpq *%rax + 414fad: 0f 1f 00 nopl (%rax) + +0000000000414fb0 <_IO_default_xsgetn>: + 414fb0: 41 56 push %r14 + 414fb2: 41 55 push %r13 + 414fb4: 49 89 d6 mov %rdx,%r14 + 414fb7: 41 54 push %r12 + 414fb9: 49 89 f4 mov %rsi,%r12 + 414fbc: 55 push %rbp + 414fbd: 53 push %rbx + 414fbe: 48 8b 4f 08 mov 0x8(%rdi),%rcx + 414fc2: 48 89 fb mov %rdi,%rbx + 414fc5: 48 8b 77 10 mov 0x10(%rdi),%rsi + 414fc9: 49 89 d5 mov %rdx,%r13 + 414fcc: 0f 1f 40 00 nopl 0x0(%rax) + 414fd0: 48 39 ce cmp %rcx,%rsi + 414fd3: 76 4a jbe 41501f <_IO_default_xsgetn+0x6f> + 414fd5: 48 29 ce sub %rcx,%rsi + 414fd8: 49 39 f6 cmp %rsi,%r14 + 414fdb: 49 0f 46 f6 cmovbe %r14,%rsi + 414fdf: 48 83 fe 14 cmp $0x14,%rsi + 414fe3: 48 89 f5 mov %rsi,%rbp + 414fe6: 0f 87 44 01 00 00 ja 415130 <_IO_default_xsgetn+0x180> + 414fec: 48 85 f6 test %rsi,%rsi + 414fef: 74 2b je 41501c <_IO_default_xsgetn+0x6c> + 414ff1: 8d 76 ff lea -0x1(%rsi),%esi + 414ff4: 31 c0 xor %eax,%eax + 414ff6: 48 89 f2 mov %rsi,%rdx + 414ff9: 48 83 c6 01 add $0x1,%rsi + 414ffd: 0f b6 3c 01 movzbl (%rcx,%rax,1),%edi + 415001: 41 88 3c 04 mov %dil,(%r12,%rax,1) + 415005: 48 83 c0 01 add $0x1,%rax + 415009: 48 39 f0 cmp %rsi,%rax + 41500c: 75 ef jne 414ffd <_IO_default_xsgetn+0x4d> + 41500e: 48 83 c2 01 add $0x1,%rdx + 415012: 49 01 d4 add %rdx,%r12 + 415015: 48 01 ca add %rcx,%rdx + 415018: 48 89 53 08 mov %rdx,0x8(%rbx) + 41501c: 49 29 ee sub %rbp,%r14 + 41501f: 4d 85 f6 test %r14,%r14 + 415022: 0f 84 b1 00 00 00 je 4150d9 <_IO_default_xsgetn+0x129> + 415028: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax + 41502e: 85 c0 test %eax,%eax + 415030: 0f 85 9a 00 00 00 jne 4150d0 <_IO_default_xsgetn+0x120> + 415036: c7 83 c0 00 00 00 ff movl $0xffffffff,0xc0(%rbx) + 41503d: ff ff ff + 415040: 8b 03 mov (%rbx),%eax + 415042: f6 c4 08 test $0x8,%ah + 415045: 0f 85 a5 00 00 00 jne 4150f0 <_IO_default_xsgetn+0x140> + 41504b: 48 8b 4b 08 mov 0x8(%rbx),%rcx + 41504f: 48 8b 73 10 mov 0x10(%rbx),%rsi + 415053: 48 39 ce cmp %rcx,%rsi + 415056: 0f 87 74 ff ff ff ja 414fd0 <_IO_default_xsgetn+0x20> + 41505c: f6 c4 01 test $0x1,%ah + 41505f: 74 31 je 415092 <_IO_default_xsgetn+0xe2> + 415061: 48 8b 53 58 mov 0x58(%rbx),%rdx + 415065: 48 8b 4b 48 mov 0x48(%rbx),%rcx + 415069: 80 e4 fe and $0xfe,%ah + 41506c: 48 89 73 58 mov %rsi,0x58(%rbx) + 415070: 48 8b 73 18 mov 0x18(%rbx),%rsi + 415074: 89 03 mov %eax,(%rbx) + 415076: 48 39 ca cmp %rcx,%rdx + 415079: 48 89 53 10 mov %rdx,0x10(%rbx) + 41507d: 48 89 4b 18 mov %rcx,0x18(%rbx) + 415081: 48 89 73 48 mov %rsi,0x48(%rbx) + 415085: 48 89 4b 08 mov %rcx,0x8(%rbx) + 415089: 48 89 d6 mov %rdx,%rsi + 41508c: 0f 87 3e ff ff ff ja 414fd0 <_IO_default_xsgetn+0x20> + 415092: 48 83 7b 60 00 cmpq $0x0,0x60(%rbx) + 415097: 0f 84 b3 00 00 00 je 415150 <_IO_default_xsgetn+0x1a0> + 41509d: 48 89 df mov %rbx,%rdi + 4150a0: e8 bb ee ff ff callq 413f60 + 4150a5: 85 c0 test %eax,%eax + 4150a7: 75 30 jne 4150d9 <_IO_default_xsgetn+0x129> + 4150a9: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 4150b0: 48 89 df mov %rbx,%rdi + 4150b3: ff 50 20 callq *0x20(%rax) + 4150b6: 83 f8 ff cmp $0xffffffff,%eax + 4150b9: 74 1e je 4150d9 <_IO_default_xsgetn+0x129> + 4150bb: 48 8b 4b 08 mov 0x8(%rbx),%rcx + 4150bf: 48 8b 73 10 mov 0x10(%rbx),%rsi + 4150c3: e9 08 ff ff ff jmpq 414fd0 <_IO_default_xsgetn+0x20> + 4150c8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4150cf: 00 + 4150d0: 83 f8 ff cmp $0xffffffff,%eax + 4150d3: 0f 84 67 ff ff ff je 415040 <_IO_default_xsgetn+0x90> + 4150d9: 4c 89 e8 mov %r13,%rax + 4150dc: 5b pop %rbx + 4150dd: 4c 29 f0 sub %r14,%rax + 4150e0: 5d pop %rbp + 4150e1: 41 5c pop %r12 + 4150e3: 41 5d pop %r13 + 4150e5: 41 5e pop %r14 + 4150e7: c3 retq + 4150e8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4150ef: 00 + 4150f0: 48 8b 4b 28 mov 0x28(%rbx),%rcx + 4150f4: 48 3b 4b 20 cmp 0x20(%rbx),%rcx + 4150f8: 0f 87 ca 00 00 00 ja 4151c8 <_IO_default_xsgetn+0x218> + 4150fe: f6 c4 01 test $0x1,%ah + 415101: 0f 84 99 00 00 00 je 4151a0 <_IO_default_xsgetn+0x1f0> + 415107: 48 8b 53 50 mov 0x50(%rbx),%rdx + 41510b: 48 8b 73 10 mov 0x10(%rbx),%rsi + 41510f: 48 89 53 18 mov %rdx,0x18(%rbx) + 415113: 80 e4 f7 and $0xf7,%ah + 415116: 48 89 4b 08 mov %rcx,0x8(%rbx) + 41511a: 48 89 4b 30 mov %rcx,0x30(%rbx) + 41511e: 48 89 4b 20 mov %rcx,0x20(%rbx) + 415122: 89 03 mov %eax,(%rbx) + 415124: e9 2a ff ff ff jmpq 415053 <_IO_default_xsgetn+0xa3> + 415129: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 415130: 48 89 f2 mov %rsi,%rdx + 415133: 4c 89 e7 mov %r12,%rdi + 415136: 48 89 ce mov %rcx,%rsi + 415139: e8 82 14 01 00 callq 4265c0 <__mempcpy> + 41513e: 48 01 6b 08 add %rbp,0x8(%rbx) + 415142: 49 89 c4 mov %rax,%r12 + 415145: e9 d2 fe ff ff jmpq 41501c <_IO_default_xsgetn+0x6c> + 41514a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 415150: 48 8b 7b 48 mov 0x48(%rbx),%rdi + 415154: 48 85 ff test %rdi,%rdi + 415157: 0f 84 4c ff ff ff je 4150a9 <_IO_default_xsgetn+0xf9> + 41515d: f6 c4 01 test $0x1,%ah + 415160: 74 1c je 41517e <_IO_default_xsgetn+0x1ce> + 415162: 80 e4 fe and $0xfe,%ah + 415165: 48 89 7b 08 mov %rdi,0x8(%rbx) + 415169: 89 03 mov %eax,(%rbx) + 41516b: 48 8b 43 58 mov 0x58(%rbx),%rax + 41516f: 48 89 43 10 mov %rax,0x10(%rbx) + 415173: 48 8b 43 18 mov 0x18(%rbx),%rax + 415177: 48 89 7b 18 mov %rdi,0x18(%rbx) + 41517b: 48 89 c7 mov %rax,%rdi + 41517e: e8 2d 8c 00 00 callq 41ddb0 <__cfree> + 415183: 48 c7 43 48 00 00 00 movq $0x0,0x48(%rbx) + 41518a: 00 + 41518b: 48 c7 43 58 00 00 00 movq $0x0,0x58(%rbx) + 415192: 00 + 415193: 48 c7 43 50 00 00 00 movq $0x0,0x50(%rbx) + 41519a: 00 + 41519b: e9 09 ff ff ff jmpq 4150a9 <_IO_default_xsgetn+0xf9> + 4151a0: 48 8b 73 10 mov 0x10(%rbx),%rsi + 4151a4: 48 8b 53 38 mov 0x38(%rbx),%rdx + 4151a8: 48 39 ce cmp %rcx,%rsi + 4151ab: 48 89 53 18 mov %rdx,0x18(%rbx) + 4151af: 0f 83 5e ff ff ff jae 415113 <_IO_default_xsgetn+0x163> + 4151b5: 48 89 4b 10 mov %rcx,0x10(%rbx) + 4151b9: 48 89 ce mov %rcx,%rsi + 4151bc: e9 52 ff ff ff jmpq 415113 <_IO_default_xsgetn+0x163> + 4151c1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4151c8: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 4151cf: be ff ff ff ff mov $0xffffffff,%esi + 4151d4: 48 89 df mov %rbx,%rdi + 4151d7: ff 50 18 callq *0x18(%rax) + 4151da: 83 f8 ff cmp $0xffffffff,%eax + 4151dd: 0f 84 f6 fe ff ff je 4150d9 <_IO_default_xsgetn+0x129> + 4151e3: 8b 03 mov (%rbx),%eax + 4151e5: 48 8b 4b 28 mov 0x28(%rbx),%rcx + 4151e9: e9 10 ff ff ff jmpq 4150fe <_IO_default_xsgetn+0x14e> + 4151ee: 66 90 xchg %ax,%ax + +00000000004151f0 <_IO_default_setbuf>: + 4151f0: 41 54 push %r12 + 4151f2: 55 push %rbp + 4151f3: 49 89 f4 mov %rsi,%r12 + 4151f6: 53 push %rbx + 4151f7: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 4151fe: 48 89 fb mov %rdi,%rbx + 415201: 48 89 d5 mov %rdx,%rbp + 415204: ff 50 60 callq *0x60(%rax) + 415207: 83 f8 ff cmp $0xffffffff,%eax + 41520a: 0f 84 a0 00 00 00 je 4152b0 <_IO_default_setbuf+0xc0> + 415210: 8b 13 mov (%rbx),%edx + 415212: 4d 85 e4 test %r12,%r12 + 415215: 89 d0 mov %edx,%eax + 415217: 74 67 je 415280 <_IO_default_setbuf+0x90> + 415219: 48 85 ed test %rbp,%rbp + 41521c: 74 62 je 415280 <_IO_default_setbuf+0x90> + 41521e: 48 8b 7b 38 mov 0x38(%rbx),%rdi + 415222: 83 e0 fd and $0xfffffffd,%eax + 415225: 4c 01 e5 add %r12,%rbp + 415228: 89 03 mov %eax,(%rbx) + 41522a: 48 85 ff test %rdi,%rdi + 41522d: 74 05 je 415234 <_IO_default_setbuf+0x44> + 41522f: 83 e2 01 and $0x1,%edx + 415232: 74 6d je 4152a1 <_IO_default_setbuf+0xb1> + 415234: 83 c8 01 or $0x1,%eax + 415237: 4c 89 63 38 mov %r12,0x38(%rbx) + 41523b: 48 89 6b 40 mov %rbp,0x40(%rbx) + 41523f: 89 03 mov %eax,(%rbx) + 415241: 48 c7 43 30 00 00 00 movq $0x0,0x30(%rbx) + 415248: 00 + 415249: 48 89 d8 mov %rbx,%rax + 41524c: 48 c7 43 28 00 00 00 movq $0x0,0x28(%rbx) + 415253: 00 + 415254: 48 c7 43 20 00 00 00 movq $0x0,0x20(%rbx) + 41525b: 00 + 41525c: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) + 415263: 00 + 415264: 48 c7 43 08 00 00 00 movq $0x0,0x8(%rbx) + 41526b: 00 + 41526c: 48 c7 43 18 00 00 00 movq $0x0,0x18(%rbx) + 415273: 00 + 415274: 5b pop %rbx + 415275: 5d pop %rbp + 415276: 41 5c pop %r12 + 415278: c3 retq + 415279: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 415280: 48 8b 7b 38 mov 0x38(%rbx),%rdi + 415284: 83 c8 02 or $0x2,%eax + 415287: 48 8d ab 84 00 00 00 lea 0x84(%rbx),%rbp + 41528e: 89 03 mov %eax,(%rbx) + 415290: 4c 8d a3 83 00 00 00 lea 0x83(%rbx),%r12 + 415297: 48 85 ff test %rdi,%rdi + 41529a: 74 98 je 415234 <_IO_default_setbuf+0x44> + 41529c: 83 e2 01 and $0x1,%edx + 41529f: 75 93 jne 415234 <_IO_default_setbuf+0x44> + 4152a1: e8 0a 8b 00 00 callq 41ddb0 <__cfree> + 4152a6: 8b 03 mov (%rbx),%eax + 4152a8: eb 8a jmp 415234 <_IO_default_setbuf+0x44> + 4152aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4152b0: 31 c0 xor %eax,%eax + 4152b2: eb c0 jmp 415274 <_IO_default_setbuf+0x84> + 4152b4: 66 90 xchg %ax,%ax + 4152b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4152bd: 00 00 00 + +00000000004152c0 <_IO_default_seekpos>: + 4152c0: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 4152c7: 89 d1 mov %edx,%ecx + 4152c9: 31 d2 xor %edx,%edx + 4152cb: 48 8b 40 48 mov 0x48(%rax),%rax + 4152cf: ff e0 jmpq *%rax + 4152d1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4152d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4152dd: 00 00 00 + +00000000004152e0 <_IO_default_doallocate>: + 4152e0: 41 54 push %r12 + 4152e2: 55 push %rbp + 4152e3: 53 push %rbx + 4152e4: 48 89 fb mov %rdi,%rbx + 4152e7: bf 00 20 00 00 mov $0x2000,%edi + 4152ec: e8 1f 87 00 00 callq 41da10 <__libc_malloc> + 4152f1: 48 89 c5 mov %rax,%rbp + 4152f4: b8 ff ff ff ff mov $0xffffffff,%eax + 4152f9: 48 85 ed test %rbp,%rbp + 4152fc: 74 29 je 415327 <_IO_default_doallocate+0x47> + 4152fe: 48 8b 7b 38 mov 0x38(%rbx),%rdi + 415302: 4c 8d a5 00 20 00 00 lea 0x2000(%rbp),%r12 + 415309: 8b 13 mov (%rbx),%edx + 41530b: 48 85 ff test %rdi,%rdi + 41530e: 74 05 je 415315 <_IO_default_doallocate+0x35> + 415310: f6 c2 01 test $0x1,%dl + 415313: 74 1b je 415330 <_IO_default_doallocate+0x50> + 415315: 83 e2 fe and $0xfffffffe,%edx + 415318: 48 89 6b 38 mov %rbp,0x38(%rbx) + 41531c: 4c 89 63 40 mov %r12,0x40(%rbx) + 415320: 89 13 mov %edx,(%rbx) + 415322: b8 01 00 00 00 mov $0x1,%eax + 415327: 5b pop %rbx + 415328: 5d pop %rbp + 415329: 41 5c pop %r12 + 41532b: c3 retq + 41532c: 0f 1f 40 00 nopl 0x0(%rax) + 415330: e8 7b 8a 00 00 callq 41ddb0 <__cfree> + 415335: 8b 13 mov (%rbx),%edx + 415337: eb dc jmp 415315 <_IO_default_doallocate+0x35> + 415339: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +0000000000415340 <_IO_init>: + 415340: 31 c0 xor %eax,%eax + 415342: 81 ce 00 00 ad fb or $0xfbad0000,%esi + 415348: c7 47 74 00 00 00 00 movl $0x0,0x74(%rdi) + 41534f: 66 89 87 80 00 00 00 mov %ax,0x80(%rdi) + 415356: 48 8b 87 88 00 00 00 mov 0x88(%rdi),%rax + 41535d: 89 37 mov %esi,(%rdi) + 41535f: 48 c7 47 38 00 00 00 movq $0x0,0x38(%rdi) + 415366: 00 + 415367: 48 c7 47 40 00 00 00 movq $0x0,0x40(%rdi) + 41536e: 00 + 41536f: 48 c7 47 18 00 00 00 movq $0x0,0x18(%rdi) + 415376: 00 + 415377: 48 85 c0 test %rax,%rax + 41537a: 48 c7 47 08 00 00 00 movq $0x0,0x8(%rdi) + 415381: 00 + 415382: 48 c7 47 10 00 00 00 movq $0x0,0x10(%rdi) + 415389: 00 + 41538a: 48 c7 47 20 00 00 00 movq $0x0,0x20(%rdi) + 415391: 00 + 415392: 48 c7 47 28 00 00 00 movq $0x0,0x28(%rdi) + 415399: 00 + 41539a: 48 c7 47 30 00 00 00 movq $0x0,0x30(%rdi) + 4153a1: 00 + 4153a2: 48 c7 47 68 00 00 00 movq $0x0,0x68(%rdi) + 4153a9: 00 + 4153aa: 48 c7 47 48 00 00 00 movq $0x0,0x48(%rdi) + 4153b1: 00 + 4153b2: 48 c7 47 50 00 00 00 movq $0x0,0x50(%rdi) + 4153b9: 00 + 4153ba: 48 c7 47 58 00 00 00 movq $0x0,0x58(%rdi) + 4153c1: 00 + 4153c2: 48 c7 47 60 00 00 00 movq $0x0,0x60(%rdi) + 4153c9: 00 + 4153ca: 74 15 je 4153e1 <_IO_init+0xa1> + 4153cc: c7 00 00 00 00 00 movl $0x0,(%rax) + 4153d2: c7 40 04 00 00 00 00 movl $0x0,0x4(%rax) + 4153d9: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) + 4153e0: 00 + 4153e1: c7 87 c0 00 00 00 ff movl $0xffffffff,0xc0(%rdi) + 4153e8: ff ff ff + 4153eb: 48 c7 87 a0 00 00 00 movq $0xffffffffffffffff,0xa0(%rdi) + 4153f2: ff ff ff ff + 4153f6: 48 c7 87 a8 00 00 00 movq $0x0,0xa8(%rdi) + 4153fd: 00 00 00 00 + 415401: c3 retq + 415402: 0f 1f 40 00 nopl 0x0(%rax) + 415406: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41540d: 00 00 00 + +0000000000415410 <_IO_old_init>: + 415410: 31 c0 xor %eax,%eax + 415412: 81 ce 00 00 ad fb or $0xfbad0000,%esi + 415418: c7 47 74 00 00 00 00 movl $0x0,0x74(%rdi) + 41541f: 66 89 87 80 00 00 00 mov %ax,0x80(%rdi) + 415426: 48 8b 87 88 00 00 00 mov 0x88(%rdi),%rax + 41542d: 89 37 mov %esi,(%rdi) + 41542f: 48 c7 47 38 00 00 00 movq $0x0,0x38(%rdi) + 415436: 00 + 415437: 48 c7 47 40 00 00 00 movq $0x0,0x40(%rdi) + 41543e: 00 + 41543f: 48 c7 47 18 00 00 00 movq $0x0,0x18(%rdi) + 415446: 00 + 415447: 48 85 c0 test %rax,%rax + 41544a: 48 c7 47 08 00 00 00 movq $0x0,0x8(%rdi) + 415451: 00 + 415452: 48 c7 47 10 00 00 00 movq $0x0,0x10(%rdi) + 415459: 00 + 41545a: 48 c7 47 20 00 00 00 movq $0x0,0x20(%rdi) + 415461: 00 + 415462: 48 c7 47 28 00 00 00 movq $0x0,0x28(%rdi) + 415469: 00 + 41546a: 48 c7 47 30 00 00 00 movq $0x0,0x30(%rdi) + 415471: 00 + 415472: 48 c7 47 68 00 00 00 movq $0x0,0x68(%rdi) + 415479: 00 + 41547a: 48 c7 47 48 00 00 00 movq $0x0,0x48(%rdi) + 415481: 00 + 415482: 48 c7 47 50 00 00 00 movq $0x0,0x50(%rdi) + 415489: 00 + 41548a: 48 c7 47 58 00 00 00 movq $0x0,0x58(%rdi) + 415491: 00 + 415492: 48 c7 47 60 00 00 00 movq $0x0,0x60(%rdi) + 415499: 00 + 41549a: 74 15 je 4154b1 <_IO_old_init+0xa1> + 41549c: c7 00 00 00 00 00 movl $0x0,(%rax) + 4154a2: c7 40 04 00 00 00 00 movl $0x0,0x4(%rax) + 4154a9: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) + 4154b0: 00 + 4154b1: f3 c3 repz retq + 4154b3: 0f 1f 00 nopl (%rax) + 4154b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4154bd: 00 00 00 + +00000000004154c0 <_IO_no_init>: + 4154c0: 31 c0 xor %eax,%eax + 4154c2: 81 ce 00 00 ad fb or $0xfbad0000,%esi + 4154c8: c7 47 74 00 00 00 00 movl $0x0,0x74(%rdi) + 4154cf: 66 89 87 80 00 00 00 mov %ax,0x80(%rdi) + 4154d6: 48 8b 87 88 00 00 00 mov 0x88(%rdi),%rax + 4154dd: 89 37 mov %esi,(%rdi) + 4154df: 48 c7 47 38 00 00 00 movq $0x0,0x38(%rdi) + 4154e6: 00 + 4154e7: 48 c7 47 40 00 00 00 movq $0x0,0x40(%rdi) + 4154ee: 00 + 4154ef: 48 c7 47 18 00 00 00 movq $0x0,0x18(%rdi) + 4154f6: 00 + 4154f7: 48 85 c0 test %rax,%rax + 4154fa: 48 c7 47 08 00 00 00 movq $0x0,0x8(%rdi) + 415501: 00 + 415502: 48 c7 47 10 00 00 00 movq $0x0,0x10(%rdi) + 415509: 00 + 41550a: 48 c7 47 20 00 00 00 movq $0x0,0x20(%rdi) + 415511: 00 + 415512: 48 c7 47 28 00 00 00 movq $0x0,0x28(%rdi) + 415519: 00 + 41551a: 48 c7 47 30 00 00 00 movq $0x0,0x30(%rdi) + 415521: 00 + 415522: 48 c7 47 68 00 00 00 movq $0x0,0x68(%rdi) + 415529: 00 + 41552a: 48 c7 47 48 00 00 00 movq $0x0,0x48(%rdi) + 415531: 00 + 415532: 48 c7 47 50 00 00 00 movq $0x0,0x50(%rdi) + 415539: 00 + 41553a: 48 c7 47 58 00 00 00 movq $0x0,0x58(%rdi) + 415541: 00 + 415542: 48 c7 47 60 00 00 00 movq $0x0,0x60(%rdi) + 415549: 00 + 41554a: 74 15 je 415561 <_IO_no_init+0xa1> + 41554c: c7 00 00 00 00 00 movl $0x0,(%rax) + 415552: c7 40 04 00 00 00 00 movl $0x0,0x4(%rax) + 415559: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) + 415560: 00 + 415561: 85 d2 test %edx,%edx + 415563: 89 97 c0 00 00 00 mov %edx,0xc0(%rdi) + 415569: 78 75 js 4155e0 <_IO_no_init+0x120> + 41556b: 48 89 8f a0 00 00 00 mov %rcx,0xa0(%rdi) + 415572: 48 c7 41 30 00 00 00 movq $0x0,0x30(%rcx) + 415579: 00 + 41557a: 48 c7 41 38 00 00 00 movq $0x0,0x38(%rcx) + 415581: 00 + 415582: 48 c7 41 10 00 00 00 movq $0x0,0x10(%rcx) + 415589: 00 + 41558a: 48 c7 01 00 00 00 00 movq $0x0,(%rcx) + 415591: 48 c7 41 08 00 00 00 movq $0x0,0x8(%rcx) + 415598: 00 + 415599: 48 c7 41 18 00 00 00 movq $0x0,0x18(%rcx) + 4155a0: 00 + 4155a1: 48 c7 41 20 00 00 00 movq $0x0,0x20(%rcx) + 4155a8: 00 + 4155a9: 48 c7 41 28 00 00 00 movq $0x0,0x28(%rcx) + 4155b0: 00 + 4155b1: 48 c7 41 40 00 00 00 movq $0x0,0x40(%rcx) + 4155b8: 00 + 4155b9: 48 c7 41 48 00 00 00 movq $0x0,0x48(%rcx) + 4155c0: 00 + 4155c1: 48 c7 41 50 00 00 00 movq $0x0,0x50(%rcx) + 4155c8: 00 + 4155c9: 4c 89 81 30 01 00 00 mov %r8,0x130(%rcx) + 4155d0: 48 c7 87 a8 00 00 00 movq $0x0,0xa8(%rdi) + 4155d7: 00 00 00 00 + 4155db: c3 retq + 4155dc: 0f 1f 40 00 nopl 0x0(%rax) + 4155e0: 48 c7 87 a0 00 00 00 movq $0xffffffffffffffff,0xa0(%rdi) + 4155e7: ff ff ff ff + 4155eb: 48 c7 87 a8 00 00 00 movq $0x0,0xa8(%rdi) + 4155f2: 00 00 00 00 + 4155f6: c3 retq + 4155f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4155fe: 00 00 + +0000000000415600 <_IO_default_sync>: + 415600: 31 c0 xor %eax,%eax + 415602: c3 retq + 415603: 0f 1f 00 nopl (%rax) + 415606: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41560d: 00 00 00 + +0000000000415610 <_IO_default_finish>: + 415610: 55 push %rbp + 415611: 53 push %rbx + 415612: 48 89 fb mov %rdi,%rbx + 415615: 48 83 ec 28 sub $0x28,%rsp + 415619: 48 8b 7f 38 mov 0x38(%rdi),%rdi + 41561d: 48 85 ff test %rdi,%rdi + 415620: 74 09 je 41562b <_IO_default_finish+0x1b> + 415622: f6 03 01 testb $0x1,(%rbx) + 415625: 0f 84 fd 01 00 00 je 415828 <_IO_default_finish+0x218> + 41562b: 48 8b 43 60 mov 0x60(%rbx),%rax + 41562f: 48 85 c0 test %rax,%rax + 415632: 74 14 je 415648 <_IO_default_finish+0x38> + 415634: 0f 1f 40 00 nopl 0x0(%rax) + 415638: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) + 41563f: 00 + 415640: 48 8b 00 mov (%rax),%rax + 415643: 48 85 c0 test %rax,%rax + 415646: 75 f0 jne 415638 <_IO_default_finish+0x28> + 415648: 48 8b 7b 48 mov 0x48(%rbx),%rdi + 41564c: 48 85 ff test %rdi,%rdi + 41564f: 74 0d je 41565e <_IO_default_finish+0x4e> + 415651: e8 5a 87 00 00 callq 41ddb0 <__cfree> + 415656: 48 c7 43 48 00 00 00 movq $0x0,0x48(%rbx) + 41565d: 00 + 41565e: f6 03 80 testb $0x80,(%rbx) + 415661: 75 0d jne 415670 <_IO_default_finish+0x60> + 415663: 48 83 c4 28 add $0x28,%rsp + 415667: 5b pop %rbx + 415668: 5d pop %rbp + 415669: c3 retq + 41566a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 415670: bd 00 00 00 00 mov $0x0,%ebp + 415675: 48 85 ed test %rbp,%rbp + 415678: 0f 84 62 02 00 00 je 4158e0 <_IO_default_finish+0x2d0> + 41567e: 31 d2 xor %edx,%edx + 415680: be 50 41 41 00 mov $0x414150,%esi + 415685: 48 89 e7 mov %rsp,%rdi + 415688: e8 73 a9 be ff callq 0 <_nl_current_LC_CTYPE> + 41568d: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx + 415694: 00 00 + 415696: 48 3b 15 0b 6f 2b 00 cmp 0x2b6f0b(%rip),%rdx # 6cc5a8 + 41569d: 74 46 je 4156e5 <_IO_default_finish+0xd5> + 41569f: be 01 00 00 00 mov $0x1,%esi + 4156a4: 31 c0 xor %eax,%eax + 4156a6: 83 3d 0f 7b 2b 00 00 cmpl $0x0,0x2b7b0f(%rip) # 6cd1bc <__libc_multiple_threads> + 4156ad: 74 0c je 4156bb <_IO_default_finish+0xab> + 4156af: f0 0f b1 35 e9 6e 2b lock cmpxchg %esi,0x2b6ee9(%rip) # 6cc5a0 + 4156b6: 00 + 4156b7: 75 0b jne 4156c4 <_IO_default_finish+0xb4> + 4156b9: eb 23 jmp 4156de <_IO_default_finish+0xce> + 4156bb: 0f b1 35 de 6e 2b 00 cmpxchg %esi,0x2b6ede(%rip) # 6cc5a0 + 4156c2: 74 1a je 4156de <_IO_default_finish+0xce> + 4156c4: 48 8d 3d d5 6e 2b 00 lea 0x2b6ed5(%rip),%rdi # 6cc5a0 + 4156cb: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4156d2: e8 f9 ce 02 00 callq 4425d0 <__lll_lock_wait_private> + 4156d7: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4156de: 48 89 15 c3 6e 2b 00 mov %rdx,0x2b6ec3(%rip) # 6cc5a8 + 4156e5: 8b 33 mov (%rbx),%esi + 4156e7: 8b 15 b7 6e 2b 00 mov 0x2b6eb7(%rip),%edx # 6cc5a4 + 4156ed: 48 89 1d 9c 6e 2b 00 mov %rbx,0x2b6e9c(%rip) # 6cc590 + 4156f4: 89 f0 mov %esi,%eax + 4156f6: 83 c2 01 add $0x1,%edx + 4156f9: 25 00 80 00 00 and $0x8000,%eax + 4156fe: 89 15 a0 6e 2b 00 mov %edx,0x2b6ea0(%rip) # 6cc5a4 + 415704: 0f 84 3e 01 00 00 je 415848 <_IO_default_finish+0x238> + 41570a: 48 8b 3d af 49 2b 00 mov 0x2b49af(%rip),%rdi # 6ca0c0 <_IO_list_all> + 415711: 48 85 ff test %rdi,%rdi + 415714: 0f 84 f3 01 00 00 je 41590d <_IO_default_finish+0x2fd> + 41571a: 48 39 fb cmp %rdi,%rbx + 41571d: 0f 84 d3 01 00 00 je 4158f6 <_IO_default_finish+0x2e6> + 415723: 48 8b 4f 68 mov 0x68(%rdi),%rcx + 415727: 48 85 c9 test %rcx,%rcx + 41572a: 74 29 je 415755 <_IO_default_finish+0x145> + 41572c: 48 39 cb cmp %rcx,%rbx + 41572f: 75 1b jne 41574c <_IO_default_finish+0x13c> + 415731: e9 e2 01 00 00 jmpq 415918 <_IO_default_finish+0x308> + 415736: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41573d: 00 00 00 + 415740: 48 39 d3 cmp %rdx,%rbx + 415743: 0f 84 77 01 00 00 je 4158c0 <_IO_default_finish+0x2b0> + 415749: 48 89 d1 mov %rdx,%rcx + 41574c: 48 8b 51 68 mov 0x68(%rcx),%rdx + 415750: 48 85 d2 test %rdx,%rdx + 415753: 75 eb jne 415740 <_IO_default_finish+0x130> + 415755: 40 80 e6 7f and $0x7f,%sil + 415759: 85 c0 test %eax,%eax + 41575b: 89 33 mov %esi,(%rbx) + 41575d: 75 4c jne 4157ab <_IO_default_finish+0x19b> + 41575f: 48 8b b3 88 00 00 00 mov 0x88(%rbx),%rsi + 415766: 8b 46 04 mov 0x4(%rsi),%eax + 415769: 83 e8 01 sub $0x1,%eax + 41576c: 85 c0 test %eax,%eax + 41576e: 89 46 04 mov %eax,0x4(%rsi) + 415771: 8b 15 2d 6e 2b 00 mov 0x2b6e2d(%rip),%edx # 6cc5a4 + 415777: 75 38 jne 4157b1 <_IO_default_finish+0x1a1> + 415779: 48 c7 46 08 00 00 00 movq $0x0,0x8(%rsi) + 415780: 00 + 415781: 83 3d 34 7a 2b 00 00 cmpl $0x0,0x2b7a34(%rip) # 6cd1bc <__libc_multiple_threads> + 415788: 74 07 je 415791 <_IO_default_finish+0x181> + 41578a: f0 ff 0e lock decl (%rsi) + 41578d: 75 06 jne 415795 <_IO_default_finish+0x185> + 41578f: eb 1a jmp 4157ab <_IO_default_finish+0x19b> + 415791: ff 0e decl (%rsi) + 415793: 74 16 je 4157ab <_IO_default_finish+0x19b> + 415795: 48 8d 3e lea (%rsi),%rdi + 415798: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41579f: e8 5c ce 02 00 callq 442600 <__lll_unlock_wake_private> + 4157a4: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4157ab: 8b 15 f3 6d 2b 00 mov 0x2b6df3(%rip),%edx # 6cc5a4 + 4157b1: 83 ea 01 sub $0x1,%edx + 4157b4: 48 c7 05 d1 6d 2b 00 movq $0x0,0x2b6dd1(%rip) # 6cc590 + 4157bb: 00 00 00 00 + 4157bf: 85 d2 test %edx,%edx + 4157c1: 89 15 dd 6d 2b 00 mov %edx,0x2b6ddd(%rip) # 6cc5a4 + 4157c7: 75 41 jne 41580a <_IO_default_finish+0x1fa> + 4157c9: 48 c7 05 d4 6d 2b 00 movq $0x0,0x2b6dd4(%rip) # 6cc5a8 + 4157d0: 00 00 00 00 + 4157d4: 83 3d e1 79 2b 00 00 cmpl $0x0,0x2b79e1(%rip) # 6cd1bc <__libc_multiple_threads> + 4157db: 74 0b je 4157e8 <_IO_default_finish+0x1d8> + 4157dd: f0 ff 0d bc 6d 2b 00 lock decl 0x2b6dbc(%rip) # 6cc5a0 + 4157e4: 75 0a jne 4157f0 <_IO_default_finish+0x1e0> + 4157e6: eb 22 jmp 41580a <_IO_default_finish+0x1fa> + 4157e8: ff 0d b2 6d 2b 00 decl 0x2b6db2(%rip) # 6cc5a0 + 4157ee: 74 1a je 41580a <_IO_default_finish+0x1fa> + 4157f0: 48 8d 3d a9 6d 2b 00 lea 0x2b6da9(%rip),%rdi # 6cc5a0 + 4157f7: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4157fe: e8 fd cd 02 00 callq 442600 <__lll_unlock_wake_private> + 415803: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41580a: 48 85 ed test %rbp,%rbp + 41580d: 0f 84 50 fe ff ff je 415663 <_IO_default_finish+0x53> + 415813: 48 89 e7 mov %rsp,%rdi + 415816: 31 f6 xor %esi,%esi + 415818: e8 e3 a7 be ff callq 0 <_nl_current_LC_CTYPE> + 41581d: 48 83 c4 28 add $0x28,%rsp + 415821: 5b pop %rbx + 415822: 5d pop %rbp + 415823: c3 retq + 415824: 0f 1f 40 00 nopl 0x0(%rax) + 415828: e8 83 85 00 00 callq 41ddb0 <__cfree> + 41582d: 48 c7 43 40 00 00 00 movq $0x0,0x40(%rbx) + 415834: 00 + 415835: 48 c7 43 38 00 00 00 movq $0x0,0x38(%rbx) + 41583c: 00 + 41583d: e9 e9 fd ff ff jmpq 41562b <_IO_default_finish+0x1b> + 415842: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 415848: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 41584f: 64 4c 8b 04 25 10 00 mov %fs:0x10,%r8 + 415856: 00 00 + 415858: 4c 3b 42 08 cmp 0x8(%rdx),%r8 + 41585c: 74 3c je 41589a <_IO_default_finish+0x28a> + 41585e: be 01 00 00 00 mov $0x1,%esi + 415863: 83 3d 52 79 2b 00 00 cmpl $0x0,0x2b7952(%rip) # 6cd1bc <__libc_multiple_threads> + 41586a: 74 08 je 415874 <_IO_default_finish+0x264> + 41586c: f0 0f b1 32 lock cmpxchg %esi,(%rdx) + 415870: 75 07 jne 415879 <_IO_default_finish+0x269> + 415872: eb 1b jmp 41588f <_IO_default_finish+0x27f> + 415874: 0f b1 32 cmpxchg %esi,(%rdx) + 415877: 74 16 je 41588f <_IO_default_finish+0x27f> + 415879: 48 8d 3a lea (%rdx),%rdi + 41587c: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 415883: e8 48 cd 02 00 callq 4425d0 <__lll_lock_wait_private> + 415888: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41588f: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 415896: 4c 89 42 08 mov %r8,0x8(%rdx) + 41589a: 8b 33 mov (%rbx),%esi + 41589c: 48 8b 3d 1d 48 2b 00 mov 0x2b481d(%rip),%rdi # 6ca0c0 <_IO_list_all> + 4158a3: 83 42 04 01 addl $0x1,0x4(%rdx) + 4158a7: 89 f0 mov %esi,%eax + 4158a9: 25 00 80 00 00 and $0x8000,%eax + 4158ae: 48 85 ff test %rdi,%rdi + 4158b1: 0f 85 63 fe ff ff jne 41571a <_IO_default_finish+0x10a> + 4158b7: e9 99 fe ff ff jmpq 415755 <_IO_default_finish+0x145> + 4158bc: 0f 1f 40 00 nopl 0x0(%rax) + 4158c0: 48 83 c1 68 add $0x68,%rcx + 4158c4: 48 8b 53 68 mov 0x68(%rbx),%rdx + 4158c8: 83 05 c9 6c 2b 00 01 addl $0x1,0x2b6cc9(%rip) # 6cc598 <_IO_list_all_stamp> + 4158cf: 48 89 11 mov %rdx,(%rcx) + 4158d2: e9 7e fe ff ff jmpq 415755 <_IO_default_finish+0x145> + 4158d7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4158de: 00 00 + 4158e0: 48 c7 04 24 50 41 41 movq $0x414150,(%rsp) + 4158e7: 00 + 4158e8: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) + 4158ef: 00 00 + 4158f1: e9 97 fd ff ff jmpq 41568d <_IO_default_finish+0x7d> + 4158f6: 48 8b 53 68 mov 0x68(%rbx),%rdx + 4158fa: 83 05 97 6c 2b 00 01 addl $0x1,0x2b6c97(%rip) # 6cc598 <_IO_list_all_stamp> + 415901: 48 89 15 b8 47 2b 00 mov %rdx,0x2b47b8(%rip) # 6ca0c0 <_IO_list_all> + 415908: e9 48 fe ff ff jmpq 415755 <_IO_default_finish+0x145> + 41590d: 40 80 e6 7f and $0x7f,%sil + 415911: 89 33 mov %esi,(%rbx) + 415913: e9 99 fe ff ff jmpq 4157b1 <_IO_default_finish+0x1a1> + 415918: 48 8d 4f 68 lea 0x68(%rdi),%rcx + 41591c: eb a6 jmp 4158c4 <_IO_default_finish+0x2b4> + 41591e: 66 90 xchg %ax,%ax + +0000000000415920 <_IO_default_seekoff>: + 415920: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 415927: c3 retq + 415928: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41592f: 00 + +0000000000415930 <_IO_sputbackc>: + 415930: 53 push %rbx + 415931: 48 8b 57 08 mov 0x8(%rdi),%rdx + 415935: 48 89 fb mov %rdi,%rbx + 415938: 48 3b 57 18 cmp 0x18(%rdi),%rdx + 41593c: 76 0c jbe 41594a <_IO_sputbackc+0x1a> + 41593e: 0f b6 42 ff movzbl -0x1(%rdx),%eax + 415942: 40 0f b6 ce movzbl %sil,%ecx + 415946: 39 c8 cmp %ecx,%eax + 415948: 74 1e je 415968 <_IO_sputbackc+0x38> + 41594a: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 415951: 48 89 df mov %rbx,%rdi + 415954: ff 50 30 callq *0x30(%rax) + 415957: 83 f8 ff cmp $0xffffffff,%eax + 41595a: 74 03 je 41595f <_IO_sputbackc+0x2f> + 41595c: 83 23 ef andl $0xffffffef,(%rbx) + 41595f: 5b pop %rbx + 415960: c3 retq + 415961: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 415968: 48 83 ea 01 sub $0x1,%rdx + 41596c: 48 89 57 08 mov %rdx,0x8(%rdi) + 415970: eb ea jmp 41595c <_IO_sputbackc+0x2c> + 415972: 0f 1f 40 00 nopl 0x0(%rax) + 415976: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41597d: 00 00 00 + +0000000000415980 <_IO_sungetc>: + 415980: 48 8b 47 08 mov 0x8(%rdi),%rax + 415984: 48 3b 47 18 cmp 0x18(%rdi),%rax + 415988: 53 push %rbx + 415989: 48 89 fb mov %rdi,%rbx + 41598c: 76 12 jbe 4159a0 <_IO_sungetc+0x20> + 41598e: 48 8d 50 ff lea -0x1(%rax),%rdx + 415992: 48 89 57 08 mov %rdx,0x8(%rdi) + 415996: 0f b6 40 ff movzbl -0x1(%rax),%eax + 41599a: 83 23 ef andl $0xffffffef,(%rbx) + 41599d: 5b pop %rbx + 41599e: c3 retq + 41599f: 90 nop + 4159a0: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax + 4159a7: be ff ff ff ff mov $0xffffffff,%esi + 4159ac: ff 50 30 callq *0x30(%rax) + 4159af: 83 f8 ff cmp $0xffffffff,%eax + 4159b2: 75 e6 jne 41599a <_IO_sungetc+0x1a> + 4159b4: 5b pop %rbx + 4159b5: c3 retq + 4159b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4159bd: 00 00 00 + +00000000004159c0 <_IO_adjust_column>: + 4159c0: 4c 63 c2 movslq %edx,%r8 + 4159c3: 49 01 f0 add %rsi,%r8 + 4159c6: 4c 39 c6 cmp %r8,%rsi + 4159c9: 73 23 jae 4159ee <_IO_adjust_column+0x2e> + 4159cb: 41 80 78 ff 0a cmpb $0xa,-0x1(%r8) + 4159d0: 49 8d 48 ff lea -0x1(%r8),%rcx + 4159d4: 75 13 jne 4159e9 <_IO_adjust_column+0x29> + 4159d6: eb 20 jmp 4159f8 <_IO_adjust_column+0x38> + 4159d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4159df: 00 + 4159e0: 48 83 e9 01 sub $0x1,%rcx + 4159e4: 80 39 0a cmpb $0xa,(%rcx) + 4159e7: 74 0f je 4159f8 <_IO_adjust_column+0x38> + 4159e9: 48 39 ce cmp %rcx,%rsi + 4159ec: 75 f2 jne 4159e0 <_IO_adjust_column+0x20> + 4159ee: 8d 04 3a lea (%rdx,%rdi,1),%eax + 4159f1: c3 retq + 4159f2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4159f8: 49 29 c8 sub %rcx,%r8 + 4159fb: 41 8d 40 ff lea -0x1(%r8),%eax + 4159ff: c3 retq + +0000000000415a00 <_IO_flush_all_lockp>: + 415a00: 41 57 push %r15 + 415a02: 41 56 push %r14 + 415a04: 41 89 fe mov %edi,%r14d + 415a07: 41 55 push %r13 + 415a09: 41 54 push %r12 + 415a0b: 55 push %rbp + 415a0c: 53 push %rbx + 415a0d: 48 83 ec 28 sub $0x28,%rsp + 415a11: 85 ff test %edi,%edi + 415a13: 0f 84 17 02 00 00 je 415c30 <_IO_flush_all_lockp+0x230> + 415a19: b8 00 00 00 00 mov $0x0,%eax + 415a1e: 45 31 ed xor %r13d,%r13d + 415a21: 48 85 c0 test %rax,%rax + 415a24: 41 0f 95 c5 setne %r13b + 415a28: 0f 84 82 02 00 00 je 415cb0 <_IO_flush_all_lockp+0x2b0> + 415a2e: 31 d2 xor %edx,%edx + 415a30: be 50 41 41 00 mov $0x414150,%esi + 415a35: 48 89 e7 mov %rsp,%rdi + 415a38: e8 c3 a5 be ff callq 0 <_nl_current_LC_CTYPE> + 415a3d: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx + 415a44: 00 00 + 415a46: 48 3b 15 5b 6b 2b 00 cmp 0x2b6b5b(%rip),%rdx # 6cc5a8 + 415a4d: 74 46 je 415a95 <_IO_flush_all_lockp+0x95> + 415a4f: be 01 00 00 00 mov $0x1,%esi + 415a54: 31 c0 xor %eax,%eax + 415a56: 83 3d 5f 77 2b 00 00 cmpl $0x0,0x2b775f(%rip) # 6cd1bc <__libc_multiple_threads> + 415a5d: 74 0c je 415a6b <_IO_flush_all_lockp+0x6b> + 415a5f: f0 0f b1 35 39 6b 2b lock cmpxchg %esi,0x2b6b39(%rip) # 6cc5a0 + 415a66: 00 + 415a67: 75 0b jne 415a74 <_IO_flush_all_lockp+0x74> + 415a69: eb 23 jmp 415a8e <_IO_flush_all_lockp+0x8e> + 415a6b: 0f b1 35 2e 6b 2b 00 cmpxchg %esi,0x2b6b2e(%rip) # 6cc5a0 + 415a72: 74 1a je 415a8e <_IO_flush_all_lockp+0x8e> + 415a74: 48 8d 3d 25 6b 2b 00 lea 0x2b6b25(%rip),%rdi # 6cc5a0 + 415a7b: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 415a82: e8 49 cb 02 00 callq 4425d0 <__lll_lock_wait_private> + 415a87: 48 81 c4 80 00 00 00 add $0x80,%rsp + 415a8e: 48 89 15 13 6b 2b 00 mov %rdx,0x2b6b13(%rip) # 6cc5a8 + 415a95: 8b 05 09 6b 2b 00 mov 0x2b6b09(%rip),%eax # 6cc5a4 + 415a9b: 48 8b 1d 1e 46 2b 00 mov 0x2b461e(%rip),%rbx # 6ca0c0 <_IO_list_all> + 415aa2: 44 8b 3d ef 6a 2b 00 mov 0x2b6aef(%rip),%r15d # 6cc598 <_IO_list_all_stamp> + 415aa9: 83 c0 01 add $0x1,%eax + 415aac: 48 85 db test %rbx,%rbx + 415aaf: 89 05 ef 6a 2b 00 mov %eax,0x2b6aef(%rip) # 6cc5a4 + 415ab5: 0f 84 0b 02 00 00 je 415cc6 <_IO_flush_all_lockp+0x2c6> + 415abb: 31 ed xor %ebp,%ebp + 415abd: 64 4c 8b 24 25 10 00 mov %fs:0x10,%r12 + 415ac4: 00 00 + 415ac6: eb 1b jmp 415ae3 <_IO_flush_all_lockp+0xe3> + 415ac8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 415acf: 00 + 415ad0: 48 8b 1d e9 45 2b 00 mov 0x2b45e9(%rip),%rbx # 6ca0c0 <_IO_list_all> + 415ad7: 41 89 c7 mov %eax,%r15d + 415ada: 48 85 db test %rbx,%rbx + 415add: 0f 84 14 01 00 00 je 415bf7 <_IO_flush_all_lockp+0x1f7> + 415ae3: 45 85 f6 test %r14d,%r14d + 415ae6: 48 89 1d a3 6a 2b 00 mov %rbx,0x2b6aa3(%rip) # 6cc590 + 415aed: 74 56 je 415b45 <_IO_flush_all_lockp+0x145> + 415aef: 8b 03 mov (%rbx),%eax + 415af1: 25 00 80 00 00 and $0x8000,%eax + 415af6: 75 4d jne 415b45 <_IO_flush_all_lockp+0x145> + 415af8: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 415aff: 4c 3b 62 08 cmp 0x8(%rdx),%r12 + 415b03: 74 3c je 415b41 <_IO_flush_all_lockp+0x141> + 415b05: be 01 00 00 00 mov $0x1,%esi + 415b0a: 83 3d ab 76 2b 00 00 cmpl $0x0,0x2b76ab(%rip) # 6cd1bc <__libc_multiple_threads> + 415b11: 74 08 je 415b1b <_IO_flush_all_lockp+0x11b> + 415b13: f0 0f b1 32 lock cmpxchg %esi,(%rdx) + 415b17: 75 07 jne 415b20 <_IO_flush_all_lockp+0x120> + 415b19: eb 1b jmp 415b36 <_IO_flush_all_lockp+0x136> + 415b1b: 0f b1 32 cmpxchg %esi,(%rdx) + 415b1e: 74 16 je 415b36 <_IO_flush_all_lockp+0x136> + 415b20: 48 8d 3a lea (%rdx),%rdi + 415b23: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 415b2a: e8 a1 ca 02 00 callq 4425d0 <__lll_lock_wait_private> + 415b2f: 48 81 c4 80 00 00 00 add $0x80,%rsp + 415b36: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 415b3d: 4c 89 62 08 mov %r12,0x8(%rdx) + 415b41: 83 42 04 01 addl $0x1,0x4(%rdx) + 415b45: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax + 415b4b: 85 c0 test %eax,%eax + 415b4d: 0f 8e fd 00 00 00 jle 415c50 <_IO_flush_all_lockp+0x250> + 415b53: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 415b5a: 48 8b 48 18 mov 0x18(%rax),%rcx + 415b5e: 48 39 48 20 cmp %rcx,0x20(%rax) + 415b62: 76 1d jbe 415b81 <_IO_flush_all_lockp+0x181> + 415b64: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 415b6b: be ff ff ff ff mov $0xffffffff,%esi + 415b70: 48 89 df mov %rbx,%rdi + 415b73: ff 50 18 callq *0x18(%rax) + 415b76: 83 f8 ff cmp $0xffffffff,%eax + 415b79: b8 ff ff ff ff mov $0xffffffff,%eax + 415b7e: 0f 44 e8 cmove %eax,%ebp + 415b81: 45 85 f6 test %r14d,%r14d + 415b84: 74 4a je 415bd0 <_IO_flush_all_lockp+0x1d0> + 415b86: f7 03 00 80 00 00 testl $0x8000,(%rbx) + 415b8c: 75 42 jne 415bd0 <_IO_flush_all_lockp+0x1d0> + 415b8e: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 415b95: 83 6a 04 01 subl $0x1,0x4(%rdx) + 415b99: 75 35 jne 415bd0 <_IO_flush_all_lockp+0x1d0> + 415b9b: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) + 415ba2: 00 + 415ba3: 83 3d 12 76 2b 00 00 cmpl $0x0,0x2b7612(%rip) # 6cd1bc <__libc_multiple_threads> + 415baa: 74 07 je 415bb3 <_IO_flush_all_lockp+0x1b3> + 415bac: f0 ff 0a lock decl (%rdx) + 415baf: 75 06 jne 415bb7 <_IO_flush_all_lockp+0x1b7> + 415bb1: eb 1a jmp 415bcd <_IO_flush_all_lockp+0x1cd> + 415bb3: ff 0a decl (%rdx) + 415bb5: 74 16 je 415bcd <_IO_flush_all_lockp+0x1cd> + 415bb7: 48 8d 3a lea (%rdx),%rdi + 415bba: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 415bc1: e8 3a ca 02 00 callq 442600 <__lll_unlock_wake_private> + 415bc6: 48 81 c4 80 00 00 00 add $0x80,%rsp + 415bcd: 0f 1f 00 nopl (%rax) + 415bd0: 8b 05 c2 69 2b 00 mov 0x2b69c2(%rip),%eax # 6cc598 <_IO_list_all_stamp> + 415bd6: 48 c7 05 af 69 2b 00 movq $0x0,0x2b69af(%rip) # 6cc590 + 415bdd: 00 00 00 00 + 415be1: 41 39 c7 cmp %eax,%r15d + 415be4: 0f 85 e6 fe ff ff jne 415ad0 <_IO_flush_all_lockp+0xd0> + 415bea: 48 8b 5b 68 mov 0x68(%rbx),%rbx + 415bee: 48 85 db test %rbx,%rbx + 415bf1: 0f 85 ec fe ff ff jne 415ae3 <_IO_flush_all_lockp+0xe3> + 415bf7: 45 85 f6 test %r14d,%r14d + 415bfa: 8b 05 a4 69 2b 00 mov 0x2b69a4(%rip),%eax # 6cc5a4 + 415c00: 74 0d je 415c0f <_IO_flush_all_lockp+0x20f> + 415c02: 83 e8 01 sub $0x1,%eax + 415c05: 85 c0 test %eax,%eax + 415c07: 89 05 97 69 2b 00 mov %eax,0x2b6997(%rip) # 6cc5a4 + 415c0d: 74 59 je 415c68 <_IO_flush_all_lockp+0x268> + 415c0f: 45 85 ed test %r13d,%r13d + 415c12: 74 0a je 415c1e <_IO_flush_all_lockp+0x21e> + 415c14: 31 f6 xor %esi,%esi + 415c16: 48 89 e7 mov %rsp,%rdi + 415c19: e8 e2 a3 be ff callq 0 <_nl_current_LC_CTYPE> + 415c1e: 48 83 c4 28 add $0x28,%rsp + 415c22: 89 e8 mov %ebp,%eax + 415c24: 5b pop %rbx + 415c25: 5d pop %rbp + 415c26: 41 5c pop %r12 + 415c28: 41 5d pop %r13 + 415c2a: 41 5e pop %r14 + 415c2c: 41 5f pop %r15 + 415c2e: c3 retq + 415c2f: 90 nop + 415c30: 48 8b 1d 89 44 2b 00 mov 0x2b4489(%rip),%rbx # 6ca0c0 <_IO_list_all> + 415c37: 45 31 ed xor %r13d,%r13d + 415c3a: 44 8b 3d 57 69 2b 00 mov 0x2b6957(%rip),%r15d # 6cc598 <_IO_list_all_stamp> + 415c41: 48 85 db test %rbx,%rbx + 415c44: 0f 85 71 fe ff ff jne 415abb <_IO_flush_all_lockp+0xbb> + 415c4a: 31 ed xor %ebp,%ebp + 415c4c: eb d0 jmp 415c1e <_IO_flush_all_lockp+0x21e> + 415c4e: 66 90 xchg %ax,%ax + 415c50: 48 8b 43 20 mov 0x20(%rbx),%rax + 415c54: 48 39 43 28 cmp %rax,0x28(%rbx) + 415c58: 0f 87 06 ff ff ff ja 415b64 <_IO_flush_all_lockp+0x164> + 415c5e: e9 1e ff ff ff jmpq 415b81 <_IO_flush_all_lockp+0x181> + 415c63: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 415c68: 48 c7 05 35 69 2b 00 movq $0x0,0x2b6935(%rip) # 6cc5a8 + 415c6f: 00 00 00 00 + 415c73: 83 3d 42 75 2b 00 00 cmpl $0x0,0x2b7542(%rip) # 6cd1bc <__libc_multiple_threads> + 415c7a: 74 0b je 415c87 <_IO_flush_all_lockp+0x287> + 415c7c: f0 ff 0d 1d 69 2b 00 lock decl 0x2b691d(%rip) # 6cc5a0 + 415c83: 75 0a jne 415c8f <_IO_flush_all_lockp+0x28f> + 415c85: eb 22 jmp 415ca9 <_IO_flush_all_lockp+0x2a9> + 415c87: ff 0d 13 69 2b 00 decl 0x2b6913(%rip) # 6cc5a0 + 415c8d: 74 1a je 415ca9 <_IO_flush_all_lockp+0x2a9> + 415c8f: 48 8d 3d 0a 69 2b 00 lea 0x2b690a(%rip),%rdi # 6cc5a0 + 415c96: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 415c9d: e8 5e c9 02 00 callq 442600 <__lll_unlock_wake_private> + 415ca2: 48 81 c4 80 00 00 00 add $0x80,%rsp + 415ca9: e9 61 ff ff ff jmpq 415c0f <_IO_flush_all_lockp+0x20f> + 415cae: 66 90 xchg %ax,%ax + 415cb0: 48 c7 04 24 50 41 41 movq $0x414150,(%rsp) + 415cb7: 00 + 415cb8: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) + 415cbf: 00 00 + 415cc1: e9 77 fd ff ff jmpq 415a3d <_IO_flush_all_lockp+0x3d> + 415cc6: 31 ed xor %ebp,%ebp + 415cc8: e9 35 ff ff ff jmpq 415c02 <_IO_flush_all_lockp+0x202> + 415ccd: 0f 1f 00 nopl (%rax) + +0000000000415cd0 <_IO_flush_all>: + 415cd0: 41 56 push %r14 + 415cd2: 41 55 push %r13 + 415cd4: 41 54 push %r12 + 415cd6: 55 push %rbp + 415cd7: 41 bc 00 00 00 00 mov $0x0,%r12d + 415cdd: 53 push %rbx + 415cde: 48 83 ec 20 sub $0x20,%rsp + 415ce2: 4d 85 e4 test %r12,%r12 + 415ce5: 0f 84 45 02 00 00 je 415f30 <_IO_flush_all+0x260> + 415ceb: 31 d2 xor %edx,%edx + 415ced: be 50 41 41 00 mov $0x414150,%esi + 415cf2: 48 89 e7 mov %rsp,%rdi + 415cf5: e8 06 a3 be ff callq 0 <_nl_current_LC_CTYPE> + 415cfa: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx + 415d01: 00 00 + 415d03: 48 3b 15 9e 68 2b 00 cmp 0x2b689e(%rip),%rdx # 6cc5a8 + 415d0a: 74 46 je 415d52 <_IO_flush_all+0x82> + 415d0c: be 01 00 00 00 mov $0x1,%esi + 415d11: 31 c0 xor %eax,%eax + 415d13: 83 3d a2 74 2b 00 00 cmpl $0x0,0x2b74a2(%rip) # 6cd1bc <__libc_multiple_threads> + 415d1a: 74 0c je 415d28 <_IO_flush_all+0x58> + 415d1c: f0 0f b1 35 7c 68 2b lock cmpxchg %esi,0x2b687c(%rip) # 6cc5a0 + 415d23: 00 + 415d24: 75 0b jne 415d31 <_IO_flush_all+0x61> + 415d26: eb 23 jmp 415d4b <_IO_flush_all+0x7b> + 415d28: 0f b1 35 71 68 2b 00 cmpxchg %esi,0x2b6871(%rip) # 6cc5a0 + 415d2f: 74 1a je 415d4b <_IO_flush_all+0x7b> + 415d31: 48 8d 3d 68 68 2b 00 lea 0x2b6868(%rip),%rdi # 6cc5a0 + 415d38: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 415d3f: e8 8c c8 02 00 callq 4425d0 <__lll_lock_wait_private> + 415d44: 48 81 c4 80 00 00 00 add $0x80,%rsp + 415d4b: 48 89 15 56 68 2b 00 mov %rdx,0x2b6856(%rip) # 6cc5a8 + 415d52: 8b 05 4c 68 2b 00 mov 0x2b684c(%rip),%eax # 6cc5a4 + 415d58: 48 8b 1d 61 43 2b 00 mov 0x2b4361(%rip),%rbx # 6ca0c0 <_IO_list_all> + 415d5f: 31 ed xor %ebp,%ebp + 415d61: 44 8b 2d 30 68 2b 00 mov 0x2b6830(%rip),%r13d # 6cc598 <_IO_list_all_stamp> + 415d68: 83 c0 01 add $0x1,%eax + 415d6b: 48 85 db test %rbx,%rbx + 415d6e: 89 05 30 68 2b 00 mov %eax,0x2b6830(%rip) # 6cc5a4 + 415d74: 0f 84 2e 01 00 00 je 415ea8 <_IO_flush_all+0x1d8> + 415d7a: 64 4c 8b 34 25 10 00 mov %fs:0x10,%r14 + 415d81: 00 00 + 415d83: eb 16 jmp 415d9b <_IO_flush_all+0xcb> + 415d85: 0f 1f 00 nopl (%rax) + 415d88: 48 8b 1d 31 43 2b 00 mov 0x2b4331(%rip),%rbx # 6ca0c0 <_IO_list_all> + 415d8f: 48 85 db test %rbx,%rbx + 415d92: 0f 84 0a 01 00 00 je 415ea2 <_IO_flush_all+0x1d2> + 415d98: 41 89 c5 mov %eax,%r13d + 415d9b: 8b 03 mov (%rbx),%eax + 415d9d: 48 89 1d ec 67 2b 00 mov %rbx,0x2b67ec(%rip) # 6cc590 + 415da4: 25 00 80 00 00 and $0x8000,%eax + 415da9: 75 4d jne 415df8 <_IO_flush_all+0x128> + 415dab: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 415db2: 4c 3b 72 08 cmp 0x8(%rdx),%r14 + 415db6: 74 3c je 415df4 <_IO_flush_all+0x124> + 415db8: be 01 00 00 00 mov $0x1,%esi + 415dbd: 83 3d f8 73 2b 00 00 cmpl $0x0,0x2b73f8(%rip) # 6cd1bc <__libc_multiple_threads> + 415dc4: 74 08 je 415dce <_IO_flush_all+0xfe> + 415dc6: f0 0f b1 32 lock cmpxchg %esi,(%rdx) + 415dca: 75 07 jne 415dd3 <_IO_flush_all+0x103> + 415dcc: eb 1b jmp 415de9 <_IO_flush_all+0x119> + 415dce: 0f b1 32 cmpxchg %esi,(%rdx) + 415dd1: 74 16 je 415de9 <_IO_flush_all+0x119> + 415dd3: 48 8d 3a lea (%rdx),%rdi + 415dd6: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 415ddd: e8 ee c7 02 00 callq 4425d0 <__lll_lock_wait_private> + 415de2: 48 81 c4 80 00 00 00 add $0x80,%rsp + 415de9: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 415df0: 4c 89 72 08 mov %r14,0x8(%rdx) + 415df4: 83 42 04 01 addl $0x1,0x4(%rdx) + 415df8: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax + 415dfe: 85 c0 test %eax,%eax + 415e00: 0f 8e 12 01 00 00 jle 415f18 <_IO_flush_all+0x248> + 415e06: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax + 415e0d: 48 8b 48 18 mov 0x18(%rax),%rcx + 415e11: 48 39 48 20 cmp %rcx,0x20(%rax) + 415e15: 76 1d jbe 415e34 <_IO_flush_all+0x164> + 415e17: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 415e1e: be ff ff ff ff mov $0xffffffff,%esi + 415e23: 48 89 df mov %rbx,%rdi + 415e26: ff 50 18 callq *0x18(%rax) + 415e29: 83 f8 ff cmp $0xffffffff,%eax + 415e2c: b8 ff ff ff ff mov $0xffffffff,%eax + 415e31: 0f 44 e8 cmove %eax,%ebp + 415e34: f7 03 00 80 00 00 testl $0x8000,(%rbx) + 415e3a: 75 3f jne 415e7b <_IO_flush_all+0x1ab> + 415e3c: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 415e43: 83 6a 04 01 subl $0x1,0x4(%rdx) + 415e47: 75 32 jne 415e7b <_IO_flush_all+0x1ab> + 415e49: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) + 415e50: 00 + 415e51: 83 3d 64 73 2b 00 00 cmpl $0x0,0x2b7364(%rip) # 6cd1bc <__libc_multiple_threads> + 415e58: 74 07 je 415e61 <_IO_flush_all+0x191> + 415e5a: f0 ff 0a lock decl (%rdx) + 415e5d: 75 06 jne 415e65 <_IO_flush_all+0x195> + 415e5f: eb 1a jmp 415e7b <_IO_flush_all+0x1ab> + 415e61: ff 0a decl (%rdx) + 415e63: 74 16 je 415e7b <_IO_flush_all+0x1ab> + 415e65: 48 8d 3a lea (%rdx),%rdi + 415e68: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 415e6f: e8 8c c7 02 00 callq 442600 <__lll_unlock_wake_private> + 415e74: 48 81 c4 80 00 00 00 add $0x80,%rsp + 415e7b: 8b 05 17 67 2b 00 mov 0x2b6717(%rip),%eax # 6cc598 <_IO_list_all_stamp> + 415e81: 48 c7 05 04 67 2b 00 movq $0x0,0x2b6704(%rip) # 6cc590 + 415e88: 00 00 00 00 + 415e8c: 44 39 e8 cmp %r13d,%eax + 415e8f: 0f 85 f3 fe ff ff jne 415d88 <_IO_flush_all+0xb8> + 415e95: 48 8b 5b 68 mov 0x68(%rbx),%rbx + 415e99: 48 85 db test %rbx,%rbx + 415e9c: 0f 85 f6 fe ff ff jne 415d98 <_IO_flush_all+0xc8> + 415ea2: 8b 05 fc 66 2b 00 mov 0x2b66fc(%rip),%eax # 6cc5a4 + 415ea8: 83 e8 01 sub $0x1,%eax + 415eab: 85 c0 test %eax,%eax + 415ead: 89 05 f1 66 2b 00 mov %eax,0x2b66f1(%rip) # 6cc5a4 + 415eb3: 75 41 jne 415ef6 <_IO_flush_all+0x226> + 415eb5: 48 c7 05 e8 66 2b 00 movq $0x0,0x2b66e8(%rip) # 6cc5a8 + 415ebc: 00 00 00 00 + 415ec0: 83 3d f5 72 2b 00 00 cmpl $0x0,0x2b72f5(%rip) # 6cd1bc <__libc_multiple_threads> + 415ec7: 74 0b je 415ed4 <_IO_flush_all+0x204> + 415ec9: f0 ff 0d d0 66 2b 00 lock decl 0x2b66d0(%rip) # 6cc5a0 + 415ed0: 75 0a jne 415edc <_IO_flush_all+0x20c> + 415ed2: eb 22 jmp 415ef6 <_IO_flush_all+0x226> + 415ed4: ff 0d c6 66 2b 00 decl 0x2b66c6(%rip) # 6cc5a0 + 415eda: 74 1a je 415ef6 <_IO_flush_all+0x226> + 415edc: 48 8d 3d bd 66 2b 00 lea 0x2b66bd(%rip),%rdi # 6cc5a0 + 415ee3: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 415eea: e8 11 c7 02 00 callq 442600 <__lll_unlock_wake_private> + 415eef: 48 81 c4 80 00 00 00 add $0x80,%rsp + 415ef6: 4d 85 e4 test %r12,%r12 + 415ef9: 74 0a je 415f05 <_IO_flush_all+0x235> + 415efb: 31 f6 xor %esi,%esi + 415efd: 48 89 e7 mov %rsp,%rdi + 415f00: e8 fb a0 be ff callq 0 <_nl_current_LC_CTYPE> + 415f05: 48 83 c4 20 add $0x20,%rsp + 415f09: 89 e8 mov %ebp,%eax + 415f0b: 5b pop %rbx + 415f0c: 5d pop %rbp + 415f0d: 41 5c pop %r12 + 415f0f: 41 5d pop %r13 + 415f11: 41 5e pop %r14 + 415f13: c3 retq + 415f14: 0f 1f 40 00 nopl 0x0(%rax) + 415f18: 48 8b 43 20 mov 0x20(%rbx),%rax + 415f1c: 48 39 43 28 cmp %rax,0x28(%rbx) + 415f20: 0f 87 f1 fe ff ff ja 415e17 <_IO_flush_all+0x147> + 415f26: e9 09 ff ff ff jmpq 415e34 <_IO_flush_all+0x164> + 415f2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 415f30: 48 c7 04 24 50 41 41 movq $0x414150,(%rsp) + 415f37: 00 + 415f38: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) + 415f3f: 00 00 + 415f41: e9 b4 fd ff ff jmpq 415cfa <_IO_flush_all+0x2a> + 415f46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 415f4d: 00 00 00 + +0000000000415f50 <_IO_flush_all_linebuffered>: + 415f50: 41 55 push %r13 + 415f52: 41 54 push %r12 + 415f54: 55 push %rbp + 415f55: 53 push %rbx + 415f56: bd 00 00 00 00 mov $0x0,%ebp + 415f5b: 48 83 ec 28 sub $0x28,%rsp + 415f5f: 48 85 ed test %rbp,%rbp + 415f62: 0f 84 38 02 00 00 je 4161a0 <_IO_flush_all_linebuffered+0x250> + 415f68: 31 d2 xor %edx,%edx + 415f6a: be 50 41 41 00 mov $0x414150,%esi + 415f6f: 48 89 e7 mov %rsp,%rdi + 415f72: e8 89 a0 be ff callq 0 <_nl_current_LC_CTYPE> + 415f77: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx + 415f7e: 00 00 + 415f80: 48 3b 15 21 66 2b 00 cmp 0x2b6621(%rip),%rdx # 6cc5a8 + 415f87: 74 46 je 415fcf <_IO_flush_all_linebuffered+0x7f> + 415f89: be 01 00 00 00 mov $0x1,%esi + 415f8e: 31 c0 xor %eax,%eax + 415f90: 83 3d 25 72 2b 00 00 cmpl $0x0,0x2b7225(%rip) # 6cd1bc <__libc_multiple_threads> + 415f97: 74 0c je 415fa5 <_IO_flush_all_linebuffered+0x55> + 415f99: f0 0f b1 35 ff 65 2b lock cmpxchg %esi,0x2b65ff(%rip) # 6cc5a0 + 415fa0: 00 + 415fa1: 75 0b jne 415fae <_IO_flush_all_linebuffered+0x5e> + 415fa3: eb 23 jmp 415fc8 <_IO_flush_all_linebuffered+0x78> + 415fa5: 0f b1 35 f4 65 2b 00 cmpxchg %esi,0x2b65f4(%rip) # 6cc5a0 + 415fac: 74 1a je 415fc8 <_IO_flush_all_linebuffered+0x78> + 415fae: 48 8d 3d eb 65 2b 00 lea 0x2b65eb(%rip),%rdi # 6cc5a0 + 415fb5: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 415fbc: e8 0f c6 02 00 callq 4425d0 <__lll_lock_wait_private> + 415fc1: 48 81 c4 80 00 00 00 add $0x80,%rsp + 415fc8: 48 89 15 d9 65 2b 00 mov %rdx,0x2b65d9(%rip) # 6cc5a8 + 415fcf: 8b 05 cf 65 2b 00 mov 0x2b65cf(%rip),%eax # 6cc5a4 + 415fd5: 48 8b 1d e4 40 2b 00 mov 0x2b40e4(%rip),%rbx # 6ca0c0 <_IO_list_all> + 415fdc: 44 8b 25 b5 65 2b 00 mov 0x2b65b5(%rip),%r12d # 6cc598 <_IO_list_all_stamp> + 415fe3: 83 c0 01 add $0x1,%eax + 415fe6: 48 85 db test %rbx,%rbx + 415fe9: 89 05 b5 65 2b 00 mov %eax,0x2b65b5(%rip) # 6cc5a4 + 415fef: 0f 84 3a 01 00 00 je 41612f <_IO_flush_all_linebuffered+0x1df> + 415ff5: 44 89 e0 mov %r12d,%eax + 415ff8: 64 4c 8b 2c 25 10 00 mov %fs:0x10,%r13 + 415fff: 00 00 + 416001: e9 d7 00 00 00 jmpq 4160dd <_IO_flush_all_linebuffered+0x18d> + 416006: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41600d: 00 00 00 + 416010: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 416017: 4c 3b 6a 08 cmp 0x8(%rdx),%r13 + 41601b: 74 3e je 41605b <_IO_flush_all_linebuffered+0x10b> + 41601d: be 01 00 00 00 mov $0x1,%esi + 416022: 89 c8 mov %ecx,%eax + 416024: 83 3d 91 71 2b 00 00 cmpl $0x0,0x2b7191(%rip) # 6cd1bc <__libc_multiple_threads> + 41602b: 74 08 je 416035 <_IO_flush_all_linebuffered+0xe5> + 41602d: f0 0f b1 32 lock cmpxchg %esi,(%rdx) + 416031: 75 07 jne 41603a <_IO_flush_all_linebuffered+0xea> + 416033: eb 1b jmp 416050 <_IO_flush_all_linebuffered+0x100> + 416035: 0f b1 32 cmpxchg %esi,(%rdx) + 416038: 74 16 je 416050 <_IO_flush_all_linebuffered+0x100> + 41603a: 48 8d 3a lea (%rdx),%rdi + 41603d: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 416044: e8 87 c5 02 00 callq 4425d0 <__lll_lock_wait_private> + 416049: 48 81 c4 80 00 00 00 add $0x80,%rsp + 416050: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 416057: 4c 89 6a 08 mov %r13,0x8(%rdx) + 41605b: 83 42 04 01 addl $0x1,0x4(%rdx) + 41605f: 8b 03 mov (%rbx),%eax + 416061: 25 08 02 00 00 and $0x208,%eax + 416066: 3d 00 02 00 00 cmp $0x200,%eax + 41606b: 0f 84 91 00 00 00 je 416102 <_IO_flush_all_linebuffered+0x1b2> + 416071: f7 03 00 80 00 00 testl $0x8000,(%rbx) + 416077: 75 3f jne 4160b8 <_IO_flush_all_linebuffered+0x168> + 416079: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx + 416080: 83 6a 04 01 subl $0x1,0x4(%rdx) + 416084: 75 32 jne 4160b8 <_IO_flush_all_linebuffered+0x168> + 416086: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) + 41608d: 00 + 41608e: 83 3d 27 71 2b 00 00 cmpl $0x0,0x2b7127(%rip) # 6cd1bc <__libc_multiple_threads> + 416095: 74 07 je 41609e <_IO_flush_all_linebuffered+0x14e> + 416097: f0 ff 0a lock decl (%rdx) + 41609a: 75 06 jne 4160a2 <_IO_flush_all_linebuffered+0x152> + 41609c: eb 1a jmp 4160b8 <_IO_flush_all_linebuffered+0x168> + 41609e: ff 0a decl (%rdx) + 4160a0: 74 16 je 4160b8 <_IO_flush_all_linebuffered+0x168> + 4160a2: 48 8d 3a lea (%rdx),%rdi + 4160a5: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4160ac: e8 4f c5 02 00 callq 442600 <__lll_unlock_wake_private> + 4160b1: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4160b8: 8b 05 da 64 2b 00 mov 0x2b64da(%rip),%eax # 6cc598 <_IO_list_all_stamp> + 4160be: 41 39 c4 cmp %eax,%r12d + 4160c1: 48 c7 05 c4 64 2b 00 movq $0x0,0x2b64c4(%rip) # 6cc590 + 4160c8: 00 00 00 00 + 4160cc: 74 52 je 416120 <_IO_flush_all_linebuffered+0x1d0> + 4160ce: 48 8b 1d eb 3f 2b 00 mov 0x2b3feb(%rip),%rbx # 6ca0c0 <_IO_list_all> + 4160d5: 41 89 c4 mov %eax,%r12d + 4160d8: 48 85 db test %rbx,%rbx + 4160db: 74 4c je 416129 <_IO_flush_all_linebuffered+0x1d9> + 4160dd: 8b 13 mov (%rbx),%edx + 4160df: 48 89 1d aa 64 2b 00 mov %rbx,0x2b64aa(%rip) # 6cc590 + 4160e6: 89 d1 mov %edx,%ecx + 4160e8: 81 e1 00 80 00 00 and $0x8000,%ecx + 4160ee: 0f 84 1c ff ff ff je 416010 <_IO_flush_all_linebuffered+0xc0> + 4160f4: 81 e2 08 02 00 00 and $0x208,%edx + 4160fa: 81 fa 00 02 00 00 cmp $0x200,%edx + 416100: 75 bc jne 4160be <_IO_flush_all_linebuffered+0x16e> + 416102: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax + 416109: be ff ff ff ff mov $0xffffffff,%esi + 41610e: 48 89 df mov %rbx,%rdi + 416111: ff 50 18 callq *0x18(%rax) + 416114: e9 58 ff ff ff jmpq 416071 <_IO_flush_all_linebuffered+0x121> + 416119: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 416120: 48 8b 5b 68 mov 0x68(%rbx),%rbx + 416124: 48 85 db test %rbx,%rbx + 416127: 75 b4 jne 4160dd <_IO_flush_all_linebuffered+0x18d> + 416129: 8b 05 75 64 2b 00 mov 0x2b6475(%rip),%eax # 6cc5a4 + 41612f: 83 e8 01 sub $0x1,%eax + 416132: 85 c0 test %eax,%eax + 416134: 89 05 6a 64 2b 00 mov %eax,0x2b646a(%rip) # 6cc5a4 + 41613a: 75 41 jne 41617d <_IO_flush_all_linebuffered+0x22d> + 41613c: 48 c7 05 61 64 2b 00 movq $0x0,0x2b6461(%rip) # 6cc5a8 + 416143: 00 00 00 00 + 416147: 83 3d 6e 70 2b 00 00 cmpl $0x0,0x2b706e(%rip) # 6cd1bc <__libc_multiple_threads> + 41614e: 74 0b je 41615b <_IO_flush_all_linebuffered+0x20b> + 416150: f0 ff 0d 49 64 2b 00 lock decl 0x2b6449(%rip) # 6cc5a0 + 416157: 75 0a jne 416163 <_IO_flush_all_linebuffered+0x213> + 416159: eb 22 jmp 41617d <_IO_flush_all_linebuffered+0x22d> + 41615b: ff 0d 3f 64 2b 00 decl 0x2b643f(%rip) # 6cc5a0 + 416161: 74 1a je 41617d <_IO_flush_all_linebuffered+0x22d> + 416163: 48 8d 3d 36 64 2b 00 lea 0x2b6436(%rip),%rdi # 6cc5a0 + 41616a: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 416171: e8 8a c4 02 00 callq 442600 <__lll_unlock_wake_private> + 416176: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41617d: 48 85 ed test %rbp,%rbp + 416180: 74 0a je 41618c <_IO_flush_all_linebuffered+0x23c> + 416182: 31 f6 xor %esi,%esi + 416184: 48 89 e7 mov %rsp,%rdi + 416187: e8 74 9e be ff callq 0 <_nl_current_LC_CTYPE> + 41618c: 48 83 c4 28 add $0x28,%rsp + 416190: 5b pop %rbx + 416191: 5d pop %rbp + 416192: 41 5c pop %r12 + 416194: 41 5d pop %r13 + 416196: c3 retq + 416197: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 41619e: 00 00 + 4161a0: 48 c7 04 24 50 41 41 movq $0x414150,(%rsp) + 4161a7: 00 + 4161a8: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) + 4161af: 00 00 + 4161b1: e9 c1 fd ff ff jmpq 415f77 <_IO_flush_all_linebuffered+0x27> + 4161b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4161bd: 00 00 00 + +00000000004161c0 <_IO_init_marker>: + 4161c0: 55 push %rbp + 4161c1: 53 push %rbx + 4161c2: 48 89 fd mov %rdi,%rbp + 4161c5: 48 89 f3 mov %rsi,%rbx + 4161c8: 48 83 ec 08 sub $0x8,%rsp + 4161cc: 8b 06 mov (%rsi),%eax + 4161ce: 48 89 77 08 mov %rsi,0x8(%rdi) + 4161d2: f6 c4 08 test $0x8,%ah + 4161d5: 75 31 jne 416208 <_IO_init_marker+0x48> + 4161d7: 48 8b 53 08 mov 0x8(%rbx),%rdx + 4161db: f6 c4 01 test $0x1,%ah + 4161de: 89 d0 mov %edx,%eax + 4161e0: 75 1e jne 416200 <_IO_init_marker+0x40> + 4161e2: 2b 43 18 sub 0x18(%rbx),%eax + 4161e5: 89 45 10 mov %eax,0x10(%rbp) + 4161e8: 48 8b 43 60 mov 0x60(%rbx),%rax + 4161ec: 48 89 45 00 mov %rax,0x0(%rbp) + 4161f0: 48 89 6b 60 mov %rbp,0x60(%rbx) + 4161f4: 48 83 c4 08 add $0x8,%rsp + 4161f8: 5b pop %rbx + 4161f9: 5d pop %rbp + 4161fa: c3 retq + 4161fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 416200: 2b 43 10 sub 0x10(%rbx),%eax + 416203: eb e0 jmp 4161e5 <_IO_init_marker+0x25> + 416205: 0f 1f 00 nopl (%rax) + 416208: 48 8b 4e 28 mov 0x28(%rsi),%rcx + 41620c: 48 3b 4e 20 cmp 0x20(%rsi),%rcx + 416210: 77 3e ja 416250 <_IO_init_marker+0x90> + 416212: f6 c4 01 test $0x1,%ah + 416215: 75 29 jne 416240 <_IO_init_marker+0x80> + 416217: 48 3b 4b 10 cmp 0x10(%rbx),%rcx + 41621b: 48 8b 53 38 mov 0x38(%rbx),%rdx + 41621f: 48 89 53 18 mov %rdx,0x18(%rbx) + 416223: 48 89 ca mov %rcx,%rdx + 416226: 76 04 jbe 41622c <_IO_init_marker+0x6c> + 416228: 48 89 4b 10 mov %rcx,0x10(%rbx) + 41622c: 80 e4 f7 and $0xf7,%ah + 41622f: 48 89 4b 08 mov %rcx,0x8(%rbx) + 416233: 48 89 4b 30 mov %rcx,0x30(%rbx) + 416237: 48 89 4b 20 mov %rcx,0x20(%rbx) + 41623b: 89 03 mov %eax,(%rbx) + 41623d: eb 9c jmp 4161db <_IO_init_marker+0x1b> + 41623f: 90 nop + 416240: 48 8b 53 50 mov 0x50(%rbx),%rdx + 416244: 48 89 53 18 mov %rdx,0x18(%rbx) + 416248: 48 89 ca mov %rcx,%rdx + 41624b: eb df jmp 41622c <_IO_init_marker+0x6c> + 41624d: 0f 1f 00 nopl (%rax) + 416250: 48 8b 86 d8 00 00 00 mov 0xd8(%rsi),%rax + 416257: 48 89 df mov %rbx,%rdi + 41625a: be ff ff ff ff mov $0xffffffff,%esi + 41625f: ff 50 18 callq *0x18(%rax) + 416262: 83 f8 ff cmp $0xffffffff,%eax + 416265: 8b 03 mov (%rbx),%eax + 416267: 0f 84 6a ff ff ff je 4161d7 <_IO_init_marker+0x17> + 41626d: 48 8b 4b 28 mov 0x28(%rbx),%rcx + 416271: eb 9f jmp 416212 <_IO_init_marker+0x52> + 416273: 0f 1f 00 nopl (%rax) + 416276: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41627d: 00 00 00 + +0000000000416280 <_IO_remove_marker>: + 416280: 48 8b 47 08 mov 0x8(%rdi),%rax + 416284: 48 8b 50 60 mov 0x60(%rax),%rdx + 416288: 48 85 d2 test %rdx,%rdx + 41628b: 74 1b je 4162a8 <_IO_remove_marker+0x28> + 41628d: 48 39 d7 cmp %rdx,%rdi + 416290: 75 0e jne 4162a0 <_IO_remove_marker+0x20> + 416292: eb 16 jmp 4162aa <_IO_remove_marker+0x2a> + 416294: 0f 1f 40 00 nopl 0x0(%rax) + 416298: 48 39 c7 cmp %rax,%rdi + 41629b: 74 11 je 4162ae <_IO_remove_marker+0x2e> + 41629d: 48 89 c2 mov %rax,%rdx + 4162a0: 48 8b 02 mov (%rdx),%rax + 4162a3: 48 85 c0 test %rax,%rax + 4162a6: 75 f0 jne 416298 <_IO_remove_marker+0x18> + 4162a8: f3 c3 repz retq + 4162aa: 48 8d 50 60 lea 0x60(%rax),%rdx + 4162ae: 48 8b 07 mov (%rdi),%rax + 4162b1: 48 89 02 mov %rax,(%rdx) + 4162b4: c3 retq + 4162b5: 90 nop + 4162b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4162bd: 00 00 00 + +00000000004162c0 <_IO_marker_difference>: + 4162c0: 8b 47 10 mov 0x10(%rdi),%eax + 4162c3: 2b 46 10 sub 0x10(%rsi),%eax + 4162c6: c3 retq + 4162c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4162ce: 00 00 + +00000000004162d0 <_IO_marker_delta>: + 4162d0: 48 8b 47 08 mov 0x8(%rdi),%rax + 4162d4: 48 85 c0 test %rax,%rax + 4162d7: 74 20 je 4162f9 <_IO_marker_delta+0x29> + 4162d9: f7 00 00 01 00 00 testl $0x100,(%rax) + 4162df: 48 8b 50 08 mov 0x8(%rax),%rdx + 4162e3: 75 0b jne 4162f0 <_IO_marker_delta+0x20> + 4162e5: 2b 50 18 sub 0x18(%rax),%edx + 4162e8: 8b 47 10 mov 0x10(%rdi),%eax + 4162eb: 29 d0 sub %edx,%eax + 4162ed: c3 retq + 4162ee: 66 90 xchg %ax,%ax + 4162f0: 2b 50 10 sub 0x10(%rax),%edx + 4162f3: 8b 47 10 mov 0x10(%rdi),%eax + 4162f6: 29 d0 sub %edx,%eax + 4162f8: c3 retq + 4162f9: b8 ff ff ff ff mov $0xffffffff,%eax + 4162fe: c3 retq + 4162ff: 90 nop + +0000000000416300 <_IO_seekmark>: + 416300: 48 8b 56 08 mov 0x8(%rsi),%rdx + 416304: b8 ff ff ff ff mov $0xffffffff,%eax + 416309: 48 39 fa cmp %rdi,%rdx + 41630c: 75 3d jne 41634b <_IO_seekmark+0x4b> + 41630e: 48 63 46 10 movslq 0x10(%rsi),%rax + 416312: 8b 0a mov (%rdx),%ecx + 416314: 85 c0 test %eax,%eax + 416316: 78 48 js 416360 <_IO_seekmark+0x60> + 416318: f6 c5 01 test $0x1,%ch + 41631b: 74 33 je 416350 <_IO_seekmark+0x50> + 41631d: 80 e5 fe and $0xfe,%ch + 416320: 48 8b 72 58 mov 0x58(%rdx),%rsi + 416324: 89 0a mov %ecx,(%rdx) + 416326: 48 8b 4a 10 mov 0x10(%rdx),%rcx + 41632a: 48 89 72 10 mov %rsi,0x10(%rdx) + 41632e: 48 8b 72 18 mov 0x18(%rdx),%rsi + 416332: 48 89 4a 58 mov %rcx,0x58(%rdx) + 416336: 48 8b 4a 48 mov 0x48(%rdx),%rcx + 41633a: 48 89 72 48 mov %rsi,0x48(%rdx) + 41633e: 48 89 4a 18 mov %rcx,0x18(%rdx) + 416342: 48 01 c8 add %rcx,%rax + 416345: 48 89 42 08 mov %rax,0x8(%rdx) + 416349: 31 c0 xor %eax,%eax + 41634b: f3 c3 repz retq + 41634d: 0f 1f 00 nopl (%rax) + 416350: 48 8b 4a 18 mov 0x18(%rdx),%rcx + 416354: eb ec jmp 416342 <_IO_seekmark+0x42> + 416356: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41635d: 00 00 00 + 416360: f6 c5 01 test $0x1,%ch + 416363: 75 2b jne 416390 <_IO_seekmark+0x90> + 416365: 48 8b 72 10 mov 0x10(%rdx),%rsi + 416369: 80 cd 01 or $0x1,%ch + 41636c: 48 8b 7a 48 mov 0x48(%rdx),%rdi + 416370: 89 0a mov %ecx,(%rdx) + 416372: 48 8b 4a 58 mov 0x58(%rdx),%rcx + 416376: 48 89 72 58 mov %rsi,0x58(%rdx) + 41637a: 48 8b 72 18 mov 0x18(%rdx),%rsi + 41637e: 48 89 4a 10 mov %rcx,0x10(%rdx) + 416382: 48 89 7a 18 mov %rdi,0x18(%rdx) + 416386: 48 89 72 48 mov %rsi,0x48(%rdx) + 41638a: eb b6 jmp 416342 <_IO_seekmark+0x42> + 41638c: 0f 1f 40 00 nopl 0x0(%rax) + 416390: 48 8b 4a 10 mov 0x10(%rdx),%rcx + 416394: eb ac jmp 416342 <_IO_seekmark+0x42> + 416396: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41639d: 00 00 00 + +00000000004163a0 <_IO_unsave_markers>: + 4163a0: 48 83 7f 60 00 cmpq $0x0,0x60(%rdi) + 4163a5: 48 89 f8 mov %rdi,%rax + 4163a8: 74 08 je 4163b2 <_IO_unsave_markers+0x12> + 4163aa: 48 c7 47 60 00 00 00 movq $0x0,0x60(%rdi) + 4163b1: 00 + 4163b2: 48 8b 78 48 mov 0x48(%rax),%rdi + 4163b6: 48 85 ff test %rdi,%rdi + 4163b9: 74 45 je 416400 <_IO_unsave_markers+0x60> + 4163bb: 8b 10 mov (%rax),%edx + 4163bd: 53 push %rbx + 4163be: f6 c6 01 test $0x1,%dh + 4163c1: 74 1c je 4163df <_IO_unsave_markers+0x3f> + 4163c3: 80 e6 fe and $0xfe,%dh + 4163c6: 48 89 78 08 mov %rdi,0x8(%rax) + 4163ca: 89 10 mov %edx,(%rax) + 4163cc: 48 8b 50 58 mov 0x58(%rax),%rdx + 4163d0: 48 89 50 10 mov %rdx,0x10(%rax) + 4163d4: 48 8b 50 18 mov 0x18(%rax),%rdx + 4163d8: 48 89 78 18 mov %rdi,0x18(%rax) + 4163dc: 48 89 d7 mov %rdx,%rdi + 4163df: 48 89 c3 mov %rax,%rbx + 4163e2: e8 c9 79 00 00 callq 41ddb0 <__cfree> + 4163e7: 48 c7 43 48 00 00 00 movq $0x0,0x48(%rbx) + 4163ee: 00 + 4163ef: 48 c7 43 58 00 00 00 movq $0x0,0x58(%rbx) + 4163f6: 00 + 4163f7: 48 c7 43 50 00 00 00 movq $0x0,0x50(%rbx) + 4163fe: 00 + 4163ff: 5b pop %rbx + 416400: f3 c3 repz retq + 416402: 0f 1f 40 00 nopl 0x0(%rax) + 416406: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41640d: 00 00 00 + +0000000000416410 <_IO_default_pbackfail>: + 416410: 41 57 push %r15 + 416412: 41 56 push %r14 + 416414: 41 55 push %r13 + 416416: 41 54 push %r12 + 416418: 41 89 f4 mov %esi,%r12d + 41641b: 55 push %rbp + 41641c: 53 push %rbx + 41641d: 48 89 fb mov %rdi,%rbx + 416420: 48 83 ec 08 sub $0x8,%rsp + 416424: 48 8b 6f 08 mov 0x8(%rdi),%rbp + 416428: 4c 8b 77 18 mov 0x18(%rdi),%r14 + 41642c: 44 8b 2f mov (%rdi),%r13d + 41642f: 4c 39 f5 cmp %r14,%rbp + 416432: 76 2c jbe 416460 <_IO_default_pbackfail+0x50> + 416434: 41 f7 c5 00 01 00 00 test $0x100,%r13d + 41643b: 74 7b je 4164b8 <_IO_default_pbackfail+0xa8> + 41643d: 48 8d 45 ff lea -0x1(%rbp),%rax + 416441: 48 89 43 08 mov %rax,0x8(%rbx) + 416445: 44 88 65 ff mov %r12b,-0x1(%rbp) + 416449: 41 0f b6 c4 movzbl %r12b,%eax + 41644d: 48 83 c4 08 add $0x8,%rsp + 416451: 5b pop %rbx + 416452: 5d pop %rbp + 416453: 41 5c pop %r12 + 416455: 41 5d pop %r13 + 416457: 41 5e pop %r14 + 416459: 41 5f pop %r15 + 41645b: c3 retq + 41645c: 0f 1f 40 00 nopl 0x0(%rax) + 416460: 41 f7 c5 00 01 00 00 test $0x100,%r13d + 416467: 0f 84 83 00 00 00 je 4164f0 <_IO_default_pbackfail+0xe0> + 41646d: 4c 8b 6b 10 mov 0x10(%rbx),%r13 + 416471: 4d 29 f5 sub %r14,%r13 + 416474: 4b 8d 7c 2d 00 lea 0x0(%r13,%r13,1),%rdi + 416479: e8 92 75 00 00 callq 41da10 <__libc_malloc> + 41647e: 48 85 c0 test %rax,%rax + 416481: 49 89 c7 mov %rax,%r15 + 416484: 0f 84 d0 00 00 00 je 41655a <_IO_default_pbackfail+0x14a> + 41648a: 4a 8d 2c 28 lea (%rax,%r13,1),%rbp + 41648e: 4c 89 ea mov %r13,%rdx + 416491: 4c 89 f6 mov %r14,%rsi + 416494: 48 89 ef mov %rbp,%rdi + 416497: 49 01 ed add %rbp,%r13 + 41649a: e8 81 5b 01 00 callq 42c020 + 41649f: 4c 89 f7 mov %r14,%rdi + 4164a2: e8 09 79 00 00 callq 41ddb0 <__cfree> + 4164a7: 4c 89 7b 18 mov %r15,0x18(%rbx) + 4164ab: 4c 89 6b 10 mov %r13,0x10(%rbx) + 4164af: 48 89 6b 50 mov %rbp,0x50(%rbx) + 4164b3: eb 88 jmp 41643d <_IO_default_pbackfail+0x2d> + 4164b5: 0f 1f 00 nopl (%rax) + 4164b8: 0f b6 45 ff movzbl -0x1(%rbp),%eax + 4164bc: 39 f0 cmp %esi,%eax + 4164be: 74 68 je 416528 <_IO_default_pbackfail+0x118> + 4164c0: 48 83 7f 48 00 cmpq $0x0,0x48(%rdi) + 4164c5: 74 71 je 416538 <_IO_default_pbackfail+0x128> + 4164c7: 48 89 ee mov %rbp,%rsi + 4164ca: 48 89 df mov %rbx,%rdi + 4164cd: e8 8e da ff ff callq 413f60 + 4164d2: 85 c0 test %eax,%eax + 4164d4: 0f 85 80 00 00 00 jne 41655a <_IO_default_pbackfail+0x14a> + 4164da: 48 8b 4b 08 mov 0x8(%rbx),%rcx + 4164de: 44 8b 2b mov (%rbx),%r13d + 4164e1: 48 8b 6b 58 mov 0x58(%rbx),%rbp + 4164e5: 48 8b 43 48 mov 0x48(%rbx),%rax + 4164e9: eb 15 jmp 416500 <_IO_default_pbackfail+0xf0> + 4164eb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4164f0: 48 8b 43 48 mov 0x48(%rbx),%rax + 4164f4: 48 85 c0 test %rax,%rax + 4164f7: 74 3f je 416538 <_IO_default_pbackfail+0x128> + 4164f9: 48 89 e9 mov %rbp,%rcx + 4164fc: 48 8b 6b 58 mov 0x58(%rbx),%rbp + 416500: 48 8b 53 10 mov 0x10(%rbx),%rdx + 416504: 41 81 cd 00 01 00 00 or $0x100,%r13d + 41650b: 48 89 6b 10 mov %rbp,0x10(%rbx) + 41650f: 44 89 2b mov %r13d,(%rbx) + 416512: 48 89 43 18 mov %rax,0x18(%rbx) + 416516: 48 89 4b 48 mov %rcx,0x48(%rbx) + 41651a: 48 89 53 58 mov %rdx,0x58(%rbx) + 41651e: e9 1a ff ff ff jmpq 41643d <_IO_default_pbackfail+0x2d> + 416523: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 416528: 48 83 ed 01 sub $0x1,%rbp + 41652c: 48 89 6f 08 mov %rbp,0x8(%rdi) + 416530: e9 14 ff ff ff jmpq 416449 <_IO_default_pbackfail+0x39> + 416535: 0f 1f 00 nopl (%rax) + 416538: bf 80 00 00 00 mov $0x80,%edi + 41653d: e8 ce 74 00 00 callq 41da10 <__libc_malloc> + 416542: 48 85 c0 test %rax,%rax + 416545: 74 13 je 41655a <_IO_default_pbackfail+0x14a> + 416547: 48 8d 90 80 00 00 00 lea 0x80(%rax),%rdx + 41654e: 48 89 e9 mov %rbp,%rcx + 416551: 48 89 53 50 mov %rdx,0x50(%rbx) + 416555: 48 89 d5 mov %rdx,%rbp + 416558: eb a6 jmp 416500 <_IO_default_pbackfail+0xf0> + 41655a: b8 ff ff ff ff mov $0xffffffff,%eax + 41655f: e9 e9 fe ff ff jmpq 41644d <_IO_default_pbackfail+0x3d> + 416564: 66 90 xchg %ax,%ax + 416566: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41656d: 00 00 00 + +0000000000416570 <_IO_default_seek>: + 416570: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 416577: c3 retq + 416578: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41657f: 00 + +0000000000416580 <_IO_default_stat>: + 416580: b8 ff ff ff ff mov $0xffffffff,%eax + 416585: c3 retq + 416586: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41658d: 00 00 00 + +0000000000416590 <_IO_default_read>: + 416590: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 416597: c3 retq + 416598: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41659f: 00 + +00000000004165a0 <_IO_default_write>: + 4165a0: 31 c0 xor %eax,%eax + 4165a2: c3 retq + 4165a3: 0f 1f 00 nopl (%rax) + 4165a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4165ad: 00 00 00 + +00000000004165b0 <_IO_default_showmanyc>: + 4165b0: b8 ff ff ff ff mov $0xffffffff,%eax + 4165b5: c3 retq + 4165b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4165bd: 00 00 00 + +00000000004165c0 <_IO_default_imbue>: + 4165c0: f3 c3 repz retq + 4165c2: 0f 1f 40 00 nopl 0x0(%rax) + 4165c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4165cd: 00 00 00 + +00000000004165d0 <_IO_iter_begin>: + 4165d0: 48 8b 05 e9 3a 2b 00 mov 0x2b3ae9(%rip),%rax # 6ca0c0 <_IO_list_all> + 4165d7: c3 retq + 4165d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4165df: 00 + +00000000004165e0 <_IO_iter_end>: + 4165e0: 31 c0 xor %eax,%eax + 4165e2: c3 retq + 4165e3: 0f 1f 00 nopl (%rax) + 4165e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4165ed: 00 00 00 + +00000000004165f0 <_IO_iter_next>: + 4165f0: 48 8b 47 68 mov 0x68(%rdi),%rax + 4165f4: c3 retq + 4165f5: 90 nop + 4165f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4165fd: 00 00 00 + +0000000000416600 <_IO_iter_file>: + 416600: 48 89 f8 mov %rdi,%rax + 416603: c3 retq + 416604: 66 90 xchg %ax,%ax + 416606: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41660d: 00 00 00 + +0000000000416610 <_IO_list_lock>: + 416610: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx + 416617: 00 00 + 416619: 48 3b 15 88 5f 2b 00 cmp 0x2b5f88(%rip),%rdx # 6cc5a8 + 416620: 74 46 je 416668 <_IO_list_lock+0x58> + 416622: be 01 00 00 00 mov $0x1,%esi + 416627: 31 c0 xor %eax,%eax + 416629: 83 3d 8c 6b 2b 00 00 cmpl $0x0,0x2b6b8c(%rip) # 6cd1bc <__libc_multiple_threads> + 416630: 74 0c je 41663e <_IO_list_lock+0x2e> + 416632: f0 0f b1 35 66 5f 2b lock cmpxchg %esi,0x2b5f66(%rip) # 6cc5a0 + 416639: 00 + 41663a: 75 0b jne 416647 <_IO_list_lock+0x37> + 41663c: eb 23 jmp 416661 <_IO_list_lock+0x51> + 41663e: 0f b1 35 5b 5f 2b 00 cmpxchg %esi,0x2b5f5b(%rip) # 6cc5a0 + 416645: 74 1a je 416661 <_IO_list_lock+0x51> + 416647: 48 8d 3d 52 5f 2b 00 lea 0x2b5f52(%rip),%rdi # 6cc5a0 + 41664e: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 416655: e8 76 bf 02 00 callq 4425d0 <__lll_lock_wait_private> + 41665a: 48 81 c4 80 00 00 00 add $0x80,%rsp + 416661: 48 89 15 40 5f 2b 00 mov %rdx,0x2b5f40(%rip) # 6cc5a8 + 416668: 83 05 35 5f 2b 00 01 addl $0x1,0x2b5f35(%rip) # 6cc5a4 + 41666f: c3 retq + +0000000000416670 <_IO_list_unlock>: + 416670: 83 2d 2d 5f 2b 00 01 subl $0x1,0x2b5f2d(%rip) # 6cc5a4 + 416677: 75 41 jne 4166ba <_IO_list_unlock+0x4a> + 416679: 48 c7 05 24 5f 2b 00 movq $0x0,0x2b5f24(%rip) # 6cc5a8 + 416680: 00 00 00 00 + 416684: 83 3d 31 6b 2b 00 00 cmpl $0x0,0x2b6b31(%rip) # 6cd1bc <__libc_multiple_threads> + 41668b: 74 0b je 416698 <_IO_list_unlock+0x28> + 41668d: f0 ff 0d 0c 5f 2b 00 lock decl 0x2b5f0c(%rip) # 6cc5a0 + 416694: 75 0a jne 4166a0 <_IO_list_unlock+0x30> + 416696: eb 22 jmp 4166ba <_IO_list_unlock+0x4a> + 416698: ff 0d 02 5f 2b 00 decl 0x2b5f02(%rip) # 6cc5a0 + 41669e: 74 1a je 4166ba <_IO_list_unlock+0x4a> + 4166a0: 48 8d 3d f9 5e 2b 00 lea 0x2b5ef9(%rip),%rdi # 6cc5a0 + 4166a7: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4166ae: e8 4d bf 02 00 callq 442600 <__lll_unlock_wake_private> + 4166b3: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4166ba: f3 c3 repz retq + 4166bc: 0f 1f 40 00 nopl 0x0(%rax) + +00000000004166c0 <_IO_list_resetlock>: + 4166c0: c7 05 d6 5e 2b 00 00 movl $0x0,0x2b5ed6(%rip) # 6cc5a0 + 4166c7: 00 00 00 + 4166ca: c7 05 d0 5e 2b 00 00 movl $0x0,0x2b5ed0(%rip) # 6cc5a4 + 4166d1: 00 00 00 + 4166d4: 48 c7 05 c9 5e 2b 00 movq $0x0,0x2b5ec9(%rip) # 6cc5a8 + 4166db: 00 00 00 00 + 4166df: c3 retq + +00000000004166e0 <_IO_str_underflow>: + 4166e0: 48 8b 47 28 mov 0x28(%rdi),%rax + 4166e4: 48 8b 4f 10 mov 0x10(%rdi),%rcx + 4166e8: 48 39 c8 cmp %rcx,%rax + 4166eb: 76 07 jbe 4166f4 <_IO_str_underflow+0x14> + 4166ed: 48 89 47 10 mov %rax,0x10(%rdi) + 4166f1: 48 89 c1 mov %rax,%rcx + 4166f4: 8b 17 mov (%rdi),%edx + 4166f6: 81 e2 00 0c 00 00 and $0xc00,%edx + 4166fc: 81 fa 00 0c 00 00 cmp $0xc00,%edx + 416702: 74 14 je 416718 <_IO_str_underflow+0x38> + 416704: 48 8b 47 08 mov 0x8(%rdi),%rax + 416708: 48 39 c8 cmp %rcx,%rax + 41670b: 73 23 jae 416730 <_IO_str_underflow+0x50> + 41670d: 0f b6 00 movzbl (%rax),%eax + 416710: c3 retq + 416711: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 416718: 48 8b 57 30 mov 0x30(%rdi),%rdx + 41671c: 81 27 ff f7 ff ff andl $0xfffff7ff,(%rdi) + 416722: 48 89 47 08 mov %rax,0x8(%rdi) + 416726: 48 89 57 28 mov %rdx,0x28(%rdi) + 41672a: eb dc jmp 416708 <_IO_str_underflow+0x28> + 41672c: 0f 1f 40 00 nopl 0x0(%rax) + 416730: b8 ff ff ff ff mov $0xffffffff,%eax + 416735: c3 retq + 416736: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41673d: 00 00 00 + +0000000000416740 <_IO_str_overflow>: + 416740: 8b 0f mov (%rdi),%ecx + 416742: f6 c1 08 test $0x8,%cl + 416745: 74 11 je 416758 <_IO_str_overflow+0x18> + 416747: 31 c0 xor %eax,%eax + 416749: 83 fe ff cmp $0xffffffff,%esi + 41674c: 0f 95 c0 setne %al + 41674f: f7 d8 neg %eax + 416751: c3 retq + 416752: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 416758: 41 57 push %r15 + 41675a: 89 c8 mov %ecx,%eax + 41675c: 41 56 push %r14 + 41675e: 41 55 push %r13 + 416760: 41 54 push %r12 + 416762: 25 00 0c 00 00 and $0xc00,%eax + 416767: 55 push %rbp + 416768: 53 push %rbx + 416769: 48 83 ec 08 sub $0x8,%rsp + 41676d: 3d 00 04 00 00 cmp $0x400,%eax + 416772: 0f 84 08 01 00 00 je 416880 <_IO_str_overflow+0x140> + 416778: 48 8b 57 28 mov 0x28(%rdi),%rdx + 41677c: 4c 8b 67 38 mov 0x38(%rdi),%r12 + 416780: 4c 8b 6f 40 mov 0x40(%rdi),%r13 + 416784: 89 f5 mov %esi,%ebp + 416786: 48 89 d6 mov %rdx,%rsi + 416789: 48 2b 77 20 sub 0x20(%rdi),%rsi + 41678d: 31 c0 xor %eax,%eax + 41678f: 48 89 fb mov %rdi,%rbx + 416792: 4d 29 e5 sub %r12,%r13 + 416795: 83 fd ff cmp $0xffffffff,%ebp + 416798: 0f 94 c0 sete %al + 41679b: 4c 01 e8 add %r13,%rax + 41679e: 48 39 c6 cmp %rax,%rsi + 4167a1: 0f 82 aa 00 00 00 jb 416851 <_IO_str_overflow+0x111> + 4167a7: 83 e1 01 and $0x1,%ecx + 4167aa: 0f 85 f0 00 00 00 jne 4168a0 <_IO_str_overflow+0x160> + 4167b0: 4f 8d 74 2d 64 lea 0x64(%r13,%r13,1),%r14 + 4167b5: 4d 39 f5 cmp %r14,%r13 + 4167b8: 0f 87 e2 00 00 00 ja 4168a0 <_IO_str_overflow+0x160> + 4167be: 4c 89 f7 mov %r14,%rdi + 4167c1: ff 93 e0 00 00 00 callq *0xe0(%rbx) + 4167c7: 48 85 c0 test %rax,%rax + 4167ca: 49 89 c7 mov %rax,%r15 + 4167cd: 0f 84 cd 00 00 00 je 4168a0 <_IO_str_overflow+0x160> + 4167d3: 4d 85 e4 test %r12,%r12 + 4167d6: 74 1f je 4167f7 <_IO_str_overflow+0xb7> + 4167d8: 4c 89 ea mov %r13,%rdx + 4167db: 4c 89 e6 mov %r12,%rsi + 4167de: 48 89 c7 mov %rax,%rdi + 4167e1: e8 3a 58 01 00 callq 42c020 + 4167e6: 4c 89 e7 mov %r12,%rdi + 4167e9: ff 93 e8 00 00 00 callq *0xe8(%rbx) + 4167ef: 48 c7 43 38 00 00 00 movq $0x0,0x38(%rbx) + 4167f6: 00 + 4167f7: 4b 8d 3c 2f lea (%r15,%r13,1),%rdi + 4167fb: 4c 89 f2 mov %r14,%rdx + 4167fe: 31 f6 xor %esi,%esi + 416800: 4c 29 ea sub %r13,%rdx + 416803: e8 48 9b fe ff callq 400350 <__rela_iplt_end+0x88> + 416808: 4b 8d 14 37 lea (%r15,%r14,1),%rdx + 41680c: b9 01 00 00 00 mov $0x1,%ecx + 416811: 4c 89 fe mov %r15,%rsi + 416814: 48 89 df mov %rbx,%rdi + 416817: e8 84 e5 ff ff callq 414da0 <_IO_setb> + 41681c: 4c 89 f8 mov %r15,%rax + 41681f: 4c 89 7b 20 mov %r15,0x20(%rbx) + 416823: 4c 29 e0 sub %r12,%rax + 416826: 48 01 43 18 add %rax,0x18(%rbx) + 41682a: 4c 89 f8 mov %r15,%rax + 41682d: 4c 29 e0 sub %r12,%rax + 416830: 48 01 43 08 add %rax,0x8(%rbx) + 416834: 4c 89 f8 mov %r15,%rax + 416837: 4c 29 e0 sub %r12,%rax + 41683a: 48 01 43 10 add %rax,0x10(%rbx) + 41683e: 48 89 c2 mov %rax,%rdx + 416841: 48 03 53 28 add 0x28(%rbx),%rdx + 416845: 48 8b 43 40 mov 0x40(%rbx),%rax + 416849: 48 89 53 28 mov %rdx,0x28(%rbx) + 41684d: 48 89 43 30 mov %rax,0x30(%rbx) + 416851: 83 fd ff cmp $0xffffffff,%ebp + 416854: 74 0f je 416865 <_IO_str_overflow+0x125> + 416856: 48 8d 42 01 lea 0x1(%rdx),%rax + 41685a: 48 89 43 28 mov %rax,0x28(%rbx) + 41685e: 40 88 2a mov %bpl,(%rdx) + 416861: 48 8b 53 28 mov 0x28(%rbx),%rdx + 416865: 48 39 53 10 cmp %rdx,0x10(%rbx) + 416869: 89 e8 mov %ebp,%eax + 41686b: 73 04 jae 416871 <_IO_str_overflow+0x131> + 41686d: 48 89 53 10 mov %rdx,0x10(%rbx) + 416871: 48 83 c4 08 add $0x8,%rsp + 416875: 5b pop %rbx + 416876: 5d pop %rbp + 416877: 41 5c pop %r12 + 416879: 41 5d pop %r13 + 41687b: 41 5e pop %r14 + 41687d: 41 5f pop %r15 + 41687f: c3 retq + 416880: 48 8b 57 08 mov 0x8(%rdi),%rdx + 416884: 48 8b 47 10 mov 0x10(%rdi),%rax + 416888: 80 cd 08 or $0x8,%ch + 41688b: 89 0f mov %ecx,(%rdi) + 41688d: 48 89 57 28 mov %rdx,0x28(%rdi) + 416891: 48 89 47 08 mov %rax,0x8(%rdi) + 416895: e9 e2 fe ff ff jmpq 41677c <_IO_str_overflow+0x3c> + 41689a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4168a0: b8 ff ff ff ff mov $0xffffffff,%eax + 4168a5: eb ca jmp 416871 <_IO_str_overflow+0x131> + 4168a7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4168ae: 00 00 + +00000000004168b0 : + 4168b0: 41 57 push %r15 + 4168b2: 41 56 push %r14 + 4168b4: 41 55 push %r13 + 4168b6: 41 54 push %r12 + 4168b8: 55 push %rbp + 4168b9: 53 push %rbx + 4168ba: 48 83 ec 28 sub $0x28,%rsp + 4168be: 4c 8b 77 38 mov 0x38(%rdi),%r14 + 4168c2: 48 8b 47 40 mov 0x40(%rdi),%rax + 4168c6: 4c 29 f0 sub %r14,%rax + 4168c9: 48 39 f0 cmp %rsi,%rax + 4168cc: 0f 8d fe 00 00 00 jge 4169d0 + 4168d2: 44 8b 3f mov (%rdi),%r15d + 4168d5: 41 83 e7 01 and $0x1,%r15d + 4168d9: 74 1d je 4168f8 + 4168db: 41 bf 01 00 00 00 mov $0x1,%r15d + 4168e1: 48 83 c4 28 add $0x28,%rsp + 4168e5: 44 89 f8 mov %r15d,%eax + 4168e8: 5b pop %rbx + 4168e9: 5d pop %rbp + 4168ea: 41 5c pop %r12 + 4168ec: 41 5d pop %r13 + 4168ee: 41 5e pop %r14 + 4168f0: 41 5f pop %r15 + 4168f2: c3 retq + 4168f3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4168f8: 48 8b 47 20 mov 0x20(%rdi),%rax + 4168fc: 48 89 fb mov %rdi,%rbx + 4168ff: 4c 8b 67 30 mov 0x30(%rdi),%r12 + 416903: 89 54 24 1c mov %edx,0x1c(%rsp) + 416907: 48 89 f5 mov %rsi,%rbp + 41690a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 41690f: 48 8d 46 64 lea 0x64(%rsi),%rax + 416913: 48 89 44 24 10 mov %rax,0x10(%rsp) + 416918: 48 89 c7 mov %rax,%rdi + 41691b: ff 93 e0 00 00 00 callq *0xe0(%rbx) + 416921: 48 85 c0 test %rax,%rax + 416924: 49 89 c5 mov %rax,%r13 + 416927: 74 b2 je 4168db + 416929: 4d 85 f6 test %r14,%r14 + 41692c: 74 24 je 416952 + 41692e: 48 8b 53 40 mov 0x40(%rbx),%rdx + 416932: 48 2b 53 38 sub 0x38(%rbx),%rdx + 416936: 4c 89 f6 mov %r14,%rsi + 416939: 48 89 c7 mov %rax,%rdi + 41693c: e8 df 56 01 00 callq 42c020 + 416941: 4c 89 f7 mov %r14,%rdi + 416944: ff 93 e8 00 00 00 callq *0xe8(%rbx) + 41694a: 48 c7 43 38 00 00 00 movq $0x0,0x38(%rbx) + 416951: 00 + 416952: 48 8b 54 24 10 mov 0x10(%rsp),%rdx + 416957: b9 01 00 00 00 mov $0x1,%ecx + 41695c: 4c 89 ee mov %r13,%rsi + 41695f: 48 89 df mov %rbx,%rdi + 416962: 4c 2b 64 24 08 sub 0x8(%rsp),%r12 + 416967: 4c 01 ea add %r13,%rdx + 41696a: e8 31 e4 ff ff callq 414da0 <_IO_setb> + 41696f: 8b 54 24 1c mov 0x1c(%rsp),%edx + 416973: 4c 89 e8 mov %r13,%rax + 416976: 4c 29 f0 sub %r14,%rax + 416979: 85 d2 test %edx,%edx + 41697b: 75 63 jne 4169e0 + 41697d: 48 01 43 18 add %rax,0x18(%rbx) + 416981: 4c 89 e8 mov %r13,%rax + 416984: 4c 89 6b 20 mov %r13,0x20(%rbx) + 416988: 4c 29 f0 sub %r14,%rax + 41698b: 48 01 43 08 add %rax,0x8(%rbx) + 41698f: 4c 89 e8 mov %r13,%rax + 416992: 4c 29 f0 sub %r14,%rax + 416995: 48 01 43 10 add %rax,0x10(%rbx) + 416999: 4c 89 e8 mov %r13,%rax + 41699c: 4c 29 f0 sub %r14,%rax + 41699f: 48 01 43 28 add %rax,0x28(%rbx) + 4169a3: 4c 39 e5 cmp %r12,%rbp + 4169a6: 48 8b 43 40 mov 0x40(%rbx),%rax + 4169aa: 48 89 43 30 mov %rax,0x30(%rbx) + 4169ae: 7c 63 jl 416a13 + 4169b0: 48 89 ea mov %rbp,%rdx + 4169b3: 4b 8d 7c 25 00 lea 0x0(%r13,%r12,1),%rdi + 4169b8: 31 f6 xor %esi,%esi + 4169ba: 4c 29 e2 sub %r12,%rdx + 4169bd: e8 8e 99 fe ff callq 400350 <__rela_iplt_end+0x88> + 4169c2: e9 1a ff ff ff jmpq 4168e1 + 4169c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4169ce: 00 00 + 4169d0: 45 31 ff xor %r15d,%r15d + 4169d3: e9 09 ff ff ff jmpq 4168e1 + 4169d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4169df: 00 + 4169e0: 48 01 43 20 add %rax,0x20(%rbx) + 4169e4: 4c 89 e8 mov %r13,%rax + 4169e7: 4c 89 6b 18 mov %r13,0x18(%rbx) + 4169eb: 4c 29 f0 sub %r14,%rax + 4169ee: 48 01 43 28 add %rax,0x28(%rbx) + 4169f2: 4c 89 e8 mov %r13,%rax + 4169f5: 4c 29 f0 sub %r14,%rax + 4169f8: 48 01 43 30 add %rax,0x30(%rbx) + 4169fc: 4c 89 e8 mov %r13,%rax + 4169ff: 4c 29 f0 sub %r14,%rax + 416a02: 48 01 43 08 add %rax,0x8(%rbx) + 416a06: 4c 39 e5 cmp %r12,%rbp + 416a09: 48 8b 43 40 mov 0x40(%rbx),%rax + 416a0d: 48 89 43 10 mov %rax,0x10(%rbx) + 416a11: 7d 9d jge 4169b0 + 416a13: b9 f0 1e 4a 00 mov $0x4a1ef0,%ecx + 416a18: ba e0 00 00 00 mov $0xe0,%edx + 416a1d: be c8 1e 4a 00 mov $0x4a1ec8,%esi + 416a22: bf d1 1e 4a 00 mov $0x4a1ed1,%edi + 416a27: e8 14 ad fe ff callq 401740 <__assert_fail> + 416a2c: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000416a30 <_IO_str_seekoff>: + 416a30: 41 55 push %r13 + 416a32: 41 54 push %r12 + 416a34: 41 89 d5 mov %edx,%r13d + 416a37: 55 push %rbp + 416a38: 53 push %rbx + 416a39: 49 89 f4 mov %rsi,%r12 + 416a3c: 48 89 fb mov %rdi,%rbx + 416a3f: 48 83 ec 18 sub $0x18,%rsp + 416a43: 85 c9 test %ecx,%ecx + 416a45: 0f 85 85 00 00 00 jne 416ad0 <_IO_str_seekoff+0xa0> + 416a4b: 8b 07 mov (%rdi),%eax + 416a4d: f6 c4 04 test $0x4,%ah + 416a50: 74 5e je 416ab0 <_IO_str_seekoff+0x80> + 416a52: f6 c4 08 test $0x8,%ah + 416a55: 0f 84 b5 00 00 00 je 416b10 <_IO_str_seekoff+0xe0> + 416a5b: 48 8b 6f 28 mov 0x28(%rdi),%rbp + 416a5f: 48 39 6f 10 cmp %rbp,0x10(%rdi) + 416a63: 48 0f 43 6f 10 cmovae 0x10(%rdi),%rbp + 416a68: 48 2b 6f 18 sub 0x18(%rdi),%rbp + 416a6c: 41 83 fd 01 cmp $0x1,%r13d + 416a70: 0f 84 12 01 00 00 je 416b88 <_IO_str_seekoff+0x158> + 416a76: 49 8d 04 2c lea (%r12,%rbp,1),%rax + 416a7a: 41 83 fd 02 cmp $0x2,%r13d + 416a7e: 4c 0f 44 e0 cmove %rax,%r12 + 416a82: 4d 85 e4 test %r12,%r12 + 416a85: 0f 88 2a 01 00 00 js 416bb5 <_IO_str_seekoff+0x185> + 416a8b: 49 39 ec cmp %rbp,%r12 + 416a8e: 0f 8f 0c 01 00 00 jg 416ba0 <_IO_str_seekoff+0x170> + 416a94: 4c 89 e0 mov %r12,%rax + 416a97: 48 03 43 20 add 0x20(%rbx),%rax + 416a9b: 48 89 43 28 mov %rax,0x28(%rbx) + 416a9f: 48 83 c4 18 add $0x18,%rsp + 416aa3: 4c 89 e0 mov %r12,%rax + 416aa6: 5b pop %rbx + 416aa7: 5d pop %rbp + 416aa8: 41 5c pop %r12 + 416aaa: 41 5d pop %r13 + 416aac: c3 retq + 416aad: 0f 1f 00 nopl (%rax) + 416ab0: a8 08 test $0x8,%al + 416ab2: 0f 85 a8 00 00 00 jne 416b60 <_IO_str_seekoff+0x130> + 416ab8: 48 8b 43 28 mov 0x28(%rbx),%rax + 416abc: 48 2b 43 20 sub 0x20(%rbx),%rax + 416ac0: 48 83 c4 18 add $0x18,%rsp + 416ac4: 5b pop %rbx + 416ac5: 5d pop %rbp + 416ac6: 41 5c pop %r12 + 416ac8: 41 5d pop %r13 + 416aca: c3 retq + 416acb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 416ad0: 48 8b 6f 28 mov 0x28(%rdi),%rbp + 416ad4: 48 39 6f 10 cmp %rbp,0x10(%rdi) + 416ad8: 48 0f 43 6f 10 cmovae 0x10(%rdi),%rbp + 416add: 48 8b 47 18 mov 0x18(%rdi),%rax + 416ae1: 48 29 c5 sub %rax,%rbp + 416ae4: f6 c1 01 test $0x1,%cl + 416ae7: 75 40 jne 416b29 <_IO_str_seekoff+0xf9> + 416ae9: 83 e1 02 and $0x2,%ecx + 416aec: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 416af3: 85 c9 test %ecx,%ecx + 416af5: 0f 85 71 ff ff ff jne 416a6c <_IO_str_seekoff+0x3c> + 416afb: 48 83 c4 18 add $0x18,%rsp + 416aff: 5b pop %rbx + 416b00: 5d pop %rbp + 416b01: 41 5c pop %r12 + 416b03: 41 5d pop %r13 + 416b05: c3 retq + 416b06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 416b0d: 00 00 00 + 416b10: 48 8b 6f 28 mov 0x28(%rdi),%rbp + 416b14: 48 39 6f 10 cmp %rbp,0x10(%rdi) + 416b18: b9 01 00 00 00 mov $0x1,%ecx + 416b1d: 48 0f 43 6f 10 cmovae 0x10(%rdi),%rbp + 416b22: 48 8b 47 18 mov 0x18(%rdi),%rax + 416b26: 48 29 c5 sub %rax,%rbp + 416b29: 41 83 fd 01 cmp $0x1,%r13d + 416b2d: 74 49 je 416b78 <_IO_str_seekoff+0x148> + 416b2f: 49 8d 14 2c lea (%r12,%rbp,1),%rdx + 416b33: 41 83 fd 02 cmp $0x2,%r13d + 416b37: 4c 0f 44 e2 cmove %rdx,%r12 + 416b3b: 4d 85 e4 test %r12,%r12 + 416b3e: 78 75 js 416bb5 <_IO_str_seekoff+0x185> + 416b40: 49 39 ec cmp %rbp,%r12 + 416b43: 0f 8f 7f 00 00 00 jg 416bc8 <_IO_str_seekoff+0x198> + 416b49: 4a 8d 14 20 lea (%rax,%r12,1),%rdx + 416b4d: 48 01 e8 add %rbp,%rax + 416b50: 83 e1 02 and $0x2,%ecx + 416b53: 48 89 43 10 mov %rax,0x10(%rbx) + 416b57: 4c 89 e0 mov %r12,%rax + 416b5a: 48 89 53 08 mov %rdx,0x8(%rbx) + 416b5e: eb 93 jmp 416af3 <_IO_str_seekoff+0xc3> + 416b60: 48 8b 43 08 mov 0x8(%rbx),%rax + 416b64: 48 2b 43 18 sub 0x18(%rbx),%rax + 416b68: 48 83 c4 18 add $0x18,%rsp + 416b6c: 5b pop %rbx + 416b6d: 5d pop %rbp + 416b6e: 41 5c pop %r12 + 416b70: 41 5d pop %r13 + 416b72: c3 retq + 416b73: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 416b78: 48 8b 53 08 mov 0x8(%rbx),%rdx + 416b7c: 48 29 c2 sub %rax,%rdx + 416b7f: 49 01 d4 add %rdx,%r12 + 416b82: eb b7 jmp 416b3b <_IO_str_seekoff+0x10b> + 416b84: 0f 1f 40 00 nopl 0x0(%rax) + 416b88: 48 8b 43 28 mov 0x28(%rbx),%rax + 416b8c: 48 2b 43 20 sub 0x20(%rbx),%rax + 416b90: 49 01 c4 add %rax,%r12 + 416b93: e9 ea fe ff ff jmpq 416a82 <_IO_str_seekoff+0x52> + 416b98: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 416b9f: 00 + 416ba0: 31 d2 xor %edx,%edx + 416ba2: 4c 89 e6 mov %r12,%rsi + 416ba5: 48 89 df mov %rbx,%rdi + 416ba8: e8 03 fd ff ff callq 4168b0 + 416bad: 85 c0 test %eax,%eax + 416baf: 0f 84 df fe ff ff je 416a94 <_IO_str_seekoff+0x64> + 416bb5: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 416bbc: e9 ff fe ff ff jmpq 416ac0 <_IO_str_seekoff+0x90> + 416bc1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 416bc8: ba 01 00 00 00 mov $0x1,%edx + 416bcd: 4c 89 e6 mov %r12,%rsi + 416bd0: 48 89 df mov %rbx,%rdi + 416bd3: 89 4c 24 0c mov %ecx,0xc(%rsp) + 416bd7: e8 d4 fc ff ff callq 4168b0 + 416bdc: 85 c0 test %eax,%eax + 416bde: 75 d5 jne 416bb5 <_IO_str_seekoff+0x185> + 416be0: 48 8b 43 18 mov 0x18(%rbx),%rax + 416be4: 8b 4c 24 0c mov 0xc(%rsp),%ecx + 416be8: e9 5c ff ff ff jmpq 416b49 <_IO_str_seekoff+0x119> + 416bed: 0f 1f 00 nopl (%rax) + +0000000000416bf0 <_IO_str_pbackfail>: + 416bf0: f6 07 08 testb $0x8,(%rdi) + 416bf3: 74 05 je 416bfa <_IO_str_pbackfail+0xa> + 416bf5: 83 fe ff cmp $0xffffffff,%esi + 416bf8: 75 06 jne 416c00 <_IO_str_pbackfail+0x10> + 416bfa: e9 11 f8 ff ff jmpq 416410 <_IO_default_pbackfail> + 416bff: 90 nop + 416c00: b8 ff ff ff ff mov $0xffffffff,%eax + 416c05: c3 retq + 416c06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 416c0d: 00 00 00 + +0000000000416c10 <_IO_str_finish>: + 416c10: 53 push %rbx + 416c11: 48 89 fb mov %rdi,%rbx + 416c14: 48 8b 7f 38 mov 0x38(%rdi),%rdi + 416c18: 48 85 ff test %rdi,%rdi + 416c1b: 74 0b je 416c28 <_IO_str_finish+0x18> + 416c1d: f6 03 01 testb $0x1,(%rbx) + 416c20: 75 06 jne 416c28 <_IO_str_finish+0x18> + 416c22: ff 93 e8 00 00 00 callq *0xe8(%rbx) + 416c28: 48 c7 43 38 00 00 00 movq $0x0,0x38(%rbx) + 416c2f: 00 + 416c30: 48 89 df mov %rbx,%rdi + 416c33: 31 f6 xor %esi,%esi + 416c35: 5b pop %rbx + 416c36: e9 d5 e9 ff ff jmpq 415610 <_IO_default_finish> + 416c3b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000416c40 <_IO_str_init_static_internal>: + 416c40: 41 55 push %r13 + 416c42: 41 54 push %r12 + 416c44: 49 89 cd mov %rcx,%r13 + 416c47: 55 push %rbp + 416c48: 53 push %rbx + 416c49: 49 89 f4 mov %rsi,%r12 + 416c4c: 48 89 fb mov %rdi,%rbx + 416c4f: 48 83 ec 08 sub $0x8,%rsp + 416c53: 48 85 d2 test %rdx,%rdx + 416c56: 75 58 jne 416cb0 <_IO_str_init_static_internal+0x70> + 416c58: 31 f6 xor %esi,%esi + 416c5a: 4c 89 e7 mov %r12,%rdi + 416c5d: e8 6e 5d 01 00 callq 42c9d0 <__rawmemchr> + 416c62: 48 89 c5 mov %rax,%rbp + 416c65: 31 c9 xor %ecx,%ecx + 416c67: 48 89 ea mov %rbp,%rdx + 416c6a: 4c 89 e6 mov %r12,%rsi + 416c6d: 48 89 df mov %rbx,%rdi + 416c70: e8 2b e1 ff ff callq 414da0 <_IO_setb> + 416c75: 4d 85 ed test %r13,%r13 + 416c78: 4c 89 63 20 mov %r12,0x20(%rbx) + 416c7c: 4c 89 63 18 mov %r12,0x18(%rbx) + 416c80: 4c 89 63 08 mov %r12,0x8(%rbx) + 416c84: 74 42 je 416cc8 <_IO_str_init_static_internal+0x88> + 416c86: 4c 89 6b 28 mov %r13,0x28(%rbx) + 416c8a: 48 89 6b 30 mov %rbp,0x30(%rbx) + 416c8e: 4c 89 6b 10 mov %r13,0x10(%rbx) + 416c92: 48 c7 83 e0 00 00 00 movq $0x0,0xe0(%rbx) + 416c99: 00 00 00 00 + 416c9d: 48 83 c4 08 add $0x8,%rsp + 416ca1: 5b pop %rbx + 416ca2: 5d pop %rbp + 416ca3: 41 5c pop %r12 + 416ca5: 41 5d pop %r13 + 416ca7: c3 retq + 416ca8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 416caf: 00 + 416cb0: 48 01 f2 add %rsi,%rdx + 416cb3: 48 c7 c5 ff ff ff ff mov $0xffffffffffffffff,%rbp + 416cba: 48 39 d6 cmp %rdx,%rsi + 416cbd: 48 0f 42 ea cmovb %rdx,%rbp + 416cc1: eb a2 jmp 416c65 <_IO_str_init_static_internal+0x25> + 416cc3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 416cc8: 4c 89 63 28 mov %r12,0x28(%rbx) + 416ccc: 4c 89 63 30 mov %r12,0x30(%rbx) + 416cd0: 48 89 6b 10 mov %rbp,0x10(%rbx) + 416cd4: eb bc jmp 416c92 <_IO_str_init_static_internal+0x52> + 416cd6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 416cdd: 00 00 00 + +0000000000416ce0 <_IO_str_init_static>: + 416ce0: 41 55 push %r13 + 416ce2: 41 54 push %r12 + 416ce4: 49 89 cd mov %rcx,%r13 + 416ce7: 55 push %rbp + 416ce8: 53 push %rbx + 416ce9: bb ff ff ff ff mov $0xffffffff,%ebx + 416cee: 48 89 fd mov %rdi,%rbp + 416cf1: 49 89 f4 mov %rsi,%r12 + 416cf4: 48 83 ec 08 sub $0x8,%rsp + 416cf8: 85 d2 test %edx,%edx + 416cfa: 0f 48 d3 cmovs %ebx,%edx + 416cfd: 48 63 d2 movslq %edx,%rdx + 416d00: 48 85 d2 test %rdx,%rdx + 416d03: 75 53 jne 416d58 <_IO_str_init_static+0x78> + 416d05: 31 f6 xor %esi,%esi + 416d07: 4c 89 e7 mov %r12,%rdi + 416d0a: e8 c1 5c 01 00 callq 42c9d0 <__rawmemchr> + 416d0f: 48 89 c3 mov %rax,%rbx + 416d12: 31 c9 xor %ecx,%ecx + 416d14: 48 89 da mov %rbx,%rdx + 416d17: 4c 89 e6 mov %r12,%rsi + 416d1a: 48 89 ef mov %rbp,%rdi + 416d1d: e8 7e e0 ff ff callq 414da0 <_IO_setb> + 416d22: 4d 85 ed test %r13,%r13 + 416d25: 4c 89 65 20 mov %r12,0x20(%rbp) + 416d29: 4c 89 65 18 mov %r12,0x18(%rbp) + 416d2d: 4c 89 65 08 mov %r12,0x8(%rbp) + 416d31: 74 3d je 416d70 <_IO_str_init_static+0x90> + 416d33: 4c 89 6d 28 mov %r13,0x28(%rbp) + 416d37: 48 89 5d 30 mov %rbx,0x30(%rbp) + 416d3b: 4c 89 6d 10 mov %r13,0x10(%rbp) + 416d3f: 48 c7 85 e0 00 00 00 movq $0x0,0xe0(%rbp) + 416d46: 00 00 00 00 + 416d4a: 48 83 c4 08 add $0x8,%rsp + 416d4e: 5b pop %rbx + 416d4f: 5d pop %rbp + 416d50: 41 5c pop %r12 + 416d52: 41 5d pop %r13 + 416d54: c3 retq + 416d55: 0f 1f 00 nopl (%rax) + 416d58: 48 01 f2 add %rsi,%rdx + 416d5b: 48 c7 c3 ff ff ff ff mov $0xffffffffffffffff,%rbx + 416d62: 48 39 d6 cmp %rdx,%rsi + 416d65: 48 0f 42 da cmovb %rdx,%rbx + 416d69: eb a7 jmp 416d12 <_IO_str_init_static+0x32> + 416d6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 416d70: 4c 89 65 28 mov %r12,0x28(%rbp) + 416d74: 4c 89 65 30 mov %r12,0x30(%rbp) + 416d78: 48 89 5d 10 mov %rbx,0x10(%rbp) + 416d7c: eb c1 jmp 416d3f <_IO_str_init_static+0x5f> + 416d7e: 66 90 xchg %ax,%ax + +0000000000416d80 <_IO_str_init_readonly>: + 416d80: 41 54 push %r12 + 416d82: 85 d2 test %edx,%edx + 416d84: 55 push %rbp + 416d85: 53 push %rbx + 416d86: bb ff ff ff ff mov $0xffffffff,%ebx + 416d8b: 48 89 fd mov %rdi,%rbp + 416d8e: 0f 48 d3 cmovs %ebx,%edx + 416d91: 49 89 f4 mov %rsi,%r12 + 416d94: 48 63 d2 movslq %edx,%rdx + 416d97: 48 85 d2 test %rdx,%rdx + 416d9a: 75 4c jne 416de8 <_IO_str_init_readonly+0x68> + 416d9c: 31 f6 xor %esi,%esi + 416d9e: 4c 89 e7 mov %r12,%rdi + 416da1: e8 2a 5c 01 00 callq 42c9d0 <__rawmemchr> + 416da6: 48 89 c3 mov %rax,%rbx + 416da9: 48 89 da mov %rbx,%rdx + 416dac: 4c 89 e6 mov %r12,%rsi + 416daf: 48 89 ef mov %rbp,%rdi + 416db2: 31 c9 xor %ecx,%ecx + 416db4: e8 e7 df ff ff callq 414da0 <_IO_setb> + 416db9: 83 4d 00 08 orl $0x8,0x0(%rbp) + 416dbd: 4c 89 65 20 mov %r12,0x20(%rbp) + 416dc1: 4c 89 65 18 mov %r12,0x18(%rbp) + 416dc5: 4c 89 65 08 mov %r12,0x8(%rbp) + 416dc9: 4c 89 65 28 mov %r12,0x28(%rbp) + 416dcd: 4c 89 65 30 mov %r12,0x30(%rbp) + 416dd1: 48 89 5d 10 mov %rbx,0x10(%rbp) + 416dd5: 48 c7 85 e0 00 00 00 movq $0x0,0xe0(%rbp) + 416ddc: 00 00 00 00 + 416de0: 5b pop %rbx + 416de1: 5d pop %rbp + 416de2: 41 5c pop %r12 + 416de4: c3 retq + 416de5: 0f 1f 00 nopl (%rax) + 416de8: 48 01 f2 add %rsi,%rdx + 416deb: 48 c7 c3 ff ff ff ff mov $0xffffffffffffffff,%rbx + 416df2: 48 39 d6 cmp %rdx,%rsi + 416df5: 48 0f 42 da cmovb %rdx,%rbx + 416df9: eb ae jmp 416da9 <_IO_str_init_readonly+0x29> + 416dfb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000416e00 <_IO_str_count>: + 416e00: 48 8b 47 28 mov 0x28(%rdi),%rax + 416e04: 48 39 47 10 cmp %rax,0x10(%rdi) + 416e08: 48 0f 43 47 10 cmovae 0x10(%rdi),%rax + 416e0d: 48 2b 47 18 sub 0x18(%rdi),%rax + 416e11: c3 retq + 416e12: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 416e19: 00 00 00 + 416e1c: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000416e20 <__malloc_assert>: + 416e20: 48 83 ec 10 sub $0x10,%rsp + 416e24: 41 89 d1 mov %edx,%r9d + 416e27: 48 8b 15 b2 42 2b 00 mov 0x2b42b2(%rip),%rdx # 6cb0e0 <__progname> + 416e2e: 41 bb 25 67 4b 00 mov $0x4b6725,%r11d + 416e34: 41 ba 6f 52 4b 00 mov $0x4b526f,%r10d + 416e3a: 48 85 c9 test %rcx,%rcx + 416e3d: 49 89 f0 mov %rsi,%r8 + 416e40: 48 89 c8 mov %rcx,%rax + 416e43: 4c 89 de mov %r11,%rsi + 416e46: 49 0f 45 f2 cmovne %r10,%rsi + 416e4a: 49 0f 44 c3 cmove %r11,%rax + 416e4e: 80 3a 00 cmpb $0x0,(%rdx) + 416e51: 4c 89 d9 mov %r11,%rcx + 416e54: 57 push %rdi + 416e55: 56 push %rsi + 416e56: 50 push %rax + 416e57: be 20 23 4a 00 mov $0x4a2320,%esi + 416e5c: 49 0f 45 ca cmovne %r10,%rcx + 416e60: 31 ff xor %edi,%edi + 416e62: 31 c0 xor %eax,%eax + 416e64: e8 27 85 ff ff callq 40f390 <__fxprintf> + 416e69: 48 8b 3d c8 38 2b 00 mov 0x2b38c8(%rip),%rdi # 6ca738 <_IO_stderr> + 416e70: 48 83 c4 20 add $0x20,%rsp + 416e74: e8 c7 88 ff ff callq 40f740 <_IO_fflush> + 416e79: e8 82 6d ff ff callq 40dc00 + 416e7e: 66 90 xchg %ax,%ax + +0000000000416e80 : + 416e80: 48 01 fe add %rdi,%rsi + 416e83: 41 54 push %r12 + 416e85: 48 8b 05 f4 42 2b 00 mov 0x2b42f4(%rip),%rax # 6cb180 <_dl_pagesize> + 416e8c: 48 81 fe ff 7f 00 00 cmp $0x7fff,%rsi + 416e93: 55 push %rbp + 416e94: 53 push %rbx + 416e95: 0f 86 f5 00 00 00 jbe 416f90 + 416e9b: 48 81 fe 00 00 00 04 cmp $0x4000000,%rsi + 416ea2: 0f 87 f8 00 00 00 ja 416fa0 + 416ea8: 48 8b 3d 61 57 2b 00 mov 0x2b5761(%rip),%rdi # 6cc610 + 416eaf: 48 8d 6c 06 ff lea -0x1(%rsi,%rax,1),%rbp + 416eb4: 48 f7 d8 neg %rax + 416eb7: 48 21 c5 and %rax,%rbp + 416eba: 48 85 ff test %rdi,%rdi + 416ebd: 74 6e je 416f2d + 416ebf: 45 31 c9 xor %r9d,%r9d + 416ec2: 31 d2 xor %edx,%edx + 416ec4: 41 b8 ff ff ff ff mov $0xffffffff,%r8d + 416eca: b9 22 40 00 00 mov $0x4022,%ecx + 416ecf: be 00 00 00 04 mov $0x4000000,%esi + 416ed4: e8 17 8d 02 00 callq 43fbf0 <__mmap> + 416ed9: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 416edd: 48 89 c3 mov %rax,%rbx + 416ee0: 48 c7 05 25 57 2b 00 movq $0x0,0x2b5725(%rip) # 6cc610 + 416ee7: 00 00 00 00 + 416eeb: 74 40 je 416f2d + 416eed: a9 ff ff ff 03 test $0x3ffffff,%eax + 416ef2: 75 2c jne 416f20 + 416ef4: ba 03 00 00 00 mov $0x3,%edx + 416ef9: 48 89 ee mov %rbp,%rsi + 416efc: 48 89 df mov %rbx,%rdi + 416eff: e8 cc 8d 02 00 callq 43fcd0 <__mprotect> + 416f04: 85 c0 test %eax,%eax + 416f06: 0f 85 fc 00 00 00 jne 417008 + 416f0c: 48 89 6b 10 mov %rbp,0x10(%rbx) + 416f10: 48 89 6b 18 mov %rbp,0x18(%rbx) + 416f14: 90 nop + 416f15: 48 89 d8 mov %rbx,%rax + 416f18: 5b pop %rbx + 416f19: 5d pop %rbp + 416f1a: 41 5c pop %r12 + 416f1c: c3 retq + 416f1d: 0f 1f 00 nopl (%rax) + 416f20: be 00 00 00 04 mov $0x4000000,%esi + 416f25: 48 89 c7 mov %rax,%rdi + 416f28: e8 83 8d 02 00 callq 43fcb0 <__munmap> + 416f2d: 45 31 c9 xor %r9d,%r9d + 416f30: 31 d2 xor %edx,%edx + 416f32: 31 ff xor %edi,%edi + 416f34: 41 b8 ff ff ff ff mov $0xffffffff,%r8d + 416f3a: b9 22 40 00 00 mov $0x4022,%ecx + 416f3f: be 00 00 00 08 mov $0x8000000,%esi + 416f44: e8 a7 8c 02 00 callq 43fbf0 <__mmap> + 416f49: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 416f4d: 0f 84 85 00 00 00 je 416fd8 + 416f53: 48 8d 98 ff ff ff 03 lea 0x3ffffff(%rax),%rbx + 416f5a: 48 81 e3 00 00 00 fc and $0xfffffffffc000000,%rbx + 416f61: 49 89 dc mov %rbx,%r12 + 416f64: 49 29 c4 sub %rax,%r12 + 416f67: 75 57 jne 416fc0 + 416f69: 48 8d bb 00 00 00 04 lea 0x4000000(%rbx),%rdi + 416f70: 48 89 3d 99 56 2b 00 mov %rdi,0x2b5699(%rip) # 6cc610 + 416f77: be 00 00 00 04 mov $0x4000000,%esi + 416f7c: 4c 29 e6 sub %r12,%rsi + 416f7f: e8 2c 8d 02 00 callq 43fcb0 <__munmap> + 416f84: e9 6b ff ff ff jmpq 416ef4 + 416f89: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 416f90: be 00 80 00 00 mov $0x8000,%esi + 416f95: e9 0e ff ff ff jmpq 416ea8 + 416f9a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 416fa0: 48 81 ff 00 00 00 04 cmp $0x4000000,%rdi + 416fa7: be 00 00 00 04 mov $0x4000000,%esi + 416fac: 0f 86 f6 fe ff ff jbe 416ea8 + 416fb2: 31 c0 xor %eax,%eax + 416fb4: e9 5f ff ff ff jmpq 416f18 + 416fb9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 416fc0: 48 89 c7 mov %rax,%rdi + 416fc3: 4c 89 e6 mov %r12,%rsi + 416fc6: e8 e5 8c 02 00 callq 43fcb0 <__munmap> + 416fcb: 48 8d bb 00 00 00 04 lea 0x4000000(%rbx),%rdi + 416fd2: eb a3 jmp 416f77 + 416fd4: 0f 1f 40 00 nopl 0x0(%rax) + 416fd8: 45 31 c9 xor %r9d,%r9d + 416fdb: 31 d2 xor %edx,%edx + 416fdd: 31 ff xor %edi,%edi + 416fdf: 41 89 c0 mov %eax,%r8d + 416fe2: b9 22 40 00 00 mov $0x4022,%ecx + 416fe7: be 00 00 00 04 mov $0x4000000,%esi + 416fec: e8 ff 8b 02 00 callq 43fbf0 <__mmap> + 416ff1: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 416ff5: 48 89 c3 mov %rax,%rbx + 416ff8: 74 b8 je 416fb2 + 416ffa: a9 ff ff ff 03 test $0x3ffffff,%eax + 416fff: 0f 84 ef fe ff ff je 416ef4 + 417005: 0f 1f 00 nopl (%rax) + 417008: be 00 00 00 04 mov $0x4000000,%esi + 41700d: 48 89 df mov %rbx,%rdi + 417010: e8 9b 8c 02 00 callq 43fcb0 <__munmap> + 417015: 31 c0 xor %eax,%eax + 417017: e9 fc fe ff ff jmpq 416f18 + 41701c: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000417020 : + 417020: 41 55 push %r13 + 417022: 41 54 push %r12 + 417024: 55 push %rbp + 417025: 53 push %rbx + 417026: 48 83 ec 08 sub $0x8,%rsp + 41702a: 48 8b 57 08 mov 0x8(%rdi),%rdx + 41702e: 48 8b 05 4b 41 2b 00 mov 0x2b414b(%rip),%rax # 6cb180 <_dl_pagesize> + 417035: 48 8b 2f mov (%rdi),%rbp + 417038: 49 89 d5 mov %rdx,%r13 + 41703b: 49 83 e5 f8 and $0xfffffffffffffff8,%r13 + 41703f: 83 e2 02 and $0x2,%edx + 417042: 0f 84 c5 00 00 00 je 41710d + 417048: 4e 8d 64 2d 00 lea 0x0(%rbp,%r13,1),%r12 + 41704d: 48 8d 50 ff lea -0x1(%rax),%rdx + 417051: 4c 85 e2 test %r12,%rdx + 417054: 0f 85 9a 00 00 00 jne 4170f4 + 41705a: 48 8d 5c 28 07 lea 0x7(%rax,%rbp,1),%rbx + 41705f: 48 f7 d8 neg %rax + 417062: 48 01 f3 add %rsi,%rbx + 417065: 48 21 c3 and %rax,%rbx + 417068: 49 39 dc cmp %rbx,%r12 + 41706b: 74 6f je 4170dc + 41706d: 48 29 ef sub %rbp,%rdi + 417070: 31 c0 xor %eax,%eax + 417072: b9 01 00 00 00 mov $0x1,%ecx + 417077: 48 89 da mov %rbx,%rdx + 41707a: 4c 89 e6 mov %r12,%rsi + 41707d: e8 ce b4 02 00 callq 442550 <__mremap> + 417082: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 417086: 74 68 je 4170f0 + 417088: 48 8d 3c 28 lea (%rax,%rbp,1),%rdi + 41708c: 40 f6 c7 0f test $0xf,%dil + 417090: 0f 85 a9 00 00 00 jne 41713f + 417096: 48 3b 2f cmp (%rdi),%rbp + 417099: 0f 85 87 00 00 00 jne 417126 + 41709f: 48 89 d8 mov %rbx,%rax + 4170a2: 48 29 e8 sub %rbp,%rax + 4170a5: 48 83 c8 02 or $0x2,%rax + 4170a9: 48 89 47 08 mov %rax,0x8(%rdi) + 4170ad: 48 89 d8 mov %rbx,%rax + 4170b0: 4c 29 e8 sub %r13,%rax + 4170b3: 48 29 e8 sub %rbp,%rax + 4170b6: f0 48 0f c1 05 19 37 lock xadd %rax,0x2b3719(%rip) # 6ca7d8 + 4170bd: 2b 00 + 4170bf: 4c 29 e3 sub %r12,%rbx + 4170c2: 48 01 c3 add %rax,%rbx + 4170c5: 48 8b 05 14 37 2b 00 mov 0x2b3714(%rip),%rax # 6ca7e0 + 4170cc: 48 39 c3 cmp %rax,%rbx + 4170cf: 76 0b jbe 4170dc + 4170d1: f0 48 0f b1 1d 06 37 lock cmpxchg %rbx,0x2b3706(%rip) # 6ca7e0 + 4170d8: 2b 00 + 4170da: 75 e9 jne 4170c5 + 4170dc: 48 89 f8 mov %rdi,%rax + 4170df: 48 83 c4 08 add $0x8,%rsp + 4170e3: 5b pop %rbx + 4170e4: 5d pop %rbp + 4170e5: 41 5c pop %r12 + 4170e7: 41 5d pop %r13 + 4170e9: c3 retq + 4170ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4170f0: 31 c0 xor %eax,%eax + 4170f2: eb eb jmp 4170df + 4170f4: b9 68 2e 4a 00 mov $0x4a2e68,%ecx + 4170f9: ba 34 0b 00 00 mov $0xb34,%edx + 4170fe: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 417103: bf 48 23 4a 00 mov $0x4a2348,%edi + 417108: e8 13 fd ff ff callq 416e20 <__malloc_assert> + 41710d: b9 68 2e 4a 00 mov $0x4a2e68,%ecx + 417112: ba 33 0b 00 00 mov $0xb33,%edx + 417117: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41711c: bf d1 1f 4a 00 mov $0x4a1fd1,%edi + 417121: e8 fa fc ff ff callq 416e20 <__malloc_assert> + 417126: b9 68 2e 4a 00 mov $0x4a2e68,%ecx + 41712b: ba 47 0b 00 00 mov $0xb47,%edx + 417130: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 417135: bf 01 20 4a 00 mov $0x4a2001,%edi + 41713a: e8 e1 fc ff ff callq 416e20 <__malloc_assert> + 41713f: b9 68 2e 4a 00 mov $0x4a2e68,%ecx + 417144: ba 45 0b 00 00 mov $0xb45,%edx + 417149: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41714e: bf e6 1f 4a 00 mov $0x4a1fe6,%edi + 417153: e8 c8 fc ff ff callq 416e20 <__malloc_assert> + 417158: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41715f: 00 + +0000000000417160 : + 417160: 48 83 ec 08 sub $0x8,%rsp + 417164: 48 8b 15 bd 54 2b 00 mov 0x2b54bd(%rip),%rdx # 6cc628 + 41716b: 49 c7 c1 d8 ff ff ff mov $0xffffffffffffffd8,%r9 + 417172: 48 85 d2 test %rdx,%rdx + 417175: 64 4d 8b 01 mov %fs:(%r9),%r8 + 417179: 0f 84 05 01 00 00 je 417284 + 41717f: be 01 00 00 00 mov $0x1,%esi + 417184: 31 c0 xor %eax,%eax + 417186: 83 3d 2f 60 2b 00 00 cmpl $0x0,0x2b602f(%rip) # 6cd1bc <__libc_multiple_threads> + 41718d: 74 0c je 41719b + 41718f: f0 0f b1 35 99 54 2b lock cmpxchg %esi,0x2b5499(%rip) # 6cc630 + 417196: 00 + 417197: 75 0b jne 4171a4 + 417199: eb 23 jmp 4171be + 41719b: 0f b1 35 8e 54 2b 00 cmpxchg %esi,0x2b548e(%rip) # 6cc630 + 4171a2: 74 1a je 4171be + 4171a4: 48 8d 3d 85 54 2b 00 lea 0x2b5485(%rip),%rdi # 6cc630 + 4171ab: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4171b2: e8 19 b4 02 00 callq 4425d0 <__lll_lock_wait_private> + 4171b7: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4171be: 48 8b 15 63 54 2b 00 mov 0x2b5463(%rip),%rdx # 6cc628 + 4171c5: 48 85 d2 test %rdx,%rdx + 4171c8: 74 47 je 417211 + 4171ca: 48 83 ba 78 08 00 00 cmpq $0x0,0x878(%rdx) + 4171d1: 00 + 4171d2: 48 8b 82 70 08 00 00 mov 0x870(%rdx),%rax + 4171d9: 48 89 05 48 54 2b 00 mov %rax,0x2b5448(%rip) # 6cc628 + 4171e0: 0f 85 a6 00 00 00 jne 41728c + 4171e6: 4d 85 c0 test %r8,%r8 + 4171e9: 48 c7 82 78 08 00 00 movq $0x1,0x878(%rdx) + 4171f0: 01 00 00 00 + 4171f4: 74 1b je 417211 + 4171f6: 49 8b 80 78 08 00 00 mov 0x878(%r8),%rax + 4171fd: 48 85 c0 test %rax,%rax + 417200: 0f 84 9f 00 00 00 je 4172a5 + 417206: 48 83 e8 01 sub $0x1,%rax + 41720a: 49 89 80 78 08 00 00 mov %rax,0x878(%r8) + 417211: 83 3d a4 5f 2b 00 00 cmpl $0x0,0x2b5fa4(%rip) # 6cd1bc <__libc_multiple_threads> + 417218: 74 0b je 417225 + 41721a: f0 ff 0d 0f 54 2b 00 lock decl 0x2b540f(%rip) # 6cc630 + 417221: 75 0a jne 41722d + 417223: eb 22 jmp 417247 + 417225: ff 0d 05 54 2b 00 decl 0x2b5405(%rip) # 6cc630 + 41722b: 74 1a je 417247 + 41722d: 48 8d 3d fc 53 2b 00 lea 0x2b53fc(%rip),%rdi # 6cc630 + 417234: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41723b: e8 c0 b3 02 00 callq 442600 <__lll_unlock_wake_private> + 417240: 48 81 c4 80 00 00 00 add $0x80,%rsp + 417247: 48 85 d2 test %rdx,%rdx + 41724a: 74 38 je 417284 + 41724c: 90 nop + 41724d: be 01 00 00 00 mov $0x1,%esi + 417252: 31 c0 xor %eax,%eax + 417254: 83 3d 61 5f 2b 00 00 cmpl $0x0,0x2b5f61(%rip) # 6cd1bc <__libc_multiple_threads> + 41725b: 74 08 je 417265 + 41725d: f0 0f b1 32 lock cmpxchg %esi,(%rdx) + 417261: 75 07 jne 41726a + 417263: eb 1b jmp 417280 + 417265: 0f b1 32 cmpxchg %esi,(%rdx) + 417268: 74 16 je 417280 + 41726a: 48 8d 3a lea (%rdx),%rdi + 41726d: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 417274: e8 57 b3 02 00 callq 4425d0 <__lll_lock_wait_private> + 417279: 48 81 c4 80 00 00 00 add $0x80,%rsp + 417280: 64 49 89 11 mov %rdx,%fs:(%r9) + 417284: 48 89 d0 mov %rdx,%rax + 417287: 48 83 c4 08 add $0x8,%rsp + 41728b: c3 retq + 41728c: b9 38 2e 4a 00 mov $0x4a2e38,%ecx + 417291: ba d4 02 00 00 mov $0x2d4,%edx + 417296: be a8 1f 4a 00 mov $0x4a1fa8,%esi + 41729b: bf 1a 20 4a 00 mov $0x4a201a,%edi + 4172a0: e8 7b fb ff ff callq 416e20 <__malloc_assert> + 4172a5: e8 29 92 fe ff callq 4004d3 + 4172aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +00000000004172b0 : + 4172b0: 41 56 push %r14 + 4172b2: 41 55 push %r13 + 4172b4: 41 54 push %r12 + 4172b6: 55 push %rbp + 4172b7: 49 89 f4 mov %rsi,%r12 + 4172ba: 53 push %rbx + 4172bb: 89 fb mov %edi,%ebx + 4172bd: 48 89 d7 mov %rdx,%rdi + 4172c0: 48 83 ec 20 sub $0x20,%rsp + 4172c4: 48 85 c9 test %rcx,%rcx + 4172c7: 74 04 je 4172cd + 4172c9: 83 49 04 04 orl $0x4,0x4(%rcx) + 4172cd: 89 d8 mov %ebx,%eax + 4172cf: 83 e0 05 and $0x5,%eax + 4172d2: 83 f8 05 cmp $0x5,%eax + 4172d5: 0f 84 a5 00 00 00 je 417380 + 4172db: f6 c3 01 test $0x1,%bl + 4172de: 75 20 jne 417300 + 4172e0: 83 e3 02 and $0x2,%ebx + 4172e3: 0f 85 b0 00 00 00 jne 417399 + 4172e9: 48 83 c4 20 add $0x20,%rsp + 4172ed: 5b pop %rbx + 4172ee: 5d pop %rbp + 4172ef: 41 5c pop %r12 + 4172f1: 41 5d pop %r13 + 4172f3: 41 5e pop %r14 + 4172f5: c3 retq + 4172f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4172fd: 00 00 00 + 417300: 48 8d 74 24 10 lea 0x10(%rsp),%rsi + 417305: 31 c9 xor %ecx,%ecx + 417307: ba 10 00 00 00 mov $0x10,%edx + 41730c: c6 44 24 10 00 movb $0x0,0x10(%rsp) + 417311: e8 9a ab 03 00 callq 451eb0 <_itoa_word> + 417316: 48 39 e0 cmp %rsp,%rax + 417319: 48 89 c5 mov %rax,%rbp + 41731c: 76 25 jbe 417343 + 41731e: 48 89 c2 mov %rax,%rdx + 417321: 48 89 c7 mov %rax,%rdi + 417324: be 30 00 00 00 mov $0x30,%esi + 417329: 48 29 e2 sub %rsp,%rdx + 41732c: 4c 8d 70 ff lea -0x1(%rax),%r14 + 417330: 48 29 d7 sub %rdx,%rdi + 417333: e8 18 90 fe ff callq 400350 <__rela_iplt_end+0x88> + 417338: 48 8d 44 24 ff lea -0x1(%rsp),%rax + 41733d: 4c 29 f0 sub %r14,%rax + 417340: 48 01 c5 add %rax,%rbp + 417343: 48 8b 05 76 5f 2b 00 mov 0x2b5f76(%rip),%rax # 6cd2c0 <__libc_argv> + 41734a: ba 38 20 4a 00 mov $0x4a2038,%edx + 41734f: 49 89 e8 mov %rbp,%r8 + 417352: 4c 89 e1 mov %r12,%rcx + 417355: be a8 23 4a 00 mov $0x4a23a8,%esi + 41735a: 48 8b 00 mov (%rax),%rax + 41735d: 48 85 c0 test %rax,%rax + 417360: 48 0f 45 d0 cmovne %rax,%rdx + 417364: 83 e3 02 and $0x2,%ebx + 417367: 31 c0 xor %eax,%eax + 417369: 89 df mov %ebx,%edi + 41736b: e8 50 a2 ff ff callq 4115c0 <__libc_message> + 417370: 48 83 c4 20 add $0x20,%rsp + 417374: 5b pop %rbx + 417375: 5d pop %rbp + 417376: 41 5c pop %r12 + 417378: 41 5d pop %r13 + 41737a: 41 5e pop %r14 + 41737c: c3 retq + 41737d: 0f 1f 00 nopl (%rax) + 417380: 83 e3 02 and $0x2,%ebx + 417383: 4c 89 e2 mov %r12,%rdx + 417386: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41738b: 89 df mov %ebx,%edi + 41738d: 31 c0 xor %eax,%eax + 41738f: e8 2c a2 ff ff callq 4115c0 <__libc_message> + 417394: e9 50 ff ff ff jmpq 4172e9 + 417399: e8 62 68 ff ff callq 40dc00 + 41739e: 66 90 xchg %ax,%ax + +00000000004173a0 : + 4173a0: 48 8b 06 mov (%rsi),%rax + 4173a3: 41 56 push %r14 + 4173a5: 41 55 push %r13 + 4173a7: 41 54 push %r12 + 4173a9: 55 push %rbp + 4173aa: 53 push %rbx + 4173ab: 48 8b 68 08 mov 0x8(%rax),%rbp + 4173af: 48 83 e5 f8 and $0xfffffffffffffff8,%rbp + 4173b3: 48 8d 45 df lea -0x21(%rbp),%rax + 4173b7: 48 39 f8 cmp %rdi,%rax + 4173ba: 76 12 jbe 4173ce + 4173bc: 48 8b 1d bd 3d 2b 00 mov 0x2b3dbd(%rip),%rbx # 6cb180 <_dl_pagesize> + 4173c3: 48 29 f8 sub %rdi,%rax + 4173c6: 48 f7 db neg %rbx + 4173c9: 48 21 c3 and %rax,%rbx + 4173cc: 75 12 jne 4173e0 + 4173ce: 31 c0 xor %eax,%eax + 4173d0: 5b pop %rbx + 4173d1: 5d pop %rbp + 4173d2: 41 5c pop %r12 + 4173d4: 41 5d pop %r13 + 4173d6: 41 5e pop %r14 + 4173d8: c3 retq + 4173d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4173e0: 49 89 f4 mov %rsi,%r12 + 4173e3: 31 ff xor %edi,%edi + 4173e5: 49 89 d5 mov %rdx,%r13 + 4173e8: ff 15 a2 3c 2b 00 callq *0x2b3ca2(%rip) # 6cb090 <__morecore> + 4173ee: 49 89 c6 mov %rax,%r14 + 4173f1: 48 89 e8 mov %rbp,%rax + 4173f4: 49 03 04 24 add (%r12),%rax + 4173f8: 49 39 c6 cmp %rax,%r14 + 4173fb: 75 d1 jne 4173ce + 4173fd: 48 89 df mov %rbx,%rdi + 417400: 48 f7 df neg %rdi + 417403: ff 15 87 3c 2b 00 callq *0x2b3c87(%rip) # 6cb090 <__morecore> + 417409: 48 8b 05 d0 51 2b 00 mov 0x2b51d0(%rip),%rax # 6cc5e0 <__after_morecore_hook> + 417410: 48 85 c0 test %rax,%rax + 417413: 75 2d jne 417442 + 417415: 31 ff xor %edi,%edi + 417417: ff 15 73 3c 2b 00 callq *0x2b3c73(%rip) # 6cb090 <__morecore> + 41741d: 90 nop + 41741e: 48 85 c0 test %rax,%rax + 417421: 74 ab je 4173ce + 417423: 49 29 c6 sub %rax,%r14 + 417426: 74 a6 je 4173ce + 417428: 49 8b 04 24 mov (%r12),%rax + 41742c: 4c 29 f5 sub %r14,%rbp + 41742f: 4d 29 75 00 sub %r14,0x0(%r13) + 417433: 48 83 cd 01 or $0x1,%rbp + 417437: 48 89 68 08 mov %rbp,0x8(%rax) + 41743b: b8 01 00 00 00 mov $0x1,%eax + 417440: eb 8e jmp 4173d0 + 417442: ff d0 callq *%rax + 417444: eb cf jmp 417415 + 417446: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41744d: 00 00 00 + +0000000000417450 : + 417450: 55 push %rbp + 417451: 53 push %rbx + 417452: 48 89 fd mov %rdi,%rbp + 417455: 48 89 f3 mov %rsi,%rbx + 417458: 48 83 ec 08 sub $0x8,%rsp + 41745c: 48 8b 05 9d 51 2b 00 mov 0x2b519d(%rip),%rax # 6cc600 + 417463: 48 85 c0 test %rax,%rax + 417466: 75 17 jne 41747f + 417468: 48 8b 05 51 33 2b 00 mov 0x2b3351(%rip),%rax # 6ca7c0 + 41746f: 48 85 c0 test %rax,%rax + 417472: 0f 84 00 02 00 00 je 417678 + 417478: 48 89 05 81 51 2b 00 mov %rax,0x2b5181(%rip) # 6cc600 + 41747f: 48 8b 15 e2 32 2b 00 mov 0x2b32e2(%rip),%rdx # 6ca768 + 417486: 48 83 e8 01 sub $0x1,%rax + 41748a: 48 39 d0 cmp %rdx,%rax + 41748d: 0f 83 50 02 00 00 jae 4176e3 + 417493: 48 8b 15 5e 51 2b 00 mov 0x2b515e(%rip),%rdx # 6cc5f8 + 41749a: 48 85 d2 test %rdx,%rdx + 41749d: 0f 84 2b 02 00 00 je 4176ce + 4174a3: 48 89 d1 mov %rdx,%rcx + 4174a6: be 01 00 00 00 mov $0x1,%esi + 4174ab: eb 33 jmp 4174e0 + 4174ad: 0f 1f 00 nopl (%rax) + 4174b0: 83 3d 05 5d 2b 00 00 cmpl $0x0,0x2b5d05(%rip) # 6cd1bc <__libc_multiple_threads> + 4174b7: 74 06 je 4174bf + 4174b9: f0 0f b1 32 lock cmpxchg %esi,(%rdx) + 4174bd: eb 03 jmp 4174c2 + 4174bf: 0f b1 32 cmpxchg %esi,(%rdx) + 4174c2: 85 c0 test %eax,%eax + 4174c4: 0f 84 95 00 00 00 je 41755f + 4174ca: 48 8b 05 27 51 2b 00 mov 0x2b5127(%rip),%rax # 6cc5f8 + 4174d1: 48 8b 92 68 08 00 00 mov 0x868(%rdx),%rdx + 4174d8: 48 39 c2 cmp %rax,%rdx + 4174db: 48 89 c1 mov %rax,%rcx + 4174de: 74 1a je 4174fa + 4174e0: 8b 42 04 mov 0x4(%rdx),%eax + 4174e3: 83 e0 04 and $0x4,%eax + 4174e6: 74 c8 je 4174b0 + 4174e8: 48 8b 92 68 08 00 00 mov 0x868(%rdx),%rdx + 4174ef: 48 89 c8 mov %rcx,%rax + 4174f2: 48 89 c1 mov %rax,%rcx + 4174f5: 48 39 c2 cmp %rax,%rdx + 4174f8: 75 e6 jne 4174e0 + 4174fa: 48 39 c3 cmp %rax,%rbx + 4174fd: 0f 84 13 02 00 00 je 417716 + 417503: 48 89 c2 mov %rax,%rdx + 417506: eb 18 jmp 417520 + 417508: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41750f: 00 + 417510: 48 8b 92 68 08 00 00 mov 0x868(%rdx),%rdx + 417517: 48 39 c2 cmp %rax,%rdx + 41751a: 0f 84 88 01 00 00 je 4176a8 + 417520: f6 42 04 04 testb $0x4,0x4(%rdx) + 417524: 75 ea jne 417510 + 417526: 48 39 d3 cmp %rdx,%rbx + 417529: 74 e5 je 417510 + 41752b: 90 nop + 41752c: be 01 00 00 00 mov $0x1,%esi + 417531: 31 c0 xor %eax,%eax + 417533: 83 3d 82 5c 2b 00 00 cmpl $0x0,0x2b5c82(%rip) # 6cd1bc <__libc_multiple_threads> + 41753a: 74 08 je 417544 + 41753c: f0 0f b1 32 lock cmpxchg %esi,(%rdx) + 417540: 75 07 jne 417549 + 417542: eb 1b jmp 41755f + 417544: 0f b1 32 cmpxchg %esi,(%rdx) + 417547: 74 16 je 41755f + 417549: 48 8d 3a lea (%rdx),%rdi + 41754c: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 417553: e8 78 b0 02 00 callq 4425d0 <__lll_lock_wait_private> + 417558: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41755f: 49 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%r8 + 417566: be 01 00 00 00 mov $0x1,%esi + 41756b: 31 c0 xor %eax,%eax + 41756d: 64 4d 8b 08 mov %fs:(%r8),%r9 + 417571: 83 3d 44 5c 2b 00 00 cmpl $0x0,0x2b5c44(%rip) # 6cd1bc <__libc_multiple_threads> + 417578: 74 0c je 417586 + 41757a: f0 0f b1 35 ae 50 2b lock cmpxchg %esi,0x2b50ae(%rip) # 6cc630 + 417581: 00 + 417582: 75 0b jne 41758f + 417584: eb 23 jmp 4175a9 + 417586: 0f b1 35 a3 50 2b 00 cmpxchg %esi,0x2b50a3(%rip) # 6cc630 + 41758d: 74 1a je 4175a9 + 41758f: 48 8d 3d 9a 50 2b 00 lea 0x2b509a(%rip),%rdi # 6cc630 + 417596: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41759d: e8 2e b0 02 00 callq 4425d0 <__lll_lock_wait_private> + 4175a2: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4175a9: 4d 85 c9 test %r9,%r9 + 4175ac: 74 1b je 4175c9 + 4175ae: 49 8b 81 78 08 00 00 mov 0x878(%r9),%rax + 4175b5: 48 85 c0 test %rax,%rax + 4175b8: 0f 84 ff 03 00 00 je 4179bd + 4175be: 48 83 e8 01 sub $0x1,%rax + 4175c2: 49 89 81 78 08 00 00 mov %rax,0x878(%r9) + 4175c9: 48 8b 0d 58 50 2b 00 mov 0x2b5058(%rip),%rcx # 6cc628 + 4175d0: 48 85 c9 test %rcx,%rcx + 4175d3: 74 41 je 417616 + 4175d5: 48 83 b9 78 08 00 00 cmpq $0x0,0x878(%rcx) + 4175dc: 00 + 4175dd: 0f 85 ad 03 00 00 jne 417990 + 4175e3: 48 39 d1 cmp %rdx,%rcx + 4175e6: 75 22 jne 41760a + 4175e8: e9 51 01 00 00 jmpq 41773e + 4175ed: 0f 1f 00 nopl (%rax) + 4175f0: 48 83 b8 78 08 00 00 cmpq $0x0,0x878(%rax) + 4175f7: 00 + 4175f8: 0f 85 92 03 00 00 jne 417990 + 4175fe: 48 39 c2 cmp %rax,%rdx + 417601: 0f 84 b1 00 00 00 je 4176b8 + 417607: 48 89 c1 mov %rax,%rcx + 41760a: 48 8b 81 70 08 00 00 mov 0x870(%rcx),%rax + 417611: 48 85 c0 test %rax,%rax + 417614: 75 da jne 4175f0 + 417616: 48 83 82 78 08 00 00 addq $0x1,0x878(%rdx) + 41761d: 01 + 41761e: 83 3d 97 5b 2b 00 00 cmpl $0x0,0x2b5b97(%rip) # 6cd1bc <__libc_multiple_threads> + 417625: 74 0b je 417632 + 417627: f0 ff 0d 02 50 2b 00 lock decl 0x2b5002(%rip) # 6cc630 + 41762e: 75 0a jne 41763a + 417630: eb 22 jmp 417654 + 417632: ff 0d f8 4f 2b 00 decl 0x2b4ff8(%rip) # 6cc630 + 417638: 74 1a je 417654 + 41763a: 48 8d 3d ef 4f 2b 00 lea 0x2b4fef(%rip),%rdi # 6cc630 + 417641: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 417648: e8 b3 af 02 00 callq 442600 <__lll_unlock_wake_private> + 41764d: 48 81 c4 80 00 00 00 add $0x80,%rsp + 417654: 90 nop + 417655: 48 8b 82 68 08 00 00 mov 0x868(%rdx),%rax + 41765c: 64 49 89 10 mov %rdx,%fs:(%r8) + 417660: 48 89 05 91 4f 2b 00 mov %rax,0x2b4f91(%rip) # 6cc5f8 + 417667: 48 83 c4 08 add $0x8,%rsp + 41766b: 48 89 d0 mov %rdx,%rax + 41766e: 5b pop %rbx + 41766f: 5d pop %rbp + 417670: c3 retq + 417671: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 417678: 48 8b 15 e9 30 2b 00 mov 0x2b30e9(%rip),%rdx # 6ca768 + 41767f: 48 39 15 32 31 2b 00 cmp %rdx,0x2b3132(%rip) # 6ca7b8 + 417686: 0f 83 fa fd ff ff jae 417486 + 41768c: e8 af a9 02 00 callq 442040 <__get_nprocs> + 417691: 85 c0 test %eax,%eax + 417693: 0f 8e 89 00 00 00 jle 417722 + 417699: c1 e0 03 shl $0x3,%eax + 41769c: 48 98 cltq + 41769e: e9 d5 fd ff ff jmpq 417478 + 4176a3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4176a8: 48 83 c4 08 add $0x8,%rsp + 4176ac: 31 d2 xor %edx,%edx + 4176ae: 48 89 d0 mov %rdx,%rax + 4176b1: 5b pop %rbx + 4176b2: 5d pop %rbp + 4176b3: c3 retq + 4176b4: 0f 1f 40 00 nopl 0x0(%rax) + 4176b8: 48 81 c1 70 08 00 00 add $0x870,%rcx + 4176bf: 48 8b 80 70 08 00 00 mov 0x870(%rax),%rax + 4176c6: 48 89 01 mov %rax,(%rcx) + 4176c9: e9 48 ff ff ff jmpq 417616 + 4176ce: 48 c7 05 1f 4f 2b 00 movq $0x6ca800,0x2b4f1f(%rip) # 6cc5f8 + 4176d5: 00 a8 6c 00 + 4176d9: ba 00 a8 6c 00 mov $0x6ca800,%edx + 4176de: e9 c0 fd ff ff jmpq 4174a3 + 4176e3: 48 8d 4a 01 lea 0x1(%rdx),%rcx + 4176e7: 48 89 d0 mov %rdx,%rax + 4176ea: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 + 4176f1: 00 00 + 4176f3: 74 01 je 4176f6 + 4176f5: f0 48 0f b1 0d 6a 30 lock cmpxchg %rcx,0x2b306a(%rip) # 6ca768 + 4176fc: 2b 00 + 4176fe: 48 39 d0 cmp %rdx,%rax + 417701: 74 48 je 41774b + 417703: 48 8b 15 5e 30 2b 00 mov 0x2b305e(%rip),%rdx # 6ca768 + 41770a: 48 8b 05 ef 4e 2b 00 mov 0x2b4eef(%rip),%rax # 6cc600 + 417711: e9 70 fd ff ff jmpq 417486 + 417716: 48 8b 83 68 08 00 00 mov 0x868(%rbx),%rax + 41771d: e9 e1 fd ff ff jmpq 417503 + 417722: 48 c7 05 d3 4e 2b 00 movq $0x10,0x2b4ed3(%rip) # 6cc600 + 417729: 10 00 00 00 + 41772d: 48 8b 15 34 30 2b 00 mov 0x2b3034(%rip),%rdx # 6ca768 + 417734: b8 10 00 00 00 mov $0x10,%eax + 417739: e9 48 fd ff ff jmpq 417486 + 41773e: 48 89 d0 mov %rdx,%rax + 417741: b9 28 c6 6c 00 mov $0x6cc628,%ecx + 417746: e9 74 ff ff ff jmpq 4176bf + 41774b: 48 8b 35 56 30 2b 00 mov 0x2b3056(%rip),%rsi # 6ca7a8 + 417752: 48 8d bd c0 08 00 00 lea 0x8c0(%rbp),%rdi + 417759: e8 22 f7 ff ff callq 416e80 + 41775e: 48 85 c0 test %rax,%rax + 417761: 49 89 c0 mov %rax,%r8 + 417764: 0f 84 58 02 00 00 je 4179c2 + 41776a: 49 8d 50 20 lea 0x20(%r8),%rdx + 41776e: 49 8d 40 78 lea 0x78(%r8),%rax + 417772: 49 8d 88 68 08 00 00 lea 0x868(%r8),%rcx + 417779: 49 89 10 mov %rdx,(%r8) + 41777c: 0f 1f 40 00 nopl 0x0(%rax) + 417780: 48 89 40 18 mov %rax,0x18(%rax) + 417784: 48 89 40 10 mov %rax,0x10(%rax) + 417788: 48 83 c0 10 add $0x10,%rax + 41778c: 48 39 c8 cmp %rcx,%rax + 41778f: 75 ef jne 417780 + 417791: 48 81 fa 00 a8 6c 00 cmp $0x6ca800,%rdx + 417798: 0f 84 0b 02 00 00 je 4179a9 + 41779e: 41 8b 40 24 mov 0x24(%r8),%eax + 4177a2: 83 c8 02 or $0x2,%eax + 4177a5: 83 c8 01 or $0x1,%eax + 4177a8: 4c 89 c6 mov %r8,%rsi + 4177ab: 49 c7 80 98 08 00 00 movq $0x1,0x898(%r8) + 4177b2: 01 00 00 00 + 4177b6: 41 89 40 24 mov %eax,0x24(%r8) + 4177ba: 49 8b 40 10 mov 0x10(%r8),%rax + 4177be: 49 8d 88 b0 08 00 00 lea 0x8b0(%r8),%rcx + 4177c5: 48 01 05 4c 4e 2b 00 add %rax,0x2b4e4c(%rip) # 6cc618 + 4177cc: 83 e6 0f and $0xf,%esi + 4177cf: 49 89 80 a8 08 00 00 mov %rax,0x8a8(%r8) + 4177d6: 49 89 80 a0 08 00 00 mov %rax,0x8a0(%r8) + 4177dd: 74 07 je 4177e6 + 4177df: 48 29 f1 sub %rsi,%rcx + 4177e2: 48 83 c1 10 add $0x10,%rcx + 4177e6: 4c 01 c0 add %r8,%rax + 4177e9: 49 89 48 78 mov %rcx,0x78(%r8) + 4177ed: 48 29 c8 sub %rcx,%rax + 4177f0: 48 83 c8 01 or $0x1,%rax + 4177f4: 48 89 41 08 mov %rax,0x8(%rcx) + 4177f8: 90 nop + 4177f9: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax + 417800: 41 b9 01 00 00 00 mov $0x1,%r9d + 417806: 45 31 d2 xor %r10d,%r10d + 417809: 41 c7 40 20 00 00 00 movl $0x0,0x20(%r8) + 417810: 00 + 417811: 44 89 ce mov %r9d,%esi + 417814: 64 48 8b 18 mov %fs:(%rax),%rbx + 417818: 64 48 89 10 mov %rdx,%fs:(%rax) + 41781c: 44 89 d0 mov %r10d,%eax + 41781f: 83 3d 96 59 2b 00 00 cmpl $0x0,0x2b5996(%rip) # 6cd1bc <__libc_multiple_threads> + 417826: 74 0c je 417834 + 417828: f0 0f b1 35 f0 4d 2b lock cmpxchg %esi,0x2b4df0(%rip) # 6cc620 + 41782f: 00 + 417830: 75 0b jne 41783d + 417832: eb 23 jmp 417857 + 417834: 0f b1 35 e5 4d 2b 00 cmpxchg %esi,0x2b4de5(%rip) # 6cc620 + 41783b: 74 1a je 417857 + 41783d: 48 8d 3d dc 4d 2b 00 lea 0x2b4ddc(%rip),%rdi # 6cc620 + 417844: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41784b: e8 80 ad 02 00 callq 4425d0 <__lll_lock_wait_private> + 417850: 48 81 c4 80 00 00 00 add $0x80,%rsp + 417857: 48 8b 05 0a 38 2b 00 mov 0x2b380a(%rip),%rax # 6cb068 + 41785e: 49 89 80 88 08 00 00 mov %rax,0x888(%r8) + 417865: 48 89 15 fc 37 2b 00 mov %rdx,0x2b37fc(%rip) # 6cb068 + 41786c: 83 3d 49 59 2b 00 00 cmpl $0x0,0x2b5949(%rip) # 6cd1bc <__libc_multiple_threads> + 417873: 74 0b je 417880 + 417875: f0 ff 0d a4 4d 2b 00 lock decl 0x2b4da4(%rip) # 6cc620 + 41787c: 75 0a jne 417888 + 41787e: eb 22 jmp 4178a2 + 417880: ff 0d 9a 4d 2b 00 decl 0x2b4d9a(%rip) # 6cc620 + 417886: 74 1a je 4178a2 + 417888: 48 8d 3d 91 4d 2b 00 lea 0x2b4d91(%rip),%rdi # 6cc620 + 41788f: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 417896: e8 65 ad 02 00 callq 442600 <__lll_unlock_wake_private> + 41789b: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4178a2: 44 89 ce mov %r9d,%esi + 4178a5: 44 89 d0 mov %r10d,%eax + 4178a8: 83 3d 0d 59 2b 00 00 cmpl $0x0,0x2b590d(%rip) # 6cd1bc <__libc_multiple_threads> + 4178af: 74 0c je 4178bd + 4178b1: f0 0f b1 35 77 4d 2b lock cmpxchg %esi,0x2b4d77(%rip) # 6cc630 + 4178b8: 00 + 4178b9: 75 0b jne 4178c6 + 4178bb: eb 23 jmp 4178e0 + 4178bd: 0f b1 35 6c 4d 2b 00 cmpxchg %esi,0x2b4d6c(%rip) # 6cc630 + 4178c4: 74 1a je 4178e0 + 4178c6: 48 8d 3d 63 4d 2b 00 lea 0x2b4d63(%rip),%rdi # 6cc630 + 4178cd: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4178d4: e8 f7 ac 02 00 callq 4425d0 <__lll_lock_wait_private> + 4178d9: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4178e0: 48 85 db test %rbx,%rbx + 4178e3: 74 1b je 417900 + 4178e5: 48 8b 83 78 08 00 00 mov 0x878(%rbx),%rax + 4178ec: 48 85 c0 test %rax,%rax + 4178ef: 0f 84 c8 00 00 00 je 4179bd + 4178f5: 48 83 e8 01 sub $0x1,%rax + 4178f9: 48 89 83 78 08 00 00 mov %rax,0x878(%rbx) + 417900: 83 3d b5 58 2b 00 00 cmpl $0x0,0x2b58b5(%rip) # 6cd1bc <__libc_multiple_threads> + 417907: 74 0b je 417914 + 417909: f0 ff 0d 20 4d 2b 00 lock decl 0x2b4d20(%rip) # 6cc630 + 417910: 75 0a jne 41791c + 417912: eb 22 jmp 417936 + 417914: ff 0d 16 4d 2b 00 decl 0x2b4d16(%rip) # 6cc630 + 41791a: 74 1a je 417936 + 41791c: 48 8d 3d 0d 4d 2b 00 lea 0x2b4d0d(%rip),%rdi # 6cc630 + 417923: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41792a: e8 d1 ac 02 00 callq 442600 <__lll_unlock_wake_private> + 41792f: 48 81 c4 80 00 00 00 add $0x80,%rsp + 417936: be 01 00 00 00 mov $0x1,%esi + 41793b: 31 c0 xor %eax,%eax + 41793d: 83 3d 78 58 2b 00 00 cmpl $0x0,0x2b5878(%rip) # 6cd1bc <__libc_multiple_threads> + 417944: 74 08 je 41794e + 417946: f0 0f b1 32 lock cmpxchg %esi,(%rdx) + 41794a: 75 07 jne 417953 + 41794c: eb 1b jmp 417969 + 41794e: 0f b1 32 cmpxchg %esi,(%rdx) + 417951: 74 16 je 417969 + 417953: 48 8d 3a lea (%rdx),%rdi + 417956: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41795d: e8 6e ac 02 00 callq 4425d0 <__lll_lock_wait_private> + 417962: 48 81 c4 80 00 00 00 add $0x80,%rsp + 417969: 48 85 d2 test %rdx,%rdx + 41796c: 0f 85 f5 fc ff ff jne 417667 + 417972: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 + 417979: 00 00 + 41797b: 74 01 je 41797e + 41797d: f0 48 ff 0d e3 2d 2b lock decq 0x2b2de3(%rip) # 6ca768 + 417984: 00 + 417985: 31 d2 xor %edx,%edx + 417987: e9 db fc ff ff jmpq 417667 + 41798c: 0f 1f 40 00 nopl 0x0(%rax) + 417990: b9 80 2f 4a 00 mov $0x4a2f80,%ecx + 417995: ba ee 02 00 00 mov $0x2ee,%edx + 41799a: be a8 1f 4a 00 mov $0x4a1fa8,%esi + 41799f: bf 42 20 4a 00 mov $0x4a2042,%edi + 4179a4: e8 77 f4 ff ff callq 416e20 <__malloc_assert> + 4179a9: 48 c7 05 84 4c 2b 00 movq $0x80,0x2b4c84(%rip) # 6cc638 + 4179b0: 80 00 00 00 + 4179b4: 41 8b 40 24 mov 0x24(%r8),%eax + 4179b8: e9 e8 fd ff ff jmpq 4177a5 + 4179bd: e8 11 8b fe ff callq 4004d3 + 4179c2: 48 8b 35 df 2d 2b 00 mov 0x2b2ddf(%rip),%rsi # 6ca7a8 + 4179c9: bf c0 08 00 00 mov $0x8c0,%edi + 4179ce: e8 ad f4 ff ff callq 416e80 + 4179d3: 48 85 c0 test %rax,%rax + 4179d6: 49 89 c0 mov %rax,%r8 + 4179d9: 0f 85 8b fd ff ff jne 41776a + 4179df: eb 91 jmp 417972 + 4179e1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4179e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4179ed: 00 00 00 + +00000000004179f0 : + 4179f0: 90 nop + 4179f1: 48 81 ff 00 a8 6c 00 cmp $0x6ca800,%rdi + 4179f8: 0f 84 8a 00 00 00 je 417a88 + 4179fe: 48 89 fa mov %rdi,%rdx + 417a01: 83 3d b4 57 2b 00 00 cmpl $0x0,0x2b57b4(%rip) # 6cd1bc <__libc_multiple_threads> + 417a08: 74 07 je 417a11 + 417a0a: f0 ff 0a lock decl (%rdx) + 417a0d: 75 06 jne 417a15 + 417a0f: eb 1a jmp 417a2b + 417a11: ff 0a decl (%rdx) + 417a13: 74 16 je 417a2b + 417a15: 48 8d 3a lea (%rdx),%rdi + 417a18: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 417a1f: e8 dc ab 02 00 callq 442600 <__lll_unlock_wake_private> + 417a24: 48 81 c4 80 00 00 00 add $0x80,%rsp + 417a2b: 8b 05 d3 2d 2b 00 mov 0x2b2dd3(%rip),%eax # 6ca804 + 417a31: 83 e0 04 and $0x4,%eax + 417a34: 75 4a jne 417a80 + 417a36: be 01 00 00 00 mov $0x1,%esi + 417a3b: 83 3d 7a 57 2b 00 00 cmpl $0x0,0x2b577a(%rip) # 6cd1bc <__libc_multiple_threads> + 417a42: 74 0c je 417a50 + 417a44: f0 0f b1 35 b4 2d 2b lock cmpxchg %esi,0x2b2db4(%rip) # 6ca800 + 417a4b: 00 + 417a4c: 75 0b jne 417a59 + 417a4e: eb 23 jmp 417a73 + 417a50: 0f b1 35 a9 2d 2b 00 cmpxchg %esi,0x2b2da9(%rip) # 6ca800 + 417a57: 74 1a je 417a73 + 417a59: 48 8d 3d a0 2d 2b 00 lea 0x2b2da0(%rip),%rdi # 6ca800 + 417a60: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 417a67: e8 64 ab 02 00 callq 4425d0 <__lll_lock_wait_private> + 417a6c: 48 81 c4 80 00 00 00 add $0x80,%rsp + 417a73: b8 00 a8 6c 00 mov $0x6ca800,%eax + 417a78: c3 retq + 417a79: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 417a80: 31 c0 xor %eax,%eax + 417a82: c3 retq + 417a83: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 417a88: 53 push %rbx + 417a89: 48 89 f3 mov %rsi,%rbx + 417a8c: 83 3d 29 57 2b 00 00 cmpl $0x0,0x2b5729(%rip) # 6cd1bc <__libc_multiple_threads> + 417a93: 74 0b je 417aa0 + 417a95: f0 ff 0d 64 2d 2b 00 lock decl 0x2b2d64(%rip) # 6ca800 + 417a9c: 75 0a jne 417aa8 + 417a9e: eb 22 jmp 417ac2 + 417aa0: ff 0d 5a 2d 2b 00 decl 0x2b2d5a(%rip) # 6ca800 + 417aa6: 74 1a je 417ac2 + 417aa8: 48 8d 3d 51 2d 2b 00 lea 0x2b2d51(%rip),%rdi # 6ca800 + 417aaf: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 417ab6: e8 45 ab 02 00 callq 442600 <__lll_unlock_wake_private> + 417abb: 48 81 c4 80 00 00 00 add $0x80,%rsp + 417ac2: e8 99 f6 ff ff callq 417160 + 417ac7: 48 85 c0 test %rax,%rax + 417aca: 74 02 je 417ace + 417acc: 5b pop %rbx + 417acd: c3 retq + 417ace: 48 89 df mov %rbx,%rdi + 417ad1: be 00 a8 6c 00 mov $0x6ca800,%esi + 417ad6: 5b pop %rbx + 417ad7: e9 74 f9 ff ff jmpq 417450 + 417adc: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000417ae0 : + 417ae0: 41 56 push %r14 + 417ae2: 41 55 push %r13 + 417ae4: 41 54 push %r12 + 417ae6: 55 push %rbp + 417ae7: 53 push %rbx + 417ae8: 48 83 ec 20 sub $0x20,%rsp + 417aec: 48 8b 3d 65 2d 2b 00 mov 0x2b2d65(%rip),%rdi # 6ca858 + 417af3: 48 8b 1d 86 36 2b 00 mov 0x2b3686(%rip),%rbx # 6cb180 <_dl_pagesize> + 417afa: 48 81 ff 58 a8 6c 00 cmp $0x6ca858,%rdi + 417b01: 0f 84 15 01 00 00 je 417c1c + 417b07: 48 8b 47 08 mov 0x8(%rdi),%rax + 417b0b: a8 02 test $0x2,%al + 417b0d: 75 11 jne 417b20 + 417b0f: 48 89 c2 mov %rax,%rdx + 417b12: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx + 417b16: 48 83 fa 1f cmp $0x1f,%rdx + 417b1a: 0f 87 d0 00 00 00 ja 417bf0 + 417b20: 8b 05 de 2c 2b 00 mov 0x2b2cde(%rip),%eax # 6ca804 + 417b26: 8b 2d 44 2c 2b 00 mov 0x2b2c44(%rip),%ebp # 6ca770 + 417b2c: 83 c8 04 or $0x4,%eax + 417b2f: 89 05 cf 2c 2b 00 mov %eax,0x2b2ccf(%rip) # 6ca804 + 417b35: 89 e8 mov %ebp,%eax + 417b37: 83 e0 05 and $0x5,%eax + 417b3a: 83 f8 05 cmp $0x5,%eax + 417b3d: 0f 84 6d 01 00 00 je 417cb0 + 417b43: 40 f6 c5 01 test $0x1,%bpl + 417b47: 0f 85 e3 00 00 00 jne 417c30 + 417b4d: 83 e5 02 and $0x2,%ebp + 417b50: 0f 85 8d 01 00 00 jne 417ce3 + 417b56: 31 ff xor %edi,%edi + 417b58: ff 15 32 35 2b 00 callq *0x2b3532(%rip) # 6cb090 <__morecore> + 417b5e: 49 89 c5 mov %rax,%r13 + 417b61: 48 89 c5 mov %rax,%rbp + 417b64: 41 83 e5 0f and $0xf,%r13d + 417b68: 75 76 jne 417be0 + 417b6a: 48 8b 05 37 2c 2b 00 mov 0x2b2c37(%rip),%rax # 6ca7a8 + 417b71: 48 8d 53 ff lea -0x1(%rbx),%rdx + 417b75: 49 8d 44 05 20 lea 0x20(%r13,%rax,1),%rax + 417b7a: 48 8d 4c 05 00 lea 0x0(%rbp,%rax,1),%rcx + 417b7f: 48 01 c3 add %rax,%rbx + 417b82: 48 21 ca and %rcx,%rdx + 417b85: 48 29 d3 sub %rdx,%rbx + 417b88: 48 89 df mov %rbx,%rdi + 417b8b: ff 15 ff 34 2b 00 callq *0x2b34ff(%rip) # 6cb090 <__morecore> + 417b91: 48 85 c0 test %rax,%rax + 417b94: 49 89 c4 mov %rax,%r12 + 417b97: 0f 84 2e 01 00 00 je 417ccb + 417b9d: 48 8b 05 3c 4a 2b 00 mov 0x2b4a3c(%rip),%rax # 6cc5e0 <__after_morecore_hook> + 417ba4: 48 85 c0 test %rax,%rax + 417ba7: 74 02 je 417bab + 417ba9: ff d0 callq *%rax + 417bab: 4c 2b 25 3e 2c 2b 00 sub 0x2b2c3e(%rip),%r12 # 6ca7f0 + 417bb2: 4c 01 ed add %r13,%rbp + 417bb5: 31 c0 xor %eax,%eax + 417bb7: 48 89 2d 9a 2c 2b 00 mov %rbp,0x2b2c9a(%rip) # 6ca858 + 417bbe: 49 01 dc add %rbx,%r12 + 417bc1: 4c 29 eb sub %r13,%rbx + 417bc4: 48 83 cb 01 or $0x1,%rbx + 417bc8: 4c 89 25 b1 34 2b 00 mov %r12,0x2b34b1(%rip) # 6cb080 + 417bcf: 48 89 5d 08 mov %rbx,0x8(%rbp) + 417bd3: 48 83 c4 20 add $0x20,%rsp + 417bd7: 5b pop %rbx + 417bd8: 5d pop %rbp + 417bd9: 41 5c pop %r12 + 417bdb: 41 5d pop %r13 + 417bdd: 41 5e pop %r14 + 417bdf: c3 retq + 417be0: b8 10 00 00 00 mov $0x10,%eax + 417be5: 4c 29 e8 sub %r13,%rax + 417be8: 49 89 c5 mov %rax,%r13 + 417beb: e9 7a ff ff ff jmpq 417b6a + 417bf0: a8 01 test $0x1,%al + 417bf2: 0f 84 28 ff ff ff je 417b20 + 417bf8: 8b 05 06 2c 2b 00 mov 0x2b2c06(%rip),%eax # 6ca804 + 417bfe: a8 02 test $0x2,%al + 417c00: 75 1a jne 417c1c + 417c02: 48 8b 0d 77 34 2b 00 mov 0x2b3477(%rip),%rcx # 6cb080 + 417c09: 48 03 0d e0 2b 2b 00 add 0x2b2be0(%rip),%rcx # 6ca7f0 + 417c10: 48 01 fa add %rdi,%rdx + 417c13: 48 39 ca cmp %rcx,%rdx + 417c16: 0f 85 0a ff ff ff jne 417b26 + 417c1c: 48 83 c4 20 add $0x20,%rsp + 417c20: 31 c0 xor %eax,%eax + 417c22: 5b pop %rbx + 417c23: 5d pop %rbp + 417c24: 41 5c pop %r12 + 417c26: 41 5d pop %r13 + 417c28: 41 5e pop %r14 + 417c2a: c3 retq + 417c2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 417c30: 48 8d 74 24 10 lea 0x10(%rsp),%rsi + 417c35: 31 c9 xor %ecx,%ecx + 417c37: ba 10 00 00 00 mov $0x10,%edx + 417c3c: c6 44 24 10 00 movb $0x0,0x10(%rsp) + 417c41: e8 6a a2 03 00 callq 451eb0 <_itoa_word> + 417c46: 48 39 e0 cmp %rsp,%rax + 417c49: 49 89 c4 mov %rax,%r12 + 417c4c: 76 25 jbe 417c73 + 417c4e: 48 89 c2 mov %rax,%rdx + 417c51: 48 89 c7 mov %rax,%rdi + 417c54: be 30 00 00 00 mov $0x30,%esi + 417c59: 48 29 e2 sub %rsp,%rdx + 417c5c: 4c 8d 70 ff lea -0x1(%rax),%r14 + 417c60: 48 29 d7 sub %rdx,%rdi + 417c63: e8 e8 86 fe ff callq 400350 <__rela_iplt_end+0x88> + 417c68: 48 8d 44 24 ff lea -0x1(%rsp),%rax + 417c6d: 4c 29 f0 sub %r14,%rax + 417c70: 49 01 c4 add %rax,%r12 + 417c73: 48 8b 05 46 56 2b 00 mov 0x2b5646(%rip),%rax # 6cd2c0 <__libc_argv> + 417c7a: 89 ef mov %ebp,%edi + 417c7c: ba 38 20 4a 00 mov $0x4a2038,%edx + 417c81: 4d 89 e0 mov %r12,%r8 + 417c84: b9 5b 20 4a 00 mov $0x4a205b,%ecx + 417c89: be a8 23 4a 00 mov $0x4a23a8,%esi + 417c8e: 48 8b 00 mov (%rax),%rax + 417c91: 48 85 c0 test %rax,%rax + 417c94: 48 0f 45 d0 cmovne %rax,%rdx + 417c98: 83 e7 02 and $0x2,%edi + 417c9b: 31 c0 xor %eax,%eax + 417c9d: e8 1e 99 ff ff callq 4115c0 <__libc_message> + 417ca2: e9 af fe ff ff jmpq 417b56 + 417ca7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 417cae: 00 00 + 417cb0: 89 ef mov %ebp,%edi + 417cb2: ba 5b 20 4a 00 mov $0x4a205b,%edx + 417cb7: be 3c ca 4b 00 mov $0x4bca3c,%esi + 417cbc: 83 e7 02 and $0x2,%edi + 417cbf: 31 c0 xor %eax,%eax + 417cc1: e8 fa 98 ff ff callq 4115c0 <__libc_message> + 417cc6: e9 8b fe ff ff jmpq 417b56 + 417ccb: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 417cd2: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) + 417cd9: b8 ff ff ff ff mov $0xffffffff,%eax + 417cde: e9 f0 fe ff ff jmpq 417bd3 + 417ce3: e8 18 5f ff ff callq 40dc00 + 417ce8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 417cef: 00 + +0000000000417cf0 : + 417cf0: 41 55 push %r13 + 417cf2: 41 54 push %r12 + 417cf4: 55 push %rbp + 417cf5: 53 push %rbx + 417cf6: 48 83 ec 28 sub $0x28,%rsp + 417cfa: 48 8b 47 08 mov 0x8(%rdi),%rax + 417cfe: 48 89 c6 mov %rax,%rsi + 417d01: 48 83 e6 f8 and $0xfffffffffffffff8,%rsi + 417d05: a8 02 test $0x2,%al + 417d07: 0f 84 09 01 00 00 je 417e16 + 417d0d: 48 8b 07 mov (%rdi),%rax + 417d10: 48 89 fa mov %rdi,%rdx + 417d13: 48 01 c6 add %rax,%rsi + 417d16: 48 29 c7 sub %rax,%rdi + 417d19: 48 8b 05 60 34 2b 00 mov 0x2b3460(%rip),%rax # 6cb180 <_dl_pagesize> + 417d20: 48 89 f9 mov %rdi,%rcx + 417d23: 48 09 f1 or %rsi,%rcx + 417d26: 48 83 e8 01 sub $0x1,%rax + 417d2a: 48 85 c8 test %rcx,%rax + 417d2d: 75 29 jne 417d58 + 417d2f: f0 ff 0d 92 2a 2b 00 lock decl 0x2b2a92(%rip) # 6ca7c8 + 417d36: 48 89 f0 mov %rsi,%rax + 417d39: 48 f7 d8 neg %rax + 417d3c: f0 48 01 05 94 2a 2b lock add %rax,0x2b2a94(%rip) # 6ca7d8 + 417d43: 00 + 417d44: e8 67 7f 02 00 callq 43fcb0 <__munmap> + 417d49: 48 83 c4 28 add $0x28,%rsp + 417d4d: 5b pop %rbx + 417d4e: 5d pop %rbp + 417d4f: 41 5c pop %r12 + 417d51: 41 5d pop %r13 + 417d53: c3 retq + 417d54: 0f 1f 40 00 nopl 0x0(%rax) + 417d58: 8b 1d 12 2a 2b 00 mov 0x2b2a12(%rip),%ebx # 6ca770 + 417d5e: 89 d8 mov %ebx,%eax + 417d60: 83 e0 05 and $0x5,%eax + 417d63: 83 f8 05 cmp $0x5,%eax + 417d66: 0f 84 8f 00 00 00 je 417dfb + 417d6c: f6 c3 01 test $0x1,%bl + 417d6f: 75 0f jne 417d80 + 417d71: 83 e3 02 and $0x2,%ebx + 417d74: 74 d3 je 417d49 + 417d76: e8 85 5e ff ff callq 40dc00 + 417d7b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 417d80: 48 8d 7a 10 lea 0x10(%rdx),%rdi + 417d84: 48 8d 74 24 10 lea 0x10(%rsp),%rsi + 417d89: 31 c9 xor %ecx,%ecx + 417d8b: ba 10 00 00 00 mov $0x10,%edx + 417d90: c6 44 24 10 00 movb $0x0,0x10(%rsp) + 417d95: e8 16 a1 03 00 callq 451eb0 <_itoa_word> + 417d9a: 48 39 e0 cmp %rsp,%rax + 417d9d: 48 89 c5 mov %rax,%rbp + 417da0: 76 25 jbe 417dc7 + 417da2: 48 89 c2 mov %rax,%rdx + 417da5: 48 89 c7 mov %rax,%rdi + 417da8: be 30 00 00 00 mov $0x30,%esi + 417dad: 48 29 e2 sub %rsp,%rdx + 417db0: 4c 8d 68 ff lea -0x1(%rax),%r13 + 417db4: 48 29 d7 sub %rdx,%rdi + 417db7: e8 94 85 fe ff callq 400350 <__rela_iplt_end+0x88> + 417dbc: 48 8d 44 24 ff lea -0x1(%rsp),%rax + 417dc1: 4c 29 e8 sub %r13,%rax + 417dc4: 48 01 c5 add %rax,%rbp + 417dc7: 48 8b 05 f2 54 2b 00 mov 0x2b54f2(%rip),%rax # 6cd2c0 <__libc_argv> + 417dce: ba 38 20 4a 00 mov $0x4a2038,%edx + 417dd3: 49 89 e8 mov %rbp,%r8 + 417dd6: b9 d0 23 4a 00 mov $0x4a23d0,%ecx + 417ddb: be a8 23 4a 00 mov $0x4a23a8,%esi + 417de0: 48 8b 00 mov (%rax),%rax + 417de3: 48 85 c0 test %rax,%rax + 417de6: 48 0f 45 d0 cmovne %rax,%rdx + 417dea: 83 e3 02 and $0x2,%ebx + 417ded: 31 c0 xor %eax,%eax + 417def: 89 df mov %ebx,%edi + 417df1: e8 ca 97 ff ff callq 4115c0 <__libc_message> + 417df6: e9 4e ff ff ff jmpq 417d49 + 417dfb: 83 e3 02 and $0x2,%ebx + 417dfe: ba d0 23 4a 00 mov $0x4a23d0,%edx + 417e03: be 3c ca 4b 00 mov $0x4bca3c,%esi + 417e08: 89 df mov %ebx,%edi + 417e0a: 31 c0 xor %eax,%eax + 417e0c: e8 af 97 ff ff callq 4115c0 <__libc_message> + 417e11: e9 33 ff ff ff jmpq 417d49 + 417e16: b9 78 2e 4a 00 mov $0x4a2e78,%ecx + 417e1b: ba 0f 0b 00 00 mov $0xb0f,%edx + 417e20: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 417e25: bf d1 1f 4a 00 mov $0x4a1fd1,%edi + 417e2a: e8 f1 ef ff ff callq 416e20 <__malloc_assert> + 417e2f: 90 nop + +0000000000417e30 : + 417e30: 48 83 3d 00 48 2b 00 cmpq $0x0,0x2b4800(%rip) # 6cc638 + 417e37: 00 + 417e38: 0f 84 26 07 00 00 je 418564 + 417e3e: 41 57 push %r15 + 417e40: 41 56 push %r14 + 417e42: 49 89 fe mov %rdi,%r14 + 417e45: 41 55 push %r13 + 417e47: 41 54 push %r12 + 417e49: 55 push %rbp + 417e4a: 53 push %rbx + 417e4b: 48 83 ec 68 sub $0x68,%rsp + 417e4f: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 + 417e56: 00 00 + 417e58: 74 01 je 417e5b + 417e5a: f0 83 4f 04 01 lock orl $0x1,0x4(%rdi) + 417e5f: 48 8d 47 50 lea 0x50(%rdi),%rax + 417e63: 48 8d 74 24 40 lea 0x40(%rsp),%rsi + 417e68: 4c 8d 57 58 lea 0x58(%rdi),%r10 + 417e6c: 4c 8d 5f 08 lea 0x8(%rdi),%r11 + 417e70: 48 89 44 24 08 mov %rax,0x8(%rsp) + 417e75: b8 01 00 00 00 mov $0x1,%eax + 417e7a: 48 29 f0 sub %rsi,%rax + 417e7d: 48 89 44 24 10 mov %rax,0x10(%rsp) + 417e82: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 417e88: 31 db xor %ebx,%ebx + 417e8a: 49 87 1b xchg %rbx,(%r11) + 417e8d: 48 85 db test %rbx,%rbx + 417e90: 0f 84 71 01 00 00 je 418007 + 417e96: 4c 89 1c 24 mov %r11,(%rsp) + 417e9a: 4d 89 d7 mov %r10,%r15 + 417e9d: e9 a6 00 00 00 jmpq 417f48 + 417ea2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 417ea8: 48 8b 45 08 mov 0x8(%rbp),%rax + 417eac: 4d 01 ec add %r13,%r12 + 417eaf: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 417eb3: 48 3b 44 05 00 cmp 0x0(%rbp,%rax,1),%rax + 417eb8: 0f 85 22 02 00 00 jne 4180e0 + 417ebe: 4c 8b 6d 10 mov 0x10(%rbp),%r13 + 417ec2: 48 8b 45 18 mov 0x18(%rbp),%rax + 417ec6: 49 3b 6d 18 cmp 0x18(%r13),%rbp + 417eca: 0f 85 a0 01 00 00 jne 418070 + 417ed0: 48 3b 68 10 cmp 0x10(%rax),%rbp + 417ed4: 0f 85 96 01 00 00 jne 418070 + 417eda: 48 81 7d 08 ff 03 00 cmpq $0x3ff,0x8(%rbp) + 417ee1: 00 + 417ee2: 49 89 45 18 mov %rax,0x18(%r13) + 417ee6: 4c 89 68 10 mov %r13,0x10(%rax) + 417eea: 76 14 jbe 417f00 + 417eec: 48 8b 45 20 mov 0x20(%rbp),%rax + 417ef0: 48 85 c0 test %rax,%rax + 417ef3: 0f 85 07 04 00 00 jne 418300 + 417ef9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 417f00: 49 8b 46 68 mov 0x68(%r14),%rax + 417f04: 49 81 fc ff 03 00 00 cmp $0x3ff,%r12 + 417f0b: 49 89 5e 68 mov %rbx,0x68(%r14) + 417f0f: 48 89 58 18 mov %rbx,0x18(%rax) + 417f13: 76 10 jbe 417f25 + 417f15: 48 c7 43 20 00 00 00 movq $0x0,0x20(%rbx) + 417f1c: 00 + 417f1d: 48 c7 43 28 00 00 00 movq $0x0,0x28(%rbx) + 417f24: 00 + 417f25: 4c 89 e2 mov %r12,%rdx + 417f28: 4c 89 7b 18 mov %r15,0x18(%rbx) + 417f2c: 48 89 43 10 mov %rax,0x10(%rbx) + 417f30: 48 83 ca 01 or $0x1,%rdx + 417f34: 4d 85 c9 test %r9,%r9 + 417f37: 48 89 53 08 mov %rdx,0x8(%rbx) + 417f3b: 4e 89 24 23 mov %r12,(%rbx,%r12,1) + 417f3f: 4c 89 cb mov %r9,%rbx + 417f42: 0f 84 b8 00 00 00 je 418000 + 417f48: 48 8b 43 08 mov 0x8(%rbx),%rax + 417f4c: 4c 8b 4b 10 mov 0x10(%rbx),%r9 + 417f50: 49 89 c4 mov %rax,%r12 + 417f53: 49 83 e4 fa and $0xfffffffffffffffa,%r12 + 417f57: 4a 8d 2c 23 lea (%rbx,%r12,1),%rbp + 417f5b: 4c 8b 6d 08 mov 0x8(%rbp),%r13 + 417f5f: 49 83 e5 f8 and $0xfffffffffffffff8,%r13 + 417f63: a8 01 test $0x1,%al + 417f65: 75 59 jne 417fc0 + 417f67: 48 8b 03 mov (%rbx),%rax + 417f6a: 48 29 c3 sub %rax,%rbx + 417f6d: 49 01 c4 add %rax,%r12 + 417f70: 48 8b 43 08 mov 0x8(%rbx),%rax + 417f74: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 417f78: 48 3b 04 03 cmp (%rbx,%rax,1),%rax + 417f7c: 0f 85 26 01 00 00 jne 4180a8 + 417f82: 4c 8b 5b 10 mov 0x10(%rbx),%r11 + 417f86: 48 8b 43 18 mov 0x18(%rbx),%rax + 417f8a: 49 3b 5b 18 cmp 0x18(%r11),%rbx + 417f8e: 0f 85 9c 00 00 00 jne 418030 + 417f94: 48 3b 58 10 cmp 0x10(%rax),%rbx + 417f98: 0f 85 92 00 00 00 jne 418030 + 417f9e: 48 81 7b 08 ff 03 00 cmpq $0x3ff,0x8(%rbx) + 417fa5: 00 + 417fa6: 49 89 43 18 mov %rax,0x18(%r11) + 417faa: 4c 89 58 10 mov %r11,0x10(%rax) + 417fae: 76 10 jbe 417fc0 + 417fb0: 48 8b 43 20 mov 0x20(%rbx),%rax + 417fb4: 48 85 c0 test %rax,%rax + 417fb7: 0f 85 03 03 00 00 jne 4182c0 + 417fbd: 0f 1f 00 nopl (%rax) + 417fc0: 49 3b 6e 58 cmp 0x58(%r14),%rbp + 417fc4: 74 1a je 417fe0 + 417fc6: 42 f6 44 2d 08 01 testb $0x1,0x8(%rbp,%r13,1) + 417fcc: 0f 84 d6 fe ff ff je 417ea8 + 417fd2: 48 83 65 08 fe andq $0xfffffffffffffffe,0x8(%rbp) + 417fd7: e9 24 ff ff ff jmpq 417f00 + 417fdc: 0f 1f 40 00 nopl 0x0(%rax) + 417fe0: 4d 01 ec add %r13,%r12 + 417fe3: 49 83 cc 01 or $0x1,%r12 + 417fe7: 4d 85 c9 test %r9,%r9 + 417fea: 4c 89 63 08 mov %r12,0x8(%rbx) + 417fee: 49 89 5e 58 mov %rbx,0x58(%r14) + 417ff2: 4c 89 cb mov %r9,%rbx + 417ff5: 0f 85 4d ff ff ff jne 417f48 + 417ffb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 418000: 4c 8b 1c 24 mov (%rsp),%r11 + 418004: 4d 89 fa mov %r15,%r10 + 418007: 49 83 c3 08 add $0x8,%r11 + 41800b: 49 8d 43 f8 lea -0x8(%r11),%rax + 41800f: 48 39 44 24 08 cmp %rax,0x8(%rsp) + 418014: 0f 85 6e fe ff ff jne 417e88 + 41801a: 48 83 c4 68 add $0x68,%rsp + 41801e: 5b pop %rbx + 41801f: 5d pop %rbp + 418020: 41 5c pop %r12 + 418022: 41 5d pop %r13 + 418024: 41 5e pop %r14 + 418026: 41 5f pop %r15 + 418028: c3 retq + 418029: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 418030: 4d 85 f6 test %r14,%r14 + 418033: 44 8b 1d 36 27 2b 00 mov 0x2b2736(%rip),%r11d # 6ca770 + 41803a: 74 05 je 418041 + 41803c: 41 83 4e 04 04 orl $0x4,0x4(%r14) + 418041: 44 89 d8 mov %r11d,%eax + 418044: 83 e0 05 and $0x5,%eax + 418047: 83 f8 05 cmp $0x5,%eax + 41804a: 0f 84 7f 04 00 00 je 4184cf + 418050: 41 f6 c3 01 test $0x1,%r11b + 418054: 0f 85 96 01 00 00 jne 4181f0 + 41805a: 41 83 e3 02 and $0x2,%r11d + 41805e: 0f 84 5c ff ff ff je 417fc0 + 418064: e8 97 5b ff ff callq 40dc00 + 418069: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 418070: 8b 3d fa 26 2b 00 mov 0x2b26fa(%rip),%edi # 6ca770 + 418076: 41 83 4e 04 04 orl $0x4,0x4(%r14) + 41807b: 89 f8 mov %edi,%eax + 41807d: 83 e0 05 and $0x5,%eax + 418080: 83 f8 05 cmp $0x5,%eax + 418083: 0f 84 6c 04 00 00 je 4184f5 + 418089: 41 89 fd mov %edi,%r13d + 41808c: 41 83 e5 02 and $0x2,%r13d + 418090: 83 e7 01 and $0x1,%edi + 418093: 0f 85 af 00 00 00 jne 418148 + 418099: 45 85 ed test %r13d,%r13d + 41809c: 0f 84 5e fe ff ff je 417f00 + 4180a2: eb c0 jmp 418064 + 4180a4: 0f 1f 40 00 nopl 0x0(%rax) + 4180a8: 4d 85 f6 test %r14,%r14 + 4180ab: 44 8b 1d be 26 2b 00 mov 0x2b26be(%rip),%r11d # 6ca770 + 4180b2: 74 05 je 4180b9 + 4180b4: 41 83 4e 04 04 orl $0x4,0x4(%r14) + 4180b9: 44 89 d8 mov %r11d,%eax + 4180bc: 83 e0 05 and $0x5,%eax + 4180bf: 83 f8 05 cmp $0x5,%eax + 4180c2: 0f 84 50 04 00 00 je 418518 + 4180c8: 41 f6 c3 01 test $0x1,%r11b + 4180cc: 0f 85 6e 02 00 00 jne 418340 + 4180d2: 41 83 e3 02 and $0x2,%r11d + 4180d6: 0f 84 a6 fe ff ff je 417f82 + 4180dc: eb 86 jmp 418064 + 4180de: 66 90 xchg %ax,%ax + 4180e0: 44 8b 1d 89 26 2b 00 mov 0x2b2689(%rip),%r11d # 6ca770 + 4180e7: 41 83 4e 04 04 orl $0x4,0x4(%r14) + 4180ec: 44 89 d8 mov %r11d,%eax + 4180ef: 83 e0 05 and $0x5,%eax + 4180f2: 83 f8 05 cmp $0x5,%eax + 4180f5: 0f 84 43 04 00 00 je 41853e + 4180fb: 41 f6 c3 01 test $0x1,%r11b + 4180ff: 0f 85 0b 03 00 00 jne 418410 + 418105: 41 f6 c3 02 test $0x2,%r11b + 418109: 0f 85 55 ff ff ff jne 418064 + 41810f: 4c 8b 6d 10 mov 0x10(%rbp),%r13 + 418113: 48 8b 45 18 mov 0x18(%rbp),%rax + 418117: 49 39 6d 18 cmp %rbp,0x18(%r13) + 41811b: 0f 85 df fd ff ff jne 417f00 + 418121: 48 3b 68 10 cmp 0x10(%rax),%rbp + 418125: 0f 84 af fd ff ff je 417eda + 41812b: 44 89 df mov %r11d,%edi + 41812e: 41 83 4e 04 04 orl $0x4,0x4(%r14) + 418133: 41 89 fd mov %edi,%r13d + 418136: 41 83 e5 02 and $0x2,%r13d + 41813a: 83 e7 01 and $0x1,%edi + 41813d: 0f 84 56 ff ff ff je 418099 + 418143: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 418148: 48 8d 74 24 50 lea 0x50(%rsp),%rsi + 41814d: 31 c9 xor %ecx,%ecx + 41814f: 48 89 ef mov %rbp,%rdi + 418152: ba 10 00 00 00 mov $0x10,%edx + 418157: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 41815c: c6 44 24 50 00 movb $0x0,0x50(%rsp) + 418161: e8 4a 9d 03 00 callq 451eb0 <_itoa_word> + 418166: 48 89 c5 mov %rax,%rbp + 418169: 48 8d 44 24 40 lea 0x40(%rsp),%rax + 41816e: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 418173: 48 39 c5 cmp %rax,%rbp + 418176: 76 3c jbe 4181b4 + 418178: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 41817d: 48 8d 4d ff lea -0x1(%rbp),%rcx + 418181: 48 89 ef mov %rbp,%rdi + 418184: be 30 00 00 00 mov $0x30,%esi + 418189: 4c 89 4c 24 20 mov %r9,0x20(%rsp) + 41818e: 48 89 4c 24 18 mov %rcx,0x18(%rsp) + 418193: 48 8d 14 08 lea (%rax,%rcx,1),%rdx + 418197: 48 29 d7 sub %rdx,%rdi + 41819a: e8 b1 81 fe ff callq 400350 <__rela_iplt_end+0x88> + 41819f: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx + 4181a4: 48 8d 44 24 3f lea 0x3f(%rsp),%rax + 4181a9: 4c 8b 4c 24 20 mov 0x20(%rsp),%r9 + 4181ae: 48 29 c8 sub %rcx,%rax + 4181b1: 48 01 c5 add %rax,%rbp + 4181b4: 48 8b 05 05 51 2b 00 mov 0x2b5105(%rip),%rax # 6cd2c0 <__libc_argv> + 4181bb: ba 38 20 4a 00 mov $0x4a2038,%edx + 4181c0: 49 89 e8 mov %rbp,%r8 + 4181c3: b9 95 20 4a 00 mov $0x4a2095,%ecx + 4181c8: be a8 23 4a 00 mov $0x4a23a8,%esi + 4181cd: 44 89 ef mov %r13d,%edi + 4181d0: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 4181d5: 48 8b 00 mov (%rax),%rax + 4181d8: 48 85 c0 test %rax,%rax + 4181db: 48 0f 45 d0 cmovne %rax,%rdx + 4181df: 31 c0 xor %eax,%eax + 4181e1: e8 da 93 ff ff callq 4115c0 <__libc_message> + 4181e6: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 4181eb: e9 10 fd ff ff jmpq 417f00 + 4181f0: 48 8d 74 24 50 lea 0x50(%rsp),%rsi + 4181f5: 31 c9 xor %ecx,%ecx + 4181f7: ba 10 00 00 00 mov $0x10,%edx + 4181fc: 48 89 df mov %rbx,%rdi + 4181ff: 44 89 5c 24 20 mov %r11d,0x20(%rsp) + 418204: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 418209: c6 44 24 50 00 movb $0x0,0x50(%rsp) + 41820e: e8 9d 9c 03 00 callq 451eb0 <_itoa_word> + 418213: 49 89 c0 mov %rax,%r8 + 418216: 48 8d 44 24 40 lea 0x40(%rsp),%rax + 41821b: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 418220: 44 8b 5c 24 20 mov 0x20(%rsp),%r11d + 418225: 49 39 c0 cmp %rax,%r8 + 418228: 76 50 jbe 41827a + 41822a: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 41822f: 49 8d 48 ff lea -0x1(%r8),%rcx + 418233: 4c 89 c7 mov %r8,%rdi + 418236: be 30 00 00 00 mov $0x30,%esi + 41823b: 44 89 5c 24 30 mov %r11d,0x30(%rsp) + 418240: 4c 89 4c 24 28 mov %r9,0x28(%rsp) + 418245: 48 89 4c 24 20 mov %rcx,0x20(%rsp) + 41824a: 4c 89 44 24 18 mov %r8,0x18(%rsp) + 41824f: 48 8d 14 08 lea (%rax,%rcx,1),%rdx + 418253: 48 29 d7 sub %rdx,%rdi + 418256: e8 f5 80 fe ff callq 400350 <__rela_iplt_end+0x88> + 41825b: 48 8b 4c 24 20 mov 0x20(%rsp),%rcx + 418260: 48 8d 44 24 3f lea 0x3f(%rsp),%rax + 418265: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 + 41826a: 44 8b 5c 24 30 mov 0x30(%rsp),%r11d + 41826f: 4c 8b 4c 24 28 mov 0x28(%rsp),%r9 + 418274: 48 29 c8 sub %rcx,%rax + 418277: 49 01 c0 add %rax,%r8 + 41827a: 48 8b 05 3f 50 2b 00 mov 0x2b503f(%rip),%rax # 6cd2c0 <__libc_argv> + 418281: 44 89 df mov %r11d,%edi + 418284: ba 38 20 4a 00 mov $0x4a2038,%edx + 418289: b9 95 20 4a 00 mov $0x4a2095,%ecx + 41828e: be a8 23 4a 00 mov $0x4a23a8,%esi + 418293: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 418298: 48 8b 00 mov (%rax),%rax + 41829b: 48 85 c0 test %rax,%rax + 41829e: 48 0f 45 d0 cmovne %rax,%rdx + 4182a2: 83 e7 02 and $0x2,%edi + 4182a5: 31 c0 xor %eax,%eax + 4182a7: e8 14 93 ff ff callq 4115c0 <__libc_message> + 4182ac: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 4182b1: e9 0a fd ff ff jmpq 417fc0 + 4182b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4182bd: 00 00 00 + 4182c0: 48 3b 58 28 cmp 0x28(%rax),%rbx + 4182c4: 0f 85 dd 02 00 00 jne 4185a7 + 4182ca: 48 8b 53 28 mov 0x28(%rbx),%rdx + 4182ce: 48 3b 5a 20 cmp 0x20(%rdx),%rbx + 4182d2: 0f 85 cf 02 00 00 jne 4185a7 + 4182d8: 49 83 7b 20 00 cmpq $0x0,0x20(%r11) + 4182dd: 0f 84 03 03 00 00 je 4185e6 + 4182e3: 48 8b 53 28 mov 0x28(%rbx),%rdx + 4182e7: 48 89 50 28 mov %rdx,0x28(%rax) + 4182eb: 48 8b 53 28 mov 0x28(%rbx),%rdx + 4182ef: 48 89 42 20 mov %rax,0x20(%rdx) + 4182f3: e9 c8 fc ff ff jmpq 417fc0 + 4182f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4182ff: 00 + 418300: 48 3b 68 28 cmp 0x28(%rax),%rbp + 418304: 0f 85 06 03 00 00 jne 418610 + 41830a: 48 8b 55 28 mov 0x28(%rbp),%rdx + 41830e: 48 3b 6a 20 cmp 0x20(%rdx),%rbp + 418312: 0f 85 f8 02 00 00 jne 418610 + 418318: 49 83 7d 20 00 cmpq $0x0,0x20(%r13) + 41831d: 0f 84 27 03 00 00 je 41864a + 418323: 48 8b 55 28 mov 0x28(%rbp),%rdx + 418327: 48 89 50 28 mov %rdx,0x28(%rax) + 41832b: 48 8b 55 28 mov 0x28(%rbp),%rdx + 41832f: 48 89 42 20 mov %rax,0x20(%rdx) + 418333: e9 c8 fb ff ff jmpq 417f00 + 418338: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41833f: 00 + 418340: 48 8d 74 24 50 lea 0x50(%rsp),%rsi + 418345: 31 c9 xor %ecx,%ecx + 418347: ba 10 00 00 00 mov $0x10,%edx + 41834c: 48 89 df mov %rbx,%rdi + 41834f: 44 89 5c 24 20 mov %r11d,0x20(%rsp) + 418354: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 418359: c6 44 24 50 00 movb $0x0,0x50(%rsp) + 41835e: e8 4d 9b 03 00 callq 451eb0 <_itoa_word> + 418363: 49 89 c0 mov %rax,%r8 + 418366: 48 8d 44 24 40 lea 0x40(%rsp),%rax + 41836b: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 418370: 44 8b 5c 24 20 mov 0x20(%rsp),%r11d + 418375: 49 39 c0 cmp %rax,%r8 + 418378: 76 50 jbe 4183ca + 41837a: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 41837f: 49 8d 48 ff lea -0x1(%r8),%rcx + 418383: 4c 89 c7 mov %r8,%rdi + 418386: be 30 00 00 00 mov $0x30,%esi + 41838b: 44 89 5c 24 30 mov %r11d,0x30(%rsp) + 418390: 4c 89 4c 24 28 mov %r9,0x28(%rsp) + 418395: 48 89 4c 24 20 mov %rcx,0x20(%rsp) + 41839a: 4c 89 44 24 18 mov %r8,0x18(%rsp) + 41839f: 48 8d 14 08 lea (%rax,%rcx,1),%rdx + 4183a3: 48 29 d7 sub %rdx,%rdi + 4183a6: e8 a5 7f fe ff callq 400350 <__rela_iplt_end+0x88> + 4183ab: 48 8b 4c 24 20 mov 0x20(%rsp),%rcx + 4183b0: 48 8d 44 24 3f lea 0x3f(%rsp),%rax + 4183b5: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 + 4183ba: 44 8b 5c 24 30 mov 0x30(%rsp),%r11d + 4183bf: 4c 8b 4c 24 28 mov 0x28(%rsp),%r9 + 4183c4: 48 29 c8 sub %rcx,%rax + 4183c7: 49 01 c0 add %rax,%r8 + 4183ca: 48 8b 05 ef 4e 2b 00 mov 0x2b4eef(%rip),%rax # 6cd2c0 <__libc_argv> + 4183d1: 44 89 df mov %r11d,%edi + 4183d4: ba 38 20 4a 00 mov $0x4a2038,%edx + 4183d9: b9 78 20 4a 00 mov $0x4a2078,%ecx + 4183de: be a8 23 4a 00 mov $0x4a23a8,%esi + 4183e3: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 4183e8: 48 8b 00 mov (%rax),%rax + 4183eb: 48 85 c0 test %rax,%rax + 4183ee: 48 0f 45 d0 cmovne %rax,%rdx + 4183f2: 83 e7 02 and $0x2,%edi + 4183f5: 31 c0 xor %eax,%eax + 4183f7: e8 c4 91 ff ff callq 4115c0 <__libc_message> + 4183fc: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 418401: e9 7c fb ff ff jmpq 417f82 + 418406: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41840d: 00 00 00 + 418410: 48 8d 74 24 50 lea 0x50(%rsp),%rsi + 418415: 31 c9 xor %ecx,%ecx + 418417: ba 10 00 00 00 mov $0x10,%edx + 41841c: 48 89 ef mov %rbp,%rdi + 41841f: 44 89 5c 24 20 mov %r11d,0x20(%rsp) + 418424: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 418429: c6 44 24 50 00 movb $0x0,0x50(%rsp) + 41842e: e8 7d 9a 03 00 callq 451eb0 <_itoa_word> + 418433: 49 89 c5 mov %rax,%r13 + 418436: 48 8d 44 24 40 lea 0x40(%rsp),%rax + 41843b: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 418440: 44 8b 5c 24 20 mov 0x20(%rsp),%r11d + 418445: 49 39 c5 cmp %rax,%r13 + 418448: 76 46 jbe 418490 + 41844a: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 41844f: 49 8d 4d ff lea -0x1(%r13),%rcx + 418453: 4c 89 ef mov %r13,%rdi + 418456: be 30 00 00 00 mov $0x30,%esi + 41845b: 44 89 5c 24 28 mov %r11d,0x28(%rsp) + 418460: 4c 89 4c 24 20 mov %r9,0x20(%rsp) + 418465: 48 89 4c 24 18 mov %rcx,0x18(%rsp) + 41846a: 48 8d 14 08 lea (%rax,%rcx,1),%rdx + 41846e: 48 29 d7 sub %rdx,%rdi + 418471: e8 da 7e fe ff callq 400350 <__rela_iplt_end+0x88> + 418476: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx + 41847b: 48 8d 44 24 3f lea 0x3f(%rsp),%rax + 418480: 44 8b 5c 24 28 mov 0x28(%rsp),%r11d + 418485: 4c 8b 4c 24 20 mov 0x20(%rsp),%r9 + 41848a: 48 29 c8 sub %rcx,%rax + 41848d: 49 01 c5 add %rax,%r13 + 418490: 48 8b 05 29 4e 2b 00 mov 0x2b4e29(%rip),%rax # 6cd2c0 <__libc_argv> + 418497: 44 89 df mov %r11d,%edi + 41849a: ba 38 20 4a 00 mov $0x4a2038,%edx + 41849f: 4d 89 e8 mov %r13,%r8 + 4184a2: b9 78 20 4a 00 mov $0x4a2078,%ecx + 4184a7: be a8 23 4a 00 mov $0x4a23a8,%esi + 4184ac: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 4184b1: 48 8b 00 mov (%rax),%rax + 4184b4: 48 85 c0 test %rax,%rax + 4184b7: 48 0f 45 d0 cmovne %rax,%rdx + 4184bb: 83 e7 02 and $0x2,%edi + 4184be: 31 c0 xor %eax,%eax + 4184c0: e8 fb 90 ff ff callq 4115c0 <__libc_message> + 4184c5: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 4184ca: e9 ef f9 ff ff jmpq 417ebe + 4184cf: 44 89 df mov %r11d,%edi + 4184d2: ba 95 20 4a 00 mov $0x4a2095,%edx + 4184d7: be 3c ca 4b 00 mov $0x4bca3c,%esi + 4184dc: 83 e7 02 and $0x2,%edi + 4184df: 31 c0 xor %eax,%eax + 4184e1: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 4184e6: e8 d5 90 ff ff callq 4115c0 <__libc_message> + 4184eb: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 4184f0: e9 cb fa ff ff jmpq 417fc0 + 4184f5: 83 e7 02 and $0x2,%edi + 4184f8: ba 95 20 4a 00 mov $0x4a2095,%edx + 4184fd: be 3c ca 4b 00 mov $0x4bca3c,%esi + 418502: 31 c0 xor %eax,%eax + 418504: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 418509: e8 b2 90 ff ff callq 4115c0 <__libc_message> + 41850e: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 418513: e9 e8 f9 ff ff jmpq 417f00 + 418518: 44 89 df mov %r11d,%edi + 41851b: ba 78 20 4a 00 mov $0x4a2078,%edx + 418520: be 3c ca 4b 00 mov $0x4bca3c,%esi + 418525: 83 e7 02 and $0x2,%edi + 418528: 31 c0 xor %eax,%eax + 41852a: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 41852f: e8 8c 90 ff ff callq 4115c0 <__libc_message> + 418534: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 418539: e9 44 fa ff ff jmpq 417f82 + 41853e: 44 89 df mov %r11d,%edi + 418541: ba 78 20 4a 00 mov $0x4a2078,%edx + 418546: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41854b: 83 e7 02 and $0x2,%edi + 41854e: 31 c0 xor %eax,%eax + 418550: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 418555: e8 66 90 ff ff callq 4115c0 <__libc_message> + 41855a: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 41855f: e9 5a f9 ff ff jmpq 417ebe + 418564: 48 8d 4f 58 lea 0x58(%rdi),%rcx + 418568: 48 8d 97 48 08 00 00 lea 0x848(%rdi),%rdx + 41856f: 48 89 c8 mov %rcx,%rax + 418572: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 418578: 48 89 40 18 mov %rax,0x18(%rax) + 41857c: 48 89 40 10 mov %rax,0x10(%rax) + 418580: 48 83 c0 10 add $0x10,%rax + 418584: 48 39 c2 cmp %rax,%rdx + 418587: 75 ef jne 418578 + 418589: 48 81 ff 00 a8 6c 00 cmp $0x6ca800,%rdi + 418590: 0f 84 93 02 00 00 je 418829 + 418596: 8b 47 04 mov 0x4(%rdi),%eax + 418599: 83 c8 02 or $0x2,%eax + 41859c: 83 c8 01 or $0x1,%eax + 41859f: 48 89 4f 58 mov %rcx,0x58(%rdi) + 4185a3: 89 47 04 mov %eax,0x4(%rdi) + 4185a6: c3 retq + 4185a7: 4d 85 f6 test %r14,%r14 + 4185aa: 44 8b 05 bf 21 2b 00 mov 0x2b21bf(%rip),%r8d # 6ca770 + 4185b1: 74 05 je 4185b8 + 4185b3: 41 83 4e 04 04 orl $0x4,0x4(%r14) + 4185b8: 44 89 c2 mov %r8d,%edx + 4185bb: 83 e2 05 and $0x5,%edx + 4185be: 83 fa 05 cmp $0x5,%edx + 4185c1: 0f 84 85 02 00 00 je 41884c + 4185c7: 41 f6 c0 01 test $0x1,%r8b + 4185cb: 0f 85 a3 00 00 00 jne 418674 + 4185d1: 41 83 e0 02 and $0x2,%r8d + 4185d5: 0f 85 89 fa ff ff jne 418064 + 4185db: 49 83 7b 20 00 cmpq $0x0,0x20(%r11) + 4185e0: 0f 85 fd fc ff ff jne 4182e3 + 4185e6: 48 39 c3 cmp %rax,%rbx + 4185e9: 0f 84 50 02 00 00 je 41883f + 4185ef: 49 89 43 20 mov %rax,0x20(%r11) + 4185f3: 48 8b 43 28 mov 0x28(%rbx),%rax + 4185f7: 49 89 43 28 mov %rax,0x28(%r11) + 4185fb: 48 8b 43 20 mov 0x20(%rbx),%rax + 4185ff: 4c 89 58 28 mov %r11,0x28(%rax) + 418603: 48 8b 43 28 mov 0x28(%rbx),%rax + 418607: 4c 89 58 20 mov %r11,0x20(%rax) + 41860b: e9 b0 f9 ff ff jmpq 417fc0 + 418610: 44 8b 1d 59 21 2b 00 mov 0x2b2159(%rip),%r11d # 6ca770 + 418617: 41 83 4e 04 04 orl $0x4,0x4(%r14) + 41861c: 44 89 da mov %r11d,%edx + 41861f: 83 e2 05 and $0x5,%edx + 418622: 83 fa 05 cmp $0x5,%edx + 418625: 0f 84 62 02 00 00 je 41888d + 41862b: 41 f6 c3 01 test $0x1,%r11b + 41862f: 0f 85 2a 01 00 00 jne 41875f + 418635: 41 83 e3 02 and $0x2,%r11d + 418639: 0f 85 25 fa ff ff jne 418064 + 41863f: 49 83 7d 20 00 cmpq $0x0,0x20(%r13) + 418644: 0f 85 d9 fc ff ff jne 418323 + 41864a: 48 39 c5 cmp %rax,%rbp + 41864d: 0f 84 2d 02 00 00 je 418880 + 418653: 49 89 45 20 mov %rax,0x20(%r13) + 418657: 48 8b 45 28 mov 0x28(%rbp),%rax + 41865b: 49 89 45 28 mov %rax,0x28(%r13) + 41865f: 48 8b 45 20 mov 0x20(%rbp),%rax + 418663: 4c 89 68 28 mov %r13,0x28(%rax) + 418667: 48 8b 45 28 mov 0x28(%rbp),%rax + 41866b: 4c 89 68 20 mov %r13,0x20(%rax) + 41866f: e9 8c f8 ff ff jmpq 417f00 + 418674: 48 8d 74 24 50 lea 0x50(%rsp),%rsi + 418679: 31 c9 xor %ecx,%ecx + 41867b: ba 10 00 00 00 mov $0x10,%edx + 418680: 48 89 df mov %rbx,%rdi + 418683: 44 89 44 24 28 mov %r8d,0x28(%rsp) + 418688: 4c 89 5c 24 20 mov %r11,0x20(%rsp) + 41868d: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 418692: c6 44 24 50 00 movb $0x0,0x50(%rsp) + 418697: e8 14 98 03 00 callq 451eb0 <_itoa_word> + 41869c: 48 89 c1 mov %rax,%rcx + 41869f: 48 8d 44 24 40 lea 0x40(%rsp),%rax + 4186a4: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 4186a9: 4c 8b 5c 24 20 mov 0x20(%rsp),%r11 + 4186ae: 44 8b 44 24 28 mov 0x28(%rsp),%r8d + 4186b3: 48 39 c1 cmp %rax,%rcx + 4186b6: 76 5a jbe 418712 + 4186b8: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 4186bd: 4c 8d 51 ff lea -0x1(%rcx),%r10 + 4186c1: 48 89 cf mov %rcx,%rdi + 4186c4: be 30 00 00 00 mov $0x30,%esi + 4186c9: 44 89 44 24 3c mov %r8d,0x3c(%rsp) + 4186ce: 4c 89 5c 24 30 mov %r11,0x30(%rsp) + 4186d3: 4c 89 4c 24 28 mov %r9,0x28(%rsp) + 4186d8: 4c 89 54 24 20 mov %r10,0x20(%rsp) + 4186dd: 4a 8d 14 10 lea (%rax,%r10,1),%rdx + 4186e1: 48 89 4c 24 18 mov %rcx,0x18(%rsp) + 4186e6: 48 29 d7 sub %rdx,%rdi + 4186e9: e8 62 7c fe ff callq 400350 <__rela_iplt_end+0x88> + 4186ee: 4c 8b 54 24 20 mov 0x20(%rsp),%r10 + 4186f3: 48 8d 44 24 3f lea 0x3f(%rsp),%rax + 4186f8: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx + 4186fd: 44 8b 44 24 3c mov 0x3c(%rsp),%r8d + 418702: 4c 8b 5c 24 30 mov 0x30(%rsp),%r11 + 418707: 4c 8b 4c 24 28 mov 0x28(%rsp),%r9 + 41870c: 4c 29 d0 sub %r10,%rax + 41870f: 48 01 c1 add %rax,%rcx + 418712: 48 8b 05 a7 4b 2b 00 mov 0x2b4ba7(%rip),%rax # 6cd2c0 <__libc_argv> + 418719: 44 89 c7 mov %r8d,%edi + 41871c: ba 38 20 4a 00 mov $0x4a2038,%edx + 418721: 49 89 c8 mov %rcx,%r8 + 418724: be a8 23 4a 00 mov $0x4a23a8,%esi + 418729: b9 f0 23 4a 00 mov $0x4a23f0,%ecx + 41872e: 4c 89 5c 24 20 mov %r11,0x20(%rsp) + 418733: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 418738: 48 8b 00 mov (%rax),%rax + 41873b: 48 85 c0 test %rax,%rax + 41873e: 48 0f 45 d0 cmovne %rax,%rdx + 418742: 31 c0 xor %eax,%eax + 418744: 83 e7 02 and $0x2,%edi + 418747: e8 74 8e ff ff callq 4115c0 <__libc_message> + 41874c: 48 8b 43 20 mov 0x20(%rbx),%rax + 418750: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 418755: 4c 8b 5c 24 20 mov 0x20(%rsp),%r11 + 41875a: e9 79 fb ff ff jmpq 4182d8 + 41875f: 48 8d 74 24 50 lea 0x50(%rsp),%rsi + 418764: 31 c9 xor %ecx,%ecx + 418766: ba 10 00 00 00 mov $0x10,%edx + 41876b: 48 89 ef mov %rbp,%rdi + 41876e: 44 89 5c 24 20 mov %r11d,0x20(%rsp) + 418773: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 418778: c6 44 24 50 00 movb $0x0,0x50(%rsp) + 41877d: e8 2e 97 03 00 callq 451eb0 <_itoa_word> + 418782: 49 89 c0 mov %rax,%r8 + 418785: 48 8d 44 24 40 lea 0x40(%rsp),%rax + 41878a: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 41878f: 44 8b 5c 24 20 mov 0x20(%rsp),%r11d + 418794: 49 39 c0 cmp %rax,%r8 + 418797: 76 50 jbe 4187e9 + 418799: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 41879e: 49 8d 48 ff lea -0x1(%r8),%rcx + 4187a2: 4c 89 c7 mov %r8,%rdi + 4187a5: be 30 00 00 00 mov $0x30,%esi + 4187aa: 44 89 5c 24 30 mov %r11d,0x30(%rsp) + 4187af: 4c 89 4c 24 28 mov %r9,0x28(%rsp) + 4187b4: 48 89 4c 24 20 mov %rcx,0x20(%rsp) + 4187b9: 4c 89 44 24 18 mov %r8,0x18(%rsp) + 4187be: 48 8d 14 08 lea (%rax,%rcx,1),%rdx + 4187c2: 48 29 d7 sub %rdx,%rdi + 4187c5: e8 86 7b fe ff callq 400350 <__rela_iplt_end+0x88> + 4187ca: 48 8b 4c 24 20 mov 0x20(%rsp),%rcx + 4187cf: 48 8d 44 24 3f lea 0x3f(%rsp),%rax + 4187d4: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 + 4187d9: 44 8b 5c 24 30 mov 0x30(%rsp),%r11d + 4187de: 4c 8b 4c 24 28 mov 0x28(%rsp),%r9 + 4187e3: 48 29 c8 sub %rcx,%rax + 4187e6: 49 01 c0 add %rax,%r8 + 4187e9: 48 8b 05 d0 4a 2b 00 mov 0x2b4ad0(%rip),%rax # 6cd2c0 <__libc_argv> + 4187f0: 44 89 df mov %r11d,%edi + 4187f3: ba 38 20 4a 00 mov $0x4a2038,%edx + 4187f8: b9 f0 23 4a 00 mov $0x4a23f0,%ecx + 4187fd: be a8 23 4a 00 mov $0x4a23a8,%esi + 418802: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 418807: 48 8b 00 mov (%rax),%rax + 41880a: 48 85 c0 test %rax,%rax + 41880d: 48 0f 45 d0 cmovne %rax,%rdx + 418811: 31 c0 xor %eax,%eax + 418813: 83 e7 02 and $0x2,%edi + 418816: e8 a5 8d ff ff callq 4115c0 <__libc_message> + 41881b: 48 8b 45 20 mov 0x20(%rbp),%rax + 41881f: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 418824: e9 ef fa ff ff jmpq 418318 + 418829: 48 c7 05 04 3e 2b 00 movq $0x80,0x2b3e04(%rip) # 6cc638 + 418830: 80 00 00 00 + 418834: 8b 05 ca 1f 2b 00 mov 0x2b1fca(%rip),%eax # 6ca804 + 41883a: e9 5d fd ff ff jmpq 41859c + 41883f: 4d 89 5b 28 mov %r11,0x28(%r11) + 418843: 4d 89 5b 20 mov %r11,0x20(%r11) + 418847: e9 74 f7 ff ff jmpq 417fc0 + 41884c: 44 89 c7 mov %r8d,%edi + 41884f: 31 c0 xor %eax,%eax + 418851: ba f0 23 4a 00 mov $0x4a23f0,%edx + 418856: 83 e7 02 and $0x2,%edi + 418859: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41885e: 4c 89 5c 24 20 mov %r11,0x20(%rsp) + 418863: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 418868: e8 53 8d ff ff callq 4115c0 <__libc_message> + 41886d: 48 8b 43 20 mov 0x20(%rbx),%rax + 418871: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 418876: 4c 8b 5c 24 20 mov 0x20(%rsp),%r11 + 41887b: e9 58 fa ff ff jmpq 4182d8 + 418880: 4d 89 6d 28 mov %r13,0x28(%r13) + 418884: 4d 89 6d 20 mov %r13,0x20(%r13) + 418888: e9 73 f6 ff ff jmpq 417f00 + 41888d: 44 89 df mov %r11d,%edi + 418890: 31 c0 xor %eax,%eax + 418892: ba f0 23 4a 00 mov $0x4a23f0,%edx + 418897: 83 e7 02 and $0x2,%edi + 41889a: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41889f: 4c 89 4c 24 18 mov %r9,0x18(%rsp) + 4188a4: e8 17 8d ff ff callq 4115c0 <__libc_message> + 4188a9: 48 8b 45 20 mov 0x20(%rbp),%rax + 4188ad: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 + 4188b2: e9 61 fa ff ff jmpq 418318 + 4188b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4188be: 00 00 + +00000000004188c0 : + 4188c0: 41 54 push %r12 + 4188c2: 55 push %rbp + 4188c3: 49 89 f4 mov %rsi,%r12 + 4188c6: 53 push %rbx + 4188c7: 48 8b 47 58 mov 0x58(%rdi),%rax + 4188cb: 48 89 fb mov %rdi,%rbx + 4188ce: 48 85 c0 test %rax,%rax + 4188d1: 0f 84 f4 00 00 00 je 4189cb + 4188d7: 48 8b 68 08 mov 0x8(%rax),%rbp + 4188db: 48 8d 7b 08 lea 0x8(%rbx),%rdi + 4188df: 4c 8d 43 58 lea 0x58(%rbx),%r8 + 4188e3: 45 31 d2 xor %r10d,%r10d + 4188e6: 45 31 c9 xor %r9d,%r9d + 4188e9: 48 89 e9 mov %rbp,%rcx + 4188ec: 48 83 e1 f8 and $0xfffffffffffffff8,%rcx + 4188f0: 48 8b 07 mov (%rdi),%rax + 4188f3: 48 85 c0 test %rax,%rax + 4188f6: 74 20 je 418918 + 4188f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4188ff: 00 + 418900: 48 8b 50 08 mov 0x8(%rax),%rdx + 418904: 48 8b 40 10 mov 0x10(%rax),%rax + 418908: 41 83 c2 01 add $0x1,%r10d + 41890c: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx + 418910: 49 01 d1 add %rdx,%r9 + 418913: 48 85 c0 test %rax,%rax + 418916: 75 e8 jne 418900 + 418918: 48 83 c7 08 add $0x8,%rdi + 41891c: 4c 39 c7 cmp %r8,%rdi + 41891f: 75 cf jne 4188f0 + 418921: 4c 8d 9b 48 08 00 00 lea 0x848(%rbx),%r11 + 418928: 4c 01 c9 add %r9,%rcx + 41892b: bf 01 00 00 00 mov $0x1,%edi + 418930: 49 8b 40 18 mov 0x18(%r8),%rax + 418934: 49 39 c0 cmp %rax,%r8 + 418937: 74 1e je 418957 + 418939: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 418940: 48 8b 50 08 mov 0x8(%rax),%rdx + 418944: 48 8b 40 18 mov 0x18(%rax),%rax + 418948: 83 c7 01 add $0x1,%edi + 41894b: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx + 41894f: 48 01 d1 add %rdx,%rcx + 418952: 49 39 c0 cmp %rax,%r8 + 418955: 75 e9 jne 418940 + 418957: 49 83 c0 10 add $0x10,%r8 + 41895b: 4d 39 c3 cmp %r8,%r11 + 41895e: 75 d0 jne 418930 + 418960: 48 8b 93 80 08 00 00 mov 0x880(%rbx),%rdx + 418967: 41 8b 44 24 1c mov 0x1c(%r12),%eax + 41896c: 45 01 54 24 08 add %r10d,0x8(%r12) + 418971: 41 01 7c 24 04 add %edi,0x4(%r12) + 418976: 01 d0 add %edx,%eax + 418978: 41 01 4c 24 20 add %ecx,0x20(%r12) + 41897d: 41 01 14 24 add %edx,(%r12) + 418981: 29 c8 sub %ecx,%eax + 418983: 45 01 4c 24 18 add %r9d,0x18(%r12) + 418988: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx + 41898f: 41 89 44 24 1c mov %eax,0x1c(%r12) + 418994: 74 05 je 41899b + 418996: 5b pop %rbx + 418997: 5d pop %rbp + 418998: 41 5c pop %r12 + 41899a: c3 retq + 41899b: 8b 05 27 1e 2b 00 mov 0x2b1e27(%rip),%eax # 6ca7c8 + 4189a1: 83 e5 f8 and $0xfffffff8,%ebp + 4189a4: 5b pop %rbx + 4189a5: 41 89 44 24 0c mov %eax,0xc(%r12) + 4189aa: 48 8b 05 27 1e 2b 00 mov 0x2b1e27(%rip),%rax # 6ca7d8 + 4189b1: 41 89 44 24 10 mov %eax,0x10(%r12) + 4189b6: 48 8b 05 2b 1e 2b 00 mov 0x2b1e2b(%rip),%rax # 6ca7e8 + 4189bd: 41 89 6c 24 24 mov %ebp,0x24(%r12) + 4189c2: 5d pop %rbp + 4189c3: 41 89 44 24 14 mov %eax,0x14(%r12) + 4189c8: 41 5c pop %r12 + 4189ca: c3 retq + 4189cb: e8 60 f4 ff ff callq 417e30 + 4189d0: 48 8b 43 58 mov 0x58(%rbx),%rax + 4189d4: e9 fe fe ff ff jmpq 4188d7 + 4189d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +00000000004189e0 : + 4189e0: 48 85 ff test %rdi,%rdi + 4189e3: 0f 84 1b 04 00 00 je 418e04 + 4189e9: 41 57 push %r15 + 4189eb: 41 56 push %r14 + 4189ed: 49 89 f8 mov %rdi,%r8 + 4189f0: 41 55 push %r13 + 4189f2: 41 54 push %r12 + 4189f4: be 01 00 00 00 mov $0x1,%esi + 4189f9: 55 push %rbp + 4189fa: 53 push %rbx + 4189fb: 31 c0 xor %eax,%eax + 4189fd: 48 83 ec 38 sub $0x38,%rsp + 418a01: 83 3d b4 47 2b 00 00 cmpl $0x0,0x2b47b4(%rip) # 6cd1bc <__libc_multiple_threads> + 418a08: 74 0c je 418a16 + 418a0a: f0 0f b1 35 ee 1d 2b lock cmpxchg %esi,0x2b1dee(%rip) # 6ca800 + 418a11: 00 + 418a12: 75 0b jne 418a1f + 418a14: eb 23 jmp 418a39 + 418a16: 0f b1 35 e3 1d 2b 00 cmpxchg %esi,0x2b1de3(%rip) # 6ca800 + 418a1d: 74 1a je 418a39 + 418a1f: 48 8d 3d da 1d 2b 00 lea 0x2b1dda(%rip),%rdi # 6ca800 + 418a26: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 418a2d: e8 9e 9b 02 00 callq 4425d0 <__lll_lock_wait_private> + 418a32: 48 81 c4 80 00 00 00 add $0x80,%rsp + 418a39: 41 f6 c0 0f test $0xf,%r8b + 418a3d: 0f 85 35 04 00 00 jne 418e78 + 418a43: 49 8d 58 f0 lea -0x10(%r8),%rbx + 418a47: 49 8b 40 f8 mov -0x8(%r8),%rax + 418a4b: 48 89 df mov %rbx,%rdi + 418a4e: 48 89 d9 mov %rbx,%rcx + 418a51: 48 c1 e9 0b shr $0xb,%rcx + 418a55: 48 c1 ef 03 shr $0x3,%rdi + 418a59: 48 89 c2 mov %rax,%rdx + 418a5c: 31 cf xor %ecx,%edi + 418a5e: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx + 418a62: b9 02 00 00 00 mov $0x2,%ecx + 418a67: 40 80 ff 01 cmp $0x1,%dil + 418a6b: 0f 44 f9 cmove %ecx,%edi + 418a6e: a8 02 test $0x2,%al + 418a70: 0f 84 9a 03 00 00 je 418e10 + 418a76: 48 8b 05 03 27 2b 00 mov 0x2b2703(%rip),%rax # 6cb180 <_dl_pagesize> + 418a7d: 48 8d 48 ff lea -0x1(%rax),%rcx + 418a81: 4c 89 c0 mov %r8,%rax + 418a84: 48 21 c8 and %rcx,%rax + 418a87: 48 8d 70 f0 lea -0x10(%rax),%rsi + 418a8b: 48 f7 c6 ef ff ff ff test $0xffffffffffffffef,%rsi + 418a92: 74 34 je 418ac8 + 418a94: 48 8d 70 ff lea -0x1(%rax),%rsi + 418a98: 48 81 fe fe 1f 00 00 cmp $0x1ffe,%rsi + 418a9f: 77 27 ja 418ac8 + 418aa1: 48 8d 70 c0 lea -0x40(%rax),%rsi + 418aa5: 48 f7 c6 bf ff ff ff test $0xffffffffffffffbf,%rsi + 418aac: 74 1a je 418ac8 + 418aae: 48 8d b0 00 ff ff ff lea -0x100(%rax),%rsi + 418ab5: 48 f7 c6 ff fe ff ff test $0xfffffffffffffeff,%rsi + 418abc: 0f 85 5e 06 00 00 jne 419120 + 418ac2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 418ac8: 49 8b 40 f8 mov -0x8(%r8),%rax + 418acc: 83 e0 03 and $0x3,%eax + 418acf: 48 83 f8 02 cmp $0x2,%rax + 418ad3: 0f 85 9f 03 00 00 jne 418e78 + 418ad9: 49 8b 40 f0 mov -0x10(%r8),%rax + 418add: 48 89 de mov %rbx,%rsi + 418ae0: 48 29 c6 sub %rax,%rsi + 418ae3: 48 01 d0 add %rdx,%rax + 418ae6: 48 09 f0 or %rsi,%rax + 418ae9: 48 85 c8 test %rcx,%rax + 418aec: 0f 85 86 03 00 00 jne 418e78 + 418af2: 48 83 ea 01 sub $0x1,%rdx + 418af6: 40 0f b6 ff movzbl %dil,%edi + 418afa: 48 8d 34 13 lea (%rbx,%rdx,1),%rsi + 418afe: 0f b6 06 movzbl (%rsi),%eax + 418b01: 48 39 f8 cmp %rdi,%rax + 418b04: 48 89 c1 mov %rax,%rcx + 418b07: 74 3f je 418b48 + 418b09: 48 85 c0 test %rax,%rax + 418b0c: 0f 84 66 03 00 00 je 418e78 + 418b12: 48 8d 48 10 lea 0x10(%rax),%rcx + 418b16: 48 39 ca cmp %rcx,%rdx + 418b19: 73 1b jae 418b36 + 418b1b: e9 58 03 00 00 jmpq 418e78 + 418b20: 48 85 c0 test %rax,%rax + 418b23: 0f 84 4f 03 00 00 je 418e78 + 418b29: 48 8d 48 10 lea 0x10(%rax),%rcx + 418b2d: 48 39 d1 cmp %rdx,%rcx + 418b30: 0f 87 42 03 00 00 ja 418e78 + 418b36: 48 29 c2 sub %rax,%rdx + 418b39: 48 8d 34 13 lea (%rbx,%rdx,1),%rsi + 418b3d: 0f b6 06 movzbl (%rsi),%eax + 418b40: 48 39 f8 cmp %rdi,%rax + 418b43: 48 89 c1 mov %rax,%rcx + 418b46: 75 d8 jne 418b20 + 418b48: f7 d1 not %ecx + 418b4a: 48 85 db test %rbx,%rbx + 418b4d: 88 0e mov %cl,(%rsi) + 418b4f: 0f 84 23 03 00 00 je 418e78 + 418b55: 4d 8b 60 f8 mov -0x8(%r8),%r12 + 418b59: 41 f6 c4 02 test $0x2,%r12b + 418b5d: 0f 85 55 02 00 00 jne 418db8 + 418b63: 4c 89 e5 mov %r12,%rbp + 418b66: 48 83 e5 f8 and $0xfffffffffffffff8,%rbp + 418b6a: 48 89 e8 mov %rbp,%rax + 418b6d: 48 f7 d8 neg %rax + 418b70: 48 39 c3 cmp %rax,%rbx + 418b73: 0f 87 e7 04 00 00 ja 419060 + 418b79: f6 c3 0f test $0xf,%bl + 418b7c: 0f 85 de 04 00 00 jne 419060 + 418b82: 48 83 fd 1f cmp $0x1f,%rbp + 418b86: 0f 86 64 05 00 00 jbe 4190f0 + 418b8c: 41 f6 c4 08 test $0x8,%r12b + 418b90: 0f 85 5a 05 00 00 jne 4190f0 + 418b96: 48 3b 2d 9b 3a 2b 00 cmp 0x2b3a9b(%rip),%rbp # 6cc638 + 418b9d: 0f 86 a5 03 00 00 jbe 418f48 + 418ba3: 48 8b 05 ae 1c 2b 00 mov 0x2b1cae(%rip),%rax # 6ca858 + 418baa: 4c 8d 34 2b lea (%rbx,%rbp,1),%r14 + 418bae: 44 8b 2d 4f 1c 2b 00 mov 0x2b1c4f(%rip),%r13d # 6ca804 + 418bb5: 48 39 c3 cmp %rax,%rbx + 418bb8: 0f 84 94 06 00 00 je 419252 + 418bbe: 41 f6 c5 02 test $0x2,%r13b + 418bc2: 0f 84 af 06 00 00 je 419277 + 418bc8: 49 8b 46 08 mov 0x8(%r14),%rax + 418bcc: a8 01 test $0x1,%al + 418bce: 0f 84 c2 06 00 00 je 419296 + 418bd4: 49 89 c7 mov %rax,%r15 + 418bd7: 49 83 e7 f8 and $0xfffffffffffffff8,%r15 + 418bdb: 48 83 f8 10 cmp $0x10,%rax + 418bdf: 0f 86 4e 06 00 00 jbe 419233 + 418be5: 4c 3b 3d 94 24 2b 00 cmp 0x2b2494(%rip),%r15 # 6cb080 + 418bec: 0f 83 41 06 00 00 jae 419233 + 418bf2: 8b 35 3c 3a 2b 00 mov 0x2b3a3c(%rip),%esi # 6cc634 + 418bf8: 85 f6 test %esi,%esi + 418bfa: 0f 85 b0 06 00 00 jne 4192b0 + 418c00: 41 83 e4 01 and $0x1,%r12d + 418c04: 0f 85 8e 00 00 00 jne 418c98 + 418c0a: 49 8b 40 f0 mov -0x10(%r8),%rax + 418c0e: 48 29 c3 sub %rax,%rbx + 418c11: 48 01 c5 add %rax,%rbp + 418c14: 48 8b 43 08 mov 0x8(%rbx),%rax + 418c18: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 418c1c: 48 3b 04 03 cmp (%rbx,%rax,1),%rax + 418c20: 0f 85 1a 07 00 00 jne 419340 + 418c26: 4c 8b 63 10 mov 0x10(%rbx),%r12 + 418c2a: 48 8b 43 18 mov 0x18(%rbx),%rax + 418c2e: 49 3b 5c 24 18 cmp 0x18(%r12),%rbx + 418c33: 0f 85 8b 06 00 00 jne 4192c4 + 418c39: 48 3b 58 10 cmp 0x10(%rax),%rbx + 418c3d: 0f 85 81 06 00 00 jne 4192c4 + 418c43: 48 81 7b 08 ff 03 00 cmpq $0x3ff,0x8(%rbx) + 418c4a: 00 + 418c4b: 49 89 44 24 18 mov %rax,0x18(%r12) + 418c50: 4c 89 60 10 mov %r12,0x10(%rax) + 418c54: 76 42 jbe 418c98 + 418c56: 48 8b 43 20 mov 0x20(%rbx),%rax + 418c5a: 48 85 c0 test %rax,%rax + 418c5d: 74 39 je 418c98 + 418c5f: 48 3b 58 28 cmp 0x28(%rax),%rbx + 418c63: 0f 85 92 0a 00 00 jne 4196fb + 418c69: 48 8b 53 28 mov 0x28(%rbx),%rdx + 418c6d: 48 3b 5a 20 cmp 0x20(%rdx),%rbx + 418c71: 0f 85 84 0a 00 00 jne 4196fb + 418c77: 49 83 7c 24 20 00 cmpq $0x0,0x20(%r12) + 418c7d: 0f 84 4c 0a 00 00 je 4196cf + 418c83: 48 8b 53 28 mov 0x28(%rbx),%rdx + 418c87: 48 89 50 28 mov %rdx,0x28(%rax) + 418c8b: 48 8b 53 28 mov 0x28(%rbx),%rdx + 418c8f: 48 89 42 20 mov %rax,0x20(%rdx) + 418c93: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 418c98: 4c 3b 35 b9 1b 2b 00 cmp 0x2b1bb9(%rip),%r14 # 6ca858 + 418c9f: 0f 84 b8 05 00 00 je 41925d + 418ca5: 43 f6 44 3e 08 01 testb $0x1,0x8(%r14,%r15,1) + 418cab: 0f 85 97 04 00 00 jne 419148 + 418cb1: 49 8b 46 08 mov 0x8(%r14),%rax + 418cb5: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 418cb9: 49 3b 04 06 cmp (%r14,%rax,1),%rax + 418cbd: 0f 85 f8 06 00 00 jne 4193bb + 418cc3: 4d 8b 66 10 mov 0x10(%r14),%r12 + 418cc7: 49 8b 46 18 mov 0x18(%r14),%rax + 418ccb: 4d 3b 74 24 18 cmp 0x18(%r12),%r14 + 418cd0: 0f 85 2a 06 00 00 jne 419300 + 418cd6: 4c 3b 70 10 cmp 0x10(%rax),%r14 + 418cda: 0f 85 20 06 00 00 jne 419300 + 418ce0: 49 81 7e 08 ff 03 00 cmpq $0x3ff,0x8(%r14) + 418ce7: 00 + 418ce8: 49 89 44 24 18 mov %rax,0x18(%r12) + 418ced: 4c 89 60 10 mov %r12,0x10(%rax) + 418cf1: 76 0d jbe 418d00 + 418cf3: 49 8b 46 20 mov 0x20(%r14),%rax + 418cf7: 48 85 c0 test %rax,%rax + 418cfa: 0f 85 3b 08 00 00 jne 41953b + 418d00: 4c 01 fd add %r15,%rbp + 418d03: 48 8b 05 5e 1b 2b 00 mov 0x2b1b5e(%rip),%rax # 6ca868 + 418d0a: 44 8b 2d f3 1a 2b 00 mov 0x2b1af3(%rip),%r13d # 6ca804 + 418d11: 41 bc 48 24 4a 00 mov $0x4a2448,%r12d + 418d17: 48 81 78 18 58 a8 6c cmpq $0x6ca858,0x18(%rax) + 418d1e: 00 + 418d1f: 0f 85 cd 02 00 00 jne 418ff2 + 418d25: 48 81 fd ff 03 00 00 cmp $0x3ff,%rbp + 418d2c: 48 89 43 10 mov %rax,0x10(%rbx) + 418d30: 48 c7 43 18 58 a8 6c movq $0x6ca858,0x18(%rbx) + 418d37: 00 + 418d38: 76 10 jbe 418d4a + 418d3a: 48 c7 43 20 00 00 00 movq $0x0,0x20(%rbx) + 418d41: 00 + 418d42: 48 c7 43 28 00 00 00 movq $0x0,0x28(%rbx) + 418d49: 00 + 418d4a: 48 89 1d 17 1b 2b 00 mov %rbx,0x2b1b17(%rip) # 6ca868 + 418d51: 48 89 58 18 mov %rbx,0x18(%rax) + 418d55: 48 89 e8 mov %rbp,%rax + 418d58: 48 83 c8 01 or $0x1,%rax + 418d5c: 48 89 43 08 mov %rax,0x8(%rbx) + 418d60: 48 89 2c 2b mov %rbp,(%rbx,%rbp,1) + 418d64: 48 81 fd ff ff 00 00 cmp $0xffff,%rbp + 418d6b: 0f 86 af 02 00 00 jbe 419020 + 418d71: f6 05 8c 1a 2b 00 01 testb $0x1,0x2b1a8c(%rip) # 6ca804 + 418d78: 0f 84 23 05 00 00 je 4192a1 + 418d7e: 48 8b 05 d3 1a 2b 00 mov 0x2b1ad3(%rip),%rax # 6ca858 + 418d85: 48 8b 40 08 mov 0x8(%rax),%rax + 418d89: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 418d8d: 48 3b 05 0c 1a 2b 00 cmp 0x2b1a0c(%rip),%rax # 6ca7a0 + 418d94: 0f 82 86 02 00 00 jb 419020 + 418d9a: 48 8b 3d 07 1a 2b 00 mov 0x2b1a07(%rip),%rdi # 6ca7a8 + 418da1: ba 80 b0 6c 00 mov $0x6cb080,%edx + 418da6: be 58 a8 6c 00 mov $0x6ca858,%esi + 418dab: e8 f0 e5 ff ff callq 4173a0 + 418db0: e9 6b 02 00 00 jmpq 419020 + 418db5: 0f 1f 00 nopl (%rax) + 418db8: 83 3d fd 43 2b 00 00 cmpl $0x0,0x2b43fd(%rip) # 6cd1bc <__libc_multiple_threads> + 418dbf: 74 0b je 418dcc + 418dc1: f0 ff 0d 38 1a 2b 00 lock decl 0x2b1a38(%rip) # 6ca800 + 418dc8: 75 0a jne 418dd4 + 418dca: eb 22 jmp 418dee + 418dcc: ff 0d 2e 1a 2b 00 decl 0x2b1a2e(%rip) # 6ca800 + 418dd2: 74 1a je 418dee + 418dd4: 48 8d 3d 25 1a 2b 00 lea 0x2b1a25(%rip),%rdi # 6ca800 + 418ddb: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 418de2: e8 19 98 02 00 callq 442600 <__lll_unlock_wake_private> + 418de7: 48 81 c4 80 00 00 00 add $0x80,%rsp + 418dee: 48 89 df mov %rbx,%rdi + 418df1: e8 fa ee ff ff callq 417cf0 + 418df6: 48 83 c4 38 add $0x38,%rsp + 418dfa: 5b pop %rbx + 418dfb: 5d pop %rbp + 418dfc: 41 5c pop %r12 + 418dfe: 41 5d pop %r13 + 418e00: 41 5e pop %r14 + 418e02: 41 5f pop %r15 + 418e04: f3 c3 repz retq + 418e06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 418e0d: 00 00 00 + 418e10: 8b 0d ee 19 2b 00 mov 0x2b19ee(%rip),%ecx # 6ca804 + 418e16: 83 e1 02 and $0x2,%ecx + 418e19: 75 1c jne 418e37 + 418e1b: 48 8b 35 ce 19 2b 00 mov 0x2b19ce(%rip),%rsi # 6ca7f0 + 418e22: 48 39 f3 cmp %rsi,%rbx + 418e25: 72 51 jb 418e78 + 418e27: 48 03 35 52 22 2b 00 add 0x2b2252(%rip),%rsi # 6cb080 + 418e2e: 4c 8d 0c 13 lea (%rbx,%rdx,1),%r9 + 418e32: 49 39 f1 cmp %rsi,%r9 + 418e35: 73 41 jae 418e78 + 418e37: 48 83 fa 1f cmp $0x1f,%rdx + 418e3b: 76 3b jbe 418e78 + 418e3d: a8 08 test $0x8,%al + 418e3f: 75 37 jne 418e78 + 418e41: 41 f6 44 10 f8 01 testb $0x1,-0x8(%r8,%rdx,1) + 418e47: 74 2f je 418e78 + 418e49: a8 01 test $0x1,%al + 418e4b: 0f 85 8f 00 00 00 jne 418ee0 + 418e51: 49 8b 40 f0 mov -0x10(%r8),%rax + 418e55: a8 0f test $0xf,%al + 418e57: 75 1f jne 418e78 + 418e59: 85 c9 test %ecx,%ecx + 418e5b: 48 89 d9 mov %rbx,%rcx + 418e5e: 0f 84 a4 02 00 00 je 419108 + 418e64: 48 29 c1 sub %rax,%rcx + 418e67: 48 8b 49 08 mov 0x8(%rcx),%rcx + 418e6b: 48 83 e1 f8 and $0xfffffffffffffff8,%rcx + 418e6f: 48 39 c8 cmp %rcx,%rax + 418e72: 74 6c je 418ee0 + 418e74: 0f 1f 40 00 nopl 0x0(%rax) + 418e78: 83 3d 3d 43 2b 00 00 cmpl $0x0,0x2b433d(%rip) # 6cd1bc <__libc_multiple_threads> + 418e7f: 74 0b je 418e8c + 418e81: f0 ff 0d 78 19 2b 00 lock decl 0x2b1978(%rip) # 6ca800 + 418e88: 75 0a jne 418e94 + 418e8a: eb 22 jmp 418eae + 418e8c: ff 0d 6e 19 2b 00 decl 0x2b196e(%rip) # 6ca800 + 418e92: 74 1a je 418eae + 418e94: 48 8d 3d 65 19 2b 00 lea 0x2b1965(%rip),%rdi # 6ca800 + 418e9b: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 418ea2: e8 59 97 02 00 callq 442600 <__lll_unlock_wake_private> + 418ea7: 48 81 c4 80 00 00 00 add $0x80,%rsp + 418eae: 8b 1d bc 18 2b 00 mov 0x2b18bc(%rip),%ebx # 6ca770 + 418eb4: 83 0d 49 19 2b 00 04 orl $0x4,0x2b1949(%rip) # 6ca804 + 418ebb: 89 d8 mov %ebx,%eax + 418ebd: 83 e0 05 and $0x5,%eax + 418ec0: 83 f8 05 cmp $0x5,%eax + 418ec3: 0f 84 d7 04 00 00 je 4193a0 + 418ec9: f6 c3 01 test $0x1,%bl + 418ecc: 0f 85 80 02 00 00 jne 419152 + 418ed2: 83 e3 02 and $0x2,%ebx + 418ed5: 0f 84 1b ff ff ff je 418df6 + 418edb: e8 20 4d ff ff callq 40dc00 + 418ee0: 48 83 c2 07 add $0x7,%rdx + 418ee4: 40 0f b6 ff movzbl %dil,%edi + 418ee8: 48 8d 34 13 lea (%rbx,%rdx,1),%rsi + 418eec: 0f b6 06 movzbl (%rsi),%eax + 418eef: 48 39 f8 cmp %rdi,%rax + 418ef2: 48 89 c1 mov %rax,%rcx + 418ef5: 0f 84 4d fc ff ff je 418b48 + 418efb: 48 85 c0 test %rax,%rax + 418efe: 0f 84 74 ff ff ff je 418e78 + 418f04: 48 8d 48 10 lea 0x10(%rax),%rcx + 418f08: 48 39 ca cmp %rcx,%rdx + 418f0b: 73 21 jae 418f2e + 418f0d: e9 66 ff ff ff jmpq 418e78 + 418f12: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 418f18: 48 85 c0 test %rax,%rax + 418f1b: 0f 84 57 ff ff ff je 418e78 + 418f21: 48 8d 48 10 lea 0x10(%rax),%rcx + 418f25: 48 39 d1 cmp %rdx,%rcx + 418f28: 0f 87 4a ff ff ff ja 418e78 + 418f2e: 48 29 c2 sub %rax,%rdx + 418f31: 48 8d 34 13 lea (%rbx,%rdx,1),%rsi + 418f35: 0f b6 06 movzbl (%rsi),%eax + 418f38: 48 39 f8 cmp %rdi,%rax + 418f3b: 48 89 c1 mov %rax,%rcx + 418f3e: 75 d8 jne 418f18 + 418f40: e9 03 fc ff ff jmpq 418b48 + 418f45: 0f 1f 00 nopl (%rax) + 418f48: 49 8b 44 28 f8 mov -0x8(%r8,%rbp,1),%rax + 418f4d: 48 83 f8 10 cmp $0x10,%rax + 418f51: 0f 86 a1 02 00 00 jbe 4191f8 + 418f57: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 418f5b: 48 3b 05 1e 21 2b 00 cmp 0x2b211e(%rip),%rax # 6cb080 + 418f62: 0f 83 90 02 00 00 jae 4191f8 + 418f68: 8b 35 c6 36 2b 00 mov 0x2b36c6(%rip),%esi # 6cc634 + 418f6e: 85 f6 test %esi,%esi + 418f70: 0f 85 c8 02 00 00 jne 41923e + 418f76: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 + 418f7d: 00 00 + 418f7f: 74 01 je 418f82 + 418f81: f0 83 25 7b 18 2b 00 lock andl $0xfffffffe,0x2b187b(%rip) # 6ca804 + 418f88: fe + 418f89: c1 ed 04 shr $0x4,%ebp + 418f8c: be ff ff ff ff mov $0xffffffff,%esi + 418f91: 8d 45 fe lea -0x2(%rbp),%eax + 418f94: 48 8b 14 c5 08 a8 6c mov 0x6ca808(,%rax,8),%rdx + 418f9b: 00 + 418f9c: 48 89 c5 mov %rax,%rbp + 418f9f: 48 8d 0c c5 08 a8 6c lea 0x6ca808(,%rax,8),%rcx + 418fa6: 00 + 418fa7: 48 39 d3 cmp %rdx,%rbx + 418faa: 75 07 jne 418fb3 + 418fac: eb 37 jmp 418fe5 + 418fae: 66 90 xchg %ax,%ax + 418fb0: 48 89 c2 mov %rax,%rdx + 418fb3: 48 85 d2 test %rdx,%rdx + 418fb6: 74 09 je 418fc1 + 418fb8: 8b 42 08 mov 0x8(%rdx),%eax + 418fbb: c1 e8 04 shr $0x4,%eax + 418fbe: 8d 70 fe lea -0x2(%rax),%esi + 418fc1: 49 89 10 mov %rdx,(%r8) + 418fc4: 48 89 d0 mov %rdx,%rax + 418fc7: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 + 418fce: 00 00 + 418fd0: 74 01 je 418fd3 + 418fd2: f0 48 0f b1 19 lock cmpxchg %rbx,(%rcx) + 418fd7: 48 39 d0 cmp %rdx,%rax + 418fda: 0f 84 30 02 00 00 je 419210 + 418fe0: 48 39 c3 cmp %rax,%rbx + 418fe3: 75 cb jne 418fb0 + 418fe5: 44 8b 2d 18 18 2b 00 mov 0x2b1818(%rip),%r13d # 6ca804 + 418fec: 41 bc 70 24 4a 00 mov $0x4a2470,%r12d + 418ff2: 8b 2d 78 17 2b 00 mov 0x2b1778(%rip),%ebp # 6ca770 + 418ff8: 41 83 cd 04 or $0x4,%r13d + 418ffc: 44 89 2d 01 18 2b 00 mov %r13d,0x2b1801(%rip) # 6ca804 + 419003: 89 e8 mov %ebp,%eax + 419005: 83 e0 05 and $0x5,%eax + 419008: 83 f8 05 cmp $0x5,%eax + 41900b: 0f 84 c7 01 00 00 je 4191d8 + 419011: 40 f6 c5 01 test $0x1,%bpl + 419015: 75 59 jne 419070 + 419017: 83 e5 02 and $0x2,%ebp + 41901a: 0f 85 bb fe ff ff jne 418edb + 419020: 83 3d 95 41 2b 00 00 cmpl $0x0,0x2b4195(%rip) # 6cd1bc <__libc_multiple_threads> + 419027: 74 0b je 419034 + 419029: f0 ff 0d d0 17 2b 00 lock decl 0x2b17d0(%rip) # 6ca800 + 419030: 75 0a jne 41903c + 419032: eb 22 jmp 419056 + 419034: ff 0d c6 17 2b 00 decl 0x2b17c6(%rip) # 6ca800 + 41903a: 74 1a je 419056 + 41903c: 48 8d 3d bd 17 2b 00 lea 0x2b17bd(%rip),%rdi # 6ca800 + 419043: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41904a: e8 b1 95 02 00 callq 442600 <__lll_unlock_wake_private> + 41904f: 48 81 c4 80 00 00 00 add $0x80,%rsp + 419056: e9 9b fd ff ff jmpq 418df6 + 41905b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 419060: 44 8b 2d 9d 17 2b 00 mov 0x2b179d(%rip),%r13d # 6ca804 + 419067: 41 bc b2 20 4a 00 mov $0x4a20b2,%r12d + 41906d: eb 83 jmp 418ff2 + 41906f: 90 nop + 419070: 48 8d 7b 10 lea 0x10(%rbx),%rdi + 419074: 4c 8d 6c 24 10 lea 0x10(%rsp),%r13 + 419079: 48 8d 74 24 20 lea 0x20(%rsp),%rsi + 41907e: 31 c9 xor %ecx,%ecx + 419080: ba 10 00 00 00 mov $0x10,%edx + 419085: c6 44 24 20 00 movb $0x0,0x20(%rsp) + 41908a: e8 21 8e 03 00 callq 451eb0 <_itoa_word> + 41908f: 4c 39 e8 cmp %r13,%rax + 419092: 48 89 c3 mov %rax,%rbx + 419095: 76 25 jbe 4190bc + 419097: 48 89 c2 mov %rax,%rdx + 41909a: 48 89 c7 mov %rax,%rdi + 41909d: be 30 00 00 00 mov $0x30,%esi + 4190a2: 4c 29 ea sub %r13,%rdx + 4190a5: 4c 8d 70 ff lea -0x1(%rax),%r14 + 4190a9: 48 29 d7 sub %rdx,%rdi + 4190ac: e8 9f 72 fe ff callq 400350 <__rela_iplt_end+0x88> + 4190b1: 48 8d 44 24 0f lea 0xf(%rsp),%rax + 4190b6: 4c 29 f0 sub %r14,%rax + 4190b9: 48 01 c3 add %rax,%rbx + 4190bc: 48 8b 05 fd 41 2b 00 mov 0x2b41fd(%rip),%rax # 6cd2c0 <__libc_argv> + 4190c3: 89 ef mov %ebp,%edi + 4190c5: ba 38 20 4a 00 mov $0x4a2038,%edx + 4190ca: 49 89 d8 mov %rbx,%r8 + 4190cd: 4c 89 e1 mov %r12,%rcx + 4190d0: be a8 23 4a 00 mov $0x4a23a8,%esi + 4190d5: 48 8b 00 mov (%rax),%rax + 4190d8: 48 85 c0 test %rax,%rax + 4190db: 48 0f 45 d0 cmovne %rax,%rdx + 4190df: 83 e7 02 and $0x2,%edi + 4190e2: 31 c0 xor %eax,%eax + 4190e4: e8 d7 84 ff ff callq 4115c0 <__libc_message> + 4190e9: e9 32 ff ff ff jmpq 419020 + 4190ee: 66 90 xchg %ax,%ax + 4190f0: 44 8b 2d 0d 17 2b 00 mov 0x2b170d(%rip),%r13d # 6ca804 + 4190f7: 41 bc ca 20 4a 00 mov $0x4a20ca,%r12d + 4190fd: e9 f0 fe ff ff jmpq 418ff2 + 419102: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 419108: 48 29 c1 sub %rax,%rcx + 41910b: 48 3b 0d de 16 2b 00 cmp 0x2b16de(%rip),%rcx # 6ca7f0 + 419112: 0f 83 4f fd ff ff jae 418e67 + 419118: e9 5b fd ff ff jmpq 418e78 + 41911d: 0f 1f 00 nopl (%rax) + 419120: 48 8d b0 00 fc ff ff lea -0x400(%rax),%rsi + 419127: 48 f7 c6 ff fb ff ff test $0xfffffffffffffbff,%rsi + 41912e: 0f 84 94 f9 ff ff je 418ac8 + 419134: 48 3d 00 10 00 00 cmp $0x1000,%rax + 41913a: 0f 84 88 f9 ff ff je 418ac8 + 419140: e9 33 fd ff ff jmpq 418e78 + 419145: 0f 1f 00 nopl (%rax) + 419148: 49 83 66 08 fe andq $0xfffffffffffffffe,0x8(%r14) + 41914d: e9 b1 fb ff ff jmpq 418d03 + 419152: 4c 8d 64 24 10 lea 0x10(%rsp),%r12 + 419157: 48 8d 74 24 20 lea 0x20(%rsp),%rsi + 41915c: 31 c9 xor %ecx,%ecx + 41915e: ba 10 00 00 00 mov $0x10,%edx + 419163: 4c 89 c7 mov %r8,%rdi + 419166: c6 44 24 20 00 movb $0x0,0x20(%rsp) + 41916b: e8 40 8d 03 00 callq 451eb0 <_itoa_word> + 419170: 4c 39 e0 cmp %r12,%rax + 419173: 48 89 c5 mov %rax,%rbp + 419176: 76 25 jbe 41919d + 419178: 48 89 c2 mov %rax,%rdx + 41917b: 48 89 c7 mov %rax,%rdi + 41917e: be 30 00 00 00 mov $0x30,%esi + 419183: 4c 29 e2 sub %r12,%rdx + 419186: 4c 8d 68 ff lea -0x1(%rax),%r13 + 41918a: 48 29 d7 sub %rdx,%rdi + 41918d: e8 be 71 fe ff callq 400350 <__rela_iplt_end+0x88> + 419192: 48 8d 44 24 0f lea 0xf(%rsp),%rax + 419197: 4c 29 e8 sub %r13,%rax + 41919a: 48 01 c5 add %rax,%rbp + 41919d: 48 8b 05 1c 41 2b 00 mov 0x2b411c(%rip),%rax # 6cd2c0 <__libc_argv> + 4191a4: ba 38 20 4a 00 mov $0x4a2038,%edx + 4191a9: 49 89 e8 mov %rbp,%r8 + 4191ac: b9 b2 20 4a 00 mov $0x4a20b2,%ecx + 4191b1: be a8 23 4a 00 mov $0x4a23a8,%esi + 4191b6: 48 8b 00 mov (%rax),%rax + 4191b9: 48 85 c0 test %rax,%rax + 4191bc: 48 0f 45 d0 cmovne %rax,%rdx + 4191c0: 83 e3 02 and $0x2,%ebx + 4191c3: 31 c0 xor %eax,%eax + 4191c5: 89 df mov %ebx,%edi + 4191c7: e8 f4 83 ff ff callq 4115c0 <__libc_message> + 4191cc: e9 25 fc ff ff jmpq 418df6 + 4191d1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4191d8: 89 ef mov %ebp,%edi + 4191da: 4c 89 e2 mov %r12,%rdx + 4191dd: be 3c ca 4b 00 mov $0x4bca3c,%esi + 4191e2: 83 e7 02 and $0x2,%edi + 4191e5: 31 c0 xor %eax,%eax + 4191e7: e8 d4 83 ff ff callq 4115c0 <__libc_message> + 4191ec: e9 2f fe ff ff jmpq 419020 + 4191f1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4191f8: 44 8b 2d 05 16 2b 00 mov 0x2b1605(%rip),%r13d # 6ca804 + 4191ff: 41 bc 20 24 4a 00 mov $0x4a2420,%r12d + 419205: e9 e8 fd ff ff jmpq 418ff2 + 41920a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 419210: 39 f5 cmp %esi,%ebp + 419212: 0f 84 08 fe ff ff je 419020 + 419218: 48 85 d2 test %rdx,%rdx + 41921b: 44 8b 2d e2 15 2b 00 mov 0x2b15e2(%rip),%r13d # 6ca804 + 419222: 41 bc df 20 4a 00 mov $0x4a20df,%r12d + 419228: 0f 84 f2 fd ff ff je 419020 + 41922e: e9 bf fd ff ff jmpq 418ff2 + 419233: 41 bc 00 25 4a 00 mov $0x4a2500,%r12d + 419239: e9 b4 fd ff ff jmpq 418ff2 + 41923e: 48 8d 55 f0 lea -0x10(%rbp),%rdx + 419242: 4c 89 c7 mov %r8,%rdi + 419245: e8 06 71 fe ff callq 400350 <__rela_iplt_end+0x88> + 41924a: 49 89 c0 mov %rax,%r8 + 41924d: e9 24 fd ff ff jmpq 418f76 + 419252: 41 bc 98 24 4a 00 mov $0x4a2498,%r12d + 419258: e9 95 fd ff ff jmpq 418ff2 + 41925d: 4c 01 fd add %r15,%rbp + 419260: 48 89 e8 mov %rbp,%rax + 419263: 48 83 c8 01 or $0x1,%rax + 419267: 48 89 43 08 mov %rax,0x8(%rbx) + 41926b: 48 89 1d e6 15 2b 00 mov %rbx,0x2b15e6(%rip) # 6ca858 + 419272: e9 ed fa ff ff jmpq 418d64 + 419277: 48 8b 50 08 mov 0x8(%rax),%rdx + 41927b: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx + 41927f: 48 01 d0 add %rdx,%rax + 419282: 49 39 c6 cmp %rax,%r14 + 419285: 0f 82 3d f9 ff ff jb 418bc8 + 41928b: 41 bc b8 24 4a 00 mov $0x4a24b8,%r12d + 419291: e9 5c fd ff ff jmpq 418ff2 + 419296: 41 bc d8 24 4a 00 mov $0x4a24d8,%r12d + 41929c: e9 51 fd ff ff jmpq 418ff2 + 4192a1: bf 00 a8 6c 00 mov $0x6ca800,%edi + 4192a6: e8 85 eb ff ff callq 417e30 + 4192ab: e9 ce fa ff ff jmpq 418d7e + 4192b0: 48 8d 55 f0 lea -0x10(%rbp),%rdx + 4192b4: 4c 89 c7 mov %r8,%rdi + 4192b7: e8 94 70 fe ff callq 400350 <__rela_iplt_end+0x88> + 4192bc: 49 89 c0 mov %rax,%r8 + 4192bf: e9 3c f9 ff ff jmpq 418c00 + 4192c4: 44 8b 0d a5 14 2b 00 mov 0x2b14a5(%rip),%r9d # 6ca770 + 4192cb: 83 0d 32 15 2b 00 04 orl $0x4,0x2b1532(%rip) # 6ca804 + 4192d2: 44 89 c8 mov %r9d,%eax + 4192d5: 83 e0 05 and $0x5,%eax + 4192d8: 83 f8 05 cmp $0x5,%eax + 4192db: 0f 84 d2 03 00 00 je 4196b3 + 4192e1: 41 f6 c1 01 test $0x1,%r9b + 4192e5: 0f 85 31 01 00 00 jne 41941c + 4192eb: 41 83 e1 02 and $0x2,%r9d + 4192ef: 0f 84 a3 f9 ff ff je 418c98 + 4192f5: e9 e1 fb ff ff jmpq 418edb + 4192fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 419300: 44 8b 2d 69 14 2b 00 mov 0x2b1469(%rip),%r13d # 6ca770 + 419307: 83 0d f6 14 2b 00 04 orl $0x4,0x2b14f6(%rip) # 6ca804 + 41930e: 44 89 e8 mov %r13d,%eax + 419311: 83 e0 05 and $0x5,%eax + 419314: 83 f8 05 cmp $0x5,%eax + 419317: 0f 84 7a 03 00 00 je 419697 + 41931d: 41 f6 c5 01 test $0x1,%r13b + 419321: 0f 85 8c 01 00 00 jne 4194b3 + 419327: 41 83 e5 02 and $0x2,%r13d + 41932b: 0f 84 cf f9 ff ff je 418d00 + 419331: e9 a5 fb ff ff jmpq 418edb + 419336: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41933d: 00 00 00 + 419340: 44 8b 0d 29 14 2b 00 mov 0x2b1429(%rip),%r9d # 6ca770 + 419347: 41 83 cd 04 or $0x4,%r13d + 41934b: 44 89 2d b2 14 2b 00 mov %r13d,0x2b14b2(%rip) # 6ca804 + 419352: 44 89 c8 mov %r9d,%eax + 419355: 83 e0 05 and $0x5,%eax + 419358: 83 f8 05 cmp $0x5,%eax + 41935b: 0f 84 bb 03 00 00 je 41971c + 419361: 41 f6 c1 01 test $0x1,%r9b + 419365: 0f 85 09 02 00 00 jne 419574 + 41936b: 41 f6 c1 02 test $0x2,%r9b + 41936f: 0f 85 66 fb ff ff jne 418edb + 419375: 4c 8b 63 10 mov 0x10(%rbx),%r12 + 419379: 48 8b 43 18 mov 0x18(%rbx),%rax + 41937d: 49 39 5c 24 18 cmp %rbx,0x18(%r12) + 419382: 0f 85 63 ff ff ff jne 4192eb + 419388: 48 3b 58 10 cmp 0x10(%rax),%rbx + 41938c: 0f 84 b1 f8 ff ff je 418c43 + 419392: 44 89 2d 6b 14 2b 00 mov %r13d,0x2b146b(%rip) # 6ca804 + 419399: e9 43 ff ff ff jmpq 4192e1 + 41939e: 66 90 xchg %ax,%ax + 4193a0: 83 e3 02 and $0x2,%ebx + 4193a3: ba b2 20 4a 00 mov $0x4a20b2,%edx + 4193a8: be 3c ca 4b 00 mov $0x4bca3c,%esi + 4193ad: 89 df mov %ebx,%edi + 4193af: 31 c0 xor %eax,%eax + 4193b1: e8 0a 82 ff ff callq 4115c0 <__libc_message> + 4193b6: e9 3b fa ff ff jmpq 418df6 + 4193bb: 44 8b 2d ae 13 2b 00 mov 0x2b13ae(%rip),%r13d # 6ca770 + 4193c2: 8b 15 3c 14 2b 00 mov 0x2b143c(%rip),%edx # 6ca804 + 4193c8: 44 89 e8 mov %r13d,%eax + 4193cb: 83 ca 04 or $0x4,%edx + 4193ce: 83 e0 05 and $0x5,%eax + 4193d1: 89 15 2d 14 2b 00 mov %edx,0x2b142d(%rip) # 6ca804 + 4193d7: 83 f8 05 cmp $0x5,%eax + 4193da: 0f 84 58 03 00 00 je 419738 + 4193e0: 41 f6 c5 01 test $0x1,%r13b + 4193e4: 0f 85 21 02 00 00 jne 41960b + 4193ea: 41 f6 c5 02 test $0x2,%r13b + 4193ee: 0f 85 e7 fa ff ff jne 418edb + 4193f4: 4d 8b 66 10 mov 0x10(%r14),%r12 + 4193f8: 49 8b 46 18 mov 0x18(%r14),%rax + 4193fc: 4d 3b 74 24 18 cmp 0x18(%r12),%r14 + 419401: 0f 85 20 ff ff ff jne 419327 + 419407: 4c 3b 70 10 cmp 0x10(%rax),%r14 + 41940b: 0f 84 cf f8 ff ff je 418ce0 + 419411: 89 15 ed 13 2b 00 mov %edx,0x2b13ed(%rip) # 6ca804 + 419417: e9 01 ff ff ff jmpq 41931d + 41941c: 4c 8d 64 24 10 lea 0x10(%rsp),%r12 + 419421: 48 8d 74 24 20 lea 0x20(%rsp),%rsi + 419426: 31 c9 xor %ecx,%ecx + 419428: ba 10 00 00 00 mov $0x10,%edx + 41942d: 48 89 df mov %rbx,%rdi + 419430: 44 89 0c 24 mov %r9d,(%rsp) + 419434: c6 44 24 20 00 movb $0x0,0x20(%rsp) + 419439: e8 72 8a 03 00 callq 451eb0 <_itoa_word> + 41943e: 4c 39 e0 cmp %r12,%rax + 419441: 49 89 c5 mov %rax,%r13 + 419444: 44 8b 0c 24 mov (%rsp),%r9d + 419448: 76 34 jbe 41947e + 41944a: 4c 89 ea mov %r13,%rdx + 41944d: 48 8d 40 ff lea -0x1(%rax),%rax + 419451: 4c 89 ef mov %r13,%rdi + 419454: 4c 29 e2 sub %r12,%rdx + 419457: be 30 00 00 00 mov $0x30,%esi + 41945c: 44 89 4c 24 08 mov %r9d,0x8(%rsp) + 419461: 48 29 d7 sub %rdx,%rdi + 419464: 48 89 04 24 mov %rax,(%rsp) + 419468: e8 e3 6e fe ff callq 400350 <__rela_iplt_end+0x88> + 41946d: 48 8d 44 24 0f lea 0xf(%rsp),%rax + 419472: 48 2b 04 24 sub (%rsp),%rax + 419476: 44 8b 4c 24 08 mov 0x8(%rsp),%r9d + 41947b: 49 01 c5 add %rax,%r13 + 41947e: 48 8b 05 3b 3e 2b 00 mov 0x2b3e3b(%rip),%rax # 6cd2c0 <__libc_argv> + 419485: 44 89 cf mov %r9d,%edi + 419488: ba 38 20 4a 00 mov $0x4a2038,%edx + 41948d: 4d 89 e8 mov %r13,%r8 + 419490: b9 95 20 4a 00 mov $0x4a2095,%ecx + 419495: be a8 23 4a 00 mov $0x4a23a8,%esi + 41949a: 48 8b 00 mov (%rax),%rax + 41949d: 48 85 c0 test %rax,%rax + 4194a0: 48 0f 45 d0 cmovne %rax,%rdx + 4194a4: 83 e7 02 and $0x2,%edi + 4194a7: 31 c0 xor %eax,%eax + 4194a9: e8 12 81 ff ff callq 4115c0 <__libc_message> + 4194ae: e9 e5 f7 ff ff jmpq 418c98 + 4194b3: 4c 8d 44 24 10 lea 0x10(%rsp),%r8 + 4194b8: 48 8d 74 24 20 lea 0x20(%rsp),%rsi + 4194bd: 31 c9 xor %ecx,%ecx + 4194bf: ba 10 00 00 00 mov $0x10,%edx + 4194c4: 4c 89 f7 mov %r14,%rdi + 4194c7: c6 44 24 20 00 movb $0x0,0x20(%rsp) + 4194cc: 4c 89 04 24 mov %r8,(%rsp) + 4194d0: e8 db 89 03 00 callq 451eb0 <_itoa_word> + 4194d5: 4c 8b 04 24 mov (%rsp),%r8 + 4194d9: 49 89 c4 mov %rax,%r12 + 4194dc: 4c 39 c0 cmp %r8,%rax + 4194df: 76 25 jbe 419506 + 4194e1: 48 89 c2 mov %rax,%rdx + 4194e4: 48 89 c7 mov %rax,%rdi + 4194e7: be 30 00 00 00 mov $0x30,%esi + 4194ec: 4c 29 c2 sub %r8,%rdx + 4194ef: 4c 8d 70 ff lea -0x1(%rax),%r14 + 4194f3: 48 29 d7 sub %rdx,%rdi + 4194f6: e8 55 6e fe ff callq 400350 <__rela_iplt_end+0x88> + 4194fb: 48 8d 44 24 0f lea 0xf(%rsp),%rax + 419500: 4c 29 f0 sub %r14,%rax + 419503: 49 01 c4 add %rax,%r12 + 419506: 48 8b 05 b3 3d 2b 00 mov 0x2b3db3(%rip),%rax # 6cd2c0 <__libc_argv> + 41950d: 44 89 ef mov %r13d,%edi + 419510: ba 38 20 4a 00 mov $0x4a2038,%edx + 419515: 4d 89 e0 mov %r12,%r8 + 419518: b9 95 20 4a 00 mov $0x4a2095,%ecx + 41951d: be a8 23 4a 00 mov $0x4a23a8,%esi + 419522: 48 8b 00 mov (%rax),%rax + 419525: 48 85 c0 test %rax,%rax + 419528: 48 0f 45 d0 cmovne %rax,%rdx + 41952c: 83 e7 02 and $0x2,%edi + 41952f: 31 c0 xor %eax,%eax + 419531: e8 8a 80 ff ff callq 4115c0 <__libc_message> + 419536: e9 c5 f7 ff ff jmpq 418d00 + 41953b: 4c 3b 70 28 cmp 0x28(%rax),%r14 + 41953f: 0f 85 37 02 00 00 jne 41977c + 419545: 49 8b 56 28 mov 0x28(%r14),%rdx + 419549: 4c 3b 72 20 cmp 0x20(%rdx),%r14 + 41954d: 0f 85 29 02 00 00 jne 41977c + 419553: 49 83 7c 24 20 00 cmpq $0x0,0x20(%r12) + 419559: 0f 84 f5 01 00 00 je 419754 + 41955f: 49 8b 56 28 mov 0x28(%r14),%rdx + 419563: 48 89 50 28 mov %rdx,0x28(%rax) + 419567: 49 8b 56 28 mov 0x28(%r14),%rdx + 41956b: 48 89 42 20 mov %rax,0x20(%rdx) + 41956f: e9 8c f7 ff ff jmpq 418d00 + 419574: 4c 8d 64 24 10 lea 0x10(%rsp),%r12 + 419579: 48 8d 74 24 20 lea 0x20(%rsp),%rsi + 41957e: 31 c9 xor %ecx,%ecx + 419580: ba 10 00 00 00 mov $0x10,%edx + 419585: 48 89 df mov %rbx,%rdi + 419588: 44 89 0c 24 mov %r9d,(%rsp) + 41958c: c6 44 24 20 00 movb $0x0,0x20(%rsp) + 419591: e8 1a 89 03 00 callq 451eb0 <_itoa_word> + 419596: 4c 39 e0 cmp %r12,%rax + 419599: 49 89 c5 mov %rax,%r13 + 41959c: 44 8b 0c 24 mov (%rsp),%r9d + 4195a0: 76 34 jbe 4195d6 + 4195a2: 4c 89 ea mov %r13,%rdx + 4195a5: 48 8d 40 ff lea -0x1(%rax),%rax + 4195a9: 4c 89 ef mov %r13,%rdi + 4195ac: 4c 29 e2 sub %r12,%rdx + 4195af: be 30 00 00 00 mov $0x30,%esi + 4195b4: 44 89 4c 24 08 mov %r9d,0x8(%rsp) + 4195b9: 48 29 d7 sub %rdx,%rdi + 4195bc: 48 89 04 24 mov %rax,(%rsp) + 4195c0: e8 8b 6d fe ff callq 400350 <__rela_iplt_end+0x88> + 4195c5: 48 8d 44 24 0f lea 0xf(%rsp),%rax + 4195ca: 48 2b 04 24 sub (%rsp),%rax + 4195ce: 44 8b 4c 24 08 mov 0x8(%rsp),%r9d + 4195d3: 49 01 c5 add %rax,%r13 + 4195d6: 48 8b 05 e3 3c 2b 00 mov 0x2b3ce3(%rip),%rax # 6cd2c0 <__libc_argv> + 4195dd: 44 89 cf mov %r9d,%edi + 4195e0: ba 38 20 4a 00 mov $0x4a2038,%edx + 4195e5: 4d 89 e8 mov %r13,%r8 + 4195e8: b9 78 20 4a 00 mov $0x4a2078,%ecx + 4195ed: be a8 23 4a 00 mov $0x4a23a8,%esi + 4195f2: 48 8b 00 mov (%rax),%rax + 4195f5: 48 85 c0 test %rax,%rax + 4195f8: 48 0f 45 d0 cmovne %rax,%rdx + 4195fc: 83 e7 02 and $0x2,%edi + 4195ff: 31 c0 xor %eax,%eax + 419601: e8 ba 7f ff ff callq 4115c0 <__libc_message> + 419606: e9 1b f6 ff ff jmpq 418c26 + 41960b: 4c 8d 64 24 10 lea 0x10(%rsp),%r12 + 419610: 48 8d 74 24 20 lea 0x20(%rsp),%rsi + 419615: 31 c9 xor %ecx,%ecx + 419617: ba 10 00 00 00 mov $0x10,%edx + 41961c: 4c 89 f7 mov %r14,%rdi + 41961f: c6 44 24 20 00 movb $0x0,0x20(%rsp) + 419624: e8 87 88 03 00 callq 451eb0 <_itoa_word> + 419629: 4c 39 e0 cmp %r12,%rax + 41962c: 49 89 c0 mov %rax,%r8 + 41962f: 76 34 jbe 419665 + 419631: 4c 89 c2 mov %r8,%rdx + 419634: 4c 89 c7 mov %r8,%rdi + 419637: 48 8d 40 ff lea -0x1(%rax),%rax + 41963b: 4c 29 e2 sub %r12,%rdx + 41963e: be 30 00 00 00 mov $0x30,%esi + 419643: 4c 89 44 24 08 mov %r8,0x8(%rsp) + 419648: 48 29 d7 sub %rdx,%rdi + 41964b: 48 89 04 24 mov %rax,(%rsp) + 41964f: e8 fc 6c fe ff callq 400350 <__rela_iplt_end+0x88> + 419654: 48 8d 44 24 0f lea 0xf(%rsp),%rax + 419659: 48 2b 04 24 sub (%rsp),%rax + 41965d: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 + 419662: 49 01 c0 add %rax,%r8 + 419665: 48 8b 05 54 3c 2b 00 mov 0x2b3c54(%rip),%rax # 6cd2c0 <__libc_argv> + 41966c: 44 89 ef mov %r13d,%edi + 41966f: ba 38 20 4a 00 mov $0x4a2038,%edx + 419674: b9 78 20 4a 00 mov $0x4a2078,%ecx + 419679: be a8 23 4a 00 mov $0x4a23a8,%esi + 41967e: 48 8b 00 mov (%rax),%rax + 419681: 48 85 c0 test %rax,%rax + 419684: 48 0f 45 d0 cmovne %rax,%rdx + 419688: 83 e7 02 and $0x2,%edi + 41968b: 31 c0 xor %eax,%eax + 41968d: e8 2e 7f ff ff callq 4115c0 <__libc_message> + 419692: e9 2c f6 ff ff jmpq 418cc3 + 419697: 44 89 ef mov %r13d,%edi + 41969a: ba 95 20 4a 00 mov $0x4a2095,%edx + 41969f: be 3c ca 4b 00 mov $0x4bca3c,%esi + 4196a4: 83 e7 02 and $0x2,%edi + 4196a7: 31 c0 xor %eax,%eax + 4196a9: e8 12 7f ff ff callq 4115c0 <__libc_message> + 4196ae: e9 4d f6 ff ff jmpq 418d00 + 4196b3: 44 89 cf mov %r9d,%edi + 4196b6: ba 95 20 4a 00 mov $0x4a2095,%edx + 4196bb: be 3c ca 4b 00 mov $0x4bca3c,%esi + 4196c0: 83 e7 02 and $0x2,%edi + 4196c3: 31 c0 xor %eax,%eax + 4196c5: e8 f6 7e ff ff callq 4115c0 <__libc_message> + 4196ca: e9 c9 f5 ff ff jmpq 418c98 + 4196cf: 48 39 c3 cmp %rax,%rbx + 4196d2: 0f 84 c5 00 00 00 je 41979d + 4196d8: 49 89 44 24 20 mov %rax,0x20(%r12) + 4196dd: 48 8b 43 28 mov 0x28(%rbx),%rax + 4196e1: 49 89 44 24 28 mov %rax,0x28(%r12) + 4196e6: 48 8b 43 20 mov 0x20(%rbx),%rax + 4196ea: 4c 89 60 28 mov %r12,0x28(%rax) + 4196ee: 48 8b 43 28 mov 0x28(%rbx),%rax + 4196f2: 4c 89 60 20 mov %r12,0x20(%rax) + 4196f6: e9 9d f5 ff ff jmpq 418c98 + 4196fb: 8b 3d 6f 10 2b 00 mov 0x2b106f(%rip),%edi # 6ca770 + 419701: b9 00 a8 6c 00 mov $0x6ca800,%ecx + 419706: 48 89 da mov %rbx,%rdx + 419709: be f0 23 4a 00 mov $0x4a23f0,%esi + 41970e: e8 9d db ff ff callq 4172b0 + 419713: 48 8b 43 20 mov 0x20(%rbx),%rax + 419717: e9 5b f5 ff ff jmpq 418c77 + 41971c: 44 89 cf mov %r9d,%edi + 41971f: ba 78 20 4a 00 mov $0x4a2078,%edx + 419724: be 3c ca 4b 00 mov $0x4bca3c,%esi + 419729: 83 e7 02 and $0x2,%edi + 41972c: 31 c0 xor %eax,%eax + 41972e: e8 8d 7e ff ff callq 4115c0 <__libc_message> + 419733: e9 ee f4 ff ff jmpq 418c26 + 419738: 44 89 ef mov %r13d,%edi + 41973b: ba 78 20 4a 00 mov $0x4a2078,%edx + 419740: be 3c ca 4b 00 mov $0x4bca3c,%esi + 419745: 83 e7 02 and $0x2,%edi + 419748: 31 c0 xor %eax,%eax + 41974a: e8 71 7e ff ff callq 4115c0 <__libc_message> + 41974f: e9 6f f5 ff ff jmpq 418cc3 + 419754: 49 39 c6 cmp %rax,%r14 + 419757: 74 53 je 4197ac + 419759: 49 89 44 24 20 mov %rax,0x20(%r12) + 41975e: 49 8b 46 28 mov 0x28(%r14),%rax + 419762: 49 89 44 24 28 mov %rax,0x28(%r12) + 419767: 49 8b 46 20 mov 0x20(%r14),%rax + 41976b: 4c 89 60 28 mov %r12,0x28(%rax) + 41976f: 49 8b 46 28 mov 0x28(%r14),%rax + 419773: 4c 89 60 20 mov %r12,0x20(%rax) + 419777: e9 84 f5 ff ff jmpq 418d00 + 41977c: 8b 3d ee 0f 2b 00 mov 0x2b0fee(%rip),%edi # 6ca770 + 419782: b9 00 a8 6c 00 mov $0x6ca800,%ecx + 419787: 4c 89 f2 mov %r14,%rdx + 41978a: be f0 23 4a 00 mov $0x4a23f0,%esi + 41978f: e8 1c db ff ff callq 4172b0 + 419794: 49 8b 46 20 mov 0x20(%r14),%rax + 419798: e9 b6 fd ff ff jmpq 419553 + 41979d: 4d 89 64 24 28 mov %r12,0x28(%r12) + 4197a2: 4d 89 64 24 20 mov %r12,0x20(%r12) + 4197a7: e9 ec f4 ff ff jmpq 418c98 + 4197ac: 4d 89 64 24 28 mov %r12,0x28(%r12) + 4197b1: 4d 89 64 24 20 mov %r12,0x20(%r12) + 4197b6: e9 45 f5 ff ff jmpq 418d00 + 4197bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +00000000004197c0 <_int_free>: + 4197c0: 41 57 push %r15 + 4197c2: 41 56 push %r14 + 4197c4: 41 55 push %r13 + 4197c6: 41 54 push %r12 + 4197c8: 55 push %rbp + 4197c9: 53 push %rbx + 4197ca: 48 89 fd mov %rdi,%rbp + 4197cd: 48 89 f3 mov %rsi,%rbx + 4197d0: 48 83 ec 58 sub $0x58,%rsp + 4197d4: 48 8b 46 08 mov 0x8(%rsi),%rax + 4197d8: 89 54 24 04 mov %edx,0x4(%rsp) + 4197dc: 49 89 c4 mov %rax,%r12 + 4197df: 49 83 e4 f8 and $0xfffffffffffffff8,%r12 + 4197e3: 4c 89 e2 mov %r12,%rdx + 4197e6: 48 f7 da neg %rdx + 4197e9: 48 39 d6 cmp %rdx,%rsi + 4197ec: 0f 87 4e 05 00 00 ja 419d40 <_int_free+0x580> + 4197f2: 40 f6 c6 0f test $0xf,%sil + 4197f6: 0f 85 44 05 00 00 jne 419d40 <_int_free+0x580> + 4197fc: 49 83 fc 1f cmp $0x1f,%r12 + 419800: 0f 86 d2 05 00 00 jbe 419dd8 <_int_free+0x618> + 419806: a8 08 test $0x8,%al + 419808: 0f 85 ca 05 00 00 jne 419dd8 <_int_free+0x618> + 41980e: 4c 3b 25 23 2e 2b 00 cmp 0x2b2e23(%rip),%r12 # 6cc638 + 419815: 0f 87 05 01 00 00 ja 419920 <_int_free+0x160> + 41981b: 4a 8d 14 26 lea (%rsi,%r12,1),%rdx + 41981f: 48 8b 42 08 mov 0x8(%rdx),%rax + 419823: 48 83 f8 10 cmp $0x10,%rax + 419827: 0f 86 a3 07 00 00 jbe 419fd0 <_int_free+0x810> + 41982d: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 419831: 48 3b 87 80 08 00 00 cmp 0x880(%rdi),%rax + 419838: 0f 83 92 07 00 00 jae 419fd0 <_int_free+0x810> + 41983e: 8b 35 f0 2d 2b 00 mov 0x2b2df0(%rip),%esi # 6cc634 + 419844: 4c 8d 43 10 lea 0x10(%rbx),%r8 + 419848: 85 f6 test %esi,%esi + 41984a: 0f 85 50 0a 00 00 jne 41a2a0 <_int_free+0xae0> + 419850: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 + 419857: 00 00 + 419859: 74 01 je 41985c <_int_free+0x9c> + 41985b: f0 83 65 04 fe lock andl $0xfffffffe,0x4(%rbp) + 419860: 41 c1 ec 04 shr $0x4,%r12d + 419864: 41 8d 44 24 fe lea -0x2(%r12),%eax + 419869: 48 8b 54 c5 08 mov 0x8(%rbp,%rax,8),%rdx + 41986e: 49 89 c4 mov %rax,%r12 + 419871: 48 8d 74 c5 08 lea 0x8(%rbp,%rax,8),%rsi + 419876: 48 39 d3 cmp %rdx,%rbx + 419879: 74 51 je 4198cc <_int_free+0x10c> + 41987b: 8b 7c 24 04 mov 0x4(%rsp),%edi + 41987f: 85 ff test %edi,%edi + 419881: bf ff ff ff ff mov $0xffffffff,%edi + 419886: 41 0f 95 c1 setne %r9b + 41988a: eb 07 jmp 419893 <_int_free+0xd3> + 41988c: 0f 1f 40 00 nopl 0x0(%rax) + 419890: 48 89 c2 mov %rax,%rdx + 419893: 48 85 d2 test %rdx,%rdx + 419896: 0f 95 c1 setne %cl + 419899: 44 20 c9 and %r9b,%cl + 41989c: 74 09 je 4198a7 <_int_free+0xe7> + 41989e: 8b 7a 08 mov 0x8(%rdx),%edi + 4198a1: c1 ef 04 shr $0x4,%edi + 4198a4: 83 ef 02 sub $0x2,%edi + 4198a7: 48 89 53 10 mov %rdx,0x10(%rbx) + 4198ab: 48 89 d0 mov %rdx,%rax + 4198ae: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 + 4198b5: 00 00 + 4198b7: 74 01 je 4198ba <_int_free+0xfa> + 4198b9: f0 48 0f b1 1e lock cmpxchg %rbx,(%rsi) + 4198be: 48 39 d0 cmp %rdx,%rax + 4198c1: 0f 84 59 06 00 00 je 419f20 <_int_free+0x760> + 4198c7: 48 39 c3 cmp %rax,%rbx + 4198ca: 75 c4 jne 419890 <_int_free+0xd0> + 4198cc: 4c 89 c7 mov %r8,%rdi + 4198cf: 41 bd 70 24 4a 00 mov $0x4a2470,%r13d + 4198d5: 0f 1f 00 nopl (%rax) + 4198d8: 48 85 ed test %rbp,%rbp + 4198db: 44 8b 25 8e 0e 2b 00 mov 0x2b0e8e(%rip),%r12d # 6ca770 + 4198e2: 74 04 je 4198e8 <_int_free+0x128> + 4198e4: 83 4d 04 04 orl $0x4,0x4(%rbp) + 4198e8: 44 89 e0 mov %r12d,%eax + 4198eb: 83 e0 05 and $0x5,%eax + 4198ee: 83 f8 05 cmp $0x5,%eax + 4198f1: 0f 84 b9 06 00 00 je 419fb0 <_int_free+0x7f0> + 4198f7: 41 f6 c4 01 test $0x1,%r12b + 4198fb: 0f 85 4f 04 00 00 jne 419d50 <_int_free+0x590> + 419901: 41 83 e4 02 and $0x2,%r12d + 419905: 0f 85 99 08 00 00 jne 41a1a4 <_int_free+0x9e4> + 41990b: 48 83 c4 58 add $0x58,%rsp + 41990f: 5b pop %rbx + 419910: 5d pop %rbp + 419911: 41 5c pop %r12 + 419913: 41 5d pop %r13 + 419915: 41 5e pop %r14 + 419917: 41 5f pop %r15 + 419919: c3 retq + 41991a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 419920: a8 02 test $0x2,%al + 419922: 0f 85 e8 05 00 00 jne 419f10 <_int_free+0x750> + 419928: 8b 44 24 04 mov 0x4(%rsp),%eax + 41992c: 85 c0 test %eax,%eax + 41992e: 0f 84 ac 03 00 00 je 419ce0 <_int_free+0x520> + 419934: 48 8b 47 58 mov 0x58(%rdi),%rax + 419938: 4e 8d 2c 26 lea (%rsi,%r12,1),%r13 + 41993c: 48 39 c6 cmp %rax,%rsi + 41993f: 0f 84 b1 12 00 00 je 41abf6 <_int_free+0x1436> + 419945: 45 31 c9 xor %r9d,%r9d + 419948: c7 44 24 28 00 00 00 movl $0x0,0x28(%rsp) + 41994f: 00 + 419950: f6 45 04 02 testb $0x2,0x4(%rbp) + 419954: 0f 84 d6 09 00 00 je 41a330 <_int_free+0xb70> + 41995a: 49 8b 45 08 mov 0x8(%r13),%rax + 41995e: a8 01 test $0x1,%al + 419960: 0f 84 ea 09 00 00 je 41a350 <_int_free+0xb90> + 419966: 49 89 c7 mov %rax,%r15 + 419969: 49 83 e7 f8 and $0xfffffffffffffff8,%r15 + 41996d: 48 83 f8 10 cmp $0x10,%rax + 419971: 0f 86 39 08 00 00 jbe 41a1b0 <_int_free+0x9f0> + 419977: 4c 3b bd 80 08 00 00 cmp 0x880(%rbp),%r15 + 41997e: 0f 83 2c 08 00 00 jae 41a1b0 <_int_free+0x9f0> + 419984: 8b 35 aa 2c 2b 00 mov 0x2b2caa(%rip),%esi # 6cc634 + 41998a: 85 f6 test %esi,%esi + 41998c: 0f 85 c9 09 00 00 jne 41a35b <_int_free+0xb9b> + 419992: f6 43 08 01 testb $0x1,0x8(%rbx) + 419996: 0f 85 8c 00 00 00 jne 419a28 <_int_free+0x268> + 41999c: 48 8b 03 mov (%rbx),%rax + 41999f: 48 29 c3 sub %rax,%rbx + 4199a2: 49 01 c4 add %rax,%r12 + 4199a5: 48 8b 43 08 mov 0x8(%rbx),%rax + 4199a9: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 4199ad: 48 3b 04 03 cmp (%rbx,%rax,1),%rax + 4199b1: 0f 85 54 0a 00 00 jne 41a40b <_int_free+0xc4b> + 4199b7: 48 8b 43 10 mov 0x10(%rbx),%rax + 4199bb: 48 8b 53 18 mov 0x18(%rbx),%rdx + 4199bf: 48 3b 58 18 cmp 0x18(%rax),%rbx + 4199c3: 0f 85 b0 09 00 00 jne 41a379 <_int_free+0xbb9> + 4199c9: 48 3b 5a 10 cmp 0x10(%rdx),%rbx + 4199cd: 0f 85 a6 09 00 00 jne 41a379 <_int_free+0xbb9> + 4199d3: 48 81 7b 08 ff 03 00 cmpq $0x3ff,0x8(%rbx) + 4199da: 00 + 4199db: 48 89 50 18 mov %rdx,0x18(%rax) + 4199df: 48 89 42 10 mov %rax,0x10(%rdx) + 4199e3: 76 43 jbe 419a28 <_int_free+0x268> + 4199e5: 48 8b 53 20 mov 0x20(%rbx),%rdx + 4199e9: 48 85 d2 test %rdx,%rdx + 4199ec: 74 3a je 419a28 <_int_free+0x268> + 4199ee: 48 3b 5a 28 cmp 0x28(%rdx),%rbx + 4199f2: 0f 85 c3 10 00 00 jne 41aabb <_int_free+0x12fb> + 4199f8: 48 8b 4b 28 mov 0x28(%rbx),%rcx + 4199fc: 48 3b 59 20 cmp 0x20(%rcx),%rbx + 419a00: 0f 85 b5 10 00 00 jne 41aabb <_int_free+0x12fb> + 419a06: 48 83 78 20 00 cmpq $0x0,0x20(%rax) + 419a0b: 0f 84 ff 10 00 00 je 41ab10 <_int_free+0x1350> + 419a11: 48 8b 43 28 mov 0x28(%rbx),%rax + 419a15: 48 89 42 28 mov %rax,0x28(%rdx) + 419a19: 48 8b 43 28 mov 0x28(%rbx),%rax + 419a1d: 48 89 50 20 mov %rdx,0x20(%rax) + 419a21: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 419a28: 4c 39 6d 58 cmp %r13,0x58(%rbp) + 419a2c: 0f 84 e6 08 00 00 je 41a318 <_int_free+0xb58> + 419a32: 43 f6 44 3d 08 01 testb $0x1,0x8(%r13,%r15,1) + 419a38: 0f 85 62 05 00 00 jne 419fa0 <_int_free+0x7e0> + 419a3e: 49 8b 45 08 mov 0x8(%r13),%rax + 419a42: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 419a46: 49 3b 44 05 00 cmp 0x0(%r13,%rax,1),%rax + 419a4b: 0f 85 0f 0a 00 00 jne 41a460 <_int_free+0xca0> + 419a51: 49 8b 45 10 mov 0x10(%r13),%rax + 419a55: 49 8b 55 18 mov 0x18(%r13),%rdx + 419a59: 4c 39 68 18 cmp %r13,0x18(%rax) + 419a5d: 0f 85 13 07 00 00 jne 41a176 <_int_free+0x9b6> + 419a63: 4c 8b 42 10 mov 0x10(%rdx),%r8 + 419a67: 4d 39 e8 cmp %r13,%r8 + 419a6a: 0f 85 06 07 00 00 jne 41a176 <_int_free+0x9b6> + 419a70: 49 81 78 08 ff 03 00 cmpq $0x3ff,0x8(%r8) + 419a77: 00 + 419a78: 48 89 50 18 mov %rdx,0x18(%rax) + 419a7c: 48 89 42 10 mov %rax,0x10(%rdx) + 419a80: 0f 87 fa 05 00 00 ja 41a080 <_int_free+0x8c0> + 419a86: 4d 01 fc add %r15,%r12 + 419a89: 48 8b 45 68 mov 0x68(%rbp),%rax + 419a8d: 48 8d 55 58 lea 0x58(%rbp),%rdx + 419a91: 48 3b 50 18 cmp 0x18(%rax),%rdx + 419a95: 0f 85 15 09 00 00 jne 41a3b0 <_int_free+0xbf0> + 419a9b: 49 81 fc ff 03 00 00 cmp $0x3ff,%r12 + 419aa2: 48 89 43 10 mov %rax,0x10(%rbx) + 419aa6: 48 89 53 18 mov %rdx,0x18(%rbx) + 419aaa: 76 10 jbe 419abc <_int_free+0x2fc> + 419aac: 48 c7 43 20 00 00 00 movq $0x0,0x20(%rbx) + 419ab3: 00 + 419ab4: 48 c7 43 28 00 00 00 movq $0x0,0x28(%rbx) + 419abb: 00 + 419abc: 48 89 5d 68 mov %rbx,0x68(%rbp) + 419ac0: 48 89 58 18 mov %rbx,0x18(%rax) + 419ac4: 4c 89 e0 mov %r12,%rax + 419ac7: 48 83 c8 01 or $0x1,%rax + 419acb: 48 89 43 08 mov %rax,0x8(%rbx) + 419acf: 4e 89 24 23 mov %r12,(%rbx,%r12,1) + 419ad3: 49 81 fc ff ff 00 00 cmp $0xffff,%r12 + 419ada: 0f 86 a0 03 00 00 jbe 419e80 <_int_free+0x6c0> + 419ae0: f6 45 04 01 testb $0x1,0x4(%rbp) + 419ae4: 0f 84 de 05 00 00 je 41a0c8 <_int_free+0x908> + 419aea: 48 81 fd 00 a8 6c 00 cmp $0x6ca800,%rbp + 419af1: 0f 84 dd 08 00 00 je 41a3d4 <_int_free+0xc14> + 419af7: 4c 8b 65 58 mov 0x58(%rbp),%r12 + 419afb: 4c 89 e7 mov %r12,%rdi + 419afe: 48 81 e7 00 00 00 fc and $0xfffffffffc000000,%rdi + 419b05: 48 3b 2f cmp (%rdi),%rbp + 419b08: 0f 85 cf 10 00 00 jne 41abdd <_int_free+0x141d> + 419b0e: 48 8b 05 93 0c 2b 00 mov 0x2b0c93(%rip),%rax # 6ca7a8 + 419b15: 4c 8b 2d 64 16 2b 00 mov 0x2b1664(%rip),%r13 # 6cb180 <_dl_pagesize> + 419b1c: 48 89 44 24 08 mov %rax,0x8(%rsp) + 419b21: 48 8d 47 20 lea 0x20(%rdi),%rax + 419b25: 49 39 c4 cmp %rax,%r12 + 419b28: 0f 85 c2 02 00 00 jne 419df0 <_int_free+0x630> + 419b2e: 4c 8b 7f 08 mov 0x8(%rdi),%r15 + 419b32: 49 8b 4f 10 mov 0x10(%r15),%rcx + 419b36: 48 8d 51 f0 lea -0x10(%rcx),%rdx + 419b3a: 49 8d 04 17 lea (%r15,%rdx,1),%rax + 419b3e: 83 e0 0f and $0xf,%eax + 419b41: 48 29 c2 sub %rax,%rdx + 419b44: 4c 01 fa add %r15,%rdx + 419b47: 48 83 7a 08 01 cmpq $0x1,0x8(%rdx) + 419b4c: 0f 85 aa 0e 00 00 jne 41a9fc <_int_free+0x123c> + 419b52: 48 8d 5c 24 30 lea 0x30(%rsp),%rbx + 419b57: be 01 00 00 00 mov $0x1,%esi + 419b5c: 49 89 d6 mov %rdx,%r14 + 419b5f: 48 29 de sub %rbx,%rsi + 419b62: 48 89 74 24 10 mov %rsi,0x10(%rsp) + 419b67: e9 d9 00 00 00 jmpq 419c45 <_int_free+0x485> + 419b6c: 0f 1f 40 00 nopl 0x0(%rax) + 419b70: be 00 00 00 04 mov $0x4000000,%esi + 419b75: 4d 89 f4 mov %r14,%r12 + 419b78: e8 33 61 02 00 callq 43fcb0 <__munmap> + 419b7d: 41 f6 46 08 01 testb $0x1,0x8(%r14) + 419b82: 75 5c jne 419be0 <_int_free+0x420> + 419b84: 4d 2b 26 sub (%r14),%r12 + 419b87: 49 8b 44 24 08 mov 0x8(%r12),%rax + 419b8c: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 419b90: 49 3b 04 04 cmp (%r12,%rax,1),%rax + 419b94: 0f 85 a6 03 00 00 jne 419f40 <_int_free+0x780> + 419b9a: 4d 8b 74 24 10 mov 0x10(%r12),%r14 + 419b9f: 49 8b 44 24 18 mov 0x18(%r12),%rax + 419ba4: 4d 3b 66 18 cmp 0x18(%r14),%r12 + 419ba8: 0f 85 22 03 00 00 jne 419ed0 <_int_free+0x710> + 419bae: 4c 3b 60 10 cmp 0x10(%rax),%r12 + 419bb2: 0f 85 18 03 00 00 jne 419ed0 <_int_free+0x710> + 419bb8: 49 81 7c 24 08 ff 03 cmpq $0x3ff,0x8(%r12) + 419bbf: 00 00 + 419bc1: 49 89 46 18 mov %rax,0x18(%r14) + 419bc5: 4c 89 70 10 mov %r14,0x10(%rax) + 419bc9: 76 15 jbe 419be0 <_int_free+0x420> + 419bcb: 49 8b 44 24 20 mov 0x20(%r12),%rax + 419bd0: 48 85 c0 test %rax,%rax + 419bd3: 0f 85 df 06 00 00 jne 41a2b8 <_int_free+0xaf8> + 419bd9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 419be0: 49 8d 04 1c lea (%r12,%rbx,1),%rax + 419be4: 49 8d 55 ff lea -0x1(%r13),%rdx + 419be8: 48 85 d0 test %rdx,%rax + 419beb: 0f 85 a4 0e 00 00 jne 41aa95 <_int_free+0x12d5> + 419bf1: 4c 89 fa mov %r15,%rdx + 419bf4: 49 03 57 10 add 0x10(%r15),%rdx + 419bf8: 48 39 d0 cmp %rdx,%rax + 419bfb: 0f 85 7b 0e 00 00 jne 41aa7c <_int_free+0x12bc> + 419c01: 49 8d 47 20 lea 0x20(%r15),%rax + 419c05: 48 83 cb 01 or $0x1,%rbx + 419c09: 4c 89 65 58 mov %r12,0x58(%rbp) + 419c0d: 49 89 5c 24 08 mov %rbx,0x8(%r12) + 419c12: 49 39 c4 cmp %rax,%r12 + 419c15: 0f 85 dd 01 00 00 jne 419df8 <_int_free+0x638> + 419c1b: 49 8b 57 08 mov 0x8(%r15),%rdx + 419c1f: 4c 89 ff mov %r15,%rdi + 419c22: 48 8b 4a 10 mov 0x10(%rdx),%rcx + 419c26: 4c 8d 71 f0 lea -0x10(%rcx),%r14 + 419c2a: 4a 8d 04 32 lea (%rdx,%r14,1),%rax + 419c2e: 83 e0 0f and $0xf,%eax + 419c31: 49 29 c6 sub %rax,%r14 + 419c34: 49 01 d6 add %rdx,%r14 + 419c37: 49 83 7e 08 01 cmpq $0x1,0x8(%r14) + 419c3c: 0f 85 ba 0d 00 00 jne 41a9fc <_int_free+0x123c> + 419c42: 49 89 d7 mov %rdx,%r15 + 419c45: 4d 2b 36 sub (%r14),%r14 + 419c48: 49 8b 56 08 mov 0x8(%r14),%rdx + 419c4c: 48 89 d6 mov %rdx,%rsi + 419c4f: 48 83 e6 f8 and $0xfffffffffffffff8,%rsi + 419c53: 48 01 f0 add %rsi,%rax + 419c56: 4c 8d 48 10 lea 0x10(%rax),%r9 + 419c5a: 48 83 c0 0f add $0xf,%rax + 419c5e: 48 83 f8 3e cmp $0x3e,%rax + 419c62: 0f 87 7b 0d 00 00 ja 41a9e3 <_int_free+0x1223> + 419c68: 83 e2 01 and $0x1,%edx + 419c6b: 4c 89 cb mov %r9,%rbx + 419c6e: 75 03 jne 419c73 <_int_free+0x4b3> + 419c70: 49 03 1e add (%r14),%rbx + 419c73: 48 8d 43 ff lea -0x1(%rbx),%rax + 419c77: 48 3d fe ff ff 03 cmp $0x3fffffe,%rax + 419c7d: 0f 87 e0 0d 00 00 ja 41aa63 <_int_free+0x12a3> + 419c83: 48 89 d8 mov %rbx,%rax + 419c86: 48 29 c8 sub %rcx,%rax + 419c89: 48 8d 90 00 00 00 04 lea 0x4000000(%rax),%rdx + 419c90: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 419c95: 4a 8d 44 28 20 lea 0x20(%rax,%r13,1),%rax + 419c9a: 48 39 c2 cmp %rax,%rdx + 419c9d: 0f 82 4d 01 00 00 jb 419df0 <_int_free+0x630> + 419ca3: 48 8b 47 10 mov 0x10(%rdi),%rax + 419ca7: 48 29 85 80 08 00 00 sub %rax,0x880(%rbp) + 419cae: 48 29 05 63 29 2b 00 sub %rax,0x2b2963(%rip) # 6cc618 + 419cb5: 90 nop + 419cb6: 48 8d 87 00 00 00 04 lea 0x4000000(%rdi),%rax + 419cbd: 48 39 05 4c 29 2b 00 cmp %rax,0x2b294c(%rip) # 6cc610 + 419cc4: 0f 85 a6 fe ff ff jne 419b70 <_int_free+0x3b0> + 419cca: 48 c7 05 3b 29 2b 00 movq $0x0,0x2b293b(%rip) # 6cc610 + 419cd1: 00 00 00 00 + 419cd5: e9 96 fe ff ff jmpq 419b70 <_int_free+0x3b0> + 419cda: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 419ce0: be 01 00 00 00 mov $0x1,%esi + 419ce5: 83 3d d0 34 2b 00 00 cmpl $0x0,0x2b34d0(%rip) # 6cd1bc <__libc_multiple_threads> + 419cec: 74 09 je 419cf7 <_int_free+0x537> + 419cee: f0 0f b1 75 00 lock cmpxchg %esi,0x0(%rbp) + 419cf3: 75 08 jne 419cfd <_int_free+0x53d> + 419cf5: eb 1d jmp 419d14 <_int_free+0x554> + 419cf7: 0f b1 75 00 cmpxchg %esi,0x0(%rbp) + 419cfb: 74 17 je 419d14 <_int_free+0x554> + 419cfd: 48 8d 7d 00 lea 0x0(%rbp),%rdi + 419d01: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 419d08: e8 c3 88 02 00 callq 4425d0 <__lll_lock_wait_private> + 419d0d: 48 81 c4 80 00 00 00 add $0x80,%rsp + 419d14: 48 8b 45 58 mov 0x58(%rbp),%rax + 419d18: 4e 8d 2c 23 lea (%rbx,%r12,1),%r13 + 419d1c: 48 39 c3 cmp %rax,%rbx + 419d1f: 0f 84 e3 05 00 00 je 41a308 <_int_free+0xb48> + 419d25: 41 b9 01 00 00 00 mov $0x1,%r9d + 419d2b: c7 44 24 28 01 00 00 movl $0x1,0x28(%rsp) + 419d32: 00 + 419d33: e9 18 fc ff ff jmpq 419950 <_int_free+0x190> + 419d38: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 419d3f: 00 + 419d40: 48 8d 7b 10 lea 0x10(%rbx),%rdi + 419d44: 41 bd b2 20 4a 00 mov $0x4a20b2,%r13d + 419d4a: e9 89 fb ff ff jmpq 4198d8 <_int_free+0x118> + 419d4f: 90 nop + 419d50: 48 8d 6c 24 30 lea 0x30(%rsp),%rbp + 419d55: 48 8d 74 24 40 lea 0x40(%rsp),%rsi + 419d5a: 31 c9 xor %ecx,%ecx + 419d5c: ba 10 00 00 00 mov $0x10,%edx + 419d61: c6 44 24 40 00 movb $0x0,0x40(%rsp) + 419d66: e8 45 81 03 00 callq 451eb0 <_itoa_word> + 419d6b: 48 39 e8 cmp %rbp,%rax + 419d6e: 48 89 c3 mov %rax,%rbx + 419d71: 76 25 jbe 419d98 <_int_free+0x5d8> + 419d73: 48 89 c2 mov %rax,%rdx + 419d76: 48 89 c7 mov %rax,%rdi + 419d79: be 30 00 00 00 mov $0x30,%esi + 419d7e: 48 29 ea sub %rbp,%rdx + 419d81: 4c 8d 70 ff lea -0x1(%rax),%r14 + 419d85: 48 29 d7 sub %rdx,%rdi + 419d88: e8 c3 65 fe ff callq 400350 <__rela_iplt_end+0x88> + 419d8d: 48 8d 44 24 2f lea 0x2f(%rsp),%rax + 419d92: 4c 29 f0 sub %r14,%rax + 419d95: 48 01 c3 add %rax,%rbx + 419d98: 48 8b 05 21 35 2b 00 mov 0x2b3521(%rip),%rax # 6cd2c0 <__libc_argv> + 419d9f: 44 89 e7 mov %r12d,%edi + 419da2: ba 38 20 4a 00 mov $0x4a2038,%edx + 419da7: 49 89 d8 mov %rbx,%r8 + 419daa: 4c 89 e9 mov %r13,%rcx + 419dad: be a8 23 4a 00 mov $0x4a23a8,%esi + 419db2: 48 8b 00 mov (%rax),%rax + 419db5: 48 85 c0 test %rax,%rax + 419db8: 48 0f 45 d0 cmovne %rax,%rdx + 419dbc: 83 e7 02 and $0x2,%edi + 419dbf: 31 c0 xor %eax,%eax + 419dc1: e8 fa 77 ff ff callq 4115c0 <__libc_message> + 419dc6: 48 83 c4 58 add $0x58,%rsp + 419dca: 5b pop %rbx + 419dcb: 5d pop %rbp + 419dcc: 41 5c pop %r12 + 419dce: 41 5d pop %r13 + 419dd0: 41 5e pop %r14 + 419dd2: 41 5f pop %r15 + 419dd4: c3 retq + 419dd5: 0f 1f 00 nopl (%rax) + 419dd8: 48 8d 7b 10 lea 0x10(%rbx),%rdi + 419ddc: 41 bd ca 20 4a 00 mov $0x4a20ca,%r13d + 419de2: e9 f1 fa ff ff jmpq 4198d8 <_int_free+0x118> + 419de7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 419dee: 00 00 + 419df0: 49 8b 5c 24 08 mov 0x8(%r12),%rbx + 419df5: 49 89 ff mov %rdi,%r15 + 419df8: 48 83 e3 f8 and $0xfffffffffffffff8,%rbx + 419dfc: 48 39 1d 9d 09 2b 00 cmp %rbx,0x2b099d(%rip) # 6ca7a0 + 419e03: 77 7b ja 419e80 <_int_free+0x6c0> + 419e05: 48 89 d8 mov %rbx,%rax + 419e08: 48 83 e8 21 sub $0x21,%rax + 419e0c: 78 72 js 419e80 <_int_free+0x6c0> + 419e0e: 48 8b 4c 24 08 mov 0x8(%rsp),%rcx + 419e13: 48 39 c1 cmp %rax,%rcx + 419e16: 73 68 jae 419e80 <_int_free+0x6c0> + 419e18: 48 29 c8 sub %rcx,%rax + 419e1b: 49 f7 dd neg %r13 + 419e1e: 49 21 c5 and %rax,%r13 + 419e21: 74 5d je 419e80 <_int_free+0x6c0> + 419e23: 4d 8b 77 10 mov 0x10(%r15),%r14 + 419e27: 4d 29 ee sub %r13,%r14 + 419e2a: 49 83 fe 1f cmp $0x1f,%r14 + 419e2e: 7e 50 jle 419e80 <_int_free+0x6c0> + 419e30: 8b 35 2a 09 2b 00 mov 0x2b092a(%rip),%esi # 6ca760 + 419e36: 85 f6 test %esi,%esi + 419e38: 0f 88 1e 0b 00 00 js 41a95c <_int_free+0x119c> + 419e3e: 0f 95 c0 setne %al + 419e41: 84 c0 test %al,%al + 419e43: 4b 8d 3c 37 lea (%r15,%r14,1),%rdi + 419e47: 0f 85 e4 0a 00 00 jne 41a931 <_int_free+0x1171> + 419e4d: ba 04 00 00 00 mov $0x4,%edx + 419e52: 4c 89 ee mov %r13,%rsi + 419e55: e8 96 5e 02 00 callq 43fcf0 <__madvise> + 419e5a: 4d 89 77 10 mov %r14,0x10(%r15) + 419e5e: 90 nop + 419e5f: 4c 29 2d b2 27 2b 00 sub %r13,0x2b27b2(%rip) # 6cc618 + 419e66: 4c 29 eb sub %r13,%rbx + 419e69: 4c 29 ad 80 08 00 00 sub %r13,0x880(%rbp) + 419e70: 48 83 cb 01 or $0x1,%rbx + 419e74: 49 89 5c 24 08 mov %rbx,0x8(%r12) + 419e79: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 419e80: 8b 54 24 04 mov 0x4(%rsp),%edx + 419e84: 85 d2 test %edx,%edx + 419e86: 0f 85 7f fa ff ff jne 41990b <_int_free+0x14b> + 419e8c: 8b 44 24 28 mov 0x28(%rsp),%eax + 419e90: 85 c0 test %eax,%eax + 419e92: 0f 84 2c 0d 00 00 je 41abc4 <_int_free+0x1404> + 419e98: 83 3d 1d 33 2b 00 00 cmpl $0x0,0x2b331d(%rip) # 6cd1bc <__libc_multiple_threads> + 419e9f: 74 08 je 419ea9 <_int_free+0x6e9> + 419ea1: f0 ff 4d 00 lock decl 0x0(%rbp) + 419ea5: 75 07 jne 419eae <_int_free+0x6ee> + 419ea7: eb 1c jmp 419ec5 <_int_free+0x705> + 419ea9: ff 4d 00 decl 0x0(%rbp) + 419eac: 74 17 je 419ec5 <_int_free+0x705> + 419eae: 48 8d 7d 00 lea 0x0(%rbp),%rdi + 419eb2: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 419eb9: e8 42 87 02 00 callq 442600 <__lll_unlock_wake_private> + 419ebe: 48 81 c4 80 00 00 00 add $0x80,%rsp + 419ec5: e9 41 fa ff ff jmpq 41990b <_int_free+0x14b> + 419eca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 419ed0: 8b 3d 9a 08 2b 00 mov 0x2b089a(%rip),%edi # 6ca770 + 419ed6: 83 4d 04 04 orl $0x4,0x4(%rbp) + 419eda: 89 f8 mov %edi,%eax + 419edc: 83 e0 05 and $0x5,%eax + 419edf: 83 f8 05 cmp $0x5,%eax + 419ee2: 0f 84 d3 04 00 00 je 41a3bb <_int_free+0xbfb> + 419ee8: 41 89 fe mov %edi,%r14d + 419eeb: 41 83 e6 02 and $0x2,%r14d + 419eef: 83 e7 01 and $0x1,%edi + 419ef2: 0f 85 10 03 00 00 jne 41a208 <_int_free+0xa48> + 419ef8: 45 85 f6 test %r14d,%r14d + 419efb: 0f 84 df fc ff ff je 419be0 <_int_free+0x420> + 419f01: e9 9e 02 00 00 jmpq 41a1a4 <_int_free+0x9e4> + 419f06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 419f0d: 00 00 00 + 419f10: 48 89 f7 mov %rsi,%rdi + 419f13: e8 d8 dd ff ff callq 417cf0 + 419f18: e9 ee f9 ff ff jmpq 41990b <_int_free+0x14b> + 419f1d: 0f 1f 00 nopl (%rax) + 419f20: 44 39 e7 cmp %r12d,%edi + 419f23: 0f 84 e2 f9 ff ff je 41990b <_int_free+0x14b> + 419f29: 84 c9 test %cl,%cl + 419f2b: 0f 84 da f9 ff ff je 41990b <_int_free+0x14b> + 419f31: 4c 89 c7 mov %r8,%rdi + 419f34: 41 bd df 20 4a 00 mov $0x4a20df,%r13d + 419f3a: e9 99 f9 ff ff jmpq 4198d8 <_int_free+0x118> + 419f3f: 90 nop + 419f40: 44 8b 15 29 08 2b 00 mov 0x2b0829(%rip),%r10d # 6ca770 + 419f47: 83 4d 04 04 orl $0x4,0x4(%rbp) + 419f4b: 44 89 d0 mov %r10d,%eax + 419f4e: 83 e0 05 and $0x5,%eax + 419f51: 83 f8 05 cmp $0x5,%eax + 419f54: 0f 84 66 05 00 00 je 41a4c0 <_int_free+0xd00> + 419f5a: 41 f6 c2 01 test $0x1,%r10b + 419f5e: 0f 85 71 01 00 00 jne 41a0d5 <_int_free+0x915> + 419f64: 41 f6 c2 02 test $0x2,%r10b + 419f68: 0f 85 36 02 00 00 jne 41a1a4 <_int_free+0x9e4> + 419f6e: 4d 8b 74 24 10 mov 0x10(%r12),%r14 + 419f73: 49 8b 44 24 18 mov 0x18(%r12),%rax + 419f78: 4d 3b 66 18 cmp 0x18(%r14),%r12 + 419f7c: 0f 85 5e fc ff ff jne 419be0 <_int_free+0x420> + 419f82: 4c 3b 60 10 cmp 0x10(%rax),%r12 + 419f86: 0f 84 2c fc ff ff je 419bb8 <_int_free+0x3f8> + 419f8c: 44 89 d7 mov %r10d,%edi + 419f8f: 83 4d 04 04 orl $0x4,0x4(%rbp) + 419f93: e9 50 ff ff ff jmpq 419ee8 <_int_free+0x728> + 419f98: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 419f9f: 00 + 419fa0: 49 83 65 08 fe andq $0xfffffffffffffffe,0x8(%r13) + 419fa5: e9 df fa ff ff jmpq 419a89 <_int_free+0x2c9> + 419faa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 419fb0: 44 89 e7 mov %r12d,%edi + 419fb3: 4c 89 ea mov %r13,%rdx + 419fb6: be 3c ca 4b 00 mov $0x4bca3c,%esi + 419fbb: 83 e7 02 and $0x2,%edi + 419fbe: 31 c0 xor %eax,%eax + 419fc0: e8 fb 75 ff ff callq 4115c0 <__libc_message> + 419fc5: e9 41 f9 ff ff jmpq 41990b <_int_free+0x14b> + 419fca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 419fd0: 44 8b 44 24 04 mov 0x4(%rsp),%r8d + 419fd5: 45 85 c0 test %r8d,%r8d + 419fd8: 0f 85 92 00 00 00 jne 41a070 <_int_free+0x8b0> + 419fde: be 01 00 00 00 mov $0x1,%esi + 419fe3: 8b 44 24 04 mov 0x4(%rsp),%eax + 419fe7: 83 3d ce 31 2b 00 00 cmpl $0x0,0x2b31ce(%rip) # 6cd1bc <__libc_multiple_threads> + 419fee: 74 09 je 419ff9 <_int_free+0x839> + 419ff0: f0 0f b1 75 00 lock cmpxchg %esi,0x0(%rbp) + 419ff5: 75 08 jne 419fff <_int_free+0x83f> + 419ff7: eb 1d jmp 41a016 <_int_free+0x856> + 419ff9: 0f b1 75 00 cmpxchg %esi,0x0(%rbp) + 419ffd: 74 17 je 41a016 <_int_free+0x856> + 419fff: 48 8d 7d 00 lea 0x0(%rbp),%rdi + 41a003: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41a00a: e8 c1 85 02 00 callq 4425d0 <__lll_lock_wait_private> + 41a00f: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41a016: 48 8b 42 08 mov 0x8(%rdx),%rax + 41a01a: 48 83 f8 10 cmp $0x10,%rax + 41a01e: 0f 86 d4 02 00 00 jbe 41a2f8 <_int_free+0xb38> + 41a024: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 41a028: 48 3b 85 80 08 00 00 cmp 0x880(%rbp),%rax + 41a02f: 0f 83 c3 02 00 00 jae 41a2f8 <_int_free+0xb38> + 41a035: 83 3d 80 31 2b 00 00 cmpl $0x0,0x2b3180(%rip) # 6cd1bc <__libc_multiple_threads> + 41a03c: 74 08 je 41a046 <_int_free+0x886> + 41a03e: f0 ff 4d 00 lock decl 0x0(%rbp) + 41a042: 75 07 jne 41a04b <_int_free+0x88b> + 41a044: eb 1c jmp 41a062 <_int_free+0x8a2> + 41a046: ff 4d 00 decl 0x0(%rbp) + 41a049: 74 17 je 41a062 <_int_free+0x8a2> + 41a04b: 48 8d 7d 00 lea 0x0(%rbp),%rdi + 41a04f: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41a056: e8 a5 85 02 00 callq 442600 <__lll_unlock_wake_private> + 41a05b: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41a062: e9 d7 f7 ff ff jmpq 41983e <_int_free+0x7e> + 41a067: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 41a06e: 00 00 + 41a070: 48 8d 7b 10 lea 0x10(%rbx),%rdi + 41a074: 41 bd 20 24 4a 00 mov $0x4a2420,%r13d + 41a07a: e9 59 f8 ff ff jmpq 4198d8 <_int_free+0x118> + 41a07f: 90 nop + 41a080: 49 8b 50 20 mov 0x20(%r8),%rdx + 41a084: 48 85 d2 test %rdx,%rdx + 41a087: 0f 84 f9 f9 ff ff je 419a86 <_int_free+0x2c6> + 41a08d: 4c 39 42 28 cmp %r8,0x28(%rdx) + 41a091: 0f 85 cd 0a 00 00 jne 41ab64 <_int_free+0x13a4> + 41a097: 49 8b 48 28 mov 0x28(%r8),%rcx + 41a09b: 4c 39 41 20 cmp %r8,0x20(%rcx) + 41a09f: 0f 85 bf 0a 00 00 jne 41ab64 <_int_free+0x13a4> + 41a0a5: 48 83 78 20 00 cmpq $0x0,0x20(%rax) + 41a0aa: 0f 84 8a 0a 00 00 je 41ab3a <_int_free+0x137a> + 41a0b0: 49 8b 40 28 mov 0x28(%r8),%rax + 41a0b4: 48 89 42 28 mov %rax,0x28(%rdx) + 41a0b8: 49 8b 40 28 mov 0x28(%r8),%rax + 41a0bc: 48 89 50 20 mov %rdx,0x20(%rax) + 41a0c0: e9 c1 f9 ff ff jmpq 419a86 <_int_free+0x2c6> + 41a0c5: 0f 1f 00 nopl (%rax) + 41a0c8: 48 89 ef mov %rbp,%rdi + 41a0cb: e8 60 dd ff ff callq 417e30 + 41a0d0: e9 15 fa ff ff jmpq 419aea <_int_free+0x32a> + 41a0d5: 48 8d 74 24 40 lea 0x40(%rsp),%rsi + 41a0da: 31 c9 xor %ecx,%ecx + 41a0dc: ba 10 00 00 00 mov $0x10,%edx + 41a0e1: 4c 89 e7 mov %r12,%rdi + 41a0e4: 44 89 54 24 18 mov %r10d,0x18(%rsp) + 41a0e9: c6 44 24 40 00 movb $0x0,0x40(%rsp) + 41a0ee: e8 bd 7d 03 00 callq 451eb0 <_itoa_word> + 41a0f3: 49 89 c6 mov %rax,%r14 + 41a0f6: 48 8d 44 24 30 lea 0x30(%rsp),%rax + 41a0fb: 44 8b 54 24 18 mov 0x18(%rsp),%r10d + 41a100: 49 39 c6 cmp %rax,%r14 + 41a103: 76 3c jbe 41a141 <_int_free+0x981> + 41a105: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 41a10a: 49 8d 4e ff lea -0x1(%r14),%rcx + 41a10e: 4c 89 f7 mov %r14,%rdi + 41a111: be 30 00 00 00 mov $0x30,%esi + 41a116: 44 89 54 24 20 mov %r10d,0x20(%rsp) + 41a11b: 48 89 4c 24 18 mov %rcx,0x18(%rsp) + 41a120: 48 8d 14 08 lea (%rax,%rcx,1),%rdx + 41a124: 48 29 d7 sub %rdx,%rdi + 41a127: e8 24 62 fe ff callq 400350 <__rela_iplt_end+0x88> + 41a12c: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx + 41a131: 48 8d 44 24 2f lea 0x2f(%rsp),%rax + 41a136: 44 8b 54 24 20 mov 0x20(%rsp),%r10d + 41a13b: 48 29 c8 sub %rcx,%rax + 41a13e: 49 01 c6 add %rax,%r14 + 41a141: 48 8b 05 78 31 2b 00 mov 0x2b3178(%rip),%rax # 6cd2c0 <__libc_argv> + 41a148: 44 89 d7 mov %r10d,%edi + 41a14b: ba 38 20 4a 00 mov $0x4a2038,%edx + 41a150: 4d 89 f0 mov %r14,%r8 + 41a153: b9 78 20 4a 00 mov $0x4a2078,%ecx + 41a158: be a8 23 4a 00 mov $0x4a23a8,%esi + 41a15d: 48 8b 00 mov (%rax),%rax + 41a160: 48 85 c0 test %rax,%rax + 41a163: 48 0f 45 d0 cmovne %rax,%rdx + 41a167: 83 e7 02 and $0x2,%edi + 41a16a: 31 c0 xor %eax,%eax + 41a16c: e8 4f 74 ff ff callq 4115c0 <__libc_message> + 41a171: e9 24 fa ff ff jmpq 419b9a <_int_free+0x3da> + 41a176: 44 8b 15 f3 05 2b 00 mov 0x2b05f3(%rip),%r10d # 6ca770 + 41a17d: 83 4d 04 04 orl $0x4,0x4(%rbp) + 41a181: 44 89 d0 mov %r10d,%eax + 41a184: 83 e0 05 and $0x5,%eax + 41a187: 83 f8 05 cmp $0x5,%eax + 41a18a: 0f 84 7a 07 00 00 je 41a90a <_int_free+0x114a> + 41a190: 41 f6 c2 01 test $0x1,%r10b + 41a194: 0f 85 62 04 00 00 jne 41a5fc <_int_free+0xe3c> + 41a19a: 41 83 e2 02 and $0x2,%r10d + 41a19e: 0f 84 e2 f8 ff ff je 419a86 <_int_free+0x2c6> + 41a1a4: e8 57 3a ff ff callq 40dc00 + 41a1a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41a1b0: 41 bd 00 25 4a 00 mov $0x4a2500,%r13d + 41a1b6: 44 8b 54 24 04 mov 0x4(%rsp),%r10d + 41a1bb: 45 85 d2 test %r10d,%r10d + 41a1be: 0f 85 48 0a 00 00 jne 41ac0c <_int_free+0x144c> + 41a1c4: 45 84 c9 test %r9b,%r9b + 41a1c7: 0f 84 3f 0a 00 00 je 41ac0c <_int_free+0x144c> + 41a1cd: 83 3d e8 2f 2b 00 00 cmpl $0x0,0x2b2fe8(%rip) # 6cd1bc <__libc_multiple_threads> + 41a1d4: 74 08 je 41a1de <_int_free+0xa1e> + 41a1d6: f0 ff 4d 00 lock decl 0x0(%rbp) + 41a1da: 75 07 jne 41a1e3 <_int_free+0xa23> + 41a1dc: eb 1c jmp 41a1fa <_int_free+0xa3a> + 41a1de: ff 4d 00 decl 0x0(%rbp) + 41a1e1: 74 17 je 41a1fa <_int_free+0xa3a> + 41a1e3: 48 8d 7d 00 lea 0x0(%rbp),%rdi + 41a1e7: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41a1ee: e8 0d 84 02 00 callq 442600 <__lll_unlock_wake_private> + 41a1f3: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41a1fa: 48 8d 7b 10 lea 0x10(%rbx),%rdi + 41a1fe: e9 d5 f6 ff ff jmpq 4198d8 <_int_free+0x118> + 41a203: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41a208: 48 8d 74 24 40 lea 0x40(%rsp),%rsi + 41a20d: 31 c9 xor %ecx,%ecx + 41a20f: ba 10 00 00 00 mov $0x10,%edx + 41a214: 4c 89 e7 mov %r12,%rdi + 41a217: c6 44 24 40 00 movb $0x0,0x40(%rsp) + 41a21c: e8 8f 7c 03 00 callq 451eb0 <_itoa_word> + 41a221: 49 89 c0 mov %rax,%r8 + 41a224: 48 8d 44 24 30 lea 0x30(%rsp),%rax + 41a229: 49 39 c0 cmp %rax,%r8 + 41a22c: 76 3c jbe 41a26a <_int_free+0xaaa> + 41a22e: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 41a233: 49 8d 48 ff lea -0x1(%r8),%rcx + 41a237: 4c 89 c7 mov %r8,%rdi + 41a23a: be 30 00 00 00 mov $0x30,%esi + 41a23f: 4c 89 44 24 18 mov %r8,0x18(%rsp) + 41a244: 48 89 4c 24 20 mov %rcx,0x20(%rsp) + 41a249: 48 8d 14 08 lea (%rax,%rcx,1),%rdx + 41a24d: 48 29 d7 sub %rdx,%rdi + 41a250: e8 fb 60 fe ff callq 400350 <__rela_iplt_end+0x88> + 41a255: 48 8b 4c 24 20 mov 0x20(%rsp),%rcx + 41a25a: 48 8d 44 24 2f lea 0x2f(%rsp),%rax + 41a25f: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 + 41a264: 48 29 c8 sub %rcx,%rax + 41a267: 49 01 c0 add %rax,%r8 + 41a26a: 48 8b 05 4f 30 2b 00 mov 0x2b304f(%rip),%rax # 6cd2c0 <__libc_argv> + 41a271: ba 38 20 4a 00 mov $0x4a2038,%edx + 41a276: b9 95 20 4a 00 mov $0x4a2095,%ecx + 41a27b: be a8 23 4a 00 mov $0x4a23a8,%esi + 41a280: 44 89 f7 mov %r14d,%edi + 41a283: 48 8b 00 mov (%rax),%rax + 41a286: 48 85 c0 test %rax,%rax + 41a289: 48 0f 45 d0 cmovne %rax,%rdx + 41a28d: 31 c0 xor %eax,%eax + 41a28f: e8 2c 73 ff ff callq 4115c0 <__libc_message> + 41a294: e9 47 f9 ff ff jmpq 419be0 <_int_free+0x420> + 41a299: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41a2a0: 49 8d 54 24 f0 lea -0x10(%r12),%rdx + 41a2a5: 4c 89 c7 mov %r8,%rdi + 41a2a8: e8 a3 60 fe ff callq 400350 <__rela_iplt_end+0x88> + 41a2ad: 49 89 c0 mov %rax,%r8 + 41a2b0: e9 9b f5 ff ff jmpq 419850 <_int_free+0x90> + 41a2b5: 0f 1f 00 nopl (%rax) + 41a2b8: 4c 3b 60 28 cmp 0x28(%rax),%r12 + 41a2bc: 0f 85 1a 02 00 00 jne 41a4dc <_int_free+0xd1c> + 41a2c2: 49 8b 54 24 28 mov 0x28(%r12),%rdx + 41a2c7: 4c 3b 62 20 cmp 0x20(%rdx),%r12 + 41a2cb: 0f 85 0b 02 00 00 jne 41a4dc <_int_free+0xd1c> + 41a2d1: 49 83 7e 20 00 cmpq $0x0,0x20(%r14) + 41a2d6: 0f 84 34 02 00 00 je 41a510 <_int_free+0xd50> + 41a2dc: 49 8b 54 24 28 mov 0x28(%r12),%rdx + 41a2e1: 48 89 50 28 mov %rdx,0x28(%rax) + 41a2e5: 49 8b 54 24 28 mov 0x28(%r12),%rdx + 41a2ea: 48 89 42 20 mov %rax,0x20(%rdx) + 41a2ee: e9 ed f8 ff ff jmpq 419be0 <_int_free+0x420> + 41a2f3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41a2f8: 41 bd 20 24 4a 00 mov $0x4a2420,%r13d + 41a2fe: e9 ca fe ff ff jmpq 41a1cd <_int_free+0xa0d> + 41a303: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41a308: 41 bd 98 24 4a 00 mov $0x4a2498,%r13d + 41a30e: e9 ba fe ff ff jmpq 41a1cd <_int_free+0xa0d> + 41a313: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41a318: 4d 01 fc add %r15,%r12 + 41a31b: 4c 89 e0 mov %r12,%rax + 41a31e: 48 83 c8 01 or $0x1,%rax + 41a322: 48 89 43 08 mov %rax,0x8(%rbx) + 41a326: 48 89 5d 58 mov %rbx,0x58(%rbp) + 41a32a: e9 a4 f7 ff ff jmpq 419ad3 <_int_free+0x313> + 41a32f: 90 nop + 41a330: 48 8b 50 08 mov 0x8(%rax),%rdx + 41a334: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx + 41a338: 48 01 d0 add %rdx,%rax + 41a33b: 49 39 c5 cmp %rax,%r13 + 41a33e: 0f 82 16 f6 ff ff jb 41995a <_int_free+0x19a> + 41a344: 41 bd b8 24 4a 00 mov $0x4a24b8,%r13d + 41a34a: e9 67 fe ff ff jmpq 41a1b6 <_int_free+0x9f6> + 41a34f: 90 nop + 41a350: 41 bd d8 24 4a 00 mov $0x4a24d8,%r13d + 41a356: e9 5b fe ff ff jmpq 41a1b6 <_int_free+0x9f6> + 41a35b: 49 8d 54 24 f0 lea -0x10(%r12),%rdx + 41a360: 48 8d 7b 10 lea 0x10(%rbx),%rdi + 41a364: 44 88 4c 24 08 mov %r9b,0x8(%rsp) + 41a369: e8 e2 5f fe ff callq 400350 <__rela_iplt_end+0x88> + 41a36e: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d + 41a374: e9 19 f6 ff ff jmpq 419992 <_int_free+0x1d2> + 41a379: 44 8b 15 f0 03 2b 00 mov 0x2b03f0(%rip),%r10d # 6ca770 + 41a380: 83 4d 04 04 orl $0x4,0x4(%rbp) + 41a384: 44 89 d0 mov %r10d,%eax + 41a387: 83 e0 05 and $0x5,%eax + 41a38a: 83 f8 05 cmp $0x5,%eax + 41a38d: 0f 84 50 05 00 00 je 41a8e3 <_int_free+0x1123> + 41a393: 41 f6 c2 01 test $0x1,%r10b + 41a397: 0f 85 a0 01 00 00 jne 41a53d <_int_free+0xd7d> + 41a39d: 41 83 e2 02 and $0x2,%r10d + 41a3a1: 0f 84 81 f6 ff ff je 419a28 <_int_free+0x268> + 41a3a7: e9 f8 fd ff ff jmpq 41a1a4 <_int_free+0x9e4> + 41a3ac: 0f 1f 40 00 nopl 0x0(%rax) + 41a3b0: 41 bd 48 24 4a 00 mov $0x4a2448,%r13d + 41a3b6: e9 fb fd ff ff jmpq 41a1b6 <_int_free+0x9f6> + 41a3bb: 83 e7 02 and $0x2,%edi + 41a3be: ba 95 20 4a 00 mov $0x4a2095,%edx + 41a3c3: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41a3c8: 31 c0 xor %eax,%eax + 41a3ca: e8 f1 71 ff ff callq 4115c0 <__libc_message> + 41a3cf: e9 0c f8 ff ff jmpq 419be0 <_int_free+0x420> + 41a3d4: 48 8b 05 7d 04 2b 00 mov 0x2b047d(%rip),%rax # 6ca858 + 41a3db: 48 8b 40 08 mov 0x8(%rax),%rax + 41a3df: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 41a3e3: 48 3b 05 b6 03 2b 00 cmp 0x2b03b6(%rip),%rax # 6ca7a0 + 41a3ea: 0f 82 90 fa ff ff jb 419e80 <_int_free+0x6c0> + 41a3f0: 48 8b 3d b1 03 2b 00 mov 0x2b03b1(%rip),%rdi # 6ca7a8 + 41a3f7: ba 80 b0 6c 00 mov $0x6cb080,%edx + 41a3fc: be 58 a8 6c 00 mov $0x6ca858,%esi + 41a401: e8 9a cf ff ff callq 4173a0 + 41a406: e9 75 fa ff ff jmpq 419e80 <_int_free+0x6c0> + 41a40b: 44 8b 15 5e 03 2b 00 mov 0x2b035e(%rip),%r10d # 6ca770 + 41a412: 83 4d 04 04 orl $0x4,0x4(%rbp) + 41a416: 44 89 d0 mov %r10d,%eax + 41a419: 83 e0 05 and $0x5,%eax + 41a41c: 83 f8 05 cmp $0x5,%eax + 41a41f: 0f 84 f0 05 00 00 je 41aa15 <_int_free+0x1255> + 41a425: 41 f6 c2 01 test $0x1,%r10b + 41a429: 0f 85 89 02 00 00 jne 41a6b8 <_int_free+0xef8> + 41a42f: 41 f6 c2 02 test $0x2,%r10b + 41a433: 0f 85 6b fd ff ff jne 41a1a4 <_int_free+0x9e4> + 41a439: 48 8b 43 10 mov 0x10(%rbx),%rax + 41a43d: 48 8b 53 18 mov 0x18(%rbx),%rdx + 41a441: 48 3b 58 18 cmp 0x18(%rax),%rbx + 41a445: 0f 85 52 ff ff ff jne 41a39d <_int_free+0xbdd> + 41a44b: 48 3b 5a 10 cmp 0x10(%rdx),%rbx + 41a44f: 0f 84 7e f5 ff ff je 4199d3 <_int_free+0x213> + 41a455: 83 4d 04 04 orl $0x4,0x4(%rbp) + 41a459: e9 35 ff ff ff jmpq 41a393 <_int_free+0xbd3> + 41a45e: 66 90 xchg %ax,%ax + 41a460: 44 8b 15 09 03 2b 00 mov 0x2b0309(%rip),%r10d # 6ca770 + 41a467: 83 4d 04 04 orl $0x4,0x4(%rbp) + 41a46b: 44 89 d0 mov %r10d,%eax + 41a46e: 83 e0 05 and $0x5,%eax + 41a471: 83 f8 05 cmp $0x5,%eax + 41a474: 0f 84 c2 05 00 00 je 41aa3c <_int_free+0x127c> + 41a47a: 41 f6 c2 01 test $0x1,%r10b + 41a47e: 0f 85 f3 02 00 00 jne 41a777 <_int_free+0xfb7> + 41a484: 41 f6 c2 02 test $0x2,%r10b + 41a488: 0f 85 16 fd ff ff jne 41a1a4 <_int_free+0x9e4> + 41a48e: 49 8b 45 10 mov 0x10(%r13),%rax + 41a492: 49 8b 55 18 mov 0x18(%r13),%rdx + 41a496: 4c 39 68 18 cmp %r13,0x18(%rax) + 41a49a: 0f 85 fa fc ff ff jne 41a19a <_int_free+0x9da> + 41a4a0: 4c 8b 42 10 mov 0x10(%rdx),%r8 + 41a4a4: 4d 39 c5 cmp %r8,%r13 + 41a4a7: 0f 84 c3 f5 ff ff je 419a70 <_int_free+0x2b0> + 41a4ad: 83 4d 04 04 orl $0x4,0x4(%rbp) + 41a4b1: e9 da fc ff ff jmpq 41a190 <_int_free+0x9d0> + 41a4b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41a4bd: 00 00 00 + 41a4c0: 44 89 d7 mov %r10d,%edi + 41a4c3: ba 78 20 4a 00 mov $0x4a2078,%edx + 41a4c8: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41a4cd: 83 e7 02 and $0x2,%edi + 41a4d0: 31 c0 xor %eax,%eax + 41a4d2: e8 e9 70 ff ff callq 4115c0 <__libc_message> + 41a4d7: e9 be f6 ff ff jmpq 419b9a <_int_free+0x3da> + 41a4dc: 44 8b 15 8d 02 2b 00 mov 0x2b028d(%rip),%r10d # 6ca770 + 41a4e3: 83 4d 04 04 orl $0x4,0x4(%rbp) + 41a4e7: 44 89 d2 mov %r10d,%edx + 41a4ea: 83 e2 05 and $0x5,%edx + 41a4ed: 83 fa 05 cmp $0x5,%edx + 41a4f0: 0f 84 f9 05 00 00 je 41aaef <_int_free+0x132f> + 41a4f6: 41 f6 c2 01 test $0x1,%r10b + 41a4fa: 0f 85 36 03 00 00 jne 41a836 <_int_free+0x1076> + 41a500: 41 83 e2 02 and $0x2,%r10d + 41a504: 0f 84 c7 fd ff ff je 41a2d1 <_int_free+0xb11> + 41a50a: e9 95 fc ff ff jmpq 41a1a4 <_int_free+0x9e4> + 41a50f: 90 nop + 41a510: 49 39 c4 cmp %rax,%r12 + 41a513: 0f 84 95 05 00 00 je 41aaae <_int_free+0x12ee> + 41a519: 49 89 46 20 mov %rax,0x20(%r14) + 41a51d: 49 8b 44 24 28 mov 0x28(%r12),%rax + 41a522: 49 89 46 28 mov %rax,0x28(%r14) + 41a526: 49 8b 44 24 20 mov 0x20(%r12),%rax + 41a52b: 4c 89 70 28 mov %r14,0x28(%rax) + 41a52f: 49 8b 44 24 28 mov 0x28(%r12),%rax + 41a534: 4c 89 70 20 mov %r14,0x20(%rax) + 41a538: e9 a3 f6 ff ff jmpq 419be0 <_int_free+0x420> + 41a53d: 4c 8d 5c 24 30 lea 0x30(%rsp),%r11 + 41a542: 48 8d 74 24 40 lea 0x40(%rsp),%rsi + 41a547: 31 c9 xor %ecx,%ecx + 41a549: ba 10 00 00 00 mov $0x10,%edx + 41a54e: 48 89 df mov %rbx,%rdi + 41a551: 44 88 4c 24 18 mov %r9b,0x18(%rsp) + 41a556: 44 89 54 24 10 mov %r10d,0x10(%rsp) + 41a55b: 4c 89 5c 24 08 mov %r11,0x8(%rsp) + 41a560: c6 44 24 40 00 movb $0x0,0x40(%rsp) + 41a565: e8 46 79 03 00 callq 451eb0 <_itoa_word> + 41a56a: 4c 8b 5c 24 08 mov 0x8(%rsp),%r11 + 41a56f: 49 89 c0 mov %rax,%r8 + 41a572: 44 8b 54 24 10 mov 0x10(%rsp),%r10d + 41a577: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d + 41a57d: 4c 39 d8 cmp %r11,%rax + 41a580: 76 3d jbe 41a5bf <_int_free+0xdff> + 41a582: 4c 89 c2 mov %r8,%rdx + 41a585: 4c 89 c7 mov %r8,%rdi + 41a588: 48 8d 40 ff lea -0x1(%rax),%rax + 41a58c: 4c 29 da sub %r11,%rdx + 41a58f: be 30 00 00 00 mov $0x30,%esi + 41a594: 4c 89 44 24 08 mov %r8,0x8(%rsp) + 41a599: 48 29 d7 sub %rdx,%rdi + 41a59c: 49 89 c6 mov %rax,%r14 + 41a59f: e8 ac 5d fe ff callq 400350 <__rela_iplt_end+0x88> + 41a5a4: 48 8d 44 24 2f lea 0x2f(%rsp),%rax + 41a5a9: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 + 41a5ae: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d + 41a5b4: 44 8b 54 24 10 mov 0x10(%rsp),%r10d + 41a5b9: 4c 29 f0 sub %r14,%rax + 41a5bc: 49 01 c0 add %rax,%r8 + 41a5bf: 48 8b 05 fa 2c 2b 00 mov 0x2b2cfa(%rip),%rax # 6cd2c0 <__libc_argv> + 41a5c6: 44 89 d7 mov %r10d,%edi + 41a5c9: ba 38 20 4a 00 mov $0x4a2038,%edx + 41a5ce: b9 95 20 4a 00 mov $0x4a2095,%ecx + 41a5d3: be a8 23 4a 00 mov $0x4a23a8,%esi + 41a5d8: 44 88 4c 24 08 mov %r9b,0x8(%rsp) + 41a5dd: 48 8b 00 mov (%rax),%rax + 41a5e0: 48 85 c0 test %rax,%rax + 41a5e3: 48 0f 45 d0 cmovne %rax,%rdx + 41a5e7: 83 e7 02 and $0x2,%edi + 41a5ea: 31 c0 xor %eax,%eax + 41a5ec: e8 cf 6f ff ff callq 4115c0 <__libc_message> + 41a5f1: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d + 41a5f7: e9 2c f4 ff ff jmpq 419a28 <_int_free+0x268> + 41a5fc: 4c 8d 5c 24 30 lea 0x30(%rsp),%r11 + 41a601: 48 8d 74 24 40 lea 0x40(%rsp),%rsi + 41a606: 31 c9 xor %ecx,%ecx + 41a608: ba 10 00 00 00 mov $0x10,%edx + 41a60d: 4c 89 ef mov %r13,%rdi + 41a610: 44 88 4c 24 18 mov %r9b,0x18(%rsp) + 41a615: 44 89 54 24 10 mov %r10d,0x10(%rsp) + 41a61a: 4c 89 5c 24 08 mov %r11,0x8(%rsp) + 41a61f: c6 44 24 40 00 movb $0x0,0x40(%rsp) + 41a624: e8 87 78 03 00 callq 451eb0 <_itoa_word> + 41a629: 4c 8b 5c 24 08 mov 0x8(%rsp),%r11 + 41a62e: 49 89 c0 mov %rax,%r8 + 41a631: 44 8b 54 24 10 mov 0x10(%rsp),%r10d + 41a636: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d + 41a63c: 4c 39 d8 cmp %r11,%rax + 41a63f: 76 3a jbe 41a67b <_int_free+0xebb> + 41a641: 48 89 c2 mov %rax,%rdx + 41a644: 48 89 c7 mov %rax,%rdi + 41a647: be 30 00 00 00 mov $0x30,%esi + 41a64c: 4c 29 da sub %r11,%rdx + 41a64f: 4c 8d 68 ff lea -0x1(%rax),%r13 + 41a653: 48 89 44 24 08 mov %rax,0x8(%rsp) + 41a658: 48 29 d7 sub %rdx,%rdi + 41a65b: e8 f0 5c fe ff callq 400350 <__rela_iplt_end+0x88> + 41a660: 48 8d 44 24 2f lea 0x2f(%rsp),%rax + 41a665: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 + 41a66a: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d + 41a670: 44 8b 54 24 10 mov 0x10(%rsp),%r10d + 41a675: 4c 29 e8 sub %r13,%rax + 41a678: 49 01 c0 add %rax,%r8 + 41a67b: 48 8b 05 3e 2c 2b 00 mov 0x2b2c3e(%rip),%rax # 6cd2c0 <__libc_argv> + 41a682: 44 89 d7 mov %r10d,%edi + 41a685: ba 38 20 4a 00 mov $0x4a2038,%edx + 41a68a: b9 95 20 4a 00 mov $0x4a2095,%ecx + 41a68f: be a8 23 4a 00 mov $0x4a23a8,%esi + 41a694: 44 88 4c 24 08 mov %r9b,0x8(%rsp) + 41a699: 48 8b 00 mov (%rax),%rax + 41a69c: 48 85 c0 test %rax,%rax + 41a69f: 48 0f 45 d0 cmovne %rax,%rdx + 41a6a3: 83 e7 02 and $0x2,%edi + 41a6a6: 31 c0 xor %eax,%eax + 41a6a8: e8 13 6f ff ff callq 4115c0 <__libc_message> + 41a6ad: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d + 41a6b3: e9 ce f3 ff ff jmpq 419a86 <_int_free+0x2c6> + 41a6b8: 4c 8d 5c 24 30 lea 0x30(%rsp),%r11 + 41a6bd: 48 8d 74 24 40 lea 0x40(%rsp),%rsi + 41a6c2: 31 c9 xor %ecx,%ecx + 41a6c4: ba 10 00 00 00 mov $0x10,%edx + 41a6c9: 48 89 df mov %rbx,%rdi + 41a6cc: 44 88 4c 24 18 mov %r9b,0x18(%rsp) + 41a6d1: 44 89 54 24 10 mov %r10d,0x10(%rsp) + 41a6d6: 4c 89 5c 24 08 mov %r11,0x8(%rsp) + 41a6db: c6 44 24 40 00 movb $0x0,0x40(%rsp) + 41a6e0: e8 cb 77 03 00 callq 451eb0 <_itoa_word> + 41a6e5: 4c 8b 5c 24 08 mov 0x8(%rsp),%r11 + 41a6ea: 49 89 c0 mov %rax,%r8 + 41a6ed: 44 8b 54 24 10 mov 0x10(%rsp),%r10d + 41a6f2: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d + 41a6f8: 4c 39 d8 cmp %r11,%rax + 41a6fb: 76 3d jbe 41a73a <_int_free+0xf7a> + 41a6fd: 4c 89 c2 mov %r8,%rdx + 41a700: 4c 89 c7 mov %r8,%rdi + 41a703: 48 8d 40 ff lea -0x1(%rax),%rax + 41a707: 4c 29 da sub %r11,%rdx + 41a70a: be 30 00 00 00 mov $0x30,%esi + 41a70f: 4c 89 44 24 08 mov %r8,0x8(%rsp) + 41a714: 48 29 d7 sub %rdx,%rdi + 41a717: 49 89 c6 mov %rax,%r14 + 41a71a: e8 31 5c fe ff callq 400350 <__rela_iplt_end+0x88> + 41a71f: 48 8d 44 24 2f lea 0x2f(%rsp),%rax + 41a724: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 + 41a729: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d + 41a72f: 44 8b 54 24 10 mov 0x10(%rsp),%r10d + 41a734: 4c 29 f0 sub %r14,%rax + 41a737: 49 01 c0 add %rax,%r8 + 41a73a: 48 8b 05 7f 2b 2b 00 mov 0x2b2b7f(%rip),%rax # 6cd2c0 <__libc_argv> + 41a741: 44 89 d7 mov %r10d,%edi + 41a744: ba 38 20 4a 00 mov $0x4a2038,%edx + 41a749: b9 78 20 4a 00 mov $0x4a2078,%ecx + 41a74e: be a8 23 4a 00 mov $0x4a23a8,%esi + 41a753: 44 88 4c 24 08 mov %r9b,0x8(%rsp) + 41a758: 48 8b 00 mov (%rax),%rax + 41a75b: 48 85 c0 test %rax,%rax + 41a75e: 48 0f 45 d0 cmovne %rax,%rdx + 41a762: 83 e7 02 and $0x2,%edi + 41a765: 31 c0 xor %eax,%eax + 41a767: e8 54 6e ff ff callq 4115c0 <__libc_message> + 41a76c: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d + 41a772: e9 40 f2 ff ff jmpq 4199b7 <_int_free+0x1f7> + 41a777: 4c 8d 5c 24 30 lea 0x30(%rsp),%r11 + 41a77c: 48 8d 74 24 40 lea 0x40(%rsp),%rsi + 41a781: 31 c9 xor %ecx,%ecx + 41a783: ba 10 00 00 00 mov $0x10,%edx + 41a788: 4c 89 ef mov %r13,%rdi + 41a78b: 44 88 4c 24 18 mov %r9b,0x18(%rsp) + 41a790: 44 89 54 24 10 mov %r10d,0x10(%rsp) + 41a795: 4c 89 5c 24 08 mov %r11,0x8(%rsp) + 41a79a: c6 44 24 40 00 movb $0x0,0x40(%rsp) + 41a79f: e8 0c 77 03 00 callq 451eb0 <_itoa_word> + 41a7a4: 4c 8b 5c 24 08 mov 0x8(%rsp),%r11 + 41a7a9: 49 89 c0 mov %rax,%r8 + 41a7ac: 44 8b 54 24 10 mov 0x10(%rsp),%r10d + 41a7b1: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d + 41a7b7: 4c 39 d8 cmp %r11,%rax + 41a7ba: 76 3d jbe 41a7f9 <_int_free+0x1039> + 41a7bc: 4c 89 c2 mov %r8,%rdx + 41a7bf: 4c 89 c7 mov %r8,%rdi + 41a7c2: 48 8d 40 ff lea -0x1(%rax),%rax + 41a7c6: 4c 29 da sub %r11,%rdx + 41a7c9: be 30 00 00 00 mov $0x30,%esi + 41a7ce: 4c 89 44 24 08 mov %r8,0x8(%rsp) + 41a7d3: 48 29 d7 sub %rdx,%rdi + 41a7d6: 49 89 c6 mov %rax,%r14 + 41a7d9: e8 72 5b fe ff callq 400350 <__rela_iplt_end+0x88> + 41a7de: 48 8d 44 24 2f lea 0x2f(%rsp),%rax + 41a7e3: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 + 41a7e8: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d + 41a7ee: 44 8b 54 24 10 mov 0x10(%rsp),%r10d + 41a7f3: 4c 29 f0 sub %r14,%rax + 41a7f6: 49 01 c0 add %rax,%r8 + 41a7f9: 48 8b 05 c0 2a 2b 00 mov 0x2b2ac0(%rip),%rax # 6cd2c0 <__libc_argv> + 41a800: 44 89 d7 mov %r10d,%edi + 41a803: ba 38 20 4a 00 mov $0x4a2038,%edx + 41a808: b9 78 20 4a 00 mov $0x4a2078,%ecx + 41a80d: be a8 23 4a 00 mov $0x4a23a8,%esi + 41a812: 44 88 4c 24 08 mov %r9b,0x8(%rsp) + 41a817: 48 8b 00 mov (%rax),%rax + 41a81a: 48 85 c0 test %rax,%rax + 41a81d: 48 0f 45 d0 cmovne %rax,%rdx + 41a821: 83 e7 02 and $0x2,%edi + 41a824: 31 c0 xor %eax,%eax + 41a826: e8 95 6d ff ff callq 4115c0 <__libc_message> + 41a82b: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d + 41a831: e9 1b f2 ff ff jmpq 419a51 <_int_free+0x291> + 41a836: 48 8d 74 24 40 lea 0x40(%rsp),%rsi + 41a83b: 31 c9 xor %ecx,%ecx + 41a83d: ba 10 00 00 00 mov $0x10,%edx + 41a842: 4c 89 e7 mov %r12,%rdi + 41a845: 44 89 54 24 18 mov %r10d,0x18(%rsp) + 41a84a: c6 44 24 40 00 movb $0x0,0x40(%rsp) + 41a84f: e8 5c 76 03 00 callq 451eb0 <_itoa_word> + 41a854: 49 89 c0 mov %rax,%r8 + 41a857: 48 8d 44 24 30 lea 0x30(%rsp),%rax + 41a85c: 44 8b 54 24 18 mov 0x18(%rsp),%r10d + 41a861: 49 39 c0 cmp %rax,%r8 + 41a864: 76 46 jbe 41a8ac <_int_free+0x10ec> + 41a866: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 41a86b: 49 8d 48 ff lea -0x1(%r8),%rcx + 41a86f: 4c 89 c7 mov %r8,%rdi + 41a872: be 30 00 00 00 mov $0x30,%esi + 41a877: 44 89 54 24 2c mov %r10d,0x2c(%rsp) + 41a87c: 4c 89 44 24 18 mov %r8,0x18(%rsp) + 41a881: 48 89 4c 24 20 mov %rcx,0x20(%rsp) + 41a886: 48 8d 14 08 lea (%rax,%rcx,1),%rdx + 41a88a: 48 29 d7 sub %rdx,%rdi + 41a88d: e8 be 5a fe ff callq 400350 <__rela_iplt_end+0x88> + 41a892: 48 8b 4c 24 20 mov 0x20(%rsp),%rcx + 41a897: 48 8d 44 24 2f lea 0x2f(%rsp),%rax + 41a89c: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 + 41a8a1: 44 8b 54 24 2c mov 0x2c(%rsp),%r10d + 41a8a6: 48 29 c8 sub %rcx,%rax + 41a8a9: 49 01 c0 add %rax,%r8 + 41a8ac: 48 8b 05 0d 2a 2b 00 mov 0x2b2a0d(%rip),%rax # 6cd2c0 <__libc_argv> + 41a8b3: 44 89 d7 mov %r10d,%edi + 41a8b6: ba 38 20 4a 00 mov $0x4a2038,%edx + 41a8bb: b9 f0 23 4a 00 mov $0x4a23f0,%ecx + 41a8c0: be a8 23 4a 00 mov $0x4a23a8,%esi + 41a8c5: 48 8b 00 mov (%rax),%rax + 41a8c8: 48 85 c0 test %rax,%rax + 41a8cb: 48 0f 45 d0 cmovne %rax,%rdx + 41a8cf: 31 c0 xor %eax,%eax + 41a8d1: 83 e7 02 and $0x2,%edi + 41a8d4: e8 e7 6c ff ff callq 4115c0 <__libc_message> + 41a8d9: 49 8b 44 24 20 mov 0x20(%r12),%rax + 41a8de: e9 ee f9 ff ff jmpq 41a2d1 <_int_free+0xb11> + 41a8e3: 44 89 d7 mov %r10d,%edi + 41a8e6: ba 95 20 4a 00 mov $0x4a2095,%edx + 41a8eb: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41a8f0: 83 e7 02 and $0x2,%edi + 41a8f3: 31 c0 xor %eax,%eax + 41a8f5: 44 88 4c 24 08 mov %r9b,0x8(%rsp) + 41a8fa: e8 c1 6c ff ff callq 4115c0 <__libc_message> + 41a8ff: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d + 41a905: e9 1e f1 ff ff jmpq 419a28 <_int_free+0x268> + 41a90a: 44 89 d7 mov %r10d,%edi + 41a90d: ba 95 20 4a 00 mov $0x4a2095,%edx + 41a912: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41a917: 83 e7 02 and $0x2,%edi + 41a91a: 31 c0 xor %eax,%eax + 41a91c: 44 88 4c 24 08 mov %r9b,0x8(%rsp) + 41a921: e8 9a 6c ff ff callq 4115c0 <__libc_message> + 41a926: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d + 41a92c: e9 55 f1 ff ff jmpq 419a86 <_int_free+0x2c6> + 41a931: 45 31 c9 xor %r9d,%r9d + 41a934: 31 d2 xor %edx,%edx + 41a936: 41 b8 ff ff ff ff mov $0xffffffff,%r8d + 41a93c: b9 32 00 00 00 mov $0x32,%ecx + 41a941: 4c 89 ee mov %r13,%rsi + 41a944: e8 a7 52 02 00 callq 43fbf0 <__mmap> + 41a949: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 41a94d: 0f 84 2d f5 ff ff je 419e80 <_int_free+0x6c0> + 41a953: 4d 89 77 18 mov %r14,0x18(%r15) + 41a957: e9 fe f4 ff ff jmpq 419e5a <_int_free+0x69a> + 41a95c: 44 8b 05 35 f6 2a 00 mov 0x2af635(%rip),%r8d # 6c9f98 <__libc_enable_secure> + 41a963: 45 85 c0 test %r8d,%r8d + 41a966: 44 89 05 f3 fd 2a 00 mov %r8d,0x2afdf3(%rip) # 6ca760 + 41a96d: 75 64 jne 41a9d3 <_int_free+0x1213> + 41a96f: be 00 00 08 00 mov $0x80000,%esi + 41a974: bf 00 26 4a 00 mov $0x4a2600,%edi + 41a979: b8 02 00 00 00 mov $0x2,%eax + 41a97e: 0f 05 syscall + 41a980: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 41a986: 0f 87 27 02 00 00 ja 41abb3 <_int_free+0x13f3> + 41a98c: 85 c0 test %eax,%eax + 41a98e: 78 43 js 41a9d3 <_int_free+0x1213> + 41a990: 4c 63 c8 movslq %eax,%r9 + 41a993: ba 01 00 00 00 mov $0x1,%edx + 41a998: 48 8d 74 24 30 lea 0x30(%rsp),%rsi + 41a99d: 4c 89 cf mov %r9,%rdi + 41a9a0: 44 89 c0 mov %r8d,%eax + 41a9a3: 0f 05 syscall + 41a9a5: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 41a9ab: 0f 87 f1 01 00 00 ja 41aba2 <_int_free+0x13e2> + 41a9b1: 48 85 c0 test %rax,%rax + 41a9b4: 7e 0c jle 41a9c2 <_int_free+0x1202> + 41a9b6: 45 31 c0 xor %r8d,%r8d + 41a9b9: 80 7c 24 30 32 cmpb $0x32,0x30(%rsp) + 41a9be: 41 0f 94 c0 sete %r8b + 41a9c2: 44 89 05 97 fd 2a 00 mov %r8d,0x2afd97(%rip) # 6ca760 + 41a9c9: 4c 89 cf mov %r9,%rdi + 41a9cc: b8 03 00 00 00 mov $0x3,%eax + 41a9d1: 0f 05 syscall + 41a9d3: 8b 0d 87 fd 2a 00 mov 0x2afd87(%rip),%ecx # 6ca760 + 41a9d9: 85 c9 test %ecx,%ecx + 41a9db: 0f 95 c0 setne %al + 41a9de: e9 5e f4 ff ff jmpq 419e41 <_int_free+0x681> + 41a9e3: b9 88 2e 4a 00 mov $0x4a2e88,%ecx + 41a9e8: ba 37 02 00 00 mov $0x237,%edx + 41a9ed: be a8 1f 4a 00 mov $0x4a1fa8,%esi + 41a9f2: bf 28 25 4a 00 mov $0x4a2528,%edi + 41a9f7: e8 24 c4 ff ff callq 416e20 <__malloc_assert> + 41a9fc: b9 88 2e 4a 00 mov $0x4a2e88,%ecx + 41aa01: ba 34 02 00 00 mov $0x234,%edx + 41aa06: be a8 1f 4a 00 mov $0x4a1fa8,%esi + 41aa0b: bf 0f 21 4a 00 mov $0x4a210f,%edi + 41aa10: e8 0b c4 ff ff callq 416e20 <__malloc_assert> + 41aa15: 44 89 d7 mov %r10d,%edi + 41aa18: ba 78 20 4a 00 mov $0x4a2078,%edx + 41aa1d: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41aa22: 83 e7 02 and $0x2,%edi + 41aa25: 31 c0 xor %eax,%eax + 41aa27: 44 88 4c 24 08 mov %r9b,0x8(%rsp) + 41aa2c: e8 8f 6b ff ff callq 4115c0 <__libc_message> + 41aa31: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d + 41aa37: e9 7b ef ff ff jmpq 4199b7 <_int_free+0x1f7> + 41aa3c: 44 89 d7 mov %r10d,%edi + 41aa3f: ba 78 20 4a 00 mov $0x4a2078,%edx + 41aa44: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41aa49: 83 e7 02 and $0x2,%edi + 41aa4c: 31 c0 xor %eax,%eax + 41aa4e: 44 88 4c 24 08 mov %r9b,0x8(%rsp) + 41aa53: e8 68 6b ff ff callq 4115c0 <__libc_message> + 41aa58: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d + 41aa5e: e9 ee ef ff ff jmpq 419a51 <_int_free+0x291> + 41aa63: b9 88 2e 4a 00 mov $0x4a2e88,%ecx + 41aa68: ba 3a 02 00 00 mov $0x23a,%edx + 41aa6d: be a8 1f 4a 00 mov $0x4a1fa8,%esi + 41aa72: bf 58 25 4a 00 mov $0x4a2558,%edi + 41aa77: e8 a4 c3 ff ff callq 416e20 <__malloc_assert> + 41aa7c: b9 88 2e 4a 00 mov $0x4a2e88,%ecx + 41aa81: ba 48 02 00 00 mov $0x248,%edx + 41aa86: be a8 1f 4a 00 mov $0x4a1fa8,%esi + 41aa8b: bf c8 25 4a 00 mov $0x4a25c8,%edi + 41aa90: e8 8b c3 ff ff callq 416e20 <__malloc_assert> + 41aa95: b9 88 2e 4a 00 mov $0x4a2e88,%ecx + 41aa9a: ba 47 02 00 00 mov $0x247,%edx + 41aa9f: be a8 1f 4a 00 mov $0x4a1fa8,%esi + 41aaa4: bf 88 25 4a 00 mov $0x4a2588,%edi + 41aaa9: e8 72 c3 ff ff callq 416e20 <__malloc_assert> + 41aaae: 4d 89 76 28 mov %r14,0x28(%r14) + 41aab2: 4d 89 76 20 mov %r14,0x20(%r14) + 41aab6: e9 25 f1 ff ff jmpq 419be0 <_int_free+0x420> + 41aabb: 8b 3d af fc 2a 00 mov 0x2afcaf(%rip),%edi # 6ca770 + 41aac1: 48 89 da mov %rbx,%rdx + 41aac4: 48 89 e9 mov %rbp,%rcx + 41aac7: be f0 23 4a 00 mov $0x4a23f0,%esi + 41aacc: 44 88 4c 24 10 mov %r9b,0x10(%rsp) + 41aad1: 48 89 44 24 08 mov %rax,0x8(%rsp) + 41aad6: e8 d5 c7 ff ff callq 4172b0 + 41aadb: 48 8b 53 20 mov 0x20(%rbx),%rdx + 41aadf: 44 0f b6 4c 24 10 movzbl 0x10(%rsp),%r9d + 41aae5: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 41aaea: e9 17 ef ff ff jmpq 419a06 <_int_free+0x246> + 41aaef: 44 89 d7 mov %r10d,%edi + 41aaf2: 31 c0 xor %eax,%eax + 41aaf4: ba f0 23 4a 00 mov $0x4a23f0,%edx + 41aaf9: 83 e7 02 and $0x2,%edi + 41aafc: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41ab01: e8 ba 6a ff ff callq 4115c0 <__libc_message> + 41ab06: 49 8b 44 24 20 mov 0x20(%r12),%rax + 41ab0b: e9 c1 f7 ff ff jmpq 41a2d1 <_int_free+0xb11> + 41ab10: 48 39 d3 cmp %rdx,%rbx + 41ab13: 0f 84 f9 00 00 00 je 41ac12 <_int_free+0x1452> + 41ab19: 48 89 50 20 mov %rdx,0x20(%rax) + 41ab1d: 48 8b 53 28 mov 0x28(%rbx),%rdx + 41ab21: 48 89 50 28 mov %rdx,0x28(%rax) + 41ab25: 48 8b 53 20 mov 0x20(%rbx),%rdx + 41ab29: 48 89 42 28 mov %rax,0x28(%rdx) + 41ab2d: 48 8b 53 28 mov 0x28(%rbx),%rdx + 41ab31: 48 89 42 20 mov %rax,0x20(%rdx) + 41ab35: e9 ee ee ff ff jmpq 419a28 <_int_free+0x268> + 41ab3a: 49 39 d0 cmp %rdx,%r8 + 41ab3d: 0f 84 dc 00 00 00 je 41ac1f <_int_free+0x145f> + 41ab43: 48 89 50 20 mov %rdx,0x20(%rax) + 41ab47: 49 8b 50 28 mov 0x28(%r8),%rdx + 41ab4b: 48 89 50 28 mov %rdx,0x28(%rax) + 41ab4f: 49 8b 50 20 mov 0x20(%r8),%rdx + 41ab53: 48 89 42 28 mov %rax,0x28(%rdx) + 41ab57: 49 8b 50 28 mov 0x28(%r8),%rdx + 41ab5b: 48 89 42 20 mov %rax,0x20(%rdx) + 41ab5f: e9 22 ef ff ff jmpq 419a86 <_int_free+0x2c6> + 41ab64: 8b 3d 06 fc 2a 00 mov 0x2afc06(%rip),%edi # 6ca770 + 41ab6a: 4c 89 c2 mov %r8,%rdx + 41ab6d: 48 89 e9 mov %rbp,%rcx + 41ab70: be f0 23 4a 00 mov $0x4a23f0,%esi + 41ab75: 44 88 4c 24 18 mov %r9b,0x18(%rsp) + 41ab7a: 48 89 44 24 10 mov %rax,0x10(%rsp) + 41ab7f: 4c 89 44 24 08 mov %r8,0x8(%rsp) + 41ab84: e8 27 c7 ff ff callq 4172b0 + 41ab89: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 + 41ab8e: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d + 41ab94: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 41ab99: 49 8b 50 20 mov 0x20(%r8),%rdx + 41ab9d: e9 03 f5 ff ff jmpq 41a0a5 <_int_free+0x8e5> + 41aba2: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 41aba9: f7 d8 neg %eax + 41abab: 64 89 02 mov %eax,%fs:(%rdx) + 41abae: e9 0f fe ff ff jmpq 41a9c2 <_int_free+0x1202> + 41abb3: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 41abba: f7 d8 neg %eax + 41abbc: 64 89 02 mov %eax,%fs:(%rdx) + 41abbf: e9 0f fe ff ff jmpq 41a9d3 <_int_free+0x1213> + 41abc4: b9 98 2e 4a 00 mov $0x4a2e98,%ecx + 41abc9: ba fe 0f 00 00 mov $0xffe,%edx + 41abce: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41abd3: bf 2b 21 4a 00 mov $0x4a212b,%edi + 41abd8: e8 43 c2 ff ff callq 416e20 <__malloc_assert> + 41abdd: b9 98 2e 4a 00 mov $0x4a2e98,%ecx + 41abe2: ba f8 0f 00 00 mov $0xff8,%edx + 41abe7: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41abec: bf fc 20 4a 00 mov $0x4a20fc,%edi + 41abf1: e8 2a c2 ff ff callq 416e20 <__malloc_assert> + 41abf6: 48 8d 7e 10 lea 0x10(%rsi),%rdi + 41abfa: 41 bd 98 24 4a 00 mov $0x4a2498,%r13d + 41ac00: 44 8b 25 69 fb 2a 00 mov 0x2afb69(%rip),%r12d # 6ca770 + 41ac07: e9 d8 ec ff ff jmpq 4198e4 <_int_free+0x124> + 41ac0c: 48 8d 7b 10 lea 0x10(%rbx),%rdi + 41ac10: eb ee jmp 41ac00 <_int_free+0x1440> + 41ac12: 48 89 40 28 mov %rax,0x28(%rax) + 41ac16: 48 89 40 20 mov %rax,0x20(%rax) + 41ac1a: e9 09 ee ff ff jmpq 419a28 <_int_free+0x268> + 41ac1f: 48 89 40 28 mov %rax,0x28(%rax) + 41ac23: 48 89 40 20 mov %rax,0x20(%rax) + 41ac27: e9 5a ee ff ff jmpq 419a86 <_int_free+0x2c6> + 41ac2c: 0f 1f 40 00 nopl 0x0(%rax) + +000000000041ac30 : + 41ac30: 41 57 push %r15 + 41ac32: 41 56 push %r14 + 41ac34: 41 55 push %r13 + 41ac36: 41 54 push %r12 + 41ac38: 55 push %rbp + 41ac39: 53 push %rbx + 41ac3a: 48 89 fd mov %rdi,%rbp + 41ac3d: 48 83 ec 58 sub $0x58,%rsp + 41ac41: 48 85 f6 test %rsi,%rsi + 41ac44: 4c 8b 3d 35 05 2b 00 mov 0x2b0535(%rip),%r15 # 6cb180 <_dl_pagesize> + 41ac4b: 0f 84 bf 02 00 00 je 41af10 + 41ac51: 48 39 3d 58 fb 2a 00 cmp %rdi,0x2afb58(%rip) # 6ca7b0 + 41ac58: 48 89 f3 mov %rsi,%rbx + 41ac5b: 0f 86 8f 01 00 00 jbe 41adf0 + 41ac61: c6 44 24 08 00 movb $0x0,0x8(%rsp) + 41ac66: 48 8d 43 58 lea 0x58(%rbx),%rax + 41ac6a: 4d 8d 74 2f 07 lea 0x7(%r15,%rbp,1),%r14 + 41ac6f: 48 89 04 24 mov %rax,(%rsp) + 41ac73: 4c 89 f8 mov %r15,%rax + 41ac76: 48 f7 d8 neg %rax + 41ac79: 49 21 c6 and %rax,%r14 + 41ac7c: 4c 89 74 24 18 mov %r14,0x18(%rsp) + 41ac81: 4c 8b 6b 58 mov 0x58(%rbx),%r13 + 41ac85: 49 8b 45 08 mov 0x8(%r13),%rax + 41ac89: 49 89 c4 mov %rax,%r12 + 41ac8c: 49 83 e4 f8 and $0xfffffffffffffff8,%r12 + 41ac90: 4d 85 e4 test %r12,%r12 + 41ac93: 4f 8d 54 25 00 lea 0x0(%r13,%r12,1),%r10 + 41ac98: 41 0f 95 c3 setne %r11b + 41ac9c: 4c 3b 2c 24 cmp (%rsp),%r13 + 41aca0: 0f 85 1a 01 00 00 jne 41adc0 + 41aca6: 45 84 db test %r11b,%r11b + 41aca9: 0f 85 11 01 00 00 jne 41adc0 + 41acaf: 4c 8d 45 20 lea 0x20(%rbp),%r8 + 41acb3: 4d 39 c4 cmp %r8,%r12 + 41acb6: 0f 83 b7 07 00 00 jae 41b473 + 41acbc: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx + 41acc3: 0f 84 f7 02 00 00 je 41afc0 + 41acc9: 48 89 ea mov %rbp,%rdx + 41accc: 4d 89 ee mov %r13,%r14 + 41accf: 4c 29 e2 sub %r12,%rdx + 41acd2: 49 81 e6 00 00 00 fc and $0xfffffffffc000000,%r14 + 41acd9: 48 83 c2 20 add $0x20,%rdx + 41acdd: 48 85 d2 test %rdx,%rdx + 41ace0: 0f 8e 42 01 00 00 jle 41ae28 + 41ace6: 48 8b 05 93 04 2b 00 mov 0x2b0493(%rip),%rax # 6cb180 <_dl_pagesize> + 41aced: 4d 8b 4e 10 mov 0x10(%r14),%r9 + 41acf1: 48 8d 4c 02 ff lea -0x1(%rdx,%rax,1),%rcx + 41acf6: 48 f7 d8 neg %rax + 41acf9: 48 21 c8 and %rcx,%rax + 41acfc: 4a 8d 0c 08 lea (%rax,%r9,1),%rcx + 41ad00: 48 81 f9 00 00 00 04 cmp $0x4000000,%rcx + 41ad07: 0f 87 1b 01 00 00 ja 41ae28 + 41ad0d: 49 8b 7e 18 mov 0x18(%r14),%rdi + 41ad11: 48 39 f9 cmp %rdi,%rcx + 41ad14: 0f 87 a6 01 00 00 ja 41aec0 + 41ad1a: 4c 89 f0 mov %r14,%rax + 41ad1d: 4c 89 ea mov %r13,%rdx + 41ad20: 4d 89 c6 mov %r8,%r14 + 41ad23: 49 89 c0 mov %rax,%r8 + 41ad26: 49 89 48 10 mov %rcx,0x10(%r8) + 41ad2a: 90 nop + 41ad2b: 48 89 c8 mov %rcx,%rax + 41ad2e: 4c 01 c1 add %r8,%rcx + 41ad31: 4c 29 c8 sub %r9,%rax + 41ad34: 48 01 05 dd 18 2b 00 add %rax,0x2b18dd(%rip) # 6cc618 + 41ad3b: 4c 29 e9 sub %r13,%rcx + 41ad3e: 48 89 c6 mov %rax,%rsi + 41ad41: 48 03 b3 80 08 00 00 add 0x880(%rbx),%rsi + 41ad48: 48 83 c9 01 or $0x1,%rcx + 41ad4c: 48 89 b3 80 08 00 00 mov %rsi,0x880(%rbx) + 41ad53: 49 89 4d 08 mov %rcx,0x8(%r13) + 41ad57: 48 39 b3 88 08 00 00 cmp %rsi,0x888(%rbx) + 41ad5e: 73 07 jae 41ad67 + 41ad60: 48 89 b3 88 08 00 00 mov %rsi,0x888(%rbx) + 41ad67: 48 8b 42 08 mov 0x8(%rdx),%rax + 41ad6b: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 41ad6f: 49 39 c6 cmp %rax,%r14 + 41ad72: 0f 87 58 03 00 00 ja 41b0d0 + 41ad78: 48 29 e8 sub %rbp,%rax + 41ad7b: 31 c9 xor %ecx,%ecx + 41ad7d: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx + 41ad84: 0f 95 c1 setne %cl + 41ad87: 48 8d 34 2a lea (%rdx,%rbp,1),%rsi + 41ad8b: 48 83 cd 01 or $0x1,%rbp + 41ad8f: 48 c1 e1 02 shl $0x2,%rcx + 41ad93: 48 83 c8 01 or $0x1,%rax + 41ad97: 48 83 c2 10 add $0x10,%rdx + 41ad9b: 48 09 e9 or %rbp,%rcx + 41ad9e: 48 89 73 58 mov %rsi,0x58(%rbx) + 41ada2: 48 89 4a f8 mov %rcx,-0x8(%rdx) + 41ada6: 48 89 46 08 mov %rax,0x8(%rsi) + 41adaa: 48 83 c4 58 add $0x58,%rsp + 41adae: 48 89 d0 mov %rdx,%rax + 41adb1: 5b pop %rbx + 41adb2: 5d pop %rbp + 41adb3: 41 5c pop %r12 + 41adb5: 41 5d pop %r13 + 41adb7: 41 5e pop %r14 + 41adb9: 41 5f pop %r15 + 41adbb: c3 retq + 41adbc: 0f 1f 40 00 nopl 0x0(%rax) + 41adc0: 49 83 fc 1f cmp $0x1f,%r12 + 41adc4: 76 11 jbe 41add7 + 41adc6: a8 01 test $0x1,%al + 41adc8: 74 0d je 41add7 + 41adca: 49 8d 47 ff lea -0x1(%r15),%rax + 41adce: 49 85 c2 test %rax,%r10 + 41add1: 0f 84 d8 fe ff ff je 41acaf + 41add7: b9 a8 2e 4a 00 mov $0x4a2ea8,%ecx + 41addc: ba 5a 09 00 00 mov $0x95a,%edx + 41ade1: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41ade6: bf 60 26 4a 00 mov $0x4a2660,%edi + 41adeb: e8 30 c0 ff ff callq 416e20 <__malloc_assert> + 41adf0: 8b 05 d6 f9 2a 00 mov 0x2af9d6(%rip),%eax # 6ca7cc + 41adf6: 39 05 cc f9 2a 00 cmp %eax,0x2af9cc(%rip) # 6ca7c8 + 41adfc: 0f 8d 5f fe ff ff jge 41ac61 + 41ae02: 4d 8d 64 3f 07 lea 0x7(%r15,%rdi,1),%r12 + 41ae07: 4c 89 f8 mov %r15,%rax + 41ae0a: 48 f7 d8 neg %rax + 41ae0d: 49 21 c4 and %rax,%r12 + 41ae10: 4c 39 e7 cmp %r12,%rdi + 41ae13: 0f 82 9e 06 00 00 jb 41b4b7 + 41ae19: c6 44 24 08 01 movb $0x1,0x8(%rsp) + 41ae1e: e9 43 fe ff ff jmpq 41ac66 + 41ae23: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41ae28: 48 8b 35 79 f9 2a 00 mov 0x2af979(%rip),%rsi # 6ca7a8 + 41ae2f: 48 8d 7d 40 lea 0x40(%rbp),%rdi + 41ae33: 4c 89 44 24 10 mov %r8,0x10(%rsp) + 41ae38: e8 43 c0 ff ff callq 416e80 + 41ae3d: 48 85 c0 test %rax,%rax + 41ae40: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 + 41ae45: 0f 84 9d 02 00 00 je 41b0e8 + 41ae4b: 48 8b 48 10 mov 0x10(%rax),%rcx + 41ae4f: 48 8d 50 20 lea 0x20(%rax),%rdx + 41ae53: 48 01 0d be 17 2b 00 add %rcx,0x2b17be(%rip) # 6cc618 + 41ae5a: 49 83 ec 20 sub $0x20,%r12 + 41ae5e: 4c 89 f7 mov %r14,%rdi + 41ae61: 48 89 18 mov %rbx,(%rax) + 41ae64: 49 83 e4 f0 and $0xfffffffffffffff0,%r12 + 41ae68: 48 89 78 08 mov %rdi,0x8(%rax) + 41ae6c: 48 89 53 58 mov %rdx,0x58(%rbx) + 41ae70: 48 89 ce mov %rcx,%rsi + 41ae73: 48 03 b3 80 08 00 00 add 0x880(%rbx),%rsi + 41ae7a: 48 83 e9 20 sub $0x20,%rcx + 41ae7e: 48 83 c9 01 or $0x1,%rcx + 41ae82: 49 83 fc 1f cmp $0x1f,%r12 + 41ae86: 4d 89 c6 mov %r8,%r14 + 41ae89: 48 89 b3 80 08 00 00 mov %rsi,0x880(%rbx) + 41ae90: 48 89 48 28 mov %rcx,0x28(%rax) + 41ae94: 49 8d 44 24 10 lea 0x10(%r12),%rax + 41ae99: 49 8d 4c 05 00 lea 0x0(%r13,%rax,1),%rcx + 41ae9e: 48 c7 41 08 01 00 00 movq $0x1,0x8(%rcx) + 41aea5: 00 + 41aea6: 0f 87 ec 01 00 00 ja 41b098 + 41aeac: 48 89 c7 mov %rax,%rdi + 41aeaf: 48 83 cf 01 or $0x1,%rdi + 41aeb3: 49 89 7d 08 mov %rdi,0x8(%r13) + 41aeb7: 48 89 01 mov %rax,(%rcx) + 41aeba: e9 98 fe ff ff jmpq 41ad57 + 41aebf: 90 nop + 41aec0: 48 89 ce mov %rcx,%rsi + 41aec3: ba 03 00 00 00 mov $0x3,%edx + 41aec8: 4c 89 44 24 10 mov %r8,0x10(%rsp) + 41aecd: 48 29 fe sub %rdi,%rsi + 41aed0: 4c 01 f7 add %r14,%rdi + 41aed3: 4c 89 4c 24 28 mov %r9,0x28(%rsp) + 41aed8: 48 89 4c 24 20 mov %rcx,0x20(%rsp) + 41aedd: e8 ee 4d 02 00 callq 43fcd0 <__mprotect> + 41aee2: 85 c0 test %eax,%eax + 41aee4: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 + 41aee9: 0f 85 39 ff ff ff jne 41ae28 + 41aeef: 48 8b 4c 24 20 mov 0x20(%rsp),%rcx + 41aef4: 4c 89 f0 mov %r14,%rax + 41aef7: 4c 8b 4c 24 28 mov 0x28(%rsp),%r9 + 41aefc: 4d 89 c6 mov %r8,%r14 + 41aeff: 48 8b 53 58 mov 0x58(%rbx),%rdx + 41af03: 49 89 c0 mov %rax,%r8 + 41af06: 48 89 48 18 mov %rcx,0x18(%rax) + 41af0a: e9 17 fe ff ff jmpq 41ad26 + 41af0f: 90 nop + 41af10: 4d 8d 64 3f 07 lea 0x7(%r15,%rdi,1),%r12 + 41af15: 4d 89 fa mov %r15,%r10 + 41af18: 49 f7 da neg %r10 + 41af1b: 4d 21 d4 and %r10,%r12 + 41af1e: 4c 39 e7 cmp %r12,%rdi + 41af21: 0f 83 b7 01 00 00 jae 41b0de + 41af27: 45 31 c9 xor %r9d,%r9d + 41af2a: 31 ff xor %edi,%edi + 41af2c: 41 b8 ff ff ff ff mov $0xffffffff,%r8d + 41af32: b9 22 00 00 00 mov $0x22,%ecx + 41af37: ba 03 00 00 00 mov $0x3,%edx + 41af3c: 4c 89 e6 mov %r12,%rsi + 41af3f: e8 ac 4c 02 00 callq 43fbf0 <__mmap> + 41af44: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 41af48: 0f 84 90 01 00 00 je 41b0de + 41af4e: 48 8d 50 10 lea 0x10(%rax),%rdx + 41af52: f6 c2 0f test $0xf,%dl + 41af55: 0f 85 86 05 00 00 jne 41b4e1 + 41af5b: 4c 89 e1 mov %r12,%rcx + 41af5e: 48 83 c9 02 or $0x2,%rcx + 41af62: 48 89 48 08 mov %rcx,0x8(%rax) + 41af66: b9 01 00 00 00 mov $0x1,%ecx + 41af6b: f0 0f c1 0d 55 f8 2a lock xadd %ecx,0x2af855(%rip) # 6ca7c8 + 41af72: 00 + 41af73: 83 c1 01 add $0x1,%ecx + 41af76: 8b 05 54 f8 2a 00 mov 0x2af854(%rip),%eax # 6ca7d0 + 41af7c: 39 c1 cmp %eax,%ecx + 41af7e: 7e 0a jle 41af8a + 41af80: f0 0f b1 0d 48 f8 2a lock cmpxchg %ecx,0x2af848(%rip) # 6ca7d0 + 41af87: 00 + 41af88: 75 ec jne 41af76 + 41af8a: 4d 89 e2 mov %r12,%r10 + 41af8d: f0 4c 0f c1 15 42 f8 lock xadd %r10,0x2af842(%rip) # 6ca7d8 + 41af94: 2a 00 + 41af96: 4d 01 e2 add %r12,%r10 + 41af99: 48 8b 05 40 f8 2a 00 mov 0x2af840(%rip),%rax # 6ca7e0 + 41afa0: 49 39 c2 cmp %rax,%r10 + 41afa3: 0f 86 01 fe ff ff jbe 41adaa + 41afa9: f0 4c 0f b1 15 2e f8 lock cmpxchg %r10,0x2af82e(%rip) # 6ca7e0 + 41afb0: 2a 00 + 41afb2: 0f 84 f2 fd ff ff je 41adaa + 41afb8: eb df jmp 41af99 + 41afba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41afc0: f6 05 3d f8 2a 00 02 testb $0x2,0x2af83d(%rip) # 6ca804 + 41afc7: 48 8b 05 da f7 2a 00 mov 0x2af7da(%rip),%rax # 6ca7a8 + 41afce: 4d 89 c6 mov %r8,%r14 + 41afd1: 48 8d 54 05 20 lea 0x20(%rbp,%rax,1),%rdx + 41afd6: 0f 84 34 01 00 00 je 41b110 + 41afdc: 49 8d 47 ff lea -0x1(%r15),%rax + 41afe0: 49 f7 df neg %r15 + 41afe3: 4c 89 7c 24 08 mov %r15,0x8(%rsp) + 41afe8: 48 01 c2 add %rax,%rdx + 41afeb: 48 89 04 24 mov %rax,(%rsp) + 41afef: 4c 21 fa and %r15,%rdx + 41aff2: 48 85 d2 test %rdx,%rdx + 41aff5: 49 89 d7 mov %rdx,%r15 + 41aff8: 0f 8e 49 01 00 00 jle 41b147 + 41affe: 48 89 d7 mov %rdx,%rdi + 41b001: 48 89 54 24 10 mov %rdx,0x10(%rsp) + 41b006: 44 88 5c 24 20 mov %r11b,0x20(%rsp) + 41b00b: 4c 89 54 24 18 mov %r10,0x18(%rsp) + 41b010: ff 15 7a 00 2b 00 callq *0x2b007a(%rip) # 6cb090 <__morecore> + 41b016: 48 8b 54 24 10 mov 0x10(%rsp),%rdx + 41b01b: 49 89 c0 mov %rax,%r8 + 41b01e: 90 nop + 41b01f: 48 85 c0 test %rax,%rax + 41b022: 4c 8b 54 24 18 mov 0x18(%rsp),%r10 + 41b027: 44 0f b6 5c 24 20 movzbl 0x20(%rsp),%r11d + 41b02d: 0f 84 72 04 00 00 je 41b4a5 + 41b033: 48 8b 05 a6 15 2b 00 mov 0x2b15a6(%rip),%rax # 6cc5e0 <__after_morecore_hook> + 41b03a: 48 85 c0 test %rax,%rax + 41b03d: 0f 85 3d 03 00 00 jne 41b380 + 41b043: ba 01 00 00 00 mov $0x1,%edx + 41b048: 31 c0 xor %eax,%eax + 41b04a: 48 83 3d 9e f7 2a 00 cmpq $0x0,0x2af79e(%rip) # 6ca7f0 + 41b051: 00 + 41b052: 0f 84 08 03 00 00 je 41b360 + 41b058: 4c 89 fe mov %r15,%rsi + 41b05b: 48 03 35 1e 00 2b 00 add 0x2b001e(%rip),%rsi # 6cb080 + 41b062: 4d 39 c2 cmp %r8,%r10 + 41b065: 48 89 35 14 00 2b 00 mov %rsi,0x2b0014(%rip) # 6cb080 + 41b06c: 0f 85 5e 01 00 00 jne 41b1d0 + 41b072: 84 d2 test %dl,%dl + 41b074: 0f 84 56 01 00 00 je 41b1d0 + 41b07a: 4d 01 fc add %r15,%r12 + 41b07d: 48 8b 15 d4 f7 2a 00 mov 0x2af7d4(%rip),%rdx # 6ca858 + 41b084: 49 83 cc 01 or $0x1,%r12 + 41b088: 4d 89 65 08 mov %r12,0x8(%r13) + 41b08c: e9 c6 fc ff ff jmpq 41ad57 + 41b091: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41b098: 4b c7 44 25 08 11 00 movq $0x11,0x8(%r13,%r12,1) + 41b09f: 00 00 + 41b0a1: 49 83 cc 05 or $0x5,%r12 + 41b0a5: 48 c7 01 10 00 00 00 movq $0x10,(%rcx) + 41b0ac: ba 01 00 00 00 mov $0x1,%edx + 41b0b1: 4c 89 ee mov %r13,%rsi + 41b0b4: 4d 89 65 08 mov %r12,0x8(%r13) + 41b0b8: 48 89 df mov %rbx,%rdi + 41b0bb: e8 00 e7 ff ff callq 4197c0 <_int_free> + 41b0c0: 48 8b b3 80 08 00 00 mov 0x880(%rbx),%rsi + 41b0c7: 48 8b 53 58 mov 0x58(%rbx),%rdx + 41b0cb: e9 87 fc ff ff jmpq 41ad57 + 41b0d0: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41b0d7: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) + 41b0de: 31 d2 xor %edx,%edx + 41b0e0: e9 c5 fc ff ff jmpq 41adaa + 41b0e5: 0f 1f 00 nopl (%rax) + 41b0e8: 80 7c 24 08 00 cmpb $0x0,0x8(%rsp) + 41b0ed: 0f 85 0d 02 00 00 jne 41b300 + 41b0f3: 48 8b 44 24 18 mov 0x18(%rsp),%rax + 41b0f8: 48 39 c5 cmp %rax,%rbp + 41b0fb: 49 89 c4 mov %rax,%r12 + 41b0fe: 0f 82 f6 03 00 00 jb 41b4fa + 41b104: c6 44 24 08 01 movb $0x1,0x8(%rsp) + 41b109: e9 73 fb ff ff jmpq 41ac81 + 41b10e: 66 90 xchg %ax,%ax + 41b110: 49 8d 47 ff lea -0x1(%r15),%rax + 41b114: 4c 29 e2 sub %r12,%rdx + 41b117: 49 f7 df neg %r15 + 41b11a: 4c 89 7c 24 08 mov %r15,0x8(%rsp) + 41b11f: 48 01 c2 add %rax,%rdx + 41b122: 48 89 04 24 mov %rax,(%rsp) + 41b126: 4c 21 fa and %r15,%rdx + 41b129: 48 85 d2 test %rdx,%rdx + 41b12c: 49 89 d7 mov %rdx,%r15 + 41b12f: 0f 8f c9 fe ff ff jg 41affe + 41b135: 48 8b 04 24 mov (%rsp),%rax + 41b139: 4c 01 e0 add %r12,%rax + 41b13c: 48 01 d0 add %rdx,%rax + 41b13f: 48 23 44 24 08 and 0x8(%rsp),%rax + 41b144: 49 89 c7 mov %rax,%r15 + 41b147: 49 81 ff ff ff 0f 00 cmp $0xfffff,%r15 + 41b14e: 4c 89 7c 24 10 mov %r15,0x10(%rsp) + 41b153: 77 0f ja 41b164 + 41b155: 48 c7 44 24 10 00 00 movq $0x100000,0x10(%rsp) + 41b15c: 10 00 + 41b15e: 41 bf 00 00 10 00 mov $0x100000,%r15d + 41b164: 48 3b 6c 24 10 cmp 0x10(%rsp),%rbp + 41b169: 0f 83 7e 01 00 00 jae 41b2ed + 41b16f: 48 8b 74 24 10 mov 0x10(%rsp),%rsi + 41b174: 45 31 c9 xor %r9d,%r9d + 41b177: 41 b8 ff ff ff ff mov $0xffffffff,%r8d + 41b17d: 31 ff xor %edi,%edi + 41b17f: b9 22 00 00 00 mov $0x22,%ecx + 41b184: ba 03 00 00 00 mov $0x3,%edx + 41b189: 44 88 5c 24 20 mov %r11b,0x20(%rsp) + 41b18e: 4c 89 54 24 18 mov %r10,0x18(%rsp) + 41b193: e8 58 4a 02 00 callq 43fbf0 <__mmap> + 41b198: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 41b19c: 49 89 c0 mov %rax,%r8 + 41b19f: 0f 84 48 01 00 00 je 41b2ed + 41b1a5: 83 0d 58 f6 2a 00 02 orl $0x2,0x2af658(%rip) # 6ca804 + 41b1ac: 48 85 c0 test %rax,%rax + 41b1af: 4c 8b 54 24 18 mov 0x18(%rsp),%r10 + 41b1b4: 44 0f b6 5c 24 20 movzbl 0x20(%rsp),%r11d + 41b1ba: 0f 84 2d 01 00 00 je 41b2ed + 41b1c0: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 41b1c5: 4c 01 c0 add %r8,%rax + 41b1c8: 0f 94 c2 sete %dl + 41b1cb: e9 7a fe ff ff jmpq 41b04a + 41b1d0: 8b 15 2e f6 2a 00 mov 0x2af62e(%rip),%edx # 6ca804 + 41b1d6: f6 c2 02 test $0x2,%dl + 41b1d9: 0f 85 39 01 00 00 jne 41b318 + 41b1df: 4d 39 c2 cmp %r8,%r10 + 41b1e2: 76 09 jbe 41b1ed + 41b1e4: 45 84 db test %r11b,%r11b + 41b1e7: 0f 85 b9 01 00 00 jne 41b3a6 + 41b1ed: 4d 85 e4 test %r12,%r12 + 41b1f0: 74 10 je 41b202 + 41b1f2: 4c 89 c0 mov %r8,%rax + 41b1f5: 4c 29 d0 sub %r10,%rax + 41b1f8: 48 01 c6 add %rax,%rsi + 41b1fb: 48 89 35 7e fe 2a 00 mov %rsi,0x2afe7e(%rip) # 6cb080 + 41b202: 4c 89 c2 mov %r8,%rdx + 41b205: 83 e2 0f and $0xf,%edx + 41b208: 0f 84 62 01 00 00 je 41b370 + 41b20e: b8 10 00 00 00 mov $0x10,%eax + 41b213: 48 29 d0 sub %rdx,%rax + 41b216: 49 8d 3c 00 lea (%r8,%rax,1),%rdi + 41b21a: 48 89 7c 24 10 mov %rdi,0x10(%rsp) + 41b21f: 4c 01 e0 add %r12,%rax + 41b222: 48 8b 0c 24 mov (%rsp),%rcx + 41b226: 4c 8b 54 24 08 mov 0x8(%rsp),%r10 + 41b22b: 49 8d 14 07 lea (%r15,%rax,1),%rdx + 41b22f: 4c 01 c2 add %r8,%rdx + 41b232: 48 01 d1 add %rdx,%rcx + 41b235: 48 29 d0 sub %rdx,%rax + 41b238: 49 21 ca and %rcx,%r10 + 41b23b: 49 8d 0c 02 lea (%r10,%rax,1),%rcx + 41b23f: 48 85 c9 test %rcx,%rcx + 41b242: 49 89 cf mov %rcx,%r15 + 41b245: 0f 88 41 02 00 00 js 41b48c + 41b24b: 48 89 cf mov %rcx,%rdi + 41b24e: 48 89 0c 24 mov %rcx,(%rsp) + 41b252: ff 15 38 fe 2a 00 callq *0x2afe38(%rip) # 6cb090 <__morecore> + 41b258: 48 85 c0 test %rax,%rax + 41b25b: 48 8b 0c 24 mov (%rsp),%rcx + 41b25f: 0f 84 01 02 00 00 je 41b466 + 41b265: 48 8b 15 74 13 2b 00 mov 0x2b1374(%rip),%rdx # 6cc5e0 <__after_morecore_hook> + 41b26c: 48 8b 35 0d fe 2a 00 mov 0x2afe0d(%rip),%rsi # 6cb080 + 41b273: 48 85 d2 test %rdx,%rdx + 41b276: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 + 41b27b: 0f 85 bb 01 00 00 jne 41b43c + 41b281: 4c 29 c0 sub %r8,%rax + 41b284: 48 01 ce add %rcx,%rsi + 41b287: 4c 89 05 ca f5 2a 00 mov %r8,0x2af5ca(%rip) # 6ca858 + 41b28e: 49 01 c7 add %rax,%r15 + 41b291: 4c 89 c2 mov %r8,%rdx + 41b294: 49 83 cf 01 or $0x1,%r15 + 41b298: 4d 85 e4 test %r12,%r12 + 41b29b: 4d 89 78 08 mov %r15,0x8(%r8) + 41b29f: 48 89 35 da fd 2a 00 mov %rsi,0x2afdda(%rip) # 6cb080 + 41b2a6: 0f 84 ab fa ff ff je 41ad57 + 41b2ac: 49 83 ec 20 sub $0x20,%r12 + 41b2b0: 49 83 e4 f0 and $0xfffffffffffffff0,%r12 + 41b2b4: 4c 89 e0 mov %r12,%rax + 41b2b7: 48 83 c8 01 or $0x1,%rax + 41b2bb: 49 83 fc 1f cmp $0x1f,%r12 + 41b2bf: 49 89 45 08 mov %rax,0x8(%r13) + 41b2c3: 4b c7 44 25 08 11 00 movq $0x11,0x8(%r13,%r12,1) + 41b2ca: 00 00 + 41b2cc: 4b c7 44 25 18 11 00 movq $0x11,0x18(%r13,%r12,1) + 41b2d3: 00 00 + 41b2d5: 0f 86 7c fa ff ff jbe 41ad57 + 41b2db: ba 01 00 00 00 mov $0x1,%edx + 41b2e0: 4c 89 ee mov %r13,%rsi + 41b2e3: bf 00 a8 6c 00 mov $0x6ca800,%edi + 41b2e8: e8 d3 e4 ff ff callq 4197c0 <_int_free> + 41b2ed: 48 8b 35 8c fd 2a 00 mov 0x2afd8c(%rip),%rsi # 6cb080 + 41b2f4: 48 8b 15 5d f5 2a 00 mov 0x2af55d(%rip),%rdx # 6ca858 + 41b2fb: e9 57 fa ff ff jmpq 41ad57 + 41b300: 4d 89 c6 mov %r8,%r14 + 41b303: 48 8b b3 80 08 00 00 mov 0x880(%rbx),%rsi + 41b30a: 48 8b 53 58 mov 0x58(%rbx),%rdx + 41b30e: e9 44 fa ff ff jmpq 41ad57 + 41b313: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41b318: 4c 89 c1 mov %r8,%rcx + 41b31b: 83 e1 0f and $0xf,%ecx + 41b31e: 0f 85 00 02 00 00 jne 41b524 + 41b324: 45 31 ff xor %r15d,%r15d + 41b327: 48 85 c0 test %rax,%rax + 41b32a: 0f 85 51 ff ff ff jne 41b281 + 41b330: 4c 89 04 24 mov %r8,(%rsp) + 41b334: 31 ff xor %edi,%edi + 41b336: ff 15 54 fd 2a 00 callq *0x2afd54(%rip) # 6cb090 <__morecore> + 41b33c: 4c 8b 04 24 mov (%rsp),%r8 + 41b340: 4c 89 44 24 10 mov %r8,0x10(%rsp) + 41b345: 48 85 c0 test %rax,%rax + 41b348: 48 8b 35 31 fd 2a 00 mov 0x2afd31(%rip),%rsi # 6cb080 + 41b34f: 74 a3 je 41b2f4 + 41b351: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 + 41b356: 31 c9 xor %ecx,%ecx + 41b358: 45 31 ff xor %r15d,%r15d + 41b35b: e9 21 ff ff ff jmpq 41b281 + 41b360: 4c 89 05 89 f4 2a 00 mov %r8,0x2af489(%rip) # 6ca7f0 + 41b367: e9 ec fc ff ff jmpq 41b058 + 41b36c: 0f 1f 40 00 nopl 0x0(%rax) + 41b370: 4c 89 44 24 10 mov %r8,0x10(%rsp) + 41b375: 31 c0 xor %eax,%eax + 41b377: e9 a3 fe ff ff jmpq 41b21f + 41b37c: 0f 1f 40 00 nopl 0x0(%rax) + 41b380: 44 88 5c 24 20 mov %r11b,0x20(%rsp) + 41b385: 4c 89 44 24 18 mov %r8,0x18(%rsp) + 41b38a: 4c 89 54 24 10 mov %r10,0x10(%rsp) + 41b38f: ff d0 callq *%rax + 41b391: 4c 8b 54 24 10 mov 0x10(%rsp),%r10 + 41b396: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 + 41b39b: 44 0f b6 5c 24 20 movzbl 0x20(%rsp),%r11d + 41b3a1: e9 9d fc ff ff jmpq 41b043 + 41b3a6: 83 ca 04 or $0x4,%edx + 41b3a9: 4c 8d 6c 24 30 lea 0x30(%rsp),%r13 + 41b3ae: 48 8d 74 24 40 lea 0x40(%rsp),%rsi + 41b3b3: 89 15 4b f4 2a 00 mov %edx,0x2af44b(%rip) # 6ca804 + 41b3b9: 31 c9 xor %ecx,%ecx + 41b3bb: ba 10 00 00 00 mov $0x10,%edx + 41b3c0: 4c 89 c7 mov %r8,%rdi + 41b3c3: c6 44 24 40 00 movb $0x0,0x40(%rsp) + 41b3c8: e8 e3 6a 03 00 callq 451eb0 <_itoa_word> + 41b3cd: 4c 39 e8 cmp %r13,%rax + 41b3d0: 49 89 c4 mov %rax,%r12 + 41b3d3: 76 25 jbe 41b3fa + 41b3d5: 48 89 c2 mov %rax,%rdx + 41b3d8: 48 89 c7 mov %rax,%rdi + 41b3db: be 30 00 00 00 mov $0x30,%esi + 41b3e0: 4c 29 ea sub %r13,%rdx + 41b3e3: 4c 8d 78 ff lea -0x1(%rax),%r15 + 41b3e7: 48 29 d7 sub %rdx,%rdi + 41b3ea: e8 61 4f fe ff callq 400350 <__rela_iplt_end+0x88> + 41b3ef: 48 8d 44 24 2f lea 0x2f(%rsp),%rax + 41b3f4: 4c 29 f8 sub %r15,%rax + 41b3f7: 49 01 c4 add %rax,%r12 + 41b3fa: 48 8b 05 bf 1e 2b 00 mov 0x2b1ebf(%rip),%rax # 6cd2c0 <__libc_argv> + 41b401: ba 38 20 4a 00 mov $0x4a2038,%edx + 41b406: be a8 23 4a 00 mov $0x4a23a8,%esi + 41b40b: 4d 89 e0 mov %r12,%r8 + 41b40e: b9 48 27 4a 00 mov $0x4a2748,%ecx + 41b413: bf 02 00 00 00 mov $0x2,%edi + 41b418: 48 8b 00 mov (%rax),%rax + 41b41b: 48 85 c0 test %rax,%rax + 41b41e: 48 0f 45 d0 cmovne %rax,%rdx + 41b422: 31 c0 xor %eax,%eax + 41b424: e8 97 61 ff ff callq 4115c0 <__libc_message> + 41b429: 48 8b 35 50 fc 2a 00 mov 0x2afc50(%rip),%rsi # 6cb080 + 41b430: 48 8b 15 21 f4 2a 00 mov 0x2af421(%rip),%rdx # 6ca858 + 41b437: e9 1b f9 ff ff jmpq 41ad57 + 41b43c: 48 89 44 24 10 mov %rax,0x10(%rsp) + 41b441: 4c 89 44 24 08 mov %r8,0x8(%rsp) + 41b446: 48 89 0c 24 mov %rcx,(%rsp) + 41b44a: ff d2 callq *%rdx + 41b44c: 48 8b 35 2d fc 2a 00 mov 0x2afc2d(%rip),%rsi # 6cb080 + 41b453: 48 8b 0c 24 mov (%rsp),%rcx + 41b457: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 + 41b45c: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 41b461: e9 1b fe ff ff jmpq 41b281 + 41b466: 31 ff xor %edi,%edi + 41b468: ff 15 22 fc 2a 00 callq *0x2afc22(%rip) # 6cb090 <__morecore> + 41b46e: e9 d2 fe ff ff jmpq 41b345 + 41b473: b9 a8 2e 4a 00 mov $0x4a2ea8,%ecx + 41b478: ba 5d 09 00 00 mov $0x95d,%edx + 41b47d: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41b482: bf 08 27 4a 00 mov $0x4a2708,%edi + 41b487: e8 94 b9 ff ff callq 416e20 <__malloc_assert> + 41b48c: b9 a8 2e 4a 00 mov $0x4a2ea8,%ecx + 41b491: ba 39 0a 00 00 mov $0xa39,%edx + 41b496: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41b49b: bf 32 21 4a 00 mov $0x4a2132,%edi + 41b4a0: e8 7b b9 ff ff callq 416e20 <__malloc_assert> + 41b4a5: f6 05 58 f3 2a 00 02 testb $0x2,0x2af358(%rip) # 6ca804 + 41b4ac: 0f 84 83 fc ff ff je 41b135 + 41b4b2: e9 90 fc ff ff jmpq 41b147 + 41b4b7: 45 31 c9 xor %r9d,%r9d + 41b4ba: 41 83 c8 ff or $0xffffffff,%r8d + 41b4be: 31 ff xor %edi,%edi + 41b4c0: b9 22 00 00 00 mov $0x22,%ecx + 41b4c5: ba 03 00 00 00 mov $0x3,%edx + 41b4ca: 4c 89 e6 mov %r12,%rsi + 41b4cd: e8 1e 47 02 00 callq 43fbf0 <__mmap> + 41b4d2: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 41b4d6: 0f 85 72 fa ff ff jne 41af4e + 41b4dc: e9 38 f9 ff ff jmpq 41ae19 + 41b4e1: b9 a8 2e 4a 00 mov $0x4a2ea8,%ecx + 41b4e6: ba 24 09 00 00 mov $0x924,%edx + 41b4eb: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41b4f0: bf 20 26 4a 00 mov $0x4a2620,%edi + 41b4f5: e8 26 b9 ff ff callq 416e20 <__malloc_assert> + 41b4fa: 45 31 c9 xor %r9d,%r9d + 41b4fd: 41 83 c8 ff or $0xffffffff,%r8d + 41b501: 31 ff xor %edi,%edi + 41b503: b9 22 00 00 00 mov $0x22,%ecx + 41b508: ba 03 00 00 00 mov $0x3,%edx + 41b50d: 48 89 c6 mov %rax,%rsi + 41b510: e8 db 46 02 00 callq 43fbf0 <__mmap> + 41b515: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 41b519: 0f 85 2f fa ff ff jne 41af4e + 41b51f: e9 e0 fb ff ff jmpq 41b104 + 41b524: b9 a8 2e 4a 00 mov $0x4a2ea8,%ecx + 41b529: ba 59 0a 00 00 mov $0xa59,%edx + 41b52e: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41b533: bf 70 27 4a 00 mov $0x4a2770,%edi + 41b538: e8 e3 b8 ff ff callq 416e20 <__malloc_assert> + 41b53d: 0f 1f 00 nopl (%rax) + +000000000041b540 <_int_malloc>: + 41b540: 48 83 fe bf cmp $0xffffffffffffffbf,%rsi + 41b544: 0f 87 63 08 00 00 ja 41bdad <_int_malloc+0x86d> + 41b54a: 48 89 f0 mov %rsi,%rax + 41b54d: 41 57 push %r15 + 41b54f: 41 56 push %r14 + 41b551: 48 83 c0 17 add $0x17,%rax + 41b555: 41 55 push %r13 + 41b557: 41 54 push %r12 + 41b559: 55 push %rbp + 41b55a: 53 push %rbx + 41b55b: 48 89 c5 mov %rax,%rbp + 41b55e: 48 83 e5 f0 and $0xfffffffffffffff0,%rbp + 41b562: 48 89 fb mov %rdi,%rbx + 41b565: 48 81 ec 98 00 00 00 sub $0x98,%rsp + 41b56c: 48 83 f8 20 cmp $0x20,%rax + 41b570: b8 20 00 00 00 mov $0x20,%eax + 41b575: 48 0f 42 e8 cmovb %rax,%rbp + 41b579: 48 85 ff test %rdi,%rdi + 41b57c: 48 89 74 24 08 mov %rsi,0x8(%rsp) + 41b581: 0f 84 3a 08 00 00 je 41bdc1 <_int_malloc+0x881> + 41b587: 48 3b 2d aa 10 2b 00 cmp 0x2b10aa(%rip),%rbp # 6cc638 + 41b58e: 77 70 ja 41b600 <_int_malloc+0xc0> + 41b590: 89 ef mov %ebp,%edi + 41b592: c1 ef 04 shr $0x4,%edi + 41b595: 8d 47 fe lea -0x2(%rdi),%eax + 41b598: 48 8b 4c c3 08 mov 0x8(%rbx,%rax,8),%rcx + 41b59d: 48 8d 34 c3 lea (%rbx,%rax,8),%rsi + 41b5a1: 48 89 c7 mov %rax,%rdi + 41b5a4: 48 8d 56 08 lea 0x8(%rsi),%rdx + 41b5a8: 48 85 c9 test %rcx,%rcx + 41b5ab: 74 53 je 41b600 <_int_malloc+0xc0> + 41b5ad: 4c 8b 41 10 mov 0x10(%rcx),%r8 + 41b5b1: 48 89 c8 mov %rcx,%rax + 41b5b4: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 + 41b5bb: 00 00 + 41b5bd: 74 01 je 41b5c0 <_int_malloc+0x80> + 41b5bf: f0 4c 0f b1 46 08 lock cmpxchg %r8,0x8(%rsi) + 41b5c5: 48 39 c8 cmp %rcx,%rax + 41b5c8: 49 89 c7 mov %rax,%r15 + 41b5cb: 75 2e jne 41b5fb <_int_malloc+0xbb> + 41b5cd: e9 64 02 00 00 jmpq 41b836 <_int_malloc+0x2f6> + 41b5d2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41b5d8: 49 8b 4f 10 mov 0x10(%r15),%rcx + 41b5dc: 4c 89 f8 mov %r15,%rax + 41b5df: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 + 41b5e6: 00 00 + 41b5e8: 74 01 je 41b5eb <_int_malloc+0xab> + 41b5ea: f0 48 0f b1 0a lock cmpxchg %rcx,(%rdx) + 41b5ef: 4c 39 f8 cmp %r15,%rax + 41b5f2: 0f 84 3e 02 00 00 je 41b836 <_int_malloc+0x2f6> + 41b5f8: 49 89 c7 mov %rax,%r15 + 41b5fb: 4d 85 ff test %r15,%r15 + 41b5fe: 75 d8 jne 41b5d8 <_int_malloc+0x98> + 41b600: 48 81 fd ff 03 00 00 cmp $0x3ff,%rbp + 41b607: 77 5a ja 41b663 <_int_malloc+0x123> + 41b609: 89 e8 mov %ebp,%eax + 41b60b: c1 e8 04 shr $0x4,%eax + 41b60e: 89 04 24 mov %eax,(%rsp) + 41b611: 8d 44 00 fe lea -0x2(%rax,%rax,1),%eax + 41b615: 48 8d 44 c3 60 lea 0x60(%rbx,%rax,8),%rax + 41b61a: 48 8d 48 08 lea 0x8(%rax),%rcx + 41b61e: 4c 8b 79 08 mov 0x8(%rcx),%r15 + 41b622: 48 83 e8 08 sub $0x8,%rax + 41b626: 4c 39 f8 cmp %r15,%rax + 41b629: 74 70 je 41b69b <_int_malloc+0x15b> + 41b62b: 4d 85 ff test %r15,%r15 + 41b62e: 74 63 je 41b693 <_int_malloc+0x153> + 41b630: 49 8b 57 18 mov 0x18(%r15),%rdx + 41b634: 4c 3b 7a 10 cmp 0x10(%rdx),%r15 + 41b638: 0f 85 13 09 00 00 jne 41bf51 <_int_malloc+0xa11> + 41b63e: 49 83 4c 2f 08 01 orq $0x1,0x8(%r15,%rbp,1) + 41b644: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx + 41b64b: 48 89 51 08 mov %rdx,0x8(%rcx) + 41b64f: 48 89 42 10 mov %rax,0x10(%rdx) + 41b653: 0f 84 ef 01 00 00 je 41b848 <_int_malloc+0x308> + 41b659: 49 83 4f 08 04 orq $0x4,0x8(%r15) + 41b65e: e9 e5 01 00 00 jmpq 41b848 <_int_malloc+0x308> + 41b663: 49 89 ec mov %rbp,%r12 + 41b666: 49 c1 ec 06 shr $0x6,%r12 + 41b66a: 49 83 fc 30 cmp $0x30,%r12 + 41b66e: 0f 86 0c 07 00 00 jbe 41bd80 <_int_malloc+0x840> + 41b674: 49 89 ec mov %rbp,%r12 + 41b677: 49 c1 ec 09 shr $0x9,%r12 + 41b67b: 49 83 fc 14 cmp $0x14,%r12 + 41b67f: 0f 87 7b 07 00 00 ja 41be00 <_int_malloc+0x8c0> + 41b685: 41 8d 44 24 5b lea 0x5b(%r12),%eax + 41b68a: 89 04 24 mov %eax,(%rsp) + 41b68d: f6 43 04 01 testb $0x1,0x4(%rbx) + 41b691: 75 08 jne 41b69b <_int_malloc+0x15b> + 41b693: 48 89 df mov %rbx,%rdi + 41b696: e8 95 c7 ff ff callq 417e30 + 41b69b: 48 89 e9 mov %rbp,%rcx + 41b69e: 48 89 e8 mov %rbp,%rax + 41b6a1: 48 89 ef mov %rbp,%rdi + 41b6a4: 48 c1 e9 0c shr $0xc,%rcx + 41b6a8: 48 c1 e8 06 shr $0x6,%rax + 41b6ac: 48 c1 ef 09 shr $0x9,%rdi + 41b6b0: 48 89 4c 24 48 mov %rcx,0x48(%rsp) + 41b6b5: 83 c1 6e add $0x6e,%ecx + 41b6b8: 48 89 44 24 30 mov %rax,0x30(%rsp) + 41b6bd: 89 4c 24 54 mov %ecx,0x54(%rsp) + 41b6c1: 48 89 e9 mov %rbp,%rcx + 41b6c4: 83 c0 30 add $0x30,%eax + 41b6c7: 48 c1 e9 0f shr $0xf,%rcx + 41b6cb: 48 89 7c 24 40 mov %rdi,0x40(%rsp) + 41b6d0: 89 44 24 3c mov %eax,0x3c(%rsp) + 41b6d4: 83 c7 5b add $0x5b,%edi + 41b6d7: 48 89 4c 24 58 mov %rcx,0x58(%rsp) + 41b6dc: 89 e8 mov %ebp,%eax + 41b6de: 83 c1 77 add $0x77,%ecx + 41b6e1: c1 e8 04 shr $0x4,%eax + 41b6e4: 89 7c 24 50 mov %edi,0x50(%rsp) + 41b6e8: 89 4c 24 68 mov %ecx,0x68(%rsp) + 41b6ec: 48 8d 7c 24 70 lea 0x70(%rsp),%rdi + 41b6f1: 48 89 e9 mov %rbp,%rcx + 41b6f4: 48 c1 e9 12 shr $0x12,%rcx + 41b6f8: 89 44 24 38 mov %eax,0x38(%rsp) + 41b6fc: b8 01 00 00 00 mov $0x1,%eax + 41b701: 48 89 4c 24 60 mov %rcx,0x60(%rsp) + 41b706: 48 29 f8 sub %rdi,%rax + 41b709: 83 c1 7c add $0x7c,%ecx + 41b70c: 4c 8d 63 58 lea 0x58(%rbx),%r12 + 41b710: 89 4c 24 6c mov %ecx,0x6c(%rsp) + 41b714: 48 89 44 24 28 mov %rax,0x28(%rsp) + 41b719: 41 bf 10 27 00 00 mov $0x2710,%r15d + 41b71f: eb 4e jmp 41b76f <_int_malloc+0x22f> + 41b721: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41b728: 89 f1 mov %esi,%ecx + 41b72a: c1 e9 04 shr $0x4,%ecx + 41b72d: 8d 44 09 fe lea -0x2(%rcx,%rcx,1),%eax + 41b731: 48 98 cltq + 41b733: 48 8d 44 c3 60 lea 0x60(%rbx,%rax,8),%rax + 41b738: 48 8b 78 08 mov 0x8(%rax),%rdi + 41b73c: 4c 8d 40 f8 lea -0x8(%rax),%r8 + 41b740: 89 c8 mov %ecx,%eax + 41b742: ba 01 00 00 00 mov $0x1,%edx + 41b747: c1 f8 05 sar $0x5,%eax + 41b74a: d3 e2 shl %cl,%edx + 41b74c: 48 98 cltq + 41b74e: 09 94 83 58 08 00 00 or %edx,0x858(%rbx,%rax,4) + 41b755: 41 83 ef 01 sub $0x1,%r15d + 41b759: 4d 89 45 18 mov %r8,0x18(%r13) + 41b75d: 49 89 7d 10 mov %rdi,0x10(%r13) + 41b761: 4c 89 6f 18 mov %r13,0x18(%rdi) + 41b765: 4d 89 68 10 mov %r13,0x10(%r8) + 41b769: 0f 84 94 03 00 00 je 41bb03 <_int_malloc+0x5c3> + 41b76f: 4c 8b 6b 70 mov 0x70(%rbx),%r13 + 41b773: 4d 39 e5 cmp %r12,%r13 + 41b776: 0f 84 87 03 00 00 je 41bb03 <_int_malloc+0x5c3> + 41b77c: 49 8b 75 08 mov 0x8(%r13),%rsi + 41b780: 4d 8b 75 18 mov 0x18(%r13),%r14 + 41b784: 48 83 fe 10 cmp $0x10,%rsi + 41b788: 0f 86 52 01 00 00 jbe 41b8e0 <_int_malloc+0x3a0> + 41b78e: 48 3b b3 80 08 00 00 cmp 0x880(%rbx),%rsi + 41b795: 0f 87 45 01 00 00 ja 41b8e0 <_int_malloc+0x3a0> + 41b79b: 48 83 e6 f8 and $0xfffffffffffffff8,%rsi + 41b79f: 48 81 fd ff 03 00 00 cmp $0x3ff,%rbp + 41b7a6: 77 09 ja 41b7b1 <_int_malloc+0x271> + 41b7a8: 4d 39 e6 cmp %r12,%r14 + 41b7ab: 0f 84 8f 01 00 00 je 41b940 <_int_malloc+0x400> + 41b7b1: 48 39 f5 cmp %rsi,%rbp + 41b7b4: 4c 89 73 70 mov %r14,0x70(%rbx) + 41b7b8: 4d 89 66 10 mov %r12,0x10(%r14) + 41b7bc: 0f 84 a6 04 00 00 je 41bc68 <_int_malloc+0x728> + 41b7c2: 48 81 fe ff 03 00 00 cmp $0x3ff,%rsi + 41b7c9: 0f 86 59 ff ff ff jbe 41b728 <_int_malloc+0x1e8> + 41b7cf: 48 89 f0 mov %rsi,%rax + 41b7d2: 48 c1 e8 06 shr $0x6,%rax + 41b7d6: 48 83 f8 30 cmp $0x30,%rax + 41b7da: 0f 87 90 00 00 00 ja 41b870 <_int_malloc+0x330> + 41b7e0: 8d 48 30 lea 0x30(%rax),%ecx + 41b7e3: 8d 44 00 5e lea 0x5e(%rax,%rax,1),%eax + 41b7e7: 48 98 cltq + 41b7e9: 48 8d 44 c3 60 lea 0x60(%rbx,%rax,8),%rax + 41b7ee: 48 8d 78 f8 lea -0x8(%rax),%rdi + 41b7f2: 48 8d 50 08 lea 0x8(%rax),%rdx + 41b7f6: 48 8b 40 08 mov 0x8(%rax),%rax + 41b7fa: 48 39 c7 cmp %rax,%rdi + 41b7fd: 0f 84 e5 01 00 00 je 41b9e8 <_int_malloc+0x4a8> + 41b803: 4c 8b 42 08 mov 0x8(%rdx),%r8 + 41b807: 48 83 ce 01 or $0x1,%rsi + 41b80b: 49 8b 50 08 mov 0x8(%r8),%rdx + 41b80f: f6 c2 04 test $0x4,%dl + 41b812: 0f 85 f1 09 00 00 jne 41c209 <_int_malloc+0xcc9> + 41b818: 48 39 d6 cmp %rdx,%rsi + 41b81b: 73 73 jae 41b890 <_int_malloc+0x350> + 41b81d: 48 8b 50 28 mov 0x28(%rax),%rdx + 41b821: 49 89 45 20 mov %rax,0x20(%r13) + 41b825: 49 89 55 28 mov %rdx,0x28(%r13) + 41b829: 4c 89 6a 20 mov %r13,0x20(%rdx) + 41b82d: 4c 89 68 28 mov %r13,0x28(%rax) + 41b831: e9 0a ff ff ff jmpq 41b740 <_int_malloc+0x200> + 41b836: 41 8b 47 08 mov 0x8(%r15),%eax + 41b83a: c1 e8 04 shr $0x4,%eax + 41b83d: 83 e8 02 sub $0x2,%eax + 41b840: 39 c7 cmp %eax,%edi + 41b842: 0f 85 26 06 00 00 jne 41be6e <_int_malloc+0x92e> + 41b848: 8b 05 e6 0d 2b 00 mov 0x2b0de6(%rip),%eax # 6cc634 + 41b84e: 49 8d 4f 10 lea 0x10(%r15),%rcx + 41b852: 85 c0 test %eax,%eax + 41b854: 0f 85 71 01 00 00 jne 41b9cb <_int_malloc+0x48b> + 41b85a: 48 81 c4 98 00 00 00 add $0x98,%rsp + 41b861: 48 89 c8 mov %rcx,%rax + 41b864: 5b pop %rbx + 41b865: 5d pop %rbp + 41b866: 41 5c pop %r12 + 41b868: 41 5d pop %r13 + 41b86a: 41 5e pop %r14 + 41b86c: 41 5f pop %r15 + 41b86e: c3 retq + 41b86f: 90 nop + 41b870: 48 89 f0 mov %rsi,%rax + 41b873: 48 c1 e8 09 shr $0x9,%rax + 41b877: 48 83 f8 14 cmp $0x14,%rax + 41b87b: 0f 87 97 00 00 00 ja 41b918 <_int_malloc+0x3d8> + 41b881: 8d 48 5b lea 0x5b(%rax),%ecx + 41b884: 8d 84 00 b4 00 00 00 lea 0xb4(%rax,%rax,1),%eax + 41b88b: e9 57 ff ff ff jmpq 41b7e7 <_int_malloc+0x2a7> + 41b890: 48 8b 50 08 mov 0x8(%rax),%rdx + 41b894: f6 c2 04 test $0x4,%dl + 41b897: 74 18 je 41b8b1 <_int_malloc+0x371> + 41b899: e9 84 09 00 00 jmpq 41c222 <_int_malloc+0xce2> + 41b89e: 66 90 xchg %ax,%ax + 41b8a0: 48 8b 40 20 mov 0x20(%rax),%rax + 41b8a4: 48 8b 50 08 mov 0x8(%rax),%rdx + 41b8a8: f6 c2 04 test $0x4,%dl + 41b8ab: 0f 85 87 06 00 00 jne 41bf38 <_int_malloc+0x9f8> + 41b8b1: 48 39 d6 cmp %rdx,%rsi + 41b8b4: 72 ea jb 41b8a0 <_int_malloc+0x360> + 41b8b6: 0f 84 64 01 00 00 je 41ba20 <_int_malloc+0x4e0> + 41b8bc: 48 8b 50 28 mov 0x28(%rax),%rdx + 41b8c0: 49 89 45 20 mov %rax,0x20(%r13) + 41b8c4: 48 89 c7 mov %rax,%rdi + 41b8c7: 49 89 55 28 mov %rdx,0x28(%r13) + 41b8cb: 4c 89 68 28 mov %r13,0x28(%rax) + 41b8cf: 49 8b 55 28 mov 0x28(%r13),%rdx + 41b8d3: 4c 89 6a 20 mov %r13,0x20(%rdx) + 41b8d7: 4c 8b 47 18 mov 0x18(%rdi),%r8 + 41b8db: e9 60 fe ff ff jmpq 41b740 <_int_malloc+0x200> + 41b8e0: 44 8b 0d 89 ee 2a 00 mov 0x2aee89(%rip),%r9d # 6ca770 + 41b8e7: 83 4b 04 04 orl $0x4,0x4(%rbx) + 41b8eb: 44 89 c8 mov %r9d,%eax + 41b8ee: 83 e0 05 and $0x5,%eax + 41b8f1: 83 f8 05 cmp $0x5,%eax + 41b8f4: 0f 84 93 04 00 00 je 41bd8d <_int_malloc+0x84d> + 41b8fa: 41 f6 c1 01 test $0x1,%r9b + 41b8fe: 0f 85 2c 01 00 00 jne 41ba30 <_int_malloc+0x4f0> + 41b904: 41 83 e1 02 and $0x2,%r9d + 41b908: 0f 84 8d fe ff ff je 41b79b <_int_malloc+0x25b> + 41b90e: e9 84 05 00 00 jmpq 41be97 <_int_malloc+0x957> + 41b913: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41b918: 48 89 f0 mov %rsi,%rax + 41b91b: 48 c1 e8 0c shr $0xc,%rax + 41b91f: 48 83 f8 0a cmp $0xa,%rax + 41b923: 0f 87 d7 00 00 00 ja 41ba00 <_int_malloc+0x4c0> + 41b929: 8d 48 6e lea 0x6e(%rax),%ecx + 41b92c: 8d 84 00 da 00 00 00 lea 0xda(%rax,%rax,1),%eax + 41b933: e9 af fe ff ff jmpq 41b7e7 <_int_malloc+0x2a7> + 41b938: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41b93f: 00 + 41b940: 4c 3b 6b 60 cmp 0x60(%rbx),%r13 + 41b944: 0f 85 67 fe ff ff jne 41b7b1 <_int_malloc+0x271> + 41b94a: 48 8d 45 20 lea 0x20(%rbp),%rax + 41b94e: 48 39 c6 cmp %rax,%rsi + 41b951: 0f 86 5a fe ff ff jbe 41b7b1 <_int_malloc+0x271> + 41b957: 48 89 f2 mov %rsi,%rdx + 41b95a: 49 8d 44 2d 00 lea 0x0(%r13,%rbp,1),%rax + 41b95f: 48 29 ea sub %rbp,%rdx + 41b962: 48 81 fa ff 03 00 00 cmp $0x3ff,%rdx + 41b969: 48 89 43 68 mov %rax,0x68(%rbx) + 41b96d: 48 89 43 70 mov %rax,0x70(%rbx) + 41b971: 48 89 43 60 mov %rax,0x60(%rbx) + 41b975: 4c 89 60 10 mov %r12,0x10(%rax) + 41b979: 4c 89 60 18 mov %r12,0x18(%rax) + 41b97d: 76 10 jbe 41b98f <_int_malloc+0x44f> + 41b97f: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) + 41b986: 00 + 41b987: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) + 41b98e: 00 + 41b98f: 31 c9 xor %ecx,%ecx + 41b991: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx + 41b998: 0f 95 c1 setne %cl + 41b99b: 48 83 cd 01 or $0x1,%rbp + 41b99f: 48 c1 e1 02 shl $0x2,%rcx + 41b9a3: 48 09 e9 or %rbp,%rcx + 41b9a6: 49 89 4d 08 mov %rcx,0x8(%r13) + 41b9aa: 48 89 d1 mov %rdx,%rcx + 41b9ad: 48 83 c9 01 or $0x1,%rcx + 41b9b1: 48 89 48 08 mov %rcx,0x8(%rax) + 41b9b5: 48 89 14 10 mov %rdx,(%rax,%rdx,1) + 41b9b9: 49 8d 4d 10 lea 0x10(%r13),%rcx + 41b9bd: 8b 05 71 0c 2b 00 mov 0x2b0c71(%rip),%eax # 6cc634 + 41b9c3: 85 c0 test %eax,%eax + 41b9c5: 0f 84 8f fe ff ff je 41b85a <_int_malloc+0x31a> + 41b9cb: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 41b9d0: 34 ff xor $0xff,%al + 41b9d2: 48 89 cf mov %rcx,%rdi + 41b9d5: 89 c6 mov %eax,%esi + 41b9d7: e8 74 49 fe ff callq 400350 <__rela_iplt_end+0x88> + 41b9dc: 48 89 c1 mov %rax,%rcx + 41b9df: e9 76 fe ff ff jmpq 41b85a <_int_malloc+0x31a> + 41b9e4: 0f 1f 40 00 nopl 0x0(%rax) + 41b9e8: 4d 89 6d 28 mov %r13,0x28(%r13) + 41b9ec: 4d 89 6d 20 mov %r13,0x20(%r13) + 41b9f0: 49 89 f8 mov %rdi,%r8 + 41b9f3: e9 48 fd ff ff jmpq 41b740 <_int_malloc+0x200> + 41b9f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41b9ff: 00 + 41ba00: 48 89 f0 mov %rsi,%rax + 41ba03: 48 c1 e8 0f shr $0xf,%rax + 41ba07: 48 83 f8 04 cmp $0x4,%rax + 41ba0b: 0f 87 d2 00 00 00 ja 41bae3 <_int_malloc+0x5a3> + 41ba11: 8d 48 77 lea 0x77(%rax),%ecx + 41ba14: 8d 84 00 ec 00 00 00 lea 0xec(%rax,%rax,1),%eax + 41ba1b: e9 c7 fd ff ff jmpq 41b7e7 <_int_malloc+0x2a7> + 41ba20: 48 8b 78 10 mov 0x10(%rax),%rdi + 41ba24: e9 ae fe ff ff jmpq 41b8d7 <_int_malloc+0x397> + 41ba29: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41ba30: 48 8d b4 24 80 00 00 lea 0x80(%rsp),%rsi + 41ba37: 00 + 41ba38: 49 8d 7d 10 lea 0x10(%r13),%rdi + 41ba3c: 31 c9 xor %ecx,%ecx + 41ba3e: ba 10 00 00 00 mov $0x10,%edx + 41ba43: 44 89 4c 24 10 mov %r9d,0x10(%rsp) + 41ba48: c6 84 24 80 00 00 00 movb $0x0,0x80(%rsp) + 41ba4f: 00 + 41ba50: e8 5b 64 03 00 callq 451eb0 <_itoa_word> + 41ba55: 49 89 c0 mov %rax,%r8 + 41ba58: 48 8d 44 24 70 lea 0x70(%rsp),%rax + 41ba5d: 44 8b 4c 24 10 mov 0x10(%rsp),%r9d + 41ba62: 49 39 c0 cmp %rax,%r8 + 41ba65: 76 46 jbe 41baad <_int_malloc+0x56d> + 41ba67: 48 8b 44 24 28 mov 0x28(%rsp),%rax + 41ba6c: 49 8d 48 ff lea -0x1(%r8),%rcx + 41ba70: 4c 89 c7 mov %r8,%rdi + 41ba73: be 30 00 00 00 mov $0x30,%esi + 41ba78: 44 89 4c 24 24 mov %r9d,0x24(%rsp) + 41ba7d: 4c 89 44 24 10 mov %r8,0x10(%rsp) + 41ba82: 48 89 4c 24 18 mov %rcx,0x18(%rsp) + 41ba87: 48 8d 14 08 lea (%rax,%rcx,1),%rdx + 41ba8b: 48 29 d7 sub %rdx,%rdi + 41ba8e: e8 bd 48 fe ff callq 400350 <__rela_iplt_end+0x88> + 41ba93: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx + 41ba98: 48 8d 44 24 6f lea 0x6f(%rsp),%rax + 41ba9d: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 + 41baa2: 44 8b 4c 24 24 mov 0x24(%rsp),%r9d + 41baa7: 48 29 c8 sub %rcx,%rax + 41baaa: 49 01 c0 add %rax,%r8 + 41baad: 48 8b 05 0c 18 2b 00 mov 0x2b180c(%rip),%rax # 6cd2c0 <__libc_argv> + 41bab4: 44 89 cf mov %r9d,%edi + 41bab7: ba 38 20 4a 00 mov $0x4a2038,%edx + 41babc: be a8 23 4a 00 mov $0x4a23a8,%esi + 41bac1: b9 42 21 4a 00 mov $0x4a2142,%ecx + 41bac6: 48 8b 00 mov (%rax),%rax + 41bac9: 48 85 c0 test %rax,%rax + 41bacc: 48 0f 45 d0 cmovne %rax,%rdx + 41bad0: 83 e7 02 and $0x2,%edi + 41bad3: 31 c0 xor %eax,%eax + 41bad5: e8 e6 5a ff ff callq 4115c0 <__libc_message> + 41bada: 49 8b 75 08 mov 0x8(%r13),%rsi + 41bade: e9 b8 fc ff ff jmpq 41b79b <_int_malloc+0x25b> + 41bae3: 48 89 f0 mov %rsi,%rax + 41bae6: 48 c1 e8 12 shr $0x12,%rax + 41baea: 48 83 f8 02 cmp $0x2,%rax + 41baee: 0f 87 9f 01 00 00 ja 41bc93 <_int_malloc+0x753> + 41baf4: 8d 48 7c lea 0x7c(%rax),%ecx + 41baf7: 8d 84 00 f6 00 00 00 lea 0xf6(%rax,%rax,1),%eax + 41bafe: e9 e4 fc ff ff jmpq 41b7e7 <_int_malloc+0x2a7> + 41bb03: 48 81 fd ff 03 00 00 cmp $0x3ff,%rbp + 41bb0a: 0f 87 92 01 00 00 ja 41bca2 <_int_malloc+0x762> + 41bb10: 8b 04 24 mov (%rsp),%eax + 41bb13: 8d 48 01 lea 0x1(%rax),%ecx + 41bb16: 01 c0 add %eax,%eax + 41bb18: 48 8d 54 c3 58 lea 0x58(%rbx,%rax,8),%rdx + 41bb1d: 89 cf mov %ecx,%edi + 41bb1f: c1 ef 05 shr $0x5,%edi + 41bb22: 89 f8 mov %edi,%eax + 41bb24: 8b b4 83 58 08 00 00 mov 0x858(%rbx,%rax,4),%esi + 41bb2b: b8 01 00 00 00 mov $0x1,%eax + 41bb30: d3 e0 shl %cl,%eax + 41bb32: 39 f0 cmp %esi,%eax + 41bb34: 77 40 ja 41bb76 <_int_malloc+0x636> + 41bb36: 85 c0 test %eax,%eax + 41bb38: 75 12 jne 41bb4c <_int_malloc+0x60c> + 41bb3a: eb 3a jmp 41bb76 <_int_malloc+0x636> + 41bb3c: 0f 1f 40 00 nopl 0x0(%rax) + 41bb40: 48 83 c2 10 add $0x10,%rdx + 41bb44: 01 c0 add %eax,%eax + 41bb46: 0f 84 dc 05 00 00 je 41c128 <_int_malloc+0xbe8> + 41bb4c: 85 f0 test %esi,%eax + 41bb4e: 74 f0 je 41bb40 <_int_malloc+0x600> + 41bb50: 4c 8b 7a 18 mov 0x18(%rdx),%r15 + 41bb54: 4c 39 fa cmp %r15,%rdx + 41bb57: 0f 85 4f 03 00 00 jne 41beac <_int_malloc+0x96c> + 41bb5d: 89 c1 mov %eax,%ecx + 41bb5f: 01 c0 add %eax,%eax + 41bb61: 48 83 c2 10 add $0x10,%rdx + 41bb65: f7 d1 not %ecx + 41bb67: 21 ce and %ecx,%esi + 41bb69: 89 f9 mov %edi,%ecx + 41bb6b: 39 f0 cmp %esi,%eax + 41bb6d: 89 b4 8b 58 08 00 00 mov %esi,0x858(%rbx,%rcx,4) + 41bb74: 76 c0 jbe 41bb36 <_int_malloc+0x5f6> + 41bb76: 8d 47 01 lea 0x1(%rdi),%eax + 41bb79: 83 f8 03 cmp $0x3,%eax + 41bb7c: 77 3d ja 41bbbb <_int_malloc+0x67b> + 41bb7e: 89 c2 mov %eax,%edx + 41bb80: 8b b4 93 58 08 00 00 mov 0x858(%rbx,%rdx,4),%esi + 41bb87: 85 f6 test %esi,%esi + 41bb89: 0f 85 9c 02 00 00 jne 41be2b <_int_malloc+0x8eb> + 41bb8f: 8d 47 02 lea 0x2(%rdi),%eax + 41bb92: 83 f8 04 cmp $0x4,%eax + 41bb95: 74 24 je 41bbbb <_int_malloc+0x67b> + 41bb97: 89 c2 mov %eax,%edx + 41bb99: 8b b4 93 58 08 00 00 mov 0x858(%rbx,%rdx,4),%esi + 41bba0: 85 f6 test %esi,%esi + 41bba2: 0f 85 83 02 00 00 jne 41be2b <_int_malloc+0x8eb> + 41bba8: 83 ff 01 cmp $0x1,%edi + 41bbab: 74 0e je 41bbbb <_int_malloc+0x67b> + 41bbad: 8b b3 64 08 00 00 mov 0x864(%rbx),%esi + 41bbb3: 85 f6 test %esi,%esi + 41bbb5: 0f 85 e5 02 00 00 jne 41bea0 <_int_malloc+0x960> + 41bbbb: 48 8b 53 58 mov 0x58(%rbx),%rdx + 41bbbf: 48 8d 4d 20 lea 0x20(%rbp),%rcx + 41bbc3: 48 8b 42 08 mov 0x8(%rdx),%rax + 41bbc7: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 41bbcb: 48 39 c8 cmp %rcx,%rax + 41bbce: 0f 83 0c 05 00 00 jae 41c0e0 <_int_malloc+0xba0> + 41bbd4: f6 43 04 01 testb $0x1,0x4(%rbx) + 41bbd8: 0f 85 e2 04 00 00 jne 41c0c0 <_int_malloc+0xb80> + 41bbde: 48 89 df mov %rbx,%rdi + 41bbe1: e8 4a c2 ff ff callq 417e30 + 41bbe6: 8b 44 24 38 mov 0x38(%rsp),%eax + 41bbea: 48 81 fd ff 03 00 00 cmp $0x3ff,%rbp + 41bbf1: 89 04 24 mov %eax,(%rsp) + 41bbf4: 0f 86 1f fb ff ff jbe 41b719 <_int_malloc+0x1d9> + 41bbfa: 48 83 7c 24 30 30 cmpq $0x30,0x30(%rsp) + 41bc00: 8b 44 24 3c mov 0x3c(%rsp),%eax + 41bc04: 89 04 24 mov %eax,(%rsp) + 41bc07: 0f 86 0c fb ff ff jbe 41b719 <_int_malloc+0x1d9> + 41bc0d: 48 83 7c 24 40 14 cmpq $0x14,0x40(%rsp) + 41bc13: 8b 44 24 50 mov 0x50(%rsp),%eax + 41bc17: 89 04 24 mov %eax,(%rsp) + 41bc1a: 0f 86 f9 fa ff ff jbe 41b719 <_int_malloc+0x1d9> + 41bc20: 48 83 7c 24 48 0a cmpq $0xa,0x48(%rsp) + 41bc26: 8b 44 24 54 mov 0x54(%rsp),%eax + 41bc2a: 89 04 24 mov %eax,(%rsp) + 41bc2d: 0f 86 e6 fa ff ff jbe 41b719 <_int_malloc+0x1d9> + 41bc33: 48 83 7c 24 58 04 cmpq $0x4,0x58(%rsp) + 41bc39: 8b 44 24 68 mov 0x68(%rsp),%eax + 41bc3d: 89 04 24 mov %eax,(%rsp) + 41bc40: 0f 86 d3 fa ff ff jbe 41b719 <_int_malloc+0x1d9> + 41bc46: 48 83 7c 24 60 02 cmpq $0x2,0x60(%rsp) + 41bc4c: 41 be 7e 00 00 00 mov $0x7e,%r14d + 41bc52: 44 0f 46 74 24 6c cmovbe 0x6c(%rsp),%r14d + 41bc58: 44 89 34 24 mov %r14d,(%rsp) + 41bc5c: e9 b8 fa ff ff jmpq 41b719 <_int_malloc+0x1d9> + 41bc61: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41bc68: 49 83 4c 2d 08 01 orq $0x1,0x8(%r13,%rbp,1) + 41bc6e: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx + 41bc75: 74 05 je 41bc7c <_int_malloc+0x73c> + 41bc77: 49 83 4d 08 04 orq $0x4,0x8(%r13) + 41bc7c: 8b 05 b2 09 2b 00 mov 0x2b09b2(%rip),%eax # 6cc634 + 41bc82: 49 8d 4d 10 lea 0x10(%r13),%rcx + 41bc86: 85 c0 test %eax,%eax + 41bc88: 0f 84 cc fb ff ff je 41b85a <_int_malloc+0x31a> + 41bc8e: e9 38 fd ff ff jmpq 41b9cb <_int_malloc+0x48b> + 41bc93: b8 fa 00 00 00 mov $0xfa,%eax + 41bc98: b9 7e 00 00 00 mov $0x7e,%ecx + 41bc9d: e9 45 fb ff ff jmpq 41b7e7 <_int_malloc+0x2a7> + 41bca2: 8b 04 24 mov (%rsp),%eax + 41bca5: 8d 44 00 fe lea -0x2(%rax,%rax,1),%eax + 41bca9: 48 8d 44 c3 60 lea 0x60(%rbx,%rax,8),%rax + 41bcae: 48 8b 50 08 mov 0x8(%rax),%rdx + 41bcb2: 48 8d 48 08 lea 0x8(%rax),%rcx + 41bcb6: 48 83 e8 08 sub $0x8,%rax + 41bcba: 48 39 c2 cmp %rax,%rdx + 41bcbd: 0f 84 4d fe ff ff je 41bb10 <_int_malloc+0x5d0> + 41bcc3: 48 3b 6a 08 cmp 0x8(%rdx),%rbp + 41bcc7: 0f 87 43 fe ff ff ja 41bb10 <_int_malloc+0x5d0> + 41bccd: 4c 8b 7a 28 mov 0x28(%rdx),%r15 + 41bcd1: eb 04 jmp 41bcd7 <_int_malloc+0x797> + 41bcd3: 4d 8b 7f 28 mov 0x28(%r15),%r15 + 41bcd7: 49 8b 57 08 mov 0x8(%r15),%rdx + 41bcdb: 49 89 d6 mov %rdx,%r14 + 41bcde: 49 83 e6 f8 and $0xfffffffffffffff8,%r14 + 41bce2: 4c 39 f5 cmp %r14,%rbp + 41bce5: 77 ec ja 41bcd3 <_int_malloc+0x793> + 41bce7: 4c 3b 79 08 cmp 0x8(%rcx),%r15 + 41bceb: 0f 84 da 04 00 00 je 41c1cb <_int_malloc+0xc8b> + 41bcf1: 49 8b 4f 10 mov 0x10(%r15),%rcx + 41bcf5: 4c 89 f0 mov %r14,%rax + 41bcf8: 48 3b 51 08 cmp 0x8(%rcx),%rdx + 41bcfc: 75 0a jne 41bd08 <_int_malloc+0x7c8> + 41bcfe: 48 89 d0 mov %rdx,%rax + 41bd01: 49 89 cf mov %rcx,%r15 + 41bd04: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 41bd08: 4c 89 f7 mov %r14,%rdi + 41bd0b: 48 29 ef sub %rbp,%rdi + 41bd0e: 49 39 04 07 cmp %rax,(%r15,%rax,1) + 41bd12: 48 89 3c 24 mov %rdi,(%rsp) + 41bd16: 0f 85 26 06 00 00 jne 41c342 <_int_malloc+0xe02> + 41bd1c: 4d 8b 6f 10 mov 0x10(%r15),%r13 + 41bd20: 49 8b 47 18 mov 0x18(%r15),%rax + 41bd24: 4d 3b 7d 18 cmp 0x18(%r13),%r15 + 41bd28: 0f 85 c0 04 00 00 jne 41c1ee <_int_malloc+0xcae> + 41bd2e: 4c 3b 78 10 cmp 0x10(%rax),%r15 + 41bd32: 0f 85 b6 04 00 00 jne 41c1ee <_int_malloc+0xcae> + 41bd38: 49 81 7f 08 ff 03 00 cmpq $0x3ff,0x8(%r15) + 41bd3f: 00 + 41bd40: 49 89 45 18 mov %rax,0x18(%r13) + 41bd44: 4c 89 68 10 mov %r13,0x10(%rax) + 41bd48: 76 0d jbe 41bd57 <_int_malloc+0x817> + 41bd4a: 49 8b 47 20 mov 0x20(%r15),%rax + 41bd4e: 48 85 c0 test %rax,%rax + 41bd51: 0f 85 06 06 00 00 jne 41c35d <_int_malloc+0xe1d> + 41bd57: 48 83 3c 24 1f cmpq $0x1f,(%rsp) + 41bd5c: 0f 87 38 04 00 00 ja 41c19a <_int_malloc+0xc5a> + 41bd62: 4b 83 4c 37 08 01 orq $0x1,0x8(%r15,%r14,1) + 41bd68: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx + 41bd6f: 0f 85 e4 f8 ff ff jne 41b659 <_int_malloc+0x119> + 41bd75: e9 ce fa ff ff jmpq 41b848 <_int_malloc+0x308> + 41bd7a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41bd80: 41 8d 44 24 30 lea 0x30(%r12),%eax + 41bd85: 89 04 24 mov %eax,(%rsp) + 41bd88: e9 00 f9 ff ff jmpq 41b68d <_int_malloc+0x14d> + 41bd8d: 44 89 cf mov %r9d,%edi + 41bd90: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41bd95: ba 42 21 4a 00 mov $0x4a2142,%edx + 41bd9a: 83 e7 02 and $0x2,%edi + 41bd9d: 31 c0 xor %eax,%eax + 41bd9f: e8 1c 58 ff ff callq 4115c0 <__libc_message> + 41bda4: 49 8b 75 08 mov 0x8(%r13),%rsi + 41bda8: e9 ee f9 ff ff jmpq 41b79b <_int_malloc+0x25b> + 41bdad: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41bdb4: 31 c9 xor %ecx,%ecx + 41bdb6: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) + 41bdbd: 48 89 c8 mov %rcx,%rax + 41bdc0: c3 retq + 41bdc1: 31 f6 xor %esi,%esi + 41bdc3: 48 89 ef mov %rbp,%rdi + 41bdc6: e8 65 ee ff ff callq 41ac30 + 41bdcb: 48 85 c0 test %rax,%rax + 41bdce: 0f 84 86 00 00 00 je 41be5a <_int_malloc+0x91a> + 41bdd4: 8b 15 5a 08 2b 00 mov 0x2b085a(%rip),%edx # 6cc634 + 41bdda: 48 89 c1 mov %rax,%rcx + 41bddd: 85 d2 test %edx,%edx + 41bddf: 0f 84 75 fa ff ff je 41b85a <_int_malloc+0x31a> + 41bde5: 89 d6 mov %edx,%esi + 41bde7: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 41bdec: 48 89 c7 mov %rax,%rdi + 41bdef: 40 80 f6 ff xor $0xff,%sil + 41bdf3: e8 58 45 fe ff callq 400350 <__rela_iplt_end+0x88> + 41bdf8: 48 89 c1 mov %rax,%rcx + 41bdfb: e9 5a fa ff ff jmpq 41b85a <_int_malloc+0x31a> + 41be00: 49 89 ec mov %rbp,%r12 + 41be03: 49 c1 ec 0c shr $0xc,%r12 + 41be07: 49 83 fc 0a cmp $0xa,%r12 + 41be0b: 76 54 jbe 41be61 <_int_malloc+0x921> + 41be0d: 49 89 ec mov %rbp,%r12 + 41be10: 49 c1 ec 0f shr $0xf,%r12 + 41be14: 49 83 fc 04 cmp $0x4,%r12 + 41be18: 0f 87 43 02 00 00 ja 41c061 <_int_malloc+0xb21> + 41be1e: 41 8d 44 24 77 lea 0x77(%r12),%eax + 41be23: 89 04 24 mov %eax,(%rsp) + 41be26: e9 62 f8 ff ff jmpq 41b68d <_int_malloc+0x14d> + 41be2b: 89 c2 mov %eax,%edx + 41be2d: 89 c7 mov %eax,%edi + 41be2f: c1 e2 06 shl $0x6,%edx + 41be32: 83 ea 02 sub $0x2,%edx + 41be35: 89 d0 mov %edx,%eax + 41be37: 48 8d 54 c3 58 lea 0x58(%rbx,%rax,8),%rdx + 41be3c: b8 01 00 00 00 mov $0x1,%eax + 41be41: e9 06 fd ff ff jmpq 41bb4c <_int_malloc+0x60c> + 41be46: 89 ef mov %ebp,%edi + 41be48: 4c 89 e2 mov %r12,%rdx + 41be4b: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41be50: 83 e7 02 and $0x2,%edi + 41be53: 31 c0 xor %eax,%eax + 41be55: e8 66 57 ff ff callq 4115c0 <__libc_message> + 41be5a: 31 c9 xor %ecx,%ecx + 41be5c: e9 f9 f9 ff ff jmpq 41b85a <_int_malloc+0x31a> + 41be61: 41 8d 44 24 6e lea 0x6e(%r12),%eax + 41be66: 89 04 24 mov %eax,(%rsp) + 41be69: e9 1f f8 ff ff jmpq 41b68d <_int_malloc+0x14d> + 41be6e: 41 bc b0 27 4a 00 mov $0x4a27b0,%r12d + 41be74: 8b 2d f6 e8 2a 00 mov 0x2ae8f6(%rip),%ebp # 6ca770 + 41be7a: 83 4b 04 04 orl $0x4,0x4(%rbx) + 41be7e: 89 e8 mov %ebp,%eax + 41be80: 83 e0 05 and $0x5,%eax + 41be83: 83 f8 05 cmp $0x5,%eax + 41be86: 74 be je 41be46 <_int_malloc+0x906> + 41be88: 40 f6 c5 01 test $0x1,%bpl + 41be8c: 0f 85 ca 00 00 00 jne 41bf5c <_int_malloc+0xa1c> + 41be92: 83 e5 02 and $0x2,%ebp + 41be95: 74 c3 je 41be5a <_int_malloc+0x91a> + 41be97: e8 64 1d ff ff callq 40dc00 + 41be9c: 0f 1f 40 00 nopl 0x0(%rax) + 41bea0: ba be 00 00 00 mov $0xbe,%edx + 41bea5: bf 03 00 00 00 mov $0x3,%edi + 41beaa: eb 89 jmp 41be35 <_int_malloc+0x8f5> + 41beac: 49 8b 47 08 mov 0x8(%r15),%rax + 41beb0: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 41beb4: 48 39 c5 cmp %rax,%rbp + 41beb7: 0f 87 34 04 00 00 ja 41c2f1 <_int_malloc+0xdb1> + 41bebd: 4d 8d 2c 07 lea (%r15,%rax,1),%r13 + 41bec1: 48 89 c7 mov %rax,%rdi + 41bec4: 48 29 ef sub %rbp,%rdi + 41bec7: 49 3b 45 00 cmp 0x0(%r13),%rax + 41becb: 48 89 3c 24 mov %rdi,(%rsp) + 41becf: 0f 85 6c 02 00 00 jne 41c141 <_int_malloc+0xc01> + 41bed5: 49 8b 47 10 mov 0x10(%r15),%rax + 41bed9: 49 8b 57 18 mov 0x18(%r15),%rdx + 41bedd: 4c 3b 78 18 cmp 0x18(%rax),%r15 + 41bee1: 0f 85 9a 01 00 00 jne 41c081 <_int_malloc+0xb41> + 41bee7: 4c 8b 72 10 mov 0x10(%rdx),%r14 + 41beeb: 4d 39 f7 cmp %r14,%r15 + 41beee: 0f 85 8d 01 00 00 jne 41c081 <_int_malloc+0xb41> + 41bef4: 49 81 7e 08 ff 03 00 cmpq $0x3ff,0x8(%r14) + 41befb: 00 + 41befc: 48 89 50 18 mov %rdx,0x18(%rax) + 41bf00: 48 89 42 10 mov %rax,0x10(%rdx) + 41bf04: 76 0d jbe 41bf13 <_int_malloc+0x9d3> + 41bf06: 49 8b 56 20 mov 0x20(%r14),%rdx + 41bf0a: 48 85 d2 test %rdx,%rdx + 41bf0d: 0f 85 f7 03 00 00 jne 41c30a <_int_malloc+0xdca> + 41bf13: 48 83 3c 24 1f cmpq $0x1f,(%rsp) + 41bf18: 0f 87 c4 00 00 00 ja 41bfe2 <_int_malloc+0xaa2> + 41bf1e: 49 83 4d 08 01 orq $0x1,0x8(%r13) + 41bf23: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx + 41bf2a: 0f 85 29 f7 ff ff jne 41b659 <_int_malloc+0x119> + 41bf30: e9 13 f9 ff ff jmpq 41b848 <_int_malloc+0x308> + 41bf35: 0f 1f 00 nopl (%rax) + 41bf38: b9 b8 2e 4a 00 mov $0x4a2eb8,%ecx + 41bf3d: ba ef 0d 00 00 mov $0xdef,%edx + 41bf42: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41bf47: bf 80 28 4a 00 mov $0x4a2880,%edi + 41bf4c: e8 cf ae ff ff callq 416e20 <__malloc_assert> + 41bf51: 41 bc d8 27 4a 00 mov $0x4a27d8,%r12d + 41bf57: e9 18 ff ff ff jmpq 41be74 <_int_malloc+0x934> + 41bf5c: 4c 8d 6c 24 70 lea 0x70(%rsp),%r13 + 41bf61: 48 8d b4 24 80 00 00 lea 0x80(%rsp),%rsi + 41bf68: 00 + 41bf69: 49 8d 7f 10 lea 0x10(%r15),%rdi + 41bf6d: 31 c9 xor %ecx,%ecx + 41bf6f: ba 10 00 00 00 mov $0x10,%edx + 41bf74: c6 84 24 80 00 00 00 movb $0x0,0x80(%rsp) + 41bf7b: 00 + 41bf7c: e8 2f 5f 03 00 callq 451eb0 <_itoa_word> + 41bf81: 4c 39 e8 cmp %r13,%rax + 41bf84: 48 89 c3 mov %rax,%rbx + 41bf87: 76 25 jbe 41bfae <_int_malloc+0xa6e> + 41bf89: 48 89 c2 mov %rax,%rdx + 41bf8c: 48 89 c7 mov %rax,%rdi + 41bf8f: be 30 00 00 00 mov $0x30,%esi + 41bf94: 4c 29 ea sub %r13,%rdx + 41bf97: 4c 8d 70 ff lea -0x1(%rax),%r14 + 41bf9b: 48 29 d7 sub %rdx,%rdi + 41bf9e: e8 ad 43 fe ff callq 400350 <__rela_iplt_end+0x88> + 41bfa3: 48 8d 44 24 6f lea 0x6f(%rsp),%rax + 41bfa8: 4c 29 f0 sub %r14,%rax + 41bfab: 48 01 c3 add %rax,%rbx + 41bfae: 48 8b 05 0b 13 2b 00 mov 0x2b130b(%rip),%rax # 6cd2c0 <__libc_argv> + 41bfb5: ba 38 20 4a 00 mov $0x4a2038,%edx + 41bfba: 89 ef mov %ebp,%edi + 41bfbc: 4c 89 e1 mov %r12,%rcx + 41bfbf: 49 89 d8 mov %rbx,%r8 + 41bfc2: be a8 23 4a 00 mov $0x4a23a8,%esi + 41bfc7: 48 8b 00 mov (%rax),%rax + 41bfca: 48 85 c0 test %rax,%rax + 41bfcd: 48 0f 45 d0 cmovne %rax,%rdx + 41bfd1: 83 e7 02 and $0x2,%edi + 41bfd4: 31 c0 xor %eax,%eax + 41bfd6: e8 e5 55 ff ff callq 4115c0 <__libc_message> + 41bfdb: 31 c9 xor %ecx,%ecx + 41bfdd: e9 78 f8 ff ff jmpq 41b85a <_int_malloc+0x31a> + 41bfe2: 48 8b 53 68 mov 0x68(%rbx),%rdx + 41bfe6: 4c 39 62 18 cmp %r12,0x18(%rdx) + 41bfea: 0f 85 f3 01 00 00 jne 41c1e3 <_int_malloc+0xca3> + 41bff0: 49 8d 04 2f lea (%r15,%rbp,1),%rax + 41bff4: 48 81 fd ff 03 00 00 cmp $0x3ff,%rbp + 41bffb: 4c 89 60 18 mov %r12,0x18(%rax) + 41bfff: 48 89 50 10 mov %rdx,0x10(%rax) + 41c003: 48 89 43 68 mov %rax,0x68(%rbx) + 41c007: 48 89 42 18 mov %rax,0x18(%rdx) + 41c00b: 77 04 ja 41c011 <_int_malloc+0xad1> + 41c00d: 48 89 43 60 mov %rax,0x60(%rbx) + 41c011: 48 81 3c 24 ff 03 00 cmpq $0x3ff,(%rsp) + 41c018: 00 + 41c019: 76 10 jbe 41c02b <_int_malloc+0xaeb> + 41c01b: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) + 41c022: 00 + 41c023: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) + 41c02a: 00 + 41c02b: 31 d2 xor %edx,%edx + 41c02d: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx + 41c034: 48 8b 3c 24 mov (%rsp),%rdi + 41c038: 0f 95 c2 setne %dl + 41c03b: 48 83 cd 01 or $0x1,%rbp + 41c03f: 48 c1 e2 02 shl $0x2,%rdx + 41c043: 48 09 ea or %rbp,%rdx + 41c046: 49 89 57 08 mov %rdx,0x8(%r15) + 41c04a: 48 89 fa mov %rdi,%rdx + 41c04d: 48 83 ca 01 or $0x1,%rdx + 41c051: 48 89 50 08 mov %rdx,0x8(%rax) + 41c055: 48 89 fa mov %rdi,%rdx + 41c058: 48 89 3c 10 mov %rdi,(%rax,%rdx,1) + 41c05c: e9 e7 f7 ff ff jmpq 41b848 <_int_malloc+0x308> + 41c061: 48 89 e8 mov %rbp,%rax + 41c064: 48 c1 e8 12 shr $0x12,%rax + 41c068: 44 8d 60 7c lea 0x7c(%rax),%r12d + 41c06c: 48 83 f8 02 cmp $0x2,%rax + 41c070: b8 7e 00 00 00 mov $0x7e,%eax + 41c075: 41 0f 46 c4 cmovbe %r12d,%eax + 41c079: 89 04 24 mov %eax,(%rsp) + 41c07c: e9 0c f6 ff ff jmpq 41b68d <_int_malloc+0x14d> + 41c081: 8b 15 e9 e6 2a 00 mov 0x2ae6e9(%rip),%edx # 6ca770 + 41c087: 83 4b 04 04 orl $0x4,0x4(%rbx) + 41c08b: 89 d0 mov %edx,%eax + 41c08d: 83 e0 05 and $0x5,%eax + 41c090: 83 f8 05 cmp $0x5,%eax + 41c093: 0f 84 3d 02 00 00 je 41c2d6 <_int_malloc+0xd96> + 41c099: 41 89 d6 mov %edx,%r14d + 41c09c: 41 83 e6 02 and $0x2,%r14d + 41c0a0: 83 e2 01 and $0x1,%edx + 41c0a3: 0f 85 92 01 00 00 jne 41c23b <_int_malloc+0xcfb> + 41c0a9: 45 85 f6 test %r14d,%r14d + 41c0ac: 0f 84 61 fe ff ff je 41bf13 <_int_malloc+0x9d3> + 41c0b2: e9 e0 fd ff ff jmpq 41be97 <_int_malloc+0x957> + 41c0b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 41c0be: 00 00 + 41c0c0: 48 89 de mov %rbx,%rsi + 41c0c3: 48 89 ef mov %rbp,%rdi + 41c0c6: e8 65 eb ff ff callq 41ac30 + 41c0cb: 48 85 c0 test %rax,%rax + 41c0ce: 0f 85 00 fd ff ff jne 41bdd4 <_int_malloc+0x894> + 41c0d4: 31 c9 xor %ecx,%ecx + 41c0d6: e9 7f f7 ff ff jmpq 41b85a <_int_malloc+0x31a> + 41c0db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41c0e0: 48 29 e8 sub %rbp,%rax + 41c0e3: 31 c9 xor %ecx,%ecx + 41c0e5: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx + 41c0ec: 0f 95 c1 setne %cl + 41c0ef: 48 8d 34 2a lea (%rdx,%rbp,1),%rsi + 41c0f3: 48 83 cd 01 or $0x1,%rbp + 41c0f7: 48 c1 e1 02 shl $0x2,%rcx + 41c0fb: 48 83 c8 01 or $0x1,%rax + 41c0ff: 48 09 e9 or %rbp,%rcx + 41c102: 48 89 73 58 mov %rsi,0x58(%rbx) + 41c106: 48 89 4a 08 mov %rcx,0x8(%rdx) + 41c10a: 48 89 46 08 mov %rax,0x8(%rsi) + 41c10e: 48 8d 4a 10 lea 0x10(%rdx),%rcx + 41c112: 8b 05 1c 05 2b 00 mov 0x2b051c(%rip),%eax # 6cc634 + 41c118: 85 c0 test %eax,%eax + 41c11a: 0f 84 3a f7 ff ff je 41b85a <_int_malloc+0x31a> + 41c120: e9 a6 f8 ff ff jmpq 41b9cb <_int_malloc+0x48b> + 41c125: 0f 1f 00 nopl (%rax) + 41c128: b9 b8 2e 4a 00 mov $0x4a2eb8,%ecx + 41c12d: ba 77 0e 00 00 mov $0xe77,%edx + 41c132: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41c137: bf 5e 21 4a 00 mov $0x4a215e,%edi + 41c13c: e8 df ac ff ff callq 416e20 <__malloc_assert> + 41c141: 44 8b 0d 28 e6 2a 00 mov 0x2ae628(%rip),%r9d # 6ca770 + 41c148: 83 4b 04 04 orl $0x4,0x4(%rbx) + 41c14c: 44 89 c8 mov %r9d,%eax + 41c14f: 83 e0 05 and $0x5,%eax + 41c152: 83 f8 05 cmp $0x5,%eax + 41c155: 0f 84 e2 02 00 00 je 41c43d <_int_malloc+0xefd> + 41c15b: 41 f6 c1 01 test $0x1,%r9b + 41c15f: 0f 85 30 02 00 00 jne 41c395 <_int_malloc+0xe55> + 41c165: 41 f6 c1 02 test $0x2,%r9b + 41c169: 0f 85 28 fd ff ff jne 41be97 <_int_malloc+0x957> + 41c16f: 49 8b 47 10 mov 0x10(%r15),%rax + 41c173: 49 8b 57 18 mov 0x18(%r15),%rdx + 41c177: 4c 3b 78 18 cmp 0x18(%rax),%r15 + 41c17b: 0f 85 92 fd ff ff jne 41bf13 <_int_malloc+0x9d3> + 41c181: 4c 8b 72 10 mov 0x10(%rdx),%r14 + 41c185: 4d 39 f7 cmp %r14,%r15 + 41c188: 0f 84 66 fd ff ff je 41bef4 <_int_malloc+0x9b4> + 41c18e: 44 89 ca mov %r9d,%edx + 41c191: 83 4b 04 04 orl $0x4,0x4(%rbx) + 41c195: e9 ff fe ff ff jmpq 41c099 <_int_malloc+0xb59> + 41c19a: 48 8b 53 68 mov 0x68(%rbx),%rdx + 41c19e: 49 8d 04 2f lea (%r15,%rbp,1),%rax + 41c1a2: 4c 39 62 18 cmp %r12,0x18(%rdx) + 41c1a6: 75 30 jne 41c1d8 <_int_malloc+0xc98> + 41c1a8: 48 81 3c 24 ff 03 00 cmpq $0x3ff,(%rsp) + 41c1af: 00 + 41c1b0: 4c 89 60 18 mov %r12,0x18(%rax) + 41c1b4: 48 89 50 10 mov %rdx,0x10(%rax) + 41c1b8: 48 89 43 68 mov %rax,0x68(%rbx) + 41c1bc: 48 89 42 18 mov %rax,0x18(%rdx) + 41c1c0: 0f 86 65 fe ff ff jbe 41c02b <_int_malloc+0xaeb> + 41c1c6: e9 50 fe ff ff jmpq 41c01b <_int_malloc+0xadb> + 41c1cb: 49 8b 47 08 mov 0x8(%r15),%rax + 41c1cf: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 41c1d3: e9 30 fb ff ff jmpq 41bd08 <_int_malloc+0x7c8> + 41c1d8: 41 bc 08 28 4a 00 mov $0x4a2808,%r12d + 41c1de: e9 91 fc ff ff jmpq 41be74 <_int_malloc+0x934> + 41c1e3: 41 bc 30 28 4a 00 mov $0x4a2830,%r12d + 41c1e9: e9 86 fc ff ff jmpq 41be74 <_int_malloc+0x934> + 41c1ee: 8b 3d 7c e5 2a 00 mov 0x2ae57c(%rip),%edi # 6ca770 + 41c1f4: 48 89 d9 mov %rbx,%rcx + 41c1f7: 4c 89 fa mov %r15,%rdx + 41c1fa: be 95 20 4a 00 mov $0x4a2095,%esi + 41c1ff: e8 ac b0 ff ff callq 4172b0 + 41c204: e9 4e fb ff ff jmpq 41bd57 <_int_malloc+0x817> + 41c209: b9 b8 2e 4a 00 mov $0x4a2eb8,%ecx + 41c20e: ba df 0d 00 00 mov $0xddf,%edx + 41c213: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41c218: bf 58 28 4a 00 mov $0x4a2858,%edi + 41c21d: e8 fe ab ff ff callq 416e20 <__malloc_assert> + 41c222: b9 b8 2e 4a 00 mov $0x4a2eb8,%ecx + 41c227: ba eb 0d 00 00 mov $0xdeb,%edx + 41c22c: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41c231: bf 80 28 4a 00 mov $0x4a2880,%edi + 41c236: e8 e5 ab ff ff callq 416e20 <__malloc_assert> + 41c23b: 4c 8d 5c 24 70 lea 0x70(%rsp),%r11 + 41c240: 48 8d b4 24 80 00 00 lea 0x80(%rsp),%rsi + 41c247: 00 + 41c248: 31 c9 xor %ecx,%ecx + 41c24a: ba 10 00 00 00 mov $0x10,%edx + 41c24f: 4c 89 ff mov %r15,%rdi + 41c252: c6 84 24 80 00 00 00 movb $0x0,0x80(%rsp) + 41c259: 00 + 41c25a: 4c 89 5c 24 10 mov %r11,0x10(%rsp) + 41c25f: e8 4c 5c 03 00 callq 451eb0 <_itoa_word> + 41c264: 4c 8b 5c 24 10 mov 0x10(%rsp),%r11 + 41c269: 49 89 c0 mov %rax,%r8 + 41c26c: 4c 39 d8 cmp %r11,%rax + 41c26f: 76 36 jbe 41c2a7 <_int_malloc+0xd67> + 41c271: 4c 89 c2 mov %r8,%rdx + 41c274: 4c 89 c7 mov %r8,%rdi + 41c277: 48 8d 40 ff lea -0x1(%rax),%rax + 41c27b: 4c 29 da sub %r11,%rdx + 41c27e: be 30 00 00 00 mov $0x30,%esi + 41c283: 4c 89 44 24 18 mov %r8,0x18(%rsp) + 41c288: 48 29 d7 sub %rdx,%rdi + 41c28b: 48 89 44 24 10 mov %rax,0x10(%rsp) + 41c290: e8 bb 40 fe ff callq 400350 <__rela_iplt_end+0x88> + 41c295: 48 8d 44 24 6f lea 0x6f(%rsp),%rax + 41c29a: 48 2b 44 24 10 sub 0x10(%rsp),%rax + 41c29f: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 + 41c2a4: 49 01 c0 add %rax,%r8 + 41c2a7: 48 8b 05 12 10 2b 00 mov 0x2b1012(%rip),%rax # 6cd2c0 <__libc_argv> + 41c2ae: ba 38 20 4a 00 mov $0x4a2038,%edx + 41c2b3: b9 95 20 4a 00 mov $0x4a2095,%ecx + 41c2b8: be a8 23 4a 00 mov $0x4a23a8,%esi + 41c2bd: 44 89 f7 mov %r14d,%edi + 41c2c0: 48 8b 00 mov (%rax),%rax + 41c2c3: 48 85 c0 test %rax,%rax + 41c2c6: 48 0f 45 d0 cmovne %rax,%rdx + 41c2ca: 31 c0 xor %eax,%eax + 41c2cc: e8 ef 52 ff ff callq 4115c0 <__libc_message> + 41c2d1: e9 3d fc ff ff jmpq 41bf13 <_int_malloc+0x9d3> + 41c2d6: 89 d7 mov %edx,%edi + 41c2d8: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41c2dd: ba 95 20 4a 00 mov $0x4a2095,%edx + 41c2e2: 83 e7 02 and $0x2,%edi + 41c2e5: 31 c0 xor %eax,%eax + 41c2e7: e8 d4 52 ff ff callq 4115c0 <__libc_message> + 41c2ec: e9 22 fc ff ff jmpq 41bf13 <_int_malloc+0x9d3> + 41c2f1: b9 b8 2e 4a 00 mov $0x4a2eb8,%ecx + 41c2f6: ba 8a 0e 00 00 mov $0xe8a,%edx + 41c2fb: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41c300: bf a8 28 4a 00 mov $0x4a28a8,%edi + 41c305: e8 16 ab ff ff callq 416e20 <__malloc_assert> + 41c30a: 4c 39 72 28 cmp %r14,0x28(%rdx) + 41c30e: 0f 85 6b 01 00 00 jne 41c47f <_int_malloc+0xf3f> + 41c314: 49 8b 4e 28 mov 0x28(%r14),%rcx + 41c318: 4c 39 71 20 cmp %r14,0x20(%rcx) + 41c31c: 0f 85 5d 01 00 00 jne 41c47f <_int_malloc+0xf3f> + 41c322: 48 83 78 20 00 cmpq $0x0,0x20(%rax) + 41c327: 0f 84 2c 01 00 00 je 41c459 <_int_malloc+0xf19> + 41c32d: 49 8b 46 28 mov 0x28(%r14),%rax + 41c331: 48 89 42 28 mov %rax,0x28(%rdx) + 41c335: 49 8b 46 28 mov 0x28(%r14),%rax + 41c339: 48 89 50 20 mov %rdx,0x20(%rax) + 41c33d: e9 d1 fb ff ff jmpq 41bf13 <_int_malloc+0x9d3> + 41c342: 8b 3d 28 e4 2a 00 mov 0x2ae428(%rip),%edi # 6ca770 + 41c348: 48 89 d9 mov %rbx,%rcx + 41c34b: 4c 89 fa mov %r15,%rdx + 41c34e: be 78 20 4a 00 mov $0x4a2078,%esi + 41c353: e8 58 af ff ff callq 4172b0 + 41c358: e9 bf f9 ff ff jmpq 41bd1c <_int_malloc+0x7dc> + 41c35d: 4c 3b 78 28 cmp 0x28(%rax),%r15 + 41c361: 0f 85 74 01 00 00 jne 41c4db <_int_malloc+0xf9b> + 41c367: 49 8b 57 28 mov 0x28(%r15),%rdx + 41c36b: 4c 3b 7a 20 cmp 0x20(%rdx),%r15 + 41c36f: 0f 85 66 01 00 00 jne 41c4db <_int_malloc+0xf9b> + 41c375: 49 83 7d 20 00 cmpq $0x0,0x20(%r13) + 41c37a: 0f 84 35 01 00 00 je 41c4b5 <_int_malloc+0xf75> + 41c380: 49 8b 57 28 mov 0x28(%r15),%rdx + 41c384: 48 89 50 28 mov %rdx,0x28(%rax) + 41c388: 49 8b 57 28 mov 0x28(%r15),%rdx + 41c38c: 48 89 42 20 mov %rax,0x20(%rdx) + 41c390: e9 c2 f9 ff ff jmpq 41bd57 <_int_malloc+0x817> + 41c395: 4c 8d 74 24 70 lea 0x70(%rsp),%r14 + 41c39a: 48 8d b4 24 80 00 00 lea 0x80(%rsp),%rsi + 41c3a1: 00 + 41c3a2: 31 c9 xor %ecx,%ecx + 41c3a4: ba 10 00 00 00 mov $0x10,%edx + 41c3a9: 4c 89 ff mov %r15,%rdi + 41c3ac: 44 89 4c 24 10 mov %r9d,0x10(%rsp) + 41c3b1: c6 84 24 80 00 00 00 movb $0x0,0x80(%rsp) + 41c3b8: 00 + 41c3b9: e8 f2 5a 03 00 callq 451eb0 <_itoa_word> + 41c3be: 4c 39 f0 cmp %r14,%rax + 41c3c1: 49 89 c0 mov %rax,%r8 + 41c3c4: 44 8b 4c 24 10 mov 0x10(%rsp),%r9d + 41c3c9: 76 40 jbe 41c40b <_int_malloc+0xecb> + 41c3cb: 4c 89 c2 mov %r8,%rdx + 41c3ce: 4c 89 c7 mov %r8,%rdi + 41c3d1: 48 8d 40 ff lea -0x1(%rax),%rax + 41c3d5: 4c 29 f2 sub %r14,%rdx + 41c3d8: be 30 00 00 00 mov $0x30,%esi + 41c3dd: 44 89 4c 24 24 mov %r9d,0x24(%rsp) + 41c3e2: 48 29 d7 sub %rdx,%rdi + 41c3e5: 4c 89 44 24 18 mov %r8,0x18(%rsp) + 41c3ea: 48 89 44 24 10 mov %rax,0x10(%rsp) + 41c3ef: e8 5c 3f fe ff callq 400350 <__rela_iplt_end+0x88> + 41c3f4: 48 8d 44 24 6f lea 0x6f(%rsp),%rax + 41c3f9: 48 2b 44 24 10 sub 0x10(%rsp),%rax + 41c3fe: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 + 41c403: 44 8b 4c 24 24 mov 0x24(%rsp),%r9d + 41c408: 49 01 c0 add %rax,%r8 + 41c40b: 48 8b 05 ae 0e 2b 00 mov 0x2b0eae(%rip),%rax # 6cd2c0 <__libc_argv> + 41c412: 44 89 cf mov %r9d,%edi + 41c415: ba 38 20 4a 00 mov $0x4a2038,%edx + 41c41a: b9 78 20 4a 00 mov $0x4a2078,%ecx + 41c41f: be a8 23 4a 00 mov $0x4a23a8,%esi + 41c424: 48 8b 00 mov (%rax),%rax + 41c427: 48 85 c0 test %rax,%rax + 41c42a: 48 0f 45 d0 cmovne %rax,%rdx + 41c42e: 83 e7 02 and $0x2,%edi + 41c431: 31 c0 xor %eax,%eax + 41c433: e8 88 51 ff ff callq 4115c0 <__libc_message> + 41c438: e9 98 fa ff ff jmpq 41bed5 <_int_malloc+0x995> + 41c43d: 44 89 cf mov %r9d,%edi + 41c440: ba 78 20 4a 00 mov $0x4a2078,%edx + 41c445: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41c44a: 83 e7 02 and $0x2,%edi + 41c44d: 31 c0 xor %eax,%eax + 41c44f: e8 6c 51 ff ff callq 4115c0 <__libc_message> + 41c454: e9 7c fa ff ff jmpq 41bed5 <_int_malloc+0x995> + 41c459: 4c 39 f2 cmp %r14,%rdx + 41c45c: 74 4a je 41c4a8 <_int_malloc+0xf68> + 41c45e: 48 89 50 20 mov %rdx,0x20(%rax) + 41c462: 49 8b 56 28 mov 0x28(%r14),%rdx + 41c466: 48 89 50 28 mov %rdx,0x28(%rax) + 41c46a: 49 8b 56 20 mov 0x20(%r14),%rdx + 41c46e: 48 89 42 28 mov %rax,0x28(%rdx) + 41c472: 49 8b 56 28 mov 0x28(%r14),%rdx + 41c476: 48 89 42 20 mov %rax,0x20(%rdx) + 41c47a: e9 94 fa ff ff jmpq 41bf13 <_int_malloc+0x9d3> + 41c47f: 8b 3d eb e2 2a 00 mov 0x2ae2eb(%rip),%edi # 6ca770 + 41c485: 4c 89 f2 mov %r14,%rdx + 41c488: 48 89 d9 mov %rbx,%rcx + 41c48b: be f0 23 4a 00 mov $0x4a23f0,%esi + 41c490: 48 89 44 24 10 mov %rax,0x10(%rsp) + 41c495: e8 16 ae ff ff callq 4172b0 + 41c49a: 49 8b 56 20 mov 0x20(%r14),%rdx + 41c49e: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 41c4a3: e9 7a fe ff ff jmpq 41c322 <_int_malloc+0xde2> + 41c4a8: 48 89 40 28 mov %rax,0x28(%rax) + 41c4ac: 48 89 40 20 mov %rax,0x20(%rax) + 41c4b0: e9 5e fa ff ff jmpq 41bf13 <_int_malloc+0x9d3> + 41c4b5: 49 39 c7 cmp %rax,%r15 + 41c4b8: 74 40 je 41c4fa <_int_malloc+0xfba> + 41c4ba: 49 89 45 20 mov %rax,0x20(%r13) + 41c4be: 49 8b 47 28 mov 0x28(%r15),%rax + 41c4c2: 49 89 45 28 mov %rax,0x28(%r13) + 41c4c6: 49 8b 47 20 mov 0x20(%r15),%rax + 41c4ca: 4c 89 68 28 mov %r13,0x28(%rax) + 41c4ce: 49 8b 47 28 mov 0x28(%r15),%rax + 41c4d2: 4c 89 68 20 mov %r13,0x20(%rax) + 41c4d6: e9 7c f8 ff ff jmpq 41bd57 <_int_malloc+0x817> + 41c4db: 8b 3d 8f e2 2a 00 mov 0x2ae28f(%rip),%edi # 6ca770 + 41c4e1: 48 89 d9 mov %rbx,%rcx + 41c4e4: 4c 89 fa mov %r15,%rdx + 41c4e7: be f0 23 4a 00 mov $0x4a23f0,%esi + 41c4ec: e8 bf ad ff ff callq 4172b0 + 41c4f1: 49 8b 47 20 mov 0x20(%r15),%rax + 41c4f5: e9 7b fe ff ff jmpq 41c375 <_int_malloc+0xe35> + 41c4fa: 4d 89 6d 28 mov %r13,0x28(%r13) + 41c4fe: 4d 89 6d 20 mov %r13,0x20(%r13) + 41c502: e9 50 f8 ff ff jmpq 41bd57 <_int_malloc+0x817> + 41c507: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 41c50e: 00 00 + +000000000041c510 <_int_memalign>: + 41c510: 48 83 fa bf cmp $0xffffffffffffffbf,%rdx + 41c514: 0f 87 a6 01 00 00 ja 41c6c0 <_int_memalign+0x1b0> + 41c51a: 48 83 c2 17 add $0x17,%rdx + 41c51e: 41 56 push %r14 + 41c520: 41 55 push %r13 + 41c522: 41 54 push %r12 + 41c524: 55 push %rbp + 41c525: 48 89 d5 mov %rdx,%rbp + 41c528: 48 83 e5 f0 and $0xfffffffffffffff0,%rbp + 41c52c: b8 20 00 00 00 mov $0x20,%eax + 41c531: 48 83 fa 20 cmp $0x20,%rdx + 41c535: 48 0f 42 e8 cmovb %rax,%rbp + 41c539: 53 push %rbx + 41c53a: 49 89 f5 mov %rsi,%r13 + 41c53d: 48 8d 74 35 20 lea 0x20(%rbp,%rsi,1),%rsi + 41c542: 48 89 fb mov %rdi,%rbx + 41c545: e8 f6 ef ff ff callq 41b540 <_int_malloc> + 41c54a: 48 85 c0 test %rax,%rax + 41c54d: 48 89 c1 mov %rax,%rcx + 41c550: 0f 84 aa 01 00 00 je 41c700 <_int_memalign+0x1f0> + 41c556: 31 d2 xor %edx,%edx + 41c558: 48 8d 70 f0 lea -0x10(%rax),%rsi + 41c55c: 49 f7 f5 div %r13 + 41c55f: 48 85 d2 test %rdx,%rdx + 41c562: 0f 84 c8 00 00 00 je 41c630 <_int_memalign+0x120> + 41c568: 4a 8d 44 29 ff lea -0x1(%rcx,%r13,1),%rax + 41c56d: 4c 89 ea mov %r13,%rdx + 41c570: 48 f7 da neg %rdx + 41c573: 48 21 d0 and %rdx,%rax + 41c576: 48 83 e8 10 sub $0x10,%rax + 41c57a: 48 89 c2 mov %rax,%rdx + 41c57d: 4e 8d 24 28 lea (%rax,%r13,1),%r12 + 41c581: 48 29 f2 sub %rsi,%rdx + 41c584: 48 83 fa 1f cmp $0x1f,%rdx + 41c588: 4c 0f 47 e0 cmova %rax,%r12 + 41c58c: 48 8b 41 f8 mov -0x8(%rcx),%rax + 41c590: 4c 89 e2 mov %r12,%rdx + 41c593: 48 29 f2 sub %rsi,%rdx + 41c596: 49 89 c6 mov %rax,%r14 + 41c599: 49 83 e6 f8 and $0xfffffffffffffff8,%r14 + 41c59d: 49 29 d6 sub %rdx,%r14 + 41c5a0: 83 e0 02 and $0x2,%eax + 41c5a3: 0f 85 ef 00 00 00 jne 41c698 <_int_memalign+0x188> + 41c5a9: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx + 41c5b0: 0f 84 22 01 00 00 je 41c6d8 <_int_memalign+0x1c8> + 41c5b6: 4c 89 f0 mov %r14,%rax + 41c5b9: 48 83 c8 05 or $0x5,%rax + 41c5bd: 49 89 44 24 08 mov %rax,0x8(%r12) + 41c5c2: 4b 83 4c 34 08 01 orq $0x1,0x8(%r12,%r14,1) + 41c5c8: b8 04 00 00 00 mov $0x4,%eax + 41c5cd: 48 8b 79 f8 mov -0x8(%rcx),%rdi + 41c5d1: 83 e7 07 and $0x7,%edi + 41c5d4: 48 09 f8 or %rdi,%rax + 41c5d7: 48 89 df mov %rbx,%rdi + 41c5da: 48 09 c2 or %rax,%rdx + 41c5dd: 48 89 51 f8 mov %rdx,-0x8(%rcx) + 41c5e1: ba 01 00 00 00 mov $0x1,%edx + 41c5e6: e8 d5 d1 ff ff callq 4197c0 <_int_free> + 41c5eb: 4c 39 f5 cmp %r14,%rbp + 41c5ee: 0f 87 13 01 00 00 ja 41c707 <_int_memalign+0x1f7> + 41c5f4: 49 8d 4c 24 10 lea 0x10(%r12),%rcx + 41c5f9: 31 d2 xor %edx,%edx + 41c5fb: 48 89 c8 mov %rcx,%rax + 41c5fe: 49 f7 f5 div %r13 + 41c601: 48 85 d2 test %rdx,%rdx + 41c604: 0f 85 fd 00 00 00 jne 41c707 <_int_memalign+0x1f7> + 41c60a: 49 8b 54 24 08 mov 0x8(%r12),%rdx + 41c60f: 49 89 cd mov %rcx,%r13 + 41c612: 48 89 d1 mov %rdx,%rcx + 41c615: 83 e1 02 and $0x2,%ecx + 41c618: 74 29 je 41c643 <_int_memalign+0x133> + 41c61a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41c620: 4c 89 e8 mov %r13,%rax + 41c623: 5b pop %rbx + 41c624: 5d pop %rbp + 41c625: 41 5c pop %r12 + 41c627: 41 5d pop %r13 + 41c629: 41 5e pop %r14 + 41c62b: c3 retq + 41c62c: 0f 1f 40 00 nopl 0x0(%rax) + 41c630: 49 89 f4 mov %rsi,%r12 + 41c633: 49 89 cd mov %rcx,%r13 + 41c636: 49 8b 54 24 08 mov 0x8(%r12),%rdx + 41c63b: 48 89 d1 mov %rdx,%rcx + 41c63e: 83 e1 02 and $0x2,%ecx + 41c641: 75 dd jne 41c620 <_int_memalign+0x110> + 41c643: 48 8d 75 20 lea 0x20(%rbp),%rsi + 41c647: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx + 41c64b: 48 39 f2 cmp %rsi,%rdx + 41c64e: 76 d0 jbe 41c620 <_int_memalign+0x110> + 41c650: 48 29 ea sub %rbp,%rdx + 41c653: bf 04 00 00 00 mov $0x4,%edi + 41c658: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx + 41c65f: 48 0f 45 cf cmovne %rdi,%rcx + 41c663: 49 8d 34 2c lea (%r12,%rbp,1),%rsi + 41c667: 48 83 ca 01 or $0x1,%rdx + 41c66b: 48 09 ca or %rcx,%rdx + 41c66e: 48 89 df mov %rbx,%rdi + 41c671: 48 89 56 08 mov %rdx,0x8(%rsi) + 41c675: 49 8b 54 24 08 mov 0x8(%r12),%rdx + 41c67a: 83 e2 07 and $0x7,%edx + 41c67d: 48 09 d5 or %rdx,%rbp + 41c680: ba 01 00 00 00 mov $0x1,%edx + 41c685: 49 89 6c 24 08 mov %rbp,0x8(%r12) + 41c68a: e8 31 d1 ff ff callq 4197c0 <_int_free> + 41c68f: eb 8f jmp 41c620 <_int_memalign+0x110> + 41c691: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41c698: 48 03 51 f0 add -0x10(%rcx),%rdx + 41c69c: 49 83 ce 02 or $0x2,%r14 + 41c6a0: 49 8d 44 24 10 lea 0x10(%r12),%rax + 41c6a5: 4d 89 74 24 08 mov %r14,0x8(%r12) + 41c6aa: 49 89 14 24 mov %rdx,(%r12) + 41c6ae: 5b pop %rbx + 41c6af: 5d pop %rbp + 41c6b0: 41 5c pop %r12 + 41c6b2: 41 5d pop %r13 + 41c6b4: 41 5e pop %r14 + 41c6b6: c3 retq + 41c6b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 41c6be: 00 00 + 41c6c0: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41c6c7: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) + 41c6ce: 31 c0 xor %eax,%eax + 41c6d0: c3 retq + 41c6d1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41c6d8: 4c 89 f7 mov %r14,%rdi + 41c6db: 48 83 cf 01 or $0x1,%rdi + 41c6df: 49 89 7c 24 08 mov %rdi,0x8(%r12) + 41c6e4: 4b 83 4c 34 08 01 orq $0x1,0x8(%r12,%r14,1) + 41c6ea: 48 8b 79 f8 mov -0x8(%rcx),%rdi + 41c6ee: 83 e7 07 and $0x7,%edi + 41c6f1: e9 de fe ff ff jmpq 41c5d4 <_int_memalign+0xc4> + 41c6f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41c6fd: 00 00 00 + 41c700: 31 c0 xor %eax,%eax + 41c702: e9 1c ff ff ff jmpq 41c623 <_int_memalign+0x113> + 41c707: b9 c8 2e 4a 00 mov $0x4a2ec8,%ecx + 41c70c: ba 6f 11 00 00 mov $0x116f,%edx + 41c711: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41c716: bf d8 28 4a 00 mov $0x4a28d8,%edi + 41c71b: e8 00 a7 ff ff callq 416e20 <__malloc_assert> + +000000000041c720 : + 41c720: 48 83 ff ff cmp $0xffffffffffffffff,%rdi + 41c724: 0f 84 26 01 00 00 je 41c850 + 41c72a: 53 push %rbx + 41c72b: be 01 00 00 00 mov $0x1,%esi + 41c730: 48 89 fb mov %rdi,%rbx + 41c733: 31 c0 xor %eax,%eax + 41c735: 83 3d 80 0a 2b 00 00 cmpl $0x0,0x2b0a80(%rip) # 6cd1bc <__libc_multiple_threads> + 41c73c: 74 0c je 41c74a + 41c73e: f0 0f b1 35 ba e0 2a lock cmpxchg %esi,0x2ae0ba(%rip) # 6ca800 + 41c745: 00 + 41c746: 75 0b jne 41c753 + 41c748: eb 23 jmp 41c76d + 41c74a: 0f b1 35 af e0 2a 00 cmpxchg %esi,0x2ae0af(%rip) # 6ca800 + 41c751: 74 1a je 41c76d + 41c753: 48 8d 3d a6 e0 2a 00 lea 0x2ae0a6(%rip),%rdi # 6ca800 + 41c75a: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41c761: e8 6a 5e 02 00 callq 4425d0 <__lll_lock_wait_private> + 41c766: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41c76d: e8 6e b3 ff ff callq 417ae0 + 41c772: 45 31 c0 xor %r8d,%r8d + 41c775: 85 c0 test %eax,%eax + 41c777: 78 11 js 41c78a + 41c779: 48 8d 73 01 lea 0x1(%rbx),%rsi + 41c77d: bf 00 a8 6c 00 mov $0x6ca800,%edi + 41c782: e8 b9 ed ff ff callq 41b540 <_int_malloc> + 41c787: 49 89 c0 mov %rax,%r8 + 41c78a: 83 3d 2b 0a 2b 00 00 cmpl $0x0,0x2b0a2b(%rip) # 6cd1bc <__libc_multiple_threads> + 41c791: 74 0b je 41c79e + 41c793: f0 ff 0d 66 e0 2a 00 lock decl 0x2ae066(%rip) # 6ca800 + 41c79a: 75 0a jne 41c7a6 + 41c79c: eb 22 jmp 41c7c0 + 41c79e: ff 0d 5c e0 2a 00 decl 0x2ae05c(%rip) # 6ca800 + 41c7a4: 74 1a je 41c7c0 + 41c7a6: 48 8d 3d 53 e0 2a 00 lea 0x2ae053(%rip),%rdi # 6ca800 + 41c7ad: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41c7b4: e8 47 5e 02 00 callq 442600 <__lll_unlock_wake_private> + 41c7b9: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41c7c0: 4d 85 c0 test %r8,%r8 + 41c7c3: 0f 84 9f 00 00 00 je 41c868 + 41c7c9: 49 8d 40 f0 lea -0x10(%r8),%rax + 41c7cd: 49 89 c1 mov %rax,%r9 + 41c7d0: 48 c1 e8 0b shr $0xb,%rax + 41c7d4: 49 c1 e9 03 shr $0x3,%r9 + 41c7d8: 41 31 c1 xor %eax,%r9d + 41c7db: b8 02 00 00 00 mov $0x2,%eax + 41c7e0: 41 80 f9 01 cmp $0x1,%r9b + 41c7e4: 44 0f 44 c8 cmove %eax,%r9d + 41c7e8: 49 8b 40 f8 mov -0x8(%r8),%rax + 41c7ec: 41 0f b6 f9 movzbl %r9b,%edi + 41c7f0: 48 89 c2 mov %rax,%rdx + 41c7f3: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx + 41c7f7: 48 8d 4a f0 lea -0x10(%rdx),%rcx + 41c7fb: 48 83 ea 08 sub $0x8,%rdx + 41c7ff: a8 02 test $0x2,%al + 41c801: b8 ff 00 00 00 mov $0xff,%eax + 41c806: 48 0f 44 ca cmove %rdx,%rcx + 41c80a: 48 83 e9 01 sub $0x1,%rcx + 41c80e: 48 39 cb cmp %rcx,%rbx + 41c811: 73 2d jae 41c840 + 41c813: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41c818: 48 89 ca mov %rcx,%rdx + 41c81b: 48 29 da sub %rbx,%rdx + 41c81e: 48 81 fa ff 00 00 00 cmp $0xff,%rdx + 41c825: 48 0f 47 d0 cmova %rax,%rdx + 41c829: 48 8d 72 ff lea -0x1(%rdx),%rsi + 41c82d: 48 39 fa cmp %rdi,%rdx + 41c830: 48 0f 44 d6 cmove %rsi,%rdx + 41c834: 41 88 14 08 mov %dl,(%r8,%rcx,1) + 41c838: 48 29 d1 sub %rdx,%rcx + 41c83b: 48 39 cb cmp %rcx,%rbx + 41c83e: 72 d8 jb 41c818 + 41c840: 45 88 0c 18 mov %r9b,(%r8,%rbx,1) + 41c844: 4c 89 c0 mov %r8,%rax + 41c847: 5b pop %rbx + 41c848: c3 retq + 41c849: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41c850: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41c857: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) + 41c85e: 31 c0 xor %eax,%eax + 41c860: c3 retq + 41c861: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41c868: 31 c0 xor %eax,%eax + 41c86a: 5b pop %rbx + 41c86b: c3 retq + 41c86c: 0f 1f 40 00 nopl 0x0(%rax) + +000000000041c870 : + 41c870: 55 push %rbp + 41c871: 53 push %rbx + 41c872: 48 89 f3 mov %rsi,%rbx + 41c875: 48 83 ec 08 sub $0x8,%rsp + 41c879: 48 83 ff 10 cmp $0x10,%rdi + 41c87d: 0f 86 8d 01 00 00 jbe 41ca10 + 41c883: 48 83 ff 1f cmp $0x1f,%rdi + 41c887: 0f 87 33 01 00 00 ja 41c9c0 + 41c88d: 48 83 fe bf cmp $0xffffffffffffffbf,%rsi + 41c891: 0f 87 a1 01 00 00 ja 41ca38 + 41c897: bd 20 00 00 00 mov $0x20,%ebp + 41c89c: be 01 00 00 00 mov $0x1,%esi + 41c8a1: 31 c0 xor %eax,%eax + 41c8a3: 83 3d 12 09 2b 00 00 cmpl $0x0,0x2b0912(%rip) # 6cd1bc <__libc_multiple_threads> + 41c8aa: 74 0c je 41c8b8 + 41c8ac: f0 0f b1 35 4c df 2a lock cmpxchg %esi,0x2adf4c(%rip) # 6ca800 + 41c8b3: 00 + 41c8b4: 75 0b jne 41c8c1 + 41c8b6: eb 23 jmp 41c8db + 41c8b8: 0f b1 35 41 df 2a 00 cmpxchg %esi,0x2adf41(%rip) # 6ca800 + 41c8bf: 74 1a je 41c8db + 41c8c1: 48 8d 3d 38 df 2a 00 lea 0x2adf38(%rip),%rdi # 6ca800 + 41c8c8: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41c8cf: e8 fc 5c 02 00 callq 4425d0 <__lll_lock_wait_private> + 41c8d4: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41c8db: e8 00 b2 ff ff callq 417ae0 + 41c8e0: 45 31 c0 xor %r8d,%r8d + 41c8e3: 85 c0 test %eax,%eax + 41c8e5: 78 14 js 41c8fb + 41c8e7: 48 8d 53 01 lea 0x1(%rbx),%rdx + 41c8eb: 48 89 ee mov %rbp,%rsi + 41c8ee: bf 00 a8 6c 00 mov $0x6ca800,%edi + 41c8f3: e8 18 fc ff ff callq 41c510 <_int_memalign> + 41c8f8: 49 89 c0 mov %rax,%r8 + 41c8fb: 83 3d ba 08 2b 00 00 cmpl $0x0,0x2b08ba(%rip) # 6cd1bc <__libc_multiple_threads> + 41c902: 74 0b je 41c90f + 41c904: f0 ff 0d f5 de 2a 00 lock decl 0x2adef5(%rip) # 6ca800 + 41c90b: 75 0a jne 41c917 + 41c90d: eb 22 jmp 41c931 + 41c90f: ff 0d eb de 2a 00 decl 0x2adeeb(%rip) # 6ca800 + 41c915: 74 1a je 41c931 + 41c917: 48 8d 3d e2 de 2a 00 lea 0x2adee2(%rip),%rdi # 6ca800 + 41c91e: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41c925: e8 d6 5c 02 00 callq 442600 <__lll_unlock_wake_private> + 41c92a: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41c931: 4d 85 c0 test %r8,%r8 + 41c934: 0f 84 16 01 00 00 je 41ca50 + 41c93a: 49 8d 40 f0 lea -0x10(%r8),%rax + 41c93e: 49 89 c1 mov %rax,%r9 + 41c941: 48 c1 e8 0b shr $0xb,%rax + 41c945: 49 c1 e9 03 shr $0x3,%r9 + 41c949: 41 31 c1 xor %eax,%r9d + 41c94c: b8 02 00 00 00 mov $0x2,%eax + 41c951: 41 80 f9 01 cmp $0x1,%r9b + 41c955: 44 0f 44 c8 cmove %eax,%r9d + 41c959: 49 8b 40 f8 mov -0x8(%r8),%rax + 41c95d: 41 0f b6 f9 movzbl %r9b,%edi + 41c961: 48 89 c2 mov %rax,%rdx + 41c964: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx + 41c968: 48 8d 4a f0 lea -0x10(%rdx),%rcx + 41c96c: 48 83 ea 08 sub $0x8,%rdx + 41c970: a8 02 test $0x2,%al + 41c972: b8 ff 00 00 00 mov $0xff,%eax + 41c977: 48 0f 44 ca cmove %rdx,%rcx + 41c97b: 48 83 e9 01 sub $0x1,%rcx + 41c97f: 48 39 cb cmp %rcx,%rbx + 41c982: 73 2c jae 41c9b0 + 41c984: 0f 1f 40 00 nopl 0x0(%rax) + 41c988: 48 89 ca mov %rcx,%rdx + 41c98b: 48 29 da sub %rbx,%rdx + 41c98e: 48 81 fa ff 00 00 00 cmp $0xff,%rdx + 41c995: 48 0f 47 d0 cmova %rax,%rdx + 41c999: 48 8d 72 ff lea -0x1(%rdx),%rsi + 41c99d: 48 39 fa cmp %rdi,%rdx + 41c9a0: 48 0f 44 d6 cmove %rsi,%rdx + 41c9a4: 41 88 14 08 mov %dl,(%r8,%rcx,1) + 41c9a8: 48 29 d1 sub %rdx,%rcx + 41c9ab: 48 39 cb cmp %rcx,%rbx + 41c9ae: 72 d8 jb 41c988 + 41c9b0: 45 88 0c 18 mov %r9b,(%r8,%rbx,1) + 41c9b4: 4c 89 c0 mov %r8,%rax + 41c9b7: 48 83 c4 08 add $0x8,%rsp + 41c9bb: 5b pop %rbx + 41c9bc: 5d pop %rbp + 41c9bd: c3 retq + 41c9be: 66 90 xchg %ax,%ax + 41c9c0: 48 b8 00 00 00 00 00 movabs $0x8000000000000000,%rax + 41c9c7: 00 00 80 + 41c9ca: 48 39 c7 cmp %rax,%rdi + 41c9cd: 77 51 ja 41ca20 + 41c9cf: 48 c7 c0 df ff ff ff mov $0xffffffffffffffdf,%rax + 41c9d6: 48 29 f8 sub %rdi,%rax + 41c9d9: 48 39 c6 cmp %rax,%rsi + 41c9dc: 77 5a ja 41ca38 + 41c9de: 48 8d 47 ff lea -0x1(%rdi),%rax + 41c9e2: 48 85 f8 test %rdi,%rax + 41c9e5: 74 70 je 41ca57 + 41c9e7: 48 83 ff 20 cmp $0x20,%rdi + 41c9eb: bd 20 00 00 00 mov $0x20,%ebp + 41c9f0: 0f 84 a6 fe ff ff je 41c89c + 41c9f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41c9fd: 00 00 00 + 41ca00: 48 01 ed add %rbp,%rbp + 41ca03: 48 39 ef cmp %rbp,%rdi + 41ca06: 77 f8 ja 41ca00 + 41ca08: e9 8f fe ff ff jmpq 41c89c + 41ca0d: 0f 1f 00 nopl (%rax) + 41ca10: 48 83 c4 08 add $0x8,%rsp + 41ca14: 48 89 df mov %rbx,%rdi + 41ca17: 31 f6 xor %esi,%esi + 41ca19: 5b pop %rbx + 41ca1a: 5d pop %rbp + 41ca1b: e9 00 fd ff ff jmpq 41c720 + 41ca20: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41ca27: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) + 41ca2e: 31 c0 xor %eax,%eax + 41ca30: e9 82 ff ff ff jmpq 41c9b7 + 41ca35: 0f 1f 00 nopl (%rax) + 41ca38: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41ca3f: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) + 41ca46: 31 c0 xor %eax,%eax + 41ca48: e9 6a ff ff ff jmpq 41c9b7 + 41ca4d: 0f 1f 00 nopl (%rax) + 41ca50: 31 c0 xor %eax,%eax + 41ca52: e9 60 ff ff ff jmpq 41c9b7 + 41ca57: 48 89 fd mov %rdi,%rbp + 41ca5a: e9 3d fe ff ff jmpq 41c89c + 41ca5f: 90 nop + +000000000041ca60 <_int_realloc>: + 41ca60: 41 57 push %r15 + 41ca62: 41 56 push %r14 + 41ca64: 41 55 push %r13 + 41ca66: 41 54 push %r12 + 41ca68: 49 89 cd mov %rcx,%r13 + 41ca6b: 55 push %rbp + 41ca6c: 53 push %rbx + 41ca6d: 48 89 fd mov %rdi,%rbp + 41ca70: 48 89 f3 mov %rsi,%rbx + 41ca73: 48 83 ec 48 sub $0x48,%rsp + 41ca77: 48 8b 4e 08 mov 0x8(%rsi),%rcx + 41ca7b: 48 83 f9 10 cmp $0x10,%rcx + 41ca7f: 0f 86 03 02 00 00 jbe 41cc88 <_int_realloc+0x228> + 41ca85: 48 8b 87 80 08 00 00 mov 0x880(%rdi),%rax + 41ca8c: 48 39 d0 cmp %rdx,%rax + 41ca8f: 0f 86 9b 02 00 00 jbe 41cd30 <_int_realloc+0x2d0> + 41ca95: 49 89 cc mov %rcx,%r12 + 41ca98: 41 83 e4 02 and $0x2,%r12d + 41ca9c: 0f 85 77 06 00 00 jne 41d119 <_int_realloc+0x6b9> + 41caa2: 4c 8d 3c 16 lea (%rsi,%rdx,1),%r15 + 41caa6: 49 8b 77 08 mov 0x8(%r15),%rsi + 41caaa: 48 89 f7 mov %rsi,%rdi + 41caad: 48 83 e7 f8 and $0xfffffffffffffff8,%rdi + 41cab1: 48 39 f8 cmp %rdi,%rax + 41cab4: 0f 86 16 03 00 00 jbe 41cdd0 <_int_realloc+0x370> + 41caba: 48 83 fe 10 cmp $0x10,%rsi + 41cabe: 0f 86 0c 03 00 00 jbe 41cdd0 <_int_realloc+0x370> + 41cac4: 4c 39 ea cmp %r13,%rdx + 41cac7: 72 47 jb 41cb10 <_int_realloc+0xb0> + 41cac9: 48 89 d0 mov %rdx,%rax + 41cacc: 4c 29 e8 sub %r13,%rax + 41cacf: 48 83 f8 1f cmp $0x1f,%rax + 41cad3: 0f 87 07 02 00 00 ja 41cce0 <_int_realloc+0x280> + 41cad9: 83 e1 07 and $0x7,%ecx + 41cadc: b8 04 00 00 00 mov $0x4,%eax + 41cae1: 48 81 fd 00 a8 6c 00 cmp $0x6ca800,%rbp + 41cae8: 4c 0f 45 e0 cmovne %rax,%r12 + 41caec: 48 09 d1 or %rdx,%rcx + 41caef: 4c 09 e1 or %r12,%rcx + 41caf2: 48 89 4b 08 mov %rcx,0x8(%rbx) + 41caf6: 48 83 4c 13 08 01 orq $0x1,0x8(%rbx,%rdx,1) + 41cafc: 48 8d 43 10 lea 0x10(%rbx),%rax + 41cb00: 48 83 c4 48 add $0x48,%rsp + 41cb04: 5b pop %rbx + 41cb05: 5d pop %rbp + 41cb06: 41 5c pop %r12 + 41cb08: 41 5d pop %r13 + 41cb0a: 41 5e pop %r14 + 41cb0c: 41 5f pop %r15 + 41cb0e: c3 retq + 41cb0f: 90 nop + 41cb10: 4c 3b 7d 58 cmp 0x58(%rbp),%r15 + 41cb14: 0f 84 3e 03 00 00 je 41ce58 <_int_realloc+0x3f8> + 41cb1a: 49 8d 04 3f lea (%r15,%rdi,1),%rax + 41cb1e: f6 40 08 01 testb $0x1,0x8(%rax) + 41cb22: 0f 85 98 00 00 00 jne 41cbc0 <_int_realloc+0x160> + 41cb28: 4c 8d 0c 3a lea (%rdx,%rdi,1),%r9 + 41cb2c: 4d 39 cd cmp %r9,%r13 + 41cb2f: 0f 87 8b 00 00 00 ja 41cbc0 <_int_realloc+0x160> + 41cb35: 48 3b 38 cmp (%rax),%rdi + 41cb38: 0f 85 86 03 00 00 jne 41cec4 <_int_realloc+0x464> + 41cb3e: 4d 8b 77 10 mov 0x10(%r15),%r14 + 41cb42: 49 8b 47 18 mov 0x18(%r15),%rax + 41cb46: 4d 3b 7e 18 cmp 0x18(%r14),%r15 + 41cb4a: 0f 85 d0 02 00 00 jne 41ce20 <_int_realloc+0x3c0> + 41cb50: 4c 3b 78 10 cmp 0x10(%rax),%r15 + 41cb54: 0f 85 c6 02 00 00 jne 41ce20 <_int_realloc+0x3c0> + 41cb5a: 49 81 7f 08 ff 03 00 cmpq $0x3ff,0x8(%r15) + 41cb61: 00 + 41cb62: 49 89 46 18 mov %rax,0x18(%r14) + 41cb66: 4c 89 70 10 mov %r14,0x10(%rax) + 41cb6a: 76 44 jbe 41cbb0 <_int_realloc+0x150> + 41cb6c: 49 8b 47 20 mov 0x20(%r15),%rax + 41cb70: 48 85 c0 test %rax,%rax + 41cb73: 74 3b je 41cbb0 <_int_realloc+0x150> + 41cb75: 4c 3b 78 28 cmp 0x28(%rax),%r15 + 41cb79: 0f 85 4d 05 00 00 jne 41d0cc <_int_realloc+0x66c> + 41cb7f: 49 8b 57 28 mov 0x28(%r15),%rdx + 41cb83: 4c 3b 7a 20 cmp 0x20(%rdx),%r15 + 41cb87: 0f 85 3f 05 00 00 jne 41d0cc <_int_realloc+0x66c> + 41cb8d: 49 83 7e 20 00 cmpq $0x0,0x20(%r14) + 41cb92: 0f 84 5b 05 00 00 je 41d0f3 <_int_realloc+0x693> + 41cb98: 49 8b 57 28 mov 0x28(%r15),%rdx + 41cb9c: 48 89 50 28 mov %rdx,0x28(%rax) + 41cba0: 49 8b 57 28 mov 0x28(%r15),%rdx + 41cba4: 48 89 42 20 mov %rax,0x20(%rdx) + 41cba8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41cbaf: 00 + 41cbb0: 48 8b 4b 08 mov 0x8(%rbx),%rcx + 41cbb4: 4c 89 ca mov %r9,%rdx + 41cbb7: e9 0d ff ff ff jmpq 41cac9 <_int_realloc+0x69> + 41cbbc: 0f 1f 40 00 nopl 0x0(%rax) + 41cbc0: 49 8d 75 f1 lea -0xf(%r13),%rsi + 41cbc4: 48 89 ef mov %rbp,%rdi + 41cbc7: 48 89 14 24 mov %rdx,(%rsp) + 41cbcb: e8 70 e9 ff ff callq 41b540 <_int_malloc> + 41cbd0: 48 85 c0 test %rax,%rax + 41cbd3: 49 89 c6 mov %rax,%r14 + 41cbd6: 0f 84 ef 00 00 00 je 41cccb <_int_realloc+0x26b> + 41cbdc: 48 8d 40 f0 lea -0x10(%rax),%rax + 41cbe0: 48 8b 14 24 mov (%rsp),%rdx + 41cbe4: 49 39 c7 cmp %rax,%r15 + 41cbe7: 0f 84 0b 02 00 00 je 41cdf8 <_int_realloc+0x398> + 41cbed: 48 83 ea 08 sub $0x8,%rdx + 41cbf1: 48 89 d0 mov %rdx,%rax + 41cbf4: 48 c1 e8 03 shr $0x3,%rax + 41cbf8: 83 f8 02 cmp $0x2,%eax + 41cbfb: 0f 86 4a 05 00 00 jbe 41d14b <_int_realloc+0x6eb> + 41cc01: 83 f8 09 cmp $0x9,%eax + 41cc04: 0f 87 d6 01 00 00 ja 41cde0 <_int_realloc+0x380> + 41cc0a: 48 8b 53 10 mov 0x10(%rbx),%rdx + 41cc0e: 83 f8 04 cmp $0x4,%eax + 41cc11: 49 89 16 mov %rdx,(%r14) + 41cc14: 48 8b 53 18 mov 0x18(%rbx),%rdx + 41cc18: 49 89 56 08 mov %rdx,0x8(%r14) + 41cc1c: 48 8b 53 20 mov 0x20(%rbx),%rdx + 41cc20: 49 89 56 10 mov %rdx,0x10(%r14) + 41cc24: 76 3a jbe 41cc60 <_int_realloc+0x200> + 41cc26: 48 8b 53 28 mov 0x28(%rbx),%rdx + 41cc2a: 83 f8 06 cmp $0x6,%eax + 41cc2d: 49 89 56 18 mov %rdx,0x18(%r14) + 41cc31: 48 8b 53 30 mov 0x30(%rbx),%rdx + 41cc35: 49 89 56 20 mov %rdx,0x20(%r14) + 41cc39: 76 25 jbe 41cc60 <_int_realloc+0x200> + 41cc3b: 48 8b 53 38 mov 0x38(%rbx),%rdx + 41cc3f: 83 f8 09 cmp $0x9,%eax + 41cc42: 49 89 56 28 mov %rdx,0x28(%r14) + 41cc46: 48 8b 53 40 mov 0x40(%rbx),%rdx + 41cc4a: 49 89 56 30 mov %rdx,0x30(%r14) + 41cc4e: 75 10 jne 41cc60 <_int_realloc+0x200> + 41cc50: 48 8b 43 48 mov 0x48(%rbx),%rax + 41cc54: 49 89 46 38 mov %rax,0x38(%r14) + 41cc58: 48 8b 43 50 mov 0x50(%rbx),%rax + 41cc5c: 49 89 46 40 mov %rax,0x40(%r14) + 41cc60: 48 89 de mov %rbx,%rsi + 41cc63: 48 89 ef mov %rbp,%rdi + 41cc66: ba 01 00 00 00 mov $0x1,%edx + 41cc6b: e8 50 cb ff ff callq 4197c0 <_int_free> + 41cc70: 48 83 c4 48 add $0x48,%rsp + 41cc74: 4c 89 f0 mov %r14,%rax + 41cc77: 5b pop %rbx + 41cc78: 5d pop %rbp + 41cc79: 41 5c pop %r12 + 41cc7b: 41 5d pop %r13 + 41cc7d: 41 5e pop %r14 + 41cc7f: 41 5f pop %r15 + 41cc81: c3 retq + 41cc82: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41cc88: 48 85 ed test %rbp,%rbp + 41cc8b: 48 8d 7e 10 lea 0x10(%rsi),%rdi + 41cc8f: 44 8b 25 da da 2a 00 mov 0x2adada(%rip),%r12d # 6ca770 + 41cc96: 41 bd 67 21 4a 00 mov $0x4a2167,%r13d + 41cc9c: 0f 85 9f 00 00 00 jne 41cd41 <_int_realloc+0x2e1> + 41cca2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41cca8: 44 89 e2 mov %r12d,%edx + 41ccab: 83 e2 05 and $0x5,%edx + 41ccae: 83 fa 05 cmp $0x5,%edx + 41ccb1: 0f 84 f1 01 00 00 je 41cea8 <_int_realloc+0x448> + 41ccb7: 41 f6 c4 01 test $0x1,%r12b + 41ccbb: 0f 85 8f 00 00 00 jne 41cd50 <_int_realloc+0x2f0> + 41ccc1: 41 83 e4 02 and $0x2,%r12d + 41ccc5: 0f 85 83 01 00 00 jne 41ce4e <_int_realloc+0x3ee> + 41cccb: 48 83 c4 48 add $0x48,%rsp + 41cccf: 31 c0 xor %eax,%eax + 41ccd1: 5b pop %rbx + 41ccd2: 5d pop %rbp + 41ccd3: 41 5c pop %r12 + 41ccd5: 41 5d pop %r13 + 41ccd7: 41 5e pop %r14 + 41ccd9: 41 5f pop %r15 + 41ccdb: c3 retq + 41ccdc: 0f 1f 40 00 nopl 0x0(%rax) + 41cce0: 83 e1 07 and $0x7,%ecx + 41cce3: 48 81 fd 00 a8 6c 00 cmp $0x6ca800,%rbp + 41ccea: 4a 8d 34 2b lea (%rbx,%r13,1),%rsi + 41ccee: 0f 84 24 01 00 00 je 41ce18 <_int_realloc+0x3b8> + 41ccf4: 49 83 cd 04 or $0x4,%r13 + 41ccf8: 41 bc 04 00 00 00 mov $0x4,%r12d + 41ccfe: 4c 09 e9 or %r13,%rcx + 41cd01: 48 89 4b 08 mov %rcx,0x8(%rbx) + 41cd05: 48 89 c1 mov %rax,%rcx + 41cd08: ba 01 00 00 00 mov $0x1,%edx + 41cd0d: 48 83 c9 01 or $0x1,%rcx + 41cd11: 48 89 ef mov %rbp,%rdi + 41cd14: 4c 09 e1 or %r12,%rcx + 41cd17: 48 89 4e 08 mov %rcx,0x8(%rsi) + 41cd1b: 48 83 4c 06 08 01 orq $0x1,0x8(%rsi,%rax,1) + 41cd21: e8 9a ca ff ff callq 4197c0 <_int_free> + 41cd26: e9 d1 fd ff ff jmpq 41cafc <_int_realloc+0x9c> + 41cd2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41cd30: 41 bd 67 21 4a 00 mov $0x4a2167,%r13d + 41cd36: 44 8b 25 33 da 2a 00 mov 0x2ada33(%rip),%r12d # 6ca770 + 41cd3d: 48 8d 7b 10 lea 0x10(%rbx),%rdi + 41cd41: 83 4d 04 04 orl $0x4,0x4(%rbp) + 41cd45: e9 5e ff ff ff jmpq 41cca8 <_int_realloc+0x248> + 41cd4a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41cd50: 48 8d 6c 24 20 lea 0x20(%rsp),%rbp + 41cd55: 48 8d 74 24 30 lea 0x30(%rsp),%rsi + 41cd5a: 31 c9 xor %ecx,%ecx + 41cd5c: ba 10 00 00 00 mov $0x10,%edx + 41cd61: c6 44 24 30 00 movb $0x0,0x30(%rsp) + 41cd66: e8 45 51 03 00 callq 451eb0 <_itoa_word> + 41cd6b: 48 39 e8 cmp %rbp,%rax + 41cd6e: 48 89 c3 mov %rax,%rbx + 41cd71: 76 25 jbe 41cd98 <_int_realloc+0x338> + 41cd73: 48 89 c2 mov %rax,%rdx + 41cd76: 48 89 c7 mov %rax,%rdi + 41cd79: be 30 00 00 00 mov $0x30,%esi + 41cd7e: 48 29 ea sub %rbp,%rdx + 41cd81: 4c 8d 70 ff lea -0x1(%rax),%r14 + 41cd85: 48 29 d7 sub %rdx,%rdi + 41cd88: e8 c3 35 fe ff callq 400350 <__rela_iplt_end+0x88> + 41cd8d: 48 8d 44 24 1f lea 0x1f(%rsp),%rax + 41cd92: 4c 29 f0 sub %r14,%rax + 41cd95: 48 01 c3 add %rax,%rbx + 41cd98: 48 8b 05 21 05 2b 00 mov 0x2b0521(%rip),%rax # 6cd2c0 <__libc_argv> + 41cd9f: ba 38 20 4a 00 mov $0x4a2038,%edx + 41cda4: 44 89 e7 mov %r12d,%edi + 41cda7: 49 89 d8 mov %rbx,%r8 + 41cdaa: 4c 89 e9 mov %r13,%rcx + 41cdad: be a8 23 4a 00 mov $0x4a23a8,%esi + 41cdb2: 48 8b 00 mov (%rax),%rax + 41cdb5: 48 85 c0 test %rax,%rax + 41cdb8: 48 0f 45 d0 cmovne %rax,%rdx + 41cdbc: 31 c0 xor %eax,%eax + 41cdbe: 83 e7 02 and $0x2,%edi + 41cdc1: e8 fa 47 ff ff callq 4115c0 <__libc_message> + 41cdc6: 31 c0 xor %eax,%eax + 41cdc8: e9 33 fd ff ff jmpq 41cb00 <_int_realloc+0xa0> + 41cdcd: 0f 1f 00 nopl (%rax) + 41cdd0: 41 bd 83 21 4a 00 mov $0x4a2183,%r13d + 41cdd6: e9 5b ff ff ff jmpq 41cd36 <_int_realloc+0x2d6> + 41cddb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41cde0: 48 8d 73 10 lea 0x10(%rbx),%rsi + 41cde4: 4c 89 f7 mov %r14,%rdi + 41cde7: e8 34 f2 00 00 callq 42c020 + 41cdec: e9 6f fe ff ff jmpq 41cc60 <_int_realloc+0x200> + 41cdf1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41cdf8: 49 8b 46 f8 mov -0x8(%r14),%rax + 41cdfc: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 41ce00: 48 01 c2 add %rax,%rdx + 41ce03: 49 39 d5 cmp %rdx,%r13 + 41ce06: 0f 87 26 03 00 00 ja 41d132 <_int_realloc+0x6d2> + 41ce0c: 48 8b 4b 08 mov 0x8(%rbx),%rcx + 41ce10: e9 b4 fc ff ff jmpq 41cac9 <_int_realloc+0x69> + 41ce15: 0f 1f 00 nopl (%rax) + 41ce18: 4c 09 e9 or %r13,%rcx + 41ce1b: e9 e1 fe ff ff jmpq 41cd01 <_int_realloc+0x2a1> + 41ce20: 44 8b 15 49 d9 2a 00 mov 0x2ad949(%rip),%r10d # 6ca770 + 41ce27: 83 4d 04 04 orl $0x4,0x4(%rbp) + 41ce2b: 44 89 d0 mov %r10d,%eax + 41ce2e: 83 e0 05 and $0x5,%eax + 41ce31: 83 f8 05 cmp $0x5,%eax + 41ce34: 0f 84 4a 02 00 00 je 41d084 <_int_realloc+0x624> + 41ce3a: 41 f6 c2 01 test $0x1,%r10b + 41ce3e: 0f 85 d3 00 00 00 jne 41cf17 <_int_realloc+0x4b7> + 41ce44: 41 83 e2 02 and $0x2,%r10d + 41ce48: 0f 84 62 fd ff ff je 41cbb0 <_int_realloc+0x150> + 41ce4e: e8 ad 0d ff ff callq 40dc00 + 41ce53: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41ce58: 49 8d 45 20 lea 0x20(%r13),%rax + 41ce5c: 48 01 d7 add %rdx,%rdi + 41ce5f: 48 39 c7 cmp %rax,%rdi + 41ce62: 0f 82 58 fd ff ff jb 41cbc0 <_int_realloc+0x160> + 41ce68: 83 e1 07 and $0x7,%ecx + 41ce6b: b8 04 00 00 00 mov $0x4,%eax + 41ce70: 48 81 fd 00 a8 6c 00 cmp $0x6ca800,%rbp + 41ce77: 48 89 ca mov %rcx,%rdx + 41ce7a: 4c 0f 45 e0 cmovne %rax,%r12 + 41ce7e: 4a 8d 04 2b lea (%rbx,%r13,1),%rax + 41ce82: 4c 09 ea or %r13,%rdx + 41ce85: 4c 29 ef sub %r13,%rdi + 41ce88: 4c 09 e2 or %r12,%rdx + 41ce8b: 48 83 cf 01 or $0x1,%rdi + 41ce8f: 48 89 53 08 mov %rdx,0x8(%rbx) + 41ce93: 48 89 45 58 mov %rax,0x58(%rbp) + 41ce97: 48 89 78 08 mov %rdi,0x8(%rax) + 41ce9b: 48 8d 43 10 lea 0x10(%rbx),%rax + 41ce9f: e9 5c fc ff ff jmpq 41cb00 <_int_realloc+0xa0> + 41cea4: 0f 1f 40 00 nopl 0x0(%rax) + 41cea8: 44 89 e7 mov %r12d,%edi + 41ceab: 31 c0 xor %eax,%eax + 41cead: 4c 89 ea mov %r13,%rdx + 41ceb0: 83 e7 02 and $0x2,%edi + 41ceb3: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41ceb8: e8 03 47 ff ff callq 4115c0 <__libc_message> + 41cebd: 31 c0 xor %eax,%eax + 41cebf: e9 3c fc ff ff jmpq 41cb00 <_int_realloc+0xa0> + 41cec4: 44 8b 15 a5 d8 2a 00 mov 0x2ad8a5(%rip),%r10d # 6ca770 + 41cecb: 83 4d 04 04 orl $0x4,0x4(%rbp) + 41cecf: 44 89 d0 mov %r10d,%eax + 41ced2: 83 e0 05 and $0x5,%eax + 41ced5: 83 f8 05 cmp $0x5,%eax + 41ced8: 0f 84 ca 01 00 00 je 41d0a8 <_int_realloc+0x648> + 41cede: 41 f6 c2 01 test $0x1,%r10b + 41cee2: 0f 85 e2 00 00 00 jne 41cfca <_int_realloc+0x56a> + 41cee8: 41 f6 c2 02 test $0x2,%r10b + 41ceec: 0f 85 5c ff ff ff jne 41ce4e <_int_realloc+0x3ee> + 41cef2: 4d 8b 77 10 mov 0x10(%r15),%r14 + 41cef6: 49 8b 47 18 mov 0x18(%r15),%rax + 41cefa: 4d 3b 7e 18 cmp 0x18(%r14),%r15 + 41cefe: 0f 85 40 ff ff ff jne 41ce44 <_int_realloc+0x3e4> + 41cf04: 4c 3b 78 10 cmp 0x10(%rax),%r15 + 41cf08: 0f 84 4c fc ff ff je 41cb5a <_int_realloc+0xfa> + 41cf0e: 83 4d 04 04 orl $0x4,0x4(%rbp) + 41cf12: e9 23 ff ff ff jmpq 41ce3a <_int_realloc+0x3da> + 41cf17: 4c 8d 74 24 20 lea 0x20(%rsp),%r14 + 41cf1c: 48 8d 74 24 30 lea 0x30(%rsp),%rsi + 41cf21: 31 c9 xor %ecx,%ecx + 41cf23: 4c 89 ff mov %r15,%rdi + 41cf26: ba 10 00 00 00 mov $0x10,%edx + 41cf2b: 44 89 54 24 08 mov %r10d,0x8(%rsp) + 41cf30: 4c 89 0c 24 mov %r9,(%rsp) + 41cf34: c6 44 24 30 00 movb $0x0,0x30(%rsp) + 41cf39: e8 72 4f 03 00 callq 451eb0 <_itoa_word> + 41cf3e: 4c 39 f0 cmp %r14,%rax + 41cf41: 49 89 c7 mov %rax,%r15 + 41cf44: 4c 8b 0c 24 mov (%rsp),%r9 + 41cf48: 44 8b 54 24 08 mov 0x8(%rsp),%r10d + 41cf4d: 76 3e jbe 41cf8d <_int_realloc+0x52d> + 41cf4f: 4c 89 fa mov %r15,%rdx + 41cf52: 48 8d 40 ff lea -0x1(%rax),%rax + 41cf56: 4c 89 ff mov %r15,%rdi + 41cf59: 4c 29 f2 sub %r14,%rdx + 41cf5c: be 30 00 00 00 mov $0x30,%esi + 41cf61: 44 89 54 24 10 mov %r10d,0x10(%rsp) + 41cf66: 48 29 d7 sub %rdx,%rdi + 41cf69: 4c 89 4c 24 08 mov %r9,0x8(%rsp) + 41cf6e: 48 89 04 24 mov %rax,(%rsp) + 41cf72: e8 d9 33 fe ff callq 400350 <__rela_iplt_end+0x88> + 41cf77: 48 8d 44 24 1f lea 0x1f(%rsp),%rax + 41cf7c: 48 2b 04 24 sub (%rsp),%rax + 41cf80: 44 8b 54 24 10 mov 0x10(%rsp),%r10d + 41cf85: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 + 41cf8a: 49 01 c7 add %rax,%r15 + 41cf8d: 48 8b 05 2c 03 2b 00 mov 0x2b032c(%rip),%rax # 6cd2c0 <__libc_argv> + 41cf94: 44 89 d7 mov %r10d,%edi + 41cf97: ba 38 20 4a 00 mov $0x4a2038,%edx + 41cf9c: 4d 89 f8 mov %r15,%r8 + 41cf9f: b9 95 20 4a 00 mov $0x4a2095,%ecx + 41cfa4: be a8 23 4a 00 mov $0x4a23a8,%esi + 41cfa9: 4c 89 0c 24 mov %r9,(%rsp) + 41cfad: 48 8b 00 mov (%rax),%rax + 41cfb0: 48 85 c0 test %rax,%rax + 41cfb3: 48 0f 45 d0 cmovne %rax,%rdx + 41cfb7: 83 e7 02 and $0x2,%edi + 41cfba: 31 c0 xor %eax,%eax + 41cfbc: e8 ff 45 ff ff callq 4115c0 <__libc_message> + 41cfc1: 4c 8b 0c 24 mov (%rsp),%r9 + 41cfc5: e9 e6 fb ff ff jmpq 41cbb0 <_int_realloc+0x150> + 41cfca: 4c 8d 74 24 20 lea 0x20(%rsp),%r14 + 41cfcf: 48 8d 74 24 30 lea 0x30(%rsp),%rsi + 41cfd4: 31 c9 xor %ecx,%ecx + 41cfd6: ba 10 00 00 00 mov $0x10,%edx + 41cfdb: 4c 89 ff mov %r15,%rdi + 41cfde: 44 89 54 24 08 mov %r10d,0x8(%rsp) + 41cfe3: 4c 89 0c 24 mov %r9,(%rsp) + 41cfe7: c6 44 24 30 00 movb $0x0,0x30(%rsp) + 41cfec: e8 bf 4e 03 00 callq 451eb0 <_itoa_word> + 41cff1: 4c 39 f0 cmp %r14,%rax + 41cff4: 49 89 c0 mov %rax,%r8 + 41cff7: 4c 8b 0c 24 mov (%rsp),%r9 + 41cffb: 44 8b 54 24 08 mov 0x8(%rsp),%r10d + 41d000: 76 48 jbe 41d04a <_int_realloc+0x5ea> + 41d002: 4c 89 c2 mov %r8,%rdx + 41d005: 4c 89 c7 mov %r8,%rdi + 41d008: 48 8d 40 ff lea -0x1(%rax),%rax + 41d00c: 4c 29 f2 sub %r14,%rdx + 41d00f: be 30 00 00 00 mov $0x30,%esi + 41d014: 44 89 54 24 1c mov %r10d,0x1c(%rsp) + 41d019: 48 29 d7 sub %rdx,%rdi + 41d01c: 4c 89 4c 24 10 mov %r9,0x10(%rsp) + 41d021: 4c 89 44 24 08 mov %r8,0x8(%rsp) + 41d026: 48 89 04 24 mov %rax,(%rsp) + 41d02a: e8 21 33 fe ff callq 400350 <__rela_iplt_end+0x88> + 41d02f: 48 8d 44 24 1f lea 0x1f(%rsp),%rax + 41d034: 48 2b 04 24 sub (%rsp),%rax + 41d038: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 + 41d03d: 44 8b 54 24 1c mov 0x1c(%rsp),%r10d + 41d042: 4c 8b 4c 24 10 mov 0x10(%rsp),%r9 + 41d047: 49 01 c0 add %rax,%r8 + 41d04a: 48 8b 05 6f 02 2b 00 mov 0x2b026f(%rip),%rax # 6cd2c0 <__libc_argv> + 41d051: 44 89 d7 mov %r10d,%edi + 41d054: ba 38 20 4a 00 mov $0x4a2038,%edx + 41d059: b9 78 20 4a 00 mov $0x4a2078,%ecx + 41d05e: be a8 23 4a 00 mov $0x4a23a8,%esi + 41d063: 4c 89 0c 24 mov %r9,(%rsp) + 41d067: 48 8b 00 mov (%rax),%rax + 41d06a: 48 85 c0 test %rax,%rax + 41d06d: 48 0f 45 d0 cmovne %rax,%rdx + 41d071: 83 e7 02 and $0x2,%edi + 41d074: 31 c0 xor %eax,%eax + 41d076: e8 45 45 ff ff callq 4115c0 <__libc_message> + 41d07b: 4c 8b 0c 24 mov (%rsp),%r9 + 41d07f: e9 ba fa ff ff jmpq 41cb3e <_int_realloc+0xde> + 41d084: 44 89 d7 mov %r10d,%edi + 41d087: ba 95 20 4a 00 mov $0x4a2095,%edx + 41d08c: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41d091: 83 e7 02 and $0x2,%edi + 41d094: 31 c0 xor %eax,%eax + 41d096: 4c 89 0c 24 mov %r9,(%rsp) + 41d09a: e8 21 45 ff ff callq 4115c0 <__libc_message> + 41d09f: 4c 8b 0c 24 mov (%rsp),%r9 + 41d0a3: e9 08 fb ff ff jmpq 41cbb0 <_int_realloc+0x150> + 41d0a8: 44 89 d7 mov %r10d,%edi + 41d0ab: ba 78 20 4a 00 mov $0x4a2078,%edx + 41d0b0: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41d0b5: 83 e7 02 and $0x2,%edi + 41d0b8: 31 c0 xor %eax,%eax + 41d0ba: 4c 89 0c 24 mov %r9,(%rsp) + 41d0be: e8 fd 44 ff ff callq 4115c0 <__libc_message> + 41d0c3: 4c 8b 0c 24 mov (%rsp),%r9 + 41d0c7: e9 72 fa ff ff jmpq 41cb3e <_int_realloc+0xde> + 41d0cc: 8b 3d 9e d6 2a 00 mov 0x2ad69e(%rip),%edi # 6ca770 + 41d0d2: 48 89 e9 mov %rbp,%rcx + 41d0d5: 4c 89 fa mov %r15,%rdx + 41d0d8: be f0 23 4a 00 mov $0x4a23f0,%esi + 41d0dd: 4c 89 0c 24 mov %r9,(%rsp) + 41d0e1: e8 ca a1 ff ff callq 4172b0 + 41d0e6: 49 8b 47 20 mov 0x20(%r15),%rax + 41d0ea: 4c 8b 0c 24 mov (%rsp),%r9 + 41d0ee: e9 9a fa ff ff jmpq 41cb8d <_int_realloc+0x12d> + 41d0f3: 49 39 c7 cmp %rax,%r15 + 41d0f6: 74 6c je 41d164 <_int_realloc+0x704> + 41d0f8: 49 89 46 20 mov %rax,0x20(%r14) + 41d0fc: 49 8b 47 28 mov 0x28(%r15),%rax + 41d100: 49 89 46 28 mov %rax,0x28(%r14) + 41d104: 49 8b 47 20 mov 0x20(%r15),%rax + 41d108: 4c 89 70 28 mov %r14,0x28(%rax) + 41d10c: 49 8b 47 28 mov 0x28(%r15),%rax + 41d110: 4c 89 70 20 mov %r14,0x20(%rax) + 41d114: e9 97 fa ff ff jmpq 41cbb0 <_int_realloc+0x150> + 41d119: b9 58 2e 4a 00 mov $0x4a2e58,%ecx + 41d11e: ba a3 10 00 00 mov $0x10a3,%edx + 41d123: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41d128: bf a0 21 4a 00 mov $0x4a21a0,%edi + 41d12d: e8 ee 9c ff ff callq 416e20 <__malloc_assert> + 41d132: b9 58 2e 4a 00 mov $0x4a2e58,%ecx + 41d137: ba 0f 11 00 00 mov $0x110f,%edx + 41d13c: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41d141: bf 20 29 4a 00 mov $0x4a2920,%edi + 41d146: e8 d5 9c ff ff callq 416e20 <__malloc_assert> + 41d14b: b9 58 2e 4a 00 mov $0x4a2e58,%ecx + 41d150: ba eb 10 00 00 mov $0x10eb,%edx + 41d155: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41d15a: bf b9 21 4a 00 mov $0x4a21b9,%edi + 41d15f: e8 bc 9c ff ff callq 416e20 <__malloc_assert> + 41d164: 4d 89 76 28 mov %r14,0x28(%r14) + 41d168: 4d 89 76 20 mov %r14,0x20(%r14) + 41d16c: e9 3f fa ff ff jmpq 41cbb0 <_int_realloc+0x150> + 41d171: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41d176: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41d17d: 00 00 00 + +000000000041d180 : + 41d180: 41 57 push %r15 + 41d182: 41 56 push %r14 + 41d184: 41 55 push %r13 + 41d186: 41 54 push %r12 + 41d188: 55 push %rbp + 41d189: 53 push %rbx + 41d18a: 48 83 ec 48 sub $0x48,%rsp + 41d18e: 48 83 fe ff cmp $0xffffffffffffffff,%rsi + 41d192: 0f 84 98 04 00 00 je 41d630 + 41d198: 48 85 ff test %rdi,%rdi + 41d19b: 48 89 fd mov %rdi,%rbp + 41d19e: 48 89 f3 mov %rsi,%rbx + 41d1a1: 0f 84 49 05 00 00 je 41d6f0 + 41d1a7: 48 85 f6 test %rsi,%rsi + 41d1aa: 0f 84 b0 04 00 00 je 41d660 + 41d1b0: be 01 00 00 00 mov $0x1,%esi + 41d1b5: 31 c0 xor %eax,%eax + 41d1b7: 83 3d fe ff 2a 00 00 cmpl $0x0,0x2afffe(%rip) # 6cd1bc <__libc_multiple_threads> + 41d1be: 74 0c je 41d1cc + 41d1c0: f0 0f b1 35 38 d6 2a lock cmpxchg %esi,0x2ad638(%rip) # 6ca800 + 41d1c7: 00 + 41d1c8: 75 0b jne 41d1d5 + 41d1ca: eb 23 jmp 41d1ef + 41d1cc: 0f b1 35 2d d6 2a 00 cmpxchg %esi,0x2ad62d(%rip) # 6ca800 + 41d1d3: 74 1a je 41d1ef + 41d1d5: 48 8d 3d 24 d6 2a 00 lea 0x2ad624(%rip),%rdi # 6ca800 + 41d1dc: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41d1e3: e8 e8 53 02 00 callq 4425d0 <__lll_lock_wait_private> + 41d1e8: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41d1ef: 40 f6 c5 0f test $0xf,%bpl + 41d1f3: 0f 85 37 01 00 00 jne 41d330 + 41d1f9: 48 8d 7d f0 lea -0x10(%rbp),%rdi + 41d1fd: 48 8b 45 f8 mov -0x8(%rbp),%rax + 41d201: 48 89 fe mov %rdi,%rsi + 41d204: 48 89 f9 mov %rdi,%rcx + 41d207: 48 c1 e9 0b shr $0xb,%rcx + 41d20b: 48 c1 ee 03 shr $0x3,%rsi + 41d20f: 48 89 c2 mov %rax,%rdx + 41d212: 31 ce xor %ecx,%esi + 41d214: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx + 41d218: b9 02 00 00 00 mov $0x2,%ecx + 41d21d: 40 80 fe 01 cmp $0x1,%sil + 41d221: 0f 44 f1 cmove %ecx,%esi + 41d224: a8 02 test $0x2,%al + 41d226: 0f 84 d4 02 00 00 je 41d500 + 41d22c: 48 8b 05 4d df 2a 00 mov 0x2adf4d(%rip),%rax # 6cb180 <_dl_pagesize> + 41d233: 48 8d 48 ff lea -0x1(%rax),%rcx + 41d237: 48 89 e8 mov %rbp,%rax + 41d23a: 48 21 c8 and %rcx,%rax + 41d23d: 4c 8d 40 f0 lea -0x10(%rax),%r8 + 41d241: 49 f7 c0 ef ff ff ff test $0xffffffffffffffef,%r8 + 41d248: 74 36 je 41d280 + 41d24a: 4c 8d 40 ff lea -0x1(%rax),%r8 + 41d24e: 49 81 f8 fe 1f 00 00 cmp $0x1ffe,%r8 + 41d255: 77 29 ja 41d280 + 41d257: 4c 8d 40 c0 lea -0x40(%rax),%r8 + 41d25b: 49 f7 c0 bf ff ff ff test $0xffffffffffffffbf,%r8 + 41d262: 74 1c je 41d280 + 41d264: 4c 8d 80 00 ff ff ff lea -0x100(%rax),%r8 + 41d26b: 49 f7 c0 ff fe ff ff test $0xfffffffffffffeff,%r8 + 41d272: 0f 85 90 00 00 00 jne 41d308 + 41d278: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41d27f: 00 + 41d280: 48 8b 45 f8 mov -0x8(%rbp),%rax + 41d284: 45 31 ed xor %r13d,%r13d + 41d287: 83 e0 03 and $0x3,%eax + 41d28a: 48 83 f8 02 cmp $0x2,%rax + 41d28e: 0f 85 9f 00 00 00 jne 41d333 + 41d294: 48 8b 45 f0 mov -0x10(%rbp),%rax + 41d298: 49 89 f8 mov %rdi,%r8 + 41d29b: 49 29 c0 sub %rax,%r8 + 41d29e: 48 01 d0 add %rdx,%rax + 41d2a1: 4c 09 c0 or %r8,%rax + 41d2a4: 48 85 c8 test %rcx,%rax + 41d2a7: 0f 85 86 00 00 00 jne 41d333 + 41d2ad: 48 83 ea 01 sub $0x1,%rdx + 41d2b1: 40 0f b6 f6 movzbl %sil,%esi + 41d2b5: 4c 8d 04 17 lea (%rdi,%rdx,1),%r8 + 41d2b9: 41 0f b6 00 movzbl (%r8),%eax + 41d2bd: 48 39 f0 cmp %rsi,%rax + 41d2c0: 48 89 c1 mov %rax,%rcx + 41d2c3: 74 34 je 41d2f9 + 41d2c5: 48 85 c0 test %rax,%rax + 41d2c8: 74 69 je 41d333 + 41d2ca: 48 8d 48 10 lea 0x10(%rax),%rcx + 41d2ce: 48 39 ca cmp %rcx,%rdx + 41d2d1: 73 13 jae 41d2e6 + 41d2d3: eb 5e jmp 41d333 + 41d2d5: 0f 1f 00 nopl (%rax) + 41d2d8: 48 85 c0 test %rax,%rax + 41d2db: 74 53 je 41d330 + 41d2dd: 48 8d 48 10 lea 0x10(%rax),%rcx + 41d2e1: 48 39 d1 cmp %rdx,%rcx + 41d2e4: 77 4a ja 41d330 + 41d2e6: 48 29 c2 sub %rax,%rdx + 41d2e9: 4c 8d 04 17 lea (%rdi,%rdx,1),%r8 + 41d2ed: 41 0f b6 00 movzbl (%r8),%eax + 41d2f1: 48 39 f0 cmp %rsi,%rax + 41d2f4: 48 89 c1 mov %rax,%rcx + 41d2f7: 75 df jne 41d2d8 + 41d2f9: f7 d1 not %ecx + 41d2fb: 4c 89 44 24 18 mov %r8,0x18(%rsp) + 41d300: 49 89 fd mov %rdi,%r13 + 41d303: 41 88 08 mov %cl,(%r8) + 41d306: eb 2b jmp 41d333 + 41d308: 4c 8d 80 00 fc ff ff lea -0x400(%rax),%r8 + 41d30f: 49 f7 c0 ff fb ff ff test $0xfffffffffffffbff,%r8 + 41d316: 0f 84 64 ff ff ff je 41d280 + 41d31c: 48 3d 00 10 00 00 cmp $0x1000,%rax + 41d322: 0f 84 58 ff ff ff je 41d280 + 41d328: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41d32f: 00 + 41d330: 45 31 ed xor %r13d,%r13d + 41d333: 83 3d 82 fe 2a 00 00 cmpl $0x0,0x2afe82(%rip) # 6cd1bc <__libc_multiple_threads> + 41d33a: 74 0b je 41d347 + 41d33c: f0 ff 0d bd d4 2a 00 lock decl 0x2ad4bd(%rip) # 6ca800 + 41d343: 75 0a jne 41d34f + 41d345: eb 22 jmp 41d369 + 41d347: ff 0d b3 d4 2a 00 decl 0x2ad4b3(%rip) # 6ca800 + 41d34d: 74 1a je 41d369 + 41d34f: 48 8d 3d aa d4 2a 00 lea 0x2ad4aa(%rip),%rdi # 6ca800 + 41d356: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41d35d: e8 9e 52 02 00 callq 442600 <__lll_unlock_wake_private> + 41d362: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41d369: 4d 85 ed test %r13,%r13 + 41d36c: 0f 84 06 04 00 00 je 41d778 + 41d372: 4d 8b 75 08 mov 0x8(%r13),%r14 + 41d376: 4c 8d 4b 01 lea 0x1(%rbx),%r9 + 41d37a: 4c 89 4c 24 08 mov %r9,0x8(%rsp) + 41d37f: 49 83 e6 f8 and $0xfffffffffffffff8,%r14 + 41d383: 49 83 f9 bf cmp $0xffffffffffffffbf,%r9 + 41d387: 0f 87 a3 02 00 00 ja 41d630 + 41d38d: 4c 8d 7b 18 lea 0x18(%rbx),%r15 + 41d391: 41 bc 20 00 00 00 mov $0x20,%r12d + 41d397: be 01 00 00 00 mov $0x1,%esi + 41d39c: 4d 89 e2 mov %r12,%r10 + 41d39f: 4c 89 fa mov %r15,%rdx + 41d3a2: 48 83 e2 f0 and $0xfffffffffffffff0,%rdx + 41d3a6: 49 83 ff 20 cmp $0x20,%r15 + 41d3aa: 4c 0f 43 d2 cmovae %rdx,%r10 + 41d3ae: 31 c0 xor %eax,%eax + 41d3b0: 83 3d 05 fe 2a 00 00 cmpl $0x0,0x2afe05(%rip) # 6cd1bc <__libc_multiple_threads> + 41d3b7: 74 0c je 41d3c5 + 41d3b9: f0 0f b1 35 3f d4 2a lock cmpxchg %esi,0x2ad43f(%rip) # 6ca800 + 41d3c0: 00 + 41d3c1: 75 0b jne 41d3ce + 41d3c3: eb 23 jmp 41d3e8 + 41d3c5: 0f b1 35 34 d4 2a 00 cmpxchg %esi,0x2ad434(%rip) # 6ca800 + 41d3cc: 74 1a je 41d3e8 + 41d3ce: 48 8d 3d 2b d4 2a 00 lea 0x2ad42b(%rip),%rdi # 6ca800 + 41d3d5: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41d3dc: e8 ef 51 02 00 callq 4425d0 <__lll_lock_wait_private> + 41d3e1: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41d3e8: 41 f6 45 08 02 testb $0x2,0x8(%r13) + 41d3ed: 0f 85 dd 01 00 00 jne 41d5d0 + 41d3f3: 48 89 54 24 08 mov %rdx,0x8(%rsp) + 41d3f8: e8 e3 a6 ff ff callq 417ae0 + 41d3fd: 85 c0 test %eax,%eax + 41d3ff: 0f 88 4b 02 00 00 js 41d650 + 41d405: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 41d40a: 49 83 ff 20 cmp $0x20,%r15 + 41d40e: 4c 89 e1 mov %r12,%rcx + 41d411: 4c 89 ee mov %r13,%rsi + 41d414: bf 00 a8 6c 00 mov $0x6ca800,%edi + 41d419: 48 0f 43 ca cmovae %rdx,%rcx + 41d41d: 4c 89 f2 mov %r14,%rdx + 41d420: e8 3b f6 ff ff callq 41ca60 <_int_realloc> + 41d425: 48 89 c5 mov %rax,%rbp + 41d428: 48 85 ed test %rbp,%rbp + 41d42b: 0f 84 1f 02 00 00 je 41d650 + 41d431: 83 3d 84 fd 2a 00 00 cmpl $0x0,0x2afd84(%rip) # 6cd1bc <__libc_multiple_threads> + 41d438: 74 0b je 41d445 + 41d43a: f0 ff 0d bf d3 2a 00 lock decl 0x2ad3bf(%rip) # 6ca800 + 41d441: 75 0a jne 41d44d + 41d443: eb 22 jmp 41d467 + 41d445: ff 0d b5 d3 2a 00 decl 0x2ad3b5(%rip) # 6ca800 + 41d44b: 74 1a je 41d467 + 41d44d: 48 8d 3d ac d3 2a 00 lea 0x2ad3ac(%rip),%rdi # 6ca800 + 41d454: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41d45b: e8 a0 51 02 00 callq 442600 <__lll_unlock_wake_private> + 41d460: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41d467: 48 85 ed test %rbp,%rbp + 41d46a: 0f 84 90 02 00 00 je 41d700 + 41d470: 48 8d 45 f0 lea -0x10(%rbp),%rax + 41d474: be ff 00 00 00 mov $0xff,%esi + 41d479: 49 89 c0 mov %rax,%r8 + 41d47c: 48 c1 e8 0b shr $0xb,%rax + 41d480: 49 c1 e8 03 shr $0x3,%r8 + 41d484: 41 31 c0 xor %eax,%r8d + 41d487: b8 02 00 00 00 mov $0x2,%eax + 41d48c: 41 80 f8 01 cmp $0x1,%r8b + 41d490: 44 0f 44 c0 cmove %eax,%r8d + 41d494: 48 8b 45 f8 mov -0x8(%rbp),%rax + 41d498: 41 0f b6 f8 movzbl %r8b,%edi + 41d49c: 48 89 c2 mov %rax,%rdx + 41d49f: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx + 41d4a3: 48 8d 4a f0 lea -0x10(%rdx),%rcx + 41d4a7: 48 83 ea 08 sub $0x8,%rdx + 41d4ab: a8 02 test $0x2,%al + 41d4ad: 48 0f 44 ca cmove %rdx,%rcx + 41d4b1: 48 83 e9 01 sub $0x1,%rcx + 41d4b5: 48 39 cb cmp %rcx,%rbx + 41d4b8: 73 2e jae 41d4e8 + 41d4ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41d4c0: 48 89 ca mov %rcx,%rdx + 41d4c3: 48 29 da sub %rbx,%rdx + 41d4c6: 48 81 fa ff 00 00 00 cmp $0xff,%rdx + 41d4cd: 48 0f 47 d6 cmova %rsi,%rdx + 41d4d1: 48 8d 42 ff lea -0x1(%rdx),%rax + 41d4d5: 48 39 fa cmp %rdi,%rdx + 41d4d8: 48 0f 44 d0 cmove %rax,%rdx + 41d4dc: 88 54 0d 00 mov %dl,0x0(%rbp,%rcx,1) + 41d4e0: 48 29 d1 sub %rdx,%rcx + 41d4e3: 48 39 cb cmp %rcx,%rbx + 41d4e6: 72 d8 jb 41d4c0 + 41d4e8: 44 88 44 1d 00 mov %r8b,0x0(%rbp,%rbx,1) + 41d4ed: 48 89 e8 mov %rbp,%rax + 41d4f0: 48 83 c4 48 add $0x48,%rsp + 41d4f4: 5b pop %rbx + 41d4f5: 5d pop %rbp + 41d4f6: 41 5c pop %r12 + 41d4f8: 41 5d pop %r13 + 41d4fa: 41 5e pop %r14 + 41d4fc: 41 5f pop %r15 + 41d4fe: c3 retq + 41d4ff: 90 nop + 41d500: 8b 0d fe d2 2a 00 mov 0x2ad2fe(%rip),%ecx # 6ca804 + 41d506: 83 e1 02 and $0x2,%ecx + 41d509: 0f 84 f1 00 00 00 je 41d600 + 41d50f: 48 83 fa 1f cmp $0x1f,%rdx + 41d513: 0f 86 17 fe ff ff jbe 41d330 + 41d519: a8 08 test $0x8,%al + 41d51b: 0f 85 0f fe ff ff jne 41d330 + 41d521: f6 44 17 08 01 testb $0x1,0x8(%rdi,%rdx,1) + 41d526: 0f 84 04 fe ff ff je 41d330 + 41d52c: a8 01 test $0x1,%al + 41d52e: 75 2e jne 41d55e + 41d530: 48 8b 45 f0 mov -0x10(%rbp),%rax + 41d534: a8 0f test $0xf,%al + 41d536: 0f 85 f4 fd ff ff jne 41d330 + 41d53c: 85 c9 test %ecx,%ecx + 41d53e: 48 89 f9 mov %rdi,%rcx + 41d541: 0f 84 c0 01 00 00 je 41d707 + 41d547: 48 29 c1 sub %rax,%rcx + 41d54a: 48 8b 49 08 mov 0x8(%rcx),%rcx + 41d54e: 45 31 ed xor %r13d,%r13d + 41d551: 48 83 e1 f8 and $0xfffffffffffffff8,%rcx + 41d555: 48 39 c8 cmp %rcx,%rax + 41d558: 0f 85 d5 fd ff ff jne 41d333 + 41d55e: 48 83 c2 07 add $0x7,%rdx + 41d562: 40 0f b6 f6 movzbl %sil,%esi + 41d566: 4c 8d 04 17 lea (%rdi,%rdx,1),%r8 + 41d56a: 41 0f b6 00 movzbl (%r8),%eax + 41d56e: 48 39 c6 cmp %rax,%rsi + 41d571: 48 89 c1 mov %rax,%rcx + 41d574: 0f 84 7f fd ff ff je 41d2f9 + 41d57a: 48 85 c0 test %rax,%rax + 41d57d: 0f 84 ad fd ff ff je 41d330 + 41d583: 48 8d 48 10 lea 0x10(%rax),%rcx + 41d587: 48 39 ca cmp %rcx,%rdx + 41d58a: 73 22 jae 41d5ae + 41d58c: e9 9f fd ff ff jmpq 41d330 + 41d591: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41d598: 48 85 c0 test %rax,%rax + 41d59b: 0f 84 8f fd ff ff je 41d330 + 41d5a1: 48 8d 48 10 lea 0x10(%rax),%rcx + 41d5a5: 48 39 d1 cmp %rdx,%rcx + 41d5a8: 0f 87 82 fd ff ff ja 41d330 + 41d5ae: 48 29 c2 sub %rax,%rdx + 41d5b1: 4c 8d 04 17 lea (%rdi,%rdx,1),%r8 + 41d5b5: 41 0f b6 00 movzbl (%r8),%eax + 41d5b9: 48 39 c6 cmp %rax,%rsi + 41d5bc: 48 89 c1 mov %rax,%rcx + 41d5bf: 75 d7 jne 41d598 + 41d5c1: e9 33 fd ff ff jmpq 41d2f9 + 41d5c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41d5cd: 00 00 00 + 41d5d0: 4c 89 d6 mov %r10,%rsi + 41d5d3: 4c 89 ef mov %r13,%rdi + 41d5d6: 4c 89 54 24 10 mov %r10,0x10(%rsp) + 41d5db: e8 40 9a ff ff callq 417020 + 41d5e0: 48 85 c0 test %rax,%rax + 41d5e3: 4c 8b 54 24 10 mov 0x10(%rsp),%r10 + 41d5e8: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 + 41d5ed: 0f 84 29 01 00 00 je 41d71c + 41d5f3: 48 8d 68 10 lea 0x10(%rax),%rbp + 41d5f7: e9 2c fe ff ff jmpq 41d428 + 41d5fc: 0f 1f 40 00 nopl 0x0(%rax) + 41d600: 4c 8b 05 e9 d1 2a 00 mov 0x2ad1e9(%rip),%r8 # 6ca7f0 + 41d607: 4c 39 c7 cmp %r8,%rdi + 41d60a: 0f 82 20 fd ff ff jb 41d330 + 41d610: 4c 03 05 69 da 2a 00 add 0x2ada69(%rip),%r8 # 6cb080 + 41d617: 4c 8d 0c 17 lea (%rdi,%rdx,1),%r9 + 41d61b: 4d 39 c1 cmp %r8,%r9 + 41d61e: 0f 82 eb fe ff ff jb 41d50f + 41d624: e9 07 fd ff ff jmpq 41d330 + 41d629: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41d630: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41d637: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) + 41d63e: 48 83 c4 48 add $0x48,%rsp + 41d642: 31 c0 xor %eax,%eax + 41d644: 5b pop %rbx + 41d645: 5d pop %rbp + 41d646: 41 5c pop %r12 + 41d648: 41 5d pop %r13 + 41d64a: 41 5e pop %r14 + 41d64c: 41 5f pop %r15 + 41d64e: c3 retq + 41d64f: 90 nop + 41d650: 48 8b 44 24 18 mov 0x18(%rsp),%rax + 41d655: 31 ed xor %ebp,%ebp + 41d657: f6 10 notb (%rax) + 41d659: e9 d3 fd ff ff jmpq 41d431 + 41d65e: 66 90 xchg %ax,%ax + 41d660: 31 f6 xor %esi,%esi + 41d662: e8 79 b3 ff ff callq 4189e0 + 41d667: 31 c0 xor %eax,%eax + 41d669: e9 82 fe ff ff jmpq 41d4f0 + 41d66e: 4c 8d 6c 24 20 lea 0x20(%rsp),%r13 + 41d673: 48 8d 74 24 30 lea 0x30(%rsp),%rsi + 41d678: 31 c9 xor %ecx,%ecx + 41d67a: 48 89 ef mov %rbp,%rdi + 41d67d: ba 10 00 00 00 mov $0x10,%edx + 41d682: c6 44 24 30 00 movb $0x0,0x30(%rsp) + 41d687: e8 24 48 03 00 callq 451eb0 <_itoa_word> + 41d68c: 4c 39 e8 cmp %r13,%rax + 41d68f: 48 89 c5 mov %rax,%rbp + 41d692: 76 25 jbe 41d6b9 + 41d694: 48 89 c2 mov %rax,%rdx + 41d697: 48 89 c7 mov %rax,%rdi + 41d69a: be 30 00 00 00 mov $0x30,%esi + 41d69f: 4c 29 ea sub %r13,%rdx + 41d6a2: 4c 8d 70 ff lea -0x1(%rax),%r14 + 41d6a6: 48 29 d7 sub %rdx,%rdi + 41d6a9: e8 a2 2c fe ff callq 400350 <__rela_iplt_end+0x88> + 41d6ae: 48 8d 44 24 1f lea 0x1f(%rsp),%rax + 41d6b3: 4c 29 f0 sub %r14,%rax + 41d6b6: 48 01 c5 add %rax,%rbp + 41d6b9: 48 8b 05 00 fc 2a 00 mov 0x2afc00(%rip),%rax # 6cd2c0 <__libc_argv> + 41d6c0: ba 38 20 4a 00 mov $0x4a2038,%edx + 41d6c5: 44 89 e7 mov %r12d,%edi + 41d6c8: 49 89 e8 mov %rbp,%r8 + 41d6cb: b9 c6 21 4a 00 mov $0x4a21c6,%ecx + 41d6d0: be a8 23 4a 00 mov $0x4a23a8,%esi + 41d6d5: 48 8b 00 mov (%rax),%rax + 41d6d8: 48 85 c0 test %rax,%rax + 41d6db: 48 0f 45 d0 cmovne %rax,%rdx + 41d6df: 83 e7 02 and $0x2,%edi + 41d6e2: 31 c0 xor %eax,%eax + 41d6e4: e8 d7 3e ff ff callq 4115c0 <__libc_message> + 41d6e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41d6f0: 31 f6 xor %esi,%esi + 41d6f2: 48 89 df mov %rbx,%rdi + 41d6f5: e8 26 f0 ff ff callq 41c720 + 41d6fa: e9 f1 fd ff ff jmpq 41d4f0 + 41d6ff: 90 nop + 41d700: 31 c0 xor %eax,%eax + 41d702: e9 e9 fd ff ff jmpq 41d4f0 + 41d707: 48 29 c1 sub %rax,%rcx + 41d70a: 48 3b 0d df d0 2a 00 cmp 0x2ad0df(%rip),%rcx # 6ca7f0 + 41d711: 0f 83 33 fe ff ff jae 41d54a + 41d717: e9 14 fc ff ff jmpq 41d330 + 41d71c: 49 8d 46 f8 lea -0x8(%r14),%rax + 41d720: 49 39 c2 cmp %rax,%r10 + 41d723: 0f 86 08 fd ff ff jbe 41d431 + 41d729: 4c 89 4c 24 08 mov %r9,0x8(%rsp) + 41d72e: e8 ad a3 ff ff callq 417ae0 + 41d733: 85 c0 test %eax,%eax + 41d735: 0f 88 15 ff ff ff js 41d650 + 41d73b: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 + 41d740: bf 00 a8 6c 00 mov $0x6ca800,%edi + 41d745: 4c 89 ce mov %r9,%rsi + 41d748: e8 f3 dd ff ff callq 41b540 <_int_malloc> + 41d74d: 48 85 c0 test %rax,%rax + 41d750: 49 89 c7 mov %rax,%r15 + 41d753: 0f 84 f7 fe ff ff je 41d650 + 41d759: 49 8d 56 f0 lea -0x10(%r14),%rdx + 41d75d: 48 89 ee mov %rbp,%rsi + 41d760: 48 89 c7 mov %rax,%rdi + 41d763: 4c 89 fd mov %r15,%rbp + 41d766: e8 b5 e8 00 00 callq 42c020 + 41d76b: 4c 89 ef mov %r13,%rdi + 41d76e: e8 7d a5 ff ff callq 417cf0 + 41d773: e9 b9 fc ff ff jmpq 41d431 + 41d778: 44 8b 25 f1 cf 2a 00 mov 0x2acff1(%rip),%r12d # 6ca770 + 41d77f: 83 0d 7e d0 2a 00 04 orl $0x4,0x2ad07e(%rip) # 6ca804 + 41d786: 44 89 e0 mov %r12d,%eax + 41d789: 83 e0 05 and $0x5,%eax + 41d78c: 83 f8 05 cmp $0x5,%eax + 41d78f: 74 1f je 41d7b0 + 41d791: 41 f6 c4 01 test $0x1,%r12b + 41d795: 0f 85 d3 fe ff ff jne 41d66e + 41d79b: 41 83 e4 02 and $0x2,%r12d + 41d79f: 0f 84 4b ff ff ff je 41d6f0 + 41d7a5: e8 56 04 ff ff callq 40dc00 + 41d7aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41d7b0: 44 89 e7 mov %r12d,%edi + 41d7b3: ba c6 21 4a 00 mov $0x4a21c6,%edx + 41d7b8: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41d7bd: 83 e7 02 and $0x2,%edi + 41d7c0: 31 c0 xor %eax,%eax + 41d7c2: e8 f9 3d ff ff callq 4115c0 <__libc_message> + 41d7c7: e9 24 ff ff ff jmpq 41d6f0 + 41d7cc: 0f 1f 40 00 nopl 0x0(%rax) + +000000000041d7d0 <__malloc_fork_lock_parent>: + 41d7d0: 8b 05 8e cf 2a 00 mov 0x2acf8e(%rip),%eax # 6ca764 <__libc_malloc_initialized> + 41d7d6: 85 c0 test %eax,%eax + 41d7d8: 0f 8e 94 00 00 00 jle 41d872 <__malloc_fork_lock_parent+0xa2> + 41d7de: be 01 00 00 00 mov $0x1,%esi + 41d7e3: 31 c0 xor %eax,%eax + 41d7e5: 83 3d d0 f9 2a 00 00 cmpl $0x0,0x2af9d0(%rip) # 6cd1bc <__libc_multiple_threads> + 41d7ec: 74 0c je 41d7fa <__malloc_fork_lock_parent+0x2a> + 41d7ee: f0 0f b1 35 2a ee 2a lock cmpxchg %esi,0x2aee2a(%rip) # 6cc620 + 41d7f5: 00 + 41d7f6: 75 0b jne 41d803 <__malloc_fork_lock_parent+0x33> + 41d7f8: eb 23 jmp 41d81d <__malloc_fork_lock_parent+0x4d> + 41d7fa: 0f b1 35 1f ee 2a 00 cmpxchg %esi,0x2aee1f(%rip) # 6cc620 + 41d801: 74 1a je 41d81d <__malloc_fork_lock_parent+0x4d> + 41d803: 48 8d 3d 16 ee 2a 00 lea 0x2aee16(%rip),%rdi # 6cc620 + 41d80a: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41d811: e8 ba 4d 02 00 callq 4425d0 <__lll_lock_wait_private> + 41d816: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41d81d: ba 00 a8 6c 00 mov $0x6ca800,%edx + 41d822: 41 b9 01 00 00 00 mov $0x1,%r9d + 41d828: 45 31 c0 xor %r8d,%r8d + 41d82b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41d830: 44 89 ce mov %r9d,%esi + 41d833: 44 89 c0 mov %r8d,%eax + 41d836: 83 3d 7f f9 2a 00 00 cmpl $0x0,0x2af97f(%rip) # 6cd1bc <__libc_multiple_threads> + 41d83d: 74 08 je 41d847 <__malloc_fork_lock_parent+0x77> + 41d83f: f0 0f b1 32 lock cmpxchg %esi,(%rdx) + 41d843: 75 07 jne 41d84c <__malloc_fork_lock_parent+0x7c> + 41d845: eb 1b jmp 41d862 <__malloc_fork_lock_parent+0x92> + 41d847: 0f b1 32 cmpxchg %esi,(%rdx) + 41d84a: 74 16 je 41d862 <__malloc_fork_lock_parent+0x92> + 41d84c: 48 8d 3a lea (%rdx),%rdi + 41d84f: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41d856: e8 75 4d 02 00 callq 4425d0 <__lll_lock_wait_private> + 41d85b: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41d862: 48 8b 92 68 08 00 00 mov 0x868(%rdx),%rdx + 41d869: 48 81 fa 00 a8 6c 00 cmp $0x6ca800,%rdx + 41d870: 75 be jne 41d830 <__malloc_fork_lock_parent+0x60> + 41d872: f3 c3 repz retq + 41d874: 66 90 xchg %ax,%ax + 41d876: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41d87d: 00 00 00 + +000000000041d880 <__malloc_fork_unlock_parent>: + 41d880: 8b 05 de ce 2a 00 mov 0x2acede(%rip),%eax # 6ca764 <__libc_malloc_initialized> + 41d886: 85 c0 test %eax,%eax + 41d888: 7e 76 jle 41d900 <__malloc_fork_unlock_parent+0x80> + 41d88a: ba 00 a8 6c 00 mov $0x6ca800,%edx + 41d88f: 90 nop + 41d890: 83 3d 25 f9 2a 00 00 cmpl $0x0,0x2af925(%rip) # 6cd1bc <__libc_multiple_threads> + 41d897: 74 07 je 41d8a0 <__malloc_fork_unlock_parent+0x20> + 41d899: f0 ff 0a lock decl (%rdx) + 41d89c: 75 06 jne 41d8a4 <__malloc_fork_unlock_parent+0x24> + 41d89e: eb 1a jmp 41d8ba <__malloc_fork_unlock_parent+0x3a> + 41d8a0: ff 0a decl (%rdx) + 41d8a2: 74 16 je 41d8ba <__malloc_fork_unlock_parent+0x3a> + 41d8a4: 48 8d 3a lea (%rdx),%rdi + 41d8a7: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41d8ae: e8 4d 4d 02 00 callq 442600 <__lll_unlock_wake_private> + 41d8b3: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41d8ba: 48 8b 92 68 08 00 00 mov 0x868(%rdx),%rdx + 41d8c1: 48 81 fa 00 a8 6c 00 cmp $0x6ca800,%rdx + 41d8c8: 75 c6 jne 41d890 <__malloc_fork_unlock_parent+0x10> + 41d8ca: 83 3d eb f8 2a 00 00 cmpl $0x0,0x2af8eb(%rip) # 6cd1bc <__libc_multiple_threads> + 41d8d1: 74 0b je 41d8de <__malloc_fork_unlock_parent+0x5e> + 41d8d3: f0 ff 0d 46 ed 2a 00 lock decl 0x2aed46(%rip) # 6cc620 + 41d8da: 75 0a jne 41d8e6 <__malloc_fork_unlock_parent+0x66> + 41d8dc: eb 22 jmp 41d900 <__malloc_fork_unlock_parent+0x80> + 41d8de: ff 0d 3c ed 2a 00 decl 0x2aed3c(%rip) # 6cc620 + 41d8e4: 74 1a je 41d900 <__malloc_fork_unlock_parent+0x80> + 41d8e6: 48 8d 3d 33 ed 2a 00 lea 0x2aed33(%rip),%rdi # 6cc620 + 41d8ed: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41d8f4: e8 07 4d 02 00 callq 442600 <__lll_unlock_wake_private> + 41d8f9: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41d900: f3 c3 repz retq + 41d902: 0f 1f 40 00 nopl 0x0(%rax) + 41d906: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41d90d: 00 00 00 + +000000000041d910 <__malloc_fork_unlock_child>: + 41d910: 8b 05 4e ce 2a 00 mov 0x2ace4e(%rip),%eax # 6ca764 <__libc_malloc_initialized> + 41d916: 85 c0 test %eax,%eax + 41d918: 0f 8e 85 00 00 00 jle 41d9a3 <__malloc_fork_unlock_child+0x93> + 41d91e: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax + 41d925: c7 05 01 ed 2a 00 00 movl $0x0,0x2aed01(%rip) # 6cc630 + 41d92c: 00 00 00 + 41d92f: 64 48 8b 08 mov %fs:(%rax),%rcx + 41d933: 48 85 c9 test %rcx,%rcx + 41d936: 74 0b je 41d943 <__malloc_fork_unlock_child+0x33> + 41d938: 48 c7 81 78 08 00 00 movq $0x1,0x878(%rcx) + 41d93f: 01 00 00 00 + 41d943: 48 c7 05 da ec 2a 00 movq $0x0,0x2aecda(%rip) # 6cc628 + 41d94a: 00 00 00 00 + 41d94e: 31 f6 xor %esi,%esi + 41d950: 31 d2 xor %edx,%edx + 41d952: b8 00 a8 6c 00 mov $0x6ca800,%eax + 41d957: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 41d95e: 00 00 + 41d960: 48 39 c8 cmp %rcx,%rax + 41d963: c7 00 00 00 00 00 movl $0x0,(%rax) + 41d969: 74 1a je 41d985 <__malloc_fork_unlock_child+0x75> + 41d96b: 48 89 90 70 08 00 00 mov %rdx,0x870(%rax) + 41d972: 48 c7 80 78 08 00 00 movq $0x0,0x878(%rax) + 41d979: 00 00 00 00 + 41d97d: 48 89 c2 mov %rax,%rdx + 41d980: be 01 00 00 00 mov $0x1,%esi + 41d985: 48 8b 80 68 08 00 00 mov 0x868(%rax),%rax + 41d98c: 48 3d 00 a8 6c 00 cmp $0x6ca800,%rax + 41d992: 75 cc jne 41d960 <__malloc_fork_unlock_child+0x50> + 41d994: 40 84 f6 test %sil,%sil + 41d997: 75 0c jne 41d9a5 <__malloc_fork_unlock_child+0x95> + 41d999: c7 05 7d ec 2a 00 00 movl $0x0,0x2aec7d(%rip) # 6cc620 + 41d9a0: 00 00 00 + 41d9a3: f3 c3 repz retq + 41d9a5: 48 89 15 7c ec 2a 00 mov %rdx,0x2aec7c(%rip) # 6cc628 + 41d9ac: eb eb jmp 41d999 <__malloc_fork_unlock_child+0x89> + 41d9ae: 66 90 xchg %ax,%ax + +000000000041d9b0 <__malloc_check_init>: + 41d9b0: 8b 05 52 ec 2a 00 mov 0x2aec52(%rip),%eax # 6cc608 + 41d9b6: 85 c0 test %eax,%eax + 41d9b8: 75 3e jne 41d9f8 <__malloc_check_init+0x48> + 41d9ba: c7 05 48 ec 2a 00 01 movl $0x1,0x2aec48(%rip) # 6cc60c + 41d9c1: 00 00 00 + 41d9c4: 48 c7 05 b9 cd 2a 00 movq $0x41c720,0x2acdb9(%rip) # 6ca788 <__malloc_hook> + 41d9cb: 20 c7 41 00 + 41d9cf: 48 c7 05 0e ec 2a 00 movq $0x4189e0,0x2aec0e(%rip) # 6cc5e8 <__free_hook> + 41d9d6: e0 89 41 00 + 41d9da: 48 c7 05 9b cd 2a 00 movq $0x41d180,0x2acd9b(%rip) # 6ca780 <__realloc_hook> + 41d9e1: 80 d1 41 00 + 41d9e5: 48 c7 05 88 cd 2a 00 movq $0x41c870,0x2acd88(%rip) # 6ca778 <__memalign_hook> + 41d9ec: 70 c8 41 00 + 41d9f0: c3 retq + 41d9f1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41d9f8: c7 05 06 ec 2a 00 00 movl $0x0,0x2aec06(%rip) # 6cc608 + 41d9ff: 00 00 00 + 41da02: c3 retq + 41da03: 0f 1f 00 nopl (%rax) + 41da06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41da0d: 00 00 00 + +000000000041da10 <__libc_malloc>: + 41da10: 55 push %rbp + 41da11: 53 push %rbx + 41da12: 48 83 ec 08 sub $0x8,%rsp + 41da16: 48 8b 05 6b cd 2a 00 mov 0x2acd6b(%rip),%rax # 6ca788 <__malloc_hook> + 41da1d: 48 85 c0 test %rax,%rax + 41da20: 0f 85 42 01 00 00 jne 41db68 <__libc_malloc+0x158> + 41da26: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax + 41da2d: 48 89 fd mov %rdi,%rbp + 41da30: 64 48 8b 18 mov %fs:(%rax),%rbx + 41da34: 48 85 db test %rbx,%rbx + 41da37: 74 0c je 41da45 <__libc_malloc+0x35> + 41da39: 8b 43 04 mov 0x4(%rbx),%eax + 41da3c: 83 e0 04 and $0x4,%eax + 41da3f: 0f 84 93 00 00 00 je 41dad8 <__libc_malloc+0xc8> + 41da45: e8 16 97 ff ff callq 417160 + 41da4a: 48 85 c0 test %rax,%rax + 41da4d: 48 89 c3 mov %rax,%rbx + 41da50: 0f 84 ba 00 00 00 je 41db10 <__libc_malloc+0x100> + 41da56: 48 89 ee mov %rbp,%rsi + 41da59: 48 89 df mov %rbx,%rdi + 41da5c: e8 df da ff ff callq 41b540 <_int_malloc> + 41da61: 48 85 c0 test %rax,%rax + 41da64: 48 89 c2 mov %rax,%rdx + 41da67: 0f 84 cb 00 00 00 je 41db38 <__libc_malloc+0x128> + 41da6d: 83 3d 48 f7 2a 00 00 cmpl $0x0,0x2af748(%rip) # 6cd1bc <__libc_multiple_threads> + 41da74: 74 07 je 41da7d <__libc_malloc+0x6d> + 41da76: f0 ff 0b lock decl (%rbx) + 41da79: 75 06 jne 41da81 <__libc_malloc+0x71> + 41da7b: eb 1a jmp 41da97 <__libc_malloc+0x87> + 41da7d: ff 0b decl (%rbx) + 41da7f: 74 16 je 41da97 <__libc_malloc+0x87> + 41da81: 48 8d 3b lea (%rbx),%rdi + 41da84: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41da8b: e8 70 4b 02 00 callq 442600 <__lll_unlock_wake_private> + 41da90: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41da97: 48 85 d2 test %rdx,%rdx + 41da9a: 0f 84 d8 00 00 00 je 41db78 <__libc_malloc+0x168> + 41daa0: 48 8b 42 f8 mov -0x8(%rdx),%rax + 41daa4: a8 02 test $0x2,%al + 41daa6: 75 1f jne 41dac7 <__libc_malloc+0xb7> + 41daa8: a8 04 test $0x4,%al + 41daaa: b9 00 a8 6c 00 mov $0x6ca800,%ecx + 41daaf: 74 0d je 41dabe <__libc_malloc+0xae> + 41dab1: 48 8d 42 f0 lea -0x10(%rdx),%rax + 41dab5: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax + 41dabb: 48 8b 08 mov (%rax),%rcx + 41dabe: 48 39 d9 cmp %rbx,%rcx + 41dac1: 0f 85 b8 00 00 00 jne 41db7f <__libc_malloc+0x16f> + 41dac7: 48 89 d0 mov %rdx,%rax + 41daca: 48 83 c4 08 add $0x8,%rsp + 41dace: 5b pop %rbx + 41dacf: 5d pop %rbp + 41dad0: c3 retq + 41dad1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41dad8: be 01 00 00 00 mov $0x1,%esi + 41dadd: 83 3d d8 f6 2a 00 00 cmpl $0x0,0x2af6d8(%rip) # 6cd1bc <__libc_multiple_threads> + 41dae4: 74 08 je 41daee <__libc_malloc+0xde> + 41dae6: f0 0f b1 33 lock cmpxchg %esi,(%rbx) + 41daea: 75 07 jne 41daf3 <__libc_malloc+0xe3> + 41daec: eb 1b jmp 41db09 <__libc_malloc+0xf9> + 41daee: 0f b1 33 cmpxchg %esi,(%rbx) + 41daf1: 74 16 je 41db09 <__libc_malloc+0xf9> + 41daf3: 48 8d 3b lea (%rbx),%rdi + 41daf6: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41dafd: e8 ce 4a 02 00 callq 4425d0 <__lll_lock_wait_private> + 41db02: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41db09: e9 48 ff ff ff jmpq 41da56 <__libc_malloc+0x46> + 41db0e: 66 90 xchg %ax,%ax + 41db10: 31 f6 xor %esi,%esi + 41db12: 48 89 ef mov %rbp,%rdi + 41db15: e8 36 99 ff ff callq 417450 + 41db1a: 48 89 ee mov %rbp,%rsi + 41db1d: 48 89 c7 mov %rax,%rdi + 41db20: 48 89 c3 mov %rax,%rbx + 41db23: e8 18 da ff ff callq 41b540 <_int_malloc> + 41db28: 48 85 c0 test %rax,%rax + 41db2b: 48 89 c2 mov %rax,%rdx + 41db2e: 75 25 jne 41db55 <__libc_malloc+0x145> + 41db30: 48 85 db test %rbx,%rbx + 41db33: 74 20 je 41db55 <__libc_malloc+0x145> + 41db35: 0f 1f 00 nopl (%rax) + 41db38: 90 nop + 41db39: 48 89 df mov %rbx,%rdi + 41db3c: 48 89 ee mov %rbp,%rsi + 41db3f: e8 ac 9e ff ff callq 4179f0 + 41db44: 48 89 ee mov %rbp,%rsi + 41db47: 48 89 c7 mov %rax,%rdi + 41db4a: 48 89 c3 mov %rax,%rbx + 41db4d: e8 ee d9 ff ff callq 41b540 <_int_malloc> + 41db52: 48 89 c2 mov %rax,%rdx + 41db55: 48 85 db test %rbx,%rbx + 41db58: 0f 85 0f ff ff ff jne 41da6d <__libc_malloc+0x5d> + 41db5e: e9 34 ff ff ff jmpq 41da97 <__libc_malloc+0x87> + 41db63: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41db68: 48 8b 74 24 18 mov 0x18(%rsp),%rsi + 41db6d: 48 83 c4 08 add $0x8,%rsp + 41db71: 5b pop %rbx + 41db72: 5d pop %rbp + 41db73: ff e0 jmpq *%rax + 41db75: 0f 1f 00 nopl (%rax) + 41db78: 31 c0 xor %eax,%eax + 41db7a: e9 4b ff ff ff jmpq 41daca <__libc_malloc+0xba> + 41db7f: b9 48 2e 4a 00 mov $0x4a2e48,%ecx + 41db84: ba 6f 0b 00 00 mov $0xb6f,%edx + 41db89: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41db8e: bf 58 29 4a 00 mov $0x4a2958,%edi + 41db93: e8 88 92 ff ff callq 416e20 <__malloc_assert> + 41db98: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41db9f: 00 + +000000000041dba0 <__malloc_get_state>: + 41dba0: 53 push %rbx + 41dba1: bf a8 08 00 00 mov $0x8a8,%edi + 41dba6: e8 65 fe ff ff callq 41da10 <__libc_malloc> + 41dbab: 48 85 c0 test %rax,%rax + 41dbae: 0f 84 f5 01 00 00 je 41dda9 <__malloc_get_state+0x209> + 41dbb4: 48 89 c3 mov %rax,%rbx + 41dbb7: be 01 00 00 00 mov $0x1,%esi + 41dbbc: 31 c0 xor %eax,%eax + 41dbbe: 83 3d f7 f5 2a 00 00 cmpl $0x0,0x2af5f7(%rip) # 6cd1bc <__libc_multiple_threads> + 41dbc5: 74 0c je 41dbd3 <__malloc_get_state+0x33> + 41dbc7: f0 0f b1 35 31 cc 2a lock cmpxchg %esi,0x2acc31(%rip) # 6ca800 + 41dbce: 00 + 41dbcf: 75 0b jne 41dbdc <__malloc_get_state+0x3c> + 41dbd1: eb 23 jmp 41dbf6 <__malloc_get_state+0x56> + 41dbd3: 0f b1 35 26 cc 2a 00 cmpxchg %esi,0x2acc26(%rip) # 6ca800 + 41dbda: 74 1a je 41dbf6 <__malloc_get_state+0x56> + 41dbdc: 48 8d 3d 1d cc 2a 00 lea 0x2acc1d(%rip),%rdi # 6ca800 + 41dbe3: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41dbea: e8 e1 49 02 00 callq 4425d0 <__lll_lock_wait_private> + 41dbef: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41dbf6: bf 00 a8 6c 00 mov $0x6ca800,%edi + 41dbfb: e8 30 a2 ff ff callq 417e30 + 41dc00: 48 8b 05 51 cc 2a 00 mov 0x2acc51(%rip),%rax # 6ca858 + 41dc07: 48 c7 03 41 45 4c 44 movq $0x444c4541,(%rbx) + 41dc0e: ba 58 a8 6c 00 mov $0x6ca858,%edx + 41dc13: 48 c7 43 08 04 00 00 movq $0x4,0x8(%rbx) + 41dc1a: 00 + 41dc1b: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) + 41dc22: 00 + 41dc23: 48 8d 4b 38 lea 0x38(%rbx),%rcx + 41dc27: 48 c7 43 18 00 00 00 movq $0x0,0x18(%rbx) + 41dc2e: 00 + 41dc2f: 48 c7 43 28 00 00 00 movq $0x0,0x28(%rbx) + 41dc36: 00 + 41dc37: 48 89 43 20 mov %rax,0x20(%rbx) + 41dc3b: eb 1f jmp 41dc5c <__malloc_get_state+0xbc> + 41dc3d: 0f 1f 00 nopl (%rax) + 41dc40: 48 89 71 f8 mov %rsi,-0x8(%rcx) + 41dc44: 48 8b 72 18 mov 0x18(%rdx),%rsi + 41dc48: 48 89 31 mov %rsi,(%rcx) + 41dc4b: 48 83 c2 10 add $0x10,%rdx + 41dc4f: 48 83 c1 10 add $0x10,%rcx + 41dc53: 48 81 fa 48 b0 6c 00 cmp $0x6cb048,%rdx + 41dc5a: 74 24 je 41dc80 <__malloc_get_state+0xe0> + 41dc5c: 48 8b 72 10 mov 0x10(%rdx),%rsi + 41dc60: 48 39 f2 cmp %rsi,%rdx + 41dc63: 75 db jne 41dc40 <__malloc_get_state+0xa0> + 41dc65: 48 c7 01 00 00 00 00 movq $0x0,(%rcx) + 41dc6c: 48 c7 41 f8 00 00 00 movq $0x0,-0x8(%rcx) + 41dc73: 00 + 41dc74: eb d5 jmp 41dc4b <__malloc_get_state+0xab> + 41dc76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41dc7d: 00 00 00 + 41dc80: 48 8b 05 69 cb 2a 00 mov 0x2acb69(%rip),%rax # 6ca7f0 + 41dc87: 48 89 83 20 08 00 00 mov %rax,0x820(%rbx) + 41dc8e: 48 8b 05 eb d3 2a 00 mov 0x2ad3eb(%rip),%rax # 6cb080 + 41dc95: 89 83 28 08 00 00 mov %eax,0x828(%rbx) + 41dc9b: 48 8b 05 fe ca 2a 00 mov 0x2acafe(%rip),%rax # 6ca7a0 + 41dca2: 48 89 83 30 08 00 00 mov %rax,0x830(%rbx) + 41dca9: 48 8b 05 f8 ca 2a 00 mov 0x2acaf8(%rip),%rax # 6ca7a8 + 41dcb0: 48 89 83 38 08 00 00 mov %rax,0x838(%rbx) + 41dcb7: 8b 05 0f cb 2a 00 mov 0x2acb0f(%rip),%eax # 6ca7cc + 41dcbd: 89 83 40 08 00 00 mov %eax,0x840(%rbx) + 41dcc3: 48 8b 05 e6 ca 2a 00 mov 0x2acae6(%rip),%rax # 6ca7b0 + 41dcca: 48 89 83 48 08 00 00 mov %rax,0x848(%rbx) + 41dcd1: 8b 05 99 ca 2a 00 mov 0x2aca99(%rip),%eax # 6ca770 + 41dcd7: 89 83 50 08 00 00 mov %eax,0x850(%rbx) + 41dcdd: 48 8b 05 a4 d3 2a 00 mov 0x2ad3a4(%rip),%rax # 6cb088 + 41dce4: 48 c7 83 60 08 00 00 movq $0x0,0x860(%rbx) + 41dceb: 00 00 00 00 + 41dcef: 48 89 83 58 08 00 00 mov %rax,0x858(%rbx) + 41dcf6: 8b 05 cc ca 2a 00 mov 0x2acacc(%rip),%eax # 6ca7c8 + 41dcfc: 89 83 68 08 00 00 mov %eax,0x868(%rbx) + 41dd02: 8b 05 c8 ca 2a 00 mov 0x2acac8(%rip),%eax # 6ca7d0 + 41dd08: 89 83 6c 08 00 00 mov %eax,0x86c(%rbx) + 41dd0e: 48 8b 05 c3 ca 2a 00 mov 0x2acac3(%rip),%rax # 6ca7d8 + 41dd15: 48 89 83 70 08 00 00 mov %rax,0x870(%rbx) + 41dd1c: 48 8b 05 bd ca 2a 00 mov 0x2acabd(%rip),%rax # 6ca7e0 + 41dd23: 48 89 83 78 08 00 00 mov %rax,0x878(%rbx) + 41dd2a: 8b 05 dc e8 2a 00 mov 0x2ae8dc(%rip),%eax # 6cc60c + 41dd30: 89 83 80 08 00 00 mov %eax,0x880(%rbx) + 41dd36: 48 8b 05 fb e8 2a 00 mov 0x2ae8fb(%rip),%rax # 6cc638 + 41dd3d: 48 89 83 88 08 00 00 mov %rax,0x888(%rbx) + 41dd44: 48 8b 05 6d ca 2a 00 mov 0x2aca6d(%rip),%rax # 6ca7b8 + 41dd4b: 48 89 83 90 08 00 00 mov %rax,0x890(%rbx) + 41dd52: 48 8b 05 67 ca 2a 00 mov 0x2aca67(%rip),%rax # 6ca7c0 + 41dd59: 48 89 83 98 08 00 00 mov %rax,0x898(%rbx) + 41dd60: 48 8b 05 01 ca 2a 00 mov 0x2aca01(%rip),%rax # 6ca768 + 41dd67: 48 89 83 a0 08 00 00 mov %rax,0x8a0(%rbx) + 41dd6e: 83 3d 47 f4 2a 00 00 cmpl $0x0,0x2af447(%rip) # 6cd1bc <__libc_multiple_threads> + 41dd75: 74 0b je 41dd82 <__malloc_get_state+0x1e2> + 41dd77: f0 ff 0d 82 ca 2a 00 lock decl 0x2aca82(%rip) # 6ca800 + 41dd7e: 75 0a jne 41dd8a <__malloc_get_state+0x1ea> + 41dd80: eb 22 jmp 41dda4 <__malloc_get_state+0x204> + 41dd82: ff 0d 78 ca 2a 00 decl 0x2aca78(%rip) # 6ca800 + 41dd88: 74 1a je 41dda4 <__malloc_get_state+0x204> + 41dd8a: 48 8d 3d 6f ca 2a 00 lea 0x2aca6f(%rip),%rdi # 6ca800 + 41dd91: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41dd98: e8 63 48 02 00 callq 442600 <__lll_unlock_wake_private> + 41dd9d: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41dda4: 48 89 d8 mov %rbx,%rax + 41dda7: 5b pop %rbx + 41dda8: c3 retq + 41dda9: 31 c0 xor %eax,%eax + 41ddab: 5b pop %rbx + 41ddac: c3 retq + 41ddad: 0f 1f 00 nopl (%rax) + +000000000041ddb0 <__cfree>: + 41ddb0: 41 55 push %r13 + 41ddb2: 41 54 push %r12 + 41ddb4: 55 push %rbp + 41ddb5: 53 push %rbx + 41ddb6: 48 83 ec 28 sub $0x28,%rsp + 41ddba: 48 8b 05 27 e8 2a 00 mov 0x2ae827(%rip),%rax # 6cc5e8 <__free_hook> + 41ddc1: 48 85 c0 test %rax,%rax + 41ddc4: 0f 85 c6 00 00 00 jne 41de90 <__cfree+0xe0> + 41ddca: 48 85 ff test %rdi,%rdi + 41ddcd: 74 28 je 41ddf7 <__cfree+0x47> + 41ddcf: 48 8b 47 f8 mov -0x8(%rdi),%rax + 41ddd3: 48 8d 77 f0 lea -0x10(%rdi),%rsi + 41ddd7: a8 02 test $0x2,%al + 41ddd9: 75 2d jne 41de08 <__cfree+0x58> + 41dddb: a8 04 test $0x4,%al + 41dddd: bf 00 a8 6c 00 mov $0x6ca800,%edi + 41dde2: 74 0c je 41ddf0 <__cfree+0x40> + 41dde4: 48 89 f0 mov %rsi,%rax + 41dde7: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax + 41dded: 48 8b 38 mov (%rax),%rdi + 41ddf0: 31 d2 xor %edx,%edx + 41ddf2: e8 c9 b9 ff ff callq 4197c0 <_int_free> + 41ddf7: 48 83 c4 28 add $0x28,%rsp + 41ddfb: 5b pop %rbx + 41ddfc: 5d pop %rbp + 41ddfd: 41 5c pop %r12 + 41ddff: 41 5d pop %r13 + 41de01: c3 retq + 41de02: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41de08: 8b 15 c6 c9 2a 00 mov 0x2ac9c6(%rip),%edx # 6ca7d4 + 41de0e: 85 d2 test %edx,%edx + 41de10: 75 2e jne 41de40 <__cfree+0x90> + 41de12: 48 3b 05 97 c9 2a 00 cmp 0x2ac997(%rip),%rax # 6ca7b0 + 41de19: 76 25 jbe 41de40 <__cfree+0x90> + 41de1b: 48 3d 00 00 00 02 cmp $0x2000000,%rax + 41de21: 77 1d ja 41de40 <__cfree+0x90> + 41de23: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 41de27: 48 8d 14 00 lea (%rax,%rax,1),%rdx + 41de2b: 48 89 05 7e c9 2a 00 mov %rax,0x2ac97e(%rip) # 6ca7b0 + 41de32: 48 89 15 67 c9 2a 00 mov %rdx,0x2ac967(%rip) # 6ca7a0 + 41de39: 90 nop + 41de3a: eb 08 jmp 41de44 <__cfree+0x94> + 41de3c: 0f 1f 40 00 nopl 0x0(%rax) + 41de40: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 41de44: 48 8b 4f f0 mov -0x10(%rdi),%rcx + 41de48: 48 89 f2 mov %rsi,%rdx + 41de4b: 48 8d 34 01 lea (%rcx,%rax,1),%rsi + 41de4f: 48 8b 05 2a d3 2a 00 mov 0x2ad32a(%rip),%rax # 6cb180 <_dl_pagesize> + 41de56: 48 29 ca sub %rcx,%rdx + 41de59: 48 89 d1 mov %rdx,%rcx + 41de5c: 48 09 f1 or %rsi,%rcx + 41de5f: 48 83 e8 01 sub $0x1,%rax + 41de63: 48 85 c8 test %rcx,%rax + 41de66: 75 40 jne 41dea8 <__cfree+0xf8> + 41de68: f0 ff 0d 59 c9 2a 00 lock decl 0x2ac959(%rip) # 6ca7c8 + 41de6f: 48 89 f0 mov %rsi,%rax + 41de72: 48 f7 d8 neg %rax + 41de75: f0 48 01 05 5b c9 2a lock add %rax,0x2ac95b(%rip) # 6ca7d8 + 41de7c: 00 + 41de7d: 48 89 d7 mov %rdx,%rdi + 41de80: e8 2b 1e 02 00 callq 43fcb0 <__munmap> + 41de85: 48 83 c4 28 add $0x28,%rsp + 41de89: 5b pop %rbx + 41de8a: 5d pop %rbp + 41de8b: 41 5c pop %r12 + 41de8d: 41 5d pop %r13 + 41de8f: c3 retq + 41de90: 48 8b 74 24 48 mov 0x48(%rsp),%rsi + 41de95: ff d0 callq *%rax + 41de97: 48 83 c4 28 add $0x28,%rsp + 41de9b: 5b pop %rbx + 41de9c: 5d pop %rbp + 41de9d: 41 5c pop %r12 + 41de9f: 41 5d pop %r13 + 41dea1: c3 retq + 41dea2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41dea8: 8b 1d c2 c8 2a 00 mov 0x2ac8c2(%rip),%ebx # 6ca770 + 41deae: 89 d8 mov %ebx,%eax + 41deb0: 83 e0 05 and $0x5,%eax + 41deb3: 83 f8 05 cmp $0x5,%eax + 41deb6: 0f 84 8b 00 00 00 je 41df47 <__cfree+0x197> + 41debc: f6 c3 01 test $0x1,%bl + 41debf: 75 0f jne 41ded0 <__cfree+0x120> + 41dec1: 83 e3 02 and $0x2,%ebx + 41dec4: 0f 84 2d ff ff ff je 41ddf7 <__cfree+0x47> + 41deca: e8 31 fd fe ff callq 40dc00 + 41decf: 90 nop + 41ded0: 48 8d 74 24 10 lea 0x10(%rsp),%rsi + 41ded5: 31 c9 xor %ecx,%ecx + 41ded7: ba 10 00 00 00 mov $0x10,%edx + 41dedc: c6 44 24 10 00 movb $0x0,0x10(%rsp) + 41dee1: e8 ca 3f 03 00 callq 451eb0 <_itoa_word> + 41dee6: 48 39 e0 cmp %rsp,%rax + 41dee9: 48 89 c5 mov %rax,%rbp + 41deec: 76 25 jbe 41df13 <__cfree+0x163> + 41deee: 48 89 c2 mov %rax,%rdx + 41def1: 48 89 c7 mov %rax,%rdi + 41def4: be 30 00 00 00 mov $0x30,%esi + 41def9: 48 29 e2 sub %rsp,%rdx + 41defc: 4c 8d 68 ff lea -0x1(%rax),%r13 + 41df00: 48 29 d7 sub %rdx,%rdi + 41df03: e8 48 24 fe ff callq 400350 <__rela_iplt_end+0x88> + 41df08: 48 8d 44 24 ff lea -0x1(%rsp),%rax + 41df0d: 4c 29 e8 sub %r13,%rax + 41df10: 48 01 c5 add %rax,%rbp + 41df13: 48 8b 05 a6 f3 2a 00 mov 0x2af3a6(%rip),%rax # 6cd2c0 <__libc_argv> + 41df1a: ba 38 20 4a 00 mov $0x4a2038,%edx + 41df1f: 49 89 e8 mov %rbp,%r8 + 41df22: b9 d0 23 4a 00 mov $0x4a23d0,%ecx + 41df27: be a8 23 4a 00 mov $0x4a23a8,%esi + 41df2c: 48 8b 00 mov (%rax),%rax + 41df2f: 48 85 c0 test %rax,%rax + 41df32: 48 0f 45 d0 cmovne %rax,%rdx + 41df36: 83 e3 02 and $0x2,%ebx + 41df39: 31 c0 xor %eax,%eax + 41df3b: 89 df mov %ebx,%edi + 41df3d: e8 7e 36 ff ff callq 4115c0 <__libc_message> + 41df42: e9 b0 fe ff ff jmpq 41ddf7 <__cfree+0x47> + 41df47: 83 e3 02 and $0x2,%ebx + 41df4a: ba d0 23 4a 00 mov $0x4a23d0,%edx + 41df4f: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41df54: 89 df mov %ebx,%edi + 41df56: 31 c0 xor %eax,%eax + 41df58: e8 63 36 ff ff callq 4115c0 <__libc_message> + 41df5d: e9 95 fe ff ff jmpq 41ddf7 <__cfree+0x47> + 41df62: 0f 1f 40 00 nopl 0x0(%rax) + 41df66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41df6d: 00 00 00 + +000000000041df70 <__libc_realloc>: + 41df70: 41 57 push %r15 + 41df72: 41 56 push %r14 + 41df74: 41 55 push %r13 + 41df76: 41 54 push %r12 + 41df78: 49 89 f5 mov %rsi,%r13 + 41df7b: 55 push %rbp + 41df7c: 53 push %rbx + 41df7d: 48 89 fb mov %rdi,%rbx + 41df80: 48 83 ec 38 sub $0x38,%rsp + 41df84: 48 8b 05 f5 c7 2a 00 mov 0x2ac7f5(%rip),%rax # 6ca780 <__realloc_hook> + 41df8b: 48 85 c0 test %rax,%rax + 41df8e: 0f 85 04 02 00 00 jne 41e198 <__libc_realloc+0x228> + 41df94: 48 85 f6 test %rsi,%rsi + 41df97: 75 09 jne 41dfa2 <__libc_realloc+0x32> + 41df99: 48 85 ff test %rdi,%rdi + 41df9c: 0f 85 6e 02 00 00 jne 41e210 <__libc_realloc+0x2a0> + 41dfa2: 48 85 db test %rbx,%rbx + 41dfa5: 0f 84 15 03 00 00 je 41e2c0 <__libc_realloc+0x350> + 41dfab: 48 8b 43 f8 mov -0x8(%rbx),%rax + 41dfaf: 4c 8d 73 f0 lea -0x10(%rbx),%r14 + 41dfb3: 49 89 c7 mov %rax,%r15 + 41dfb6: 48 89 c1 mov %rax,%rcx + 41dfb9: 49 83 e7 f8 and $0xfffffffffffffff8,%r15 + 41dfbd: 83 e1 02 and $0x2,%ecx + 41dfc0: 74 7e je 41e040 <__libc_realloc+0xd0> + 41dfc2: 4c 89 f8 mov %r15,%rax + 41dfc5: 48 f7 d8 neg %rax + 41dfc8: 49 39 c6 cmp %rax,%r14 + 41dfcb: 0f 87 3f 03 00 00 ja 41e310 <__libc_realloc+0x3a0> + 41dfd1: 41 f6 c6 0f test $0xf,%r14b + 41dfd5: 0f 85 35 03 00 00 jne 41e310 <__libc_realloc+0x3a0> + 41dfdb: 45 31 e4 xor %r12d,%r12d + 41dfde: 49 83 fd bf cmp $0xffffffffffffffbf,%r13 + 41dfe2: 0f 87 c8 01 00 00 ja 41e1b0 <__libc_realloc+0x240> + 41dfe8: 49 8d 45 17 lea 0x17(%r13),%rax + 41dfec: 48 89 c2 mov %rax,%rdx + 41dfef: 48 83 e2 f0 and $0xfffffffffffffff0,%rdx + 41dff3: 48 83 f8 20 cmp $0x20,%rax + 41dff7: b8 20 00 00 00 mov $0x20,%eax + 41dffc: 48 0f 42 d0 cmovb %rax,%rdx + 41e000: 48 85 c9 test %rcx,%rcx + 41e003: 0f 84 97 00 00 00 je 41e0a0 <__libc_realloc+0x130> + 41e009: 48 89 d6 mov %rdx,%rsi + 41e00c: 4c 89 f7 mov %r14,%rdi + 41e00f: 48 89 54 24 08 mov %rdx,0x8(%rsp) + 41e014: e8 07 90 ff ff callq 417020 + 41e019: 48 85 c0 test %rax,%rax + 41e01c: 48 8d 68 10 lea 0x10(%rax),%rbp + 41e020: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 41e025: 0f 84 9d 01 00 00 je 41e1c8 <__libc_realloc+0x258> + 41e02b: 48 83 c4 38 add $0x38,%rsp + 41e02f: 48 89 e8 mov %rbp,%rax + 41e032: 5b pop %rbx + 41e033: 5d pop %rbp + 41e034: 41 5c pop %r12 + 41e036: 41 5d pop %r13 + 41e038: 41 5e pop %r14 + 41e03a: 41 5f pop %r15 + 41e03c: c3 retq + 41e03d: 0f 1f 00 nopl (%rax) + 41e040: a8 04 test $0x4,%al + 41e042: 0f 84 28 01 00 00 je 41e170 <__libc_realloc+0x200> + 41e048: 4c 89 f0 mov %r14,%rax + 41e04b: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax + 41e051: 4c 8b 20 mov (%rax),%r12 + 41e054: 4c 89 f8 mov %r15,%rax + 41e057: 48 f7 d8 neg %rax + 41e05a: 49 39 c6 cmp %rax,%r14 + 41e05d: 77 0a ja 41e069 <__libc_realloc+0xf9> + 41e05f: 41 f6 c6 0f test $0xf,%r14b + 41e063: 0f 84 75 ff ff ff je 41dfde <__libc_realloc+0x6e> + 41e069: 4d 85 e4 test %r12,%r12 + 41e06c: 8b 2d fe c6 2a 00 mov 0x2ac6fe(%rip),%ebp # 6ca770 + 41e072: 74 06 je 41e07a <__libc_realloc+0x10a> + 41e074: 41 83 4c 24 04 04 orl $0x4,0x4(%r12) + 41e07a: 89 e8 mov %ebp,%eax + 41e07c: 83 e0 05 and $0x5,%eax + 41e07f: 83 f8 05 cmp $0x5,%eax + 41e082: 0f 84 98 02 00 00 je 41e320 <__libc_realloc+0x3b0> + 41e088: 40 f6 c5 01 test $0x1,%bpl + 41e08c: 0f 85 a6 01 00 00 jne 41e238 <__libc_realloc+0x2c8> + 41e092: 83 e5 02 and $0x2,%ebp + 41e095: 0f 85 a2 02 00 00 jne 41e33d <__libc_realloc+0x3cd> + 41e09b: 31 ed xor %ebp,%ebp + 41e09d: eb 8c jmp 41e02b <__libc_realloc+0xbb> + 41e09f: 90 nop + 41e0a0: be 01 00 00 00 mov $0x1,%esi + 41e0a5: 31 c0 xor %eax,%eax + 41e0a7: 83 3d 0e f1 2a 00 00 cmpl $0x0,0x2af10e(%rip) # 6cd1bc <__libc_multiple_threads> + 41e0ae: 74 0a je 41e0ba <__libc_realloc+0x14a> + 41e0b0: f0 41 0f b1 34 24 lock cmpxchg %esi,(%r12) + 41e0b6: 75 09 jne 41e0c1 <__libc_realloc+0x151> + 41e0b8: eb 1e jmp 41e0d8 <__libc_realloc+0x168> + 41e0ba: 41 0f b1 34 24 cmpxchg %esi,(%r12) + 41e0bf: 74 17 je 41e0d8 <__libc_realloc+0x168> + 41e0c1: 49 8d 3c 24 lea (%r12),%rdi + 41e0c5: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41e0cc: e8 ff 44 02 00 callq 4425d0 <__lll_lock_wait_private> + 41e0d1: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41e0d8: 48 89 d1 mov %rdx,%rcx + 41e0db: 4c 89 f6 mov %r14,%rsi + 41e0de: 4c 89 fa mov %r15,%rdx + 41e0e1: 4c 89 e7 mov %r12,%rdi + 41e0e4: e8 77 e9 ff ff callq 41ca60 <_int_realloc> + 41e0e9: 48 89 c5 mov %rax,%rbp + 41e0ec: 83 3d c9 f0 2a 00 00 cmpl $0x0,0x2af0c9(%rip) # 6cd1bc <__libc_multiple_threads> + 41e0f3: 74 09 je 41e0fe <__libc_realloc+0x18e> + 41e0f5: f0 41 ff 0c 24 lock decl (%r12) + 41e0fa: 75 08 jne 41e104 <__libc_realloc+0x194> + 41e0fc: eb 1d jmp 41e11b <__libc_realloc+0x1ab> + 41e0fe: 41 ff 0c 24 decl (%r12) + 41e102: 74 17 je 41e11b <__libc_realloc+0x1ab> + 41e104: 49 8d 3c 24 lea (%r12),%rdi + 41e108: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41e10f: e8 ec 44 02 00 callq 442600 <__lll_unlock_wake_private> + 41e114: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41e11b: 48 85 ed test %rbp,%rbp + 41e11e: 0f 84 ac 01 00 00 je 41e2d0 <__libc_realloc+0x360> + 41e124: 48 8b 45 f8 mov -0x8(%rbp),%rax + 41e128: a8 02 test $0x2,%al + 41e12a: 0f 85 fb fe ff ff jne 41e02b <__libc_realloc+0xbb> + 41e130: a8 04 test $0x4,%al + 41e132: ba 00 a8 6c 00 mov $0x6ca800,%edx + 41e137: 74 0d je 41e146 <__libc_realloc+0x1d6> + 41e139: 48 8d 45 f0 lea -0x10(%rbp),%rax + 41e13d: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax + 41e143: 48 8b 10 mov (%rax),%rdx + 41e146: 4c 39 e2 cmp %r12,%rdx + 41e149: 0f 84 dc fe ff ff je 41e02b <__libc_realloc+0xbb> + 41e14f: b9 18 2e 4a 00 mov $0x4a2e18,%ecx + 41e154: ba e9 0b 00 00 mov $0xbe9,%edx + 41e159: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41e15e: bf c0 29 4a 00 mov $0x4a29c0,%edi + 41e163: e8 b8 8c ff ff callq 416e20 <__malloc_assert> + 41e168: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41e16f: 00 + 41e170: 4c 89 f8 mov %r15,%rax + 41e173: 48 f7 d8 neg %rax + 41e176: 49 39 c6 cmp %rax,%r14 + 41e179: 0f 87 a1 00 00 00 ja 41e220 <__libc_realloc+0x2b0> + 41e17f: 41 f6 c6 0f test $0xf,%r14b + 41e183: 0f 85 97 00 00 00 jne 41e220 <__libc_realloc+0x2b0> + 41e189: 41 bc 00 a8 6c 00 mov $0x6ca800,%r12d + 41e18f: e9 4a fe ff ff jmpq 41dfde <__libc_realloc+0x6e> + 41e194: 0f 1f 40 00 nopl 0x0(%rax) + 41e198: 48 8b 54 24 68 mov 0x68(%rsp),%rdx + 41e19d: ff d0 callq *%rax + 41e19f: 48 89 c5 mov %rax,%rbp + 41e1a2: e9 84 fe ff ff jmpq 41e02b <__libc_realloc+0xbb> + 41e1a7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 41e1ae: 00 00 + 41e1b0: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41e1b7: 31 ed xor %ebp,%ebp + 41e1b9: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) + 41e1c0: e9 66 fe ff ff jmpq 41e02b <__libc_realloc+0xbb> + 41e1c5: 0f 1f 00 nopl (%rax) + 41e1c8: 49 8d 47 f8 lea -0x8(%r15),%rax + 41e1cc: 48 89 dd mov %rbx,%rbp + 41e1cf: 48 39 c2 cmp %rax,%rdx + 41e1d2: 0f 86 53 fe ff ff jbe 41e02b <__libc_realloc+0xbb> + 41e1d8: 4c 89 ef mov %r13,%rdi + 41e1db: e8 30 f8 ff ff callq 41da10 <__libc_malloc> + 41e1e0: 48 85 c0 test %rax,%rax + 41e1e3: 48 89 c3 mov %rax,%rbx + 41e1e6: 0f 84 af fe ff ff je 41e09b <__libc_realloc+0x12b> + 41e1ec: 49 8d 57 f0 lea -0x10(%r15),%rdx + 41e1f0: 48 89 ee mov %rbp,%rsi + 41e1f3: 48 89 c7 mov %rax,%rdi + 41e1f6: 48 89 dd mov %rbx,%rbp + 41e1f9: e8 22 de 00 00 callq 42c020 + 41e1fe: 4c 89 f7 mov %r14,%rdi + 41e201: e8 ea 9a ff ff callq 417cf0 + 41e206: e9 20 fe ff ff jmpq 41e02b <__libc_realloc+0xbb> + 41e20b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41e210: e8 9b fb ff ff callq 41ddb0 <__cfree> + 41e215: 31 ed xor %ebp,%ebp + 41e217: e9 0f fe ff ff jmpq 41e02b <__libc_realloc+0xbb> + 41e21c: 0f 1f 40 00 nopl 0x0(%rax) + 41e220: 8b 2d 4a c5 2a 00 mov 0x2ac54a(%rip),%ebp # 6ca770 + 41e226: 41 bc 00 a8 6c 00 mov $0x6ca800,%r12d + 41e22c: e9 43 fe ff ff jmpq 41e074 <__libc_realloc+0x104> + 41e231: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41e238: 4c 8d 64 24 10 lea 0x10(%rsp),%r12 + 41e23d: 48 8d 74 24 20 lea 0x20(%rsp),%rsi + 41e242: 31 c9 xor %ecx,%ecx + 41e244: 48 89 df mov %rbx,%rdi + 41e247: ba 10 00 00 00 mov $0x10,%edx + 41e24c: c6 44 24 20 00 movb $0x0,0x20(%rsp) + 41e251: e8 5a 3c 03 00 callq 451eb0 <_itoa_word> + 41e256: 4c 39 e0 cmp %r12,%rax + 41e259: 48 89 c3 mov %rax,%rbx + 41e25c: 76 25 jbe 41e283 <__libc_realloc+0x313> + 41e25e: 48 89 c2 mov %rax,%rdx + 41e261: 48 89 c7 mov %rax,%rdi + 41e264: be 30 00 00 00 mov $0x30,%esi + 41e269: 4c 29 e2 sub %r12,%rdx + 41e26c: 4c 8d 68 ff lea -0x1(%rax),%r13 + 41e270: 48 29 d7 sub %rdx,%rdi + 41e273: e8 d8 20 fe ff callq 400350 <__rela_iplt_end+0x88> + 41e278: 48 8d 44 24 0f lea 0xf(%rsp),%rax + 41e27d: 4c 29 e8 sub %r13,%rax + 41e280: 48 01 c3 add %rax,%rbx + 41e283: 48 8b 05 36 f0 2a 00 mov 0x2af036(%rip),%rax # 6cd2c0 <__libc_argv> + 41e28a: 89 ef mov %ebp,%edi + 41e28c: ba 38 20 4a 00 mov $0x4a2038,%edx + 41e291: 49 89 d8 mov %rbx,%r8 + 41e294: b9 c6 21 4a 00 mov $0x4a21c6,%ecx + 41e299: be a8 23 4a 00 mov $0x4a23a8,%esi + 41e29e: 48 8b 00 mov (%rax),%rax + 41e2a1: 48 85 c0 test %rax,%rax + 41e2a4: 48 0f 45 d0 cmovne %rax,%rdx + 41e2a8: 83 e7 02 and $0x2,%edi + 41e2ab: 31 c0 xor %eax,%eax + 41e2ad: e8 0e 33 ff ff callq 4115c0 <__libc_message> + 41e2b2: 31 ed xor %ebp,%ebp + 41e2b4: e9 72 fd ff ff jmpq 41e02b <__libc_realloc+0xbb> + 41e2b9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41e2c0: 4c 89 ef mov %r13,%rdi + 41e2c3: e8 48 f7 ff ff callq 41da10 <__libc_malloc> + 41e2c8: 48 89 c5 mov %rax,%rbp + 41e2cb: e9 5b fd ff ff jmpq 41e02b <__libc_realloc+0xbb> + 41e2d0: 90 nop + 41e2d1: 4c 89 ef mov %r13,%rdi + 41e2d4: 31 ed xor %ebp,%ebp + 41e2d6: e8 35 f7 ff ff callq 41da10 <__libc_malloc> + 41e2db: 48 85 c0 test %rax,%rax + 41e2de: 49 89 c5 mov %rax,%r13 + 41e2e1: 0f 84 44 fd ff ff je 41e02b <__libc_realloc+0xbb> + 41e2e7: 49 8d 57 f8 lea -0x8(%r15),%rdx + 41e2eb: 48 89 de mov %rbx,%rsi + 41e2ee: 48 89 c7 mov %rax,%rdi + 41e2f1: 4c 89 ed mov %r13,%rbp + 41e2f4: e8 27 dd 00 00 callq 42c020 + 41e2f9: 31 d2 xor %edx,%edx + 41e2fb: 4c 89 f6 mov %r14,%rsi + 41e2fe: 4c 89 e7 mov %r12,%rdi + 41e301: e8 ba b4 ff ff callq 4197c0 <_int_free> + 41e306: e9 20 fd ff ff jmpq 41e02b <__libc_realloc+0xbb> + 41e30b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41e310: 8b 2d 5a c4 2a 00 mov 0x2ac45a(%rip),%ebp # 6ca770 + 41e316: e9 5f fd ff ff jmpq 41e07a <__libc_realloc+0x10a> + 41e31b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41e320: 89 ef mov %ebp,%edi + 41e322: ba c6 21 4a 00 mov $0x4a21c6,%edx + 41e327: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41e32c: 83 e7 02 and $0x2,%edi + 41e32f: 31 c0 xor %eax,%eax + 41e331: 31 ed xor %ebp,%ebp + 41e333: e8 88 32 ff ff callq 4115c0 <__libc_message> + 41e338: e9 ee fc ff ff jmpq 41e02b <__libc_realloc+0xbb> + 41e33d: e8 be f8 fe ff callq 40dc00 + 41e342: 0f 1f 40 00 nopl 0x0(%rax) + 41e346: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41e34d: 00 00 00 + +000000000041e350 <__libc_memalign>: + 41e350: 48 8b 05 21 c4 2a 00 mov 0x2ac421(%rip),%rax # 6ca778 <__memalign_hook> + 41e357: 41 54 push %r12 + 41e359: 48 85 c0 test %rax,%rax + 41e35c: 55 push %rbp + 41e35d: 53 push %rbx + 41e35e: 48 8b 54 24 18 mov 0x18(%rsp),%rdx + 41e363: 0f 85 ef 01 00 00 jne 41e558 <__libc_memalign+0x208> + 41e369: 48 83 ff 10 cmp $0x10,%rdi + 41e36d: 0f 86 d5 01 00 00 jbe 41e548 <__libc_memalign+0x1f8> + 41e373: 48 83 ff 1f cmp $0x1f,%rdi + 41e377: 0f 87 e3 00 00 00 ja 41e460 <__libc_memalign+0x110> + 41e37d: 48 83 fe bf cmp $0xffffffffffffffbf,%rsi + 41e381: 0f 87 f1 01 00 00 ja 41e578 <__libc_memalign+0x228> + 41e387: bb 20 00 00 00 mov $0x20,%ebx + 41e38c: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax + 41e393: 49 89 f4 mov %rsi,%r12 + 41e396: 64 48 8b 28 mov %fs:(%rax),%rbp + 41e39a: 48 85 ed test %rbp,%rbp + 41e39d: 0f 84 15 01 00 00 je 41e4b8 <__libc_memalign+0x168> + 41e3a3: 8b 45 04 mov 0x4(%rbp),%eax + 41e3a6: 83 e0 04 and $0x4,%eax + 41e3a9: 0f 85 09 01 00 00 jne 41e4b8 <__libc_memalign+0x168> + 41e3af: be 01 00 00 00 mov $0x1,%esi + 41e3b4: 83 3d 01 ee 2a 00 00 cmpl $0x0,0x2aee01(%rip) # 6cd1bc <__libc_multiple_threads> + 41e3bb: 74 09 je 41e3c6 <__libc_memalign+0x76> + 41e3bd: f0 0f b1 75 00 lock cmpxchg %esi,0x0(%rbp) + 41e3c2: 75 08 jne 41e3cc <__libc_memalign+0x7c> + 41e3c4: eb 1d jmp 41e3e3 <__libc_memalign+0x93> + 41e3c6: 0f b1 75 00 cmpxchg %esi,0x0(%rbp) + 41e3ca: 74 17 je 41e3e3 <__libc_memalign+0x93> + 41e3cc: 48 8d 7d 00 lea 0x0(%rbp),%rdi + 41e3d0: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41e3d7: e8 f4 41 02 00 callq 4425d0 <__lll_lock_wait_private> + 41e3dc: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41e3e3: 4c 89 e2 mov %r12,%rdx + 41e3e6: 48 89 de mov %rbx,%rsi + 41e3e9: 48 89 ef mov %rbp,%rdi + 41e3ec: e8 1f e1 ff ff callq 41c510 <_int_memalign> + 41e3f1: 48 85 c0 test %rax,%rax + 41e3f4: 48 89 c2 mov %rax,%rdx + 41e3f7: 0f 84 fb 00 00 00 je 41e4f8 <__libc_memalign+0x1a8> + 41e3fd: 83 3d b8 ed 2a 00 00 cmpl $0x0,0x2aedb8(%rip) # 6cd1bc <__libc_multiple_threads> + 41e404: 74 08 je 41e40e <__libc_memalign+0xbe> + 41e406: f0 ff 4d 00 lock decl 0x0(%rbp) + 41e40a: 75 07 jne 41e413 <__libc_memalign+0xc3> + 41e40c: eb 1c jmp 41e42a <__libc_memalign+0xda> + 41e40e: ff 4d 00 decl 0x0(%rbp) + 41e411: 74 17 je 41e42a <__libc_memalign+0xda> + 41e413: 48 8d 7d 00 lea 0x0(%rbp),%rdi + 41e417: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41e41e: e8 dd 41 02 00 callq 442600 <__lll_unlock_wake_private> + 41e423: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41e42a: 48 85 d2 test %rdx,%rdx + 41e42d: 0f 84 5d 01 00 00 je 41e590 <__libc_memalign+0x240> + 41e433: 48 8b 42 f8 mov -0x8(%rdx),%rax + 41e437: a8 02 test $0x2,%al + 41e439: 75 16 jne 41e451 <__libc_memalign+0x101> + 41e43b: a8 04 test $0x4,%al + 41e43d: b9 00 a8 6c 00 mov $0x6ca800,%ecx + 41e442: 0f 85 e8 00 00 00 jne 41e530 <__libc_memalign+0x1e0> + 41e448: 48 39 e9 cmp %rbp,%rcx + 41e44b: 0f 85 46 01 00 00 jne 41e597 <__libc_memalign+0x247> + 41e451: 48 89 d0 mov %rdx,%rax + 41e454: 5b pop %rbx + 41e455: 5d pop %rbp + 41e456: 41 5c pop %r12 + 41e458: c3 retq + 41e459: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41e460: 48 b8 00 00 00 00 00 movabs $0x8000000000000000,%rax + 41e467: 00 00 80 + 41e46a: 48 39 c7 cmp %rax,%rdi + 41e46d: 0f 87 ed 00 00 00 ja 41e560 <__libc_memalign+0x210> + 41e473: 48 c7 c0 df ff ff ff mov $0xffffffffffffffdf,%rax + 41e47a: 48 29 f8 sub %rdi,%rax + 41e47d: 48 39 c6 cmp %rax,%rsi + 41e480: 0f 87 f2 00 00 00 ja 41e578 <__libc_memalign+0x228> + 41e486: 48 8d 47 ff lea -0x1(%rdi),%rax + 41e48a: 48 85 f8 test %rdi,%rax + 41e48d: 0f 84 1d 01 00 00 je 41e5b0 <__libc_memalign+0x260> + 41e493: 48 83 ff 20 cmp $0x20,%rdi + 41e497: bb 20 00 00 00 mov $0x20,%ebx + 41e49c: 0f 84 ea fe ff ff je 41e38c <__libc_memalign+0x3c> + 41e4a2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41e4a8: 48 01 db add %rbx,%rbx + 41e4ab: 48 39 df cmp %rbx,%rdi + 41e4ae: 77 f8 ja 41e4a8 <__libc_memalign+0x158> + 41e4b0: e9 d7 fe ff ff jmpq 41e38c <__libc_memalign+0x3c> + 41e4b5: 0f 1f 00 nopl (%rax) + 41e4b8: e8 a3 8c ff ff callq 417160 + 41e4bd: 48 85 c0 test %rax,%rax + 41e4c0: 48 89 c5 mov %rax,%rbp + 41e4c3: 0f 85 1a ff ff ff jne 41e3e3 <__libc_memalign+0x93> + 41e4c9: 4a 8d 7c 23 20 lea 0x20(%rbx,%r12,1),%rdi + 41e4ce: 31 f6 xor %esi,%esi + 41e4d0: e8 7b 8f ff ff callq 417450 + 41e4d5: 4c 89 e2 mov %r12,%rdx + 41e4d8: 48 89 de mov %rbx,%rsi + 41e4db: 48 89 c7 mov %rax,%rdi + 41e4de: 48 89 c5 mov %rax,%rbp + 41e4e1: e8 2a e0 ff ff callq 41c510 <_int_memalign> + 41e4e6: 48 85 c0 test %rax,%rax + 41e4e9: 48 89 c2 mov %rax,%rdx + 41e4ec: 75 2a jne 41e518 <__libc_memalign+0x1c8> + 41e4ee: 48 85 ed test %rbp,%rbp + 41e4f1: 74 25 je 41e518 <__libc_memalign+0x1c8> + 41e4f3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41e4f8: 90 nop + 41e4f9: 48 89 ef mov %rbp,%rdi + 41e4fc: 4c 89 e6 mov %r12,%rsi + 41e4ff: e8 ec 94 ff ff callq 4179f0 + 41e504: 4c 89 e2 mov %r12,%rdx + 41e507: 48 89 de mov %rbx,%rsi + 41e50a: 48 89 c7 mov %rax,%rdi + 41e50d: 48 89 c5 mov %rax,%rbp + 41e510: e8 fb df ff ff callq 41c510 <_int_memalign> + 41e515: 48 89 c2 mov %rax,%rdx + 41e518: 48 85 ed test %rbp,%rbp + 41e51b: 0f 85 dc fe ff ff jne 41e3fd <__libc_memalign+0xad> + 41e521: e9 04 ff ff ff jmpq 41e42a <__libc_memalign+0xda> + 41e526: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41e52d: 00 00 00 + 41e530: 48 8d 42 f0 lea -0x10(%rdx),%rax + 41e534: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax + 41e53a: 48 8b 08 mov (%rax),%rcx + 41e53d: e9 06 ff ff ff jmpq 41e448 <__libc_memalign+0xf8> + 41e542: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41e548: 5b pop %rbx + 41e549: 5d pop %rbp + 41e54a: 41 5c pop %r12 + 41e54c: 48 89 f7 mov %rsi,%rdi + 41e54f: e9 bc f4 ff ff jmpq 41da10 <__libc_malloc> + 41e554: 0f 1f 40 00 nopl 0x0(%rax) + 41e558: 5b pop %rbx + 41e559: 5d pop %rbp + 41e55a: 41 5c pop %r12 + 41e55c: ff e0 jmpq *%rax + 41e55e: 66 90 xchg %ax,%ax + 41e560: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41e567: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) + 41e56e: 31 c0 xor %eax,%eax + 41e570: e9 df fe ff ff jmpq 41e454 <__libc_memalign+0x104> + 41e575: 0f 1f 00 nopl (%rax) + 41e578: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41e57f: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) + 41e586: 31 c0 xor %eax,%eax + 41e588: e9 c7 fe ff ff jmpq 41e454 <__libc_memalign+0x104> + 41e58d: 0f 1f 00 nopl (%rax) + 41e590: 31 c0 xor %eax,%eax + 41e592: e9 bd fe ff ff jmpq 41e454 <__libc_memalign+0x104> + 41e597: b9 08 2e 4a 00 mov $0x4a2e08,%ecx + 41e59c: ba 3c 0c 00 00 mov $0xc3c,%edx + 41e5a1: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41e5a6: bf 20 2a 4a 00 mov $0x4a2a20,%edi + 41e5ab: e8 70 88 ff ff callq 416e20 <__malloc_assert> + 41e5b0: 48 89 fb mov %rdi,%rbx + 41e5b3: e9 d4 fd ff ff jmpq 41e38c <__libc_memalign+0x3c> + 41e5b8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41e5bf: 00 + +000000000041e5c0 <__calloc>: + 41e5c0: 41 55 push %r13 + 41e5c2: 48 89 fa mov %rdi,%rdx + 41e5c5: 41 54 push %r12 + 41e5c7: 55 push %rbp + 41e5c8: 53 push %rbx + 41e5c9: 48 89 fd mov %rdi,%rbp + 41e5cc: 48 09 f2 or %rsi,%rdx + 41e5cf: b8 ff ff ff ff mov $0xffffffff,%eax + 41e5d4: 48 83 ec 08 sub $0x8,%rsp + 41e5d8: 48 0f af ee imul %rsi,%rbp + 41e5dc: 48 39 c2 cmp %rax,%rdx + 41e5df: 76 1f jbe 41e600 <__calloc+0x40> + 41e5e1: 48 85 f6 test %rsi,%rsi + 41e5e4: 74 1a je 41e600 <__calloc+0x40> + 41e5e6: 31 d2 xor %edx,%edx + 41e5e8: 48 89 e8 mov %rbp,%rax + 41e5eb: 48 f7 f6 div %rsi + 41e5ee: 48 39 c7 cmp %rax,%rdi + 41e5f1: 0f 85 a9 02 00 00 jne 41e8a0 <__calloc+0x2e0> + 41e5f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 41e5fe: 00 00 + 41e600: 48 8b 05 81 c1 2a 00 mov 0x2ac181(%rip),%rax # 6ca788 <__malloc_hook> + 41e607: 48 85 c0 test %rax,%rax + 41e60a: 0f 85 70 02 00 00 jne 41e880 <__calloc+0x2c0> + 41e610: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax + 41e617: 64 48 8b 18 mov %fs:(%rax),%rbx + 41e61b: 48 85 db test %rbx,%rbx + 41e61e: 74 0c je 41e62c <__calloc+0x6c> + 41e620: 8b 43 04 mov 0x4(%rbx),%eax + 41e623: 83 e0 04 and $0x4,%eax + 41e626: 0f 84 d4 00 00 00 je 41e700 <__calloc+0x140> + 41e62c: e8 2f 8b ff ff callq 417160 + 41e631: 48 85 c0 test %rax,%rax + 41e634: 48 89 c3 mov %rax,%rbx + 41e637: 0f 84 7b 02 00 00 je 41e8b8 <__calloc+0x2f8> + 41e63d: 4c 8b 6b 58 mov 0x58(%rbx),%r13 + 41e641: 4d 8b 65 08 mov 0x8(%r13),%r12 + 41e645: 49 83 e4 f8 and $0xfffffffffffffff8,%r12 + 41e649: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx + 41e650: 0f 84 9a 01 00 00 je 41e7f0 <__calloc+0x230> + 41e656: 4c 89 e8 mov %r13,%rax + 41e659: 48 89 ee mov %rbp,%rsi + 41e65c: 48 89 df mov %rbx,%rdi + 41e65f: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax + 41e665: 48 03 40 18 add 0x18(%rax),%rax + 41e669: 4c 29 e8 sub %r13,%rax + 41e66c: 49 39 c4 cmp %rax,%r12 + 41e66f: 4c 0f 42 e0 cmovb %rax,%r12 + 41e673: e8 c8 ce ff ff callq 41b540 <_int_malloc> + 41e678: 48 85 c0 test %rax,%rax + 41e67b: 49 89 c0 mov %rax,%r8 + 41e67e: 0f 84 8c 01 00 00 je 41e810 <__calloc+0x250> + 41e684: 49 8b 40 f8 mov -0x8(%r8),%rax + 41e688: a8 02 test $0x2,%al + 41e68a: 75 16 jne 41e6a2 <__calloc+0xe2> + 41e68c: a8 04 test $0x4,%al + 41e68e: ba 00 a8 6c 00 mov $0x6ca800,%edx + 41e693: 0f 85 b7 01 00 00 jne 41e850 <__calloc+0x290> + 41e699: 48 39 da cmp %rbx,%rdx + 41e69c: 0f 85 55 02 00 00 jne 41e8f7 <__calloc+0x337> + 41e6a2: 48 85 db test %rbx,%rbx + 41e6a5: 74 33 je 41e6da <__calloc+0x11a> + 41e6a7: 83 3d 0e eb 2a 00 00 cmpl $0x0,0x2aeb0e(%rip) # 6cd1bc <__libc_multiple_threads> + 41e6ae: 74 07 je 41e6b7 <__calloc+0xf7> + 41e6b0: f0 ff 0b lock decl (%rbx) + 41e6b3: 75 06 jne 41e6bb <__calloc+0xfb> + 41e6b5: eb 1a jmp 41e6d1 <__calloc+0x111> + 41e6b7: ff 0b decl (%rbx) + 41e6b9: 74 16 je 41e6d1 <__calloc+0x111> + 41e6bb: 48 8d 3b lea (%rbx),%rdi + 41e6be: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41e6c5: e8 36 3f 02 00 callq 442600 <__lll_unlock_wake_private> + 41e6ca: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41e6d1: 4d 85 c0 test %r8,%r8 + 41e6d4: 0f 84 bd 01 00 00 je 41e897 <__calloc+0x2d7> + 41e6da: 49 8b 50 f8 mov -0x8(%r8),%rdx + 41e6de: f6 c2 02 test $0x2,%dl + 41e6e1: 74 5d je 41e740 <__calloc+0x180> + 41e6e3: 8b 15 4b df 2a 00 mov 0x2adf4b(%rip),%edx # 6cc634 + 41e6e9: 4c 89 c0 mov %r8,%rax + 41e6ec: 85 d2 test %edx,%edx + 41e6ee: 0f 85 74 01 00 00 jne 41e868 <__calloc+0x2a8> + 41e6f4: 48 83 c4 08 add $0x8,%rsp + 41e6f8: 5b pop %rbx + 41e6f9: 5d pop %rbp + 41e6fa: 41 5c pop %r12 + 41e6fc: 41 5d pop %r13 + 41e6fe: c3 retq + 41e6ff: 90 nop + 41e700: be 01 00 00 00 mov $0x1,%esi + 41e705: 83 3d b0 ea 2a 00 00 cmpl $0x0,0x2aeab0(%rip) # 6cd1bc <__libc_multiple_threads> + 41e70c: 74 08 je 41e716 <__calloc+0x156> + 41e70e: f0 0f b1 33 lock cmpxchg %esi,(%rbx) + 41e712: 75 07 jne 41e71b <__calloc+0x15b> + 41e714: eb 1b jmp 41e731 <__calloc+0x171> + 41e716: 0f b1 33 cmpxchg %esi,(%rbx) + 41e719: 74 16 je 41e731 <__calloc+0x171> + 41e71b: 48 8d 3b lea (%rbx),%rdi + 41e71e: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41e725: e8 a6 3e 02 00 callq 4425d0 <__lll_lock_wait_private> + 41e72a: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41e731: e9 07 ff ff ff jmpq 41e63d <__calloc+0x7d> + 41e736: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41e73d: 00 00 00 + 41e740: 8b 05 ee de 2a 00 mov 0x2adeee(%rip),%eax # 6cc634 + 41e746: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx + 41e74a: 85 c0 test %eax,%eax + 41e74c: 75 10 jne 41e75e <__calloc+0x19e> + 41e74e: 49 8d 40 f0 lea -0x10(%r8),%rax + 41e752: 49 39 c5 cmp %rax,%r13 + 41e755: 75 07 jne 41e75e <__calloc+0x19e> + 41e757: 4c 39 e2 cmp %r12,%rdx + 41e75a: 49 0f 47 d4 cmova %r12,%rdx + 41e75e: 48 83 ea 08 sub $0x8,%rdx + 41e762: 48 89 d1 mov %rdx,%rcx + 41e765: 48 c1 e9 03 shr $0x3,%rcx + 41e769: 48 83 f9 02 cmp $0x2,%rcx + 41e76d: 0f 86 9d 01 00 00 jbe 41e910 <__calloc+0x350> + 41e773: 48 83 f9 09 cmp $0x9,%rcx + 41e777: 0f 87 ee 00 00 00 ja 41e86b <__calloc+0x2ab> + 41e77d: 48 83 f9 04 cmp $0x4,%rcx + 41e781: 49 c7 00 00 00 00 00 movq $0x0,(%r8) + 41e788: 49 c7 40 08 00 00 00 movq $0x0,0x8(%r8) + 41e78f: 00 + 41e790: 49 c7 40 10 00 00 00 movq $0x0,0x10(%r8) + 41e797: 00 + 41e798: 4c 89 c0 mov %r8,%rax + 41e79b: 0f 86 53 ff ff ff jbe 41e6f4 <__calloc+0x134> + 41e7a1: 48 83 f9 06 cmp $0x6,%rcx + 41e7a5: 49 c7 40 18 00 00 00 movq $0x0,0x18(%r8) + 41e7ac: 00 + 41e7ad: 49 c7 40 20 00 00 00 movq $0x0,0x20(%r8) + 41e7b4: 00 + 41e7b5: 0f 86 39 ff ff ff jbe 41e6f4 <__calloc+0x134> + 41e7bb: 48 83 f9 09 cmp $0x9,%rcx + 41e7bf: 49 c7 40 28 00 00 00 movq $0x0,0x28(%r8) + 41e7c6: 00 + 41e7c7: 49 c7 40 30 00 00 00 movq $0x0,0x30(%r8) + 41e7ce: 00 + 41e7cf: 0f 85 1f ff ff ff jne 41e6f4 <__calloc+0x134> + 41e7d5: 49 c7 40 38 00 00 00 movq $0x0,0x38(%r8) + 41e7dc: 00 + 41e7dd: 49 c7 40 40 00 00 00 movq $0x0,0x40(%r8) + 41e7e4: 00 + 41e7e5: e9 0a ff ff ff jmpq 41e6f4 <__calloc+0x134> + 41e7ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41e7f0: 48 89 ee mov %rbp,%rsi + 41e7f3: bf 00 a8 6c 00 mov $0x6ca800,%edi + 41e7f8: e8 43 cd ff ff callq 41b540 <_int_malloc> + 41e7fd: 48 85 c0 test %rax,%rax + 41e800: 49 89 c0 mov %rax,%r8 + 41e803: 0f 85 7b fe ff ff jne 41e684 <__calloc+0xc4> + 41e809: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41e810: 90 nop + 41e811: 48 89 df mov %rbx,%rdi + 41e814: 48 89 ee mov %rbp,%rsi + 41e817: e8 d4 91 ff ff callq 4179f0 + 41e81c: 48 89 ee mov %rbp,%rsi + 41e81f: 48 89 c3 mov %rax,%rbx + 41e822: 48 89 c7 mov %rax,%rdi + 41e825: e8 16 cd ff ff callq 41b540 <_int_malloc> + 41e82a: 48 85 db test %rbx,%rbx + 41e82d: 49 89 c0 mov %rax,%r8 + 41e830: 0f 85 71 fe ff ff jne 41e6a7 <__calloc+0xe7> + 41e836: e9 96 fe ff ff jmpq 41e6d1 <__calloc+0x111> + 41e83b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41e840: a8 04 test $0x4,%al + 41e842: 0f 84 af 00 00 00 je 41e8f7 <__calloc+0x337> + 41e848: 45 31 e4 xor %r12d,%r12d + 41e84b: 45 31 ed xor %r13d,%r13d + 41e84e: 66 90 xchg %ax,%ax + 41e850: 49 8d 40 f0 lea -0x10(%r8),%rax + 41e854: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax + 41e85a: 48 8b 10 mov (%rax),%rdx + 41e85d: e9 37 fe ff ff jmpq 41e699 <__calloc+0xd9> + 41e862: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41e868: 48 89 ea mov %rbp,%rdx + 41e86b: 31 f6 xor %esi,%esi + 41e86d: 4c 89 c7 mov %r8,%rdi + 41e870: 48 83 c4 08 add $0x8,%rsp + 41e874: 5b pop %rbx + 41e875: 5d pop %rbp + 41e876: 41 5c pop %r12 + 41e878: 41 5d pop %r13 + 41e87a: e9 d1 1a fe ff jmpq 400350 <__rela_iplt_end+0x88> + 41e87f: 90 nop + 41e880: 48 8b 74 24 28 mov 0x28(%rsp),%rsi + 41e885: 48 89 ef mov %rbp,%rdi + 41e888: ff d0 callq *%rax + 41e88a: 31 f6 xor %esi,%esi + 41e88c: 48 85 c0 test %rax,%rax + 41e88f: 48 89 ea mov %rbp,%rdx + 41e892: 48 89 c7 mov %rax,%rdi + 41e895: 75 d9 jne 41e870 <__calloc+0x2b0> + 41e897: 31 c0 xor %eax,%eax + 41e899: e9 56 fe ff ff jmpq 41e6f4 <__calloc+0x134> + 41e89e: 66 90 xchg %ax,%ax + 41e8a0: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41e8a7: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) + 41e8ae: 31 c0 xor %eax,%eax + 41e8b0: e9 3f fe ff ff jmpq 41e6f4 <__calloc+0x134> + 41e8b5: 0f 1f 00 nopl (%rax) + 41e8b8: 31 f6 xor %esi,%esi + 41e8ba: 48 89 ef mov %rbp,%rdi + 41e8bd: e8 8e 8b ff ff callq 417450 + 41e8c2: 48 85 c0 test %rax,%rax + 41e8c5: 48 89 c3 mov %rax,%rbx + 41e8c8: 0f 85 6f fd ff ff jne 41e63d <__calloc+0x7d> + 41e8ce: 31 ff xor %edi,%edi + 41e8d0: 48 89 ee mov %rbp,%rsi + 41e8d3: e8 68 cc ff ff callq 41b540 <_int_malloc> + 41e8d8: 48 85 c0 test %rax,%rax + 41e8db: 49 89 c0 mov %rax,%r8 + 41e8de: 74 b7 je 41e897 <__calloc+0x2d7> + 41e8e0: 48 8b 40 f8 mov -0x8(%rax),%rax + 41e8e4: a8 02 test $0x2,%al + 41e8e6: 0f 84 54 ff ff ff je 41e840 <__calloc+0x280> + 41e8ec: 45 31 e4 xor %r12d,%r12d + 41e8ef: 45 31 ed xor %r13d,%r13d + 41e8f2: e9 e3 fd ff ff jmpq 41e6da <__calloc+0x11a> + 41e8f7: b9 f8 2d 4a 00 mov $0x4a2df8,%ecx + 41e8fc: ba a8 0c 00 00 mov $0xca8,%edx + 41e901: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41e906: bf 78 2a 4a 00 mov $0x4a2a78,%edi + 41e90b: e8 10 85 ff ff callq 416e20 <__malloc_assert> + 41e910: b9 f8 2d 4a 00 mov $0x4a2df8,%ecx + 41e915: ba d3 0c 00 00 mov $0xcd3,%edx + 41e91a: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41e91f: bf e1 21 4a 00 mov $0x4a21e1,%edi + 41e924: e8 f7 84 ff ff callq 416e20 <__malloc_assert> + 41e929: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +000000000041e930 <__malloc_usable_size>: + 41e930: 41 55 push %r13 + 41e932: 41 54 push %r12 + 41e934: 55 push %rbp + 41e935: 53 push %rbx + 41e936: 48 83 ec 28 sub $0x28,%rsp + 41e93a: 48 85 ff test %rdi,%rdi + 41e93d: 74 5a je 41e999 <__malloc_usable_size+0x69> + 41e93f: 83 3d c6 dc 2a 00 01 cmpl $0x1,0x2adcc6(%rip) # 6cc60c + 41e946: 48 8d 4f f0 lea -0x10(%rdi),%rcx + 41e94a: 74 64 je 41e9b0 <__malloc_usable_size+0x80> + 41e94c: 48 8b 47 f8 mov -0x8(%rdi),%rax + 41e950: a8 02 test $0x2,%al + 41e952: 75 1c jne 41e970 <__malloc_usable_size+0x40> + 41e954: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 41e958: f6 44 07 f8 01 testb $0x1,-0x8(%rdi,%rax,1) + 41e95d: 74 3a je 41e999 <__malloc_usable_size+0x69> + 41e95f: 48 83 e8 08 sub $0x8,%rax + 41e963: 48 83 c4 28 add $0x28,%rsp + 41e967: 5b pop %rbx + 41e968: 5d pop %rbp + 41e969: 41 5c pop %r12 + 41e96b: 41 5d pop %r13 + 41e96d: c3 retq + 41e96e: 66 90 xchg %ax,%ax + 41e970: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 41e974: 48 83 c4 28 add $0x28,%rsp + 41e978: 48 83 e8 10 sub $0x10,%rax + 41e97c: 5b pop %rbx + 41e97d: 5d pop %rbp + 41e97e: 41 5c pop %r12 + 41e980: 41 5d pop %r13 + 41e982: c3 retq + 41e983: 83 e3 02 and $0x2,%ebx + 41e986: ba d0 2a 4a 00 mov $0x4a2ad0,%edx + 41e98b: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41e990: 89 df mov %ebx,%edi + 41e992: 31 c0 xor %eax,%eax + 41e994: e8 27 2c ff ff callq 4115c0 <__libc_message> + 41e999: 48 83 c4 28 add $0x28,%rsp + 41e99d: 31 c0 xor %eax,%eax + 41e99f: 5b pop %rbx + 41e9a0: 5d pop %rbp + 41e9a1: 41 5c pop %r12 + 41e9a3: 41 5d pop %r13 + 41e9a5: c3 retq + 41e9a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41e9ad: 00 00 00 + 41e9b0: 4c 8b 4f f8 mov -0x8(%rdi),%r9 + 41e9b4: 49 89 c8 mov %rcx,%r8 + 41e9b7: 48 89 c8 mov %rcx,%rax + 41e9ba: 48 c1 e8 0b shr $0xb,%rax + 41e9be: 49 c1 e8 03 shr $0x3,%r8 + 41e9c2: 41 31 c0 xor %eax,%r8d + 41e9c5: b8 02 00 00 00 mov $0x2,%eax + 41e9ca: 41 80 f8 01 cmp $0x1,%r8b + 41e9ce: 4d 89 ca mov %r9,%r10 + 41e9d1: 4c 89 ca mov %r9,%rdx + 41e9d4: 44 0f 44 c0 cmove %eax,%r8d + 41e9d8: 41 83 e2 02 and $0x2,%r10d + 41e9dc: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx + 41e9e0: 49 83 fa 01 cmp $0x1,%r10 + 41e9e4: 48 19 c0 sbb %rax,%rax + 41e9e7: 83 e0 08 and $0x8,%eax + 41e9ea: 48 8d 44 02 ff lea -0x1(%rdx,%rax,1),%rax + 41e9ef: 0f b6 54 07 f0 movzbl -0x10(%rdi,%rax,1),%edx + 41e9f4: 44 38 c2 cmp %r8b,%dl + 41e9f7: 0f 84 77 ff ff ff je 41e974 <__malloc_usable_size+0x44> + 41e9fd: 84 d2 test %dl,%dl + 41e9ff: 74 2c je 41ea2d <__malloc_usable_size+0xfd> + 41ea01: 48 8d 72 10 lea 0x10(%rdx),%rsi + 41ea05: 48 39 f0 cmp %rsi,%rax + 41ea08: 73 0f jae 41ea19 <__malloc_usable_size+0xe9> + 41ea0a: eb 21 jmp 41ea2d <__malloc_usable_size+0xfd> + 41ea0c: 0f 1f 40 00 nopl 0x0(%rax) + 41ea10: 48 8d 72 10 lea 0x10(%rdx),%rsi + 41ea14: 48 39 c6 cmp %rax,%rsi + 41ea17: 77 14 ja 41ea2d <__malloc_usable_size+0xfd> + 41ea19: 48 29 d0 sub %rdx,%rax + 41ea1c: 0f b6 14 01 movzbl (%rcx,%rax,1),%edx + 41ea20: 44 38 c2 cmp %r8b,%dl + 41ea23: 0f 84 4b ff ff ff je 41e974 <__malloc_usable_size+0x44> + 41ea29: 84 d2 test %dl,%dl + 41ea2b: 75 e3 jne 41ea10 <__malloc_usable_size+0xe0> + 41ea2d: 4d 85 d2 test %r10,%r10 + 41ea30: 8b 1d 3a bd 2a 00 mov 0x2abd3a(%rip),%ebx # 6ca770 + 41ea36: 75 1d jne 41ea55 <__malloc_usable_size+0x125> + 41ea38: 41 83 e1 04 and $0x4,%r9d + 41ea3c: 0f 84 be 00 00 00 je 41eb00 <__malloc_usable_size+0x1d0> + 41ea42: 48 81 e1 00 00 00 fc and $0xfffffffffc000000,%rcx + 41ea49: 48 8b 01 mov (%rcx),%rax + 41ea4c: 48 85 c0 test %rax,%rax + 41ea4f: 74 04 je 41ea55 <__malloc_usable_size+0x125> + 41ea51: 83 48 04 04 orl $0x4,0x4(%rax) + 41ea55: 89 d8 mov %ebx,%eax + 41ea57: 83 e0 05 and $0x5,%eax + 41ea5a: 83 f8 05 cmp $0x5,%eax + 41ea5d: 0f 84 20 ff ff ff je 41e983 <__malloc_usable_size+0x53> + 41ea63: f6 c3 01 test $0x1,%bl + 41ea66: 75 18 jne 41ea80 <__malloc_usable_size+0x150> + 41ea68: 83 e3 02 and $0x2,%ebx + 41ea6b: 0f 84 28 ff ff ff je 41e999 <__malloc_usable_size+0x69> + 41ea71: e8 8a f1 fe ff callq 40dc00 + 41ea76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41ea7d: 00 00 00 + 41ea80: 48 8d 74 24 10 lea 0x10(%rsp),%rsi + 41ea85: 31 c9 xor %ecx,%ecx + 41ea87: ba 10 00 00 00 mov $0x10,%edx + 41ea8c: c6 44 24 10 00 movb $0x0,0x10(%rsp) + 41ea91: e8 1a 34 03 00 callq 451eb0 <_itoa_word> + 41ea96: 48 39 e0 cmp %rsp,%rax + 41ea99: 48 89 c5 mov %rax,%rbp + 41ea9c: 76 25 jbe 41eac3 <__malloc_usable_size+0x193> + 41ea9e: 48 89 c2 mov %rax,%rdx + 41eaa1: 48 89 c7 mov %rax,%rdi + 41eaa4: be 30 00 00 00 mov $0x30,%esi + 41eaa9: 48 29 e2 sub %rsp,%rdx + 41eaac: 4c 8d 68 ff lea -0x1(%rax),%r13 + 41eab0: 48 29 d7 sub %rdx,%rdi + 41eab3: e8 98 18 fe ff callq 400350 <__rela_iplt_end+0x88> + 41eab8: 48 8d 44 24 ff lea -0x1(%rsp),%rax + 41eabd: 4c 29 e8 sub %r13,%rax + 41eac0: 48 01 c5 add %rax,%rbp + 41eac3: 48 8b 05 f6 e7 2a 00 mov 0x2ae7f6(%rip),%rax # 6cd2c0 <__libc_argv> + 41eaca: ba 38 20 4a 00 mov $0x4a2038,%edx + 41eacf: 49 89 e8 mov %rbp,%r8 + 41ead2: b9 d0 2a 4a 00 mov $0x4a2ad0,%ecx + 41ead7: be a8 23 4a 00 mov $0x4a23a8,%esi + 41eadc: 48 8b 00 mov (%rax),%rax + 41eadf: 48 85 c0 test %rax,%rax + 41eae2: 48 0f 45 d0 cmovne %rax,%rdx + 41eae6: 83 e3 02 and $0x2,%ebx + 41eae9: 31 c0 xor %eax,%eax + 41eaeb: 89 df mov %ebx,%edi + 41eaed: e8 ce 2a ff ff callq 4115c0 <__libc_message> + 41eaf2: 31 c0 xor %eax,%eax + 41eaf4: e9 6a fe ff ff jmpq 41e963 <__malloc_usable_size+0x33> + 41eaf9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41eb00: b8 00 a8 6c 00 mov $0x6ca800,%eax + 41eb05: e9 47 ff ff ff jmpq 41ea51 <__malloc_usable_size+0x121> + 41eb0a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +000000000041eb10 <__libc_mallopt>: + 41eb10: 55 push %rbp + 41eb11: 53 push %rbx + 41eb12: 48 63 ee movslq %esi,%rbp + 41eb15: 89 fb mov %edi,%ebx + 41eb17: 48 83 ec 08 sub $0x8,%rsp + 41eb1b: 8b 05 43 bc 2a 00 mov 0x2abc43(%rip),%eax # 6ca764 <__libc_malloc_initialized> + 41eb21: 85 c0 test %eax,%eax + 41eb23: 0f 88 b7 01 00 00 js 41ece0 <__libc_mallopt+0x1d0> + 41eb29: be 01 00 00 00 mov $0x1,%esi + 41eb2e: 31 c0 xor %eax,%eax + 41eb30: 83 3d 85 e6 2a 00 00 cmpl $0x0,0x2ae685(%rip) # 6cd1bc <__libc_multiple_threads> + 41eb37: 74 0c je 41eb45 <__libc_mallopt+0x35> + 41eb39: f0 0f b1 35 bf bc 2a lock cmpxchg %esi,0x2abcbf(%rip) # 6ca800 + 41eb40: 00 + 41eb41: 75 0b jne 41eb4e <__libc_mallopt+0x3e> + 41eb43: eb 23 jmp 41eb68 <__libc_mallopt+0x58> + 41eb45: 0f b1 35 b4 bc 2a 00 cmpxchg %esi,0x2abcb4(%rip) # 6ca800 + 41eb4c: 74 1a je 41eb68 <__libc_mallopt+0x58> + 41eb4e: 48 8d 3d ab bc 2a 00 lea 0x2abcab(%rip),%rdi # 6ca800 + 41eb55: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41eb5c: e8 6f 3a 02 00 callq 4425d0 <__lll_lock_wait_private> + 41eb61: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41eb68: bf 00 a8 6c 00 mov $0x6ca800,%edi + 41eb6d: e8 be 92 ff ff callq 417e30 + 41eb72: 90 nop + 41eb73: 83 c3 08 add $0x8,%ebx + 41eb76: 83 fb 09 cmp $0x9,%ebx + 41eb79: 0f 87 ba 00 00 00 ja 41ec39 <__libc_mallopt+0x129> + 41eb7f: ff 24 dd d8 2e 4a 00 jmpq *0x4a2ed8(,%rbx,8) + 41eb86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41eb8d: 00 00 00 + 41eb90: 31 d2 xor %edx,%edx + 41eb92: 81 fd a0 00 00 00 cmp $0xa0,%ebp + 41eb98: 77 37 ja 41ebd1 <__libc_mallopt+0xc1> + 41eb9a: 90 nop + 41eb9b: 85 ed test %ebp,%ebp + 41eb9d: b8 10 00 00 00 mov $0x10,%eax + 41eba2: 74 08 je 41ebac <__libc_mallopt+0x9c> + 41eba4: 48 8d 45 08 lea 0x8(%rbp),%rax + 41eba8: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 41ebac: 48 89 05 85 da 2a 00 mov %rax,0x2ada85(%rip) # 6cc638 + 41ebb3: ba 01 00 00 00 mov $0x1,%edx + 41ebb8: eb 17 jmp 41ebd1 <__libc_mallopt+0xc1> + 41ebba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41ebc0: 85 ed test %ebp,%ebp + 41ebc2: 7e 75 jle 41ec39 <__libc_mallopt+0x129> + 41ebc4: 90 nop + 41ebc5: ba 01 00 00 00 mov $0x1,%edx + 41ebca: 48 89 2d ef bb 2a 00 mov %rbp,0x2abbef(%rip) # 6ca7c0 + 41ebd1: 83 3d e4 e5 2a 00 00 cmpl $0x0,0x2ae5e4(%rip) # 6cd1bc <__libc_multiple_threads> + 41ebd8: 74 0b je 41ebe5 <__libc_mallopt+0xd5> + 41ebda: f0 ff 0d 1f bc 2a 00 lock decl 0x2abc1f(%rip) # 6ca800 + 41ebe1: 75 0a jne 41ebed <__libc_mallopt+0xdd> + 41ebe3: eb 22 jmp 41ec07 <__libc_mallopt+0xf7> + 41ebe5: ff 0d 15 bc 2a 00 decl 0x2abc15(%rip) # 6ca800 + 41ebeb: 74 1a je 41ec07 <__libc_mallopt+0xf7> + 41ebed: 48 8d 3d 0c bc 2a 00 lea 0x2abc0c(%rip),%rdi # 6ca800 + 41ebf4: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41ebfb: e8 00 3a 02 00 callq 442600 <__lll_unlock_wake_private> + 41ec00: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41ec07: 48 83 c4 08 add $0x8,%rsp + 41ec0b: 89 d0 mov %edx,%eax + 41ec0d: 5b pop %rbx + 41ec0e: 5d pop %rbp + 41ec0f: c3 retq + 41ec10: 85 ed test %ebp,%ebp + 41ec12: 7e 25 jle 41ec39 <__libc_mallopt+0x129> + 41ec14: 90 nop + 41ec15: ba 01 00 00 00 mov $0x1,%edx + 41ec1a: 48 89 2d 97 bb 2a 00 mov %rbp,0x2abb97(%rip) # 6ca7b8 + 41ec21: eb ae jmp 41ebd1 <__libc_mallopt+0xc1> + 41ec23: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41ec28: 90 nop + 41ec29: c7 05 a1 bb 2a 00 01 movl $0x1,0x2abba1(%rip) # 6ca7d4 + 41ec30: 00 00 00 + 41ec33: 89 2d 93 bb 2a 00 mov %ebp,0x2abb93(%rip) # 6ca7cc + 41ec39: ba 01 00 00 00 mov $0x1,%edx + 41ec3e: eb 91 jmp 41ebd1 <__libc_mallopt+0xc1> + 41ec40: 31 d2 xor %edx,%edx + 41ec42: 81 fd 00 00 00 02 cmp $0x2000000,%ebp + 41ec48: 0f 87 83 ff ff ff ja 41ebd1 <__libc_mallopt+0xc1> + 41ec4e: 90 nop + 41ec4f: c7 05 7b bb 2a 00 01 movl $0x1,0x2abb7b(%rip) # 6ca7d4 + 41ec56: 00 00 00 + 41ec59: 48 89 2d 50 bb 2a 00 mov %rbp,0x2abb50(%rip) # 6ca7b0 + 41ec60: ba 01 00 00 00 mov $0x1,%edx + 41ec65: e9 67 ff ff ff jmpq 41ebd1 <__libc_mallopt+0xc1> + 41ec6a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41ec70: 90 nop + 41ec71: c7 05 59 bb 2a 00 01 movl $0x1,0x2abb59(%rip) # 6ca7d4 + 41ec78: 00 00 00 + 41ec7b: 48 89 2d 26 bb 2a 00 mov %rbp,0x2abb26(%rip) # 6ca7a8 + 41ec82: ba 01 00 00 00 mov $0x1,%edx + 41ec87: e9 45 ff ff ff jmpq 41ebd1 <__libc_mallopt+0xc1> + 41ec8c: 0f 1f 40 00 nopl 0x0(%rax) + 41ec90: 90 nop + 41ec91: c7 05 39 bb 2a 00 01 movl $0x1,0x2abb39(%rip) # 6ca7d4 + 41ec98: 00 00 00 + 41ec9b: 48 89 2d fe ba 2a 00 mov %rbp,0x2abafe(%rip) # 6ca7a0 + 41eca2: ba 01 00 00 00 mov $0x1,%edx + 41eca7: e9 25 ff ff ff jmpq 41ebd1 <__libc_mallopt+0xc1> + 41ecac: 0f 1f 40 00 nopl 0x0(%rax) + 41ecb0: 90 nop + 41ecb1: ba 01 00 00 00 mov $0x1,%edx + 41ecb6: 89 2d 78 d9 2a 00 mov %ebp,0x2ad978(%rip) # 6cc634 + 41ecbc: e9 10 ff ff ff jmpq 41ebd1 <__libc_mallopt+0xc1> + 41ecc1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41ecc8: 90 nop + 41ecc9: ba 01 00 00 00 mov $0x1,%edx + 41ecce: 89 2d 9c ba 2a 00 mov %ebp,0x2aba9c(%rip) # 6ca770 + 41ecd4: e9 f8 fe ff ff jmpq 41ebd1 <__libc_mallopt+0xc1> + 41ecd9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41ece0: e8 0b 00 00 00 callq 41ecf0 + 41ece5: e9 3f fe ff ff jmpq 41eb29 <__libc_mallopt+0x19> + 41ecea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +000000000041ecf0 : + 41ecf0: 41 55 push %r13 + 41ecf2: 41 54 push %r12 + 41ecf4: 55 push %rbp + 41ecf5: 53 push %rbx + 41ecf6: 48 83 ec 08 sub $0x8,%rsp + 41ecfa: 4c 8b 25 3f d9 2a 00 mov 0x2ad93f(%rip),%r12 # 6cc640 <__environ> + 41ed01: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax + 41ed08: c7 05 52 ba 2a 00 00 movl $0x0,0x2aba52(%rip) # 6ca764 <__libc_malloc_initialized> + 41ed0f: 00 00 00 + 41ed12: 4d 85 e4 test %r12,%r12 + 41ed15: 64 48 c7 00 00 a8 6c movq $0x6ca800,%fs:(%rax) + 41ed1c: 00 + 41ed1d: 0f 84 9b 00 00 00 je 41edbe + 41ed23: 45 31 ed xor %r13d,%r13d + 41ed26: eb 0c jmp 41ed34 + 41ed28: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41ed2f: 00 + 41ed30: 49 83 c4 08 add $0x8,%r12 + 41ed34: 49 8b 1c 24 mov (%r12),%rbx + 41ed38: 48 85 db test %rbx,%rbx + 41ed3b: 74 73 je 41edb0 + 41ed3d: 80 3b 4d cmpb $0x4d,(%rbx) + 41ed40: 75 ee jne 41ed30 + 41ed42: 80 7b 01 41 cmpb $0x41,0x1(%rbx) + 41ed46: 75 e8 jne 41ed30 + 41ed48: 80 7b 02 4c cmpb $0x4c,0x2(%rbx) + 41ed4c: 75 e2 jne 41ed30 + 41ed4e: 80 7b 03 4c cmpb $0x4c,0x3(%rbx) + 41ed52: 75 dc jne 41ed30 + 41ed54: 80 7b 04 4f cmpb $0x4f,0x4(%rbx) + 41ed58: 75 d6 jne 41ed30 + 41ed5a: 80 7b 05 43 cmpb $0x43,0x5(%rbx) + 41ed5e: 75 d0 jne 41ed30 + 41ed60: 80 7b 06 5f cmpb $0x5f,0x6(%rbx) + 41ed64: 75 ca jne 41ed30 + 41ed66: 48 89 dd mov %rbx,%rbp + 41ed69: 49 83 c4 08 add $0x8,%r12 + 41ed6d: 48 83 c5 07 add $0x7,%rbp + 41ed71: 74 3d je 41edb0 + 41ed73: 0f b6 53 07 movzbl 0x7(%rbx),%edx + 41ed77: 84 d2 test %dl,%dl + 41ed79: 74 b9 je 41ed34 + 41ed7b: 31 c0 xor %eax,%eax + 41ed7d: 80 fa 3d cmp $0x3d,%dl + 41ed80: 74 b2 je 41ed34 + 41ed82: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41ed88: 48 83 c0 01 add $0x1,%rax + 41ed8c: 0f b6 54 03 07 movzbl 0x7(%rbx,%rax,1),%edx + 41ed91: 84 d2 test %dl,%dl + 41ed93: 74 9f je 41ed34 + 41ed95: 80 fa 3d cmp $0x3d,%dl + 41ed98: 75 ee jne 41ed88 + 41ed9a: 48 83 e8 06 sub $0x6,%rax + 41ed9e: 48 83 f8 09 cmp $0x9,%rax + 41eda2: 77 90 ja 41ed34 + 41eda4: ff 24 c5 28 2f 4a 00 jmpq *0x4a2f28(,%rax,8) + 41edab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41edb0: 4d 85 ed test %r13,%r13 + 41edb3: 74 09 je 41edbe + 41edb5: 41 0f be 45 00 movsbl 0x0(%r13),%eax + 41edba: 84 c0 test %al,%al + 41edbc: 75 2a jne 41ede8 + 41edbe: 48 8b 05 2b d8 2a 00 mov 0x2ad82b(%rip),%rax # 6cc5f0 <__malloc_initialize_hook> + 41edc5: 48 85 c0 test %rax,%rax + 41edc8: 74 02 je 41edcc + 41edca: ff d0 callq *%rax + 41edcc: c7 05 8e b9 2a 00 01 movl $0x1,0x2ab98e(%rip) # 6ca764 <__libc_malloc_initialized> + 41edd3: 00 00 00 + 41edd6: 48 83 c4 08 add $0x8,%rsp + 41edda: 5b pop %rbx + 41eddb: 5d pop %rbp + 41eddc: 41 5c pop %r12 + 41edde: 41 5d pop %r13 + 41ede0: c3 retq + 41ede1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41ede8: 8d 70 d0 lea -0x30(%rax),%esi + 41edeb: bf fb ff ff ff mov $0xfffffffb,%edi + 41edf0: e8 1b fd ff ff callq 41eb10 <__libc_mallopt> + 41edf5: 8b 15 75 b9 2a 00 mov 0x2ab975(%rip),%edx # 6ca770 + 41edfb: 85 d2 test %edx,%edx + 41edfd: 74 bf je 41edbe + 41edff: 8b 05 03 d8 2a 00 mov 0x2ad803(%rip),%eax # 6cc608 + 41ee05: 85 c0 test %eax,%eax + 41ee07: 0f 84 ac 01 00 00 je 41efb9 + 41ee0d: c7 05 f1 d7 2a 00 00 movl $0x0,0x2ad7f1(%rip) # 6cc608 + 41ee14: 00 00 00 + 41ee17: eb a5 jmp 41edbe + 41ee19: 8b 0d 79 b1 2a 00 mov 0x2ab179(%rip),%ecx # 6c9f98 <__libc_enable_secure> + 41ee1f: 85 c9 test %ecx,%ecx + 41ee21: 0f 85 0d ff ff ff jne 41ed34 + 41ee27: ba 0f 00 00 00 mov $0xf,%edx + 41ee2c: be 1f 22 4a 00 mov $0x4a221f,%esi + 41ee31: 48 89 ef mov %rbp,%rdi + 41ee34: e8 f7 14 fe ff callq 400330 <__rela_iplt_end+0x68> + 41ee39: 85 c0 test %eax,%eax + 41ee3b: 0f 84 d4 01 00 00 je 41f015 + 41ee41: ba 0f 00 00 00 mov $0xf,%edx + 41ee46: be 2f 22 4a 00 mov $0x4a222f,%esi + 41ee4b: 48 89 ef mov %rbp,%rdi + 41ee4e: e8 dd 14 fe ff callq 400330 <__rela_iplt_end+0x68> + 41ee53: 85 c0 test %eax,%eax + 41ee55: 0f 85 d9 fe ff ff jne 41ed34 + 41ee5b: 48 8d 7b 17 lea 0x17(%rbx),%rdi + 41ee5f: 31 f6 xor %esi,%esi + 41ee61: ba 0a 00 00 00 mov $0xa,%edx + 41ee66: e8 65 2b 03 00 callq 4519d0 <__strtol> + 41ee6b: bf fd ff ff ff mov $0xfffffffd,%edi + 41ee70: 89 c6 mov %eax,%esi + 41ee72: e8 99 fc ff ff callq 41eb10 <__libc_mallopt> + 41ee77: e9 b8 fe ff ff jmpq 41ed34 + 41ee7c: 0f 1f 40 00 nopl 0x0(%rax) + 41ee80: 8b 35 12 b1 2a 00 mov 0x2ab112(%rip),%esi # 6c9f98 <__libc_enable_secure> + 41ee86: 85 f6 test %esi,%esi + 41ee88: 0f 85 a6 fe ff ff jne 41ed34 + 41ee8e: ba 0a 00 00 00 mov $0xa,%edx + 41ee93: be 14 22 4a 00 mov $0x4a2214,%esi + 41ee98: 48 89 ef mov %rbp,%rdi + 41ee9b: e8 90 14 fe ff callq 400330 <__rela_iplt_end+0x68> + 41eea0: 85 c0 test %eax,%eax + 41eea2: 0f 85 8c fe ff ff jne 41ed34 + 41eea8: 48 8d 7b 12 lea 0x12(%rbx),%rdi + 41eeac: 31 f6 xor %esi,%esi + 41eeae: ba 0a 00 00 00 mov $0xa,%edx + 41eeb3: e8 18 2b 03 00 callq 4519d0 <__strtol> + 41eeb8: bf f9 ff ff ff mov $0xfffffff9,%edi + 41eebd: 89 c6 mov %eax,%esi + 41eebf: e8 4c fc ff ff callq 41eb10 <__libc_mallopt> + 41eec4: e9 6b fe ff ff jmpq 41ed34 + 41eec9: 8b 3d c9 b0 2a 00 mov 0x2ab0c9(%rip),%edi # 6c9f98 <__libc_enable_secure> + 41eecf: 85 ff test %edi,%edi + 41eed1: 0f 85 5d fe ff ff jne 41ed34 + 41eed7: ba 09 00 00 00 mov $0x9,%edx + 41eedc: be 00 22 4a 00 mov $0x4a2200,%esi + 41eee1: 48 89 ef mov %rbp,%rdi + 41eee4: e8 47 14 fe ff callq 400330 <__rela_iplt_end+0x68> + 41eee9: 85 c0 test %eax,%eax + 41eeeb: 0f 84 45 01 00 00 je 41f036 + 41eef1: ba 09 00 00 00 mov $0x9,%edx + 41eef6: be 0a 22 4a 00 mov $0x4a220a,%esi + 41eefb: 48 89 ef mov %rbp,%rdi + 41eefe: e8 2d 14 fe ff callq 400330 <__rela_iplt_end+0x68> + 41ef03: 85 c0 test %eax,%eax + 41ef05: 0f 85 29 fe ff ff jne 41ed34 + 41ef0b: 48 8d 7b 11 lea 0x11(%rbx),%rdi + 41ef0f: 31 f6 xor %esi,%esi + 41ef11: ba 0a 00 00 00 mov $0xa,%edx + 41ef16: e8 b5 2a 03 00 callq 4519d0 <__strtol> + 41ef1b: bf f8 ff ff ff mov $0xfffffff8,%edi + 41ef20: 89 c6 mov %eax,%esi + 41ef22: e8 e9 fb ff ff callq 41eb10 <__libc_mallopt> + 41ef27: e9 08 fe ff ff jmpq 41ed34 + 41ef2c: 0f 1f 40 00 nopl 0x0(%rax) + 41ef30: 44 8b 05 61 b0 2a 00 mov 0x2ab061(%rip),%r8d # 6c9f98 <__libc_enable_secure> + 41ef37: 45 85 c0 test %r8d,%r8d + 41ef3a: 0f 85 f4 fd ff ff jne 41ed34 + 41ef40: ba 08 00 00 00 mov $0x8,%edx + 41ef45: be ee 21 4a 00 mov $0x4a21ee,%esi + 41ef4a: 48 89 ef mov %rbp,%rdi + 41ef4d: e8 de 13 fe ff callq 400330 <__rela_iplt_end+0x68> + 41ef52: 85 c0 test %eax,%eax + 41ef54: 0f 84 9a 00 00 00 je 41eff4 + 41ef5a: ba 08 00 00 00 mov $0x8,%edx + 41ef5f: be f7 21 4a 00 mov $0x4a21f7,%esi + 41ef64: 48 89 ef mov %rbp,%rdi + 41ef67: e8 c4 13 fe ff callq 400330 <__rela_iplt_end+0x68> + 41ef6c: 85 c0 test %eax,%eax + 41ef6e: 0f 85 c0 fd ff ff jne 41ed34 + 41ef74: 48 8d 7b 10 lea 0x10(%rbx),%rdi + 41ef78: 31 f6 xor %esi,%esi + 41ef7a: ba 0a 00 00 00 mov $0xa,%edx + 41ef7f: e8 4c 2a 03 00 callq 4519d0 <__strtol> + 41ef84: bf fa ff ff ff mov $0xfffffffa,%edi + 41ef89: 89 c6 mov %eax,%esi + 41ef8b: e8 80 fb ff ff callq 41eb10 <__libc_mallopt> + 41ef90: e9 9f fd ff ff jmpq 41ed34 + 41ef95: 0f 1f 00 nopl (%rax) + 41ef98: ba 06 00 00 00 mov $0x6,%edx + 41ef9d: be b9 4f 4a 00 mov $0x4a4fb9,%esi + 41efa2: 48 89 ef mov %rbp,%rdi + 41efa5: 48 83 c3 0e add $0xe,%rbx + 41efa9: e8 82 13 fe ff callq 400330 <__rela_iplt_end+0x68> + 41efae: 85 c0 test %eax,%eax + 41efb0: 4c 0f 44 eb cmove %rbx,%r13 + 41efb4: e9 7b fd ff ff jmpq 41ed34 + 41efb9: c7 05 49 d6 2a 00 01 movl $0x1,0x2ad649(%rip) # 6cc60c + 41efc0: 00 00 00 + 41efc3: 48 c7 05 ba b7 2a 00 movq $0x41c720,0x2ab7ba(%rip) # 6ca788 <__malloc_hook> + 41efca: 20 c7 41 00 + 41efce: 48 c7 05 0f d6 2a 00 movq $0x4189e0,0x2ad60f(%rip) # 6cc5e8 <__free_hook> + 41efd5: e0 89 41 00 + 41efd9: 48 c7 05 9c b7 2a 00 movq $0x41d180,0x2ab79c(%rip) # 6ca780 <__realloc_hook> + 41efe0: 80 d1 41 00 + 41efe4: 48 c7 05 89 b7 2a 00 movq $0x41c870,0x2ab789(%rip) # 6ca778 <__memalign_hook> + 41efeb: 70 c8 41 00 + 41efef: e9 ca fd ff ff jmpq 41edbe + 41eff4: 48 8d 7b 10 lea 0x10(%rbx),%rdi + 41eff8: 31 f6 xor %esi,%esi + 41effa: ba 0a 00 00 00 mov $0xa,%edx + 41efff: e8 cc 29 03 00 callq 4519d0 <__strtol> + 41f004: bf fe ff ff ff mov $0xfffffffe,%edi + 41f009: 89 c6 mov %eax,%esi + 41f00b: e8 00 fb ff ff callq 41eb10 <__libc_mallopt> + 41f010: e9 1f fd ff ff jmpq 41ed34 + 41f015: 48 8d 7b 17 lea 0x17(%rbx),%rdi + 41f019: 31 f6 xor %esi,%esi + 41f01b: ba 0a 00 00 00 mov $0xa,%edx + 41f020: e8 ab 29 03 00 callq 4519d0 <__strtol> + 41f025: bf ff ff ff ff mov $0xffffffff,%edi + 41f02a: 89 c6 mov %eax,%esi + 41f02c: e8 df fa ff ff callq 41eb10 <__libc_mallopt> + 41f031: e9 fe fc ff ff jmpq 41ed34 + 41f036: 48 8d 7b 11 lea 0x11(%rbx),%rdi + 41f03a: 31 f6 xor %esi,%esi + 41f03c: ba 0a 00 00 00 mov $0xa,%edx + 41f041: e8 8a 29 03 00 callq 4519d0 <__strtol> + 41f046: bf fc ff ff ff mov $0xfffffffc,%edi + 41f04b: 89 c6 mov %eax,%esi + 41f04d: e8 be fa ff ff callq 41eb10 <__libc_mallopt> + 41f052: e9 dd fc ff ff jmpq 41ed34 + 41f057: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 41f05e: 00 00 + +000000000041f060 : + 41f060: 55 push %rbp + 41f061: 53 push %rbx + 41f062: 48 89 fd mov %rdi,%rbp + 41f065: 48 83 ec 08 sub $0x8,%rsp + 41f069: 8b 05 f5 b6 2a 00 mov 0x2ab6f5(%rip),%eax # 6ca764 <__libc_malloc_initialized> + 41f06f: 48 c7 05 0e b7 2a 00 movq $0x0,0x2ab70e(%rip) # 6ca788 <__malloc_hook> + 41f076: 00 00 00 00 + 41f07a: 85 c0 test %eax,%eax + 41f07c: 0f 88 46 01 00 00 js 41f1c8 + 41f082: 31 c0 xor %eax,%eax + 41f084: 48 85 c0 test %rax,%rax + 41f087: 0f 85 50 01 00 00 jne 41f1dd + 41f08d: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax + 41f094: 64 48 8b 18 mov %fs:(%rax),%rbx + 41f098: 48 85 db test %rbx,%rbx + 41f09b: 74 0c je 41f0a9 + 41f09d: 8b 43 04 mov 0x4(%rbx),%eax + 41f0a0: 83 e0 04 and $0x4,%eax + 41f0a3: 0f 84 8f 00 00 00 je 41f138 + 41f0a9: e8 b2 80 ff ff callq 417160 + 41f0ae: 48 85 c0 test %rax,%rax + 41f0b1: 48 89 c3 mov %rax,%rbx + 41f0b4: 0f 84 b6 00 00 00 je 41f170 + 41f0ba: 48 89 ee mov %rbp,%rsi + 41f0bd: 48 89 df mov %rbx,%rdi + 41f0c0: e8 7b c4 ff ff callq 41b540 <_int_malloc> + 41f0c5: 48 85 c0 test %rax,%rax + 41f0c8: 48 89 c2 mov %rax,%rdx + 41f0cb: 0f 84 c7 00 00 00 je 41f198 + 41f0d1: 83 3d e4 e0 2a 00 00 cmpl $0x0,0x2ae0e4(%rip) # 6cd1bc <__libc_multiple_threads> + 41f0d8: 74 07 je 41f0e1 + 41f0da: f0 ff 0b lock decl (%rbx) + 41f0dd: 75 06 jne 41f0e5 + 41f0df: eb 1a jmp 41f0fb + 41f0e1: ff 0b decl (%rbx) + 41f0e3: 74 16 je 41f0fb + 41f0e5: 48 8d 3b lea (%rbx),%rdi + 41f0e8: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41f0ef: e8 0c 35 02 00 callq 442600 <__lll_unlock_wake_private> + 41f0f4: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41f0fb: 48 85 d2 test %rdx,%rdx + 41f0fe: 0f 84 ec 00 00 00 je 41f1f0 + 41f104: 48 8b 42 f8 mov -0x8(%rdx),%rax + 41f108: a8 02 test $0x2,%al + 41f10a: 75 1f jne 41f12b + 41f10c: a8 04 test $0x4,%al + 41f10e: b9 00 a8 6c 00 mov $0x6ca800,%ecx + 41f113: 74 0d je 41f122 + 41f115: 48 8d 42 f0 lea -0x10(%rdx),%rax + 41f119: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax + 41f11f: 48 8b 08 mov (%rax),%rcx + 41f122: 48 39 d9 cmp %rbx,%rcx + 41f125: 0f 85 cc 00 00 00 jne 41f1f7 + 41f12b: 48 89 d0 mov %rdx,%rax + 41f12e: 48 83 c4 08 add $0x8,%rsp + 41f132: 5b pop %rbx + 41f133: 5d pop %rbp + 41f134: c3 retq + 41f135: 0f 1f 00 nopl (%rax) + 41f138: be 01 00 00 00 mov $0x1,%esi + 41f13d: 83 3d 78 e0 2a 00 00 cmpl $0x0,0x2ae078(%rip) # 6cd1bc <__libc_multiple_threads> + 41f144: 74 08 je 41f14e + 41f146: f0 0f b1 33 lock cmpxchg %esi,(%rbx) + 41f14a: 75 07 jne 41f153 + 41f14c: eb 1b jmp 41f169 + 41f14e: 0f b1 33 cmpxchg %esi,(%rbx) + 41f151: 74 16 je 41f169 + 41f153: 48 8d 3b lea (%rbx),%rdi + 41f156: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41f15d: e8 6e 34 02 00 callq 4425d0 <__lll_lock_wait_private> + 41f162: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41f169: e9 4c ff ff ff jmpq 41f0ba + 41f16e: 66 90 xchg %ax,%ax + 41f170: 31 f6 xor %esi,%esi + 41f172: 48 89 ef mov %rbp,%rdi + 41f175: e8 d6 82 ff ff callq 417450 + 41f17a: 48 89 ee mov %rbp,%rsi + 41f17d: 48 89 c7 mov %rax,%rdi + 41f180: 48 89 c3 mov %rax,%rbx + 41f183: e8 b8 c3 ff ff callq 41b540 <_int_malloc> + 41f188: 48 85 c0 test %rax,%rax + 41f18b: 48 89 c2 mov %rax,%rdx + 41f18e: 75 25 jne 41f1b5 + 41f190: 48 85 db test %rbx,%rbx + 41f193: 74 20 je 41f1b5 + 41f195: 0f 1f 00 nopl (%rax) + 41f198: 90 nop + 41f199: 48 89 df mov %rbx,%rdi + 41f19c: 48 89 ee mov %rbp,%rsi + 41f19f: e8 4c 88 ff ff callq 4179f0 + 41f1a4: 48 89 ee mov %rbp,%rsi + 41f1a7: 48 89 c7 mov %rax,%rdi + 41f1aa: 48 89 c3 mov %rax,%rbx + 41f1ad: e8 8e c3 ff ff callq 41b540 <_int_malloc> + 41f1b2: 48 89 c2 mov %rax,%rdx + 41f1b5: 48 85 db test %rbx,%rbx + 41f1b8: 0f 85 13 ff ff ff jne 41f0d1 + 41f1be: e9 38 ff ff ff jmpq 41f0fb + 41f1c3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41f1c8: e8 23 fb ff ff callq 41ecf0 + 41f1cd: 48 8b 05 b4 b5 2a 00 mov 0x2ab5b4(%rip),%rax # 6ca788 <__malloc_hook> + 41f1d4: 48 85 c0 test %rax,%rax + 41f1d7: 0f 84 b0 fe ff ff je 41f08d + 41f1dd: 48 8b 74 24 18 mov 0x18(%rsp),%rsi + 41f1e2: 48 83 c4 08 add $0x8,%rsp + 41f1e6: 48 89 ef mov %rbp,%rdi + 41f1e9: 5b pop %rbx + 41f1ea: 5d pop %rbp + 41f1eb: ff e0 jmpq *%rax + 41f1ed: 0f 1f 00 nopl (%rax) + 41f1f0: 31 c0 xor %eax,%eax + 41f1f2: e9 37 ff ff ff jmpq 41f12e + 41f1f7: b9 48 2e 4a 00 mov $0x4a2e48,%ecx + 41f1fc: ba 6f 0b 00 00 mov $0xb6f,%edx + 41f201: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41f206: bf 58 29 4a 00 mov $0x4a2958,%edi + 41f20b: e8 10 7c ff ff callq 416e20 <__malloc_assert> + +000000000041f210 : + 41f210: 41 57 push %r15 + 41f212: 41 56 push %r14 + 41f214: 41 55 push %r13 + 41f216: 41 54 push %r12 + 41f218: 49 89 f5 mov %rsi,%r13 + 41f21b: 55 push %rbp + 41f21c: 53 push %rbx + 41f21d: 48 89 fb mov %rdi,%rbx + 41f220: 48 83 ec 38 sub $0x38,%rsp + 41f224: 8b 05 3a b5 2a 00 mov 0x2ab53a(%rip),%eax # 6ca764 <__libc_malloc_initialized> + 41f22a: 48 c7 05 53 b5 2a 00 movq $0x0,0x2ab553(%rip) # 6ca788 <__malloc_hook> + 41f231: 00 00 00 00 + 41f235: 48 c7 05 40 b5 2a 00 movq $0x0,0x2ab540(%rip) # 6ca780 <__realloc_hook> + 41f23c: 00 00 00 00 + 41f240: 85 c0 test %eax,%eax + 41f242: 0f 88 18 02 00 00 js 41f460 + 41f248: 31 c0 xor %eax,%eax + 41f24a: 48 85 c0 test %rax,%rax + 41f24d: 0f 85 25 02 00 00 jne 41f478 + 41f253: 4d 85 ed test %r13,%r13 + 41f256: 75 09 jne 41f261 + 41f258: 48 85 db test %rbx,%rbx + 41f25b: 0f 85 8f 02 00 00 jne 41f4f0 + 41f261: 48 85 db test %rbx,%rbx + 41f264: 0f 84 1e 03 00 00 je 41f588 + 41f26a: 48 8b 43 f8 mov -0x8(%rbx),%rax + 41f26e: 4c 8d 73 f0 lea -0x10(%rbx),%r14 + 41f272: 49 89 c7 mov %rax,%r15 + 41f275: 48 89 c1 mov %rax,%rcx + 41f278: 49 83 e7 f8 and $0xfffffffffffffff8,%r15 + 41f27c: 83 e1 02 and $0x2,%ecx + 41f27f: 74 7f je 41f300 + 41f281: 4c 89 f8 mov %r15,%rax + 41f284: 48 f7 d8 neg %rax + 41f287: 49 39 c6 cmp %rax,%r14 + 41f28a: 0f 87 50 03 00 00 ja 41f5e0 + 41f290: 41 f6 c6 0f test $0xf,%r14b + 41f294: 0f 85 46 03 00 00 jne 41f5e0 + 41f29a: 45 31 e4 xor %r12d,%r12d + 41f29d: 49 83 fd bf cmp $0xffffffffffffffbf,%r13 + 41f2a1: 0f 87 e9 01 00 00 ja 41f490 + 41f2a7: 49 8d 45 17 lea 0x17(%r13),%rax + 41f2ab: 48 89 c2 mov %rax,%rdx + 41f2ae: 48 83 e2 f0 and $0xfffffffffffffff0,%rdx + 41f2b2: 48 83 f8 20 cmp $0x20,%rax + 41f2b6: b8 20 00 00 00 mov $0x20,%eax + 41f2bb: 48 0f 42 d0 cmovb %rax,%rdx + 41f2bf: 48 85 c9 test %rcx,%rcx + 41f2c2: 0f 84 98 00 00 00 je 41f360 + 41f2c8: 48 89 d6 mov %rdx,%rsi + 41f2cb: 4c 89 f7 mov %r14,%rdi + 41f2ce: 48 89 54 24 08 mov %rdx,0x8(%rsp) + 41f2d3: e8 48 7d ff ff callq 417020 + 41f2d8: 48 85 c0 test %rax,%rax + 41f2db: 48 8d 68 10 lea 0x10(%rax),%rbp + 41f2df: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 41f2e4: 0f 84 be 01 00 00 je 41f4a8 + 41f2ea: 48 83 c4 38 add $0x38,%rsp + 41f2ee: 48 89 e8 mov %rbp,%rax + 41f2f1: 5b pop %rbx + 41f2f2: 5d pop %rbp + 41f2f3: 41 5c pop %r12 + 41f2f5: 41 5d pop %r13 + 41f2f7: 41 5e pop %r14 + 41f2f9: 41 5f pop %r15 + 41f2fb: c3 retq + 41f2fc: 0f 1f 40 00 nopl 0x0(%rax) + 41f300: a8 04 test $0x4,%al + 41f302: 0f 84 28 01 00 00 je 41f430 + 41f308: 4c 89 f0 mov %r14,%rax + 41f30b: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax + 41f311: 4c 8b 20 mov (%rax),%r12 + 41f314: 4c 89 f8 mov %r15,%rax + 41f317: 48 f7 d8 neg %rax + 41f31a: 49 39 c6 cmp %rax,%r14 + 41f31d: 77 0a ja 41f329 + 41f31f: 41 f6 c6 0f test $0xf,%r14b + 41f323: 0f 84 74 ff ff ff je 41f29d + 41f329: 4d 85 e4 test %r12,%r12 + 41f32c: 8b 2d 3e b4 2a 00 mov 0x2ab43e(%rip),%ebp # 6ca770 + 41f332: 74 06 je 41f33a + 41f334: 41 83 4c 24 04 04 orl $0x4,0x4(%r12) + 41f33a: 89 e8 mov %ebp,%eax + 41f33c: 83 e0 05 and $0x5,%eax + 41f33f: 83 f8 05 cmp $0x5,%eax + 41f342: 0f 84 a8 02 00 00 je 41f5f0 + 41f348: 40 f6 c5 01 test $0x1,%bpl + 41f34c: 0f 85 ae 01 00 00 jne 41f500 + 41f352: 83 e5 02 and $0x2,%ebp + 41f355: 0f 85 b2 02 00 00 jne 41f60d + 41f35b: 31 ed xor %ebp,%ebp + 41f35d: eb 8b jmp 41f2ea + 41f35f: 90 nop + 41f360: be 01 00 00 00 mov $0x1,%esi + 41f365: 31 c0 xor %eax,%eax + 41f367: 83 3d 4e de 2a 00 00 cmpl $0x0,0x2ade4e(%rip) # 6cd1bc <__libc_multiple_threads> + 41f36e: 74 0a je 41f37a + 41f370: f0 41 0f b1 34 24 lock cmpxchg %esi,(%r12) + 41f376: 75 09 jne 41f381 + 41f378: eb 1e jmp 41f398 + 41f37a: 41 0f b1 34 24 cmpxchg %esi,(%r12) + 41f37f: 74 17 je 41f398 + 41f381: 49 8d 3c 24 lea (%r12),%rdi + 41f385: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41f38c: e8 3f 32 02 00 callq 4425d0 <__lll_lock_wait_private> + 41f391: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41f398: 48 89 d1 mov %rdx,%rcx + 41f39b: 4c 89 f6 mov %r14,%rsi + 41f39e: 4c 89 fa mov %r15,%rdx + 41f3a1: 4c 89 e7 mov %r12,%rdi + 41f3a4: e8 b7 d6 ff ff callq 41ca60 <_int_realloc> + 41f3a9: 48 89 c5 mov %rax,%rbp + 41f3ac: 83 3d 09 de 2a 00 00 cmpl $0x0,0x2ade09(%rip) # 6cd1bc <__libc_multiple_threads> + 41f3b3: 74 09 je 41f3be + 41f3b5: f0 41 ff 0c 24 lock decl (%r12) + 41f3ba: 75 08 jne 41f3c4 + 41f3bc: eb 1d jmp 41f3db + 41f3be: 41 ff 0c 24 decl (%r12) + 41f3c2: 74 17 je 41f3db + 41f3c4: 49 8d 3c 24 lea (%r12),%rdi + 41f3c8: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41f3cf: e8 2c 32 02 00 callq 442600 <__lll_unlock_wake_private> + 41f3d4: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41f3db: 48 85 ed test %rbp,%rbp + 41f3de: 0f 84 bc 01 00 00 je 41f5a0 + 41f3e4: 48 8b 45 f8 mov -0x8(%rbp),%rax + 41f3e8: a8 02 test $0x2,%al + 41f3ea: 0f 85 fa fe ff ff jne 41f2ea + 41f3f0: a8 04 test $0x4,%al + 41f3f2: ba 00 a8 6c 00 mov $0x6ca800,%edx + 41f3f7: 74 0d je 41f406 + 41f3f9: 48 8d 45 f0 lea -0x10(%rbp),%rax + 41f3fd: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax + 41f403: 48 8b 10 mov (%rax),%rdx + 41f406: 4c 39 e2 cmp %r12,%rdx + 41f409: 0f 84 db fe ff ff je 41f2ea + 41f40f: b9 18 2e 4a 00 mov $0x4a2e18,%ecx + 41f414: ba e9 0b 00 00 mov $0xbe9,%edx + 41f419: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41f41e: bf c0 29 4a 00 mov $0x4a29c0,%edi + 41f423: e8 f8 79 ff ff callq 416e20 <__malloc_assert> + 41f428: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41f42f: 00 + 41f430: 4c 89 f8 mov %r15,%rax + 41f433: 48 f7 d8 neg %rax + 41f436: 49 39 c6 cmp %rax,%r14 + 41f439: 77 10 ja 41f44b + 41f43b: 41 f6 c6 0f test $0xf,%r14b + 41f43f: 41 bc 00 a8 6c 00 mov $0x6ca800,%r12d + 41f445: 0f 84 52 fe ff ff je 41f29d + 41f44b: 8b 2d 1f b3 2a 00 mov 0x2ab31f(%rip),%ebp # 6ca770 + 41f451: 41 bc 00 a8 6c 00 mov $0x6ca800,%r12d + 41f457: e9 d8 fe ff ff jmpq 41f334 + 41f45c: 0f 1f 40 00 nopl 0x0(%rax) + 41f460: e8 8b f8 ff ff callq 41ecf0 + 41f465: 48 8b 05 14 b3 2a 00 mov 0x2ab314(%rip),%rax # 6ca780 <__realloc_hook> + 41f46c: 48 85 c0 test %rax,%rax + 41f46f: 0f 84 de fd ff ff je 41f253 + 41f475: 0f 1f 00 nopl (%rax) + 41f478: 48 8b 54 24 68 mov 0x68(%rsp),%rdx + 41f47d: 4c 89 ee mov %r13,%rsi + 41f480: 48 89 df mov %rbx,%rdi + 41f483: ff d0 callq *%rax + 41f485: 48 89 c5 mov %rax,%rbp + 41f488: e9 5d fe ff ff jmpq 41f2ea + 41f48d: 0f 1f 00 nopl (%rax) + 41f490: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41f497: 31 ed xor %ebp,%ebp + 41f499: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) + 41f4a0: e9 45 fe ff ff jmpq 41f2ea + 41f4a5: 0f 1f 00 nopl (%rax) + 41f4a8: 49 8d 47 f8 lea -0x8(%r15),%rax + 41f4ac: 48 89 dd mov %rbx,%rbp + 41f4af: 48 39 c2 cmp %rax,%rdx + 41f4b2: 0f 86 32 fe ff ff jbe 41f2ea + 41f4b8: 4c 89 ef mov %r13,%rdi + 41f4bb: e8 50 e5 ff ff callq 41da10 <__libc_malloc> + 41f4c0: 48 85 c0 test %rax,%rax + 41f4c3: 48 89 c3 mov %rax,%rbx + 41f4c6: 0f 84 8f fe ff ff je 41f35b + 41f4cc: 49 8d 57 f0 lea -0x10(%r15),%rdx + 41f4d0: 48 89 ee mov %rbp,%rsi + 41f4d3: 48 89 c7 mov %rax,%rdi + 41f4d6: 48 89 dd mov %rbx,%rbp + 41f4d9: e8 42 cb 00 00 callq 42c020 + 41f4de: 4c 89 f7 mov %r14,%rdi + 41f4e1: e8 0a 88 ff ff callq 417cf0 + 41f4e6: e9 ff fd ff ff jmpq 41f2ea + 41f4eb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41f4f0: 48 89 df mov %rbx,%rdi + 41f4f3: 31 ed xor %ebp,%ebp + 41f4f5: e8 b6 e8 ff ff callq 41ddb0 <__cfree> + 41f4fa: e9 eb fd ff ff jmpq 41f2ea + 41f4ff: 90 nop + 41f500: 4c 8d 64 24 10 lea 0x10(%rsp),%r12 + 41f505: 48 8d 74 24 20 lea 0x20(%rsp),%rsi + 41f50a: 31 c9 xor %ecx,%ecx + 41f50c: 48 89 df mov %rbx,%rdi + 41f50f: ba 10 00 00 00 mov $0x10,%edx + 41f514: c6 44 24 20 00 movb $0x0,0x20(%rsp) + 41f519: e8 92 29 03 00 callq 451eb0 <_itoa_word> + 41f51e: 4c 39 e0 cmp %r12,%rax + 41f521: 48 89 c3 mov %rax,%rbx + 41f524: 76 25 jbe 41f54b + 41f526: 48 89 c2 mov %rax,%rdx + 41f529: 48 89 c7 mov %rax,%rdi + 41f52c: be 30 00 00 00 mov $0x30,%esi + 41f531: 4c 29 e2 sub %r12,%rdx + 41f534: 4c 8d 68 ff lea -0x1(%rax),%r13 + 41f538: 48 29 d7 sub %rdx,%rdi + 41f53b: e8 10 0e fe ff callq 400350 <__rela_iplt_end+0x88> + 41f540: 48 8d 44 24 0f lea 0xf(%rsp),%rax + 41f545: 4c 29 e8 sub %r13,%rax + 41f548: 48 01 c3 add %rax,%rbx + 41f54b: 48 8b 05 6e dd 2a 00 mov 0x2add6e(%rip),%rax # 6cd2c0 <__libc_argv> + 41f552: 89 ef mov %ebp,%edi + 41f554: ba 38 20 4a 00 mov $0x4a2038,%edx + 41f559: 49 89 d8 mov %rbx,%r8 + 41f55c: b9 c6 21 4a 00 mov $0x4a21c6,%ecx + 41f561: be a8 23 4a 00 mov $0x4a23a8,%esi + 41f566: 48 8b 00 mov (%rax),%rax + 41f569: 48 85 c0 test %rax,%rax + 41f56c: 48 0f 45 d0 cmovne %rax,%rdx + 41f570: 83 e7 02 and $0x2,%edi + 41f573: 31 c0 xor %eax,%eax + 41f575: e8 46 20 ff ff callq 4115c0 <__libc_message> + 41f57a: 31 ed xor %ebp,%ebp + 41f57c: e9 69 fd ff ff jmpq 41f2ea + 41f581: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41f588: 4c 89 ef mov %r13,%rdi + 41f58b: e8 80 e4 ff ff callq 41da10 <__libc_malloc> + 41f590: 48 89 c5 mov %rax,%rbp + 41f593: e9 52 fd ff ff jmpq 41f2ea + 41f598: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41f59f: 00 + 41f5a0: 90 nop + 41f5a1: 4c 89 ef mov %r13,%rdi + 41f5a4: 31 ed xor %ebp,%ebp + 41f5a6: e8 65 e4 ff ff callq 41da10 <__libc_malloc> + 41f5ab: 48 85 c0 test %rax,%rax + 41f5ae: 49 89 c5 mov %rax,%r13 + 41f5b1: 0f 84 33 fd ff ff je 41f2ea + 41f5b7: 49 8d 57 f8 lea -0x8(%r15),%rdx + 41f5bb: 48 89 de mov %rbx,%rsi + 41f5be: 48 89 c7 mov %rax,%rdi + 41f5c1: 4c 89 ed mov %r13,%rbp + 41f5c4: e8 57 ca 00 00 callq 42c020 + 41f5c9: 31 d2 xor %edx,%edx + 41f5cb: 4c 89 f6 mov %r14,%rsi + 41f5ce: 4c 89 e7 mov %r12,%rdi + 41f5d1: e8 ea a1 ff ff callq 4197c0 <_int_free> + 41f5d6: e9 0f fd ff ff jmpq 41f2ea + 41f5db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41f5e0: 8b 2d 8a b1 2a 00 mov 0x2ab18a(%rip),%ebp # 6ca770 + 41f5e6: e9 4f fd ff ff jmpq 41f33a + 41f5eb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41f5f0: 89 ef mov %ebp,%edi + 41f5f2: ba c6 21 4a 00 mov $0x4a21c6,%edx + 41f5f7: be 3c ca 4b 00 mov $0x4bca3c,%esi + 41f5fc: 83 e7 02 and $0x2,%edi + 41f5ff: 31 c0 xor %eax,%eax + 41f601: 31 ed xor %ebp,%ebp + 41f603: e8 b8 1f ff ff callq 4115c0 <__libc_message> + 41f608: e9 dd fc ff ff jmpq 41f2ea + 41f60d: e8 ee e5 fe ff callq 40dc00 + 41f612: 0f 1f 40 00 nopl 0x0(%rax) + 41f616: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41f61d: 00 00 00 + +000000000041f620 : + 41f620: 41 54 push %r12 + 41f622: 55 push %rbp + 41f623: 49 89 f4 mov %rsi,%r12 + 41f626: 53 push %rbx + 41f627: 48 83 ec 10 sub $0x10,%rsp + 41f62b: 8b 05 33 b1 2a 00 mov 0x2ab133(%rip),%eax # 6ca764 <__libc_malloc_initialized> + 41f631: 48 c7 05 3c b1 2a 00 movq $0x0,0x2ab13c(%rip) # 6ca778 <__memalign_hook> + 41f638: 00 00 00 00 + 41f63c: 85 c0 test %eax,%eax + 41f63e: 0f 88 f4 01 00 00 js 41f838 + 41f644: 48 8b 05 2d b1 2a 00 mov 0x2ab12d(%rip),%rax # 6ca778 <__memalign_hook> + 41f64b: 48 8b 54 24 28 mov 0x28(%rsp),%rdx + 41f650: 48 85 c0 test %rax,%rax + 41f653: 0f 85 07 02 00 00 jne 41f860 + 41f659: 48 83 ff 10 cmp $0x10,%rdi + 41f65d: 0f 86 ed 01 00 00 jbe 41f850 + 41f663: 48 83 ff 1f cmp $0x1f,%rdi + 41f667: 0f 87 e3 00 00 00 ja 41f750 + 41f66d: 49 83 fc bf cmp $0xffffffffffffffbf,%r12 + 41f671: 0f 87 11 02 00 00 ja 41f888 + 41f677: bb 20 00 00 00 mov $0x20,%ebx + 41f67c: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax + 41f683: 64 48 8b 28 mov %fs:(%rax),%rbp + 41f687: 48 85 ed test %rbp,%rbp + 41f68a: 0f 84 18 01 00 00 je 41f7a8 + 41f690: 8b 45 04 mov 0x4(%rbp),%eax + 41f693: 83 e0 04 and $0x4,%eax + 41f696: 0f 85 0c 01 00 00 jne 41f7a8 + 41f69c: be 01 00 00 00 mov $0x1,%esi + 41f6a1: 83 3d 14 db 2a 00 00 cmpl $0x0,0x2adb14(%rip) # 6cd1bc <__libc_multiple_threads> + 41f6a8: 74 09 je 41f6b3 + 41f6aa: f0 0f b1 75 00 lock cmpxchg %esi,0x0(%rbp) + 41f6af: 75 08 jne 41f6b9 + 41f6b1: eb 1d jmp 41f6d0 + 41f6b3: 0f b1 75 00 cmpxchg %esi,0x0(%rbp) + 41f6b7: 74 17 je 41f6d0 + 41f6b9: 48 8d 7d 00 lea 0x0(%rbp),%rdi + 41f6bd: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41f6c4: e8 07 2f 02 00 callq 4425d0 <__lll_lock_wait_private> + 41f6c9: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41f6d0: 4c 89 e2 mov %r12,%rdx + 41f6d3: 48 89 de mov %rbx,%rsi + 41f6d6: 48 89 ef mov %rbp,%rdi + 41f6d9: e8 32 ce ff ff callq 41c510 <_int_memalign> + 41f6de: 48 85 c0 test %rax,%rax + 41f6e1: 48 89 c2 mov %rax,%rdx + 41f6e4: 0f 84 fe 00 00 00 je 41f7e8 + 41f6ea: 83 3d cb da 2a 00 00 cmpl $0x0,0x2adacb(%rip) # 6cd1bc <__libc_multiple_threads> + 41f6f1: 74 08 je 41f6fb + 41f6f3: f0 ff 4d 00 lock decl 0x0(%rbp) + 41f6f7: 75 07 jne 41f700 + 41f6f9: eb 1c jmp 41f717 + 41f6fb: ff 4d 00 decl 0x0(%rbp) + 41f6fe: 74 17 je 41f717 + 41f700: 48 8d 7d 00 lea 0x0(%rbp),%rdi + 41f704: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41f70b: e8 f0 2e 02 00 callq 442600 <__lll_unlock_wake_private> + 41f710: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41f717: 48 85 d2 test %rdx,%rdx + 41f71a: 0f 84 80 01 00 00 je 41f8a0 + 41f720: 48 8b 42 f8 mov -0x8(%rdx),%rax + 41f724: a8 02 test $0x2,%al + 41f726: 75 16 jne 41f73e + 41f728: a8 04 test $0x4,%al + 41f72a: b9 00 a8 6c 00 mov $0x6ca800,%ecx + 41f72f: 0f 85 eb 00 00 00 jne 41f820 + 41f735: 48 39 e9 cmp %rbp,%rcx + 41f738: 0f 85 69 01 00 00 jne 41f8a7 + 41f73e: 48 89 d0 mov %rdx,%rax + 41f741: 48 83 c4 10 add $0x10,%rsp + 41f745: 5b pop %rbx + 41f746: 5d pop %rbp + 41f747: 41 5c pop %r12 + 41f749: c3 retq + 41f74a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41f750: 48 b8 00 00 00 00 00 movabs $0x8000000000000000,%rax + 41f757: 00 00 80 + 41f75a: 48 39 c7 cmp %rax,%rdi + 41f75d: 0f 87 0d 01 00 00 ja 41f870 + 41f763: 48 c7 c0 df ff ff ff mov $0xffffffffffffffdf,%rax + 41f76a: 48 29 f8 sub %rdi,%rax + 41f76d: 49 39 c4 cmp %rax,%r12 + 41f770: 0f 87 12 01 00 00 ja 41f888 + 41f776: 48 8d 47 ff lea -0x1(%rdi),%rax + 41f77a: 48 85 f8 test %rdi,%rax + 41f77d: 0f 84 3d 01 00 00 je 41f8c0 + 41f783: 48 83 ff 20 cmp $0x20,%rdi + 41f787: bb 20 00 00 00 mov $0x20,%ebx + 41f78c: 0f 84 ea fe ff ff je 41f67c + 41f792: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41f798: 48 01 db add %rbx,%rbx + 41f79b: 48 39 df cmp %rbx,%rdi + 41f79e: 77 f8 ja 41f798 + 41f7a0: e9 d7 fe ff ff jmpq 41f67c + 41f7a5: 0f 1f 00 nopl (%rax) + 41f7a8: e8 b3 79 ff ff callq 417160 + 41f7ad: 48 85 c0 test %rax,%rax + 41f7b0: 48 89 c5 mov %rax,%rbp + 41f7b3: 0f 85 17 ff ff ff jne 41f6d0 + 41f7b9: 4a 8d 7c 23 20 lea 0x20(%rbx,%r12,1),%rdi + 41f7be: 31 f6 xor %esi,%esi + 41f7c0: e8 8b 7c ff ff callq 417450 + 41f7c5: 4c 89 e2 mov %r12,%rdx + 41f7c8: 48 89 de mov %rbx,%rsi + 41f7cb: 48 89 c7 mov %rax,%rdi + 41f7ce: 48 89 c5 mov %rax,%rbp + 41f7d1: e8 3a cd ff ff callq 41c510 <_int_memalign> + 41f7d6: 48 85 c0 test %rax,%rax + 41f7d9: 48 89 c2 mov %rax,%rdx + 41f7dc: 75 2a jne 41f808 + 41f7de: 48 85 ed test %rbp,%rbp + 41f7e1: 74 25 je 41f808 + 41f7e3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41f7e8: 90 nop + 41f7e9: 48 89 ef mov %rbp,%rdi + 41f7ec: 4c 89 e6 mov %r12,%rsi + 41f7ef: e8 fc 81 ff ff callq 4179f0 + 41f7f4: 4c 89 e2 mov %r12,%rdx + 41f7f7: 48 89 de mov %rbx,%rsi + 41f7fa: 48 89 c7 mov %rax,%rdi + 41f7fd: 48 89 c5 mov %rax,%rbp + 41f800: e8 0b cd ff ff callq 41c510 <_int_memalign> + 41f805: 48 89 c2 mov %rax,%rdx + 41f808: 48 85 ed test %rbp,%rbp + 41f80b: 0f 85 d9 fe ff ff jne 41f6ea + 41f811: e9 01 ff ff ff jmpq 41f717 + 41f816: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41f81d: 00 00 00 + 41f820: 48 8d 42 f0 lea -0x10(%rdx),%rax + 41f824: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax + 41f82a: 48 8b 08 mov (%rax),%rcx + 41f82d: e9 03 ff ff ff jmpq 41f735 + 41f832: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41f838: 48 89 7c 24 08 mov %rdi,0x8(%rsp) + 41f83d: e8 ae f4 ff ff callq 41ecf0 + 41f842: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi + 41f847: e9 f8 fd ff ff jmpq 41f644 + 41f84c: 0f 1f 40 00 nopl 0x0(%rax) + 41f850: 48 83 c4 10 add $0x10,%rsp + 41f854: 4c 89 e7 mov %r12,%rdi + 41f857: 5b pop %rbx + 41f858: 5d pop %rbp + 41f859: 41 5c pop %r12 + 41f85b: e9 b0 e1 ff ff jmpq 41da10 <__libc_malloc> + 41f860: 48 83 c4 10 add $0x10,%rsp + 41f864: 4c 89 e6 mov %r12,%rsi + 41f867: 5b pop %rbx + 41f868: 5d pop %rbp + 41f869: 41 5c pop %r12 + 41f86b: ff e0 jmpq *%rax + 41f86d: 0f 1f 00 nopl (%rax) + 41f870: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41f877: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) + 41f87e: 31 c0 xor %eax,%eax + 41f880: e9 bc fe ff ff jmpq 41f741 + 41f885: 0f 1f 00 nopl (%rax) + 41f888: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 41f88f: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) + 41f896: 31 c0 xor %eax,%eax + 41f898: e9 a4 fe ff ff jmpq 41f741 + 41f89d: 0f 1f 00 nopl (%rax) + 41f8a0: 31 c0 xor %eax,%eax + 41f8a2: e9 9a fe ff ff jmpq 41f741 + 41f8a7: b9 08 2e 4a 00 mov $0x4a2e08,%ecx + 41f8ac: ba 3c 0c 00 00 mov $0xc3c,%edx + 41f8b1: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 41f8b6: bf 20 2a 4a 00 mov $0x4a2a20,%edi + 41f8bb: e8 60 75 ff ff callq 416e20 <__malloc_assert> + 41f8c0: 48 89 fb mov %rdi,%rbx + 41f8c3: e9 b4 fd ff ff jmpq 41f67c + 41f8c8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41f8cf: 00 + +000000000041f8d0 <__malloc_set_state>: + 41f8d0: 44 8b 05 8d ae 2a 00 mov 0x2aae8d(%rip),%r8d # 6ca764 <__libc_malloc_initialized> + 41f8d7: 53 push %rbx + 41f8d8: 48 89 fb mov %rdi,%rbx + 41f8db: c7 05 23 cd 2a 00 01 movl $0x1,0x2acd23(%rip) # 6cc608 + 41f8e2: 00 00 00 + 41f8e5: 45 85 c0 test %r8d,%r8d + 41f8e8: 0f 88 df 04 00 00 js 41fdcd <__malloc_set_state+0x4fd> + 41f8ee: 48 81 3b 41 45 4c 44 cmpq $0x444c4541,(%rbx) + 41f8f5: 0f 85 e4 04 00 00 jne 41fddf <__malloc_set_state+0x50f> + 41f8fb: 48 f7 43 08 00 ff ff testq $0xffffffffffffff00,0x8(%rbx) + 41f902: ff + 41f903: 0f 8f dd 04 00 00 jg 41fde6 <__malloc_set_state+0x516> + 41f909: be 01 00 00 00 mov $0x1,%esi + 41f90e: 31 c0 xor %eax,%eax + 41f910: 83 3d a5 d8 2a 00 00 cmpl $0x0,0x2ad8a5(%rip) # 6cd1bc <__libc_multiple_threads> + 41f917: 74 0c je 41f925 <__malloc_set_state+0x55> + 41f919: f0 0f b1 35 df ae 2a lock cmpxchg %esi,0x2aaedf(%rip) # 6ca800 + 41f920: 00 + 41f921: 75 0b jne 41f92e <__malloc_set_state+0x5e> + 41f923: eb 23 jmp 41f948 <__malloc_set_state+0x78> + 41f925: 0f b1 35 d4 ae 2a 00 cmpxchg %esi,0x2aaed4(%rip) # 6ca800 + 41f92c: 74 1a je 41f948 <__malloc_set_state+0x78> + 41f92e: 48 8d 3d cb ae 2a 00 lea 0x2aaecb(%rip),%rdi # 6ca800 + 41f935: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41f93c: e8 8f 2c 02 00 callq 4425d0 <__lll_lock_wait_private> + 41f941: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41f948: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 + 41f94f: 00 00 + 41f951: 74 01 je 41f954 <__malloc_set_state+0x84> + 41f953: f0 83 0d a9 ae 2a 00 lock orl $0x1,0x2aaea9(%rip) # 6ca804 + 41f95a: 01 + 41f95b: 48 83 7b 08 03 cmpq $0x3,0x8(%rbx) + 41f960: 0f 8f 0d 01 00 00 jg 41fa73 <__malloc_set_state+0x1a3> + 41f966: 48 c7 05 c7 cc 2a 00 movq $0x40,0x2accc7(%rip) # 6cc638 + 41f96d: 40 00 00 00 + 41f971: ba 08 a8 6c 00 mov $0x6ca808,%edx + 41f976: 31 c0 xor %eax,%eax + 41f978: b9 0a 00 00 00 mov $0xa,%ecx + 41f97d: 48 89 d7 mov %rdx,%rdi + 41f980: c7 05 ce b6 2a 00 00 movl $0x0,0x2ab6ce(%rip) # 6cb058 + 41f987: 00 00 00 + 41f98a: c7 05 c8 b6 2a 00 00 movl $0x0,0x2ab6c8(%rip) # 6cb05c + 41f991: 00 00 00 + 41f994: f3 48 ab rep stos %rax,%es:(%rdi) + 41f997: c7 05 bf b6 2a 00 00 movl $0x0,0x2ab6bf(%rip) # 6cb060 + 41f99e: 00 00 00 + 41f9a1: c7 05 b9 b6 2a 00 00 movl $0x0,0x2ab6b9(%rip) # 6cb064 + 41f9a8: 00 00 00 + 41f9ab: 48 8d 53 38 lea 0x38(%rbx),%rdx + 41f9af: b9 01 00 00 00 mov $0x1,%ecx + 41f9b4: 41 b8 01 00 00 00 mov $0x1,%r8d + 41f9ba: 41 b9 7e 00 00 00 mov $0x7e,%r9d + 41f9c0: 48 8b 43 20 mov 0x20(%rbx),%rax + 41f9c4: 48 c7 05 91 ae 2a 00 movq $0x0,0x2aae91(%rip) # 6ca860 + 41f9cb: 00 00 00 00 + 41f9cf: 48 89 05 82 ae 2a 00 mov %rax,0x2aae82(%rip) # 6ca858 + 41f9d6: b8 58 a8 6c 00 mov $0x6ca858,%eax + 41f9db: eb 50 jmp 41fa2d <__malloc_set_state+0x15d> + 41f9dd: 0f 1f 00 nopl (%rax) + 41f9e0: 48 83 f9 3f cmp $0x3f,%rcx + 41f9e4: 0f 87 b6 00 00 00 ja 41faa0 <__malloc_set_state+0x1d0> + 41f9ea: 48 8b 3a mov (%rdx),%rdi + 41f9ed: 48 89 78 18 mov %rdi,0x18(%rax) + 41f9f1: 48 89 70 10 mov %rsi,0x10(%rax) + 41f9f5: 44 89 c7 mov %r8d,%edi + 41f9f8: 48 89 46 18 mov %rax,0x18(%rsi) + 41f9fc: 48 8b 70 18 mov 0x18(%rax),%rsi + 41fa00: d3 e7 shl %cl,%edi + 41fa02: 48 89 46 10 mov %rax,0x10(%rsi) + 41fa06: 48 89 ce mov %rcx,%rsi + 41fa09: 48 c1 ee 05 shr $0x5,%rsi + 41fa0d: 09 3c b5 58 b0 6c 00 or %edi,0x6cb058(,%rsi,4) + 41fa14: 48 83 c1 01 add $0x1,%rcx + 41fa18: 48 83 c0 10 add $0x10,%rax + 41fa1c: 48 83 c2 10 add $0x10,%rdx + 41fa20: 48 81 f9 80 00 00 00 cmp $0x80,%rcx + 41fa27: 0f 84 6b 01 00 00 je 41fb98 <__malloc_set_state+0x2c8> + 41fa2d: 48 8b 72 f8 mov -0x8(%rdx),%rsi + 41fa31: 48 85 f6 test %rsi,%rsi + 41fa34: 0f 84 a6 00 00 00 je 41fae0 <__malloc_set_state+0x210> + 41fa3a: 48 83 7b 08 02 cmpq $0x2,0x8(%rbx) + 41fa3f: 7f 9f jg 41f9e0 <__malloc_set_state+0x110> + 41fa41: 48 8b 3a mov (%rdx),%rdi + 41fa44: 48 89 40 18 mov %rax,0x18(%rax) + 41fa48: 48 89 40 10 mov %rax,0x10(%rax) + 41fa4c: 48 c7 46 18 58 a8 6c movq $0x6ca858,0x18(%rsi) + 41fa53: 00 + 41fa54: 4c 8b 15 0d ae 2a 00 mov 0x2aae0d(%rip),%r10 # 6ca868 + 41fa5b: 4c 89 57 10 mov %r10,0x10(%rdi) + 41fa5f: 4c 8b 15 02 ae 2a 00 mov 0x2aae02(%rip),%r10 # 6ca868 + 41fa66: 49 89 7a 18 mov %rdi,0x18(%r10) + 41fa6a: 48 89 35 f7 ad 2a 00 mov %rsi,0x2aadf7(%rip) # 6ca868 + 41fa71: eb a1 jmp 41fa14 <__malloc_set_state+0x144> + 41fa73: 48 8b 93 88 08 00 00 mov 0x888(%rbx),%rdx + 41fa7a: b8 10 00 00 00 mov $0x10,%eax + 41fa7f: 48 85 d2 test %rdx,%rdx + 41fa82: 74 08 je 41fa8c <__malloc_set_state+0x1bc> + 41fa84: 48 8d 42 08 lea 0x8(%rdx),%rax + 41fa88: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 41fa8c: 48 89 05 a5 cb 2a 00 mov %rax,0x2acba5(%rip) # 6cc638 + 41fa93: e9 d9 fe ff ff jmpq 41f971 <__malloc_set_state+0xa1> + 41fa98: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 41fa9f: 00 + 41faa0: 4c 8b 56 08 mov 0x8(%rsi),%r10 + 41faa4: 4c 89 d7 mov %r10,%rdi + 41faa7: 48 c1 ef 06 shr $0x6,%rdi + 41faab: 48 83 ff 30 cmp $0x30,%rdi + 41faaf: 77 4f ja 41fb00 <__malloc_set_state+0x230> + 41fab1: 48 83 c7 30 add $0x30,%rdi + 41fab5: 48 39 cf cmp %rcx,%rdi + 41fab8: 48 8b 3a mov (%rdx),%rdi + 41fabb: 75 87 jne 41fa44 <__malloc_set_state+0x174> + 41fabd: 4c 8b 5f 08 mov 0x8(%rdi),%r11 + 41fac1: 4d 89 da mov %r11,%r10 + 41fac4: 49 c1 ea 06 shr $0x6,%r10 + 41fac8: 49 83 fa 30 cmp $0x30,%r10 + 41facc: 77 62 ja 41fb30 <__malloc_set_state+0x260> + 41face: 49 83 c2 30 add $0x30,%r10 + 41fad2: 49 39 ca cmp %rcx,%r10 + 41fad5: 0f 85 69 ff ff ff jne 41fa44 <__malloc_set_state+0x174> + 41fadb: e9 0d ff ff ff jmpq 41f9ed <__malloc_set_state+0x11d> + 41fae0: 48 83 3a 00 cmpq $0x0,(%rdx) + 41fae4: 0f 85 03 03 00 00 jne 41fded <__malloc_set_state+0x51d> + 41faea: 48 89 40 18 mov %rax,0x18(%rax) + 41faee: 48 89 40 10 mov %rax,0x10(%rax) + 41faf2: e9 1d ff ff ff jmpq 41fa14 <__malloc_set_state+0x144> + 41faf7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 41fafe: 00 00 + 41fb00: 4c 89 d7 mov %r10,%rdi + 41fb03: 48 c1 ef 09 shr $0x9,%rdi + 41fb07: 48 83 ff 14 cmp $0x14,%rdi + 41fb0b: 77 0b ja 41fb18 <__malloc_set_state+0x248> + 41fb0d: 48 83 c7 5b add $0x5b,%rdi + 41fb11: eb a2 jmp 41fab5 <__malloc_set_state+0x1e5> + 41fb13: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41fb18: 4c 89 d7 mov %r10,%rdi + 41fb1b: 48 c1 ef 0c shr $0xc,%rdi + 41fb1f: 48 83 ff 0a cmp $0xa,%rdi + 41fb23: 77 23 ja 41fb48 <__malloc_set_state+0x278> + 41fb25: 48 83 c7 6e add $0x6e,%rdi + 41fb29: eb 8a jmp 41fab5 <__malloc_set_state+0x1e5> + 41fb2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41fb30: 4d 89 da mov %r11,%r10 + 41fb33: 49 c1 ea 09 shr $0x9,%r10 + 41fb37: 49 83 fa 14 cmp $0x14,%r10 + 41fb3b: 77 23 ja 41fb60 <__malloc_set_state+0x290> + 41fb3d: 49 83 c2 5b add $0x5b,%r10 + 41fb41: eb 8f jmp 41fad2 <__malloc_set_state+0x202> + 41fb43: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41fb48: 4c 89 d7 mov %r10,%rdi + 41fb4b: 48 c1 ef 0f shr $0xf,%rdi + 41fb4f: 48 83 ff 04 cmp $0x4,%rdi + 41fb53: 77 2b ja 41fb80 <__malloc_set_state+0x2b0> + 41fb55: 48 83 c7 77 add $0x77,%rdi + 41fb59: e9 57 ff ff ff jmpq 41fab5 <__malloc_set_state+0x1e5> + 41fb5e: 66 90 xchg %ax,%ax + 41fb60: 4d 89 da mov %r11,%r10 + 41fb63: 49 c1 ea 0c shr $0xc,%r10 + 41fb67: 49 83 fa 0a cmp $0xa,%r10 + 41fb6b: 0f 87 9f 01 00 00 ja 41fd10 <__malloc_set_state+0x440> + 41fb71: 49 83 c2 6e add $0x6e,%r10 + 41fb75: e9 58 ff ff ff jmpq 41fad2 <__malloc_set_state+0x202> + 41fb7a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41fb80: 49 c1 ea 12 shr $0x12,%r10 + 41fb84: 49 8d 7a 7c lea 0x7c(%r10),%rdi + 41fb88: 49 83 fa 02 cmp $0x2,%r10 + 41fb8c: 49 0f 47 f9 cmova %r9,%rdi + 41fb90: e9 20 ff ff ff jmpq 41fab5 <__malloc_set_state+0x1e5> + 41fb95: 0f 1f 00 nopl (%rax) + 41fb98: 48 8b 4b 08 mov 0x8(%rbx),%rcx + 41fb9c: 48 83 f9 02 cmp $0x2,%rcx + 41fba0: 7f 43 jg 41fbe5 <__malloc_set_state+0x315> + 41fba2: 48 8b 05 bf ac 2a 00 mov 0x2aacbf(%rip),%rax # 6ca868 + 41fba9: 48 3d 58 a8 6c 00 cmp $0x6ca858,%rax + 41fbaf: 74 34 je 41fbe5 <__malloc_set_state+0x315> + 41fbb1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 41fbb8: 48 8b 50 08 mov 0x8(%rax),%rdx + 41fbbc: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx + 41fbc0: 48 81 fa ff 03 00 00 cmp $0x3ff,%rdx + 41fbc7: 76 10 jbe 41fbd9 <__malloc_set_state+0x309> + 41fbc9: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) + 41fbd0: 00 + 41fbd1: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) + 41fbd8: 00 + 41fbd9: 48 8b 40 10 mov 0x10(%rax),%rax + 41fbdd: 48 3d 58 a8 6c 00 cmp $0x6ca858,%rax + 41fbe3: 75 d3 jne 41fbb8 <__malloc_set_state+0x2e8> + 41fbe5: 48 8b 83 20 08 00 00 mov 0x820(%rbx),%rax + 41fbec: 48 85 c9 test %rcx,%rcx + 41fbef: 48 89 05 fa ab 2a 00 mov %rax,0x2aabfa(%rip) # 6ca7f0 + 41fbf6: 48 63 83 28 08 00 00 movslq 0x828(%rbx),%rax + 41fbfd: 48 89 05 7c b4 2a 00 mov %rax,0x2ab47c(%rip) # 6cb080 + 41fc04: 48 8b 83 30 08 00 00 mov 0x830(%rbx),%rax + 41fc0b: 48 89 05 8e ab 2a 00 mov %rax,0x2aab8e(%rip) # 6ca7a0 + 41fc12: 48 8b 83 38 08 00 00 mov 0x838(%rbx),%rax + 41fc19: 48 89 05 88 ab 2a 00 mov %rax,0x2aab88(%rip) # 6ca7a8 + 41fc20: 8b 83 40 08 00 00 mov 0x840(%rbx),%eax + 41fc26: 89 05 a0 ab 2a 00 mov %eax,0x2aaba0(%rip) # 6ca7cc + 41fc2c: 48 8b 83 48 08 00 00 mov 0x848(%rbx),%rax + 41fc33: 48 89 05 76 ab 2a 00 mov %rax,0x2aab76(%rip) # 6ca7b0 + 41fc3a: 8b 83 50 08 00 00 mov 0x850(%rbx),%eax + 41fc40: 89 05 2a ab 2a 00 mov %eax,0x2aab2a(%rip) # 6ca770 + 41fc46: 48 8b 83 58 08 00 00 mov 0x858(%rbx),%rax + 41fc4d: 48 89 05 34 b4 2a 00 mov %rax,0x2ab434(%rip) # 6cb088 + 41fc54: 8b 83 68 08 00 00 mov 0x868(%rbx),%eax + 41fc5a: 89 05 68 ab 2a 00 mov %eax,0x2aab68(%rip) # 6ca7c8 + 41fc60: 8b 83 6c 08 00 00 mov 0x86c(%rbx),%eax + 41fc66: 89 05 64 ab 2a 00 mov %eax,0x2aab64(%rip) # 6ca7d0 + 41fc6c: 48 8b 83 70 08 00 00 mov 0x870(%rbx),%rax + 41fc73: 48 89 05 5e ab 2a 00 mov %rax,0x2aab5e(%rip) # 6ca7d8 + 41fc7a: 48 8b 83 78 08 00 00 mov 0x878(%rbx),%rax + 41fc81: 48 89 05 58 ab 2a 00 mov %rax,0x2aab58(%rip) # 6ca7e0 + 41fc88: 7e 4c jle 41fcd6 <__malloc_set_state+0x406> + 41fc8a: 8b bb 80 08 00 00 mov 0x880(%rbx),%edi + 41fc90: 85 ff test %edi,%edi + 41fc92: 0f 85 a3 00 00 00 jne 41fd3b <__malloc_set_state+0x46b> + 41fc98: 8b 05 6e c9 2a 00 mov 0x2ac96e(%rip),%eax # 6cc60c + 41fc9e: 85 c0 test %eax,%eax + 41fca0: 0f 85 ec 00 00 00 jne 41fd92 <__malloc_set_state+0x4c2> + 41fca6: 48 83 f9 03 cmp $0x3,%rcx + 41fcaa: 7e 2a jle 41fcd6 <__malloc_set_state+0x406> + 41fcac: 48 8b 83 90 08 00 00 mov 0x890(%rbx),%rax + 41fcb3: 48 89 05 fe aa 2a 00 mov %rax,0x2aaafe(%rip) # 6ca7b8 + 41fcba: 48 8b 83 98 08 00 00 mov 0x898(%rbx),%rax + 41fcc1: 48 89 05 f8 aa 2a 00 mov %rax,0x2aaaf8(%rip) # 6ca7c0 + 41fcc8: 48 8b 83 a0 08 00 00 mov 0x8a0(%rbx),%rax + 41fccf: 48 89 05 92 aa 2a 00 mov %rax,0x2aaa92(%rip) # 6ca768 + 41fcd6: 83 3d df d4 2a 00 00 cmpl $0x0,0x2ad4df(%rip) # 6cd1bc <__libc_multiple_threads> + 41fcdd: 74 0b je 41fcea <__malloc_set_state+0x41a> + 41fcdf: f0 ff 0d 1a ab 2a 00 lock decl 0x2aab1a(%rip) # 6ca800 + 41fce6: 75 0a jne 41fcf2 <__malloc_set_state+0x422> + 41fce8: eb 22 jmp 41fd0c <__malloc_set_state+0x43c> + 41fcea: ff 0d 10 ab 2a 00 decl 0x2aab10(%rip) # 6ca800 + 41fcf0: 74 1a je 41fd0c <__malloc_set_state+0x43c> + 41fcf2: 48 8d 3d 07 ab 2a 00 lea 0x2aab07(%rip),%rdi # 6ca800 + 41fcf9: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41fd00: e8 fb 28 02 00 callq 442600 <__lll_unlock_wake_private> + 41fd05: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41fd0c: 31 c0 xor %eax,%eax + 41fd0e: 5b pop %rbx + 41fd0f: c3 retq + 41fd10: 4d 89 da mov %r11,%r10 + 41fd13: 49 c1 ea 0f shr $0xf,%r10 + 41fd17: 49 83 fa 04 cmp $0x4,%r10 + 41fd1b: 77 09 ja 41fd26 <__malloc_set_state+0x456> + 41fd1d: 49 83 c2 77 add $0x77,%r10 + 41fd21: e9 ac fd ff ff jmpq 41fad2 <__malloc_set_state+0x202> + 41fd26: 49 c1 eb 12 shr $0x12,%r11 + 41fd2a: 4d 8d 53 7c lea 0x7c(%r11),%r10 + 41fd2e: 49 83 fb 02 cmp $0x2,%r11 + 41fd32: 4d 0f 47 d1 cmova %r9,%r10 + 41fd36: e9 97 fd ff ff jmpq 41fad2 <__malloc_set_state+0x202> + 41fd3b: 8b 35 cb c8 2a 00 mov 0x2ac8cb(%rip),%esi # 6cc60c + 41fd41: 85 f6 test %esi,%esi + 41fd43: 0f 85 5d ff ff ff jne 41fca6 <__malloc_set_state+0x3d6> + 41fd49: 8b 15 b9 c8 2a 00 mov 0x2ac8b9(%rip),%edx # 6cc608 + 41fd4f: 85 d2 test %edx,%edx + 41fd51: 0f 85 4f ff ff ff jne 41fca6 <__malloc_set_state+0x3d6> + 41fd57: c7 05 ab c8 2a 00 01 movl $0x1,0x2ac8ab(%rip) # 6cc60c + 41fd5e: 00 00 00 + 41fd61: 48 c7 05 1c aa 2a 00 movq $0x41c720,0x2aaa1c(%rip) # 6ca788 <__malloc_hook> + 41fd68: 20 c7 41 00 + 41fd6c: 48 c7 05 71 c8 2a 00 movq $0x4189e0,0x2ac871(%rip) # 6cc5e8 <__free_hook> + 41fd73: e0 89 41 00 + 41fd77: 48 c7 05 fe a9 2a 00 movq $0x41d180,0x2aa9fe(%rip) # 6ca780 <__realloc_hook> + 41fd7e: 80 d1 41 00 + 41fd82: 48 c7 05 eb a9 2a 00 movq $0x41c870,0x2aa9eb(%rip) # 6ca778 <__memalign_hook> + 41fd89: 70 c8 41 00 + 41fd8d: e9 14 ff ff ff jmpq 41fca6 <__malloc_set_state+0x3d6> + 41fd92: 48 c7 05 eb a9 2a 00 movq $0x0,0x2aa9eb(%rip) # 6ca788 <__malloc_hook> + 41fd99: 00 00 00 00 + 41fd9d: 48 c7 05 40 c8 2a 00 movq $0x0,0x2ac840(%rip) # 6cc5e8 <__free_hook> + 41fda4: 00 00 00 00 + 41fda8: 48 c7 05 cd a9 2a 00 movq $0x0,0x2aa9cd(%rip) # 6ca780 <__realloc_hook> + 41fdaf: 00 00 00 00 + 41fdb3: 48 c7 05 ba a9 2a 00 movq $0x0,0x2aa9ba(%rip) # 6ca778 <__memalign_hook> + 41fdba: 00 00 00 00 + 41fdbe: c7 05 44 c8 2a 00 00 movl $0x0,0x2ac844(%rip) # 6cc60c + 41fdc5: 00 00 00 + 41fdc8: e9 d9 fe ff ff jmpq 41fca6 <__malloc_set_state+0x3d6> + 41fdcd: e8 1e ef ff ff callq 41ecf0 + 41fdd2: 48 81 3b 41 45 4c 44 cmpq $0x444c4541,(%rbx) + 41fdd9: 0f 84 1c fb ff ff je 41f8fb <__malloc_set_state+0x2b> + 41fddf: b8 ff ff ff ff mov $0xffffffff,%eax + 41fde4: 5b pop %rbx + 41fde5: c3 retq + 41fde6: b8 fe ff ff ff mov $0xfffffffe,%eax + 41fdeb: 5b pop %rbx + 41fdec: c3 retq + 41fded: b9 a0 2f 4a 00 mov $0x4a2fa0,%ecx + 41fdf2: ba 45 02 00 00 mov $0x245,%edx + 41fdf7: be 3f 22 4a 00 mov $0x4a223f,%esi + 41fdfc: bf 47 22 4a 00 mov $0x4a2247,%edi + 41fe01: e8 1a 70 ff ff callq 416e20 <__malloc_assert> + 41fe06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41fe0d: 00 00 00 + +000000000041fe10 <__libc_valloc>: + 41fe10: 8b 05 4e a9 2a 00 mov 0x2aa94e(%rip),%eax # 6ca764 <__libc_malloc_initialized> + 41fe16: 41 54 push %r12 + 41fe18: 49 89 fc mov %rdi,%r12 + 41fe1b: 55 push %rbp + 41fe1c: 53 push %rbx + 41fe1d: 85 c0 test %eax,%eax + 41fe1f: 0f 88 2b 02 00 00 js 420050 <__libc_valloc+0x240> + 41fe25: 48 8b 05 4c a9 2a 00 mov 0x2aa94c(%rip),%rax # 6ca778 <__memalign_hook> + 41fe2c: 48 8b 54 24 18 mov 0x18(%rsp),%rdx + 41fe31: 48 85 c0 test %rax,%rax + 41fe34: 48 8b 3d 45 b3 2a 00 mov 0x2ab345(%rip),%rdi # 6cb180 <_dl_pagesize> + 41fe3b: 0f 85 e7 01 00 00 jne 420028 <__libc_valloc+0x218> + 41fe41: 48 83 ff 10 cmp $0x10,%rdi + 41fe45: 0f 86 cd 01 00 00 jbe 420018 <__libc_valloc+0x208> + 41fe4b: 48 83 ff 1f cmp $0x1f,%rdi + 41fe4f: 0f 87 db 00 00 00 ja 41ff30 <__libc_valloc+0x120> + 41fe55: 49 83 fc bf cmp $0xffffffffffffffbf,%r12 + 41fe59: 0f 87 01 02 00 00 ja 420060 <__libc_valloc+0x250> + 41fe5f: bb 20 00 00 00 mov $0x20,%ebx + 41fe64: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax + 41fe6b: 64 48 8b 28 mov %fs:(%rax),%rbp + 41fe6f: 48 85 ed test %rbp,%rbp + 41fe72: 0f 84 10 01 00 00 je 41ff88 <__libc_valloc+0x178> + 41fe78: 8b 45 04 mov 0x4(%rbp),%eax + 41fe7b: 83 e0 04 and $0x4,%eax + 41fe7e: 0f 85 04 01 00 00 jne 41ff88 <__libc_valloc+0x178> + 41fe84: be 01 00 00 00 mov $0x1,%esi + 41fe89: 83 3d 2c d3 2a 00 00 cmpl $0x0,0x2ad32c(%rip) # 6cd1bc <__libc_multiple_threads> + 41fe90: 74 09 je 41fe9b <__libc_valloc+0x8b> + 41fe92: f0 0f b1 75 00 lock cmpxchg %esi,0x0(%rbp) + 41fe97: 75 08 jne 41fea1 <__libc_valloc+0x91> + 41fe99: eb 1d jmp 41feb8 <__libc_valloc+0xa8> + 41fe9b: 0f b1 75 00 cmpxchg %esi,0x0(%rbp) + 41fe9f: 74 17 je 41feb8 <__libc_valloc+0xa8> + 41fea1: 48 8d 7d 00 lea 0x0(%rbp),%rdi + 41fea5: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41feac: e8 1f 27 02 00 callq 4425d0 <__lll_lock_wait_private> + 41feb1: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41feb8: 4c 89 e2 mov %r12,%rdx + 41febb: 48 89 de mov %rbx,%rsi + 41febe: 48 89 ef mov %rbp,%rdi + 41fec1: e8 4a c6 ff ff callq 41c510 <_int_memalign> + 41fec6: 48 85 c0 test %rax,%rax + 41fec9: 48 89 c2 mov %rax,%rdx + 41fecc: 0f 84 f6 00 00 00 je 41ffc8 <__libc_valloc+0x1b8> + 41fed2: 83 3d e3 d2 2a 00 00 cmpl $0x0,0x2ad2e3(%rip) # 6cd1bc <__libc_multiple_threads> + 41fed9: 74 08 je 41fee3 <__libc_valloc+0xd3> + 41fedb: f0 ff 4d 00 lock decl 0x0(%rbp) + 41fedf: 75 07 jne 41fee8 <__libc_valloc+0xd8> + 41fee1: eb 1c jmp 41feff <__libc_valloc+0xef> + 41fee3: ff 4d 00 decl 0x0(%rbp) + 41fee6: 74 17 je 41feff <__libc_valloc+0xef> + 41fee8: 48 8d 7d 00 lea 0x0(%rbp),%rdi + 41feec: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 41fef3: e8 08 27 02 00 callq 442600 <__lll_unlock_wake_private> + 41fef8: 48 81 c4 80 00 00 00 add $0x80,%rsp + 41feff: 48 85 d2 test %rdx,%rdx + 41ff02: 0f 84 70 01 00 00 je 420078 <__libc_valloc+0x268> + 41ff08: 48 8b 42 f8 mov -0x8(%rdx),%rax + 41ff0c: a8 02 test $0x2,%al + 41ff0e: 75 16 jne 41ff26 <__libc_valloc+0x116> + 41ff10: a8 04 test $0x4,%al + 41ff12: b9 00 a8 6c 00 mov $0x6ca800,%ecx + 41ff17: 0f 85 e3 00 00 00 jne 420000 <__libc_valloc+0x1f0> + 41ff1d: 48 39 e9 cmp %rbp,%rcx + 41ff20: 0f 85 59 01 00 00 jne 42007f <__libc_valloc+0x26f> + 41ff26: 48 89 d0 mov %rdx,%rax + 41ff29: 5b pop %rbx + 41ff2a: 5d pop %rbp + 41ff2b: 41 5c pop %r12 + 41ff2d: c3 retq + 41ff2e: 66 90 xchg %ax,%ax + 41ff30: 48 b8 00 00 00 00 00 movabs $0x8000000000000000,%rax + 41ff37: 00 00 80 + 41ff3a: 48 39 c7 cmp %rax,%rdi + 41ff3d: 0f 87 f5 00 00 00 ja 420038 <__libc_valloc+0x228> + 41ff43: 48 c7 c0 df ff ff ff mov $0xffffffffffffffdf,%rax + 41ff4a: 48 29 f8 sub %rdi,%rax + 41ff4d: 49 39 c4 cmp %rax,%r12 + 41ff50: 0f 87 0a 01 00 00 ja 420060 <__libc_valloc+0x250> + 41ff56: 48 8d 47 ff lea -0x1(%rdi),%rax + 41ff5a: 48 85 f8 test %rdi,%rax + 41ff5d: 0f 84 35 01 00 00 je 420098 <__libc_valloc+0x288> + 41ff63: 48 83 ff 20 cmp $0x20,%rdi + 41ff67: bb 20 00 00 00 mov $0x20,%ebx + 41ff6c: 0f 84 f2 fe ff ff je 41fe64 <__libc_valloc+0x54> + 41ff72: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 41ff78: 48 01 db add %rbx,%rbx + 41ff7b: 48 39 df cmp %rbx,%rdi + 41ff7e: 77 f8 ja 41ff78 <__libc_valloc+0x168> + 41ff80: e9 df fe ff ff jmpq 41fe64 <__libc_valloc+0x54> + 41ff85: 0f 1f 00 nopl (%rax) + 41ff88: e8 d3 71 ff ff callq 417160 + 41ff8d: 48 85 c0 test %rax,%rax + 41ff90: 48 89 c5 mov %rax,%rbp + 41ff93: 0f 85 1f ff ff ff jne 41feb8 <__libc_valloc+0xa8> + 41ff99: 4a 8d 7c 23 20 lea 0x20(%rbx,%r12,1),%rdi + 41ff9e: 31 f6 xor %esi,%esi + 41ffa0: e8 ab 74 ff ff callq 417450 + 41ffa5: 4c 89 e2 mov %r12,%rdx + 41ffa8: 48 89 de mov %rbx,%rsi + 41ffab: 48 89 c7 mov %rax,%rdi + 41ffae: 48 89 c5 mov %rax,%rbp + 41ffb1: e8 5a c5 ff ff callq 41c510 <_int_memalign> + 41ffb6: 48 85 c0 test %rax,%rax + 41ffb9: 48 89 c2 mov %rax,%rdx + 41ffbc: 75 2a jne 41ffe8 <__libc_valloc+0x1d8> + 41ffbe: 48 85 ed test %rbp,%rbp + 41ffc1: 74 25 je 41ffe8 <__libc_valloc+0x1d8> + 41ffc3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 41ffc8: 90 nop + 41ffc9: 48 89 ef mov %rbp,%rdi + 41ffcc: 4c 89 e6 mov %r12,%rsi + 41ffcf: e8 1c 7a ff ff callq 4179f0 + 41ffd4: 4c 89 e2 mov %r12,%rdx + 41ffd7: 48 89 de mov %rbx,%rsi + 41ffda: 48 89 c7 mov %rax,%rdi + 41ffdd: 48 89 c5 mov %rax,%rbp + 41ffe0: e8 2b c5 ff ff callq 41c510 <_int_memalign> + 41ffe5: 48 89 c2 mov %rax,%rdx + 41ffe8: 48 85 ed test %rbp,%rbp + 41ffeb: 0f 85 e1 fe ff ff jne 41fed2 <__libc_valloc+0xc2> + 41fff1: e9 09 ff ff ff jmpq 41feff <__libc_valloc+0xef> + 41fff6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 41fffd: 00 00 00 + 420000: 48 8d 42 f0 lea -0x10(%rdx),%rax + 420004: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax + 42000a: 48 8b 08 mov (%rax),%rcx + 42000d: e9 0b ff ff ff jmpq 41ff1d <__libc_valloc+0x10d> + 420012: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 420018: 5b pop %rbx + 420019: 4c 89 e7 mov %r12,%rdi + 42001c: 5d pop %rbp + 42001d: 41 5c pop %r12 + 42001f: e9 ec d9 ff ff jmpq 41da10 <__libc_malloc> + 420024: 0f 1f 40 00 nopl 0x0(%rax) + 420028: 5b pop %rbx + 420029: 4c 89 e6 mov %r12,%rsi + 42002c: 5d pop %rbp + 42002d: 41 5c pop %r12 + 42002f: ff e0 jmpq *%rax + 420031: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 420038: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 42003f: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) + 420046: 31 c0 xor %eax,%eax + 420048: e9 dc fe ff ff jmpq 41ff29 <__libc_valloc+0x119> + 42004d: 0f 1f 00 nopl (%rax) + 420050: e8 9b ec ff ff callq 41ecf0 + 420055: e9 cb fd ff ff jmpq 41fe25 <__libc_valloc+0x15> + 42005a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 420060: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 420067: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) + 42006e: 31 c0 xor %eax,%eax + 420070: e9 b4 fe ff ff jmpq 41ff29 <__libc_valloc+0x119> + 420075: 0f 1f 00 nopl (%rax) + 420078: 31 c0 xor %eax,%eax + 42007a: e9 aa fe ff ff jmpq 41ff29 <__libc_valloc+0x119> + 42007f: b9 08 2e 4a 00 mov $0x4a2e08,%ecx + 420084: ba 3c 0c 00 00 mov $0xc3c,%edx + 420089: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 42008e: bf 20 2a 4a 00 mov $0x4a2a20,%edi + 420093: e8 88 6d ff ff callq 416e20 <__malloc_assert> + 420098: 48 89 fb mov %rdi,%rbx + 42009b: e9 c4 fd ff ff jmpq 41fe64 <__libc_valloc+0x54> + +00000000004200a0 <__libc_pvalloc>: + 4200a0: 41 54 push %r12 + 4200a2: 55 push %rbp + 4200a3: 53 push %rbx + 4200a4: 48 83 ec 10 sub $0x10,%rsp + 4200a8: 8b 05 b6 a6 2a 00 mov 0x2aa6b6(%rip),%eax # 6ca764 <__libc_malloc_initialized> + 4200ae: 85 c0 test %eax,%eax + 4200b0: 0f 88 7a 02 00 00 js 420330 <__libc_pvalloc+0x290> + 4200b6: 48 8b 05 c3 b0 2a 00 mov 0x2ab0c3(%rip),%rax # 6cb180 <_dl_pagesize> + 4200bd: 48 c7 c6 df ff ff ff mov $0xffffffffffffffdf,%rsi + 4200c4: 48 8b 54 24 28 mov 0x28(%rsp),%rdx + 4200c9: 48 89 f3 mov %rsi,%rbx + 4200cc: 4c 8d 40 ff lea -0x1(%rax),%r8 + 4200d0: 48 89 c1 mov %rax,%rcx + 4200d3: 48 f7 d9 neg %rcx + 4200d6: 4e 8d 24 07 lea (%rdi,%r8,1),%r12 + 4200da: 49 21 cc and %rcx,%r12 + 4200dd: 48 8d 0c 00 lea (%rax,%rax,1),%rcx + 4200e1: 48 29 cb sub %rcx,%rbx + 4200e4: 48 39 df cmp %rbx,%rdi + 4200e7: 0f 87 4b 01 00 00 ja 420238 <__libc_pvalloc+0x198> + 4200ed: 48 8b 0d 84 a6 2a 00 mov 0x2aa684(%rip),%rcx # 6ca778 <__memalign_hook> + 4200f4: 48 85 c9 test %rcx,%rcx + 4200f7: 0f 85 03 02 00 00 jne 420300 <__libc_pvalloc+0x260> + 4200fd: 48 83 f8 10 cmp $0x10,%rax + 420101: 0f 86 e1 01 00 00 jbe 4202e8 <__libc_pvalloc+0x248> + 420107: 48 83 f8 1f cmp $0x1f,%rax + 42010b: 0f 87 df 00 00 00 ja 4201f0 <__libc_pvalloc+0x150> + 420111: 49 83 fc bf cmp $0xffffffffffffffbf,%r12 + 420115: 0f 87 1d 01 00 00 ja 420238 <__libc_pvalloc+0x198> + 42011b: bb 20 00 00 00 mov $0x20,%ebx + 420120: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax + 420127: 64 48 8b 28 mov %fs:(%rax),%rbp + 42012b: 48 85 ed test %rbp,%rbp + 42012e: 0f 84 24 01 00 00 je 420258 <__libc_pvalloc+0x1b8> + 420134: 8b 45 04 mov 0x4(%rbp),%eax + 420137: 83 e0 04 and $0x4,%eax + 42013a: 0f 85 18 01 00 00 jne 420258 <__libc_pvalloc+0x1b8> + 420140: be 01 00 00 00 mov $0x1,%esi + 420145: 83 3d 70 d0 2a 00 00 cmpl $0x0,0x2ad070(%rip) # 6cd1bc <__libc_multiple_threads> + 42014c: 74 09 je 420157 <__libc_pvalloc+0xb7> + 42014e: f0 0f b1 75 00 lock cmpxchg %esi,0x0(%rbp) + 420153: 75 08 jne 42015d <__libc_pvalloc+0xbd> + 420155: eb 1d jmp 420174 <__libc_pvalloc+0xd4> + 420157: 0f b1 75 00 cmpxchg %esi,0x0(%rbp) + 42015b: 74 17 je 420174 <__libc_pvalloc+0xd4> + 42015d: 48 8d 7d 00 lea 0x0(%rbp),%rdi + 420161: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 420168: e8 63 24 02 00 callq 4425d0 <__lll_lock_wait_private> + 42016d: 48 81 c4 80 00 00 00 add $0x80,%rsp + 420174: 4c 89 e2 mov %r12,%rdx + 420177: 48 89 de mov %rbx,%rsi + 42017a: 48 89 ef mov %rbp,%rdi + 42017d: e8 8e c3 ff ff callq 41c510 <_int_memalign> + 420182: 48 85 c0 test %rax,%rax + 420185: 48 89 c2 mov %rax,%rdx + 420188: 0f 84 0a 01 00 00 je 420298 <__libc_pvalloc+0x1f8> + 42018e: 83 3d 27 d0 2a 00 00 cmpl $0x0,0x2ad027(%rip) # 6cd1bc <__libc_multiple_threads> + 420195: 74 08 je 42019f <__libc_pvalloc+0xff> + 420197: f0 ff 4d 00 lock decl 0x0(%rbp) + 42019b: 75 07 jne 4201a4 <__libc_pvalloc+0x104> + 42019d: eb 1c jmp 4201bb <__libc_pvalloc+0x11b> + 42019f: ff 4d 00 decl 0x0(%rbp) + 4201a2: 74 17 je 4201bb <__libc_pvalloc+0x11b> + 4201a4: 48 8d 7d 00 lea 0x0(%rbp),%rdi + 4201a8: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4201af: e8 4c 24 02 00 callq 442600 <__lll_unlock_wake_private> + 4201b4: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4201bb: 48 85 d2 test %rdx,%rdx + 4201be: 0f 84 64 01 00 00 je 420328 <__libc_pvalloc+0x288> + 4201c4: 48 8b 42 f8 mov -0x8(%rdx),%rax + 4201c8: a8 02 test $0x2,%al + 4201ca: 75 16 jne 4201e2 <__libc_pvalloc+0x142> + 4201cc: a8 04 test $0x4,%al + 4201ce: b9 00 a8 6c 00 mov $0x6ca800,%ecx + 4201d3: 0f 85 f7 00 00 00 jne 4202d0 <__libc_pvalloc+0x230> + 4201d9: 48 39 cd cmp %rcx,%rbp + 4201dc: 0f 85 6a 01 00 00 jne 42034c <__libc_pvalloc+0x2ac> + 4201e2: 48 89 d0 mov %rdx,%rax + 4201e5: 48 83 c4 10 add $0x10,%rsp + 4201e9: 5b pop %rbx + 4201ea: 5d pop %rbp + 4201eb: 41 5c pop %r12 + 4201ed: c3 retq + 4201ee: 66 90 xchg %ax,%ax + 4201f0: 48 ba 00 00 00 00 00 movabs $0x8000000000000000,%rdx + 4201f7: 00 00 80 + 4201fa: 48 39 d0 cmp %rdx,%rax + 4201fd: 0f 87 0d 01 00 00 ja 420310 <__libc_pvalloc+0x270> + 420203: 48 29 c6 sub %rax,%rsi + 420206: 49 39 f4 cmp %rsi,%r12 + 420209: 77 2d ja 420238 <__libc_pvalloc+0x198> + 42020b: 4c 85 c0 test %r8,%rax + 42020e: 0f 84 30 01 00 00 je 420344 <__libc_pvalloc+0x2a4> + 420214: 48 83 f8 20 cmp $0x20,%rax + 420218: bb 20 00 00 00 mov $0x20,%ebx + 42021d: 0f 84 fd fe ff ff je 420120 <__libc_pvalloc+0x80> + 420223: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 420228: 48 01 db add %rbx,%rbx + 42022b: 48 39 d8 cmp %rbx,%rax + 42022e: 77 f8 ja 420228 <__libc_pvalloc+0x188> + 420230: e9 eb fe ff ff jmpq 420120 <__libc_pvalloc+0x80> + 420235: 0f 1f 00 nopl (%rax) + 420238: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 42023f: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) + 420246: 48 83 c4 10 add $0x10,%rsp + 42024a: 31 c0 xor %eax,%eax + 42024c: 5b pop %rbx + 42024d: 5d pop %rbp + 42024e: 41 5c pop %r12 + 420250: c3 retq + 420251: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 420258: e8 03 6f ff ff callq 417160 + 42025d: 48 85 c0 test %rax,%rax + 420260: 48 89 c5 mov %rax,%rbp + 420263: 0f 85 0b ff ff ff jne 420174 <__libc_pvalloc+0xd4> + 420269: 49 8d 7c 1c 20 lea 0x20(%r12,%rbx,1),%rdi + 42026e: 31 f6 xor %esi,%esi + 420270: e8 db 71 ff ff callq 417450 + 420275: 4c 89 e2 mov %r12,%rdx + 420278: 48 89 de mov %rbx,%rsi + 42027b: 48 89 c7 mov %rax,%rdi + 42027e: 48 89 c5 mov %rax,%rbp + 420281: e8 8a c2 ff ff callq 41c510 <_int_memalign> + 420286: 48 85 c0 test %rax,%rax + 420289: 48 89 c2 mov %rax,%rdx + 42028c: 75 2a jne 4202b8 <__libc_pvalloc+0x218> + 42028e: 48 85 ed test %rbp,%rbp + 420291: 74 25 je 4202b8 <__libc_pvalloc+0x218> + 420293: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 420298: 90 nop + 420299: 48 89 ef mov %rbp,%rdi + 42029c: 4c 89 e6 mov %r12,%rsi + 42029f: e8 4c 77 ff ff callq 4179f0 + 4202a4: 4c 89 e2 mov %r12,%rdx + 4202a7: 48 89 de mov %rbx,%rsi + 4202aa: 48 89 c7 mov %rax,%rdi + 4202ad: 48 89 c5 mov %rax,%rbp + 4202b0: e8 5b c2 ff ff callq 41c510 <_int_memalign> + 4202b5: 48 89 c2 mov %rax,%rdx + 4202b8: 48 85 ed test %rbp,%rbp + 4202bb: 0f 85 cd fe ff ff jne 42018e <__libc_pvalloc+0xee> + 4202c1: e9 f5 fe ff ff jmpq 4201bb <__libc_pvalloc+0x11b> + 4202c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4202cd: 00 00 00 + 4202d0: 48 8d 42 f0 lea -0x10(%rdx),%rax + 4202d4: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax + 4202da: 48 8b 08 mov (%rax),%rcx + 4202dd: e9 f7 fe ff ff jmpq 4201d9 <__libc_pvalloc+0x139> + 4202e2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4202e8: 48 83 c4 10 add $0x10,%rsp + 4202ec: 4c 89 e7 mov %r12,%rdi + 4202ef: 5b pop %rbx + 4202f0: 5d pop %rbp + 4202f1: 41 5c pop %r12 + 4202f3: e9 18 d7 ff ff jmpq 41da10 <__libc_malloc> + 4202f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4202ff: 00 + 420300: 48 83 c4 10 add $0x10,%rsp + 420304: 4c 89 e6 mov %r12,%rsi + 420307: 48 89 c7 mov %rax,%rdi + 42030a: 5b pop %rbx + 42030b: 5d pop %rbp + 42030c: 41 5c pop %r12 + 42030e: ff e1 jmpq *%rcx + 420310: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 420317: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) + 42031e: 31 c0 xor %eax,%eax + 420320: e9 c0 fe ff ff jmpq 4201e5 <__libc_pvalloc+0x145> + 420325: 0f 1f 00 nopl (%rax) + 420328: 31 c0 xor %eax,%eax + 42032a: e9 b6 fe ff ff jmpq 4201e5 <__libc_pvalloc+0x145> + 42032f: 90 nop + 420330: 48 89 7c 24 08 mov %rdi,0x8(%rsp) + 420335: e8 b6 e9 ff ff callq 41ecf0 + 42033a: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi + 42033f: e9 72 fd ff ff jmpq 4200b6 <__libc_pvalloc+0x16> + 420344: 48 89 c3 mov %rax,%rbx + 420347: e9 d4 fd ff ff jmpq 420120 <__libc_pvalloc+0x80> + 42034c: b9 08 2e 4a 00 mov $0x4a2e08,%ecx + 420351: ba 3c 0c 00 00 mov $0xc3c,%edx + 420356: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 42035b: bf 20 2a 4a 00 mov $0x4a2a20,%edi + 420360: e8 bb 6a ff ff callq 416e20 <__malloc_assert> + 420365: 90 nop + 420366: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42036d: 00 00 00 + +0000000000420370 <__malloc_trim>: + 420370: 41 57 push %r15 + 420372: 41 56 push %r14 + 420374: 41 55 push %r13 + 420376: 41 54 push %r12 + 420378: 55 push %rbp + 420379: 53 push %rbx + 42037a: 48 83 ec 28 sub $0x28,%rsp + 42037e: 8b 05 e0 a3 2a 00 mov 0x2aa3e0(%rip),%eax # 6ca764 <__libc_malloc_initialized> + 420384: 48 89 7c 24 18 mov %rdi,0x18(%rsp) + 420389: 85 c0 test %eax,%eax + 42038b: 0f 88 40 02 00 00 js 4205d1 <__malloc_trim+0x261> + 420391: 48 c7 44 24 08 00 a8 movq $0x6ca800,0x8(%rsp) + 420398: 6c 00 + 42039a: c7 44 24 14 00 00 00 movl $0x0,0x14(%rsp) + 4203a1: 00 + 4203a2: be 01 00 00 00 mov $0x1,%esi + 4203a7: 31 c0 xor %eax,%eax + 4203a9: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 4203ae: 83 3d 07 ce 2a 00 00 cmpl $0x0,0x2ace07(%rip) # 6cd1bc <__libc_multiple_threads> + 4203b5: 74 08 je 4203bf <__malloc_trim+0x4f> + 4203b7: f0 0f b1 32 lock cmpxchg %esi,(%rdx) + 4203bb: 75 07 jne 4203c4 <__malloc_trim+0x54> + 4203bd: eb 1b jmp 4203da <__malloc_trim+0x6a> + 4203bf: 0f b1 32 cmpxchg %esi,(%rdx) + 4203c2: 74 16 je 4203da <__malloc_trim+0x6a> + 4203c4: 48 8d 3a lea (%rdx),%rdi + 4203c7: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4203ce: e8 fd 21 02 00 callq 4425d0 <__lll_lock_wait_private> + 4203d3: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4203da: 45 31 db xor %r11d,%r11d + 4203dd: f6 42 04 04 testb $0x4,0x4(%rdx) + 4203e1: 74 5f je 420442 <__malloc_trim+0xd2> + 4203e3: 44 09 5c 24 14 or %r11d,0x14(%rsp) + 4203e8: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 4203ed: 83 3d c8 cd 2a 00 00 cmpl $0x0,0x2acdc8(%rip) # 6cd1bc <__libc_multiple_threads> + 4203f4: 74 07 je 4203fd <__malloc_trim+0x8d> + 4203f6: f0 ff 0a lock decl (%rdx) + 4203f9: 75 06 jne 420401 <__malloc_trim+0x91> + 4203fb: eb 1a jmp 420417 <__malloc_trim+0xa7> + 4203fd: ff 0a decl (%rdx) + 4203ff: 74 16 je 420417 <__malloc_trim+0xa7> + 420401: 48 8d 3a lea (%rdx),%rdi + 420404: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 42040b: e8 f0 21 02 00 callq 442600 <__lll_unlock_wake_private> + 420410: 48 81 c4 80 00 00 00 add $0x80,%rsp + 420417: 48 8b 82 68 08 00 00 mov 0x868(%rdx),%rax + 42041e: 48 3d 00 a8 6c 00 cmp $0x6ca800,%rax + 420424: 48 89 44 24 08 mov %rax,0x8(%rsp) + 420429: 0f 85 73 ff ff ff jne 4203a2 <__malloc_trim+0x32> + 42042f: 8b 44 24 14 mov 0x14(%rsp),%eax + 420433: 48 83 c4 28 add $0x28,%rsp + 420437: 5b pop %rbx + 420438: 5d pop %rbp + 420439: 41 5c pop %r12 + 42043b: 41 5d pop %r13 + 42043d: 41 5e pop %r14 + 42043f: 41 5f pop %r15 + 420441: c3 retq + 420442: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi + 420447: e8 e4 79 ff ff callq 417e30 + 42044c: 48 8b 0d 2d ad 2a 00 mov 0x2aad2d(%rip),%rcx # 6cb180 <_dl_pagesize> + 420453: 48 81 f9 ff 03 00 00 cmp $0x3ff,%rcx + 42045a: 0f 87 d3 00 00 00 ja 420533 <__malloc_trim+0x1c3> + 420460: 89 c8 mov %ecx,%eax + 420462: c1 e8 04 shr $0x4,%eax + 420465: 89 44 24 10 mov %eax,0x10(%rsp) + 420469: 4c 8d 71 ff lea -0x1(%rcx),%r14 + 42046d: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 420472: 45 31 db xor %r11d,%r11d + 420475: bd 01 00 00 00 mov $0x1,%ebp + 42047a: 4c 8d 69 2f lea 0x2f(%rcx),%r13 + 42047e: 4d 89 f7 mov %r14,%r15 + 420481: 4c 8d 60 58 lea 0x58(%rax),%r12 + 420485: 49 f7 d7 not %r15 + 420488: eb 1b jmp 4204a5 <__malloc_trim+0x135> + 42048a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 420490: 39 6c 24 10 cmp %ebp,0x10(%rsp) + 420494: 7e 14 jle 4204aa <__malloc_trim+0x13a> + 420496: 83 c5 01 add $0x1,%ebp + 420499: 49 83 c4 10 add $0x10,%r12 + 42049d: 81 fd 80 00 00 00 cmp $0x80,%ebp + 4204a3: 74 75 je 42051a <__malloc_trim+0x1aa> + 4204a5: 83 fd 01 cmp $0x1,%ebp + 4204a8: 75 e6 jne 420490 <__malloc_trim+0x120> + 4204aa: 49 8b 5c 24 18 mov 0x18(%r12),%rbx + 4204af: 49 39 dc cmp %rbx,%r12 + 4204b2: 75 15 jne 4204c9 <__malloc_trim+0x159> + 4204b4: eb e0 jmp 420496 <__malloc_trim+0x126> + 4204b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4204bd: 00 00 00 + 4204c0: 48 8b 5b 18 mov 0x18(%rbx),%rbx + 4204c4: 49 39 dc cmp %rbx,%r12 + 4204c7: 74 cd je 420496 <__malloc_trim+0x126> + 4204c9: 48 8b 73 08 mov 0x8(%rbx),%rsi + 4204cd: 48 83 e6 f8 and $0xfffffffffffffff8,%rsi + 4204d1: 4c 39 ee cmp %r13,%rsi + 4204d4: 76 ea jbe 4204c0 <__malloc_trim+0x150> + 4204d6: 4a 8d 3c 2b lea (%rbx,%r13,1),%rdi + 4204da: 48 8d 43 30 lea 0x30(%rbx),%rax + 4204de: 4c 21 ff and %r15,%rdi + 4204e1: 48 39 c7 cmp %rax,%rdi + 4204e4: 0f 82 b3 00 00 00 jb 42059d <__malloc_trim+0x22d> + 4204ea: 48 8d 04 33 lea (%rbx,%rsi,1),%rax + 4204ee: 48 39 c7 cmp %rax,%rdi + 4204f1: 0f 83 8d 00 00 00 jae 420584 <__malloc_trim+0x214> + 4204f7: 48 89 f8 mov %rdi,%rax + 4204fa: 48 29 d8 sub %rbx,%rax + 4204fd: 48 29 c6 sub %rax,%rsi + 420500: 49 39 f6 cmp %rsi,%r14 + 420503: 73 bb jae 4204c0 <__malloc_trim+0x150> + 420505: 4c 21 fe and %r15,%rsi + 420508: ba 04 00 00 00 mov $0x4,%edx + 42050d: e8 de f7 01 00 callq 43fcf0 <__madvise> + 420512: 41 bb 01 00 00 00 mov $0x1,%r11d + 420518: eb a6 jmp 4204c0 <__malloc_trim+0x150> + 42051a: 31 c0 xor %eax,%eax + 42051c: 48 81 7c 24 08 00 a8 cmpq $0x6ca800,0x8(%rsp) + 420523: 6c 00 + 420525: 0f 84 d1 00 00 00 je 4205fc <__malloc_trim+0x28c> + 42052b: 41 09 c3 or %eax,%r11d + 42052e: e9 b0 fe ff ff jmpq 4203e3 <__malloc_trim+0x73> + 420533: 49 89 cc mov %rcx,%r12 + 420536: 49 c1 ec 06 shr $0x6,%r12 + 42053a: 49 83 fc 30 cmp $0x30,%r12 + 42053e: 77 0e ja 42054e <__malloc_trim+0x1de> + 420540: 41 8d 44 24 30 lea 0x30(%r12),%eax + 420545: 89 44 24 10 mov %eax,0x10(%rsp) + 420549: e9 1b ff ff ff jmpq 420469 <__malloc_trim+0xf9> + 42054e: 49 89 cc mov %rcx,%r12 + 420551: 49 c1 ec 09 shr $0x9,%r12 + 420555: 49 83 fc 14 cmp $0x14,%r12 + 420559: 76 1b jbe 420576 <__malloc_trim+0x206> + 42055b: 49 89 cc mov %rcx,%r12 + 42055e: 49 c1 ec 0c shr $0xc,%r12 + 420562: 49 83 fc 0a cmp $0xa,%r12 + 420566: 77 4e ja 4205b6 <__malloc_trim+0x246> + 420568: 41 8d 44 24 6e lea 0x6e(%r12),%eax + 42056d: 89 44 24 10 mov %eax,0x10(%rsp) + 420571: e9 f3 fe ff ff jmpq 420469 <__malloc_trim+0xf9> + 420576: 41 8d 44 24 5b lea 0x5b(%r12),%eax + 42057b: 89 44 24 10 mov %eax,0x10(%rsp) + 42057f: e9 e5 fe ff ff jmpq 420469 <__malloc_trim+0xf9> + 420584: b9 1a 23 4a 00 mov $0x4a231a,%ecx + 420589: ba aa 11 00 00 mov $0x11aa,%edx + 42058e: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 420593: bf 38 2b 4a 00 mov $0x4a2b38,%edi + 420598: e8 83 68 ff ff callq 416e20 <__malloc_assert> + 42059d: b9 1a 23 4a 00 mov $0x4a231a,%ecx + 4205a2: ba a9 11 00 00 mov $0x11a9,%edx + 4205a7: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 4205ac: bf 00 2b 4a 00 mov $0x4a2b00,%edi + 4205b1: e8 6a 68 ff ff callq 416e20 <__malloc_assert> + 4205b6: 49 89 cc mov %rcx,%r12 + 4205b9: 49 c1 ec 0f shr $0xf,%r12 + 4205bd: 49 83 fc 04 cmp $0x4,%r12 + 4205c1: 77 18 ja 4205db <__malloc_trim+0x26b> + 4205c3: 41 8d 44 24 77 lea 0x77(%r12),%eax + 4205c8: 89 44 24 10 mov %eax,0x10(%rsp) + 4205cc: e9 98 fe ff ff jmpq 420469 <__malloc_trim+0xf9> + 4205d1: e8 1a e7 ff ff callq 41ecf0 + 4205d6: e9 b6 fd ff ff jmpq 420391 <__malloc_trim+0x21> + 4205db: 48 89 c8 mov %rcx,%rax + 4205de: 48 c1 e8 12 shr $0x12,%rax + 4205e2: 44 8d 60 7c lea 0x7c(%rax),%r12d + 4205e6: 48 83 f8 02 cmp $0x2,%rax + 4205ea: b8 7e 00 00 00 mov $0x7e,%eax + 4205ef: 41 0f 46 c4 cmovbe %r12d,%eax + 4205f3: 89 44 24 10 mov %eax,0x10(%rsp) + 4205f7: e9 6d fe ff ff jmpq 420469 <__malloc_trim+0xf9> + 4205fc: 48 8b 7c 24 18 mov 0x18(%rsp),%rdi + 420601: ba 80 b0 6c 00 mov $0x6cb080,%edx + 420606: be 58 a8 6c 00 mov $0x6ca858,%esi + 42060b: 44 89 5c 24 10 mov %r11d,0x10(%rsp) + 420610: e8 8b 6d ff ff callq 4173a0 + 420615: 44 8b 5c 24 10 mov 0x10(%rsp),%r11d + 42061a: e9 0c ff ff ff jmpq 42052b <__malloc_trim+0x1bb> + 42061f: 90 nop + +0000000000420620 <__libc_mallinfo>: + 420620: 41 54 push %r12 + 420622: 55 push %rbp + 420623: 49 89 fc mov %rdi,%r12 + 420626: 53 push %rbx + 420627: 48 83 ec 30 sub $0x30,%rsp + 42062b: 8b 05 33 a1 2a 00 mov 0x2aa133(%rip),%eax # 6ca764 <__libc_malloc_initialized> + 420631: 85 c0 test %eax,%eax + 420633: 0f 88 ef 00 00 00 js 420728 <__libc_mallinfo+0x108> + 420639: 48 c7 04 24 00 00 00 movq $0x0,(%rsp) + 420640: 00 + 420641: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) + 420648: 00 00 + 42064a: bb 00 a8 6c 00 mov $0x6ca800,%ebx + 42064f: 48 c7 44 24 10 00 00 movq $0x0,0x10(%rsp) + 420656: 00 00 + 420658: 48 c7 44 24 18 00 00 movq $0x0,0x18(%rsp) + 42065f: 00 00 + 420661: bd 01 00 00 00 mov $0x1,%ebp + 420666: 48 c7 44 24 20 00 00 movq $0x0,0x20(%rsp) + 42066d: 00 00 + 42066f: 90 nop + 420670: 89 ee mov %ebp,%esi + 420672: 31 c0 xor %eax,%eax + 420674: 83 3d 41 cb 2a 00 00 cmpl $0x0,0x2acb41(%rip) # 6cd1bc <__libc_multiple_threads> + 42067b: 74 08 je 420685 <__libc_mallinfo+0x65> + 42067d: f0 0f b1 33 lock cmpxchg %esi,(%rbx) + 420681: 75 07 jne 42068a <__libc_mallinfo+0x6a> + 420683: eb 1b jmp 4206a0 <__libc_mallinfo+0x80> + 420685: 0f b1 33 cmpxchg %esi,(%rbx) + 420688: 74 16 je 4206a0 <__libc_mallinfo+0x80> + 42068a: 48 8d 3b lea (%rbx),%rdi + 42068d: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 420694: e8 37 1f 02 00 callq 4425d0 <__lll_lock_wait_private> + 420699: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4206a0: 48 89 e6 mov %rsp,%rsi + 4206a3: 48 89 df mov %rbx,%rdi + 4206a6: e8 15 82 ff ff callq 4188c0 + 4206ab: 83 3d 0a cb 2a 00 00 cmpl $0x0,0x2acb0a(%rip) # 6cd1bc <__libc_multiple_threads> + 4206b2: 74 07 je 4206bb <__libc_mallinfo+0x9b> + 4206b4: f0 ff 0b lock decl (%rbx) + 4206b7: 75 06 jne 4206bf <__libc_mallinfo+0x9f> + 4206b9: eb 1a jmp 4206d5 <__libc_mallinfo+0xb5> + 4206bb: ff 0b decl (%rbx) + 4206bd: 74 16 je 4206d5 <__libc_mallinfo+0xb5> + 4206bf: 48 8d 3b lea (%rbx),%rdi + 4206c2: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4206c9: e8 32 1f 02 00 callq 442600 <__lll_unlock_wake_private> + 4206ce: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4206d5: 48 8b 9b 68 08 00 00 mov 0x868(%rbx),%rbx + 4206dc: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx + 4206e3: 75 8b jne 420670 <__libc_mallinfo+0x50> + 4206e5: 48 8b 04 24 mov (%rsp),%rax + 4206e9: 49 89 04 24 mov %rax,(%r12) + 4206ed: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4206f2: 49 89 44 24 08 mov %rax,0x8(%r12) + 4206f7: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 4206fc: 49 89 44 24 10 mov %rax,0x10(%r12) + 420701: 48 8b 44 24 18 mov 0x18(%rsp),%rax + 420706: 49 89 44 24 18 mov %rax,0x18(%r12) + 42070b: 48 8b 44 24 20 mov 0x20(%rsp),%rax + 420710: 49 89 44 24 20 mov %rax,0x20(%r12) + 420715: 48 83 c4 30 add $0x30,%rsp + 420719: 4c 89 e0 mov %r12,%rax + 42071c: 5b pop %rbx + 42071d: 5d pop %rbp + 42071e: 41 5c pop %r12 + 420720: c3 retq + 420721: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 420728: e8 c3 e5 ff ff callq 41ecf0 + 42072d: e9 07 ff ff ff jmpq 420639 <__libc_mallinfo+0x19> + 420732: 0f 1f 40 00 nopl 0x0(%rax) + 420736: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42073d: 00 00 00 + +0000000000420740 <__malloc_stats>: + 420740: 41 57 push %r15 + 420742: 41 56 push %r14 + 420744: 41 55 push %r13 + 420746: 41 54 push %r12 + 420748: 55 push %rbp + 420749: 53 push %rbx + 42074a: 48 83 ec 38 sub $0x38,%rsp + 42074e: 8b 05 10 a0 2a 00 mov 0x2aa010(%rip),%eax # 6ca764 <__libc_malloc_initialized> + 420754: 4c 8b 25 7d a0 2a 00 mov 0x2aa07d(%rip),%r12 # 6ca7d8 + 42075b: 85 c0 test %eax,%eax + 42075d: 45 89 e5 mov %r12d,%r13d + 420760: 0f 88 ba 01 00 00 js 420920 <__malloc_stats+0x1e0> + 420766: 48 8b 05 cb 9f 2a 00 mov 0x2a9fcb(%rip),%rax # 6ca738 <_IO_stderr> + 42076d: bb 00 a8 6c 00 mov $0x6ca800,%ebx + 420772: 31 ed xor %ebp,%ebp + 420774: 41 be 01 00 00 00 mov $0x1,%r14d + 42077a: 44 8b 78 74 mov 0x74(%rax),%r15d + 42077e: 44 89 fa mov %r15d,%edx + 420781: 83 ca 02 or $0x2,%edx + 420784: 89 50 74 mov %edx,0x74(%rax) + 420787: eb 0a jmp 420793 <__malloc_stats+0x53> + 420789: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 420790: 83 c5 01 add $0x1,%ebp + 420793: 48 c7 04 24 00 00 00 movq $0x0,(%rsp) + 42079a: 00 + 42079b: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) + 4207a2: 00 00 + 4207a4: 44 89 f6 mov %r14d,%esi + 4207a7: 48 c7 44 24 10 00 00 movq $0x0,0x10(%rsp) + 4207ae: 00 00 + 4207b0: 48 c7 44 24 18 00 00 movq $0x0,0x18(%rsp) + 4207b7: 00 00 + 4207b9: 31 c0 xor %eax,%eax + 4207bb: 48 c7 44 24 20 00 00 movq $0x0,0x20(%rsp) + 4207c2: 00 00 + 4207c4: 83 3d f1 c9 2a 00 00 cmpl $0x0,0x2ac9f1(%rip) # 6cd1bc <__libc_multiple_threads> + 4207cb: 74 08 je 4207d5 <__malloc_stats+0x95> + 4207cd: f0 0f b1 33 lock cmpxchg %esi,(%rbx) + 4207d1: 75 07 jne 4207da <__malloc_stats+0x9a> + 4207d3: eb 1b jmp 4207f0 <__malloc_stats+0xb0> + 4207d5: 0f b1 33 cmpxchg %esi,(%rbx) + 4207d8: 74 16 je 4207f0 <__malloc_stats+0xb0> + 4207da: 48 8d 3b lea (%rbx),%rdi + 4207dd: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 4207e4: e8 e7 1d 02 00 callq 4425d0 <__lll_lock_wait_private> + 4207e9: 48 81 c4 80 00 00 00 add $0x80,%rsp + 4207f0: 48 89 e6 mov %rsp,%rsi + 4207f3: 48 89 df mov %rbx,%rdi + 4207f6: e8 c5 80 ff ff callq 4188c0 + 4207fb: 48 8b 3d 36 9f 2a 00 mov 0x2a9f36(%rip),%rdi # 6ca738 <_IO_stderr> + 420802: 89 ea mov %ebp,%edx + 420804: be 5e 22 4a 00 mov $0x4a225e,%esi + 420809: 31 c0 xor %eax,%eax + 42080b: e8 90 bb 03 00 callq 45c3a0 <__fprintf> + 420810: 8b 14 24 mov (%rsp),%edx + 420813: 48 8b 3d 1e 9f 2a 00 mov 0x2a9f1e(%rip),%rdi # 6ca738 <_IO_stderr> + 42081a: be 69 22 4a 00 mov $0x4a2269,%esi + 42081f: 31 c0 xor %eax,%eax + 420821: e8 7a bb 03 00 callq 45c3a0 <__fprintf> + 420826: 8b 54 24 1c mov 0x1c(%rsp),%edx + 42082a: 48 8b 3d 07 9f 2a 00 mov 0x2a9f07(%rip),%rdi # 6ca738 <_IO_stderr> + 420831: be 82 22 4a 00 mov $0x4a2282,%esi + 420836: 31 c0 xor %eax,%eax + 420838: e8 63 bb 03 00 callq 45c3a0 <__fprintf> + 42083d: 44 03 24 24 add (%rsp),%r12d + 420841: 44 03 6c 24 1c add 0x1c(%rsp),%r13d + 420846: 83 3d 6f c9 2a 00 00 cmpl $0x0,0x2ac96f(%rip) # 6cd1bc <__libc_multiple_threads> + 42084d: 74 07 je 420856 <__malloc_stats+0x116> + 42084f: f0 ff 0b lock decl (%rbx) + 420852: 75 06 jne 42085a <__malloc_stats+0x11a> + 420854: eb 1a jmp 420870 <__malloc_stats+0x130> + 420856: ff 0b decl (%rbx) + 420858: 74 16 je 420870 <__malloc_stats+0x130> + 42085a: 48 8d 3b lea (%rbx),%rdi + 42085d: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 420864: e8 97 1d 02 00 callq 442600 <__lll_unlock_wake_private> + 420869: 48 81 c4 80 00 00 00 add $0x80,%rsp + 420870: 48 8b 9b 68 08 00 00 mov 0x868(%rbx),%rbx + 420877: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx + 42087e: 0f 85 0c ff ff ff jne 420790 <__malloc_stats+0x50> + 420884: 48 8b 0d ad 9e 2a 00 mov 0x2a9ead(%rip),%rcx # 6ca738 <_IO_stderr> + 42088b: ba 14 00 00 00 mov $0x14,%edx + 420890: be 01 00 00 00 mov $0x1,%esi + 420895: bf 9b 22 4a 00 mov $0x4a229b,%edi + 42089a: e8 e1 24 04 00 callq 462d80 <_IO_fwrite> + 42089f: 48 8b 3d 92 9e 2a 00 mov 0x2a9e92(%rip),%rdi # 6ca738 <_IO_stderr> + 4208a6: 44 89 e2 mov %r12d,%edx + 4208a9: be 69 22 4a 00 mov $0x4a2269,%esi + 4208ae: 31 c0 xor %eax,%eax + 4208b0: e8 eb ba 03 00 callq 45c3a0 <__fprintf> + 4208b5: 48 8b 3d 7c 9e 2a 00 mov 0x2a9e7c(%rip),%rdi # 6ca738 <_IO_stderr> + 4208bc: 44 89 ea mov %r13d,%edx + 4208bf: be 82 22 4a 00 mov $0x4a2282,%esi + 4208c4: 31 c0 xor %eax,%eax + 4208c6: e8 d5 ba 03 00 callq 45c3a0 <__fprintf> + 4208cb: 8b 15 ff 9e 2a 00 mov 0x2a9eff(%rip),%edx # 6ca7d0 + 4208d1: 48 8b 3d 60 9e 2a 00 mov 0x2a9e60(%rip),%rdi # 6ca738 <_IO_stderr> + 4208d8: be b0 22 4a 00 mov $0x4a22b0,%esi + 4208dd: 31 c0 xor %eax,%eax + 4208df: e8 bc ba 03 00 callq 45c3a0 <__fprintf> + 4208e4: 48 8b 15 f5 9e 2a 00 mov 0x2a9ef5(%rip),%rdx # 6ca7e0 + 4208eb: 48 8b 3d 46 9e 2a 00 mov 0x2a9e46(%rip),%rdi # 6ca738 <_IO_stderr> + 4208f2: be c9 22 4a 00 mov $0x4a22c9,%esi + 4208f7: 31 c0 xor %eax,%eax + 4208f9: e8 a2 ba 03 00 callq 45c3a0 <__fprintf> + 4208fe: 48 8b 05 33 9e 2a 00 mov 0x2a9e33(%rip),%rax # 6ca738 <_IO_stderr> + 420905: 44 09 78 74 or %r15d,0x74(%rax) + 420909: 48 83 c4 38 add $0x38,%rsp + 42090d: 5b pop %rbx + 42090e: 5d pop %rbp + 42090f: 41 5c pop %r12 + 420911: 41 5d pop %r13 + 420913: 41 5e pop %r14 + 420915: 41 5f pop %r15 + 420917: c3 retq + 420918: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42091f: 00 + 420920: e8 cb e3 ff ff callq 41ecf0 + 420925: e9 3c fe ff ff jmpq 420766 <__malloc_stats+0x26> + 42092a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +0000000000420930 <__malloc_info.part.7>: + 420930: 41 57 push %r15 + 420932: 41 56 push %r14 + 420934: 41 55 push %r13 + 420936: 41 54 push %r12 + 420938: 55 push %rbp + 420939: 53 push %rbx + 42093a: 48 89 fb mov %rdi,%rbx + 42093d: 48 81 ec 98 11 00 00 sub $0x1198,%rsp + 420944: 8b 0d 1a 9e 2a 00 mov 0x2a9e1a(%rip),%ecx # 6ca764 <__libc_malloc_initialized> + 42094a: 85 c9 test %ecx,%ecx + 42094c: 0f 88 55 04 00 00 js 420da7 <__malloc_info.part.7+0x477> + 420952: 48 89 de mov %rbx,%rsi + 420955: bf e3 22 4a 00 mov $0x4a22e3,%edi + 42095a: e8 31 22 04 00 callq 462b90 <_IO_fputs> + 42095f: 48 8d 84 24 b8 01 00 lea 0x1b8(%rsp),%rax + 420966: 00 + 420967: 48 c7 44 24 10 00 a8 movq $0x6ca800,0x10(%rsp) + 42096e: 6c 00 + 420970: 48 c7 44 24 20 00 00 movq $0x0,0x20(%rsp) + 420977: 00 00 + 420979: 48 c7 44 24 18 00 00 movq $0x0,0x18(%rsp) + 420980: 00 00 + 420982: 48 c7 44 24 50 00 00 movq $0x0,0x50(%rsp) + 420989: 00 00 + 42098b: 31 d2 xor %edx,%edx + 42098d: 48 c7 44 24 48 00 00 movq $0x0,0x48(%rsp) + 420994: 00 00 + 420996: 48 c7 44 24 30 00 00 movq $0x0,0x30(%rsp) + 42099d: 00 00 + 42099f: 48 c7 44 24 40 00 00 movq $0x0,0x40(%rsp) + 4209a6: 00 00 + 4209a8: 48 c7 44 24 28 00 00 movq $0x0,0x28(%rsp) + 4209af: 00 00 + 4209b1: 48 c7 44 24 38 00 00 movq $0x0,0x38(%rsp) + 4209b8: 00 00 + 4209ba: 48 89 44 24 68 mov %rax,0x68(%rsp) + 4209bf: 8d 42 01 lea 0x1(%rdx),%eax + 4209c2: be f9 22 4a 00 mov $0x4a22f9,%esi + 4209c7: 48 89 df mov %rbx,%rdi + 4209ca: 89 44 24 64 mov %eax,0x64(%rsp) + 4209ce: 31 c0 xor %eax,%eax + 4209d0: e8 cb b9 03 00 callq 45c3a0 <__fprintf> + 4209d5: be 01 00 00 00 mov $0x1,%esi + 4209da: 31 c0 xor %eax,%eax + 4209dc: 48 8b 54 24 10 mov 0x10(%rsp),%rdx + 4209e1: 83 3d d4 c7 2a 00 00 cmpl $0x0,0x2ac7d4(%rip) # 6cd1bc <__libc_multiple_threads> + 4209e8: 74 08 je 4209f2 <__malloc_info.part.7+0xc2> + 4209ea: f0 0f b1 32 lock cmpxchg %esi,(%rdx) + 4209ee: 75 07 jne 4209f7 <__malloc_info.part.7+0xc7> + 4209f0: eb 1b jmp 420a0d <__malloc_info.part.7+0xdd> + 4209f2: 0f b1 32 cmpxchg %esi,(%rdx) + 4209f5: 74 16 je 420a0d <__malloc_info.part.7+0xdd> + 4209f7: 48 8d 3a lea (%rdx),%rdi + 4209fa: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 420a01: e8 ca 1b 02 00 callq 4425d0 <__lll_lock_wait_private> + 420a06: 48 81 c4 80 00 00 00 add $0x80,%rsp + 420a0d: 4c 8b 4c 24 68 mov 0x68(%rsp),%r9 + 420a12: 48 8d 7a 08 lea 0x8(%rdx),%rdi + 420a16: 48 8d 4c 24 78 lea 0x78(%rsp),%rcx + 420a1b: 45 31 c0 xor %r8d,%r8d + 420a1e: 45 31 e4 xor %r12d,%r12d + 420a21: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 420a28: 48 8b 07 mov (%rdi),%rax + 420a2b: 48 85 c0 test %rax,%rax + 420a2e: 0f 84 fa 02 00 00 je 420d2e <__malloc_info.part.7+0x3fe> + 420a34: 48 8b 70 08 mov 0x8(%rax),%rsi + 420a38: 31 d2 xor %edx,%edx + 420a3a: 48 83 e6 f8 and $0xfffffffffffffff8,%rsi + 420a3e: 66 90 xchg %ax,%ax + 420a40: 48 8b 40 10 mov 0x10(%rax),%rax + 420a44: 48 83 c2 01 add $0x1,%rdx + 420a48: 48 85 c0 test %rax,%rax + 420a4b: 75 f3 jne 420a40 <__malloc_info.part.7+0x110> + 420a4d: 48 89 f0 mov %rsi,%rax + 420a50: 49 01 d0 add %rdx,%r8 + 420a53: 48 89 31 mov %rsi,(%rcx) + 420a56: 48 0f af c2 imul %rdx,%rax + 420a5a: 48 89 51 10 mov %rdx,0x10(%rcx) + 420a5e: 49 01 c4 add %rax,%r12 + 420a61: 48 8d 46 f1 lea -0xf(%rsi),%rax + 420a65: 48 89 41 f8 mov %rax,-0x8(%rcx) + 420a69: 48 0f af 11 imul (%rcx),%rdx + 420a6d: 48 83 c1 20 add $0x20,%rcx + 420a71: 48 83 c7 08 add $0x8,%rdi + 420a75: 48 89 51 e8 mov %rdx,-0x18(%rcx) + 420a79: 49 39 c9 cmp %rcx,%r9 + 420a7c: 75 aa jne 420a28 <__malloc_info.part.7+0xf8> + 420a7e: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 420a83: 4c 8d 94 24 b0 01 00 lea 0x1b0(%rsp),%r10 + 420a8a: 00 + 420a8b: 4c 8d 9c 24 90 11 00 lea 0x1190(%rsp),%r11 + 420a92: 00 + 420a93: 4c 89 44 24 58 mov %r8,0x58(%rsp) + 420a98: 45 31 f6 xor %r14d,%r14d + 420a9b: 45 31 c0 xor %r8d,%r8d + 420a9e: 4c 8d 48 58 lea 0x58(%rax),%r9 + 420aa2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 420aa8: 49 8b 51 10 mov 0x10(%r9),%rdx + 420aac: 66 0f ef d2 pxor %xmm2,%xmm2 + 420ab0: 66 0f 6f 0d 28 25 08 movdqa 0x82528(%rip),%xmm1 # 4a2fe0 <__func__.10972+0x20> + 420ab7: 00 + 420ab8: 48 85 d2 test %rdx,%rdx + 420abb: 41 0f 29 0a movaps %xmm1,(%r10) + 420abf: 41 0f 29 52 10 movaps %xmm2,0x10(%r10) + 420ac4: 0f 84 56 02 00 00 je 420d20 <__malloc_info.part.7+0x3f0> + 420aca: 49 39 d1 cmp %rdx,%r9 + 420acd: 0f 84 4d 02 00 00 je 420d20 <__malloc_info.part.7+0x3f0> + 420ad3: 49 8b 42 18 mov 0x18(%r10),%rax + 420ad7: 49 8b 6a 10 mov 0x10(%r10),%rbp + 420adb: 31 c9 xor %ecx,%ecx + 420add: 49 8b 32 mov (%r10),%rsi + 420ae0: 48 8d 78 01 lea 0x1(%rax),%rdi + 420ae4: eb 0d jmp 420af3 <__malloc_info.part.7+0x1c3> + 420ae6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 420aed: 00 00 00 + 420af0: 48 89 c7 mov %rax,%rdi + 420af3: 48 8b 42 08 mov 0x8(%rdx),%rax + 420af7: 48 8b 52 10 mov 0x10(%rdx),%rdx + 420afb: 48 01 c5 add %rax,%rbp + 420afe: 48 39 c6 cmp %rax,%rsi + 420b01: 48 0f 47 f0 cmova %rax,%rsi + 420b05: 48 39 c1 cmp %rax,%rcx + 420b08: 48 0f 42 c8 cmovb %rax,%rcx + 420b0c: 49 39 d1 cmp %rdx,%r9 + 420b0f: 48 8d 47 01 lea 0x1(%rdi),%rax + 420b13: 75 db jne 420af0 <__malloc_info.part.7+0x1c0> + 420b15: 48 89 74 24 08 mov %rsi,0x8(%rsp) + 420b1a: 48 85 ff test %rdi,%rdi + 420b1d: f3 0f 7e 44 24 08 movq 0x8(%rsp),%xmm0 + 420b23: 48 89 4c 24 08 mov %rcx,0x8(%rsp) + 420b28: 0f 16 44 24 08 movhps 0x8(%rsp),%xmm0 + 420b2d: 48 89 6c 24 08 mov %rbp,0x8(%rsp) + 420b32: 41 0f 29 02 movaps %xmm0,(%r10) + 420b36: f3 0f 7e 44 24 08 movq 0x8(%rsp),%xmm0 + 420b3c: 48 89 7c 24 08 mov %rdi,0x8(%rsp) + 420b41: 0f 16 44 24 08 movhps 0x8(%rsp),%xmm0 + 420b46: 41 0f 29 42 10 movaps %xmm0,0x10(%r10) + 420b4b: 0f 84 cf 01 00 00 je 420d20 <__malloc_info.part.7+0x3f0> + 420b51: 4d 89 c7 mov %r8,%r15 + 420b54: 49 83 c2 20 add $0x20,%r10 + 420b58: 49 01 fe add %rdi,%r14 + 420b5b: 49 83 c1 10 add $0x10,%r9 + 420b5f: 4d 03 7a f0 add -0x10(%r10),%r15 + 420b63: 4d 39 d3 cmp %r10,%r11 + 420b66: 4d 89 f8 mov %r15,%r8 + 420b69: 0f 85 39 ff ff ff jne 420aa8 <__malloc_info.part.7+0x178> + 420b6f: 48 8b 74 24 10 mov 0x10(%rsp),%rsi + 420b74: 83 3d 41 c6 2a 00 00 cmpl $0x0,0x2ac641(%rip) # 6cd1bc <__libc_multiple_threads> + 420b7b: 74 07 je 420b84 <__malloc_info.part.7+0x254> + 420b7d: f0 ff 0e lock decl (%rsi) + 420b80: 75 06 jne 420b88 <__malloc_info.part.7+0x258> + 420b82: eb 1a jmp 420b9e <__malloc_info.part.7+0x26e> + 420b84: ff 0e decl (%rsi) + 420b86: 74 16 je 420b9e <__malloc_info.part.7+0x26e> + 420b88: 48 8d 3e lea (%rsi),%rdi + 420b8b: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 420b92: e8 69 1a 02 00 callq 442600 <__lll_unlock_wake_private> + 420b97: 48 81 c4 80 00 00 00 add $0x80,%rsp + 420b9e: 48 8b 74 24 58 mov 0x58(%rsp),%rsi + 420ba3: 4c 01 64 24 30 add %r12,0x30(%rsp) + 420ba8: 48 8d ac 24 88 00 00 lea 0x88(%rsp),%rbp + 420baf: 00 + 420bb0: 48 01 74 24 28 add %rsi,0x28(%rsp) + 420bb5: 45 31 ed xor %r13d,%r13d + 420bb8: 4c 01 74 24 38 add %r14,0x38(%rsp) + 420bbd: 4c 01 7c 24 40 add %r15,0x40(%rsp) + 420bc2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 420bc8: 49 83 fd 0a cmp $0xa,%r13 + 420bcc: 4c 8b 4d 00 mov 0x0(%rbp),%r9 + 420bd0: 74 20 je 420bf2 <__malloc_info.part.7+0x2c2> + 420bd2: 4d 85 c9 test %r9,%r9 + 420bd5: 74 1b je 420bf2 <__malloc_info.part.7+0x2c2> + 420bd7: 48 8b 4d f0 mov -0x10(%rbp),%rcx + 420bdb: 48 8b 55 e8 mov -0x18(%rbp),%rdx + 420bdf: be 60 2b 4a 00 mov $0x4a2b60,%esi + 420be4: 4c 8b 45 f8 mov -0x8(%rbp),%r8 + 420be8: 48 89 df mov %rbx,%rdi + 420beb: 31 c0 xor %eax,%eax + 420bed: e8 ae b7 03 00 callq 45c3a0 <__fprintf> + 420bf2: 49 83 c5 01 add $0x1,%r13 + 420bf6: 48 83 c5 20 add $0x20,%rbp + 420bfa: 49 81 fd 89 00 00 00 cmp $0x89,%r13 + 420c01: 75 c5 jne 420bc8 <__malloc_info.part.7+0x298> + 420c03: 4c 8b 8c 24 c8 01 00 mov 0x1c8(%rsp),%r9 + 420c0a: 00 + 420c0b: 4d 85 c9 test %r9,%r9 + 420c0e: 0f 85 38 01 00 00 jne 420d4c <__malloc_info.part.7+0x41c> + 420c14: 48 8b 6c 24 10 mov 0x10(%rsp),%rbp + 420c19: 4d 89 f9 mov %r15,%r9 + 420c1c: 4d 89 f0 mov %r14,%r8 + 420c1f: 4c 89 e1 mov %r12,%rcx + 420c22: be e8 2b 4a 00 mov $0x4a2be8,%esi + 420c27: 48 89 df mov %rbx,%rdi + 420c2a: 48 8b 85 80 08 00 00 mov 0x880(%rbp),%rax + 420c31: 48 8b 95 88 08 00 00 mov 0x888(%rbp),%rdx + 420c38: 48 01 44 24 48 add %rax,0x48(%rsp) + 420c3d: 48 01 54 24 50 add %rdx,0x50(%rsp) + 420c42: 52 push %rdx + 420c43: 50 push %rax + 420c44: 31 c0 xor %eax,%eax + 420c46: 48 8b 54 24 68 mov 0x68(%rsp),%rdx + 420c4b: e8 50 b7 03 00 callq 45c3a0 <__fprintf> + 420c50: 48 81 fd 00 a8 6c 00 cmp $0x6ca800,%rbp + 420c57: 58 pop %rax + 420c58: 5a pop %rdx + 420c59: 0f 84 19 01 00 00 je 420d78 <__malloc_info.part.7+0x448> + 420c5f: 48 8b 45 58 mov 0x58(%rbp),%rax + 420c63: be 90 2c 4a 00 mov $0x4a2c90,%esi + 420c68: 48 89 df mov %rbx,%rdi + 420c6b: 48 89 c5 mov %rax,%rbp + 420c6e: 48 89 44 24 08 mov %rax,0x8(%rsp) + 420c73: 31 c0 xor %eax,%eax + 420c75: 48 81 e5 00 00 00 fc and $0xfffffffffc000000,%rbp + 420c7c: 48 8b 4d 18 mov 0x18(%rbp),%rcx + 420c80: 48 8b 55 10 mov 0x10(%rbp),%rdx + 420c84: e8 17 b7 03 00 callq 45c3a0 <__fprintf> + 420c89: 48 8b 75 10 mov 0x10(%rbp),%rsi + 420c8d: 48 01 74 24 18 add %rsi,0x18(%rsp) + 420c92: 48 8b 75 18 mov 0x18(%rbp),%rsi + 420c96: 48 01 74 24 20 add %rsi,0x20(%rsp) + 420c9b: 48 89 de mov %rbx,%rsi + 420c9e: bf 11 23 4a 00 mov $0x4a2311,%edi + 420ca3: e8 e8 1e 04 00 callq 462b90 <_IO_fputs> + 420ca8: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 420cad: 8b 54 24 64 mov 0x64(%rsp),%edx + 420cb1: 48 8b 80 68 08 00 00 mov 0x868(%rax),%rax + 420cb8: 48 3d 00 a8 6c 00 cmp $0x6ca800,%rax + 420cbe: 48 89 44 24 10 mov %rax,0x10(%rsp) + 420cc3: 0f 85 f6 fc ff ff jne 4209bf <__malloc_info.part.7+0x8f> + 420cc9: 8b 05 f9 9a 2a 00 mov 0x2a9af9(%rip),%eax # 6ca7c8 + 420ccf: ff 74 24 20 pushq 0x20(%rsp) + 420cd3: 48 89 df mov %rbx,%rdi + 420cd6: ff 74 24 20 pushq 0x20(%rsp) + 420cda: ff 74 24 60 pushq 0x60(%rsp) + 420cde: be d8 2c 4a 00 mov $0x4a2cd8,%esi + 420ce3: ff 74 24 60 pushq 0x60(%rsp) + 420ce7: ff 35 eb 9a 2a 00 pushq 0x2a9aeb(%rip) # 6ca7d8 + 420ced: 50 push %rax + 420cee: 4c 8b 4c 24 70 mov 0x70(%rsp),%r9 + 420cf3: 31 c0 xor %eax,%eax + 420cf5: 4c 8b 44 24 68 mov 0x68(%rsp),%r8 + 420cfa: 48 8b 4c 24 60 mov 0x60(%rsp),%rcx + 420cff: 48 8b 54 24 58 mov 0x58(%rsp),%rdx + 420d04: e8 97 b6 03 00 callq 45c3a0 <__fprintf> + 420d09: 48 81 c4 c8 11 00 00 add $0x11c8,%rsp + 420d10: 31 c0 xor %eax,%eax + 420d12: 5b pop %rbx + 420d13: 5d pop %rbp + 420d14: 41 5c pop %r12 + 420d16: 41 5d pop %r13 + 420d18: 41 5e pop %r14 + 420d1a: 41 5f pop %r15 + 420d1c: c3 retq + 420d1d: 0f 1f 00 nopl (%rax) + 420d20: 49 c7 02 00 00 00 00 movq $0x0,(%r10) + 420d27: 31 ff xor %edi,%edi + 420d29: e9 23 fe ff ff jmpq 420b51 <__malloc_info.part.7+0x221> + 420d2e: 48 c7 41 10 00 00 00 movq $0x0,0x10(%rcx) + 420d35: 00 + 420d36: 48 c7 01 00 00 00 00 movq $0x0,(%rcx) + 420d3d: 31 d2 xor %edx,%edx + 420d3f: 48 c7 41 f8 00 00 00 movq $0x0,-0x8(%rcx) + 420d46: 00 + 420d47: e9 1d fd ff ff jmpq 420a69 <__malloc_info.part.7+0x139> + 420d4c: 4c 8b 84 24 c0 01 00 mov 0x1c0(%rsp),%r8 + 420d53: 00 + 420d54: 48 8b 8c 24 b8 01 00 mov 0x1b8(%rsp),%rcx + 420d5b: 00 + 420d5c: be a8 2b 4a 00 mov $0x4a2ba8,%esi + 420d61: 48 8b 94 24 b0 01 00 mov 0x1b0(%rsp),%rdx + 420d68: 00 + 420d69: 48 89 df mov %rbx,%rdi + 420d6c: 31 c0 xor %eax,%eax + 420d6e: e8 2d b6 03 00 callq 45c3a0 <__fprintf> + 420d73: e9 9c fe ff ff jmpq 420c14 <__malloc_info.part.7+0x2e4> + 420d78: 48 8b 15 01 a3 2a 00 mov 0x2aa301(%rip),%rdx # 6cb080 + 420d7f: be 90 2c 4a 00 mov $0x4a2c90,%esi + 420d84: 48 89 df mov %rbx,%rdi + 420d87: 31 c0 xor %eax,%eax + 420d89: 48 89 d1 mov %rdx,%rcx + 420d8c: e8 0f b6 03 00 callq 45c3a0 <__fprintf> + 420d91: 48 8b 05 e8 a2 2a 00 mov 0x2aa2e8(%rip),%rax # 6cb080 + 420d98: 48 01 44 24 18 add %rax,0x18(%rsp) + 420d9d: 48 01 44 24 20 add %rax,0x20(%rsp) + 420da2: e9 f4 fe ff ff jmpq 420c9b <__malloc_info.part.7+0x36b> + 420da7: e8 44 df ff ff callq 41ecf0 + 420dac: e9 a1 fb ff ff jmpq 420952 <__malloc_info.part.7+0x22> + 420db1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 420db6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 420dbd: 00 00 00 + +0000000000420dc0 <__posix_memalign>: + 420dc0: 40 f6 c6 07 test $0x7,%sil + 420dc4: b8 16 00 00 00 mov $0x16,%eax + 420dc9: 74 05 je 420dd0 <__posix_memalign+0x10> + 420dcb: c3 retq + 420dcc: 0f 1f 40 00 nopl 0x0(%rax) + 420dd0: 48 89 f0 mov %rsi,%rax + 420dd3: 48 c1 e8 03 shr $0x3,%rax + 420dd7: 48 8d 48 ff lea -0x1(%rax),%rcx + 420ddb: 48 85 c1 test %rax,%rcx + 420dde: 0f 85 7c 01 00 00 jne 420f60 <__posix_memalign+0x1a0> + 420de4: 48 85 f6 test %rsi,%rsi + 420de7: 0f 84 73 01 00 00 je 420f60 <__posix_memalign+0x1a0> + 420ded: 41 55 push %r13 + 420def: 41 54 push %r12 + 420df1: 48 89 f0 mov %rsi,%rax + 420df4: 55 push %rbp + 420df5: 53 push %rbx + 420df6: 48 89 fd mov %rdi,%rbp + 420df9: 48 89 d3 mov %rdx,%rbx + 420dfc: 48 83 ec 08 sub $0x8,%rsp + 420e00: 48 8b 0d 71 99 2a 00 mov 0x2a9971(%rip),%rcx # 6ca778 <__memalign_hook> + 420e07: 48 85 c9 test %rcx,%rcx + 420e0a: 48 8b 54 24 28 mov 0x28(%rsp),%rdx + 420e0f: 0f 85 51 01 00 00 jne 420f66 <__posix_memalign+0x1a6> + 420e15: 48 83 fe 10 cmp $0x10,%rsi + 420e19: 0f 86 b9 01 00 00 jbe 420fd8 <__posix_memalign+0x218> + 420e1f: 48 83 fe 1f cmp $0x1f,%rsi + 420e23: 0f 86 51 01 00 00 jbe 420f7a <__posix_memalign+0x1ba> + 420e29: 48 ba 00 00 00 00 00 movabs $0x8000000000000000,%rdx + 420e30: 00 00 80 + 420e33: 48 39 d6 cmp %rdx,%rsi + 420e36: 0f 87 c8 01 00 00 ja 421004 <__posix_memalign+0x244> + 420e3c: 48 c7 c2 df ff ff ff mov $0xffffffffffffffdf,%rdx + 420e43: 48 29 f2 sub %rsi,%rdx + 420e46: 48 39 d3 cmp %rdx,%rbx + 420e49: 0f 87 c8 01 00 00 ja 421017 <__posix_memalign+0x257> + 420e4f: 48 8d 56 ff lea -0x1(%rsi),%rdx + 420e53: 48 85 f2 test %rsi,%rdx + 420e56: 0f 84 e7 01 00 00 je 421043 <__posix_memalign+0x283> + 420e5c: 48 83 fe 20 cmp $0x20,%rsi + 420e60: 41 bc 20 00 00 00 mov $0x20,%r12d + 420e66: 74 10 je 420e78 <__posix_memalign+0xb8> + 420e68: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 420e6f: 00 + 420e70: 4d 01 e4 add %r12,%r12 + 420e73: 4c 39 e0 cmp %r12,%rax + 420e76: 77 f8 ja 420e70 <__posix_memalign+0xb0> + 420e78: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax + 420e7f: 64 4c 8b 28 mov %fs:(%rax),%r13 + 420e83: 4d 85 ed test %r13,%r13 + 420e86: 0f 84 03 01 00 00 je 420f8f <__posix_memalign+0x1cf> + 420e8c: 41 8b 45 04 mov 0x4(%r13),%eax + 420e90: 83 e0 04 and $0x4,%eax + 420e93: 0f 85 f6 00 00 00 jne 420f8f <__posix_memalign+0x1cf> + 420e99: be 01 00 00 00 mov $0x1,%esi + 420e9e: 83 3d 17 c3 2a 00 00 cmpl $0x0,0x2ac317(%rip) # 6cd1bc <__libc_multiple_threads> + 420ea5: 74 0a je 420eb1 <__posix_memalign+0xf1> + 420ea7: f0 41 0f b1 75 00 lock cmpxchg %esi,0x0(%r13) + 420ead: 75 09 jne 420eb8 <__posix_memalign+0xf8> + 420eaf: eb 1e jmp 420ecf <__posix_memalign+0x10f> + 420eb1: 41 0f b1 75 00 cmpxchg %esi,0x0(%r13) + 420eb6: 74 17 je 420ecf <__posix_memalign+0x10f> + 420eb8: 49 8d 7d 00 lea 0x0(%r13),%rdi + 420ebc: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 420ec3: e8 08 17 02 00 callq 4425d0 <__lll_lock_wait_private> + 420ec8: 48 81 c4 80 00 00 00 add $0x80,%rsp + 420ecf: 48 89 da mov %rbx,%rdx + 420ed2: 4c 89 e6 mov %r12,%rsi + 420ed5: 4c 89 ef mov %r13,%rdi + 420ed8: e8 33 b6 ff ff callq 41c510 <_int_memalign> + 420edd: 48 85 c0 test %rax,%rax + 420ee0: 48 89 c2 mov %rax,%rdx + 420ee3: 0f 84 f9 00 00 00 je 420fe2 <__posix_memalign+0x222> + 420ee9: 83 3d cc c2 2a 00 00 cmpl $0x0,0x2ac2cc(%rip) # 6cd1bc <__libc_multiple_threads> + 420ef0: 74 09 je 420efb <__posix_memalign+0x13b> + 420ef2: f0 41 ff 4d 00 lock decl 0x0(%r13) + 420ef7: 75 08 jne 420f01 <__posix_memalign+0x141> + 420ef9: eb 1d jmp 420f18 <__posix_memalign+0x158> + 420efb: 41 ff 4d 00 decl 0x0(%r13) + 420eff: 74 17 je 420f18 <__posix_memalign+0x158> + 420f01: 49 8d 7d 00 lea 0x0(%r13),%rdi + 420f05: 48 81 ec 80 00 00 00 sub $0x80,%rsp + 420f0c: e8 ef 16 02 00 callq 442600 <__lll_unlock_wake_private> + 420f11: 48 81 c4 80 00 00 00 add $0x80,%rsp + 420f18: 48 85 d2 test %rdx,%rdx + 420f1b: 74 56 je 420f73 <__posix_memalign+0x1b3> + 420f1d: 48 8b 42 f8 mov -0x8(%rdx),%rax + 420f21: a8 02 test $0x2,%al + 420f23: 75 1f jne 420f44 <__posix_memalign+0x184> + 420f25: a8 04 test $0x4,%al + 420f27: b9 00 a8 6c 00 mov $0x6ca800,%ecx + 420f2c: 74 0d je 420f3b <__posix_memalign+0x17b> + 420f2e: 48 8d 42 f0 lea -0x10(%rdx),%rax + 420f32: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax + 420f38: 48 8b 08 mov (%rax),%rcx + 420f3b: 4c 39 e9 cmp %r13,%rcx + 420f3e: 0f 85 e6 00 00 00 jne 42102a <__posix_memalign+0x26a> + 420f44: 48 89 d0 mov %rdx,%rax + 420f47: 48 89 45 00 mov %rax,0x0(%rbp) + 420f4b: 31 c0 xor %eax,%eax + 420f4d: 48 83 c4 08 add $0x8,%rsp + 420f51: 5b pop %rbx + 420f52: 5d pop %rbp + 420f53: 41 5c pop %r12 + 420f55: 41 5d pop %r13 + 420f57: c3 retq + 420f58: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 420f5f: 00 + 420f60: b8 16 00 00 00 mov $0x16,%eax + 420f65: c3 retq + 420f66: 48 89 de mov %rbx,%rsi + 420f69: 48 89 c7 mov %rax,%rdi + 420f6c: ff d1 callq *%rcx + 420f6e: 48 85 c0 test %rax,%rax + 420f71: 75 d4 jne 420f47 <__posix_memalign+0x187> + 420f73: b8 0c 00 00 00 mov $0xc,%eax + 420f78: eb d3 jmp 420f4d <__posix_memalign+0x18d> + 420f7a: 48 83 fb bf cmp $0xffffffffffffffbf,%rbx + 420f7e: 0f 87 93 00 00 00 ja 421017 <__posix_memalign+0x257> + 420f84: 41 bc 20 00 00 00 mov $0x20,%r12d + 420f8a: e9 e9 fe ff ff jmpq 420e78 <__posix_memalign+0xb8> + 420f8f: e8 cc 61 ff ff callq 417160 + 420f94: 48 85 c0 test %rax,%rax + 420f97: 49 89 c5 mov %rax,%r13 + 420f9a: 0f 85 2f ff ff ff jne 420ecf <__posix_memalign+0x10f> + 420fa0: 49 8d 7c 1c 20 lea 0x20(%r12,%rbx,1),%rdi + 420fa5: 31 f6 xor %esi,%esi + 420fa7: e8 a4 64 ff ff callq 417450 + 420fac: 48 89 da mov %rbx,%rdx + 420faf: 4c 89 e6 mov %r12,%rsi + 420fb2: 48 89 c7 mov %rax,%rdi + 420fb5: 49 89 c5 mov %rax,%r13 + 420fb8: e8 53 b5 ff ff callq 41c510 <_int_memalign> + 420fbd: 48 85 c0 test %rax,%rax + 420fc0: 48 89 c2 mov %rax,%rdx + 420fc3: 75 05 jne 420fca <__posix_memalign+0x20a> + 420fc5: 4d 85 ed test %r13,%r13 + 420fc8: 75 18 jne 420fe2 <__posix_memalign+0x222> + 420fca: 4d 85 ed test %r13,%r13 + 420fcd: 0f 85 16 ff ff ff jne 420ee9 <__posix_memalign+0x129> + 420fd3: e9 40 ff ff ff jmpq 420f18 <__posix_memalign+0x158> + 420fd8: 48 89 df mov %rbx,%rdi + 420fdb: e8 30 ca ff ff callq 41da10 <__libc_malloc> + 420fe0: eb 8c jmp 420f6e <__posix_memalign+0x1ae> + 420fe2: 90 nop + 420fe3: 4c 89 ef mov %r13,%rdi + 420fe6: 48 89 de mov %rbx,%rsi + 420fe9: e8 02 6a ff ff callq 4179f0 + 420fee: 48 89 da mov %rbx,%rdx + 420ff1: 4c 89 e6 mov %r12,%rsi + 420ff4: 48 89 c7 mov %rax,%rdi + 420ff7: 49 89 c5 mov %rax,%r13 + 420ffa: e8 11 b5 ff ff callq 41c510 <_int_memalign> + 420fff: 48 89 c2 mov %rax,%rdx + 421002: eb c6 jmp 420fca <__posix_memalign+0x20a> + 421004: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 42100b: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) + 421012: e9 5c ff ff ff jmpq 420f73 <__posix_memalign+0x1b3> + 421017: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 42101e: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) + 421025: e9 49 ff ff ff jmpq 420f73 <__posix_memalign+0x1b3> + 42102a: b9 08 2e 4a 00 mov $0x4a2e08,%ecx + 42102f: ba 3c 0c 00 00 mov $0xc3c,%edx + 421034: be c8 1f 4a 00 mov $0x4a1fc8,%esi + 421039: bf 20 2a 4a 00 mov $0x4a2a20,%edi + 42103e: e8 dd 5d ff ff callq 416e20 <__malloc_assert> + 421043: 49 89 f4 mov %rsi,%r12 + 421046: e9 2d fe ff ff jmpq 420e78 <__posix_memalign+0xb8> + 42104b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000421050 <__malloc_info>: + 421050: 85 ff test %edi,%edi + 421052: 74 0c je 421060 <__malloc_info+0x10> + 421054: b8 16 00 00 00 mov $0x16,%eax + 421059: c3 retq + 42105a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 421060: 48 89 f7 mov %rsi,%rdi + 421063: e9 c8 f8 ff ff jmpq 420930 <__malloc_info.part.7> + 421068: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42106f: 00 + +0000000000421070 <__default_morecore>: + 421070: 48 83 ec 08 sub $0x8,%rsp + 421074: e8 77 ea 01 00 callq 43faf0 <__sbrk> + 421079: ba 00 00 00 00 mov $0x0,%edx + 42107e: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 421082: 48 0f 44 c2 cmove %rdx,%rax + 421086: 48 83 c4 08 add $0x8,%rsp + 42108a: c3 retq + 42108b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000421090 : + 421090: 48 8d 05 19 00 00 00 lea 0x19(%rip),%rax # 4210b0 <__GI_strchr> + 421097: f7 05 1f b6 2a 00 04 testl $0x4,0x2ab61f(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 42109e: 00 00 00 + 4210a1: 74 07 je 4210aa + 4210a3: 48 8d 05 66 a9 01 00 lea 0x1a966(%rip),%rax # 43ba10 <__strchr_sse2_no_bsf> + 4210aa: c3 retq + 4210ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +00000000004210b0 <__GI_strchr>: + 4210b0: 66 0f 6e ce movd %esi,%xmm1 + 4210b4: 89 f8 mov %edi,%eax + 4210b6: 25 ff 0f 00 00 and $0xfff,%eax + 4210bb: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 + 4210bf: 3d c0 0f 00 00 cmp $0xfc0,%eax + 4210c4: 66 0f 61 c9 punpcklwd %xmm1,%xmm1 + 4210c8: 66 0f 70 c9 00 pshufd $0x0,%xmm1,%xmm1 + 4210cd: 0f 8f 5d 01 00 00 jg 421230 <__GI_strchr+0x180> + 4210d3: f3 0f 6f 07 movdqu (%rdi),%xmm0 + 4210d7: 66 0f ef db pxor %xmm3,%xmm3 + 4210db: 66 0f 6f e0 movdqa %xmm0,%xmm4 + 4210df: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4210e3: 66 0f 74 e3 pcmpeqb %xmm3,%xmm4 + 4210e7: 66 0f eb c4 por %xmm4,%xmm0 + 4210eb: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4210ef: 85 c0 test %eax,%eax + 4210f1: 74 15 je 421108 <__GI_strchr+0x58> + 4210f3: 0f bc c0 bsf %eax,%eax + 4210f6: ba 00 00 00 00 mov $0x0,%edx + 4210fb: 48 8d 04 07 lea (%rdi,%rax,1),%rax + 4210ff: 40 38 30 cmp %sil,(%rax) + 421102: 48 0f 45 c2 cmovne %rdx,%rax + 421106: c3 retq + 421107: 90 nop + 421108: f3 0f 6f 47 10 movdqu 0x10(%rdi),%xmm0 + 42110d: 66 0f 6f e0 movdqa %xmm0,%xmm4 + 421111: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421115: 66 0f 74 e3 pcmpeqb %xmm3,%xmm4 + 421119: 66 0f eb c4 por %xmm4,%xmm0 + 42111d: 66 0f d7 c8 pmovmskb %xmm0,%ecx + 421121: f3 0f 6f 47 20 movdqu 0x20(%rdi),%xmm0 + 421126: 66 0f 6f e0 movdqa %xmm0,%xmm4 + 42112a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42112e: 48 c1 e1 10 shl $0x10,%rcx + 421132: 66 0f 74 e3 pcmpeqb %xmm3,%xmm4 + 421136: 66 0f eb c4 por %xmm4,%xmm0 + 42113a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 42113e: f3 0f 6f 47 30 movdqu 0x30(%rdi),%xmm0 + 421143: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 + 421147: 48 c1 e0 20 shl $0x20,%rax + 42114b: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42114f: 48 09 c8 or %rcx,%rax + 421152: 66 0f eb c3 por %xmm3,%xmm0 + 421156: 66 0f d7 c8 pmovmskb %xmm0,%ecx + 42115a: 48 c1 e1 30 shl $0x30,%rcx + 42115e: 48 09 c8 or %rcx,%rax + 421161: 48 85 c0 test %rax,%rax + 421164: 0f 85 a6 00 00 00 jne 421210 <__GI_strchr+0x160> + 42116a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 421170: 66 0f ef f6 pxor %xmm6,%xmm6 + 421174: 48 83 e7 c0 and $0xffffffffffffffc0,%rdi + 421178: 48 83 c7 40 add $0x40,%rdi + 42117c: 66 0f 6f 2f movdqa (%rdi),%xmm5 + 421180: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 + 421185: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 + 42118a: 66 0f ef e9 pxor %xmm1,%xmm5 + 42118e: 66 0f 6f 67 30 movdqa 0x30(%rdi),%xmm4 + 421193: 66 0f ef d1 pxor %xmm1,%xmm2 + 421197: 66 0f ef d9 pxor %xmm1,%xmm3 + 42119b: 66 0f da 2f pminub (%rdi),%xmm5 + 42119f: 66 0f ef e1 pxor %xmm1,%xmm4 + 4211a3: 66 0f da 57 10 pminub 0x10(%rdi),%xmm2 + 4211a8: 66 0f da 5f 20 pminub 0x20(%rdi),%xmm3 + 4211ad: 66 0f da ea pminub %xmm2,%xmm5 + 4211b1: 66 0f da 67 30 pminub 0x30(%rdi),%xmm4 + 4211b6: 66 0f da eb pminub %xmm3,%xmm5 + 4211ba: 66 0f da ec pminub %xmm4,%xmm5 + 4211be: 66 0f 74 ee pcmpeqb %xmm6,%xmm5 + 4211c2: 66 0f d7 c5 pmovmskb %xmm5,%eax + 4211c6: 85 c0 test %eax,%eax + 4211c8: 74 ae je 421178 <__GI_strchr+0xc8> + 4211ca: 66 0f 6f 2f movdqa (%rdi),%xmm5 + 4211ce: 66 0f 6f c5 movdqa %xmm5,%xmm0 + 4211d2: 66 0f 74 e9 pcmpeqb %xmm1,%xmm5 + 4211d6: 66 0f 74 c6 pcmpeqb %xmm6,%xmm0 + 4211da: 66 0f eb e8 por %xmm0,%xmm5 + 4211de: 66 0f 74 d6 pcmpeqb %xmm6,%xmm2 + 4211e2: 66 0f 74 de pcmpeqb %xmm6,%xmm3 + 4211e6: 66 0f 74 e6 pcmpeqb %xmm6,%xmm4 + 4211ea: 66 0f d7 cd pmovmskb %xmm5,%ecx + 4211ee: 66 0f d7 c2 pmovmskb %xmm2,%eax + 4211f2: 48 c1 e0 10 shl $0x10,%rax + 4211f6: 66 44 0f d7 c3 pmovmskb %xmm3,%r8d + 4211fb: 66 0f d7 d4 pmovmskb %xmm4,%edx + 4211ff: 49 c1 e0 20 shl $0x20,%r8 + 421203: 4c 09 c0 or %r8,%rax + 421206: 48 09 c8 or %rcx,%rax + 421209: 48 c1 e2 30 shl $0x30,%rdx + 42120d: 48 09 d0 or %rdx,%rax + 421210: 48 0f bc c0 bsf %rax,%rax + 421214: ba 00 00 00 00 mov $0x0,%edx + 421219: 48 8d 04 07 lea (%rdi,%rax,1),%rax + 42121d: 40 38 30 cmp %sil,(%rax) + 421220: 48 0f 45 c2 cmovne %rdx,%rax + 421224: c3 retq + 421225: 90 nop + 421226: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42122d: 00 00 00 + 421230: 48 89 fa mov %rdi,%rdx + 421233: 66 0f ef d2 pxor %xmm2,%xmm2 + 421237: 48 83 e2 c0 and $0xffffffffffffffc0,%rdx + 42123b: 66 0f 6f c1 movdqa %xmm1,%xmm0 + 42123f: 66 0f 6f 1a movdqa (%rdx),%xmm3 + 421243: 66 0f 6f e3 movdqa %xmm3,%xmm4 + 421247: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 42124b: 66 0f 74 e2 pcmpeqb %xmm2,%xmm4 + 42124f: 66 0f eb dc por %xmm4,%xmm3 + 421253: 66 44 0f d7 c3 pmovmskb %xmm3,%r8d + 421258: 66 0f 6f 5a 10 movdqa 0x10(%rdx),%xmm3 + 42125d: 66 0f 6f e3 movdqa %xmm3,%xmm4 + 421261: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 421265: 66 0f 74 e2 pcmpeqb %xmm2,%xmm4 + 421269: 66 0f eb dc por %xmm4,%xmm3 + 42126d: 66 0f d7 c3 pmovmskb %xmm3,%eax + 421271: 66 0f 6f 5a 20 movdqa 0x20(%rdx),%xmm3 + 421276: 66 0f 6f e3 movdqa %xmm3,%xmm4 + 42127a: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 42127e: 48 c1 e0 10 shl $0x10,%rax + 421282: 66 0f 74 e2 pcmpeqb %xmm2,%xmm4 + 421286: 66 0f eb dc por %xmm4,%xmm3 + 42128a: 66 44 0f d7 cb pmovmskb %xmm3,%r9d + 42128f: 66 0f 6f 5a 30 movdqa 0x30(%rdx),%xmm3 + 421294: 66 0f 74 d3 pcmpeqb %xmm3,%xmm2 + 421298: 49 c1 e1 20 shl $0x20,%r9 + 42129c: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 4212a0: 4c 09 c8 or %r9,%rax + 4212a3: 4c 09 c0 or %r8,%rax + 4212a6: 66 0f eb c2 por %xmm2,%xmm0 + 4212aa: 66 0f d7 c8 pmovmskb %xmm0,%ecx + 4212ae: 48 c1 e1 30 shl $0x30,%rcx + 4212b2: 48 09 c8 or %rcx,%rax + 4212b5: 89 f9 mov %edi,%ecx + 4212b7: 28 d1 sub %dl,%cl + 4212b9: 48 d3 e8 shr %cl,%rax + 4212bc: 48 85 c0 test %rax,%rax + 4212bf: 0f 85 4b ff ff ff jne 421210 <__GI_strchr+0x160> + 4212c5: e9 a0 fe ff ff jmpq 42116a <__GI_strchr+0xba> + 4212ca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +00000000004212d0 : + 4212d0: 48 8d 05 79 cd 00 00 lea 0xcd79(%rip),%rax # 42e050 <__strcmp_sse2_unaligned> + 4212d7: f7 05 df b3 2a 00 10 testl $0x10,0x2ab3df(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 4212de: 00 00 00 + 4212e1: 75 1a jne 4212fd + 4212e3: 48 8d 05 06 bb 00 00 lea 0xbb06(%rip),%rax # 42cdf0 <__strcmp_ssse3> + 4212ea: f7 05 9c b3 2a 00 00 testl $0x200,0x2ab39c(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> + 4212f1: 02 00 00 + 4212f4: 75 07 jne 4212fd + 4212f6: 48 8d 05 03 00 00 00 lea 0x3(%rip),%rax # 421300 <__GI_strcmp> + 4212fd: c3 retq + 4212fe: 66 90 xchg %ax,%ax + +0000000000421300 <__GI_strcmp>: + 421300: 89 f1 mov %esi,%ecx + 421302: 89 f8 mov %edi,%eax + 421304: 48 83 e1 3f and $0x3f,%rcx + 421308: 48 83 e0 3f and $0x3f,%rax + 42130c: 83 f9 30 cmp $0x30,%ecx + 42130f: 77 3f ja 421350 <__GI_strcmp+0x50> + 421311: 83 f8 30 cmp $0x30,%eax + 421314: 77 3a ja 421350 <__GI_strcmp+0x50> + 421316: 66 0f 12 0f movlpd (%rdi),%xmm1 + 42131a: 66 0f 12 16 movlpd (%rsi),%xmm2 + 42131e: 66 0f 16 4f 08 movhpd 0x8(%rdi),%xmm1 + 421323: 66 0f 16 56 08 movhpd 0x8(%rsi),%xmm2 + 421328: 66 0f ef c0 pxor %xmm0,%xmm0 + 42132c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421330: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 421334: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421338: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42133c: 81 ea ff ff 00 00 sub $0xffff,%edx + 421342: 0f 85 c8 13 00 00 jne 422710 <__GI_strcmp+0x1410> + 421348: 48 83 c6 10 add $0x10,%rsi + 42134c: 48 83 c7 10 add $0x10,%rdi + 421350: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 421354: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 421358: ba ff ff 00 00 mov $0xffff,%edx + 42135d: 45 31 c0 xor %r8d,%r8d + 421360: 83 e1 0f and $0xf,%ecx + 421363: 83 e0 0f and $0xf,%eax + 421366: 39 c1 cmp %eax,%ecx + 421368: 74 26 je 421390 <__GI_strcmp+0x90> + 42136a: 77 07 ja 421373 <__GI_strcmp+0x73> + 42136c: 41 89 d0 mov %edx,%r8d + 42136f: 91 xchg %eax,%ecx + 421370: 48 87 f7 xchg %rsi,%rdi + 421373: 4c 8d 48 0f lea 0xf(%rax),%r9 + 421377: 49 29 c9 sub %rcx,%r9 + 42137a: 4c 8d 15 af 1c 08 00 lea 0x81caf(%rip),%r10 # 4a3030 <__func__.10972+0x70> + 421381: 4f 63 0c 8a movslq (%r10,%r9,4),%r9 + 421385: 4f 8d 14 0a lea (%r10,%r9,1),%r10 + 421389: 41 ff e2 jmpq *%r10 + 42138c: 0f 1f 40 00 nopl 0x0(%rax) + 421390: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 421394: 66 0f ef c0 pxor %xmm0,%xmm0 + 421398: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42139c: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 4213a0: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4213a4: 66 44 0f d7 c9 pmovmskb %xmm1,%r9d + 4213a9: d3 ea shr %cl,%edx + 4213ab: 41 d3 e9 shr %cl,%r9d + 4213ae: 44 29 ca sub %r9d,%edx + 4213b1: 0f 85 3e 13 00 00 jne 4226f5 <__GI_strcmp+0x13f5> + 4213b7: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4213be: 49 c7 c1 10 00 00 00 mov $0x10,%r9 + 4213c5: 66 0f ef c0 pxor %xmm0,%xmm0 + 4213c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4213d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4213d5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4213da: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4213de: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4213e2: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4213e6: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4213ea: 81 ea ff ff 00 00 sub $0xffff,%edx + 4213f0: 0f 85 fa 12 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 4213f6: 48 83 c1 10 add $0x10,%rcx + 4213fa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4213ff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 421404: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421408: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42140c: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421410: 66 0f d7 d1 pmovmskb %xmm1,%edx + 421414: 81 ea ff ff 00 00 sub $0xffff,%edx + 42141a: 0f 85 d0 12 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 421420: 48 83 c1 10 add $0x10,%rcx + 421424: eb aa jmp 4213d0 <__GI_strcmp+0xd0> + 421426: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42142d: 00 00 00 + 421430: 66 0f ef c0 pxor %xmm0,%xmm0 + 421434: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 421438: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42143c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421440: 66 0f 73 fa 0f pslldq $0xf,%xmm2 + 421445: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 421449: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42144d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 421452: d3 ea shr %cl,%edx + 421454: 41 d3 e9 shr %cl,%r9d + 421457: 44 29 ca sub %r9d,%edx + 42145a: 0f 85 95 12 00 00 jne 4226f5 <__GI_strcmp+0x13f5> + 421460: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 421464: 66 0f ef c0 pxor %xmm0,%xmm0 + 421468: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42146f: 41 b9 01 00 00 00 mov $0x1,%r9d + 421475: 4c 8d 57 01 lea 0x1(%rdi),%r10 + 421479: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 421480: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 421487: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42148e: 00 00 + 421490: 49 83 c2 10 add $0x10,%r10 + 421494: 0f 8f 96 00 00 00 jg 421530 <__GI_strcmp+0x230> + 42149a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42149f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4214a4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4214a8: 66 0f 73 db 01 psrldq $0x1,%xmm3 + 4214ad: 66 0f 73 fa 0f pslldq $0xf,%xmm2 + 4214b2: 66 0f eb d3 por %xmm3,%xmm2 + 4214b6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4214ba: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4214be: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4214c2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4214c6: 81 ea ff ff 00 00 sub $0xffff,%edx + 4214cc: 0f 85 1e 12 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 4214d2: 48 83 c1 10 add $0x10,%rcx + 4214d6: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4214da: 49 83 c2 10 add $0x10,%r10 + 4214de: 7f 50 jg 421530 <__GI_strcmp+0x230> + 4214e0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4214e5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4214ea: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4214ee: 66 0f 73 db 01 psrldq $0x1,%xmm3 + 4214f3: 66 0f 73 fa 0f pslldq $0xf,%xmm2 + 4214f8: 66 0f eb d3 por %xmm3,%xmm2 + 4214fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421500: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 421504: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421508: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42150c: 81 ea ff ff 00 00 sub $0xffff,%edx + 421512: 0f 85 d8 11 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 421518: 48 83 c1 10 add $0x10,%rcx + 42151c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 421520: e9 6b ff ff ff jmpq 421490 <__GI_strcmp+0x190> + 421525: 90 nop + 421526: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42152d: 00 00 00 + 421530: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 421534: 66 0f d7 d0 pmovmskb %xmm0,%edx + 421538: f7 c2 fe ff 00 00 test $0xfffe,%edx + 42153e: 75 10 jne 421550 <__GI_strcmp+0x250> + 421540: 66 0f ef c0 pxor %xmm0,%xmm0 + 421544: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42154b: e9 4a ff ff ff jmpq 42149a <__GI_strcmp+0x19a> + 421550: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421555: 66 0f 73 d8 01 psrldq $0x1,%xmm0 + 42155a: 66 0f 73 db 01 psrldq $0x1,%xmm3 + 42155f: e9 7c 11 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> + 421564: 66 90 xchg %ax,%ax + 421566: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42156d: 00 00 00 + 421570: 66 0f ef c0 pxor %xmm0,%xmm0 + 421574: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 421578: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42157c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421580: 66 0f 73 fa 0e pslldq $0xe,%xmm2 + 421585: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 421589: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42158d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 421592: d3 ea shr %cl,%edx + 421594: 41 d3 e9 shr %cl,%r9d + 421597: 44 29 ca sub %r9d,%edx + 42159a: 0f 85 55 11 00 00 jne 4226f5 <__GI_strcmp+0x13f5> + 4215a0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 4215a4: 66 0f ef c0 pxor %xmm0,%xmm0 + 4215a8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4215af: 41 b9 02 00 00 00 mov $0x2,%r9d + 4215b5: 4c 8d 57 02 lea 0x2(%rdi),%r10 + 4215b9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 4215c0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4215c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4215ce: 00 00 + 4215d0: 49 83 c2 10 add $0x10,%r10 + 4215d4: 0f 8f 96 00 00 00 jg 421670 <__GI_strcmp+0x370> + 4215da: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4215df: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4215e4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4215e8: 66 0f 73 db 02 psrldq $0x2,%xmm3 + 4215ed: 66 0f 73 fa 0e pslldq $0xe,%xmm2 + 4215f2: 66 0f eb d3 por %xmm3,%xmm2 + 4215f6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4215fa: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4215fe: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421602: 66 0f d7 d1 pmovmskb %xmm1,%edx + 421606: 81 ea ff ff 00 00 sub $0xffff,%edx + 42160c: 0f 85 de 10 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 421612: 48 83 c1 10 add $0x10,%rcx + 421616: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42161a: 49 83 c2 10 add $0x10,%r10 + 42161e: 7f 50 jg 421670 <__GI_strcmp+0x370> + 421620: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421625: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42162a: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42162e: 66 0f 73 db 02 psrldq $0x2,%xmm3 + 421633: 66 0f 73 fa 0e pslldq $0xe,%xmm2 + 421638: 66 0f eb d3 por %xmm3,%xmm2 + 42163c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421640: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 421644: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421648: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42164c: 81 ea ff ff 00 00 sub $0xffff,%edx + 421652: 0f 85 98 10 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 421658: 48 83 c1 10 add $0x10,%rcx + 42165c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 421660: e9 6b ff ff ff jmpq 4215d0 <__GI_strcmp+0x2d0> + 421665: 90 nop + 421666: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42166d: 00 00 00 + 421670: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 421674: 66 0f d7 d0 pmovmskb %xmm0,%edx + 421678: f7 c2 fc ff 00 00 test $0xfffc,%edx + 42167e: 75 10 jne 421690 <__GI_strcmp+0x390> + 421680: 66 0f ef c0 pxor %xmm0,%xmm0 + 421684: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42168b: e9 4a ff ff ff jmpq 4215da <__GI_strcmp+0x2da> + 421690: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421695: 66 0f 73 d8 02 psrldq $0x2,%xmm0 + 42169a: 66 0f 73 db 02 psrldq $0x2,%xmm3 + 42169f: e9 3c 10 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> + 4216a4: 66 90 xchg %ax,%ax + 4216a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4216ad: 00 00 00 + 4216b0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4216b4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4216b8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4216bc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4216c0: 66 0f 73 fa 0d pslldq $0xd,%xmm2 + 4216c5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 4216c9: 66 0f f8 d0 psubb %xmm0,%xmm2 + 4216cd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 4216d2: d3 ea shr %cl,%edx + 4216d4: 41 d3 e9 shr %cl,%r9d + 4216d7: 44 29 ca sub %r9d,%edx + 4216da: 0f 85 15 10 00 00 jne 4226f5 <__GI_strcmp+0x13f5> + 4216e0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 4216e4: 66 0f ef c0 pxor %xmm0,%xmm0 + 4216e8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4216ef: 41 b9 03 00 00 00 mov $0x3,%r9d + 4216f5: 4c 8d 57 03 lea 0x3(%rdi),%r10 + 4216f9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 421700: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 421707: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42170e: 00 00 + 421710: 49 83 c2 10 add $0x10,%r10 + 421714: 0f 8f 96 00 00 00 jg 4217b0 <__GI_strcmp+0x4b0> + 42171a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42171f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 421724: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 421728: 66 0f 73 db 03 psrldq $0x3,%xmm3 + 42172d: 66 0f 73 fa 0d pslldq $0xd,%xmm2 + 421732: 66 0f eb d3 por %xmm3,%xmm2 + 421736: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42173a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42173e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421742: 66 0f d7 d1 pmovmskb %xmm1,%edx + 421746: 81 ea ff ff 00 00 sub $0xffff,%edx + 42174c: 0f 85 9e 0f 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 421752: 48 83 c1 10 add $0x10,%rcx + 421756: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42175a: 49 83 c2 10 add $0x10,%r10 + 42175e: 7f 50 jg 4217b0 <__GI_strcmp+0x4b0> + 421760: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421765: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42176a: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42176e: 66 0f 73 db 03 psrldq $0x3,%xmm3 + 421773: 66 0f 73 fa 0d pslldq $0xd,%xmm2 + 421778: 66 0f eb d3 por %xmm3,%xmm2 + 42177c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421780: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 421784: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421788: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42178c: 81 ea ff ff 00 00 sub $0xffff,%edx + 421792: 0f 85 58 0f 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 421798: 48 83 c1 10 add $0x10,%rcx + 42179c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4217a0: e9 6b ff ff ff jmpq 421710 <__GI_strcmp+0x410> + 4217a5: 90 nop + 4217a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4217ad: 00 00 00 + 4217b0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 4217b4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4217b8: f7 c2 f8 ff 00 00 test $0xfff8,%edx + 4217be: 75 10 jne 4217d0 <__GI_strcmp+0x4d0> + 4217c0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4217c4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4217cb: e9 4a ff ff ff jmpq 42171a <__GI_strcmp+0x41a> + 4217d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4217d5: 66 0f 73 d8 03 psrldq $0x3,%xmm0 + 4217da: 66 0f 73 db 03 psrldq $0x3,%xmm3 + 4217df: e9 fc 0e 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> + 4217e4: 66 90 xchg %ax,%ax + 4217e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4217ed: 00 00 00 + 4217f0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4217f4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4217f8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4217fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421800: 66 0f 73 fa 0c pslldq $0xc,%xmm2 + 421805: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 421809: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42180d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 421812: d3 ea shr %cl,%edx + 421814: 41 d3 e9 shr %cl,%r9d + 421817: 44 29 ca sub %r9d,%edx + 42181a: 0f 85 d5 0e 00 00 jne 4226f5 <__GI_strcmp+0x13f5> + 421820: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 421824: 66 0f ef c0 pxor %xmm0,%xmm0 + 421828: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42182f: 41 b9 04 00 00 00 mov $0x4,%r9d + 421835: 4c 8d 57 04 lea 0x4(%rdi),%r10 + 421839: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 421840: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 421847: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42184e: 00 00 + 421850: 49 83 c2 10 add $0x10,%r10 + 421854: 0f 8f 96 00 00 00 jg 4218f0 <__GI_strcmp+0x5f0> + 42185a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42185f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 421864: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 421868: 66 0f 73 db 04 psrldq $0x4,%xmm3 + 42186d: 66 0f 73 fa 0c pslldq $0xc,%xmm2 + 421872: 66 0f eb d3 por %xmm3,%xmm2 + 421876: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42187a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42187e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421882: 66 0f d7 d1 pmovmskb %xmm1,%edx + 421886: 81 ea ff ff 00 00 sub $0xffff,%edx + 42188c: 0f 85 5e 0e 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 421892: 48 83 c1 10 add $0x10,%rcx + 421896: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42189a: 49 83 c2 10 add $0x10,%r10 + 42189e: 7f 50 jg 4218f0 <__GI_strcmp+0x5f0> + 4218a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4218a5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4218aa: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4218ae: 66 0f 73 db 04 psrldq $0x4,%xmm3 + 4218b3: 66 0f 73 fa 0c pslldq $0xc,%xmm2 + 4218b8: 66 0f eb d3 por %xmm3,%xmm2 + 4218bc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4218c0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4218c4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4218c8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4218cc: 81 ea ff ff 00 00 sub $0xffff,%edx + 4218d2: 0f 85 18 0e 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 4218d8: 48 83 c1 10 add $0x10,%rcx + 4218dc: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4218e0: e9 6b ff ff ff jmpq 421850 <__GI_strcmp+0x550> + 4218e5: 90 nop + 4218e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4218ed: 00 00 00 + 4218f0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 4218f4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4218f8: f7 c2 f0 ff 00 00 test $0xfff0,%edx + 4218fe: 75 10 jne 421910 <__GI_strcmp+0x610> + 421900: 66 0f ef c0 pxor %xmm0,%xmm0 + 421904: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42190b: e9 4a ff ff ff jmpq 42185a <__GI_strcmp+0x55a> + 421910: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421915: 66 0f 73 d8 04 psrldq $0x4,%xmm0 + 42191a: 66 0f 73 db 04 psrldq $0x4,%xmm3 + 42191f: e9 bc 0d 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> + 421924: 66 90 xchg %ax,%ax + 421926: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42192d: 00 00 00 + 421930: 66 0f ef c0 pxor %xmm0,%xmm0 + 421934: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 421938: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42193c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421940: 66 0f 73 fa 0b pslldq $0xb,%xmm2 + 421945: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 421949: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42194d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 421952: d3 ea shr %cl,%edx + 421954: 41 d3 e9 shr %cl,%r9d + 421957: 44 29 ca sub %r9d,%edx + 42195a: 0f 85 95 0d 00 00 jne 4226f5 <__GI_strcmp+0x13f5> + 421960: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 421964: 66 0f ef c0 pxor %xmm0,%xmm0 + 421968: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42196f: 41 b9 05 00 00 00 mov $0x5,%r9d + 421975: 4c 8d 57 05 lea 0x5(%rdi),%r10 + 421979: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 421980: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 421987: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42198e: 00 00 + 421990: 49 83 c2 10 add $0x10,%r10 + 421994: 0f 8f 96 00 00 00 jg 421a30 <__GI_strcmp+0x730> + 42199a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42199f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4219a4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4219a8: 66 0f 73 db 05 psrldq $0x5,%xmm3 + 4219ad: 66 0f 73 fa 0b pslldq $0xb,%xmm2 + 4219b2: 66 0f eb d3 por %xmm3,%xmm2 + 4219b6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4219ba: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4219be: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4219c2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4219c6: 81 ea ff ff 00 00 sub $0xffff,%edx + 4219cc: 0f 85 1e 0d 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 4219d2: 48 83 c1 10 add $0x10,%rcx + 4219d6: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4219da: 49 83 c2 10 add $0x10,%r10 + 4219de: 7f 50 jg 421a30 <__GI_strcmp+0x730> + 4219e0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4219e5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4219ea: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4219ee: 66 0f 73 db 05 psrldq $0x5,%xmm3 + 4219f3: 66 0f 73 fa 0b pslldq $0xb,%xmm2 + 4219f8: 66 0f eb d3 por %xmm3,%xmm2 + 4219fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421a00: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 421a04: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421a08: 66 0f d7 d1 pmovmskb %xmm1,%edx + 421a0c: 81 ea ff ff 00 00 sub $0xffff,%edx + 421a12: 0f 85 d8 0c 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 421a18: 48 83 c1 10 add $0x10,%rcx + 421a1c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 421a20: e9 6b ff ff ff jmpq 421990 <__GI_strcmp+0x690> + 421a25: 90 nop + 421a26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 421a2d: 00 00 00 + 421a30: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 421a34: 66 0f d7 d0 pmovmskb %xmm0,%edx + 421a38: f7 c2 e0 ff 00 00 test $0xffe0,%edx + 421a3e: 75 10 jne 421a50 <__GI_strcmp+0x750> + 421a40: 66 0f ef c0 pxor %xmm0,%xmm0 + 421a44: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 421a4b: e9 4a ff ff ff jmpq 42199a <__GI_strcmp+0x69a> + 421a50: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421a55: 66 0f 73 d8 05 psrldq $0x5,%xmm0 + 421a5a: 66 0f 73 db 05 psrldq $0x5,%xmm3 + 421a5f: e9 7c 0c 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> + 421a64: 66 90 xchg %ax,%ax + 421a66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 421a6d: 00 00 00 + 421a70: 66 0f ef c0 pxor %xmm0,%xmm0 + 421a74: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 421a78: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 421a7c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421a80: 66 0f 73 fa 0a pslldq $0xa,%xmm2 + 421a85: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 421a89: 66 0f f8 d0 psubb %xmm0,%xmm2 + 421a8d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 421a92: d3 ea shr %cl,%edx + 421a94: 41 d3 e9 shr %cl,%r9d + 421a97: 44 29 ca sub %r9d,%edx + 421a9a: 0f 85 55 0c 00 00 jne 4226f5 <__GI_strcmp+0x13f5> + 421aa0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 421aa4: 66 0f ef c0 pxor %xmm0,%xmm0 + 421aa8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 421aaf: 41 b9 06 00 00 00 mov $0x6,%r9d + 421ab5: 4c 8d 57 06 lea 0x6(%rdi),%r10 + 421ab9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 421ac0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 421ac7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 421ace: 00 00 + 421ad0: 49 83 c2 10 add $0x10,%r10 + 421ad4: 0f 8f 96 00 00 00 jg 421b70 <__GI_strcmp+0x870> + 421ada: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421adf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 421ae4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 421ae8: 66 0f 73 db 06 psrldq $0x6,%xmm3 + 421aed: 66 0f 73 fa 0a pslldq $0xa,%xmm2 + 421af2: 66 0f eb d3 por %xmm3,%xmm2 + 421af6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421afa: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 421afe: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421b02: 66 0f d7 d1 pmovmskb %xmm1,%edx + 421b06: 81 ea ff ff 00 00 sub $0xffff,%edx + 421b0c: 0f 85 de 0b 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 421b12: 48 83 c1 10 add $0x10,%rcx + 421b16: 66 0f 6f dc movdqa %xmm4,%xmm3 + 421b1a: 49 83 c2 10 add $0x10,%r10 + 421b1e: 7f 50 jg 421b70 <__GI_strcmp+0x870> + 421b20: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421b25: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 421b2a: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 421b2e: 66 0f 73 db 06 psrldq $0x6,%xmm3 + 421b33: 66 0f 73 fa 0a pslldq $0xa,%xmm2 + 421b38: 66 0f eb d3 por %xmm3,%xmm2 + 421b3c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421b40: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 421b44: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421b48: 66 0f d7 d1 pmovmskb %xmm1,%edx + 421b4c: 81 ea ff ff 00 00 sub $0xffff,%edx + 421b52: 0f 85 98 0b 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 421b58: 48 83 c1 10 add $0x10,%rcx + 421b5c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 421b60: e9 6b ff ff ff jmpq 421ad0 <__GI_strcmp+0x7d0> + 421b65: 90 nop + 421b66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 421b6d: 00 00 00 + 421b70: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 421b74: 66 0f d7 d0 pmovmskb %xmm0,%edx + 421b78: f7 c2 c0 ff 00 00 test $0xffc0,%edx + 421b7e: 75 10 jne 421b90 <__GI_strcmp+0x890> + 421b80: 66 0f ef c0 pxor %xmm0,%xmm0 + 421b84: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 421b8b: e9 4a ff ff ff jmpq 421ada <__GI_strcmp+0x7da> + 421b90: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421b95: 66 0f 73 d8 06 psrldq $0x6,%xmm0 + 421b9a: 66 0f 73 db 06 psrldq $0x6,%xmm3 + 421b9f: e9 3c 0b 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> + 421ba4: 66 90 xchg %ax,%ax + 421ba6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 421bad: 00 00 00 + 421bb0: 66 0f ef c0 pxor %xmm0,%xmm0 + 421bb4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 421bb8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 421bbc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421bc0: 66 0f 73 fa 09 pslldq $0x9,%xmm2 + 421bc5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 421bc9: 66 0f f8 d0 psubb %xmm0,%xmm2 + 421bcd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 421bd2: d3 ea shr %cl,%edx + 421bd4: 41 d3 e9 shr %cl,%r9d + 421bd7: 44 29 ca sub %r9d,%edx + 421bda: 0f 85 15 0b 00 00 jne 4226f5 <__GI_strcmp+0x13f5> + 421be0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 421be4: 66 0f ef c0 pxor %xmm0,%xmm0 + 421be8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 421bef: 41 b9 07 00 00 00 mov $0x7,%r9d + 421bf5: 4c 8d 57 07 lea 0x7(%rdi),%r10 + 421bf9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 421c00: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 421c07: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 421c0e: 00 00 + 421c10: 49 83 c2 10 add $0x10,%r10 + 421c14: 0f 8f 96 00 00 00 jg 421cb0 <__GI_strcmp+0x9b0> + 421c1a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421c1f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 421c24: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 421c28: 66 0f 73 db 07 psrldq $0x7,%xmm3 + 421c2d: 66 0f 73 fa 09 pslldq $0x9,%xmm2 + 421c32: 66 0f eb d3 por %xmm3,%xmm2 + 421c36: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421c3a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 421c3e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421c42: 66 0f d7 d1 pmovmskb %xmm1,%edx + 421c46: 81 ea ff ff 00 00 sub $0xffff,%edx + 421c4c: 0f 85 9e 0a 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 421c52: 48 83 c1 10 add $0x10,%rcx + 421c56: 66 0f 6f dc movdqa %xmm4,%xmm3 + 421c5a: 49 83 c2 10 add $0x10,%r10 + 421c5e: 7f 50 jg 421cb0 <__GI_strcmp+0x9b0> + 421c60: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421c65: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 421c6a: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 421c6e: 66 0f 73 db 07 psrldq $0x7,%xmm3 + 421c73: 66 0f 73 fa 09 pslldq $0x9,%xmm2 + 421c78: 66 0f eb d3 por %xmm3,%xmm2 + 421c7c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421c80: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 421c84: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421c88: 66 0f d7 d1 pmovmskb %xmm1,%edx + 421c8c: 81 ea ff ff 00 00 sub $0xffff,%edx + 421c92: 0f 85 58 0a 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 421c98: 48 83 c1 10 add $0x10,%rcx + 421c9c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 421ca0: e9 6b ff ff ff jmpq 421c10 <__GI_strcmp+0x910> + 421ca5: 90 nop + 421ca6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 421cad: 00 00 00 + 421cb0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 421cb4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 421cb8: f7 c2 80 ff 00 00 test $0xff80,%edx + 421cbe: 75 10 jne 421cd0 <__GI_strcmp+0x9d0> + 421cc0: 66 0f ef c0 pxor %xmm0,%xmm0 + 421cc4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 421ccb: e9 4a ff ff ff jmpq 421c1a <__GI_strcmp+0x91a> + 421cd0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421cd5: 66 0f 73 d8 07 psrldq $0x7,%xmm0 + 421cda: 66 0f 73 db 07 psrldq $0x7,%xmm3 + 421cdf: e9 fc 09 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> + 421ce4: 66 90 xchg %ax,%ax + 421ce6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 421ced: 00 00 00 + 421cf0: 66 0f ef c0 pxor %xmm0,%xmm0 + 421cf4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 421cf8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 421cfc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421d00: 66 0f 73 fa 08 pslldq $0x8,%xmm2 + 421d05: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 421d09: 66 0f f8 d0 psubb %xmm0,%xmm2 + 421d0d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 421d12: d3 ea shr %cl,%edx + 421d14: 41 d3 e9 shr %cl,%r9d + 421d17: 44 29 ca sub %r9d,%edx + 421d1a: 0f 85 d5 09 00 00 jne 4226f5 <__GI_strcmp+0x13f5> + 421d20: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 421d24: 66 0f ef c0 pxor %xmm0,%xmm0 + 421d28: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 421d2f: 41 b9 08 00 00 00 mov $0x8,%r9d + 421d35: 4c 8d 57 08 lea 0x8(%rdi),%r10 + 421d39: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 421d40: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 421d47: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 421d4e: 00 00 + 421d50: 49 83 c2 10 add $0x10,%r10 + 421d54: 0f 8f 96 00 00 00 jg 421df0 <__GI_strcmp+0xaf0> + 421d5a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421d5f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 421d64: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 421d68: 66 0f 73 db 08 psrldq $0x8,%xmm3 + 421d6d: 66 0f 73 fa 08 pslldq $0x8,%xmm2 + 421d72: 66 0f eb d3 por %xmm3,%xmm2 + 421d76: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421d7a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 421d7e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421d82: 66 0f d7 d1 pmovmskb %xmm1,%edx + 421d86: 81 ea ff ff 00 00 sub $0xffff,%edx + 421d8c: 0f 85 5e 09 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 421d92: 48 83 c1 10 add $0x10,%rcx + 421d96: 66 0f 6f dc movdqa %xmm4,%xmm3 + 421d9a: 49 83 c2 10 add $0x10,%r10 + 421d9e: 7f 50 jg 421df0 <__GI_strcmp+0xaf0> + 421da0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421da5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 421daa: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 421dae: 66 0f 73 db 08 psrldq $0x8,%xmm3 + 421db3: 66 0f 73 fa 08 pslldq $0x8,%xmm2 + 421db8: 66 0f eb d3 por %xmm3,%xmm2 + 421dbc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421dc0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 421dc4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421dc8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 421dcc: 81 ea ff ff 00 00 sub $0xffff,%edx + 421dd2: 0f 85 18 09 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 421dd8: 48 83 c1 10 add $0x10,%rcx + 421ddc: 66 0f 6f dc movdqa %xmm4,%xmm3 + 421de0: e9 6b ff ff ff jmpq 421d50 <__GI_strcmp+0xa50> + 421de5: 90 nop + 421de6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 421ded: 00 00 00 + 421df0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 421df4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 421df8: f7 c2 00 ff 00 00 test $0xff00,%edx + 421dfe: 75 10 jne 421e10 <__GI_strcmp+0xb10> + 421e00: 66 0f ef c0 pxor %xmm0,%xmm0 + 421e04: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 421e0b: e9 4a ff ff ff jmpq 421d5a <__GI_strcmp+0xa5a> + 421e10: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421e15: 66 0f 73 d8 08 psrldq $0x8,%xmm0 + 421e1a: 66 0f 73 db 08 psrldq $0x8,%xmm3 + 421e1f: e9 bc 08 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> + 421e24: 66 90 xchg %ax,%ax + 421e26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 421e2d: 00 00 00 + 421e30: 66 0f ef c0 pxor %xmm0,%xmm0 + 421e34: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 421e38: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 421e3c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421e40: 66 0f 73 fa 07 pslldq $0x7,%xmm2 + 421e45: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 421e49: 66 0f f8 d0 psubb %xmm0,%xmm2 + 421e4d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 421e52: d3 ea shr %cl,%edx + 421e54: 41 d3 e9 shr %cl,%r9d + 421e57: 44 29 ca sub %r9d,%edx + 421e5a: 0f 85 95 08 00 00 jne 4226f5 <__GI_strcmp+0x13f5> + 421e60: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 421e64: 66 0f ef c0 pxor %xmm0,%xmm0 + 421e68: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 421e6f: 41 b9 09 00 00 00 mov $0x9,%r9d + 421e75: 4c 8d 57 09 lea 0x9(%rdi),%r10 + 421e79: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 421e80: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 421e87: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 421e8e: 00 00 + 421e90: 49 83 c2 10 add $0x10,%r10 + 421e94: 0f 8f 96 00 00 00 jg 421f30 <__GI_strcmp+0xc30> + 421e9a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421e9f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 421ea4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 421ea8: 66 0f 73 db 09 psrldq $0x9,%xmm3 + 421ead: 66 0f 73 fa 07 pslldq $0x7,%xmm2 + 421eb2: 66 0f eb d3 por %xmm3,%xmm2 + 421eb6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421eba: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 421ebe: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421ec2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 421ec6: 81 ea ff ff 00 00 sub $0xffff,%edx + 421ecc: 0f 85 1e 08 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 421ed2: 48 83 c1 10 add $0x10,%rcx + 421ed6: 66 0f 6f dc movdqa %xmm4,%xmm3 + 421eda: 49 83 c2 10 add $0x10,%r10 + 421ede: 7f 50 jg 421f30 <__GI_strcmp+0xc30> + 421ee0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421ee5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 421eea: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 421eee: 66 0f 73 db 09 psrldq $0x9,%xmm3 + 421ef3: 66 0f 73 fa 07 pslldq $0x7,%xmm2 + 421ef8: 66 0f eb d3 por %xmm3,%xmm2 + 421efc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421f00: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 421f04: 66 0f f8 c8 psubb %xmm0,%xmm1 + 421f08: 66 0f d7 d1 pmovmskb %xmm1,%edx + 421f0c: 81 ea ff ff 00 00 sub $0xffff,%edx + 421f12: 0f 85 d8 07 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 421f18: 48 83 c1 10 add $0x10,%rcx + 421f1c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 421f20: e9 6b ff ff ff jmpq 421e90 <__GI_strcmp+0xb90> + 421f25: 90 nop + 421f26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 421f2d: 00 00 00 + 421f30: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 421f34: 66 0f d7 d0 pmovmskb %xmm0,%edx + 421f38: f7 c2 00 fe 00 00 test $0xfe00,%edx + 421f3e: 75 10 jne 421f50 <__GI_strcmp+0xc50> + 421f40: 66 0f ef c0 pxor %xmm0,%xmm0 + 421f44: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 421f4b: e9 4a ff ff ff jmpq 421e9a <__GI_strcmp+0xb9a> + 421f50: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421f55: 66 0f 73 d8 09 psrldq $0x9,%xmm0 + 421f5a: 66 0f 73 db 09 psrldq $0x9,%xmm3 + 421f5f: e9 7c 07 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> + 421f64: 66 90 xchg %ax,%ax + 421f66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 421f6d: 00 00 00 + 421f70: 66 0f ef c0 pxor %xmm0,%xmm0 + 421f74: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 421f78: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 421f7c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421f80: 66 0f 73 fa 06 pslldq $0x6,%xmm2 + 421f85: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 421f89: 66 0f f8 d0 psubb %xmm0,%xmm2 + 421f8d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 421f92: d3 ea shr %cl,%edx + 421f94: 41 d3 e9 shr %cl,%r9d + 421f97: 44 29 ca sub %r9d,%edx + 421f9a: 0f 85 55 07 00 00 jne 4226f5 <__GI_strcmp+0x13f5> + 421fa0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 421fa4: 66 0f ef c0 pxor %xmm0,%xmm0 + 421fa8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 421faf: 41 b9 0a 00 00 00 mov $0xa,%r9d + 421fb5: 4c 8d 57 0a lea 0xa(%rdi),%r10 + 421fb9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 421fc0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 421fc7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 421fce: 00 00 + 421fd0: 49 83 c2 10 add $0x10,%r10 + 421fd4: 0f 8f 96 00 00 00 jg 422070 <__GI_strcmp+0xd70> + 421fda: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 421fdf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 421fe4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 421fe8: 66 0f 73 db 0a psrldq $0xa,%xmm3 + 421fed: 66 0f 73 fa 06 pslldq $0x6,%xmm2 + 421ff2: 66 0f eb d3 por %xmm3,%xmm2 + 421ff6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 421ffa: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 421ffe: 66 0f f8 c8 psubb %xmm0,%xmm1 + 422002: 66 0f d7 d1 pmovmskb %xmm1,%edx + 422006: 81 ea ff ff 00 00 sub $0xffff,%edx + 42200c: 0f 85 de 06 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 422012: 48 83 c1 10 add $0x10,%rcx + 422016: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42201a: 49 83 c2 10 add $0x10,%r10 + 42201e: 7f 50 jg 422070 <__GI_strcmp+0xd70> + 422020: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 422025: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42202a: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42202e: 66 0f 73 db 0a psrldq $0xa,%xmm3 + 422033: 66 0f 73 fa 06 pslldq $0x6,%xmm2 + 422038: 66 0f eb d3 por %xmm3,%xmm2 + 42203c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 422040: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 422044: 66 0f f8 c8 psubb %xmm0,%xmm1 + 422048: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42204c: 81 ea ff ff 00 00 sub $0xffff,%edx + 422052: 0f 85 98 06 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 422058: 48 83 c1 10 add $0x10,%rcx + 42205c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 422060: e9 6b ff ff ff jmpq 421fd0 <__GI_strcmp+0xcd0> + 422065: 90 nop + 422066: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42206d: 00 00 00 + 422070: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 422074: 66 0f d7 d0 pmovmskb %xmm0,%edx + 422078: f7 c2 00 fc 00 00 test $0xfc00,%edx + 42207e: 75 10 jne 422090 <__GI_strcmp+0xd90> + 422080: 66 0f ef c0 pxor %xmm0,%xmm0 + 422084: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42208b: e9 4a ff ff ff jmpq 421fda <__GI_strcmp+0xcda> + 422090: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 422095: 66 0f 73 d8 0a psrldq $0xa,%xmm0 + 42209a: 66 0f 73 db 0a psrldq $0xa,%xmm3 + 42209f: e9 3c 06 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> + 4220a4: 66 90 xchg %ax,%ax + 4220a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4220ad: 00 00 00 + 4220b0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4220b4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4220b8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4220bc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4220c0: 66 0f 73 fa 05 pslldq $0x5,%xmm2 + 4220c5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 4220c9: 66 0f f8 d0 psubb %xmm0,%xmm2 + 4220cd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 4220d2: d3 ea shr %cl,%edx + 4220d4: 41 d3 e9 shr %cl,%r9d + 4220d7: 44 29 ca sub %r9d,%edx + 4220da: 0f 85 15 06 00 00 jne 4226f5 <__GI_strcmp+0x13f5> + 4220e0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 4220e4: 66 0f ef c0 pxor %xmm0,%xmm0 + 4220e8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4220ef: 41 b9 0b 00 00 00 mov $0xb,%r9d + 4220f5: 4c 8d 57 0b lea 0xb(%rdi),%r10 + 4220f9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 422100: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422107: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42210e: 00 00 + 422110: 49 83 c2 10 add $0x10,%r10 + 422114: 0f 8f 96 00 00 00 jg 4221b0 <__GI_strcmp+0xeb0> + 42211a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42211f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 422124: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 422128: 66 0f 73 db 0b psrldq $0xb,%xmm3 + 42212d: 66 0f 73 fa 05 pslldq $0x5,%xmm2 + 422132: 66 0f eb d3 por %xmm3,%xmm2 + 422136: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42213a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42213e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 422142: 66 0f d7 d1 pmovmskb %xmm1,%edx + 422146: 81 ea ff ff 00 00 sub $0xffff,%edx + 42214c: 0f 85 9e 05 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 422152: 48 83 c1 10 add $0x10,%rcx + 422156: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42215a: 49 83 c2 10 add $0x10,%r10 + 42215e: 7f 50 jg 4221b0 <__GI_strcmp+0xeb0> + 422160: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 422165: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42216a: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42216e: 66 0f 73 db 0b psrldq $0xb,%xmm3 + 422173: 66 0f 73 fa 05 pslldq $0x5,%xmm2 + 422178: 66 0f eb d3 por %xmm3,%xmm2 + 42217c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 422180: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 422184: 66 0f f8 c8 psubb %xmm0,%xmm1 + 422188: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42218c: 81 ea ff ff 00 00 sub $0xffff,%edx + 422192: 0f 85 58 05 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 422198: 48 83 c1 10 add $0x10,%rcx + 42219c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4221a0: e9 6b ff ff ff jmpq 422110 <__GI_strcmp+0xe10> + 4221a5: 90 nop + 4221a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4221ad: 00 00 00 + 4221b0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 4221b4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4221b8: f7 c2 00 f8 00 00 test $0xf800,%edx + 4221be: 75 10 jne 4221d0 <__GI_strcmp+0xed0> + 4221c0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4221c4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4221cb: e9 4a ff ff ff jmpq 42211a <__GI_strcmp+0xe1a> + 4221d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4221d5: 66 0f 73 d8 0b psrldq $0xb,%xmm0 + 4221da: 66 0f 73 db 0b psrldq $0xb,%xmm3 + 4221df: e9 fc 04 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> + 4221e4: 66 90 xchg %ax,%ax + 4221e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4221ed: 00 00 00 + 4221f0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4221f4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4221f8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4221fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 422200: 66 0f 73 fa 04 pslldq $0x4,%xmm2 + 422205: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 422209: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42220d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 422212: d3 ea shr %cl,%edx + 422214: 41 d3 e9 shr %cl,%r9d + 422217: 44 29 ca sub %r9d,%edx + 42221a: 0f 85 d5 04 00 00 jne 4226f5 <__GI_strcmp+0x13f5> + 422220: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 422224: 66 0f ef c0 pxor %xmm0,%xmm0 + 422228: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42222f: 41 b9 0c 00 00 00 mov $0xc,%r9d + 422235: 4c 8d 57 0c lea 0xc(%rdi),%r10 + 422239: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 422240: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422247: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42224e: 00 00 + 422250: 49 83 c2 10 add $0x10,%r10 + 422254: 0f 8f 96 00 00 00 jg 4222f0 <__GI_strcmp+0xff0> + 42225a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42225f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 422264: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 422268: 66 0f 73 db 0c psrldq $0xc,%xmm3 + 42226d: 66 0f 73 fa 04 pslldq $0x4,%xmm2 + 422272: 66 0f eb d3 por %xmm3,%xmm2 + 422276: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42227a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42227e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 422282: 66 0f d7 d1 pmovmskb %xmm1,%edx + 422286: 81 ea ff ff 00 00 sub $0xffff,%edx + 42228c: 0f 85 5e 04 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 422292: 48 83 c1 10 add $0x10,%rcx + 422296: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42229a: 49 83 c2 10 add $0x10,%r10 + 42229e: 7f 50 jg 4222f0 <__GI_strcmp+0xff0> + 4222a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4222a5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4222aa: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4222ae: 66 0f 73 db 0c psrldq $0xc,%xmm3 + 4222b3: 66 0f 73 fa 04 pslldq $0x4,%xmm2 + 4222b8: 66 0f eb d3 por %xmm3,%xmm2 + 4222bc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4222c0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4222c4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4222c8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4222cc: 81 ea ff ff 00 00 sub $0xffff,%edx + 4222d2: 0f 85 18 04 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 4222d8: 48 83 c1 10 add $0x10,%rcx + 4222dc: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4222e0: e9 6b ff ff ff jmpq 422250 <__GI_strcmp+0xf50> + 4222e5: 90 nop + 4222e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4222ed: 00 00 00 + 4222f0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 4222f4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4222f8: f7 c2 00 f0 00 00 test $0xf000,%edx + 4222fe: 75 10 jne 422310 <__GI_strcmp+0x1010> + 422300: 66 0f ef c0 pxor %xmm0,%xmm0 + 422304: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42230b: e9 4a ff ff ff jmpq 42225a <__GI_strcmp+0xf5a> + 422310: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 422315: 66 0f 73 d8 0c psrldq $0xc,%xmm0 + 42231a: 66 0f 73 db 0c psrldq $0xc,%xmm3 + 42231f: e9 bc 03 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> + 422324: 66 90 xchg %ax,%ax + 422326: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42232d: 00 00 00 + 422330: 66 0f ef c0 pxor %xmm0,%xmm0 + 422334: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 422338: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42233c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 422340: 66 0f 73 fa 03 pslldq $0x3,%xmm2 + 422345: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 422349: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42234d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 422352: d3 ea shr %cl,%edx + 422354: 41 d3 e9 shr %cl,%r9d + 422357: 44 29 ca sub %r9d,%edx + 42235a: 0f 85 95 03 00 00 jne 4226f5 <__GI_strcmp+0x13f5> + 422360: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 422364: 66 0f ef c0 pxor %xmm0,%xmm0 + 422368: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42236f: 41 b9 0d 00 00 00 mov $0xd,%r9d + 422375: 4c 8d 57 0d lea 0xd(%rdi),%r10 + 422379: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 422380: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422387: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42238e: 00 00 + 422390: 49 83 c2 10 add $0x10,%r10 + 422394: 0f 8f 96 00 00 00 jg 422430 <__GI_strcmp+0x1130> + 42239a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42239f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4223a4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4223a8: 66 0f 73 db 0d psrldq $0xd,%xmm3 + 4223ad: 66 0f 73 fa 03 pslldq $0x3,%xmm2 + 4223b2: 66 0f eb d3 por %xmm3,%xmm2 + 4223b6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4223ba: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4223be: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4223c2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4223c6: 81 ea ff ff 00 00 sub $0xffff,%edx + 4223cc: 0f 85 1e 03 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 4223d2: 48 83 c1 10 add $0x10,%rcx + 4223d6: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4223da: 49 83 c2 10 add $0x10,%r10 + 4223de: 7f 50 jg 422430 <__GI_strcmp+0x1130> + 4223e0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4223e5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4223ea: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4223ee: 66 0f 73 db 0d psrldq $0xd,%xmm3 + 4223f3: 66 0f 73 fa 03 pslldq $0x3,%xmm2 + 4223f8: 66 0f eb d3 por %xmm3,%xmm2 + 4223fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 422400: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 422404: 66 0f f8 c8 psubb %xmm0,%xmm1 + 422408: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42240c: 81 ea ff ff 00 00 sub $0xffff,%edx + 422412: 0f 85 d8 02 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 422418: 48 83 c1 10 add $0x10,%rcx + 42241c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 422420: e9 6b ff ff ff jmpq 422390 <__GI_strcmp+0x1090> + 422425: 90 nop + 422426: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42242d: 00 00 00 + 422430: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 422434: 66 0f d7 d0 pmovmskb %xmm0,%edx + 422438: f7 c2 00 e0 00 00 test $0xe000,%edx + 42243e: 75 10 jne 422450 <__GI_strcmp+0x1150> + 422440: 66 0f ef c0 pxor %xmm0,%xmm0 + 422444: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42244b: e9 4a ff ff ff jmpq 42239a <__GI_strcmp+0x109a> + 422450: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 422455: 66 0f 73 d8 0d psrldq $0xd,%xmm0 + 42245a: 66 0f 73 db 0d psrldq $0xd,%xmm3 + 42245f: e9 7c 02 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> + 422464: 66 90 xchg %ax,%ax + 422466: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42246d: 00 00 00 + 422470: 66 0f ef c0 pxor %xmm0,%xmm0 + 422474: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 422478: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42247c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 422480: 66 0f 73 fa 02 pslldq $0x2,%xmm2 + 422485: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 422489: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42248d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 422492: d3 ea shr %cl,%edx + 422494: 41 d3 e9 shr %cl,%r9d + 422497: 44 29 ca sub %r9d,%edx + 42249a: 0f 85 55 02 00 00 jne 4226f5 <__GI_strcmp+0x13f5> + 4224a0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 4224a4: 66 0f ef c0 pxor %xmm0,%xmm0 + 4224a8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4224af: 41 b9 0e 00 00 00 mov $0xe,%r9d + 4224b5: 4c 8d 57 0e lea 0xe(%rdi),%r10 + 4224b9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 4224c0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4224c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4224ce: 00 00 + 4224d0: 49 83 c2 10 add $0x10,%r10 + 4224d4: 0f 8f 96 00 00 00 jg 422570 <__GI_strcmp+0x1270> + 4224da: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4224df: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4224e4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4224e8: 66 0f 73 db 0e psrldq $0xe,%xmm3 + 4224ed: 66 0f 73 fa 02 pslldq $0x2,%xmm2 + 4224f2: 66 0f eb d3 por %xmm3,%xmm2 + 4224f6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4224fa: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4224fe: 66 0f f8 c8 psubb %xmm0,%xmm1 + 422502: 66 0f d7 d1 pmovmskb %xmm1,%edx + 422506: 81 ea ff ff 00 00 sub $0xffff,%edx + 42250c: 0f 85 de 01 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 422512: 48 83 c1 10 add $0x10,%rcx + 422516: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42251a: 49 83 c2 10 add $0x10,%r10 + 42251e: 7f 50 jg 422570 <__GI_strcmp+0x1270> + 422520: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 422525: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42252a: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42252e: 66 0f 73 db 0e psrldq $0xe,%xmm3 + 422533: 66 0f 73 fa 02 pslldq $0x2,%xmm2 + 422538: 66 0f eb d3 por %xmm3,%xmm2 + 42253c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 422540: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 422544: 66 0f f8 c8 psubb %xmm0,%xmm1 + 422548: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42254c: 81 ea ff ff 00 00 sub $0xffff,%edx + 422552: 0f 85 98 01 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 422558: 48 83 c1 10 add $0x10,%rcx + 42255c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 422560: e9 6b ff ff ff jmpq 4224d0 <__GI_strcmp+0x11d0> + 422565: 90 nop + 422566: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42256d: 00 00 00 + 422570: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 422574: 66 0f d7 d0 pmovmskb %xmm0,%edx + 422578: f7 c2 00 c0 00 00 test $0xc000,%edx + 42257e: 75 10 jne 422590 <__GI_strcmp+0x1290> + 422580: 66 0f ef c0 pxor %xmm0,%xmm0 + 422584: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42258b: e9 4a ff ff ff jmpq 4224da <__GI_strcmp+0x11da> + 422590: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 422595: 66 0f 73 d8 0e psrldq $0xe,%xmm0 + 42259a: 66 0f 73 db 0e psrldq $0xe,%xmm3 + 42259f: e9 3c 01 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> + 4225a4: 66 90 xchg %ax,%ax + 4225a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4225ad: 00 00 00 + 4225b0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4225b4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4225b8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4225bc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4225c0: 66 0f 73 fa 01 pslldq $0x1,%xmm2 + 4225c5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 4225c9: 66 0f f8 d0 psubb %xmm0,%xmm2 + 4225cd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 4225d2: d3 ea shr %cl,%edx + 4225d4: 41 d3 e9 shr %cl,%r9d + 4225d7: 44 29 ca sub %r9d,%edx + 4225da: 0f 85 15 01 00 00 jne 4226f5 <__GI_strcmp+0x13f5> + 4225e0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 4225e4: 66 0f ef c0 pxor %xmm0,%xmm0 + 4225e8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4225ef: 41 b9 0f 00 00 00 mov $0xf,%r9d + 4225f5: 4c 8d 57 0f lea 0xf(%rdi),%r10 + 4225f9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 422600: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422607: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42260e: 00 00 + 422610: 49 83 c2 10 add $0x10,%r10 + 422614: 0f 8f 96 00 00 00 jg 4226b0 <__GI_strcmp+0x13b0> + 42261a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42261f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 422624: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 422628: 66 0f 73 db 0f psrldq $0xf,%xmm3 + 42262d: 66 0f 73 fa 01 pslldq $0x1,%xmm2 + 422632: 66 0f eb d3 por %xmm3,%xmm2 + 422636: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42263a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42263e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 422642: 66 0f d7 d1 pmovmskb %xmm1,%edx + 422646: 81 ea ff ff 00 00 sub $0xffff,%edx + 42264c: 0f 85 9e 00 00 00 jne 4226f0 <__GI_strcmp+0x13f0> + 422652: 48 83 c1 10 add $0x10,%rcx + 422656: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42265a: 49 83 c2 10 add $0x10,%r10 + 42265e: 7f 50 jg 4226b0 <__GI_strcmp+0x13b0> + 422660: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 422665: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42266a: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42266e: 66 0f 73 db 0f psrldq $0xf,%xmm3 + 422673: 66 0f 73 fa 01 pslldq $0x1,%xmm2 + 422678: 66 0f eb d3 por %xmm3,%xmm2 + 42267c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 422680: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 422684: 66 0f f8 c8 psubb %xmm0,%xmm1 + 422688: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42268c: 81 ea ff ff 00 00 sub $0xffff,%edx + 422692: 75 5c jne 4226f0 <__GI_strcmp+0x13f0> + 422694: 48 83 c1 10 add $0x10,%rcx + 422698: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42269c: e9 6f ff ff ff jmpq 422610 <__GI_strcmp+0x1310> + 4226a1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4226a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4226ad: 00 00 00 + 4226b0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 4226b4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4226b8: f7 c2 00 80 00 00 test $0x8000,%edx + 4226be: 75 10 jne 4226d0 <__GI_strcmp+0x13d0> + 4226c0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4226c4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4226cb: e9 4a ff ff ff jmpq 42261a <__GI_strcmp+0x131a> + 4226d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4226d5: 66 0f 73 db 0f psrldq $0xf,%xmm3 + 4226da: 66 0f 73 d8 0f psrldq $0xf,%xmm0 + 4226df: 90 nop + 4226e0: 66 0f 74 cb pcmpeqb %xmm3,%xmm1 + 4226e4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4226e8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4226ec: f7 d2 not %edx + 4226ee: 66 90 xchg %ax,%ax + 4226f0: 49 8d 44 09 f0 lea -0x10(%r9,%rcx,1),%rax + 4226f5: 48 8d 3c 07 lea (%rdi,%rax,1),%rdi + 4226f9: 48 8d 34 0e lea (%rsi,%rcx,1),%rsi + 4226fd: 45 85 c0 test %r8d,%r8d + 422700: 74 0e je 422710 <__GI_strcmp+0x1410> + 422702: 48 87 f7 xchg %rsi,%rdi + 422705: 90 nop + 422706: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42270d: 00 00 00 + 422710: 48 0f bc d2 bsf %rdx,%rdx + 422714: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx + 422718: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax + 42271c: 29 c8 sub %ecx,%eax + 42271e: c3 retq + 42271f: 31 c0 xor %eax,%eax + 422721: c3 retq + 422722: 0f 1f 40 00 nopl 0x0(%rax) + 422726: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42272d: 00 00 00 + 422730: 0f b6 0e movzbl (%rsi),%ecx + 422733: 0f b6 07 movzbl (%rdi),%eax + 422736: 29 c8 sub %ecx,%eax + 422738: c3 retq + 422739: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +0000000000422740 <__strcmp_sse42>: + 422740: 89 f1 mov %esi,%ecx + 422742: 89 f8 mov %edi,%eax + 422744: 48 83 e1 3f and $0x3f,%rcx + 422748: 48 83 e0 3f and $0x3f,%rax + 42274c: 83 f9 30 cmp $0x30,%ecx + 42274f: 77 3f ja 422790 <__strcmp_sse42+0x50> + 422751: 83 f8 30 cmp $0x30,%eax + 422754: 77 3a ja 422790 <__strcmp_sse42+0x50> + 422756: f3 0f 6f 0f movdqu (%rdi),%xmm1 + 42275a: f3 0f 6f 16 movdqu (%rsi),%xmm2 + 42275e: 66 0f ef c0 pxor %xmm0,%xmm0 + 422762: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 422766: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42276a: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42276e: 66 0f d7 d1 pmovmskb %xmm1,%edx + 422772: 81 ea ff ff 00 00 sub $0xffff,%edx + 422778: 0f 85 42 0d 00 00 jne 4234c0 <__strcmp_sse42+0xd80> + 42277e: 48 83 c6 10 add $0x10,%rsi + 422782: 48 83 c7 10 add $0x10,%rdi + 422786: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42278d: 00 00 00 + 422790: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 422794: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 422798: ba ff ff 00 00 mov $0xffff,%edx + 42279d: 45 31 c0 xor %r8d,%r8d + 4227a0: 83 e1 0f and $0xf,%ecx + 4227a3: 83 e0 0f and $0xf,%eax + 4227a6: 66 0f ef c0 pxor %xmm0,%xmm0 + 4227aa: 39 c1 cmp %eax,%ecx + 4227ac: 74 32 je 4227e0 <__strcmp_sse42+0xa0> + 4227ae: 77 07 ja 4227b7 <__strcmp_sse42+0x77> + 4227b0: 41 89 d0 mov %edx,%r8d + 4227b3: 91 xchg %eax,%ecx + 4227b4: 48 87 f7 xchg %rsi,%rdi + 4227b7: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4227bb: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4227bf: 4c 8d 48 0f lea 0xf(%rax),%r9 + 4227c3: 49 29 c9 sub %rcx,%r9 + 4227c6: 4c 8d 15 23 08 08 00 lea 0x80823(%rip),%r10 # 4a2ff0 <__func__.10972+0x30> + 4227cd: 4f 63 0c 8a movslq (%r10,%r9,4),%r9 + 4227d1: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4227d5: 4f 8d 14 0a lea (%r10,%r9,1),%r10 + 4227d9: 41 ff e2 jmpq *%r10 + 4227dc: 0f 1f 40 00 nopl 0x0(%rax) + 4227e0: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4227e4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4227e8: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 4227ec: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4227f0: 66 44 0f d7 c9 pmovmskb %xmm1,%r9d + 4227f5: d3 ea shr %cl,%edx + 4227f7: 41 d3 e9 shr %cl,%r9d + 4227fa: 44 29 ca sub %r9d,%edx + 4227fd: 0f 85 a8 0c 00 00 jne 4234ab <__strcmp_sse42+0xd6b> + 422803: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42280a: 49 c7 c1 10 00 00 00 mov $0x10,%r9 + 422811: 48 89 ca mov %rcx,%rdx + 422814: 66 90 xchg %ax,%ax + 422816: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42281d: 00 00 00 + 422820: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 422825: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 42282c: 48 8d 52 10 lea 0x10(%rdx),%rdx + 422830: 76 1e jbe 422850 <__strcmp_sse42+0x110> + 422832: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 422837: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 42283e: 48 8d 52 10 lea 0x10(%rdx),%rdx + 422842: 76 0c jbe 422850 <__strcmp_sse42+0x110> + 422844: eb da jmp 422820 <__strcmp_sse42+0xe0> + 422846: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42284d: 00 00 00 + 422850: 0f 83 79 0c 00 00 jae 4234cf <__strcmp_sse42+0xd8f> + 422856: 48 8d 4c 0a f0 lea -0x10(%rdx,%rcx,1),%rcx + 42285b: 0f b6 04 0f movzbl (%rdi,%rcx,1),%eax + 42285f: 0f b6 14 0e movzbl (%rsi,%rcx,1),%edx + 422863: 29 d0 sub %edx,%eax + 422865: c3 retq + 422866: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42286d: 00 00 00 + 422870: 66 0f 73 fa 0f pslldq $0xf,%xmm2 + 422875: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 422879: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42287d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 422882: d3 ea shr %cl,%edx + 422884: 41 d3 e9 shr %cl,%r9d + 422887: 44 29 ca sub %r9d,%edx + 42288a: 0f 85 1b 0c 00 00 jne 4234ab <__strcmp_sse42+0xd6b> + 422890: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 422894: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42289b: 41 b9 01 00 00 00 mov $0x1,%r9d + 4228a1: 4c 8d 57 01 lea 0x1(%rdi),%r10 + 4228a5: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 4228ac: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4228b3: 48 89 ca mov %rcx,%rdx + 4228b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4228bd: 00 00 00 + 4228c0: 49 83 c2 10 add $0x10,%r10 + 4228c4: 7f 4a jg 422910 <__strcmp_sse42+0x1d0> + 4228c6: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 4228cb: 66 0f 3a 0f 44 17 f0 palignr $0x1,-0x10(%rdi,%rdx,1),%xmm0 + 4228d2: 01 + 4228d3: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 4228da: 0f 86 b0 0b 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 4228e0: 48 83 c2 10 add $0x10,%rdx + 4228e4: 49 83 c2 10 add $0x10,%r10 + 4228e8: 7f 26 jg 422910 <__strcmp_sse42+0x1d0> + 4228ea: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 4228ef: 66 0f 3a 0f 44 17 f0 palignr $0x1,-0x10(%rdi,%rdx,1),%xmm0 + 4228f6: 01 + 4228f7: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 4228fe: 0f 86 8c 0b 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 422904: 48 83 c2 10 add $0x10,%rdx + 422908: eb b6 jmp 4228c0 <__strcmp_sse42+0x180> + 42290a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 422910: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422917: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 42291d: 66 0f 73 d8 01 psrldq $0x1,%xmm0 + 422922: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 422928: 83 f9 0e cmp $0xe,%ecx + 42292b: 77 99 ja 4228c6 <__strcmp_sse42+0x186> + 42292d: e9 4b 0b 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> + 422932: 0f 1f 40 00 nopl 0x0(%rax) + 422936: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42293d: 00 00 00 + 422940: 66 0f 73 fa 0e pslldq $0xe,%xmm2 + 422945: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 422949: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42294d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 422952: d3 ea shr %cl,%edx + 422954: 41 d3 e9 shr %cl,%r9d + 422957: 44 29 ca sub %r9d,%edx + 42295a: 0f 85 4b 0b 00 00 jne 4234ab <__strcmp_sse42+0xd6b> + 422960: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 422964: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42296b: 41 b9 02 00 00 00 mov $0x2,%r9d + 422971: 4c 8d 57 02 lea 0x2(%rdi),%r10 + 422975: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42297c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422983: 48 89 ca mov %rcx,%rdx + 422986: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42298d: 00 00 00 + 422990: 49 83 c2 10 add $0x10,%r10 + 422994: 7f 4a jg 4229e0 <__strcmp_sse42+0x2a0> + 422996: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42299b: 66 0f 3a 0f 44 17 f0 palignr $0x2,-0x10(%rdi,%rdx,1),%xmm0 + 4229a2: 02 + 4229a3: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 4229aa: 0f 86 e0 0a 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 4229b0: 48 83 c2 10 add $0x10,%rdx + 4229b4: 49 83 c2 10 add $0x10,%r10 + 4229b8: 7f 26 jg 4229e0 <__strcmp_sse42+0x2a0> + 4229ba: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 4229bf: 66 0f 3a 0f 44 17 f0 palignr $0x2,-0x10(%rdi,%rdx,1),%xmm0 + 4229c6: 02 + 4229c7: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 4229ce: 0f 86 bc 0a 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 4229d4: 48 83 c2 10 add $0x10,%rdx + 4229d8: eb b6 jmp 422990 <__strcmp_sse42+0x250> + 4229da: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4229e0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4229e7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 4229ed: 66 0f 73 d8 02 psrldq $0x2,%xmm0 + 4229f2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 4229f8: 83 f9 0d cmp $0xd,%ecx + 4229fb: 77 99 ja 422996 <__strcmp_sse42+0x256> + 4229fd: e9 7b 0a 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> + 422a02: 0f 1f 40 00 nopl 0x0(%rax) + 422a06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 422a0d: 00 00 00 + 422a10: 66 0f 73 fa 0d pslldq $0xd,%xmm2 + 422a15: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 422a19: 66 0f f8 d0 psubb %xmm0,%xmm2 + 422a1d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 422a22: d3 ea shr %cl,%edx + 422a24: 41 d3 e9 shr %cl,%r9d + 422a27: 44 29 ca sub %r9d,%edx + 422a2a: 0f 85 7b 0a 00 00 jne 4234ab <__strcmp_sse42+0xd6b> + 422a30: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 422a34: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 422a3b: 41 b9 03 00 00 00 mov $0x3,%r9d + 422a41: 4c 8d 57 03 lea 0x3(%rdi),%r10 + 422a45: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 422a4c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422a53: 48 89 ca mov %rcx,%rdx + 422a56: 49 83 c2 10 add $0x10,%r10 + 422a5a: 7f 44 jg 422aa0 <__strcmp_sse42+0x360> + 422a5c: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 422a61: 66 0f 3a 0f 44 17 f0 palignr $0x3,-0x10(%rdi,%rdx,1),%xmm0 + 422a68: 03 + 422a69: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 422a70: 0f 86 1a 0a 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 422a76: 48 83 c2 10 add $0x10,%rdx + 422a7a: 49 83 c2 10 add $0x10,%r10 + 422a7e: 7f 20 jg 422aa0 <__strcmp_sse42+0x360> + 422a80: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 422a85: 66 0f 3a 0f 44 17 f0 palignr $0x3,-0x10(%rdi,%rdx,1),%xmm0 + 422a8c: 03 + 422a8d: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 422a94: 0f 86 f6 09 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 422a9a: 48 83 c2 10 add $0x10,%rdx + 422a9e: eb b6 jmp 422a56 <__strcmp_sse42+0x316> + 422aa0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422aa7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 422aad: 66 0f 73 d8 03 psrldq $0x3,%xmm0 + 422ab2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 422ab8: 83 f9 0c cmp $0xc,%ecx + 422abb: 77 9f ja 422a5c <__strcmp_sse42+0x31c> + 422abd: e9 bb 09 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> + 422ac2: 0f 1f 40 00 nopl 0x0(%rax) + 422ac6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 422acd: 00 00 00 + 422ad0: 66 0f 73 fa 0c pslldq $0xc,%xmm2 + 422ad5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 422ad9: 66 0f f8 d0 psubb %xmm0,%xmm2 + 422add: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 422ae2: d3 ea shr %cl,%edx + 422ae4: 41 d3 e9 shr %cl,%r9d + 422ae7: 44 29 ca sub %r9d,%edx + 422aea: 0f 85 bb 09 00 00 jne 4234ab <__strcmp_sse42+0xd6b> + 422af0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 422af4: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 422afb: 41 b9 04 00 00 00 mov $0x4,%r9d + 422b01: 4c 8d 57 04 lea 0x4(%rdi),%r10 + 422b05: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 422b0c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422b13: 48 89 ca mov %rcx,%rdx + 422b16: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 422b1d: 00 00 00 + 422b20: 49 83 c2 10 add $0x10,%r10 + 422b24: 7f 4a jg 422b70 <__strcmp_sse42+0x430> + 422b26: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 422b2b: 66 0f 3a 0f 44 17 f0 palignr $0x4,-0x10(%rdi,%rdx,1),%xmm0 + 422b32: 04 + 422b33: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 422b3a: 0f 86 50 09 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 422b40: 48 83 c2 10 add $0x10,%rdx + 422b44: 49 83 c2 10 add $0x10,%r10 + 422b48: 7f 26 jg 422b70 <__strcmp_sse42+0x430> + 422b4a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 422b4f: 66 0f 3a 0f 44 17 f0 palignr $0x4,-0x10(%rdi,%rdx,1),%xmm0 + 422b56: 04 + 422b57: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 422b5e: 0f 86 2c 09 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 422b64: 48 83 c2 10 add $0x10,%rdx + 422b68: eb b6 jmp 422b20 <__strcmp_sse42+0x3e0> + 422b6a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 422b70: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422b77: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 422b7d: 66 0f 73 d8 04 psrldq $0x4,%xmm0 + 422b82: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 422b88: 83 f9 0b cmp $0xb,%ecx + 422b8b: 77 99 ja 422b26 <__strcmp_sse42+0x3e6> + 422b8d: e9 eb 08 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> + 422b92: 0f 1f 40 00 nopl 0x0(%rax) + 422b96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 422b9d: 00 00 00 + 422ba0: 66 0f 73 fa 0b pslldq $0xb,%xmm2 + 422ba5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 422ba9: 66 0f f8 d0 psubb %xmm0,%xmm2 + 422bad: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 422bb2: d3 ea shr %cl,%edx + 422bb4: 41 d3 e9 shr %cl,%r9d + 422bb7: 44 29 ca sub %r9d,%edx + 422bba: 0f 85 eb 08 00 00 jne 4234ab <__strcmp_sse42+0xd6b> + 422bc0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 422bc4: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 422bcb: 41 b9 05 00 00 00 mov $0x5,%r9d + 422bd1: 4c 8d 57 05 lea 0x5(%rdi),%r10 + 422bd5: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 422bdc: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422be3: 48 89 ca mov %rcx,%rdx + 422be6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 422bed: 00 00 00 + 422bf0: 49 83 c2 10 add $0x10,%r10 + 422bf4: 7f 4a jg 422c40 <__strcmp_sse42+0x500> + 422bf6: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 422bfb: 66 0f 3a 0f 44 17 f0 palignr $0x5,-0x10(%rdi,%rdx,1),%xmm0 + 422c02: 05 + 422c03: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 422c0a: 0f 86 80 08 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 422c10: 48 83 c2 10 add $0x10,%rdx + 422c14: 49 83 c2 10 add $0x10,%r10 + 422c18: 7f 26 jg 422c40 <__strcmp_sse42+0x500> + 422c1a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 422c1f: 66 0f 3a 0f 44 17 f0 palignr $0x5,-0x10(%rdi,%rdx,1),%xmm0 + 422c26: 05 + 422c27: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 422c2e: 0f 86 5c 08 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 422c34: 48 83 c2 10 add $0x10,%rdx + 422c38: eb b6 jmp 422bf0 <__strcmp_sse42+0x4b0> + 422c3a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 422c40: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422c47: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 422c4d: 66 0f 73 d8 05 psrldq $0x5,%xmm0 + 422c52: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 422c58: 83 f9 0a cmp $0xa,%ecx + 422c5b: 77 99 ja 422bf6 <__strcmp_sse42+0x4b6> + 422c5d: e9 1b 08 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> + 422c62: 0f 1f 40 00 nopl 0x0(%rax) + 422c66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 422c6d: 00 00 00 + 422c70: 66 0f 73 fa 0a pslldq $0xa,%xmm2 + 422c75: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 422c79: 66 0f f8 d0 psubb %xmm0,%xmm2 + 422c7d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 422c82: d3 ea shr %cl,%edx + 422c84: 41 d3 e9 shr %cl,%r9d + 422c87: 44 29 ca sub %r9d,%edx + 422c8a: 0f 85 1b 08 00 00 jne 4234ab <__strcmp_sse42+0xd6b> + 422c90: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 422c94: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 422c9b: 41 b9 06 00 00 00 mov $0x6,%r9d + 422ca1: 4c 8d 57 06 lea 0x6(%rdi),%r10 + 422ca5: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 422cac: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422cb3: 48 89 ca mov %rcx,%rdx + 422cb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 422cbd: 00 00 00 + 422cc0: 49 83 c2 10 add $0x10,%r10 + 422cc4: 7f 4a jg 422d10 <__strcmp_sse42+0x5d0> + 422cc6: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 422ccb: 66 0f 3a 0f 44 17 f0 palignr $0x6,-0x10(%rdi,%rdx,1),%xmm0 + 422cd2: 06 + 422cd3: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 422cda: 0f 86 b0 07 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 422ce0: 48 83 c2 10 add $0x10,%rdx + 422ce4: 49 83 c2 10 add $0x10,%r10 + 422ce8: 7f 26 jg 422d10 <__strcmp_sse42+0x5d0> + 422cea: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 422cef: 66 0f 3a 0f 44 17 f0 palignr $0x6,-0x10(%rdi,%rdx,1),%xmm0 + 422cf6: 06 + 422cf7: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 422cfe: 0f 86 8c 07 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 422d04: 48 83 c2 10 add $0x10,%rdx + 422d08: eb b6 jmp 422cc0 <__strcmp_sse42+0x580> + 422d0a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 422d10: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422d17: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 422d1d: 66 0f 73 d8 06 psrldq $0x6,%xmm0 + 422d22: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 422d28: 83 f9 09 cmp $0x9,%ecx + 422d2b: 77 99 ja 422cc6 <__strcmp_sse42+0x586> + 422d2d: e9 4b 07 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> + 422d32: 0f 1f 40 00 nopl 0x0(%rax) + 422d36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 422d3d: 00 00 00 + 422d40: 66 0f 73 fa 09 pslldq $0x9,%xmm2 + 422d45: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 422d49: 66 0f f8 d0 psubb %xmm0,%xmm2 + 422d4d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 422d52: d3 ea shr %cl,%edx + 422d54: 41 d3 e9 shr %cl,%r9d + 422d57: 44 29 ca sub %r9d,%edx + 422d5a: 0f 85 4b 07 00 00 jne 4234ab <__strcmp_sse42+0xd6b> + 422d60: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 422d64: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 422d6b: 41 b9 07 00 00 00 mov $0x7,%r9d + 422d71: 4c 8d 57 07 lea 0x7(%rdi),%r10 + 422d75: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 422d7c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422d83: 48 89 ca mov %rcx,%rdx + 422d86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 422d8d: 00 00 00 + 422d90: 49 83 c2 10 add $0x10,%r10 + 422d94: 7f 4a jg 422de0 <__strcmp_sse42+0x6a0> + 422d96: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 422d9b: 66 0f 3a 0f 44 17 f0 palignr $0x7,-0x10(%rdi,%rdx,1),%xmm0 + 422da2: 07 + 422da3: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 422daa: 0f 86 e0 06 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 422db0: 48 83 c2 10 add $0x10,%rdx + 422db4: 49 83 c2 10 add $0x10,%r10 + 422db8: 7f 26 jg 422de0 <__strcmp_sse42+0x6a0> + 422dba: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 422dbf: 66 0f 3a 0f 44 17 f0 palignr $0x7,-0x10(%rdi,%rdx,1),%xmm0 + 422dc6: 07 + 422dc7: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 422dce: 0f 86 bc 06 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 422dd4: 48 83 c2 10 add $0x10,%rdx + 422dd8: eb b6 jmp 422d90 <__strcmp_sse42+0x650> + 422dda: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 422de0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422de7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 422ded: 66 0f 73 d8 07 psrldq $0x7,%xmm0 + 422df2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 422df8: 83 f9 08 cmp $0x8,%ecx + 422dfb: 77 99 ja 422d96 <__strcmp_sse42+0x656> + 422dfd: e9 7b 06 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> + 422e02: 0f 1f 40 00 nopl 0x0(%rax) + 422e06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 422e0d: 00 00 00 + 422e10: 66 0f 73 fa 08 pslldq $0x8,%xmm2 + 422e15: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 422e19: 66 0f f8 d0 psubb %xmm0,%xmm2 + 422e1d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 422e22: d3 ea shr %cl,%edx + 422e24: 41 d3 e9 shr %cl,%r9d + 422e27: 44 29 ca sub %r9d,%edx + 422e2a: 0f 85 7b 06 00 00 jne 4234ab <__strcmp_sse42+0xd6b> + 422e30: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 422e34: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 422e3b: 41 b9 08 00 00 00 mov $0x8,%r9d + 422e41: 4c 8d 57 08 lea 0x8(%rdi),%r10 + 422e45: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 422e4c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422e53: 48 89 ca mov %rcx,%rdx + 422e56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 422e5d: 00 00 00 + 422e60: 49 83 c2 10 add $0x10,%r10 + 422e64: 7f 4a jg 422eb0 <__strcmp_sse42+0x770> + 422e66: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 422e6b: 66 0f 3a 0f 44 17 f0 palignr $0x8,-0x10(%rdi,%rdx,1),%xmm0 + 422e72: 08 + 422e73: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 422e7a: 0f 86 10 06 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 422e80: 48 83 c2 10 add $0x10,%rdx + 422e84: 49 83 c2 10 add $0x10,%r10 + 422e88: 7f 26 jg 422eb0 <__strcmp_sse42+0x770> + 422e8a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 422e8f: 66 0f 3a 0f 44 17 f0 palignr $0x8,-0x10(%rdi,%rdx,1),%xmm0 + 422e96: 08 + 422e97: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 422e9e: 0f 86 ec 05 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 422ea4: 48 83 c2 10 add $0x10,%rdx + 422ea8: eb b6 jmp 422e60 <__strcmp_sse42+0x720> + 422eaa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 422eb0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422eb7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 422ebd: 66 0f 73 d8 08 psrldq $0x8,%xmm0 + 422ec2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 422ec8: 83 f9 07 cmp $0x7,%ecx + 422ecb: 77 99 ja 422e66 <__strcmp_sse42+0x726> + 422ecd: e9 ab 05 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> + 422ed2: 0f 1f 40 00 nopl 0x0(%rax) + 422ed6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 422edd: 00 00 00 + 422ee0: 66 0f 73 fa 07 pslldq $0x7,%xmm2 + 422ee5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 422ee9: 66 0f f8 d0 psubb %xmm0,%xmm2 + 422eed: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 422ef2: d3 ea shr %cl,%edx + 422ef4: 41 d3 e9 shr %cl,%r9d + 422ef7: 44 29 ca sub %r9d,%edx + 422efa: 0f 85 ab 05 00 00 jne 4234ab <__strcmp_sse42+0xd6b> + 422f00: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 422f04: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 422f0b: 41 b9 09 00 00 00 mov $0x9,%r9d + 422f11: 4c 8d 57 09 lea 0x9(%rdi),%r10 + 422f15: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 422f1c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422f23: 48 89 ca mov %rcx,%rdx + 422f26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 422f2d: 00 00 00 + 422f30: 49 83 c2 10 add $0x10,%r10 + 422f34: 7f 4a jg 422f80 <__strcmp_sse42+0x840> + 422f36: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 422f3b: 66 0f 3a 0f 44 17 f0 palignr $0x9,-0x10(%rdi,%rdx,1),%xmm0 + 422f42: 09 + 422f43: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 422f4a: 0f 86 40 05 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 422f50: 48 83 c2 10 add $0x10,%rdx + 422f54: 49 83 c2 10 add $0x10,%r10 + 422f58: 7f 26 jg 422f80 <__strcmp_sse42+0x840> + 422f5a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 422f5f: 66 0f 3a 0f 44 17 f0 palignr $0x9,-0x10(%rdi,%rdx,1),%xmm0 + 422f66: 09 + 422f67: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 422f6e: 0f 86 1c 05 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 422f74: 48 83 c2 10 add $0x10,%rdx + 422f78: eb b6 jmp 422f30 <__strcmp_sse42+0x7f0> + 422f7a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 422f80: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422f87: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 422f8d: 66 0f 73 d8 09 psrldq $0x9,%xmm0 + 422f92: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 422f98: 83 f9 06 cmp $0x6,%ecx + 422f9b: 77 99 ja 422f36 <__strcmp_sse42+0x7f6> + 422f9d: e9 db 04 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> + 422fa2: 0f 1f 40 00 nopl 0x0(%rax) + 422fa6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 422fad: 00 00 00 + 422fb0: 66 0f 73 fa 06 pslldq $0x6,%xmm2 + 422fb5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 422fb9: 66 0f f8 d0 psubb %xmm0,%xmm2 + 422fbd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 422fc2: d3 ea shr %cl,%edx + 422fc4: 41 d3 e9 shr %cl,%r9d + 422fc7: 44 29 ca sub %r9d,%edx + 422fca: 0f 85 db 04 00 00 jne 4234ab <__strcmp_sse42+0xd6b> + 422fd0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 422fd4: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 422fdb: 41 b9 0a 00 00 00 mov $0xa,%r9d + 422fe1: 4c 8d 57 0a lea 0xa(%rdi),%r10 + 422fe5: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 422fec: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 422ff3: 48 89 ca mov %rcx,%rdx + 422ff6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 422ffd: 00 00 00 + 423000: 49 83 c2 10 add $0x10,%r10 + 423004: 7f 4a jg 423050 <__strcmp_sse42+0x910> + 423006: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42300b: 66 0f 3a 0f 44 17 f0 palignr $0xa,-0x10(%rdi,%rdx,1),%xmm0 + 423012: 0a + 423013: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 42301a: 0f 86 70 04 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 423020: 48 83 c2 10 add $0x10,%rdx + 423024: 49 83 c2 10 add $0x10,%r10 + 423028: 7f 26 jg 423050 <__strcmp_sse42+0x910> + 42302a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42302f: 66 0f 3a 0f 44 17 f0 palignr $0xa,-0x10(%rdi,%rdx,1),%xmm0 + 423036: 0a + 423037: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 42303e: 0f 86 4c 04 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 423044: 48 83 c2 10 add $0x10,%rdx + 423048: eb b6 jmp 423000 <__strcmp_sse42+0x8c0> + 42304a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 423050: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 423057: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 42305d: 66 0f 73 d8 0a psrldq $0xa,%xmm0 + 423062: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 423068: 83 f9 05 cmp $0x5,%ecx + 42306b: 77 99 ja 423006 <__strcmp_sse42+0x8c6> + 42306d: e9 0b 04 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> + 423072: 0f 1f 40 00 nopl 0x0(%rax) + 423076: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42307d: 00 00 00 + 423080: 66 0f 73 fa 05 pslldq $0x5,%xmm2 + 423085: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 423089: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42308d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 423092: d3 ea shr %cl,%edx + 423094: 41 d3 e9 shr %cl,%r9d + 423097: 44 29 ca sub %r9d,%edx + 42309a: 0f 85 0b 04 00 00 jne 4234ab <__strcmp_sse42+0xd6b> + 4230a0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 4230a4: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4230ab: 41 b9 0b 00 00 00 mov $0xb,%r9d + 4230b1: 4c 8d 57 0b lea 0xb(%rdi),%r10 + 4230b5: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 4230bc: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4230c3: 48 89 ca mov %rcx,%rdx + 4230c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4230cd: 00 00 00 + 4230d0: 49 83 c2 10 add $0x10,%r10 + 4230d4: 7f 4a jg 423120 <__strcmp_sse42+0x9e0> + 4230d6: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 4230db: 66 0f 3a 0f 44 17 f0 palignr $0xb,-0x10(%rdi,%rdx,1),%xmm0 + 4230e2: 0b + 4230e3: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 4230ea: 0f 86 a0 03 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 4230f0: 48 83 c2 10 add $0x10,%rdx + 4230f4: 49 83 c2 10 add $0x10,%r10 + 4230f8: 7f 26 jg 423120 <__strcmp_sse42+0x9e0> + 4230fa: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 4230ff: 66 0f 3a 0f 44 17 f0 palignr $0xb,-0x10(%rdi,%rdx,1),%xmm0 + 423106: 0b + 423107: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 42310e: 0f 86 7c 03 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 423114: 48 83 c2 10 add $0x10,%rdx + 423118: eb b6 jmp 4230d0 <__strcmp_sse42+0x990> + 42311a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 423120: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 423127: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 42312d: 66 0f 73 d8 0b psrldq $0xb,%xmm0 + 423132: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 423138: 83 f9 04 cmp $0x4,%ecx + 42313b: 77 99 ja 4230d6 <__strcmp_sse42+0x996> + 42313d: e9 3b 03 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> + 423142: 0f 1f 40 00 nopl 0x0(%rax) + 423146: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42314d: 00 00 00 + 423150: 66 0f 73 fa 04 pslldq $0x4,%xmm2 + 423155: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 423159: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42315d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 423162: d3 ea shr %cl,%edx + 423164: 41 d3 e9 shr %cl,%r9d + 423167: 44 29 ca sub %r9d,%edx + 42316a: 0f 85 3b 03 00 00 jne 4234ab <__strcmp_sse42+0xd6b> + 423170: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 423174: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42317b: 41 b9 0c 00 00 00 mov $0xc,%r9d + 423181: 4c 8d 57 0c lea 0xc(%rdi),%r10 + 423185: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42318c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 423193: 48 89 ca mov %rcx,%rdx + 423196: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42319d: 00 00 00 + 4231a0: 49 83 c2 10 add $0x10,%r10 + 4231a4: 7f 4a jg 4231f0 <__strcmp_sse42+0xab0> + 4231a6: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 4231ab: 66 0f 3a 0f 44 17 f0 palignr $0xc,-0x10(%rdi,%rdx,1),%xmm0 + 4231b2: 0c + 4231b3: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 4231ba: 0f 86 d0 02 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 4231c0: 48 83 c2 10 add $0x10,%rdx + 4231c4: 49 83 c2 10 add $0x10,%r10 + 4231c8: 7f 26 jg 4231f0 <__strcmp_sse42+0xab0> + 4231ca: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 4231cf: 66 0f 3a 0f 44 17 f0 palignr $0xc,-0x10(%rdi,%rdx,1),%xmm0 + 4231d6: 0c + 4231d7: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 4231de: 0f 86 ac 02 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 4231e4: 48 83 c2 10 add $0x10,%rdx + 4231e8: eb b6 jmp 4231a0 <__strcmp_sse42+0xa60> + 4231ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4231f0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4231f7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 4231fd: 66 0f 73 d8 0c psrldq $0xc,%xmm0 + 423202: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 423208: 83 f9 03 cmp $0x3,%ecx + 42320b: 77 99 ja 4231a6 <__strcmp_sse42+0xa66> + 42320d: e9 6b 02 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> + 423212: 0f 1f 40 00 nopl 0x0(%rax) + 423216: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42321d: 00 00 00 + 423220: 66 0f 73 fa 03 pslldq $0x3,%xmm2 + 423225: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 423229: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42322d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 423232: d3 ea shr %cl,%edx + 423234: 41 d3 e9 shr %cl,%r9d + 423237: 44 29 ca sub %r9d,%edx + 42323a: 0f 85 6b 02 00 00 jne 4234ab <__strcmp_sse42+0xd6b> + 423240: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 423244: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42324b: 41 b9 0d 00 00 00 mov $0xd,%r9d + 423251: 4c 8d 57 0d lea 0xd(%rdi),%r10 + 423255: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42325c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 423263: 48 89 ca mov %rcx,%rdx + 423266: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42326d: 00 00 00 + 423270: 49 83 c2 10 add $0x10,%r10 + 423274: 7f 4a jg 4232c0 <__strcmp_sse42+0xb80> + 423276: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42327b: 66 0f 3a 0f 44 17 f0 palignr $0xd,-0x10(%rdi,%rdx,1),%xmm0 + 423282: 0d + 423283: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 42328a: 0f 86 00 02 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 423290: 48 83 c2 10 add $0x10,%rdx + 423294: 49 83 c2 10 add $0x10,%r10 + 423298: 7f 26 jg 4232c0 <__strcmp_sse42+0xb80> + 42329a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42329f: 66 0f 3a 0f 44 17 f0 palignr $0xd,-0x10(%rdi,%rdx,1),%xmm0 + 4232a6: 0d + 4232a7: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 4232ae: 0f 86 dc 01 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 4232b4: 48 83 c2 10 add $0x10,%rdx + 4232b8: eb b6 jmp 423270 <__strcmp_sse42+0xb30> + 4232ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4232c0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4232c7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 4232cd: 66 0f 73 d8 0d psrldq $0xd,%xmm0 + 4232d2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 4232d8: 83 f9 02 cmp $0x2,%ecx + 4232db: 77 99 ja 423276 <__strcmp_sse42+0xb36> + 4232dd: e9 9b 01 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> + 4232e2: 0f 1f 40 00 nopl 0x0(%rax) + 4232e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4232ed: 00 00 00 + 4232f0: 66 0f 73 fa 02 pslldq $0x2,%xmm2 + 4232f5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 4232f9: 66 0f f8 d0 psubb %xmm0,%xmm2 + 4232fd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 423302: d3 ea shr %cl,%edx + 423304: 41 d3 e9 shr %cl,%r9d + 423307: 44 29 ca sub %r9d,%edx + 42330a: 0f 85 9b 01 00 00 jne 4234ab <__strcmp_sse42+0xd6b> + 423310: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 423314: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42331b: 41 b9 0e 00 00 00 mov $0xe,%r9d + 423321: 4c 8d 57 0e lea 0xe(%rdi),%r10 + 423325: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42332c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 423333: 48 89 ca mov %rcx,%rdx + 423336: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42333d: 00 00 00 + 423340: 49 83 c2 10 add $0x10,%r10 + 423344: 7f 4a jg 423390 <__strcmp_sse42+0xc50> + 423346: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42334b: 66 0f 3a 0f 44 17 f0 palignr $0xe,-0x10(%rdi,%rdx,1),%xmm0 + 423352: 0e + 423353: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 42335a: 0f 86 30 01 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 423360: 48 83 c2 10 add $0x10,%rdx + 423364: 49 83 c2 10 add $0x10,%r10 + 423368: 7f 26 jg 423390 <__strcmp_sse42+0xc50> + 42336a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42336f: 66 0f 3a 0f 44 17 f0 palignr $0xe,-0x10(%rdi,%rdx,1),%xmm0 + 423376: 0e + 423377: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 42337e: 0f 86 0c 01 00 00 jbe 423490 <__strcmp_sse42+0xd50> + 423384: 48 83 c2 10 add $0x10,%rdx + 423388: eb b6 jmp 423340 <__strcmp_sse42+0xc00> + 42338a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 423390: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 423397: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 42339d: 66 0f 73 d8 0e psrldq $0xe,%xmm0 + 4233a2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 4233a8: 83 f9 01 cmp $0x1,%ecx + 4233ab: 77 99 ja 423346 <__strcmp_sse42+0xc06> + 4233ad: e9 cb 00 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> + 4233b2: 0f 1f 40 00 nopl 0x0(%rax) + 4233b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4233bd: 00 00 00 + 4233c0: 66 0f 73 fa 01 pslldq $0x1,%xmm2 + 4233c5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 4233c9: 66 0f f8 d0 psubb %xmm0,%xmm2 + 4233cd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 4233d2: d3 ea shr %cl,%edx + 4233d4: 41 d3 e9 shr %cl,%r9d + 4233d7: 44 29 ca sub %r9d,%edx + 4233da: 0f 85 cb 00 00 00 jne 4234ab <__strcmp_sse42+0xd6b> + 4233e0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 4233e4: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4233eb: 41 b9 0f 00 00 00 mov $0xf,%r9d + 4233f1: 4c 8d 57 0f lea 0xf(%rdi),%r10 + 4233f5: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 4233fc: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 423403: 48 89 ca mov %rcx,%rdx + 423406: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42340d: 00 00 00 + 423410: 49 83 c2 10 add $0x10,%r10 + 423414: 7f 4a jg 423460 <__strcmp_sse42+0xd20> + 423416: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42341b: 66 0f 3a 0f 44 17 f0 palignr $0xf,-0x10(%rdi,%rdx,1),%xmm0 + 423422: 0f + 423423: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 42342a: 76 64 jbe 423490 <__strcmp_sse42+0xd50> + 42342c: 48 83 c2 10 add $0x10,%rdx + 423430: 49 83 c2 10 add $0x10,%r10 + 423434: 7f 2a jg 423460 <__strcmp_sse42+0xd20> + 423436: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42343b: 66 0f 3a 0f 44 17 f0 palignr $0xf,-0x10(%rdi,%rdx,1),%xmm0 + 423442: 0f + 423443: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 42344a: 76 44 jbe 423490 <__strcmp_sse42+0xd50> + 42344c: 48 83 c2 10 add $0x10,%rdx + 423450: eb be jmp 423410 <__strcmp_sse42+0xcd0> + 423452: 0f 1f 40 00 nopl 0x0(%rax) + 423456: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42345d: 00 00 00 + 423460: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 423467: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 42346d: 66 0f 73 d8 0f psrldq $0xf,%xmm0 + 423472: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 423478: 83 f9 00 cmp $0x0,%ecx + 42347b: 77 99 ja 423416 <__strcmp_sse42+0xcd6> + 42347d: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 + 423484: 66 90 xchg %ax,%ax + 423486: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42348d: 00 00 00 + 423490: 73 3d jae 4234cf <__strcmp_sse42+0xd8f> + 423492: 48 01 ca add %rcx,%rdx + 423495: 4a 8d 7c 0f f0 lea -0x10(%rdi,%r9,1),%rdi + 42349a: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax + 42349e: 0f b6 14 16 movzbl (%rsi,%rdx,1),%edx + 4234a2: 45 85 c0 test %r8d,%r8d + 4234a5: 74 01 je 4234a8 <__strcmp_sse42+0xd68> + 4234a7: 92 xchg %eax,%edx + 4234a8: 29 d0 sub %edx,%eax + 4234aa: c3 retq + 4234ab: 48 8d 3c 07 lea (%rdi,%rax,1),%rdi + 4234af: 48 8d 34 0e lea (%rsi,%rcx,1),%rsi + 4234b3: 45 85 c0 test %r8d,%r8d + 4234b6: 74 08 je 4234c0 <__strcmp_sse42+0xd80> + 4234b8: 48 87 f7 xchg %rsi,%rdi + 4234bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4234c0: 48 0f bc d2 bsf %rdx,%rdx + 4234c4: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx + 4234c8: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax + 4234cc: 29 c8 sub %ecx,%eax + 4234ce: c3 retq + 4234cf: 31 c0 xor %eax,%eax + 4234d1: c3 retq + 4234d2: 0f 1f 40 00 nopl 0x0(%rax) + 4234d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4234dd: 00 00 00 + 4234e0: 0f b6 0e movzbl (%rsi),%ecx + 4234e3: 0f b6 07 movzbl (%rdi),%eax + 4234e6: 29 c8 sub %ecx,%eax + 4234e8: c3 retq + 4234e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +00000000004234f0 : + 4234f0: 48 8d 05 39 78 01 00 lea 0x17839(%rip),%rax # 43ad30 <__strcpy_sse2_unaligned> + 4234f7: f7 05 bf 91 2a 00 10 testl $0x10,0x2a91bf(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 4234fe: 00 00 00 + 423501: 75 1a jne 42351d + 423503: 48 8d 05 16 00 00 00 lea 0x16(%rip),%rax # 423520 <__GI_strcpy> + 42350a: f7 05 7c 91 2a 00 00 testl $0x200,0x2a917c(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> + 423511: 02 00 00 + 423514: 74 07 je 42351d + 423516: 48 8d 05 53 48 01 00 lea 0x14853(%rip),%rax # 437d70 <__strcpy_ssse3> + 42351d: c3 retq + 42351e: 66 90 xchg %ax,%ax + +0000000000423520 <__GI_strcpy>: + 423520: 48 89 f1 mov %rsi,%rcx + 423523: 83 e1 07 and $0x7,%ecx + 423526: 48 89 fa mov %rdi,%rdx + 423529: 74 1b je 423546 <__GI_strcpy+0x26> + 42352b: f7 d9 neg %ecx + 42352d: 83 c1 08 add $0x8,%ecx + 423530: 8a 06 mov (%rsi),%al + 423532: 84 c0 test %al,%al + 423534: 88 02 mov %al,(%rdx) + 423536: 0f 84 bc 00 00 00 je 4235f8 <__GI_strcpy+0xd8> + 42353c: 48 ff c6 inc %rsi + 42353f: 48 ff c2 inc %rdx + 423542: ff c9 dec %ecx + 423544: 75 ea jne 423530 <__GI_strcpy+0x10> + 423546: 49 b8 ff fe fe fe fe movabs $0xfefefefefefefeff,%r8 + 42354d: fe fe fe + 423550: 48 8b 06 mov (%rsi),%rax + 423553: 48 83 c6 08 add $0x8,%rsi + 423557: 49 89 c1 mov %rax,%r9 + 42355a: 4d 01 c1 add %r8,%r9 + 42355d: 0f 83 7d 00 00 00 jae 4235e0 <__GI_strcpy+0xc0> + 423563: 49 31 c1 xor %rax,%r9 + 423566: 4d 09 c1 or %r8,%r9 + 423569: 49 ff c1 inc %r9 + 42356c: 75 72 jne 4235e0 <__GI_strcpy+0xc0> + 42356e: 48 89 02 mov %rax,(%rdx) + 423571: 48 83 c2 08 add $0x8,%rdx + 423575: 48 8b 06 mov (%rsi),%rax + 423578: 48 83 c6 08 add $0x8,%rsi + 42357c: 49 89 c1 mov %rax,%r9 + 42357f: 4d 01 c1 add %r8,%r9 + 423582: 73 5c jae 4235e0 <__GI_strcpy+0xc0> + 423584: 49 31 c1 xor %rax,%r9 + 423587: 4d 09 c1 or %r8,%r9 + 42358a: 49 ff c1 inc %r9 + 42358d: 75 51 jne 4235e0 <__GI_strcpy+0xc0> + 42358f: 48 89 02 mov %rax,(%rdx) + 423592: 48 83 c2 08 add $0x8,%rdx + 423596: 48 8b 06 mov (%rsi),%rax + 423599: 48 83 c6 08 add $0x8,%rsi + 42359d: 49 89 c1 mov %rax,%r9 + 4235a0: 4d 01 c1 add %r8,%r9 + 4235a3: 73 3b jae 4235e0 <__GI_strcpy+0xc0> + 4235a5: 49 31 c1 xor %rax,%r9 + 4235a8: 4d 09 c1 or %r8,%r9 + 4235ab: 49 ff c1 inc %r9 + 4235ae: 75 30 jne 4235e0 <__GI_strcpy+0xc0> + 4235b0: 48 89 02 mov %rax,(%rdx) + 4235b3: 48 83 c2 08 add $0x8,%rdx + 4235b7: 48 8b 06 mov (%rsi),%rax + 4235ba: 48 83 c6 08 add $0x8,%rsi + 4235be: 49 89 c1 mov %rax,%r9 + 4235c1: 4d 01 c1 add %r8,%r9 + 4235c4: 73 1a jae 4235e0 <__GI_strcpy+0xc0> + 4235c6: 49 31 c1 xor %rax,%r9 + 4235c9: 4d 09 c1 or %r8,%r9 + 4235cc: 49 ff c1 inc %r9 + 4235cf: 75 0f jne 4235e0 <__GI_strcpy+0xc0> + 4235d1: 48 89 02 mov %rax,(%rdx) + 4235d4: 48 83 c2 08 add $0x8,%rdx + 4235d8: e9 73 ff ff ff jmpq 423550 <__GI_strcpy+0x30> + 4235dd: 0f 1f 00 nopl (%rax) + 4235e0: 88 02 mov %al,(%rdx) + 4235e2: 84 c0 test %al,%al + 4235e4: 74 12 je 4235f8 <__GI_strcpy+0xd8> + 4235e6: 48 ff c2 inc %rdx + 4235e9: 88 22 mov %ah,(%rdx) + 4235eb: 84 e4 test %ah,%ah + 4235ed: 74 09 je 4235f8 <__GI_strcpy+0xd8> + 4235ef: 48 ff c2 inc %rdx + 4235f2: 48 c1 e8 10 shr $0x10,%rax + 4235f6: eb e8 jmp 4235e0 <__GI_strcpy+0xc0> + 4235f8: 48 89 f8 mov %rdi,%rax + 4235fb: c3 retq + 4235fc: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000423600 <__strdup>: + 423600: 55 push %rbp + 423601: 53 push %rbx + 423602: 48 89 fd mov %rdi,%rbp + 423605: 48 83 ec 08 sub $0x8,%rsp + 423609: e8 42 00 00 00 callq 423650 + 42360e: 48 8d 58 01 lea 0x1(%rax),%rbx + 423612: 48 89 df mov %rbx,%rdi + 423615: e8 f6 a3 ff ff callq 41da10 <__libc_malloc> + 42361a: 48 85 c0 test %rax,%rax + 42361d: 74 19 je 423638 <__strdup+0x38> + 42361f: 48 83 c4 08 add $0x8,%rsp + 423623: 48 89 da mov %rbx,%rdx + 423626: 48 89 ee mov %rbp,%rsi + 423629: 5b pop %rbx + 42362a: 5d pop %rbp + 42362b: 48 89 c7 mov %rax,%rdi + 42362e: e9 ed 89 00 00 jmpq 42c020 + 423633: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 423638: 48 83 c4 08 add $0x8,%rsp + 42363c: 31 c0 xor %eax,%eax + 42363e: 5b pop %rbx + 42363f: 5d pop %rbp + 423640: c3 retq + 423641: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 423648: 00 00 00 + 42364b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000423650 : + 423650: 66 0f ef c0 pxor %xmm0,%xmm0 + 423654: 66 0f ef c9 pxor %xmm1,%xmm1 + 423658: 66 0f ef d2 pxor %xmm2,%xmm2 + 42365c: 66 0f ef db pxor %xmm3,%xmm3 + 423660: 48 89 f8 mov %rdi,%rax + 423663: 48 89 f9 mov %rdi,%rcx + 423666: 48 81 e1 ff 0f 00 00 and $0xfff,%rcx + 42366d: 48 81 f9 cf 0f 00 00 cmp $0xfcf,%rcx + 423674: 77 6a ja 4236e0 + 423676: f3 0f 6f 20 movdqu (%rax),%xmm4 + 42367a: 66 0f 74 e0 pcmpeqb %xmm0,%xmm4 + 42367e: 66 0f d7 d4 pmovmskb %xmm4,%edx + 423682: 85 d2 test %edx,%edx + 423684: 74 04 je 42368a + 423686: 0f bc c2 bsf %edx,%eax + 423689: c3 retq + 42368a: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 42368e: 66 0f 74 48 10 pcmpeqb 0x10(%rax),%xmm1 + 423693: 66 0f 74 50 20 pcmpeqb 0x20(%rax),%xmm2 + 423698: 66 0f 74 58 30 pcmpeqb 0x30(%rax),%xmm3 + 42369d: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4236a1: 66 44 0f d7 c2 pmovmskb %xmm2,%r8d + 4236a6: 66 0f d7 cb pmovmskb %xmm3,%ecx + 4236aa: 48 c1 e2 10 shl $0x10,%rdx + 4236ae: 48 c1 e1 10 shl $0x10,%rcx + 4236b2: 4c 09 c1 or %r8,%rcx + 4236b5: 48 c1 e1 20 shl $0x20,%rcx + 4236b9: 48 09 ca or %rcx,%rdx + 4236bc: 48 89 f9 mov %rdi,%rcx + 4236bf: 48 31 c1 xor %rax,%rcx + 4236c2: 48 83 e0 c0 and $0xffffffffffffffc0,%rax + 4236c6: 48 d3 fa sar %cl,%rdx + 4236c9: 48 85 d2 test %rdx,%rdx + 4236cc: 0f 84 7e 00 00 00 je 423750 + 4236d2: 48 0f bc c2 bsf %rdx,%rax + 4236d6: c3 retq + 4236d7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4236de: 00 00 + 4236e0: 48 83 e0 c0 and $0xffffffffffffffc0,%rax + 4236e4: 66 0f 74 00 pcmpeqb (%rax),%xmm0 + 4236e8: 66 0f 74 48 10 pcmpeqb 0x10(%rax),%xmm1 + 4236ed: 66 0f 74 50 20 pcmpeqb 0x20(%rax),%xmm2 + 4236f2: 66 0f 74 58 30 pcmpeqb 0x30(%rax),%xmm3 + 4236f7: 66 0f d7 f0 pmovmskb %xmm0,%esi + 4236fb: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4236ff: 66 44 0f d7 c2 pmovmskb %xmm2,%r8d + 423704: 66 0f d7 cb pmovmskb %xmm3,%ecx + 423708: 48 c1 e2 10 shl $0x10,%rdx + 42370c: 48 c1 e1 10 shl $0x10,%rcx + 423710: 48 09 f2 or %rsi,%rdx + 423713: 4c 09 c1 or %r8,%rcx + 423716: 48 c1 e1 20 shl $0x20,%rcx + 42371a: 48 09 ca or %rcx,%rdx + 42371d: 48 89 f9 mov %rdi,%rcx + 423720: 48 31 c1 xor %rax,%rcx + 423723: 48 83 e0 c0 and $0xffffffffffffffc0,%rax + 423727: 48 d3 fa sar %cl,%rdx + 42372a: 48 85 d2 test %rdx,%rdx + 42372d: 74 11 je 423740 + 42372f: 48 0f bc c2 bsf %rdx,%rax + 423733: c3 retq + 423734: 66 90 xchg %ax,%ax + 423736: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42373d: 00 00 00 + 423740: 66 0f ef c9 pxor %xmm1,%xmm1 + 423744: 66 0f ef d2 pxor %xmm2,%xmm2 + 423748: 66 0f ef db pxor %xmm3,%xmm3 + 42374c: 0f 1f 40 00 nopl 0x0(%rax) + 423750: 66 0f 6f 40 40 movdqa 0x40(%rax),%xmm0 + 423755: 66 0f da 40 50 pminub 0x50(%rax),%xmm0 + 42375a: 66 0f da 40 60 pminub 0x60(%rax),%xmm0 + 42375f: 66 0f da 40 70 pminub 0x70(%rax),%xmm0 + 423764: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 423768: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42376c: 85 d2 test %edx,%edx + 42376e: 75 30 jne 4237a0 + 423770: 48 83 e8 80 sub $0xffffffffffffff80,%rax + 423774: 66 0f 6f 00 movdqa (%rax),%xmm0 + 423778: 66 0f da 40 10 pminub 0x10(%rax),%xmm0 + 42377d: 66 0f da 40 20 pminub 0x20(%rax),%xmm0 + 423782: 66 0f da 40 30 pminub 0x30(%rax),%xmm0 + 423787: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42378b: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42378f: 85 d2 test %edx,%edx + 423791: 75 11 jne 4237a4 + 423793: eb bb jmp 423750 + 423795: 90 nop + 423796: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42379d: 00 00 00 + 4237a0: 48 83 c0 40 add $0x40,%rax + 4237a4: 66 0f ef c0 pxor %xmm0,%xmm0 + 4237a8: 66 0f 74 00 pcmpeqb (%rax),%xmm0 + 4237ac: 66 0f 74 48 10 pcmpeqb 0x10(%rax),%xmm1 + 4237b1: 66 0f 74 50 20 pcmpeqb 0x20(%rax),%xmm2 + 4237b6: 66 0f 74 58 30 pcmpeqb 0x30(%rax),%xmm3 + 4237bb: 66 0f d7 f0 pmovmskb %xmm0,%esi + 4237bf: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4237c3: 66 44 0f d7 c2 pmovmskb %xmm2,%r8d + 4237c8: 66 0f d7 cb pmovmskb %xmm3,%ecx + 4237cc: 48 c1 e2 10 shl $0x10,%rdx + 4237d0: 48 c1 e1 10 shl $0x10,%rcx + 4237d4: 48 09 f2 or %rsi,%rdx + 4237d7: 4c 09 c1 or %r8,%rcx + 4237da: 48 c1 e1 20 shl $0x20,%rcx + 4237de: 48 09 ca or %rcx,%rdx + 4237e1: 48 0f bc d2 bsf %rdx,%rdx + 4237e5: 48 01 d0 add %rdx,%rax + 4237e8: 48 29 f8 sub %rdi,%rax + 4237eb: c3 retq + 4237ec: 0f 1f 40 00 nopl 0x0(%rax) + +00000000004237f0 : + 4237f0: 48 85 d2 test %rdx,%rdx + 4237f3: 0f 84 2b 18 00 00 je 425024 + 4237f9: 48 83 fa 01 cmp $0x1,%rdx + 4237fd: 0f 84 2d 18 00 00 je 425030 + 423803: 49 89 d3 mov %rdx,%r11 + 423806: 89 f1 mov %esi,%ecx + 423808: 89 f8 mov %edi,%eax + 42380a: 48 83 e1 3f and $0x3f,%rcx + 42380e: 48 83 e0 3f and $0x3f,%rax + 423812: 83 f9 30 cmp $0x30,%ecx + 423815: 77 49 ja 423860 + 423817: 83 f8 30 cmp $0x30,%eax + 42381a: 77 44 ja 423860 + 42381c: 66 0f 12 0f movlpd (%rdi),%xmm1 + 423820: 66 0f 12 16 movlpd (%rsi),%xmm2 + 423824: 66 0f 16 4f 08 movhpd 0x8(%rdi),%xmm1 + 423829: 66 0f 16 56 08 movhpd 0x8(%rsi),%xmm2 + 42382e: 66 0f ef c0 pxor %xmm0,%xmm0 + 423832: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 423836: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42383a: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42383e: 66 0f d7 d1 pmovmskb %xmm1,%edx + 423842: 81 ea ff ff 00 00 sub $0xffff,%edx + 423848: 0f 85 c2 17 00 00 jne 425010 + 42384e: 49 83 eb 10 sub $0x10,%r11 + 423852: 0f 86 cc 17 00 00 jbe 425024 + 423858: 48 83 c6 10 add $0x10,%rsi + 42385c: 48 83 c7 10 add $0x10,%rdi + 423860: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 423864: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 423868: ba ff ff 00 00 mov $0xffff,%edx + 42386d: 45 31 c0 xor %r8d,%r8d + 423870: 83 e1 0f and $0xf,%ecx + 423873: 83 e0 0f and $0xf,%eax + 423876: 39 c1 cmp %eax,%ecx + 423878: 74 26 je 4238a0 + 42387a: 77 07 ja 423883 + 42387c: 41 89 d0 mov %edx,%r8d + 42387f: 91 xchg %eax,%ecx + 423880: 48 87 f7 xchg %rsi,%rdi + 423883: 4c 8d 48 0f lea 0xf(%rax),%r9 + 423887: 49 29 c9 sub %rcx,%r9 + 42388a: 4c 8d 15 df f7 07 00 lea 0x7f7df(%rip),%r10 # 4a3070 <__func__.10972+0xb0> + 423891: 4f 63 0c 8a movslq (%r10,%r9,4),%r9 + 423895: 4f 8d 14 0a lea (%r10,%r9,1),%r10 + 423899: 41 ff e2 jmpq *%r10 + 42389c: 0f 1f 40 00 nopl 0x0(%rax) + 4238a0: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4238a4: 66 0f ef c0 pxor %xmm0,%xmm0 + 4238a8: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4238ac: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 4238b0: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4238b4: 66 44 0f d7 c9 pmovmskb %xmm1,%r9d + 4238b9: d3 ea shr %cl,%edx + 4238bb: 41 d3 e9 shr %cl,%r9d + 4238be: 44 29 ca sub %r9d,%edx + 4238c1: 0f 85 2e 17 00 00 jne 424ff5 + 4238c7: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 + 4238cc: 4d 39 cb cmp %r9,%r11 + 4238cf: 0f 82 4f 17 00 00 jb 425024 + 4238d5: 4d 85 c9 test %r9,%r9 + 4238d8: 0f 84 46 17 00 00 je 425024 + 4238de: 4d 89 cb mov %r9,%r11 + 4238e1: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4238e8: 49 c7 c1 10 00 00 00 mov $0x10,%r9 + 4238ef: 66 0f ef c0 pxor %xmm0,%xmm0 + 4238f3: 0f 1f 00 nopl (%rax) + 4238f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4238fd: 00 00 00 + 423900: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 423905: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42390a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42390e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 423912: 66 0f f8 c8 psubb %xmm0,%xmm1 + 423916: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42391a: 81 ea ff ff 00 00 sub $0xffff,%edx + 423920: 0f 85 ca 16 00 00 jne 424ff0 + 423926: 49 83 eb 10 sub $0x10,%r11 + 42392a: 0f 86 f4 16 00 00 jbe 425024 + 423930: 48 83 c1 10 add $0x10,%rcx + 423934: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 423939: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42393e: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 423942: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 423946: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42394a: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42394e: 81 ea ff ff 00 00 sub $0xffff,%edx + 423954: 0f 85 96 16 00 00 jne 424ff0 + 42395a: 49 83 eb 10 sub $0x10,%r11 + 42395e: 0f 86 c0 16 00 00 jbe 425024 + 423964: 48 83 c1 10 add $0x10,%rcx + 423968: eb 96 jmp 423900 + 42396a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 423970: 66 0f ef c0 pxor %xmm0,%xmm0 + 423974: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 423978: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42397c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 423980: 66 0f 73 fa 0f pslldq $0xf,%xmm2 + 423985: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 423989: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42398d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 423992: d3 ea shr %cl,%edx + 423994: 41 d3 e9 shr %cl,%r9d + 423997: 44 29 ca sub %r9d,%edx + 42399a: 0f 85 55 16 00 00 jne 424ff5 + 4239a0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 4239a4: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 + 4239a9: 4d 39 cb cmp %r9,%r11 + 4239ac: 0f 82 72 16 00 00 jb 425024 + 4239b2: 4d 85 c9 test %r9,%r9 + 4239b5: 0f 84 69 16 00 00 je 425024 + 4239bb: 4d 89 cb mov %r9,%r11 + 4239be: 66 0f ef c0 pxor %xmm0,%xmm0 + 4239c2: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4239c9: 41 b9 01 00 00 00 mov $0x1,%r9d + 4239cf: 4c 8d 57 01 lea 0x1(%rdi),%r10 + 4239d3: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 4239da: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4239e1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4239e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4239ed: 00 00 00 + 4239f0: 49 83 c2 10 add $0x10,%r10 + 4239f4: 0f 8f a6 00 00 00 jg 423aa0 + 4239fa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4239ff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 423a04: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 423a08: 66 0f 73 db 01 psrldq $0x1,%xmm3 + 423a0d: 66 0f 73 fa 0f pslldq $0xf,%xmm2 + 423a12: 66 0f eb d3 por %xmm3,%xmm2 + 423a16: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 423a1a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 423a1e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 423a22: 66 0f d7 d1 pmovmskb %xmm1,%edx + 423a26: 81 ea ff ff 00 00 sub $0xffff,%edx + 423a2c: 0f 85 be 15 00 00 jne 424ff0 + 423a32: 49 83 eb 10 sub $0x10,%r11 + 423a36: 0f 86 e8 15 00 00 jbe 425024 + 423a3c: 48 83 c1 10 add $0x10,%rcx + 423a40: 66 0f 6f dc movdqa %xmm4,%xmm3 + 423a44: 49 83 c2 10 add $0x10,%r10 + 423a48: 7f 56 jg 423aa0 + 423a4a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 423a4f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 423a54: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 423a58: 66 0f 73 db 01 psrldq $0x1,%xmm3 + 423a5d: 66 0f 73 fa 0f pslldq $0xf,%xmm2 + 423a62: 66 0f eb d3 por %xmm3,%xmm2 + 423a66: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 423a6a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 423a6e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 423a72: 66 0f d7 d1 pmovmskb %xmm1,%edx + 423a76: 81 ea ff ff 00 00 sub $0xffff,%edx + 423a7c: 0f 85 6e 15 00 00 jne 424ff0 + 423a82: 49 83 eb 10 sub $0x10,%r11 + 423a86: 0f 86 98 15 00 00 jbe 425024 + 423a8c: 48 83 c1 10 add $0x10,%rcx + 423a90: 66 0f 6f dc movdqa %xmm4,%xmm3 + 423a94: e9 57 ff ff ff jmpq 4239f0 + 423a99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 423aa0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 423aa4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 423aa8: f7 c2 fe ff 00 00 test $0xfffe,%edx + 423aae: 75 20 jne 423ad0 + 423ab0: 49 83 fb 0f cmp $0xf,%r11 + 423ab4: 76 1a jbe 423ad0 + 423ab6: 66 0f ef c0 pxor %xmm0,%xmm0 + 423aba: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 423ac1: e9 34 ff ff ff jmpq 4239fa + 423ac6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 423acd: 00 00 00 + 423ad0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 423ad5: 66 0f 73 d8 01 psrldq $0x1,%xmm0 + 423ada: 66 0f 73 db 01 psrldq $0x1,%xmm3 + 423adf: e9 fc 14 00 00 jmpq 424fe0 + 423ae4: 66 90 xchg %ax,%ax + 423ae6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 423aed: 00 00 00 + 423af0: 66 0f ef c0 pxor %xmm0,%xmm0 + 423af4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 423af8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 423afc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 423b00: 66 0f 73 fa 0e pslldq $0xe,%xmm2 + 423b05: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 423b09: 66 0f f8 d0 psubb %xmm0,%xmm2 + 423b0d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 423b12: d3 ea shr %cl,%edx + 423b14: 41 d3 e9 shr %cl,%r9d + 423b17: 44 29 ca sub %r9d,%edx + 423b1a: 0f 85 d5 14 00 00 jne 424ff5 + 423b20: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 423b24: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 + 423b29: 4d 39 cb cmp %r9,%r11 + 423b2c: 0f 82 f2 14 00 00 jb 425024 + 423b32: 4d 85 c9 test %r9,%r9 + 423b35: 0f 84 e9 14 00 00 je 425024 + 423b3b: 4d 89 cb mov %r9,%r11 + 423b3e: 66 0f ef c0 pxor %xmm0,%xmm0 + 423b42: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 423b49: 41 b9 02 00 00 00 mov $0x2,%r9d + 423b4f: 4c 8d 57 02 lea 0x2(%rdi),%r10 + 423b53: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 423b5a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 423b61: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 423b66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 423b6d: 00 00 00 + 423b70: 49 83 c2 10 add $0x10,%r10 + 423b74: 0f 8f a6 00 00 00 jg 423c20 + 423b7a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 423b7f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 423b84: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 423b88: 66 0f 73 db 02 psrldq $0x2,%xmm3 + 423b8d: 66 0f 73 fa 0e pslldq $0xe,%xmm2 + 423b92: 66 0f eb d3 por %xmm3,%xmm2 + 423b96: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 423b9a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 423b9e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 423ba2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 423ba6: 81 ea ff ff 00 00 sub $0xffff,%edx + 423bac: 0f 85 3e 14 00 00 jne 424ff0 + 423bb2: 49 83 eb 10 sub $0x10,%r11 + 423bb6: 0f 86 68 14 00 00 jbe 425024 + 423bbc: 48 83 c1 10 add $0x10,%rcx + 423bc0: 66 0f 6f dc movdqa %xmm4,%xmm3 + 423bc4: 49 83 c2 10 add $0x10,%r10 + 423bc8: 7f 56 jg 423c20 + 423bca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 423bcf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 423bd4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 423bd8: 66 0f 73 db 02 psrldq $0x2,%xmm3 + 423bdd: 66 0f 73 fa 0e pslldq $0xe,%xmm2 + 423be2: 66 0f eb d3 por %xmm3,%xmm2 + 423be6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 423bea: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 423bee: 66 0f f8 c8 psubb %xmm0,%xmm1 + 423bf2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 423bf6: 81 ea ff ff 00 00 sub $0xffff,%edx + 423bfc: 0f 85 ee 13 00 00 jne 424ff0 + 423c02: 49 83 eb 10 sub $0x10,%r11 + 423c06: 0f 86 18 14 00 00 jbe 425024 + 423c0c: 48 83 c1 10 add $0x10,%rcx + 423c10: 66 0f 6f dc movdqa %xmm4,%xmm3 + 423c14: e9 57 ff ff ff jmpq 423b70 + 423c19: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 423c20: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 423c24: 66 0f d7 d0 pmovmskb %xmm0,%edx + 423c28: f7 c2 fc ff 00 00 test $0xfffc,%edx + 423c2e: 75 20 jne 423c50 + 423c30: 49 83 fb 0e cmp $0xe,%r11 + 423c34: 76 1a jbe 423c50 + 423c36: 66 0f ef c0 pxor %xmm0,%xmm0 + 423c3a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 423c41: e9 34 ff ff ff jmpq 423b7a + 423c46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 423c4d: 00 00 00 + 423c50: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 423c55: 66 0f 73 d8 02 psrldq $0x2,%xmm0 + 423c5a: 66 0f 73 db 02 psrldq $0x2,%xmm3 + 423c5f: e9 7c 13 00 00 jmpq 424fe0 + 423c64: 66 90 xchg %ax,%ax + 423c66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 423c6d: 00 00 00 + 423c70: 66 0f ef c0 pxor %xmm0,%xmm0 + 423c74: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 423c78: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 423c7c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 423c80: 66 0f 73 fa 0d pslldq $0xd,%xmm2 + 423c85: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 423c89: 66 0f f8 d0 psubb %xmm0,%xmm2 + 423c8d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 423c92: d3 ea shr %cl,%edx + 423c94: 41 d3 e9 shr %cl,%r9d + 423c97: 44 29 ca sub %r9d,%edx + 423c9a: 0f 85 55 13 00 00 jne 424ff5 + 423ca0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 423ca4: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 + 423ca9: 4d 39 cb cmp %r9,%r11 + 423cac: 0f 82 72 13 00 00 jb 425024 + 423cb2: 4d 85 c9 test %r9,%r9 + 423cb5: 0f 84 69 13 00 00 je 425024 + 423cbb: 4d 89 cb mov %r9,%r11 + 423cbe: 66 0f ef c0 pxor %xmm0,%xmm0 + 423cc2: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 423cc9: 41 b9 03 00 00 00 mov $0x3,%r9d + 423ccf: 4c 8d 57 03 lea 0x3(%rdi),%r10 + 423cd3: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 423cda: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 423ce1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 423ce6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 423ced: 00 00 00 + 423cf0: 49 83 c2 10 add $0x10,%r10 + 423cf4: 0f 8f a6 00 00 00 jg 423da0 + 423cfa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 423cff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 423d04: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 423d08: 66 0f 73 db 03 psrldq $0x3,%xmm3 + 423d0d: 66 0f 73 fa 0d pslldq $0xd,%xmm2 + 423d12: 66 0f eb d3 por %xmm3,%xmm2 + 423d16: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 423d1a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 423d1e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 423d22: 66 0f d7 d1 pmovmskb %xmm1,%edx + 423d26: 81 ea ff ff 00 00 sub $0xffff,%edx + 423d2c: 0f 85 be 12 00 00 jne 424ff0 + 423d32: 49 83 eb 10 sub $0x10,%r11 + 423d36: 0f 86 e8 12 00 00 jbe 425024 + 423d3c: 48 83 c1 10 add $0x10,%rcx + 423d40: 66 0f 6f dc movdqa %xmm4,%xmm3 + 423d44: 49 83 c2 10 add $0x10,%r10 + 423d48: 7f 56 jg 423da0 + 423d4a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 423d4f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 423d54: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 423d58: 66 0f 73 db 03 psrldq $0x3,%xmm3 + 423d5d: 66 0f 73 fa 0d pslldq $0xd,%xmm2 + 423d62: 66 0f eb d3 por %xmm3,%xmm2 + 423d66: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 423d6a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 423d6e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 423d72: 66 0f d7 d1 pmovmskb %xmm1,%edx + 423d76: 81 ea ff ff 00 00 sub $0xffff,%edx + 423d7c: 0f 85 6e 12 00 00 jne 424ff0 + 423d82: 49 83 eb 10 sub $0x10,%r11 + 423d86: 0f 86 98 12 00 00 jbe 425024 + 423d8c: 48 83 c1 10 add $0x10,%rcx + 423d90: 66 0f 6f dc movdqa %xmm4,%xmm3 + 423d94: e9 57 ff ff ff jmpq 423cf0 + 423d99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 423da0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 423da4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 423da8: f7 c2 f8 ff 00 00 test $0xfff8,%edx + 423dae: 75 20 jne 423dd0 + 423db0: 49 83 fb 0d cmp $0xd,%r11 + 423db4: 76 1a jbe 423dd0 + 423db6: 66 0f ef c0 pxor %xmm0,%xmm0 + 423dba: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 423dc1: e9 34 ff ff ff jmpq 423cfa + 423dc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 423dcd: 00 00 00 + 423dd0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 423dd5: 66 0f 73 d8 03 psrldq $0x3,%xmm0 + 423dda: 66 0f 73 db 03 psrldq $0x3,%xmm3 + 423ddf: e9 fc 11 00 00 jmpq 424fe0 + 423de4: 66 90 xchg %ax,%ax + 423de6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 423ded: 00 00 00 + 423df0: 66 0f ef c0 pxor %xmm0,%xmm0 + 423df4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 423df8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 423dfc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 423e00: 66 0f 73 fa 0c pslldq $0xc,%xmm2 + 423e05: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 423e09: 66 0f f8 d0 psubb %xmm0,%xmm2 + 423e0d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 423e12: d3 ea shr %cl,%edx + 423e14: 41 d3 e9 shr %cl,%r9d + 423e17: 44 29 ca sub %r9d,%edx + 423e1a: 0f 85 d5 11 00 00 jne 424ff5 + 423e20: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 423e24: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 + 423e29: 4d 39 cb cmp %r9,%r11 + 423e2c: 0f 82 f2 11 00 00 jb 425024 + 423e32: 4d 85 c9 test %r9,%r9 + 423e35: 0f 84 e9 11 00 00 je 425024 + 423e3b: 4d 89 cb mov %r9,%r11 + 423e3e: 66 0f ef c0 pxor %xmm0,%xmm0 + 423e42: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 423e49: 41 b9 04 00 00 00 mov $0x4,%r9d + 423e4f: 4c 8d 57 04 lea 0x4(%rdi),%r10 + 423e53: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 423e5a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 423e61: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 423e66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 423e6d: 00 00 00 + 423e70: 49 83 c2 10 add $0x10,%r10 + 423e74: 0f 8f a6 00 00 00 jg 423f20 + 423e7a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 423e7f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 423e84: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 423e88: 66 0f 73 db 04 psrldq $0x4,%xmm3 + 423e8d: 66 0f 73 fa 0c pslldq $0xc,%xmm2 + 423e92: 66 0f eb d3 por %xmm3,%xmm2 + 423e96: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 423e9a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 423e9e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 423ea2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 423ea6: 81 ea ff ff 00 00 sub $0xffff,%edx + 423eac: 0f 85 3e 11 00 00 jne 424ff0 + 423eb2: 49 83 eb 10 sub $0x10,%r11 + 423eb6: 0f 86 68 11 00 00 jbe 425024 + 423ebc: 48 83 c1 10 add $0x10,%rcx + 423ec0: 66 0f 6f dc movdqa %xmm4,%xmm3 + 423ec4: 49 83 c2 10 add $0x10,%r10 + 423ec8: 7f 56 jg 423f20 + 423eca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 423ecf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 423ed4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 423ed8: 66 0f 73 db 04 psrldq $0x4,%xmm3 + 423edd: 66 0f 73 fa 0c pslldq $0xc,%xmm2 + 423ee2: 66 0f eb d3 por %xmm3,%xmm2 + 423ee6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 423eea: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 423eee: 66 0f f8 c8 psubb %xmm0,%xmm1 + 423ef2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 423ef6: 81 ea ff ff 00 00 sub $0xffff,%edx + 423efc: 0f 85 ee 10 00 00 jne 424ff0 + 423f02: 49 83 eb 10 sub $0x10,%r11 + 423f06: 0f 86 18 11 00 00 jbe 425024 + 423f0c: 48 83 c1 10 add $0x10,%rcx + 423f10: 66 0f 6f dc movdqa %xmm4,%xmm3 + 423f14: e9 57 ff ff ff jmpq 423e70 + 423f19: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 423f20: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 423f24: 66 0f d7 d0 pmovmskb %xmm0,%edx + 423f28: f7 c2 f0 ff 00 00 test $0xfff0,%edx + 423f2e: 75 20 jne 423f50 + 423f30: 49 83 fb 0c cmp $0xc,%r11 + 423f34: 76 1a jbe 423f50 + 423f36: 66 0f ef c0 pxor %xmm0,%xmm0 + 423f3a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 423f41: e9 34 ff ff ff jmpq 423e7a + 423f46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 423f4d: 00 00 00 + 423f50: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 423f55: 66 0f 73 d8 04 psrldq $0x4,%xmm0 + 423f5a: 66 0f 73 db 04 psrldq $0x4,%xmm3 + 423f5f: e9 7c 10 00 00 jmpq 424fe0 + 423f64: 66 90 xchg %ax,%ax + 423f66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 423f6d: 00 00 00 + 423f70: 66 0f ef c0 pxor %xmm0,%xmm0 + 423f74: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 423f78: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 423f7c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 423f80: 66 0f 73 fa 0b pslldq $0xb,%xmm2 + 423f85: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 423f89: 66 0f f8 d0 psubb %xmm0,%xmm2 + 423f8d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 423f92: d3 ea shr %cl,%edx + 423f94: 41 d3 e9 shr %cl,%r9d + 423f97: 44 29 ca sub %r9d,%edx + 423f9a: 0f 85 55 10 00 00 jne 424ff5 + 423fa0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 423fa4: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 + 423fa9: 4d 39 cb cmp %r9,%r11 + 423fac: 0f 82 72 10 00 00 jb 425024 + 423fb2: 4d 85 c9 test %r9,%r9 + 423fb5: 0f 84 69 10 00 00 je 425024 + 423fbb: 4d 89 cb mov %r9,%r11 + 423fbe: 66 0f ef c0 pxor %xmm0,%xmm0 + 423fc2: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 423fc9: 41 b9 05 00 00 00 mov $0x5,%r9d + 423fcf: 4c 8d 57 05 lea 0x5(%rdi),%r10 + 423fd3: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 423fda: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 423fe1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 423fe6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 423fed: 00 00 00 + 423ff0: 49 83 c2 10 add $0x10,%r10 + 423ff4: 0f 8f a6 00 00 00 jg 4240a0 + 423ffa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 423fff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424004: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424008: 66 0f 73 db 05 psrldq $0x5,%xmm3 + 42400d: 66 0f 73 fa 0b pslldq $0xb,%xmm2 + 424012: 66 0f eb d3 por %xmm3,%xmm2 + 424016: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42401a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42401e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424022: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424026: 81 ea ff ff 00 00 sub $0xffff,%edx + 42402c: 0f 85 be 0f 00 00 jne 424ff0 + 424032: 49 83 eb 10 sub $0x10,%r11 + 424036: 0f 86 e8 0f 00 00 jbe 425024 + 42403c: 48 83 c1 10 add $0x10,%rcx + 424040: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424044: 49 83 c2 10 add $0x10,%r10 + 424048: 7f 56 jg 4240a0 + 42404a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42404f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424054: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424058: 66 0f 73 db 05 psrldq $0x5,%xmm3 + 42405d: 66 0f 73 fa 0b pslldq $0xb,%xmm2 + 424062: 66 0f eb d3 por %xmm3,%xmm2 + 424066: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42406a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42406e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424072: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424076: 81 ea ff ff 00 00 sub $0xffff,%edx + 42407c: 0f 85 6e 0f 00 00 jne 424ff0 + 424082: 49 83 eb 10 sub $0x10,%r11 + 424086: 0f 86 98 0f 00 00 jbe 425024 + 42408c: 48 83 c1 10 add $0x10,%rcx + 424090: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424094: e9 57 ff ff ff jmpq 423ff0 + 424099: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4240a0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 4240a4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4240a8: f7 c2 e0 ff 00 00 test $0xffe0,%edx + 4240ae: 75 20 jne 4240d0 + 4240b0: 49 83 fb 0b cmp $0xb,%r11 + 4240b4: 76 1a jbe 4240d0 + 4240b6: 66 0f ef c0 pxor %xmm0,%xmm0 + 4240ba: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4240c1: e9 34 ff ff ff jmpq 423ffa + 4240c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4240cd: 00 00 00 + 4240d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4240d5: 66 0f 73 d8 05 psrldq $0x5,%xmm0 + 4240da: 66 0f 73 db 05 psrldq $0x5,%xmm3 + 4240df: e9 fc 0e 00 00 jmpq 424fe0 + 4240e4: 66 90 xchg %ax,%ax + 4240e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4240ed: 00 00 00 + 4240f0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4240f4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4240f8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4240fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424100: 66 0f 73 fa 0a pslldq $0xa,%xmm2 + 424105: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 424109: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42410d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 424112: d3 ea shr %cl,%edx + 424114: 41 d3 e9 shr %cl,%r9d + 424117: 44 29 ca sub %r9d,%edx + 42411a: 0f 85 d5 0e 00 00 jne 424ff5 + 424120: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 424124: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 + 424129: 4d 39 cb cmp %r9,%r11 + 42412c: 0f 82 f2 0e 00 00 jb 425024 + 424132: 4d 85 c9 test %r9,%r9 + 424135: 0f 84 e9 0e 00 00 je 425024 + 42413b: 4d 89 cb mov %r9,%r11 + 42413e: 66 0f ef c0 pxor %xmm0,%xmm0 + 424142: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 424149: 41 b9 06 00 00 00 mov $0x6,%r9d + 42414f: 4c 8d 57 06 lea 0x6(%rdi),%r10 + 424153: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42415a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 424161: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 424166: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42416d: 00 00 00 + 424170: 49 83 c2 10 add $0x10,%r10 + 424174: 0f 8f a6 00 00 00 jg 424220 + 42417a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42417f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424184: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424188: 66 0f 73 db 06 psrldq $0x6,%xmm3 + 42418d: 66 0f 73 fa 0a pslldq $0xa,%xmm2 + 424192: 66 0f eb d3 por %xmm3,%xmm2 + 424196: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42419a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42419e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4241a2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4241a6: 81 ea ff ff 00 00 sub $0xffff,%edx + 4241ac: 0f 85 3e 0e 00 00 jne 424ff0 + 4241b2: 49 83 eb 10 sub $0x10,%r11 + 4241b6: 0f 86 68 0e 00 00 jbe 425024 + 4241bc: 48 83 c1 10 add $0x10,%rcx + 4241c0: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4241c4: 49 83 c2 10 add $0x10,%r10 + 4241c8: 7f 56 jg 424220 + 4241ca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4241cf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4241d4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4241d8: 66 0f 73 db 06 psrldq $0x6,%xmm3 + 4241dd: 66 0f 73 fa 0a pslldq $0xa,%xmm2 + 4241e2: 66 0f eb d3 por %xmm3,%xmm2 + 4241e6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4241ea: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4241ee: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4241f2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4241f6: 81 ea ff ff 00 00 sub $0xffff,%edx + 4241fc: 0f 85 ee 0d 00 00 jne 424ff0 + 424202: 49 83 eb 10 sub $0x10,%r11 + 424206: 0f 86 18 0e 00 00 jbe 425024 + 42420c: 48 83 c1 10 add $0x10,%rcx + 424210: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424214: e9 57 ff ff ff jmpq 424170 + 424219: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 424220: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 424224: 66 0f d7 d0 pmovmskb %xmm0,%edx + 424228: f7 c2 c0 ff 00 00 test $0xffc0,%edx + 42422e: 75 20 jne 424250 + 424230: 49 83 fb 0a cmp $0xa,%r11 + 424234: 76 1a jbe 424250 + 424236: 66 0f ef c0 pxor %xmm0,%xmm0 + 42423a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 424241: e9 34 ff ff ff jmpq 42417a + 424246: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42424d: 00 00 00 + 424250: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 424255: 66 0f 73 d8 06 psrldq $0x6,%xmm0 + 42425a: 66 0f 73 db 06 psrldq $0x6,%xmm3 + 42425f: e9 7c 0d 00 00 jmpq 424fe0 + 424264: 66 90 xchg %ax,%ax + 424266: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42426d: 00 00 00 + 424270: 66 0f ef c0 pxor %xmm0,%xmm0 + 424274: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 424278: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42427c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424280: 66 0f 73 fa 09 pslldq $0x9,%xmm2 + 424285: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 424289: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42428d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 424292: d3 ea shr %cl,%edx + 424294: 41 d3 e9 shr %cl,%r9d + 424297: 44 29 ca sub %r9d,%edx + 42429a: 0f 85 55 0d 00 00 jne 424ff5 + 4242a0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 4242a4: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 + 4242a9: 4d 39 cb cmp %r9,%r11 + 4242ac: 0f 82 72 0d 00 00 jb 425024 + 4242b2: 4d 85 c9 test %r9,%r9 + 4242b5: 0f 84 69 0d 00 00 je 425024 + 4242bb: 4d 89 cb mov %r9,%r11 + 4242be: 66 0f ef c0 pxor %xmm0,%xmm0 + 4242c2: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4242c9: 41 b9 07 00 00 00 mov $0x7,%r9d + 4242cf: 4c 8d 57 07 lea 0x7(%rdi),%r10 + 4242d3: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 4242da: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4242e1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4242e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4242ed: 00 00 00 + 4242f0: 49 83 c2 10 add $0x10,%r10 + 4242f4: 0f 8f a6 00 00 00 jg 4243a0 + 4242fa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4242ff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424304: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424308: 66 0f 73 db 07 psrldq $0x7,%xmm3 + 42430d: 66 0f 73 fa 09 pslldq $0x9,%xmm2 + 424312: 66 0f eb d3 por %xmm3,%xmm2 + 424316: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42431a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42431e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424322: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424326: 81 ea ff ff 00 00 sub $0xffff,%edx + 42432c: 0f 85 be 0c 00 00 jne 424ff0 + 424332: 49 83 eb 10 sub $0x10,%r11 + 424336: 0f 86 e8 0c 00 00 jbe 425024 + 42433c: 48 83 c1 10 add $0x10,%rcx + 424340: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424344: 49 83 c2 10 add $0x10,%r10 + 424348: 7f 56 jg 4243a0 + 42434a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42434f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424354: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424358: 66 0f 73 db 07 psrldq $0x7,%xmm3 + 42435d: 66 0f 73 fa 09 pslldq $0x9,%xmm2 + 424362: 66 0f eb d3 por %xmm3,%xmm2 + 424366: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42436a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42436e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424372: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424376: 81 ea ff ff 00 00 sub $0xffff,%edx + 42437c: 0f 85 6e 0c 00 00 jne 424ff0 + 424382: 49 83 eb 10 sub $0x10,%r11 + 424386: 0f 86 98 0c 00 00 jbe 425024 + 42438c: 48 83 c1 10 add $0x10,%rcx + 424390: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424394: e9 57 ff ff ff jmpq 4242f0 + 424399: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4243a0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 4243a4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4243a8: f7 c2 80 ff 00 00 test $0xff80,%edx + 4243ae: 75 20 jne 4243d0 + 4243b0: 49 83 fb 09 cmp $0x9,%r11 + 4243b4: 76 1a jbe 4243d0 + 4243b6: 66 0f ef c0 pxor %xmm0,%xmm0 + 4243ba: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4243c1: e9 34 ff ff ff jmpq 4242fa + 4243c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4243cd: 00 00 00 + 4243d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4243d5: 66 0f 73 d8 07 psrldq $0x7,%xmm0 + 4243da: 66 0f 73 db 07 psrldq $0x7,%xmm3 + 4243df: e9 fc 0b 00 00 jmpq 424fe0 + 4243e4: 66 90 xchg %ax,%ax + 4243e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4243ed: 00 00 00 + 4243f0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4243f4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4243f8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4243fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424400: 66 0f 73 fa 08 pslldq $0x8,%xmm2 + 424405: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 424409: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42440d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 424412: d3 ea shr %cl,%edx + 424414: 41 d3 e9 shr %cl,%r9d + 424417: 44 29 ca sub %r9d,%edx + 42441a: 0f 85 d5 0b 00 00 jne 424ff5 + 424420: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 424424: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 + 424429: 4d 39 cb cmp %r9,%r11 + 42442c: 0f 82 f2 0b 00 00 jb 425024 + 424432: 4d 85 c9 test %r9,%r9 + 424435: 0f 84 e9 0b 00 00 je 425024 + 42443b: 4d 89 cb mov %r9,%r11 + 42443e: 66 0f ef c0 pxor %xmm0,%xmm0 + 424442: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 424449: 41 b9 08 00 00 00 mov $0x8,%r9d + 42444f: 4c 8d 57 08 lea 0x8(%rdi),%r10 + 424453: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42445a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 424461: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 424466: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42446d: 00 00 00 + 424470: 49 83 c2 10 add $0x10,%r10 + 424474: 0f 8f a6 00 00 00 jg 424520 + 42447a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42447f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424484: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424488: 66 0f 73 db 08 psrldq $0x8,%xmm3 + 42448d: 66 0f 73 fa 08 pslldq $0x8,%xmm2 + 424492: 66 0f eb d3 por %xmm3,%xmm2 + 424496: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42449a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42449e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4244a2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4244a6: 81 ea ff ff 00 00 sub $0xffff,%edx + 4244ac: 0f 85 3e 0b 00 00 jne 424ff0 + 4244b2: 49 83 eb 10 sub $0x10,%r11 + 4244b6: 0f 86 68 0b 00 00 jbe 425024 + 4244bc: 48 83 c1 10 add $0x10,%rcx + 4244c0: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4244c4: 49 83 c2 10 add $0x10,%r10 + 4244c8: 7f 56 jg 424520 + 4244ca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4244cf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4244d4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4244d8: 66 0f 73 db 08 psrldq $0x8,%xmm3 + 4244dd: 66 0f 73 fa 08 pslldq $0x8,%xmm2 + 4244e2: 66 0f eb d3 por %xmm3,%xmm2 + 4244e6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4244ea: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4244ee: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4244f2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4244f6: 81 ea ff ff 00 00 sub $0xffff,%edx + 4244fc: 0f 85 ee 0a 00 00 jne 424ff0 + 424502: 49 83 eb 10 sub $0x10,%r11 + 424506: 0f 86 18 0b 00 00 jbe 425024 + 42450c: 48 83 c1 10 add $0x10,%rcx + 424510: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424514: e9 57 ff ff ff jmpq 424470 + 424519: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 424520: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 424524: 66 0f d7 d0 pmovmskb %xmm0,%edx + 424528: f7 c2 00 ff 00 00 test $0xff00,%edx + 42452e: 75 20 jne 424550 + 424530: 49 83 fb 08 cmp $0x8,%r11 + 424534: 76 1a jbe 424550 + 424536: 66 0f ef c0 pxor %xmm0,%xmm0 + 42453a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 424541: e9 34 ff ff ff jmpq 42447a + 424546: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42454d: 00 00 00 + 424550: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 424555: 66 0f 73 d8 08 psrldq $0x8,%xmm0 + 42455a: 66 0f 73 db 08 psrldq $0x8,%xmm3 + 42455f: e9 7c 0a 00 00 jmpq 424fe0 + 424564: 66 90 xchg %ax,%ax + 424566: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42456d: 00 00 00 + 424570: 66 0f ef c0 pxor %xmm0,%xmm0 + 424574: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 424578: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42457c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424580: 66 0f 73 fa 07 pslldq $0x7,%xmm2 + 424585: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 424589: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42458d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 424592: d3 ea shr %cl,%edx + 424594: 41 d3 e9 shr %cl,%r9d + 424597: 44 29 ca sub %r9d,%edx + 42459a: 0f 85 55 0a 00 00 jne 424ff5 + 4245a0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 4245a4: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 + 4245a9: 4d 39 cb cmp %r9,%r11 + 4245ac: 0f 82 72 0a 00 00 jb 425024 + 4245b2: 4d 85 c9 test %r9,%r9 + 4245b5: 0f 84 69 0a 00 00 je 425024 + 4245bb: 4d 89 cb mov %r9,%r11 + 4245be: 66 0f ef c0 pxor %xmm0,%xmm0 + 4245c2: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4245c9: 41 b9 09 00 00 00 mov $0x9,%r9d + 4245cf: 4c 8d 57 09 lea 0x9(%rdi),%r10 + 4245d3: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 4245da: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4245e1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4245e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4245ed: 00 00 00 + 4245f0: 49 83 c2 10 add $0x10,%r10 + 4245f4: 0f 8f a6 00 00 00 jg 4246a0 + 4245fa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4245ff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424604: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424608: 66 0f 73 db 09 psrldq $0x9,%xmm3 + 42460d: 66 0f 73 fa 07 pslldq $0x7,%xmm2 + 424612: 66 0f eb d3 por %xmm3,%xmm2 + 424616: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42461a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42461e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424622: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424626: 81 ea ff ff 00 00 sub $0xffff,%edx + 42462c: 0f 85 be 09 00 00 jne 424ff0 + 424632: 49 83 eb 10 sub $0x10,%r11 + 424636: 0f 86 e8 09 00 00 jbe 425024 + 42463c: 48 83 c1 10 add $0x10,%rcx + 424640: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424644: 49 83 c2 10 add $0x10,%r10 + 424648: 7f 56 jg 4246a0 + 42464a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42464f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424654: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424658: 66 0f 73 db 09 psrldq $0x9,%xmm3 + 42465d: 66 0f 73 fa 07 pslldq $0x7,%xmm2 + 424662: 66 0f eb d3 por %xmm3,%xmm2 + 424666: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42466a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42466e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424672: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424676: 81 ea ff ff 00 00 sub $0xffff,%edx + 42467c: 0f 85 6e 09 00 00 jne 424ff0 + 424682: 49 83 eb 10 sub $0x10,%r11 + 424686: 0f 86 98 09 00 00 jbe 425024 + 42468c: 48 83 c1 10 add $0x10,%rcx + 424690: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424694: e9 57 ff ff ff jmpq 4245f0 + 424699: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4246a0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 4246a4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4246a8: f7 c2 00 fe 00 00 test $0xfe00,%edx + 4246ae: 75 20 jne 4246d0 + 4246b0: 49 83 fb 07 cmp $0x7,%r11 + 4246b4: 76 1a jbe 4246d0 + 4246b6: 66 0f ef c0 pxor %xmm0,%xmm0 + 4246ba: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4246c1: e9 34 ff ff ff jmpq 4245fa + 4246c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4246cd: 00 00 00 + 4246d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4246d5: 66 0f 73 d8 09 psrldq $0x9,%xmm0 + 4246da: 66 0f 73 db 09 psrldq $0x9,%xmm3 + 4246df: e9 fc 08 00 00 jmpq 424fe0 + 4246e4: 66 90 xchg %ax,%ax + 4246e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4246ed: 00 00 00 + 4246f0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4246f4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4246f8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4246fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424700: 66 0f 73 fa 06 pslldq $0x6,%xmm2 + 424705: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 424709: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42470d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 424712: d3 ea shr %cl,%edx + 424714: 41 d3 e9 shr %cl,%r9d + 424717: 44 29 ca sub %r9d,%edx + 42471a: 0f 85 d5 08 00 00 jne 424ff5 + 424720: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 424724: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 + 424729: 4d 39 cb cmp %r9,%r11 + 42472c: 0f 82 f2 08 00 00 jb 425024 + 424732: 4d 85 c9 test %r9,%r9 + 424735: 0f 84 e9 08 00 00 je 425024 + 42473b: 4d 89 cb mov %r9,%r11 + 42473e: 66 0f ef c0 pxor %xmm0,%xmm0 + 424742: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 424749: 41 b9 0a 00 00 00 mov $0xa,%r9d + 42474f: 4c 8d 57 0a lea 0xa(%rdi),%r10 + 424753: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42475a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 424761: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 424766: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42476d: 00 00 00 + 424770: 49 83 c2 10 add $0x10,%r10 + 424774: 0f 8f a6 00 00 00 jg 424820 + 42477a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42477f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424784: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424788: 66 0f 73 db 0a psrldq $0xa,%xmm3 + 42478d: 66 0f 73 fa 06 pslldq $0x6,%xmm2 + 424792: 66 0f eb d3 por %xmm3,%xmm2 + 424796: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42479a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42479e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4247a2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4247a6: 81 ea ff ff 00 00 sub $0xffff,%edx + 4247ac: 0f 85 3e 08 00 00 jne 424ff0 + 4247b2: 49 83 eb 10 sub $0x10,%r11 + 4247b6: 0f 86 68 08 00 00 jbe 425024 + 4247bc: 48 83 c1 10 add $0x10,%rcx + 4247c0: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4247c4: 49 83 c2 10 add $0x10,%r10 + 4247c8: 7f 56 jg 424820 + 4247ca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4247cf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4247d4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4247d8: 66 0f 73 db 0a psrldq $0xa,%xmm3 + 4247dd: 66 0f 73 fa 06 pslldq $0x6,%xmm2 + 4247e2: 66 0f eb d3 por %xmm3,%xmm2 + 4247e6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4247ea: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4247ee: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4247f2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4247f6: 81 ea ff ff 00 00 sub $0xffff,%edx + 4247fc: 0f 85 ee 07 00 00 jne 424ff0 + 424802: 49 83 eb 10 sub $0x10,%r11 + 424806: 0f 86 18 08 00 00 jbe 425024 + 42480c: 48 83 c1 10 add $0x10,%rcx + 424810: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424814: e9 57 ff ff ff jmpq 424770 + 424819: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 424820: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 424824: 66 0f d7 d0 pmovmskb %xmm0,%edx + 424828: f7 c2 00 fc 00 00 test $0xfc00,%edx + 42482e: 75 20 jne 424850 + 424830: 49 83 fb 06 cmp $0x6,%r11 + 424834: 76 1a jbe 424850 + 424836: 66 0f ef c0 pxor %xmm0,%xmm0 + 42483a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 424841: e9 34 ff ff ff jmpq 42477a + 424846: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42484d: 00 00 00 + 424850: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 424855: 66 0f 73 d8 0a psrldq $0xa,%xmm0 + 42485a: 66 0f 73 db 0a psrldq $0xa,%xmm3 + 42485f: e9 7c 07 00 00 jmpq 424fe0 + 424864: 66 90 xchg %ax,%ax + 424866: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42486d: 00 00 00 + 424870: 66 0f ef c0 pxor %xmm0,%xmm0 + 424874: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 424878: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42487c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424880: 66 0f 73 fa 05 pslldq $0x5,%xmm2 + 424885: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 424889: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42488d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 424892: d3 ea shr %cl,%edx + 424894: 41 d3 e9 shr %cl,%r9d + 424897: 44 29 ca sub %r9d,%edx + 42489a: 0f 85 55 07 00 00 jne 424ff5 + 4248a0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 4248a4: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 + 4248a9: 4d 39 cb cmp %r9,%r11 + 4248ac: 0f 82 72 07 00 00 jb 425024 + 4248b2: 4d 85 c9 test %r9,%r9 + 4248b5: 0f 84 69 07 00 00 je 425024 + 4248bb: 4d 89 cb mov %r9,%r11 + 4248be: 66 0f ef c0 pxor %xmm0,%xmm0 + 4248c2: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4248c9: 41 b9 0b 00 00 00 mov $0xb,%r9d + 4248cf: 4c 8d 57 0b lea 0xb(%rdi),%r10 + 4248d3: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 4248da: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4248e1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4248e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4248ed: 00 00 00 + 4248f0: 49 83 c2 10 add $0x10,%r10 + 4248f4: 0f 8f a6 00 00 00 jg 4249a0 + 4248fa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4248ff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424904: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424908: 66 0f 73 db 0b psrldq $0xb,%xmm3 + 42490d: 66 0f 73 fa 05 pslldq $0x5,%xmm2 + 424912: 66 0f eb d3 por %xmm3,%xmm2 + 424916: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42491a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42491e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424922: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424926: 81 ea ff ff 00 00 sub $0xffff,%edx + 42492c: 0f 85 be 06 00 00 jne 424ff0 + 424932: 49 83 eb 10 sub $0x10,%r11 + 424936: 0f 86 e8 06 00 00 jbe 425024 + 42493c: 48 83 c1 10 add $0x10,%rcx + 424940: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424944: 49 83 c2 10 add $0x10,%r10 + 424948: 7f 56 jg 4249a0 + 42494a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42494f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424954: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424958: 66 0f 73 db 0b psrldq $0xb,%xmm3 + 42495d: 66 0f 73 fa 05 pslldq $0x5,%xmm2 + 424962: 66 0f eb d3 por %xmm3,%xmm2 + 424966: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42496a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42496e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424972: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424976: 81 ea ff ff 00 00 sub $0xffff,%edx + 42497c: 0f 85 6e 06 00 00 jne 424ff0 + 424982: 49 83 eb 10 sub $0x10,%r11 + 424986: 0f 86 98 06 00 00 jbe 425024 + 42498c: 48 83 c1 10 add $0x10,%rcx + 424990: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424994: e9 57 ff ff ff jmpq 4248f0 + 424999: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4249a0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 4249a4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4249a8: f7 c2 00 f8 00 00 test $0xf800,%edx + 4249ae: 75 20 jne 4249d0 + 4249b0: 49 83 fb 05 cmp $0x5,%r11 + 4249b4: 76 1a jbe 4249d0 + 4249b6: 66 0f ef c0 pxor %xmm0,%xmm0 + 4249ba: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4249c1: e9 34 ff ff ff jmpq 4248fa + 4249c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4249cd: 00 00 00 + 4249d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4249d5: 66 0f 73 d8 0b psrldq $0xb,%xmm0 + 4249da: 66 0f 73 db 0b psrldq $0xb,%xmm3 + 4249df: e9 fc 05 00 00 jmpq 424fe0 + 4249e4: 66 90 xchg %ax,%ax + 4249e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4249ed: 00 00 00 + 4249f0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4249f4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4249f8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4249fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424a00: 66 0f 73 fa 04 pslldq $0x4,%xmm2 + 424a05: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 424a09: 66 0f f8 d0 psubb %xmm0,%xmm2 + 424a0d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 424a12: d3 ea shr %cl,%edx + 424a14: 41 d3 e9 shr %cl,%r9d + 424a17: 44 29 ca sub %r9d,%edx + 424a1a: 0f 85 d5 05 00 00 jne 424ff5 + 424a20: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 424a24: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 + 424a29: 4d 39 cb cmp %r9,%r11 + 424a2c: 0f 82 f2 05 00 00 jb 425024 + 424a32: 4d 85 c9 test %r9,%r9 + 424a35: 0f 84 e9 05 00 00 je 425024 + 424a3b: 4d 89 cb mov %r9,%r11 + 424a3e: 66 0f ef c0 pxor %xmm0,%xmm0 + 424a42: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 424a49: 41 b9 0c 00 00 00 mov $0xc,%r9d + 424a4f: 4c 8d 57 0c lea 0xc(%rdi),%r10 + 424a53: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 424a5a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 424a61: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 424a66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 424a6d: 00 00 00 + 424a70: 49 83 c2 10 add $0x10,%r10 + 424a74: 0f 8f a6 00 00 00 jg 424b20 + 424a7a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 424a7f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424a84: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424a88: 66 0f 73 db 0c psrldq $0xc,%xmm3 + 424a8d: 66 0f 73 fa 04 pslldq $0x4,%xmm2 + 424a92: 66 0f eb d3 por %xmm3,%xmm2 + 424a96: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424a9a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 424a9e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424aa2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424aa6: 81 ea ff ff 00 00 sub $0xffff,%edx + 424aac: 0f 85 3e 05 00 00 jne 424ff0 + 424ab2: 49 83 eb 10 sub $0x10,%r11 + 424ab6: 0f 86 68 05 00 00 jbe 425024 + 424abc: 48 83 c1 10 add $0x10,%rcx + 424ac0: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424ac4: 49 83 c2 10 add $0x10,%r10 + 424ac8: 7f 56 jg 424b20 + 424aca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 424acf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424ad4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424ad8: 66 0f 73 db 0c psrldq $0xc,%xmm3 + 424add: 66 0f 73 fa 04 pslldq $0x4,%xmm2 + 424ae2: 66 0f eb d3 por %xmm3,%xmm2 + 424ae6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424aea: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 424aee: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424af2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424af6: 81 ea ff ff 00 00 sub $0xffff,%edx + 424afc: 0f 85 ee 04 00 00 jne 424ff0 + 424b02: 49 83 eb 10 sub $0x10,%r11 + 424b06: 0f 86 18 05 00 00 jbe 425024 + 424b0c: 48 83 c1 10 add $0x10,%rcx + 424b10: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424b14: e9 57 ff ff ff jmpq 424a70 + 424b19: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 424b20: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 424b24: 66 0f d7 d0 pmovmskb %xmm0,%edx + 424b28: f7 c2 00 f0 00 00 test $0xf000,%edx + 424b2e: 75 20 jne 424b50 + 424b30: 49 83 fb 04 cmp $0x4,%r11 + 424b34: 76 1a jbe 424b50 + 424b36: 66 0f ef c0 pxor %xmm0,%xmm0 + 424b3a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 424b41: e9 34 ff ff ff jmpq 424a7a + 424b46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 424b4d: 00 00 00 + 424b50: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 424b55: 66 0f 73 d8 0c psrldq $0xc,%xmm0 + 424b5a: 66 0f 73 db 0c psrldq $0xc,%xmm3 + 424b5f: e9 7c 04 00 00 jmpq 424fe0 + 424b64: 66 90 xchg %ax,%ax + 424b66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 424b6d: 00 00 00 + 424b70: 66 0f ef c0 pxor %xmm0,%xmm0 + 424b74: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 424b78: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 424b7c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424b80: 66 0f 73 fa 03 pslldq $0x3,%xmm2 + 424b85: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 424b89: 66 0f f8 d0 psubb %xmm0,%xmm2 + 424b8d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 424b92: d3 ea shr %cl,%edx + 424b94: 41 d3 e9 shr %cl,%r9d + 424b97: 44 29 ca sub %r9d,%edx + 424b9a: 0f 85 55 04 00 00 jne 424ff5 + 424ba0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 424ba4: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 + 424ba9: 4d 39 cb cmp %r9,%r11 + 424bac: 0f 82 72 04 00 00 jb 425024 + 424bb2: 4d 85 c9 test %r9,%r9 + 424bb5: 0f 84 69 04 00 00 je 425024 + 424bbb: 4d 89 cb mov %r9,%r11 + 424bbe: 66 0f ef c0 pxor %xmm0,%xmm0 + 424bc2: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 424bc9: 41 b9 0d 00 00 00 mov $0xd,%r9d + 424bcf: 4c 8d 57 0d lea 0xd(%rdi),%r10 + 424bd3: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 424bda: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 424be1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 424be6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 424bed: 00 00 00 + 424bf0: 49 83 c2 10 add $0x10,%r10 + 424bf4: 0f 8f a6 00 00 00 jg 424ca0 + 424bfa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 424bff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424c04: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424c08: 66 0f 73 db 0d psrldq $0xd,%xmm3 + 424c0d: 66 0f 73 fa 03 pslldq $0x3,%xmm2 + 424c12: 66 0f eb d3 por %xmm3,%xmm2 + 424c16: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424c1a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 424c1e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424c22: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424c26: 81 ea ff ff 00 00 sub $0xffff,%edx + 424c2c: 0f 85 be 03 00 00 jne 424ff0 + 424c32: 49 83 eb 10 sub $0x10,%r11 + 424c36: 0f 86 e8 03 00 00 jbe 425024 + 424c3c: 48 83 c1 10 add $0x10,%rcx + 424c40: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424c44: 49 83 c2 10 add $0x10,%r10 + 424c48: 7f 56 jg 424ca0 + 424c4a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 424c4f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424c54: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424c58: 66 0f 73 db 0d psrldq $0xd,%xmm3 + 424c5d: 66 0f 73 fa 03 pslldq $0x3,%xmm2 + 424c62: 66 0f eb d3 por %xmm3,%xmm2 + 424c66: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424c6a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 424c6e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424c72: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424c76: 81 ea ff ff 00 00 sub $0xffff,%edx + 424c7c: 0f 85 6e 03 00 00 jne 424ff0 + 424c82: 49 83 eb 10 sub $0x10,%r11 + 424c86: 0f 86 98 03 00 00 jbe 425024 + 424c8c: 48 83 c1 10 add $0x10,%rcx + 424c90: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424c94: e9 57 ff ff ff jmpq 424bf0 + 424c99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 424ca0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 424ca4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 424ca8: f7 c2 00 e0 00 00 test $0xe000,%edx + 424cae: 75 20 jne 424cd0 + 424cb0: 49 83 fb 03 cmp $0x3,%r11 + 424cb4: 76 1a jbe 424cd0 + 424cb6: 66 0f ef c0 pxor %xmm0,%xmm0 + 424cba: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 424cc1: e9 34 ff ff ff jmpq 424bfa + 424cc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 424ccd: 00 00 00 + 424cd0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 424cd5: 66 0f 73 d8 0d psrldq $0xd,%xmm0 + 424cda: 66 0f 73 db 0d psrldq $0xd,%xmm3 + 424cdf: e9 fc 02 00 00 jmpq 424fe0 + 424ce4: 66 90 xchg %ax,%ax + 424ce6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 424ced: 00 00 00 + 424cf0: 66 0f ef c0 pxor %xmm0,%xmm0 + 424cf4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 424cf8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 424cfc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424d00: 66 0f 73 fa 02 pslldq $0x2,%xmm2 + 424d05: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 424d09: 66 0f f8 d0 psubb %xmm0,%xmm2 + 424d0d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 424d12: d3 ea shr %cl,%edx + 424d14: 41 d3 e9 shr %cl,%r9d + 424d17: 44 29 ca sub %r9d,%edx + 424d1a: 0f 85 d5 02 00 00 jne 424ff5 + 424d20: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 424d24: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 + 424d29: 4d 39 cb cmp %r9,%r11 + 424d2c: 0f 82 f2 02 00 00 jb 425024 + 424d32: 4d 85 c9 test %r9,%r9 + 424d35: 0f 84 e9 02 00 00 je 425024 + 424d3b: 4d 89 cb mov %r9,%r11 + 424d3e: 66 0f ef c0 pxor %xmm0,%xmm0 + 424d42: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 424d49: 41 b9 0e 00 00 00 mov $0xe,%r9d + 424d4f: 4c 8d 57 0e lea 0xe(%rdi),%r10 + 424d53: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 424d5a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 424d61: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 424d66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 424d6d: 00 00 00 + 424d70: 49 83 c2 10 add $0x10,%r10 + 424d74: 0f 8f a6 00 00 00 jg 424e20 + 424d7a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 424d7f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424d84: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424d88: 66 0f 73 db 0e psrldq $0xe,%xmm3 + 424d8d: 66 0f 73 fa 02 pslldq $0x2,%xmm2 + 424d92: 66 0f eb d3 por %xmm3,%xmm2 + 424d96: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424d9a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 424d9e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424da2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424da6: 81 ea ff ff 00 00 sub $0xffff,%edx + 424dac: 0f 85 3e 02 00 00 jne 424ff0 + 424db2: 49 83 eb 10 sub $0x10,%r11 + 424db6: 0f 86 68 02 00 00 jbe 425024 + 424dbc: 48 83 c1 10 add $0x10,%rcx + 424dc0: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424dc4: 49 83 c2 10 add $0x10,%r10 + 424dc8: 7f 56 jg 424e20 + 424dca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 424dcf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424dd4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424dd8: 66 0f 73 db 0e psrldq $0xe,%xmm3 + 424ddd: 66 0f 73 fa 02 pslldq $0x2,%xmm2 + 424de2: 66 0f eb d3 por %xmm3,%xmm2 + 424de6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424dea: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 424dee: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424df2: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424df6: 81 ea ff ff 00 00 sub $0xffff,%edx + 424dfc: 0f 85 ee 01 00 00 jne 424ff0 + 424e02: 49 83 eb 10 sub $0x10,%r11 + 424e06: 0f 86 18 02 00 00 jbe 425024 + 424e0c: 48 83 c1 10 add $0x10,%rcx + 424e10: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424e14: e9 57 ff ff ff jmpq 424d70 + 424e19: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 424e20: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 424e24: 66 0f d7 d0 pmovmskb %xmm0,%edx + 424e28: f7 c2 00 c0 00 00 test $0xc000,%edx + 424e2e: 75 20 jne 424e50 + 424e30: 49 83 fb 02 cmp $0x2,%r11 + 424e34: 76 1a jbe 424e50 + 424e36: 66 0f ef c0 pxor %xmm0,%xmm0 + 424e3a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 424e41: e9 34 ff ff ff jmpq 424d7a + 424e46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 424e4d: 00 00 00 + 424e50: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 424e55: 66 0f 73 d8 0e psrldq $0xe,%xmm0 + 424e5a: 66 0f 73 db 0e psrldq $0xe,%xmm3 + 424e5f: e9 7c 01 00 00 jmpq 424fe0 + 424e64: 66 90 xchg %ax,%ax + 424e66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 424e6d: 00 00 00 + 424e70: 66 0f ef c0 pxor %xmm0,%xmm0 + 424e74: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 424e78: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 424e7c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424e80: 66 0f 73 fa 01 pslldq $0x1,%xmm2 + 424e85: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 424e89: 66 0f f8 d0 psubb %xmm0,%xmm2 + 424e8d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 424e92: d3 ea shr %cl,%edx + 424e94: 41 d3 e9 shr %cl,%r9d + 424e97: 44 29 ca sub %r9d,%edx + 424e9a: 0f 85 55 01 00 00 jne 424ff5 + 424ea0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 424ea4: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 + 424ea9: 4d 39 cb cmp %r9,%r11 + 424eac: 0f 82 72 01 00 00 jb 425024 + 424eb2: 4d 85 c9 test %r9,%r9 + 424eb5: 0f 84 69 01 00 00 je 425024 + 424ebb: 4d 89 cb mov %r9,%r11 + 424ebe: 66 0f ef c0 pxor %xmm0,%xmm0 + 424ec2: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 424ec9: 41 b9 0f 00 00 00 mov $0xf,%r9d + 424ecf: 4c 8d 57 0f lea 0xf(%rdi),%r10 + 424ed3: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 424eda: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 424ee1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 424ee6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 424eed: 00 00 00 + 424ef0: 49 83 c2 10 add $0x10,%r10 + 424ef4: 0f 8f a6 00 00 00 jg 424fa0 + 424efa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 424eff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424f04: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424f08: 66 0f 73 db 0f psrldq $0xf,%xmm3 + 424f0d: 66 0f 73 fa 01 pslldq $0x1,%xmm2 + 424f12: 66 0f eb d3 por %xmm3,%xmm2 + 424f16: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424f1a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 424f1e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424f22: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424f26: 81 ea ff ff 00 00 sub $0xffff,%edx + 424f2c: 0f 85 be 00 00 00 jne 424ff0 + 424f32: 49 83 eb 10 sub $0x10,%r11 + 424f36: 0f 86 e8 00 00 00 jbe 425024 + 424f3c: 48 83 c1 10 add $0x10,%rcx + 424f40: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424f44: 49 83 c2 10 add $0x10,%r10 + 424f48: 7f 56 jg 424fa0 + 424f4a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 424f4f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 424f54: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 424f58: 66 0f 73 db 0f psrldq $0xf,%xmm3 + 424f5d: 66 0f 73 fa 01 pslldq $0x1,%xmm2 + 424f62: 66 0f eb d3 por %xmm3,%xmm2 + 424f66: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 424f6a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 424f6e: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424f72: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424f76: 81 ea ff ff 00 00 sub $0xffff,%edx + 424f7c: 75 72 jne 424ff0 + 424f7e: 49 83 eb 10 sub $0x10,%r11 + 424f82: 0f 86 9c 00 00 00 jbe 425024 + 424f88: 48 83 c1 10 add $0x10,%rcx + 424f8c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 424f90: e9 5b ff ff ff jmpq 424ef0 + 424f95: 90 nop + 424f96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 424f9d: 00 00 00 + 424fa0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 424fa4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 424fa8: f7 c2 00 80 00 00 test $0x8000,%edx + 424fae: 75 20 jne 424fd0 + 424fb0: 49 83 fb 01 cmp $0x1,%r11 + 424fb4: 76 1a jbe 424fd0 + 424fb6: 66 0f ef c0 pxor %xmm0,%xmm0 + 424fba: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 424fc1: e9 34 ff ff ff jmpq 424efa + 424fc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 424fcd: 00 00 00 + 424fd0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 424fd5: 66 0f 73 db 0f psrldq $0xf,%xmm3 + 424fda: 66 0f 73 d8 0f psrldq $0xf,%xmm0 + 424fdf: 90 nop + 424fe0: 66 0f 74 cb pcmpeqb %xmm3,%xmm1 + 424fe4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 424fe8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 424fec: f7 d2 not %edx + 424fee: 66 90 xchg %ax,%ax + 424ff0: 49 8d 44 09 f0 lea -0x10(%r9,%rcx,1),%rax + 424ff5: 48 8d 3c 07 lea (%rdi,%rax,1),%rdi + 424ff9: 48 8d 34 0e lea (%rsi,%rcx,1),%rsi + 424ffd: 45 85 c0 test %r8d,%r8d + 425000: 74 0e je 425010 + 425002: 48 87 f7 xchg %rsi,%rdi + 425005: 90 nop + 425006: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42500d: 00 00 00 + 425010: 48 0f bc d2 bsf %rdx,%rdx + 425014: 49 29 d3 sub %rdx,%r11 + 425017: 76 0b jbe 425024 + 425019: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx + 42501d: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax + 425021: 29 c8 sub %ecx,%eax + 425023: c3 retq + 425024: 31 c0 xor %eax,%eax + 425026: c3 retq + 425027: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42502e: 00 00 + 425030: 0f b6 0e movzbl (%rsi),%ecx + 425033: 0f b6 07 movzbl (%rdi),%eax + 425036: 29 c8 sub %ecx,%eax + 425038: c3 retq + 425039: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +0000000000425040 : + 425040: 41 57 push %r15 + 425042: 41 56 push %r14 + 425044: 41 55 push %r13 + 425046: 41 54 push %r12 + 425048: 49 89 fd mov %rdi,%r13 + 42504b: 55 push %rbp + 42504c: 53 push %rbx + 42504d: 48 89 d5 mov %rdx,%rbp + 425050: 48 89 f3 mov %rsi,%rbx + 425053: 49 89 cc mov %rcx,%r12 + 425056: bf 01 00 00 00 mov $0x1,%edi + 42505b: 48 81 ec 58 08 00 00 sub $0x858,%rsp + 425062: ba 01 00 00 00 mov $0x1,%edx + 425067: 31 c9 xor %ecx,%ecx + 425069: 48 c7 c6 ff ff ff ff mov $0xffffffffffffffff,%rsi + 425070: 48 8d 04 0a lea (%rdx,%rcx,1),%rax + 425074: 49 39 c4 cmp %rax,%r12 + 425077: 76 2c jbe 4250a5 + 425079: 4c 8d 44 35 00 lea 0x0(%rbp,%rsi,1),%r8 + 42507e: 45 0f b6 14 10 movzbl (%r8,%rdx,1),%r10d + 425083: 44 38 54 05 00 cmp %r10b,0x0(%rbp,%rax,1) + 425088: 0f 83 8a 02 00 00 jae 425318 + 42508e: 48 89 c1 mov %rax,%rcx + 425091: ba 01 00 00 00 mov $0x1,%edx + 425096: 48 89 c7 mov %rax,%rdi + 425099: 48 8d 04 0a lea (%rdx,%rcx,1),%rax + 42509d: 48 29 f7 sub %rsi,%rdi + 4250a0: 49 39 c4 cmp %rax,%r12 + 4250a3: 77 d4 ja 425079 + 4250a5: 48 c7 44 24 08 01 00 movq $0x1,0x8(%rsp) + 4250ac: 00 00 + 4250ae: ba 01 00 00 00 mov $0x1,%edx + 4250b3: 31 c9 xor %ecx,%ecx + 4250b5: 49 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%r8 + 4250bc: 0f 1f 40 00 nopl 0x0(%rax) + 4250c0: 48 8d 04 0a lea (%rdx,%rcx,1),%rax + 4250c4: 49 39 c4 cmp %rax,%r12 + 4250c7: 76 31 jbe 4250fa + 4250c9: 4e 8d 4c 05 00 lea 0x0(%rbp,%r8,1),%r9 + 4250ce: 45 0f b6 1c 11 movzbl (%r9,%rdx,1),%r11d + 4250d3: 44 38 5c 05 00 cmp %r11b,0x0(%rbp,%rax,1) + 4250d8: 0f 86 52 02 00 00 jbe 425330 + 4250de: 48 89 c1 mov %rax,%rcx + 4250e1: ba 01 00 00 00 mov $0x1,%edx + 4250e6: 4c 29 c1 sub %r8,%rcx + 4250e9: 48 89 4c 24 08 mov %rcx,0x8(%rsp) + 4250ee: 48 89 c1 mov %rax,%rcx + 4250f1: 48 8d 04 0a lea (%rdx,%rcx,1),%rax + 4250f5: 49 39 c4 cmp %rax,%r12 + 4250f8: 77 cf ja 4250c9 + 4250fa: 49 8d 40 01 lea 0x1(%r8),%rax + 4250fe: 48 83 c6 01 add $0x1,%rsi + 425102: 48 39 f0 cmp %rsi,%rax + 425105: 48 89 44 24 10 mov %rax,0x10(%rsp) + 42510a: 73 0a jae 425116 + 42510c: 48 89 7c 24 08 mov %rdi,0x8(%rsp) + 425111: 48 89 74 24 10 mov %rsi,0x10(%rsp) + 425116: 4c 89 64 24 18 mov %r12,0x18(%rsp) + 42511b: 48 8d 44 24 50 lea 0x50(%rsp),%rax + 425120: 48 8d 94 24 50 08 00 lea 0x850(%rsp),%rdx + 425127: 00 + 425128: f3 0f 7e 44 24 18 movq 0x18(%rsp),%xmm0 + 42512e: 66 0f 6c c0 punpcklqdq %xmm0,%xmm0 + 425132: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 425138: 0f 29 00 movaps %xmm0,(%rax) + 42513b: 48 83 c0 10 add $0x10,%rax + 42513f: 48 39 d0 cmp %rdx,%rax + 425142: 75 f4 jne 425138 + 425144: 4d 85 e4 test %r12,%r12 + 425147: 49 8d 44 24 ff lea -0x1(%r12),%rax + 42514c: 48 89 ea mov %rbp,%rdx + 42514f: 74 1d je 42516e + 425151: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 425158: 0f b6 0a movzbl (%rdx),%ecx + 42515b: 48 83 c2 01 add $0x1,%rdx + 42515f: 48 89 44 cc 50 mov %rax,0x50(%rsp,%rcx,8) + 425164: 48 83 e8 01 sub $0x1,%rax + 425168: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 42516c: 75 ea jne 425158 + 42516e: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 425173: 48 8b 54 24 10 mov 0x10(%rsp),%rdx + 425178: 48 89 ef mov %rbp,%rdi + 42517b: 48 8d 74 05 00 lea 0x0(%rbp,%rax,1),%rsi + 425180: e8 ab b1 fd ff callq 400330 <__rela_iplt_end+0x68> + 425185: 85 c0 test %eax,%eax + 425187: 0f 85 0b 02 00 00 jne 425398 + 42518d: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx + 425192: 4d 8d 7c 24 ff lea -0x1(%r12),%r15 + 425197: b8 01 00 00 00 mov $0x1,%eax + 42519c: 45 31 c0 xor %r8d,%r8d + 42519f: 48 89 6c 24 20 mov %rbp,0x20(%rsp) + 4251a4: 45 31 f6 xor %r14d,%r14d + 4251a7: 4c 89 64 24 18 mov %r12,0x18(%rsp) + 4251ac: 48 8d 71 ff lea -0x1(%rcx),%rsi + 4251b0: 48 89 cf mov %rcx,%rdi + 4251b3: 48 29 c8 sub %rcx,%rax + 4251b6: 48 f7 df neg %rdi + 4251b9: 48 89 44 24 40 mov %rax,0x40(%rsp) + 4251be: 4c 89 e0 mov %r12,%rax + 4251c1: 48 89 74 24 28 mov %rsi,0x28(%rsp) + 4251c6: 48 01 ee add %rbp,%rsi + 4251c9: 48 89 7c 24 48 mov %rdi,0x48(%rsp) + 4251ce: 49 89 f1 mov %rsi,%r9 + 4251d1: 48 89 74 24 38 mov %rsi,0x38(%rsp) + 4251d6: 4c 89 e6 mov %r12,%rsi + 4251d9: 48 2b 74 24 08 sub 0x8(%rsp),%rsi + 4251de: 49 01 f9 add %rdi,%r9 + 4251e1: 4c 89 fd mov %r15,%rbp + 4251e4: 48 89 df mov %rbx,%rdi + 4251e7: 4d 89 c7 mov %r8,%r15 + 4251ea: 4c 89 cb mov %r9,%rbx + 4251ed: 48 89 74 24 30 mov %rsi,0x30(%rsp) + 4251f2: eb 22 jmp 425216 + 4251f4: 0f 1f 40 00 nopl 0x0(%rax) + 4251f8: 4d 85 f6 test %r14,%r14 + 4251fb: 74 0b je 425208 + 4251fd: 48 3b 44 24 08 cmp 0x8(%rsp),%rax + 425202: 48 0f 42 44 24 30 cmovb 0x30(%rsp),%rax + 425208: 49 01 c7 add %rax,%r15 + 42520b: 45 31 f6 xor %r14d,%r14d + 42520e: 48 8b 44 24 18 mov 0x18(%rsp),%rax + 425213: 4c 89 e7 mov %r12,%rdi + 425216: 4d 8d 24 07 lea (%r15,%rax,1),%r12 + 42521a: 31 f6 xor %esi,%esi + 42521c: 4c 89 e2 mov %r12,%rdx + 42521f: 48 29 fa sub %rdi,%rdx + 425222: 4c 01 ef add %r13,%rdi + 425225: e8 16 09 00 00 callq 425b40 <__memchr> + 42522a: 4d 85 e4 test %r12,%r12 + 42522d: 0f 84 d7 02 00 00 je 42550a + 425233: 48 85 c0 test %rax,%rax + 425236: 0f 85 ce 02 00 00 jne 42550a + 42523c: 43 0f b6 44 25 ff movzbl -0x1(%r13,%r12,1),%eax + 425242: 48 8b 44 c4 50 mov 0x50(%rsp,%rax,8),%rax + 425247: 48 85 c0 test %rax,%rax + 42524a: 75 ac jne 4251f8 + 42524c: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 425251: 48 8b 74 24 20 mov 0x20(%rsp),%rsi + 425256: 49 39 c6 cmp %rax,%r14 + 425259: 49 0f 43 c6 cmovae %r14,%rax + 42525d: 48 8d 14 06 lea (%rsi,%rax,1),%rdx + 425261: 49 8d 34 07 lea (%r15,%rax,1),%rsi + 425265: 48 39 e8 cmp %rbp,%rax + 425268: 49 8d 7c 35 00 lea 0x0(%r13,%rsi,1),%rdi + 42526d: 73 37 jae 4252a6 + 42526f: 0f b6 32 movzbl (%rdx),%esi + 425272: 40 38 37 cmp %sil,(%rdi) + 425275: 0f 85 d5 00 00 00 jne 425350 + 42527b: 48 89 c6 mov %rax,%rsi + 42527e: 48 f7 de neg %rsi + 425281: 48 01 f2 add %rsi,%rdx + 425284: 48 01 fe add %rdi,%rsi + 425287: eb 14 jmp 42529d + 425289: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 425290: 0f b6 0c 06 movzbl (%rsi,%rax,1),%ecx + 425294: 38 0c 02 cmp %cl,(%rdx,%rax,1) + 425297: 0f 85 b3 00 00 00 jne 425350 + 42529d: 48 83 c0 01 add $0x1,%rax + 4252a1: 48 39 e8 cmp %rbp,%rax + 4252a4: 72 ea jb 425290 + 4252a6: 48 8b 44 24 28 mov 0x28(%rsp),%rax + 4252ab: 49 8d 34 07 lea (%r15,%rax,1),%rsi + 4252af: 4c 01 ee add %r13,%rsi + 4252b2: 4c 3b 74 24 10 cmp 0x10(%rsp),%r14 + 4252b7: 0f 83 73 02 00 00 jae 425530 + 4252bd: 48 8b 44 24 38 mov 0x38(%rsp),%rax + 4252c2: 0f b6 00 movzbl (%rax),%eax + 4252c5: 38 06 cmp %al,(%rsi) + 4252c7: 0f 85 63 02 00 00 jne 425530 + 4252cd: 48 8b 44 24 28 mov 0x28(%rsp),%rax + 4252d2: 48 03 74 24 48 add 0x48(%rsp),%rsi + 4252d7: eb 18 jmp 4252f1 + 4252d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4252e0: 48 8d 50 ff lea -0x1(%rax),%rdx + 4252e4: 0f b6 4c 32 01 movzbl 0x1(%rdx,%rsi,1),%ecx + 4252e9: 38 0c 03 cmp %cl,(%rbx,%rax,1) + 4252ec: 75 08 jne 4252f6 + 4252ee: 48 89 d0 mov %rdx,%rax + 4252f1: 49 39 c6 cmp %rax,%r14 + 4252f4: 75 ea jne 4252e0 + 4252f6: 49 83 c6 01 add $0x1,%r14 + 4252fa: 49 39 c6 cmp %rax,%r14 + 4252fd: 0f 87 37 02 00 00 ja 42553a + 425303: 4c 03 7c 24 08 add 0x8(%rsp),%r15 + 425308: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 + 42530d: e9 fc fe ff ff jmpq 42520e + 425312: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 425318: 74 4e je 425368 + 42531a: 48 89 ce mov %rcx,%rsi + 42531d: bf 01 00 00 00 mov $0x1,%edi + 425322: 48 83 c1 01 add $0x1,%rcx + 425326: ba 01 00 00 00 mov $0x1,%edx + 42532b: e9 40 fd ff ff jmpq 425070 + 425330: 74 4e je 425380 + 425332: 49 89 c8 mov %rcx,%r8 + 425335: 48 c7 44 24 08 01 00 movq $0x1,0x8(%rsp) + 42533c: 00 00 + 42533e: 48 83 c1 01 add $0x1,%rcx + 425342: ba 01 00 00 00 mov $0x1,%edx + 425347: e9 74 fd ff ff jmpq 4250c0 + 42534c: 0f 1f 40 00 nopl 0x0(%rax) + 425350: 48 8b 7c 24 40 mov 0x40(%rsp),%rdi + 425355: 45 31 f6 xor %r14d,%r14d + 425358: 4e 8d 04 3f lea (%rdi,%r15,1),%r8 + 42535c: 4e 8d 3c 00 lea (%rax,%r8,1),%r15 + 425360: e9 a9 fe ff ff jmpq 42520e + 425365: 0f 1f 00 nopl (%rax) + 425368: 48 39 fa cmp %rdi,%rdx + 42536b: 0f 84 af 01 00 00 je 425520 + 425371: 48 83 c2 01 add $0x1,%rdx + 425375: e9 f6 fc ff ff jmpq 425070 + 42537a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 425380: 48 3b 54 24 08 cmp 0x8(%rsp),%rdx + 425385: 0f 84 83 01 00 00 je 42550e + 42538b: 48 83 c2 01 add $0x1,%rdx + 42538f: e9 2c fd ff ff jmpq 4250c0 + 425394: 0f 1f 40 00 nopl 0x0(%rax) + 425398: 48 8b 74 24 10 mov 0x10(%rsp),%rsi + 42539d: 4c 89 e0 mov %r12,%rax + 4253a0: 41 bb 01 00 00 00 mov $0x1,%r11d + 4253a6: 49 8d 4c 24 ff lea -0x1(%r12),%rcx + 4253ab: 4c 89 64 24 08 mov %r12,0x8(%rsp) + 4253b0: 48 29 f0 sub %rsi,%rax + 4253b3: 48 39 f0 cmp %rsi,%rax + 4253b6: 48 0f 42 c6 cmovb %rsi,%rax + 4253ba: 49 29 f3 sub %rsi,%r11 + 4253bd: 45 31 ff xor %r15d,%r15d + 4253c0: 48 83 c0 01 add $0x1,%rax + 4253c4: 48 89 44 24 38 mov %rax,0x38(%rsp) + 4253c9: 48 8d 46 ff lea -0x1(%rsi),%rax + 4253cd: 48 89 c7 mov %rax,%rdi + 4253d0: 48 89 44 24 30 mov %rax,0x30(%rsp) + 4253d5: 48 8d 44 35 00 lea 0x0(%rbp,%rsi,1),%rax + 4253da: 48 f7 de neg %rsi + 4253dd: 48 01 fd add %rdi,%rbp + 4253e0: 48 89 df mov %rbx,%rdi + 4253e3: 49 89 c6 mov %rax,%r14 + 4253e6: 48 89 44 24 18 mov %rax,0x18(%rsp) + 4253eb: 4c 89 e8 mov %r13,%rax + 4253ee: 49 01 f6 add %rsi,%r14 + 4253f1: 4d 89 fd mov %r15,%r13 + 4253f4: 48 89 74 24 20 mov %rsi,0x20(%rsp) + 4253f9: 4c 89 74 24 28 mov %r14,0x28(%rsp) + 4253fe: 48 89 cb mov %rcx,%rbx + 425401: 49 89 ec mov %rbp,%r12 + 425404: 4d 89 de mov %r11,%r14 + 425407: 49 89 c7 mov %rax,%r15 + 42540a: eb 0a jmp 425416 + 42540c: 0f 1f 40 00 nopl 0x0(%rax) + 425410: 49 01 c5 add %rax,%r13 + 425413: 48 89 ef mov %rbp,%rdi + 425416: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 42541b: 31 f6 xor %esi,%esi + 42541d: 49 8d 6c 05 00 lea 0x0(%r13,%rax,1),%rbp + 425422: 48 89 ea mov %rbp,%rdx + 425425: 48 29 fa sub %rdi,%rdx + 425428: 4c 01 ff add %r15,%rdi + 42542b: e8 10 07 00 00 callq 425b40 <__memchr> + 425430: 48 85 c0 test %rax,%rax + 425433: 0f 85 d1 00 00 00 jne 42550a + 425439: 48 85 ed test %rbp,%rbp + 42543c: 0f 84 c8 00 00 00 je 42550a + 425442: 41 0f b6 44 2f ff movzbl -0x1(%r15,%rbp,1),%eax + 425448: 48 8b 44 c4 50 mov 0x50(%rsp,%rax,8),%rax + 42544d: 48 85 c0 test %rax,%rax + 425450: 75 be jne 425410 + 425452: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 425457: 49 8d 54 05 00 lea 0x0(%r13,%rax,1),%rdx + 42545c: 4c 01 fa add %r15,%rdx + 42545f: 48 39 d8 cmp %rbx,%rax + 425462: 73 2f jae 425493 + 425464: 48 8b 74 24 18 mov 0x18(%rsp),%rsi + 425469: 0f b6 36 movzbl (%rsi),%esi + 42546c: 40 38 32 cmp %sil,(%rdx) + 42546f: 75 7f jne 4254f0 + 425471: 48 03 54 24 20 add 0x20(%rsp),%rdx + 425476: 48 8b 4c 24 28 mov 0x28(%rsp),%rcx + 42547b: eb 0d jmp 42548a + 42547d: 0f 1f 00 nopl (%rax) + 425480: 0f b6 3c 02 movzbl (%rdx,%rax,1),%edi + 425484: 40 38 3c 01 cmp %dil,(%rcx,%rax,1) + 425488: 75 66 jne 4254f0 + 42548a: 48 83 c0 01 add $0x1,%rax + 42548e: 48 39 d8 cmp %rbx,%rax + 425491: 72 ed jb 425480 + 425493: 48 8b 44 24 30 mov 0x30(%rsp),%rax + 425498: 49 8d 74 05 00 lea 0x0(%r13,%rax,1),%rsi + 42549d: 4c 01 fe add %r15,%rsi + 4254a0: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 4254a4: 74 26 je 4254cc + 4254a6: 41 0f b6 04 24 movzbl (%r12),%eax + 4254ab: 38 06 cmp %al,(%rsi) + 4254ad: 75 51 jne 425500 + 4254af: 31 c0 xor %eax,%eax + 4254b1: eb 14 jmp 4254c7 + 4254b3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4254b8: 41 0f b6 54 04 ff movzbl -0x1(%r12,%rax,1),%edx + 4254be: 48 83 e8 01 sub $0x1,%rax + 4254c2: 3a 14 06 cmp (%rsi,%rax,1),%dl + 4254c5: 75 39 jne 425500 + 4254c7: 49 39 c6 cmp %rax,%r14 + 4254ca: 75 ec jne 4254b8 + 4254cc: 4c 89 f8 mov %r15,%rax + 4254cf: 4d 89 ef mov %r13,%r15 + 4254d2: 4a 8d 04 38 lea (%rax,%r15,1),%rax + 4254d6: 48 81 c4 58 08 00 00 add $0x858,%rsp + 4254dd: 5b pop %rbx + 4254de: 5d pop %rbp + 4254df: 41 5c pop %r12 + 4254e1: 41 5d pop %r13 + 4254e3: 41 5e pop %r14 + 4254e5: 41 5f pop %r15 + 4254e7: c3 retq + 4254e8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4254ef: 00 + 4254f0: 4f 8d 04 2e lea (%r14,%r13,1),%r8 + 4254f4: 4e 8d 2c 00 lea (%rax,%r8,1),%r13 + 4254f8: e9 16 ff ff ff jmpq 425413 + 4254fd: 0f 1f 00 nopl (%rax) + 425500: 4c 03 6c 24 38 add 0x38(%rsp),%r13 + 425505: e9 09 ff ff ff jmpq 425413 + 42550a: 31 c0 xor %eax,%eax + 42550c: eb c8 jmp 4254d6 + 42550e: 48 89 54 24 08 mov %rdx,0x8(%rsp) + 425513: 48 89 c1 mov %rax,%rcx + 425516: ba 01 00 00 00 mov $0x1,%edx + 42551b: e9 a0 fb ff ff jmpq 4250c0 + 425520: 48 89 d7 mov %rdx,%rdi + 425523: 48 89 c1 mov %rax,%rcx + 425526: ba 01 00 00 00 mov $0x1,%edx + 42552b: e9 40 fb ff ff jmpq 425070 + 425530: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 425535: e9 bc fd ff ff jmpq 4252f6 + 42553a: 4b 8d 44 3d 00 lea 0x0(%r13,%r15,1),%rax + 42553f: eb 95 jmp 4254d6 + 425541: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 425546: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42554d: 00 00 00 + +0000000000425550 <__strstr_sse2>: + 425550: 41 57 push %r15 + 425552: 41 56 push %r14 + 425554: 41 55 push %r13 + 425556: 41 54 push %r12 + 425558: 55 push %rbp + 425559: 53 push %rbx + 42555a: 48 83 ec 58 sub $0x58,%rsp + 42555e: 0f b6 17 movzbl (%rdi),%edx + 425561: 84 d2 test %dl,%dl + 425563: 0f 84 93 05 00 00 je 425afc <__strstr_sse2+0x5ac> + 425569: 0f b6 0e movzbl (%rsi),%ecx + 42556c: 84 c9 test %cl,%cl + 42556e: 0f 84 bc 00 00 00 je 425630 <__strstr_sse2+0xe0> + 425574: 48 89 f3 mov %rsi,%rbx + 425577: 49 89 f8 mov %rdi,%r8 + 42557a: 41 b9 01 00 00 00 mov $0x1,%r9d + 425580: eb 0d jmp 42558f <__strstr_sse2+0x3f> + 425582: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 425588: 0f b6 0b movzbl (%rbx),%ecx + 42558b: 84 c9 test %cl,%cl + 42558d: 74 1d je 4255ac <__strstr_sse2+0x5c> + 42558f: 49 83 c0 01 add $0x1,%r8 + 425593: 48 83 c3 01 add $0x1,%rbx + 425597: 38 ca cmp %cl,%dl + 425599: 41 0f b6 10 movzbl (%r8),%edx + 42559d: 0f 94 c0 sete %al + 4255a0: 41 21 c1 and %eax,%r9d + 4255a3: 84 d2 test %dl,%dl + 4255a5: 75 e1 jne 425588 <__strstr_sse2+0x38> + 4255a7: 80 3b 00 cmpb $0x0,(%rbx) + 4255aa: 75 6c jne 425618 <__strstr_sse2+0xc8> + 4255ac: 45 84 c9 test %r9b,%r9b + 4255af: 75 7f jne 425630 <__strstr_sse2+0xe0> + 4255b1: 49 89 dc mov %rbx,%r12 + 4255b4: 48 89 fd mov %rdi,%rbp + 4255b7: 48 8d 7f 01 lea 0x1(%rdi),%rdi + 4255bb: 49 29 f4 sub %rsi,%r12 + 4255be: 0f be 36 movsbl (%rsi),%esi + 4255c1: e8 ba ad fd ff callq 400380 <__rela_iplt_end+0xb8> + 4255c6: 48 85 c0 test %rax,%rax + 4255c9: 49 89 c7 mov %rax,%r15 + 4255cc: 74 4a je 425618 <__strstr_sse2+0xc8> + 4255ce: 49 83 fc 01 cmp $0x1,%r12 + 4255d2: 74 46 je 42561a <__strstr_sse2+0xca> + 4255d4: 4a 8d 7c 25 00 lea 0x0(%rbp,%r12,1),%rdi + 4255d9: 4c 29 e3 sub %r12,%rbx + 4255dc: 49 89 f8 mov %rdi,%r8 + 4255df: 49 29 c0 sub %rax,%r8 + 4255e2: 48 39 f8 cmp %rdi,%rax + 4255e5: b8 01 00 00 00 mov $0x1,%eax + 4255ea: 4c 0f 47 c0 cmova %rax,%r8 + 4255ee: 49 83 fc 1f cmp $0x1f,%r12 + 4255f2: 76 54 jbe 425648 <__strstr_sse2+0xf8> + 4255f4: 48 83 c4 58 add $0x58,%rsp + 4255f8: 4c 89 e1 mov %r12,%rcx + 4255fb: 48 89 da mov %rbx,%rdx + 4255fe: 4c 89 ff mov %r15,%rdi + 425601: 4c 89 c6 mov %r8,%rsi + 425604: 5b pop %rbx + 425605: 5d pop %rbp + 425606: 41 5c pop %r12 + 425608: 41 5d pop %r13 + 42560a: 41 5e pop %r14 + 42560c: 41 5f pop %r15 + 42560e: e9 2d fa ff ff jmpq 425040 + 425613: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 425618: 31 c0 xor %eax,%eax + 42561a: 48 83 c4 58 add $0x58,%rsp + 42561e: 5b pop %rbx + 42561f: 5d pop %rbp + 425620: 41 5c pop %r12 + 425622: 41 5d pop %r13 + 425624: 41 5e pop %r14 + 425626: 41 5f pop %r15 + 425628: c3 retq + 425629: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 425630: 48 83 c4 58 add $0x58,%rsp + 425634: 48 89 f8 mov %rdi,%rax + 425637: 5b pop %rbx + 425638: 5d pop %rbp + 425639: 41 5c pop %r12 + 42563b: 41 5d pop %r13 + 42563d: 41 5e pop %r14 + 42563f: 41 5f pop %r15 + 425641: c3 retq + 425642: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 425648: 41 be 01 00 00 00 mov $0x1,%r14d + 42564e: ba 01 00 00 00 mov $0x1,%edx + 425653: 31 f6 xor %esi,%esi + 425655: 48 c7 c1 ff ff ff ff mov $0xffffffffffffffff,%rcx + 42565c: 0f 1f 40 00 nopl 0x0(%rax) + 425660: 48 8d 04 32 lea (%rdx,%rsi,1),%rax + 425664: 49 39 c4 cmp %rax,%r12 + 425667: 76 29 jbe 425692 <__strstr_sse2+0x142> + 425669: 48 8d 3c 0b lea (%rbx,%rcx,1),%rdi + 42566d: 0f b6 3c 17 movzbl (%rdi,%rdx,1),%edi + 425671: 40 38 3c 03 cmp %dil,(%rbx,%rax,1) + 425675: 0f 83 f5 01 00 00 jae 425870 <__strstr_sse2+0x320> + 42567b: 48 89 c6 mov %rax,%rsi + 42567e: ba 01 00 00 00 mov $0x1,%edx + 425683: 49 89 c6 mov %rax,%r14 + 425686: 48 8d 04 32 lea (%rdx,%rsi,1),%rax + 42568a: 49 29 ce sub %rcx,%r14 + 42568d: 49 39 c4 cmp %rax,%r12 + 425690: 77 d7 ja 425669 <__strstr_sse2+0x119> + 425692: 41 bb 01 00 00 00 mov $0x1,%r11d + 425698: ba 01 00 00 00 mov $0x1,%edx + 42569d: 31 f6 xor %esi,%esi + 42569f: 48 c7 c7 ff ff ff ff mov $0xffffffffffffffff,%rdi + 4256a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4256ad: 00 00 00 + 4256b0: 48 8d 04 32 lea (%rdx,%rsi,1),%rax + 4256b4: 49 39 c4 cmp %rax,%r12 + 4256b7: 76 2a jbe 4256e3 <__strstr_sse2+0x193> + 4256b9: 4c 8d 0c 3b lea (%rbx,%rdi,1),%r9 + 4256bd: 45 0f b6 14 11 movzbl (%r9,%rdx,1),%r10d + 4256c2: 44 38 14 03 cmp %r10b,(%rbx,%rax,1) + 4256c6: 0f 86 c4 01 00 00 jbe 425890 <__strstr_sse2+0x340> + 4256cc: 48 89 c6 mov %rax,%rsi + 4256cf: ba 01 00 00 00 mov $0x1,%edx + 4256d4: 49 89 c3 mov %rax,%r11 + 4256d7: 48 8d 04 32 lea (%rdx,%rsi,1),%rax + 4256db: 49 29 fb sub %rdi,%r11 + 4256de: 49 39 c4 cmp %rax,%r12 + 4256e1: 77 d6 ja 4256b9 <__strstr_sse2+0x169> + 4256e3: 48 83 c7 01 add $0x1,%rdi + 4256e7: 48 83 c1 01 add $0x1,%rcx + 4256eb: 48 39 cf cmp %rcx,%rdi + 4256ee: 72 06 jb 4256f6 <__strstr_sse2+0x1a6> + 4256f0: 4d 89 de mov %r11,%r14 + 4256f3: 48 89 f9 mov %rdi,%rcx + 4256f6: 4a 8d 34 33 lea (%rbx,%r14,1),%rsi + 4256fa: 48 89 ca mov %rcx,%rdx + 4256fd: 48 89 df mov %rbx,%rdi + 425700: 4c 89 44 24 10 mov %r8,0x10(%rsp) + 425705: 48 89 4c 24 08 mov %rcx,0x8(%rsp) + 42570a: e8 21 ac fd ff callq 400330 <__rela_iplt_end+0x68> + 42570f: 85 c0 test %eax,%eax + 425711: 48 8b 4c 24 08 mov 0x8(%rsp),%rcx + 425716: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 + 42571b: 0f 85 d1 01 00 00 jne 4258f2 <__strstr_sse2+0x3a2> + 425721: 48 8d 41 ff lea -0x1(%rcx),%rax + 425725: 4c 89 e7 mov %r12,%rdi + 425728: 45 31 ed xor %r13d,%r13d + 42572b: 4c 29 f7 sub %r14,%rdi + 42572e: 31 ed xor %ebp,%ebp + 425730: 4c 89 74 24 38 mov %r14,0x38(%rsp) + 425735: 48 89 44 24 18 mov %rax,0x18(%rsp) + 42573a: 48 89 7c 24 30 mov %rdi,0x30(%rsp) + 42573f: 48 01 d8 add %rbx,%rax + 425742: 48 89 cf mov %rcx,%rdi + 425745: 49 89 c2 mov %rax,%r10 + 425748: 48 89 44 24 28 mov %rax,0x28(%rsp) + 42574d: 48 f7 df neg %rdi + 425750: b8 01 00 00 00 mov $0x1,%eax + 425755: 4d 89 ee mov %r13,%r14 + 425758: 49 01 fa add %rdi,%r10 + 42575b: 48 29 c8 sub %rcx,%rax + 42575e: 48 89 7c 24 40 mov %rdi,0x40(%rsp) + 425763: 4d 89 e5 mov %r12,%r13 + 425766: 48 89 44 24 20 mov %rax,0x20(%rsp) + 42576b: 49 89 ec mov %rbp,%r12 + 42576e: 4c 89 c7 mov %r8,%rdi + 425771: 48 89 5c 24 10 mov %rbx,0x10(%rsp) + 425776: 4c 89 d5 mov %r10,%rbp + 425779: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 425780: 4b 8d 5c 25 00 lea 0x0(%r13,%r12,1),%rbx + 425785: 31 f6 xor %esi,%esi + 425787: 48 89 da mov %rbx,%rdx + 42578a: 48 29 fa sub %rdi,%rdx + 42578d: 4c 01 ff add %r15,%rdi + 425790: e8 ab 03 00 00 callq 425b40 <__memchr> + 425795: 48 85 c0 test %rax,%rax + 425798: 0f 85 7a fe ff ff jne 425618 <__strstr_sse2+0xc8> + 42579e: 48 85 db test %rbx,%rbx + 4257a1: 0f 84 71 fe ff ff je 425618 <__strstr_sse2+0xc8> + 4257a7: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 4257ac: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx + 4257b1: 49 39 c6 cmp %rax,%r14 + 4257b4: 49 0f 43 c6 cmovae %r14,%rax + 4257b8: 4a 8d 34 20 lea (%rax,%r12,1),%rsi + 4257bc: 49 39 c5 cmp %rax,%r13 + 4257bf: 48 8d 14 01 lea (%rcx,%rax,1),%rdx + 4257c3: 49 8d 3c 37 lea (%r15,%rsi,1),%rdi + 4257c7: 76 36 jbe 4257ff <__strstr_sse2+0x2af> + 4257c9: 0f b6 0f movzbl (%rdi),%ecx + 4257cc: 38 0a cmp %cl,(%rdx) + 4257ce: 0f 85 dc 00 00 00 jne 4258b0 <__strstr_sse2+0x360> + 4257d4: 48 89 c6 mov %rax,%rsi + 4257d7: 48 f7 de neg %rsi + 4257da: 48 01 f2 add %rsi,%rdx + 4257dd: 48 01 fe add %rdi,%rsi + 4257e0: eb 14 jmp 4257f6 <__strstr_sse2+0x2a6> + 4257e2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4257e8: 0f b6 3c 06 movzbl (%rsi,%rax,1),%edi + 4257ec: 40 38 3c 02 cmp %dil,(%rdx,%rax,1) + 4257f0: 0f 85 ba 00 00 00 jne 4258b0 <__strstr_sse2+0x360> + 4257f6: 48 83 c0 01 add $0x1,%rax + 4257fa: 49 39 c5 cmp %rax,%r13 + 4257fd: 77 e9 ja 4257e8 <__strstr_sse2+0x298> + 4257ff: 48 8b 44 24 18 mov 0x18(%rsp),%rax + 425804: 49 8d 34 04 lea (%r12,%rax,1),%rsi + 425808: 4c 01 fe add %r15,%rsi + 42580b: 4c 3b 74 24 08 cmp 0x8(%rsp),%r14 + 425810: 0f 83 9d 02 00 00 jae 425ab3 <__strstr_sse2+0x563> + 425816: 48 8b 7c 24 28 mov 0x28(%rsp),%rdi + 42581b: 0f b6 0e movzbl (%rsi),%ecx + 42581e: 38 0f cmp %cl,(%rdi) + 425820: 0f 85 8d 02 00 00 jne 425ab3 <__strstr_sse2+0x563> + 425826: 48 03 74 24 40 add 0x40(%rsp),%rsi + 42582b: eb 15 jmp 425842 <__strstr_sse2+0x2f2> + 42582d: 0f 1f 00 nopl (%rax) + 425830: 48 8d 50 ff lea -0x1(%rax),%rdx + 425834: 0f b6 4c 32 01 movzbl 0x1(%rdx,%rsi,1),%ecx + 425839: 38 4c 05 00 cmp %cl,0x0(%rbp,%rax,1) + 42583d: 75 08 jne 425847 <__strstr_sse2+0x2f7> + 42583f: 48 89 d0 mov %rdx,%rax + 425842: 49 39 c6 cmp %rax,%r14 + 425845: 75 e9 jne 425830 <__strstr_sse2+0x2e0> + 425847: 4d 8d 4e 01 lea 0x1(%r14),%r9 + 42584b: 49 39 c1 cmp %rax,%r9 + 42584e: 0f 87 b6 02 00 00 ja 425b0a <__strstr_sse2+0x5ba> + 425854: 4c 03 64 24 38 add 0x38(%rsp),%r12 + 425859: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 + 42585e: 48 89 df mov %rbx,%rdi + 425861: e9 1a ff ff ff jmpq 425780 <__strstr_sse2+0x230> + 425866: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42586d: 00 00 00 + 425870: 74 56 je 4258c8 <__strstr_sse2+0x378> + 425872: 48 89 f1 mov %rsi,%rcx + 425875: 41 be 01 00 00 00 mov $0x1,%r14d + 42587b: 48 83 c6 01 add $0x1,%rsi + 42587f: ba 01 00 00 00 mov $0x1,%edx + 425884: e9 d7 fd ff ff jmpq 425660 <__strstr_sse2+0x110> + 425889: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 425890: 74 4e je 4258e0 <__strstr_sse2+0x390> + 425892: 48 89 f7 mov %rsi,%rdi + 425895: 41 bb 01 00 00 00 mov $0x1,%r11d + 42589b: 48 83 c6 01 add $0x1,%rsi + 42589f: ba 01 00 00 00 mov $0x1,%edx + 4258a4: e9 07 fe ff ff jmpq 4256b0 <__strstr_sse2+0x160> + 4258a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4258b0: 48 8b 4c 24 20 mov 0x20(%rsp),%rcx + 4258b5: 45 31 f6 xor %r14d,%r14d + 4258b8: 4e 8d 1c 21 lea (%rcx,%r12,1),%r11 + 4258bc: 4e 8d 24 18 lea (%rax,%r11,1),%r12 + 4258c0: eb 9c jmp 42585e <__strstr_sse2+0x30e> + 4258c2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4258c8: 4c 39 f2 cmp %r14,%rdx + 4258cb: 0f 84 ae 01 00 00 je 425a7f <__strstr_sse2+0x52f> + 4258d1: 48 83 c2 01 add $0x1,%rdx + 4258d5: e9 86 fd ff ff jmpq 425660 <__strstr_sse2+0x110> + 4258da: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4258e0: 4c 39 da cmp %r11,%rdx + 4258e3: 0f 84 a6 01 00 00 je 425a8f <__strstr_sse2+0x53f> + 4258e9: 48 83 c2 01 add $0x1,%rdx + 4258ed: e9 be fd ff ff jmpq 4256b0 <__strstr_sse2+0x160> + 4258f2: 4c 8d 51 01 lea 0x1(%rcx),%r10 + 4258f6: 49 8d 04 0f lea (%r15,%rcx,1),%rax + 4258fa: 48 8d 2c 0b lea (%rbx,%rcx,1),%rbp + 4258fe: 4d 39 d0 cmp %r10,%r8 + 425901: 48 89 44 24 18 mov %rax,0x18(%rsp) + 425906: 0f 82 b1 01 00 00 jb 425abd <__strstr_sse2+0x56d> + 42590c: 4c 89 e0 mov %r12,%rax + 42590f: 44 0f b6 4d 00 movzbl 0x0(%rbp),%r9d + 425914: 41 be 01 00 00 00 mov $0x1,%r14d + 42591a: 48 29 c8 sub %rcx,%rax + 42591d: 48 89 4c 24 38 mov %rcx,0x38(%rsp) + 425922: 48 8b 54 24 18 mov 0x18(%rsp),%rdx + 425927: 48 39 c8 cmp %rcx,%rax + 42592a: 4c 89 54 24 20 mov %r10,0x20(%rsp) + 42592f: 48 0f 42 c1 cmovb %rcx,%rax + 425933: 49 29 ce sub %rcx,%r14 + 425936: 48 83 c0 01 add $0x1,%rax + 42593a: 48 89 44 24 40 mov %rax,0x40(%rsp) + 42593f: 48 8d 41 ff lea -0x1(%rcx),%rax + 425943: 48 89 c7 mov %rax,%rdi + 425946: 48 89 44 24 48 mov %rax,0x48(%rsp) + 42594b: 4a 8d 04 13 lea (%rbx,%r10,1),%rax + 42594f: 48 01 fb add %rdi,%rbx + 425952: 48 89 cf mov %rcx,%rdi + 425955: 4c 89 f1 mov %r14,%rcx + 425958: 48 f7 df neg %rdi + 42595b: 49 89 c5 mov %rax,%r13 + 42595e: 4d 89 fe mov %r15,%r14 + 425961: 48 89 7c 24 30 mov %rdi,0x30(%rsp) + 425966: 49 01 fd add %rdi,%r13 + 425969: 49 89 df mov %rbx,%r15 + 42596c: 48 89 44 24 28 mov %rax,0x28(%rsp) + 425971: 4c 89 c7 mov %r8,%rdi + 425974: 44 89 cb mov %r9d,%ebx + 425977: eb 12 jmp 42598b <__strstr_sse2+0x43b> + 425979: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 425980: 84 c0 test %al,%al + 425982: 0f 84 90 fc ff ff je 425618 <__strstr_sse2+0xc8> + 425988: 48 89 ea mov %rbp,%rdx + 42598b: 0f b6 02 movzbl (%rdx),%eax + 42598e: 48 8d 6a 01 lea 0x1(%rdx),%rbp + 425992: 38 c3 cmp %al,%bl + 425994: 75 ea jne 425980 <__strstr_sse2+0x430> + 425996: 48 2b 6c 24 18 sub 0x18(%rsp),%rbp + 42599b: 4c 8b 54 24 20 mov 0x20(%rsp),%r10 + 4259a0: 4d 39 d4 cmp %r10,%r12 + 4259a3: 48 8d 45 ff lea -0x1(%rbp),%rax + 4259a7: 76 35 jbe 4259de <__strstr_sse2+0x48e> + 4259a9: 0f b6 72 01 movzbl 0x1(%rdx),%esi + 4259ad: 4c 8d 42 02 lea 0x2(%rdx),%r8 + 4259b1: 48 8b 54 24 28 mov 0x28(%rsp),%rdx + 4259b6: 40 38 32 cmp %sil,(%rdx) + 4259b9: 4c 89 d2 mov %r10,%rdx + 4259bc: 75 67 jne 425a25 <__strstr_sse2+0x4d5> + 4259be: 4c 03 44 24 30 add 0x30(%rsp),%r8 + 4259c3: eb 10 jmp 4259d5 <__strstr_sse2+0x485> + 4259c5: 0f 1f 00 nopl (%rax) + 4259c8: 41 0f b6 74 10 fe movzbl -0x2(%r8,%rdx,1),%esi + 4259ce: 41 38 74 15 ff cmp %sil,-0x1(%r13,%rdx,1) + 4259d3: 75 50 jne 425a25 <__strstr_sse2+0x4d5> + 4259d5: 48 83 c2 01 add $0x1,%rdx + 4259d9: 49 39 d4 cmp %rdx,%r12 + 4259dc: 77 ea ja 4259c8 <__strstr_sse2+0x478> + 4259de: 48 8b 74 24 48 mov 0x48(%rsp),%rsi + 4259e3: 48 8d 2c 30 lea (%rax,%rsi,1),%rbp + 4259e7: 4c 01 f5 add %r14,%rbp + 4259ea: 48 83 fe ff cmp $0xffffffffffffffff,%rsi + 4259ee: 74 2d je 425a1d <__strstr_sse2+0x4cd> + 4259f0: 0f b6 75 00 movzbl 0x0(%rbp),%esi + 4259f4: 31 d2 xor %edx,%edx + 4259f6: 41 3a 37 cmp (%r15),%sil + 4259f9: 74 1d je 425a18 <__strstr_sse2+0x4c8> + 4259fb: e9 9f 00 00 00 jmpq 425a9f <__strstr_sse2+0x54f> + 425a00: 45 0f b6 44 17 ff movzbl -0x1(%r15,%rdx,1),%r8d + 425a06: 48 83 ea 01 sub $0x1,%rdx + 425a0a: 0f b6 74 15 00 movzbl 0x0(%rbp,%rdx,1),%esi + 425a0f: 41 38 f0 cmp %sil,%r8b + 425a12: 0f 85 87 00 00 00 jne 425a9f <__strstr_sse2+0x54f> + 425a18: 48 39 d1 cmp %rdx,%rcx + 425a1b: 75 e3 jne 425a00 <__strstr_sse2+0x4b0> + 425a1d: 4c 01 f0 add %r14,%rax + 425a20: e9 f5 fb ff ff jmpq 42561a <__strstr_sse2+0xca> + 425a25: 40 84 f6 test %sil,%sil + 425a28: 0f 84 ea fb ff ff je 425618 <__strstr_sse2+0xc8> + 425a2e: 48 8d 2c 01 lea (%rcx,%rax,1),%rbp + 425a32: 48 01 d5 add %rdx,%rbp + 425a35: 4d 8d 04 2c lea (%r12,%rbp,1),%r8 + 425a39: 31 f6 xor %esi,%esi + 425a3b: 48 89 4c 24 10 mov %rcx,0x10(%rsp) + 425a40: 4c 89 c2 mov %r8,%rdx + 425a43: 4c 89 44 24 08 mov %r8,0x8(%rsp) + 425a48: 48 29 fa sub %rdi,%rdx + 425a4b: 4c 01 f7 add %r14,%rdi + 425a4e: e8 ed 00 00 00 callq 425b40 <__memchr> + 425a53: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 + 425a58: 4d 85 c0 test %r8,%r8 + 425a5b: 0f 84 b7 fb ff ff je 425618 <__strstr_sse2+0xc8> + 425a61: 48 85 c0 test %rax,%rax + 425a64: 0f 85 ae fb ff ff jne 425618 <__strstr_sse2+0xc8> + 425a6a: 48 03 6c 24 38 add 0x38(%rsp),%rbp + 425a6f: 4c 89 c7 mov %r8,%rdi + 425a72: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx + 425a77: 4c 01 f5 add %r14,%rbp + 425a7a: e9 09 ff ff ff jmpq 425988 <__strstr_sse2+0x438> + 425a7f: 49 89 d6 mov %rdx,%r14 + 425a82: 48 89 c6 mov %rax,%rsi + 425a85: ba 01 00 00 00 mov $0x1,%edx + 425a8a: e9 d1 fb ff ff jmpq 425660 <__strstr_sse2+0x110> + 425a8f: 49 89 d3 mov %rdx,%r11 + 425a92: 48 89 c6 mov %rax,%rsi + 425a95: ba 01 00 00 00 mov $0x1,%edx + 425a9a: e9 11 fc ff ff jmpq 4256b0 <__strstr_sse2+0x160> + 425a9f: 40 84 f6 test %sil,%sil + 425aa2: 0f 84 70 fb ff ff je 425618 <__strstr_sse2+0xc8> + 425aa8: 48 8b 74 24 40 mov 0x40(%rsp),%rsi + 425aad: 48 8d 2c 06 lea (%rsi,%rax,1),%rbp + 425ab1: eb 82 jmp 425a35 <__strstr_sse2+0x4e5> + 425ab3: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 425ab8: e9 8a fd ff ff jmpq 425847 <__strstr_sse2+0x2f7> + 425abd: 48 89 c8 mov %rcx,%rax + 425ac0: 4b 8d 3c 07 lea (%r15,%r8,1),%rdi + 425ac4: 31 f6 xor %esi,%esi + 425ac6: 4c 29 c0 sub %r8,%rax + 425ac9: 4c 89 54 24 10 mov %r10,0x10(%rsp) + 425ace: 48 89 4c 24 08 mov %rcx,0x8(%rsp) + 425ad3: 48 8d 50 01 lea 0x1(%rax),%rdx + 425ad7: e8 64 00 00 00 callq 425b40 <__memchr> + 425adc: 48 89 c2 mov %rax,%rdx + 425adf: 31 c0 xor %eax,%eax + 425ae1: 48 85 d2 test %rdx,%rdx + 425ae4: 0f 85 30 fb ff ff jne 42561a <__strstr_sse2+0xca> + 425aea: 4c 8b 54 24 10 mov 0x10(%rsp),%r10 + 425aef: 48 8b 4c 24 08 mov 0x8(%rsp),%rcx + 425af4: 4d 89 d0 mov %r10,%r8 + 425af7: e9 10 fe ff ff jmpq 42590c <__strstr_sse2+0x3bc> + 425afc: 48 89 f3 mov %rsi,%rbx + 425aff: 41 b9 01 00 00 00 mov $0x1,%r9d + 425b05: e9 9d fa ff ff jmpq 4255a7 <__strstr_sse2+0x57> + 425b0a: 4b 8d 04 27 lea (%r15,%r12,1),%rax + 425b0e: e9 07 fb ff ff jmpq 42561a <__strstr_sse2+0xca> + 425b13: 0f 1f 00 nopl (%rax) + 425b16: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 425b1d: 00 00 00 + +0000000000425b20 <__libc_strstr>: + 425b20: f6 05 99 6b 2a 00 10 testb $0x10,0x2a6b99(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 425b27: ba 50 55 42 00 mov $0x425550,%edx + 425b2c: b8 a0 d4 43 00 mov $0x43d4a0,%eax + 425b31: 48 0f 44 c2 cmove %rdx,%rax + 425b35: c3 retq + 425b36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 425b3d: 00 00 00 + +0000000000425b40 <__memchr>: + 425b40: 66 48 0f 6e ce movq %rsi,%xmm1 + 425b45: 48 89 f9 mov %rdi,%rcx + 425b48: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 + 425b4c: 48 85 d2 test %rdx,%rdx + 425b4f: 0f 84 2b 03 00 00 je 425e80 <__memchr+0x340> + 425b55: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 + 425b59: 48 83 e1 3f and $0x3f,%rcx + 425b5d: 66 0f 70 c9 00 pshufd $0x0,%xmm1,%xmm1 + 425b62: 48 83 f9 30 cmp $0x30,%rcx + 425b66: 77 48 ja 425bb0 <__memchr+0x70> + 425b68: f3 0f 6f 07 movdqu (%rdi),%xmm0 + 425b6c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 425b70: 66 0f d7 c0 pmovmskb %xmm0,%eax + 425b74: 85 c0 test %eax,%eax + 425b76: 0f 85 c4 02 00 00 jne 425e40 <__memchr+0x300> + 425b7c: 48 83 ea 10 sub $0x10,%rdx + 425b80: 0f 86 fa 02 00 00 jbe 425e80 <__memchr+0x340> + 425b86: 48 83 c7 10 add $0x10,%rdi + 425b8a: 48 83 e1 0f and $0xf,%rcx + 425b8e: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 425b92: 48 01 ca add %rcx,%rdx + 425b95: 48 83 ea 40 sub $0x40,%rdx + 425b99: 0f 86 c1 01 00 00 jbe 425d60 <__memchr+0x220> + 425b9f: eb 5f jmp 425c00 <__memchr+0xc0> + 425ba1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 425ba6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 425bad: 00 00 00 + 425bb0: 48 83 e1 0f and $0xf,%rcx + 425bb4: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 425bb8: 66 0f 6f 07 movdqa (%rdi),%xmm0 + 425bbc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 425bc0: 66 0f d7 c0 pmovmskb %xmm0,%eax + 425bc4: d3 f8 sar %cl,%eax + 425bc6: 85 c0 test %eax,%eax + 425bc8: 74 16 je 425be0 <__memchr+0xa0> + 425bca: 0f bc c0 bsf %eax,%eax + 425bcd: 48 29 c2 sub %rax,%rdx + 425bd0: 0f 86 aa 02 00 00 jbe 425e80 <__memchr+0x340> + 425bd6: 48 01 f8 add %rdi,%rax + 425bd9: 48 01 c8 add %rcx,%rax + 425bdc: c3 retq + 425bdd: 0f 1f 00 nopl (%rax) + 425be0: 48 01 ca add %rcx,%rdx + 425be3: 48 83 ea 10 sub $0x10,%rdx + 425be7: 0f 86 93 02 00 00 jbe 425e80 <__memchr+0x340> + 425bed: 48 83 c7 10 add $0x10,%rdi + 425bf1: 48 83 ea 40 sub $0x40,%rdx + 425bf5: 0f 86 65 01 00 00 jbe 425d60 <__memchr+0x220> + 425bfb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 425c00: 66 0f 6f 07 movdqa (%rdi),%xmm0 + 425c04: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 425c08: 66 0f d7 c0 pmovmskb %xmm0,%eax + 425c0c: 85 c0 test %eax,%eax + 425c0e: 0f 85 fc 01 00 00 jne 425e10 <__memchr+0x2d0> + 425c14: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 + 425c19: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 425c1d: 66 0f d7 c2 pmovmskb %xmm2,%eax + 425c21: 85 c0 test %eax,%eax + 425c23: 0f 85 f7 01 00 00 jne 425e20 <__memchr+0x2e0> + 425c29: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 + 425c2e: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 425c32: 66 0f d7 c3 pmovmskb %xmm3,%eax + 425c36: 85 c0 test %eax,%eax + 425c38: 0f 85 f2 01 00 00 jne 425e30 <__memchr+0x2f0> + 425c3e: 66 0f 6f 67 30 movdqa 0x30(%rdi),%xmm4 + 425c43: 66 0f 74 e1 pcmpeqb %xmm1,%xmm4 + 425c47: 48 83 c7 40 add $0x40,%rdi + 425c4b: 66 0f d7 c4 pmovmskb %xmm4,%eax + 425c4f: 85 c0 test %eax,%eax + 425c51: 0f 85 a9 01 00 00 jne 425e00 <__memchr+0x2c0> + 425c57: 48 f7 c7 3f 00 00 00 test $0x3f,%rdi + 425c5e: 74 70 je 425cd0 <__memchr+0x190> + 425c60: 48 83 ea 40 sub $0x40,%rdx + 425c64: 0f 86 f6 00 00 00 jbe 425d60 <__memchr+0x220> + 425c6a: 66 0f 6f 07 movdqa (%rdi),%xmm0 + 425c6e: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 425c72: 66 0f d7 c0 pmovmskb %xmm0,%eax + 425c76: 85 c0 test %eax,%eax + 425c78: 0f 85 92 01 00 00 jne 425e10 <__memchr+0x2d0> + 425c7e: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 + 425c83: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 425c87: 66 0f d7 c2 pmovmskb %xmm2,%eax + 425c8b: 85 c0 test %eax,%eax + 425c8d: 0f 85 8d 01 00 00 jne 425e20 <__memchr+0x2e0> + 425c93: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 + 425c98: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 425c9c: 66 0f d7 c3 pmovmskb %xmm3,%eax + 425ca0: 85 c0 test %eax,%eax + 425ca2: 0f 85 88 01 00 00 jne 425e30 <__memchr+0x2f0> + 425ca8: 66 0f 6f 5f 30 movdqa 0x30(%rdi),%xmm3 + 425cad: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 425cb1: 66 0f d7 c3 pmovmskb %xmm3,%eax + 425cb5: 48 83 c7 40 add $0x40,%rdi + 425cb9: 85 c0 test %eax,%eax + 425cbb: 0f 85 3f 01 00 00 jne 425e00 <__memchr+0x2c0> + 425cc1: 48 89 f9 mov %rdi,%rcx + 425cc4: 48 83 e7 c0 and $0xffffffffffffffc0,%rdi + 425cc8: 48 83 e1 3f and $0x3f,%rcx + 425ccc: 48 01 ca add %rcx,%rdx + 425ccf: 90 nop + 425cd0: 48 83 ea 40 sub $0x40,%rdx + 425cd4: 0f 86 86 00 00 00 jbe 425d60 <__memchr+0x220> + 425cda: 66 0f 6f 07 movdqa (%rdi),%xmm0 + 425cde: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 + 425ce3: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 + 425ce8: 66 0f 6f 67 30 movdqa 0x30(%rdi),%xmm4 + 425ced: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 425cf1: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 425cf5: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 425cf9: 66 0f 74 e1 pcmpeqb %xmm1,%xmm4 + 425cfd: 66 0f de d8 pmaxub %xmm0,%xmm3 + 425d01: 66 0f de e2 pmaxub %xmm2,%xmm4 + 425d05: 66 0f de e3 pmaxub %xmm3,%xmm4 + 425d09: 66 0f d7 c4 pmovmskb %xmm4,%eax + 425d0d: 48 83 c7 40 add $0x40,%rdi + 425d11: 85 c0 test %eax,%eax + 425d13: 74 bb je 425cd0 <__memchr+0x190> + 425d15: 48 83 ef 40 sub $0x40,%rdi + 425d19: 66 0f d7 c0 pmovmskb %xmm0,%eax + 425d1d: 85 c0 test %eax,%eax + 425d1f: 0f 85 eb 00 00 00 jne 425e10 <__memchr+0x2d0> + 425d25: 66 0f d7 c2 pmovmskb %xmm2,%eax + 425d29: 85 c0 test %eax,%eax + 425d2b: 0f 85 ef 00 00 00 jne 425e20 <__memchr+0x2e0> + 425d31: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 + 425d36: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 425d3a: 66 0f 74 4f 30 pcmpeqb 0x30(%rdi),%xmm1 + 425d3f: 66 0f d7 c3 pmovmskb %xmm3,%eax + 425d43: 85 c0 test %eax,%eax + 425d45: 0f 85 e5 00 00 00 jne 425e30 <__memchr+0x2f0> + 425d4b: 66 0f d7 c1 pmovmskb %xmm1,%eax + 425d4f: 0f bc c0 bsf %eax,%eax + 425d52: 48 8d 44 07 30 lea 0x30(%rdi,%rax,1),%rax + 425d57: c3 retq + 425d58: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 425d5f: 00 + 425d60: 48 83 c2 20 add $0x20,%rdx + 425d64: 7e 6a jle 425dd0 <__memchr+0x290> + 425d66: 66 0f 6f 07 movdqa (%rdi),%xmm0 + 425d6a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 425d6e: 66 0f d7 c0 pmovmskb %xmm0,%eax + 425d72: 85 c0 test %eax,%eax + 425d74: 0f 85 96 00 00 00 jne 425e10 <__memchr+0x2d0> + 425d7a: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 + 425d7f: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 425d83: 66 0f d7 c2 pmovmskb %xmm2,%eax + 425d87: 85 c0 test %eax,%eax + 425d89: 0f 85 91 00 00 00 jne 425e20 <__memchr+0x2e0> + 425d8f: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 + 425d94: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 425d98: 66 0f d7 c3 pmovmskb %xmm3,%eax + 425d9c: 85 c0 test %eax,%eax + 425d9e: 0f 85 bc 00 00 00 jne 425e60 <__memchr+0x320> + 425da4: 48 83 ea 10 sub $0x10,%rdx + 425da8: 0f 8e d2 00 00 00 jle 425e80 <__memchr+0x340> + 425dae: 66 0f 74 4f 30 pcmpeqb 0x30(%rdi),%xmm1 + 425db3: 66 0f d7 c1 pmovmskb %xmm1,%eax + 425db7: 85 c0 test %eax,%eax + 425db9: 0f 85 b1 00 00 00 jne 425e70 <__memchr+0x330> + 425dbf: 48 31 c0 xor %rax,%rax + 425dc2: c3 retq + 425dc3: 0f 1f 00 nopl (%rax) + 425dc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 425dcd: 00 00 00 + 425dd0: 48 83 c2 20 add $0x20,%rdx + 425dd4: 66 0f 6f 07 movdqa (%rdi),%xmm0 + 425dd8: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 425ddc: 66 0f d7 c0 pmovmskb %xmm0,%eax + 425de0: 85 c0 test %eax,%eax + 425de2: 75 5c jne 425e40 <__memchr+0x300> + 425de4: 48 83 ea 10 sub $0x10,%rdx + 425de8: 0f 86 92 00 00 00 jbe 425e80 <__memchr+0x340> + 425dee: 66 0f 74 4f 10 pcmpeqb 0x10(%rdi),%xmm1 + 425df3: 66 0f d7 c1 pmovmskb %xmm1,%eax + 425df7: 85 c0 test %eax,%eax + 425df9: 75 55 jne 425e50 <__memchr+0x310> + 425dfb: 48 31 c0 xor %rax,%rax + 425dfe: c3 retq + 425dff: 90 nop + 425e00: 0f bc c0 bsf %eax,%eax + 425e03: 48 8d 44 38 f0 lea -0x10(%rax,%rdi,1),%rax + 425e08: c3 retq + 425e09: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 425e10: 0f bc c0 bsf %eax,%eax + 425e13: 48 01 f8 add %rdi,%rax + 425e16: c3 retq + 425e17: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 425e1e: 00 00 + 425e20: 0f bc c0 bsf %eax,%eax + 425e23: 48 8d 44 38 10 lea 0x10(%rax,%rdi,1),%rax + 425e28: c3 retq + 425e29: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 425e30: 0f bc c0 bsf %eax,%eax + 425e33: 48 8d 44 38 20 lea 0x20(%rax,%rdi,1),%rax + 425e38: c3 retq + 425e39: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 425e40: 0f bc c0 bsf %eax,%eax + 425e43: 48 29 c2 sub %rax,%rdx + 425e46: 76 38 jbe 425e80 <__memchr+0x340> + 425e48: 48 01 f8 add %rdi,%rax + 425e4b: c3 retq + 425e4c: 0f 1f 40 00 nopl 0x0(%rax) + 425e50: 0f bc c0 bsf %eax,%eax + 425e53: 48 29 c2 sub %rax,%rdx + 425e56: 76 28 jbe 425e80 <__memchr+0x340> + 425e58: 48 8d 44 07 10 lea 0x10(%rdi,%rax,1),%rax + 425e5d: c3 retq + 425e5e: 66 90 xchg %ax,%ax + 425e60: 0f bc c0 bsf %eax,%eax + 425e63: 48 29 c2 sub %rax,%rdx + 425e66: 76 18 jbe 425e80 <__memchr+0x340> + 425e68: 48 8d 44 07 20 lea 0x20(%rdi,%rax,1),%rax + 425e6d: c3 retq + 425e6e: 66 90 xchg %ax,%ax + 425e70: 0f bc c0 bsf %eax,%eax + 425e73: 48 29 c2 sub %rax,%rdx + 425e76: 76 08 jbe 425e80 <__memchr+0x340> + 425e78: 48 8d 44 07 30 lea 0x30(%rdi,%rax,1),%rax + 425e7d: c3 retq + 425e7e: 66 90 xchg %ax,%ax + 425e80: 48 31 c0 xor %rax,%rax + 425e83: c3 retq + 425e84: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 425e8b: 00 00 00 + 425e8e: 66 90 xchg %ax,%ax + +0000000000425e90 : + 425e90: f7 05 f6 67 2a 00 00 testl $0x200,0x2a67f6(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> + 425e97: 02 00 00 + 425e9a: 75 08 jne 425ea4 + 425e9c: 48 8d 05 1d 00 00 00 lea 0x1d(%rip),%rax # 425ec0 <__memcmp_sse2> + 425ea3: c3 retq + 425ea4: f7 05 e2 67 2a 00 00 testl $0x80000,0x2a67e2(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> + 425eab: 00 08 00 + 425eae: 74 08 je 425eb8 + 425eb0: 48 8d 05 49 84 00 00 lea 0x8449(%rip),%rax # 42e300 <__memcmp_sse4_1> + 425eb7: c3 retq + 425eb8: 48 8d 05 71 5e 01 00 lea 0x15e71(%rip),%rax # 43bd30 <__memcmp_ssse3> + 425ebf: c3 retq + +0000000000425ec0 <__memcmp_sse2>: + 425ec0: 48 85 d2 test %rdx,%rdx + 425ec3: 0f 84 f7 00 00 00 je 425fc0 <__memcmp_sse2+0x100> + 425ec9: 48 83 fa 01 cmp $0x1,%rdx + 425ecd: 0f 8e bd 00 00 00 jle 425f90 <__memcmp_sse2+0xd0> + 425ed3: 48 29 fe sub %rdi,%rsi + 425ed6: 49 89 d2 mov %rdx,%r10 + 425ed9: 49 83 fa 20 cmp $0x20,%r10 + 425edd: 0f 8d e0 00 00 00 jge 425fc3 <__memcmp_sse2+0x103> + 425ee3: 49 f7 c2 01 00 00 00 test $0x1,%r10 + 425eea: 74 1d je 425f09 <__memcmp_sse2+0x49> + 425eec: 0f b6 07 movzbl (%rdi),%eax + 425eef: 0f b6 14 37 movzbl (%rdi,%rsi,1),%edx + 425ef3: 49 83 ea 01 sub $0x1,%r10 + 425ef7: 0f 84 99 00 00 00 je 425f96 <__memcmp_sse2+0xd6> + 425efd: 48 83 c7 01 add $0x1,%rdi + 425f01: 29 d0 sub %edx,%eax + 425f03: 0f 85 8f 00 00 00 jne 425f98 <__memcmp_sse2+0xd8> + 425f09: 49 f7 c2 02 00 00 00 test $0x2,%r10 + 425f10: 74 15 je 425f27 <__memcmp_sse2+0x67> + 425f12: 0f b7 07 movzwl (%rdi),%eax + 425f15: 0f b7 14 37 movzwl (%rdi,%rsi,1),%edx + 425f19: 49 83 ea 02 sub $0x2,%r10 + 425f1d: 74 7a je 425f99 <__memcmp_sse2+0xd9> + 425f1f: 48 83 c7 02 add $0x2,%rdi + 425f23: 39 d0 cmp %edx,%eax + 425f25: 75 72 jne 425f99 <__memcmp_sse2+0xd9> + 425f27: 49 f7 c2 04 00 00 00 test $0x4,%r10 + 425f2e: 74 13 je 425f43 <__memcmp_sse2+0x83> + 425f30: 8b 07 mov (%rdi),%eax + 425f32: 8b 14 37 mov (%rdi,%rsi,1),%edx + 425f35: 49 83 ea 04 sub $0x4,%r10 + 425f39: 74 5e je 425f99 <__memcmp_sse2+0xd9> + 425f3b: 48 83 c7 04 add $0x4,%rdi + 425f3f: 39 d0 cmp %edx,%eax + 425f41: 75 56 jne 425f99 <__memcmp_sse2+0xd9> + 425f43: 49 f7 c2 08 00 00 00 test $0x8,%r10 + 425f4a: 74 16 je 425f62 <__memcmp_sse2+0xa2> + 425f4c: 48 8b 07 mov (%rdi),%rax + 425f4f: 48 8b 14 37 mov (%rdi,%rsi,1),%rdx + 425f53: 49 83 ea 08 sub $0x8,%r10 + 425f57: 74 40 je 425f99 <__memcmp_sse2+0xd9> + 425f59: 48 83 c7 08 add $0x8,%rdi + 425f5d: 48 39 d0 cmp %rdx,%rax + 425f60: 75 37 jne 425f99 <__memcmp_sse2+0xd9> + 425f62: f3 0f 6f 0f movdqu (%rdi),%xmm1 + 425f66: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 + 425f6b: 66 0f 74 c8 pcmpeqb %xmm0,%xmm1 + 425f6f: 66 0f d7 d1 pmovmskb %xmm1,%edx + 425f73: 31 c0 xor %eax,%eax + 425f75: 81 ea ff ff 00 00 sub $0xffff,%edx + 425f7b: 74 43 je 425fc0 <__memcmp_sse2+0x100> + 425f7d: 0f bc ca bsf %edx,%ecx + 425f80: 48 8d 0c 0f lea (%rdi,%rcx,1),%rcx + 425f84: 0f b6 01 movzbl (%rcx),%eax + 425f87: 0f b6 14 0e movzbl (%rsi,%rcx,1),%edx + 425f8b: eb 09 jmp 425f96 <__memcmp_sse2+0xd6> + 425f8d: 0f 1f 00 nopl (%rax) + 425f90: 0f b6 07 movzbl (%rdi),%eax + 425f93: 0f b6 16 movzbl (%rsi),%edx + 425f96: 29 d0 sub %edx,%eax + 425f98: c3 retq + 425f99: 48 39 d0 cmp %rdx,%rax + 425f9c: 74 22 je 425fc0 <__memcmp_sse2+0x100> + 425f9e: 49 89 c3 mov %rax,%r11 + 425fa1: 49 29 d3 sub %rdx,%r11 + 425fa4: 49 0f bc cb bsf %r11,%rcx + 425fa8: 48 c1 f9 03 sar $0x3,%rcx + 425fac: 48 c1 e1 03 shl $0x3,%rcx + 425fb0: 48 d3 f8 sar %cl,%rax + 425fb3: 0f b6 c0 movzbl %al,%eax + 425fb6: 48 d3 fa sar %cl,%rdx + 425fb9: 0f b6 d2 movzbl %dl,%edx + 425fbc: 29 d0 sub %edx,%eax + 425fbe: c3 retq + 425fbf: 90 nop + 425fc0: 31 c0 xor %eax,%eax + 425fc2: c3 retq + 425fc3: 49 89 d3 mov %rdx,%r11 + 425fc6: 49 01 fb add %rdi,%r11 + 425fc9: 49 89 f8 mov %rdi,%r8 + 425fcc: 49 83 e0 0f and $0xf,%r8 + 425fd0: 74 25 je 425ff7 <__memcmp_sse2+0x137> + 425fd2: f3 0f 6f 0f movdqu (%rdi),%xmm1 + 425fd6: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 + 425fdb: 66 0f 74 c8 pcmpeqb %xmm0,%xmm1 + 425fdf: 66 0f d7 d1 pmovmskb %xmm1,%edx + 425fe3: 81 ea ff ff 00 00 sub $0xffff,%edx + 425fe9: 0f 85 61 01 00 00 jne 426150 <__memcmp_sse2+0x290> + 425fef: 49 f7 d8 neg %r8 + 425ff2: 4a 8d 7c 07 10 lea 0x10(%rdi,%r8,1),%rdi + 425ff7: 48 f7 c6 0f 00 00 00 test $0xf,%rsi + 425ffe: 0f 84 5f 01 00 00 je 426163 <__memcmp_sse2+0x2a3> + 426004: 48 f7 c7 10 00 00 00 test $0x10,%rdi + 42600b: 74 1d je 42602a <__memcmp_sse2+0x16a> + 42600d: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 + 426012: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 426016: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42601a: 81 ea ff ff 00 00 sub $0xffff,%edx + 426020: 0f 85 2a 01 00 00 jne 426150 <__memcmp_sse2+0x290> + 426026: 48 83 c7 10 add $0x10,%rdi + 42602a: 4d 89 da mov %r11,%r10 + 42602d: 49 83 e2 e0 and $0xffffffffffffffe0,%r10 + 426031: 4c 39 d7 cmp %r10,%rdi + 426034: 0f 8d 03 01 00 00 jge 42613d <__memcmp_sse2+0x27d> + 42603a: 48 f7 c7 20 00 00 00 test $0x20,%rdi + 426041: 74 3a je 42607d <__memcmp_sse2+0x1bd> + 426043: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 + 426048: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 42604c: 66 0f d7 d0 pmovmskb %xmm0,%edx + 426050: 81 ea ff ff 00 00 sub $0xffff,%edx + 426056: 0f 85 f4 00 00 00 jne 426150 <__memcmp_sse2+0x290> + 42605c: 48 83 c7 10 add $0x10,%rdi + 426060: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 + 426065: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 426069: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42606d: 81 ea ff ff 00 00 sub $0xffff,%edx + 426073: 0f 85 d7 00 00 00 jne 426150 <__memcmp_sse2+0x290> + 426079: 48 83 c7 10 add $0x10,%rdi + 42607d: 4d 89 da mov %r11,%r10 + 426080: 49 83 e2 c0 and $0xffffffffffffffc0,%r10 + 426084: 4c 39 d7 cmp %r10,%rdi + 426087: 7d 71 jge 4260fa <__memcmp_sse2+0x23a> + 426089: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 + 42608e: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 426092: 66 0f d7 d0 pmovmskb %xmm0,%edx + 426096: 81 ea ff ff 00 00 sub $0xffff,%edx + 42609c: 0f 85 ae 00 00 00 jne 426150 <__memcmp_sse2+0x290> + 4260a2: 48 83 c7 10 add $0x10,%rdi + 4260a6: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 + 4260ab: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 4260af: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4260b3: 81 ea ff ff 00 00 sub $0xffff,%edx + 4260b9: 0f 85 91 00 00 00 jne 426150 <__memcmp_sse2+0x290> + 4260bf: 48 83 c7 10 add $0x10,%rdi + 4260c3: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 + 4260c8: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 4260cc: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4260d0: 81 ea ff ff 00 00 sub $0xffff,%edx + 4260d6: 75 78 jne 426150 <__memcmp_sse2+0x290> + 4260d8: 48 83 c7 10 add $0x10,%rdi + 4260dc: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 + 4260e1: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 4260e5: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4260e9: 81 ea ff ff 00 00 sub $0xffff,%edx + 4260ef: 75 5f jne 426150 <__memcmp_sse2+0x290> + 4260f1: 48 83 c7 10 add $0x10,%rdi + 4260f5: 49 39 fa cmp %rdi,%r10 + 4260f8: 75 8f jne 426089 <__memcmp_sse2+0x1c9> + 4260fa: 4d 89 da mov %r11,%r10 + 4260fd: 49 83 e2 e0 and $0xffffffffffffffe0,%r10 + 426101: 4c 39 d7 cmp %r10,%rdi + 426104: 7d 37 jge 42613d <__memcmp_sse2+0x27d> + 426106: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 + 42610b: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 42610f: 66 0f d7 d0 pmovmskb %xmm0,%edx + 426113: 81 ea ff ff 00 00 sub $0xffff,%edx + 426119: 75 35 jne 426150 <__memcmp_sse2+0x290> + 42611b: 48 83 c7 10 add $0x10,%rdi + 42611f: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 + 426124: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 426128: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42612c: 81 ea ff ff 00 00 sub $0xffff,%edx + 426132: 75 1c jne 426150 <__memcmp_sse2+0x290> + 426134: 48 83 c7 10 add $0x10,%rdi + 426138: 49 39 fa cmp %rdi,%r10 + 42613b: 75 c9 jne 426106 <__memcmp_sse2+0x246> + 42613d: 49 29 fb sub %rdi,%r11 + 426140: 0f 84 7a fe ff ff je 425fc0 <__memcmp_sse2+0x100> + 426146: 4d 89 da mov %r11,%r10 + 426149: e9 95 fd ff ff jmpq 425ee3 <__memcmp_sse2+0x23> + 42614e: 66 90 xchg %ax,%ax + 426150: 0f bc ca bsf %edx,%ecx + 426153: 0f b6 04 0f movzbl (%rdi,%rcx,1),%eax + 426157: 48 01 fe add %rdi,%rsi + 42615a: 0f b6 14 0e movzbl (%rsi,%rcx,1),%edx + 42615e: e9 33 fe ff ff jmpq 425f96 <__memcmp_sse2+0xd6> + 426163: 4d 89 da mov %r11,%r10 + 426166: 49 83 e2 e0 and $0xffffffffffffffe0,%r10 + 42616a: 4c 39 d7 cmp %r10,%rdi + 42616d: 7d ce jge 42613d <__memcmp_sse2+0x27d> + 42616f: 48 f7 c7 10 00 00 00 test $0x10,%rdi + 426176: 74 1e je 426196 <__memcmp_sse2+0x2d6> + 426178: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 + 42617d: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 426181: 66 0f d7 d0 pmovmskb %xmm0,%edx + 426185: 81 ea ff ff 00 00 sub $0xffff,%edx + 42618b: 75 c3 jne 426150 <__memcmp_sse2+0x290> + 42618d: 48 83 c7 10 add $0x10,%rdi + 426191: 49 39 fa cmp %rdi,%r10 + 426194: 74 a7 je 42613d <__memcmp_sse2+0x27d> + 426196: 4d 89 da mov %r11,%r10 + 426199: 49 83 e2 c0 and $0xffffffffffffffc0,%r10 + 42619d: 48 f7 c7 20 00 00 00 test $0x20,%rdi + 4261a4: 74 36 je 4261dc <__memcmp_sse2+0x31c> + 4261a6: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 + 4261ab: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 4261af: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4261b3: 81 ea ff ff 00 00 sub $0xffff,%edx + 4261b9: 75 95 jne 426150 <__memcmp_sse2+0x290> + 4261bb: 48 83 c7 10 add $0x10,%rdi + 4261bf: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 + 4261c4: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 4261c8: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4261cc: 81 ea ff ff 00 00 sub $0xffff,%edx + 4261d2: 0f 85 78 ff ff ff jne 426150 <__memcmp_sse2+0x290> + 4261d8: 48 83 c7 10 add $0x10,%rdi + 4261dc: 49 39 fa cmp %rdi,%r10 + 4261df: 0f 84 15 ff ff ff je 4260fa <__memcmp_sse2+0x23a> + 4261e5: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 + 4261ea: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 4261ee: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4261f2: 81 ea ff ff 00 00 sub $0xffff,%edx + 4261f8: 0f 85 52 ff ff ff jne 426150 <__memcmp_sse2+0x290> + 4261fe: 48 83 c7 10 add $0x10,%rdi + 426202: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 + 426207: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 42620b: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42620f: 81 ea ff ff 00 00 sub $0xffff,%edx + 426215: 0f 85 35 ff ff ff jne 426150 <__memcmp_sse2+0x290> + 42621b: 48 83 c7 10 add $0x10,%rdi + 42621f: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 + 426224: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 426228: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42622c: 81 ea ff ff 00 00 sub $0xffff,%edx + 426232: 0f 85 18 ff ff ff jne 426150 <__memcmp_sse2+0x290> + 426238: 48 83 c7 10 add $0x10,%rdi + 42623c: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 + 426241: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 426245: 66 0f d7 d0 pmovmskb %xmm0,%edx + 426249: 81 ea ff ff 00 00 sub $0xffff,%edx + 42624f: 0f 85 fb fe ff ff jne 426150 <__memcmp_sse2+0x290> + 426255: 48 83 c7 10 add $0x10,%rdi + 426259: 49 39 fa cmp %rdi,%r10 + 42625c: 75 87 jne 4261e5 <__memcmp_sse2+0x325> + 42625e: 4d 89 da mov %r11,%r10 + 426261: 49 83 e2 e0 and $0xffffffffffffffe0,%r10 + 426265: 4c 39 d7 cmp %r10,%rdi + 426268: 0f 8d cf fe ff ff jge 42613d <__memcmp_sse2+0x27d> + 42626e: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 + 426273: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 426277: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42627b: 81 ea ff ff 00 00 sub $0xffff,%edx + 426281: 0f 85 c9 fe ff ff jne 426150 <__memcmp_sse2+0x290> + 426287: 48 83 c7 10 add $0x10,%rdi + 42628b: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 + 426290: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 426294: 66 0f d7 d0 pmovmskb %xmm0,%edx + 426298: 81 ea ff ff 00 00 sub $0xffff,%edx + 42629e: 0f 85 ac fe ff ff jne 426150 <__memcmp_sse2+0x290> + 4262a4: 48 83 c7 10 add $0x10,%rdi + 4262a8: 4c 39 d7 cmp %r10,%rdi + 4262ab: 75 c1 jne 42626e <__memcmp_sse2+0x3ae> + 4262ad: 49 29 fb sub %rdi,%r11 + 4262b0: 0f 84 0a fd ff ff je 425fc0 <__memcmp_sse2+0x100> + 4262b6: 4d 89 da mov %r11,%r10 + 4262b9: e9 25 fc ff ff jmpq 425ee3 <__memcmp_sse2+0x23> + 4262be: 66 90 xchg %ax,%ax + +00000000004262c0 <__memmove_sse2>: + 4262c0: 41 55 push %r13 + 4262c2: 48 89 f8 mov %rdi,%rax + 4262c5: 41 54 push %r12 + 4262c7: 55 push %rbp + 4262c8: 53 push %rbx + 4262c9: 48 29 f0 sub %rsi,%rax + 4262cc: 49 89 fc mov %rdi,%r12 + 4262cf: 48 83 ec 08 sub $0x8,%rsp + 4262d3: 48 39 d0 cmp %rdx,%rax + 4262d6: 0f 82 99 00 00 00 jb 426375 <__memmove_sse2+0xb5> + 4262dc: 48 83 fa 0f cmp $0xf,%rdx + 4262e0: 48 89 fb mov %rdi,%rbx + 4262e3: 49 89 f5 mov %rsi,%r13 + 4262e6: 76 5e jbe 426346 <__memmove_sse2+0x86> + 4262e8: 48 89 f9 mov %rdi,%rcx + 4262eb: 48 f7 d9 neg %rcx + 4262ee: 83 e1 07 and $0x7,%ecx + 4262f1: 48 29 ca sub %rcx,%rdx + 4262f4: 48 85 c9 test %rcx,%rcx + 4262f7: 48 89 d5 mov %rdx,%rbp + 4262fa: 74 1b je 426317 <__memmove_sse2+0x57> + 4262fc: 31 c0 xor %eax,%eax + 4262fe: 0f b6 14 06 movzbl (%rsi,%rax,1),%edx + 426302: 41 88 14 04 mov %dl,(%r12,%rax,1) + 426306: 48 83 c0 01 add $0x1,%rax + 42630a: 48 39 c1 cmp %rax,%rcx + 42630d: 75 ef jne 4262fe <__memmove_sse2+0x3e> + 42630f: 4c 8d 2c 0e lea (%rsi,%rcx,1),%r13 + 426313: 49 8d 1c 0c lea (%r12,%rcx,1),%rbx + 426317: 48 89 ea mov %rbp,%rdx + 42631a: 4c 89 ee mov %r13,%rsi + 42631d: 48 89 df mov %rbx,%rdi + 426320: 48 c1 ea 03 shr $0x3,%rdx + 426324: 41 f6 c5 07 test $0x7,%r13b + 426328: 0f 84 dc 00 00 00 je 42640a <__memmove_sse2+0x14a> + 42632e: e8 8d 62 00 00 callq 42c5c0 <_wordcopy_fwd_dest_aligned> + 426333: 48 89 e8 mov %rbp,%rax + 426336: 48 89 ea mov %rbp,%rdx + 426339: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 42633d: 83 e2 07 and $0x7,%edx + 426340: 49 01 c5 add %rax,%r13 + 426343: 48 01 c3 add %rax,%rbx + 426346: 49 29 dd sub %rbx,%r13 + 426349: 48 85 d2 test %rdx,%rdx + 42634c: 48 8d 0c 13 lea (%rbx,%rdx,1),%rcx + 426350: 48 89 df mov %rbx,%rdi + 426353: 74 12 je 426367 <__memmove_sse2+0xa7> + 426355: 41 0f b6 44 3d 00 movzbl 0x0(%r13,%rdi,1),%eax + 42635b: 48 83 c7 01 add $0x1,%rdi + 42635f: 88 47 ff mov %al,-0x1(%rdi) + 426362: 48 39 cf cmp %rcx,%rdi + 426365: 75 ee jne 426355 <__memmove_sse2+0x95> + 426367: 48 83 c4 08 add $0x8,%rsp + 42636b: 4c 89 e0 mov %r12,%rax + 42636e: 5b pop %rbx + 42636f: 5d pop %rbp + 426370: 41 5c pop %r12 + 426372: 41 5d pop %r13 + 426374: c3 retq + 426375: 48 01 d6 add %rdx,%rsi + 426378: 48 83 fa 0f cmp $0xf,%rdx + 42637c: 48 8d 2c 17 lea (%rdi,%rdx,1),%rbp + 426380: 76 5f jbe 4263e1 <__memmove_sse2+0x121> + 426382: 48 89 e9 mov %rbp,%rcx + 426385: 48 89 d3 mov %rdx,%rbx + 426388: 49 89 f5 mov %rsi,%r13 + 42638b: 83 e1 07 and $0x7,%ecx + 42638e: 48 29 cb sub %rcx,%rbx + 426391: 48 85 c9 test %rcx,%rcx + 426394: 74 1b je 4263b1 <__memmove_sse2+0xf1> + 426396: 48 89 ea mov %rbp,%rdx + 426399: 49 29 cd sub %rcx,%r13 + 42639c: 48 29 f2 sub %rsi,%rdx + 42639f: 48 83 ee 01 sub $0x1,%rsi + 4263a3: 0f b6 06 movzbl (%rsi),%eax + 4263a6: 4c 39 ee cmp %r13,%rsi + 4263a9: 88 04 32 mov %al,(%rdx,%rsi,1) + 4263ac: 75 f1 jne 42639f <__memmove_sse2+0xdf> + 4263ae: 48 29 cd sub %rcx,%rbp + 4263b1: 48 89 da mov %rbx,%rdx + 4263b4: 4c 89 ee mov %r13,%rsi + 4263b7: 48 89 ef mov %rbp,%rdi + 4263ba: 48 c1 ea 03 shr $0x3,%rdx + 4263be: 41 f6 c5 07 test $0x7,%r13b + 4263c2: 74 50 je 426414 <__memmove_sse2+0x154> + 4263c4: e8 a7 64 00 00 callq 42c870 <_wordcopy_bwd_dest_aligned> + 4263c9: 48 89 d8 mov %rbx,%rax + 4263cc: 4c 89 ee mov %r13,%rsi + 4263cf: 48 83 e0 f8 and $0xfffffffffffffff8,%rax + 4263d3: 48 29 c6 sub %rax,%rsi + 4263d6: 48 29 c5 sub %rax,%rbp + 4263d9: 83 e3 07 and $0x7,%ebx + 4263dc: 48 89 da mov %rbx,%rdx + 4263df: 74 86 je 426367 <__memmove_sse2+0xa7> + 4263e1: 48 89 f0 mov %rsi,%rax + 4263e4: 48 89 ef mov %rbp,%rdi + 4263e7: 48 29 d0 sub %rdx,%rax + 4263ea: 48 29 f7 sub %rsi,%rdi + 4263ed: 48 83 ee 01 sub $0x1,%rsi + 4263f1: 0f b6 16 movzbl (%rsi),%edx + 4263f4: 48 39 c6 cmp %rax,%rsi + 4263f7: 88 14 37 mov %dl,(%rdi,%rsi,1) + 4263fa: 75 f1 jne 4263ed <__memmove_sse2+0x12d> + 4263fc: 48 83 c4 08 add $0x8,%rsp + 426400: 4c 89 e0 mov %r12,%rax + 426403: 5b pop %rbx + 426404: 5d pop %rbp + 426405: 41 5c pop %r12 + 426407: 41 5d pop %r13 + 426409: c3 retq + 42640a: e8 81 60 00 00 callq 42c490 <_wordcopy_fwd_aligned> + 42640f: e9 1f ff ff ff jmpq 426333 <__memmove_sse2+0x73> + 426414: e8 d7 62 00 00 callq 42c6f0 <_wordcopy_bwd_aligned> + 426419: eb ae jmp 4263c9 <__memmove_sse2+0x109> + +000000000042641b <__libc_memmove>: + 42641b: 8b 15 9f 62 2a 00 mov 0x2a629f(%rip),%edx # 6cc6c0 <_dl_x86_cpu_features+0x40> + 426421: 89 d0 mov %edx,%eax + 426423: 25 00 10 02 00 and $0x21000,%eax + 426428: 3d 00 10 02 00 cmp $0x21000,%eax + 42642d: 74 2a je 426459 <__libc_memmove+0x3e> + 42642f: f6 c6 08 test $0x8,%dh + 426432: b8 d0 24 43 00 mov $0x4324d0,%eax + 426437: 75 25 jne 42645e <__libc_memmove+0x43> + 426439: f6 05 51 62 2a 00 02 testb $0x2,0x2a6251(%rip) # 6cc691 <_dl_x86_cpu_features+0x11> + 426440: b8 c0 62 42 00 mov $0x4262c0,%eax + 426445: 74 17 je 42645e <__libc_memmove+0x43> + 426447: 83 e2 02 and $0x2,%edx + 42644a: b8 c0 29 43 00 mov $0x4329c0,%eax + 42644f: ba 50 f9 42 00 mov $0x42f950,%edx + 426454: 48 0f 44 c2 cmove %rdx,%rax + 426458: c3 retq + 426459: b8 e0 54 43 00 mov $0x4354e0,%eax + 42645e: f3 c3 repz retq + +0000000000426460 : + 426460: 48 8d 05 69 00 00 00 lea 0x69(%rip),%rax # 4264d0 <__memset_sse2> + 426467: f7 05 4f 62 2a 00 00 testl $0x400,0x2a624f(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 42646e: 04 00 00 + 426471: 74 26 je 426499 + 426473: 48 8d 05 c6 74 01 00 lea 0x174c6(%rip),%rax # 43d940 <__memset_avx2> + 42647a: f7 05 3c 62 2a 00 00 testl $0x1000,0x2a623c(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 426481: 10 00 00 + 426484: 74 13 je 426499 + 426486: f7 05 30 62 2a 00 00 testl $0x20000,0x2a6230(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 42648d: 00 02 00 + 426490: 74 07 je 426499 + 426492: 48 8d 05 47 76 01 00 lea 0x17647(%rip),%rax # 43dae0 <__memset_avx512_no_vzeroupper> + 426499: c3 retq + 42649a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +00000000004264a0 <__bzero>: + 4264a0: 48 89 f8 mov %rdi,%rax + 4264a3: 48 89 f2 mov %rsi,%rdx + 4264a6: 66 0f ef c0 pxor %xmm0,%xmm0 + 4264aa: eb 38 jmp 4264e4 <__memset_sse2+0x14> + 4264ac: 0f 1f 40 00 nopl 0x0(%rax) + +00000000004264b0 <__memset_tail>: + 4264b0: 48 89 c8 mov %rcx,%rax + 4264b3: 66 0f 6e c6 movd %esi,%xmm0 + 4264b7: 66 0f 60 c0 punpcklbw %xmm0,%xmm0 + 4264bb: 66 0f 61 c0 punpcklwd %xmm0,%xmm0 + 4264bf: 66 0f 70 c0 00 pshufd $0x0,%xmm0,%xmm0 + 4264c4: eb 1e jmp 4264e4 <__memset_sse2+0x14> + 4264c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4264cd: 00 00 00 + +00000000004264d0 <__memset_sse2>: + 4264d0: 66 0f 6e c6 movd %esi,%xmm0 + 4264d4: 48 89 f8 mov %rdi,%rax + 4264d7: 66 0f 60 c0 punpcklbw %xmm0,%xmm0 + 4264db: 66 0f 61 c0 punpcklwd %xmm0,%xmm0 + 4264df: 66 0f 70 c0 00 pshufd $0x0,%xmm0,%xmm0 + 4264e4: 48 83 fa 40 cmp $0x40,%rdx + 4264e8: 77 36 ja 426520 <__memset_sse2+0x50> + 4264ea: 48 83 fa 10 cmp $0x10,%rdx + 4264ee: 0f 86 8a 00 00 00 jbe 42657e <__memset_sse2+0xae> + 4264f4: 48 83 fa 20 cmp $0x20,%rdx + 4264f8: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 4264fc: f3 0f 7f 44 17 f0 movdqu %xmm0,-0x10(%rdi,%rdx,1) + 426502: 77 0c ja 426510 <__memset_sse2+0x40> + 426504: f3 c3 repz retq + 426506: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42650d: 00 00 00 + 426510: f3 0f 7f 47 10 movdqu %xmm0,0x10(%rdi) + 426515: f3 0f 7f 44 17 e0 movdqu %xmm0,-0x20(%rdi,%rdx,1) + 42651b: c3 retq + 42651c: 0f 1f 40 00 nopl 0x0(%rax) + 426520: 48 8d 4f 40 lea 0x40(%rdi),%rcx + 426524: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 426528: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 42652c: f3 0f 7f 44 17 f0 movdqu %xmm0,-0x10(%rdi,%rdx,1) + 426532: f3 0f 7f 47 10 movdqu %xmm0,0x10(%rdi) + 426537: f3 0f 7f 44 17 e0 movdqu %xmm0,-0x20(%rdi,%rdx,1) + 42653d: f3 0f 7f 47 20 movdqu %xmm0,0x20(%rdi) + 426542: f3 0f 7f 44 17 d0 movdqu %xmm0,-0x30(%rdi,%rdx,1) + 426548: f3 0f 7f 47 30 movdqu %xmm0,0x30(%rdi) + 42654d: f3 0f 7f 44 17 c0 movdqu %xmm0,-0x40(%rdi,%rdx,1) + 426553: 48 01 fa add %rdi,%rdx + 426556: 48 83 e2 c0 and $0xffffffffffffffc0,%rdx + 42655a: 48 39 d1 cmp %rdx,%rcx + 42655d: 74 a5 je 426504 <__memset_sse2+0x34> + 42655f: 90 nop + 426560: 66 0f 7f 01 movdqa %xmm0,(%rcx) + 426564: 66 0f 7f 41 10 movdqa %xmm0,0x10(%rcx) + 426569: 66 0f 7f 41 20 movdqa %xmm0,0x20(%rcx) + 42656e: 66 0f 7f 41 30 movdqa %xmm0,0x30(%rcx) + 426573: 48 83 c1 40 add $0x40,%rcx + 426577: 48 39 ca cmp %rcx,%rdx + 42657a: 75 e4 jne 426560 <__memset_sse2+0x90> + 42657c: f3 c3 repz retq + 42657e: 66 48 0f 7e c1 movq %xmm0,%rcx + 426583: f6 c2 18 test $0x18,%dl + 426586: 75 22 jne 4265aa <__memset_sse2+0xda> + 426588: f6 c2 04 test $0x4,%dl + 42658b: 75 16 jne 4265a3 <__memset_sse2+0xd3> + 42658d: f6 c2 01 test $0x1,%dl + 426590: 74 02 je 426594 <__memset_sse2+0xc4> + 426592: 88 0f mov %cl,(%rdi) + 426594: f6 c2 02 test $0x2,%dl + 426597: 0f 84 67 ff ff ff je 426504 <__memset_sse2+0x34> + 42659d: 66 89 4c 10 fe mov %cx,-0x2(%rax,%rdx,1) + 4265a2: c3 retq + 4265a3: 89 0f mov %ecx,(%rdi) + 4265a5: 89 4c 17 fc mov %ecx,-0x4(%rdi,%rdx,1) + 4265a9: c3 retq + 4265aa: 48 89 0f mov %rcx,(%rdi) + 4265ad: 48 89 4c 17 f8 mov %rcx,-0x8(%rdi,%rdx,1) + 4265b2: c3 retq + 4265b3: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4265ba: 00 00 00 + 4265bd: 0f 1f 00 nopl (%rax) + +00000000004265c0 <__mempcpy>: + 4265c0: 48 83 fa 20 cmp $0x20,%rdx + 4265c4: 73 7a jae 426640 <__mempcpy+0x80> + 4265c6: f6 c2 01 test $0x1,%dl + 4265c9: 74 0b je 4265d6 <__mempcpy+0x16> + 4265cb: 0f b6 0e movzbl (%rsi),%ecx + 4265ce: 88 0f mov %cl,(%rdi) + 4265d0: 48 ff c6 inc %rsi + 4265d3: 48 ff c7 inc %rdi + 4265d6: f6 c2 02 test $0x2,%dl + 4265d9: 74 0e je 4265e9 <__mempcpy+0x29> + 4265db: 0f b7 0e movzwl (%rsi),%ecx + 4265de: 66 89 0f mov %cx,(%rdi) + 4265e1: 48 83 c6 02 add $0x2,%rsi + 4265e5: 48 83 c7 02 add $0x2,%rdi + 4265e9: f6 c2 04 test $0x4,%dl + 4265ec: 74 0c je 4265fa <__mempcpy+0x3a> + 4265ee: 8b 0e mov (%rsi),%ecx + 4265f0: 89 0f mov %ecx,(%rdi) + 4265f2: 48 83 c6 04 add $0x4,%rsi + 4265f6: 48 83 c7 04 add $0x4,%rdi + 4265fa: f6 c2 08 test $0x8,%dl + 4265fd: 74 11 je 426610 <__mempcpy+0x50> + 4265ff: 48 8b 0e mov (%rsi),%rcx + 426602: 48 89 0f mov %rcx,(%rdi) + 426605: 48 83 c6 08 add $0x8,%rsi + 426609: 48 83 c7 08 add $0x8,%rdi + 42660d: 0f 1f 00 nopl (%rax) + 426610: 81 e2 f0 00 00 00 and $0xf0,%edx + 426616: 74 23 je 42663b <__mempcpy+0x7b> + 426618: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42661f: 00 + 426620: 48 8b 0e mov (%rsi),%rcx + 426623: 4c 8b 46 08 mov 0x8(%rsi),%r8 + 426627: 48 89 0f mov %rcx,(%rdi) + 42662a: 4c 89 47 08 mov %r8,0x8(%rdi) + 42662e: 83 ea 10 sub $0x10,%edx + 426631: 48 8d 76 10 lea 0x10(%rsi),%rsi + 426635: 48 8d 7f 10 lea 0x10(%rdi),%rdi + 426639: 75 e5 jne 426620 <__mempcpy+0x60> + 42663b: 48 89 f8 mov %rdi,%rax + 42663e: c3 retq + 42663f: 90 nop + 426640: 89 f1 mov %esi,%ecx + 426642: 83 e1 07 and $0x7,%ecx + 426645: 74 29 je 426670 <__mempcpy+0xb0> + 426647: 48 8d 54 11 f8 lea -0x8(%rcx,%rdx,1),%rdx + 42664c: 83 e9 08 sub $0x8,%ecx + 42664f: 90 nop + 426650: 0f b6 06 movzbl (%rsi),%eax + 426653: 88 07 mov %al,(%rdi) + 426655: ff c1 inc %ecx + 426657: 48 8d 76 01 lea 0x1(%rsi),%rsi + 42665b: 48 8d 7f 01 lea 0x1(%rdi),%rdi + 42665f: 75 ef jne 426650 <__mempcpy+0x90> + 426661: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 426666: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42666d: 00 00 00 + 426670: 48 81 fa 00 04 00 00 cmp $0x400,%rdx + 426677: 77 77 ja 4266f0 <__mempcpy+0x130> + 426679: 89 d1 mov %edx,%ecx + 42667b: c1 e9 05 shr $0x5,%ecx + 42667e: 74 60 je 4266e0 <__mempcpy+0x120> + 426680: ff c9 dec %ecx + 426682: 48 8b 06 mov (%rsi),%rax + 426685: 4c 8b 46 08 mov 0x8(%rsi),%r8 + 426689: 4c 8b 4e 10 mov 0x10(%rsi),%r9 + 42668d: 4c 8b 56 18 mov 0x18(%rsi),%r10 + 426691: 48 89 07 mov %rax,(%rdi) + 426694: 4c 89 47 08 mov %r8,0x8(%rdi) + 426698: 4c 89 4f 10 mov %r9,0x10(%rdi) + 42669c: 4c 89 57 18 mov %r10,0x18(%rdi) + 4266a0: 48 8d 76 20 lea 0x20(%rsi),%rsi + 4266a4: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 4266a8: 74 36 je 4266e0 <__mempcpy+0x120> + 4266aa: ff c9 dec %ecx + 4266ac: 48 8b 06 mov (%rsi),%rax + 4266af: 4c 8b 46 08 mov 0x8(%rsi),%r8 + 4266b3: 4c 8b 4e 10 mov 0x10(%rsi),%r9 + 4266b7: 4c 8b 56 18 mov 0x18(%rsi),%r10 + 4266bb: 48 89 07 mov %rax,(%rdi) + 4266be: 4c 89 47 08 mov %r8,0x8(%rdi) + 4266c2: 4c 89 4f 10 mov %r9,0x10(%rdi) + 4266c6: 4c 89 57 18 mov %r10,0x18(%rdi) + 4266ca: 48 8d 76 20 lea 0x20(%rsi),%rsi + 4266ce: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 4266d2: 75 ac jne 426680 <__mempcpy+0xc0> + 4266d4: 66 90 xchg %ax,%ax + 4266d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4266dd: 00 00 00 + 4266e0: 83 e2 1f and $0x1f,%edx + 4266e3: 0f 85 dd fe ff ff jne 4265c6 <__mempcpy+0x6> + 4266e9: 48 89 f8 mov %rdi,%rax + 4266ec: c3 retq + 4266ed: 0f 1f 00 nopl (%rax) + 4266f0: 4c 8b 1d d9 49 2a 00 mov 0x2a49d9(%rip),%r11 # 6cb0d0 <__x86_data_cache_size_half> + 4266f7: 49 39 d3 cmp %rdx,%r11 + 4266fa: 4c 0f 47 da cmova %rdx,%r11 + 4266fe: 4c 89 d9 mov %r11,%rcx + 426701: 49 83 e3 f8 and $0xfffffffffffffff8,%r11 + 426705: 48 c1 e9 03 shr $0x3,%rcx + 426709: 74 05 je 426710 <__mempcpy+0x150> + 42670b: f3 48 a5 rep movsq %ds:(%rsi),%es:(%rdi) + 42670e: 66 90 xchg %ax,%ax + 426710: 4c 29 da sub %r11,%rdx + 426713: 48 f7 c2 f8 ff ff ff test $0xfffffffffffffff8,%rdx + 42671a: 75 14 jne 426730 <__mempcpy+0x170> + 42671c: 83 e2 07 and $0x7,%edx + 42671f: 0f 85 a1 fe ff ff jne 4265c6 <__mempcpy+0x6> + 426725: 48 89 f8 mov %rdi,%rax + 426728: c3 retq + 426729: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 426730: 4c 8b 05 79 49 2a 00 mov 0x2a4979(%rip),%r8 # 6cb0b0 <__x86_shared_cache_size_half> + 426737: 49 39 d0 cmp %rdx,%r8 + 42673a: 4c 0f 47 c2 cmova %rdx,%r8 + 42673e: 4c 89 c1 mov %r8,%rcx + 426741: 49 83 e0 c0 and $0xffffffffffffffc0,%r8 + 426745: 48 c1 e9 06 shr $0x6,%rcx + 426749: 0f 84 ab 01 00 00 je 4268fa <__mempcpy+0x33a> + 42674f: 4c 89 74 24 f8 mov %r14,-0x8(%rsp) + 426754: 4c 89 6c 24 f0 mov %r13,-0x10(%rsp) + 426759: 4c 89 64 24 e8 mov %r12,-0x18(%rsp) + 42675e: 48 89 5c 24 e0 mov %rbx,-0x20(%rsp) + 426763: 83 3d 4e 6a 2a 00 00 cmpl $0x0,0x2a6a4e(%rip) # 6cd1b8 <__x86_prefetchw> + 42676a: 0f 84 c0 00 00 00 je 426830 <__mempcpy+0x270> + 426770: 48 ff c9 dec %rcx + 426773: 48 8b 06 mov (%rsi),%rax + 426776: 48 8b 5e 08 mov 0x8(%rsi),%rbx + 42677a: 4c 8b 4e 10 mov 0x10(%rsi),%r9 + 42677e: 4c 8b 56 18 mov 0x18(%rsi),%r10 + 426782: 4c 8b 5e 20 mov 0x20(%rsi),%r11 + 426786: 4c 8b 66 28 mov 0x28(%rsi),%r12 + 42678a: 4c 8b 6e 30 mov 0x30(%rsi),%r13 + 42678e: 4c 8b 76 38 mov 0x38(%rsi),%r14 + 426792: 0f 18 8e 80 03 00 00 prefetcht0 0x380(%rsi) + 426799: 0f 18 8e c0 03 00 00 prefetcht0 0x3c0(%rsi) + 4267a0: 48 89 07 mov %rax,(%rdi) + 4267a3: 48 89 5f 08 mov %rbx,0x8(%rdi) + 4267a7: 4c 89 4f 10 mov %r9,0x10(%rdi) + 4267ab: 4c 89 57 18 mov %r10,0x18(%rdi) + 4267af: 4c 89 5f 20 mov %r11,0x20(%rdi) + 4267b3: 4c 89 67 28 mov %r12,0x28(%rdi) + 4267b7: 4c 89 6f 30 mov %r13,0x30(%rdi) + 4267bb: 4c 89 77 38 mov %r14,0x38(%rdi) + 4267bf: 48 8d 76 40 lea 0x40(%rsi),%rsi + 4267c3: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 4267c7: 0f 84 19 01 00 00 je 4268e6 <__mempcpy+0x326> + 4267cd: 48 ff c9 dec %rcx + 4267d0: 48 8b 06 mov (%rsi),%rax + 4267d3: 48 8b 5e 08 mov 0x8(%rsi),%rbx + 4267d7: 4c 8b 4e 10 mov 0x10(%rsi),%r9 + 4267db: 4c 8b 56 18 mov 0x18(%rsi),%r10 + 4267df: 4c 8b 5e 20 mov 0x20(%rsi),%r11 + 4267e3: 4c 8b 66 28 mov 0x28(%rsi),%r12 + 4267e7: 4c 8b 6e 30 mov 0x30(%rsi),%r13 + 4267eb: 4c 8b 76 38 mov 0x38(%rsi),%r14 + 4267ef: 48 89 07 mov %rax,(%rdi) + 4267f2: 48 89 5f 08 mov %rbx,0x8(%rdi) + 4267f6: 4c 89 4f 10 mov %r9,0x10(%rdi) + 4267fa: 4c 89 57 18 mov %r10,0x18(%rdi) + 4267fe: 4c 89 5f 20 mov %r11,0x20(%rdi) + 426802: 4c 89 67 28 mov %r12,0x28(%rdi) + 426806: 4c 89 6f 30 mov %r13,0x30(%rdi) + 42680a: 4c 89 77 38 mov %r14,0x38(%rdi) + 42680e: 0f 0d 8f 40 03 00 00 prefetchw 0x340(%rdi) + 426815: 0f 0d 8f 80 03 00 00 prefetchw 0x380(%rdi) + 42681c: 48 8d 76 40 lea 0x40(%rsi),%rsi + 426820: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 426824: 0f 85 46 ff ff ff jne 426770 <__mempcpy+0x1b0> + 42682a: e9 b7 00 00 00 jmpq 4268e6 <__mempcpy+0x326> + 42682f: 90 nop + 426830: 48 ff c9 dec %rcx + 426833: 48 8b 06 mov (%rsi),%rax + 426836: 48 8b 5e 08 mov 0x8(%rsi),%rbx + 42683a: 4c 8b 4e 10 mov 0x10(%rsi),%r9 + 42683e: 4c 8b 56 18 mov 0x18(%rsi),%r10 + 426842: 4c 8b 5e 20 mov 0x20(%rsi),%r11 + 426846: 4c 8b 66 28 mov 0x28(%rsi),%r12 + 42684a: 4c 8b 6e 30 mov 0x30(%rsi),%r13 + 42684e: 4c 8b 76 38 mov 0x38(%rsi),%r14 + 426852: 0f 18 8e 80 03 00 00 prefetcht0 0x380(%rsi) + 426859: 0f 18 8e c0 03 00 00 prefetcht0 0x3c0(%rsi) + 426860: 48 89 07 mov %rax,(%rdi) + 426863: 48 89 5f 08 mov %rbx,0x8(%rdi) + 426867: 4c 89 4f 10 mov %r9,0x10(%rdi) + 42686b: 4c 89 57 18 mov %r10,0x18(%rdi) + 42686f: 4c 89 5f 20 mov %r11,0x20(%rdi) + 426873: 4c 89 67 28 mov %r12,0x28(%rdi) + 426877: 4c 89 6f 30 mov %r13,0x30(%rdi) + 42687b: 4c 89 77 38 mov %r14,0x38(%rdi) + 42687f: 48 8d 76 40 lea 0x40(%rsi),%rsi + 426883: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 426887: 74 5d je 4268e6 <__mempcpy+0x326> + 426889: 48 ff c9 dec %rcx + 42688c: 48 8b 06 mov (%rsi),%rax + 42688f: 48 8b 5e 08 mov 0x8(%rsi),%rbx + 426893: 4c 8b 4e 10 mov 0x10(%rsi),%r9 + 426897: 4c 8b 56 18 mov 0x18(%rsi),%r10 + 42689b: 4c 8b 5e 20 mov 0x20(%rsi),%r11 + 42689f: 4c 8b 66 28 mov 0x28(%rsi),%r12 + 4268a3: 4c 8b 6e 30 mov 0x30(%rsi),%r13 + 4268a7: 4c 8b 76 38 mov 0x38(%rsi),%r14 + 4268ab: 0f 18 8f 40 03 00 00 prefetcht0 0x340(%rdi) + 4268b2: 0f 18 8f 80 03 00 00 prefetcht0 0x380(%rdi) + 4268b9: 48 89 07 mov %rax,(%rdi) + 4268bc: 48 89 5f 08 mov %rbx,0x8(%rdi) + 4268c0: 4c 89 4f 10 mov %r9,0x10(%rdi) + 4268c4: 4c 89 57 18 mov %r10,0x18(%rdi) + 4268c8: 4c 89 5f 20 mov %r11,0x20(%rdi) + 4268cc: 4c 89 67 28 mov %r12,0x28(%rdi) + 4268d0: 4c 89 6f 30 mov %r13,0x30(%rdi) + 4268d4: 4c 89 77 38 mov %r14,0x38(%rdi) + 4268d8: 48 8d 76 40 lea 0x40(%rsi),%rsi + 4268dc: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 4268e0: 0f 85 4a ff ff ff jne 426830 <__mempcpy+0x270> + 4268e6: 48 8b 5c 24 e0 mov -0x20(%rsp),%rbx + 4268eb: 4c 8b 64 24 e8 mov -0x18(%rsp),%r12 + 4268f0: 4c 8b 6c 24 f0 mov -0x10(%rsp),%r13 + 4268f5: 4c 8b 74 24 f8 mov -0x8(%rsp),%r14 + 4268fa: 4c 29 c2 sub %r8,%rdx + 4268fd: 48 f7 c2 c0 ff ff ff test $0xffffffffffffffc0,%rdx + 426904: 75 1a jne 426920 <__mempcpy+0x360> + 426906: 83 e2 3f and $0x3f,%edx + 426909: 0f 85 b7 fc ff ff jne 4265c6 <__mempcpy+0x6> + 42690f: 48 89 f8 mov %rdi,%rax + 426912: c3 retq + 426913: 0f 1f 00 nopl (%rax) + 426916: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42691d: 00 00 00 + 426920: 48 89 d1 mov %rdx,%rcx + 426923: 48 c1 e9 07 shr $0x7,%rcx + 426927: 0f 84 d8 00 00 00 je 426a05 <__mempcpy+0x445> + 42692d: 4c 89 74 24 f8 mov %r14,-0x8(%rsp) + 426932: 4c 89 6c 24 f0 mov %r13,-0x10(%rsp) + 426937: 4c 89 64 24 e8 mov %r12,-0x18(%rsp) + 42693c: 0f 1f 40 00 nopl 0x0(%rax) + 426940: 0f 18 86 00 03 00 00 prefetchnta 0x300(%rsi) + 426947: 0f 18 86 40 03 00 00 prefetchnta 0x340(%rsi) + 42694e: 48 ff c9 dec %rcx + 426951: 48 8b 06 mov (%rsi),%rax + 426954: 4c 8b 46 08 mov 0x8(%rsi),%r8 + 426958: 4c 8b 4e 10 mov 0x10(%rsi),%r9 + 42695c: 4c 8b 56 18 mov 0x18(%rsi),%r10 + 426960: 4c 8b 5e 20 mov 0x20(%rsi),%r11 + 426964: 4c 8b 66 28 mov 0x28(%rsi),%r12 + 426968: 4c 8b 6e 30 mov 0x30(%rsi),%r13 + 42696c: 4c 8b 76 38 mov 0x38(%rsi),%r14 + 426970: 48 0f c3 07 movnti %rax,(%rdi) + 426974: 4c 0f c3 47 08 movnti %r8,0x8(%rdi) + 426979: 4c 0f c3 4f 10 movnti %r9,0x10(%rdi) + 42697e: 4c 0f c3 57 18 movnti %r10,0x18(%rdi) + 426983: 4c 0f c3 5f 20 movnti %r11,0x20(%rdi) + 426988: 4c 0f c3 67 28 movnti %r12,0x28(%rdi) + 42698d: 4c 0f c3 6f 30 movnti %r13,0x30(%rdi) + 426992: 4c 0f c3 77 38 movnti %r14,0x38(%rdi) + 426997: 48 8b 46 40 mov 0x40(%rsi),%rax + 42699b: 4c 8b 46 48 mov 0x48(%rsi),%r8 + 42699f: 4c 8b 4e 50 mov 0x50(%rsi),%r9 + 4269a3: 4c 8b 56 58 mov 0x58(%rsi),%r10 + 4269a7: 4c 8b 5e 60 mov 0x60(%rsi),%r11 + 4269ab: 4c 8b 66 68 mov 0x68(%rsi),%r12 + 4269af: 4c 8b 6e 70 mov 0x70(%rsi),%r13 + 4269b3: 4c 8b 76 78 mov 0x78(%rsi),%r14 + 4269b7: 48 0f c3 47 40 movnti %rax,0x40(%rdi) + 4269bc: 4c 0f c3 47 48 movnti %r8,0x48(%rdi) + 4269c1: 4c 0f c3 4f 50 movnti %r9,0x50(%rdi) + 4269c6: 4c 0f c3 57 58 movnti %r10,0x58(%rdi) + 4269cb: 4c 0f c3 5f 60 movnti %r11,0x60(%rdi) + 4269d0: 4c 0f c3 67 68 movnti %r12,0x68(%rdi) + 4269d5: 4c 0f c3 6f 70 movnti %r13,0x70(%rdi) + 4269da: 4c 0f c3 77 78 movnti %r14,0x78(%rdi) + 4269df: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 4269e6: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 4269ed: 0f 85 4d ff ff ff jne 426940 <__mempcpy+0x380> + 4269f3: 0f ae f8 sfence + 4269f6: 4c 8b 64 24 e8 mov -0x18(%rsp),%r12 + 4269fb: 4c 8b 6c 24 f0 mov -0x10(%rsp),%r13 + 426a00: 4c 8b 74 24 f8 mov -0x8(%rsp),%r14 + 426a05: 83 e2 7f and $0x7f,%edx + 426a08: 0f 85 b8 fb ff ff jne 4265c6 <__mempcpy+0x6> + 426a0e: 48 89 f8 mov %rdi,%rax + 426a11: c3 retq + 426a12: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 426a19: 00 00 00 + 426a1c: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000426a20 <__stpcpy>: + 426a20: 48 8d 05 39 49 01 00 lea 0x14939(%rip),%rax # 43b360 <__stpcpy_sse2_unaligned> + 426a27: f7 05 8f 5c 2a 00 10 testl $0x10,0x2a5c8f(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 426a2e: 00 00 00 + 426a31: 75 1a jne 426a4d <__stpcpy+0x2d> + 426a33: 48 8d 05 16 00 00 00 lea 0x16(%rip),%rax # 426a50 <__GI___stpcpy> + 426a3a: f7 05 4c 5c 2a 00 00 testl $0x200,0x2a5c4c(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> + 426a41: 02 00 00 + 426a44: 74 07 je 426a4d <__stpcpy+0x2d> + 426a46: 48 8d 05 d3 2a 01 00 lea 0x12ad3(%rip),%rax # 439520 <__stpcpy_ssse3> + 426a4d: c3 retq + 426a4e: 66 90 xchg %ax,%ax + +0000000000426a50 <__GI___stpcpy>: + 426a50: 48 89 f1 mov %rsi,%rcx + 426a53: 83 e1 07 and $0x7,%ecx + 426a56: 48 89 fa mov %rdi,%rdx + 426a59: 74 1b je 426a76 <__GI___stpcpy+0x26> + 426a5b: f7 d9 neg %ecx + 426a5d: 83 c1 08 add $0x8,%ecx + 426a60: 8a 06 mov (%rsi),%al + 426a62: 84 c0 test %al,%al + 426a64: 88 02 mov %al,(%rdx) + 426a66: 0f 84 bc 00 00 00 je 426b28 <__GI___stpcpy+0xd8> + 426a6c: 48 ff c6 inc %rsi + 426a6f: 48 ff c2 inc %rdx + 426a72: ff c9 dec %ecx + 426a74: 75 ea jne 426a60 <__GI___stpcpy+0x10> + 426a76: 49 b8 ff fe fe fe fe movabs $0xfefefefefefefeff,%r8 + 426a7d: fe fe fe + 426a80: 48 8b 06 mov (%rsi),%rax + 426a83: 48 83 c6 08 add $0x8,%rsi + 426a87: 49 89 c1 mov %rax,%r9 + 426a8a: 4d 01 c1 add %r8,%r9 + 426a8d: 0f 83 7d 00 00 00 jae 426b10 <__GI___stpcpy+0xc0> + 426a93: 49 31 c1 xor %rax,%r9 + 426a96: 4d 09 c1 or %r8,%r9 + 426a99: 49 ff c1 inc %r9 + 426a9c: 75 72 jne 426b10 <__GI___stpcpy+0xc0> + 426a9e: 48 89 02 mov %rax,(%rdx) + 426aa1: 48 83 c2 08 add $0x8,%rdx + 426aa5: 48 8b 06 mov (%rsi),%rax + 426aa8: 48 83 c6 08 add $0x8,%rsi + 426aac: 49 89 c1 mov %rax,%r9 + 426aaf: 4d 01 c1 add %r8,%r9 + 426ab2: 73 5c jae 426b10 <__GI___stpcpy+0xc0> + 426ab4: 49 31 c1 xor %rax,%r9 + 426ab7: 4d 09 c1 or %r8,%r9 + 426aba: 49 ff c1 inc %r9 + 426abd: 75 51 jne 426b10 <__GI___stpcpy+0xc0> + 426abf: 48 89 02 mov %rax,(%rdx) + 426ac2: 48 83 c2 08 add $0x8,%rdx + 426ac6: 48 8b 06 mov (%rsi),%rax + 426ac9: 48 83 c6 08 add $0x8,%rsi + 426acd: 49 89 c1 mov %rax,%r9 + 426ad0: 4d 01 c1 add %r8,%r9 + 426ad3: 73 3b jae 426b10 <__GI___stpcpy+0xc0> + 426ad5: 49 31 c1 xor %rax,%r9 + 426ad8: 4d 09 c1 or %r8,%r9 + 426adb: 49 ff c1 inc %r9 + 426ade: 75 30 jne 426b10 <__GI___stpcpy+0xc0> + 426ae0: 48 89 02 mov %rax,(%rdx) + 426ae3: 48 83 c2 08 add $0x8,%rdx + 426ae7: 48 8b 06 mov (%rsi),%rax + 426aea: 48 83 c6 08 add $0x8,%rsi + 426aee: 49 89 c1 mov %rax,%r9 + 426af1: 4d 01 c1 add %r8,%r9 + 426af4: 73 1a jae 426b10 <__GI___stpcpy+0xc0> + 426af6: 49 31 c1 xor %rax,%r9 + 426af9: 4d 09 c1 or %r8,%r9 + 426afc: 49 ff c1 inc %r9 + 426aff: 75 0f jne 426b10 <__GI___stpcpy+0xc0> + 426b01: 48 89 02 mov %rax,(%rdx) + 426b04: 48 83 c2 08 add $0x8,%rdx + 426b08: e9 73 ff ff ff jmpq 426a80 <__GI___stpcpy+0x30> + 426b0d: 0f 1f 00 nopl (%rax) + 426b10: 88 02 mov %al,(%rdx) + 426b12: 84 c0 test %al,%al + 426b14: 74 12 je 426b28 <__GI___stpcpy+0xd8> + 426b16: 48 ff c2 inc %rdx + 426b19: 88 22 mov %ah,(%rdx) + 426b1b: 84 e4 test %ah,%ah + 426b1d: 74 09 je 426b28 <__GI___stpcpy+0xd8> + 426b1f: 48 ff c2 inc %rdx + 426b22: 48 c1 e8 10 shr $0x10,%rax + 426b26: eb e8 jmp 426b10 <__GI___stpcpy+0xc0> + 426b28: 48 89 d0 mov %rdx,%rax + 426b2b: c3 retq + 426b2c: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000426b30 <__strcasecmp_l>: + 426b30: f7 05 86 5b 2a 00 00 testl $0x200,0x2a5b86(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 426b37: 02 00 00 + 426b3a: 75 13 jne 426b4f <__strcasecmp_l+0x1f> + 426b3c: 48 8d 05 cd 22 00 00 lea 0x22cd(%rip),%rax # 428e10 <__strcasecmp_l_sse42> + 426b43: f7 05 43 5b 2a 00 00 testl $0x100000,0x2a5b43(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> + 426b4a: 00 10 00 + 426b4d: 75 1a jne 426b69 <__strcasecmp_l+0x39> + 426b4f: 48 8d 05 da f0 00 00 lea 0xf0da(%rip),%rax # 435c30 <__strcasecmp_l_ssse3> + 426b56: f7 05 30 5b 2a 00 00 testl $0x200,0x2a5b30(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> + 426b5d: 02 00 00 + 426b60: 75 07 jne 426b69 <__strcasecmp_l+0x39> + 426b62: 48 8d 05 67 00 00 00 lea 0x67(%rip),%rax # 426bd0 <__GI___strcasecmp_l> + 426b69: c3 retq + 426b6a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +0000000000426b70 <__strcasecmp>: + 426b70: 48 8d 05 39 3e 00 00 lea 0x3e39(%rip),%rax # 42a9b0 <__strcasecmp_avx> + 426b77: f7 05 3f 5b 2a 00 40 testl $0x40,0x2a5b3f(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 426b7e: 00 00 00 + 426b81: 75 39 jne 426bbc <__strcasecmp+0x4c> + 426b83: f7 05 33 5b 2a 00 00 testl $0x200,0x2a5b33(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> + 426b8a: 02 00 00 + 426b8d: 75 13 jne 426ba2 <__strcasecmp+0x32> + 426b8f: 48 8d 05 6a 22 00 00 lea 0x226a(%rip),%rax # 428e00 <__strcasecmp_sse42> + 426b96: f7 05 f0 5a 2a 00 00 testl $0x100000,0x2a5af0(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> + 426b9d: 00 10 00 + 426ba0: 75 1a jne 426bbc <__strcasecmp+0x4c> + 426ba2: 48 8d 05 77 f0 00 00 lea 0xf077(%rip),%rax # 435c20 <__strcasecmp_ssse3> + 426ba9: f7 05 dd 5a 2a 00 00 testl $0x200,0x2a5add(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> + 426bb0: 02 00 00 + 426bb3: 75 07 jne 426bbc <__strcasecmp+0x4c> + 426bb5: 48 8d 05 04 00 00 00 lea 0x4(%rip),%rax # 426bc0 <__strcasecmp_sse2> + 426bbc: c3 retq + 426bbd: 0f 1f 00 nopl (%rax) + +0000000000426bc0 <__strcasecmp_sse2>: + 426bc0: 48 c7 c0 b8 ff ff ff mov $0xffffffffffffffb8,%rax + 426bc7: 64 48 8b 10 mov %fs:(%rax),%rdx + 426bcb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000426bd0 <__GI___strcasecmp_l>: + 426bd0: 48 8b 02 mov (%rdx),%rax + 426bd3: f7 80 78 02 00 00 01 testl $0x1,0x278(%rax) + 426bda: 00 00 00 + 426bdd: 0f 85 1d 77 01 00 jne 43e300 <__strcasecmp_l_nonascii> + 426be3: 89 f1 mov %esi,%ecx + 426be5: 89 f8 mov %edi,%eax + 426be7: 48 83 e1 3f and $0x3f,%rcx + 426beb: 48 83 e0 3f and $0x3f,%rax + 426bef: 66 0f 6f 2d b9 c4 07 movdqa 0x7c4b9(%rip),%xmm5 # 4a30b0 <__func__.10972+0xf0> + 426bf6: 00 + 426bf7: 66 0f 6f 35 c1 c4 07 movdqa 0x7c4c1(%rip),%xmm6 # 4a30c0 <__func__.10972+0x100> + 426bfe: 00 + 426bff: 66 0f 6f 3d c9 c4 07 movdqa 0x7c4c9(%rip),%xmm7 # 4a30d0 + 426c06: 00 + 426c07: 83 f9 30 cmp $0x30,%ecx + 426c0a: 0f 87 90 00 00 00 ja 426ca0 <__GI___strcasecmp_l+0xd0> + 426c10: 83 f8 30 cmp $0x30,%eax + 426c13: 0f 87 87 00 00 00 ja 426ca0 <__GI___strcasecmp_l+0xd0> + 426c19: 66 0f 12 0f movlpd (%rdi),%xmm1 + 426c1d: 66 0f 12 16 movlpd (%rsi),%xmm2 + 426c21: 66 0f 16 4f 08 movhpd 0x8(%rdi),%xmm1 + 426c26: 66 0f 16 56 08 movhpd 0x8(%rsi),%xmm2 + 426c2b: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 426c30: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 426c35: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 426c3a: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 426c3f: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 426c44: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 426c49: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 426c4e: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 426c53: 66 45 0f db c1 pand %xmm9,%xmm8 + 426c58: 66 45 0f db d3 pand %xmm11,%xmm10 + 426c5d: 66 44 0f db c7 pand %xmm7,%xmm8 + 426c62: 66 44 0f db d7 pand %xmm7,%xmm10 + 426c67: 66 41 0f eb c8 por %xmm8,%xmm1 + 426c6c: 66 41 0f eb d2 por %xmm10,%xmm2 + 426c71: 66 0f ef c0 pxor %xmm0,%xmm0 + 426c75: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 426c79: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 426c7d: 66 0f f8 c8 psubb %xmm0,%xmm1 + 426c81: 66 0f d7 d1 pmovmskb %xmm1,%edx + 426c85: 81 ea ff ff 00 00 sub $0xffff,%edx + 426c8b: 0f 85 2f 21 00 00 jne 428dc0 <__GI___strcasecmp_l+0x21f0> + 426c91: 48 83 c6 10 add $0x10,%rsi + 426c95: 48 83 c7 10 add $0x10,%rdi + 426c99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 426ca0: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 426ca4: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 426ca8: ba ff ff 00 00 mov $0xffff,%edx + 426cad: 45 31 c0 xor %r8d,%r8d + 426cb0: 83 e1 0f and $0xf,%ecx + 426cb3: 83 e0 0f and $0xf,%eax + 426cb6: 39 c1 cmp %eax,%ecx + 426cb8: 74 26 je 426ce0 <__GI___strcasecmp_l+0x110> + 426cba: 77 07 ja 426cc3 <__GI___strcasecmp_l+0xf3> + 426cbc: 41 89 d0 mov %edx,%r8d + 426cbf: 91 xchg %eax,%ecx + 426cc0: 48 87 f7 xchg %rsi,%rdi + 426cc3: 4c 8d 48 0f lea 0xf(%rax),%r9 + 426cc7: 49 29 c9 sub %rcx,%r9 + 426cca: 4c 8d 15 9f c4 07 00 lea 0x7c49f(%rip),%r10 # 4a3170 + 426cd1: 4f 63 0c 8a movslq (%r10,%r9,4),%r9 + 426cd5: 4f 8d 14 0a lea (%r10,%r9,1),%r10 + 426cd9: 41 ff e2 jmpq *%r10 + 426cdc: 0f 1f 40 00 nopl 0x0(%rax) + 426ce0: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 426ce4: 66 0f ef c0 pxor %xmm0,%xmm0 + 426ce8: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 426cec: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 426cf0: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 426cf5: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 426cfa: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 426cff: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 426d04: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 426d09: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 426d0e: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 426d13: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 426d18: 66 45 0f db c1 pand %xmm9,%xmm8 + 426d1d: 66 45 0f db d3 pand %xmm11,%xmm10 + 426d22: 66 44 0f db c7 pand %xmm7,%xmm8 + 426d27: 66 44 0f db d7 pand %xmm7,%xmm10 + 426d2c: 66 41 0f eb c8 por %xmm8,%xmm1 + 426d31: 66 41 0f eb d2 por %xmm10,%xmm2 + 426d36: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 426d3a: 66 0f f8 c8 psubb %xmm0,%xmm1 + 426d3e: 66 44 0f d7 c9 pmovmskb %xmm1,%r9d + 426d43: d3 ea shr %cl,%edx + 426d45: 41 d3 e9 shr %cl,%r9d + 426d48: 44 29 ca sub %r9d,%edx + 426d4b: 0f 85 54 20 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> + 426d51: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 426d58: 49 c7 c1 10 00 00 00 mov $0x10,%r9 + 426d5f: 66 0f ef c0 pxor %xmm0,%xmm0 + 426d63: 0f 1f 00 nopl (%rax) + 426d66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 426d6d: 00 00 00 + 426d70: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 426d75: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 426d7a: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 426d7f: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 426d84: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 426d89: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 426d8e: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 426d93: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 426d98: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 426d9d: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 426da2: 66 45 0f db c1 pand %xmm9,%xmm8 + 426da7: 66 45 0f db d3 pand %xmm11,%xmm10 + 426dac: 66 44 0f db c7 pand %xmm7,%xmm8 + 426db1: 66 44 0f db d7 pand %xmm7,%xmm10 + 426db6: 66 41 0f eb c8 por %xmm8,%xmm1 + 426dbb: 66 41 0f eb d2 por %xmm10,%xmm2 + 426dc0: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 426dc4: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 426dc8: 66 0f f8 c8 psubb %xmm0,%xmm1 + 426dcc: 66 0f d7 d1 pmovmskb %xmm1,%edx + 426dd0: 81 ea ff ff 00 00 sub $0xffff,%edx + 426dd6: 0f 85 c4 1f 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 426ddc: 48 83 c1 10 add $0x10,%rcx + 426de0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 426de5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 426dea: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 426def: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 426df4: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 426df9: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 426dfe: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 426e03: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 426e08: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 426e0d: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 426e12: 66 45 0f db c1 pand %xmm9,%xmm8 + 426e17: 66 45 0f db d3 pand %xmm11,%xmm10 + 426e1c: 66 44 0f db c7 pand %xmm7,%xmm8 + 426e21: 66 44 0f db d7 pand %xmm7,%xmm10 + 426e26: 66 41 0f eb c8 por %xmm8,%xmm1 + 426e2b: 66 41 0f eb d2 por %xmm10,%xmm2 + 426e30: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 426e34: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 426e38: 66 0f f8 c8 psubb %xmm0,%xmm1 + 426e3c: 66 0f d7 d1 pmovmskb %xmm1,%edx + 426e40: 81 ea ff ff 00 00 sub $0xffff,%edx + 426e46: 0f 85 54 1f 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 426e4c: 48 83 c1 10 add $0x10,%rcx + 426e50: e9 1b ff ff ff jmpq 426d70 <__GI___strcasecmp_l+0x1a0> + 426e55: 90 nop + 426e56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 426e5d: 00 00 00 + 426e60: 66 0f ef c0 pxor %xmm0,%xmm0 + 426e64: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 426e68: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 426e6c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 426e70: 66 0f 73 fa 0f pslldq $0xf,%xmm2 + 426e75: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 426e7a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 426e7f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 426e84: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 426e89: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 426e8e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 426e93: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 426e98: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 426e9d: 66 45 0f db c1 pand %xmm9,%xmm8 + 426ea2: 66 45 0f db d3 pand %xmm11,%xmm10 + 426ea7: 66 44 0f db c7 pand %xmm7,%xmm8 + 426eac: 66 44 0f db d7 pand %xmm7,%xmm10 + 426eb1: 66 41 0f eb c8 por %xmm8,%xmm1 + 426eb6: 66 41 0f eb d2 por %xmm10,%xmm2 + 426ebb: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 426ebf: 66 0f f8 d0 psubb %xmm0,%xmm2 + 426ec3: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 426ec8: d3 ea shr %cl,%edx + 426eca: 41 d3 e9 shr %cl,%r9d + 426ecd: 44 29 ca sub %r9d,%edx + 426ed0: 0f 85 cf 1e 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> + 426ed6: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 426eda: 66 0f ef c0 pxor %xmm0,%xmm0 + 426ede: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 426ee5: 41 b9 01 00 00 00 mov $0x1,%r9d + 426eeb: 4c 8d 57 01 lea 0x1(%rdi),%r10 + 426eef: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 426ef6: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 426efd: 0f 1f 00 nopl (%rax) + 426f00: 49 83 c2 10 add $0x10,%r10 + 426f04: 0f 8f 26 01 00 00 jg 427030 <__GI___strcasecmp_l+0x460> + 426f0a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 426f0f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 426f14: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 426f18: 66 0f 73 db 01 psrldq $0x1,%xmm3 + 426f1d: 66 0f 73 fa 0f pslldq $0xf,%xmm2 + 426f22: 66 0f eb d3 por %xmm3,%xmm2 + 426f26: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 426f2b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 426f30: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 426f35: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 426f3a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 426f3f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 426f44: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 426f49: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 426f4e: 66 45 0f db c1 pand %xmm9,%xmm8 + 426f53: 66 45 0f db d3 pand %xmm11,%xmm10 + 426f58: 66 44 0f db c7 pand %xmm7,%xmm8 + 426f5d: 66 44 0f db d7 pand %xmm7,%xmm10 + 426f62: 66 41 0f eb c8 por %xmm8,%xmm1 + 426f67: 66 41 0f eb d2 por %xmm10,%xmm2 + 426f6c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 426f70: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 426f74: 66 0f f8 c8 psubb %xmm0,%xmm1 + 426f78: 66 0f d7 d1 pmovmskb %xmm1,%edx + 426f7c: 81 ea ff ff 00 00 sub $0xffff,%edx + 426f82: 0f 85 18 1e 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 426f88: 48 83 c1 10 add $0x10,%rcx + 426f8c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 426f90: 49 83 c2 10 add $0x10,%r10 + 426f94: 0f 8f 96 00 00 00 jg 427030 <__GI___strcasecmp_l+0x460> + 426f9a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 426f9f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 426fa4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 426fa8: 66 0f 73 db 01 psrldq $0x1,%xmm3 + 426fad: 66 0f 73 fa 0f pslldq $0xf,%xmm2 + 426fb2: 66 0f eb d3 por %xmm3,%xmm2 + 426fb6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 426fbb: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 426fc0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 426fc5: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 426fca: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 426fcf: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 426fd4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 426fd9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 426fde: 66 45 0f db c1 pand %xmm9,%xmm8 + 426fe3: 66 45 0f db d3 pand %xmm11,%xmm10 + 426fe8: 66 44 0f db c7 pand %xmm7,%xmm8 + 426fed: 66 44 0f db d7 pand %xmm7,%xmm10 + 426ff2: 66 41 0f eb c8 por %xmm8,%xmm1 + 426ff7: 66 41 0f eb d2 por %xmm10,%xmm2 + 426ffc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427000: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 427004: 66 0f f8 c8 psubb %xmm0,%xmm1 + 427008: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42700c: 81 ea ff ff 00 00 sub $0xffff,%edx + 427012: 0f 85 88 1d 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 427018: 48 83 c1 10 add $0x10,%rcx + 42701c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 427020: e9 db fe ff ff jmpq 426f00 <__GI___strcasecmp_l+0x330> + 427025: 90 nop + 427026: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42702d: 00 00 00 + 427030: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 427034: 66 0f d7 d0 pmovmskb %xmm0,%edx + 427038: f7 c2 fe ff 00 00 test $0xfffe,%edx + 42703e: 75 10 jne 427050 <__GI___strcasecmp_l+0x480> + 427040: 66 0f ef c0 pxor %xmm0,%xmm0 + 427044: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42704b: e9 ba fe ff ff jmpq 426f0a <__GI___strcasecmp_l+0x33a> + 427050: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 427055: 66 0f 73 d8 01 psrldq $0x1,%xmm0 + 42705a: 66 0f 73 db 01 psrldq $0x1,%xmm3 + 42705f: e9 dc 1c 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> + 427064: 66 90 xchg %ax,%ax + 427066: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42706d: 00 00 00 + 427070: 66 0f ef c0 pxor %xmm0,%xmm0 + 427074: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 427078: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42707c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427080: 66 0f 73 fa 0e pslldq $0xe,%xmm2 + 427085: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42708a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 42708f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 427094: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 427099: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42709e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4270a3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4270a8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4270ad: 66 45 0f db c1 pand %xmm9,%xmm8 + 4270b2: 66 45 0f db d3 pand %xmm11,%xmm10 + 4270b7: 66 44 0f db c7 pand %xmm7,%xmm8 + 4270bc: 66 44 0f db d7 pand %xmm7,%xmm10 + 4270c1: 66 41 0f eb c8 por %xmm8,%xmm1 + 4270c6: 66 41 0f eb d2 por %xmm10,%xmm2 + 4270cb: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 4270cf: 66 0f f8 d0 psubb %xmm0,%xmm2 + 4270d3: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 4270d8: d3 ea shr %cl,%edx + 4270da: 41 d3 e9 shr %cl,%r9d + 4270dd: 44 29 ca sub %r9d,%edx + 4270e0: 0f 85 bf 1c 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> + 4270e6: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 4270ea: 66 0f ef c0 pxor %xmm0,%xmm0 + 4270ee: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4270f5: 41 b9 02 00 00 00 mov $0x2,%r9d + 4270fb: 4c 8d 57 02 lea 0x2(%rdi),%r10 + 4270ff: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 427106: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42710d: 0f 1f 00 nopl (%rax) + 427110: 49 83 c2 10 add $0x10,%r10 + 427114: 0f 8f 26 01 00 00 jg 427240 <__GI___strcasecmp_l+0x670> + 42711a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42711f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 427124: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 427128: 66 0f 73 db 02 psrldq $0x2,%xmm3 + 42712d: 66 0f 73 fa 0e pslldq $0xe,%xmm2 + 427132: 66 0f eb d3 por %xmm3,%xmm2 + 427136: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42713b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 427140: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 427145: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 42714a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42714f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 427154: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 427159: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42715e: 66 45 0f db c1 pand %xmm9,%xmm8 + 427163: 66 45 0f db d3 pand %xmm11,%xmm10 + 427168: 66 44 0f db c7 pand %xmm7,%xmm8 + 42716d: 66 44 0f db d7 pand %xmm7,%xmm10 + 427172: 66 41 0f eb c8 por %xmm8,%xmm1 + 427177: 66 41 0f eb d2 por %xmm10,%xmm2 + 42717c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427180: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 427184: 66 0f f8 c8 psubb %xmm0,%xmm1 + 427188: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42718c: 81 ea ff ff 00 00 sub $0xffff,%edx + 427192: 0f 85 08 1c 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 427198: 48 83 c1 10 add $0x10,%rcx + 42719c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4271a0: 49 83 c2 10 add $0x10,%r10 + 4271a4: 0f 8f 96 00 00 00 jg 427240 <__GI___strcasecmp_l+0x670> + 4271aa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4271af: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4271b4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4271b8: 66 0f 73 db 02 psrldq $0x2,%xmm3 + 4271bd: 66 0f 73 fa 0e pslldq $0xe,%xmm2 + 4271c2: 66 0f eb d3 por %xmm3,%xmm2 + 4271c6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4271cb: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4271d0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4271d5: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4271da: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4271df: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4271e4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4271e9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4271ee: 66 45 0f db c1 pand %xmm9,%xmm8 + 4271f3: 66 45 0f db d3 pand %xmm11,%xmm10 + 4271f8: 66 44 0f db c7 pand %xmm7,%xmm8 + 4271fd: 66 44 0f db d7 pand %xmm7,%xmm10 + 427202: 66 41 0f eb c8 por %xmm8,%xmm1 + 427207: 66 41 0f eb d2 por %xmm10,%xmm2 + 42720c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427210: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 427214: 66 0f f8 c8 psubb %xmm0,%xmm1 + 427218: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42721c: 81 ea ff ff 00 00 sub $0xffff,%edx + 427222: 0f 85 78 1b 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 427228: 48 83 c1 10 add $0x10,%rcx + 42722c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 427230: e9 db fe ff ff jmpq 427110 <__GI___strcasecmp_l+0x540> + 427235: 90 nop + 427236: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42723d: 00 00 00 + 427240: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 427244: 66 0f d7 d0 pmovmskb %xmm0,%edx + 427248: f7 c2 fc ff 00 00 test $0xfffc,%edx + 42724e: 75 10 jne 427260 <__GI___strcasecmp_l+0x690> + 427250: 66 0f ef c0 pxor %xmm0,%xmm0 + 427254: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42725b: e9 ba fe ff ff jmpq 42711a <__GI___strcasecmp_l+0x54a> + 427260: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 427265: 66 0f 73 d8 02 psrldq $0x2,%xmm0 + 42726a: 66 0f 73 db 02 psrldq $0x2,%xmm3 + 42726f: e9 cc 1a 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> + 427274: 66 90 xchg %ax,%ax + 427276: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42727d: 00 00 00 + 427280: 66 0f ef c0 pxor %xmm0,%xmm0 + 427284: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 427288: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42728c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427290: 66 0f 73 fa 0d pslldq $0xd,%xmm2 + 427295: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42729a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 42729f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4272a4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4272a9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4272ae: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4272b3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4272b8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4272bd: 66 45 0f db c1 pand %xmm9,%xmm8 + 4272c2: 66 45 0f db d3 pand %xmm11,%xmm10 + 4272c7: 66 44 0f db c7 pand %xmm7,%xmm8 + 4272cc: 66 44 0f db d7 pand %xmm7,%xmm10 + 4272d1: 66 41 0f eb c8 por %xmm8,%xmm1 + 4272d6: 66 41 0f eb d2 por %xmm10,%xmm2 + 4272db: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 4272df: 66 0f f8 d0 psubb %xmm0,%xmm2 + 4272e3: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 4272e8: d3 ea shr %cl,%edx + 4272ea: 41 d3 e9 shr %cl,%r9d + 4272ed: 44 29 ca sub %r9d,%edx + 4272f0: 0f 85 af 1a 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> + 4272f6: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 4272fa: 66 0f ef c0 pxor %xmm0,%xmm0 + 4272fe: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 427305: 41 b9 03 00 00 00 mov $0x3,%r9d + 42730b: 4c 8d 57 03 lea 0x3(%rdi),%r10 + 42730f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 427316: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42731d: 0f 1f 00 nopl (%rax) + 427320: 49 83 c2 10 add $0x10,%r10 + 427324: 0f 8f 26 01 00 00 jg 427450 <__GI___strcasecmp_l+0x880> + 42732a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42732f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 427334: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 427338: 66 0f 73 db 03 psrldq $0x3,%xmm3 + 42733d: 66 0f 73 fa 0d pslldq $0xd,%xmm2 + 427342: 66 0f eb d3 por %xmm3,%xmm2 + 427346: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42734b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 427350: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 427355: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 42735a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42735f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 427364: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 427369: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42736e: 66 45 0f db c1 pand %xmm9,%xmm8 + 427373: 66 45 0f db d3 pand %xmm11,%xmm10 + 427378: 66 44 0f db c7 pand %xmm7,%xmm8 + 42737d: 66 44 0f db d7 pand %xmm7,%xmm10 + 427382: 66 41 0f eb c8 por %xmm8,%xmm1 + 427387: 66 41 0f eb d2 por %xmm10,%xmm2 + 42738c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427390: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 427394: 66 0f f8 c8 psubb %xmm0,%xmm1 + 427398: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42739c: 81 ea ff ff 00 00 sub $0xffff,%edx + 4273a2: 0f 85 f8 19 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 4273a8: 48 83 c1 10 add $0x10,%rcx + 4273ac: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4273b0: 49 83 c2 10 add $0x10,%r10 + 4273b4: 0f 8f 96 00 00 00 jg 427450 <__GI___strcasecmp_l+0x880> + 4273ba: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4273bf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4273c4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4273c8: 66 0f 73 db 03 psrldq $0x3,%xmm3 + 4273cd: 66 0f 73 fa 0d pslldq $0xd,%xmm2 + 4273d2: 66 0f eb d3 por %xmm3,%xmm2 + 4273d6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4273db: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4273e0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4273e5: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4273ea: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4273ef: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4273f4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4273f9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4273fe: 66 45 0f db c1 pand %xmm9,%xmm8 + 427403: 66 45 0f db d3 pand %xmm11,%xmm10 + 427408: 66 44 0f db c7 pand %xmm7,%xmm8 + 42740d: 66 44 0f db d7 pand %xmm7,%xmm10 + 427412: 66 41 0f eb c8 por %xmm8,%xmm1 + 427417: 66 41 0f eb d2 por %xmm10,%xmm2 + 42741c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427420: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 427424: 66 0f f8 c8 psubb %xmm0,%xmm1 + 427428: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42742c: 81 ea ff ff 00 00 sub $0xffff,%edx + 427432: 0f 85 68 19 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 427438: 48 83 c1 10 add $0x10,%rcx + 42743c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 427440: e9 db fe ff ff jmpq 427320 <__GI___strcasecmp_l+0x750> + 427445: 90 nop + 427446: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42744d: 00 00 00 + 427450: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 427454: 66 0f d7 d0 pmovmskb %xmm0,%edx + 427458: f7 c2 f8 ff 00 00 test $0xfff8,%edx + 42745e: 75 10 jne 427470 <__GI___strcasecmp_l+0x8a0> + 427460: 66 0f ef c0 pxor %xmm0,%xmm0 + 427464: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42746b: e9 ba fe ff ff jmpq 42732a <__GI___strcasecmp_l+0x75a> + 427470: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 427475: 66 0f 73 d8 03 psrldq $0x3,%xmm0 + 42747a: 66 0f 73 db 03 psrldq $0x3,%xmm3 + 42747f: e9 bc 18 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> + 427484: 66 90 xchg %ax,%ax + 427486: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42748d: 00 00 00 + 427490: 66 0f ef c0 pxor %xmm0,%xmm0 + 427494: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 427498: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42749c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4274a0: 66 0f 73 fa 0c pslldq $0xc,%xmm2 + 4274a5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4274aa: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4274af: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4274b4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4274b9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4274be: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4274c3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4274c8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4274cd: 66 45 0f db c1 pand %xmm9,%xmm8 + 4274d2: 66 45 0f db d3 pand %xmm11,%xmm10 + 4274d7: 66 44 0f db c7 pand %xmm7,%xmm8 + 4274dc: 66 44 0f db d7 pand %xmm7,%xmm10 + 4274e1: 66 41 0f eb c8 por %xmm8,%xmm1 + 4274e6: 66 41 0f eb d2 por %xmm10,%xmm2 + 4274eb: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 4274ef: 66 0f f8 d0 psubb %xmm0,%xmm2 + 4274f3: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 4274f8: d3 ea shr %cl,%edx + 4274fa: 41 d3 e9 shr %cl,%r9d + 4274fd: 44 29 ca sub %r9d,%edx + 427500: 0f 85 9f 18 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> + 427506: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42750a: 66 0f ef c0 pxor %xmm0,%xmm0 + 42750e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 427515: 41 b9 04 00 00 00 mov $0x4,%r9d + 42751b: 4c 8d 57 04 lea 0x4(%rdi),%r10 + 42751f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 427526: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42752d: 0f 1f 00 nopl (%rax) + 427530: 49 83 c2 10 add $0x10,%r10 + 427534: 0f 8f 26 01 00 00 jg 427660 <__GI___strcasecmp_l+0xa90> + 42753a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42753f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 427544: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 427548: 66 0f 73 db 04 psrldq $0x4,%xmm3 + 42754d: 66 0f 73 fa 0c pslldq $0xc,%xmm2 + 427552: 66 0f eb d3 por %xmm3,%xmm2 + 427556: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42755b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 427560: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 427565: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 42756a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42756f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 427574: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 427579: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42757e: 66 45 0f db c1 pand %xmm9,%xmm8 + 427583: 66 45 0f db d3 pand %xmm11,%xmm10 + 427588: 66 44 0f db c7 pand %xmm7,%xmm8 + 42758d: 66 44 0f db d7 pand %xmm7,%xmm10 + 427592: 66 41 0f eb c8 por %xmm8,%xmm1 + 427597: 66 41 0f eb d2 por %xmm10,%xmm2 + 42759c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4275a0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4275a4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4275a8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4275ac: 81 ea ff ff 00 00 sub $0xffff,%edx + 4275b2: 0f 85 e8 17 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 4275b8: 48 83 c1 10 add $0x10,%rcx + 4275bc: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4275c0: 49 83 c2 10 add $0x10,%r10 + 4275c4: 0f 8f 96 00 00 00 jg 427660 <__GI___strcasecmp_l+0xa90> + 4275ca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4275cf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4275d4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4275d8: 66 0f 73 db 04 psrldq $0x4,%xmm3 + 4275dd: 66 0f 73 fa 0c pslldq $0xc,%xmm2 + 4275e2: 66 0f eb d3 por %xmm3,%xmm2 + 4275e6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4275eb: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4275f0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4275f5: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4275fa: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4275ff: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 427604: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 427609: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42760e: 66 45 0f db c1 pand %xmm9,%xmm8 + 427613: 66 45 0f db d3 pand %xmm11,%xmm10 + 427618: 66 44 0f db c7 pand %xmm7,%xmm8 + 42761d: 66 44 0f db d7 pand %xmm7,%xmm10 + 427622: 66 41 0f eb c8 por %xmm8,%xmm1 + 427627: 66 41 0f eb d2 por %xmm10,%xmm2 + 42762c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427630: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 427634: 66 0f f8 c8 psubb %xmm0,%xmm1 + 427638: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42763c: 81 ea ff ff 00 00 sub $0xffff,%edx + 427642: 0f 85 58 17 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 427648: 48 83 c1 10 add $0x10,%rcx + 42764c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 427650: e9 db fe ff ff jmpq 427530 <__GI___strcasecmp_l+0x960> + 427655: 90 nop + 427656: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42765d: 00 00 00 + 427660: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 427664: 66 0f d7 d0 pmovmskb %xmm0,%edx + 427668: f7 c2 f0 ff 00 00 test $0xfff0,%edx + 42766e: 75 10 jne 427680 <__GI___strcasecmp_l+0xab0> + 427670: 66 0f ef c0 pxor %xmm0,%xmm0 + 427674: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42767b: e9 ba fe ff ff jmpq 42753a <__GI___strcasecmp_l+0x96a> + 427680: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 427685: 66 0f 73 d8 04 psrldq $0x4,%xmm0 + 42768a: 66 0f 73 db 04 psrldq $0x4,%xmm3 + 42768f: e9 ac 16 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> + 427694: 66 90 xchg %ax,%ax + 427696: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42769d: 00 00 00 + 4276a0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4276a4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4276a8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4276ac: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4276b0: 66 0f 73 fa 0b pslldq $0xb,%xmm2 + 4276b5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4276ba: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4276bf: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4276c4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4276c9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4276ce: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4276d3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4276d8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4276dd: 66 45 0f db c1 pand %xmm9,%xmm8 + 4276e2: 66 45 0f db d3 pand %xmm11,%xmm10 + 4276e7: 66 44 0f db c7 pand %xmm7,%xmm8 + 4276ec: 66 44 0f db d7 pand %xmm7,%xmm10 + 4276f1: 66 41 0f eb c8 por %xmm8,%xmm1 + 4276f6: 66 41 0f eb d2 por %xmm10,%xmm2 + 4276fb: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 4276ff: 66 0f f8 d0 psubb %xmm0,%xmm2 + 427703: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 427708: d3 ea shr %cl,%edx + 42770a: 41 d3 e9 shr %cl,%r9d + 42770d: 44 29 ca sub %r9d,%edx + 427710: 0f 85 8f 16 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> + 427716: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42771a: 66 0f ef c0 pxor %xmm0,%xmm0 + 42771e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 427725: 41 b9 05 00 00 00 mov $0x5,%r9d + 42772b: 4c 8d 57 05 lea 0x5(%rdi),%r10 + 42772f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 427736: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42773d: 0f 1f 00 nopl (%rax) + 427740: 49 83 c2 10 add $0x10,%r10 + 427744: 0f 8f 26 01 00 00 jg 427870 <__GI___strcasecmp_l+0xca0> + 42774a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42774f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 427754: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 427758: 66 0f 73 db 05 psrldq $0x5,%xmm3 + 42775d: 66 0f 73 fa 0b pslldq $0xb,%xmm2 + 427762: 66 0f eb d3 por %xmm3,%xmm2 + 427766: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42776b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 427770: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 427775: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 42777a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42777f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 427784: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 427789: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42778e: 66 45 0f db c1 pand %xmm9,%xmm8 + 427793: 66 45 0f db d3 pand %xmm11,%xmm10 + 427798: 66 44 0f db c7 pand %xmm7,%xmm8 + 42779d: 66 44 0f db d7 pand %xmm7,%xmm10 + 4277a2: 66 41 0f eb c8 por %xmm8,%xmm1 + 4277a7: 66 41 0f eb d2 por %xmm10,%xmm2 + 4277ac: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4277b0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4277b4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4277b8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4277bc: 81 ea ff ff 00 00 sub $0xffff,%edx + 4277c2: 0f 85 d8 15 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 4277c8: 48 83 c1 10 add $0x10,%rcx + 4277cc: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4277d0: 49 83 c2 10 add $0x10,%r10 + 4277d4: 0f 8f 96 00 00 00 jg 427870 <__GI___strcasecmp_l+0xca0> + 4277da: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4277df: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4277e4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4277e8: 66 0f 73 db 05 psrldq $0x5,%xmm3 + 4277ed: 66 0f 73 fa 0b pslldq $0xb,%xmm2 + 4277f2: 66 0f eb d3 por %xmm3,%xmm2 + 4277f6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4277fb: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 427800: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 427805: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 42780a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42780f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 427814: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 427819: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42781e: 66 45 0f db c1 pand %xmm9,%xmm8 + 427823: 66 45 0f db d3 pand %xmm11,%xmm10 + 427828: 66 44 0f db c7 pand %xmm7,%xmm8 + 42782d: 66 44 0f db d7 pand %xmm7,%xmm10 + 427832: 66 41 0f eb c8 por %xmm8,%xmm1 + 427837: 66 41 0f eb d2 por %xmm10,%xmm2 + 42783c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427840: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 427844: 66 0f f8 c8 psubb %xmm0,%xmm1 + 427848: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42784c: 81 ea ff ff 00 00 sub $0xffff,%edx + 427852: 0f 85 48 15 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 427858: 48 83 c1 10 add $0x10,%rcx + 42785c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 427860: e9 db fe ff ff jmpq 427740 <__GI___strcasecmp_l+0xb70> + 427865: 90 nop + 427866: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42786d: 00 00 00 + 427870: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 427874: 66 0f d7 d0 pmovmskb %xmm0,%edx + 427878: f7 c2 e0 ff 00 00 test $0xffe0,%edx + 42787e: 75 10 jne 427890 <__GI___strcasecmp_l+0xcc0> + 427880: 66 0f ef c0 pxor %xmm0,%xmm0 + 427884: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42788b: e9 ba fe ff ff jmpq 42774a <__GI___strcasecmp_l+0xb7a> + 427890: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 427895: 66 0f 73 d8 05 psrldq $0x5,%xmm0 + 42789a: 66 0f 73 db 05 psrldq $0x5,%xmm3 + 42789f: e9 9c 14 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> + 4278a4: 66 90 xchg %ax,%ax + 4278a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4278ad: 00 00 00 + 4278b0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4278b4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4278b8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4278bc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4278c0: 66 0f 73 fa 0a pslldq $0xa,%xmm2 + 4278c5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4278ca: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4278cf: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4278d4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4278d9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4278de: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4278e3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4278e8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4278ed: 66 45 0f db c1 pand %xmm9,%xmm8 + 4278f2: 66 45 0f db d3 pand %xmm11,%xmm10 + 4278f7: 66 44 0f db c7 pand %xmm7,%xmm8 + 4278fc: 66 44 0f db d7 pand %xmm7,%xmm10 + 427901: 66 41 0f eb c8 por %xmm8,%xmm1 + 427906: 66 41 0f eb d2 por %xmm10,%xmm2 + 42790b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42790f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 427913: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 427918: d3 ea shr %cl,%edx + 42791a: 41 d3 e9 shr %cl,%r9d + 42791d: 44 29 ca sub %r9d,%edx + 427920: 0f 85 7f 14 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> + 427926: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42792a: 66 0f ef c0 pxor %xmm0,%xmm0 + 42792e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 427935: 41 b9 06 00 00 00 mov $0x6,%r9d + 42793b: 4c 8d 57 06 lea 0x6(%rdi),%r10 + 42793f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 427946: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42794d: 0f 1f 00 nopl (%rax) + 427950: 49 83 c2 10 add $0x10,%r10 + 427954: 0f 8f 26 01 00 00 jg 427a80 <__GI___strcasecmp_l+0xeb0> + 42795a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42795f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 427964: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 427968: 66 0f 73 db 06 psrldq $0x6,%xmm3 + 42796d: 66 0f 73 fa 0a pslldq $0xa,%xmm2 + 427972: 66 0f eb d3 por %xmm3,%xmm2 + 427976: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42797b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 427980: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 427985: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 42798a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42798f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 427994: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 427999: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42799e: 66 45 0f db c1 pand %xmm9,%xmm8 + 4279a3: 66 45 0f db d3 pand %xmm11,%xmm10 + 4279a8: 66 44 0f db c7 pand %xmm7,%xmm8 + 4279ad: 66 44 0f db d7 pand %xmm7,%xmm10 + 4279b2: 66 41 0f eb c8 por %xmm8,%xmm1 + 4279b7: 66 41 0f eb d2 por %xmm10,%xmm2 + 4279bc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4279c0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4279c4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4279c8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4279cc: 81 ea ff ff 00 00 sub $0xffff,%edx + 4279d2: 0f 85 c8 13 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 4279d8: 48 83 c1 10 add $0x10,%rcx + 4279dc: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4279e0: 49 83 c2 10 add $0x10,%r10 + 4279e4: 0f 8f 96 00 00 00 jg 427a80 <__GI___strcasecmp_l+0xeb0> + 4279ea: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4279ef: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4279f4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4279f8: 66 0f 73 db 06 psrldq $0x6,%xmm3 + 4279fd: 66 0f 73 fa 0a pslldq $0xa,%xmm2 + 427a02: 66 0f eb d3 por %xmm3,%xmm2 + 427a06: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 427a0b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 427a10: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 427a15: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 427a1a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 427a1f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 427a24: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 427a29: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 427a2e: 66 45 0f db c1 pand %xmm9,%xmm8 + 427a33: 66 45 0f db d3 pand %xmm11,%xmm10 + 427a38: 66 44 0f db c7 pand %xmm7,%xmm8 + 427a3d: 66 44 0f db d7 pand %xmm7,%xmm10 + 427a42: 66 41 0f eb c8 por %xmm8,%xmm1 + 427a47: 66 41 0f eb d2 por %xmm10,%xmm2 + 427a4c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427a50: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 427a54: 66 0f f8 c8 psubb %xmm0,%xmm1 + 427a58: 66 0f d7 d1 pmovmskb %xmm1,%edx + 427a5c: 81 ea ff ff 00 00 sub $0xffff,%edx + 427a62: 0f 85 38 13 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 427a68: 48 83 c1 10 add $0x10,%rcx + 427a6c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 427a70: e9 db fe ff ff jmpq 427950 <__GI___strcasecmp_l+0xd80> + 427a75: 90 nop + 427a76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 427a7d: 00 00 00 + 427a80: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 427a84: 66 0f d7 d0 pmovmskb %xmm0,%edx + 427a88: f7 c2 c0 ff 00 00 test $0xffc0,%edx + 427a8e: 75 10 jne 427aa0 <__GI___strcasecmp_l+0xed0> + 427a90: 66 0f ef c0 pxor %xmm0,%xmm0 + 427a94: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 427a9b: e9 ba fe ff ff jmpq 42795a <__GI___strcasecmp_l+0xd8a> + 427aa0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 427aa5: 66 0f 73 d8 06 psrldq $0x6,%xmm0 + 427aaa: 66 0f 73 db 06 psrldq $0x6,%xmm3 + 427aaf: e9 8c 12 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> + 427ab4: 66 90 xchg %ax,%ax + 427ab6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 427abd: 00 00 00 + 427ac0: 66 0f ef c0 pxor %xmm0,%xmm0 + 427ac4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 427ac8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 427acc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427ad0: 66 0f 73 fa 09 pslldq $0x9,%xmm2 + 427ad5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 427ada: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 427adf: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 427ae4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 427ae9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 427aee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 427af3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 427af8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 427afd: 66 45 0f db c1 pand %xmm9,%xmm8 + 427b02: 66 45 0f db d3 pand %xmm11,%xmm10 + 427b07: 66 44 0f db c7 pand %xmm7,%xmm8 + 427b0c: 66 44 0f db d7 pand %xmm7,%xmm10 + 427b11: 66 41 0f eb c8 por %xmm8,%xmm1 + 427b16: 66 41 0f eb d2 por %xmm10,%xmm2 + 427b1b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 427b1f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 427b23: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 427b28: d3 ea shr %cl,%edx + 427b2a: 41 d3 e9 shr %cl,%r9d + 427b2d: 44 29 ca sub %r9d,%edx + 427b30: 0f 85 6f 12 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> + 427b36: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 427b3a: 66 0f ef c0 pxor %xmm0,%xmm0 + 427b3e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 427b45: 41 b9 07 00 00 00 mov $0x7,%r9d + 427b4b: 4c 8d 57 07 lea 0x7(%rdi),%r10 + 427b4f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 427b56: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 427b5d: 0f 1f 00 nopl (%rax) + 427b60: 49 83 c2 10 add $0x10,%r10 + 427b64: 0f 8f 26 01 00 00 jg 427c90 <__GI___strcasecmp_l+0x10c0> + 427b6a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 427b6f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 427b74: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 427b78: 66 0f 73 db 07 psrldq $0x7,%xmm3 + 427b7d: 66 0f 73 fa 09 pslldq $0x9,%xmm2 + 427b82: 66 0f eb d3 por %xmm3,%xmm2 + 427b86: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 427b8b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 427b90: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 427b95: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 427b9a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 427b9f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 427ba4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 427ba9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 427bae: 66 45 0f db c1 pand %xmm9,%xmm8 + 427bb3: 66 45 0f db d3 pand %xmm11,%xmm10 + 427bb8: 66 44 0f db c7 pand %xmm7,%xmm8 + 427bbd: 66 44 0f db d7 pand %xmm7,%xmm10 + 427bc2: 66 41 0f eb c8 por %xmm8,%xmm1 + 427bc7: 66 41 0f eb d2 por %xmm10,%xmm2 + 427bcc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427bd0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 427bd4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 427bd8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 427bdc: 81 ea ff ff 00 00 sub $0xffff,%edx + 427be2: 0f 85 b8 11 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 427be8: 48 83 c1 10 add $0x10,%rcx + 427bec: 66 0f 6f dc movdqa %xmm4,%xmm3 + 427bf0: 49 83 c2 10 add $0x10,%r10 + 427bf4: 0f 8f 96 00 00 00 jg 427c90 <__GI___strcasecmp_l+0x10c0> + 427bfa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 427bff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 427c04: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 427c08: 66 0f 73 db 07 psrldq $0x7,%xmm3 + 427c0d: 66 0f 73 fa 09 pslldq $0x9,%xmm2 + 427c12: 66 0f eb d3 por %xmm3,%xmm2 + 427c16: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 427c1b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 427c20: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 427c25: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 427c2a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 427c2f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 427c34: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 427c39: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 427c3e: 66 45 0f db c1 pand %xmm9,%xmm8 + 427c43: 66 45 0f db d3 pand %xmm11,%xmm10 + 427c48: 66 44 0f db c7 pand %xmm7,%xmm8 + 427c4d: 66 44 0f db d7 pand %xmm7,%xmm10 + 427c52: 66 41 0f eb c8 por %xmm8,%xmm1 + 427c57: 66 41 0f eb d2 por %xmm10,%xmm2 + 427c5c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427c60: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 427c64: 66 0f f8 c8 psubb %xmm0,%xmm1 + 427c68: 66 0f d7 d1 pmovmskb %xmm1,%edx + 427c6c: 81 ea ff ff 00 00 sub $0xffff,%edx + 427c72: 0f 85 28 11 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 427c78: 48 83 c1 10 add $0x10,%rcx + 427c7c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 427c80: e9 db fe ff ff jmpq 427b60 <__GI___strcasecmp_l+0xf90> + 427c85: 90 nop + 427c86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 427c8d: 00 00 00 + 427c90: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 427c94: 66 0f d7 d0 pmovmskb %xmm0,%edx + 427c98: f7 c2 80 ff 00 00 test $0xff80,%edx + 427c9e: 75 10 jne 427cb0 <__GI___strcasecmp_l+0x10e0> + 427ca0: 66 0f ef c0 pxor %xmm0,%xmm0 + 427ca4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 427cab: e9 ba fe ff ff jmpq 427b6a <__GI___strcasecmp_l+0xf9a> + 427cb0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 427cb5: 66 0f 73 d8 07 psrldq $0x7,%xmm0 + 427cba: 66 0f 73 db 07 psrldq $0x7,%xmm3 + 427cbf: e9 7c 10 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> + 427cc4: 66 90 xchg %ax,%ax + 427cc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 427ccd: 00 00 00 + 427cd0: 66 0f ef c0 pxor %xmm0,%xmm0 + 427cd4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 427cd8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 427cdc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427ce0: 66 0f 73 fa 08 pslldq $0x8,%xmm2 + 427ce5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 427cea: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 427cef: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 427cf4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 427cf9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 427cfe: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 427d03: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 427d08: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 427d0d: 66 45 0f db c1 pand %xmm9,%xmm8 + 427d12: 66 45 0f db d3 pand %xmm11,%xmm10 + 427d17: 66 44 0f db c7 pand %xmm7,%xmm8 + 427d1c: 66 44 0f db d7 pand %xmm7,%xmm10 + 427d21: 66 41 0f eb c8 por %xmm8,%xmm1 + 427d26: 66 41 0f eb d2 por %xmm10,%xmm2 + 427d2b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 427d2f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 427d33: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 427d38: d3 ea shr %cl,%edx + 427d3a: 41 d3 e9 shr %cl,%r9d + 427d3d: 44 29 ca sub %r9d,%edx + 427d40: 0f 85 5f 10 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> + 427d46: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 427d4a: 66 0f ef c0 pxor %xmm0,%xmm0 + 427d4e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 427d55: 41 b9 08 00 00 00 mov $0x8,%r9d + 427d5b: 4c 8d 57 08 lea 0x8(%rdi),%r10 + 427d5f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 427d66: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 427d6d: 0f 1f 00 nopl (%rax) + 427d70: 49 83 c2 10 add $0x10,%r10 + 427d74: 0f 8f 26 01 00 00 jg 427ea0 <__GI___strcasecmp_l+0x12d0> + 427d7a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 427d7f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 427d84: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 427d88: 66 0f 73 db 08 psrldq $0x8,%xmm3 + 427d8d: 66 0f 73 fa 08 pslldq $0x8,%xmm2 + 427d92: 66 0f eb d3 por %xmm3,%xmm2 + 427d96: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 427d9b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 427da0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 427da5: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 427daa: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 427daf: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 427db4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 427db9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 427dbe: 66 45 0f db c1 pand %xmm9,%xmm8 + 427dc3: 66 45 0f db d3 pand %xmm11,%xmm10 + 427dc8: 66 44 0f db c7 pand %xmm7,%xmm8 + 427dcd: 66 44 0f db d7 pand %xmm7,%xmm10 + 427dd2: 66 41 0f eb c8 por %xmm8,%xmm1 + 427dd7: 66 41 0f eb d2 por %xmm10,%xmm2 + 427ddc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427de0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 427de4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 427de8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 427dec: 81 ea ff ff 00 00 sub $0xffff,%edx + 427df2: 0f 85 a8 0f 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 427df8: 48 83 c1 10 add $0x10,%rcx + 427dfc: 66 0f 6f dc movdqa %xmm4,%xmm3 + 427e00: 49 83 c2 10 add $0x10,%r10 + 427e04: 0f 8f 96 00 00 00 jg 427ea0 <__GI___strcasecmp_l+0x12d0> + 427e0a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 427e0f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 427e14: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 427e18: 66 0f 73 db 08 psrldq $0x8,%xmm3 + 427e1d: 66 0f 73 fa 08 pslldq $0x8,%xmm2 + 427e22: 66 0f eb d3 por %xmm3,%xmm2 + 427e26: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 427e2b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 427e30: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 427e35: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 427e3a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 427e3f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 427e44: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 427e49: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 427e4e: 66 45 0f db c1 pand %xmm9,%xmm8 + 427e53: 66 45 0f db d3 pand %xmm11,%xmm10 + 427e58: 66 44 0f db c7 pand %xmm7,%xmm8 + 427e5d: 66 44 0f db d7 pand %xmm7,%xmm10 + 427e62: 66 41 0f eb c8 por %xmm8,%xmm1 + 427e67: 66 41 0f eb d2 por %xmm10,%xmm2 + 427e6c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427e70: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 427e74: 66 0f f8 c8 psubb %xmm0,%xmm1 + 427e78: 66 0f d7 d1 pmovmskb %xmm1,%edx + 427e7c: 81 ea ff ff 00 00 sub $0xffff,%edx + 427e82: 0f 85 18 0f 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 427e88: 48 83 c1 10 add $0x10,%rcx + 427e8c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 427e90: e9 db fe ff ff jmpq 427d70 <__GI___strcasecmp_l+0x11a0> + 427e95: 90 nop + 427e96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 427e9d: 00 00 00 + 427ea0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 427ea4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 427ea8: f7 c2 00 ff 00 00 test $0xff00,%edx + 427eae: 75 10 jne 427ec0 <__GI___strcasecmp_l+0x12f0> + 427eb0: 66 0f ef c0 pxor %xmm0,%xmm0 + 427eb4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 427ebb: e9 ba fe ff ff jmpq 427d7a <__GI___strcasecmp_l+0x11aa> + 427ec0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 427ec5: 66 0f 73 d8 08 psrldq $0x8,%xmm0 + 427eca: 66 0f 73 db 08 psrldq $0x8,%xmm3 + 427ecf: e9 6c 0e 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> + 427ed4: 66 90 xchg %ax,%ax + 427ed6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 427edd: 00 00 00 + 427ee0: 66 0f ef c0 pxor %xmm0,%xmm0 + 427ee4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 427ee8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 427eec: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427ef0: 66 0f 73 fa 07 pslldq $0x7,%xmm2 + 427ef5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 427efa: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 427eff: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 427f04: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 427f09: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 427f0e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 427f13: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 427f18: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 427f1d: 66 45 0f db c1 pand %xmm9,%xmm8 + 427f22: 66 45 0f db d3 pand %xmm11,%xmm10 + 427f27: 66 44 0f db c7 pand %xmm7,%xmm8 + 427f2c: 66 44 0f db d7 pand %xmm7,%xmm10 + 427f31: 66 41 0f eb c8 por %xmm8,%xmm1 + 427f36: 66 41 0f eb d2 por %xmm10,%xmm2 + 427f3b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 427f3f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 427f43: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 427f48: d3 ea shr %cl,%edx + 427f4a: 41 d3 e9 shr %cl,%r9d + 427f4d: 44 29 ca sub %r9d,%edx + 427f50: 0f 85 4f 0e 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> + 427f56: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 427f5a: 66 0f ef c0 pxor %xmm0,%xmm0 + 427f5e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 427f65: 41 b9 09 00 00 00 mov $0x9,%r9d + 427f6b: 4c 8d 57 09 lea 0x9(%rdi),%r10 + 427f6f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 427f76: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 427f7d: 0f 1f 00 nopl (%rax) + 427f80: 49 83 c2 10 add $0x10,%r10 + 427f84: 0f 8f 26 01 00 00 jg 4280b0 <__GI___strcasecmp_l+0x14e0> + 427f8a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 427f8f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 427f94: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 427f98: 66 0f 73 db 09 psrldq $0x9,%xmm3 + 427f9d: 66 0f 73 fa 07 pslldq $0x7,%xmm2 + 427fa2: 66 0f eb d3 por %xmm3,%xmm2 + 427fa6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 427fab: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 427fb0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 427fb5: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 427fba: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 427fbf: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 427fc4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 427fc9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 427fce: 66 45 0f db c1 pand %xmm9,%xmm8 + 427fd3: 66 45 0f db d3 pand %xmm11,%xmm10 + 427fd8: 66 44 0f db c7 pand %xmm7,%xmm8 + 427fdd: 66 44 0f db d7 pand %xmm7,%xmm10 + 427fe2: 66 41 0f eb c8 por %xmm8,%xmm1 + 427fe7: 66 41 0f eb d2 por %xmm10,%xmm2 + 427fec: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 427ff0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 427ff4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 427ff8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 427ffc: 81 ea ff ff 00 00 sub $0xffff,%edx + 428002: 0f 85 98 0d 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 428008: 48 83 c1 10 add $0x10,%rcx + 42800c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 428010: 49 83 c2 10 add $0x10,%r10 + 428014: 0f 8f 96 00 00 00 jg 4280b0 <__GI___strcasecmp_l+0x14e0> + 42801a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42801f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 428024: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 428028: 66 0f 73 db 09 psrldq $0x9,%xmm3 + 42802d: 66 0f 73 fa 07 pslldq $0x7,%xmm2 + 428032: 66 0f eb d3 por %xmm3,%xmm2 + 428036: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42803b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 428040: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 428045: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 42804a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42804f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428054: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428059: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42805e: 66 45 0f db c1 pand %xmm9,%xmm8 + 428063: 66 45 0f db d3 pand %xmm11,%xmm10 + 428068: 66 44 0f db c7 pand %xmm7,%xmm8 + 42806d: 66 44 0f db d7 pand %xmm7,%xmm10 + 428072: 66 41 0f eb c8 por %xmm8,%xmm1 + 428077: 66 41 0f eb d2 por %xmm10,%xmm2 + 42807c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428080: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 428084: 66 0f f8 c8 psubb %xmm0,%xmm1 + 428088: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42808c: 81 ea ff ff 00 00 sub $0xffff,%edx + 428092: 0f 85 08 0d 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 428098: 48 83 c1 10 add $0x10,%rcx + 42809c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4280a0: e9 db fe ff ff jmpq 427f80 <__GI___strcasecmp_l+0x13b0> + 4280a5: 90 nop + 4280a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4280ad: 00 00 00 + 4280b0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 4280b4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4280b8: f7 c2 00 fe 00 00 test $0xfe00,%edx + 4280be: 75 10 jne 4280d0 <__GI___strcasecmp_l+0x1500> + 4280c0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4280c4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4280cb: e9 ba fe ff ff jmpq 427f8a <__GI___strcasecmp_l+0x13ba> + 4280d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4280d5: 66 0f 73 d8 09 psrldq $0x9,%xmm0 + 4280da: 66 0f 73 db 09 psrldq $0x9,%xmm3 + 4280df: e9 5c 0c 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> + 4280e4: 66 90 xchg %ax,%ax + 4280e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4280ed: 00 00 00 + 4280f0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4280f4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4280f8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4280fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428100: 66 0f 73 fa 06 pslldq $0x6,%xmm2 + 428105: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42810a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 42810f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 428114: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 428119: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42811e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428123: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428128: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42812d: 66 45 0f db c1 pand %xmm9,%xmm8 + 428132: 66 45 0f db d3 pand %xmm11,%xmm10 + 428137: 66 44 0f db c7 pand %xmm7,%xmm8 + 42813c: 66 44 0f db d7 pand %xmm7,%xmm10 + 428141: 66 41 0f eb c8 por %xmm8,%xmm1 + 428146: 66 41 0f eb d2 por %xmm10,%xmm2 + 42814b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42814f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 428153: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 428158: d3 ea shr %cl,%edx + 42815a: 41 d3 e9 shr %cl,%r9d + 42815d: 44 29 ca sub %r9d,%edx + 428160: 0f 85 3f 0c 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> + 428166: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42816a: 66 0f ef c0 pxor %xmm0,%xmm0 + 42816e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 428175: 41 b9 0a 00 00 00 mov $0xa,%r9d + 42817b: 4c 8d 57 0a lea 0xa(%rdi),%r10 + 42817f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 428186: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42818d: 0f 1f 00 nopl (%rax) + 428190: 49 83 c2 10 add $0x10,%r10 + 428194: 0f 8f 26 01 00 00 jg 4282c0 <__GI___strcasecmp_l+0x16f0> + 42819a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42819f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4281a4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4281a8: 66 0f 73 db 0a psrldq $0xa,%xmm3 + 4281ad: 66 0f 73 fa 06 pslldq $0x6,%xmm2 + 4281b2: 66 0f eb d3 por %xmm3,%xmm2 + 4281b6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4281bb: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4281c0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4281c5: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4281ca: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4281cf: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4281d4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4281d9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4281de: 66 45 0f db c1 pand %xmm9,%xmm8 + 4281e3: 66 45 0f db d3 pand %xmm11,%xmm10 + 4281e8: 66 44 0f db c7 pand %xmm7,%xmm8 + 4281ed: 66 44 0f db d7 pand %xmm7,%xmm10 + 4281f2: 66 41 0f eb c8 por %xmm8,%xmm1 + 4281f7: 66 41 0f eb d2 por %xmm10,%xmm2 + 4281fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428200: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 428204: 66 0f f8 c8 psubb %xmm0,%xmm1 + 428208: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42820c: 81 ea ff ff 00 00 sub $0xffff,%edx + 428212: 0f 85 88 0b 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 428218: 48 83 c1 10 add $0x10,%rcx + 42821c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 428220: 49 83 c2 10 add $0x10,%r10 + 428224: 0f 8f 96 00 00 00 jg 4282c0 <__GI___strcasecmp_l+0x16f0> + 42822a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42822f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 428234: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 428238: 66 0f 73 db 0a psrldq $0xa,%xmm3 + 42823d: 66 0f 73 fa 06 pslldq $0x6,%xmm2 + 428242: 66 0f eb d3 por %xmm3,%xmm2 + 428246: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42824b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 428250: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 428255: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 42825a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42825f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428264: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428269: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42826e: 66 45 0f db c1 pand %xmm9,%xmm8 + 428273: 66 45 0f db d3 pand %xmm11,%xmm10 + 428278: 66 44 0f db c7 pand %xmm7,%xmm8 + 42827d: 66 44 0f db d7 pand %xmm7,%xmm10 + 428282: 66 41 0f eb c8 por %xmm8,%xmm1 + 428287: 66 41 0f eb d2 por %xmm10,%xmm2 + 42828c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428290: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 428294: 66 0f f8 c8 psubb %xmm0,%xmm1 + 428298: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42829c: 81 ea ff ff 00 00 sub $0xffff,%edx + 4282a2: 0f 85 f8 0a 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 4282a8: 48 83 c1 10 add $0x10,%rcx + 4282ac: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4282b0: e9 db fe ff ff jmpq 428190 <__GI___strcasecmp_l+0x15c0> + 4282b5: 90 nop + 4282b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4282bd: 00 00 00 + 4282c0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 4282c4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4282c8: f7 c2 00 fc 00 00 test $0xfc00,%edx + 4282ce: 75 10 jne 4282e0 <__GI___strcasecmp_l+0x1710> + 4282d0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4282d4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4282db: e9 ba fe ff ff jmpq 42819a <__GI___strcasecmp_l+0x15ca> + 4282e0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4282e5: 66 0f 73 d8 0a psrldq $0xa,%xmm0 + 4282ea: 66 0f 73 db 0a psrldq $0xa,%xmm3 + 4282ef: e9 4c 0a 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> + 4282f4: 66 90 xchg %ax,%ax + 4282f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4282fd: 00 00 00 + 428300: 66 0f ef c0 pxor %xmm0,%xmm0 + 428304: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 428308: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42830c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428310: 66 0f 73 fa 05 pslldq $0x5,%xmm2 + 428315: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42831a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 42831f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 428324: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 428329: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42832e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428333: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428338: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42833d: 66 45 0f db c1 pand %xmm9,%xmm8 + 428342: 66 45 0f db d3 pand %xmm11,%xmm10 + 428347: 66 44 0f db c7 pand %xmm7,%xmm8 + 42834c: 66 44 0f db d7 pand %xmm7,%xmm10 + 428351: 66 41 0f eb c8 por %xmm8,%xmm1 + 428356: 66 41 0f eb d2 por %xmm10,%xmm2 + 42835b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42835f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 428363: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 428368: d3 ea shr %cl,%edx + 42836a: 41 d3 e9 shr %cl,%r9d + 42836d: 44 29 ca sub %r9d,%edx + 428370: 0f 85 2f 0a 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> + 428376: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42837a: 66 0f ef c0 pxor %xmm0,%xmm0 + 42837e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 428385: 41 b9 0b 00 00 00 mov $0xb,%r9d + 42838b: 4c 8d 57 0b lea 0xb(%rdi),%r10 + 42838f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 428396: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42839d: 0f 1f 00 nopl (%rax) + 4283a0: 49 83 c2 10 add $0x10,%r10 + 4283a4: 0f 8f 26 01 00 00 jg 4284d0 <__GI___strcasecmp_l+0x1900> + 4283aa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4283af: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4283b4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4283b8: 66 0f 73 db 0b psrldq $0xb,%xmm3 + 4283bd: 66 0f 73 fa 05 pslldq $0x5,%xmm2 + 4283c2: 66 0f eb d3 por %xmm3,%xmm2 + 4283c6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4283cb: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4283d0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4283d5: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4283da: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4283df: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4283e4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4283e9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4283ee: 66 45 0f db c1 pand %xmm9,%xmm8 + 4283f3: 66 45 0f db d3 pand %xmm11,%xmm10 + 4283f8: 66 44 0f db c7 pand %xmm7,%xmm8 + 4283fd: 66 44 0f db d7 pand %xmm7,%xmm10 + 428402: 66 41 0f eb c8 por %xmm8,%xmm1 + 428407: 66 41 0f eb d2 por %xmm10,%xmm2 + 42840c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428410: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 428414: 66 0f f8 c8 psubb %xmm0,%xmm1 + 428418: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42841c: 81 ea ff ff 00 00 sub $0xffff,%edx + 428422: 0f 85 78 09 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 428428: 48 83 c1 10 add $0x10,%rcx + 42842c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 428430: 49 83 c2 10 add $0x10,%r10 + 428434: 0f 8f 96 00 00 00 jg 4284d0 <__GI___strcasecmp_l+0x1900> + 42843a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42843f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 428444: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 428448: 66 0f 73 db 0b psrldq $0xb,%xmm3 + 42844d: 66 0f 73 fa 05 pslldq $0x5,%xmm2 + 428452: 66 0f eb d3 por %xmm3,%xmm2 + 428456: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42845b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 428460: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 428465: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 42846a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42846f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428474: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428479: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42847e: 66 45 0f db c1 pand %xmm9,%xmm8 + 428483: 66 45 0f db d3 pand %xmm11,%xmm10 + 428488: 66 44 0f db c7 pand %xmm7,%xmm8 + 42848d: 66 44 0f db d7 pand %xmm7,%xmm10 + 428492: 66 41 0f eb c8 por %xmm8,%xmm1 + 428497: 66 41 0f eb d2 por %xmm10,%xmm2 + 42849c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4284a0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4284a4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4284a8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4284ac: 81 ea ff ff 00 00 sub $0xffff,%edx + 4284b2: 0f 85 e8 08 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 4284b8: 48 83 c1 10 add $0x10,%rcx + 4284bc: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4284c0: e9 db fe ff ff jmpq 4283a0 <__GI___strcasecmp_l+0x17d0> + 4284c5: 90 nop + 4284c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4284cd: 00 00 00 + 4284d0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 4284d4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4284d8: f7 c2 00 f8 00 00 test $0xf800,%edx + 4284de: 75 10 jne 4284f0 <__GI___strcasecmp_l+0x1920> + 4284e0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4284e4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4284eb: e9 ba fe ff ff jmpq 4283aa <__GI___strcasecmp_l+0x17da> + 4284f0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4284f5: 66 0f 73 d8 0b psrldq $0xb,%xmm0 + 4284fa: 66 0f 73 db 0b psrldq $0xb,%xmm3 + 4284ff: e9 3c 08 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> + 428504: 66 90 xchg %ax,%ax + 428506: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42850d: 00 00 00 + 428510: 66 0f ef c0 pxor %xmm0,%xmm0 + 428514: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 428518: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42851c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428520: 66 0f 73 fa 04 pslldq $0x4,%xmm2 + 428525: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42852a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 42852f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 428534: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 428539: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42853e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428543: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428548: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42854d: 66 45 0f db c1 pand %xmm9,%xmm8 + 428552: 66 45 0f db d3 pand %xmm11,%xmm10 + 428557: 66 44 0f db c7 pand %xmm7,%xmm8 + 42855c: 66 44 0f db d7 pand %xmm7,%xmm10 + 428561: 66 41 0f eb c8 por %xmm8,%xmm1 + 428566: 66 41 0f eb d2 por %xmm10,%xmm2 + 42856b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42856f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 428573: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 428578: d3 ea shr %cl,%edx + 42857a: 41 d3 e9 shr %cl,%r9d + 42857d: 44 29 ca sub %r9d,%edx + 428580: 0f 85 1f 08 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> + 428586: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42858a: 66 0f ef c0 pxor %xmm0,%xmm0 + 42858e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 428595: 41 b9 0c 00 00 00 mov $0xc,%r9d + 42859b: 4c 8d 57 0c lea 0xc(%rdi),%r10 + 42859f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 4285a6: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4285ad: 0f 1f 00 nopl (%rax) + 4285b0: 49 83 c2 10 add $0x10,%r10 + 4285b4: 0f 8f 26 01 00 00 jg 4286e0 <__GI___strcasecmp_l+0x1b10> + 4285ba: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4285bf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4285c4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4285c8: 66 0f 73 db 0c psrldq $0xc,%xmm3 + 4285cd: 66 0f 73 fa 04 pslldq $0x4,%xmm2 + 4285d2: 66 0f eb d3 por %xmm3,%xmm2 + 4285d6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4285db: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4285e0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4285e5: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4285ea: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4285ef: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4285f4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4285f9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4285fe: 66 45 0f db c1 pand %xmm9,%xmm8 + 428603: 66 45 0f db d3 pand %xmm11,%xmm10 + 428608: 66 44 0f db c7 pand %xmm7,%xmm8 + 42860d: 66 44 0f db d7 pand %xmm7,%xmm10 + 428612: 66 41 0f eb c8 por %xmm8,%xmm1 + 428617: 66 41 0f eb d2 por %xmm10,%xmm2 + 42861c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428620: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 428624: 66 0f f8 c8 psubb %xmm0,%xmm1 + 428628: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42862c: 81 ea ff ff 00 00 sub $0xffff,%edx + 428632: 0f 85 68 07 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 428638: 48 83 c1 10 add $0x10,%rcx + 42863c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 428640: 49 83 c2 10 add $0x10,%r10 + 428644: 0f 8f 96 00 00 00 jg 4286e0 <__GI___strcasecmp_l+0x1b10> + 42864a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42864f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 428654: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 428658: 66 0f 73 db 0c psrldq $0xc,%xmm3 + 42865d: 66 0f 73 fa 04 pslldq $0x4,%xmm2 + 428662: 66 0f eb d3 por %xmm3,%xmm2 + 428666: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42866b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 428670: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 428675: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 42867a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42867f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428684: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428689: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42868e: 66 45 0f db c1 pand %xmm9,%xmm8 + 428693: 66 45 0f db d3 pand %xmm11,%xmm10 + 428698: 66 44 0f db c7 pand %xmm7,%xmm8 + 42869d: 66 44 0f db d7 pand %xmm7,%xmm10 + 4286a2: 66 41 0f eb c8 por %xmm8,%xmm1 + 4286a7: 66 41 0f eb d2 por %xmm10,%xmm2 + 4286ac: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4286b0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4286b4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4286b8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4286bc: 81 ea ff ff 00 00 sub $0xffff,%edx + 4286c2: 0f 85 d8 06 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 4286c8: 48 83 c1 10 add $0x10,%rcx + 4286cc: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4286d0: e9 db fe ff ff jmpq 4285b0 <__GI___strcasecmp_l+0x19e0> + 4286d5: 90 nop + 4286d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4286dd: 00 00 00 + 4286e0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 4286e4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4286e8: f7 c2 00 f0 00 00 test $0xf000,%edx + 4286ee: 75 10 jne 428700 <__GI___strcasecmp_l+0x1b30> + 4286f0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4286f4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4286fb: e9 ba fe ff ff jmpq 4285ba <__GI___strcasecmp_l+0x19ea> + 428700: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 428705: 66 0f 73 d8 0c psrldq $0xc,%xmm0 + 42870a: 66 0f 73 db 0c psrldq $0xc,%xmm3 + 42870f: e9 2c 06 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> + 428714: 66 90 xchg %ax,%ax + 428716: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42871d: 00 00 00 + 428720: 66 0f ef c0 pxor %xmm0,%xmm0 + 428724: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 428728: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42872c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428730: 66 0f 73 fa 03 pslldq $0x3,%xmm2 + 428735: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42873a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 42873f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 428744: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 428749: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42874e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428753: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428758: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42875d: 66 45 0f db c1 pand %xmm9,%xmm8 + 428762: 66 45 0f db d3 pand %xmm11,%xmm10 + 428767: 66 44 0f db c7 pand %xmm7,%xmm8 + 42876c: 66 44 0f db d7 pand %xmm7,%xmm10 + 428771: 66 41 0f eb c8 por %xmm8,%xmm1 + 428776: 66 41 0f eb d2 por %xmm10,%xmm2 + 42877b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42877f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 428783: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 428788: d3 ea shr %cl,%edx + 42878a: 41 d3 e9 shr %cl,%r9d + 42878d: 44 29 ca sub %r9d,%edx + 428790: 0f 85 0f 06 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> + 428796: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42879a: 66 0f ef c0 pxor %xmm0,%xmm0 + 42879e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4287a5: 41 b9 0d 00 00 00 mov $0xd,%r9d + 4287ab: 4c 8d 57 0d lea 0xd(%rdi),%r10 + 4287af: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 4287b6: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4287bd: 0f 1f 00 nopl (%rax) + 4287c0: 49 83 c2 10 add $0x10,%r10 + 4287c4: 0f 8f 26 01 00 00 jg 4288f0 <__GI___strcasecmp_l+0x1d20> + 4287ca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4287cf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4287d4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4287d8: 66 0f 73 db 0d psrldq $0xd,%xmm3 + 4287dd: 66 0f 73 fa 03 pslldq $0x3,%xmm2 + 4287e2: 66 0f eb d3 por %xmm3,%xmm2 + 4287e6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4287eb: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4287f0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4287f5: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4287fa: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4287ff: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428804: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428809: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42880e: 66 45 0f db c1 pand %xmm9,%xmm8 + 428813: 66 45 0f db d3 pand %xmm11,%xmm10 + 428818: 66 44 0f db c7 pand %xmm7,%xmm8 + 42881d: 66 44 0f db d7 pand %xmm7,%xmm10 + 428822: 66 41 0f eb c8 por %xmm8,%xmm1 + 428827: 66 41 0f eb d2 por %xmm10,%xmm2 + 42882c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428830: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 428834: 66 0f f8 c8 psubb %xmm0,%xmm1 + 428838: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42883c: 81 ea ff ff 00 00 sub $0xffff,%edx + 428842: 0f 85 58 05 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 428848: 48 83 c1 10 add $0x10,%rcx + 42884c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 428850: 49 83 c2 10 add $0x10,%r10 + 428854: 0f 8f 96 00 00 00 jg 4288f0 <__GI___strcasecmp_l+0x1d20> + 42885a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42885f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 428864: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 428868: 66 0f 73 db 0d psrldq $0xd,%xmm3 + 42886d: 66 0f 73 fa 03 pslldq $0x3,%xmm2 + 428872: 66 0f eb d3 por %xmm3,%xmm2 + 428876: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42887b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 428880: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 428885: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 42888a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42888f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428894: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428899: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42889e: 66 45 0f db c1 pand %xmm9,%xmm8 + 4288a3: 66 45 0f db d3 pand %xmm11,%xmm10 + 4288a8: 66 44 0f db c7 pand %xmm7,%xmm8 + 4288ad: 66 44 0f db d7 pand %xmm7,%xmm10 + 4288b2: 66 41 0f eb c8 por %xmm8,%xmm1 + 4288b7: 66 41 0f eb d2 por %xmm10,%xmm2 + 4288bc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4288c0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4288c4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4288c8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4288cc: 81 ea ff ff 00 00 sub $0xffff,%edx + 4288d2: 0f 85 c8 04 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 4288d8: 48 83 c1 10 add $0x10,%rcx + 4288dc: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4288e0: e9 db fe ff ff jmpq 4287c0 <__GI___strcasecmp_l+0x1bf0> + 4288e5: 90 nop + 4288e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4288ed: 00 00 00 + 4288f0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 4288f4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 4288f8: f7 c2 00 e0 00 00 test $0xe000,%edx + 4288fe: 75 10 jne 428910 <__GI___strcasecmp_l+0x1d40> + 428900: 66 0f ef c0 pxor %xmm0,%xmm0 + 428904: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42890b: e9 ba fe ff ff jmpq 4287ca <__GI___strcasecmp_l+0x1bfa> + 428910: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 428915: 66 0f 73 d8 0d psrldq $0xd,%xmm0 + 42891a: 66 0f 73 db 0d psrldq $0xd,%xmm3 + 42891f: e9 1c 04 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> + 428924: 66 90 xchg %ax,%ax + 428926: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42892d: 00 00 00 + 428930: 66 0f ef c0 pxor %xmm0,%xmm0 + 428934: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 428938: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42893c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428940: 66 0f 73 fa 02 pslldq $0x2,%xmm2 + 428945: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 42894a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 42894f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 428954: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 428959: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 42895e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428963: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428968: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 42896d: 66 45 0f db c1 pand %xmm9,%xmm8 + 428972: 66 45 0f db d3 pand %xmm11,%xmm10 + 428977: 66 44 0f db c7 pand %xmm7,%xmm8 + 42897c: 66 44 0f db d7 pand %xmm7,%xmm10 + 428981: 66 41 0f eb c8 por %xmm8,%xmm1 + 428986: 66 41 0f eb d2 por %xmm10,%xmm2 + 42898b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42898f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 428993: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 428998: d3 ea shr %cl,%edx + 42899a: 41 d3 e9 shr %cl,%r9d + 42899d: 44 29 ca sub %r9d,%edx + 4289a0: 0f 85 ff 03 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> + 4289a6: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 4289aa: 66 0f ef c0 pxor %xmm0,%xmm0 + 4289ae: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4289b5: 41 b9 0e 00 00 00 mov $0xe,%r9d + 4289bb: 4c 8d 57 0e lea 0xe(%rdi),%r10 + 4289bf: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 4289c6: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4289cd: 0f 1f 00 nopl (%rax) + 4289d0: 49 83 c2 10 add $0x10,%r10 + 4289d4: 0f 8f 26 01 00 00 jg 428b00 <__GI___strcasecmp_l+0x1f30> + 4289da: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4289df: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4289e4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 4289e8: 66 0f 73 db 0e psrldq $0xe,%xmm3 + 4289ed: 66 0f 73 fa 02 pslldq $0x2,%xmm2 + 4289f2: 66 0f eb d3 por %xmm3,%xmm2 + 4289f6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4289fb: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 428a00: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 428a05: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 428a0a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 428a0f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428a14: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428a19: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 428a1e: 66 45 0f db c1 pand %xmm9,%xmm8 + 428a23: 66 45 0f db d3 pand %xmm11,%xmm10 + 428a28: 66 44 0f db c7 pand %xmm7,%xmm8 + 428a2d: 66 44 0f db d7 pand %xmm7,%xmm10 + 428a32: 66 41 0f eb c8 por %xmm8,%xmm1 + 428a37: 66 41 0f eb d2 por %xmm10,%xmm2 + 428a3c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428a40: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 428a44: 66 0f f8 c8 psubb %xmm0,%xmm1 + 428a48: 66 0f d7 d1 pmovmskb %xmm1,%edx + 428a4c: 81 ea ff ff 00 00 sub $0xffff,%edx + 428a52: 0f 85 48 03 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 428a58: 48 83 c1 10 add $0x10,%rcx + 428a5c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 428a60: 49 83 c2 10 add $0x10,%r10 + 428a64: 0f 8f 96 00 00 00 jg 428b00 <__GI___strcasecmp_l+0x1f30> + 428a6a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 428a6f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 428a74: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 428a78: 66 0f 73 db 0e psrldq $0xe,%xmm3 + 428a7d: 66 0f 73 fa 02 pslldq $0x2,%xmm2 + 428a82: 66 0f eb d3 por %xmm3,%xmm2 + 428a86: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 428a8b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 428a90: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 428a95: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 428a9a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 428a9f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428aa4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428aa9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 428aae: 66 45 0f db c1 pand %xmm9,%xmm8 + 428ab3: 66 45 0f db d3 pand %xmm11,%xmm10 + 428ab8: 66 44 0f db c7 pand %xmm7,%xmm8 + 428abd: 66 44 0f db d7 pand %xmm7,%xmm10 + 428ac2: 66 41 0f eb c8 por %xmm8,%xmm1 + 428ac7: 66 41 0f eb d2 por %xmm10,%xmm2 + 428acc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428ad0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 428ad4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 428ad8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 428adc: 81 ea ff ff 00 00 sub $0xffff,%edx + 428ae2: 0f 85 b8 02 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 428ae8: 48 83 c1 10 add $0x10,%rcx + 428aec: 66 0f 6f dc movdqa %xmm4,%xmm3 + 428af0: e9 db fe ff ff jmpq 4289d0 <__GI___strcasecmp_l+0x1e00> + 428af5: 90 nop + 428af6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 428afd: 00 00 00 + 428b00: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 428b04: 66 0f d7 d0 pmovmskb %xmm0,%edx + 428b08: f7 c2 00 c0 00 00 test $0xc000,%edx + 428b0e: 75 10 jne 428b20 <__GI___strcasecmp_l+0x1f50> + 428b10: 66 0f ef c0 pxor %xmm0,%xmm0 + 428b14: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 428b1b: e9 ba fe ff ff jmpq 4289da <__GI___strcasecmp_l+0x1e0a> + 428b20: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 428b25: 66 0f 73 d8 0e psrldq $0xe,%xmm0 + 428b2a: 66 0f 73 db 0e psrldq $0xe,%xmm3 + 428b2f: e9 0c 02 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> + 428b34: 66 90 xchg %ax,%ax + 428b36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 428b3d: 00 00 00 + 428b40: 66 0f ef c0 pxor %xmm0,%xmm0 + 428b44: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 428b48: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 428b4c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428b50: 66 0f 73 fa 01 pslldq $0x1,%xmm2 + 428b55: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 428b5a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 428b5f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 428b64: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 428b69: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 428b6e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428b73: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428b78: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 428b7d: 66 45 0f db c1 pand %xmm9,%xmm8 + 428b82: 66 45 0f db d3 pand %xmm11,%xmm10 + 428b87: 66 44 0f db c7 pand %xmm7,%xmm8 + 428b8c: 66 44 0f db d7 pand %xmm7,%xmm10 + 428b91: 66 41 0f eb c8 por %xmm8,%xmm1 + 428b96: 66 41 0f eb d2 por %xmm10,%xmm2 + 428b9b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 428b9f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 428ba3: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 428ba8: d3 ea shr %cl,%edx + 428baa: 41 d3 e9 shr %cl,%r9d + 428bad: 44 29 ca sub %r9d,%edx + 428bb0: 0f 85 ef 01 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> + 428bb6: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 428bba: 66 0f ef c0 pxor %xmm0,%xmm0 + 428bbe: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 428bc5: 41 b9 0f 00 00 00 mov $0xf,%r9d + 428bcb: 4c 8d 57 0f lea 0xf(%rdi),%r10 + 428bcf: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 428bd6: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 428bdd: 0f 1f 00 nopl (%rax) + 428be0: 49 83 c2 10 add $0x10,%r10 + 428be4: 0f 8f 26 01 00 00 jg 428d10 <__GI___strcasecmp_l+0x2140> + 428bea: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 428bef: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 428bf4: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 428bf8: 66 0f 73 db 0f psrldq $0xf,%xmm3 + 428bfd: 66 0f 73 fa 01 pslldq $0x1,%xmm2 + 428c02: 66 0f eb d3 por %xmm3,%xmm2 + 428c06: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 428c0b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 428c10: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 428c15: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 428c1a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 428c1f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428c24: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428c29: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 428c2e: 66 45 0f db c1 pand %xmm9,%xmm8 + 428c33: 66 45 0f db d3 pand %xmm11,%xmm10 + 428c38: 66 44 0f db c7 pand %xmm7,%xmm8 + 428c3d: 66 44 0f db d7 pand %xmm7,%xmm10 + 428c42: 66 41 0f eb c8 por %xmm8,%xmm1 + 428c47: 66 41 0f eb d2 por %xmm10,%xmm2 + 428c4c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428c50: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 428c54: 66 0f f8 c8 psubb %xmm0,%xmm1 + 428c58: 66 0f d7 d1 pmovmskb %xmm1,%edx + 428c5c: 81 ea ff ff 00 00 sub $0xffff,%edx + 428c62: 0f 85 38 01 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 428c68: 48 83 c1 10 add $0x10,%rcx + 428c6c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 428c70: 49 83 c2 10 add $0x10,%r10 + 428c74: 0f 8f 96 00 00 00 jg 428d10 <__GI___strcasecmp_l+0x2140> + 428c7a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 428c7f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 428c84: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 428c88: 66 0f 73 db 0f psrldq $0xf,%xmm3 + 428c8d: 66 0f 73 fa 01 pslldq $0x1,%xmm2 + 428c92: 66 0f eb d3 por %xmm3,%xmm2 + 428c96: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 428c9b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 428ca0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 428ca5: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 428caa: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 428caf: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428cb4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428cb9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 428cbe: 66 45 0f db c1 pand %xmm9,%xmm8 + 428cc3: 66 45 0f db d3 pand %xmm11,%xmm10 + 428cc8: 66 44 0f db c7 pand %xmm7,%xmm8 + 428ccd: 66 44 0f db d7 pand %xmm7,%xmm10 + 428cd2: 66 41 0f eb c8 por %xmm8,%xmm1 + 428cd7: 66 41 0f eb d2 por %xmm10,%xmm2 + 428cdc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428ce0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 428ce4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 428ce8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 428cec: 81 ea ff ff 00 00 sub $0xffff,%edx + 428cf2: 0f 85 a8 00 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> + 428cf8: 48 83 c1 10 add $0x10,%rcx + 428cfc: 66 0f 6f dc movdqa %xmm4,%xmm3 + 428d00: e9 db fe ff ff jmpq 428be0 <__GI___strcasecmp_l+0x2010> + 428d05: 90 nop + 428d06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 428d0d: 00 00 00 + 428d10: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 428d14: 66 0f d7 d0 pmovmskb %xmm0,%edx + 428d18: f7 c2 00 80 00 00 test $0x8000,%edx + 428d1e: 75 10 jne 428d30 <__GI___strcasecmp_l+0x2160> + 428d20: 66 0f ef c0 pxor %xmm0,%xmm0 + 428d24: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 428d2b: e9 ba fe ff ff jmpq 428bea <__GI___strcasecmp_l+0x201a> + 428d30: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 428d35: 66 0f 73 db 0f psrldq $0xf,%xmm3 + 428d3a: 66 0f 73 d8 0f psrldq $0xf,%xmm0 + 428d3f: 90 nop + 428d40: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 428d45: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 428d4a: 66 44 0f 6f d3 movdqa %xmm3,%xmm10 + 428d4f: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 428d54: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 428d59: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 428d5e: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 428d63: 66 44 0f 64 db pcmpgtb %xmm3,%xmm11 + 428d68: 66 45 0f db c1 pand %xmm9,%xmm8 + 428d6d: 66 45 0f db d3 pand %xmm11,%xmm10 + 428d72: 66 44 0f db c7 pand %xmm7,%xmm8 + 428d77: 66 44 0f db d7 pand %xmm7,%xmm10 + 428d7c: 66 41 0f eb c8 por %xmm8,%xmm1 + 428d81: 66 41 0f eb da por %xmm10,%xmm3 + 428d86: 66 0f 74 cb pcmpeqb %xmm3,%xmm1 + 428d8a: 66 0f f8 c8 psubb %xmm0,%xmm1 + 428d8e: 66 0f d7 d1 pmovmskb %xmm1,%edx + 428d92: f7 d2 not %edx + 428d94: 66 90 xchg %ax,%ax + 428d96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 428d9d: 00 00 00 + 428da0: 49 8d 44 09 f0 lea -0x10(%r9,%rcx,1),%rax + 428da5: 48 8d 3c 07 lea (%rdi,%rax,1),%rdi + 428da9: 48 8d 34 0e lea (%rsi,%rcx,1),%rsi + 428dad: 45 85 c0 test %r8d,%r8d + 428db0: 74 0e je 428dc0 <__GI___strcasecmp_l+0x21f0> + 428db2: 48 87 f7 xchg %rsi,%rdi + 428db5: 90 nop + 428db6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 428dbd: 00 00 00 + 428dc0: 48 0f bc d2 bsf %rdx,%rdx + 428dc4: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx + 428dc8: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax + 428dcc: 48 8d 15 6d e7 07 00 lea 0x7e76d(%rip),%rdx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> + 428dd3: 8b 0c 8a mov (%rdx,%rcx,4),%ecx + 428dd6: 8b 04 82 mov (%rdx,%rax,4),%eax + 428dd9: 29 c8 sub %ecx,%eax + 428ddb: c3 retq + 428ddc: 31 c0 xor %eax,%eax + 428dde: c3 retq + 428ddf: 90 nop + 428de0: 0f b6 0e movzbl (%rsi),%ecx + 428de3: 0f b6 07 movzbl (%rdi),%eax + 428de6: 48 8d 15 53 e7 07 00 lea 0x7e753(%rip),%rdx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> + 428ded: 8b 0c 8a mov (%rdx,%rcx,4),%ecx + 428df0: 8b 04 82 mov (%rdx,%rax,4),%eax + 428df3: 29 c8 sub %ecx,%eax + 428df5: c3 retq + 428df6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 428dfd: 00 00 00 + +0000000000428e00 <__strcasecmp_sse42>: + 428e00: 48 c7 c0 b8 ff ff ff mov $0xffffffffffffffb8,%rax + 428e07: 64 48 8b 10 mov %fs:(%rax),%rdx + 428e0b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000428e10 <__strcasecmp_l_sse42>: + 428e10: 48 8b 02 mov (%rdx),%rax + 428e13: f7 80 78 02 00 00 01 testl $0x1,0x278(%rax) + 428e1a: 00 00 00 + 428e1d: 0f 85 dd 54 01 00 jne 43e300 <__strcasecmp_l_nonascii> + 428e23: 89 f1 mov %esi,%ecx + 428e25: 89 f8 mov %edi,%eax + 428e27: 48 83 e1 3f and $0x3f,%rcx + 428e2b: 48 83 e0 3f and $0x3f,%rax + 428e2f: 66 0f 6f 25 79 a2 07 movdqa 0x7a279(%rip),%xmm4 # 4a30b0 <__func__.10972+0xf0> + 428e36: 00 + 428e37: 66 0f 6f 2d 81 a2 07 movdqa 0x7a281(%rip),%xmm5 # 4a30c0 <__func__.10972+0x100> + 428e3e: 00 + 428e3f: 66 0f 6f 35 89 a2 07 movdqa 0x7a289(%rip),%xmm6 # 4a30d0 + 428e46: 00 + 428e47: 83 f9 30 cmp $0x30,%ecx + 428e4a: 0f 87 80 00 00 00 ja 428ed0 <__strcasecmp_l_sse42+0xc0> + 428e50: 83 f8 30 cmp $0x30,%eax + 428e53: 77 7b ja 428ed0 <__strcasecmp_l_sse42+0xc0> + 428e55: f3 0f 6f 0f movdqu (%rdi),%xmm1 + 428e59: f3 0f 6f 16 movdqu (%rsi),%xmm2 + 428e5d: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 428e61: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 428e66: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 428e6b: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 428e70: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 428e74: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 428e79: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 428e7e: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 428e83: 66 41 0f db f8 pand %xmm8,%xmm7 + 428e88: 66 45 0f db ca pand %xmm10,%xmm9 + 428e8d: 66 0f db fe pand %xmm6,%xmm7 + 428e91: 66 44 0f db ce pand %xmm6,%xmm9 + 428e96: 66 0f eb cf por %xmm7,%xmm1 + 428e9a: 66 41 0f eb d1 por %xmm9,%xmm2 + 428e9f: 66 0f ef c0 pxor %xmm0,%xmm0 + 428ea3: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428ea7: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 428eab: 66 0f f8 c8 psubb %xmm0,%xmm1 + 428eaf: 66 0f d7 d1 pmovmskb %xmm1,%edx + 428eb3: 81 ea ff ff 00 00 sub $0xffff,%edx + 428eb9: 0f 85 b1 1a 00 00 jne 42a970 <__strcasecmp_l_sse42+0x1b60> + 428ebf: 48 83 c6 10 add $0x10,%rsi + 428ec3: 48 83 c7 10 add $0x10,%rdi + 428ec7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 428ece: 00 00 + 428ed0: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 428ed4: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 428ed8: ba ff ff 00 00 mov $0xffff,%edx + 428edd: 45 31 c0 xor %r8d,%r8d + 428ee0: 83 e1 0f and $0xf,%ecx + 428ee3: 83 e0 0f and $0xf,%eax + 428ee6: 66 0f ef c0 pxor %xmm0,%xmm0 + 428eea: 39 c1 cmp %eax,%ecx + 428eec: 74 32 je 428f20 <__strcasecmp_l_sse42+0x110> + 428eee: 77 07 ja 428ef7 <__strcasecmp_l_sse42+0xe7> + 428ef0: 41 89 d0 mov %edx,%r8d + 428ef3: 91 xchg %eax,%ecx + 428ef4: 48 87 f7 xchg %rsi,%rdi + 428ef7: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 428efb: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 428eff: 4c 8d 48 0f lea 0xf(%rax),%r9 + 428f03: 49 29 c9 sub %rcx,%r9 + 428f06: 4c 8d 15 e3 a1 07 00 lea 0x7a1e3(%rip),%r10 # 4a30f0 + 428f0d: 4f 63 0c 8a movslq (%r10,%r9,4),%r9 + 428f11: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428f15: 4f 8d 14 0a lea (%r10,%r9,1),%r10 + 428f19: 41 ff e2 jmpq *%r10 + 428f1c: 0f 1f 40 00 nopl 0x0(%rax) + 428f20: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 428f24: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 428f28: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 428f2c: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 428f30: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 428f35: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 428f3a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 428f3f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 428f43: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 428f48: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 428f4d: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 428f52: 66 41 0f db f8 pand %xmm8,%xmm7 + 428f57: 66 45 0f db ca pand %xmm10,%xmm9 + 428f5c: 66 0f db fe pand %xmm6,%xmm7 + 428f60: 66 44 0f db ce pand %xmm6,%xmm9 + 428f65: 66 0f eb cf por %xmm7,%xmm1 + 428f69: 66 41 0f eb d1 por %xmm9,%xmm2 + 428f6e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 428f72: 66 0f f8 c8 psubb %xmm0,%xmm1 + 428f76: 66 44 0f d7 c9 pmovmskb %xmm1,%r9d + 428f7b: d3 ea shr %cl,%edx + 428f7d: 41 d3 e9 shr %cl,%r9d + 428f80: 44 29 ca sub %r9d,%edx + 428f83: 0f 85 cf 19 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> + 428f89: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 428f90: 49 c7 c1 10 00 00 00 mov $0x10,%r9 + 428f97: 48 89 ca mov %rcx,%rdx + 428f9a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 428fa0: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 428fa5: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 428faa: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 428fae: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 428fb3: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 428fb8: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 428fbd: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 428fc1: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 428fc6: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 428fcb: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 428fd0: 66 41 0f db f8 pand %xmm8,%xmm7 + 428fd5: 66 45 0f db ca pand %xmm10,%xmm9 + 428fda: 66 0f db fe pand %xmm6,%xmm7 + 428fde: 66 44 0f db ce pand %xmm6,%xmm9 + 428fe3: 66 0f eb c7 por %xmm7,%xmm0 + 428fe7: 66 41 0f eb c9 por %xmm9,%xmm1 + 428fec: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 428ff2: 48 8d 52 10 lea 0x10(%rdx),%rdx + 428ff6: 76 68 jbe 429060 <__strcasecmp_l_sse42+0x250> + 428ff8: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 428ffd: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 429002: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 429006: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42900b: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 429010: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429015: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 429019: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 42901e: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429023: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 429028: 66 41 0f db f8 pand %xmm8,%xmm7 + 42902d: 66 45 0f db ca pand %xmm10,%xmm9 + 429032: 66 0f db fe pand %xmm6,%xmm7 + 429036: 66 44 0f db ce pand %xmm6,%xmm9 + 42903b: 66 0f eb c7 por %xmm7,%xmm0 + 42903f: 66 41 0f eb c9 por %xmm9,%xmm1 + 429044: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 42904a: 48 8d 52 10 lea 0x10(%rdx),%rdx + 42904e: 76 10 jbe 429060 <__strcasecmp_l_sse42+0x250> + 429050: e9 4b ff ff ff jmpq 428fa0 <__strcasecmp_l_sse42+0x190> + 429055: 90 nop + 429056: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42905d: 00 00 00 + 429060: 0f 83 26 19 00 00 jae 42a98c <__strcasecmp_l_sse42+0x1b7c> + 429066: 48 8d 4c 0a f0 lea -0x10(%rdx,%rcx,1),%rcx + 42906b: 0f b6 04 0f movzbl (%rdi,%rcx,1),%eax + 42906f: 0f b6 14 0e movzbl (%rsi,%rcx,1),%edx + 429073: 48 8d 0d c6 e4 07 00 lea 0x7e4c6(%rip),%rcx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> + 42907a: 8b 04 81 mov (%rcx,%rax,4),%eax + 42907d: 8b 14 91 mov (%rcx,%rdx,4),%edx + 429080: 29 d0 sub %edx,%eax + 429082: c3 retq + 429083: 0f 1f 00 nopl (%rax) + 429086: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42908d: 00 00 00 + 429090: 66 0f 73 fa 0f pslldq $0xf,%xmm2 + 429095: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 429099: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42909e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 4290a3: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 4290a8: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 4290ac: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 4290b1: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 4290b6: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 4290bb: 66 41 0f db f8 pand %xmm8,%xmm7 + 4290c0: 66 45 0f db ca pand %xmm10,%xmm9 + 4290c5: 66 0f db fe pand %xmm6,%xmm7 + 4290c9: 66 44 0f db ce pand %xmm6,%xmm9 + 4290ce: 66 0f eb cf por %xmm7,%xmm1 + 4290d2: 66 41 0f eb d1 por %xmm9,%xmm2 + 4290d7: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 4290db: 66 0f f8 d0 psubb %xmm0,%xmm2 + 4290df: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 4290e4: d3 ea shr %cl,%edx + 4290e6: 41 d3 e9 shr %cl,%r9d + 4290e9: 44 29 ca sub %r9d,%edx + 4290ec: 0f 85 66 18 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> + 4290f2: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 4290f6: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4290fd: 41 b9 01 00 00 00 mov $0x1,%r9d + 429103: 4c 8d 57 01 lea 0x1(%rdi),%r10 + 429107: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42910e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 429115: 48 89 ca mov %rcx,%rdx + 429118: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42911f: 00 + 429120: 49 83 c2 10 add $0x10,%r10 + 429124: 0f 8f d6 00 00 00 jg 429200 <__strcasecmp_l_sse42+0x3f0> + 42912a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42912f: 66 0f 3a 0f 44 17 f0 palignr $0x1,-0x10(%rdi,%rdx,1),%xmm0 + 429136: 01 + 429137: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 42913c: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 429140: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 429145: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 42914a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42914f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 429153: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 429158: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42915d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 429162: 66 41 0f db f8 pand %xmm8,%xmm7 + 429167: 66 45 0f db ca pand %xmm10,%xmm9 + 42916c: 66 0f db fe pand %xmm6,%xmm7 + 429170: 66 44 0f db ce pand %xmm6,%xmm9 + 429175: 66 0f eb c7 por %xmm7,%xmm0 + 429179: 66 41 0f eb c9 por %xmm9,%xmm1 + 42917e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 429184: 0f 86 a6 17 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42918a: 48 83 c2 10 add $0x10,%rdx + 42918e: 49 83 c2 10 add $0x10,%r10 + 429192: 7f 6c jg 429200 <__strcasecmp_l_sse42+0x3f0> + 429194: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 429199: 66 0f 3a 0f 44 17 f0 palignr $0x1,-0x10(%rdi,%rdx,1),%xmm0 + 4291a0: 01 + 4291a1: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 4291a6: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 4291aa: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 4291af: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 4291b4: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 4291b9: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 4291bd: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 4291c2: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 4291c7: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 4291cc: 66 41 0f db f8 pand %xmm8,%xmm7 + 4291d1: 66 45 0f db ca pand %xmm10,%xmm9 + 4291d6: 66 0f db fe pand %xmm6,%xmm7 + 4291da: 66 44 0f db ce pand %xmm6,%xmm9 + 4291df: 66 0f eb c7 por %xmm7,%xmm0 + 4291e3: 66 41 0f eb c9 por %xmm9,%xmm1 + 4291e8: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 4291ee: 0f 86 3c 17 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 4291f4: 48 83 c2 10 add $0x10,%rdx + 4291f8: e9 23 ff ff ff jmpq 429120 <__strcasecmp_l_sse42+0x310> + 4291fd: 0f 1f 00 nopl (%rax) + 429200: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 429207: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 42920d: 66 0f 73 d8 01 psrldq $0x1,%xmm0 + 429212: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 429218: 83 f9 0e cmp $0xe,%ecx + 42921b: 0f 87 09 ff ff ff ja 42912a <__strcasecmp_l_sse42+0x31a> + 429221: e9 bb 16 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> + 429226: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42922d: 00 00 00 + 429230: 66 0f 73 fa 0e pslldq $0xe,%xmm2 + 429235: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 429239: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42923e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 429243: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429248: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42924c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 429251: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429256: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 42925b: 66 41 0f db f8 pand %xmm8,%xmm7 + 429260: 66 45 0f db ca pand %xmm10,%xmm9 + 429265: 66 0f db fe pand %xmm6,%xmm7 + 429269: 66 44 0f db ce pand %xmm6,%xmm9 + 42926e: 66 0f eb cf por %xmm7,%xmm1 + 429272: 66 41 0f eb d1 por %xmm9,%xmm2 + 429277: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42927b: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42927f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 429284: d3 ea shr %cl,%edx + 429286: 41 d3 e9 shr %cl,%r9d + 429289: 44 29 ca sub %r9d,%edx + 42928c: 0f 85 c6 16 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> + 429292: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 429296: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42929d: 41 b9 02 00 00 00 mov $0x2,%r9d + 4292a3: 4c 8d 57 02 lea 0x2(%rdi),%r10 + 4292a7: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 4292ae: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4292b5: 48 89 ca mov %rcx,%rdx + 4292b8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4292bf: 00 + 4292c0: 49 83 c2 10 add $0x10,%r10 + 4292c4: 0f 8f d6 00 00 00 jg 4293a0 <__strcasecmp_l_sse42+0x590> + 4292ca: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 4292cf: 66 0f 3a 0f 44 17 f0 palignr $0x2,-0x10(%rdi,%rdx,1),%xmm0 + 4292d6: 02 + 4292d7: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 4292dc: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 4292e0: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 4292e5: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 4292ea: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 4292ef: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 4292f3: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 4292f8: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 4292fd: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 429302: 66 41 0f db f8 pand %xmm8,%xmm7 + 429307: 66 45 0f db ca pand %xmm10,%xmm9 + 42930c: 66 0f db fe pand %xmm6,%xmm7 + 429310: 66 44 0f db ce pand %xmm6,%xmm9 + 429315: 66 0f eb c7 por %xmm7,%xmm0 + 429319: 66 41 0f eb c9 por %xmm9,%xmm1 + 42931e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 429324: 0f 86 06 16 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42932a: 48 83 c2 10 add $0x10,%rdx + 42932e: 49 83 c2 10 add $0x10,%r10 + 429332: 7f 6c jg 4293a0 <__strcasecmp_l_sse42+0x590> + 429334: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 429339: 66 0f 3a 0f 44 17 f0 palignr $0x2,-0x10(%rdi,%rdx,1),%xmm0 + 429340: 02 + 429341: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 429346: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 42934a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42934f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 429354: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429359: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42935d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 429362: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429367: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 42936c: 66 41 0f db f8 pand %xmm8,%xmm7 + 429371: 66 45 0f db ca pand %xmm10,%xmm9 + 429376: 66 0f db fe pand %xmm6,%xmm7 + 42937a: 66 44 0f db ce pand %xmm6,%xmm9 + 42937f: 66 0f eb c7 por %xmm7,%xmm0 + 429383: 66 41 0f eb c9 por %xmm9,%xmm1 + 429388: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 42938e: 0f 86 9c 15 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 429394: 48 83 c2 10 add $0x10,%rdx + 429398: e9 23 ff ff ff jmpq 4292c0 <__strcasecmp_l_sse42+0x4b0> + 42939d: 0f 1f 00 nopl (%rax) + 4293a0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4293a7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 4293ad: 66 0f 73 d8 02 psrldq $0x2,%xmm0 + 4293b2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 4293b8: 83 f9 0d cmp $0xd,%ecx + 4293bb: 0f 87 09 ff ff ff ja 4292ca <__strcasecmp_l_sse42+0x4ba> + 4293c1: e9 1b 15 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> + 4293c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4293cd: 00 00 00 + 4293d0: 66 0f 73 fa 0d pslldq $0xd,%xmm2 + 4293d5: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 4293d9: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 4293de: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 4293e3: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 4293e8: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 4293ec: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 4293f1: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 4293f6: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 4293fb: 66 41 0f db f8 pand %xmm8,%xmm7 + 429400: 66 45 0f db ca pand %xmm10,%xmm9 + 429405: 66 0f db fe pand %xmm6,%xmm7 + 429409: 66 44 0f db ce pand %xmm6,%xmm9 + 42940e: 66 0f eb cf por %xmm7,%xmm1 + 429412: 66 41 0f eb d1 por %xmm9,%xmm2 + 429417: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42941b: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42941f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 429424: d3 ea shr %cl,%edx + 429426: 41 d3 e9 shr %cl,%r9d + 429429: 44 29 ca sub %r9d,%edx + 42942c: 0f 85 26 15 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> + 429432: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 429436: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42943d: 41 b9 03 00 00 00 mov $0x3,%r9d + 429443: 4c 8d 57 03 lea 0x3(%rdi),%r10 + 429447: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42944e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 429455: 48 89 ca mov %rcx,%rdx + 429458: 49 83 c2 10 add $0x10,%r10 + 42945c: 0f 8f de 00 00 00 jg 429540 <__strcasecmp_l_sse42+0x730> + 429462: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 429467: 66 0f 3a 0f 44 17 f0 palignr $0x3,-0x10(%rdi,%rdx,1),%xmm0 + 42946e: 03 + 42946f: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 429474: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 429478: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42947d: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 429482: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429487: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42948b: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 429490: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429495: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 42949a: 66 41 0f db f8 pand %xmm8,%xmm7 + 42949f: 66 45 0f db ca pand %xmm10,%xmm9 + 4294a4: 66 0f db fe pand %xmm6,%xmm7 + 4294a8: 66 44 0f db ce pand %xmm6,%xmm9 + 4294ad: 66 0f eb c7 por %xmm7,%xmm0 + 4294b1: 66 41 0f eb c9 por %xmm9,%xmm1 + 4294b6: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 4294bc: 0f 86 6e 14 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 4294c2: 48 83 c2 10 add $0x10,%rdx + 4294c6: 49 83 c2 10 add $0x10,%r10 + 4294ca: 7f 74 jg 429540 <__strcasecmp_l_sse42+0x730> + 4294cc: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 4294d1: 66 0f 3a 0f 44 17 f0 palignr $0x3,-0x10(%rdi,%rdx,1),%xmm0 + 4294d8: 03 + 4294d9: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 4294de: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 4294e2: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 4294e7: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 4294ec: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 4294f1: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 4294f5: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 4294fa: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 4294ff: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 429504: 66 41 0f db f8 pand %xmm8,%xmm7 + 429509: 66 45 0f db ca pand %xmm10,%xmm9 + 42950e: 66 0f db fe pand %xmm6,%xmm7 + 429512: 66 44 0f db ce pand %xmm6,%xmm9 + 429517: 66 0f eb c7 por %xmm7,%xmm0 + 42951b: 66 41 0f eb c9 por %xmm9,%xmm1 + 429520: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 429526: 0f 86 04 14 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42952c: 48 83 c2 10 add $0x10,%rdx + 429530: e9 23 ff ff ff jmpq 429458 <__strcasecmp_l_sse42+0x648> + 429535: 90 nop + 429536: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42953d: 00 00 00 + 429540: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 429547: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 42954d: 66 0f 73 d8 03 psrldq $0x3,%xmm0 + 429552: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 429558: 83 f9 0c cmp $0xc,%ecx + 42955b: 0f 87 01 ff ff ff ja 429462 <__strcasecmp_l_sse42+0x652> + 429561: e9 7b 13 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> + 429566: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42956d: 00 00 00 + 429570: 66 0f 73 fa 0c pslldq $0xc,%xmm2 + 429575: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 429579: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42957e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 429583: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429588: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42958c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 429591: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429596: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 42959b: 66 41 0f db f8 pand %xmm8,%xmm7 + 4295a0: 66 45 0f db ca pand %xmm10,%xmm9 + 4295a5: 66 0f db fe pand %xmm6,%xmm7 + 4295a9: 66 44 0f db ce pand %xmm6,%xmm9 + 4295ae: 66 0f eb cf por %xmm7,%xmm1 + 4295b2: 66 41 0f eb d1 por %xmm9,%xmm2 + 4295b7: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 4295bb: 66 0f f8 d0 psubb %xmm0,%xmm2 + 4295bf: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 4295c4: d3 ea shr %cl,%edx + 4295c6: 41 d3 e9 shr %cl,%r9d + 4295c9: 44 29 ca sub %r9d,%edx + 4295cc: 0f 85 86 13 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> + 4295d2: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 4295d6: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 4295dd: 41 b9 04 00 00 00 mov $0x4,%r9d + 4295e3: 4c 8d 57 04 lea 0x4(%rdi),%r10 + 4295e7: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 4295ee: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4295f5: 48 89 ca mov %rcx,%rdx + 4295f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4295ff: 00 + 429600: 49 83 c2 10 add $0x10,%r10 + 429604: 0f 8f d6 00 00 00 jg 4296e0 <__strcasecmp_l_sse42+0x8d0> + 42960a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42960f: 66 0f 3a 0f 44 17 f0 palignr $0x4,-0x10(%rdi,%rdx,1),%xmm0 + 429616: 04 + 429617: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 42961c: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 429620: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 429625: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 42962a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42962f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 429633: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 429638: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42963d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 429642: 66 41 0f db f8 pand %xmm8,%xmm7 + 429647: 66 45 0f db ca pand %xmm10,%xmm9 + 42964c: 66 0f db fe pand %xmm6,%xmm7 + 429650: 66 44 0f db ce pand %xmm6,%xmm9 + 429655: 66 0f eb c7 por %xmm7,%xmm0 + 429659: 66 41 0f eb c9 por %xmm9,%xmm1 + 42965e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 429664: 0f 86 c6 12 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42966a: 48 83 c2 10 add $0x10,%rdx + 42966e: 49 83 c2 10 add $0x10,%r10 + 429672: 7f 6c jg 4296e0 <__strcasecmp_l_sse42+0x8d0> + 429674: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 429679: 66 0f 3a 0f 44 17 f0 palignr $0x4,-0x10(%rdi,%rdx,1),%xmm0 + 429680: 04 + 429681: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 429686: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 42968a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42968f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 429694: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429699: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42969d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 4296a2: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 4296a7: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 4296ac: 66 41 0f db f8 pand %xmm8,%xmm7 + 4296b1: 66 45 0f db ca pand %xmm10,%xmm9 + 4296b6: 66 0f db fe pand %xmm6,%xmm7 + 4296ba: 66 44 0f db ce pand %xmm6,%xmm9 + 4296bf: 66 0f eb c7 por %xmm7,%xmm0 + 4296c3: 66 41 0f eb c9 por %xmm9,%xmm1 + 4296c8: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 4296ce: 0f 86 5c 12 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 4296d4: 48 83 c2 10 add $0x10,%rdx + 4296d8: e9 23 ff ff ff jmpq 429600 <__strcasecmp_l_sse42+0x7f0> + 4296dd: 0f 1f 00 nopl (%rax) + 4296e0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 4296e7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 4296ed: 66 0f 73 d8 04 psrldq $0x4,%xmm0 + 4296f2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 4296f8: 83 f9 0b cmp $0xb,%ecx + 4296fb: 0f 87 09 ff ff ff ja 42960a <__strcasecmp_l_sse42+0x7fa> + 429701: e9 db 11 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> + 429706: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42970d: 00 00 00 + 429710: 66 0f 73 fa 0b pslldq $0xb,%xmm2 + 429715: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 429719: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42971e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 429723: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429728: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42972c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 429731: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429736: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 42973b: 66 41 0f db f8 pand %xmm8,%xmm7 + 429740: 66 45 0f db ca pand %xmm10,%xmm9 + 429745: 66 0f db fe pand %xmm6,%xmm7 + 429749: 66 44 0f db ce pand %xmm6,%xmm9 + 42974e: 66 0f eb cf por %xmm7,%xmm1 + 429752: 66 41 0f eb d1 por %xmm9,%xmm2 + 429757: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42975b: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42975f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 429764: d3 ea shr %cl,%edx + 429766: 41 d3 e9 shr %cl,%r9d + 429769: 44 29 ca sub %r9d,%edx + 42976c: 0f 85 e6 11 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> + 429772: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 429776: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42977d: 41 b9 05 00 00 00 mov $0x5,%r9d + 429783: 4c 8d 57 05 lea 0x5(%rdi),%r10 + 429787: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42978e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 429795: 48 89 ca mov %rcx,%rdx + 429798: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42979f: 00 + 4297a0: 49 83 c2 10 add $0x10,%r10 + 4297a4: 0f 8f d6 00 00 00 jg 429880 <__strcasecmp_l_sse42+0xa70> + 4297aa: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 4297af: 66 0f 3a 0f 44 17 f0 palignr $0x5,-0x10(%rdi,%rdx,1),%xmm0 + 4297b6: 05 + 4297b7: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 4297bc: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 4297c0: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 4297c5: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 4297ca: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 4297cf: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 4297d3: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 4297d8: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 4297dd: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 4297e2: 66 41 0f db f8 pand %xmm8,%xmm7 + 4297e7: 66 45 0f db ca pand %xmm10,%xmm9 + 4297ec: 66 0f db fe pand %xmm6,%xmm7 + 4297f0: 66 44 0f db ce pand %xmm6,%xmm9 + 4297f5: 66 0f eb c7 por %xmm7,%xmm0 + 4297f9: 66 41 0f eb c9 por %xmm9,%xmm1 + 4297fe: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 429804: 0f 86 26 11 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42980a: 48 83 c2 10 add $0x10,%rdx + 42980e: 49 83 c2 10 add $0x10,%r10 + 429812: 7f 6c jg 429880 <__strcasecmp_l_sse42+0xa70> + 429814: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 429819: 66 0f 3a 0f 44 17 f0 palignr $0x5,-0x10(%rdi,%rdx,1),%xmm0 + 429820: 05 + 429821: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 429826: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 42982a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42982f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 429834: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429839: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42983d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 429842: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429847: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 42984c: 66 41 0f db f8 pand %xmm8,%xmm7 + 429851: 66 45 0f db ca pand %xmm10,%xmm9 + 429856: 66 0f db fe pand %xmm6,%xmm7 + 42985a: 66 44 0f db ce pand %xmm6,%xmm9 + 42985f: 66 0f eb c7 por %xmm7,%xmm0 + 429863: 66 41 0f eb c9 por %xmm9,%xmm1 + 429868: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 42986e: 0f 86 bc 10 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 429874: 48 83 c2 10 add $0x10,%rdx + 429878: e9 23 ff ff ff jmpq 4297a0 <__strcasecmp_l_sse42+0x990> + 42987d: 0f 1f 00 nopl (%rax) + 429880: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 429887: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 42988d: 66 0f 73 d8 05 psrldq $0x5,%xmm0 + 429892: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 429898: 83 f9 0a cmp $0xa,%ecx + 42989b: 0f 87 09 ff ff ff ja 4297aa <__strcasecmp_l_sse42+0x99a> + 4298a1: e9 3b 10 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> + 4298a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4298ad: 00 00 00 + 4298b0: 66 0f 73 fa 0a pslldq $0xa,%xmm2 + 4298b5: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 4298b9: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 4298be: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 4298c3: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 4298c8: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 4298cc: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 4298d1: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 4298d6: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 4298db: 66 41 0f db f8 pand %xmm8,%xmm7 + 4298e0: 66 45 0f db ca pand %xmm10,%xmm9 + 4298e5: 66 0f db fe pand %xmm6,%xmm7 + 4298e9: 66 44 0f db ce pand %xmm6,%xmm9 + 4298ee: 66 0f eb cf por %xmm7,%xmm1 + 4298f2: 66 41 0f eb d1 por %xmm9,%xmm2 + 4298f7: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 4298fb: 66 0f f8 d0 psubb %xmm0,%xmm2 + 4298ff: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 429904: d3 ea shr %cl,%edx + 429906: 41 d3 e9 shr %cl,%r9d + 429909: 44 29 ca sub %r9d,%edx + 42990c: 0f 85 46 10 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> + 429912: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 429916: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42991d: 41 b9 06 00 00 00 mov $0x6,%r9d + 429923: 4c 8d 57 06 lea 0x6(%rdi),%r10 + 429927: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42992e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 429935: 48 89 ca mov %rcx,%rdx + 429938: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42993f: 00 + 429940: 49 83 c2 10 add $0x10,%r10 + 429944: 0f 8f d6 00 00 00 jg 429a20 <__strcasecmp_l_sse42+0xc10> + 42994a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42994f: 66 0f 3a 0f 44 17 f0 palignr $0x6,-0x10(%rdi,%rdx,1),%xmm0 + 429956: 06 + 429957: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 42995c: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 429960: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 429965: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 42996a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42996f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 429973: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 429978: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42997d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 429982: 66 41 0f db f8 pand %xmm8,%xmm7 + 429987: 66 45 0f db ca pand %xmm10,%xmm9 + 42998c: 66 0f db fe pand %xmm6,%xmm7 + 429990: 66 44 0f db ce pand %xmm6,%xmm9 + 429995: 66 0f eb c7 por %xmm7,%xmm0 + 429999: 66 41 0f eb c9 por %xmm9,%xmm1 + 42999e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 4299a4: 0f 86 86 0f 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 4299aa: 48 83 c2 10 add $0x10,%rdx + 4299ae: 49 83 c2 10 add $0x10,%r10 + 4299b2: 7f 6c jg 429a20 <__strcasecmp_l_sse42+0xc10> + 4299b4: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 4299b9: 66 0f 3a 0f 44 17 f0 palignr $0x6,-0x10(%rdi,%rdx,1),%xmm0 + 4299c0: 06 + 4299c1: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 4299c6: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 4299ca: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 4299cf: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 4299d4: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 4299d9: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 4299dd: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 4299e2: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 4299e7: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 4299ec: 66 41 0f db f8 pand %xmm8,%xmm7 + 4299f1: 66 45 0f db ca pand %xmm10,%xmm9 + 4299f6: 66 0f db fe pand %xmm6,%xmm7 + 4299fa: 66 44 0f db ce pand %xmm6,%xmm9 + 4299ff: 66 0f eb c7 por %xmm7,%xmm0 + 429a03: 66 41 0f eb c9 por %xmm9,%xmm1 + 429a08: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 429a0e: 0f 86 1c 0f 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 429a14: 48 83 c2 10 add $0x10,%rdx + 429a18: e9 23 ff ff ff jmpq 429940 <__strcasecmp_l_sse42+0xb30> + 429a1d: 0f 1f 00 nopl (%rax) + 429a20: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 429a27: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 429a2d: 66 0f 73 d8 06 psrldq $0x6,%xmm0 + 429a32: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 429a38: 83 f9 09 cmp $0x9,%ecx + 429a3b: 0f 87 09 ff ff ff ja 42994a <__strcasecmp_l_sse42+0xb3a> + 429a41: e9 9b 0e 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> + 429a46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 429a4d: 00 00 00 + 429a50: 66 0f 73 fa 09 pslldq $0x9,%xmm2 + 429a55: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 429a59: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 429a5e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 429a63: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429a68: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 429a6c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 429a71: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429a76: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 429a7b: 66 41 0f db f8 pand %xmm8,%xmm7 + 429a80: 66 45 0f db ca pand %xmm10,%xmm9 + 429a85: 66 0f db fe pand %xmm6,%xmm7 + 429a89: 66 44 0f db ce pand %xmm6,%xmm9 + 429a8e: 66 0f eb cf por %xmm7,%xmm1 + 429a92: 66 41 0f eb d1 por %xmm9,%xmm2 + 429a97: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 429a9b: 66 0f f8 d0 psubb %xmm0,%xmm2 + 429a9f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 429aa4: d3 ea shr %cl,%edx + 429aa6: 41 d3 e9 shr %cl,%r9d + 429aa9: 44 29 ca sub %r9d,%edx + 429aac: 0f 85 a6 0e 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> + 429ab2: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 429ab6: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 429abd: 41 b9 07 00 00 00 mov $0x7,%r9d + 429ac3: 4c 8d 57 07 lea 0x7(%rdi),%r10 + 429ac7: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 429ace: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 429ad5: 48 89 ca mov %rcx,%rdx + 429ad8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 429adf: 00 + 429ae0: 49 83 c2 10 add $0x10,%r10 + 429ae4: 0f 8f d6 00 00 00 jg 429bc0 <__strcasecmp_l_sse42+0xdb0> + 429aea: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 429aef: 66 0f 3a 0f 44 17 f0 palignr $0x7,-0x10(%rdi,%rdx,1),%xmm0 + 429af6: 07 + 429af7: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 429afc: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 429b00: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 429b05: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 429b0a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429b0f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 429b13: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 429b18: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429b1d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 429b22: 66 41 0f db f8 pand %xmm8,%xmm7 + 429b27: 66 45 0f db ca pand %xmm10,%xmm9 + 429b2c: 66 0f db fe pand %xmm6,%xmm7 + 429b30: 66 44 0f db ce pand %xmm6,%xmm9 + 429b35: 66 0f eb c7 por %xmm7,%xmm0 + 429b39: 66 41 0f eb c9 por %xmm9,%xmm1 + 429b3e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 429b44: 0f 86 e6 0d 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 429b4a: 48 83 c2 10 add $0x10,%rdx + 429b4e: 49 83 c2 10 add $0x10,%r10 + 429b52: 7f 6c jg 429bc0 <__strcasecmp_l_sse42+0xdb0> + 429b54: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 429b59: 66 0f 3a 0f 44 17 f0 palignr $0x7,-0x10(%rdi,%rdx,1),%xmm0 + 429b60: 07 + 429b61: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 429b66: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 429b6a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 429b6f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 429b74: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429b79: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 429b7d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 429b82: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429b87: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 429b8c: 66 41 0f db f8 pand %xmm8,%xmm7 + 429b91: 66 45 0f db ca pand %xmm10,%xmm9 + 429b96: 66 0f db fe pand %xmm6,%xmm7 + 429b9a: 66 44 0f db ce pand %xmm6,%xmm9 + 429b9f: 66 0f eb c7 por %xmm7,%xmm0 + 429ba3: 66 41 0f eb c9 por %xmm9,%xmm1 + 429ba8: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 429bae: 0f 86 7c 0d 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 429bb4: 48 83 c2 10 add $0x10,%rdx + 429bb8: e9 23 ff ff ff jmpq 429ae0 <__strcasecmp_l_sse42+0xcd0> + 429bbd: 0f 1f 00 nopl (%rax) + 429bc0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 429bc7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 429bcd: 66 0f 73 d8 07 psrldq $0x7,%xmm0 + 429bd2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 429bd8: 83 f9 08 cmp $0x8,%ecx + 429bdb: 0f 87 09 ff ff ff ja 429aea <__strcasecmp_l_sse42+0xcda> + 429be1: e9 fb 0c 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> + 429be6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 429bed: 00 00 00 + 429bf0: 66 0f 73 fa 08 pslldq $0x8,%xmm2 + 429bf5: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 429bf9: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 429bfe: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 429c03: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429c08: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 429c0c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 429c11: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429c16: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 429c1b: 66 41 0f db f8 pand %xmm8,%xmm7 + 429c20: 66 45 0f db ca pand %xmm10,%xmm9 + 429c25: 66 0f db fe pand %xmm6,%xmm7 + 429c29: 66 44 0f db ce pand %xmm6,%xmm9 + 429c2e: 66 0f eb cf por %xmm7,%xmm1 + 429c32: 66 41 0f eb d1 por %xmm9,%xmm2 + 429c37: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 429c3b: 66 0f f8 d0 psubb %xmm0,%xmm2 + 429c3f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 429c44: d3 ea shr %cl,%edx + 429c46: 41 d3 e9 shr %cl,%r9d + 429c49: 44 29 ca sub %r9d,%edx + 429c4c: 0f 85 06 0d 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> + 429c52: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 429c56: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 429c5d: 41 b9 08 00 00 00 mov $0x8,%r9d + 429c63: 4c 8d 57 08 lea 0x8(%rdi),%r10 + 429c67: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 429c6e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 429c75: 48 89 ca mov %rcx,%rdx + 429c78: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 429c7f: 00 + 429c80: 49 83 c2 10 add $0x10,%r10 + 429c84: 0f 8f d6 00 00 00 jg 429d60 <__strcasecmp_l_sse42+0xf50> + 429c8a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 429c8f: 66 0f 3a 0f 44 17 f0 palignr $0x8,-0x10(%rdi,%rdx,1),%xmm0 + 429c96: 08 + 429c97: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 429c9c: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 429ca0: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 429ca5: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 429caa: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429caf: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 429cb3: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 429cb8: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429cbd: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 429cc2: 66 41 0f db f8 pand %xmm8,%xmm7 + 429cc7: 66 45 0f db ca pand %xmm10,%xmm9 + 429ccc: 66 0f db fe pand %xmm6,%xmm7 + 429cd0: 66 44 0f db ce pand %xmm6,%xmm9 + 429cd5: 66 0f eb c7 por %xmm7,%xmm0 + 429cd9: 66 41 0f eb c9 por %xmm9,%xmm1 + 429cde: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 429ce4: 0f 86 46 0c 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 429cea: 48 83 c2 10 add $0x10,%rdx + 429cee: 49 83 c2 10 add $0x10,%r10 + 429cf2: 7f 6c jg 429d60 <__strcasecmp_l_sse42+0xf50> + 429cf4: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 429cf9: 66 0f 3a 0f 44 17 f0 palignr $0x8,-0x10(%rdi,%rdx,1),%xmm0 + 429d00: 08 + 429d01: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 429d06: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 429d0a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 429d0f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 429d14: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429d19: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 429d1d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 429d22: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429d27: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 429d2c: 66 41 0f db f8 pand %xmm8,%xmm7 + 429d31: 66 45 0f db ca pand %xmm10,%xmm9 + 429d36: 66 0f db fe pand %xmm6,%xmm7 + 429d3a: 66 44 0f db ce pand %xmm6,%xmm9 + 429d3f: 66 0f eb c7 por %xmm7,%xmm0 + 429d43: 66 41 0f eb c9 por %xmm9,%xmm1 + 429d48: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 429d4e: 0f 86 dc 0b 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 429d54: 48 83 c2 10 add $0x10,%rdx + 429d58: e9 23 ff ff ff jmpq 429c80 <__strcasecmp_l_sse42+0xe70> + 429d5d: 0f 1f 00 nopl (%rax) + 429d60: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 429d67: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 429d6d: 66 0f 73 d8 08 psrldq $0x8,%xmm0 + 429d72: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 429d78: 83 f9 07 cmp $0x7,%ecx + 429d7b: 0f 87 09 ff ff ff ja 429c8a <__strcasecmp_l_sse42+0xe7a> + 429d81: e9 5b 0b 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> + 429d86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 429d8d: 00 00 00 + 429d90: 66 0f 73 fa 07 pslldq $0x7,%xmm2 + 429d95: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 429d99: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 429d9e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 429da3: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429da8: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 429dac: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 429db1: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429db6: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 429dbb: 66 41 0f db f8 pand %xmm8,%xmm7 + 429dc0: 66 45 0f db ca pand %xmm10,%xmm9 + 429dc5: 66 0f db fe pand %xmm6,%xmm7 + 429dc9: 66 44 0f db ce pand %xmm6,%xmm9 + 429dce: 66 0f eb cf por %xmm7,%xmm1 + 429dd2: 66 41 0f eb d1 por %xmm9,%xmm2 + 429dd7: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 429ddb: 66 0f f8 d0 psubb %xmm0,%xmm2 + 429ddf: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 429de4: d3 ea shr %cl,%edx + 429de6: 41 d3 e9 shr %cl,%r9d + 429de9: 44 29 ca sub %r9d,%edx + 429dec: 0f 85 66 0b 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> + 429df2: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 429df6: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 429dfd: 41 b9 09 00 00 00 mov $0x9,%r9d + 429e03: 4c 8d 57 09 lea 0x9(%rdi),%r10 + 429e07: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 429e0e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 429e15: 48 89 ca mov %rcx,%rdx + 429e18: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 429e1f: 00 + 429e20: 49 83 c2 10 add $0x10,%r10 + 429e24: 0f 8f d6 00 00 00 jg 429f00 <__strcasecmp_l_sse42+0x10f0> + 429e2a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 429e2f: 66 0f 3a 0f 44 17 f0 palignr $0x9,-0x10(%rdi,%rdx,1),%xmm0 + 429e36: 09 + 429e37: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 429e3c: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 429e40: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 429e45: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 429e4a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429e4f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 429e53: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 429e58: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429e5d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 429e62: 66 41 0f db f8 pand %xmm8,%xmm7 + 429e67: 66 45 0f db ca pand %xmm10,%xmm9 + 429e6c: 66 0f db fe pand %xmm6,%xmm7 + 429e70: 66 44 0f db ce pand %xmm6,%xmm9 + 429e75: 66 0f eb c7 por %xmm7,%xmm0 + 429e79: 66 41 0f eb c9 por %xmm9,%xmm1 + 429e7e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 429e84: 0f 86 a6 0a 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 429e8a: 48 83 c2 10 add $0x10,%rdx + 429e8e: 49 83 c2 10 add $0x10,%r10 + 429e92: 7f 6c jg 429f00 <__strcasecmp_l_sse42+0x10f0> + 429e94: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 429e99: 66 0f 3a 0f 44 17 f0 palignr $0x9,-0x10(%rdi,%rdx,1),%xmm0 + 429ea0: 09 + 429ea1: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 429ea6: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 429eaa: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 429eaf: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 429eb4: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429eb9: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 429ebd: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 429ec2: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429ec7: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 429ecc: 66 41 0f db f8 pand %xmm8,%xmm7 + 429ed1: 66 45 0f db ca pand %xmm10,%xmm9 + 429ed6: 66 0f db fe pand %xmm6,%xmm7 + 429eda: 66 44 0f db ce pand %xmm6,%xmm9 + 429edf: 66 0f eb c7 por %xmm7,%xmm0 + 429ee3: 66 41 0f eb c9 por %xmm9,%xmm1 + 429ee8: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 429eee: 0f 86 3c 0a 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 429ef4: 48 83 c2 10 add $0x10,%rdx + 429ef8: e9 23 ff ff ff jmpq 429e20 <__strcasecmp_l_sse42+0x1010> + 429efd: 0f 1f 00 nopl (%rax) + 429f00: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 429f07: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 429f0d: 66 0f 73 d8 09 psrldq $0x9,%xmm0 + 429f12: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 429f18: 83 f9 06 cmp $0x6,%ecx + 429f1b: 0f 87 09 ff ff ff ja 429e2a <__strcasecmp_l_sse42+0x101a> + 429f21: e9 bb 09 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> + 429f26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 429f2d: 00 00 00 + 429f30: 66 0f 73 fa 06 pslldq $0x6,%xmm2 + 429f35: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 429f39: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 429f3e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 429f43: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429f48: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 429f4c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 429f51: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429f56: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 429f5b: 66 41 0f db f8 pand %xmm8,%xmm7 + 429f60: 66 45 0f db ca pand %xmm10,%xmm9 + 429f65: 66 0f db fe pand %xmm6,%xmm7 + 429f69: 66 44 0f db ce pand %xmm6,%xmm9 + 429f6e: 66 0f eb cf por %xmm7,%xmm1 + 429f72: 66 41 0f eb d1 por %xmm9,%xmm2 + 429f77: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 429f7b: 66 0f f8 d0 psubb %xmm0,%xmm2 + 429f7f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 429f84: d3 ea shr %cl,%edx + 429f86: 41 d3 e9 shr %cl,%r9d + 429f89: 44 29 ca sub %r9d,%edx + 429f8c: 0f 85 c6 09 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> + 429f92: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 429f96: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 429f9d: 41 b9 0a 00 00 00 mov $0xa,%r9d + 429fa3: 4c 8d 57 0a lea 0xa(%rdi),%r10 + 429fa7: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 429fae: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 429fb5: 48 89 ca mov %rcx,%rdx + 429fb8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 429fbf: 00 + 429fc0: 49 83 c2 10 add $0x10,%r10 + 429fc4: 0f 8f d6 00 00 00 jg 42a0a0 <__strcasecmp_l_sse42+0x1290> + 429fca: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 429fcf: 66 0f 3a 0f 44 17 f0 palignr $0xa,-0x10(%rdi,%rdx,1),%xmm0 + 429fd6: 0a + 429fd7: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 429fdc: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 429fe0: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 429fe5: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 429fea: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 429fef: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 429ff3: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 429ff8: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 429ffd: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 42a002: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a007: 66 45 0f db ca pand %xmm10,%xmm9 + 42a00c: 66 0f db fe pand %xmm6,%xmm7 + 42a010: 66 44 0f db ce pand %xmm6,%xmm9 + 42a015: 66 0f eb c7 por %xmm7,%xmm0 + 42a019: 66 41 0f eb c9 por %xmm9,%xmm1 + 42a01e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 42a024: 0f 86 06 09 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42a02a: 48 83 c2 10 add $0x10,%rdx + 42a02e: 49 83 c2 10 add $0x10,%r10 + 42a032: 7f 6c jg 42a0a0 <__strcasecmp_l_sse42+0x1290> + 42a034: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42a039: 66 0f 3a 0f 44 17 f0 palignr $0xa,-0x10(%rdi,%rdx,1),%xmm0 + 42a040: 0a + 42a041: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 42a046: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 42a04a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a04f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 42a054: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a059: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a05d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 42a062: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a067: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 42a06c: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a071: 66 45 0f db ca pand %xmm10,%xmm9 + 42a076: 66 0f db fe pand %xmm6,%xmm7 + 42a07a: 66 44 0f db ce pand %xmm6,%xmm9 + 42a07f: 66 0f eb c7 por %xmm7,%xmm0 + 42a083: 66 41 0f eb c9 por %xmm9,%xmm1 + 42a088: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 42a08e: 0f 86 9c 08 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42a094: 48 83 c2 10 add $0x10,%rdx + 42a098: e9 23 ff ff ff jmpq 429fc0 <__strcasecmp_l_sse42+0x11b0> + 42a09d: 0f 1f 00 nopl (%rax) + 42a0a0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42a0a7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 42a0ad: 66 0f 73 d8 0a psrldq $0xa,%xmm0 + 42a0b2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 42a0b8: 83 f9 05 cmp $0x5,%ecx + 42a0bb: 0f 87 09 ff ff ff ja 429fca <__strcasecmp_l_sse42+0x11ba> + 42a0c1: e9 1b 08 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> + 42a0c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42a0cd: 00 00 00 + 42a0d0: 66 0f 73 fa 05 pslldq $0x5,%xmm2 + 42a0d5: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 42a0d9: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a0de: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 42a0e3: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a0e8: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a0ec: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 42a0f1: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a0f6: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 42a0fb: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a100: 66 45 0f db ca pand %xmm10,%xmm9 + 42a105: 66 0f db fe pand %xmm6,%xmm7 + 42a109: 66 44 0f db ce pand %xmm6,%xmm9 + 42a10e: 66 0f eb cf por %xmm7,%xmm1 + 42a112: 66 41 0f eb d1 por %xmm9,%xmm2 + 42a117: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42a11b: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42a11f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42a124: d3 ea shr %cl,%edx + 42a126: 41 d3 e9 shr %cl,%r9d + 42a129: 44 29 ca sub %r9d,%edx + 42a12c: 0f 85 26 08 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> + 42a132: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42a136: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42a13d: 41 b9 0b 00 00 00 mov $0xb,%r9d + 42a143: 4c 8d 57 0b lea 0xb(%rdi),%r10 + 42a147: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42a14e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42a155: 48 89 ca mov %rcx,%rdx + 42a158: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42a15f: 00 + 42a160: 49 83 c2 10 add $0x10,%r10 + 42a164: 0f 8f d6 00 00 00 jg 42a240 <__strcasecmp_l_sse42+0x1430> + 42a16a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42a16f: 66 0f 3a 0f 44 17 f0 palignr $0xb,-0x10(%rdi,%rdx,1),%xmm0 + 42a176: 0b + 42a177: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 42a17c: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 42a180: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a185: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 42a18a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a18f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a193: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 42a198: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a19d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 42a1a2: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a1a7: 66 45 0f db ca pand %xmm10,%xmm9 + 42a1ac: 66 0f db fe pand %xmm6,%xmm7 + 42a1b0: 66 44 0f db ce pand %xmm6,%xmm9 + 42a1b5: 66 0f eb c7 por %xmm7,%xmm0 + 42a1b9: 66 41 0f eb c9 por %xmm9,%xmm1 + 42a1be: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 42a1c4: 0f 86 66 07 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42a1ca: 48 83 c2 10 add $0x10,%rdx + 42a1ce: 49 83 c2 10 add $0x10,%r10 + 42a1d2: 7f 6c jg 42a240 <__strcasecmp_l_sse42+0x1430> + 42a1d4: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42a1d9: 66 0f 3a 0f 44 17 f0 palignr $0xb,-0x10(%rdi,%rdx,1),%xmm0 + 42a1e0: 0b + 42a1e1: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 42a1e6: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 42a1ea: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a1ef: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 42a1f4: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a1f9: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a1fd: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 42a202: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a207: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 42a20c: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a211: 66 45 0f db ca pand %xmm10,%xmm9 + 42a216: 66 0f db fe pand %xmm6,%xmm7 + 42a21a: 66 44 0f db ce pand %xmm6,%xmm9 + 42a21f: 66 0f eb c7 por %xmm7,%xmm0 + 42a223: 66 41 0f eb c9 por %xmm9,%xmm1 + 42a228: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 42a22e: 0f 86 fc 06 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42a234: 48 83 c2 10 add $0x10,%rdx + 42a238: e9 23 ff ff ff jmpq 42a160 <__strcasecmp_l_sse42+0x1350> + 42a23d: 0f 1f 00 nopl (%rax) + 42a240: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42a247: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 42a24d: 66 0f 73 d8 0b psrldq $0xb,%xmm0 + 42a252: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 42a258: 83 f9 04 cmp $0x4,%ecx + 42a25b: 0f 87 09 ff ff ff ja 42a16a <__strcasecmp_l_sse42+0x135a> + 42a261: e9 7b 06 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> + 42a266: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42a26d: 00 00 00 + 42a270: 66 0f 73 fa 04 pslldq $0x4,%xmm2 + 42a275: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 42a279: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a27e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 42a283: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a288: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a28c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 42a291: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a296: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 42a29b: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a2a0: 66 45 0f db ca pand %xmm10,%xmm9 + 42a2a5: 66 0f db fe pand %xmm6,%xmm7 + 42a2a9: 66 44 0f db ce pand %xmm6,%xmm9 + 42a2ae: 66 0f eb cf por %xmm7,%xmm1 + 42a2b2: 66 41 0f eb d1 por %xmm9,%xmm2 + 42a2b7: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42a2bb: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42a2bf: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42a2c4: d3 ea shr %cl,%edx + 42a2c6: 41 d3 e9 shr %cl,%r9d + 42a2c9: 44 29 ca sub %r9d,%edx + 42a2cc: 0f 85 86 06 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> + 42a2d2: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42a2d6: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42a2dd: 41 b9 0c 00 00 00 mov $0xc,%r9d + 42a2e3: 4c 8d 57 0c lea 0xc(%rdi),%r10 + 42a2e7: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42a2ee: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42a2f5: 48 89 ca mov %rcx,%rdx + 42a2f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42a2ff: 00 + 42a300: 49 83 c2 10 add $0x10,%r10 + 42a304: 0f 8f d6 00 00 00 jg 42a3e0 <__strcasecmp_l_sse42+0x15d0> + 42a30a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42a30f: 66 0f 3a 0f 44 17 f0 palignr $0xc,-0x10(%rdi,%rdx,1),%xmm0 + 42a316: 0c + 42a317: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 42a31c: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 42a320: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a325: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 42a32a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a32f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a333: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 42a338: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a33d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 42a342: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a347: 66 45 0f db ca pand %xmm10,%xmm9 + 42a34c: 66 0f db fe pand %xmm6,%xmm7 + 42a350: 66 44 0f db ce pand %xmm6,%xmm9 + 42a355: 66 0f eb c7 por %xmm7,%xmm0 + 42a359: 66 41 0f eb c9 por %xmm9,%xmm1 + 42a35e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 42a364: 0f 86 c6 05 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42a36a: 48 83 c2 10 add $0x10,%rdx + 42a36e: 49 83 c2 10 add $0x10,%r10 + 42a372: 7f 6c jg 42a3e0 <__strcasecmp_l_sse42+0x15d0> + 42a374: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42a379: 66 0f 3a 0f 44 17 f0 palignr $0xc,-0x10(%rdi,%rdx,1),%xmm0 + 42a380: 0c + 42a381: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 42a386: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 42a38a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a38f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 42a394: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a399: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a39d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 42a3a2: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a3a7: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 42a3ac: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a3b1: 66 45 0f db ca pand %xmm10,%xmm9 + 42a3b6: 66 0f db fe pand %xmm6,%xmm7 + 42a3ba: 66 44 0f db ce pand %xmm6,%xmm9 + 42a3bf: 66 0f eb c7 por %xmm7,%xmm0 + 42a3c3: 66 41 0f eb c9 por %xmm9,%xmm1 + 42a3c8: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 42a3ce: 0f 86 5c 05 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42a3d4: 48 83 c2 10 add $0x10,%rdx + 42a3d8: e9 23 ff ff ff jmpq 42a300 <__strcasecmp_l_sse42+0x14f0> + 42a3dd: 0f 1f 00 nopl (%rax) + 42a3e0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42a3e7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 42a3ed: 66 0f 73 d8 0c psrldq $0xc,%xmm0 + 42a3f2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 42a3f8: 83 f9 03 cmp $0x3,%ecx + 42a3fb: 0f 87 09 ff ff ff ja 42a30a <__strcasecmp_l_sse42+0x14fa> + 42a401: e9 db 04 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> + 42a406: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42a40d: 00 00 00 + 42a410: 66 0f 73 fa 03 pslldq $0x3,%xmm2 + 42a415: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 42a419: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a41e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 42a423: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a428: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a42c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 42a431: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a436: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 42a43b: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a440: 66 45 0f db ca pand %xmm10,%xmm9 + 42a445: 66 0f db fe pand %xmm6,%xmm7 + 42a449: 66 44 0f db ce pand %xmm6,%xmm9 + 42a44e: 66 0f eb cf por %xmm7,%xmm1 + 42a452: 66 41 0f eb d1 por %xmm9,%xmm2 + 42a457: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42a45b: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42a45f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42a464: d3 ea shr %cl,%edx + 42a466: 41 d3 e9 shr %cl,%r9d + 42a469: 44 29 ca sub %r9d,%edx + 42a46c: 0f 85 e6 04 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> + 42a472: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42a476: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42a47d: 41 b9 0d 00 00 00 mov $0xd,%r9d + 42a483: 4c 8d 57 0d lea 0xd(%rdi),%r10 + 42a487: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42a48e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42a495: 48 89 ca mov %rcx,%rdx + 42a498: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42a49f: 00 + 42a4a0: 49 83 c2 10 add $0x10,%r10 + 42a4a4: 0f 8f d6 00 00 00 jg 42a580 <__strcasecmp_l_sse42+0x1770> + 42a4aa: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42a4af: 66 0f 3a 0f 44 17 f0 palignr $0xd,-0x10(%rdi,%rdx,1),%xmm0 + 42a4b6: 0d + 42a4b7: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 42a4bc: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 42a4c0: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a4c5: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 42a4ca: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a4cf: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a4d3: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 42a4d8: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a4dd: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 42a4e2: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a4e7: 66 45 0f db ca pand %xmm10,%xmm9 + 42a4ec: 66 0f db fe pand %xmm6,%xmm7 + 42a4f0: 66 44 0f db ce pand %xmm6,%xmm9 + 42a4f5: 66 0f eb c7 por %xmm7,%xmm0 + 42a4f9: 66 41 0f eb c9 por %xmm9,%xmm1 + 42a4fe: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 42a504: 0f 86 26 04 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42a50a: 48 83 c2 10 add $0x10,%rdx + 42a50e: 49 83 c2 10 add $0x10,%r10 + 42a512: 7f 6c jg 42a580 <__strcasecmp_l_sse42+0x1770> + 42a514: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42a519: 66 0f 3a 0f 44 17 f0 palignr $0xd,-0x10(%rdi,%rdx,1),%xmm0 + 42a520: 0d + 42a521: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 42a526: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 42a52a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a52f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 42a534: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a539: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a53d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 42a542: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a547: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 42a54c: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a551: 66 45 0f db ca pand %xmm10,%xmm9 + 42a556: 66 0f db fe pand %xmm6,%xmm7 + 42a55a: 66 44 0f db ce pand %xmm6,%xmm9 + 42a55f: 66 0f eb c7 por %xmm7,%xmm0 + 42a563: 66 41 0f eb c9 por %xmm9,%xmm1 + 42a568: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 42a56e: 0f 86 bc 03 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42a574: 48 83 c2 10 add $0x10,%rdx + 42a578: e9 23 ff ff ff jmpq 42a4a0 <__strcasecmp_l_sse42+0x1690> + 42a57d: 0f 1f 00 nopl (%rax) + 42a580: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42a587: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 42a58d: 66 0f 73 d8 0d psrldq $0xd,%xmm0 + 42a592: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 42a598: 83 f9 02 cmp $0x2,%ecx + 42a59b: 0f 87 09 ff ff ff ja 42a4aa <__strcasecmp_l_sse42+0x169a> + 42a5a1: e9 3b 03 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> + 42a5a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42a5ad: 00 00 00 + 42a5b0: 66 0f 73 fa 02 pslldq $0x2,%xmm2 + 42a5b5: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 42a5b9: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a5be: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 42a5c3: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a5c8: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a5cc: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 42a5d1: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a5d6: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 42a5db: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a5e0: 66 45 0f db ca pand %xmm10,%xmm9 + 42a5e5: 66 0f db fe pand %xmm6,%xmm7 + 42a5e9: 66 44 0f db ce pand %xmm6,%xmm9 + 42a5ee: 66 0f eb cf por %xmm7,%xmm1 + 42a5f2: 66 41 0f eb d1 por %xmm9,%xmm2 + 42a5f7: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42a5fb: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42a5ff: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42a604: d3 ea shr %cl,%edx + 42a606: 41 d3 e9 shr %cl,%r9d + 42a609: 44 29 ca sub %r9d,%edx + 42a60c: 0f 85 46 03 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> + 42a612: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42a616: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42a61d: 41 b9 0e 00 00 00 mov $0xe,%r9d + 42a623: 4c 8d 57 0e lea 0xe(%rdi),%r10 + 42a627: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42a62e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42a635: 48 89 ca mov %rcx,%rdx + 42a638: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42a63f: 00 + 42a640: 49 83 c2 10 add $0x10,%r10 + 42a644: 0f 8f d6 00 00 00 jg 42a720 <__strcasecmp_l_sse42+0x1910> + 42a64a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42a64f: 66 0f 3a 0f 44 17 f0 palignr $0xe,-0x10(%rdi,%rdx,1),%xmm0 + 42a656: 0e + 42a657: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 42a65c: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 42a660: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a665: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 42a66a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a66f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a673: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 42a678: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a67d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 42a682: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a687: 66 45 0f db ca pand %xmm10,%xmm9 + 42a68c: 66 0f db fe pand %xmm6,%xmm7 + 42a690: 66 44 0f db ce pand %xmm6,%xmm9 + 42a695: 66 0f eb c7 por %xmm7,%xmm0 + 42a699: 66 41 0f eb c9 por %xmm9,%xmm1 + 42a69e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 42a6a4: 0f 86 86 02 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42a6aa: 48 83 c2 10 add $0x10,%rdx + 42a6ae: 49 83 c2 10 add $0x10,%r10 + 42a6b2: 7f 6c jg 42a720 <__strcasecmp_l_sse42+0x1910> + 42a6b4: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42a6b9: 66 0f 3a 0f 44 17 f0 palignr $0xe,-0x10(%rdi,%rdx,1),%xmm0 + 42a6c0: 0e + 42a6c1: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 42a6c6: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 42a6ca: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a6cf: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 42a6d4: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a6d9: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a6dd: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 42a6e2: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a6e7: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 42a6ec: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a6f1: 66 45 0f db ca pand %xmm10,%xmm9 + 42a6f6: 66 0f db fe pand %xmm6,%xmm7 + 42a6fa: 66 44 0f db ce pand %xmm6,%xmm9 + 42a6ff: 66 0f eb c7 por %xmm7,%xmm0 + 42a703: 66 41 0f eb c9 por %xmm9,%xmm1 + 42a708: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 42a70e: 0f 86 1c 02 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42a714: 48 83 c2 10 add $0x10,%rdx + 42a718: e9 23 ff ff ff jmpq 42a640 <__strcasecmp_l_sse42+0x1830> + 42a71d: 0f 1f 00 nopl (%rax) + 42a720: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42a727: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 42a72d: 66 0f 73 d8 0e psrldq $0xe,%xmm0 + 42a732: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 42a738: 83 f9 01 cmp $0x1,%ecx + 42a73b: 0f 87 09 ff ff ff ja 42a64a <__strcasecmp_l_sse42+0x183a> + 42a741: e9 9b 01 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> + 42a746: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42a74d: 00 00 00 + 42a750: 66 0f 73 fa 01 pslldq $0x1,%xmm2 + 42a755: 66 0f 6f f9 movdqa %xmm1,%xmm7 + 42a759: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a75e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 + 42a763: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a768: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a76c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 + 42a771: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a776: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 + 42a77b: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a780: 66 45 0f db ca pand %xmm10,%xmm9 + 42a785: 66 0f db fe pand %xmm6,%xmm7 + 42a789: 66 44 0f db ce pand %xmm6,%xmm9 + 42a78e: 66 0f eb cf por %xmm7,%xmm1 + 42a792: 66 41 0f eb d1 por %xmm9,%xmm2 + 42a797: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42a79b: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42a79f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42a7a4: d3 ea shr %cl,%edx + 42a7a6: 41 d3 e9 shr %cl,%r9d + 42a7a9: 44 29 ca sub %r9d,%edx + 42a7ac: 0f 85 a6 01 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> + 42a7b2: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42a7b6: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42a7bd: 41 b9 0f 00 00 00 mov $0xf,%r9d + 42a7c3: 4c 8d 57 0f lea 0xf(%rdi),%r10 + 42a7c7: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42a7ce: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42a7d5: 48 89 ca mov %rcx,%rdx + 42a7d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42a7df: 00 + 42a7e0: 49 83 c2 10 add $0x10,%r10 + 42a7e4: 0f 8f d6 00 00 00 jg 42a8c0 <__strcasecmp_l_sse42+0x1ab0> + 42a7ea: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42a7ef: 66 0f 3a 0f 44 17 f0 palignr $0xf,-0x10(%rdi,%rdx,1),%xmm0 + 42a7f6: 0f + 42a7f7: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 42a7fc: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 42a800: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a805: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 42a80a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a80f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a813: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 42a818: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a81d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 42a822: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a827: 66 45 0f db ca pand %xmm10,%xmm9 + 42a82c: 66 0f db fe pand %xmm6,%xmm7 + 42a830: 66 44 0f db ce pand %xmm6,%xmm9 + 42a835: 66 0f eb c7 por %xmm7,%xmm0 + 42a839: 66 41 0f eb c9 por %xmm9,%xmm1 + 42a83e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 42a844: 0f 86 e6 00 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42a84a: 48 83 c2 10 add $0x10,%rdx + 42a84e: 49 83 c2 10 add $0x10,%r10 + 42a852: 7f 6c jg 42a8c0 <__strcasecmp_l_sse42+0x1ab0> + 42a854: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 + 42a859: 66 0f 3a 0f 44 17 f0 palignr $0xf,-0x10(%rdi,%rdx,1),%xmm0 + 42a860: 0f + 42a861: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 42a866: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 42a86a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a86f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 42a874: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a879: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a87d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 42a882: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a887: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 42a88c: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a891: 66 45 0f db ca pand %xmm10,%xmm9 + 42a896: 66 0f db fe pand %xmm6,%xmm7 + 42a89a: 66 44 0f db ce pand %xmm6,%xmm9 + 42a89f: 66 0f eb c7 por %xmm7,%xmm0 + 42a8a3: 66 41 0f eb c9 por %xmm9,%xmm1 + 42a8a8: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 42a8ae: 0f 86 7c 00 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> + 42a8b4: 48 83 c2 10 add $0x10,%rdx + 42a8b8: e9 23 ff ff ff jmpq 42a7e0 <__strcasecmp_l_sse42+0x19d0> + 42a8bd: 0f 1f 00 nopl (%rax) + 42a8c0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42a8c7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 + 42a8cd: 66 0f 73 d8 0f psrldq $0xf,%xmm0 + 42a8d2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 + 42a8d8: 83 f9 00 cmp $0x0,%ecx + 42a8db: 0f 87 09 ff ff ff ja 42a7ea <__strcasecmp_l_sse42+0x19da> + 42a8e1: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 + 42a8e6: 66 0f 6f f8 movdqa %xmm0,%xmm7 + 42a8ea: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 + 42a8ef: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 + 42a8f4: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 + 42a8f9: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 + 42a8fd: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 + 42a902: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 + 42a907: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 + 42a90c: 66 41 0f db f8 pand %xmm8,%xmm7 + 42a911: 66 45 0f db ca pand %xmm10,%xmm9 + 42a916: 66 0f db fe pand %xmm6,%xmm7 + 42a91a: 66 44 0f db ce pand %xmm6,%xmm9 + 42a91f: 66 0f eb c7 por %xmm7,%xmm0 + 42a923: 66 41 0f eb c9 por %xmm9,%xmm1 + 42a928: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 + 42a92e: 66 90 xchg %ax,%ax + 42a930: 73 5a jae 42a98c <__strcasecmp_l_sse42+0x1b7c> + 42a932: 48 01 ca add %rcx,%rdx + 42a935: 4a 8d 7c 0f f0 lea -0x10(%rdi,%r9,1),%rdi + 42a93a: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax + 42a93e: 0f b6 14 16 movzbl (%rsi,%rdx,1),%edx + 42a942: 45 85 c0 test %r8d,%r8d + 42a945: 74 01 je 42a948 <__strcasecmp_l_sse42+0x1b38> + 42a947: 92 xchg %eax,%edx + 42a948: 48 8d 0d f1 cb 07 00 lea 0x7cbf1(%rip),%rcx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> + 42a94f: 8b 14 91 mov (%rcx,%rdx,4),%edx + 42a952: 8b 04 81 mov (%rcx,%rax,4),%eax + 42a955: 29 d0 sub %edx,%eax + 42a957: c3 retq + 42a958: 48 8d 3c 07 lea (%rdi,%rax,1),%rdi + 42a95c: 48 8d 34 0e lea (%rsi,%rcx,1),%rsi + 42a960: 45 85 c0 test %r8d,%r8d + 42a963: 74 0b je 42a970 <__strcasecmp_l_sse42+0x1b60> + 42a965: 48 87 f7 xchg %rsi,%rdi + 42a968: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42a96f: 00 + 42a970: 48 0f bc d2 bsf %rdx,%rdx + 42a974: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx + 42a978: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax + 42a97c: 48 8d 15 bd cb 07 00 lea 0x7cbbd(%rip),%rdx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> + 42a983: 8b 0c 8a mov (%rdx,%rcx,4),%ecx + 42a986: 8b 04 82 mov (%rdx,%rax,4),%eax + 42a989: 29 c8 sub %ecx,%eax + 42a98b: c3 retq + 42a98c: 31 c0 xor %eax,%eax + 42a98e: c3 retq + 42a98f: 90 nop + 42a990: 0f b6 0e movzbl (%rsi),%ecx + 42a993: 0f b6 07 movzbl (%rdi),%eax + 42a996: 48 8d 15 a3 cb 07 00 lea 0x7cba3(%rip),%rdx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> + 42a99d: 8b 0c 8a mov (%rdx,%rcx,4),%ecx + 42a9a0: 8b 04 82 mov (%rdx,%rax,4),%eax + 42a9a3: 29 c8 sub %ecx,%eax + 42a9a5: c3 retq + 42a9a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42a9ad: 00 00 00 + +000000000042a9b0 <__strcasecmp_avx>: + 42a9b0: 48 c7 c0 b8 ff ff ff mov $0xffffffffffffffb8,%rax + 42a9b7: 64 48 8b 10 mov %fs:(%rax),%rdx + 42a9bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +000000000042a9c0 <__strcasecmp_l_avx>: + 42a9c0: 48 8b 02 mov (%rdx),%rax + 42a9c3: f7 80 78 02 00 00 01 testl $0x1,0x278(%rax) + 42a9ca: 00 00 00 + 42a9cd: 0f 85 2d 39 01 00 jne 43e300 <__strcasecmp_l_nonascii> + 42a9d3: 89 f1 mov %esi,%ecx + 42a9d5: 89 f8 mov %edi,%eax + 42a9d7: 48 83 e1 3f and $0x3f,%rcx + 42a9db: 48 83 e0 3f and $0x3f,%rax + 42a9df: c5 f9 6f 25 c9 86 07 vmovdqa 0x786c9(%rip),%xmm4 # 4a30b0 <__func__.10972+0xf0> + 42a9e6: 00 + 42a9e7: c5 f9 6f 2d f1 86 07 vmovdqa 0x786f1(%rip),%xmm5 # 4a30e0 + 42a9ee: 00 + 42a9ef: c5 f9 6f 35 d9 86 07 vmovdqa 0x786d9(%rip),%xmm6 # 4a30d0 + 42a9f6: 00 + 42a9f7: 83 f9 30 cmp $0x30,%ecx + 42a9fa: 77 64 ja 42aa60 <__strcasecmp_l_avx+0xa0> + 42a9fc: 83 f8 30 cmp $0x30,%eax + 42a9ff: 77 5f ja 42aa60 <__strcasecmp_l_avx+0xa0> + 42aa01: c5 fa 6f 0f vmovdqu (%rdi),%xmm1 + 42aa05: c5 fa 6f 16 vmovdqu (%rsi),%xmm2 + 42aa09: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42aa0d: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42aa11: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42aa15: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42aa19: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42aa1d: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42aa22: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42aa26: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42aa2a: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42aa2e: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42aa32: c5 f9 ef c0 vpxor %xmm0,%xmm0,%xmm0 + 42aa36: c5 f9 74 c1 vpcmpeqb %xmm1,%xmm0,%xmm0 + 42aa3a: c5 f1 74 ca vpcmpeqb %xmm2,%xmm1,%xmm1 + 42aa3e: c5 f1 f8 c8 vpsubb %xmm0,%xmm1,%xmm1 + 42aa42: c5 f9 d7 d1 vpmovmskb %xmm1,%edx + 42aa46: 81 ea ff ff 00 00 sub $0xffff,%edx + 42aa4c: 0f 85 8e 15 00 00 jne 42bfe0 <__strcasecmp_l_avx+0x1620> + 42aa52: 48 83 c6 10 add $0x10,%rsi + 42aa56: 48 83 c7 10 add $0x10,%rdi + 42aa5a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 42aa60: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 42aa64: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 42aa68: ba ff ff 00 00 mov $0xffff,%edx + 42aa6d: 45 31 c0 xor %r8d,%r8d + 42aa70: 83 e1 0f and $0xf,%ecx + 42aa73: 83 e0 0f and $0xf,%eax + 42aa76: c5 f9 ef c0 vpxor %xmm0,%xmm0,%xmm0 + 42aa7a: 39 c1 cmp %eax,%ecx + 42aa7c: 74 32 je 42aab0 <__strcasecmp_l_avx+0xf0> + 42aa7e: 77 07 ja 42aa87 <__strcasecmp_l_avx+0xc7> + 42aa80: 41 89 d0 mov %edx,%r8d + 42aa83: 91 xchg %eax,%ecx + 42aa84: 48 87 f7 xchg %rsi,%rdi + 42aa87: c5 f9 6f 17 vmovdqa (%rdi),%xmm2 + 42aa8b: c5 f9 6f 0e vmovdqa (%rsi),%xmm1 + 42aa8f: 4c 8d 48 0f lea 0xf(%rax),%r9 + 42aa93: 49 29 c9 sub %rcx,%r9 + 42aa96: 4c 8d 15 93 86 07 00 lea 0x78693(%rip),%r10 # 4a3130 + 42aa9d: 4f 63 0c 8a movslq (%r10,%r9,4),%r9 + 42aaa1: c5 f9 74 c1 vpcmpeqb %xmm1,%xmm0,%xmm0 + 42aaa5: 4f 8d 14 0a lea (%r10,%r9,1),%r10 + 42aaa9: 41 ff e2 jmpq *%r10 + 42aaac: 0f 1f 40 00 nopl 0x0(%rax) + 42aab0: c5 f9 6f 0e vmovdqa (%rsi),%xmm1 + 42aab4: c5 f9 74 c1 vpcmpeqb %xmm1,%xmm0,%xmm0 + 42aab8: c5 f9 6f 17 vmovdqa (%rdi),%xmm2 + 42aabc: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42aac0: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42aac4: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42aac8: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42aacc: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42aad0: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42aad5: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42aad9: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42aadd: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42aae1: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42aae5: c5 f1 74 ca vpcmpeqb %xmm2,%xmm1,%xmm1 + 42aae9: c5 f1 f8 c8 vpsubb %xmm0,%xmm1,%xmm1 + 42aaed: c5 79 d7 c9 vpmovmskb %xmm1,%r9d + 42aaf1: d3 ea shr %cl,%edx + 42aaf3: 41 d3 e9 shr %cl,%r9d + 42aaf6: 44 29 ca sub %r9d,%edx + 42aaf9: 0f 85 c9 14 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> + 42aaff: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42ab06: 49 c7 c1 10 00 00 00 mov $0x10,%r9 + 42ab0d: 48 89 ca mov %rcx,%rdx + 42ab10: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42ab15: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42ab1a: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42ab1e: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42ab22: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42ab26: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42ab2a: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42ab2e: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42ab33: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42ab37: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42ab3b: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42ab3f: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42ab43: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42ab49: 48 8d 52 10 lea 0x10(%rdx),%rdx + 42ab4d: 76 41 jbe 42ab90 <__strcasecmp_l_avx+0x1d0> + 42ab4f: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42ab54: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42ab59: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42ab5d: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42ab61: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42ab65: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42ab69: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42ab6d: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42ab72: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42ab76: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42ab7a: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42ab7e: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42ab82: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42ab88: 48 8d 52 10 lea 0x10(%rdx),%rdx + 42ab8c: 76 02 jbe 42ab90 <__strcasecmp_l_avx+0x1d0> + 42ab8e: eb 80 jmp 42ab10 <__strcasecmp_l_avx+0x150> + 42ab90: 0f 83 66 14 00 00 jae 42bffc <__strcasecmp_l_avx+0x163c> + 42ab96: 48 8d 4c 0a f0 lea -0x10(%rdx,%rcx,1),%rcx + 42ab9b: 0f b6 04 0f movzbl (%rdi,%rcx,1),%eax + 42ab9f: 0f b6 14 0e movzbl (%rsi,%rcx,1),%edx + 42aba3: 48 8d 0d 96 c9 07 00 lea 0x7c996(%rip),%rcx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> + 42abaa: 8b 04 81 mov (%rcx,%rax,4),%eax + 42abad: 8b 14 91 mov (%rcx,%rdx,4),%edx + 42abb0: 29 d0 sub %edx,%eax + 42abb2: c3 retq + 42abb3: 0f 1f 00 nopl (%rax) + 42abb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42abbd: 00 00 00 + 42abc0: c5 e9 73 fa 0f vpslldq $0xf,%xmm2,%xmm2 + 42abc5: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42abc9: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42abcd: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42abd1: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42abd5: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42abd9: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42abde: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42abe2: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42abe6: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42abea: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42abee: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 + 42abf2: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 + 42abf6: c5 79 d7 ca vpmovmskb %xmm2,%r9d + 42abfa: d3 ea shr %cl,%edx + 42abfc: 41 d3 e9 shr %cl,%r9d + 42abff: 44 29 ca sub %r9d,%edx + 42ac02: 0f 85 c0 13 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> + 42ac08: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 + 42ac0c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42ac13: 41 b9 01 00 00 00 mov $0x1,%r9d + 42ac19: 4c 8d 57 01 lea 0x1(%rdi),%r10 + 42ac1d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42ac24: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42ac2b: 48 89 ca mov %rcx,%rdx + 42ac2e: 66 90 xchg %ax,%ax + 42ac30: 49 83 c2 10 add $0x10,%r10 + 42ac34: 0f 8f a6 00 00 00 jg 42ace0 <__strcasecmp_l_avx+0x320> + 42ac3a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42ac3f: c4 e3 79 0f 44 17 f0 vpalignr $0x1,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42ac46: 01 + 42ac47: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42ac4c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42ac50: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42ac54: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42ac58: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42ac5c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42ac60: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42ac65: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42ac69: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42ac6d: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42ac71: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42ac75: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42ac7b: 0f 86 1f 13 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42ac81: 48 83 c2 10 add $0x10,%rdx + 42ac85: 49 83 c2 10 add $0x10,%r10 + 42ac89: 7f 55 jg 42ace0 <__strcasecmp_l_avx+0x320> + 42ac8b: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42ac90: c4 e3 79 0f 44 17 f0 vpalignr $0x1,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42ac97: 01 + 42ac98: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42ac9d: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42aca1: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42aca5: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42aca9: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42acad: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42acb1: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42acb6: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42acba: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42acbe: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42acc2: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42acc6: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42accc: 0f 86 ce 12 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42acd2: 48 83 c2 10 add $0x10,%rdx + 42acd6: e9 55 ff ff ff jmpq 42ac30 <__strcasecmp_l_avx+0x270> + 42acdb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42ace0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42ace7: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 + 42aced: c5 f9 73 d8 01 vpsrldq $0x1,%xmm0,%xmm0 + 42acf2: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 + 42acf8: 83 f9 0e cmp $0xe,%ecx + 42acfb: 0f 87 39 ff ff ff ja 42ac3a <__strcasecmp_l_avx+0x27a> + 42ad01: e9 5b 12 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> + 42ad06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42ad0d: 00 00 00 + 42ad10: c5 e9 73 fa 0e vpslldq $0xe,%xmm2,%xmm2 + 42ad15: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42ad19: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42ad1d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42ad21: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42ad25: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42ad29: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42ad2e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42ad32: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42ad36: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42ad3a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42ad3e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 + 42ad42: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 + 42ad46: c5 79 d7 ca vpmovmskb %xmm2,%r9d + 42ad4a: d3 ea shr %cl,%edx + 42ad4c: 41 d3 e9 shr %cl,%r9d + 42ad4f: 44 29 ca sub %r9d,%edx + 42ad52: 0f 85 70 12 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> + 42ad58: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 + 42ad5c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42ad63: 41 b9 02 00 00 00 mov $0x2,%r9d + 42ad69: 4c 8d 57 02 lea 0x2(%rdi),%r10 + 42ad6d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42ad74: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42ad7b: 48 89 ca mov %rcx,%rdx + 42ad7e: 66 90 xchg %ax,%ax + 42ad80: 49 83 c2 10 add $0x10,%r10 + 42ad84: 0f 8f a6 00 00 00 jg 42ae30 <__strcasecmp_l_avx+0x470> + 42ad8a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42ad8f: c4 e3 79 0f 44 17 f0 vpalignr $0x2,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42ad96: 02 + 42ad97: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42ad9c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42ada0: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42ada4: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42ada8: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42adac: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42adb0: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42adb5: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42adb9: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42adbd: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42adc1: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42adc5: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42adcb: 0f 86 cf 11 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42add1: 48 83 c2 10 add $0x10,%rdx + 42add5: 49 83 c2 10 add $0x10,%r10 + 42add9: 7f 55 jg 42ae30 <__strcasecmp_l_avx+0x470> + 42addb: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42ade0: c4 e3 79 0f 44 17 f0 vpalignr $0x2,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42ade7: 02 + 42ade8: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42aded: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42adf1: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42adf5: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42adf9: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42adfd: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42ae01: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42ae06: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42ae0a: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42ae0e: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42ae12: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42ae16: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42ae1c: 0f 86 7e 11 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42ae22: 48 83 c2 10 add $0x10,%rdx + 42ae26: e9 55 ff ff ff jmpq 42ad80 <__strcasecmp_l_avx+0x3c0> + 42ae2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42ae30: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42ae37: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 + 42ae3d: c5 f9 73 d8 02 vpsrldq $0x2,%xmm0,%xmm0 + 42ae42: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 + 42ae48: 83 f9 0d cmp $0xd,%ecx + 42ae4b: 0f 87 39 ff ff ff ja 42ad8a <__strcasecmp_l_avx+0x3ca> + 42ae51: e9 0b 11 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> + 42ae56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42ae5d: 00 00 00 + 42ae60: c5 e9 73 fa 0d vpslldq $0xd,%xmm2,%xmm2 + 42ae65: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42ae69: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42ae6d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42ae71: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42ae75: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42ae79: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42ae7e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42ae82: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42ae86: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42ae8a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42ae8e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 + 42ae92: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 + 42ae96: c5 79 d7 ca vpmovmskb %xmm2,%r9d + 42ae9a: d3 ea shr %cl,%edx + 42ae9c: 41 d3 e9 shr %cl,%r9d + 42ae9f: 44 29 ca sub %r9d,%edx + 42aea2: 0f 85 20 11 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> + 42aea8: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 + 42aeac: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42aeb3: 41 b9 03 00 00 00 mov $0x3,%r9d + 42aeb9: 4c 8d 57 03 lea 0x3(%rdi),%r10 + 42aebd: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42aec4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42aecb: 48 89 ca mov %rcx,%rdx + 42aece: 49 83 c2 10 add $0x10,%r10 + 42aed2: 0f 8f a8 00 00 00 jg 42af80 <__strcasecmp_l_avx+0x5c0> + 42aed8: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42aedd: c4 e3 79 0f 44 17 f0 vpalignr $0x3,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42aee4: 03 + 42aee5: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42aeea: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42aeee: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42aef2: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42aef6: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42aefa: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42aefe: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42af03: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42af07: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42af0b: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42af0f: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42af13: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42af19: 0f 86 81 10 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42af1f: 48 83 c2 10 add $0x10,%rdx + 42af23: 49 83 c2 10 add $0x10,%r10 + 42af27: 7f 57 jg 42af80 <__strcasecmp_l_avx+0x5c0> + 42af29: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42af2e: c4 e3 79 0f 44 17 f0 vpalignr $0x3,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42af35: 03 + 42af36: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42af3b: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42af3f: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42af43: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42af47: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42af4b: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42af4f: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42af54: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42af58: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42af5c: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42af60: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42af64: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42af6a: 0f 86 30 10 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42af70: 48 83 c2 10 add $0x10,%rdx + 42af74: e9 55 ff ff ff jmpq 42aece <__strcasecmp_l_avx+0x50e> + 42af79: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42af80: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42af87: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 + 42af8d: c5 f9 73 d8 03 vpsrldq $0x3,%xmm0,%xmm0 + 42af92: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 + 42af98: 83 f9 0c cmp $0xc,%ecx + 42af9b: 0f 87 37 ff ff ff ja 42aed8 <__strcasecmp_l_avx+0x518> + 42afa1: e9 bb 0f 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> + 42afa6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42afad: 00 00 00 + 42afb0: c5 e9 73 fa 0c vpslldq $0xc,%xmm2,%xmm2 + 42afb5: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42afb9: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42afbd: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42afc1: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42afc5: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42afc9: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42afce: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42afd2: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42afd6: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42afda: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42afde: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 + 42afe2: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 + 42afe6: c5 79 d7 ca vpmovmskb %xmm2,%r9d + 42afea: d3 ea shr %cl,%edx + 42afec: 41 d3 e9 shr %cl,%r9d + 42afef: 44 29 ca sub %r9d,%edx + 42aff2: 0f 85 d0 0f 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> + 42aff8: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 + 42affc: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42b003: 41 b9 04 00 00 00 mov $0x4,%r9d + 42b009: 4c 8d 57 04 lea 0x4(%rdi),%r10 + 42b00d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42b014: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42b01b: 48 89 ca mov %rcx,%rdx + 42b01e: 66 90 xchg %ax,%ax + 42b020: 49 83 c2 10 add $0x10,%r10 + 42b024: 0f 8f a6 00 00 00 jg 42b0d0 <__strcasecmp_l_avx+0x710> + 42b02a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42b02f: c4 e3 79 0f 44 17 f0 vpalignr $0x4,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42b036: 04 + 42b037: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42b03c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42b040: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42b044: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42b048: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42b04c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b050: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b055: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b059: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b05d: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42b061: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42b065: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42b06b: 0f 86 2f 0f 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42b071: 48 83 c2 10 add $0x10,%rdx + 42b075: 49 83 c2 10 add $0x10,%r10 + 42b079: 7f 55 jg 42b0d0 <__strcasecmp_l_avx+0x710> + 42b07b: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42b080: c4 e3 79 0f 44 17 f0 vpalignr $0x4,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42b087: 04 + 42b088: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42b08d: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42b091: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42b095: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42b099: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42b09d: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b0a1: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b0a6: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b0aa: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b0ae: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42b0b2: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42b0b6: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42b0bc: 0f 86 de 0e 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42b0c2: 48 83 c2 10 add $0x10,%rdx + 42b0c6: e9 55 ff ff ff jmpq 42b020 <__strcasecmp_l_avx+0x660> + 42b0cb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42b0d0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42b0d7: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 + 42b0dd: c5 f9 73 d8 04 vpsrldq $0x4,%xmm0,%xmm0 + 42b0e2: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 + 42b0e8: 83 f9 0b cmp $0xb,%ecx + 42b0eb: 0f 87 39 ff ff ff ja 42b02a <__strcasecmp_l_avx+0x66a> + 42b0f1: e9 6b 0e 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> + 42b0f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42b0fd: 00 00 00 + 42b100: c5 e9 73 fa 0b vpslldq $0xb,%xmm2,%xmm2 + 42b105: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42b109: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42b10d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42b111: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42b115: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b119: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b11e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b122: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b126: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42b12a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42b12e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 + 42b132: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 + 42b136: c5 79 d7 ca vpmovmskb %xmm2,%r9d + 42b13a: d3 ea shr %cl,%edx + 42b13c: 41 d3 e9 shr %cl,%r9d + 42b13f: 44 29 ca sub %r9d,%edx + 42b142: 0f 85 80 0e 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> + 42b148: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 + 42b14c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42b153: 41 b9 05 00 00 00 mov $0x5,%r9d + 42b159: 4c 8d 57 05 lea 0x5(%rdi),%r10 + 42b15d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42b164: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42b16b: 48 89 ca mov %rcx,%rdx + 42b16e: 66 90 xchg %ax,%ax + 42b170: 49 83 c2 10 add $0x10,%r10 + 42b174: 0f 8f a6 00 00 00 jg 42b220 <__strcasecmp_l_avx+0x860> + 42b17a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42b17f: c4 e3 79 0f 44 17 f0 vpalignr $0x5,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42b186: 05 + 42b187: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42b18c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42b190: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42b194: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42b198: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42b19c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b1a0: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b1a5: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b1a9: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b1ad: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42b1b1: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42b1b5: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42b1bb: 0f 86 df 0d 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42b1c1: 48 83 c2 10 add $0x10,%rdx + 42b1c5: 49 83 c2 10 add $0x10,%r10 + 42b1c9: 7f 55 jg 42b220 <__strcasecmp_l_avx+0x860> + 42b1cb: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42b1d0: c4 e3 79 0f 44 17 f0 vpalignr $0x5,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42b1d7: 05 + 42b1d8: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42b1dd: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42b1e1: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42b1e5: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42b1e9: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42b1ed: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b1f1: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b1f6: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b1fa: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b1fe: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42b202: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42b206: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42b20c: 0f 86 8e 0d 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42b212: 48 83 c2 10 add $0x10,%rdx + 42b216: e9 55 ff ff ff jmpq 42b170 <__strcasecmp_l_avx+0x7b0> + 42b21b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42b220: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42b227: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 + 42b22d: c5 f9 73 d8 05 vpsrldq $0x5,%xmm0,%xmm0 + 42b232: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 + 42b238: 83 f9 0a cmp $0xa,%ecx + 42b23b: 0f 87 39 ff ff ff ja 42b17a <__strcasecmp_l_avx+0x7ba> + 42b241: e9 1b 0d 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> + 42b246: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42b24d: 00 00 00 + 42b250: c5 e9 73 fa 0a vpslldq $0xa,%xmm2,%xmm2 + 42b255: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42b259: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42b25d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42b261: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42b265: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b269: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b26e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b272: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b276: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42b27a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42b27e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 + 42b282: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 + 42b286: c5 79 d7 ca vpmovmskb %xmm2,%r9d + 42b28a: d3 ea shr %cl,%edx + 42b28c: 41 d3 e9 shr %cl,%r9d + 42b28f: 44 29 ca sub %r9d,%edx + 42b292: 0f 85 30 0d 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> + 42b298: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 + 42b29c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42b2a3: 41 b9 06 00 00 00 mov $0x6,%r9d + 42b2a9: 4c 8d 57 06 lea 0x6(%rdi),%r10 + 42b2ad: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42b2b4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42b2bb: 48 89 ca mov %rcx,%rdx + 42b2be: 66 90 xchg %ax,%ax + 42b2c0: 49 83 c2 10 add $0x10,%r10 + 42b2c4: 0f 8f a6 00 00 00 jg 42b370 <__strcasecmp_l_avx+0x9b0> + 42b2ca: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42b2cf: c4 e3 79 0f 44 17 f0 vpalignr $0x6,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42b2d6: 06 + 42b2d7: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42b2dc: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42b2e0: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42b2e4: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42b2e8: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42b2ec: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b2f0: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b2f5: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b2f9: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b2fd: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42b301: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42b305: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42b30b: 0f 86 8f 0c 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42b311: 48 83 c2 10 add $0x10,%rdx + 42b315: 49 83 c2 10 add $0x10,%r10 + 42b319: 7f 55 jg 42b370 <__strcasecmp_l_avx+0x9b0> + 42b31b: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42b320: c4 e3 79 0f 44 17 f0 vpalignr $0x6,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42b327: 06 + 42b328: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42b32d: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42b331: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42b335: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42b339: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42b33d: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b341: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b346: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b34a: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b34e: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42b352: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42b356: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42b35c: 0f 86 3e 0c 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42b362: 48 83 c2 10 add $0x10,%rdx + 42b366: e9 55 ff ff ff jmpq 42b2c0 <__strcasecmp_l_avx+0x900> + 42b36b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42b370: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42b377: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 + 42b37d: c5 f9 73 d8 06 vpsrldq $0x6,%xmm0,%xmm0 + 42b382: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 + 42b388: 83 f9 09 cmp $0x9,%ecx + 42b38b: 0f 87 39 ff ff ff ja 42b2ca <__strcasecmp_l_avx+0x90a> + 42b391: e9 cb 0b 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> + 42b396: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42b39d: 00 00 00 + 42b3a0: c5 e9 73 fa 09 vpslldq $0x9,%xmm2,%xmm2 + 42b3a5: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42b3a9: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42b3ad: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42b3b1: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42b3b5: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b3b9: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b3be: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b3c2: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b3c6: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42b3ca: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42b3ce: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 + 42b3d2: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 + 42b3d6: c5 79 d7 ca vpmovmskb %xmm2,%r9d + 42b3da: d3 ea shr %cl,%edx + 42b3dc: 41 d3 e9 shr %cl,%r9d + 42b3df: 44 29 ca sub %r9d,%edx + 42b3e2: 0f 85 e0 0b 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> + 42b3e8: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 + 42b3ec: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42b3f3: 41 b9 07 00 00 00 mov $0x7,%r9d + 42b3f9: 4c 8d 57 07 lea 0x7(%rdi),%r10 + 42b3fd: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42b404: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42b40b: 48 89 ca mov %rcx,%rdx + 42b40e: 66 90 xchg %ax,%ax + 42b410: 49 83 c2 10 add $0x10,%r10 + 42b414: 0f 8f a6 00 00 00 jg 42b4c0 <__strcasecmp_l_avx+0xb00> + 42b41a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42b41f: c4 e3 79 0f 44 17 f0 vpalignr $0x7,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42b426: 07 + 42b427: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42b42c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42b430: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42b434: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42b438: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42b43c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b440: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b445: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b449: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b44d: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42b451: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42b455: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42b45b: 0f 86 3f 0b 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42b461: 48 83 c2 10 add $0x10,%rdx + 42b465: 49 83 c2 10 add $0x10,%r10 + 42b469: 7f 55 jg 42b4c0 <__strcasecmp_l_avx+0xb00> + 42b46b: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42b470: c4 e3 79 0f 44 17 f0 vpalignr $0x7,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42b477: 07 + 42b478: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42b47d: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42b481: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42b485: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42b489: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42b48d: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b491: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b496: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b49a: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b49e: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42b4a2: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42b4a6: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42b4ac: 0f 86 ee 0a 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42b4b2: 48 83 c2 10 add $0x10,%rdx + 42b4b6: e9 55 ff ff ff jmpq 42b410 <__strcasecmp_l_avx+0xa50> + 42b4bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42b4c0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42b4c7: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 + 42b4cd: c5 f9 73 d8 07 vpsrldq $0x7,%xmm0,%xmm0 + 42b4d2: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 + 42b4d8: 83 f9 08 cmp $0x8,%ecx + 42b4db: 0f 87 39 ff ff ff ja 42b41a <__strcasecmp_l_avx+0xa5a> + 42b4e1: e9 7b 0a 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> + 42b4e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42b4ed: 00 00 00 + 42b4f0: c5 e9 73 fa 08 vpslldq $0x8,%xmm2,%xmm2 + 42b4f5: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42b4f9: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42b4fd: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42b501: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42b505: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b509: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b50e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b512: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b516: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42b51a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42b51e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 + 42b522: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 + 42b526: c5 79 d7 ca vpmovmskb %xmm2,%r9d + 42b52a: d3 ea shr %cl,%edx + 42b52c: 41 d3 e9 shr %cl,%r9d + 42b52f: 44 29 ca sub %r9d,%edx + 42b532: 0f 85 90 0a 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> + 42b538: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 + 42b53c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42b543: 41 b9 08 00 00 00 mov $0x8,%r9d + 42b549: 4c 8d 57 08 lea 0x8(%rdi),%r10 + 42b54d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42b554: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42b55b: 48 89 ca mov %rcx,%rdx + 42b55e: 66 90 xchg %ax,%ax + 42b560: 49 83 c2 10 add $0x10,%r10 + 42b564: 0f 8f a6 00 00 00 jg 42b610 <__strcasecmp_l_avx+0xc50> + 42b56a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42b56f: c4 e3 79 0f 44 17 f0 vpalignr $0x8,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42b576: 08 + 42b577: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42b57c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42b580: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42b584: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42b588: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42b58c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b590: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b595: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b599: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b59d: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42b5a1: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42b5a5: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42b5ab: 0f 86 ef 09 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42b5b1: 48 83 c2 10 add $0x10,%rdx + 42b5b5: 49 83 c2 10 add $0x10,%r10 + 42b5b9: 7f 55 jg 42b610 <__strcasecmp_l_avx+0xc50> + 42b5bb: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42b5c0: c4 e3 79 0f 44 17 f0 vpalignr $0x8,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42b5c7: 08 + 42b5c8: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42b5cd: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42b5d1: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42b5d5: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42b5d9: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42b5dd: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b5e1: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b5e6: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b5ea: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b5ee: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42b5f2: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42b5f6: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42b5fc: 0f 86 9e 09 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42b602: 48 83 c2 10 add $0x10,%rdx + 42b606: e9 55 ff ff ff jmpq 42b560 <__strcasecmp_l_avx+0xba0> + 42b60b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42b610: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42b617: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 + 42b61d: c5 f9 73 d8 08 vpsrldq $0x8,%xmm0,%xmm0 + 42b622: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 + 42b628: 83 f9 07 cmp $0x7,%ecx + 42b62b: 0f 87 39 ff ff ff ja 42b56a <__strcasecmp_l_avx+0xbaa> + 42b631: e9 2b 09 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> + 42b636: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42b63d: 00 00 00 + 42b640: c5 e9 73 fa 07 vpslldq $0x7,%xmm2,%xmm2 + 42b645: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42b649: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42b64d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42b651: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42b655: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b659: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b65e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b662: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b666: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42b66a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42b66e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 + 42b672: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 + 42b676: c5 79 d7 ca vpmovmskb %xmm2,%r9d + 42b67a: d3 ea shr %cl,%edx + 42b67c: 41 d3 e9 shr %cl,%r9d + 42b67f: 44 29 ca sub %r9d,%edx + 42b682: 0f 85 40 09 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> + 42b688: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 + 42b68c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42b693: 41 b9 09 00 00 00 mov $0x9,%r9d + 42b699: 4c 8d 57 09 lea 0x9(%rdi),%r10 + 42b69d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42b6a4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42b6ab: 48 89 ca mov %rcx,%rdx + 42b6ae: 66 90 xchg %ax,%ax + 42b6b0: 49 83 c2 10 add $0x10,%r10 + 42b6b4: 0f 8f a6 00 00 00 jg 42b760 <__strcasecmp_l_avx+0xda0> + 42b6ba: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42b6bf: c4 e3 79 0f 44 17 f0 vpalignr $0x9,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42b6c6: 09 + 42b6c7: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42b6cc: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42b6d0: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42b6d4: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42b6d8: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42b6dc: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b6e0: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b6e5: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b6e9: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b6ed: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42b6f1: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42b6f5: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42b6fb: 0f 86 9f 08 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42b701: 48 83 c2 10 add $0x10,%rdx + 42b705: 49 83 c2 10 add $0x10,%r10 + 42b709: 7f 55 jg 42b760 <__strcasecmp_l_avx+0xda0> + 42b70b: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42b710: c4 e3 79 0f 44 17 f0 vpalignr $0x9,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42b717: 09 + 42b718: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42b71d: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42b721: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42b725: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42b729: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42b72d: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b731: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b736: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b73a: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b73e: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42b742: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42b746: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42b74c: 0f 86 4e 08 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42b752: 48 83 c2 10 add $0x10,%rdx + 42b756: e9 55 ff ff ff jmpq 42b6b0 <__strcasecmp_l_avx+0xcf0> + 42b75b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42b760: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42b767: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 + 42b76d: c5 f9 73 d8 09 vpsrldq $0x9,%xmm0,%xmm0 + 42b772: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 + 42b778: 83 f9 06 cmp $0x6,%ecx + 42b77b: 0f 87 39 ff ff ff ja 42b6ba <__strcasecmp_l_avx+0xcfa> + 42b781: e9 db 07 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> + 42b786: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42b78d: 00 00 00 + 42b790: c5 e9 73 fa 06 vpslldq $0x6,%xmm2,%xmm2 + 42b795: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42b799: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42b79d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42b7a1: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42b7a5: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b7a9: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b7ae: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b7b2: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b7b6: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42b7ba: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42b7be: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 + 42b7c2: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 + 42b7c6: c5 79 d7 ca vpmovmskb %xmm2,%r9d + 42b7ca: d3 ea shr %cl,%edx + 42b7cc: 41 d3 e9 shr %cl,%r9d + 42b7cf: 44 29 ca sub %r9d,%edx + 42b7d2: 0f 85 f0 07 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> + 42b7d8: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 + 42b7dc: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42b7e3: 41 b9 0a 00 00 00 mov $0xa,%r9d + 42b7e9: 4c 8d 57 0a lea 0xa(%rdi),%r10 + 42b7ed: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42b7f4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42b7fb: 48 89 ca mov %rcx,%rdx + 42b7fe: 66 90 xchg %ax,%ax + 42b800: 49 83 c2 10 add $0x10,%r10 + 42b804: 0f 8f a6 00 00 00 jg 42b8b0 <__strcasecmp_l_avx+0xef0> + 42b80a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42b80f: c4 e3 79 0f 44 17 f0 vpalignr $0xa,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42b816: 0a + 42b817: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42b81c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42b820: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42b824: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42b828: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42b82c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b830: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b835: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b839: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b83d: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42b841: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42b845: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42b84b: 0f 86 4f 07 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42b851: 48 83 c2 10 add $0x10,%rdx + 42b855: 49 83 c2 10 add $0x10,%r10 + 42b859: 7f 55 jg 42b8b0 <__strcasecmp_l_avx+0xef0> + 42b85b: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42b860: c4 e3 79 0f 44 17 f0 vpalignr $0xa,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42b867: 0a + 42b868: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42b86d: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42b871: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42b875: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42b879: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42b87d: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b881: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b886: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b88a: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b88e: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42b892: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42b896: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42b89c: 0f 86 fe 06 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42b8a2: 48 83 c2 10 add $0x10,%rdx + 42b8a6: e9 55 ff ff ff jmpq 42b800 <__strcasecmp_l_avx+0xe40> + 42b8ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42b8b0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42b8b7: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 + 42b8bd: c5 f9 73 d8 0a vpsrldq $0xa,%xmm0,%xmm0 + 42b8c2: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 + 42b8c8: 83 f9 05 cmp $0x5,%ecx + 42b8cb: 0f 87 39 ff ff ff ja 42b80a <__strcasecmp_l_avx+0xe4a> + 42b8d1: e9 8b 06 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> + 42b8d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42b8dd: 00 00 00 + 42b8e0: c5 e9 73 fa 05 vpslldq $0x5,%xmm2,%xmm2 + 42b8e5: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42b8e9: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42b8ed: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42b8f1: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42b8f5: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b8f9: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b8fe: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b902: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b906: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42b90a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42b90e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 + 42b912: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 + 42b916: c5 79 d7 ca vpmovmskb %xmm2,%r9d + 42b91a: d3 ea shr %cl,%edx + 42b91c: 41 d3 e9 shr %cl,%r9d + 42b91f: 44 29 ca sub %r9d,%edx + 42b922: 0f 85 a0 06 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> + 42b928: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 + 42b92c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42b933: 41 b9 0b 00 00 00 mov $0xb,%r9d + 42b939: 4c 8d 57 0b lea 0xb(%rdi),%r10 + 42b93d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42b944: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42b94b: 48 89 ca mov %rcx,%rdx + 42b94e: 66 90 xchg %ax,%ax + 42b950: 49 83 c2 10 add $0x10,%r10 + 42b954: 0f 8f a6 00 00 00 jg 42ba00 <__strcasecmp_l_avx+0x1040> + 42b95a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42b95f: c4 e3 79 0f 44 17 f0 vpalignr $0xb,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42b966: 0b + 42b967: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42b96c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42b970: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42b974: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42b978: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42b97c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b980: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b985: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b989: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b98d: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42b991: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42b995: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42b99b: 0f 86 ff 05 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42b9a1: 48 83 c2 10 add $0x10,%rdx + 42b9a5: 49 83 c2 10 add $0x10,%r10 + 42b9a9: 7f 55 jg 42ba00 <__strcasecmp_l_avx+0x1040> + 42b9ab: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42b9b0: c4 e3 79 0f 44 17 f0 vpalignr $0xb,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42b9b7: 0b + 42b9b8: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42b9bd: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42b9c1: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42b9c5: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42b9c9: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42b9cd: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42b9d1: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42b9d6: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42b9da: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42b9de: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42b9e2: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42b9e6: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42b9ec: 0f 86 ae 05 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42b9f2: 48 83 c2 10 add $0x10,%rdx + 42b9f6: e9 55 ff ff ff jmpq 42b950 <__strcasecmp_l_avx+0xf90> + 42b9fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42ba00: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42ba07: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 + 42ba0d: c5 f9 73 d8 0b vpsrldq $0xb,%xmm0,%xmm0 + 42ba12: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 + 42ba18: 83 f9 04 cmp $0x4,%ecx + 42ba1b: 0f 87 39 ff ff ff ja 42b95a <__strcasecmp_l_avx+0xf9a> + 42ba21: e9 3b 05 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> + 42ba26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42ba2d: 00 00 00 + 42ba30: c5 e9 73 fa 04 vpslldq $0x4,%xmm2,%xmm2 + 42ba35: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42ba39: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42ba3d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42ba41: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42ba45: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42ba49: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42ba4e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42ba52: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42ba56: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42ba5a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42ba5e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 + 42ba62: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 + 42ba66: c5 79 d7 ca vpmovmskb %xmm2,%r9d + 42ba6a: d3 ea shr %cl,%edx + 42ba6c: 41 d3 e9 shr %cl,%r9d + 42ba6f: 44 29 ca sub %r9d,%edx + 42ba72: 0f 85 50 05 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> + 42ba78: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 + 42ba7c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42ba83: 41 b9 0c 00 00 00 mov $0xc,%r9d + 42ba89: 4c 8d 57 0c lea 0xc(%rdi),%r10 + 42ba8d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42ba94: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42ba9b: 48 89 ca mov %rcx,%rdx + 42ba9e: 66 90 xchg %ax,%ax + 42baa0: 49 83 c2 10 add $0x10,%r10 + 42baa4: 0f 8f a6 00 00 00 jg 42bb50 <__strcasecmp_l_avx+0x1190> + 42baaa: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42baaf: c4 e3 79 0f 44 17 f0 vpalignr $0xc,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42bab6: 0c + 42bab7: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42babc: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42bac0: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42bac4: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42bac8: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42bacc: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42bad0: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42bad5: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42bad9: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42badd: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42bae1: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42bae5: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42baeb: 0f 86 af 04 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42baf1: 48 83 c2 10 add $0x10,%rdx + 42baf5: 49 83 c2 10 add $0x10,%r10 + 42baf9: 7f 55 jg 42bb50 <__strcasecmp_l_avx+0x1190> + 42bafb: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42bb00: c4 e3 79 0f 44 17 f0 vpalignr $0xc,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42bb07: 0c + 42bb08: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42bb0d: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42bb11: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42bb15: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42bb19: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42bb1d: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42bb21: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42bb26: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42bb2a: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42bb2e: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42bb32: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42bb36: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42bb3c: 0f 86 5e 04 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42bb42: 48 83 c2 10 add $0x10,%rdx + 42bb46: e9 55 ff ff ff jmpq 42baa0 <__strcasecmp_l_avx+0x10e0> + 42bb4b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42bb50: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42bb57: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 + 42bb5d: c5 f9 73 d8 0c vpsrldq $0xc,%xmm0,%xmm0 + 42bb62: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 + 42bb68: 83 f9 03 cmp $0x3,%ecx + 42bb6b: 0f 87 39 ff ff ff ja 42baaa <__strcasecmp_l_avx+0x10ea> + 42bb71: e9 eb 03 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> + 42bb76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42bb7d: 00 00 00 + 42bb80: c5 e9 73 fa 03 vpslldq $0x3,%xmm2,%xmm2 + 42bb85: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42bb89: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42bb8d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42bb91: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42bb95: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42bb99: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42bb9e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42bba2: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42bba6: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42bbaa: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42bbae: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 + 42bbb2: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 + 42bbb6: c5 79 d7 ca vpmovmskb %xmm2,%r9d + 42bbba: d3 ea shr %cl,%edx + 42bbbc: 41 d3 e9 shr %cl,%r9d + 42bbbf: 44 29 ca sub %r9d,%edx + 42bbc2: 0f 85 00 04 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> + 42bbc8: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 + 42bbcc: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42bbd3: 41 b9 0d 00 00 00 mov $0xd,%r9d + 42bbd9: 4c 8d 57 0d lea 0xd(%rdi),%r10 + 42bbdd: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42bbe4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42bbeb: 48 89 ca mov %rcx,%rdx + 42bbee: 66 90 xchg %ax,%ax + 42bbf0: 49 83 c2 10 add $0x10,%r10 + 42bbf4: 0f 8f a6 00 00 00 jg 42bca0 <__strcasecmp_l_avx+0x12e0> + 42bbfa: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42bbff: c4 e3 79 0f 44 17 f0 vpalignr $0xd,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42bc06: 0d + 42bc07: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42bc0c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42bc10: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42bc14: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42bc18: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42bc1c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42bc20: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42bc25: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42bc29: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42bc2d: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42bc31: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42bc35: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42bc3b: 0f 86 5f 03 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42bc41: 48 83 c2 10 add $0x10,%rdx + 42bc45: 49 83 c2 10 add $0x10,%r10 + 42bc49: 7f 55 jg 42bca0 <__strcasecmp_l_avx+0x12e0> + 42bc4b: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42bc50: c4 e3 79 0f 44 17 f0 vpalignr $0xd,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42bc57: 0d + 42bc58: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42bc5d: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42bc61: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42bc65: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42bc69: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42bc6d: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42bc71: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42bc76: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42bc7a: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42bc7e: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42bc82: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42bc86: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42bc8c: 0f 86 0e 03 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42bc92: 48 83 c2 10 add $0x10,%rdx + 42bc96: e9 55 ff ff ff jmpq 42bbf0 <__strcasecmp_l_avx+0x1230> + 42bc9b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42bca0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42bca7: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 + 42bcad: c5 f9 73 d8 0d vpsrldq $0xd,%xmm0,%xmm0 + 42bcb2: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 + 42bcb8: 83 f9 02 cmp $0x2,%ecx + 42bcbb: 0f 87 39 ff ff ff ja 42bbfa <__strcasecmp_l_avx+0x123a> + 42bcc1: e9 9b 02 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> + 42bcc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42bccd: 00 00 00 + 42bcd0: c5 e9 73 fa 02 vpslldq $0x2,%xmm2,%xmm2 + 42bcd5: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42bcd9: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42bcdd: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42bce1: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42bce5: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42bce9: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42bcee: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42bcf2: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42bcf6: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42bcfa: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42bcfe: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 + 42bd02: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 + 42bd06: c5 79 d7 ca vpmovmskb %xmm2,%r9d + 42bd0a: d3 ea shr %cl,%edx + 42bd0c: 41 d3 e9 shr %cl,%r9d + 42bd0f: 44 29 ca sub %r9d,%edx + 42bd12: 0f 85 b0 02 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> + 42bd18: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 + 42bd1c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42bd23: 41 b9 0e 00 00 00 mov $0xe,%r9d + 42bd29: 4c 8d 57 0e lea 0xe(%rdi),%r10 + 42bd2d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42bd34: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42bd3b: 48 89 ca mov %rcx,%rdx + 42bd3e: 66 90 xchg %ax,%ax + 42bd40: 49 83 c2 10 add $0x10,%r10 + 42bd44: 0f 8f a6 00 00 00 jg 42bdf0 <__strcasecmp_l_avx+0x1430> + 42bd4a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42bd4f: c4 e3 79 0f 44 17 f0 vpalignr $0xe,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42bd56: 0e + 42bd57: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42bd5c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42bd60: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42bd64: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42bd68: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42bd6c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42bd70: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42bd75: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42bd79: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42bd7d: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42bd81: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42bd85: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42bd8b: 0f 86 0f 02 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42bd91: 48 83 c2 10 add $0x10,%rdx + 42bd95: 49 83 c2 10 add $0x10,%r10 + 42bd99: 7f 55 jg 42bdf0 <__strcasecmp_l_avx+0x1430> + 42bd9b: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42bda0: c4 e3 79 0f 44 17 f0 vpalignr $0xe,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42bda7: 0e + 42bda8: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42bdad: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42bdb1: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42bdb5: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42bdb9: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42bdbd: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42bdc1: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42bdc6: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42bdca: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42bdce: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42bdd2: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42bdd6: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42bddc: 0f 86 be 01 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42bde2: 48 83 c2 10 add $0x10,%rdx + 42bde6: e9 55 ff ff ff jmpq 42bd40 <__strcasecmp_l_avx+0x1380> + 42bdeb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42bdf0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42bdf7: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 + 42bdfd: c5 f9 73 d8 0e vpsrldq $0xe,%xmm0,%xmm0 + 42be02: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 + 42be08: 83 f9 01 cmp $0x1,%ecx + 42be0b: 0f 87 39 ff ff ff ja 42bd4a <__strcasecmp_l_avx+0x138a> + 42be11: e9 4b 01 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> + 42be16: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42be1d: 00 00 00 + 42be20: c5 e9 73 fa 01 vpslldq $0x1,%xmm2,%xmm2 + 42be25: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 + 42be29: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 + 42be2d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 + 42be31: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 + 42be35: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42be39: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42be3e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42be42: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42be46: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 + 42be4a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 + 42be4e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 + 42be52: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 + 42be56: c5 79 d7 ca vpmovmskb %xmm2,%r9d + 42be5a: d3 ea shr %cl,%edx + 42be5c: 41 d3 e9 shr %cl,%r9d + 42be5f: 44 29 ca sub %r9d,%edx + 42be62: 0f 85 60 01 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> + 42be68: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 + 42be6c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42be73: 41 b9 0f 00 00 00 mov $0xf,%r9d + 42be79: 4c 8d 57 0f lea 0xf(%rdi),%r10 + 42be7d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42be84: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42be8b: 48 89 ca mov %rcx,%rdx + 42be8e: 66 90 xchg %ax,%ax + 42be90: 49 83 c2 10 add $0x10,%r10 + 42be94: 0f 8f a6 00 00 00 jg 42bf40 <__strcasecmp_l_avx+0x1580> + 42be9a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42be9f: c4 e3 79 0f 44 17 f0 vpalignr $0xf,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42bea6: 0f + 42bea7: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42beac: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42beb0: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42beb4: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42beb8: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42bebc: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42bec0: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42bec5: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42bec9: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42becd: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42bed1: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42bed5: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42bedb: 0f 86 bf 00 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42bee1: 48 83 c2 10 add $0x10,%rdx + 42bee5: 49 83 c2 10 add $0x10,%r10 + 42bee9: 7f 55 jg 42bf40 <__strcasecmp_l_avx+0x1580> + 42beeb: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 + 42bef0: c4 e3 79 0f 44 17 f0 vpalignr $0xf,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 + 42bef7: 0f + 42bef8: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42befd: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42bf01: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42bf05: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42bf09: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42bf0d: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42bf11: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42bf16: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42bf1a: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42bf1e: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42bf22: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42bf26: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42bf2c: 76 72 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> + 42bf2e: 48 83 c2 10 add $0x10,%rdx + 42bf32: e9 59 ff ff ff jmpq 42be90 <__strcasecmp_l_avx+0x14d0> + 42bf37: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42bf3e: 00 00 + 42bf40: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42bf47: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 + 42bf4d: c5 f9 73 d8 0f vpsrldq $0xf,%xmm0,%xmm0 + 42bf52: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 + 42bf58: 83 f9 00 cmp $0x0,%ecx + 42bf5b: 0f 87 39 ff ff ff ja 42be9a <__strcasecmp_l_avx+0x14da> + 42bf61: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 + 42bf66: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 + 42bf6a: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 + 42bf6e: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 + 42bf72: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 + 42bf76: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 + 42bf7a: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 + 42bf7f: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 + 42bf83: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 + 42bf87: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 + 42bf8b: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 + 42bf8f: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 + 42bf95: 90 nop + 42bf96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42bf9d: 00 00 00 + 42bfa0: 73 5a jae 42bffc <__strcasecmp_l_avx+0x163c> + 42bfa2: 48 01 ca add %rcx,%rdx + 42bfa5: 4a 8d 7c 0f f0 lea -0x10(%rdi,%r9,1),%rdi + 42bfaa: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax + 42bfae: 0f b6 14 16 movzbl (%rsi,%rdx,1),%edx + 42bfb2: 45 85 c0 test %r8d,%r8d + 42bfb5: 74 01 je 42bfb8 <__strcasecmp_l_avx+0x15f8> + 42bfb7: 92 xchg %eax,%edx + 42bfb8: 48 8d 0d 81 b5 07 00 lea 0x7b581(%rip),%rcx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> + 42bfbf: 8b 14 91 mov (%rcx,%rdx,4),%edx + 42bfc2: 8b 04 81 mov (%rcx,%rax,4),%eax + 42bfc5: 29 d0 sub %edx,%eax + 42bfc7: c3 retq + 42bfc8: 48 8d 3c 07 lea (%rdi,%rax,1),%rdi + 42bfcc: 48 8d 34 0e lea (%rsi,%rcx,1),%rsi + 42bfd0: 45 85 c0 test %r8d,%r8d + 42bfd3: 74 0b je 42bfe0 <__strcasecmp_l_avx+0x1620> + 42bfd5: 48 87 f7 xchg %rsi,%rdi + 42bfd8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42bfdf: 00 + 42bfe0: 48 0f bc d2 bsf %rdx,%rdx + 42bfe4: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx + 42bfe8: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax + 42bfec: 48 8d 15 4d b5 07 00 lea 0x7b54d(%rip),%rdx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> + 42bff3: 8b 0c 8a mov (%rdx,%rcx,4),%ecx + 42bff6: 8b 04 82 mov (%rdx,%rax,4),%eax + 42bff9: 29 c8 sub %ecx,%eax + 42bffb: c3 retq + 42bffc: 31 c0 xor %eax,%eax + 42bffe: c3 retq + 42bfff: 90 nop + 42c000: 0f b6 0e movzbl (%rsi),%ecx + 42c003: 0f b6 07 movzbl (%rdi),%eax + 42c006: 48 8d 15 33 b5 07 00 lea 0x7b533(%rip),%rdx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> + 42c00d: 8b 0c 8a mov (%rdx,%rcx,4),%ecx + 42c010: 8b 04 82 mov (%rdx,%rax,4),%eax + 42c013: 29 c8 sub %ecx,%eax + 42c015: c3 retq + 42c016: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42c01d: 00 00 00 + +000000000042c020 : + 42c020: 48 83 fa 20 cmp $0x20,%rdx + 42c024: 48 89 f8 mov %rdi,%rax + 42c027: 73 77 jae 42c0a0 + 42c029: f6 c2 01 test $0x1,%dl + 42c02c: 74 0b je 42c039 + 42c02e: 0f b6 0e movzbl (%rsi),%ecx + 42c031: 88 0f mov %cl,(%rdi) + 42c033: 48 ff c6 inc %rsi + 42c036: 48 ff c7 inc %rdi + 42c039: f6 c2 02 test $0x2,%dl + 42c03c: 74 12 je 42c050 + 42c03e: 0f b7 0e movzwl (%rsi),%ecx + 42c041: 66 89 0f mov %cx,(%rdi) + 42c044: 48 83 c6 02 add $0x2,%rsi + 42c048: 48 83 c7 02 add $0x2,%rdi + 42c04c: 0f 1f 40 00 nopl 0x0(%rax) + 42c050: f6 c2 04 test $0x4,%dl + 42c053: 74 0c je 42c061 + 42c055: 8b 0e mov (%rsi),%ecx + 42c057: 89 0f mov %ecx,(%rdi) + 42c059: 48 83 c6 04 add $0x4,%rsi + 42c05d: 48 83 c7 04 add $0x4,%rdi + 42c061: f6 c2 08 test $0x8,%dl + 42c064: 74 0e je 42c074 + 42c066: 48 8b 0e mov (%rsi),%rcx + 42c069: 48 89 0f mov %rcx,(%rdi) + 42c06c: 48 83 c6 08 add $0x8,%rsi + 42c070: 48 83 c7 08 add $0x8,%rdi + 42c074: 81 e2 f0 00 00 00 and $0xf0,%edx + 42c07a: 74 1f je 42c09b + 42c07c: 0f 1f 40 00 nopl 0x0(%rax) + 42c080: 48 8b 0e mov (%rsi),%rcx + 42c083: 4c 8b 46 08 mov 0x8(%rsi),%r8 + 42c087: 48 89 0f mov %rcx,(%rdi) + 42c08a: 4c 89 47 08 mov %r8,0x8(%rdi) + 42c08e: 83 ea 10 sub $0x10,%edx + 42c091: 48 8d 76 10 lea 0x10(%rsi),%rsi + 42c095: 48 8d 7f 10 lea 0x10(%rdi),%rdi + 42c099: 75 e5 jne 42c080 + 42c09b: f3 c3 repz retq + 42c09d: 0f 1f 00 nopl (%rax) + 42c0a0: 48 89 44 24 f8 mov %rax,-0x8(%rsp) + 42c0a5: 89 f1 mov %esi,%ecx + 42c0a7: 83 e1 07 and $0x7,%ecx + 42c0aa: 74 34 je 42c0e0 + 42c0ac: 48 8d 54 11 f8 lea -0x8(%rcx,%rdx,1),%rdx + 42c0b1: 83 e9 08 sub $0x8,%ecx + 42c0b4: 66 90 xchg %ax,%ax + 42c0b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42c0bd: 00 00 00 + 42c0c0: 0f b6 06 movzbl (%rsi),%eax + 42c0c3: 88 07 mov %al,(%rdi) + 42c0c5: ff c1 inc %ecx + 42c0c7: 48 8d 76 01 lea 0x1(%rsi),%rsi + 42c0cb: 48 8d 7f 01 lea 0x1(%rdi),%rdi + 42c0cf: 75 ef jne 42c0c0 + 42c0d1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42c0d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42c0dd: 00 00 00 + 42c0e0: 48 81 fa 00 04 00 00 cmp $0x400,%rdx + 42c0e7: 77 77 ja 42c160 + 42c0e9: 89 d1 mov %edx,%ecx + 42c0eb: c1 e9 05 shr $0x5,%ecx + 42c0ee: 74 60 je 42c150 + 42c0f0: ff c9 dec %ecx + 42c0f2: 48 8b 06 mov (%rsi),%rax + 42c0f5: 4c 8b 46 08 mov 0x8(%rsi),%r8 + 42c0f9: 4c 8b 4e 10 mov 0x10(%rsi),%r9 + 42c0fd: 4c 8b 56 18 mov 0x18(%rsi),%r10 + 42c101: 48 89 07 mov %rax,(%rdi) + 42c104: 4c 89 47 08 mov %r8,0x8(%rdi) + 42c108: 4c 89 4f 10 mov %r9,0x10(%rdi) + 42c10c: 4c 89 57 18 mov %r10,0x18(%rdi) + 42c110: 48 8d 76 20 lea 0x20(%rsi),%rsi + 42c114: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 42c118: 74 36 je 42c150 + 42c11a: ff c9 dec %ecx + 42c11c: 48 8b 06 mov (%rsi),%rax + 42c11f: 4c 8b 46 08 mov 0x8(%rsi),%r8 + 42c123: 4c 8b 4e 10 mov 0x10(%rsi),%r9 + 42c127: 4c 8b 56 18 mov 0x18(%rsi),%r10 + 42c12b: 48 89 07 mov %rax,(%rdi) + 42c12e: 4c 89 47 08 mov %r8,0x8(%rdi) + 42c132: 4c 89 4f 10 mov %r9,0x10(%rdi) + 42c136: 4c 89 57 18 mov %r10,0x18(%rdi) + 42c13a: 48 8d 76 20 lea 0x20(%rsi),%rsi + 42c13e: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 42c142: 75 ac jne 42c0f0 + 42c144: 66 90 xchg %ax,%ax + 42c146: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42c14d: 00 00 00 + 42c150: 83 e2 1f and $0x1f,%edx + 42c153: 48 8b 44 24 f8 mov -0x8(%rsp),%rax + 42c158: 0f 85 cb fe ff ff jne 42c029 + 42c15e: f3 c3 repz retq + 42c160: 4c 8b 1d 69 ef 29 00 mov 0x29ef69(%rip),%r11 # 6cb0d0 <__x86_data_cache_size_half> + 42c167: 49 39 d3 cmp %rdx,%r11 + 42c16a: 4c 0f 47 da cmova %rdx,%r11 + 42c16e: 4c 89 d9 mov %r11,%rcx + 42c171: 49 83 e3 f8 and $0xfffffffffffffff8,%r11 + 42c175: 48 c1 e9 03 shr $0x3,%rcx + 42c179: 74 05 je 42c180 + 42c17b: f3 48 a5 rep movsq %ds:(%rsi),%es:(%rdi) + 42c17e: 66 90 xchg %ax,%ax + 42c180: 4c 29 da sub %r11,%rdx + 42c183: 48 f7 c2 f8 ff ff ff test $0xfffffffffffffff8,%rdx + 42c18a: 75 14 jne 42c1a0 + 42c18c: 83 e2 07 and $0x7,%edx + 42c18f: 48 8b 44 24 f8 mov -0x8(%rsp),%rax + 42c194: 0f 85 8f fe ff ff jne 42c029 + 42c19a: f3 c3 repz retq + 42c19c: 0f 1f 40 00 nopl 0x0(%rax) + 42c1a0: 4c 8b 05 09 ef 29 00 mov 0x29ef09(%rip),%r8 # 6cb0b0 <__x86_shared_cache_size_half> + 42c1a7: 49 39 d0 cmp %rdx,%r8 + 42c1aa: 4c 0f 47 c2 cmova %rdx,%r8 + 42c1ae: 4c 89 c1 mov %r8,%rcx + 42c1b1: 49 83 e0 c0 and $0xffffffffffffffc0,%r8 + 42c1b5: 48 c1 e9 06 shr $0x6,%rcx + 42c1b9: 0f 84 ab 01 00 00 je 42c36a + 42c1bf: 4c 89 74 24 f0 mov %r14,-0x10(%rsp) + 42c1c4: 4c 89 6c 24 e8 mov %r13,-0x18(%rsp) + 42c1c9: 4c 89 64 24 e0 mov %r12,-0x20(%rsp) + 42c1ce: 48 89 5c 24 d8 mov %rbx,-0x28(%rsp) + 42c1d3: 83 3d de 0f 2a 00 00 cmpl $0x0,0x2a0fde(%rip) # 6cd1b8 <__x86_prefetchw> + 42c1da: 0f 84 c0 00 00 00 je 42c2a0 + 42c1e0: 48 ff c9 dec %rcx + 42c1e3: 48 8b 06 mov (%rsi),%rax + 42c1e6: 48 8b 5e 08 mov 0x8(%rsi),%rbx + 42c1ea: 4c 8b 4e 10 mov 0x10(%rsi),%r9 + 42c1ee: 4c 8b 56 18 mov 0x18(%rsi),%r10 + 42c1f2: 4c 8b 5e 20 mov 0x20(%rsi),%r11 + 42c1f6: 4c 8b 66 28 mov 0x28(%rsi),%r12 + 42c1fa: 4c 8b 6e 30 mov 0x30(%rsi),%r13 + 42c1fe: 4c 8b 76 38 mov 0x38(%rsi),%r14 + 42c202: 0f 18 8e 80 03 00 00 prefetcht0 0x380(%rsi) + 42c209: 0f 18 8e c0 03 00 00 prefetcht0 0x3c0(%rsi) + 42c210: 48 89 07 mov %rax,(%rdi) + 42c213: 48 89 5f 08 mov %rbx,0x8(%rdi) + 42c217: 4c 89 4f 10 mov %r9,0x10(%rdi) + 42c21b: 4c 89 57 18 mov %r10,0x18(%rdi) + 42c21f: 4c 89 5f 20 mov %r11,0x20(%rdi) + 42c223: 4c 89 67 28 mov %r12,0x28(%rdi) + 42c227: 4c 89 6f 30 mov %r13,0x30(%rdi) + 42c22b: 4c 89 77 38 mov %r14,0x38(%rdi) + 42c22f: 48 8d 76 40 lea 0x40(%rsi),%rsi + 42c233: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 42c237: 0f 84 19 01 00 00 je 42c356 + 42c23d: 48 ff c9 dec %rcx + 42c240: 48 8b 06 mov (%rsi),%rax + 42c243: 48 8b 5e 08 mov 0x8(%rsi),%rbx + 42c247: 4c 8b 4e 10 mov 0x10(%rsi),%r9 + 42c24b: 4c 8b 56 18 mov 0x18(%rsi),%r10 + 42c24f: 4c 8b 5e 20 mov 0x20(%rsi),%r11 + 42c253: 4c 8b 66 28 mov 0x28(%rsi),%r12 + 42c257: 4c 8b 6e 30 mov 0x30(%rsi),%r13 + 42c25b: 4c 8b 76 38 mov 0x38(%rsi),%r14 + 42c25f: 48 89 07 mov %rax,(%rdi) + 42c262: 48 89 5f 08 mov %rbx,0x8(%rdi) + 42c266: 4c 89 4f 10 mov %r9,0x10(%rdi) + 42c26a: 4c 89 57 18 mov %r10,0x18(%rdi) + 42c26e: 4c 89 5f 20 mov %r11,0x20(%rdi) + 42c272: 4c 89 67 28 mov %r12,0x28(%rdi) + 42c276: 4c 89 6f 30 mov %r13,0x30(%rdi) + 42c27a: 4c 89 77 38 mov %r14,0x38(%rdi) + 42c27e: 0f 0d 8f 40 03 00 00 prefetchw 0x340(%rdi) + 42c285: 0f 0d 8f 80 03 00 00 prefetchw 0x380(%rdi) + 42c28c: 48 8d 76 40 lea 0x40(%rsi),%rsi + 42c290: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 42c294: 0f 85 46 ff ff ff jne 42c1e0 + 42c29a: e9 b7 00 00 00 jmpq 42c356 + 42c29f: 90 nop + 42c2a0: 48 ff c9 dec %rcx + 42c2a3: 48 8b 06 mov (%rsi),%rax + 42c2a6: 48 8b 5e 08 mov 0x8(%rsi),%rbx + 42c2aa: 4c 8b 4e 10 mov 0x10(%rsi),%r9 + 42c2ae: 4c 8b 56 18 mov 0x18(%rsi),%r10 + 42c2b2: 4c 8b 5e 20 mov 0x20(%rsi),%r11 + 42c2b6: 4c 8b 66 28 mov 0x28(%rsi),%r12 + 42c2ba: 4c 8b 6e 30 mov 0x30(%rsi),%r13 + 42c2be: 4c 8b 76 38 mov 0x38(%rsi),%r14 + 42c2c2: 0f 18 8e 80 03 00 00 prefetcht0 0x380(%rsi) + 42c2c9: 0f 18 8e c0 03 00 00 prefetcht0 0x3c0(%rsi) + 42c2d0: 48 89 07 mov %rax,(%rdi) + 42c2d3: 48 89 5f 08 mov %rbx,0x8(%rdi) + 42c2d7: 4c 89 4f 10 mov %r9,0x10(%rdi) + 42c2db: 4c 89 57 18 mov %r10,0x18(%rdi) + 42c2df: 4c 89 5f 20 mov %r11,0x20(%rdi) + 42c2e3: 4c 89 67 28 mov %r12,0x28(%rdi) + 42c2e7: 4c 89 6f 30 mov %r13,0x30(%rdi) + 42c2eb: 4c 89 77 38 mov %r14,0x38(%rdi) + 42c2ef: 48 8d 76 40 lea 0x40(%rsi),%rsi + 42c2f3: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 42c2f7: 74 5d je 42c356 + 42c2f9: 48 ff c9 dec %rcx + 42c2fc: 48 8b 06 mov (%rsi),%rax + 42c2ff: 48 8b 5e 08 mov 0x8(%rsi),%rbx + 42c303: 4c 8b 4e 10 mov 0x10(%rsi),%r9 + 42c307: 4c 8b 56 18 mov 0x18(%rsi),%r10 + 42c30b: 4c 8b 5e 20 mov 0x20(%rsi),%r11 + 42c30f: 4c 8b 66 28 mov 0x28(%rsi),%r12 + 42c313: 4c 8b 6e 30 mov 0x30(%rsi),%r13 + 42c317: 4c 8b 76 38 mov 0x38(%rsi),%r14 + 42c31b: 0f 18 8f 40 03 00 00 prefetcht0 0x340(%rdi) + 42c322: 0f 18 8f 80 03 00 00 prefetcht0 0x380(%rdi) + 42c329: 48 89 07 mov %rax,(%rdi) + 42c32c: 48 89 5f 08 mov %rbx,0x8(%rdi) + 42c330: 4c 89 4f 10 mov %r9,0x10(%rdi) + 42c334: 4c 89 57 18 mov %r10,0x18(%rdi) + 42c338: 4c 89 5f 20 mov %r11,0x20(%rdi) + 42c33c: 4c 89 67 28 mov %r12,0x28(%rdi) + 42c340: 4c 89 6f 30 mov %r13,0x30(%rdi) + 42c344: 4c 89 77 38 mov %r14,0x38(%rdi) + 42c348: 48 8d 76 40 lea 0x40(%rsi),%rsi + 42c34c: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 42c350: 0f 85 4a ff ff ff jne 42c2a0 + 42c356: 48 8b 5c 24 d8 mov -0x28(%rsp),%rbx + 42c35b: 4c 8b 64 24 e0 mov -0x20(%rsp),%r12 + 42c360: 4c 8b 6c 24 e8 mov -0x18(%rsp),%r13 + 42c365: 4c 8b 74 24 f0 mov -0x10(%rsp),%r14 + 42c36a: 4c 29 c2 sub %r8,%rdx + 42c36d: 48 f7 c2 c0 ff ff ff test $0xffffffffffffffc0,%rdx + 42c374: 75 1a jne 42c390 + 42c376: 83 e2 3f and $0x3f,%edx + 42c379: 48 8b 44 24 f8 mov -0x8(%rsp),%rax + 42c37e: 0f 85 a5 fc ff ff jne 42c029 + 42c384: f3 c3 repz retq + 42c386: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42c38d: 00 00 00 + 42c390: 48 89 d1 mov %rdx,%rcx + 42c393: 48 c1 e9 07 shr $0x7,%rcx + 42c397: 0f 84 d8 00 00 00 je 42c475 + 42c39d: 4c 89 74 24 f0 mov %r14,-0x10(%rsp) + 42c3a2: 4c 89 6c 24 e8 mov %r13,-0x18(%rsp) + 42c3a7: 4c 89 64 24 e0 mov %r12,-0x20(%rsp) + 42c3ac: 0f 1f 40 00 nopl 0x0(%rax) + 42c3b0: 0f 18 86 00 03 00 00 prefetchnta 0x300(%rsi) + 42c3b7: 0f 18 86 40 03 00 00 prefetchnta 0x340(%rsi) + 42c3be: 48 ff c9 dec %rcx + 42c3c1: 48 8b 06 mov (%rsi),%rax + 42c3c4: 4c 8b 46 08 mov 0x8(%rsi),%r8 + 42c3c8: 4c 8b 4e 10 mov 0x10(%rsi),%r9 + 42c3cc: 4c 8b 56 18 mov 0x18(%rsi),%r10 + 42c3d0: 4c 8b 5e 20 mov 0x20(%rsi),%r11 + 42c3d4: 4c 8b 66 28 mov 0x28(%rsi),%r12 + 42c3d8: 4c 8b 6e 30 mov 0x30(%rsi),%r13 + 42c3dc: 4c 8b 76 38 mov 0x38(%rsi),%r14 + 42c3e0: 48 0f c3 07 movnti %rax,(%rdi) + 42c3e4: 4c 0f c3 47 08 movnti %r8,0x8(%rdi) + 42c3e9: 4c 0f c3 4f 10 movnti %r9,0x10(%rdi) + 42c3ee: 4c 0f c3 57 18 movnti %r10,0x18(%rdi) + 42c3f3: 4c 0f c3 5f 20 movnti %r11,0x20(%rdi) + 42c3f8: 4c 0f c3 67 28 movnti %r12,0x28(%rdi) + 42c3fd: 4c 0f c3 6f 30 movnti %r13,0x30(%rdi) + 42c402: 4c 0f c3 77 38 movnti %r14,0x38(%rdi) + 42c407: 48 8b 46 40 mov 0x40(%rsi),%rax + 42c40b: 4c 8b 46 48 mov 0x48(%rsi),%r8 + 42c40f: 4c 8b 4e 50 mov 0x50(%rsi),%r9 + 42c413: 4c 8b 56 58 mov 0x58(%rsi),%r10 + 42c417: 4c 8b 5e 60 mov 0x60(%rsi),%r11 + 42c41b: 4c 8b 66 68 mov 0x68(%rsi),%r12 + 42c41f: 4c 8b 6e 70 mov 0x70(%rsi),%r13 + 42c423: 4c 8b 76 78 mov 0x78(%rsi),%r14 + 42c427: 48 0f c3 47 40 movnti %rax,0x40(%rdi) + 42c42c: 4c 0f c3 47 48 movnti %r8,0x48(%rdi) + 42c431: 4c 0f c3 4f 50 movnti %r9,0x50(%rdi) + 42c436: 4c 0f c3 57 58 movnti %r10,0x58(%rdi) + 42c43b: 4c 0f c3 5f 60 movnti %r11,0x60(%rdi) + 42c440: 4c 0f c3 67 68 movnti %r12,0x68(%rdi) + 42c445: 4c 0f c3 6f 70 movnti %r13,0x70(%rdi) + 42c44a: 4c 0f c3 77 78 movnti %r14,0x78(%rdi) + 42c44f: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 42c456: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 42c45d: 0f 85 4d ff ff ff jne 42c3b0 + 42c463: 0f ae f8 sfence + 42c466: 4c 8b 64 24 e0 mov -0x20(%rsp),%r12 + 42c46b: 4c 8b 6c 24 e8 mov -0x18(%rsp),%r13 + 42c470: 4c 8b 74 24 f0 mov -0x10(%rsp),%r14 + 42c475: 83 e2 7f and $0x7f,%edx + 42c478: 48 8b 44 24 f8 mov -0x8(%rsp),%rax + 42c47d: 0f 85 a6 fb ff ff jne 42c029 + 42c483: f3 c3 repz retq + 42c485: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42c48c: 00 00 00 + 42c48f: 90 nop + +000000000042c490 <_wordcopy_fwd_aligned>: + 42c490: 48 89 d0 mov %rdx,%rax + 42c493: 83 e0 07 and $0x7,%eax + 42c496: ff 24 c5 b0 31 4a 00 jmpq *0x4a31b0(,%rax,8) + 42c49d: 0f 1f 00 nopl (%rax) + 42c4a0: 48 8b 06 mov (%rsi),%rax + 42c4a3: 48 83 ef 18 sub $0x18,%rdi + 42c4a7: 48 83 ee 10 sub $0x10,%rsi + 42c4ab: 48 8b 4e 18 mov 0x18(%rsi),%rcx + 42c4af: 48 83 c2 02 add $0x2,%rdx + 42c4b3: 48 89 47 18 mov %rax,0x18(%rdi) + 42c4b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42c4be: 00 00 + 42c4c0: 48 8b 46 20 mov 0x20(%rsi),%rax + 42c4c4: 48 89 4f 20 mov %rcx,0x20(%rdi) + 42c4c8: 48 8b 4e 28 mov 0x28(%rsi),%rcx + 42c4cc: 48 89 47 28 mov %rax,0x28(%rdi) + 42c4d0: 48 8b 46 30 mov 0x30(%rsi),%rax + 42c4d4: 48 89 4f 30 mov %rcx,0x30(%rdi) + 42c4d8: 48 8b 4e 38 mov 0x38(%rsi),%rcx + 42c4dc: 48 83 c7 40 add $0x40,%rdi + 42c4e0: 48 89 47 f8 mov %rax,-0x8(%rdi) + 42c4e4: 48 83 ea 08 sub $0x8,%rdx + 42c4e8: 0f 84 ca 00 00 00 je 42c5b8 <_wordcopy_fwd_aligned+0x128> + 42c4ee: 48 83 c6 40 add $0x40,%rsi + 42c4f2: 48 8b 06 mov (%rsi),%rax + 42c4f5: 48 89 0f mov %rcx,(%rdi) + 42c4f8: 48 8b 4e 08 mov 0x8(%rsi),%rcx + 42c4fc: 48 89 47 08 mov %rax,0x8(%rdi) + 42c500: 48 8b 46 10 mov 0x10(%rsi),%rax + 42c504: 48 89 4f 10 mov %rcx,0x10(%rdi) + 42c508: 48 8b 4e 18 mov 0x18(%rsi),%rcx + 42c50c: 48 89 47 18 mov %rax,0x18(%rdi) + 42c510: eb ae jmp 42c4c0 <_wordcopy_fwd_aligned+0x30> + 42c512: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 42c518: 48 85 d2 test %rdx,%rdx + 42c51b: 0f 84 9a 00 00 00 je 42c5bb <_wordcopy_fwd_aligned+0x12b> + 42c521: 48 8b 06 mov (%rsi),%rax + 42c524: 48 83 ef 08 sub $0x8,%rdi + 42c528: eb ce jmp 42c4f8 <_wordcopy_fwd_aligned+0x68> + 42c52a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 42c530: 48 83 ea 01 sub $0x1,%rdx + 42c534: 48 8b 0e mov (%rsi),%rcx + 42c537: 74 7f je 42c5b8 <_wordcopy_fwd_aligned+0x128> + 42c539: 48 83 c6 08 add $0x8,%rsi + 42c53d: eb b3 jmp 42c4f2 <_wordcopy_fwd_aligned+0x62> + 42c53f: 90 nop + 42c540: 48 8b 06 mov (%rsi),%rax + 42c543: 48 83 c2 06 add $0x6,%rdx + 42c547: 48 83 ee 30 sub $0x30,%rsi + 42c54b: 48 83 ef 38 sub $0x38,%rdi + 42c54f: eb 87 jmp 42c4d8 <_wordcopy_fwd_aligned+0x48> + 42c551: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42c558: 48 8b 0e mov (%rsi),%rcx + 42c55b: 48 83 c2 05 add $0x5,%rdx + 42c55f: 48 83 ee 28 sub $0x28,%rsi + 42c563: 48 83 ef 30 sub $0x30,%rdi + 42c567: e9 64 ff ff ff jmpq 42c4d0 <_wordcopy_fwd_aligned+0x40> + 42c56c: 0f 1f 40 00 nopl 0x0(%rax) + 42c570: 48 8b 06 mov (%rsi),%rax + 42c573: 48 83 c2 04 add $0x4,%rdx + 42c577: 48 83 ee 20 sub $0x20,%rsi + 42c57b: 48 83 ef 28 sub $0x28,%rdi + 42c57f: e9 44 ff ff ff jmpq 42c4c8 <_wordcopy_fwd_aligned+0x38> + 42c584: 0f 1f 40 00 nopl 0x0(%rax) + 42c588: 48 8b 0e mov (%rsi),%rcx + 42c58b: 48 83 c2 03 add $0x3,%rdx + 42c58f: 48 83 ee 18 sub $0x18,%rsi + 42c593: 48 83 ef 20 sub $0x20,%rdi + 42c597: e9 24 ff ff ff jmpq 42c4c0 <_wordcopy_fwd_aligned+0x30> + 42c59c: 0f 1f 40 00 nopl 0x0(%rax) + 42c5a0: 48 8b 0e mov (%rsi),%rcx + 42c5a3: 48 83 c2 01 add $0x1,%rdx + 42c5a7: 48 83 ee 08 sub $0x8,%rsi + 42c5ab: 48 83 ef 10 sub $0x10,%rdi + 42c5af: e9 4c ff ff ff jmpq 42c500 <_wordcopy_fwd_aligned+0x70> + 42c5b4: 0f 1f 40 00 nopl 0x0(%rax) + 42c5b8: 48 89 0f mov %rcx,(%rdi) + 42c5bb: f3 c3 repz retq + 42c5bd: 0f 1f 00 nopl (%rax) + +000000000042c5c0 <_wordcopy_fwd_dest_aligned>: + 42c5c0: 89 f0 mov %esi,%eax + 42c5c2: 48 89 d1 mov %rdx,%rcx + 42c5c5: 41 b8 40 00 00 00 mov $0x40,%r8d + 42c5cb: 83 e0 07 and $0x7,%eax + 42c5ce: 83 e1 03 and $0x3,%ecx + 42c5d1: 48 83 e6 f8 and $0xfffffffffffffff8,%rsi + 42c5d5: c1 e0 03 shl $0x3,%eax + 42c5d8: 53 push %rbx + 42c5d9: 41 29 c0 sub %eax,%r8d + 42c5dc: 48 83 f9 02 cmp $0x2,%rcx + 42c5e0: 0f 84 e2 00 00 00 je 42c6c8 <_wordcopy_fwd_dest_aligned+0x108> + 42c5e6: 48 83 f9 03 cmp $0x3,%rcx + 42c5ea: 74 54 je 42c640 <_wordcopy_fwd_dest_aligned+0x80> + 42c5ec: 48 83 f9 01 cmp $0x1,%rcx + 42c5f0: 74 1e je 42c610 <_wordcopy_fwd_dest_aligned+0x50> + 42c5f2: 48 85 d2 test %rdx,%rdx + 42c5f5: 74 42 je 42c639 <_wordcopy_fwd_dest_aligned+0x79> + 42c5f7: 4c 8b 0e mov (%rsi),%r9 + 42c5fa: 48 8b 5e 08 mov 0x8(%rsi),%rbx + 42c5fe: 48 83 ef 08 sub $0x8,%rdi + 42c602: 48 83 c6 08 add $0x8,%rsi + 42c606: e9 9b 00 00 00 jmpq 42c6a6 <_wordcopy_fwd_dest_aligned+0xe6> + 42c60b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42c610: 48 83 ea 01 sub $0x1,%rdx + 42c614: 4c 8b 16 mov (%rsi),%r10 + 42c617: 4c 8b 4e 08 mov 0x8(%rsi),%r9 + 42c61b: 0f 85 bf 00 00 00 jne 42c6e0 <_wordcopy_fwd_dest_aligned+0x120> + 42c621: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42c628: 89 c1 mov %eax,%ecx + 42c62a: 49 d3 ea shr %cl,%r10 + 42c62d: 44 89 c1 mov %r8d,%ecx + 42c630: 49 d3 e1 shl %cl,%r9 + 42c633: 4d 09 d1 or %r10,%r9 + 42c636: 4c 89 0f mov %r9,(%rdi) + 42c639: 5b pop %rbx + 42c63a: c3 retq + 42c63b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42c640: 48 8b 1e mov (%rsi),%rbx + 42c643: 4c 8b 5e 08 mov 0x8(%rsi),%r11 + 42c647: 48 83 c2 01 add $0x1,%rdx + 42c64b: 48 83 ef 10 sub $0x10,%rdi + 42c64f: 89 c1 mov %eax,%ecx + 42c651: 4d 89 d9 mov %r11,%r9 + 42c654: 4c 8b 56 10 mov 0x10(%rsi),%r10 + 42c658: 48 d3 eb shr %cl,%rbx + 42c65b: 44 89 c1 mov %r8d,%ecx + 42c65e: 49 d3 e1 shl %cl,%r9 + 42c661: 4c 09 cb or %r9,%rbx + 42c664: 48 89 5f 10 mov %rbx,0x10(%rdi) + 42c668: 89 c1 mov %eax,%ecx + 42c66a: 4c 89 d3 mov %r10,%rbx + 42c66d: 4c 8b 4e 18 mov 0x18(%rsi),%r9 + 42c671: 49 d3 eb shr %cl,%r11 + 42c674: 44 89 c1 mov %r8d,%ecx + 42c677: 48 83 c7 20 add $0x20,%rdi + 42c67b: 48 d3 e3 shl %cl,%rbx + 42c67e: 49 09 db or %rbx,%r11 + 42c681: 4c 89 5f f8 mov %r11,-0x8(%rdi) + 42c685: 48 83 ea 04 sub $0x4,%rdx + 42c689: 74 9d je 42c628 <_wordcopy_fwd_dest_aligned+0x68> + 42c68b: 48 83 c6 20 add $0x20,%rsi + 42c68f: 89 c1 mov %eax,%ecx + 42c691: 4d 89 cb mov %r9,%r11 + 42c694: 48 8b 1e mov (%rsi),%rbx + 42c697: 49 d3 ea shr %cl,%r10 + 42c69a: 44 89 c1 mov %r8d,%ecx + 42c69d: 49 d3 e3 shl %cl,%r11 + 42c6a0: 4d 09 da or %r11,%r10 + 42c6a3: 4c 89 17 mov %r10,(%rdi) + 42c6a6: 89 c1 mov %eax,%ecx + 42c6a8: 49 89 da mov %rbx,%r10 + 42c6ab: 4c 8b 5e 08 mov 0x8(%rsi),%r11 + 42c6af: 49 d3 e9 shr %cl,%r9 + 42c6b2: 44 89 c1 mov %r8d,%ecx + 42c6b5: 49 d3 e2 shl %cl,%r10 + 42c6b8: 4d 09 d1 or %r10,%r9 + 42c6bb: 4c 89 4f 08 mov %r9,0x8(%rdi) + 42c6bf: eb 8e jmp 42c64f <_wordcopy_fwd_dest_aligned+0x8f> + 42c6c1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42c6c8: 4c 8b 1e mov (%rsi),%r11 + 42c6cb: 4c 8b 56 08 mov 0x8(%rsi),%r10 + 42c6cf: 48 83 c2 02 add $0x2,%rdx + 42c6d3: 48 83 ee 08 sub $0x8,%rsi + 42c6d7: 48 83 ef 18 sub $0x18,%rdi + 42c6db: eb 8b jmp 42c668 <_wordcopy_fwd_dest_aligned+0xa8> + 42c6dd: 0f 1f 00 nopl (%rax) + 42c6e0: 48 83 c6 10 add $0x10,%rsi + 42c6e4: eb a9 jmp 42c68f <_wordcopy_fwd_dest_aligned+0xcf> + 42c6e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42c6ed: 00 00 00 + +000000000042c6f0 <_wordcopy_bwd_aligned>: + 42c6f0: 48 89 d0 mov %rdx,%rax + 42c6f3: 83 e0 07 and $0x7,%eax + 42c6f6: ff 24 c5 f0 31 4a 00 jmpq *0x4a31f0(,%rax,8) + 42c6fd: 0f 1f 00 nopl (%rax) + 42c700: 4c 8d 46 d0 lea -0x30(%rsi),%r8 + 42c704: 48 8b 76 f8 mov -0x8(%rsi),%rsi + 42c708: 48 83 ef 28 sub $0x28,%rdi + 42c70c: 48 89 f8 mov %rdi,%rax + 42c70f: 48 83 c2 02 add $0x2,%rdx + 42c713: 4c 89 c1 mov %r8,%rcx + 42c716: 4c 8b 49 20 mov 0x20(%rcx),%r9 + 42c71a: 48 89 70 20 mov %rsi,0x20(%rax) + 42c71e: 66 90 xchg %ax,%ax + 42c720: 48 8b 71 18 mov 0x18(%rcx),%rsi + 42c724: 4c 89 48 18 mov %r9,0x18(%rax) + 42c728: 4c 8b 49 10 mov 0x10(%rcx),%r9 + 42c72c: 48 89 70 10 mov %rsi,0x10(%rax) + 42c730: 48 8b 71 08 mov 0x8(%rcx),%rsi + 42c734: 4c 89 48 08 mov %r9,0x8(%rax) + 42c738: 48 83 ea 08 sub $0x8,%rdx + 42c73c: 4d 8b 08 mov (%r8),%r9 + 42c73f: 48 89 37 mov %rsi,(%rdi) + 42c742: 4c 8d 41 c0 lea -0x40(%rcx),%r8 + 42c746: 48 8d 78 c0 lea -0x40(%rax),%rdi + 42c74a: 0f 84 10 01 00 00 je 42c860 <_wordcopy_bwd_aligned+0x170> + 42c750: 49 8b 70 38 mov 0x38(%r8),%rsi + 42c754: 4c 89 c1 mov %r8,%rcx + 42c757: 48 89 f8 mov %rdi,%rax + 42c75a: 4c 89 4f 38 mov %r9,0x38(%rdi) + 42c75e: 4c 8b 49 30 mov 0x30(%rcx),%r9 + 42c762: 48 89 70 30 mov %rsi,0x30(%rax) + 42c766: 48 8b 71 28 mov 0x28(%rcx),%rsi + 42c76a: 4c 89 48 28 mov %r9,0x28(%rax) + 42c76e: 4c 8b 49 20 mov 0x20(%rcx),%r9 + 42c772: 48 89 70 20 mov %rsi,0x20(%rax) + 42c776: eb a8 jmp 42c720 <_wordcopy_bwd_aligned+0x30> + 42c778: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42c77f: 00 + 42c780: 48 85 d2 test %rdx,%rdx + 42c783: 0f 84 db 00 00 00 je 42c864 <_wordcopy_bwd_aligned+0x174> + 42c789: 4c 8d 46 c0 lea -0x40(%rsi),%r8 + 42c78d: 48 83 ef 38 sub $0x38,%rdi + 42c791: 48 8b 76 f8 mov -0x8(%rsi),%rsi + 42c795: 48 89 f8 mov %rdi,%rax + 42c798: 4c 89 c1 mov %r8,%rcx + 42c79b: eb c1 jmp 42c75e <_wordcopy_bwd_aligned+0x6e> + 42c79d: 0f 1f 00 nopl (%rax) + 42c7a0: 48 83 ef 40 sub $0x40,%rdi + 42c7a4: 48 83 ea 01 sub $0x1,%rdx + 42c7a8: 4c 8b 4e f8 mov -0x8(%rsi),%r9 + 42c7ac: 0f 84 ae 00 00 00 je 42c860 <_wordcopy_bwd_aligned+0x170> + 42c7b2: 4c 8d 46 b8 lea -0x48(%rsi),%r8 + 42c7b6: eb 98 jmp 42c750 <_wordcopy_bwd_aligned+0x60> + 42c7b8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42c7bf: 00 + 42c7c0: 48 8d 4e f0 lea -0x10(%rsi),%rcx + 42c7c4: 48 8d 47 f8 lea -0x8(%rdi),%rax + 42c7c8: 48 8b 76 f8 mov -0x8(%rsi),%rsi + 42c7cc: 48 83 c2 06 add $0x6,%rdx + 42c7d0: 49 89 c8 mov %rcx,%r8 + 42c7d3: 48 89 c7 mov %rax,%rdi + 42c7d6: e9 5d ff ff ff jmpq 42c738 <_wordcopy_bwd_aligned+0x48> + 42c7db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42c7e0: 4c 8d 46 e8 lea -0x18(%rsi),%r8 + 42c7e4: 48 83 ef 10 sub $0x10,%rdi + 42c7e8: 4c 8b 4e f8 mov -0x8(%rsi),%r9 + 42c7ec: 48 83 c2 05 add $0x5,%rdx + 42c7f0: 48 89 f8 mov %rdi,%rax + 42c7f3: 4c 89 c1 mov %r8,%rcx + 42c7f6: e9 35 ff ff ff jmpq 42c730 <_wordcopy_bwd_aligned+0x40> + 42c7fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42c800: 4c 8d 46 e0 lea -0x20(%rsi),%r8 + 42c804: 48 83 ef 18 sub $0x18,%rdi + 42c808: 48 8b 76 f8 mov -0x8(%rsi),%rsi + 42c80c: 48 83 c2 04 add $0x4,%rdx + 42c810: 48 89 f8 mov %rdi,%rax + 42c813: 4c 89 c1 mov %r8,%rcx + 42c816: e9 0d ff ff ff jmpq 42c728 <_wordcopy_bwd_aligned+0x38> + 42c81b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42c820: 4c 8d 46 d8 lea -0x28(%rsi),%r8 + 42c824: 48 83 ef 20 sub $0x20,%rdi + 42c828: 4c 8b 4e f8 mov -0x8(%rsi),%r9 + 42c82c: 48 83 c2 03 add $0x3,%rdx + 42c830: 48 89 f8 mov %rdi,%rax + 42c833: 4c 89 c1 mov %r8,%rcx + 42c836: e9 e5 fe ff ff jmpq 42c720 <_wordcopy_bwd_aligned+0x30> + 42c83b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42c840: 4c 8d 46 c8 lea -0x38(%rsi),%r8 + 42c844: 48 83 ef 30 sub $0x30,%rdi + 42c848: 4c 8b 4e f8 mov -0x8(%rsi),%r9 + 42c84c: 48 83 c2 01 add $0x1,%rdx + 42c850: 48 89 f8 mov %rdi,%rax + 42c853: 4c 89 c1 mov %r8,%rcx + 42c856: e9 0b ff ff ff jmpq 42c766 <_wordcopy_bwd_aligned+0x76> + 42c85b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42c860: 4c 89 4f 38 mov %r9,0x38(%rdi) + 42c864: f3 c3 repz retq + 42c866: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42c86d: 00 00 00 + +000000000042c870 <_wordcopy_bwd_dest_aligned>: + 42c870: 89 f0 mov %esi,%eax + 42c872: 48 89 d1 mov %rdx,%rcx + 42c875: 41 bb 40 00 00 00 mov $0x40,%r11d + 42c87b: 83 e0 07 and $0x7,%eax + 42c87e: 83 e1 03 and $0x3,%ecx + 42c881: 48 83 e6 f8 and $0xfffffffffffffff8,%rsi + 42c885: c1 e0 03 shl $0x3,%eax + 42c888: 41 54 push %r12 + 42c88a: 55 push %rbp + 42c88b: 41 29 c3 sub %eax,%r11d + 42c88e: 48 83 f9 02 cmp $0x2,%rcx + 42c892: 53 push %rbx + 42c893: 0f 84 07 01 00 00 je 42c9a0 <_wordcopy_bwd_dest_aligned+0x130> + 42c899: 48 83 f9 03 cmp $0x3,%rcx + 42c89d: 74 61 je 42c900 <_wordcopy_bwd_dest_aligned+0x90> + 42c89f: 48 83 f9 01 cmp $0x1,%rcx + 42c8a3: 74 23 je 42c8c8 <_wordcopy_bwd_dest_aligned+0x58> + 42c8a5: 48 85 d2 test %rdx,%rdx + 42c8a8: 74 48 je 42c8f2 <_wordcopy_bwd_dest_aligned+0x82> + 42c8aa: 48 8d 6e e0 lea -0x20(%rsi),%rbp + 42c8ae: 4c 8d 57 e8 lea -0x18(%rdi),%r10 + 42c8b2: 4c 8b 26 mov (%rsi),%r12 + 42c8b5: 4c 8b 4e f8 mov -0x8(%rsi),%r9 + 42c8b9: 4c 89 d7 mov %r10,%rdi + 42c8bc: 48 89 ee mov %rbp,%rsi + 42c8bf: e9 b9 00 00 00 jmpq 42c97d <_wordcopy_bwd_dest_aligned+0x10d> + 42c8c4: 0f 1f 40 00 nopl 0x0(%rax) + 42c8c8: 48 83 ea 01 sub $0x1,%rdx + 42c8cc: 4c 8d 57 e0 lea -0x20(%rdi),%r10 + 42c8d0: 4c 8b 06 mov (%rsi),%r8 + 42c8d3: 4c 8b 66 f8 mov -0x8(%rsi),%r12 + 42c8d7: 0f 85 e3 00 00 00 jne 42c9c0 <_wordcopy_bwd_dest_aligned+0x150> + 42c8dd: 0f 1f 00 nopl (%rax) + 42c8e0: 89 c1 mov %eax,%ecx + 42c8e2: 49 d3 ec shr %cl,%r12 + 42c8e5: 44 89 d9 mov %r11d,%ecx + 42c8e8: 49 d3 e0 shl %cl,%r8 + 42c8eb: 4d 09 e0 or %r12,%r8 + 42c8ee: 4d 89 42 18 mov %r8,0x18(%r10) + 42c8f2: 5b pop %rbx + 42c8f3: 5d pop %rbp + 42c8f4: 41 5c pop %r12 + 42c8f6: c3 retq + 42c8f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42c8fe: 00 00 + 42c900: 48 8d 6e e8 lea -0x18(%rsi),%rbp + 42c904: 4c 8d 57 f0 lea -0x10(%rdi),%r10 + 42c908: 4c 8b 0e mov (%rsi),%r9 + 42c90b: 48 8b 5e f8 mov -0x8(%rsi),%rbx + 42c90f: 48 83 c2 01 add $0x1,%rdx + 42c913: 48 89 ee mov %rbp,%rsi + 42c916: 4c 89 d7 mov %r10,%rdi + 42c919: 89 c1 mov %eax,%ecx + 42c91b: 49 89 dc mov %rbx,%r12 + 42c91e: 4c 8b 46 08 mov 0x8(%rsi),%r8 + 42c922: 49 d3 ec shr %cl,%r12 + 42c925: 44 89 d9 mov %r11d,%ecx + 42c928: 49 d3 e1 shl %cl,%r9 + 42c92b: 4d 09 e1 or %r12,%r9 + 42c92e: 4c 89 4f 08 mov %r9,0x8(%rdi) + 42c932: 49 89 f1 mov %rsi,%r9 + 42c935: 89 c1 mov %eax,%ecx + 42c937: 4c 89 c6 mov %r8,%rsi + 42c93a: 4c 8b 65 00 mov 0x0(%rbp),%r12 + 42c93e: 48 d3 ee shr %cl,%rsi + 42c941: 44 89 d9 mov %r11d,%ecx + 42c944: 49 8d 69 e0 lea -0x20(%r9),%rbp + 42c948: 48 d3 e3 shl %cl,%rbx + 42c94b: 48 89 d9 mov %rbx,%rcx + 42c94e: 48 09 f1 or %rsi,%rcx + 42c951: 48 83 ea 04 sub $0x4,%rdx + 42c955: 49 89 0a mov %rcx,(%r10) + 42c958: 4c 8d 57 e0 lea -0x20(%rdi),%r10 + 42c95c: 74 82 je 42c8e0 <_wordcopy_bwd_dest_aligned+0x70> + 42c95e: 89 c1 mov %eax,%ecx + 42c960: 4c 89 e3 mov %r12,%rbx + 42c963: 4c 8b 4d 18 mov 0x18(%rbp),%r9 + 42c967: 48 d3 eb shr %cl,%rbx + 42c96a: 44 89 d9 mov %r11d,%ecx + 42c96d: 48 89 ee mov %rbp,%rsi + 42c970: 49 d3 e0 shl %cl,%r8 + 42c973: 4c 89 d7 mov %r10,%rdi + 42c976: 49 09 d8 or %rbx,%r8 + 42c979: 4d 89 42 18 mov %r8,0x18(%r10) + 42c97d: 89 c1 mov %eax,%ecx + 42c97f: 4d 89 c8 mov %r9,%r8 + 42c982: 48 8b 5e 10 mov 0x10(%rsi),%rbx + 42c986: 49 d3 e8 shr %cl,%r8 + 42c989: 44 89 d9 mov %r11d,%ecx + 42c98c: 49 d3 e4 shl %cl,%r12 + 42c98f: 4d 09 c4 or %r8,%r12 + 42c992: 4c 89 67 10 mov %r12,0x10(%rdi) + 42c996: eb 81 jmp 42c919 <_wordcopy_bwd_dest_aligned+0xa9> + 42c998: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42c99f: 00 + 42c9a0: 4c 8d 4e f0 lea -0x10(%rsi),%r9 + 42c9a4: 48 83 ef 08 sub $0x8,%rdi + 42c9a8: 48 8b 1e mov (%rsi),%rbx + 42c9ab: 49 89 fa mov %rdi,%r10 + 42c9ae: 4c 8b 46 f8 mov -0x8(%rsi),%r8 + 42c9b2: 48 83 c2 02 add $0x2,%rdx + 42c9b6: 4c 89 cd mov %r9,%rbp + 42c9b9: e9 77 ff ff ff jmpq 42c935 <_wordcopy_bwd_dest_aligned+0xc5> + 42c9be: 66 90 xchg %ax,%ax + 42c9c0: 48 8d 6e d8 lea -0x28(%rsi),%rbp + 42c9c4: eb 98 jmp 42c95e <_wordcopy_bwd_dest_aligned+0xee> + 42c9c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42c9cd: 00 00 00 + +000000000042c9d0 <__rawmemchr>: + 42c9d0: 66 48 0f 6e ce movq %rsi,%xmm1 + 42c9d5: 48 89 f9 mov %rdi,%rcx + 42c9d8: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 + 42c9dc: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 + 42c9e0: 48 83 e1 3f and $0x3f,%rcx + 42c9e4: 66 0f 70 c9 00 pshufd $0x0,%xmm1,%xmm1 + 42c9e9: 48 83 f9 30 cmp $0x30,%rcx + 42c9ed: 77 21 ja 42ca10 <__rawmemchr+0x40> + 42c9ef: f3 0f 6f 07 movdqu (%rdi),%xmm0 + 42c9f3: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42c9f7: 66 0f d7 c0 pmovmskb %xmm0,%eax + 42c9fb: 85 c0 test %eax,%eax + 42c9fd: 0f 85 9d 01 00 00 jne 42cba0 <__rawmemchr+0x1d0> + 42ca03: 48 83 c7 10 add $0x10,%rdi + 42ca07: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 42ca0b: eb 43 jmp 42ca50 <__rawmemchr+0x80> + 42ca0d: 0f 1f 00 nopl (%rax) + 42ca10: 48 83 e1 0f and $0xf,%rcx + 42ca14: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 42ca18: 66 0f 6f 07 movdqa (%rdi),%xmm0 + 42ca1c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42ca20: 66 0f d7 c0 pmovmskb %xmm0,%eax + 42ca24: d3 f8 sar %cl,%eax + 42ca26: 85 c0 test %eax,%eax + 42ca28: 74 16 je 42ca40 <__rawmemchr+0x70> + 42ca2a: 0f bc c0 bsf %eax,%eax + 42ca2d: 48 01 f8 add %rdi,%rax + 42ca30: 48 01 c8 add %rcx,%rax + 42ca33: c3 retq + 42ca34: 66 90 xchg %ax,%ax + 42ca36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42ca3d: 00 00 00 + 42ca40: 48 83 c7 10 add $0x10,%rdi + 42ca44: 66 90 xchg %ax,%ax + 42ca46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42ca4d: 00 00 00 + 42ca50: 66 0f 6f 07 movdqa (%rdi),%xmm0 + 42ca54: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42ca58: 66 0f d7 c0 pmovmskb %xmm0,%eax + 42ca5c: 85 c0 test %eax,%eax + 42ca5e: 0f 85 3c 01 00 00 jne 42cba0 <__rawmemchr+0x1d0> + 42ca64: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 + 42ca69: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42ca6d: 66 0f d7 c2 pmovmskb %xmm2,%eax + 42ca71: 85 c0 test %eax,%eax + 42ca73: 0f 85 37 01 00 00 jne 42cbb0 <__rawmemchr+0x1e0> + 42ca79: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 + 42ca7e: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 42ca82: 66 0f d7 c3 pmovmskb %xmm3,%eax + 42ca86: 85 c0 test %eax,%eax + 42ca88: 0f 85 32 01 00 00 jne 42cbc0 <__rawmemchr+0x1f0> + 42ca8e: 66 0f 6f 67 30 movdqa 0x30(%rdi),%xmm4 + 42ca93: 66 0f 74 e1 pcmpeqb %xmm1,%xmm4 + 42ca97: 48 83 c7 40 add $0x40,%rdi + 42ca9b: 66 0f d7 c4 pmovmskb %xmm4,%eax + 42ca9f: 85 c0 test %eax,%eax + 42caa1: 0f 85 e9 00 00 00 jne 42cb90 <__rawmemchr+0x1c0> + 42caa7: 48 f7 c7 3f 00 00 00 test $0x3f,%rdi + 42caae: 74 60 je 42cb10 <__rawmemchr+0x140> + 42cab0: 66 0f 6f 07 movdqa (%rdi),%xmm0 + 42cab4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42cab8: 66 0f d7 c0 pmovmskb %xmm0,%eax + 42cabc: 85 c0 test %eax,%eax + 42cabe: 0f 85 dc 00 00 00 jne 42cba0 <__rawmemchr+0x1d0> + 42cac4: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 + 42cac9: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42cacd: 66 0f d7 c2 pmovmskb %xmm2,%eax + 42cad1: 85 c0 test %eax,%eax + 42cad3: 0f 85 d7 00 00 00 jne 42cbb0 <__rawmemchr+0x1e0> + 42cad9: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 + 42cade: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 42cae2: 66 0f d7 c3 pmovmskb %xmm3,%eax + 42cae6: 85 c0 test %eax,%eax + 42cae8: 0f 85 d2 00 00 00 jne 42cbc0 <__rawmemchr+0x1f0> + 42caee: 66 0f 6f 5f 30 movdqa 0x30(%rdi),%xmm3 + 42caf3: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 42caf7: 66 0f d7 c3 pmovmskb %xmm3,%eax + 42cafb: 48 83 c7 40 add $0x40,%rdi + 42caff: 85 c0 test %eax,%eax + 42cb01: 0f 85 89 00 00 00 jne 42cb90 <__rawmemchr+0x1c0> + 42cb07: 48 83 e7 c0 and $0xffffffffffffffc0,%rdi + 42cb0b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42cb10: 66 0f 6f 07 movdqa (%rdi),%xmm0 + 42cb14: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 + 42cb19: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 + 42cb1e: 66 0f 6f 67 30 movdqa 0x30(%rdi),%xmm4 + 42cb23: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42cb27: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42cb2b: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 42cb2f: 66 0f 74 e1 pcmpeqb %xmm1,%xmm4 + 42cb33: 66 0f de d8 pmaxub %xmm0,%xmm3 + 42cb37: 66 0f de e2 pmaxub %xmm2,%xmm4 + 42cb3b: 66 0f de e3 pmaxub %xmm3,%xmm4 + 42cb3f: 66 0f d7 c4 pmovmskb %xmm4,%eax + 42cb43: 48 83 c7 40 add $0x40,%rdi + 42cb47: 85 c0 test %eax,%eax + 42cb49: 74 c5 je 42cb10 <__rawmemchr+0x140> + 42cb4b: 48 83 ef 40 sub $0x40,%rdi + 42cb4f: 66 0f d7 c0 pmovmskb %xmm0,%eax + 42cb53: 85 c0 test %eax,%eax + 42cb55: 75 49 jne 42cba0 <__rawmemchr+0x1d0> + 42cb57: 66 0f d7 c2 pmovmskb %xmm2,%eax + 42cb5b: 85 c0 test %eax,%eax + 42cb5d: 75 51 jne 42cbb0 <__rawmemchr+0x1e0> + 42cb5f: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 + 42cb64: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 42cb68: 66 0f 74 4f 30 pcmpeqb 0x30(%rdi),%xmm1 + 42cb6d: 66 0f d7 c3 pmovmskb %xmm3,%eax + 42cb71: 85 c0 test %eax,%eax + 42cb73: 75 4b jne 42cbc0 <__rawmemchr+0x1f0> + 42cb75: 66 0f d7 c1 pmovmskb %xmm1,%eax + 42cb79: 0f bc c0 bsf %eax,%eax + 42cb7c: 48 8d 44 07 30 lea 0x30(%rdi,%rax,1),%rax + 42cb81: c3 retq + 42cb82: 0f 1f 40 00 nopl 0x0(%rax) + 42cb86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42cb8d: 00 00 00 + 42cb90: 0f bc c0 bsf %eax,%eax + 42cb93: 48 8d 44 38 f0 lea -0x10(%rax,%rdi,1),%rax + 42cb98: c3 retq + 42cb99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42cba0: 0f bc c0 bsf %eax,%eax + 42cba3: 48 01 f8 add %rdi,%rax + 42cba6: c3 retq + 42cba7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42cbae: 00 00 + 42cbb0: 0f bc c0 bsf %eax,%eax + 42cbb3: 48 8d 44 38 10 lea 0x10(%rax,%rdi,1),%rax + 42cbb8: c3 retq + 42cbb9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42cbc0: 0f bc c0 bsf %eax,%eax + 42cbc3: 48 8d 44 38 20 lea 0x20(%rax,%rdi,1),%rax + 42cbc8: c3 retq + 42cbc9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42cbd0: 48 31 c0 xor %rax,%rax + 42cbd3: c3 retq + 42cbd4: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42cbdb: 00 00 00 + 42cbde: 66 90 xchg %ax,%ax + +000000000042cbe0 <__strchrnul>: + 42cbe0: 66 0f 6e ce movd %esi,%xmm1 + 42cbe4: 89 f8 mov %edi,%eax + 42cbe6: 25 ff 0f 00 00 and $0xfff,%eax + 42cbeb: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 + 42cbef: 3d c0 0f 00 00 cmp $0xfc0,%eax + 42cbf4: 66 0f 61 c9 punpcklwd %xmm1,%xmm1 + 42cbf8: 66 0f 70 c9 00 pshufd $0x0,%xmm1,%xmm1 + 42cbfd: 0f 8f 4d 01 00 00 jg 42cd50 <__strchrnul+0x170> + 42cc03: f3 0f 6f 07 movdqu (%rdi),%xmm0 + 42cc07: 66 0f ef db pxor %xmm3,%xmm3 + 42cc0b: 66 0f 6f e0 movdqa %xmm0,%xmm4 + 42cc0f: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42cc13: 66 0f 74 e3 pcmpeqb %xmm3,%xmm4 + 42cc17: 66 0f eb c4 por %xmm4,%xmm0 + 42cc1b: 66 0f d7 c0 pmovmskb %xmm0,%eax + 42cc1f: 85 c0 test %eax,%eax + 42cc21: 74 0d je 42cc30 <__strchrnul+0x50> + 42cc23: 0f bc c0 bsf %eax,%eax + 42cc26: 48 8d 04 07 lea (%rdi,%rax,1),%rax + 42cc2a: c3 retq + 42cc2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42cc30: f3 0f 6f 47 10 movdqu 0x10(%rdi),%xmm0 + 42cc35: 66 0f 6f e0 movdqa %xmm0,%xmm4 + 42cc39: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42cc3d: 66 0f 74 e3 pcmpeqb %xmm3,%xmm4 + 42cc41: 66 0f eb c4 por %xmm4,%xmm0 + 42cc45: 66 0f d7 c8 pmovmskb %xmm0,%ecx + 42cc49: f3 0f 6f 47 20 movdqu 0x20(%rdi),%xmm0 + 42cc4e: 66 0f 6f e0 movdqa %xmm0,%xmm4 + 42cc52: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42cc56: 48 c1 e1 10 shl $0x10,%rcx + 42cc5a: 66 0f 74 e3 pcmpeqb %xmm3,%xmm4 + 42cc5e: 66 0f eb c4 por %xmm4,%xmm0 + 42cc62: 66 0f d7 c0 pmovmskb %xmm0,%eax + 42cc66: f3 0f 6f 47 30 movdqu 0x30(%rdi),%xmm0 + 42cc6b: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 + 42cc6f: 48 c1 e0 20 shl $0x20,%rax + 42cc73: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42cc77: 48 09 c8 or %rcx,%rax + 42cc7a: 66 0f eb c3 por %xmm3,%xmm0 + 42cc7e: 66 0f d7 c8 pmovmskb %xmm0,%ecx + 42cc82: 48 c1 e1 30 shl $0x30,%rcx + 42cc86: 48 09 c8 or %rcx,%rax + 42cc89: 48 85 c0 test %rax,%rax + 42cc8c: 0f 85 ae 00 00 00 jne 42cd40 <__strchrnul+0x160> + 42cc92: 0f 1f 40 00 nopl 0x0(%rax) + 42cc96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42cc9d: 00 00 00 + 42cca0: 66 0f ef f6 pxor %xmm6,%xmm6 + 42cca4: 48 83 e7 c0 and $0xffffffffffffffc0,%rdi + 42cca8: 48 83 c7 40 add $0x40,%rdi + 42ccac: 66 0f 6f 2f movdqa (%rdi),%xmm5 + 42ccb0: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 + 42ccb5: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 + 42ccba: 66 0f ef e9 pxor %xmm1,%xmm5 + 42ccbe: 66 0f 6f 67 30 movdqa 0x30(%rdi),%xmm4 + 42ccc3: 66 0f ef d1 pxor %xmm1,%xmm2 + 42ccc7: 66 0f ef d9 pxor %xmm1,%xmm3 + 42cccb: 66 0f da 2f pminub (%rdi),%xmm5 + 42cccf: 66 0f ef e1 pxor %xmm1,%xmm4 + 42ccd3: 66 0f da 57 10 pminub 0x10(%rdi),%xmm2 + 42ccd8: 66 0f da 5f 20 pminub 0x20(%rdi),%xmm3 + 42ccdd: 66 0f da ea pminub %xmm2,%xmm5 + 42cce1: 66 0f da 67 30 pminub 0x30(%rdi),%xmm4 + 42cce6: 66 0f da eb pminub %xmm3,%xmm5 + 42ccea: 66 0f da ec pminub %xmm4,%xmm5 + 42ccee: 66 0f 74 ee pcmpeqb %xmm6,%xmm5 + 42ccf2: 66 0f d7 c5 pmovmskb %xmm5,%eax + 42ccf6: 85 c0 test %eax,%eax + 42ccf8: 74 ae je 42cca8 <__strchrnul+0xc8> + 42ccfa: 66 0f 6f 2f movdqa (%rdi),%xmm5 + 42ccfe: 66 0f 6f c5 movdqa %xmm5,%xmm0 + 42cd02: 66 0f 74 e9 pcmpeqb %xmm1,%xmm5 + 42cd06: 66 0f 74 c6 pcmpeqb %xmm6,%xmm0 + 42cd0a: 66 0f eb e8 por %xmm0,%xmm5 + 42cd0e: 66 0f 74 d6 pcmpeqb %xmm6,%xmm2 + 42cd12: 66 0f 74 de pcmpeqb %xmm6,%xmm3 + 42cd16: 66 0f 74 e6 pcmpeqb %xmm6,%xmm4 + 42cd1a: 66 0f d7 cd pmovmskb %xmm5,%ecx + 42cd1e: 66 0f d7 c2 pmovmskb %xmm2,%eax + 42cd22: 48 c1 e0 10 shl $0x10,%rax + 42cd26: 66 44 0f d7 c3 pmovmskb %xmm3,%r8d + 42cd2b: 66 0f d7 d4 pmovmskb %xmm4,%edx + 42cd2f: 49 c1 e0 20 shl $0x20,%r8 + 42cd33: 4c 09 c0 or %r8,%rax + 42cd36: 48 09 c8 or %rcx,%rax + 42cd39: 48 c1 e2 30 shl $0x30,%rdx + 42cd3d: 48 09 d0 or %rdx,%rax + 42cd40: 48 0f bc c0 bsf %rax,%rax + 42cd44: 48 8d 04 07 lea (%rdi,%rax,1),%rax + 42cd48: c3 retq + 42cd49: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42cd50: 48 89 fa mov %rdi,%rdx + 42cd53: 66 0f ef d2 pxor %xmm2,%xmm2 + 42cd57: 48 83 e2 c0 and $0xffffffffffffffc0,%rdx + 42cd5b: 66 0f 6f c1 movdqa %xmm1,%xmm0 + 42cd5f: 66 0f 6f 1a movdqa (%rdx),%xmm3 + 42cd63: 66 0f 6f e3 movdqa %xmm3,%xmm4 + 42cd67: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 42cd6b: 66 0f 74 e2 pcmpeqb %xmm2,%xmm4 + 42cd6f: 66 0f eb dc por %xmm4,%xmm3 + 42cd73: 66 44 0f d7 c3 pmovmskb %xmm3,%r8d + 42cd78: 66 0f 6f 5a 10 movdqa 0x10(%rdx),%xmm3 + 42cd7d: 66 0f 6f e3 movdqa %xmm3,%xmm4 + 42cd81: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 42cd85: 66 0f 74 e2 pcmpeqb %xmm2,%xmm4 + 42cd89: 66 0f eb dc por %xmm4,%xmm3 + 42cd8d: 66 0f d7 c3 pmovmskb %xmm3,%eax + 42cd91: 66 0f 6f 5a 20 movdqa 0x20(%rdx),%xmm3 + 42cd96: 66 0f 6f e3 movdqa %xmm3,%xmm4 + 42cd9a: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 42cd9e: 48 c1 e0 10 shl $0x10,%rax + 42cda2: 66 0f 74 e2 pcmpeqb %xmm2,%xmm4 + 42cda6: 66 0f eb dc por %xmm4,%xmm3 + 42cdaa: 66 44 0f d7 cb pmovmskb %xmm3,%r9d + 42cdaf: 66 0f 6f 5a 30 movdqa 0x30(%rdx),%xmm3 + 42cdb4: 66 0f 74 d3 pcmpeqb %xmm3,%xmm2 + 42cdb8: 49 c1 e1 20 shl $0x20,%r9 + 42cdbc: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42cdc0: 4c 09 c8 or %r9,%rax + 42cdc3: 4c 09 c0 or %r8,%rax + 42cdc6: 66 0f eb c2 por %xmm2,%xmm0 + 42cdca: 66 0f d7 c8 pmovmskb %xmm0,%ecx + 42cdce: 48 c1 e1 30 shl $0x30,%rcx + 42cdd2: 48 09 c8 or %rcx,%rax + 42cdd5: 89 f9 mov %edi,%ecx + 42cdd7: 28 d1 sub %dl,%cl + 42cdd9: 48 d3 e8 shr %cl,%rax + 42cddc: 48 85 c0 test %rax,%rax + 42cddf: 0f 85 5b ff ff ff jne 42cd40 <__strchrnul+0x160> + 42cde5: e9 a8 fe ff ff jmpq 42cc92 <__strchrnul+0xb2> + 42cdea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +000000000042cdf0 <__strcmp_ssse3>: + 42cdf0: 89 f1 mov %esi,%ecx + 42cdf2: 89 f8 mov %edi,%eax + 42cdf4: 48 83 e1 3f and $0x3f,%rcx + 42cdf8: 48 83 e0 3f and $0x3f,%rax + 42cdfc: 83 f9 30 cmp $0x30,%ecx + 42cdff: 77 3f ja 42ce40 <__strcmp_ssse3+0x50> + 42ce01: 83 f8 30 cmp $0x30,%eax + 42ce04: 77 3a ja 42ce40 <__strcmp_ssse3+0x50> + 42ce06: 66 0f 12 0f movlpd (%rdi),%xmm1 + 42ce0a: 66 0f 12 16 movlpd (%rsi),%xmm2 + 42ce0e: 66 0f 16 4f 08 movhpd 0x8(%rdi),%xmm1 + 42ce13: 66 0f 16 56 08 movhpd 0x8(%rsi),%xmm2 + 42ce18: 66 0f ef c0 pxor %xmm0,%xmm0 + 42ce1c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42ce20: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42ce24: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42ce28: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42ce2c: 81 ea ff ff 00 00 sub $0xffff,%edx + 42ce32: 0f 85 e8 11 00 00 jne 42e020 <__strcmp_ssse3+0x1230> + 42ce38: 48 83 c6 10 add $0x10,%rsi + 42ce3c: 48 83 c7 10 add $0x10,%rdi + 42ce40: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 42ce44: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 42ce48: ba ff ff 00 00 mov $0xffff,%edx + 42ce4d: 45 31 c0 xor %r8d,%r8d + 42ce50: 83 e1 0f and $0xf,%ecx + 42ce53: 83 e0 0f and $0xf,%eax + 42ce56: 39 c1 cmp %eax,%ecx + 42ce58: 74 26 je 42ce80 <__strcmp_ssse3+0x90> + 42ce5a: 77 07 ja 42ce63 <__strcmp_ssse3+0x73> + 42ce5c: 41 89 d0 mov %edx,%r8d + 42ce5f: 91 xchg %eax,%ecx + 42ce60: 48 87 f7 xchg %rsi,%rdi + 42ce63: 4c 8d 48 0f lea 0xf(%rax),%r9 + 42ce67: 49 29 c9 sub %rcx,%r9 + 42ce6a: 4c 8d 15 bf 63 07 00 lea 0x763bf(%rip),%r10 # 4a3230 + 42ce71: 4f 63 0c 8a movslq (%r10,%r9,4),%r9 + 42ce75: 4f 8d 14 0a lea (%r10,%r9,1),%r10 + 42ce79: 41 ff e2 jmpq *%r10 + 42ce7c: 0f 1f 40 00 nopl 0x0(%rax) + 42ce80: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42ce84: 66 0f ef c0 pxor %xmm0,%xmm0 + 42ce88: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42ce8c: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 42ce90: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42ce94: 66 44 0f d7 c9 pmovmskb %xmm1,%r9d + 42ce99: d3 ea shr %cl,%edx + 42ce9b: 41 d3 e9 shr %cl,%r9d + 42ce9e: 44 29 ca sub %r9d,%edx + 42cea1: 0f 85 5e 11 00 00 jne 42e005 <__strcmp_ssse3+0x1215> + 42cea7: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42ceae: 49 c7 c1 10 00 00 00 mov $0x10,%r9 + 42ceb5: 66 0f ef c0 pxor %xmm0,%xmm0 + 42ceb9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42cec0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42cec5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42ceca: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42cece: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42ced2: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42ced6: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42ceda: 81 ea ff ff 00 00 sub $0xffff,%edx + 42cee0: 0f 85 1a 11 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42cee6: 48 83 c1 10 add $0x10,%rcx + 42ceea: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42ceef: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42cef4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42cef8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42cefc: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42cf00: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42cf04: 81 ea ff ff 00 00 sub $0xffff,%edx + 42cf0a: 0f 85 f0 10 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42cf10: 48 83 c1 10 add $0x10,%rcx + 42cf14: eb aa jmp 42cec0 <__strcmp_ssse3+0xd0> + 42cf16: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42cf1d: 00 00 00 + 42cf20: 66 0f ef c0 pxor %xmm0,%xmm0 + 42cf24: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42cf28: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42cf2c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42cf30: 66 0f 73 fa 0f pslldq $0xf,%xmm2 + 42cf35: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42cf39: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42cf3d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42cf42: d3 ea shr %cl,%edx + 42cf44: 41 d3 e9 shr %cl,%r9d + 42cf47: 44 29 ca sub %r9d,%edx + 42cf4a: 0f 85 b5 10 00 00 jne 42e005 <__strcmp_ssse3+0x1215> + 42cf50: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42cf54: 66 0f ef c0 pxor %xmm0,%xmm0 + 42cf58: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42cf5f: 41 b9 01 00 00 00 mov $0x1,%r9d + 42cf65: 4c 8d 57 01 lea 0x1(%rdi),%r10 + 42cf69: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42cf70: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42cf77: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42cf7e: 00 00 + 42cf80: 49 83 c2 10 add $0x10,%r10 + 42cf84: 7f 7a jg 42d000 <__strcmp_ssse3+0x210> + 42cf86: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42cf8b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42cf90: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42cf94: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 + 42cf9a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42cf9e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42cfa2: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42cfa6: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42cfaa: 81 ea ff ff 00 00 sub $0xffff,%edx + 42cfb0: 0f 85 4a 10 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42cfb6: 48 83 c1 10 add $0x10,%rcx + 42cfba: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42cfbe: 49 83 c2 10 add $0x10,%r10 + 42cfc2: 7f 3c jg 42d000 <__strcmp_ssse3+0x210> + 42cfc4: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42cfc9: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42cfce: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42cfd2: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 + 42cfd8: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42cfdc: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42cfe0: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42cfe4: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42cfe8: 81 ea ff ff 00 00 sub $0xffff,%edx + 42cfee: 0f 85 0c 10 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42cff4: 48 83 c1 10 add $0x10,%rcx + 42cff8: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42cffc: eb 82 jmp 42cf80 <__strcmp_ssse3+0x190> + 42cffe: 66 90 xchg %ax,%ax + 42d000: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42d004: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42d008: f7 c2 fe ff 00 00 test $0xfffe,%edx + 42d00e: 75 10 jne 42d020 <__strcmp_ssse3+0x230> + 42d010: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d014: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d01b: e9 66 ff ff ff jmpq 42cf86 <__strcmp_ssse3+0x196> + 42d020: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d025: 66 0f 73 d8 01 psrldq $0x1,%xmm0 + 42d02a: 66 0f 73 db 01 psrldq $0x1,%xmm3 + 42d02f: e9 bc 0f 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> + 42d034: 66 90 xchg %ax,%ax + 42d036: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42d03d: 00 00 00 + 42d040: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d044: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42d048: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42d04c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d050: 66 0f 73 fa 0e pslldq $0xe,%xmm2 + 42d055: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42d059: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42d05d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42d062: d3 ea shr %cl,%edx + 42d064: 41 d3 e9 shr %cl,%r9d + 42d067: 44 29 ca sub %r9d,%edx + 42d06a: 0f 85 95 0f 00 00 jne 42e005 <__strcmp_ssse3+0x1215> + 42d070: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42d074: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d078: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42d07f: 41 b9 02 00 00 00 mov $0x2,%r9d + 42d085: 4c 8d 57 02 lea 0x2(%rdi),%r10 + 42d089: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42d090: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d097: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42d09e: 00 00 + 42d0a0: 49 83 c2 10 add $0x10,%r10 + 42d0a4: 7f 7a jg 42d120 <__strcmp_ssse3+0x330> + 42d0a6: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d0ab: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d0b0: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d0b4: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 + 42d0ba: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d0be: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d0c2: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d0c6: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d0ca: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d0d0: 0f 85 2a 0f 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d0d6: 48 83 c1 10 add $0x10,%rcx + 42d0da: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d0de: 49 83 c2 10 add $0x10,%r10 + 42d0e2: 7f 3c jg 42d120 <__strcmp_ssse3+0x330> + 42d0e4: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d0e9: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d0ee: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d0f2: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 + 42d0f8: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d0fc: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d100: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d104: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d108: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d10e: 0f 85 ec 0e 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d114: 48 83 c1 10 add $0x10,%rcx + 42d118: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d11c: eb 82 jmp 42d0a0 <__strcmp_ssse3+0x2b0> + 42d11e: 66 90 xchg %ax,%ax + 42d120: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42d124: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42d128: f7 c2 fc ff 00 00 test $0xfffc,%edx + 42d12e: 75 10 jne 42d140 <__strcmp_ssse3+0x350> + 42d130: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d134: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d13b: e9 66 ff ff ff jmpq 42d0a6 <__strcmp_ssse3+0x2b6> + 42d140: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d145: 66 0f 73 d8 02 psrldq $0x2,%xmm0 + 42d14a: 66 0f 73 db 02 psrldq $0x2,%xmm3 + 42d14f: e9 9c 0e 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> + 42d154: 66 90 xchg %ax,%ax + 42d156: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42d15d: 00 00 00 + 42d160: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d164: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42d168: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42d16c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d170: 66 0f 73 fa 0d pslldq $0xd,%xmm2 + 42d175: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42d179: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42d17d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42d182: d3 ea shr %cl,%edx + 42d184: 41 d3 e9 shr %cl,%r9d + 42d187: 44 29 ca sub %r9d,%edx + 42d18a: 0f 85 75 0e 00 00 jne 42e005 <__strcmp_ssse3+0x1215> + 42d190: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42d194: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d198: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42d19f: 41 b9 03 00 00 00 mov $0x3,%r9d + 42d1a5: 4c 8d 57 03 lea 0x3(%rdi),%r10 + 42d1a9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42d1b0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d1b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42d1be: 00 00 + 42d1c0: 49 83 c2 10 add $0x10,%r10 + 42d1c4: 7f 7a jg 42d240 <__strcmp_ssse3+0x450> + 42d1c6: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d1cb: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d1d0: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d1d4: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 + 42d1da: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d1de: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d1e2: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d1e6: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d1ea: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d1f0: 0f 85 0a 0e 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d1f6: 48 83 c1 10 add $0x10,%rcx + 42d1fa: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d1fe: 49 83 c2 10 add $0x10,%r10 + 42d202: 7f 3c jg 42d240 <__strcmp_ssse3+0x450> + 42d204: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d209: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d20e: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d212: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 + 42d218: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d21c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d220: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d224: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d228: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d22e: 0f 85 cc 0d 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d234: 48 83 c1 10 add $0x10,%rcx + 42d238: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d23c: eb 82 jmp 42d1c0 <__strcmp_ssse3+0x3d0> + 42d23e: 66 90 xchg %ax,%ax + 42d240: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42d244: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42d248: f7 c2 f8 ff 00 00 test $0xfff8,%edx + 42d24e: 75 10 jne 42d260 <__strcmp_ssse3+0x470> + 42d250: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d254: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d25b: e9 66 ff ff ff jmpq 42d1c6 <__strcmp_ssse3+0x3d6> + 42d260: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d265: 66 0f 73 d8 03 psrldq $0x3,%xmm0 + 42d26a: 66 0f 73 db 03 psrldq $0x3,%xmm3 + 42d26f: e9 7c 0d 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> + 42d274: 66 90 xchg %ax,%ax + 42d276: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42d27d: 00 00 00 + 42d280: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d284: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42d288: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42d28c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d290: 66 0f 73 fa 0c pslldq $0xc,%xmm2 + 42d295: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42d299: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42d29d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42d2a2: d3 ea shr %cl,%edx + 42d2a4: 41 d3 e9 shr %cl,%r9d + 42d2a7: 44 29 ca sub %r9d,%edx + 42d2aa: 0f 85 55 0d 00 00 jne 42e005 <__strcmp_ssse3+0x1215> + 42d2b0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42d2b4: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d2b8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42d2bf: 41 b9 04 00 00 00 mov $0x4,%r9d + 42d2c5: 4c 8d 57 04 lea 0x4(%rdi),%r10 + 42d2c9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42d2d0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d2d7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42d2de: 00 00 + 42d2e0: 49 83 c2 10 add $0x10,%r10 + 42d2e4: 7f 7a jg 42d360 <__strcmp_ssse3+0x570> + 42d2e6: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d2eb: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d2f0: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d2f4: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 + 42d2fa: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d2fe: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d302: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d306: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d30a: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d310: 0f 85 ea 0c 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d316: 48 83 c1 10 add $0x10,%rcx + 42d31a: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d31e: 49 83 c2 10 add $0x10,%r10 + 42d322: 7f 3c jg 42d360 <__strcmp_ssse3+0x570> + 42d324: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d329: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d32e: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d332: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 + 42d338: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d33c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d340: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d344: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d348: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d34e: 0f 85 ac 0c 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d354: 48 83 c1 10 add $0x10,%rcx + 42d358: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d35c: eb 82 jmp 42d2e0 <__strcmp_ssse3+0x4f0> + 42d35e: 66 90 xchg %ax,%ax + 42d360: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42d364: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42d368: f7 c2 f0 ff 00 00 test $0xfff0,%edx + 42d36e: 75 10 jne 42d380 <__strcmp_ssse3+0x590> + 42d370: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d374: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d37b: e9 66 ff ff ff jmpq 42d2e6 <__strcmp_ssse3+0x4f6> + 42d380: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d385: 66 0f 73 d8 04 psrldq $0x4,%xmm0 + 42d38a: 66 0f 73 db 04 psrldq $0x4,%xmm3 + 42d38f: e9 5c 0c 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> + 42d394: 66 90 xchg %ax,%ax + 42d396: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42d39d: 00 00 00 + 42d3a0: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d3a4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42d3a8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42d3ac: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d3b0: 66 0f 73 fa 0b pslldq $0xb,%xmm2 + 42d3b5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42d3b9: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42d3bd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42d3c2: d3 ea shr %cl,%edx + 42d3c4: 41 d3 e9 shr %cl,%r9d + 42d3c7: 44 29 ca sub %r9d,%edx + 42d3ca: 0f 85 35 0c 00 00 jne 42e005 <__strcmp_ssse3+0x1215> + 42d3d0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42d3d4: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d3d8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42d3df: 41 b9 05 00 00 00 mov $0x5,%r9d + 42d3e5: 4c 8d 57 05 lea 0x5(%rdi),%r10 + 42d3e9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42d3f0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d3f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42d3fe: 00 00 + 42d400: 49 83 c2 10 add $0x10,%r10 + 42d404: 7f 7a jg 42d480 <__strcmp_ssse3+0x690> + 42d406: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d40b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d410: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d414: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 + 42d41a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d41e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d422: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d426: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d42a: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d430: 0f 85 ca 0b 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d436: 48 83 c1 10 add $0x10,%rcx + 42d43a: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d43e: 49 83 c2 10 add $0x10,%r10 + 42d442: 7f 3c jg 42d480 <__strcmp_ssse3+0x690> + 42d444: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d449: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d44e: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d452: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 + 42d458: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d45c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d460: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d464: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d468: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d46e: 0f 85 8c 0b 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d474: 48 83 c1 10 add $0x10,%rcx + 42d478: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d47c: eb 82 jmp 42d400 <__strcmp_ssse3+0x610> + 42d47e: 66 90 xchg %ax,%ax + 42d480: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42d484: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42d488: f7 c2 e0 ff 00 00 test $0xffe0,%edx + 42d48e: 75 10 jne 42d4a0 <__strcmp_ssse3+0x6b0> + 42d490: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d494: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d49b: e9 66 ff ff ff jmpq 42d406 <__strcmp_ssse3+0x616> + 42d4a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d4a5: 66 0f 73 d8 05 psrldq $0x5,%xmm0 + 42d4aa: 66 0f 73 db 05 psrldq $0x5,%xmm3 + 42d4af: e9 3c 0b 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> + 42d4b4: 66 90 xchg %ax,%ax + 42d4b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42d4bd: 00 00 00 + 42d4c0: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d4c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42d4c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42d4cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d4d0: 66 0f 73 fa 0a pslldq $0xa,%xmm2 + 42d4d5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42d4d9: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42d4dd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42d4e2: d3 ea shr %cl,%edx + 42d4e4: 41 d3 e9 shr %cl,%r9d + 42d4e7: 44 29 ca sub %r9d,%edx + 42d4ea: 0f 85 15 0b 00 00 jne 42e005 <__strcmp_ssse3+0x1215> + 42d4f0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42d4f4: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d4f8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42d4ff: 41 b9 06 00 00 00 mov $0x6,%r9d + 42d505: 4c 8d 57 06 lea 0x6(%rdi),%r10 + 42d509: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42d510: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d517: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42d51e: 00 00 + 42d520: 49 83 c2 10 add $0x10,%r10 + 42d524: 7f 7a jg 42d5a0 <__strcmp_ssse3+0x7b0> + 42d526: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d52b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d530: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d534: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 + 42d53a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d53e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d542: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d546: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d54a: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d550: 0f 85 aa 0a 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d556: 48 83 c1 10 add $0x10,%rcx + 42d55a: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d55e: 49 83 c2 10 add $0x10,%r10 + 42d562: 7f 3c jg 42d5a0 <__strcmp_ssse3+0x7b0> + 42d564: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d569: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d56e: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d572: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 + 42d578: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d57c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d580: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d584: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d588: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d58e: 0f 85 6c 0a 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d594: 48 83 c1 10 add $0x10,%rcx + 42d598: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d59c: eb 82 jmp 42d520 <__strcmp_ssse3+0x730> + 42d59e: 66 90 xchg %ax,%ax + 42d5a0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42d5a4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42d5a8: f7 c2 c0 ff 00 00 test $0xffc0,%edx + 42d5ae: 75 10 jne 42d5c0 <__strcmp_ssse3+0x7d0> + 42d5b0: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d5b4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d5bb: e9 66 ff ff ff jmpq 42d526 <__strcmp_ssse3+0x736> + 42d5c0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d5c5: 66 0f 73 d8 06 psrldq $0x6,%xmm0 + 42d5ca: 66 0f 73 db 06 psrldq $0x6,%xmm3 + 42d5cf: e9 1c 0a 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> + 42d5d4: 66 90 xchg %ax,%ax + 42d5d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42d5dd: 00 00 00 + 42d5e0: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d5e4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42d5e8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42d5ec: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d5f0: 66 0f 73 fa 09 pslldq $0x9,%xmm2 + 42d5f5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42d5f9: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42d5fd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42d602: d3 ea shr %cl,%edx + 42d604: 41 d3 e9 shr %cl,%r9d + 42d607: 44 29 ca sub %r9d,%edx + 42d60a: 0f 85 f5 09 00 00 jne 42e005 <__strcmp_ssse3+0x1215> + 42d610: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42d614: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d618: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42d61f: 41 b9 07 00 00 00 mov $0x7,%r9d + 42d625: 4c 8d 57 07 lea 0x7(%rdi),%r10 + 42d629: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42d630: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d637: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42d63e: 00 00 + 42d640: 49 83 c2 10 add $0x10,%r10 + 42d644: 7f 7a jg 42d6c0 <__strcmp_ssse3+0x8d0> + 42d646: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d64b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d650: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d654: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 + 42d65a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d65e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d662: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d666: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d66a: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d670: 0f 85 8a 09 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d676: 48 83 c1 10 add $0x10,%rcx + 42d67a: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d67e: 49 83 c2 10 add $0x10,%r10 + 42d682: 7f 3c jg 42d6c0 <__strcmp_ssse3+0x8d0> + 42d684: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d689: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d68e: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d692: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 + 42d698: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d69c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d6a0: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d6a4: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d6a8: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d6ae: 0f 85 4c 09 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d6b4: 48 83 c1 10 add $0x10,%rcx + 42d6b8: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d6bc: eb 82 jmp 42d640 <__strcmp_ssse3+0x850> + 42d6be: 66 90 xchg %ax,%ax + 42d6c0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42d6c4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42d6c8: f7 c2 80 ff 00 00 test $0xff80,%edx + 42d6ce: 75 10 jne 42d6e0 <__strcmp_ssse3+0x8f0> + 42d6d0: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d6d4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d6db: e9 66 ff ff ff jmpq 42d646 <__strcmp_ssse3+0x856> + 42d6e0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d6e5: 66 0f 73 d8 07 psrldq $0x7,%xmm0 + 42d6ea: 66 0f 73 db 07 psrldq $0x7,%xmm3 + 42d6ef: e9 fc 08 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> + 42d6f4: 66 90 xchg %ax,%ax + 42d6f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42d6fd: 00 00 00 + 42d700: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d704: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42d708: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42d70c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d710: 66 0f 73 fa 08 pslldq $0x8,%xmm2 + 42d715: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42d719: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42d71d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42d722: d3 ea shr %cl,%edx + 42d724: 41 d3 e9 shr %cl,%r9d + 42d727: 44 29 ca sub %r9d,%edx + 42d72a: 0f 85 d5 08 00 00 jne 42e005 <__strcmp_ssse3+0x1215> + 42d730: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42d734: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d738: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42d73f: 41 b9 08 00 00 00 mov $0x8,%r9d + 42d745: 4c 8d 57 08 lea 0x8(%rdi),%r10 + 42d749: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42d750: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d757: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42d75e: 00 00 + 42d760: 49 83 c2 10 add $0x10,%r10 + 42d764: 7f 7a jg 42d7e0 <__strcmp_ssse3+0x9f0> + 42d766: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d76b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d770: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d774: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 + 42d77a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d77e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d782: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d786: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d78a: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d790: 0f 85 6a 08 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d796: 48 83 c1 10 add $0x10,%rcx + 42d79a: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d79e: 49 83 c2 10 add $0x10,%r10 + 42d7a2: 7f 3c jg 42d7e0 <__strcmp_ssse3+0x9f0> + 42d7a4: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d7a9: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d7ae: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d7b2: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 + 42d7b8: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d7bc: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d7c0: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d7c4: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d7c8: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d7ce: 0f 85 2c 08 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d7d4: 48 83 c1 10 add $0x10,%rcx + 42d7d8: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d7dc: eb 82 jmp 42d760 <__strcmp_ssse3+0x970> + 42d7de: 66 90 xchg %ax,%ax + 42d7e0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42d7e4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42d7e8: f7 c2 00 ff 00 00 test $0xff00,%edx + 42d7ee: 75 10 jne 42d800 <__strcmp_ssse3+0xa10> + 42d7f0: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d7f4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d7fb: e9 66 ff ff ff jmpq 42d766 <__strcmp_ssse3+0x976> + 42d800: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d805: 66 0f 73 d8 08 psrldq $0x8,%xmm0 + 42d80a: 66 0f 73 db 08 psrldq $0x8,%xmm3 + 42d80f: e9 dc 07 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> + 42d814: 66 90 xchg %ax,%ax + 42d816: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42d81d: 00 00 00 + 42d820: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d824: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42d828: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42d82c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d830: 66 0f 73 fa 07 pslldq $0x7,%xmm2 + 42d835: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42d839: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42d83d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42d842: d3 ea shr %cl,%edx + 42d844: 41 d3 e9 shr %cl,%r9d + 42d847: 44 29 ca sub %r9d,%edx + 42d84a: 0f 85 b5 07 00 00 jne 42e005 <__strcmp_ssse3+0x1215> + 42d850: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42d854: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d858: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42d85f: 41 b9 09 00 00 00 mov $0x9,%r9d + 42d865: 4c 8d 57 09 lea 0x9(%rdi),%r10 + 42d869: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42d870: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d877: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42d87e: 00 00 + 42d880: 49 83 c2 10 add $0x10,%r10 + 42d884: 7f 7a jg 42d900 <__strcmp_ssse3+0xb10> + 42d886: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d88b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d890: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d894: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 + 42d89a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d89e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d8a2: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d8a6: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d8aa: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d8b0: 0f 85 4a 07 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d8b6: 48 83 c1 10 add $0x10,%rcx + 42d8ba: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d8be: 49 83 c2 10 add $0x10,%r10 + 42d8c2: 7f 3c jg 42d900 <__strcmp_ssse3+0xb10> + 42d8c4: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d8c9: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d8ce: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d8d2: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 + 42d8d8: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d8dc: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d8e0: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d8e4: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d8e8: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d8ee: 0f 85 0c 07 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d8f4: 48 83 c1 10 add $0x10,%rcx + 42d8f8: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d8fc: eb 82 jmp 42d880 <__strcmp_ssse3+0xa90> + 42d8fe: 66 90 xchg %ax,%ax + 42d900: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42d904: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42d908: f7 c2 00 fe 00 00 test $0xfe00,%edx + 42d90e: 75 10 jne 42d920 <__strcmp_ssse3+0xb30> + 42d910: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d914: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d91b: e9 66 ff ff ff jmpq 42d886 <__strcmp_ssse3+0xa96> + 42d920: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d925: 66 0f 73 d8 09 psrldq $0x9,%xmm0 + 42d92a: 66 0f 73 db 09 psrldq $0x9,%xmm3 + 42d92f: e9 bc 06 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> + 42d934: 66 90 xchg %ax,%ax + 42d936: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42d93d: 00 00 00 + 42d940: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d944: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42d948: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42d94c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d950: 66 0f 73 fa 06 pslldq $0x6,%xmm2 + 42d955: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42d959: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42d95d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42d962: d3 ea shr %cl,%edx + 42d964: 41 d3 e9 shr %cl,%r9d + 42d967: 44 29 ca sub %r9d,%edx + 42d96a: 0f 85 95 06 00 00 jne 42e005 <__strcmp_ssse3+0x1215> + 42d970: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42d974: 66 0f ef c0 pxor %xmm0,%xmm0 + 42d978: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42d97f: 41 b9 0a 00 00 00 mov $0xa,%r9d + 42d985: 4c 8d 57 0a lea 0xa(%rdi),%r10 + 42d989: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42d990: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42d997: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42d99e: 00 00 + 42d9a0: 49 83 c2 10 add $0x10,%r10 + 42d9a4: 7f 7a jg 42da20 <__strcmp_ssse3+0xc30> + 42d9a6: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d9ab: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d9b0: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d9b4: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 + 42d9ba: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d9be: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42d9c2: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42d9c6: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42d9ca: 81 ea ff ff 00 00 sub $0xffff,%edx + 42d9d0: 0f 85 2a 06 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42d9d6: 48 83 c1 10 add $0x10,%rcx + 42d9da: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42d9de: 49 83 c2 10 add $0x10,%r10 + 42d9e2: 7f 3c jg 42da20 <__strcmp_ssse3+0xc30> + 42d9e4: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42d9e9: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42d9ee: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42d9f2: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 + 42d9f8: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42d9fc: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42da00: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42da04: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42da08: 81 ea ff ff 00 00 sub $0xffff,%edx + 42da0e: 0f 85 ec 05 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42da14: 48 83 c1 10 add $0x10,%rcx + 42da18: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42da1c: eb 82 jmp 42d9a0 <__strcmp_ssse3+0xbb0> + 42da1e: 66 90 xchg %ax,%ax + 42da20: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42da24: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42da28: f7 c2 00 fc 00 00 test $0xfc00,%edx + 42da2e: 75 10 jne 42da40 <__strcmp_ssse3+0xc50> + 42da30: 66 0f ef c0 pxor %xmm0,%xmm0 + 42da34: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42da3b: e9 66 ff ff ff jmpq 42d9a6 <__strcmp_ssse3+0xbb6> + 42da40: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42da45: 66 0f 73 d8 0a psrldq $0xa,%xmm0 + 42da4a: 66 0f 73 db 0a psrldq $0xa,%xmm3 + 42da4f: e9 9c 05 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> + 42da54: 66 90 xchg %ax,%ax + 42da56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42da5d: 00 00 00 + 42da60: 66 0f ef c0 pxor %xmm0,%xmm0 + 42da64: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42da68: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42da6c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42da70: 66 0f 73 fa 05 pslldq $0x5,%xmm2 + 42da75: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42da79: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42da7d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42da82: d3 ea shr %cl,%edx + 42da84: 41 d3 e9 shr %cl,%r9d + 42da87: 44 29 ca sub %r9d,%edx + 42da8a: 0f 85 75 05 00 00 jne 42e005 <__strcmp_ssse3+0x1215> + 42da90: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42da94: 66 0f ef c0 pxor %xmm0,%xmm0 + 42da98: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42da9f: 41 b9 0b 00 00 00 mov $0xb,%r9d + 42daa5: 4c 8d 57 0b lea 0xb(%rdi),%r10 + 42daa9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42dab0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42dab7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42dabe: 00 00 + 42dac0: 49 83 c2 10 add $0x10,%r10 + 42dac4: 7f 7a jg 42db40 <__strcmp_ssse3+0xd50> + 42dac6: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42dacb: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42dad0: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42dad4: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 + 42dada: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42dade: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42dae2: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42dae6: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42daea: 81 ea ff ff 00 00 sub $0xffff,%edx + 42daf0: 0f 85 0a 05 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42daf6: 48 83 c1 10 add $0x10,%rcx + 42dafa: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42dafe: 49 83 c2 10 add $0x10,%r10 + 42db02: 7f 3c jg 42db40 <__strcmp_ssse3+0xd50> + 42db04: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42db09: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42db0e: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42db12: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 + 42db18: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42db1c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42db20: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42db24: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42db28: 81 ea ff ff 00 00 sub $0xffff,%edx + 42db2e: 0f 85 cc 04 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42db34: 48 83 c1 10 add $0x10,%rcx + 42db38: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42db3c: eb 82 jmp 42dac0 <__strcmp_ssse3+0xcd0> + 42db3e: 66 90 xchg %ax,%ax + 42db40: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42db44: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42db48: f7 c2 00 f8 00 00 test $0xf800,%edx + 42db4e: 75 10 jne 42db60 <__strcmp_ssse3+0xd70> + 42db50: 66 0f ef c0 pxor %xmm0,%xmm0 + 42db54: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42db5b: e9 66 ff ff ff jmpq 42dac6 <__strcmp_ssse3+0xcd6> + 42db60: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42db65: 66 0f 73 d8 0b psrldq $0xb,%xmm0 + 42db6a: 66 0f 73 db 0b psrldq $0xb,%xmm3 + 42db6f: e9 7c 04 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> + 42db74: 66 90 xchg %ax,%ax + 42db76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42db7d: 00 00 00 + 42db80: 66 0f ef c0 pxor %xmm0,%xmm0 + 42db84: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42db88: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42db8c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42db90: 66 0f 73 fa 04 pslldq $0x4,%xmm2 + 42db95: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42db99: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42db9d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42dba2: d3 ea shr %cl,%edx + 42dba4: 41 d3 e9 shr %cl,%r9d + 42dba7: 44 29 ca sub %r9d,%edx + 42dbaa: 0f 85 55 04 00 00 jne 42e005 <__strcmp_ssse3+0x1215> + 42dbb0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42dbb4: 66 0f ef c0 pxor %xmm0,%xmm0 + 42dbb8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42dbbf: 41 b9 0c 00 00 00 mov $0xc,%r9d + 42dbc5: 4c 8d 57 0c lea 0xc(%rdi),%r10 + 42dbc9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42dbd0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42dbd7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42dbde: 00 00 + 42dbe0: 49 83 c2 10 add $0x10,%r10 + 42dbe4: 7f 7a jg 42dc60 <__strcmp_ssse3+0xe70> + 42dbe6: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42dbeb: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42dbf0: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42dbf4: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 + 42dbfa: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42dbfe: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42dc02: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42dc06: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42dc0a: 81 ea ff ff 00 00 sub $0xffff,%edx + 42dc10: 0f 85 ea 03 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42dc16: 48 83 c1 10 add $0x10,%rcx + 42dc1a: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42dc1e: 49 83 c2 10 add $0x10,%r10 + 42dc22: 7f 3c jg 42dc60 <__strcmp_ssse3+0xe70> + 42dc24: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42dc29: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42dc2e: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42dc32: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 + 42dc38: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42dc3c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42dc40: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42dc44: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42dc48: 81 ea ff ff 00 00 sub $0xffff,%edx + 42dc4e: 0f 85 ac 03 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42dc54: 48 83 c1 10 add $0x10,%rcx + 42dc58: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42dc5c: eb 82 jmp 42dbe0 <__strcmp_ssse3+0xdf0> + 42dc5e: 66 90 xchg %ax,%ax + 42dc60: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42dc64: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42dc68: f7 c2 00 f0 00 00 test $0xf000,%edx + 42dc6e: 75 10 jne 42dc80 <__strcmp_ssse3+0xe90> + 42dc70: 66 0f ef c0 pxor %xmm0,%xmm0 + 42dc74: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42dc7b: e9 66 ff ff ff jmpq 42dbe6 <__strcmp_ssse3+0xdf6> + 42dc80: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42dc85: 66 0f 73 d8 0c psrldq $0xc,%xmm0 + 42dc8a: 66 0f 73 db 0c psrldq $0xc,%xmm3 + 42dc8f: e9 5c 03 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> + 42dc94: 66 90 xchg %ax,%ax + 42dc96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42dc9d: 00 00 00 + 42dca0: 66 0f ef c0 pxor %xmm0,%xmm0 + 42dca4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42dca8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42dcac: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42dcb0: 66 0f 73 fa 03 pslldq $0x3,%xmm2 + 42dcb5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42dcb9: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42dcbd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42dcc2: d3 ea shr %cl,%edx + 42dcc4: 41 d3 e9 shr %cl,%r9d + 42dcc7: 44 29 ca sub %r9d,%edx + 42dcca: 0f 85 35 03 00 00 jne 42e005 <__strcmp_ssse3+0x1215> + 42dcd0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42dcd4: 66 0f ef c0 pxor %xmm0,%xmm0 + 42dcd8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42dcdf: 41 b9 0d 00 00 00 mov $0xd,%r9d + 42dce5: 4c 8d 57 0d lea 0xd(%rdi),%r10 + 42dce9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42dcf0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42dcf7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42dcfe: 00 00 + 42dd00: 49 83 c2 10 add $0x10,%r10 + 42dd04: 7f 7a jg 42dd80 <__strcmp_ssse3+0xf90> + 42dd06: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42dd0b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42dd10: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42dd14: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 + 42dd1a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42dd1e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42dd22: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42dd26: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42dd2a: 81 ea ff ff 00 00 sub $0xffff,%edx + 42dd30: 0f 85 ca 02 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42dd36: 48 83 c1 10 add $0x10,%rcx + 42dd3a: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42dd3e: 49 83 c2 10 add $0x10,%r10 + 42dd42: 7f 3c jg 42dd80 <__strcmp_ssse3+0xf90> + 42dd44: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42dd49: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42dd4e: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42dd52: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 + 42dd58: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42dd5c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42dd60: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42dd64: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42dd68: 81 ea ff ff 00 00 sub $0xffff,%edx + 42dd6e: 0f 85 8c 02 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42dd74: 48 83 c1 10 add $0x10,%rcx + 42dd78: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42dd7c: eb 82 jmp 42dd00 <__strcmp_ssse3+0xf10> + 42dd7e: 66 90 xchg %ax,%ax + 42dd80: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42dd84: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42dd88: f7 c2 00 e0 00 00 test $0xe000,%edx + 42dd8e: 75 10 jne 42dda0 <__strcmp_ssse3+0xfb0> + 42dd90: 66 0f ef c0 pxor %xmm0,%xmm0 + 42dd94: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42dd9b: e9 66 ff ff ff jmpq 42dd06 <__strcmp_ssse3+0xf16> + 42dda0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42dda5: 66 0f 73 d8 0d psrldq $0xd,%xmm0 + 42ddaa: 66 0f 73 db 0d psrldq $0xd,%xmm3 + 42ddaf: e9 3c 02 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> + 42ddb4: 66 90 xchg %ax,%ax + 42ddb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42ddbd: 00 00 00 + 42ddc0: 66 0f ef c0 pxor %xmm0,%xmm0 + 42ddc4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42ddc8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42ddcc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42ddd0: 66 0f 73 fa 02 pslldq $0x2,%xmm2 + 42ddd5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42ddd9: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42dddd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42dde2: d3 ea shr %cl,%edx + 42dde4: 41 d3 e9 shr %cl,%r9d + 42dde7: 44 29 ca sub %r9d,%edx + 42ddea: 0f 85 15 02 00 00 jne 42e005 <__strcmp_ssse3+0x1215> + 42ddf0: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42ddf4: 66 0f ef c0 pxor %xmm0,%xmm0 + 42ddf8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42ddff: 41 b9 0e 00 00 00 mov $0xe,%r9d + 42de05: 4c 8d 57 0e lea 0xe(%rdi),%r10 + 42de09: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42de10: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42de17: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42de1e: 00 00 + 42de20: 49 83 c2 10 add $0x10,%r10 + 42de24: 7f 7a jg 42dea0 <__strcmp_ssse3+0x10b0> + 42de26: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42de2b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42de30: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42de34: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 + 42de3a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42de3e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42de42: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42de46: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42de4a: 81 ea ff ff 00 00 sub $0xffff,%edx + 42de50: 0f 85 aa 01 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42de56: 48 83 c1 10 add $0x10,%rcx + 42de5a: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42de5e: 49 83 c2 10 add $0x10,%r10 + 42de62: 7f 3c jg 42dea0 <__strcmp_ssse3+0x10b0> + 42de64: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42de69: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42de6e: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42de72: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 + 42de78: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42de7c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42de80: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42de84: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42de88: 81 ea ff ff 00 00 sub $0xffff,%edx + 42de8e: 0f 85 6c 01 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42de94: 48 83 c1 10 add $0x10,%rcx + 42de98: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42de9c: eb 82 jmp 42de20 <__strcmp_ssse3+0x1030> + 42de9e: 66 90 xchg %ax,%ax + 42dea0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42dea4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42dea8: f7 c2 00 c0 00 00 test $0xc000,%edx + 42deae: 75 10 jne 42dec0 <__strcmp_ssse3+0x10d0> + 42deb0: 66 0f ef c0 pxor %xmm0,%xmm0 + 42deb4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42debb: e9 66 ff ff ff jmpq 42de26 <__strcmp_ssse3+0x1036> + 42dec0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42dec5: 66 0f 73 d8 0e psrldq $0xe,%xmm0 + 42deca: 66 0f 73 db 0e psrldq $0xe,%xmm3 + 42decf: e9 1c 01 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> + 42ded4: 66 90 xchg %ax,%ax + 42ded6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42dedd: 00 00 00 + 42dee0: 66 0f ef c0 pxor %xmm0,%xmm0 + 42dee4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42dee8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42deec: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42def0: 66 0f 73 fa 01 pslldq $0x1,%xmm2 + 42def5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42def9: 66 0f f8 d0 psubb %xmm0,%xmm2 + 42defd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 42df02: d3 ea shr %cl,%edx + 42df04: 41 d3 e9 shr %cl,%r9d + 42df07: 44 29 ca sub %r9d,%edx + 42df0a: 0f 85 f5 00 00 00 jne 42e005 <__strcmp_ssse3+0x1215> + 42df10: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 42df14: 66 0f ef c0 pxor %xmm0,%xmm0 + 42df18: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 42df1f: 41 b9 0f 00 00 00 mov $0xf,%r9d + 42df25: 4c 8d 57 0f lea 0xf(%rdi),%r10 + 42df29: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 42df30: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42df37: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 42df3e: 00 00 + 42df40: 49 83 c2 10 add $0x10,%r10 + 42df44: 7f 7a jg 42dfc0 <__strcmp_ssse3+0x11d0> + 42df46: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42df4b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42df50: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42df54: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 + 42df5a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42df5e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42df62: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42df66: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42df6a: 81 ea ff ff 00 00 sub $0xffff,%edx + 42df70: 0f 85 8a 00 00 00 jne 42e000 <__strcmp_ssse3+0x1210> + 42df76: 48 83 c1 10 add $0x10,%rcx + 42df7a: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42df7e: 49 83 c2 10 add $0x10,%r10 + 42df82: 7f 3c jg 42dfc0 <__strcmp_ssse3+0x11d0> + 42df84: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42df89: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 42df8e: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 42df92: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 + 42df98: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42df9c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 42dfa0: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42dfa4: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42dfa8: 81 ea ff ff 00 00 sub $0xffff,%edx + 42dfae: 75 50 jne 42e000 <__strcmp_ssse3+0x1210> + 42dfb0: 48 83 c1 10 add $0x10,%rcx + 42dfb4: 66 0f 6f dc movdqa %xmm4,%xmm3 + 42dfb8: eb 86 jmp 42df40 <__strcmp_ssse3+0x1150> + 42dfba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 42dfc0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 42dfc4: 66 0f d7 d0 pmovmskb %xmm0,%edx + 42dfc8: f7 c2 00 80 00 00 test $0x8000,%edx + 42dfce: 75 10 jne 42dfe0 <__strcmp_ssse3+0x11f0> + 42dfd0: 66 0f ef c0 pxor %xmm0,%xmm0 + 42dfd4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 42dfdb: e9 66 ff ff ff jmpq 42df46 <__strcmp_ssse3+0x1156> + 42dfe0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 42dfe5: 66 0f 73 db 0f psrldq $0xf,%xmm3 + 42dfea: 66 0f 73 d8 0f psrldq $0xf,%xmm0 + 42dfef: 90 nop + 42dff0: 66 0f 74 cb pcmpeqb %xmm3,%xmm1 + 42dff4: 66 0f f8 c8 psubb %xmm0,%xmm1 + 42dff8: 66 0f d7 d1 pmovmskb %xmm1,%edx + 42dffc: f7 d2 not %edx + 42dffe: 66 90 xchg %ax,%ax + 42e000: 49 8d 44 09 f0 lea -0x10(%r9,%rcx,1),%rax + 42e005: 48 8d 3c 07 lea (%rdi,%rax,1),%rdi + 42e009: 48 8d 34 0e lea (%rsi,%rcx,1),%rsi + 42e00d: 45 85 c0 test %r8d,%r8d + 42e010: 74 0e je 42e020 <__strcmp_ssse3+0x1230> + 42e012: 48 87 f7 xchg %rsi,%rdi + 42e015: 90 nop + 42e016: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42e01d: 00 00 00 + 42e020: 48 0f bc d2 bsf %rdx,%rdx + 42e024: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx + 42e028: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax + 42e02c: 29 c8 sub %ecx,%eax + 42e02e: c3 retq + 42e02f: 31 c0 xor %eax,%eax + 42e031: c3 retq + 42e032: 0f 1f 40 00 nopl 0x0(%rax) + 42e036: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42e03d: 00 00 00 + 42e040: 0f b6 0e movzbl (%rsi),%ecx + 42e043: 0f b6 07 movzbl (%rdi),%eax + 42e046: 29 c8 sub %ecx,%eax + 42e048: c3 retq + 42e049: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +000000000042e050 <__strcmp_sse2_unaligned>: + 42e050: 89 f8 mov %edi,%eax + 42e052: 31 d2 xor %edx,%edx + 42e054: 66 0f ef ff pxor %xmm7,%xmm7 + 42e058: 09 f0 or %esi,%eax + 42e05a: 25 ff 0f 00 00 and $0xfff,%eax + 42e05f: 3d c0 0f 00 00 cmp $0xfc0,%eax + 42e064: 0f 8f 78 02 00 00 jg 42e2e2 <__strcmp_sse2_unaligned+0x292> + 42e06a: f3 0f 6f 0f movdqu (%rdi),%xmm1 + 42e06e: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 42e072: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42e076: 66 0f da c1 pminub %xmm1,%xmm0 + 42e07a: 66 0f ef c9 pxor %xmm1,%xmm1 + 42e07e: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42e082: 66 0f d7 c0 pmovmskb %xmm0,%eax + 42e086: 48 85 c0 test %rax,%rax + 42e089: 74 15 je 42e0a0 <__strcmp_sse2_unaligned+0x50> + 42e08b: 48 0f bc d0 bsf %rax,%rdx + 42e08f: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax + 42e093: 0f b6 14 16 movzbl (%rsi,%rdx,1),%edx + 42e097: 29 d0 sub %edx,%eax + 42e099: c3 retq + 42e09a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 42e0a0: f3 0f 6f 77 10 movdqu 0x10(%rdi),%xmm6 + 42e0a5: f3 0f 6f 5e 10 movdqu 0x10(%rsi),%xmm3 + 42e0aa: f3 0f 6f 6f 20 movdqu 0x20(%rdi),%xmm5 + 42e0af: 66 0f 74 de pcmpeqb %xmm6,%xmm3 + 42e0b3: f3 0f 6f 56 20 movdqu 0x20(%rsi),%xmm2 + 42e0b8: 66 0f da de pminub %xmm6,%xmm3 + 42e0bc: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 42e0c0: f3 0f 6f 67 30 movdqu 0x30(%rdi),%xmm4 + 42e0c5: 66 0f 74 d5 pcmpeqb %xmm5,%xmm2 + 42e0c9: 66 0f d7 d3 pmovmskb %xmm3,%edx + 42e0cd: f3 0f 6f 46 30 movdqu 0x30(%rsi),%xmm0 + 42e0d2: 66 0f da d5 pminub %xmm5,%xmm2 + 42e0d6: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 42e0da: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 + 42e0de: 66 0f d7 c2 pmovmskb %xmm2,%eax + 42e0e2: 48 c1 e2 10 shl $0x10,%rdx + 42e0e6: 66 0f da c4 pminub %xmm4,%xmm0 + 42e0ea: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 42e0ee: 48 c1 e0 20 shl $0x20,%rax + 42e0f2: 48 09 d0 or %rdx,%rax + 42e0f5: 66 0f d7 c8 pmovmskb %xmm0,%ecx + 42e0f9: 48 89 ca mov %rcx,%rdx + 42e0fc: 48 c1 e2 30 shl $0x30,%rdx + 42e100: 48 09 d0 or %rdx,%rax + 42e103: 75 86 jne 42e08b <__strcmp_sse2_unaligned+0x3b> + 42e105: 48 8d 57 40 lea 0x40(%rdi),%rdx + 42e109: b9 00 10 00 00 mov $0x1000,%ecx + 42e10e: 66 45 0f ef c9 pxor %xmm9,%xmm9 + 42e113: 48 83 e2 c0 and $0xffffffffffffffc0,%rdx + 42e117: 48 29 fa sub %rdi,%rdx + 42e11a: 48 8d 04 17 lea (%rdi,%rdx,1),%rax + 42e11e: 48 01 f2 add %rsi,%rdx + 42e121: 48 89 d6 mov %rdx,%rsi + 42e124: 81 e6 ff 0f 00 00 and $0xfff,%esi + 42e12a: 48 29 f1 sub %rsi,%rcx + 42e12d: 48 c1 e9 06 shr $0x6,%rcx + 42e131: 48 89 ce mov %rcx,%rsi + 42e134: eb 12 jmp 42e148 <__strcmp_sse2_unaligned+0xf8> + 42e136: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42e13d: 00 00 00 + 42e140: 48 83 c0 40 add $0x40,%rax + 42e144: 48 83 c2 40 add $0x40,%rdx + 42e148: 48 85 f6 test %rsi,%rsi + 42e14b: 48 8d 76 ff lea -0x1(%rsi),%rsi + 42e14f: 0f 84 bb 00 00 00 je 42e210 <__strcmp_sse2_unaligned+0x1c0> + 42e155: f3 0f 6f 02 movdqu (%rdx),%xmm0 + 42e159: f3 0f 6f 4a 10 movdqu 0x10(%rdx),%xmm1 + 42e15e: 66 0f 6f 10 movdqa (%rax),%xmm2 + 42e162: 66 0f 6f 58 10 movdqa 0x10(%rax),%xmm3 + 42e167: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 42e16b: f3 0f 6f 6a 20 movdqu 0x20(%rdx),%xmm5 + 42e170: 66 0f 74 cb pcmpeqb %xmm3,%xmm1 + 42e174: 66 0f da c2 pminub %xmm2,%xmm0 + 42e178: f3 0f 6f 72 30 movdqu 0x30(%rdx),%xmm6 + 42e17d: 66 0f da cb pminub %xmm3,%xmm1 + 42e181: 66 0f 6f 50 20 movdqa 0x20(%rax),%xmm2 + 42e186: 66 0f da c1 pminub %xmm1,%xmm0 + 42e18a: 66 0f 6f 58 30 movdqa 0x30(%rax),%xmm3 + 42e18f: 66 0f 74 ea pcmpeqb %xmm2,%xmm5 + 42e193: 66 0f 74 f3 pcmpeqb %xmm3,%xmm6 + 42e197: 66 0f da ea pminub %xmm2,%xmm5 + 42e19b: 66 0f da f3 pminub %xmm3,%xmm6 + 42e19f: 66 0f da c5 pminub %xmm5,%xmm0 + 42e1a3: 66 0f da c6 pminub %xmm6,%xmm0 + 42e1a7: 66 0f 74 c7 pcmpeqb %xmm7,%xmm0 + 42e1ab: 66 0f d7 c8 pmovmskb %xmm0,%ecx + 42e1af: 85 c9 test %ecx,%ecx + 42e1b1: 74 8d je 42e140 <__strcmp_sse2_unaligned+0xf0> + 42e1b3: 66 0f 74 ef pcmpeqb %xmm7,%xmm5 + 42e1b7: f3 0f 6f 02 movdqu (%rdx),%xmm0 + 42e1bb: 66 0f 74 cf pcmpeqb %xmm7,%xmm1 + 42e1bf: 66 0f 6f 10 movdqa (%rax),%xmm2 + 42e1c3: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 42e1c7: 66 0f da c2 pminub %xmm2,%xmm0 + 42e1cb: 66 0f 74 f7 pcmpeqb %xmm7,%xmm6 + 42e1cf: 66 0f 74 c7 pcmpeqb %xmm7,%xmm0 + 42e1d3: 66 0f d7 c9 pmovmskb %xmm1,%ecx + 42e1d7: 66 44 0f d7 c5 pmovmskb %xmm5,%r8d + 42e1dc: 66 0f d7 f8 pmovmskb %xmm0,%edi + 42e1e0: 48 c1 e1 10 shl $0x10,%rcx + 42e1e4: 49 c1 e0 20 shl $0x20,%r8 + 42e1e8: 66 0f d7 f6 pmovmskb %xmm6,%esi + 42e1ec: 4c 09 c1 or %r8,%rcx + 42e1ef: 48 09 f9 or %rdi,%rcx + 42e1f2: 48 c1 e6 30 shl $0x30,%rsi + 42e1f6: 48 09 f1 or %rsi,%rcx + 42e1f9: 48 0f bc c9 bsf %rcx,%rcx + 42e1fd: 0f b6 04 08 movzbl (%rax,%rcx,1),%eax + 42e201: 0f b6 14 0a movzbl (%rdx,%rcx,1),%edx + 42e205: 29 d0 sub %edx,%eax + 42e207: c3 retq + 42e208: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42e20f: 00 + 42e210: 4d 31 d2 xor %r10,%r10 + 42e213: 49 89 d1 mov %rdx,%r9 + 42e216: 49 83 e1 3f and $0x3f,%r9 + 42e21a: 4d 29 ca sub %r9,%r10 + 42e21d: 66 42 0f 6f 04 12 movdqa (%rdx,%r10,1),%xmm0 + 42e223: 66 42 0f 6f 4c 12 10 movdqa 0x10(%rdx,%r10,1),%xmm1 + 42e22a: f3 42 0f 6f 14 10 movdqu (%rax,%r10,1),%xmm2 + 42e230: f3 42 0f 6f 5c 10 10 movdqu 0x10(%rax,%r10,1),%xmm3 + 42e237: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 42e23b: 66 42 0f 6f 6c 12 20 movdqa 0x20(%rdx,%r10,1),%xmm5 + 42e242: 66 0f 74 cb pcmpeqb %xmm3,%xmm1 + 42e246: 66 0f da c2 pminub %xmm2,%xmm0 + 42e24a: 66 42 0f 6f 74 12 30 movdqa 0x30(%rdx,%r10,1),%xmm6 + 42e251: 66 0f da cb pminub %xmm3,%xmm1 + 42e255: f3 42 0f 6f 54 10 20 movdqu 0x20(%rax,%r10,1),%xmm2 + 42e25c: f3 42 0f 6f 5c 10 30 movdqu 0x30(%rax,%r10,1),%xmm3 + 42e263: 66 0f 74 ea pcmpeqb %xmm2,%xmm5 + 42e267: 66 0f 74 f3 pcmpeqb %xmm3,%xmm6 + 42e26b: 66 0f da ea pminub %xmm2,%xmm5 + 42e26f: 66 0f da f3 pminub %xmm3,%xmm6 + 42e273: 66 0f 74 c7 pcmpeqb %xmm7,%xmm0 + 42e277: 66 0f 74 cf pcmpeqb %xmm7,%xmm1 + 42e27b: 66 0f 74 ef pcmpeqb %xmm7,%xmm5 + 42e27f: 66 0f 74 f7 pcmpeqb %xmm7,%xmm6 + 42e283: 66 0f d7 c9 pmovmskb %xmm1,%ecx + 42e287: 66 44 0f d7 c5 pmovmskb %xmm5,%r8d + 42e28c: 66 0f d7 f8 pmovmskb %xmm0,%edi + 42e290: 48 c1 e1 10 shl $0x10,%rcx + 42e294: 49 c1 e0 20 shl $0x20,%r8 + 42e298: 66 0f d7 f6 pmovmskb %xmm6,%esi + 42e29c: 4c 09 c7 or %r8,%rdi + 42e29f: 48 09 cf or %rcx,%rdi + 42e2a2: 48 c1 e6 30 shl $0x30,%rsi + 42e2a6: 48 09 f7 or %rsi,%rdi + 42e2a9: 4c 89 c9 mov %r9,%rcx + 42e2ac: 48 c7 c6 3f 00 00 00 mov $0x3f,%rsi + 42e2b3: 48 d3 ef shr %cl,%rdi + 42e2b6: 48 85 ff test %rdi,%rdi + 42e2b9: 0f 84 96 fe ff ff je 42e155 <__strcmp_sse2_unaligned+0x105> + 42e2bf: 48 0f bc cf bsf %rdi,%rcx + 42e2c3: 0f b6 04 08 movzbl (%rax,%rcx,1),%eax + 42e2c7: 0f b6 14 0a movzbl (%rdx,%rcx,1),%edx + 42e2cb: 29 d0 sub %edx,%eax + 42e2cd: c3 retq + 42e2ce: 66 90 xchg %ax,%ax + 42e2d0: 38 c8 cmp %cl,%al + 42e2d2: 75 1c jne 42e2f0 <__strcmp_sse2_unaligned+0x2a0> + 42e2d4: 48 83 c2 01 add $0x1,%rdx + 42e2d8: 48 83 fa 40 cmp $0x40,%rdx + 42e2dc: 0f 84 23 fe ff ff je 42e105 <__strcmp_sse2_unaligned+0xb5> + 42e2e2: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax + 42e2e6: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx + 42e2ea: 84 c0 test %al,%al + 42e2ec: 75 e2 jne 42e2d0 <__strcmp_sse2_unaligned+0x280> + 42e2ee: 31 c0 xor %eax,%eax + 42e2f0: 29 c8 sub %ecx,%eax + 42e2f2: c3 retq + 42e2f3: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42e2fa: 00 00 00 + 42e2fd: 0f 1f 00 nopl (%rax) + +000000000042e300 <__memcmp_sse4_1>: + 42e300: 66 0f ef c0 pxor %xmm0,%xmm0 + 42e304: 48 83 fa 4f cmp $0x4f,%rdx + 42e308: 77 36 ja 42e340 <__memcmp_sse4_1+0x40> + 42e30a: 48 83 fa 01 cmp $0x1,%rdx + 42e30e: 74 20 je 42e330 <__memcmp_sse4_1+0x30> + 42e310: 48 01 d6 add %rdx,%rsi + 42e313: 48 01 d7 add %rdx,%rdi + 42e316: 4c 8d 1d 53 4f 07 00 lea 0x74f53(%rip),%r11 # 4a3270 + 42e31d: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 42e321: 4c 01 d9 add %r11,%rcx + 42e324: ff e1 jmpq *%rcx + 42e326: 0f 0b ud2 + 42e328: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42e32f: 00 + 42e330: 0f b6 07 movzbl (%rdi),%eax + 42e333: 0f b6 0e movzbl (%rsi),%ecx + 42e336: 29 c8 sub %ecx,%eax + 42e338: c3 retq + 42e339: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42e340: f3 0f 6f 0e movdqu (%rsi),%xmm1 + 42e344: f3 0f 6f 17 movdqu (%rdi),%xmm2 + 42e348: 66 0f ef d1 pxor %xmm1,%xmm2 + 42e34c: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e351: 0f 83 56 0b 00 00 jae 42eead <__memcmp_sse4_1+0xbad> + 42e357: 48 89 f1 mov %rsi,%rcx + 42e35a: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 42e35e: 48 83 c6 10 add $0x10,%rsi + 42e362: 48 29 f1 sub %rsi,%rcx + 42e365: 48 29 cf sub %rcx,%rdi + 42e368: 48 01 ca add %rcx,%rdx + 42e36b: 48 f7 c7 0f 00 00 00 test $0xf,%rdi + 42e372: 0f 84 08 05 00 00 je 42e880 <__memcmp_sse4_1+0x580> + 42e378: 48 81 fa 80 00 00 00 cmp $0x80,%rdx + 42e37f: 0f 87 b2 00 00 00 ja 42e437 <__memcmp_sse4_1+0x137> + 42e385: 48 83 ea 40 sub $0x40,%rdx + 42e389: f3 0f 6f 17 movdqu (%rdi),%xmm2 + 42e38d: 66 0f ef 16 pxor (%rsi),%xmm2 + 42e391: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e396: 0f 83 11 0b 00 00 jae 42eead <__memcmp_sse4_1+0xbad> + 42e39c: f3 0f 6f 57 10 movdqu 0x10(%rdi),%xmm2 + 42e3a1: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 + 42e3a6: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e3ab: 0f 83 f4 0a 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> + 42e3b1: f3 0f 6f 57 20 movdqu 0x20(%rdi),%xmm2 + 42e3b6: 66 0f ef 56 20 pxor 0x20(%rsi),%xmm2 + 42e3bb: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e3c0: 0f 83 d7 0a 00 00 jae 42ee9d <__memcmp_sse4_1+0xb9d> + 42e3c6: f3 0f 6f 57 30 movdqu 0x30(%rdi),%xmm2 + 42e3cb: 66 0f ef 56 30 pxor 0x30(%rsi),%xmm2 + 42e3d0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e3d5: 0f 83 b8 0a 00 00 jae 42ee93 <__memcmp_sse4_1+0xb93> + 42e3db: 48 83 fa 20 cmp $0x20,%rdx + 42e3df: 72 36 jb 42e417 <__memcmp_sse4_1+0x117> + 42e3e1: f3 0f 6f 57 40 movdqu 0x40(%rdi),%xmm2 + 42e3e6: 66 0f ef 56 40 pxor 0x40(%rsi),%xmm2 + 42e3eb: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e3f0: 0f 83 93 0a 00 00 jae 42ee89 <__memcmp_sse4_1+0xb89> + 42e3f6: f3 0f 6f 57 50 movdqu 0x50(%rdi),%xmm2 + 42e3fb: 66 0f ef 56 50 pxor 0x50(%rsi),%xmm2 + 42e400: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e405: 0f 83 74 0a 00 00 jae 42ee7f <__memcmp_sse4_1+0xb7f> + 42e40b: 48 83 ea 20 sub $0x20,%rdx + 42e40f: 48 83 c7 20 add $0x20,%rdi + 42e413: 48 83 c6 20 add $0x20,%rsi + 42e417: 48 83 c7 40 add $0x40,%rdi + 42e41b: 48 83 c6 40 add $0x40,%rsi + 42e41f: 48 01 d6 add %rdx,%rsi + 42e422: 48 01 d7 add %rdx,%rdi + 42e425: 4c 8d 1d 44 4e 07 00 lea 0x74e44(%rip),%r11 # 4a3270 + 42e42c: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 42e430: 4c 01 d9 add %r11,%rcx + 42e433: ff e1 jmpq *%rcx + 42e435: 0f 0b ud2 + 42e437: 48 81 fa 00 02 00 00 cmp $0x200,%rdx + 42e43e: 0f 87 2c 03 00 00 ja 42e770 <__memcmp_sse4_1+0x470> + 42e444: 48 81 fa 00 01 00 00 cmp $0x100,%rdx + 42e44b: 0f 87 17 01 00 00 ja 42e568 <__memcmp_sse4_1+0x268> + 42e451: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 42e458: f3 0f 6f 17 movdqu (%rdi),%xmm2 + 42e45c: 66 0f ef 16 pxor (%rsi),%xmm2 + 42e460: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e465: 0f 83 42 0a 00 00 jae 42eead <__memcmp_sse4_1+0xbad> + 42e46b: f3 0f 6f 57 10 movdqu 0x10(%rdi),%xmm2 + 42e470: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 + 42e475: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e47a: 0f 83 25 0a 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> + 42e480: f3 0f 6f 57 20 movdqu 0x20(%rdi),%xmm2 + 42e485: 66 0f ef 56 20 pxor 0x20(%rsi),%xmm2 + 42e48a: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e48f: 0f 83 08 0a 00 00 jae 42ee9d <__memcmp_sse4_1+0xb9d> + 42e495: f3 0f 6f 57 30 movdqu 0x30(%rdi),%xmm2 + 42e49a: 66 0f ef 56 30 pxor 0x30(%rsi),%xmm2 + 42e49f: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e4a4: 0f 83 e9 09 00 00 jae 42ee93 <__memcmp_sse4_1+0xb93> + 42e4aa: f3 0f 6f 57 40 movdqu 0x40(%rdi),%xmm2 + 42e4af: 66 0f ef 56 40 pxor 0x40(%rsi),%xmm2 + 42e4b4: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e4b9: 0f 83 ca 09 00 00 jae 42ee89 <__memcmp_sse4_1+0xb89> + 42e4bf: f3 0f 6f 57 50 movdqu 0x50(%rdi),%xmm2 + 42e4c4: 66 0f ef 56 50 pxor 0x50(%rsi),%xmm2 + 42e4c9: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e4ce: 0f 83 ab 09 00 00 jae 42ee7f <__memcmp_sse4_1+0xb7f> + 42e4d4: f3 0f 6f 57 60 movdqu 0x60(%rdi),%xmm2 + 42e4d9: 66 0f ef 56 60 pxor 0x60(%rsi),%xmm2 + 42e4de: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e4e3: 0f 83 8c 09 00 00 jae 42ee75 <__memcmp_sse4_1+0xb75> + 42e4e9: f3 0f 6f 57 70 movdqu 0x70(%rdi),%xmm2 + 42e4ee: 66 0f ef 56 70 pxor 0x70(%rsi),%xmm2 + 42e4f3: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e4f8: 0f 83 67 09 00 00 jae 42ee65 <__memcmp_sse4_1+0xb65> + 42e4fe: 48 81 c6 80 00 00 00 add $0x80,%rsi + 42e505: 48 81 c7 80 00 00 00 add $0x80,%rdi + 42e50c: 48 83 fa 40 cmp $0x40,%rdx + 42e510: 0f 83 6f fe ff ff jae 42e385 <__memcmp_sse4_1+0x85> + 42e516: 48 83 fa 20 cmp $0x20,%rdx + 42e51a: 72 34 jb 42e550 <__memcmp_sse4_1+0x250> + 42e51c: f3 0f 6f 17 movdqu (%rdi),%xmm2 + 42e520: 66 0f ef 16 pxor (%rsi),%xmm2 + 42e524: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e529: 0f 83 7e 09 00 00 jae 42eead <__memcmp_sse4_1+0xbad> + 42e52f: f3 0f 6f 57 10 movdqu 0x10(%rdi),%xmm2 + 42e534: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 + 42e539: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e53e: 0f 83 61 09 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> + 42e544: 48 83 ea 20 sub $0x20,%rdx + 42e548: 48 83 c7 20 add $0x20,%rdi + 42e54c: 48 83 c6 20 add $0x20,%rsi + 42e550: 48 01 d6 add %rdx,%rsi + 42e553: 48 01 d7 add %rdx,%rdi + 42e556: 4c 8d 1d 13 4d 07 00 lea 0x74d13(%rip),%r11 # 4a3270 + 42e55d: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 42e561: 4c 01 d9 add %r11,%rcx + 42e564: ff e1 jmpq *%rcx + 42e566: 0f 0b ud2 + 42e568: 48 81 ea 00 01 00 00 sub $0x100,%rdx + 42e56f: f3 0f 6f 17 movdqu (%rdi),%xmm2 + 42e573: 66 0f ef 16 pxor (%rsi),%xmm2 + 42e577: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e57c: 0f 83 2b 09 00 00 jae 42eead <__memcmp_sse4_1+0xbad> + 42e582: f3 0f 6f 57 10 movdqu 0x10(%rdi),%xmm2 + 42e587: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 + 42e58c: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e591: 0f 83 0e 09 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> + 42e597: f3 0f 6f 57 20 movdqu 0x20(%rdi),%xmm2 + 42e59c: 66 0f ef 56 20 pxor 0x20(%rsi),%xmm2 + 42e5a1: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e5a6: 0f 83 f1 08 00 00 jae 42ee9d <__memcmp_sse4_1+0xb9d> + 42e5ac: f3 0f 6f 57 30 movdqu 0x30(%rdi),%xmm2 + 42e5b1: 66 0f ef 56 30 pxor 0x30(%rsi),%xmm2 + 42e5b6: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e5bb: 0f 83 d2 08 00 00 jae 42ee93 <__memcmp_sse4_1+0xb93> + 42e5c1: f3 0f 6f 57 40 movdqu 0x40(%rdi),%xmm2 + 42e5c6: 66 0f ef 56 40 pxor 0x40(%rsi),%xmm2 + 42e5cb: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e5d0: 0f 83 b3 08 00 00 jae 42ee89 <__memcmp_sse4_1+0xb89> + 42e5d6: f3 0f 6f 57 50 movdqu 0x50(%rdi),%xmm2 + 42e5db: 66 0f ef 56 50 pxor 0x50(%rsi),%xmm2 + 42e5e0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e5e5: 0f 83 94 08 00 00 jae 42ee7f <__memcmp_sse4_1+0xb7f> + 42e5eb: f3 0f 6f 57 60 movdqu 0x60(%rdi),%xmm2 + 42e5f0: 66 0f ef 56 60 pxor 0x60(%rsi),%xmm2 + 42e5f5: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e5fa: 0f 83 75 08 00 00 jae 42ee75 <__memcmp_sse4_1+0xb75> + 42e600: f3 0f 6f 57 70 movdqu 0x70(%rdi),%xmm2 + 42e605: 66 0f ef 56 70 pxor 0x70(%rsi),%xmm2 + 42e60a: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e60f: 0f 83 50 08 00 00 jae 42ee65 <__memcmp_sse4_1+0xb65> + 42e615: f3 0f 6f 97 80 00 00 movdqu 0x80(%rdi),%xmm2 + 42e61c: 00 + 42e61d: 66 0f ef 96 80 00 00 pxor 0x80(%rsi),%xmm2 + 42e624: 00 + 42e625: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e62a: 0f 83 25 08 00 00 jae 42ee55 <__memcmp_sse4_1+0xb55> + 42e630: f3 0f 6f 97 90 00 00 movdqu 0x90(%rdi),%xmm2 + 42e637: 00 + 42e638: 66 0f ef 96 90 00 00 pxor 0x90(%rsi),%xmm2 + 42e63f: 00 + 42e640: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e645: 0f 83 fa 07 00 00 jae 42ee45 <__memcmp_sse4_1+0xb45> + 42e64b: f3 0f 6f 97 a0 00 00 movdqu 0xa0(%rdi),%xmm2 + 42e652: 00 + 42e653: 66 0f ef 96 a0 00 00 pxor 0xa0(%rsi),%xmm2 + 42e65a: 00 + 42e65b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e660: 0f 83 cf 07 00 00 jae 42ee35 <__memcmp_sse4_1+0xb35> + 42e666: f3 0f 6f 97 b0 00 00 movdqu 0xb0(%rdi),%xmm2 + 42e66d: 00 + 42e66e: 66 0f ef 96 b0 00 00 pxor 0xb0(%rsi),%xmm2 + 42e675: 00 + 42e676: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e67b: 0f 83 a1 07 00 00 jae 42ee22 <__memcmp_sse4_1+0xb22> + 42e681: f3 0f 6f 97 c0 00 00 movdqu 0xc0(%rdi),%xmm2 + 42e688: 00 + 42e689: 66 0f ef 96 c0 00 00 pxor 0xc0(%rsi),%xmm2 + 42e690: 00 + 42e691: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e696: 0f 83 73 07 00 00 jae 42ee0f <__memcmp_sse4_1+0xb0f> + 42e69c: f3 0f 6f 97 d0 00 00 movdqu 0xd0(%rdi),%xmm2 + 42e6a3: 00 + 42e6a4: 66 0f ef 96 d0 00 00 pxor 0xd0(%rsi),%xmm2 + 42e6ab: 00 + 42e6ac: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e6b1: 0f 83 45 07 00 00 jae 42edfc <__memcmp_sse4_1+0xafc> + 42e6b7: f3 0f 6f 97 e0 00 00 movdqu 0xe0(%rdi),%xmm2 + 42e6be: 00 + 42e6bf: 66 0f ef 96 e0 00 00 pxor 0xe0(%rsi),%xmm2 + 42e6c6: 00 + 42e6c7: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e6cc: 0f 83 17 07 00 00 jae 42ede9 <__memcmp_sse4_1+0xae9> + 42e6d2: f3 0f 6f 97 f0 00 00 movdqu 0xf0(%rdi),%xmm2 + 42e6d9: 00 + 42e6da: 66 0f ef 96 f0 00 00 pxor 0xf0(%rsi),%xmm2 + 42e6e1: 00 + 42e6e2: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e6e7: 0f 83 e9 06 00 00 jae 42edd6 <__memcmp_sse4_1+0xad6> + 42e6ed: 48 81 c6 00 01 00 00 add $0x100,%rsi + 42e6f4: 48 81 c7 00 01 00 00 add $0x100,%rdi + 42e6fb: 48 81 fa 80 00 00 00 cmp $0x80,%rdx + 42e702: 0f 83 49 fd ff ff jae 42e451 <__memcmp_sse4_1+0x151> + 42e708: 48 83 fa 40 cmp $0x40,%rdx + 42e70c: 0f 83 73 fc ff ff jae 42e385 <__memcmp_sse4_1+0x85> + 42e712: 48 83 fa 20 cmp $0x20,%rdx + 42e716: 72 34 jb 42e74c <__memcmp_sse4_1+0x44c> + 42e718: f3 0f 6f 17 movdqu (%rdi),%xmm2 + 42e71c: 66 0f ef 16 pxor (%rsi),%xmm2 + 42e720: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e725: 0f 83 82 07 00 00 jae 42eead <__memcmp_sse4_1+0xbad> + 42e72b: f3 0f 6f 57 10 movdqu 0x10(%rdi),%xmm2 + 42e730: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 + 42e735: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e73a: 0f 83 65 07 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> + 42e740: 48 83 ea 20 sub $0x20,%rdx + 42e744: 48 83 c7 20 add $0x20,%rdi + 42e748: 48 83 c6 20 add $0x20,%rsi + 42e74c: 48 01 d6 add %rdx,%rsi + 42e74f: 48 01 d7 add %rdx,%rdi + 42e752: 4c 8d 1d 17 4b 07 00 lea 0x74b17(%rip),%r11 # 4a3270 + 42e759: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 42e75d: 4c 01 d9 add %r11,%rcx + 42e760: ff e1 jmpq *%rcx + 42e762: 0f 0b ud2 + 42e764: 66 90 xchg %ax,%ax + 42e766: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42e76d: 00 00 00 + 42e770: 4c 8b 05 59 c9 29 00 mov 0x29c959(%rip),%r8 # 6cb0d0 <__x86_data_cache_size_half> + 42e777: 4d 89 c1 mov %r8,%r9 + 42e77a: 49 d1 e8 shr %r8 + 42e77d: 4d 01 c8 add %r9,%r8 + 42e780: 4c 39 c2 cmp %r8,%rdx + 42e783: 77 76 ja 42e7fb <__memcmp_sse4_1+0x4fb> + 42e785: 48 83 ea 40 sub $0x40,%rdx + 42e789: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42e790: f3 0f 6f 17 movdqu (%rdi),%xmm2 + 42e794: 66 0f ef 16 pxor (%rsi),%xmm2 + 42e798: 66 0f 6f ca movdqa %xmm2,%xmm1 + 42e79c: f3 0f 6f 5f 10 movdqu 0x10(%rdi),%xmm3 + 42e7a1: 66 0f ef 5e 10 pxor 0x10(%rsi),%xmm3 + 42e7a6: 66 0f eb cb por %xmm3,%xmm1 + 42e7aa: f3 0f 6f 67 20 movdqu 0x20(%rdi),%xmm4 + 42e7af: 66 0f ef 66 20 pxor 0x20(%rsi),%xmm4 + 42e7b4: 66 0f eb cc por %xmm4,%xmm1 + 42e7b8: f3 0f 6f 6f 30 movdqu 0x30(%rdi),%xmm5 + 42e7bd: 66 0f ef 6e 30 pxor 0x30(%rsi),%xmm5 + 42e7c2: 66 0f eb cd por %xmm5,%xmm1 + 42e7c6: 66 0f 38 17 c1 ptest %xmm1,%xmm0 + 42e7cb: 0f 83 bf 05 00 00 jae 42ed90 <__memcmp_sse4_1+0xa90> + 42e7d1: 48 83 c6 40 add $0x40,%rsi + 42e7d5: 48 83 c7 40 add $0x40,%rdi + 42e7d9: 48 83 ea 40 sub $0x40,%rdx + 42e7dd: 73 b1 jae 42e790 <__memcmp_sse4_1+0x490> + 42e7df: 48 83 c2 40 add $0x40,%rdx + 42e7e3: 48 01 d6 add %rdx,%rsi + 42e7e6: 48 01 d7 add %rdx,%rdi + 42e7e9: 4c 8d 1d 80 4a 07 00 lea 0x74a80(%rip),%r11 # 4a3270 + 42e7f0: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 42e7f4: 4c 01 d9 add %r11,%rcx + 42e7f7: ff e1 jmpq *%rcx + 42e7f9: 0f 0b ud2 + 42e7fb: 48 83 ea 40 sub $0x40,%rdx + 42e7ff: 90 nop + 42e800: 0f 18 87 c0 01 00 00 prefetchnta 0x1c0(%rdi) + 42e807: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 42e80e: f3 0f 6f 17 movdqu (%rdi),%xmm2 + 42e812: 66 0f ef 16 pxor (%rsi),%xmm2 + 42e816: 66 0f 6f ca movdqa %xmm2,%xmm1 + 42e81a: f3 0f 6f 5f 10 movdqu 0x10(%rdi),%xmm3 + 42e81f: 66 0f ef 5e 10 pxor 0x10(%rsi),%xmm3 + 42e824: 66 0f eb cb por %xmm3,%xmm1 + 42e828: f3 0f 6f 67 20 movdqu 0x20(%rdi),%xmm4 + 42e82d: 66 0f ef 66 20 pxor 0x20(%rsi),%xmm4 + 42e832: 66 0f eb cc por %xmm4,%xmm1 + 42e836: f3 0f 6f 6f 30 movdqu 0x30(%rdi),%xmm5 + 42e83b: 66 0f ef 6e 30 pxor 0x30(%rsi),%xmm5 + 42e840: 66 0f eb cd por %xmm5,%xmm1 + 42e844: 66 0f 38 17 c1 ptest %xmm1,%xmm0 + 42e849: 0f 83 41 05 00 00 jae 42ed90 <__memcmp_sse4_1+0xa90> + 42e84f: 48 83 c6 40 add $0x40,%rsi + 42e853: 48 83 c7 40 add $0x40,%rdi + 42e857: 48 83 ea 40 sub $0x40,%rdx + 42e85b: 73 a3 jae 42e800 <__memcmp_sse4_1+0x500> + 42e85d: 48 83 c2 40 add $0x40,%rdx + 42e861: 48 01 d6 add %rdx,%rsi + 42e864: 48 01 d7 add %rdx,%rdi + 42e867: 4c 8d 1d 02 4a 07 00 lea 0x74a02(%rip),%r11 # 4a3270 + 42e86e: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 42e872: 4c 01 d9 add %r11,%rcx + 42e875: ff e1 jmpq *%rcx + 42e877: 0f 0b ud2 + 42e879: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42e880: 48 81 fa 80 00 00 00 cmp $0x80,%rdx + 42e887: 0f 87 b3 00 00 00 ja 42e940 <__memcmp_sse4_1+0x640> + 42e88d: 48 83 ea 40 sub $0x40,%rdx + 42e891: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42e895: 66 0f ef 16 pxor (%rsi),%xmm2 + 42e899: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e89e: 0f 83 09 06 00 00 jae 42eead <__memcmp_sse4_1+0xbad> + 42e8a4: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 + 42e8a9: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 + 42e8ae: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e8b3: 0f 83 ec 05 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> + 42e8b9: 66 0f 6f 57 20 movdqa 0x20(%rdi),%xmm2 + 42e8be: 66 0f ef 56 20 pxor 0x20(%rsi),%xmm2 + 42e8c3: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e8c8: 0f 83 cf 05 00 00 jae 42ee9d <__memcmp_sse4_1+0xb9d> + 42e8ce: 66 0f 6f 57 30 movdqa 0x30(%rdi),%xmm2 + 42e8d3: 66 0f ef 56 30 pxor 0x30(%rsi),%xmm2 + 42e8d8: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e8dd: 0f 83 b0 05 00 00 jae 42ee93 <__memcmp_sse4_1+0xb93> + 42e8e3: 48 83 fa 20 cmp $0x20,%rdx + 42e8e7: 72 36 jb 42e91f <__memcmp_sse4_1+0x61f> + 42e8e9: 66 0f 6f 57 40 movdqa 0x40(%rdi),%xmm2 + 42e8ee: 66 0f ef 56 40 pxor 0x40(%rsi),%xmm2 + 42e8f3: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e8f8: 0f 83 8b 05 00 00 jae 42ee89 <__memcmp_sse4_1+0xb89> + 42e8fe: 66 0f 6f 57 50 movdqa 0x50(%rdi),%xmm2 + 42e903: 66 0f ef 56 50 pxor 0x50(%rsi),%xmm2 + 42e908: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e90d: 0f 83 6c 05 00 00 jae 42ee7f <__memcmp_sse4_1+0xb7f> + 42e913: 48 83 ea 20 sub $0x20,%rdx + 42e917: 48 83 c7 20 add $0x20,%rdi + 42e91b: 48 83 c6 20 add $0x20,%rsi + 42e91f: 48 83 c7 40 add $0x40,%rdi + 42e923: 48 83 c6 40 add $0x40,%rsi + 42e927: 48 01 d6 add %rdx,%rsi + 42e92a: 48 01 d7 add %rdx,%rdi + 42e92d: 4c 8d 1d 3c 49 07 00 lea 0x7493c(%rip),%r11 # 4a3270 + 42e934: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 42e938: 4c 01 d9 add %r11,%rcx + 42e93b: ff e1 jmpq *%rcx + 42e93d: 0f 0b ud2 + 42e93f: 90 nop + 42e940: 48 81 fa 00 02 00 00 cmp $0x200,%rdx + 42e947: 0f 87 33 03 00 00 ja 42ec80 <__memcmp_sse4_1+0x980> + 42e94d: 48 81 fa 00 01 00 00 cmp $0x100,%rdx + 42e954: 0f 87 26 01 00 00 ja 42ea80 <__memcmp_sse4_1+0x780> + 42e95a: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 42e961: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42e965: 66 0f ef 16 pxor (%rsi),%xmm2 + 42e969: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e96e: 0f 83 39 05 00 00 jae 42eead <__memcmp_sse4_1+0xbad> + 42e974: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 + 42e979: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 + 42e97e: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e983: 0f 83 1c 05 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> + 42e989: 66 0f 6f 57 20 movdqa 0x20(%rdi),%xmm2 + 42e98e: 66 0f ef 56 20 pxor 0x20(%rsi),%xmm2 + 42e993: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e998: 0f 83 ff 04 00 00 jae 42ee9d <__memcmp_sse4_1+0xb9d> + 42e99e: 66 0f 6f 57 30 movdqa 0x30(%rdi),%xmm2 + 42e9a3: 66 0f ef 56 30 pxor 0x30(%rsi),%xmm2 + 42e9a8: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e9ad: 0f 83 e0 04 00 00 jae 42ee93 <__memcmp_sse4_1+0xb93> + 42e9b3: 66 0f 6f 57 40 movdqa 0x40(%rdi),%xmm2 + 42e9b8: 66 0f ef 56 40 pxor 0x40(%rsi),%xmm2 + 42e9bd: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e9c2: 0f 83 c1 04 00 00 jae 42ee89 <__memcmp_sse4_1+0xb89> + 42e9c8: 66 0f 6f 57 50 movdqa 0x50(%rdi),%xmm2 + 42e9cd: 66 0f ef 56 50 pxor 0x50(%rsi),%xmm2 + 42e9d2: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e9d7: 0f 83 a2 04 00 00 jae 42ee7f <__memcmp_sse4_1+0xb7f> + 42e9dd: 66 0f 6f 57 60 movdqa 0x60(%rdi),%xmm2 + 42e9e2: 66 0f ef 56 60 pxor 0x60(%rsi),%xmm2 + 42e9e7: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42e9ec: 0f 83 83 04 00 00 jae 42ee75 <__memcmp_sse4_1+0xb75> + 42e9f2: 66 0f 6f 57 70 movdqa 0x70(%rdi),%xmm2 + 42e9f7: 66 0f ef 56 70 pxor 0x70(%rsi),%xmm2 + 42e9fc: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42ea01: 0f 83 5e 04 00 00 jae 42ee65 <__memcmp_sse4_1+0xb65> + 42ea07: 48 81 c6 80 00 00 00 add $0x80,%rsi + 42ea0e: 48 81 c7 80 00 00 00 add $0x80,%rdi + 42ea15: 48 83 fa 40 cmp $0x40,%rdx + 42ea19: 0f 83 6e fe ff ff jae 42e88d <__memcmp_sse4_1+0x58d> + 42ea1f: 48 83 fa 20 cmp $0x20,%rdx + 42ea23: 72 34 jb 42ea59 <__memcmp_sse4_1+0x759> + 42ea25: f3 0f 6f 17 movdqu (%rdi),%xmm2 + 42ea29: 66 0f ef 16 pxor (%rsi),%xmm2 + 42ea2d: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42ea32: 0f 83 75 04 00 00 jae 42eead <__memcmp_sse4_1+0xbad> + 42ea38: f3 0f 6f 57 10 movdqu 0x10(%rdi),%xmm2 + 42ea3d: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 + 42ea42: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42ea47: 0f 83 58 04 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> + 42ea4d: 48 83 ea 20 sub $0x20,%rdx + 42ea51: 48 83 c7 20 add $0x20,%rdi + 42ea55: 48 83 c6 20 add $0x20,%rsi + 42ea59: 48 01 d6 add %rdx,%rsi + 42ea5c: 48 01 d7 add %rdx,%rdi + 42ea5f: 4c 8d 1d 0a 48 07 00 lea 0x7480a(%rip),%r11 # 4a3270 + 42ea66: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 42ea6a: 4c 01 d9 add %r11,%rcx + 42ea6d: ff e1 jmpq *%rcx + 42ea6f: 0f 0b ud2 + 42ea71: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42ea76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42ea7d: 00 00 00 + 42ea80: 48 81 ea 00 01 00 00 sub $0x100,%rdx + 42ea87: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42ea8b: 66 0f ef 16 pxor (%rsi),%xmm2 + 42ea8f: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42ea94: 0f 83 13 04 00 00 jae 42eead <__memcmp_sse4_1+0xbad> + 42ea9a: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 + 42ea9f: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 + 42eaa4: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42eaa9: 0f 83 f6 03 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> + 42eaaf: 66 0f 6f 57 20 movdqa 0x20(%rdi),%xmm2 + 42eab4: 66 0f ef 56 20 pxor 0x20(%rsi),%xmm2 + 42eab9: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42eabe: 0f 83 d9 03 00 00 jae 42ee9d <__memcmp_sse4_1+0xb9d> + 42eac4: 66 0f 6f 57 30 movdqa 0x30(%rdi),%xmm2 + 42eac9: 66 0f ef 56 30 pxor 0x30(%rsi),%xmm2 + 42eace: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42ead3: 0f 83 ba 03 00 00 jae 42ee93 <__memcmp_sse4_1+0xb93> + 42ead9: 66 0f 6f 57 40 movdqa 0x40(%rdi),%xmm2 + 42eade: 66 0f ef 56 40 pxor 0x40(%rsi),%xmm2 + 42eae3: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42eae8: 0f 83 9b 03 00 00 jae 42ee89 <__memcmp_sse4_1+0xb89> + 42eaee: 66 0f 6f 57 50 movdqa 0x50(%rdi),%xmm2 + 42eaf3: 66 0f ef 56 50 pxor 0x50(%rsi),%xmm2 + 42eaf8: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42eafd: 0f 83 7c 03 00 00 jae 42ee7f <__memcmp_sse4_1+0xb7f> + 42eb03: 66 0f 6f 57 60 movdqa 0x60(%rdi),%xmm2 + 42eb08: 66 0f ef 56 60 pxor 0x60(%rsi),%xmm2 + 42eb0d: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42eb12: 0f 83 5d 03 00 00 jae 42ee75 <__memcmp_sse4_1+0xb75> + 42eb18: 66 0f 6f 57 70 movdqa 0x70(%rdi),%xmm2 + 42eb1d: 66 0f ef 56 70 pxor 0x70(%rsi),%xmm2 + 42eb22: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42eb27: 0f 83 38 03 00 00 jae 42ee65 <__memcmp_sse4_1+0xb65> + 42eb2d: 66 0f 6f 97 80 00 00 movdqa 0x80(%rdi),%xmm2 + 42eb34: 00 + 42eb35: 66 0f ef 96 80 00 00 pxor 0x80(%rsi),%xmm2 + 42eb3c: 00 + 42eb3d: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42eb42: 0f 83 0d 03 00 00 jae 42ee55 <__memcmp_sse4_1+0xb55> + 42eb48: 66 0f 6f 97 90 00 00 movdqa 0x90(%rdi),%xmm2 + 42eb4f: 00 + 42eb50: 66 0f ef 96 90 00 00 pxor 0x90(%rsi),%xmm2 + 42eb57: 00 + 42eb58: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42eb5d: 0f 83 e2 02 00 00 jae 42ee45 <__memcmp_sse4_1+0xb45> + 42eb63: 66 0f 6f 97 a0 00 00 movdqa 0xa0(%rdi),%xmm2 + 42eb6a: 00 + 42eb6b: 66 0f ef 96 a0 00 00 pxor 0xa0(%rsi),%xmm2 + 42eb72: 00 + 42eb73: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42eb78: 0f 83 b7 02 00 00 jae 42ee35 <__memcmp_sse4_1+0xb35> + 42eb7e: 66 0f 6f 97 b0 00 00 movdqa 0xb0(%rdi),%xmm2 + 42eb85: 00 + 42eb86: 66 0f ef 96 b0 00 00 pxor 0xb0(%rsi),%xmm2 + 42eb8d: 00 + 42eb8e: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42eb93: 0f 83 89 02 00 00 jae 42ee22 <__memcmp_sse4_1+0xb22> + 42eb99: 66 0f 6f 97 c0 00 00 movdqa 0xc0(%rdi),%xmm2 + 42eba0: 00 + 42eba1: 66 0f ef 96 c0 00 00 pxor 0xc0(%rsi),%xmm2 + 42eba8: 00 + 42eba9: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42ebae: 0f 83 5b 02 00 00 jae 42ee0f <__memcmp_sse4_1+0xb0f> + 42ebb4: 66 0f 6f 97 d0 00 00 movdqa 0xd0(%rdi),%xmm2 + 42ebbb: 00 + 42ebbc: 66 0f ef 96 d0 00 00 pxor 0xd0(%rsi),%xmm2 + 42ebc3: 00 + 42ebc4: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42ebc9: 0f 83 2d 02 00 00 jae 42edfc <__memcmp_sse4_1+0xafc> + 42ebcf: 66 0f 6f 97 e0 00 00 movdqa 0xe0(%rdi),%xmm2 + 42ebd6: 00 + 42ebd7: 66 0f ef 96 e0 00 00 pxor 0xe0(%rsi),%xmm2 + 42ebde: 00 + 42ebdf: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42ebe4: 0f 83 ff 01 00 00 jae 42ede9 <__memcmp_sse4_1+0xae9> + 42ebea: 66 0f 6f 97 f0 00 00 movdqa 0xf0(%rdi),%xmm2 + 42ebf1: 00 + 42ebf2: 66 0f ef 96 f0 00 00 pxor 0xf0(%rsi),%xmm2 + 42ebf9: 00 + 42ebfa: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42ebff: 0f 83 d1 01 00 00 jae 42edd6 <__memcmp_sse4_1+0xad6> + 42ec05: 48 81 c6 00 01 00 00 add $0x100,%rsi + 42ec0c: 48 81 c7 00 01 00 00 add $0x100,%rdi + 42ec13: 48 81 fa 80 00 00 00 cmp $0x80,%rdx + 42ec1a: 0f 83 3a fd ff ff jae 42e95a <__memcmp_sse4_1+0x65a> + 42ec20: 48 83 fa 40 cmp $0x40,%rdx + 42ec24: 0f 83 63 fc ff ff jae 42e88d <__memcmp_sse4_1+0x58d> + 42ec2a: 48 83 fa 20 cmp $0x20,%rdx + 42ec2e: 72 34 jb 42ec64 <__memcmp_sse4_1+0x964> + 42ec30: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42ec34: 66 0f ef 16 pxor (%rsi),%xmm2 + 42ec38: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42ec3d: 0f 83 6a 02 00 00 jae 42eead <__memcmp_sse4_1+0xbad> + 42ec43: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 + 42ec48: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 + 42ec4d: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42ec52: 0f 83 4d 02 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> + 42ec58: 48 83 ea 20 sub $0x20,%rdx + 42ec5c: 48 83 c7 20 add $0x20,%rdi + 42ec60: 48 83 c6 20 add $0x20,%rsi + 42ec64: 48 01 d6 add %rdx,%rsi + 42ec67: 48 01 d7 add %rdx,%rdi + 42ec6a: 4c 8d 1d ff 45 07 00 lea 0x745ff(%rip),%r11 # 4a3270 + 42ec71: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 42ec75: 4c 01 d9 add %r11,%rcx + 42ec78: ff e1 jmpq *%rcx + 42ec7a: 0f 0b ud2 + 42ec7c: 0f 1f 40 00 nopl 0x0(%rax) + 42ec80: 4c 8b 05 49 c4 29 00 mov 0x29c449(%rip),%r8 # 6cb0d0 <__x86_data_cache_size_half> + 42ec87: 4d 89 c1 mov %r8,%r9 + 42ec8a: 49 d1 e8 shr %r8 + 42ec8d: 4d 01 c8 add %r9,%r8 + 42ec90: 4c 39 c2 cmp %r8,%rdx + 42ec93: 77 76 ja 42ed0b <__memcmp_sse4_1+0xa0b> + 42ec95: 48 83 ea 40 sub $0x40,%rdx + 42ec99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42eca0: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42eca4: 66 0f ef 16 pxor (%rsi),%xmm2 + 42eca8: 66 0f 6f ca movdqa %xmm2,%xmm1 + 42ecac: 66 0f 6f 5f 10 movdqa 0x10(%rdi),%xmm3 + 42ecb1: 66 0f ef 5e 10 pxor 0x10(%rsi),%xmm3 + 42ecb6: 66 0f eb cb por %xmm3,%xmm1 + 42ecba: 66 0f 6f 67 20 movdqa 0x20(%rdi),%xmm4 + 42ecbf: 66 0f ef 66 20 pxor 0x20(%rsi),%xmm4 + 42ecc4: 66 0f eb cc por %xmm4,%xmm1 + 42ecc8: 66 0f 6f 6f 30 movdqa 0x30(%rdi),%xmm5 + 42eccd: 66 0f ef 6e 30 pxor 0x30(%rsi),%xmm5 + 42ecd2: 66 0f eb cd por %xmm5,%xmm1 + 42ecd6: 66 0f 38 17 c1 ptest %xmm1,%xmm0 + 42ecdb: 0f 83 af 00 00 00 jae 42ed90 <__memcmp_sse4_1+0xa90> + 42ece1: 48 83 c6 40 add $0x40,%rsi + 42ece5: 48 83 c7 40 add $0x40,%rdi + 42ece9: 48 83 ea 40 sub $0x40,%rdx + 42eced: 73 b1 jae 42eca0 <__memcmp_sse4_1+0x9a0> + 42ecef: 48 83 c2 40 add $0x40,%rdx + 42ecf3: 48 01 d6 add %rdx,%rsi + 42ecf6: 48 01 d7 add %rdx,%rdi + 42ecf9: 4c 8d 1d 70 45 07 00 lea 0x74570(%rip),%r11 # 4a3270 + 42ed00: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 42ed04: 4c 01 d9 add %r11,%rcx + 42ed07: ff e1 jmpq *%rcx + 42ed09: 0f 0b ud2 + 42ed0b: 48 83 ea 40 sub $0x40,%rdx + 42ed0f: 90 nop + 42ed10: 0f 18 87 c0 01 00 00 prefetchnta 0x1c0(%rdi) + 42ed17: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 42ed1e: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 42ed22: 66 0f ef 16 pxor (%rsi),%xmm2 + 42ed26: 66 0f 6f ca movdqa %xmm2,%xmm1 + 42ed2a: 66 0f 6f 5f 10 movdqa 0x10(%rdi),%xmm3 + 42ed2f: 66 0f ef 5e 10 pxor 0x10(%rsi),%xmm3 + 42ed34: 66 0f eb cb por %xmm3,%xmm1 + 42ed38: 66 0f 6f 67 20 movdqa 0x20(%rdi),%xmm4 + 42ed3d: 66 0f ef 66 20 pxor 0x20(%rsi),%xmm4 + 42ed42: 66 0f eb cc por %xmm4,%xmm1 + 42ed46: 66 0f 6f 6f 30 movdqa 0x30(%rdi),%xmm5 + 42ed4b: 66 0f ef 6e 30 pxor 0x30(%rsi),%xmm5 + 42ed50: 66 0f eb cd por %xmm5,%xmm1 + 42ed54: 66 0f 38 17 c1 ptest %xmm1,%xmm0 + 42ed59: 73 35 jae 42ed90 <__memcmp_sse4_1+0xa90> + 42ed5b: 48 83 c6 40 add $0x40,%rsi + 42ed5f: 48 83 c7 40 add $0x40,%rdi + 42ed63: 48 83 ea 40 sub $0x40,%rdx + 42ed67: 73 a7 jae 42ed10 <__memcmp_sse4_1+0xa10> + 42ed69: 48 83 c2 40 add $0x40,%rdx + 42ed6d: 48 01 d6 add %rdx,%rsi + 42ed70: 48 01 d7 add %rdx,%rdi + 42ed73: 4c 8d 1d f6 44 07 00 lea 0x744f6(%rip),%r11 # 4a3270 + 42ed7a: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 42ed7e: 4c 01 d9 add %r11,%rcx + 42ed81: ff e1 jmpq *%rcx + 42ed83: 0f 0b ud2 + 42ed85: 90 nop + 42ed86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42ed8d: 00 00 00 + 42ed90: 48 83 c7 10 add $0x10,%rdi + 42ed94: 48 83 c6 10 add $0x10,%rsi + 42ed98: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42ed9d: 0f 83 12 01 00 00 jae 42eeb5 <__memcmp_sse4_1+0xbb5> + 42eda3: 48 83 c7 10 add $0x10,%rdi + 42eda7: 48 83 c6 10 add $0x10,%rsi + 42edab: 66 0f 38 17 c3 ptest %xmm3,%xmm0 + 42edb0: 0f 83 ff 00 00 00 jae 42eeb5 <__memcmp_sse4_1+0xbb5> + 42edb6: 48 83 c7 10 add $0x10,%rdi + 42edba: 48 83 c6 10 add $0x10,%rsi + 42edbe: 66 0f 38 17 c4 ptest %xmm4,%xmm0 + 42edc3: 0f 83 ec 00 00 00 jae 42eeb5 <__memcmp_sse4_1+0xbb5> + 42edc9: 48 83 c7 10 add $0x10,%rdi + 42edcd: 48 83 c6 10 add $0x10,%rsi + 42edd1: e9 df 00 00 00 jmpq 42eeb5 <__memcmp_sse4_1+0xbb5> + 42edd6: 48 81 c7 00 01 00 00 add $0x100,%rdi + 42eddd: 48 81 c6 00 01 00 00 add $0x100,%rsi + 42ede4: e9 cc 00 00 00 jmpq 42eeb5 <__memcmp_sse4_1+0xbb5> + 42ede9: 48 81 c7 f0 00 00 00 add $0xf0,%rdi + 42edf0: 48 81 c6 f0 00 00 00 add $0xf0,%rsi + 42edf7: e9 b9 00 00 00 jmpq 42eeb5 <__memcmp_sse4_1+0xbb5> + 42edfc: 48 81 c7 e0 00 00 00 add $0xe0,%rdi + 42ee03: 48 81 c6 e0 00 00 00 add $0xe0,%rsi + 42ee0a: e9 a6 00 00 00 jmpq 42eeb5 <__memcmp_sse4_1+0xbb5> + 42ee0f: 48 81 c7 d0 00 00 00 add $0xd0,%rdi + 42ee16: 48 81 c6 d0 00 00 00 add $0xd0,%rsi + 42ee1d: e9 93 00 00 00 jmpq 42eeb5 <__memcmp_sse4_1+0xbb5> + 42ee22: 48 81 c7 c0 00 00 00 add $0xc0,%rdi + 42ee29: 48 81 c6 c0 00 00 00 add $0xc0,%rsi + 42ee30: e9 80 00 00 00 jmpq 42eeb5 <__memcmp_sse4_1+0xbb5> + 42ee35: 48 81 c7 b0 00 00 00 add $0xb0,%rdi + 42ee3c: 48 81 c6 b0 00 00 00 add $0xb0,%rsi + 42ee43: eb 70 jmp 42eeb5 <__memcmp_sse4_1+0xbb5> + 42ee45: 48 81 c7 a0 00 00 00 add $0xa0,%rdi + 42ee4c: 48 81 c6 a0 00 00 00 add $0xa0,%rsi + 42ee53: eb 60 jmp 42eeb5 <__memcmp_sse4_1+0xbb5> + 42ee55: 48 81 c7 90 00 00 00 add $0x90,%rdi + 42ee5c: 48 81 c6 90 00 00 00 add $0x90,%rsi + 42ee63: eb 50 jmp 42eeb5 <__memcmp_sse4_1+0xbb5> + 42ee65: 48 81 c7 80 00 00 00 add $0x80,%rdi + 42ee6c: 48 81 c6 80 00 00 00 add $0x80,%rsi + 42ee73: eb 40 jmp 42eeb5 <__memcmp_sse4_1+0xbb5> + 42ee75: 48 83 c7 70 add $0x70,%rdi + 42ee79: 48 83 c6 70 add $0x70,%rsi + 42ee7d: eb 36 jmp 42eeb5 <__memcmp_sse4_1+0xbb5> + 42ee7f: 48 83 c7 60 add $0x60,%rdi + 42ee83: 48 83 c6 60 add $0x60,%rsi + 42ee87: eb 2c jmp 42eeb5 <__memcmp_sse4_1+0xbb5> + 42ee89: 48 83 c7 50 add $0x50,%rdi + 42ee8d: 48 83 c6 50 add $0x50,%rsi + 42ee91: eb 22 jmp 42eeb5 <__memcmp_sse4_1+0xbb5> + 42ee93: 48 83 c7 40 add $0x40,%rdi + 42ee97: 48 83 c6 40 add $0x40,%rsi + 42ee9b: eb 18 jmp 42eeb5 <__memcmp_sse4_1+0xbb5> + 42ee9d: 48 83 c7 10 add $0x10,%rdi + 42eea1: 48 83 c6 10 add $0x10,%rsi + 42eea5: 48 83 c7 10 add $0x10,%rdi + 42eea9: 48 83 c6 10 add $0x10,%rsi + 42eead: 48 83 c7 10 add $0x10,%rdi + 42eeb1: 48 83 c6 10 add $0x10,%rsi + 42eeb5: 48 8b 47 f0 mov -0x10(%rdi),%rax + 42eeb9: 48 8b 4e f0 mov -0x10(%rsi),%rcx + 42eebd: 48 39 c1 cmp %rax,%rcx + 42eec0: 0f 85 3d 0a 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42eec6: 48 8b 47 f8 mov -0x8(%rdi),%rax + 42eeca: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 42eece: 48 39 c1 cmp %rax,%rcx + 42eed1: 0f 85 2c 0a 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42eed7: 31 c0 xor %eax,%eax + 42eed9: c3 retq + 42eeda: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 42eee0: 48 8b 47 f4 mov -0xc(%rdi),%rax + 42eee4: 48 8b 4e f4 mov -0xc(%rsi),%rcx + 42eee8: 48 39 c1 cmp %rax,%rcx + 42eeeb: 0f 85 12 0a 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42eef1: 8b 4e fc mov -0x4(%rsi),%ecx + 42eef4: 8b 47 fc mov -0x4(%rdi),%eax + 42eef7: 39 c1 cmp %eax,%ecx + 42eef9: 0f 85 10 0a 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> + 42eeff: 31 c0 xor %eax,%eax + 42ef01: c3 retq + 42ef02: 0f 1f 40 00 nopl 0x0(%rax) + 42ef06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42ef0d: 00 00 00 + 42ef10: f3 0f 6f 4f bf movdqu -0x41(%rdi),%xmm1 + 42ef15: f3 0f 6f 56 bf movdqu -0x41(%rsi),%xmm2 + 42ef1a: b2 bf mov $0xbf,%dl + 42ef1c: 66 0f ef d1 pxor %xmm1,%xmm2 + 42ef20: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42ef25: 0f 83 bd 09 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42ef2b: f3 0f 6f 4f cf movdqu -0x31(%rdi),%xmm1 + 42ef30: f3 0f 6f 56 cf movdqu -0x31(%rsi),%xmm2 + 42ef35: b2 cf mov $0xcf,%dl + 42ef37: 66 0f ef d1 pxor %xmm1,%xmm2 + 42ef3b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42ef40: 0f 83 a2 09 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42ef46: f3 0f 6f 4f df movdqu -0x21(%rdi),%xmm1 + 42ef4b: f3 0f 6f 56 df movdqu -0x21(%rsi),%xmm2 + 42ef50: b2 df mov $0xdf,%dl + 42ef52: 66 0f ef d1 pxor %xmm1,%xmm2 + 42ef56: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42ef5b: 0f 83 87 09 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42ef61: 48 8b 47 ef mov -0x11(%rdi),%rax + 42ef65: 48 8b 4e ef mov -0x11(%rsi),%rcx + 42ef69: 48 39 c1 cmp %rax,%rcx + 42ef6c: 0f 85 91 09 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42ef72: 48 8b 47 f7 mov -0x9(%rdi),%rax + 42ef76: 48 8b 4e f7 mov -0x9(%rsi),%rcx + 42ef7a: 48 39 c1 cmp %rax,%rcx + 42ef7d: 0f 85 80 09 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42ef83: 0f b6 47 ff movzbl -0x1(%rdi),%eax + 42ef87: 0f b6 56 ff movzbl -0x1(%rsi),%edx + 42ef8b: 29 d0 sub %edx,%eax + 42ef8d: c3 retq + 42ef8e: 66 90 xchg %ax,%ax + 42ef90: 48 8b 47 f3 mov -0xd(%rdi),%rax + 42ef94: 48 8b 4e f3 mov -0xd(%rsi),%rcx + 42ef98: 48 39 c1 cmp %rax,%rcx + 42ef9b: 0f 85 62 09 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42efa1: 48 8b 47 f8 mov -0x8(%rdi),%rax + 42efa5: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 42efa9: 48 39 c1 cmp %rax,%rcx + 42efac: 0f 85 51 09 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42efb2: 31 c0 xor %eax,%eax + 42efb4: c3 retq + 42efb5: 90 nop + 42efb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42efbd: 00 00 00 + 42efc0: 8b 47 fb mov -0x5(%rdi),%eax + 42efc3: 8b 4e fb mov -0x5(%rsi),%ecx + 42efc6: 39 c1 cmp %eax,%ecx + 42efc8: 0f 85 41 09 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> + 42efce: 0f b6 47 ff movzbl -0x1(%rdi),%eax + 42efd2: 0f b6 56 ff movzbl -0x1(%rsi),%edx + 42efd6: 29 d0 sub %edx,%eax + 42efd8: c3 retq + 42efd9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42efe0: f3 0f 6f 4f be movdqu -0x42(%rdi),%xmm1 + 42efe5: f3 0f 6f 56 be movdqu -0x42(%rsi),%xmm2 + 42efea: b2 be mov $0xbe,%dl + 42efec: 66 0f ef d1 pxor %xmm1,%xmm2 + 42eff0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42eff5: 0f 83 ed 08 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42effb: f3 0f 6f 4f ce movdqu -0x32(%rdi),%xmm1 + 42f000: f3 0f 6f 56 ce movdqu -0x32(%rsi),%xmm2 + 42f005: b2 ce mov $0xce,%dl + 42f007: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f00b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f010: 0f 83 d2 08 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f016: f3 0f 6f 4f de movdqu -0x22(%rdi),%xmm1 + 42f01b: f3 0f 6f 56 de movdqu -0x22(%rsi),%xmm2 + 42f020: b2 de mov $0xde,%dl + 42f022: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f026: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f02b: 0f 83 b7 08 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f031: 48 8b 47 ee mov -0x12(%rdi),%rax + 42f035: 48 8b 4e ee mov -0x12(%rsi),%rcx + 42f039: 48 39 c1 cmp %rax,%rcx + 42f03c: 0f 85 c1 08 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f042: 48 8b 47 f6 mov -0xa(%rdi),%rax + 42f046: 48 8b 4e f6 mov -0xa(%rsi),%rcx + 42f04a: 48 39 c1 cmp %rax,%rcx + 42f04d: 0f 85 b0 08 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f053: 0f b7 47 fe movzwl -0x2(%rdi),%eax + 42f057: 0f b7 4e fe movzwl -0x2(%rsi),%ecx + 42f05b: 38 c8 cmp %cl,%al + 42f05d: 0f 85 cd 08 00 00 jne 42f930 <__memcmp_sse4_1+0x1630> + 42f063: 25 ff ff 00 00 and $0xffff,%eax + 42f068: 81 e1 ff ff 00 00 and $0xffff,%ecx + 42f06e: 29 c8 sub %ecx,%eax + 42f070: c3 retq + 42f071: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42f076: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42f07d: 00 00 00 + 42f080: 48 8b 47 f2 mov -0xe(%rdi),%rax + 42f084: 48 8b 4e f2 mov -0xe(%rsi),%rcx + 42f088: 48 39 c1 cmp %rax,%rcx + 42f08b: 0f 85 72 08 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f091: 48 8b 47 f8 mov -0x8(%rdi),%rax + 42f095: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 42f099: 48 39 c1 cmp %rax,%rcx + 42f09c: 0f 85 61 08 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f0a2: 31 c0 xor %eax,%eax + 42f0a4: c3 retq + 42f0a5: 90 nop + 42f0a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42f0ad: 00 00 00 + 42f0b0: 8b 47 fa mov -0x6(%rdi),%eax + 42f0b3: 8b 4e fa mov -0x6(%rsi),%ecx + 42f0b6: 39 c1 cmp %eax,%ecx + 42f0b8: 0f 85 51 08 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> + 42f0be: 0f b7 4e fe movzwl -0x2(%rsi),%ecx + 42f0c2: 0f b7 47 fe movzwl -0x2(%rdi),%eax + 42f0c6: 38 c8 cmp %cl,%al + 42f0c8: 0f 85 62 08 00 00 jne 42f930 <__memcmp_sse4_1+0x1630> + 42f0ce: 25 ff ff 00 00 and $0xffff,%eax + 42f0d3: 81 e1 ff ff 00 00 and $0xffff,%ecx + 42f0d9: 29 c8 sub %ecx,%eax + 42f0db: c3 retq + 42f0dc: 0f 1f 40 00 nopl 0x0(%rax) + 42f0e0: f3 0f 6f 57 bd movdqu -0x43(%rdi),%xmm2 + 42f0e5: f3 0f 6f 4e bd movdqu -0x43(%rsi),%xmm1 + 42f0ea: b2 bd mov $0xbd,%dl + 42f0ec: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f0f0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f0f5: 0f 83 ed 07 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f0fb: f3 0f 6f 57 cd movdqu -0x33(%rdi),%xmm2 + 42f100: f3 0f 6f 4e cd movdqu -0x33(%rsi),%xmm1 + 42f105: b2 cd mov $0xcd,%dl + 42f107: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f10b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f110: 0f 83 d2 07 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f116: f3 0f 6f 4e dd movdqu -0x23(%rsi),%xmm1 + 42f11b: f3 0f 6f 57 dd movdqu -0x23(%rdi),%xmm2 + 42f120: b2 dd mov $0xdd,%dl + 42f122: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f126: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f12b: 0f 83 b7 07 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f131: 48 8b 47 ed mov -0x13(%rdi),%rax + 42f135: 48 8b 4e ed mov -0x13(%rsi),%rcx + 42f139: 48 39 c1 cmp %rax,%rcx + 42f13c: 0f 85 c1 07 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f142: 48 8b 47 f5 mov -0xb(%rdi),%rax + 42f146: 48 8b 4e f5 mov -0xb(%rsi),%rcx + 42f14a: 48 39 c1 cmp %rax,%rcx + 42f14d: 0f 85 b0 07 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f153: 8b 47 fc mov -0x4(%rdi),%eax + 42f156: 8b 4e fc mov -0x4(%rsi),%ecx + 42f159: 39 c1 cmp %eax,%ecx + 42f15b: 0f 85 ae 07 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> + 42f161: 31 c0 xor %eax,%eax + 42f163: c3 retq + 42f164: 66 90 xchg %ax,%ax + 42f166: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42f16d: 00 00 00 + 42f170: 48 8b 47 f1 mov -0xf(%rdi),%rax + 42f174: 48 8b 4e f1 mov -0xf(%rsi),%rcx + 42f178: 48 39 c1 cmp %rax,%rcx + 42f17b: 0f 85 82 07 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f181: 48 8b 47 f8 mov -0x8(%rdi),%rax + 42f185: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 42f189: 48 39 c1 cmp %rax,%rcx + 42f18c: 0f 85 71 07 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f192: 31 c0 xor %eax,%eax + 42f194: c3 retq + 42f195: 90 nop + 42f196: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42f19d: 00 00 00 + 42f1a0: 8b 47 f9 mov -0x7(%rdi),%eax + 42f1a3: 8b 4e f9 mov -0x7(%rsi),%ecx + 42f1a6: 39 c1 cmp %eax,%ecx + 42f1a8: 0f 85 61 07 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> + 42f1ae: 8b 47 fc mov -0x4(%rdi),%eax + 42f1b1: 8b 4e fc mov -0x4(%rsi),%ecx + 42f1b4: 39 c1 cmp %eax,%ecx + 42f1b6: 0f 85 53 07 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> + 42f1bc: 31 c0 xor %eax,%eax + 42f1be: c3 retq + 42f1bf: 90 nop + 42f1c0: 0f b7 47 fd movzwl -0x3(%rdi),%eax + 42f1c4: 0f b7 4e fd movzwl -0x3(%rsi),%ecx + 42f1c8: 39 c1 cmp %eax,%ecx + 42f1ca: 0f 85 4a 07 00 00 jne 42f91a <__memcmp_sse4_1+0x161a> + 42f1d0: 0f b6 47 ff movzbl -0x1(%rdi),%eax + 42f1d4: 0f b6 4e ff movzbl -0x1(%rsi),%ecx + 42f1d8: 29 c8 sub %ecx,%eax + 42f1da: c3 retq + 42f1db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42f1e0: f3 0f 6f 57 bc movdqu -0x44(%rdi),%xmm2 + 42f1e5: f3 0f 6f 4e bc movdqu -0x44(%rsi),%xmm1 + 42f1ea: b2 bc mov $0xbc,%dl + 42f1ec: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f1f0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f1f5: 0f 83 ed 06 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f1fb: f3 0f 6f 57 cc movdqu -0x34(%rdi),%xmm2 + 42f200: f3 0f 6f 4e cc movdqu -0x34(%rsi),%xmm1 + 42f205: b2 cc mov $0xcc,%dl + 42f207: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f20b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f210: 0f 83 d2 06 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f216: f3 0f 6f 57 dc movdqu -0x24(%rdi),%xmm2 + 42f21b: f3 0f 6f 4e dc movdqu -0x24(%rsi),%xmm1 + 42f220: b2 dc mov $0xdc,%dl + 42f222: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f226: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f22b: 0f 83 b7 06 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f231: f3 0f 6f 57 ec movdqu -0x14(%rdi),%xmm2 + 42f236: f3 0f 6f 4e ec movdqu -0x14(%rsi),%xmm1 + 42f23b: b2 ec mov $0xec,%dl + 42f23d: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f241: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f246: 0f 83 9c 06 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f24c: 8b 4e fc mov -0x4(%rsi),%ecx + 42f24f: 8b 47 fc mov -0x4(%rdi),%eax + 42f252: 39 c1 cmp %eax,%ecx + 42f254: 0f 85 b5 06 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> + 42f25a: 31 c0 xor %eax,%eax + 42f25c: c3 retq + 42f25d: 0f 1f 00 nopl (%rax) + 42f260: f3 0f 6f 4e bb movdqu -0x45(%rsi),%xmm1 + 42f265: f3 0f 6f 57 bb movdqu -0x45(%rdi),%xmm2 + 42f26a: b2 bb mov $0xbb,%dl + 42f26c: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f270: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f275: 0f 83 6d 06 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f27b: f3 0f 6f 4e cb movdqu -0x35(%rsi),%xmm1 + 42f280: f3 0f 6f 57 cb movdqu -0x35(%rdi),%xmm2 + 42f285: b2 cb mov $0xcb,%dl + 42f287: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f28b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f290: 0f 83 52 06 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f296: f3 0f 6f 4e db movdqu -0x25(%rsi),%xmm1 + 42f29b: f3 0f 6f 57 db movdqu -0x25(%rdi),%xmm2 + 42f2a0: b2 db mov $0xdb,%dl + 42f2a2: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f2a6: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f2ab: 0f 83 37 06 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f2b1: f3 0f 6f 4e eb movdqu -0x15(%rsi),%xmm1 + 42f2b6: f3 0f 6f 57 eb movdqu -0x15(%rdi),%xmm2 + 42f2bb: b2 eb mov $0xeb,%dl + 42f2bd: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f2c1: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f2c6: 0f 83 1c 06 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f2cc: 48 8b 47 f8 mov -0x8(%rdi),%rax + 42f2d0: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 42f2d4: 48 39 c1 cmp %rax,%rcx + 42f2d7: 0f 85 26 06 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f2dd: 31 c0 xor %eax,%eax + 42f2df: c3 retq + 42f2e0: f3 0f 6f 4e ba movdqu -0x46(%rsi),%xmm1 + 42f2e5: f3 0f 6f 57 ba movdqu -0x46(%rdi),%xmm2 + 42f2ea: b2 ba mov $0xba,%dl + 42f2ec: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f2f0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f2f5: 0f 83 ed 05 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f2fb: f3 0f 6f 4e ca movdqu -0x36(%rsi),%xmm1 + 42f300: f3 0f 6f 57 ca movdqu -0x36(%rdi),%xmm2 + 42f305: b2 ca mov $0xca,%dl + 42f307: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f30b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f310: 0f 83 d2 05 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f316: f3 0f 6f 4e da movdqu -0x26(%rsi),%xmm1 + 42f31b: f3 0f 6f 57 da movdqu -0x26(%rdi),%xmm2 + 42f320: b2 da mov $0xda,%dl + 42f322: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f326: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f32b: 0f 83 b7 05 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f331: f3 0f 6f 4e ea movdqu -0x16(%rsi),%xmm1 + 42f336: f3 0f 6f 57 ea movdqu -0x16(%rdi),%xmm2 + 42f33b: b2 ea mov $0xea,%dl + 42f33d: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f341: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f346: 0f 83 9c 05 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f34c: 48 8b 47 f8 mov -0x8(%rdi),%rax + 42f350: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 42f354: 48 39 c1 cmp %rax,%rcx + 42f357: 0f 85 a6 05 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f35d: 31 c0 xor %eax,%eax + 42f35f: c3 retq + 42f360: f3 0f 6f 4e b9 movdqu -0x47(%rsi),%xmm1 + 42f365: f3 0f 6f 57 b9 movdqu -0x47(%rdi),%xmm2 + 42f36a: b2 b9 mov $0xb9,%dl + 42f36c: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f370: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f375: 0f 83 6d 05 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f37b: f3 0f 6f 57 c9 movdqu -0x37(%rdi),%xmm2 + 42f380: f3 0f 6f 4e c9 movdqu -0x37(%rsi),%xmm1 + 42f385: b2 c9 mov $0xc9,%dl + 42f387: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f38b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f390: 0f 83 52 05 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f396: f3 0f 6f 57 d9 movdqu -0x27(%rdi),%xmm2 + 42f39b: f3 0f 6f 4e d9 movdqu -0x27(%rsi),%xmm1 + 42f3a0: b2 d9 mov $0xd9,%dl + 42f3a2: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f3a6: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f3ab: 0f 83 37 05 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f3b1: f3 0f 6f 57 e9 movdqu -0x17(%rdi),%xmm2 + 42f3b6: f3 0f 6f 4e e9 movdqu -0x17(%rsi),%xmm1 + 42f3bb: b2 e9 mov $0xe9,%dl + 42f3bd: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f3c1: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f3c6: 0f 83 1c 05 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f3cc: 48 8b 47 f8 mov -0x8(%rdi),%rax + 42f3d0: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 42f3d4: 48 39 c1 cmp %rax,%rcx + 42f3d7: 0f 85 26 05 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f3dd: 31 c0 xor %eax,%eax + 42f3df: c3 retq + 42f3e0: f3 0f 6f 4e b8 movdqu -0x48(%rsi),%xmm1 + 42f3e5: f3 0f 6f 57 b8 movdqu -0x48(%rdi),%xmm2 + 42f3ea: b2 b8 mov $0xb8,%dl + 42f3ec: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f3f0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f3f5: 0f 83 ed 04 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f3fb: f3 0f 6f 57 c8 movdqu -0x38(%rdi),%xmm2 + 42f400: f3 0f 6f 4e c8 movdqu -0x38(%rsi),%xmm1 + 42f405: b2 c8 mov $0xc8,%dl + 42f407: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f40b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f410: 0f 83 d2 04 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f416: f3 0f 6f 57 d8 movdqu -0x28(%rdi),%xmm2 + 42f41b: f3 0f 6f 4e d8 movdqu -0x28(%rsi),%xmm1 + 42f420: b2 d8 mov $0xd8,%dl + 42f422: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f426: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f42b: 0f 83 b7 04 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f431: f3 0f 6f 57 e8 movdqu -0x18(%rdi),%xmm2 + 42f436: f3 0f 6f 4e e8 movdqu -0x18(%rsi),%xmm1 + 42f43b: b2 e8 mov $0xe8,%dl + 42f43d: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f441: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f446: 0f 83 9c 04 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f44c: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 42f450: 48 8b 47 f8 mov -0x8(%rdi),%rax + 42f454: 48 39 c1 cmp %rax,%rcx + 42f457: 0f 85 a6 04 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f45d: 31 c0 xor %eax,%eax + 42f45f: c3 retq + 42f460: f3 0f 6f 4e b7 movdqu -0x49(%rsi),%xmm1 + 42f465: f3 0f 6f 57 b7 movdqu -0x49(%rdi),%xmm2 + 42f46a: b2 b7 mov $0xb7,%dl + 42f46c: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f470: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f475: 0f 83 6d 04 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f47b: f3 0f 6f 57 c7 movdqu -0x39(%rdi),%xmm2 + 42f480: f3 0f 6f 4e c7 movdqu -0x39(%rsi),%xmm1 + 42f485: b2 c7 mov $0xc7,%dl + 42f487: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f48b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f490: 0f 83 52 04 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f496: f3 0f 6f 57 d7 movdqu -0x29(%rdi),%xmm2 + 42f49b: f3 0f 6f 4e d7 movdqu -0x29(%rsi),%xmm1 + 42f4a0: b2 d7 mov $0xd7,%dl + 42f4a2: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f4a6: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f4ab: 0f 83 37 04 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f4b1: f3 0f 6f 57 e7 movdqu -0x19(%rdi),%xmm2 + 42f4b6: f3 0f 6f 4e e7 movdqu -0x19(%rsi),%xmm1 + 42f4bb: b2 e7 mov $0xe7,%dl + 42f4bd: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f4c1: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f4c6: 0f 83 1c 04 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f4cc: 48 8b 47 f7 mov -0x9(%rdi),%rax + 42f4d0: 48 8b 4e f7 mov -0x9(%rsi),%rcx + 42f4d4: 48 39 c1 cmp %rax,%rcx + 42f4d7: 0f 85 26 04 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f4dd: 0f b6 47 ff movzbl -0x1(%rdi),%eax + 42f4e1: 0f b6 4e ff movzbl -0x1(%rsi),%ecx + 42f4e5: 29 c8 sub %ecx,%eax + 42f4e7: c3 retq + 42f4e8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42f4ef: 00 + 42f4f0: f3 0f 6f 4e b6 movdqu -0x4a(%rsi),%xmm1 + 42f4f5: f3 0f 6f 57 b6 movdqu -0x4a(%rdi),%xmm2 + 42f4fa: b2 b6 mov $0xb6,%dl + 42f4fc: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f500: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f505: 0f 83 dd 03 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f50b: f3 0f 6f 57 c6 movdqu -0x3a(%rdi),%xmm2 + 42f510: f3 0f 6f 4e c6 movdqu -0x3a(%rsi),%xmm1 + 42f515: b2 c6 mov $0xc6,%dl + 42f517: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f51b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f520: 0f 83 c2 03 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f526: f3 0f 6f 57 d6 movdqu -0x2a(%rdi),%xmm2 + 42f52b: f3 0f 6f 4e d6 movdqu -0x2a(%rsi),%xmm1 + 42f530: b2 d6 mov $0xd6,%dl + 42f532: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f536: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f53b: 0f 83 a7 03 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f541: f3 0f 6f 57 e6 movdqu -0x1a(%rdi),%xmm2 + 42f546: f3 0f 6f 4e e6 movdqu -0x1a(%rsi),%xmm1 + 42f54b: b2 e6 mov $0xe6,%dl + 42f54d: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f551: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f556: 0f 83 8c 03 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f55c: 48 8b 47 f6 mov -0xa(%rdi),%rax + 42f560: 48 8b 4e f6 mov -0xa(%rsi),%rcx + 42f564: 48 39 c1 cmp %rax,%rcx + 42f567: 0f 85 96 03 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f56d: 0f b7 47 fe movzwl -0x2(%rdi),%eax + 42f571: 0f b7 4e fe movzwl -0x2(%rsi),%ecx + 42f575: e9 a0 03 00 00 jmpq 42f91a <__memcmp_sse4_1+0x161a> + 42f57a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 42f580: f3 0f 6f 4e b5 movdqu -0x4b(%rsi),%xmm1 + 42f585: f3 0f 6f 57 b5 movdqu -0x4b(%rdi),%xmm2 + 42f58a: b2 b5 mov $0xb5,%dl + 42f58c: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f590: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f595: 0f 83 4d 03 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f59b: f3 0f 6f 57 c5 movdqu -0x3b(%rdi),%xmm2 + 42f5a0: f3 0f 6f 4e c5 movdqu -0x3b(%rsi),%xmm1 + 42f5a5: b2 c5 mov $0xc5,%dl + 42f5a7: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f5ab: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f5b0: 0f 83 32 03 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f5b6: f3 0f 6f 57 d5 movdqu -0x2b(%rdi),%xmm2 + 42f5bb: f3 0f 6f 4e d5 movdqu -0x2b(%rsi),%xmm1 + 42f5c0: b2 d5 mov $0xd5,%dl + 42f5c2: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f5c6: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f5cb: 0f 83 17 03 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f5d1: f3 0f 6f 57 e5 movdqu -0x1b(%rdi),%xmm2 + 42f5d6: f3 0f 6f 4e e5 movdqu -0x1b(%rsi),%xmm1 + 42f5db: b2 e5 mov $0xe5,%dl + 42f5dd: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f5e1: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f5e6: 0f 83 fc 02 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f5ec: 48 8b 47 f5 mov -0xb(%rdi),%rax + 42f5f0: 48 8b 4e f5 mov -0xb(%rsi),%rcx + 42f5f4: 48 39 c1 cmp %rax,%rcx + 42f5f7: 0f 85 06 03 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f5fd: 8b 47 fc mov -0x4(%rdi),%eax + 42f600: 8b 4e fc mov -0x4(%rsi),%ecx + 42f603: 39 c1 cmp %eax,%ecx + 42f605: 0f 85 04 03 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> + 42f60b: 31 c0 xor %eax,%eax + 42f60d: c3 retq + 42f60e: 66 90 xchg %ax,%ax + 42f610: f3 0f 6f 4e b4 movdqu -0x4c(%rsi),%xmm1 + 42f615: f3 0f 6f 57 b4 movdqu -0x4c(%rdi),%xmm2 + 42f61a: b2 b4 mov $0xb4,%dl + 42f61c: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f620: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f625: 0f 83 bd 02 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f62b: f3 0f 6f 57 c4 movdqu -0x3c(%rdi),%xmm2 + 42f630: f3 0f 6f 4e c4 movdqu -0x3c(%rsi),%xmm1 + 42f635: b2 c4 mov $0xc4,%dl + 42f637: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f63b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f640: 0f 83 a2 02 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f646: f3 0f 6f 57 d4 movdqu -0x2c(%rdi),%xmm2 + 42f64b: f3 0f 6f 4e d4 movdqu -0x2c(%rsi),%xmm1 + 42f650: b2 d4 mov $0xd4,%dl + 42f652: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f656: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f65b: 0f 83 87 02 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f661: f3 0f 6f 57 e4 movdqu -0x1c(%rdi),%xmm2 + 42f666: f3 0f 6f 4e e4 movdqu -0x1c(%rsi),%xmm1 + 42f66b: b2 e4 mov $0xe4,%dl + 42f66d: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f671: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f676: 0f 83 6c 02 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f67c: 48 8b 47 f4 mov -0xc(%rdi),%rax + 42f680: 48 8b 4e f4 mov -0xc(%rsi),%rcx + 42f684: 48 39 c1 cmp %rax,%rcx + 42f687: 0f 85 76 02 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f68d: 8b 4e fc mov -0x4(%rsi),%ecx + 42f690: 8b 47 fc mov -0x4(%rdi),%eax + 42f693: 39 c1 cmp %eax,%ecx + 42f695: 0f 85 74 02 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> + 42f69b: 31 c0 xor %eax,%eax + 42f69d: c3 retq + 42f69e: 66 90 xchg %ax,%ax + 42f6a0: f3 0f 6f 4e b3 movdqu -0x4d(%rsi),%xmm1 + 42f6a5: f3 0f 6f 57 b3 movdqu -0x4d(%rdi),%xmm2 + 42f6aa: b2 b3 mov $0xb3,%dl + 42f6ac: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f6b0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f6b5: 0f 83 2d 02 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f6bb: f3 0f 6f 57 c3 movdqu -0x3d(%rdi),%xmm2 + 42f6c0: f3 0f 6f 4e c3 movdqu -0x3d(%rsi),%xmm1 + 42f6c5: b2 c3 mov $0xc3,%dl + 42f6c7: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f6cb: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f6d0: 0f 83 12 02 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f6d6: f3 0f 6f 57 d3 movdqu -0x2d(%rdi),%xmm2 + 42f6db: f3 0f 6f 4e d3 movdqu -0x2d(%rsi),%xmm1 + 42f6e0: b2 d3 mov $0xd3,%dl + 42f6e2: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f6e6: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f6eb: 0f 83 f7 01 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f6f1: f3 0f 6f 57 e3 movdqu -0x1d(%rdi),%xmm2 + 42f6f6: f3 0f 6f 4e e3 movdqu -0x1d(%rsi),%xmm1 + 42f6fb: b2 e3 mov $0xe3,%dl + 42f6fd: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f701: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f706: 0f 83 dc 01 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f70c: 48 8b 47 f3 mov -0xd(%rdi),%rax + 42f710: 48 8b 4e f3 mov -0xd(%rsi),%rcx + 42f714: 48 39 c1 cmp %rax,%rcx + 42f717: 0f 85 e6 01 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f71d: 48 8b 47 f8 mov -0x8(%rdi),%rax + 42f721: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 42f725: 48 39 c1 cmp %rax,%rcx + 42f728: 0f 85 d5 01 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f72e: 31 c0 xor %eax,%eax + 42f730: c3 retq + 42f731: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42f736: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42f73d: 00 00 00 + 42f740: f3 0f 6f 4e b2 movdqu -0x4e(%rsi),%xmm1 + 42f745: f3 0f 6f 57 b2 movdqu -0x4e(%rdi),%xmm2 + 42f74a: b2 b2 mov $0xb2,%dl + 42f74c: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f750: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f755: 0f 83 8d 01 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f75b: f3 0f 6f 57 c2 movdqu -0x3e(%rdi),%xmm2 + 42f760: f3 0f 6f 4e c2 movdqu -0x3e(%rsi),%xmm1 + 42f765: b2 c2 mov $0xc2,%dl + 42f767: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f76b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f770: 0f 83 72 01 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f776: f3 0f 6f 57 d2 movdqu -0x2e(%rdi),%xmm2 + 42f77b: f3 0f 6f 4e d2 movdqu -0x2e(%rsi),%xmm1 + 42f780: b2 d2 mov $0xd2,%dl + 42f782: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f786: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f78b: 0f 83 57 01 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f791: f3 0f 6f 57 e2 movdqu -0x1e(%rdi),%xmm2 + 42f796: f3 0f 6f 4e e2 movdqu -0x1e(%rsi),%xmm1 + 42f79b: b2 e2 mov $0xe2,%dl + 42f79d: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f7a1: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f7a6: 0f 83 3c 01 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f7ac: 48 8b 47 f2 mov -0xe(%rdi),%rax + 42f7b0: 48 8b 4e f2 mov -0xe(%rsi),%rcx + 42f7b4: 48 39 c1 cmp %rax,%rcx + 42f7b7: 0f 85 46 01 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f7bd: 48 8b 47 f8 mov -0x8(%rdi),%rax + 42f7c1: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 42f7c5: 48 39 c1 cmp %rax,%rcx + 42f7c8: 0f 85 35 01 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f7ce: 31 c0 xor %eax,%eax + 42f7d0: c3 retq + 42f7d1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42f7d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42f7dd: 00 00 00 + 42f7e0: f3 0f 6f 4e b1 movdqu -0x4f(%rsi),%xmm1 + 42f7e5: f3 0f 6f 57 b1 movdqu -0x4f(%rdi),%xmm2 + 42f7ea: b2 b1 mov $0xb1,%dl + 42f7ec: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f7f0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f7f5: 0f 83 ed 00 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f7fb: f3 0f 6f 57 c1 movdqu -0x3f(%rdi),%xmm2 + 42f800: f3 0f 6f 4e c1 movdqu -0x3f(%rsi),%xmm1 + 42f805: b2 c1 mov $0xc1,%dl + 42f807: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f80b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f810: 0f 83 d2 00 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f816: f3 0f 6f 57 d1 movdqu -0x2f(%rdi),%xmm2 + 42f81b: f3 0f 6f 4e d1 movdqu -0x2f(%rsi),%xmm1 + 42f820: b2 d1 mov $0xd1,%dl + 42f822: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f826: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f82b: 0f 83 b7 00 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f831: f3 0f 6f 57 e1 movdqu -0x1f(%rdi),%xmm2 + 42f836: f3 0f 6f 4e e1 movdqu -0x1f(%rsi),%xmm1 + 42f83b: b2 e1 mov $0xe1,%dl + 42f83d: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f841: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f846: 0f 83 9c 00 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f84c: 48 8b 47 f1 mov -0xf(%rdi),%rax + 42f850: 48 8b 4e f1 mov -0xf(%rsi),%rcx + 42f854: 48 39 c1 cmp %rax,%rcx + 42f857: 0f 85 a6 00 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f85d: 48 8b 47 f8 mov -0x8(%rdi),%rax + 42f861: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 42f865: 48 39 c1 cmp %rax,%rcx + 42f868: 0f 85 95 00 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f86e: 31 c0 xor %eax,%eax + 42f870: c3 retq + 42f871: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42f876: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42f87d: 00 00 00 + 42f880: f3 0f 6f 57 c0 movdqu -0x40(%rdi),%xmm2 + 42f885: f3 0f 6f 4e c0 movdqu -0x40(%rsi),%xmm1 + 42f88a: b2 c0 mov $0xc0,%dl + 42f88c: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f890: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f895: 73 51 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f897: f3 0f 6f 57 d0 movdqu -0x30(%rdi),%xmm2 + 42f89c: f3 0f 6f 4e d0 movdqu -0x30(%rsi),%xmm1 + 42f8a1: b2 d0 mov $0xd0,%dl + 42f8a3: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f8a7: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f8ac: 73 3a jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f8ae: f3 0f 6f 57 e0 movdqu -0x20(%rdi),%xmm2 + 42f8b3: f3 0f 6f 4e e0 movdqu -0x20(%rsi),%xmm1 + 42f8b8: b2 e0 mov $0xe0,%dl + 42f8ba: 66 0f ef d1 pxor %xmm1,%xmm2 + 42f8be: 66 0f 38 17 c2 ptest %xmm2,%xmm0 + 42f8c3: 73 23 jae 42f8e8 <__memcmp_sse4_1+0x15e8> + 42f8c5: 48 8b 47 f0 mov -0x10(%rdi),%rax + 42f8c9: 48 8b 4e f0 mov -0x10(%rsi),%rcx + 42f8cd: 48 39 c1 cmp %rax,%rcx + 42f8d0: 75 31 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f8d2: 48 8b 47 f8 mov -0x8(%rdi),%rax + 42f8d6: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 42f8da: 48 39 c1 cmp %rax,%rcx + 42f8dd: 75 24 jne 42f903 <__memcmp_sse4_1+0x1603> + 42f8df: 31 c0 xor %eax,%eax + 42f8e1: c3 retq + 42f8e2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 42f8e8: 48 0f be d2 movsbq %dl,%rdx + 42f8ec: 48 8b 0c 16 mov (%rsi,%rdx,1),%rcx + 42f8f0: 48 8b 04 17 mov (%rdi,%rdx,1),%rax + 42f8f4: 48 39 c1 cmp %rax,%rcx + 42f8f7: 75 0a jne 42f903 <__memcmp_sse4_1+0x1603> + 42f8f9: 48 8b 4c 16 08 mov 0x8(%rsi,%rdx,1),%rcx + 42f8fe: 48 8b 44 17 08 mov 0x8(%rdi,%rdx,1),%rax + 42f903: 39 c1 cmp %eax,%ecx + 42f905: 75 08 jne 42f90f <__memcmp_sse4_1+0x160f> + 42f907: 48 c1 e9 20 shr $0x20,%rcx + 42f90b: 48 c1 e8 20 shr $0x20,%rax + 42f90f: 66 39 c8 cmp %cx,%ax + 42f912: 75 06 jne 42f91a <__memcmp_sse4_1+0x161a> + 42f914: c1 e9 10 shr $0x10,%ecx + 42f917: c1 e8 10 shr $0x10,%eax + 42f91a: 38 c8 cmp %cl,%al + 42f91c: 75 12 jne 42f930 <__memcmp_sse4_1+0x1630> + 42f91e: 25 ff ff 00 00 and $0xffff,%eax + 42f923: 81 e1 ff ff 00 00 and $0xffff,%ecx + 42f929: 29 c8 sub %ecx,%eax + 42f92b: c3 retq + 42f92c: 0f 1f 40 00 nopl 0x0(%rax) + 42f930: 25 ff 00 00 00 and $0xff,%eax + 42f935: 81 e1 ff 00 00 00 and $0xff,%ecx + 42f93b: 29 c8 sub %ecx,%eax + 42f93d: c3 retq + 42f93e: 66 90 xchg %ax,%ax + +000000000042f940 <__memmove_chk_ssse3>: + 42f940: 48 39 d1 cmp %rdx,%rcx + 42f943: 0f 82 67 31 01 00 jb 442ab0 <__chk_fail> + 42f949: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +000000000042f950 <__memmove_ssse3>: + 42f950: 48 89 f8 mov %rdi,%rax + 42f953: 48 39 f7 cmp %rsi,%rdi + 42f956: 72 0e jb 42f966 <__memmove_ssse3+0x16> + 42f958: 0f 84 7a 1a 00 00 je 4313d8 <__memmove_ssse3+0x1a88> + 42f95e: 48 83 fa 4f cmp $0x4f,%rdx + 42f962: 76 02 jbe 42f966 <__memmove_ssse3+0x16> + 42f964: eb 7a jmp 42f9e0 <__memmove_ssse3+0x90> + 42f966: 48 83 fa 4f cmp $0x4f,%rdx + 42f96a: 4c 8d 1d 3f 3a 07 00 lea 0x73a3f(%rip),%r11 # 4a33b0 + 42f971: 77 1d ja 42f990 <__memmove_ssse3+0x40> + 42f973: 4d 63 0c 93 movslq (%r11,%rdx,4),%r9 + 42f977: 48 01 d6 add %rdx,%rsi + 42f97a: 48 01 d7 add %rdx,%rdi + 42f97d: 4d 01 d9 add %r11,%r9 + 42f980: 41 ff e1 jmpq *%r9 + 42f983: 0f 0b ud2 + 42f985: 90 nop + 42f986: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42f98d: 00 00 00 + 42f990: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 42f994: 48 89 f9 mov %rdi,%rcx + 42f997: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 42f99b: 48 83 c7 10 add $0x10,%rdi + 42f99f: 49 89 c8 mov %rcx,%r8 + 42f9a2: 48 29 f9 sub %rdi,%rcx + 42f9a5: 48 01 ca add %rcx,%rdx + 42f9a8: 48 29 ce sub %rcx,%rsi + 42f9ab: 48 8b 0d fe b6 29 00 mov 0x29b6fe(%rip),%rcx # 6cb0b0 <__x86_shared_cache_size_half> + 42f9b2: 48 39 ca cmp %rcx,%rdx + 42f9b5: 49 89 f1 mov %rsi,%r9 + 42f9b8: 0f 87 92 27 00 00 ja 432150 <__memmove_ssse3+0x2800> + 42f9be: 49 83 e1 0f and $0xf,%r9 + 42f9c2: 74 7c je 42fa40 <__memmove_ssse3+0xf0> + 42f9c4: 48 8b 0d 05 b7 29 00 mov 0x29b705(%rip),%rcx # 6cb0d0 <__x86_data_cache_size_half> + 42f9cb: 4c 8d 1d 1e 3b 07 00 lea 0x73b1e(%rip),%r11 # 4a34f0 + 42f9d2: 4f 63 0c 8b movslq (%r11,%r9,4),%r9 + 42f9d6: 4f 8d 0c 0b lea (%r11,%r9,1),%r9 + 42f9da: 41 ff e1 jmpq *%r9 + 42f9dd: 0f 0b ud2 + 42f9df: 90 nop + 42f9e0: f3 0f 6f 44 16 f0 movdqu -0x10(%rsi,%rdx,1),%xmm0 + 42f9e6: 48 01 d6 add %rdx,%rsi + 42f9e9: 4c 8d 44 17 f0 lea -0x10(%rdi,%rdx,1),%r8 + 42f9ee: 48 01 d7 add %rdx,%rdi + 42f9f1: 48 89 f9 mov %rdi,%rcx + 42f9f4: 48 83 e1 0f and $0xf,%rcx + 42f9f8: 48 31 cf xor %rcx,%rdi + 42f9fb: 48 29 ca sub %rcx,%rdx + 42f9fe: 48 29 ce sub %rcx,%rsi + 42fa01: 48 8b 0d a8 b6 29 00 mov 0x29b6a8(%rip),%rcx # 6cb0b0 <__x86_shared_cache_size_half> + 42fa08: 48 39 ca cmp %rcx,%rdx + 42fa0b: 49 89 f1 mov %rsi,%r9 + 42fa0e: 0f 87 fc 28 00 00 ja 432310 <__memmove_ssse3+0x29c0> + 42fa14: 49 83 e1 0f and $0xf,%r9 + 42fa18: 0f 84 42 02 00 00 je 42fc60 <__memmove_ssse3+0x310> + 42fa1e: 48 8b 0d ab b6 29 00 mov 0x29b6ab(%rip),%rcx # 6cb0d0 <__x86_data_cache_size_half> + 42fa25: 4c 8d 1d 04 3b 07 00 lea 0x73b04(%rip),%r11 # 4a3530 + 42fa2c: 4f 63 0c 8b movslq (%r11,%r9,4),%r9 + 42fa30: 4f 8d 0c 0b lea (%r11,%r9,1),%r9 + 42fa34: 41 ff e1 jmpq *%r9 + 42fa37: 0f 0b ud2 + 42fa39: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42fa40: 48 83 ea 10 sub $0x10,%rdx + 42fa44: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 42fa48: 48 83 c6 10 add $0x10,%rsi + 42fa4c: 66 0f 7f 0f movdqa %xmm1,(%rdi) + 42fa50: 48 83 c7 10 add $0x10,%rdi + 42fa54: 48 81 fa 80 00 00 00 cmp $0x80,%rdx + 42fa5b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 42fa60: 77 4e ja 42fab0 <__memmove_ssse3+0x160> + 42fa62: 48 83 fa 40 cmp $0x40,%rdx + 42fa66: 72 2a jb 42fa92 <__memmove_ssse3+0x142> + 42fa68: 0f 28 26 movaps (%rsi),%xmm4 + 42fa6b: 0f 28 4e 10 movaps 0x10(%rsi),%xmm1 + 42fa6f: 0f 28 56 20 movaps 0x20(%rsi),%xmm2 + 42fa73: 0f 28 5e 30 movaps 0x30(%rsi),%xmm3 + 42fa77: 0f 29 27 movaps %xmm4,(%rdi) + 42fa7a: 0f 29 4f 10 movaps %xmm1,0x10(%rdi) + 42fa7e: 0f 29 57 20 movaps %xmm2,0x20(%rdi) + 42fa82: 0f 29 5f 30 movaps %xmm3,0x30(%rdi) + 42fa86: 48 83 ea 40 sub $0x40,%rdx + 42fa8a: 48 83 c6 40 add $0x40,%rsi + 42fa8e: 48 83 c7 40 add $0x40,%rdi + 42fa92: 48 01 d6 add %rdx,%rsi + 42fa95: 48 01 d7 add %rdx,%rdi + 42fa98: 4c 8d 1d 11 39 07 00 lea 0x73911(%rip),%r11 # 4a33b0 + 42fa9f: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 42faa3: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 42faa7: ff e2 jmpq *%rdx + 42faa9: 0f 0b ud2 + 42faab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 42fab0: 48 3b 15 19 b6 29 00 cmp 0x29b619(%rip),%rdx # 6cb0d0 <__x86_data_cache_size_half> + 42fab7: 48 8d 52 80 lea -0x80(%rdx),%rdx + 42fabb: 0f 83 af 00 00 00 jae 42fb70 <__memmove_ssse3+0x220> + 42fac1: 66 0f 6f 26 movdqa (%rsi),%xmm4 + 42fac5: 0f 28 4e 10 movaps 0x10(%rsi),%xmm1 + 42fac9: 0f 28 56 20 movaps 0x20(%rsi),%xmm2 + 42facd: 0f 28 5e 30 movaps 0x30(%rsi),%xmm3 + 42fad1: 66 0f 7f 27 movdqa %xmm4,(%rdi) + 42fad5: 0f 29 4f 10 movaps %xmm1,0x10(%rdi) + 42fad9: 0f 29 57 20 movaps %xmm2,0x20(%rdi) + 42fadd: 0f 29 5f 30 movaps %xmm3,0x30(%rdi) + 42fae1: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 42fae8: 0f 28 66 40 movaps 0x40(%rsi),%xmm4 + 42faec: 0f 28 6e 50 movaps 0x50(%rsi),%xmm5 + 42faf0: 0f 28 76 60 movaps 0x60(%rsi),%xmm6 + 42faf4: 0f 28 7e 70 movaps 0x70(%rsi),%xmm7 + 42faf8: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 42faff: 0f 29 67 40 movaps %xmm4,0x40(%rdi) + 42fb03: 0f 29 6f 50 movaps %xmm5,0x50(%rdi) + 42fb07: 0f 29 77 60 movaps %xmm6,0x60(%rdi) + 42fb0b: 0f 29 7f 70 movaps %xmm7,0x70(%rdi) + 42fb0f: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 42fb16: 73 a9 jae 42fac1 <__memmove_ssse3+0x171> + 42fb18: 48 83 fa c0 cmp $0xffffffffffffffc0,%rdx + 42fb1c: 48 8d 92 80 00 00 00 lea 0x80(%rdx),%rdx + 42fb23: 7c 32 jl 42fb57 <__memmove_ssse3+0x207> + 42fb25: 66 0f 6f 26 movdqa (%rsi),%xmm4 + 42fb29: 48 83 ea 40 sub $0x40,%rdx + 42fb2d: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 42fb32: 66 0f 7f 27 movdqa %xmm4,(%rdi) + 42fb36: 66 0f 7f 4f 10 movdqa %xmm1,0x10(%rdi) + 42fb3b: 66 0f 6f 66 20 movdqa 0x20(%rsi),%xmm4 + 42fb40: 66 0f 6f 4e 30 movdqa 0x30(%rsi),%xmm1 + 42fb45: 48 83 c6 40 add $0x40,%rsi + 42fb49: 66 0f 7f 67 20 movdqa %xmm4,0x20(%rdi) + 42fb4e: 66 0f 7f 4f 30 movdqa %xmm1,0x30(%rdi) + 42fb53: 48 83 c7 40 add $0x40,%rdi + 42fb57: 48 01 d6 add %rdx,%rsi + 42fb5a: 48 01 d7 add %rdx,%rdi + 42fb5d: 4c 8d 1d 4c 38 07 00 lea 0x7384c(%rip),%r11 # 4a33b0 + 42fb64: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 42fb68: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 42fb6c: ff e2 jmpq *%rdx + 42fb6e: 0f 0b ud2 + 42fb70: 0f 18 8e c0 01 00 00 prefetcht0 0x1c0(%rsi) + 42fb77: 0f 18 8e 80 02 00 00 prefetcht0 0x280(%rsi) + 42fb7e: 66 0f 6f 06 movdqa (%rsi),%xmm0 + 42fb82: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 42fb87: 66 0f 6f 56 20 movdqa 0x20(%rsi),%xmm2 + 42fb8c: 66 0f 6f 5e 30 movdqa 0x30(%rsi),%xmm3 + 42fb91: 66 0f 6f 66 40 movdqa 0x40(%rsi),%xmm4 + 42fb96: 66 0f 6f 6e 50 movdqa 0x50(%rsi),%xmm5 + 42fb9b: 66 0f 6f 76 60 movdqa 0x60(%rsi),%xmm6 + 42fba0: 66 0f 6f 7e 70 movdqa 0x70(%rsi),%xmm7 + 42fba5: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 42fbac: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 42fbb3: 66 0f 7f 07 movdqa %xmm0,(%rdi) + 42fbb7: 66 0f 7f 4f 10 movdqa %xmm1,0x10(%rdi) + 42fbbc: 66 0f 7f 57 20 movdqa %xmm2,0x20(%rdi) + 42fbc1: 66 0f 7f 5f 30 movdqa %xmm3,0x30(%rdi) + 42fbc6: 66 0f 7f 67 40 movdqa %xmm4,0x40(%rdi) + 42fbcb: 66 0f 7f 6f 50 movdqa %xmm5,0x50(%rdi) + 42fbd0: 66 0f 7f 77 60 movdqa %xmm6,0x60(%rdi) + 42fbd5: 66 0f 7f 7f 70 movdqa %xmm7,0x70(%rdi) + 42fbda: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 42fbe1: 73 8d jae 42fb70 <__memmove_ssse3+0x220> + 42fbe3: 48 83 fa c0 cmp $0xffffffffffffffc0,%rdx + 42fbe7: 48 8d 92 80 00 00 00 lea 0x80(%rdx),%rdx + 42fbee: 7c 32 jl 42fc22 <__memmove_ssse3+0x2d2> + 42fbf0: 66 0f 6f 06 movdqa (%rsi),%xmm0 + 42fbf4: 48 83 ea 40 sub $0x40,%rdx + 42fbf8: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 42fbfd: 66 0f 7f 07 movdqa %xmm0,(%rdi) + 42fc01: 66 0f 7f 4f 10 movdqa %xmm1,0x10(%rdi) + 42fc06: 66 0f 6f 46 20 movdqa 0x20(%rsi),%xmm0 + 42fc0b: 66 0f 6f 4e 30 movdqa 0x30(%rsi),%xmm1 + 42fc10: 48 83 c6 40 add $0x40,%rsi + 42fc14: 66 0f 7f 47 20 movdqa %xmm0,0x20(%rdi) + 42fc19: 66 0f 7f 4f 30 movdqa %xmm1,0x30(%rdi) + 42fc1e: 48 83 c7 40 add $0x40,%rdi + 42fc22: 48 83 fa 20 cmp $0x20,%rdx + 42fc26: 72 1e jb 42fc46 <__memmove_ssse3+0x2f6> + 42fc28: 66 0f 6f 06 movdqa (%rsi),%xmm0 + 42fc2c: 48 83 ea 20 sub $0x20,%rdx + 42fc30: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 42fc35: 48 83 c6 20 add $0x20,%rsi + 42fc39: 66 0f 7f 07 movdqa %xmm0,(%rdi) + 42fc3d: 66 0f 7f 4f 10 movdqa %xmm1,0x10(%rdi) + 42fc42: 48 83 c7 20 add $0x20,%rdi + 42fc46: 48 01 d7 add %rdx,%rdi + 42fc49: 48 01 d6 add %rdx,%rsi + 42fc4c: 4c 8d 1d 5d 37 07 00 lea 0x7375d(%rip),%r11 # 4a33b0 + 42fc53: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 42fc57: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 42fc5b: ff e2 jmpq *%rdx + 42fc5d: 0f 0b ud2 + 42fc5f: 90 nop + 42fc60: 48 83 ea 10 sub $0x10,%rdx + 42fc64: 66 0f 6f 4e f0 movdqa -0x10(%rsi),%xmm1 + 42fc69: 48 83 ee 10 sub $0x10,%rsi + 42fc6d: 66 0f 7f 4f f0 movdqa %xmm1,-0x10(%rdi) + 42fc72: 48 83 ef 10 sub $0x10,%rdi + 42fc76: 48 81 fa 80 00 00 00 cmp $0x80,%rdx + 42fc7d: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 42fc82: 77 4c ja 42fcd0 <__memmove_ssse3+0x380> + 42fc84: 48 83 fa 40 cmp $0x40,%rdx + 42fc88: 72 2c jb 42fcb6 <__memmove_ssse3+0x366> + 42fc8a: 0f 28 46 f0 movaps -0x10(%rsi),%xmm0 + 42fc8e: 0f 28 4e e0 movaps -0x20(%rsi),%xmm1 + 42fc92: 0f 28 56 d0 movaps -0x30(%rsi),%xmm2 + 42fc96: 0f 28 5e c0 movaps -0x40(%rsi),%xmm3 + 42fc9a: 0f 29 47 f0 movaps %xmm0,-0x10(%rdi) + 42fc9e: 0f 29 4f e0 movaps %xmm1,-0x20(%rdi) + 42fca2: 0f 29 57 d0 movaps %xmm2,-0x30(%rdi) + 42fca6: 0f 29 5f c0 movaps %xmm3,-0x40(%rdi) + 42fcaa: 48 83 ea 40 sub $0x40,%rdx + 42fcae: 48 83 ee 40 sub $0x40,%rsi + 42fcb2: 48 83 ef 40 sub $0x40,%rdi + 42fcb6: 4c 8d 1d f3 36 07 00 lea 0x736f3(%rip),%r11 # 4a33b0 + 42fcbd: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 42fcc1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 42fcc5: ff e2 jmpq *%rdx + 42fcc7: 0f 0b ud2 + 42fcc9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42fcd0: 48 3b 15 f9 b3 29 00 cmp 0x29b3f9(%rip),%rdx # 6cb0d0 <__x86_data_cache_size_half> + 42fcd7: 48 8d 52 80 lea -0x80(%rdx),%rdx + 42fcdb: 0f 83 af 00 00 00 jae 42fd90 <__memmove_ssse3+0x440> + 42fce1: 66 0f 6f 46 f0 movdqa -0x10(%rsi),%xmm0 + 42fce6: 0f 28 4e e0 movaps -0x20(%rsi),%xmm1 + 42fcea: 0f 28 56 d0 movaps -0x30(%rsi),%xmm2 + 42fcee: 0f 28 5e c0 movaps -0x40(%rsi),%xmm3 + 42fcf2: 66 0f 7f 47 f0 movdqa %xmm0,-0x10(%rdi) + 42fcf7: 0f 29 4f e0 movaps %xmm1,-0x20(%rdi) + 42fcfb: 0f 29 57 d0 movaps %xmm2,-0x30(%rdi) + 42fcff: 0f 29 5f c0 movaps %xmm3,-0x40(%rdi) + 42fd03: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 42fd0a: 0f 28 66 b0 movaps -0x50(%rsi),%xmm4 + 42fd0e: 0f 28 6e a0 movaps -0x60(%rsi),%xmm5 + 42fd12: 0f 28 76 90 movaps -0x70(%rsi),%xmm6 + 42fd16: 0f 28 7e 80 movaps -0x80(%rsi),%xmm7 + 42fd1a: 48 8d 76 80 lea -0x80(%rsi),%rsi + 42fd1e: 0f 29 67 b0 movaps %xmm4,-0x50(%rdi) + 42fd22: 0f 29 6f a0 movaps %xmm5,-0x60(%rdi) + 42fd26: 0f 29 77 90 movaps %xmm6,-0x70(%rdi) + 42fd2a: 0f 29 7f 80 movaps %xmm7,-0x80(%rdi) + 42fd2e: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 42fd32: 73 ad jae 42fce1 <__memmove_ssse3+0x391> + 42fd34: 48 83 fa c0 cmp $0xffffffffffffffc0,%rdx + 42fd38: 48 8d 92 80 00 00 00 lea 0x80(%rdx),%rdx + 42fd3f: 7c 34 jl 42fd75 <__memmove_ssse3+0x425> + 42fd41: 66 0f 6f 46 f0 movdqa -0x10(%rsi),%xmm0 + 42fd46: 48 83 ea 40 sub $0x40,%rdx + 42fd4a: 66 0f 6f 4e e0 movdqa -0x20(%rsi),%xmm1 + 42fd4f: 66 0f 7f 47 f0 movdqa %xmm0,-0x10(%rdi) + 42fd54: 66 0f 7f 4f e0 movdqa %xmm1,-0x20(%rdi) + 42fd59: 66 0f 6f 46 d0 movdqa -0x30(%rsi),%xmm0 + 42fd5e: 66 0f 6f 4e c0 movdqa -0x40(%rsi),%xmm1 + 42fd63: 48 83 ee 40 sub $0x40,%rsi + 42fd67: 66 0f 7f 47 d0 movdqa %xmm0,-0x30(%rdi) + 42fd6c: 66 0f 7f 4f c0 movdqa %xmm1,-0x40(%rdi) + 42fd71: 48 83 ef 40 sub $0x40,%rdi + 42fd75: 4c 8d 1d 34 36 07 00 lea 0x73634(%rip),%r11 # 4a33b0 + 42fd7c: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 42fd80: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 42fd84: ff e2 jmpq *%rdx + 42fd86: 0f 0b ud2 + 42fd88: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 42fd8f: 00 + 42fd90: 0f 18 8e 40 fe ff ff prefetcht0 -0x1c0(%rsi) + 42fd97: 0f 18 8e 80 fd ff ff prefetcht0 -0x280(%rsi) + 42fd9e: 66 0f 6f 46 f0 movdqa -0x10(%rsi),%xmm0 + 42fda3: 66 0f 6f 4e e0 movdqa -0x20(%rsi),%xmm1 + 42fda8: 66 0f 6f 56 d0 movdqa -0x30(%rsi),%xmm2 + 42fdad: 66 0f 6f 5e c0 movdqa -0x40(%rsi),%xmm3 + 42fdb2: 66 0f 6f 66 b0 movdqa -0x50(%rsi),%xmm4 + 42fdb7: 66 0f 6f 6e a0 movdqa -0x60(%rsi),%xmm5 + 42fdbc: 66 0f 6f 76 90 movdqa -0x70(%rsi),%xmm6 + 42fdc1: 66 0f 6f 7e 80 movdqa -0x80(%rsi),%xmm7 + 42fdc6: 48 8d 76 80 lea -0x80(%rsi),%rsi + 42fdca: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 42fdd1: 66 0f 7f 47 f0 movdqa %xmm0,-0x10(%rdi) + 42fdd6: 66 0f 7f 4f e0 movdqa %xmm1,-0x20(%rdi) + 42fddb: 66 0f 7f 57 d0 movdqa %xmm2,-0x30(%rdi) + 42fde0: 66 0f 7f 5f c0 movdqa %xmm3,-0x40(%rdi) + 42fde5: 66 0f 7f 67 b0 movdqa %xmm4,-0x50(%rdi) + 42fdea: 66 0f 7f 6f a0 movdqa %xmm5,-0x60(%rdi) + 42fdef: 66 0f 7f 77 90 movdqa %xmm6,-0x70(%rdi) + 42fdf4: 66 0f 7f 7f 80 movdqa %xmm7,-0x80(%rdi) + 42fdf9: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 42fdfd: 73 91 jae 42fd90 <__memmove_ssse3+0x440> + 42fdff: 48 83 fa c0 cmp $0xffffffffffffffc0,%rdx + 42fe03: 48 8d 92 80 00 00 00 lea 0x80(%rdx),%rdx + 42fe0a: 7c 34 jl 42fe40 <__memmove_ssse3+0x4f0> + 42fe0c: 66 0f 6f 46 f0 movdqa -0x10(%rsi),%xmm0 + 42fe11: 48 83 ea 40 sub $0x40,%rdx + 42fe15: 66 0f 6f 4e e0 movdqa -0x20(%rsi),%xmm1 + 42fe1a: 66 0f 7f 47 f0 movdqa %xmm0,-0x10(%rdi) + 42fe1f: 66 0f 7f 4f e0 movdqa %xmm1,-0x20(%rdi) + 42fe24: 66 0f 6f 46 d0 movdqa -0x30(%rsi),%xmm0 + 42fe29: 66 0f 6f 4e c0 movdqa -0x40(%rsi),%xmm1 + 42fe2e: 48 83 ee 40 sub $0x40,%rsi + 42fe32: 66 0f 7f 47 d0 movdqa %xmm0,-0x30(%rdi) + 42fe37: 66 0f 7f 4f c0 movdqa %xmm1,-0x40(%rdi) + 42fe3c: 48 83 ef 40 sub $0x40,%rdi + 42fe40: 48 83 fa 20 cmp $0x20,%rdx + 42fe44: 72 20 jb 42fe66 <__memmove_ssse3+0x516> + 42fe46: 66 0f 6f 46 f0 movdqa -0x10(%rsi),%xmm0 + 42fe4b: 48 83 ea 20 sub $0x20,%rdx + 42fe4f: 66 0f 6f 4e e0 movdqa -0x20(%rsi),%xmm1 + 42fe54: 48 83 ee 20 sub $0x20,%rsi + 42fe58: 66 0f 7f 47 f0 movdqa %xmm0,-0x10(%rdi) + 42fe5d: 66 0f 7f 4f e0 movdqa %xmm1,-0x20(%rdi) + 42fe62: 48 83 ef 20 sub $0x20,%rdi + 42fe66: 4c 8d 1d 43 35 07 00 lea 0x73543(%rip),%r11 # 4a33b0 + 42fe6d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 42fe71: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 42fe75: ff e2 jmpq *%rdx + 42fe77: 0f 0b ud2 + 42fe79: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 42fe80: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 42fe87: 48 39 ca cmp %rcx,%rdx + 42fe8a: 0f 28 4e ff movaps -0x1(%rsi),%xmm1 + 42fe8e: 72 07 jb 42fe97 <__memmove_ssse3+0x547> + 42fe90: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 42fe97: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 42fe9b: 41 ff e1 jmpq *%r9 + 42fe9e: 0f 0b ud2 + 42fea0: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 42fea7: 48 83 ea 40 sub $0x40,%rdx + 42feab: 0f 28 56 0f movaps 0xf(%rsi),%xmm2 + 42feaf: 0f 28 5e 1f movaps 0x1f(%rsi),%xmm3 + 42feb3: 0f 28 66 2f movaps 0x2f(%rsi),%xmm4 + 42feb7: 0f 28 6e 3f movaps 0x3f(%rsi),%xmm5 + 42febb: 66 0f 6f f5 movdqa %xmm5,%xmm6 + 42febf: 66 0f 3a 0f ec 01 palignr $0x1,%xmm4,%xmm5 + 42fec5: 48 8d 76 40 lea 0x40(%rsi),%rsi + 42fec9: 66 0f 3a 0f e3 01 palignr $0x1,%xmm3,%xmm4 + 42fecf: 66 0f 3a 0f da 01 palignr $0x1,%xmm2,%xmm3 + 42fed5: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 42fed9: 66 0f 3a 0f d1 01 palignr $0x1,%xmm1,%xmm2 + 42fedf: 66 0f 6f ce movdqa %xmm6,%xmm1 + 42fee3: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) + 42fee8: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 42feec: 72 0d jb 42fefb <__memmove_ssse3+0x5ab> + 42feee: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 42fef2: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 42fef6: 41 ff e1 jmpq *%r9 + 42fef9: 0f 0b ud2 + 42fefb: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 42feff: 48 8d 52 40 lea 0x40(%rdx),%rdx + 42ff03: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 42ff07: 48 01 d7 add %rdx,%rdi + 42ff0a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 42ff0f: 48 01 d6 add %rdx,%rsi + 42ff12: 4c 8d 1d 97 34 07 00 lea 0x73497(%rip),%r11 # 4a33b0 + 42ff19: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 42ff1d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 42ff21: ff e2 jmpq *%rdx + 42ff23: 0f 0b ud2 + 42ff25: 90 nop + 42ff26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42ff2d: 00 00 00 + 42ff30: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 42ff37: 48 39 ca cmp %rcx,%rdx + 42ff3a: 0f 28 4e ff movaps -0x1(%rsi),%xmm1 + 42ff3e: 72 07 jb 42ff47 <__memmove_ssse3+0x5f7> + 42ff40: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 42ff47: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 42ff4b: 41 ff e1 jmpq *%r9 + 42ff4e: 0f 0b ud2 + 42ff50: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 42ff57: 0f 28 56 ef movaps -0x11(%rsi),%xmm2 + 42ff5b: 48 83 ea 40 sub $0x40,%rdx + 42ff5f: 0f 28 5e df movaps -0x21(%rsi),%xmm3 + 42ff63: 0f 28 66 cf movaps -0x31(%rsi),%xmm4 + 42ff67: 0f 28 6e bf movaps -0x41(%rsi),%xmm5 + 42ff6b: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 42ff6f: 66 0f 3a 0f ca 01 palignr $0x1,%xmm2,%xmm1 + 42ff75: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 + 42ff7b: 66 0f 3a 0f dc 01 palignr $0x1,%xmm4,%xmm3 + 42ff81: 66 0f 3a 0f e5 01 palignr $0x1,%xmm5,%xmm4 + 42ff87: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 42ff8b: 0f 28 cd movaps %xmm5,%xmm1 + 42ff8e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 42ff92: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 42ff96: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 42ff9a: 72 08 jb 42ffa4 <__memmove_ssse3+0x654> + 42ff9c: 0f 29 27 movaps %xmm4,(%rdi) + 42ff9f: 41 ff e1 jmpq *%r9 + 42ffa2: 0f 0b ud2 + 42ffa4: 0f 29 27 movaps %xmm4,(%rdi) + 42ffa7: 48 8d 52 40 lea 0x40(%rdx),%rdx + 42ffab: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 42ffb0: 4c 8d 1d f9 33 07 00 lea 0x733f9(%rip),%r11 # 4a33b0 + 42ffb7: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 42ffbb: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 42ffbf: ff e2 jmpq *%rdx + 42ffc1: 0f 0b ud2 + 42ffc3: 0f 1f 00 nopl (%rax) + 42ffc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 42ffcd: 00 00 00 + 42ffd0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 42ffd7: 48 39 ca cmp %rcx,%rdx + 42ffda: 0f 28 4e fe movaps -0x2(%rsi),%xmm1 + 42ffde: 72 07 jb 42ffe7 <__memmove_ssse3+0x697> + 42ffe0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 42ffe7: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 42ffeb: 41 ff e1 jmpq *%r9 + 42ffee: 0f 0b ud2 + 42fff0: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 42fff7: 48 83 ea 40 sub $0x40,%rdx + 42fffb: 0f 28 56 0e movaps 0xe(%rsi),%xmm2 + 42ffff: 0f 28 5e 1e movaps 0x1e(%rsi),%xmm3 + 430003: 0f 28 66 2e movaps 0x2e(%rsi),%xmm4 + 430007: 0f 28 6e 3e movaps 0x3e(%rsi),%xmm5 + 43000b: 66 0f 6f f5 movdqa %xmm5,%xmm6 + 43000f: 66 0f 3a 0f ec 02 palignr $0x2,%xmm4,%xmm5 + 430015: 48 8d 76 40 lea 0x40(%rsi),%rsi + 430019: 66 0f 3a 0f e3 02 palignr $0x2,%xmm3,%xmm4 + 43001f: 66 0f 3a 0f da 02 palignr $0x2,%xmm2,%xmm3 + 430025: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 430029: 66 0f 3a 0f d1 02 palignr $0x2,%xmm1,%xmm2 + 43002f: 66 0f 6f ce movdqa %xmm6,%xmm1 + 430033: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) + 430038: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 43003c: 72 0d jb 43004b <__memmove_ssse3+0x6fb> + 43003e: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 430042: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430046: 41 ff e1 jmpq *%r9 + 430049: 0f 0b ud2 + 43004b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 43004f: 48 8d 52 40 lea 0x40(%rdx),%rdx + 430053: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430057: 48 01 d7 add %rdx,%rdi + 43005a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 43005f: 48 01 d6 add %rdx,%rsi + 430062: 4c 8d 1d 47 33 07 00 lea 0x73347(%rip),%r11 # 4a33b0 + 430069: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43006d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 430071: ff e2 jmpq *%rdx + 430073: 0f 0b ud2 + 430075: 90 nop + 430076: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43007d: 00 00 00 + 430080: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430087: 48 39 ca cmp %rcx,%rdx + 43008a: 0f 28 4e fe movaps -0x2(%rsi),%xmm1 + 43008e: 72 07 jb 430097 <__memmove_ssse3+0x747> + 430090: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430097: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 43009b: 41 ff e1 jmpq *%r9 + 43009e: 0f 0b ud2 + 4300a0: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 4300a7: 0f 28 56 ee movaps -0x12(%rsi),%xmm2 + 4300ab: 48 83 ea 40 sub $0x40,%rdx + 4300af: 0f 28 5e de movaps -0x22(%rsi),%xmm3 + 4300b3: 0f 28 66 ce movaps -0x32(%rsi),%xmm4 + 4300b7: 0f 28 6e be movaps -0x42(%rsi),%xmm5 + 4300bb: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 4300bf: 66 0f 3a 0f ca 02 palignr $0x2,%xmm2,%xmm1 + 4300c5: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 + 4300cb: 66 0f 3a 0f dc 02 palignr $0x2,%xmm4,%xmm3 + 4300d1: 66 0f 3a 0f e5 02 palignr $0x2,%xmm5,%xmm4 + 4300d7: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 4300db: 0f 28 cd movaps %xmm5,%xmm1 + 4300de: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 4300e2: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 4300e6: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 4300ea: 72 08 jb 4300f4 <__memmove_ssse3+0x7a4> + 4300ec: 0f 29 27 movaps %xmm4,(%rdi) + 4300ef: 41 ff e1 jmpq *%r9 + 4300f2: 0f 0b ud2 + 4300f4: 0f 29 27 movaps %xmm4,(%rdi) + 4300f7: 48 8d 52 40 lea 0x40(%rdx),%rdx + 4300fb: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 430100: 4c 8d 1d a9 32 07 00 lea 0x732a9(%rip),%r11 # 4a33b0 + 430107: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43010b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 43010f: ff e2 jmpq *%rdx + 430111: 0f 0b ud2 + 430113: 0f 1f 00 nopl (%rax) + 430116: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43011d: 00 00 00 + 430120: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430127: 48 39 ca cmp %rcx,%rdx + 43012a: 0f 28 4e fd movaps -0x3(%rsi),%xmm1 + 43012e: 72 07 jb 430137 <__memmove_ssse3+0x7e7> + 430130: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430137: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 43013b: 41 ff e1 jmpq *%r9 + 43013e: 0f 0b ud2 + 430140: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 430147: 48 83 ea 40 sub $0x40,%rdx + 43014b: 0f 28 56 0d movaps 0xd(%rsi),%xmm2 + 43014f: 0f 28 5e 1d movaps 0x1d(%rsi),%xmm3 + 430153: 0f 28 66 2d movaps 0x2d(%rsi),%xmm4 + 430157: 0f 28 6e 3d movaps 0x3d(%rsi),%xmm5 + 43015b: 66 0f 6f f5 movdqa %xmm5,%xmm6 + 43015f: 66 0f 3a 0f ec 03 palignr $0x3,%xmm4,%xmm5 + 430165: 48 8d 76 40 lea 0x40(%rsi),%rsi + 430169: 66 0f 3a 0f e3 03 palignr $0x3,%xmm3,%xmm4 + 43016f: 66 0f 3a 0f da 03 palignr $0x3,%xmm2,%xmm3 + 430175: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 430179: 66 0f 3a 0f d1 03 palignr $0x3,%xmm1,%xmm2 + 43017f: 66 0f 6f ce movdqa %xmm6,%xmm1 + 430183: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) + 430188: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 43018c: 72 0d jb 43019b <__memmove_ssse3+0x84b> + 43018e: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 430192: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430196: 41 ff e1 jmpq *%r9 + 430199: 0f 0b ud2 + 43019b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 43019f: 48 8d 52 40 lea 0x40(%rdx),%rdx + 4301a3: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 4301a7: 48 01 d7 add %rdx,%rdi + 4301aa: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 4301af: 48 01 d6 add %rdx,%rsi + 4301b2: 4c 8d 1d f7 31 07 00 lea 0x731f7(%rip),%r11 # 4a33b0 + 4301b9: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4301bd: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4301c1: ff e2 jmpq *%rdx + 4301c3: 0f 0b ud2 + 4301c5: 90 nop + 4301c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4301cd: 00 00 00 + 4301d0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 4301d7: 48 39 ca cmp %rcx,%rdx + 4301da: 0f 28 4e fd movaps -0x3(%rsi),%xmm1 + 4301de: 72 07 jb 4301e7 <__memmove_ssse3+0x897> + 4301e0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 4301e7: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 4301eb: 41 ff e1 jmpq *%r9 + 4301ee: 0f 0b ud2 + 4301f0: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 4301f7: 0f 28 56 ed movaps -0x13(%rsi),%xmm2 + 4301fb: 48 83 ea 40 sub $0x40,%rdx + 4301ff: 0f 28 5e dd movaps -0x23(%rsi),%xmm3 + 430203: 0f 28 66 cd movaps -0x33(%rsi),%xmm4 + 430207: 0f 28 6e bd movaps -0x43(%rsi),%xmm5 + 43020b: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 43020f: 66 0f 3a 0f ca 03 palignr $0x3,%xmm2,%xmm1 + 430215: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 + 43021b: 66 0f 3a 0f dc 03 palignr $0x3,%xmm4,%xmm3 + 430221: 66 0f 3a 0f e5 03 palignr $0x3,%xmm5,%xmm4 + 430227: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 43022b: 0f 28 cd movaps %xmm5,%xmm1 + 43022e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 430232: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 430236: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 43023a: 72 08 jb 430244 <__memmove_ssse3+0x8f4> + 43023c: 0f 29 27 movaps %xmm4,(%rdi) + 43023f: 41 ff e1 jmpq *%r9 + 430242: 0f 0b ud2 + 430244: 0f 29 27 movaps %xmm4,(%rdi) + 430247: 48 8d 52 40 lea 0x40(%rdx),%rdx + 43024b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 430250: 4c 8d 1d 59 31 07 00 lea 0x73159(%rip),%r11 # 4a33b0 + 430257: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43025b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 43025f: ff e2 jmpq *%rdx + 430261: 0f 0b ud2 + 430263: 0f 1f 00 nopl (%rax) + 430266: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43026d: 00 00 00 + 430270: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430277: 48 39 ca cmp %rcx,%rdx + 43027a: 0f 28 4e fc movaps -0x4(%rsi),%xmm1 + 43027e: 72 07 jb 430287 <__memmove_ssse3+0x937> + 430280: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430287: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 43028b: 41 ff e1 jmpq *%r9 + 43028e: 0f 0b ud2 + 430290: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 430297: 48 83 ea 40 sub $0x40,%rdx + 43029b: 0f 28 56 0c movaps 0xc(%rsi),%xmm2 + 43029f: 0f 28 5e 1c movaps 0x1c(%rsi),%xmm3 + 4302a3: 0f 28 66 2c movaps 0x2c(%rsi),%xmm4 + 4302a7: 0f 28 6e 3c movaps 0x3c(%rsi),%xmm5 + 4302ab: 66 0f 6f f5 movdqa %xmm5,%xmm6 + 4302af: 66 0f 3a 0f ec 04 palignr $0x4,%xmm4,%xmm5 + 4302b5: 48 8d 76 40 lea 0x40(%rsi),%rsi + 4302b9: 66 0f 3a 0f e3 04 palignr $0x4,%xmm3,%xmm4 + 4302bf: 66 0f 3a 0f da 04 palignr $0x4,%xmm2,%xmm3 + 4302c5: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 4302c9: 66 0f 3a 0f d1 04 palignr $0x4,%xmm1,%xmm2 + 4302cf: 66 0f 6f ce movdqa %xmm6,%xmm1 + 4302d3: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) + 4302d8: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 4302dc: 72 0d jb 4302eb <__memmove_ssse3+0x99b> + 4302de: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 4302e2: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 4302e6: 41 ff e1 jmpq *%r9 + 4302e9: 0f 0b ud2 + 4302eb: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 4302ef: 48 8d 52 40 lea 0x40(%rdx),%rdx + 4302f3: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 4302f7: 48 01 d7 add %rdx,%rdi + 4302fa: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 4302ff: 48 01 d6 add %rdx,%rsi + 430302: 4c 8d 1d a7 30 07 00 lea 0x730a7(%rip),%r11 # 4a33b0 + 430309: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43030d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 430311: ff e2 jmpq *%rdx + 430313: 0f 0b ud2 + 430315: 90 nop + 430316: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43031d: 00 00 00 + 430320: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430327: 48 39 ca cmp %rcx,%rdx + 43032a: 0f 28 4e fc movaps -0x4(%rsi),%xmm1 + 43032e: 72 07 jb 430337 <__memmove_ssse3+0x9e7> + 430330: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430337: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 43033b: 41 ff e1 jmpq *%r9 + 43033e: 0f 0b ud2 + 430340: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 430347: 0f 28 56 ec movaps -0x14(%rsi),%xmm2 + 43034b: 48 83 ea 40 sub $0x40,%rdx + 43034f: 0f 28 5e dc movaps -0x24(%rsi),%xmm3 + 430353: 0f 28 66 cc movaps -0x34(%rsi),%xmm4 + 430357: 0f 28 6e bc movaps -0x44(%rsi),%xmm5 + 43035b: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 43035f: 66 0f 3a 0f ca 04 palignr $0x4,%xmm2,%xmm1 + 430365: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 + 43036b: 66 0f 3a 0f dc 04 palignr $0x4,%xmm4,%xmm3 + 430371: 66 0f 3a 0f e5 04 palignr $0x4,%xmm5,%xmm4 + 430377: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 43037b: 0f 28 cd movaps %xmm5,%xmm1 + 43037e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 430382: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 430386: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 43038a: 72 08 jb 430394 <__memmove_ssse3+0xa44> + 43038c: 0f 29 27 movaps %xmm4,(%rdi) + 43038f: 41 ff e1 jmpq *%r9 + 430392: 0f 0b ud2 + 430394: 0f 29 27 movaps %xmm4,(%rdi) + 430397: 48 8d 52 40 lea 0x40(%rdx),%rdx + 43039b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 4303a0: 4c 8d 1d 09 30 07 00 lea 0x73009(%rip),%r11 # 4a33b0 + 4303a7: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4303ab: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4303af: ff e2 jmpq *%rdx + 4303b1: 0f 0b ud2 + 4303b3: 0f 1f 00 nopl (%rax) + 4303b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4303bd: 00 00 00 + 4303c0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 4303c7: 48 39 ca cmp %rcx,%rdx + 4303ca: 0f 28 4e fb movaps -0x5(%rsi),%xmm1 + 4303ce: 72 07 jb 4303d7 <__memmove_ssse3+0xa87> + 4303d0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 4303d7: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 4303db: 41 ff e1 jmpq *%r9 + 4303de: 0f 0b ud2 + 4303e0: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 4303e7: 48 83 ea 40 sub $0x40,%rdx + 4303eb: 0f 28 56 0b movaps 0xb(%rsi),%xmm2 + 4303ef: 0f 28 5e 1b movaps 0x1b(%rsi),%xmm3 + 4303f3: 0f 28 66 2b movaps 0x2b(%rsi),%xmm4 + 4303f7: 0f 28 6e 3b movaps 0x3b(%rsi),%xmm5 + 4303fb: 66 0f 6f f5 movdqa %xmm5,%xmm6 + 4303ff: 66 0f 3a 0f ec 05 palignr $0x5,%xmm4,%xmm5 + 430405: 48 8d 76 40 lea 0x40(%rsi),%rsi + 430409: 66 0f 3a 0f e3 05 palignr $0x5,%xmm3,%xmm4 + 43040f: 66 0f 3a 0f da 05 palignr $0x5,%xmm2,%xmm3 + 430415: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 430419: 66 0f 3a 0f d1 05 palignr $0x5,%xmm1,%xmm2 + 43041f: 66 0f 6f ce movdqa %xmm6,%xmm1 + 430423: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) + 430428: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 43042c: 72 0d jb 43043b <__memmove_ssse3+0xaeb> + 43042e: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 430432: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430436: 41 ff e1 jmpq *%r9 + 430439: 0f 0b ud2 + 43043b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 43043f: 48 8d 52 40 lea 0x40(%rdx),%rdx + 430443: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430447: 48 01 d7 add %rdx,%rdi + 43044a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 43044f: 48 01 d6 add %rdx,%rsi + 430452: 4c 8d 1d 57 2f 07 00 lea 0x72f57(%rip),%r11 # 4a33b0 + 430459: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43045d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 430461: ff e2 jmpq *%rdx + 430463: 0f 0b ud2 + 430465: 90 nop + 430466: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43046d: 00 00 00 + 430470: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430477: 48 39 ca cmp %rcx,%rdx + 43047a: 0f 28 4e fb movaps -0x5(%rsi),%xmm1 + 43047e: 72 07 jb 430487 <__memmove_ssse3+0xb37> + 430480: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430487: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 43048b: 41 ff e1 jmpq *%r9 + 43048e: 0f 0b ud2 + 430490: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 430497: 0f 28 56 eb movaps -0x15(%rsi),%xmm2 + 43049b: 48 83 ea 40 sub $0x40,%rdx + 43049f: 0f 28 5e db movaps -0x25(%rsi),%xmm3 + 4304a3: 0f 28 66 cb movaps -0x35(%rsi),%xmm4 + 4304a7: 0f 28 6e bb movaps -0x45(%rsi),%xmm5 + 4304ab: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 4304af: 66 0f 3a 0f ca 05 palignr $0x5,%xmm2,%xmm1 + 4304b5: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 + 4304bb: 66 0f 3a 0f dc 05 palignr $0x5,%xmm4,%xmm3 + 4304c1: 66 0f 3a 0f e5 05 palignr $0x5,%xmm5,%xmm4 + 4304c7: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 4304cb: 0f 28 cd movaps %xmm5,%xmm1 + 4304ce: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 4304d2: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 4304d6: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 4304da: 72 08 jb 4304e4 <__memmove_ssse3+0xb94> + 4304dc: 0f 29 27 movaps %xmm4,(%rdi) + 4304df: 41 ff e1 jmpq *%r9 + 4304e2: 0f 0b ud2 + 4304e4: 0f 29 27 movaps %xmm4,(%rdi) + 4304e7: 48 8d 52 40 lea 0x40(%rdx),%rdx + 4304eb: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 4304f0: 4c 8d 1d b9 2e 07 00 lea 0x72eb9(%rip),%r11 # 4a33b0 + 4304f7: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4304fb: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4304ff: ff e2 jmpq *%rdx + 430501: 0f 0b ud2 + 430503: 0f 1f 00 nopl (%rax) + 430506: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43050d: 00 00 00 + 430510: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430517: 48 39 ca cmp %rcx,%rdx + 43051a: 0f 28 4e fa movaps -0x6(%rsi),%xmm1 + 43051e: 72 07 jb 430527 <__memmove_ssse3+0xbd7> + 430520: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430527: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 43052b: 41 ff e1 jmpq *%r9 + 43052e: 0f 0b ud2 + 430530: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 430537: 48 83 ea 40 sub $0x40,%rdx + 43053b: 0f 28 56 0a movaps 0xa(%rsi),%xmm2 + 43053f: 0f 28 5e 1a movaps 0x1a(%rsi),%xmm3 + 430543: 0f 28 66 2a movaps 0x2a(%rsi),%xmm4 + 430547: 0f 28 6e 3a movaps 0x3a(%rsi),%xmm5 + 43054b: 66 0f 6f f5 movdqa %xmm5,%xmm6 + 43054f: 66 0f 3a 0f ec 06 palignr $0x6,%xmm4,%xmm5 + 430555: 48 8d 76 40 lea 0x40(%rsi),%rsi + 430559: 66 0f 3a 0f e3 06 palignr $0x6,%xmm3,%xmm4 + 43055f: 66 0f 3a 0f da 06 palignr $0x6,%xmm2,%xmm3 + 430565: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 430569: 66 0f 3a 0f d1 06 palignr $0x6,%xmm1,%xmm2 + 43056f: 66 0f 6f ce movdqa %xmm6,%xmm1 + 430573: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) + 430578: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 43057c: 72 0d jb 43058b <__memmove_ssse3+0xc3b> + 43057e: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 430582: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430586: 41 ff e1 jmpq *%r9 + 430589: 0f 0b ud2 + 43058b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 43058f: 48 8d 52 40 lea 0x40(%rdx),%rdx + 430593: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430597: 48 01 d7 add %rdx,%rdi + 43059a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 43059f: 48 01 d6 add %rdx,%rsi + 4305a2: 4c 8d 1d 07 2e 07 00 lea 0x72e07(%rip),%r11 # 4a33b0 + 4305a9: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4305ad: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4305b1: ff e2 jmpq *%rdx + 4305b3: 0f 0b ud2 + 4305b5: 90 nop + 4305b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4305bd: 00 00 00 + 4305c0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 4305c7: 48 39 ca cmp %rcx,%rdx + 4305ca: 0f 28 4e fa movaps -0x6(%rsi),%xmm1 + 4305ce: 72 07 jb 4305d7 <__memmove_ssse3+0xc87> + 4305d0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 4305d7: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 4305db: 41 ff e1 jmpq *%r9 + 4305de: 0f 0b ud2 + 4305e0: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 4305e7: 0f 28 56 ea movaps -0x16(%rsi),%xmm2 + 4305eb: 48 83 ea 40 sub $0x40,%rdx + 4305ef: 0f 28 5e da movaps -0x26(%rsi),%xmm3 + 4305f3: 0f 28 66 ca movaps -0x36(%rsi),%xmm4 + 4305f7: 0f 28 6e ba movaps -0x46(%rsi),%xmm5 + 4305fb: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 4305ff: 66 0f 3a 0f ca 06 palignr $0x6,%xmm2,%xmm1 + 430605: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 + 43060b: 66 0f 3a 0f dc 06 palignr $0x6,%xmm4,%xmm3 + 430611: 66 0f 3a 0f e5 06 palignr $0x6,%xmm5,%xmm4 + 430617: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 43061b: 0f 28 cd movaps %xmm5,%xmm1 + 43061e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 430622: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 430626: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 43062a: 72 08 jb 430634 <__memmove_ssse3+0xce4> + 43062c: 0f 29 27 movaps %xmm4,(%rdi) + 43062f: 41 ff e1 jmpq *%r9 + 430632: 0f 0b ud2 + 430634: 0f 29 27 movaps %xmm4,(%rdi) + 430637: 48 8d 52 40 lea 0x40(%rdx),%rdx + 43063b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 430640: 4c 8d 1d 69 2d 07 00 lea 0x72d69(%rip),%r11 # 4a33b0 + 430647: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43064b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 43064f: ff e2 jmpq *%rdx + 430651: 0f 0b ud2 + 430653: 0f 1f 00 nopl (%rax) + 430656: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43065d: 00 00 00 + 430660: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430667: 48 39 ca cmp %rcx,%rdx + 43066a: 0f 28 4e f9 movaps -0x7(%rsi),%xmm1 + 43066e: 72 07 jb 430677 <__memmove_ssse3+0xd27> + 430670: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430677: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 43067b: 41 ff e1 jmpq *%r9 + 43067e: 0f 0b ud2 + 430680: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 430687: 48 83 ea 40 sub $0x40,%rdx + 43068b: 0f 28 56 09 movaps 0x9(%rsi),%xmm2 + 43068f: 0f 28 5e 19 movaps 0x19(%rsi),%xmm3 + 430693: 0f 28 66 29 movaps 0x29(%rsi),%xmm4 + 430697: 0f 28 6e 39 movaps 0x39(%rsi),%xmm5 + 43069b: 66 0f 6f f5 movdqa %xmm5,%xmm6 + 43069f: 66 0f 3a 0f ec 07 palignr $0x7,%xmm4,%xmm5 + 4306a5: 48 8d 76 40 lea 0x40(%rsi),%rsi + 4306a9: 66 0f 3a 0f e3 07 palignr $0x7,%xmm3,%xmm4 + 4306af: 66 0f 3a 0f da 07 palignr $0x7,%xmm2,%xmm3 + 4306b5: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 4306b9: 66 0f 3a 0f d1 07 palignr $0x7,%xmm1,%xmm2 + 4306bf: 66 0f 6f ce movdqa %xmm6,%xmm1 + 4306c3: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) + 4306c8: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 4306cc: 72 0d jb 4306db <__memmove_ssse3+0xd8b> + 4306ce: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 4306d2: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 4306d6: 41 ff e1 jmpq *%r9 + 4306d9: 0f 0b ud2 + 4306db: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 4306df: 48 8d 52 40 lea 0x40(%rdx),%rdx + 4306e3: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 4306e7: 48 01 d7 add %rdx,%rdi + 4306ea: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 4306ef: 48 01 d6 add %rdx,%rsi + 4306f2: 4c 8d 1d b7 2c 07 00 lea 0x72cb7(%rip),%r11 # 4a33b0 + 4306f9: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4306fd: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 430701: ff e2 jmpq *%rdx + 430703: 0f 0b ud2 + 430705: 90 nop + 430706: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43070d: 00 00 00 + 430710: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430717: 48 39 ca cmp %rcx,%rdx + 43071a: 0f 28 4e f9 movaps -0x7(%rsi),%xmm1 + 43071e: 72 07 jb 430727 <__memmove_ssse3+0xdd7> + 430720: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430727: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 43072b: 41 ff e1 jmpq *%r9 + 43072e: 0f 0b ud2 + 430730: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 430737: 0f 28 56 e9 movaps -0x17(%rsi),%xmm2 + 43073b: 48 83 ea 40 sub $0x40,%rdx + 43073f: 0f 28 5e d9 movaps -0x27(%rsi),%xmm3 + 430743: 0f 28 66 c9 movaps -0x37(%rsi),%xmm4 + 430747: 0f 28 6e b9 movaps -0x47(%rsi),%xmm5 + 43074b: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 43074f: 66 0f 3a 0f ca 07 palignr $0x7,%xmm2,%xmm1 + 430755: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 + 43075b: 66 0f 3a 0f dc 07 palignr $0x7,%xmm4,%xmm3 + 430761: 66 0f 3a 0f e5 07 palignr $0x7,%xmm5,%xmm4 + 430767: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 43076b: 0f 28 cd movaps %xmm5,%xmm1 + 43076e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 430772: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 430776: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 43077a: 72 08 jb 430784 <__memmove_ssse3+0xe34> + 43077c: 0f 29 27 movaps %xmm4,(%rdi) + 43077f: 41 ff e1 jmpq *%r9 + 430782: 0f 0b ud2 + 430784: 0f 29 27 movaps %xmm4,(%rdi) + 430787: 48 8d 52 40 lea 0x40(%rdx),%rdx + 43078b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 430790: 4c 8d 1d 19 2c 07 00 lea 0x72c19(%rip),%r11 # 4a33b0 + 430797: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43079b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 43079f: ff e2 jmpq *%rdx + 4307a1: 0f 0b ud2 + 4307a3: 0f 1f 00 nopl (%rax) + 4307a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4307ad: 00 00 00 + 4307b0: 4d 8d 89 25 00 00 00 lea 0x25(%r9),%r9 + 4307b7: 48 39 ca cmp %rcx,%rdx + 4307ba: 0f 28 4e f8 movaps -0x8(%rsi),%xmm1 + 4307be: 72 07 jb 4307c7 <__memmove_ssse3+0xe77> + 4307c0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 4307c7: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 4307cb: 41 ff e1 jmpq *%r9 + 4307ce: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 4307d5: 48 83 ea 40 sub $0x40,%rdx + 4307d9: 0f 28 56 08 movaps 0x8(%rsi),%xmm2 + 4307dd: 0f 28 5e 18 movaps 0x18(%rsi),%xmm3 + 4307e1: 0f 28 66 28 movaps 0x28(%rsi),%xmm4 + 4307e5: 0f 28 6e 38 movaps 0x38(%rsi),%xmm5 + 4307e9: 66 0f 6f f5 movdqa %xmm5,%xmm6 + 4307ed: 66 0f 3a 0f ec 08 palignr $0x8,%xmm4,%xmm5 + 4307f3: 48 8d 76 40 lea 0x40(%rsi),%rsi + 4307f7: 66 0f 3a 0f e3 08 palignr $0x8,%xmm3,%xmm4 + 4307fd: 66 0f 3a 0f da 08 palignr $0x8,%xmm2,%xmm3 + 430803: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 430807: 66 0f 3a 0f d1 08 palignr $0x8,%xmm1,%xmm2 + 43080d: 66 0f 6f ce movdqa %xmm6,%xmm1 + 430811: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) + 430816: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 43081a: 72 14 jb 430830 <__memmove_ssse3+0xee0> + 43081c: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 430820: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430824: 41 ff e1 jmpq *%r9 + 430827: 0f 0b ud2 + 430829: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 430830: 48 8d 52 40 lea 0x40(%rdx),%rdx + 430834: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 430838: 48 01 d6 add %rdx,%rsi + 43083b: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 43083f: 48 01 d7 add %rdx,%rdi + 430842: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 430847: 4c 8d 1d 62 2b 07 00 lea 0x72b62(%rip),%r11 # 4a33b0 + 43084e: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 430852: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 430856: ff e2 jmpq *%rdx + 430858: 0f 0b ud2 + 43085a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 430860: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430867: 48 39 ca cmp %rcx,%rdx + 43086a: 0f 28 4e f8 movaps -0x8(%rsi),%xmm1 + 43086e: 72 07 jb 430877 <__memmove_ssse3+0xf27> + 430870: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430877: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 43087b: 41 ff e1 jmpq *%r9 + 43087e: 0f 0b ud2 + 430880: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 430887: 0f 28 56 e8 movaps -0x18(%rsi),%xmm2 + 43088b: 48 83 ea 40 sub $0x40,%rdx + 43088f: 0f 28 5e d8 movaps -0x28(%rsi),%xmm3 + 430893: 0f 28 66 c8 movaps -0x38(%rsi),%xmm4 + 430897: 0f 28 6e b8 movaps -0x48(%rsi),%xmm5 + 43089b: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 43089f: 66 0f 3a 0f ca 08 palignr $0x8,%xmm2,%xmm1 + 4308a5: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 + 4308ab: 66 0f 3a 0f dc 08 palignr $0x8,%xmm4,%xmm3 + 4308b1: 66 0f 3a 0f e5 08 palignr $0x8,%xmm5,%xmm4 + 4308b7: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 4308bb: 0f 28 cd movaps %xmm5,%xmm1 + 4308be: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 4308c2: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 4308c6: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 4308ca: 72 08 jb 4308d4 <__memmove_ssse3+0xf84> + 4308cc: 0f 29 27 movaps %xmm4,(%rdi) + 4308cf: 41 ff e1 jmpq *%r9 + 4308d2: 0f 0b ud2 + 4308d4: 0f 29 27 movaps %xmm4,(%rdi) + 4308d7: 48 8d 52 40 lea 0x40(%rdx),%rdx + 4308db: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 4308e0: 4c 8d 1d c9 2a 07 00 lea 0x72ac9(%rip),%r11 # 4a33b0 + 4308e7: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4308eb: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4308ef: ff e2 jmpq *%rdx + 4308f1: 0f 0b ud2 + 4308f3: 0f 1f 00 nopl (%rax) + 4308f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4308fd: 00 00 00 + 430900: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430907: 48 39 ca cmp %rcx,%rdx + 43090a: 0f 28 4e f7 movaps -0x9(%rsi),%xmm1 + 43090e: 72 07 jb 430917 <__memmove_ssse3+0xfc7> + 430910: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430917: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 43091b: 41 ff e1 jmpq *%r9 + 43091e: 0f 0b ud2 + 430920: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 430927: 48 83 ea 40 sub $0x40,%rdx + 43092b: 0f 28 56 07 movaps 0x7(%rsi),%xmm2 + 43092f: 0f 28 5e 17 movaps 0x17(%rsi),%xmm3 + 430933: 0f 28 66 27 movaps 0x27(%rsi),%xmm4 + 430937: 0f 28 6e 37 movaps 0x37(%rsi),%xmm5 + 43093b: 66 0f 6f f5 movdqa %xmm5,%xmm6 + 43093f: 66 0f 3a 0f ec 09 palignr $0x9,%xmm4,%xmm5 + 430945: 48 8d 76 40 lea 0x40(%rsi),%rsi + 430949: 66 0f 3a 0f e3 09 palignr $0x9,%xmm3,%xmm4 + 43094f: 66 0f 3a 0f da 09 palignr $0x9,%xmm2,%xmm3 + 430955: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 430959: 66 0f 3a 0f d1 09 palignr $0x9,%xmm1,%xmm2 + 43095f: 66 0f 6f ce movdqa %xmm6,%xmm1 + 430963: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) + 430968: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 43096c: 72 0d jb 43097b <__memmove_ssse3+0x102b> + 43096e: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 430972: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430976: 41 ff e1 jmpq *%r9 + 430979: 0f 0b ud2 + 43097b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 43097f: 48 8d 52 40 lea 0x40(%rdx),%rdx + 430983: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430987: 48 01 d7 add %rdx,%rdi + 43098a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 43098f: 48 01 d6 add %rdx,%rsi + 430992: 4c 8d 1d 17 2a 07 00 lea 0x72a17(%rip),%r11 # 4a33b0 + 430999: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43099d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4309a1: ff e2 jmpq *%rdx + 4309a3: 0f 0b ud2 + 4309a5: 90 nop + 4309a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4309ad: 00 00 00 + 4309b0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 4309b7: 48 39 ca cmp %rcx,%rdx + 4309ba: 0f 28 4e f7 movaps -0x9(%rsi),%xmm1 + 4309be: 72 07 jb 4309c7 <__memmove_ssse3+0x1077> + 4309c0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 4309c7: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 4309cb: 41 ff e1 jmpq *%r9 + 4309ce: 0f 0b ud2 + 4309d0: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 4309d7: 0f 28 56 e7 movaps -0x19(%rsi),%xmm2 + 4309db: 48 83 ea 40 sub $0x40,%rdx + 4309df: 0f 28 5e d7 movaps -0x29(%rsi),%xmm3 + 4309e3: 0f 28 66 c7 movaps -0x39(%rsi),%xmm4 + 4309e7: 0f 28 6e b7 movaps -0x49(%rsi),%xmm5 + 4309eb: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 4309ef: 66 0f 3a 0f ca 09 palignr $0x9,%xmm2,%xmm1 + 4309f5: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 + 4309fb: 66 0f 3a 0f dc 09 palignr $0x9,%xmm4,%xmm3 + 430a01: 66 0f 3a 0f e5 09 palignr $0x9,%xmm5,%xmm4 + 430a07: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 430a0b: 0f 28 cd movaps %xmm5,%xmm1 + 430a0e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 430a12: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 430a16: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 430a1a: 72 08 jb 430a24 <__memmove_ssse3+0x10d4> + 430a1c: 0f 29 27 movaps %xmm4,(%rdi) + 430a1f: 41 ff e1 jmpq *%r9 + 430a22: 0f 0b ud2 + 430a24: 0f 29 27 movaps %xmm4,(%rdi) + 430a27: 48 8d 52 40 lea 0x40(%rdx),%rdx + 430a2b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 430a30: 4c 8d 1d 79 29 07 00 lea 0x72979(%rip),%r11 # 4a33b0 + 430a37: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 430a3b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 430a3f: ff e2 jmpq *%rdx + 430a41: 0f 0b ud2 + 430a43: 0f 1f 00 nopl (%rax) + 430a46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 430a4d: 00 00 00 + 430a50: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430a57: 48 39 ca cmp %rcx,%rdx + 430a5a: 0f 28 4e f6 movaps -0xa(%rsi),%xmm1 + 430a5e: 72 07 jb 430a67 <__memmove_ssse3+0x1117> + 430a60: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430a67: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 430a6b: 41 ff e1 jmpq *%r9 + 430a6e: 0f 0b ud2 + 430a70: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 430a77: 48 83 ea 40 sub $0x40,%rdx + 430a7b: 0f 28 56 06 movaps 0x6(%rsi),%xmm2 + 430a7f: 0f 28 5e 16 movaps 0x16(%rsi),%xmm3 + 430a83: 0f 28 66 26 movaps 0x26(%rsi),%xmm4 + 430a87: 0f 28 6e 36 movaps 0x36(%rsi),%xmm5 + 430a8b: 66 0f 6f f5 movdqa %xmm5,%xmm6 + 430a8f: 66 0f 3a 0f ec 0a palignr $0xa,%xmm4,%xmm5 + 430a95: 48 8d 76 40 lea 0x40(%rsi),%rsi + 430a99: 66 0f 3a 0f e3 0a palignr $0xa,%xmm3,%xmm4 + 430a9f: 66 0f 3a 0f da 0a palignr $0xa,%xmm2,%xmm3 + 430aa5: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 430aa9: 66 0f 3a 0f d1 0a palignr $0xa,%xmm1,%xmm2 + 430aaf: 66 0f 6f ce movdqa %xmm6,%xmm1 + 430ab3: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) + 430ab8: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 430abc: 72 0d jb 430acb <__memmove_ssse3+0x117b> + 430abe: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 430ac2: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430ac6: 41 ff e1 jmpq *%r9 + 430ac9: 0f 0b ud2 + 430acb: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 430acf: 48 8d 52 40 lea 0x40(%rdx),%rdx + 430ad3: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430ad7: 48 01 d7 add %rdx,%rdi + 430ada: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 430adf: 48 01 d6 add %rdx,%rsi + 430ae2: 4c 8d 1d c7 28 07 00 lea 0x728c7(%rip),%r11 # 4a33b0 + 430ae9: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 430aed: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 430af1: ff e2 jmpq *%rdx + 430af3: 0f 0b ud2 + 430af5: 90 nop + 430af6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 430afd: 00 00 00 + 430b00: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430b07: 48 39 ca cmp %rcx,%rdx + 430b0a: 0f 28 4e f6 movaps -0xa(%rsi),%xmm1 + 430b0e: 72 07 jb 430b17 <__memmove_ssse3+0x11c7> + 430b10: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430b17: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 430b1b: 41 ff e1 jmpq *%r9 + 430b1e: 0f 0b ud2 + 430b20: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 430b27: 0f 28 56 e6 movaps -0x1a(%rsi),%xmm2 + 430b2b: 48 83 ea 40 sub $0x40,%rdx + 430b2f: 0f 28 5e d6 movaps -0x2a(%rsi),%xmm3 + 430b33: 0f 28 66 c6 movaps -0x3a(%rsi),%xmm4 + 430b37: 0f 28 6e b6 movaps -0x4a(%rsi),%xmm5 + 430b3b: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 430b3f: 66 0f 3a 0f ca 0a palignr $0xa,%xmm2,%xmm1 + 430b45: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 + 430b4b: 66 0f 3a 0f dc 0a palignr $0xa,%xmm4,%xmm3 + 430b51: 66 0f 3a 0f e5 0a palignr $0xa,%xmm5,%xmm4 + 430b57: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 430b5b: 0f 28 cd movaps %xmm5,%xmm1 + 430b5e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 430b62: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 430b66: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 430b6a: 72 08 jb 430b74 <__memmove_ssse3+0x1224> + 430b6c: 0f 29 27 movaps %xmm4,(%rdi) + 430b6f: 41 ff e1 jmpq *%r9 + 430b72: 0f 0b ud2 + 430b74: 0f 29 27 movaps %xmm4,(%rdi) + 430b77: 48 8d 52 40 lea 0x40(%rdx),%rdx + 430b7b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 430b80: 4c 8d 1d 29 28 07 00 lea 0x72829(%rip),%r11 # 4a33b0 + 430b87: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 430b8b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 430b8f: ff e2 jmpq *%rdx + 430b91: 0f 0b ud2 + 430b93: 0f 1f 00 nopl (%rax) + 430b96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 430b9d: 00 00 00 + 430ba0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430ba7: 48 39 ca cmp %rcx,%rdx + 430baa: 0f 28 4e f5 movaps -0xb(%rsi),%xmm1 + 430bae: 72 07 jb 430bb7 <__memmove_ssse3+0x1267> + 430bb0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430bb7: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 430bbb: 41 ff e1 jmpq *%r9 + 430bbe: 0f 0b ud2 + 430bc0: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 430bc7: 48 83 ea 40 sub $0x40,%rdx + 430bcb: 0f 28 56 05 movaps 0x5(%rsi),%xmm2 + 430bcf: 0f 28 5e 15 movaps 0x15(%rsi),%xmm3 + 430bd3: 0f 28 66 25 movaps 0x25(%rsi),%xmm4 + 430bd7: 0f 28 6e 35 movaps 0x35(%rsi),%xmm5 + 430bdb: 66 0f 6f f5 movdqa %xmm5,%xmm6 + 430bdf: 66 0f 3a 0f ec 0b palignr $0xb,%xmm4,%xmm5 + 430be5: 48 8d 76 40 lea 0x40(%rsi),%rsi + 430be9: 66 0f 3a 0f e3 0b palignr $0xb,%xmm3,%xmm4 + 430bef: 66 0f 3a 0f da 0b palignr $0xb,%xmm2,%xmm3 + 430bf5: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 430bf9: 66 0f 3a 0f d1 0b palignr $0xb,%xmm1,%xmm2 + 430bff: 66 0f 6f ce movdqa %xmm6,%xmm1 + 430c03: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) + 430c08: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 430c0c: 72 0d jb 430c1b <__memmove_ssse3+0x12cb> + 430c0e: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 430c12: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430c16: 41 ff e1 jmpq *%r9 + 430c19: 0f 0b ud2 + 430c1b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 430c1f: 48 8d 52 40 lea 0x40(%rdx),%rdx + 430c23: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430c27: 48 01 d7 add %rdx,%rdi + 430c2a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 430c2f: 48 01 d6 add %rdx,%rsi + 430c32: 4c 8d 1d 77 27 07 00 lea 0x72777(%rip),%r11 # 4a33b0 + 430c39: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 430c3d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 430c41: ff e2 jmpq *%rdx + 430c43: 0f 0b ud2 + 430c45: 90 nop + 430c46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 430c4d: 00 00 00 + 430c50: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430c57: 48 39 ca cmp %rcx,%rdx + 430c5a: 0f 28 4e f5 movaps -0xb(%rsi),%xmm1 + 430c5e: 72 07 jb 430c67 <__memmove_ssse3+0x1317> + 430c60: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430c67: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 430c6b: 41 ff e1 jmpq *%r9 + 430c6e: 0f 0b ud2 + 430c70: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 430c77: 0f 28 56 e5 movaps -0x1b(%rsi),%xmm2 + 430c7b: 48 83 ea 40 sub $0x40,%rdx + 430c7f: 0f 28 5e d5 movaps -0x2b(%rsi),%xmm3 + 430c83: 0f 28 66 c5 movaps -0x3b(%rsi),%xmm4 + 430c87: 0f 28 6e b5 movaps -0x4b(%rsi),%xmm5 + 430c8b: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 430c8f: 66 0f 3a 0f ca 0b palignr $0xb,%xmm2,%xmm1 + 430c95: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 + 430c9b: 66 0f 3a 0f dc 0b palignr $0xb,%xmm4,%xmm3 + 430ca1: 66 0f 3a 0f e5 0b palignr $0xb,%xmm5,%xmm4 + 430ca7: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 430cab: 0f 28 cd movaps %xmm5,%xmm1 + 430cae: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 430cb2: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 430cb6: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 430cba: 72 08 jb 430cc4 <__memmove_ssse3+0x1374> + 430cbc: 0f 29 27 movaps %xmm4,(%rdi) + 430cbf: 41 ff e1 jmpq *%r9 + 430cc2: 0f 0b ud2 + 430cc4: 0f 29 27 movaps %xmm4,(%rdi) + 430cc7: 48 8d 52 40 lea 0x40(%rdx),%rdx + 430ccb: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 430cd0: 4c 8d 1d d9 26 07 00 lea 0x726d9(%rip),%r11 # 4a33b0 + 430cd7: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 430cdb: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 430cdf: ff e2 jmpq *%rdx + 430ce1: 0f 0b ud2 + 430ce3: 0f 1f 00 nopl (%rax) + 430ce6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 430ced: 00 00 00 + 430cf0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430cf7: 48 39 ca cmp %rcx,%rdx + 430cfa: 0f 28 4e f4 movaps -0xc(%rsi),%xmm1 + 430cfe: 72 07 jb 430d07 <__memmove_ssse3+0x13b7> + 430d00: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430d07: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 430d0b: 41 ff e1 jmpq *%r9 + 430d0e: 0f 0b ud2 + 430d10: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 430d17: 48 83 ea 40 sub $0x40,%rdx + 430d1b: 0f 28 56 04 movaps 0x4(%rsi),%xmm2 + 430d1f: 0f 28 5e 14 movaps 0x14(%rsi),%xmm3 + 430d23: 0f 28 66 24 movaps 0x24(%rsi),%xmm4 + 430d27: 0f 28 6e 34 movaps 0x34(%rsi),%xmm5 + 430d2b: 66 0f 6f f5 movdqa %xmm5,%xmm6 + 430d2f: 66 0f 3a 0f ec 0c palignr $0xc,%xmm4,%xmm5 + 430d35: 48 8d 76 40 lea 0x40(%rsi),%rsi + 430d39: 66 0f 3a 0f e3 0c palignr $0xc,%xmm3,%xmm4 + 430d3f: 66 0f 3a 0f da 0c palignr $0xc,%xmm2,%xmm3 + 430d45: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 430d49: 66 0f 3a 0f d1 0c palignr $0xc,%xmm1,%xmm2 + 430d4f: 66 0f 6f ce movdqa %xmm6,%xmm1 + 430d53: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) + 430d58: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 430d5c: 72 0d jb 430d6b <__memmove_ssse3+0x141b> + 430d5e: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 430d62: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430d66: 41 ff e1 jmpq *%r9 + 430d69: 0f 0b ud2 + 430d6b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 430d6f: 48 8d 52 40 lea 0x40(%rdx),%rdx + 430d73: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430d77: 48 01 d7 add %rdx,%rdi + 430d7a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 430d7f: 48 01 d6 add %rdx,%rsi + 430d82: 4c 8d 1d 27 26 07 00 lea 0x72627(%rip),%r11 # 4a33b0 + 430d89: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 430d8d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 430d91: ff e2 jmpq *%rdx + 430d93: 0f 0b ud2 + 430d95: 90 nop + 430d96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 430d9d: 00 00 00 + 430da0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430da7: 48 39 ca cmp %rcx,%rdx + 430daa: 0f 28 4e f4 movaps -0xc(%rsi),%xmm1 + 430dae: 72 07 jb 430db7 <__memmove_ssse3+0x1467> + 430db0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430db7: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 430dbb: 41 ff e1 jmpq *%r9 + 430dbe: 0f 0b ud2 + 430dc0: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 430dc7: 0f 28 56 e4 movaps -0x1c(%rsi),%xmm2 + 430dcb: 48 83 ea 40 sub $0x40,%rdx + 430dcf: 0f 28 5e d4 movaps -0x2c(%rsi),%xmm3 + 430dd3: 0f 28 66 c4 movaps -0x3c(%rsi),%xmm4 + 430dd7: 0f 28 6e b4 movaps -0x4c(%rsi),%xmm5 + 430ddb: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 430ddf: 66 0f 3a 0f ca 0c palignr $0xc,%xmm2,%xmm1 + 430de5: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 + 430deb: 66 0f 3a 0f dc 0c palignr $0xc,%xmm4,%xmm3 + 430df1: 66 0f 3a 0f e5 0c palignr $0xc,%xmm5,%xmm4 + 430df7: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 430dfb: 0f 28 cd movaps %xmm5,%xmm1 + 430dfe: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 430e02: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 430e06: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 430e0a: 72 08 jb 430e14 <__memmove_ssse3+0x14c4> + 430e0c: 0f 29 27 movaps %xmm4,(%rdi) + 430e0f: 41 ff e1 jmpq *%r9 + 430e12: 0f 0b ud2 + 430e14: 0f 29 27 movaps %xmm4,(%rdi) + 430e17: 48 8d 52 40 lea 0x40(%rdx),%rdx + 430e1b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 430e20: 4c 8d 1d 89 25 07 00 lea 0x72589(%rip),%r11 # 4a33b0 + 430e27: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 430e2b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 430e2f: ff e2 jmpq *%rdx + 430e31: 0f 0b ud2 + 430e33: 0f 1f 00 nopl (%rax) + 430e36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 430e3d: 00 00 00 + 430e40: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430e47: 48 39 ca cmp %rcx,%rdx + 430e4a: 0f 28 4e f3 movaps -0xd(%rsi),%xmm1 + 430e4e: 72 07 jb 430e57 <__memmove_ssse3+0x1507> + 430e50: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430e57: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 430e5b: 41 ff e1 jmpq *%r9 + 430e5e: 0f 0b ud2 + 430e60: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 430e67: 48 83 ea 40 sub $0x40,%rdx + 430e6b: 0f 28 56 03 movaps 0x3(%rsi),%xmm2 + 430e6f: 0f 28 5e 13 movaps 0x13(%rsi),%xmm3 + 430e73: 0f 28 66 23 movaps 0x23(%rsi),%xmm4 + 430e77: 0f 28 6e 33 movaps 0x33(%rsi),%xmm5 + 430e7b: 66 0f 6f f5 movdqa %xmm5,%xmm6 + 430e7f: 66 0f 3a 0f ec 0d palignr $0xd,%xmm4,%xmm5 + 430e85: 48 8d 76 40 lea 0x40(%rsi),%rsi + 430e89: 66 0f 3a 0f e3 0d palignr $0xd,%xmm3,%xmm4 + 430e8f: 66 0f 3a 0f da 0d palignr $0xd,%xmm2,%xmm3 + 430e95: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 430e99: 66 0f 3a 0f d1 0d palignr $0xd,%xmm1,%xmm2 + 430e9f: 66 0f 6f ce movdqa %xmm6,%xmm1 + 430ea3: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) + 430ea8: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 430eac: 72 0d jb 430ebb <__memmove_ssse3+0x156b> + 430eae: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 430eb2: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430eb6: 41 ff e1 jmpq *%r9 + 430eb9: 0f 0b ud2 + 430ebb: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 430ebf: 48 8d 52 40 lea 0x40(%rdx),%rdx + 430ec3: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 430ec7: 48 01 d7 add %rdx,%rdi + 430eca: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 430ecf: 48 01 d6 add %rdx,%rsi + 430ed2: 4c 8d 1d d7 24 07 00 lea 0x724d7(%rip),%r11 # 4a33b0 + 430ed9: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 430edd: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 430ee1: ff e2 jmpq *%rdx + 430ee3: 0f 0b ud2 + 430ee5: 90 nop + 430ee6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 430eed: 00 00 00 + 430ef0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430ef7: 48 39 ca cmp %rcx,%rdx + 430efa: 0f 28 4e f3 movaps -0xd(%rsi),%xmm1 + 430efe: 72 07 jb 430f07 <__memmove_ssse3+0x15b7> + 430f00: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430f07: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 430f0b: 41 ff e1 jmpq *%r9 + 430f0e: 0f 0b ud2 + 430f10: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 430f17: 0f 28 56 e3 movaps -0x1d(%rsi),%xmm2 + 430f1b: 48 83 ea 40 sub $0x40,%rdx + 430f1f: 0f 28 5e d3 movaps -0x2d(%rsi),%xmm3 + 430f23: 0f 28 66 c3 movaps -0x3d(%rsi),%xmm4 + 430f27: 0f 28 6e b3 movaps -0x4d(%rsi),%xmm5 + 430f2b: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 430f2f: 66 0f 3a 0f ca 0d palignr $0xd,%xmm2,%xmm1 + 430f35: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 + 430f3b: 66 0f 3a 0f dc 0d palignr $0xd,%xmm4,%xmm3 + 430f41: 66 0f 3a 0f e5 0d palignr $0xd,%xmm5,%xmm4 + 430f47: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 430f4b: 0f 28 cd movaps %xmm5,%xmm1 + 430f4e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 430f52: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 430f56: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 430f5a: 72 08 jb 430f64 <__memmove_ssse3+0x1614> + 430f5c: 0f 29 27 movaps %xmm4,(%rdi) + 430f5f: 41 ff e1 jmpq *%r9 + 430f62: 0f 0b ud2 + 430f64: 0f 29 27 movaps %xmm4,(%rdi) + 430f67: 48 8d 52 40 lea 0x40(%rdx),%rdx + 430f6b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 430f70: 4c 8d 1d 39 24 07 00 lea 0x72439(%rip),%r11 # 4a33b0 + 430f77: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 430f7b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 430f7f: ff e2 jmpq *%rdx + 430f81: 0f 0b ud2 + 430f83: 0f 1f 00 nopl (%rax) + 430f86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 430f8d: 00 00 00 + 430f90: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 430f97: 48 39 ca cmp %rcx,%rdx + 430f9a: 0f 28 4e f2 movaps -0xe(%rsi),%xmm1 + 430f9e: 72 07 jb 430fa7 <__memmove_ssse3+0x1657> + 430fa0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 430fa7: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 430fab: 41 ff e1 jmpq *%r9 + 430fae: 0f 0b ud2 + 430fb0: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 430fb7: 48 83 ea 40 sub $0x40,%rdx + 430fbb: 0f 28 56 02 movaps 0x2(%rsi),%xmm2 + 430fbf: 0f 28 5e 12 movaps 0x12(%rsi),%xmm3 + 430fc3: 0f 28 66 22 movaps 0x22(%rsi),%xmm4 + 430fc7: 0f 28 6e 32 movaps 0x32(%rsi),%xmm5 + 430fcb: 66 0f 6f f5 movdqa %xmm5,%xmm6 + 430fcf: 66 0f 3a 0f ec 0e palignr $0xe,%xmm4,%xmm5 + 430fd5: 48 8d 76 40 lea 0x40(%rsi),%rsi + 430fd9: 66 0f 3a 0f e3 0e palignr $0xe,%xmm3,%xmm4 + 430fdf: 66 0f 3a 0f da 0e palignr $0xe,%xmm2,%xmm3 + 430fe5: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 430fe9: 66 0f 3a 0f d1 0e palignr $0xe,%xmm1,%xmm2 + 430fef: 66 0f 6f ce movdqa %xmm6,%xmm1 + 430ff3: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) + 430ff8: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 430ffc: 72 0d jb 43100b <__memmove_ssse3+0x16bb> + 430ffe: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 431002: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 431006: 41 ff e1 jmpq *%r9 + 431009: 0f 0b ud2 + 43100b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 43100f: 48 8d 52 40 lea 0x40(%rdx),%rdx + 431013: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 431017: 48 01 d7 add %rdx,%rdi + 43101a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 43101f: 48 01 d6 add %rdx,%rsi + 431022: 4c 8d 1d 87 23 07 00 lea 0x72387(%rip),%r11 # 4a33b0 + 431029: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43102d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 431031: ff e2 jmpq *%rdx + 431033: 0f 0b ud2 + 431035: 90 nop + 431036: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43103d: 00 00 00 + 431040: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 431047: 48 39 ca cmp %rcx,%rdx + 43104a: 0f 28 4e f2 movaps -0xe(%rsi),%xmm1 + 43104e: 72 07 jb 431057 <__memmove_ssse3+0x1707> + 431050: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 431057: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 43105b: 41 ff e1 jmpq *%r9 + 43105e: 0f 0b ud2 + 431060: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 431067: 0f 28 56 e2 movaps -0x1e(%rsi),%xmm2 + 43106b: 48 83 ea 40 sub $0x40,%rdx + 43106f: 0f 28 5e d2 movaps -0x2e(%rsi),%xmm3 + 431073: 0f 28 66 c2 movaps -0x3e(%rsi),%xmm4 + 431077: 0f 28 6e b2 movaps -0x4e(%rsi),%xmm5 + 43107b: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 43107f: 66 0f 3a 0f ca 0e palignr $0xe,%xmm2,%xmm1 + 431085: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 + 43108b: 66 0f 3a 0f dc 0e palignr $0xe,%xmm4,%xmm3 + 431091: 66 0f 3a 0f e5 0e palignr $0xe,%xmm5,%xmm4 + 431097: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 43109b: 0f 28 cd movaps %xmm5,%xmm1 + 43109e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 4310a2: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 4310a6: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 4310aa: 72 08 jb 4310b4 <__memmove_ssse3+0x1764> + 4310ac: 0f 29 27 movaps %xmm4,(%rdi) + 4310af: 41 ff e1 jmpq *%r9 + 4310b2: 0f 0b ud2 + 4310b4: 0f 29 27 movaps %xmm4,(%rdi) + 4310b7: 48 8d 52 40 lea 0x40(%rdx),%rdx + 4310bb: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 4310c0: 4c 8d 1d e9 22 07 00 lea 0x722e9(%rip),%r11 # 4a33b0 + 4310c7: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4310cb: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4310cf: ff e2 jmpq *%rdx + 4310d1: 0f 0b ud2 + 4310d3: 0f 1f 00 nopl (%rax) + 4310d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4310dd: 00 00 00 + 4310e0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 4310e7: 48 39 ca cmp %rcx,%rdx + 4310ea: 0f 28 4e f1 movaps -0xf(%rsi),%xmm1 + 4310ee: 72 07 jb 4310f7 <__memmove_ssse3+0x17a7> + 4310f0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 4310f7: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 4310fb: 41 ff e1 jmpq *%r9 + 4310fe: 0f 0b ud2 + 431100: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 431107: 48 83 ea 40 sub $0x40,%rdx + 43110b: 0f 28 56 01 movaps 0x1(%rsi),%xmm2 + 43110f: 0f 28 5e 11 movaps 0x11(%rsi),%xmm3 + 431113: 0f 28 66 21 movaps 0x21(%rsi),%xmm4 + 431117: 0f 28 6e 31 movaps 0x31(%rsi),%xmm5 + 43111b: 66 0f 6f f5 movdqa %xmm5,%xmm6 + 43111f: 66 0f 3a 0f ec 0f palignr $0xf,%xmm4,%xmm5 + 431125: 48 8d 76 40 lea 0x40(%rsi),%rsi + 431129: 66 0f 3a 0f e3 0f palignr $0xf,%xmm3,%xmm4 + 43112f: 66 0f 3a 0f da 0f palignr $0xf,%xmm2,%xmm3 + 431135: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 431139: 66 0f 3a 0f d1 0f palignr $0xf,%xmm1,%xmm2 + 43113f: 66 0f 6f ce movdqa %xmm6,%xmm1 + 431143: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) + 431148: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 43114c: 72 0d jb 43115b <__memmove_ssse3+0x180b> + 43114e: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 431152: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 431156: 41 ff e1 jmpq *%r9 + 431159: 0f 0b ud2 + 43115b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) + 43115f: 48 8d 52 40 lea 0x40(%rdx),%rdx + 431163: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) + 431167: 48 01 d7 add %rdx,%rdi + 43116a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 43116f: 48 01 d6 add %rdx,%rsi + 431172: 4c 8d 1d 37 22 07 00 lea 0x72237(%rip),%r11 # 4a33b0 + 431179: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43117d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 431181: ff e2 jmpq *%rdx + 431183: 0f 0b ud2 + 431185: 90 nop + 431186: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43118d: 00 00 00 + 431190: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 + 431197: 48 39 ca cmp %rcx,%rdx + 43119a: 0f 28 4e f1 movaps -0xf(%rsi),%xmm1 + 43119e: 72 07 jb 4311a7 <__memmove_ssse3+0x1857> + 4311a0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 + 4311a7: 48 8d 52 c0 lea -0x40(%rdx),%rdx + 4311ab: 41 ff e1 jmpq *%r9 + 4311ae: 0f 0b ud2 + 4311b0: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 4311b7: 0f 28 56 e1 movaps -0x1f(%rsi),%xmm2 + 4311bb: 48 83 ea 40 sub $0x40,%rdx + 4311bf: 0f 28 5e d1 movaps -0x2f(%rsi),%xmm3 + 4311c3: 0f 28 66 c1 movaps -0x3f(%rsi),%xmm4 + 4311c7: 0f 28 6e b1 movaps -0x4f(%rsi),%xmm5 + 4311cb: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 4311cf: 66 0f 3a 0f ca 0f palignr $0xf,%xmm2,%xmm1 + 4311d5: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 + 4311db: 66 0f 3a 0f dc 0f palignr $0xf,%xmm4,%xmm3 + 4311e1: 66 0f 3a 0f e5 0f palignr $0xf,%xmm5,%xmm4 + 4311e7: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 4311eb: 0f 28 cd movaps %xmm5,%xmm1 + 4311ee: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 4311f2: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 4311f6: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 4311fa: 72 08 jb 431204 <__memmove_ssse3+0x18b4> + 4311fc: 0f 29 27 movaps %xmm4,(%rdi) + 4311ff: 41 ff e1 jmpq *%r9 + 431202: 0f 0b ud2 + 431204: 0f 29 27 movaps %xmm4,(%rdi) + 431207: 48 8d 52 40 lea 0x40(%rdx),%rdx + 43120b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 431210: 4c 8d 1d 99 21 07 00 lea 0x72199(%rip),%r11 # 4a33b0 + 431217: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43121b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 43121f: ff e2 jmpq *%rdx + 431221: 0f 0b ud2 + 431223: 0f 1f 00 nopl (%rax) + 431226: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43122d: 00 00 00 + 431230: f3 0f 6f 46 b8 movdqu -0x48(%rsi),%xmm0 + 431235: f3 0f 6f 4e c8 movdqu -0x38(%rsi),%xmm1 + 43123a: 4c 8b 46 d8 mov -0x28(%rsi),%r8 + 43123e: 4c 8b 4e e0 mov -0x20(%rsi),%r9 + 431242: 4c 8b 56 e8 mov -0x18(%rsi),%r10 + 431246: 4c 8b 5e f0 mov -0x10(%rsi),%r11 + 43124a: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 43124e: f3 0f 7f 47 b8 movdqu %xmm0,-0x48(%rdi) + 431253: f3 0f 7f 4f c8 movdqu %xmm1,-0x38(%rdi) + 431258: 4c 89 47 d8 mov %r8,-0x28(%rdi) + 43125c: 4c 89 4f e0 mov %r9,-0x20(%rdi) + 431260: 4c 89 57 e8 mov %r10,-0x18(%rdi) + 431264: 4c 89 5f f0 mov %r11,-0x10(%rdi) + 431268: 48 89 4f f8 mov %rcx,-0x8(%rdi) + 43126c: c3 retq + 43126d: 0f 1f 00 nopl (%rax) + 431270: f3 0f 6f 46 c0 movdqu -0x40(%rsi),%xmm0 + 431275: 48 8b 4e d0 mov -0x30(%rsi),%rcx + 431279: 4c 8b 46 d8 mov -0x28(%rsi),%r8 + 43127d: 4c 8b 4e e0 mov -0x20(%rsi),%r9 + 431281: 4c 8b 56 e8 mov -0x18(%rsi),%r10 + 431285: 4c 8b 5e f0 mov -0x10(%rsi),%r11 + 431289: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 43128d: f3 0f 7f 47 c0 movdqu %xmm0,-0x40(%rdi) + 431292: 48 89 4f d0 mov %rcx,-0x30(%rdi) + 431296: 4c 89 47 d8 mov %r8,-0x28(%rdi) + 43129a: 4c 89 4f e0 mov %r9,-0x20(%rdi) + 43129e: 4c 89 57 e8 mov %r10,-0x18(%rdi) + 4312a2: 4c 89 5f f0 mov %r11,-0x10(%rdi) + 4312a6: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 4312aa: c3 retq + 4312ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4312b0: f3 0f 6f 46 c8 movdqu -0x38(%rsi),%xmm0 + 4312b5: 4c 8b 46 d8 mov -0x28(%rsi),%r8 + 4312b9: 4c 8b 4e e0 mov -0x20(%rsi),%r9 + 4312bd: 4c 8b 56 e8 mov -0x18(%rsi),%r10 + 4312c1: 4c 8b 5e f0 mov -0x10(%rsi),%r11 + 4312c5: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 4312c9: f3 0f 7f 47 c8 movdqu %xmm0,-0x38(%rdi) + 4312ce: 4c 89 47 d8 mov %r8,-0x28(%rdi) + 4312d2: 4c 89 4f e0 mov %r9,-0x20(%rdi) + 4312d6: 4c 89 57 e8 mov %r10,-0x18(%rdi) + 4312da: 4c 89 5f f0 mov %r11,-0x10(%rdi) + 4312de: 48 89 4f f8 mov %rcx,-0x8(%rdi) + 4312e2: c3 retq + 4312e3: 0f 1f 00 nopl (%rax) + 4312e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4312ed: 00 00 00 + 4312f0: 48 8b 4e d0 mov -0x30(%rsi),%rcx + 4312f4: 4c 8b 46 d8 mov -0x28(%rsi),%r8 + 4312f8: 4c 8b 4e e0 mov -0x20(%rsi),%r9 + 4312fc: 4c 8b 56 e8 mov -0x18(%rsi),%r10 + 431300: 4c 8b 5e f0 mov -0x10(%rsi),%r11 + 431304: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431308: 48 89 4f d0 mov %rcx,-0x30(%rdi) + 43130c: 4c 89 47 d8 mov %r8,-0x28(%rdi) + 431310: 4c 89 4f e0 mov %r9,-0x20(%rdi) + 431314: 4c 89 57 e8 mov %r10,-0x18(%rdi) + 431318: 4c 89 5f f0 mov %r11,-0x10(%rdi) + 43131c: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431320: c3 retq + 431321: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 431326: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43132d: 00 00 00 + 431330: 4c 8b 46 d8 mov -0x28(%rsi),%r8 + 431334: 4c 8b 4e e0 mov -0x20(%rsi),%r9 + 431338: 4c 8b 56 e8 mov -0x18(%rsi),%r10 + 43133c: 4c 8b 5e f0 mov -0x10(%rsi),%r11 + 431340: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431344: 4c 89 47 d8 mov %r8,-0x28(%rdi) + 431348: 4c 89 4f e0 mov %r9,-0x20(%rdi) + 43134c: 4c 89 57 e8 mov %r10,-0x18(%rdi) + 431350: 4c 89 5f f0 mov %r11,-0x10(%rdi) + 431354: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431358: c3 retq + 431359: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 431360: 4c 8b 4e e0 mov -0x20(%rsi),%r9 + 431364: 4c 8b 56 e8 mov -0x18(%rsi),%r10 + 431368: 4c 8b 5e f0 mov -0x10(%rsi),%r11 + 43136c: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431370: 4c 89 4f e0 mov %r9,-0x20(%rdi) + 431374: 4c 89 57 e8 mov %r10,-0x18(%rdi) + 431378: 4c 89 5f f0 mov %r11,-0x10(%rdi) + 43137c: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431380: c3 retq + 431381: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 431386: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43138d: 00 00 00 + 431390: 4c 8b 56 e8 mov -0x18(%rsi),%r10 + 431394: 4c 8b 5e f0 mov -0x10(%rsi),%r11 + 431398: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 43139c: 4c 89 57 e8 mov %r10,-0x18(%rdi) + 4313a0: 4c 89 5f f0 mov %r11,-0x10(%rdi) + 4313a4: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 4313a8: c3 retq + 4313a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4313b0: 4c 8b 5e f0 mov -0x10(%rsi),%r11 + 4313b4: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 4313b8: 4c 89 5f f0 mov %r11,-0x10(%rdi) + 4313bc: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 4313c0: c3 retq + 4313c1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4313c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4313cd: 00 00 00 + 4313d0: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 4313d4: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 4313d8: c3 retq + 4313d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4313e0: f3 0f 6f 46 b7 movdqu -0x49(%rsi),%xmm0 + 4313e5: f3 0f 6f 4e c7 movdqu -0x39(%rsi),%xmm1 + 4313ea: 48 8b 4e d7 mov -0x29(%rsi),%rcx + 4313ee: 4c 8b 4e df mov -0x21(%rsi),%r9 + 4313f2: 4c 8b 56 e7 mov -0x19(%rsi),%r10 + 4313f6: 4c 8b 5e ef mov -0x11(%rsi),%r11 + 4313fa: 4c 8b 46 f7 mov -0x9(%rsi),%r8 + 4313fe: 8b 56 fc mov -0x4(%rsi),%edx + 431401: f3 0f 7f 47 b7 movdqu %xmm0,-0x49(%rdi) + 431406: f3 0f 7f 4f c7 movdqu %xmm1,-0x39(%rdi) + 43140b: 48 89 4f d7 mov %rcx,-0x29(%rdi) + 43140f: 4c 89 4f df mov %r9,-0x21(%rdi) + 431413: 4c 89 57 e7 mov %r10,-0x19(%rdi) + 431417: 4c 89 5f ef mov %r11,-0x11(%rdi) + 43141b: 4c 89 47 f7 mov %r8,-0x9(%rdi) + 43141f: 89 57 fc mov %edx,-0x4(%rdi) + 431422: c3 retq + 431423: 0f 1f 00 nopl (%rax) + 431426: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43142d: 00 00 00 + 431430: f3 0f 6f 46 bf movdqu -0x41(%rsi),%xmm0 + 431435: f3 0f 6f 4e cf movdqu -0x31(%rsi),%xmm1 + 43143a: 4c 8b 4e df mov -0x21(%rsi),%r9 + 43143e: 4c 8b 56 e7 mov -0x19(%rsi),%r10 + 431442: 4c 8b 5e ef mov -0x11(%rsi),%r11 + 431446: 48 8b 4e f7 mov -0x9(%rsi),%rcx + 43144a: 8b 56 fc mov -0x4(%rsi),%edx + 43144d: f3 0f 7f 47 bf movdqu %xmm0,-0x41(%rdi) + 431452: f3 0f 7f 4f cf movdqu %xmm1,-0x31(%rdi) + 431457: 4c 89 4f df mov %r9,-0x21(%rdi) + 43145b: 4c 89 57 e7 mov %r10,-0x19(%rdi) + 43145f: 4c 89 5f ef mov %r11,-0x11(%rdi) + 431463: 48 89 4f f7 mov %rcx,-0x9(%rdi) + 431467: 89 57 fc mov %edx,-0x4(%rdi) + 43146a: c3 retq + 43146b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 431470: f3 0f 6f 46 c7 movdqu -0x39(%rsi),%xmm0 + 431475: 4c 8b 46 d7 mov -0x29(%rsi),%r8 + 431479: 4c 8b 4e df mov -0x21(%rsi),%r9 + 43147d: 4c 8b 56 e7 mov -0x19(%rsi),%r10 + 431481: 4c 8b 5e ef mov -0x11(%rsi),%r11 + 431485: 48 8b 4e f7 mov -0x9(%rsi),%rcx + 431489: 8b 56 fc mov -0x4(%rsi),%edx + 43148c: f3 0f 7f 47 c7 movdqu %xmm0,-0x39(%rdi) + 431491: 4c 89 47 d7 mov %r8,-0x29(%rdi) + 431495: 4c 89 4f df mov %r9,-0x21(%rdi) + 431499: 4c 89 57 e7 mov %r10,-0x19(%rdi) + 43149d: 4c 89 5f ef mov %r11,-0x11(%rdi) + 4314a1: 48 89 4f f7 mov %rcx,-0x9(%rdi) + 4314a5: 89 57 fc mov %edx,-0x4(%rdi) + 4314a8: c3 retq + 4314a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4314b0: f3 0f 6f 46 cf movdqu -0x31(%rsi),%xmm0 + 4314b5: 4c 8b 4e df mov -0x21(%rsi),%r9 + 4314b9: 4c 8b 56 e7 mov -0x19(%rsi),%r10 + 4314bd: 4c 8b 5e ef mov -0x11(%rsi),%r11 + 4314c1: 48 8b 4e f7 mov -0x9(%rsi),%rcx + 4314c5: 8b 56 fc mov -0x4(%rsi),%edx + 4314c8: f3 0f 7f 47 cf movdqu %xmm0,-0x31(%rdi) + 4314cd: 4c 89 4f df mov %r9,-0x21(%rdi) + 4314d1: 4c 89 57 e7 mov %r10,-0x19(%rdi) + 4314d5: 4c 89 5f ef mov %r11,-0x11(%rdi) + 4314d9: 48 89 4f f7 mov %rcx,-0x9(%rdi) + 4314dd: 89 57 fc mov %edx,-0x4(%rdi) + 4314e0: c3 retq + 4314e1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4314e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4314ed: 00 00 00 + 4314f0: 4c 8b 46 d7 mov -0x29(%rsi),%r8 + 4314f4: 4c 8b 4e df mov -0x21(%rsi),%r9 + 4314f8: 4c 8b 56 e7 mov -0x19(%rsi),%r10 + 4314fc: 4c 8b 5e ef mov -0x11(%rsi),%r11 + 431500: 48 8b 4e f7 mov -0x9(%rsi),%rcx + 431504: 8a 56 ff mov -0x1(%rsi),%dl + 431507: 4c 89 47 d7 mov %r8,-0x29(%rdi) + 43150b: 4c 89 4f df mov %r9,-0x21(%rdi) + 43150f: 4c 89 57 e7 mov %r10,-0x19(%rdi) + 431513: 4c 89 5f ef mov %r11,-0x11(%rdi) + 431517: 48 89 4f f7 mov %rcx,-0x9(%rdi) + 43151b: 88 57 ff mov %dl,-0x1(%rdi) + 43151e: c3 retq + 43151f: 90 nop + 431520: 4c 8b 4e df mov -0x21(%rsi),%r9 + 431524: 4c 8b 56 e7 mov -0x19(%rsi),%r10 + 431528: 4c 8b 5e ef mov -0x11(%rsi),%r11 + 43152c: 48 8b 4e f7 mov -0x9(%rsi),%rcx + 431530: 8a 56 ff mov -0x1(%rsi),%dl + 431533: 4c 89 4f df mov %r9,-0x21(%rdi) + 431537: 4c 89 57 e7 mov %r10,-0x19(%rdi) + 43153b: 4c 89 5f ef mov %r11,-0x11(%rdi) + 43153f: 48 89 4f f7 mov %rcx,-0x9(%rdi) + 431543: 88 57 ff mov %dl,-0x1(%rdi) + 431546: c3 retq + 431547: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43154e: 00 00 + 431550: 4c 8b 56 e7 mov -0x19(%rsi),%r10 + 431554: 4c 8b 5e ef mov -0x11(%rsi),%r11 + 431558: 48 8b 4e f7 mov -0x9(%rsi),%rcx + 43155c: 8a 56 ff mov -0x1(%rsi),%dl + 43155f: 4c 89 57 e7 mov %r10,-0x19(%rdi) + 431563: 4c 89 5f ef mov %r11,-0x11(%rdi) + 431567: 48 89 4f f7 mov %rcx,-0x9(%rdi) + 43156b: 88 57 ff mov %dl,-0x1(%rdi) + 43156e: c3 retq + 43156f: 90 nop + 431570: 4c 8b 5e ef mov -0x11(%rsi),%r11 + 431574: 48 8b 4e f7 mov -0x9(%rsi),%rcx + 431578: 8b 56 fc mov -0x4(%rsi),%edx + 43157b: 4c 89 5f ef mov %r11,-0x11(%rdi) + 43157f: 48 89 4f f7 mov %rcx,-0x9(%rdi) + 431583: 89 57 fc mov %edx,-0x4(%rdi) + 431586: c3 retq + 431587: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43158e: 00 00 + 431590: 48 8b 4e f7 mov -0x9(%rsi),%rcx + 431594: 8b 56 fc mov -0x4(%rsi),%edx + 431597: 48 89 4f f7 mov %rcx,-0x9(%rdi) + 43159b: 89 57 fc mov %edx,-0x4(%rdi) + 43159e: c3 retq + 43159f: 90 nop + 4315a0: 8a 56 ff mov -0x1(%rsi),%dl + 4315a3: 88 57 ff mov %dl,-0x1(%rdi) + 4315a6: c3 retq + 4315a7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4315ae: 00 00 + 4315b0: f3 0f 6f 46 b6 movdqu -0x4a(%rsi),%xmm0 + 4315b5: f3 0f 6f 4e c6 movdqu -0x3a(%rsi),%xmm1 + 4315ba: 4c 8b 46 d6 mov -0x2a(%rsi),%r8 + 4315be: 4c 8b 4e de mov -0x22(%rsi),%r9 + 4315c2: 4c 8b 56 e6 mov -0x1a(%rsi),%r10 + 4315c6: 4c 8b 5e ee mov -0x12(%rsi),%r11 + 4315ca: 48 8b 4e f6 mov -0xa(%rsi),%rcx + 4315ce: 8b 56 fc mov -0x4(%rsi),%edx + 4315d1: f3 0f 7f 47 b6 movdqu %xmm0,-0x4a(%rdi) + 4315d6: f3 0f 7f 4f c6 movdqu %xmm1,-0x3a(%rdi) + 4315db: 4c 89 47 d6 mov %r8,-0x2a(%rdi) + 4315df: 4c 89 4f de mov %r9,-0x22(%rdi) + 4315e3: 4c 89 57 e6 mov %r10,-0x1a(%rdi) + 4315e7: 4c 89 5f ee mov %r11,-0x12(%rdi) + 4315eb: 48 89 4f f6 mov %rcx,-0xa(%rdi) + 4315ef: 89 57 fc mov %edx,-0x4(%rdi) + 4315f2: c3 retq + 4315f3: 0f 1f 00 nopl (%rax) + 4315f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4315fd: 00 00 00 + 431600: f3 0f 6f 46 be movdqu -0x42(%rsi),%xmm0 + 431605: f3 0f 6f 4e ce movdqu -0x32(%rsi),%xmm1 + 43160a: 4c 8b 46 d6 mov -0x2a(%rsi),%r8 + 43160e: 4c 8b 4e de mov -0x22(%rsi),%r9 + 431612: 4c 8b 56 e6 mov -0x1a(%rsi),%r10 + 431616: 4c 8b 5e ee mov -0x12(%rsi),%r11 + 43161a: 48 8b 4e f6 mov -0xa(%rsi),%rcx + 43161e: 8b 56 fc mov -0x4(%rsi),%edx + 431621: f3 0f 7f 47 be movdqu %xmm0,-0x42(%rdi) + 431626: f3 0f 7f 4f ce movdqu %xmm1,-0x32(%rdi) + 43162b: 4c 89 47 d6 mov %r8,-0x2a(%rdi) + 43162f: 4c 89 4f de mov %r9,-0x22(%rdi) + 431633: 4c 89 57 e6 mov %r10,-0x1a(%rdi) + 431637: 4c 89 5f ee mov %r11,-0x12(%rdi) + 43163b: 48 89 4f f6 mov %rcx,-0xa(%rdi) + 43163f: 89 57 fc mov %edx,-0x4(%rdi) + 431642: c3 retq + 431643: 0f 1f 00 nopl (%rax) + 431646: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43164d: 00 00 00 + 431650: f3 0f 6f 4e c6 movdqu -0x3a(%rsi),%xmm1 + 431655: 4c 8b 46 d6 mov -0x2a(%rsi),%r8 + 431659: 4c 8b 4e de mov -0x22(%rsi),%r9 + 43165d: 4c 8b 56 e6 mov -0x1a(%rsi),%r10 + 431661: 4c 8b 5e ee mov -0x12(%rsi),%r11 + 431665: 48 8b 4e f6 mov -0xa(%rsi),%rcx + 431669: 8b 56 fc mov -0x4(%rsi),%edx + 43166c: f3 0f 7f 4f c6 movdqu %xmm1,-0x3a(%rdi) + 431671: 4c 89 47 d6 mov %r8,-0x2a(%rdi) + 431675: 4c 89 4f de mov %r9,-0x22(%rdi) + 431679: 4c 89 57 e6 mov %r10,-0x1a(%rdi) + 43167d: 4c 89 5f ee mov %r11,-0x12(%rdi) + 431681: 48 89 4f f6 mov %rcx,-0xa(%rdi) + 431685: 89 57 fc mov %edx,-0x4(%rdi) + 431688: c3 retq + 431689: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 431690: f3 0f 6f 46 ce movdqu -0x32(%rsi),%xmm0 + 431695: 4c 8b 4e de mov -0x22(%rsi),%r9 + 431699: 4c 8b 56 e6 mov -0x1a(%rsi),%r10 + 43169d: 4c 8b 5e ee mov -0x12(%rsi),%r11 + 4316a1: 48 8b 4e f6 mov -0xa(%rsi),%rcx + 4316a5: 8b 56 fc mov -0x4(%rsi),%edx + 4316a8: f3 0f 7f 47 ce movdqu %xmm0,-0x32(%rdi) + 4316ad: 4c 89 4f de mov %r9,-0x22(%rdi) + 4316b1: 4c 89 57 e6 mov %r10,-0x1a(%rdi) + 4316b5: 4c 89 5f ee mov %r11,-0x12(%rdi) + 4316b9: 48 89 4f f6 mov %rcx,-0xa(%rdi) + 4316bd: 89 57 fc mov %edx,-0x4(%rdi) + 4316c0: c3 retq + 4316c1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4316c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4316cd: 00 00 00 + 4316d0: 4c 8b 46 d6 mov -0x2a(%rsi),%r8 + 4316d4: 4c 8b 4e de mov -0x22(%rsi),%r9 + 4316d8: 4c 8b 56 e6 mov -0x1a(%rsi),%r10 + 4316dc: 4c 8b 5e ee mov -0x12(%rsi),%r11 + 4316e0: 48 8b 4e f6 mov -0xa(%rsi),%rcx + 4316e4: 8b 56 fc mov -0x4(%rsi),%edx + 4316e7: 4c 89 47 d6 mov %r8,-0x2a(%rdi) + 4316eb: 4c 89 4f de mov %r9,-0x22(%rdi) + 4316ef: 4c 89 57 e6 mov %r10,-0x1a(%rdi) + 4316f3: 4c 89 5f ee mov %r11,-0x12(%rdi) + 4316f7: 48 89 4f f6 mov %rcx,-0xa(%rdi) + 4316fb: 89 57 fc mov %edx,-0x4(%rdi) + 4316fe: c3 retq + 4316ff: 90 nop + 431700: 4c 8b 4e de mov -0x22(%rsi),%r9 + 431704: 4c 8b 56 e6 mov -0x1a(%rsi),%r10 + 431708: 4c 8b 5e ee mov -0x12(%rsi),%r11 + 43170c: 48 8b 4e f6 mov -0xa(%rsi),%rcx + 431710: 8b 56 fc mov -0x4(%rsi),%edx + 431713: 4c 89 4f de mov %r9,-0x22(%rdi) + 431717: 4c 89 57 e6 mov %r10,-0x1a(%rdi) + 43171b: 4c 89 5f ee mov %r11,-0x12(%rdi) + 43171f: 48 89 4f f6 mov %rcx,-0xa(%rdi) + 431723: 89 57 fc mov %edx,-0x4(%rdi) + 431726: c3 retq + 431727: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43172e: 00 00 + 431730: 4c 8b 56 e6 mov -0x1a(%rsi),%r10 + 431734: 4c 8b 5e ee mov -0x12(%rsi),%r11 + 431738: 48 8b 4e f6 mov -0xa(%rsi),%rcx + 43173c: 8b 56 fc mov -0x4(%rsi),%edx + 43173f: 4c 89 57 e6 mov %r10,-0x1a(%rdi) + 431743: 4c 89 5f ee mov %r11,-0x12(%rdi) + 431747: 48 89 4f f6 mov %rcx,-0xa(%rdi) + 43174b: 89 57 fc mov %edx,-0x4(%rdi) + 43174e: c3 retq + 43174f: 90 nop + 431750: 4c 8b 5e ee mov -0x12(%rsi),%r11 + 431754: 48 8b 4e f6 mov -0xa(%rsi),%rcx + 431758: 8b 56 fc mov -0x4(%rsi),%edx + 43175b: 4c 89 5f ee mov %r11,-0x12(%rdi) + 43175f: 48 89 4f f6 mov %rcx,-0xa(%rdi) + 431763: 89 57 fc mov %edx,-0x4(%rdi) + 431766: c3 retq + 431767: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43176e: 00 00 + 431770: 48 8b 4e f6 mov -0xa(%rsi),%rcx + 431774: 8b 56 fc mov -0x4(%rsi),%edx + 431777: 48 89 4f f6 mov %rcx,-0xa(%rdi) + 43177b: 89 57 fc mov %edx,-0x4(%rdi) + 43177e: c3 retq + 43177f: 90 nop + 431780: 66 8b 56 fe mov -0x2(%rsi),%dx + 431784: 66 89 57 fe mov %dx,-0x2(%rdi) + 431788: c3 retq + 431789: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 431790: f3 0f 6f 46 b5 movdqu -0x4b(%rsi),%xmm0 + 431795: f3 0f 6f 4e c5 movdqu -0x3b(%rsi),%xmm1 + 43179a: 4c 8b 46 d5 mov -0x2b(%rsi),%r8 + 43179e: 4c 8b 4e dd mov -0x23(%rsi),%r9 + 4317a2: 4c 8b 56 e5 mov -0x1b(%rsi),%r10 + 4317a6: 4c 8b 5e ed mov -0x13(%rsi),%r11 + 4317aa: 48 8b 4e f5 mov -0xb(%rsi),%rcx + 4317ae: 8b 56 fc mov -0x4(%rsi),%edx + 4317b1: f3 0f 7f 47 b5 movdqu %xmm0,-0x4b(%rdi) + 4317b6: f3 0f 7f 4f c5 movdqu %xmm1,-0x3b(%rdi) + 4317bb: 4c 89 47 d5 mov %r8,-0x2b(%rdi) + 4317bf: 4c 89 4f dd mov %r9,-0x23(%rdi) + 4317c3: 4c 89 57 e5 mov %r10,-0x1b(%rdi) + 4317c7: 4c 89 5f ed mov %r11,-0x13(%rdi) + 4317cb: 48 89 4f f5 mov %rcx,-0xb(%rdi) + 4317cf: 89 57 fc mov %edx,-0x4(%rdi) + 4317d2: c3 retq + 4317d3: 0f 1f 00 nopl (%rax) + 4317d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4317dd: 00 00 00 + 4317e0: f3 0f 6f 46 bd movdqu -0x43(%rsi),%xmm0 + 4317e5: f3 0f 6f 4e c5 movdqu -0x3b(%rsi),%xmm1 + 4317ea: 4c 8b 46 d5 mov -0x2b(%rsi),%r8 + 4317ee: 4c 8b 4e dd mov -0x23(%rsi),%r9 + 4317f2: 4c 8b 56 e5 mov -0x1b(%rsi),%r10 + 4317f6: 4c 8b 5e ed mov -0x13(%rsi),%r11 + 4317fa: 48 8b 4e f5 mov -0xb(%rsi),%rcx + 4317fe: 8b 56 fc mov -0x4(%rsi),%edx + 431801: f3 0f 7f 47 bd movdqu %xmm0,-0x43(%rdi) + 431806: f3 0f 7f 4f c5 movdqu %xmm1,-0x3b(%rdi) + 43180b: 4c 89 47 d5 mov %r8,-0x2b(%rdi) + 43180f: 4c 89 4f dd mov %r9,-0x23(%rdi) + 431813: 4c 89 57 e5 mov %r10,-0x1b(%rdi) + 431817: 4c 89 5f ed mov %r11,-0x13(%rdi) + 43181b: 48 89 4f f5 mov %rcx,-0xb(%rdi) + 43181f: 89 57 fc mov %edx,-0x4(%rdi) + 431822: c3 retq + 431823: 0f 1f 00 nopl (%rax) + 431826: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43182d: 00 00 00 + 431830: f3 0f 6f 46 c5 movdqu -0x3b(%rsi),%xmm0 + 431835: 4c 8b 46 d5 mov -0x2b(%rsi),%r8 + 431839: 4c 8b 4e dd mov -0x23(%rsi),%r9 + 43183d: 4c 8b 56 e5 mov -0x1b(%rsi),%r10 + 431841: 4c 8b 5e ed mov -0x13(%rsi),%r11 + 431845: 48 8b 4e f5 mov -0xb(%rsi),%rcx + 431849: 8b 56 fc mov -0x4(%rsi),%edx + 43184c: f3 0f 7f 47 c5 movdqu %xmm0,-0x3b(%rdi) + 431851: 4c 89 47 d5 mov %r8,-0x2b(%rdi) + 431855: 4c 89 4f dd mov %r9,-0x23(%rdi) + 431859: 4c 89 57 e5 mov %r10,-0x1b(%rdi) + 43185d: 4c 89 5f ed mov %r11,-0x13(%rdi) + 431861: 48 89 4f f5 mov %rcx,-0xb(%rdi) + 431865: 89 57 fc mov %edx,-0x4(%rdi) + 431868: c3 retq + 431869: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 431870: f3 0f 6f 46 cd movdqu -0x33(%rsi),%xmm0 + 431875: 4c 8b 4e dd mov -0x23(%rsi),%r9 + 431879: 4c 8b 56 e5 mov -0x1b(%rsi),%r10 + 43187d: 4c 8b 5e ed mov -0x13(%rsi),%r11 + 431881: 48 8b 4e f5 mov -0xb(%rsi),%rcx + 431885: 8b 56 fc mov -0x4(%rsi),%edx + 431888: f3 0f 7f 47 cd movdqu %xmm0,-0x33(%rdi) + 43188d: 4c 89 4f dd mov %r9,-0x23(%rdi) + 431891: 4c 89 57 e5 mov %r10,-0x1b(%rdi) + 431895: 4c 89 5f ed mov %r11,-0x13(%rdi) + 431899: 48 89 4f f5 mov %rcx,-0xb(%rdi) + 43189d: 89 57 fc mov %edx,-0x4(%rdi) + 4318a0: c3 retq + 4318a1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4318a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4318ad: 00 00 00 + 4318b0: 4c 8b 46 d5 mov -0x2b(%rsi),%r8 + 4318b4: 4c 8b 4e dd mov -0x23(%rsi),%r9 + 4318b8: 4c 8b 56 e5 mov -0x1b(%rsi),%r10 + 4318bc: 4c 8b 5e ed mov -0x13(%rsi),%r11 + 4318c0: 48 8b 4e f5 mov -0xb(%rsi),%rcx + 4318c4: 8b 56 fc mov -0x4(%rsi),%edx + 4318c7: 4c 89 47 d5 mov %r8,-0x2b(%rdi) + 4318cb: 4c 89 4f dd mov %r9,-0x23(%rdi) + 4318cf: 4c 89 57 e5 mov %r10,-0x1b(%rdi) + 4318d3: 4c 89 5f ed mov %r11,-0x13(%rdi) + 4318d7: 48 89 4f f5 mov %rcx,-0xb(%rdi) + 4318db: 89 57 fc mov %edx,-0x4(%rdi) + 4318de: c3 retq + 4318df: 90 nop + 4318e0: 4c 8b 4e dd mov -0x23(%rsi),%r9 + 4318e4: 4c 8b 56 e5 mov -0x1b(%rsi),%r10 + 4318e8: 4c 8b 5e ed mov -0x13(%rsi),%r11 + 4318ec: 48 8b 4e f5 mov -0xb(%rsi),%rcx + 4318f0: 8b 56 fc mov -0x4(%rsi),%edx + 4318f3: 4c 89 4f dd mov %r9,-0x23(%rdi) + 4318f7: 4c 89 57 e5 mov %r10,-0x1b(%rdi) + 4318fb: 4c 89 5f ed mov %r11,-0x13(%rdi) + 4318ff: 48 89 4f f5 mov %rcx,-0xb(%rdi) + 431903: 89 57 fc mov %edx,-0x4(%rdi) + 431906: c3 retq + 431907: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43190e: 00 00 + 431910: 4c 8b 56 e5 mov -0x1b(%rsi),%r10 + 431914: 4c 8b 5e ed mov -0x13(%rsi),%r11 + 431918: 48 8b 4e f5 mov -0xb(%rsi),%rcx + 43191c: 8b 56 fc mov -0x4(%rsi),%edx + 43191f: 4c 89 57 e5 mov %r10,-0x1b(%rdi) + 431923: 4c 89 5f ed mov %r11,-0x13(%rdi) + 431927: 48 89 4f f5 mov %rcx,-0xb(%rdi) + 43192b: 89 57 fc mov %edx,-0x4(%rdi) + 43192e: c3 retq + 43192f: 90 nop + 431930: 4c 8b 5e ed mov -0x13(%rsi),%r11 + 431934: 48 8b 4e f5 mov -0xb(%rsi),%rcx + 431938: 8b 56 fc mov -0x4(%rsi),%edx + 43193b: 4c 89 5f ed mov %r11,-0x13(%rdi) + 43193f: 48 89 4f f5 mov %rcx,-0xb(%rdi) + 431943: 89 57 fc mov %edx,-0x4(%rdi) + 431946: c3 retq + 431947: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43194e: 00 00 + 431950: 48 8b 4e f5 mov -0xb(%rsi),%rcx + 431954: 8b 56 fc mov -0x4(%rsi),%edx + 431957: 48 89 4f f5 mov %rcx,-0xb(%rdi) + 43195b: 89 57 fc mov %edx,-0x4(%rdi) + 43195e: c3 retq + 43195f: 90 nop + 431960: 66 8b 56 fd mov -0x3(%rsi),%dx + 431964: 66 8b 4e fe mov -0x2(%rsi),%cx + 431968: 66 89 57 fd mov %dx,-0x3(%rdi) + 43196c: 66 89 4f fe mov %cx,-0x2(%rdi) + 431970: c3 retq + 431971: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 431976: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43197d: 00 00 00 + 431980: f3 0f 6f 46 b4 movdqu -0x4c(%rsi),%xmm0 + 431985: f3 0f 6f 4e c4 movdqu -0x3c(%rsi),%xmm1 + 43198a: 4c 8b 46 d4 mov -0x2c(%rsi),%r8 + 43198e: 4c 8b 4e dc mov -0x24(%rsi),%r9 + 431992: 4c 8b 56 e4 mov -0x1c(%rsi),%r10 + 431996: 4c 8b 5e ec mov -0x14(%rsi),%r11 + 43199a: 48 8b 4e f4 mov -0xc(%rsi),%rcx + 43199e: 8b 56 fc mov -0x4(%rsi),%edx + 4319a1: f3 0f 7f 47 b4 movdqu %xmm0,-0x4c(%rdi) + 4319a6: f3 0f 7f 4f c4 movdqu %xmm1,-0x3c(%rdi) + 4319ab: 4c 89 47 d4 mov %r8,-0x2c(%rdi) + 4319af: 4c 89 4f dc mov %r9,-0x24(%rdi) + 4319b3: 4c 89 57 e4 mov %r10,-0x1c(%rdi) + 4319b7: 4c 89 5f ec mov %r11,-0x14(%rdi) + 4319bb: 48 89 4f f4 mov %rcx,-0xc(%rdi) + 4319bf: 89 57 fc mov %edx,-0x4(%rdi) + 4319c2: c3 retq + 4319c3: 0f 1f 00 nopl (%rax) + 4319c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4319cd: 00 00 00 + 4319d0: f3 0f 6f 46 bc movdqu -0x44(%rsi),%xmm0 + 4319d5: f3 0f 6f 4e cc movdqu -0x34(%rsi),%xmm1 + 4319da: 4c 8b 4e dc mov -0x24(%rsi),%r9 + 4319de: 4c 8b 56 e4 mov -0x1c(%rsi),%r10 + 4319e2: 4c 8b 5e ec mov -0x14(%rsi),%r11 + 4319e6: 48 8b 4e f4 mov -0xc(%rsi),%rcx + 4319ea: 8b 56 fc mov -0x4(%rsi),%edx + 4319ed: f3 0f 7f 47 bc movdqu %xmm0,-0x44(%rdi) + 4319f2: f3 0f 7f 4f cc movdqu %xmm1,-0x34(%rdi) + 4319f7: 4c 89 4f dc mov %r9,-0x24(%rdi) + 4319fb: 4c 89 57 e4 mov %r10,-0x1c(%rdi) + 4319ff: 4c 89 5f ec mov %r11,-0x14(%rdi) + 431a03: 48 89 4f f4 mov %rcx,-0xc(%rdi) + 431a07: 89 57 fc mov %edx,-0x4(%rdi) + 431a0a: c3 retq + 431a0b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 431a10: f3 0f 6f 46 c4 movdqu -0x3c(%rsi),%xmm0 + 431a15: 4c 8b 46 d4 mov -0x2c(%rsi),%r8 + 431a19: 4c 8b 4e dc mov -0x24(%rsi),%r9 + 431a1d: 4c 8b 56 e4 mov -0x1c(%rsi),%r10 + 431a21: 4c 8b 5e ec mov -0x14(%rsi),%r11 + 431a25: 48 8b 4e f4 mov -0xc(%rsi),%rcx + 431a29: 8b 56 fc mov -0x4(%rsi),%edx + 431a2c: f3 0f 7f 47 c4 movdqu %xmm0,-0x3c(%rdi) + 431a31: 4c 89 47 d4 mov %r8,-0x2c(%rdi) + 431a35: 4c 89 4f dc mov %r9,-0x24(%rdi) + 431a39: 4c 89 57 e4 mov %r10,-0x1c(%rdi) + 431a3d: 4c 89 5f ec mov %r11,-0x14(%rdi) + 431a41: 48 89 4f f4 mov %rcx,-0xc(%rdi) + 431a45: 89 57 fc mov %edx,-0x4(%rdi) + 431a48: c3 retq + 431a49: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 431a50: f3 0f 6f 46 cc movdqu -0x34(%rsi),%xmm0 + 431a55: 4c 8b 4e dc mov -0x24(%rsi),%r9 + 431a59: 4c 8b 56 e4 mov -0x1c(%rsi),%r10 + 431a5d: 4c 8b 5e ec mov -0x14(%rsi),%r11 + 431a61: 48 8b 4e f4 mov -0xc(%rsi),%rcx + 431a65: 8b 56 fc mov -0x4(%rsi),%edx + 431a68: f3 0f 7f 47 cc movdqu %xmm0,-0x34(%rdi) + 431a6d: 4c 89 4f dc mov %r9,-0x24(%rdi) + 431a71: 4c 89 57 e4 mov %r10,-0x1c(%rdi) + 431a75: 4c 89 5f ec mov %r11,-0x14(%rdi) + 431a79: 48 89 4f f4 mov %rcx,-0xc(%rdi) + 431a7d: 89 57 fc mov %edx,-0x4(%rdi) + 431a80: c3 retq + 431a81: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 431a86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 431a8d: 00 00 00 + 431a90: 4c 8b 46 d4 mov -0x2c(%rsi),%r8 + 431a94: 4c 8b 4e dc mov -0x24(%rsi),%r9 + 431a98: 4c 8b 56 e4 mov -0x1c(%rsi),%r10 + 431a9c: 4c 8b 5e ec mov -0x14(%rsi),%r11 + 431aa0: 48 8b 4e f4 mov -0xc(%rsi),%rcx + 431aa4: 8b 56 fc mov -0x4(%rsi),%edx + 431aa7: 4c 89 47 d4 mov %r8,-0x2c(%rdi) + 431aab: 4c 89 4f dc mov %r9,-0x24(%rdi) + 431aaf: 4c 89 57 e4 mov %r10,-0x1c(%rdi) + 431ab3: 4c 89 5f ec mov %r11,-0x14(%rdi) + 431ab7: 48 89 4f f4 mov %rcx,-0xc(%rdi) + 431abb: 89 57 fc mov %edx,-0x4(%rdi) + 431abe: c3 retq + 431abf: 90 nop + 431ac0: 4c 8b 4e dc mov -0x24(%rsi),%r9 + 431ac4: 4c 8b 56 e4 mov -0x1c(%rsi),%r10 + 431ac8: 4c 8b 5e ec mov -0x14(%rsi),%r11 + 431acc: 48 8b 4e f4 mov -0xc(%rsi),%rcx + 431ad0: 8b 56 fc mov -0x4(%rsi),%edx + 431ad3: 4c 89 4f dc mov %r9,-0x24(%rdi) + 431ad7: 4c 89 57 e4 mov %r10,-0x1c(%rdi) + 431adb: 4c 89 5f ec mov %r11,-0x14(%rdi) + 431adf: 48 89 4f f4 mov %rcx,-0xc(%rdi) + 431ae3: 89 57 fc mov %edx,-0x4(%rdi) + 431ae6: c3 retq + 431ae7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 431aee: 00 00 + 431af0: 4c 8b 56 e4 mov -0x1c(%rsi),%r10 + 431af4: 4c 8b 5e ec mov -0x14(%rsi),%r11 + 431af8: 48 8b 4e f4 mov -0xc(%rsi),%rcx + 431afc: 8b 56 fc mov -0x4(%rsi),%edx + 431aff: 4c 89 57 e4 mov %r10,-0x1c(%rdi) + 431b03: 4c 89 5f ec mov %r11,-0x14(%rdi) + 431b07: 48 89 4f f4 mov %rcx,-0xc(%rdi) + 431b0b: 89 57 fc mov %edx,-0x4(%rdi) + 431b0e: c3 retq + 431b0f: 90 nop + 431b10: 4c 8b 5e ec mov -0x14(%rsi),%r11 + 431b14: 48 8b 4e f4 mov -0xc(%rsi),%rcx + 431b18: 8b 56 fc mov -0x4(%rsi),%edx + 431b1b: 4c 89 5f ec mov %r11,-0x14(%rdi) + 431b1f: 48 89 4f f4 mov %rcx,-0xc(%rdi) + 431b23: 89 57 fc mov %edx,-0x4(%rdi) + 431b26: c3 retq + 431b27: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 431b2e: 00 00 + 431b30: 48 8b 4e f4 mov -0xc(%rsi),%rcx + 431b34: 8b 56 fc mov -0x4(%rsi),%edx + 431b37: 48 89 4f f4 mov %rcx,-0xc(%rdi) + 431b3b: 89 57 fc mov %edx,-0x4(%rdi) + 431b3e: c3 retq + 431b3f: 90 nop + 431b40: 8b 56 fc mov -0x4(%rsi),%edx + 431b43: 89 57 fc mov %edx,-0x4(%rdi) + 431b46: c3 retq + 431b47: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 431b4e: 00 00 + 431b50: f3 0f 6f 46 b3 movdqu -0x4d(%rsi),%xmm0 + 431b55: f3 0f 6f 4e c3 movdqu -0x3d(%rsi),%xmm1 + 431b5a: 4c 8b 46 d3 mov -0x2d(%rsi),%r8 + 431b5e: 4c 8b 4e db mov -0x25(%rsi),%r9 + 431b62: 4c 8b 56 e3 mov -0x1d(%rsi),%r10 + 431b66: 4c 8b 5e eb mov -0x15(%rsi),%r11 + 431b6a: 48 8b 4e f3 mov -0xd(%rsi),%rcx + 431b6e: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431b72: f3 0f 7f 47 b3 movdqu %xmm0,-0x4d(%rdi) + 431b77: f3 0f 7f 4f c3 movdqu %xmm1,-0x3d(%rdi) + 431b7c: 4c 89 47 d3 mov %r8,-0x2d(%rdi) + 431b80: 4c 89 4f db mov %r9,-0x25(%rdi) + 431b84: 4c 89 57 e3 mov %r10,-0x1d(%rdi) + 431b88: 4c 89 5f eb mov %r11,-0x15(%rdi) + 431b8c: 48 89 4f f3 mov %rcx,-0xd(%rdi) + 431b90: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431b94: c3 retq + 431b95: 90 nop + 431b96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 431b9d: 00 00 00 + 431ba0: f3 0f 6f 46 bb movdqu -0x45(%rsi),%xmm0 + 431ba5: f3 0f 6f 4e cb movdqu -0x35(%rsi),%xmm1 + 431baa: 4c 8b 4e db mov -0x25(%rsi),%r9 + 431bae: 4c 8b 56 e3 mov -0x1d(%rsi),%r10 + 431bb2: 4c 8b 5e eb mov -0x15(%rsi),%r11 + 431bb6: 48 8b 4e f3 mov -0xd(%rsi),%rcx + 431bba: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431bbe: f3 0f 7f 47 bb movdqu %xmm0,-0x45(%rdi) + 431bc3: f3 0f 7f 4f cb movdqu %xmm1,-0x35(%rdi) + 431bc8: 4c 89 4f db mov %r9,-0x25(%rdi) + 431bcc: 4c 89 57 e3 mov %r10,-0x1d(%rdi) + 431bd0: 4c 89 5f eb mov %r11,-0x15(%rdi) + 431bd4: 48 89 4f f3 mov %rcx,-0xd(%rdi) + 431bd8: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431bdc: c3 retq + 431bdd: 0f 1f 00 nopl (%rax) + 431be0: f3 0f 6f 46 c3 movdqu -0x3d(%rsi),%xmm0 + 431be5: 4c 8b 46 d3 mov -0x2d(%rsi),%r8 + 431be9: 4c 8b 4e db mov -0x25(%rsi),%r9 + 431bed: 4c 8b 56 e3 mov -0x1d(%rsi),%r10 + 431bf1: 4c 8b 5e eb mov -0x15(%rsi),%r11 + 431bf5: 48 8b 4e f3 mov -0xd(%rsi),%rcx + 431bf9: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431bfd: f3 0f 7f 47 c3 movdqu %xmm0,-0x3d(%rdi) + 431c02: 4c 89 47 d3 mov %r8,-0x2d(%rdi) + 431c06: 4c 89 4f db mov %r9,-0x25(%rdi) + 431c0a: 4c 89 57 e3 mov %r10,-0x1d(%rdi) + 431c0e: 4c 89 5f eb mov %r11,-0x15(%rdi) + 431c12: 48 89 4f f3 mov %rcx,-0xd(%rdi) + 431c16: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431c1a: c3 retq + 431c1b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 431c20: f3 0f 6f 46 cb movdqu -0x35(%rsi),%xmm0 + 431c25: 4c 8b 46 d3 mov -0x2d(%rsi),%r8 + 431c29: 4c 8b 4e db mov -0x25(%rsi),%r9 + 431c2d: 4c 8b 56 e3 mov -0x1d(%rsi),%r10 + 431c31: 4c 8b 5e eb mov -0x15(%rsi),%r11 + 431c35: 48 8b 4e f3 mov -0xd(%rsi),%rcx + 431c39: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431c3d: f3 0f 7f 47 cb movdqu %xmm0,-0x35(%rdi) + 431c42: 4c 89 4f db mov %r9,-0x25(%rdi) + 431c46: 4c 89 57 e3 mov %r10,-0x1d(%rdi) + 431c4a: 4c 89 5f eb mov %r11,-0x15(%rdi) + 431c4e: 48 89 4f f3 mov %rcx,-0xd(%rdi) + 431c52: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431c56: c3 retq + 431c57: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 431c5e: 00 00 + 431c60: 4c 8b 46 d3 mov -0x2d(%rsi),%r8 + 431c64: 4c 8b 4e db mov -0x25(%rsi),%r9 + 431c68: 4c 8b 56 e3 mov -0x1d(%rsi),%r10 + 431c6c: 4c 8b 5e eb mov -0x15(%rsi),%r11 + 431c70: 48 8b 4e f3 mov -0xd(%rsi),%rcx + 431c74: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431c78: 4c 89 47 d3 mov %r8,-0x2d(%rdi) + 431c7c: 4c 89 4f db mov %r9,-0x25(%rdi) + 431c80: 4c 89 57 e3 mov %r10,-0x1d(%rdi) + 431c84: 4c 89 5f eb mov %r11,-0x15(%rdi) + 431c88: 48 89 4f f3 mov %rcx,-0xd(%rdi) + 431c8c: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431c90: c3 retq + 431c91: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 431c96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 431c9d: 00 00 00 + 431ca0: 4c 8b 4e db mov -0x25(%rsi),%r9 + 431ca4: 4c 8b 56 e3 mov -0x1d(%rsi),%r10 + 431ca8: 4c 8b 5e eb mov -0x15(%rsi),%r11 + 431cac: 48 8b 4e f3 mov -0xd(%rsi),%rcx + 431cb0: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431cb4: 4c 89 4f db mov %r9,-0x25(%rdi) + 431cb8: 4c 89 57 e3 mov %r10,-0x1d(%rdi) + 431cbc: 4c 89 5f eb mov %r11,-0x15(%rdi) + 431cc0: 48 89 4f f3 mov %rcx,-0xd(%rdi) + 431cc4: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431cc8: c3 retq + 431cc9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 431cd0: 4c 8b 56 e3 mov -0x1d(%rsi),%r10 + 431cd4: 4c 8b 5e eb mov -0x15(%rsi),%r11 + 431cd8: 48 8b 4e f3 mov -0xd(%rsi),%rcx + 431cdc: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431ce0: 4c 89 57 e3 mov %r10,-0x1d(%rdi) + 431ce4: 4c 89 5f eb mov %r11,-0x15(%rdi) + 431ce8: 48 89 4f f3 mov %rcx,-0xd(%rdi) + 431cec: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431cf0: c3 retq + 431cf1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 431cf6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 431cfd: 00 00 00 + 431d00: 4c 8b 5e eb mov -0x15(%rsi),%r11 + 431d04: 48 8b 4e f3 mov -0xd(%rsi),%rcx + 431d08: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431d0c: 4c 89 5f eb mov %r11,-0x15(%rdi) + 431d10: 48 89 4f f3 mov %rcx,-0xd(%rdi) + 431d14: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431d18: c3 retq + 431d19: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 431d20: 48 8b 4e f3 mov -0xd(%rsi),%rcx + 431d24: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431d28: 48 89 4f f3 mov %rcx,-0xd(%rdi) + 431d2c: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431d30: c3 retq + 431d31: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 431d36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 431d3d: 00 00 00 + 431d40: 8b 56 fb mov -0x5(%rsi),%edx + 431d43: 8b 4e fc mov -0x4(%rsi),%ecx + 431d46: 89 57 fb mov %edx,-0x5(%rdi) + 431d49: 89 4f fc mov %ecx,-0x4(%rdi) + 431d4c: c3 retq + 431d4d: 0f 1f 00 nopl (%rax) + 431d50: f3 0f 6f 46 b2 movdqu -0x4e(%rsi),%xmm0 + 431d55: f3 0f 6f 4e c2 movdqu -0x3e(%rsi),%xmm1 + 431d5a: 4c 8b 46 d2 mov -0x2e(%rsi),%r8 + 431d5e: 4c 8b 4e da mov -0x26(%rsi),%r9 + 431d62: 4c 8b 56 e2 mov -0x1e(%rsi),%r10 + 431d66: 4c 8b 5e ea mov -0x16(%rsi),%r11 + 431d6a: 48 8b 4e f2 mov -0xe(%rsi),%rcx + 431d6e: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431d72: f3 0f 7f 47 b2 movdqu %xmm0,-0x4e(%rdi) + 431d77: f3 0f 7f 4f c2 movdqu %xmm1,-0x3e(%rdi) + 431d7c: 4c 89 47 d2 mov %r8,-0x2e(%rdi) + 431d80: 4c 89 4f da mov %r9,-0x26(%rdi) + 431d84: 4c 89 57 e2 mov %r10,-0x1e(%rdi) + 431d88: 4c 89 5f ea mov %r11,-0x16(%rdi) + 431d8c: 48 89 4f f2 mov %rcx,-0xe(%rdi) + 431d90: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431d94: c3 retq + 431d95: 90 nop + 431d96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 431d9d: 00 00 00 + 431da0: f3 0f 6f 46 ba movdqu -0x46(%rsi),%xmm0 + 431da5: f3 0f 6f 4e ca movdqu -0x36(%rsi),%xmm1 + 431daa: 4c 8b 4e da mov -0x26(%rsi),%r9 + 431dae: 4c 8b 56 e2 mov -0x1e(%rsi),%r10 + 431db2: 4c 8b 5e ea mov -0x16(%rsi),%r11 + 431db6: 48 8b 4e f2 mov -0xe(%rsi),%rcx + 431dba: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431dbe: f3 0f 7f 47 ba movdqu %xmm0,-0x46(%rdi) + 431dc3: f3 0f 7f 4f ca movdqu %xmm1,-0x36(%rdi) + 431dc8: 4c 89 4f da mov %r9,-0x26(%rdi) + 431dcc: 4c 89 57 e2 mov %r10,-0x1e(%rdi) + 431dd0: 4c 89 5f ea mov %r11,-0x16(%rdi) + 431dd4: 48 89 4f f2 mov %rcx,-0xe(%rdi) + 431dd8: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431ddc: c3 retq + 431ddd: 0f 1f 00 nopl (%rax) + 431de0: f3 0f 6f 46 c2 movdqu -0x3e(%rsi),%xmm0 + 431de5: 4c 8b 46 d2 mov -0x2e(%rsi),%r8 + 431de9: 4c 8b 4e da mov -0x26(%rsi),%r9 + 431ded: 4c 8b 56 e2 mov -0x1e(%rsi),%r10 + 431df1: 4c 8b 5e ea mov -0x16(%rsi),%r11 + 431df5: 48 8b 4e f2 mov -0xe(%rsi),%rcx + 431df9: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431dfd: f3 0f 7f 47 c2 movdqu %xmm0,-0x3e(%rdi) + 431e02: 4c 89 47 d2 mov %r8,-0x2e(%rdi) + 431e06: 4c 89 4f da mov %r9,-0x26(%rdi) + 431e0a: 4c 89 57 e2 mov %r10,-0x1e(%rdi) + 431e0e: 4c 89 5f ea mov %r11,-0x16(%rdi) + 431e12: 48 89 4f f2 mov %rcx,-0xe(%rdi) + 431e16: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431e1a: c3 retq + 431e1b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 431e20: f3 0f 6f 46 ca movdqu -0x36(%rsi),%xmm0 + 431e25: 4c 8b 4e da mov -0x26(%rsi),%r9 + 431e29: 4c 8b 56 e2 mov -0x1e(%rsi),%r10 + 431e2d: 4c 8b 5e ea mov -0x16(%rsi),%r11 + 431e31: 48 8b 4e f2 mov -0xe(%rsi),%rcx + 431e35: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431e39: f3 0f 7f 47 ca movdqu %xmm0,-0x36(%rdi) + 431e3e: 4c 89 4f da mov %r9,-0x26(%rdi) + 431e42: 4c 89 57 e2 mov %r10,-0x1e(%rdi) + 431e46: 4c 89 5f ea mov %r11,-0x16(%rdi) + 431e4a: 48 89 4f f2 mov %rcx,-0xe(%rdi) + 431e4e: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431e52: c3 retq + 431e53: 0f 1f 00 nopl (%rax) + 431e56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 431e5d: 00 00 00 + 431e60: 4c 8b 46 d2 mov -0x2e(%rsi),%r8 + 431e64: 4c 8b 4e da mov -0x26(%rsi),%r9 + 431e68: 4c 8b 56 e2 mov -0x1e(%rsi),%r10 + 431e6c: 4c 8b 5e ea mov -0x16(%rsi),%r11 + 431e70: 48 8b 4e f2 mov -0xe(%rsi),%rcx + 431e74: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431e78: 4c 89 47 d2 mov %r8,-0x2e(%rdi) + 431e7c: 4c 89 4f da mov %r9,-0x26(%rdi) + 431e80: 4c 89 57 e2 mov %r10,-0x1e(%rdi) + 431e84: 4c 89 5f ea mov %r11,-0x16(%rdi) + 431e88: 48 89 4f f2 mov %rcx,-0xe(%rdi) + 431e8c: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431e90: c3 retq + 431e91: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 431e96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 431e9d: 00 00 00 + 431ea0: 4c 8b 4e da mov -0x26(%rsi),%r9 + 431ea4: 4c 8b 56 e2 mov -0x1e(%rsi),%r10 + 431ea8: 4c 8b 5e ea mov -0x16(%rsi),%r11 + 431eac: 48 8b 4e f2 mov -0xe(%rsi),%rcx + 431eb0: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431eb4: 4c 89 4f da mov %r9,-0x26(%rdi) + 431eb8: 4c 89 57 e2 mov %r10,-0x1e(%rdi) + 431ebc: 4c 89 5f ea mov %r11,-0x16(%rdi) + 431ec0: 48 89 4f f2 mov %rcx,-0xe(%rdi) + 431ec4: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431ec8: c3 retq + 431ec9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 431ed0: 4c 8b 56 e2 mov -0x1e(%rsi),%r10 + 431ed4: 4c 8b 5e ea mov -0x16(%rsi),%r11 + 431ed8: 48 8b 4e f2 mov -0xe(%rsi),%rcx + 431edc: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431ee0: 4c 89 57 e2 mov %r10,-0x1e(%rdi) + 431ee4: 4c 89 5f ea mov %r11,-0x16(%rdi) + 431ee8: 48 89 4f f2 mov %rcx,-0xe(%rdi) + 431eec: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431ef0: c3 retq + 431ef1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 431ef6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 431efd: 00 00 00 + 431f00: 4c 8b 5e ea mov -0x16(%rsi),%r11 + 431f04: 48 8b 4e f2 mov -0xe(%rsi),%rcx + 431f08: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431f0c: 4c 89 5f ea mov %r11,-0x16(%rdi) + 431f10: 48 89 4f f2 mov %rcx,-0xe(%rdi) + 431f14: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431f18: c3 retq + 431f19: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 431f20: 48 8b 4e f2 mov -0xe(%rsi),%rcx + 431f24: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431f28: 48 89 4f f2 mov %rcx,-0xe(%rdi) + 431f2c: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431f30: c3 retq + 431f31: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 431f36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 431f3d: 00 00 00 + 431f40: 8b 56 fa mov -0x6(%rsi),%edx + 431f43: 8b 4e fc mov -0x4(%rsi),%ecx + 431f46: 89 57 fa mov %edx,-0x6(%rdi) + 431f49: 89 4f fc mov %ecx,-0x4(%rdi) + 431f4c: c3 retq + 431f4d: 0f 1f 00 nopl (%rax) + 431f50: f3 0f 6f 46 b1 movdqu -0x4f(%rsi),%xmm0 + 431f55: f3 0f 6f 4e c1 movdqu -0x3f(%rsi),%xmm1 + 431f5a: 4c 8b 46 d1 mov -0x2f(%rsi),%r8 + 431f5e: 4c 8b 4e d9 mov -0x27(%rsi),%r9 + 431f62: 4c 8b 56 e1 mov -0x1f(%rsi),%r10 + 431f66: 4c 8b 5e e9 mov -0x17(%rsi),%r11 + 431f6a: 48 8b 4e f1 mov -0xf(%rsi),%rcx + 431f6e: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431f72: f3 0f 7f 47 b1 movdqu %xmm0,-0x4f(%rdi) + 431f77: f3 0f 7f 4f c1 movdqu %xmm1,-0x3f(%rdi) + 431f7c: 4c 89 47 d1 mov %r8,-0x2f(%rdi) + 431f80: 4c 89 4f d9 mov %r9,-0x27(%rdi) + 431f84: 4c 89 57 e1 mov %r10,-0x1f(%rdi) + 431f88: 4c 89 5f e9 mov %r11,-0x17(%rdi) + 431f8c: 48 89 4f f1 mov %rcx,-0xf(%rdi) + 431f90: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431f94: c3 retq + 431f95: 90 nop + 431f96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 431f9d: 00 00 00 + 431fa0: f3 0f 6f 46 b9 movdqu -0x47(%rsi),%xmm0 + 431fa5: f3 0f 6f 4e c9 movdqu -0x37(%rsi),%xmm1 + 431faa: 4c 8b 4e d9 mov -0x27(%rsi),%r9 + 431fae: 4c 8b 56 e1 mov -0x1f(%rsi),%r10 + 431fb2: 4c 8b 5e e9 mov -0x17(%rsi),%r11 + 431fb6: 48 8b 4e f1 mov -0xf(%rsi),%rcx + 431fba: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431fbe: f3 0f 7f 47 b9 movdqu %xmm0,-0x47(%rdi) + 431fc3: f3 0f 7f 4f c9 movdqu %xmm1,-0x37(%rdi) + 431fc8: 4c 89 4f d9 mov %r9,-0x27(%rdi) + 431fcc: 4c 89 57 e1 mov %r10,-0x1f(%rdi) + 431fd0: 4c 89 5f e9 mov %r11,-0x17(%rdi) + 431fd4: 48 89 4f f1 mov %rcx,-0xf(%rdi) + 431fd8: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 431fdc: c3 retq + 431fdd: 0f 1f 00 nopl (%rax) + 431fe0: f3 0f 6f 46 c1 movdqu -0x3f(%rsi),%xmm0 + 431fe5: 4c 8b 46 d1 mov -0x2f(%rsi),%r8 + 431fe9: 4c 8b 4e d9 mov -0x27(%rsi),%r9 + 431fed: 4c 8b 56 e1 mov -0x1f(%rsi),%r10 + 431ff1: 4c 8b 5e e9 mov -0x17(%rsi),%r11 + 431ff5: 48 8b 4e f1 mov -0xf(%rsi),%rcx + 431ff9: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 431ffd: f3 0f 7f 47 c1 movdqu %xmm0,-0x3f(%rdi) + 432002: 4c 89 47 d1 mov %r8,-0x2f(%rdi) + 432006: 4c 89 4f d9 mov %r9,-0x27(%rdi) + 43200a: 4c 89 57 e1 mov %r10,-0x1f(%rdi) + 43200e: 4c 89 5f e9 mov %r11,-0x17(%rdi) + 432012: 48 89 4f f1 mov %rcx,-0xf(%rdi) + 432016: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 43201a: c3 retq + 43201b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 432020: f3 0f 6f 46 c9 movdqu -0x37(%rsi),%xmm0 + 432025: 4c 8b 4e d9 mov -0x27(%rsi),%r9 + 432029: 4c 8b 56 e1 mov -0x1f(%rsi),%r10 + 43202d: 4c 8b 5e e9 mov -0x17(%rsi),%r11 + 432031: 48 8b 4e f1 mov -0xf(%rsi),%rcx + 432035: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 432039: f3 0f 7f 47 c9 movdqu %xmm0,-0x37(%rdi) + 43203e: 4c 89 4f d9 mov %r9,-0x27(%rdi) + 432042: 4c 89 57 e1 mov %r10,-0x1f(%rdi) + 432046: 4c 89 5f e9 mov %r11,-0x17(%rdi) + 43204a: 48 89 4f f1 mov %rcx,-0xf(%rdi) + 43204e: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 432052: c3 retq + 432053: 0f 1f 00 nopl (%rax) + 432056: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43205d: 00 00 00 + 432060: 4c 8b 46 d1 mov -0x2f(%rsi),%r8 + 432064: 4c 8b 4e d9 mov -0x27(%rsi),%r9 + 432068: 4c 8b 56 e1 mov -0x1f(%rsi),%r10 + 43206c: 4c 8b 5e e9 mov -0x17(%rsi),%r11 + 432070: 48 8b 4e f1 mov -0xf(%rsi),%rcx + 432074: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 432078: 4c 89 47 d1 mov %r8,-0x2f(%rdi) + 43207c: 4c 89 4f d9 mov %r9,-0x27(%rdi) + 432080: 4c 89 57 e1 mov %r10,-0x1f(%rdi) + 432084: 4c 89 5f e9 mov %r11,-0x17(%rdi) + 432088: 48 89 4f f1 mov %rcx,-0xf(%rdi) + 43208c: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 432090: c3 retq + 432091: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 432096: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43209d: 00 00 00 + 4320a0: 4c 8b 4e d9 mov -0x27(%rsi),%r9 + 4320a4: 4c 8b 56 e1 mov -0x1f(%rsi),%r10 + 4320a8: 4c 8b 5e e9 mov -0x17(%rsi),%r11 + 4320ac: 48 8b 4e f1 mov -0xf(%rsi),%rcx + 4320b0: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 4320b4: 4c 89 4f d9 mov %r9,-0x27(%rdi) + 4320b8: 4c 89 57 e1 mov %r10,-0x1f(%rdi) + 4320bc: 4c 89 5f e9 mov %r11,-0x17(%rdi) + 4320c0: 48 89 4f f1 mov %rcx,-0xf(%rdi) + 4320c4: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 4320c8: c3 retq + 4320c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4320d0: 4c 8b 56 e1 mov -0x1f(%rsi),%r10 + 4320d4: 4c 8b 5e e9 mov -0x17(%rsi),%r11 + 4320d8: 48 8b 4e f1 mov -0xf(%rsi),%rcx + 4320dc: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 4320e0: 4c 89 57 e1 mov %r10,-0x1f(%rdi) + 4320e4: 4c 89 5f e9 mov %r11,-0x17(%rdi) + 4320e8: 48 89 4f f1 mov %rcx,-0xf(%rdi) + 4320ec: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 4320f0: c3 retq + 4320f1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4320f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4320fd: 00 00 00 + 432100: 4c 8b 5e e9 mov -0x17(%rsi),%r11 + 432104: 48 8b 4e f1 mov -0xf(%rsi),%rcx + 432108: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 43210c: 4c 89 5f e9 mov %r11,-0x17(%rdi) + 432110: 48 89 4f f1 mov %rcx,-0xf(%rdi) + 432114: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 432118: c3 retq + 432119: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 432120: 48 8b 4e f1 mov -0xf(%rsi),%rcx + 432124: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 432128: 48 89 4f f1 mov %rcx,-0xf(%rdi) + 43212c: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 432130: c3 retq + 432131: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 432136: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43213d: 00 00 00 + 432140: 8b 56 f9 mov -0x7(%rsi),%edx + 432143: 8b 4e fc mov -0x4(%rsi),%ecx + 432146: 89 57 f9 mov %edx,-0x7(%rdi) + 432149: 89 4f fc mov %ecx,-0x4(%rdi) + 43214c: c3 retq + 43214d: 0f 1f 00 nopl (%rax) + 432150: f3 0f 6f 0e movdqu (%rsi),%xmm1 + 432154: 48 8d 76 10 lea 0x10(%rsi),%rsi + 432158: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 43215d: 66 0f e7 0f movntdq %xmm1,(%rdi) + 432161: 48 8d 7f 10 lea 0x10(%rdi),%rdi + 432165: 48 8d 92 70 ff ff ff lea -0x90(%rdx),%rdx + 43216c: 49 89 f1 mov %rsi,%r9 + 43216f: 49 29 f9 sub %rdi,%r9 + 432172: 49 39 d1 cmp %rdx,%r9 + 432175: 73 0d jae 432184 <__memmove_ssse3+0x2834> + 432177: 48 c1 e1 02 shl $0x2,%rcx + 43217b: 48 39 ca cmp %rcx,%rdx + 43217e: 0f 82 cc 00 00 00 jb 432250 <__memmove_ssse3+0x2900> + 432184: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 432188: f3 0f 6f 4e 10 movdqu 0x10(%rsi),%xmm1 + 43218d: f3 0f 6f 56 20 movdqu 0x20(%rsi),%xmm2 + 432192: f3 0f 6f 5e 30 movdqu 0x30(%rsi),%xmm3 + 432197: f3 0f 6f 66 40 movdqu 0x40(%rsi),%xmm4 + 43219c: f3 0f 6f 6e 50 movdqu 0x50(%rsi),%xmm5 + 4321a1: f3 0f 6f 76 60 movdqu 0x60(%rsi),%xmm6 + 4321a6: f3 0f 6f 7e 70 movdqu 0x70(%rsi),%xmm7 + 4321ab: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 4321b2: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 4321b9: 66 0f e7 07 movntdq %xmm0,(%rdi) + 4321bd: 66 0f e7 4f 10 movntdq %xmm1,0x10(%rdi) + 4321c2: 66 0f e7 57 20 movntdq %xmm2,0x20(%rdi) + 4321c7: 66 0f e7 5f 30 movntdq %xmm3,0x30(%rdi) + 4321cc: 66 0f e7 67 40 movntdq %xmm4,0x40(%rdi) + 4321d1: 66 0f e7 6f 50 movntdq %xmm5,0x50(%rdi) + 4321d6: 66 0f e7 77 60 movntdq %xmm6,0x60(%rdi) + 4321db: 66 0f e7 7f 70 movntdq %xmm7,0x70(%rdi) + 4321e0: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 4321e7: 73 9b jae 432184 <__memmove_ssse3+0x2834> + 4321e9: 48 83 fa c0 cmp $0xffffffffffffffc0,%rdx + 4321ed: 48 8d 92 80 00 00 00 lea 0x80(%rdx),%rdx + 4321f4: 7c 32 jl 432228 <__memmove_ssse3+0x28d8> + 4321f6: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 4321fa: f3 0f 6f 4e 10 movdqu 0x10(%rsi),%xmm1 + 4321ff: f3 0f 6f 56 20 movdqu 0x20(%rsi),%xmm2 + 432204: f3 0f 6f 5e 30 movdqu 0x30(%rsi),%xmm3 + 432209: 48 8d 76 40 lea 0x40(%rsi),%rsi + 43220d: 66 0f e7 07 movntdq %xmm0,(%rdi) + 432211: 66 0f e7 4f 10 movntdq %xmm1,0x10(%rdi) + 432216: 66 0f e7 57 20 movntdq %xmm2,0x20(%rdi) + 43221b: 66 0f e7 5f 30 movntdq %xmm3,0x30(%rdi) + 432220: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 432224: 48 83 ea 40 sub $0x40,%rdx + 432228: 48 01 d6 add %rdx,%rsi + 43222b: 48 01 d7 add %rdx,%rdi + 43222e: 0f ae f8 sfence + 432231: 4c 8d 1d 78 11 07 00 lea 0x71178(%rip),%r11 # 4a33b0 + 432238: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43223c: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 432240: ff e2 jmpq *%rdx + 432242: 0f 0b ud2 + 432244: 66 90 xchg %ax,%ax + 432246: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43224d: 00 00 00 + 432250: 0f 18 8e c0 01 00 00 prefetcht0 0x1c0(%rsi) + 432257: 0f 18 8e 00 02 00 00 prefetcht0 0x200(%rsi) + 43225e: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 432262: f3 0f 6f 4e 10 movdqu 0x10(%rsi),%xmm1 + 432267: f3 0f 6f 56 20 movdqu 0x20(%rsi),%xmm2 + 43226c: f3 0f 6f 5e 30 movdqu 0x30(%rsi),%xmm3 + 432271: f3 0f 6f 66 40 movdqu 0x40(%rsi),%xmm4 + 432276: f3 0f 6f 6e 50 movdqu 0x50(%rsi),%xmm5 + 43227b: f3 0f 6f 76 60 movdqu 0x60(%rsi),%xmm6 + 432280: f3 0f 6f 7e 70 movdqu 0x70(%rsi),%xmm7 + 432285: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 43228c: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 432293: 0f 29 07 movaps %xmm0,(%rdi) + 432296: 0f 29 4f 10 movaps %xmm1,0x10(%rdi) + 43229a: 0f 29 57 20 movaps %xmm2,0x20(%rdi) + 43229e: 0f 29 5f 30 movaps %xmm3,0x30(%rdi) + 4322a2: 0f 29 67 40 movaps %xmm4,0x40(%rdi) + 4322a6: 0f 29 6f 50 movaps %xmm5,0x50(%rdi) + 4322aa: 0f 29 77 60 movaps %xmm6,0x60(%rdi) + 4322ae: 0f 29 7f 70 movaps %xmm7,0x70(%rdi) + 4322b2: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 4322b9: 73 95 jae 432250 <__memmove_ssse3+0x2900> + 4322bb: 48 83 fa c0 cmp $0xffffffffffffffc0,%rdx + 4322bf: 48 8d 92 80 00 00 00 lea 0x80(%rdx),%rdx + 4322c6: 7c 2e jl 4322f6 <__memmove_ssse3+0x29a6> + 4322c8: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 4322cc: f3 0f 6f 4e 10 movdqu 0x10(%rsi),%xmm1 + 4322d1: f3 0f 6f 56 20 movdqu 0x20(%rsi),%xmm2 + 4322d6: f3 0f 6f 5e 30 movdqu 0x30(%rsi),%xmm3 + 4322db: 48 8d 76 40 lea 0x40(%rsi),%rsi + 4322df: 0f 29 07 movaps %xmm0,(%rdi) + 4322e2: 0f 29 4f 10 movaps %xmm1,0x10(%rdi) + 4322e6: 0f 29 57 20 movaps %xmm2,0x20(%rdi) + 4322ea: 0f 29 5f 30 movaps %xmm3,0x30(%rdi) + 4322ee: 48 8d 7f 40 lea 0x40(%rdi),%rdi + 4322f2: 48 83 ea 40 sub $0x40,%rdx + 4322f6: 48 01 d6 add %rdx,%rsi + 4322f9: 48 01 d7 add %rdx,%rdi + 4322fc: 4c 8d 1d ad 10 07 00 lea 0x710ad(%rip),%r11 # 4a33b0 + 432303: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 432307: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 43230b: ff e2 jmpq *%rdx + 43230d: 0f 0b ud2 + 43230f: 90 nop + 432310: f3 0f 6f 4e f0 movdqu -0x10(%rsi),%xmm1 + 432315: 48 8d 76 f0 lea -0x10(%rsi),%rsi + 432319: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 43231e: 66 0f 7f 4f f0 movdqa %xmm1,-0x10(%rdi) + 432323: 48 8d 7f f0 lea -0x10(%rdi),%rdi + 432327: 48 8d 92 70 ff ff ff lea -0x90(%rdx),%rdx + 43232e: 49 89 f9 mov %rdi,%r9 + 432331: 49 29 f1 sub %rsi,%r9 + 432334: 49 39 d1 cmp %rdx,%r9 + 432337: 73 09 jae 432342 <__memmove_ssse3+0x29f2> + 432339: 49 39 c9 cmp %rcx,%r9 + 43233c: 0f 82 be 00 00 00 jb 432400 <__memmove_ssse3+0x2ab0> + 432342: f3 0f 6f 46 f0 movdqu -0x10(%rsi),%xmm0 + 432347: f3 0f 6f 4e e0 movdqu -0x20(%rsi),%xmm1 + 43234c: f3 0f 6f 56 d0 movdqu -0x30(%rsi),%xmm2 + 432351: f3 0f 6f 5e c0 movdqu -0x40(%rsi),%xmm3 + 432356: f3 0f 6f 66 b0 movdqu -0x50(%rsi),%xmm4 + 43235b: f3 0f 6f 6e a0 movdqu -0x60(%rsi),%xmm5 + 432360: f3 0f 6f 76 90 movdqu -0x70(%rsi),%xmm6 + 432365: f3 0f 6f 7e 80 movdqu -0x80(%rsi),%xmm7 + 43236a: 48 8d 76 80 lea -0x80(%rsi),%rsi + 43236e: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 432375: 66 0f e7 47 f0 movntdq %xmm0,-0x10(%rdi) + 43237a: 66 0f e7 4f e0 movntdq %xmm1,-0x20(%rdi) + 43237f: 66 0f e7 57 d0 movntdq %xmm2,-0x30(%rdi) + 432384: 66 0f e7 5f c0 movntdq %xmm3,-0x40(%rdi) + 432389: 66 0f e7 67 b0 movntdq %xmm4,-0x50(%rdi) + 43238e: 66 0f e7 6f a0 movntdq %xmm5,-0x60(%rdi) + 432393: 66 0f e7 77 90 movntdq %xmm6,-0x70(%rdi) + 432398: 66 0f e7 7f 80 movntdq %xmm7,-0x80(%rdi) + 43239d: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 4323a1: 73 9f jae 432342 <__memmove_ssse3+0x29f2> + 4323a3: 48 83 fa c0 cmp $0xffffffffffffffc0,%rdx + 4323a7: 48 8d 92 80 00 00 00 lea 0x80(%rdx),%rdx + 4323ae: 7c 34 jl 4323e4 <__memmove_ssse3+0x2a94> + 4323b0: f3 0f 6f 46 f0 movdqu -0x10(%rsi),%xmm0 + 4323b5: f3 0f 6f 4e e0 movdqu -0x20(%rsi),%xmm1 + 4323ba: f3 0f 6f 56 d0 movdqu -0x30(%rsi),%xmm2 + 4323bf: f3 0f 6f 5e c0 movdqu -0x40(%rsi),%xmm3 + 4323c4: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 4323c8: 66 0f e7 47 f0 movntdq %xmm0,-0x10(%rdi) + 4323cd: 66 0f e7 4f e0 movntdq %xmm1,-0x20(%rdi) + 4323d2: 66 0f e7 57 d0 movntdq %xmm2,-0x30(%rdi) + 4323d7: 66 0f e7 5f c0 movntdq %xmm3,-0x40(%rdi) + 4323dc: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 4323e0: 48 83 ea 40 sub $0x40,%rdx + 4323e4: 0f ae f8 sfence + 4323e7: 4c 8d 1d c2 0f 07 00 lea 0x70fc2(%rip),%r11 # 4a33b0 + 4323ee: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4323f2: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4323f6: ff e2 jmpq *%rdx + 4323f8: 0f 0b ud2 + 4323fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 432400: 0f 18 8e 40 fe ff ff prefetcht0 -0x1c0(%rsi) + 432407: 0f 18 8e 00 fe ff ff prefetcht0 -0x200(%rsi) + 43240e: f3 0f 6f 46 f0 movdqu -0x10(%rsi),%xmm0 + 432413: f3 0f 6f 4e e0 movdqu -0x20(%rsi),%xmm1 + 432418: f3 0f 6f 56 d0 movdqu -0x30(%rsi),%xmm2 + 43241d: f3 0f 6f 5e c0 movdqu -0x40(%rsi),%xmm3 + 432422: f3 0f 6f 66 b0 movdqu -0x50(%rsi),%xmm4 + 432427: f3 0f 6f 6e a0 movdqu -0x60(%rsi),%xmm5 + 43242c: f3 0f 6f 76 90 movdqu -0x70(%rsi),%xmm6 + 432431: f3 0f 6f 7e 80 movdqu -0x80(%rsi),%xmm7 + 432436: 48 8d 76 80 lea -0x80(%rsi),%rsi + 43243a: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 432441: 0f 29 47 f0 movaps %xmm0,-0x10(%rdi) + 432445: 0f 29 4f e0 movaps %xmm1,-0x20(%rdi) + 432449: 0f 29 57 d0 movaps %xmm2,-0x30(%rdi) + 43244d: 0f 29 5f c0 movaps %xmm3,-0x40(%rdi) + 432451: 0f 29 67 b0 movaps %xmm4,-0x50(%rdi) + 432455: 0f 29 6f a0 movaps %xmm5,-0x60(%rdi) + 432459: 0f 29 77 90 movaps %xmm6,-0x70(%rdi) + 43245d: 0f 29 7f 80 movaps %xmm7,-0x80(%rdi) + 432461: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 432465: 73 99 jae 432400 <__memmove_ssse3+0x2ab0> + 432467: 48 83 fa c0 cmp $0xffffffffffffffc0,%rdx + 43246b: 48 8d 92 80 00 00 00 lea 0x80(%rdx),%rdx + 432472: 7c 30 jl 4324a4 <__memmove_ssse3+0x2b54> + 432474: f3 0f 6f 46 f0 movdqu -0x10(%rsi),%xmm0 + 432479: f3 0f 6f 4e e0 movdqu -0x20(%rsi),%xmm1 + 43247e: f3 0f 6f 56 d0 movdqu -0x30(%rsi),%xmm2 + 432483: f3 0f 6f 5e c0 movdqu -0x40(%rsi),%xmm3 + 432488: 48 8d 76 c0 lea -0x40(%rsi),%rsi + 43248c: 0f 29 47 f0 movaps %xmm0,-0x10(%rdi) + 432490: 0f 29 4f e0 movaps %xmm1,-0x20(%rdi) + 432494: 0f 29 57 d0 movaps %xmm2,-0x30(%rdi) + 432498: 0f 29 5f c0 movaps %xmm3,-0x40(%rdi) + 43249c: 48 8d 7f c0 lea -0x40(%rdi),%rdi + 4324a0: 48 83 ea 40 sub $0x40,%rdx + 4324a4: 4c 8d 1d 05 0f 07 00 lea 0x70f05(%rip),%r11 # 4a33b0 + 4324ab: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4324af: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4324b3: ff e2 jmpq *%rdx + 4324b5: 0f 0b ud2 + 4324b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4324be: 00 00 + +00000000004324c0 <__memmove_chk_avx_unaligned>: + 4324c0: 48 39 d1 cmp %rdx,%rcx + 4324c3: 0f 82 e7 05 01 00 jb 442ab0 <__chk_fail> + 4324c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +00000000004324d0 <__memmove_avx_unaligned>: + 4324d0: 48 89 f8 mov %rdi,%rax + 4324d3: 48 81 fa 00 01 00 00 cmp $0x100,%rdx + 4324da: 0f 83 c0 01 00 00 jae 4326a0 <__memmove_avx_unaligned+0x1d0> + 4324e0: 80 fa 10 cmp $0x10,%dl + 4324e3: 0f 82 67 01 00 00 jb 432650 <__memmove_avx_unaligned+0x180> + 4324e9: 80 fa 80 cmp $0x80,%dl + 4324ec: 0f 82 ae 00 00 00 jb 4325a0 <__memmove_avx_unaligned+0xd0> + 4324f2: c5 fa 6f 06 vmovdqu (%rsi),%xmm0 + 4324f6: 48 8d 0c 16 lea (%rsi,%rdx,1),%rcx + 4324fa: c5 fa 6f 4e 10 vmovdqu 0x10(%rsi),%xmm1 + 4324ff: c5 fa 6f 56 20 vmovdqu 0x20(%rsi),%xmm2 + 432504: c5 fa 6f 5e 30 vmovdqu 0x30(%rsi),%xmm3 + 432509: c5 fa 6f 66 40 vmovdqu 0x40(%rsi),%xmm4 + 43250e: c5 fa 6f 6e 50 vmovdqu 0x50(%rsi),%xmm5 + 432513: c5 fa 6f 76 60 vmovdqu 0x60(%rsi),%xmm6 + 432518: c5 fa 6f 7e 70 vmovdqu 0x70(%rsi),%xmm7 + 43251d: c5 7a 6f 41 80 vmovdqu -0x80(%rcx),%xmm8 + 432522: c5 7a 6f 49 90 vmovdqu -0x70(%rcx),%xmm9 + 432527: c5 7a 6f 51 a0 vmovdqu -0x60(%rcx),%xmm10 + 43252c: c5 7a 6f 59 b0 vmovdqu -0x50(%rcx),%xmm11 + 432531: c5 7a 6f 61 c0 vmovdqu -0x40(%rcx),%xmm12 + 432536: c5 7a 6f 69 d0 vmovdqu -0x30(%rcx),%xmm13 + 43253b: c5 7a 6f 71 e0 vmovdqu -0x20(%rcx),%xmm14 + 432540: c5 7a 6f 79 f0 vmovdqu -0x10(%rcx),%xmm15 + 432545: 48 8d 14 17 lea (%rdi,%rdx,1),%rdx + 432549: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) + 43254d: c5 fa 7f 4f 10 vmovdqu %xmm1,0x10(%rdi) + 432552: c5 fa 7f 57 20 vmovdqu %xmm2,0x20(%rdi) + 432557: c5 fa 7f 5f 30 vmovdqu %xmm3,0x30(%rdi) + 43255c: c5 fa 7f 67 40 vmovdqu %xmm4,0x40(%rdi) + 432561: c5 fa 7f 6f 50 vmovdqu %xmm5,0x50(%rdi) + 432566: c5 fa 7f 77 60 vmovdqu %xmm6,0x60(%rdi) + 43256b: c5 fa 7f 7f 70 vmovdqu %xmm7,0x70(%rdi) + 432570: c5 7a 7f 42 80 vmovdqu %xmm8,-0x80(%rdx) + 432575: c5 7a 7f 4a 90 vmovdqu %xmm9,-0x70(%rdx) + 43257a: c5 7a 7f 52 a0 vmovdqu %xmm10,-0x60(%rdx) + 43257f: c5 7a 7f 5a b0 vmovdqu %xmm11,-0x50(%rdx) + 432584: c5 7a 7f 62 c0 vmovdqu %xmm12,-0x40(%rdx) + 432589: c5 7a 7f 6a d0 vmovdqu %xmm13,-0x30(%rdx) + 43258e: c5 7a 7f 72 e0 vmovdqu %xmm14,-0x20(%rdx) + 432593: c5 7a 7f 7a f0 vmovdqu %xmm15,-0x10(%rdx) + 432598: c3 retq + 432599: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4325a0: 80 fa 40 cmp $0x40,%dl + 4325a3: 72 5b jb 432600 <__memmove_avx_unaligned+0x130> + 4325a5: c5 fa 6f 06 vmovdqu (%rsi),%xmm0 + 4325a9: 48 8d 0c 16 lea (%rsi,%rdx,1),%rcx + 4325ad: c5 fa 6f 4e 10 vmovdqu 0x10(%rsi),%xmm1 + 4325b2: c5 fa 6f 56 20 vmovdqu 0x20(%rsi),%xmm2 + 4325b7: 48 8d 14 17 lea (%rdi,%rdx,1),%rdx + 4325bb: c5 fa 6f 5e 30 vmovdqu 0x30(%rsi),%xmm3 + 4325c0: c5 fa 6f 61 c0 vmovdqu -0x40(%rcx),%xmm4 + 4325c5: c5 fa 6f 69 d0 vmovdqu -0x30(%rcx),%xmm5 + 4325ca: c5 fa 6f 71 e0 vmovdqu -0x20(%rcx),%xmm6 + 4325cf: c5 fa 6f 79 f0 vmovdqu -0x10(%rcx),%xmm7 + 4325d4: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) + 4325d8: c5 fa 7f 4f 10 vmovdqu %xmm1,0x10(%rdi) + 4325dd: c5 fa 7f 57 20 vmovdqu %xmm2,0x20(%rdi) + 4325e2: c5 fa 7f 5f 30 vmovdqu %xmm3,0x30(%rdi) + 4325e7: c5 fa 7f 62 c0 vmovdqu %xmm4,-0x40(%rdx) + 4325ec: c5 fa 7f 6a d0 vmovdqu %xmm5,-0x30(%rdx) + 4325f1: c5 fa 7f 72 e0 vmovdqu %xmm6,-0x20(%rdx) + 4325f6: c5 fa 7f 7a f0 vmovdqu %xmm7,-0x10(%rdx) + 4325fb: c3 retq + 4325fc: 0f 1f 40 00 nopl 0x0(%rax) + 432600: 80 fa 20 cmp $0x20,%dl + 432603: 72 2b jb 432630 <__memmove_avx_unaligned+0x160> + 432605: c5 fa 6f 06 vmovdqu (%rsi),%xmm0 + 432609: c5 fa 6f 4e 10 vmovdqu 0x10(%rsi),%xmm1 + 43260e: c5 fa 6f 74 16 e0 vmovdqu -0x20(%rsi,%rdx,1),%xmm6 + 432614: c5 fa 6f 7c 16 f0 vmovdqu -0x10(%rsi,%rdx,1),%xmm7 + 43261a: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) + 43261e: c5 fa 7f 4f 10 vmovdqu %xmm1,0x10(%rdi) + 432623: c5 fa 7f 74 17 e0 vmovdqu %xmm6,-0x20(%rdi,%rdx,1) + 432629: c5 fa 7f 7c 17 f0 vmovdqu %xmm7,-0x10(%rdi,%rdx,1) + 43262f: c3 retq + 432630: c5 fa 6f 06 vmovdqu (%rsi),%xmm0 + 432634: c5 fa 6f 7c 16 f0 vmovdqu -0x10(%rsi,%rdx,1),%xmm7 + 43263a: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) + 43263e: c5 fa 7f 7c 17 f0 vmovdqu %xmm7,-0x10(%rdi,%rdx,1) + 432644: c3 retq + 432645: 90 nop + 432646: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43264d: 00 00 00 + 432650: 80 fa 08 cmp $0x8,%dl + 432653: 72 1b jb 432670 <__memmove_avx_unaligned+0x1a0> + 432655: 48 8b 4c 16 f8 mov -0x8(%rsi,%rdx,1),%rcx + 43265a: 48 8b 36 mov (%rsi),%rsi + 43265d: 48 89 37 mov %rsi,(%rdi) + 432660: 48 89 4c 17 f8 mov %rcx,-0x8(%rdi,%rdx,1) + 432665: c3 retq + 432666: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43266d: 00 00 00 + 432670: 80 fa 04 cmp $0x4,%dl + 432673: 72 0d jb 432682 <__memmove_avx_unaligned+0x1b2> + 432675: 8b 4c 16 fc mov -0x4(%rsi,%rdx,1),%ecx + 432679: 8b 36 mov (%rsi),%esi + 43267b: 89 37 mov %esi,(%rdi) + 43267d: 89 4c 17 fc mov %ecx,-0x4(%rdi,%rdx,1) + 432681: c3 retq + 432682: 80 fa 01 cmp $0x1,%dl + 432685: 76 11 jbe 432698 <__memmove_avx_unaligned+0x1c8> + 432687: 66 8b 4c 16 fe mov -0x2(%rsi,%rdx,1),%cx + 43268c: 66 8b 36 mov (%rsi),%si + 43268f: 66 89 37 mov %si,(%rdi) + 432692: 66 89 4c 17 fe mov %cx,-0x2(%rdi,%rdx,1) + 432697: c3 retq + 432698: 72 04 jb 43269e <__memmove_avx_unaligned+0x1ce> + 43269a: 8a 0e mov (%rsi),%cl + 43269c: 88 0f mov %cl,(%rdi) + 43269e: c3 retq + 43269f: 90 nop + 4326a0: 48 89 f9 mov %rdi,%rcx + 4326a3: 48 29 f1 sub %rsi,%rcx + 4326a6: 48 39 d1 cmp %rdx,%rcx + 4326a9: 0f 82 c1 01 00 00 jb 432870 <__memmove_avx_unaligned+0x3a0> + 4326af: 48 81 fa 00 08 00 00 cmp $0x800,%rdx + 4326b6: 0f 83 c4 00 00 00 jae 432780 <__memmove_avx_unaligned+0x2b0> + 4326bc: 49 89 c0 mov %rax,%r8 + 4326bf: 48 8d 0c 16 lea (%rsi,%rdx,1),%rcx + 4326c3: 49 89 fa mov %rdi,%r10 + 4326c6: c5 fa 6f 69 80 vmovdqu -0x80(%rcx),%xmm5 + 4326cb: c5 fa 6f 71 90 vmovdqu -0x70(%rcx),%xmm6 + 4326d0: 48 c7 c0 80 00 00 00 mov $0x80,%rax + 4326d7: 48 83 e7 e0 and $0xffffffffffffffe0,%rdi + 4326db: 48 83 c7 20 add $0x20,%rdi + 4326df: c5 fa 6f 79 a0 vmovdqu -0x60(%rcx),%xmm7 + 4326e4: c5 7a 6f 41 b0 vmovdqu -0x50(%rcx),%xmm8 + 4326e9: 49 89 fb mov %rdi,%r11 + 4326ec: 4d 29 d3 sub %r10,%r11 + 4326ef: c5 7a 6f 49 c0 vmovdqu -0x40(%rcx),%xmm9 + 4326f4: c5 7a 6f 51 d0 vmovdqu -0x30(%rcx),%xmm10 + 4326f9: 4c 29 da sub %r11,%rdx + 4326fc: c5 7a 6f 59 e0 vmovdqu -0x20(%rcx),%xmm11 + 432701: c5 7a 6f 61 f0 vmovdqu -0x10(%rcx),%xmm12 + 432706: c5 fe 6f 26 vmovdqu (%rsi),%ymm4 + 43270a: 4c 01 de add %r11,%rsi + 43270d: 29 c2 sub %eax,%edx + 43270f: c5 fe 6f 06 vmovdqu (%rsi),%ymm0 + 432713: c5 fe 6f 4e 20 vmovdqu 0x20(%rsi),%ymm1 + 432718: c5 fe 6f 56 40 vmovdqu 0x40(%rsi),%ymm2 + 43271d: c5 fe 6f 5e 60 vmovdqu 0x60(%rsi),%ymm3 + 432722: 48 01 c6 add %rax,%rsi + 432725: c5 fd 7f 07 vmovdqa %ymm0,(%rdi) + 432729: c5 fd 7f 4f 20 vmovdqa %ymm1,0x20(%rdi) + 43272e: c5 fd 7f 57 40 vmovdqa %ymm2,0x40(%rdi) + 432733: c5 fd 7f 5f 60 vmovdqa %ymm3,0x60(%rdi) + 432738: 48 01 c7 add %rax,%rdi + 43273b: 29 c2 sub %eax,%edx + 43273d: 73 d0 jae 43270f <__memmove_avx_unaligned+0x23f> + 43273f: 01 c2 add %eax,%edx + 432741: 48 01 fa add %rdi,%rdx + 432744: c4 c1 7e 7f 22 vmovdqu %ymm4,(%r10) + 432749: c5 f8 77 vzeroupper + 43274c: c5 fa 7f 6a 80 vmovdqu %xmm5,-0x80(%rdx) + 432751: c5 fa 7f 72 90 vmovdqu %xmm6,-0x70(%rdx) + 432756: c5 fa 7f 7a a0 vmovdqu %xmm7,-0x60(%rdx) + 43275b: c5 7a 7f 42 b0 vmovdqu %xmm8,-0x50(%rdx) + 432760: c5 7a 7f 4a c0 vmovdqu %xmm9,-0x40(%rdx) + 432765: c5 7a 7f 52 d0 vmovdqu %xmm10,-0x30(%rdx) + 43276a: c5 7a 7f 5a e0 vmovdqu %xmm11,-0x20(%rdx) + 43276f: c5 7a 7f 62 f0 vmovdqu %xmm12,-0x10(%rdx) + 432774: 4c 89 c0 mov %r8,%rax + 432777: c3 retq + 432778: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43277f: 00 + 432780: 48 8b 0d 29 89 29 00 mov 0x298929(%rip),%rcx # 6cb0b0 <__x86_shared_cache_size_half> + 432787: 48 c1 e1 03 shl $0x3,%rcx + 43278b: 48 39 ca cmp %rcx,%rdx + 43278e: 73 10 jae 4327a0 <__memmove_avx_unaligned+0x2d0> + 432790: 48 89 d1 mov %rdx,%rcx + 432793: 48 89 d1 mov %rdx,%rcx + 432796: f3 a4 rep movsb %ds:(%rsi),%es:(%rdi) + 432798: c3 retq + 432799: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4327a0: 48 8d 0c 16 lea (%rsi,%rdx,1),%rcx + 4327a4: c5 fe 6f 26 vmovdqu (%rsi),%ymm4 + 4327a8: c5 fa 6f 6c 16 80 vmovdqu -0x80(%rsi,%rdx,1),%xmm5 + 4327ae: c5 fa 6f 71 90 vmovdqu -0x70(%rcx),%xmm6 + 4327b3: c5 fa 6f 79 a0 vmovdqu -0x60(%rcx),%xmm7 + 4327b8: c5 7a 6f 41 b0 vmovdqu -0x50(%rcx),%xmm8 + 4327bd: c5 7a 6f 49 c0 vmovdqu -0x40(%rcx),%xmm9 + 4327c2: c5 7a 6f 51 d0 vmovdqu -0x30(%rcx),%xmm10 + 4327c7: c5 7a 6f 59 e0 vmovdqu -0x20(%rcx),%xmm11 + 4327cc: c5 7a 6f 61 f0 vmovdqu -0x10(%rcx),%xmm12 + 4327d1: 49 89 f8 mov %rdi,%r8 + 4327d4: 48 83 e7 e0 and $0xffffffffffffffe0,%rdi + 4327d8: 48 83 c7 20 add $0x20,%rdi + 4327dc: 49 89 fa mov %rdi,%r10 + 4327df: 4d 29 c2 sub %r8,%r10 + 4327e2: 4c 29 d2 sub %r10,%rdx + 4327e5: 4c 01 d6 add %r10,%rsi + 4327e8: 48 8d 0c 17 lea (%rdi,%rdx,1),%rcx + 4327ec: 48 83 c2 80 add $0xffffffffffffff80,%rdx + 4327f0: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 4327f7: 0f 18 86 80 02 00 00 prefetchnta 0x280(%rsi) + 4327fe: c5 fe 6f 06 vmovdqu (%rsi),%ymm0 + 432802: c5 fe 6f 4e 20 vmovdqu 0x20(%rsi),%ymm1 + 432807: c5 fe 6f 56 40 vmovdqu 0x40(%rsi),%ymm2 + 43280c: c5 fe 6f 5e 60 vmovdqu 0x60(%rsi),%ymm3 + 432811: 48 83 ee 80 sub $0xffffffffffffff80,%rsi + 432815: c5 fd e7 07 vmovntdq %ymm0,(%rdi) + 432819: c5 fd e7 4f 20 vmovntdq %ymm1,0x20(%rdi) + 43281e: c5 fd e7 57 40 vmovntdq %ymm2,0x40(%rdi) + 432823: c5 fd e7 5f 60 vmovntdq %ymm3,0x60(%rdi) + 432828: 48 83 ef 80 sub $0xffffffffffffff80,%rdi + 43282c: 48 83 c2 80 add $0xffffffffffffff80,%rdx + 432830: 72 be jb 4327f0 <__memmove_avx_unaligned+0x320> + 432832: 0f ae f8 sfence + 432835: c4 c1 7e 7f 20 vmovdqu %ymm4,(%r8) + 43283a: c5 f8 77 vzeroupper + 43283d: c5 fa 7f 69 80 vmovdqu %xmm5,-0x80(%rcx) + 432842: c5 fa 7f 71 90 vmovdqu %xmm6,-0x70(%rcx) + 432847: c5 fa 7f 79 a0 vmovdqu %xmm7,-0x60(%rcx) + 43284c: c5 7a 7f 41 b0 vmovdqu %xmm8,-0x50(%rcx) + 432851: c5 7a 7f 49 c0 vmovdqu %xmm9,-0x40(%rcx) + 432856: c5 7a 7f 51 d0 vmovdqu %xmm10,-0x30(%rcx) + 43285b: c5 7a 7f 59 e0 vmovdqu %xmm11,-0x20(%rcx) + 432860: c5 7a 7f 61 f0 vmovdqu %xmm12,-0x10(%rcx) + 432865: c3 retq + 432866: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43286d: 00 00 00 + 432870: 48 8b 0d 39 88 29 00 mov 0x298839(%rip),%rcx # 6cb0b0 <__x86_shared_cache_size_half> + 432877: 48 c1 e1 03 shl $0x3,%rcx + 43287b: c5 fa 6f 2e vmovdqu (%rsi),%xmm5 + 43287f: c5 fa 6f 76 10 vmovdqu 0x10(%rsi),%xmm6 + 432884: 48 01 d7 add %rdx,%rdi + 432887: c5 fa 6f 7e 20 vmovdqu 0x20(%rsi),%xmm7 + 43288c: c5 7a 6f 46 30 vmovdqu 0x30(%rsi),%xmm8 + 432891: 4c 8d 57 e0 lea -0x20(%rdi),%r10 + 432895: 49 89 fb mov %rdi,%r11 + 432898: c5 7a 6f 4e 40 vmovdqu 0x40(%rsi),%xmm9 + 43289d: c5 7a 6f 56 50 vmovdqu 0x50(%rsi),%xmm10 + 4328a2: 49 83 e3 1f and $0x1f,%r11 + 4328a6: c5 7a 6f 5e 60 vmovdqu 0x60(%rsi),%xmm11 + 4328ab: c5 7a 6f 66 70 vmovdqu 0x70(%rsi),%xmm12 + 4328b0: 4c 31 df xor %r11,%rdi + 4328b3: 48 01 d6 add %rdx,%rsi + 4328b6: c5 fe 6f 66 e0 vmovdqu -0x20(%rsi),%ymm4 + 4328bb: 4c 29 de sub %r11,%rsi + 4328be: 4c 29 da sub %r11,%rdx + 4328c1: 48 39 ca cmp %rcx,%rdx + 4328c4: 77 6a ja 432930 <__memmove_avx_unaligned+0x460> + 4328c6: 48 83 c2 80 add $0xffffffffffffff80,%rdx + 4328ca: c5 fe 6f 46 e0 vmovdqu -0x20(%rsi),%ymm0 + 4328cf: c5 fe 6f 4e c0 vmovdqu -0x40(%rsi),%ymm1 + 4328d4: c5 fe 6f 56 a0 vmovdqu -0x60(%rsi),%ymm2 + 4328d9: c5 fe 6f 5e 80 vmovdqu -0x80(%rsi),%ymm3 + 4328de: 48 8d 76 80 lea -0x80(%rsi),%rsi + 4328e2: c5 fd 7f 47 e0 vmovdqa %ymm0,-0x20(%rdi) + 4328e7: c5 fd 7f 4f c0 vmovdqa %ymm1,-0x40(%rdi) + 4328ec: c5 fd 7f 57 a0 vmovdqa %ymm2,-0x60(%rdi) + 4328f1: c5 fd 7f 5f 80 vmovdqa %ymm3,-0x80(%rdi) + 4328f6: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 4328fa: 48 83 c2 80 add $0xffffffffffffff80,%rdx + 4328fe: 72 ca jb 4328ca <__memmove_avx_unaligned+0x3fa> + 432900: c4 c1 7e 7f 22 vmovdqu %ymm4,(%r10) + 432905: c5 f8 77 vzeroupper + 432908: c5 fa 7f 28 vmovdqu %xmm5,(%rax) + 43290c: c5 fa 7f 70 10 vmovdqu %xmm6,0x10(%rax) + 432911: c5 fa 7f 78 20 vmovdqu %xmm7,0x20(%rax) + 432916: c5 7a 7f 40 30 vmovdqu %xmm8,0x30(%rax) + 43291b: c5 7a 7f 48 40 vmovdqu %xmm9,0x40(%rax) + 432920: c5 7a 7f 50 50 vmovdqu %xmm10,0x50(%rax) + 432925: c5 7a 7f 58 60 vmovdqu %xmm11,0x60(%rax) + 43292a: c5 7a 7f 60 70 vmovdqu %xmm12,0x70(%rax) + 43292f: c3 retq + 432930: 48 83 c2 80 add $0xffffffffffffff80,%rdx + 432934: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 43293b: 0f 18 86 80 fd ff ff prefetchnta -0x280(%rsi) + 432942: c5 fe 6f 46 e0 vmovdqu -0x20(%rsi),%ymm0 + 432947: c5 fe 6f 4e c0 vmovdqu -0x40(%rsi),%ymm1 + 43294c: c5 fe 6f 56 a0 vmovdqu -0x60(%rsi),%ymm2 + 432951: c5 fe 6f 5e 80 vmovdqu -0x80(%rsi),%ymm3 + 432956: 48 8d 76 80 lea -0x80(%rsi),%rsi + 43295a: c5 fd e7 47 e0 vmovntdq %ymm0,-0x20(%rdi) + 43295f: c5 fd e7 4f c0 vmovntdq %ymm1,-0x40(%rdi) + 432964: c5 fd e7 57 a0 vmovntdq %ymm2,-0x60(%rdi) + 432969: c5 fd e7 5f 80 vmovntdq %ymm3,-0x80(%rdi) + 43296e: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 432972: 48 83 c2 80 add $0xffffffffffffff80,%rdx + 432976: 72 bc jb 432934 <__memmove_avx_unaligned+0x464> + 432978: 0f ae f8 sfence + 43297b: c4 c1 7e 7f 22 vmovdqu %ymm4,(%r10) + 432980: c5 f8 77 vzeroupper + 432983: c5 fa 7f 28 vmovdqu %xmm5,(%rax) + 432987: c5 fa 7f 70 10 vmovdqu %xmm6,0x10(%rax) + 43298c: c5 fa 7f 78 20 vmovdqu %xmm7,0x20(%rax) + 432991: c5 7a 7f 40 30 vmovdqu %xmm8,0x30(%rax) + 432996: c5 7a 7f 48 40 vmovdqu %xmm9,0x40(%rax) + 43299b: c5 7a 7f 50 50 vmovdqu %xmm10,0x50(%rax) + 4329a0: c5 7a 7f 58 60 vmovdqu %xmm11,0x60(%rax) + 4329a5: c5 7a 7f 60 70 vmovdqu %xmm12,0x70(%rax) + 4329aa: c3 retq + 4329ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +00000000004329b0 <__memmove_chk_ssse3_back>: + 4329b0: 48 39 d1 cmp %rdx,%rcx + 4329b3: 0f 82 f7 00 01 00 jb 442ab0 <__chk_fail> + 4329b9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +00000000004329c0 <__memmove_ssse3_back>: + 4329c0: 48 89 f8 mov %rdi,%rax + 4329c3: 48 39 f7 cmp %rsi,%rdi + 4329c6: 72 26 jb 4329ee <__memmove_ssse3_back+0x2e> + 4329c8: 0f 84 70 24 00 00 je 434e3e <__memmove_ssse3_back+0x247e> + 4329ce: 48 81 fa 90 00 00 00 cmp $0x90,%rdx + 4329d5: 0f 83 95 00 00 00 jae 432a70 <__memmove_ssse3_back+0xb0> + 4329db: 4c 8d 1d 8e 0b 07 00 lea 0x70b8e(%rip),%r11 # 4a3570 + 4329e2: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4329e6: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4329ea: ff e2 jmpq *%rdx + 4329ec: 0f 0b ud2 + 4329ee: 48 81 fa 90 00 00 00 cmp $0x90,%rdx + 4329f5: 73 19 jae 432a10 <__memmove_ssse3_back+0x50> + 4329f7: 48 01 d6 add %rdx,%rsi + 4329fa: 48 01 d7 add %rdx,%rdi + 4329fd: 4c 8d 1d ac 0d 07 00 lea 0x70dac(%rip),%r11 # 4a37b0 + 432a04: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 432a08: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 432a0c: ff e2 jmpq *%rdx + 432a0e: 0f 0b ud2 + 432a10: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 432a14: 49 89 f8 mov %rdi,%r8 + 432a17: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 432a1b: 48 83 c7 10 add $0x10,%rdi + 432a1f: 49 89 f9 mov %rdi,%r9 + 432a22: 4d 29 c1 sub %r8,%r9 + 432a25: 4c 29 ca sub %r9,%rdx + 432a28: 4c 01 ce add %r9,%rsi + 432a2b: 49 89 f1 mov %rsi,%r9 + 432a2e: 49 83 e1 0f and $0xf,%r9 + 432a32: 0f 84 98 00 00 00 je 432ad0 <__memmove_ssse3_back+0x110> + 432a38: 48 8b 0d 89 86 29 00 mov 0x298689(%rip),%rcx # 6cb0c8 <__x86_data_cache_size> + 432a3f: 48 39 ca cmp %rcx,%rdx + 432a42: 0f 83 28 18 00 00 jae 434270 <__memmove_ssse3_back+0x18b0> + 432a48: 4c 8d 1d a1 0f 07 00 lea 0x70fa1(%rip),%r11 # 4a39f0 + 432a4f: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 432a56: 4f 63 0c 8b movslq (%r11,%r9,4),%r9 + 432a5a: 4d 01 d9 add %r11,%r9 + 432a5d: 41 ff e1 jmpq *%r9 + 432a60: 0f 0b ud2 + 432a62: 0f 1f 40 00 nopl 0x0(%rax) + 432a66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 432a6d: 00 00 00 + 432a70: 48 8b 0d 51 86 29 00 mov 0x298651(%rip),%rcx # 6cb0c8 <__x86_data_cache_size> + 432a77: 48 d1 e1 shl %rcx + 432a7a: 48 39 ca cmp %rcx,%rdx + 432a7d: 0f 87 9d 19 00 00 ja 434420 <__memmove_ssse3_back+0x1a60> + 432a83: 48 01 d7 add %rdx,%rdi + 432a86: 48 01 d6 add %rdx,%rsi + 432a89: f3 0f 6f 46 f0 movdqu -0x10(%rsi),%xmm0 + 432a8e: 4c 8d 47 f0 lea -0x10(%rdi),%r8 + 432a92: 49 89 f9 mov %rdi,%r9 + 432a95: 49 83 e1 0f and $0xf,%r9 + 432a99: 4c 31 cf xor %r9,%rdi + 432a9c: 4c 29 ce sub %r9,%rsi + 432a9f: 4c 29 ca sub %r9,%rdx + 432aa2: 49 89 f1 mov %rsi,%r9 + 432aa5: 49 83 e1 0f and $0xf,%r9 + 432aa9: 0f 84 c1 00 00 00 je 432b70 <__memmove_ssse3_back+0x1b0> + 432aaf: 4c 8d 1d 7a 0f 07 00 lea 0x70f7a(%rip),%r11 # 4a3a30 + 432ab6: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 432abd: 4f 63 0c 8b movslq (%r11,%r9,4),%r9 + 432ac1: 4d 01 d9 add %r11,%r9 + 432ac4: 41 ff e1 jmpq *%r9 + 432ac7: 0f 0b ud2 + 432ac9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 432ad0: 49 89 d1 mov %rdx,%r9 + 432ad3: 49 c1 e9 08 shr $0x8,%r9 + 432ad7: 49 01 d1 add %rdx,%r9 + 432ada: 4c 3b 0d ef 85 29 00 cmp 0x2985ef(%rip),%r9 # 6cb0d0 <__x86_data_cache_size_half> + 432ae1: 0f 83 89 17 00 00 jae 434270 <__memmove_ssse3_back+0x18b0> + 432ae7: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 432aee: 66 90 xchg %ax,%ax + 432af0: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 432af4: 66 0f 7f 0f movdqa %xmm1,(%rdi) + 432af8: 0f 28 56 10 movaps 0x10(%rsi),%xmm2 + 432afc: 0f 29 57 10 movaps %xmm2,0x10(%rdi) + 432b00: 0f 28 5e 20 movaps 0x20(%rsi),%xmm3 + 432b04: 0f 29 5f 20 movaps %xmm3,0x20(%rdi) + 432b08: 0f 28 66 30 movaps 0x30(%rsi),%xmm4 + 432b0c: 0f 29 67 30 movaps %xmm4,0x30(%rdi) + 432b10: 0f 28 4e 40 movaps 0x40(%rsi),%xmm1 + 432b14: 0f 29 4f 40 movaps %xmm1,0x40(%rdi) + 432b18: 0f 28 56 50 movaps 0x50(%rsi),%xmm2 + 432b1c: 0f 29 57 50 movaps %xmm2,0x50(%rdi) + 432b20: 0f 28 5e 60 movaps 0x60(%rsi),%xmm3 + 432b24: 0f 29 5f 60 movaps %xmm3,0x60(%rdi) + 432b28: 0f 28 66 70 movaps 0x70(%rsi),%xmm4 + 432b2c: 0f 29 67 70 movaps %xmm4,0x70(%rdi) + 432b30: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 432b37: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 432b3e: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 432b45: 73 a9 jae 432af0 <__memmove_ssse3_back+0x130> + 432b47: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 432b4c: 48 81 c2 80 00 00 00 add $0x80,%rdx + 432b53: 48 01 d6 add %rdx,%rsi + 432b56: 48 01 d7 add %rdx,%rdi + 432b59: 4c 8d 1d 50 0c 07 00 lea 0x70c50(%rip),%r11 # 4a37b0 + 432b60: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 432b64: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 432b68: ff e2 jmpq *%rdx + 432b6a: 0f 0b ud2 + 432b6c: 0f 1f 40 00 nopl 0x0(%rax) + 432b70: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 432b77: 0f 28 4e f0 movaps -0x10(%rsi),%xmm1 + 432b7b: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 432b7f: 0f 28 56 e0 movaps -0x20(%rsi),%xmm2 + 432b83: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 432b87: 0f 28 5e d0 movaps -0x30(%rsi),%xmm3 + 432b8b: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 432b8f: 0f 28 66 c0 movaps -0x40(%rsi),%xmm4 + 432b93: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) + 432b97: 0f 28 6e b0 movaps -0x50(%rsi),%xmm5 + 432b9b: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) + 432b9f: 0f 28 6e a0 movaps -0x60(%rsi),%xmm5 + 432ba3: 0f 29 6f a0 movaps %xmm5,-0x60(%rdi) + 432ba7: 0f 28 6e 90 movaps -0x70(%rsi),%xmm5 + 432bab: 0f 29 6f 90 movaps %xmm5,-0x70(%rdi) + 432baf: 0f 28 6e 80 movaps -0x80(%rsi),%xmm5 + 432bb3: 0f 29 6f 80 movaps %xmm5,-0x80(%rdi) + 432bb7: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 432bbe: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 432bc2: 48 8d 76 80 lea -0x80(%rsi),%rsi + 432bc6: 73 af jae 432b77 <__memmove_ssse3_back+0x1b7> + 432bc8: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 432bcd: 48 81 c2 80 00 00 00 add $0x80,%rdx + 432bd4: 48 29 d7 sub %rdx,%rdi + 432bd7: 48 29 d6 sub %rdx,%rsi + 432bda: 4c 8d 1d 8f 09 07 00 lea 0x7098f(%rip),%r11 # 4a3570 + 432be1: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 432be5: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 432be9: ff e2 jmpq *%rdx + 432beb: 0f 0b ud2 + 432bed: 0f 1f 00 nopl (%rax) + 432bf0: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 432bf7: 0f 28 4e ff movaps -0x1(%rsi),%xmm1 + 432bfb: 0f 28 56 0f movaps 0xf(%rsi),%xmm2 + 432bff: 0f 28 5e 1f movaps 0x1f(%rsi),%xmm3 + 432c03: 0f 28 66 2f movaps 0x2f(%rsi),%xmm4 + 432c07: 0f 28 6e 3f movaps 0x3f(%rsi),%xmm5 + 432c0b: 0f 28 76 4f movaps 0x4f(%rsi),%xmm6 + 432c0f: 0f 28 7e 5f movaps 0x5f(%rsi),%xmm7 + 432c13: 44 0f 28 46 6f movaps 0x6f(%rsi),%xmm8 + 432c18: 44 0f 28 4e 7f movaps 0x7f(%rsi),%xmm9 + 432c1d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 432c24: 66 45 0f 3a 0f c8 01 palignr $0x1,%xmm8,%xmm9 + 432c2b: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) + 432c30: 66 44 0f 3a 0f c7 01 palignr $0x1,%xmm7,%xmm8 + 432c37: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) + 432c3c: 66 0f 3a 0f fe 01 palignr $0x1,%xmm6,%xmm7 + 432c42: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) + 432c46: 66 0f 3a 0f f5 01 palignr $0x1,%xmm5,%xmm6 + 432c4c: 0f 29 77 40 movaps %xmm6,0x40(%rdi) + 432c50: 66 0f 3a 0f ec 01 palignr $0x1,%xmm4,%xmm5 + 432c56: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) + 432c5a: 66 0f 3a 0f e3 01 palignr $0x1,%xmm3,%xmm4 + 432c60: 0f 29 67 20 movaps %xmm4,0x20(%rdi) + 432c64: 66 0f 3a 0f da 01 palignr $0x1,%xmm2,%xmm3 + 432c6a: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 432c6e: 66 0f 3a 0f d1 01 palignr $0x1,%xmm1,%xmm2 + 432c74: 0f 29 17 movaps %xmm2,(%rdi) + 432c77: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 432c7e: 0f 83 6c ff ff ff jae 432bf0 <__memmove_ssse3_back+0x230> + 432c84: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 432c89: 48 81 c2 80 00 00 00 add $0x80,%rdx + 432c90: 48 01 d7 add %rdx,%rdi + 432c93: 48 01 d6 add %rdx,%rsi + 432c96: 4c 8d 1d 13 0b 07 00 lea 0x70b13(%rip),%r11 # 4a37b0 + 432c9d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 432ca1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 432ca5: ff e2 jmpq *%rdx + 432ca7: 0f 0b ud2 + 432ca9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 432cb0: 0f 28 4e ff movaps -0x1(%rsi),%xmm1 + 432cb4: 0f 28 56 ef movaps -0x11(%rsi),%xmm2 + 432cb8: 66 0f 3a 0f ca 01 palignr $0x1,%xmm2,%xmm1 + 432cbe: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 432cc2: 0f 28 5e df movaps -0x21(%rsi),%xmm3 + 432cc6: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 + 432ccc: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 432cd0: 0f 28 66 cf movaps -0x31(%rsi),%xmm4 + 432cd4: 66 0f 3a 0f dc 01 palignr $0x1,%xmm4,%xmm3 + 432cda: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 432cde: 0f 28 6e bf movaps -0x41(%rsi),%xmm5 + 432ce2: 66 0f 3a 0f e5 01 palignr $0x1,%xmm5,%xmm4 + 432ce8: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) + 432cec: 0f 28 76 af movaps -0x51(%rsi),%xmm6 + 432cf0: 66 0f 3a 0f ee 01 palignr $0x1,%xmm6,%xmm5 + 432cf6: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) + 432cfa: 0f 28 7e 9f movaps -0x61(%rsi),%xmm7 + 432cfe: 66 0f 3a 0f f7 01 palignr $0x1,%xmm7,%xmm6 + 432d04: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) + 432d08: 44 0f 28 46 8f movaps -0x71(%rsi),%xmm8 + 432d0d: 66 41 0f 3a 0f f8 01 palignr $0x1,%xmm8,%xmm7 + 432d14: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) + 432d18: 44 0f 28 8e 7f ff ff movaps -0x81(%rsi),%xmm9 + 432d1f: ff + 432d20: 66 45 0f 3a 0f c1 01 palignr $0x1,%xmm9,%xmm8 + 432d27: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) + 432d2c: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 432d33: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 432d37: 48 8d 76 80 lea -0x80(%rsi),%rsi + 432d3b: 0f 83 6f ff ff ff jae 432cb0 <__memmove_ssse3_back+0x2f0> + 432d41: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 432d46: 48 81 c2 80 00 00 00 add $0x80,%rdx + 432d4d: 48 29 d7 sub %rdx,%rdi + 432d50: 48 29 d6 sub %rdx,%rsi + 432d53: 4c 8d 1d 16 08 07 00 lea 0x70816(%rip),%r11 # 4a3570 + 432d5a: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 432d5e: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 432d62: ff e2 jmpq *%rdx + 432d64: 0f 0b ud2 + 432d66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 432d6d: 00 00 00 + 432d70: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 432d77: 0f 28 4e fe movaps -0x2(%rsi),%xmm1 + 432d7b: 0f 28 56 0e movaps 0xe(%rsi),%xmm2 + 432d7f: 0f 28 5e 1e movaps 0x1e(%rsi),%xmm3 + 432d83: 0f 28 66 2e movaps 0x2e(%rsi),%xmm4 + 432d87: 0f 28 6e 3e movaps 0x3e(%rsi),%xmm5 + 432d8b: 0f 28 76 4e movaps 0x4e(%rsi),%xmm6 + 432d8f: 0f 28 7e 5e movaps 0x5e(%rsi),%xmm7 + 432d93: 44 0f 28 46 6e movaps 0x6e(%rsi),%xmm8 + 432d98: 44 0f 28 4e 7e movaps 0x7e(%rsi),%xmm9 + 432d9d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 432da4: 66 45 0f 3a 0f c8 02 palignr $0x2,%xmm8,%xmm9 + 432dab: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) + 432db0: 66 44 0f 3a 0f c7 02 palignr $0x2,%xmm7,%xmm8 + 432db7: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) + 432dbc: 66 0f 3a 0f fe 02 palignr $0x2,%xmm6,%xmm7 + 432dc2: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) + 432dc6: 66 0f 3a 0f f5 02 palignr $0x2,%xmm5,%xmm6 + 432dcc: 0f 29 77 40 movaps %xmm6,0x40(%rdi) + 432dd0: 66 0f 3a 0f ec 02 palignr $0x2,%xmm4,%xmm5 + 432dd6: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) + 432dda: 66 0f 3a 0f e3 02 palignr $0x2,%xmm3,%xmm4 + 432de0: 0f 29 67 20 movaps %xmm4,0x20(%rdi) + 432de4: 66 0f 3a 0f da 02 palignr $0x2,%xmm2,%xmm3 + 432dea: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 432dee: 66 0f 3a 0f d1 02 palignr $0x2,%xmm1,%xmm2 + 432df4: 0f 29 17 movaps %xmm2,(%rdi) + 432df7: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 432dfe: 0f 83 6c ff ff ff jae 432d70 <__memmove_ssse3_back+0x3b0> + 432e04: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 432e09: 48 81 c2 80 00 00 00 add $0x80,%rdx + 432e10: 48 01 d7 add %rdx,%rdi + 432e13: 48 01 d6 add %rdx,%rsi + 432e16: 4c 8d 1d 93 09 07 00 lea 0x70993(%rip),%r11 # 4a37b0 + 432e1d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 432e21: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 432e25: ff e2 jmpq *%rdx + 432e27: 0f 0b ud2 + 432e29: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 432e30: 0f 28 4e fe movaps -0x2(%rsi),%xmm1 + 432e34: 0f 28 56 ee movaps -0x12(%rsi),%xmm2 + 432e38: 66 0f 3a 0f ca 02 palignr $0x2,%xmm2,%xmm1 + 432e3e: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 432e42: 0f 28 5e de movaps -0x22(%rsi),%xmm3 + 432e46: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 + 432e4c: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 432e50: 0f 28 66 ce movaps -0x32(%rsi),%xmm4 + 432e54: 66 0f 3a 0f dc 02 palignr $0x2,%xmm4,%xmm3 + 432e5a: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 432e5e: 0f 28 6e be movaps -0x42(%rsi),%xmm5 + 432e62: 66 0f 3a 0f e5 02 palignr $0x2,%xmm5,%xmm4 + 432e68: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) + 432e6c: 0f 28 76 ae movaps -0x52(%rsi),%xmm6 + 432e70: 66 0f 3a 0f ee 02 palignr $0x2,%xmm6,%xmm5 + 432e76: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) + 432e7a: 0f 28 7e 9e movaps -0x62(%rsi),%xmm7 + 432e7e: 66 0f 3a 0f f7 02 palignr $0x2,%xmm7,%xmm6 + 432e84: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) + 432e88: 44 0f 28 46 8e movaps -0x72(%rsi),%xmm8 + 432e8d: 66 41 0f 3a 0f f8 02 palignr $0x2,%xmm8,%xmm7 + 432e94: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) + 432e98: 44 0f 28 8e 7e ff ff movaps -0x82(%rsi),%xmm9 + 432e9f: ff + 432ea0: 66 45 0f 3a 0f c1 02 palignr $0x2,%xmm9,%xmm8 + 432ea7: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) + 432eac: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 432eb3: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 432eb7: 48 8d 76 80 lea -0x80(%rsi),%rsi + 432ebb: 0f 83 6f ff ff ff jae 432e30 <__memmove_ssse3_back+0x470> + 432ec1: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 432ec6: 48 81 c2 80 00 00 00 add $0x80,%rdx + 432ecd: 48 29 d7 sub %rdx,%rdi + 432ed0: 48 29 d6 sub %rdx,%rsi + 432ed3: 4c 8d 1d 96 06 07 00 lea 0x70696(%rip),%r11 # 4a3570 + 432eda: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 432ede: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 432ee2: ff e2 jmpq *%rdx + 432ee4: 0f 0b ud2 + 432ee6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 432eed: 00 00 00 + 432ef0: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 432ef7: 0f 28 4e fd movaps -0x3(%rsi),%xmm1 + 432efb: 0f 28 56 0d movaps 0xd(%rsi),%xmm2 + 432eff: 0f 28 5e 1d movaps 0x1d(%rsi),%xmm3 + 432f03: 0f 28 66 2d movaps 0x2d(%rsi),%xmm4 + 432f07: 0f 28 6e 3d movaps 0x3d(%rsi),%xmm5 + 432f0b: 0f 28 76 4d movaps 0x4d(%rsi),%xmm6 + 432f0f: 0f 28 7e 5d movaps 0x5d(%rsi),%xmm7 + 432f13: 44 0f 28 46 6d movaps 0x6d(%rsi),%xmm8 + 432f18: 44 0f 28 4e 7d movaps 0x7d(%rsi),%xmm9 + 432f1d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 432f24: 66 45 0f 3a 0f c8 03 palignr $0x3,%xmm8,%xmm9 + 432f2b: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) + 432f30: 66 44 0f 3a 0f c7 03 palignr $0x3,%xmm7,%xmm8 + 432f37: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) + 432f3c: 66 0f 3a 0f fe 03 palignr $0x3,%xmm6,%xmm7 + 432f42: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) + 432f46: 66 0f 3a 0f f5 03 palignr $0x3,%xmm5,%xmm6 + 432f4c: 0f 29 77 40 movaps %xmm6,0x40(%rdi) + 432f50: 66 0f 3a 0f ec 03 palignr $0x3,%xmm4,%xmm5 + 432f56: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) + 432f5a: 66 0f 3a 0f e3 03 palignr $0x3,%xmm3,%xmm4 + 432f60: 0f 29 67 20 movaps %xmm4,0x20(%rdi) + 432f64: 66 0f 3a 0f da 03 palignr $0x3,%xmm2,%xmm3 + 432f6a: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 432f6e: 66 0f 3a 0f d1 03 palignr $0x3,%xmm1,%xmm2 + 432f74: 0f 29 17 movaps %xmm2,(%rdi) + 432f77: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 432f7e: 0f 83 6c ff ff ff jae 432ef0 <__memmove_ssse3_back+0x530> + 432f84: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 432f89: 48 81 c2 80 00 00 00 add $0x80,%rdx + 432f90: 48 01 d7 add %rdx,%rdi + 432f93: 48 01 d6 add %rdx,%rsi + 432f96: 4c 8d 1d 13 08 07 00 lea 0x70813(%rip),%r11 # 4a37b0 + 432f9d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 432fa1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 432fa5: ff e2 jmpq *%rdx + 432fa7: 0f 0b ud2 + 432fa9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 432fb0: 0f 28 4e fd movaps -0x3(%rsi),%xmm1 + 432fb4: 0f 28 56 ed movaps -0x13(%rsi),%xmm2 + 432fb8: 66 0f 3a 0f ca 03 palignr $0x3,%xmm2,%xmm1 + 432fbe: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 432fc2: 0f 28 5e dd movaps -0x23(%rsi),%xmm3 + 432fc6: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 + 432fcc: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 432fd0: 0f 28 66 cd movaps -0x33(%rsi),%xmm4 + 432fd4: 66 0f 3a 0f dc 03 palignr $0x3,%xmm4,%xmm3 + 432fda: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 432fde: 0f 28 6e bd movaps -0x43(%rsi),%xmm5 + 432fe2: 66 0f 3a 0f e5 03 palignr $0x3,%xmm5,%xmm4 + 432fe8: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) + 432fec: 0f 28 76 ad movaps -0x53(%rsi),%xmm6 + 432ff0: 66 0f 3a 0f ee 03 palignr $0x3,%xmm6,%xmm5 + 432ff6: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) + 432ffa: 0f 28 7e 9d movaps -0x63(%rsi),%xmm7 + 432ffe: 66 0f 3a 0f f7 03 palignr $0x3,%xmm7,%xmm6 + 433004: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) + 433008: 44 0f 28 46 8d movaps -0x73(%rsi),%xmm8 + 43300d: 66 41 0f 3a 0f f8 03 palignr $0x3,%xmm8,%xmm7 + 433014: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) + 433018: 44 0f 28 8e 7d ff ff movaps -0x83(%rsi),%xmm9 + 43301f: ff + 433020: 66 45 0f 3a 0f c1 03 palignr $0x3,%xmm9,%xmm8 + 433027: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) + 43302c: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 433033: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 433037: 48 8d 76 80 lea -0x80(%rsi),%rsi + 43303b: 0f 83 6f ff ff ff jae 432fb0 <__memmove_ssse3_back+0x5f0> + 433041: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433046: 48 81 c2 80 00 00 00 add $0x80,%rdx + 43304d: 48 29 d7 sub %rdx,%rdi + 433050: 48 29 d6 sub %rdx,%rsi + 433053: 4c 8d 1d 16 05 07 00 lea 0x70516(%rip),%r11 # 4a3570 + 43305a: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43305e: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 433062: ff e2 jmpq *%rdx + 433064: 0f 0b ud2 + 433066: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43306d: 00 00 00 + 433070: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 433077: 0f 28 4e fc movaps -0x4(%rsi),%xmm1 + 43307b: 0f 28 56 0c movaps 0xc(%rsi),%xmm2 + 43307f: 0f 28 5e 1c movaps 0x1c(%rsi),%xmm3 + 433083: 0f 28 66 2c movaps 0x2c(%rsi),%xmm4 + 433087: 0f 28 6e 3c movaps 0x3c(%rsi),%xmm5 + 43308b: 0f 28 76 4c movaps 0x4c(%rsi),%xmm6 + 43308f: 0f 28 7e 5c movaps 0x5c(%rsi),%xmm7 + 433093: 44 0f 28 46 6c movaps 0x6c(%rsi),%xmm8 + 433098: 44 0f 28 4e 7c movaps 0x7c(%rsi),%xmm9 + 43309d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 4330a4: 66 45 0f 3a 0f c8 04 palignr $0x4,%xmm8,%xmm9 + 4330ab: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) + 4330b0: 66 44 0f 3a 0f c7 04 palignr $0x4,%xmm7,%xmm8 + 4330b7: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) + 4330bc: 66 0f 3a 0f fe 04 palignr $0x4,%xmm6,%xmm7 + 4330c2: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) + 4330c6: 66 0f 3a 0f f5 04 palignr $0x4,%xmm5,%xmm6 + 4330cc: 0f 29 77 40 movaps %xmm6,0x40(%rdi) + 4330d0: 66 0f 3a 0f ec 04 palignr $0x4,%xmm4,%xmm5 + 4330d6: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) + 4330da: 66 0f 3a 0f e3 04 palignr $0x4,%xmm3,%xmm4 + 4330e0: 0f 29 67 20 movaps %xmm4,0x20(%rdi) + 4330e4: 66 0f 3a 0f da 04 palignr $0x4,%xmm2,%xmm3 + 4330ea: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 4330ee: 66 0f 3a 0f d1 04 palignr $0x4,%xmm1,%xmm2 + 4330f4: 0f 29 17 movaps %xmm2,(%rdi) + 4330f7: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 4330fe: 0f 83 6c ff ff ff jae 433070 <__memmove_ssse3_back+0x6b0> + 433104: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433109: 48 81 c2 80 00 00 00 add $0x80,%rdx + 433110: 48 01 d7 add %rdx,%rdi + 433113: 48 01 d6 add %rdx,%rsi + 433116: 4c 8d 1d 93 06 07 00 lea 0x70693(%rip),%r11 # 4a37b0 + 43311d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 433121: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 433125: ff e2 jmpq *%rdx + 433127: 0f 0b ud2 + 433129: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 433130: 0f 28 4e fc movaps -0x4(%rsi),%xmm1 + 433134: 0f 28 56 ec movaps -0x14(%rsi),%xmm2 + 433138: 66 0f 3a 0f ca 04 palignr $0x4,%xmm2,%xmm1 + 43313e: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 433142: 0f 28 5e dc movaps -0x24(%rsi),%xmm3 + 433146: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 + 43314c: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 433150: 0f 28 66 cc movaps -0x34(%rsi),%xmm4 + 433154: 66 0f 3a 0f dc 04 palignr $0x4,%xmm4,%xmm3 + 43315a: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 43315e: 0f 28 6e bc movaps -0x44(%rsi),%xmm5 + 433162: 66 0f 3a 0f e5 04 palignr $0x4,%xmm5,%xmm4 + 433168: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) + 43316c: 0f 28 76 ac movaps -0x54(%rsi),%xmm6 + 433170: 66 0f 3a 0f ee 04 palignr $0x4,%xmm6,%xmm5 + 433176: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) + 43317a: 0f 28 7e 9c movaps -0x64(%rsi),%xmm7 + 43317e: 66 0f 3a 0f f7 04 palignr $0x4,%xmm7,%xmm6 + 433184: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) + 433188: 44 0f 28 46 8c movaps -0x74(%rsi),%xmm8 + 43318d: 66 41 0f 3a 0f f8 04 palignr $0x4,%xmm8,%xmm7 + 433194: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) + 433198: 44 0f 28 8e 7c ff ff movaps -0x84(%rsi),%xmm9 + 43319f: ff + 4331a0: 66 45 0f 3a 0f c1 04 palignr $0x4,%xmm9,%xmm8 + 4331a7: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) + 4331ac: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 4331b3: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 4331b7: 48 8d 76 80 lea -0x80(%rsi),%rsi + 4331bb: 0f 83 6f ff ff ff jae 433130 <__memmove_ssse3_back+0x770> + 4331c1: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 4331c6: 48 81 c2 80 00 00 00 add $0x80,%rdx + 4331cd: 48 29 d7 sub %rdx,%rdi + 4331d0: 48 29 d6 sub %rdx,%rsi + 4331d3: 4c 8d 1d 96 03 07 00 lea 0x70396(%rip),%r11 # 4a3570 + 4331da: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4331de: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4331e2: ff e2 jmpq *%rdx + 4331e4: 0f 0b ud2 + 4331e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4331ed: 00 00 00 + 4331f0: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 4331f7: 0f 28 4e fb movaps -0x5(%rsi),%xmm1 + 4331fb: 0f 28 56 0b movaps 0xb(%rsi),%xmm2 + 4331ff: 0f 28 5e 1b movaps 0x1b(%rsi),%xmm3 + 433203: 0f 28 66 2b movaps 0x2b(%rsi),%xmm4 + 433207: 0f 28 6e 3b movaps 0x3b(%rsi),%xmm5 + 43320b: 0f 28 76 4b movaps 0x4b(%rsi),%xmm6 + 43320f: 0f 28 7e 5b movaps 0x5b(%rsi),%xmm7 + 433213: 44 0f 28 46 6b movaps 0x6b(%rsi),%xmm8 + 433218: 44 0f 28 4e 7b movaps 0x7b(%rsi),%xmm9 + 43321d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 433224: 66 45 0f 3a 0f c8 05 palignr $0x5,%xmm8,%xmm9 + 43322b: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) + 433230: 66 44 0f 3a 0f c7 05 palignr $0x5,%xmm7,%xmm8 + 433237: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) + 43323c: 66 0f 3a 0f fe 05 palignr $0x5,%xmm6,%xmm7 + 433242: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) + 433246: 66 0f 3a 0f f5 05 palignr $0x5,%xmm5,%xmm6 + 43324c: 0f 29 77 40 movaps %xmm6,0x40(%rdi) + 433250: 66 0f 3a 0f ec 05 palignr $0x5,%xmm4,%xmm5 + 433256: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) + 43325a: 66 0f 3a 0f e3 05 palignr $0x5,%xmm3,%xmm4 + 433260: 0f 29 67 20 movaps %xmm4,0x20(%rdi) + 433264: 66 0f 3a 0f da 05 palignr $0x5,%xmm2,%xmm3 + 43326a: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 43326e: 66 0f 3a 0f d1 05 palignr $0x5,%xmm1,%xmm2 + 433274: 0f 29 17 movaps %xmm2,(%rdi) + 433277: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 43327e: 0f 83 6c ff ff ff jae 4331f0 <__memmove_ssse3_back+0x830> + 433284: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433289: 48 81 c2 80 00 00 00 add $0x80,%rdx + 433290: 48 01 d7 add %rdx,%rdi + 433293: 48 01 d6 add %rdx,%rsi + 433296: 4c 8d 1d 13 05 07 00 lea 0x70513(%rip),%r11 # 4a37b0 + 43329d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4332a1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4332a5: ff e2 jmpq *%rdx + 4332a7: 0f 0b ud2 + 4332a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4332b0: 0f 28 4e fb movaps -0x5(%rsi),%xmm1 + 4332b4: 0f 28 56 eb movaps -0x15(%rsi),%xmm2 + 4332b8: 66 0f 3a 0f ca 05 palignr $0x5,%xmm2,%xmm1 + 4332be: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 4332c2: 0f 28 5e db movaps -0x25(%rsi),%xmm3 + 4332c6: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 + 4332cc: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 4332d0: 0f 28 66 cb movaps -0x35(%rsi),%xmm4 + 4332d4: 66 0f 3a 0f dc 05 palignr $0x5,%xmm4,%xmm3 + 4332da: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 4332de: 0f 28 6e bb movaps -0x45(%rsi),%xmm5 + 4332e2: 66 0f 3a 0f e5 05 palignr $0x5,%xmm5,%xmm4 + 4332e8: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) + 4332ec: 0f 28 76 ab movaps -0x55(%rsi),%xmm6 + 4332f0: 66 0f 3a 0f ee 05 palignr $0x5,%xmm6,%xmm5 + 4332f6: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) + 4332fa: 0f 28 7e 9b movaps -0x65(%rsi),%xmm7 + 4332fe: 66 0f 3a 0f f7 05 palignr $0x5,%xmm7,%xmm6 + 433304: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) + 433308: 44 0f 28 46 8b movaps -0x75(%rsi),%xmm8 + 43330d: 66 41 0f 3a 0f f8 05 palignr $0x5,%xmm8,%xmm7 + 433314: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) + 433318: 44 0f 28 8e 7b ff ff movaps -0x85(%rsi),%xmm9 + 43331f: ff + 433320: 66 45 0f 3a 0f c1 05 palignr $0x5,%xmm9,%xmm8 + 433327: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) + 43332c: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 433333: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 433337: 48 8d 76 80 lea -0x80(%rsi),%rsi + 43333b: 0f 83 6f ff ff ff jae 4332b0 <__memmove_ssse3_back+0x8f0> + 433341: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433346: 48 81 c2 80 00 00 00 add $0x80,%rdx + 43334d: 48 29 d7 sub %rdx,%rdi + 433350: 48 29 d6 sub %rdx,%rsi + 433353: 4c 8d 1d 16 02 07 00 lea 0x70216(%rip),%r11 # 4a3570 + 43335a: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43335e: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 433362: ff e2 jmpq *%rdx + 433364: 0f 0b ud2 + 433366: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43336d: 00 00 00 + 433370: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 433377: 0f 28 4e fa movaps -0x6(%rsi),%xmm1 + 43337b: 0f 28 56 0a movaps 0xa(%rsi),%xmm2 + 43337f: 0f 28 5e 1a movaps 0x1a(%rsi),%xmm3 + 433383: 0f 28 66 2a movaps 0x2a(%rsi),%xmm4 + 433387: 0f 28 6e 3a movaps 0x3a(%rsi),%xmm5 + 43338b: 0f 28 76 4a movaps 0x4a(%rsi),%xmm6 + 43338f: 0f 28 7e 5a movaps 0x5a(%rsi),%xmm7 + 433393: 44 0f 28 46 6a movaps 0x6a(%rsi),%xmm8 + 433398: 44 0f 28 4e 7a movaps 0x7a(%rsi),%xmm9 + 43339d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 4333a4: 66 45 0f 3a 0f c8 06 palignr $0x6,%xmm8,%xmm9 + 4333ab: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) + 4333b0: 66 44 0f 3a 0f c7 06 palignr $0x6,%xmm7,%xmm8 + 4333b7: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) + 4333bc: 66 0f 3a 0f fe 06 palignr $0x6,%xmm6,%xmm7 + 4333c2: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) + 4333c6: 66 0f 3a 0f f5 06 palignr $0x6,%xmm5,%xmm6 + 4333cc: 0f 29 77 40 movaps %xmm6,0x40(%rdi) + 4333d0: 66 0f 3a 0f ec 06 palignr $0x6,%xmm4,%xmm5 + 4333d6: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) + 4333da: 66 0f 3a 0f e3 06 palignr $0x6,%xmm3,%xmm4 + 4333e0: 0f 29 67 20 movaps %xmm4,0x20(%rdi) + 4333e4: 66 0f 3a 0f da 06 palignr $0x6,%xmm2,%xmm3 + 4333ea: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 4333ee: 66 0f 3a 0f d1 06 palignr $0x6,%xmm1,%xmm2 + 4333f4: 0f 29 17 movaps %xmm2,(%rdi) + 4333f7: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 4333fe: 0f 83 6c ff ff ff jae 433370 <__memmove_ssse3_back+0x9b0> + 433404: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433409: 48 81 c2 80 00 00 00 add $0x80,%rdx + 433410: 48 01 d7 add %rdx,%rdi + 433413: 48 01 d6 add %rdx,%rsi + 433416: 4c 8d 1d 93 03 07 00 lea 0x70393(%rip),%r11 # 4a37b0 + 43341d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 433421: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 433425: ff e2 jmpq *%rdx + 433427: 0f 0b ud2 + 433429: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 433430: 0f 28 4e fa movaps -0x6(%rsi),%xmm1 + 433434: 0f 28 56 ea movaps -0x16(%rsi),%xmm2 + 433438: 66 0f 3a 0f ca 06 palignr $0x6,%xmm2,%xmm1 + 43343e: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 433442: 0f 28 5e da movaps -0x26(%rsi),%xmm3 + 433446: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 + 43344c: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 433450: 0f 28 66 ca movaps -0x36(%rsi),%xmm4 + 433454: 66 0f 3a 0f dc 06 palignr $0x6,%xmm4,%xmm3 + 43345a: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 43345e: 0f 28 6e ba movaps -0x46(%rsi),%xmm5 + 433462: 66 0f 3a 0f e5 06 palignr $0x6,%xmm5,%xmm4 + 433468: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) + 43346c: 0f 28 76 aa movaps -0x56(%rsi),%xmm6 + 433470: 66 0f 3a 0f ee 06 palignr $0x6,%xmm6,%xmm5 + 433476: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) + 43347a: 0f 28 7e 9a movaps -0x66(%rsi),%xmm7 + 43347e: 66 0f 3a 0f f7 06 palignr $0x6,%xmm7,%xmm6 + 433484: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) + 433488: 44 0f 28 46 8a movaps -0x76(%rsi),%xmm8 + 43348d: 66 41 0f 3a 0f f8 06 palignr $0x6,%xmm8,%xmm7 + 433494: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) + 433498: 44 0f 28 8e 7a ff ff movaps -0x86(%rsi),%xmm9 + 43349f: ff + 4334a0: 66 45 0f 3a 0f c1 06 palignr $0x6,%xmm9,%xmm8 + 4334a7: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) + 4334ac: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 4334b3: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 4334b7: 48 8d 76 80 lea -0x80(%rsi),%rsi + 4334bb: 0f 83 6f ff ff ff jae 433430 <__memmove_ssse3_back+0xa70> + 4334c1: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 4334c6: 48 81 c2 80 00 00 00 add $0x80,%rdx + 4334cd: 48 29 d7 sub %rdx,%rdi + 4334d0: 48 29 d6 sub %rdx,%rsi + 4334d3: 4c 8d 1d 96 00 07 00 lea 0x70096(%rip),%r11 # 4a3570 + 4334da: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4334de: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4334e2: ff e2 jmpq *%rdx + 4334e4: 0f 0b ud2 + 4334e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4334ed: 00 00 00 + 4334f0: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 4334f7: 0f 28 4e f9 movaps -0x7(%rsi),%xmm1 + 4334fb: 0f 28 56 09 movaps 0x9(%rsi),%xmm2 + 4334ff: 0f 28 5e 19 movaps 0x19(%rsi),%xmm3 + 433503: 0f 28 66 29 movaps 0x29(%rsi),%xmm4 + 433507: 0f 28 6e 39 movaps 0x39(%rsi),%xmm5 + 43350b: 0f 28 76 49 movaps 0x49(%rsi),%xmm6 + 43350f: 0f 28 7e 59 movaps 0x59(%rsi),%xmm7 + 433513: 44 0f 28 46 69 movaps 0x69(%rsi),%xmm8 + 433518: 44 0f 28 4e 79 movaps 0x79(%rsi),%xmm9 + 43351d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 433524: 66 45 0f 3a 0f c8 07 palignr $0x7,%xmm8,%xmm9 + 43352b: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) + 433530: 66 44 0f 3a 0f c7 07 palignr $0x7,%xmm7,%xmm8 + 433537: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) + 43353c: 66 0f 3a 0f fe 07 palignr $0x7,%xmm6,%xmm7 + 433542: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) + 433546: 66 0f 3a 0f f5 07 palignr $0x7,%xmm5,%xmm6 + 43354c: 0f 29 77 40 movaps %xmm6,0x40(%rdi) + 433550: 66 0f 3a 0f ec 07 palignr $0x7,%xmm4,%xmm5 + 433556: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) + 43355a: 66 0f 3a 0f e3 07 palignr $0x7,%xmm3,%xmm4 + 433560: 0f 29 67 20 movaps %xmm4,0x20(%rdi) + 433564: 66 0f 3a 0f da 07 palignr $0x7,%xmm2,%xmm3 + 43356a: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 43356e: 66 0f 3a 0f d1 07 palignr $0x7,%xmm1,%xmm2 + 433574: 0f 29 17 movaps %xmm2,(%rdi) + 433577: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 43357e: 0f 83 6c ff ff ff jae 4334f0 <__memmove_ssse3_back+0xb30> + 433584: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433589: 48 81 c2 80 00 00 00 add $0x80,%rdx + 433590: 48 01 d7 add %rdx,%rdi + 433593: 48 01 d6 add %rdx,%rsi + 433596: 4c 8d 1d 13 02 07 00 lea 0x70213(%rip),%r11 # 4a37b0 + 43359d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4335a1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4335a5: ff e2 jmpq *%rdx + 4335a7: 0f 0b ud2 + 4335a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4335b0: 0f 28 4e f9 movaps -0x7(%rsi),%xmm1 + 4335b4: 0f 28 56 e9 movaps -0x17(%rsi),%xmm2 + 4335b8: 66 0f 3a 0f ca 07 palignr $0x7,%xmm2,%xmm1 + 4335be: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 4335c2: 0f 28 5e d9 movaps -0x27(%rsi),%xmm3 + 4335c6: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 + 4335cc: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 4335d0: 0f 28 66 c9 movaps -0x37(%rsi),%xmm4 + 4335d4: 66 0f 3a 0f dc 07 palignr $0x7,%xmm4,%xmm3 + 4335da: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 4335de: 0f 28 6e b9 movaps -0x47(%rsi),%xmm5 + 4335e2: 66 0f 3a 0f e5 07 palignr $0x7,%xmm5,%xmm4 + 4335e8: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) + 4335ec: 0f 28 76 a9 movaps -0x57(%rsi),%xmm6 + 4335f0: 66 0f 3a 0f ee 07 palignr $0x7,%xmm6,%xmm5 + 4335f6: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) + 4335fa: 0f 28 7e 99 movaps -0x67(%rsi),%xmm7 + 4335fe: 66 0f 3a 0f f7 07 palignr $0x7,%xmm7,%xmm6 + 433604: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) + 433608: 44 0f 28 46 89 movaps -0x77(%rsi),%xmm8 + 43360d: 66 41 0f 3a 0f f8 07 palignr $0x7,%xmm8,%xmm7 + 433614: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) + 433618: 44 0f 28 8e 79 ff ff movaps -0x87(%rsi),%xmm9 + 43361f: ff + 433620: 66 45 0f 3a 0f c1 07 palignr $0x7,%xmm9,%xmm8 + 433627: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) + 43362c: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 433633: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 433637: 48 8d 76 80 lea -0x80(%rsi),%rsi + 43363b: 0f 83 6f ff ff ff jae 4335b0 <__memmove_ssse3_back+0xbf0> + 433641: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433646: 48 81 c2 80 00 00 00 add $0x80,%rdx + 43364d: 48 29 d7 sub %rdx,%rdi + 433650: 48 29 d6 sub %rdx,%rsi + 433653: 4c 8d 1d 16 ff 06 00 lea 0x6ff16(%rip),%r11 # 4a3570 + 43365a: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43365e: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 433662: ff e2 jmpq *%rdx + 433664: 0f 0b ud2 + 433666: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43366d: 00 00 00 + 433670: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 433677: 0f 28 4e f8 movaps -0x8(%rsi),%xmm1 + 43367b: 0f 28 56 08 movaps 0x8(%rsi),%xmm2 + 43367f: 0f 28 5e 18 movaps 0x18(%rsi),%xmm3 + 433683: 0f 28 66 28 movaps 0x28(%rsi),%xmm4 + 433687: 0f 28 6e 38 movaps 0x38(%rsi),%xmm5 + 43368b: 0f 28 76 48 movaps 0x48(%rsi),%xmm6 + 43368f: 0f 28 7e 58 movaps 0x58(%rsi),%xmm7 + 433693: 44 0f 28 46 68 movaps 0x68(%rsi),%xmm8 + 433698: 44 0f 28 4e 78 movaps 0x78(%rsi),%xmm9 + 43369d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 4336a4: 66 45 0f 3a 0f c8 08 palignr $0x8,%xmm8,%xmm9 + 4336ab: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) + 4336b0: 66 44 0f 3a 0f c7 08 palignr $0x8,%xmm7,%xmm8 + 4336b7: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) + 4336bc: 66 0f 3a 0f fe 08 palignr $0x8,%xmm6,%xmm7 + 4336c2: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) + 4336c6: 66 0f 3a 0f f5 08 palignr $0x8,%xmm5,%xmm6 + 4336cc: 0f 29 77 40 movaps %xmm6,0x40(%rdi) + 4336d0: 66 0f 3a 0f ec 08 palignr $0x8,%xmm4,%xmm5 + 4336d6: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) + 4336da: 66 0f 3a 0f e3 08 palignr $0x8,%xmm3,%xmm4 + 4336e0: 0f 29 67 20 movaps %xmm4,0x20(%rdi) + 4336e4: 66 0f 3a 0f da 08 palignr $0x8,%xmm2,%xmm3 + 4336ea: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 4336ee: 66 0f 3a 0f d1 08 palignr $0x8,%xmm1,%xmm2 + 4336f4: 0f 29 17 movaps %xmm2,(%rdi) + 4336f7: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 4336fe: 0f 83 6c ff ff ff jae 433670 <__memmove_ssse3_back+0xcb0> + 433704: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433709: 48 81 c2 80 00 00 00 add $0x80,%rdx + 433710: 48 01 d7 add %rdx,%rdi + 433713: 48 01 d6 add %rdx,%rsi + 433716: 4c 8d 1d 93 00 07 00 lea 0x70093(%rip),%r11 # 4a37b0 + 43371d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 433721: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 433725: ff e2 jmpq *%rdx + 433727: 0f 0b ud2 + 433729: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 433730: 0f 28 4e f8 movaps -0x8(%rsi),%xmm1 + 433734: 0f 28 56 e8 movaps -0x18(%rsi),%xmm2 + 433738: 66 0f 3a 0f ca 08 palignr $0x8,%xmm2,%xmm1 + 43373e: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 433742: 0f 28 5e d8 movaps -0x28(%rsi),%xmm3 + 433746: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 + 43374c: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 433750: 0f 28 66 c8 movaps -0x38(%rsi),%xmm4 + 433754: 66 0f 3a 0f dc 08 palignr $0x8,%xmm4,%xmm3 + 43375a: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 43375e: 0f 28 6e b8 movaps -0x48(%rsi),%xmm5 + 433762: 66 0f 3a 0f e5 08 palignr $0x8,%xmm5,%xmm4 + 433768: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) + 43376c: 0f 28 76 a8 movaps -0x58(%rsi),%xmm6 + 433770: 66 0f 3a 0f ee 08 palignr $0x8,%xmm6,%xmm5 + 433776: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) + 43377a: 0f 28 7e 98 movaps -0x68(%rsi),%xmm7 + 43377e: 66 0f 3a 0f f7 08 palignr $0x8,%xmm7,%xmm6 + 433784: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) + 433788: 44 0f 28 46 88 movaps -0x78(%rsi),%xmm8 + 43378d: 66 41 0f 3a 0f f8 08 palignr $0x8,%xmm8,%xmm7 + 433794: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) + 433798: 44 0f 28 8e 78 ff ff movaps -0x88(%rsi),%xmm9 + 43379f: ff + 4337a0: 66 45 0f 3a 0f c1 08 palignr $0x8,%xmm9,%xmm8 + 4337a7: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) + 4337ac: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 4337b3: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 4337b7: 48 8d 76 80 lea -0x80(%rsi),%rsi + 4337bb: 0f 83 6f ff ff ff jae 433730 <__memmove_ssse3_back+0xd70> + 4337c1: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 4337c6: 48 81 c2 80 00 00 00 add $0x80,%rdx + 4337cd: 48 29 d7 sub %rdx,%rdi + 4337d0: 48 29 d6 sub %rdx,%rsi + 4337d3: 4c 8d 1d 96 fd 06 00 lea 0x6fd96(%rip),%r11 # 4a3570 + 4337da: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4337de: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4337e2: ff e2 jmpq *%rdx + 4337e4: 0f 0b ud2 + 4337e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4337ed: 00 00 00 + 4337f0: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 4337f7: 0f 28 4e f7 movaps -0x9(%rsi),%xmm1 + 4337fb: 0f 28 56 07 movaps 0x7(%rsi),%xmm2 + 4337ff: 0f 28 5e 17 movaps 0x17(%rsi),%xmm3 + 433803: 0f 28 66 27 movaps 0x27(%rsi),%xmm4 + 433807: 0f 28 6e 37 movaps 0x37(%rsi),%xmm5 + 43380b: 0f 28 76 47 movaps 0x47(%rsi),%xmm6 + 43380f: 0f 28 7e 57 movaps 0x57(%rsi),%xmm7 + 433813: 44 0f 28 46 67 movaps 0x67(%rsi),%xmm8 + 433818: 44 0f 28 4e 77 movaps 0x77(%rsi),%xmm9 + 43381d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 433824: 66 45 0f 3a 0f c8 09 palignr $0x9,%xmm8,%xmm9 + 43382b: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) + 433830: 66 44 0f 3a 0f c7 09 palignr $0x9,%xmm7,%xmm8 + 433837: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) + 43383c: 66 0f 3a 0f fe 09 palignr $0x9,%xmm6,%xmm7 + 433842: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) + 433846: 66 0f 3a 0f f5 09 palignr $0x9,%xmm5,%xmm6 + 43384c: 0f 29 77 40 movaps %xmm6,0x40(%rdi) + 433850: 66 0f 3a 0f ec 09 palignr $0x9,%xmm4,%xmm5 + 433856: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) + 43385a: 66 0f 3a 0f e3 09 palignr $0x9,%xmm3,%xmm4 + 433860: 0f 29 67 20 movaps %xmm4,0x20(%rdi) + 433864: 66 0f 3a 0f da 09 palignr $0x9,%xmm2,%xmm3 + 43386a: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 43386e: 66 0f 3a 0f d1 09 palignr $0x9,%xmm1,%xmm2 + 433874: 0f 29 17 movaps %xmm2,(%rdi) + 433877: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 43387e: 0f 83 6c ff ff ff jae 4337f0 <__memmove_ssse3_back+0xe30> + 433884: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433889: 48 81 c2 80 00 00 00 add $0x80,%rdx + 433890: 48 01 d7 add %rdx,%rdi + 433893: 48 01 d6 add %rdx,%rsi + 433896: 4c 8d 1d 13 ff 06 00 lea 0x6ff13(%rip),%r11 # 4a37b0 + 43389d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4338a1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4338a5: ff e2 jmpq *%rdx + 4338a7: 0f 0b ud2 + 4338a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4338b0: 0f 28 4e f7 movaps -0x9(%rsi),%xmm1 + 4338b4: 0f 28 56 e7 movaps -0x19(%rsi),%xmm2 + 4338b8: 66 0f 3a 0f ca 09 palignr $0x9,%xmm2,%xmm1 + 4338be: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 4338c2: 0f 28 5e d7 movaps -0x29(%rsi),%xmm3 + 4338c6: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 + 4338cc: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 4338d0: 0f 28 66 c7 movaps -0x39(%rsi),%xmm4 + 4338d4: 66 0f 3a 0f dc 09 palignr $0x9,%xmm4,%xmm3 + 4338da: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 4338de: 0f 28 6e b7 movaps -0x49(%rsi),%xmm5 + 4338e2: 66 0f 3a 0f e5 09 palignr $0x9,%xmm5,%xmm4 + 4338e8: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) + 4338ec: 0f 28 76 a7 movaps -0x59(%rsi),%xmm6 + 4338f0: 66 0f 3a 0f ee 09 palignr $0x9,%xmm6,%xmm5 + 4338f6: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) + 4338fa: 0f 28 7e 97 movaps -0x69(%rsi),%xmm7 + 4338fe: 66 0f 3a 0f f7 09 palignr $0x9,%xmm7,%xmm6 + 433904: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) + 433908: 44 0f 28 46 87 movaps -0x79(%rsi),%xmm8 + 43390d: 66 41 0f 3a 0f f8 09 palignr $0x9,%xmm8,%xmm7 + 433914: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) + 433918: 44 0f 28 8e 77 ff ff movaps -0x89(%rsi),%xmm9 + 43391f: ff + 433920: 66 45 0f 3a 0f c1 09 palignr $0x9,%xmm9,%xmm8 + 433927: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) + 43392c: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 433933: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 433937: 48 8d 76 80 lea -0x80(%rsi),%rsi + 43393b: 0f 83 6f ff ff ff jae 4338b0 <__memmove_ssse3_back+0xef0> + 433941: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433946: 48 81 c2 80 00 00 00 add $0x80,%rdx + 43394d: 48 29 d7 sub %rdx,%rdi + 433950: 48 29 d6 sub %rdx,%rsi + 433953: 4c 8d 1d 16 fc 06 00 lea 0x6fc16(%rip),%r11 # 4a3570 + 43395a: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43395e: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 433962: ff e2 jmpq *%rdx + 433964: 0f 0b ud2 + 433966: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43396d: 00 00 00 + 433970: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 433977: 0f 28 4e f6 movaps -0xa(%rsi),%xmm1 + 43397b: 0f 28 56 06 movaps 0x6(%rsi),%xmm2 + 43397f: 0f 28 5e 16 movaps 0x16(%rsi),%xmm3 + 433983: 0f 28 66 26 movaps 0x26(%rsi),%xmm4 + 433987: 0f 28 6e 36 movaps 0x36(%rsi),%xmm5 + 43398b: 0f 28 76 46 movaps 0x46(%rsi),%xmm6 + 43398f: 0f 28 7e 56 movaps 0x56(%rsi),%xmm7 + 433993: 44 0f 28 46 66 movaps 0x66(%rsi),%xmm8 + 433998: 44 0f 28 4e 76 movaps 0x76(%rsi),%xmm9 + 43399d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 4339a4: 66 45 0f 3a 0f c8 0a palignr $0xa,%xmm8,%xmm9 + 4339ab: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) + 4339b0: 66 44 0f 3a 0f c7 0a palignr $0xa,%xmm7,%xmm8 + 4339b7: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) + 4339bc: 66 0f 3a 0f fe 0a palignr $0xa,%xmm6,%xmm7 + 4339c2: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) + 4339c6: 66 0f 3a 0f f5 0a palignr $0xa,%xmm5,%xmm6 + 4339cc: 0f 29 77 40 movaps %xmm6,0x40(%rdi) + 4339d0: 66 0f 3a 0f ec 0a palignr $0xa,%xmm4,%xmm5 + 4339d6: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) + 4339da: 66 0f 3a 0f e3 0a palignr $0xa,%xmm3,%xmm4 + 4339e0: 0f 29 67 20 movaps %xmm4,0x20(%rdi) + 4339e4: 66 0f 3a 0f da 0a palignr $0xa,%xmm2,%xmm3 + 4339ea: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 4339ee: 66 0f 3a 0f d1 0a palignr $0xa,%xmm1,%xmm2 + 4339f4: 0f 29 17 movaps %xmm2,(%rdi) + 4339f7: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 4339fe: 0f 83 6c ff ff ff jae 433970 <__memmove_ssse3_back+0xfb0> + 433a04: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433a09: 48 81 c2 80 00 00 00 add $0x80,%rdx + 433a10: 48 01 d7 add %rdx,%rdi + 433a13: 48 01 d6 add %rdx,%rsi + 433a16: 4c 8d 1d 93 fd 06 00 lea 0x6fd93(%rip),%r11 # 4a37b0 + 433a1d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 433a21: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 433a25: ff e2 jmpq *%rdx + 433a27: 0f 0b ud2 + 433a29: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 433a30: 0f 28 4e f6 movaps -0xa(%rsi),%xmm1 + 433a34: 0f 28 56 e6 movaps -0x1a(%rsi),%xmm2 + 433a38: 66 0f 3a 0f ca 0a palignr $0xa,%xmm2,%xmm1 + 433a3e: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 433a42: 0f 28 5e d6 movaps -0x2a(%rsi),%xmm3 + 433a46: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 + 433a4c: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 433a50: 0f 28 66 c6 movaps -0x3a(%rsi),%xmm4 + 433a54: 66 0f 3a 0f dc 0a palignr $0xa,%xmm4,%xmm3 + 433a5a: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 433a5e: 0f 28 6e b6 movaps -0x4a(%rsi),%xmm5 + 433a62: 66 0f 3a 0f e5 0a palignr $0xa,%xmm5,%xmm4 + 433a68: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) + 433a6c: 0f 28 76 a6 movaps -0x5a(%rsi),%xmm6 + 433a70: 66 0f 3a 0f ee 0a palignr $0xa,%xmm6,%xmm5 + 433a76: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) + 433a7a: 0f 28 7e 96 movaps -0x6a(%rsi),%xmm7 + 433a7e: 66 0f 3a 0f f7 0a palignr $0xa,%xmm7,%xmm6 + 433a84: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) + 433a88: 44 0f 28 46 86 movaps -0x7a(%rsi),%xmm8 + 433a8d: 66 41 0f 3a 0f f8 0a palignr $0xa,%xmm8,%xmm7 + 433a94: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) + 433a98: 44 0f 28 8e 76 ff ff movaps -0x8a(%rsi),%xmm9 + 433a9f: ff + 433aa0: 66 45 0f 3a 0f c1 0a palignr $0xa,%xmm9,%xmm8 + 433aa7: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) + 433aac: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 433ab3: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 433ab7: 48 8d 76 80 lea -0x80(%rsi),%rsi + 433abb: 0f 83 6f ff ff ff jae 433a30 <__memmove_ssse3_back+0x1070> + 433ac1: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433ac6: 48 81 c2 80 00 00 00 add $0x80,%rdx + 433acd: 48 29 d7 sub %rdx,%rdi + 433ad0: 48 29 d6 sub %rdx,%rsi + 433ad3: 4c 8d 1d 96 fa 06 00 lea 0x6fa96(%rip),%r11 # 4a3570 + 433ada: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 433ade: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 433ae2: ff e2 jmpq *%rdx + 433ae4: 0f 0b ud2 + 433ae6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 433aed: 00 00 00 + 433af0: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 433af7: 0f 28 4e f5 movaps -0xb(%rsi),%xmm1 + 433afb: 0f 28 56 05 movaps 0x5(%rsi),%xmm2 + 433aff: 0f 28 5e 15 movaps 0x15(%rsi),%xmm3 + 433b03: 0f 28 66 25 movaps 0x25(%rsi),%xmm4 + 433b07: 0f 28 6e 35 movaps 0x35(%rsi),%xmm5 + 433b0b: 0f 28 76 45 movaps 0x45(%rsi),%xmm6 + 433b0f: 0f 28 7e 55 movaps 0x55(%rsi),%xmm7 + 433b13: 44 0f 28 46 65 movaps 0x65(%rsi),%xmm8 + 433b18: 44 0f 28 4e 75 movaps 0x75(%rsi),%xmm9 + 433b1d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 433b24: 66 45 0f 3a 0f c8 0b palignr $0xb,%xmm8,%xmm9 + 433b2b: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) + 433b30: 66 44 0f 3a 0f c7 0b palignr $0xb,%xmm7,%xmm8 + 433b37: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) + 433b3c: 66 0f 3a 0f fe 0b palignr $0xb,%xmm6,%xmm7 + 433b42: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) + 433b46: 66 0f 3a 0f f5 0b palignr $0xb,%xmm5,%xmm6 + 433b4c: 0f 29 77 40 movaps %xmm6,0x40(%rdi) + 433b50: 66 0f 3a 0f ec 0b palignr $0xb,%xmm4,%xmm5 + 433b56: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) + 433b5a: 66 0f 3a 0f e3 0b palignr $0xb,%xmm3,%xmm4 + 433b60: 0f 29 67 20 movaps %xmm4,0x20(%rdi) + 433b64: 66 0f 3a 0f da 0b palignr $0xb,%xmm2,%xmm3 + 433b6a: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 433b6e: 66 0f 3a 0f d1 0b palignr $0xb,%xmm1,%xmm2 + 433b74: 0f 29 17 movaps %xmm2,(%rdi) + 433b77: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 433b7e: 0f 83 6c ff ff ff jae 433af0 <__memmove_ssse3_back+0x1130> + 433b84: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433b89: 48 81 c2 80 00 00 00 add $0x80,%rdx + 433b90: 48 01 d7 add %rdx,%rdi + 433b93: 48 01 d6 add %rdx,%rsi + 433b96: 4c 8d 1d 13 fc 06 00 lea 0x6fc13(%rip),%r11 # 4a37b0 + 433b9d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 433ba1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 433ba5: ff e2 jmpq *%rdx + 433ba7: 0f 0b ud2 + 433ba9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 433bb0: 0f 28 4e f5 movaps -0xb(%rsi),%xmm1 + 433bb4: 0f 28 56 e5 movaps -0x1b(%rsi),%xmm2 + 433bb8: 66 0f 3a 0f ca 0b palignr $0xb,%xmm2,%xmm1 + 433bbe: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 433bc2: 0f 28 5e d5 movaps -0x2b(%rsi),%xmm3 + 433bc6: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 + 433bcc: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 433bd0: 0f 28 66 c5 movaps -0x3b(%rsi),%xmm4 + 433bd4: 66 0f 3a 0f dc 0b palignr $0xb,%xmm4,%xmm3 + 433bda: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 433bde: 0f 28 6e b5 movaps -0x4b(%rsi),%xmm5 + 433be2: 66 0f 3a 0f e5 0b palignr $0xb,%xmm5,%xmm4 + 433be8: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) + 433bec: 0f 28 76 a5 movaps -0x5b(%rsi),%xmm6 + 433bf0: 66 0f 3a 0f ee 0b palignr $0xb,%xmm6,%xmm5 + 433bf6: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) + 433bfa: 0f 28 7e 95 movaps -0x6b(%rsi),%xmm7 + 433bfe: 66 0f 3a 0f f7 0b palignr $0xb,%xmm7,%xmm6 + 433c04: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) + 433c08: 44 0f 28 46 85 movaps -0x7b(%rsi),%xmm8 + 433c0d: 66 41 0f 3a 0f f8 0b palignr $0xb,%xmm8,%xmm7 + 433c14: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) + 433c18: 44 0f 28 8e 75 ff ff movaps -0x8b(%rsi),%xmm9 + 433c1f: ff + 433c20: 66 45 0f 3a 0f c1 0b palignr $0xb,%xmm9,%xmm8 + 433c27: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) + 433c2c: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 433c33: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 433c37: 48 8d 76 80 lea -0x80(%rsi),%rsi + 433c3b: 0f 83 6f ff ff ff jae 433bb0 <__memmove_ssse3_back+0x11f0> + 433c41: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433c46: 48 81 c2 80 00 00 00 add $0x80,%rdx + 433c4d: 48 29 d7 sub %rdx,%rdi + 433c50: 48 29 d6 sub %rdx,%rsi + 433c53: 4c 8d 1d 16 f9 06 00 lea 0x6f916(%rip),%r11 # 4a3570 + 433c5a: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 433c5e: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 433c62: ff e2 jmpq *%rdx + 433c64: 0f 0b ud2 + 433c66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 433c6d: 00 00 00 + 433c70: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 433c77: 66 0f 6f 4e f4 movdqa -0xc(%rsi),%xmm1 + 433c7c: 0f 28 56 04 movaps 0x4(%rsi),%xmm2 + 433c80: 0f 28 5e 14 movaps 0x14(%rsi),%xmm3 + 433c84: 0f 28 66 24 movaps 0x24(%rsi),%xmm4 + 433c88: 0f 28 6e 34 movaps 0x34(%rsi),%xmm5 + 433c8c: 0f 28 76 44 movaps 0x44(%rsi),%xmm6 + 433c90: 0f 28 7e 54 movaps 0x54(%rsi),%xmm7 + 433c94: 44 0f 28 46 64 movaps 0x64(%rsi),%xmm8 + 433c99: 44 0f 28 4e 74 movaps 0x74(%rsi),%xmm9 + 433c9e: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 433ca5: 66 45 0f 3a 0f c8 0c palignr $0xc,%xmm8,%xmm9 + 433cac: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) + 433cb1: 66 44 0f 3a 0f c7 0c palignr $0xc,%xmm7,%xmm8 + 433cb8: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) + 433cbd: 66 0f 3a 0f fe 0c palignr $0xc,%xmm6,%xmm7 + 433cc3: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) + 433cc7: 66 0f 3a 0f f5 0c palignr $0xc,%xmm5,%xmm6 + 433ccd: 0f 29 77 40 movaps %xmm6,0x40(%rdi) + 433cd1: 66 0f 3a 0f ec 0c palignr $0xc,%xmm4,%xmm5 + 433cd7: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) + 433cdb: 66 0f 3a 0f e3 0c palignr $0xc,%xmm3,%xmm4 + 433ce1: 0f 29 67 20 movaps %xmm4,0x20(%rdi) + 433ce5: 66 0f 3a 0f da 0c palignr $0xc,%xmm2,%xmm3 + 433ceb: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 433cef: 66 0f 3a 0f d1 0c palignr $0xc,%xmm1,%xmm2 + 433cf5: 0f 29 17 movaps %xmm2,(%rdi) + 433cf8: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 433cff: 0f 83 6b ff ff ff jae 433c70 <__memmove_ssse3_back+0x12b0> + 433d05: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433d0a: 48 81 c2 80 00 00 00 add $0x80,%rdx + 433d11: 48 01 d7 add %rdx,%rdi + 433d14: 48 01 d6 add %rdx,%rsi + 433d17: 4c 8d 1d 92 fa 06 00 lea 0x6fa92(%rip),%r11 # 4a37b0 + 433d1e: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 433d22: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 433d26: ff e2 jmpq *%rdx + 433d28: 0f 0b ud2 + 433d2a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 433d30: 0f 28 4e f4 movaps -0xc(%rsi),%xmm1 + 433d34: 0f 28 56 e4 movaps -0x1c(%rsi),%xmm2 + 433d38: 66 0f 3a 0f ca 0c palignr $0xc,%xmm2,%xmm1 + 433d3e: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 433d42: 0f 28 5e d4 movaps -0x2c(%rsi),%xmm3 + 433d46: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 + 433d4c: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 433d50: 0f 28 66 c4 movaps -0x3c(%rsi),%xmm4 + 433d54: 66 0f 3a 0f dc 0c palignr $0xc,%xmm4,%xmm3 + 433d5a: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 433d5e: 0f 28 6e b4 movaps -0x4c(%rsi),%xmm5 + 433d62: 66 0f 3a 0f e5 0c palignr $0xc,%xmm5,%xmm4 + 433d68: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) + 433d6c: 0f 28 76 a4 movaps -0x5c(%rsi),%xmm6 + 433d70: 66 0f 3a 0f ee 0c palignr $0xc,%xmm6,%xmm5 + 433d76: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) + 433d7a: 0f 28 7e 94 movaps -0x6c(%rsi),%xmm7 + 433d7e: 66 0f 3a 0f f7 0c palignr $0xc,%xmm7,%xmm6 + 433d84: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) + 433d88: 44 0f 28 46 84 movaps -0x7c(%rsi),%xmm8 + 433d8d: 66 41 0f 3a 0f f8 0c palignr $0xc,%xmm8,%xmm7 + 433d94: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) + 433d98: 44 0f 28 8e 74 ff ff movaps -0x8c(%rsi),%xmm9 + 433d9f: ff + 433da0: 66 45 0f 3a 0f c1 0c palignr $0xc,%xmm9,%xmm8 + 433da7: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) + 433dac: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 433db3: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 433db7: 48 8d 76 80 lea -0x80(%rsi),%rsi + 433dbb: 0f 83 6f ff ff ff jae 433d30 <__memmove_ssse3_back+0x1370> + 433dc1: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433dc6: 48 81 c2 80 00 00 00 add $0x80,%rdx + 433dcd: 48 29 d7 sub %rdx,%rdi + 433dd0: 48 29 d6 sub %rdx,%rsi + 433dd3: 4c 8d 1d 96 f7 06 00 lea 0x6f796(%rip),%r11 # 4a3570 + 433dda: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 433dde: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 433de2: ff e2 jmpq *%rdx + 433de4: 0f 0b ud2 + 433de6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 433ded: 00 00 00 + 433df0: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 433df7: 0f 28 4e f3 movaps -0xd(%rsi),%xmm1 + 433dfb: 0f 28 56 03 movaps 0x3(%rsi),%xmm2 + 433dff: 0f 28 5e 13 movaps 0x13(%rsi),%xmm3 + 433e03: 0f 28 66 23 movaps 0x23(%rsi),%xmm4 + 433e07: 0f 28 6e 33 movaps 0x33(%rsi),%xmm5 + 433e0b: 0f 28 76 43 movaps 0x43(%rsi),%xmm6 + 433e0f: 0f 28 7e 53 movaps 0x53(%rsi),%xmm7 + 433e13: 44 0f 28 46 63 movaps 0x63(%rsi),%xmm8 + 433e18: 44 0f 28 4e 73 movaps 0x73(%rsi),%xmm9 + 433e1d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 433e24: 66 45 0f 3a 0f c8 0d palignr $0xd,%xmm8,%xmm9 + 433e2b: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) + 433e30: 66 44 0f 3a 0f c7 0d palignr $0xd,%xmm7,%xmm8 + 433e37: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) + 433e3c: 66 0f 3a 0f fe 0d palignr $0xd,%xmm6,%xmm7 + 433e42: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) + 433e46: 66 0f 3a 0f f5 0d palignr $0xd,%xmm5,%xmm6 + 433e4c: 0f 29 77 40 movaps %xmm6,0x40(%rdi) + 433e50: 66 0f 3a 0f ec 0d palignr $0xd,%xmm4,%xmm5 + 433e56: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) + 433e5a: 66 0f 3a 0f e3 0d palignr $0xd,%xmm3,%xmm4 + 433e60: 0f 29 67 20 movaps %xmm4,0x20(%rdi) + 433e64: 66 0f 3a 0f da 0d palignr $0xd,%xmm2,%xmm3 + 433e6a: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 433e6e: 66 0f 3a 0f d1 0d palignr $0xd,%xmm1,%xmm2 + 433e74: 0f 29 17 movaps %xmm2,(%rdi) + 433e77: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 433e7e: 0f 83 6c ff ff ff jae 433df0 <__memmove_ssse3_back+0x1430> + 433e84: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433e89: 48 81 c2 80 00 00 00 add $0x80,%rdx + 433e90: 48 01 d7 add %rdx,%rdi + 433e93: 48 01 d6 add %rdx,%rsi + 433e96: 4c 8d 1d 13 f9 06 00 lea 0x6f913(%rip),%r11 # 4a37b0 + 433e9d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 433ea1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 433ea5: ff e2 jmpq *%rdx + 433ea7: 0f 0b ud2 + 433ea9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 433eb0: 0f 28 4e f3 movaps -0xd(%rsi),%xmm1 + 433eb4: 0f 28 56 e3 movaps -0x1d(%rsi),%xmm2 + 433eb8: 66 0f 3a 0f ca 0d palignr $0xd,%xmm2,%xmm1 + 433ebe: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 433ec2: 0f 28 5e d3 movaps -0x2d(%rsi),%xmm3 + 433ec6: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 + 433ecc: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 433ed0: 0f 28 66 c3 movaps -0x3d(%rsi),%xmm4 + 433ed4: 66 0f 3a 0f dc 0d palignr $0xd,%xmm4,%xmm3 + 433eda: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 433ede: 0f 28 6e b3 movaps -0x4d(%rsi),%xmm5 + 433ee2: 66 0f 3a 0f e5 0d palignr $0xd,%xmm5,%xmm4 + 433ee8: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) + 433eec: 0f 28 76 a3 movaps -0x5d(%rsi),%xmm6 + 433ef0: 66 0f 3a 0f ee 0d palignr $0xd,%xmm6,%xmm5 + 433ef6: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) + 433efa: 0f 28 7e 93 movaps -0x6d(%rsi),%xmm7 + 433efe: 66 0f 3a 0f f7 0d palignr $0xd,%xmm7,%xmm6 + 433f04: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) + 433f08: 44 0f 28 46 83 movaps -0x7d(%rsi),%xmm8 + 433f0d: 66 41 0f 3a 0f f8 0d palignr $0xd,%xmm8,%xmm7 + 433f14: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) + 433f18: 44 0f 28 8e 73 ff ff movaps -0x8d(%rsi),%xmm9 + 433f1f: ff + 433f20: 66 45 0f 3a 0f c1 0d palignr $0xd,%xmm9,%xmm8 + 433f27: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) + 433f2c: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 433f33: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 433f37: 48 8d 76 80 lea -0x80(%rsi),%rsi + 433f3b: 0f 83 6f ff ff ff jae 433eb0 <__memmove_ssse3_back+0x14f0> + 433f41: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 433f46: 48 81 c2 80 00 00 00 add $0x80,%rdx + 433f4d: 48 29 d7 sub %rdx,%rdi + 433f50: 48 29 d6 sub %rdx,%rsi + 433f53: 4c 8d 1d 16 f6 06 00 lea 0x6f616(%rip),%r11 # 4a3570 + 433f5a: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 433f5e: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 433f62: ff e2 jmpq *%rdx + 433f64: 0f 0b ud2 + 433f66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 433f6d: 00 00 00 + 433f70: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 433f77: 0f 28 4e f2 movaps -0xe(%rsi),%xmm1 + 433f7b: 0f 28 56 02 movaps 0x2(%rsi),%xmm2 + 433f7f: 0f 28 5e 12 movaps 0x12(%rsi),%xmm3 + 433f83: 0f 28 66 22 movaps 0x22(%rsi),%xmm4 + 433f87: 0f 28 6e 32 movaps 0x32(%rsi),%xmm5 + 433f8b: 0f 28 76 42 movaps 0x42(%rsi),%xmm6 + 433f8f: 0f 28 7e 52 movaps 0x52(%rsi),%xmm7 + 433f93: 44 0f 28 46 62 movaps 0x62(%rsi),%xmm8 + 433f98: 44 0f 28 4e 72 movaps 0x72(%rsi),%xmm9 + 433f9d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 433fa4: 66 45 0f 3a 0f c8 0e palignr $0xe,%xmm8,%xmm9 + 433fab: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) + 433fb0: 66 44 0f 3a 0f c7 0e palignr $0xe,%xmm7,%xmm8 + 433fb7: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) + 433fbc: 66 0f 3a 0f fe 0e palignr $0xe,%xmm6,%xmm7 + 433fc2: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) + 433fc6: 66 0f 3a 0f f5 0e palignr $0xe,%xmm5,%xmm6 + 433fcc: 0f 29 77 40 movaps %xmm6,0x40(%rdi) + 433fd0: 66 0f 3a 0f ec 0e palignr $0xe,%xmm4,%xmm5 + 433fd6: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) + 433fda: 66 0f 3a 0f e3 0e palignr $0xe,%xmm3,%xmm4 + 433fe0: 0f 29 67 20 movaps %xmm4,0x20(%rdi) + 433fe4: 66 0f 3a 0f da 0e palignr $0xe,%xmm2,%xmm3 + 433fea: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 433fee: 66 0f 3a 0f d1 0e palignr $0xe,%xmm1,%xmm2 + 433ff4: 0f 29 17 movaps %xmm2,(%rdi) + 433ff7: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 433ffe: 0f 83 6c ff ff ff jae 433f70 <__memmove_ssse3_back+0x15b0> + 434004: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 434009: 48 81 c2 80 00 00 00 add $0x80,%rdx + 434010: 48 01 d7 add %rdx,%rdi + 434013: 48 01 d6 add %rdx,%rsi + 434016: 4c 8d 1d 93 f7 06 00 lea 0x6f793(%rip),%r11 # 4a37b0 + 43401d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 434021: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 434025: ff e2 jmpq *%rdx + 434027: 0f 0b ud2 + 434029: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 434030: 0f 28 4e f2 movaps -0xe(%rsi),%xmm1 + 434034: 0f 28 56 e2 movaps -0x1e(%rsi),%xmm2 + 434038: 66 0f 3a 0f ca 0e palignr $0xe,%xmm2,%xmm1 + 43403e: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 434042: 0f 28 5e d2 movaps -0x2e(%rsi),%xmm3 + 434046: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 + 43404c: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 434050: 0f 28 66 c2 movaps -0x3e(%rsi),%xmm4 + 434054: 66 0f 3a 0f dc 0e palignr $0xe,%xmm4,%xmm3 + 43405a: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 43405e: 0f 28 6e b2 movaps -0x4e(%rsi),%xmm5 + 434062: 66 0f 3a 0f e5 0e palignr $0xe,%xmm5,%xmm4 + 434068: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) + 43406c: 0f 28 76 a2 movaps -0x5e(%rsi),%xmm6 + 434070: 66 0f 3a 0f ee 0e palignr $0xe,%xmm6,%xmm5 + 434076: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) + 43407a: 0f 28 7e 92 movaps -0x6e(%rsi),%xmm7 + 43407e: 66 0f 3a 0f f7 0e palignr $0xe,%xmm7,%xmm6 + 434084: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) + 434088: 44 0f 28 46 82 movaps -0x7e(%rsi),%xmm8 + 43408d: 66 41 0f 3a 0f f8 0e palignr $0xe,%xmm8,%xmm7 + 434094: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) + 434098: 44 0f 28 8e 72 ff ff movaps -0x8e(%rsi),%xmm9 + 43409f: ff + 4340a0: 66 45 0f 3a 0f c1 0e palignr $0xe,%xmm9,%xmm8 + 4340a7: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) + 4340ac: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 4340b3: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 4340b7: 48 8d 76 80 lea -0x80(%rsi),%rsi + 4340bb: 0f 83 6f ff ff ff jae 434030 <__memmove_ssse3_back+0x1670> + 4340c1: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 4340c6: 48 81 c2 80 00 00 00 add $0x80,%rdx + 4340cd: 48 29 d7 sub %rdx,%rdi + 4340d0: 48 29 d6 sub %rdx,%rsi + 4340d3: 4c 8d 1d 96 f4 06 00 lea 0x6f496(%rip),%r11 # 4a3570 + 4340da: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4340de: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4340e2: ff e2 jmpq *%rdx + 4340e4: 0f 0b ud2 + 4340e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4340ed: 00 00 00 + 4340f0: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 4340f7: 0f 28 4e f1 movaps -0xf(%rsi),%xmm1 + 4340fb: 0f 28 56 01 movaps 0x1(%rsi),%xmm2 + 4340ff: 0f 28 5e 11 movaps 0x11(%rsi),%xmm3 + 434103: 0f 28 66 21 movaps 0x21(%rsi),%xmm4 + 434107: 0f 28 6e 31 movaps 0x31(%rsi),%xmm5 + 43410b: 0f 28 76 41 movaps 0x41(%rsi),%xmm6 + 43410f: 0f 28 7e 51 movaps 0x51(%rsi),%xmm7 + 434113: 44 0f 28 46 61 movaps 0x61(%rsi),%xmm8 + 434118: 44 0f 28 4e 71 movaps 0x71(%rsi),%xmm9 + 43411d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 434124: 66 45 0f 3a 0f c8 0f palignr $0xf,%xmm8,%xmm9 + 43412b: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) + 434130: 66 44 0f 3a 0f c7 0f palignr $0xf,%xmm7,%xmm8 + 434137: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) + 43413c: 66 0f 3a 0f fe 0f palignr $0xf,%xmm6,%xmm7 + 434142: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) + 434146: 66 0f 3a 0f f5 0f palignr $0xf,%xmm5,%xmm6 + 43414c: 0f 29 77 40 movaps %xmm6,0x40(%rdi) + 434150: 66 0f 3a 0f ec 0f palignr $0xf,%xmm4,%xmm5 + 434156: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) + 43415a: 66 0f 3a 0f e3 0f palignr $0xf,%xmm3,%xmm4 + 434160: 0f 29 67 20 movaps %xmm4,0x20(%rdi) + 434164: 66 0f 3a 0f da 0f palignr $0xf,%xmm2,%xmm3 + 43416a: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) + 43416e: 66 0f 3a 0f d1 0f palignr $0xf,%xmm1,%xmm2 + 434174: 0f 29 17 movaps %xmm2,(%rdi) + 434177: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 43417e: 0f 83 6c ff ff ff jae 4340f0 <__memmove_ssse3_back+0x1730> + 434184: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 434189: 48 81 c2 80 00 00 00 add $0x80,%rdx + 434190: 48 01 d7 add %rdx,%rdi + 434193: 48 01 d6 add %rdx,%rsi + 434196: 4c 8d 1d 13 f6 06 00 lea 0x6f613(%rip),%r11 # 4a37b0 + 43419d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4341a1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4341a5: ff e2 jmpq *%rdx + 4341a7: 0f 0b ud2 + 4341a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4341b0: 0f 28 4e f1 movaps -0xf(%rsi),%xmm1 + 4341b4: 0f 28 56 e1 movaps -0x1f(%rsi),%xmm2 + 4341b8: 66 0f 3a 0f ca 0f palignr $0xf,%xmm2,%xmm1 + 4341be: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) + 4341c2: 0f 28 5e d1 movaps -0x2f(%rsi),%xmm3 + 4341c6: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 + 4341cc: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) + 4341d0: 0f 28 66 c1 movaps -0x3f(%rsi),%xmm4 + 4341d4: 66 0f 3a 0f dc 0f palignr $0xf,%xmm4,%xmm3 + 4341da: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) + 4341de: 0f 28 6e b1 movaps -0x4f(%rsi),%xmm5 + 4341e2: 66 0f 3a 0f e5 0f palignr $0xf,%xmm5,%xmm4 + 4341e8: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) + 4341ec: 0f 28 76 a1 movaps -0x5f(%rsi),%xmm6 + 4341f0: 66 0f 3a 0f ee 0f palignr $0xf,%xmm6,%xmm5 + 4341f6: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) + 4341fa: 0f 28 7e 91 movaps -0x6f(%rsi),%xmm7 + 4341fe: 66 0f 3a 0f f7 0f palignr $0xf,%xmm7,%xmm6 + 434204: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) + 434208: 44 0f 28 46 81 movaps -0x7f(%rsi),%xmm8 + 43420d: 66 41 0f 3a 0f f8 0f palignr $0xf,%xmm8,%xmm7 + 434214: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) + 434218: 44 0f 28 8e 71 ff ff movaps -0x8f(%rsi),%xmm9 + 43421f: ff + 434220: 66 45 0f 3a 0f c1 0f palignr $0xf,%xmm9,%xmm8 + 434227: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) + 43422c: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 434233: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 434237: 48 8d 76 80 lea -0x80(%rsi),%rsi + 43423b: 0f 83 6f ff ff ff jae 4341b0 <__memmove_ssse3_back+0x17f0> + 434241: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 434246: 48 81 c2 80 00 00 00 add $0x80,%rdx + 43424d: 48 29 d7 sub %rdx,%rdi + 434250: 48 29 d6 sub %rdx,%rsi + 434253: 4c 8d 1d 16 f3 06 00 lea 0x6f316(%rip),%r11 # 4a3570 + 43425a: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 43425e: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 434262: ff e2 jmpq *%rdx + 434264: 0f 0b ud2 + 434266: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43426d: 00 00 00 + 434270: f3 0f 6f 0e movdqu (%rsi),%xmm1 + 434274: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 434279: 66 0f 7f 0f movdqa %xmm1,(%rdi) + 43427d: 48 83 ea 10 sub $0x10,%rdx + 434281: 48 83 c6 10 add $0x10,%rsi + 434285: 48 83 c7 10 add $0x10,%rdi + 434289: 48 8b 0d 20 6e 29 00 mov 0x296e20(%rip),%rcx # 6cb0b0 <__x86_shared_cache_size_half> + 434290: 49 89 f1 mov %rsi,%r9 + 434293: 49 29 f9 sub %rdi,%r9 + 434296: 49 39 d1 cmp %rdx,%r9 + 434299: 73 09 jae 4342a4 <__memmove_ssse3_back+0x18e4> + 43429b: 49 39 c9 cmp %rcx,%r9 + 43429e: 0f 86 c1 00 00 00 jbe 434365 <__memmove_ssse3_back+0x19a5> + 4342a4: 48 39 ca cmp %rcx,%rdx + 4342a7: 77 03 ja 4342ac <__memmove_ssse3_back+0x18ec> + 4342a9: 48 89 d1 mov %rdx,%rcx + 4342ac: 48 29 ca sub %rcx,%rdx + 4342af: 48 81 fa 00 10 00 00 cmp $0x1000,%rdx + 4342b6: 0f 86 a6 00 00 00 jbe 434362 <__memmove_ssse3_back+0x19a2> + 4342bc: 49 89 c9 mov %rcx,%r9 + 4342bf: 49 c1 e1 03 shl $0x3,%r9 + 4342c3: 4c 39 ca cmp %r9,%rdx + 4342c6: 76 06 jbe 4342ce <__memmove_ssse3_back+0x190e> + 4342c8: 48 01 ca add %rcx,%rdx + 4342cb: 48 31 c9 xor %rcx,%rcx + 4342ce: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 4342d5: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 4342dc: 0f 18 8e 00 02 00 00 prefetcht0 0x200(%rsi) + 4342e3: 0f 18 8e 00 03 00 00 prefetcht0 0x300(%rsi) + 4342ea: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 4342ee: f3 0f 6f 4e 10 movdqu 0x10(%rsi),%xmm1 + 4342f3: f3 0f 6f 56 20 movdqu 0x20(%rsi),%xmm2 + 4342f8: f3 0f 6f 5e 30 movdqu 0x30(%rsi),%xmm3 + 4342fd: f3 0f 6f 66 40 movdqu 0x40(%rsi),%xmm4 + 434302: f3 0f 6f 6e 50 movdqu 0x50(%rsi),%xmm5 + 434307: f3 0f 6f 76 60 movdqu 0x60(%rsi),%xmm6 + 43430c: f3 0f 6f 7e 70 movdqu 0x70(%rsi),%xmm7 + 434311: 0f ae e8 lfence + 434314: 66 0f e7 07 movntdq %xmm0,(%rdi) + 434318: 66 0f e7 4f 10 movntdq %xmm1,0x10(%rdi) + 43431d: 66 0f e7 57 20 movntdq %xmm2,0x20(%rdi) + 434322: 66 0f e7 5f 30 movntdq %xmm3,0x30(%rdi) + 434327: 66 0f e7 67 40 movntdq %xmm4,0x40(%rdi) + 43432c: 66 0f e7 6f 50 movntdq %xmm5,0x50(%rdi) + 434331: 66 0f e7 77 60 movntdq %xmm6,0x60(%rdi) + 434336: 66 0f e7 7f 70 movntdq %xmm7,0x70(%rdi) + 43433b: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 434342: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 434349: 73 8a jae 4342d5 <__memmove_ssse3_back+0x1915> + 43434b: 0f ae f8 sfence + 43434e: 48 81 f9 80 00 00 00 cmp $0x80,%rcx + 434355: 0f 82 96 00 00 00 jb 4343f1 <__memmove_ssse3_back+0x1a31> + 43435b: 48 81 c2 80 00 00 00 add $0x80,%rdx + 434362: 48 01 ca add %rcx,%rdx + 434365: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 43436c: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) + 434373: 0f 18 86 80 02 00 00 prefetchnta 0x280(%rsi) + 43437a: 0f 18 87 c0 01 00 00 prefetchnta 0x1c0(%rdi) + 434381: 0f 18 87 80 02 00 00 prefetchnta 0x280(%rdi) + 434388: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 43438f: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 434393: f3 0f 6f 4e 10 movdqu 0x10(%rsi),%xmm1 + 434398: f3 0f 6f 56 20 movdqu 0x20(%rsi),%xmm2 + 43439d: f3 0f 6f 5e 30 movdqu 0x30(%rsi),%xmm3 + 4343a2: f3 0f 6f 66 40 movdqu 0x40(%rsi),%xmm4 + 4343a7: f3 0f 6f 6e 50 movdqu 0x50(%rsi),%xmm5 + 4343ac: f3 0f 6f 76 60 movdqu 0x60(%rsi),%xmm6 + 4343b1: f3 0f 6f 7e 70 movdqu 0x70(%rsi),%xmm7 + 4343b6: 66 0f 7f 07 movdqa %xmm0,(%rdi) + 4343ba: 66 0f 7f 4f 10 movdqa %xmm1,0x10(%rdi) + 4343bf: 66 0f 7f 57 20 movdqa %xmm2,0x20(%rdi) + 4343c4: 66 0f 7f 5f 30 movdqa %xmm3,0x30(%rdi) + 4343c9: 66 0f 7f 67 40 movdqa %xmm4,0x40(%rdi) + 4343ce: 66 0f 7f 6f 50 movdqa %xmm5,0x50(%rdi) + 4343d3: 66 0f 7f 77 60 movdqa %xmm6,0x60(%rdi) + 4343d8: 66 0f 7f 7f 70 movdqa %xmm7,0x70(%rdi) + 4343dd: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi + 4343e4: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi + 4343eb: 0f 83 7b ff ff ff jae 43436c <__memmove_ssse3_back+0x19ac> + 4343f1: 48 81 c2 80 00 00 00 add $0x80,%rdx + 4343f8: 48 01 d6 add %rdx,%rsi + 4343fb: 48 01 d7 add %rdx,%rdi + 4343fe: 4c 8d 1d ab f3 06 00 lea 0x6f3ab(%rip),%r11 # 4a37b0 + 434405: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 434409: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 43440d: ff e2 jmpq *%rdx + 43440f: 0f 0b ud2 + 434411: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 434416: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43441d: 00 00 00 + 434420: 48 01 d6 add %rdx,%rsi + 434423: 48 01 d7 add %rdx,%rdi + 434426: f3 0f 6f 46 f0 movdqu -0x10(%rsi),%xmm0 + 43442b: 4c 8d 47 f0 lea -0x10(%rdi),%r8 + 43442f: 49 89 f9 mov %rdi,%r9 + 434432: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 434436: 49 29 f9 sub %rdi,%r9 + 434439: 4c 29 ce sub %r9,%rsi + 43443c: 4c 29 ca sub %r9,%rdx + 43443f: 48 8b 0d 6a 6c 29 00 mov 0x296c6a(%rip),%rcx # 6cb0b0 <__x86_shared_cache_size_half> + 434446: 49 89 f9 mov %rdi,%r9 + 434449: 49 29 f1 sub %rsi,%r9 + 43444c: 49 39 d1 cmp %rdx,%r9 + 43444f: 73 09 jae 43445a <__memmove_ssse3_back+0x1a9a> + 434451: 49 39 c9 cmp %rcx,%r9 + 434454: 0f 86 bf 00 00 00 jbe 434519 <__memmove_ssse3_back+0x1b59> + 43445a: 48 39 ca cmp %rcx,%rdx + 43445d: 77 03 ja 434462 <__memmove_ssse3_back+0x1aa2> + 43445f: 48 89 d1 mov %rdx,%rcx + 434462: 48 29 ca sub %rcx,%rdx + 434465: 48 81 fa 00 10 00 00 cmp $0x1000,%rdx + 43446c: 0f 86 a4 00 00 00 jbe 434516 <__memmove_ssse3_back+0x1b56> + 434472: 49 89 c9 mov %rcx,%r9 + 434475: 49 c1 e1 03 shl $0x3,%r9 + 434479: 4c 39 ca cmp %r9,%rdx + 43447c: 76 06 jbe 434484 <__memmove_ssse3_back+0x1ac4> + 43447e: 48 01 ca add %rcx,%rdx + 434481: 48 31 c9 xor %rcx,%rcx + 434484: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 43448b: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 434492: 0f 18 8e 00 fe ff ff prefetcht0 -0x200(%rsi) + 434499: 0f 18 8e 00 fd ff ff prefetcht0 -0x300(%rsi) + 4344a0: f3 0f 6f 4e f0 movdqu -0x10(%rsi),%xmm1 + 4344a5: f3 0f 6f 56 e0 movdqu -0x20(%rsi),%xmm2 + 4344aa: f3 0f 6f 5e d0 movdqu -0x30(%rsi),%xmm3 + 4344af: f3 0f 6f 66 c0 movdqu -0x40(%rsi),%xmm4 + 4344b4: f3 0f 6f 6e b0 movdqu -0x50(%rsi),%xmm5 + 4344b9: f3 0f 6f 76 a0 movdqu -0x60(%rsi),%xmm6 + 4344be: f3 0f 6f 7e 90 movdqu -0x70(%rsi),%xmm7 + 4344c3: f3 44 0f 6f 46 80 movdqu -0x80(%rsi),%xmm8 + 4344c9: 0f ae e8 lfence + 4344cc: 66 0f e7 4f f0 movntdq %xmm1,-0x10(%rdi) + 4344d1: 66 0f e7 57 e0 movntdq %xmm2,-0x20(%rdi) + 4344d6: 66 0f e7 5f d0 movntdq %xmm3,-0x30(%rdi) + 4344db: 66 0f e7 67 c0 movntdq %xmm4,-0x40(%rdi) + 4344e0: 66 0f e7 6f b0 movntdq %xmm5,-0x50(%rdi) + 4344e5: 66 0f e7 77 a0 movntdq %xmm6,-0x60(%rdi) + 4344ea: 66 0f e7 7f 90 movntdq %xmm7,-0x70(%rdi) + 4344ef: 66 44 0f e7 47 80 movntdq %xmm8,-0x80(%rdi) + 4344f5: 48 8d 76 80 lea -0x80(%rsi),%rsi + 4344f9: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 4344fd: 73 8c jae 43448b <__memmove_ssse3_back+0x1acb> + 4344ff: 0f ae f8 sfence + 434502: 48 81 f9 80 00 00 00 cmp $0x80,%rcx + 434509: 0f 82 90 00 00 00 jb 43459f <__memmove_ssse3_back+0x1bdf> + 43450f: 48 81 c2 80 00 00 00 add $0x80,%rdx + 434516: 48 01 ca add %rcx,%rdx + 434519: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 434520: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) + 434527: 0f 18 86 80 fd ff ff prefetchnta -0x280(%rsi) + 43452e: 0f 18 87 40 fe ff ff prefetchnta -0x1c0(%rdi) + 434535: 0f 18 87 80 fd ff ff prefetchnta -0x280(%rdi) + 43453c: 48 81 ea 80 00 00 00 sub $0x80,%rdx + 434543: f3 0f 6f 4e f0 movdqu -0x10(%rsi),%xmm1 + 434548: f3 0f 6f 56 e0 movdqu -0x20(%rsi),%xmm2 + 43454d: f3 0f 6f 5e d0 movdqu -0x30(%rsi),%xmm3 + 434552: f3 0f 6f 66 c0 movdqu -0x40(%rsi),%xmm4 + 434557: f3 0f 6f 6e b0 movdqu -0x50(%rsi),%xmm5 + 43455c: f3 0f 6f 76 a0 movdqu -0x60(%rsi),%xmm6 + 434561: f3 0f 6f 7e 90 movdqu -0x70(%rsi),%xmm7 + 434566: f3 44 0f 6f 46 80 movdqu -0x80(%rsi),%xmm8 + 43456c: 66 0f 7f 4f f0 movdqa %xmm1,-0x10(%rdi) + 434571: 66 0f 7f 57 e0 movdqa %xmm2,-0x20(%rdi) + 434576: 66 0f 7f 5f d0 movdqa %xmm3,-0x30(%rdi) + 43457b: 66 0f 7f 67 c0 movdqa %xmm4,-0x40(%rdi) + 434580: 66 0f 7f 6f b0 movdqa %xmm5,-0x50(%rdi) + 434585: 66 0f 7f 77 a0 movdqa %xmm6,-0x60(%rdi) + 43458a: 66 0f 7f 7f 90 movdqa %xmm7,-0x70(%rdi) + 43458f: 66 44 0f 7f 47 80 movdqa %xmm8,-0x80(%rdi) + 434595: 48 8d 76 80 lea -0x80(%rsi),%rsi + 434599: 48 8d 7f 80 lea -0x80(%rdi),%rdi + 43459d: 73 81 jae 434520 <__memmove_ssse3_back+0x1b60> + 43459f: f3 41 0f 7f 00 movdqu %xmm0,(%r8) + 4345a4: 48 81 c2 80 00 00 00 add $0x80,%rdx + 4345ab: 48 29 d6 sub %rdx,%rsi + 4345ae: 48 29 d7 sub %rdx,%rdi + 4345b1: 4c 8d 1d b8 ef 06 00 lea 0x6efb8(%rip),%r11 # 4a3570 + 4345b8: 49 63 14 93 movslq (%r11,%rdx,4),%rdx + 4345bc: 49 8d 14 13 lea (%r11,%rdx,1),%rdx + 4345c0: ff e2 jmpq *%rdx + 4345c2: 0f 0b ud2 + 4345c4: 66 90 xchg %ax,%ax + 4345c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4345cd: 00 00 00 + 4345d0: f2 0f f0 46 80 lddqu -0x80(%rsi),%xmm0 + 4345d5: f3 0f 7f 47 80 movdqu %xmm0,-0x80(%rdi) + 4345da: f2 0f f0 46 90 lddqu -0x70(%rsi),%xmm0 + 4345df: f3 0f 7f 47 90 movdqu %xmm0,-0x70(%rdi) + 4345e4: f2 0f f0 46 a0 lddqu -0x60(%rsi),%xmm0 + 4345e9: f3 0f 7f 47 a0 movdqu %xmm0,-0x60(%rdi) + 4345ee: f2 0f f0 46 b0 lddqu -0x50(%rsi),%xmm0 + 4345f3: f3 0f 7f 47 b0 movdqu %xmm0,-0x50(%rdi) + 4345f8: f2 0f f0 46 c0 lddqu -0x40(%rsi),%xmm0 + 4345fd: f3 0f 7f 47 c0 movdqu %xmm0,-0x40(%rdi) + 434602: f2 0f f0 46 d0 lddqu -0x30(%rsi),%xmm0 + 434607: f3 0f 7f 47 d0 movdqu %xmm0,-0x30(%rdi) + 43460c: f2 0f f0 46 e0 lddqu -0x20(%rsi),%xmm0 + 434611: f3 0f 7f 47 e0 movdqu %xmm0,-0x20(%rdi) + 434616: f2 0f f0 46 f0 lddqu -0x10(%rsi),%xmm0 + 43461b: f3 0f 7f 47 f0 movdqu %xmm0,-0x10(%rdi) + 434620: c3 retq + 434621: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 434626: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43462d: 00 00 00 + 434630: f2 0f f0 86 71 ff ff lddqu -0x8f(%rsi),%xmm0 + 434637: ff + 434638: f3 0f 7f 87 71 ff ff movdqu %xmm0,-0x8f(%rdi) + 43463f: ff + 434640: f2 0f f0 46 81 lddqu -0x7f(%rsi),%xmm0 + 434645: f3 0f 7f 47 81 movdqu %xmm0,-0x7f(%rdi) + 43464a: f2 0f f0 46 91 lddqu -0x6f(%rsi),%xmm0 + 43464f: f3 0f 7f 47 91 movdqu %xmm0,-0x6f(%rdi) + 434654: f2 0f f0 46 a1 lddqu -0x5f(%rsi),%xmm0 + 434659: f3 0f 7f 47 a1 movdqu %xmm0,-0x5f(%rdi) + 43465e: f2 0f f0 46 b1 lddqu -0x4f(%rsi),%xmm0 + 434663: f3 0f 7f 47 b1 movdqu %xmm0,-0x4f(%rdi) + 434668: f2 0f f0 46 c1 lddqu -0x3f(%rsi),%xmm0 + 43466d: f3 0f 7f 47 c1 movdqu %xmm0,-0x3f(%rdi) + 434672: f2 0f f0 46 d1 lddqu -0x2f(%rsi),%xmm0 + 434677: f3 0f 7f 47 d1 movdqu %xmm0,-0x2f(%rdi) + 43467c: f2 0f f0 46 e1 lddqu -0x1f(%rsi),%xmm0 + 434681: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 + 434686: f3 0f 7f 47 e1 movdqu %xmm0,-0x1f(%rdi) + 43468b: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) + 434690: c3 retq + 434691: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 434696: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43469d: 00 00 00 + 4346a0: 48 8b 56 f1 mov -0xf(%rsi),%rdx + 4346a4: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 4346a8: 48 89 57 f1 mov %rdx,-0xf(%rdi) + 4346ac: 48 89 4f f8 mov %rcx,-0x8(%rdi) + 4346b0: c3 retq + 4346b1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4346b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4346bd: 00 00 00 + 4346c0: f2 0f f0 86 72 ff ff lddqu -0x8e(%rsi),%xmm0 + 4346c7: ff + 4346c8: f3 0f 7f 87 72 ff ff movdqu %xmm0,-0x8e(%rdi) + 4346cf: ff + 4346d0: f2 0f f0 46 82 lddqu -0x7e(%rsi),%xmm0 + 4346d5: f3 0f 7f 47 82 movdqu %xmm0,-0x7e(%rdi) + 4346da: f2 0f f0 46 92 lddqu -0x6e(%rsi),%xmm0 + 4346df: f3 0f 7f 47 92 movdqu %xmm0,-0x6e(%rdi) + 4346e4: f2 0f f0 46 a2 lddqu -0x5e(%rsi),%xmm0 + 4346e9: f3 0f 7f 47 a2 movdqu %xmm0,-0x5e(%rdi) + 4346ee: f2 0f f0 46 b2 lddqu -0x4e(%rsi),%xmm0 + 4346f3: f3 0f 7f 47 b2 movdqu %xmm0,-0x4e(%rdi) + 4346f8: f2 0f f0 46 c2 lddqu -0x3e(%rsi),%xmm0 + 4346fd: f3 0f 7f 47 c2 movdqu %xmm0,-0x3e(%rdi) + 434702: f2 0f f0 46 d2 lddqu -0x2e(%rsi),%xmm0 + 434707: f3 0f 7f 47 d2 movdqu %xmm0,-0x2e(%rdi) + 43470c: f2 0f f0 46 e2 lddqu -0x1e(%rsi),%xmm0 + 434711: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 + 434716: f3 0f 7f 47 e2 movdqu %xmm0,-0x1e(%rdi) + 43471b: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) + 434720: c3 retq + 434721: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 434726: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43472d: 00 00 00 + 434730: 48 8b 56 f2 mov -0xe(%rsi),%rdx + 434734: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 434738: 48 89 57 f2 mov %rdx,-0xe(%rdi) + 43473c: 48 89 4f f8 mov %rcx,-0x8(%rdi) + 434740: c3 retq + 434741: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 434746: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43474d: 00 00 00 + 434750: f2 0f f0 86 73 ff ff lddqu -0x8d(%rsi),%xmm0 + 434757: ff + 434758: f3 0f 7f 87 73 ff ff movdqu %xmm0,-0x8d(%rdi) + 43475f: ff + 434760: f2 0f f0 46 83 lddqu -0x7d(%rsi),%xmm0 + 434765: f3 0f 7f 47 83 movdqu %xmm0,-0x7d(%rdi) + 43476a: f2 0f f0 46 93 lddqu -0x6d(%rsi),%xmm0 + 43476f: f3 0f 7f 47 93 movdqu %xmm0,-0x6d(%rdi) + 434774: f2 0f f0 46 a3 lddqu -0x5d(%rsi),%xmm0 + 434779: f3 0f 7f 47 a3 movdqu %xmm0,-0x5d(%rdi) + 43477e: f2 0f f0 46 b3 lddqu -0x4d(%rsi),%xmm0 + 434783: f3 0f 7f 47 b3 movdqu %xmm0,-0x4d(%rdi) + 434788: f2 0f f0 46 c3 lddqu -0x3d(%rsi),%xmm0 + 43478d: f3 0f 7f 47 c3 movdqu %xmm0,-0x3d(%rdi) + 434792: f2 0f f0 46 d3 lddqu -0x2d(%rsi),%xmm0 + 434797: f3 0f 7f 47 d3 movdqu %xmm0,-0x2d(%rdi) + 43479c: f2 0f f0 46 e3 lddqu -0x1d(%rsi),%xmm0 + 4347a1: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 + 4347a6: f3 0f 7f 47 e3 movdqu %xmm0,-0x1d(%rdi) + 4347ab: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) + 4347b0: c3 retq + 4347b1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4347b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4347bd: 00 00 00 + 4347c0: 48 8b 56 f3 mov -0xd(%rsi),%rdx + 4347c4: 48 8b 4e f8 mov -0x8(%rsi),%rcx + 4347c8: 48 89 57 f3 mov %rdx,-0xd(%rdi) + 4347cc: 48 89 4f f8 mov %rcx,-0x8(%rdi) + 4347d0: c3 retq + 4347d1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4347d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4347dd: 00 00 00 + 4347e0: f2 0f f0 86 74 ff ff lddqu -0x8c(%rsi),%xmm0 + 4347e7: ff + 4347e8: f3 0f 7f 87 74 ff ff movdqu %xmm0,-0x8c(%rdi) + 4347ef: ff + 4347f0: f2 0f f0 46 84 lddqu -0x7c(%rsi),%xmm0 + 4347f5: f3 0f 7f 47 84 movdqu %xmm0,-0x7c(%rdi) + 4347fa: f2 0f f0 46 94 lddqu -0x6c(%rsi),%xmm0 + 4347ff: f3 0f 7f 47 94 movdqu %xmm0,-0x6c(%rdi) + 434804: f2 0f f0 46 a4 lddqu -0x5c(%rsi),%xmm0 + 434809: f3 0f 7f 47 a4 movdqu %xmm0,-0x5c(%rdi) + 43480e: f2 0f f0 46 b4 lddqu -0x4c(%rsi),%xmm0 + 434813: f3 0f 7f 47 b4 movdqu %xmm0,-0x4c(%rdi) + 434818: f2 0f f0 46 c4 lddqu -0x3c(%rsi),%xmm0 + 43481d: f3 0f 7f 47 c4 movdqu %xmm0,-0x3c(%rdi) + 434822: f2 0f f0 46 d4 lddqu -0x2c(%rsi),%xmm0 + 434827: f3 0f 7f 47 d4 movdqu %xmm0,-0x2c(%rdi) + 43482c: f2 0f f0 46 e4 lddqu -0x1c(%rsi),%xmm0 + 434831: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 + 434836: f3 0f 7f 47 e4 movdqu %xmm0,-0x1c(%rdi) + 43483b: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) + 434840: c3 retq + 434841: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 434846: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43484d: 00 00 00 + 434850: 48 8b 56 f4 mov -0xc(%rsi),%rdx + 434854: 8b 4e fc mov -0x4(%rsi),%ecx + 434857: 48 89 57 f4 mov %rdx,-0xc(%rdi) + 43485b: 89 4f fc mov %ecx,-0x4(%rdi) + 43485e: c3 retq + 43485f: 90 nop + 434860: f2 0f f0 86 75 ff ff lddqu -0x8b(%rsi),%xmm0 + 434867: ff + 434868: f3 0f 7f 87 75 ff ff movdqu %xmm0,-0x8b(%rdi) + 43486f: ff + 434870: f2 0f f0 46 85 lddqu -0x7b(%rsi),%xmm0 + 434875: f3 0f 7f 47 85 movdqu %xmm0,-0x7b(%rdi) + 43487a: f2 0f f0 46 95 lddqu -0x6b(%rsi),%xmm0 + 43487f: f3 0f 7f 47 95 movdqu %xmm0,-0x6b(%rdi) + 434884: f2 0f f0 46 a5 lddqu -0x5b(%rsi),%xmm0 + 434889: f3 0f 7f 47 a5 movdqu %xmm0,-0x5b(%rdi) + 43488e: f2 0f f0 46 b5 lddqu -0x4b(%rsi),%xmm0 + 434893: f3 0f 7f 47 b5 movdqu %xmm0,-0x4b(%rdi) + 434898: f2 0f f0 46 c5 lddqu -0x3b(%rsi),%xmm0 + 43489d: f3 0f 7f 47 c5 movdqu %xmm0,-0x3b(%rdi) + 4348a2: f2 0f f0 46 d5 lddqu -0x2b(%rsi),%xmm0 + 4348a7: f3 0f 7f 47 d5 movdqu %xmm0,-0x2b(%rdi) + 4348ac: f2 0f f0 46 e5 lddqu -0x1b(%rsi),%xmm0 + 4348b1: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 + 4348b6: f3 0f 7f 47 e5 movdqu %xmm0,-0x1b(%rdi) + 4348bb: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) + 4348c0: c3 retq + 4348c1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4348c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4348cd: 00 00 00 + 4348d0: 48 8b 56 f5 mov -0xb(%rsi),%rdx + 4348d4: 8b 4e fc mov -0x4(%rsi),%ecx + 4348d7: 48 89 57 f5 mov %rdx,-0xb(%rdi) + 4348db: 89 4f fc mov %ecx,-0x4(%rdi) + 4348de: c3 retq + 4348df: 90 nop + 4348e0: f2 0f f0 86 76 ff ff lddqu -0x8a(%rsi),%xmm0 + 4348e7: ff + 4348e8: f3 0f 7f 87 76 ff ff movdqu %xmm0,-0x8a(%rdi) + 4348ef: ff + 4348f0: f2 0f f0 46 86 lddqu -0x7a(%rsi),%xmm0 + 4348f5: f3 0f 7f 47 86 movdqu %xmm0,-0x7a(%rdi) + 4348fa: f2 0f f0 46 96 lddqu -0x6a(%rsi),%xmm0 + 4348ff: f3 0f 7f 47 96 movdqu %xmm0,-0x6a(%rdi) + 434904: f2 0f f0 46 a6 lddqu -0x5a(%rsi),%xmm0 + 434909: f3 0f 7f 47 a6 movdqu %xmm0,-0x5a(%rdi) + 43490e: f2 0f f0 46 b6 lddqu -0x4a(%rsi),%xmm0 + 434913: f3 0f 7f 47 b6 movdqu %xmm0,-0x4a(%rdi) + 434918: f2 0f f0 46 c6 lddqu -0x3a(%rsi),%xmm0 + 43491d: f3 0f 7f 47 c6 movdqu %xmm0,-0x3a(%rdi) + 434922: f2 0f f0 46 d6 lddqu -0x2a(%rsi),%xmm0 + 434927: f3 0f 7f 47 d6 movdqu %xmm0,-0x2a(%rdi) + 43492c: f2 0f f0 46 e6 lddqu -0x1a(%rsi),%xmm0 + 434931: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 + 434936: f3 0f 7f 47 e6 movdqu %xmm0,-0x1a(%rdi) + 43493b: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) + 434940: c3 retq + 434941: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 434946: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43494d: 00 00 00 + 434950: 48 8b 56 f6 mov -0xa(%rsi),%rdx + 434954: 8b 4e fc mov -0x4(%rsi),%ecx + 434957: 48 89 57 f6 mov %rdx,-0xa(%rdi) + 43495b: 89 4f fc mov %ecx,-0x4(%rdi) + 43495e: c3 retq + 43495f: 90 nop + 434960: f2 0f f0 86 77 ff ff lddqu -0x89(%rsi),%xmm0 + 434967: ff + 434968: f3 0f 7f 87 77 ff ff movdqu %xmm0,-0x89(%rdi) + 43496f: ff + 434970: f2 0f f0 46 87 lddqu -0x79(%rsi),%xmm0 + 434975: f3 0f 7f 47 87 movdqu %xmm0,-0x79(%rdi) + 43497a: f2 0f f0 46 97 lddqu -0x69(%rsi),%xmm0 + 43497f: f3 0f 7f 47 97 movdqu %xmm0,-0x69(%rdi) + 434984: f2 0f f0 46 a7 lddqu -0x59(%rsi),%xmm0 + 434989: f3 0f 7f 47 a7 movdqu %xmm0,-0x59(%rdi) + 43498e: f2 0f f0 46 b7 lddqu -0x49(%rsi),%xmm0 + 434993: f3 0f 7f 47 b7 movdqu %xmm0,-0x49(%rdi) + 434998: f2 0f f0 46 c7 lddqu -0x39(%rsi),%xmm0 + 43499d: f3 0f 7f 47 c7 movdqu %xmm0,-0x39(%rdi) + 4349a2: f2 0f f0 46 d7 lddqu -0x29(%rsi),%xmm0 + 4349a7: f3 0f 7f 47 d7 movdqu %xmm0,-0x29(%rdi) + 4349ac: f2 0f f0 46 e7 lddqu -0x19(%rsi),%xmm0 + 4349b1: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 + 4349b6: f3 0f 7f 47 e7 movdqu %xmm0,-0x19(%rdi) + 4349bb: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) + 4349c0: c3 retq + 4349c1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4349c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4349cd: 00 00 00 + 4349d0: 48 8b 56 f7 mov -0x9(%rsi),%rdx + 4349d4: 8b 4e fc mov -0x4(%rsi),%ecx + 4349d7: 48 89 57 f7 mov %rdx,-0x9(%rdi) + 4349db: 89 4f fc mov %ecx,-0x4(%rdi) + 4349de: c3 retq + 4349df: 90 nop + 4349e0: f2 0f f0 86 78 ff ff lddqu -0x88(%rsi),%xmm0 + 4349e7: ff + 4349e8: f3 0f 7f 87 78 ff ff movdqu %xmm0,-0x88(%rdi) + 4349ef: ff + 4349f0: f2 0f f0 46 88 lddqu -0x78(%rsi),%xmm0 + 4349f5: f3 0f 7f 47 88 movdqu %xmm0,-0x78(%rdi) + 4349fa: f2 0f f0 46 98 lddqu -0x68(%rsi),%xmm0 + 4349ff: f3 0f 7f 47 98 movdqu %xmm0,-0x68(%rdi) + 434a04: f2 0f f0 46 a8 lddqu -0x58(%rsi),%xmm0 + 434a09: f3 0f 7f 47 a8 movdqu %xmm0,-0x58(%rdi) + 434a0e: f2 0f f0 46 b8 lddqu -0x48(%rsi),%xmm0 + 434a13: f3 0f 7f 47 b8 movdqu %xmm0,-0x48(%rdi) + 434a18: f2 0f f0 46 c8 lddqu -0x38(%rsi),%xmm0 + 434a1d: f3 0f 7f 47 c8 movdqu %xmm0,-0x38(%rdi) + 434a22: f2 0f f0 46 d8 lddqu -0x28(%rsi),%xmm0 + 434a27: f3 0f 7f 47 d8 movdqu %xmm0,-0x28(%rdi) + 434a2c: f2 0f f0 46 e8 lddqu -0x18(%rsi),%xmm0 + 434a31: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 + 434a36: f3 0f 7f 47 e8 movdqu %xmm0,-0x18(%rdi) + 434a3b: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) + 434a40: c3 retq + 434a41: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 434a46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 434a4d: 00 00 00 + 434a50: 48 8b 56 f8 mov -0x8(%rsi),%rdx + 434a54: 48 89 57 f8 mov %rdx,-0x8(%rdi) + 434a58: c3 retq + 434a59: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 434a60: f2 0f f0 86 79 ff ff lddqu -0x87(%rsi),%xmm0 + 434a67: ff + 434a68: f3 0f 7f 87 79 ff ff movdqu %xmm0,-0x87(%rdi) + 434a6f: ff + 434a70: f2 0f f0 46 89 lddqu -0x77(%rsi),%xmm0 + 434a75: f3 0f 7f 47 89 movdqu %xmm0,-0x77(%rdi) + 434a7a: f2 0f f0 46 99 lddqu -0x67(%rsi),%xmm0 + 434a7f: f3 0f 7f 47 99 movdqu %xmm0,-0x67(%rdi) + 434a84: f2 0f f0 46 a9 lddqu -0x57(%rsi),%xmm0 + 434a89: f3 0f 7f 47 a9 movdqu %xmm0,-0x57(%rdi) + 434a8e: f2 0f f0 46 b9 lddqu -0x47(%rsi),%xmm0 + 434a93: f3 0f 7f 47 b9 movdqu %xmm0,-0x47(%rdi) + 434a98: f2 0f f0 46 c9 lddqu -0x37(%rsi),%xmm0 + 434a9d: f3 0f 7f 47 c9 movdqu %xmm0,-0x37(%rdi) + 434aa2: f2 0f f0 46 d9 lddqu -0x27(%rsi),%xmm0 + 434aa7: f3 0f 7f 47 d9 movdqu %xmm0,-0x27(%rdi) + 434aac: f2 0f f0 46 e9 lddqu -0x17(%rsi),%xmm0 + 434ab1: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 + 434ab6: f3 0f 7f 47 e9 movdqu %xmm0,-0x17(%rdi) + 434abb: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) + 434ac0: c3 retq + 434ac1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 434ac6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 434acd: 00 00 00 + 434ad0: 8b 56 f9 mov -0x7(%rsi),%edx + 434ad3: 8b 4e fc mov -0x4(%rsi),%ecx + 434ad6: 89 57 f9 mov %edx,-0x7(%rdi) + 434ad9: 89 4f fc mov %ecx,-0x4(%rdi) + 434adc: c3 retq + 434add: 0f 1f 00 nopl (%rax) + 434ae0: f2 0f f0 86 7a ff ff lddqu -0x86(%rsi),%xmm0 + 434ae7: ff + 434ae8: f3 0f 7f 87 7a ff ff movdqu %xmm0,-0x86(%rdi) + 434aef: ff + 434af0: f2 0f f0 46 8a lddqu -0x76(%rsi),%xmm0 + 434af5: f3 0f 7f 47 8a movdqu %xmm0,-0x76(%rdi) + 434afa: f2 0f f0 46 9a lddqu -0x66(%rsi),%xmm0 + 434aff: f3 0f 7f 47 9a movdqu %xmm0,-0x66(%rdi) + 434b04: f2 0f f0 46 aa lddqu -0x56(%rsi),%xmm0 + 434b09: f3 0f 7f 47 aa movdqu %xmm0,-0x56(%rdi) + 434b0e: f2 0f f0 46 ba lddqu -0x46(%rsi),%xmm0 + 434b13: f3 0f 7f 47 ba movdqu %xmm0,-0x46(%rdi) + 434b18: f2 0f f0 46 ca lddqu -0x36(%rsi),%xmm0 + 434b1d: f3 0f 7f 47 ca movdqu %xmm0,-0x36(%rdi) + 434b22: f2 0f f0 46 da lddqu -0x26(%rsi),%xmm0 + 434b27: f3 0f 7f 47 da movdqu %xmm0,-0x26(%rdi) + 434b2c: f2 0f f0 46 ea lddqu -0x16(%rsi),%xmm0 + 434b31: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 + 434b36: f3 0f 7f 47 ea movdqu %xmm0,-0x16(%rdi) + 434b3b: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) + 434b40: c3 retq + 434b41: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 434b46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 434b4d: 00 00 00 + 434b50: 8b 56 fa mov -0x6(%rsi),%edx + 434b53: 8b 4e fc mov -0x4(%rsi),%ecx + 434b56: 89 57 fa mov %edx,-0x6(%rdi) + 434b59: 89 4f fc mov %ecx,-0x4(%rdi) + 434b5c: c3 retq + 434b5d: 0f 1f 00 nopl (%rax) + 434b60: f2 0f f0 86 7b ff ff lddqu -0x85(%rsi),%xmm0 + 434b67: ff + 434b68: f3 0f 7f 87 7b ff ff movdqu %xmm0,-0x85(%rdi) + 434b6f: ff + 434b70: f2 0f f0 46 8b lddqu -0x75(%rsi),%xmm0 + 434b75: f3 0f 7f 47 8b movdqu %xmm0,-0x75(%rdi) + 434b7a: f2 0f f0 46 9b lddqu -0x65(%rsi),%xmm0 + 434b7f: f3 0f 7f 47 9b movdqu %xmm0,-0x65(%rdi) + 434b84: f2 0f f0 46 ab lddqu -0x55(%rsi),%xmm0 + 434b89: f3 0f 7f 47 ab movdqu %xmm0,-0x55(%rdi) + 434b8e: f2 0f f0 46 bb lddqu -0x45(%rsi),%xmm0 + 434b93: f3 0f 7f 47 bb movdqu %xmm0,-0x45(%rdi) + 434b98: f2 0f f0 46 cb lddqu -0x35(%rsi),%xmm0 + 434b9d: f3 0f 7f 47 cb movdqu %xmm0,-0x35(%rdi) + 434ba2: f2 0f f0 46 db lddqu -0x25(%rsi),%xmm0 + 434ba7: f3 0f 7f 47 db movdqu %xmm0,-0x25(%rdi) + 434bac: f2 0f f0 46 eb lddqu -0x15(%rsi),%xmm0 + 434bb1: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 + 434bb6: f3 0f 7f 47 eb movdqu %xmm0,-0x15(%rdi) + 434bbb: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) + 434bc0: c3 retq + 434bc1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 434bc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 434bcd: 00 00 00 + 434bd0: 8b 56 fb mov -0x5(%rsi),%edx + 434bd3: 8b 4e fc mov -0x4(%rsi),%ecx + 434bd6: 89 57 fb mov %edx,-0x5(%rdi) + 434bd9: 89 4f fc mov %ecx,-0x4(%rdi) + 434bdc: c3 retq + 434bdd: 0f 1f 00 nopl (%rax) + 434be0: f2 0f f0 86 7c ff ff lddqu -0x84(%rsi),%xmm0 + 434be7: ff + 434be8: f3 0f 7f 87 7c ff ff movdqu %xmm0,-0x84(%rdi) + 434bef: ff + 434bf0: f2 0f f0 46 8c lddqu -0x74(%rsi),%xmm0 + 434bf5: f3 0f 7f 47 8c movdqu %xmm0,-0x74(%rdi) + 434bfa: f2 0f f0 46 9c lddqu -0x64(%rsi),%xmm0 + 434bff: f3 0f 7f 47 9c movdqu %xmm0,-0x64(%rdi) + 434c04: f2 0f f0 46 ac lddqu -0x54(%rsi),%xmm0 + 434c09: f3 0f 7f 47 ac movdqu %xmm0,-0x54(%rdi) + 434c0e: f2 0f f0 46 bc lddqu -0x44(%rsi),%xmm0 + 434c13: f3 0f 7f 47 bc movdqu %xmm0,-0x44(%rdi) + 434c18: f2 0f f0 46 cc lddqu -0x34(%rsi),%xmm0 + 434c1d: f3 0f 7f 47 cc movdqu %xmm0,-0x34(%rdi) + 434c22: f2 0f f0 46 dc lddqu -0x24(%rsi),%xmm0 + 434c27: f3 0f 7f 47 dc movdqu %xmm0,-0x24(%rdi) + 434c2c: f2 0f f0 46 ec lddqu -0x14(%rsi),%xmm0 + 434c31: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 + 434c36: f3 0f 7f 47 ec movdqu %xmm0,-0x14(%rdi) + 434c3b: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) + 434c40: c3 retq + 434c41: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 434c46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 434c4d: 00 00 00 + 434c50: 8b 56 fc mov -0x4(%rsi),%edx + 434c53: 89 57 fc mov %edx,-0x4(%rdi) + 434c56: c3 retq + 434c57: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 434c5e: 00 00 + 434c60: f2 0f f0 86 7d ff ff lddqu -0x83(%rsi),%xmm0 + 434c67: ff + 434c68: f3 0f 7f 87 7d ff ff movdqu %xmm0,-0x83(%rdi) + 434c6f: ff + 434c70: f2 0f f0 46 8d lddqu -0x73(%rsi),%xmm0 + 434c75: f3 0f 7f 47 8d movdqu %xmm0,-0x73(%rdi) + 434c7a: f2 0f f0 46 9d lddqu -0x63(%rsi),%xmm0 + 434c7f: f3 0f 7f 47 9d movdqu %xmm0,-0x63(%rdi) + 434c84: f2 0f f0 46 ad lddqu -0x53(%rsi),%xmm0 + 434c89: f3 0f 7f 47 ad movdqu %xmm0,-0x53(%rdi) + 434c8e: f2 0f f0 46 bd lddqu -0x43(%rsi),%xmm0 + 434c93: f3 0f 7f 47 bd movdqu %xmm0,-0x43(%rdi) + 434c98: f2 0f f0 46 cd lddqu -0x33(%rsi),%xmm0 + 434c9d: f3 0f 7f 47 cd movdqu %xmm0,-0x33(%rdi) + 434ca2: f2 0f f0 46 dd lddqu -0x23(%rsi),%xmm0 + 434ca7: f3 0f 7f 47 dd movdqu %xmm0,-0x23(%rdi) + 434cac: f2 0f f0 46 ed lddqu -0x13(%rsi),%xmm0 + 434cb1: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 + 434cb6: f3 0f 7f 47 ed movdqu %xmm0,-0x13(%rdi) + 434cbb: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) + 434cc0: c3 retq + 434cc1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 434cc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 434ccd: 00 00 00 + 434cd0: 66 8b 56 fd mov -0x3(%rsi),%dx + 434cd4: 66 8b 4e fe mov -0x2(%rsi),%cx + 434cd8: 66 89 57 fd mov %dx,-0x3(%rdi) + 434cdc: 66 89 4f fe mov %cx,-0x2(%rdi) + 434ce0: c3 retq + 434ce1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 434ce6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 434ced: 00 00 00 + 434cf0: f2 0f f0 86 7e ff ff lddqu -0x82(%rsi),%xmm0 + 434cf7: ff + 434cf8: f3 0f 7f 87 7e ff ff movdqu %xmm0,-0x82(%rdi) + 434cff: ff + 434d00: f2 0f f0 46 8e lddqu -0x72(%rsi),%xmm0 + 434d05: f3 0f 7f 47 8e movdqu %xmm0,-0x72(%rdi) + 434d0a: f2 0f f0 46 9e lddqu -0x62(%rsi),%xmm0 + 434d0f: f3 0f 7f 47 9e movdqu %xmm0,-0x62(%rdi) + 434d14: f2 0f f0 46 ae lddqu -0x52(%rsi),%xmm0 + 434d19: f3 0f 7f 47 ae movdqu %xmm0,-0x52(%rdi) + 434d1e: f2 0f f0 46 be lddqu -0x42(%rsi),%xmm0 + 434d23: f3 0f 7f 47 be movdqu %xmm0,-0x42(%rdi) + 434d28: f2 0f f0 46 ce lddqu -0x32(%rsi),%xmm0 + 434d2d: f3 0f 7f 47 ce movdqu %xmm0,-0x32(%rdi) + 434d32: f2 0f f0 46 de lddqu -0x22(%rsi),%xmm0 + 434d37: f3 0f 7f 47 de movdqu %xmm0,-0x22(%rdi) + 434d3c: f2 0f f0 46 ee lddqu -0x12(%rsi),%xmm0 + 434d41: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 + 434d46: f3 0f 7f 47 ee movdqu %xmm0,-0x12(%rdi) + 434d4b: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) + 434d50: c3 retq + 434d51: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 434d56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 434d5d: 00 00 00 + 434d60: 0f b7 56 fe movzwl -0x2(%rsi),%edx + 434d64: 66 89 57 fe mov %dx,-0x2(%rdi) + 434d68: c3 retq + 434d69: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 434d70: f2 0f f0 86 7f ff ff lddqu -0x81(%rsi),%xmm0 + 434d77: ff + 434d78: f3 0f 7f 87 7f ff ff movdqu %xmm0,-0x81(%rdi) + 434d7f: ff + 434d80: f2 0f f0 46 8f lddqu -0x71(%rsi),%xmm0 + 434d85: f3 0f 7f 47 8f movdqu %xmm0,-0x71(%rdi) + 434d8a: f2 0f f0 46 9f lddqu -0x61(%rsi),%xmm0 + 434d8f: f3 0f 7f 47 9f movdqu %xmm0,-0x61(%rdi) + 434d94: f2 0f f0 46 af lddqu -0x51(%rsi),%xmm0 + 434d99: f3 0f 7f 47 af movdqu %xmm0,-0x51(%rdi) + 434d9e: f2 0f f0 46 bf lddqu -0x41(%rsi),%xmm0 + 434da3: f3 0f 7f 47 bf movdqu %xmm0,-0x41(%rdi) + 434da8: f2 0f f0 46 cf lddqu -0x31(%rsi),%xmm0 + 434dad: f3 0f 7f 47 cf movdqu %xmm0,-0x31(%rdi) + 434db2: f2 0f f0 46 df lddqu -0x21(%rsi),%xmm0 + 434db7: f3 0f 7f 47 df movdqu %xmm0,-0x21(%rdi) + 434dbc: f2 0f f0 46 ef lddqu -0x11(%rsi),%xmm0 + 434dc1: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 + 434dc6: f3 0f 7f 47 ef movdqu %xmm0,-0x11(%rdi) + 434dcb: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) + 434dd0: c3 retq + 434dd1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 434dd6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 434ddd: 00 00 00 + 434de0: 0f b6 56 ff movzbl -0x1(%rsi),%edx + 434de4: 88 57 ff mov %dl,-0x1(%rdi) + 434de7: c3 retq + 434de8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 434def: 00 + 434df0: f2 0f f0 46 70 lddqu 0x70(%rsi),%xmm0 + 434df5: f3 0f 7f 47 70 movdqu %xmm0,0x70(%rdi) + 434dfa: f2 0f f0 46 60 lddqu 0x60(%rsi),%xmm0 + 434dff: f3 0f 7f 47 60 movdqu %xmm0,0x60(%rdi) + 434e04: f2 0f f0 46 50 lddqu 0x50(%rsi),%xmm0 + 434e09: f3 0f 7f 47 50 movdqu %xmm0,0x50(%rdi) + 434e0e: f2 0f f0 46 40 lddqu 0x40(%rsi),%xmm0 + 434e13: f3 0f 7f 47 40 movdqu %xmm0,0x40(%rdi) + 434e18: f2 0f f0 46 30 lddqu 0x30(%rsi),%xmm0 + 434e1d: f3 0f 7f 47 30 movdqu %xmm0,0x30(%rdi) + 434e22: f2 0f f0 46 20 lddqu 0x20(%rsi),%xmm0 + 434e27: f3 0f 7f 47 20 movdqu %xmm0,0x20(%rdi) + 434e2c: f2 0f f0 46 10 lddqu 0x10(%rsi),%xmm0 + 434e31: f3 0f 7f 47 10 movdqu %xmm0,0x10(%rdi) + 434e36: f2 0f f0 06 lddqu (%rsi),%xmm0 + 434e3a: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 434e3e: c3 retq + 434e3f: 90 nop + 434e40: f2 0f f0 46 7f lddqu 0x7f(%rsi),%xmm0 + 434e45: f3 0f 7f 47 7f movdqu %xmm0,0x7f(%rdi) + 434e4a: f2 0f f0 46 6f lddqu 0x6f(%rsi),%xmm0 + 434e4f: f3 0f 7f 47 6f movdqu %xmm0,0x6f(%rdi) + 434e54: f2 0f f0 46 5f lddqu 0x5f(%rsi),%xmm0 + 434e59: f3 0f 7f 47 5f movdqu %xmm0,0x5f(%rdi) + 434e5e: f2 0f f0 46 4f lddqu 0x4f(%rsi),%xmm0 + 434e63: f3 0f 7f 47 4f movdqu %xmm0,0x4f(%rdi) + 434e68: f2 0f f0 46 3f lddqu 0x3f(%rsi),%xmm0 + 434e6d: f3 0f 7f 47 3f movdqu %xmm0,0x3f(%rdi) + 434e72: f2 0f f0 46 2f lddqu 0x2f(%rsi),%xmm0 + 434e77: f3 0f 7f 47 2f movdqu %xmm0,0x2f(%rdi) + 434e7c: f2 0f f0 46 1f lddqu 0x1f(%rsi),%xmm0 + 434e81: f3 0f 7f 47 1f movdqu %xmm0,0x1f(%rdi) + 434e86: f2 0f f0 46 0f lddqu 0xf(%rsi),%xmm0 + 434e8b: f2 0f f0 0e lddqu (%rsi),%xmm1 + 434e8f: f3 0f 7f 47 0f movdqu %xmm0,0xf(%rdi) + 434e94: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 434e98: c3 retq + 434e99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 434ea0: 48 8b 56 07 mov 0x7(%rsi),%rdx + 434ea4: 48 8b 0e mov (%rsi),%rcx + 434ea7: 48 89 57 07 mov %rdx,0x7(%rdi) + 434eab: 48 89 0f mov %rcx,(%rdi) + 434eae: c3 retq + 434eaf: 90 nop + 434eb0: f2 0f f0 46 7e lddqu 0x7e(%rsi),%xmm0 + 434eb5: f3 0f 7f 47 7e movdqu %xmm0,0x7e(%rdi) + 434eba: f2 0f f0 46 6e lddqu 0x6e(%rsi),%xmm0 + 434ebf: f3 0f 7f 47 6e movdqu %xmm0,0x6e(%rdi) + 434ec4: f2 0f f0 46 5e lddqu 0x5e(%rsi),%xmm0 + 434ec9: f3 0f 7f 47 5e movdqu %xmm0,0x5e(%rdi) + 434ece: f2 0f f0 46 4e lddqu 0x4e(%rsi),%xmm0 + 434ed3: f3 0f 7f 47 4e movdqu %xmm0,0x4e(%rdi) + 434ed8: f2 0f f0 46 3e lddqu 0x3e(%rsi),%xmm0 + 434edd: f3 0f 7f 47 3e movdqu %xmm0,0x3e(%rdi) + 434ee2: f2 0f f0 46 2e lddqu 0x2e(%rsi),%xmm0 + 434ee7: f3 0f 7f 47 2e movdqu %xmm0,0x2e(%rdi) + 434eec: f2 0f f0 46 1e lddqu 0x1e(%rsi),%xmm0 + 434ef1: f3 0f 7f 47 1e movdqu %xmm0,0x1e(%rdi) + 434ef6: f2 0f f0 46 0e lddqu 0xe(%rsi),%xmm0 + 434efb: f2 0f f0 0e lddqu (%rsi),%xmm1 + 434eff: f3 0f 7f 47 0e movdqu %xmm0,0xe(%rdi) + 434f04: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 434f08: c3 retq + 434f09: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 434f10: 48 8b 56 06 mov 0x6(%rsi),%rdx + 434f14: 48 8b 0e mov (%rsi),%rcx + 434f17: 48 89 57 06 mov %rdx,0x6(%rdi) + 434f1b: 48 89 0f mov %rcx,(%rdi) + 434f1e: c3 retq + 434f1f: 90 nop + 434f20: f2 0f f0 46 7d lddqu 0x7d(%rsi),%xmm0 + 434f25: f3 0f 7f 47 7d movdqu %xmm0,0x7d(%rdi) + 434f2a: f2 0f f0 46 6d lddqu 0x6d(%rsi),%xmm0 + 434f2f: f3 0f 7f 47 6d movdqu %xmm0,0x6d(%rdi) + 434f34: f2 0f f0 46 5d lddqu 0x5d(%rsi),%xmm0 + 434f39: f3 0f 7f 47 5d movdqu %xmm0,0x5d(%rdi) + 434f3e: f2 0f f0 46 4d lddqu 0x4d(%rsi),%xmm0 + 434f43: f3 0f 7f 47 4d movdqu %xmm0,0x4d(%rdi) + 434f48: f2 0f f0 46 3d lddqu 0x3d(%rsi),%xmm0 + 434f4d: f3 0f 7f 47 3d movdqu %xmm0,0x3d(%rdi) + 434f52: f2 0f f0 46 2d lddqu 0x2d(%rsi),%xmm0 + 434f57: f3 0f 7f 47 2d movdqu %xmm0,0x2d(%rdi) + 434f5c: f2 0f f0 46 1d lddqu 0x1d(%rsi),%xmm0 + 434f61: f3 0f 7f 47 1d movdqu %xmm0,0x1d(%rdi) + 434f66: f2 0f f0 46 0d lddqu 0xd(%rsi),%xmm0 + 434f6b: f2 0f f0 0e lddqu (%rsi),%xmm1 + 434f6f: f3 0f 7f 47 0d movdqu %xmm0,0xd(%rdi) + 434f74: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 434f78: c3 retq + 434f79: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 434f80: 48 8b 56 05 mov 0x5(%rsi),%rdx + 434f84: 48 8b 0e mov (%rsi),%rcx + 434f87: 48 89 57 05 mov %rdx,0x5(%rdi) + 434f8b: 48 89 0f mov %rcx,(%rdi) + 434f8e: c3 retq + 434f8f: 90 nop + 434f90: f2 0f f0 46 7c lddqu 0x7c(%rsi),%xmm0 + 434f95: f3 0f 7f 47 7c movdqu %xmm0,0x7c(%rdi) + 434f9a: f2 0f f0 46 6c lddqu 0x6c(%rsi),%xmm0 + 434f9f: f3 0f 7f 47 6c movdqu %xmm0,0x6c(%rdi) + 434fa4: f2 0f f0 46 5c lddqu 0x5c(%rsi),%xmm0 + 434fa9: f3 0f 7f 47 5c movdqu %xmm0,0x5c(%rdi) + 434fae: f2 0f f0 46 4c lddqu 0x4c(%rsi),%xmm0 + 434fb3: f3 0f 7f 47 4c movdqu %xmm0,0x4c(%rdi) + 434fb8: f2 0f f0 46 3c lddqu 0x3c(%rsi),%xmm0 + 434fbd: f3 0f 7f 47 3c movdqu %xmm0,0x3c(%rdi) + 434fc2: f2 0f f0 46 2c lddqu 0x2c(%rsi),%xmm0 + 434fc7: f3 0f 7f 47 2c movdqu %xmm0,0x2c(%rdi) + 434fcc: f2 0f f0 46 1c lddqu 0x1c(%rsi),%xmm0 + 434fd1: f3 0f 7f 47 1c movdqu %xmm0,0x1c(%rdi) + 434fd6: f2 0f f0 46 0c lddqu 0xc(%rsi),%xmm0 + 434fdb: f2 0f f0 0e lddqu (%rsi),%xmm1 + 434fdf: f3 0f 7f 47 0c movdqu %xmm0,0xc(%rdi) + 434fe4: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 434fe8: c3 retq + 434fe9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 434ff0: 48 8b 56 04 mov 0x4(%rsi),%rdx + 434ff4: 48 8b 0e mov (%rsi),%rcx + 434ff7: 48 89 57 04 mov %rdx,0x4(%rdi) + 434ffb: 48 89 0f mov %rcx,(%rdi) + 434ffe: c3 retq + 434fff: 90 nop + 435000: f2 0f f0 46 7b lddqu 0x7b(%rsi),%xmm0 + 435005: f3 0f 7f 47 7b movdqu %xmm0,0x7b(%rdi) + 43500a: f2 0f f0 46 6b lddqu 0x6b(%rsi),%xmm0 + 43500f: f3 0f 7f 47 6b movdqu %xmm0,0x6b(%rdi) + 435014: f2 0f f0 46 5b lddqu 0x5b(%rsi),%xmm0 + 435019: f3 0f 7f 47 5b movdqu %xmm0,0x5b(%rdi) + 43501e: f2 0f f0 46 4b lddqu 0x4b(%rsi),%xmm0 + 435023: f3 0f 7f 47 4b movdqu %xmm0,0x4b(%rdi) + 435028: f2 0f f0 46 3b lddqu 0x3b(%rsi),%xmm0 + 43502d: f3 0f 7f 47 3b movdqu %xmm0,0x3b(%rdi) + 435032: f2 0f f0 46 2b lddqu 0x2b(%rsi),%xmm0 + 435037: f3 0f 7f 47 2b movdqu %xmm0,0x2b(%rdi) + 43503c: f2 0f f0 46 1b lddqu 0x1b(%rsi),%xmm0 + 435041: f3 0f 7f 47 1b movdqu %xmm0,0x1b(%rdi) + 435046: f2 0f f0 46 0b lddqu 0xb(%rsi),%xmm0 + 43504b: f2 0f f0 0e lddqu (%rsi),%xmm1 + 43504f: f3 0f 7f 47 0b movdqu %xmm0,0xb(%rdi) + 435054: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 435058: c3 retq + 435059: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 435060: 48 8b 56 03 mov 0x3(%rsi),%rdx + 435064: 48 8b 0e mov (%rsi),%rcx + 435067: 48 89 57 03 mov %rdx,0x3(%rdi) + 43506b: 48 89 0f mov %rcx,(%rdi) + 43506e: c3 retq + 43506f: 90 nop + 435070: f2 0f f0 46 7a lddqu 0x7a(%rsi),%xmm0 + 435075: f3 0f 7f 47 7a movdqu %xmm0,0x7a(%rdi) + 43507a: f2 0f f0 46 6a lddqu 0x6a(%rsi),%xmm0 + 43507f: f3 0f 7f 47 6a movdqu %xmm0,0x6a(%rdi) + 435084: f2 0f f0 46 5a lddqu 0x5a(%rsi),%xmm0 + 435089: f3 0f 7f 47 5a movdqu %xmm0,0x5a(%rdi) + 43508e: f2 0f f0 46 4a lddqu 0x4a(%rsi),%xmm0 + 435093: f3 0f 7f 47 4a movdqu %xmm0,0x4a(%rdi) + 435098: f2 0f f0 46 3a lddqu 0x3a(%rsi),%xmm0 + 43509d: f3 0f 7f 47 3a movdqu %xmm0,0x3a(%rdi) + 4350a2: f2 0f f0 46 2a lddqu 0x2a(%rsi),%xmm0 + 4350a7: f3 0f 7f 47 2a movdqu %xmm0,0x2a(%rdi) + 4350ac: f2 0f f0 46 1a lddqu 0x1a(%rsi),%xmm0 + 4350b1: f3 0f 7f 47 1a movdqu %xmm0,0x1a(%rdi) + 4350b6: f2 0f f0 46 0a lddqu 0xa(%rsi),%xmm0 + 4350bb: f2 0f f0 0e lddqu (%rsi),%xmm1 + 4350bf: f3 0f 7f 47 0a movdqu %xmm0,0xa(%rdi) + 4350c4: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 4350c8: c3 retq + 4350c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4350d0: 48 8b 56 02 mov 0x2(%rsi),%rdx + 4350d4: 48 8b 0e mov (%rsi),%rcx + 4350d7: 48 89 57 02 mov %rdx,0x2(%rdi) + 4350db: 48 89 0f mov %rcx,(%rdi) + 4350de: c3 retq + 4350df: 90 nop + 4350e0: f2 0f f0 46 79 lddqu 0x79(%rsi),%xmm0 + 4350e5: f3 0f 7f 47 79 movdqu %xmm0,0x79(%rdi) + 4350ea: f2 0f f0 46 69 lddqu 0x69(%rsi),%xmm0 + 4350ef: f3 0f 7f 47 69 movdqu %xmm0,0x69(%rdi) + 4350f4: f2 0f f0 46 59 lddqu 0x59(%rsi),%xmm0 + 4350f9: f3 0f 7f 47 59 movdqu %xmm0,0x59(%rdi) + 4350fe: f2 0f f0 46 49 lddqu 0x49(%rsi),%xmm0 + 435103: f3 0f 7f 47 49 movdqu %xmm0,0x49(%rdi) + 435108: f2 0f f0 46 39 lddqu 0x39(%rsi),%xmm0 + 43510d: f3 0f 7f 47 39 movdqu %xmm0,0x39(%rdi) + 435112: f2 0f f0 46 29 lddqu 0x29(%rsi),%xmm0 + 435117: f3 0f 7f 47 29 movdqu %xmm0,0x29(%rdi) + 43511c: f2 0f f0 46 19 lddqu 0x19(%rsi),%xmm0 + 435121: f3 0f 7f 47 19 movdqu %xmm0,0x19(%rdi) + 435126: f2 0f f0 46 09 lddqu 0x9(%rsi),%xmm0 + 43512b: f2 0f f0 0e lddqu (%rsi),%xmm1 + 43512f: f3 0f 7f 47 09 movdqu %xmm0,0x9(%rdi) + 435134: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 435138: c3 retq + 435139: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 435140: 48 8b 56 01 mov 0x1(%rsi),%rdx + 435144: 48 8b 0e mov (%rsi),%rcx + 435147: 48 89 57 01 mov %rdx,0x1(%rdi) + 43514b: 48 89 0f mov %rcx,(%rdi) + 43514e: c3 retq + 43514f: 90 nop + 435150: f2 0f f0 46 78 lddqu 0x78(%rsi),%xmm0 + 435155: f3 0f 7f 47 78 movdqu %xmm0,0x78(%rdi) + 43515a: f2 0f f0 46 68 lddqu 0x68(%rsi),%xmm0 + 43515f: f3 0f 7f 47 68 movdqu %xmm0,0x68(%rdi) + 435164: f2 0f f0 46 58 lddqu 0x58(%rsi),%xmm0 + 435169: f3 0f 7f 47 58 movdqu %xmm0,0x58(%rdi) + 43516e: f2 0f f0 46 48 lddqu 0x48(%rsi),%xmm0 + 435173: f3 0f 7f 47 48 movdqu %xmm0,0x48(%rdi) + 435178: f2 0f f0 46 38 lddqu 0x38(%rsi),%xmm0 + 43517d: f3 0f 7f 47 38 movdqu %xmm0,0x38(%rdi) + 435182: f2 0f f0 46 28 lddqu 0x28(%rsi),%xmm0 + 435187: f3 0f 7f 47 28 movdqu %xmm0,0x28(%rdi) + 43518c: f2 0f f0 46 18 lddqu 0x18(%rsi),%xmm0 + 435191: f3 0f 7f 47 18 movdqu %xmm0,0x18(%rdi) + 435196: f2 0f f0 46 08 lddqu 0x8(%rsi),%xmm0 + 43519b: f2 0f f0 0e lddqu (%rsi),%xmm1 + 43519f: f3 0f 7f 47 08 movdqu %xmm0,0x8(%rdi) + 4351a4: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 4351a8: c3 retq + 4351a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4351b0: 48 8b 16 mov (%rsi),%rdx + 4351b3: 48 89 17 mov %rdx,(%rdi) + 4351b6: c3 retq + 4351b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 4351be: 00 00 + 4351c0: f2 0f f0 46 77 lddqu 0x77(%rsi),%xmm0 + 4351c5: f3 0f 7f 47 77 movdqu %xmm0,0x77(%rdi) + 4351ca: f2 0f f0 46 67 lddqu 0x67(%rsi),%xmm0 + 4351cf: f3 0f 7f 47 67 movdqu %xmm0,0x67(%rdi) + 4351d4: f2 0f f0 46 57 lddqu 0x57(%rsi),%xmm0 + 4351d9: f3 0f 7f 47 57 movdqu %xmm0,0x57(%rdi) + 4351de: f2 0f f0 46 47 lddqu 0x47(%rsi),%xmm0 + 4351e3: f3 0f 7f 47 47 movdqu %xmm0,0x47(%rdi) + 4351e8: f2 0f f0 46 37 lddqu 0x37(%rsi),%xmm0 + 4351ed: f3 0f 7f 47 37 movdqu %xmm0,0x37(%rdi) + 4351f2: f2 0f f0 46 27 lddqu 0x27(%rsi),%xmm0 + 4351f7: f3 0f 7f 47 27 movdqu %xmm0,0x27(%rdi) + 4351fc: f2 0f f0 46 17 lddqu 0x17(%rsi),%xmm0 + 435201: f3 0f 7f 47 17 movdqu %xmm0,0x17(%rdi) + 435206: f2 0f f0 46 07 lddqu 0x7(%rsi),%xmm0 + 43520b: f2 0f f0 0e lddqu (%rsi),%xmm1 + 43520f: f3 0f 7f 47 07 movdqu %xmm0,0x7(%rdi) + 435214: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 435218: c3 retq + 435219: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 435220: 8b 56 03 mov 0x3(%rsi),%edx + 435223: 8b 0e mov (%rsi),%ecx + 435225: 89 57 03 mov %edx,0x3(%rdi) + 435228: 89 0f mov %ecx,(%rdi) + 43522a: c3 retq + 43522b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 435230: f2 0f f0 46 76 lddqu 0x76(%rsi),%xmm0 + 435235: f3 0f 7f 47 76 movdqu %xmm0,0x76(%rdi) + 43523a: f2 0f f0 46 66 lddqu 0x66(%rsi),%xmm0 + 43523f: f3 0f 7f 47 66 movdqu %xmm0,0x66(%rdi) + 435244: f2 0f f0 46 56 lddqu 0x56(%rsi),%xmm0 + 435249: f3 0f 7f 47 56 movdqu %xmm0,0x56(%rdi) + 43524e: f2 0f f0 46 46 lddqu 0x46(%rsi),%xmm0 + 435253: f3 0f 7f 47 46 movdqu %xmm0,0x46(%rdi) + 435258: f2 0f f0 46 36 lddqu 0x36(%rsi),%xmm0 + 43525d: f3 0f 7f 47 36 movdqu %xmm0,0x36(%rdi) + 435262: f2 0f f0 46 26 lddqu 0x26(%rsi),%xmm0 + 435267: f3 0f 7f 47 26 movdqu %xmm0,0x26(%rdi) + 43526c: f2 0f f0 46 16 lddqu 0x16(%rsi),%xmm0 + 435271: f3 0f 7f 47 16 movdqu %xmm0,0x16(%rdi) + 435276: f2 0f f0 46 06 lddqu 0x6(%rsi),%xmm0 + 43527b: f2 0f f0 0e lddqu (%rsi),%xmm1 + 43527f: f3 0f 7f 47 06 movdqu %xmm0,0x6(%rdi) + 435284: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 435288: c3 retq + 435289: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 435290: 8b 56 02 mov 0x2(%rsi),%edx + 435293: 8b 0e mov (%rsi),%ecx + 435295: 89 57 02 mov %edx,0x2(%rdi) + 435298: 89 0f mov %ecx,(%rdi) + 43529a: c3 retq + 43529b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4352a0: f2 0f f0 46 75 lddqu 0x75(%rsi),%xmm0 + 4352a5: f3 0f 7f 47 75 movdqu %xmm0,0x75(%rdi) + 4352aa: f2 0f f0 46 65 lddqu 0x65(%rsi),%xmm0 + 4352af: f3 0f 7f 47 65 movdqu %xmm0,0x65(%rdi) + 4352b4: f2 0f f0 46 55 lddqu 0x55(%rsi),%xmm0 + 4352b9: f3 0f 7f 47 55 movdqu %xmm0,0x55(%rdi) + 4352be: f2 0f f0 46 45 lddqu 0x45(%rsi),%xmm0 + 4352c3: f3 0f 7f 47 45 movdqu %xmm0,0x45(%rdi) + 4352c8: f2 0f f0 46 35 lddqu 0x35(%rsi),%xmm0 + 4352cd: f3 0f 7f 47 35 movdqu %xmm0,0x35(%rdi) + 4352d2: f2 0f f0 46 25 lddqu 0x25(%rsi),%xmm0 + 4352d7: f3 0f 7f 47 25 movdqu %xmm0,0x25(%rdi) + 4352dc: f2 0f f0 46 15 lddqu 0x15(%rsi),%xmm0 + 4352e1: f3 0f 7f 47 15 movdqu %xmm0,0x15(%rdi) + 4352e6: f2 0f f0 46 05 lddqu 0x5(%rsi),%xmm0 + 4352eb: f2 0f f0 0e lddqu (%rsi),%xmm1 + 4352ef: f3 0f 7f 47 05 movdqu %xmm0,0x5(%rdi) + 4352f4: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 4352f8: c3 retq + 4352f9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 435300: 8b 56 01 mov 0x1(%rsi),%edx + 435303: 8b 0e mov (%rsi),%ecx + 435305: 89 57 01 mov %edx,0x1(%rdi) + 435308: 89 0f mov %ecx,(%rdi) + 43530a: c3 retq + 43530b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 435310: f2 0f f0 46 74 lddqu 0x74(%rsi),%xmm0 + 435315: f3 0f 7f 47 74 movdqu %xmm0,0x74(%rdi) + 43531a: f2 0f f0 46 64 lddqu 0x64(%rsi),%xmm0 + 43531f: f3 0f 7f 47 64 movdqu %xmm0,0x64(%rdi) + 435324: f2 0f f0 46 54 lddqu 0x54(%rsi),%xmm0 + 435329: f3 0f 7f 47 54 movdqu %xmm0,0x54(%rdi) + 43532e: f2 0f f0 46 44 lddqu 0x44(%rsi),%xmm0 + 435333: f3 0f 7f 47 44 movdqu %xmm0,0x44(%rdi) + 435338: f2 0f f0 46 34 lddqu 0x34(%rsi),%xmm0 + 43533d: f3 0f 7f 47 34 movdqu %xmm0,0x34(%rdi) + 435342: f2 0f f0 46 24 lddqu 0x24(%rsi),%xmm0 + 435347: f3 0f 7f 47 24 movdqu %xmm0,0x24(%rdi) + 43534c: f2 0f f0 46 14 lddqu 0x14(%rsi),%xmm0 + 435351: f3 0f 7f 47 14 movdqu %xmm0,0x14(%rdi) + 435356: f2 0f f0 46 04 lddqu 0x4(%rsi),%xmm0 + 43535b: f2 0f f0 0e lddqu (%rsi),%xmm1 + 43535f: f3 0f 7f 47 04 movdqu %xmm0,0x4(%rdi) + 435364: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 435368: c3 retq + 435369: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 435370: 8b 16 mov (%rsi),%edx + 435372: 89 17 mov %edx,(%rdi) + 435374: c3 retq + 435375: 90 nop + 435376: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43537d: 00 00 00 + 435380: f2 0f f0 46 73 lddqu 0x73(%rsi),%xmm0 + 435385: f3 0f 7f 47 73 movdqu %xmm0,0x73(%rdi) + 43538a: f2 0f f0 46 63 lddqu 0x63(%rsi),%xmm0 + 43538f: f3 0f 7f 47 63 movdqu %xmm0,0x63(%rdi) + 435394: f2 0f f0 46 53 lddqu 0x53(%rsi),%xmm0 + 435399: f3 0f 7f 47 53 movdqu %xmm0,0x53(%rdi) + 43539e: f2 0f f0 46 43 lddqu 0x43(%rsi),%xmm0 + 4353a3: f3 0f 7f 47 43 movdqu %xmm0,0x43(%rdi) + 4353a8: f2 0f f0 46 33 lddqu 0x33(%rsi),%xmm0 + 4353ad: f3 0f 7f 47 33 movdqu %xmm0,0x33(%rdi) + 4353b2: f2 0f f0 46 23 lddqu 0x23(%rsi),%xmm0 + 4353b7: f3 0f 7f 47 23 movdqu %xmm0,0x23(%rdi) + 4353bc: f2 0f f0 46 13 lddqu 0x13(%rsi),%xmm0 + 4353c1: f3 0f 7f 47 13 movdqu %xmm0,0x13(%rdi) + 4353c6: f2 0f f0 46 03 lddqu 0x3(%rsi),%xmm0 + 4353cb: f2 0f f0 0e lddqu (%rsi),%xmm1 + 4353cf: f3 0f 7f 47 03 movdqu %xmm0,0x3(%rdi) + 4353d4: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 4353d8: c3 retq + 4353d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4353e0: 66 8b 56 01 mov 0x1(%rsi),%dx + 4353e4: 66 8b 0e mov (%rsi),%cx + 4353e7: 66 89 57 01 mov %dx,0x1(%rdi) + 4353eb: 66 89 0f mov %cx,(%rdi) + 4353ee: c3 retq + 4353ef: 90 nop + 4353f0: f2 0f f0 46 72 lddqu 0x72(%rsi),%xmm0 + 4353f5: f3 0f 7f 47 72 movdqu %xmm0,0x72(%rdi) + 4353fa: f2 0f f0 46 62 lddqu 0x62(%rsi),%xmm0 + 4353ff: f3 0f 7f 47 62 movdqu %xmm0,0x62(%rdi) + 435404: f2 0f f0 46 52 lddqu 0x52(%rsi),%xmm0 + 435409: f3 0f 7f 47 52 movdqu %xmm0,0x52(%rdi) + 43540e: f2 0f f0 46 42 lddqu 0x42(%rsi),%xmm0 + 435413: f3 0f 7f 47 42 movdqu %xmm0,0x42(%rdi) + 435418: f2 0f f0 46 32 lddqu 0x32(%rsi),%xmm0 + 43541d: f3 0f 7f 47 32 movdqu %xmm0,0x32(%rdi) + 435422: f2 0f f0 46 22 lddqu 0x22(%rsi),%xmm0 + 435427: f3 0f 7f 47 22 movdqu %xmm0,0x22(%rdi) + 43542c: f2 0f f0 46 12 lddqu 0x12(%rsi),%xmm0 + 435431: f3 0f 7f 47 12 movdqu %xmm0,0x12(%rdi) + 435436: f2 0f f0 46 02 lddqu 0x2(%rsi),%xmm0 + 43543b: f2 0f f0 0e lddqu (%rsi),%xmm1 + 43543f: f3 0f 7f 47 02 movdqu %xmm0,0x2(%rdi) + 435444: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 435448: c3 retq + 435449: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 435450: 0f b7 16 movzwl (%rsi),%edx + 435453: 66 89 17 mov %dx,(%rdi) + 435456: c3 retq + 435457: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43545e: 00 00 + 435460: f2 0f f0 46 71 lddqu 0x71(%rsi),%xmm0 + 435465: f3 0f 7f 47 71 movdqu %xmm0,0x71(%rdi) + 43546a: f2 0f f0 46 61 lddqu 0x61(%rsi),%xmm0 + 43546f: f3 0f 7f 47 61 movdqu %xmm0,0x61(%rdi) + 435474: f2 0f f0 46 51 lddqu 0x51(%rsi),%xmm0 + 435479: f3 0f 7f 47 51 movdqu %xmm0,0x51(%rdi) + 43547e: f2 0f f0 46 41 lddqu 0x41(%rsi),%xmm0 + 435483: f3 0f 7f 47 41 movdqu %xmm0,0x41(%rdi) + 435488: f2 0f f0 46 31 lddqu 0x31(%rsi),%xmm0 + 43548d: f3 0f 7f 47 31 movdqu %xmm0,0x31(%rdi) + 435492: f2 0f f0 46 21 lddqu 0x21(%rsi),%xmm0 + 435497: f3 0f 7f 47 21 movdqu %xmm0,0x21(%rdi) + 43549c: f2 0f f0 46 11 lddqu 0x11(%rsi),%xmm0 + 4354a1: f3 0f 7f 47 11 movdqu %xmm0,0x11(%rdi) + 4354a6: f2 0f f0 46 01 lddqu 0x1(%rsi),%xmm0 + 4354ab: f2 0f f0 0e lddqu (%rsi),%xmm1 + 4354af: f3 0f 7f 47 01 movdqu %xmm0,0x1(%rdi) + 4354b4: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 4354b8: c3 retq + 4354b9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4354c0: 0f b6 16 movzbl (%rsi),%edx + 4354c3: 88 17 mov %dl,(%rdi) + 4354c5: c3 retq + 4354c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4354cd: 00 00 00 + +00000000004354d0 <__memmove_chk_avx512_no_vzeroupper>: + 4354d0: 48 39 d1 cmp %rdx,%rcx + 4354d3: 0f 82 d7 d5 00 00 jb 442ab0 <__chk_fail> + 4354d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +00000000004354e0 <__memmove_avx512_no_vzeroupper>: + 4354e0: 48 89 f8 mov %rdi,%rax + 4354e3: 48 8d 0c 16 lea (%rsi,%rdx,1),%rcx + 4354e7: 4c 8d 0c 17 lea (%rdi,%rdx,1),%r9 + 4354eb: 48 81 fa 00 02 00 00 cmp $0x200,%rdx + 4354f2: 0f 87 5d 01 00 00 ja 435655 <__memmove_avx512_no_vzeroupper+0x175> + 4354f8: 48 83 fa 10 cmp $0x10,%rdx + 4354fc: 0f 86 0f 01 00 00 jbe 435611 <__memmove_avx512_no_vzeroupper+0x131> + 435502: 48 81 fa 00 01 00 00 cmp $0x100,%rdx + 435509: 72 6f jb 43557a <__memmove_avx512_no_vzeroupper+0x9a> + 43550b: 62 f1 7c 48 10 06 vmovups (%rsi),%zmm0 + 435511: 62 f1 7c 48 10 4e 01 vmovups 0x40(%rsi),%zmm1 + 435518: 62 f1 7c 48 10 56 02 vmovups 0x80(%rsi),%zmm2 + 43551f: 62 f1 7c 48 10 5e 03 vmovups 0xc0(%rsi),%zmm3 + 435526: 62 f1 7c 48 10 61 fc vmovups -0x100(%rcx),%zmm4 + 43552d: 62 f1 7c 48 10 69 fd vmovups -0xc0(%rcx),%zmm5 + 435534: 62 f1 7c 48 10 71 fe vmovups -0x80(%rcx),%zmm6 + 43553b: 62 f1 7c 48 10 79 ff vmovups -0x40(%rcx),%zmm7 + 435542: 62 f1 7c 48 11 07 vmovups %zmm0,(%rdi) + 435548: 62 f1 7c 48 11 4f 01 vmovups %zmm1,0x40(%rdi) + 43554f: 62 f1 7c 48 11 57 02 vmovups %zmm2,0x80(%rdi) + 435556: 62 f1 7c 48 11 5f 03 vmovups %zmm3,0xc0(%rdi) + 43555d: 62 d1 7c 48 11 61 fc vmovups %zmm4,-0x100(%r9) + 435564: 62 d1 7c 48 11 69 fd vmovups %zmm5,-0xc0(%r9) + 43556b: 62 d1 7c 48 11 71 fe vmovups %zmm6,-0x80(%r9) + 435572: 62 d1 7c 48 11 79 ff vmovups %zmm7,-0x40(%r9) + 435579: c3 retq + 43557a: 80 fa 80 cmp $0x80,%dl + 43557d: 72 37 jb 4355b6 <__memmove_avx512_no_vzeroupper+0xd6> + 43557f: 62 f1 7c 48 10 06 vmovups (%rsi),%zmm0 + 435585: 62 f1 7c 48 10 4e 01 vmovups 0x40(%rsi),%zmm1 + 43558c: 62 f1 7c 48 10 51 fe vmovups -0x80(%rcx),%zmm2 + 435593: 62 f1 7c 48 10 59 ff vmovups -0x40(%rcx),%zmm3 + 43559a: 62 f1 7c 48 11 07 vmovups %zmm0,(%rdi) + 4355a0: 62 f1 7c 48 11 4f 01 vmovups %zmm1,0x40(%rdi) + 4355a7: 62 d1 7c 48 11 51 fe vmovups %zmm2,-0x80(%r9) + 4355ae: 62 d1 7c 48 11 59 ff vmovups %zmm3,-0x40(%r9) + 4355b5: c3 retq + 4355b6: 80 fa 40 cmp $0x40,%dl + 4355b9: 72 29 jb 4355e4 <__memmove_avx512_no_vzeroupper+0x104> + 4355bb: c5 fe 6f 06 vmovdqu (%rsi),%ymm0 + 4355bf: c5 fe 6f 4e 20 vmovdqu 0x20(%rsi),%ymm1 + 4355c4: c5 fe 6f 51 c0 vmovdqu -0x40(%rcx),%ymm2 + 4355c9: c5 fe 6f 59 e0 vmovdqu -0x20(%rcx),%ymm3 + 4355ce: c5 fe 7f 07 vmovdqu %ymm0,(%rdi) + 4355d2: c5 fe 7f 4f 20 vmovdqu %ymm1,0x20(%rdi) + 4355d7: c4 c1 7e 7f 51 c0 vmovdqu %ymm2,-0x40(%r9) + 4355dd: c4 c1 7e 7f 59 e0 vmovdqu %ymm3,-0x20(%r9) + 4355e3: c3 retq + 4355e4: 80 fa 20 cmp $0x20,%dl + 4355e7: 72 14 jb 4355fd <__memmove_avx512_no_vzeroupper+0x11d> + 4355e9: c5 fe 6f 06 vmovdqu (%rsi),%ymm0 + 4355ed: c5 fe 6f 49 e0 vmovdqu -0x20(%rcx),%ymm1 + 4355f2: c5 fe 7f 07 vmovdqu %ymm0,(%rdi) + 4355f6: c4 c1 7e 7f 49 e0 vmovdqu %ymm1,-0x20(%r9) + 4355fc: c3 retq + 4355fd: c5 fa 6f 06 vmovdqu (%rsi),%xmm0 + 435601: c5 fa 6f 49 f0 vmovdqu -0x10(%rcx),%xmm1 + 435606: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) + 43560a: c4 c1 7a 7f 49 f0 vmovdqu %xmm1,-0x10(%r9) + 435610: c3 retq + 435611: 80 fa 08 cmp $0x8,%dl + 435614: 72 0f jb 435625 <__memmove_avx512_no_vzeroupper+0x145> + 435616: 48 8b 36 mov (%rsi),%rsi + 435619: 48 8b 49 f8 mov -0x8(%rcx),%rcx + 43561d: 48 89 37 mov %rsi,(%rdi) + 435620: 49 89 49 f8 mov %rcx,-0x8(%r9) + 435624: c3 retq + 435625: 80 fa 04 cmp $0x4,%dl + 435628: 72 0c jb 435636 <__memmove_avx512_no_vzeroupper+0x156> + 43562a: 8b 36 mov (%rsi),%esi + 43562c: 8b 49 fc mov -0x4(%rcx),%ecx + 43562f: 89 37 mov %esi,(%rdi) + 435631: 41 89 49 fc mov %ecx,-0x4(%r9) + 435635: c3 retq + 435636: 80 fa 02 cmp $0x2,%dl + 435639: 72 10 jb 43564b <__memmove_avx512_no_vzeroupper+0x16b> + 43563b: 66 8b 36 mov (%rsi),%si + 43563e: 66 8b 49 fe mov -0x2(%rcx),%cx + 435642: 66 89 37 mov %si,(%rdi) + 435645: 66 41 89 49 fe mov %cx,-0x2(%r9) + 43564a: c3 retq + 43564b: 80 fa 01 cmp $0x1,%dl + 43564e: 72 04 jb 435654 <__memmove_avx512_no_vzeroupper+0x174> + 435650: 8a 0e mov (%rsi),%cl + 435652: 88 0f mov %cl,(%rdi) + 435654: c3 retq + 435655: 4c 8b 05 54 5a 29 00 mov 0x295a54(%rip),%r8 # 6cb0b0 <__x86_shared_cache_size_half> + 43565c: 4c 39 c2 cmp %r8,%rdx + 43565f: 0f 83 18 04 00 00 jae 435a7d <__memmove_avx512_no_vzeroupper+0x59d> + 435665: 48 81 fa 00 04 00 00 cmp $0x400,%rdx + 43566c: 0f 87 42 01 00 00 ja 4357b4 <__memmove_avx512_no_vzeroupper+0x2d4> + 435672: 0f 18 16 prefetcht1 (%rsi) + 435675: 0f 18 56 40 prefetcht1 0x40(%rsi) + 435679: 0f 18 96 80 00 00 00 prefetcht1 0x80(%rsi) + 435680: 0f 18 96 c0 00 00 00 prefetcht1 0xc0(%rsi) + 435687: 0f 18 96 00 01 00 00 prefetcht1 0x100(%rsi) + 43568e: 0f 18 96 40 01 00 00 prefetcht1 0x140(%rsi) + 435695: 0f 18 96 80 01 00 00 prefetcht1 0x180(%rsi) + 43569c: 0f 18 96 c0 01 00 00 prefetcht1 0x1c0(%rsi) + 4356a3: 0f 18 91 00 fe ff ff prefetcht1 -0x200(%rcx) + 4356aa: 0f 18 91 40 fe ff ff prefetcht1 -0x1c0(%rcx) + 4356b1: 0f 18 91 80 fe ff ff prefetcht1 -0x180(%rcx) + 4356b8: 0f 18 91 c0 fe ff ff prefetcht1 -0x140(%rcx) + 4356bf: 0f 18 91 00 ff ff ff prefetcht1 -0x100(%rcx) + 4356c6: 0f 18 91 40 ff ff ff prefetcht1 -0xc0(%rcx) + 4356cd: 0f 18 51 80 prefetcht1 -0x80(%rcx) + 4356d1: 0f 18 51 c0 prefetcht1 -0x40(%rcx) + 4356d5: 62 f1 7c 48 10 06 vmovups (%rsi),%zmm0 + 4356db: 62 f1 7c 48 10 4e 01 vmovups 0x40(%rsi),%zmm1 + 4356e2: 62 f1 7c 48 10 56 02 vmovups 0x80(%rsi),%zmm2 + 4356e9: 62 f1 7c 48 10 5e 03 vmovups 0xc0(%rsi),%zmm3 + 4356f0: 62 f1 7c 48 10 66 04 vmovups 0x100(%rsi),%zmm4 + 4356f7: 62 f1 7c 48 10 6e 05 vmovups 0x140(%rsi),%zmm5 + 4356fe: 62 f1 7c 48 10 76 06 vmovups 0x180(%rsi),%zmm6 + 435705: 62 f1 7c 48 10 7e 07 vmovups 0x1c0(%rsi),%zmm7 + 43570c: 62 71 7c 48 10 41 f8 vmovups -0x200(%rcx),%zmm8 + 435713: 62 71 7c 48 10 49 f9 vmovups -0x1c0(%rcx),%zmm9 + 43571a: 62 71 7c 48 10 51 fa vmovups -0x180(%rcx),%zmm10 + 435721: 62 71 7c 48 10 59 fb vmovups -0x140(%rcx),%zmm11 + 435728: 62 71 7c 48 10 61 fc vmovups -0x100(%rcx),%zmm12 + 43572f: 62 71 7c 48 10 69 fd vmovups -0xc0(%rcx),%zmm13 + 435736: 62 71 7c 48 10 71 fe vmovups -0x80(%rcx),%zmm14 + 43573d: 62 71 7c 48 10 79 ff vmovups -0x40(%rcx),%zmm15 + 435744: 62 f1 7c 48 11 07 vmovups %zmm0,(%rdi) + 43574a: 62 f1 7c 48 11 4f 01 vmovups %zmm1,0x40(%rdi) + 435751: 62 f1 7c 48 11 57 02 vmovups %zmm2,0x80(%rdi) + 435758: 62 f1 7c 48 11 5f 03 vmovups %zmm3,0xc0(%rdi) + 43575f: 62 f1 7c 48 11 67 04 vmovups %zmm4,0x100(%rdi) + 435766: 62 f1 7c 48 11 6f 05 vmovups %zmm5,0x140(%rdi) + 43576d: 62 f1 7c 48 11 77 06 vmovups %zmm6,0x180(%rdi) + 435774: 62 f1 7c 48 11 7f 07 vmovups %zmm7,0x1c0(%rdi) + 43577b: 62 51 7c 48 11 41 f8 vmovups %zmm8,-0x200(%r9) + 435782: 62 51 7c 48 11 49 f9 vmovups %zmm9,-0x1c0(%r9) + 435789: 62 51 7c 48 11 51 fa vmovups %zmm10,-0x180(%r9) + 435790: 62 51 7c 48 11 59 fb vmovups %zmm11,-0x140(%r9) + 435797: 62 51 7c 48 11 61 fc vmovups %zmm12,-0x100(%r9) + 43579e: 62 51 7c 48 11 69 fd vmovups %zmm13,-0xc0(%r9) + 4357a5: 62 51 7c 48 11 71 fe vmovups %zmm14,-0x80(%r9) + 4357ac: 62 51 7c 48 11 79 ff vmovups %zmm15,-0x40(%r9) + 4357b3: c3 retq + 4357b4: 48 39 f7 cmp %rsi,%rdi + 4357b7: 0f 87 5e 01 00 00 ja 43591b <__memmove_avx512_no_vzeroupper+0x43b> + 4357bd: 49 81 e9 00 02 00 00 sub $0x200,%r9 + 4357c4: 62 71 7c 48 10 41 f8 vmovups -0x200(%rcx),%zmm8 + 4357cb: 62 71 7c 48 10 49 f9 vmovups -0x1c0(%rcx),%zmm9 + 4357d2: 62 71 7c 48 10 51 fa vmovups -0x180(%rcx),%zmm10 + 4357d9: 62 71 7c 48 10 59 fb vmovups -0x140(%rcx),%zmm11 + 4357e0: 62 71 7c 48 10 61 fc vmovups -0x100(%rcx),%zmm12 + 4357e7: 62 71 7c 48 10 69 fd vmovups -0xc0(%rcx),%zmm13 + 4357ee: 62 71 7c 48 10 71 fe vmovups -0x80(%rcx),%zmm14 + 4357f5: 62 71 7c 48 10 79 ff vmovups -0x40(%rcx),%zmm15 + 4357fc: 0f 18 16 prefetcht1 (%rsi) + 4357ff: 0f 18 56 40 prefetcht1 0x40(%rsi) + 435803: 0f 18 96 80 00 00 00 prefetcht1 0x80(%rsi) + 43580a: 0f 18 96 c0 00 00 00 prefetcht1 0xc0(%rsi) + 435811: 0f 18 96 00 01 00 00 prefetcht1 0x100(%rsi) + 435818: 0f 18 96 40 01 00 00 prefetcht1 0x140(%rsi) + 43581f: 0f 18 96 80 01 00 00 prefetcht1 0x180(%rsi) + 435826: 0f 18 96 c0 01 00 00 prefetcht1 0x1c0(%rsi) + 43582d: 62 f1 7c 48 10 06 vmovups (%rsi),%zmm0 + 435833: 62 f1 7c 48 10 4e 01 vmovups 0x40(%rsi),%zmm1 + 43583a: 62 f1 7c 48 10 56 02 vmovups 0x80(%rsi),%zmm2 + 435841: 62 f1 7c 48 10 5e 03 vmovups 0xc0(%rsi),%zmm3 + 435848: 62 f1 7c 48 10 66 04 vmovups 0x100(%rsi),%zmm4 + 43584f: 62 f1 7c 48 10 6e 05 vmovups 0x140(%rsi),%zmm5 + 435856: 62 f1 7c 48 10 76 06 vmovups 0x180(%rsi),%zmm6 + 43585d: 62 f1 7c 48 10 7e 07 vmovups 0x1c0(%rsi),%zmm7 + 435864: 48 81 c6 00 02 00 00 add $0x200,%rsi + 43586b: 0f 18 16 prefetcht1 (%rsi) + 43586e: 0f 18 56 40 prefetcht1 0x40(%rsi) + 435872: 0f 18 96 80 00 00 00 prefetcht1 0x80(%rsi) + 435879: 0f 18 96 c0 00 00 00 prefetcht1 0xc0(%rsi) + 435880: 0f 18 96 00 01 00 00 prefetcht1 0x100(%rsi) + 435887: 0f 18 96 40 01 00 00 prefetcht1 0x140(%rsi) + 43588e: 0f 18 96 80 01 00 00 prefetcht1 0x180(%rsi) + 435895: 0f 18 96 c0 01 00 00 prefetcht1 0x1c0(%rsi) + 43589c: 62 f1 7c 48 11 07 vmovups %zmm0,(%rdi) + 4358a2: 62 f1 7c 48 11 4f 01 vmovups %zmm1,0x40(%rdi) + 4358a9: 62 f1 7c 48 11 57 02 vmovups %zmm2,0x80(%rdi) + 4358b0: 62 f1 7c 48 11 5f 03 vmovups %zmm3,0xc0(%rdi) + 4358b7: 62 f1 7c 48 11 67 04 vmovups %zmm4,0x100(%rdi) + 4358be: 62 f1 7c 48 11 6f 05 vmovups %zmm5,0x140(%rdi) + 4358c5: 62 f1 7c 48 11 77 06 vmovups %zmm6,0x180(%rdi) + 4358cc: 62 f1 7c 48 11 7f 07 vmovups %zmm7,0x1c0(%rdi) + 4358d3: 48 81 c7 00 02 00 00 add $0x200,%rdi + 4358da: 4c 39 cf cmp %r9,%rdi + 4358dd: 0f 82 4a ff ff ff jb 43582d <__memmove_avx512_no_vzeroupper+0x34d> + 4358e3: 62 51 7c 48 11 01 vmovups %zmm8,(%r9) + 4358e9: 62 51 7c 48 11 49 01 vmovups %zmm9,0x40(%r9) + 4358f0: 62 51 7c 48 11 51 02 vmovups %zmm10,0x80(%r9) + 4358f7: 62 51 7c 48 11 59 03 vmovups %zmm11,0xc0(%r9) + 4358fe: 62 51 7c 48 11 61 04 vmovups %zmm12,0x100(%r9) + 435905: 62 51 7c 48 11 69 05 vmovups %zmm13,0x140(%r9) + 43590c: 62 51 7c 48 11 71 06 vmovups %zmm14,0x180(%r9) + 435913: 62 51 7c 48 11 79 07 vmovups %zmm15,0x1c0(%r9) + 43591a: c3 retq + 43591b: 48 81 c7 00 02 00 00 add $0x200,%rdi + 435922: 62 71 7c 48 10 46 07 vmovups 0x1c0(%rsi),%zmm8 + 435929: 62 71 7c 48 10 4e 06 vmovups 0x180(%rsi),%zmm9 + 435930: 62 71 7c 48 10 56 05 vmovups 0x140(%rsi),%zmm10 + 435937: 62 71 7c 48 10 5e 04 vmovups 0x100(%rsi),%zmm11 + 43593e: 62 71 7c 48 10 66 03 vmovups 0xc0(%rsi),%zmm12 + 435945: 62 71 7c 48 10 6e 02 vmovups 0x80(%rsi),%zmm13 + 43594c: 62 71 7c 48 10 76 01 vmovups 0x40(%rsi),%zmm14 + 435953: 62 71 7c 48 10 3e vmovups (%rsi),%zmm15 + 435959: 0f 18 51 c0 prefetcht1 -0x40(%rcx) + 43595d: 0f 18 51 80 prefetcht1 -0x80(%rcx) + 435961: 0f 18 91 40 ff ff ff prefetcht1 -0xc0(%rcx) + 435968: 0f 18 91 00 ff ff ff prefetcht1 -0x100(%rcx) + 43596f: 0f 18 91 c0 fe ff ff prefetcht1 -0x140(%rcx) + 435976: 0f 18 91 80 fe ff ff prefetcht1 -0x180(%rcx) + 43597d: 0f 18 91 40 fe ff ff prefetcht1 -0x1c0(%rcx) + 435984: 0f 18 91 00 fe ff ff prefetcht1 -0x200(%rcx) + 43598b: 62 f1 7c 48 10 41 ff vmovups -0x40(%rcx),%zmm0 + 435992: 62 f1 7c 48 10 49 fe vmovups -0x80(%rcx),%zmm1 + 435999: 62 f1 7c 48 10 51 fd vmovups -0xc0(%rcx),%zmm2 + 4359a0: 62 f1 7c 48 10 59 fc vmovups -0x100(%rcx),%zmm3 + 4359a7: 62 f1 7c 48 10 61 fb vmovups -0x140(%rcx),%zmm4 + 4359ae: 62 f1 7c 48 10 69 fa vmovups -0x180(%rcx),%zmm5 + 4359b5: 62 f1 7c 48 10 71 f9 vmovups -0x1c0(%rcx),%zmm6 + 4359bc: 62 f1 7c 48 10 79 f8 vmovups -0x200(%rcx),%zmm7 + 4359c3: 48 81 e9 00 02 00 00 sub $0x200,%rcx + 4359ca: 0f 18 51 c0 prefetcht1 -0x40(%rcx) + 4359ce: 0f 18 51 80 prefetcht1 -0x80(%rcx) + 4359d2: 0f 18 91 40 ff ff ff prefetcht1 -0xc0(%rcx) + 4359d9: 0f 18 91 00 ff ff ff prefetcht1 -0x100(%rcx) + 4359e0: 0f 18 91 c0 fe ff ff prefetcht1 -0x140(%rcx) + 4359e7: 0f 18 91 80 fe ff ff prefetcht1 -0x180(%rcx) + 4359ee: 0f 18 91 40 fe ff ff prefetcht1 -0x1c0(%rcx) + 4359f5: 0f 18 91 00 fe ff ff prefetcht1 -0x200(%rcx) + 4359fc: 62 d1 7c 48 11 41 ff vmovups %zmm0,-0x40(%r9) + 435a03: 62 d1 7c 48 11 49 fe vmovups %zmm1,-0x80(%r9) + 435a0a: 62 d1 7c 48 11 51 fd vmovups %zmm2,-0xc0(%r9) + 435a11: 62 d1 7c 48 11 59 fc vmovups %zmm3,-0x100(%r9) + 435a18: 62 d1 7c 48 11 61 fb vmovups %zmm4,-0x140(%r9) + 435a1f: 62 d1 7c 48 11 69 fa vmovups %zmm5,-0x180(%r9) + 435a26: 62 d1 7c 48 11 71 f9 vmovups %zmm6,-0x1c0(%r9) + 435a2d: 62 d1 7c 48 11 79 f8 vmovups %zmm7,-0x200(%r9) + 435a34: 49 81 e9 00 02 00 00 sub $0x200,%r9 + 435a3b: 49 39 f9 cmp %rdi,%r9 + 435a3e: 0f 87 47 ff ff ff ja 43598b <__memmove_avx512_no_vzeroupper+0x4ab> + 435a44: 62 71 7c 48 11 47 ff vmovups %zmm8,-0x40(%rdi) + 435a4b: 62 71 7c 48 11 4f fe vmovups %zmm9,-0x80(%rdi) + 435a52: 62 71 7c 48 11 57 fd vmovups %zmm10,-0xc0(%rdi) + 435a59: 62 71 7c 48 11 5f fc vmovups %zmm11,-0x100(%rdi) + 435a60: 62 71 7c 48 11 67 fb vmovups %zmm12,-0x140(%rdi) + 435a67: 62 71 7c 48 11 6f fa vmovups %zmm13,-0x180(%rdi) + 435a6e: 62 71 7c 48 11 77 f9 vmovups %zmm14,-0x1c0(%rdi) + 435a75: 62 71 7c 48 11 7f f8 vmovups %zmm15,-0x200(%rdi) + 435a7c: c3 retq + 435a7d: 48 39 f7 cmp %rsi,%rdi + 435a80: 0f 87 c9 00 00 00 ja 435b4f <__memmove_avx512_no_vzeroupper+0x66f> + 435a86: 62 f1 7c 48 10 26 vmovups (%rsi),%zmm4 + 435a8c: 62 f1 7c 48 10 6e 01 vmovups 0x40(%rsi),%zmm5 + 435a93: 49 89 f8 mov %rdi,%r8 + 435a96: 48 83 e7 80 and $0xffffffffffffff80,%rdi + 435a9a: 48 81 c7 80 00 00 00 add $0x80,%rdi + 435aa1: 49 29 f8 sub %rdi,%r8 + 435aa4: 4c 29 c6 sub %r8,%rsi + 435aa7: 4c 01 c2 add %r8,%rdx + 435aaa: 0f 18 96 00 02 00 00 prefetcht1 0x200(%rsi) + 435ab1: 0f 18 96 40 02 00 00 prefetcht1 0x240(%rsi) + 435ab8: 0f 18 96 80 02 00 00 prefetcht1 0x280(%rsi) + 435abf: 0f 18 96 c0 02 00 00 prefetcht1 0x2c0(%rsi) + 435ac6: 0f 18 96 00 03 00 00 prefetcht1 0x300(%rsi) + 435acd: 0f 18 96 40 03 00 00 prefetcht1 0x340(%rsi) + 435ad4: 0f 18 96 80 03 00 00 prefetcht1 0x380(%rsi) + 435adb: 0f 18 96 c0 03 00 00 prefetcht1 0x3c0(%rsi) + 435ae2: 62 f1 fe 48 6f 06 vmovdqu64 (%rsi),%zmm0 + 435ae8: 62 f1 fe 48 6f 4e 01 vmovdqu64 0x40(%rsi),%zmm1 + 435aef: 62 f1 fe 48 6f 56 02 vmovdqu64 0x80(%rsi),%zmm2 + 435af6: 62 f1 fe 48 6f 5e 03 vmovdqu64 0xc0(%rsi),%zmm3 + 435afd: 62 f1 7d 48 e7 07 vmovntdq %zmm0,(%rdi) + 435b03: 62 f1 7d 48 e7 4f 01 vmovntdq %zmm1,0x40(%rdi) + 435b0a: 62 f1 7d 48 e7 57 02 vmovntdq %zmm2,0x80(%rdi) + 435b11: 62 f1 7d 48 e7 5f 03 vmovntdq %zmm3,0xc0(%rdi) + 435b18: 48 81 ea 00 01 00 00 sub $0x100,%rdx + 435b1f: 48 81 c6 00 01 00 00 add $0x100,%rsi + 435b26: 48 81 c7 00 01 00 00 add $0x100,%rdi + 435b2d: 48 81 fa 00 01 00 00 cmp $0x100,%rdx + 435b34: 0f 87 70 ff ff ff ja 435aaa <__memmove_avx512_no_vzeroupper+0x5ca> + 435b3a: 0f ae f8 sfence + 435b3d: 62 f1 7c 48 11 20 vmovups %zmm4,(%rax) + 435b43: 62 f1 7c 48 11 68 01 vmovups %zmm5,0x40(%rax) + 435b4a: e9 a9 f9 ff ff jmpq 4354f8 <__memmove_avx512_no_vzeroupper+0x18> + 435b4f: 62 f1 7c 48 10 61 fe vmovups -0x80(%rcx),%zmm4 + 435b56: 62 f1 7c 48 10 69 ff vmovups -0x40(%rcx),%zmm5 + 435b5d: 4d 89 c8 mov %r9,%r8 + 435b60: 49 83 e1 80 and $0xffffffffffffff80,%r9 + 435b64: 4d 29 c8 sub %r9,%r8 + 435b67: 4c 29 c1 sub %r8,%rcx + 435b6a: 4c 29 c2 sub %r8,%rdx + 435b6d: 4d 01 c8 add %r9,%r8 + 435b70: 0f 18 91 00 fc ff ff prefetcht1 -0x400(%rcx) + 435b77: 0f 18 91 40 fc ff ff prefetcht1 -0x3c0(%rcx) + 435b7e: 0f 18 91 80 fc ff ff prefetcht1 -0x380(%rcx) + 435b85: 0f 18 91 c0 fc ff ff prefetcht1 -0x340(%rcx) + 435b8c: 0f 18 91 00 fd ff ff prefetcht1 -0x300(%rcx) + 435b93: 0f 18 91 40 fd ff ff prefetcht1 -0x2c0(%rcx) + 435b9a: 0f 18 91 80 fd ff ff prefetcht1 -0x280(%rcx) + 435ba1: 0f 18 91 c0 fd ff ff prefetcht1 -0x240(%rcx) + 435ba8: 62 f1 fe 48 6f 41 fc vmovdqu64 -0x100(%rcx),%zmm0 + 435baf: 62 f1 fe 48 6f 49 fd vmovdqu64 -0xc0(%rcx),%zmm1 + 435bb6: 62 f1 fe 48 6f 51 fe vmovdqu64 -0x80(%rcx),%zmm2 + 435bbd: 62 f1 fe 48 6f 59 ff vmovdqu64 -0x40(%rcx),%zmm3 + 435bc4: 62 d1 7d 48 e7 41 fc vmovntdq %zmm0,-0x100(%r9) + 435bcb: 62 d1 7d 48 e7 49 fd vmovntdq %zmm1,-0xc0(%r9) + 435bd2: 62 d1 7d 48 e7 51 fe vmovntdq %zmm2,-0x80(%r9) + 435bd9: 62 d1 7d 48 e7 59 ff vmovntdq %zmm3,-0x40(%r9) + 435be0: 48 81 ea 00 01 00 00 sub $0x100,%rdx + 435be7: 48 81 e9 00 01 00 00 sub $0x100,%rcx + 435bee: 49 81 e9 00 01 00 00 sub $0x100,%r9 + 435bf5: 48 81 fa 00 01 00 00 cmp $0x100,%rdx + 435bfc: 0f 87 6e ff ff ff ja 435b70 <__memmove_avx512_no_vzeroupper+0x690> + 435c02: 0f ae f8 sfence + 435c05: 62 d1 7c 48 11 60 fe vmovups %zmm4,-0x80(%r8) + 435c0c: 62 d1 7c 48 11 68 ff vmovups %zmm5,-0x40(%r8) + 435c13: e9 e0 f8 ff ff jmpq 4354f8 <__memmove_avx512_no_vzeroupper+0x18> + 435c18: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 435c1f: 00 + +0000000000435c20 <__strcasecmp_ssse3>: + 435c20: 48 c7 c0 b8 ff ff ff mov $0xffffffffffffffb8,%rax + 435c27: 64 48 8b 10 mov %fs:(%rax),%rdx + 435c2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000435c30 <__strcasecmp_l_ssse3>: + 435c30: 48 8b 02 mov (%rdx),%rax + 435c33: f7 80 78 02 00 00 01 testl $0x1,0x278(%rax) + 435c3a: 00 00 00 + 435c3d: 0f 85 bd 86 00 00 jne 43e300 <__strcasecmp_l_nonascii> + 435c43: 89 f1 mov %esi,%ecx + 435c45: 89 f8 mov %edi,%eax + 435c47: 48 83 e1 3f and $0x3f,%rcx + 435c4b: 48 83 e0 3f and $0x3f,%rax + 435c4f: 66 0f 6f 2d 59 d4 06 movdqa 0x6d459(%rip),%xmm5 # 4a30b0 <__func__.10972+0xf0> + 435c56: 00 + 435c57: 66 0f 6f 35 61 d4 06 movdqa 0x6d461(%rip),%xmm6 # 4a30c0 <__func__.10972+0x100> + 435c5e: 00 + 435c5f: 66 0f 6f 3d 69 d4 06 movdqa 0x6d469(%rip),%xmm7 # 4a30d0 + 435c66: 00 + 435c67: 83 f9 30 cmp $0x30,%ecx + 435c6a: 0f 87 90 00 00 00 ja 435d00 <__strcasecmp_l_ssse3+0xd0> + 435c70: 83 f8 30 cmp $0x30,%eax + 435c73: 0f 87 87 00 00 00 ja 435d00 <__strcasecmp_l_ssse3+0xd0> + 435c79: 66 0f 12 0f movlpd (%rdi),%xmm1 + 435c7d: 66 0f 12 16 movlpd (%rsi),%xmm2 + 435c81: 66 0f 16 4f 08 movhpd 0x8(%rdi),%xmm1 + 435c86: 66 0f 16 56 08 movhpd 0x8(%rsi),%xmm2 + 435c8b: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 435c90: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 435c95: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 435c9a: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 435c9f: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 435ca4: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 435ca9: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 435cae: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 435cb3: 66 45 0f db c1 pand %xmm9,%xmm8 + 435cb8: 66 45 0f db d3 pand %xmm11,%xmm10 + 435cbd: 66 44 0f db c7 pand %xmm7,%xmm8 + 435cc2: 66 44 0f db d7 pand %xmm7,%xmm10 + 435cc7: 66 41 0f eb c8 por %xmm8,%xmm1 + 435ccc: 66 41 0f eb d2 por %xmm10,%xmm2 + 435cd1: 66 0f ef c0 pxor %xmm0,%xmm0 + 435cd5: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 435cd9: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 435cdd: 66 0f f8 c8 psubb %xmm0,%xmm1 + 435ce1: 66 0f d7 d1 pmovmskb %xmm1,%edx + 435ce5: 81 ea ff ff 00 00 sub $0xffff,%edx + 435ceb: 0f 85 3f 20 00 00 jne 437d30 <__strcasecmp_l_ssse3+0x2100> + 435cf1: 48 83 c6 10 add $0x10,%rsi + 435cf5: 48 83 c7 10 add $0x10,%rdi + 435cf9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 435d00: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 435d04: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 435d08: ba ff ff 00 00 mov $0xffff,%edx + 435d0d: 45 31 c0 xor %r8d,%r8d + 435d10: 83 e1 0f and $0xf,%ecx + 435d13: 83 e0 0f and $0xf,%eax + 435d16: 39 c1 cmp %eax,%ecx + 435d18: 74 26 je 435d40 <__strcasecmp_l_ssse3+0x110> + 435d1a: 77 07 ja 435d23 <__strcasecmp_l_ssse3+0xf3> + 435d1c: 41 89 d0 mov %edx,%r8d + 435d1f: 91 xchg %eax,%ecx + 435d20: 48 87 f7 xchg %rsi,%rdi + 435d23: 4c 8d 48 0f lea 0xf(%rax),%r9 + 435d27: 49 29 c9 sub %rcx,%r9 + 435d2a: 4c 8d 15 3f dd 06 00 lea 0x6dd3f(%rip),%r10 # 4a3a70 + 435d31: 4f 63 0c 8a movslq (%r10,%r9,4),%r9 + 435d35: 4f 8d 14 0a lea (%r10,%r9,1),%r10 + 435d39: 41 ff e2 jmpq *%r10 + 435d3c: 0f 1f 40 00 nopl 0x0(%rax) + 435d40: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 435d44: 66 0f ef c0 pxor %xmm0,%xmm0 + 435d48: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 435d4c: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 435d50: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 435d55: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 435d5a: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 435d5f: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 435d64: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 435d69: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 435d6e: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 435d73: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 435d78: 66 45 0f db c1 pand %xmm9,%xmm8 + 435d7d: 66 45 0f db d3 pand %xmm11,%xmm10 + 435d82: 66 44 0f db c7 pand %xmm7,%xmm8 + 435d87: 66 44 0f db d7 pand %xmm7,%xmm10 + 435d8c: 66 41 0f eb c8 por %xmm8,%xmm1 + 435d91: 66 41 0f eb d2 por %xmm10,%xmm2 + 435d96: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 435d9a: 66 0f f8 c8 psubb %xmm0,%xmm1 + 435d9e: 66 44 0f d7 c9 pmovmskb %xmm1,%r9d + 435da3: d3 ea shr %cl,%edx + 435da5: 41 d3 e9 shr %cl,%r9d + 435da8: 44 29 ca sub %r9d,%edx + 435dab: 0f 85 64 1f 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> + 435db1: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 435db8: 49 c7 c1 10 00 00 00 mov $0x10,%r9 + 435dbf: 66 0f ef c0 pxor %xmm0,%xmm0 + 435dc3: 0f 1f 00 nopl (%rax) + 435dc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 435dcd: 00 00 00 + 435dd0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 435dd5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 435dda: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 435ddf: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 435de4: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 435de9: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 435dee: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 435df3: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 435df8: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 435dfd: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 435e02: 66 45 0f db c1 pand %xmm9,%xmm8 + 435e07: 66 45 0f db d3 pand %xmm11,%xmm10 + 435e0c: 66 44 0f db c7 pand %xmm7,%xmm8 + 435e11: 66 44 0f db d7 pand %xmm7,%xmm10 + 435e16: 66 41 0f eb c8 por %xmm8,%xmm1 + 435e1b: 66 41 0f eb d2 por %xmm10,%xmm2 + 435e20: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 435e24: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 435e28: 66 0f f8 c8 psubb %xmm0,%xmm1 + 435e2c: 66 0f d7 d1 pmovmskb %xmm1,%edx + 435e30: 81 ea ff ff 00 00 sub $0xffff,%edx + 435e36: 0f 85 d4 1e 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 435e3c: 48 83 c1 10 add $0x10,%rcx + 435e40: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 435e45: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 435e4a: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 435e4f: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 435e54: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 435e59: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 435e5e: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 435e63: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 435e68: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 435e6d: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 435e72: 66 45 0f db c1 pand %xmm9,%xmm8 + 435e77: 66 45 0f db d3 pand %xmm11,%xmm10 + 435e7c: 66 44 0f db c7 pand %xmm7,%xmm8 + 435e81: 66 44 0f db d7 pand %xmm7,%xmm10 + 435e86: 66 41 0f eb c8 por %xmm8,%xmm1 + 435e8b: 66 41 0f eb d2 por %xmm10,%xmm2 + 435e90: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 435e94: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 435e98: 66 0f f8 c8 psubb %xmm0,%xmm1 + 435e9c: 66 0f d7 d1 pmovmskb %xmm1,%edx + 435ea0: 81 ea ff ff 00 00 sub $0xffff,%edx + 435ea6: 0f 85 64 1e 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 435eac: 48 83 c1 10 add $0x10,%rcx + 435eb0: e9 1b ff ff ff jmpq 435dd0 <__strcasecmp_l_ssse3+0x1a0> + 435eb5: 90 nop + 435eb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 435ebd: 00 00 00 + 435ec0: 66 0f ef c0 pxor %xmm0,%xmm0 + 435ec4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 435ec8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 435ecc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 435ed0: 66 0f 73 fa 0f pslldq $0xf,%xmm2 + 435ed5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 435eda: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 435edf: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 435ee4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 435ee9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 435eee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 435ef3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 435ef8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 435efd: 66 45 0f db c1 pand %xmm9,%xmm8 + 435f02: 66 45 0f db d3 pand %xmm11,%xmm10 + 435f07: 66 44 0f db c7 pand %xmm7,%xmm8 + 435f0c: 66 44 0f db d7 pand %xmm7,%xmm10 + 435f11: 66 41 0f eb c8 por %xmm8,%xmm1 + 435f16: 66 41 0f eb d2 por %xmm10,%xmm2 + 435f1b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 435f1f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 435f23: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 435f28: d3 ea shr %cl,%edx + 435f2a: 41 d3 e9 shr %cl,%r9d + 435f2d: 44 29 ca sub %r9d,%edx + 435f30: 0f 85 df 1d 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> + 435f36: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 435f3a: 66 0f ef c0 pxor %xmm0,%xmm0 + 435f3e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 435f45: 41 b9 01 00 00 00 mov $0x1,%r9d + 435f4b: 4c 8d 57 01 lea 0x1(%rdi),%r10 + 435f4f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 435f56: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 435f5d: 0f 1f 00 nopl (%rax) + 435f60: 49 83 c2 10 add $0x10,%r10 + 435f64: 0f 8f 16 01 00 00 jg 436080 <__strcasecmp_l_ssse3+0x450> + 435f6a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 435f6f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 435f74: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 435f78: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 + 435f7e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 435f83: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 435f88: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 435f8d: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 435f92: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 435f97: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 435f9c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 435fa1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 435fa6: 66 45 0f db c1 pand %xmm9,%xmm8 + 435fab: 66 45 0f db d3 pand %xmm11,%xmm10 + 435fb0: 66 44 0f db c7 pand %xmm7,%xmm8 + 435fb5: 66 44 0f db d7 pand %xmm7,%xmm10 + 435fba: 66 41 0f eb c8 por %xmm8,%xmm1 + 435fbf: 66 41 0f eb d2 por %xmm10,%xmm2 + 435fc4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 435fc8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 435fcc: 66 0f f8 c8 psubb %xmm0,%xmm1 + 435fd0: 66 0f d7 d1 pmovmskb %xmm1,%edx + 435fd4: 81 ea ff ff 00 00 sub $0xffff,%edx + 435fda: 0f 85 30 1d 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 435fe0: 48 83 c1 10 add $0x10,%rcx + 435fe4: 66 0f 6f dc movdqa %xmm4,%xmm3 + 435fe8: 49 83 c2 10 add $0x10,%r10 + 435fec: 0f 8f 8e 00 00 00 jg 436080 <__strcasecmp_l_ssse3+0x450> + 435ff2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 435ff7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 435ffc: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 436000: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 + 436006: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 43600b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436010: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 436015: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 43601a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 43601f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 436024: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 436029: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 43602e: 66 45 0f db c1 pand %xmm9,%xmm8 + 436033: 66 45 0f db d3 pand %xmm11,%xmm10 + 436038: 66 44 0f db c7 pand %xmm7,%xmm8 + 43603d: 66 44 0f db d7 pand %xmm7,%xmm10 + 436042: 66 41 0f eb c8 por %xmm8,%xmm1 + 436047: 66 41 0f eb d2 por %xmm10,%xmm2 + 43604c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 436050: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 436054: 66 0f f8 c8 psubb %xmm0,%xmm1 + 436058: 66 0f d7 d1 pmovmskb %xmm1,%edx + 43605c: 81 ea ff ff 00 00 sub $0xffff,%edx + 436062: 0f 85 a8 1c 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 436068: 48 83 c1 10 add $0x10,%rcx + 43606c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 436070: e9 eb fe ff ff jmpq 435f60 <__strcasecmp_l_ssse3+0x330> + 436075: 90 nop + 436076: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43607d: 00 00 00 + 436080: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 436084: 66 0f d7 d0 pmovmskb %xmm0,%edx + 436088: f7 c2 fe ff 00 00 test $0xfffe,%edx + 43608e: 75 10 jne 4360a0 <__strcasecmp_l_ssse3+0x470> + 436090: 66 0f ef c0 pxor %xmm0,%xmm0 + 436094: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43609b: e9 ca fe ff ff jmpq 435f6a <__strcasecmp_l_ssse3+0x33a> + 4360a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4360a5: 66 0f 73 d8 01 psrldq $0x1,%xmm0 + 4360aa: 66 0f 73 db 01 psrldq $0x1,%xmm3 + 4360af: e9 fc 1b 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> + 4360b4: 66 90 xchg %ax,%ax + 4360b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4360bd: 00 00 00 + 4360c0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4360c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4360c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4360cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4360d0: 66 0f 73 fa 0e pslldq $0xe,%xmm2 + 4360d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4360da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4360df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4360e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4360e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4360ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4360f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4360f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4360fd: 66 45 0f db c1 pand %xmm9,%xmm8 + 436102: 66 45 0f db d3 pand %xmm11,%xmm10 + 436107: 66 44 0f db c7 pand %xmm7,%xmm8 + 43610c: 66 44 0f db d7 pand %xmm7,%xmm10 + 436111: 66 41 0f eb c8 por %xmm8,%xmm1 + 436116: 66 41 0f eb d2 por %xmm10,%xmm2 + 43611b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 43611f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 436123: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 436128: d3 ea shr %cl,%edx + 43612a: 41 d3 e9 shr %cl,%r9d + 43612d: 44 29 ca sub %r9d,%edx + 436130: 0f 85 df 1b 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> + 436136: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 43613a: 66 0f ef c0 pxor %xmm0,%xmm0 + 43613e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 436145: 41 b9 02 00 00 00 mov $0x2,%r9d + 43614b: 4c 8d 57 02 lea 0x2(%rdi),%r10 + 43614f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 436156: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43615d: 0f 1f 00 nopl (%rax) + 436160: 49 83 c2 10 add $0x10,%r10 + 436164: 0f 8f 16 01 00 00 jg 436280 <__strcasecmp_l_ssse3+0x650> + 43616a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 43616f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 436174: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 436178: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 + 43617e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 436183: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436188: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 43618d: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 436192: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 436197: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 43619c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4361a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4361a6: 66 45 0f db c1 pand %xmm9,%xmm8 + 4361ab: 66 45 0f db d3 pand %xmm11,%xmm10 + 4361b0: 66 44 0f db c7 pand %xmm7,%xmm8 + 4361b5: 66 44 0f db d7 pand %xmm7,%xmm10 + 4361ba: 66 41 0f eb c8 por %xmm8,%xmm1 + 4361bf: 66 41 0f eb d2 por %xmm10,%xmm2 + 4361c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4361c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4361cc: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4361d0: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4361d4: 81 ea ff ff 00 00 sub $0xffff,%edx + 4361da: 0f 85 30 1b 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 4361e0: 48 83 c1 10 add $0x10,%rcx + 4361e4: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4361e8: 49 83 c2 10 add $0x10,%r10 + 4361ec: 0f 8f 8e 00 00 00 jg 436280 <__strcasecmp_l_ssse3+0x650> + 4361f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4361f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4361fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 436200: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 + 436206: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 43620b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436210: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 436215: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 43621a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 43621f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 436224: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 436229: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 43622e: 66 45 0f db c1 pand %xmm9,%xmm8 + 436233: 66 45 0f db d3 pand %xmm11,%xmm10 + 436238: 66 44 0f db c7 pand %xmm7,%xmm8 + 43623d: 66 44 0f db d7 pand %xmm7,%xmm10 + 436242: 66 41 0f eb c8 por %xmm8,%xmm1 + 436247: 66 41 0f eb d2 por %xmm10,%xmm2 + 43624c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 436250: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 436254: 66 0f f8 c8 psubb %xmm0,%xmm1 + 436258: 66 0f d7 d1 pmovmskb %xmm1,%edx + 43625c: 81 ea ff ff 00 00 sub $0xffff,%edx + 436262: 0f 85 a8 1a 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 436268: 48 83 c1 10 add $0x10,%rcx + 43626c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 436270: e9 eb fe ff ff jmpq 436160 <__strcasecmp_l_ssse3+0x530> + 436275: 90 nop + 436276: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43627d: 00 00 00 + 436280: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 436284: 66 0f d7 d0 pmovmskb %xmm0,%edx + 436288: f7 c2 fc ff 00 00 test $0xfffc,%edx + 43628e: 75 10 jne 4362a0 <__strcasecmp_l_ssse3+0x670> + 436290: 66 0f ef c0 pxor %xmm0,%xmm0 + 436294: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43629b: e9 ca fe ff ff jmpq 43616a <__strcasecmp_l_ssse3+0x53a> + 4362a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4362a5: 66 0f 73 d8 02 psrldq $0x2,%xmm0 + 4362aa: 66 0f 73 db 02 psrldq $0x2,%xmm3 + 4362af: e9 fc 19 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> + 4362b4: 66 90 xchg %ax,%ax + 4362b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4362bd: 00 00 00 + 4362c0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4362c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4362c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4362cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4362d0: 66 0f 73 fa 0d pslldq $0xd,%xmm2 + 4362d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4362da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4362df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4362e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4362e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4362ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4362f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4362f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4362fd: 66 45 0f db c1 pand %xmm9,%xmm8 + 436302: 66 45 0f db d3 pand %xmm11,%xmm10 + 436307: 66 44 0f db c7 pand %xmm7,%xmm8 + 43630c: 66 44 0f db d7 pand %xmm7,%xmm10 + 436311: 66 41 0f eb c8 por %xmm8,%xmm1 + 436316: 66 41 0f eb d2 por %xmm10,%xmm2 + 43631b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 43631f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 436323: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 436328: d3 ea shr %cl,%edx + 43632a: 41 d3 e9 shr %cl,%r9d + 43632d: 44 29 ca sub %r9d,%edx + 436330: 0f 85 df 19 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> + 436336: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 43633a: 66 0f ef c0 pxor %xmm0,%xmm0 + 43633e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 436345: 41 b9 03 00 00 00 mov $0x3,%r9d + 43634b: 4c 8d 57 03 lea 0x3(%rdi),%r10 + 43634f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 436356: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43635d: 0f 1f 00 nopl (%rax) + 436360: 49 83 c2 10 add $0x10,%r10 + 436364: 0f 8f 16 01 00 00 jg 436480 <__strcasecmp_l_ssse3+0x850> + 43636a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 43636f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 436374: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 436378: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 + 43637e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 436383: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436388: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 43638d: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 436392: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 436397: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 43639c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4363a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4363a6: 66 45 0f db c1 pand %xmm9,%xmm8 + 4363ab: 66 45 0f db d3 pand %xmm11,%xmm10 + 4363b0: 66 44 0f db c7 pand %xmm7,%xmm8 + 4363b5: 66 44 0f db d7 pand %xmm7,%xmm10 + 4363ba: 66 41 0f eb c8 por %xmm8,%xmm1 + 4363bf: 66 41 0f eb d2 por %xmm10,%xmm2 + 4363c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4363c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4363cc: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4363d0: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4363d4: 81 ea ff ff 00 00 sub $0xffff,%edx + 4363da: 0f 85 30 19 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 4363e0: 48 83 c1 10 add $0x10,%rcx + 4363e4: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4363e8: 49 83 c2 10 add $0x10,%r10 + 4363ec: 0f 8f 8e 00 00 00 jg 436480 <__strcasecmp_l_ssse3+0x850> + 4363f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4363f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4363fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 436400: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 + 436406: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 43640b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436410: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 436415: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 43641a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 43641f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 436424: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 436429: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 43642e: 66 45 0f db c1 pand %xmm9,%xmm8 + 436433: 66 45 0f db d3 pand %xmm11,%xmm10 + 436438: 66 44 0f db c7 pand %xmm7,%xmm8 + 43643d: 66 44 0f db d7 pand %xmm7,%xmm10 + 436442: 66 41 0f eb c8 por %xmm8,%xmm1 + 436447: 66 41 0f eb d2 por %xmm10,%xmm2 + 43644c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 436450: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 436454: 66 0f f8 c8 psubb %xmm0,%xmm1 + 436458: 66 0f d7 d1 pmovmskb %xmm1,%edx + 43645c: 81 ea ff ff 00 00 sub $0xffff,%edx + 436462: 0f 85 a8 18 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 436468: 48 83 c1 10 add $0x10,%rcx + 43646c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 436470: e9 eb fe ff ff jmpq 436360 <__strcasecmp_l_ssse3+0x730> + 436475: 90 nop + 436476: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43647d: 00 00 00 + 436480: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 436484: 66 0f d7 d0 pmovmskb %xmm0,%edx + 436488: f7 c2 f8 ff 00 00 test $0xfff8,%edx + 43648e: 75 10 jne 4364a0 <__strcasecmp_l_ssse3+0x870> + 436490: 66 0f ef c0 pxor %xmm0,%xmm0 + 436494: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43649b: e9 ca fe ff ff jmpq 43636a <__strcasecmp_l_ssse3+0x73a> + 4364a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4364a5: 66 0f 73 d8 03 psrldq $0x3,%xmm0 + 4364aa: 66 0f 73 db 03 psrldq $0x3,%xmm3 + 4364af: e9 fc 17 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> + 4364b4: 66 90 xchg %ax,%ax + 4364b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4364bd: 00 00 00 + 4364c0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4364c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4364c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4364cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4364d0: 66 0f 73 fa 0c pslldq $0xc,%xmm2 + 4364d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4364da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4364df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4364e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4364e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4364ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4364f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4364f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4364fd: 66 45 0f db c1 pand %xmm9,%xmm8 + 436502: 66 45 0f db d3 pand %xmm11,%xmm10 + 436507: 66 44 0f db c7 pand %xmm7,%xmm8 + 43650c: 66 44 0f db d7 pand %xmm7,%xmm10 + 436511: 66 41 0f eb c8 por %xmm8,%xmm1 + 436516: 66 41 0f eb d2 por %xmm10,%xmm2 + 43651b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 43651f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 436523: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 436528: d3 ea shr %cl,%edx + 43652a: 41 d3 e9 shr %cl,%r9d + 43652d: 44 29 ca sub %r9d,%edx + 436530: 0f 85 df 17 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> + 436536: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 43653a: 66 0f ef c0 pxor %xmm0,%xmm0 + 43653e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 436545: 41 b9 04 00 00 00 mov $0x4,%r9d + 43654b: 4c 8d 57 04 lea 0x4(%rdi),%r10 + 43654f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 436556: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43655d: 0f 1f 00 nopl (%rax) + 436560: 49 83 c2 10 add $0x10,%r10 + 436564: 0f 8f 16 01 00 00 jg 436680 <__strcasecmp_l_ssse3+0xa50> + 43656a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 43656f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 436574: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 436578: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 + 43657e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 436583: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436588: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 43658d: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 436592: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 436597: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 43659c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4365a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4365a6: 66 45 0f db c1 pand %xmm9,%xmm8 + 4365ab: 66 45 0f db d3 pand %xmm11,%xmm10 + 4365b0: 66 44 0f db c7 pand %xmm7,%xmm8 + 4365b5: 66 44 0f db d7 pand %xmm7,%xmm10 + 4365ba: 66 41 0f eb c8 por %xmm8,%xmm1 + 4365bf: 66 41 0f eb d2 por %xmm10,%xmm2 + 4365c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4365c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4365cc: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4365d0: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4365d4: 81 ea ff ff 00 00 sub $0xffff,%edx + 4365da: 0f 85 30 17 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 4365e0: 48 83 c1 10 add $0x10,%rcx + 4365e4: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4365e8: 49 83 c2 10 add $0x10,%r10 + 4365ec: 0f 8f 8e 00 00 00 jg 436680 <__strcasecmp_l_ssse3+0xa50> + 4365f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4365f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4365fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 436600: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 + 436606: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 43660b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436610: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 436615: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 43661a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 43661f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 436624: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 436629: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 43662e: 66 45 0f db c1 pand %xmm9,%xmm8 + 436633: 66 45 0f db d3 pand %xmm11,%xmm10 + 436638: 66 44 0f db c7 pand %xmm7,%xmm8 + 43663d: 66 44 0f db d7 pand %xmm7,%xmm10 + 436642: 66 41 0f eb c8 por %xmm8,%xmm1 + 436647: 66 41 0f eb d2 por %xmm10,%xmm2 + 43664c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 436650: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 436654: 66 0f f8 c8 psubb %xmm0,%xmm1 + 436658: 66 0f d7 d1 pmovmskb %xmm1,%edx + 43665c: 81 ea ff ff 00 00 sub $0xffff,%edx + 436662: 0f 85 a8 16 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 436668: 48 83 c1 10 add $0x10,%rcx + 43666c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 436670: e9 eb fe ff ff jmpq 436560 <__strcasecmp_l_ssse3+0x930> + 436675: 90 nop + 436676: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43667d: 00 00 00 + 436680: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 436684: 66 0f d7 d0 pmovmskb %xmm0,%edx + 436688: f7 c2 f0 ff 00 00 test $0xfff0,%edx + 43668e: 75 10 jne 4366a0 <__strcasecmp_l_ssse3+0xa70> + 436690: 66 0f ef c0 pxor %xmm0,%xmm0 + 436694: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43669b: e9 ca fe ff ff jmpq 43656a <__strcasecmp_l_ssse3+0x93a> + 4366a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4366a5: 66 0f 73 d8 04 psrldq $0x4,%xmm0 + 4366aa: 66 0f 73 db 04 psrldq $0x4,%xmm3 + 4366af: e9 fc 15 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> + 4366b4: 66 90 xchg %ax,%ax + 4366b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4366bd: 00 00 00 + 4366c0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4366c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4366c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4366cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4366d0: 66 0f 73 fa 0b pslldq $0xb,%xmm2 + 4366d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4366da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4366df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4366e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4366e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4366ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4366f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4366f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4366fd: 66 45 0f db c1 pand %xmm9,%xmm8 + 436702: 66 45 0f db d3 pand %xmm11,%xmm10 + 436707: 66 44 0f db c7 pand %xmm7,%xmm8 + 43670c: 66 44 0f db d7 pand %xmm7,%xmm10 + 436711: 66 41 0f eb c8 por %xmm8,%xmm1 + 436716: 66 41 0f eb d2 por %xmm10,%xmm2 + 43671b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 43671f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 436723: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 436728: d3 ea shr %cl,%edx + 43672a: 41 d3 e9 shr %cl,%r9d + 43672d: 44 29 ca sub %r9d,%edx + 436730: 0f 85 df 15 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> + 436736: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 43673a: 66 0f ef c0 pxor %xmm0,%xmm0 + 43673e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 436745: 41 b9 05 00 00 00 mov $0x5,%r9d + 43674b: 4c 8d 57 05 lea 0x5(%rdi),%r10 + 43674f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 436756: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43675d: 0f 1f 00 nopl (%rax) + 436760: 49 83 c2 10 add $0x10,%r10 + 436764: 0f 8f 16 01 00 00 jg 436880 <__strcasecmp_l_ssse3+0xc50> + 43676a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 43676f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 436774: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 436778: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 + 43677e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 436783: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436788: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 43678d: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 436792: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 436797: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 43679c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4367a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4367a6: 66 45 0f db c1 pand %xmm9,%xmm8 + 4367ab: 66 45 0f db d3 pand %xmm11,%xmm10 + 4367b0: 66 44 0f db c7 pand %xmm7,%xmm8 + 4367b5: 66 44 0f db d7 pand %xmm7,%xmm10 + 4367ba: 66 41 0f eb c8 por %xmm8,%xmm1 + 4367bf: 66 41 0f eb d2 por %xmm10,%xmm2 + 4367c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4367c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4367cc: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4367d0: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4367d4: 81 ea ff ff 00 00 sub $0xffff,%edx + 4367da: 0f 85 30 15 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 4367e0: 48 83 c1 10 add $0x10,%rcx + 4367e4: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4367e8: 49 83 c2 10 add $0x10,%r10 + 4367ec: 0f 8f 8e 00 00 00 jg 436880 <__strcasecmp_l_ssse3+0xc50> + 4367f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4367f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4367fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 436800: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 + 436806: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 43680b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436810: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 436815: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 43681a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 43681f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 436824: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 436829: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 43682e: 66 45 0f db c1 pand %xmm9,%xmm8 + 436833: 66 45 0f db d3 pand %xmm11,%xmm10 + 436838: 66 44 0f db c7 pand %xmm7,%xmm8 + 43683d: 66 44 0f db d7 pand %xmm7,%xmm10 + 436842: 66 41 0f eb c8 por %xmm8,%xmm1 + 436847: 66 41 0f eb d2 por %xmm10,%xmm2 + 43684c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 436850: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 436854: 66 0f f8 c8 psubb %xmm0,%xmm1 + 436858: 66 0f d7 d1 pmovmskb %xmm1,%edx + 43685c: 81 ea ff ff 00 00 sub $0xffff,%edx + 436862: 0f 85 a8 14 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 436868: 48 83 c1 10 add $0x10,%rcx + 43686c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 436870: e9 eb fe ff ff jmpq 436760 <__strcasecmp_l_ssse3+0xb30> + 436875: 90 nop + 436876: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43687d: 00 00 00 + 436880: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 436884: 66 0f d7 d0 pmovmskb %xmm0,%edx + 436888: f7 c2 e0 ff 00 00 test $0xffe0,%edx + 43688e: 75 10 jne 4368a0 <__strcasecmp_l_ssse3+0xc70> + 436890: 66 0f ef c0 pxor %xmm0,%xmm0 + 436894: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43689b: e9 ca fe ff ff jmpq 43676a <__strcasecmp_l_ssse3+0xb3a> + 4368a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4368a5: 66 0f 73 d8 05 psrldq $0x5,%xmm0 + 4368aa: 66 0f 73 db 05 psrldq $0x5,%xmm3 + 4368af: e9 fc 13 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> + 4368b4: 66 90 xchg %ax,%ax + 4368b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4368bd: 00 00 00 + 4368c0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4368c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4368c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4368cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4368d0: 66 0f 73 fa 0a pslldq $0xa,%xmm2 + 4368d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4368da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4368df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4368e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4368e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4368ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4368f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4368f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4368fd: 66 45 0f db c1 pand %xmm9,%xmm8 + 436902: 66 45 0f db d3 pand %xmm11,%xmm10 + 436907: 66 44 0f db c7 pand %xmm7,%xmm8 + 43690c: 66 44 0f db d7 pand %xmm7,%xmm10 + 436911: 66 41 0f eb c8 por %xmm8,%xmm1 + 436916: 66 41 0f eb d2 por %xmm10,%xmm2 + 43691b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 43691f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 436923: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 436928: d3 ea shr %cl,%edx + 43692a: 41 d3 e9 shr %cl,%r9d + 43692d: 44 29 ca sub %r9d,%edx + 436930: 0f 85 df 13 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> + 436936: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 43693a: 66 0f ef c0 pxor %xmm0,%xmm0 + 43693e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 436945: 41 b9 06 00 00 00 mov $0x6,%r9d + 43694b: 4c 8d 57 06 lea 0x6(%rdi),%r10 + 43694f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 436956: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43695d: 0f 1f 00 nopl (%rax) + 436960: 49 83 c2 10 add $0x10,%r10 + 436964: 0f 8f 16 01 00 00 jg 436a80 <__strcasecmp_l_ssse3+0xe50> + 43696a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 43696f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 436974: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 436978: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 + 43697e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 436983: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436988: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 43698d: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 436992: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 436997: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 43699c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4369a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4369a6: 66 45 0f db c1 pand %xmm9,%xmm8 + 4369ab: 66 45 0f db d3 pand %xmm11,%xmm10 + 4369b0: 66 44 0f db c7 pand %xmm7,%xmm8 + 4369b5: 66 44 0f db d7 pand %xmm7,%xmm10 + 4369ba: 66 41 0f eb c8 por %xmm8,%xmm1 + 4369bf: 66 41 0f eb d2 por %xmm10,%xmm2 + 4369c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4369c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4369cc: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4369d0: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4369d4: 81 ea ff ff 00 00 sub $0xffff,%edx + 4369da: 0f 85 30 13 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 4369e0: 48 83 c1 10 add $0x10,%rcx + 4369e4: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4369e8: 49 83 c2 10 add $0x10,%r10 + 4369ec: 0f 8f 8e 00 00 00 jg 436a80 <__strcasecmp_l_ssse3+0xe50> + 4369f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4369f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4369fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 436a00: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 + 436a06: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 436a0b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436a10: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 436a15: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 436a1a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 436a1f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 436a24: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 436a29: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 436a2e: 66 45 0f db c1 pand %xmm9,%xmm8 + 436a33: 66 45 0f db d3 pand %xmm11,%xmm10 + 436a38: 66 44 0f db c7 pand %xmm7,%xmm8 + 436a3d: 66 44 0f db d7 pand %xmm7,%xmm10 + 436a42: 66 41 0f eb c8 por %xmm8,%xmm1 + 436a47: 66 41 0f eb d2 por %xmm10,%xmm2 + 436a4c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 436a50: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 436a54: 66 0f f8 c8 psubb %xmm0,%xmm1 + 436a58: 66 0f d7 d1 pmovmskb %xmm1,%edx + 436a5c: 81 ea ff ff 00 00 sub $0xffff,%edx + 436a62: 0f 85 a8 12 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 436a68: 48 83 c1 10 add $0x10,%rcx + 436a6c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 436a70: e9 eb fe ff ff jmpq 436960 <__strcasecmp_l_ssse3+0xd30> + 436a75: 90 nop + 436a76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 436a7d: 00 00 00 + 436a80: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 436a84: 66 0f d7 d0 pmovmskb %xmm0,%edx + 436a88: f7 c2 c0 ff 00 00 test $0xffc0,%edx + 436a8e: 75 10 jne 436aa0 <__strcasecmp_l_ssse3+0xe70> + 436a90: 66 0f ef c0 pxor %xmm0,%xmm0 + 436a94: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 436a9b: e9 ca fe ff ff jmpq 43696a <__strcasecmp_l_ssse3+0xd3a> + 436aa0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 436aa5: 66 0f 73 d8 06 psrldq $0x6,%xmm0 + 436aaa: 66 0f 73 db 06 psrldq $0x6,%xmm3 + 436aaf: e9 fc 11 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> + 436ab4: 66 90 xchg %ax,%ax + 436ab6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 436abd: 00 00 00 + 436ac0: 66 0f ef c0 pxor %xmm0,%xmm0 + 436ac4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 436ac8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 436acc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 436ad0: 66 0f 73 fa 09 pslldq $0x9,%xmm2 + 436ad5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 436ada: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436adf: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 436ae4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 436ae9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 436aee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 436af3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 436af8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 436afd: 66 45 0f db c1 pand %xmm9,%xmm8 + 436b02: 66 45 0f db d3 pand %xmm11,%xmm10 + 436b07: 66 44 0f db c7 pand %xmm7,%xmm8 + 436b0c: 66 44 0f db d7 pand %xmm7,%xmm10 + 436b11: 66 41 0f eb c8 por %xmm8,%xmm1 + 436b16: 66 41 0f eb d2 por %xmm10,%xmm2 + 436b1b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 436b1f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 436b23: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 436b28: d3 ea shr %cl,%edx + 436b2a: 41 d3 e9 shr %cl,%r9d + 436b2d: 44 29 ca sub %r9d,%edx + 436b30: 0f 85 df 11 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> + 436b36: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 436b3a: 66 0f ef c0 pxor %xmm0,%xmm0 + 436b3e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 436b45: 41 b9 07 00 00 00 mov $0x7,%r9d + 436b4b: 4c 8d 57 07 lea 0x7(%rdi),%r10 + 436b4f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 436b56: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 436b5d: 0f 1f 00 nopl (%rax) + 436b60: 49 83 c2 10 add $0x10,%r10 + 436b64: 0f 8f 16 01 00 00 jg 436c80 <__strcasecmp_l_ssse3+0x1050> + 436b6a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 436b6f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 436b74: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 436b78: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 + 436b7e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 436b83: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436b88: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 436b8d: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 436b92: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 436b97: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 436b9c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 436ba1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 436ba6: 66 45 0f db c1 pand %xmm9,%xmm8 + 436bab: 66 45 0f db d3 pand %xmm11,%xmm10 + 436bb0: 66 44 0f db c7 pand %xmm7,%xmm8 + 436bb5: 66 44 0f db d7 pand %xmm7,%xmm10 + 436bba: 66 41 0f eb c8 por %xmm8,%xmm1 + 436bbf: 66 41 0f eb d2 por %xmm10,%xmm2 + 436bc4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 436bc8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 436bcc: 66 0f f8 c8 psubb %xmm0,%xmm1 + 436bd0: 66 0f d7 d1 pmovmskb %xmm1,%edx + 436bd4: 81 ea ff ff 00 00 sub $0xffff,%edx + 436bda: 0f 85 30 11 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 436be0: 48 83 c1 10 add $0x10,%rcx + 436be4: 66 0f 6f dc movdqa %xmm4,%xmm3 + 436be8: 49 83 c2 10 add $0x10,%r10 + 436bec: 0f 8f 8e 00 00 00 jg 436c80 <__strcasecmp_l_ssse3+0x1050> + 436bf2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 436bf7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 436bfc: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 436c00: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 + 436c06: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 436c0b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436c10: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 436c15: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 436c1a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 436c1f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 436c24: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 436c29: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 436c2e: 66 45 0f db c1 pand %xmm9,%xmm8 + 436c33: 66 45 0f db d3 pand %xmm11,%xmm10 + 436c38: 66 44 0f db c7 pand %xmm7,%xmm8 + 436c3d: 66 44 0f db d7 pand %xmm7,%xmm10 + 436c42: 66 41 0f eb c8 por %xmm8,%xmm1 + 436c47: 66 41 0f eb d2 por %xmm10,%xmm2 + 436c4c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 436c50: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 436c54: 66 0f f8 c8 psubb %xmm0,%xmm1 + 436c58: 66 0f d7 d1 pmovmskb %xmm1,%edx + 436c5c: 81 ea ff ff 00 00 sub $0xffff,%edx + 436c62: 0f 85 a8 10 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 436c68: 48 83 c1 10 add $0x10,%rcx + 436c6c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 436c70: e9 eb fe ff ff jmpq 436b60 <__strcasecmp_l_ssse3+0xf30> + 436c75: 90 nop + 436c76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 436c7d: 00 00 00 + 436c80: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 436c84: 66 0f d7 d0 pmovmskb %xmm0,%edx + 436c88: f7 c2 80 ff 00 00 test $0xff80,%edx + 436c8e: 75 10 jne 436ca0 <__strcasecmp_l_ssse3+0x1070> + 436c90: 66 0f ef c0 pxor %xmm0,%xmm0 + 436c94: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 436c9b: e9 ca fe ff ff jmpq 436b6a <__strcasecmp_l_ssse3+0xf3a> + 436ca0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 436ca5: 66 0f 73 d8 07 psrldq $0x7,%xmm0 + 436caa: 66 0f 73 db 07 psrldq $0x7,%xmm3 + 436caf: e9 fc 0f 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> + 436cb4: 66 90 xchg %ax,%ax + 436cb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 436cbd: 00 00 00 + 436cc0: 66 0f ef c0 pxor %xmm0,%xmm0 + 436cc4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 436cc8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 436ccc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 436cd0: 66 0f 73 fa 08 pslldq $0x8,%xmm2 + 436cd5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 436cda: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436cdf: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 436ce4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 436ce9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 436cee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 436cf3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 436cf8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 436cfd: 66 45 0f db c1 pand %xmm9,%xmm8 + 436d02: 66 45 0f db d3 pand %xmm11,%xmm10 + 436d07: 66 44 0f db c7 pand %xmm7,%xmm8 + 436d0c: 66 44 0f db d7 pand %xmm7,%xmm10 + 436d11: 66 41 0f eb c8 por %xmm8,%xmm1 + 436d16: 66 41 0f eb d2 por %xmm10,%xmm2 + 436d1b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 436d1f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 436d23: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 436d28: d3 ea shr %cl,%edx + 436d2a: 41 d3 e9 shr %cl,%r9d + 436d2d: 44 29 ca sub %r9d,%edx + 436d30: 0f 85 df 0f 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> + 436d36: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 436d3a: 66 0f ef c0 pxor %xmm0,%xmm0 + 436d3e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 436d45: 41 b9 08 00 00 00 mov $0x8,%r9d + 436d4b: 4c 8d 57 08 lea 0x8(%rdi),%r10 + 436d4f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 436d56: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 436d5d: 0f 1f 00 nopl (%rax) + 436d60: 49 83 c2 10 add $0x10,%r10 + 436d64: 0f 8f 16 01 00 00 jg 436e80 <__strcasecmp_l_ssse3+0x1250> + 436d6a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 436d6f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 436d74: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 436d78: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 + 436d7e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 436d83: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436d88: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 436d8d: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 436d92: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 436d97: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 436d9c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 436da1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 436da6: 66 45 0f db c1 pand %xmm9,%xmm8 + 436dab: 66 45 0f db d3 pand %xmm11,%xmm10 + 436db0: 66 44 0f db c7 pand %xmm7,%xmm8 + 436db5: 66 44 0f db d7 pand %xmm7,%xmm10 + 436dba: 66 41 0f eb c8 por %xmm8,%xmm1 + 436dbf: 66 41 0f eb d2 por %xmm10,%xmm2 + 436dc4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 436dc8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 436dcc: 66 0f f8 c8 psubb %xmm0,%xmm1 + 436dd0: 66 0f d7 d1 pmovmskb %xmm1,%edx + 436dd4: 81 ea ff ff 00 00 sub $0xffff,%edx + 436dda: 0f 85 30 0f 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 436de0: 48 83 c1 10 add $0x10,%rcx + 436de4: 66 0f 6f dc movdqa %xmm4,%xmm3 + 436de8: 49 83 c2 10 add $0x10,%r10 + 436dec: 0f 8f 8e 00 00 00 jg 436e80 <__strcasecmp_l_ssse3+0x1250> + 436df2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 436df7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 436dfc: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 436e00: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 + 436e06: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 436e0b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436e10: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 436e15: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 436e1a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 436e1f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 436e24: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 436e29: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 436e2e: 66 45 0f db c1 pand %xmm9,%xmm8 + 436e33: 66 45 0f db d3 pand %xmm11,%xmm10 + 436e38: 66 44 0f db c7 pand %xmm7,%xmm8 + 436e3d: 66 44 0f db d7 pand %xmm7,%xmm10 + 436e42: 66 41 0f eb c8 por %xmm8,%xmm1 + 436e47: 66 41 0f eb d2 por %xmm10,%xmm2 + 436e4c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 436e50: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 436e54: 66 0f f8 c8 psubb %xmm0,%xmm1 + 436e58: 66 0f d7 d1 pmovmskb %xmm1,%edx + 436e5c: 81 ea ff ff 00 00 sub $0xffff,%edx + 436e62: 0f 85 a8 0e 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 436e68: 48 83 c1 10 add $0x10,%rcx + 436e6c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 436e70: e9 eb fe ff ff jmpq 436d60 <__strcasecmp_l_ssse3+0x1130> + 436e75: 90 nop + 436e76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 436e7d: 00 00 00 + 436e80: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 436e84: 66 0f d7 d0 pmovmskb %xmm0,%edx + 436e88: f7 c2 00 ff 00 00 test $0xff00,%edx + 436e8e: 75 10 jne 436ea0 <__strcasecmp_l_ssse3+0x1270> + 436e90: 66 0f ef c0 pxor %xmm0,%xmm0 + 436e94: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 436e9b: e9 ca fe ff ff jmpq 436d6a <__strcasecmp_l_ssse3+0x113a> + 436ea0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 436ea5: 66 0f 73 d8 08 psrldq $0x8,%xmm0 + 436eaa: 66 0f 73 db 08 psrldq $0x8,%xmm3 + 436eaf: e9 fc 0d 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> + 436eb4: 66 90 xchg %ax,%ax + 436eb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 436ebd: 00 00 00 + 436ec0: 66 0f ef c0 pxor %xmm0,%xmm0 + 436ec4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 436ec8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 436ecc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 436ed0: 66 0f 73 fa 07 pslldq $0x7,%xmm2 + 436ed5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 436eda: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436edf: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 436ee4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 436ee9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 436eee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 436ef3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 436ef8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 436efd: 66 45 0f db c1 pand %xmm9,%xmm8 + 436f02: 66 45 0f db d3 pand %xmm11,%xmm10 + 436f07: 66 44 0f db c7 pand %xmm7,%xmm8 + 436f0c: 66 44 0f db d7 pand %xmm7,%xmm10 + 436f11: 66 41 0f eb c8 por %xmm8,%xmm1 + 436f16: 66 41 0f eb d2 por %xmm10,%xmm2 + 436f1b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 436f1f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 436f23: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 436f28: d3 ea shr %cl,%edx + 436f2a: 41 d3 e9 shr %cl,%r9d + 436f2d: 44 29 ca sub %r9d,%edx + 436f30: 0f 85 df 0d 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> + 436f36: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 436f3a: 66 0f ef c0 pxor %xmm0,%xmm0 + 436f3e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 436f45: 41 b9 09 00 00 00 mov $0x9,%r9d + 436f4b: 4c 8d 57 09 lea 0x9(%rdi),%r10 + 436f4f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 436f56: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 436f5d: 0f 1f 00 nopl (%rax) + 436f60: 49 83 c2 10 add $0x10,%r10 + 436f64: 0f 8f 16 01 00 00 jg 437080 <__strcasecmp_l_ssse3+0x1450> + 436f6a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 436f6f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 436f74: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 436f78: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 + 436f7e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 436f83: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 436f88: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 436f8d: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 436f92: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 436f97: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 436f9c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 436fa1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 436fa6: 66 45 0f db c1 pand %xmm9,%xmm8 + 436fab: 66 45 0f db d3 pand %xmm11,%xmm10 + 436fb0: 66 44 0f db c7 pand %xmm7,%xmm8 + 436fb5: 66 44 0f db d7 pand %xmm7,%xmm10 + 436fba: 66 41 0f eb c8 por %xmm8,%xmm1 + 436fbf: 66 41 0f eb d2 por %xmm10,%xmm2 + 436fc4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 436fc8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 436fcc: 66 0f f8 c8 psubb %xmm0,%xmm1 + 436fd0: 66 0f d7 d1 pmovmskb %xmm1,%edx + 436fd4: 81 ea ff ff 00 00 sub $0xffff,%edx + 436fda: 0f 85 30 0d 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 436fe0: 48 83 c1 10 add $0x10,%rcx + 436fe4: 66 0f 6f dc movdqa %xmm4,%xmm3 + 436fe8: 49 83 c2 10 add $0x10,%r10 + 436fec: 0f 8f 8e 00 00 00 jg 437080 <__strcasecmp_l_ssse3+0x1450> + 436ff2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 436ff7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 436ffc: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 437000: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 + 437006: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 43700b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 437010: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 437015: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 43701a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 43701f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 437024: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 437029: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 43702e: 66 45 0f db c1 pand %xmm9,%xmm8 + 437033: 66 45 0f db d3 pand %xmm11,%xmm10 + 437038: 66 44 0f db c7 pand %xmm7,%xmm8 + 43703d: 66 44 0f db d7 pand %xmm7,%xmm10 + 437042: 66 41 0f eb c8 por %xmm8,%xmm1 + 437047: 66 41 0f eb d2 por %xmm10,%xmm2 + 43704c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 437050: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 437054: 66 0f f8 c8 psubb %xmm0,%xmm1 + 437058: 66 0f d7 d1 pmovmskb %xmm1,%edx + 43705c: 81 ea ff ff 00 00 sub $0xffff,%edx + 437062: 0f 85 a8 0c 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 437068: 48 83 c1 10 add $0x10,%rcx + 43706c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 437070: e9 eb fe ff ff jmpq 436f60 <__strcasecmp_l_ssse3+0x1330> + 437075: 90 nop + 437076: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43707d: 00 00 00 + 437080: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 437084: 66 0f d7 d0 pmovmskb %xmm0,%edx + 437088: f7 c2 00 fe 00 00 test $0xfe00,%edx + 43708e: 75 10 jne 4370a0 <__strcasecmp_l_ssse3+0x1470> + 437090: 66 0f ef c0 pxor %xmm0,%xmm0 + 437094: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43709b: e9 ca fe ff ff jmpq 436f6a <__strcasecmp_l_ssse3+0x133a> + 4370a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4370a5: 66 0f 73 d8 09 psrldq $0x9,%xmm0 + 4370aa: 66 0f 73 db 09 psrldq $0x9,%xmm3 + 4370af: e9 fc 0b 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> + 4370b4: 66 90 xchg %ax,%ax + 4370b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4370bd: 00 00 00 + 4370c0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4370c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4370c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4370cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4370d0: 66 0f 73 fa 06 pslldq $0x6,%xmm2 + 4370d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4370da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4370df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4370e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4370e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4370ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4370f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4370f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4370fd: 66 45 0f db c1 pand %xmm9,%xmm8 + 437102: 66 45 0f db d3 pand %xmm11,%xmm10 + 437107: 66 44 0f db c7 pand %xmm7,%xmm8 + 43710c: 66 44 0f db d7 pand %xmm7,%xmm10 + 437111: 66 41 0f eb c8 por %xmm8,%xmm1 + 437116: 66 41 0f eb d2 por %xmm10,%xmm2 + 43711b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 43711f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 437123: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 437128: d3 ea shr %cl,%edx + 43712a: 41 d3 e9 shr %cl,%r9d + 43712d: 44 29 ca sub %r9d,%edx + 437130: 0f 85 df 0b 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> + 437136: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 43713a: 66 0f ef c0 pxor %xmm0,%xmm0 + 43713e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 437145: 41 b9 0a 00 00 00 mov $0xa,%r9d + 43714b: 4c 8d 57 0a lea 0xa(%rdi),%r10 + 43714f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 437156: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43715d: 0f 1f 00 nopl (%rax) + 437160: 49 83 c2 10 add $0x10,%r10 + 437164: 0f 8f 16 01 00 00 jg 437280 <__strcasecmp_l_ssse3+0x1650> + 43716a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 43716f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 437174: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 437178: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 + 43717e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 437183: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 437188: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 43718d: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 437192: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 437197: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 43719c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4371a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4371a6: 66 45 0f db c1 pand %xmm9,%xmm8 + 4371ab: 66 45 0f db d3 pand %xmm11,%xmm10 + 4371b0: 66 44 0f db c7 pand %xmm7,%xmm8 + 4371b5: 66 44 0f db d7 pand %xmm7,%xmm10 + 4371ba: 66 41 0f eb c8 por %xmm8,%xmm1 + 4371bf: 66 41 0f eb d2 por %xmm10,%xmm2 + 4371c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4371c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4371cc: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4371d0: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4371d4: 81 ea ff ff 00 00 sub $0xffff,%edx + 4371da: 0f 85 30 0b 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 4371e0: 48 83 c1 10 add $0x10,%rcx + 4371e4: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4371e8: 49 83 c2 10 add $0x10,%r10 + 4371ec: 0f 8f 8e 00 00 00 jg 437280 <__strcasecmp_l_ssse3+0x1650> + 4371f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4371f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4371fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 437200: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 + 437206: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 43720b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 437210: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 437215: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 43721a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 43721f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 437224: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 437229: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 43722e: 66 45 0f db c1 pand %xmm9,%xmm8 + 437233: 66 45 0f db d3 pand %xmm11,%xmm10 + 437238: 66 44 0f db c7 pand %xmm7,%xmm8 + 43723d: 66 44 0f db d7 pand %xmm7,%xmm10 + 437242: 66 41 0f eb c8 por %xmm8,%xmm1 + 437247: 66 41 0f eb d2 por %xmm10,%xmm2 + 43724c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 437250: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 437254: 66 0f f8 c8 psubb %xmm0,%xmm1 + 437258: 66 0f d7 d1 pmovmskb %xmm1,%edx + 43725c: 81 ea ff ff 00 00 sub $0xffff,%edx + 437262: 0f 85 a8 0a 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 437268: 48 83 c1 10 add $0x10,%rcx + 43726c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 437270: e9 eb fe ff ff jmpq 437160 <__strcasecmp_l_ssse3+0x1530> + 437275: 90 nop + 437276: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43727d: 00 00 00 + 437280: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 437284: 66 0f d7 d0 pmovmskb %xmm0,%edx + 437288: f7 c2 00 fc 00 00 test $0xfc00,%edx + 43728e: 75 10 jne 4372a0 <__strcasecmp_l_ssse3+0x1670> + 437290: 66 0f ef c0 pxor %xmm0,%xmm0 + 437294: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43729b: e9 ca fe ff ff jmpq 43716a <__strcasecmp_l_ssse3+0x153a> + 4372a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4372a5: 66 0f 73 d8 0a psrldq $0xa,%xmm0 + 4372aa: 66 0f 73 db 0a psrldq $0xa,%xmm3 + 4372af: e9 fc 09 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> + 4372b4: 66 90 xchg %ax,%ax + 4372b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4372bd: 00 00 00 + 4372c0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4372c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4372c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4372cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4372d0: 66 0f 73 fa 05 pslldq $0x5,%xmm2 + 4372d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4372da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4372df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4372e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4372e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4372ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4372f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4372f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4372fd: 66 45 0f db c1 pand %xmm9,%xmm8 + 437302: 66 45 0f db d3 pand %xmm11,%xmm10 + 437307: 66 44 0f db c7 pand %xmm7,%xmm8 + 43730c: 66 44 0f db d7 pand %xmm7,%xmm10 + 437311: 66 41 0f eb c8 por %xmm8,%xmm1 + 437316: 66 41 0f eb d2 por %xmm10,%xmm2 + 43731b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 43731f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 437323: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 437328: d3 ea shr %cl,%edx + 43732a: 41 d3 e9 shr %cl,%r9d + 43732d: 44 29 ca sub %r9d,%edx + 437330: 0f 85 df 09 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> + 437336: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 43733a: 66 0f ef c0 pxor %xmm0,%xmm0 + 43733e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 437345: 41 b9 0b 00 00 00 mov $0xb,%r9d + 43734b: 4c 8d 57 0b lea 0xb(%rdi),%r10 + 43734f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 437356: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43735d: 0f 1f 00 nopl (%rax) + 437360: 49 83 c2 10 add $0x10,%r10 + 437364: 0f 8f 16 01 00 00 jg 437480 <__strcasecmp_l_ssse3+0x1850> + 43736a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 43736f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 437374: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 437378: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 + 43737e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 437383: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 437388: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 43738d: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 437392: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 437397: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 43739c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4373a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4373a6: 66 45 0f db c1 pand %xmm9,%xmm8 + 4373ab: 66 45 0f db d3 pand %xmm11,%xmm10 + 4373b0: 66 44 0f db c7 pand %xmm7,%xmm8 + 4373b5: 66 44 0f db d7 pand %xmm7,%xmm10 + 4373ba: 66 41 0f eb c8 por %xmm8,%xmm1 + 4373bf: 66 41 0f eb d2 por %xmm10,%xmm2 + 4373c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4373c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4373cc: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4373d0: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4373d4: 81 ea ff ff 00 00 sub $0xffff,%edx + 4373da: 0f 85 30 09 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 4373e0: 48 83 c1 10 add $0x10,%rcx + 4373e4: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4373e8: 49 83 c2 10 add $0x10,%r10 + 4373ec: 0f 8f 8e 00 00 00 jg 437480 <__strcasecmp_l_ssse3+0x1850> + 4373f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4373f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4373fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 437400: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 + 437406: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 43740b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 437410: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 437415: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 43741a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 43741f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 437424: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 437429: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 43742e: 66 45 0f db c1 pand %xmm9,%xmm8 + 437433: 66 45 0f db d3 pand %xmm11,%xmm10 + 437438: 66 44 0f db c7 pand %xmm7,%xmm8 + 43743d: 66 44 0f db d7 pand %xmm7,%xmm10 + 437442: 66 41 0f eb c8 por %xmm8,%xmm1 + 437447: 66 41 0f eb d2 por %xmm10,%xmm2 + 43744c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 437450: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 437454: 66 0f f8 c8 psubb %xmm0,%xmm1 + 437458: 66 0f d7 d1 pmovmskb %xmm1,%edx + 43745c: 81 ea ff ff 00 00 sub $0xffff,%edx + 437462: 0f 85 a8 08 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 437468: 48 83 c1 10 add $0x10,%rcx + 43746c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 437470: e9 eb fe ff ff jmpq 437360 <__strcasecmp_l_ssse3+0x1730> + 437475: 90 nop + 437476: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43747d: 00 00 00 + 437480: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 437484: 66 0f d7 d0 pmovmskb %xmm0,%edx + 437488: f7 c2 00 f8 00 00 test $0xf800,%edx + 43748e: 75 10 jne 4374a0 <__strcasecmp_l_ssse3+0x1870> + 437490: 66 0f ef c0 pxor %xmm0,%xmm0 + 437494: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43749b: e9 ca fe ff ff jmpq 43736a <__strcasecmp_l_ssse3+0x173a> + 4374a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4374a5: 66 0f 73 d8 0b psrldq $0xb,%xmm0 + 4374aa: 66 0f 73 db 0b psrldq $0xb,%xmm3 + 4374af: e9 fc 07 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> + 4374b4: 66 90 xchg %ax,%ax + 4374b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4374bd: 00 00 00 + 4374c0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4374c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4374c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4374cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4374d0: 66 0f 73 fa 04 pslldq $0x4,%xmm2 + 4374d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4374da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4374df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4374e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4374e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4374ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4374f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4374f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4374fd: 66 45 0f db c1 pand %xmm9,%xmm8 + 437502: 66 45 0f db d3 pand %xmm11,%xmm10 + 437507: 66 44 0f db c7 pand %xmm7,%xmm8 + 43750c: 66 44 0f db d7 pand %xmm7,%xmm10 + 437511: 66 41 0f eb c8 por %xmm8,%xmm1 + 437516: 66 41 0f eb d2 por %xmm10,%xmm2 + 43751b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 43751f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 437523: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 437528: d3 ea shr %cl,%edx + 43752a: 41 d3 e9 shr %cl,%r9d + 43752d: 44 29 ca sub %r9d,%edx + 437530: 0f 85 df 07 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> + 437536: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 43753a: 66 0f ef c0 pxor %xmm0,%xmm0 + 43753e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 437545: 41 b9 0c 00 00 00 mov $0xc,%r9d + 43754b: 4c 8d 57 0c lea 0xc(%rdi),%r10 + 43754f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 437556: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43755d: 0f 1f 00 nopl (%rax) + 437560: 49 83 c2 10 add $0x10,%r10 + 437564: 0f 8f 16 01 00 00 jg 437680 <__strcasecmp_l_ssse3+0x1a50> + 43756a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 43756f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 437574: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 437578: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 + 43757e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 437583: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 437588: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 43758d: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 437592: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 437597: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 43759c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4375a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4375a6: 66 45 0f db c1 pand %xmm9,%xmm8 + 4375ab: 66 45 0f db d3 pand %xmm11,%xmm10 + 4375b0: 66 44 0f db c7 pand %xmm7,%xmm8 + 4375b5: 66 44 0f db d7 pand %xmm7,%xmm10 + 4375ba: 66 41 0f eb c8 por %xmm8,%xmm1 + 4375bf: 66 41 0f eb d2 por %xmm10,%xmm2 + 4375c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4375c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4375cc: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4375d0: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4375d4: 81 ea ff ff 00 00 sub $0xffff,%edx + 4375da: 0f 85 30 07 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 4375e0: 48 83 c1 10 add $0x10,%rcx + 4375e4: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4375e8: 49 83 c2 10 add $0x10,%r10 + 4375ec: 0f 8f 8e 00 00 00 jg 437680 <__strcasecmp_l_ssse3+0x1a50> + 4375f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4375f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4375fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 437600: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 + 437606: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 43760b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 437610: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 437615: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 43761a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 43761f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 437624: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 437629: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 43762e: 66 45 0f db c1 pand %xmm9,%xmm8 + 437633: 66 45 0f db d3 pand %xmm11,%xmm10 + 437638: 66 44 0f db c7 pand %xmm7,%xmm8 + 43763d: 66 44 0f db d7 pand %xmm7,%xmm10 + 437642: 66 41 0f eb c8 por %xmm8,%xmm1 + 437647: 66 41 0f eb d2 por %xmm10,%xmm2 + 43764c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 437650: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 437654: 66 0f f8 c8 psubb %xmm0,%xmm1 + 437658: 66 0f d7 d1 pmovmskb %xmm1,%edx + 43765c: 81 ea ff ff 00 00 sub $0xffff,%edx + 437662: 0f 85 a8 06 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 437668: 48 83 c1 10 add $0x10,%rcx + 43766c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 437670: e9 eb fe ff ff jmpq 437560 <__strcasecmp_l_ssse3+0x1930> + 437675: 90 nop + 437676: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43767d: 00 00 00 + 437680: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 437684: 66 0f d7 d0 pmovmskb %xmm0,%edx + 437688: f7 c2 00 f0 00 00 test $0xf000,%edx + 43768e: 75 10 jne 4376a0 <__strcasecmp_l_ssse3+0x1a70> + 437690: 66 0f ef c0 pxor %xmm0,%xmm0 + 437694: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43769b: e9 ca fe ff ff jmpq 43756a <__strcasecmp_l_ssse3+0x193a> + 4376a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4376a5: 66 0f 73 d8 0c psrldq $0xc,%xmm0 + 4376aa: 66 0f 73 db 0c psrldq $0xc,%xmm3 + 4376af: e9 fc 05 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> + 4376b4: 66 90 xchg %ax,%ax + 4376b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4376bd: 00 00 00 + 4376c0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4376c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4376c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4376cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4376d0: 66 0f 73 fa 03 pslldq $0x3,%xmm2 + 4376d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4376da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4376df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4376e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4376e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4376ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4376f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4376f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4376fd: 66 45 0f db c1 pand %xmm9,%xmm8 + 437702: 66 45 0f db d3 pand %xmm11,%xmm10 + 437707: 66 44 0f db c7 pand %xmm7,%xmm8 + 43770c: 66 44 0f db d7 pand %xmm7,%xmm10 + 437711: 66 41 0f eb c8 por %xmm8,%xmm1 + 437716: 66 41 0f eb d2 por %xmm10,%xmm2 + 43771b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 43771f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 437723: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 437728: d3 ea shr %cl,%edx + 43772a: 41 d3 e9 shr %cl,%r9d + 43772d: 44 29 ca sub %r9d,%edx + 437730: 0f 85 df 05 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> + 437736: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 43773a: 66 0f ef c0 pxor %xmm0,%xmm0 + 43773e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 437745: 41 b9 0d 00 00 00 mov $0xd,%r9d + 43774b: 4c 8d 57 0d lea 0xd(%rdi),%r10 + 43774f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 437756: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43775d: 0f 1f 00 nopl (%rax) + 437760: 49 83 c2 10 add $0x10,%r10 + 437764: 0f 8f 16 01 00 00 jg 437880 <__strcasecmp_l_ssse3+0x1c50> + 43776a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 43776f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 437774: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 437778: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 + 43777e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 437783: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 437788: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 43778d: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 437792: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 437797: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 43779c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4377a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4377a6: 66 45 0f db c1 pand %xmm9,%xmm8 + 4377ab: 66 45 0f db d3 pand %xmm11,%xmm10 + 4377b0: 66 44 0f db c7 pand %xmm7,%xmm8 + 4377b5: 66 44 0f db d7 pand %xmm7,%xmm10 + 4377ba: 66 41 0f eb c8 por %xmm8,%xmm1 + 4377bf: 66 41 0f eb d2 por %xmm10,%xmm2 + 4377c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4377c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4377cc: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4377d0: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4377d4: 81 ea ff ff 00 00 sub $0xffff,%edx + 4377da: 0f 85 30 05 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 4377e0: 48 83 c1 10 add $0x10,%rcx + 4377e4: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4377e8: 49 83 c2 10 add $0x10,%r10 + 4377ec: 0f 8f 8e 00 00 00 jg 437880 <__strcasecmp_l_ssse3+0x1c50> + 4377f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4377f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4377fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 437800: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 + 437806: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 43780b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 437810: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 437815: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 43781a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 43781f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 437824: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 437829: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 43782e: 66 45 0f db c1 pand %xmm9,%xmm8 + 437833: 66 45 0f db d3 pand %xmm11,%xmm10 + 437838: 66 44 0f db c7 pand %xmm7,%xmm8 + 43783d: 66 44 0f db d7 pand %xmm7,%xmm10 + 437842: 66 41 0f eb c8 por %xmm8,%xmm1 + 437847: 66 41 0f eb d2 por %xmm10,%xmm2 + 43784c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 437850: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 437854: 66 0f f8 c8 psubb %xmm0,%xmm1 + 437858: 66 0f d7 d1 pmovmskb %xmm1,%edx + 43785c: 81 ea ff ff 00 00 sub $0xffff,%edx + 437862: 0f 85 a8 04 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 437868: 48 83 c1 10 add $0x10,%rcx + 43786c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 437870: e9 eb fe ff ff jmpq 437760 <__strcasecmp_l_ssse3+0x1b30> + 437875: 90 nop + 437876: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43787d: 00 00 00 + 437880: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 437884: 66 0f d7 d0 pmovmskb %xmm0,%edx + 437888: f7 c2 00 e0 00 00 test $0xe000,%edx + 43788e: 75 10 jne 4378a0 <__strcasecmp_l_ssse3+0x1c70> + 437890: 66 0f ef c0 pxor %xmm0,%xmm0 + 437894: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43789b: e9 ca fe ff ff jmpq 43776a <__strcasecmp_l_ssse3+0x1b3a> + 4378a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4378a5: 66 0f 73 d8 0d psrldq $0xd,%xmm0 + 4378aa: 66 0f 73 db 0d psrldq $0xd,%xmm3 + 4378af: e9 fc 03 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> + 4378b4: 66 90 xchg %ax,%ax + 4378b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4378bd: 00 00 00 + 4378c0: 66 0f ef c0 pxor %xmm0,%xmm0 + 4378c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 4378c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 4378cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4378d0: 66 0f 73 fa 02 pslldq $0x2,%xmm2 + 4378d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 4378da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 4378df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 4378e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 4378e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 4378ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 4378f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4378f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4378fd: 66 45 0f db c1 pand %xmm9,%xmm8 + 437902: 66 45 0f db d3 pand %xmm11,%xmm10 + 437907: 66 44 0f db c7 pand %xmm7,%xmm8 + 43790c: 66 44 0f db d7 pand %xmm7,%xmm10 + 437911: 66 41 0f eb c8 por %xmm8,%xmm1 + 437916: 66 41 0f eb d2 por %xmm10,%xmm2 + 43791b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 43791f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 437923: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 437928: d3 ea shr %cl,%edx + 43792a: 41 d3 e9 shr %cl,%r9d + 43792d: 44 29 ca sub %r9d,%edx + 437930: 0f 85 df 03 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> + 437936: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 43793a: 66 0f ef c0 pxor %xmm0,%xmm0 + 43793e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 437945: 41 b9 0e 00 00 00 mov $0xe,%r9d + 43794b: 4c 8d 57 0e lea 0xe(%rdi),%r10 + 43794f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 437956: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 43795d: 0f 1f 00 nopl (%rax) + 437960: 49 83 c2 10 add $0x10,%r10 + 437964: 0f 8f 16 01 00 00 jg 437a80 <__strcasecmp_l_ssse3+0x1e50> + 43796a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 43796f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 437974: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 437978: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 + 43797e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 437983: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 437988: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 43798d: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 437992: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 437997: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 43799c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 4379a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 4379a6: 66 45 0f db c1 pand %xmm9,%xmm8 + 4379ab: 66 45 0f db d3 pand %xmm11,%xmm10 + 4379b0: 66 44 0f db c7 pand %xmm7,%xmm8 + 4379b5: 66 44 0f db d7 pand %xmm7,%xmm10 + 4379ba: 66 41 0f eb c8 por %xmm8,%xmm1 + 4379bf: 66 41 0f eb d2 por %xmm10,%xmm2 + 4379c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 4379c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 4379cc: 66 0f f8 c8 psubb %xmm0,%xmm1 + 4379d0: 66 0f d7 d1 pmovmskb %xmm1,%edx + 4379d4: 81 ea ff ff 00 00 sub $0xffff,%edx + 4379da: 0f 85 30 03 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 4379e0: 48 83 c1 10 add $0x10,%rcx + 4379e4: 66 0f 6f dc movdqa %xmm4,%xmm3 + 4379e8: 49 83 c2 10 add $0x10,%r10 + 4379ec: 0f 8f 8e 00 00 00 jg 437a80 <__strcasecmp_l_ssse3+0x1e50> + 4379f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 4379f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 4379fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 437a00: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 + 437a06: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 437a0b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 437a10: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 437a15: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 437a1a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 437a1f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 437a24: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 437a29: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 437a2e: 66 45 0f db c1 pand %xmm9,%xmm8 + 437a33: 66 45 0f db d3 pand %xmm11,%xmm10 + 437a38: 66 44 0f db c7 pand %xmm7,%xmm8 + 437a3d: 66 44 0f db d7 pand %xmm7,%xmm10 + 437a42: 66 41 0f eb c8 por %xmm8,%xmm1 + 437a47: 66 41 0f eb d2 por %xmm10,%xmm2 + 437a4c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 437a50: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 437a54: 66 0f f8 c8 psubb %xmm0,%xmm1 + 437a58: 66 0f d7 d1 pmovmskb %xmm1,%edx + 437a5c: 81 ea ff ff 00 00 sub $0xffff,%edx + 437a62: 0f 85 a8 02 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 437a68: 48 83 c1 10 add $0x10,%rcx + 437a6c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 437a70: e9 eb fe ff ff jmpq 437960 <__strcasecmp_l_ssse3+0x1d30> + 437a75: 90 nop + 437a76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 437a7d: 00 00 00 + 437a80: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 437a84: 66 0f d7 d0 pmovmskb %xmm0,%edx + 437a88: f7 c2 00 c0 00 00 test $0xc000,%edx + 437a8e: 75 10 jne 437aa0 <__strcasecmp_l_ssse3+0x1e70> + 437a90: 66 0f ef c0 pxor %xmm0,%xmm0 + 437a94: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 437a9b: e9 ca fe ff ff jmpq 43796a <__strcasecmp_l_ssse3+0x1d3a> + 437aa0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 437aa5: 66 0f 73 d8 0e psrldq $0xe,%xmm0 + 437aaa: 66 0f 73 db 0e psrldq $0xe,%xmm3 + 437aaf: e9 fc 01 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> + 437ab4: 66 90 xchg %ax,%ax + 437ab6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 437abd: 00 00 00 + 437ac0: 66 0f ef c0 pxor %xmm0,%xmm0 + 437ac4: 66 0f 6f 17 movdqa (%rdi),%xmm2 + 437ac8: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 437acc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 437ad0: 66 0f 73 fa 01 pslldq $0x1,%xmm2 + 437ad5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 437ada: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 437adf: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 437ae4: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 437ae9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 437aee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 437af3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 437af8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 437afd: 66 45 0f db c1 pand %xmm9,%xmm8 + 437b02: 66 45 0f db d3 pand %xmm11,%xmm10 + 437b07: 66 44 0f db c7 pand %xmm7,%xmm8 + 437b0c: 66 44 0f db d7 pand %xmm7,%xmm10 + 437b11: 66 41 0f eb c8 por %xmm8,%xmm1 + 437b16: 66 41 0f eb d2 por %xmm10,%xmm2 + 437b1b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 + 437b1f: 66 0f f8 d0 psubb %xmm0,%xmm2 + 437b23: 66 44 0f d7 ca pmovmskb %xmm2,%r9d + 437b28: d3 ea shr %cl,%edx + 437b2a: 41 d3 e9 shr %cl,%r9d + 437b2d: 44 29 ca sub %r9d,%edx + 437b30: 0f 85 df 01 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> + 437b36: 66 0f 6f 1f movdqa (%rdi),%xmm3 + 437b3a: 66 0f ef c0 pxor %xmm0,%xmm0 + 437b3e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 437b45: 41 b9 0f 00 00 00 mov $0xf,%r9d + 437b4b: 4c 8d 57 0f lea 0xf(%rdi),%r10 + 437b4f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 + 437b56: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 437b5d: 0f 1f 00 nopl (%rax) + 437b60: 49 83 c2 10 add $0x10,%r10 + 437b64: 0f 8f 16 01 00 00 jg 437c80 <__strcasecmp_l_ssse3+0x2050> + 437b6a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 437b6f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 437b74: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 437b78: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 + 437b7e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 437b83: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 437b88: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 437b8d: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 437b92: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 437b97: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 437b9c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 437ba1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 437ba6: 66 45 0f db c1 pand %xmm9,%xmm8 + 437bab: 66 45 0f db d3 pand %xmm11,%xmm10 + 437bb0: 66 44 0f db c7 pand %xmm7,%xmm8 + 437bb5: 66 44 0f db d7 pand %xmm7,%xmm10 + 437bba: 66 41 0f eb c8 por %xmm8,%xmm1 + 437bbf: 66 41 0f eb d2 por %xmm10,%xmm2 + 437bc4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 437bc8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 437bcc: 66 0f f8 c8 psubb %xmm0,%xmm1 + 437bd0: 66 0f d7 d1 pmovmskb %xmm1,%edx + 437bd4: 81 ea ff ff 00 00 sub $0xffff,%edx + 437bda: 0f 85 30 01 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 437be0: 48 83 c1 10 add $0x10,%rcx + 437be4: 66 0f 6f dc movdqa %xmm4,%xmm3 + 437be8: 49 83 c2 10 add $0x10,%r10 + 437bec: 0f 8f 8e 00 00 00 jg 437c80 <__strcasecmp_l_ssse3+0x2050> + 437bf2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 437bf7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 + 437bfc: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 437c00: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 + 437c06: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 437c0b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 437c10: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 + 437c15: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 437c1a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 437c1f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 437c24: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 437c29: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 + 437c2e: 66 45 0f db c1 pand %xmm9,%xmm8 + 437c33: 66 45 0f db d3 pand %xmm11,%xmm10 + 437c38: 66 44 0f db c7 pand %xmm7,%xmm8 + 437c3d: 66 44 0f db d7 pand %xmm7,%xmm10 + 437c42: 66 41 0f eb c8 por %xmm8,%xmm1 + 437c47: 66 41 0f eb d2 por %xmm10,%xmm2 + 437c4c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 437c50: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 + 437c54: 66 0f f8 c8 psubb %xmm0,%xmm1 + 437c58: 66 0f d7 d1 pmovmskb %xmm1,%edx + 437c5c: 81 ea ff ff 00 00 sub $0xffff,%edx + 437c62: 0f 85 a8 00 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> + 437c68: 48 83 c1 10 add $0x10,%rcx + 437c6c: 66 0f 6f dc movdqa %xmm4,%xmm3 + 437c70: e9 eb fe ff ff jmpq 437b60 <__strcasecmp_l_ssse3+0x1f30> + 437c75: 90 nop + 437c76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 437c7d: 00 00 00 + 437c80: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 437c84: 66 0f d7 d0 pmovmskb %xmm0,%edx + 437c88: f7 c2 00 80 00 00 test $0x8000,%edx + 437c8e: 75 10 jne 437ca0 <__strcasecmp_l_ssse3+0x2070> + 437c90: 66 0f ef c0 pxor %xmm0,%xmm0 + 437c94: 49 81 ea 00 10 00 00 sub $0x1000,%r10 + 437c9b: e9 ca fe ff ff jmpq 437b6a <__strcasecmp_l_ssse3+0x1f3a> + 437ca0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 437ca5: 66 0f 73 db 0f psrldq $0xf,%xmm3 + 437caa: 66 0f 73 d8 0f psrldq $0xf,%xmm0 + 437caf: 90 nop + 437cb0: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 + 437cb5: 66 44 0f 6f ce movdqa %xmm6,%xmm9 + 437cba: 66 44 0f 6f d3 movdqa %xmm3,%xmm10 + 437cbf: 66 44 0f 6f de movdqa %xmm6,%xmm11 + 437cc4: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 + 437cc9: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 + 437cce: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 + 437cd3: 66 44 0f 64 db pcmpgtb %xmm3,%xmm11 + 437cd8: 66 45 0f db c1 pand %xmm9,%xmm8 + 437cdd: 66 45 0f db d3 pand %xmm11,%xmm10 + 437ce2: 66 44 0f db c7 pand %xmm7,%xmm8 + 437ce7: 66 44 0f db d7 pand %xmm7,%xmm10 + 437cec: 66 41 0f eb c8 por %xmm8,%xmm1 + 437cf1: 66 41 0f eb da por %xmm10,%xmm3 + 437cf6: 66 0f 74 cb pcmpeqb %xmm3,%xmm1 + 437cfa: 66 0f f8 c8 psubb %xmm0,%xmm1 + 437cfe: 66 0f d7 d1 pmovmskb %xmm1,%edx + 437d02: f7 d2 not %edx + 437d04: 66 90 xchg %ax,%ax + 437d06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 437d0d: 00 00 00 + 437d10: 49 8d 44 09 f0 lea -0x10(%r9,%rcx,1),%rax + 437d15: 48 8d 3c 07 lea (%rdi,%rax,1),%rdi + 437d19: 48 8d 34 0e lea (%rsi,%rcx,1),%rsi + 437d1d: 45 85 c0 test %r8d,%r8d + 437d20: 74 0e je 437d30 <__strcasecmp_l_ssse3+0x2100> + 437d22: 48 87 f7 xchg %rsi,%rdi + 437d25: 90 nop + 437d26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 437d2d: 00 00 00 + 437d30: 48 0f bc d2 bsf %rdx,%rdx + 437d34: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx + 437d38: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax + 437d3c: 48 8d 15 fd f7 06 00 lea 0x6f7fd(%rip),%rdx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> + 437d43: 8b 0c 8a mov (%rdx,%rcx,4),%ecx + 437d46: 8b 04 82 mov (%rdx,%rax,4),%eax + 437d49: 29 c8 sub %ecx,%eax + 437d4b: c3 retq + 437d4c: 31 c0 xor %eax,%eax + 437d4e: c3 retq + 437d4f: 90 nop + 437d50: 0f b6 0e movzbl (%rsi),%ecx + 437d53: 0f b6 07 movzbl (%rdi),%eax + 437d56: 48 8d 15 e3 f7 06 00 lea 0x6f7e3(%rip),%rdx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> + 437d5d: 8b 0c 8a mov (%rdx,%rcx,4),%ecx + 437d60: 8b 04 82 mov (%rdx,%rax,4),%eax + 437d63: 29 c8 sub %ecx,%eax + 437d65: c3 retq + 437d66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 437d6d: 00 00 00 + +0000000000437d70 <__strcpy_ssse3>: + 437d70: 48 89 f1 mov %rsi,%rcx + 437d73: 48 89 fa mov %rdi,%rdx + 437d76: 80 39 00 cmpb $0x0,(%rcx) + 437d79: 0f 84 91 16 00 00 je 439410 <__strcpy_ssse3+0x16a0> + 437d7f: 80 79 01 00 cmpb $0x0,0x1(%rcx) + 437d83: 0f 84 97 16 00 00 je 439420 <__strcpy_ssse3+0x16b0> + 437d89: 80 79 02 00 cmpb $0x0,0x2(%rcx) + 437d8d: 0f 84 9d 16 00 00 je 439430 <__strcpy_ssse3+0x16c0> + 437d93: 80 79 03 00 cmpb $0x0,0x3(%rcx) + 437d97: 0f 84 a3 16 00 00 je 439440 <__strcpy_ssse3+0x16d0> + 437d9d: 80 79 04 00 cmpb $0x0,0x4(%rcx) + 437da1: 0f 84 a9 16 00 00 je 439450 <__strcpy_ssse3+0x16e0> + 437da7: 80 79 05 00 cmpb $0x0,0x5(%rcx) + 437dab: 0f 84 af 16 00 00 je 439460 <__strcpy_ssse3+0x16f0> + 437db1: 80 79 06 00 cmpb $0x0,0x6(%rcx) + 437db5: 0f 84 b5 16 00 00 je 439470 <__strcpy_ssse3+0x1700> + 437dbb: 80 79 07 00 cmpb $0x0,0x7(%rcx) + 437dbf: 0f 84 db 15 00 00 je 4393a0 <__strcpy_ssse3+0x1630> + 437dc5: 80 79 08 00 cmpb $0x0,0x8(%rcx) + 437dc9: 0f 84 b1 16 00 00 je 439480 <__strcpy_ssse3+0x1710> + 437dcf: 80 79 09 00 cmpb $0x0,0x9(%rcx) + 437dd3: 0f 84 b7 16 00 00 je 439490 <__strcpy_ssse3+0x1720> + 437dd9: 80 79 0a 00 cmpb $0x0,0xa(%rcx) + 437ddd: 0f 84 bd 16 00 00 je 4394a0 <__strcpy_ssse3+0x1730> + 437de3: 80 79 0b 00 cmpb $0x0,0xb(%rcx) + 437de7: 0f 84 c3 16 00 00 je 4394b0 <__strcpy_ssse3+0x1740> + 437ded: 80 79 0c 00 cmpb $0x0,0xc(%rcx) + 437df1: 0f 84 c9 16 00 00 je 4394c0 <__strcpy_ssse3+0x1750> + 437df7: 80 79 0d 00 cmpb $0x0,0xd(%rcx) + 437dfb: 0f 84 df 16 00 00 je 4394e0 <__strcpy_ssse3+0x1770> + 437e01: 80 79 0e 00 cmpb $0x0,0xe(%rcx) + 437e05: 0f 84 f5 16 00 00 je 439500 <__strcpy_ssse3+0x1790> + 437e0b: 80 79 0f 00 cmpb $0x0,0xf(%rcx) + 437e0f: 0f 84 db 15 00 00 je 4393f0 <__strcpy_ssse3+0x1680> + 437e15: 48 8d 71 10 lea 0x10(%rcx),%rsi + 437e19: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 437e1d: 66 0f ef c0 pxor %xmm0,%xmm0 + 437e21: 4c 8b 09 mov (%rcx),%r9 + 437e24: 4c 89 0a mov %r9,(%rdx) + 437e27: 66 0f 74 06 pcmpeqb (%rsi),%xmm0 + 437e2b: 4c 8b 49 08 mov 0x8(%rcx),%r9 + 437e2f: 4c 89 4a 08 mov %r9,0x8(%rdx) + 437e33: 66 0f d7 c0 pmovmskb %xmm0,%eax + 437e37: 48 29 ce sub %rcx,%rsi + 437e3a: 48 85 c0 test %rax,%rax + 437e3d: 0f 85 0d 15 00 00 jne 439350 <__strcpy_ssse3+0x15e0> + 437e43: 48 89 d0 mov %rdx,%rax + 437e46: 48 8d 52 10 lea 0x10(%rdx),%rdx + 437e4a: 48 83 e2 f0 and $0xfffffffffffffff0,%rdx + 437e4e: 48 29 d0 sub %rdx,%rax + 437e51: 48 29 c1 sub %rax,%rcx + 437e54: 48 89 c8 mov %rcx,%rax + 437e57: 48 83 e0 0f and $0xf,%rax + 437e5b: 48 c7 c6 00 00 00 00 mov $0x0,%rsi + 437e62: 0f 84 8e 00 00 00 je 437ef6 <__strcpy_ssse3+0x186> + 437e68: 48 83 f8 08 cmp $0x8,%rax + 437e6c: 73 41 jae 437eaf <__strcpy_ssse3+0x13f> + 437e6e: 48 83 f8 01 cmp $0x1,%rax + 437e72: 0f 84 f8 01 00 00 je 438070 <__strcpy_ssse3+0x300> + 437e78: 48 83 f8 02 cmp $0x2,%rax + 437e7c: 0f 84 2e 03 00 00 je 4381b0 <__strcpy_ssse3+0x440> + 437e82: 48 83 f8 03 cmp $0x3,%rax + 437e86: 0f 84 64 04 00 00 je 4382f0 <__strcpy_ssse3+0x580> + 437e8c: 48 83 f8 04 cmp $0x4,%rax + 437e90: 0f 84 9a 05 00 00 je 438430 <__strcpy_ssse3+0x6c0> + 437e96: 48 83 f8 05 cmp $0x5,%rax + 437e9a: 0f 84 d0 06 00 00 je 438570 <__strcpy_ssse3+0x800> + 437ea0: 48 83 f8 06 cmp $0x6,%rax + 437ea4: 0f 84 06 08 00 00 je 4386b0 <__strcpy_ssse3+0x940> + 437eaa: e9 51 09 00 00 jmpq 438800 <__strcpy_ssse3+0xa90> + 437eaf: 0f 84 9b 0a 00 00 je 438950 <__strcpy_ssse3+0xbe0> + 437eb5: 48 83 f8 09 cmp $0x9,%rax + 437eb9: 0f 84 d1 0b 00 00 je 438a90 <__strcpy_ssse3+0xd20> + 437ebf: 48 83 f8 0a cmp $0xa,%rax + 437ec3: 0f 84 07 0d 00 00 je 438bd0 <__strcpy_ssse3+0xe60> + 437ec9: 48 83 f8 0b cmp $0xb,%rax + 437ecd: 0f 84 3d 0e 00 00 je 438d10 <__strcpy_ssse3+0xfa0> + 437ed3: 48 83 f8 0c cmp $0xc,%rax + 437ed7: 0f 84 73 0f 00 00 je 438e50 <__strcpy_ssse3+0x10e0> + 437edd: 48 83 f8 0d cmp $0xd,%rax + 437ee1: 0f 84 a9 10 00 00 je 438f90 <__strcpy_ssse3+0x1220> + 437ee7: 48 83 f8 0e cmp $0xe,%rax + 437eeb: 0f 84 df 11 00 00 je 4390d0 <__strcpy_ssse3+0x1360> + 437ef1: e9 1a 13 00 00 jmpq 439210 <__strcpy_ssse3+0x14a0> + 437ef6: 0f 28 09 movaps (%rcx),%xmm1 + 437ef9: 0f 28 51 10 movaps 0x10(%rcx),%xmm2 + 437efd: 0f 29 0a movaps %xmm1,(%rdx) + 437f00: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 437f04: 66 0f d7 c0 pmovmskb %xmm0,%eax + 437f08: 48 8d 76 10 lea 0x10(%rsi),%rsi + 437f0c: 48 85 c0 test %rax,%rax + 437f0f: 0f 85 3b 14 00 00 jne 439350 <__strcpy_ssse3+0x15e0> + 437f15: 0f 28 5c 31 10 movaps 0x10(%rcx,%rsi,1),%xmm3 + 437f1a: 0f 29 14 32 movaps %xmm2,(%rdx,%rsi,1) + 437f1e: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 437f22: 66 0f d7 c0 pmovmskb %xmm0,%eax + 437f26: 48 8d 76 10 lea 0x10(%rsi),%rsi + 437f2a: 48 85 c0 test %rax,%rax + 437f2d: 0f 85 1d 14 00 00 jne 439350 <__strcpy_ssse3+0x15e0> + 437f33: 0f 28 64 31 10 movaps 0x10(%rcx,%rsi,1),%xmm4 + 437f38: 0f 29 1c 32 movaps %xmm3,(%rdx,%rsi,1) + 437f3c: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 + 437f40: 66 0f d7 c0 pmovmskb %xmm0,%eax + 437f44: 48 8d 76 10 lea 0x10(%rsi),%rsi + 437f48: 48 85 c0 test %rax,%rax + 437f4b: 0f 85 ff 13 00 00 jne 439350 <__strcpy_ssse3+0x15e0> + 437f51: 0f 28 4c 31 10 movaps 0x10(%rcx,%rsi,1),%xmm1 + 437f56: 0f 29 24 32 movaps %xmm4,(%rdx,%rsi,1) + 437f5a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 437f5e: 66 0f d7 c0 pmovmskb %xmm0,%eax + 437f62: 48 8d 76 10 lea 0x10(%rsi),%rsi + 437f66: 48 85 c0 test %rax,%rax + 437f69: 0f 85 e1 13 00 00 jne 439350 <__strcpy_ssse3+0x15e0> + 437f6f: 0f 28 54 31 10 movaps 0x10(%rcx,%rsi,1),%xmm2 + 437f74: 0f 29 0c 32 movaps %xmm1,(%rdx,%rsi,1) + 437f78: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 437f7c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 437f80: 48 8d 76 10 lea 0x10(%rsi),%rsi + 437f84: 48 85 c0 test %rax,%rax + 437f87: 0f 85 c3 13 00 00 jne 439350 <__strcpy_ssse3+0x15e0> + 437f8d: 0f 28 5c 31 10 movaps 0x10(%rcx,%rsi,1),%xmm3 + 437f92: 0f 29 14 32 movaps %xmm2,(%rdx,%rsi,1) + 437f96: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 437f9a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 437f9e: 48 8d 76 10 lea 0x10(%rsi),%rsi + 437fa2: 48 85 c0 test %rax,%rax + 437fa5: 0f 85 a5 13 00 00 jne 439350 <__strcpy_ssse3+0x15e0> + 437fab: 0f 29 1c 32 movaps %xmm3,(%rdx,%rsi,1) + 437faf: 48 89 c8 mov %rcx,%rax + 437fb2: 48 8d 4c 31 10 lea 0x10(%rcx,%rsi,1),%rcx + 437fb7: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 437fbb: 48 29 c8 sub %rcx,%rax + 437fbe: 48 29 c2 sub %rax,%rdx + 437fc1: 48 c7 c6 c0 ff ff ff mov $0xffffffffffffffc0,%rsi + 437fc8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 437fcf: 00 + 437fd0: 0f 28 11 movaps (%rcx),%xmm2 + 437fd3: 0f 28 e2 movaps %xmm2,%xmm4 + 437fd6: 0f 28 69 10 movaps 0x10(%rcx),%xmm5 + 437fda: 0f 28 59 20 movaps 0x20(%rcx),%xmm3 + 437fde: 0f 28 f3 movaps %xmm3,%xmm6 + 437fe1: 0f 28 79 30 movaps 0x30(%rcx),%xmm7 + 437fe5: 66 0f da d5 pminub %xmm5,%xmm2 + 437fe9: 66 0f da df pminub %xmm7,%xmm3 + 437fed: 66 0f da da pminub %xmm2,%xmm3 + 437ff1: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 + 437ff5: 66 0f d7 c3 pmovmskb %xmm3,%eax + 437ff9: 48 8d 52 40 lea 0x40(%rdx),%rdx + 437ffd: 48 8d 49 40 lea 0x40(%rcx),%rcx + 438001: 48 85 c0 test %rax,%rax + 438004: 75 12 jne 438018 <__strcpy_ssse3+0x2a8> + 438006: 0f 29 62 c0 movaps %xmm4,-0x40(%rdx) + 43800a: 0f 29 6a d0 movaps %xmm5,-0x30(%rdx) + 43800e: 0f 29 72 e0 movaps %xmm6,-0x20(%rdx) + 438012: 0f 29 7a f0 movaps %xmm7,-0x10(%rdx) + 438016: eb b8 jmp 437fd0 <__strcpy_ssse3+0x260> + 438018: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 + 43801c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438020: 48 85 c0 test %rax,%rax + 438023: 0f 85 27 13 00 00 jne 439350 <__strcpy_ssse3+0x15e0> + 438029: 66 0f 74 c5 pcmpeqb %xmm5,%xmm0 + 43802d: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438031: 0f 29 62 c0 movaps %xmm4,-0x40(%rdx) + 438035: 48 85 c0 test %rax,%rax + 438038: 48 8d 76 10 lea 0x10(%rsi),%rsi + 43803c: 0f 85 0e 13 00 00 jne 439350 <__strcpy_ssse3+0x15e0> + 438042: 66 0f 74 c6 pcmpeqb %xmm6,%xmm0 + 438046: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43804a: 0f 29 6a d0 movaps %xmm5,-0x30(%rdx) + 43804e: 48 85 c0 test %rax,%rax + 438051: 48 8d 76 10 lea 0x10(%rsi),%rsi + 438055: 0f 85 f5 12 00 00 jne 439350 <__strcpy_ssse3+0x15e0> + 43805b: 0f 29 72 e0 movaps %xmm6,-0x20(%rdx) + 43805f: 66 0f 74 c7 pcmpeqb %xmm7,%xmm0 + 438063: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438067: 48 8d 76 10 lea 0x10(%rsi),%rsi + 43806b: e9 e0 12 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> + 438070: 0f 28 49 ff movaps -0x1(%rcx),%xmm1 + 438074: 0f 28 51 0f movaps 0xf(%rcx),%xmm2 + 438078: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43807c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438080: 0f 28 da movaps %xmm2,%xmm3 + 438083: 48 85 c0 test %rax,%rax + 438086: 0f 85 0e 01 00 00 jne 43819a <__strcpy_ssse3+0x42a> + 43808c: 66 0f 3a 0f d1 01 palignr $0x1,%xmm1,%xmm2 + 438092: 0f 29 12 movaps %xmm2,(%rdx) + 438095: 0f 28 51 1f movaps 0x1f(%rcx),%xmm2 + 438099: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43809d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4380a1: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4380a5: 48 8d 49 10 lea 0x10(%rcx),%rcx + 4380a9: 0f 28 ca movaps %xmm2,%xmm1 + 4380ac: 48 85 c0 test %rax,%rax + 4380af: 0f 85 e5 00 00 00 jne 43819a <__strcpy_ssse3+0x42a> + 4380b5: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 + 4380bb: 0f 29 12 movaps %xmm2,(%rdx) + 4380be: 0f 28 51 1f movaps 0x1f(%rcx),%xmm2 + 4380c2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4380c6: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4380ca: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4380ce: 48 8d 49 10 lea 0x10(%rcx),%rcx + 4380d2: 0f 28 da movaps %xmm2,%xmm3 + 4380d5: 48 85 c0 test %rax,%rax + 4380d8: 0f 85 bc 00 00 00 jne 43819a <__strcpy_ssse3+0x42a> + 4380de: 66 0f 3a 0f d1 01 palignr $0x1,%xmm1,%xmm2 + 4380e4: 0f 29 12 movaps %xmm2,(%rdx) + 4380e7: 0f 28 51 1f movaps 0x1f(%rcx),%xmm2 + 4380eb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4380ef: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4380f3: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4380f7: 48 8d 49 10 lea 0x10(%rcx),%rcx + 4380fb: 48 85 c0 test %rax,%rax + 4380fe: 0f 85 96 00 00 00 jne 43819a <__strcpy_ssse3+0x42a> + 438104: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 + 43810a: 0f 29 12 movaps %xmm2,(%rdx) + 43810d: 48 8d 49 1f lea 0x1f(%rcx),%rcx + 438111: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438115: 48 89 c8 mov %rcx,%rax + 438118: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43811c: 48 29 c8 sub %rcx,%rax + 43811f: 48 8d 49 f1 lea -0xf(%rcx),%rcx + 438123: 48 29 c2 sub %rax,%rdx + 438126: 0f 28 49 ff movaps -0x1(%rcx),%xmm1 + 43812a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 438130: 0f 28 51 0f movaps 0xf(%rcx),%xmm2 + 438134: 0f 28 59 1f movaps 0x1f(%rcx),%xmm3 + 438138: 0f 28 f3 movaps %xmm3,%xmm6 + 43813b: 0f 28 61 2f movaps 0x2f(%rcx),%xmm4 + 43813f: 0f 28 fc movaps %xmm4,%xmm7 + 438142: 0f 28 69 3f movaps 0x3f(%rcx),%xmm5 + 438146: 66 0f da f2 pminub %xmm2,%xmm6 + 43814a: 66 0f da fd pminub %xmm5,%xmm7 + 43814e: 66 0f da fe pminub %xmm6,%xmm7 + 438152: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 438156: 66 0f d7 c7 pmovmskb %xmm7,%eax + 43815a: 0f 28 fd movaps %xmm5,%xmm7 + 43815d: 66 0f 3a 0f ec 01 palignr $0x1,%xmm4,%xmm5 + 438163: 48 85 c0 test %rax,%rax + 438166: 66 0f 3a 0f e3 01 palignr $0x1,%xmm3,%xmm4 + 43816c: 0f 85 06 ff ff ff jne 438078 <__strcpy_ssse3+0x308> + 438172: 66 0f 3a 0f da 01 palignr $0x1,%xmm2,%xmm3 + 438178: 48 8d 49 40 lea 0x40(%rcx),%rcx + 43817c: 66 0f 3a 0f d1 01 palignr $0x1,%xmm1,%xmm2 + 438182: 0f 28 cf movaps %xmm7,%xmm1 + 438185: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 438189: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 43818d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 438191: 0f 29 12 movaps %xmm2,(%rdx) + 438194: 48 8d 52 40 lea 0x40(%rdx),%rdx + 438198: eb 96 jmp 438130 <__strcpy_ssse3+0x3c0> + 43819a: f3 0f 6f 49 ff movdqu -0x1(%rcx),%xmm1 + 43819f: 48 c7 c6 0f 00 00 00 mov $0xf,%rsi + 4381a6: f3 0f 7f 4a ff movdqu %xmm1,-0x1(%rdx) + 4381ab: e9 a0 11 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> + 4381b0: 0f 28 49 fe movaps -0x2(%rcx),%xmm1 + 4381b4: 0f 28 51 0e movaps 0xe(%rcx),%xmm2 + 4381b8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4381bc: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4381c0: 0f 28 da movaps %xmm2,%xmm3 + 4381c3: 48 85 c0 test %rax,%rax + 4381c6: 0f 85 0e 01 00 00 jne 4382da <__strcpy_ssse3+0x56a> + 4381cc: 66 0f 3a 0f d1 02 palignr $0x2,%xmm1,%xmm2 + 4381d2: 0f 29 12 movaps %xmm2,(%rdx) + 4381d5: 0f 28 51 1e movaps 0x1e(%rcx),%xmm2 + 4381d9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4381dd: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4381e1: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4381e5: 48 8d 49 10 lea 0x10(%rcx),%rcx + 4381e9: 0f 28 ca movaps %xmm2,%xmm1 + 4381ec: 48 85 c0 test %rax,%rax + 4381ef: 0f 85 e5 00 00 00 jne 4382da <__strcpy_ssse3+0x56a> + 4381f5: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 + 4381fb: 0f 29 12 movaps %xmm2,(%rdx) + 4381fe: 0f 28 51 1e movaps 0x1e(%rcx),%xmm2 + 438202: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438206: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43820a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43820e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438212: 0f 28 da movaps %xmm2,%xmm3 + 438215: 48 85 c0 test %rax,%rax + 438218: 0f 85 bc 00 00 00 jne 4382da <__strcpy_ssse3+0x56a> + 43821e: 66 0f 3a 0f d1 02 palignr $0x2,%xmm1,%xmm2 + 438224: 0f 29 12 movaps %xmm2,(%rdx) + 438227: 0f 28 51 1e movaps 0x1e(%rcx),%xmm2 + 43822b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43822f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438233: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438237: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43823b: 48 85 c0 test %rax,%rax + 43823e: 0f 85 96 00 00 00 jne 4382da <__strcpy_ssse3+0x56a> + 438244: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 + 43824a: 0f 29 12 movaps %xmm2,(%rdx) + 43824d: 48 8d 49 1e lea 0x1e(%rcx),%rcx + 438251: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438255: 48 89 c8 mov %rcx,%rax + 438258: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43825c: 48 29 c8 sub %rcx,%rax + 43825f: 48 8d 49 f2 lea -0xe(%rcx),%rcx + 438263: 48 29 c2 sub %rax,%rdx + 438266: 0f 28 49 fe movaps -0x2(%rcx),%xmm1 + 43826a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 438270: 0f 28 51 0e movaps 0xe(%rcx),%xmm2 + 438274: 0f 28 59 1e movaps 0x1e(%rcx),%xmm3 + 438278: 0f 28 f3 movaps %xmm3,%xmm6 + 43827b: 0f 28 61 2e movaps 0x2e(%rcx),%xmm4 + 43827f: 0f 28 fc movaps %xmm4,%xmm7 + 438282: 0f 28 69 3e movaps 0x3e(%rcx),%xmm5 + 438286: 66 0f da f2 pminub %xmm2,%xmm6 + 43828a: 66 0f da fd pminub %xmm5,%xmm7 + 43828e: 66 0f da fe pminub %xmm6,%xmm7 + 438292: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 438296: 66 0f d7 c7 pmovmskb %xmm7,%eax + 43829a: 0f 28 fd movaps %xmm5,%xmm7 + 43829d: 66 0f 3a 0f ec 02 palignr $0x2,%xmm4,%xmm5 + 4382a3: 48 85 c0 test %rax,%rax + 4382a6: 66 0f 3a 0f e3 02 palignr $0x2,%xmm3,%xmm4 + 4382ac: 0f 85 06 ff ff ff jne 4381b8 <__strcpy_ssse3+0x448> + 4382b2: 66 0f 3a 0f da 02 palignr $0x2,%xmm2,%xmm3 + 4382b8: 48 8d 49 40 lea 0x40(%rcx),%rcx + 4382bc: 66 0f 3a 0f d1 02 palignr $0x2,%xmm1,%xmm2 + 4382c2: 0f 28 cf movaps %xmm7,%xmm1 + 4382c5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 4382c9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 4382cd: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 4382d1: 0f 29 12 movaps %xmm2,(%rdx) + 4382d4: 48 8d 52 40 lea 0x40(%rdx),%rdx + 4382d8: eb 96 jmp 438270 <__strcpy_ssse3+0x500> + 4382da: f3 0f 6f 49 fe movdqu -0x2(%rcx),%xmm1 + 4382df: 48 c7 c6 0e 00 00 00 mov $0xe,%rsi + 4382e6: f3 0f 7f 4a fe movdqu %xmm1,-0x2(%rdx) + 4382eb: e9 60 10 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> + 4382f0: 0f 28 49 fd movaps -0x3(%rcx),%xmm1 + 4382f4: 0f 28 51 0d movaps 0xd(%rcx),%xmm2 + 4382f8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4382fc: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438300: 0f 28 da movaps %xmm2,%xmm3 + 438303: 48 85 c0 test %rax,%rax + 438306: 0f 85 0e 01 00 00 jne 43841a <__strcpy_ssse3+0x6aa> + 43830c: 66 0f 3a 0f d1 03 palignr $0x3,%xmm1,%xmm2 + 438312: 0f 29 12 movaps %xmm2,(%rdx) + 438315: 0f 28 51 1d movaps 0x1d(%rcx),%xmm2 + 438319: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43831d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438321: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438325: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438329: 0f 28 ca movaps %xmm2,%xmm1 + 43832c: 48 85 c0 test %rax,%rax + 43832f: 0f 85 e5 00 00 00 jne 43841a <__strcpy_ssse3+0x6aa> + 438335: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 + 43833b: 0f 29 12 movaps %xmm2,(%rdx) + 43833e: 0f 28 51 1d movaps 0x1d(%rcx),%xmm2 + 438342: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438346: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43834a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43834e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438352: 0f 28 da movaps %xmm2,%xmm3 + 438355: 48 85 c0 test %rax,%rax + 438358: 0f 85 bc 00 00 00 jne 43841a <__strcpy_ssse3+0x6aa> + 43835e: 66 0f 3a 0f d1 03 palignr $0x3,%xmm1,%xmm2 + 438364: 0f 29 12 movaps %xmm2,(%rdx) + 438367: 0f 28 51 1d movaps 0x1d(%rcx),%xmm2 + 43836b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43836f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438373: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438377: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43837b: 48 85 c0 test %rax,%rax + 43837e: 0f 85 96 00 00 00 jne 43841a <__strcpy_ssse3+0x6aa> + 438384: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 + 43838a: 0f 29 12 movaps %xmm2,(%rdx) + 43838d: 48 8d 49 1d lea 0x1d(%rcx),%rcx + 438391: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438395: 48 89 c8 mov %rcx,%rax + 438398: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43839c: 48 29 c8 sub %rcx,%rax + 43839f: 48 8d 49 f3 lea -0xd(%rcx),%rcx + 4383a3: 48 29 c2 sub %rax,%rdx + 4383a6: 0f 28 49 fd movaps -0x3(%rcx),%xmm1 + 4383aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4383b0: 0f 28 51 0d movaps 0xd(%rcx),%xmm2 + 4383b4: 0f 28 59 1d movaps 0x1d(%rcx),%xmm3 + 4383b8: 0f 28 f3 movaps %xmm3,%xmm6 + 4383bb: 0f 28 61 2d movaps 0x2d(%rcx),%xmm4 + 4383bf: 0f 28 fc movaps %xmm4,%xmm7 + 4383c2: 0f 28 69 3d movaps 0x3d(%rcx),%xmm5 + 4383c6: 66 0f da f2 pminub %xmm2,%xmm6 + 4383ca: 66 0f da fd pminub %xmm5,%xmm7 + 4383ce: 66 0f da fe pminub %xmm6,%xmm7 + 4383d2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 4383d6: 66 0f d7 c7 pmovmskb %xmm7,%eax + 4383da: 0f 28 fd movaps %xmm5,%xmm7 + 4383dd: 66 0f 3a 0f ec 03 palignr $0x3,%xmm4,%xmm5 + 4383e3: 48 85 c0 test %rax,%rax + 4383e6: 66 0f 3a 0f e3 03 palignr $0x3,%xmm3,%xmm4 + 4383ec: 0f 85 06 ff ff ff jne 4382f8 <__strcpy_ssse3+0x588> + 4383f2: 66 0f 3a 0f da 03 palignr $0x3,%xmm2,%xmm3 + 4383f8: 48 8d 49 40 lea 0x40(%rcx),%rcx + 4383fc: 66 0f 3a 0f d1 03 palignr $0x3,%xmm1,%xmm2 + 438402: 0f 28 cf movaps %xmm7,%xmm1 + 438405: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 438409: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 43840d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 438411: 0f 29 12 movaps %xmm2,(%rdx) + 438414: 48 8d 52 40 lea 0x40(%rdx),%rdx + 438418: eb 96 jmp 4383b0 <__strcpy_ssse3+0x640> + 43841a: f3 0f 6f 49 fd movdqu -0x3(%rcx),%xmm1 + 43841f: 48 c7 c6 0d 00 00 00 mov $0xd,%rsi + 438426: f3 0f 7f 4a fd movdqu %xmm1,-0x3(%rdx) + 43842b: e9 20 0f 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> + 438430: 0f 28 49 fc movaps -0x4(%rcx),%xmm1 + 438434: 0f 28 51 0c movaps 0xc(%rcx),%xmm2 + 438438: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43843c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438440: 0f 28 da movaps %xmm2,%xmm3 + 438443: 48 85 c0 test %rax,%rax + 438446: 0f 85 0e 01 00 00 jne 43855a <__strcpy_ssse3+0x7ea> + 43844c: 66 0f 3a 0f d1 04 palignr $0x4,%xmm1,%xmm2 + 438452: 0f 29 12 movaps %xmm2,(%rdx) + 438455: 0f 28 51 1c movaps 0x1c(%rcx),%xmm2 + 438459: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43845d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438461: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438465: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438469: 0f 28 ca movaps %xmm2,%xmm1 + 43846c: 48 85 c0 test %rax,%rax + 43846f: 0f 85 e5 00 00 00 jne 43855a <__strcpy_ssse3+0x7ea> + 438475: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 + 43847b: 0f 29 12 movaps %xmm2,(%rdx) + 43847e: 0f 28 51 1c movaps 0x1c(%rcx),%xmm2 + 438482: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438486: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43848a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43848e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438492: 0f 28 da movaps %xmm2,%xmm3 + 438495: 48 85 c0 test %rax,%rax + 438498: 0f 85 bc 00 00 00 jne 43855a <__strcpy_ssse3+0x7ea> + 43849e: 66 0f 3a 0f d1 04 palignr $0x4,%xmm1,%xmm2 + 4384a4: 0f 29 12 movaps %xmm2,(%rdx) + 4384a7: 0f 28 51 1c movaps 0x1c(%rcx),%xmm2 + 4384ab: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4384af: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4384b3: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4384b7: 48 8d 49 10 lea 0x10(%rcx),%rcx + 4384bb: 48 85 c0 test %rax,%rax + 4384be: 0f 85 96 00 00 00 jne 43855a <__strcpy_ssse3+0x7ea> + 4384c4: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 + 4384ca: 0f 29 12 movaps %xmm2,(%rdx) + 4384cd: 48 8d 49 1c lea 0x1c(%rcx),%rcx + 4384d1: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4384d5: 48 89 c8 mov %rcx,%rax + 4384d8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 4384dc: 48 29 c8 sub %rcx,%rax + 4384df: 48 8d 49 f4 lea -0xc(%rcx),%rcx + 4384e3: 48 29 c2 sub %rax,%rdx + 4384e6: 0f 28 49 fc movaps -0x4(%rcx),%xmm1 + 4384ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4384f0: 0f 28 51 0c movaps 0xc(%rcx),%xmm2 + 4384f4: 0f 28 59 1c movaps 0x1c(%rcx),%xmm3 + 4384f8: 0f 28 f3 movaps %xmm3,%xmm6 + 4384fb: 0f 28 61 2c movaps 0x2c(%rcx),%xmm4 + 4384ff: 0f 28 fc movaps %xmm4,%xmm7 + 438502: 0f 28 69 3c movaps 0x3c(%rcx),%xmm5 + 438506: 66 0f da f2 pminub %xmm2,%xmm6 + 43850a: 66 0f da fd pminub %xmm5,%xmm7 + 43850e: 66 0f da fe pminub %xmm6,%xmm7 + 438512: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 438516: 66 0f d7 c7 pmovmskb %xmm7,%eax + 43851a: 0f 28 fd movaps %xmm5,%xmm7 + 43851d: 66 0f 3a 0f ec 04 palignr $0x4,%xmm4,%xmm5 + 438523: 48 85 c0 test %rax,%rax + 438526: 66 0f 3a 0f e3 04 palignr $0x4,%xmm3,%xmm4 + 43852c: 0f 85 06 ff ff ff jne 438438 <__strcpy_ssse3+0x6c8> + 438532: 66 0f 3a 0f da 04 palignr $0x4,%xmm2,%xmm3 + 438538: 48 8d 49 40 lea 0x40(%rcx),%rcx + 43853c: 66 0f 3a 0f d1 04 palignr $0x4,%xmm1,%xmm2 + 438542: 0f 28 cf movaps %xmm7,%xmm1 + 438545: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 438549: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 43854d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 438551: 0f 29 12 movaps %xmm2,(%rdx) + 438554: 48 8d 52 40 lea 0x40(%rdx),%rdx + 438558: eb 96 jmp 4384f0 <__strcpy_ssse3+0x780> + 43855a: f3 0f 6f 49 fc movdqu -0x4(%rcx),%xmm1 + 43855f: 48 c7 c6 0c 00 00 00 mov $0xc,%rsi + 438566: f3 0f 7f 4a fc movdqu %xmm1,-0x4(%rdx) + 43856b: e9 e0 0d 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> + 438570: 0f 28 49 fb movaps -0x5(%rcx),%xmm1 + 438574: 0f 28 51 0b movaps 0xb(%rcx),%xmm2 + 438578: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43857c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438580: 0f 28 da movaps %xmm2,%xmm3 + 438583: 48 85 c0 test %rax,%rax + 438586: 0f 85 0e 01 00 00 jne 43869a <__strcpy_ssse3+0x92a> + 43858c: 66 0f 3a 0f d1 05 palignr $0x5,%xmm1,%xmm2 + 438592: 0f 29 12 movaps %xmm2,(%rdx) + 438595: 0f 28 51 1b movaps 0x1b(%rcx),%xmm2 + 438599: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43859d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4385a1: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4385a5: 48 8d 49 10 lea 0x10(%rcx),%rcx + 4385a9: 0f 28 ca movaps %xmm2,%xmm1 + 4385ac: 48 85 c0 test %rax,%rax + 4385af: 0f 85 e5 00 00 00 jne 43869a <__strcpy_ssse3+0x92a> + 4385b5: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 + 4385bb: 0f 29 12 movaps %xmm2,(%rdx) + 4385be: 0f 28 51 1b movaps 0x1b(%rcx),%xmm2 + 4385c2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4385c6: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4385ca: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4385ce: 48 8d 49 10 lea 0x10(%rcx),%rcx + 4385d2: 0f 28 da movaps %xmm2,%xmm3 + 4385d5: 48 85 c0 test %rax,%rax + 4385d8: 0f 85 bc 00 00 00 jne 43869a <__strcpy_ssse3+0x92a> + 4385de: 66 0f 3a 0f d1 05 palignr $0x5,%xmm1,%xmm2 + 4385e4: 0f 29 12 movaps %xmm2,(%rdx) + 4385e7: 0f 28 51 1b movaps 0x1b(%rcx),%xmm2 + 4385eb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4385ef: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4385f3: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4385f7: 48 8d 49 10 lea 0x10(%rcx),%rcx + 4385fb: 48 85 c0 test %rax,%rax + 4385fe: 0f 85 96 00 00 00 jne 43869a <__strcpy_ssse3+0x92a> + 438604: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 + 43860a: 0f 29 12 movaps %xmm2,(%rdx) + 43860d: 48 8d 49 1b lea 0x1b(%rcx),%rcx + 438611: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438615: 48 89 c8 mov %rcx,%rax + 438618: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43861c: 48 29 c8 sub %rcx,%rax + 43861f: 48 8d 49 f5 lea -0xb(%rcx),%rcx + 438623: 48 29 c2 sub %rax,%rdx + 438626: 0f 28 49 fb movaps -0x5(%rcx),%xmm1 + 43862a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 438630: 0f 28 51 0b movaps 0xb(%rcx),%xmm2 + 438634: 0f 28 59 1b movaps 0x1b(%rcx),%xmm3 + 438638: 0f 28 f3 movaps %xmm3,%xmm6 + 43863b: 0f 28 61 2b movaps 0x2b(%rcx),%xmm4 + 43863f: 0f 28 fc movaps %xmm4,%xmm7 + 438642: 0f 28 69 3b movaps 0x3b(%rcx),%xmm5 + 438646: 66 0f da f2 pminub %xmm2,%xmm6 + 43864a: 66 0f da fd pminub %xmm5,%xmm7 + 43864e: 66 0f da fe pminub %xmm6,%xmm7 + 438652: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 438656: 66 0f d7 c7 pmovmskb %xmm7,%eax + 43865a: 0f 28 fd movaps %xmm5,%xmm7 + 43865d: 66 0f 3a 0f ec 05 palignr $0x5,%xmm4,%xmm5 + 438663: 48 85 c0 test %rax,%rax + 438666: 66 0f 3a 0f e3 05 palignr $0x5,%xmm3,%xmm4 + 43866c: 0f 85 06 ff ff ff jne 438578 <__strcpy_ssse3+0x808> + 438672: 66 0f 3a 0f da 05 palignr $0x5,%xmm2,%xmm3 + 438678: 48 8d 49 40 lea 0x40(%rcx),%rcx + 43867c: 66 0f 3a 0f d1 05 palignr $0x5,%xmm1,%xmm2 + 438682: 0f 28 cf movaps %xmm7,%xmm1 + 438685: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 438689: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 43868d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 438691: 0f 29 12 movaps %xmm2,(%rdx) + 438694: 48 8d 52 40 lea 0x40(%rdx),%rdx + 438698: eb 96 jmp 438630 <__strcpy_ssse3+0x8c0> + 43869a: f3 0f 6f 49 fb movdqu -0x5(%rcx),%xmm1 + 43869f: 48 c7 c6 0b 00 00 00 mov $0xb,%rsi + 4386a6: f3 0f 7f 4a fb movdqu %xmm1,-0x5(%rdx) + 4386ab: e9 a0 0c 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> + 4386b0: 0f 28 49 fa movaps -0x6(%rcx),%xmm1 + 4386b4: 0f 28 51 0a movaps 0xa(%rcx),%xmm2 + 4386b8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4386bc: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4386c0: 0f 28 da movaps %xmm2,%xmm3 + 4386c3: 48 85 c0 test %rax,%rax + 4386c6: 0f 85 0e 01 00 00 jne 4387da <__strcpy_ssse3+0xa6a> + 4386cc: 66 0f 3a 0f d1 06 palignr $0x6,%xmm1,%xmm2 + 4386d2: 0f 29 12 movaps %xmm2,(%rdx) + 4386d5: 0f 28 51 1a movaps 0x1a(%rcx),%xmm2 + 4386d9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4386dd: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4386e1: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4386e5: 48 8d 49 10 lea 0x10(%rcx),%rcx + 4386e9: 0f 28 ca movaps %xmm2,%xmm1 + 4386ec: 48 85 c0 test %rax,%rax + 4386ef: 0f 85 e5 00 00 00 jne 4387da <__strcpy_ssse3+0xa6a> + 4386f5: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 + 4386fb: 0f 29 12 movaps %xmm2,(%rdx) + 4386fe: 0f 28 51 1a movaps 0x1a(%rcx),%xmm2 + 438702: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438706: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43870a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43870e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438712: 0f 28 da movaps %xmm2,%xmm3 + 438715: 48 85 c0 test %rax,%rax + 438718: 0f 85 bc 00 00 00 jne 4387da <__strcpy_ssse3+0xa6a> + 43871e: 66 0f 3a 0f d1 06 palignr $0x6,%xmm1,%xmm2 + 438724: 0f 29 12 movaps %xmm2,(%rdx) + 438727: 0f 28 51 1a movaps 0x1a(%rcx),%xmm2 + 43872b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43872f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438733: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438737: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43873b: 48 85 c0 test %rax,%rax + 43873e: 0f 85 96 00 00 00 jne 4387da <__strcpy_ssse3+0xa6a> + 438744: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 + 43874a: 0f 29 12 movaps %xmm2,(%rdx) + 43874d: 48 8d 49 1a lea 0x1a(%rcx),%rcx + 438751: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438755: 48 89 c8 mov %rcx,%rax + 438758: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43875c: 48 29 c8 sub %rcx,%rax + 43875f: 48 8d 49 f6 lea -0xa(%rcx),%rcx + 438763: 48 29 c2 sub %rax,%rdx + 438766: 0f 28 49 fa movaps -0x6(%rcx),%xmm1 + 43876a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 438770: 0f 28 51 0a movaps 0xa(%rcx),%xmm2 + 438774: 0f 28 59 1a movaps 0x1a(%rcx),%xmm3 + 438778: 0f 28 f3 movaps %xmm3,%xmm6 + 43877b: 0f 28 61 2a movaps 0x2a(%rcx),%xmm4 + 43877f: 0f 28 fc movaps %xmm4,%xmm7 + 438782: 0f 28 69 3a movaps 0x3a(%rcx),%xmm5 + 438786: 66 0f da f2 pminub %xmm2,%xmm6 + 43878a: 66 0f da fd pminub %xmm5,%xmm7 + 43878e: 66 0f da fe pminub %xmm6,%xmm7 + 438792: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 438796: 66 0f d7 c7 pmovmskb %xmm7,%eax + 43879a: 0f 28 fd movaps %xmm5,%xmm7 + 43879d: 66 0f 3a 0f ec 06 palignr $0x6,%xmm4,%xmm5 + 4387a3: 48 85 c0 test %rax,%rax + 4387a6: 66 0f 3a 0f e3 06 palignr $0x6,%xmm3,%xmm4 + 4387ac: 0f 85 06 ff ff ff jne 4386b8 <__strcpy_ssse3+0x948> + 4387b2: 66 0f 3a 0f da 06 palignr $0x6,%xmm2,%xmm3 + 4387b8: 48 8d 49 40 lea 0x40(%rcx),%rcx + 4387bc: 66 0f 3a 0f d1 06 palignr $0x6,%xmm1,%xmm2 + 4387c2: 0f 28 cf movaps %xmm7,%xmm1 + 4387c5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 4387c9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 4387cd: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 4387d1: 0f 29 12 movaps %xmm2,(%rdx) + 4387d4: 48 8d 52 40 lea 0x40(%rdx),%rdx + 4387d8: eb 96 jmp 438770 <__strcpy_ssse3+0xa00> + 4387da: 4c 8b 09 mov (%rcx),%r9 + 4387dd: 8b 71 06 mov 0x6(%rcx),%esi + 4387e0: 4c 89 0a mov %r9,(%rdx) + 4387e3: 89 72 06 mov %esi,0x6(%rdx) + 4387e6: 48 c7 c6 0a 00 00 00 mov $0xa,%rsi + 4387ed: e9 5e 0b 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> + 4387f2: 0f 1f 40 00 nopl 0x0(%rax) + 4387f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4387fd: 00 00 00 + 438800: 0f 28 49 f9 movaps -0x7(%rcx),%xmm1 + 438804: 0f 28 51 09 movaps 0x9(%rcx),%xmm2 + 438808: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43880c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438810: 0f 28 da movaps %xmm2,%xmm3 + 438813: 48 85 c0 test %rax,%rax + 438816: 0f 85 0e 01 00 00 jne 43892a <__strcpy_ssse3+0xbba> + 43881c: 66 0f 3a 0f d1 07 palignr $0x7,%xmm1,%xmm2 + 438822: 0f 29 12 movaps %xmm2,(%rdx) + 438825: 0f 28 51 19 movaps 0x19(%rcx),%xmm2 + 438829: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43882d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438831: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438835: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438839: 0f 28 ca movaps %xmm2,%xmm1 + 43883c: 48 85 c0 test %rax,%rax + 43883f: 0f 85 e5 00 00 00 jne 43892a <__strcpy_ssse3+0xbba> + 438845: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 + 43884b: 0f 29 12 movaps %xmm2,(%rdx) + 43884e: 0f 28 51 19 movaps 0x19(%rcx),%xmm2 + 438852: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438856: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43885a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43885e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438862: 0f 28 da movaps %xmm2,%xmm3 + 438865: 48 85 c0 test %rax,%rax + 438868: 0f 85 bc 00 00 00 jne 43892a <__strcpy_ssse3+0xbba> + 43886e: 66 0f 3a 0f d1 07 palignr $0x7,%xmm1,%xmm2 + 438874: 0f 29 12 movaps %xmm2,(%rdx) + 438877: 0f 28 51 19 movaps 0x19(%rcx),%xmm2 + 43887b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43887f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438883: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438887: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43888b: 48 85 c0 test %rax,%rax + 43888e: 0f 85 96 00 00 00 jne 43892a <__strcpy_ssse3+0xbba> + 438894: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 + 43889a: 0f 29 12 movaps %xmm2,(%rdx) + 43889d: 48 8d 49 19 lea 0x19(%rcx),%rcx + 4388a1: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4388a5: 48 89 c8 mov %rcx,%rax + 4388a8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 4388ac: 48 29 c8 sub %rcx,%rax + 4388af: 48 8d 49 f7 lea -0x9(%rcx),%rcx + 4388b3: 48 29 c2 sub %rax,%rdx + 4388b6: 0f 28 49 f9 movaps -0x7(%rcx),%xmm1 + 4388ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4388c0: 0f 28 51 09 movaps 0x9(%rcx),%xmm2 + 4388c4: 0f 28 59 19 movaps 0x19(%rcx),%xmm3 + 4388c8: 0f 28 f3 movaps %xmm3,%xmm6 + 4388cb: 0f 28 61 29 movaps 0x29(%rcx),%xmm4 + 4388cf: 0f 28 fc movaps %xmm4,%xmm7 + 4388d2: 0f 28 69 39 movaps 0x39(%rcx),%xmm5 + 4388d6: 66 0f da f2 pminub %xmm2,%xmm6 + 4388da: 66 0f da fd pminub %xmm5,%xmm7 + 4388de: 66 0f da fe pminub %xmm6,%xmm7 + 4388e2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 4388e6: 66 0f d7 c7 pmovmskb %xmm7,%eax + 4388ea: 0f 28 fd movaps %xmm5,%xmm7 + 4388ed: 66 0f 3a 0f ec 07 palignr $0x7,%xmm4,%xmm5 + 4388f3: 48 85 c0 test %rax,%rax + 4388f6: 66 0f 3a 0f e3 07 palignr $0x7,%xmm3,%xmm4 + 4388fc: 0f 85 06 ff ff ff jne 438808 <__strcpy_ssse3+0xa98> + 438902: 66 0f 3a 0f da 07 palignr $0x7,%xmm2,%xmm3 + 438908: 48 8d 49 40 lea 0x40(%rcx),%rcx + 43890c: 66 0f 3a 0f d1 07 palignr $0x7,%xmm1,%xmm2 + 438912: 0f 28 cf movaps %xmm7,%xmm1 + 438915: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 438919: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 43891d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 438921: 0f 29 12 movaps %xmm2,(%rdx) + 438924: 48 8d 52 40 lea 0x40(%rdx),%rdx + 438928: eb 96 jmp 4388c0 <__strcpy_ssse3+0xb50> + 43892a: 4c 8b 09 mov (%rcx),%r9 + 43892d: 8b 71 05 mov 0x5(%rcx),%esi + 438930: 4c 89 0a mov %r9,(%rdx) + 438933: 89 72 05 mov %esi,0x5(%rdx) + 438936: 48 c7 c6 09 00 00 00 mov $0x9,%rsi + 43893d: e9 0e 0a 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> + 438942: 0f 1f 40 00 nopl 0x0(%rax) + 438946: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43894d: 00 00 00 + 438950: 0f 28 49 f8 movaps -0x8(%rcx),%xmm1 + 438954: 0f 28 51 08 movaps 0x8(%rcx),%xmm2 + 438958: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43895c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438960: 0f 28 da movaps %xmm2,%xmm3 + 438963: 48 85 c0 test %rax,%rax + 438966: 0f 85 0e 01 00 00 jne 438a7a <__strcpy_ssse3+0xd0a> + 43896c: 66 0f 3a 0f d1 08 palignr $0x8,%xmm1,%xmm2 + 438972: 0f 29 12 movaps %xmm2,(%rdx) + 438975: 0f 28 51 18 movaps 0x18(%rcx),%xmm2 + 438979: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43897d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438981: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438985: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438989: 0f 28 ca movaps %xmm2,%xmm1 + 43898c: 48 85 c0 test %rax,%rax + 43898f: 0f 85 e5 00 00 00 jne 438a7a <__strcpy_ssse3+0xd0a> + 438995: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 + 43899b: 0f 29 12 movaps %xmm2,(%rdx) + 43899e: 0f 28 51 18 movaps 0x18(%rcx),%xmm2 + 4389a2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4389a6: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4389aa: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4389ae: 48 8d 49 10 lea 0x10(%rcx),%rcx + 4389b2: 0f 28 da movaps %xmm2,%xmm3 + 4389b5: 48 85 c0 test %rax,%rax + 4389b8: 0f 85 bc 00 00 00 jne 438a7a <__strcpy_ssse3+0xd0a> + 4389be: 66 0f 3a 0f d1 08 palignr $0x8,%xmm1,%xmm2 + 4389c4: 0f 29 12 movaps %xmm2,(%rdx) + 4389c7: 0f 28 51 18 movaps 0x18(%rcx),%xmm2 + 4389cb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4389cf: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4389d3: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4389d7: 48 8d 49 10 lea 0x10(%rcx),%rcx + 4389db: 48 85 c0 test %rax,%rax + 4389de: 0f 85 96 00 00 00 jne 438a7a <__strcpy_ssse3+0xd0a> + 4389e4: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 + 4389ea: 0f 29 12 movaps %xmm2,(%rdx) + 4389ed: 48 8d 49 18 lea 0x18(%rcx),%rcx + 4389f1: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4389f5: 48 89 c8 mov %rcx,%rax + 4389f8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 4389fc: 48 29 c8 sub %rcx,%rax + 4389ff: 48 8d 49 f8 lea -0x8(%rcx),%rcx + 438a03: 48 29 c2 sub %rax,%rdx + 438a06: 0f 28 49 f8 movaps -0x8(%rcx),%xmm1 + 438a0a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 438a10: 0f 28 51 08 movaps 0x8(%rcx),%xmm2 + 438a14: 0f 28 59 18 movaps 0x18(%rcx),%xmm3 + 438a18: 0f 28 f3 movaps %xmm3,%xmm6 + 438a1b: 0f 28 61 28 movaps 0x28(%rcx),%xmm4 + 438a1f: 0f 28 fc movaps %xmm4,%xmm7 + 438a22: 0f 28 69 38 movaps 0x38(%rcx),%xmm5 + 438a26: 66 0f da f2 pminub %xmm2,%xmm6 + 438a2a: 66 0f da fd pminub %xmm5,%xmm7 + 438a2e: 66 0f da fe pminub %xmm6,%xmm7 + 438a32: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 438a36: 66 0f d7 c7 pmovmskb %xmm7,%eax + 438a3a: 0f 28 fd movaps %xmm5,%xmm7 + 438a3d: 66 0f 3a 0f ec 08 palignr $0x8,%xmm4,%xmm5 + 438a43: 48 85 c0 test %rax,%rax + 438a46: 66 0f 3a 0f e3 08 palignr $0x8,%xmm3,%xmm4 + 438a4c: 0f 85 06 ff ff ff jne 438958 <__strcpy_ssse3+0xbe8> + 438a52: 66 0f 3a 0f da 08 palignr $0x8,%xmm2,%xmm3 + 438a58: 48 8d 49 40 lea 0x40(%rcx),%rcx + 438a5c: 66 0f 3a 0f d1 08 palignr $0x8,%xmm1,%xmm2 + 438a62: 0f 28 cf movaps %xmm7,%xmm1 + 438a65: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 438a69: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 438a6d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 438a71: 0f 29 12 movaps %xmm2,(%rdx) + 438a74: 48 8d 52 40 lea 0x40(%rdx),%rdx + 438a78: eb 96 jmp 438a10 <__strcpy_ssse3+0xca0> + 438a7a: 4c 8b 09 mov (%rcx),%r9 + 438a7d: 48 c7 c6 08 00 00 00 mov $0x8,%rsi + 438a84: 4c 89 0a mov %r9,(%rdx) + 438a87: e9 c4 08 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> + 438a8c: 0f 1f 40 00 nopl 0x0(%rax) + 438a90: 0f 28 49 f7 movaps -0x9(%rcx),%xmm1 + 438a94: 0f 28 51 07 movaps 0x7(%rcx),%xmm2 + 438a98: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438a9c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438aa0: 0f 28 da movaps %xmm2,%xmm3 + 438aa3: 48 85 c0 test %rax,%rax + 438aa6: 0f 85 0e 01 00 00 jne 438bba <__strcpy_ssse3+0xe4a> + 438aac: 66 0f 3a 0f d1 09 palignr $0x9,%xmm1,%xmm2 + 438ab2: 0f 29 12 movaps %xmm2,(%rdx) + 438ab5: 0f 28 51 17 movaps 0x17(%rcx),%xmm2 + 438ab9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438abd: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438ac1: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438ac5: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438ac9: 0f 28 ca movaps %xmm2,%xmm1 + 438acc: 48 85 c0 test %rax,%rax + 438acf: 0f 85 e5 00 00 00 jne 438bba <__strcpy_ssse3+0xe4a> + 438ad5: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 + 438adb: 0f 29 12 movaps %xmm2,(%rdx) + 438ade: 0f 28 51 17 movaps 0x17(%rcx),%xmm2 + 438ae2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438ae6: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438aea: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438aee: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438af2: 0f 28 da movaps %xmm2,%xmm3 + 438af5: 48 85 c0 test %rax,%rax + 438af8: 0f 85 bc 00 00 00 jne 438bba <__strcpy_ssse3+0xe4a> + 438afe: 66 0f 3a 0f d1 09 palignr $0x9,%xmm1,%xmm2 + 438b04: 0f 29 12 movaps %xmm2,(%rdx) + 438b07: 0f 28 51 17 movaps 0x17(%rcx),%xmm2 + 438b0b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438b0f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438b13: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438b17: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438b1b: 48 85 c0 test %rax,%rax + 438b1e: 0f 85 96 00 00 00 jne 438bba <__strcpy_ssse3+0xe4a> + 438b24: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 + 438b2a: 0f 29 12 movaps %xmm2,(%rdx) + 438b2d: 48 8d 49 17 lea 0x17(%rcx),%rcx + 438b31: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438b35: 48 89 c8 mov %rcx,%rax + 438b38: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 438b3c: 48 29 c8 sub %rcx,%rax + 438b3f: 48 8d 49 f9 lea -0x7(%rcx),%rcx + 438b43: 48 29 c2 sub %rax,%rdx + 438b46: 0f 28 49 f7 movaps -0x9(%rcx),%xmm1 + 438b4a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 438b50: 0f 28 51 07 movaps 0x7(%rcx),%xmm2 + 438b54: 0f 28 59 17 movaps 0x17(%rcx),%xmm3 + 438b58: 0f 28 f3 movaps %xmm3,%xmm6 + 438b5b: 0f 28 61 27 movaps 0x27(%rcx),%xmm4 + 438b5f: 0f 28 fc movaps %xmm4,%xmm7 + 438b62: 0f 28 69 37 movaps 0x37(%rcx),%xmm5 + 438b66: 66 0f da f2 pminub %xmm2,%xmm6 + 438b6a: 66 0f da fd pminub %xmm5,%xmm7 + 438b6e: 66 0f da fe pminub %xmm6,%xmm7 + 438b72: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 438b76: 66 0f d7 c7 pmovmskb %xmm7,%eax + 438b7a: 0f 28 fd movaps %xmm5,%xmm7 + 438b7d: 66 0f 3a 0f ec 09 palignr $0x9,%xmm4,%xmm5 + 438b83: 48 85 c0 test %rax,%rax + 438b86: 66 0f 3a 0f e3 09 palignr $0x9,%xmm3,%xmm4 + 438b8c: 0f 85 06 ff ff ff jne 438a98 <__strcpy_ssse3+0xd28> + 438b92: 66 0f 3a 0f da 09 palignr $0x9,%xmm2,%xmm3 + 438b98: 48 8d 49 40 lea 0x40(%rcx),%rcx + 438b9c: 66 0f 3a 0f d1 09 palignr $0x9,%xmm1,%xmm2 + 438ba2: 0f 28 cf movaps %xmm7,%xmm1 + 438ba5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 438ba9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 438bad: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 438bb1: 0f 29 12 movaps %xmm2,(%rdx) + 438bb4: 48 8d 52 40 lea 0x40(%rdx),%rdx + 438bb8: eb 96 jmp 438b50 <__strcpy_ssse3+0xde0> + 438bba: 4c 8b 49 ff mov -0x1(%rcx),%r9 + 438bbe: 48 c7 c6 07 00 00 00 mov $0x7,%rsi + 438bc5: 4c 89 4a ff mov %r9,-0x1(%rdx) + 438bc9: e9 82 07 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> + 438bce: 66 90 xchg %ax,%ax + 438bd0: 0f 28 49 f6 movaps -0xa(%rcx),%xmm1 + 438bd4: 0f 28 51 06 movaps 0x6(%rcx),%xmm2 + 438bd8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438bdc: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438be0: 0f 28 da movaps %xmm2,%xmm3 + 438be3: 48 85 c0 test %rax,%rax + 438be6: 0f 85 0e 01 00 00 jne 438cfa <__strcpy_ssse3+0xf8a> + 438bec: 66 0f 3a 0f d1 0a palignr $0xa,%xmm1,%xmm2 + 438bf2: 0f 29 12 movaps %xmm2,(%rdx) + 438bf5: 0f 28 51 16 movaps 0x16(%rcx),%xmm2 + 438bf9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438bfd: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438c01: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438c05: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438c09: 0f 28 ca movaps %xmm2,%xmm1 + 438c0c: 48 85 c0 test %rax,%rax + 438c0f: 0f 85 e5 00 00 00 jne 438cfa <__strcpy_ssse3+0xf8a> + 438c15: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 + 438c1b: 0f 29 12 movaps %xmm2,(%rdx) + 438c1e: 0f 28 51 16 movaps 0x16(%rcx),%xmm2 + 438c22: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438c26: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438c2a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438c2e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438c32: 0f 28 da movaps %xmm2,%xmm3 + 438c35: 48 85 c0 test %rax,%rax + 438c38: 0f 85 bc 00 00 00 jne 438cfa <__strcpy_ssse3+0xf8a> + 438c3e: 66 0f 3a 0f d1 0a palignr $0xa,%xmm1,%xmm2 + 438c44: 0f 29 12 movaps %xmm2,(%rdx) + 438c47: 0f 28 51 16 movaps 0x16(%rcx),%xmm2 + 438c4b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438c4f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438c53: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438c57: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438c5b: 48 85 c0 test %rax,%rax + 438c5e: 0f 85 96 00 00 00 jne 438cfa <__strcpy_ssse3+0xf8a> + 438c64: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 + 438c6a: 0f 29 12 movaps %xmm2,(%rdx) + 438c6d: 48 8d 49 16 lea 0x16(%rcx),%rcx + 438c71: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438c75: 48 89 c8 mov %rcx,%rax + 438c78: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 438c7c: 48 29 c8 sub %rcx,%rax + 438c7f: 48 8d 49 fa lea -0x6(%rcx),%rcx + 438c83: 48 29 c2 sub %rax,%rdx + 438c86: 0f 28 49 f6 movaps -0xa(%rcx),%xmm1 + 438c8a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 438c90: 0f 28 51 06 movaps 0x6(%rcx),%xmm2 + 438c94: 0f 28 59 16 movaps 0x16(%rcx),%xmm3 + 438c98: 0f 28 f3 movaps %xmm3,%xmm6 + 438c9b: 0f 28 61 26 movaps 0x26(%rcx),%xmm4 + 438c9f: 0f 28 fc movaps %xmm4,%xmm7 + 438ca2: 0f 28 69 36 movaps 0x36(%rcx),%xmm5 + 438ca6: 66 0f da f2 pminub %xmm2,%xmm6 + 438caa: 66 0f da fd pminub %xmm5,%xmm7 + 438cae: 66 0f da fe pminub %xmm6,%xmm7 + 438cb2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 438cb6: 66 0f d7 c7 pmovmskb %xmm7,%eax + 438cba: 0f 28 fd movaps %xmm5,%xmm7 + 438cbd: 66 0f 3a 0f ec 0a palignr $0xa,%xmm4,%xmm5 + 438cc3: 48 85 c0 test %rax,%rax + 438cc6: 66 0f 3a 0f e3 0a palignr $0xa,%xmm3,%xmm4 + 438ccc: 0f 85 06 ff ff ff jne 438bd8 <__strcpy_ssse3+0xe68> + 438cd2: 66 0f 3a 0f da 0a palignr $0xa,%xmm2,%xmm3 + 438cd8: 48 8d 49 40 lea 0x40(%rcx),%rcx + 438cdc: 66 0f 3a 0f d1 0a palignr $0xa,%xmm1,%xmm2 + 438ce2: 0f 28 cf movaps %xmm7,%xmm1 + 438ce5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 438ce9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 438ced: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 438cf1: 0f 29 12 movaps %xmm2,(%rdx) + 438cf4: 48 8d 52 40 lea 0x40(%rdx),%rdx + 438cf8: eb 96 jmp 438c90 <__strcpy_ssse3+0xf20> + 438cfa: 4c 8b 49 fe mov -0x2(%rcx),%r9 + 438cfe: 48 c7 c6 06 00 00 00 mov $0x6,%rsi + 438d05: 4c 89 4a fe mov %r9,-0x2(%rdx) + 438d09: e9 42 06 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> + 438d0e: 66 90 xchg %ax,%ax + 438d10: 0f 28 49 f5 movaps -0xb(%rcx),%xmm1 + 438d14: 0f 28 51 05 movaps 0x5(%rcx),%xmm2 + 438d18: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438d1c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438d20: 0f 28 da movaps %xmm2,%xmm3 + 438d23: 48 85 c0 test %rax,%rax + 438d26: 0f 85 0e 01 00 00 jne 438e3a <__strcpy_ssse3+0x10ca> + 438d2c: 66 0f 3a 0f d1 0b palignr $0xb,%xmm1,%xmm2 + 438d32: 0f 29 12 movaps %xmm2,(%rdx) + 438d35: 0f 28 51 15 movaps 0x15(%rcx),%xmm2 + 438d39: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438d3d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438d41: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438d45: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438d49: 0f 28 ca movaps %xmm2,%xmm1 + 438d4c: 48 85 c0 test %rax,%rax + 438d4f: 0f 85 e5 00 00 00 jne 438e3a <__strcpy_ssse3+0x10ca> + 438d55: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 + 438d5b: 0f 29 12 movaps %xmm2,(%rdx) + 438d5e: 0f 28 51 15 movaps 0x15(%rcx),%xmm2 + 438d62: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438d66: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438d6a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438d6e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438d72: 0f 28 da movaps %xmm2,%xmm3 + 438d75: 48 85 c0 test %rax,%rax + 438d78: 0f 85 bc 00 00 00 jne 438e3a <__strcpy_ssse3+0x10ca> + 438d7e: 66 0f 3a 0f d1 0b palignr $0xb,%xmm1,%xmm2 + 438d84: 0f 29 12 movaps %xmm2,(%rdx) + 438d87: 0f 28 51 15 movaps 0x15(%rcx),%xmm2 + 438d8b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438d8f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438d93: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438d97: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438d9b: 48 85 c0 test %rax,%rax + 438d9e: 0f 85 96 00 00 00 jne 438e3a <__strcpy_ssse3+0x10ca> + 438da4: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 + 438daa: 0f 29 12 movaps %xmm2,(%rdx) + 438dad: 48 8d 49 15 lea 0x15(%rcx),%rcx + 438db1: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438db5: 48 89 c8 mov %rcx,%rax + 438db8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 438dbc: 48 29 c8 sub %rcx,%rax + 438dbf: 48 8d 49 fb lea -0x5(%rcx),%rcx + 438dc3: 48 29 c2 sub %rax,%rdx + 438dc6: 0f 28 49 f5 movaps -0xb(%rcx),%xmm1 + 438dca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 438dd0: 0f 28 51 05 movaps 0x5(%rcx),%xmm2 + 438dd4: 0f 28 59 15 movaps 0x15(%rcx),%xmm3 + 438dd8: 0f 28 f3 movaps %xmm3,%xmm6 + 438ddb: 0f 28 61 25 movaps 0x25(%rcx),%xmm4 + 438ddf: 0f 28 fc movaps %xmm4,%xmm7 + 438de2: 0f 28 69 35 movaps 0x35(%rcx),%xmm5 + 438de6: 66 0f da f2 pminub %xmm2,%xmm6 + 438dea: 66 0f da fd pminub %xmm5,%xmm7 + 438dee: 66 0f da fe pminub %xmm6,%xmm7 + 438df2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 438df6: 66 0f d7 c7 pmovmskb %xmm7,%eax + 438dfa: 0f 28 fd movaps %xmm5,%xmm7 + 438dfd: 66 0f 3a 0f ec 0b palignr $0xb,%xmm4,%xmm5 + 438e03: 48 85 c0 test %rax,%rax + 438e06: 66 0f 3a 0f e3 0b palignr $0xb,%xmm3,%xmm4 + 438e0c: 0f 85 06 ff ff ff jne 438d18 <__strcpy_ssse3+0xfa8> + 438e12: 66 0f 3a 0f da 0b palignr $0xb,%xmm2,%xmm3 + 438e18: 48 8d 49 40 lea 0x40(%rcx),%rcx + 438e1c: 66 0f 3a 0f d1 0b palignr $0xb,%xmm1,%xmm2 + 438e22: 0f 28 cf movaps %xmm7,%xmm1 + 438e25: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 438e29: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 438e2d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 438e31: 0f 29 12 movaps %xmm2,(%rdx) + 438e34: 48 8d 52 40 lea 0x40(%rdx),%rdx + 438e38: eb 96 jmp 438dd0 <__strcpy_ssse3+0x1060> + 438e3a: 4c 8b 49 fd mov -0x3(%rcx),%r9 + 438e3e: 48 c7 c6 05 00 00 00 mov $0x5,%rsi + 438e45: 4c 89 4a fd mov %r9,-0x3(%rdx) + 438e49: e9 02 05 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> + 438e4e: 66 90 xchg %ax,%ax + 438e50: 0f 28 49 f4 movaps -0xc(%rcx),%xmm1 + 438e54: 0f 28 51 04 movaps 0x4(%rcx),%xmm2 + 438e58: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438e5c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438e60: 0f 28 da movaps %xmm2,%xmm3 + 438e63: 48 85 c0 test %rax,%rax + 438e66: 0f 85 0e 01 00 00 jne 438f7a <__strcpy_ssse3+0x120a> + 438e6c: 66 0f 3a 0f d1 0c palignr $0xc,%xmm1,%xmm2 + 438e72: 0f 29 12 movaps %xmm2,(%rdx) + 438e75: 0f 28 51 14 movaps 0x14(%rcx),%xmm2 + 438e79: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438e7d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438e81: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438e85: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438e89: 0f 28 ca movaps %xmm2,%xmm1 + 438e8c: 48 85 c0 test %rax,%rax + 438e8f: 0f 85 e5 00 00 00 jne 438f7a <__strcpy_ssse3+0x120a> + 438e95: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 + 438e9b: 0f 29 12 movaps %xmm2,(%rdx) + 438e9e: 0f 28 51 14 movaps 0x14(%rcx),%xmm2 + 438ea2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438ea6: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438eaa: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438eae: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438eb2: 0f 28 da movaps %xmm2,%xmm3 + 438eb5: 48 85 c0 test %rax,%rax + 438eb8: 0f 85 bc 00 00 00 jne 438f7a <__strcpy_ssse3+0x120a> + 438ebe: 66 0f 3a 0f d1 0c palignr $0xc,%xmm1,%xmm2 + 438ec4: 0f 29 12 movaps %xmm2,(%rdx) + 438ec7: 0f 28 51 14 movaps 0x14(%rcx),%xmm2 + 438ecb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438ecf: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438ed3: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438ed7: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438edb: 48 85 c0 test %rax,%rax + 438ede: 0f 85 96 00 00 00 jne 438f7a <__strcpy_ssse3+0x120a> + 438ee4: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 + 438eea: 0f 29 12 movaps %xmm2,(%rdx) + 438eed: 48 8d 49 14 lea 0x14(%rcx),%rcx + 438ef1: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438ef5: 48 89 c8 mov %rcx,%rax + 438ef8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 438efc: 48 29 c8 sub %rcx,%rax + 438eff: 48 8d 49 fc lea -0x4(%rcx),%rcx + 438f03: 48 29 c2 sub %rax,%rdx + 438f06: 0f 28 49 f4 movaps -0xc(%rcx),%xmm1 + 438f0a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 438f10: 0f 28 51 04 movaps 0x4(%rcx),%xmm2 + 438f14: 0f 28 59 14 movaps 0x14(%rcx),%xmm3 + 438f18: 0f 28 f3 movaps %xmm3,%xmm6 + 438f1b: 0f 28 61 24 movaps 0x24(%rcx),%xmm4 + 438f1f: 0f 28 fc movaps %xmm4,%xmm7 + 438f22: 0f 28 69 34 movaps 0x34(%rcx),%xmm5 + 438f26: 66 0f da f2 pminub %xmm2,%xmm6 + 438f2a: 66 0f da fd pminub %xmm5,%xmm7 + 438f2e: 66 0f da fe pminub %xmm6,%xmm7 + 438f32: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 438f36: 66 0f d7 c7 pmovmskb %xmm7,%eax + 438f3a: 0f 28 fd movaps %xmm5,%xmm7 + 438f3d: 66 0f 3a 0f ec 0c palignr $0xc,%xmm4,%xmm5 + 438f43: 48 85 c0 test %rax,%rax + 438f46: 66 0f 3a 0f e3 0c palignr $0xc,%xmm3,%xmm4 + 438f4c: 0f 85 06 ff ff ff jne 438e58 <__strcpy_ssse3+0x10e8> + 438f52: 66 0f 3a 0f da 0c palignr $0xc,%xmm2,%xmm3 + 438f58: 48 8d 49 40 lea 0x40(%rcx),%rcx + 438f5c: 66 0f 3a 0f d1 0c palignr $0xc,%xmm1,%xmm2 + 438f62: 0f 28 cf movaps %xmm7,%xmm1 + 438f65: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 438f69: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 438f6d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 438f71: 0f 29 12 movaps %xmm2,(%rdx) + 438f74: 48 8d 52 40 lea 0x40(%rdx),%rdx + 438f78: eb 96 jmp 438f10 <__strcpy_ssse3+0x11a0> + 438f7a: 44 8b 09 mov (%rcx),%r9d + 438f7d: 48 c7 c6 04 00 00 00 mov $0x4,%rsi + 438f84: 44 89 0a mov %r9d,(%rdx) + 438f87: e9 c4 03 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> + 438f8c: 0f 1f 40 00 nopl 0x0(%rax) + 438f90: 0f 28 49 f3 movaps -0xd(%rcx),%xmm1 + 438f94: 0f 28 51 03 movaps 0x3(%rcx),%xmm2 + 438f98: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438f9c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438fa0: 0f 28 da movaps %xmm2,%xmm3 + 438fa3: 48 85 c0 test %rax,%rax + 438fa6: 0f 85 0e 01 00 00 jne 4390ba <__strcpy_ssse3+0x134a> + 438fac: 66 0f 3a 0f d1 0d palignr $0xd,%xmm1,%xmm2 + 438fb2: 0f 29 12 movaps %xmm2,(%rdx) + 438fb5: 0f 28 51 13 movaps 0x13(%rcx),%xmm2 + 438fb9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438fbd: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438fc1: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438fc5: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438fc9: 0f 28 ca movaps %xmm2,%xmm1 + 438fcc: 48 85 c0 test %rax,%rax + 438fcf: 0f 85 e5 00 00 00 jne 4390ba <__strcpy_ssse3+0x134a> + 438fd5: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 + 438fdb: 0f 29 12 movaps %xmm2,(%rdx) + 438fde: 0f 28 51 13 movaps 0x13(%rcx),%xmm2 + 438fe2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 438fe6: 48 8d 52 10 lea 0x10(%rdx),%rdx + 438fea: 66 0f d7 c0 pmovmskb %xmm0,%eax + 438fee: 48 8d 49 10 lea 0x10(%rcx),%rcx + 438ff2: 0f 28 da movaps %xmm2,%xmm3 + 438ff5: 48 85 c0 test %rax,%rax + 438ff8: 0f 85 bc 00 00 00 jne 4390ba <__strcpy_ssse3+0x134a> + 438ffe: 66 0f 3a 0f d1 0d palignr $0xd,%xmm1,%xmm2 + 439004: 0f 29 12 movaps %xmm2,(%rdx) + 439007: 0f 28 51 13 movaps 0x13(%rcx),%xmm2 + 43900b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43900f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439013: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439017: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43901b: 48 85 c0 test %rax,%rax + 43901e: 0f 85 96 00 00 00 jne 4390ba <__strcpy_ssse3+0x134a> + 439024: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 + 43902a: 0f 29 12 movaps %xmm2,(%rdx) + 43902d: 48 8d 49 13 lea 0x13(%rcx),%rcx + 439031: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439035: 48 89 c8 mov %rcx,%rax + 439038: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43903c: 48 29 c8 sub %rcx,%rax + 43903f: 48 8d 49 fd lea -0x3(%rcx),%rcx + 439043: 48 29 c2 sub %rax,%rdx + 439046: 0f 28 49 f3 movaps -0xd(%rcx),%xmm1 + 43904a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 439050: 0f 28 51 03 movaps 0x3(%rcx),%xmm2 + 439054: 0f 28 59 13 movaps 0x13(%rcx),%xmm3 + 439058: 0f 28 f3 movaps %xmm3,%xmm6 + 43905b: 0f 28 61 23 movaps 0x23(%rcx),%xmm4 + 43905f: 0f 28 fc movaps %xmm4,%xmm7 + 439062: 0f 28 69 33 movaps 0x33(%rcx),%xmm5 + 439066: 66 0f da f2 pminub %xmm2,%xmm6 + 43906a: 66 0f da fd pminub %xmm5,%xmm7 + 43906e: 66 0f da fe pminub %xmm6,%xmm7 + 439072: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 439076: 66 0f d7 c7 pmovmskb %xmm7,%eax + 43907a: 0f 28 fd movaps %xmm5,%xmm7 + 43907d: 66 0f 3a 0f ec 0d palignr $0xd,%xmm4,%xmm5 + 439083: 48 85 c0 test %rax,%rax + 439086: 66 0f 3a 0f e3 0d palignr $0xd,%xmm3,%xmm4 + 43908c: 0f 85 06 ff ff ff jne 438f98 <__strcpy_ssse3+0x1228> + 439092: 66 0f 3a 0f da 0d palignr $0xd,%xmm2,%xmm3 + 439098: 48 8d 49 40 lea 0x40(%rcx),%rcx + 43909c: 66 0f 3a 0f d1 0d palignr $0xd,%xmm1,%xmm2 + 4390a2: 0f 28 cf movaps %xmm7,%xmm1 + 4390a5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 4390a9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 4390ad: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 4390b1: 0f 29 12 movaps %xmm2,(%rdx) + 4390b4: 48 8d 52 40 lea 0x40(%rdx),%rdx + 4390b8: eb 96 jmp 439050 <__strcpy_ssse3+0x12e0> + 4390ba: 44 8b 49 ff mov -0x1(%rcx),%r9d + 4390be: 48 c7 c6 03 00 00 00 mov $0x3,%rsi + 4390c5: 44 89 4a ff mov %r9d,-0x1(%rdx) + 4390c9: e9 82 02 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> + 4390ce: 66 90 xchg %ax,%ax + 4390d0: 0f 28 49 f2 movaps -0xe(%rcx),%xmm1 + 4390d4: 0f 28 51 02 movaps 0x2(%rcx),%xmm2 + 4390d8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4390dc: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4390e0: 0f 28 da movaps %xmm2,%xmm3 + 4390e3: 48 85 c0 test %rax,%rax + 4390e6: 0f 85 0e 01 00 00 jne 4391fa <__strcpy_ssse3+0x148a> + 4390ec: 66 0f 3a 0f d1 0e palignr $0xe,%xmm1,%xmm2 + 4390f2: 0f 29 12 movaps %xmm2,(%rdx) + 4390f5: 0f 28 51 12 movaps 0x12(%rcx),%xmm2 + 4390f9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4390fd: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439101: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439105: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439109: 0f 28 ca movaps %xmm2,%xmm1 + 43910c: 48 85 c0 test %rax,%rax + 43910f: 0f 85 e5 00 00 00 jne 4391fa <__strcpy_ssse3+0x148a> + 439115: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 + 43911b: 0f 29 12 movaps %xmm2,(%rdx) + 43911e: 0f 28 51 12 movaps 0x12(%rcx),%xmm2 + 439122: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439126: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43912a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43912e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439132: 0f 28 da movaps %xmm2,%xmm3 + 439135: 48 85 c0 test %rax,%rax + 439138: 0f 85 bc 00 00 00 jne 4391fa <__strcpy_ssse3+0x148a> + 43913e: 66 0f 3a 0f d1 0e palignr $0xe,%xmm1,%xmm2 + 439144: 0f 29 12 movaps %xmm2,(%rdx) + 439147: 0f 28 51 12 movaps 0x12(%rcx),%xmm2 + 43914b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43914f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439153: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439157: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43915b: 48 85 c0 test %rax,%rax + 43915e: 0f 85 96 00 00 00 jne 4391fa <__strcpy_ssse3+0x148a> + 439164: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 + 43916a: 0f 29 12 movaps %xmm2,(%rdx) + 43916d: 48 8d 49 12 lea 0x12(%rcx),%rcx + 439171: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439175: 48 89 c8 mov %rcx,%rax + 439178: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43917c: 48 29 c8 sub %rcx,%rax + 43917f: 48 8d 49 fe lea -0x2(%rcx),%rcx + 439183: 48 29 c2 sub %rax,%rdx + 439186: 0f 28 49 f2 movaps -0xe(%rcx),%xmm1 + 43918a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 439190: 0f 28 51 02 movaps 0x2(%rcx),%xmm2 + 439194: 0f 28 59 12 movaps 0x12(%rcx),%xmm3 + 439198: 0f 28 f3 movaps %xmm3,%xmm6 + 43919b: 0f 28 61 22 movaps 0x22(%rcx),%xmm4 + 43919f: 0f 28 fc movaps %xmm4,%xmm7 + 4391a2: 0f 28 69 32 movaps 0x32(%rcx),%xmm5 + 4391a6: 66 0f da f2 pminub %xmm2,%xmm6 + 4391aa: 66 0f da fd pminub %xmm5,%xmm7 + 4391ae: 66 0f da fe pminub %xmm6,%xmm7 + 4391b2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 4391b6: 66 0f d7 c7 pmovmskb %xmm7,%eax + 4391ba: 0f 28 fd movaps %xmm5,%xmm7 + 4391bd: 66 0f 3a 0f ec 0e palignr $0xe,%xmm4,%xmm5 + 4391c3: 48 85 c0 test %rax,%rax + 4391c6: 66 0f 3a 0f e3 0e palignr $0xe,%xmm3,%xmm4 + 4391cc: 0f 85 06 ff ff ff jne 4390d8 <__strcpy_ssse3+0x1368> + 4391d2: 66 0f 3a 0f da 0e palignr $0xe,%xmm2,%xmm3 + 4391d8: 48 8d 49 40 lea 0x40(%rcx),%rcx + 4391dc: 66 0f 3a 0f d1 0e palignr $0xe,%xmm1,%xmm2 + 4391e2: 0f 28 cf movaps %xmm7,%xmm1 + 4391e5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 4391e9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 4391ed: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 4391f1: 0f 29 12 movaps %xmm2,(%rdx) + 4391f4: 48 8d 52 40 lea 0x40(%rdx),%rdx + 4391f8: eb 96 jmp 439190 <__strcpy_ssse3+0x1420> + 4391fa: 44 8b 49 fe mov -0x2(%rcx),%r9d + 4391fe: 48 c7 c6 02 00 00 00 mov $0x2,%rsi + 439205: 44 89 4a fe mov %r9d,-0x2(%rdx) + 439209: e9 42 01 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> + 43920e: 66 90 xchg %ax,%ax + 439210: 0f 28 49 f1 movaps -0xf(%rcx),%xmm1 + 439214: 0f 28 51 01 movaps 0x1(%rcx),%xmm2 + 439218: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43921c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439220: 0f 28 da movaps %xmm2,%xmm3 + 439223: 48 85 c0 test %rax,%rax + 439226: 0f 85 0e 01 00 00 jne 43933a <__strcpy_ssse3+0x15ca> + 43922c: 66 0f 3a 0f d1 0f palignr $0xf,%xmm1,%xmm2 + 439232: 0f 29 12 movaps %xmm2,(%rdx) + 439235: 0f 28 51 11 movaps 0x11(%rcx),%xmm2 + 439239: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43923d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439241: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439245: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439249: 0f 28 ca movaps %xmm2,%xmm1 + 43924c: 48 85 c0 test %rax,%rax + 43924f: 0f 85 e5 00 00 00 jne 43933a <__strcpy_ssse3+0x15ca> + 439255: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 + 43925b: 0f 29 12 movaps %xmm2,(%rdx) + 43925e: 0f 28 51 11 movaps 0x11(%rcx),%xmm2 + 439262: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439266: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43926a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43926e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439272: 0f 28 da movaps %xmm2,%xmm3 + 439275: 48 85 c0 test %rax,%rax + 439278: 0f 85 bc 00 00 00 jne 43933a <__strcpy_ssse3+0x15ca> + 43927e: 66 0f 3a 0f d1 0f palignr $0xf,%xmm1,%xmm2 + 439284: 0f 29 12 movaps %xmm2,(%rdx) + 439287: 0f 28 51 11 movaps 0x11(%rcx),%xmm2 + 43928b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43928f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439293: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439297: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43929b: 48 85 c0 test %rax,%rax + 43929e: 0f 85 96 00 00 00 jne 43933a <__strcpy_ssse3+0x15ca> + 4392a4: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 + 4392aa: 0f 29 12 movaps %xmm2,(%rdx) + 4392ad: 48 8d 49 11 lea 0x11(%rcx),%rcx + 4392b1: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4392b5: 48 89 c8 mov %rcx,%rax + 4392b8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 4392bc: 48 29 c8 sub %rcx,%rax + 4392bf: 48 8d 49 ff lea -0x1(%rcx),%rcx + 4392c3: 48 29 c2 sub %rax,%rdx + 4392c6: 0f 28 49 f1 movaps -0xf(%rcx),%xmm1 + 4392ca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4392d0: 0f 28 51 01 movaps 0x1(%rcx),%xmm2 + 4392d4: 0f 28 59 11 movaps 0x11(%rcx),%xmm3 + 4392d8: 0f 28 f3 movaps %xmm3,%xmm6 + 4392db: 0f 28 61 21 movaps 0x21(%rcx),%xmm4 + 4392df: 0f 28 fc movaps %xmm4,%xmm7 + 4392e2: 0f 28 69 31 movaps 0x31(%rcx),%xmm5 + 4392e6: 66 0f da f2 pminub %xmm2,%xmm6 + 4392ea: 66 0f da fd pminub %xmm5,%xmm7 + 4392ee: 66 0f da fe pminub %xmm6,%xmm7 + 4392f2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 4392f6: 66 0f d7 c7 pmovmskb %xmm7,%eax + 4392fa: 0f 28 fd movaps %xmm5,%xmm7 + 4392fd: 66 0f 3a 0f ec 0f palignr $0xf,%xmm4,%xmm5 + 439303: 48 85 c0 test %rax,%rax + 439306: 66 0f 3a 0f e3 0f palignr $0xf,%xmm3,%xmm4 + 43930c: 0f 85 06 ff ff ff jne 439218 <__strcpy_ssse3+0x14a8> + 439312: 66 0f 3a 0f da 0f palignr $0xf,%xmm2,%xmm3 + 439318: 48 8d 49 40 lea 0x40(%rcx),%rcx + 43931c: 66 0f 3a 0f d1 0f palignr $0xf,%xmm1,%xmm2 + 439322: 0f 28 cf movaps %xmm7,%xmm1 + 439325: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 439329: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 43932d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 439331: 0f 29 12 movaps %xmm2,(%rdx) + 439334: 48 8d 52 40 lea 0x40(%rdx),%rdx + 439338: eb 96 jmp 4392d0 <__strcpy_ssse3+0x1560> + 43933a: 44 8b 49 fd mov -0x3(%rcx),%r9d + 43933e: 48 c7 c6 01 00 00 00 mov $0x1,%rsi + 439345: 44 89 4a fd mov %r9d,-0x3(%rdx) + 439349: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 439350: 48 01 f2 add %rsi,%rdx + 439353: 48 01 f1 add %rsi,%rcx + 439356: 84 c0 test %al,%al + 439358: 74 56 je 4393b0 <__strcpy_ssse3+0x1640> + 43935a: a8 01 test $0x1,%al + 43935c: 0f 85 ae 00 00 00 jne 439410 <__strcpy_ssse3+0x16a0> + 439362: a8 02 test $0x2,%al + 439364: 0f 85 b6 00 00 00 jne 439420 <__strcpy_ssse3+0x16b0> + 43936a: a8 04 test $0x4,%al + 43936c: 0f 85 be 00 00 00 jne 439430 <__strcpy_ssse3+0x16c0> + 439372: a8 08 test $0x8,%al + 439374: 0f 85 c6 00 00 00 jne 439440 <__strcpy_ssse3+0x16d0> + 43937a: a8 10 test $0x10,%al + 43937c: 0f 85 ce 00 00 00 jne 439450 <__strcpy_ssse3+0x16e0> + 439382: a8 20 test $0x20,%al + 439384: 0f 85 d6 00 00 00 jne 439460 <__strcpy_ssse3+0x16f0> + 43938a: a8 40 test $0x40,%al + 43938c: 0f 85 de 00 00 00 jne 439470 <__strcpy_ssse3+0x1700> + 439392: 0f 1f 40 00 nopl 0x0(%rax) + 439396: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43939d: 00 00 00 + 4393a0: 48 8b 01 mov (%rcx),%rax + 4393a3: 48 89 02 mov %rax,(%rdx) + 4393a6: 48 89 f8 mov %rdi,%rax + 4393a9: c3 retq + 4393aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4393b0: f6 c4 01 test $0x1,%ah + 4393b3: 0f 85 c7 00 00 00 jne 439480 <__strcpy_ssse3+0x1710> + 4393b9: f6 c4 02 test $0x2,%ah + 4393bc: 0f 85 ce 00 00 00 jne 439490 <__strcpy_ssse3+0x1720> + 4393c2: f6 c4 04 test $0x4,%ah + 4393c5: 0f 85 d5 00 00 00 jne 4394a0 <__strcpy_ssse3+0x1730> + 4393cb: f6 c4 08 test $0x8,%ah + 4393ce: 0f 85 dc 00 00 00 jne 4394b0 <__strcpy_ssse3+0x1740> + 4393d4: f6 c4 10 test $0x10,%ah + 4393d7: 0f 85 e3 00 00 00 jne 4394c0 <__strcpy_ssse3+0x1750> + 4393dd: f6 c4 20 test $0x20,%ah + 4393e0: 0f 85 fa 00 00 00 jne 4394e0 <__strcpy_ssse3+0x1770> + 4393e6: f6 c4 40 test $0x40,%ah + 4393e9: 0f 85 11 01 00 00 jne 439500 <__strcpy_ssse3+0x1790> + 4393ef: 90 nop + 4393f0: 48 8b 01 mov (%rcx),%rax + 4393f3: 48 89 02 mov %rax,(%rdx) + 4393f6: 48 8b 41 08 mov 0x8(%rcx),%rax + 4393fa: 48 89 42 08 mov %rax,0x8(%rdx) + 4393fe: 48 89 f8 mov %rdi,%rax + 439401: c3 retq + 439402: 0f 1f 40 00 nopl 0x0(%rax) + 439406: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43940d: 00 00 00 + 439410: 8a 01 mov (%rcx),%al + 439412: 88 02 mov %al,(%rdx) + 439414: 48 89 f8 mov %rdi,%rax + 439417: c3 retq + 439418: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43941f: 00 + 439420: 66 8b 01 mov (%rcx),%ax + 439423: 66 89 02 mov %ax,(%rdx) + 439426: 48 89 f8 mov %rdi,%rax + 439429: c3 retq + 43942a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 439430: 66 8b 01 mov (%rcx),%ax + 439433: 66 89 02 mov %ax,(%rdx) + 439436: 8a 41 02 mov 0x2(%rcx),%al + 439439: 88 42 02 mov %al,0x2(%rdx) + 43943c: 48 89 f8 mov %rdi,%rax + 43943f: c3 retq + 439440: 8b 01 mov (%rcx),%eax + 439442: 89 02 mov %eax,(%rdx) + 439444: 48 89 f8 mov %rdi,%rax + 439447: c3 retq + 439448: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43944f: 00 + 439450: 8b 01 mov (%rcx),%eax + 439452: 89 02 mov %eax,(%rdx) + 439454: 8a 41 04 mov 0x4(%rcx),%al + 439457: 88 42 04 mov %al,0x4(%rdx) + 43945a: 48 89 f8 mov %rdi,%rax + 43945d: c3 retq + 43945e: 66 90 xchg %ax,%ax + 439460: 8b 01 mov (%rcx),%eax + 439462: 89 02 mov %eax,(%rdx) + 439464: 66 8b 41 04 mov 0x4(%rcx),%ax + 439468: 66 89 42 04 mov %ax,0x4(%rdx) + 43946c: 48 89 f8 mov %rdi,%rax + 43946f: c3 retq + 439470: 8b 01 mov (%rcx),%eax + 439472: 89 02 mov %eax,(%rdx) + 439474: 8b 41 03 mov 0x3(%rcx),%eax + 439477: 89 42 03 mov %eax,0x3(%rdx) + 43947a: 48 89 f8 mov %rdi,%rax + 43947d: c3 retq + 43947e: 66 90 xchg %ax,%ax + 439480: 48 8b 01 mov (%rcx),%rax + 439483: 48 89 02 mov %rax,(%rdx) + 439486: 8b 41 05 mov 0x5(%rcx),%eax + 439489: 89 42 05 mov %eax,0x5(%rdx) + 43948c: 48 89 f8 mov %rdi,%rax + 43948f: c3 retq + 439490: 48 8b 01 mov (%rcx),%rax + 439493: 48 89 02 mov %rax,(%rdx) + 439496: 8b 41 06 mov 0x6(%rcx),%eax + 439499: 89 42 06 mov %eax,0x6(%rdx) + 43949c: 48 89 f8 mov %rdi,%rax + 43949f: c3 retq + 4394a0: 48 8b 01 mov (%rcx),%rax + 4394a3: 48 89 02 mov %rax,(%rdx) + 4394a6: 8b 41 07 mov 0x7(%rcx),%eax + 4394a9: 89 42 07 mov %eax,0x7(%rdx) + 4394ac: 48 89 f8 mov %rdi,%rax + 4394af: c3 retq + 4394b0: 48 8b 01 mov (%rcx),%rax + 4394b3: 48 89 02 mov %rax,(%rdx) + 4394b6: 8b 41 08 mov 0x8(%rcx),%eax + 4394b9: 89 42 08 mov %eax,0x8(%rdx) + 4394bc: 48 89 f8 mov %rdi,%rax + 4394bf: c3 retq + 4394c0: 48 8b 01 mov (%rcx),%rax + 4394c3: 48 89 02 mov %rax,(%rdx) + 4394c6: 48 8b 41 05 mov 0x5(%rcx),%rax + 4394ca: 48 89 42 05 mov %rax,0x5(%rdx) + 4394ce: 48 89 f8 mov %rdi,%rax + 4394d1: c3 retq + 4394d2: 0f 1f 40 00 nopl 0x0(%rax) + 4394d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4394dd: 00 00 00 + 4394e0: 48 8b 01 mov (%rcx),%rax + 4394e3: 48 89 02 mov %rax,(%rdx) + 4394e6: 48 8b 41 06 mov 0x6(%rcx),%rax + 4394ea: 48 89 42 06 mov %rax,0x6(%rdx) + 4394ee: 48 89 f8 mov %rdi,%rax + 4394f1: c3 retq + 4394f2: 0f 1f 40 00 nopl 0x0(%rax) + 4394f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4394fd: 00 00 00 + 439500: 48 8b 01 mov (%rcx),%rax + 439503: 48 89 02 mov %rax,(%rdx) + 439506: 48 8b 41 07 mov 0x7(%rcx),%rax + 43950a: 48 89 42 07 mov %rax,0x7(%rdx) + 43950e: 48 89 f8 mov %rdi,%rax + 439511: c3 retq + 439512: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 439519: 00 00 00 + 43951c: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000439520 <__stpcpy_ssse3>: + 439520: 48 89 f1 mov %rsi,%rcx + 439523: 48 89 fa mov %rdi,%rdx + 439526: 80 39 00 cmpb $0x0,(%rcx) + 439529: 0f 84 91 16 00 00 je 43abc0 <__stpcpy_ssse3+0x16a0> + 43952f: 80 79 01 00 cmpb $0x0,0x1(%rcx) + 439533: 0f 84 97 16 00 00 je 43abd0 <__stpcpy_ssse3+0x16b0> + 439539: 80 79 02 00 cmpb $0x0,0x2(%rcx) + 43953d: 0f 84 9d 16 00 00 je 43abe0 <__stpcpy_ssse3+0x16c0> + 439543: 80 79 03 00 cmpb $0x0,0x3(%rcx) + 439547: 0f 84 b3 16 00 00 je 43ac00 <__stpcpy_ssse3+0x16e0> + 43954d: 80 79 04 00 cmpb $0x0,0x4(%rcx) + 439551: 0f 84 b9 16 00 00 je 43ac10 <__stpcpy_ssse3+0x16f0> + 439557: 80 79 05 00 cmpb $0x0,0x5(%rcx) + 43955b: 0f 84 bf 16 00 00 je 43ac20 <__stpcpy_ssse3+0x1700> + 439561: 80 79 06 00 cmpb $0x0,0x6(%rcx) + 439565: 0f 84 d5 16 00 00 je 43ac40 <__stpcpy_ssse3+0x1720> + 43956b: 80 79 07 00 cmpb $0x0,0x7(%rcx) + 43956f: 0f 84 db 15 00 00 je 43ab50 <__stpcpy_ssse3+0x1630> + 439575: 80 79 08 00 cmpb $0x0,0x8(%rcx) + 439579: 0f 84 d1 16 00 00 je 43ac50 <__stpcpy_ssse3+0x1730> + 43957f: 80 79 09 00 cmpb $0x0,0x9(%rcx) + 439583: 0f 84 e7 16 00 00 je 43ac70 <__stpcpy_ssse3+0x1750> + 439589: 80 79 0a 00 cmpb $0x0,0xa(%rcx) + 43958d: 0f 84 fd 16 00 00 je 43ac90 <__stpcpy_ssse3+0x1770> + 439593: 80 79 0b 00 cmpb $0x0,0xb(%rcx) + 439597: 0f 84 13 17 00 00 je 43acb0 <__stpcpy_ssse3+0x1790> + 43959d: 80 79 0c 00 cmpb $0x0,0xc(%rcx) + 4395a1: 0f 84 29 17 00 00 je 43acd0 <__stpcpy_ssse3+0x17b0> + 4395a7: 80 79 0d 00 cmpb $0x0,0xd(%rcx) + 4395ab: 0f 84 3f 17 00 00 je 43acf0 <__stpcpy_ssse3+0x17d0> + 4395b1: 80 79 0e 00 cmpb $0x0,0xe(%rcx) + 4395b5: 0f 84 55 17 00 00 je 43ad10 <__stpcpy_ssse3+0x17f0> + 4395bb: 80 79 0f 00 cmpb $0x0,0xf(%rcx) + 4395bf: 0f 84 db 15 00 00 je 43aba0 <__stpcpy_ssse3+0x1680> + 4395c5: 48 8d 71 10 lea 0x10(%rcx),%rsi + 4395c9: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 4395cd: 66 0f ef c0 pxor %xmm0,%xmm0 + 4395d1: 4c 8b 09 mov (%rcx),%r9 + 4395d4: 4c 89 0a mov %r9,(%rdx) + 4395d7: 66 0f 74 06 pcmpeqb (%rsi),%xmm0 + 4395db: 4c 8b 49 08 mov 0x8(%rcx),%r9 + 4395df: 4c 89 4a 08 mov %r9,0x8(%rdx) + 4395e3: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4395e7: 48 29 ce sub %rcx,%rsi + 4395ea: 48 85 c0 test %rax,%rax + 4395ed: 0f 85 0d 15 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> + 4395f3: 48 89 d0 mov %rdx,%rax + 4395f6: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4395fa: 48 83 e2 f0 and $0xfffffffffffffff0,%rdx + 4395fe: 48 29 d0 sub %rdx,%rax + 439601: 48 29 c1 sub %rax,%rcx + 439604: 48 89 c8 mov %rcx,%rax + 439607: 48 83 e0 0f and $0xf,%rax + 43960b: 48 c7 c6 00 00 00 00 mov $0x0,%rsi + 439612: 0f 84 8e 00 00 00 je 4396a6 <__stpcpy_ssse3+0x186> + 439618: 48 83 f8 08 cmp $0x8,%rax + 43961c: 73 41 jae 43965f <__stpcpy_ssse3+0x13f> + 43961e: 48 83 f8 01 cmp $0x1,%rax + 439622: 0f 84 f8 01 00 00 je 439820 <__stpcpy_ssse3+0x300> + 439628: 48 83 f8 02 cmp $0x2,%rax + 43962c: 0f 84 2e 03 00 00 je 439960 <__stpcpy_ssse3+0x440> + 439632: 48 83 f8 03 cmp $0x3,%rax + 439636: 0f 84 64 04 00 00 je 439aa0 <__stpcpy_ssse3+0x580> + 43963c: 48 83 f8 04 cmp $0x4,%rax + 439640: 0f 84 9a 05 00 00 je 439be0 <__stpcpy_ssse3+0x6c0> + 439646: 48 83 f8 05 cmp $0x5,%rax + 43964a: 0f 84 d0 06 00 00 je 439d20 <__stpcpy_ssse3+0x800> + 439650: 48 83 f8 06 cmp $0x6,%rax + 439654: 0f 84 06 08 00 00 je 439e60 <__stpcpy_ssse3+0x940> + 43965a: e9 51 09 00 00 jmpq 439fb0 <__stpcpy_ssse3+0xa90> + 43965f: 0f 84 9b 0a 00 00 je 43a100 <__stpcpy_ssse3+0xbe0> + 439665: 48 83 f8 09 cmp $0x9,%rax + 439669: 0f 84 d1 0b 00 00 je 43a240 <__stpcpy_ssse3+0xd20> + 43966f: 48 83 f8 0a cmp $0xa,%rax + 439673: 0f 84 07 0d 00 00 je 43a380 <__stpcpy_ssse3+0xe60> + 439679: 48 83 f8 0b cmp $0xb,%rax + 43967d: 0f 84 3d 0e 00 00 je 43a4c0 <__stpcpy_ssse3+0xfa0> + 439683: 48 83 f8 0c cmp $0xc,%rax + 439687: 0f 84 73 0f 00 00 je 43a600 <__stpcpy_ssse3+0x10e0> + 43968d: 48 83 f8 0d cmp $0xd,%rax + 439691: 0f 84 a9 10 00 00 je 43a740 <__stpcpy_ssse3+0x1220> + 439697: 48 83 f8 0e cmp $0xe,%rax + 43969b: 0f 84 df 11 00 00 je 43a880 <__stpcpy_ssse3+0x1360> + 4396a1: e9 1a 13 00 00 jmpq 43a9c0 <__stpcpy_ssse3+0x14a0> + 4396a6: 0f 28 09 movaps (%rcx),%xmm1 + 4396a9: 0f 28 51 10 movaps 0x10(%rcx),%xmm2 + 4396ad: 0f 29 0a movaps %xmm1,(%rdx) + 4396b0: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4396b4: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4396b8: 48 8d 76 10 lea 0x10(%rsi),%rsi + 4396bc: 48 85 c0 test %rax,%rax + 4396bf: 0f 85 3b 14 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> + 4396c5: 0f 28 5c 31 10 movaps 0x10(%rcx,%rsi,1),%xmm3 + 4396ca: 0f 29 14 32 movaps %xmm2,(%rdx,%rsi,1) + 4396ce: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 4396d2: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4396d6: 48 8d 76 10 lea 0x10(%rsi),%rsi + 4396da: 48 85 c0 test %rax,%rax + 4396dd: 0f 85 1d 14 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> + 4396e3: 0f 28 64 31 10 movaps 0x10(%rcx,%rsi,1),%xmm4 + 4396e8: 0f 29 1c 32 movaps %xmm3,(%rdx,%rsi,1) + 4396ec: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 + 4396f0: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4396f4: 48 8d 76 10 lea 0x10(%rsi),%rsi + 4396f8: 48 85 c0 test %rax,%rax + 4396fb: 0f 85 ff 13 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> + 439701: 0f 28 4c 31 10 movaps 0x10(%rcx,%rsi,1),%xmm1 + 439706: 0f 29 24 32 movaps %xmm4,(%rdx,%rsi,1) + 43970a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 43970e: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439712: 48 8d 76 10 lea 0x10(%rsi),%rsi + 439716: 48 85 c0 test %rax,%rax + 439719: 0f 85 e1 13 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> + 43971f: 0f 28 54 31 10 movaps 0x10(%rcx,%rsi,1),%xmm2 + 439724: 0f 29 0c 32 movaps %xmm1,(%rdx,%rsi,1) + 439728: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43972c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439730: 48 8d 76 10 lea 0x10(%rsi),%rsi + 439734: 48 85 c0 test %rax,%rax + 439737: 0f 85 c3 13 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> + 43973d: 0f 28 5c 31 10 movaps 0x10(%rcx,%rsi,1),%xmm3 + 439742: 0f 29 14 32 movaps %xmm2,(%rdx,%rsi,1) + 439746: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 43974a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43974e: 48 8d 76 10 lea 0x10(%rsi),%rsi + 439752: 48 85 c0 test %rax,%rax + 439755: 0f 85 a5 13 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> + 43975b: 0f 29 1c 32 movaps %xmm3,(%rdx,%rsi,1) + 43975f: 48 89 c8 mov %rcx,%rax + 439762: 48 8d 4c 31 10 lea 0x10(%rcx,%rsi,1),%rcx + 439767: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43976b: 48 29 c8 sub %rcx,%rax + 43976e: 48 29 c2 sub %rax,%rdx + 439771: 48 c7 c6 c0 ff ff ff mov $0xffffffffffffffc0,%rsi + 439778: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43977f: 00 + 439780: 0f 28 11 movaps (%rcx),%xmm2 + 439783: 0f 28 e2 movaps %xmm2,%xmm4 + 439786: 0f 28 69 10 movaps 0x10(%rcx),%xmm5 + 43978a: 0f 28 59 20 movaps 0x20(%rcx),%xmm3 + 43978e: 0f 28 f3 movaps %xmm3,%xmm6 + 439791: 0f 28 79 30 movaps 0x30(%rcx),%xmm7 + 439795: 66 0f da d5 pminub %xmm5,%xmm2 + 439799: 66 0f da df pminub %xmm7,%xmm3 + 43979d: 66 0f da da pminub %xmm2,%xmm3 + 4397a1: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 + 4397a5: 66 0f d7 c3 pmovmskb %xmm3,%eax + 4397a9: 48 8d 52 40 lea 0x40(%rdx),%rdx + 4397ad: 48 8d 49 40 lea 0x40(%rcx),%rcx + 4397b1: 48 85 c0 test %rax,%rax + 4397b4: 75 12 jne 4397c8 <__stpcpy_ssse3+0x2a8> + 4397b6: 0f 29 62 c0 movaps %xmm4,-0x40(%rdx) + 4397ba: 0f 29 6a d0 movaps %xmm5,-0x30(%rdx) + 4397be: 0f 29 72 e0 movaps %xmm6,-0x20(%rdx) + 4397c2: 0f 29 7a f0 movaps %xmm7,-0x10(%rdx) + 4397c6: eb b8 jmp 439780 <__stpcpy_ssse3+0x260> + 4397c8: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 + 4397cc: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4397d0: 48 85 c0 test %rax,%rax + 4397d3: 0f 85 27 13 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> + 4397d9: 66 0f 74 c5 pcmpeqb %xmm5,%xmm0 + 4397dd: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4397e1: 0f 29 62 c0 movaps %xmm4,-0x40(%rdx) + 4397e5: 48 85 c0 test %rax,%rax + 4397e8: 48 8d 76 10 lea 0x10(%rsi),%rsi + 4397ec: 0f 85 0e 13 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> + 4397f2: 66 0f 74 c6 pcmpeqb %xmm6,%xmm0 + 4397f6: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4397fa: 0f 29 6a d0 movaps %xmm5,-0x30(%rdx) + 4397fe: 48 85 c0 test %rax,%rax + 439801: 48 8d 76 10 lea 0x10(%rsi),%rsi + 439805: 0f 85 f5 12 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> + 43980b: 0f 29 72 e0 movaps %xmm6,-0x20(%rdx) + 43980f: 66 0f 74 c7 pcmpeqb %xmm7,%xmm0 + 439813: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439817: 48 8d 76 10 lea 0x10(%rsi),%rsi + 43981b: e9 e0 12 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> + 439820: 0f 28 49 ff movaps -0x1(%rcx),%xmm1 + 439824: 0f 28 51 0f movaps 0xf(%rcx),%xmm2 + 439828: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43982c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439830: 0f 28 da movaps %xmm2,%xmm3 + 439833: 48 85 c0 test %rax,%rax + 439836: 0f 85 0e 01 00 00 jne 43994a <__stpcpy_ssse3+0x42a> + 43983c: 66 0f 3a 0f d1 01 palignr $0x1,%xmm1,%xmm2 + 439842: 0f 29 12 movaps %xmm2,(%rdx) + 439845: 0f 28 51 1f movaps 0x1f(%rcx),%xmm2 + 439849: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43984d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439851: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439855: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439859: 0f 28 ca movaps %xmm2,%xmm1 + 43985c: 48 85 c0 test %rax,%rax + 43985f: 0f 85 e5 00 00 00 jne 43994a <__stpcpy_ssse3+0x42a> + 439865: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 + 43986b: 0f 29 12 movaps %xmm2,(%rdx) + 43986e: 0f 28 51 1f movaps 0x1f(%rcx),%xmm2 + 439872: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439876: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43987a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43987e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439882: 0f 28 da movaps %xmm2,%xmm3 + 439885: 48 85 c0 test %rax,%rax + 439888: 0f 85 bc 00 00 00 jne 43994a <__stpcpy_ssse3+0x42a> + 43988e: 66 0f 3a 0f d1 01 palignr $0x1,%xmm1,%xmm2 + 439894: 0f 29 12 movaps %xmm2,(%rdx) + 439897: 0f 28 51 1f movaps 0x1f(%rcx),%xmm2 + 43989b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43989f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4398a3: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4398a7: 48 8d 49 10 lea 0x10(%rcx),%rcx + 4398ab: 48 85 c0 test %rax,%rax + 4398ae: 0f 85 96 00 00 00 jne 43994a <__stpcpy_ssse3+0x42a> + 4398b4: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 + 4398ba: 0f 29 12 movaps %xmm2,(%rdx) + 4398bd: 48 8d 49 1f lea 0x1f(%rcx),%rcx + 4398c1: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4398c5: 48 89 c8 mov %rcx,%rax + 4398c8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 4398cc: 48 29 c8 sub %rcx,%rax + 4398cf: 48 8d 49 f1 lea -0xf(%rcx),%rcx + 4398d3: 48 29 c2 sub %rax,%rdx + 4398d6: 0f 28 49 ff movaps -0x1(%rcx),%xmm1 + 4398da: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4398e0: 0f 28 51 0f movaps 0xf(%rcx),%xmm2 + 4398e4: 0f 28 59 1f movaps 0x1f(%rcx),%xmm3 + 4398e8: 0f 28 f3 movaps %xmm3,%xmm6 + 4398eb: 0f 28 61 2f movaps 0x2f(%rcx),%xmm4 + 4398ef: 0f 28 fc movaps %xmm4,%xmm7 + 4398f2: 0f 28 69 3f movaps 0x3f(%rcx),%xmm5 + 4398f6: 66 0f da f2 pminub %xmm2,%xmm6 + 4398fa: 66 0f da fd pminub %xmm5,%xmm7 + 4398fe: 66 0f da fe pminub %xmm6,%xmm7 + 439902: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 439906: 66 0f d7 c7 pmovmskb %xmm7,%eax + 43990a: 0f 28 fd movaps %xmm5,%xmm7 + 43990d: 66 0f 3a 0f ec 01 palignr $0x1,%xmm4,%xmm5 + 439913: 48 85 c0 test %rax,%rax + 439916: 66 0f 3a 0f e3 01 palignr $0x1,%xmm3,%xmm4 + 43991c: 0f 85 06 ff ff ff jne 439828 <__stpcpy_ssse3+0x308> + 439922: 66 0f 3a 0f da 01 palignr $0x1,%xmm2,%xmm3 + 439928: 48 8d 49 40 lea 0x40(%rcx),%rcx + 43992c: 66 0f 3a 0f d1 01 palignr $0x1,%xmm1,%xmm2 + 439932: 0f 28 cf movaps %xmm7,%xmm1 + 439935: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 439939: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 43993d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 439941: 0f 29 12 movaps %xmm2,(%rdx) + 439944: 48 8d 52 40 lea 0x40(%rdx),%rdx + 439948: eb 96 jmp 4398e0 <__stpcpy_ssse3+0x3c0> + 43994a: f3 0f 6f 49 ff movdqu -0x1(%rcx),%xmm1 + 43994f: 48 c7 c6 0f 00 00 00 mov $0xf,%rsi + 439956: f3 0f 7f 4a ff movdqu %xmm1,-0x1(%rdx) + 43995b: e9 a0 11 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> + 439960: 0f 28 49 fe movaps -0x2(%rcx),%xmm1 + 439964: 0f 28 51 0e movaps 0xe(%rcx),%xmm2 + 439968: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43996c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439970: 0f 28 da movaps %xmm2,%xmm3 + 439973: 48 85 c0 test %rax,%rax + 439976: 0f 85 0e 01 00 00 jne 439a8a <__stpcpy_ssse3+0x56a> + 43997c: 66 0f 3a 0f d1 02 palignr $0x2,%xmm1,%xmm2 + 439982: 0f 29 12 movaps %xmm2,(%rdx) + 439985: 0f 28 51 1e movaps 0x1e(%rcx),%xmm2 + 439989: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43998d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439991: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439995: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439999: 0f 28 ca movaps %xmm2,%xmm1 + 43999c: 48 85 c0 test %rax,%rax + 43999f: 0f 85 e5 00 00 00 jne 439a8a <__stpcpy_ssse3+0x56a> + 4399a5: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 + 4399ab: 0f 29 12 movaps %xmm2,(%rdx) + 4399ae: 0f 28 51 1e movaps 0x1e(%rcx),%xmm2 + 4399b2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4399b6: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4399ba: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4399be: 48 8d 49 10 lea 0x10(%rcx),%rcx + 4399c2: 0f 28 da movaps %xmm2,%xmm3 + 4399c5: 48 85 c0 test %rax,%rax + 4399c8: 0f 85 bc 00 00 00 jne 439a8a <__stpcpy_ssse3+0x56a> + 4399ce: 66 0f 3a 0f d1 02 palignr $0x2,%xmm1,%xmm2 + 4399d4: 0f 29 12 movaps %xmm2,(%rdx) + 4399d7: 0f 28 51 1e movaps 0x1e(%rcx),%xmm2 + 4399db: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 4399df: 48 8d 52 10 lea 0x10(%rdx),%rdx + 4399e3: 66 0f d7 c0 pmovmskb %xmm0,%eax + 4399e7: 48 8d 49 10 lea 0x10(%rcx),%rcx + 4399eb: 48 85 c0 test %rax,%rax + 4399ee: 0f 85 96 00 00 00 jne 439a8a <__stpcpy_ssse3+0x56a> + 4399f4: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 + 4399fa: 0f 29 12 movaps %xmm2,(%rdx) + 4399fd: 48 8d 49 1e lea 0x1e(%rcx),%rcx + 439a01: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439a05: 48 89 c8 mov %rcx,%rax + 439a08: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 439a0c: 48 29 c8 sub %rcx,%rax + 439a0f: 48 8d 49 f2 lea -0xe(%rcx),%rcx + 439a13: 48 29 c2 sub %rax,%rdx + 439a16: 0f 28 49 fe movaps -0x2(%rcx),%xmm1 + 439a1a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 439a20: 0f 28 51 0e movaps 0xe(%rcx),%xmm2 + 439a24: 0f 28 59 1e movaps 0x1e(%rcx),%xmm3 + 439a28: 0f 28 f3 movaps %xmm3,%xmm6 + 439a2b: 0f 28 61 2e movaps 0x2e(%rcx),%xmm4 + 439a2f: 0f 28 fc movaps %xmm4,%xmm7 + 439a32: 0f 28 69 3e movaps 0x3e(%rcx),%xmm5 + 439a36: 66 0f da f2 pminub %xmm2,%xmm6 + 439a3a: 66 0f da fd pminub %xmm5,%xmm7 + 439a3e: 66 0f da fe pminub %xmm6,%xmm7 + 439a42: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 439a46: 66 0f d7 c7 pmovmskb %xmm7,%eax + 439a4a: 0f 28 fd movaps %xmm5,%xmm7 + 439a4d: 66 0f 3a 0f ec 02 palignr $0x2,%xmm4,%xmm5 + 439a53: 48 85 c0 test %rax,%rax + 439a56: 66 0f 3a 0f e3 02 palignr $0x2,%xmm3,%xmm4 + 439a5c: 0f 85 06 ff ff ff jne 439968 <__stpcpy_ssse3+0x448> + 439a62: 66 0f 3a 0f da 02 palignr $0x2,%xmm2,%xmm3 + 439a68: 48 8d 49 40 lea 0x40(%rcx),%rcx + 439a6c: 66 0f 3a 0f d1 02 palignr $0x2,%xmm1,%xmm2 + 439a72: 0f 28 cf movaps %xmm7,%xmm1 + 439a75: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 439a79: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 439a7d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 439a81: 0f 29 12 movaps %xmm2,(%rdx) + 439a84: 48 8d 52 40 lea 0x40(%rdx),%rdx + 439a88: eb 96 jmp 439a20 <__stpcpy_ssse3+0x500> + 439a8a: f3 0f 6f 49 fe movdqu -0x2(%rcx),%xmm1 + 439a8f: 48 c7 c6 0e 00 00 00 mov $0xe,%rsi + 439a96: f3 0f 7f 4a fe movdqu %xmm1,-0x2(%rdx) + 439a9b: e9 60 10 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> + 439aa0: 0f 28 49 fd movaps -0x3(%rcx),%xmm1 + 439aa4: 0f 28 51 0d movaps 0xd(%rcx),%xmm2 + 439aa8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439aac: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439ab0: 0f 28 da movaps %xmm2,%xmm3 + 439ab3: 48 85 c0 test %rax,%rax + 439ab6: 0f 85 0e 01 00 00 jne 439bca <__stpcpy_ssse3+0x6aa> + 439abc: 66 0f 3a 0f d1 03 palignr $0x3,%xmm1,%xmm2 + 439ac2: 0f 29 12 movaps %xmm2,(%rdx) + 439ac5: 0f 28 51 1d movaps 0x1d(%rcx),%xmm2 + 439ac9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439acd: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439ad1: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439ad5: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439ad9: 0f 28 ca movaps %xmm2,%xmm1 + 439adc: 48 85 c0 test %rax,%rax + 439adf: 0f 85 e5 00 00 00 jne 439bca <__stpcpy_ssse3+0x6aa> + 439ae5: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 + 439aeb: 0f 29 12 movaps %xmm2,(%rdx) + 439aee: 0f 28 51 1d movaps 0x1d(%rcx),%xmm2 + 439af2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439af6: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439afa: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439afe: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439b02: 0f 28 da movaps %xmm2,%xmm3 + 439b05: 48 85 c0 test %rax,%rax + 439b08: 0f 85 bc 00 00 00 jne 439bca <__stpcpy_ssse3+0x6aa> + 439b0e: 66 0f 3a 0f d1 03 palignr $0x3,%xmm1,%xmm2 + 439b14: 0f 29 12 movaps %xmm2,(%rdx) + 439b17: 0f 28 51 1d movaps 0x1d(%rcx),%xmm2 + 439b1b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439b1f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439b23: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439b27: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439b2b: 48 85 c0 test %rax,%rax + 439b2e: 0f 85 96 00 00 00 jne 439bca <__stpcpy_ssse3+0x6aa> + 439b34: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 + 439b3a: 0f 29 12 movaps %xmm2,(%rdx) + 439b3d: 48 8d 49 1d lea 0x1d(%rcx),%rcx + 439b41: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439b45: 48 89 c8 mov %rcx,%rax + 439b48: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 439b4c: 48 29 c8 sub %rcx,%rax + 439b4f: 48 8d 49 f3 lea -0xd(%rcx),%rcx + 439b53: 48 29 c2 sub %rax,%rdx + 439b56: 0f 28 49 fd movaps -0x3(%rcx),%xmm1 + 439b5a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 439b60: 0f 28 51 0d movaps 0xd(%rcx),%xmm2 + 439b64: 0f 28 59 1d movaps 0x1d(%rcx),%xmm3 + 439b68: 0f 28 f3 movaps %xmm3,%xmm6 + 439b6b: 0f 28 61 2d movaps 0x2d(%rcx),%xmm4 + 439b6f: 0f 28 fc movaps %xmm4,%xmm7 + 439b72: 0f 28 69 3d movaps 0x3d(%rcx),%xmm5 + 439b76: 66 0f da f2 pminub %xmm2,%xmm6 + 439b7a: 66 0f da fd pminub %xmm5,%xmm7 + 439b7e: 66 0f da fe pminub %xmm6,%xmm7 + 439b82: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 439b86: 66 0f d7 c7 pmovmskb %xmm7,%eax + 439b8a: 0f 28 fd movaps %xmm5,%xmm7 + 439b8d: 66 0f 3a 0f ec 03 palignr $0x3,%xmm4,%xmm5 + 439b93: 48 85 c0 test %rax,%rax + 439b96: 66 0f 3a 0f e3 03 palignr $0x3,%xmm3,%xmm4 + 439b9c: 0f 85 06 ff ff ff jne 439aa8 <__stpcpy_ssse3+0x588> + 439ba2: 66 0f 3a 0f da 03 palignr $0x3,%xmm2,%xmm3 + 439ba8: 48 8d 49 40 lea 0x40(%rcx),%rcx + 439bac: 66 0f 3a 0f d1 03 palignr $0x3,%xmm1,%xmm2 + 439bb2: 0f 28 cf movaps %xmm7,%xmm1 + 439bb5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 439bb9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 439bbd: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 439bc1: 0f 29 12 movaps %xmm2,(%rdx) + 439bc4: 48 8d 52 40 lea 0x40(%rdx),%rdx + 439bc8: eb 96 jmp 439b60 <__stpcpy_ssse3+0x640> + 439bca: f3 0f 6f 49 fd movdqu -0x3(%rcx),%xmm1 + 439bcf: 48 c7 c6 0d 00 00 00 mov $0xd,%rsi + 439bd6: f3 0f 7f 4a fd movdqu %xmm1,-0x3(%rdx) + 439bdb: e9 20 0f 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> + 439be0: 0f 28 49 fc movaps -0x4(%rcx),%xmm1 + 439be4: 0f 28 51 0c movaps 0xc(%rcx),%xmm2 + 439be8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439bec: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439bf0: 0f 28 da movaps %xmm2,%xmm3 + 439bf3: 48 85 c0 test %rax,%rax + 439bf6: 0f 85 0e 01 00 00 jne 439d0a <__stpcpy_ssse3+0x7ea> + 439bfc: 66 0f 3a 0f d1 04 palignr $0x4,%xmm1,%xmm2 + 439c02: 0f 29 12 movaps %xmm2,(%rdx) + 439c05: 0f 28 51 1c movaps 0x1c(%rcx),%xmm2 + 439c09: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439c0d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439c11: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439c15: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439c19: 0f 28 ca movaps %xmm2,%xmm1 + 439c1c: 48 85 c0 test %rax,%rax + 439c1f: 0f 85 e5 00 00 00 jne 439d0a <__stpcpy_ssse3+0x7ea> + 439c25: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 + 439c2b: 0f 29 12 movaps %xmm2,(%rdx) + 439c2e: 0f 28 51 1c movaps 0x1c(%rcx),%xmm2 + 439c32: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439c36: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439c3a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439c3e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439c42: 0f 28 da movaps %xmm2,%xmm3 + 439c45: 48 85 c0 test %rax,%rax + 439c48: 0f 85 bc 00 00 00 jne 439d0a <__stpcpy_ssse3+0x7ea> + 439c4e: 66 0f 3a 0f d1 04 palignr $0x4,%xmm1,%xmm2 + 439c54: 0f 29 12 movaps %xmm2,(%rdx) + 439c57: 0f 28 51 1c movaps 0x1c(%rcx),%xmm2 + 439c5b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439c5f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439c63: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439c67: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439c6b: 48 85 c0 test %rax,%rax + 439c6e: 0f 85 96 00 00 00 jne 439d0a <__stpcpy_ssse3+0x7ea> + 439c74: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 + 439c7a: 0f 29 12 movaps %xmm2,(%rdx) + 439c7d: 48 8d 49 1c lea 0x1c(%rcx),%rcx + 439c81: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439c85: 48 89 c8 mov %rcx,%rax + 439c88: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 439c8c: 48 29 c8 sub %rcx,%rax + 439c8f: 48 8d 49 f4 lea -0xc(%rcx),%rcx + 439c93: 48 29 c2 sub %rax,%rdx + 439c96: 0f 28 49 fc movaps -0x4(%rcx),%xmm1 + 439c9a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 439ca0: 0f 28 51 0c movaps 0xc(%rcx),%xmm2 + 439ca4: 0f 28 59 1c movaps 0x1c(%rcx),%xmm3 + 439ca8: 0f 28 f3 movaps %xmm3,%xmm6 + 439cab: 0f 28 61 2c movaps 0x2c(%rcx),%xmm4 + 439caf: 0f 28 fc movaps %xmm4,%xmm7 + 439cb2: 0f 28 69 3c movaps 0x3c(%rcx),%xmm5 + 439cb6: 66 0f da f2 pminub %xmm2,%xmm6 + 439cba: 66 0f da fd pminub %xmm5,%xmm7 + 439cbe: 66 0f da fe pminub %xmm6,%xmm7 + 439cc2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 439cc6: 66 0f d7 c7 pmovmskb %xmm7,%eax + 439cca: 0f 28 fd movaps %xmm5,%xmm7 + 439ccd: 66 0f 3a 0f ec 04 palignr $0x4,%xmm4,%xmm5 + 439cd3: 48 85 c0 test %rax,%rax + 439cd6: 66 0f 3a 0f e3 04 palignr $0x4,%xmm3,%xmm4 + 439cdc: 0f 85 06 ff ff ff jne 439be8 <__stpcpy_ssse3+0x6c8> + 439ce2: 66 0f 3a 0f da 04 palignr $0x4,%xmm2,%xmm3 + 439ce8: 48 8d 49 40 lea 0x40(%rcx),%rcx + 439cec: 66 0f 3a 0f d1 04 palignr $0x4,%xmm1,%xmm2 + 439cf2: 0f 28 cf movaps %xmm7,%xmm1 + 439cf5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 439cf9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 439cfd: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 439d01: 0f 29 12 movaps %xmm2,(%rdx) + 439d04: 48 8d 52 40 lea 0x40(%rdx),%rdx + 439d08: eb 96 jmp 439ca0 <__stpcpy_ssse3+0x780> + 439d0a: f3 0f 6f 49 fc movdqu -0x4(%rcx),%xmm1 + 439d0f: 48 c7 c6 0c 00 00 00 mov $0xc,%rsi + 439d16: f3 0f 7f 4a fc movdqu %xmm1,-0x4(%rdx) + 439d1b: e9 e0 0d 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> + 439d20: 0f 28 49 fb movaps -0x5(%rcx),%xmm1 + 439d24: 0f 28 51 0b movaps 0xb(%rcx),%xmm2 + 439d28: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439d2c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439d30: 0f 28 da movaps %xmm2,%xmm3 + 439d33: 48 85 c0 test %rax,%rax + 439d36: 0f 85 0e 01 00 00 jne 439e4a <__stpcpy_ssse3+0x92a> + 439d3c: 66 0f 3a 0f d1 05 palignr $0x5,%xmm1,%xmm2 + 439d42: 0f 29 12 movaps %xmm2,(%rdx) + 439d45: 0f 28 51 1b movaps 0x1b(%rcx),%xmm2 + 439d49: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439d4d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439d51: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439d55: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439d59: 0f 28 ca movaps %xmm2,%xmm1 + 439d5c: 48 85 c0 test %rax,%rax + 439d5f: 0f 85 e5 00 00 00 jne 439e4a <__stpcpy_ssse3+0x92a> + 439d65: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 + 439d6b: 0f 29 12 movaps %xmm2,(%rdx) + 439d6e: 0f 28 51 1b movaps 0x1b(%rcx),%xmm2 + 439d72: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439d76: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439d7a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439d7e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439d82: 0f 28 da movaps %xmm2,%xmm3 + 439d85: 48 85 c0 test %rax,%rax + 439d88: 0f 85 bc 00 00 00 jne 439e4a <__stpcpy_ssse3+0x92a> + 439d8e: 66 0f 3a 0f d1 05 palignr $0x5,%xmm1,%xmm2 + 439d94: 0f 29 12 movaps %xmm2,(%rdx) + 439d97: 0f 28 51 1b movaps 0x1b(%rcx),%xmm2 + 439d9b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439d9f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439da3: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439da7: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439dab: 48 85 c0 test %rax,%rax + 439dae: 0f 85 96 00 00 00 jne 439e4a <__stpcpy_ssse3+0x92a> + 439db4: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 + 439dba: 0f 29 12 movaps %xmm2,(%rdx) + 439dbd: 48 8d 49 1b lea 0x1b(%rcx),%rcx + 439dc1: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439dc5: 48 89 c8 mov %rcx,%rax + 439dc8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 439dcc: 48 29 c8 sub %rcx,%rax + 439dcf: 48 8d 49 f5 lea -0xb(%rcx),%rcx + 439dd3: 48 29 c2 sub %rax,%rdx + 439dd6: 0f 28 49 fb movaps -0x5(%rcx),%xmm1 + 439dda: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 439de0: 0f 28 51 0b movaps 0xb(%rcx),%xmm2 + 439de4: 0f 28 59 1b movaps 0x1b(%rcx),%xmm3 + 439de8: 0f 28 f3 movaps %xmm3,%xmm6 + 439deb: 0f 28 61 2b movaps 0x2b(%rcx),%xmm4 + 439def: 0f 28 fc movaps %xmm4,%xmm7 + 439df2: 0f 28 69 3b movaps 0x3b(%rcx),%xmm5 + 439df6: 66 0f da f2 pminub %xmm2,%xmm6 + 439dfa: 66 0f da fd pminub %xmm5,%xmm7 + 439dfe: 66 0f da fe pminub %xmm6,%xmm7 + 439e02: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 439e06: 66 0f d7 c7 pmovmskb %xmm7,%eax + 439e0a: 0f 28 fd movaps %xmm5,%xmm7 + 439e0d: 66 0f 3a 0f ec 05 palignr $0x5,%xmm4,%xmm5 + 439e13: 48 85 c0 test %rax,%rax + 439e16: 66 0f 3a 0f e3 05 palignr $0x5,%xmm3,%xmm4 + 439e1c: 0f 85 06 ff ff ff jne 439d28 <__stpcpy_ssse3+0x808> + 439e22: 66 0f 3a 0f da 05 palignr $0x5,%xmm2,%xmm3 + 439e28: 48 8d 49 40 lea 0x40(%rcx),%rcx + 439e2c: 66 0f 3a 0f d1 05 palignr $0x5,%xmm1,%xmm2 + 439e32: 0f 28 cf movaps %xmm7,%xmm1 + 439e35: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 439e39: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 439e3d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 439e41: 0f 29 12 movaps %xmm2,(%rdx) + 439e44: 48 8d 52 40 lea 0x40(%rdx),%rdx + 439e48: eb 96 jmp 439de0 <__stpcpy_ssse3+0x8c0> + 439e4a: f3 0f 6f 49 fb movdqu -0x5(%rcx),%xmm1 + 439e4f: 48 c7 c6 0b 00 00 00 mov $0xb,%rsi + 439e56: f3 0f 7f 4a fb movdqu %xmm1,-0x5(%rdx) + 439e5b: e9 a0 0c 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> + 439e60: 0f 28 49 fa movaps -0x6(%rcx),%xmm1 + 439e64: 0f 28 51 0a movaps 0xa(%rcx),%xmm2 + 439e68: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439e6c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439e70: 0f 28 da movaps %xmm2,%xmm3 + 439e73: 48 85 c0 test %rax,%rax + 439e76: 0f 85 0e 01 00 00 jne 439f8a <__stpcpy_ssse3+0xa6a> + 439e7c: 66 0f 3a 0f d1 06 palignr $0x6,%xmm1,%xmm2 + 439e82: 0f 29 12 movaps %xmm2,(%rdx) + 439e85: 0f 28 51 1a movaps 0x1a(%rcx),%xmm2 + 439e89: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439e8d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439e91: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439e95: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439e99: 0f 28 ca movaps %xmm2,%xmm1 + 439e9c: 48 85 c0 test %rax,%rax + 439e9f: 0f 85 e5 00 00 00 jne 439f8a <__stpcpy_ssse3+0xa6a> + 439ea5: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 + 439eab: 0f 29 12 movaps %xmm2,(%rdx) + 439eae: 0f 28 51 1a movaps 0x1a(%rcx),%xmm2 + 439eb2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439eb6: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439eba: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439ebe: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439ec2: 0f 28 da movaps %xmm2,%xmm3 + 439ec5: 48 85 c0 test %rax,%rax + 439ec8: 0f 85 bc 00 00 00 jne 439f8a <__stpcpy_ssse3+0xa6a> + 439ece: 66 0f 3a 0f d1 06 palignr $0x6,%xmm1,%xmm2 + 439ed4: 0f 29 12 movaps %xmm2,(%rdx) + 439ed7: 0f 28 51 1a movaps 0x1a(%rcx),%xmm2 + 439edb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439edf: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439ee3: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439ee7: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439eeb: 48 85 c0 test %rax,%rax + 439eee: 0f 85 96 00 00 00 jne 439f8a <__stpcpy_ssse3+0xa6a> + 439ef4: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 + 439efa: 0f 29 12 movaps %xmm2,(%rdx) + 439efd: 48 8d 49 1a lea 0x1a(%rcx),%rcx + 439f01: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439f05: 48 89 c8 mov %rcx,%rax + 439f08: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 439f0c: 48 29 c8 sub %rcx,%rax + 439f0f: 48 8d 49 f6 lea -0xa(%rcx),%rcx + 439f13: 48 29 c2 sub %rax,%rdx + 439f16: 0f 28 49 fa movaps -0x6(%rcx),%xmm1 + 439f1a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 439f20: 0f 28 51 0a movaps 0xa(%rcx),%xmm2 + 439f24: 0f 28 59 1a movaps 0x1a(%rcx),%xmm3 + 439f28: 0f 28 f3 movaps %xmm3,%xmm6 + 439f2b: 0f 28 61 2a movaps 0x2a(%rcx),%xmm4 + 439f2f: 0f 28 fc movaps %xmm4,%xmm7 + 439f32: 0f 28 69 3a movaps 0x3a(%rcx),%xmm5 + 439f36: 66 0f da f2 pminub %xmm2,%xmm6 + 439f3a: 66 0f da fd pminub %xmm5,%xmm7 + 439f3e: 66 0f da fe pminub %xmm6,%xmm7 + 439f42: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 439f46: 66 0f d7 c7 pmovmskb %xmm7,%eax + 439f4a: 0f 28 fd movaps %xmm5,%xmm7 + 439f4d: 66 0f 3a 0f ec 06 palignr $0x6,%xmm4,%xmm5 + 439f53: 48 85 c0 test %rax,%rax + 439f56: 66 0f 3a 0f e3 06 palignr $0x6,%xmm3,%xmm4 + 439f5c: 0f 85 06 ff ff ff jne 439e68 <__stpcpy_ssse3+0x948> + 439f62: 66 0f 3a 0f da 06 palignr $0x6,%xmm2,%xmm3 + 439f68: 48 8d 49 40 lea 0x40(%rcx),%rcx + 439f6c: 66 0f 3a 0f d1 06 palignr $0x6,%xmm1,%xmm2 + 439f72: 0f 28 cf movaps %xmm7,%xmm1 + 439f75: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 439f79: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 439f7d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 439f81: 0f 29 12 movaps %xmm2,(%rdx) + 439f84: 48 8d 52 40 lea 0x40(%rdx),%rdx + 439f88: eb 96 jmp 439f20 <__stpcpy_ssse3+0xa00> + 439f8a: 4c 8b 09 mov (%rcx),%r9 + 439f8d: 8b 71 06 mov 0x6(%rcx),%esi + 439f90: 4c 89 0a mov %r9,(%rdx) + 439f93: 89 72 06 mov %esi,0x6(%rdx) + 439f96: 48 c7 c6 0a 00 00 00 mov $0xa,%rsi + 439f9d: e9 5e 0b 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> + 439fa2: 0f 1f 40 00 nopl 0x0(%rax) + 439fa6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 439fad: 00 00 00 + 439fb0: 0f 28 49 f9 movaps -0x7(%rcx),%xmm1 + 439fb4: 0f 28 51 09 movaps 0x9(%rcx),%xmm2 + 439fb8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439fbc: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439fc0: 0f 28 da movaps %xmm2,%xmm3 + 439fc3: 48 85 c0 test %rax,%rax + 439fc6: 0f 85 0e 01 00 00 jne 43a0da <__stpcpy_ssse3+0xbba> + 439fcc: 66 0f 3a 0f d1 07 palignr $0x7,%xmm1,%xmm2 + 439fd2: 0f 29 12 movaps %xmm2,(%rdx) + 439fd5: 0f 28 51 19 movaps 0x19(%rcx),%xmm2 + 439fd9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 439fdd: 48 8d 52 10 lea 0x10(%rdx),%rdx + 439fe1: 66 0f d7 c0 pmovmskb %xmm0,%eax + 439fe5: 48 8d 49 10 lea 0x10(%rcx),%rcx + 439fe9: 0f 28 ca movaps %xmm2,%xmm1 + 439fec: 48 85 c0 test %rax,%rax + 439fef: 0f 85 e5 00 00 00 jne 43a0da <__stpcpy_ssse3+0xbba> + 439ff5: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 + 439ffb: 0f 29 12 movaps %xmm2,(%rdx) + 439ffe: 0f 28 51 19 movaps 0x19(%rcx),%xmm2 + 43a002: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a006: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a00a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a00e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a012: 0f 28 da movaps %xmm2,%xmm3 + 43a015: 48 85 c0 test %rax,%rax + 43a018: 0f 85 bc 00 00 00 jne 43a0da <__stpcpy_ssse3+0xbba> + 43a01e: 66 0f 3a 0f d1 07 palignr $0x7,%xmm1,%xmm2 + 43a024: 0f 29 12 movaps %xmm2,(%rdx) + 43a027: 0f 28 51 19 movaps 0x19(%rcx),%xmm2 + 43a02b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a02f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a033: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a037: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a03b: 48 85 c0 test %rax,%rax + 43a03e: 0f 85 96 00 00 00 jne 43a0da <__stpcpy_ssse3+0xbba> + 43a044: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 + 43a04a: 0f 29 12 movaps %xmm2,(%rdx) + 43a04d: 48 8d 49 19 lea 0x19(%rcx),%rcx + 43a051: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a055: 48 89 c8 mov %rcx,%rax + 43a058: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43a05c: 48 29 c8 sub %rcx,%rax + 43a05f: 48 8d 49 f7 lea -0x9(%rcx),%rcx + 43a063: 48 29 c2 sub %rax,%rdx + 43a066: 0f 28 49 f9 movaps -0x7(%rcx),%xmm1 + 43a06a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43a070: 0f 28 51 09 movaps 0x9(%rcx),%xmm2 + 43a074: 0f 28 59 19 movaps 0x19(%rcx),%xmm3 + 43a078: 0f 28 f3 movaps %xmm3,%xmm6 + 43a07b: 0f 28 61 29 movaps 0x29(%rcx),%xmm4 + 43a07f: 0f 28 fc movaps %xmm4,%xmm7 + 43a082: 0f 28 69 39 movaps 0x39(%rcx),%xmm5 + 43a086: 66 0f da f2 pminub %xmm2,%xmm6 + 43a08a: 66 0f da fd pminub %xmm5,%xmm7 + 43a08e: 66 0f da fe pminub %xmm6,%xmm7 + 43a092: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 43a096: 66 0f d7 c7 pmovmskb %xmm7,%eax + 43a09a: 0f 28 fd movaps %xmm5,%xmm7 + 43a09d: 66 0f 3a 0f ec 07 palignr $0x7,%xmm4,%xmm5 + 43a0a3: 48 85 c0 test %rax,%rax + 43a0a6: 66 0f 3a 0f e3 07 palignr $0x7,%xmm3,%xmm4 + 43a0ac: 0f 85 06 ff ff ff jne 439fb8 <__stpcpy_ssse3+0xa98> + 43a0b2: 66 0f 3a 0f da 07 palignr $0x7,%xmm2,%xmm3 + 43a0b8: 48 8d 49 40 lea 0x40(%rcx),%rcx + 43a0bc: 66 0f 3a 0f d1 07 palignr $0x7,%xmm1,%xmm2 + 43a0c2: 0f 28 cf movaps %xmm7,%xmm1 + 43a0c5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 43a0c9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 43a0cd: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 43a0d1: 0f 29 12 movaps %xmm2,(%rdx) + 43a0d4: 48 8d 52 40 lea 0x40(%rdx),%rdx + 43a0d8: eb 96 jmp 43a070 <__stpcpy_ssse3+0xb50> + 43a0da: 4c 8b 09 mov (%rcx),%r9 + 43a0dd: 8b 71 05 mov 0x5(%rcx),%esi + 43a0e0: 4c 89 0a mov %r9,(%rdx) + 43a0e3: 89 72 05 mov %esi,0x5(%rdx) + 43a0e6: 48 c7 c6 09 00 00 00 mov $0x9,%rsi + 43a0ed: e9 0e 0a 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> + 43a0f2: 0f 1f 40 00 nopl 0x0(%rax) + 43a0f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43a0fd: 00 00 00 + 43a100: 0f 28 49 f8 movaps -0x8(%rcx),%xmm1 + 43a104: 0f 28 51 08 movaps 0x8(%rcx),%xmm2 + 43a108: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a10c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a110: 0f 28 da movaps %xmm2,%xmm3 + 43a113: 48 85 c0 test %rax,%rax + 43a116: 0f 85 0e 01 00 00 jne 43a22a <__stpcpy_ssse3+0xd0a> + 43a11c: 66 0f 3a 0f d1 08 palignr $0x8,%xmm1,%xmm2 + 43a122: 0f 29 12 movaps %xmm2,(%rdx) + 43a125: 0f 28 51 18 movaps 0x18(%rcx),%xmm2 + 43a129: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a12d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a131: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a135: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a139: 0f 28 ca movaps %xmm2,%xmm1 + 43a13c: 48 85 c0 test %rax,%rax + 43a13f: 0f 85 e5 00 00 00 jne 43a22a <__stpcpy_ssse3+0xd0a> + 43a145: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 + 43a14b: 0f 29 12 movaps %xmm2,(%rdx) + 43a14e: 0f 28 51 18 movaps 0x18(%rcx),%xmm2 + 43a152: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a156: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a15a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a15e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a162: 0f 28 da movaps %xmm2,%xmm3 + 43a165: 48 85 c0 test %rax,%rax + 43a168: 0f 85 bc 00 00 00 jne 43a22a <__stpcpy_ssse3+0xd0a> + 43a16e: 66 0f 3a 0f d1 08 palignr $0x8,%xmm1,%xmm2 + 43a174: 0f 29 12 movaps %xmm2,(%rdx) + 43a177: 0f 28 51 18 movaps 0x18(%rcx),%xmm2 + 43a17b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a17f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a183: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a187: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a18b: 48 85 c0 test %rax,%rax + 43a18e: 0f 85 96 00 00 00 jne 43a22a <__stpcpy_ssse3+0xd0a> + 43a194: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 + 43a19a: 0f 29 12 movaps %xmm2,(%rdx) + 43a19d: 48 8d 49 18 lea 0x18(%rcx),%rcx + 43a1a1: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a1a5: 48 89 c8 mov %rcx,%rax + 43a1a8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43a1ac: 48 29 c8 sub %rcx,%rax + 43a1af: 48 8d 49 f8 lea -0x8(%rcx),%rcx + 43a1b3: 48 29 c2 sub %rax,%rdx + 43a1b6: 0f 28 49 f8 movaps -0x8(%rcx),%xmm1 + 43a1ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43a1c0: 0f 28 51 08 movaps 0x8(%rcx),%xmm2 + 43a1c4: 0f 28 59 18 movaps 0x18(%rcx),%xmm3 + 43a1c8: 0f 28 f3 movaps %xmm3,%xmm6 + 43a1cb: 0f 28 61 28 movaps 0x28(%rcx),%xmm4 + 43a1cf: 0f 28 fc movaps %xmm4,%xmm7 + 43a1d2: 0f 28 69 38 movaps 0x38(%rcx),%xmm5 + 43a1d6: 66 0f da f2 pminub %xmm2,%xmm6 + 43a1da: 66 0f da fd pminub %xmm5,%xmm7 + 43a1de: 66 0f da fe pminub %xmm6,%xmm7 + 43a1e2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 43a1e6: 66 0f d7 c7 pmovmskb %xmm7,%eax + 43a1ea: 0f 28 fd movaps %xmm5,%xmm7 + 43a1ed: 66 0f 3a 0f ec 08 palignr $0x8,%xmm4,%xmm5 + 43a1f3: 48 85 c0 test %rax,%rax + 43a1f6: 66 0f 3a 0f e3 08 palignr $0x8,%xmm3,%xmm4 + 43a1fc: 0f 85 06 ff ff ff jne 43a108 <__stpcpy_ssse3+0xbe8> + 43a202: 66 0f 3a 0f da 08 palignr $0x8,%xmm2,%xmm3 + 43a208: 48 8d 49 40 lea 0x40(%rcx),%rcx + 43a20c: 66 0f 3a 0f d1 08 palignr $0x8,%xmm1,%xmm2 + 43a212: 0f 28 cf movaps %xmm7,%xmm1 + 43a215: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 43a219: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 43a21d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 43a221: 0f 29 12 movaps %xmm2,(%rdx) + 43a224: 48 8d 52 40 lea 0x40(%rdx),%rdx + 43a228: eb 96 jmp 43a1c0 <__stpcpy_ssse3+0xca0> + 43a22a: 4c 8b 09 mov (%rcx),%r9 + 43a22d: 48 c7 c6 08 00 00 00 mov $0x8,%rsi + 43a234: 4c 89 0a mov %r9,(%rdx) + 43a237: e9 c4 08 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> + 43a23c: 0f 1f 40 00 nopl 0x0(%rax) + 43a240: 0f 28 49 f7 movaps -0x9(%rcx),%xmm1 + 43a244: 0f 28 51 07 movaps 0x7(%rcx),%xmm2 + 43a248: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a24c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a250: 0f 28 da movaps %xmm2,%xmm3 + 43a253: 48 85 c0 test %rax,%rax + 43a256: 0f 85 0e 01 00 00 jne 43a36a <__stpcpy_ssse3+0xe4a> + 43a25c: 66 0f 3a 0f d1 09 palignr $0x9,%xmm1,%xmm2 + 43a262: 0f 29 12 movaps %xmm2,(%rdx) + 43a265: 0f 28 51 17 movaps 0x17(%rcx),%xmm2 + 43a269: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a26d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a271: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a275: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a279: 0f 28 ca movaps %xmm2,%xmm1 + 43a27c: 48 85 c0 test %rax,%rax + 43a27f: 0f 85 e5 00 00 00 jne 43a36a <__stpcpy_ssse3+0xe4a> + 43a285: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 + 43a28b: 0f 29 12 movaps %xmm2,(%rdx) + 43a28e: 0f 28 51 17 movaps 0x17(%rcx),%xmm2 + 43a292: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a296: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a29a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a29e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a2a2: 0f 28 da movaps %xmm2,%xmm3 + 43a2a5: 48 85 c0 test %rax,%rax + 43a2a8: 0f 85 bc 00 00 00 jne 43a36a <__stpcpy_ssse3+0xe4a> + 43a2ae: 66 0f 3a 0f d1 09 palignr $0x9,%xmm1,%xmm2 + 43a2b4: 0f 29 12 movaps %xmm2,(%rdx) + 43a2b7: 0f 28 51 17 movaps 0x17(%rcx),%xmm2 + 43a2bb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a2bf: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a2c3: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a2c7: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a2cb: 48 85 c0 test %rax,%rax + 43a2ce: 0f 85 96 00 00 00 jne 43a36a <__stpcpy_ssse3+0xe4a> + 43a2d4: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 + 43a2da: 0f 29 12 movaps %xmm2,(%rdx) + 43a2dd: 48 8d 49 17 lea 0x17(%rcx),%rcx + 43a2e1: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a2e5: 48 89 c8 mov %rcx,%rax + 43a2e8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43a2ec: 48 29 c8 sub %rcx,%rax + 43a2ef: 48 8d 49 f9 lea -0x7(%rcx),%rcx + 43a2f3: 48 29 c2 sub %rax,%rdx + 43a2f6: 0f 28 49 f7 movaps -0x9(%rcx),%xmm1 + 43a2fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43a300: 0f 28 51 07 movaps 0x7(%rcx),%xmm2 + 43a304: 0f 28 59 17 movaps 0x17(%rcx),%xmm3 + 43a308: 0f 28 f3 movaps %xmm3,%xmm6 + 43a30b: 0f 28 61 27 movaps 0x27(%rcx),%xmm4 + 43a30f: 0f 28 fc movaps %xmm4,%xmm7 + 43a312: 0f 28 69 37 movaps 0x37(%rcx),%xmm5 + 43a316: 66 0f da f2 pminub %xmm2,%xmm6 + 43a31a: 66 0f da fd pminub %xmm5,%xmm7 + 43a31e: 66 0f da fe pminub %xmm6,%xmm7 + 43a322: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 43a326: 66 0f d7 c7 pmovmskb %xmm7,%eax + 43a32a: 0f 28 fd movaps %xmm5,%xmm7 + 43a32d: 66 0f 3a 0f ec 09 palignr $0x9,%xmm4,%xmm5 + 43a333: 48 85 c0 test %rax,%rax + 43a336: 66 0f 3a 0f e3 09 palignr $0x9,%xmm3,%xmm4 + 43a33c: 0f 85 06 ff ff ff jne 43a248 <__stpcpy_ssse3+0xd28> + 43a342: 66 0f 3a 0f da 09 palignr $0x9,%xmm2,%xmm3 + 43a348: 48 8d 49 40 lea 0x40(%rcx),%rcx + 43a34c: 66 0f 3a 0f d1 09 palignr $0x9,%xmm1,%xmm2 + 43a352: 0f 28 cf movaps %xmm7,%xmm1 + 43a355: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 43a359: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 43a35d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 43a361: 0f 29 12 movaps %xmm2,(%rdx) + 43a364: 48 8d 52 40 lea 0x40(%rdx),%rdx + 43a368: eb 96 jmp 43a300 <__stpcpy_ssse3+0xde0> + 43a36a: 4c 8b 49 ff mov -0x1(%rcx),%r9 + 43a36e: 48 c7 c6 07 00 00 00 mov $0x7,%rsi + 43a375: 4c 89 4a ff mov %r9,-0x1(%rdx) + 43a379: e9 82 07 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> + 43a37e: 66 90 xchg %ax,%ax + 43a380: 0f 28 49 f6 movaps -0xa(%rcx),%xmm1 + 43a384: 0f 28 51 06 movaps 0x6(%rcx),%xmm2 + 43a388: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a38c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a390: 0f 28 da movaps %xmm2,%xmm3 + 43a393: 48 85 c0 test %rax,%rax + 43a396: 0f 85 0e 01 00 00 jne 43a4aa <__stpcpy_ssse3+0xf8a> + 43a39c: 66 0f 3a 0f d1 0a palignr $0xa,%xmm1,%xmm2 + 43a3a2: 0f 29 12 movaps %xmm2,(%rdx) + 43a3a5: 0f 28 51 16 movaps 0x16(%rcx),%xmm2 + 43a3a9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a3ad: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a3b1: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a3b5: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a3b9: 0f 28 ca movaps %xmm2,%xmm1 + 43a3bc: 48 85 c0 test %rax,%rax + 43a3bf: 0f 85 e5 00 00 00 jne 43a4aa <__stpcpy_ssse3+0xf8a> + 43a3c5: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 + 43a3cb: 0f 29 12 movaps %xmm2,(%rdx) + 43a3ce: 0f 28 51 16 movaps 0x16(%rcx),%xmm2 + 43a3d2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a3d6: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a3da: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a3de: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a3e2: 0f 28 da movaps %xmm2,%xmm3 + 43a3e5: 48 85 c0 test %rax,%rax + 43a3e8: 0f 85 bc 00 00 00 jne 43a4aa <__stpcpy_ssse3+0xf8a> + 43a3ee: 66 0f 3a 0f d1 0a palignr $0xa,%xmm1,%xmm2 + 43a3f4: 0f 29 12 movaps %xmm2,(%rdx) + 43a3f7: 0f 28 51 16 movaps 0x16(%rcx),%xmm2 + 43a3fb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a3ff: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a403: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a407: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a40b: 48 85 c0 test %rax,%rax + 43a40e: 0f 85 96 00 00 00 jne 43a4aa <__stpcpy_ssse3+0xf8a> + 43a414: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 + 43a41a: 0f 29 12 movaps %xmm2,(%rdx) + 43a41d: 48 8d 49 16 lea 0x16(%rcx),%rcx + 43a421: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a425: 48 89 c8 mov %rcx,%rax + 43a428: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43a42c: 48 29 c8 sub %rcx,%rax + 43a42f: 48 8d 49 fa lea -0x6(%rcx),%rcx + 43a433: 48 29 c2 sub %rax,%rdx + 43a436: 0f 28 49 f6 movaps -0xa(%rcx),%xmm1 + 43a43a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43a440: 0f 28 51 06 movaps 0x6(%rcx),%xmm2 + 43a444: 0f 28 59 16 movaps 0x16(%rcx),%xmm3 + 43a448: 0f 28 f3 movaps %xmm3,%xmm6 + 43a44b: 0f 28 61 26 movaps 0x26(%rcx),%xmm4 + 43a44f: 0f 28 fc movaps %xmm4,%xmm7 + 43a452: 0f 28 69 36 movaps 0x36(%rcx),%xmm5 + 43a456: 66 0f da f2 pminub %xmm2,%xmm6 + 43a45a: 66 0f da fd pminub %xmm5,%xmm7 + 43a45e: 66 0f da fe pminub %xmm6,%xmm7 + 43a462: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 43a466: 66 0f d7 c7 pmovmskb %xmm7,%eax + 43a46a: 0f 28 fd movaps %xmm5,%xmm7 + 43a46d: 66 0f 3a 0f ec 0a palignr $0xa,%xmm4,%xmm5 + 43a473: 48 85 c0 test %rax,%rax + 43a476: 66 0f 3a 0f e3 0a palignr $0xa,%xmm3,%xmm4 + 43a47c: 0f 85 06 ff ff ff jne 43a388 <__stpcpy_ssse3+0xe68> + 43a482: 66 0f 3a 0f da 0a palignr $0xa,%xmm2,%xmm3 + 43a488: 48 8d 49 40 lea 0x40(%rcx),%rcx + 43a48c: 66 0f 3a 0f d1 0a palignr $0xa,%xmm1,%xmm2 + 43a492: 0f 28 cf movaps %xmm7,%xmm1 + 43a495: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 43a499: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 43a49d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 43a4a1: 0f 29 12 movaps %xmm2,(%rdx) + 43a4a4: 48 8d 52 40 lea 0x40(%rdx),%rdx + 43a4a8: eb 96 jmp 43a440 <__stpcpy_ssse3+0xf20> + 43a4aa: 4c 8b 49 fe mov -0x2(%rcx),%r9 + 43a4ae: 48 c7 c6 06 00 00 00 mov $0x6,%rsi + 43a4b5: 4c 89 4a fe mov %r9,-0x2(%rdx) + 43a4b9: e9 42 06 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> + 43a4be: 66 90 xchg %ax,%ax + 43a4c0: 0f 28 49 f5 movaps -0xb(%rcx),%xmm1 + 43a4c4: 0f 28 51 05 movaps 0x5(%rcx),%xmm2 + 43a4c8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a4cc: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a4d0: 0f 28 da movaps %xmm2,%xmm3 + 43a4d3: 48 85 c0 test %rax,%rax + 43a4d6: 0f 85 0e 01 00 00 jne 43a5ea <__stpcpy_ssse3+0x10ca> + 43a4dc: 66 0f 3a 0f d1 0b palignr $0xb,%xmm1,%xmm2 + 43a4e2: 0f 29 12 movaps %xmm2,(%rdx) + 43a4e5: 0f 28 51 15 movaps 0x15(%rcx),%xmm2 + 43a4e9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a4ed: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a4f1: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a4f5: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a4f9: 0f 28 ca movaps %xmm2,%xmm1 + 43a4fc: 48 85 c0 test %rax,%rax + 43a4ff: 0f 85 e5 00 00 00 jne 43a5ea <__stpcpy_ssse3+0x10ca> + 43a505: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 + 43a50b: 0f 29 12 movaps %xmm2,(%rdx) + 43a50e: 0f 28 51 15 movaps 0x15(%rcx),%xmm2 + 43a512: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a516: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a51a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a51e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a522: 0f 28 da movaps %xmm2,%xmm3 + 43a525: 48 85 c0 test %rax,%rax + 43a528: 0f 85 bc 00 00 00 jne 43a5ea <__stpcpy_ssse3+0x10ca> + 43a52e: 66 0f 3a 0f d1 0b palignr $0xb,%xmm1,%xmm2 + 43a534: 0f 29 12 movaps %xmm2,(%rdx) + 43a537: 0f 28 51 15 movaps 0x15(%rcx),%xmm2 + 43a53b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a53f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a543: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a547: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a54b: 48 85 c0 test %rax,%rax + 43a54e: 0f 85 96 00 00 00 jne 43a5ea <__stpcpy_ssse3+0x10ca> + 43a554: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 + 43a55a: 0f 29 12 movaps %xmm2,(%rdx) + 43a55d: 48 8d 49 15 lea 0x15(%rcx),%rcx + 43a561: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a565: 48 89 c8 mov %rcx,%rax + 43a568: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43a56c: 48 29 c8 sub %rcx,%rax + 43a56f: 48 8d 49 fb lea -0x5(%rcx),%rcx + 43a573: 48 29 c2 sub %rax,%rdx + 43a576: 0f 28 49 f5 movaps -0xb(%rcx),%xmm1 + 43a57a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43a580: 0f 28 51 05 movaps 0x5(%rcx),%xmm2 + 43a584: 0f 28 59 15 movaps 0x15(%rcx),%xmm3 + 43a588: 0f 28 f3 movaps %xmm3,%xmm6 + 43a58b: 0f 28 61 25 movaps 0x25(%rcx),%xmm4 + 43a58f: 0f 28 fc movaps %xmm4,%xmm7 + 43a592: 0f 28 69 35 movaps 0x35(%rcx),%xmm5 + 43a596: 66 0f da f2 pminub %xmm2,%xmm6 + 43a59a: 66 0f da fd pminub %xmm5,%xmm7 + 43a59e: 66 0f da fe pminub %xmm6,%xmm7 + 43a5a2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 43a5a6: 66 0f d7 c7 pmovmskb %xmm7,%eax + 43a5aa: 0f 28 fd movaps %xmm5,%xmm7 + 43a5ad: 66 0f 3a 0f ec 0b palignr $0xb,%xmm4,%xmm5 + 43a5b3: 48 85 c0 test %rax,%rax + 43a5b6: 66 0f 3a 0f e3 0b palignr $0xb,%xmm3,%xmm4 + 43a5bc: 0f 85 06 ff ff ff jne 43a4c8 <__stpcpy_ssse3+0xfa8> + 43a5c2: 66 0f 3a 0f da 0b palignr $0xb,%xmm2,%xmm3 + 43a5c8: 48 8d 49 40 lea 0x40(%rcx),%rcx + 43a5cc: 66 0f 3a 0f d1 0b palignr $0xb,%xmm1,%xmm2 + 43a5d2: 0f 28 cf movaps %xmm7,%xmm1 + 43a5d5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 43a5d9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 43a5dd: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 43a5e1: 0f 29 12 movaps %xmm2,(%rdx) + 43a5e4: 48 8d 52 40 lea 0x40(%rdx),%rdx + 43a5e8: eb 96 jmp 43a580 <__stpcpy_ssse3+0x1060> + 43a5ea: 4c 8b 49 fd mov -0x3(%rcx),%r9 + 43a5ee: 48 c7 c6 05 00 00 00 mov $0x5,%rsi + 43a5f5: 4c 89 4a fd mov %r9,-0x3(%rdx) + 43a5f9: e9 02 05 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> + 43a5fe: 66 90 xchg %ax,%ax + 43a600: 0f 28 49 f4 movaps -0xc(%rcx),%xmm1 + 43a604: 0f 28 51 04 movaps 0x4(%rcx),%xmm2 + 43a608: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a60c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a610: 0f 28 da movaps %xmm2,%xmm3 + 43a613: 48 85 c0 test %rax,%rax + 43a616: 0f 85 0e 01 00 00 jne 43a72a <__stpcpy_ssse3+0x120a> + 43a61c: 66 0f 3a 0f d1 0c palignr $0xc,%xmm1,%xmm2 + 43a622: 0f 29 12 movaps %xmm2,(%rdx) + 43a625: 0f 28 51 14 movaps 0x14(%rcx),%xmm2 + 43a629: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a62d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a631: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a635: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a639: 0f 28 ca movaps %xmm2,%xmm1 + 43a63c: 48 85 c0 test %rax,%rax + 43a63f: 0f 85 e5 00 00 00 jne 43a72a <__stpcpy_ssse3+0x120a> + 43a645: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 + 43a64b: 0f 29 12 movaps %xmm2,(%rdx) + 43a64e: 0f 28 51 14 movaps 0x14(%rcx),%xmm2 + 43a652: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a656: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a65a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a65e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a662: 0f 28 da movaps %xmm2,%xmm3 + 43a665: 48 85 c0 test %rax,%rax + 43a668: 0f 85 bc 00 00 00 jne 43a72a <__stpcpy_ssse3+0x120a> + 43a66e: 66 0f 3a 0f d1 0c palignr $0xc,%xmm1,%xmm2 + 43a674: 0f 29 12 movaps %xmm2,(%rdx) + 43a677: 0f 28 51 14 movaps 0x14(%rcx),%xmm2 + 43a67b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a67f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a683: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a687: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a68b: 48 85 c0 test %rax,%rax + 43a68e: 0f 85 96 00 00 00 jne 43a72a <__stpcpy_ssse3+0x120a> + 43a694: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 + 43a69a: 0f 29 12 movaps %xmm2,(%rdx) + 43a69d: 48 8d 49 14 lea 0x14(%rcx),%rcx + 43a6a1: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a6a5: 48 89 c8 mov %rcx,%rax + 43a6a8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43a6ac: 48 29 c8 sub %rcx,%rax + 43a6af: 48 8d 49 fc lea -0x4(%rcx),%rcx + 43a6b3: 48 29 c2 sub %rax,%rdx + 43a6b6: 0f 28 49 f4 movaps -0xc(%rcx),%xmm1 + 43a6ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43a6c0: 0f 28 51 04 movaps 0x4(%rcx),%xmm2 + 43a6c4: 0f 28 59 14 movaps 0x14(%rcx),%xmm3 + 43a6c8: 0f 28 f3 movaps %xmm3,%xmm6 + 43a6cb: 0f 28 61 24 movaps 0x24(%rcx),%xmm4 + 43a6cf: 0f 28 fc movaps %xmm4,%xmm7 + 43a6d2: 0f 28 69 34 movaps 0x34(%rcx),%xmm5 + 43a6d6: 66 0f da f2 pminub %xmm2,%xmm6 + 43a6da: 66 0f da fd pminub %xmm5,%xmm7 + 43a6de: 66 0f da fe pminub %xmm6,%xmm7 + 43a6e2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 43a6e6: 66 0f d7 c7 pmovmskb %xmm7,%eax + 43a6ea: 0f 28 fd movaps %xmm5,%xmm7 + 43a6ed: 66 0f 3a 0f ec 0c palignr $0xc,%xmm4,%xmm5 + 43a6f3: 48 85 c0 test %rax,%rax + 43a6f6: 66 0f 3a 0f e3 0c palignr $0xc,%xmm3,%xmm4 + 43a6fc: 0f 85 06 ff ff ff jne 43a608 <__stpcpy_ssse3+0x10e8> + 43a702: 66 0f 3a 0f da 0c palignr $0xc,%xmm2,%xmm3 + 43a708: 48 8d 49 40 lea 0x40(%rcx),%rcx + 43a70c: 66 0f 3a 0f d1 0c palignr $0xc,%xmm1,%xmm2 + 43a712: 0f 28 cf movaps %xmm7,%xmm1 + 43a715: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 43a719: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 43a71d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 43a721: 0f 29 12 movaps %xmm2,(%rdx) + 43a724: 48 8d 52 40 lea 0x40(%rdx),%rdx + 43a728: eb 96 jmp 43a6c0 <__stpcpy_ssse3+0x11a0> + 43a72a: 44 8b 09 mov (%rcx),%r9d + 43a72d: 48 c7 c6 04 00 00 00 mov $0x4,%rsi + 43a734: 44 89 0a mov %r9d,(%rdx) + 43a737: e9 c4 03 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> + 43a73c: 0f 1f 40 00 nopl 0x0(%rax) + 43a740: 0f 28 49 f3 movaps -0xd(%rcx),%xmm1 + 43a744: 0f 28 51 03 movaps 0x3(%rcx),%xmm2 + 43a748: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a74c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a750: 0f 28 da movaps %xmm2,%xmm3 + 43a753: 48 85 c0 test %rax,%rax + 43a756: 0f 85 0e 01 00 00 jne 43a86a <__stpcpy_ssse3+0x134a> + 43a75c: 66 0f 3a 0f d1 0d palignr $0xd,%xmm1,%xmm2 + 43a762: 0f 29 12 movaps %xmm2,(%rdx) + 43a765: 0f 28 51 13 movaps 0x13(%rcx),%xmm2 + 43a769: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a76d: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a771: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a775: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a779: 0f 28 ca movaps %xmm2,%xmm1 + 43a77c: 48 85 c0 test %rax,%rax + 43a77f: 0f 85 e5 00 00 00 jne 43a86a <__stpcpy_ssse3+0x134a> + 43a785: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 + 43a78b: 0f 29 12 movaps %xmm2,(%rdx) + 43a78e: 0f 28 51 13 movaps 0x13(%rcx),%xmm2 + 43a792: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a796: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a79a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a79e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a7a2: 0f 28 da movaps %xmm2,%xmm3 + 43a7a5: 48 85 c0 test %rax,%rax + 43a7a8: 0f 85 bc 00 00 00 jne 43a86a <__stpcpy_ssse3+0x134a> + 43a7ae: 66 0f 3a 0f d1 0d palignr $0xd,%xmm1,%xmm2 + 43a7b4: 0f 29 12 movaps %xmm2,(%rdx) + 43a7b7: 0f 28 51 13 movaps 0x13(%rcx),%xmm2 + 43a7bb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a7bf: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a7c3: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a7c7: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a7cb: 48 85 c0 test %rax,%rax + 43a7ce: 0f 85 96 00 00 00 jne 43a86a <__stpcpy_ssse3+0x134a> + 43a7d4: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 + 43a7da: 0f 29 12 movaps %xmm2,(%rdx) + 43a7dd: 48 8d 49 13 lea 0x13(%rcx),%rcx + 43a7e1: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a7e5: 48 89 c8 mov %rcx,%rax + 43a7e8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43a7ec: 48 29 c8 sub %rcx,%rax + 43a7ef: 48 8d 49 fd lea -0x3(%rcx),%rcx + 43a7f3: 48 29 c2 sub %rax,%rdx + 43a7f6: 0f 28 49 f3 movaps -0xd(%rcx),%xmm1 + 43a7fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43a800: 0f 28 51 03 movaps 0x3(%rcx),%xmm2 + 43a804: 0f 28 59 13 movaps 0x13(%rcx),%xmm3 + 43a808: 0f 28 f3 movaps %xmm3,%xmm6 + 43a80b: 0f 28 61 23 movaps 0x23(%rcx),%xmm4 + 43a80f: 0f 28 fc movaps %xmm4,%xmm7 + 43a812: 0f 28 69 33 movaps 0x33(%rcx),%xmm5 + 43a816: 66 0f da f2 pminub %xmm2,%xmm6 + 43a81a: 66 0f da fd pminub %xmm5,%xmm7 + 43a81e: 66 0f da fe pminub %xmm6,%xmm7 + 43a822: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 43a826: 66 0f d7 c7 pmovmskb %xmm7,%eax + 43a82a: 0f 28 fd movaps %xmm5,%xmm7 + 43a82d: 66 0f 3a 0f ec 0d palignr $0xd,%xmm4,%xmm5 + 43a833: 48 85 c0 test %rax,%rax + 43a836: 66 0f 3a 0f e3 0d palignr $0xd,%xmm3,%xmm4 + 43a83c: 0f 85 06 ff ff ff jne 43a748 <__stpcpy_ssse3+0x1228> + 43a842: 66 0f 3a 0f da 0d palignr $0xd,%xmm2,%xmm3 + 43a848: 48 8d 49 40 lea 0x40(%rcx),%rcx + 43a84c: 66 0f 3a 0f d1 0d palignr $0xd,%xmm1,%xmm2 + 43a852: 0f 28 cf movaps %xmm7,%xmm1 + 43a855: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 43a859: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 43a85d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 43a861: 0f 29 12 movaps %xmm2,(%rdx) + 43a864: 48 8d 52 40 lea 0x40(%rdx),%rdx + 43a868: eb 96 jmp 43a800 <__stpcpy_ssse3+0x12e0> + 43a86a: 44 8b 49 ff mov -0x1(%rcx),%r9d + 43a86e: 48 c7 c6 03 00 00 00 mov $0x3,%rsi + 43a875: 44 89 4a ff mov %r9d,-0x1(%rdx) + 43a879: e9 82 02 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> + 43a87e: 66 90 xchg %ax,%ax + 43a880: 0f 28 49 f2 movaps -0xe(%rcx),%xmm1 + 43a884: 0f 28 51 02 movaps 0x2(%rcx),%xmm2 + 43a888: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a88c: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a890: 0f 28 da movaps %xmm2,%xmm3 + 43a893: 48 85 c0 test %rax,%rax + 43a896: 0f 85 0e 01 00 00 jne 43a9aa <__stpcpy_ssse3+0x148a> + 43a89c: 66 0f 3a 0f d1 0e palignr $0xe,%xmm1,%xmm2 + 43a8a2: 0f 29 12 movaps %xmm2,(%rdx) + 43a8a5: 0f 28 51 12 movaps 0x12(%rcx),%xmm2 + 43a8a9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a8ad: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a8b1: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a8b5: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a8b9: 0f 28 ca movaps %xmm2,%xmm1 + 43a8bc: 48 85 c0 test %rax,%rax + 43a8bf: 0f 85 e5 00 00 00 jne 43a9aa <__stpcpy_ssse3+0x148a> + 43a8c5: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 + 43a8cb: 0f 29 12 movaps %xmm2,(%rdx) + 43a8ce: 0f 28 51 12 movaps 0x12(%rcx),%xmm2 + 43a8d2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a8d6: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a8da: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a8de: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a8e2: 0f 28 da movaps %xmm2,%xmm3 + 43a8e5: 48 85 c0 test %rax,%rax + 43a8e8: 0f 85 bc 00 00 00 jne 43a9aa <__stpcpy_ssse3+0x148a> + 43a8ee: 66 0f 3a 0f d1 0e palignr $0xe,%xmm1,%xmm2 + 43a8f4: 0f 29 12 movaps %xmm2,(%rdx) + 43a8f7: 0f 28 51 12 movaps 0x12(%rcx),%xmm2 + 43a8fb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a8ff: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a903: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a907: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a90b: 48 85 c0 test %rax,%rax + 43a90e: 0f 85 96 00 00 00 jne 43a9aa <__stpcpy_ssse3+0x148a> + 43a914: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 + 43a91a: 0f 29 12 movaps %xmm2,(%rdx) + 43a91d: 48 8d 49 12 lea 0x12(%rcx),%rcx + 43a921: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a925: 48 89 c8 mov %rcx,%rax + 43a928: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43a92c: 48 29 c8 sub %rcx,%rax + 43a92f: 48 8d 49 fe lea -0x2(%rcx),%rcx + 43a933: 48 29 c2 sub %rax,%rdx + 43a936: 0f 28 49 f2 movaps -0xe(%rcx),%xmm1 + 43a93a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43a940: 0f 28 51 02 movaps 0x2(%rcx),%xmm2 + 43a944: 0f 28 59 12 movaps 0x12(%rcx),%xmm3 + 43a948: 0f 28 f3 movaps %xmm3,%xmm6 + 43a94b: 0f 28 61 22 movaps 0x22(%rcx),%xmm4 + 43a94f: 0f 28 fc movaps %xmm4,%xmm7 + 43a952: 0f 28 69 32 movaps 0x32(%rcx),%xmm5 + 43a956: 66 0f da f2 pminub %xmm2,%xmm6 + 43a95a: 66 0f da fd pminub %xmm5,%xmm7 + 43a95e: 66 0f da fe pminub %xmm6,%xmm7 + 43a962: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 43a966: 66 0f d7 c7 pmovmskb %xmm7,%eax + 43a96a: 0f 28 fd movaps %xmm5,%xmm7 + 43a96d: 66 0f 3a 0f ec 0e palignr $0xe,%xmm4,%xmm5 + 43a973: 48 85 c0 test %rax,%rax + 43a976: 66 0f 3a 0f e3 0e palignr $0xe,%xmm3,%xmm4 + 43a97c: 0f 85 06 ff ff ff jne 43a888 <__stpcpy_ssse3+0x1368> + 43a982: 66 0f 3a 0f da 0e palignr $0xe,%xmm2,%xmm3 + 43a988: 48 8d 49 40 lea 0x40(%rcx),%rcx + 43a98c: 66 0f 3a 0f d1 0e palignr $0xe,%xmm1,%xmm2 + 43a992: 0f 28 cf movaps %xmm7,%xmm1 + 43a995: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 43a999: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 43a99d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 43a9a1: 0f 29 12 movaps %xmm2,(%rdx) + 43a9a4: 48 8d 52 40 lea 0x40(%rdx),%rdx + 43a9a8: eb 96 jmp 43a940 <__stpcpy_ssse3+0x1420> + 43a9aa: 44 8b 49 fe mov -0x2(%rcx),%r9d + 43a9ae: 48 c7 c6 02 00 00 00 mov $0x2,%rsi + 43a9b5: 44 89 4a fe mov %r9d,-0x2(%rdx) + 43a9b9: e9 42 01 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> + 43a9be: 66 90 xchg %ax,%ax + 43a9c0: 0f 28 49 f1 movaps -0xf(%rcx),%xmm1 + 43a9c4: 0f 28 51 01 movaps 0x1(%rcx),%xmm2 + 43a9c8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a9cc: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a9d0: 0f 28 da movaps %xmm2,%xmm3 + 43a9d3: 48 85 c0 test %rax,%rax + 43a9d6: 0f 85 0e 01 00 00 jne 43aaea <__stpcpy_ssse3+0x15ca> + 43a9dc: 66 0f 3a 0f d1 0f palignr $0xf,%xmm1,%xmm2 + 43a9e2: 0f 29 12 movaps %xmm2,(%rdx) + 43a9e5: 0f 28 51 11 movaps 0x11(%rcx),%xmm2 + 43a9e9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43a9ed: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43a9f1: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43a9f5: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43a9f9: 0f 28 ca movaps %xmm2,%xmm1 + 43a9fc: 48 85 c0 test %rax,%rax + 43a9ff: 0f 85 e5 00 00 00 jne 43aaea <__stpcpy_ssse3+0x15ca> + 43aa05: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 + 43aa0b: 0f 29 12 movaps %xmm2,(%rdx) + 43aa0e: 0f 28 51 11 movaps 0x11(%rcx),%xmm2 + 43aa12: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43aa16: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43aa1a: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43aa1e: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43aa22: 0f 28 da movaps %xmm2,%xmm3 + 43aa25: 48 85 c0 test %rax,%rax + 43aa28: 0f 85 bc 00 00 00 jne 43aaea <__stpcpy_ssse3+0x15ca> + 43aa2e: 66 0f 3a 0f d1 0f palignr $0xf,%xmm1,%xmm2 + 43aa34: 0f 29 12 movaps %xmm2,(%rdx) + 43aa37: 0f 28 51 11 movaps 0x11(%rcx),%xmm2 + 43aa3b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43aa3f: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43aa43: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43aa47: 48 8d 49 10 lea 0x10(%rcx),%rcx + 43aa4b: 48 85 c0 test %rax,%rax + 43aa4e: 0f 85 96 00 00 00 jne 43aaea <__stpcpy_ssse3+0x15ca> + 43aa54: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 + 43aa5a: 0f 29 12 movaps %xmm2,(%rdx) + 43aa5d: 48 8d 49 11 lea 0x11(%rcx),%rcx + 43aa61: 48 8d 52 10 lea 0x10(%rdx),%rdx + 43aa65: 48 89 c8 mov %rcx,%rax + 43aa68: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx + 43aa6c: 48 29 c8 sub %rcx,%rax + 43aa6f: 48 8d 49 ff lea -0x1(%rcx),%rcx + 43aa73: 48 29 c2 sub %rax,%rdx + 43aa76: 0f 28 49 f1 movaps -0xf(%rcx),%xmm1 + 43aa7a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43aa80: 0f 28 51 01 movaps 0x1(%rcx),%xmm2 + 43aa84: 0f 28 59 11 movaps 0x11(%rcx),%xmm3 + 43aa88: 0f 28 f3 movaps %xmm3,%xmm6 + 43aa8b: 0f 28 61 21 movaps 0x21(%rcx),%xmm4 + 43aa8f: 0f 28 fc movaps %xmm4,%xmm7 + 43aa92: 0f 28 69 31 movaps 0x31(%rcx),%xmm5 + 43aa96: 66 0f da f2 pminub %xmm2,%xmm6 + 43aa9a: 66 0f da fd pminub %xmm5,%xmm7 + 43aa9e: 66 0f da fe pminub %xmm6,%xmm7 + 43aaa2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 43aaa6: 66 0f d7 c7 pmovmskb %xmm7,%eax + 43aaaa: 0f 28 fd movaps %xmm5,%xmm7 + 43aaad: 66 0f 3a 0f ec 0f palignr $0xf,%xmm4,%xmm5 + 43aab3: 48 85 c0 test %rax,%rax + 43aab6: 66 0f 3a 0f e3 0f palignr $0xf,%xmm3,%xmm4 + 43aabc: 0f 85 06 ff ff ff jne 43a9c8 <__stpcpy_ssse3+0x14a8> + 43aac2: 66 0f 3a 0f da 0f palignr $0xf,%xmm2,%xmm3 + 43aac8: 48 8d 49 40 lea 0x40(%rcx),%rcx + 43aacc: 66 0f 3a 0f d1 0f palignr $0xf,%xmm1,%xmm2 + 43aad2: 0f 28 cf movaps %xmm7,%xmm1 + 43aad5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) + 43aad9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) + 43aadd: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) + 43aae1: 0f 29 12 movaps %xmm2,(%rdx) + 43aae4: 48 8d 52 40 lea 0x40(%rdx),%rdx + 43aae8: eb 96 jmp 43aa80 <__stpcpy_ssse3+0x1560> + 43aaea: 44 8b 49 fd mov -0x3(%rcx),%r9d + 43aaee: 48 c7 c6 01 00 00 00 mov $0x1,%rsi + 43aaf5: 44 89 4a fd mov %r9d,-0x3(%rdx) + 43aaf9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43ab00: 48 01 f2 add %rsi,%rdx + 43ab03: 48 01 f1 add %rsi,%rcx + 43ab06: 84 c0 test %al,%al + 43ab08: 74 56 je 43ab60 <__stpcpy_ssse3+0x1640> + 43ab0a: a8 01 test $0x1,%al + 43ab0c: 0f 85 ae 00 00 00 jne 43abc0 <__stpcpy_ssse3+0x16a0> + 43ab12: a8 02 test $0x2,%al + 43ab14: 0f 85 b6 00 00 00 jne 43abd0 <__stpcpy_ssse3+0x16b0> + 43ab1a: a8 04 test $0x4,%al + 43ab1c: 0f 85 be 00 00 00 jne 43abe0 <__stpcpy_ssse3+0x16c0> + 43ab22: a8 08 test $0x8,%al + 43ab24: 0f 85 d6 00 00 00 jne 43ac00 <__stpcpy_ssse3+0x16e0> + 43ab2a: a8 10 test $0x10,%al + 43ab2c: 0f 85 de 00 00 00 jne 43ac10 <__stpcpy_ssse3+0x16f0> + 43ab32: a8 20 test $0x20,%al + 43ab34: 0f 85 e6 00 00 00 jne 43ac20 <__stpcpy_ssse3+0x1700> + 43ab3a: a8 40 test $0x40,%al + 43ab3c: 0f 85 fe 00 00 00 jne 43ac40 <__stpcpy_ssse3+0x1720> + 43ab42: 0f 1f 40 00 nopl 0x0(%rax) + 43ab46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43ab4d: 00 00 00 + 43ab50: 48 8b 01 mov (%rcx),%rax + 43ab53: 48 89 02 mov %rax,(%rdx) + 43ab56: 48 8d 42 07 lea 0x7(%rdx),%rax + 43ab5a: c3 retq + 43ab5b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43ab60: f6 c4 01 test $0x1,%ah + 43ab63: 0f 85 e7 00 00 00 jne 43ac50 <__stpcpy_ssse3+0x1730> + 43ab69: f6 c4 02 test $0x2,%ah + 43ab6c: 0f 85 fe 00 00 00 jne 43ac70 <__stpcpy_ssse3+0x1750> + 43ab72: f6 c4 04 test $0x4,%ah + 43ab75: 0f 85 15 01 00 00 jne 43ac90 <__stpcpy_ssse3+0x1770> + 43ab7b: f6 c4 08 test $0x8,%ah + 43ab7e: 0f 85 2c 01 00 00 jne 43acb0 <__stpcpy_ssse3+0x1790> + 43ab84: f6 c4 10 test $0x10,%ah + 43ab87: 0f 85 43 01 00 00 jne 43acd0 <__stpcpy_ssse3+0x17b0> + 43ab8d: f6 c4 20 test $0x20,%ah + 43ab90: 0f 85 5a 01 00 00 jne 43acf0 <__stpcpy_ssse3+0x17d0> + 43ab96: f6 c4 40 test $0x40,%ah + 43ab99: 0f 85 71 01 00 00 jne 43ad10 <__stpcpy_ssse3+0x17f0> + 43ab9f: 90 nop + 43aba0: 48 8b 01 mov (%rcx),%rax + 43aba3: 48 89 02 mov %rax,(%rdx) + 43aba6: 48 8b 41 08 mov 0x8(%rcx),%rax + 43abaa: 48 89 42 08 mov %rax,0x8(%rdx) + 43abae: 48 8d 42 0f lea 0xf(%rdx),%rax + 43abb2: c3 retq + 43abb3: 0f 1f 00 nopl (%rax) + 43abb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43abbd: 00 00 00 + 43abc0: 8a 01 mov (%rcx),%al + 43abc2: 88 02 mov %al,(%rdx) + 43abc4: 48 8d 02 lea (%rdx),%rax + 43abc7: c3 retq + 43abc8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43abcf: 00 + 43abd0: 66 8b 01 mov (%rcx),%ax + 43abd3: 66 89 02 mov %ax,(%rdx) + 43abd6: 48 8d 42 01 lea 0x1(%rdx),%rax + 43abda: c3 retq + 43abdb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43abe0: 66 8b 01 mov (%rcx),%ax + 43abe3: 66 89 02 mov %ax,(%rdx) + 43abe6: 8a 41 02 mov 0x2(%rcx),%al + 43abe9: 88 42 02 mov %al,0x2(%rdx) + 43abec: 48 8d 42 02 lea 0x2(%rdx),%rax + 43abf0: c3 retq + 43abf1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43abf6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43abfd: 00 00 00 + 43ac00: 8b 01 mov (%rcx),%eax + 43ac02: 89 02 mov %eax,(%rdx) + 43ac04: 48 8d 42 03 lea 0x3(%rdx),%rax + 43ac08: c3 retq + 43ac09: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43ac10: 8b 01 mov (%rcx),%eax + 43ac12: 89 02 mov %eax,(%rdx) + 43ac14: 8a 41 04 mov 0x4(%rcx),%al + 43ac17: 88 42 04 mov %al,0x4(%rdx) + 43ac1a: 48 8d 42 04 lea 0x4(%rdx),%rax + 43ac1e: c3 retq + 43ac1f: 90 nop + 43ac20: 8b 01 mov (%rcx),%eax + 43ac22: 89 02 mov %eax,(%rdx) + 43ac24: 66 8b 41 04 mov 0x4(%rcx),%ax + 43ac28: 66 89 42 04 mov %ax,0x4(%rdx) + 43ac2c: 48 8d 42 05 lea 0x5(%rdx),%rax + 43ac30: c3 retq + 43ac31: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43ac36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43ac3d: 00 00 00 + 43ac40: 8b 01 mov (%rcx),%eax + 43ac42: 89 02 mov %eax,(%rdx) + 43ac44: 8b 41 03 mov 0x3(%rcx),%eax + 43ac47: 89 42 03 mov %eax,0x3(%rdx) + 43ac4a: 48 8d 42 06 lea 0x6(%rdx),%rax + 43ac4e: c3 retq + 43ac4f: 90 nop + 43ac50: 48 8b 01 mov (%rcx),%rax + 43ac53: 48 89 02 mov %rax,(%rdx) + 43ac56: 8b 41 05 mov 0x5(%rcx),%eax + 43ac59: 89 42 05 mov %eax,0x5(%rdx) + 43ac5c: 48 8d 42 08 lea 0x8(%rdx),%rax + 43ac60: c3 retq + 43ac61: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43ac66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43ac6d: 00 00 00 + 43ac70: 48 8b 01 mov (%rcx),%rax + 43ac73: 48 89 02 mov %rax,(%rdx) + 43ac76: 8b 41 06 mov 0x6(%rcx),%eax + 43ac79: 89 42 06 mov %eax,0x6(%rdx) + 43ac7c: 48 8d 42 09 lea 0x9(%rdx),%rax + 43ac80: c3 retq + 43ac81: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43ac86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43ac8d: 00 00 00 + 43ac90: 48 8b 01 mov (%rcx),%rax + 43ac93: 48 89 02 mov %rax,(%rdx) + 43ac96: 8b 41 07 mov 0x7(%rcx),%eax + 43ac99: 89 42 07 mov %eax,0x7(%rdx) + 43ac9c: 48 8d 42 0a lea 0xa(%rdx),%rax + 43aca0: c3 retq + 43aca1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43aca6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43acad: 00 00 00 + 43acb0: 48 8b 01 mov (%rcx),%rax + 43acb3: 48 89 02 mov %rax,(%rdx) + 43acb6: 8b 41 08 mov 0x8(%rcx),%eax + 43acb9: 89 42 08 mov %eax,0x8(%rdx) + 43acbc: 48 8d 42 0b lea 0xb(%rdx),%rax + 43acc0: c3 retq + 43acc1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43acc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43accd: 00 00 00 + 43acd0: 48 8b 01 mov (%rcx),%rax + 43acd3: 48 89 02 mov %rax,(%rdx) + 43acd6: 48 8b 41 05 mov 0x5(%rcx),%rax + 43acda: 48 89 42 05 mov %rax,0x5(%rdx) + 43acde: 48 8d 42 0c lea 0xc(%rdx),%rax + 43ace2: c3 retq + 43ace3: 0f 1f 00 nopl (%rax) + 43ace6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43aced: 00 00 00 + 43acf0: 48 8b 01 mov (%rcx),%rax + 43acf3: 48 89 02 mov %rax,(%rdx) + 43acf6: 48 8b 41 06 mov 0x6(%rcx),%rax + 43acfa: 48 89 42 06 mov %rax,0x6(%rdx) + 43acfe: 48 8d 42 0d lea 0xd(%rdx),%rax + 43ad02: c3 retq + 43ad03: 0f 1f 00 nopl (%rax) + 43ad06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43ad0d: 00 00 00 + 43ad10: 48 8b 01 mov (%rcx),%rax + 43ad13: 48 89 02 mov %rax,(%rdx) + 43ad16: 48 8b 41 07 mov 0x7(%rcx),%rax + 43ad1a: 48 89 42 07 mov %rax,0x7(%rdx) + 43ad1e: 48 8d 42 0e lea 0xe(%rdx),%rax + 43ad22: c3 retq + 43ad23: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43ad2a: 00 00 00 + 43ad2d: 0f 1f 00 nopl (%rax) + +000000000043ad30 <__strcpy_sse2_unaligned>: + 43ad30: 48 89 f1 mov %rsi,%rcx + 43ad33: 48 89 f8 mov %rdi,%rax + 43ad36: 48 83 e1 3f and $0x3f,%rcx + 43ad3a: 48 83 f9 20 cmp $0x20,%rcx + 43ad3e: 0f 86 0f 02 00 00 jbe 43af53 <__strcpy_sse2_unaligned+0x223> + 43ad44: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 43ad48: 48 83 e1 0f and $0xf,%rcx + 43ad4c: 66 0f ef c0 pxor %xmm0,%xmm0 + 43ad50: 66 0f ef c9 pxor %xmm1,%xmm1 + 43ad54: 66 0f 74 0e pcmpeqb (%rsi),%xmm1 + 43ad58: 66 0f d7 d1 pmovmskb %xmm1,%edx + 43ad5c: 48 d3 ea shr %cl,%rdx + 43ad5f: 48 85 d2 test %rdx,%rdx + 43ad62: 0f 85 48 02 00 00 jne 43afb0 <__strcpy_sse2_unaligned+0x280> + 43ad68: 66 0f 74 46 10 pcmpeqb 0x10(%rsi),%xmm0 + 43ad6d: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43ad71: 48 85 d2 test %rdx,%rdx + 43ad74: 0f 85 76 02 00 00 jne 43aff0 <__strcpy_sse2_unaligned+0x2c0> + 43ad7a: f3 0f 6f 0c 0e movdqu (%rsi,%rcx,1),%xmm1 + 43ad7f: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 43ad83: 0f 1f 00 nopl (%rax) + 43ad86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43ad8d: 00 00 00 + 43ad90: 48 29 cf sub %rcx,%rdi + 43ad93: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 43ad9a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 43ad9f: 0f 28 54 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm2 + 43ada4: f3 0f 7f 0c 0f movdqu %xmm1,(%rdi,%rcx,1) + 43ada9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43adad: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43adb1: 48 83 c1 10 add $0x10,%rcx + 43adb5: 48 85 d2 test %rdx,%rdx + 43adb8: 0f 85 d2 01 00 00 jne 43af90 <__strcpy_sse2_unaligned+0x260> + 43adbe: 0f 28 5c 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm3 + 43adc3: f3 0f 7f 14 0f movdqu %xmm2,(%rdi,%rcx,1) + 43adc8: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 43adcc: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43add0: 48 83 c1 10 add $0x10,%rcx + 43add4: 48 85 d2 test %rdx,%rdx + 43add7: 0f 85 b3 01 00 00 jne 43af90 <__strcpy_sse2_unaligned+0x260> + 43addd: 0f 28 64 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm4 + 43ade2: f3 0f 7f 1c 0f movdqu %xmm3,(%rdi,%rcx,1) + 43ade7: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 + 43adeb: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43adef: 48 83 c1 10 add $0x10,%rcx + 43adf3: 48 85 d2 test %rdx,%rdx + 43adf6: 0f 85 94 01 00 00 jne 43af90 <__strcpy_sse2_unaligned+0x260> + 43adfc: 0f 28 4c 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm1 + 43ae01: f3 0f 7f 24 0f movdqu %xmm4,(%rdi,%rcx,1) + 43ae06: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 43ae0a: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43ae0e: 48 83 c1 10 add $0x10,%rcx + 43ae12: 48 85 d2 test %rdx,%rdx + 43ae15: 0f 85 75 01 00 00 jne 43af90 <__strcpy_sse2_unaligned+0x260> + 43ae1b: 0f 28 54 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm2 + 43ae20: f3 0f 7f 0c 0f movdqu %xmm1,(%rdi,%rcx,1) + 43ae25: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43ae29: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43ae2d: 48 83 c1 10 add $0x10,%rcx + 43ae31: 48 85 d2 test %rdx,%rdx + 43ae34: 0f 85 56 01 00 00 jne 43af90 <__strcpy_sse2_unaligned+0x260> + 43ae3a: 0f 28 5c 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm3 + 43ae3f: f3 0f 7f 14 0f movdqu %xmm2,(%rdi,%rcx,1) + 43ae44: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 43ae48: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43ae4c: 48 83 c1 10 add $0x10,%rcx + 43ae50: 48 85 d2 test %rdx,%rdx + 43ae53: 0f 85 37 01 00 00 jne 43af90 <__strcpy_sse2_unaligned+0x260> + 43ae59: f3 0f 7f 1c 0f movdqu %xmm3,(%rdi,%rcx,1) + 43ae5e: 48 89 f2 mov %rsi,%rdx + 43ae61: 48 8d 74 0e 10 lea 0x10(%rsi,%rcx,1),%rsi + 43ae66: 48 83 e6 c0 and $0xffffffffffffffc0,%rsi + 43ae6a: 48 29 f2 sub %rsi,%rdx + 43ae6d: 48 29 d7 sub %rdx,%rdi + 43ae70: 0f 28 16 movaps (%rsi),%xmm2 + 43ae73: 0f 28 e2 movaps %xmm2,%xmm4 + 43ae76: 0f 28 6e 10 movaps 0x10(%rsi),%xmm5 + 43ae7a: 0f 28 5e 20 movaps 0x20(%rsi),%xmm3 + 43ae7e: 0f 28 f3 movaps %xmm3,%xmm6 + 43ae81: 0f 28 7e 30 movaps 0x30(%rsi),%xmm7 + 43ae85: 66 0f da d5 pminub %xmm5,%xmm2 + 43ae89: 66 0f da df pminub %xmm7,%xmm3 + 43ae8d: 66 0f da da pminub %xmm2,%xmm3 + 43ae91: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 + 43ae95: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43ae99: 48 85 d2 test %rdx,%rdx + 43ae9c: 75 4b jne 43aee9 <__strcpy_sse2_unaligned+0x1b9> + 43ae9e: 48 83 c7 40 add $0x40,%rdi + 43aea2: 48 83 c6 40 add $0x40,%rsi + 43aea6: f3 0f 7f 67 c0 movdqu %xmm4,-0x40(%rdi) + 43aeab: 0f 28 16 movaps (%rsi),%xmm2 + 43aeae: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 43aeb2: f3 0f 7f 6f d0 movdqu %xmm5,-0x30(%rdi) + 43aeb7: 0f 28 6e 10 movaps 0x10(%rsi),%xmm5 + 43aebb: 66 0f da d5 pminub %xmm5,%xmm2 + 43aebf: 0f 28 5e 20 movaps 0x20(%rsi),%xmm3 + 43aec3: f3 0f 7f 77 e0 movdqu %xmm6,-0x20(%rdi) + 43aec8: 0f 28 f3 movaps %xmm3,%xmm6 + 43aecb: f3 0f 7f 7f f0 movdqu %xmm7,-0x10(%rdi) + 43aed0: 0f 28 7e 30 movaps 0x30(%rsi),%xmm7 + 43aed4: 66 0f da df pminub %xmm7,%xmm3 + 43aed8: 66 0f da da pminub %xmm2,%xmm3 + 43aedc: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 + 43aee0: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43aee4: 48 85 d2 test %rdx,%rdx + 43aee7: 74 b5 je 43ae9e <__strcpy_sse2_unaligned+0x16e> + 43aee9: 66 0f ef c9 pxor %xmm1,%xmm1 + 43aeed: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 + 43aef1: 66 0f 74 cd pcmpeqb %xmm5,%xmm1 + 43aef5: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43aef9: 66 0f d7 c9 pmovmskb %xmm1,%ecx + 43aefd: 48 85 d2 test %rdx,%rdx + 43af00: 0f 85 0a 01 00 00 jne 43b010 <__strcpy_sse2_unaligned+0x2e0> + 43af06: 48 85 c9 test %rcx,%rcx + 43af09: 0f 85 21 01 00 00 jne 43b030 <__strcpy_sse2_unaligned+0x300> + 43af0f: 66 0f 74 c6 pcmpeqb %xmm6,%xmm0 + 43af13: 66 0f 74 cf pcmpeqb %xmm7,%xmm1 + 43af17: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43af1b: 66 0f d7 c9 pmovmskb %xmm1,%ecx + 43af1f: 48 85 d2 test %rdx,%rdx + 43af22: 0f 85 38 01 00 00 jne 43b060 <__strcpy_sse2_unaligned+0x330> + 43af28: 48 0f bc d1 bsf %rcx,%rdx + 43af2c: f3 0f 7f 27 movdqu %xmm4,(%rdi) + 43af30: f3 0f 7f 6f 10 movdqu %xmm5,0x10(%rdi) + 43af35: f3 0f 7f 77 20 movdqu %xmm6,0x20(%rdi) + 43af3a: 48 83 c6 30 add $0x30,%rsi + 43af3e: 48 83 c7 30 add $0x30,%rdi + 43af42: 4c 8d 1d 67 8b 06 00 lea 0x68b67(%rip),%r11 # 4a3ab0 + 43af49: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 43af4d: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx + 43af51: ff e1 jmpq *%rcx + 43af53: 66 0f ef c0 pxor %xmm0,%xmm0 + 43af57: f3 0f 6f 0e movdqu (%rsi),%xmm1 + 43af5b: f3 0f 6f 56 10 movdqu 0x10(%rsi),%xmm2 + 43af60: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 43af64: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43af68: 48 85 d2 test %rdx,%rdx + 43af6b: 75 6b jne 43afd8 <__strcpy_sse2_unaligned+0x2a8> + 43af6d: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43af71: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 43af75: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43af79: 48 85 d2 test %rdx,%rdx + 43af7c: 75 52 jne 43afd0 <__strcpy_sse2_unaligned+0x2a0> + 43af7e: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 43af82: 48 83 e1 0f and $0xf,%rcx + 43af86: e9 05 fe ff ff jmpq 43ad90 <__strcpy_sse2_unaligned+0x60> + 43af8b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43af90: 48 01 cf add %rcx,%rdi + 43af93: 48 01 ce add %rcx,%rsi + 43af96: 48 0f bc d2 bsf %rdx,%rdx + 43af9a: 4c 8d 1d 0f 8b 06 00 lea 0x68b0f(%rip),%r11 # 4a3ab0 + 43afa1: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 43afa5: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx + 43afa9: ff e1 jmpq *%rcx + 43afab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43afb0: 48 01 ce add %rcx,%rsi + 43afb3: 48 0f bc d2 bsf %rdx,%rdx + 43afb7: 4c 8d 1d f2 8a 06 00 lea 0x68af2(%rip),%r11 # 4a3ab0 + 43afbe: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 43afc2: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx + 43afc6: ff e1 jmpq *%rcx + 43afc8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43afcf: 00 + 43afd0: 48 83 c6 10 add $0x10,%rsi + 43afd4: 48 83 c7 10 add $0x10,%rdi + 43afd8: 48 0f bc d2 bsf %rdx,%rdx + 43afdc: 4c 8d 1d cd 8a 06 00 lea 0x68acd(%rip),%r11 # 4a3ab0 + 43afe3: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 43afe7: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx + 43afeb: ff e1 jmpq *%rcx + 43afed: 0f 1f 00 nopl (%rax) + 43aff0: 48 0f bc d2 bsf %rdx,%rdx + 43aff4: 48 01 ce add %rcx,%rsi + 43aff7: 48 83 c2 10 add $0x10,%rdx + 43affb: 48 29 ca sub %rcx,%rdx + 43affe: 4c 8d 1d ab 8a 06 00 lea 0x68aab(%rip),%r11 # 4a3ab0 + 43b005: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 43b009: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx + 43b00d: ff e1 jmpq *%rcx + 43b00f: 90 nop + 43b010: 48 0f bc d2 bsf %rdx,%rdx + 43b014: 4c 8d 1d 95 8a 06 00 lea 0x68a95(%rip),%r11 # 4a3ab0 + 43b01b: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 43b01f: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx + 43b023: ff e1 jmpq *%rcx + 43b025: 90 nop + 43b026: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b02d: 00 00 00 + 43b030: 48 0f bc d1 bsf %rcx,%rdx + 43b034: f3 0f 7f 27 movdqu %xmm4,(%rdi) + 43b038: 48 83 c6 10 add $0x10,%rsi + 43b03c: 48 83 c7 10 add $0x10,%rdi + 43b040: 4c 8d 1d 69 8a 06 00 lea 0x68a69(%rip),%r11 # 4a3ab0 + 43b047: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 43b04b: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx + 43b04f: ff e1 jmpq *%rcx + 43b051: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43b056: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b05d: 00 00 00 + 43b060: 48 0f bc d2 bsf %rdx,%rdx + 43b064: f3 0f 7f 27 movdqu %xmm4,(%rdi) + 43b068: f3 0f 7f 6f 10 movdqu %xmm5,0x10(%rdi) + 43b06d: 48 83 c6 20 add $0x20,%rsi + 43b071: 48 83 c7 20 add $0x20,%rdi + 43b075: 4c 8d 1d 34 8a 06 00 lea 0x68a34(%rip),%r11 # 4a3ab0 + 43b07c: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 43b080: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx + 43b084: ff e1 jmpq *%rcx + 43b086: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b08d: 00 00 00 + 43b090: 88 37 mov %dh,(%rdi) + 43b092: c3 retq + 43b093: 0f 1f 00 nopl (%rax) + 43b096: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b09d: 00 00 00 + 43b0a0: 66 8b 16 mov (%rsi),%dx + 43b0a3: 66 89 17 mov %dx,(%rdi) + 43b0a6: c3 retq + 43b0a7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43b0ae: 00 00 + 43b0b0: 66 8b 0e mov (%rsi),%cx + 43b0b3: 66 89 0f mov %cx,(%rdi) + 43b0b6: 88 77 02 mov %dh,0x2(%rdi) + 43b0b9: c3 retq + 43b0ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43b0c0: 8b 16 mov (%rsi),%edx + 43b0c2: 89 17 mov %edx,(%rdi) + 43b0c4: c3 retq + 43b0c5: 90 nop + 43b0c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b0cd: 00 00 00 + 43b0d0: 8b 0e mov (%rsi),%ecx + 43b0d2: 88 77 04 mov %dh,0x4(%rdi) + 43b0d5: 89 0f mov %ecx,(%rdi) + 43b0d7: c3 retq + 43b0d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43b0df: 00 + 43b0e0: 8b 0e mov (%rsi),%ecx + 43b0e2: 66 8b 56 04 mov 0x4(%rsi),%dx + 43b0e6: 89 0f mov %ecx,(%rdi) + 43b0e8: 66 89 57 04 mov %dx,0x4(%rdi) + 43b0ec: c3 retq + 43b0ed: 0f 1f 00 nopl (%rax) + 43b0f0: 8b 0e mov (%rsi),%ecx + 43b0f2: 8b 56 03 mov 0x3(%rsi),%edx + 43b0f5: 89 0f mov %ecx,(%rdi) + 43b0f7: 89 57 03 mov %edx,0x3(%rdi) + 43b0fa: c3 retq + 43b0fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43b100: 48 8b 16 mov (%rsi),%rdx + 43b103: 48 89 17 mov %rdx,(%rdi) + 43b106: c3 retq + 43b107: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43b10e: 00 00 + 43b110: 48 8b 0e mov (%rsi),%rcx + 43b113: 88 77 08 mov %dh,0x8(%rdi) + 43b116: 48 89 0f mov %rcx,(%rdi) + 43b119: c3 retq + 43b11a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43b120: 48 8b 0e mov (%rsi),%rcx + 43b123: 66 8b 56 08 mov 0x8(%rsi),%dx + 43b127: 48 89 0f mov %rcx,(%rdi) + 43b12a: 66 89 57 08 mov %dx,0x8(%rdi) + 43b12e: c3 retq + 43b12f: 90 nop + 43b130: 48 8b 0e mov (%rsi),%rcx + 43b133: 8b 56 07 mov 0x7(%rsi),%edx + 43b136: 48 89 0f mov %rcx,(%rdi) + 43b139: 89 57 07 mov %edx,0x7(%rdi) + 43b13c: c3 retq + 43b13d: 0f 1f 00 nopl (%rax) + 43b140: 48 8b 0e mov (%rsi),%rcx + 43b143: 8b 56 08 mov 0x8(%rsi),%edx + 43b146: 48 89 0f mov %rcx,(%rdi) + 43b149: 89 57 08 mov %edx,0x8(%rdi) + 43b14c: c3 retq + 43b14d: 0f 1f 00 nopl (%rax) + 43b150: 48 8b 0e mov (%rsi),%rcx + 43b153: 48 8b 56 05 mov 0x5(%rsi),%rdx + 43b157: 48 89 0f mov %rcx,(%rdi) + 43b15a: 48 89 57 05 mov %rdx,0x5(%rdi) + 43b15e: c3 retq + 43b15f: 90 nop + 43b160: 48 8b 0e mov (%rsi),%rcx + 43b163: 48 8b 56 06 mov 0x6(%rsi),%rdx + 43b167: 48 89 0f mov %rcx,(%rdi) + 43b16a: 48 89 57 06 mov %rdx,0x6(%rdi) + 43b16e: c3 retq + 43b16f: 90 nop + 43b170: 48 8b 0e mov (%rsi),%rcx + 43b173: 48 8b 56 07 mov 0x7(%rsi),%rdx + 43b177: 48 89 0f mov %rcx,(%rdi) + 43b17a: 48 89 57 07 mov %rdx,0x7(%rdi) + 43b17e: c3 retq + 43b17f: 90 nop + 43b180: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b184: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b188: c3 retq + 43b189: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43b190: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b194: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b198: 88 77 10 mov %dh,0x10(%rdi) + 43b19b: c3 retq + 43b19c: 0f 1f 40 00 nopl 0x0(%rax) + 43b1a0: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b1a4: 66 8b 4e 10 mov 0x10(%rsi),%cx + 43b1a8: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b1ac: 66 89 4f 10 mov %cx,0x10(%rdi) + 43b1b0: c3 retq + 43b1b1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43b1b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b1bd: 00 00 00 + 43b1c0: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b1c4: 8b 4e 0f mov 0xf(%rsi),%ecx + 43b1c7: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b1cb: 89 4f 0f mov %ecx,0xf(%rdi) + 43b1ce: c3 retq + 43b1cf: 90 nop + 43b1d0: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b1d4: 8b 4e 10 mov 0x10(%rsi),%ecx + 43b1d7: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b1db: 89 4f 10 mov %ecx,0x10(%rdi) + 43b1de: c3 retq + 43b1df: 90 nop + 43b1e0: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b1e4: 8b 4e 10 mov 0x10(%rsi),%ecx + 43b1e7: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b1eb: 89 4f 10 mov %ecx,0x10(%rdi) + 43b1ee: 88 77 14 mov %dh,0x14(%rdi) + 43b1f1: c3 retq + 43b1f2: 0f 1f 40 00 nopl 0x0(%rax) + 43b1f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b1fd: 00 00 00 + 43b200: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b204: 48 8b 4e 0e mov 0xe(%rsi),%rcx + 43b208: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b20c: 48 89 4f 0e mov %rcx,0xe(%rdi) + 43b210: c3 retq + 43b211: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43b216: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b21d: 00 00 00 + 43b220: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b224: 48 8b 4e 0f mov 0xf(%rsi),%rcx + 43b228: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b22c: 48 89 4f 0f mov %rcx,0xf(%rdi) + 43b230: c3 retq + 43b231: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43b236: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b23d: 00 00 00 + 43b240: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b244: 48 8b 4e 10 mov 0x10(%rsi),%rcx + 43b248: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b24c: 48 89 4f 10 mov %rcx,0x10(%rdi) + 43b250: c3 retq + 43b251: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43b256: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b25d: 00 00 00 + 43b260: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b264: 48 8b 4e 10 mov 0x10(%rsi),%rcx + 43b268: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b26c: 48 89 4f 10 mov %rcx,0x10(%rdi) + 43b270: 88 77 18 mov %dh,0x18(%rdi) + 43b273: c3 retq + 43b274: 66 90 xchg %ax,%ax + 43b276: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b27d: 00 00 00 + 43b280: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b284: 48 8b 56 10 mov 0x10(%rsi),%rdx + 43b288: 66 8b 4e 18 mov 0x18(%rsi),%cx + 43b28c: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b290: 48 89 57 10 mov %rdx,0x10(%rdi) + 43b294: 66 89 4f 18 mov %cx,0x18(%rdi) + 43b298: c3 retq + 43b299: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43b2a0: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b2a4: 48 8b 56 10 mov 0x10(%rsi),%rdx + 43b2a8: 8b 4e 17 mov 0x17(%rsi),%ecx + 43b2ab: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b2af: 48 89 57 10 mov %rdx,0x10(%rdi) + 43b2b3: 89 4f 17 mov %ecx,0x17(%rdi) + 43b2b6: c3 retq + 43b2b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43b2be: 00 00 + 43b2c0: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b2c4: 48 8b 56 10 mov 0x10(%rsi),%rdx + 43b2c8: 8b 4e 18 mov 0x18(%rsi),%ecx + 43b2cb: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b2cf: 48 89 57 10 mov %rdx,0x10(%rdi) + 43b2d3: 89 4f 18 mov %ecx,0x18(%rdi) + 43b2d6: c3 retq + 43b2d7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43b2de: 00 00 + 43b2e0: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b2e4: f3 0f 6f 56 0d movdqu 0xd(%rsi),%xmm2 + 43b2e9: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b2ed: f3 0f 7f 57 0d movdqu %xmm2,0xd(%rdi) + 43b2f2: c3 retq + 43b2f3: 0f 1f 00 nopl (%rax) + 43b2f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b2fd: 00 00 00 + 43b300: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b304: f3 0f 6f 56 0e movdqu 0xe(%rsi),%xmm2 + 43b309: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b30d: f3 0f 7f 57 0e movdqu %xmm2,0xe(%rdi) + 43b312: c3 retq + 43b313: 0f 1f 00 nopl (%rax) + 43b316: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b31d: 00 00 00 + 43b320: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b324: f3 0f 6f 56 0f movdqu 0xf(%rsi),%xmm2 + 43b329: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b32d: f3 0f 7f 57 0f movdqu %xmm2,0xf(%rdi) + 43b332: c3 retq + 43b333: 0f 1f 00 nopl (%rax) + 43b336: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b33d: 00 00 00 + 43b340: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b344: f3 0f 6f 56 10 movdqu 0x10(%rsi),%xmm2 + 43b349: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b34d: f3 0f 7f 57 10 movdqu %xmm2,0x10(%rdi) + 43b352: c3 retq + 43b353: 0f 1f 00 nopl (%rax) + 43b356: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b35d: 00 00 00 + +000000000043b360 <__stpcpy_sse2_unaligned>: + 43b360: 48 89 f1 mov %rsi,%rcx + 43b363: 48 83 e1 3f and $0x3f,%rcx + 43b367: 48 83 f9 20 cmp $0x20,%rcx + 43b36b: 0f 86 02 02 00 00 jbe 43b573 <__stpcpy_sse2_unaligned+0x213> + 43b371: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 43b375: 48 83 e1 0f and $0xf,%rcx + 43b379: 66 0f ef c0 pxor %xmm0,%xmm0 + 43b37d: 66 0f ef c9 pxor %xmm1,%xmm1 + 43b381: 66 0f 74 0e pcmpeqb (%rsi),%xmm1 + 43b385: 66 0f d7 d1 pmovmskb %xmm1,%edx + 43b389: 48 d3 ea shr %cl,%rdx + 43b38c: 48 85 d2 test %rdx,%rdx + 43b38f: 0f 85 3b 02 00 00 jne 43b5d0 <__stpcpy_sse2_unaligned+0x270> + 43b395: 66 0f 74 46 10 pcmpeqb 0x10(%rsi),%xmm0 + 43b39a: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43b39e: 48 85 d2 test %rdx,%rdx + 43b3a1: 0f 85 69 02 00 00 jne 43b610 <__stpcpy_sse2_unaligned+0x2b0> + 43b3a7: f3 0f 6f 0c 0e movdqu (%rsi,%rcx,1),%xmm1 + 43b3ac: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 43b3b0: 48 29 cf sub %rcx,%rdi + 43b3b3: 48 c7 c1 10 00 00 00 mov $0x10,%rcx + 43b3ba: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 + 43b3bf: 0f 28 54 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm2 + 43b3c4: f3 0f 7f 0c 0f movdqu %xmm1,(%rdi,%rcx,1) + 43b3c9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43b3cd: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43b3d1: 48 83 c1 10 add $0x10,%rcx + 43b3d5: 48 85 d2 test %rdx,%rdx + 43b3d8: 0f 85 d2 01 00 00 jne 43b5b0 <__stpcpy_sse2_unaligned+0x250> + 43b3de: 0f 28 5c 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm3 + 43b3e3: f3 0f 7f 14 0f movdqu %xmm2,(%rdi,%rcx,1) + 43b3e8: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 43b3ec: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43b3f0: 48 83 c1 10 add $0x10,%rcx + 43b3f4: 48 85 d2 test %rdx,%rdx + 43b3f7: 0f 85 b3 01 00 00 jne 43b5b0 <__stpcpy_sse2_unaligned+0x250> + 43b3fd: 0f 28 64 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm4 + 43b402: f3 0f 7f 1c 0f movdqu %xmm3,(%rdi,%rcx,1) + 43b407: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 + 43b40b: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43b40f: 48 83 c1 10 add $0x10,%rcx + 43b413: 48 85 d2 test %rdx,%rdx + 43b416: 0f 85 94 01 00 00 jne 43b5b0 <__stpcpy_sse2_unaligned+0x250> + 43b41c: 0f 28 4c 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm1 + 43b421: f3 0f 7f 24 0f movdqu %xmm4,(%rdi,%rcx,1) + 43b426: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 43b42a: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43b42e: 48 83 c1 10 add $0x10,%rcx + 43b432: 48 85 d2 test %rdx,%rdx + 43b435: 0f 85 75 01 00 00 jne 43b5b0 <__stpcpy_sse2_unaligned+0x250> + 43b43b: 0f 28 54 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm2 + 43b440: f3 0f 7f 0c 0f movdqu %xmm1,(%rdi,%rcx,1) + 43b445: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43b449: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43b44d: 48 83 c1 10 add $0x10,%rcx + 43b451: 48 85 d2 test %rdx,%rdx + 43b454: 0f 85 56 01 00 00 jne 43b5b0 <__stpcpy_sse2_unaligned+0x250> + 43b45a: 0f 28 5c 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm3 + 43b45f: f3 0f 7f 14 0f movdqu %xmm2,(%rdi,%rcx,1) + 43b464: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 + 43b468: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43b46c: 48 83 c1 10 add $0x10,%rcx + 43b470: 48 85 d2 test %rdx,%rdx + 43b473: 0f 85 37 01 00 00 jne 43b5b0 <__stpcpy_sse2_unaligned+0x250> + 43b479: f3 0f 7f 1c 0f movdqu %xmm3,(%rdi,%rcx,1) + 43b47e: 48 89 f2 mov %rsi,%rdx + 43b481: 48 8d 74 0e 10 lea 0x10(%rsi,%rcx,1),%rsi + 43b486: 48 83 e6 c0 and $0xffffffffffffffc0,%rsi + 43b48a: 48 29 f2 sub %rsi,%rdx + 43b48d: 48 29 d7 sub %rdx,%rdi + 43b490: 0f 28 16 movaps (%rsi),%xmm2 + 43b493: 0f 28 e2 movaps %xmm2,%xmm4 + 43b496: 0f 28 6e 10 movaps 0x10(%rsi),%xmm5 + 43b49a: 0f 28 5e 20 movaps 0x20(%rsi),%xmm3 + 43b49e: 0f 28 f3 movaps %xmm3,%xmm6 + 43b4a1: 0f 28 7e 30 movaps 0x30(%rsi),%xmm7 + 43b4a5: 66 0f da d5 pminub %xmm5,%xmm2 + 43b4a9: 66 0f da df pminub %xmm7,%xmm3 + 43b4ad: 66 0f da da pminub %xmm2,%xmm3 + 43b4b1: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 + 43b4b5: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43b4b9: 48 85 d2 test %rdx,%rdx + 43b4bc: 75 4b jne 43b509 <__stpcpy_sse2_unaligned+0x1a9> + 43b4be: 48 83 c7 40 add $0x40,%rdi + 43b4c2: 48 83 c6 40 add $0x40,%rsi + 43b4c6: f3 0f 7f 67 c0 movdqu %xmm4,-0x40(%rdi) + 43b4cb: 0f 28 16 movaps (%rsi),%xmm2 + 43b4ce: 66 0f 6f e2 movdqa %xmm2,%xmm4 + 43b4d2: f3 0f 7f 6f d0 movdqu %xmm5,-0x30(%rdi) + 43b4d7: 0f 28 6e 10 movaps 0x10(%rsi),%xmm5 + 43b4db: 66 0f da d5 pminub %xmm5,%xmm2 + 43b4df: 0f 28 5e 20 movaps 0x20(%rsi),%xmm3 + 43b4e3: f3 0f 7f 77 e0 movdqu %xmm6,-0x20(%rdi) + 43b4e8: 0f 28 f3 movaps %xmm3,%xmm6 + 43b4eb: f3 0f 7f 7f f0 movdqu %xmm7,-0x10(%rdi) + 43b4f0: 0f 28 7e 30 movaps 0x30(%rsi),%xmm7 + 43b4f4: 66 0f da df pminub %xmm7,%xmm3 + 43b4f8: 66 0f da da pminub %xmm2,%xmm3 + 43b4fc: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 + 43b500: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43b504: 48 85 d2 test %rdx,%rdx + 43b507: 74 b5 je 43b4be <__stpcpy_sse2_unaligned+0x15e> + 43b509: 66 0f ef c9 pxor %xmm1,%xmm1 + 43b50d: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 + 43b511: 66 0f 74 cd pcmpeqb %xmm5,%xmm1 + 43b515: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43b519: 66 0f d7 c9 pmovmskb %xmm1,%ecx + 43b51d: 48 85 d2 test %rdx,%rdx + 43b520: 0f 85 0a 01 00 00 jne 43b630 <__stpcpy_sse2_unaligned+0x2d0> + 43b526: 48 85 c9 test %rcx,%rcx + 43b529: 0f 85 21 01 00 00 jne 43b650 <__stpcpy_sse2_unaligned+0x2f0> + 43b52f: 66 0f 74 c6 pcmpeqb %xmm6,%xmm0 + 43b533: 66 0f 74 cf pcmpeqb %xmm7,%xmm1 + 43b537: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43b53b: 66 0f d7 c9 pmovmskb %xmm1,%ecx + 43b53f: 48 85 d2 test %rdx,%rdx + 43b542: 0f 85 38 01 00 00 jne 43b680 <__stpcpy_sse2_unaligned+0x320> + 43b548: 48 0f bc d1 bsf %rcx,%rdx + 43b54c: f3 0f 7f 27 movdqu %xmm4,(%rdi) + 43b550: f3 0f 7f 6f 10 movdqu %xmm5,0x10(%rdi) + 43b555: f3 0f 7f 77 20 movdqu %xmm6,0x20(%rdi) + 43b55a: 48 83 c6 30 add $0x30,%rsi + 43b55e: 48 83 c7 30 add $0x30,%rdi + 43b562: 4c 8d 1d c7 85 06 00 lea 0x685c7(%rip),%r11 # 4a3b30 + 43b569: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 43b56d: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx + 43b571: ff e1 jmpq *%rcx + 43b573: 66 0f ef c0 pxor %xmm0,%xmm0 + 43b577: f3 0f 6f 0e movdqu (%rsi),%xmm1 + 43b57b: f3 0f 6f 56 10 movdqu 0x10(%rsi),%xmm2 + 43b580: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 43b584: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43b588: 48 85 d2 test %rdx,%rdx + 43b58b: 75 6b jne 43b5f8 <__stpcpy_sse2_unaligned+0x298> + 43b58d: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 + 43b591: f3 0f 7f 0f movdqu %xmm1,(%rdi) + 43b595: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43b599: 48 85 d2 test %rdx,%rdx + 43b59c: 75 52 jne 43b5f0 <__stpcpy_sse2_unaligned+0x290> + 43b59e: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi + 43b5a2: 48 83 e1 0f and $0xf,%rcx + 43b5a6: e9 05 fe ff ff jmpq 43b3b0 <__stpcpy_sse2_unaligned+0x50> + 43b5ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43b5b0: 48 01 cf add %rcx,%rdi + 43b5b3: 48 01 ce add %rcx,%rsi + 43b5b6: 48 0f bc d2 bsf %rdx,%rdx + 43b5ba: 4c 8d 1d 6f 85 06 00 lea 0x6856f(%rip),%r11 # 4a3b30 + 43b5c1: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 43b5c5: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx + 43b5c9: ff e1 jmpq *%rcx + 43b5cb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43b5d0: 48 01 ce add %rcx,%rsi + 43b5d3: 48 0f bc d2 bsf %rdx,%rdx + 43b5d7: 4c 8d 1d 52 85 06 00 lea 0x68552(%rip),%r11 # 4a3b30 + 43b5de: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 43b5e2: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx + 43b5e6: ff e1 jmpq *%rcx + 43b5e8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43b5ef: 00 + 43b5f0: 48 83 c6 10 add $0x10,%rsi + 43b5f4: 48 83 c7 10 add $0x10,%rdi + 43b5f8: 48 0f bc d2 bsf %rdx,%rdx + 43b5fc: 4c 8d 1d 2d 85 06 00 lea 0x6852d(%rip),%r11 # 4a3b30 + 43b603: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 43b607: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx + 43b60b: ff e1 jmpq *%rcx + 43b60d: 0f 1f 00 nopl (%rax) + 43b610: 48 0f bc d2 bsf %rdx,%rdx + 43b614: 48 01 ce add %rcx,%rsi + 43b617: 48 83 c2 10 add $0x10,%rdx + 43b61b: 48 29 ca sub %rcx,%rdx + 43b61e: 4c 8d 1d 0b 85 06 00 lea 0x6850b(%rip),%r11 # 4a3b30 + 43b625: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 43b629: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx + 43b62d: ff e1 jmpq *%rcx + 43b62f: 90 nop + 43b630: 48 0f bc d2 bsf %rdx,%rdx + 43b634: 4c 8d 1d f5 84 06 00 lea 0x684f5(%rip),%r11 # 4a3b30 + 43b63b: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 43b63f: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx + 43b643: ff e1 jmpq *%rcx + 43b645: 90 nop + 43b646: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b64d: 00 00 00 + 43b650: 48 0f bc d1 bsf %rcx,%rdx + 43b654: f3 0f 7f 27 movdqu %xmm4,(%rdi) + 43b658: 48 83 c6 10 add $0x10,%rsi + 43b65c: 48 83 c7 10 add $0x10,%rdi + 43b660: 4c 8d 1d c9 84 06 00 lea 0x684c9(%rip),%r11 # 4a3b30 + 43b667: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 43b66b: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx + 43b66f: ff e1 jmpq *%rcx + 43b671: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43b676: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b67d: 00 00 00 + 43b680: 48 0f bc d2 bsf %rdx,%rdx + 43b684: f3 0f 7f 27 movdqu %xmm4,(%rdi) + 43b688: f3 0f 7f 6f 10 movdqu %xmm5,0x10(%rdi) + 43b68d: 48 83 c6 20 add $0x20,%rsi + 43b691: 48 83 c7 20 add $0x20,%rdi + 43b695: 4c 8d 1d 94 84 06 00 lea 0x68494(%rip),%r11 # 4a3b30 + 43b69c: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx + 43b6a0: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx + 43b6a4: ff e1 jmpq *%rcx + 43b6a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b6ad: 00 00 00 + 43b6b0: 88 37 mov %dh,(%rdi) + 43b6b2: 48 8d 07 lea (%rdi),%rax + 43b6b5: c3 retq + 43b6b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b6bd: 00 00 00 + 43b6c0: 66 8b 16 mov (%rsi),%dx + 43b6c3: 66 89 17 mov %dx,(%rdi) + 43b6c6: 48 8d 47 01 lea 0x1(%rdi),%rax + 43b6ca: c3 retq + 43b6cb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43b6d0: 66 8b 0e mov (%rsi),%cx + 43b6d3: 66 89 0f mov %cx,(%rdi) + 43b6d6: 88 77 02 mov %dh,0x2(%rdi) + 43b6d9: 48 8d 47 02 lea 0x2(%rdi),%rax + 43b6dd: c3 retq + 43b6de: 66 90 xchg %ax,%ax + 43b6e0: 8b 16 mov (%rsi),%edx + 43b6e2: 89 17 mov %edx,(%rdi) + 43b6e4: 48 8d 47 03 lea 0x3(%rdi),%rax + 43b6e8: c3 retq + 43b6e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43b6f0: 8b 0e mov (%rsi),%ecx + 43b6f2: 88 77 04 mov %dh,0x4(%rdi) + 43b6f5: 89 0f mov %ecx,(%rdi) + 43b6f7: 48 8d 47 04 lea 0x4(%rdi),%rax + 43b6fb: c3 retq + 43b6fc: 0f 1f 40 00 nopl 0x0(%rax) + 43b700: 8b 0e mov (%rsi),%ecx + 43b702: 66 8b 56 04 mov 0x4(%rsi),%dx + 43b706: 89 0f mov %ecx,(%rdi) + 43b708: 66 89 57 04 mov %dx,0x4(%rdi) + 43b70c: 48 8d 47 05 lea 0x5(%rdi),%rax + 43b710: c3 retq + 43b711: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43b716: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b71d: 00 00 00 + 43b720: 8b 0e mov (%rsi),%ecx + 43b722: 8b 56 03 mov 0x3(%rsi),%edx + 43b725: 89 0f mov %ecx,(%rdi) + 43b727: 89 57 03 mov %edx,0x3(%rdi) + 43b72a: 48 8d 47 06 lea 0x6(%rdi),%rax + 43b72e: c3 retq + 43b72f: 90 nop + 43b730: 48 8b 16 mov (%rsi),%rdx + 43b733: 48 89 17 mov %rdx,(%rdi) + 43b736: 48 8d 47 07 lea 0x7(%rdi),%rax + 43b73a: c3 retq + 43b73b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43b740: 48 8b 0e mov (%rsi),%rcx + 43b743: 88 77 08 mov %dh,0x8(%rdi) + 43b746: 48 89 0f mov %rcx,(%rdi) + 43b749: 48 8d 47 08 lea 0x8(%rdi),%rax + 43b74d: c3 retq + 43b74e: 66 90 xchg %ax,%ax + 43b750: 48 8b 0e mov (%rsi),%rcx + 43b753: 66 8b 56 08 mov 0x8(%rsi),%dx + 43b757: 48 89 0f mov %rcx,(%rdi) + 43b75a: 66 89 57 08 mov %dx,0x8(%rdi) + 43b75e: 48 8d 47 09 lea 0x9(%rdi),%rax + 43b762: c3 retq + 43b763: 0f 1f 00 nopl (%rax) + 43b766: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b76d: 00 00 00 + 43b770: 48 8b 0e mov (%rsi),%rcx + 43b773: 8b 56 07 mov 0x7(%rsi),%edx + 43b776: 48 89 0f mov %rcx,(%rdi) + 43b779: 89 57 07 mov %edx,0x7(%rdi) + 43b77c: 48 8d 47 0a lea 0xa(%rdi),%rax + 43b780: c3 retq + 43b781: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43b786: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b78d: 00 00 00 + 43b790: 48 8b 0e mov (%rsi),%rcx + 43b793: 8b 56 08 mov 0x8(%rsi),%edx + 43b796: 48 89 0f mov %rcx,(%rdi) + 43b799: 89 57 08 mov %edx,0x8(%rdi) + 43b79c: 48 8d 47 0b lea 0xb(%rdi),%rax + 43b7a0: c3 retq + 43b7a1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43b7a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b7ad: 00 00 00 + 43b7b0: 48 8b 0e mov (%rsi),%rcx + 43b7b3: 48 8b 56 05 mov 0x5(%rsi),%rdx + 43b7b7: 48 89 0f mov %rcx,(%rdi) + 43b7ba: 48 89 57 05 mov %rdx,0x5(%rdi) + 43b7be: 48 8d 47 0c lea 0xc(%rdi),%rax + 43b7c2: c3 retq + 43b7c3: 0f 1f 00 nopl (%rax) + 43b7c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b7cd: 00 00 00 + 43b7d0: 48 8b 0e mov (%rsi),%rcx + 43b7d3: 48 8b 56 06 mov 0x6(%rsi),%rdx + 43b7d7: 48 89 0f mov %rcx,(%rdi) + 43b7da: 48 89 57 06 mov %rdx,0x6(%rdi) + 43b7de: 48 8d 47 0d lea 0xd(%rdi),%rax + 43b7e2: c3 retq + 43b7e3: 0f 1f 00 nopl (%rax) + 43b7e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b7ed: 00 00 00 + 43b7f0: 48 8b 0e mov (%rsi),%rcx + 43b7f3: 48 8b 56 07 mov 0x7(%rsi),%rdx + 43b7f7: 48 89 0f mov %rcx,(%rdi) + 43b7fa: 48 89 57 07 mov %rdx,0x7(%rdi) + 43b7fe: 48 8d 47 0e lea 0xe(%rdi),%rax + 43b802: c3 retq + 43b803: 0f 1f 00 nopl (%rax) + 43b806: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b80d: 00 00 00 + 43b810: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b814: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b818: 48 8d 47 0f lea 0xf(%rdi),%rax + 43b81c: c3 retq + 43b81d: 0f 1f 00 nopl (%rax) + 43b820: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b824: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b828: 88 77 10 mov %dh,0x10(%rdi) + 43b82b: 48 8d 47 10 lea 0x10(%rdi),%rax + 43b82f: c3 retq + 43b830: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b834: 66 8b 4e 10 mov 0x10(%rsi),%cx + 43b838: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b83c: 66 89 4f 10 mov %cx,0x10(%rdi) + 43b840: 48 8d 47 11 lea 0x11(%rdi),%rax + 43b844: c3 retq + 43b845: 90 nop + 43b846: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b84d: 00 00 00 + 43b850: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b854: 8b 4e 0f mov 0xf(%rsi),%ecx + 43b857: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b85b: 89 4f 0f mov %ecx,0xf(%rdi) + 43b85e: 48 8d 47 12 lea 0x12(%rdi),%rax + 43b862: c3 retq + 43b863: 0f 1f 00 nopl (%rax) + 43b866: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b86d: 00 00 00 + 43b870: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b874: 8b 4e 10 mov 0x10(%rsi),%ecx + 43b877: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b87b: 89 4f 10 mov %ecx,0x10(%rdi) + 43b87e: 48 8d 47 13 lea 0x13(%rdi),%rax + 43b882: c3 retq + 43b883: 0f 1f 00 nopl (%rax) + 43b886: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b88d: 00 00 00 + 43b890: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b894: 8b 4e 10 mov 0x10(%rsi),%ecx + 43b897: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b89b: 89 4f 10 mov %ecx,0x10(%rdi) + 43b89e: 88 77 14 mov %dh,0x14(%rdi) + 43b8a1: 48 8d 47 14 lea 0x14(%rdi),%rax + 43b8a5: c3 retq + 43b8a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b8ad: 00 00 00 + 43b8b0: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b8b4: 48 8b 4e 0e mov 0xe(%rsi),%rcx + 43b8b8: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b8bc: 48 89 4f 0e mov %rcx,0xe(%rdi) + 43b8c0: 48 8d 47 15 lea 0x15(%rdi),%rax + 43b8c4: c3 retq + 43b8c5: 90 nop + 43b8c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b8cd: 00 00 00 + 43b8d0: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b8d4: 48 8b 4e 0f mov 0xf(%rsi),%rcx + 43b8d8: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b8dc: 48 89 4f 0f mov %rcx,0xf(%rdi) + 43b8e0: 48 8d 47 16 lea 0x16(%rdi),%rax + 43b8e4: c3 retq + 43b8e5: 90 nop + 43b8e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b8ed: 00 00 00 + 43b8f0: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b8f4: 48 8b 4e 10 mov 0x10(%rsi),%rcx + 43b8f8: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b8fc: 48 89 4f 10 mov %rcx,0x10(%rdi) + 43b900: 48 8d 47 17 lea 0x17(%rdi),%rax + 43b904: c3 retq + 43b905: 90 nop + 43b906: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43b90d: 00 00 00 + 43b910: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b914: 48 8b 4e 10 mov 0x10(%rsi),%rcx + 43b918: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b91c: 48 89 4f 10 mov %rcx,0x10(%rdi) + 43b920: 88 77 18 mov %dh,0x18(%rdi) + 43b923: 48 8d 47 18 lea 0x18(%rdi),%rax + 43b927: c3 retq + 43b928: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43b92f: 00 + 43b930: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b934: 48 8b 56 10 mov 0x10(%rsi),%rdx + 43b938: 66 8b 4e 18 mov 0x18(%rsi),%cx + 43b93c: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b940: 48 89 57 10 mov %rdx,0x10(%rdi) + 43b944: 66 89 4f 18 mov %cx,0x18(%rdi) + 43b948: 48 8d 47 19 lea 0x19(%rdi),%rax + 43b94c: c3 retq + 43b94d: 0f 1f 00 nopl (%rax) + 43b950: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b954: 48 8b 56 10 mov 0x10(%rsi),%rdx + 43b958: 8b 4e 17 mov 0x17(%rsi),%ecx + 43b95b: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b95f: 48 89 57 10 mov %rdx,0x10(%rdi) + 43b963: 89 4f 17 mov %ecx,0x17(%rdi) + 43b966: 48 8d 47 1a lea 0x1a(%rdi),%rax + 43b96a: c3 retq + 43b96b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43b970: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b974: 48 8b 56 10 mov 0x10(%rsi),%rdx + 43b978: 8b 4e 18 mov 0x18(%rsi),%ecx + 43b97b: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b97f: 48 89 57 10 mov %rdx,0x10(%rdi) + 43b983: 89 4f 18 mov %ecx,0x18(%rdi) + 43b986: 48 8d 47 1b lea 0x1b(%rdi),%rax + 43b98a: c3 retq + 43b98b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43b990: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b994: f3 0f 6f 56 0d movdqu 0xd(%rsi),%xmm2 + 43b999: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b99d: f3 0f 7f 57 0d movdqu %xmm2,0xd(%rdi) + 43b9a2: 48 8d 47 1c lea 0x1c(%rdi),%rax + 43b9a6: c3 retq + 43b9a7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43b9ae: 00 00 + 43b9b0: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b9b4: f3 0f 6f 56 0e movdqu 0xe(%rsi),%xmm2 + 43b9b9: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b9bd: f3 0f 7f 57 0e movdqu %xmm2,0xe(%rdi) + 43b9c2: 48 8d 47 1d lea 0x1d(%rdi),%rax + 43b9c6: c3 retq + 43b9c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43b9ce: 00 00 + 43b9d0: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b9d4: f3 0f 6f 56 0f movdqu 0xf(%rsi),%xmm2 + 43b9d9: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b9dd: f3 0f 7f 57 0f movdqu %xmm2,0xf(%rdi) + 43b9e2: 48 8d 47 1e lea 0x1e(%rdi),%rax + 43b9e6: c3 retq + 43b9e7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43b9ee: 00 00 + 43b9f0: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43b9f4: f3 0f 6f 56 10 movdqu 0x10(%rsi),%xmm2 + 43b9f9: f3 0f 7f 07 movdqu %xmm0,(%rdi) + 43b9fd: f3 0f 7f 57 10 movdqu %xmm2,0x10(%rdi) + 43ba02: 48 8d 47 1f lea 0x1f(%rdi),%rax + 43ba06: c3 retq + 43ba07: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43ba0e: 00 00 + +000000000043ba10 <__strchr_sse2_no_bsf>: + 43ba10: 66 0f 6e ce movd %esi,%xmm1 + 43ba14: 48 89 f9 mov %rdi,%rcx + 43ba17: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 + 43ba1b: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 43ba1f: 66 0f ef d2 pxor %xmm2,%xmm2 + 43ba23: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 + 43ba27: 83 ce ff or $0xffffffff,%esi + 43ba2a: 66 0f 6f 07 movdqa (%rdi),%xmm0 + 43ba2e: 66 0f 70 c9 00 pshufd $0x0,%xmm1,%xmm1 + 43ba33: 48 29 f9 sub %rdi,%rcx + 43ba36: 66 0f 6f d8 movdqa %xmm0,%xmm3 + 43ba3a: 48 8d 7f 10 lea 0x10(%rdi),%rdi + 43ba3e: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 43ba42: 66 0f 74 da pcmpeqb %xmm2,%xmm3 + 43ba46: d3 e6 shl %cl,%esi + 43ba48: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43ba4c: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43ba50: 21 f0 and %esi,%eax + 43ba52: 21 f2 and %esi,%edx + 43ba54: 85 c0 test %eax,%eax + 43ba56: 75 3c jne 43ba94 <__strchr_sse2_no_bsf+0x84> + 43ba58: 85 d2 test %edx,%edx + 43ba5a: 75 34 jne 43ba90 <__strchr_sse2_no_bsf+0x80> + 43ba5c: 66 0f 6f 07 movdqa (%rdi),%xmm0 + 43ba60: 48 8d 7f 10 lea 0x10(%rdi),%rdi + 43ba64: 66 0f 6f d8 movdqa %xmm0,%xmm3 + 43ba68: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 43ba6c: 66 0f 74 da pcmpeqb %xmm2,%xmm3 + 43ba70: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43ba74: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43ba78: 09 c2 or %eax,%edx + 43ba7a: 74 e0 je 43ba5c <__strchr_sse2_no_bsf+0x4c> + 43ba7c: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43ba80: 85 c0 test %eax,%eax + 43ba82: 75 10 jne 43ba94 <__strchr_sse2_no_bsf+0x84> + 43ba84: 66 90 xchg %ax,%ax + 43ba86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43ba8d: 00 00 00 + 43ba90: 48 31 c0 xor %rax,%rax + 43ba93: c3 retq + 43ba94: 48 8d 7f f0 lea -0x10(%rdi),%rdi + 43ba98: 85 d2 test %edx,%edx + 43ba9a: 0f 84 10 01 00 00 je 43bbb0 <__strchr_sse2_no_bsf+0x1a0> + 43baa0: 84 c0 test %al,%al + 43baa2: 74 6c je 43bb10 <__strchr_sse2_no_bsf+0x100> + 43baa4: 88 c1 mov %al,%cl + 43baa6: 80 e1 0f and $0xf,%cl + 43baa9: 75 35 jne 43bae0 <__strchr_sse2_no_bsf+0xd0> + 43baab: 88 d5 mov %dl,%ch + 43baad: 80 e5 0f and $0xf,%ch + 43bab0: 75 de jne 43ba90 <__strchr_sse2_no_bsf+0x80> + 43bab2: a8 10 test $0x10,%al + 43bab4: 0f 85 d6 01 00 00 jne 43bc90 <__strchr_sse2_no_bsf+0x280> + 43baba: f6 c2 10 test $0x10,%dl + 43babd: 75 d1 jne 43ba90 <__strchr_sse2_no_bsf+0x80> + 43babf: a8 20 test $0x20,%al + 43bac1: 0f 85 d9 01 00 00 jne 43bca0 <__strchr_sse2_no_bsf+0x290> + 43bac7: f6 c2 20 test $0x20,%dl + 43baca: 75 c4 jne 43ba90 <__strchr_sse2_no_bsf+0x80> + 43bacc: a8 40 test $0x40,%al + 43bace: 0f 85 dc 01 00 00 jne 43bcb0 <__strchr_sse2_no_bsf+0x2a0> + 43bad4: f6 c2 40 test $0x40,%dl + 43bad7: 75 b7 jne 43ba90 <__strchr_sse2_no_bsf+0x80> + 43bad9: 48 8d 47 07 lea 0x7(%rdi),%rax + 43badd: c3 retq + 43bade: 66 90 xchg %ax,%ax + 43bae0: a8 01 test $0x1,%al + 43bae2: 0f 85 68 01 00 00 jne 43bc50 <__strchr_sse2_no_bsf+0x240> + 43bae8: f6 c2 01 test $0x1,%dl + 43baeb: 75 a3 jne 43ba90 <__strchr_sse2_no_bsf+0x80> + 43baed: a8 02 test $0x2,%al + 43baef: 0f 85 6b 01 00 00 jne 43bc60 <__strchr_sse2_no_bsf+0x250> + 43baf5: f6 c2 02 test $0x2,%dl + 43baf8: 75 96 jne 43ba90 <__strchr_sse2_no_bsf+0x80> + 43bafa: a8 04 test $0x4,%al + 43bafc: 0f 85 6e 01 00 00 jne 43bc70 <__strchr_sse2_no_bsf+0x260> + 43bb02: f6 c2 04 test $0x4,%dl + 43bb05: 75 89 jne 43ba90 <__strchr_sse2_no_bsf+0x80> + 43bb07: 48 8d 47 03 lea 0x3(%rdi),%rax + 43bb0b: c3 retq + 43bb0c: 0f 1f 40 00 nopl 0x0(%rax) + 43bb10: 84 d2 test %dl,%dl + 43bb12: 0f 85 78 ff ff ff jne 43ba90 <__strchr_sse2_no_bsf+0x80> + 43bb18: 88 e1 mov %ah,%cl + 43bb1a: 80 e1 0f and $0xf,%cl + 43bb1d: 75 51 jne 43bb70 <__strchr_sse2_no_bsf+0x160> + 43bb1f: 88 f5 mov %dh,%ch + 43bb21: 80 e5 0f and $0xf,%ch + 43bb24: 0f 85 66 ff ff ff jne 43ba90 <__strchr_sse2_no_bsf+0x80> + 43bb2a: f6 c4 10 test $0x10,%ah + 43bb2d: 0f 85 cd 01 00 00 jne 43bd00 <__strchr_sse2_no_bsf+0x2f0> + 43bb33: f6 c6 10 test $0x10,%dh + 43bb36: 0f 85 54 ff ff ff jne 43ba90 <__strchr_sse2_no_bsf+0x80> + 43bb3c: f6 c4 20 test $0x20,%ah + 43bb3f: 0f 85 cb 01 00 00 jne 43bd10 <__strchr_sse2_no_bsf+0x300> + 43bb45: f6 c6 20 test $0x20,%dh + 43bb48: 0f 85 42 ff ff ff jne 43ba90 <__strchr_sse2_no_bsf+0x80> + 43bb4e: f6 c4 40 test $0x40,%ah + 43bb51: 0f 85 c9 01 00 00 jne 43bd20 <__strchr_sse2_no_bsf+0x310> + 43bb57: f6 c6 40 test $0x40,%dh + 43bb5a: 0f 85 30 ff ff ff jne 43ba90 <__strchr_sse2_no_bsf+0x80> + 43bb60: 48 8d 47 0f lea 0xf(%rdi),%rax + 43bb64: c3 retq + 43bb65: 90 nop + 43bb66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bb6d: 00 00 00 + 43bb70: f6 c4 01 test $0x1,%ah + 43bb73: 0f 85 47 01 00 00 jne 43bcc0 <__strchr_sse2_no_bsf+0x2b0> + 43bb79: f6 c6 01 test $0x1,%dh + 43bb7c: 0f 85 0e ff ff ff jne 43ba90 <__strchr_sse2_no_bsf+0x80> + 43bb82: f6 c4 02 test $0x2,%ah + 43bb85: 0f 85 45 01 00 00 jne 43bcd0 <__strchr_sse2_no_bsf+0x2c0> + 43bb8b: f6 c6 02 test $0x2,%dh + 43bb8e: 0f 85 fc fe ff ff jne 43ba90 <__strchr_sse2_no_bsf+0x80> + 43bb94: f6 c4 04 test $0x4,%ah + 43bb97: 0f 85 43 01 00 00 jne 43bce0 <__strchr_sse2_no_bsf+0x2d0> + 43bb9d: f6 c6 04 test $0x4,%dh + 43bba0: 0f 85 ea fe ff ff jne 43ba90 <__strchr_sse2_no_bsf+0x80> + 43bba6: 48 8d 47 0b lea 0xb(%rdi),%rax + 43bbaa: c3 retq + 43bbab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43bbb0: 84 c0 test %al,%al + 43bbb2: 74 4c je 43bc00 <__strchr_sse2_no_bsf+0x1f0> + 43bbb4: a8 01 test $0x1,%al + 43bbb6: 0f 85 94 00 00 00 jne 43bc50 <__strchr_sse2_no_bsf+0x240> + 43bbbc: a8 02 test $0x2,%al + 43bbbe: 0f 85 9c 00 00 00 jne 43bc60 <__strchr_sse2_no_bsf+0x250> + 43bbc4: a8 04 test $0x4,%al + 43bbc6: 0f 85 a4 00 00 00 jne 43bc70 <__strchr_sse2_no_bsf+0x260> + 43bbcc: a8 08 test $0x8,%al + 43bbce: 0f 85 ac 00 00 00 jne 43bc80 <__strchr_sse2_no_bsf+0x270> + 43bbd4: a8 10 test $0x10,%al + 43bbd6: 0f 85 b4 00 00 00 jne 43bc90 <__strchr_sse2_no_bsf+0x280> + 43bbdc: a8 20 test $0x20,%al + 43bbde: 0f 85 bc 00 00 00 jne 43bca0 <__strchr_sse2_no_bsf+0x290> + 43bbe4: a8 40 test $0x40,%al + 43bbe6: 0f 85 c4 00 00 00 jne 43bcb0 <__strchr_sse2_no_bsf+0x2a0> + 43bbec: 48 8d 47 07 lea 0x7(%rdi),%rax + 43bbf0: c3 retq + 43bbf1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43bbf6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bbfd: 00 00 00 + 43bc00: f6 c4 01 test $0x1,%ah + 43bc03: 0f 85 b7 00 00 00 jne 43bcc0 <__strchr_sse2_no_bsf+0x2b0> + 43bc09: f6 c4 02 test $0x2,%ah + 43bc0c: 0f 85 be 00 00 00 jne 43bcd0 <__strchr_sse2_no_bsf+0x2c0> + 43bc12: f6 c4 04 test $0x4,%ah + 43bc15: 0f 85 c5 00 00 00 jne 43bce0 <__strchr_sse2_no_bsf+0x2d0> + 43bc1b: f6 c4 08 test $0x8,%ah + 43bc1e: 0f 85 cc 00 00 00 jne 43bcf0 <__strchr_sse2_no_bsf+0x2e0> + 43bc24: f6 c4 10 test $0x10,%ah + 43bc27: 0f 85 d3 00 00 00 jne 43bd00 <__strchr_sse2_no_bsf+0x2f0> + 43bc2d: f6 c4 20 test $0x20,%ah + 43bc30: 0f 85 da 00 00 00 jne 43bd10 <__strchr_sse2_no_bsf+0x300> + 43bc36: f6 c4 40 test $0x40,%ah + 43bc39: 0f 85 e1 00 00 00 jne 43bd20 <__strchr_sse2_no_bsf+0x310> + 43bc3f: 48 8d 47 0f lea 0xf(%rdi),%rax + 43bc43: c3 retq + 43bc44: 66 90 xchg %ax,%ax + 43bc46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bc4d: 00 00 00 + 43bc50: 48 8d 07 lea (%rdi),%rax + 43bc53: c3 retq + 43bc54: 66 90 xchg %ax,%ax + 43bc56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bc5d: 00 00 00 + 43bc60: 48 8d 47 01 lea 0x1(%rdi),%rax + 43bc64: c3 retq + 43bc65: 90 nop + 43bc66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bc6d: 00 00 00 + 43bc70: 48 8d 47 02 lea 0x2(%rdi),%rax + 43bc74: c3 retq + 43bc75: 90 nop + 43bc76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bc7d: 00 00 00 + 43bc80: 48 8d 47 03 lea 0x3(%rdi),%rax + 43bc84: c3 retq + 43bc85: 90 nop + 43bc86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bc8d: 00 00 00 + 43bc90: 48 8d 47 04 lea 0x4(%rdi),%rax + 43bc94: c3 retq + 43bc95: 90 nop + 43bc96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bc9d: 00 00 00 + 43bca0: 48 8d 47 05 lea 0x5(%rdi),%rax + 43bca4: c3 retq + 43bca5: 90 nop + 43bca6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bcad: 00 00 00 + 43bcb0: 48 8d 47 06 lea 0x6(%rdi),%rax + 43bcb4: c3 retq + 43bcb5: 90 nop + 43bcb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bcbd: 00 00 00 + 43bcc0: 48 8d 47 08 lea 0x8(%rdi),%rax + 43bcc4: c3 retq + 43bcc5: 90 nop + 43bcc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bccd: 00 00 00 + 43bcd0: 48 8d 47 09 lea 0x9(%rdi),%rax + 43bcd4: c3 retq + 43bcd5: 90 nop + 43bcd6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bcdd: 00 00 00 + 43bce0: 48 8d 47 0a lea 0xa(%rdi),%rax + 43bce4: c3 retq + 43bce5: 90 nop + 43bce6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bced: 00 00 00 + 43bcf0: 48 8d 47 0b lea 0xb(%rdi),%rax + 43bcf4: c3 retq + 43bcf5: 90 nop + 43bcf6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bcfd: 00 00 00 + 43bd00: 48 8d 47 0c lea 0xc(%rdi),%rax + 43bd04: c3 retq + 43bd05: 90 nop + 43bd06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bd0d: 00 00 00 + 43bd10: 48 8d 47 0d lea 0xd(%rdi),%rax + 43bd14: c3 retq + 43bd15: 90 nop + 43bd16: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bd1d: 00 00 00 + 43bd20: 48 8d 47 0e lea 0xe(%rdi),%rax + 43bd24: c3 retq + 43bd25: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43bd2c: 00 00 00 + 43bd2f: 90 nop + +000000000043bd30 <__memcmp_ssse3>: + 43bd30: 48 89 d1 mov %rdx,%rcx + 43bd33: 48 89 fa mov %rdi,%rdx + 43bd36: 48 83 f9 30 cmp $0x30,%rcx + 43bd3a: 73 14 jae 43bd50 <__memcmp_ssse3+0x20> + 43bd3c: 48 01 ce add %rcx,%rsi + 43bd3f: 48 01 cf add %rcx,%rdi + 43bd42: e9 b9 12 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43bd47: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43bd4e: 00 00 + 43bd50: f3 0f 6f 1f movdqu (%rdi),%xmm3 + 43bd54: f3 0f 6f 06 movdqu (%rsi),%xmm0 + 43bd58: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 + 43bd5c: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43bd60: 48 8d 7f 10 lea 0x10(%rdi),%rdi + 43bd64: 48 8d 76 10 lea 0x10(%rsi),%rsi + 43bd68: 81 ea ff ff 00 00 sub $0xffff,%edx + 43bd6e: 0f 85 98 11 00 00 jne 43cf0c <__memcmp_ssse3+0x11dc> + 43bd74: 89 fa mov %edi,%edx + 43bd76: 83 e2 0f and $0xf,%edx + 43bd79: 48 31 d7 xor %rdx,%rdi + 43bd7c: 48 29 d6 sub %rdx,%rsi + 43bd7f: 48 01 d1 add %rdx,%rcx + 43bd82: 89 f2 mov %esi,%edx + 43bd84: 83 e2 0f and $0xf,%edx + 43bd87: 0f 84 93 00 00 00 je 43be20 <__memcmp_ssse3+0xf0> + 43bd8d: 48 31 d6 xor %rdx,%rsi + 43bd90: 83 fa 08 cmp $0x8,%edx + 43bd93: 73 47 jae 43bddc <__memcmp_ssse3+0xac> + 43bd95: 83 fa 00 cmp $0x0,%edx + 43bd98: 0f 84 82 00 00 00 je 43be20 <__memcmp_ssse3+0xf0> + 43bd9e: 83 fa 01 cmp $0x1,%edx + 43bda1: 0f 84 59 01 00 00 je 43bf00 <__memcmp_ssse3+0x1d0> + 43bda7: 83 fa 02 cmp $0x2,%edx + 43bdaa: 0f 84 60 02 00 00 je 43c010 <__memcmp_ssse3+0x2e0> + 43bdb0: 83 fa 03 cmp $0x3,%edx + 43bdb3: 0f 84 67 03 00 00 je 43c120 <__memcmp_ssse3+0x3f0> + 43bdb9: 83 fa 04 cmp $0x4,%edx + 43bdbc: 0f 84 6e 04 00 00 je 43c230 <__memcmp_ssse3+0x500> + 43bdc2: 83 fa 05 cmp $0x5,%edx + 43bdc5: 0f 84 75 05 00 00 je 43c340 <__memcmp_ssse3+0x610> + 43bdcb: 83 fa 06 cmp $0x6,%edx + 43bdce: 0f 84 7c 06 00 00 je 43c450 <__memcmp_ssse3+0x720> + 43bdd4: e9 87 07 00 00 jmpq 43c560 <__memcmp_ssse3+0x830> + 43bdd9: 0f 1f 00 nopl (%rax) + 43bddc: 83 fa 08 cmp $0x8,%edx + 43bddf: 0f 84 8b 08 00 00 je 43c670 <__memcmp_ssse3+0x940> + 43bde5: 83 fa 09 cmp $0x9,%edx + 43bde8: 0f 84 92 09 00 00 je 43c780 <__memcmp_ssse3+0xa50> + 43bdee: 83 fa 0a cmp $0xa,%edx + 43bdf1: 0f 84 99 0a 00 00 je 43c890 <__memcmp_ssse3+0xb60> + 43bdf7: 83 fa 0b cmp $0xb,%edx + 43bdfa: 0f 84 a0 0b 00 00 je 43c9a0 <__memcmp_ssse3+0xc70> + 43be00: 83 fa 0c cmp $0xc,%edx + 43be03: 0f 84 a7 0c 00 00 je 43cab0 <__memcmp_ssse3+0xd80> + 43be09: 83 fa 0d cmp $0xd,%edx + 43be0c: 0f 84 ae 0d 00 00 je 43cbc0 <__memcmp_ssse3+0xe90> + 43be12: 83 fa 0e cmp $0xe,%edx + 43be15: 0f 84 b5 0e 00 00 je 43ccd0 <__memcmp_ssse3+0xfa0> + 43be1b: e9 c0 0f 00 00 jmpq 43cde0 <__memcmp_ssse3+0x10b0> + 43be20: 48 83 f9 50 cmp $0x50,%rcx + 43be24: 48 8d 49 d0 lea -0x30(%rcx),%rcx + 43be28: 73 46 jae 43be70 <__memcmp_ssse3+0x140> + 43be2a: 31 c0 xor %eax,%eax + 43be2c: 66 0f 6f 0e movdqa (%rsi),%xmm1 + 43be30: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 43be34: 66 0f 6f 56 10 movdqa 0x10(%rsi),%xmm2 + 43be39: 66 0f 74 57 10 pcmpeqb 0x10(%rdi),%xmm2 + 43be3e: 66 0f db d1 pand %xmm1,%xmm2 + 43be42: 66 0f d7 d2 pmovmskb %xmm2,%edx + 43be46: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43be4a: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43be4e: 81 ea ff ff 00 00 sub $0xffff,%edx + 43be54: 0f 85 96 10 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43be5a: 48 01 ce add %rcx,%rsi + 43be5d: 48 01 cf add %rcx,%rdi + 43be60: e9 9b 11 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43be65: 90 nop + 43be66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43be6d: 00 00 00 + 43be70: 66 0f 6f 06 movdqa (%rsi),%xmm0 + 43be74: 31 c0 xor %eax,%eax + 43be76: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 43be7a: 48 83 e9 20 sub $0x20,%rcx + 43be7e: 66 0f 6f 56 10 movdqa 0x10(%rsi),%xmm2 + 43be83: 66 0f 74 57 10 pcmpeqb 0x10(%rdi),%xmm2 + 43be88: 66 0f db d0 pand %xmm0,%xmm2 + 43be8c: 48 83 e9 20 sub $0x20,%rcx + 43be90: 66 0f d7 d2 pmovmskb %xmm2,%edx + 43be94: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43be98: 66 0f 6f 46 20 movdqa 0x20(%rsi),%xmm0 + 43be9d: 66 0f 6f 56 30 movdqa 0x30(%rsi),%xmm2 + 43bea2: 81 da ff ff 00 00 sbb $0xffff,%edx + 43bea8: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 + 43bead: 66 0f 74 57 30 pcmpeqb 0x30(%rdi),%xmm2 + 43beb2: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43beb6: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43beba: 74 cc je 43be88 <__memcmp_ssse3+0x158> + 43bebc: 66 0f db d0 pand %xmm0,%xmm2 + 43bec0: 48 83 f9 00 cmp $0x0,%rcx + 43bec4: 7d 06 jge 43becc <__memcmp_ssse3+0x19c> + 43bec6: ff c2 inc %edx + 43bec8: 48 83 c1 20 add $0x20,%rcx + 43becc: 85 d2 test %edx,%edx + 43bece: 0f 85 1c 10 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43bed4: 66 0f d7 d2 pmovmskb %xmm2,%edx + 43bed8: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43bedc: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43bee0: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43bee4: 81 ea ff ff 00 00 sub $0xffff,%edx + 43beea: 0f 85 00 10 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43bef0: 48 01 ce add %rcx,%rsi + 43bef3: 48 01 cf add %rcx,%rdi + 43bef6: e9 05 11 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43befb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43bf00: 48 83 f9 50 cmp $0x50,%rcx + 43bf04: 48 8d 49 d0 lea -0x30(%rcx),%rcx + 43bf08: 89 d0 mov %edx,%eax + 43bf0a: 73 54 jae 43bf60 <__memcmp_ssse3+0x230> + 43bf0c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 43bf11: 66 0f 6f d1 movdqa %xmm1,%xmm2 + 43bf15: 66 0f 3a 0f 0e 01 palignr $0x1,(%rsi),%xmm1 + 43bf1b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 43bf1f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43bf24: 66 0f 3a 0f da 01 palignr $0x1,%xmm2,%xmm3 + 43bf2a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43bf2f: 66 0f db d9 pand %xmm1,%xmm3 + 43bf33: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43bf37: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43bf3b: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43bf3f: 81 ea ff ff 00 00 sub $0xffff,%edx + 43bf45: 0f 85 a5 0f 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43bf4b: 48 83 c6 01 add $0x1,%rsi + 43bf4f: 48 01 ce add %rcx,%rsi + 43bf52: 48 01 cf add %rcx,%rdi + 43bf55: e9 a6 10 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43bf5a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43bf60: 48 83 e9 20 sub $0x20,%rcx + 43bf64: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 + 43bf69: 66 0f 3a 0f 06 01 palignr $0x1,(%rsi),%xmm0 + 43bf6f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 43bf73: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43bf78: 66 0f 3a 0f 5e 10 01 palignr $0x1,0x10(%rsi),%xmm3 + 43bf7f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43bf84: 66 0f db d8 pand %xmm0,%xmm3 + 43bf88: 48 83 e9 20 sub $0x20,%rcx + 43bf8c: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43bf90: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43bf94: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 + 43bf99: 66 0f 3a 0f 5e 30 01 palignr $0x1,0x30(%rsi),%xmm3 + 43bfa0: 81 da ff ff 00 00 sbb $0xffff,%edx + 43bfa6: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 + 43bfab: 66 0f 3a 0f 46 20 01 palignr $0x1,0x20(%rsi),%xmm0 + 43bfb2: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 + 43bfb7: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43bfbb: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 + 43bfc0: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43bfc4: 74 be je 43bf84 <__memcmp_ssse3+0x254> + 43bfc6: 66 0f db d8 pand %xmm0,%xmm3 + 43bfca: 48 83 f9 00 cmp $0x0,%rcx + 43bfce: 7d 06 jge 43bfd6 <__memcmp_ssse3+0x2a6> + 43bfd0: ff c2 inc %edx + 43bfd2: 48 83 c1 20 add $0x20,%rcx + 43bfd6: 85 d2 test %edx,%edx + 43bfd8: 0f 85 12 0f 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43bfde: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43bfe2: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43bfe6: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43bfea: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43bfee: 81 ea ff ff 00 00 sub $0xffff,%edx + 43bff4: 0f 85 f6 0e 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43bffa: 48 8d 76 01 lea 0x1(%rsi),%rsi + 43bffe: 48 01 ce add %rcx,%rsi + 43c001: 48 01 cf add %rcx,%rdi + 43c004: e9 f7 0f 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c009: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43c010: 48 83 f9 50 cmp $0x50,%rcx + 43c014: 48 8d 49 d0 lea -0x30(%rcx),%rcx + 43c018: 89 d0 mov %edx,%eax + 43c01a: 73 54 jae 43c070 <__memcmp_ssse3+0x340> + 43c01c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 43c021: 66 0f 6f d1 movdqa %xmm1,%xmm2 + 43c025: 66 0f 3a 0f 0e 02 palignr $0x2,(%rsi),%xmm1 + 43c02b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 43c02f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c034: 66 0f 3a 0f da 02 palignr $0x2,%xmm2,%xmm3 + 43c03a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c03f: 66 0f db d9 pand %xmm1,%xmm3 + 43c043: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c047: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c04b: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c04f: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c055: 0f 85 95 0e 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c05b: 48 83 c6 02 add $0x2,%rsi + 43c05f: 48 01 ce add %rcx,%rsi + 43c062: 48 01 cf add %rcx,%rdi + 43c065: e9 96 0f 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c06a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43c070: 48 83 e9 20 sub $0x20,%rcx + 43c074: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 + 43c079: 66 0f 3a 0f 06 02 palignr $0x2,(%rsi),%xmm0 + 43c07f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 43c083: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c088: 66 0f 3a 0f 5e 10 02 palignr $0x2,0x10(%rsi),%xmm3 + 43c08f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c094: 66 0f db d8 pand %xmm0,%xmm3 + 43c098: 48 83 e9 20 sub $0x20,%rcx + 43c09c: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c0a0: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c0a4: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 + 43c0a9: 66 0f 3a 0f 5e 30 02 palignr $0x2,0x30(%rsi),%xmm3 + 43c0b0: 81 da ff ff 00 00 sbb $0xffff,%edx + 43c0b6: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 + 43c0bb: 66 0f 3a 0f 46 20 02 palignr $0x2,0x20(%rsi),%xmm0 + 43c0c2: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 + 43c0c7: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c0cb: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 + 43c0d0: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c0d4: 74 be je 43c094 <__memcmp_ssse3+0x364> + 43c0d6: 66 0f db d8 pand %xmm0,%xmm3 + 43c0da: 48 83 f9 00 cmp $0x0,%rcx + 43c0de: 7d 06 jge 43c0e6 <__memcmp_ssse3+0x3b6> + 43c0e0: ff c2 inc %edx + 43c0e2: 48 83 c1 20 add $0x20,%rcx + 43c0e6: 85 d2 test %edx,%edx + 43c0e8: 0f 85 02 0e 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c0ee: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c0f2: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c0f6: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c0fa: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c0fe: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c104: 0f 85 e6 0d 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c10a: 48 8d 76 02 lea 0x2(%rsi),%rsi + 43c10e: 48 01 ce add %rcx,%rsi + 43c111: 48 01 cf add %rcx,%rdi + 43c114: e9 e7 0e 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c119: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43c120: 48 83 f9 50 cmp $0x50,%rcx + 43c124: 48 8d 49 d0 lea -0x30(%rcx),%rcx + 43c128: 89 d0 mov %edx,%eax + 43c12a: 73 54 jae 43c180 <__memcmp_ssse3+0x450> + 43c12c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 43c131: 66 0f 6f d1 movdqa %xmm1,%xmm2 + 43c135: 66 0f 3a 0f 0e 03 palignr $0x3,(%rsi),%xmm1 + 43c13b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 43c13f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c144: 66 0f 3a 0f da 03 palignr $0x3,%xmm2,%xmm3 + 43c14a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c14f: 66 0f db d9 pand %xmm1,%xmm3 + 43c153: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c157: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c15b: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c15f: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c165: 0f 85 85 0d 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c16b: 48 83 c6 03 add $0x3,%rsi + 43c16f: 48 01 ce add %rcx,%rsi + 43c172: 48 01 cf add %rcx,%rdi + 43c175: e9 86 0e 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c17a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43c180: 48 83 e9 20 sub $0x20,%rcx + 43c184: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 + 43c189: 66 0f 3a 0f 06 03 palignr $0x3,(%rsi),%xmm0 + 43c18f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 43c193: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c198: 66 0f 3a 0f 5e 10 03 palignr $0x3,0x10(%rsi),%xmm3 + 43c19f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c1a4: 66 0f db d8 pand %xmm0,%xmm3 + 43c1a8: 48 83 e9 20 sub $0x20,%rcx + 43c1ac: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c1b0: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c1b4: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 + 43c1b9: 66 0f 3a 0f 5e 30 03 palignr $0x3,0x30(%rsi),%xmm3 + 43c1c0: 81 da ff ff 00 00 sbb $0xffff,%edx + 43c1c6: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 + 43c1cb: 66 0f 3a 0f 46 20 03 palignr $0x3,0x20(%rsi),%xmm0 + 43c1d2: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 + 43c1d7: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c1db: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 + 43c1e0: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c1e4: 74 be je 43c1a4 <__memcmp_ssse3+0x474> + 43c1e6: 66 0f db d8 pand %xmm0,%xmm3 + 43c1ea: 48 83 f9 00 cmp $0x0,%rcx + 43c1ee: 7d 06 jge 43c1f6 <__memcmp_ssse3+0x4c6> + 43c1f0: ff c2 inc %edx + 43c1f2: 48 83 c1 20 add $0x20,%rcx + 43c1f6: 85 d2 test %edx,%edx + 43c1f8: 0f 85 f2 0c 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c1fe: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c202: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c206: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c20a: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c20e: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c214: 0f 85 d6 0c 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c21a: 48 8d 76 03 lea 0x3(%rsi),%rsi + 43c21e: 48 01 ce add %rcx,%rsi + 43c221: 48 01 cf add %rcx,%rdi + 43c224: e9 d7 0d 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c229: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43c230: 48 83 f9 50 cmp $0x50,%rcx + 43c234: 48 8d 49 d0 lea -0x30(%rcx),%rcx + 43c238: 89 d0 mov %edx,%eax + 43c23a: 73 54 jae 43c290 <__memcmp_ssse3+0x560> + 43c23c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 43c241: 66 0f 6f d1 movdqa %xmm1,%xmm2 + 43c245: 66 0f 3a 0f 0e 04 palignr $0x4,(%rsi),%xmm1 + 43c24b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 43c24f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c254: 66 0f 3a 0f da 04 palignr $0x4,%xmm2,%xmm3 + 43c25a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c25f: 66 0f db d9 pand %xmm1,%xmm3 + 43c263: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c267: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c26b: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c26f: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c275: 0f 85 75 0c 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c27b: 48 83 c6 04 add $0x4,%rsi + 43c27f: 48 01 ce add %rcx,%rsi + 43c282: 48 01 cf add %rcx,%rdi + 43c285: e9 76 0d 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c28a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43c290: 48 83 e9 20 sub $0x20,%rcx + 43c294: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 + 43c299: 66 0f 3a 0f 06 04 palignr $0x4,(%rsi),%xmm0 + 43c29f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 43c2a3: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c2a8: 66 0f 3a 0f 5e 10 04 palignr $0x4,0x10(%rsi),%xmm3 + 43c2af: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c2b4: 66 0f db d8 pand %xmm0,%xmm3 + 43c2b8: 48 83 e9 20 sub $0x20,%rcx + 43c2bc: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c2c0: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c2c4: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 + 43c2c9: 66 0f 3a 0f 5e 30 04 palignr $0x4,0x30(%rsi),%xmm3 + 43c2d0: 81 da ff ff 00 00 sbb $0xffff,%edx + 43c2d6: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 + 43c2db: 66 0f 3a 0f 46 20 04 palignr $0x4,0x20(%rsi),%xmm0 + 43c2e2: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 + 43c2e7: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c2eb: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 + 43c2f0: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c2f4: 74 be je 43c2b4 <__memcmp_ssse3+0x584> + 43c2f6: 66 0f db d8 pand %xmm0,%xmm3 + 43c2fa: 48 83 f9 00 cmp $0x0,%rcx + 43c2fe: 7d 06 jge 43c306 <__memcmp_ssse3+0x5d6> + 43c300: ff c2 inc %edx + 43c302: 48 83 c1 20 add $0x20,%rcx + 43c306: 85 d2 test %edx,%edx + 43c308: 0f 85 e2 0b 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c30e: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c312: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c316: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c31a: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c31e: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c324: 0f 85 c6 0b 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c32a: 48 8d 76 04 lea 0x4(%rsi),%rsi + 43c32e: 48 01 ce add %rcx,%rsi + 43c331: 48 01 cf add %rcx,%rdi + 43c334: e9 c7 0c 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c339: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43c340: 48 83 f9 50 cmp $0x50,%rcx + 43c344: 48 8d 49 d0 lea -0x30(%rcx),%rcx + 43c348: 89 d0 mov %edx,%eax + 43c34a: 73 54 jae 43c3a0 <__memcmp_ssse3+0x670> + 43c34c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 43c351: 66 0f 6f d1 movdqa %xmm1,%xmm2 + 43c355: 66 0f 3a 0f 0e 05 palignr $0x5,(%rsi),%xmm1 + 43c35b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 43c35f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c364: 66 0f 3a 0f da 05 palignr $0x5,%xmm2,%xmm3 + 43c36a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c36f: 66 0f db d9 pand %xmm1,%xmm3 + 43c373: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c377: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c37b: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c37f: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c385: 0f 85 65 0b 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c38b: 48 83 c6 05 add $0x5,%rsi + 43c38f: 48 01 ce add %rcx,%rsi + 43c392: 48 01 cf add %rcx,%rdi + 43c395: e9 66 0c 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c39a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43c3a0: 48 83 e9 20 sub $0x20,%rcx + 43c3a4: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 + 43c3a9: 66 0f 3a 0f 06 05 palignr $0x5,(%rsi),%xmm0 + 43c3af: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 43c3b3: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c3b8: 66 0f 3a 0f 5e 10 05 palignr $0x5,0x10(%rsi),%xmm3 + 43c3bf: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c3c4: 66 0f db d8 pand %xmm0,%xmm3 + 43c3c8: 48 83 e9 20 sub $0x20,%rcx + 43c3cc: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c3d0: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c3d4: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 + 43c3d9: 66 0f 3a 0f 5e 30 05 palignr $0x5,0x30(%rsi),%xmm3 + 43c3e0: 81 da ff ff 00 00 sbb $0xffff,%edx + 43c3e6: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 + 43c3eb: 66 0f 3a 0f 46 20 05 palignr $0x5,0x20(%rsi),%xmm0 + 43c3f2: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 + 43c3f7: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c3fb: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 + 43c400: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c404: 74 be je 43c3c4 <__memcmp_ssse3+0x694> + 43c406: 66 0f db d8 pand %xmm0,%xmm3 + 43c40a: 48 83 f9 00 cmp $0x0,%rcx + 43c40e: 7d 06 jge 43c416 <__memcmp_ssse3+0x6e6> + 43c410: ff c2 inc %edx + 43c412: 48 83 c1 20 add $0x20,%rcx + 43c416: 85 d2 test %edx,%edx + 43c418: 0f 85 d2 0a 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c41e: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c422: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c426: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c42a: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c42e: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c434: 0f 85 b6 0a 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c43a: 48 8d 76 05 lea 0x5(%rsi),%rsi + 43c43e: 48 01 ce add %rcx,%rsi + 43c441: 48 01 cf add %rcx,%rdi + 43c444: e9 b7 0b 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c449: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43c450: 48 83 f9 50 cmp $0x50,%rcx + 43c454: 48 8d 49 d0 lea -0x30(%rcx),%rcx + 43c458: 89 d0 mov %edx,%eax + 43c45a: 73 54 jae 43c4b0 <__memcmp_ssse3+0x780> + 43c45c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 43c461: 66 0f 6f d1 movdqa %xmm1,%xmm2 + 43c465: 66 0f 3a 0f 0e 06 palignr $0x6,(%rsi),%xmm1 + 43c46b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 43c46f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c474: 66 0f 3a 0f da 06 palignr $0x6,%xmm2,%xmm3 + 43c47a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c47f: 66 0f db d9 pand %xmm1,%xmm3 + 43c483: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c487: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c48b: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c48f: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c495: 0f 85 55 0a 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c49b: 48 83 c6 06 add $0x6,%rsi + 43c49f: 48 01 ce add %rcx,%rsi + 43c4a2: 48 01 cf add %rcx,%rdi + 43c4a5: e9 56 0b 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c4aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43c4b0: 48 83 e9 20 sub $0x20,%rcx + 43c4b4: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 + 43c4b9: 66 0f 3a 0f 06 06 palignr $0x6,(%rsi),%xmm0 + 43c4bf: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 43c4c3: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c4c8: 66 0f 3a 0f 5e 10 06 palignr $0x6,0x10(%rsi),%xmm3 + 43c4cf: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c4d4: 66 0f db d8 pand %xmm0,%xmm3 + 43c4d8: 48 83 e9 20 sub $0x20,%rcx + 43c4dc: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c4e0: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c4e4: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 + 43c4e9: 66 0f 3a 0f 5e 30 06 palignr $0x6,0x30(%rsi),%xmm3 + 43c4f0: 81 da ff ff 00 00 sbb $0xffff,%edx + 43c4f6: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 + 43c4fb: 66 0f 3a 0f 46 20 06 palignr $0x6,0x20(%rsi),%xmm0 + 43c502: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 + 43c507: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c50b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 + 43c510: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c514: 74 be je 43c4d4 <__memcmp_ssse3+0x7a4> + 43c516: 66 0f db d8 pand %xmm0,%xmm3 + 43c51a: 48 83 f9 00 cmp $0x0,%rcx + 43c51e: 7d 06 jge 43c526 <__memcmp_ssse3+0x7f6> + 43c520: ff c2 inc %edx + 43c522: 48 83 c1 20 add $0x20,%rcx + 43c526: 85 d2 test %edx,%edx + 43c528: 0f 85 c2 09 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c52e: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c532: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c536: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c53a: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c53e: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c544: 0f 85 a6 09 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c54a: 48 8d 76 06 lea 0x6(%rsi),%rsi + 43c54e: 48 01 ce add %rcx,%rsi + 43c551: 48 01 cf add %rcx,%rdi + 43c554: e9 a7 0a 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c559: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43c560: 48 83 f9 50 cmp $0x50,%rcx + 43c564: 48 8d 49 d0 lea -0x30(%rcx),%rcx + 43c568: 89 d0 mov %edx,%eax + 43c56a: 73 54 jae 43c5c0 <__memcmp_ssse3+0x890> + 43c56c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 43c571: 66 0f 6f d1 movdqa %xmm1,%xmm2 + 43c575: 66 0f 3a 0f 0e 07 palignr $0x7,(%rsi),%xmm1 + 43c57b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 43c57f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c584: 66 0f 3a 0f da 07 palignr $0x7,%xmm2,%xmm3 + 43c58a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c58f: 66 0f db d9 pand %xmm1,%xmm3 + 43c593: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c597: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c59b: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c59f: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c5a5: 0f 85 45 09 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c5ab: 48 83 c6 07 add $0x7,%rsi + 43c5af: 48 01 ce add %rcx,%rsi + 43c5b2: 48 01 cf add %rcx,%rdi + 43c5b5: e9 46 0a 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c5ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43c5c0: 48 83 e9 20 sub $0x20,%rcx + 43c5c4: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 + 43c5c9: 66 0f 3a 0f 06 07 palignr $0x7,(%rsi),%xmm0 + 43c5cf: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 43c5d3: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c5d8: 66 0f 3a 0f 5e 10 07 palignr $0x7,0x10(%rsi),%xmm3 + 43c5df: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c5e4: 66 0f db d8 pand %xmm0,%xmm3 + 43c5e8: 48 83 e9 20 sub $0x20,%rcx + 43c5ec: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c5f0: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c5f4: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 + 43c5f9: 66 0f 3a 0f 5e 30 07 palignr $0x7,0x30(%rsi),%xmm3 + 43c600: 81 da ff ff 00 00 sbb $0xffff,%edx + 43c606: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 + 43c60b: 66 0f 3a 0f 46 20 07 palignr $0x7,0x20(%rsi),%xmm0 + 43c612: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 + 43c617: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c61b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 + 43c620: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c624: 74 be je 43c5e4 <__memcmp_ssse3+0x8b4> + 43c626: 66 0f db d8 pand %xmm0,%xmm3 + 43c62a: 48 83 f9 00 cmp $0x0,%rcx + 43c62e: 7d 06 jge 43c636 <__memcmp_ssse3+0x906> + 43c630: ff c2 inc %edx + 43c632: 48 83 c1 20 add $0x20,%rcx + 43c636: 85 d2 test %edx,%edx + 43c638: 0f 85 b2 08 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c63e: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c642: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c646: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c64a: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c64e: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c654: 0f 85 96 08 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c65a: 48 8d 76 07 lea 0x7(%rsi),%rsi + 43c65e: 48 01 ce add %rcx,%rsi + 43c661: 48 01 cf add %rcx,%rdi + 43c664: e9 97 09 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c669: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43c670: 48 83 f9 50 cmp $0x50,%rcx + 43c674: 48 8d 49 d0 lea -0x30(%rcx),%rcx + 43c678: 89 d0 mov %edx,%eax + 43c67a: 73 54 jae 43c6d0 <__memcmp_ssse3+0x9a0> + 43c67c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 43c681: 66 0f 6f d1 movdqa %xmm1,%xmm2 + 43c685: 66 0f 3a 0f 0e 08 palignr $0x8,(%rsi),%xmm1 + 43c68b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 43c68f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c694: 66 0f 3a 0f da 08 palignr $0x8,%xmm2,%xmm3 + 43c69a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c69f: 66 0f db d9 pand %xmm1,%xmm3 + 43c6a3: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c6a7: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c6ab: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c6af: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c6b5: 0f 85 35 08 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c6bb: 48 83 c6 08 add $0x8,%rsi + 43c6bf: 48 01 ce add %rcx,%rsi + 43c6c2: 48 01 cf add %rcx,%rdi + 43c6c5: e9 36 09 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c6ca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43c6d0: 48 83 e9 20 sub $0x20,%rcx + 43c6d4: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 + 43c6d9: 66 0f 3a 0f 06 08 palignr $0x8,(%rsi),%xmm0 + 43c6df: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 43c6e3: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c6e8: 66 0f 3a 0f 5e 10 08 palignr $0x8,0x10(%rsi),%xmm3 + 43c6ef: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c6f4: 66 0f db d8 pand %xmm0,%xmm3 + 43c6f8: 48 83 e9 20 sub $0x20,%rcx + 43c6fc: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c700: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c704: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 + 43c709: 66 0f 3a 0f 5e 30 08 palignr $0x8,0x30(%rsi),%xmm3 + 43c710: 81 da ff ff 00 00 sbb $0xffff,%edx + 43c716: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 + 43c71b: 66 0f 3a 0f 46 20 08 palignr $0x8,0x20(%rsi),%xmm0 + 43c722: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 + 43c727: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c72b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 + 43c730: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c734: 74 be je 43c6f4 <__memcmp_ssse3+0x9c4> + 43c736: 66 0f db d8 pand %xmm0,%xmm3 + 43c73a: 48 83 f9 00 cmp $0x0,%rcx + 43c73e: 7d 06 jge 43c746 <__memcmp_ssse3+0xa16> + 43c740: ff c2 inc %edx + 43c742: 48 83 c1 20 add $0x20,%rcx + 43c746: 85 d2 test %edx,%edx + 43c748: 0f 85 a2 07 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c74e: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c752: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c756: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c75a: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c75e: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c764: 0f 85 86 07 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c76a: 48 8d 76 08 lea 0x8(%rsi),%rsi + 43c76e: 48 01 ce add %rcx,%rsi + 43c771: 48 01 cf add %rcx,%rdi + 43c774: e9 87 08 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c779: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43c780: 48 83 f9 50 cmp $0x50,%rcx + 43c784: 48 8d 49 d0 lea -0x30(%rcx),%rcx + 43c788: 89 d0 mov %edx,%eax + 43c78a: 73 54 jae 43c7e0 <__memcmp_ssse3+0xab0> + 43c78c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 43c791: 66 0f 6f d1 movdqa %xmm1,%xmm2 + 43c795: 66 0f 3a 0f 0e 09 palignr $0x9,(%rsi),%xmm1 + 43c79b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 43c79f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c7a4: 66 0f 3a 0f da 09 palignr $0x9,%xmm2,%xmm3 + 43c7aa: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c7af: 66 0f db d9 pand %xmm1,%xmm3 + 43c7b3: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c7b7: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c7bb: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c7bf: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c7c5: 0f 85 25 07 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c7cb: 48 83 c6 09 add $0x9,%rsi + 43c7cf: 48 01 ce add %rcx,%rsi + 43c7d2: 48 01 cf add %rcx,%rdi + 43c7d5: e9 26 08 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c7da: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43c7e0: 48 83 e9 20 sub $0x20,%rcx + 43c7e4: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 + 43c7e9: 66 0f 3a 0f 06 09 palignr $0x9,(%rsi),%xmm0 + 43c7ef: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 43c7f3: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c7f8: 66 0f 3a 0f 5e 10 09 palignr $0x9,0x10(%rsi),%xmm3 + 43c7ff: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c804: 66 0f db d8 pand %xmm0,%xmm3 + 43c808: 48 83 e9 20 sub $0x20,%rcx + 43c80c: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c810: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c814: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 + 43c819: 66 0f 3a 0f 5e 30 09 palignr $0x9,0x30(%rsi),%xmm3 + 43c820: 81 da ff ff 00 00 sbb $0xffff,%edx + 43c826: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 + 43c82b: 66 0f 3a 0f 46 20 09 palignr $0x9,0x20(%rsi),%xmm0 + 43c832: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 + 43c837: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c83b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 + 43c840: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c844: 74 be je 43c804 <__memcmp_ssse3+0xad4> + 43c846: 66 0f db d8 pand %xmm0,%xmm3 + 43c84a: 48 83 f9 00 cmp $0x0,%rcx + 43c84e: 7d 06 jge 43c856 <__memcmp_ssse3+0xb26> + 43c850: ff c2 inc %edx + 43c852: 48 83 c1 20 add $0x20,%rcx + 43c856: 85 d2 test %edx,%edx + 43c858: 0f 85 92 06 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c85e: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c862: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c866: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c86a: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c86e: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c874: 0f 85 76 06 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c87a: 48 8d 76 09 lea 0x9(%rsi),%rsi + 43c87e: 48 01 ce add %rcx,%rsi + 43c881: 48 01 cf add %rcx,%rdi + 43c884: e9 77 07 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c889: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43c890: 48 83 f9 50 cmp $0x50,%rcx + 43c894: 48 8d 49 d0 lea -0x30(%rcx),%rcx + 43c898: 89 d0 mov %edx,%eax + 43c89a: 73 54 jae 43c8f0 <__memcmp_ssse3+0xbc0> + 43c89c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 43c8a1: 66 0f 6f d1 movdqa %xmm1,%xmm2 + 43c8a5: 66 0f 3a 0f 0e 0a palignr $0xa,(%rsi),%xmm1 + 43c8ab: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 43c8af: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c8b4: 66 0f 3a 0f da 0a palignr $0xa,%xmm2,%xmm3 + 43c8ba: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c8bf: 66 0f db d9 pand %xmm1,%xmm3 + 43c8c3: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c8c7: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c8cb: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c8cf: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c8d5: 0f 85 15 06 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c8db: 48 83 c6 0a add $0xa,%rsi + 43c8df: 48 01 ce add %rcx,%rsi + 43c8e2: 48 01 cf add %rcx,%rdi + 43c8e5: e9 16 07 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c8ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43c8f0: 48 83 e9 20 sub $0x20,%rcx + 43c8f4: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 + 43c8f9: 66 0f 3a 0f 06 0a palignr $0xa,(%rsi),%xmm0 + 43c8ff: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 43c903: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c908: 66 0f 3a 0f 5e 10 0a palignr $0xa,0x10(%rsi),%xmm3 + 43c90f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c914: 66 0f db d8 pand %xmm0,%xmm3 + 43c918: 48 83 e9 20 sub $0x20,%rcx + 43c91c: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c920: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c924: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 + 43c929: 66 0f 3a 0f 5e 30 0a palignr $0xa,0x30(%rsi),%xmm3 + 43c930: 81 da ff ff 00 00 sbb $0xffff,%edx + 43c936: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 + 43c93b: 66 0f 3a 0f 46 20 0a palignr $0xa,0x20(%rsi),%xmm0 + 43c942: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 + 43c947: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c94b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 + 43c950: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c954: 74 be je 43c914 <__memcmp_ssse3+0xbe4> + 43c956: 66 0f db d8 pand %xmm0,%xmm3 + 43c95a: 48 83 f9 00 cmp $0x0,%rcx + 43c95e: 7d 06 jge 43c966 <__memcmp_ssse3+0xc36> + 43c960: ff c2 inc %edx + 43c962: 48 83 c1 20 add $0x20,%rcx + 43c966: 85 d2 test %edx,%edx + 43c968: 0f 85 82 05 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c96e: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c972: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43c976: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c97a: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c97e: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c984: 0f 85 66 05 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c98a: 48 8d 76 0a lea 0xa(%rsi),%rsi + 43c98e: 48 01 ce add %rcx,%rsi + 43c991: 48 01 cf add %rcx,%rdi + 43c994: e9 67 06 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c999: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43c9a0: 48 83 f9 50 cmp $0x50,%rcx + 43c9a4: 48 8d 49 d0 lea -0x30(%rcx),%rcx + 43c9a8: 89 d0 mov %edx,%eax + 43c9aa: 73 54 jae 43ca00 <__memcmp_ssse3+0xcd0> + 43c9ac: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 43c9b1: 66 0f 6f d1 movdqa %xmm1,%xmm2 + 43c9b5: 66 0f 3a 0f 0e 0b palignr $0xb,(%rsi),%xmm1 + 43c9bb: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 43c9bf: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43c9c4: 66 0f 3a 0f da 0b palignr $0xb,%xmm2,%xmm3 + 43c9ca: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43c9cf: 66 0f db d9 pand %xmm1,%xmm3 + 43c9d3: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43c9d7: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43c9db: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43c9df: 81 ea ff ff 00 00 sub $0xffff,%edx + 43c9e5: 0f 85 05 05 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43c9eb: 48 83 c6 0b add $0xb,%rsi + 43c9ef: 48 01 ce add %rcx,%rsi + 43c9f2: 48 01 cf add %rcx,%rdi + 43c9f5: e9 06 06 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43c9fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43ca00: 48 83 e9 20 sub $0x20,%rcx + 43ca04: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 + 43ca09: 66 0f 3a 0f 06 0b palignr $0xb,(%rsi),%xmm0 + 43ca0f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 43ca13: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43ca18: 66 0f 3a 0f 5e 10 0b palignr $0xb,0x10(%rsi),%xmm3 + 43ca1f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43ca24: 66 0f db d8 pand %xmm0,%xmm3 + 43ca28: 48 83 e9 20 sub $0x20,%rcx + 43ca2c: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43ca30: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43ca34: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 + 43ca39: 66 0f 3a 0f 5e 30 0b palignr $0xb,0x30(%rsi),%xmm3 + 43ca40: 81 da ff ff 00 00 sbb $0xffff,%edx + 43ca46: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 + 43ca4b: 66 0f 3a 0f 46 20 0b palignr $0xb,0x20(%rsi),%xmm0 + 43ca52: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 + 43ca57: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43ca5b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 + 43ca60: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43ca64: 74 be je 43ca24 <__memcmp_ssse3+0xcf4> + 43ca66: 66 0f db d8 pand %xmm0,%xmm3 + 43ca6a: 48 83 f9 00 cmp $0x0,%rcx + 43ca6e: 7d 06 jge 43ca76 <__memcmp_ssse3+0xd46> + 43ca70: ff c2 inc %edx + 43ca72: 48 83 c1 20 add $0x20,%rcx + 43ca76: 85 d2 test %edx,%edx + 43ca78: 0f 85 72 04 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43ca7e: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43ca82: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43ca86: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43ca8a: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43ca8e: 81 ea ff ff 00 00 sub $0xffff,%edx + 43ca94: 0f 85 56 04 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43ca9a: 48 8d 76 0b lea 0xb(%rsi),%rsi + 43ca9e: 48 01 ce add %rcx,%rsi + 43caa1: 48 01 cf add %rcx,%rdi + 43caa4: e9 57 05 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43caa9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43cab0: 48 83 f9 50 cmp $0x50,%rcx + 43cab4: 48 8d 49 d0 lea -0x30(%rcx),%rcx + 43cab8: 89 d0 mov %edx,%eax + 43caba: 73 54 jae 43cb10 <__memcmp_ssse3+0xde0> + 43cabc: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 43cac1: 66 0f 6f d1 movdqa %xmm1,%xmm2 + 43cac5: 66 0f 3a 0f 0e 0c palignr $0xc,(%rsi),%xmm1 + 43cacb: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 43cacf: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43cad4: 66 0f 3a 0f da 0c palignr $0xc,%xmm2,%xmm3 + 43cada: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43cadf: 66 0f db d9 pand %xmm1,%xmm3 + 43cae3: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43cae7: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43caeb: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43caef: 81 ea ff ff 00 00 sub $0xffff,%edx + 43caf5: 0f 85 f5 03 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43cafb: 48 83 c6 0c add $0xc,%rsi + 43caff: 48 01 ce add %rcx,%rsi + 43cb02: 48 01 cf add %rcx,%rdi + 43cb05: e9 f6 04 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43cb0a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43cb10: 48 83 e9 20 sub $0x20,%rcx + 43cb14: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 + 43cb19: 66 0f 3a 0f 06 0c palignr $0xc,(%rsi),%xmm0 + 43cb1f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 43cb23: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43cb28: 66 0f 3a 0f 5e 10 0c palignr $0xc,0x10(%rsi),%xmm3 + 43cb2f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43cb34: 66 0f db d8 pand %xmm0,%xmm3 + 43cb38: 48 83 e9 20 sub $0x20,%rcx + 43cb3c: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43cb40: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43cb44: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 + 43cb49: 66 0f 3a 0f 5e 30 0c palignr $0xc,0x30(%rsi),%xmm3 + 43cb50: 81 da ff ff 00 00 sbb $0xffff,%edx + 43cb56: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 + 43cb5b: 66 0f 3a 0f 46 20 0c palignr $0xc,0x20(%rsi),%xmm0 + 43cb62: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 + 43cb67: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43cb6b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 + 43cb70: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43cb74: 74 be je 43cb34 <__memcmp_ssse3+0xe04> + 43cb76: 66 0f db d8 pand %xmm0,%xmm3 + 43cb7a: 48 83 f9 00 cmp $0x0,%rcx + 43cb7e: 7d 06 jge 43cb86 <__memcmp_ssse3+0xe56> + 43cb80: ff c2 inc %edx + 43cb82: 48 83 c1 20 add $0x20,%rcx + 43cb86: 85 d2 test %edx,%edx + 43cb88: 0f 85 62 03 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43cb8e: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43cb92: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43cb96: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43cb9a: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43cb9e: 81 ea ff ff 00 00 sub $0xffff,%edx + 43cba4: 0f 85 46 03 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43cbaa: 48 8d 76 0c lea 0xc(%rsi),%rsi + 43cbae: 48 01 ce add %rcx,%rsi + 43cbb1: 48 01 cf add %rcx,%rdi + 43cbb4: e9 47 04 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43cbb9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43cbc0: 48 83 f9 50 cmp $0x50,%rcx + 43cbc4: 48 8d 49 d0 lea -0x30(%rcx),%rcx + 43cbc8: 89 d0 mov %edx,%eax + 43cbca: 73 54 jae 43cc20 <__memcmp_ssse3+0xef0> + 43cbcc: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 43cbd1: 66 0f 6f d1 movdqa %xmm1,%xmm2 + 43cbd5: 66 0f 3a 0f 0e 0d palignr $0xd,(%rsi),%xmm1 + 43cbdb: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 43cbdf: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43cbe4: 66 0f 3a 0f da 0d palignr $0xd,%xmm2,%xmm3 + 43cbea: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43cbef: 66 0f db d9 pand %xmm1,%xmm3 + 43cbf3: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43cbf7: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43cbfb: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43cbff: 81 ea ff ff 00 00 sub $0xffff,%edx + 43cc05: 0f 85 e5 02 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43cc0b: 48 83 c6 0d add $0xd,%rsi + 43cc0f: 48 01 ce add %rcx,%rsi + 43cc12: 48 01 cf add %rcx,%rdi + 43cc15: e9 e6 03 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43cc1a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43cc20: 48 83 e9 20 sub $0x20,%rcx + 43cc24: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 + 43cc29: 66 0f 3a 0f 06 0d palignr $0xd,(%rsi),%xmm0 + 43cc2f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 43cc33: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43cc38: 66 0f 3a 0f 5e 10 0d palignr $0xd,0x10(%rsi),%xmm3 + 43cc3f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43cc44: 66 0f db d8 pand %xmm0,%xmm3 + 43cc48: 48 83 e9 20 sub $0x20,%rcx + 43cc4c: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43cc50: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43cc54: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 + 43cc59: 66 0f 3a 0f 5e 30 0d palignr $0xd,0x30(%rsi),%xmm3 + 43cc60: 81 da ff ff 00 00 sbb $0xffff,%edx + 43cc66: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 + 43cc6b: 66 0f 3a 0f 46 20 0d palignr $0xd,0x20(%rsi),%xmm0 + 43cc72: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 + 43cc77: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43cc7b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 + 43cc80: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43cc84: 74 be je 43cc44 <__memcmp_ssse3+0xf14> + 43cc86: 66 0f db d8 pand %xmm0,%xmm3 + 43cc8a: 48 83 f9 00 cmp $0x0,%rcx + 43cc8e: 7d 06 jge 43cc96 <__memcmp_ssse3+0xf66> + 43cc90: ff c2 inc %edx + 43cc92: 48 83 c1 20 add $0x20,%rcx + 43cc96: 85 d2 test %edx,%edx + 43cc98: 0f 85 52 02 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43cc9e: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43cca2: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43cca6: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43ccaa: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43ccae: 81 ea ff ff 00 00 sub $0xffff,%edx + 43ccb4: 0f 85 36 02 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43ccba: 48 8d 76 0d lea 0xd(%rsi),%rsi + 43ccbe: 48 01 ce add %rcx,%rsi + 43ccc1: 48 01 cf add %rcx,%rdi + 43ccc4: e9 37 03 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43ccc9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43ccd0: 48 83 f9 50 cmp $0x50,%rcx + 43ccd4: 48 8d 49 d0 lea -0x30(%rcx),%rcx + 43ccd8: 89 d0 mov %edx,%eax + 43ccda: 73 54 jae 43cd30 <__memcmp_ssse3+0x1000> + 43ccdc: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 43cce1: 66 0f 6f d1 movdqa %xmm1,%xmm2 + 43cce5: 66 0f 3a 0f 0e 0e palignr $0xe,(%rsi),%xmm1 + 43cceb: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 43ccef: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43ccf4: 66 0f 3a 0f da 0e palignr $0xe,%xmm2,%xmm3 + 43ccfa: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43ccff: 66 0f db d9 pand %xmm1,%xmm3 + 43cd03: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43cd07: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43cd0b: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43cd0f: 81 ea ff ff 00 00 sub $0xffff,%edx + 43cd15: 0f 85 d5 01 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43cd1b: 48 83 c6 0e add $0xe,%rsi + 43cd1f: 48 01 ce add %rcx,%rsi + 43cd22: 48 01 cf add %rcx,%rdi + 43cd25: e9 d6 02 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43cd2a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43cd30: 48 83 e9 20 sub $0x20,%rcx + 43cd34: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 + 43cd39: 66 0f 3a 0f 06 0e palignr $0xe,(%rsi),%xmm0 + 43cd3f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 43cd43: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43cd48: 66 0f 3a 0f 5e 10 0e palignr $0xe,0x10(%rsi),%xmm3 + 43cd4f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43cd54: 66 0f db d8 pand %xmm0,%xmm3 + 43cd58: 48 83 e9 20 sub $0x20,%rcx + 43cd5c: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43cd60: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43cd64: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 + 43cd69: 66 0f 3a 0f 5e 30 0e palignr $0xe,0x30(%rsi),%xmm3 + 43cd70: 81 da ff ff 00 00 sbb $0xffff,%edx + 43cd76: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 + 43cd7b: 66 0f 3a 0f 46 20 0e palignr $0xe,0x20(%rsi),%xmm0 + 43cd82: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 + 43cd87: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43cd8b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 + 43cd90: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43cd94: 74 be je 43cd54 <__memcmp_ssse3+0x1024> + 43cd96: 66 0f db d8 pand %xmm0,%xmm3 + 43cd9a: 48 83 f9 00 cmp $0x0,%rcx + 43cd9e: 7d 06 jge 43cda6 <__memcmp_ssse3+0x1076> + 43cda0: ff c2 inc %edx + 43cda2: 48 83 c1 20 add $0x20,%rcx + 43cda6: 85 d2 test %edx,%edx + 43cda8: 0f 85 42 01 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43cdae: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43cdb2: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43cdb6: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43cdba: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43cdbe: 81 ea ff ff 00 00 sub $0xffff,%edx + 43cdc4: 0f 85 26 01 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43cdca: 48 8d 76 0e lea 0xe(%rsi),%rsi + 43cdce: 48 01 ce add %rcx,%rsi + 43cdd1: 48 01 cf add %rcx,%rdi + 43cdd4: e9 27 02 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43cdd9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43cde0: 48 83 f9 50 cmp $0x50,%rcx + 43cde4: 48 8d 49 d0 lea -0x30(%rcx),%rcx + 43cde8: 89 d0 mov %edx,%eax + 43cdea: 73 54 jae 43ce40 <__memcmp_ssse3+0x1110> + 43cdec: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 + 43cdf1: 66 0f 6f d1 movdqa %xmm1,%xmm2 + 43cdf5: 66 0f 3a 0f 0e 0f palignr $0xf,(%rsi),%xmm1 + 43cdfb: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 + 43cdff: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43ce04: 66 0f 3a 0f da 0f palignr $0xf,%xmm2,%xmm3 + 43ce0a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43ce0f: 66 0f db d9 pand %xmm1,%xmm3 + 43ce13: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43ce17: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43ce1b: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43ce1f: 81 ea ff ff 00 00 sub $0xffff,%edx + 43ce25: 0f 85 c5 00 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43ce2b: 48 83 c6 0f add $0xf,%rsi + 43ce2f: 48 01 ce add %rcx,%rsi + 43ce32: 48 01 cf add %rcx,%rdi + 43ce35: e9 c6 01 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43ce3a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43ce40: 48 83 e9 20 sub $0x20,%rcx + 43ce44: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 + 43ce49: 66 0f 3a 0f 06 0f palignr $0xf,(%rsi),%xmm0 + 43ce4f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 + 43ce53: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 + 43ce58: 66 0f 3a 0f 5e 10 0f palignr $0xf,0x10(%rsi),%xmm3 + 43ce5f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 + 43ce64: 66 0f db d8 pand %xmm0,%xmm3 + 43ce68: 48 83 e9 20 sub $0x20,%rcx + 43ce6c: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43ce70: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43ce74: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 + 43ce79: 66 0f 3a 0f 5e 30 0f palignr $0xf,0x30(%rsi),%xmm3 + 43ce80: 81 da ff ff 00 00 sbb $0xffff,%edx + 43ce86: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 + 43ce8b: 66 0f 3a 0f 46 20 0f palignr $0xf,0x20(%rsi),%xmm0 + 43ce92: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 + 43ce97: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43ce9b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 + 43cea0: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43cea4: 74 be je 43ce64 <__memcmp_ssse3+0x1134> + 43cea6: 66 0f db d8 pand %xmm0,%xmm3 + 43ceaa: 48 83 f9 00 cmp $0x0,%rcx + 43ceae: 7d 06 jge 43ceb6 <__memcmp_ssse3+0x1186> + 43ceb0: ff c2 inc %edx + 43ceb2: 48 83 c1 20 add $0x20,%rcx + 43ceb6: 85 d2 test %edx,%edx + 43ceb8: 75 36 jne 43cef0 <__memcmp_ssse3+0x11c0> + 43ceba: 66 0f d7 d3 pmovmskb %xmm3,%edx + 43cebe: 66 0f 6f c8 movdqa %xmm0,%xmm1 + 43cec2: 48 8d 7f 20 lea 0x20(%rdi),%rdi + 43cec6: 48 8d 76 20 lea 0x20(%rsi),%rsi + 43ceca: 81 ea ff ff 00 00 sub $0xffff,%edx + 43ced0: 75 1e jne 43cef0 <__memcmp_ssse3+0x11c0> + 43ced2: 48 8d 76 0f lea 0xf(%rsi),%rsi + 43ced6: 48 01 ce add %rcx,%rsi + 43ced9: 48 01 cf add %rcx,%rdi + 43cedc: e9 1f 01 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> + 43cee1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43cee6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43ceed: 00 00 00 + 43cef0: 66 44 0f d7 c1 pmovmskb %xmm1,%r8d + 43cef5: 41 81 e8 ff ff 00 00 sub $0xffff,%r8d + 43cefc: 74 0b je 43cf09 <__memcmp_ssse3+0x11d9> + 43cefe: 48 8d 76 f0 lea -0x10(%rsi),%rsi + 43cf02: 48 8d 7f f0 lea -0x10(%rdi),%rdi + 43cf06: 44 89 c2 mov %r8d,%edx + 43cf09: 48 01 c6 add %rax,%rsi + 43cf0c: 84 d2 test %dl,%dl + 43cf0e: 0f 84 ac 00 00 00 je 43cfc0 <__memcmp_ssse3+0x1290> + 43cf14: f6 c2 01 test $0x1,%dl + 43cf17: 75 37 jne 43cf50 <__memcmp_ssse3+0x1220> + 43cf19: f6 c2 02 test $0x2,%dl + 43cf1c: 75 42 jne 43cf60 <__memcmp_ssse3+0x1230> + 43cf1e: f6 c2 04 test $0x4,%dl + 43cf21: 75 4d jne 43cf70 <__memcmp_ssse3+0x1240> + 43cf23: f6 c2 08 test $0x8,%dl + 43cf26: 75 58 jne 43cf80 <__memcmp_ssse3+0x1250> + 43cf28: f6 c2 10 test $0x10,%dl + 43cf2b: 75 63 jne 43cf90 <__memcmp_ssse3+0x1260> + 43cf2d: f6 c2 20 test $0x20,%dl + 43cf30: 75 6e jne 43cfa0 <__memcmp_ssse3+0x1270> + 43cf32: f6 c2 40 test $0x40,%dl + 43cf35: 75 79 jne 43cfb0 <__memcmp_ssse3+0x1280> + 43cf37: 0f b6 47 f7 movzbl -0x9(%rdi),%eax + 43cf3b: 0f b6 56 f7 movzbl -0x9(%rsi),%edx + 43cf3f: 29 d0 sub %edx,%eax + 43cf41: c3 retq + 43cf42: 0f 1f 40 00 nopl 0x0(%rax) + 43cf46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43cf4d: 00 00 00 + 43cf50: 0f b6 47 f0 movzbl -0x10(%rdi),%eax + 43cf54: 0f b6 56 f0 movzbl -0x10(%rsi),%edx + 43cf58: 29 d0 sub %edx,%eax + 43cf5a: c3 retq + 43cf5b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43cf60: 0f b6 47 f1 movzbl -0xf(%rdi),%eax + 43cf64: 0f b6 56 f1 movzbl -0xf(%rsi),%edx + 43cf68: 29 d0 sub %edx,%eax + 43cf6a: c3 retq + 43cf6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43cf70: 0f b6 47 f2 movzbl -0xe(%rdi),%eax + 43cf74: 0f b6 56 f2 movzbl -0xe(%rsi),%edx + 43cf78: 29 d0 sub %edx,%eax + 43cf7a: c3 retq + 43cf7b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43cf80: 0f b6 47 f3 movzbl -0xd(%rdi),%eax + 43cf84: 0f b6 56 f3 movzbl -0xd(%rsi),%edx + 43cf88: 29 d0 sub %edx,%eax + 43cf8a: c3 retq + 43cf8b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43cf90: 0f b6 47 f4 movzbl -0xc(%rdi),%eax + 43cf94: 0f b6 56 f4 movzbl -0xc(%rsi),%edx + 43cf98: 29 d0 sub %edx,%eax + 43cf9a: c3 retq + 43cf9b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43cfa0: 0f b6 47 f5 movzbl -0xb(%rdi),%eax + 43cfa4: 0f b6 56 f5 movzbl -0xb(%rsi),%edx + 43cfa8: 29 d0 sub %edx,%eax + 43cfaa: c3 retq + 43cfab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43cfb0: 0f b6 47 f6 movzbl -0xa(%rdi),%eax + 43cfb4: 0f b6 56 f6 movzbl -0xa(%rsi),%edx + 43cfb8: 29 d0 sub %edx,%eax + 43cfba: c3 retq + 43cfbb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43cfc0: 48 8d 7f 08 lea 0x8(%rdi),%rdi + 43cfc4: 48 8d 76 08 lea 0x8(%rsi),%rsi + 43cfc8: f6 c6 01 test $0x1,%dh + 43cfcb: 75 83 jne 43cf50 <__memcmp_ssse3+0x1220> + 43cfcd: f6 c6 02 test $0x2,%dh + 43cfd0: 75 8e jne 43cf60 <__memcmp_ssse3+0x1230> + 43cfd2: f6 c6 04 test $0x4,%dh + 43cfd5: 75 99 jne 43cf70 <__memcmp_ssse3+0x1240> + 43cfd7: f6 c6 08 test $0x8,%dh + 43cfda: 75 a4 jne 43cf80 <__memcmp_ssse3+0x1250> + 43cfdc: f6 c6 10 test $0x10,%dh + 43cfdf: 75 af jne 43cf90 <__memcmp_ssse3+0x1260> + 43cfe1: f6 c6 20 test $0x20,%dh + 43cfe4: 75 ba jne 43cfa0 <__memcmp_ssse3+0x1270> + 43cfe6: f6 c6 40 test $0x40,%dh + 43cfe9: 75 c5 jne 43cfb0 <__memcmp_ssse3+0x1280> + 43cfeb: 0f b6 47 f7 movzbl -0x9(%rdi),%eax + 43cfef: 0f b6 56 f7 movzbl -0x9(%rsi),%edx + 43cff3: 29 d0 sub %edx,%eax + 43cff5: c3 retq + 43cff6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43cffd: 00 00 00 + 43d000: 83 f9 08 cmp $0x8,%ecx + 43d003: 73 4b jae 43d050 <__memcmp_ssse3+0x1320> + 43d005: 83 f9 00 cmp $0x0,%ecx + 43d008: 0f 84 5c 02 00 00 je 43d26a <__memcmp_ssse3+0x153a> + 43d00e: 83 f9 01 cmp $0x1,%ecx + 43d011: 0f 84 f3 02 00 00 je 43d30a <__memcmp_ssse3+0x15da> + 43d017: 83 f9 02 cmp $0x2,%ecx + 43d01a: 0f 84 9a 03 00 00 je 43d3ba <__memcmp_ssse3+0x168a> + 43d020: 83 f9 03 cmp $0x3,%ecx + 43d023: 0f 84 29 04 00 00 je 43d452 <__memcmp_ssse3+0x1722> + 43d029: 83 f9 04 cmp $0x4,%ecx + 43d02c: 0f 84 2a 02 00 00 je 43d25c <__memcmp_ssse3+0x152c> + 43d032: 83 f9 05 cmp $0x5,%ecx + 43d035: 0f 84 c1 02 00 00 je 43d2fc <__memcmp_ssse3+0x15cc> + 43d03b: 83 f9 06 cmp $0x6,%ecx + 43d03e: 0f 84 68 03 00 00 je 43d3ac <__memcmp_ssse3+0x167c> + 43d044: e9 ff 03 00 00 jmpq 43d448 <__memcmp_ssse3+0x1718> + 43d049: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43d050: 83 f9 10 cmp $0x10,%ecx + 43d053: 73 4b jae 43d0a0 <__memcmp_ssse3+0x1370> + 43d055: 83 f9 08 cmp $0x8,%ecx + 43d058: 0f 84 f0 01 00 00 je 43d24e <__memcmp_ssse3+0x151e> + 43d05e: 83 f9 09 cmp $0x9,%ecx + 43d061: 0f 84 87 02 00 00 je 43d2ee <__memcmp_ssse3+0x15be> + 43d067: 83 f9 0a cmp $0xa,%ecx + 43d06a: 0f 84 2e 03 00 00 je 43d39e <__memcmp_ssse3+0x166e> + 43d070: 83 f9 0b cmp $0xb,%ecx + 43d073: 0f 84 c5 03 00 00 je 43d43e <__memcmp_ssse3+0x170e> + 43d079: 83 f9 0c cmp $0xc,%ecx + 43d07c: 0f 84 be 01 00 00 je 43d240 <__memcmp_ssse3+0x1510> + 43d082: 83 f9 0d cmp $0xd,%ecx + 43d085: 0f 84 55 02 00 00 je 43d2e0 <__memcmp_ssse3+0x15b0> + 43d08b: 83 f9 0e cmp $0xe,%ecx + 43d08e: 0f 84 fc 02 00 00 je 43d390 <__memcmp_ssse3+0x1660> + 43d094: e9 9b 03 00 00 jmpq 43d434 <__memcmp_ssse3+0x1704> + 43d099: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43d0a0: 83 f9 18 cmp $0x18,%ecx + 43d0a3: 73 4b jae 43d0f0 <__memcmp_ssse3+0x13c0> + 43d0a5: 83 f9 10 cmp $0x10,%ecx + 43d0a8: 0f 84 84 01 00 00 je 43d232 <__memcmp_ssse3+0x1502> + 43d0ae: 83 f9 11 cmp $0x11,%ecx + 43d0b1: 0f 84 1b 02 00 00 je 43d2d2 <__memcmp_ssse3+0x15a2> + 43d0b7: 83 f9 12 cmp $0x12,%ecx + 43d0ba: 0f 84 c2 02 00 00 je 43d382 <__memcmp_ssse3+0x1652> + 43d0c0: 83 f9 13 cmp $0x13,%ecx + 43d0c3: 0f 84 61 03 00 00 je 43d42a <__memcmp_ssse3+0x16fa> + 43d0c9: 83 f9 14 cmp $0x14,%ecx + 43d0cc: 0f 84 52 01 00 00 je 43d224 <__memcmp_ssse3+0x14f4> + 43d0d2: 83 f9 15 cmp $0x15,%ecx + 43d0d5: 0f 84 e9 01 00 00 je 43d2c4 <__memcmp_ssse3+0x1594> + 43d0db: 83 f9 16 cmp $0x16,%ecx + 43d0de: 0f 84 90 02 00 00 je 43d374 <__memcmp_ssse3+0x1644> + 43d0e4: e9 37 03 00 00 jmpq 43d420 <__memcmp_ssse3+0x16f0> + 43d0e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43d0f0: 83 f9 20 cmp $0x20,%ecx + 43d0f3: 73 4b jae 43d140 <__memcmp_ssse3+0x1410> + 43d0f5: 83 f9 18 cmp $0x18,%ecx + 43d0f8: 0f 84 18 01 00 00 je 43d216 <__memcmp_ssse3+0x14e6> + 43d0fe: 83 f9 19 cmp $0x19,%ecx + 43d101: 0f 84 af 01 00 00 je 43d2b6 <__memcmp_ssse3+0x1586> + 43d107: 83 f9 1a cmp $0x1a,%ecx + 43d10a: 0f 84 56 02 00 00 je 43d366 <__memcmp_ssse3+0x1636> + 43d110: 83 f9 1b cmp $0x1b,%ecx + 43d113: 0f 84 fd 02 00 00 je 43d416 <__memcmp_ssse3+0x16e6> + 43d119: 83 f9 1c cmp $0x1c,%ecx + 43d11c: 0f 84 e6 00 00 00 je 43d208 <__memcmp_ssse3+0x14d8> + 43d122: 83 f9 1d cmp $0x1d,%ecx + 43d125: 0f 84 7d 01 00 00 je 43d2a8 <__memcmp_ssse3+0x1578> + 43d12b: 83 f9 1e cmp $0x1e,%ecx + 43d12e: 0f 84 24 02 00 00 je 43d358 <__memcmp_ssse3+0x1628> + 43d134: e9 d3 02 00 00 jmpq 43d40c <__memcmp_ssse3+0x16dc> + 43d139: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43d140: 83 f9 28 cmp $0x28,%ecx + 43d143: 73 4b jae 43d190 <__memcmp_ssse3+0x1460> + 43d145: 83 f9 20 cmp $0x20,%ecx + 43d148: 0f 84 ac 00 00 00 je 43d1fa <__memcmp_ssse3+0x14ca> + 43d14e: 83 f9 21 cmp $0x21,%ecx + 43d151: 0f 84 43 01 00 00 je 43d29a <__memcmp_ssse3+0x156a> + 43d157: 83 f9 22 cmp $0x22,%ecx + 43d15a: 0f 84 ea 01 00 00 je 43d34a <__memcmp_ssse3+0x161a> + 43d160: 83 f9 23 cmp $0x23,%ecx + 43d163: 0f 84 99 02 00 00 je 43d402 <__memcmp_ssse3+0x16d2> + 43d169: 83 f9 24 cmp $0x24,%ecx + 43d16c: 74 7e je 43d1ec <__memcmp_ssse3+0x14bc> + 43d16e: 83 f9 25 cmp $0x25,%ecx + 43d171: 0f 84 15 01 00 00 je 43d28c <__memcmp_ssse3+0x155c> + 43d177: 83 f9 26 cmp $0x26,%ecx + 43d17a: 0f 84 bc 01 00 00 je 43d33c <__memcmp_ssse3+0x160c> + 43d180: e9 73 02 00 00 jmpq 43d3f8 <__memcmp_ssse3+0x16c8> + 43d185: 90 nop + 43d186: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43d18d: 00 00 00 + 43d190: 83 f9 28 cmp $0x28,%ecx + 43d193: 74 49 je 43d1de <__memcmp_ssse3+0x14ae> + 43d195: 83 f9 29 cmp $0x29,%ecx + 43d198: 0f 84 e0 00 00 00 je 43d27e <__memcmp_ssse3+0x154e> + 43d19e: 83 f9 2a cmp $0x2a,%ecx + 43d1a1: 0f 84 87 01 00 00 je 43d32e <__memcmp_ssse3+0x15fe> + 43d1a7: 83 f9 2b cmp $0x2b,%ecx + 43d1aa: 0f 84 3e 02 00 00 je 43d3ee <__memcmp_ssse3+0x16be> + 43d1b0: 83 f9 2c cmp $0x2c,%ecx + 43d1b3: 74 1b je 43d1d0 <__memcmp_ssse3+0x14a0> + 43d1b5: 83 f9 2d cmp $0x2d,%ecx + 43d1b8: 0f 84 b2 00 00 00 je 43d270 <__memcmp_ssse3+0x1540> + 43d1be: 83 f9 2e cmp $0x2e,%ecx + 43d1c1: 0f 84 59 01 00 00 je 43d320 <__memcmp_ssse3+0x15f0> + 43d1c7: e9 14 02 00 00 jmpq 43d3e0 <__memcmp_ssse3+0x16b0> + 43d1cc: 0f 1f 40 00 nopl 0x0(%rax) + 43d1d0: 8b 47 d4 mov -0x2c(%rdi),%eax + 43d1d3: 8b 4e d4 mov -0x2c(%rsi),%ecx + 43d1d6: 39 c8 cmp %ecx,%eax + 43d1d8: 0f 85 92 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d1de: 8b 47 d8 mov -0x28(%rdi),%eax + 43d1e1: 8b 4e d8 mov -0x28(%rsi),%ecx + 43d1e4: 39 c8 cmp %ecx,%eax + 43d1e6: 0f 85 84 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d1ec: 8b 47 dc mov -0x24(%rdi),%eax + 43d1ef: 8b 4e dc mov -0x24(%rsi),%ecx + 43d1f2: 39 c8 cmp %ecx,%eax + 43d1f4: 0f 85 76 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d1fa: 8b 47 e0 mov -0x20(%rdi),%eax + 43d1fd: 8b 4e e0 mov -0x20(%rsi),%ecx + 43d200: 39 c8 cmp %ecx,%eax + 43d202: 0f 85 68 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d208: 8b 47 e4 mov -0x1c(%rdi),%eax + 43d20b: 8b 4e e4 mov -0x1c(%rsi),%ecx + 43d20e: 39 c8 cmp %ecx,%eax + 43d210: 0f 85 5a 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d216: 8b 47 e8 mov -0x18(%rdi),%eax + 43d219: 8b 4e e8 mov -0x18(%rsi),%ecx + 43d21c: 39 c8 cmp %ecx,%eax + 43d21e: 0f 85 4c 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d224: 8b 47 ec mov -0x14(%rdi),%eax + 43d227: 8b 4e ec mov -0x14(%rsi),%ecx + 43d22a: 39 c8 cmp %ecx,%eax + 43d22c: 0f 85 3e 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d232: 8b 47 f0 mov -0x10(%rdi),%eax + 43d235: 8b 4e f0 mov -0x10(%rsi),%ecx + 43d238: 39 c8 cmp %ecx,%eax + 43d23a: 0f 85 30 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d240: 8b 47 f4 mov -0xc(%rdi),%eax + 43d243: 8b 4e f4 mov -0xc(%rsi),%ecx + 43d246: 39 c8 cmp %ecx,%eax + 43d248: 0f 85 22 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d24e: 8b 47 f8 mov -0x8(%rdi),%eax + 43d251: 8b 4e f8 mov -0x8(%rsi),%ecx + 43d254: 39 c8 cmp %ecx,%eax + 43d256: 0f 85 14 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d25c: 8b 47 fc mov -0x4(%rdi),%eax + 43d25f: 8b 4e fc mov -0x4(%rsi),%ecx + 43d262: 39 c8 cmp %ecx,%eax + 43d264: 0f 85 06 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d26a: 31 c0 xor %eax,%eax + 43d26c: c3 retq + 43d26d: 0f 1f 00 nopl (%rax) + 43d270: 8b 47 d3 mov -0x2d(%rdi),%eax + 43d273: 8b 4e d3 mov -0x2d(%rsi),%ecx + 43d276: 39 c8 cmp %ecx,%eax + 43d278: 0f 85 f2 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d27e: 8b 47 d7 mov -0x29(%rdi),%eax + 43d281: 8b 4e d7 mov -0x29(%rsi),%ecx + 43d284: 39 c8 cmp %ecx,%eax + 43d286: 0f 85 e4 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d28c: 8b 47 db mov -0x25(%rdi),%eax + 43d28f: 8b 4e db mov -0x25(%rsi),%ecx + 43d292: 39 c8 cmp %ecx,%eax + 43d294: 0f 85 d6 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d29a: 8b 47 df mov -0x21(%rdi),%eax + 43d29d: 8b 4e df mov -0x21(%rsi),%ecx + 43d2a0: 39 c8 cmp %ecx,%eax + 43d2a2: 0f 85 c8 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d2a8: 8b 47 e3 mov -0x1d(%rdi),%eax + 43d2ab: 8b 4e e3 mov -0x1d(%rsi),%ecx + 43d2ae: 39 c8 cmp %ecx,%eax + 43d2b0: 0f 85 ba 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d2b6: 8b 47 e7 mov -0x19(%rdi),%eax + 43d2b9: 8b 4e e7 mov -0x19(%rsi),%ecx + 43d2bc: 39 c8 cmp %ecx,%eax + 43d2be: 0f 85 ac 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d2c4: 8b 47 eb mov -0x15(%rdi),%eax + 43d2c7: 8b 4e eb mov -0x15(%rsi),%ecx + 43d2ca: 39 c8 cmp %ecx,%eax + 43d2cc: 0f 85 9e 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d2d2: 8b 47 ef mov -0x11(%rdi),%eax + 43d2d5: 8b 4e ef mov -0x11(%rsi),%ecx + 43d2d8: 39 c8 cmp %ecx,%eax + 43d2da: 0f 85 90 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d2e0: 8b 47 f3 mov -0xd(%rdi),%eax + 43d2e3: 8b 4e f3 mov -0xd(%rsi),%ecx + 43d2e6: 39 c8 cmp %ecx,%eax + 43d2e8: 0f 85 82 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d2ee: 8b 47 f7 mov -0x9(%rdi),%eax + 43d2f1: 8b 4e f7 mov -0x9(%rsi),%ecx + 43d2f4: 39 c8 cmp %ecx,%eax + 43d2f6: 0f 85 74 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d2fc: 8b 47 fb mov -0x5(%rdi),%eax + 43d2ff: 8b 4e fb mov -0x5(%rsi),%ecx + 43d302: 39 c8 cmp %ecx,%eax + 43d304: 0f 85 66 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d30a: 0f b6 47 ff movzbl -0x1(%rdi),%eax + 43d30e: 3a 46 ff cmp -0x1(%rsi),%al + 43d311: 0f 85 6e 01 00 00 jne 43d485 <__memcmp_ssse3+0x1755> + 43d317: 31 c0 xor %eax,%eax + 43d319: c3 retq + 43d31a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43d320: 8b 47 d2 mov -0x2e(%rdi),%eax + 43d323: 8b 4e d2 mov -0x2e(%rsi),%ecx + 43d326: 39 c8 cmp %ecx,%eax + 43d328: 0f 85 42 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d32e: 8b 47 d6 mov -0x2a(%rdi),%eax + 43d331: 8b 4e d6 mov -0x2a(%rsi),%ecx + 43d334: 39 c8 cmp %ecx,%eax + 43d336: 0f 85 34 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d33c: 8b 47 da mov -0x26(%rdi),%eax + 43d33f: 8b 4e da mov -0x26(%rsi),%ecx + 43d342: 39 c8 cmp %ecx,%eax + 43d344: 0f 85 26 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d34a: 8b 47 de mov -0x22(%rdi),%eax + 43d34d: 8b 4e de mov -0x22(%rsi),%ecx + 43d350: 39 c8 cmp %ecx,%eax + 43d352: 0f 85 18 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d358: 8b 47 e2 mov -0x1e(%rdi),%eax + 43d35b: 8b 4e e2 mov -0x1e(%rsi),%ecx + 43d35e: 39 c8 cmp %ecx,%eax + 43d360: 0f 85 0a 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d366: 8b 47 e6 mov -0x1a(%rdi),%eax + 43d369: 8b 4e e6 mov -0x1a(%rsi),%ecx + 43d36c: 39 c8 cmp %ecx,%eax + 43d36e: 0f 85 fc 00 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d374: 8b 47 ea mov -0x16(%rdi),%eax + 43d377: 8b 4e ea mov -0x16(%rsi),%ecx + 43d37a: 39 c8 cmp %ecx,%eax + 43d37c: 0f 85 ee 00 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d382: 8b 47 ee mov -0x12(%rdi),%eax + 43d385: 8b 4e ee mov -0x12(%rsi),%ecx + 43d388: 39 c8 cmp %ecx,%eax + 43d38a: 0f 85 e0 00 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d390: 8b 47 f2 mov -0xe(%rdi),%eax + 43d393: 8b 4e f2 mov -0xe(%rsi),%ecx + 43d396: 39 c8 cmp %ecx,%eax + 43d398: 0f 85 d2 00 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d39e: 8b 47 f6 mov -0xa(%rdi),%eax + 43d3a1: 8b 4e f6 mov -0xa(%rsi),%ecx + 43d3a4: 39 c8 cmp %ecx,%eax + 43d3a6: 0f 85 c4 00 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d3ac: 8b 47 fa mov -0x6(%rdi),%eax + 43d3af: 8b 4e fa mov -0x6(%rsi),%ecx + 43d3b2: 39 c8 cmp %ecx,%eax + 43d3b4: 0f 85 b6 00 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d3ba: 0f b7 47 fe movzwl -0x2(%rdi),%eax + 43d3be: 0f b7 4e fe movzwl -0x2(%rsi),%ecx + 43d3c2: 38 c8 cmp %cl,%al + 43d3c4: 0f 85 bb 00 00 00 jne 43d485 <__memcmp_ssse3+0x1755> + 43d3ca: 39 c8 cmp %ecx,%eax + 43d3cc: 0f 85 b3 00 00 00 jne 43d485 <__memcmp_ssse3+0x1755> + 43d3d2: 31 c0 xor %eax,%eax + 43d3d4: c3 retq + 43d3d5: 90 nop + 43d3d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43d3dd: 00 00 00 + 43d3e0: 8b 47 d1 mov -0x2f(%rdi),%eax + 43d3e3: 8b 4e d1 mov -0x2f(%rsi),%ecx + 43d3e6: 39 c8 cmp %ecx,%eax + 43d3e8: 0f 85 82 00 00 00 jne 43d470 <__memcmp_ssse3+0x1740> + 43d3ee: 8b 47 d5 mov -0x2b(%rdi),%eax + 43d3f1: 8b 4e d5 mov -0x2b(%rsi),%ecx + 43d3f4: 39 c8 cmp %ecx,%eax + 43d3f6: 75 78 jne 43d470 <__memcmp_ssse3+0x1740> + 43d3f8: 8b 47 d9 mov -0x27(%rdi),%eax + 43d3fb: 8b 4e d9 mov -0x27(%rsi),%ecx + 43d3fe: 39 c8 cmp %ecx,%eax + 43d400: 75 6e jne 43d470 <__memcmp_ssse3+0x1740> + 43d402: 8b 47 dd mov -0x23(%rdi),%eax + 43d405: 8b 4e dd mov -0x23(%rsi),%ecx + 43d408: 39 c8 cmp %ecx,%eax + 43d40a: 75 64 jne 43d470 <__memcmp_ssse3+0x1740> + 43d40c: 8b 47 e1 mov -0x1f(%rdi),%eax + 43d40f: 8b 4e e1 mov -0x1f(%rsi),%ecx + 43d412: 39 c8 cmp %ecx,%eax + 43d414: 75 5a jne 43d470 <__memcmp_ssse3+0x1740> + 43d416: 8b 47 e5 mov -0x1b(%rdi),%eax + 43d419: 8b 4e e5 mov -0x1b(%rsi),%ecx + 43d41c: 39 c8 cmp %ecx,%eax + 43d41e: 75 50 jne 43d470 <__memcmp_ssse3+0x1740> + 43d420: 8b 47 e9 mov -0x17(%rdi),%eax + 43d423: 8b 4e e9 mov -0x17(%rsi),%ecx + 43d426: 39 c8 cmp %ecx,%eax + 43d428: 75 46 jne 43d470 <__memcmp_ssse3+0x1740> + 43d42a: 8b 47 ed mov -0x13(%rdi),%eax + 43d42d: 8b 4e ed mov -0x13(%rsi),%ecx + 43d430: 39 c8 cmp %ecx,%eax + 43d432: 75 3c jne 43d470 <__memcmp_ssse3+0x1740> + 43d434: 8b 47 f1 mov -0xf(%rdi),%eax + 43d437: 8b 4e f1 mov -0xf(%rsi),%ecx + 43d43a: 39 c8 cmp %ecx,%eax + 43d43c: 75 32 jne 43d470 <__memcmp_ssse3+0x1740> + 43d43e: 8b 47 f5 mov -0xb(%rdi),%eax + 43d441: 8b 4e f5 mov -0xb(%rsi),%ecx + 43d444: 39 c8 cmp %ecx,%eax + 43d446: 75 28 jne 43d470 <__memcmp_ssse3+0x1740> + 43d448: 8b 47 f9 mov -0x7(%rdi),%eax + 43d44b: 8b 4e f9 mov -0x7(%rsi),%ecx + 43d44e: 39 c8 cmp %ecx,%eax + 43d450: 75 1e jne 43d470 <__memcmp_ssse3+0x1740> + 43d452: 0f b7 47 fd movzwl -0x3(%rdi),%eax + 43d456: 0f b7 4e fd movzwl -0x3(%rsi),%ecx + 43d45a: 38 c8 cmp %cl,%al + 43d45c: 75 27 jne 43d485 <__memcmp_ssse3+0x1755> + 43d45e: 39 c8 cmp %ecx,%eax + 43d460: 75 23 jne 43d485 <__memcmp_ssse3+0x1755> + 43d462: 0f b6 47 ff movzbl -0x1(%rdi),%eax + 43d466: 3a 46 ff cmp -0x1(%rsi),%al + 43d469: 75 1a jne 43d485 <__memcmp_ssse3+0x1755> + 43d46b: 31 c0 xor %eax,%eax + 43d46d: c3 retq + 43d46e: 66 90 xchg %ax,%ax + 43d470: 38 c8 cmp %cl,%al + 43d472: 75 11 jne 43d485 <__memcmp_ssse3+0x1755> + 43d474: 66 39 c8 cmp %cx,%ax + 43d477: 75 0c jne 43d485 <__memcmp_ssse3+0x1755> + 43d479: c1 e8 10 shr $0x10,%eax + 43d47c: c1 e9 10 shr $0x10,%ecx + 43d47f: 38 c8 cmp %cl,%al + 43d481: 75 02 jne 43d485 <__memcmp_ssse3+0x1755> + 43d483: 39 c8 cmp %ecx,%eax + 43d485: 19 c0 sbb %eax,%eax + 43d487: 83 d8 ff sbb $0xffffffff,%eax + 43d48a: c3 retq + 43d48b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43d490: 31 c0 xor %eax,%eax + 43d492: c3 retq + 43d493: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43d49a: 00 00 00 + 43d49d: 0f 1f 00 nopl (%rax) + +000000000043d4a0 <__strstr_sse2_unaligned>: + 43d4a0: 0f b6 06 movzbl (%rsi),%eax + 43d4a3: 84 c0 test %al,%al + 43d4a5: 0f 84 9c 01 00 00 je 43d647 <__strstr_sse2_unaligned+0x1a7> + 43d4ab: 0f b6 56 01 movzbl 0x1(%rsi),%edx + 43d4af: 84 d2 test %dl,%dl + 43d4b1: 0f 84 b9 00 00 00 je 43d570 <__strstr_sse2_unaligned+0xd0> + 43d4b7: 66 0f 6e c8 movd %eax,%xmm1 + 43d4bb: 66 0f 6e d2 movd %edx,%xmm2 + 43d4bf: 48 89 f8 mov %rdi,%rax + 43d4c2: 25 ff 0f 00 00 and $0xfff,%eax + 43d4c7: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 + 43d4cb: 48 3d bf 0f 00 00 cmp $0xfbf,%rax + 43d4d1: 66 0f 60 d2 punpcklbw %xmm2,%xmm2 + 43d4d5: 66 0f 61 c9 punpcklwd %xmm1,%xmm1 + 43d4d9: 66 0f 61 d2 punpcklwd %xmm2,%xmm2 + 43d4dd: 66 0f 70 c9 00 pshufd $0x0,%xmm1,%xmm1 + 43d4e2: 66 0f 70 d2 00 pshufd $0x0,%xmm2,%xmm2 + 43d4e7: 0f 87 03 03 00 00 ja 43d7f0 <__strstr_sse2_unaligned+0x350> + 43d4ed: f3 0f 6f 1f movdqu (%rdi),%xmm3 + 43d4f1: 66 0f ef ed pxor %xmm5,%xmm5 + 43d4f5: f3 0f 6f 67 01 movdqu 0x1(%rdi),%xmm4 + 43d4fa: 66 0f 6f f3 movdqa %xmm3,%xmm6 + 43d4fe: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 43d502: 66 0f 74 e2 pcmpeqb %xmm2,%xmm4 + 43d506: f3 0f 6f 47 10 movdqu 0x10(%rdi),%xmm0 + 43d50b: 66 0f 74 f5 pcmpeqb %xmm5,%xmm6 + 43d50f: 66 0f da dc pminub %xmm4,%xmm3 + 43d513: 66 0f 6f e3 movdqa %xmm3,%xmm4 + 43d517: f3 0f 6f 5f 11 movdqu 0x11(%rdi),%xmm3 + 43d51c: 66 0f 74 e8 pcmpeqb %xmm0,%xmm5 + 43d520: 66 0f 74 da pcmpeqb %xmm2,%xmm3 + 43d524: 66 0f eb e6 por %xmm6,%xmm4 + 43d528: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 43d52c: 66 0f da c3 pminub %xmm3,%xmm0 + 43d530: 66 0f eb c5 por %xmm5,%xmm0 + 43d534: 66 44 0f d7 c4 pmovmskb %xmm4,%r8d + 43d539: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43d53d: 48 c1 e0 10 shl $0x10,%rax + 43d541: 49 09 c0 or %rax,%r8 + 43d544: 74 6a je 43d5b0 <__strstr_sse2_unaligned+0x110> + 43d546: 49 0f bc c0 bsf %r8,%rax + 43d54a: 48 01 f8 add %rdi,%rax + 43d54d: 80 38 00 cmpb $0x0,(%rax) + 43d550: 74 42 je 43d594 <__strstr_sse2_unaligned+0xf4> + 43d552: 0f b6 56 02 movzbl 0x2(%rsi),%edx + 43d556: 84 d2 test %dl,%dl + 43d558: 74 39 je 43d593 <__strstr_sse2_unaligned+0xf3> + 43d55a: 3a 50 02 cmp 0x2(%rax),%dl + 43d55d: 75 41 jne 43d5a0 <__strstr_sse2_unaligned+0x100> + 43d55f: 31 d2 xor %edx,%edx + 43d561: eb 27 jmp 43d58a <__strstr_sse2_unaligned+0xea> + 43d563: 0f 1f 00 nopl (%rax) + 43d566: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43d56d: 00 00 00 + 43d570: 0f b6 f0 movzbl %al,%esi + 43d573: e9 38 3b fe ff jmpq 4210b0 <__GI_strchr> + 43d578: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43d57f: 00 + 43d580: 48 83 c2 01 add $0x1,%rdx + 43d584: 3a 4c 10 02 cmp 0x2(%rax,%rdx,1),%cl + 43d588: 75 16 jne 43d5a0 <__strstr_sse2_unaligned+0x100> + 43d58a: 0f b6 4c 16 03 movzbl 0x3(%rsi,%rdx,1),%ecx + 43d58f: 84 c9 test %cl,%cl + 43d591: 75 ed jne 43d580 <__strstr_sse2_unaligned+0xe0> + 43d593: c3 retq + 43d594: 31 c0 xor %eax,%eax + 43d596: c3 retq + 43d597: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43d59e: 00 00 + 43d5a0: 49 8d 40 ff lea -0x1(%r8),%rax + 43d5a4: 49 21 c0 and %rax,%r8 + 43d5a7: 75 9d jne 43d546 <__strstr_sse2_unaligned+0xa6> + 43d5a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43d5b0: f3 0f 6f 5f 20 movdqu 0x20(%rdi),%xmm3 + 43d5b5: 66 0f ef ed pxor %xmm5,%xmm5 + 43d5b9: f3 0f 6f 67 21 movdqu 0x21(%rdi),%xmm4 + 43d5be: 66 0f 6f f3 movdqa %xmm3,%xmm6 + 43d5c2: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 + 43d5c6: 66 0f 74 e2 pcmpeqb %xmm2,%xmm4 + 43d5ca: f3 0f 6f 47 30 movdqu 0x30(%rdi),%xmm0 + 43d5cf: 66 0f 74 f5 pcmpeqb %xmm5,%xmm6 + 43d5d3: 66 0f da dc pminub %xmm4,%xmm3 + 43d5d7: 66 0f 6f e3 movdqa %xmm3,%xmm4 + 43d5db: f3 0f 6f 5f 31 movdqu 0x31(%rdi),%xmm3 + 43d5e0: 66 0f 74 e8 pcmpeqb %xmm0,%xmm5 + 43d5e4: 66 0f 74 da pcmpeqb %xmm2,%xmm3 + 43d5e8: 66 0f eb e6 por %xmm6,%xmm4 + 43d5ec: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 43d5f0: 66 0f da c3 pminub %xmm3,%xmm0 + 43d5f4: 66 0f eb c5 por %xmm5,%xmm0 + 43d5f8: 66 0f d7 c4 pmovmskb %xmm4,%eax + 43d5fc: 48 c1 e0 20 shl $0x20,%rax + 43d600: 66 44 0f d7 c0 pmovmskb %xmm0,%r8d + 43d605: 49 c1 e0 30 shl $0x30,%r8 + 43d609: 49 09 c0 or %rax,%r8 + 43d60c: 74 4b je 43d659 <__strstr_sse2_unaligned+0x1b9> + 43d60e: 49 0f bc c0 bsf %r8,%rax + 43d612: 48 01 f8 add %rdi,%rax + 43d615: 80 38 00 cmpb $0x0,(%rax) + 43d618: 74 2a je 43d644 <__strstr_sse2_unaligned+0x1a4> + 43d61a: 0f b6 56 02 movzbl 0x2(%rsi),%edx + 43d61e: 84 d2 test %dl,%dl + 43d620: 74 21 je 43d643 <__strstr_sse2_unaligned+0x1a3> + 43d622: 3a 50 02 cmp 0x2(%rax),%dl + 43d625: 75 29 jne 43d650 <__strstr_sse2_unaligned+0x1b0> + 43d627: 31 d2 xor %edx,%edx + 43d629: eb 0f jmp 43d63a <__strstr_sse2_unaligned+0x19a> + 43d62b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43d630: 48 83 c2 01 add $0x1,%rdx + 43d634: 3a 4c 10 02 cmp 0x2(%rax,%rdx,1),%cl + 43d638: 75 16 jne 43d650 <__strstr_sse2_unaligned+0x1b0> + 43d63a: 0f b6 4c 16 03 movzbl 0x3(%rsi,%rdx,1),%ecx + 43d63f: 84 c9 test %cl,%cl + 43d641: 75 ed jne 43d630 <__strstr_sse2_unaligned+0x190> + 43d643: c3 retq + 43d644: 31 c0 xor %eax,%eax + 43d646: c3 retq + 43d647: 48 89 f8 mov %rdi,%rax + 43d64a: c3 retq + 43d64b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43d650: 49 8d 40 ff lea -0x1(%r8),%rax + 43d654: 49 21 c0 and %rax,%r8 + 43d657: 75 b5 jne 43d60e <__strstr_sse2_unaligned+0x16e> + 43d659: 49 c7 c3 00 fe ff ff mov $0xfffffffffffffe00,%r11 + 43d660: 49 89 f9 mov %rdi,%r9 + 43d663: 66 0f ef ff pxor %xmm7,%xmm7 + 43d667: 48 83 e7 c0 and $0xffffffffffffffc0,%rdi + 43d66b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43d670: 66 0f 6f 5f 40 movdqa 0x40(%rdi),%xmm3 + 43d675: f3 0f 6f 77 3f movdqu 0x3f(%rdi),%xmm6 + 43d67a: 66 0f 6f c3 movdqa %xmm3,%xmm0 + 43d67e: 66 0f ef da pxor %xmm2,%xmm3 + 43d682: 66 0f ef f1 pxor %xmm1,%xmm6 + 43d686: 66 44 0f 6f 57 50 movdqa 0x50(%rdi),%xmm10 + 43d68c: 66 0f eb f3 por %xmm3,%xmm6 + 43d690: 66 41 0f da c2 pminub %xmm10,%xmm0 + 43d695: f3 0f 6f 5f 4f movdqu 0x4f(%rdi),%xmm3 + 43d69a: 66 44 0f ef d2 pxor %xmm2,%xmm10 + 43d69f: 66 0f ef d9 pxor %xmm1,%xmm3 + 43d6a3: 66 44 0f 6f 4f 60 movdqa 0x60(%rdi),%xmm9 + 43d6a9: 66 41 0f eb da por %xmm10,%xmm3 + 43d6ae: 66 41 0f da c1 pminub %xmm9,%xmm0 + 43d6b3: 66 44 0f ef ca pxor %xmm2,%xmm9 + 43d6b8: 66 44 0f 6f 47 70 movdqa 0x70(%rdi),%xmm8 + 43d6be: 48 83 c7 40 add $0x40,%rdi + 43d6c2: 66 0f da de pminub %xmm6,%xmm3 + 43d6c6: f3 0f 6f 67 1f movdqu 0x1f(%rdi),%xmm4 + 43d6cb: 66 41 0f da c0 pminub %xmm8,%xmm0 + 43d6d0: 66 44 0f ef c2 pxor %xmm2,%xmm8 + 43d6d5: 66 0f ef e1 pxor %xmm1,%xmm4 + 43d6d9: 66 41 0f eb e1 por %xmm9,%xmm4 + 43d6de: 66 0f da dc pminub %xmm4,%xmm3 + 43d6e2: f3 0f 6f 6f 2f movdqu 0x2f(%rdi),%xmm5 + 43d6e7: 66 0f ef e9 pxor %xmm1,%xmm5 + 43d6eb: 66 41 0f eb e8 por %xmm8,%xmm5 + 43d6f0: 66 0f da dd pminub %xmm5,%xmm3 + 43d6f4: 66 0f da c3 pminub %xmm3,%xmm0 + 43d6f8: 66 0f 74 c7 pcmpeqb %xmm7,%xmm0 + 43d6fc: 66 0f d7 c0 pmovmskb %xmm0,%eax + 43d700: 85 c0 test %eax,%eax + 43d702: 0f 84 68 ff ff ff je 43d670 <__strstr_sse2_unaligned+0x1d0> + 43d708: 66 0f da 37 pminub (%rdi),%xmm6 + 43d70c: 66 0f da 67 20 pminub 0x20(%rdi),%xmm4 + 43d711: 66 0f da 6f 30 pminub 0x30(%rdi),%xmm5 + 43d716: 66 0f 74 f7 pcmpeqb %xmm7,%xmm6 + 43d71a: 66 0f 74 ef pcmpeqb %xmm7,%xmm5 + 43d71e: 66 0f d7 d6 pmovmskb %xmm6,%edx + 43d722: 66 44 0f 6f 47 10 movdqa 0x10(%rdi),%xmm8 + 43d728: 66 0f 74 e7 pcmpeqb %xmm7,%xmm4 + 43d72c: f3 0f 6f 47 0f movdqu 0xf(%rdi),%xmm0 + 43d731: 66 44 0f d7 c5 pmovmskb %xmm5,%r8d + 43d736: 66 41 0f 6f d8 movdqa %xmm8,%xmm3 + 43d73b: 66 0f d7 cc pmovmskb %xmm4,%ecx + 43d73f: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 + 43d743: 66 0f 74 da pcmpeqb %xmm2,%xmm3 + 43d747: 48 c1 e1 20 shl $0x20,%rcx + 43d74b: 66 44 0f 74 c7 pcmpeqb %xmm7,%xmm8 + 43d750: 49 c1 e0 30 shl $0x30,%r8 + 43d754: 66 0f da d8 pminub %xmm0,%xmm3 + 43d758: 48 09 ca or %rcx,%rdx + 43d75b: 66 44 0f eb c3 por %xmm3,%xmm8 + 43d760: 49 09 d0 or %rdx,%r8 + 43d763: 66 41 0f d7 c0 pmovmskb %xmm8,%eax + 43d768: 48 c1 e0 10 shl $0x10,%rax + 43d76c: 49 09 c0 or %rax,%r8 + 43d76f: 0f 84 fb fe ff ff je 43d670 <__strstr_sse2_unaligned+0x1d0> + 43d775: 49 0f bc c8 bsf %r8,%rcx + 43d779: 48 01 f9 add %rdi,%rcx + 43d77c: 80 39 00 cmpb $0x0,(%rcx) + 43d77f: 0f 84 ab 01 00 00 je 43d930 <__strstr_sse2_unaligned+0x490> + 43d785: 31 c0 xor %eax,%eax + 43d787: 0f b6 56 02 movzbl 0x2(%rsi),%edx + 43d78b: 84 d2 test %dl,%dl + 43d78d: 74 24 je 43d7b3 <__strstr_sse2_unaligned+0x313> + 43d78f: 3a 51 01 cmp 0x1(%rcx),%dl + 43d792: 75 2c jne 43d7c0 <__strstr_sse2_unaligned+0x320> + 43d794: eb 14 jmp 43d7aa <__strstr_sse2_unaligned+0x30a> + 43d796: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43d79d: 00 00 00 + 43d7a0: 48 83 c0 01 add $0x1,%rax + 43d7a4: 3a 54 01 01 cmp 0x1(%rcx,%rax,1),%dl + 43d7a8: 75 16 jne 43d7c0 <__strstr_sse2_unaligned+0x320> + 43d7aa: 0f b6 54 06 03 movzbl 0x3(%rsi,%rax,1),%edx + 43d7af: 84 d2 test %dl,%dl + 43d7b1: 75 ed jne 43d7a0 <__strstr_sse2_unaligned+0x300> + 43d7b3: 48 8d 41 ff lea -0x1(%rcx),%rax + 43d7b7: c3 retq + 43d7b8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43d7bf: 00 + 43d7c0: 49 01 c3 add %rax,%r11 + 43d7c3: 48 89 f8 mov %rdi,%rax + 43d7c6: 4c 29 c8 sub %r9,%rax + 43d7c9: 4c 39 d8 cmp %r11,%rax + 43d7cc: 7c 12 jl 43d7e0 <__strstr_sse2_unaligned+0x340> + 43d7ce: 49 8d 40 ff lea -0x1(%r8),%rax + 43d7d2: 49 21 c0 and %rax,%r8 + 43d7d5: 75 9e jne 43d775 <__strstr_sse2_unaligned+0x2d5> + 43d7d7: e9 94 fe ff ff jmpq 43d670 <__strstr_sse2_unaligned+0x1d0> + 43d7dc: 0f 1f 40 00 nopl 0x0(%rax) + 43d7e0: 48 89 ff mov %rdi,%rdi + 43d7e3: e9 68 7d fe ff jmpq 425550 <__strstr_sse2> + 43d7e8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43d7ef: 00 + 43d7f0: 48 89 f8 mov %rdi,%rax + 43d7f3: 66 0f ef c0 pxor %xmm0,%xmm0 + 43d7f7: 48 83 e0 c0 and $0xffffffffffffffc0,%rax + 43d7fb: 66 0f 6f 18 movdqa (%rax),%xmm3 + 43d7ff: f3 0f 6f 60 ff movdqu -0x1(%rax),%xmm4 + 43d804: 66 44 0f 6f c3 movdqa %xmm3,%xmm8 + 43d809: 66 0f 6f 68 10 movdqa 0x10(%rax),%xmm5 + 43d80e: 66 0f 74 e1 pcmpeqb %xmm1,%xmm4 + 43d812: 66 44 0f 74 c0 pcmpeqb %xmm0,%xmm8 + 43d817: 66 0f 74 da pcmpeqb %xmm2,%xmm3 + 43d81b: 66 0f 6f fd movdqa %xmm5,%xmm7 + 43d81f: 66 0f da dc pminub %xmm4,%xmm3 + 43d823: f3 0f 6f 60 0f movdqu 0xf(%rax),%xmm4 + 43d828: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 + 43d82c: 66 44 0f eb c3 por %xmm3,%xmm8 + 43d831: 66 0f 6f dd movdqa %xmm5,%xmm3 + 43d835: 66 0f 6f 68 20 movdqa 0x20(%rax),%xmm5 + 43d83a: 66 0f 74 e1 pcmpeqb %xmm1,%xmm4 + 43d83e: 66 0f 74 da pcmpeqb %xmm2,%xmm3 + 43d842: 66 0f 6f f5 movdqa %xmm5,%xmm6 + 43d846: 66 41 0f d7 c8 pmovmskb %xmm8,%ecx + 43d84b: 66 0f da dc pminub %xmm4,%xmm3 + 43d84f: f3 0f 6f 60 1f movdqu 0x1f(%rax),%xmm4 + 43d854: 66 0f eb fb por %xmm3,%xmm7 + 43d858: 66 0f 6f dd movdqa %xmm5,%xmm3 + 43d85c: 66 0f 74 f0 pcmpeqb %xmm0,%xmm6 + 43d860: 66 0f 6f 68 30 movdqa 0x30(%rax),%xmm5 + 43d865: 66 0f 74 e1 pcmpeqb %xmm1,%xmm4 + 43d869: 66 44 0f d7 c7 pmovmskb %xmm7,%r8d + 43d86e: 66 0f 74 da pcmpeqb %xmm2,%xmm3 + 43d872: 66 0f 74 c5 pcmpeqb %xmm5,%xmm0 + 43d876: 66 0f da dc pminub %xmm4,%xmm3 + 43d87a: f3 0f 6f 60 2f movdqu 0x2f(%rax),%xmm4 + 43d87f: 66 0f eb f3 por %xmm3,%xmm6 + 43d883: 66 0f 6f dd movdqa %xmm5,%xmm3 + 43d887: 49 c1 e0 10 shl $0x10,%r8 + 43d88b: 66 0f 74 e1 pcmpeqb %xmm1,%xmm4 + 43d88f: 66 0f 74 da pcmpeqb %xmm2,%xmm3 + 43d893: 66 44 0f d7 d6 pmovmskb %xmm6,%r10d + 43d898: 66 0f da dc pminub %xmm4,%xmm3 + 43d89c: 66 0f eb c3 por %xmm3,%xmm0 + 43d8a0: 49 c1 e2 20 shl $0x20,%r10 + 43d8a4: 4d 09 d0 or %r10,%r8 + 43d8a7: 49 09 c8 or %rcx,%r8 + 43d8aa: 89 f9 mov %edi,%ecx + 43d8ac: 66 0f d7 d0 pmovmskb %xmm0,%edx + 43d8b0: 29 c1 sub %eax,%ecx + 43d8b2: 48 c1 e2 30 shl $0x30,%rdx + 43d8b6: 49 09 d0 or %rdx,%r8 + 43d8b9: 49 d3 e8 shr %cl,%r8 + 43d8bc: 0f 84 97 fd ff ff je 43d659 <__strstr_sse2_unaligned+0x1b9> + 43d8c2: 49 0f bc c0 bsf %r8,%rax + 43d8c6: 48 01 f8 add %rdi,%rax + 43d8c9: 80 38 00 cmpb $0x0,(%rax) + 43d8cc: 74 62 je 43d930 <__strstr_sse2_unaligned+0x490> + 43d8ce: 48 39 c7 cmp %rax,%rdi + 43d8d1: 74 3d je 43d910 <__strstr_sse2_unaligned+0x470> + 43d8d3: 0f b6 56 02 movzbl 0x2(%rsi),%edx + 43d8d7: 84 d2 test %dl,%dl + 43d8d9: 74 28 je 43d903 <__strstr_sse2_unaligned+0x463> + 43d8db: 3a 50 01 cmp 0x1(%rax),%dl + 43d8de: 75 30 jne 43d910 <__strstr_sse2_unaligned+0x470> + 43d8e0: 31 d2 xor %edx,%edx + 43d8e2: eb 16 jmp 43d8fa <__strstr_sse2_unaligned+0x45a> + 43d8e4: 66 90 xchg %ax,%ax + 43d8e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43d8ed: 00 00 00 + 43d8f0: 48 83 c2 01 add $0x1,%rdx + 43d8f4: 3a 4c 10 01 cmp 0x1(%rax,%rdx,1),%cl + 43d8f8: 75 16 jne 43d910 <__strstr_sse2_unaligned+0x470> + 43d8fa: 0f b6 4c 16 03 movzbl 0x3(%rsi,%rdx,1),%ecx + 43d8ff: 84 c9 test %cl,%cl + 43d901: 75 ed jne 43d8f0 <__strstr_sse2_unaligned+0x450> + 43d903: 48 83 e8 01 sub $0x1,%rax + 43d907: c3 retq + 43d908: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43d90f: 00 + 43d910: 49 8d 40 ff lea -0x1(%r8),%rax + 43d914: 49 21 c0 and %rax,%r8 + 43d917: 75 a9 jne 43d8c2 <__strstr_sse2_unaligned+0x422> + 43d919: e9 3b fd ff ff jmpq 43d659 <__strstr_sse2_unaligned+0x1b9> + 43d91e: 66 90 xchg %ax,%ax + 43d920: f3 c3 repz retq + 43d922: 0f 1f 40 00 nopl 0x0(%rax) + 43d926: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43d92d: 00 00 00 + 43d930: 31 c0 xor %eax,%eax + 43d932: c3 retq + 43d933: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43d93a: 00 00 00 + 43d93d: 0f 1f 00 nopl (%rax) + +000000000043d940 <__memset_avx2>: + 43d940: c5 f9 ef c0 vpxor %xmm0,%xmm0,%xmm0 + 43d944: c5 f9 6e ce vmovd %esi,%xmm1 + 43d948: 48 8d 34 17 lea (%rdi,%rdx,1),%rsi + 43d94c: 48 89 f8 mov %rdi,%rax + 43d94f: c4 e2 71 00 c0 vpshufb %xmm0,%xmm1,%xmm0 + 43d954: 48 83 fa 10 cmp $0x10,%rdx + 43d958: 0f 82 c2 00 00 00 jb 43da20 <__memset_avx2+0xe0> + 43d95e: 48 81 fa 00 01 00 00 cmp $0x100,%rdx + 43d965: 0f 83 f5 00 00 00 jae 43da60 <__memset_avx2+0x120> + 43d96b: 80 fa 80 cmp $0x80,%dl + 43d96e: 72 50 jb 43d9c0 <__memset_avx2+0x80> + 43d970: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) + 43d974: c5 fa 7f 47 10 vmovdqu %xmm0,0x10(%rdi) + 43d979: c5 fa 7f 47 20 vmovdqu %xmm0,0x20(%rdi) + 43d97e: c5 fa 7f 47 30 vmovdqu %xmm0,0x30(%rdi) + 43d983: c5 fa 7f 47 40 vmovdqu %xmm0,0x40(%rdi) + 43d988: c5 fa 7f 47 50 vmovdqu %xmm0,0x50(%rdi) + 43d98d: c5 fa 7f 47 60 vmovdqu %xmm0,0x60(%rdi) + 43d992: c5 fa 7f 47 70 vmovdqu %xmm0,0x70(%rdi) + 43d997: c5 fa 7f 46 80 vmovdqu %xmm0,-0x80(%rsi) + 43d99c: c5 fa 7f 46 90 vmovdqu %xmm0,-0x70(%rsi) + 43d9a1: c5 fa 7f 46 a0 vmovdqu %xmm0,-0x60(%rsi) + 43d9a6: c5 fa 7f 46 b0 vmovdqu %xmm0,-0x50(%rsi) + 43d9ab: c5 fa 7f 46 c0 vmovdqu %xmm0,-0x40(%rsi) + 43d9b0: c5 fa 7f 46 d0 vmovdqu %xmm0,-0x30(%rsi) + 43d9b5: c5 fa 7f 46 e0 vmovdqu %xmm0,-0x20(%rsi) + 43d9ba: c5 fa 7f 46 f0 vmovdqu %xmm0,-0x10(%rsi) + 43d9bf: c3 retq + 43d9c0: 80 fa 40 cmp $0x40,%dl + 43d9c3: 72 2b jb 43d9f0 <__memset_avx2+0xb0> + 43d9c5: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) + 43d9c9: c5 fa 7f 47 10 vmovdqu %xmm0,0x10(%rdi) + 43d9ce: c5 fa 7f 47 20 vmovdqu %xmm0,0x20(%rdi) + 43d9d3: c5 fa 7f 47 30 vmovdqu %xmm0,0x30(%rdi) + 43d9d8: c5 fa 7f 46 c0 vmovdqu %xmm0,-0x40(%rsi) + 43d9dd: c5 fa 7f 46 d0 vmovdqu %xmm0,-0x30(%rsi) + 43d9e2: c5 fa 7f 46 e0 vmovdqu %xmm0,-0x20(%rsi) + 43d9e7: c5 fa 7f 46 f0 vmovdqu %xmm0,-0x10(%rsi) + 43d9ec: c3 retq + 43d9ed: 0f 1f 00 nopl (%rax) + 43d9f0: 80 fa 20 cmp $0x20,%dl + 43d9f3: 72 1b jb 43da10 <__memset_avx2+0xd0> + 43d9f5: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) + 43d9f9: c5 fa 7f 47 10 vmovdqu %xmm0,0x10(%rdi) + 43d9fe: c5 fa 7f 46 e0 vmovdqu %xmm0,-0x20(%rsi) + 43da03: c5 fa 7f 46 f0 vmovdqu %xmm0,-0x10(%rsi) + 43da08: c3 retq + 43da09: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43da10: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) + 43da14: c5 fa 7f 46 f0 vmovdqu %xmm0,-0x10(%rsi) + 43da19: c3 retq + 43da1a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43da20: 80 fa 08 cmp $0x8,%dl + 43da23: 72 0b jb 43da30 <__memset_avx2+0xf0> + 43da25: c5 f9 d6 07 vmovq %xmm0,(%rdi) + 43da29: c5 f9 d6 46 f8 vmovq %xmm0,-0x8(%rsi) + 43da2e: c3 retq + 43da2f: 90 nop + 43da30: c5 f9 7e c1 vmovd %xmm0,%ecx + 43da34: 80 fa 04 cmp $0x4,%dl + 43da37: 72 07 jb 43da40 <__memset_avx2+0x100> + 43da39: 89 0f mov %ecx,(%rdi) + 43da3b: 89 4e fc mov %ecx,-0x4(%rsi) + 43da3e: c3 retq + 43da3f: 90 nop + 43da40: 80 fa 02 cmp $0x2,%dl + 43da43: 72 0b jb 43da50 <__memset_avx2+0x110> + 43da45: 66 89 0f mov %cx,(%rdi) + 43da48: 66 89 4e fe mov %cx,-0x2(%rsi) + 43da4c: c3 retq + 43da4d: 0f 1f 00 nopl (%rax) + 43da50: 80 fa 01 cmp $0x1,%dl + 43da53: 72 02 jb 43da57 <__memset_avx2+0x117> + 43da55: 88 0f mov %cl,(%rdi) + 43da57: c3 retq + 43da58: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43da5f: 00 + 43da60: c4 e3 7d 38 c0 01 vinserti128 $0x1,%xmm0,%ymm0,%ymm0 + 43da66: 48 83 e7 e0 and $0xffffffffffffffe0,%rdi + 43da6a: 48 83 c7 20 add $0x20,%rdi + 43da6e: c5 fe 7f 00 vmovdqu %ymm0,(%rax) + 43da72: 48 29 f8 sub %rdi,%rax + 43da75: 48 8d 4c 10 80 lea -0x80(%rax,%rdx,1),%rcx + 43da7a: 48 81 f9 00 10 00 00 cmp $0x1000,%rcx + 43da81: 77 3d ja 43dac0 <__memset_avx2+0x180> + 43da83: c5 fd 7f 07 vmovdqa %ymm0,(%rdi) + 43da87: c5 fd 7f 47 20 vmovdqa %ymm0,0x20(%rdi) + 43da8c: c5 fd 7f 47 40 vmovdqa %ymm0,0x40(%rdi) + 43da91: c5 fd 7f 47 60 vmovdqa %ymm0,0x60(%rdi) + 43da96: 48 83 ef 80 sub $0xffffffffffffff80,%rdi + 43da9a: 83 c1 80 add $0xffffff80,%ecx + 43da9d: 72 e4 jb 43da83 <__memset_avx2+0x143> + 43da9f: 48 89 f0 mov %rsi,%rax + 43daa2: c5 fe 7f 46 80 vmovdqu %ymm0,-0x80(%rsi) + 43daa7: c5 fe 7f 46 a0 vmovdqu %ymm0,-0x60(%rsi) + 43daac: c5 fe 7f 46 c0 vmovdqu %ymm0,-0x40(%rsi) + 43dab1: c5 fe 7f 46 e0 vmovdqu %ymm0,-0x20(%rsi) + 43dab6: 48 29 d0 sub %rdx,%rax + 43dab9: c5 f8 77 vzeroupper + 43dabc: c3 retq + 43dabd: 0f 1f 00 nopl (%rax) + 43dac0: 48 83 e9 80 sub $0xffffffffffffff80,%rcx + 43dac4: c5 f9 7e c0 vmovd %xmm0,%eax + 43dac8: f3 aa rep stos %al,%es:(%rdi) + 43daca: 48 89 f0 mov %rsi,%rax + 43dacd: 48 29 d0 sub %rdx,%rax + 43dad0: c5 f8 77 vzeroupper + 43dad3: c3 retq + 43dad4: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43dadb: 00 00 00 + 43dade: 66 90 xchg %ax,%ax + +000000000043dae0 <__memset_avx512_no_vzeroupper>: + 43dae0: c5 f9 ef c0 vpxor %xmm0,%xmm0,%xmm0 + 43dae4: c5 f9 6e ce vmovd %esi,%xmm1 + 43dae8: 48 8d 34 17 lea (%rdi,%rdx,1),%rsi + 43daec: 48 89 f8 mov %rdi,%rax + 43daef: c4 e2 71 00 c0 vpshufb %xmm0,%xmm1,%xmm0 + 43daf4: 48 83 fa 10 cmp $0x10,%rdx + 43daf8: 0f 82 a1 00 00 00 jb 43db9f <__memset_avx512_no_vzeroupper+0xbf> + 43dafe: 48 81 fa 00 02 00 00 cmp $0x200,%rdx + 43db05: 62 f2 7d 48 18 d0 vbroadcastss %xmm0,%zmm2 + 43db0b: 0f 87 c1 00 00 00 ja 43dbd2 <__memset_avx512_no_vzeroupper+0xf2> + 43db11: 48 81 fa 00 01 00 00 cmp $0x100,%rdx + 43db18: 72 38 jb 43db52 <__memset_avx512_no_vzeroupper+0x72> + 43db1a: 62 f1 7c 48 11 17 vmovups %zmm2,(%rdi) + 43db20: 62 f1 7c 48 11 57 01 vmovups %zmm2,0x40(%rdi) + 43db27: 62 f1 7c 48 11 57 02 vmovups %zmm2,0x80(%rdi) + 43db2e: 62 f1 7c 48 11 57 03 vmovups %zmm2,0xc0(%rdi) + 43db35: 62 f1 7c 48 11 56 fc vmovups %zmm2,-0x100(%rsi) + 43db3c: 62 f1 7c 48 11 56 fd vmovups %zmm2,-0xc0(%rsi) + 43db43: 62 f1 7c 48 11 56 fe vmovups %zmm2,-0x80(%rsi) + 43db4a: 62 f1 7c 48 11 56 ff vmovups %zmm2,-0x40(%rsi) + 43db51: c3 retq + 43db52: 80 fa 80 cmp $0x80,%dl + 43db55: 72 1c jb 43db73 <__memset_avx512_no_vzeroupper+0x93> + 43db57: 62 f1 7c 48 11 17 vmovups %zmm2,(%rdi) + 43db5d: 62 f1 7c 48 11 57 01 vmovups %zmm2,0x40(%rdi) + 43db64: 62 f1 7c 48 11 56 fe vmovups %zmm2,-0x80(%rsi) + 43db6b: 62 f1 7c 48 11 56 ff vmovups %zmm2,-0x40(%rsi) + 43db72: c3 retq + 43db73: 80 fa 40 cmp $0x40,%dl + 43db76: 72 0e jb 43db86 <__memset_avx512_no_vzeroupper+0xa6> + 43db78: 62 f1 7c 48 11 17 vmovups %zmm2,(%rdi) + 43db7e: 62 f1 7c 48 11 56 ff vmovups %zmm2,-0x40(%rsi) + 43db85: c3 retq + 43db86: 80 fa 20 cmp $0x20,%dl + 43db89: 72 0a jb 43db95 <__memset_avx512_no_vzeroupper+0xb5> + 43db8b: c5 fe 7f 17 vmovdqu %ymm2,(%rdi) + 43db8f: c5 fe 7f 56 e0 vmovdqu %ymm2,-0x20(%rsi) + 43db94: c3 retq + 43db95: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) + 43db99: c5 fa 7f 46 f0 vmovdqu %xmm0,-0x10(%rsi) + 43db9e: c3 retq + 43db9f: 80 fa 08 cmp $0x8,%dl + 43dba2: 72 0a jb 43dbae <__memset_avx512_no_vzeroupper+0xce> + 43dba4: c5 f9 d6 07 vmovq %xmm0,(%rdi) + 43dba8: c5 f9 d6 46 f8 vmovq %xmm0,-0x8(%rsi) + 43dbad: c3 retq + 43dbae: c5 f9 7e c1 vmovd %xmm0,%ecx + 43dbb2: 80 fa 04 cmp $0x4,%dl + 43dbb5: 72 06 jb 43dbbd <__memset_avx512_no_vzeroupper+0xdd> + 43dbb7: 89 0f mov %ecx,(%rdi) + 43dbb9: 89 4e fc mov %ecx,-0x4(%rsi) + 43dbbc: c3 retq + 43dbbd: 80 fa 02 cmp $0x2,%dl + 43dbc0: 72 08 jb 43dbca <__memset_avx512_no_vzeroupper+0xea> + 43dbc2: 66 89 0f mov %cx,(%rdi) + 43dbc5: 66 89 4e fe mov %cx,-0x2(%rsi) + 43dbc9: c3 retq + 43dbca: 80 fa 01 cmp $0x1,%dl + 43dbcd: 72 02 jb 43dbd1 <__memset_avx512_no_vzeroupper+0xf1> + 43dbcf: 88 0f mov %cl,(%rdi) + 43dbd1: c3 retq + 43dbd2: 48 8b 0d d7 d4 28 00 mov 0x28d4d7(%rip),%rcx # 6cb0b0 <__x86_shared_cache_size_half> + 43dbd9: 48 39 ca cmp %rcx,%rdx + 43dbdc: 0f 87 d1 00 00 00 ja 43dcb3 <__memset_avx512_no_vzeroupper+0x1d3> + 43dbe2: 48 81 fa 00 04 00 00 cmp $0x400,%rdx + 43dbe9: 77 70 ja 43dc5b <__memset_avx512_no_vzeroupper+0x17b> + 43dbeb: 62 f1 7c 48 11 17 vmovups %zmm2,(%rdi) + 43dbf1: 62 f1 7c 48 11 57 01 vmovups %zmm2,0x40(%rdi) + 43dbf8: 62 f1 7c 48 11 57 02 vmovups %zmm2,0x80(%rdi) + 43dbff: 62 f1 7c 48 11 57 03 vmovups %zmm2,0xc0(%rdi) + 43dc06: 62 f1 7c 48 11 57 04 vmovups %zmm2,0x100(%rdi) + 43dc0d: 62 f1 7c 48 11 57 05 vmovups %zmm2,0x140(%rdi) + 43dc14: 62 f1 7c 48 11 57 06 vmovups %zmm2,0x180(%rdi) + 43dc1b: 62 f1 7c 48 11 57 07 vmovups %zmm2,0x1c0(%rdi) + 43dc22: 62 f1 7c 48 11 56 f8 vmovups %zmm2,-0x200(%rsi) + 43dc29: 62 f1 7c 48 11 56 f9 vmovups %zmm2,-0x1c0(%rsi) + 43dc30: 62 f1 7c 48 11 56 fa vmovups %zmm2,-0x180(%rsi) + 43dc37: 62 f1 7c 48 11 56 fb vmovups %zmm2,-0x140(%rsi) + 43dc3e: 62 f1 7c 48 11 56 fc vmovups %zmm2,-0x100(%rsi) + 43dc45: 62 f1 7c 48 11 56 fd vmovups %zmm2,-0xc0(%rsi) + 43dc4c: 62 f1 7c 48 11 56 fe vmovups %zmm2,-0x80(%rsi) + 43dc53: 62 f1 7c 48 11 56 ff vmovups %zmm2,-0x40(%rsi) + 43dc5a: c3 retq + 43dc5b: 48 81 ee 00 01 00 00 sub $0x100,%rsi + 43dc62: 62 f1 7c 48 11 10 vmovups %zmm2,(%rax) + 43dc68: 48 83 e7 c0 and $0xffffffffffffffc0,%rdi + 43dc6c: 48 83 c7 40 add $0x40,%rdi + 43dc70: 62 f1 7c 48 29 17 vmovaps %zmm2,(%rdi) + 43dc76: 62 f1 7c 48 29 57 01 vmovaps %zmm2,0x40(%rdi) + 43dc7d: 62 f1 7c 48 29 57 02 vmovaps %zmm2,0x80(%rdi) + 43dc84: 62 f1 7c 48 29 57 03 vmovaps %zmm2,0xc0(%rdi) + 43dc8b: 48 81 c7 00 01 00 00 add $0x100,%rdi + 43dc92: 48 39 f7 cmp %rsi,%rdi + 43dc95: 72 d9 jb 43dc70 <__memset_avx512_no_vzeroupper+0x190> + 43dc97: 62 f1 7c 48 11 16 vmovups %zmm2,(%rsi) + 43dc9d: 62 f1 7c 48 11 56 01 vmovups %zmm2,0x40(%rsi) + 43dca4: 62 f1 7c 48 11 56 02 vmovups %zmm2,0x80(%rsi) + 43dcab: 62 f1 7c 48 11 56 03 vmovups %zmm2,0xc0(%rsi) + 43dcb2: c3 retq + 43dcb3: 48 83 e7 80 and $0xffffffffffffff80,%rdi + 43dcb7: 48 81 c7 80 00 00 00 add $0x80,%rdi + 43dcbe: 62 f1 7c 48 11 10 vmovups %zmm2,(%rax) + 43dcc4: 62 f1 7c 48 11 50 01 vmovups %zmm2,0x40(%rax) + 43dccb: 48 81 ee 00 02 00 00 sub $0x200,%rsi + 43dcd2: 62 f1 7d 48 e7 17 vmovntdq %zmm2,(%rdi) + 43dcd8: 62 f1 7d 48 e7 57 01 vmovntdq %zmm2,0x40(%rdi) + 43dcdf: 62 f1 7d 48 e7 57 02 vmovntdq %zmm2,0x80(%rdi) + 43dce6: 62 f1 7d 48 e7 57 03 vmovntdq %zmm2,0xc0(%rdi) + 43dced: 62 f1 7d 48 e7 57 04 vmovntdq %zmm2,0x100(%rdi) + 43dcf4: 62 f1 7d 48 e7 57 05 vmovntdq %zmm2,0x140(%rdi) + 43dcfb: 62 f1 7d 48 e7 57 06 vmovntdq %zmm2,0x180(%rdi) + 43dd02: 62 f1 7d 48 e7 57 07 vmovntdq %zmm2,0x1c0(%rdi) + 43dd09: 48 81 c7 00 02 00 00 add $0x200,%rdi + 43dd10: 48 39 f7 cmp %rsi,%rdi + 43dd13: 72 bd jb 43dcd2 <__memset_avx512_no_vzeroupper+0x1f2> + 43dd15: 0f ae f8 sfence + 43dd18: 62 f1 7c 48 11 16 vmovups %zmm2,(%rsi) + 43dd1e: 62 f1 7c 48 11 56 01 vmovups %zmm2,0x40(%rsi) + 43dd25: 62 f1 7c 48 11 56 02 vmovups %zmm2,0x80(%rsi) + 43dd2c: 62 f1 7c 48 11 56 03 vmovups %zmm2,0xc0(%rsi) + 43dd33: 62 f1 7c 48 11 56 04 vmovups %zmm2,0x100(%rsi) + 43dd3a: 62 f1 7c 48 11 56 05 vmovups %zmm2,0x140(%rsi) + 43dd41: 62 f1 7c 48 11 56 06 vmovups %zmm2,0x180(%rsi) + 43dd48: 62 f1 7c 48 11 56 07 vmovups %zmm2,0x1c0(%rsi) + 43dd4f: c3 retq + +000000000043dd50 : + 43dd50: 85 f6 test %esi,%esi + 43dd52: 0f 88 16 02 00 00 js 43df6e + 43dd58: 44 8d 87 47 ff ff ff lea -0xb9(%rdi),%r8d + 43dd5f: 41 55 push %r13 + 43dd61: 41 54 push %r12 + 43dd63: 55 push %rbp + 43dd64: 53 push %rbx + 43dd65: 48 89 d3 mov %rdx,%rbx + 43dd68: 44 89 c0 mov %r8d,%eax + 43dd6b: ba 56 55 55 55 mov $0x55555556,%edx + 43dd70: 41 c1 f8 1f sar $0x1f,%r8d + 43dd74: f7 ea imul %edx + 43dd76: 48 83 ec 08 sub $0x8,%rsp + 43dd7a: 44 29 c2 sub %r8d,%edx + 43dd7d: 85 f6 test %esi,%esi + 43dd7f: 44 8d 1c 52 lea (%rdx,%rdx,2),%r11d + 43dd83: 0f 84 b8 00 00 00 je 43de41 + 43dd89: 83 3d 28 e9 28 00 0f cmpl $0xf,0x28e928(%rip) # 6cc6b8 <_dl_x86_cpu_features+0x38> + 43dd90: 40 0f 94 c5 sete %bpl + 43dd94: 83 3d 21 e9 28 00 06 cmpl $0x6,0x28e921(%rip) # 6cc6bc <_dl_x86_cpu_features+0x3c> + 43dd9b: 0f 94 c0 sete %al + 43dd9e: 21 c5 and %eax,%ebp + 43dda0: 40 0f b6 c6 movzbl %sil,%eax + 43dda4: 83 f8 40 cmp $0x40,%eax + 43dda7: 0f 84 b3 00 00 00 je 43de60 + 43ddad: 3d ff 00 00 00 cmp $0xff,%eax + 43ddb2: 0f 84 bd 00 00 00 je 43de75 + 43ddb8: 83 f8 49 cmp $0x49,%eax + 43ddbb: 75 14 jne 43ddd1 + 43ddbd: 41 83 fb 09 cmp $0x9,%r11d + 43ddc1: 75 0e jne 43ddd1 + 43ddc3: 40 84 ed test %bpl,%bpl + 43ddc6: 74 09 je 43ddd1 + 43ddc8: 83 ef 03 sub $0x3,%edi + 43ddcb: 41 bb 06 00 00 00 mov $0x6,%r11d + 43ddd1: 41 89 f1 mov %esi,%r9d + 43ddd4: 31 d2 xor %edx,%edx + 43ddd6: 41 ba 44 00 00 00 mov $0x44,%r10d + 43dddc: 0f 1f 40 00 nopl 0x0(%rax) + 43dde0: 49 8d 04 12 lea (%r10,%rdx,1),%rax + 43dde4: 48 d1 e8 shr %rax + 43dde7: 44 3a 0c c5 60 3d 4a cmp 0x4a3d60(,%rax,8),%r9b + 43ddee: 00 + 43ddef: 4c 8d 04 c5 60 3d 4a lea 0x4a3d60(,%rax,8),%r8 + 43ddf6: 00 + 43ddf7: 74 29 je 43de22 + 43ddf9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43de00: 73 4e jae 43de50 + 43de02: 48 39 d0 cmp %rdx,%rax + 43de05: 49 89 c2 mov %rax,%r10 + 43de08: 76 2c jbe 43de36 + 43de0a: 48 01 d0 add %rdx,%rax + 43de0d: 48 d1 e8 shr %rax + 43de10: 44 3a 0c c5 60 3d 4a cmp 0x4a3d60(,%rax,8),%r9b + 43de17: 00 + 43de18: 4c 8d 04 c5 60 3d 4a lea 0x4a3d60(,%rax,8),%r8 + 43de1f: 00 + 43de20: 75 de jne 43de00 + 43de22: 41 0f b6 50 03 movzbl 0x3(%r8),%edx + 43de27: 41 39 d3 cmp %edx,%r11d + 43de2a: 89 d0 mov %edx,%eax + 43de2c: 0f 84 3f 01 00 00 je 43df71 + 43de32: 3c 06 cmp $0x6,%al + 43de34: 74 3a je 43de70 + 43de36: c1 ee 08 shr $0x8,%esi + 43de39: 85 f6 test %esi,%esi + 43de3b: 0f 85 5f ff ff ff jne 43dda0 + 43de41: 31 c0 xor %eax,%eax + 43de43: 48 83 c4 08 add $0x8,%rsp + 43de47: 5b pop %rbx + 43de48: 5d pop %rbp + 43de49: 41 5c pop %r12 + 43de4b: 41 5d pop %r13 + 43de4d: c3 retq + 43de4e: 66 90 xchg %ax,%ax + 43de50: 48 8d 50 01 lea 0x1(%rax),%rdx + 43de54: 4c 39 d2 cmp %r10,%rdx + 43de57: 72 87 jb 43dde0 + 43de59: eb db jmp 43de36 + 43de5b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43de60: 41 83 fb 09 cmp $0x9,%r11d + 43de64: c6 01 01 movb $0x1,(%rcx) + 43de67: 75 cd jne 43de36 + 43de69: eb d6 jmp 43de41 + 43de6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43de70: c6 03 01 movb $0x1,(%rbx) + 43de73: eb c1 jmp 43de36 + 43de75: 31 c9 xor %ecx,%ecx + 43de77: b8 04 00 00 00 mov $0x4,%eax + 43de7c: 0f a2 cpuid + 43de7e: 89 c6 mov %eax,%esi + 43de80: 83 e6 1f and $0x1f,%esi + 43de83: 74 bc je 43de41 + 43de85: c1 e8 05 shr $0x5,%eax + 43de88: 83 e0 07 and $0x7,%eax + 43de8b: 83 f8 01 cmp $0x1,%eax + 43de8e: 0f 94 c2 sete %dl + 43de91: 41 83 fb 03 cmp $0x3,%r11d + 43de95: 41 0f 94 c1 sete %r9b + 43de99: 83 fe 01 cmp $0x1,%esi + 43de9c: 41 0f 94 c0 sete %r8b + 43dea0: 45 84 c8 test %r9b,%r8b + 43dea3: 74 08 je 43dead + 43dea5: 84 d2 test %dl,%dl + 43dea7: 0f 85 8e 00 00 00 jne 43df3b + 43dead: 45 85 db test %r11d,%r11d + 43deb0: 41 0f 94 c2 sete %r10b + 43deb4: 83 fe 02 cmp $0x2,%esi + 43deb7: 40 0f 94 c6 sete %sil + 43debb: 44 84 d6 test %r10b,%sil + 43debe: 74 04 je 43dec4 + 43dec0: 84 d2 test %dl,%dl + 43dec2: 75 77 jne 43df3b + 43dec4: 41 83 fb 06 cmp $0x6,%r11d + 43dec8: 41 b8 04 00 00 00 mov $0x4,%r8d + 43dece: 40 0f 94 c5 sete %bpl + 43ded2: 31 f6 xor %esi,%esi + 43ded4: 0f 1f 40 00 nopl 0x0(%rax) + 43ded8: 83 f8 02 cmp $0x2,%eax + 43dedb: 75 05 jne 43dee2 + 43dedd: 40 84 ed test %bpl,%bpl + 43dee0: 75 59 jne 43df3b + 43dee2: 83 f8 03 cmp $0x3,%eax + 43dee5: 75 06 jne 43deed + 43dee7: 41 83 fb 09 cmp $0x9,%r11d + 43deeb: 74 4e je 43df3b + 43deed: 83 f8 04 cmp $0x4,%eax + 43def0: 75 06 jne 43def8 + 43def2: 41 83 fb 0c cmp $0xc,%r11d + 43def6: 74 43 je 43df3b + 43def8: 83 c6 01 add $0x1,%esi + 43defb: 44 89 c0 mov %r8d,%eax + 43defe: 89 f1 mov %esi,%ecx + 43df00: 0f a2 cpuid + 43df02: 89 c2 mov %eax,%edx + 43df04: 83 e2 1f and $0x1f,%edx + 43df07: 0f 84 34 ff ff ff je 43de41 + 43df0d: c1 e8 05 shr $0x5,%eax + 43df10: 83 e0 07 and $0x7,%eax + 43df13: 83 f8 01 cmp $0x1,%eax + 43df16: 41 0f 94 c4 sete %r12b + 43df1a: 83 fa 01 cmp $0x1,%edx + 43df1d: 41 0f 94 c5 sete %r13b + 43df21: 45 84 cd test %r9b,%r13b + 43df24: 74 05 je 43df2b + 43df26: 45 84 e4 test %r12b,%r12b + 43df29: 75 10 jne 43df3b + 43df2b: 83 fa 02 cmp $0x2,%edx + 43df2e: 0f 94 c2 sete %dl + 43df31: 44 84 d2 test %r10b,%dl + 43df34: 74 a2 je 43ded8 + 43df36: 45 84 e4 test %r12b,%r12b + 43df39: 74 9d je 43ded8 + 43df3b: 8d 87 47 ff ff ff lea -0xb9(%rdi),%eax + 43df41: 44 29 d8 sub %r11d,%eax + 43df44: 74 59 je 43df9f + 43df46: 83 f8 01 cmp $0x1,%eax + 43df49: 0f 84 82 00 00 00 je 43dfd1 + 43df4f: 83 f8 02 cmp $0x2,%eax + 43df52: 0f 85 a9 00 00 00 jne 43e001 + 43df58: 89 d8 mov %ebx,%eax + 43df5a: 48 83 c4 08 add $0x8,%rsp + 43df5e: 25 ff 0f 00 00 and $0xfff,%eax + 43df63: 5b pop %rbx + 43df64: 48 83 c0 01 add $0x1,%rax + 43df68: 5d pop %rbp + 43df69: 41 5c pop %r12 + 43df6b: 41 5d pop %r13 + 43df6d: c3 retq + 43df6e: 31 c0 xor %eax,%eax + 43df70: c3 retq + 43df71: 8d 87 47 ff ff ff lea -0xb9(%rdi),%eax + 43df77: 44 29 d8 sub %r11d,%eax + 43df7a: 74 14 je 43df90 + 43df7c: 83 f8 01 cmp $0x1,%eax + 43df7f: 74 5d je 43dfde + 43df81: 83 f8 02 cmp $0x2,%eax + 43df84: 75 62 jne 43dfe8 + 43df86: 41 0f b6 40 02 movzbl 0x2(%r8),%eax + 43df8b: e9 b3 fe ff ff jmpq 43de43 + 43df90: 41 8b 40 04 mov 0x4(%r8),%eax + 43df94: 48 83 c4 08 add $0x8,%rsp + 43df98: 5b pop %rbx + 43df99: 5d pop %rbp + 43df9a: 41 5c pop %r12 + 43df9c: 41 5d pop %r13 + 43df9e: c3 retq + 43df9f: 89 d8 mov %ebx,%eax + 43dfa1: 83 c1 01 add $0x1,%ecx + 43dfa4: c1 e8 16 shr $0x16,%eax + 43dfa7: 8d 50 01 lea 0x1(%rax),%edx + 43dfaa: 89 d8 mov %ebx,%eax + 43dfac: 25 ff 0f 00 00 and $0xfff,%eax + 43dfb1: 83 c0 01 add $0x1,%eax + 43dfb4: 0f af c2 imul %edx,%eax + 43dfb7: 0f af c1 imul %ecx,%eax + 43dfba: 89 c2 mov %eax,%edx + 43dfbc: 89 d8 mov %ebx,%eax + 43dfbe: c1 e8 0c shr $0xc,%eax + 43dfc1: 25 ff 03 00 00 and $0x3ff,%eax + 43dfc6: 83 c0 01 add $0x1,%eax + 43dfc9: 0f af c2 imul %edx,%eax + 43dfcc: e9 72 fe ff ff jmpq 43de43 + 43dfd1: 89 d8 mov %ebx,%eax + 43dfd3: c1 e8 16 shr $0x16,%eax + 43dfd6: 83 c0 01 add $0x1,%eax + 43dfd9: e9 65 fe ff ff jmpq 43de43 + 43dfde: 41 0f b6 40 01 movzbl 0x1(%r8),%eax + 43dfe3: e9 5b fe ff ff jmpq 43de43 + 43dfe8: b9 90 3f 4a 00 mov $0x4a3f90,%ecx + 43dfed: ba f1 00 00 00 mov $0xf1,%edx + 43dff2: be b0 3b 4a 00 mov $0x4a3bb0,%esi + 43dff7: bf ce 3b 4a 00 mov $0x4a3bce,%edi + 43dffc: e8 3f 37 fc ff callq 401740 <__assert_fail> + 43e001: b9 90 3f 4a 00 mov $0x4a3f90,%ecx + 43e006: ba c1 00 00 00 mov $0xc1,%edx + 43e00b: be b0 3b 4a 00 mov $0x4a3bb0,%esi + 43e010: bf ce 3b 4a 00 mov $0x4a3bce,%edi + 43e015: e8 26 37 fc ff callq 401740 <__assert_fail> + 43e01a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +000000000043e020 : + 43e020: 83 fe 01 cmp $0x1,%esi + 43e023: 0f 86 f7 00 00 00 jbe 43e120 + 43e029: 41 57 push %r15 + 43e02b: 41 56 push %r14 + 43e02d: 41 bf 01 00 00 00 mov $0x1,%r15d + 43e033: 41 55 push %r13 + 43e035: 41 54 push %r12 + 43e037: 41 bc 01 00 00 00 mov $0x1,%r12d + 43e03d: 55 push %rbp + 43e03e: 53 push %rbx + 43e03f: 89 fd mov %edi,%ebp + 43e041: 48 83 ec 18 sub $0x18,%rsp + 43e045: c6 44 24 0e 00 movb $0x0,0xe(%rsp) + 43e04a: c6 44 24 0f 00 movb $0x0,0xf(%rsp) + 43e04f: eb 78 jmp 43e0c9 + 43e051: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43e058: 48 8d 4c 24 0e lea 0xe(%rsp),%rcx + 43e05d: 48 8d 54 24 0f lea 0xf(%rsp),%rdx + 43e062: 89 ef mov %ebp,%edi + 43e064: e8 e7 fc ff ff callq 43dd50 + 43e069: 48 85 c0 test %rax,%rax + 43e06c: 0f 85 97 00 00 00 jne 43e109 + 43e072: 48 8d 4c 24 0e lea 0xe(%rsp),%rcx + 43e077: 48 8d 54 24 0f lea 0xf(%rsp),%rdx + 43e07c: 89 de mov %ebx,%esi + 43e07e: 89 ef mov %ebp,%edi + 43e080: e8 cb fc ff ff callq 43dd50 + 43e085: 48 85 c0 test %rax,%rax + 43e088: 75 7f jne 43e109 + 43e08a: 48 8d 4c 24 0e lea 0xe(%rsp),%rcx + 43e08f: 48 8d 54 24 0f lea 0xf(%rsp),%rdx + 43e094: 44 89 ee mov %r13d,%esi + 43e097: 89 ef mov %ebp,%edi + 43e099: e8 b2 fc ff ff callq 43dd50 + 43e09e: 48 85 c0 test %rax,%rax + 43e0a1: 75 66 jne 43e109 + 43e0a3: 48 8d 4c 24 0e lea 0xe(%rsp),%rcx + 43e0a8: 48 8d 54 24 0f lea 0xf(%rsp),%rdx + 43e0ad: 44 89 f6 mov %r14d,%esi + 43e0b0: 89 ef mov %ebp,%edi + 43e0b2: e8 99 fc ff ff callq 43dd50 + 43e0b7: 48 85 c0 test %rax,%rax + 43e0ba: 75 4d jne 43e109 + 43e0bc: 45 39 e7 cmp %r12d,%r15d + 43e0bf: 41 8d 44 24 01 lea 0x1(%r12),%eax + 43e0c4: 76 2a jbe 43e0f0 + 43e0c6: 41 89 c4 mov %eax,%r12d + 43e0c9: b8 02 00 00 00 mov $0x2,%eax + 43e0ce: 0f a2 cpuid + 43e0d0: 41 83 fc 01 cmp $0x1,%r12d + 43e0d4: 41 89 d6 mov %edx,%r14d + 43e0d7: 41 89 cd mov %ecx,%r13d + 43e0da: 89 c6 mov %eax,%esi + 43e0dc: 0f 85 76 ff ff ff jne 43e058 + 43e0e2: 44 0f b6 f8 movzbl %al,%r15d + 43e0e6: 40 80 e6 00 and $0x0,%sil + 43e0ea: e9 69 ff ff ff jmpq 43e058 + 43e0ef: 90 nop + 43e0f0: 81 ed bf 00 00 00 sub $0xbf,%ebp + 43e0f6: 83 fd 05 cmp $0x5,%ebp + 43e0f9: 77 2d ja 43e128 + 43e0fb: 80 7c 24 0e 00 cmpb $0x0,0xe(%rsp) + 43e100: 74 26 je 43e128 + 43e102: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 43e109: 48 83 c4 18 add $0x18,%rsp + 43e10d: 5b pop %rbx + 43e10e: 5d pop %rbp + 43e10f: 41 5c pop %r12 + 43e111: 41 5d pop %r13 + 43e113: 41 5e pop %r14 + 43e115: 41 5f pop %r15 + 43e117: c3 retq + 43e118: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43e11f: 00 + 43e120: 31 c0 xor %eax,%eax + 43e122: c3 retq + 43e123: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43e128: 48 83 c4 18 add $0x18,%rsp + 43e12c: 31 c0 xor %eax,%eax + 43e12e: 5b pop %rbx + 43e12f: 5d pop %rbp + 43e130: 41 5c pop %r12 + 43e132: 41 5d pop %r13 + 43e134: 41 5e pop %r14 + 43e136: 41 5f pop %r15 + 43e138: c3 retq + 43e139: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +000000000043e140 : + 43e140: 53 push %rbx + 43e141: b8 00 00 00 80 mov $0x80000000,%eax + 43e146: 0f a2 cpuid + 43e148: 81 ff c4 00 00 00 cmp $0xc4,%edi + 43e14e: 7f 40 jg 43e190 + 43e150: 31 d2 xor %edx,%edx + 43e152: 81 ff be 00 00 00 cmp $0xbe,%edi + 43e158: 0f 9f c2 setg %dl + 43e15b: 81 ea fb ff ff 7f sub $0x7ffffffb,%edx + 43e161: 39 c2 cmp %eax,%edx + 43e163: 77 2b ja 43e190 + 43e165: 89 d0 mov %edx,%eax + 43e167: 0f a2 cpuid + 43e169: 81 ff bb 00 00 00 cmp $0xbb,%edi + 43e16f: 7e 27 jle 43e198 + 43e171: 81 ef bc 00 00 00 sub $0xbc,%edi + 43e177: 83 ff 08 cmp $0x8,%edi + 43e17a: 0f 87 30 01 00 00 ja 43e2b0 + 43e180: ff 24 fd 00 3c 4a 00 jmpq *0x4a3c00(,%rdi,8) + 43e187: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43e18e: 00 00 + 43e190: 31 c0 xor %eax,%eax + 43e192: 5b pop %rbx + 43e193: c3 retq + 43e194: 0f 1f 40 00 nopl 0x0(%rax) + 43e198: 83 c7 03 add $0x3,%edi + 43e19b: 89 d1 mov %edx,%ecx + 43e19d: eb d2 jmp 43e171 + 43e19f: 90 nop + 43e1a0: 31 c0 xor %eax,%eax + 43e1a2: f6 c5 f0 test $0xf0,%ch + 43e1a5: 74 eb je 43e192 + 43e1a7: 0f b6 c1 movzbl %cl,%eax + 43e1aa: 5b pop %rbx + 43e1ab: c3 retq + 43e1ac: 0f 1f 40 00 nopl 0x0(%rax) + 43e1b0: 31 c0 xor %eax,%eax + 43e1b2: f6 c5 f0 test $0xf0,%ch + 43e1b5: 74 db je 43e192 + 43e1b7: 89 c8 mov %ecx,%eax + 43e1b9: c1 e8 06 shr $0x6,%eax + 43e1bc: 25 00 fc ff 03 and $0x3fffc00,%eax + 43e1c1: 5b pop %rbx + 43e1c2: c3 retq + 43e1c3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43e1c8: 31 c0 xor %eax,%eax + 43e1ca: f6 c6 f0 test $0xf0,%dh + 43e1cd: 74 c3 je 43e192 + 43e1cf: 0f b6 c2 movzbl %dl,%eax + 43e1d2: 5b pop %rbx + 43e1d3: c3 retq + 43e1d4: 0f 1f 40 00 nopl 0x0(%rax) + 43e1d8: 89 c8 mov %ecx,%eax + 43e1da: c1 e8 0e shr $0xe,%eax + 43e1dd: 25 00 fc 03 00 and $0x3fc00,%eax + 43e1e2: 5b pop %rbx + 43e1e3: c3 retq + 43e1e4: 0f 1f 40 00 nopl 0x0(%rax) + 43e1e8: c1 e9 10 shr $0x10,%ecx + 43e1eb: 0f b6 c1 movzbl %cl,%eax + 43e1ee: 3d ff 00 00 00 cmp $0xff,%eax + 43e1f3: 75 9d jne 43e192 + 43e1f5: 8d 04 8d 00 00 00 00 lea 0x0(,%rcx,4),%eax + 43e1fc: 5b pop %rbx + 43e1fd: 25 00 fc 03 00 and $0x3fc00,%eax + 43e202: c3 retq + 43e203: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43e208: 89 ca mov %ecx,%edx + 43e20a: c1 ea 0c shr $0xc,%edx + 43e20d: 83 e2 0f and $0xf,%edx + 43e210: ff 24 d5 48 3c 4a 00 jmpq *0x4a3c48(,%rdx,8) + 43e217: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43e21e: 00 00 + 43e220: 31 c0 xor %eax,%eax + 43e222: f6 c6 f0 test $0xf0,%dh + 43e225: 0f 84 67 ff ff ff je 43e192 + 43e22b: 48 8d 04 12 lea (%rdx,%rdx,1),%rax + 43e22f: 5b pop %rbx + 43e230: 25 00 00 f8 7f and $0x7ff80000,%eax + 43e235: c3 retq + 43e236: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43e23d: 00 00 00 + 43e240: 89 d0 mov %edx,%eax + 43e242: c1 e8 0c shr $0xc,%eax + 43e245: 83 e0 0f and $0xf,%eax + 43e248: ff 24 c5 c8 3c 4a 00 jmpq *0x4a3cc8(,%rax,8) + 43e24f: b8 08 00 00 00 mov $0x8,%eax + 43e254: 5b pop %rbx + 43e255: c3 retq + 43e256: b8 80 00 00 00 mov $0x80,%eax + 43e25b: 5b pop %rbx + 43e25c: c3 retq + 43e25d: b8 60 00 00 00 mov $0x60,%eax + 43e262: 5b pop %rbx + 43e263: c3 retq + 43e264: b8 40 00 00 00 mov $0x40,%eax + 43e269: 5b pop %rbx + 43e26a: c3 retq + 43e26b: b8 30 00 00 00 mov $0x30,%eax + 43e270: 5b pop %rbx + 43e271: c3 retq + 43e272: b8 20 00 00 00 mov $0x20,%eax + 43e277: 5b pop %rbx + 43e278: c3 retq + 43e279: b8 10 00 00 00 mov $0x10,%eax + 43e27e: 5b pop %rbx + 43e27f: c3 retq + 43e280: 89 ca mov %ecx,%edx + 43e282: 0f b6 c9 movzbl %cl,%ecx + 43e285: c1 ea 06 shr $0x6,%edx + 43e288: 89 d0 mov %edx,%eax + 43e28a: 31 d2 xor %edx,%edx + 43e28c: 25 00 fc ff 03 and $0x3fffc00,%eax + 43e291: f7 f1 div %ecx + 43e293: 5b pop %rbx + 43e294: 89 c0 mov %eax,%eax + 43e296: c3 retq + 43e297: 48 89 d0 mov %rdx,%rax + 43e29a: 5b pop %rbx + 43e29b: c3 retq + 43e29c: 89 d0 mov %edx,%eax + 43e29e: 0f b6 ca movzbl %dl,%ecx + 43e2a1: 31 d2 xor %edx,%edx + 43e2a3: 25 00 00 fc 3f and $0x3ffc0000,%eax + 43e2a8: 01 c0 add %eax,%eax + 43e2aa: f7 f1 div %ecx + 43e2ac: 5b pop %rbx + 43e2ad: 89 c0 mov %eax,%eax + 43e2af: c3 retq + 43e2b0: b9 80 3f 4a 00 mov $0x4a3f80,%ecx + 43e2b5: ba b0 01 00 00 mov $0x1b0,%edx + 43e2ba: be b0 3b 4a 00 mov $0x4a3bb0,%esi + 43e2bf: bf da 3b 4a 00 mov $0x4a3bda,%edi + 43e2c4: e8 77 34 fc ff callq 401740 <__assert_fail> + 43e2c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +000000000043e2d0 <__cache_sysconf>: + 43e2d0: 8b 05 aa e3 28 00 mov 0x28e3aa(%rip),%eax # 6cc680 <_dl_x86_cpu_features> + 43e2d6: 83 f8 01 cmp $0x1,%eax + 43e2d9: 74 15 je 43e2f0 <__cache_sysconf+0x20> + 43e2db: 83 f8 02 cmp $0x2,%eax + 43e2de: 74 08 je 43e2e8 <__cache_sysconf+0x18> + 43e2e0: 31 c0 xor %eax,%eax + 43e2e2: c3 retq + 43e2e3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43e2e8: e9 53 fe ff ff jmpq 43e140 + 43e2ed: 0f 1f 00 nopl (%rax) + 43e2f0: 8b 35 8e e3 28 00 mov 0x28e38e(%rip),%esi # 6cc684 <_dl_x86_cpu_features+0x4> + 43e2f6: e9 25 fd ff ff jmpq 43e020 + 43e2fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +000000000043e300 <__strcasecmp_l_nonascii>: + 43e300: 48 39 f7 cmp %rsi,%rdi + 43e303: 74 33 je 43e338 <__strcasecmp_l_nonascii+0x38> + 43e305: 48 8b 52 70 mov 0x70(%rdx),%rdx + 43e309: eb 0e jmp 43e319 <__strcasecmp_l_nonascii+0x19> + 43e30b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43e310: 48 83 c7 01 add $0x1,%rdi + 43e314: 45 84 c0 test %r8b,%r8b + 43e317: 74 1f je 43e338 <__strcasecmp_l_nonascii+0x38> + 43e319: 48 83 c6 01 add $0x1,%rsi + 43e31d: 0f b6 07 movzbl (%rdi),%eax + 43e320: 0f b6 4e ff movzbl -0x1(%rsi),%ecx + 43e324: 49 89 c0 mov %rax,%r8 + 43e327: 8b 04 82 mov (%rdx,%rax,4),%eax + 43e32a: 2b 04 8a sub (%rdx,%rcx,4),%eax + 43e32d: 74 e1 je 43e310 <__strcasecmp_l_nonascii+0x10> + 43e32f: f3 c3 repz retq + 43e331: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43e338: 31 c0 xor %eax,%eax + 43e33a: c3 retq + 43e33b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +000000000043e340 <__wmempcpy>: + 43e340: 48 c1 e2 02 shl $0x2,%rdx + 43e344: e9 77 82 fe ff jmpq 4265c0 <__mempcpy> + 43e349: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +000000000043e350 <_nl_cleanup_ctype>: + 43e350: 53 push %rbx + 43e351: 48 8b 5f 28 mov 0x28(%rdi),%rbx + 43e355: 48 85 db test %rbx,%rbx + 43e358: 74 36 je 43e390 <_nl_cleanup_ctype+0x40> + 43e35a: 48 c7 47 28 00 00 00 movq $0x0,0x28(%rdi) + 43e361: 00 + 43e362: 48 c7 47 20 00 00 00 movq $0x0,0x20(%rdi) + 43e369: 00 + 43e36a: 48 8b 73 18 mov 0x18(%rbx),%rsi + 43e36e: 48 8b 7b 10 mov 0x10(%rbx),%rdi + 43e372: e8 79 75 00 00 callq 4458f0 <__gconv_close_transform> + 43e377: 48 8b 3b mov (%rbx),%rdi + 43e37a: 48 8b 73 08 mov 0x8(%rbx),%rsi + 43e37e: e8 6d 75 00 00 callq 4458f0 <__gconv_close_transform> + 43e383: 48 89 df mov %rbx,%rdi + 43e386: 5b pop %rbx + 43e387: e9 24 fa fd ff jmpq 41ddb0 <__cfree> + 43e38c: 0f 1f 40 00 nopl 0x0(%rax) + 43e390: 5b pop %rbx + 43e391: c3 retq + 43e392: 0f 1f 40 00 nopl 0x0(%rax) + 43e396: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43e39d: 00 00 00 + +000000000043e3a0 <__wcsmbs_getfct>: + 43e3a0: 53 push %rbx + 43e3a1: 48 89 d3 mov %rdx,%rbx + 43e3a4: 45 31 c0 xor %r8d,%r8d + 43e3a7: 48 83 ec 10 sub $0x10,%rsp + 43e3ab: 48 8d 54 24 08 lea 0x8(%rsp),%rdx + 43e3b0: 48 89 e1 mov %rsp,%rcx + 43e3b3: e8 58 72 00 00 callq 445610 <__gconv_find_transform> + 43e3b8: 85 c0 test %eax,%eax + 43e3ba: 75 34 jne 43e3f0 <__wcsmbs_getfct+0x50> + 43e3bc: 48 8b 34 24 mov (%rsp),%rsi + 43e3c0: 48 83 fe 01 cmp $0x1,%rsi + 43e3c4: 76 1a jbe 43e3e0 <__wcsmbs_getfct+0x40> + 43e3c6: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi + 43e3cb: e8 20 75 00 00 callq 4458f0 <__gconv_close_transform> + 43e3d0: 48 83 c4 10 add $0x10,%rsp + 43e3d4: 31 c0 xor %eax,%eax + 43e3d6: 5b pop %rbx + 43e3d7: c3 retq + 43e3d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43e3df: 00 + 43e3e0: 48 89 33 mov %rsi,(%rbx) + 43e3e3: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 43e3e8: 48 83 c4 10 add $0x10,%rsp + 43e3ec: 5b pop %rbx + 43e3ed: c3 retq + 43e3ee: 66 90 xchg %ax,%ax + 43e3f0: 48 83 c4 10 add $0x10,%rsp + 43e3f4: 31 c0 xor %eax,%eax + 43e3f6: 5b pop %rbx + 43e3f7: c3 retq + 43e3f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43e3ff: 00 + +000000000043e400 <__wcsmbs_load_conv>: + 43e400: 55 push %rbp + 43e401: b8 00 00 00 00 mov $0x0,%eax + 43e406: 48 89 e5 mov %rsp,%rbp + 43e409: 41 55 push %r13 + 43e40b: 41 54 push %r12 + 43e40d: 53 push %rbx + 43e40e: 48 89 fb mov %rdi,%rbx + 43e411: 48 83 ec 18 sub $0x18,%rsp + 43e415: 48 85 c0 test %rax,%rax + 43e418: 74 07 je 43e421 <__wcsmbs_load_conv+0x21> + 43e41a: bf 20 c7 6c 00 mov $0x6cc720,%edi + 43e41f: ff d0 callq *%rax + 43e421: 48 83 7b 28 00 cmpq $0x0,0x28(%rbx) + 43e426: 74 20 je 43e448 <__wcsmbs_load_conv+0x48> + 43e428: b8 00 00 00 00 mov $0x0,%eax + 43e42d: 48 85 c0 test %rax,%rax + 43e430: 74 07 je 43e439 <__wcsmbs_load_conv+0x39> + 43e432: bf 20 c7 6c 00 mov $0x6cc720,%edi + 43e437: ff d0 callq *%rax + 43e439: 48 8d 65 e8 lea -0x18(%rbp),%rsp + 43e43d: 5b pop %rbx + 43e43e: 41 5c pop %r12 + 43e440: 41 5d pop %r13 + 43e442: 5d pop %rbp + 43e443: c3 retq + 43e444: 0f 1f 40 00 nopl 0x0(%rax) + 43e448: be 20 00 00 00 mov $0x20,%esi + 43e44d: bf 01 00 00 00 mov $0x1,%edi + 43e452: e8 69 01 fe ff callq 41e5c0 <__calloc> + 43e457: 48 85 c0 test %rax,%rax + 43e45a: 49 89 c4 mov %rax,%r12 + 43e45d: 0f 84 5d 01 00 00 je 43e5c0 <__wcsmbs_load_conv+0x1c0> + 43e463: 8b 73 34 mov 0x34(%rbx),%esi + 43e466: 4c 8b 83 b0 00 00 00 mov 0xb0(%rbx),%r8 + 43e46d: 83 fe 01 cmp $0x1,%esi + 43e470: 4c 89 c0 mov %r8,%rax + 43e473: 48 19 ff sbb %rdi,%rdi + 43e476: 48 83 e7 f8 and $0xfffffffffffffff8,%rdi + 43e47a: 48 83 c7 0b add $0xb,%rdi + 43e47e: 83 fe 01 cmp $0x1,%esi + 43e481: 48 19 d2 sbb %rdx,%rdx + 43e484: 45 31 c9 xor %r9d,%r9d + 43e487: 48 f7 d2 not %rdx + 43e48a: 83 e2 08 and $0x8,%edx + 43e48d: eb 11 jmp 43e4a0 <__wcsmbs_load_conv+0xa0> + 43e48f: 90 nop + 43e490: 48 83 c0 01 add $0x1,%rax + 43e494: 80 f9 2f cmp $0x2f,%cl + 43e497: 0f 94 c1 sete %cl + 43e49a: 0f b6 c9 movzbl %cl,%ecx + 43e49d: 49 01 c9 add %rcx,%r9 + 43e4a0: 0f b6 08 movzbl (%rax),%ecx + 43e4a3: 84 c9 test %cl,%cl + 43e4a5: 75 e9 jne 43e490 <__wcsmbs_load_conv+0x90> + 43e4a7: 4c 29 c0 sub %r8,%rax + 43e4aa: 49 0f be 08 movsbq (%r8),%rcx + 43e4ae: 48 8d 44 07 1e lea 0x1e(%rdi,%rax,1),%rax + 43e4b3: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 43e4b7: 48 29 c4 sub %rax,%rsp + 43e4ba: 4c 8d 6c 24 0f lea 0xf(%rsp),%r13 + 43e4bf: 49 83 e5 f0 and $0xfffffffffffffff0,%r13 + 43e4c3: 84 c9 test %cl,%cl + 43e4c5: 0f 84 6c 01 00 00 je 43e637 <__wcsmbs_load_conv+0x237> + 43e4cb: 48 8b 3d 26 42 07 00 mov 0x74226(%rip),%rdi # 4b26f8 <_nl_C_locobj+0x78> + 43e4d2: 4c 89 e8 mov %r13,%rax + 43e4d5: 0f 1f 00 nopl (%rax) + 43e4d8: 8b 0c 8f mov (%rdi,%rcx,4),%ecx + 43e4db: 48 83 c0 01 add $0x1,%rax + 43e4df: 49 83 c0 01 add $0x1,%r8 + 43e4e3: 88 48 ff mov %cl,-0x1(%rax) + 43e4e6: 49 0f be 08 movsbq (%r8),%rcx + 43e4ea: 84 c9 test %cl,%cl + 43e4ec: 75 ea jne 43e4d8 <__wcsmbs_load_conv+0xd8> + 43e4ee: 49 83 f9 01 cmp $0x1,%r9 + 43e4f2: 0f 86 d8 00 00 00 jbe 43e5d0 <__wcsmbs_load_conv+0x1d0> + 43e4f8: 48 8d 4d d0 lea -0x30(%rbp),%rcx + 43e4fc: 48 8d 55 d8 lea -0x28(%rbp),%rdx + 43e500: 45 31 c0 xor %r8d,%r8d + 43e503: c6 00 00 movb $0x0,(%rax) + 43e506: 4c 89 ee mov %r13,%rsi + 43e509: bf 6d 52 4a 00 mov $0x4a526d,%edi + 43e50e: e8 fd 70 00 00 callq 445610 <__gconv_find_transform> + 43e513: 85 c0 test %eax,%eax + 43e515: 0f 85 06 01 00 00 jne 43e621 <__wcsmbs_load_conv+0x221> + 43e51b: 48 8b 75 d0 mov -0x30(%rbp),%rsi + 43e51f: 48 83 fe 01 cmp $0x1,%rsi + 43e523: 76 2b jbe 43e550 <__wcsmbs_load_conv+0x150> + 43e525: 48 8b 7d d8 mov -0x28(%rbp),%rdi + 43e529: e8 c2 73 00 00 callq 4458f0 <__gconv_close_transform> + 43e52e: 49 83 7c 24 10 00 cmpq $0x0,0x10(%r12) + 43e534: 49 c7 04 24 00 00 00 movq $0x0,(%r12) + 43e53b: 00 + 43e53c: 74 7a je 43e5b8 <__wcsmbs_load_conv+0x1b8> + 43e53e: 4c 89 63 28 mov %r12,0x28(%rbx) + 43e542: 48 c7 43 20 50 e3 43 movq $0x43e350,0x20(%rbx) + 43e549: 00 + 43e54a: e9 d9 fe ff ff jmpq 43e428 <__wcsmbs_load_conv+0x28> + 43e54f: 90 nop + 43e550: 48 8b 45 d8 mov -0x28(%rbp),%rax + 43e554: 49 89 74 24 08 mov %rsi,0x8(%r12) + 43e559: 48 85 c0 test %rax,%rax + 43e55c: 49 89 04 24 mov %rax,(%r12) + 43e560: 0f 84 c3 00 00 00 je 43e629 <__wcsmbs_load_conv+0x229> + 43e566: 48 8d 4d d0 lea -0x30(%rbp),%rcx + 43e56a: 48 8d 55 d8 lea -0x28(%rbp),%rdx + 43e56e: 45 31 c0 xor %r8d,%r8d + 43e571: be 6d 52 4a 00 mov $0x4a526d,%esi + 43e576: 4c 89 ef mov %r13,%rdi + 43e579: e8 92 70 00 00 callq 445610 <__gconv_find_transform> + 43e57e: 85 c0 test %eax,%eax + 43e580: 0f 85 b9 00 00 00 jne 43e63f <__wcsmbs_load_conv+0x23f> + 43e586: 48 8b 75 d0 mov -0x30(%rbp),%rsi + 43e58a: 48 83 fe 01 cmp $0x1,%rsi + 43e58e: 76 58 jbe 43e5e8 <__wcsmbs_load_conv+0x1e8> + 43e590: 48 8b 7d d8 mov -0x28(%rbp),%rdi + 43e594: e8 57 73 00 00 callq 4458f0 <__gconv_close_transform> + 43e599: 31 c0 xor %eax,%eax + 43e59b: 48 85 c0 test %rax,%rax + 43e59e: 49 89 44 24 10 mov %rax,0x10(%r12) + 43e5a3: 75 99 jne 43e53e <__wcsmbs_load_conv+0x13e> + 43e5a5: 49 8b 3c 24 mov (%r12),%rdi + 43e5a9: 48 85 ff test %rdi,%rdi + 43e5ac: 74 0a je 43e5b8 <__wcsmbs_load_conv+0x1b8> + 43e5ae: 49 8b 74 24 08 mov 0x8(%r12),%rsi + 43e5b3: e8 38 73 00 00 callq 4458f0 <__gconv_close_transform> + 43e5b8: 4c 89 e7 mov %r12,%rdi + 43e5bb: e8 f0 f7 fd ff callq 41ddb0 <__cfree> + 43e5c0: 48 c7 43 28 c0 3f 4a movq $0x4a3fc0,0x28(%rbx) + 43e5c7: 00 + 43e5c8: e9 5b fe ff ff jmpq 43e428 <__wcsmbs_load_conv+0x28> + 43e5cd: 0f 1f 00 nopl (%rax) + 43e5d0: 4d 85 c9 test %r9,%r9 + 43e5d3: c6 00 2f movb $0x2f,(%rax) + 43e5d6: 74 1b je 43e5f3 <__wcsmbs_load_conv+0x1f3> + 43e5d8: 48 83 c0 01 add $0x1,%rax + 43e5dc: e9 17 ff ff ff jmpq 43e4f8 <__wcsmbs_load_conv+0xf8> + 43e5e1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43e5e8: 49 89 74 24 18 mov %rsi,0x18(%r12) + 43e5ed: 48 8b 45 d8 mov -0x28(%rbp),%rax + 43e5f1: eb a8 jmp 43e59b <__wcsmbs_load_conv+0x19b> + 43e5f3: c6 40 01 2f movb $0x2f,0x1(%rax) + 43e5f7: 48 83 c0 02 add $0x2,%rax + 43e5fb: 48 85 d2 test %rdx,%rdx + 43e5fe: 0f 84 f4 fe ff ff je 43e4f8 <__wcsmbs_load_conv+0xf8> + 43e604: 85 f6 test %esi,%esi + 43e606: b9 25 67 4b 00 mov $0x4b6725,%ecx + 43e60b: be b1 3f 4a 00 mov $0x4a3fb1,%esi + 43e610: 48 0f 44 f1 cmove %rcx,%rsi + 43e614: 48 89 c7 mov %rax,%rdi + 43e617: e8 a4 7f fe ff callq 4265c0 <__mempcpy> + 43e61c: e9 d7 fe ff ff jmpq 43e4f8 <__wcsmbs_load_conv+0xf8> + 43e621: 49 c7 04 24 00 00 00 movq $0x0,(%r12) + 43e628: 00 + 43e629: 49 83 7c 24 10 00 cmpq $0x0,0x10(%r12) + 43e62f: 0f 85 09 ff ff ff jne 43e53e <__wcsmbs_load_conv+0x13e> + 43e635: eb 81 jmp 43e5b8 <__wcsmbs_load_conv+0x1b8> + 43e637: 4c 89 e8 mov %r13,%rax + 43e63a: e9 af fe ff ff jmpq 43e4ee <__wcsmbs_load_conv+0xee> + 43e63f: 31 c0 xor %eax,%eax + 43e641: e9 55 ff ff ff jmpq 43e59b <__wcsmbs_load_conv+0x19b> + 43e646: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43e64d: 00 00 00 + +000000000043e650 <__wcsmbs_clone_conv>: + 43e650: 55 push %rbp + 43e651: 53 push %rbx + 43e652: 48 89 fb mov %rdi,%rbx + 43e655: 48 83 ec 08 sub $0x8,%rsp + 43e659: 48 c7 c0 b0 ff ff ff mov $0xffffffffffffffb0,%rax + 43e660: 64 48 8b 00 mov %fs:(%rax),%rax + 43e664: 48 8b 28 mov (%rax),%rbp + 43e667: 48 8b 45 28 mov 0x28(%rbp),%rax + 43e66b: 48 85 c0 test %rax,%rax + 43e66e: 74 40 je 43e6b0 <__wcsmbs_clone_conv+0x60> + 43e670: 48 8b 10 mov (%rax),%rdx + 43e673: 48 89 13 mov %rdx,(%rbx) + 43e676: 48 8b 48 08 mov 0x8(%rax),%rcx + 43e67a: 48 83 3a 00 cmpq $0x0,(%rdx) + 43e67e: 48 89 4b 08 mov %rcx,0x8(%rbx) + 43e682: 48 8b 48 10 mov 0x10(%rax),%rcx + 43e686: 48 89 4b 10 mov %rcx,0x10(%rbx) + 43e68a: 48 8b 40 18 mov 0x18(%rax),%rax + 43e68e: 48 89 43 18 mov %rax,0x18(%rbx) + 43e692: 74 04 je 43e698 <__wcsmbs_clone_conv+0x48> + 43e694: 83 42 10 01 addl $0x1,0x10(%rdx) + 43e698: 48 8b 43 10 mov 0x10(%rbx),%rax + 43e69c: 48 83 38 00 cmpq $0x0,(%rax) + 43e6a0: 74 04 je 43e6a6 <__wcsmbs_clone_conv+0x56> + 43e6a2: 83 40 10 01 addl $0x1,0x10(%rax) + 43e6a6: 48 83 c4 08 add $0x8,%rsp + 43e6aa: 5b pop %rbx + 43e6ab: 5d pop %rbp + 43e6ac: c3 retq + 43e6ad: 0f 1f 00 nopl (%rax) + 43e6b0: 48 81 fd e0 69 4a 00 cmp $0x4a69e0,%rbp + 43e6b7: b8 c0 3f 4a 00 mov $0x4a3fc0,%eax + 43e6bc: 74 b2 je 43e670 <__wcsmbs_clone_conv+0x20> + 43e6be: 48 89 ef mov %rbp,%rdi + 43e6c1: e8 3a fd ff ff callq 43e400 <__wcsmbs_load_conv> + 43e6c6: 48 8b 45 28 mov 0x28(%rbp),%rax + 43e6ca: eb a4 jmp 43e670 <__wcsmbs_clone_conv+0x20> + 43e6cc: 0f 1f 40 00 nopl 0x0(%rax) + +000000000043e6d0 <__wcsmbs_named_conv>: + 43e6d0: 55 push %rbp + 43e6d1: 53 push %rbx + 43e6d2: 45 31 c0 xor %r8d,%r8d + 43e6d5: 48 89 fb mov %rdi,%rbx + 43e6d8: bf 6d 52 4a 00 mov $0x4a526d,%edi + 43e6dd: 48 89 f5 mov %rsi,%rbp + 43e6e0: 48 83 ec 18 sub $0x18,%rsp + 43e6e4: 48 8d 54 24 08 lea 0x8(%rsp),%rdx + 43e6e9: 48 89 e1 mov %rsp,%rcx + 43e6ec: e8 1f 6f 00 00 callq 445610 <__gconv_find_transform> + 43e6f1: 85 c0 test %eax,%eax + 43e6f3: 0f 85 a7 00 00 00 jne 43e7a0 <__wcsmbs_named_conv+0xd0> + 43e6f9: 48 8b 34 24 mov (%rsp),%rsi + 43e6fd: 48 83 fe 01 cmp $0x1,%rsi + 43e701: 76 1d jbe 43e720 <__wcsmbs_named_conv+0x50> + 43e703: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi + 43e708: e8 e3 71 00 00 callq 4458f0 <__gconv_close_transform> + 43e70d: 48 c7 03 00 00 00 00 movq $0x0,(%rbx) + 43e714: b8 01 00 00 00 mov $0x1,%eax + 43e719: 48 83 c4 18 add $0x18,%rsp + 43e71d: 5b pop %rbx + 43e71e: 5d pop %rbp + 43e71f: c3 retq + 43e720: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 43e725: 48 89 73 08 mov %rsi,0x8(%rbx) + 43e729: 48 85 c0 test %rax,%rax + 43e72c: 48 89 03 mov %rax,(%rbx) + 43e72f: 74 76 je 43e7a7 <__wcsmbs_named_conv+0xd7> + 43e731: 48 8d 54 24 08 lea 0x8(%rsp),%rdx + 43e736: 45 31 c0 xor %r8d,%r8d + 43e739: 48 89 e1 mov %rsp,%rcx + 43e73c: be 6d 52 4a 00 mov $0x4a526d,%esi + 43e741: 48 89 ef mov %rbp,%rdi + 43e744: e8 c7 6e 00 00 callq 445610 <__gconv_find_transform> + 43e749: 85 c0 test %eax,%eax + 43e74b: 75 6b jne 43e7b8 <__wcsmbs_named_conv+0xe8> + 43e74d: 48 8b 34 24 mov (%rsp),%rsi + 43e751: 48 83 fe 01 cmp $0x1,%rsi + 43e755: 76 29 jbe 43e780 <__wcsmbs_named_conv+0xb0> + 43e757: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi + 43e75c: e8 8f 71 00 00 callq 4458f0 <__gconv_close_transform> + 43e761: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) + 43e768: 00 + 43e769: 48 8b 73 08 mov 0x8(%rbx),%rsi + 43e76d: 48 8b 3b mov (%rbx),%rdi + 43e770: e8 7b 71 00 00 callq 4458f0 <__gconv_close_transform> + 43e775: b8 01 00 00 00 mov $0x1,%eax + 43e77a: eb 9d jmp 43e719 <__wcsmbs_named_conv+0x49> + 43e77c: 0f 1f 40 00 nopl 0x0(%rax) + 43e780: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 43e785: 48 89 73 18 mov %rsi,0x18(%rbx) + 43e789: 48 85 d2 test %rdx,%rdx + 43e78c: 48 89 53 10 mov %rdx,0x10(%rbx) + 43e790: 74 d7 je 43e769 <__wcsmbs_named_conv+0x99> + 43e792: 48 83 c4 18 add $0x18,%rsp + 43e796: 5b pop %rbx + 43e797: 5d pop %rbp + 43e798: c3 retq + 43e799: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43e7a0: 48 c7 03 00 00 00 00 movq $0x0,(%rbx) + 43e7a7: 48 83 c4 18 add $0x18,%rsp + 43e7ab: b8 01 00 00 00 mov $0x1,%eax + 43e7b0: 5b pop %rbx + 43e7b1: 5d pop %rbp + 43e7b2: c3 retq + 43e7b3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43e7b8: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) + 43e7bf: 00 + 43e7c0: eb a7 jmp 43e769 <__wcsmbs_named_conv+0x99> + 43e7c2: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43e7c9: 00 00 00 + 43e7cc: 0f 1f 40 00 nopl 0x0(%rax) + +000000000043e7d0 <_exit>: + 43e7d0: 48 63 d7 movslq %edi,%rdx + 43e7d3: 49 c7 c1 d0 ff ff ff mov $0xffffffffffffffd0,%r9 + 43e7da: 41 b8 e7 00 00 00 mov $0xe7,%r8d + 43e7e0: be 3c 00 00 00 mov $0x3c,%esi + 43e7e5: eb 19 jmp 43e800 <_exit+0x30> + 43e7e7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43e7ee: 00 00 + 43e7f0: 48 89 d7 mov %rdx,%rdi + 43e7f3: 89 f0 mov %esi,%eax + 43e7f5: 0f 05 syscall + 43e7f7: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 43e7fd: 77 21 ja 43e820 <_exit+0x50> + 43e7ff: f4 hlt + 43e800: 48 89 d7 mov %rdx,%rdi + 43e803: 44 89 c0 mov %r8d,%eax + 43e806: 0f 05 syscall + 43e808: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 43e80e: 76 e0 jbe 43e7f0 <_exit+0x20> + 43e810: f7 d8 neg %eax + 43e812: 64 41 89 01 mov %eax,%fs:(%r9) + 43e816: eb d8 jmp 43e7f0 <_exit+0x20> + 43e818: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43e81f: 00 + 43e820: f7 d8 neg %eax + 43e822: 64 41 89 01 mov %eax,%fs:(%r9) + 43e826: eb d7 jmp 43e7ff <_exit+0x2f> + 43e828: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43e82f: 00 + +000000000043e830 <__sysconf_check_spec>: + 43e830: 55 push %rbp + 43e831: 48 89 e5 mov %rsp,%rbp + 43e834: 41 57 push %r15 + 43e836: 41 56 push %r14 + 43e838: 41 55 push %r13 + 43e83a: 41 54 push %r12 + 43e83c: 49 89 fd mov %rdi,%r13 + 43e83f: 53 push %rbx + 43e840: bf d9 40 4a 00 mov $0x4a40d9,%edi + 43e845: 48 81 ec 98 00 00 00 sub $0x98,%rsp + 43e84c: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 43e853: 64 44 8b 20 mov %fs:(%rax),%r12d + 43e857: e8 44 31 01 00 callq 4519a0 <__libc_secure_getenv> + 43e85c: 48 85 c0 test %rax,%rax + 43e85f: 0f 84 9b 00 00 00 je 43e900 <__sysconf_check_spec+0xd0> + 43e865: 48 89 c7 mov %rax,%rdi + 43e868: 49 89 c7 mov %rax,%r15 + 43e86b: e8 e0 4d fe ff callq 423650 + 43e870: 48 89 c3 mov %rax,%rbx + 43e873: 4c 89 ef mov %r13,%rdi + 43e876: e8 d5 4d fe ff callq 423650 + 43e87b: 49 89 c6 mov %rax,%r14 + 43e87e: 48 8d 44 03 1a lea 0x1a(%rbx,%rax,1),%rax + 43e883: 48 89 da mov %rbx,%rdx + 43e886: 4c 89 fe mov %r15,%rsi + 43e889: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 43e88d: 48 29 c4 sub %rax,%rsp + 43e890: 48 89 e7 mov %rsp,%rdi + 43e893: e8 28 7d fe ff callq 4265c0 <__mempcpy> + 43e898: ba 36 5f 00 00 mov $0x5f36,%edx + 43e89d: 48 b9 2f 50 4f 53 49 movabs $0x565f5849534f502f,%rcx + 43e8a4: 58 5f 56 + 43e8a7: 48 8d 78 0a lea 0xa(%rax),%rdi + 43e8ab: 66 89 50 08 mov %dx,0x8(%rax) + 43e8af: 49 8d 56 01 lea 0x1(%r14),%rdx + 43e8b3: 48 89 08 mov %rcx,(%rax) + 43e8b6: 4c 89 ee mov %r13,%rsi + 43e8b9: e8 62 d7 fe ff callq 42c020 + 43e8be: 48 8d 95 40 ff ff ff lea -0xc0(%rbp),%rdx + 43e8c5: 48 89 e6 mov %rsp,%rsi + 43e8c8: bf 01 00 00 00 mov $0x1,%edi + 43e8cd: e8 ae 07 00 00 callq 43f080 <__xstat> + 43e8d2: 48 c7 c1 d0 ff ff ff mov $0xffffffffffffffd0,%rcx + 43e8d9: 48 98 cltq + 43e8db: 48 c1 f8 3f sar $0x3f,%rax + 43e8df: 48 83 c8 01 or $0x1,%rax + 43e8e3: 64 44 89 21 mov %r12d,%fs:(%rcx) + 43e8e7: 48 8d 65 d8 lea -0x28(%rbp),%rsp + 43e8eb: 5b pop %rbx + 43e8ec: 41 5c pop %r12 + 43e8ee: 41 5d pop %r13 + 43e8f0: 41 5e pop %r14 + 43e8f2: 41 5f pop %r15 + 43e8f4: 5d pop %rbp + 43e8f5: c3 retq + 43e8f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43e8fd: 00 00 00 + 43e900: bb 10 00 00 00 mov $0x10,%ebx + 43e905: 41 bf c8 40 4a 00 mov $0x4a40c8,%r15d + 43e90b: e9 63 ff ff ff jmpq 43e873 <__sysconf_check_spec+0x43> + +000000000043e910 <__sysconf>: + 43e910: 55 push %rbp + 43e911: 53 push %rbx + 43e912: 89 fb mov %edi,%ebx + 43e914: 8d 83 47 ff ff ff lea -0xb9(%rbx),%eax + 43e91a: 48 83 ec 38 sub $0x38,%rsp + 43e91e: 83 f8 0e cmp $0xe,%eax + 43e921: 0f 86 19 01 00 00 jbe 43ea40 <__sysconf+0x130> + 43e927: 83 fb 22 cmp $0x22,%ebx + 43e92a: 0f 84 80 01 00 00 je 43eab0 <__sysconf+0x1a0> + 43e930: 0f 8f ba 00 00 00 jg 43e9f0 <__sysconf+0xe0> + 43e936: 85 db test %ebx,%ebx + 43e938: 0f 84 12 01 00 00 je 43ea50 <__sysconf+0x140> + 43e93e: 83 fb 03 cmp $0x3,%ebx + 43e941: bf 00 41 4a 00 mov $0x4a4100,%edi + 43e946: 0f 85 8c 00 00 00 jne 43e9d8 <__sysconf+0xc8> + 43e94c: 31 f6 xor %esi,%esi + 43e94e: b8 02 00 00 00 mov $0x2,%eax + 43e953: 0f 05 syscall + 43e955: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 43e95b: 0f 87 b7 06 00 00 ja 43f018 <__sysconf+0x708> + 43e961: 83 f8 ff cmp $0xffffffff,%eax + 43e964: 74 72 je 43e9d8 <__sysconf+0xc8> + 43e966: 48 8d 6c 24 10 lea 0x10(%rsp),%rbp + 43e96b: 4c 63 c0 movslq %eax,%r8 + 43e96e: 45 31 c9 xor %r9d,%r9d + 43e971: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43e978: ba 1f 00 00 00 mov $0x1f,%edx + 43e97d: 48 89 ee mov %rbp,%rsi + 43e980: 4c 89 c7 mov %r8,%rdi + 43e983: 44 89 c8 mov %r9d,%eax + 43e986: 0f 05 syscall + 43e988: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 43e98e: 0f 87 f4 00 00 00 ja 43ea88 <__sysconf+0x178> + 43e994: 48 89 c2 mov %rax,%rdx + 43e997: 4c 89 c7 mov %r8,%rdi + 43e99a: b8 03 00 00 00 mov $0x3,%eax + 43e99f: 0f 05 syscall + 43e9a1: 48 85 d2 test %rdx,%rdx + 43e9a4: 7e 32 jle 43e9d8 <__sysconf+0xc8> + 43e9a6: 48 8d 74 24 08 lea 0x8(%rsp),%rsi + 43e9ab: c6 44 14 10 00 movb $0x0,0x10(%rsp,%rdx,1) + 43e9b0: 48 89 ef mov %rbp,%rdi + 43e9b3: ba 0a 00 00 00 mov $0xa,%edx + 43e9b8: e8 13 30 01 00 callq 4519d0 <__strtol> + 43e9bd: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 43e9c2: 48 39 ea cmp %rbp,%rdx + 43e9c5: 74 11 je 43e9d8 <__sysconf+0xc8> + 43e9c7: 0f b6 12 movzbl (%rdx),%edx + 43e9ca: 84 d2 test %dl,%dl + 43e9cc: 74 61 je 43ea2f <__sysconf+0x11f> + 43e9ce: 80 fa 0a cmp $0xa,%dl + 43e9d1: 74 5c je 43ea2f <__sysconf+0x11f> + 43e9d3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43e9d8: 81 fb f6 00 00 00 cmp $0xf6,%ebx + 43e9de: 0f 87 17 06 00 00 ja 43effb <__sysconf+0x6eb> + 43e9e4: ff 24 dd 38 41 4a 00 jmpq *0x4a4138(,%rbx,8) + 43e9eb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43e9f0: 81 fb 8a 00 00 00 cmp $0x8a,%ebx + 43e9f6: 7c e0 jl 43e9d8 <__sysconf+0xc8> + 43e9f8: 81 fb 8b 00 00 00 cmp $0x8b,%ebx + 43e9fe: b8 69 10 03 00 mov $0x31069,%eax + 43ea03: 7e 2a jle 43ea2f <__sysconf+0x11f> + 43ea05: 81 fb 95 00 00 00 cmp $0x95,%ebx + 43ea0b: 75 cb jne 43e9d8 <__sysconf+0xc8> + 43ea0d: 48 8d 74 24 10 lea 0x10(%rsp),%rsi + 43ea12: bf 01 00 00 00 mov $0x1,%edi + 43ea17: b8 e5 00 00 00 mov $0xe5,%eax + 43ea1c: 0f 05 syscall + 43ea1e: 3d 01 f0 ff ff cmp $0xfffff001,%eax + 43ea23: 48 19 c0 sbb %rax,%rax + 43ea26: 25 6a 10 03 00 and $0x3106a,%eax + 43ea2b: 48 83 e8 01 sub $0x1,%rax + 43ea2f: 48 83 c4 38 add $0x38,%rsp + 43ea33: 5b pop %rbx + 43ea34: 5d pop %rbp + 43ea35: c3 retq + 43ea36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43ea3d: 00 00 00 + 43ea40: 89 df mov %ebx,%edi + 43ea42: e8 89 f8 ff ff callq 43e2d0 <__cache_sysconf> + 43ea47: 48 83 c4 38 add $0x38,%rsp + 43ea4b: 5b pop %rbx + 43ea4c: 5d pop %rbp + 43ea4d: c3 retq + 43ea4e: 66 90 xchg %ax,%ax + 43ea50: 48 8d 74 24 10 lea 0x10(%rsp),%rsi + 43ea55: bf 03 00 00 00 mov $0x3,%edi + 43ea5a: e8 71 10 00 00 callq 43fad0 <__getrlimit> + 43ea5f: 89 c2 mov %eax,%edx + 43ea61: b8 00 00 02 00 mov $0x20000,%eax + 43ea66: 85 d2 test %edx,%edx + 43ea68: 75 c5 jne 43ea2f <__sysconf+0x11f> + 43ea6a: 48 8b 54 24 10 mov 0x10(%rsp),%rdx + 43ea6f: 48 89 d1 mov %rdx,%rcx + 43ea72: 48 c1 e9 02 shr $0x2,%rcx + 43ea76: 48 81 fa 00 00 08 00 cmp $0x80000,%rdx + 43ea7d: 48 0f 43 c1 cmovae %rcx,%rax + 43ea81: eb ac jmp 43ea2f <__sysconf+0x11f> + 43ea83: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43ea88: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 43ea8f: f7 d8 neg %eax + 43ea91: 83 f8 04 cmp $0x4,%eax + 43ea94: 64 89 02 mov %eax,%fs:(%rdx) + 43ea97: 0f 84 db fe ff ff je 43e978 <__sysconf+0x68> + 43ea9d: 48 c7 c2 ff ff ff ff mov $0xffffffffffffffff,%rdx + 43eaa4: e9 ee fe ff ff jmpq 43e997 <__sysconf+0x87> + 43eaa9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43eab0: 48 8d 74 24 10 lea 0x10(%rsp),%rsi + 43eab5: bf 0b 00 00 00 mov $0xb,%edi + 43eaba: e8 11 10 00 00 callq 43fad0 <__getrlimit> + 43eabf: 85 c0 test %eax,%eax + 43eac1: 75 0d jne 43ead0 <__sysconf+0x1c0> + 43eac3: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 43eac8: e9 62 ff ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eacd: 0f 1f 00 nopl (%rax) + 43ead0: bf e5 40 4a 00 mov $0x4a40e5,%edi + 43ead5: e9 72 fe ff ff jmpq 43e94c <__sysconf+0x3c> + 43eada: b8 ff ff ff 7f mov $0x7fffffff,%eax + 43eadf: e9 4b ff ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eae4: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 43eaeb: e9 3f ff ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eaf0: e8 5b 05 00 00 callq 43f050 <__get_child_max> + 43eaf5: e9 35 ff ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eafa: e8 c1 39 00 00 callq 4424c0 <__getclktck> + 43eaff: 48 98 cltq + 43eb01: e9 29 ff ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eb06: b8 00 00 01 00 mov $0x10000,%eax + 43eb0b: e9 1f ff ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eb10: e8 ab 10 00 00 callq 43fbc0 <__getdtablesize> + 43eb15: 48 98 cltq + 43eb17: e9 13 ff ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eb1c: b8 10 00 00 00 mov $0x10,%eax + 43eb21: e9 09 ff ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eb26: e8 b5 90 02 00 callq 467be0 <__tzname_max> + 43eb2b: 48 89 c2 mov %rax,%rdx + 43eb2e: b8 06 00 00 00 mov $0x6,%eax + 43eb33: 48 83 fa 06 cmp $0x6,%rdx + 43eb37: 0f 8e f2 fe ff ff jle 43ea2f <__sysconf+0x11f> + 43eb3d: e8 9e 90 02 00 callq 467be0 <__tzname_max> + 43eb42: e9 e8 fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eb47: b8 01 00 00 00 mov $0x1,%eax + 43eb4c: e9 de fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eb51: b8 01 00 00 00 mov $0x1,%eax + 43eb56: e9 d4 fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eb5b: b8 69 10 03 00 mov $0x31069,%eax + 43eb60: e9 ca fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eb65: b8 69 10 03 00 mov $0x31069,%eax + 43eb6a: e9 c0 fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eb6f: b8 69 10 03 00 mov $0x31069,%eax + 43eb74: e9 b6 fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eb79: b8 69 10 03 00 mov $0x31069,%eax + 43eb7e: e9 ac fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eb83: b8 69 10 03 00 mov $0x31069,%eax + 43eb88: e9 a2 fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eb8d: b8 69 10 03 00 mov $0x31069,%eax + 43eb92: e9 98 fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eb97: b8 69 10 03 00 mov $0x31069,%eax + 43eb9c: e9 8e fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eba1: b8 69 10 03 00 mov $0x31069,%eax + 43eba6: e9 84 fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ebab: b8 69 10 03 00 mov $0x31069,%eax + 43ebb0: e9 7a fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ebb5: b8 69 10 03 00 mov $0x31069,%eax + 43ebba: e9 70 fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ebbf: b8 69 10 03 00 mov $0x31069,%eax + 43ebc4: e9 66 fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ebc9: b8 69 10 03 00 mov $0x31069,%eax + 43ebce: e9 5c fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ebd3: b8 69 10 03 00 mov $0x31069,%eax + 43ebd8: e9 52 fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ebdd: b8 69 10 03 00 mov $0x31069,%eax + 43ebe2: e9 48 fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ebe7: bf 29 41 4a 00 mov $0x4a4129,%edi + 43ebec: e8 3f fc ff ff callq 43e830 <__sysconf_check_spec> + 43ebf1: e9 39 fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ebf6: b8 01 00 00 00 mov $0x1,%eax + 43ebfb: e9 2f fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ec00: b8 14 00 00 00 mov $0x14,%eax + 43ec05: e9 25 fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ec0a: b8 ff ff ff 7f mov $0x7fffffff,%eax + 43ec0f: e9 1b fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ec14: b8 01 00 00 00 mov $0x1,%eax + 43ec19: e9 11 fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ec1e: b8 00 80 00 00 mov $0x8000,%eax + 43ec23: e9 07 fe ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ec28: b8 69 10 03 00 mov $0x31069,%eax + 43ec2d: e9 fd fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ec32: e8 59 0f 00 00 callq 43fb90 <__getpagesize> + 43ec37: 48 98 cltq + 43ec39: e9 f1 fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ec3e: b8 20 00 00 00 mov $0x20,%eax + 43ec43: e9 e7 fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ec48: bf 29 41 4a 00 mov $0x4a4129,%edi + 43ec4d: e8 de fb ff ff callq 43e830 <__sysconf_check_spec> + 43ec52: e9 d8 fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ec57: b8 ff ff ff 7f mov $0x7fffffff,%eax + 43ec5c: e9 ce fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ec61: bf 1d 41 4a 00 mov $0x4a411d,%edi + 43ec66: e8 c5 fb ff ff callq 43e830 <__sysconf_check_spec> + 43ec6b: e9 bf fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ec70: b8 69 10 03 00 mov $0x31069,%eax + 43ec75: e9 b5 fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ec7a: b8 63 00 00 00 mov $0x63,%eax + 43ec7f: e9 ab fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ec84: b8 00 08 00 00 mov $0x800,%eax + 43ec89: e9 a1 fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ec8e: b8 63 00 00 00 mov $0x63,%eax + 43ec93: e9 97 fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ec98: b8 e8 03 00 00 mov $0x3e8,%eax + 43ec9d: e9 8d fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eca2: b8 ff 00 00 00 mov $0xff,%eax + 43eca7: e9 83 fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ecac: b8 20 00 00 00 mov $0x20,%eax + 43ecb1: e9 79 fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ecb6: b8 00 08 00 00 mov $0x800,%eax + 43ecbb: e9 6f fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ecc0: b8 ff 7f 00 00 mov $0x7fff,%eax + 43ecc5: e9 65 fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ecca: b8 00 08 00 00 mov $0x800,%eax + 43eccf: e9 5b fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ecd4: b8 69 10 03 00 mov $0x31069,%eax + 43ecd9: e9 51 fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ecde: b8 69 10 03 00 mov $0x31069,%eax + 43ece3: e9 47 fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ece8: b8 69 10 03 00 mov $0x31069,%eax + 43eced: e9 3d fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ecf2: b8 69 10 03 00 mov $0x31069,%eax + 43ecf7: e9 33 fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ecfc: b8 69 10 03 00 mov $0x31069,%eax + 43ed01: e9 29 fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ed06: b8 69 10 03 00 mov $0x31069,%eax + 43ed0b: e9 1f fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ed10: b8 69 10 03 00 mov $0x31069,%eax + 43ed15: e9 15 fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ed1a: b8 69 10 03 00 mov $0x31069,%eax + 43ed1f: e9 0b fd ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ed24: bf 1d 41 4a 00 mov $0x4a411d,%edi + 43ed29: e8 02 fb ff ff callq 43e830 <__sysconf_check_spec> + 43ed2e: e9 fc fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ed33: b8 01 00 00 00 mov $0x1,%eax + 43ed38: e9 f2 fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ed3d: b8 69 10 03 00 mov $0x31069,%eax + 43ed42: e9 e8 fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ed47: b8 01 00 00 00 mov $0x1,%eax + 43ed4c: e9 de fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ed51: b8 01 00 00 00 mov $0x1,%eax + 43ed56: e9 d4 fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ed5b: b8 40 00 00 00 mov $0x40,%eax + 43ed60: e9 ca fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ed65: b8 00 04 00 00 mov $0x400,%eax + 43ed6a: e9 c0 fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ed6f: b8 69 10 03 00 mov $0x31069,%eax + 43ed74: e9 b6 fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ed79: b8 01 00 00 00 mov $0x1,%eax + 43ed7e: e9 ac fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ed83: bf 29 41 4a 00 mov $0x4a4129,%edi + 43ed88: e8 a3 fa ff ff callq 43e830 <__sysconf_check_spec> + 43ed8d: e9 9d fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ed92: bf 1d 41 4a 00 mov $0x4a411d,%edi + 43ed97: e8 94 fa ff ff callq 43e830 <__sysconf_check_spec> + 43ed9c: e9 8e fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eda1: b8 69 10 03 00 mov $0x31069,%eax + 43eda6: e9 84 fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43edab: b8 01 00 00 00 mov $0x1,%eax + 43edb0: e9 7a fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43edb5: b8 69 10 03 00 mov $0x31069,%eax + 43edba: e9 70 fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43edbf: b8 69 10 03 00 mov $0x31069,%eax + 43edc4: e9 66 fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43edc9: b8 00 04 00 00 mov $0x400,%eax + 43edce: e9 5c fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43edd3: b8 00 04 00 00 mov $0x400,%eax + 43edd8: e9 52 fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eddd: b8 00 01 00 00 mov $0x100,%eax + 43ede2: e9 48 fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ede7: b8 20 00 00 00 mov $0x20,%eax + 43edec: e9 3e fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43edf1: b8 04 00 00 00 mov $0x4,%eax + 43edf6: e9 34 fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43edfb: b8 00 04 00 00 mov $0x400,%eax + 43ee00: e9 2a fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ee05: b8 00 40 00 00 mov $0x4000,%eax + 43ee0a: e9 20 fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ee0f: b8 69 10 03 00 mov $0x31069,%eax + 43ee14: e9 16 fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ee19: b8 69 10 03 00 mov $0x31069,%eax + 43ee1e: e9 0c fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ee23: b8 69 10 03 00 mov $0x31069,%eax + 43ee28: e9 02 fc ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ee2d: b8 69 10 03 00 mov $0x31069,%eax + 43ee32: e9 f8 fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ee37: b8 69 10 03 00 mov $0x31069,%eax + 43ee3c: e9 ee fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ee41: b8 69 10 03 00 mov $0x31069,%eax + 43ee46: e9 e4 fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ee4b: b8 69 10 03 00 mov $0x31069,%eax + 43ee50: e9 da fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ee55: e8 e6 34 00 00 callq 442340 <__get_nprocs_conf> + 43ee5a: 48 98 cltq + 43ee5c: e9 ce fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ee61: e8 da 31 00 00 callq 442040 <__get_nprocs> + 43ee66: 48 98 cltq + 43ee68: e9 c2 fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ee6d: e8 6e 35 00 00 callq 4423e0 <__get_phys_pages> + 43ee72: e9 b8 fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ee77: e8 d4 35 00 00 callq 442450 <__get_avphys_pages> + 43ee7c: e9 ae fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ee81: b8 ff ff ff 7f mov $0x7fffffff,%eax + 43ee86: e9 a4 fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ee8b: b8 00 20 00 00 mov $0x2000,%eax + 43ee90: e9 9a fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ee95: b8 bc 02 00 00 mov $0x2bc,%eax + 43ee9a: e9 90 fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ee9f: b8 04 00 00 00 mov $0x4,%eax + 43eea4: e9 86 fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eea9: b8 01 00 00 00 mov $0x1,%eax + 43eeae: e9 7c fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eeb3: b8 01 00 00 00 mov $0x1,%eax + 43eeb8: e9 72 fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eebd: b8 01 00 00 00 mov $0x1,%eax + 43eec2: e9 68 fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eec7: b8 01 00 00 00 mov $0x1,%eax + 43eecc: e9 5e fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eed1: b8 69 10 03 00 mov $0x31069,%eax + 43eed6: e9 54 fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eedb: b8 69 10 03 00 mov $0x31069,%eax + 43eee0: e9 4a fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eee5: b8 01 00 00 00 mov $0x1,%eax + 43eeea: e9 40 fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eeef: b8 01 00 00 00 mov $0x1,%eax + 43eef4: e9 36 fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eef9: b8 01 00 00 00 mov $0x1,%eax + 43eefe: e9 2c fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ef03: b8 01 00 00 00 mov $0x1,%eax + 43ef08: e9 22 fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ef0d: b8 08 00 00 00 mov $0x8,%eax + 43ef12: e9 18 fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ef17: b8 7f 00 00 00 mov $0x7f,%eax + 43ef1c: e9 0e fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ef21: 48 c7 c0 80 ff ff ff mov $0xffffffffffffff80,%rax + 43ef28: e9 02 fb ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ef2d: b8 ff ff ff 7f mov $0x7fffffff,%eax + 43ef32: e9 f8 fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ef37: 48 c7 c0 00 00 00 80 mov $0xffffffff80000000,%rax + 43ef3e: e9 ec fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ef43: b8 40 00 00 00 mov $0x40,%eax + 43ef48: e9 e2 fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ef4d: b8 20 00 00 00 mov $0x20,%eax + 43ef52: e9 d8 fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ef57: b8 10 00 00 00 mov $0x10,%eax + 43ef5c: e9 ce fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ef61: b8 14 00 00 00 mov $0x14,%eax + 43ef66: e9 c4 fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ef6b: b8 ff 7f 00 00 mov $0x7fff,%eax + 43ef70: e9 ba fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ef75: b8 7f 00 00 00 mov $0x7f,%eax + 43ef7a: e9 b0 fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ef7f: 48 c7 c0 80 ff ff ff mov $0xffffffffffffff80,%rax + 43ef86: e9 a4 fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ef8b: b8 ff 7f 00 00 mov $0x7fff,%eax + 43ef90: e9 9a fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43ef95: 48 c7 c0 00 80 ff ff mov $0xffffffffffff8000,%rax + 43ef9c: e9 8e fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43efa1: b8 ff 00 00 00 mov $0xff,%eax + 43efa6: e9 84 fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43efab: b8 ff ff ff ff mov $0xffffffff,%eax + 43efb0: e9 7a fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43efb5: b8 69 10 03 00 mov $0x31069,%eax + 43efba: e9 70 fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43efbf: b8 ff ff 00 00 mov $0xffff,%eax + 43efc4: e9 66 fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43efc9: b8 00 10 00 00 mov $0x1000,%eax + 43efce: e9 5c fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43efd3: b8 00 08 00 00 mov $0x800,%eax + 43efd8: e9 52 fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43efdd: b8 ff ff ff 7f mov $0x7fffffff,%eax + 43efe2: e9 48 fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43efe7: b8 ff ff ff 7f mov $0x7fffffff,%eax + 43efec: e9 3e fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43eff1: b8 ff ff ff 7f mov $0x7fffffff,%eax + 43eff6: e9 34 fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43effb: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 43f002: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) + 43f009: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 43f010: e9 1a fa ff ff jmpq 43ea2f <__sysconf+0x11f> + 43f015: 0f 1f 00 nopl (%rax) + 43f018: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 43f01f: f7 d8 neg %eax + 43f021: 64 89 02 mov %eax,%fs:(%rdx) + 43f024: e9 af f9 ff ff jmpq 43e9d8 <__sysconf+0xc8> + 43f029: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +000000000043f030 <__sched_yield>: + 43f030: b8 18 00 00 00 mov $0x18,%eax + 43f035: 0f 05 syscall + 43f037: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax + 43f03d: 0f 83 0d 51 00 00 jae 444150 <__syscall_error> + 43f043: c3 retq + 43f044: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43f04b: 00 00 00 + 43f04e: 66 90 xchg %ax,%ax + +000000000043f050 <__get_child_max>: + 43f050: 48 83 ec 18 sub $0x18,%rsp + 43f054: bf 06 00 00 00 mov $0x6,%edi + 43f059: 48 89 e6 mov %rsp,%rsi + 43f05c: e8 6f 0a 00 00 callq 43fad0 <__getrlimit> + 43f061: 85 c0 test %eax,%eax + 43f063: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 43f06a: 48 0f 44 04 24 cmove (%rsp),%rax + 43f06f: 48 83 c4 18 add $0x18,%rsp + 43f073: c3 retq + 43f074: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43f07b: 00 00 00 + 43f07e: 66 90 xchg %ax,%ax + +000000000043f080 <__xstat>: + 43f080: 83 ff 01 cmp $0x1,%edi + 43f083: 48 89 f0 mov %rsi,%rax + 43f086: 77 30 ja 43f0b8 <__xstat+0x38> + 43f088: 48 89 c7 mov %rax,%rdi + 43f08b: 48 89 d6 mov %rdx,%rsi + 43f08e: b8 04 00 00 00 mov $0x4,%eax + 43f093: 0f 05 syscall + 43f095: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 43f09b: 77 03 ja 43f0a0 <__xstat+0x20> + 43f09d: f3 c3 repz retq + 43f09f: 90 nop + 43f0a0: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 43f0a7: f7 d8 neg %eax + 43f0a9: 64 89 02 mov %eax,%fs:(%rdx) + 43f0ac: b8 ff ff ff ff mov $0xffffffff,%eax + 43f0b1: c3 retq + 43f0b2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43f0b8: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 43f0bf: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) + 43f0c6: b8 ff ff ff ff mov $0xffffffff,%eax + 43f0cb: c3 retq + 43f0cc: 0f 1f 40 00 nopl 0x0(%rax) + +000000000043f0d0 <__fxstat>: + 43f0d0: 83 ff 01 cmp $0x1,%edi + 43f0d3: 89 f0 mov %esi,%eax + 43f0d5: 77 31 ja 43f108 <__fxstat+0x38> + 43f0d7: 48 63 f8 movslq %eax,%rdi + 43f0da: 48 89 d6 mov %rdx,%rsi + 43f0dd: b8 05 00 00 00 mov $0x5,%eax + 43f0e2: 0f 05 syscall + 43f0e4: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 43f0ea: 77 04 ja 43f0f0 <__fxstat+0x20> + 43f0ec: f3 c3 repz retq + 43f0ee: 66 90 xchg %ax,%ax + 43f0f0: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 43f0f7: f7 d8 neg %eax + 43f0f9: 64 89 02 mov %eax,%fs:(%rdx) + 43f0fc: b8 ff ff ff ff mov $0xffffffff,%eax + 43f101: c3 retq + 43f102: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43f108: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 43f10f: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) + 43f116: b8 ff ff ff ff mov $0xffffffff,%eax + 43f11b: c3 retq + 43f11c: 0f 1f 40 00 nopl 0x0(%rax) + +000000000043f120 <__libc_open>: + 43f120: 83 3d 95 e0 28 00 00 cmpl $0x0,0x28e095(%rip) # 6cd1bc <__libc_multiple_threads> + 43f127: 75 14 jne 43f13d <__open_nocancel+0x14> + +000000000043f129 <__open_nocancel>: + 43f129: b8 02 00 00 00 mov $0x2,%eax + 43f12e: 0f 05 syscall + 43f130: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax + 43f136: 0f 83 14 50 00 00 jae 444150 <__syscall_error> + 43f13c: c3 retq + 43f13d: 48 83 ec 08 sub $0x8,%rsp + 43f141: e8 da 34 00 00 callq 442620 <__libc_enable_asynccancel> + 43f146: 48 89 04 24 mov %rax,(%rsp) + 43f14a: b8 02 00 00 00 mov $0x2,%eax + 43f14f: 0f 05 syscall + 43f151: 48 8b 3c 24 mov (%rsp),%rdi + 43f155: 48 89 c2 mov %rax,%rdx + 43f158: e8 23 35 00 00 callq 442680 <__libc_disable_asynccancel> + 43f15d: 48 89 d0 mov %rdx,%rax + 43f160: 48 83 c4 08 add $0x8,%rsp + 43f164: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax + 43f16a: 0f 83 e0 4f 00 00 jae 444150 <__syscall_error> + 43f170: c3 retq + 43f171: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43f178: 00 00 00 + 43f17b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +000000000043f180 <__libc_read>: + 43f180: 83 3d 35 e0 28 00 00 cmpl $0x0,0x28e035(%rip) # 6cd1bc <__libc_multiple_threads> + 43f187: 75 14 jne 43f19d <__read_nocancel+0x14> + +000000000043f189 <__read_nocancel>: + 43f189: b8 00 00 00 00 mov $0x0,%eax + 43f18e: 0f 05 syscall + 43f190: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax + 43f196: 0f 83 b4 4f 00 00 jae 444150 <__syscall_error> + 43f19c: c3 retq + 43f19d: 48 83 ec 08 sub $0x8,%rsp + 43f1a1: e8 7a 34 00 00 callq 442620 <__libc_enable_asynccancel> + 43f1a6: 48 89 04 24 mov %rax,(%rsp) + 43f1aa: b8 00 00 00 00 mov $0x0,%eax + 43f1af: 0f 05 syscall + 43f1b1: 48 8b 3c 24 mov (%rsp),%rdi + 43f1b5: 48 89 c2 mov %rax,%rdx + 43f1b8: e8 c3 34 00 00 callq 442680 <__libc_disable_asynccancel> + 43f1bd: 48 89 d0 mov %rdx,%rax + 43f1c0: 48 83 c4 08 add $0x8,%rsp + 43f1c4: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax + 43f1ca: 0f 83 80 4f 00 00 jae 444150 <__syscall_error> + 43f1d0: c3 retq + 43f1d1: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43f1d8: 00 00 00 + 43f1db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +000000000043f1e0 <__libc_write>: + 43f1e0: 83 3d d5 df 28 00 00 cmpl $0x0,0x28dfd5(%rip) # 6cd1bc <__libc_multiple_threads> + 43f1e7: 75 14 jne 43f1fd <__write_nocancel+0x14> + +000000000043f1e9 <__write_nocancel>: + 43f1e9: b8 01 00 00 00 mov $0x1,%eax + 43f1ee: 0f 05 syscall + 43f1f0: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax + 43f1f6: 0f 83 54 4f 00 00 jae 444150 <__syscall_error> + 43f1fc: c3 retq + 43f1fd: 48 83 ec 08 sub $0x8,%rsp + 43f201: e8 1a 34 00 00 callq 442620 <__libc_enable_asynccancel> + 43f206: 48 89 04 24 mov %rax,(%rsp) + 43f20a: b8 01 00 00 00 mov $0x1,%eax + 43f20f: 0f 05 syscall + 43f211: 48 8b 3c 24 mov (%rsp),%rdi + 43f215: 48 89 c2 mov %rax,%rdx + 43f218: e8 63 34 00 00 callq 442680 <__libc_disable_asynccancel> + 43f21d: 48 89 d0 mov %rdx,%rax + 43f220: 48 83 c4 08 add $0x8,%rsp + 43f224: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax + 43f22a: 0f 83 20 4f 00 00 jae 444150 <__syscall_error> + 43f230: c3 retq + 43f231: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43f238: 00 00 00 + 43f23b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +000000000043f240 <__fcntl_nocancel>: + 43f240: 48 8d 44 24 08 lea 0x8(%rsp),%rax + 43f245: 83 fe 09 cmp $0x9,%esi + 43f248: 48 89 54 24 d8 mov %rdx,-0x28(%rsp) + 43f24d: c7 44 24 b0 10 00 00 movl $0x10,-0x50(%rsp) + 43f254: 00 + 43f255: 48 89 44 24 b8 mov %rax,-0x48(%rsp) + 43f25a: 48 8d 44 24 c8 lea -0x38(%rsp),%rax + 43f25f: 48 89 44 24 c0 mov %rax,-0x40(%rsp) + 43f264: 74 1a je 43f280 <__fcntl_nocancel+0x40> + 43f266: 48 63 f6 movslq %esi,%rsi + 43f269: 48 63 ff movslq %edi,%rdi + 43f26c: b8 48 00 00 00 mov $0x48,%eax + 43f271: 0f 05 syscall + 43f273: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 43f279: 77 35 ja 43f2b0 <__fcntl_nocancel+0x70> + 43f27b: f3 c3 repz retq + 43f27d: 0f 1f 00 nopl (%rax) + 43f280: 48 8d 54 24 a8 lea -0x58(%rsp),%rdx + 43f285: be 10 00 00 00 mov $0x10,%esi + 43f28a: 48 63 ff movslq %edi,%rdi + 43f28d: b8 48 00 00 00 mov $0x48,%eax + 43f292: 0f 05 syscall + 43f294: 3d 00 f0 ff ff cmp $0xfffff000,%eax + 43f299: 77 15 ja 43f2b0 <__fcntl_nocancel+0x70> + 43f29b: 8b 44 24 ac mov -0x54(%rsp),%eax + 43f29f: 89 c2 mov %eax,%edx + 43f2a1: f7 da neg %edx + 43f2a3: 83 7c 24 a8 02 cmpl $0x2,-0x58(%rsp) + 43f2a8: 0f 44 c2 cmove %edx,%eax + 43f2ab: c3 retq + 43f2ac: 0f 1f 40 00 nopl 0x0(%rax) + 43f2b0: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 43f2b7: f7 d8 neg %eax + 43f2b9: 64 89 02 mov %eax,%fs:(%rdx) + 43f2bc: b8 ff ff ff ff mov $0xffffffff,%eax + 43f2c1: c3 retq + 43f2c2: 0f 1f 40 00 nopl 0x0(%rax) + 43f2c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43f2cd: 00 00 00 + +000000000043f2d0 <__libc_fcntl>: + 43f2d0: 53 push %rbx + 43f2d1: 48 83 ec 60 sub $0x60,%rsp + 43f2d5: 48 8d 44 24 70 lea 0x70(%rsp),%rax + 43f2da: 48 89 54 24 40 mov %rdx,0x40(%rsp) + 43f2df: c7 44 24 18 10 00 00 movl $0x10,0x18(%rsp) + 43f2e6: 00 + 43f2e7: 48 89 44 24 20 mov %rax,0x20(%rsp) + 43f2ec: 48 8d 44 24 30 lea 0x30(%rsp),%rax + 43f2f1: 48 89 44 24 28 mov %rax,0x28(%rsp) + 43f2f6: 8b 05 c0 de 28 00 mov 0x28dec0(%rip),%eax # 6cd1bc <__libc_multiple_threads> + 43f2fc: 85 c0 test %eax,%eax + 43f2fe: 74 05 je 43f305 <__libc_fcntl+0x35> + 43f300: 83 fe 07 cmp $0x7,%esi + 43f303: 74 73 je 43f378 <__libc_fcntl+0xa8> + 43f305: 83 fe 09 cmp $0x9,%esi + 43f308: 74 1e je 43f328 <__libc_fcntl+0x58> + 43f30a: 48 63 f6 movslq %esi,%rsi + 43f30d: 48 63 ff movslq %edi,%rdi + 43f310: b8 48 00 00 00 mov $0x48,%eax + 43f315: 0f 05 syscall + 43f317: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 43f31d: 77 41 ja 43f360 <__libc_fcntl+0x90> + 43f31f: 48 83 c4 60 add $0x60,%rsp + 43f323: 5b pop %rbx + 43f324: c3 retq + 43f325: 0f 1f 00 nopl (%rax) + 43f328: 48 8d 54 24 10 lea 0x10(%rsp),%rdx + 43f32d: be 10 00 00 00 mov $0x10,%esi + 43f332: 48 63 ff movslq %edi,%rdi + 43f335: b8 48 00 00 00 mov $0x48,%eax + 43f33a: 0f 05 syscall + 43f33c: 3d 00 f0 ff ff cmp $0xfffff000,%eax + 43f341: 77 1d ja 43f360 <__libc_fcntl+0x90> + 43f343: 8b 44 24 14 mov 0x14(%rsp),%eax + 43f347: 89 c2 mov %eax,%edx + 43f349: f7 da neg %edx + 43f34b: 83 7c 24 10 02 cmpl $0x2,0x10(%rsp) + 43f350: 0f 44 c2 cmove %edx,%eax + 43f353: 48 83 c4 60 add $0x60,%rsp + 43f357: 5b pop %rbx + 43f358: c3 retq + 43f359: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43f360: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 43f367: f7 d8 neg %eax + 43f369: 64 89 02 mov %eax,%fs:(%rdx) + 43f36c: b8 ff ff ff ff mov $0xffffffff,%eax + 43f371: eb ac jmp 43f31f <__libc_fcntl+0x4f> + 43f373: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43f378: 89 fb mov %edi,%ebx + 43f37a: 48 89 54 24 08 mov %rdx,0x8(%rsp) + 43f37f: e8 9c 32 00 00 callq 442620 <__libc_enable_asynccancel> + 43f384: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 43f389: 41 89 c0 mov %eax,%r8d + 43f38c: be 07 00 00 00 mov $0x7,%esi + 43f391: 48 63 fb movslq %ebx,%rdi + 43f394: b8 48 00 00 00 mov $0x48,%eax + 43f399: 0f 05 syscall + 43f39b: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 43f3a1: 77 15 ja 43f3b8 <__libc_fcntl+0xe8> + 43f3a3: 44 89 c7 mov %r8d,%edi + 43f3a6: 89 44 24 08 mov %eax,0x8(%rsp) + 43f3aa: e8 d1 32 00 00 callq 442680 <__libc_disable_asynccancel> + 43f3af: 8b 44 24 08 mov 0x8(%rsp),%eax + 43f3b3: e9 67 ff ff ff jmpq 43f31f <__libc_fcntl+0x4f> + 43f3b8: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 43f3bf: f7 d8 neg %eax + 43f3c1: 64 89 02 mov %eax,%fs:(%rdx) + 43f3c4: b8 ff ff ff ff mov $0xffffffff,%eax + 43f3c9: eb d8 jmp 43f3a3 <__libc_fcntl+0xd3> + 43f3cb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +000000000043f3d0 <__getcwd>: + 43f3d0: 41 57 push %r15 + 43f3d2: 41 56 push %r14 + 43f3d4: 49 89 f6 mov %rsi,%r14 + 43f3d7: 41 55 push %r13 + 43f3d9: 41 54 push %r12 + 43f3db: 55 push %rbp + 43f3dc: 53 push %rbx + 43f3dd: 48 89 fb mov %rdi,%rbx + 43f3e0: 48 81 ec f8 00 00 00 sub $0xf8,%rsp + 43f3e7: 48 85 f6 test %rsi,%rsi + 43f3ea: 75 5c jne 43f448 <__getcwd+0x78> + 43f3ec: 48 85 ff test %rdi,%rdi + 43f3ef: 0f 85 2b 04 00 00 jne 43f820 <__getcwd+0x450> + 43f3f5: e8 96 07 00 00 callq 43fb90 <__getpagesize> + 43f3fa: be 00 10 00 00 mov $0x1000,%esi + 43f3ff: 3d 00 10 00 00 cmp $0x1000,%eax + 43f404: 0f 4d f0 cmovge %eax,%esi + 43f407: 48 63 f6 movslq %esi,%rsi + 43f40a: 48 89 f7 mov %rsi,%rdi + 43f40d: 48 89 74 24 10 mov %rsi,0x10(%rsp) + 43f412: e8 f9 e5 fd ff callq 41da10 <__libc_malloc> + 43f417: 48 85 c0 test %rax,%rax + 43f41a: 48 89 44 24 08 mov %rax,0x8(%rsp) + 43f41f: 48 8b 74 24 10 mov 0x10(%rsp),%rsi + 43f424: 75 2c jne 43f452 <__getcwd+0x82> + 43f426: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43f42d: 00 00 00 + 43f430: 31 c0 xor %eax,%eax + 43f432: 48 81 c4 f8 00 00 00 add $0xf8,%rsp + 43f439: 5b pop %rbx + 43f43a: 5d pop %rbp + 43f43b: 41 5c pop %r12 + 43f43d: 41 5d pop %r13 + 43f43f: 41 5e pop %r14 + 43f441: 41 5f pop %r15 + 43f443: c3 retq + 43f444: 0f 1f 40 00 nopl 0x0(%rax) + 43f448: 48 85 ff test %rdi,%rdi + 43f44b: 74 bd je 43f40a <__getcwd+0x3a> + 43f44d: 48 89 7c 24 08 mov %rdi,0x8(%rsp) + 43f452: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi + 43f457: b8 4f 00 00 00 mov $0x4f,%eax + 43f45c: 0f 05 syscall + 43f45e: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 43f464: 0f 87 9d 04 00 00 ja 43f907 <__getcwd+0x537> + 43f46a: 83 f8 00 cmp $0x0,%eax + 43f46d: 0f 8e 3d 04 00 00 jle 43f8b0 <__getcwd+0x4e0> + 43f473: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 43f478: 80 3a 2f cmpb $0x2f,(%rdx) + 43f47b: 0f 84 b7 03 00 00 je 43f838 <__getcwd+0x468> + 43f481: 48 c7 c5 d0 ff ff ff mov $0xffffffffffffffd0,%rbp + 43f488: 48 85 db test %rbx,%rbx + 43f48b: 0f 94 44 24 43 sete 0x43(%rsp) + 43f490: 4d 85 f6 test %r14,%r14 + 43f493: 0f b6 44 24 43 movzbl 0x43(%rsp),%eax + 43f498: 75 08 jne 43f4a2 <__getcwd+0xd2> + 43f49a: 84 c0 test %al,%al + 43f49c: 0f 85 c6 03 00 00 jne 43f868 <__getcwd+0x498> + 43f4a2: 4d 85 f6 test %r14,%r14 + 43f4a5: 0f 84 45 04 00 00 je 43f8f0 <__getcwd+0x520> + 43f4ab: 64 8b 45 00 mov %fs:0x0(%rbp),%eax + 43f4af: 4c 89 74 24 28 mov %r14,0x28(%rsp) + 43f4b4: 89 44 24 44 mov %eax,0x44(%rsp) + 43f4b8: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 43f4bd: 48 89 44 24 20 mov %rax,0x20(%rsp) + 43f4c2: 48 89 c3 mov %rax,%rbx + 43f4c5: 48 03 5c 24 28 add 0x28(%rsp),%rbx + 43f4ca: 48 8d 54 24 60 lea 0x60(%rsp),%rdx + 43f4cf: be f1 48 4a 00 mov $0x4a48f1,%esi + 43f4d4: bf 01 00 00 00 mov $0x1,%edi + 43f4d9: 48 8d 43 ff lea -0x1(%rbx),%rax + 43f4dd: c6 43 ff 00 movb $0x0,-0x1(%rbx) + 43f4e1: 48 89 44 24 38 mov %rax,0x38(%rsp) + 43f4e6: e8 55 b4 02 00 callq 46a940 <__lxstat> + 43f4eb: 85 c0 test %eax,%eax + 43f4ed: 0f 88 23 04 00 00 js 43f916 <__getcwd+0x546> + 43f4f3: 48 8b 44 24 68 mov 0x68(%rsp),%rax + 43f4f8: 48 8d 54 24 60 lea 0x60(%rsp),%rdx + 43f4fd: be ae 48 4b 00 mov $0x4b48ae,%esi + 43f502: bf 01 00 00 00 mov $0x1,%edi + 43f507: 4c 8b 7c 24 60 mov 0x60(%rsp),%r15 + 43f50c: 49 89 c5 mov %rax,%r13 + 43f50f: 48 89 44 24 18 mov %rax,0x18(%rsp) + 43f514: e8 27 b4 02 00 callq 46a940 <__lxstat> + 43f519: 85 c0 test %eax,%eax + 43f51b: 0f 88 f5 03 00 00 js 43f916 <__getcwd+0x546> + 43f521: 48 8b 44 24 60 mov 0x60(%rsp),%rax + 43f526: 48 89 c1 mov %rax,%rcx + 43f529: 48 89 44 24 48 mov %rax,0x48(%rsp) + 43f52e: 48 8b 44 24 68 mov 0x68(%rsp),%rax + 43f533: 48 89 c2 mov %rax,%rdx + 43f536: 48 89 44 24 50 mov %rax,0x50(%rsp) + 43f53b: 49 39 d5 cmp %rdx,%r13 + 43f53e: 75 09 jne 43f549 <__getcwd+0x179> + 43f540: 49 39 cf cmp %rcx,%r15 + 43f543: 0f 84 00 04 00 00 je 43f949 <__getcwd+0x579> + 43f549: ba 00 00 08 00 mov $0x80000,%edx + 43f54e: be f0 48 4a 00 mov $0x4a48f0,%esi + 43f553: 48 c7 c7 9c ff ff ff mov $0xffffffffffffff9c,%rdi + 43f55a: b8 01 01 00 00 mov $0x101,%eax + 43f55f: 0f 05 syscall + 43f561: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 43f567: 0f 87 44 04 00 00 ja 43f9b1 <__getcwd+0x5e1> + 43f56d: 85 c0 test %eax,%eax + 43f56f: 89 44 24 10 mov %eax,0x10(%rsp) + 43f573: 0f 88 19 05 00 00 js 43fa92 <__getcwd+0x6c2> + 43f579: 45 31 e4 xor %r12d,%r12d + 43f57c: 4c 89 74 24 30 mov %r14,0x30(%rsp) + 43f581: 89 c6 mov %eax,%esi + 43f583: 48 8d 54 24 60 lea 0x60(%rsp),%rdx + 43f588: bf 01 00 00 00 mov $0x1,%edi + 43f58d: e8 3e fb ff ff callq 43f0d0 <__fxstat> + 43f592: 85 c0 test %eax,%eax + 43f594: 0f 88 75 04 00 00 js 43fa0f <__getcwd+0x63f> + 43f59a: 4d 85 e4 test %r12,%r12 + 43f59d: 74 10 je 43f5af <__getcwd+0x1df> + 43f59f: 4c 89 e7 mov %r12,%rdi + 43f5a2: e8 09 b0 02 00 callq 46a5b0 <__closedir> + 43f5a7: 85 c0 test %eax,%eax + 43f5a9: 0f 85 50 04 00 00 jne 43f9ff <__getcwd+0x62f> + 43f5af: 48 8b 44 24 68 mov 0x68(%rsp),%rax + 43f5b4: 8b 7c 24 10 mov 0x10(%rsp),%edi + 43f5b8: 4c 8b 74 24 60 mov 0x60(%rsp),%r14 + 43f5bd: 48 89 44 24 58 mov %rax,0x58(%rsp) + 43f5c2: e8 79 b2 02 00 callq 46a840 <__fdopendir> + 43f5c7: 48 85 c0 test %rax,%rax + 43f5ca: 49 89 c4 mov %rax,%r12 + 43f5cd: 75 2d jne 43f5fc <__getcwd+0x22c> + 43f5cf: e9 2b 04 00 00 jmpq 43f9ff <__getcwd+0x62f> + 43f5d4: 0f 1f 40 00 nopl 0x0(%rax) + 43f5d8: f6 40 12 fb testb $0xfb,0x12(%rax) + 43f5dc: 75 24 jne 43f602 <__getcwd+0x232> + 43f5de: 80 78 13 2e cmpb $0x2e,0x13(%rax) + 43f5e2: 0f 84 b0 01 00 00 je 43f798 <__getcwd+0x3c8> + 43f5e8: 4d 39 f7 cmp %r14,%r15 + 43f5eb: 75 53 jne 43f640 <__getcwd+0x270> + 43f5ed: 45 84 ed test %r13b,%r13b + 43f5f0: 74 4e je 43f640 <__getcwd+0x270> + 43f5f2: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx + 43f5f7: 48 3b 08 cmp (%rax),%rcx + 43f5fa: 74 44 je 43f640 <__getcwd+0x270> + 43f5fc: 41 bd 01 00 00 00 mov $0x1,%r13d + 43f602: 4c 89 e7 mov %r12,%rdi + 43f605: 64 c7 45 00 00 00 00 movl $0x0,%fs:0x0(%rbp) + 43f60c: 00 + 43f60d: e8 fe af 02 00 callq 46a610 <__readdir> + 43f612: 48 85 c0 test %rax,%rax + 43f615: 75 c1 jne 43f5d8 <__getcwd+0x208> + 43f617: 64 8b 45 00 mov %fs:0x0(%rbp),%eax + 43f61b: 85 c0 test %eax,%eax + 43f61d: 0f 85 82 03 00 00 jne 43f9a5 <__getcwd+0x5d5> + 43f623: 45 84 ed test %r13b,%r13b + 43f626: 0f 84 8c 01 00 00 je 43f7b8 <__getcwd+0x3e8> + 43f62c: 4c 89 e7 mov %r12,%rdi + 43f62f: 45 31 ed xor %r13d,%r13d + 43f632: e8 d9 b0 02 00 callq 46a710 <__rewinddir> + 43f637: eb c9 jmp 43f602 <__getcwd+0x232> + 43f639: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43f640: 48 8d 58 13 lea 0x13(%rax),%rbx + 43f644: 8b 74 24 10 mov 0x10(%rsp),%esi + 43f648: 48 8d 4c 24 60 lea 0x60(%rsp),%rcx + 43f64d: 41 b8 00 01 00 00 mov $0x100,%r8d + 43f653: bf 01 00 00 00 mov $0x1,%edi + 43f658: 48 89 da mov %rbx,%rdx + 43f65b: e8 30 b3 02 00 callq 46a990 <__GI___fxstatat64> + 43f660: 85 c0 test %eax,%eax + 43f662: 78 9e js 43f602 <__getcwd+0x232> + 43f664: 8b 44 24 78 mov 0x78(%rsp),%eax + 43f668: 25 00 f0 00 00 and $0xf000,%eax + 43f66d: 3d 00 40 00 00 cmp $0x4000,%eax + 43f672: 75 8e jne 43f602 <__getcwd+0x232> + 43f674: 4c 3b 7c 24 60 cmp 0x60(%rsp),%r15 + 43f679: 75 87 jne 43f602 <__getcwd+0x232> + 43f67b: 48 8b 44 24 18 mov 0x18(%rsp),%rax + 43f680: 48 3b 44 24 68 cmp 0x68(%rsp),%rax + 43f685: 0f 85 77 ff ff ff jne 43f602 <__getcwd+0x232> + 43f68b: 48 89 df mov %rbx,%rdi + 43f68e: e8 bd 3f fe ff callq 423650 + 43f693: 4c 8b 44 24 38 mov 0x38(%rsp),%r8 + 43f698: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi + 43f69d: 49 89 c7 mov %rax,%r15 + 43f6a0: 49 29 f8 sub %rdi,%r8 + 43f6a3: 4d 39 c7 cmp %r8,%r15 + 43f6a6: 4c 89 44 24 18 mov %r8,0x18(%rsp) + 43f6ab: 72 64 jb 43f711 <__getcwd+0x341> + 43f6ad: 48 83 7c 24 30 00 cmpq $0x0,0x30(%rsp) + 43f6b3: 0f 85 fd 03 00 00 jne 43fab6 <__getcwd+0x6e6> + 43f6b9: 48 8b 44 24 28 mov 0x28(%rsp),%rax + 43f6be: 49 39 c7 cmp %rax,%r15 + 43f6c1: 49 0f 43 c7 cmovae %r15,%rax + 43f6c5: 49 89 c5 mov %rax,%r13 + 43f6c8: 4d 01 ed add %r13,%r13 + 43f6cb: 4c 89 ee mov %r13,%rsi + 43f6ce: e8 9d e8 fd ff callq 41df70 <__libc_realloc> + 43f6d3: 48 85 c0 test %rax,%rax + 43f6d6: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 + 43f6db: 0f 84 c7 03 00 00 je 43faa8 <__getcwd+0x6d8> + 43f6e1: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 43f6e6: 48 03 54 24 28 add 0x28(%rsp),%rdx + 43f6eb: 4c 89 ef mov %r13,%rdi + 43f6ee: 48 2b 54 24 38 sub 0x38(%rsp),%rdx + 43f6f3: 4a 8d 34 00 lea (%rax,%r8,1),%rsi + 43f6f7: 48 89 44 24 08 mov %rax,0x8(%rsp) + 43f6fc: 48 29 d7 sub %rdx,%rdi + 43f6ff: 48 01 c7 add %rax,%rdi + 43f702: e8 19 c9 fe ff callq 42c020 + 43f707: 4c 89 6c 24 28 mov %r13,0x28(%rsp) + 43f70c: 48 89 44 24 38 mov %rax,0x38(%rsp) + 43f711: 48 8b 4c 24 38 mov 0x38(%rsp),%rcx + 43f716: 4c 89 fa mov %r15,%rdx + 43f719: 48 89 de mov %rbx,%rsi + 43f71c: 4c 29 f9 sub %r15,%rcx + 43f71f: 48 89 cf mov %rcx,%rdi + 43f722: e8 f9 c8 fe ff callq 42c020 + 43f727: 4c 39 74 24 48 cmp %r14,0x48(%rsp) + 43f72c: 48 89 c1 mov %rax,%rcx + 43f72f: 48 8d 40 ff lea -0x1(%rax),%rax + 43f733: c6 41 ff 2f movb $0x2f,-0x1(%rcx) + 43f737: 48 89 44 24 38 mov %rax,0x38(%rsp) + 43f73c: 75 10 jne 43f74e <__getcwd+0x37e> + 43f73e: 48 8b 54 24 58 mov 0x58(%rsp),%rdx + 43f743: 48 39 54 24 50 cmp %rdx,0x50(%rsp) + 43f748: 0f 84 dc 01 00 00 je 43f92a <__getcwd+0x55a> + 43f74e: ba 00 00 08 00 mov $0x80000,%edx + 43f753: be f0 48 4a 00 mov $0x4a48f0,%esi + 43f758: 48 63 7c 24 10 movslq 0x10(%rsp),%rdi + 43f75d: b8 01 01 00 00 mov $0x101,%eax + 43f762: 0f 05 syscall + 43f764: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 43f76a: 0f 87 05 03 00 00 ja 43fa75 <__getcwd+0x6a5> + 43f770: 85 c0 test %eax,%eax + 43f772: 89 44 24 10 mov %eax,0x10(%rsp) + 43f776: 0f 88 e8 02 00 00 js 43fa64 <__getcwd+0x694> + 43f77c: 48 8b 44 24 58 mov 0x58(%rsp),%rax + 43f781: 4d 89 f7 mov %r14,%r15 + 43f784: 8b 74 24 10 mov 0x10(%rsp),%esi + 43f788: 48 89 44 24 18 mov %rax,0x18(%rsp) + 43f78d: e9 f1 fd ff ff jmpq 43f583 <__getcwd+0x1b3> + 43f792: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43f798: 80 78 14 00 cmpb $0x0,0x14(%rax) + 43f79c: 0f 84 60 fe ff ff je 43f602 <__getcwd+0x232> + 43f7a2: 66 83 78 14 2e cmpw $0x2e,0x14(%rax) + 43f7a7: 0f 85 3b fe ff ff jne 43f5e8 <__getcwd+0x218> + 43f7ad: e9 50 fe ff ff jmpq 43f602 <__getcwd+0x232> + 43f7b2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 43f7b8: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 + 43f7bd: 64 c7 45 00 02 00 00 movl $0x2,%fs:0x0(%rbp) + 43f7c4: 00 + 43f7c5: bb 02 00 00 00 mov $0x2,%ebx + 43f7ca: 45 31 ed xor %r13d,%r13d + 43f7cd: 4c 89 e7 mov %r12,%rdi + 43f7d0: e8 db ad 02 00 callq 46a5b0 <__closedir> + 43f7d5: 45 84 ed test %r13b,%r13b + 43f7d8: 74 0c je 43f7e6 <__getcwd+0x416> + 43f7da: 48 63 7c 24 10 movslq 0x10(%rsp),%rdi + 43f7df: b8 03 00 00 00 mov $0x3,%eax + 43f7e4: 0f 05 syscall + 43f7e6: 48 83 7c 24 20 00 cmpq $0x0,0x20(%rsp) + 43f7ec: 0f 84 fe 01 00 00 je 43f9f0 <__getcwd+0x620> + 43f7f2: 64 89 5d 00 mov %ebx,%fs:0x0(%rbp) + 43f7f6: 4d 85 f6 test %r14,%r14 + 43f7f9: 0f 84 31 fc ff ff je 43f430 <__getcwd+0x60> + 43f7ff: 80 7c 24 43 00 cmpb $0x0,0x43(%rsp) + 43f804: 0f 84 26 fc ff ff je 43f430 <__getcwd+0x60> + 43f80a: 48 8b 7c 24 20 mov 0x20(%rsp),%rdi + 43f80f: e8 9c e5 fd ff callq 41ddb0 <__cfree> + 43f814: e9 17 fc ff ff jmpq 43f430 <__getcwd+0x60> + 43f819: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43f820: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 43f827: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) + 43f82e: 31 c0 xor %eax,%eax + 43f830: e9 fd fb ff ff jmpq 43f432 <__getcwd+0x62> + 43f835: 0f 1f 00 nopl (%rax) + 43f838: 48 85 db test %rbx,%rbx + 43f83b: 75 13 jne 43f850 <__getcwd+0x480> + 43f83d: 4d 85 f6 test %r14,%r14 + 43f840: 75 0e jne 43f850 <__getcwd+0x480> + 43f842: 48 89 d7 mov %rdx,%rdi + 43f845: 48 63 f0 movslq %eax,%rsi + 43f848: e8 23 e7 fd ff callq 41df70 <__libc_realloc> + 43f84d: 48 89 c3 mov %rax,%rbx + 43f850: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 43f855: 48 85 db test %rbx,%rbx + 43f858: 48 0f 45 c3 cmovne %rbx,%rax + 43f85c: e9 d1 fb ff ff jmpq 43f432 <__getcwd+0x62> + 43f861: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43f868: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi + 43f86d: e8 3e e5 fd ff callq 41ddb0 <__cfree> + 43f872: 64 8b 45 00 mov %fs:0x0(%rbp),%eax + 43f876: bf 01 10 00 00 mov $0x1001,%edi + 43f87b: 89 44 24 44 mov %eax,0x44(%rsp) + 43f87f: e8 8c e1 fd ff callq 41da10 <__libc_malloc> + 43f884: 48 85 c0 test %rax,%rax + 43f887: 48 89 44 24 08 mov %rax,0x8(%rsp) + 43f88c: 0f 84 9e 01 00 00 je 43fa30 <__getcwd+0x660> + 43f892: 48 c7 44 24 28 01 10 movq $0x1001,0x28(%rsp) + 43f899: 00 00 + 43f89b: 48 c7 44 24 20 00 00 movq $0x0,0x20(%rsp) + 43f8a2: 00 00 + 43f8a4: 48 89 c3 mov %rax,%rbx + 43f8a7: e9 19 fc ff ff jmpq 43f4c5 <__getcwd+0xf5> + 43f8ac: 0f 1f 40 00 nopl 0x0(%rax) + 43f8b0: 0f 84 cb fb ff ff je 43f481 <__getcwd+0xb1> + 43f8b6: 48 c7 c5 d0 ff ff ff mov $0xffffffffffffffd0,%rbp + 43f8bd: 64 8b 45 00 mov %fs:0x0(%rbp),%eax + 43f8c1: 83 f8 24 cmp $0x24,%eax + 43f8c4: 0f 84 be fb ff ff je 43f488 <__getcwd+0xb8> + 43f8ca: 83 f8 22 cmp $0x22,%eax + 43f8cd: 0f 84 eb 00 00 00 je 43f9be <__getcwd+0x5ee> + 43f8d3: 48 85 db test %rbx,%rbx + 43f8d6: 0f 85 54 fb ff ff jne 43f430 <__getcwd+0x60> + 43f8dc: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi + 43f8e1: e8 ca e4 fd ff callq 41ddb0 <__cfree> + 43f8e6: 31 c0 xor %eax,%eax + 43f8e8: e9 45 fb ff ff jmpq 43f432 <__getcwd+0x62> + 43f8ed: 0f 1f 00 nopl (%rax) + 43f8f0: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 43f8f5: 64 c7 45 00 16 00 00 movl $0x16,%fs:0x0(%rbp) + 43f8fc: 00 + 43f8fd: 48 89 44 24 20 mov %rax,0x20(%rsp) + 43f902: e9 ef fe ff ff jmpq 43f7f6 <__getcwd+0x426> + 43f907: 48 c7 c5 d0 ff ff ff mov $0xffffffffffffffd0,%rbp + 43f90e: f7 d8 neg %eax + 43f910: 64 89 45 00 mov %eax,%fs:0x0(%rbp) + 43f914: eb ab jmp 43f8c1 <__getcwd+0x4f1> + 43f916: c7 44 24 10 9c ff ff movl $0xffffff9c,0x10(%rsp) + 43f91d: ff + 43f91e: 45 31 ed xor %r13d,%r13d + 43f921: 64 8b 5d 00 mov %fs:0x0(%rbp),%ebx + 43f925: e9 ab fe ff ff jmpq 43f7d5 <__getcwd+0x405> + 43f92a: 4c 89 e7 mov %r12,%rdi + 43f92d: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 + 43f932: e8 79 ac 02 00 callq 46a5b0 <__closedir> + 43f937: 85 c0 test %eax,%eax + 43f939: 0f 85 61 01 00 00 jne 43faa0 <__getcwd+0x6d0> + 43f93f: 48 8b 5c 24 08 mov 0x8(%rsp),%rbx + 43f944: 48 03 5c 24 28 add 0x28(%rsp),%rbx + 43f949: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 43f94e: 48 8b 54 24 28 mov 0x28(%rsp),%rdx + 43f953: 48 8d 44 10 ff lea -0x1(%rax,%rdx,1),%rax + 43f958: 48 3b 44 24 38 cmp 0x38(%rsp),%rax + 43f95d: 0f 84 f2 00 00 00 je 43fa55 <__getcwd+0x685> + 43f963: 48 8b 44 24 38 mov 0x38(%rsp),%rax + 43f968: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi + 43f96d: 48 29 c3 sub %rax,%rbx + 43f970: 48 89 c6 mov %rax,%rsi + 43f973: 48 89 da mov %rbx,%rdx + 43f976: e8 85 09 fc ff callq 400300 <__rela_iplt_end+0x38> + 43f97b: 4d 85 f6 test %r14,%r14 + 43f97e: 0f 84 ba 00 00 00 je 43fa3e <__getcwd+0x66e> + 43f984: 8b 54 24 44 mov 0x44(%rsp),%edx + 43f988: 48 8b 44 24 20 mov 0x20(%rsp),%rax + 43f98d: 64 89 55 00 mov %edx,%fs:0x0(%rbp) + 43f991: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 43f996: 48 85 c0 test %rax,%rax + 43f999: 48 0f 45 d0 cmovne %rax,%rdx + 43f99d: 48 89 d0 mov %rdx,%rax + 43f9a0: e9 8d fa ff ff jmpq 43f432 <__getcwd+0x62> + 43f9a5: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 + 43f9aa: 89 c3 mov %eax,%ebx + 43f9ac: e9 19 fe ff ff jmpq 43f7ca <__getcwd+0x3fa> + 43f9b1: 89 c3 mov %eax,%ebx + 43f9b3: f7 db neg %ebx + 43f9b5: 64 89 5d 00 mov %ebx,%fs:0x0(%rbp) + 43f9b9: e9 28 fe ff ff jmpq 43f7e6 <__getcwd+0x416> + 43f9be: 48 85 db test %rbx,%rbx + 43f9c1: 0f 85 0c ff ff ff jne 43f8d3 <__getcwd+0x503> + 43f9c7: 4d 85 f6 test %r14,%r14 + 43f9ca: 0f 85 03 ff ff ff jne 43f8d3 <__getcwd+0x503> + 43f9d0: b9 50 49 4a 00 mov $0x4a4950,%ecx + 43f9d5: ba 79 00 00 00 mov $0x79,%edx + 43f9da: be f8 48 4a 00 mov $0x4a48f8,%esi + 43f9df: bf 20 49 4a 00 mov $0x4a4920,%edi + 43f9e4: e8 57 1d fc ff callq 401740 <__assert_fail> + 43f9e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 43f9f0: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi + 43f9f5: e8 b6 e3 fd ff callq 41ddb0 <__cfree> + 43f9fa: e9 f3 fd ff ff jmpq 43f7f2 <__getcwd+0x422> + 43f9ff: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 + 43fa04: 41 bd 01 00 00 00 mov $0x1,%r13d + 43fa0a: e9 12 ff ff ff jmpq 43f921 <__getcwd+0x551> + 43fa0f: 4d 85 e4 test %r12,%r12 + 43fa12: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 + 43fa17: 64 8b 5d 00 mov %fs:0x0(%rbp),%ebx + 43fa1b: 0f 84 b9 fd ff ff je 43f7da <__getcwd+0x40a> + 43fa21: 41 bd 01 00 00 00 mov $0x1,%r13d + 43fa27: e9 a1 fd ff ff jmpq 43f7cd <__getcwd+0x3fd> + 43fa2c: 0f 1f 40 00 nopl 0x0(%rax) + 43fa30: 48 c7 44 24 20 00 00 movq $0x0,0x20(%rsp) + 43fa37: 00 00 + 43fa39: e9 b8 fd ff ff jmpq 43f7f6 <__getcwd+0x426> + 43fa3e: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi + 43fa43: 48 89 de mov %rbx,%rsi + 43fa46: e8 25 e5 fd ff callq 41df70 <__libc_realloc> + 43fa4b: 48 89 44 24 20 mov %rax,0x20(%rsp) + 43fa50: e9 2f ff ff ff jmpq 43f984 <__getcwd+0x5b4> + 43fa55: 48 83 6c 24 38 01 subq $0x1,0x38(%rsp) + 43fa5b: c6 40 ff 2f movb $0x2f,-0x1(%rax) + 43fa5f: e9 ff fe ff ff jmpq 43f963 <__getcwd+0x593> + 43fa64: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 + 43fa69: 64 8b 5d 00 mov %fs:0x0(%rbp),%ebx + 43fa6d: 45 31 ed xor %r13d,%r13d + 43fa70: e9 58 fd ff ff jmpq 43f7cd <__getcwd+0x3fd> + 43fa75: 89 c3 mov %eax,%ebx + 43fa77: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 + 43fa7c: c7 44 24 10 ff ff ff movl $0xffffffff,0x10(%rsp) + 43fa83: ff + 43fa84: f7 db neg %ebx + 43fa86: 45 31 ed xor %r13d,%r13d + 43fa89: 64 89 5d 00 mov %ebx,%fs:0x0(%rbp) + 43fa8d: e9 3b fd ff ff jmpq 43f7cd <__getcwd+0x3fd> + 43fa92: 64 8b 5d 00 mov %fs:0x0(%rbp),%ebx + 43fa96: e9 4b fd ff ff jmpq 43f7e6 <__getcwd+0x416> + 43fa9b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43faa0: 45 31 ed xor %r13d,%r13d + 43faa3: e9 79 fe ff ff jmpq 43f921 <__getcwd+0x551> + 43faa8: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 + 43faad: 64 8b 5d 00 mov %fs:0x0(%rbp),%ebx + 43fab1: e9 14 fd ff ff jmpq 43f7ca <__getcwd+0x3fa> + 43fab6: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 + 43fabb: 64 c7 45 00 22 00 00 movl $0x22,%fs:0x0(%rbp) + 43fac2: 00 + 43fac3: bb 22 00 00 00 mov $0x22,%ebx + 43fac8: e9 fd fc ff ff jmpq 43f7ca <__getcwd+0x3fa> + 43facd: 0f 1f 00 nopl (%rax) + +000000000043fad0 <__getrlimit>: + 43fad0: b8 61 00 00 00 mov $0x61,%eax + 43fad5: 0f 05 syscall + 43fad7: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax + 43fadd: 0f 83 6d 46 00 00 jae 444150 <__syscall_error> + 43fae3: c3 retq + 43fae4: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43faeb: 00 00 00 + 43faee: 66 90 xchg %ax,%ax + +000000000043faf0 <__sbrk>: + 43faf0: 55 push %rbp + 43faf1: 53 push %rbx + 43faf2: 48 89 fd mov %rdi,%rbp + 43faf5: 48 83 ec 08 sub $0x8,%rsp + 43faf9: 48 8b 1d 70 ce 28 00 mov 0x28ce70(%rip),%rbx # 6cc970 <__curbrk> + 43fb00: 48 85 db test %rbx,%rbx + 43fb03: 74 43 je 43fb48 <__sbrk+0x58> + 43fb05: 8b 05 f5 bb 28 00 mov 0x28bbf5(%rip),%eax # 6cb700 <__libc_multiple_libcs> + 43fb0b: 85 c0 test %eax,%eax + 43fb0d: 75 39 jne 43fb48 <__sbrk+0x58> + 43fb0f: 48 83 fd 00 cmp $0x0,%rbp + 43fb13: 74 24 je 43fb39 <__sbrk+0x49> + 43fb15: 7e 69 jle 43fb80 <__sbrk+0x90> + 43fb17: 48 89 d8 mov %rbx,%rax + 43fb1a: 48 01 e8 add %rbp,%rax + 43fb1d: 0f 92 c0 setb %al + 43fb20: 84 c0 test %al,%al + 43fb22: 74 3c je 43fb60 <__sbrk+0x70> + 43fb24: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 43fb2b: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) + 43fb32: 48 c7 c3 ff ff ff ff mov $0xffffffffffffffff,%rbx + 43fb39: 48 83 c4 08 add $0x8,%rsp + 43fb3d: 48 89 d8 mov %rbx,%rax + 43fb40: 5b pop %rbx + 43fb41: 5d pop %rbp + 43fb42: c3 retq + 43fb43: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 43fb48: 31 ff xor %edi,%edi + 43fb4a: e8 f1 af 02 00 callq 46ab40 <__brk> + 43fb4f: 85 c0 test %eax,%eax + 43fb51: 48 8b 1d 18 ce 28 00 mov 0x28ce18(%rip),%rbx # 6cc970 <__curbrk> + 43fb58: 79 b5 jns 43fb0f <__sbrk+0x1f> + 43fb5a: eb d6 jmp 43fb32 <__sbrk+0x42> + 43fb5c: 0f 1f 40 00 nopl 0x0(%rax) + 43fb60: 48 8d 3c 2b lea (%rbx,%rbp,1),%rdi + 43fb64: e8 d7 af 02 00 callq 46ab40 <__brk> + 43fb69: 85 c0 test %eax,%eax + 43fb6b: 78 c5 js 43fb32 <__sbrk+0x42> + 43fb6d: 48 83 c4 08 add $0x8,%rsp + 43fb71: 48 89 d8 mov %rbx,%rax + 43fb74: 5b pop %rbx + 43fb75: 5d pop %rbp + 43fb76: c3 retq + 43fb77: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 43fb7e: 00 00 + 43fb80: 48 89 e8 mov %rbp,%rax + 43fb83: 48 f7 d8 neg %rax + 43fb86: 48 39 c3 cmp %rax,%rbx + 43fb89: 0f 92 c0 setb %al + 43fb8c: eb 92 jmp 43fb20 <__sbrk+0x30> + 43fb8e: 66 90 xchg %ax,%ax + +000000000043fb90 <__getpagesize>: + 43fb90: 48 8b 05 e9 b5 28 00 mov 0x28b5e9(%rip),%rax # 6cb180 <_dl_pagesize> + 43fb97: 48 85 c0 test %rax,%rax + 43fb9a: 74 02 je 43fb9e <__getpagesize+0xe> + 43fb9c: f3 c3 repz retq + 43fb9e: 50 push %rax + 43fb9f: b9 90 49 4a 00 mov $0x4a4990,%ecx + 43fba4: ba 1c 00 00 00 mov $0x1c,%edx + 43fba9: be 60 49 4a 00 mov $0x4a4960,%esi + 43fbae: bf 9e 49 4a 00 mov $0x4a499e,%edi + 43fbb3: e8 88 1b fc ff callq 401740 <__assert_fail> + 43fbb8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43fbbf: 00 + +000000000043fbc0 <__getdtablesize>: + 43fbc0: 48 83 ec 18 sub $0x18,%rsp + 43fbc4: bf 07 00 00 00 mov $0x7,%edi + 43fbc9: 48 89 e6 mov %rsp,%rsi + 43fbcc: e8 ff fe ff ff callq 43fad0 <__getrlimit> + 43fbd1: ba 00 01 00 00 mov $0x100,%edx + 43fbd6: 85 c0 test %eax,%eax + 43fbd8: 0f 49 14 24 cmovns (%rsp),%edx + 43fbdc: 48 83 c4 18 add $0x18,%rsp + 43fbe0: 89 d0 mov %edx,%eax + 43fbe2: c3 retq + 43fbe3: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43fbea: 00 00 00 + 43fbed: 0f 1f 00 nopl (%rax) + +000000000043fbf0 <__mmap>: + 43fbf0: 48 85 ff test %rdi,%rdi + 43fbf3: 41 57 push %r15 + 43fbf5: 4d 89 cf mov %r9,%r15 + 43fbf8: 41 56 push %r14 + 43fbfa: 41 89 ce mov %ecx,%r14d + 43fbfd: 41 55 push %r13 + 43fbff: 49 89 f5 mov %rsi,%r13 + 43fc02: 41 54 push %r12 + 43fc04: 49 89 fc mov %rdi,%r12 + 43fc07: 55 push %rbp + 43fc08: 53 push %rbx + 43fc09: 74 35 je 43fc40 <__mmap+0x50> + 43fc0b: 49 63 e8 movslq %r8d,%rbp + 43fc0e: 48 63 da movslq %edx,%rbx + 43fc11: 4d 89 f9 mov %r15,%r9 + 43fc14: 49 89 e8 mov %rbp,%r8 + 43fc17: 4d 63 d6 movslq %r14d,%r10 + 43fc1a: 48 89 da mov %rbx,%rdx + 43fc1d: 4c 89 ee mov %r13,%rsi + 43fc20: 4c 89 e7 mov %r12,%rdi + 43fc23: b8 09 00 00 00 mov $0x9,%eax + 43fc28: 0f 05 syscall + 43fc2a: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 43fc30: 77 4e ja 43fc80 <__mmap+0x90> + 43fc32: 5b pop %rbx + 43fc33: 5d pop %rbp + 43fc34: 41 5c pop %r12 + 43fc36: 41 5d pop %r13 + 43fc38: 41 5e pop %r14 + 43fc3a: 41 5f pop %r15 + 43fc3c: c3 retq + 43fc3d: 0f 1f 00 nopl (%rax) + 43fc40: f6 c2 04 test $0x4,%dl + 43fc43: 74 c6 je 43fc0b <__mmap+0x1b> + 43fc45: f6 05 76 ca 28 00 01 testb $0x1,0x28ca76(%rip) # 6cc6c2 <_dl_x86_cpu_features+0x42> + 43fc4c: 49 63 e8 movslq %r8d,%rbp + 43fc4f: 48 63 da movslq %edx,%rbx + 43fc52: 74 bd je 43fc11 <__mmap+0x21> + 43fc54: 41 89 ca mov %ecx,%r10d + 43fc57: 49 89 e8 mov %rbp,%r8 + 43fc5a: 48 89 da mov %rbx,%rdx + 43fc5d: 41 83 ca 40 or $0x40,%r10d + 43fc61: 31 ff xor %edi,%edi + 43fc63: b8 09 00 00 00 mov $0x9,%eax + 43fc68: 4d 63 d2 movslq %r10d,%r10 + 43fc6b: 0f 05 syscall + 43fc6d: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 43fc73: 77 20 ja 43fc95 <__mmap+0xa5> + 43fc75: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 43fc79: 75 b7 jne 43fc32 <__mmap+0x42> + 43fc7b: eb 94 jmp 43fc11 <__mmap+0x21> + 43fc7d: 0f 1f 00 nopl (%rax) + 43fc80: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 43fc87: f7 d8 neg %eax + 43fc89: 64 89 02 mov %eax,%fs:(%rdx) + 43fc8c: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 43fc93: eb 9d jmp 43fc32 <__mmap+0x42> + 43fc95: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 43fc9c: f7 d8 neg %eax + 43fc9e: 64 89 02 mov %eax,%fs:(%rdx) + 43fca1: e9 6b ff ff ff jmpq 43fc11 <__mmap+0x21> + 43fca6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43fcad: 00 00 00 + +000000000043fcb0 <__munmap>: + 43fcb0: b8 0b 00 00 00 mov $0xb,%eax + 43fcb5: 0f 05 syscall + 43fcb7: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax + 43fcbd: 0f 83 8d 44 00 00 jae 444150 <__syscall_error> + 43fcc3: c3 retq + 43fcc4: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43fccb: 00 00 00 + 43fcce: 66 90 xchg %ax,%ax + +000000000043fcd0 <__mprotect>: + 43fcd0: b8 0a 00 00 00 mov $0xa,%eax + 43fcd5: 0f 05 syscall + 43fcd7: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax + 43fcdd: 0f 83 6d 44 00 00 jae 444150 <__syscall_error> + 43fce3: c3 retq + 43fce4: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43fceb: 00 00 00 + 43fcee: 66 90 xchg %ax,%ax + +000000000043fcf0 <__madvise>: + 43fcf0: b8 1c 00 00 00 mov $0x1c,%eax + 43fcf5: 0f 05 syscall + 43fcf7: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax + 43fcfd: 0f 83 4d 44 00 00 jae 444150 <__syscall_error> + 43fd03: c3 retq + 43fd04: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43fd0b: 00 00 00 + 43fd0e: 66 90 xchg %ax,%ax + +000000000043fd10 : + 43fd10: 41 54 push %r12 + 43fd12: 55 push %rbp + 43fd13: 48 89 f0 mov %rsi,%rax + 43fd16: 53 push %rbx + 43fd17: 48 83 7f 08 00 cmpq $0x0,0x8(%rdi) + 43fd1c: 74 62 je 43fd80 + 43fd1e: 48 89 fb mov %rdi,%rbx + 43fd21: 31 f6 xor %esi,%esi + 43fd23: 41 89 d4 mov %edx,%r12d + 43fd26: 48 89 c5 mov %rax,%rbp + 43fd29: ff d0 callq *%rax + 43fd2b: 48 8b 7b 08 mov 0x8(%rbx),%rdi + 43fd2f: 48 85 ff test %rdi,%rdi + 43fd32: 74 0d je 43fd41 + 43fd34: 41 8d 54 24 01 lea 0x1(%r12),%edx + 43fd39: 48 89 ee mov %rbp,%rsi + 43fd3c: e8 cf ff ff ff callq 43fd10 + 43fd41: 48 89 df mov %rbx,%rdi + 43fd44: 44 89 e2 mov %r12d,%edx + 43fd47: be 01 00 00 00 mov $0x1,%esi + 43fd4c: ff d5 callq *%rbp + 43fd4e: 48 8b 7b 10 mov 0x10(%rbx),%rdi + 43fd52: 48 85 ff test %rdi,%rdi + 43fd55: 74 0d je 43fd64 + 43fd57: 41 8d 54 24 01 lea 0x1(%r12),%edx + 43fd5c: 48 89 ee mov %rbp,%rsi + 43fd5f: e8 ac ff ff ff callq 43fd10 + 43fd64: 44 89 e2 mov %r12d,%edx + 43fd67: 48 89 df mov %rbx,%rdi + 43fd6a: 48 89 e8 mov %rbp,%rax + 43fd6d: 5b pop %rbx + 43fd6e: 5d pop %rbp + 43fd6f: 41 5c pop %r12 + 43fd71: be 02 00 00 00 mov $0x2,%esi + 43fd76: ff e0 jmpq *%rax + 43fd78: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 43fd7f: 00 + 43fd80: 48 83 7f 10 00 cmpq $0x0,0x10(%rdi) + 43fd85: 75 97 jne 43fd1e + 43fd87: 5b pop %rbx + 43fd88: 5d pop %rbp + 43fd89: 41 5c pop %r12 + 43fd8b: be 03 00 00 00 mov $0x3,%esi + 43fd90: ff e0 jmpq *%rax + 43fd92: 0f 1f 40 00 nopl 0x0(%rax) + 43fd96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 43fd9d: 00 00 00 + +000000000043fda0 : + 43fda0: 41 57 push %r15 + 43fda2: 41 56 push %r14 + 43fda4: 41 55 push %r13 + 43fda6: 41 54 push %r12 + 43fda8: 49 89 fc mov %rdi,%r12 + 43fdab: 55 push %rbp + 43fdac: 53 push %rbx + 43fdad: 48 89 f3 mov %rsi,%rbx + 43fdb0: 48 83 ec 18 sub $0x18,%rsp + 43fdb4: 48 8b 6f 08 mov 0x8(%rdi),%rbp + 43fdb8: 48 85 ed test %rbp,%rbp + 43fdbb: 0f 84 0b 02 00 00 je 43ffcc + 43fdc1: 4c 8b 6d 08 mov 0x8(%rbp),%r13 + 43fdc5: 4d 85 ed test %r13,%r13 + 43fdc8: 0f 84 c9 00 00 00 je 43fe97 + 43fdce: 4d 8b 75 08 mov 0x8(%r13),%r14 + 43fdd2: 4d 85 f6 test %r14,%r14 + 43fdd5: 74 2c je 43fe03 + 43fdd7: 49 8b 7e 08 mov 0x8(%r14),%rdi + 43fddb: 48 85 ff test %rdi,%rdi + 43fdde: 74 05 je 43fde5 + 43fde0: e8 bb ff ff ff callq 43fda0 + 43fde5: 49 8b 7e 10 mov 0x10(%r14),%rdi + 43fde9: 48 85 ff test %rdi,%rdi + 43fdec: 74 08 je 43fdf6 + 43fdee: 48 89 de mov %rbx,%rsi + 43fdf1: e8 aa ff ff ff callq 43fda0 + 43fdf6: 49 8b 3e mov (%r14),%rdi + 43fdf9: ff d3 callq *%rbx + 43fdfb: 4c 89 f7 mov %r14,%rdi + 43fdfe: e8 ad df fd ff callq 41ddb0 <__cfree> + 43fe03: 4d 8b 75 10 mov 0x10(%r13),%r14 + 43fe07: 4d 85 f6 test %r14,%r14 + 43fe0a: 74 7d je 43fe89 + 43fe0c: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 43fe10: 4d 85 ff test %r15,%r15 + 43fe13: 74 2f je 43fe44 + 43fe15: 49 8b 7f 08 mov 0x8(%r15),%rdi + 43fe19: 48 85 ff test %rdi,%rdi + 43fe1c: 74 08 je 43fe26 + 43fe1e: 48 89 de mov %rbx,%rsi + 43fe21: e8 7a ff ff ff callq 43fda0 + 43fe26: 49 8b 7f 10 mov 0x10(%r15),%rdi + 43fe2a: 48 85 ff test %rdi,%rdi + 43fe2d: 74 08 je 43fe37 + 43fe2f: 48 89 de mov %rbx,%rsi + 43fe32: e8 69 ff ff ff callq 43fda0 + 43fe37: 49 8b 3f mov (%r15),%rdi + 43fe3a: ff d3 callq *%rbx + 43fe3c: 4c 89 ff mov %r15,%rdi + 43fe3f: e8 6c df fd ff callq 41ddb0 <__cfree> + 43fe44: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 43fe48: 4d 85 ff test %r15,%r15 + 43fe4b: 74 2f je 43fe7c + 43fe4d: 49 8b 7f 08 mov 0x8(%r15),%rdi + 43fe51: 48 85 ff test %rdi,%rdi + 43fe54: 74 08 je 43fe5e + 43fe56: 48 89 de mov %rbx,%rsi + 43fe59: e8 42 ff ff ff callq 43fda0 + 43fe5e: 49 8b 7f 10 mov 0x10(%r15),%rdi + 43fe62: 48 85 ff test %rdi,%rdi + 43fe65: 74 08 je 43fe6f + 43fe67: 48 89 de mov %rbx,%rsi + 43fe6a: e8 31 ff ff ff callq 43fda0 + 43fe6f: 49 8b 3f mov (%r15),%rdi + 43fe72: ff d3 callq *%rbx + 43fe74: 4c 89 ff mov %r15,%rdi + 43fe77: e8 34 df fd ff callq 41ddb0 <__cfree> + 43fe7c: 49 8b 3e mov (%r14),%rdi + 43fe7f: ff d3 callq *%rbx + 43fe81: 4c 89 f7 mov %r14,%rdi + 43fe84: e8 27 df fd ff callq 41ddb0 <__cfree> + 43fe89: 49 8b 7d 00 mov 0x0(%r13),%rdi + 43fe8d: ff d3 callq *%rbx + 43fe8f: 4c 89 ef mov %r13,%rdi + 43fe92: e8 19 df fd ff callq 41ddb0 <__cfree> + 43fe97: 4c 8b 6d 10 mov 0x10(%rbp),%r13 + 43fe9b: 4d 85 ed test %r13,%r13 + 43fe9e: 0f 84 1a 01 00 00 je 43ffbe + 43fea4: 4d 8b 75 08 mov 0x8(%r13),%r14 + 43fea8: 4d 85 f6 test %r14,%r14 + 43feab: 74 7d je 43ff2a + 43fead: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 43feb1: 4d 85 ff test %r15,%r15 + 43feb4: 74 2f je 43fee5 + 43feb6: 49 8b 7f 08 mov 0x8(%r15),%rdi + 43feba: 48 85 ff test %rdi,%rdi + 43febd: 74 08 je 43fec7 + 43febf: 48 89 de mov %rbx,%rsi + 43fec2: e8 d9 fe ff ff callq 43fda0 + 43fec7: 49 8b 7f 10 mov 0x10(%r15),%rdi + 43fecb: 48 85 ff test %rdi,%rdi + 43fece: 74 08 je 43fed8 + 43fed0: 48 89 de mov %rbx,%rsi + 43fed3: e8 c8 fe ff ff callq 43fda0 + 43fed8: 49 8b 3f mov (%r15),%rdi + 43fedb: ff d3 callq *%rbx + 43fedd: 4c 89 ff mov %r15,%rdi + 43fee0: e8 cb de fd ff callq 41ddb0 <__cfree> + 43fee5: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 43fee9: 4d 85 ff test %r15,%r15 + 43feec: 74 2f je 43ff1d + 43feee: 49 8b 7f 08 mov 0x8(%r15),%rdi + 43fef2: 48 85 ff test %rdi,%rdi + 43fef5: 74 08 je 43feff + 43fef7: 48 89 de mov %rbx,%rsi + 43fefa: e8 a1 fe ff ff callq 43fda0 + 43feff: 49 8b 7f 10 mov 0x10(%r15),%rdi + 43ff03: 48 85 ff test %rdi,%rdi + 43ff06: 74 08 je 43ff10 + 43ff08: 48 89 de mov %rbx,%rsi + 43ff0b: e8 90 fe ff ff callq 43fda0 + 43ff10: 49 8b 3f mov (%r15),%rdi + 43ff13: ff d3 callq *%rbx + 43ff15: 4c 89 ff mov %r15,%rdi + 43ff18: e8 93 de fd ff callq 41ddb0 <__cfree> + 43ff1d: 49 8b 3e mov (%r14),%rdi + 43ff20: ff d3 callq *%rbx + 43ff22: 4c 89 f7 mov %r14,%rdi + 43ff25: e8 86 de fd ff callq 41ddb0 <__cfree> + 43ff2a: 4d 8b 75 10 mov 0x10(%r13),%r14 + 43ff2e: 4d 85 f6 test %r14,%r14 + 43ff31: 74 7d je 43ffb0 + 43ff33: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 43ff37: 4d 85 ff test %r15,%r15 + 43ff3a: 74 2f je 43ff6b + 43ff3c: 49 8b 7f 08 mov 0x8(%r15),%rdi + 43ff40: 48 85 ff test %rdi,%rdi + 43ff43: 74 08 je 43ff4d + 43ff45: 48 89 de mov %rbx,%rsi + 43ff48: e8 53 fe ff ff callq 43fda0 + 43ff4d: 49 8b 7f 10 mov 0x10(%r15),%rdi + 43ff51: 48 85 ff test %rdi,%rdi + 43ff54: 74 08 je 43ff5e + 43ff56: 48 89 de mov %rbx,%rsi + 43ff59: e8 42 fe ff ff callq 43fda0 + 43ff5e: 49 8b 3f mov (%r15),%rdi + 43ff61: ff d3 callq *%rbx + 43ff63: 4c 89 ff mov %r15,%rdi + 43ff66: e8 45 de fd ff callq 41ddb0 <__cfree> + 43ff6b: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 43ff6f: 4d 85 ff test %r15,%r15 + 43ff72: 74 2f je 43ffa3 + 43ff74: 49 8b 7f 08 mov 0x8(%r15),%rdi + 43ff78: 48 85 ff test %rdi,%rdi + 43ff7b: 74 08 je 43ff85 + 43ff7d: 48 89 de mov %rbx,%rsi + 43ff80: e8 1b fe ff ff callq 43fda0 + 43ff85: 49 8b 7f 10 mov 0x10(%r15),%rdi + 43ff89: 48 85 ff test %rdi,%rdi + 43ff8c: 74 08 je 43ff96 + 43ff8e: 48 89 de mov %rbx,%rsi + 43ff91: e8 0a fe ff ff callq 43fda0 + 43ff96: 49 8b 3f mov (%r15),%rdi + 43ff99: ff d3 callq *%rbx + 43ff9b: 4c 89 ff mov %r15,%rdi + 43ff9e: e8 0d de fd ff callq 41ddb0 <__cfree> + 43ffa3: 49 8b 3e mov (%r14),%rdi + 43ffa6: ff d3 callq *%rbx + 43ffa8: 4c 89 f7 mov %r14,%rdi + 43ffab: e8 00 de fd ff callq 41ddb0 <__cfree> + 43ffb0: 49 8b 7d 00 mov 0x0(%r13),%rdi + 43ffb4: ff d3 callq *%rbx + 43ffb6: 4c 89 ef mov %r13,%rdi + 43ffb9: e8 f2 dd fd ff callq 41ddb0 <__cfree> + 43ffbe: 48 8b 7d 00 mov 0x0(%rbp),%rdi + 43ffc2: ff d3 callq *%rbx + 43ffc4: 48 89 ef mov %rbp,%rdi + 43ffc7: e8 e4 dd fd ff callq 41ddb0 <__cfree> + 43ffcc: 49 8b 6c 24 10 mov 0x10(%r12),%rbp + 43ffd1: 48 85 ed test %rbp,%rbp + 43ffd4: 0f 84 a5 02 00 00 je 44027f + 43ffda: 4c 8b 6d 08 mov 0x8(%rbp),%r13 + 43ffde: 4d 85 ed test %r13,%r13 + 43ffe1: 0f 84 1a 01 00 00 je 440101 + 43ffe7: 4d 8b 75 08 mov 0x8(%r13),%r14 + 43ffeb: 4d 85 f6 test %r14,%r14 + 43ffee: 74 7d je 44006d + 43fff0: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 43fff4: 4d 85 ff test %r15,%r15 + 43fff7: 74 2f je 440028 + 43fff9: 49 8b 7f 08 mov 0x8(%r15),%rdi + 43fffd: 48 85 ff test %rdi,%rdi + 440000: 74 08 je 44000a + 440002: 48 89 de mov %rbx,%rsi + 440005: e8 96 fd ff ff callq 43fda0 + 44000a: 49 8b 7f 10 mov 0x10(%r15),%rdi + 44000e: 48 85 ff test %rdi,%rdi + 440011: 74 08 je 44001b + 440013: 48 89 de mov %rbx,%rsi + 440016: e8 85 fd ff ff callq 43fda0 + 44001b: 49 8b 3f mov (%r15),%rdi + 44001e: ff d3 callq *%rbx + 440020: 4c 89 ff mov %r15,%rdi + 440023: e8 88 dd fd ff callq 41ddb0 <__cfree> + 440028: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 44002c: 4d 85 ff test %r15,%r15 + 44002f: 74 2f je 440060 + 440031: 49 8b 7f 08 mov 0x8(%r15),%rdi + 440035: 48 85 ff test %rdi,%rdi + 440038: 74 08 je 440042 + 44003a: 48 89 de mov %rbx,%rsi + 44003d: e8 5e fd ff ff callq 43fda0 + 440042: 49 8b 7f 10 mov 0x10(%r15),%rdi + 440046: 48 85 ff test %rdi,%rdi + 440049: 74 08 je 440053 + 44004b: 48 89 de mov %rbx,%rsi + 44004e: e8 4d fd ff ff callq 43fda0 + 440053: 49 8b 3f mov (%r15),%rdi + 440056: ff d3 callq *%rbx + 440058: 4c 89 ff mov %r15,%rdi + 44005b: e8 50 dd fd ff callq 41ddb0 <__cfree> + 440060: 49 8b 3e mov (%r14),%rdi + 440063: ff d3 callq *%rbx + 440065: 4c 89 f7 mov %r14,%rdi + 440068: e8 43 dd fd ff callq 41ddb0 <__cfree> + 44006d: 4d 8b 75 10 mov 0x10(%r13),%r14 + 440071: 4d 85 f6 test %r14,%r14 + 440074: 74 7d je 4400f3 + 440076: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 44007a: 4d 85 ff test %r15,%r15 + 44007d: 74 2f je 4400ae + 44007f: 49 8b 7f 08 mov 0x8(%r15),%rdi + 440083: 48 85 ff test %rdi,%rdi + 440086: 74 08 je 440090 + 440088: 48 89 de mov %rbx,%rsi + 44008b: e8 10 fd ff ff callq 43fda0 + 440090: 49 8b 7f 10 mov 0x10(%r15),%rdi + 440094: 48 85 ff test %rdi,%rdi + 440097: 74 08 je 4400a1 + 440099: 48 89 de mov %rbx,%rsi + 44009c: e8 ff fc ff ff callq 43fda0 + 4400a1: 49 8b 3f mov (%r15),%rdi + 4400a4: ff d3 callq *%rbx + 4400a6: 4c 89 ff mov %r15,%rdi + 4400a9: e8 02 dd fd ff callq 41ddb0 <__cfree> + 4400ae: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 4400b2: 4d 85 ff test %r15,%r15 + 4400b5: 74 2f je 4400e6 + 4400b7: 49 8b 7f 08 mov 0x8(%r15),%rdi + 4400bb: 48 85 ff test %rdi,%rdi + 4400be: 74 08 je 4400c8 + 4400c0: 48 89 de mov %rbx,%rsi + 4400c3: e8 d8 fc ff ff callq 43fda0 + 4400c8: 49 8b 7f 10 mov 0x10(%r15),%rdi + 4400cc: 48 85 ff test %rdi,%rdi + 4400cf: 74 08 je 4400d9 + 4400d1: 48 89 de mov %rbx,%rsi + 4400d4: e8 c7 fc ff ff callq 43fda0 + 4400d9: 49 8b 3f mov (%r15),%rdi + 4400dc: ff d3 callq *%rbx + 4400de: 4c 89 ff mov %r15,%rdi + 4400e1: e8 ca dc fd ff callq 41ddb0 <__cfree> + 4400e6: 49 8b 3e mov (%r14),%rdi + 4400e9: ff d3 callq *%rbx + 4400eb: 4c 89 f7 mov %r14,%rdi + 4400ee: e8 bd dc fd ff callq 41ddb0 <__cfree> + 4400f3: 49 8b 7d 00 mov 0x0(%r13),%rdi + 4400f7: ff d3 callq *%rbx + 4400f9: 4c 89 ef mov %r13,%rdi + 4400fc: e8 af dc fd ff callq 41ddb0 <__cfree> + 440101: 4c 8b 6d 10 mov 0x10(%rbp),%r13 + 440105: 4d 85 ed test %r13,%r13 + 440108: 0f 84 63 01 00 00 je 440271 + 44010e: 4d 8b 75 08 mov 0x8(%r13),%r14 + 440112: 4d 85 f6 test %r14,%r14 + 440115: 74 7d je 440194 + 440117: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 44011b: 4d 85 ff test %r15,%r15 + 44011e: 74 2f je 44014f + 440120: 49 8b 7f 08 mov 0x8(%r15),%rdi + 440124: 48 85 ff test %rdi,%rdi + 440127: 74 08 je 440131 + 440129: 48 89 de mov %rbx,%rsi + 44012c: e8 6f fc ff ff callq 43fda0 + 440131: 49 8b 7f 10 mov 0x10(%r15),%rdi + 440135: 48 85 ff test %rdi,%rdi + 440138: 74 08 je 440142 + 44013a: 48 89 de mov %rbx,%rsi + 44013d: e8 5e fc ff ff callq 43fda0 + 440142: 49 8b 3f mov (%r15),%rdi + 440145: ff d3 callq *%rbx + 440147: 4c 89 ff mov %r15,%rdi + 44014a: e8 61 dc fd ff callq 41ddb0 <__cfree> + 44014f: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 440153: 4d 85 ff test %r15,%r15 + 440156: 74 2f je 440187 + 440158: 49 8b 7f 08 mov 0x8(%r15),%rdi + 44015c: 48 85 ff test %rdi,%rdi + 44015f: 74 08 je 440169 + 440161: 48 89 de mov %rbx,%rsi + 440164: e8 37 fc ff ff callq 43fda0 + 440169: 49 8b 7f 10 mov 0x10(%r15),%rdi + 44016d: 48 85 ff test %rdi,%rdi + 440170: 74 08 je 44017a + 440172: 48 89 de mov %rbx,%rsi + 440175: e8 26 fc ff ff callq 43fda0 + 44017a: 49 8b 3f mov (%r15),%rdi + 44017d: ff d3 callq *%rbx + 44017f: 4c 89 ff mov %r15,%rdi + 440182: e8 29 dc fd ff callq 41ddb0 <__cfree> + 440187: 49 8b 3e mov (%r14),%rdi + 44018a: ff d3 callq *%rbx + 44018c: 4c 89 f7 mov %r14,%rdi + 44018f: e8 1c dc fd ff callq 41ddb0 <__cfree> + 440194: 4d 8b 75 10 mov 0x10(%r13),%r14 + 440198: 4d 85 f6 test %r14,%r14 + 44019b: 0f 84 c2 00 00 00 je 440263 + 4401a1: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 4401a5: 4d 85 ff test %r15,%r15 + 4401a8: 74 2f je 4401d9 + 4401aa: 49 8b 7f 08 mov 0x8(%r15),%rdi + 4401ae: 48 85 ff test %rdi,%rdi + 4401b1: 74 08 je 4401bb + 4401b3: 48 89 de mov %rbx,%rsi + 4401b6: e8 e5 fb ff ff callq 43fda0 + 4401bb: 49 8b 7f 10 mov 0x10(%r15),%rdi + 4401bf: 48 85 ff test %rdi,%rdi + 4401c2: 74 08 je 4401cc + 4401c4: 48 89 de mov %rbx,%rsi + 4401c7: e8 d4 fb ff ff callq 43fda0 + 4401cc: 49 8b 3f mov (%r15),%rdi + 4401cf: ff d3 callq *%rbx + 4401d1: 4c 89 ff mov %r15,%rdi + 4401d4: e8 d7 db fd ff callq 41ddb0 <__cfree> + 4401d9: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 4401dd: 4d 85 ff test %r15,%r15 + 4401e0: 74 74 je 440256 + 4401e2: 49 8b 7f 08 mov 0x8(%r15),%rdi + 4401e6: 48 85 ff test %rdi,%rdi + 4401e9: 74 08 je 4401f3 + 4401eb: 48 89 de mov %rbx,%rsi + 4401ee: e8 ad fb ff ff callq 43fda0 + 4401f3: 49 8b 47 10 mov 0x10(%r15),%rax + 4401f7: 48 85 c0 test %rax,%rax + 4401fa: 74 4d je 440249 + 4401fc: 48 8b 78 08 mov 0x8(%rax),%rdi + 440200: 48 85 ff test %rdi,%rdi + 440203: 74 12 je 440217 + 440205: 48 89 de mov %rbx,%rsi + 440208: 48 89 44 24 08 mov %rax,0x8(%rsp) + 44020d: e8 8e fb ff ff callq 43fda0 + 440212: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 440217: 48 8b 78 10 mov 0x10(%rax),%rdi + 44021b: 48 85 ff test %rdi,%rdi + 44021e: 74 12 je 440232 + 440220: 48 89 de mov %rbx,%rsi + 440223: 48 89 44 24 08 mov %rax,0x8(%rsp) + 440228: e8 73 fb ff ff callq 43fda0 + 44022d: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 440232: 48 8b 38 mov (%rax),%rdi + 440235: 48 89 44 24 08 mov %rax,0x8(%rsp) + 44023a: ff d3 callq *%rbx + 44023c: 48 8b 44 24 08 mov 0x8(%rsp),%rax + 440241: 48 89 c7 mov %rax,%rdi + 440244: e8 67 db fd ff callq 41ddb0 <__cfree> + 440249: 49 8b 3f mov (%r15),%rdi + 44024c: ff d3 callq *%rbx + 44024e: 4c 89 ff mov %r15,%rdi + 440251: e8 5a db fd ff callq 41ddb0 <__cfree> + 440256: 49 8b 3e mov (%r14),%rdi + 440259: ff d3 callq *%rbx + 44025b: 4c 89 f7 mov %r14,%rdi + 44025e: e8 4d db fd ff callq 41ddb0 <__cfree> + 440263: 49 8b 7d 00 mov 0x0(%r13),%rdi + 440267: ff d3 callq *%rbx + 440269: 4c 89 ef mov %r13,%rdi + 44026c: e8 3f db fd ff callq 41ddb0 <__cfree> + 440271: 48 8b 7d 00 mov 0x0(%rbp),%rdi + 440275: ff d3 callq *%rbx + 440277: 48 89 ef mov %rbp,%rdi + 44027a: e8 31 db fd ff callq 41ddb0 <__cfree> + 44027f: 49 8b 3c 24 mov (%r12),%rdi + 440283: ff d3 callq *%rbx + 440285: 48 83 c4 18 add $0x18,%rsp + 440289: 4c 89 e7 mov %r12,%rdi + 44028c: 5b pop %rbx + 44028d: 5d pop %rbp + 44028e: 41 5c pop %r12 + 440290: 41 5d pop %r13 + 440292: 41 5e pop %r14 + 440294: 41 5f pop %r15 + 440296: e9 15 db fd ff jmpq 41ddb0 <__cfree> + 44029b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +00000000004402a0 <__tsearch>: + 4402a0: 41 57 push %r15 + 4402a2: 41 56 push %r14 + 4402a4: 41 55 push %r13 + 4402a6: 41 54 push %r12 + 4402a8: 55 push %rbp + 4402a9: 53 push %rbx + 4402aa: 48 83 ec 28 sub $0x28,%rsp + 4402ae: 48 85 f6 test %rsi,%rsi + 4402b1: 48 89 7c 24 10 mov %rdi,0x10(%rsp) + 4402b6: 48 89 54 24 18 mov %rdx,0x18(%rsp) + 4402bb: 0f 84 12 03 00 00 je 4405d3 <__tsearch+0x333> + 4402c1: 48 8b 06 mov (%rsi),%rax + 4402c4: 49 89 f4 mov %rsi,%r12 + 4402c7: 48 85 c0 test %rax,%rax + 4402ca: 0f 84 60 02 00 00 je 440530 <__tsearch+0x290> + 4402d0: 80 60 18 fe andb $0xfe,0x18(%rax) + 4402d4: c7 44 24 08 00 00 00 movl $0x0,0x8(%rsp) + 4402db: 00 + 4402dc: 45 31 f6 xor %r14d,%r14d + 4402df: 48 8b 1e mov (%rsi),%rbx + 4402e2: 31 ed xor %ebp,%ebp + 4402e4: 45 31 ed xor %r13d,%r13d + 4402e7: eb 29 jmp 440312 <__tsearch+0x72> + 4402e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4402f0: 48 8d 53 10 lea 0x10(%rbx),%rdx + 4402f4: 48 8b 5b 10 mov 0x10(%rbx),%rbx + 4402f8: 4c 89 ed mov %r13,%rbp + 4402fb: 44 89 74 24 08 mov %r14d,0x8(%rsp) + 440300: 48 85 db test %rbx,%rbx + 440303: 0f 84 f9 00 00 00 je 440402 <__tsearch+0x162> + 440309: 4d 89 e5 mov %r12,%r13 + 44030c: 45 89 fe mov %r15d,%r14d + 44030f: 49 89 d4 mov %rdx,%r12 + 440312: 48 85 db test %rbx,%rbx + 440315: 0f 84 15 02 00 00 je 440530 <__tsearch+0x290> + 44031b: 48 8b 33 mov (%rbx),%rsi + 44031e: 48 8b 7c 24 10 mov 0x10(%rsp),%rdi + 440323: 48 8b 44 24 18 mov 0x18(%rsp),%rax + 440328: ff d0 callq *%rax + 44032a: 85 c0 test %eax,%eax + 44032c: 41 89 c7 mov %eax,%r15d + 44032f: 0f 84 3b 02 00 00 je 440570 <__tsearch+0x2d0> + 440335: 49 8b 04 24 mov (%r12),%rax + 440339: 48 8b 50 10 mov 0x10(%rax),%rdx + 44033d: 48 85 d2 test %rdx,%rdx + 440340: 0f 84 9a 00 00 00 je 4403e0 <__tsearch+0x140> + 440346: 48 8b 70 08 mov 0x8(%rax),%rsi + 44034a: 48 85 f6 test %rsi,%rsi + 44034d: 0f 84 8d 00 00 00 je 4403e0 <__tsearch+0x140> + 440353: f6 42 18 01 testb $0x1,0x18(%rdx) + 440357: 0f 84 83 00 00 00 je 4403e0 <__tsearch+0x140> + 44035d: f6 46 18 01 testb $0x1,0x18(%rsi) + 440361: 74 7d je 4403e0 <__tsearch+0x140> + 440363: 80 48 18 01 orb $0x1,0x18(%rax) + 440367: 80 62 18 fe andb $0xfe,0x18(%rdx) + 44036b: 48 8b 50 08 mov 0x8(%rax),%rdx + 44036f: 48 85 d2 test %rdx,%rdx + 440372: 74 04 je 440378 <__tsearch+0xd8> + 440374: 80 62 18 fe andb $0xfe,0x18(%rdx) + 440378: 4d 85 ed test %r13,%r13 + 44037b: 74 63 je 4403e0 <__tsearch+0x140> + 44037d: 49 8b 55 00 mov 0x0(%r13),%rdx + 440381: 0f b6 72 18 movzbl 0x18(%rdx),%esi + 440385: 40 f6 c6 01 test $0x1,%sil + 440389: 74 55 je 4403e0 <__tsearch+0x140> + 44038b: 8b 4c 24 08 mov 0x8(%rsp),%ecx + 44038f: 45 85 f6 test %r14d,%r14d + 440392: 48 8b 7d 00 mov 0x0(%rbp),%rdi + 440396: 41 0f 9f c3 setg %r11b + 44039a: 85 c9 test %ecx,%ecx + 44039c: 41 0f 9f c2 setg %r10b + 4403a0: 45 38 d3 cmp %r10b,%r11b + 4403a3: 0f 84 37 01 00 00 je 4404e0 <__tsearch+0x240> + 4403a9: 83 ce 01 or $0x1,%esi + 4403ac: 40 88 72 18 mov %sil,0x18(%rdx) + 4403b0: 80 4f 18 01 orb $0x1,0x18(%rdi) + 4403b4: 80 60 18 fe andb $0xfe,0x18(%rax) + 4403b8: 45 85 f6 test %r14d,%r14d + 4403bb: 0f 88 4f 01 00 00 js 440510 <__tsearch+0x270> + 4403c1: 48 8b 70 08 mov 0x8(%rax),%rsi + 4403c5: 48 89 72 10 mov %rsi,0x10(%rdx) + 4403c9: 48 89 50 08 mov %rdx,0x8(%rax) + 4403cd: 48 8b 50 10 mov 0x10(%rax),%rdx + 4403d1: 48 89 57 08 mov %rdx,0x8(%rdi) + 4403d5: 48 89 78 10 mov %rdi,0x10(%rax) + 4403d9: 48 89 45 00 mov %rax,0x0(%rbp) + 4403dd: 0f 1f 00 nopl (%rax) + 4403e0: 45 85 ff test %r15d,%r15d + 4403e3: 0f 89 07 ff ff ff jns 4402f0 <__tsearch+0x50> + 4403e9: 48 8d 53 08 lea 0x8(%rbx),%rdx + 4403ed: 48 8b 5b 08 mov 0x8(%rbx),%rbx + 4403f1: 4c 89 ed mov %r13,%rbp + 4403f4: 44 89 74 24 08 mov %r14d,0x8(%rsp) + 4403f9: 48 85 db test %rbx,%rbx + 4403fc: 0f 85 07 ff ff ff jne 440309 <__tsearch+0x69> + 440402: bf 20 00 00 00 mov $0x20,%edi + 440407: 48 89 54 24 08 mov %rdx,0x8(%rsp) + 44040c: e8 ff d5 fd ff callq 41da10 <__libc_malloc> + 440411: 48 85 c0 test %rax,%rax + 440414: 48 89 c6 mov %rax,%rsi + 440417: 0f 84 b6 01 00 00 je 4405d3 <__tsearch+0x333> + 44041d: 48 8b 54 24 08 mov 0x8(%rsp),%rdx + 440422: 48 89 02 mov %rax,(%rdx) + 440425: 48 8b 44 24 10 mov 0x10(%rsp),%rax + 44042a: 80 4e 18 01 orb $0x1,0x18(%rsi) + 44042e: 49 39 d4 cmp %rdx,%r12 + 440431: 48 c7 46 10 00 00 00 movq $0x0,0x10(%rsi) + 440438: 00 + 440439: 48 c7 46 08 00 00 00 movq $0x0,0x8(%rsi) + 440440: 00 + 440441: 48 89 06 mov %rax,(%rsi) + 440444: 0f 84 a1 01 00 00 je 4405eb <__tsearch+0x34b> + 44044a: 48 8b 12 mov (%rdx),%rdx + 44044d: 48 8b 42 10 mov 0x10(%rdx),%rax + 440451: 80 4a 18 01 orb $0x1,0x18(%rdx) + 440455: 48 85 c0 test %rax,%rax + 440458: 74 04 je 44045e <__tsearch+0x1be> + 44045a: 80 60 18 fe andb $0xfe,0x18(%rax) + 44045e: 48 8b 42 08 mov 0x8(%rdx),%rax + 440462: 48 85 c0 test %rax,%rax + 440465: 74 04 je 44046b <__tsearch+0x1cb> + 440467: 80 60 18 fe andb $0xfe,0x18(%rax) + 44046b: 49 8b 0c 24 mov (%r12),%rcx + 44046f: 48 89 f0 mov %rsi,%rax + 440472: 0f b6 79 18 movzbl 0x18(%rcx),%edi + 440476: 40 f6 c7 01 test $0x1,%dil + 44047a: 74 53 je 4404cf <__tsearch+0x22f> + 44047c: 45 85 ff test %r15d,%r15d + 44047f: 4d 8b 55 00 mov 0x0(%r13),%r10 + 440483: 41 0f 9f c3 setg %r11b + 440487: 45 85 f6 test %r14d,%r14d + 44048a: 41 0f 9f c1 setg %r9b + 44048e: 45 38 cb cmp %r9b,%r11b + 440491: 0f 84 eb 00 00 00 je 440582 <__tsearch+0x2e2> + 440497: 83 cf 01 or $0x1,%edi + 44049a: 40 88 79 18 mov %dil,0x18(%rcx) + 44049e: 41 80 4a 18 01 orb $0x1,0x18(%r10) + 4404a3: 80 62 18 fe andb $0xfe,0x18(%rdx) + 4404a7: 45 85 ff test %r15d,%r15d + 4404aa: 0f 88 06 01 00 00 js 4405b6 <__tsearch+0x316> + 4404b0: 48 8b 42 08 mov 0x8(%rdx),%rax + 4404b4: 48 89 41 10 mov %rax,0x10(%rcx) + 4404b8: 48 8b 42 10 mov 0x10(%rdx),%rax + 4404bc: 48 89 4a 08 mov %rcx,0x8(%rdx) + 4404c0: 49 89 42 08 mov %rax,0x8(%r10) + 4404c4: 4c 89 52 10 mov %r10,0x10(%rdx) + 4404c8: 49 89 55 00 mov %rdx,0x0(%r13) + 4404cc: 48 89 f0 mov %rsi,%rax + 4404cf: 48 83 c4 28 add $0x28,%rsp + 4404d3: 5b pop %rbx + 4404d4: 5d pop %rbp + 4404d5: 41 5c pop %r12 + 4404d7: 41 5d pop %r13 + 4404d9: 41 5e pop %r14 + 4404db: 41 5f pop %r15 + 4404dd: c3 retq + 4404de: 66 90 xchg %ax,%ax + 4404e0: 48 89 55 00 mov %rdx,0x0(%rbp) + 4404e4: 80 62 18 fe andb $0xfe,0x18(%rdx) + 4404e8: 80 4f 18 01 orb $0x1,0x18(%rdi) + 4404ec: 45 85 f6 test %r14d,%r14d + 4404ef: 0f 88 b0 00 00 00 js 4405a5 <__tsearch+0x305> + 4404f5: 48 8b 42 08 mov 0x8(%rdx),%rax + 4404f9: 48 89 47 10 mov %rax,0x10(%rdi) + 4404fd: 48 89 7a 08 mov %rdi,0x8(%rdx) + 440501: e9 da fe ff ff jmpq 4403e0 <__tsearch+0x140> + 440506: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 44050d: 00 00 00 + 440510: 48 8b 70 10 mov 0x10(%rax),%rsi + 440514: 48 89 72 08 mov %rsi,0x8(%rdx) + 440518: 48 89 50 10 mov %rdx,0x10(%rax) + 44051c: 48 8b 50 08 mov 0x8(%rax),%rdx + 440520: 48 89 57 10 mov %rdx,0x10(%rdi) + 440524: 48 89 78 08 mov %rdi,0x8(%rax) + 440528: e9 ac fe ff ff jmpq 4403d9 <__tsearch+0x139> + 44052d: 0f 1f 00 nopl (%rax) + 440530: bf 20 00 00 00 mov $0x20,%edi + 440535: e8 d6 d4 fd ff callq 41da10 <__libc_malloc> + 44053a: 48 85 c0 test %rax,%rax + 44053d: 74 90 je 4404cf <__tsearch+0x22f> + 44053f: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx + 440544: 49 89 04 24 mov %rax,(%r12) + 440548: 80 48 18 01 orb $0x1,0x18(%rax) + 44054c: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) + 440553: 00 + 440554: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) + 44055b: 00 + 44055c: 48 89 08 mov %rcx,(%rax) + 44055f: 48 83 c4 28 add $0x28,%rsp + 440563: 5b pop %rbx + 440564: 5d pop %rbp + 440565: 41 5c pop %r12 + 440567: 41 5d pop %r13 + 440569: 41 5e pop %r14 + 44056b: 41 5f pop %r15 + 44056d: c3 retq + 44056e: 66 90 xchg %ax,%ax + 440570: 48 83 c4 28 add $0x28,%rsp + 440574: 48 89 d8 mov %rbx,%rax + 440577: 5b pop %rbx + 440578: 5d pop %rbp + 440579: 41 5c pop %r12 + 44057b: 41 5d pop %r13 + 44057d: 41 5e pop %r14 + 44057f: 41 5f pop %r15 + 440581: c3 retq + 440582: 49 89 4d 00 mov %rcx,0x0(%r13) + 440586: 80 61 18 fe andb $0xfe,0x18(%rcx) + 44058a: 41 80 4a 18 01 orb $0x1,0x18(%r10) + 44058f: 45 85 ff test %r15d,%r15d + 440592: 78 46 js 4405da <__tsearch+0x33a> + 440594: 48 8b 51 08 mov 0x8(%rcx),%rdx + 440598: 49 89 52 10 mov %rdx,0x10(%r10) + 44059c: 4c 89 51 08 mov %r10,0x8(%rcx) + 4405a0: e9 2a ff ff ff jmpq 4404cf <__tsearch+0x22f> + 4405a5: 48 8b 42 10 mov 0x10(%rdx),%rax + 4405a9: 48 89 47 08 mov %rax,0x8(%rdi) + 4405ad: 48 89 7a 10 mov %rdi,0x10(%rdx) + 4405b1: e9 2a fe ff ff jmpq 4403e0 <__tsearch+0x140> + 4405b6: 48 8b 42 10 mov 0x10(%rdx),%rax + 4405ba: 48 89 41 08 mov %rax,0x8(%rcx) + 4405be: 48 8b 42 08 mov 0x8(%rdx),%rax + 4405c2: 48 89 4a 10 mov %rcx,0x10(%rdx) + 4405c6: 49 89 42 10 mov %rax,0x10(%r10) + 4405ca: 4c 89 52 08 mov %r10,0x8(%rdx) + 4405ce: e9 f5 fe ff ff jmpq 4404c8 <__tsearch+0x228> + 4405d3: 31 c0 xor %eax,%eax + 4405d5: e9 f5 fe ff ff jmpq 4404cf <__tsearch+0x22f> + 4405da: 48 8b 51 10 mov 0x10(%rcx),%rdx + 4405de: 49 89 52 08 mov %rdx,0x8(%r10) + 4405e2: 4c 89 51 10 mov %r10,0x10(%rcx) + 4405e6: e9 e4 fe ff ff jmpq 4404cf <__tsearch+0x22f> + 4405eb: 48 89 f0 mov %rsi,%rax + 4405ee: e9 dc fe ff ff jmpq 4404cf <__tsearch+0x22f> + 4405f3: 0f 1f 00 nopl (%rax) + 4405f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 4405fd: 00 00 00 + +0000000000440600 <__tfind>: + 440600: 48 85 f6 test %rsi,%rsi + 440603: 74 4b je 440650 <__tfind+0x50> + 440605: 41 54 push %r12 + 440607: 49 89 fc mov %rdi,%r12 + 44060a: 55 push %rbp + 44060b: 48 89 d5 mov %rdx,%rbp + 44060e: 53 push %rbx + 44060f: eb 21 jmp 440632 <__tfind+0x32> + 440611: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 440618: 48 8b 33 mov (%rbx),%rsi + 44061b: 4c 89 e7 mov %r12,%rdi + 44061e: ff d5 callq *%rbp + 440620: 85 c0 test %eax,%eax + 440622: 74 24 je 440648 <__tfind+0x48> + 440624: 48 8d 73 08 lea 0x8(%rbx),%rsi + 440628: 48 83 c3 10 add $0x10,%rbx + 44062c: 85 c0 test %eax,%eax + 44062e: 48 0f 49 f3 cmovns %rbx,%rsi + 440632: 48 8b 1e mov (%rsi),%rbx + 440635: 48 85 db test %rbx,%rbx + 440638: 75 de jne 440618 <__tfind+0x18> + 44063a: 5b pop %rbx + 44063b: 31 c0 xor %eax,%eax + 44063d: 5d pop %rbp + 44063e: 41 5c pop %r12 + 440640: c3 retq + 440641: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 440648: 48 89 d8 mov %rbx,%rax + 44064b: 5b pop %rbx + 44064c: 5d pop %rbp + 44064d: 41 5c pop %r12 + 44064f: c3 retq + 440650: 31 c0 xor %eax,%eax + 440652: c3 retq + 440653: 0f 1f 00 nopl (%rax) + 440656: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 44065d: 00 00 00 + +0000000000440660 <__tdelete>: + 440660: 55 push %rbp + 440661: 48 89 e5 mov %rsp,%rbp + 440664: 41 57 push %r15 + 440666: 41 56 push %r14 + 440668: 41 55 push %r13 + 44066a: 41 54 push %r12 + 44066c: 53 push %rbx + 44066d: 48 83 ec 28 sub $0x28,%rsp + 440671: 48 89 7d c0 mov %rdi,-0x40(%rbp) + 440675: 48 89 55 b8 mov %rdx,-0x48(%rbp) + 440679: 48 81 ec 50 01 00 00 sub $0x150,%rsp + 440680: 4c 8d 64 24 0f lea 0xf(%rsp),%r12 + 440685: 49 83 e4 f0 and $0xfffffffffffffff0,%r12 + 440689: 48 85 f6 test %rsi,%rsi + 44068c: 74 78 je 440706 <__tdelete+0xa6> + 44068e: 4c 8b 06 mov (%rsi),%r8 + 440691: 49 89 f6 mov %rsi,%r14 + 440694: 4d 85 c0 test %r8,%r8 + 440697: 74 6d je 440706 <__tdelete+0xa6> + 440699: 4d 89 c7 mov %r8,%r15 + 44069c: 31 db xor %ebx,%ebx + 44069e: c7 45 cc 28 00 00 00 movl $0x28,-0x34(%rbp) + 4406a5: 4c 89 c0 mov %r8,%rax + 4406a8: eb 17 jmp 4406c1 <__tdelete+0x61> + 4406aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4406b0: 49 8b 47 10 mov 0x10(%r15),%rax + 4406b4: 48 83 c3 01 add $0x1,%rbx + 4406b8: 4d 8d 77 10 lea 0x10(%r15),%r14 + 4406bc: 48 85 c0 test %rax,%rax + 4406bf: 74 45 je 440706 <__tdelete+0xa6> + 4406c1: 48 8b 30 mov (%rax),%rsi + 4406c4: 48 8b 7d c0 mov -0x40(%rbp),%rdi + 4406c8: 41 89 dd mov %ebx,%r13d + 4406cb: 48 8b 45 b8 mov -0x48(%rbp),%rax + 4406cf: ff d0 callq *%rax + 4406d1: 85 c0 test %eax,%eax + 4406d3: 41 89 c1 mov %eax,%r9d + 4406d6: 0f 84 84 00 00 00 je 440760 <__tdelete+0x100> + 4406dc: 39 5d cc cmp %ebx,-0x34(%rbp) + 4406df: 74 3f je 440720 <__tdelete+0xc0> + 4406e1: 4c 8d 2c dd 00 00 00 lea 0x0(,%rbx,8),%r13 + 4406e8: 00 + 4406e9: 45 85 c9 test %r9d,%r9d + 4406ec: 4f 89 34 2c mov %r14,(%r12,%r13,1) + 4406f0: 4d 8b 3e mov (%r14),%r15 + 4406f3: 79 bb jns 4406b0 <__tdelete+0x50> + 4406f5: 49 8b 47 08 mov 0x8(%r15),%rax + 4406f9: 48 83 c3 01 add $0x1,%rbx + 4406fd: 4d 8d 77 08 lea 0x8(%r15),%r14 + 440701: 48 85 c0 test %rax,%rax + 440704: 75 bb jne 4406c1 <__tdelete+0x61> + 440706: 48 8d 65 d8 lea -0x28(%rbp),%rsp + 44070a: 31 c0 xor %eax,%eax + 44070c: 5b pop %rbx + 44070d: 41 5c pop %r12 + 44070f: 41 5d pop %r13 + 440711: 41 5e pop %r14 + 440713: 41 5f pop %r15 + 440715: 5d pop %rbp + 440716: c3 retq + 440717: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 44071e: 00 00 + 440720: 83 45 cc 14 addl $0x14,-0x34(%rbp) + 440724: 4c 8d 2c dd 00 00 00 lea 0x0(,%rbx,8),%r13 + 44072b: 00 + 44072c: 4c 89 e6 mov %r12,%rsi + 44072f: 48 63 45 cc movslq -0x34(%rbp),%rax + 440733: 44 89 4d b0 mov %r9d,-0x50(%rbp) + 440737: 4c 89 ea mov %r13,%rdx + 44073a: 48 8d 04 c5 1e 00 00 lea 0x1e(,%rax,8),%rax + 440741: 00 + 440742: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 440746: 48 29 c4 sub %rax,%rsp + 440749: 48 8d 7c 24 0f lea 0xf(%rsp),%rdi + 44074e: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 440752: e8 c9 b8 fe ff callq 42c020 + 440757: 44 8b 4d b0 mov -0x50(%rbp),%r9d + 44075b: 49 89 c4 mov %rax,%r12 + 44075e: eb 89 jmp 4406e9 <__tdelete+0x89> + 440760: 4d 8b 06 mov (%r14),%r8 + 440763: 49 8b 70 08 mov 0x8(%r8),%rsi + 440767: 49 8b 58 10 mov 0x10(%r8),%rbx + 44076b: 48 85 f6 test %rsi,%rsi + 44076e: 0f 84 94 00 00 00 je 440808 <__tdelete+0x1a8> + 440774: 48 85 db test %rbx,%rbx + 440777: 0f 84 8b 00 00 00 je 440808 <__tdelete+0x1a8> + 44077d: 49 63 c5 movslq %r13d,%rax + 440780: 4d 8d 48 10 lea 0x10(%r8),%r9 + 440784: 48 8d 0c c5 00 00 00 lea 0x0(,%rax,8),%rcx + 44078b: 00 + 44078c: eb 28 jmp 4407b6 <__tdelete+0x156> + 44078e: 66 90 xchg %ax,%ax + 440790: 48 8b 43 08 mov 0x8(%rbx),%rax + 440794: 41 83 c5 01 add $0x1,%r13d + 440798: 4d 89 34 0c mov %r14,(%r12,%rcx,1) + 44079c: 48 83 c1 08 add $0x8,%rcx + 4407a0: 48 85 c0 test %rax,%rax + 4407a3: 0f 84 2f 02 00 00 je 4409d8 <__tdelete+0x378> + 4407a9: 48 8d 53 08 lea 0x8(%rbx),%rdx + 4407ad: 4d 89 ce mov %r9,%r14 + 4407b0: 48 89 c3 mov %rax,%rbx + 4407b3: 49 89 d1 mov %rdx,%r9 + 4407b6: 44 39 6d cc cmp %r13d,-0x34(%rbp) + 4407ba: 75 d4 jne 440790 <__tdelete+0x130> + 4407bc: 83 45 cc 14 addl $0x14,-0x34(%rbp) + 4407c0: 48 89 ca mov %rcx,%rdx + 4407c3: 4c 89 e6 mov %r12,%rsi + 4407c6: 48 63 45 cc movslq -0x34(%rbp),%rax + 4407ca: 4c 89 45 b0 mov %r8,-0x50(%rbp) + 4407ce: 4c 89 4d b8 mov %r9,-0x48(%rbp) + 4407d2: 48 89 4d c0 mov %rcx,-0x40(%rbp) + 4407d6: 48 8d 04 c5 1e 00 00 lea 0x1e(,%rax,8),%rax + 4407dd: 00 + 4407de: 48 83 e0 f0 and $0xfffffffffffffff0,%rax + 4407e2: 48 29 c4 sub %rax,%rsp + 4407e5: 48 8d 7c 24 0f lea 0xf(%rsp),%rdi + 4407ea: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi + 4407ee: e8 2d b8 fe ff callq 42c020 + 4407f3: 4c 8b 45 b0 mov -0x50(%rbp),%r8 + 4407f7: 49 89 c4 mov %rax,%r12 + 4407fa: 4c 8b 4d b8 mov -0x48(%rbp),%r9 + 4407fe: 48 8b 4d c0 mov -0x40(%rbp),%rcx + 440802: eb 8c jmp 440790 <__tdelete+0x130> + 440804: 0f 1f 40 00 nopl 0x0(%rax) + 440808: 48 85 f6 test %rsi,%rsi + 44080b: 48 0f 44 f3 cmove %rbx,%rsi + 44080f: 45 85 ed test %r13d,%r13d + 440812: 0f 85 69 02 00 00 jne 440a81 <__tdelete+0x421> + 440818: 49 89 36 mov %rsi,(%r14) + 44081b: 4c 89 c3 mov %r8,%rbx + 44081e: 49 39 d8 cmp %rbx,%r8 + 440821: 74 06 je 440829 <__tdelete+0x1c9> + 440823: 48 8b 03 mov (%rbx),%rax + 440826: 49 89 00 mov %rax,(%r8) + 440829: f6 43 18 01 testb $0x1,0x18(%rbx) + 44082d: 0f 85 b6 00 00 00 jne 4408e9 <__tdelete+0x289> + 440833: 45 85 ed test %r13d,%r13d + 440836: 0f 84 56 02 00 00 je 440a92 <__tdelete+0x432> + 44083c: 48 85 f6 test %rsi,%rsi + 44083f: 74 0a je 44084b <__tdelete+0x1eb> + 440841: f6 46 18 01 testb $0x1,0x18(%rsi) + 440845: 0f 85 7d 01 00 00 jne 4409c8 <__tdelete+0x368> + 44084b: 4d 63 cd movslq %r13d,%r9 + 44084e: 4b 8b 7c cc f8 mov -0x8(%r12,%r9,8),%rdi + 440853: 48 8b 17 mov (%rdi),%rdx + 440856: 48 8b 42 08 mov 0x8(%rdx),%rax + 44085a: 48 39 f0 cmp %rsi,%rax + 44085d: 0f 84 ed 00 00 00 je 440950 <__tdelete+0x2f0> + 440863: 0f b6 48 18 movzbl 0x18(%rax),%ecx + 440867: f6 c1 01 test $0x1,%cl + 44086a: 74 29 je 440895 <__tdelete+0x235> + 44086c: 83 e1 fe and $0xfffffffe,%ecx + 44086f: 41 83 c5 01 add $0x1,%r13d + 440873: 88 48 18 mov %cl,0x18(%rax) + 440876: 80 4a 18 01 orb $0x1,0x18(%rdx) + 44087a: 48 8b 48 10 mov 0x10(%rax),%rcx + 44087e: 48 89 4a 08 mov %rcx,0x8(%rdx) + 440882: 48 89 50 10 mov %rdx,0x10(%rax) + 440886: 48 89 07 mov %rax,(%rdi) + 440889: 48 8d 78 10 lea 0x10(%rax),%rdi + 44088d: 48 8b 42 08 mov 0x8(%rdx),%rax + 440891: 4b 89 3c cc mov %rdi,(%r12,%r9,8) + 440895: 48 8b 48 10 mov 0x10(%rax),%rcx + 440899: 48 85 c9 test %rcx,%rcx + 44089c: 74 6a je 440908 <__tdelete+0x2a8> + 44089e: f6 41 18 01 testb $0x1,0x18(%rcx) + 4408a2: 74 64 je 440908 <__tdelete+0x2a8> + 4408a4: 48 8b 70 08 mov 0x8(%rax),%rsi + 4408a8: 48 85 f6 test %rsi,%rsi + 4408ab: 74 06 je 4408b3 <__tdelete+0x253> + 4408ad: f6 46 18 01 testb $0x1,0x18(%rsi) + 4408b1: 75 6c jne 44091f <__tdelete+0x2bf> + 4408b3: 0f b6 72 18 movzbl 0x18(%rdx),%esi + 4408b7: 44 0f b6 49 18 movzbl 0x18(%rcx),%r9d + 4408bc: 83 e6 01 and $0x1,%esi + 4408bf: 41 83 e1 fe and $0xfffffffe,%r9d + 4408c3: 44 09 ce or %r9d,%esi + 4408c6: 40 88 71 18 mov %sil,0x18(%rcx) + 4408ca: 48 8b 71 10 mov 0x10(%rcx),%rsi + 4408ce: 48 89 72 08 mov %rsi,0x8(%rdx) + 4408d2: 48 8b 71 08 mov 0x8(%rcx),%rsi + 4408d6: 48 89 70 10 mov %rsi,0x10(%rax) + 4408da: 48 89 41 08 mov %rax,0x8(%rcx) + 4408de: 48 89 51 10 mov %rdx,0x10(%rcx) + 4408e2: 48 89 0f mov %rcx,(%rdi) + 4408e5: 80 62 18 fe andb $0xfe,0x18(%rdx) + 4408e9: 48 89 df mov %rbx,%rdi + 4408ec: e8 bf d4 fd ff callq 41ddb0 <__cfree> + 4408f1: 48 8d 65 d8 lea -0x28(%rbp),%rsp + 4408f5: 4c 89 f8 mov %r15,%rax + 4408f8: 5b pop %rbx + 4408f9: 41 5c pop %r12 + 4408fb: 41 5d pop %r13 + 4408fd: 41 5e pop %r14 + 4408ff: 41 5f pop %r15 + 440901: 5d pop %rbp + 440902: c3 retq + 440903: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 440908: 48 8b 70 08 mov 0x8(%rax),%rsi + 44090c: 48 85 f6 test %rsi,%rsi + 44090f: 0f 84 9b 00 00 00 je 4409b0 <__tdelete+0x350> + 440915: f6 46 18 01 testb $0x1,0x18(%rsi) + 440919: 0f 84 91 00 00 00 je 4409b0 <__tdelete+0x350> + 44091f: 44 0f b6 4a 18 movzbl 0x18(%rdx),%r9d + 440924: 44 0f b6 50 18 movzbl 0x18(%rax),%r10d + 440929: 41 83 e1 01 and $0x1,%r9d + 44092d: 41 83 e2 fe and $0xfffffffe,%r10d + 440931: 45 09 d1 or %r10d,%r9d + 440934: 44 88 48 18 mov %r9b,0x18(%rax) + 440938: 80 62 18 fe andb $0xfe,0x18(%rdx) + 44093c: 80 66 18 fe andb $0xfe,0x18(%rsi) + 440940: 48 89 4a 08 mov %rcx,0x8(%rdx) + 440944: 48 89 50 10 mov %rdx,0x10(%rax) + 440948: 48 89 07 mov %rax,(%rdi) + 44094b: eb 9c jmp 4408e9 <__tdelete+0x289> + 44094d: 0f 1f 00 nopl (%rax) + 440950: 48 8b 42 10 mov 0x10(%rdx),%rax + 440954: 0f b6 48 18 movzbl 0x18(%rax),%ecx + 440958: f6 c1 01 test $0x1,%cl + 44095b: 74 29 je 440986 <__tdelete+0x326> + 44095d: 83 e1 fe and $0xfffffffe,%ecx + 440960: 41 83 c5 01 add $0x1,%r13d + 440964: 88 48 18 mov %cl,0x18(%rax) + 440967: 80 4a 18 01 orb $0x1,0x18(%rdx) + 44096b: 48 8b 48 08 mov 0x8(%rax),%rcx + 44096f: 48 89 4a 10 mov %rcx,0x10(%rdx) + 440973: 48 89 50 08 mov %rdx,0x8(%rax) + 440977: 48 89 07 mov %rax,(%rdi) + 44097a: 48 8d 78 08 lea 0x8(%rax),%rdi + 44097e: 48 8b 42 10 mov 0x10(%rdx),%rax + 440982: 4b 89 3c cc mov %rdi,(%r12,%r9,8) + 440986: 48 8b 48 08 mov 0x8(%rax),%rcx + 44098a: 48 85 c9 test %rcx,%rcx + 44098d: 74 06 je 440995 <__tdelete+0x335> + 44098f: f6 41 18 01 testb $0x1,0x18(%rcx) + 440993: 75 6b jne 440a00 <__tdelete+0x3a0> + 440995: 48 8b 70 10 mov 0x10(%rax),%rsi + 440999: 48 85 f6 test %rsi,%rsi + 44099c: 74 12 je 4409b0 <__tdelete+0x350> + 44099e: f6 46 18 01 testb $0x1,0x18(%rsi) + 4409a2: 0f 85 a8 00 00 00 jne 440a50 <__tdelete+0x3f0> + 4409a8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 4409af: 00 + 4409b0: 80 48 18 01 orb $0x1,0x18(%rax) + 4409b4: 41 83 ed 01 sub $0x1,%r13d + 4409b8: 48 89 d6 mov %rdx,%rsi + 4409bb: 0f 85 7b fe ff ff jne 44083c <__tdelete+0x1dc> + 4409c1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4409c8: 80 66 18 fe andb $0xfe,0x18(%rsi) + 4409cc: e9 18 ff ff ff jmpq 4408e9 <__tdelete+0x289> + 4409d1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 4409d8: 48 8b 73 10 mov 0x10(%rbx),%rsi + 4409dc: 49 63 c5 movslq %r13d,%rax + 4409df: 49 8b 44 c4 f8 mov -0x8(%r12,%rax,8),%rax + 4409e4: 48 8b 00 mov (%rax),%rax + 4409e7: 48 39 58 10 cmp %rbx,0x10(%rax) + 4409eb: 0f 84 98 00 00 00 je 440a89 <__tdelete+0x429> + 4409f1: 48 89 70 08 mov %rsi,0x8(%rax) + 4409f5: e9 24 fe ff ff jmpq 44081e <__tdelete+0x1be> + 4409fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 440a00: 48 8b 70 10 mov 0x10(%rax),%rsi + 440a04: 48 85 f6 test %rsi,%rsi + 440a07: 74 06 je 440a0f <__tdelete+0x3af> + 440a09: f6 46 18 01 testb $0x1,0x18(%rsi) + 440a0d: 75 41 jne 440a50 <__tdelete+0x3f0> + 440a0f: 0f b6 72 18 movzbl 0x18(%rdx),%esi + 440a13: 44 0f b6 49 18 movzbl 0x18(%rcx),%r9d + 440a18: 83 e6 01 and $0x1,%esi + 440a1b: 41 83 e1 fe and $0xfffffffe,%r9d + 440a1f: 44 09 ce or %r9d,%esi + 440a22: 40 88 71 18 mov %sil,0x18(%rcx) + 440a26: 48 8b 71 08 mov 0x8(%rcx),%rsi + 440a2a: 48 89 72 10 mov %rsi,0x10(%rdx) + 440a2e: 48 8b 71 10 mov 0x10(%rcx),%rsi + 440a32: 48 89 70 08 mov %rsi,0x8(%rax) + 440a36: 48 89 41 10 mov %rax,0x10(%rcx) + 440a3a: 48 89 51 08 mov %rdx,0x8(%rcx) + 440a3e: 48 89 0f mov %rcx,(%rdi) + 440a41: 80 62 18 fe andb $0xfe,0x18(%rdx) + 440a45: e9 9f fe ff ff jmpq 4408e9 <__tdelete+0x289> + 440a4a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 440a50: 44 0f b6 4a 18 movzbl 0x18(%rdx),%r9d + 440a55: 44 0f b6 50 18 movzbl 0x18(%rax),%r10d + 440a5a: 41 83 e1 01 and $0x1,%r9d + 440a5e: 41 83 e2 fe and $0xfffffffe,%r10d + 440a62: 45 09 d1 or %r10d,%r9d + 440a65: 44 88 48 18 mov %r9b,0x18(%rax) + 440a69: 80 62 18 fe andb $0xfe,0x18(%rdx) + 440a6d: 80 66 18 fe andb $0xfe,0x18(%rsi) + 440a71: 48 89 4a 10 mov %rcx,0x10(%rdx) + 440a75: 48 89 50 08 mov %rdx,0x8(%rax) + 440a79: 48 89 07 mov %rax,(%rdi) + 440a7c: e9 68 fe ff ff jmpq 4408e9 <__tdelete+0x289> + 440a81: 4c 89 c3 mov %r8,%rbx + 440a84: e9 53 ff ff ff jmpq 4409dc <__tdelete+0x37c> + 440a89: 48 89 70 10 mov %rsi,0x10(%rax) + 440a8d: e9 8c fd ff ff jmpq 44081e <__tdelete+0x1be> + 440a92: 48 85 f6 test %rsi,%rsi + 440a95: 0f 85 2d ff ff ff jne 4409c8 <__tdelete+0x368> + 440a9b: e9 49 fe ff ff jmpq 4408e9 <__tdelete+0x289> + +0000000000440aa0 <__twalk>: + 440aa0: 41 57 push %r15 + 440aa2: 41 56 push %r14 + 440aa4: 41 55 push %r13 + 440aa6: 41 54 push %r12 + 440aa8: 55 push %rbp + 440aa9: 53 push %rbx + 440aaa: 48 83 ec 08 sub $0x8,%rsp + 440aae: 48 85 ff test %rdi,%rdi + 440ab1: 0f 84 91 0a 00 00 je 441548 <__twalk+0xaa8> + 440ab7: 48 85 f6 test %rsi,%rsi + 440aba: 48 89 f0 mov %rsi,%rax + 440abd: 0f 84 85 0a 00 00 je 441548 <__twalk+0xaa8> + 440ac3: 48 83 7f 08 00 cmpq $0x0,0x8(%rdi) + 440ac8: 0f 84 d2 0a 00 00 je 4415a0 <__twalk+0xb00> + 440ace: 48 89 fd mov %rdi,%rbp + 440ad1: 31 d2 xor %edx,%edx + 440ad3: 31 f6 xor %esi,%esi + 440ad5: 48 89 c3 mov %rax,%rbx + 440ad8: ff d0 callq *%rax + 440ada: 4c 8b 65 08 mov 0x8(%rbp),%r12 + 440ade: 4d 85 e4 test %r12,%r12 + 440ae1: 0f 84 14 05 00 00 je 440ffb <__twalk+0x55b> + 440ae7: 49 83 7c 24 08 00 cmpq $0x0,0x8(%r12) + 440aed: ba 01 00 00 00 mov $0x1,%edx + 440af2: 0f 84 88 0a 00 00 je 441580 <__twalk+0xae0> + 440af8: 31 f6 xor %esi,%esi + 440afa: 4c 89 e7 mov %r12,%rdi + 440afd: ff d3 callq *%rbx + 440aff: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 + 440b04: 4d 85 ed test %r13,%r13 + 440b07: 0f 84 61 02 00 00 je 440d6e <__twalk+0x2ce> + 440b0d: 49 83 7d 08 00 cmpq $0x0,0x8(%r13) + 440b12: ba 02 00 00 00 mov $0x2,%edx + 440b17: 0f 84 db 0a 00 00 je 4415f8 <__twalk+0xb58> + 440b1d: 31 f6 xor %esi,%esi + 440b1f: 4c 89 ef mov %r13,%rdi + 440b22: ff d3 callq *%rbx + 440b24: 4d 8b 75 08 mov 0x8(%r13),%r14 + 440b28: 4d 85 f6 test %r14,%r14 + 440b2b: 0f 84 09 01 00 00 je 440c3a <__twalk+0x19a> + 440b31: 49 83 7e 08 00 cmpq $0x0,0x8(%r14) + 440b36: ba 03 00 00 00 mov $0x3,%edx + 440b3b: 0f 84 f7 0a 00 00 je 441638 <__twalk+0xb98> + 440b41: 31 f6 xor %esi,%esi + 440b43: 4c 89 f7 mov %r14,%rdi + 440b46: ff d3 callq *%rbx + 440b48: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 440b4c: 4d 85 ff test %r15,%r15 + 440b4f: 74 61 je 440bb2 <__twalk+0x112> + 440b51: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) + 440b56: ba 04 00 00 00 mov $0x4,%edx + 440b5b: 0f 84 17 0d 00 00 je 441878 <__twalk+0xdd8> + 440b61: 31 f6 xor %esi,%esi + 440b63: 4c 89 ff mov %r15,%rdi + 440b66: ff d3 callq *%rbx + 440b68: 49 8b 7f 08 mov 0x8(%r15),%rdi + 440b6c: 48 85 ff test %rdi,%rdi + 440b6f: 74 0d je 440b7e <__twalk+0xde> + 440b71: ba 05 00 00 00 mov $0x5,%edx + 440b76: 48 89 de mov %rbx,%rsi + 440b79: e8 92 f1 ff ff callq 43fd10 + 440b7e: 4c 89 ff mov %r15,%rdi + 440b81: ba 04 00 00 00 mov $0x4,%edx + 440b86: be 01 00 00 00 mov $0x1,%esi + 440b8b: ff d3 callq *%rbx + 440b8d: 49 8b 7f 10 mov 0x10(%r15),%rdi + 440b91: 48 85 ff test %rdi,%rdi + 440b94: 74 0d je 440ba3 <__twalk+0x103> + 440b96: ba 05 00 00 00 mov $0x5,%edx + 440b9b: 48 89 de mov %rbx,%rsi + 440b9e: e8 6d f1 ff ff callq 43fd10 + 440ba3: ba 04 00 00 00 mov $0x4,%edx + 440ba8: be 02 00 00 00 mov $0x2,%esi + 440bad: 4c 89 ff mov %r15,%rdi + 440bb0: ff d3 callq *%rbx + 440bb2: ba 03 00 00 00 mov $0x3,%edx + 440bb7: be 01 00 00 00 mov $0x1,%esi + 440bbc: 4c 89 f7 mov %r14,%rdi + 440bbf: ff d3 callq *%rbx + 440bc1: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 440bc5: 4d 85 ff test %r15,%r15 + 440bc8: 74 61 je 440c2b <__twalk+0x18b> + 440bca: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) + 440bcf: ba 04 00 00 00 mov $0x4,%edx + 440bd4: 0f 84 fe 0c 00 00 je 4418d8 <__twalk+0xe38> + 440bda: 31 f6 xor %esi,%esi + 440bdc: 4c 89 ff mov %r15,%rdi + 440bdf: ff d3 callq *%rbx + 440be1: 49 8b 7f 08 mov 0x8(%r15),%rdi + 440be5: 48 85 ff test %rdi,%rdi + 440be8: 74 0d je 440bf7 <__twalk+0x157> + 440bea: ba 05 00 00 00 mov $0x5,%edx + 440bef: 48 89 de mov %rbx,%rsi + 440bf2: e8 19 f1 ff ff callq 43fd10 + 440bf7: 4c 89 ff mov %r15,%rdi + 440bfa: ba 04 00 00 00 mov $0x4,%edx + 440bff: be 01 00 00 00 mov $0x1,%esi + 440c04: ff d3 callq *%rbx + 440c06: 49 8b 7f 10 mov 0x10(%r15),%rdi + 440c0a: 48 85 ff test %rdi,%rdi + 440c0d: 74 0d je 440c1c <__twalk+0x17c> + 440c0f: ba 05 00 00 00 mov $0x5,%edx + 440c14: 48 89 de mov %rbx,%rsi + 440c17: e8 f4 f0 ff ff callq 43fd10 + 440c1c: ba 04 00 00 00 mov $0x4,%edx + 440c21: be 02 00 00 00 mov $0x2,%esi + 440c26: 4c 89 ff mov %r15,%rdi + 440c29: ff d3 callq *%rbx + 440c2b: ba 03 00 00 00 mov $0x3,%edx + 440c30: be 02 00 00 00 mov $0x2,%esi + 440c35: 4c 89 f7 mov %r14,%rdi + 440c38: ff d3 callq *%rbx + 440c3a: ba 02 00 00 00 mov $0x2,%edx + 440c3f: be 01 00 00 00 mov $0x1,%esi + 440c44: 4c 89 ef mov %r13,%rdi + 440c47: ff d3 callq *%rbx + 440c49: 4d 8b 75 10 mov 0x10(%r13),%r14 + 440c4d: 4d 85 f6 test %r14,%r14 + 440c50: 0f 84 09 01 00 00 je 440d5f <__twalk+0x2bf> + 440c56: 49 83 7e 08 00 cmpq $0x0,0x8(%r14) + 440c5b: ba 03 00 00 00 mov $0x3,%edx + 440c60: 0f 84 32 0a 00 00 je 441698 <__twalk+0xbf8> + 440c66: 31 f6 xor %esi,%esi + 440c68: 4c 89 f7 mov %r14,%rdi + 440c6b: ff d3 callq *%rbx + 440c6d: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 440c71: 4d 85 ff test %r15,%r15 + 440c74: 74 61 je 440cd7 <__twalk+0x237> + 440c76: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) + 440c7b: ba 04 00 00 00 mov $0x4,%edx + 440c80: 0f 84 92 0c 00 00 je 441918 <__twalk+0xe78> + 440c86: 31 f6 xor %esi,%esi + 440c88: 4c 89 ff mov %r15,%rdi + 440c8b: ff d3 callq *%rbx + 440c8d: 49 8b 7f 08 mov 0x8(%r15),%rdi + 440c91: 48 85 ff test %rdi,%rdi + 440c94: 74 0d je 440ca3 <__twalk+0x203> + 440c96: ba 05 00 00 00 mov $0x5,%edx + 440c9b: 48 89 de mov %rbx,%rsi + 440c9e: e8 6d f0 ff ff callq 43fd10 + 440ca3: 4c 89 ff mov %r15,%rdi + 440ca6: ba 04 00 00 00 mov $0x4,%edx + 440cab: be 01 00 00 00 mov $0x1,%esi + 440cb0: ff d3 callq *%rbx + 440cb2: 49 8b 7f 10 mov 0x10(%r15),%rdi + 440cb6: 48 85 ff test %rdi,%rdi + 440cb9: 74 0d je 440cc8 <__twalk+0x228> + 440cbb: ba 05 00 00 00 mov $0x5,%edx + 440cc0: 48 89 de mov %rbx,%rsi + 440cc3: e8 48 f0 ff ff callq 43fd10 + 440cc8: ba 04 00 00 00 mov $0x4,%edx + 440ccd: be 02 00 00 00 mov $0x2,%esi + 440cd2: 4c 89 ff mov %r15,%rdi + 440cd5: ff d3 callq *%rbx + 440cd7: ba 03 00 00 00 mov $0x3,%edx + 440cdc: be 01 00 00 00 mov $0x1,%esi + 440ce1: 4c 89 f7 mov %r14,%rdi + 440ce4: ff d3 callq *%rbx + 440ce6: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 440cea: 4d 85 ff test %r15,%r15 + 440ced: 74 61 je 440d50 <__twalk+0x2b0> + 440cef: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) + 440cf4: ba 04 00 00 00 mov $0x4,%edx + 440cf9: 0f 84 f9 0b 00 00 je 4418f8 <__twalk+0xe58> + 440cff: 31 f6 xor %esi,%esi + 440d01: 4c 89 ff mov %r15,%rdi + 440d04: ff d3 callq *%rbx + 440d06: 49 8b 7f 08 mov 0x8(%r15),%rdi + 440d0a: 48 85 ff test %rdi,%rdi + 440d0d: 74 0d je 440d1c <__twalk+0x27c> + 440d0f: ba 05 00 00 00 mov $0x5,%edx + 440d14: 48 89 de mov %rbx,%rsi + 440d17: e8 f4 ef ff ff callq 43fd10 + 440d1c: 4c 89 ff mov %r15,%rdi + 440d1f: ba 04 00 00 00 mov $0x4,%edx + 440d24: be 01 00 00 00 mov $0x1,%esi + 440d29: ff d3 callq *%rbx + 440d2b: 49 8b 7f 10 mov 0x10(%r15),%rdi + 440d2f: 48 85 ff test %rdi,%rdi + 440d32: 74 0d je 440d41 <__twalk+0x2a1> + 440d34: ba 05 00 00 00 mov $0x5,%edx + 440d39: 48 89 de mov %rbx,%rsi + 440d3c: e8 cf ef ff ff callq 43fd10 + 440d41: ba 04 00 00 00 mov $0x4,%edx + 440d46: be 02 00 00 00 mov $0x2,%esi + 440d4b: 4c 89 ff mov %r15,%rdi + 440d4e: ff d3 callq *%rbx + 440d50: ba 03 00 00 00 mov $0x3,%edx + 440d55: be 02 00 00 00 mov $0x2,%esi + 440d5a: 4c 89 f7 mov %r14,%rdi + 440d5d: ff d3 callq *%rbx + 440d5f: ba 02 00 00 00 mov $0x2,%edx + 440d64: be 02 00 00 00 mov $0x2,%esi + 440d69: 4c 89 ef mov %r13,%rdi + 440d6c: ff d3 callq *%rbx + 440d6e: ba 01 00 00 00 mov $0x1,%edx + 440d73: be 01 00 00 00 mov $0x1,%esi + 440d78: 4c 89 e7 mov %r12,%rdi + 440d7b: ff d3 callq *%rbx + 440d7d: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 + 440d82: 4d 85 ed test %r13,%r13 + 440d85: 0f 84 61 02 00 00 je 440fec <__twalk+0x54c> + 440d8b: 49 83 7d 08 00 cmpq $0x0,0x8(%r13) + 440d90: ba 02 00 00 00 mov $0x2,%edx + 440d95: 0f 84 1d 08 00 00 je 4415b8 <__twalk+0xb18> + 440d9b: 31 f6 xor %esi,%esi + 440d9d: 4c 89 ef mov %r13,%rdi + 440da0: ff d3 callq *%rbx + 440da2: 4d 8b 75 08 mov 0x8(%r13),%r14 + 440da6: 4d 85 f6 test %r14,%r14 + 440da9: 0f 84 09 01 00 00 je 440eb8 <__twalk+0x418> + 440daf: 49 83 7e 08 00 cmpq $0x0,0x8(%r14) + 440db4: ba 03 00 00 00 mov $0x3,%edx + 440db9: 0f 84 b9 08 00 00 je 441678 <__twalk+0xbd8> + 440dbf: 31 f6 xor %esi,%esi + 440dc1: 4c 89 f7 mov %r14,%rdi + 440dc4: ff d3 callq *%rbx + 440dc6: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 440dca: 4d 85 ff test %r15,%r15 + 440dcd: 74 61 je 440e30 <__twalk+0x390> + 440dcf: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) + 440dd4: ba 04 00 00 00 mov $0x4,%edx + 440dd9: 0f 84 d9 0a 00 00 je 4418b8 <__twalk+0xe18> + 440ddf: 31 f6 xor %esi,%esi + 440de1: 4c 89 ff mov %r15,%rdi + 440de4: ff d3 callq *%rbx + 440de6: 49 8b 7f 08 mov 0x8(%r15),%rdi + 440dea: 48 85 ff test %rdi,%rdi + 440ded: 74 0d je 440dfc <__twalk+0x35c> + 440def: ba 05 00 00 00 mov $0x5,%edx + 440df4: 48 89 de mov %rbx,%rsi + 440df7: e8 14 ef ff ff callq 43fd10 + 440dfc: 4c 89 ff mov %r15,%rdi + 440dff: ba 04 00 00 00 mov $0x4,%edx + 440e04: be 01 00 00 00 mov $0x1,%esi + 440e09: ff d3 callq *%rbx + 440e0b: 49 8b 7f 10 mov 0x10(%r15),%rdi + 440e0f: 48 85 ff test %rdi,%rdi + 440e12: 74 0d je 440e21 <__twalk+0x381> + 440e14: ba 05 00 00 00 mov $0x5,%edx + 440e19: 48 89 de mov %rbx,%rsi + 440e1c: e8 ef ee ff ff callq 43fd10 + 440e21: ba 04 00 00 00 mov $0x4,%edx + 440e26: be 02 00 00 00 mov $0x2,%esi + 440e2b: 4c 89 ff mov %r15,%rdi + 440e2e: ff d3 callq *%rbx + 440e30: ba 03 00 00 00 mov $0x3,%edx + 440e35: be 01 00 00 00 mov $0x1,%esi + 440e3a: 4c 89 f7 mov %r14,%rdi + 440e3d: ff d3 callq *%rbx + 440e3f: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 440e43: 4d 85 ff test %r15,%r15 + 440e46: 74 61 je 440ea9 <__twalk+0x409> + 440e48: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) + 440e4d: ba 04 00 00 00 mov $0x4,%edx + 440e52: 0f 84 40 0a 00 00 je 441898 <__twalk+0xdf8> + 440e58: 31 f6 xor %esi,%esi + 440e5a: 4c 89 ff mov %r15,%rdi + 440e5d: ff d3 callq *%rbx + 440e5f: 49 8b 7f 08 mov 0x8(%r15),%rdi + 440e63: 48 85 ff test %rdi,%rdi + 440e66: 74 0d je 440e75 <__twalk+0x3d5> + 440e68: ba 05 00 00 00 mov $0x5,%edx + 440e6d: 48 89 de mov %rbx,%rsi + 440e70: e8 9b ee ff ff callq 43fd10 + 440e75: 4c 89 ff mov %r15,%rdi + 440e78: ba 04 00 00 00 mov $0x4,%edx + 440e7d: be 01 00 00 00 mov $0x1,%esi + 440e82: ff d3 callq *%rbx + 440e84: 49 8b 7f 10 mov 0x10(%r15),%rdi + 440e88: 48 85 ff test %rdi,%rdi + 440e8b: 74 0d je 440e9a <__twalk+0x3fa> + 440e8d: ba 05 00 00 00 mov $0x5,%edx + 440e92: 48 89 de mov %rbx,%rsi + 440e95: e8 76 ee ff ff callq 43fd10 + 440e9a: ba 04 00 00 00 mov $0x4,%edx + 440e9f: be 02 00 00 00 mov $0x2,%esi + 440ea4: 4c 89 ff mov %r15,%rdi + 440ea7: ff d3 callq *%rbx + 440ea9: ba 03 00 00 00 mov $0x3,%edx + 440eae: be 02 00 00 00 mov $0x2,%esi + 440eb3: 4c 89 f7 mov %r14,%rdi + 440eb6: ff d3 callq *%rbx + 440eb8: ba 02 00 00 00 mov $0x2,%edx + 440ebd: be 01 00 00 00 mov $0x1,%esi + 440ec2: 4c 89 ef mov %r13,%rdi + 440ec5: ff d3 callq *%rbx + 440ec7: 4d 8b 75 10 mov 0x10(%r13),%r14 + 440ecb: 4d 85 f6 test %r14,%r14 + 440ece: 0f 84 09 01 00 00 je 440fdd <__twalk+0x53d> + 440ed4: 49 83 7e 08 00 cmpq $0x0,0x8(%r14) + 440ed9: ba 03 00 00 00 mov $0x3,%edx + 440ede: 0f 84 74 07 00 00 je 441658 <__twalk+0xbb8> + 440ee4: 31 f6 xor %esi,%esi + 440ee6: 4c 89 f7 mov %r14,%rdi + 440ee9: ff d3 callq *%rbx + 440eeb: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 440eef: 4d 85 ff test %r15,%r15 + 440ef2: 74 61 je 440f55 <__twalk+0x4b5> + 440ef4: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) + 440ef9: ba 04 00 00 00 mov $0x4,%edx + 440efe: 0f 84 54 09 00 00 je 441858 <__twalk+0xdb8> + 440f04: 31 f6 xor %esi,%esi + 440f06: 4c 89 ff mov %r15,%rdi + 440f09: ff d3 callq *%rbx + 440f0b: 49 8b 7f 08 mov 0x8(%r15),%rdi + 440f0f: 48 85 ff test %rdi,%rdi + 440f12: 74 0d je 440f21 <__twalk+0x481> + 440f14: ba 05 00 00 00 mov $0x5,%edx + 440f19: 48 89 de mov %rbx,%rsi + 440f1c: e8 ef ed ff ff callq 43fd10 + 440f21: 4c 89 ff mov %r15,%rdi + 440f24: ba 04 00 00 00 mov $0x4,%edx + 440f29: be 01 00 00 00 mov $0x1,%esi + 440f2e: ff d3 callq *%rbx + 440f30: 49 8b 7f 10 mov 0x10(%r15),%rdi + 440f34: 48 85 ff test %rdi,%rdi + 440f37: 74 0d je 440f46 <__twalk+0x4a6> + 440f39: ba 05 00 00 00 mov $0x5,%edx + 440f3e: 48 89 de mov %rbx,%rsi + 440f41: e8 ca ed ff ff callq 43fd10 + 440f46: ba 04 00 00 00 mov $0x4,%edx + 440f4b: be 02 00 00 00 mov $0x2,%esi + 440f50: 4c 89 ff mov %r15,%rdi + 440f53: ff d3 callq *%rbx + 440f55: ba 03 00 00 00 mov $0x3,%edx + 440f5a: be 01 00 00 00 mov $0x1,%esi + 440f5f: 4c 89 f7 mov %r14,%rdi + 440f62: ff d3 callq *%rbx + 440f64: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 440f68: 4d 85 ff test %r15,%r15 + 440f6b: 74 61 je 440fce <__twalk+0x52e> + 440f6d: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) + 440f72: ba 04 00 00 00 mov $0x4,%edx + 440f77: 0f 84 bb 08 00 00 je 441838 <__twalk+0xd98> + 440f7d: 31 f6 xor %esi,%esi + 440f7f: 4c 89 ff mov %r15,%rdi + 440f82: ff d3 callq *%rbx + 440f84: 49 8b 7f 08 mov 0x8(%r15),%rdi + 440f88: 48 85 ff test %rdi,%rdi + 440f8b: 74 0d je 440f9a <__twalk+0x4fa> + 440f8d: ba 05 00 00 00 mov $0x5,%edx + 440f92: 48 89 de mov %rbx,%rsi + 440f95: e8 76 ed ff ff callq 43fd10 + 440f9a: 4c 89 ff mov %r15,%rdi + 440f9d: ba 04 00 00 00 mov $0x4,%edx + 440fa2: be 01 00 00 00 mov $0x1,%esi + 440fa7: ff d3 callq *%rbx + 440fa9: 49 8b 7f 10 mov 0x10(%r15),%rdi + 440fad: 48 85 ff test %rdi,%rdi + 440fb0: 74 0d je 440fbf <__twalk+0x51f> + 440fb2: ba 05 00 00 00 mov $0x5,%edx + 440fb7: 48 89 de mov %rbx,%rsi + 440fba: e8 51 ed ff ff callq 43fd10 + 440fbf: ba 04 00 00 00 mov $0x4,%edx + 440fc4: be 02 00 00 00 mov $0x2,%esi + 440fc9: 4c 89 ff mov %r15,%rdi + 440fcc: ff d3 callq *%rbx + 440fce: ba 03 00 00 00 mov $0x3,%edx + 440fd3: be 02 00 00 00 mov $0x2,%esi + 440fd8: 4c 89 f7 mov %r14,%rdi + 440fdb: ff d3 callq *%rbx + 440fdd: ba 02 00 00 00 mov $0x2,%edx + 440fe2: be 02 00 00 00 mov $0x2,%esi + 440fe7: 4c 89 ef mov %r13,%rdi + 440fea: ff d3 callq *%rbx + 440fec: ba 01 00 00 00 mov $0x1,%edx + 440ff1: be 02 00 00 00 mov $0x2,%esi + 440ff6: 4c 89 e7 mov %r12,%rdi + 440ff9: ff d3 callq *%rbx + 440ffb: 31 d2 xor %edx,%edx + 440ffd: be 01 00 00 00 mov $0x1,%esi + 441002: 48 89 ef mov %rbp,%rdi + 441005: ff d3 callq *%rbx + 441007: 4c 8b 65 10 mov 0x10(%rbp),%r12 + 44100b: 4d 85 e4 test %r12,%r12 + 44100e: 0f 84 14 05 00 00 je 441528 <__twalk+0xa88> + 441014: 49 83 7c 24 08 00 cmpq $0x0,0x8(%r12) + 44101a: ba 01 00 00 00 mov $0x1,%edx + 44101f: 0f 84 3b 05 00 00 je 441560 <__twalk+0xac0> + 441025: 31 f6 xor %esi,%esi + 441027: 4c 89 e7 mov %r12,%rdi + 44102a: ff d3 callq *%rbx + 44102c: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 + 441031: 4d 85 ed test %r13,%r13 + 441034: 0f 84 61 02 00 00 je 44129b <__twalk+0x7fb> + 44103a: 49 83 7d 08 00 cmpq $0x0,0x8(%r13) + 44103f: ba 02 00 00 00 mov $0x2,%edx + 441044: 0f 84 8e 05 00 00 je 4415d8 <__twalk+0xb38> + 44104a: 31 f6 xor %esi,%esi + 44104c: 4c 89 ef mov %r13,%rdi + 44104f: ff d3 callq *%rbx + 441051: 4d 8b 75 08 mov 0x8(%r13),%r14 + 441055: 4d 85 f6 test %r14,%r14 + 441058: 0f 84 09 01 00 00 je 441167 <__twalk+0x6c7> + 44105e: 49 83 7e 08 00 cmpq $0x0,0x8(%r14) + 441063: ba 03 00 00 00 mov $0x3,%edx + 441068: 0f 84 aa 06 00 00 je 441718 <__twalk+0xc78> + 44106e: 31 f6 xor %esi,%esi + 441070: 4c 89 f7 mov %r14,%rdi + 441073: ff d3 callq *%rbx + 441075: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 441079: 4d 85 ff test %r15,%r15 + 44107c: 74 61 je 4410df <__twalk+0x63f> + 44107e: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) + 441083: ba 04 00 00 00 mov $0x4,%edx + 441088: 0f 84 ca 06 00 00 je 441758 <__twalk+0xcb8> + 44108e: 31 f6 xor %esi,%esi + 441090: 4c 89 ff mov %r15,%rdi + 441093: ff d3 callq *%rbx + 441095: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441099: 48 85 ff test %rdi,%rdi + 44109c: 74 0d je 4410ab <__twalk+0x60b> + 44109e: ba 05 00 00 00 mov $0x5,%edx + 4410a3: 48 89 de mov %rbx,%rsi + 4410a6: e8 65 ec ff ff callq 43fd10 + 4410ab: 4c 89 ff mov %r15,%rdi + 4410ae: ba 04 00 00 00 mov $0x4,%edx + 4410b3: be 01 00 00 00 mov $0x1,%esi + 4410b8: ff d3 callq *%rbx + 4410ba: 49 8b 7f 10 mov 0x10(%r15),%rdi + 4410be: 48 85 ff test %rdi,%rdi + 4410c1: 74 0d je 4410d0 <__twalk+0x630> + 4410c3: ba 05 00 00 00 mov $0x5,%edx + 4410c8: 48 89 de mov %rbx,%rsi + 4410cb: e8 40 ec ff ff callq 43fd10 + 4410d0: ba 04 00 00 00 mov $0x4,%edx + 4410d5: be 02 00 00 00 mov $0x2,%esi + 4410da: 4c 89 ff mov %r15,%rdi + 4410dd: ff d3 callq *%rbx + 4410df: ba 03 00 00 00 mov $0x3,%edx + 4410e4: be 01 00 00 00 mov $0x1,%esi + 4410e9: 4c 89 f7 mov %r14,%rdi + 4410ec: ff d3 callq *%rbx + 4410ee: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 4410f2: 4d 85 ff test %r15,%r15 + 4410f5: 74 61 je 441158 <__twalk+0x6b8> + 4410f7: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) + 4410fc: ba 04 00 00 00 mov $0x4,%edx + 441101: 0f 84 31 06 00 00 je 441738 <__twalk+0xc98> + 441107: 31 f6 xor %esi,%esi + 441109: 4c 89 ff mov %r15,%rdi + 44110c: ff d3 callq *%rbx + 44110e: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441112: 48 85 ff test %rdi,%rdi + 441115: 74 0d je 441124 <__twalk+0x684> + 441117: ba 05 00 00 00 mov $0x5,%edx + 44111c: 48 89 de mov %rbx,%rsi + 44111f: e8 ec eb ff ff callq 43fd10 + 441124: 4c 89 ff mov %r15,%rdi + 441127: ba 04 00 00 00 mov $0x4,%edx + 44112c: be 01 00 00 00 mov $0x1,%esi + 441131: ff d3 callq *%rbx + 441133: 49 8b 7f 10 mov 0x10(%r15),%rdi + 441137: 48 85 ff test %rdi,%rdi + 44113a: 74 0d je 441149 <__twalk+0x6a9> + 44113c: ba 05 00 00 00 mov $0x5,%edx + 441141: 48 89 de mov %rbx,%rsi + 441144: e8 c7 eb ff ff callq 43fd10 + 441149: ba 04 00 00 00 mov $0x4,%edx + 44114e: be 02 00 00 00 mov $0x2,%esi + 441153: 4c 89 ff mov %r15,%rdi + 441156: ff d3 callq *%rbx + 441158: ba 03 00 00 00 mov $0x3,%edx + 44115d: be 02 00 00 00 mov $0x2,%esi + 441162: 4c 89 f7 mov %r14,%rdi + 441165: ff d3 callq *%rbx + 441167: ba 02 00 00 00 mov $0x2,%edx + 44116c: be 01 00 00 00 mov $0x1,%esi + 441171: 4c 89 ef mov %r13,%rdi + 441174: ff d3 callq *%rbx + 441176: 4d 8b 75 10 mov 0x10(%r13),%r14 + 44117a: 4d 85 f6 test %r14,%r14 + 44117d: 0f 84 09 01 00 00 je 44128c <__twalk+0x7ec> + 441183: 49 83 7e 08 00 cmpq $0x0,0x8(%r14) + 441188: ba 03 00 00 00 mov $0x3,%edx + 44118d: 0f 84 65 05 00 00 je 4416f8 <__twalk+0xc58> + 441193: 31 f6 xor %esi,%esi + 441195: 4c 89 f7 mov %r14,%rdi + 441198: ff d3 callq *%rbx + 44119a: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 44119e: 4d 85 ff test %r15,%r15 + 4411a1: 74 61 je 441204 <__twalk+0x764> + 4411a3: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) + 4411a8: ba 04 00 00 00 mov $0x4,%edx + 4411ad: 0f 84 65 06 00 00 je 441818 <__twalk+0xd78> + 4411b3: 31 f6 xor %esi,%esi + 4411b5: 4c 89 ff mov %r15,%rdi + 4411b8: ff d3 callq *%rbx + 4411ba: 49 8b 7f 08 mov 0x8(%r15),%rdi + 4411be: 48 85 ff test %rdi,%rdi + 4411c1: 74 0d je 4411d0 <__twalk+0x730> + 4411c3: ba 05 00 00 00 mov $0x5,%edx + 4411c8: 48 89 de mov %rbx,%rsi + 4411cb: e8 40 eb ff ff callq 43fd10 + 4411d0: 4c 89 ff mov %r15,%rdi + 4411d3: ba 04 00 00 00 mov $0x4,%edx + 4411d8: be 01 00 00 00 mov $0x1,%esi + 4411dd: ff d3 callq *%rbx + 4411df: 49 8b 7f 10 mov 0x10(%r15),%rdi + 4411e3: 48 85 ff test %rdi,%rdi + 4411e6: 74 0d je 4411f5 <__twalk+0x755> + 4411e8: ba 05 00 00 00 mov $0x5,%edx + 4411ed: 48 89 de mov %rbx,%rsi + 4411f0: e8 1b eb ff ff callq 43fd10 + 4411f5: ba 04 00 00 00 mov $0x4,%edx + 4411fa: be 02 00 00 00 mov $0x2,%esi + 4411ff: 4c 89 ff mov %r15,%rdi + 441202: ff d3 callq *%rbx + 441204: ba 03 00 00 00 mov $0x3,%edx + 441209: be 01 00 00 00 mov $0x1,%esi + 44120e: 4c 89 f7 mov %r14,%rdi + 441211: ff d3 callq *%rbx + 441213: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 441217: 4d 85 ff test %r15,%r15 + 44121a: 74 61 je 44127d <__twalk+0x7dd> + 44121c: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) + 441221: ba 04 00 00 00 mov $0x4,%edx + 441226: 0f 84 cc 05 00 00 je 4417f8 <__twalk+0xd58> + 44122c: 31 f6 xor %esi,%esi + 44122e: 4c 89 ff mov %r15,%rdi + 441231: ff d3 callq *%rbx + 441233: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441237: 48 85 ff test %rdi,%rdi + 44123a: 74 0d je 441249 <__twalk+0x7a9> + 44123c: ba 05 00 00 00 mov $0x5,%edx + 441241: 48 89 de mov %rbx,%rsi + 441244: e8 c7 ea ff ff callq 43fd10 + 441249: 4c 89 ff mov %r15,%rdi + 44124c: ba 04 00 00 00 mov $0x4,%edx + 441251: be 01 00 00 00 mov $0x1,%esi + 441256: ff d3 callq *%rbx + 441258: 49 8b 7f 10 mov 0x10(%r15),%rdi + 44125c: 48 85 ff test %rdi,%rdi + 44125f: 74 0d je 44126e <__twalk+0x7ce> + 441261: ba 05 00 00 00 mov $0x5,%edx + 441266: 48 89 de mov %rbx,%rsi + 441269: e8 a2 ea ff ff callq 43fd10 + 44126e: ba 04 00 00 00 mov $0x4,%edx + 441273: be 02 00 00 00 mov $0x2,%esi + 441278: 4c 89 ff mov %r15,%rdi + 44127b: ff d3 callq *%rbx + 44127d: ba 03 00 00 00 mov $0x3,%edx + 441282: be 02 00 00 00 mov $0x2,%esi + 441287: 4c 89 f7 mov %r14,%rdi + 44128a: ff d3 callq *%rbx + 44128c: ba 02 00 00 00 mov $0x2,%edx + 441291: be 02 00 00 00 mov $0x2,%esi + 441296: 4c 89 ef mov %r13,%rdi + 441299: ff d3 callq *%rbx + 44129b: ba 01 00 00 00 mov $0x1,%edx + 4412a0: be 01 00 00 00 mov $0x1,%esi + 4412a5: 4c 89 e7 mov %r12,%rdi + 4412a8: ff d3 callq *%rbx + 4412aa: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 + 4412af: 4d 85 ed test %r13,%r13 + 4412b2: 0f 84 61 02 00 00 je 441519 <__twalk+0xa79> + 4412b8: 49 83 7d 08 00 cmpq $0x0,0x8(%r13) + 4412bd: ba 02 00 00 00 mov $0x2,%edx + 4412c2: 0f 84 50 03 00 00 je 441618 <__twalk+0xb78> + 4412c8: 31 f6 xor %esi,%esi + 4412ca: 4c 89 ef mov %r13,%rdi + 4412cd: ff d3 callq *%rbx + 4412cf: 4d 8b 75 08 mov 0x8(%r13),%r14 + 4412d3: 4d 85 f6 test %r14,%r14 + 4412d6: 0f 84 09 01 00 00 je 4413e5 <__twalk+0x945> + 4412dc: 49 83 7e 08 00 cmpq $0x0,0x8(%r14) + 4412e1: ba 03 00 00 00 mov $0x3,%edx + 4412e6: 0f 84 ec 03 00 00 je 4416d8 <__twalk+0xc38> + 4412ec: 31 f6 xor %esi,%esi + 4412ee: 4c 89 f7 mov %r14,%rdi + 4412f1: ff d3 callq *%rbx + 4412f3: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 4412f7: 4d 85 ff test %r15,%r15 + 4412fa: 74 61 je 44135d <__twalk+0x8bd> + 4412fc: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) + 441301: ba 04 00 00 00 mov $0x4,%edx + 441306: 0f 84 cc 04 00 00 je 4417d8 <__twalk+0xd38> + 44130c: 31 f6 xor %esi,%esi + 44130e: 4c 89 ff mov %r15,%rdi + 441311: ff d3 callq *%rbx + 441313: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441317: 48 85 ff test %rdi,%rdi + 44131a: 74 0d je 441329 <__twalk+0x889> + 44131c: ba 05 00 00 00 mov $0x5,%edx + 441321: 48 89 de mov %rbx,%rsi + 441324: e8 e7 e9 ff ff callq 43fd10 + 441329: 4c 89 ff mov %r15,%rdi + 44132c: ba 04 00 00 00 mov $0x4,%edx + 441331: be 01 00 00 00 mov $0x1,%esi + 441336: ff d3 callq *%rbx + 441338: 49 8b 7f 10 mov 0x10(%r15),%rdi + 44133c: 48 85 ff test %rdi,%rdi + 44133f: 74 0d je 44134e <__twalk+0x8ae> + 441341: ba 05 00 00 00 mov $0x5,%edx + 441346: 48 89 de mov %rbx,%rsi + 441349: e8 c2 e9 ff ff callq 43fd10 + 44134e: ba 04 00 00 00 mov $0x4,%edx + 441353: be 02 00 00 00 mov $0x2,%esi + 441358: 4c 89 ff mov %r15,%rdi + 44135b: ff d3 callq *%rbx + 44135d: ba 03 00 00 00 mov $0x3,%edx + 441362: be 01 00 00 00 mov $0x1,%esi + 441367: 4c 89 f7 mov %r14,%rdi + 44136a: ff d3 callq *%rbx + 44136c: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 441370: 4d 85 ff test %r15,%r15 + 441373: 74 61 je 4413d6 <__twalk+0x936> + 441375: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) + 44137a: ba 04 00 00 00 mov $0x4,%edx + 44137f: 0f 84 33 04 00 00 je 4417b8 <__twalk+0xd18> + 441385: 31 f6 xor %esi,%esi + 441387: 4c 89 ff mov %r15,%rdi + 44138a: ff d3 callq *%rbx + 44138c: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441390: 48 85 ff test %rdi,%rdi + 441393: 74 0d je 4413a2 <__twalk+0x902> + 441395: ba 05 00 00 00 mov $0x5,%edx + 44139a: 48 89 de mov %rbx,%rsi + 44139d: e8 6e e9 ff ff callq 43fd10 + 4413a2: 4c 89 ff mov %r15,%rdi + 4413a5: ba 04 00 00 00 mov $0x4,%edx + 4413aa: be 01 00 00 00 mov $0x1,%esi + 4413af: ff d3 callq *%rbx + 4413b1: 49 8b 7f 10 mov 0x10(%r15),%rdi + 4413b5: 48 85 ff test %rdi,%rdi + 4413b8: 74 0d je 4413c7 <__twalk+0x927> + 4413ba: ba 05 00 00 00 mov $0x5,%edx + 4413bf: 48 89 de mov %rbx,%rsi + 4413c2: e8 49 e9 ff ff callq 43fd10 + 4413c7: ba 04 00 00 00 mov $0x4,%edx + 4413cc: be 02 00 00 00 mov $0x2,%esi + 4413d1: 4c 89 ff mov %r15,%rdi + 4413d4: ff d3 callq *%rbx + 4413d6: ba 03 00 00 00 mov $0x3,%edx + 4413db: be 02 00 00 00 mov $0x2,%esi + 4413e0: 4c 89 f7 mov %r14,%rdi + 4413e3: ff d3 callq *%rbx + 4413e5: ba 02 00 00 00 mov $0x2,%edx + 4413ea: be 01 00 00 00 mov $0x1,%esi + 4413ef: 4c 89 ef mov %r13,%rdi + 4413f2: ff d3 callq *%rbx + 4413f4: 4d 8b 75 10 mov 0x10(%r13),%r14 + 4413f8: 4d 85 f6 test %r14,%r14 + 4413fb: 0f 84 09 01 00 00 je 44150a <__twalk+0xa6a> + 441401: 49 83 7e 08 00 cmpq $0x0,0x8(%r14) + 441406: ba 03 00 00 00 mov $0x3,%edx + 44140b: 0f 84 a7 02 00 00 je 4416b8 <__twalk+0xc18> + 441411: 31 f6 xor %esi,%esi + 441413: 4c 89 f7 mov %r14,%rdi + 441416: ff d3 callq *%rbx + 441418: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 44141c: 4d 85 ff test %r15,%r15 + 44141f: 74 61 je 441482 <__twalk+0x9e2> + 441421: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) + 441426: ba 04 00 00 00 mov $0x4,%edx + 44142b: 0f 84 67 03 00 00 je 441798 <__twalk+0xcf8> + 441431: 31 f6 xor %esi,%esi + 441433: 4c 89 ff mov %r15,%rdi + 441436: ff d3 callq *%rbx + 441438: 49 8b 7f 08 mov 0x8(%r15),%rdi + 44143c: 48 85 ff test %rdi,%rdi + 44143f: 74 0d je 44144e <__twalk+0x9ae> + 441441: ba 05 00 00 00 mov $0x5,%edx + 441446: 48 89 de mov %rbx,%rsi + 441449: e8 c2 e8 ff ff callq 43fd10 + 44144e: 4c 89 ff mov %r15,%rdi + 441451: ba 04 00 00 00 mov $0x4,%edx + 441456: be 01 00 00 00 mov $0x1,%esi + 44145b: ff d3 callq *%rbx + 44145d: 49 8b 7f 10 mov 0x10(%r15),%rdi + 441461: 48 85 ff test %rdi,%rdi + 441464: 74 0d je 441473 <__twalk+0x9d3> + 441466: ba 05 00 00 00 mov $0x5,%edx + 44146b: 48 89 de mov %rbx,%rsi + 44146e: e8 9d e8 ff ff callq 43fd10 + 441473: ba 04 00 00 00 mov $0x4,%edx + 441478: be 02 00 00 00 mov $0x2,%esi + 44147d: 4c 89 ff mov %r15,%rdi + 441480: ff d3 callq *%rbx + 441482: ba 03 00 00 00 mov $0x3,%edx + 441487: be 01 00 00 00 mov $0x1,%esi + 44148c: 4c 89 f7 mov %r14,%rdi + 44148f: ff d3 callq *%rbx + 441491: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 441495: 4d 85 ff test %r15,%r15 + 441498: 74 61 je 4414fb <__twalk+0xa5b> + 44149a: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) + 44149f: ba 04 00 00 00 mov $0x4,%edx + 4414a4: 0f 84 ce 02 00 00 je 441778 <__twalk+0xcd8> + 4414aa: 31 f6 xor %esi,%esi + 4414ac: 4c 89 ff mov %r15,%rdi + 4414af: ff d3 callq *%rbx + 4414b1: 49 8b 7f 08 mov 0x8(%r15),%rdi + 4414b5: 48 85 ff test %rdi,%rdi + 4414b8: 74 0d je 4414c7 <__twalk+0xa27> + 4414ba: ba 05 00 00 00 mov $0x5,%edx + 4414bf: 48 89 de mov %rbx,%rsi + 4414c2: e8 49 e8 ff ff callq 43fd10 + 4414c7: 4c 89 ff mov %r15,%rdi + 4414ca: ba 04 00 00 00 mov $0x4,%edx + 4414cf: be 01 00 00 00 mov $0x1,%esi + 4414d4: ff d3 callq *%rbx + 4414d6: 49 8b 7f 10 mov 0x10(%r15),%rdi + 4414da: 48 85 ff test %rdi,%rdi + 4414dd: 74 0d je 4414ec <__twalk+0xa4c> + 4414df: ba 05 00 00 00 mov $0x5,%edx + 4414e4: 48 89 de mov %rbx,%rsi + 4414e7: e8 24 e8 ff ff callq 43fd10 + 4414ec: ba 04 00 00 00 mov $0x4,%edx + 4414f1: be 02 00 00 00 mov $0x2,%esi + 4414f6: 4c 89 ff mov %r15,%rdi + 4414f9: ff d3 callq *%rbx + 4414fb: ba 03 00 00 00 mov $0x3,%edx + 441500: be 02 00 00 00 mov $0x2,%esi + 441505: 4c 89 f7 mov %r14,%rdi + 441508: ff d3 callq *%rbx + 44150a: ba 02 00 00 00 mov $0x2,%edx + 44150f: be 02 00 00 00 mov $0x2,%esi + 441514: 4c 89 ef mov %r13,%rdi + 441517: ff d3 callq *%rbx + 441519: ba 01 00 00 00 mov $0x1,%edx + 44151e: be 02 00 00 00 mov $0x2,%esi + 441523: 4c 89 e7 mov %r12,%rdi + 441526: ff d3 callq *%rbx + 441528: 31 d2 xor %edx,%edx + 44152a: be 02 00 00 00 mov $0x2,%esi + 44152f: 48 89 ef mov %rbp,%rdi + 441532: 48 89 d8 mov %rbx,%rax + 441535: 48 83 c4 08 add $0x8,%rsp + 441539: 5b pop %rbx + 44153a: 5d pop %rbp + 44153b: 41 5c pop %r12 + 44153d: 41 5d pop %r13 + 44153f: 41 5e pop %r14 + 441541: 41 5f pop %r15 + 441543: ff e0 jmpq *%rax + 441545: 0f 1f 00 nopl (%rax) + 441548: 48 83 c4 08 add $0x8,%rsp + 44154c: 5b pop %rbx + 44154d: 5d pop %rbp + 44154e: 41 5c pop %r12 + 441550: 41 5d pop %r13 + 441552: 41 5e pop %r14 + 441554: 41 5f pop %r15 + 441556: c3 retq + 441557: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 44155e: 00 00 + 441560: 49 83 7c 24 10 00 cmpq $0x0,0x10(%r12) + 441566: 0f 85 b9 fa ff ff jne 441025 <__twalk+0x585> + 44156c: be 03 00 00 00 mov $0x3,%esi + 441571: 4c 89 e7 mov %r12,%rdi + 441574: ff d3 callq *%rbx + 441576: eb b0 jmp 441528 <__twalk+0xa88> + 441578: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 44157f: 00 + 441580: 49 83 7c 24 10 00 cmpq $0x0,0x10(%r12) + 441586: 0f 85 6c f5 ff ff jne 440af8 <__twalk+0x58> + 44158c: be 03 00 00 00 mov $0x3,%esi + 441591: 4c 89 e7 mov %r12,%rdi + 441594: ff d3 callq *%rbx + 441596: e9 60 fa ff ff jmpq 440ffb <__twalk+0x55b> + 44159b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + 4415a0: 31 d2 xor %edx,%edx + 4415a2: 48 83 7f 10 00 cmpq $0x0,0x10(%rdi) + 4415a7: be 03 00 00 00 mov $0x3,%esi + 4415ac: 0f 85 1c f5 ff ff jne 440ace <__twalk+0x2e> + 4415b2: eb 81 jmp 441535 <__twalk+0xa95> + 4415b4: 0f 1f 40 00 nopl 0x0(%rax) + 4415b8: 49 83 7d 10 00 cmpq $0x0,0x10(%r13) + 4415bd: 0f 85 d8 f7 ff ff jne 440d9b <__twalk+0x2fb> + 4415c3: be 03 00 00 00 mov $0x3,%esi + 4415c8: 4c 89 ef mov %r13,%rdi + 4415cb: ff d3 callq *%rbx + 4415cd: e9 1a fa ff ff jmpq 440fec <__twalk+0x54c> + 4415d2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4415d8: 49 83 7d 10 00 cmpq $0x0,0x10(%r13) + 4415dd: 0f 85 67 fa ff ff jne 44104a <__twalk+0x5aa> + 4415e3: be 03 00 00 00 mov $0x3,%esi + 4415e8: 4c 89 ef mov %r13,%rdi + 4415eb: ff d3 callq *%rbx + 4415ed: e9 a9 fc ff ff jmpq 44129b <__twalk+0x7fb> + 4415f2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4415f8: 49 83 7d 10 00 cmpq $0x0,0x10(%r13) + 4415fd: 0f 85 1a f5 ff ff jne 440b1d <__twalk+0x7d> + 441603: be 03 00 00 00 mov $0x3,%esi + 441608: 4c 89 ef mov %r13,%rdi + 44160b: ff d3 callq *%rbx + 44160d: e9 5c f7 ff ff jmpq 440d6e <__twalk+0x2ce> + 441612: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441618: 49 83 7d 10 00 cmpq $0x0,0x10(%r13) + 44161d: 0f 85 a5 fc ff ff jne 4412c8 <__twalk+0x828> + 441623: be 03 00 00 00 mov $0x3,%esi + 441628: 4c 89 ef mov %r13,%rdi + 44162b: ff d3 callq *%rbx + 44162d: e9 e7 fe ff ff jmpq 441519 <__twalk+0xa79> + 441632: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441638: 49 83 7e 10 00 cmpq $0x0,0x10(%r14) + 44163d: 0f 85 fe f4 ff ff jne 440b41 <__twalk+0xa1> + 441643: be 03 00 00 00 mov $0x3,%esi + 441648: 4c 89 f7 mov %r14,%rdi + 44164b: ff d3 callq *%rbx + 44164d: e9 e8 f5 ff ff jmpq 440c3a <__twalk+0x19a> + 441652: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441658: 49 83 7e 10 00 cmpq $0x0,0x10(%r14) + 44165d: 0f 85 81 f8 ff ff jne 440ee4 <__twalk+0x444> + 441663: be 03 00 00 00 mov $0x3,%esi + 441668: 4c 89 f7 mov %r14,%rdi + 44166b: ff d3 callq *%rbx + 44166d: e9 6b f9 ff ff jmpq 440fdd <__twalk+0x53d> + 441672: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441678: 49 83 7e 10 00 cmpq $0x0,0x10(%r14) + 44167d: 0f 85 3c f7 ff ff jne 440dbf <__twalk+0x31f> + 441683: be 03 00 00 00 mov $0x3,%esi + 441688: 4c 89 f7 mov %r14,%rdi + 44168b: ff d3 callq *%rbx + 44168d: e9 26 f8 ff ff jmpq 440eb8 <__twalk+0x418> + 441692: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441698: 49 83 7e 10 00 cmpq $0x0,0x10(%r14) + 44169d: 0f 85 c3 f5 ff ff jne 440c66 <__twalk+0x1c6> + 4416a3: be 03 00 00 00 mov $0x3,%esi + 4416a8: 4c 89 f7 mov %r14,%rdi + 4416ab: ff d3 callq *%rbx + 4416ad: e9 ad f6 ff ff jmpq 440d5f <__twalk+0x2bf> + 4416b2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4416b8: 49 83 7e 10 00 cmpq $0x0,0x10(%r14) + 4416bd: 0f 85 4e fd ff ff jne 441411 <__twalk+0x971> + 4416c3: be 03 00 00 00 mov $0x3,%esi + 4416c8: 4c 89 f7 mov %r14,%rdi + 4416cb: ff d3 callq *%rbx + 4416cd: e9 38 fe ff ff jmpq 44150a <__twalk+0xa6a> + 4416d2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4416d8: 49 83 7e 10 00 cmpq $0x0,0x10(%r14) + 4416dd: 0f 85 09 fc ff ff jne 4412ec <__twalk+0x84c> + 4416e3: be 03 00 00 00 mov $0x3,%esi + 4416e8: 4c 89 f7 mov %r14,%rdi + 4416eb: ff d3 callq *%rbx + 4416ed: e9 f3 fc ff ff jmpq 4413e5 <__twalk+0x945> + 4416f2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4416f8: 49 83 7e 10 00 cmpq $0x0,0x10(%r14) + 4416fd: 0f 85 90 fa ff ff jne 441193 <__twalk+0x6f3> + 441703: be 03 00 00 00 mov $0x3,%esi + 441708: 4c 89 f7 mov %r14,%rdi + 44170b: ff d3 callq *%rbx + 44170d: e9 7a fb ff ff jmpq 44128c <__twalk+0x7ec> + 441712: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441718: 49 83 7e 10 00 cmpq $0x0,0x10(%r14) + 44171d: 0f 85 4b f9 ff ff jne 44106e <__twalk+0x5ce> + 441723: be 03 00 00 00 mov $0x3,%esi + 441728: 4c 89 f7 mov %r14,%rdi + 44172b: ff d3 callq *%rbx + 44172d: e9 35 fa ff ff jmpq 441167 <__twalk+0x6c7> + 441732: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441738: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) + 44173d: 0f 85 c4 f9 ff ff jne 441107 <__twalk+0x667> + 441743: be 03 00 00 00 mov $0x3,%esi + 441748: 4c 89 ff mov %r15,%rdi + 44174b: ff d3 callq *%rbx + 44174d: e9 06 fa ff ff jmpq 441158 <__twalk+0x6b8> + 441752: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441758: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) + 44175d: 0f 85 2b f9 ff ff jne 44108e <__twalk+0x5ee> + 441763: be 03 00 00 00 mov $0x3,%esi + 441768: 4c 89 ff mov %r15,%rdi + 44176b: ff d3 callq *%rbx + 44176d: e9 6d f9 ff ff jmpq 4410df <__twalk+0x63f> + 441772: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441778: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) + 44177d: 0f 85 27 fd ff ff jne 4414aa <__twalk+0xa0a> + 441783: be 03 00 00 00 mov $0x3,%esi + 441788: 4c 89 ff mov %r15,%rdi + 44178b: ff d3 callq *%rbx + 44178d: e9 69 fd ff ff jmpq 4414fb <__twalk+0xa5b> + 441792: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441798: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) + 44179d: 0f 85 8e fc ff ff jne 441431 <__twalk+0x991> + 4417a3: be 03 00 00 00 mov $0x3,%esi + 4417a8: 4c 89 ff mov %r15,%rdi + 4417ab: ff d3 callq *%rbx + 4417ad: e9 d0 fc ff ff jmpq 441482 <__twalk+0x9e2> + 4417b2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4417b8: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) + 4417bd: 0f 85 c2 fb ff ff jne 441385 <__twalk+0x8e5> + 4417c3: be 03 00 00 00 mov $0x3,%esi + 4417c8: 4c 89 ff mov %r15,%rdi + 4417cb: ff d3 callq *%rbx + 4417cd: e9 04 fc ff ff jmpq 4413d6 <__twalk+0x936> + 4417d2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4417d8: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) + 4417dd: 0f 85 29 fb ff ff jne 44130c <__twalk+0x86c> + 4417e3: be 03 00 00 00 mov $0x3,%esi + 4417e8: 4c 89 ff mov %r15,%rdi + 4417eb: ff d3 callq *%rbx + 4417ed: e9 6b fb ff ff jmpq 44135d <__twalk+0x8bd> + 4417f2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4417f8: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) + 4417fd: 0f 85 29 fa ff ff jne 44122c <__twalk+0x78c> + 441803: be 03 00 00 00 mov $0x3,%esi + 441808: 4c 89 ff mov %r15,%rdi + 44180b: ff d3 callq *%rbx + 44180d: e9 6b fa ff ff jmpq 44127d <__twalk+0x7dd> + 441812: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441818: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) + 44181d: 0f 85 90 f9 ff ff jne 4411b3 <__twalk+0x713> + 441823: be 03 00 00 00 mov $0x3,%esi + 441828: 4c 89 ff mov %r15,%rdi + 44182b: ff d3 callq *%rbx + 44182d: e9 d2 f9 ff ff jmpq 441204 <__twalk+0x764> + 441832: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441838: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) + 44183d: 0f 85 3a f7 ff ff jne 440f7d <__twalk+0x4dd> + 441843: be 03 00 00 00 mov $0x3,%esi + 441848: 4c 89 ff mov %r15,%rdi + 44184b: ff d3 callq *%rbx + 44184d: e9 7c f7 ff ff jmpq 440fce <__twalk+0x52e> + 441852: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441858: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) + 44185d: 0f 85 a1 f6 ff ff jne 440f04 <__twalk+0x464> + 441863: be 03 00 00 00 mov $0x3,%esi + 441868: 4c 89 ff mov %r15,%rdi + 44186b: ff d3 callq *%rbx + 44186d: e9 e3 f6 ff ff jmpq 440f55 <__twalk+0x4b5> + 441872: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441878: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) + 44187d: 0f 85 de f2 ff ff jne 440b61 <__twalk+0xc1> + 441883: be 03 00 00 00 mov $0x3,%esi + 441888: 4c 89 ff mov %r15,%rdi + 44188b: ff d3 callq *%rbx + 44188d: e9 20 f3 ff ff jmpq 440bb2 <__twalk+0x112> + 441892: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441898: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) + 44189d: 0f 85 b5 f5 ff ff jne 440e58 <__twalk+0x3b8> + 4418a3: be 03 00 00 00 mov $0x3,%esi + 4418a8: 4c 89 ff mov %r15,%rdi + 4418ab: ff d3 callq *%rbx + 4418ad: e9 f7 f5 ff ff jmpq 440ea9 <__twalk+0x409> + 4418b2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4418b8: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) + 4418bd: 0f 85 1c f5 ff ff jne 440ddf <__twalk+0x33f> + 4418c3: be 03 00 00 00 mov $0x3,%esi + 4418c8: 4c 89 ff mov %r15,%rdi + 4418cb: ff d3 callq *%rbx + 4418cd: e9 5e f5 ff ff jmpq 440e30 <__twalk+0x390> + 4418d2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4418d8: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) + 4418dd: 0f 85 f7 f2 ff ff jne 440bda <__twalk+0x13a> + 4418e3: be 03 00 00 00 mov $0x3,%esi + 4418e8: 4c 89 ff mov %r15,%rdi + 4418eb: ff d3 callq *%rbx + 4418ed: e9 39 f3 ff ff jmpq 440c2b <__twalk+0x18b> + 4418f2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 4418f8: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) + 4418fd: 0f 85 fc f3 ff ff jne 440cff <__twalk+0x25f> + 441903: be 03 00 00 00 mov $0x3,%esi + 441908: 4c 89 ff mov %r15,%rdi + 44190b: ff d3 callq *%rbx + 44190d: e9 3e f4 ff ff jmpq 440d50 <__twalk+0x2b0> + 441912: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441918: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) + 44191d: 0f 85 63 f3 ff ff jne 440c86 <__twalk+0x1e6> + 441923: be 03 00 00 00 mov $0x3,%esi + 441928: 4c 89 ff mov %r15,%rdi + 44192b: ff d3 callq *%rbx + 44192d: e9 a5 f3 ff ff jmpq 440cd7 <__twalk+0x237> + 441932: 0f 1f 40 00 nopl 0x0(%rax) + 441936: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) + 44193d: 00 00 00 + +0000000000441940 <__tdestroy>: + 441940: 48 85 ff test %rdi,%rdi + 441943: 0f 84 df 04 00 00 je 441e28 <__tdestroy+0x4e8> + 441949: 41 57 push %r15 + 44194b: 41 56 push %r14 + 44194d: 41 55 push %r13 + 44194f: 41 54 push %r12 + 441951: 55 push %rbp + 441952: 53 push %rbx + 441953: 48 89 fd mov %rdi,%rbp + 441956: 48 89 f3 mov %rsi,%rbx + 441959: 48 83 ec 08 sub $0x8,%rsp + 44195d: 4c 8b 67 08 mov 0x8(%rdi),%r12 + 441961: 4d 85 e4 test %r12,%r12 + 441964: 0f 84 5b 02 00 00 je 441bc5 <__tdestroy+0x285> + 44196a: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 + 44196f: 4d 85 ed test %r13,%r13 + 441972: 0f 84 17 01 00 00 je 441a8f <__tdestroy+0x14f> + 441978: 4d 8b 75 08 mov 0x8(%r13),%r14 + 44197c: 4d 85 f6 test %r14,%r14 + 44197f: 74 7a je 4419fb <__tdestroy+0xbb> + 441981: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 441985: 4d 85 ff test %r15,%r15 + 441988: 74 2c je 4419b6 <__tdestroy+0x76> + 44198a: 49 8b 7f 08 mov 0x8(%r15),%rdi + 44198e: 48 85 ff test %rdi,%rdi + 441991: 74 05 je 441998 <__tdestroy+0x58> + 441993: e8 08 e4 ff ff callq 43fda0 + 441998: 49 8b 7f 10 mov 0x10(%r15),%rdi + 44199c: 48 85 ff test %rdi,%rdi + 44199f: 74 08 je 4419a9 <__tdestroy+0x69> + 4419a1: 48 89 de mov %rbx,%rsi + 4419a4: e8 f7 e3 ff ff callq 43fda0 + 4419a9: 49 8b 3f mov (%r15),%rdi + 4419ac: ff d3 callq *%rbx + 4419ae: 4c 89 ff mov %r15,%rdi + 4419b1: e8 fa c3 fd ff callq 41ddb0 <__cfree> + 4419b6: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 4419ba: 4d 85 ff test %r15,%r15 + 4419bd: 74 2f je 4419ee <__tdestroy+0xae> + 4419bf: 49 8b 7f 08 mov 0x8(%r15),%rdi + 4419c3: 48 85 ff test %rdi,%rdi + 4419c6: 74 08 je 4419d0 <__tdestroy+0x90> + 4419c8: 48 89 de mov %rbx,%rsi + 4419cb: e8 d0 e3 ff ff callq 43fda0 + 4419d0: 49 8b 7f 10 mov 0x10(%r15),%rdi + 4419d4: 48 85 ff test %rdi,%rdi + 4419d7: 74 08 je 4419e1 <__tdestroy+0xa1> + 4419d9: 48 89 de mov %rbx,%rsi + 4419dc: e8 bf e3 ff ff callq 43fda0 + 4419e1: 49 8b 3f mov (%r15),%rdi + 4419e4: ff d3 callq *%rbx + 4419e6: 4c 89 ff mov %r15,%rdi + 4419e9: e8 c2 c3 fd ff callq 41ddb0 <__cfree> + 4419ee: 49 8b 3e mov (%r14),%rdi + 4419f1: ff d3 callq *%rbx + 4419f3: 4c 89 f7 mov %r14,%rdi + 4419f6: e8 b5 c3 fd ff callq 41ddb0 <__cfree> + 4419fb: 4d 8b 75 10 mov 0x10(%r13),%r14 + 4419ff: 4d 85 f6 test %r14,%r14 + 441a02: 74 7d je 441a81 <__tdestroy+0x141> + 441a04: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 441a08: 4d 85 ff test %r15,%r15 + 441a0b: 74 2f je 441a3c <__tdestroy+0xfc> + 441a0d: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441a11: 48 85 ff test %rdi,%rdi + 441a14: 74 08 je 441a1e <__tdestroy+0xde> + 441a16: 48 89 de mov %rbx,%rsi + 441a19: e8 82 e3 ff ff callq 43fda0 + 441a1e: 49 8b 7f 10 mov 0x10(%r15),%rdi + 441a22: 48 85 ff test %rdi,%rdi + 441a25: 74 08 je 441a2f <__tdestroy+0xef> + 441a27: 48 89 de mov %rbx,%rsi + 441a2a: e8 71 e3 ff ff callq 43fda0 + 441a2f: 49 8b 3f mov (%r15),%rdi + 441a32: ff d3 callq *%rbx + 441a34: 4c 89 ff mov %r15,%rdi + 441a37: e8 74 c3 fd ff callq 41ddb0 <__cfree> + 441a3c: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 441a40: 4d 85 ff test %r15,%r15 + 441a43: 74 2f je 441a74 <__tdestroy+0x134> + 441a45: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441a49: 48 85 ff test %rdi,%rdi + 441a4c: 74 08 je 441a56 <__tdestroy+0x116> + 441a4e: 48 89 de mov %rbx,%rsi + 441a51: e8 4a e3 ff ff callq 43fda0 + 441a56: 49 8b 7f 10 mov 0x10(%r15),%rdi + 441a5a: 48 85 ff test %rdi,%rdi + 441a5d: 74 08 je 441a67 <__tdestroy+0x127> + 441a5f: 48 89 de mov %rbx,%rsi + 441a62: e8 39 e3 ff ff callq 43fda0 + 441a67: 49 8b 3f mov (%r15),%rdi + 441a6a: ff d3 callq *%rbx + 441a6c: 4c 89 ff mov %r15,%rdi + 441a6f: e8 3c c3 fd ff callq 41ddb0 <__cfree> + 441a74: 49 8b 3e mov (%r14),%rdi + 441a77: ff d3 callq *%rbx + 441a79: 4c 89 f7 mov %r14,%rdi + 441a7c: e8 2f c3 fd ff callq 41ddb0 <__cfree> + 441a81: 49 8b 7d 00 mov 0x0(%r13),%rdi + 441a85: ff d3 callq *%rbx + 441a87: 4c 89 ef mov %r13,%rdi + 441a8a: e8 21 c3 fd ff callq 41ddb0 <__cfree> + 441a8f: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 + 441a94: 4d 85 ed test %r13,%r13 + 441a97: 0f 84 1a 01 00 00 je 441bb7 <__tdestroy+0x277> + 441a9d: 4d 8b 75 08 mov 0x8(%r13),%r14 + 441aa1: 4d 85 f6 test %r14,%r14 + 441aa4: 74 7d je 441b23 <__tdestroy+0x1e3> + 441aa6: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 441aaa: 4d 85 ff test %r15,%r15 + 441aad: 74 2f je 441ade <__tdestroy+0x19e> + 441aaf: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441ab3: 48 85 ff test %rdi,%rdi + 441ab6: 74 08 je 441ac0 <__tdestroy+0x180> + 441ab8: 48 89 de mov %rbx,%rsi + 441abb: e8 e0 e2 ff ff callq 43fda0 + 441ac0: 49 8b 7f 10 mov 0x10(%r15),%rdi + 441ac4: 48 85 ff test %rdi,%rdi + 441ac7: 74 08 je 441ad1 <__tdestroy+0x191> + 441ac9: 48 89 de mov %rbx,%rsi + 441acc: e8 cf e2 ff ff callq 43fda0 + 441ad1: 49 8b 3f mov (%r15),%rdi + 441ad4: ff d3 callq *%rbx + 441ad6: 4c 89 ff mov %r15,%rdi + 441ad9: e8 d2 c2 fd ff callq 41ddb0 <__cfree> + 441ade: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 441ae2: 4d 85 ff test %r15,%r15 + 441ae5: 74 2f je 441b16 <__tdestroy+0x1d6> + 441ae7: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441aeb: 48 85 ff test %rdi,%rdi + 441aee: 74 08 je 441af8 <__tdestroy+0x1b8> + 441af0: 48 89 de mov %rbx,%rsi + 441af3: e8 a8 e2 ff ff callq 43fda0 + 441af8: 49 8b 7f 10 mov 0x10(%r15),%rdi + 441afc: 48 85 ff test %rdi,%rdi + 441aff: 74 08 je 441b09 <__tdestroy+0x1c9> + 441b01: 48 89 de mov %rbx,%rsi + 441b04: e8 97 e2 ff ff callq 43fda0 + 441b09: 49 8b 3f mov (%r15),%rdi + 441b0c: ff d3 callq *%rbx + 441b0e: 4c 89 ff mov %r15,%rdi + 441b11: e8 9a c2 fd ff callq 41ddb0 <__cfree> + 441b16: 49 8b 3e mov (%r14),%rdi + 441b19: ff d3 callq *%rbx + 441b1b: 4c 89 f7 mov %r14,%rdi + 441b1e: e8 8d c2 fd ff callq 41ddb0 <__cfree> + 441b23: 4d 8b 75 10 mov 0x10(%r13),%r14 + 441b27: 4d 85 f6 test %r14,%r14 + 441b2a: 74 7d je 441ba9 <__tdestroy+0x269> + 441b2c: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 441b30: 4d 85 ff test %r15,%r15 + 441b33: 74 2f je 441b64 <__tdestroy+0x224> + 441b35: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441b39: 48 85 ff test %rdi,%rdi + 441b3c: 74 08 je 441b46 <__tdestroy+0x206> + 441b3e: 48 89 de mov %rbx,%rsi + 441b41: e8 5a e2 ff ff callq 43fda0 + 441b46: 49 8b 7f 10 mov 0x10(%r15),%rdi + 441b4a: 48 85 ff test %rdi,%rdi + 441b4d: 74 08 je 441b57 <__tdestroy+0x217> + 441b4f: 48 89 de mov %rbx,%rsi + 441b52: e8 49 e2 ff ff callq 43fda0 + 441b57: 49 8b 3f mov (%r15),%rdi + 441b5a: ff d3 callq *%rbx + 441b5c: 4c 89 ff mov %r15,%rdi + 441b5f: e8 4c c2 fd ff callq 41ddb0 <__cfree> + 441b64: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 441b68: 4d 85 ff test %r15,%r15 + 441b6b: 74 2f je 441b9c <__tdestroy+0x25c> + 441b6d: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441b71: 48 85 ff test %rdi,%rdi + 441b74: 74 08 je 441b7e <__tdestroy+0x23e> + 441b76: 48 89 de mov %rbx,%rsi + 441b79: e8 22 e2 ff ff callq 43fda0 + 441b7e: 49 8b 7f 10 mov 0x10(%r15),%rdi + 441b82: 48 85 ff test %rdi,%rdi + 441b85: 74 08 je 441b8f <__tdestroy+0x24f> + 441b87: 48 89 de mov %rbx,%rsi + 441b8a: e8 11 e2 ff ff callq 43fda0 + 441b8f: 49 8b 3f mov (%r15),%rdi + 441b92: ff d3 callq *%rbx + 441b94: 4c 89 ff mov %r15,%rdi + 441b97: e8 14 c2 fd ff callq 41ddb0 <__cfree> + 441b9c: 49 8b 3e mov (%r14),%rdi + 441b9f: ff d3 callq *%rbx + 441ba1: 4c 89 f7 mov %r14,%rdi + 441ba4: e8 07 c2 fd ff callq 41ddb0 <__cfree> + 441ba9: 49 8b 7d 00 mov 0x0(%r13),%rdi + 441bad: ff d3 callq *%rbx + 441baf: 4c 89 ef mov %r13,%rdi + 441bb2: e8 f9 c1 fd ff callq 41ddb0 <__cfree> + 441bb7: 49 8b 3c 24 mov (%r12),%rdi + 441bbb: ff d3 callq *%rbx + 441bbd: 4c 89 e7 mov %r12,%rdi + 441bc0: e8 eb c1 fd ff callq 41ddb0 <__cfree> + 441bc5: 4c 8b 65 10 mov 0x10(%rbp),%r12 + 441bc9: 4d 85 e4 test %r12,%r12 + 441bcc: 0f 84 37 02 00 00 je 441e09 <__tdestroy+0x4c9> + 441bd2: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 + 441bd7: 4d 85 ed test %r13,%r13 + 441bda: 0f 84 1a 01 00 00 je 441cfa <__tdestroy+0x3ba> + 441be0: 4d 8b 75 08 mov 0x8(%r13),%r14 + 441be4: 4d 85 f6 test %r14,%r14 + 441be7: 74 7d je 441c66 <__tdestroy+0x326> + 441be9: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 441bed: 4d 85 ff test %r15,%r15 + 441bf0: 74 2f je 441c21 <__tdestroy+0x2e1> + 441bf2: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441bf6: 48 85 ff test %rdi,%rdi + 441bf9: 74 08 je 441c03 <__tdestroy+0x2c3> + 441bfb: 48 89 de mov %rbx,%rsi + 441bfe: e8 9d e1 ff ff callq 43fda0 + 441c03: 49 8b 7f 10 mov 0x10(%r15),%rdi + 441c07: 48 85 ff test %rdi,%rdi + 441c0a: 74 08 je 441c14 <__tdestroy+0x2d4> + 441c0c: 48 89 de mov %rbx,%rsi + 441c0f: e8 8c e1 ff ff callq 43fda0 + 441c14: 49 8b 3f mov (%r15),%rdi + 441c17: ff d3 callq *%rbx + 441c19: 4c 89 ff mov %r15,%rdi + 441c1c: e8 8f c1 fd ff callq 41ddb0 <__cfree> + 441c21: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 441c25: 4d 85 ff test %r15,%r15 + 441c28: 74 2f je 441c59 <__tdestroy+0x319> + 441c2a: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441c2e: 48 85 ff test %rdi,%rdi + 441c31: 74 08 je 441c3b <__tdestroy+0x2fb> + 441c33: 48 89 de mov %rbx,%rsi + 441c36: e8 65 e1 ff ff callq 43fda0 + 441c3b: 49 8b 7f 10 mov 0x10(%r15),%rdi + 441c3f: 48 85 ff test %rdi,%rdi + 441c42: 74 08 je 441c4c <__tdestroy+0x30c> + 441c44: 48 89 de mov %rbx,%rsi + 441c47: e8 54 e1 ff ff callq 43fda0 + 441c4c: 49 8b 3f mov (%r15),%rdi + 441c4f: ff d3 callq *%rbx + 441c51: 4c 89 ff mov %r15,%rdi + 441c54: e8 57 c1 fd ff callq 41ddb0 <__cfree> + 441c59: 49 8b 3e mov (%r14),%rdi + 441c5c: ff d3 callq *%rbx + 441c5e: 4c 89 f7 mov %r14,%rdi + 441c61: e8 4a c1 fd ff callq 41ddb0 <__cfree> + 441c66: 4d 8b 75 10 mov 0x10(%r13),%r14 + 441c6a: 4d 85 f6 test %r14,%r14 + 441c6d: 74 7d je 441cec <__tdestroy+0x3ac> + 441c6f: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 441c73: 4d 85 ff test %r15,%r15 + 441c76: 74 2f je 441ca7 <__tdestroy+0x367> + 441c78: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441c7c: 48 85 ff test %rdi,%rdi + 441c7f: 74 08 je 441c89 <__tdestroy+0x349> + 441c81: 48 89 de mov %rbx,%rsi + 441c84: e8 17 e1 ff ff callq 43fda0 + 441c89: 49 8b 7f 10 mov 0x10(%r15),%rdi + 441c8d: 48 85 ff test %rdi,%rdi + 441c90: 74 08 je 441c9a <__tdestroy+0x35a> + 441c92: 48 89 de mov %rbx,%rsi + 441c95: e8 06 e1 ff ff callq 43fda0 + 441c9a: 49 8b 3f mov (%r15),%rdi + 441c9d: ff d3 callq *%rbx + 441c9f: 4c 89 ff mov %r15,%rdi + 441ca2: e8 09 c1 fd ff callq 41ddb0 <__cfree> + 441ca7: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 441cab: 4d 85 ff test %r15,%r15 + 441cae: 74 2f je 441cdf <__tdestroy+0x39f> + 441cb0: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441cb4: 48 85 ff test %rdi,%rdi + 441cb7: 74 08 je 441cc1 <__tdestroy+0x381> + 441cb9: 48 89 de mov %rbx,%rsi + 441cbc: e8 df e0 ff ff callq 43fda0 + 441cc1: 49 8b 7f 10 mov 0x10(%r15),%rdi + 441cc5: 48 85 ff test %rdi,%rdi + 441cc8: 74 08 je 441cd2 <__tdestroy+0x392> + 441cca: 48 89 de mov %rbx,%rsi + 441ccd: e8 ce e0 ff ff callq 43fda0 + 441cd2: 49 8b 3f mov (%r15),%rdi + 441cd5: ff d3 callq *%rbx + 441cd7: 4c 89 ff mov %r15,%rdi + 441cda: e8 d1 c0 fd ff callq 41ddb0 <__cfree> + 441cdf: 49 8b 3e mov (%r14),%rdi + 441ce2: ff d3 callq *%rbx + 441ce4: 4c 89 f7 mov %r14,%rdi + 441ce7: e8 c4 c0 fd ff callq 41ddb0 <__cfree> + 441cec: 49 8b 7d 00 mov 0x0(%r13),%rdi + 441cf0: ff d3 callq *%rbx + 441cf2: 4c 89 ef mov %r13,%rdi + 441cf5: e8 b6 c0 fd ff callq 41ddb0 <__cfree> + 441cfa: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 + 441cff: 4d 85 ed test %r13,%r13 + 441d02: 0f 84 f3 00 00 00 je 441dfb <__tdestroy+0x4bb> + 441d08: 4d 8b 75 08 mov 0x8(%r13),%r14 + 441d0c: 4d 85 f6 test %r14,%r14 + 441d0f: 74 7d je 441d8e <__tdestroy+0x44e> + 441d11: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 441d15: 4d 85 ff test %r15,%r15 + 441d18: 74 2f je 441d49 <__tdestroy+0x409> + 441d1a: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441d1e: 48 85 ff test %rdi,%rdi + 441d21: 74 08 je 441d2b <__tdestroy+0x3eb> + 441d23: 48 89 de mov %rbx,%rsi + 441d26: e8 75 e0 ff ff callq 43fda0 + 441d2b: 49 8b 7f 10 mov 0x10(%r15),%rdi + 441d2f: 48 85 ff test %rdi,%rdi + 441d32: 74 08 je 441d3c <__tdestroy+0x3fc> + 441d34: 48 89 de mov %rbx,%rsi + 441d37: e8 64 e0 ff ff callq 43fda0 + 441d3c: 49 8b 3f mov (%r15),%rdi + 441d3f: ff d3 callq *%rbx + 441d41: 4c 89 ff mov %r15,%rdi + 441d44: e8 67 c0 fd ff callq 41ddb0 <__cfree> + 441d49: 4d 8b 7e 10 mov 0x10(%r14),%r15 + 441d4d: 4d 85 ff test %r15,%r15 + 441d50: 74 2f je 441d81 <__tdestroy+0x441> + 441d52: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441d56: 48 85 ff test %rdi,%rdi + 441d59: 74 08 je 441d63 <__tdestroy+0x423> + 441d5b: 48 89 de mov %rbx,%rsi + 441d5e: e8 3d e0 ff ff callq 43fda0 + 441d63: 49 8b 7f 10 mov 0x10(%r15),%rdi + 441d67: 48 85 ff test %rdi,%rdi + 441d6a: 74 08 je 441d74 <__tdestroy+0x434> + 441d6c: 48 89 de mov %rbx,%rsi + 441d6f: e8 2c e0 ff ff callq 43fda0 + 441d74: 49 8b 3f mov (%r15),%rdi + 441d77: ff d3 callq *%rbx + 441d79: 4c 89 ff mov %r15,%rdi + 441d7c: e8 2f c0 fd ff callq 41ddb0 <__cfree> + 441d81: 49 8b 3e mov (%r14),%rdi + 441d84: ff d3 callq *%rbx + 441d86: 4c 89 f7 mov %r14,%rdi + 441d89: e8 22 c0 fd ff callq 41ddb0 <__cfree> + 441d8e: 4d 8b 75 10 mov 0x10(%r13),%r14 + 441d92: 4d 85 f6 test %r14,%r14 + 441d95: 74 56 je 441ded <__tdestroy+0x4ad> + 441d97: 4d 8b 7e 08 mov 0x8(%r14),%r15 + 441d9b: 4d 85 ff test %r15,%r15 + 441d9e: 74 2f je 441dcf <__tdestroy+0x48f> + 441da0: 49 8b 7f 08 mov 0x8(%r15),%rdi + 441da4: 48 85 ff test %rdi,%rdi + 441da7: 74 08 je 441db1 <__tdestroy+0x471> + 441da9: 48 89 de mov %rbx,%rsi + 441dac: e8 ef df ff ff callq 43fda0 + 441db1: 49 8b 7f 10 mov 0x10(%r15),%rdi + 441db5: 48 85 ff test %rdi,%rdi + 441db8: 74 08 je 441dc2 <__tdestroy+0x482> + 441dba: 48 89 de mov %rbx,%rsi + 441dbd: e8 de df ff ff callq 43fda0 + 441dc2: 49 8b 3f mov (%r15),%rdi + 441dc5: ff d3 callq *%rbx + 441dc7: 4c 89 ff mov %r15,%rdi + 441dca: e8 e1 bf fd ff callq 41ddb0 <__cfree> + 441dcf: 49 8b 7e 10 mov 0x10(%r14),%rdi + 441dd3: 48 85 ff test %rdi,%rdi + 441dd6: 74 08 je 441de0 <__tdestroy+0x4a0> + 441dd8: 48 89 de mov %rbx,%rsi + 441ddb: e8 c0 df ff ff callq 43fda0 + 441de0: 49 8b 3e mov (%r14),%rdi + 441de3: ff d3 callq *%rbx + 441de5: 4c 89 f7 mov %r14,%rdi + 441de8: e8 c3 bf fd ff callq 41ddb0 <__cfree> + 441ded: 49 8b 7d 00 mov 0x0(%r13),%rdi + 441df1: ff d3 callq *%rbx + 441df3: 4c 89 ef mov %r13,%rdi + 441df6: e8 b5 bf fd ff callq 41ddb0 <__cfree> + 441dfb: 49 8b 3c 24 mov (%r12),%rdi + 441dff: ff d3 callq *%rbx + 441e01: 4c 89 e7 mov %r12,%rdi + 441e04: e8 a7 bf fd ff callq 41ddb0 <__cfree> + 441e09: 48 8b 7d 00 mov 0x0(%rbp),%rdi + 441e0d: ff d3 callq *%rbx + 441e0f: 48 83 c4 08 add $0x8,%rsp + 441e13: 48 89 ef mov %rbp,%rdi + 441e16: 5b pop %rbx + 441e17: 5d pop %rbp + 441e18: 41 5c pop %r12 + 441e1a: 41 5d pop %r13 + 441e1c: 41 5e pop %r14 + 441e1e: 41 5f pop %r15 + 441e20: e9 8b bf fd ff jmpq 41ddb0 <__cfree> + 441e25: 0f 1f 00 nopl (%rax) + 441e28: f3 c3 repz retq + 441e2a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +0000000000441e30 : + 441e30: 41 57 push %r15 + 441e32: 41 56 push %r14 + 441e34: 49 89 d7 mov %rdx,%r15 + 441e37: 41 55 push %r13 + 441e39: 41 54 push %r12 + 441e3b: 4d 89 c6 mov %r8,%r14 + 441e3e: 55 push %rbp + 441e3f: 53 push %rbx + 441e40: 48 89 cb mov %rcx,%rbx + 441e43: 48 83 ec 18 sub $0x18,%rsp + 441e47: 48 8b 29 mov (%rcx),%rbp + 441e4a: 4c 8b 22 mov (%rdx),%r12 + 441e4d: 89 7c 24 08 mov %edi,0x8(%rsp) + 441e51: 48 89 34 24 mov %rsi,(%rsp) + 441e55: be 0a 00 00 00 mov $0xa,%esi + 441e5a: 49 89 ed mov %rbp,%r13 + 441e5d: 4c 89 e7 mov %r12,%rdi + 441e60: 4d 29 e5 sub %r12,%r13 + 441e63: 4c 89 ea mov %r13,%rdx + 441e66: e8 d5 3c fe ff callq 425b40 <__memchr> + 441e6b: 48 85 c0 test %rax,%rax + 441e6e: 74 30 je 441ea0 + 441e70: 48 83 c0 01 add $0x1,%rax + 441e74: 49 89 07 mov %rax,(%r15) + 441e77: 48 8b 13 mov (%rbx),%rdx + 441e7a: 48 39 d0 cmp %rdx,%rax + 441e7d: 0f 87 95 01 00 00 ja 442018 + 441e83: 49 39 d4 cmp %rdx,%r12 + 441e86: 74 30 je 441eb8 + 441e88: 4c 89 e0 mov %r12,%rax + 441e8b: 48 83 c4 18 add $0x18,%rsp + 441e8f: 5b pop %rbx + 441e90: 5d pop %rbp + 441e91: 41 5c pop %r12 + 441e93: 41 5d pop %r13 + 441e95: 41 5e pop %r14 + 441e97: 41 5f pop %r15 + 441e99: c3 retq + 441e9a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 441ea0: 4c 3b 24 24 cmp (%rsp),%r12 + 441ea4: 74 05 je 441eab + 441ea6: 4c 39 f5 cmp %r14,%rbp + 441ea9: 74 11 je 441ebc + 441eab: 48 8d 45 ff lea -0x1(%rbp),%rax + 441eaf: eb bf jmp 441e70 + 441eb1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 441eb8: 31 c0 xor %eax,%eax + 441eba: eb cf jmp 441e8b + 441ebc: 4c 8b 34 24 mov (%rsp),%r14 + 441ec0: 4c 89 ea mov %r13,%rdx + 441ec3: 4c 89 e6 mov %r12,%rsi + 441ec6: 45 31 e4 xor %r12d,%r12d + 441ec9: 4c 89 f7 mov %r14,%rdi + 441ecc: e8 2f e4 fb ff callq 400300 <__rela_iplt_end+0x38> + 441ed1: 4c 89 f0 mov %r14,%rax + 441ed4: 49 2b 07 sub (%r15),%rax + 441ed7: 48 89 ea mov %rbp,%rdx + 441eda: 48 01 03 add %rax,(%rbx) + 441edd: 48 63 44 24 08 movslq 0x8(%rsp),%rax + 441ee2: 4d 89 37 mov %r14,(%r15) + 441ee5: 48 8b 33 mov (%rbx),%rsi + 441ee8: 48 89 44 24 08 mov %rax,0x8(%rsp) + 441eed: 48 89 c7 mov %rax,%rdi + 441ef0: 48 29 f2 sub %rsi,%rdx + 441ef3: 44 89 e0 mov %r12d,%eax + 441ef6: 0f 05 syscall + 441ef8: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 441efe: 76 13 jbe 441f13 + 441f00: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx + 441f07: f7 d8 neg %eax + 441f09: 64 89 02 mov %eax,%fs:(%rdx) + 441f0c: 31 c0 xor %eax,%eax + 441f0e: e9 78 ff ff ff jmpq 441e8b + 441f13: 48 85 c0 test %rax,%rax + 441f16: 78 a0 js 441eb8 + 441f18: 48 03 03 add (%rbx),%rax + 441f1b: be 0a 00 00 00 mov $0xa,%esi + 441f20: 48 89 03 mov %rax,(%rbx) + 441f23: 4d 8b 37 mov (%r15),%r14 + 441f26: 48 89 c2 mov %rax,%rdx + 441f29: 49 89 c5 mov %rax,%r13 + 441f2c: 4c 29 f2 sub %r14,%rdx + 441f2f: 4c 89 f7 mov %r14,%rdi + 441f32: e8 09 3c fe ff callq 425b40 <__memchr> + 441f37: 48 85 c0 test %rax,%rax + 441f3a: 0f 85 c5 00 00 00 jne 442005 + 441f40: 4c 39 ed cmp %r13,%rbp + 441f43: 0f 85 e8 00 00 00 jne 442031 + 441f49: 48 8b 0c 24 mov (%rsp),%rcx + 441f4d: 48 89 e8 mov %rbp,%rax + 441f50: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi + 441f55: 48 29 c8 sub %rcx,%rax + 441f58: 4c 8d 34 40 lea (%rax,%rax,2),%r14 + 441f5c: 49 8d 46 03 lea 0x3(%r14),%rax + 441f60: 4d 85 f6 test %r14,%r14 + 441f63: 4c 0f 48 f0 cmovs %rax,%r14 + 441f67: 48 89 e8 mov %rbp,%rax + 441f6a: 49 c1 fe 02 sar $0x2,%r14 + 441f6e: 49 01 ce add %rcx,%r14 + 441f71: 4c 29 f0 sub %r14,%rax + 441f74: 4c 89 33 mov %r14,(%rbx) + 441f77: 4c 89 f6 mov %r14,%rsi + 441f7a: 48 89 04 24 mov %rax,(%rsp) + 441f7e: 48 89 c2 mov %rax,%rdx + 441f81: 44 89 e0 mov %r12d,%eax + 441f84: 0f 05 syscall + 441f86: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 441f8c: 49 89 c5 mov %rax,%r13 + 441f8f: 76 42 jbe 441fd3 + 441f91: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 441f98: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax + 441f9f: 44 89 e9 mov %r13d,%ecx + 441fa2: f7 d9 neg %ecx + 441fa4: 64 89 08 mov %ecx,%fs:(%rax) + 441fa7: 31 c0 xor %eax,%eax + 441fa9: e9 dd fe ff ff jmpq 441e8b + 441fae: 66 90 xchg %ax,%ax + 441fb0: 48 39 cd cmp %rcx,%rbp + 441fb3: 75 58 jne 44200d + 441fb5: 4c 89 33 mov %r14,(%rbx) + 441fb8: 48 8b 14 24 mov (%rsp),%rdx + 441fbc: 4c 89 f6 mov %r14,%rsi + 441fbf: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi + 441fc4: 31 c0 xor %eax,%eax + 441fc6: 0f 05 syscall + 441fc8: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax + 441fce: 49 89 c5 mov %rax,%r13 + 441fd1: 77 c5 ja 441f98 + 441fd3: 4d 85 ed test %r13,%r13 + 441fd6: 0f 88 dc fe ff ff js 441eb8 + 441fdc: 4c 8b 23 mov (%rbx),%r12 + 441fdf: 4c 89 ea mov %r13,%rdx + 441fe2: be 0a 00 00 00 mov $0xa,%esi + 441fe7: 4c 89 e7 mov %r12,%rdi + 441fea: e8 51 3b fe ff callq 425b40 <__memchr> + 441fef: 41 c6 04 24 0a movb $0xa,(%r12) + 441ff4: 4c 89 e9 mov %r13,%rcx + 441ff7: 48 03 0b add (%rbx),%rcx + 441ffa: 48 85 c0 test %rax,%rax + 441ffd: 48 89 0b mov %rcx,(%rbx) + 442000: 74 ae je 441fb0 + 442002: 4d 8b 37 mov (%r15),%r14 + 442005: 4d 89 f4 mov %r14,%r12 + 442008: e9 63 fe ff ff jmpq 441e70 + 44200d: 48 89 cd mov %rcx,%rbp + 442010: 4d 8b 27 mov (%r15),%r12 + 442013: e9 93 fe ff ff jmpq 441eab + 442018: b9 08 4a 4a 00 mov $0x4a4a08,%ecx + 44201d: ba 77 00 00 00 mov $0x77,%edx + 442022: be b8 49 4a 00 mov $0x4a49b8,%esi + 442027: bf 12 4a 4a 00 mov $0x4a4a12,%edi + 44202c: e8 0f f7 fb ff callq 401740 <__assert_fail> + 442031: 4c 89 ed mov %r13,%rbp + 442034: 4d 89 f4 mov %r14,%r12 + 442037: e9 6f fe ff ff jmpq 441eab + 44203c: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000442040 <__get_nprocs>: + 442040: 55 push %rbp + 442041: 31 ff xor %edi,%edi + 442043: 48 89 e5 mov %rsp,%rbp + 442046: 41 57 push %r15 + 442048: 41 56 push %r14 + 44204a: 41 55 push %r13 + 44204c: 41 54 push %r12 + 44204e: 53 push %rbx + 44204f: 48 83 ec 48 sub $0x48,%rsp + 442053: e8 68 4f 02 00 callq 466fc0
    : - 4009ae: 55 push %rbp - 4009af: 48 89 e5 mov %rsp,%rbp - 4009b2: c7 45 fc 05 00 00 00 movl $0x5,-0x4(%rbp) - 4009b9: 83 45 fc 01 addl $0x1,-0x4(%rbp) - 4009bd: 83 6d fc 01 subl $0x1,-0x4(%rbp) - 4009c1: b8 00 00 00 00 mov $0x0,%eax - 4009c6: 5d pop %rbp - 4009c7: c3 retq - 4009c8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4009cf: 00 - -00000000004009d0 : - 4009d0: 41 56 push %r14 - 4009d2: 41 55 push %r13 - 4009d4: b8 00 00 00 00 mov $0x0,%eax - 4009d9: 41 54 push %r12 - 4009db: 55 push %rbp - 4009dc: 49 89 cc mov %rcx,%r12 - 4009df: 53 push %rbx - 4009e0: 4d 89 c5 mov %r8,%r13 - 4009e3: 4d 89 ce mov %r9,%r14 - 4009e6: 48 81 ec 90 00 00 00 sub $0x90,%rsp - 4009ed: 48 85 c0 test %rax,%rax - 4009f0: 48 89 7c 24 18 mov %rdi,0x18(%rsp) - 4009f5: 89 74 24 0c mov %esi,0xc(%rsp) - 4009f9: 48 89 54 24 10 mov %rdx,0x10(%rsp) - 4009fe: 0f 84 2d 01 00 00 je 400b31 - 400a04: 8b 0d f6 f5 bf ff mov -0x400a0a(%rip),%ecx # 0 <_nl_current_LC_CTYPE> - 400a0a: 31 c0 xor %eax,%eax - 400a0c: 85 c9 test %ecx,%ecx - 400a0e: 48 89 d1 mov %rdx,%rcx - 400a11: 0f 94 c0 sete %al - 400a14: 89 05 e6 ac 2c 00 mov %eax,0x2cace6(%rip) # 6cb700 <__libc_multiple_libcs> - 400a1a: 48 63 44 24 0c movslq 0xc(%rsp),%rax - 400a1f: 48 8d 7c c1 08 lea 0x8(%rcx,%rax,8),%rdi - 400a24: 48 8b 84 24 c0 00 00 mov 0xc0(%rsp),%rax - 400a2b: 00 - 400a2c: 48 89 3d 0d bc 2c 00 mov %rdi,0x2cbc0d(%rip) # 6cc640 <__environ> - 400a33: 48 89 05 56 95 2c 00 mov %rax,0x2c9556(%rip) # 6c9f90 <__libc_stack_end> - 400a3a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 400a40: 48 83 c7 08 add $0x8,%rdi - 400a44: 48 83 7f f8 00 cmpq $0x0,-0x8(%rdi) - 400a49: 75 f5 jne 400a40 - 400a4b: e8 50 21 04 00 callq 442ba0 <_dl_aux_init> - 400a50: 48 83 3d f0 c7 2c 00 cmpq $0x0,0x2cc7f0(%rip) # 6cd248 <_dl_phdr> - 400a57: 00 - 400a58: 75 4f jne 400aa9 - 400a5a: b8 00 00 40 00 mov $0x400000,%eax - 400a5f: 48 85 c0 test %rax,%rax - 400a62: 74 45 je 400aa9 - 400a64: 66 83 3d ca f5 ff ff cmpw $0x38,-0xa36(%rip) # 400036 <__ehdr_start+0x36> - 400a6b: 38 - 400a6c: 74 19 je 400a87 - 400a6e: b9 70 0f 4a 00 mov $0x4a0f70,%ecx - 400a73: ba af 00 00 00 mov $0xaf,%edx - 400a78: be c4 0e 4a 00 mov $0x4a0ec4,%esi - 400a7d: bf f0 0e 4a 00 mov $0x4a0ef0,%edi - 400a82: e8 b9 0c 00 00 callq 401740 <__assert_fail> - 400a87: 48 8b 05 92 f5 ff ff mov -0xa6e(%rip),%rax # 400020 <__ehdr_start+0x20> - 400a8e: 48 05 00 00 40 00 add $0x400000,%rax - 400a94: 48 89 05 ad c7 2c 00 mov %rax,0x2cc7ad(%rip) # 6cd248 <_dl_phdr> - 400a9b: 0f b7 05 96 f5 ff ff movzwl -0xa6a(%rip),%eax # 400038 <__ehdr_start+0x38> - 400aa2: 48 89 05 d7 c7 2c 00 mov %rax,0x2cc7d7(%rip) # 6cd280 <_dl_phnum> - 400aa9: 8b 05 51 ac 2c 00 mov 0x2cac51(%rip),%eax # 6cb700 <__libc_multiple_libcs> - 400aaf: 85 c0 test %eax,%eax - 400ab1: 74 4c je 400aff - 400ab3: b8 d8 01 40 00 mov $0x4001d8,%eax - 400ab8: 48 3d c8 02 40 00 cmp $0x4002c8,%rax - 400abe: 73 7b jae 400b3b - 400ac0: 83 3d 19 f7 ff ff 25 cmpl $0x25,-0x8e7(%rip) # 4001e0 <__rela_iplt_start+0x8> - 400ac7: 48 8b 2d 0a f7 ff ff mov -0x8f6(%rip),%rbp # 4001d8 <__rela_iplt_start> - 400ace: bb d8 01 40 00 mov $0x4001d8,%ebx - 400ad3: 75 20 jne 400af5 - 400ad5: 0f 1f 00 nopl (%rax) - 400ad8: ff 53 10 callq *0x10(%rbx) - 400adb: 48 83 c3 18 add $0x18,%rbx - 400adf: 48 89 45 00 mov %rax,0x0(%rbp) - 400ae3: 48 81 fb c8 02 40 00 cmp $0x4002c8,%rbx - 400aea: 73 4f jae 400b3b - 400aec: 83 7b 08 25 cmpl $0x25,0x8(%rbx) - 400af0: 48 8b 2b mov (%rbx),%rbp - 400af3: 74 e3 je 400ad8 - 400af5: bf 48 0f 4a 00 mov $0x4a0f48,%edi - 400afa: e8 91 0d 01 00 callq 411890 <__libc_fatal> - 400aff: e8 9c 34 04 00 callq 443fa0 <_dl_discover_osversion> - 400b04: 85 c0 test %eax,%eax - 400b06: 0f 88 4c 01 00 00 js 400c58 - 400b0c: 8b 15 8e c7 2c 00 mov 0x2cc78e(%rip),%edx # 6cd2a0 <_dl_osversion> - 400b12: 85 d2 test %edx,%edx - 400b14: 0f 85 03 01 00 00 jne 400c1d - 400b1a: 89 05 80 c7 2c 00 mov %eax,0x2cc780(%rip) # 6cd2a0 <_dl_osversion> - 400b20: 3d 1f 06 02 00 cmp $0x2061f,%eax - 400b25: 7f 8c jg 400ab3 - 400b27: bf d8 0e 4a 00 mov $0x4a0ed8,%edi - 400b2c: e8 5f 0d 01 00 callq 411890 <__libc_fatal> - 400b31: 31 c0 xor %eax,%eax - 400b33: 48 89 d1 mov %rdx,%rcx - 400b36: e9 d9 fe ff ff jmpq 400a14 - 400b3b: e8 e0 09 00 00 callq 401520 <__pthread_initialize_minimal> - 400b40: 48 8b 15 39 94 2c 00 mov 0x2c9439(%rip),%rdx # 6c9f80 <_dl_random> - 400b47: 48 8b 02 mov (%rdx),%rax - 400b4a: 30 c0 xor %al,%al - 400b4c: 64 48 89 04 25 28 00 mov %rax,%fs:0x28 - 400b53: 00 00 - 400b55: 48 8b 42 08 mov 0x8(%rdx),%rax - 400b59: 64 48 89 04 25 30 00 mov %rax,%fs:0x30 - 400b60: 00 00 - 400b62: 4d 85 f6 test %r14,%r14 - 400b65: 74 0c je 400b73 - 400b67: 31 d2 xor %edx,%edx - 400b69: 31 f6 xor %esi,%esi - 400b6b: 4c 89 f7 mov %r14,%rdi - 400b6e: e8 7d e0 00 00 callq 40ebf0 <__cxa_atexit> - 400b73: 48 8b 15 c6 ba 2c 00 mov 0x2cbac6(%rip),%rdx # 6cc640 <__environ> - 400b7a: 48 8b 74 24 10 mov 0x10(%rsp),%rsi - 400b7f: 8b 7c 24 0c mov 0xc(%rsp),%edi - 400b83: e8 28 35 04 00 callq 4440b0 <__libc_init_first> - 400b88: 4d 85 ed test %r13,%r13 - 400b8b: 74 0c je 400b99 - 400b8d: 31 d2 xor %edx,%edx - 400b8f: 31 f6 xor %esi,%esi - 400b91: 4c 89 ef mov %r13,%rdi - 400b94: e8 57 e0 00 00 callq 40ebf0 <__cxa_atexit> - 400b99: 83 3d f8 93 2c 00 00 cmpl $0x0,0x2c93f8(%rip) # 6c9f98 <__libc_enable_secure> - 400ba0: 0f 85 bc 00 00 00 jne 400c62 - 400ba6: 4d 85 e4 test %r12,%r12 - 400ba9: 74 13 je 400bbe - 400bab: 48 8b 15 8e ba 2c 00 mov 0x2cba8e(%rip),%rdx # 6cc640 <__environ> - 400bb2: 48 8b 74 24 10 mov 0x10(%rsp),%rsi - 400bb7: 8b 7c 24 0c mov 0xc(%rsp),%edi - 400bbb: 41 ff d4 callq *%r12 - 400bbe: 31 ff xor %edi,%edi - 400bc0: 31 f6 xor %esi,%esi - 400bc2: e8 69 1f 04 00 callq 442b30 <_dl_debug_initialize> - 400bc7: 48 8d 7c 24 20 lea 0x20(%rsp),%rdi - 400bcc: e8 9f cf 00 00 callq 40db70 <_setjmp> - 400bd1: 85 c0 test %eax,%eax - 400bd3: 75 55 jne 400c2a - 400bd5: 64 48 8b 04 25 00 03 mov %fs:0x300,%rax - 400bdc: 00 00 - 400bde: 48 89 44 24 68 mov %rax,0x68(%rsp) - 400be3: 64 48 8b 04 25 f8 02 mov %fs:0x2f8,%rax - 400bea: 00 00 - 400bec: 48 89 44 24 70 mov %rax,0x70(%rsp) - 400bf1: 48 8d 44 24 20 lea 0x20(%rsp),%rax - 400bf6: 64 48 89 04 25 00 03 mov %rax,%fs:0x300 - 400bfd: 00 00 - 400bff: 48 8b 15 3a ba 2c 00 mov 0x2cba3a(%rip),%rdx # 6cc640 <__environ> - 400c06: 48 8b 74 24 10 mov 0x10(%rsp),%rsi - 400c0b: 8b 7c 24 0c mov 0xc(%rsp),%edi - 400c0f: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 400c14: ff d0 callq *%rax - 400c16: 89 c7 mov %eax,%edi - 400c18: e8 d3 dd 00 00 callq 40e9f0 - 400c1d: 39 c2 cmp %eax,%edx - 400c1f: 0f 86 fb fe ff ff jbe 400b20 - 400c25: e9 f0 fe ff ff jmpq 400b1a - 400c2a: e8 d1 f3 bf ff callq 0 <_nl_current_LC_CTYPE> - 400c2f: f0 ff 0d ca f3 bf ff lock decl -0x400c36(%rip) # 0 <_nl_current_LC_CTYPE> - 400c36: 0f 94 c0 sete %al - 400c39: 84 c0 test %al,%al - 400c3b: 74 04 je 400c41 - 400c3d: 31 c0 xor %eax,%eax - 400c3f: eb d5 jmp 400c16 - 400c41: ba 3c 00 00 00 mov $0x3c,%edx - 400c46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 400c4d: 00 00 00 - 400c50: 31 ff xor %edi,%edi - 400c52: 89 d0 mov %edx,%eax - 400c54: 0f 05 syscall - 400c56: eb f8 jmp 400c50 - 400c58: bf 20 0f 4a 00 mov $0x4a0f20,%edi - 400c5d: e8 2e 0c 01 00 callq 411890 <__libc_fatal> - 400c62: e8 59 04 00 00 callq 4010c0 <__libc_check_standard_fds> - 400c67: e9 3a ff ff ff jmpq 400ba6 - 400c6c: 0f 1f 40 00 nopl 0x0(%rax) - -0000000000400c70 : - 400c70: 49 89 d1 mov %rdx,%r9 - 400c73: 53 push %rbx - 400c74: 49 89 c8 mov %rcx,%r8 - 400c77: b8 01 00 00 00 mov $0x1,%eax - 400c7c: 0f a2 cpuid - 400c7e: 89 15 10 ba 2c 00 mov %edx,0x2cba10(%rip) # 6cc694 <_dl_x86_cpu_features+0x14> - 400c84: 89 c2 mov %eax,%edx - 400c86: 89 1d 00 ba 2c 00 mov %ebx,0x2cba00(%rip) # 6cc68c <_dl_x86_cpu_features+0xc> - 400c8c: c1 ea 08 shr $0x8,%edx - 400c8f: 89 0d fb b9 2c 00 mov %ecx,0x2cb9fb(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> - 400c95: 89 05 ed b9 2c 00 mov %eax,0x2cb9ed(%rip) # 6cc688 <_dl_x86_cpu_features+0x8> - 400c9b: 83 e2 0f and $0xf,%edx - 400c9e: 89 17 mov %edx,(%rdi) - 400ca0: 89 c2 mov %eax,%edx - 400ca2: c1 ea 04 shr $0x4,%edx - 400ca5: 83 e2 0f and $0xf,%edx - 400ca8: 89 16 mov %edx,(%rsi) - 400caa: 89 c2 mov %eax,%edx - 400cac: c1 ea 0c shr $0xc,%edx - 400caf: 81 e2 f0 00 00 00 and $0xf0,%edx - 400cb5: 41 89 11 mov %edx,(%r9) - 400cb8: 83 3f 0f cmpl $0xf,(%rdi) - 400cbb: 75 12 jne 400ccf - 400cbd: 89 c2 mov %eax,%edx - 400cbf: c1 ea 14 shr $0x14,%edx - 400cc2: 0f b6 d2 movzbl %dl,%edx - 400cc5: 83 c2 0f add $0xf,%edx - 400cc8: 89 17 mov %edx,(%rdi) - 400cca: 41 8b 11 mov (%r9),%edx - 400ccd: 01 16 add %edx,(%rsi) - 400ccf: 83 e0 0f and $0xf,%eax - 400cd2: 41 89 00 mov %eax,(%r8) - 400cd5: 5b pop %rbx - 400cd6: c3 retq - 400cd7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 400cde: 00 00 - -0000000000400ce0 <__libc_start_main>: - 400ce0: 41 55 push %r13 - 400ce2: 41 54 push %r12 - 400ce4: 31 c0 xor %eax,%eax - 400ce6: 55 push %rbp - 400ce7: 53 push %rbx - 400ce8: 48 89 d5 mov %rdx,%rbp - 400ceb: 49 89 cc mov %rcx,%r12 - 400cee: 41 89 f3 mov %esi,%r11d - 400cf1: 49 89 fa mov %rdi,%r10 - 400cf4: 48 83 ec 28 sub $0x28,%rsp - 400cf8: 0f a2 cpuid - 400cfa: 81 fb 47 65 6e 75 cmp $0x756e6547,%ebx - 400d00: 89 05 7e b9 2c 00 mov %eax,0x2cb97e(%rip) # 6cc684 <_dl_x86_cpu_features+0x4> - 400d06: c7 44 24 10 00 00 00 movl $0x0,0x10(%rsp) - 400d0d: 00 - 400d0e: 40 0f 94 c6 sete %sil - 400d12: 81 f9 6e 74 65 6c cmp $0x6c65746e,%ecx - 400d18: c7 44 24 14 00 00 00 movl $0x0,0x14(%rsp) - 400d1f: 00 - 400d20: 0f 94 c0 sete %al - 400d23: c7 44 24 18 00 00 00 movl $0x0,0x18(%rsp) - 400d2a: 00 - 400d2b: 40 84 c6 test %al,%sil - 400d2e: 74 0c je 400d3c <__libc_start_main+0x5c> - 400d30: 81 fa 69 6e 65 49 cmp $0x49656e69,%edx - 400d36: 0f 84 6d 01 00 00 je 400ea9 <__libc_start_main+0x1c9> - 400d3c: 81 fb 41 75 74 68 cmp $0x68747541,%ebx - 400d42: 40 0f 94 c6 sete %sil - 400d46: 81 f9 63 41 4d 44 cmp $0x444d4163,%ecx - 400d4c: 0f 94 c0 sete %al - 400d4f: 40 84 c6 test %al,%sil - 400d52: 74 0c je 400d60 <__libc_start_main+0x80> - 400d54: 81 fa 65 6e 74 69 cmp $0x69746e65,%edx - 400d5a: 0f 84 94 01 00 00 je 400ef4 <__libc_start_main+0x214> - 400d60: 44 8b 2d 29 b9 2c 00 mov 0x2cb929(%rip),%r13d # 6cc690 <_dl_x86_cpu_features+0x10> - 400d67: 8b 7c 24 14 mov 0x14(%rsp),%edi - 400d6b: be 03 00 00 00 mov $0x3,%esi - 400d70: 8b 05 1e b9 2c 00 mov 0x2cb91e(%rip),%eax # 6cc694 <_dl_x86_cpu_features+0x14> - 400d76: f6 c4 01 test $0x1,%ah - 400d79: 74 0a je 400d85 <__libc_start_main+0xa5> - 400d7b: 81 0d 3b b9 2c 00 00 orl $0x4000,0x2cb93b(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 400d82: 40 00 00 - 400d85: f6 c4 80 test $0x80,%ah - 400d88: 74 0a je 400d94 <__libc_start_main+0xb4> - 400d8a: 81 0d 2c b9 2c 00 00 orl $0x8000,0x2cb92c(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 400d91: 80 00 00 - 400d94: 83 3d e9 b8 2c 00 06 cmpl $0x6,0x2cb8e9(%rip) # 6cc684 <_dl_x86_cpu_features+0x4> - 400d9b: 7e 21 jle 400dbe <__libc_start_main+0xde> - 400d9d: b8 07 00 00 00 mov $0x7,%eax - 400da2: 31 c9 xor %ecx,%ecx - 400da4: 0f a2 cpuid - 400da6: 89 05 ec b8 2c 00 mov %eax,0x2cb8ec(%rip) # 6cc698 <_dl_x86_cpu_features+0x18> - 400dac: 89 1d ea b8 2c 00 mov %ebx,0x2cb8ea(%rip) # 6cc69c <_dl_x86_cpu_features+0x1c> - 400db2: 89 0d e8 b8 2c 00 mov %ecx,0x2cb8e8(%rip) # 6cc6a0 <_dl_x86_cpu_features+0x20> - 400db8: 89 15 e6 b8 2c 00 mov %edx,0x2cb8e6(%rip) # 6cc6a4 <_dl_x86_cpu_features+0x24> - 400dbe: 41 f7 c5 00 00 00 08 test $0x8000000,%r13d - 400dc5: 74 0f je 400dd6 <__libc_start_main+0xf6> - 400dc7: 31 c9 xor %ecx,%ecx - 400dc9: 0f 01 d0 xgetbv - 400dcc: 89 c2 mov %eax,%edx - 400dce: 83 e2 06 and $0x6,%edx - 400dd1: 83 fa 06 cmp $0x6,%edx - 400dd4: 74 6f je 400e45 <__libc_start_main+0x165> - 400dd6: 83 fe 01 cmp $0x1,%esi - 400dd9: 74 2f je 400e0a <__libc_start_main+0x12a> - 400ddb: 8b 44 24 10 mov 0x10(%rsp),%eax - 400ddf: 48 83 ec 08 sub $0x8,%rsp - 400de3: 89 3d d3 b8 2c 00 mov %edi,0x2cb8d3(%rip) # 6cc6bc <_dl_x86_cpu_features+0x3c> - 400de9: ff 74 24 58 pushq 0x58(%rsp) - 400ded: 89 35 8d b8 2c 00 mov %esi,0x2cb88d(%rip) # 6cc680 <_dl_x86_cpu_features> - 400df3: 4c 89 e1 mov %r12,%rcx - 400df6: 48 89 ea mov %rbp,%rdx - 400df9: 44 89 de mov %r11d,%esi - 400dfc: 4c 89 d7 mov %r10,%rdi - 400dff: 89 05 b3 b8 2c 00 mov %eax,0x2cb8b3(%rip) # 6cc6b8 <_dl_x86_cpu_features+0x38> - 400e05: e8 c6 fb ff ff callq 4009d0 - 400e0a: 83 7c 24 10 06 cmpl $0x6,0x10(%rsp) - 400e0f: 75 ca jne 400ddb <__libc_start_main+0xfb> - 400e11: 83 ff 3f cmp $0x3f,%edi - 400e14: 0f 84 7a 01 00 00 je 400f94 <__libc_start_main+0x2b4> - 400e1a: 83 ff 3c cmp $0x3c,%edi - 400e1d: 0f 84 0b 02 00 00 je 40102e <__libc_start_main+0x34e> - 400e23: 8d 47 bb lea -0x45(%rdi),%eax - 400e26: 83 f8 01 cmp $0x1,%eax - 400e29: 0f 86 3d 01 00 00 jbe 400f6c <__libc_start_main+0x28c> - 400e2f: 83 ff 3d cmp $0x3d,%edi - 400e32: 0f 85 4e 01 00 00 jne 400f86 <__libc_start_main+0x2a6> - 400e38: 83 7c 24 18 04 cmpl $0x4,0x18(%rsp) - 400e3d: 0f 86 34 01 00 00 jbe 400f77 <__libc_start_main+0x297> - 400e43: eb 96 jmp 400ddb <__libc_start_main+0xfb> - 400e45: 41 f7 c5 00 00 00 10 test $0x10000000,%r13d - 400e4c: 74 07 je 400e55 <__libc_start_main+0x175> - 400e4e: 83 0d 6b b8 2c 00 40 orl $0x40,0x2cb86b(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 400e55: 8b 15 41 b8 2c 00 mov 0x2cb841(%rip),%edx # 6cc69c <_dl_x86_cpu_features+0x1c> - 400e5b: f6 c2 20 test $0x20,%dl - 400e5e: 74 0a je 400e6a <__libc_start_main+0x18a> - 400e60: 81 0d 56 b8 2c 00 00 orl $0xc00,0x2cb856(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 400e67: 0c 00 00 - 400e6a: 25 e0 00 00 00 and $0xe0,%eax - 400e6f: 3d e0 00 00 00 cmp $0xe0,%eax - 400e74: 0f 84 8c 01 00 00 je 401006 <__libc_start_main+0x326> - 400e7a: 41 81 e5 00 10 00 00 and $0x1000,%r13d - 400e81: 74 0a je 400e8d <__libc_start_main+0x1ad> - 400e83: 81 0d 33 b8 2c 00 80 orl $0x80,0x2cb833(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 400e8a: 00 00 00 - 400e8d: f6 05 1e b8 2c 00 01 testb $0x1,0x2cb81e(%rip) # 6cc6b2 <_dl_x86_cpu_features+0x32> - 400e94: 0f 84 3c ff ff ff je 400dd6 <__libc_start_main+0xf6> - 400e9a: 81 0d 1c b8 2c 00 00 orl $0x100,0x2cb81c(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 400ea1: 01 00 00 - 400ea4: e9 2d ff ff ff jmpq 400dd6 <__libc_start_main+0xf6> - 400ea9: 48 8d 4c 24 18 lea 0x18(%rsp),%rcx - 400eae: 48 8d 54 24 1c lea 0x1c(%rsp),%rdx - 400eb3: 48 8d 74 24 14 lea 0x14(%rsp),%rsi - 400eb8: 48 8d 7c 24 10 lea 0x10(%rsp),%rdi - 400ebd: 4c 89 4c 24 08 mov %r9,0x8(%rsp) - 400ec2: 4c 89 04 24 mov %r8,(%rsp) - 400ec6: e8 a5 fd ff ff callq 400c70 - 400ecb: 83 7c 24 10 06 cmpl $0x6,0x10(%rsp) - 400ed0: 44 8b 2d b9 b7 2c 00 mov 0x2cb7b9(%rip),%r13d # 6cc690 <_dl_x86_cpu_features+0x10> - 400ed7: 4c 8b 04 24 mov (%rsp),%r8 - 400edb: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 - 400ee0: 0f 84 ba 00 00 00 je 400fa0 <__libc_start_main+0x2c0> - 400ee6: be 01 00 00 00 mov $0x1,%esi - 400eeb: 8b 7c 24 14 mov 0x14(%rsp),%edi - 400eef: e9 7c fe ff ff jmpq 400d70 <__libc_start_main+0x90> - 400ef4: 48 8d 4c 24 18 lea 0x18(%rsp),%rcx - 400ef9: 48 8d 54 24 1c lea 0x1c(%rsp),%rdx - 400efe: 48 8d 74 24 14 lea 0x14(%rsp),%rsi - 400f03: 48 8d 7c 24 10 lea 0x10(%rsp),%rdi - 400f08: 4c 89 4c 24 08 mov %r9,0x8(%rsp) - 400f0d: 4c 89 04 24 mov %r8,(%rsp) - 400f11: e8 5a fd ff ff callq 400c70 - 400f16: b8 00 00 00 80 mov $0x80000000,%eax - 400f1b: 4c 8b 04 24 mov (%rsp),%r8 - 400f1f: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 - 400f24: 0f a2 cpuid - 400f26: 3d 00 00 00 80 cmp $0x80000000,%eax - 400f2b: 76 1f jbe 400f4c <__libc_start_main+0x26c> - 400f2d: b8 01 00 00 80 mov $0x80000001,%eax - 400f32: 0f a2 cpuid - 400f34: 89 05 6e b7 2c 00 mov %eax,0x2cb76e(%rip) # 6cc6a8 <_dl_x86_cpu_features+0x28> - 400f3a: 89 1d 6c b7 2c 00 mov %ebx,0x2cb76c(%rip) # 6cc6ac <_dl_x86_cpu_features+0x2c> - 400f40: 89 0d 6a b7 2c 00 mov %ecx,0x2cb76a(%rip) # 6cc6b0 <_dl_x86_cpu_features+0x30> - 400f46: 89 15 68 b7 2c 00 mov %edx,0x2cb768(%rip) # 6cc6b4 <_dl_x86_cpu_features+0x34> - 400f4c: 83 7c 24 10 15 cmpl $0x15,0x10(%rsp) - 400f51: 8b 7c 24 14 mov 0x14(%rsp),%edi - 400f55: 0f 84 93 00 00 00 je 400fee <__libc_start_main+0x30e> - 400f5b: be 02 00 00 00 mov $0x2,%esi - 400f60: 44 8b 2d 29 b7 2c 00 mov 0x2cb729(%rip),%r13d # 6cc690 <_dl_x86_cpu_features+0x10> - 400f67: e9 04 fe ff ff jmpq 400d70 <__libc_start_main+0x90> - 400f6c: 83 7c 24 18 01 cmpl $0x1,0x18(%rsp) - 400f71: 0f 87 64 fe ff ff ja 400ddb <__libc_start_main+0xfb> - 400f77: 81 25 1b b7 2c 00 ef andl $0xfffff7ef,0x2cb71b(%rip) # 6cc69c <_dl_x86_cpu_features+0x1c> - 400f7e: f7 ff ff - 400f81: e9 55 fe ff ff jmpq 400ddb <__libc_start_main+0xfb> - 400f86: 83 ff 47 cmp $0x47,%edi - 400f89: 74 e1 je 400f6c <__libc_start_main+0x28c> - 400f8b: 83 ff 56 cmp $0x56,%edi - 400f8e: 0f 85 47 fe ff ff jne 400ddb <__libc_start_main+0xfb> - 400f94: 83 7c 24 18 02 cmpl $0x2,0x18(%rsp) - 400f99: 76 dc jbe 400f77 <__libc_start_main+0x297> - 400f9b: e9 3b fe ff ff jmpq 400ddb <__libc_start_main+0xfb> - 400fa0: 8b 44 24 1c mov 0x1c(%rsp),%eax - 400fa4: 03 44 24 14 add 0x14(%rsp),%eax - 400fa8: 83 f8 2f cmp $0x2f,%eax - 400fab: 89 44 24 14 mov %eax,0x14(%rsp) - 400faf: 0f 87 97 00 00 00 ja 40104c <__libc_start_main+0x36c> - 400fb5: 83 f8 2e cmp $0x2e,%eax - 400fb8: 0f 83 df 00 00 00 jae 40109d <__libc_start_main+0x3bd> - 400fbe: 83 f8 1f cmp $0x1f,%eax - 400fc1: 0f 87 b6 00 00 00 ja 40107d <__libc_start_main+0x39d> - 400fc7: 83 f8 1e cmp $0x1e,%eax - 400fca: 0f 83 cd 00 00 00 jae 40109d <__libc_start_main+0x3bd> - 400fd0: 83 f8 1a cmp $0x1a,%eax - 400fd3: 0f 84 c4 00 00 00 je 40109d <__libc_start_main+0x3bd> - 400fd9: 83 f8 1c cmp $0x1c,%eax - 400fdc: 0f 85 ae 00 00 00 jne 401090 <__libc_start_main+0x3b0> - 400fe2: 83 0d d7 b6 2c 00 04 orl $0x4,0x2cb6d7(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 400fe9: e9 f8 fe ff ff jmpq 400ee6 <__libc_start_main+0x206> - 400fee: 8d 47 a0 lea -0x60(%rdi),%eax - 400ff1: 83 f8 1f cmp $0x1f,%eax - 400ff4: 0f 87 61 ff ff ff ja 400f5b <__libc_start_main+0x27b> - 400ffa: 83 0d bf b6 2c 00 10 orl $0x10,0x2cb6bf(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 401001: e9 55 ff ff ff jmpq 400f5b <__libc_start_main+0x27b> - 401006: f7 c2 00 00 01 00 test $0x10000,%edx - 40100c: 0f 84 68 fe ff ff je 400e7a <__libc_start_main+0x19a> - 401012: 81 e2 00 00 02 00 and $0x20000,%edx - 401018: 8b 05 a2 b6 2c 00 mov 0x2cb6a2(%rip),%eax # 6cc6c0 <_dl_x86_cpu_features+0x40> - 40101e: 75 1e jne 40103e <__libc_start_main+0x35e> - 401020: 80 cc 10 or $0x10,%ah - 401023: 89 05 97 b6 2c 00 mov %eax,0x2cb697(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 401029: e9 4c fe ff ff jmpq 400e7a <__libc_start_main+0x19a> - 40102e: 83 7c 24 18 03 cmpl $0x3,0x18(%rsp) - 401033: 0f 86 3e ff ff ff jbe 400f77 <__libc_start_main+0x297> - 401039: e9 9d fd ff ff jmpq 400ddb <__libc_start_main+0xfb> - 40103e: 80 cc 30 or $0x30,%ah - 401041: 89 05 79 b6 2c 00 mov %eax,0x2cb679(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 401047: e9 2e fe ff ff jmpq 400e7a <__libc_start_main+0x19a> - 40104c: 83 f8 4d cmp $0x4d,%eax - 40104f: 74 62 je 4010b3 <__libc_start_main+0x3d3> - 401051: 76 56 jbe 4010a9 <__libc_start_main+0x3c9> - 401053: 83 f8 5a cmp $0x5a,%eax - 401056: 74 5b je 4010b3 <__libc_start_main+0x3d3> - 401058: 83 f8 5d cmp $0x5d,%eax - 40105b: 74 56 je 4010b3 <__libc_start_main+0x3d3> - 40105d: 83 f8 57 cmp $0x57,%eax - 401060: 75 2e jne 401090 <__libc_start_main+0x3b0> - 401062: 8b 05 58 b6 2c 00 mov 0x2cb658(%rip),%eax # 6cc6c0 <_dl_x86_cpu_features+0x40> - 401068: 0d 00 00 02 00 or $0x20000,%eax - 40106d: 0d 30 02 00 00 or $0x230,%eax - 401072: 89 05 48 b6 2c 00 mov %eax,0x2cb648(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 401078: e9 69 fe ff ff jmpq 400ee6 <__libc_start_main+0x206> - 40107d: 83 f8 26 cmp $0x26,%eax - 401080: 0f 84 5c ff ff ff je 400fe2 <__libc_start_main+0x302> - 401086: 83 f8 2c cmp $0x2c,%eax - 401089: 74 12 je 40109d <__libc_start_main+0x3bd> - 40108b: 83 f8 25 cmp $0x25,%eax - 40108e: 74 0d je 40109d <__libc_start_main+0x3bd> - 401090: 41 f7 c5 00 00 00 10 test $0x10000000,%r13d - 401097: 0f 84 49 fe ff ff je 400ee6 <__libc_start_main+0x206> - 40109d: 83 0d 1c b6 2c 00 33 orl $0x33,0x2cb61c(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 4010a4: e9 3d fe ff ff jmpq 400ee6 <__libc_start_main+0x206> - 4010a9: 83 f8 37 cmp $0x37,%eax - 4010ac: 74 05 je 4010b3 <__libc_start_main+0x3d3> - 4010ae: 83 f8 4a cmp $0x4a,%eax - 4010b1: 75 dd jne 401090 <__libc_start_main+0x3b0> - 4010b3: 8b 05 07 b6 2c 00 mov 0x2cb607(%rip),%eax # 6cc6c0 <_dl_x86_cpu_features+0x40> - 4010b9: eb b2 jmp 40106d <__libc_start_main+0x38d> - 4010bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -00000000004010c0 <__libc_check_standard_fds>: - 4010c0: 48 81 ec 98 00 00 00 sub $0x98,%rsp - 4010c7: 31 ff xor %edi,%edi - 4010c9: 31 c0 xor %eax,%eax - 4010cb: be 01 00 00 00 mov $0x1,%esi - 4010d0: e8 fb e1 03 00 callq 43f2d0 <__libc_fcntl> - 4010d5: 83 f8 ff cmp $0xffffffff,%eax - 4010d8: 74 3c je 401116 <__libc_check_standard_fds+0x56> - 4010da: 31 c0 xor %eax,%eax - 4010dc: be 01 00 00 00 mov $0x1,%esi - 4010e1: bf 01 00 00 00 mov $0x1,%edi - 4010e6: e8 e5 e1 03 00 callq 43f2d0 <__libc_fcntl> - 4010eb: 83 f8 ff cmp $0xffffffff,%eax - 4010ee: 0f 84 8f 00 00 00 je 401183 <__libc_check_standard_fds+0xc3> - 4010f4: 31 c0 xor %eax,%eax - 4010f6: be 01 00 00 00 mov $0x1,%esi - 4010fb: bf 02 00 00 00 mov $0x2,%edi - 401100: e8 cb e1 03 00 callq 43f2d0 <__libc_fcntl> - 401105: 83 f8 ff cmp $0xffffffff,%eax - 401108: 0f 84 e5 00 00 00 je 4011f3 <__libc_check_standard_fds+0x133> - 40110e: 48 81 c4 98 00 00 00 add $0x98,%rsp - 401115: c3 retq - 401116: 49 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%r8 - 40111d: 64 41 83 38 09 cmpl $0x9,%fs:(%r8) - 401122: 75 b6 jne 4010da <__libc_check_standard_fds+0x1a> - 401124: 31 d2 xor %edx,%edx - 401126: be 01 00 02 00 mov $0x20001,%esi - 40112b: bf 83 0f 4a 00 mov $0x4a0f83,%edi - 401130: b8 02 00 00 00 mov $0x2,%eax - 401135: 0f 05 syscall - 401137: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 40113d: 0f 87 20 01 00 00 ja 401263 <__libc_check_standard_fds+0x1a3> - 401143: 85 c0 test %eax,%eax - 401145: 75 39 jne 401180 <__libc_check_standard_fds+0xc0> - 401147: 31 f6 xor %esi,%esi - 401149: 48 89 e2 mov %rsp,%rdx - 40114c: bf 01 00 00 00 mov $0x1,%edi - 401151: e8 7a df 03 00 callq 43f0d0 <__fxstat> - 401156: 85 c0 test %eax,%eax - 401158: 75 26 jne 401180 <__libc_check_standard_fds+0xc0> - 40115a: 8b 44 24 18 mov 0x18(%rsp),%eax - 40115e: 25 00 f0 00 00 and $0xf000,%eax - 401163: 3d 00 20 00 00 cmp $0x2000,%eax - 401168: 75 16 jne 401180 <__libc_check_standard_fds+0xc0> - 40116a: 48 81 7c 24 28 07 01 cmpq $0x107,0x28(%rsp) - 401171: 00 00 - 401173: 0f 84 61 ff ff ff je 4010da <__libc_check_standard_fds+0x1a> - 401179: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 401180: f4 hlt - 401181: eb fd jmp 401180 <__libc_check_standard_fds+0xc0> - 401183: 49 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%r8 - 40118a: 64 41 83 38 09 cmpl $0x9,%fs:(%r8) - 40118f: 0f 85 5f ff ff ff jne 4010f4 <__libc_check_standard_fds+0x34> - 401195: 31 d2 xor %edx,%edx - 401197: be 00 00 02 00 mov $0x20000,%esi - 40119c: bf 8d 0f 4a 00 mov $0x4a0f8d,%edi - 4011a1: b8 02 00 00 00 mov $0x2,%eax - 4011a6: 0f 05 syscall - 4011a8: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 4011ae: 0f 87 c2 00 00 00 ja 401276 <__libc_check_standard_fds+0x1b6> - 4011b4: 83 f8 01 cmp $0x1,%eax - 4011b7: 75 37 jne 4011f0 <__libc_check_standard_fds+0x130> - 4011b9: 48 89 e2 mov %rsp,%rdx - 4011bc: be 01 00 00 00 mov $0x1,%esi - 4011c1: bf 01 00 00 00 mov $0x1,%edi - 4011c6: e8 05 df 03 00 callq 43f0d0 <__fxstat> - 4011cb: 85 c0 test %eax,%eax - 4011cd: 75 21 jne 4011f0 <__libc_check_standard_fds+0x130> - 4011cf: 8b 44 24 18 mov 0x18(%rsp),%eax - 4011d3: 25 00 f0 00 00 and $0xf000,%eax - 4011d8: 3d 00 20 00 00 cmp $0x2000,%eax - 4011dd: 75 11 jne 4011f0 <__libc_check_standard_fds+0x130> - 4011df: 48 81 7c 24 28 03 01 cmpq $0x103,0x28(%rsp) - 4011e6: 00 00 - 4011e8: 0f 84 06 ff ff ff je 4010f4 <__libc_check_standard_fds+0x34> - 4011ee: 66 90 xchg %ax,%ax - 4011f0: f4 hlt - 4011f1: eb fd jmp 4011f0 <__libc_check_standard_fds+0x130> - 4011f3: 49 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%r8 - 4011fa: 64 41 83 38 09 cmpl $0x9,%fs:(%r8) - 4011ff: 0f 85 09 ff ff ff jne 40110e <__libc_check_standard_fds+0x4e> - 401205: 31 d2 xor %edx,%edx - 401207: be 00 00 02 00 mov $0x20000,%esi - 40120c: bf 8d 0f 4a 00 mov $0x4a0f8d,%edi - 401211: b8 02 00 00 00 mov $0x2,%eax - 401216: 0f 05 syscall - 401218: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 40121e: 77 4e ja 40126e <__libc_check_standard_fds+0x1ae> - 401220: 83 f8 02 cmp $0x2,%eax - 401223: 75 3b jne 401260 <__libc_check_standard_fds+0x1a0> - 401225: 48 89 e2 mov %rsp,%rdx - 401228: be 02 00 00 00 mov $0x2,%esi - 40122d: bf 01 00 00 00 mov $0x1,%edi - 401232: e8 99 de 03 00 callq 43f0d0 <__fxstat> - 401237: 85 c0 test %eax,%eax - 401239: 75 25 jne 401260 <__libc_check_standard_fds+0x1a0> - 40123b: 8b 44 24 18 mov 0x18(%rsp),%eax - 40123f: 25 00 f0 00 00 and $0xf000,%eax - 401244: 3d 00 20 00 00 cmp $0x2000,%eax - 401249: 75 15 jne 401260 <__libc_check_standard_fds+0x1a0> - 40124b: 48 81 7c 24 28 03 01 cmpq $0x103,0x28(%rsp) - 401252: 00 00 - 401254: 0f 84 b4 fe ff ff je 40110e <__libc_check_standard_fds+0x4e> - 40125a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 401260: f4 hlt - 401261: eb fd jmp 401260 <__libc_check_standard_fds+0x1a0> - 401263: f7 d8 neg %eax - 401265: 64 41 89 00 mov %eax,%fs:(%r8) - 401269: e9 12 ff ff ff jmpq 401180 <__libc_check_standard_fds+0xc0> - 40126e: f7 d8 neg %eax - 401270: 64 41 89 00 mov %eax,%fs:(%r8) - 401274: eb ea jmp 401260 <__libc_check_standard_fds+0x1a0> - 401276: f7 d8 neg %eax - 401278: 64 41 89 00 mov %eax,%fs:(%r8) - 40127c: e9 6f ff ff ff jmpq 4011f0 <__libc_check_standard_fds+0x130> - 401281: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 401288: 00 00 00 - 40128b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -0000000000401290 <__libc_setup_tls>: - 401290: 41 57 push %r15 - 401292: 41 56 push %r14 - 401294: 41 55 push %r13 - 401296: 41 54 push %r12 - 401298: 55 push %rbp - 401299: 53 push %rbx - 40129a: 48 89 f3 mov %rsi,%rbx - 40129d: 48 83 ec 18 sub $0x18,%rsp - 4012a1: 48 8b 15 a0 bf 2c 00 mov 0x2cbfa0(%rip),%rdx # 6cd248 <_dl_phdr> - 4012a8: 48 85 d2 test %rdx,%rdx - 4012ab: 74 53 je 401300 <__libc_setup_tls+0x70> - 4012ad: 48 8b 05 cc bf 2c 00 mov 0x2cbfcc(%rip),%rax # 6cd280 <_dl_phnum> - 4012b4: 48 8d 0c c5 00 00 00 lea 0x0(,%rax,8),%rcx - 4012bb: 00 - 4012bc: 48 c1 e0 06 shl $0x6,%rax - 4012c0: 48 29 c8 sub %rcx,%rax - 4012c3: 48 01 d0 add %rdx,%rax - 4012c6: 48 39 c2 cmp %rax,%rdx - 4012c9: 72 0e jb 4012d9 <__libc_setup_tls+0x49> - 4012cb: eb 33 jmp 401300 <__libc_setup_tls+0x70> - 4012cd: 0f 1f 00 nopl (%rax) - 4012d0: 48 83 c2 38 add $0x38,%rdx - 4012d4: 48 39 c2 cmp %rax,%rdx - 4012d7: 73 27 jae 401300 <__libc_setup_tls+0x70> - 4012d9: 83 3a 07 cmpl $0x7,(%rdx) - 4012dc: 75 f2 jne 4012d0 <__libc_setup_tls+0x40> - 4012de: 4c 8b 72 30 mov 0x30(%rdx),%r14 - 4012e2: 48 8b 6a 28 mov 0x28(%rdx),%rbp - 4012e6: 4c 8b 62 20 mov 0x20(%rdx),%r12 - 4012ea: 4c 8b 6a 10 mov 0x10(%rdx),%r13 - 4012ee: 4c 39 f3 cmp %r14,%rbx - 4012f1: 49 0f 42 de cmovb %r14,%rbx - 4012f5: eb 14 jmp 40130b <__libc_setup_tls+0x7b> - 4012f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4012fe: 00 00 - 401300: 45 31 f6 xor %r14d,%r14d - 401303: 45 31 ed xor %r13d,%r13d - 401306: 45 31 e4 xor %r12d,%r12d - 401309: 31 ed xor %ebp,%ebp - 40130b: 48 89 e8 mov %rbp,%rax - 40130e: 48 03 05 7b 8d 2c 00 add 0x2c8d7b(%rip),%rax # 6ca090 <_dl_tls_static_size> - 401315: 31 d2 xor %edx,%edx - 401317: 48 01 df add %rbx,%rdi - 40131a: 48 8d 44 18 ff lea -0x1(%rax,%rbx,1),%rax - 40131f: 48 f7 f3 div %rbx - 401322: 48 0f af c3 imul %rbx,%rax - 401326: 48 01 c7 add %rax,%rdi - 401329: 49 89 c7 mov %rax,%r15 - 40132c: e8 bf e7 03 00 callq 43faf0 <__sbrk> - 401331: 48 8d 74 18 ff lea -0x1(%rax,%rbx,1),%rsi - 401336: 48 89 d8 mov %rbx,%rax - 401339: 48 c7 05 3c ba 2c 00 movq $0x3e,0x2cba3c(%rip) # 6ccd80 <_dl_static_dtv> - 401340: 3e 00 00 00 - 401344: 48 f7 d8 neg %rax - 401347: 4c 8b 0d 72 9e 2c 00 mov 0x2c9e72(%rip),%r9 # 6cb1c0 <_dl_ns> - 40134e: 48 89 f1 mov %rsi,%rcx - 401351: 48 21 c1 and %rax,%rcx - 401354: 4d 85 f6 test %r14,%r14 - 401357: 74 77 je 4013d0 <__libc_setup_tls+0x140> - 401359: 4a 8d 44 35 ff lea -0x1(%rbp,%r14,1),%rax - 40135e: 31 d2 xor %edx,%edx - 401360: 4c 89 ff mov %r15,%rdi - 401363: 49 f7 f6 div %r14 - 401366: 49 0f af c6 imul %r14,%rax - 40136a: 48 29 c7 sub %rax,%rdi - 40136d: 48 01 cf add %rcx,%rdi - 401370: 4c 89 ee mov %r13,%rsi - 401373: 49 89 81 40 04 00 00 mov %rax,0x440(%r9) - 40137a: 4c 89 e2 mov %r12,%rdx - 40137d: 48 89 0c 24 mov %rcx,(%rsp) - 401381: 48 89 3d 18 ba 2c 00 mov %rdi,0x2cba18(%rip) # 6ccda0 <_dl_static_dtv+0x20> - 401388: 4c 89 4c 24 08 mov %r9,0x8(%rsp) - 40138d: c6 05 14 ba 2c 00 01 movb $0x1,0x2cba14(%rip) # 6ccda8 <_dl_static_dtv+0x28> - 401394: e8 87 ac 02 00 callq 42c020 - 401399: 48 8b 0c 24 mov (%rsp),%rcx - 40139d: bf 02 10 00 00 mov $0x1002,%edi - 4013a2: b8 9e 00 00 00 mov $0x9e,%eax - 4013a7: 4a 8d 34 39 lea (%rcx,%r15,1),%rsi - 4013ab: 48 c7 46 08 90 cd 6c movq $0x6ccd90,0x8(%rsi) - 4013b2: 00 - 4013b3: 48 89 36 mov %rsi,(%rsi) - 4013b6: 48 89 76 10 mov %rsi,0x10(%rsi) - 4013ba: 0f 05 syscall - 4013bc: 85 c0 test %eax,%eax - 4013be: 74 20 je 4013e0 <__libc_setup_tls+0x150> - 4013c0: bf 98 0f 4a 00 mov $0x4a0f98,%edi - 4013c5: e8 c6 04 01 00 callq 411890 <__libc_fatal> - 4013ca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4013d0: 4c 89 ff mov %r15,%rdi - 4013d3: 48 89 e8 mov %rbp,%rax - 4013d6: 48 29 ef sub %rbp,%rdi - 4013d9: 48 01 cf add %rcx,%rdi - 4013dc: eb 92 jmp 401370 <__libc_setup_tls+0xe0> - 4013de: 66 90 xchg %ax,%ax - 4013e0: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 - 4013e5: 4d 85 f6 test %r14,%r14 - 4013e8: 48 c7 05 cd a7 2c 00 movq $0x40,0x2ca7cd(%rip) # 6cbbc0 - 4013ef: 40 00 00 00 - 4013f3: 48 c7 05 72 b9 2c 00 movq $0x1,0x2cb972(%rip) # 6ccd70 <_dl_tls_max_dtv_idx> - 4013fa: 01 00 00 00 - 4013fe: 48 c7 05 77 bd 2c 00 movq $0x6cbbc0,0x2cbd77(%rip) # 6cd180 <_dl_tls_dtv_slotinfo_list> - 401405: c0 bb 6c 00 - 401409: 4d 89 b1 30 04 00 00 mov %r14,0x430(%r9) - 401410: 49 89 a9 28 04 00 00 mov %rbp,0x428(%r9) - 401417: 4d 89 a9 18 04 00 00 mov %r13,0x418(%r9) - 40141e: 4d 89 a1 20 04 00 00 mov %r12,0x420(%r9) - 401425: 49 c7 81 48 04 00 00 movq $0x1,0x448(%r9) - 40142c: 01 00 00 00 - 401430: 4c 89 0d b1 a7 2c 00 mov %r9,0x2ca7b1(%rip) # 6cbbe8 - 401437: 75 67 jne 4014a0 <__libc_setup_tls+0x210> - 401439: 48 89 e8 mov %rbp,%rax - 40143c: ba 01 00 00 00 mov $0x1,%edx - 401441: 48 0f af c2 imul %rdx,%rax - 401445: 48 8b 15 44 8c 2c 00 mov 0x2c8c44(%rip),%rdx # 6ca090 <_dl_tls_static_size> - 40144c: 48 c7 05 41 bd 2c 00 movq $0x1,0x2cbd41(%rip) # 6cd198 <_dl_tls_static_nelem> - 401453: 01 00 00 00 - 401457: 48 8d 54 10 3f lea 0x3f(%rax,%rdx,1),%rdx - 40145c: 48 89 05 fd b8 2c 00 mov %rax,0x2cb8fd(%rip) # 6ccd60 <_dl_tls_static_used> - 401463: b8 40 00 00 00 mov $0x40,%eax - 401468: 48 83 e2 c0 and $0xffffffffffffffc0,%rdx - 40146c: 48 81 c2 00 09 00 00 add $0x900,%rdx - 401473: 48 83 fb 40 cmp $0x40,%rbx - 401477: 48 0f 42 d8 cmovb %rax,%rbx - 40147b: 48 89 15 0e 8c 2c 00 mov %rdx,0x2c8c0e(%rip) # 6ca090 <_dl_tls_static_size> - 401482: 48 89 1d df b8 2c 00 mov %rbx,0x2cb8df(%rip) # 6ccd68 <_dl_tls_static_align> - 401489: 48 83 c4 18 add $0x18,%rsp - 40148d: 5b pop %rbx - 40148e: 5d pop %rbp - 40148f: 41 5c pop %r12 - 401491: 41 5d pop %r13 - 401493: 41 5e pop %r14 - 401495: 41 5f pop %r15 - 401497: c3 retq - 401498: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40149f: 00 - 4014a0: 4a 8d 44 35 ff lea -0x1(%rbp,%r14,1),%rax - 4014a5: 31 d2 xor %edx,%edx - 4014a7: 49 f7 f6 div %r14 - 4014aa: 4c 89 f2 mov %r14,%rdx - 4014ad: eb 92 jmp 401441 <__libc_setup_tls+0x1b1> - 4014af: 90 nop - -00000000004014b0 <_dl_tls_setup>: - 4014b0: 48 8b 05 d9 8b 2c 00 mov 0x2c8bd9(%rip),%rax # 6ca090 <_dl_tls_static_size> - 4014b7: 48 c7 05 fe a6 2c 00 movq $0x40,0x2ca6fe(%rip) # 6cbbc0 - 4014be: 40 00 00 00 - 4014c2: 48 c7 05 a3 b8 2c 00 movq $0x1,0x2cb8a3(%rip) # 6ccd70 <_dl_tls_max_dtv_idx> - 4014c9: 01 00 00 00 - 4014cd: 48 c7 05 a8 bc 2c 00 movq $0x6cbbc0,0x2cbca8(%rip) # 6cd180 <_dl_tls_dtv_slotinfo_list> - 4014d4: c0 bb 6c 00 - 4014d8: 48 c7 05 7d b8 2c 00 movq $0x900,0x2cb87d(%rip) # 6ccd60 <_dl_tls_static_used> - 4014df: 00 09 00 00 - 4014e3: 48 c7 05 7a b8 2c 00 movq $0x40,0x2cb87a(%rip) # 6ccd68 <_dl_tls_static_align> - 4014ea: 40 00 00 00 - 4014ee: 48 05 3f 09 00 00 add $0x93f,%rax - 4014f4: 48 c7 05 99 bc 2c 00 movq $0x1,0x2cbc99(%rip) # 6cd198 <_dl_tls_static_nelem> - 4014fb: 01 00 00 00 - 4014ff: 48 83 e0 c0 and $0xffffffffffffffc0,%rax - 401503: 48 05 00 09 00 00 add $0x900,%rax - 401509: 48 89 05 80 8b 2c 00 mov %rax,0x2c8b80(%rip) # 6ca090 <_dl_tls_static_size> - 401510: 31 c0 xor %eax,%eax - 401512: c3 retq - 401513: 0f 1f 00 nopl (%rax) - 401516: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40151d: 00 00 00 - -0000000000401520 <__pthread_initialize_minimal>: - 401520: be 40 00 00 00 mov $0x40,%esi - 401525: bf 00 09 00 00 mov $0x900,%edi - 40152a: e9 61 fd ff ff jmpq 401290 <__libc_setup_tls> - 40152f: 90 nop - -0000000000401530 <__libc_csu_init>: - 401530: 41 56 push %r14 - 401532: 41 be d8 9e 6c 00 mov $0x6c9ed8,%r14d - 401538: 41 55 push %r13 - 40153a: 49 81 ee d8 9e 6c 00 sub $0x6c9ed8,%r14 - 401541: 41 54 push %r12 - 401543: 55 push %rbp - 401544: 49 c1 fe 03 sar $0x3,%r14 - 401548: 53 push %rbx - 401549: 31 db xor %ebx,%ebx - 40154b: 4d 85 f6 test %r14,%r14 - 40154e: 89 fd mov %edi,%ebp - 401550: 49 89 f4 mov %rsi,%r12 - 401553: 49 89 d5 mov %rdx,%r13 - 401556: 74 20 je 401578 <__libc_csu_init+0x48> - 401558: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40155f: 00 - 401560: 4c 89 ea mov %r13,%rdx - 401563: 4c 89 e6 mov %r12,%rsi - 401566: 89 ef mov %ebp,%edi - 401568: ff 14 dd d8 9e 6c 00 callq *0x6c9ed8(,%rbx,8) - 40156f: 48 83 c3 01 add $0x1,%rbx - 401573: 4c 39 f3 cmp %r14,%rbx - 401576: 75 e8 jne 401560 <__libc_csu_init+0x30> - 401578: 41 be e8 9e 6c 00 mov $0x6c9ee8,%r14d - 40157e: 31 db xor %ebx,%ebx - 401580: 49 81 ee d8 9e 6c 00 sub $0x6c9ed8,%r14 - 401587: 49 c1 fe 03 sar $0x3,%r14 - 40158b: e8 38 ed ff ff callq 4002c8 <__rela_iplt_end> - 401590: 4d 85 f6 test %r14,%r14 - 401593: 74 1b je 4015b0 <__libc_csu_init+0x80> - 401595: 0f 1f 00 nopl (%rax) - 401598: 4c 89 ea mov %r13,%rdx - 40159b: 4c 89 e6 mov %r12,%rsi - 40159e: 89 ef mov %ebp,%edi - 4015a0: ff 14 dd d8 9e 6c 00 callq *0x6c9ed8(,%rbx,8) - 4015a7: 48 83 c3 01 add $0x1,%rbx - 4015ab: 4c 39 f3 cmp %r14,%rbx - 4015ae: 75 e8 jne 401598 <__libc_csu_init+0x68> - 4015b0: 5b pop %rbx - 4015b1: 5d pop %rbp - 4015b2: 41 5c pop %r12 - 4015b4: 41 5d pop %r13 - 4015b6: 41 5e pop %r14 - 4015b8: c3 retq - 4015b9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -00000000004015c0 <__libc_csu_fini>: - 4015c0: 53 push %rbx - 4015c1: bb f8 9e 6c 00 mov $0x6c9ef8,%ebx - 4015c6: 48 81 eb e8 9e 6c 00 sub $0x6c9ee8,%rbx - 4015cd: 48 c1 fb 03 sar $0x3,%rbx - 4015d1: 48 85 db test %rbx,%rbx - 4015d4: 74 17 je 4015ed <__libc_csu_fini+0x2d> - 4015d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4015dd: 00 00 00 - 4015e0: ff 14 dd e0 9e 6c 00 callq *0x6c9ee0(,%rbx,8) - 4015e7: 48 83 eb 01 sub $0x1,%rbx - 4015eb: 75 f3 jne 4015e0 <__libc_csu_fini+0x20> - 4015ed: 5b pop %rbx - 4015ee: e9 ad f8 09 00 jmpq 4a0ea0 <_fini> - 4015f3: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4015fa: 00 00 00 - 4015fd: 0f 1f 00 nopl (%rax) - -0000000000401600 <__assert_fail_base>: - 401600: 41 56 push %r14 - 401602: 41 55 push %r13 - 401604: b8 00 00 00 00 mov $0x0,%eax - 401609: 41 54 push %r12 - 40160b: 55 push %rbp - 40160c: 49 89 f6 mov %rsi,%r14 - 40160f: 53 push %rbx - 401610: 48 89 fd mov %rdi,%rbp - 401613: 49 89 d4 mov %rdx,%r12 - 401616: 41 89 cd mov %ecx,%r13d - 401619: 4c 89 c3 mov %r8,%rbx - 40161c: 48 83 ec 10 sub $0x10,%rsp - 401620: 48 85 c0 test %rax,%rax - 401623: 74 09 je 40162e <__assert_fail_base+0x2e> - 401625: 31 f6 xor %esi,%esi - 401627: bf 01 00 00 00 mov $0x1,%edi - 40162c: ff d0 callq *%rax - 40162e: 48 8b 3d ab 9a 2c 00 mov 0x2c9aab(%rip),%rdi # 6cb0e0 <__progname> - 401635: be 25 67 4b 00 mov $0x4b6725,%esi - 40163a: b8 6f 52 4b 00 mov $0x4b526f,%eax - 40163f: 48 85 db test %rbx,%rbx - 401642: 48 89 f2 mov %rsi,%rdx - 401645: 48 89 c1 mov %rax,%rcx - 401648: 48 0f 44 ce cmove %rsi,%rcx - 40164c: 48 0f 45 d3 cmovne %rbx,%rdx - 401650: 45 89 e9 mov %r13d,%r9d - 401653: 80 3f 00 cmpb $0x0,(%rdi) - 401656: 4d 89 e0 mov %r12,%r8 - 401659: 48 0f 44 c6 cmove %rsi,%rax - 40165d: 48 8d 74 24 04 lea 0x4(%rsp),%rsi - 401662: 56 push %rsi - 401663: 41 56 push %r14 - 401665: 48 89 ee mov %rbp,%rsi - 401668: 51 push %rcx - 401669: 52 push %rdx - 40166a: 48 89 fa mov %rdi,%rdx - 40166d: 48 89 c1 mov %rax,%rcx - 401670: 31 c0 xor %eax,%eax - 401672: 48 8d 7c 24 28 lea 0x28(%rsp),%rdi - 401677: e8 84 dc 00 00 callq 40f300 <___asprintf> - 40167c: 48 83 c4 20 add $0x20,%rsp - 401680: 85 c0 test %eax,%eax - 401682: 0f 88 93 00 00 00 js 40171b <__assert_fail_base+0x11b> - 401688: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 40168d: be 99 c4 4b 00 mov $0x4bc499,%esi - 401692: 31 ff xor %edi,%edi - 401694: 31 c0 xor %eax,%eax - 401696: e8 f5 dc 00 00 callq 40f390 <__fxprintf> - 40169b: 48 8b 3d 96 90 2c 00 mov 0x2c9096(%rip),%rdi # 6ca738 <_IO_stderr> - 4016a2: e8 99 e0 00 00 callq 40f740 <_IO_fflush> - 4016a7: 48 8b 05 d2 9a 2c 00 mov 0x2c9ad2(%rip),%rax # 6cb180 <_dl_pagesize> - 4016ae: 8b 74 24 04 mov 0x4(%rsp),%esi - 4016b2: 45 31 c9 xor %r9d,%r9d - 4016b5: 31 ff xor %edi,%edi - 4016b7: 41 b8 ff ff ff ff mov $0xffffffff,%r8d - 4016bd: b9 22 00 00 00 mov $0x22,%ecx - 4016c2: ba 03 00 00 00 mov $0x3,%edx - 4016c7: 01 c6 add %eax,%esi - 4016c9: f7 d8 neg %eax - 4016cb: 21 c6 and %eax,%esi - 4016cd: 89 74 24 04 mov %esi,0x4(%rsp) - 4016d1: 48 63 f6 movslq %esi,%rsi - 4016d4: e8 17 e5 03 00 callq 43fbf0 <__mmap> - 4016d9: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 4016dd: 48 89 c3 mov %rax,%rbx - 4016e0: 74 2a je 40170c <__assert_fail_base+0x10c> - 4016e2: 8b 44 24 04 mov 0x4(%rsp),%eax - 4016e6: 48 8b 74 24 08 mov 0x8(%rsp),%rsi - 4016eb: 48 8d 7b 04 lea 0x4(%rbx),%rdi - 4016ef: 89 03 mov %eax,(%rbx) - 4016f1: e8 fa eb ff ff callq 4002f0 <__rela_iplt_end+0x28> - 4016f6: 48 89 df mov %rbx,%rdi - 4016f9: 48 87 3d 20 aa 2c 00 xchg %rdi,0x2caa20(%rip) # 6cc120 <__abort_msg> - 401700: 48 85 ff test %rdi,%rdi - 401703: 74 07 je 40170c <__assert_fail_base+0x10c> - 401705: 8b 37 mov (%rdi),%esi - 401707: e8 a4 e5 03 00 callq 43fcb0 <__munmap> - 40170c: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi - 401711: e8 9a c6 01 00 callq 41ddb0 <__cfree> - 401716: e8 e5 c4 00 00 callq 40dc00 - 40171b: ba 12 00 00 00 mov $0x12,%edx - 401720: be 00 10 4a 00 mov $0x4a1000,%esi - 401725: bf 02 00 00 00 mov $0x2,%edi - 40172a: e8 b1 da 03 00 callq 43f1e0 <__libc_write> - 40172f: eb e5 jmp 401716 <__assert_fail_base+0x116> - 401731: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 401736: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40173d: 00 00 00 - -0000000000401740 <__assert_fail>: - 401740: 41 55 push %r13 - 401742: 41 54 push %r12 - 401744: 49 89 cd mov %rcx,%r13 - 401747: 55 push %rbp - 401748: 53 push %rbx - 401749: 48 89 f5 mov %rsi,%rbp - 40174c: 48 89 fb mov %rdi,%rbx - 40174f: 41 89 d4 mov %edx,%r12d - 401752: be d0 0f 4a 00 mov $0x4a0fd0,%esi - 401757: ba 05 00 00 00 mov $0x5,%edx - 40175c: bf 5c 26 4b 00 mov $0x4b265c,%edi - 401761: 48 83 ec 08 sub $0x8,%rsp - 401765: e8 16 00 00 00 callq 401780 <__dcgettext> - 40176a: 4d 89 e8 mov %r13,%r8 - 40176d: 44 89 e1 mov %r12d,%ecx - 401770: 48 89 ea mov %rbp,%rdx - 401773: 48 89 de mov %rbx,%rsi - 401776: 48 89 c7 mov %rax,%rdi - 401779: e8 82 fe ff ff callq 401600 <__assert_fail_base> - 40177e: 66 90 xchg %ax,%ax - -0000000000401780 <__dcgettext>: - 401780: 41 89 d1 mov %edx,%r9d - 401783: 45 31 c0 xor %r8d,%r8d - 401786: 31 c9 xor %ecx,%ecx - 401788: 31 d2 xor %edx,%edx - 40178a: e9 e1 13 00 00 jmpq 402b70 <__dcigettext> - 40178f: 90 nop - -0000000000401790 : - 401790: 55 push %rbp - 401791: 53 push %rbx - 401792: 48 89 fd mov %rdi,%rbp - 401795: 48 89 f3 mov %rsi,%rbx - 401798: 48 83 ec 08 sub $0x8,%rsp - 40179c: 48 83 7e 20 00 cmpq $0x0,0x20(%rsi) - 4017a1: 74 5d je 401800 - 4017a3: 48 8d 76 38 lea 0x38(%rsi),%rsi - 4017a7: 48 83 7d 20 00 cmpq $0x0,0x20(%rbp) - 4017ac: 74 42 je 4017f0 - 4017ae: 48 8d 7d 38 lea 0x38(%rbp),%rdi - 4017b2: e8 a9 eb ff ff callq 400360 <__rela_iplt_end+0x98> - 4017b7: 85 c0 test %eax,%eax - 4017b9: 75 27 jne 4017e2 - 4017bb: 48 8b 33 mov (%rbx),%rsi - 4017be: 48 8b 7d 00 mov 0x0(%rbp),%rdi - 4017c2: e8 99 eb ff ff callq 400360 <__rela_iplt_end+0x98> - 4017c7: 85 c0 test %eax,%eax - 4017c9: 75 17 jne 4017e2 - 4017cb: 48 8b 73 10 mov 0x10(%rbx),%rsi - 4017cf: 48 8b 7d 10 mov 0x10(%rbp),%rdi - 4017d3: e8 88 eb ff ff callq 400360 <__rela_iplt_end+0x98> - 4017d8: 85 c0 test %eax,%eax - 4017da: 75 06 jne 4017e2 - 4017dc: 8b 45 08 mov 0x8(%rbp),%eax - 4017df: 2b 43 08 sub 0x8(%rbx),%eax - 4017e2: 48 83 c4 08 add $0x8,%rsp - 4017e6: 5b pop %rbx - 4017e7: 5d pop %rbp - 4017e8: c3 retq - 4017e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4017f0: 48 8b 7d 38 mov 0x38(%rbp),%rdi - 4017f4: eb bc jmp 4017b2 - 4017f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4017fd: 00 00 00 - 401800: 48 8b 76 38 mov 0x38(%rsi),%rsi - 401804: eb a1 jmp 4017a7 - 401806: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40180d: 00 00 00 - -0000000000401810 : - 401810: 41 57 push %r15 - 401812: 41 56 push %r14 - 401814: 41 55 push %r13 - 401816: 41 54 push %r12 - 401818: 49 89 f4 mov %rsi,%r12 - 40181b: 55 push %rbp - 40181c: 53 push %rbx - 40181d: 48 89 fb mov %rdi,%rbx - 401820: 48 83 ec 08 sub $0x8,%rsp - 401824: 8b 03 mov (%rbx),%eax - 401826: 83 f8 01 cmp $0x1,%eax - 401829: 0f 84 f9 00 00 00 je 401928 - 40182f: 0f 8e d3 00 00 00 jle 401908 - 401835: 83 f8 02 cmp $0x2,%eax - 401838: 74 56 je 401890 - 40183a: 83 f8 03 cmp $0x3,%eax - 40183d: 0f 85 ad 00 00 00 jne 4018f0 - 401843: 4c 8b 6b 08 mov 0x8(%rbx),%r13 - 401847: 41 8b 6d 00 mov 0x0(%r13),%ebp - 40184b: 83 fd 01 cmp $0x1,%ebp - 40184e: 0f 84 2c 02 00 00 je 401a80 - 401854: 0f 8e 16 01 00 00 jle 401970 - 40185a: 83 fd 02 cmp $0x2,%ebp - 40185d: 0f 84 45 02 00 00 je 401aa8 - 401863: 83 fd 03 cmp $0x3,%ebp - 401866: 0f 85 74 01 00 00 jne 4019e0 - 40186c: 49 8b 7d 08 mov 0x8(%r13),%rdi - 401870: 4c 89 e6 mov %r12,%rsi - 401873: e8 98 ff ff ff callq 401810 - 401878: 48 83 f8 01 cmp $0x1,%rax - 40187c: 19 c0 sbb %eax,%eax - 40187e: f7 d0 not %eax - 401880: 83 c0 02 add $0x2,%eax - 401883: 48 98 cltq - 401885: 4d 8b 6c c5 08 mov 0x8(%r13,%rax,8),%r13 - 40188a: eb bb jmp 401847 - 40188c: 0f 1f 40 00 nopl 0x0(%rax) - 401890: 48 8b 6b 08 mov 0x8(%rbx),%rbp - 401894: 8b 45 00 mov 0x0(%rbp),%eax - 401897: 83 f8 01 cmp $0x1,%eax - 40189a: 0f 84 b8 02 00 00 je 401b58 - 4018a0: 0f 8e ea 00 00 00 jle 401990 - 4018a6: 83 f8 02 cmp $0x2,%eax - 4018a9: 0f 84 41 02 00 00 je 401af0 - 4018af: 83 f8 03 cmp $0x3,%eax - 4018b2: 75 24 jne 4018d8 - 4018b4: 48 8b 7d 08 mov 0x8(%rbp),%rdi - 4018b8: 4c 89 e6 mov %r12,%rsi - 4018bb: e8 50 ff ff ff callq 401810 - 4018c0: 48 83 f8 01 cmp $0x1,%rax - 4018c4: 19 c0 sbb %eax,%eax - 4018c6: f7 d0 not %eax - 4018c8: 83 c0 02 add $0x2,%eax - 4018cb: 48 98 cltq - 4018cd: 48 8b 6c c5 08 mov 0x8(%rbp,%rax,8),%rbp - 4018d2: eb c0 jmp 401894 - 4018d4: 0f 1f 40 00 nopl 0x0(%rax) - 4018d8: 8b 43 04 mov 0x4(%rbx),%eax - 4018db: 83 f8 0f cmp $0xf,%eax - 4018de: 0f 84 a8 02 00 00 je 401b8c - 4018e4: 45 31 ed xor %r13d,%r13d - 4018e7: 83 f8 0e cmp $0xe,%eax - 4018ea: 0f 85 08 01 00 00 jne 4019f8 - 4018f0: 31 c9 xor %ecx,%ecx - 4018f2: 48 83 c4 08 add $0x8,%rsp - 4018f6: 48 89 c8 mov %rcx,%rax - 4018f9: 5b pop %rbx - 4018fa: 5d pop %rbp - 4018fb: 41 5c pop %r12 - 4018fd: 41 5d pop %r13 - 4018ff: 41 5e pop %r14 - 401901: 41 5f pop %r15 - 401903: c3 retq - 401904: 0f 1f 40 00 nopl 0x0(%rax) - 401908: 85 c0 test %eax,%eax - 40190a: 75 e4 jne 4018f0 - 40190c: 8b 43 04 mov 0x4(%rbx),%eax - 40190f: 4c 89 e1 mov %r12,%rcx - 401912: 85 c0 test %eax,%eax - 401914: 74 dc je 4018f2 - 401916: 83 f8 01 cmp $0x1,%eax - 401919: 75 d5 jne 4018f0 - 40191b: 48 8b 4b 08 mov 0x8(%rbx),%rcx - 40191f: eb d1 jmp 4018f2 - 401921: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 401928: 48 8b 5b 08 mov 0x8(%rbx),%rbx - 40192c: 8b 03 mov (%rbx),%eax - 40192e: 83 f8 01 cmp $0x1,%eax - 401931: 0f 84 01 02 00 00 je 401b38 - 401937: 7e 7f jle 4019b8 - 401939: 83 f8 02 cmp $0x2,%eax - 40193c: 0f 84 ee 00 00 00 je 401a30 - 401942: 83 f8 03 cmp $0x3,%eax - 401945: 0f 85 d5 00 00 00 jne 401a20 - 40194b: 48 8b 7b 08 mov 0x8(%rbx),%rdi - 40194f: 4c 89 e6 mov %r12,%rsi - 401952: e8 b9 fe ff ff callq 401810 - 401957: 48 83 f8 01 cmp $0x1,%rax - 40195b: 19 c0 sbb %eax,%eax - 40195d: f7 d0 not %eax - 40195f: 83 c0 02 add $0x2,%eax - 401962: 48 98 cltq - 401964: 48 8b 5c c3 08 mov 0x8(%rbx,%rax,8),%rbx - 401969: eb c1 jmp 40192c - 40196b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 401970: 85 ed test %ebp,%ebp - 401972: 75 6c jne 4019e0 - 401974: 41 8b 45 04 mov 0x4(%r13),%eax - 401978: 85 c0 test %eax,%eax - 40197a: 0f 84 30 02 00 00 je 401bb0 - 401980: 83 f8 01 cmp $0x1,%eax - 401983: 75 5b jne 4019e0 - 401985: 49 8b 4d 08 mov 0x8(%r13),%rcx - 401989: e9 06 01 00 00 jmpq 401a94 - 40198e: 66 90 xchg %ax,%ax - 401990: 85 c0 test %eax,%eax - 401992: 0f 85 40 ff ff ff jne 4018d8 - 401998: 8b 45 04 mov 0x4(%rbp),%eax - 40199b: 85 c0 test %eax,%eax - 40199d: 0f 84 05 02 00 00 je 401ba8 - 4019a3: 83 f8 01 cmp $0x1,%eax - 4019a6: 0f 85 2c ff ff ff jne 4018d8 - 4019ac: 4c 8b 6d 08 mov 0x8(%rbp),%r13 - 4019b0: e9 b9 01 00 00 jmpq 401b6e - 4019b5: 0f 1f 00 nopl (%rax) - 4019b8: 85 c0 test %eax,%eax - 4019ba: 75 64 jne 401a20 - 4019bc: 8b 43 04 mov 0x4(%rbx),%eax - 4019bf: 85 c0 test %eax,%eax - 4019c1: 0f 84 d1 01 00 00 je 401b98 - 4019c7: 83 f8 01 cmp $0x1,%eax - 4019ca: 75 54 jne 401a20 - 4019cc: 31 c9 xor %ecx,%ecx - 4019ce: 48 83 7b 08 00 cmpq $0x0,0x8(%rbx) - 4019d3: 0f 94 c1 sete %cl - 4019d6: e9 17 ff ff ff jmpq 4018f2 - 4019db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4019e0: bd 02 00 00 00 mov $0x2,%ebp - 4019e5: 48 63 ed movslq %ebp,%rbp - 4019e8: 48 8b 5c eb 08 mov 0x8(%rbx,%rbp,8),%rbx - 4019ed: e9 32 fe ff ff jmpq 401824 - 4019f2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4019f8: 48 8b 7b 10 mov 0x10(%rbx),%rdi - 4019fc: 4c 89 e6 mov %r12,%rsi - 4019ff: e8 0c fe ff ff callq 401810 - 401a04: 8b 4b 04 mov 0x4(%rbx),%ecx - 401a07: 48 89 c5 mov %rax,%rbp - 401a0a: 83 e9 03 sub $0x3,%ecx - 401a0d: 83 f9 0a cmp $0xa,%ecx - 401a10: 0f 87 da fe ff ff ja 4018f0 - 401a16: ff 24 cd 18 10 4a 00 jmpq *0x4a1018(,%rcx,8) - 401a1d: 0f 1f 00 nopl (%rax) - 401a20: b9 01 00 00 00 mov $0x1,%ecx - 401a25: e9 c8 fe ff ff jmpq 4018f2 - 401a2a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 401a30: 48 8b 7b 08 mov 0x8(%rbx),%rdi - 401a34: 4c 89 e6 mov %r12,%rsi - 401a37: e8 d4 fd ff ff callq 401810 - 401a3c: 8b 4b 04 mov 0x4(%rbx),%ecx - 401a3f: 48 89 c5 mov %rax,%rbp - 401a42: 83 f9 0f cmp $0xf,%ecx - 401a45: 0f 84 85 01 00 00 je 401bd0 - 401a4b: 83 f9 0e cmp $0xe,%ecx - 401a4e: 0f 85 1c 04 00 00 jne 401e70 - 401a54: 48 85 c0 test %rax,%rax - 401a57: b9 01 00 00 00 mov $0x1,%ecx - 401a5c: 0f 84 90 fe ff ff je 4018f2 - 401a62: 48 8b 7b 10 mov 0x10(%rbx),%rdi - 401a66: 4c 89 e6 mov %r12,%rsi - 401a69: e8 a2 fd ff ff callq 401810 - 401a6e: 31 c9 xor %ecx,%ecx - 401a70: 48 85 c0 test %rax,%rax - 401a73: 0f 94 c1 sete %cl - 401a76: e9 77 fe ff ff jmpq 4018f2 - 401a7b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 401a80: 49 8b 7d 08 mov 0x8(%r13),%rdi - 401a84: 4c 89 e6 mov %r12,%rsi - 401a87: e8 84 fd ff ff callq 401810 - 401a8c: 31 c9 xor %ecx,%ecx - 401a8e: 48 85 c0 test %rax,%rax - 401a91: 0f 94 c1 sete %cl - 401a94: 48 83 f9 01 cmp $0x1,%rcx - 401a98: 19 ed sbb %ebp,%ebp - 401a9a: f7 d5 not %ebp - 401a9c: 83 c5 02 add $0x2,%ebp - 401a9f: e9 41 ff ff ff jmpq 4019e5 - 401aa4: 0f 1f 40 00 nopl 0x0(%rax) - 401aa8: 49 8b 7d 08 mov 0x8(%r13),%rdi - 401aac: 4c 89 e6 mov %r12,%rsi - 401aaf: e8 5c fd ff ff callq 401810 - 401ab4: 49 89 c6 mov %rax,%r14 - 401ab7: 41 8b 45 04 mov 0x4(%r13),%eax - 401abb: 83 f8 0f cmp $0xf,%eax - 401abe: 0f 84 1c 01 00 00 je 401be0 - 401ac4: 83 f8 0e cmp $0xe,%eax - 401ac7: 0f 85 eb 01 00 00 jne 401cb8 - 401acd: 4d 85 f6 test %r14,%r14 - 401ad0: 0f 84 0f ff ff ff je 4019e5 - 401ad6: 49 8b 7d 10 mov 0x10(%r13),%rdi - 401ada: 4c 89 e6 mov %r12,%rsi - 401add: e8 2e fd ff ff callq 401810 - 401ae2: 31 c9 xor %ecx,%ecx - 401ae4: 48 85 c0 test %rax,%rax - 401ae7: 0f 95 c1 setne %cl - 401aea: eb a8 jmp 401a94 - 401aec: 0f 1f 40 00 nopl 0x0(%rax) - 401af0: 48 8b 7d 08 mov 0x8(%rbp),%rdi - 401af4: 4c 89 e6 mov %r12,%rsi - 401af7: e8 14 fd ff ff callq 401810 - 401afc: 8b 4d 04 mov 0x4(%rbp),%ecx - 401aff: 49 89 c6 mov %rax,%r14 - 401b02: 83 f9 0f cmp $0xf,%ecx - 401b05: 0f 84 b5 00 00 00 je 401bc0 - 401b0b: 83 f9 0e cmp $0xe,%ecx - 401b0e: 0f 85 7c 02 00 00 jne 401d90 - 401b14: 45 31 ed xor %r13d,%r13d - 401b17: 48 85 c0 test %rax,%rax - 401b1a: 74 52 je 401b6e - 401b1c: 48 8b 7d 10 mov 0x10(%rbp),%rdi - 401b20: 4c 89 e6 mov %r12,%rsi - 401b23: 45 31 ed xor %r13d,%r13d - 401b26: e8 e5 fc ff ff callq 401810 - 401b2b: 48 85 c0 test %rax,%rax - 401b2e: 41 0f 95 c5 setne %r13b - 401b32: eb 3a jmp 401b6e - 401b34: 0f 1f 40 00 nopl 0x0(%rax) - 401b38: 48 8b 7b 08 mov 0x8(%rbx),%rdi - 401b3c: 4c 89 e6 mov %r12,%rsi - 401b3f: e8 cc fc ff ff callq 401810 - 401b44: 31 c9 xor %ecx,%ecx - 401b46: 48 85 c0 test %rax,%rax - 401b49: 0f 95 c1 setne %cl - 401b4c: e9 a1 fd ff ff jmpq 4018f2 - 401b51: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 401b58: 48 8b 7d 08 mov 0x8(%rbp),%rdi - 401b5c: 4c 89 e6 mov %r12,%rsi - 401b5f: 45 31 ed xor %r13d,%r13d - 401b62: e8 a9 fc ff ff callq 401810 - 401b67: 48 85 c0 test %rax,%rax - 401b6a: 41 0f 94 c5 sete %r13b - 401b6e: 8b 4b 04 mov 0x4(%rbx),%ecx - 401b71: 83 f9 0f cmp $0xf,%ecx - 401b74: 0f 84 26 01 00 00 je 401ca0 - 401b7a: 83 f9 0e cmp $0xe,%ecx - 401b7d: 0f 85 75 fe ff ff jne 4019f8 - 401b83: 4d 85 ed test %r13,%r13 - 401b86: 0f 84 64 fd ff ff je 4018f0 - 401b8c: 48 8b 7b 10 mov 0x10(%rbx),%rdi - 401b90: eb aa jmp 401b3c - 401b92: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 401b98: 31 c9 xor %ecx,%ecx - 401b9a: 4d 85 e4 test %r12,%r12 - 401b9d: 0f 94 c1 sete %cl - 401ba0: e9 4d fd ff ff jmpq 4018f2 - 401ba5: 0f 1f 00 nopl (%rax) - 401ba8: 4d 89 e5 mov %r12,%r13 - 401bab: eb c1 jmp 401b6e - 401bad: 0f 1f 00 nopl (%rax) - 401bb0: 4c 89 e1 mov %r12,%rcx - 401bb3: e9 dc fe ff ff jmpq 401a94 - 401bb8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 401bbf: 00 - 401bc0: 48 85 c0 test %rax,%rax - 401bc3: 41 bd 01 00 00 00 mov $0x1,%r13d - 401bc9: 75 a3 jne 401b6e - 401bcb: e9 4c ff ff ff jmpq 401b1c - 401bd0: 31 c9 xor %ecx,%ecx - 401bd2: 48 85 c0 test %rax,%rax - 401bd5: 0f 85 17 fd ff ff jne 4018f2 - 401bdb: e9 82 fe ff ff jmpq 401a62 - 401be0: 4d 85 f6 test %r14,%r14 - 401be3: bd 01 00 00 00 mov $0x1,%ebp - 401be8: 0f 85 f7 fd ff ff jne 4019e5 - 401bee: e9 e3 fe ff ff jmpq 401ad6 - 401bf3: 31 c9 xor %ecx,%ecx - 401bf5: 4c 39 e8 cmp %r13,%rax - 401bf8: 0f 95 c1 setne %cl - 401bfb: e9 f2 fc ff ff jmpq 4018f2 - 401c00: 31 c9 xor %ecx,%ecx - 401c02: 4c 39 e8 cmp %r13,%rax - 401c05: 0f 94 c1 sete %cl - 401c08: e9 e5 fc ff ff jmpq 4018f2 - 401c0d: 31 c9 xor %ecx,%ecx - 401c0f: 4c 39 e8 cmp %r13,%rax - 401c12: 0f 96 c1 setbe %cl - 401c15: e9 d8 fc ff ff jmpq 4018f2 - 401c1a: 31 c9 xor %ecx,%ecx - 401c1c: 4c 39 e8 cmp %r13,%rax - 401c1f: 0f 93 c1 setae %cl - 401c22: e9 cb fc ff ff jmpq 4018f2 - 401c27: 31 c9 xor %ecx,%ecx - 401c29: 4c 39 e8 cmp %r13,%rax - 401c2c: 0f 92 c1 setb %cl - 401c2f: e9 be fc ff ff jmpq 4018f2 - 401c34: 31 c9 xor %ecx,%ecx - 401c36: 4c 39 e8 cmp %r13,%rax - 401c39: 0f 97 c1 seta %cl - 401c3c: e9 b1 fc ff ff jmpq 4018f2 - 401c41: 4c 89 e9 mov %r13,%rcx - 401c44: 48 29 c1 sub %rax,%rcx - 401c47: e9 a6 fc ff ff jmpq 4018f2 - 401c4c: 4a 8d 0c 28 lea (%rax,%r13,1),%rcx - 401c50: e9 9d fc ff ff jmpq 4018f2 - 401c55: 48 85 c0 test %rax,%rax - 401c58: 75 0a jne 401c64 - 401c5a: bf 08 00 00 00 mov $0x8,%edi - 401c5f: e8 1c bf 00 00 callq 40db80 - 401c64: 4c 89 e8 mov %r13,%rax - 401c67: 31 d2 xor %edx,%edx - 401c69: 48 f7 f5 div %rbp - 401c6c: 48 89 d1 mov %rdx,%rcx - 401c6f: e9 7e fc ff ff jmpq 4018f2 - 401c74: 48 85 c0 test %rax,%rax - 401c77: 75 0a jne 401c83 - 401c79: bf 08 00 00 00 mov $0x8,%edi - 401c7e: e8 fd be 00 00 callq 40db80 - 401c83: 4c 89 e8 mov %r13,%rax - 401c86: 31 d2 xor %edx,%edx - 401c88: 48 f7 f5 div %rbp - 401c8b: 48 89 c1 mov %rax,%rcx - 401c8e: e9 5f fc ff ff jmpq 4018f2 - 401c93: 48 89 c1 mov %rax,%rcx - 401c96: 49 0f af cd imul %r13,%rcx - 401c9a: e9 53 fc ff ff jmpq 4018f2 - 401c9f: 90 nop - 401ca0: 4d 85 ed test %r13,%r13 - 401ca3: b9 01 00 00 00 mov $0x1,%ecx - 401ca8: 0f 85 44 fc ff ff jne 4018f2 - 401cae: e9 d9 fe ff ff jmpq 401b8c - 401cb3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 401cb8: 49 8b 7d 10 mov 0x10(%r13),%rdi - 401cbc: 4c 89 e6 mov %r12,%rsi - 401cbf: e8 4c fb ff ff callq 401810 - 401cc4: 48 89 c5 mov %rax,%rbp - 401cc7: 41 8b 45 04 mov 0x4(%r13),%eax - 401ccb: 83 e8 03 sub $0x3,%eax - 401cce: 83 f8 0a cmp $0xa,%eax - 401cd1: 0f 87 09 fd ff ff ja 4019e0 - 401cd7: ff 24 c5 70 10 4a 00 jmpq *0x4a1070(,%rax,8) - 401cde: 31 c9 xor %ecx,%ecx - 401ce0: 49 39 ee cmp %rbp,%r14 - 401ce3: 0f 94 c1 sete %cl - 401ce6: e9 a9 fd ff ff jmpq 401a94 - 401ceb: 31 c9 xor %ecx,%ecx - 401ced: 49 39 ee cmp %rbp,%r14 - 401cf0: 0f 93 c1 setae %cl - 401cf3: e9 9c fd ff ff jmpq 401a94 - 401cf8: 31 c9 xor %ecx,%ecx - 401cfa: 49 39 ee cmp %rbp,%r14 - 401cfd: 0f 96 c1 setbe %cl - 401d00: e9 8f fd ff ff jmpq 401a94 - 401d05: 31 c9 xor %ecx,%ecx - 401d07: 49 39 ee cmp %rbp,%r14 - 401d0a: 0f 97 c1 seta %cl - 401d0d: e9 82 fd ff ff jmpq 401a94 - 401d12: 31 c9 xor %ecx,%ecx - 401d14: 49 39 ee cmp %rbp,%r14 - 401d17: 0f 92 c1 setb %cl - 401d1a: e9 75 fd ff ff jmpq 401a94 - 401d1f: 4c 89 f1 mov %r14,%rcx - 401d22: 48 29 e9 sub %rbp,%rcx - 401d25: e9 6a fd ff ff jmpq 401a94 - 401d2a: 49 8d 0c 2e lea (%r14,%rbp,1),%rcx - 401d2e: e9 61 fd ff ff jmpq 401a94 - 401d33: 48 85 ed test %rbp,%rbp - 401d36: 75 0a jne 401d42 - 401d38: bf 08 00 00 00 mov $0x8,%edi - 401d3d: e8 3e be 00 00 callq 40db80 - 401d42: 4c 89 f0 mov %r14,%rax - 401d45: 31 d2 xor %edx,%edx - 401d47: 48 f7 f5 div %rbp - 401d4a: 48 89 d1 mov %rdx,%rcx - 401d4d: e9 42 fd ff ff jmpq 401a94 - 401d52: 48 85 ed test %rbp,%rbp - 401d55: 75 0a jne 401d61 - 401d57: bf 08 00 00 00 mov $0x8,%edi - 401d5c: e8 1f be 00 00 callq 40db80 - 401d61: 4c 89 f0 mov %r14,%rax - 401d64: 31 d2 xor %edx,%edx - 401d66: 48 f7 f5 div %rbp - 401d69: 48 89 c1 mov %rax,%rcx - 401d6c: e9 23 fd ff ff jmpq 401a94 - 401d71: 4c 89 f1 mov %r14,%rcx - 401d74: 48 0f af cd imul %rbp,%rcx - 401d78: e9 17 fd ff ff jmpq 401a94 - 401d7d: 31 c9 xor %ecx,%ecx - 401d7f: 49 39 ee cmp %rbp,%r14 - 401d82: 0f 95 c1 setne %cl - 401d85: e9 0a fd ff ff jmpq 401a94 - 401d8a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 401d90: 48 8b 7d 10 mov 0x10(%rbp),%rdi - 401d94: 4c 89 e6 mov %r12,%rsi - 401d97: e8 74 fa ff ff callq 401810 - 401d9c: 8b 4d 04 mov 0x4(%rbp),%ecx - 401d9f: 49 89 c7 mov %rax,%r15 - 401da2: 83 e9 03 sub $0x3,%ecx - 401da5: 83 f9 0a cmp $0xa,%ecx - 401da8: 0f 87 2a fb ff ff ja 4018d8 - 401dae: ff 24 cd c8 10 4a 00 jmpq *0x4a10c8(,%rcx,8) - 401db5: 45 31 ed xor %r13d,%r13d - 401db8: 49 39 c6 cmp %rax,%r14 - 401dbb: 41 0f 94 c5 sete %r13b - 401dbf: e9 aa fd ff ff jmpq 401b6e - 401dc4: 45 31 ed xor %r13d,%r13d - 401dc7: 49 39 c6 cmp %rax,%r14 - 401dca: 41 0f 93 c5 setae %r13b - 401dce: e9 9b fd ff ff jmpq 401b6e - 401dd3: 45 31 ed xor %r13d,%r13d - 401dd6: 49 39 c6 cmp %rax,%r14 - 401dd9: 41 0f 96 c5 setbe %r13b - 401ddd: e9 8c fd ff ff jmpq 401b6e - 401de2: 45 31 ed xor %r13d,%r13d - 401de5: 49 39 c6 cmp %rax,%r14 - 401de8: 41 0f 97 c5 seta %r13b - 401dec: e9 7d fd ff ff jmpq 401b6e - 401df1: 45 31 ed xor %r13d,%r13d - 401df4: 49 39 c6 cmp %rax,%r14 - 401df7: 41 0f 92 c5 setb %r13b - 401dfb: e9 6e fd ff ff jmpq 401b6e - 401e00: 49 29 c6 sub %rax,%r14 - 401e03: 4d 89 f5 mov %r14,%r13 - 401e06: e9 63 fd ff ff jmpq 401b6e - 401e0b: 4d 8d 2c 06 lea (%r14,%rax,1),%r13 - 401e0f: e9 5a fd ff ff jmpq 401b6e - 401e14: 48 85 c0 test %rax,%rax - 401e17: 75 0a jne 401e23 - 401e19: bf 08 00 00 00 mov $0x8,%edi - 401e1e: e8 5d bd 00 00 callq 40db80 - 401e23: 4c 89 f0 mov %r14,%rax - 401e26: 31 d2 xor %edx,%edx - 401e28: 49 f7 f7 div %r15 - 401e2b: 49 89 d5 mov %rdx,%r13 - 401e2e: e9 3b fd ff ff jmpq 401b6e - 401e33: 48 85 c0 test %rax,%rax - 401e36: 75 0a jne 401e42 - 401e38: bf 08 00 00 00 mov $0x8,%edi - 401e3d: e8 3e bd 00 00 callq 40db80 - 401e42: 4c 89 f0 mov %r14,%rax - 401e45: 31 d2 xor %edx,%edx - 401e47: 49 f7 f7 div %r15 - 401e4a: 49 89 c5 mov %rax,%r13 - 401e4d: e9 1c fd ff ff jmpq 401b6e - 401e52: 4c 0f af f0 imul %rax,%r14 - 401e56: 4d 89 f5 mov %r14,%r13 - 401e59: e9 10 fd ff ff jmpq 401b6e - 401e5e: 45 31 ed xor %r13d,%r13d - 401e61: 49 39 c6 cmp %rax,%r14 - 401e64: 41 0f 95 c5 setne %r13b - 401e68: e9 01 fd ff ff jmpq 401b6e - 401e6d: 0f 1f 00 nopl (%rax) - 401e70: 48 8b 7b 10 mov 0x10(%rbx),%rdi - 401e74: 4c 89 e6 mov %r12,%rsi - 401e77: e8 94 f9 ff ff callq 401810 - 401e7c: 8b 4b 04 mov 0x4(%rbx),%ecx - 401e7f: 49 89 c4 mov %rax,%r12 - 401e82: 83 e9 03 sub $0x3,%ecx - 401e85: 83 f9 0a cmp $0xa,%ecx - 401e88: 0f 87 92 fb ff ff ja 401a20 - 401e8e: ff 24 cd 20 11 4a 00 jmpq *0x4a1120(,%rcx,8) - 401e95: 31 c9 xor %ecx,%ecx - 401e97: 48 39 c5 cmp %rax,%rbp - 401e9a: 0f 94 c1 sete %cl - 401e9d: e9 50 fa ff ff jmpq 4018f2 - 401ea2: 31 c9 xor %ecx,%ecx - 401ea4: 48 39 c5 cmp %rax,%rbp - 401ea7: 0f 92 c1 setb %cl - 401eaa: e9 43 fa ff ff jmpq 4018f2 - 401eaf: 31 c9 xor %ecx,%ecx - 401eb1: 48 39 c5 cmp %rax,%rbp - 401eb4: 0f 97 c1 seta %cl - 401eb7: e9 36 fa ff ff jmpq 4018f2 - 401ebc: 31 c9 xor %ecx,%ecx - 401ebe: 48 39 c5 cmp %rax,%rbp - 401ec1: 0f 96 c1 setbe %cl - 401ec4: e9 29 fa ff ff jmpq 4018f2 - 401ec9: 31 c9 xor %ecx,%ecx - 401ecb: 48 39 c5 cmp %rax,%rbp - 401ece: 0f 93 c1 setae %cl - 401ed1: e9 1c fa ff ff jmpq 4018f2 - 401ed6: 31 c9 xor %ecx,%ecx - 401ed8: 48 39 c5 cmp %rax,%rbp - 401edb: 0f 95 c1 setne %cl - 401ede: e9 0f fa ff ff jmpq 4018f2 - 401ee3: 31 c9 xor %ecx,%ecx - 401ee5: 48 01 c5 add %rax,%rbp - 401ee8: 0f 94 c1 sete %cl - 401eeb: e9 02 fa ff ff jmpq 4018f2 - 401ef0: 48 85 c0 test %rax,%rax - 401ef3: 75 0a jne 401eff - 401ef5: bf 08 00 00 00 mov $0x8,%edi - 401efa: e8 81 bc 00 00 callq 40db80 - 401eff: 31 d2 xor %edx,%edx - 401f01: 48 89 e8 mov %rbp,%rax - 401f04: 31 c9 xor %ecx,%ecx - 401f06: 49 f7 f4 div %r12 - 401f09: 48 85 d2 test %rdx,%rdx - 401f0c: 0f 94 c1 sete %cl - 401f0f: e9 de f9 ff ff jmpq 4018f2 - 401f14: 48 85 c0 test %rax,%rax - 401f17: 75 0a jne 401f23 - 401f19: bf 08 00 00 00 mov $0x8,%edi - 401f1e: e8 5d bc 00 00 callq 40db80 - 401f23: 31 d2 xor %edx,%edx - 401f25: 48 89 e8 mov %rbp,%rax - 401f28: 31 c9 xor %ecx,%ecx - 401f2a: 49 f7 f4 div %r12 - 401f2d: 48 85 c0 test %rax,%rax - 401f30: 0f 94 c1 sete %cl - 401f33: e9 ba f9 ff ff jmpq 4018f2 - 401f38: 48 0f af e8 imul %rax,%rbp - 401f3c: 31 c9 xor %ecx,%ecx - 401f3e: 48 85 ed test %rbp,%rbp - 401f41: 0f 94 c1 sete %cl - 401f44: e9 a9 f9 ff ff jmpq 4018f2 - 401f49: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -0000000000401f50 <_nl_find_msg>: - 401f50: 55 push %rbp - 401f51: 48 89 f8 mov %rdi,%rax - 401f54: 48 89 e5 mov %rsp,%rbp - 401f57: 41 57 push %r15 - 401f59: 41 56 push %r14 - 401f5b: 41 55 push %r13 - 401f5d: 41 54 push %r12 - 401f5f: 53 push %rbx - 401f60: 48 81 ec 88 00 00 00 sub $0x88,%rsp - 401f67: 4c 89 85 60 ff ff ff mov %r8,-0xa0(%rbp) - 401f6e: 44 8b 47 08 mov 0x8(%rdi),%r8d - 401f72: 48 89 bd 70 ff ff ff mov %rdi,-0x90(%rbp) - 401f79: 48 89 b5 58 ff ff ff mov %rsi,-0xa8(%rbp) - 401f80: 48 89 55 a0 mov %rdx,-0x60(%rbp) - 401f84: 89 8d 68 ff ff ff mov %ecx,-0x98(%rbp) - 401f8a: 45 85 c0 test %r8d,%r8d - 401f8d: 0f 8e dd 03 00 00 jle 402370 <_nl_find_msg+0x420> - 401f93: 48 8b 58 10 mov 0x10(%rax),%rbx - 401f97: 48 85 db test %rbx,%rbx - 401f9a: 0f 84 0c 01 00 00 je 4020ac <_nl_find_msg+0x15c> - 401fa0: 48 83 7b 60 00 cmpq $0x0,0x60(%rbx) - 401fa5: 8b 43 28 mov 0x28(%rbx),%eax - 401fa8: 89 45 a8 mov %eax,-0x58(%rbp) - 401fab: 0f 84 9f 02 00 00 je 402250 <_nl_find_msg+0x300> - 401fb1: 4c 8b 75 a0 mov -0x60(%rbp),%r14 - 401fb5: 4c 89 f7 mov %r14,%rdi - 401fb8: e8 93 16 02 00 callq 423650 - 401fbd: 4c 89 f7 mov %r14,%rdi - 401fc0: 49 89 c7 mov %rax,%r15 - 401fc3: 89 85 78 ff ff ff mov %eax,-0x88(%rbp) - 401fc9: e8 62 bb 00 00 callq 40db30 <__hash_string> - 401fce: 8b 7b 58 mov 0x58(%rbx),%edi - 401fd1: 31 d2 xor %edx,%edx - 401fd3: 89 c6 mov %eax,%esi - 401fd5: 44 8b 73 68 mov 0x68(%rbx),%r14d - 401fd9: f7 f7 div %edi - 401fdb: 44 8d 47 fe lea -0x2(%rdi),%r8d - 401fdf: 89 f0 mov %esi,%eax - 401fe1: 41 89 d5 mov %edx,%r13d - 401fe4: 31 d2 xor %edx,%edx - 401fe6: 41 f7 f0 div %r8d - 401fe9: 48 8b 43 60 mov 0x60(%rbx),%rax - 401fed: 48 89 45 98 mov %rax,-0x68(%rbp) - 401ff1: 44 89 f8 mov %r15d,%eax - 401ff4: 41 89 ff mov %edi,%r15d - 401ff7: 48 89 45 80 mov %rax,-0x80(%rbp) - 401ffb: 44 8d 62 01 lea 0x1(%rdx),%r12d - 401fff: 44 89 e0 mov %r12d,%eax - 402002: 45 29 e7 sub %r12d,%r15d - 402005: 29 f8 sub %edi,%eax - 402007: 89 45 90 mov %eax,-0x70(%rbp) - 40200a: 44 89 f8 mov %r15d,%eax - 40200d: 45 89 e7 mov %r12d,%r15d - 402010: 49 89 dc mov %rbx,%r12 - 402013: 44 89 eb mov %r13d,%ebx - 402016: 41 89 c5 mov %eax,%r13d - 402019: eb 7d jmp 402098 <_nl_find_msg+0x148> - 40201b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 402020: 48 8b 4d 98 mov -0x68(%rbp),%rcx - 402024: 44 8b 14 81 mov (%rcx,%rax,4),%r10d - 402028: 41 0f ca bswap %r10d - 40202b: 45 85 d2 test %r10d,%r10d - 40202e: 74 7c je 4020ac <_nl_find_msg+0x15c> - 402030: 41 83 ea 01 sub $0x1,%r10d - 402034: 44 39 55 a8 cmp %r10d,-0x58(%rbp) - 402038: 0f 86 82 00 00 00 jbe 4020c0 <_nl_find_msg+0x170> - 40203e: 41 8b 7c 24 18 mov 0x18(%r12),%edi - 402043: 49 8b 44 24 30 mov 0x30(%r12),%rax - 402048: 85 ff test %edi,%edi - 40204a: 0f 84 e0 01 00 00 je 402230 <_nl_find_msg+0x2e0> - 402050: 4a 8d 3c d0 lea (%rax,%r10,8),%rdi - 402054: 8b 07 mov (%rdi),%eax - 402056: 0f c8 bswap %eax - 402058: 39 85 78 ff ff ff cmp %eax,-0x88(%rbp) - 40205e: 77 27 ja 402087 <_nl_find_msg+0x137> - 402060: 8b 47 04 mov 0x4(%rdi),%eax - 402063: 49 8b 34 24 mov (%r12),%rsi - 402067: 0f c8 bswap %eax - 402069: 89 c0 mov %eax,%eax - 40206b: 48 8b 7d a0 mov -0x60(%rbp),%rdi - 40206f: 48 01 c6 add %rax,%rsi - 402072: 4c 89 55 88 mov %r10,-0x78(%rbp) - 402076: e8 e5 e2 ff ff callq 400360 <__rela_iplt_end+0x98> - 40207b: 85 c0 test %eax,%eax - 40207d: 4c 8b 55 88 mov -0x78(%rbp),%r10 - 402081: 0f 84 8a 0a 00 00 je 402b11 <_nl_find_msg+0xbc1> - 402087: 8b 45 90 mov -0x70(%rbp),%eax - 40208a: 42 8d 34 3b lea (%rbx,%r15,1),%esi - 40208e: 01 d8 add %ebx,%eax - 402090: 44 39 eb cmp %r13d,%ebx - 402093: 0f 42 c6 cmovb %esi,%eax - 402096: 89 c3 mov %eax,%ebx - 402098: 45 85 f6 test %r14d,%r14d - 40209b: 89 d8 mov %ebx,%eax - 40209d: 75 81 jne 402020 <_nl_find_msg+0xd0> - 40209f: 48 8b 55 98 mov -0x68(%rbp),%rdx - 4020a3: 44 8b 14 82 mov (%rdx,%rax,4),%r10d - 4020a7: 45 85 d2 test %r10d,%r10d - 4020aa: 75 84 jne 402030 <_nl_find_msg+0xe0> - 4020ac: 31 c0 xor %eax,%eax - 4020ae: 48 8d 65 d8 lea -0x28(%rbp),%rsp - 4020b2: 5b pop %rbx - 4020b3: 41 5c pop %r12 - 4020b5: 41 5d pop %r13 - 4020b7: 41 5e pop %r14 - 4020b9: 41 5f pop %r15 - 4020bb: 5d pop %rbp - 4020bc: c3 retq - 4020bd: 0f 1f 00 nopl (%rax) - 4020c0: 44 89 d0 mov %r10d,%eax - 4020c3: 2b 45 a8 sub -0x58(%rbp),%eax - 4020c6: 48 8b 55 80 mov -0x80(%rbp),%rdx - 4020ca: 44 89 55 88 mov %r10d,-0x78(%rbp) - 4020ce: 48 c1 e0 04 shl $0x4,%rax - 4020d2: 49 03 44 24 48 add 0x48(%r12),%rax - 4020d7: 48 3b 10 cmp (%rax),%rdx - 4020da: 73 ab jae 402087 <_nl_find_msg+0x137> - 4020dc: 48 8b 70 08 mov 0x8(%rax),%rsi - 4020e0: 48 8b 7d a0 mov -0x60(%rbp),%rdi - 4020e4: e8 77 e2 ff ff callq 400360 <__rela_iplt_end+0x98> - 4020e9: 85 c0 test %eax,%eax - 4020eb: 75 9a jne 402087 <_nl_find_msg+0x137> - 4020ed: 44 8b 55 88 mov -0x78(%rbp),%r10d - 4020f1: 4c 89 e3 mov %r12,%rbx - 4020f4: 8b 45 a8 mov -0x58(%rbp),%eax - 4020f7: 4d 89 d6 mov %r10,%r14 - 4020fa: 49 39 c6 cmp %rax,%r14 - 4020fd: 0f 83 f5 01 00 00 jae 4022f8 <_nl_find_msg+0x3a8> - 402103: 8b 4b 18 mov 0x18(%rbx),%ecx - 402106: 4c 8b 3b mov (%rbx),%r15 - 402109: 48 8b 43 38 mov 0x38(%rbx),%rax - 40210d: 85 c9 test %ecx,%ecx - 40210f: 0f 84 3b 02 00 00 je 402350 <_nl_find_msg+0x400> - 402115: 4a 8d 14 f0 lea (%rax,%r14,8),%rdx - 402119: 8b 42 04 mov 0x4(%rdx),%eax - 40211c: 0f c8 bswap %eax - 40211e: 89 c0 mov %eax,%eax - 402120: 4c 01 f8 add %r15,%rax - 402123: 48 89 45 a0 mov %rax,-0x60(%rbp) - 402127: 8b 02 mov (%rdx),%eax - 402129: 8b 95 68 ff ff ff mov -0x98(%rbp),%edx - 40212f: 0f c8 bswap %eax - 402131: 83 c0 01 add $0x1,%eax - 402134: 85 d2 test %edx,%edx - 402136: 48 89 45 98 mov %rax,-0x68(%rbp) - 40213a: 0f 84 e6 01 00 00 je 402326 <_nl_find_msg+0x3d6> - 402140: 48 8b 85 58 ff ff ff mov -0xa8(%rbp),%rax - 402147: 48 85 c0 test %rax,%rax - 40214a: 0f 84 f7 02 00 00 je 402447 <_nl_find_msg+0x4f7> - 402150: 48 8b 40 10 mov 0x10(%rax),%rax - 402154: 48 85 c0 test %rax,%rax - 402157: 48 89 45 90 mov %rax,-0x70(%rbp) - 40215b: 0f 84 e6 02 00 00 je 402447 <_nl_find_msg+0x4f7> - 402161: b8 00 00 00 00 mov $0x0,%eax - 402166: 48 85 c0 test %rax,%rax - 402169: 74 09 je 402174 <_nl_find_msg+0x224> - 40216b: 48 8d bb 80 00 00 00 lea 0x80(%rbx),%rdi - 402172: ff d0 callq *%rax - 402174: 4c 8b 6b 78 mov 0x78(%rbx),%r13 - 402178: 4d 85 ed test %r13,%r13 - 40217b: 0f 84 17 02 00 00 je 402398 <_nl_find_msg+0x448> - 402181: 48 8b 53 70 mov 0x70(%rbx),%rdx - 402185: 4b 8d 44 6d 00 lea 0x0(%r13,%r13,2),%rax - 40218a: 48 89 5d 88 mov %rbx,-0x78(%rbp) - 40218e: 4c 8b 65 90 mov -0x70(%rbp),%r12 - 402192: 4c 89 eb mov %r13,%rbx - 402195: 4c 8d 7c c2 e8 lea -0x18(%rdx,%rax,8),%r15 - 40219a: eb 11 jmp 4021ad <_nl_find_msg+0x25d> - 40219c: 0f 1f 40 00 nopl 0x0(%rax) - 4021a0: 49 83 ef 18 sub $0x18,%r15 - 4021a4: 48 85 db test %rbx,%rbx - 4021a7: 0f 84 e7 01 00 00 je 402394 <_nl_find_msg+0x444> - 4021ad: 49 8b 3f mov (%r15),%rdi - 4021b0: 4c 89 e6 mov %r12,%rsi - 4021b3: 48 83 eb 01 sub $0x1,%rbx - 4021b7: e8 a4 e1 ff ff callq 400360 <__rela_iplt_end+0x98> - 4021bc: 85 c0 test %eax,%eax - 4021be: 75 e0 jne 4021a0 <_nl_find_msg+0x250> - 4021c0: b8 00 00 00 00 mov $0x0,%eax - 4021c5: 48 8b 5d 88 mov -0x78(%rbp),%rbx - 4021c9: 4d 89 fc mov %r15,%r12 - 4021cc: 48 85 c0 test %rax,%rax - 4021cf: 48 89 45 88 mov %rax,-0x78(%rbp) - 4021d3: 74 15 je 4021ea <_nl_find_msg+0x29a> - 4021d5: 48 8d bb 80 00 00 00 lea 0x80(%rbx),%rdi - 4021dc: e8 1f de bf ff callq 0 <_nl_current_LC_CTYPE> - 4021e1: 4d 85 e4 test %r12,%r12 - 4021e4: 0f 84 c3 01 00 00 je 4023ad <_nl_find_msg+0x45d> - 4021ea: 49 83 7c 24 08 ff cmpq $0xffffffffffffffff,0x8(%r12) - 4021f0: 0f 84 30 01 00 00 je 402326 <_nl_find_msg+0x3d6> - 4021f6: 49 8b 44 24 10 mov 0x10(%r12),%rax - 4021fb: 48 85 c0 test %rax,%rax - 4021fe: 0f 84 ed 02 00 00 je 4024f1 <_nl_find_msg+0x5a1> - 402204: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 402208: 0f 84 d7 02 00 00 je 4024e5 <_nl_find_msg+0x595> - 40220e: 4a 8b 04 f0 mov (%rax,%r14,8),%rax - 402212: 48 85 c0 test %rax,%rax - 402215: 0f 84 5f 03 00 00 je 40257a <_nl_find_msg+0x62a> - 40221b: 48 8d 78 08 lea 0x8(%rax),%rdi - 40221f: 48 8b 00 mov (%rax),%rax - 402222: 48 89 7d a0 mov %rdi,-0x60(%rbp) - 402226: 48 89 45 98 mov %rax,-0x68(%rbp) - 40222a: e9 f7 00 00 00 jmpq 402326 <_nl_find_msg+0x3d6> - 40222f: 90 nop - 402230: 4a 8d 04 d0 lea (%rax,%r10,8),%rax - 402234: 8b 95 78 ff ff ff mov -0x88(%rbp),%edx - 40223a: 3b 10 cmp (%rax),%edx - 40223c: 0f 87 45 fe ff ff ja 402087 <_nl_find_msg+0x137> - 402242: 49 8b 34 24 mov (%r12),%rsi - 402246: 8b 40 04 mov 0x4(%rax),%eax - 402249: e9 1d fe ff ff jmpq 40206b <_nl_find_msg+0x11b> - 40224e: 66 90 xchg %ax,%ax - 402250: 8b 45 a8 mov -0x58(%rbp),%eax - 402253: 45 31 ff xor %r15d,%r15d - 402256: 49 89 c5 mov %rax,%r13 - 402259: 48 89 45 90 mov %rax,-0x70(%rbp) - 40225d: 48 89 d8 mov %rbx,%rax - 402260: 4c 89 eb mov %r13,%rbx - 402263: 49 89 c5 mov %rax,%r13 - 402266: eb 31 jmp 402299 <_nl_find_msg+0x349> - 402268: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40226f: 00 - 402270: 4e 8d 34 3b lea (%rbx,%r15,1),%r14 - 402274: 48 8b 7d a0 mov -0x60(%rbp),%rdi - 402278: 49 d1 ee shr %r14 - 40227b: 43 8b 74 f4 04 mov 0x4(%r12,%r14,8),%esi - 402280: 48 03 75 98 add -0x68(%rbp),%rsi - 402284: e8 d7 e0 ff ff callq 400360 <__rela_iplt_end+0x98> - 402289: 85 c0 test %eax,%eax - 40228b: 78 5b js 4022e8 <_nl_find_msg+0x398> - 40228d: 85 c0 test %eax,%eax - 40228f: 0f 84 f3 00 00 00 je 402388 <_nl_find_msg+0x438> - 402295: 4d 8d 7e 01 lea 0x1(%r14),%r15 - 402299: 49 39 df cmp %rbx,%r15 - 40229c: 0f 83 0a fe ff ff jae 4020ac <_nl_find_msg+0x15c> - 4022a2: 41 8b 75 18 mov 0x18(%r13),%esi - 4022a6: 49 8b 45 00 mov 0x0(%r13),%rax - 4022aa: 4d 8b 65 30 mov 0x30(%r13),%r12 - 4022ae: 85 f6 test %esi,%esi - 4022b0: 48 89 45 98 mov %rax,-0x68(%rbp) - 4022b4: 74 ba je 402270 <_nl_find_msg+0x320> - 4022b6: 4d 8d 34 1f lea (%r15,%rbx,1),%r14 - 4022ba: 48 8b 7d a0 mov -0x60(%rbp),%rdi - 4022be: 49 d1 ee shr %r14 - 4022c1: 43 8b 74 f4 04 mov 0x4(%r12,%r14,8),%esi - 4022c6: 0f ce bswap %esi - 4022c8: 89 f6 mov %esi,%esi - 4022ca: 48 03 75 98 add -0x68(%rbp),%rsi - 4022ce: e8 8d e0 ff ff callq 400360 <__rela_iplt_end+0x98> - 4022d3: 85 c0 test %eax,%eax - 4022d5: 79 b6 jns 40228d <_nl_find_msg+0x33d> - 4022d7: 4d 39 f7 cmp %r14,%r15 - 4022da: 4c 89 f3 mov %r14,%rbx - 4022dd: 72 d7 jb 4022b6 <_nl_find_msg+0x366> - 4022df: e9 c8 fd ff ff jmpq 4020ac <_nl_find_msg+0x15c> - 4022e4: 0f 1f 40 00 nopl 0x0(%rax) - 4022e8: 4d 39 f7 cmp %r14,%r15 - 4022eb: 4c 89 f3 mov %r14,%rbx - 4022ee: 72 80 jb 402270 <_nl_find_msg+0x320> - 4022f0: e9 b7 fd ff ff jmpq 4020ac <_nl_find_msg+0x15c> - 4022f5: 0f 1f 00 nopl (%rax) - 4022f8: 4c 89 f1 mov %r14,%rcx - 4022fb: 48 29 c1 sub %rax,%rcx - 4022fe: 48 89 c8 mov %rcx,%rax - 402301: 48 c1 e0 04 shl $0x4,%rax - 402305: 48 03 43 50 add 0x50(%rbx),%rax - 402309: 48 8b 48 08 mov 0x8(%rax),%rcx - 40230d: 48 8b 00 mov (%rax),%rax - 402310: 48 89 4d a0 mov %rcx,-0x60(%rbp) - 402314: 48 89 45 98 mov %rax,-0x68(%rbp) - 402318: 8b 95 68 ff ff ff mov -0x98(%rbp),%edx - 40231e: 85 d2 test %edx,%edx - 402320: 0f 85 1a fe ff ff jne 402140 <_nl_find_msg+0x1f0> - 402326: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax - 40232d: 48 8b 7d 98 mov -0x68(%rbp),%rdi - 402331: 48 89 38 mov %rdi,(%rax) - 402334: 48 8b 45 a0 mov -0x60(%rbp),%rax - 402338: 48 8d 65 d8 lea -0x28(%rbp),%rsp - 40233c: 5b pop %rbx - 40233d: 41 5c pop %r12 - 40233f: 41 5d pop %r13 - 402341: 41 5e pop %r14 - 402343: 41 5f pop %r15 - 402345: 5d pop %rbp - 402346: c3 retq - 402347: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40234e: 00 00 - 402350: 4a 8d 04 f0 lea (%rax,%r14,8),%rax - 402354: 8b 50 04 mov 0x4(%rax),%edx - 402357: 8b 00 mov (%rax),%eax - 402359: 83 c0 01 add $0x1,%eax - 40235c: 49 8d 3c 17 lea (%r15,%rdx,1),%rdi - 402360: 48 89 45 98 mov %rax,-0x68(%rbp) - 402364: 48 89 7d a0 mov %rdi,-0x60(%rbp) - 402368: eb ae jmp 402318 <_nl_find_msg+0x3c8> - 40236a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 402370: e8 cb 13 00 00 callq 403740 <_nl_load_domain> - 402375: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax - 40237c: e9 12 fc ff ff jmpq 401f93 <_nl_find_msg+0x43> - 402381: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 402388: 4c 89 eb mov %r13,%rbx - 40238b: 48 8b 45 90 mov -0x70(%rbp),%rax - 40238f: e9 66 fd ff ff jmpq 4020fa <_nl_find_msg+0x1aa> - 402394: 48 8b 5d 88 mov -0x78(%rbp),%rbx - 402398: b8 00 00 00 00 mov $0x0,%eax - 40239d: 45 31 e4 xor %r12d,%r12d - 4023a0: 48 85 c0 test %rax,%rax - 4023a3: 48 89 45 88 mov %rax,-0x78(%rbp) - 4023a7: 0f 85 28 fe ff ff jne 4021d5 <_nl_find_msg+0x285> - 4023ad: b8 00 00 00 00 mov $0x0,%eax - 4023b2: 48 85 c0 test %rax,%rax - 4023b5: 74 09 je 4023c0 <_nl_find_msg+0x470> - 4023b7: 48 8d bb 80 00 00 00 lea 0x80(%rbx),%rdi - 4023be: ff d0 callq *%rax - 4023c0: 48 8b 43 78 mov 0x78(%rbx),%rax - 4023c4: 48 85 c0 test %rax,%rax - 4023c7: 48 89 45 80 mov %rax,-0x80(%rbp) - 4023cb: 0f 84 cd 06 00 00 je 402a9e <_nl_find_msg+0xb4e> - 4023d1: 48 89 c1 mov %rax,%rcx - 4023d4: 48 8b 43 70 mov 0x70(%rbx),%rax - 4023d8: 48 89 9d 68 ff ff ff mov %rbx,-0x98(%rbp) - 4023df: 4c 8b 7d 90 mov -0x70(%rbp),%r15 - 4023e3: 48 89 cb mov %rcx,%rbx - 4023e6: 48 89 c7 mov %rax,%rdi - 4023e9: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) - 4023f0: 48 8d 04 49 lea (%rcx,%rcx,2),%rax - 4023f4: 48 8d 54 c7 e8 lea -0x18(%rdi,%rax,8),%rdx - 4023f9: 49 89 d5 mov %rdx,%r13 - 4023fc: eb 0f jmp 40240d <_nl_find_msg+0x4bd> - 4023fe: 66 90 xchg %ax,%ax - 402400: 49 83 ed 18 sub $0x18,%r13 - 402404: 48 85 db test %rbx,%rbx - 402407: 0f 84 f3 02 00 00 je 402700 <_nl_find_msg+0x7b0> - 40240d: 49 8b 7d 00 mov 0x0(%r13),%rdi - 402411: 4c 89 fe mov %r15,%rsi - 402414: 48 83 eb 01 sub $0x1,%rbx - 402418: 4d 89 ec mov %r13,%r12 - 40241b: e8 40 df ff ff callq 400360 <__rela_iplt_end+0x98> - 402420: 85 c0 test %eax,%eax - 402422: 75 dc jne 402400 <_nl_find_msg+0x4b0> - 402424: 48 8b 9d 68 ff ff ff mov -0x98(%rbp),%rbx - 40242b: 48 83 7d 88 00 cmpq $0x0,-0x78(%rbp) - 402430: 0f 84 b4 fd ff ff je 4021ea <_nl_find_msg+0x29a> - 402436: 48 8d bb 80 00 00 00 lea 0x80(%rbx),%rdi - 40243d: e8 be db bf ff callq 0 <_nl_current_LC_CTYPE> - 402442: e9 a3 fd ff ff jmpq 4021ea <_nl_find_msg+0x29a> - 402447: 8b 05 d3 9b 2c 00 mov 0x2c9bd3(%rip),%eax # 6cc020 - 40244d: 4c 8b 2d c4 9b 2c 00 mov 0x2c9bc4(%rip),%r13 # 6cc018 - 402454: 85 c0 test %eax,%eax - 402456: 0f 84 73 02 00 00 je 4026cf <_nl_find_msg+0x77f> - 40245c: 4d 85 ed test %r13,%r13 - 40245f: 4c 89 6d 90 mov %r13,-0x70(%rbp) - 402463: 0f 85 f8 fc ff ff jne 402161 <_nl_find_msg+0x211> - 402469: 48 c7 c0 b0 ff ff ff mov $0xffffffffffffffb0,%rax - 402470: 64 48 8b 00 mov %fs:(%rax),%rax - 402474: 48 8b 00 mov (%rax),%rax - 402477: 48 8b 80 b0 00 00 00 mov 0xb0(%rax),%rax - 40247e: 48 89 45 90 mov %rax,-0x70(%rbp) - 402482: e9 da fc ff ff jmpq 402161 <_nl_find_msg+0x211> - 402487: 48 8b 03 mov (%rbx),%rax - 40248a: 48 89 df mov %rbx,%rdi - 40248d: 48 89 05 ac 9b 2c 00 mov %rax,0x2c9bac(%rip) # 6cc040 - 402494: e8 17 b9 01 00 callq 41ddb0 <__cfree> - 402499: 48 c7 05 8c 9b 2c 00 movq $0x0,0x2c9b8c(%rip) # 6cc030 - 4024a0: 00 00 00 00 - 4024a4: 48 c7 05 79 9b 2c 00 movq $0x0,0x2c9b79(%rip) # 6cc028 - 4024ab: 00 00 00 00 - 4024af: 83 3d 06 ad 2c 00 00 cmpl $0x0,0x2cad06(%rip) # 6cd1bc <__libc_multiple_threads> - 4024b6: 74 0b je 4024c3 <_nl_find_msg+0x573> - 4024b8: f0 ff 0d 79 9b 2c 00 lock decl 0x2c9b79(%rip) # 6cc038 - 4024bf: 75 0a jne 4024cb <_nl_find_msg+0x57b> - 4024c1: eb 22 jmp 4024e5 <_nl_find_msg+0x595> - 4024c3: ff 0d 6f 9b 2c 00 decl 0x2c9b6f(%rip) # 6cc038 - 4024c9: 74 1a je 4024e5 <_nl_find_msg+0x595> - 4024cb: 48 8d 3d 66 9b 2c 00 lea 0x2c9b66(%rip),%rdi # 6cc038 - 4024d2: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4024d9: e8 22 01 04 00 callq 442600 <__lll_unlock_wake_private> - 4024de: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4024e5: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 4024ec: e9 bd fb ff ff jmpq 4020ae <_nl_find_msg+0x15e> - 4024f1: be 01 00 00 00 mov $0x1,%esi - 4024f6: 83 3d bf ac 2c 00 00 cmpl $0x0,0x2cacbf(%rip) # 6cd1bc <__libc_multiple_threads> - 4024fd: 74 0c je 40250b <_nl_find_msg+0x5bb> - 4024ff: f0 0f b1 35 31 9b 2c lock cmpxchg %esi,0x2c9b31(%rip) # 6cc038 - 402506: 00 - 402507: 75 0b jne 402514 <_nl_find_msg+0x5c4> - 402509: eb 23 jmp 40252e <_nl_find_msg+0x5de> - 40250b: 0f b1 35 26 9b 2c 00 cmpxchg %esi,0x2c9b26(%rip) # 6cc038 - 402512: 74 1a je 40252e <_nl_find_msg+0x5de> - 402514: 48 8d 3d 1d 9b 2c 00 lea 0x2c9b1d(%rip),%rdi # 6cc038 - 40251b: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 402522: e8 a9 00 04 00 callq 4425d0 <__lll_lock_wait_private> - 402527: 48 81 c4 80 00 00 00 add $0x80,%rsp - 40252e: 49 83 7c 24 10 00 cmpq $0x0,0x10(%r12) - 402534: 0f 84 88 05 00 00 je 402ac2 <_nl_find_msg+0xb72> - 40253a: 83 3d 7b ac 2c 00 00 cmpl $0x0,0x2cac7b(%rip) # 6cd1bc <__libc_multiple_threads> - 402541: 74 0b je 40254e <_nl_find_msg+0x5fe> - 402543: f0 ff 0d ee 9a 2c 00 lock decl 0x2c9aee(%rip) # 6cc038 - 40254a: 75 0a jne 402556 <_nl_find_msg+0x606> - 40254c: eb 22 jmp 402570 <_nl_find_msg+0x620> - 40254e: ff 0d e4 9a 2c 00 decl 0x2c9ae4(%rip) # 6cc038 - 402554: 74 1a je 402570 <_nl_find_msg+0x620> - 402556: 48 8d 3d db 9a 2c 00 lea 0x2c9adb(%rip),%rdi # 6cc038 - 40255d: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 402564: e8 97 00 04 00 callq 442600 <__lll_unlock_wake_private> - 402569: 48 81 c4 80 00 00 00 add $0x80,%rsp - 402570: 49 8b 44 24 10 mov 0x10(%r12),%rax - 402575: e9 8a fc ff ff jmpq 402204 <_nl_find_msg+0x2b4> - 40257a: be 01 00 00 00 mov $0x1,%esi - 40257f: 83 3d 36 ac 2c 00 00 cmpl $0x0,0x2cac36(%rip) # 6cd1bc <__libc_multiple_threads> - 402586: 74 0c je 402594 <_nl_find_msg+0x644> - 402588: f0 0f b1 35 a8 9a 2c lock cmpxchg %esi,0x2c9aa8(%rip) # 6cc038 - 40258f: 00 - 402590: 75 0b jne 40259d <_nl_find_msg+0x64d> - 402592: eb 23 jmp 4025b7 <_nl_find_msg+0x667> - 402594: 0f b1 35 9d 9a 2c 00 cmpxchg %esi,0x2c9a9d(%rip) # 6cc038 - 40259b: 74 1a je 4025b7 <_nl_find_msg+0x667> - 40259d: 48 8d 3d 94 9a 2c 00 lea 0x2c9a94(%rip),%rdi # 6cc038 - 4025a4: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4025ab: e8 20 00 04 00 callq 4425d0 <__lll_lock_wait_private> - 4025b0: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4025b7: 48 8b 45 a0 mov -0x60(%rbp),%rax - 4025bb: 45 31 ed xor %r13d,%r13d - 4025be: 4c 89 75 a8 mov %r14,-0x58(%rbp) - 4025c2: 48 8b 0d 5f 9a 2c 00 mov 0x2c9a5f(%rip),%rcx # 6cc028 - 4025c9: 4c 8b 7d 98 mov -0x68(%rbp),%r15 - 4025cd: 45 89 ee mov %r13d,%r14d - 4025d0: 48 89 45 b8 mov %rax,-0x48(%rbp) - 4025d4: 48 8b 05 55 9a 2c 00 mov 0x2c9a55(%rip),%rax # 6cc030 - 4025db: 48 83 c0 08 add $0x8,%rax - 4025df: 48 89 45 c0 mov %rax,-0x40(%rbp) - 4025e3: eb 61 jmp 402646 <_nl_find_msg+0x6f6> - 4025e5: 0f 1f 00 nopl (%rax) - 4025e8: 45 85 f6 test %r14d,%r14d - 4025eb: 0f 84 9f 00 00 00 je 402690 <_nl_find_msg+0x740> - 4025f1: 41 83 c6 01 add $0x1,%r14d - 4025f5: 48 8b 1d 44 9a 2c 00 mov 0x2c9a44(%rip),%rbx # 6cc040 - 4025fc: 41 69 ce f0 0f 00 00 imul $0xff0,%r14d,%ecx - 402603: 48 89 df mov %rbx,%rdi - 402606: 4c 63 e9 movslq %ecx,%r13 - 402609: 4c 89 ee mov %r13,%rsi - 40260c: 4c 89 2d 15 9a 2c 00 mov %r13,0x2c9a15(%rip) # 6cc028 - 402613: e8 58 b9 01 00 callq 41df70 <__libc_realloc> - 402618: 48 85 c0 test %rax,%rax - 40261b: 0f 84 66 fe ff ff je 402487 <_nl_find_msg+0x537> - 402621: 49 8d 4d f8 lea -0x8(%r13),%rcx - 402625: 48 89 05 14 9a 2c 00 mov %rax,0x2c9a14(%rip) # 6cc040 - 40262c: 48 8d 50 08 lea 0x8(%rax),%rdx - 402630: 48 83 c0 10 add $0x10,%rax - 402634: 48 89 0d ed 99 2c 00 mov %rcx,0x2c99ed(%rip) # 6cc028 - 40263b: 48 89 45 c0 mov %rax,-0x40(%rbp) - 40263f: 48 89 15 ea 99 2c 00 mov %rdx,0x2c99ea(%rip) # 6cc030 - 402646: 48 83 f9 07 cmp $0x7,%rcx - 40264a: 76 9c jbe 4025e8 <_nl_find_msg+0x698> - 40264c: 4c 89 fa mov %r15,%rdx - 40264f: 48 03 55 b8 add -0x48(%rbp),%rdx - 402653: 49 8b 7c 24 08 mov 0x8(%r12),%rdi - 402658: 4c 8d 44 08 f8 lea -0x8(%rax,%rcx,1),%r8 - 40265d: 4c 8d 4d c8 lea -0x38(%rbp),%r9 - 402661: 48 8d 4d c0 lea -0x40(%rbp),%rcx - 402665: 48 8d 75 b8 lea -0x48(%rbp),%rsi - 402669: e8 02 20 04 00 callq 444670 <__gconv> - 40266e: a9 fb ff ff ff test $0xfffffffb,%eax - 402673: 0f 84 46 03 00 00 je 4029bf <_nl_find_msg+0xa6f> - 402679: 83 f8 05 cmp $0x5,%eax - 40267c: 0f 85 02 03 00 00 jne 402984 <_nl_find_msg+0xa34> - 402682: 48 8b 45 a0 mov -0x60(%rbp),%rax - 402686: 48 89 45 b8 mov %rax,-0x48(%rbp) - 40268a: e9 59 ff ff ff jmpq 4025e8 <_nl_find_msg+0x698> - 40268f: 90 nop - 402690: bf f0 0f 00 00 mov $0xff0,%edi - 402695: 48 c7 05 88 99 2c 00 movq $0xff0,0x2c9988(%rip) # 6cc028 - 40269c: f0 0f 00 00 - 4026a0: e8 6b b3 01 00 callq 41da10 <__libc_malloc> - 4026a5: 48 85 c0 test %rax,%rax - 4026a8: 0f 84 eb fd ff ff je 402499 <_nl_find_msg+0x549> - 4026ae: 48 8b 15 8b 99 2c 00 mov 0x2c998b(%rip),%rdx # 6cc040 - 4026b5: b9 e8 0f 00 00 mov $0xfe8,%ecx - 4026ba: 48 89 05 7f 99 2c 00 mov %rax,0x2c997f(%rip) # 6cc040 - 4026c1: 41 be 01 00 00 00 mov $0x1,%r14d - 4026c7: 48 89 10 mov %rdx,(%rax) - 4026ca: e9 5d ff ff ff jmpq 40262c <_nl_find_msg+0x6dc> - 4026cf: bf 78 11 4a 00 mov $0x4a1178,%edi - 4026d4: e8 07 c1 00 00 callq 40e7e0 - 4026d9: 48 85 c0 test %rax,%rax - 4026dc: 49 89 c4 mov %rax,%r12 - 4026df: 74 09 je 4026ea <_nl_find_msg+0x79a> - 4026e1: 80 38 00 cmpb $0x0,(%rax) - 4026e4: 0f 85 64 03 00 00 jne 402a4e <_nl_find_msg+0xafe> - 4026ea: 4c 8b 2d 27 99 2c 00 mov 0x2c9927(%rip),%r13 # 6cc018 - 4026f1: c7 05 25 99 2c 00 01 movl $0x1,0x2c9925(%rip) # 6cc020 - 4026f8: 00 00 00 - 4026fb: e9 5c fd ff ff jmpq 40245c <_nl_find_msg+0x50c> - 402700: 48 8b 9d 68 ff ff ff mov -0x98(%rbp),%rbx - 402707: 48 8b 85 78 ff ff ff mov -0x88(%rbp),%rax - 40270e: 48 85 c0 test %rax,%rax - 402711: 0f 84 6d 03 00 00 je 402a84 <_nl_find_msg+0xb34> - 402717: 48 8b 7d 80 mov -0x80(%rbp),%rdi - 40271b: 48 8d 74 7f 03 lea 0x3(%rdi,%rdi,2),%rsi - 402720: 48 89 c7 mov %rax,%rdi - 402723: 48 c1 e6 03 shl $0x3,%rsi - 402727: e8 44 b8 01 00 callq 41df70 <__libc_realloc> - 40272c: 49 89 c4 mov %rax,%r12 - 40272f: 4d 85 e4 test %r12,%r12 - 402732: 0f 84 0d 02 00 00 je 402945 <_nl_find_msg+0x9f5> - 402738: 48 8b 7d 90 mov -0x70(%rbp),%rdi - 40273c: 4c 89 63 70 mov %r12,0x70(%rbx) - 402740: e8 bb 0e 02 00 callq 423600 <__strdup> - 402745: 48 85 c0 test %rax,%rax - 402748: 49 89 c5 mov %rax,%r13 - 40274b: 0f 84 f4 01 00 00 je 402945 <_nl_find_msg+0x9f5> - 402751: 48 8b 45 80 mov -0x80(%rbp),%rax - 402755: 48 8b bd 70 ff ff ff mov -0x90(%rbp),%rdi - 40275c: 4c 8d 45 c8 lea -0x38(%rbp),%r8 - 402760: 48 8b b5 58 ff ff ff mov -0xa8(%rbp),%rsi - 402767: 31 c9 xor %ecx,%ecx - 402769: ba 25 67 4b 00 mov $0x4b6725,%edx - 40276e: 48 8d 04 40 lea (%rax,%rax,2),%rax - 402772: 4d 8d 24 c4 lea (%r12,%rax,8),%r12 - 402776: 4d 89 2c 24 mov %r13,(%r12) - 40277a: 49 c7 44 24 08 ff ff movq $0xffffffffffffffff,0x8(%r12) - 402781: ff ff - 402783: e8 c8 f7 ff ff callq 401f50 <_nl_find_msg> - 402788: 48 89 c7 mov %rax,%rdi - 40278b: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 402792: 48 39 c7 cmp %rax,%rdi - 402795: 0f 84 13 f9 ff ff je 4020ae <_nl_find_msg+0x15e> - 40279b: 48 85 ff test %rdi,%rdi - 40279e: 0f 84 cd 01 00 00 je 402971 <_nl_find_msg+0xa21> - 4027a4: be 87 11 4a 00 mov $0x4a1187,%esi - 4027a9: e8 72 db ff ff callq 400320 <__rela_iplt_end+0x58> - 4027ae: 48 85 c0 test %rax,%rax - 4027b1: 0f 84 ba 01 00 00 je 402971 <_nl_find_msg+0xa21> - 4027b7: 0f b6 50 08 movzbl 0x8(%rax),%edx - 4027bb: 48 8d 70 08 lea 0x8(%rax),%rsi - 4027bf: f6 c2 df test $0xdf,%dl - 4027c2: 0f 84 8b 03 00 00 je 402b53 <_nl_find_msg+0xc03> - 4027c8: 83 ea 09 sub $0x9,%edx - 4027cb: 80 fa 01 cmp $0x1,%dl - 4027ce: ba 00 00 00 00 mov $0x0,%edx - 4027d3: 77 13 ja 4027e8 <_nl_find_msg+0x898> - 4027d5: eb 1f jmp 4027f6 <_nl_find_msg+0x8a6> - 4027d7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4027de: 00 00 - 4027e0: 83 e9 09 sub $0x9,%ecx - 4027e3: 80 f9 01 cmp $0x1,%cl - 4027e6: 76 0e jbe 4027f6 <_nl_find_msg+0x8a6> - 4027e8: 48 83 c2 01 add $0x1,%rdx - 4027ec: 0f b6 4c 10 08 movzbl 0x8(%rax,%rdx,1),%ecx - 4027f1: f6 c1 df test $0xdf,%cl - 4027f4: 75 ea jne 4027e0 <_nl_find_msg+0x890> - 4027f6: 48 8d 42 1f lea 0x1f(%rdx),%rax - 4027fa: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 4027fe: 48 29 c4 sub %rax,%rsp - 402801: 4c 8d 44 24 0f lea 0xf(%rsp),%r8 - 402806: 49 83 e0 f0 and $0xfffffffffffffff0,%r8 - 40280a: 4c 89 c7 mov %r8,%rdi - 40280d: 4c 89 45 80 mov %r8,-0x80(%rbp) - 402811: 4c 89 45 90 mov %r8,-0x70(%rbp) - 402815: e8 a6 3d 02 00 callq 4265c0 <__mempcpy> - 40281a: 31 ff xor %edi,%edi - 40281c: c6 00 00 movb $0x0,(%rax) - 40281f: 48 8b 4d 80 mov -0x80(%rbp),%rcx - 402823: 4c 89 e8 mov %r13,%rax - 402826: 4c 8b 45 90 mov -0x70(%rbp),%r8 - 40282a: eb 14 jmp 402840 <_nl_find_msg+0x8f0> - 40282c: 0f 1f 40 00 nopl 0x0(%rax) - 402830: 48 83 c0 01 add $0x1,%rax - 402834: 80 fa 2f cmp $0x2f,%dl - 402837: 0f 94 c2 sete %dl - 40283a: 0f b6 d2 movzbl %dl,%edx - 40283d: 48 01 d7 add %rdx,%rdi - 402840: 0f b6 10 movzbl (%rax),%edx - 402843: 84 d2 test %dl,%dl - 402845: 75 e9 jne 402830 <_nl_find_msg+0x8e0> - 402847: 4c 29 e8 sub %r13,%rax - 40284a: 49 0f be 55 00 movsbq 0x0(%r13),%rdx - 40284f: 48 83 c0 29 add $0x29,%rax - 402853: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 402857: 48 29 c4 sub %rax,%rsp - 40285a: 48 8d 44 24 0f lea 0xf(%rsp),%rax - 40285f: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 402863: 84 d2 test %dl,%dl - 402865: 49 89 c1 mov %rax,%r9 - 402868: 74 21 je 40288b <_nl_find_msg+0x93b> - 40286a: 4c 8b 1d 87 fe 0a 00 mov 0xafe87(%rip),%r11 # 4b26f8 <_nl_C_locobj+0x78> - 402871: 4c 89 ee mov %r13,%rsi - 402874: 41 8b 14 93 mov (%r11,%rdx,4),%edx - 402878: 48 83 c0 01 add $0x1,%rax - 40287c: 48 83 c6 01 add $0x1,%rsi - 402880: 88 50 ff mov %dl,-0x1(%rax) - 402883: 48 0f be 16 movsbq (%rsi),%rdx - 402887: 84 d2 test %dl,%dl - 402889: 75 e9 jne 402874 <_nl_find_msg+0x924> - 40288b: 48 83 ff 01 cmp $0x1,%rdi - 40288f: 0f 86 19 02 00 00 jbe 402aae <_nl_find_msg+0xb5e> - 402895: c6 00 00 movb $0x0,(%rax) - 402898: 31 ff xor %edi,%edi - 40289a: 4c 89 c0 mov %r8,%rax - 40289d: eb 11 jmp 4028b0 <_nl_find_msg+0x960> - 40289f: 90 nop - 4028a0: 48 83 c0 01 add $0x1,%rax - 4028a4: 80 fa 2f cmp $0x2f,%dl - 4028a7: 0f 94 c2 sete %dl - 4028aa: 0f b6 d2 movzbl %dl,%edx - 4028ad: 48 01 d7 add %rdx,%rdi - 4028b0: 0f b6 10 movzbl (%rax),%edx - 4028b3: 84 d2 test %dl,%dl - 4028b5: 75 e9 jne 4028a0 <_nl_find_msg+0x950> - 4028b7: 4c 29 c0 sub %r8,%rax - 4028ba: 48 83 c0 21 add $0x21,%rax - 4028be: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 4028c2: 48 29 c4 sub %rax,%rsp - 4028c5: 49 0f be 00 movsbq (%r8),%rax - 4028c9: 48 8d 74 24 0f lea 0xf(%rsp),%rsi - 4028ce: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 4028d2: 84 c0 test %al,%al - 4028d4: 0f 84 80 02 00 00 je 402b5a <_nl_find_msg+0xc0a> - 4028da: 4c 8b 05 17 fe 0a 00 mov 0xafe17(%rip),%r8 # 4b26f8 <_nl_C_locobj+0x78> - 4028e1: 48 89 f2 mov %rsi,%rdx - 4028e4: 41 8b 04 80 mov (%r8,%rax,4),%eax - 4028e8: 48 83 c2 01 add $0x1,%rdx - 4028ec: 48 83 c1 01 add $0x1,%rcx - 4028f0: 88 42 ff mov %al,-0x1(%rdx) - 4028f3: 48 0f be 01 movsbq (%rcx),%rax - 4028f7: 84 c0 test %al,%al - 4028f9: 75 e9 jne 4028e4 <_nl_find_msg+0x994> - 4028fb: 48 83 ff 01 cmp $0x1,%rdi - 4028ff: 0f 86 eb 01 00 00 jbe 402af0 <_nl_find_msg+0xba0> - 402905: c6 02 00 movb $0x0,(%rdx) - 402908: 49 8d 54 24 08 lea 0x8(%r12),%rdx - 40290d: b9 01 00 00 00 mov $0x1,%ecx - 402912: 4c 89 cf mov %r9,%rdi - 402915: e8 46 18 04 00 callq 444160 <__gconv_open> - 40291a: 85 c0 test %eax,%eax - 40291c: 74 53 je 402971 <_nl_find_msg+0xa21> - 40291e: 83 f8 ff cmp $0xffffffff,%eax - 402921: 74 45 je 402968 <_nl_find_msg+0xa18> - 402923: 48 83 7d 88 00 cmpq $0x0,-0x78(%rbp) - 402928: 74 0c je 402936 <_nl_find_msg+0x9e6> - 40292a: 48 8d bb 80 00 00 00 lea 0x80(%rbx),%rdi - 402931: e8 ca d6 bf ff callq 0 <_nl_current_LC_CTYPE> - 402936: 4c 89 ef mov %r13,%rdi - 402939: e8 72 b4 01 00 callq 41ddb0 <__cfree> - 40293e: 31 c0 xor %eax,%eax - 402940: e9 69 f7 ff ff jmpq 4020ae <_nl_find_msg+0x15e> - 402945: 48 83 7d 88 00 cmpq $0x0,-0x78(%rbp) - 40294a: 0f 84 95 fb ff ff je 4024e5 <_nl_find_msg+0x595> - 402950: 48 8d bb 80 00 00 00 lea 0x80(%rbx),%rdi - 402957: e8 a4 d6 bf ff callq 0 <_nl_current_LC_CTYPE> - 40295c: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 402963: e9 46 f7 ff ff jmpq 4020ae <_nl_find_msg+0x15e> - 402968: 49 c7 44 24 08 ff ff movq $0xffffffffffffffff,0x8(%r12) - 40296f: ff ff - 402971: 49 c7 44 24 10 00 00 movq $0x0,0x10(%r12) - 402978: 00 00 - 40297a: 48 83 43 78 01 addq $0x1,0x78(%rbx) - 40297f: e9 a7 fa ff ff jmpq 40242b <_nl_find_msg+0x4db> - 402984: 83 3d 31 a8 2c 00 00 cmpl $0x0,0x2ca831(%rip) # 6cd1bc <__libc_multiple_threads> - 40298b: 74 0b je 402998 <_nl_find_msg+0xa48> - 40298d: f0 ff 0d a4 96 2c 00 lock decl 0x2c96a4(%rip) # 6cc038 - 402994: 75 0a jne 4029a0 <_nl_find_msg+0xa50> - 402996: eb 22 jmp 4029ba <_nl_find_msg+0xa6a> - 402998: ff 0d 9a 96 2c 00 decl 0x2c969a(%rip) # 6cc038 - 40299e: 74 1a je 4029ba <_nl_find_msg+0xa6a> - 4029a0: 48 8d 3d 91 96 2c 00 lea 0x2c9691(%rip),%rdi # 6cc038 - 4029a7: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4029ae: e8 4d fc 03 00 callq 442600 <__lll_unlock_wake_private> - 4029b3: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4029ba: e9 ed f6 ff ff jmpq 4020ac <_nl_find_msg+0x15c> - 4029bf: 48 8b 05 6a 96 2c 00 mov 0x2c966a(%rip),%rax # 6cc030 - 4029c6: 48 8b 55 c0 mov -0x40(%rbp),%rdx - 4029ca: 4c 8b 75 a8 mov -0x58(%rbp),%r14 - 4029ce: 48 29 c2 sub %rax,%rdx - 4029d1: 48 83 ea 08 sub $0x8,%rdx - 4029d5: 48 89 10 mov %rdx,(%rax) - 4029d8: 49 8b 54 24 10 mov 0x10(%r12),%rdx - 4029dd: 4a 89 04 f2 mov %rax,(%rdx,%r14,8) - 4029e1: 48 8b 4d c0 mov -0x40(%rbp),%rcx - 4029e5: 48 29 c8 sub %rcx,%rax - 4029e8: 48 03 05 39 96 2c 00 add 0x2c9639(%rip),%rax # 6cc028 - 4029ef: 48 89 c2 mov %rax,%rdx - 4029f2: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 4029f6: 83 e2 07 and $0x7,%edx - 4029f9: 48 89 05 28 96 2c 00 mov %rax,0x2c9628(%rip) # 6cc028 - 402a00: 48 01 ca add %rcx,%rdx - 402a03: 48 89 15 26 96 2c 00 mov %rdx,0x2c9626(%rip) # 6cc030 - 402a0a: 83 3d ab a7 2c 00 00 cmpl $0x0,0x2ca7ab(%rip) # 6cd1bc <__libc_multiple_threads> - 402a11: 74 0b je 402a1e <_nl_find_msg+0xace> - 402a13: f0 ff 0d 1e 96 2c 00 lock decl 0x2c961e(%rip) # 6cc038 - 402a1a: 75 0a jne 402a26 <_nl_find_msg+0xad6> - 402a1c: eb 22 jmp 402a40 <_nl_find_msg+0xaf0> - 402a1e: ff 0d 14 96 2c 00 decl 0x2c9614(%rip) # 6cc038 - 402a24: 74 1a je 402a40 <_nl_find_msg+0xaf0> - 402a26: 48 8d 3d 0b 96 2c 00 lea 0x2c960b(%rip),%rdi # 6cc038 - 402a2d: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 402a34: e8 c7 fb 03 00 callq 442600 <__lll_unlock_wake_private> - 402a39: 48 81 c4 80 00 00 00 add $0x80,%rsp - 402a40: 49 8b 44 24 10 mov 0x10(%r12),%rax - 402a45: 4a 8b 04 f0 mov (%rax,%r14,8),%rax - 402a49: e9 cd f7 ff ff jmpq 40221b <_nl_find_msg+0x2cb> - 402a4e: 48 89 c7 mov %rax,%rdi - 402a51: e8 fa 0b 02 00 callq 423650 - 402a56: 4c 8d 78 01 lea 0x1(%rax),%r15 - 402a5a: 4c 89 ff mov %r15,%rdi - 402a5d: e8 ae af 01 00 callq 41da10 <__libc_malloc> - 402a62: 48 85 c0 test %rax,%rax - 402a65: 49 89 c5 mov %rax,%r13 - 402a68: 74 0e je 402a78 <_nl_find_msg+0xb28> - 402a6a: 4c 89 fa mov %r15,%rdx - 402a6d: 4c 89 e6 mov %r12,%rsi - 402a70: 48 89 c7 mov %rax,%rdi - 402a73: e8 a8 95 02 00 callq 42c020 - 402a78: 4c 89 2d 99 95 2c 00 mov %r13,0x2c9599(%rip) # 6cc018 - 402a7f: e9 6d fc ff ff jmpq 4026f1 <_nl_find_msg+0x7a1> - 402a84: 48 8b 45 80 mov -0x80(%rbp),%rax - 402a88: 48 8d 7c 40 03 lea 0x3(%rax,%rax,2),%rdi - 402a8d: 48 c1 e7 03 shl $0x3,%rdi - 402a91: e8 7a af 01 00 callq 41da10 <__libc_malloc> - 402a96: 49 89 c4 mov %rax,%r12 - 402a99: e9 91 fc ff ff jmpq 40272f <_nl_find_msg+0x7df> - 402a9e: 48 8b 43 70 mov 0x70(%rbx),%rax - 402aa2: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) - 402aa9: e9 60 fc ff ff jmpq 40270e <_nl_find_msg+0x7be> - 402aae: 48 85 ff test %rdi,%rdi - 402ab1: 48 8d 50 01 lea 0x1(%rax),%rdx - 402ab5: c6 00 2f movb $0x2f,(%rax) - 402ab8: 74 5f je 402b19 <_nl_find_msg+0xbc9> - 402aba: 48 89 d0 mov %rdx,%rax - 402abd: e9 d3 fd ff ff jmpq 402895 <_nl_find_msg+0x945> - 402ac2: 8b 7d a8 mov -0x58(%rbp),%edi - 402ac5: 03 7b 40 add 0x40(%rbx),%edi - 402ac8: be 08 00 00 00 mov $0x8,%esi - 402acd: e8 ee ba 01 00 callq 41e5c0 <__calloc> - 402ad2: 48 85 c0 test %rax,%rax - 402ad5: 49 89 44 24 10 mov %rax,0x10(%r12) - 402ada: 0f 85 d7 fa ff ff jne 4025b7 <_nl_find_msg+0x667> - 402ae0: 49 c7 44 24 10 ff ff movq $0xffffffffffffffff,0x10(%r12) - 402ae7: ff ff - 402ae9: e9 4c fa ff ff jmpq 40253a <_nl_find_msg+0x5ea> - 402aee: 66 90 xchg %ax,%ax - 402af0: 48 85 ff test %rdi,%rdi - 402af3: 48 8d 42 01 lea 0x1(%rdx),%rax - 402af7: c6 02 2f movb $0x2f,(%rdx) - 402afa: 75 0d jne 402b09 <_nl_find_msg+0xbb9> - 402afc: c6 42 01 2f movb $0x2f,0x1(%rdx) - 402b00: 48 83 c2 02 add $0x2,%rdx - 402b04: e9 fc fd ff ff jmpq 402905 <_nl_find_msg+0x9b5> - 402b09: 48 89 c2 mov %rax,%rdx - 402b0c: e9 f4 fd ff ff jmpq 402905 <_nl_find_msg+0x9b5> - 402b11: 4c 89 e3 mov %r12,%rbx - 402b14: e9 db f5 ff ff jmpq 4020f4 <_nl_find_msg+0x1a4> - 402b19: 48 8d 78 02 lea 0x2(%rax),%rdi - 402b1d: c6 40 01 2f movb $0x2f,0x1(%rax) - 402b21: ba 08 00 00 00 mov $0x8,%edx - 402b26: be b1 3f 4a 00 mov $0x4a3fb1,%esi - 402b2b: 4c 89 8d 78 ff ff ff mov %r9,-0x88(%rbp) - 402b32: 4c 89 45 80 mov %r8,-0x80(%rbp) - 402b36: 48 89 4d 90 mov %rcx,-0x70(%rbp) - 402b3a: e8 81 3a 02 00 callq 4265c0 <__mempcpy> - 402b3f: 48 8b 4d 90 mov -0x70(%rbp),%rcx - 402b43: 4c 8b 45 80 mov -0x80(%rbp),%r8 - 402b47: 4c 8b 8d 78 ff ff ff mov -0x88(%rbp),%r9 - 402b4e: e9 42 fd ff ff jmpq 402895 <_nl_find_msg+0x945> - 402b53: 31 d2 xor %edx,%edx - 402b55: e9 9c fc ff ff jmpq 4027f6 <_nl_find_msg+0x8a6> - 402b5a: 48 89 f2 mov %rsi,%rdx - 402b5d: e9 99 fd ff ff jmpq 4028fb <_nl_find_msg+0x9ab> - 402b62: 0f 1f 40 00 nopl 0x0(%rax) - 402b66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 402b6d: 00 00 00 - -0000000000402b70 <__dcigettext>: - 402b70: 55 push %rbp - 402b71: 48 89 e5 mov %rsp,%rbp - 402b74: 41 57 push %r15 - 402b76: 41 56 push %r14 - 402b78: 41 55 push %r13 - 402b7a: 41 54 push %r12 - 402b7c: 53 push %rbx - 402b7d: 48 81 ec b8 00 00 00 sub $0xb8,%rsp - 402b84: 48 85 f6 test %rsi,%rsi - 402b87: 48 89 bd 60 ff ff ff mov %rdi,-0xa0(%rbp) - 402b8e: 48 89 b5 70 ff ff ff mov %rsi,-0x90(%rbp) - 402b95: 48 89 95 48 ff ff ff mov %rdx,-0xb8(%rbp) - 402b9c: 89 8d 58 ff ff ff mov %ecx,-0xa8(%rbp) - 402ba2: 4c 89 85 50 ff ff ff mov %r8,-0xb0(%rbp) - 402ba9: 44 89 8d 5c ff ff ff mov %r9d,-0xa4(%rbp) - 402bb0: 0f 84 9a 08 00 00 je 403450 <__dcigettext+0x8e0> - 402bb6: 41 83 f9 0c cmp $0xc,%r9d - 402bba: 0f 87 46 03 00 00 ja 402f06 <__dcigettext+0x396> - 402bc0: 41 83 f9 06 cmp $0x6,%r9d - 402bc4: 0f 84 3c 03 00 00 je 402f06 <__dcigettext+0x396> - 402bca: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 402bd1: bb 00 00 00 00 mov $0x0,%ebx - 402bd6: 48 85 db test %rbx,%rbx - 402bd9: 64 8b 00 mov %fs:(%rax),%eax - 402bdc: 89 85 3c ff ff ff mov %eax,-0xc4(%rbp) - 402be2: 0f 84 65 04 00 00 je 40304d <__dcigettext+0x4dd> - 402be8: bf 20 c7 6c 00 mov $0x6cc720,%edi - 402bed: ff d3 callq *%rbx - 402bef: bf e0 bf 6c 00 mov $0x6cbfe0,%edi - 402bf4: ff d3 callq *%rbx - 402bf6: 48 83 bd 60 ff ff ff cmpq $0x0,-0xa0(%rbp) - 402bfd: 00 - 402bfe: 0f 84 91 05 00 00 je 403195 <__dcigettext+0x625> - 402c04: 48 8b 85 70 ff ff ff mov -0x90(%rbp),%rax - 402c0b: 48 c7 45 b0 00 00 00 movq $0x0,-0x50(%rbp) - 402c12: 00 - 402c13: 48 89 45 c8 mov %rax,-0x38(%rbp) - 402c17: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax - 402c1e: 48 89 45 90 mov %rax,-0x70(%rbp) - 402c22: 8b 85 5c ff ff ff mov -0xa4(%rbp),%eax - 402c28: 89 c7 mov %eax,%edi - 402c2a: 89 45 98 mov %eax,-0x68(%rbp) - 402c2d: e8 fe c6 04 00 callq 44f330 <__current_locale_name> - 402c32: 48 89 c7 mov %rax,%rdi - 402c35: 48 89 c3 mov %rax,%rbx - 402c38: e8 13 0a 02 00 callq 423650 - 402c3d: 48 8d 50 01 lea 0x1(%rax),%rdx - 402c41: 48 83 c0 1f add $0x1f,%rax - 402c45: 48 89 de mov %rbx,%rsi - 402c48: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 402c4c: 48 29 c4 sub %rax,%rsp - 402c4f: 48 8d 7c 24 0f lea 0xf(%rsp),%rdi - 402c54: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 402c58: e8 c3 93 02 00 callq 42c020 - 402c5d: 48 89 85 30 ff ff ff mov %rax,-0xd0(%rbp) - 402c64: 48 89 45 a0 mov %rax,-0x60(%rbp) - 402c68: bf 60 c0 6c 00 mov $0x6cc060,%edi - 402c6d: e8 8e d3 bf ff callq 0 <_nl_current_LC_CTYPE> - 402c72: 48 8d 7d 90 lea -0x70(%rbp),%rdi - 402c76: ba 90 17 40 00 mov $0x401790,%edx - 402c7b: be 48 c0 6c 00 mov $0x6cc048,%esi - 402c80: e8 7b d9 03 00 callq 440600 <__tfind> - 402c85: 48 89 85 40 ff ff ff mov %rax,-0xc0(%rbp) - 402c8c: b8 00 00 00 00 mov $0x0,%eax - 402c91: 48 85 c0 test %rax,%rax - 402c94: 74 07 je 402c9d <__dcigettext+0x12d> - 402c96: bf 60 c0 6c 00 mov $0x6cc060,%edi - 402c9b: ff d0 callq *%rax - 402c9d: 48 8b 85 40 ff ff ff mov -0xc0(%rbp),%rax - 402ca4: 48 85 c0 test %rax,%rax - 402ca7: 74 12 je 402cbb <__dcigettext+0x14b> - 402ca9: 48 8b 00 mov (%rax),%rax - 402cac: 8b 0d f6 a4 2c 00 mov 0x2ca4f6(%rip),%ecx # 6cd1a8 <_nl_msg_cat_cntr> - 402cb2: 39 48 18 cmp %ecx,0x18(%rax) - 402cb5: 0f 84 02 04 00 00 je 4030bd <__dcigettext+0x54d> - 402cbb: 48 8b 1d de a4 2c 00 mov 0x2ca4de(%rip),%rbx # 6cd1a0 <_nl_domain_bindings> - 402cc2: 48 85 db test %rbx,%rbx - 402cc5: 0f 84 6a 02 00 00 je 402f35 <__dcigettext+0x3c5> - 402ccb: 4c 8b a5 60 ff ff ff mov -0xa0(%rbp),%r12 - 402cd2: eb 16 jmp 402cea <__dcigettext+0x17a> - 402cd4: 0f 1f 40 00 nopl 0x0(%rax) - 402cd8: 0f 88 55 02 00 00 js 402f33 <__dcigettext+0x3c3> - 402cde: 48 8b 1b mov (%rbx),%rbx - 402ce1: 48 85 db test %rbx,%rbx - 402ce4: 0f 84 4b 02 00 00 je 402f35 <__dcigettext+0x3c5> - 402cea: 48 8d 73 18 lea 0x18(%rbx),%rsi - 402cee: 4c 89 e7 mov %r12,%rdi - 402cf1: e8 6a d6 ff ff callq 400360 <__rela_iplt_end+0x98> - 402cf6: 85 c0 test %eax,%eax - 402cf8: 75 de jne 402cd8 <__dcigettext+0x168> - 402cfa: 48 8b 43 08 mov 0x8(%rbx),%rax - 402cfe: 80 38 2f cmpb $0x2f,(%rax) - 402d01: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) - 402d08: 0f 84 8d 00 00 00 je 402d9b <__dcigettext+0x22b> - 402d0e: 48 89 c7 mov %rax,%rdi - 402d11: 41 bd 02 10 00 00 mov $0x1002,%r13d - 402d17: e8 34 09 02 00 callq 423650 - 402d1c: 4c 8d 78 01 lea 0x1(%rax),%r15 - 402d20: eb 22 jmp 402d44 <__dcigettext+0x1d4> - 402d22: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 402d28: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 402d2f: 64 83 38 22 cmpl $0x22,%fs:(%rax) - 402d33: 0f 85 a2 01 00 00 jne 402edb <__dcigettext+0x36b> - 402d39: 4c 89 e8 mov %r13,%rax - 402d3c: 48 d1 e8 shr %rax - 402d3f: 4d 8d 6c 05 20 lea 0x20(%r13,%rax,1),%r13 - 402d44: 4b 8d 44 3d 1e lea 0x1e(%r13,%r15,1),%rax - 402d49: 4c 89 ee mov %r13,%rsi - 402d4c: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 402d50: 48 29 c4 sub %rax,%rsp - 402d53: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 402d5a: 4c 8d 64 24 0f lea 0xf(%rsp),%r12 - 402d5f: 49 83 e4 f0 and $0xfffffffffffffff0,%r12 - 402d63: 64 c7 00 00 00 00 00 movl $0x0,%fs:(%rax) - 402d6a: 4c 89 e7 mov %r12,%rdi - 402d6d: e8 5e c6 03 00 callq 43f3d0 <__getcwd> - 402d72: 48 85 c0 test %rax,%rax - 402d75: 74 b1 je 402d28 <__dcigettext+0x1b8> - 402d77: 31 f6 xor %esi,%esi - 402d79: 4c 89 e7 mov %r12,%rdi - 402d7c: e8 4f 9c 02 00 callq 42c9d0 <__rawmemchr> - 402d81: 48 8b b5 78 ff ff ff mov -0x88(%rbp),%rsi - 402d88: 48 8d 78 01 lea 0x1(%rax),%rdi - 402d8c: c6 00 2f movb $0x2f,(%rax) - 402d8f: e8 5c d5 ff ff callq 4002f0 <__rela_iplt_end+0x28> - 402d94: 4c 89 a5 78 ff ff ff mov %r12,-0x88(%rbp) - 402d9b: 8b bd 5c ff ff ff mov -0xa4(%rbp),%edi - 402da1: 48 63 c7 movslq %edi,%rax - 402da4: 44 0f b6 a0 b8 5f 4a movzbl 0x4a5fb8(%rax),%r12d - 402dab: 00 - 402dac: e8 7f c5 04 00 callq 44f330 <__current_locale_name> - 402db1: 49 89 c5 mov %rax,%r13 - 402db4: 49 81 c4 e0 5f 4a 00 add $0x4a5fe0,%r12 - 402dbb: 80 38 43 cmpb $0x43,(%rax) - 402dbe: 0f 85 81 01 00 00 jne 402f45 <__dcigettext+0x3d5> - 402dc4: 80 78 01 00 cmpb $0x0,0x1(%rax) - 402dc8: 0f 85 77 01 00 00 jne 402f45 <__dcigettext+0x3d5> - 402dce: 4c 8b bd 60 ff ff ff mov -0xa0(%rbp),%r15 - 402dd5: 4c 89 ff mov %r15,%rdi - 402dd8: e8 73 08 02 00 callq 423650 - 402ddd: 4c 89 e7 mov %r12,%rdi - 402de0: 49 89 c6 mov %rax,%r14 - 402de3: 48 89 85 20 ff ff ff mov %rax,-0xe0(%rbp) - 402dea: e8 61 08 02 00 callq 423650 - 402def: 49 8d 44 06 23 lea 0x23(%r14,%rax,1),%rax - 402df4: 4c 89 e6 mov %r12,%rsi - 402df7: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 402dfb: 48 29 c4 sub %rax,%rsp - 402dfe: 48 8d 44 24 0f lea 0xf(%rsp),%rax - 402e03: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 402e07: 48 89 c7 mov %rax,%rdi - 402e0a: 48 89 85 68 ff ff ff mov %rax,-0x98(%rbp) - 402e11: e8 fa d4 ff ff callq 400310 <__rela_iplt_end+0x48> - 402e16: b9 2f 00 00 00 mov $0x2f,%ecx - 402e1b: 48 8d 78 01 lea 0x1(%rax),%rdi - 402e1f: 4c 89 f2 mov %r14,%rdx - 402e22: 66 89 08 mov %cx,(%rax) - 402e25: 4c 89 fe mov %r15,%rsi - 402e28: e8 93 37 02 00 callq 4265c0 <__mempcpy> - 402e2d: 4c 89 ef mov %r13,%rdi - 402e30: c7 00 2e 6d 6f 00 movl $0x6f6d2e,(%rax) - 402e36: e8 15 08 02 00 callq 423650 - 402e3b: 48 83 c0 1f add $0x1f,%rax - 402e3f: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 402e43: 48 29 c4 sub %rax,%rsp - 402e46: 4c 8d 64 24 0f lea 0xf(%rsp),%r12 - 402e4b: 49 83 e4 f0 and $0xfffffffffffffff0,%r12 - 402e4f: 90 nop - 402e50: 41 0f b6 45 00 movzbl 0x0(%r13),%eax - 402e55: 3c 3a cmp $0x3a,%al - 402e57: 0f 84 73 01 00 00 je 402fd0 <__dcigettext+0x460> - 402e5d: 84 c0 test %al,%al - 402e5f: 0f 85 0b 01 00 00 jne 402f70 <__dcigettext+0x400> - 402e65: 41 c6 04 24 43 movb $0x43,(%r12) - 402e6a: 41 c6 44 24 01 00 movb $0x0,0x1(%r12) - 402e70: 41 80 7c 24 01 00 cmpb $0x0,0x1(%r12) - 402e76: 74 63 je 402edb <__dcigettext+0x36b> - 402e78: bf 99 11 4a 00 mov $0x4a1199,%edi - 402e7d: b9 06 00 00 00 mov $0x6,%ecx - 402e82: 4c 89 e6 mov %r12,%rsi - 402e85: f3 a6 repz cmpsb %es:(%rdi),%ds:(%rsi) - 402e87: 74 52 je 402edb <__dcigettext+0x36b> - 402e89: 48 8b 95 68 ff ff ff mov -0x98(%rbp),%rdx - 402e90: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi - 402e97: 48 89 d9 mov %rbx,%rcx - 402e9a: 4c 89 e6 mov %r12,%rsi - 402e9d: e8 2e 06 00 00 callq 4034d0 <_nl_find_domain> - 402ea2: 48 85 c0 test %rax,%rax - 402ea5: 49 89 c7 mov %rax,%r15 - 402ea8: 74 a6 je 402e50 <__dcigettext+0x2e0> - 402eaa: 48 8b 95 70 ff ff ff mov -0x90(%rbp),%rdx - 402eb1: 4c 8d 45 88 lea -0x78(%rbp),%r8 - 402eb5: b9 01 00 00 00 mov $0x1,%ecx - 402eba: 48 89 de mov %rbx,%rsi - 402ebd: 48 89 c7 mov %rax,%rdi - 402ec0: e8 8b f0 ff ff callq 401f50 <_nl_find_msg> - 402ec5: 48 85 c0 test %rax,%rax - 402ec8: 0f 84 12 01 00 00 je 402fe0 <__dcigettext+0x470> - 402ece: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 402ed2: 48 89 c1 mov %rax,%rcx - 402ed5: 0f 85 2f 02 00 00 jne 40310a <__dcigettext+0x59a> - 402edb: b8 00 00 00 00 mov $0x0,%eax - 402ee0: 48 85 c0 test %rax,%rax - 402ee3: 74 11 je 402ef6 <__dcigettext+0x386> - 402ee5: bf e0 bf 6c 00 mov $0x6cbfe0,%edi - 402eea: ff d0 callq *%rax - 402eec: bf 20 c7 6c 00 mov $0x6cc720,%edi - 402ef1: e8 0a d1 bf ff callq 0 <_nl_current_LC_CTYPE> - 402ef6: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 402efd: 8b 8d 3c ff ff ff mov -0xc4(%rbp),%ecx - 402f03: 64 89 08 mov %ecx,%fs:(%rax) - 402f06: 48 83 bd 50 ff ff ff cmpq $0x1,-0xb0(%rbp) - 402f0d: 01 - 402f0e: 74 54 je 402f64 <__dcigettext+0x3f4> - 402f10: 8b bd 58 ff ff ff mov -0xa8(%rbp),%edi - 402f16: 4c 8b ad 48 ff ff ff mov -0xb8(%rbp),%r13 - 402f1d: 85 ff test %edi,%edi - 402f1f: 74 43 je 402f64 <__dcigettext+0x3f4> - 402f21: 48 8d 65 d8 lea -0x28(%rbp),%rsp - 402f25: 4c 89 e8 mov %r13,%rax - 402f28: 5b pop %rbx - 402f29: 41 5c pop %r12 - 402f2b: 41 5d pop %r13 - 402f2d: 41 5e pop %r14 - 402f2f: 41 5f pop %r15 - 402f31: 5d pop %rbp - 402f32: c3 retq - 402f33: 31 db xor %ebx,%ebx - 402f35: 48 c7 85 78 ff ff ff movq $0x4a11a0,-0x88(%rbp) - 402f3c: a0 11 4a 00 - 402f40: e9 56 fe ff ff jmpq 402d9b <__dcigettext+0x22b> - 402f45: bf 90 11 4a 00 mov $0x4a1190,%edi - 402f4a: e8 91 b8 00 00 callq 40e7e0 - 402f4f: 48 85 c0 test %rax,%rax - 402f52: 0f 84 76 fe ff ff je 402dce <__dcigettext+0x25e> - 402f58: 80 38 00 cmpb $0x0,(%rax) - 402f5b: 4c 0f 45 e8 cmovne %rax,%r13 - 402f5f: e9 6a fe ff ff jmpq 402dce <__dcigettext+0x25e> - 402f64: 4c 8b ad 70 ff ff ff mov -0x90(%rbp),%r13 - 402f6b: eb b4 jmp 402f21 <__dcigettext+0x3b1> - 402f6d: 0f 1f 00 nopl (%rax) - 402f70: 4c 89 e2 mov %r12,%rdx - 402f73: eb 07 jmp 402f7c <__dcigettext+0x40c> - 402f75: 0f 1f 00 nopl (%rax) - 402f78: 3c 3a cmp $0x3a,%al - 402f7a: 74 14 je 402f90 <__dcigettext+0x420> - 402f7c: 48 83 c2 01 add $0x1,%rdx - 402f80: 49 83 c5 01 add $0x1,%r13 - 402f84: 88 42 ff mov %al,-0x1(%rdx) - 402f87: 41 0f b6 45 00 movzbl 0x0(%r13),%eax - 402f8c: 84 c0 test %al,%al - 402f8e: 75 e8 jne 402f78 <__dcigettext+0x408> - 402f90: c6 02 00 movb $0x0,(%rdx) - 402f93: 8b 15 ff 6f 2c 00 mov 0x2c6fff(%rip),%edx # 6c9f98 <__libc_enable_secure> - 402f99: 85 d2 test %edx,%edx - 402f9b: 74 1b je 402fb8 <__dcigettext+0x448> - 402f9d: be 2f 00 00 00 mov $0x2f,%esi - 402fa2: 4c 89 e7 mov %r12,%rdi - 402fa5: e8 d6 d3 ff ff callq 400380 <__rela_iplt_end+0xb8> - 402faa: 48 85 c0 test %rax,%rax - 402fad: 0f 85 9d fe ff ff jne 402e50 <__dcigettext+0x2e0> - 402fb3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 402fb8: 41 0f b6 04 24 movzbl (%r12),%eax - 402fbd: 3c 43 cmp $0x43,%al - 402fbf: 0f 85 b3 fe ff ff jne 402e78 <__dcigettext+0x308> - 402fc5: e9 a6 fe ff ff jmpq 402e70 <__dcigettext+0x300> - 402fca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 402fd0: 49 83 c5 01 add $0x1,%r13 - 402fd4: e9 77 fe ff ff jmpq 402e50 <__dcigettext+0x2e0> - 402fd9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 402fe0: 49 8b 7f 20 mov 0x20(%r15),%rdi - 402fe4: 48 85 ff test %rdi,%rdi - 402fe7: 0f 84 63 fe ff ff je 402e50 <__dcigettext+0x2e0> - 402fed: 45 31 f6 xor %r14d,%r14d - 402ff0: 4c 89 ad 28 ff ff ff mov %r13,-0xd8(%rbp) - 402ff7: 45 89 f5 mov %r14d,%r13d - 402ffa: 4d 89 e6 mov %r12,%r14 - 402ffd: 4c 8b a5 70 ff ff ff mov -0x90(%rbp),%r12 - 403004: eb 28 jmp 40302e <__dcigettext+0x4be> - 403006: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40300d: 00 00 00 - 403010: 48 85 c0 test %rax,%rax - 403013: 0f 85 e6 00 00 00 jne 4030ff <__dcigettext+0x58f> - 403019: 41 83 c5 01 add $0x1,%r13d - 40301d: 49 63 c5 movslq %r13d,%rax - 403020: 49 8b 7c c7 20 mov 0x20(%r15,%rax,8),%rdi - 403025: 48 85 ff test %rdi,%rdi - 403028: 0f 84 58 01 00 00 je 403186 <__dcigettext+0x616> - 40302e: 4c 8d 45 88 lea -0x78(%rbp),%r8 - 403032: b9 01 00 00 00 mov $0x1,%ecx - 403037: 4c 89 e2 mov %r12,%rdx - 40303a: 48 89 de mov %rbx,%rsi - 40303d: e8 0e ef ff ff callq 401f50 <_nl_find_msg> - 403042: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 403046: 75 c8 jne 403010 <__dcigettext+0x4a0> - 403048: e9 8e fe ff ff jmpq 402edb <__dcigettext+0x36b> - 40304d: 48 83 bd 60 ff ff ff cmpq $0x0,-0xa0(%rbp) - 403054: 00 - 403055: 0f 84 3a 01 00 00 je 403195 <__dcigettext+0x625> - 40305b: 48 8b 85 60 ff ff ff mov -0xa0(%rbp),%rax - 403062: 48 89 75 c8 mov %rsi,-0x38(%rbp) - 403066: 48 c7 45 b0 00 00 00 movq $0x0,-0x50(%rbp) - 40306d: 00 - 40306e: 48 89 45 90 mov %rax,-0x70(%rbp) - 403072: 8b 85 5c ff ff ff mov -0xa4(%rbp),%eax - 403078: 89 c7 mov %eax,%edi - 40307a: 89 45 98 mov %eax,-0x68(%rbp) - 40307d: e8 ae c2 04 00 callq 44f330 <__current_locale_name> - 403082: 48 89 c7 mov %rax,%rdi - 403085: 48 89 c3 mov %rax,%rbx - 403088: e8 c3 05 02 00 callq 423650 - 40308d: 48 8d 50 01 lea 0x1(%rax),%rdx - 403091: 48 83 c0 1f add $0x1f,%rax - 403095: 48 89 de mov %rbx,%rsi - 403098: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 40309c: 48 29 c4 sub %rax,%rsp - 40309f: 48 8d 7c 24 0f lea 0xf(%rsp),%rdi - 4030a4: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 4030a8: e8 73 8f 02 00 callq 42c020 - 4030ad: 48 89 85 30 ff ff ff mov %rax,-0xd0(%rbp) - 4030b4: 48 89 45 a0 mov %rax,-0x60(%rbp) - 4030b8: e9 b5 fb ff ff jmpq 402c72 <__dcigettext+0x102> - 4030bd: 8b b5 58 ff ff ff mov -0xa8(%rbp),%esi - 4030c3: 85 f6 test %esi,%esi - 4030c5: 0f 85 1d 03 00 00 jne 4033e8 <__dcigettext+0x878> - 4030cb: 4c 8b 68 28 mov 0x28(%rax),%r13 - 4030cf: b8 00 00 00 00 mov $0x0,%eax - 4030d4: 48 85 c0 test %rax,%rax - 4030d7: 74 11 je 4030ea <__dcigettext+0x57a> - 4030d9: bf e0 bf 6c 00 mov $0x6cbfe0,%edi - 4030de: ff d0 callq *%rax - 4030e0: bf 20 c7 6c 00 mov $0x6cc720,%edi - 4030e5: e8 16 cf bf ff callq 0 <_nl_current_LC_CTYPE> - 4030ea: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 4030f1: 8b 8d 3c ff ff ff mov -0xc4(%rbp),%ecx - 4030f7: 64 89 08 mov %ecx,%fs:(%rax) - 4030fa: e9 22 fe ff ff jmpq 402f21 <__dcigettext+0x3b1> - 4030ff: 4d 63 d5 movslq %r13d,%r10 - 403102: 48 89 c1 mov %rax,%rcx - 403105: 4f 8b 7c d7 20 mov 0x20(%r15,%r10,8),%r15 - 40310a: 48 83 bd 40 ff ff ff cmpq $0x0,-0xc0(%rbp) - 403111: 00 - 403112: 0f 84 f6 00 00 00 je 40320e <__dcigettext+0x69e> - 403118: 48 8b 9d 40 ff ff ff mov -0xc0(%rbp),%rbx - 40311f: 8b 15 83 a0 2c 00 mov 0x2ca083(%rip),%edx # 6cd1a8 <_nl_msg_cat_cntr> - 403125: 48 8b 03 mov (%rbx),%rax - 403128: 89 50 18 mov %edx,0x18(%rax) - 40312b: 4c 89 78 20 mov %r15,0x20(%rax) - 40312f: 48 8b 03 mov (%rbx),%rax - 403132: 48 8b 55 88 mov -0x78(%rbp),%rdx - 403136: 48 89 48 28 mov %rcx,0x28(%rax) - 40313a: 48 8b 03 mov (%rbx),%rax - 40313d: 48 89 50 30 mov %rdx,0x30(%rax) - 403141: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 403148: 8b 9d 3c ff ff ff mov -0xc4(%rbp),%ebx - 40314e: 64 89 18 mov %ebx,%fs:(%rax) - 403151: 8b 85 58 ff ff ff mov -0xa8(%rbp),%eax - 403157: 85 c0 test %eax,%eax - 403159: 0f 85 f9 02 00 00 jne 403458 <__dcigettext+0x8e8> - 40315f: b8 00 00 00 00 mov $0x0,%eax - 403164: 49 89 cd mov %rcx,%r13 - 403167: 48 85 c0 test %rax,%rax - 40316a: 0f 84 b1 fd ff ff je 402f21 <__dcigettext+0x3b1> - 403170: bf e0 bf 6c 00 mov $0x6cbfe0,%edi - 403175: ff d0 callq *%rax - 403177: bf 20 c7 6c 00 mov $0x6cc720,%edi - 40317c: e8 7f ce bf ff callq 0 <_nl_current_LC_CTYPE> - 403181: e9 9b fd ff ff jmpq 402f21 <__dcigettext+0x3b1> - 403186: 4c 8b ad 28 ff ff ff mov -0xd8(%rbp),%r13 - 40318d: 4d 89 f4 mov %r14,%r12 - 403190: e9 bb fc ff ff jmpq 402e50 <__dcigettext+0x2e0> - 403195: 48 8b 05 fc 6e 2c 00 mov 0x2c6efc(%rip),%rax # 6ca098 <_nl_current_default_domain> - 40319c: 48 8b 8d 70 ff ff ff mov -0x90(%rbp),%rcx - 4031a3: 48 c7 45 b0 00 00 00 movq $0x0,-0x50(%rbp) - 4031aa: 00 - 4031ab: 48 89 85 60 ff ff ff mov %rax,-0xa0(%rbp) - 4031b2: 48 89 45 90 mov %rax,-0x70(%rbp) - 4031b6: 8b 85 5c ff ff ff mov -0xa4(%rbp),%eax - 4031bc: 48 89 4d c8 mov %rcx,-0x38(%rbp) - 4031c0: 89 c7 mov %eax,%edi - 4031c2: 89 45 98 mov %eax,-0x68(%rbp) - 4031c5: e8 66 c1 04 00 callq 44f330 <__current_locale_name> - 4031ca: 48 89 c7 mov %rax,%rdi - 4031cd: 49 89 c4 mov %rax,%r12 - 4031d0: e8 7b 04 02 00 callq 423650 - 4031d5: 48 8d 50 01 lea 0x1(%rax),%rdx - 4031d9: 48 83 c0 1f add $0x1f,%rax - 4031dd: 4c 89 e6 mov %r12,%rsi - 4031e0: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 4031e4: 48 29 c4 sub %rax,%rsp - 4031e7: 48 8d 7c 24 0f lea 0xf(%rsp),%rdi - 4031ec: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 4031f0: e8 2b 8e 02 00 callq 42c020 - 4031f5: 48 85 db test %rbx,%rbx - 4031f8: 48 89 85 30 ff ff ff mov %rax,-0xd0(%rbp) - 4031ff: 48 89 45 a0 mov %rax,-0x60(%rbp) - 403203: 0f 85 5f fa ff ff jne 402c68 <__dcigettext+0xf8> - 403209: e9 64 fa ff ff jmpq 402c72 <__dcigettext+0x102> - 40320e: 48 8b bd 70 ff ff ff mov -0x90(%rbp),%rdi - 403215: 48 89 8d 78 ff ff ff mov %rcx,-0x88(%rbp) - 40321c: e8 2f 04 02 00 callq 423650 - 403221: 4c 8b a5 30 ff ff ff mov -0xd0(%rbp),%r12 - 403228: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx - 40322f: 48 8d 58 01 lea 0x1(%rax),%rbx - 403233: 41 8b 14 24 mov (%r12),%edx - 403237: 49 83 c4 04 add $0x4,%r12 - 40323b: 8d 82 ff fe fe fe lea -0x1010101(%rdx),%eax - 403241: f7 d2 not %edx - 403243: 21 d0 and %edx,%eax - 403245: 25 80 80 80 80 and $0x80808080,%eax - 40324a: 74 e7 je 403233 <__dcigettext+0x6c3> - 40324c: 89 c2 mov %eax,%edx - 40324e: 48 89 8d 78 ff ff ff mov %rcx,-0x88(%rbp) - 403255: 4c 8b b5 20 ff ff ff mov -0xe0(%rbp),%r14 - 40325c: c1 ea 10 shr $0x10,%edx - 40325f: a9 80 80 00 00 test $0x8080,%eax - 403264: 0f 44 c2 cmove %edx,%eax - 403267: 49 8d 54 24 02 lea 0x2(%r12),%rdx - 40326c: 89 c1 mov %eax,%ecx - 40326e: 4c 0f 44 e2 cmove %rdx,%r12 - 403272: 00 c1 add %al,%cl - 403274: 49 83 dc 03 sbb $0x3,%r12 - 403278: 4c 2b a5 30 ff ff ff sub -0xd0(%rbp),%r12 - 40327f: 4b 8d 7c 34 3a lea 0x3a(%r12,%r14,1),%rdi - 403284: 48 01 df add %rbx,%rdi - 403287: e8 84 a7 01 00 callq 41da10 <__libc_malloc> - 40328c: 48 85 c0 test %rax,%rax - 40328f: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx - 403296: 0f 84 a5 fe ff ff je 403141 <__dcigettext+0x5d1> - 40329c: 48 8b b5 70 ff ff ff mov -0x90(%rbp),%rsi - 4032a3: 48 8d 78 38 lea 0x38(%rax),%rdi - 4032a7: 48 89 da mov %rbx,%rdx - 4032aa: 48 89 8d 68 ff ff ff mov %rcx,-0x98(%rbp) - 4032b1: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) - 4032b8: e8 03 33 02 00 callq 4265c0 <__mempcpy> - 4032bd: 48 8b b5 60 ff ff ff mov -0xa0(%rbp),%rsi - 4032c4: 48 89 c3 mov %rax,%rbx - 4032c7: 4c 89 f0 mov %r14,%rax - 4032ca: 48 83 c0 01 add $0x1,%rax - 4032ce: 48 89 df mov %rbx,%rdi - 4032d1: 49 89 c5 mov %rax,%r13 - 4032d4: 48 89 c2 mov %rax,%rdx - 4032d7: e8 44 8d 02 00 callq 42c020 - 4032dc: 4e 8d 0c 2b lea (%rbx,%r13,1),%r9 - 4032e0: 48 8b b5 30 ff ff ff mov -0xd0(%rbp),%rsi - 4032e7: 49 8d 54 24 01 lea 0x1(%r12),%rdx - 4032ec: 4c 89 cf mov %r9,%rdi - 4032ef: e8 2c 8d 02 00 callq 42c020 - 4032f4: 4c 8b 85 78 ff ff ff mov -0x88(%rbp),%r8 - 4032fb: 49 89 c1 mov %rax,%r9 - 4032fe: 8b 85 5c ff ff ff mov -0xa4(%rbp),%eax - 403304: 48 8b 8d 68 ff ff ff mov -0x98(%rbp),%rcx - 40330b: 41 89 40 08 mov %eax,0x8(%r8) - 40330f: 8b 05 93 9e 2c 00 mov 0x2c9e93(%rip),%eax # 6cd1a8 <_nl_msg_cat_cntr> - 403315: 49 89 18 mov %rbx,(%r8) - 403318: 4d 89 48 10 mov %r9,0x10(%r8) - 40331c: 4d 89 78 20 mov %r15,0x20(%r8) - 403320: 49 89 48 28 mov %rcx,0x28(%r8) - 403324: 41 89 40 18 mov %eax,0x18(%r8) - 403328: 48 8b 45 88 mov -0x78(%rbp),%rax - 40332c: 49 89 40 30 mov %rax,0x30(%r8) - 403330: b8 00 00 00 00 mov $0x0,%eax - 403335: 48 85 c0 test %rax,%rax - 403338: 74 23 je 40335d <__dcigettext+0x7ed> - 40333a: 4c 89 85 70 ff ff ff mov %r8,-0x90(%rbp) - 403341: 48 89 8d 78 ff ff ff mov %rcx,-0x88(%rbp) - 403348: bf 60 c0 6c 00 mov $0x6cc060,%edi - 40334d: ff d0 callq *%rax - 40334f: 4c 8b 85 70 ff ff ff mov -0x90(%rbp),%r8 - 403356: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx - 40335d: 4c 89 c7 mov %r8,%rdi - 403360: ba 90 17 40 00 mov $0x401790,%edx - 403365: be 48 c0 6c 00 mov $0x6cc048,%esi - 40336a: 48 89 8d 70 ff ff ff mov %rcx,-0x90(%rbp) - 403371: 4c 89 85 78 ff ff ff mov %r8,-0x88(%rbp) - 403378: e8 23 cf 03 00 callq 4402a0 <__tsearch> - 40337d: 48 89 c3 mov %rax,%rbx - 403380: b8 00 00 00 00 mov $0x0,%eax - 403385: 4c 8b 85 78 ff ff ff mov -0x88(%rbp),%r8 - 40338c: 48 85 c0 test %rax,%rax - 40338f: 48 8b 8d 70 ff ff ff mov -0x90(%rbp),%rcx - 403396: 74 23 je 4033bb <__dcigettext+0x84b> - 403398: 4c 89 85 70 ff ff ff mov %r8,-0x90(%rbp) - 40339f: 48 89 8d 78 ff ff ff mov %rcx,-0x88(%rbp) - 4033a6: bf 60 c0 6c 00 mov $0x6cc060,%edi - 4033ab: ff d0 callq *%rax - 4033ad: 4c 8b 85 70 ff ff ff mov -0x90(%rbp),%r8 - 4033b4: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx - 4033bb: 48 85 db test %rbx,%rbx - 4033be: 74 09 je 4033c9 <__dcigettext+0x859> - 4033c0: 4c 3b 03 cmp (%rbx),%r8 - 4033c3: 0f 84 78 fd ff ff je 403141 <__dcigettext+0x5d1> - 4033c9: 4c 89 c7 mov %r8,%rdi - 4033cc: 48 89 8d 78 ff ff ff mov %rcx,-0x88(%rbp) - 4033d3: e8 d8 a9 01 00 callq 41ddb0 <__cfree> - 4033d8: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx - 4033df: e9 5d fd ff ff jmpq 403141 <__dcigettext+0x5d1> - 4033e4: 0f 1f 40 00 nopl 0x0(%rax) - 4033e8: 48 8b 58 30 mov 0x30(%rax),%rbx - 4033ec: 4c 8b 68 28 mov 0x28(%rax),%r13 - 4033f0: 48 8b 40 20 mov 0x20(%rax),%rax - 4033f4: 48 8b b5 50 ff ff ff mov -0xb0(%rbp),%rsi - 4033fb: 4c 8b 60 10 mov 0x10(%rax),%r12 - 4033ff: 49 8b bc 24 b8 00 00 mov 0xb8(%r12),%rdi - 403406: 00 - 403407: e8 04 e4 ff ff callq 401810 - 40340c: 49 3b 84 24 c0 00 00 cmp 0xc0(%r12),%rax - 403413: 00 - 403414: 0f 83 b5 fc ff ff jae 4030cf <__dcigettext+0x55f> - 40341a: 4c 89 ef mov %r13,%rdi - 40341d: 49 89 c4 mov %rax,%r12 - 403420: 4c 01 eb add %r13,%rbx - 403423: eb 1b jmp 403440 <__dcigettext+0x8d0> - 403425: 0f 1f 00 nopl (%rax) - 403428: 31 f6 xor %esi,%esi - 40342a: 49 83 ec 01 sub $0x1,%r12 - 40342e: e8 9d 95 02 00 callq 42c9d0 <__rawmemchr> - 403433: 48 8d 78 01 lea 0x1(%rax),%rdi - 403437: 48 39 df cmp %rbx,%rdi - 40343a: 0f 83 8f fc ff ff jae 4030cf <__dcigettext+0x55f> - 403440: 4d 85 e4 test %r12,%r12 - 403443: 75 e3 jne 403428 <__dcigettext+0x8b8> - 403445: 49 89 fd mov %rdi,%r13 - 403448: e9 82 fc ff ff jmpq 4030cf <__dcigettext+0x55f> - 40344d: 0f 1f 00 nopl (%rax) - 403450: 45 31 ed xor %r13d,%r13d - 403453: e9 c9 fa ff ff jmpq 402f21 <__dcigettext+0x3b1> - 403458: 4d 8b 67 10 mov 0x10(%r15),%r12 - 40345c: 48 8b b5 50 ff ff ff mov -0xb0(%rbp),%rsi - 403463: 48 89 8d 78 ff ff ff mov %rcx,-0x88(%rbp) - 40346a: 48 8b 5d 88 mov -0x78(%rbp),%rbx - 40346e: 49 8b bc 24 b8 00 00 mov 0xb8(%r12),%rdi - 403475: 00 - 403476: e8 95 e3 ff ff callq 401810 - 40347b: 49 3b 84 24 c0 00 00 cmp 0xc0(%r12),%rax - 403482: 00 - 403483: 48 8b 8d 78 ff ff ff mov -0x88(%rbp),%rcx - 40348a: 0f 83 cf fc ff ff jae 40315f <__dcigettext+0x5ef> - 403490: 48 89 cf mov %rcx,%rdi - 403493: 49 89 c4 mov %rax,%r12 - 403496: 48 01 cb add %rcx,%rbx - 403499: 49 89 cd mov %rcx,%r13 - 40349c: 4d 85 e4 test %r12,%r12 - 40349f: 74 1c je 4034bd <__dcigettext+0x94d> - 4034a1: 31 f6 xor %esi,%esi - 4034a3: 49 83 ec 01 sub $0x1,%r12 - 4034a7: e8 24 95 02 00 callq 42c9d0 <__rawmemchr> - 4034ac: 48 8d 78 01 lea 0x1(%rax),%rdi - 4034b0: 48 39 df cmp %rbx,%rdi - 4034b3: 72 e7 jb 40349c <__dcigettext+0x92c> - 4034b5: 4c 89 e9 mov %r13,%rcx - 4034b8: e9 a2 fc ff ff jmpq 40315f <__dcigettext+0x5ef> - 4034bd: 48 89 f9 mov %rdi,%rcx - 4034c0: e9 9a fc ff ff jmpq 40315f <__dcigettext+0x5ef> - 4034c5: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4034cc: 00 00 00 - 4034cf: 90 nop - -00000000004034d0 <_nl_find_domain>: - 4034d0: 41 57 push %r15 - 4034d2: 41 56 push %r14 - 4034d4: b8 00 00 00 00 mov $0x0,%eax - 4034d9: 41 55 push %r13 - 4034db: 41 54 push %r12 - 4034dd: 49 89 f5 mov %rsi,%r13 - 4034e0: 55 push %rbp - 4034e1: 53 push %rbx - 4034e2: 48 89 fd mov %rdi,%rbp - 4034e5: 49 89 d6 mov %rdx,%r14 - 4034e8: 49 89 cc mov %rcx,%r12 - 4034eb: 48 83 ec 48 sub $0x48,%rsp - 4034ef: 48 85 c0 test %rax,%rax - 4034f2: 74 07 je 4034fb <_nl_find_domain+0x2b> - 4034f4: bf a0 c0 6c 00 mov $0x6cc0a0,%edi - 4034f9: ff d0 callq *%rax - 4034fb: 48 89 ef mov %rbp,%rdi - 4034fe: 41 bf 00 00 00 00 mov $0x0,%r15d - 403504: e8 47 01 02 00 callq 423650 - 403509: 48 83 ec 08 sub $0x8,%rsp - 40350d: 48 8d 50 01 lea 0x1(%rax),%rdx - 403511: 45 31 c9 xor %r9d,%r9d - 403514: 6a 00 pushq $0x0 - 403516: 41 56 push %r14 - 403518: 31 c9 xor %ecx,%ecx - 40351a: 6a 00 pushq $0x0 - 40351c: 6a 00 pushq $0x0 - 40351e: 4d 89 e8 mov %r13,%r8 - 403521: 6a 00 pushq $0x0 - 403523: 48 89 ee mov %rbp,%rsi - 403526: bf d8 c0 6c 00 mov $0x6cc0d8,%edi - 40352b: e8 b0 1d 00 00 callq 4052e0 <_nl_make_l10nflist> - 403530: 48 83 c4 30 add $0x30,%rsp - 403534: 4d 85 ff test %r15,%r15 - 403537: 48 89 c3 mov %rax,%rbx - 40353a: 74 08 je 403544 <_nl_find_domain+0x74> - 40353c: bf a0 c0 6c 00 mov $0x6cc0a0,%edi - 403541: 41 ff d7 callq *%r15 - 403544: 48 85 db test %rbx,%rbx - 403547: 0f 84 93 00 00 00 je 4035e0 <_nl_find_domain+0x110> - 40354d: 8b 73 08 mov 0x8(%rbx),%esi - 403550: 85 f6 test %esi,%esi - 403552: 7e 74 jle 4035c8 <_nl_find_domain+0xf8> - 403554: 48 83 7b 10 00 cmpq $0x0,0x10(%rbx) - 403559: 48 89 d8 mov %rbx,%rax - 40355c: 74 12 je 403570 <_nl_find_domain+0xa0> - 40355e: 48 83 c4 48 add $0x48,%rsp - 403562: 5b pop %rbx - 403563: 5d pop %rbp - 403564: 41 5c pop %r12 - 403566: 41 5d pop %r13 - 403568: 41 5e pop %r14 - 40356a: 41 5f pop %r15 - 40356c: c3 retq - 40356d: 0f 1f 00 nopl (%rax) - 403570: 48 8b 7b 20 mov 0x20(%rbx),%rdi - 403574: 48 85 ff test %rdi,%rdi - 403577: 74 e5 je 40355e <_nl_find_domain+0x8e> - 403579: 31 ed xor %ebp,%ebp - 40357b: eb 1a jmp 403597 <_nl_find_domain+0xc7> - 40357d: 0f 1f 00 nopl (%rax) - 403580: 48 83 7f 10 00 cmpq $0x0,0x10(%rdi) - 403585: 75 29 jne 4035b0 <_nl_find_domain+0xe0> - 403587: 83 c5 01 add $0x1,%ebp - 40358a: 48 63 c5 movslq %ebp,%rax - 40358d: 48 8b 7c c3 20 mov 0x20(%rbx,%rax,8),%rdi - 403592: 48 85 ff test %rdi,%rdi - 403595: 74 19 je 4035b0 <_nl_find_domain+0xe0> - 403597: 8b 4f 08 mov 0x8(%rdi),%ecx - 40359a: 85 c9 test %ecx,%ecx - 40359c: 7f e2 jg 403580 <_nl_find_domain+0xb0> - 40359e: 4c 89 e6 mov %r12,%rsi - 4035a1: e8 9a 01 00 00 callq 403740 <_nl_load_domain> - 4035a6: 48 63 c5 movslq %ebp,%rax - 4035a9: 48 8b 7c c3 20 mov 0x20(%rbx,%rax,8),%rdi - 4035ae: eb d0 jmp 403580 <_nl_find_domain+0xb0> - 4035b0: 48 83 c4 48 add $0x48,%rsp - 4035b4: 48 89 d8 mov %rbx,%rax - 4035b7: 5b pop %rbx - 4035b8: 5d pop %rbp - 4035b9: 41 5c pop %r12 - 4035bb: 41 5d pop %r13 - 4035bd: 41 5e pop %r14 - 4035bf: 41 5f pop %r15 - 4035c1: c3 retq - 4035c2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4035c8: 4c 89 e6 mov %r12,%rsi - 4035cb: 48 89 df mov %rbx,%rdi - 4035ce: e8 6d 01 00 00 callq 403740 <_nl_load_domain> - 4035d3: e9 7c ff ff ff jmpq 403554 <_nl_find_domain+0x84> - 4035d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4035df: 00 - 4035e0: 4c 89 ef mov %r13,%rdi - 4035e3: e8 38 1b 00 00 callq 405120 <_nl_expand_alias> - 4035e8: 48 85 c0 test %rax,%rax - 4035eb: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4035f0: 74 14 je 403606 <_nl_find_domain+0x136> - 4035f2: 48 89 c7 mov %rax,%rdi - 4035f5: e8 06 00 02 00 callq 423600 <__strdup> - 4035fa: 48 85 c0 test %rax,%rax - 4035fd: 49 89 c5 mov %rax,%r13 - 403600: 0f 84 2b 01 00 00 je 403731 <_nl_find_domain+0x261> - 403606: 4c 8d 4c 24 38 lea 0x38(%rsp),%r9 - 40360b: 4c 8d 44 24 30 lea 0x30(%rsp),%r8 - 403610: 48 8d 4c 24 28 lea 0x28(%rsp),%rcx - 403615: 48 8d 54 24 20 lea 0x20(%rsp),%rdx - 40361a: 48 8d 74 24 18 lea 0x18(%rsp),%rsi - 40361f: 4c 89 ef mov %r13,%rdi - 403622: e8 89 23 00 00 callq 4059b0 <_nl_explode_name> - 403627: 83 f8 ff cmp $0xffffffff,%eax - 40362a: 89 c3 mov %eax,%ebx - 40362c: 0f 84 ff 00 00 00 je 403731 <_nl_find_domain+0x261> - 403632: b8 00 00 00 00 mov $0x0,%eax - 403637: 48 85 c0 test %rax,%rax - 40363a: 74 07 je 403643 <_nl_find_domain+0x173> - 40363c: bf a0 c0 6c 00 mov $0x6cc0a0,%edi - 403641: ff d0 callq *%rax - 403643: 48 89 ef mov %rbp,%rdi - 403646: e8 05 00 02 00 callq 423650 - 40364b: 48 83 ec 08 sub $0x8,%rsp - 40364f: 48 8d 50 01 lea 0x1(%rax),%rdx - 403653: 48 89 ee mov %rbp,%rsi - 403656: 6a 01 pushq $0x1 - 403658: 41 56 push %r14 - 40365a: 89 d9 mov %ebx,%ecx - 40365c: ff 74 24 38 pushq 0x38(%rsp) - 403660: ff 74 24 58 pushq 0x58(%rsp) - 403664: bf d8 c0 6c 00 mov $0x6cc0d8,%edi - 403669: ff 74 24 58 pushq 0x58(%rsp) - 40366d: 4c 8b 4c 24 58 mov 0x58(%rsp),%r9 - 403672: 4c 8b 44 24 48 mov 0x48(%rsp),%r8 - 403677: e8 64 1c 00 00 callq 4052e0 <_nl_make_l10nflist> - 40367c: 48 83 c4 30 add $0x30,%rsp - 403680: 4d 85 ff test %r15,%r15 - 403683: 48 89 c5 mov %rax,%rbp - 403686: 74 0a je 403692 <_nl_find_domain+0x1c2> - 403688: bf a0 c0 6c 00 mov $0x6cc0a0,%edi - 40368d: e8 6e c9 bf ff callq 0 <_nl_current_LC_CTYPE> - 403692: 48 85 ed test %rbp,%rbp - 403695: 74 22 je 4036b9 <_nl_find_domain+0x1e9> - 403697: 8b 55 08 mov 0x8(%rbp),%edx - 40369a: 85 d2 test %edx,%edx - 40369c: 0f 8e 7f 00 00 00 jle 403721 <_nl_find_domain+0x251> - 4036a2: 48 83 7d 10 00 cmpq $0x0,0x10(%rbp) - 4036a7: 74 35 je 4036de <_nl_find_domain+0x20e> - 4036a9: 48 83 7c 24 08 00 cmpq $0x0,0x8(%rsp) - 4036af: 74 08 je 4036b9 <_nl_find_domain+0x1e9> - 4036b1: 4c 89 ef mov %r13,%rdi - 4036b4: e8 f7 a6 01 00 callq 41ddb0 <__cfree> - 4036b9: 83 e3 01 and $0x1,%ebx - 4036bc: 48 89 e8 mov %rbp,%rax - 4036bf: 0f 84 99 fe ff ff je 40355e <_nl_find_domain+0x8e> - 4036c5: 48 8b 7c 24 38 mov 0x38(%rsp),%rdi - 4036ca: 48 89 6c 24 08 mov %rbp,0x8(%rsp) - 4036cf: e8 dc a6 01 00 callq 41ddb0 <__cfree> - 4036d4: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4036d9: e9 80 fe ff ff jmpq 40355e <_nl_find_domain+0x8e> - 4036de: 48 8b 7d 20 mov 0x20(%rbp),%rdi - 4036e2: 48 85 ff test %rdi,%rdi - 4036e5: 74 c2 je 4036a9 <_nl_find_domain+0x1d9> - 4036e7: 45 31 f6 xor %r14d,%r14d - 4036ea: eb 1c jmp 403708 <_nl_find_domain+0x238> - 4036ec: 0f 1f 40 00 nopl 0x0(%rax) - 4036f0: 48 83 7f 10 00 cmpq $0x0,0x10(%rdi) - 4036f5: 75 b2 jne 4036a9 <_nl_find_domain+0x1d9> - 4036f7: 41 83 c6 01 add $0x1,%r14d - 4036fb: 49 63 c6 movslq %r14d,%rax - 4036fe: 48 8b 7c c5 20 mov 0x20(%rbp,%rax,8),%rdi - 403703: 48 85 ff test %rdi,%rdi - 403706: 74 a1 je 4036a9 <_nl_find_domain+0x1d9> - 403708: 8b 47 08 mov 0x8(%rdi),%eax - 40370b: 85 c0 test %eax,%eax - 40370d: 7f e1 jg 4036f0 <_nl_find_domain+0x220> - 40370f: 4c 89 e6 mov %r12,%rsi - 403712: e8 29 00 00 00 callq 403740 <_nl_load_domain> - 403717: 49 63 c6 movslq %r14d,%rax - 40371a: 48 8b 7c c5 20 mov 0x20(%rbp,%rax,8),%rdi - 40371f: eb cf jmp 4036f0 <_nl_find_domain+0x220> - 403721: 4c 89 e6 mov %r12,%rsi - 403724: 48 89 ef mov %rbp,%rdi - 403727: e8 14 00 00 00 callq 403740 <_nl_load_domain> - 40372c: e9 71 ff ff ff jmpq 4036a2 <_nl_find_domain+0x1d2> - 403731: 31 c0 xor %eax,%eax - 403733: e9 26 fe ff ff jmpq 40355e <_nl_find_domain+0x8e> - 403738: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40373f: 00 - -0000000000403740 <_nl_load_domain>: - 403740: 55 push %rbp - 403741: 49 89 f0 mov %rsi,%r8 - 403744: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx - 40374b: 00 00 - 40374d: 48 89 e5 mov %rsp,%rbp - 403750: 41 57 push %r15 - 403752: 41 56 push %r14 - 403754: 41 55 push %r13 - 403756: 41 54 push %r12 - 403758: 53 push %rbx - 403759: 48 89 fb mov %rdi,%rbx - 40375c: 48 81 ec 38 01 00 00 sub $0x138,%rsp - 403763: 48 3b 15 7e 89 2c 00 cmp 0x2c897e(%rip),%rdx # 6cc0e8 - 40376a: 74 46 je 4037b2 <_nl_load_domain+0x72> - 40376c: be 01 00 00 00 mov $0x1,%esi - 403771: 31 c0 xor %eax,%eax - 403773: 83 3d 42 9a 2c 00 00 cmpl $0x0,0x2c9a42(%rip) # 6cd1bc <__libc_multiple_threads> - 40377a: 74 0c je 403788 <_nl_load_domain+0x48> - 40377c: f0 0f b1 35 5c 89 2c lock cmpxchg %esi,0x2c895c(%rip) # 6cc0e0 - 403783: 00 - 403784: 75 0b jne 403791 <_nl_load_domain+0x51> - 403786: eb 23 jmp 4037ab <_nl_load_domain+0x6b> - 403788: 0f b1 35 51 89 2c 00 cmpxchg %esi,0x2c8951(%rip) # 6cc0e0 - 40378f: 74 1a je 4037ab <_nl_load_domain+0x6b> - 403791: 48 8d 3d 48 89 2c 00 lea 0x2c8948(%rip),%rdi # 6cc0e0 - 403798: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 40379f: e8 2c ee 03 00 callq 4425d0 <__lll_lock_wait_private> - 4037a4: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4037ab: 48 89 15 36 89 2c 00 mov %rdx,0x2c8936(%rip) # 6cc0e8 - 4037b2: 8b 05 2c 89 2c 00 mov 0x2c892c(%rip),%eax # 6cc0e4 - 4037b8: 44 8b 63 08 mov 0x8(%rbx),%r12d - 4037bc: 83 c0 01 add $0x1,%eax - 4037bf: 45 85 e4 test %r12d,%r12d - 4037c2: 89 05 1c 89 2c 00 mov %eax,0x2c891c(%rip) # 6cc0e4 - 4037c8: 75 4b jne 403815 <_nl_load_domain+0xd5> - 4037ca: 48 8b 3b mov (%rbx),%rdi - 4037cd: 4d 89 c6 mov %r8,%r14 - 4037d0: c7 43 08 ff ff ff ff movl $0xffffffff,0x8(%rbx) - 4037d7: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) - 4037de: 00 - 4037df: 48 85 ff test %rdi,%rdi - 4037e2: 74 2a je 40380e <_nl_load_domain+0xce> - 4037e4: b9 02 00 00 00 mov $0x2,%ecx - 4037e9: 31 f6 xor %esi,%esi - 4037eb: 89 c8 mov %ecx,%eax - 4037ed: 0f 05 syscall - 4037ef: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 4037f5: 49 89 c4 mov %rax,%r12 - 4037f8: 76 7e jbe 403878 <_nl_load_domain+0x138> - 4037fa: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 403801: 41 f7 dc neg %r12d - 403804: 64 44 89 20 mov %r12d,%fs:(%rax) - 403808: 8b 05 d6 88 2c 00 mov 0x2c88d6(%rip),%eax # 6cc0e4 - 40380e: c7 43 08 01 00 00 00 movl $0x1,0x8(%rbx) - 403815: 83 e8 01 sub $0x1,%eax - 403818: 85 c0 test %eax,%eax - 40381a: 89 05 c4 88 2c 00 mov %eax,0x2c88c4(%rip) # 6cc0e4 - 403820: 75 41 jne 403863 <_nl_load_domain+0x123> - 403822: 48 c7 05 bb 88 2c 00 movq $0x0,0x2c88bb(%rip) # 6cc0e8 - 403829: 00 00 00 00 - 40382d: 83 3d 88 99 2c 00 00 cmpl $0x0,0x2c9988(%rip) # 6cd1bc <__libc_multiple_threads> - 403834: 74 0b je 403841 <_nl_load_domain+0x101> - 403836: f0 ff 0d a3 88 2c 00 lock decl 0x2c88a3(%rip) # 6cc0e0 - 40383d: 75 0a jne 403849 <_nl_load_domain+0x109> - 40383f: eb 22 jmp 403863 <_nl_load_domain+0x123> - 403841: ff 0d 99 88 2c 00 decl 0x2c8899(%rip) # 6cc0e0 - 403847: 74 1a je 403863 <_nl_load_domain+0x123> - 403849: 48 8d 3d 90 88 2c 00 lea 0x2c8890(%rip),%rdi # 6cc0e0 - 403850: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 403857: e8 a4 ed 03 00 callq 442600 <__lll_unlock_wake_private> - 40385c: 48 81 c4 80 00 00 00 add $0x80,%rsp - 403863: 48 8d 65 d8 lea -0x28(%rbp),%rsp - 403867: 5b pop %rbx - 403868: 41 5c pop %r12 - 40386a: 41 5d pop %r13 - 40386c: 41 5e pop %r14 - 40386e: 41 5f pop %r15 - 403870: 5d pop %rbp - 403871: c3 retq - 403872: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 403878: 83 f8 ff cmp $0xffffffff,%eax - 40387b: 74 24 je 4038a1 <_nl_load_domain+0x161> - 40387d: 48 8d 95 40 ff ff ff lea -0xc0(%rbp),%rdx - 403884: 89 c6 mov %eax,%esi - 403886: bf 01 00 00 00 mov $0x1,%edi - 40388b: e8 40 b8 03 00 callq 43f0d0 <__fxstat> - 403890: 85 c0 test %eax,%eax - 403892: 74 1c je 4038b0 <_nl_load_domain+0x170> - 403894: 4d 63 e4 movslq %r12d,%r12 - 403897: 4c 89 e7 mov %r12,%rdi - 40389a: b8 03 00 00 00 mov $0x3,%eax - 40389f: 0f 05 syscall - 4038a1: 8b 05 3d 88 2c 00 mov 0x2c883d(%rip),%eax # 6cc0e4 - 4038a7: e9 62 ff ff ff jmpq 40380e <_nl_load_domain+0xce> - 4038ac: 0f 1f 40 00 nopl 0x0(%rax) - 4038b0: 4c 8b ad 70 ff ff ff mov -0x90(%rbp),%r13 - 4038b7: 49 83 fd 2f cmp $0x2f,%r13 - 4038bb: 76 d7 jbe 403894 <_nl_load_domain+0x154> - 4038bd: 45 31 c9 xor %r9d,%r9d - 4038c0: 31 ff xor %edi,%edi - 4038c2: 45 89 e0 mov %r12d,%r8d - 4038c5: b9 02 00 00 00 mov $0x2,%ecx - 4038ca: ba 01 00 00 00 mov $0x1,%edx - 4038cf: 4c 89 ee mov %r13,%rsi - 4038d2: e8 19 c3 03 00 callq 43fbf0 <__mmap> - 4038d7: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 4038db: 49 89 c7 mov %rax,%r15 - 4038de: 0f 84 b1 01 00 00 je 403a95 <_nl_load_domain+0x355> - 4038e4: 49 63 fc movslq %r12d,%rdi - 4038e7: b8 03 00 00 00 mov $0x3,%eax - 4038ec: 0f 05 syscall - 4038ee: 41 8b 07 mov (%r15),%eax - 4038f1: 3d de 12 04 95 cmp $0x950412de,%eax - 4038f6: 0f 95 c2 setne %dl - 4038f9: 3d 95 04 12 de cmp $0xde120495,%eax - 4038fe: 88 95 20 ff ff ff mov %dl,-0xe0(%rbp) - 403904: 74 1a je 403920 <_nl_load_domain+0x1e0> - 403906: 84 d2 test %dl,%dl - 403908: 74 16 je 403920 <_nl_load_domain+0x1e0> - 40390a: 4c 89 ee mov %r13,%rsi - 40390d: 4c 89 ff mov %r15,%rdi - 403910: e8 9b c3 03 00 callq 43fcb0 <__munmap> - 403915: eb 8a jmp 4038a1 <_nl_load_domain+0x161> - 403917: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40391e: 00 00 - 403920: c7 85 1c ff ff ff 01 movl $0x1,-0xe4(%rbp) - 403927: 00 00 00 - 40392a: bf c8 00 00 00 mov $0xc8,%edi - 40392f: e8 dc a0 01 00 callq 41da10 <__libc_malloc> - 403934: 48 85 c0 test %rax,%rax - 403937: 48 89 85 28 ff ff ff mov %rax,-0xd8(%rbp) - 40393e: 0f 84 5d ff ff ff je 4038a1 <_nl_load_domain+0x161> - 403944: 0f b6 95 20 ff ff ff movzbl -0xe0(%rbp),%edx - 40394b: 8b 8d 1c ff ff ff mov -0xe4(%rbp),%ecx - 403951: 48 89 43 10 mov %rax,0x10(%rbx) - 403955: 4c 89 38 mov %r15,(%rax) - 403958: 4c 89 68 10 mov %r13,0x10(%rax) - 40395c: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) - 403963: 00 - 403964: 89 48 08 mov %ecx,0x8(%rax) - 403967: 84 d2 test %dl,%dl - 403969: 89 50 18 mov %edx,0x18(%rax) - 40396c: 41 8b 47 04 mov 0x4(%r15),%eax - 403970: 0f 84 bd 01 00 00 je 403b33 <_nl_load_domain+0x3f3> - 403976: 0f c8 bswap %eax - 403978: 3d ff ff 01 00 cmp $0x1ffff,%eax - 40397d: 0f 87 4b 02 00 00 ja 403bce <_nl_load_domain+0x48e> - 403983: 41 8b 4f 08 mov 0x8(%r15),%ecx - 403987: 48 8b b5 28 ff ff ff mov -0xd8(%rbp),%rsi - 40398e: 45 8b 57 14 mov 0x14(%r15),%r10d - 403992: 0f c9 bswap %ecx - 403994: 89 4e 28 mov %ecx,0x28(%rsi) - 403997: 41 8b 4f 0c mov 0xc(%r15),%ecx - 40399b: 41 0f ca bswap %r10d - 40399e: 0f c9 bswap %ecx - 4039a0: 89 c9 mov %ecx,%ecx - 4039a2: 4c 01 f9 add %r15,%rcx - 4039a5: 48 89 4e 30 mov %rcx,0x30(%rsi) - 4039a9: 41 8b 4f 10 mov 0x10(%r15),%ecx - 4039ad: 44 89 56 58 mov %r10d,0x58(%rsi) - 4039b1: 0f c9 bswap %ecx - 4039b3: 89 c9 mov %ecx,%ecx - 4039b5: 4c 01 f9 add %r15,%rcx - 4039b8: 41 83 fa 02 cmp $0x2,%r10d - 4039bc: 48 89 4e 38 mov %rcx,0x38(%rsi) - 4039c0: 0f 86 b3 01 00 00 jbe 403b79 <_nl_load_domain+0x439> - 4039c6: 41 8b 4f 18 mov 0x18(%r15),%ecx - 4039ca: 0f c9 bswap %ecx - 4039cc: 89 c9 mov %ecx,%ecx - 4039ce: 4c 01 f9 add %r15,%rcx - 4039d1: 66 85 c0 test %ax,%ax - 4039d4: 89 56 68 mov %edx,0x68(%rsi) - 4039d7: 48 89 4e 60 mov %rcx,0x60(%rsi) - 4039db: 74 2a je 403a07 <_nl_load_domain+0x2c7> - 4039dd: 48 85 c9 test %rcx,%rcx - 4039e0: 0f 84 e8 01 00 00 je 403bce <_nl_load_domain+0x48e> - 4039e6: 80 bd 20 ff ff ff 00 cmpb $0x0,-0xe0(%rbp) - 4039ed: 41 8b 47 24 mov 0x24(%r15),%eax - 4039f1: 0f 84 02 02 00 00 je 403bf9 <_nl_load_domain+0x4b9> - 4039f7: 0f c8 bswap %eax - 4039f9: 85 c0 test %eax,%eax - 4039fb: 89 85 e0 fe ff ff mov %eax,-0x120(%rbp) - 403a01: 0f 85 9b 03 00 00 jne 403da2 <_nl_load_domain+0x662> - 403a07: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax - 403a0e: c7 40 40 00 00 00 00 movl $0x0,0x40(%rax) - 403a15: 48 c7 40 48 00 00 00 movq $0x0,0x48(%rax) - 403a1c: 00 - 403a1d: 48 89 c1 mov %rax,%rcx - 403a20: 48 c7 40 50 00 00 00 movq $0x0,0x50(%rax) - 403a27: 00 - 403a28: b8 00 00 00 00 mov $0x0,%eax - 403a2d: 48 c7 41 70 00 00 00 movq $0x0,0x70(%rcx) - 403a34: 00 - 403a35: 48 c7 41 78 00 00 00 movq $0x0,0x78(%rcx) - 403a3c: 00 - 403a3d: 48 85 c0 test %rax,%rax - 403a40: 74 0e je 403a50 <_nl_load_domain+0x310> - 403a42: 48 8d b9 80 00 00 00 lea 0x80(%rcx),%rdi - 403a49: 31 f6 xor %esi,%esi - 403a4b: e8 b0 c5 bf ff callq 0 <_nl_current_LC_CTYPE> - 403a50: 4c 8d 85 30 ff ff ff lea -0xd0(%rbp),%r8 - 403a57: 31 c9 xor %ecx,%ecx - 403a59: ba 25 67 4b 00 mov $0x4b6725,%edx - 403a5e: 4c 89 f6 mov %r14,%rsi - 403a61: 48 89 df mov %rbx,%rdi - 403a64: e8 e7 e4 ff ff callq 401f50 <_nl_find_msg> - 403a69: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 403a6d: 0f 84 5f 01 00 00 je 403bd2 <_nl_load_domain+0x492> - 403a73: 48 8b 8d 28 ff ff ff mov -0xd8(%rbp),%rcx - 403a7a: 48 89 c7 mov %rax,%rdi - 403a7d: 48 8d 91 c0 00 00 00 lea 0xc0(%rcx),%rdx - 403a84: 48 8d b1 b8 00 00 00 lea 0xb8(%rcx),%rsi - 403a8b: e8 c0 9f 00 00 callq 40da50 <__gettext_extract_plural> - 403a90: e9 0c fe ff ff jmpq 4038a1 <_nl_load_domain+0x161> - 403a95: 4c 89 ef mov %r13,%rdi - 403a98: e8 73 9f 01 00 callq 41da10 <__libc_malloc> - 403a9d: 48 85 c0 test %rax,%rax - 403aa0: 49 89 c7 mov %rax,%r15 - 403aa3: 0f 84 eb fd ff ff je 403894 <_nl_load_domain+0x154> - 403aa9: 4d 63 e4 movslq %r12d,%r12 - 403aac: 49 89 c1 mov %rax,%r9 - 403aaf: 4d 89 e8 mov %r13,%r8 - 403ab2: 45 31 d2 xor %r10d,%r10d - 403ab5: 4c 89 c2 mov %r8,%rdx - 403ab8: 4c 89 ce mov %r9,%rsi - 403abb: 4c 89 e7 mov %r12,%rdi - 403abe: 44 89 d0 mov %r10d,%eax - 403ac1: 0f 05 syscall - 403ac3: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 403ac9: 76 57 jbe 403b22 <_nl_load_domain+0x3e2> - 403acb: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 403ad2: f7 d8 neg %eax - 403ad4: 83 f8 04 cmp $0x4,%eax - 403ad7: 64 89 02 mov %eax,%fs:(%rdx) - 403ada: 0f 85 b7 fd ff ff jne 403897 <_nl_load_domain+0x157> - 403ae0: 4d 85 c0 test %r8,%r8 - 403ae3: 75 d0 jne 403ab5 <_nl_load_domain+0x375> - 403ae5: 4c 89 e7 mov %r12,%rdi - 403ae8: b8 03 00 00 00 mov $0x3,%eax - 403aed: 0f 05 syscall - 403aef: 41 8b 17 mov (%r15),%edx - 403af2: 81 fa de 12 04 95 cmp $0x950412de,%edx - 403af8: 0f 95 c0 setne %al - 403afb: 81 fa 95 04 12 de cmp $0xde120495,%edx - 403b01: 88 85 20 ff ff ff mov %al,-0xe0(%rbp) - 403b07: 0f 84 e5 0a 00 00 je 4045f2 <_nl_load_domain+0xeb2> - 403b0d: 84 c0 test %al,%al - 403b0f: 0f 84 dd 0a 00 00 je 4045f2 <_nl_load_domain+0xeb2> - 403b15: 4c 89 ff mov %r15,%rdi - 403b18: e8 93 a2 01 00 callq 41ddb0 <__cfree> - 403b1d: e9 7f fd ff ff jmpq 4038a1 <_nl_load_domain+0x161> - 403b22: 48 85 c0 test %rax,%rax - 403b25: 0f 8e 6c fd ff ff jle 403897 <_nl_load_domain+0x157> - 403b2b: 49 01 c1 add %rax,%r9 - 403b2e: 49 29 c0 sub %rax,%r8 - 403b31: eb ad jmp 403ae0 <_nl_load_domain+0x3a0> - 403b33: 3d ff ff 01 00 cmp $0x1ffff,%eax - 403b38: 0f 87 90 00 00 00 ja 403bce <_nl_load_domain+0x48e> - 403b3e: 41 8b 4f 08 mov 0x8(%r15),%ecx - 403b42: 48 8b b5 28 ff ff ff mov -0xd8(%rbp),%rsi - 403b49: 45 8b 57 14 mov 0x14(%r15),%r10d - 403b4d: 89 4e 28 mov %ecx,0x28(%rsi) - 403b50: 41 8b 4f 0c mov 0xc(%r15),%ecx - 403b54: 4c 01 f9 add %r15,%rcx - 403b57: 48 89 4e 30 mov %rcx,0x30(%rsi) - 403b5b: 41 8b 4f 10 mov 0x10(%r15),%ecx - 403b5f: 44 89 56 58 mov %r10d,0x58(%rsi) - 403b63: 4c 01 f9 add %r15,%rcx - 403b66: 41 83 fa 02 cmp $0x2,%r10d - 403b6a: 48 89 4e 38 mov %rcx,0x38(%rsi) - 403b6e: 76 09 jbe 403b79 <_nl_load_domain+0x439> - 403b70: 41 8b 4f 18 mov 0x18(%r15),%ecx - 403b74: e9 55 fe ff ff jmpq 4039ce <_nl_load_domain+0x28e> - 403b79: 66 85 c0 test %ax,%ax - 403b7c: 48 c7 46 60 00 00 00 movq $0x0,0x60(%rsi) - 403b83: 00 - 403b84: 89 56 68 mov %edx,0x68(%rsi) - 403b87: 0f 84 7a fe ff ff je 403a07 <_nl_load_domain+0x2c7> - 403b8d: 48 8b 7e 20 mov 0x20(%rsi),%rdi - 403b91: e8 1a a2 01 00 callq 41ddb0 <__cfree> - 403b96: 8b 85 1c ff ff ff mov -0xe4(%rbp),%eax - 403b9c: 85 c0 test %eax,%eax - 403b9e: 74 24 je 403bc4 <_nl_load_domain+0x484> - 403ba0: 4c 89 ee mov %r13,%rsi - 403ba3: 4c 89 ff mov %r15,%rdi - 403ba6: e8 05 c1 03 00 callq 43fcb0 <__munmap> - 403bab: 48 8b bd 28 ff ff ff mov -0xd8(%rbp),%rdi - 403bb2: e8 f9 a1 01 00 callq 41ddb0 <__cfree> - 403bb7: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) - 403bbe: 00 - 403bbf: e9 dd fc ff ff jmpq 4038a1 <_nl_load_domain+0x161> - 403bc4: 4c 89 ff mov %r15,%rdi - 403bc7: e8 e4 a1 01 00 callq 41ddb0 <__cfree> - 403bcc: eb dd jmp 403bab <_nl_load_domain+0x46b> - 403bce: 31 ff xor %edi,%edi - 403bd0: eb bf jmp 403b91 <_nl_load_domain+0x451> - 403bd2: b8 00 00 00 00 mov $0x0,%eax - 403bd7: 48 85 c0 test %rax,%rax - 403bda: 0f 84 e6 05 00 00 je 4041c6 <_nl_load_domain+0xa86> - 403be0: 4c 8b b5 28 ff ff ff mov -0xd8(%rbp),%r14 - 403be7: 49 8d be 80 00 00 00 lea 0x80(%r14),%rdi - 403bee: e8 0d c4 bf ff callq 0 <_nl_current_LC_CTYPE> - 403bf3: 49 8b 7e 20 mov 0x20(%r14),%rdi - 403bf7: eb 98 jmp 403b91 <_nl_load_domain+0x451> - 403bf9: 85 c0 test %eax,%eax - 403bfb: 89 85 e0 fe ff ff mov %eax,-0x120(%rbp) - 403c01: 0f 84 00 fe ff ff je 403a07 <_nl_load_domain+0x2c7> - 403c07: 41 8b 47 1c mov 0x1c(%r15),%eax - 403c0b: 41 8b 77 20 mov 0x20(%r15),%esi - 403c0f: 89 c1 mov %eax,%ecx - 403c11: 89 85 e8 fe ff ff mov %eax,-0x118(%rbp) - 403c17: 48 8d 04 c5 1e 00 00 lea 0x1e(,%rax,8),%rax - 403c1e: 00 - 403c1f: 4c 01 fe add %r15,%rsi - 403c22: 48 c1 e8 04 shr $0x4,%rax - 403c26: 48 c1 e0 04 shl $0x4,%rax - 403c2a: 48 29 c4 sub %rax,%rsp - 403c2d: 48 8d 44 24 0f lea 0xf(%rsp),%rax - 403c32: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 403c36: 85 c9 test %ecx,%ecx - 403c38: 48 89 85 00 ff ff ff mov %rax,-0x100(%rbp) - 403c3f: 0f 84 b3 05 00 00 je 4041f8 <_nl_load_domain+0xab8> - 403c45: 44 89 95 f8 fe ff ff mov %r10d,-0x108(%rbp) - 403c4c: 48 89 9d 08 ff ff ff mov %rbx,-0xf8(%rbp) - 403c53: 48 83 c6 04 add $0x4,%rsi - 403c57: 45 31 c0 xor %r8d,%r8d - 403c5a: 31 ff xor %edi,%edi - 403c5c: 41 bb cd 11 4a 00 mov $0x4a11cd,%r11d - 403c62: 49 bc 01 10 82 20 01 movabs $0x120821001,%r12 - 403c69: 00 00 00 - 403c6c: 44 8b 95 e8 fe ff ff mov -0x118(%rbp),%r10d - 403c73: 44 0f b6 8d 20 ff ff movzbl -0xe0(%rbp),%r9d - 403c7a: ff - 403c7b: 4c 89 ad 10 ff ff ff mov %r13,-0xf0(%rbp) - 403c82: 48 8b 9d 00 ff ff ff mov -0x100(%rbp),%rbx - 403c89: eb 57 jmp 403ce2 <_nl_load_domain+0x5a2> - 403c8b: 8b 16 mov (%rsi),%edx - 403c8d: 8b 46 fc mov -0x4(%rsi),%eax - 403c90: 0f ca bswap %edx - 403c92: 0f c8 bswap %eax - 403c94: 89 d2 mov %edx,%edx - 403c96: 4c 01 fa add %r15,%rdx - 403c99: 85 c0 test %eax,%eax - 403c9b: 0f 84 e3 00 00 00 je 403d84 <_nl_load_domain+0x644> - 403ca1: 83 e8 01 sub $0x1,%eax - 403ca4: 80 3c 02 00 cmpb $0x0,(%rdx,%rax,1) - 403ca8: 0f 85 d6 00 00 00 jne 403d84 <_nl_load_domain+0x644> - 403cae: 0f b6 02 movzbl (%rdx),%eax - 403cb1: 3c 50 cmp $0x50,%al - 403cb3: 74 3c je 403cf1 <_nl_load_domain+0x5b1> - 403cb5: 3c 49 cmp $0x49,%al - 403cb7: 0f 85 7f 08 00 00 jne 40453c <_nl_load_domain+0xdfc> - 403cbd: 80 7a 01 00 cmpb $0x0,0x1(%rdx) - 403cc1: b8 00 00 00 00 mov $0x0,%eax - 403cc6: 49 0f 44 c3 cmove %r11,%rax - 403cca: 83 c7 01 add $0x1,%edi - 403ccd: 4a 89 04 03 mov %rax,(%rbx,%r8,1) - 403cd1: 48 83 c6 08 add $0x8,%rsi - 403cd5: 49 83 c0 08 add $0x8,%r8 - 403cd9: 41 39 fa cmp %edi,%r10d - 403cdc: 0f 86 f4 04 00 00 jbe 4041d6 <_nl_load_domain+0xa96> - 403ce2: 45 84 c9 test %r9b,%r9b - 403ce5: 75 a4 jne 403c8b <_nl_load_domain+0x54b> - 403ce7: 8b 16 mov (%rsi),%edx - 403ce9: 8b 46 fc mov -0x4(%rsi),%eax - 403cec: 4c 01 fa add %r15,%rdx - 403cef: eb a8 jmp 403c99 <_nl_load_domain+0x559> - 403cf1: 31 c0 xor %eax,%eax - 403cf3: 80 7a 01 52 cmpb $0x52,0x1(%rdx) - 403cf7: 75 d1 jne 403cca <_nl_load_domain+0x58a> - 403cf9: 80 7a 02 49 cmpb $0x49,0x2(%rdx) - 403cfd: 75 cb jne 403cca <_nl_load_domain+0x58a> - 403cff: 0f b6 4a 03 movzbl 0x3(%rdx),%ecx - 403d03: 44 8d 69 a8 lea -0x58(%rcx),%r13d - 403d07: 41 80 fd 20 cmp $0x20,%r13b - 403d0b: 77 bd ja 403cca <_nl_load_domain+0x58a> - 403d0d: 4d 0f a3 ec bt %r13,%r12 - 403d11: 73 b7 jae 403cca <_nl_load_domain+0x58a> - 403d13: 44 0f b6 6a 04 movzbl 0x4(%rdx),%r13d - 403d18: 41 80 fd 38 cmp $0x38,%r13b - 403d1c: 0f 84 b1 05 00 00 je 4042d3 <_nl_load_domain+0xb93> - 403d22: 41 80 fd 31 cmp $0x31,%r13b - 403d26: 0f 84 53 05 00 00 je 40427f <_nl_load_domain+0xb3f> - 403d2c: 31 c0 xor %eax,%eax - 403d2e: 41 80 fd 33 cmp $0x33,%r13b - 403d32: 0f 85 11 09 00 00 jne 404649 <_nl_load_domain+0xf09> - 403d38: 80 7a 05 32 cmpb $0x32,0x5(%rdx) - 403d3c: 75 8c jne 403cca <_nl_load_domain+0x58a> - 403d3e: 80 7a 06 00 cmpb $0x0,0x6(%rdx) - 403d42: 75 86 jne 403cca <_nl_load_domain+0x58a> - 403d44: 80 f9 64 cmp $0x64,%cl - 403d47: 0f 84 f2 08 00 00 je 40463f <_nl_load_domain+0xeff> - 403d4d: 80 f9 69 cmp $0x69,%cl - 403d50: 0f 84 df 08 00 00 je 404635 <_nl_load_domain+0xef5> - 403d56: 80 f9 6f cmp $0x6f,%cl - 403d59: 0f 84 cc 08 00 00 je 40462b <_nl_load_domain+0xeeb> - 403d5f: 80 f9 75 cmp $0x75,%cl - 403d62: 0f 84 b9 08 00 00 je 404621 <_nl_load_domain+0xee1> - 403d68: 80 f9 78 cmp $0x78,%cl - 403d6b: 0f 84 a6 08 00 00 je 404617 <_nl_load_domain+0xed7> - 403d71: 80 f9 58 cmp $0x58,%cl - 403d74: 0f 85 bd 07 00 00 jne 404537 <_nl_load_domain+0xdf7> - 403d7a: b8 a5 5a 4b 00 mov $0x4b5aa5,%eax - 403d7f: e9 46 ff ff ff jmpq 403cca <_nl_load_domain+0x58a> - 403d84: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax - 403d8b: 4c 8b ad 10 ff ff ff mov -0xf0(%rbp),%r13 - 403d92: 48 8b 9d 08 ff ff ff mov -0xf8(%rbp),%rbx - 403d99: 48 8b 78 20 mov 0x20(%rax),%rdi - 403d9d: e9 ef fd ff ff jmpq 403b91 <_nl_load_domain+0x451> - 403da2: 41 8b 47 1c mov 0x1c(%r15),%eax - 403da6: 41 8b 77 20 mov 0x20(%r15),%esi - 403daa: 0f c8 bswap %eax - 403dac: 0f ce bswap %esi - 403dae: 89 c1 mov %eax,%ecx - 403db0: 89 85 e8 fe ff ff mov %eax,-0x118(%rbp) - 403db6: 89 c0 mov %eax,%eax - 403db8: 48 8d 04 c5 1e 00 00 lea 0x1e(,%rax,8),%rax - 403dbf: 00 - 403dc0: 89 f6 mov %esi,%esi - 403dc2: 4c 01 fe add %r15,%rsi - 403dc5: 48 c1 e8 04 shr $0x4,%rax - 403dc9: 48 c1 e0 04 shl $0x4,%rax - 403dcd: 48 29 c4 sub %rax,%rsp - 403dd0: 48 8d 44 24 0f lea 0xf(%rsp),%rax - 403dd5: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 403dd9: 85 c9 test %ecx,%ecx - 403ddb: 48 89 85 00 ff ff ff mov %rax,-0x100(%rbp) - 403de2: 0f 85 5d fe ff ff jne 403c45 <_nl_load_domain+0x505> - 403de8: 41 8b 47 28 mov 0x28(%r15),%eax - 403dec: 0f c8 bswap %eax - 403dee: 89 c0 mov %eax,%eax - 403df0: 4c 01 f8 add %r15,%rax - 403df3: 48 89 85 f0 fe ff ff mov %rax,-0x110(%rbp) - 403dfa: 41 8b 47 2c mov 0x2c(%r15),%eax - 403dfe: 0f c8 bswap %eax - 403e00: 89 c0 mov %eax,%eax - 403e02: 4c 01 f8 add %r15,%rax - 403e05: 45 89 d2 mov %r10d,%r10d - 403e08: 4c 89 b5 b0 fe ff ff mov %r14,-0x150(%rbp) - 403e0f: 48 89 85 d8 fe ff ff mov %rax,-0x128(%rbp) - 403e16: 4c 8b a5 00 ff ff ff mov -0x100(%rbp),%r12 - 403e1d: 4a 8d 04 95 00 00 00 lea 0x0(,%r10,4),%rax - 403e24: 00 - 403e25: 44 8b b5 e8 fe ff ff mov -0x118(%rbp),%r14d - 403e2c: 48 c7 85 08 ff ff ff movq $0x0,-0xf8(%rbp) - 403e33: 00 00 00 00 - 403e37: 48 89 85 b8 fe ff ff mov %rax,-0x148(%rbp) - 403e3e: 48 89 85 c0 fe ff ff mov %rax,-0x140(%rbp) - 403e45: c7 85 10 ff ff ff 00 movl $0x0,-0xf0(%rbp) - 403e4c: 00 00 00 - 403e4f: 4c 89 ad d0 fe ff ff mov %r13,-0x130(%rbp) - 403e56: 4c 89 bd f8 fe ff ff mov %r15,-0x108(%rbp) - 403e5d: 48 89 9d c8 fe ff ff mov %rbx,-0x138(%rbp) - 403e64: 45 31 ed xor %r13d,%r13d - 403e67: 80 bd 20 ff ff ff 00 cmpb $0x0,-0xe0(%rbp) - 403e6e: 0f 84 ce 02 00 00 je 404142 <_nl_load_domain+0xa02> - 403e74: 4d 85 ed test %r13,%r13 - 403e77: 0f 84 5f 07 00 00 je 4045dc <_nl_load_domain+0xe9c> - 403e7d: 48 8b 85 d8 fe ff ff mov -0x128(%rbp),%rax - 403e84: 48 8b 8d 08 ff ff ff mov -0xf8(%rbp),%rcx - 403e8b: 8b 04 88 mov (%rax,%rcx,4),%eax - 403e8e: 0f c8 bswap %eax - 403e90: 89 c2 mov %eax,%edx - 403e92: 48 03 95 f8 fe ff ff add -0x108(%rbp),%rdx - 403e99: 83 7a 08 ff cmpl $0xffffffff,0x8(%rdx) - 403e9d: 0f 84 07 03 00 00 je 4041aa <_nl_load_domain+0xa6a> - 403ea3: 4c 8d 7a 04 lea 0x4(%rdx),%r15 - 403ea7: 31 db xor %ebx,%ebx - 403ea9: eb 25 jmp 403ed0 <_nl_load_domain+0x790> - 403eab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 403eb0: 44 39 f0 cmp %r14d,%eax - 403eb3: 0f 83 f8 02 00 00 jae 4041b1 <_nl_load_domain+0xa71> - 403eb9: 89 c0 mov %eax,%eax - 403ebb: 49 8b 3c c4 mov (%r12,%rax,8),%rdi - 403ebf: 48 85 ff test %rdi,%rdi - 403ec2: 74 53 je 403f17 <_nl_load_domain+0x7d7> - 403ec4: e8 87 f7 01 00 callq 423650 - 403ec9: 49 83 c7 08 add $0x8,%r15 - 403ecd: 48 01 c3 add %rax,%rbx - 403ed0: 41 8b 07 mov (%r15),%eax - 403ed3: 0f c8 bswap %eax - 403ed5: 89 c0 mov %eax,%eax - 403ed7: 48 01 c3 add %rax,%rbx - 403eda: 41 8b 47 04 mov 0x4(%r15),%eax - 403ede: 0f c8 bswap %eax - 403ee0: 83 f8 ff cmp $0xffffffff,%eax - 403ee3: 75 cb jne 403eb0 <_nl_load_domain+0x770> - 403ee5: 4a 89 9c ed 30 ff ff mov %rbx,-0xd0(%rbp,%r13,8) - 403eec: ff - 403eed: 49 83 c5 01 add $0x1,%r13 - 403ef1: 49 83 fd 02 cmp $0x2,%r13 - 403ef5: 0f 85 6c ff ff ff jne 403e67 <_nl_load_domain+0x727> - 403efb: 48 8b 85 38 ff ff ff mov -0xc8(%rbp),%rax - 403f02: 48 03 85 30 ff ff ff add -0xd0(%rbp),%rax - 403f09: 83 85 10 ff ff ff 01 addl $0x1,-0xf0(%rbp) - 403f10: 48 01 85 c0 fe ff ff add %rax,-0x140(%rbp) - 403f17: 48 83 85 08 ff ff ff addq $0x1,-0xf8(%rbp) - 403f1e: 01 - 403f1f: 48 8b 85 08 ff ff ff mov -0xf8(%rbp),%rax - 403f26: 39 85 e0 fe ff ff cmp %eax,-0x120(%rbp) - 403f2c: 0f 87 32 ff ff ff ja 403e64 <_nl_load_domain+0x724> - 403f32: 83 bd 10 ff ff ff 00 cmpl $0x0,-0xf0(%rbp) - 403f39: 4c 8b ad d0 fe ff ff mov -0x130(%rbp),%r13 - 403f40: 4c 8b bd f8 fe ff ff mov -0x108(%rbp),%r15 - 403f47: 48 8b 9d c8 fe ff ff mov -0x138(%rbp),%rbx - 403f4e: 4c 8b b5 b0 fe ff ff mov -0x150(%rbp),%r14 - 403f55: 0f 84 ac fa ff ff je 403a07 <_nl_load_domain+0x2c7> - 403f5b: 8b 85 10 ff ff ff mov -0xf0(%rbp),%eax - 403f61: 8d 3c 00 lea (%rax,%rax,1),%edi - 403f64: 48 c1 e7 04 shl $0x4,%rdi - 403f68: 48 03 bd c0 fe ff ff add -0x140(%rbp),%rdi - 403f6f: e8 9c 9a 01 00 callq 41da10 <__libc_malloc> - 403f74: 48 85 c0 test %rax,%rax - 403f77: 48 89 85 20 ff ff ff mov %rax,-0xe0(%rbp) - 403f7e: 0f 84 42 02 00 00 je 4041c6 <_nl_load_domain+0xa86> - 403f84: 8b 85 10 ff ff ff mov -0xf0(%rbp),%eax - 403f8a: 48 8b 8d 20 ff ff ff mov -0xe0(%rbp),%rcx - 403f91: 48 8b 95 28 ff ff ff mov -0xd8(%rbp),%rdx - 403f98: 4c 8b 8d b8 fe ff ff mov -0x148(%rbp),%r9 - 403f9f: 4c 8b 95 f0 fe ff ff mov -0x110(%rbp),%r10 - 403fa6: c7 85 f8 fe ff ff 00 movl $0x0,-0x108(%rbp) - 403fad: 00 00 00 - 403fb0: 4c 89 ad c8 fe ff ff mov %r13,-0x138(%rbp) - 403fb7: 48 89 9d c0 fe ff ff mov %rbx,-0x140(%rbp) - 403fbe: 48 c1 e0 04 shl $0x4,%rax - 403fc2: 48 89 4a 20 mov %rcx,0x20(%rdx) - 403fc6: 4c 89 b5 b8 fe ff ff mov %r14,-0x148(%rbp) - 403fcd: 48 01 c1 add %rax,%rcx - 403fd0: 48 01 c8 add %rcx,%rax - 403fd3: 48 89 8d d0 fe ff ff mov %rcx,-0x130(%rbp) - 403fda: 48 89 85 e8 fe ff ff mov %rax,-0x118(%rbp) - 403fe1: 49 01 c1 add %rax,%r9 - 403fe4: 48 8b 85 d8 fe ff ff mov -0x128(%rbp),%rax - 403feb: 48 89 85 08 ff ff ff mov %rax,-0xf8(%rbp) - 403ff2: 8b 85 e0 fe ff ff mov -0x120(%rbp),%eax - 403ff8: 49 8d 04 82 lea (%r10,%rax,4),%rax - 403ffc: 48 89 85 d8 fe ff ff mov %rax,-0x128(%rbp) - 404003: 4c 3b 95 d8 fe ff ff cmp -0x128(%rbp),%r10 - 40400a: 0f 84 b7 03 00 00 je 4043c7 <_nl_load_domain+0xc87> - 404010: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax - 404017: 48 8b 8d 00 ff ff ff mov -0x100(%rbp),%rcx - 40401e: 31 d2 xor %edx,%edx - 404020: 48 8b b5 08 ff ff ff mov -0xf8(%rbp),%rsi - 404027: 44 8b 58 18 mov 0x18(%rax),%r11d - 40402b: 45 85 db test %r11d,%r11d - 40402e: 0f 84 5a 03 00 00 je 40438e <_nl_load_domain+0xc4e> - 404034: 85 d2 test %edx,%edx - 404036: 0f 84 db 04 00 00 je 404517 <_nl_load_domain+0xdd7> - 40403c: 8b 06 mov (%rsi),%eax - 40403e: 0f c8 bswap %eax - 404040: 89 c0 mov %eax,%eax - 404042: 4c 01 f8 add %r15,%rax - 404045: 83 78 08 ff cmpl $0xffffffff,0x8(%rax) - 404049: 0f 85 19 03 00 00 jne 404368 <_nl_load_domain+0xc28> - 40404f: 83 c2 01 add $0x1,%edx - 404052: 83 fa 02 cmp $0x2,%edx - 404055: 75 d4 jne 40402b <_nl_load_domain+0x8eb> - 404057: 8b 85 f8 fe ff ff mov -0x108(%rbp),%eax - 40405d: 48 8b 8d 20 ff ff ff mov -0xe0(%rbp),%rcx - 404064: 45 31 c0 xor %r8d,%r8d - 404067: 48 c1 e0 04 shl $0x4,%rax - 40406b: 48 01 c1 add %rax,%rcx - 40406e: 48 03 85 d0 fe ff ff add -0x130(%rbp),%rax - 404075: 48 89 8d e0 fe ff ff mov %rcx,-0x120(%rbp) - 40407c: 48 89 85 f0 fe ff ff mov %rax,-0x110(%rbp) - 404083: 45 85 db test %r11d,%r11d - 404086: 0f 84 a1 02 00 00 je 40432d <_nl_load_domain+0xbed> - 40408c: 45 85 c0 test %r8d,%r8d - 40408f: 0f 84 19 05 00 00 je 4045ae <_nl_load_domain+0xe6e> - 404095: 48 8b 85 08 ff ff ff mov -0xf8(%rbp),%rax - 40409c: 4c 8b b5 f0 fe ff ff mov -0x110(%rbp),%r14 - 4040a3: 8b 18 mov (%rax),%ebx - 4040a5: 0f cb bswap %ebx - 4040a7: 89 db mov %ebx,%ebx - 4040a9: 4c 01 fb add %r15,%rbx - 4040ac: 44 8b 23 mov (%rbx),%r12d - 4040af: 41 0f cc bswap %r12d - 4040b2: 45 89 e4 mov %r12d,%r12d - 4040b5: 4d 01 fc add %r15,%r12 - 4040b8: 83 7b 08 ff cmpl $0xffffffff,0x8(%rbx) - 4040bc: 0f 84 0e 05 00 00 je 4045d0 <_nl_load_domain+0xe90> - 4040c2: 4d 89 4e 08 mov %r9,0x8(%r14) - 4040c6: 4c 89 b5 b0 fe ff ff mov %r14,-0x150(%rbp) - 4040cd: 48 83 c3 04 add $0x4,%rbx - 4040d1: 44 89 85 18 ff ff ff mov %r8d,-0xe8(%rbp) - 4040d8: 4c 89 95 a8 fe ff ff mov %r10,-0x158(%rbp) - 4040df: 45 89 de mov %r11d,%r14d - 4040e2: eb 51 jmp 404135 <_nl_load_domain+0x9f5> - 4040e4: 8b 4b 04 mov 0x4(%rbx),%ecx - 4040e7: 41 0f cd bswap %r13d - 4040ea: 0f c9 bswap %ecx - 4040ec: 45 85 ed test %r13d,%r13d - 4040ef: 0f 85 1a 01 00 00 jne 40420f <_nl_load_domain+0xacf> - 4040f5: 83 f9 ff cmp $0xffffffff,%ecx - 4040f8: 0f 84 3c 01 00 00 je 40423a <_nl_load_domain+0xafa> - 4040fe: 48 8b 85 00 ff ff ff mov -0x100(%rbp),%rax - 404105: 89 c9 mov %ecx,%ecx - 404107: 48 83 c3 08 add $0x8,%rbx - 40410b: 48 8b 34 c8 mov (%rax,%rcx,8),%rsi - 40410f: 31 c0 xor %eax,%eax - 404111: 48 83 c9 ff or $0xffffffffffffffff,%rcx - 404115: 48 89 f7 mov %rsi,%rdi - 404118: f2 ae repnz scas %es:(%rdi),%al - 40411a: 4c 89 cf mov %r9,%rdi - 40411d: 48 89 c8 mov %rcx,%rax - 404120: 48 f7 d0 not %rax - 404123: 4c 8d 68 ff lea -0x1(%rax),%r13 - 404127: 4c 89 ea mov %r13,%rdx - 40412a: e8 f1 7e 02 00 callq 42c020 - 40412f: 49 89 c1 mov %rax,%r9 - 404132: 4d 01 e9 add %r13,%r9 - 404135: 45 85 f6 test %r14d,%r14d - 404138: 44 8b 2b mov (%rbx),%r13d - 40413b: 75 a7 jne 4040e4 <_nl_load_domain+0x9a4> - 40413d: 8b 4b 04 mov 0x4(%rbx),%ecx - 404140: eb aa jmp 4040ec <_nl_load_domain+0x9ac> - 404142: 4d 85 ed test %r13,%r13 - 404145: 0f 84 b6 04 00 00 je 404601 <_nl_load_domain+0xec1> - 40414b: 48 8b 85 d8 fe ff ff mov -0x128(%rbp),%rax - 404152: 48 8b 8d 08 ff ff ff mov -0xf8(%rbp),%rcx - 404159: 8b 14 88 mov (%rax,%rcx,4),%edx - 40415c: 48 03 95 f8 fe ff ff add -0x108(%rbp),%rdx - 404163: 83 7a 08 ff cmpl $0xffffffff,0x8(%rdx) - 404167: 74 41 je 4041aa <_nl_load_domain+0xa6a> - 404169: 4c 8d 7a 04 lea 0x4(%rdx),%r15 - 40416d: 31 db xor %ebx,%ebx - 40416f: eb 25 jmp 404196 <_nl_load_domain+0xa56> - 404171: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 404178: 41 39 c6 cmp %eax,%r14d - 40417b: 76 34 jbe 4041b1 <_nl_load_domain+0xa71> - 40417d: 49 8b 3c c4 mov (%r12,%rax,8),%rdi - 404181: 48 85 ff test %rdi,%rdi - 404184: 0f 84 8d fd ff ff je 403f17 <_nl_load_domain+0x7d7> - 40418a: e8 c1 f4 01 00 callq 423650 - 40418f: 49 83 c7 08 add $0x8,%r15 - 404193: 48 01 c3 add %rax,%rbx - 404196: 41 8b 07 mov (%r15),%eax - 404199: 48 01 c3 add %rax,%rbx - 40419c: 41 8b 47 04 mov 0x4(%r15),%eax - 4041a0: 83 f8 ff cmp $0xffffffff,%eax - 4041a3: 75 d3 jne 404178 <_nl_load_domain+0xa38> - 4041a5: e9 3b fd ff ff jmpq 403ee5 <_nl_load_domain+0x7a5> - 4041aa: 31 db xor %ebx,%ebx - 4041ac: e9 34 fd ff ff jmpq 403ee5 <_nl_load_domain+0x7a5> - 4041b1: 4c 8b ad d0 fe ff ff mov -0x130(%rbp),%r13 - 4041b8: 4c 8b bd f8 fe ff ff mov -0x108(%rbp),%r15 - 4041bf: 48 8b 9d c8 fe ff ff mov -0x138(%rbp),%rbx - 4041c6: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax - 4041cd: 48 8b 78 20 mov 0x20(%rax),%rdi - 4041d1: e9 bb f9 ff ff jmpq 403b91 <_nl_load_domain+0x451> - 4041d6: 80 bd 20 ff ff ff 00 cmpb $0x0,-0xe0(%rbp) - 4041dd: 44 8b 95 f8 fe ff ff mov -0x108(%rbp),%r10d - 4041e4: 4c 8b ad 10 ff ff ff mov -0xf0(%rbp),%r13 - 4041eb: 48 8b 9d 08 ff ff ff mov -0xf8(%rbp),%rbx - 4041f2: 0f 85 f0 fb ff ff jne 403de8 <_nl_load_domain+0x6a8> - 4041f8: 41 8b 47 28 mov 0x28(%r15),%eax - 4041fc: 4c 01 f8 add %r15,%rax - 4041ff: 48 89 85 f0 fe ff ff mov %rax,-0x110(%rbp) - 404206: 41 8b 47 2c mov 0x2c(%r15),%eax - 40420a: e9 f3 fb ff ff jmpq 403e02 <_nl_load_domain+0x6c2> - 40420f: 45 89 ed mov %r13d,%r13d - 404212: 4c 89 e6 mov %r12,%rsi - 404215: 4c 89 cf mov %r9,%rdi - 404218: 4c 89 ea mov %r13,%rdx - 40421b: 89 8d a4 fe ff ff mov %ecx,-0x15c(%rbp) - 404221: 4d 01 ec add %r13,%r12 - 404224: e8 f7 7d 02 00 callq 42c020 - 404229: 49 89 c1 mov %rax,%r9 - 40422c: 8b 8d a4 fe ff ff mov -0x15c(%rbp),%ecx - 404232: 4d 01 e9 add %r13,%r9 - 404235: e9 bb fe ff ff jmpq 4040f5 <_nl_load_domain+0x9b5> - 40423a: 4c 8b b5 b0 fe ff ff mov -0x150(%rbp),%r14 - 404241: 4c 89 c8 mov %r9,%rax - 404244: 44 8b 85 18 ff ff ff mov -0xe8(%rbp),%r8d - 40424b: 4c 8b 95 a8 fe ff ff mov -0x158(%rbp),%r10 - 404252: 49 2b 46 08 sub 0x8(%r14),%rax - 404256: 49 89 06 mov %rax,(%r14) - 404259: 41 83 c0 01 add $0x1,%r8d - 40425d: 41 83 f8 02 cmp $0x2,%r8d - 404261: 0f 85 b6 00 00 00 jne 40431d <_nl_load_domain+0xbdd> - 404267: 83 85 f8 fe ff ff 01 addl $0x1,-0x108(%rbp) - 40426e: 49 83 c2 04 add $0x4,%r10 - 404272: 48 83 85 08 ff ff ff addq $0x4,-0xf8(%rbp) - 404279: 04 - 40427a: e9 84 fd ff ff jmpq 404003 <_nl_load_domain+0x8c3> - 40427f: 80 7a 05 36 cmpb $0x36,0x5(%rdx) - 404283: 0f 85 41 fa ff ff jne 403cca <_nl_load_domain+0x58a> - 404289: 80 7a 06 00 cmpb $0x0,0x6(%rdx) - 40428d: 0f 85 e2 02 00 00 jne 404575 <_nl_load_domain+0xe35> - 404293: 80 f9 64 cmp $0x64,%cl - 404296: 0f 84 cf 02 00 00 je 40456b <_nl_load_domain+0xe2b> - 40429c: 80 f9 69 cmp $0x69,%cl - 40429f: 0f 84 bc 02 00 00 je 404561 <_nl_load_domain+0xe21> - 4042a5: 80 f9 6f cmp $0x6f,%cl - 4042a8: 0f 84 a9 02 00 00 je 404557 <_nl_load_domain+0xe17> - 4042ae: 80 f9 75 cmp $0x75,%cl - 4042b1: 0f 84 96 02 00 00 je 40454d <_nl_load_domain+0xe0d> - 4042b7: 80 f9 78 cmp $0x78,%cl - 4042ba: 0f 84 83 02 00 00 je 404543 <_nl_load_domain+0xe03> - 4042c0: 80 f9 58 cmp $0x58,%cl - 4042c3: 0f 85 6e 02 00 00 jne 404537 <_nl_load_domain+0xdf7> - 4042c9: b8 a5 5a 4b 00 mov $0x4b5aa5,%eax - 4042ce: e9 f7 f9 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 4042d3: 80 7a 05 00 cmpb $0x0,0x5(%rdx) - 4042d7: 0f 85 ed f9 ff ff jne 403cca <_nl_load_domain+0x58a> - 4042dd: 80 f9 64 cmp $0x64,%cl - 4042e0: 0f 84 b4 02 00 00 je 40459a <_nl_load_domain+0xe5a> - 4042e6: 80 f9 69 cmp $0x69,%cl - 4042e9: 0f 84 a1 02 00 00 je 404590 <_nl_load_domain+0xe50> - 4042ef: 80 f9 6f cmp $0x6f,%cl - 4042f2: 0f 84 8e 02 00 00 je 404586 <_nl_load_domain+0xe46> - 4042f8: 80 f9 75 cmp $0x75,%cl - 4042fb: 0f 84 7b 02 00 00 je 40457c <_nl_load_domain+0xe3c> - 404301: 80 f9 78 cmp $0x78,%cl - 404304: 0f 84 9a 02 00 00 je 4045a4 <_nl_load_domain+0xe64> - 40430a: 80 f9 58 cmp $0x58,%cl - 40430d: 0f 85 24 02 00 00 jne 404537 <_nl_load_domain+0xdf7> - 404313: b8 a5 5a 4b 00 mov $0x4b5aa5,%eax - 404318: e9 ad f9 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 40431d: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax - 404324: 44 8b 58 18 mov 0x18(%rax),%r11d - 404328: e9 56 fd ff ff jmpq 404083 <_nl_load_domain+0x943> - 40432d: 45 85 c0 test %r8d,%r8d - 404330: 0f 84 e9 01 00 00 je 40451f <_nl_load_domain+0xddf> - 404336: 48 8b 85 08 ff ff ff mov -0xf8(%rbp),%rax - 40433d: 4c 8b b5 f0 fe ff ff mov -0x110(%rbp),%r14 - 404344: 8b 18 mov (%rax),%ebx - 404346: 4c 01 fb add %r15,%rbx - 404349: 44 8b 23 mov (%rbx),%r12d - 40434c: 4d 01 fc add %r15,%r12 - 40434f: 83 7b 08 ff cmpl $0xffffffff,0x8(%rbx) - 404353: 0f 85 69 fd ff ff jne 4040c2 <_nl_load_domain+0x982> - 404359: 8b 43 04 mov 0x4(%rbx),%eax - 40435c: 49 89 06 mov %rax,(%r14) - 40435f: 4d 89 66 08 mov %r12,0x8(%r14) - 404363: e9 f1 fe ff ff jmpq 404259 <_nl_load_domain+0xb19> - 404368: 48 83 c0 04 add $0x4,%rax - 40436c: eb 11 jmp 40437f <_nl_load_domain+0xc3f> - 40436e: 89 ff mov %edi,%edi - 404370: 48 83 3c f9 00 cmpq $0x0,(%rcx,%rdi,8) - 404375: 0f 84 f3 fe ff ff je 40426e <_nl_load_domain+0xb2e> - 40437b: 48 83 c0 08 add $0x8,%rax - 40437f: 8b 78 04 mov 0x4(%rax),%edi - 404382: 0f cf bswap %edi - 404384: 83 ff ff cmp $0xffffffff,%edi - 404387: 75 e5 jne 40436e <_nl_load_domain+0xc2e> - 404389: e9 c1 fc ff ff jmpq 40404f <_nl_load_domain+0x90f> - 40438e: 85 d2 test %edx,%edx - 404390: 0f 84 79 01 00 00 je 40450f <_nl_load_domain+0xdcf> - 404396: 8b 06 mov (%rsi),%eax - 404398: 4c 01 f8 add %r15,%rax - 40439b: 83 78 08 ff cmpl $0xffffffff,0x8(%rax) - 40439f: 0f 84 aa fc ff ff je 40404f <_nl_load_domain+0x90f> - 4043a5: 48 83 c0 04 add $0x4,%rax - 4043a9: eb 0f jmp 4043ba <_nl_load_domain+0xc7a> - 4043ab: 48 83 3c f9 00 cmpq $0x0,(%rcx,%rdi,8) - 4043b0: 0f 84 b8 fe ff ff je 40426e <_nl_load_domain+0xb2e> - 4043b6: 48 83 c0 08 add $0x8,%rax - 4043ba: 8b 78 04 mov 0x4(%rax),%edi - 4043bd: 83 ff ff cmp $0xffffffff,%edi - 4043c0: 75 e9 jne 4043ab <_nl_load_domain+0xc6b> - 4043c2: e9 88 fc ff ff jmpq 40404f <_nl_load_domain+0x90f> - 4043c7: 8b 8d f8 fe ff ff mov -0x108(%rbp),%ecx - 4043cd: 39 8d 10 ff ff ff cmp %ecx,-0xf0(%rbp) - 4043d3: 4c 8b ad c8 fe ff ff mov -0x138(%rbp),%r13 - 4043da: 48 8b 9d c0 fe ff ff mov -0x140(%rbp),%rbx - 4043e1: 4c 8b b5 b8 fe ff ff mov -0x148(%rbp),%r14 - 4043e8: 0f 85 49 01 00 00 jne 404537 <_nl_load_domain+0xdf7> - 4043ee: 48 8b b5 28 ff ff ff mov -0xd8(%rbp),%rsi - 4043f5: 31 c0 xor %eax,%eax - 4043f7: 8b 4e 58 mov 0x58(%rsi),%ecx - 4043fa: eb 1d jmp 404419 <_nl_load_domain+0xcd9> - 4043fc: 83 7e 68 00 cmpl $0x0,0x68(%rsi) - 404400: 48 8b 56 60 mov 0x60(%rsi),%rdx - 404404: 8b 14 82 mov (%rdx,%rax,4),%edx - 404407: 74 02 je 40440b <_nl_load_domain+0xccb> - 404409: 0f ca bswap %edx - 40440b: 48 8b bd e8 fe ff ff mov -0x118(%rbp),%rdi - 404412: 89 14 87 mov %edx,(%rdi,%rax,4) - 404415: 48 83 c0 01 add $0x1,%rax - 404419: 39 c1 cmp %eax,%ecx - 40441b: 77 df ja 4043fc <_nl_load_domain+0xcbc> - 40441d: 49 89 d8 mov %rbx,%r8 - 404420: 48 8b 9d 28 ff ff ff mov -0xd8(%rbp),%rbx - 404427: 45 31 c9 xor %r9d,%r9d - 40442a: 4d 89 cc mov %r9,%r12 - 40442d: 4d 89 f1 mov %r14,%r9 - 404430: 4d 89 ee mov %r13,%r14 - 404433: 48 8b 8d 20 ff ff ff mov -0xe0(%rbp),%rcx - 40443a: 4c 89 e0 mov %r12,%rax - 40443d: 4c 89 8d 00 ff ff ff mov %r9,-0x100(%rbp) - 404444: 48 c1 e0 04 shl $0x4,%rax - 404448: 4c 89 85 08 ff ff ff mov %r8,-0xf8(%rbp) - 40444f: 45 89 e5 mov %r12d,%r13d - 404452: 48 8b 7c 01 08 mov 0x8(%rcx,%rax,1),%rdi - 404457: e8 d4 96 00 00 callq 40db30 <__hash_string> - 40445c: 8b 7b 58 mov 0x58(%rbx),%edi - 40445f: 31 d2 xor %edx,%edx - 404461: 89 c1 mov %eax,%ecx - 404463: 4c 8b 85 08 ff ff ff mov -0xf8(%rbp),%r8 - 40446a: 4c 8b 8d 00 ff ff ff mov -0x100(%rbp),%r9 - 404471: f7 f7 div %edi - 404473: 44 8d 57 fe lea -0x2(%rdi),%r10d - 404477: 89 c8 mov %ecx,%eax - 404479: 89 d6 mov %edx,%esi - 40447b: 31 d2 xor %edx,%edx - 40447d: 41 f7 f2 div %r10d - 404480: 41 89 fa mov %edi,%r10d - 404483: 8d 42 01 lea 0x1(%rdx),%eax - 404486: 89 c1 mov %eax,%ecx - 404488: 41 29 c2 sub %eax,%r10d - 40448b: 29 f9 sub %edi,%ecx - 40448d: eb 0e jmp 40449d <_nl_load_domain+0xd5d> - 40448f: 8d 14 0e lea (%rsi,%rcx,1),%edx - 404492: 8d 3c 06 lea (%rsi,%rax,1),%edi - 404495: 44 39 d6 cmp %r10d,%esi - 404498: 0f 42 d7 cmovb %edi,%edx - 40449b: 89 d6 mov %edx,%esi - 40449d: 48 8b bd e8 fe ff ff mov -0x118(%rbp),%rdi - 4044a4: 89 f2 mov %esi,%edx - 4044a6: 48 8d 14 97 lea (%rdi,%rdx,4),%rdx - 4044aa: 44 8b 1a mov (%rdx),%r11d - 4044ad: 45 85 db test %r11d,%r11d - 4044b0: 75 dd jne 40448f <_nl_load_domain+0xd4f> - 4044b2: 8b 43 28 mov 0x28(%rbx),%eax - 4044b5: 49 83 c4 01 add $0x1,%r12 - 4044b9: 44 39 a5 10 ff ff ff cmp %r12d,-0xf0(%rbp) - 4044c0: 41 8d 44 05 01 lea 0x1(%r13,%rax,1),%eax - 4044c5: 89 02 mov %eax,(%rdx) - 4044c7: 0f 87 66 ff ff ff ja 404433 <_nl_load_domain+0xcf3> - 4044cd: 48 8b 85 28 ff ff ff mov -0xd8(%rbp),%rax - 4044d4: 8b 8d 10 ff ff ff mov -0xf0(%rbp),%ecx - 4044da: 4d 89 f5 mov %r14,%r13 - 4044dd: 4c 89 c3 mov %r8,%rbx - 4044e0: 4d 89 ce mov %r9,%r14 - 4044e3: 89 48 40 mov %ecx,0x40(%rax) - 4044e6: 48 8b 8d 20 ff ff ff mov -0xe0(%rbp),%rcx - 4044ed: 48 89 78 60 mov %rdi,0x60(%rax) - 4044f1: c7 40 68 00 00 00 00 movl $0x0,0x68(%rax) - 4044f8: 48 89 48 48 mov %rcx,0x48(%rax) - 4044fc: 48 8b 8d d0 fe ff ff mov -0x130(%rbp),%rcx - 404503: 48 89 48 50 mov %rcx,0x50(%rax) - 404507: 48 89 c1 mov %rax,%rcx - 40450a: e9 19 f5 ff ff jmpq 403a28 <_nl_load_domain+0x2e8> - 40450f: 41 8b 02 mov (%r10),%eax - 404512: e9 81 fe ff ff jmpq 404398 <_nl_load_domain+0xc58> - 404517: 41 8b 02 mov (%r10),%eax - 40451a: e9 1f fb ff ff jmpq 40403e <_nl_load_domain+0x8fe> - 40451f: 41 8b 1a mov (%r10),%ebx - 404522: 4c 8b b5 e0 fe ff ff mov -0x120(%rbp),%r14 - 404529: 4c 01 fb add %r15,%rbx - 40452c: 44 8b 23 mov (%rbx),%r12d - 40452f: 4d 01 fc add %r15,%r12 - 404532: e9 18 fe ff ff jmpq 40434f <_nl_load_domain+0xc0f> - 404537: e8 c4 96 00 00 callq 40dc00 - 40453c: 31 c0 xor %eax,%eax - 40453e: e9 87 f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404543: b8 5a 4a 4a 00 mov $0x4a4a5a,%eax - 404548: e9 7d f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 40454d: b8 22 66 4b 00 mov $0x4b6622,%eax - 404552: e9 73 f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404557: b8 34 4a 4a 00 mov $0x4a4a34,%eax - 40455c: e9 69 f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404561: b8 b7 52 4a 00 mov $0x4a52b7,%eax - 404566: e9 5f f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 40456b: b8 43 d4 4b 00 mov $0x4bd443,%eax - 404570: e9 55 f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404575: 31 c0 xor %eax,%eax - 404577: e9 4e f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 40457c: b8 22 66 4b 00 mov $0x4b6622,%eax - 404581: e9 44 f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404586: b8 34 4a 4a 00 mov $0x4a4a34,%eax - 40458b: e9 3a f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404590: b8 b7 52 4a 00 mov $0x4a52b7,%eax - 404595: e9 30 f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 40459a: b8 43 d4 4b 00 mov $0x4bd443,%eax - 40459f: e9 26 f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 4045a4: b8 5a 4a 4a 00 mov $0x4a4a5a,%eax - 4045a9: e9 1c f7 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 4045ae: 41 8b 1a mov (%r10),%ebx - 4045b1: 4c 8b b5 e0 fe ff ff mov -0x120(%rbp),%r14 - 4045b8: 0f cb bswap %ebx - 4045ba: 89 db mov %ebx,%ebx - 4045bc: 4c 01 fb add %r15,%rbx - 4045bf: 44 8b 23 mov (%rbx),%r12d - 4045c2: 41 0f cc bswap %r12d - 4045c5: 45 89 e4 mov %r12d,%r12d - 4045c8: 4d 01 fc add %r15,%r12 - 4045cb: e9 e8 fa ff ff jmpq 4040b8 <_nl_load_domain+0x978> - 4045d0: 8b 43 04 mov 0x4(%rbx),%eax - 4045d3: 0f c8 bswap %eax - 4045d5: 89 c0 mov %eax,%eax - 4045d7: e9 80 fd ff ff jmpq 40435c <_nl_load_domain+0xc1c> - 4045dc: 48 8b 85 f0 fe ff ff mov -0x110(%rbp),%rax - 4045e3: 48 8b 8d 08 ff ff ff mov -0xf8(%rbp),%rcx - 4045ea: 8b 04 88 mov (%rax,%rcx,4),%eax - 4045ed: e9 9c f8 ff ff jmpq 403e8e <_nl_load_domain+0x74e> - 4045f2: c7 85 1c ff ff ff 00 movl $0x0,-0xe4(%rbp) - 4045f9: 00 00 00 - 4045fc: e9 29 f3 ff ff jmpq 40392a <_nl_load_domain+0x1ea> - 404601: 48 8b 85 f0 fe ff ff mov -0x110(%rbp),%rax - 404608: 48 8b 8d 08 ff ff ff mov -0xf8(%rbp),%rcx - 40460f: 8b 14 88 mov (%rax,%rcx,4),%edx - 404612: e9 45 fb ff ff jmpq 40415c <_nl_load_domain+0xa1c> - 404617: b8 5a 4a 4a 00 mov $0x4a4a5a,%eax - 40461c: e9 a9 f6 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404621: b8 22 66 4b 00 mov $0x4b6622,%eax - 404626: e9 9f f6 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 40462b: b8 34 4a 4a 00 mov $0x4a4a34,%eax - 404630: e9 95 f6 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404635: b8 b7 52 4a 00 mov $0x4a52b7,%eax - 40463a: e9 8b f6 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 40463f: b8 43 d4 4b 00 mov $0x4bd443,%eax - 404644: e9 81 f6 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404649: 41 80 fd 36 cmp $0x36,%r13b - 40464d: 75 54 jne 4046a3 <_nl_load_domain+0xf63> - 40464f: 80 7a 05 34 cmpb $0x34,0x5(%rdx) - 404653: 0f 85 71 f6 ff ff jne 403cca <_nl_load_domain+0x58a> - 404659: 80 7a 06 00 cmpb $0x0,0x6(%rdx) - 40465d: 0f 85 67 f6 ff ff jne 403cca <_nl_load_domain+0x58a> - 404663: 80 f9 64 cmp $0x64,%cl - 404666: 0f 84 13 06 00 00 je 404c7f <_nl_load_domain+0x153f> - 40466c: 80 f9 69 cmp $0x69,%cl - 40466f: 0f 84 00 06 00 00 je 404c75 <_nl_load_domain+0x1535> - 404675: 80 f9 6f cmp $0x6f,%cl - 404678: 0f 84 ed 05 00 00 je 404c6b <_nl_load_domain+0x152b> - 40467e: 80 f9 75 cmp $0x75,%cl - 404681: 0f 84 da 05 00 00 je 404c61 <_nl_load_domain+0x1521> - 404687: 80 f9 78 cmp $0x78,%cl - 40468a: 0f 84 85 00 00 00 je 404715 <_nl_load_domain+0xfd5> - 404690: 80 f9 58 cmp $0x58,%cl - 404693: 0f 85 9e fe ff ff jne 404537 <_nl_load_domain+0xdf7> - 404699: b8 ca 11 4a 00 mov $0x4a11ca,%eax - 40469e: e9 27 f6 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 4046a3: 41 80 fd 4c cmp $0x4c,%r13b - 4046a7: 0f 84 a3 01 00 00 je 404850 <_nl_load_domain+0x1110> - 4046ad: 41 80 fd 46 cmp $0x46,%r13b - 4046b1: 0f 84 f8 00 00 00 je 4047af <_nl_load_domain+0x106f> - 4046b7: 41 80 fd 4d cmp $0x4d,%r13b - 4046bb: 0f 84 90 00 00 00 je 404751 <_nl_load_domain+0x1011> - 4046c1: 41 80 fd 50 cmp $0x50,%r13b - 4046c5: 0f 85 ff f5 ff ff jne 403cca <_nl_load_domain+0x58a> - 4046cb: 80 7a 05 54 cmpb $0x54,0x5(%rdx) - 4046cf: 0f 85 f5 f5 ff ff jne 403cca <_nl_load_domain+0x58a> - 4046d5: 80 7a 06 52 cmpb $0x52,0x6(%rdx) - 4046d9: 0f 85 eb f5 ff ff jne 403cca <_nl_load_domain+0x58a> - 4046df: 80 7a 07 00 cmpb $0x0,0x7(%rdx) - 4046e3: 0f 85 e1 f5 ff ff jne 403cca <_nl_load_domain+0x58a> - 4046e9: 80 f9 64 cmp $0x64,%cl - 4046ec: 74 59 je 404747 <_nl_load_domain+0x1007> - 4046ee: 80 f9 69 cmp $0x69,%cl - 4046f1: 74 4a je 40473d <_nl_load_domain+0xffd> - 4046f3: 80 f9 6f cmp $0x6f,%cl - 4046f6: 74 3b je 404733 <_nl_load_domain+0xff3> - 4046f8: 80 f9 75 cmp $0x75,%cl - 4046fb: 74 2c je 404729 <_nl_load_domain+0xfe9> - 4046fd: 80 f9 78 cmp $0x78,%cl - 404700: 74 1d je 40471f <_nl_load_domain+0xfdf> - 404702: 80 f9 58 cmp $0x58,%cl - 404705: 0f 85 2c fe ff ff jne 404537 <_nl_load_domain+0xdf7> - 40470b: b8 ca 11 4a 00 mov $0x4a11ca,%eax - 404710: e9 b5 f5 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404715: b8 c1 11 4a 00 mov $0x4a11c1,%eax - 40471a: e9 ab f5 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 40471f: b8 c1 11 4a 00 mov $0x4a11c1,%eax - 404724: e9 a1 f5 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404729: b8 c7 11 4a 00 mov $0x4a11c7,%eax - 40472e: e9 97 f5 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404733: b8 d2 11 4a 00 mov $0x4a11d2,%eax - 404738: e9 8d f5 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 40473d: b8 cf 11 4a 00 mov $0x4a11cf,%eax - 404742: e9 83 f5 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404747: b8 c4 11 4a 00 mov $0x4a11c4,%eax - 40474c: e9 79 f5 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404751: 80 7a 05 41 cmpb $0x41,0x5(%rdx) - 404755: 0f 85 6f f5 ff ff jne 403cca <_nl_load_domain+0x58a> - 40475b: 80 7a 06 58 cmpb $0x58,0x6(%rdx) - 40475f: 0f 85 65 f5 ff ff jne 403cca <_nl_load_domain+0x58a> - 404765: 80 7a 07 00 cmpb $0x0,0x7(%rdx) - 404769: 0f 85 5b f5 ff ff jne 403cca <_nl_load_domain+0x58a> - 40476f: 80 f9 64 cmp $0x64,%cl - 404772: 0f 84 df 04 00 00 je 404c57 <_nl_load_domain+0x1517> - 404778: 80 f9 69 cmp $0x69,%cl - 40477b: 0f 84 cc 04 00 00 je 404c4d <_nl_load_domain+0x150d> - 404781: 80 f9 6f cmp $0x6f,%cl - 404784: 0f 84 b9 04 00 00 je 404c43 <_nl_load_domain+0x1503> - 40478a: 80 f9 75 cmp $0x75,%cl - 40478d: 0f 84 a6 04 00 00 je 404c39 <_nl_load_domain+0x14f9> - 404793: 80 f9 78 cmp $0x78,%cl - 404796: 0f 84 4b 01 00 00 je 4048e7 <_nl_load_domain+0x11a7> - 40479c: 80 f9 58 cmp $0x58,%cl - 40479f: 0f 85 92 fd ff ff jne 404537 <_nl_load_domain+0xdf7> - 4047a5: b8 ca 11 4a 00 mov $0x4a11ca,%eax - 4047aa: e9 1b f5 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 4047af: 80 7a 05 41 cmpb $0x41,0x5(%rdx) - 4047b3: 0f 85 11 f5 ff ff jne 403cca <_nl_load_domain+0x58a> - 4047b9: 80 7a 06 53 cmpb $0x53,0x6(%rdx) - 4047bd: 0f 85 07 f5 ff ff jne 403cca <_nl_load_domain+0x58a> - 4047c3: 80 7a 07 54 cmpb $0x54,0x7(%rdx) - 4047c7: 0f 85 fd f4 ff ff jne 403cca <_nl_load_domain+0x58a> - 4047cd: 44 0f b6 6a 08 movzbl 0x8(%rdx),%r13d - 4047d2: 41 80 fd 38 cmp $0x38,%r13b - 4047d6: 0f 84 83 03 00 00 je 404b5f <_nl_load_domain+0x141f> - 4047dc: 41 80 fd 31 cmp $0x31,%r13b - 4047e0: 0f 84 35 03 00 00 je 404b1b <_nl_load_domain+0x13db> - 4047e6: 41 80 fd 33 cmp $0x33,%r13b - 4047ea: 0f 84 d7 02 00 00 je 404ac7 <_nl_load_domain+0x1387> - 4047f0: 41 80 fd 36 cmp $0x36,%r13b - 4047f4: 0f 85 d0 f4 ff ff jne 403cca <_nl_load_domain+0x58a> - 4047fa: 31 c0 xor %eax,%eax - 4047fc: 80 7a 09 34 cmpb $0x34,0x9(%rdx) - 404800: 0f 85 c4 f4 ff ff jne 403cca <_nl_load_domain+0x58a> - 404806: 80 7a 0a 00 cmpb $0x0,0xa(%rdx) - 40480a: 0f 85 ba f4 ff ff jne 403cca <_nl_load_domain+0x58a> - 404810: 80 f9 64 cmp $0x64,%cl - 404813: 0f 84 a4 02 00 00 je 404abd <_nl_load_domain+0x137d> - 404819: 80 f9 69 cmp $0x69,%cl - 40481c: 0f 84 91 02 00 00 je 404ab3 <_nl_load_domain+0x1373> - 404822: 80 f9 6f cmp $0x6f,%cl - 404825: 0f 84 7e 02 00 00 je 404aa9 <_nl_load_domain+0x1369> - 40482b: 80 f9 75 cmp $0x75,%cl - 40482e: 0f 84 6b 02 00 00 je 404a9f <_nl_load_domain+0x135f> - 404834: 80 f9 78 cmp $0x78,%cl - 404837: 0f 84 58 02 00 00 je 404a95 <_nl_load_domain+0x1355> - 40483d: 80 f9 58 cmp $0x58,%cl - 404840: 0f 85 f1 fc ff ff jne 404537 <_nl_load_domain+0xdf7> - 404846: b8 ca 11 4a 00 mov $0x4a11ca,%eax - 40484b: e9 7a f4 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404850: 80 7a 05 45 cmpb $0x45,0x5(%rdx) - 404854: 0f 85 70 f4 ff ff jne 403cca <_nl_load_domain+0x58a> - 40485a: 80 7a 06 41 cmpb $0x41,0x6(%rdx) - 40485e: 0f 85 66 f4 ff ff jne 403cca <_nl_load_domain+0x58a> - 404864: 80 7a 07 53 cmpb $0x53,0x7(%rdx) - 404868: 0f 85 5c f4 ff ff jne 403cca <_nl_load_domain+0x58a> - 40486e: 80 7a 08 54 cmpb $0x54,0x8(%rdx) - 404872: 0f 85 52 f4 ff ff jne 403cca <_nl_load_domain+0x58a> - 404878: 44 0f b6 6a 09 movzbl 0x9(%rdx),%r13d - 40487d: 41 80 fd 38 cmp $0x38,%r13b - 404881: 0f 84 34 01 00 00 je 4049bb <_nl_load_domain+0x127b> - 404887: 41 80 fd 31 cmp $0x31,%r13b - 40488b: 0f 84 e6 00 00 00 je 404977 <_nl_load_domain+0x1237> - 404891: 41 80 fd 33 cmp $0x33,%r13b - 404895: 0f 84 88 00 00 00 je 404923 <_nl_load_domain+0x11e3> - 40489b: 41 80 fd 36 cmp $0x36,%r13b - 40489f: 0f 85 25 f4 ff ff jne 403cca <_nl_load_domain+0x58a> - 4048a5: 31 c0 xor %eax,%eax - 4048a7: 80 7a 0a 34 cmpb $0x34,0xa(%rdx) - 4048ab: 0f 85 19 f4 ff ff jne 403cca <_nl_load_domain+0x58a> - 4048b1: 80 7a 0b 00 cmpb $0x0,0xb(%rdx) - 4048b5: 0f 85 0f f4 ff ff jne 403cca <_nl_load_domain+0x58a> - 4048bb: 80 f9 64 cmp $0x64,%cl - 4048be: 74 59 je 404919 <_nl_load_domain+0x11d9> - 4048c0: 80 f9 69 cmp $0x69,%cl - 4048c3: 74 4a je 40490f <_nl_load_domain+0x11cf> - 4048c5: 80 f9 6f cmp $0x6f,%cl - 4048c8: 74 3b je 404905 <_nl_load_domain+0x11c5> - 4048ca: 80 f9 75 cmp $0x75,%cl - 4048cd: 74 2c je 4048fb <_nl_load_domain+0x11bb> - 4048cf: 80 f9 78 cmp $0x78,%cl - 4048d2: 74 1d je 4048f1 <_nl_load_domain+0x11b1> - 4048d4: 80 f9 58 cmp $0x58,%cl - 4048d7: 0f 85 5a fc ff ff jne 404537 <_nl_load_domain+0xdf7> - 4048dd: b8 ca 11 4a 00 mov $0x4a11ca,%eax - 4048e2: e9 e3 f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 4048e7: b8 c1 11 4a 00 mov $0x4a11c1,%eax - 4048ec: e9 d9 f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 4048f1: b8 c1 11 4a 00 mov $0x4a11c1,%eax - 4048f6: e9 cf f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 4048fb: b8 c7 11 4a 00 mov $0x4a11c7,%eax - 404900: e9 c5 f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404905: b8 d2 11 4a 00 mov $0x4a11d2,%eax - 40490a: e9 bb f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 40490f: b8 cf 11 4a 00 mov $0x4a11cf,%eax - 404914: e9 b1 f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404919: b8 c4 11 4a 00 mov $0x4a11c4,%eax - 40491e: e9 a7 f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404923: 80 7a 0a 32 cmpb $0x32,0xa(%rdx) - 404927: 0f 85 9d f3 ff ff jne 403cca <_nl_load_domain+0x58a> - 40492d: 80 7a 0b 00 cmpb $0x0,0xb(%rdx) - 404931: 0f 85 57 01 00 00 jne 404a8e <_nl_load_domain+0x134e> - 404937: 80 f9 64 cmp $0x64,%cl - 40493a: 0f 84 44 01 00 00 je 404a84 <_nl_load_domain+0x1344> - 404940: 80 f9 69 cmp $0x69,%cl - 404943: 0f 84 31 01 00 00 je 404a7a <_nl_load_domain+0x133a> - 404949: 80 f9 6f cmp $0x6f,%cl - 40494c: 0f 84 1e 01 00 00 je 404a70 <_nl_load_domain+0x1330> - 404952: 80 f9 75 cmp $0x75,%cl - 404955: 0f 84 0b 01 00 00 je 404a66 <_nl_load_domain+0x1326> - 40495b: 80 f9 78 cmp $0x78,%cl - 40495e: 0f 84 f8 00 00 00 je 404a5c <_nl_load_domain+0x131c> - 404964: 80 f9 58 cmp $0x58,%cl - 404967: 0f 85 ca fb ff ff jne 404537 <_nl_load_domain+0xdf7> - 40496d: b8 a5 5a 4b 00 mov $0x4b5aa5,%eax - 404972: e9 53 f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404977: 80 7a 0a 36 cmpb $0x36,0xa(%rdx) - 40497b: 0f 85 49 f3 ff ff jne 403cca <_nl_load_domain+0x58a> - 404981: 80 7a 0b 00 cmpb $0x0,0xb(%rdx) - 404985: 0f 85 ca 00 00 00 jne 404a55 <_nl_load_domain+0x1315> - 40498b: 80 f9 64 cmp $0x64,%cl - 40498e: 0f 84 b7 00 00 00 je 404a4b <_nl_load_domain+0x130b> - 404994: 80 f9 69 cmp $0x69,%cl - 404997: 74 6c je 404a05 <_nl_load_domain+0x12c5> - 404999: 80 f9 6f cmp $0x6f,%cl - 40499c: 74 5d je 4049fb <_nl_load_domain+0x12bb> - 40499e: 80 f9 75 cmp $0x75,%cl - 4049a1: 74 6c je 404a0f <_nl_load_domain+0x12cf> - 4049a3: 80 f9 78 cmp $0x78,%cl - 4049a6: 74 49 je 4049f1 <_nl_load_domain+0x12b1> - 4049a8: 80 f9 58 cmp $0x58,%cl - 4049ab: 0f 85 86 fb ff ff jne 404537 <_nl_load_domain+0xdf7> - 4049b1: b8 a5 5a 4b 00 mov $0x4b5aa5,%eax - 4049b6: e9 0f f3 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 4049bb: 80 7a 0a 00 cmpb $0x0,0xa(%rdx) - 4049bf: 0f 85 05 f3 ff ff jne 403cca <_nl_load_domain+0x58a> - 4049c5: 80 f9 64 cmp $0x64,%cl - 4049c8: 74 77 je 404a41 <_nl_load_domain+0x1301> - 4049ca: 80 f9 69 cmp $0x69,%cl - 4049cd: 74 68 je 404a37 <_nl_load_domain+0x12f7> - 4049cf: 80 f9 6f cmp $0x6f,%cl - 4049d2: 74 59 je 404a2d <_nl_load_domain+0x12ed> - 4049d4: 80 f9 75 cmp $0x75,%cl - 4049d7: 74 4a je 404a23 <_nl_load_domain+0x12e3> - 4049d9: 80 f9 78 cmp $0x78,%cl - 4049dc: 74 3b je 404a19 <_nl_load_domain+0x12d9> - 4049de: 80 f9 58 cmp $0x58,%cl - 4049e1: 0f 85 50 fb ff ff jne 404537 <_nl_load_domain+0xdf7> - 4049e7: b8 a5 5a 4b 00 mov $0x4b5aa5,%eax - 4049ec: e9 d9 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 4049f1: b8 5a 4a 4a 00 mov $0x4a4a5a,%eax - 4049f6: e9 cf f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 4049fb: b8 34 4a 4a 00 mov $0x4a4a34,%eax - 404a00: e9 c5 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a05: b8 b7 52 4a 00 mov $0x4a52b7,%eax - 404a0a: e9 bb f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a0f: b8 22 66 4b 00 mov $0x4b6622,%eax - 404a14: e9 b1 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a19: b8 5a 4a 4a 00 mov $0x4a4a5a,%eax - 404a1e: e9 a7 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a23: b8 22 66 4b 00 mov $0x4b6622,%eax - 404a28: e9 9d f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a2d: b8 34 4a 4a 00 mov $0x4a4a34,%eax - 404a32: e9 93 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a37: b8 b7 52 4a 00 mov $0x4a52b7,%eax - 404a3c: e9 89 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a41: b8 43 d4 4b 00 mov $0x4bd443,%eax - 404a46: e9 7f f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a4b: b8 43 d4 4b 00 mov $0x4bd443,%eax - 404a50: e9 75 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a55: 31 c0 xor %eax,%eax - 404a57: e9 6e f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a5c: b8 5a 4a 4a 00 mov $0x4a4a5a,%eax - 404a61: e9 64 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a66: b8 22 66 4b 00 mov $0x4b6622,%eax - 404a6b: e9 5a f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a70: b8 34 4a 4a 00 mov $0x4a4a34,%eax - 404a75: e9 50 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a7a: b8 b7 52 4a 00 mov $0x4a52b7,%eax - 404a7f: e9 46 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a84: b8 43 d4 4b 00 mov $0x4bd443,%eax - 404a89: e9 3c f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a8e: 31 c0 xor %eax,%eax - 404a90: e9 35 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a95: b8 c1 11 4a 00 mov $0x4a11c1,%eax - 404a9a: e9 2b f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404a9f: b8 c7 11 4a 00 mov $0x4a11c7,%eax - 404aa4: e9 21 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404aa9: b8 d2 11 4a 00 mov $0x4a11d2,%eax - 404aae: e9 17 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404ab3: b8 cf 11 4a 00 mov $0x4a11cf,%eax - 404ab8: e9 0d f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404abd: b8 c4 11 4a 00 mov $0x4a11c4,%eax - 404ac2: e9 03 f2 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404ac7: 80 7a 09 32 cmpb $0x32,0x9(%rdx) - 404acb: 0f 85 f9 f1 ff ff jne 403cca <_nl_load_domain+0x58a> - 404ad1: 80 7a 0a 00 cmpb $0x0,0xa(%rdx) - 404ad5: 0f 85 57 01 00 00 jne 404c32 <_nl_load_domain+0x14f2> - 404adb: 80 f9 64 cmp $0x64,%cl - 404ade: 0f 84 44 01 00 00 je 404c28 <_nl_load_domain+0x14e8> - 404ae4: 80 f9 69 cmp $0x69,%cl - 404ae7: 0f 84 31 01 00 00 je 404c1e <_nl_load_domain+0x14de> - 404aed: 80 f9 6f cmp $0x6f,%cl - 404af0: 0f 84 1e 01 00 00 je 404c14 <_nl_load_domain+0x14d4> - 404af6: 80 f9 75 cmp $0x75,%cl - 404af9: 0f 84 0b 01 00 00 je 404c0a <_nl_load_domain+0x14ca> - 404aff: 80 f9 78 cmp $0x78,%cl - 404b02: 0f 84 f8 00 00 00 je 404c00 <_nl_load_domain+0x14c0> - 404b08: 80 f9 58 cmp $0x58,%cl - 404b0b: 0f 85 26 fa ff ff jne 404537 <_nl_load_domain+0xdf7> - 404b11: b8 ca 11 4a 00 mov $0x4a11ca,%eax - 404b16: e9 af f1 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404b1b: 80 7a 09 36 cmpb $0x36,0x9(%rdx) - 404b1f: 0f 85 a5 f1 ff ff jne 403cca <_nl_load_domain+0x58a> - 404b25: 80 7a 0a 00 cmpb $0x0,0xa(%rdx) - 404b29: 0f 85 ca 00 00 00 jne 404bf9 <_nl_load_domain+0x14b9> - 404b2f: 80 f9 64 cmp $0x64,%cl - 404b32: 0f 84 b7 00 00 00 je 404bef <_nl_load_domain+0x14af> - 404b38: 80 f9 69 cmp $0x69,%cl - 404b3b: 74 6c je 404ba9 <_nl_load_domain+0x1469> - 404b3d: 80 f9 6f cmp $0x6f,%cl - 404b40: 74 5d je 404b9f <_nl_load_domain+0x145f> - 404b42: 80 f9 75 cmp $0x75,%cl - 404b45: 74 6c je 404bb3 <_nl_load_domain+0x1473> - 404b47: 80 f9 78 cmp $0x78,%cl - 404b4a: 74 49 je 404b95 <_nl_load_domain+0x1455> - 404b4c: 80 f9 58 cmp $0x58,%cl - 404b4f: 0f 85 e2 f9 ff ff jne 404537 <_nl_load_domain+0xdf7> - 404b55: b8 ca 11 4a 00 mov $0x4a11ca,%eax - 404b5a: e9 6b f1 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404b5f: 80 7a 09 00 cmpb $0x0,0x9(%rdx) - 404b63: 0f 85 61 f1 ff ff jne 403cca <_nl_load_domain+0x58a> - 404b69: 80 f9 64 cmp $0x64,%cl - 404b6c: 74 77 je 404be5 <_nl_load_domain+0x14a5> - 404b6e: 80 f9 69 cmp $0x69,%cl - 404b71: 74 68 je 404bdb <_nl_load_domain+0x149b> - 404b73: 80 f9 6f cmp $0x6f,%cl - 404b76: 74 59 je 404bd1 <_nl_load_domain+0x1491> - 404b78: 80 f9 75 cmp $0x75,%cl - 404b7b: 74 4a je 404bc7 <_nl_load_domain+0x1487> - 404b7d: 80 f9 78 cmp $0x78,%cl - 404b80: 74 3b je 404bbd <_nl_load_domain+0x147d> - 404b82: 80 f9 58 cmp $0x58,%cl - 404b85: 0f 85 ac f9 ff ff jne 404537 <_nl_load_domain+0xdf7> - 404b8b: b8 a5 5a 4b 00 mov $0x4b5aa5,%eax - 404b90: e9 35 f1 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404b95: b8 c1 11 4a 00 mov $0x4a11c1,%eax - 404b9a: e9 2b f1 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404b9f: b8 d2 11 4a 00 mov $0x4a11d2,%eax - 404ba4: e9 21 f1 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404ba9: b8 cf 11 4a 00 mov $0x4a11cf,%eax - 404bae: e9 17 f1 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404bb3: b8 c7 11 4a 00 mov $0x4a11c7,%eax - 404bb8: e9 0d f1 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404bbd: b8 5a 4a 4a 00 mov $0x4a4a5a,%eax - 404bc2: e9 03 f1 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404bc7: b8 22 66 4b 00 mov $0x4b6622,%eax - 404bcc: e9 f9 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404bd1: b8 34 4a 4a 00 mov $0x4a4a34,%eax - 404bd6: e9 ef f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404bdb: b8 b7 52 4a 00 mov $0x4a52b7,%eax - 404be0: e9 e5 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404be5: b8 43 d4 4b 00 mov $0x4bd443,%eax - 404bea: e9 db f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404bef: b8 c4 11 4a 00 mov $0x4a11c4,%eax - 404bf4: e9 d1 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404bf9: 31 c0 xor %eax,%eax - 404bfb: e9 ca f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404c00: b8 c1 11 4a 00 mov $0x4a11c1,%eax - 404c05: e9 c0 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404c0a: b8 c7 11 4a 00 mov $0x4a11c7,%eax - 404c0f: e9 b6 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404c14: b8 d2 11 4a 00 mov $0x4a11d2,%eax - 404c19: e9 ac f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404c1e: b8 cf 11 4a 00 mov $0x4a11cf,%eax - 404c23: e9 a2 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404c28: b8 c4 11 4a 00 mov $0x4a11c4,%eax - 404c2d: e9 98 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404c32: 31 c0 xor %eax,%eax - 404c34: e9 91 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404c39: b8 c7 11 4a 00 mov $0x4a11c7,%eax - 404c3e: e9 87 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404c43: b8 d2 11 4a 00 mov $0x4a11d2,%eax - 404c48: e9 7d f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404c4d: b8 cf 11 4a 00 mov $0x4a11cf,%eax - 404c52: e9 73 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404c57: b8 c4 11 4a 00 mov $0x4a11c4,%eax - 404c5c: e9 69 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404c61: b8 c7 11 4a 00 mov $0x4a11c7,%eax - 404c66: e9 5f f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404c6b: b8 d2 11 4a 00 mov $0x4a11d2,%eax - 404c70: e9 55 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404c75: b8 cf 11 4a 00 mov $0x4a11cf,%eax - 404c7a: e9 4b f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404c7f: b8 c4 11 4a 00 mov $0x4a11c4,%eax - 404c84: e9 41 f0 ff ff jmpq 403cca <_nl_load_domain+0x58a> - 404c89: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -0000000000404c90 : - 404c90: 48 8b 36 mov (%rsi),%rsi - 404c93: 48 8b 3f mov (%rdi),%rdi - 404c96: ba 80 26 4b 00 mov $0x4b2680,%edx - 404c9b: e9 a0 b6 ff ff jmpq 400340 <__rela_iplt_end+0x78> - -0000000000404ca0 : - 404ca0: 55 push %rbp - 404ca1: 48 63 d6 movslq %esi,%rdx - 404ca4: 48 89 fe mov %rdi,%rsi - 404ca7: 48 8d 42 2c lea 0x2c(%rdx),%rax - 404cab: 48 89 e5 mov %rsp,%rbp - 404cae: 41 57 push %r15 - 404cb0: 41 56 push %r14 - 404cb2: 41 55 push %r13 - 404cb4: 41 54 push %r12 - 404cb6: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 404cba: 53 push %rbx - 404cbb: 48 81 ec d8 01 00 00 sub $0x1d8,%rsp - 404cc2: 48 29 c4 sub %rax,%rsp - 404cc5: 48 8d 5c 24 0f lea 0xf(%rsp),%rbx - 404cca: 48 83 e3 f0 and $0xfffffffffffffff0,%rbx - 404cce: 48 89 df mov %rbx,%rdi - 404cd1: e8 ea 18 02 00 callq 4265c0 <__mempcpy> - 404cd6: ba 0e 00 00 00 mov $0xe,%edx - 404cdb: be f0 11 4a 00 mov $0x4a11f0,%esi - 404ce0: 48 89 c7 mov %rax,%rdi - 404ce3: e8 d8 18 02 00 callq 4265c0 <__mempcpy> - 404ce8: be d5 11 4a 00 mov $0x4a11d5,%esi - 404ced: 48 89 df mov %rbx,%rdi - 404cf0: e8 bb ac 00 00 callq 40f9b0 <_IO_new_fopen> - 404cf5: 48 85 c0 test %rax,%rax - 404cf8: 0f 84 0d 04 00 00 je 40510b - 404cfe: 49 89 c7 mov %rax,%r15 - 404d01: 8b 00 mov (%rax),%eax - 404d03: 89 c2 mov %eax,%edx - 404d05: 80 ce 80 or $0x80,%dh - 404d08: a8 10 test $0x10,%al - 404d0a: 41 89 17 mov %edx,(%r15) - 404d0d: 0f 85 f0 03 00 00 jne 405103 - 404d13: 48 c7 85 18 fe ff ff movq $0x0,-0x1e8(%rbp) - 404d1a: 00 00 00 00 - 404d1e: 66 90 xchg %ax,%ax - 404d20: 48 8d bd 40 fe ff ff lea -0x1c0(%rbp),%rdi - 404d27: 4c 89 fa mov %r15,%rdx - 404d2a: be 90 01 00 00 mov $0x190,%esi - 404d2f: e8 7c cb 00 00 callq 4118b0 <__fgets_unlocked> - 404d34: 48 85 c0 test %rax,%rax - 404d37: 0f 84 ff 01 00 00 je 404f3c - 404d3d: 48 8d bd 40 fe ff ff lea -0x1c0(%rbp),%rdi - 404d44: be 0a 00 00 00 mov $0xa,%esi - 404d49: e8 32 b6 ff ff callq 400380 <__rela_iplt_end+0xb8> - 404d4e: 49 89 c6 mov %rax,%r14 - 404d51: 48 c7 c0 f0 ff ff ff mov $0xfffffffffffffff0,%rax - 404d58: 0f b6 8d 40 fe ff ff movzbl -0x1c0(%rbp),%ecx - 404d5f: 64 48 8b 00 mov %fs:(%rax),%rax - 404d63: 48 89 ca mov %rcx,%rdx - 404d66: f6 44 48 01 20 testb $0x20,0x1(%rax,%rcx,2) - 404d6b: 48 8d 8d 40 fe ff ff lea -0x1c0(%rbp),%rcx - 404d72: 74 15 je 404d89 - 404d74: 0f 1f 40 00 nopl 0x0(%rax) - 404d78: 48 83 c1 01 add $0x1,%rcx - 404d7c: 0f b6 31 movzbl (%rcx),%esi - 404d7f: f6 44 70 01 20 testb $0x20,0x1(%rax,%rsi,2) - 404d84: 48 89 f2 mov %rsi,%rdx - 404d87: 75 ef jne 404d78 - 404d89: 84 d2 test %dl,%dl - 404d8b: 0f 84 9c 01 00 00 je 404f2d - 404d91: 80 fa 23 cmp $0x23,%dl - 404d94: 0f 84 93 01 00 00 je 404f2d - 404d9a: 0f b6 51 01 movzbl 0x1(%rcx),%edx - 404d9e: 48 8d 59 01 lea 0x1(%rcx),%rbx - 404da2: 84 d2 test %dl,%dl - 404da4: 75 19 jne 404dbf - 404da6: e9 15 02 00 00 jmpq 404fc0 - 404dab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 404db0: 48 83 c3 01 add $0x1,%rbx - 404db4: 0f b6 13 movzbl (%rbx),%edx - 404db7: 84 d2 test %dl,%dl - 404db9: 0f 84 01 02 00 00 je 404fc0 - 404dbf: f6 44 50 01 20 testb $0x20,0x1(%rax,%rdx,2) - 404dc4: 74 ea je 404db0 - 404dc6: 48 89 da mov %rbx,%rdx - 404dc9: 48 83 c3 01 add $0x1,%rbx - 404dcd: 0f b6 72 01 movzbl 0x1(%rdx),%esi - 404dd1: c6 02 00 movb $0x0,(%rdx) - 404dd4: f6 44 70 01 20 testb $0x20,0x1(%rax,%rsi,2) - 404dd9: 48 89 f2 mov %rsi,%rdx - 404ddc: 74 13 je 404df1 - 404dde: 66 90 xchg %ax,%ax - 404de0: 48 83 c3 01 add $0x1,%rbx - 404de4: 0f b6 33 movzbl (%rbx),%esi - 404de7: f6 44 70 01 20 testb $0x20,0x1(%rax,%rsi,2) - 404dec: 48 89 f2 mov %rsi,%rdx - 404def: 75 ef jne 404de0 - 404df1: 84 d2 test %dl,%dl - 404df3: 0f 84 34 01 00 00 je 404f2d - 404df9: 0f b6 53 01 movzbl 0x1(%rbx),%edx - 404dfd: 48 8d 73 01 lea 0x1(%rbx),%rsi - 404e01: 84 d2 test %dl,%dl - 404e03: 75 16 jne 404e1b - 404e05: eb 2e jmp 404e35 - 404e07: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 404e0e: 00 00 - 404e10: 48 83 c6 01 add $0x1,%rsi - 404e14: 0f b6 16 movzbl (%rsi),%edx - 404e17: 84 d2 test %dl,%dl - 404e19: 74 1a je 404e35 - 404e1b: 0f b6 fa movzbl %dl,%edi - 404e1e: f6 44 78 01 20 testb $0x20,0x1(%rax,%rdi,2) - 404e23: 74 eb je 404e10 - 404e25: 80 fa 0a cmp $0xa,%dl - 404e28: 0f 85 7d 02 00 00 jne 4050ab - 404e2e: c6 06 00 movb $0x0,(%rsi) - 404e31: c6 46 01 0a movb $0xa,0x1(%rsi) - 404e35: 4c 8b 25 c4 72 2c 00 mov 0x2c72c4(%rip),%r12 # 6cc100 - 404e3c: 48 8b 35 b5 72 2c 00 mov 0x2c72b5(%rip),%rsi # 6cc0f8 - 404e43: 49 39 f4 cmp %rsi,%r12 - 404e46: 0f 83 67 02 00 00 jae 4050b3 - 404e4c: 48 89 cf mov %rcx,%rdi - 404e4f: 48 89 8d 28 fe ff ff mov %rcx,-0x1d8(%rbp) - 404e56: e8 f5 e7 01 00 callq 423650 - 404e5b: 48 8d 50 01 lea 0x1(%rax),%rdx - 404e5f: 48 89 df mov %rbx,%rdi - 404e62: 48 89 95 38 fe ff ff mov %rdx,-0x1c8(%rbp) - 404e69: e8 e2 e7 01 00 callq 423650 - 404e6e: 48 8b 95 38 fe ff ff mov -0x1c8(%rbp),%rdx - 404e75: 4c 8b 1d 94 72 2c 00 mov 0x2c7294(%rip),%r11 # 6cc110 - 404e7c: 4c 8d 50 01 lea 0x1(%rax),%r10 - 404e80: 48 8b 8d 28 fe ff ff mov -0x1d8(%rbp),%rcx - 404e87: 4a 8d 04 1a lea (%rdx,%r11,1),%rax - 404e8b: 48 89 85 38 fe ff ff mov %rax,-0x1c8(%rbp) - 404e92: 4c 01 d0 add %r10,%rax - 404e95: 48 89 c7 mov %rax,%rdi - 404e98: 48 89 85 30 fe ff ff mov %rax,-0x1d0(%rbp) - 404e9f: 48 8b 05 62 72 2c 00 mov 0x2c7262(%rip),%rax # 6cc108 - 404ea6: 48 39 c7 cmp %rax,%rdi - 404ea9: 0f 87 21 01 00 00 ja 404fd0 - 404eaf: 4c 8b 0d 2a 85 2c 00 mov 0x2c852a(%rip),%r9 # 6cd3e0 - 404eb6: 48 8b 3d 1b 85 2c 00 mov 0x2c851b(%rip),%rdi # 6cd3d8 - 404ebd: 4d 89 e5 mov %r12,%r13 - 404ec0: 48 89 ce mov %rcx,%rsi - 404ec3: 4c 89 95 20 fe ff ff mov %r10,-0x1e0(%rbp) - 404eca: 49 c1 e5 04 shl $0x4,%r13 - 404ece: 4c 89 8d 28 fe ff ff mov %r9,-0x1d8(%rbp) - 404ed5: 49 83 c4 01 add $0x1,%r12 - 404ed9: 49 01 fd add %rdi,%r13 - 404edc: 4b 8d 3c 19 lea (%r9,%r11,1),%rdi - 404ee0: e8 3b 71 02 00 callq 42c020 - 404ee5: 48 8b bd 38 fe ff ff mov -0x1c8(%rbp),%rdi - 404eec: 4c 8b 8d 28 fe ff ff mov -0x1d8(%rbp),%r9 - 404ef3: 48 89 de mov %rbx,%rsi - 404ef6: 4c 8b 95 20 fe ff ff mov -0x1e0(%rbp),%r10 - 404efd: 49 89 45 00 mov %rax,0x0(%r13) - 404f01: 4c 01 cf add %r9,%rdi - 404f04: 4c 89 d2 mov %r10,%rdx - 404f07: e8 14 71 02 00 callq 42c020 - 404f0c: 48 83 85 18 fe ff ff addq $0x1,-0x1e8(%rbp) - 404f13: 01 - 404f14: 49 89 45 08 mov %rax,0x8(%r13) - 404f18: 48 8b 85 30 fe ff ff mov -0x1d0(%rbp),%rax - 404f1f: 4c 89 25 da 71 2c 00 mov %r12,0x2c71da(%rip) # 6cc100 - 404f26: 48 89 05 e3 71 2c 00 mov %rax,0x2c71e3(%rip) # 6cc110 - 404f2d: 4d 85 f6 test %r14,%r14 - 404f30: 74 6c je 404f9e - 404f32: 41 f6 07 10 testb $0x10,(%r15) - 404f36: 0f 84 e4 fd ff ff je 404d20 - 404f3c: 4c 89 ff mov %r15,%rdi - 404f3f: e8 9c a5 00 00 callq 40f4e0 <_IO_new_fclose> - 404f44: 31 c0 xor %eax,%eax - 404f46: 48 83 bd 18 fe ff ff cmpq $0x0,-0x1e8(%rbp) - 404f4d: 00 - 404f4e: 74 24 je 404f74 - 404f50: 48 8b 35 a9 71 2c 00 mov 0x2c71a9(%rip),%rsi # 6cc100 - 404f57: 48 8b 3d 7a 84 2c 00 mov 0x2c847a(%rip),%rdi # 6cd3d8 - 404f5e: b9 90 4c 40 00 mov $0x404c90,%ecx - 404f63: ba 10 00 00 00 mov $0x10,%edx - 404f68: e8 63 98 00 00 callq 40e7d0 - 404f6d: 48 8b 85 18 fe ff ff mov -0x1e8(%rbp),%rax - 404f74: 48 8d 65 d8 lea -0x28(%rbp),%rsp - 404f78: 5b pop %rbx - 404f79: 41 5c pop %r12 - 404f7b: 41 5d pop %r13 - 404f7d: 41 5e pop %r14 - 404f7f: 41 5f pop %r15 - 404f81: 5d pop %rbp - 404f82: c3 retq - 404f83: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 404f88: 48 8d bd 40 fe ff ff lea -0x1c0(%rbp),%rdi - 404f8f: be 0a 00 00 00 mov $0xa,%esi - 404f94: e8 e7 b3 ff ff callq 400380 <__rela_iplt_end+0xb8> - 404f99: 48 85 c0 test %rax,%rax - 404f9c: 75 94 jne 404f32 - 404f9e: 48 8d bd 40 fe ff ff lea -0x1c0(%rbp),%rdi - 404fa5: 4c 89 fa mov %r15,%rdx - 404fa8: be 90 01 00 00 mov $0x190,%esi - 404fad: e8 fe c8 00 00 callq 4118b0 <__fgets_unlocked> - 404fb2: 48 85 c0 test %rax,%rax - 404fb5: 75 d1 jne 404f88 - 404fb7: e9 76 ff ff ff jmpq 404f32 - 404fbc: 0f 1f 40 00 nopl 0x0(%rax) - 404fc0: 66 f7 00 00 20 testw $0x2000,(%rax) - 404fc5: 0f 85 15 fe ff ff jne 404de0 - 404fcb: e9 5d ff ff ff jmpq 404f2d - 404fd0: 4a 8d 34 12 lea (%rdx,%r10,1),%rsi - 404fd4: bf 00 04 00 00 mov $0x400,%edi - 404fd9: 4c 8b 2d 00 84 2c 00 mov 0x2c8400(%rip),%r13 # 6cd3e0 - 404fe0: 4c 89 9d 00 fe ff ff mov %r11,-0x200(%rbp) - 404fe7: 48 89 8d 08 fe ff ff mov %rcx,-0x1f8(%rbp) - 404fee: 48 81 fe 00 04 00 00 cmp $0x400,%rsi - 404ff5: 4c 89 95 10 fe ff ff mov %r10,-0x1f0(%rbp) - 404ffc: 48 89 95 20 fe ff ff mov %rdx,-0x1e0(%rbp) - 405003: 48 0f 42 f7 cmovb %rdi,%rsi - 405007: 4c 89 ef mov %r13,%rdi - 40500a: 4c 8d 04 06 lea (%rsi,%rax,1),%r8 - 40500e: 4c 89 c6 mov %r8,%rsi - 405011: 4c 89 85 28 fe ff ff mov %r8,-0x1d8(%rbp) - 405018: e8 53 8f 01 00 callq 41df70 <__libc_realloc> - 40501d: 48 85 c0 test %rax,%rax - 405020: 0f 84 16 ff ff ff je 404f3c - 405026: 49 39 c5 cmp %rax,%r13 - 405029: 48 8b 3d a8 83 2c 00 mov 0x2c83a8(%rip),%rdi # 6cd3d8 - 405030: 4c 8b 85 28 fe ff ff mov -0x1d8(%rbp),%r8 - 405037: 48 8b 95 20 fe ff ff mov -0x1e0(%rbp),%rdx - 40503e: 4c 8b 95 10 fe ff ff mov -0x1f0(%rbp),%r10 - 405045: 48 8b 8d 08 fe ff ff mov -0x1f8(%rbp),%rcx - 40504c: 4c 8b 9d 00 fe ff ff mov -0x200(%rbp),%r11 - 405053: 74 40 je 405095 - 405055: 4d 85 e4 test %r12,%r12 - 405058: 74 3b je 405095 - 40505a: 48 89 c6 mov %rax,%rsi - 40505d: 4d 89 e1 mov %r12,%r9 - 405060: 4c 29 ee sub %r13,%rsi - 405063: 49 c1 e1 04 shl $0x4,%r9 - 405067: 48 89 b5 28 fe ff ff mov %rsi,-0x1d8(%rbp) - 40506e: 49 01 f9 add %rdi,%r9 - 405071: 48 89 fe mov %rdi,%rsi - 405074: f3 0f 7e 8d 28 fe ff movq -0x1d8(%rbp),%xmm1 - 40507b: ff - 40507c: 66 0f 6c c9 punpcklqdq %xmm1,%xmm1 - 405080: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 405084: 48 83 c6 10 add $0x10,%rsi - 405088: 66 0f d4 c1 paddq %xmm1,%xmm0 - 40508c: 0f 11 46 f0 movups %xmm0,-0x10(%rsi) - 405090: 4c 39 ce cmp %r9,%rsi - 405093: 75 eb jne 405080 - 405095: 48 89 05 44 83 2c 00 mov %rax,0x2c8344(%rip) # 6cd3e0 - 40509c: 4c 89 05 65 70 2c 00 mov %r8,0x2c7065(%rip) # 6cc108 - 4050a3: 49 89 c1 mov %rax,%r9 - 4050a6: e9 12 fe ff ff jmpq 404ebd - 4050ab: c6 06 00 movb $0x0,(%rsi) - 4050ae: e9 82 fd ff ff jmpq 404e35 - 4050b3: 48 85 f6 test %rsi,%rsi - 4050b6: 74 3e je 4050f6 - 4050b8: 4c 8d 2c 36 lea (%rsi,%rsi,1),%r13 - 4050bc: 48 c1 e6 05 shl $0x5,%rsi - 4050c0: 48 8b 3d 11 83 2c 00 mov 0x2c8311(%rip),%rdi # 6cd3d8 - 4050c7: 48 89 8d 38 fe ff ff mov %rcx,-0x1c8(%rbp) - 4050ce: e8 9d 8e 01 00 callq 41df70 <__libc_realloc> - 4050d3: 48 85 c0 test %rax,%rax - 4050d6: 0f 84 60 fe ff ff je 404f3c - 4050dc: 48 89 05 f5 82 2c 00 mov %rax,0x2c82f5(%rip) # 6cd3d8 - 4050e3: 4c 89 2d 0e 70 2c 00 mov %r13,0x2c700e(%rip) # 6cc0f8 - 4050ea: 48 8b 8d 38 fe ff ff mov -0x1c8(%rbp),%rcx - 4050f1: e9 56 fd ff ff jmpq 404e4c - 4050f6: be 40 06 00 00 mov $0x640,%esi - 4050fb: 41 bd 64 00 00 00 mov $0x64,%r13d - 405101: eb bd jmp 4050c0 - 405103: 4c 89 ff mov %r15,%rdi - 405106: e8 d5 a3 00 00 callq 40f4e0 <_IO_new_fclose> - 40510b: 48 8d 65 d8 lea -0x28(%rbp),%rsp - 40510f: 31 c0 xor %eax,%eax - 405111: 5b pop %rbx - 405112: 41 5c pop %r12 - 405114: 41 5d pop %r13 - 405116: 41 5e pop %r14 - 405118: 41 5f pop %r15 - 40511a: 5d pop %rbp - 40511b: c3 retq - 40511c: 0f 1f 40 00 nopl 0x0(%rax) - -0000000000405120 <_nl_expand_alias>: - 405120: 41 57 push %r15 - 405122: 41 56 push %r14 - 405124: be 01 00 00 00 mov $0x1,%esi - 405129: 41 55 push %r13 - 40512b: 41 54 push %r12 - 40512d: 31 c0 xor %eax,%eax - 40512f: 55 push %rbp - 405130: 53 push %rbx - 405131: 48 89 fb mov %rdi,%rbx - 405134: 48 83 ec 08 sub $0x8,%rsp - 405138: 83 3d 7d 80 2c 00 00 cmpl $0x0,0x2c807d(%rip) # 6cd1bc <__libc_multiple_threads> - 40513f: 74 0c je 40514d <_nl_expand_alias+0x2d> - 405141: f0 0f b1 35 cf 6f 2c lock cmpxchg %esi,0x2c6fcf(%rip) # 6cc118 - 405148: 00 - 405149: 75 0b jne 405156 <_nl_expand_alias+0x36> - 40514b: eb 23 jmp 405170 <_nl_expand_alias+0x50> - 40514d: 0f b1 35 c4 6f 2c 00 cmpxchg %esi,0x2c6fc4(%rip) # 6cc118 - 405154: 74 1a je 405170 <_nl_expand_alias+0x50> - 405156: 48 8d 3d bb 6f 2c 00 lea 0x2c6fbb(%rip),%rdi # 6cc118 - 40515d: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 405164: e8 67 d4 03 00 callq 4425d0 <__lll_lock_wait_private> - 405169: 48 81 c4 80 00 00 00 add $0x80,%rsp - 405170: 48 83 3d 78 6f 2c 00 cmpq $0x0,0x2c6f78(%rip) # 6cc0f0 - 405177: 00 - 405178: 0f 84 51 01 00 00 je 4052cf <_nl_expand_alias+0x1af> - 40517e: 4c 8b 3d 7b 6f 2c 00 mov 0x2c6f7b(%rip),%r15 # 6cc100 - 405185: 4d 85 ff test %r15,%r15 - 405188: 74 54 je 4051de <_nl_expand_alias+0xbe> - 40518a: 4c 8b 35 47 82 2c 00 mov 0x2c8247(%rip),%r14 # 6cd3d8 - 405191: 45 31 ed xor %r13d,%r13d - 405194: eb 19 jmp 4051af <_nl_expand_alias+0x8f> - 405196: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40519d: 00 00 00 - 4051a0: 0f 84 22 01 00 00 je 4052c8 <_nl_expand_alias+0x1a8> - 4051a6: 4c 8d 6d 01 lea 0x1(%rbp),%r13 - 4051aa: 4d 39 ef cmp %r13,%r15 - 4051ad: 76 2f jbe 4051de <_nl_expand_alias+0xbe> - 4051af: 4b 8d 6c 3d 00 lea 0x0(%r13,%r15,1),%rbp - 4051b4: ba 80 26 4b 00 mov $0x4b2680,%edx - 4051b9: 48 89 df mov %rbx,%rdi - 4051bc: 48 d1 ed shr %rbp - 4051bf: 49 89 ec mov %rbp,%r12 - 4051c2: 49 c1 e4 04 shl $0x4,%r12 - 4051c6: 4d 01 f4 add %r14,%r12 - 4051c9: 49 8b 34 24 mov (%r12),%rsi - 4051cd: e8 6e b1 ff ff callq 400340 <__rela_iplt_end+0x78> - 4051d2: 85 c0 test %eax,%eax - 4051d4: 79 ca jns 4051a0 <_nl_expand_alias+0x80> - 4051d6: 49 89 ef mov %rbp,%r15 - 4051d9: 4d 39 ef cmp %r13,%r15 - 4051dc: 77 d1 ja 4051af <_nl_expand_alias+0x8f> - 4051de: 48 8b 0d 0b 6f 2c 00 mov 0x2c6f0b(%rip),%rcx # 6cc0f0 - 4051e5: 0f b6 01 movzbl (%rcx),%eax - 4051e8: 84 c0 test %al,%al - 4051ea: 74 69 je 405255 <_nl_expand_alias+0x135> - 4051ec: 48 89 cf mov %rcx,%rdi - 4051ef: 31 f6 xor %esi,%esi - 4051f1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4051f8: 3c 3a cmp $0x3a,%al - 4051fa: 48 8d 51 01 lea 0x1(%rcx),%rdx - 4051fe: 75 17 jne 405217 <_nl_expand_alias+0xf7> - 405200: 48 89 d7 mov %rdx,%rdi - 405203: 48 8d 52 01 lea 0x1(%rdx),%rdx - 405207: 0f b6 42 ff movzbl -0x1(%rdx),%eax - 40520b: 3c 3a cmp $0x3a,%al - 40520d: 74 f1 je 405200 <_nl_expand_alias+0xe0> - 40520f: 48 89 f9 mov %rdi,%rcx - 405212: be 01 00 00 00 mov $0x1,%esi - 405217: 84 c0 test %al,%al - 405219: 0f 84 9d 00 00 00 je 4052bc <_nl_expand_alias+0x19c> - 40521f: 48 8d 77 01 lea 0x1(%rdi),%rsi - 405223: eb 0a jmp 40522f <_nl_expand_alias+0x10f> - 405225: 0f 1f 00 nopl (%rax) - 405228: 3c 3a cmp $0x3a,%al - 40522a: 74 11 je 40523d <_nl_expand_alias+0x11d> - 40522c: 48 89 d6 mov %rdx,%rsi - 40522f: 0f b6 06 movzbl (%rsi),%eax - 405232: 48 89 f1 mov %rsi,%rcx - 405235: 48 8d 56 01 lea 0x1(%rsi),%rdx - 405239: 84 c0 test %al,%al - 40523b: 75 eb jne 405228 <_nl_expand_alias+0x108> - 40523d: 48 39 fe cmp %rdi,%rsi - 405240: 77 5d ja 40529f <_nl_expand_alias+0x17f> - 405242: 84 c0 test %al,%al - 405244: 48 89 f7 mov %rsi,%rdi - 405247: be 01 00 00 00 mov $0x1,%esi - 40524c: 75 aa jne 4051f8 <_nl_expand_alias+0xd8> - 40524e: 48 89 0d 9b 6e 2c 00 mov %rcx,0x2c6e9b(%rip) # 6cc0f0 - 405255: 31 d2 xor %edx,%edx - 405257: 83 3d 5e 7f 2c 00 00 cmpl $0x0,0x2c7f5e(%rip) # 6cd1bc <__libc_multiple_threads> - 40525e: 74 0b je 40526b <_nl_expand_alias+0x14b> - 405260: f0 ff 0d b1 6e 2c 00 lock decl 0x2c6eb1(%rip) # 6cc118 - 405267: 75 0a jne 405273 <_nl_expand_alias+0x153> - 405269: eb 22 jmp 40528d <_nl_expand_alias+0x16d> - 40526b: ff 0d a7 6e 2c 00 decl 0x2c6ea7(%rip) # 6cc118 - 405271: 74 1a je 40528d <_nl_expand_alias+0x16d> - 405273: 48 8d 3d 9e 6e 2c 00 lea 0x2c6e9e(%rip),%rdi # 6cc118 - 40527a: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 405281: e8 7a d3 03 00 callq 442600 <__lll_unlock_wake_private> - 405286: 48 81 c4 80 00 00 00 add $0x80,%rsp - 40528d: 48 83 c4 08 add $0x8,%rsp - 405291: 48 89 d0 mov %rdx,%rax - 405294: 5b pop %rbx - 405295: 5d pop %rbp - 405296: 41 5c pop %r12 - 405298: 41 5d pop %r13 - 40529a: 41 5e pop %r14 - 40529c: 41 5f pop %r15 - 40529e: c3 retq - 40529f: 48 89 35 4a 6e 2c 00 mov %rsi,0x2c6e4a(%rip) # 6cc0f0 - 4052a6: 48 29 fe sub %rdi,%rsi - 4052a9: e8 f2 f9 ff ff callq 404ca0 - 4052ae: 48 85 c0 test %rax,%rax - 4052b1: 0f 84 27 ff ff ff je 4051de <_nl_expand_alias+0xbe> - 4052b7: e9 c2 fe ff ff jmpq 40517e <_nl_expand_alias+0x5e> - 4052bc: 40 84 f6 test %sil,%sil - 4052bf: 74 94 je 405255 <_nl_expand_alias+0x135> - 4052c1: eb 8b jmp 40524e <_nl_expand_alias+0x12e> - 4052c3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4052c8: 49 8b 54 24 08 mov 0x8(%r12),%rdx - 4052cd: eb 88 jmp 405257 <_nl_expand_alias+0x137> - 4052cf: 48 c7 05 16 6e 2c 00 movq $0x4a11d9,0x2c6e16(%rip) # 6cc0f0 - 4052d6: d9 11 4a 00 - 4052da: e9 9f fe ff ff jmpq 40517e <_nl_expand_alias+0x5e> - 4052df: 90 nop - -00000000004052e0 <_nl_make_l10nflist>: - 4052e0: 41 57 push %r15 - 4052e2: 41 56 push %r14 - 4052e4: 4d 89 ce mov %r9,%r14 - 4052e7: 41 55 push %r13 - 4052e9: 41 54 push %r12 - 4052eb: 41 89 cc mov %ecx,%r12d - 4052ee: 55 push %rbp - 4052ef: 53 push %rbx - 4052f0: 48 89 d3 mov %rdx,%rbx - 4052f3: 48 83 c3 02 add $0x2,%rbx - 4052f7: 48 83 ec 48 sub $0x48,%rsp - 4052fb: 48 89 7c 24 08 mov %rdi,0x8(%rsp) - 405300: 4c 89 c7 mov %r8,%rdi - 405303: 48 89 74 24 28 mov %rsi,0x28(%rsp) - 405308: 48 89 54 24 18 mov %rdx,0x18(%rsp) - 40530d: 89 4c 24 34 mov %ecx,0x34(%rsp) - 405311: 4c 89 04 24 mov %r8,(%rsp) - 405315: 4c 89 4c 24 10 mov %r9,0x10(%rsp) - 40531a: e8 31 e3 01 00 callq 423650 - 40531f: 41 83 e4 04 and $0x4,%r12d - 405323: 4c 8b bc 24 98 00 00 mov 0x98(%rsp),%r15 - 40532a: 00 - 40532b: 49 89 c5 mov %rax,%r13 - 40532e: 0f 84 5c 04 00 00 je 405790 <_nl_make_l10nflist+0x4b0> - 405334: 4c 89 f7 mov %r14,%rdi - 405337: e8 14 e3 01 00 callq 423650 - 40533c: 48 8d 68 01 lea 0x1(%rax),%rbp - 405340: 8b 44 24 34 mov 0x34(%rsp),%eax - 405344: 49 01 dd add %rbx,%r13 - 405347: 45 31 f6 xor %r14d,%r14d - 40534a: 83 e0 02 and $0x2,%eax - 40534d: 89 44 24 20 mov %eax,0x20(%rsp) - 405351: 74 11 je 405364 <_nl_make_l10nflist+0x84> - 405353: 48 8b bc 24 80 00 00 mov 0x80(%rsp),%rdi - 40535a: 00 - 40535b: e8 f0 e2 01 00 callq 423650 - 405360: 4c 8d 70 01 lea 0x1(%rax),%r14 - 405364: 8b 44 24 34 mov 0x34(%rsp),%eax - 405368: 4c 01 ed add %r13,%rbp - 40536b: 31 db xor %ebx,%ebx - 40536d: 83 e0 01 and $0x1,%eax - 405370: 89 44 24 38 mov %eax,0x38(%rsp) - 405374: 74 11 je 405387 <_nl_make_l10nflist+0xa7> - 405376: 48 8b bc 24 88 00 00 mov 0x88(%rsp),%rdi - 40537d: 00 - 40537e: e8 cd e2 01 00 callq 423650 - 405383: 48 8d 58 01 lea 0x1(%rax),%rbx - 405387: 8b 44 24 34 mov 0x34(%rsp),%eax - 40538b: 4c 01 f5 add %r14,%rbp - 40538e: 45 31 ed xor %r13d,%r13d - 405391: 83 e0 08 and $0x8,%eax - 405394: 89 44 24 3c mov %eax,0x3c(%rsp) - 405398: 74 11 je 4053ab <_nl_make_l10nflist+0xcb> - 40539a: 48 8b bc 24 90 00 00 mov 0x90(%rsp),%rdi - 4053a1: 00 - 4053a2: e8 a9 e2 01 00 callq 423650 - 4053a7: 4c 8d 68 01 lea 0x1(%rax),%r13 - 4053ab: 4c 89 ff mov %r15,%rdi - 4053ae: e8 9d e2 01 00 callq 423650 - 4053b3: 48 8d 3c 2b lea (%rbx,%rbp,1),%rdi - 4053b7: 49 89 c6 mov %rax,%r14 - 4053ba: 4c 01 ef add %r13,%rdi - 4053bd: 48 01 c7 add %rax,%rdi - 4053c0: e8 4b 86 01 00 callq 41da10 <__libc_malloc> - 4053c5: 48 85 c0 test %rax,%rax - 4053c8: 49 89 c5 mov %rax,%r13 - 4053cb: 0f 84 a3 04 00 00 je 405874 <_nl_make_l10nflist+0x594> - 4053d1: 48 8b 5c 24 18 mov 0x18(%rsp),%rbx - 4053d6: 48 8b 74 24 28 mov 0x28(%rsp),%rsi - 4053db: 48 89 c7 mov %rax,%rdi - 4053de: 48 89 da mov %rbx,%rdx - 4053e1: e8 3a 6c 02 00 callq 42c020 - 4053e6: 48 85 db test %rbx,%rbx - 4053e9: 74 25 je 405410 <_nl_make_l10nflist+0x130> - 4053eb: 4c 89 ed mov %r13,%rbp - 4053ee: 66 90 xchg %ax,%ax - 4053f0: 48 89 ef mov %rbp,%rdi - 4053f3: e8 58 e2 01 00 callq 423650 - 4053f8: 48 29 c3 sub %rax,%rbx - 4053fb: 48 83 eb 01 sub $0x1,%rbx - 4053ff: 74 0f je 405410 <_nl_make_l10nflist+0x130> - 405401: 48 01 e8 add %rbp,%rax - 405404: 48 8d 68 01 lea 0x1(%rax),%rbp - 405408: c6 00 3a movb $0x3a,(%rax) - 40540b: eb e3 jmp 4053f0 <_nl_make_l10nflist+0x110> - 40540d: 0f 1f 00 nopl (%rax) - 405410: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 405415: 48 8b 34 24 mov (%rsp),%rsi - 405419: 49 8d 7c 05 00 lea 0x0(%r13,%rax,1),%rdi - 40541e: 41 c6 44 05 ff 2f movb $0x2f,-0x1(%r13,%rax,1) - 405424: e8 e7 ae ff ff callq 400310 <__rela_iplt_end+0x48> - 405429: 45 85 e4 test %r12d,%r12d - 40542c: 0f 85 ce 03 00 00 jne 405800 <_nl_make_l10nflist+0x520> - 405432: 8b 74 24 20 mov 0x20(%rsp),%esi - 405436: 85 f6 test %esi,%esi - 405438: 0f 85 a0 03 00 00 jne 4057de <_nl_make_l10nflist+0x4fe> - 40543e: 8b 4c 24 38 mov 0x38(%rsp),%ecx - 405442: 85 c9 test %ecx,%ecx - 405444: 0f 85 7b 03 00 00 jne 4057c5 <_nl_make_l10nflist+0x4e5> - 40544a: 8b 54 24 3c mov 0x3c(%rsp),%edx - 40544e: 85 d2 test %edx,%edx - 405450: 0f 85 56 03 00 00 jne 4057ac <_nl_make_l10nflist+0x4cc> - 405456: 48 8d 78 01 lea 0x1(%rax),%rdi - 40545a: 49 8d 56 01 lea 0x1(%r14),%rdx - 40545e: c6 00 2f movb $0x2f,(%rax) - 405461: 4c 89 fe mov %r15,%rsi - 405464: e8 b7 6b 02 00 callq 42c020 - 405469: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40546e: 48 8b 00 mov (%rax),%rax - 405471: 48 85 c0 test %rax,%rax - 405474: 48 89 44 24 20 mov %rax,0x20(%rsp) - 405479: 0f 84 fc 03 00 00 je 40587b <_nl_make_l10nflist+0x59b> - 40547f: 49 89 c4 mov %rax,%r12 - 405482: 31 ed xor %ebp,%ebp - 405484: 0f 1f 40 00 nopl 0x0(%rax) - 405488: 49 8b 3c 24 mov (%r12),%rdi - 40548c: 48 85 ff test %rdi,%rdi - 40548f: 74 15 je 4054a6 <_nl_make_l10nflist+0x1c6> - 405491: 4c 89 ee mov %r13,%rsi - 405494: e8 c7 ae ff ff callq 400360 <__rela_iplt_end+0x98> - 405499: 85 c0 test %eax,%eax - 40549b: 0f 84 78 03 00 00 je 405819 <_nl_make_l10nflist+0x539> - 4054a1: 78 0d js 4054b0 <_nl_make_l10nflist+0x1d0> - 4054a3: 4c 89 e5 mov %r12,%rbp - 4054a6: 4d 8b 64 24 18 mov 0x18(%r12),%r12 - 4054ab: 4d 85 e4 test %r12,%r12 - 4054ae: 75 d8 jne 405488 <_nl_make_l10nflist+0x1a8> - 4054b0: 8b 84 24 a0 00 00 00 mov 0xa0(%rsp),%eax - 4054b7: 85 c0 test %eax,%eax - 4054b9: 0f 84 57 03 00 00 je 405816 <_nl_make_l10nflist+0x536> - 4054bf: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 4054c4: 45 31 e4 xor %r12d,%r12d - 4054c7: 4c 8b 74 24 28 mov 0x28(%rsp),%r14 - 4054cc: 48 85 c0 test %rax,%rax - 4054cf: 48 89 c3 mov %rax,%rbx - 4054d2: 0f 84 7c 03 00 00 je 405854 <_nl_make_l10nflist+0x574> - 4054d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4054df: 00 - 4054e0: 4c 89 f7 mov %r14,%rdi - 4054e3: 49 83 c4 01 add $0x1,%r12 - 4054e7: e8 64 e1 01 00 callq 423650 - 4054ec: 48 29 c3 sub %rax,%rbx - 4054ef: 4d 8d 74 06 01 lea 0x1(%r14,%rax,1),%r14 - 4054f4: 48 83 eb 01 sub $0x1,%rbx - 4054f8: 75 e6 jne 4054e0 <_nl_make_l10nflist+0x200> - 4054fa: 8b 44 24 34 mov 0x34(%rsp),%eax - 4054fe: 89 c2 mov %eax,%edx - 405500: 25 55 55 00 00 and $0x5555,%eax - 405505: 81 e2 aa aa ff ff and $0xffffaaaa,%edx - 40550b: d1 fa sar %edx - 40550d: 01 c2 add %eax,%edx - 40550f: 89 d0 mov %edx,%eax - 405511: 81 e2 33 33 00 00 and $0x3333,%edx - 405517: 25 cc cc ff ff and $0xffffcccc,%eax - 40551c: c1 f8 02 sar $0x2,%eax - 40551f: 01 d0 add %edx,%eax - 405521: 89 c2 mov %eax,%edx - 405523: c1 fa 04 sar $0x4,%edx - 405526: 01 d0 add %edx,%eax - 405528: 25 0f 0f 00 00 and $0xf0f,%eax - 40552d: 89 c1 mov %eax,%ecx - 40552f: c1 f9 08 sar $0x8,%ecx - 405532: 01 c1 add %eax,%ecx - 405534: b8 01 00 00 00 mov $0x1,%eax - 405539: d3 e0 shl %cl,%eax - 40553b: 48 63 f8 movslq %eax,%rdi - 40553e: 48 c1 e7 04 shl $0x4,%rdi - 405542: 4c 0f af e7 imul %rdi,%r12 - 405546: 49 8d 7c 24 28 lea 0x28(%r12),%rdi - 40554b: e8 c0 84 01 00 callq 41da10 <__libc_malloc> - 405550: 48 85 c0 test %rax,%rax - 405553: 49 89 c4 mov %rax,%r12 - 405556: 0f 84 26 03 00 00 je 405882 <_nl_make_l10nflist+0x5a2> - 40555c: 48 8b 5c 24 18 mov 0x18(%rsp),%rbx - 405561: 4c 8b 74 24 28 mov 0x28(%rsp),%r14 - 405566: 4c 89 28 mov %r13,(%rax) - 405569: 45 31 ed xor %r13d,%r13d - 40556c: 0f 1f 40 00 nopl 0x0(%rax) - 405570: 4c 89 f7 mov %r14,%rdi - 405573: 49 83 c5 01 add $0x1,%r13 - 405577: e8 d4 e0 01 00 callq 423650 - 40557c: 48 29 c3 sub %rax,%rbx - 40557f: 4d 8d 74 06 01 lea 0x1(%r14,%rax,1),%r14 - 405584: 48 83 eb 01 sub $0x1,%rbx - 405588: 75 e6 jne 405570 <_nl_make_l10nflist+0x290> - 40558a: 49 83 fd 01 cmp $0x1,%r13 - 40558e: b8 01 00 00 00 mov $0x1,%eax - 405593: 0f 84 fe 01 00 00 je 405797 <_nl_make_l10nflist+0x4b7> - 405599: 48 85 ed test %rbp,%rbp - 40559c: 41 89 44 24 08 mov %eax,0x8(%r12) - 4055a1: 49 c7 44 24 10 00 00 movq $0x0,0x10(%r12) - 4055a8: 00 00 - 4055aa: 0f 84 83 02 00 00 je 405833 <_nl_make_l10nflist+0x553> - 4055b0: 48 8b 45 18 mov 0x18(%rbp),%rax - 4055b4: 49 89 44 24 18 mov %rax,0x18(%r12) - 4055b9: 4c 89 65 18 mov %r12,0x18(%rbp) - 4055bd: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 4055c2: 48 85 c0 test %rax,%rax - 4055c5: 0f 84 7f 02 00 00 je 40584a <_nl_make_l10nflist+0x56a> - 4055cb: 4c 8b 6c 24 28 mov 0x28(%rsp),%r13 - 4055d0: 48 89 c3 mov %rax,%rbx - 4055d3: 31 ed xor %ebp,%ebp - 4055d5: 0f 1f 00 nopl (%rax) - 4055d8: 4c 89 ef mov %r13,%rdi - 4055db: 48 83 c5 01 add $0x1,%rbp - 4055df: e8 6c e0 01 00 callq 423650 - 4055e4: 48 29 c3 sub %rax,%rbx - 4055e7: 4d 8d 6c 05 01 lea 0x1(%r13,%rax,1),%r13 - 4055ec: 48 83 eb 01 sub $0x1,%rbx - 4055f0: 75 e6 jne 4055d8 <_nl_make_l10nflist+0x2f8> - 4055f2: 44 8b 6c 24 34 mov 0x34(%rsp),%r13d - 4055f7: 31 c0 xor %eax,%eax - 4055f9: 48 83 fd 01 cmp $0x1,%rbp - 4055fd: 0f 94 c0 sete %al - 405600: 41 29 c5 sub %eax,%r13d - 405603: 45 85 ed test %r13d,%r13d - 405606: 0f 88 c4 00 00 00 js 4056d0 <_nl_make_l10nflist+0x3f0> - 40560c: 8b 44 24 34 mov 0x34(%rsp),%eax - 405610: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx - 405615: 31 ed xor %ebp,%ebp - 405617: f7 d0 not %eax - 405619: 89 44 24 20 mov %eax,0x20(%rsp) - 40561d: 48 8b 44 24 28 mov 0x28(%rsp),%rax - 405622: 4c 8d 34 08 lea (%rax,%rcx,1),%r14 - 405626: eb 16 jmp 40563e <_nl_make_l10nflist+0x35e> - 405628: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40562f: 00 - 405630: 41 83 ed 01 sub $0x1,%r13d - 405634: 41 83 fd ff cmp $0xffffffff,%r13d - 405638: 0f 84 9a 00 00 00 je 4056d8 <_nl_make_l10nflist+0x3f8> - 40563e: 44 85 6c 24 20 test %r13d,0x20(%rsp) - 405643: 75 eb jne 405630 <_nl_make_l10nflist+0x350> - 405645: 48 83 7c 24 18 00 cmpq $0x0,0x18(%rsp) - 40564b: 74 e3 je 405630 <_nl_make_l10nflist+0x350> - 40564d: 48 8b 5c 24 28 mov 0x28(%rsp),%rbx - 405652: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 405658: 48 89 df mov %rbx,%rdi - 40565b: 48 83 c5 01 add $0x1,%rbp - 40565f: e8 ec df 01 00 callq 423650 - 405664: 48 83 ec 08 sub $0x8,%rsp - 405668: 48 8d 50 01 lea 0x1(%rax),%rdx - 40566c: 44 89 e9 mov %r13d,%ecx - 40566f: 6a 01 pushq $0x1 - 405671: 41 57 push %r15 - 405673: 48 89 de mov %rbx,%rsi - 405676: ff b4 24 a8 00 00 00 pushq 0xa8(%rsp) - 40567d: ff b4 24 a8 00 00 00 pushq 0xa8(%rsp) - 405684: ff b4 24 a8 00 00 00 pushq 0xa8(%rsp) - 40568b: 4c 8b 4c 24 40 mov 0x40(%rsp),%r9 - 405690: 4c 8b 44 24 30 mov 0x30(%rsp),%r8 - 405695: 48 8b 7c 24 38 mov 0x38(%rsp),%rdi - 40569a: e8 41 fc ff ff callq 4052e0 <_nl_make_l10nflist> - 40569f: 48 83 c4 30 add $0x30,%rsp - 4056a3: 49 39 de cmp %rbx,%r14 - 4056a6: 49 89 44 ec 18 mov %rax,0x18(%r12,%rbp,8) - 4056ab: 76 83 jbe 405630 <_nl_make_l10nflist+0x350> - 4056ad: 31 f6 xor %esi,%esi - 4056af: 48 89 df mov %rbx,%rdi - 4056b2: e8 19 73 02 00 callq 42c9d0 <__rawmemchr> - 4056b7: 48 8d 58 01 lea 0x1(%rax),%rbx - 4056bb: 4c 39 f3 cmp %r14,%rbx - 4056be: 0f 83 6c ff ff ff jae 405630 <_nl_make_l10nflist+0x350> - 4056c4: 48 85 db test %rbx,%rbx - 4056c7: 75 8f jne 405658 <_nl_make_l10nflist+0x378> - 4056c9: e9 62 ff ff ff jmpq 405630 <_nl_make_l10nflist+0x350> - 4056ce: 66 90 xchg %ax,%ax - 4056d0: 31 ed xor %ebp,%ebp - 4056d2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4056d8: bf fe 11 4a 00 mov $0x4a11fe,%edi - 4056dd: b9 0b 00 00 00 mov $0xb,%ecx - 4056e2: 4c 89 fe mov %r15,%rsi - 4056e5: f3 a6 repz cmpsb %es:(%rdi),%ds:(%rsi) - 4056e7: 0f 85 87 00 00 00 jne 405774 <_nl_make_l10nflist+0x494> - 4056ed: 8b 5c 24 34 mov 0x34(%rsp),%ebx - 4056f1: 85 db test %ebx,%ebx - 4056f3: 78 7f js 405774 <_nl_make_l10nflist+0x494> - 4056f5: 41 89 dd mov %ebx,%r13d - 4056f8: 41 f7 d5 not %r13d - 4056fb: 45 89 ee mov %r13d,%r14d - 4056fe: 49 89 ed mov %rbp,%r13 - 405701: 4c 89 fd mov %r15,%rbp - 405704: eb 12 jmp 405718 <_nl_make_l10nflist+0x438> - 405706: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40570d: 00 00 00 - 405710: 83 eb 01 sub $0x1,%ebx - 405713: 83 fb ff cmp $0xffffffff,%ebx - 405716: 74 59 je 405771 <_nl_make_l10nflist+0x491> - 405718: 44 85 f3 test %r14d,%ebx - 40571b: 75 f3 jne 405710 <_nl_make_l10nflist+0x430> - 40571d: 48 83 ec 08 sub $0x8,%rsp - 405721: 89 d9 mov %ebx,%ecx - 405723: 4d 8d 7d 01 lea 0x1(%r13),%r15 - 405727: 6a 01 pushq $0x1 - 405729: 55 push %rbp - 40572a: ba 1b 00 00 00 mov $0x1b,%edx - 40572f: ff b4 24 a8 00 00 00 pushq 0xa8(%rsp) - 405736: ff b4 24 a8 00 00 00 pushq 0xa8(%rsp) - 40573d: be 0a 12 4a 00 mov $0x4a120a,%esi - 405742: ff b4 24 a8 00 00 00 pushq 0xa8(%rsp) - 405749: 4c 8b 4c 24 40 mov 0x40(%rsp),%r9 - 40574e: 83 eb 01 sub $0x1,%ebx - 405751: 4c 8b 44 24 30 mov 0x30(%rsp),%r8 - 405756: 48 8b 7c 24 38 mov 0x38(%rsp),%rdi - 40575b: e8 80 fb ff ff callq 4052e0 <_nl_make_l10nflist> - 405760: 48 83 c4 30 add $0x30,%rsp - 405764: 83 fb ff cmp $0xffffffff,%ebx - 405767: 4b 89 44 ec 20 mov %rax,0x20(%r12,%r13,8) - 40576c: 4d 89 fd mov %r15,%r13 - 40576f: 75 a7 jne 405718 <_nl_make_l10nflist+0x438> - 405771: 4c 89 ed mov %r13,%rbp - 405774: 49 c7 44 ec 20 00 00 movq $0x0,0x20(%r12,%rbp,8) - 40577b: 00 00 - 40577d: 4c 89 e0 mov %r12,%rax - 405780: 48 83 c4 48 add $0x48,%rsp - 405784: 5b pop %rbx - 405785: 5d pop %rbp - 405786: 41 5c pop %r12 - 405788: 41 5d pop %r13 - 40578a: 41 5e pop %r14 - 40578c: 41 5f pop %r15 - 40578e: c3 retq - 40578f: 90 nop - 405790: 31 ed xor %ebp,%ebp - 405792: e9 a9 fb ff ff jmpq 405340 <_nl_make_l10nflist+0x60> - 405797: 8b 44 24 34 mov 0x34(%rsp),%eax - 40579b: 83 e0 03 and $0x3,%eax - 40579e: 83 f8 03 cmp $0x3,%eax - 4057a1: 0f 94 c0 sete %al - 4057a4: 0f b6 c0 movzbl %al,%eax - 4057a7: e9 ed fd ff ff jmpq 405599 <_nl_make_l10nflist+0x2b9> - 4057ac: 48 8b b4 24 90 00 00 mov 0x90(%rsp),%rsi - 4057b3: 00 - 4057b4: 48 8d 78 01 lea 0x1(%rax),%rdi - 4057b8: c6 00 40 movb $0x40,(%rax) - 4057bb: e8 50 ab ff ff callq 400310 <__rela_iplt_end+0x48> - 4057c0: e9 91 fc ff ff jmpq 405456 <_nl_make_l10nflist+0x176> - 4057c5: 48 8b b4 24 88 00 00 mov 0x88(%rsp),%rsi - 4057cc: 00 - 4057cd: 48 8d 78 01 lea 0x1(%rax),%rdi - 4057d1: c6 00 2e movb $0x2e,(%rax) - 4057d4: e8 37 ab ff ff callq 400310 <__rela_iplt_end+0x48> - 4057d9: e9 6c fc ff ff jmpq 40544a <_nl_make_l10nflist+0x16a> - 4057de: 48 8b b4 24 80 00 00 mov 0x80(%rsp),%rsi - 4057e5: 00 - 4057e6: 48 8d 78 01 lea 0x1(%rax),%rdi - 4057ea: c6 00 2e movb $0x2e,(%rax) - 4057ed: e8 1e ab ff ff callq 400310 <__rela_iplt_end+0x48> - 4057f2: e9 47 fc ff ff jmpq 40543e <_nl_make_l10nflist+0x15e> - 4057f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4057fe: 00 00 - 405800: 48 8b 74 24 10 mov 0x10(%rsp),%rsi - 405805: 48 8d 78 01 lea 0x1(%rax),%rdi - 405809: c6 00 5f movb $0x5f,(%rax) - 40580c: e8 ff aa ff ff callq 400310 <__rela_iplt_end+0x48> - 405811: e9 1c fc ff ff jmpq 405432 <_nl_make_l10nflist+0x152> - 405816: 45 31 e4 xor %r12d,%r12d - 405819: 4c 89 ef mov %r13,%rdi - 40581c: e8 8f 85 01 00 callq 41ddb0 <__cfree> - 405821: 48 83 c4 48 add $0x48,%rsp - 405825: 4c 89 e0 mov %r12,%rax - 405828: 5b pop %rbx - 405829: 5d pop %rbp - 40582a: 41 5c pop %r12 - 40582c: 41 5d pop %r13 - 40582e: 41 5e pop %r14 - 405830: 41 5f pop %r15 - 405832: c3 retq - 405833: 48 8b 44 24 20 mov 0x20(%rsp),%rax - 405838: 49 89 44 24 18 mov %rax,0x18(%r12) - 40583d: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 405842: 4c 89 20 mov %r12,(%rax) - 405845: e9 73 fd ff ff jmpq 4055bd <_nl_make_l10nflist+0x2dd> - 40584a: 44 8b 6c 24 34 mov 0x34(%rsp),%r13d - 40584f: e9 af fd ff ff jmpq 405603 <_nl_make_l10nflist+0x323> - 405854: bf 28 00 00 00 mov $0x28,%edi - 405859: e8 b2 81 01 00 callq 41da10 <__libc_malloc> - 40585e: 48 85 c0 test %rax,%rax - 405861: 49 89 c4 mov %rax,%r12 - 405864: 74 1c je 405882 <_nl_make_l10nflist+0x5a2> - 405866: 4d 89 2c 24 mov %r13,(%r12) - 40586a: b8 01 00 00 00 mov $0x1,%eax - 40586f: e9 25 fd ff ff jmpq 405599 <_nl_make_l10nflist+0x2b9> - 405874: 31 c0 xor %eax,%eax - 405876: e9 05 ff ff ff jmpq 405780 <_nl_make_l10nflist+0x4a0> - 40587b: 31 ed xor %ebp,%ebp - 40587d: e9 2e fc ff ff jmpq 4054b0 <_nl_make_l10nflist+0x1d0> - 405882: 4c 89 ef mov %r13,%rdi - 405885: e8 26 85 01 00 callq 41ddb0 <__cfree> - 40588a: 31 c0 xor %eax,%eax - 40588c: e9 ef fe ff ff jmpq 405780 <_nl_make_l10nflist+0x4a0> - 405891: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 405896: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40589d: 00 00 00 - -00000000004058a0 <_nl_normalize_codeset>: - 4058a0: 41 55 push %r13 - 4058a2: 41 54 push %r12 - 4058a4: 49 89 f5 mov %rsi,%r13 - 4058a7: 55 push %rbp - 4058a8: 53 push %rbx - 4058a9: 48 89 fb mov %rdi,%rbx - 4058ac: 48 83 ec 08 sub $0x8,%rsp - 4058b0: 48 85 f6 test %rsi,%rsi - 4058b3: 0f 84 e4 00 00 00 je 40599d <_nl_normalize_codeset+0xfd> - 4058b9: 48 8b 2d 28 ce 0a 00 mov 0xace28(%rip),%rbp # 4b26e8 <_nl_C_locobj+0x68> - 4058c0: 4c 8d 24 37 lea (%rdi,%rsi,1),%r12 - 4058c4: 48 89 fa mov %rdi,%rdx - 4058c7: 41 b8 01 00 00 00 mov $0x1,%r8d - 4058cd: 31 ff xor %edi,%edi - 4058cf: 31 f6 xor %esi,%esi - 4058d1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4058d8: 0f b6 0a movzbl (%rdx),%ecx - 4058db: f6 44 4d 00 08 testb $0x8,0x0(%rbp,%rcx,2) - 4058e0: 48 89 c8 mov %rcx,%rax - 4058e3: 74 0e je 4058f3 <_nl_normalize_codeset+0x53> - 4058e5: 83 e8 30 sub $0x30,%eax - 4058e8: 48 83 c7 01 add $0x1,%rdi - 4058ec: 83 f8 0a cmp $0xa,%eax - 4058ef: 44 0f 43 c6 cmovae %esi,%r8d - 4058f3: 48 83 c2 01 add $0x1,%rdx - 4058f7: 4c 39 e2 cmp %r12,%rdx - 4058fa: 75 dc jne 4058d8 <_nl_normalize_codeset+0x38> - 4058fc: 45 85 c0 test %r8d,%r8d - 4058ff: 75 6f jne 405970 <_nl_normalize_codeset+0xd0> - 405901: 48 83 c7 01 add $0x1,%rdi - 405905: e8 06 81 01 00 callq 41da10 <__libc_malloc> - 40590a: 48 85 c0 test %rax,%rax - 40590d: 74 51 je 405960 <_nl_normalize_codeset+0xc0> - 40590f: 49 89 c0 mov %rax,%r8 - 405912: 48 8b 35 d7 cd 0a 00 mov 0xacdd7(%rip),%rsi # 4b26f0 <_nl_C_locobj+0x70> - 405919: 48 89 df mov %rbx,%rdi - 40591c: eb 16 jmp 405934 <_nl_normalize_codeset+0x94> - 40591e: 66 90 xchg %ax,%ax - 405920: 8b 14 8e mov (%rsi,%rcx,4),%edx - 405923: 49 83 c0 01 add $0x1,%r8 - 405927: 41 88 50 ff mov %dl,-0x1(%r8) - 40592b: 48 83 c7 01 add $0x1,%rdi - 40592f: 49 39 fc cmp %rdi,%r12 - 405932: 74 28 je 40595c <_nl_normalize_codeset+0xbc> - 405934: 0f b6 0f movzbl (%rdi),%ecx - 405937: f6 44 4d 01 04 testb $0x4,0x1(%rbp,%rcx,2) - 40593c: 48 89 ca mov %rcx,%rdx - 40593f: 75 df jne 405920 <_nl_normalize_codeset+0x80> - 405941: 0f b6 c9 movzbl %cl,%ecx - 405944: 83 e9 30 sub $0x30,%ecx - 405947: 83 f9 09 cmp $0x9,%ecx - 40594a: 77 df ja 40592b <_nl_normalize_codeset+0x8b> - 40594c: 48 83 c7 01 add $0x1,%rdi - 405950: 41 88 10 mov %dl,(%r8) - 405953: 49 83 c0 01 add $0x1,%r8 - 405957: 49 39 fc cmp %rdi,%r12 - 40595a: 75 d8 jne 405934 <_nl_normalize_codeset+0x94> - 40595c: 41 c6 00 00 movb $0x0,(%r8) - 405960: 48 83 c4 08 add $0x8,%rsp - 405964: 5b pop %rbx - 405965: 5d pop %rbp - 405966: 41 5c pop %r12 - 405968: 41 5d pop %r13 - 40596a: c3 retq - 40596b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 405970: 48 83 c7 04 add $0x4,%rdi - 405974: e8 97 80 01 00 callq 41da10 <__libc_malloc> - 405979: 48 85 c0 test %rax,%rax - 40597c: 74 e2 je 405960 <_nl_normalize_codeset+0xc0> - 40597e: 4d 85 ed test %r13,%r13 - 405981: c7 00 69 73 6f 00 movl $0x6f7369,(%rax) - 405987: 4c 8d 40 03 lea 0x3(%rax),%r8 - 40598b: 74 cf je 40595c <_nl_normalize_codeset+0xbc> - 40598d: 48 8b 2d 54 cd 0a 00 mov 0xacd54(%rip),%rbp # 4b26e8 <_nl_C_locobj+0x68> - 405994: 4e 8d 24 2b lea (%rbx,%r13,1),%r12 - 405998: e9 75 ff ff ff jmpq 405912 <_nl_normalize_codeset+0x72> - 40599d: bf 04 00 00 00 mov $0x4,%edi - 4059a2: e8 69 80 01 00 callq 41da10 <__libc_malloc> - 4059a7: 48 85 c0 test %rax,%rax - 4059aa: 75 d2 jne 40597e <_nl_normalize_codeset+0xde> - 4059ac: eb b2 jmp 405960 <_nl_normalize_codeset+0xc0> - 4059ae: 66 90 xchg %ax,%ax - -00000000004059b0 <_nl_explode_name>: - 4059b0: 41 56 push %r14 - 4059b2: 41 55 push %r13 - 4059b4: 41 54 push %r12 - 4059b6: 55 push %rbp - 4059b7: 53 push %rbx - 4059b8: 48 83 ec 20 sub $0x20,%rsp - 4059bc: 48 c7 02 00 00 00 00 movq $0x0,(%rdx) - 4059c3: 48 c7 01 00 00 00 00 movq $0x0,(%rcx) - 4059ca: 49 c7 00 00 00 00 00 movq $0x0,(%r8) - 4059d1: 49 c7 01 00 00 00 00 movq $0x0,(%r9) - 4059d8: 48 89 3e mov %rdi,(%rsi) - 4059db: 0f b6 07 movzbl (%rdi),%eax - 4059de: a8 bf test $0xbf,%al - 4059e0: 0f 84 aa 01 00 00 je 405b90 <_nl_explode_name+0x1e0> - 4059e6: 3c 5f cmp $0x5f,%al - 4059e8: 0f 84 a2 01 00 00 je 405b90 <_nl_explode_name+0x1e0> - 4059ee: 3c 2e cmp $0x2e,%al - 4059f0: 0f 84 9a 01 00 00 je 405b90 <_nl_explode_name+0x1e0> - 4059f6: 48 89 fb mov %rdi,%rbx - 4059f9: eb 1f jmp 405a1a <_nl_explode_name+0x6a> - 4059fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 405a00: 40 80 fe 5f cmp $0x5f,%sil - 405a04: 74 20 je 405a26 <_nl_explode_name+0x76> - 405a06: 40 80 fe 40 cmp $0x40,%sil - 405a0a: 0f 84 10 01 00 00 je 405b20 <_nl_explode_name+0x170> - 405a10: 40 80 fe 2e cmp $0x2e,%sil - 405a14: 0f 84 06 01 00 00 je 405b20 <_nl_explode_name+0x170> - 405a1a: 48 83 c3 01 add $0x1,%rbx - 405a1e: 0f b6 33 movzbl (%rbx),%esi - 405a21: 40 84 f6 test %sil,%sil - 405a24: 75 da jne 405a00 <_nl_explode_name+0x50> - 405a26: 48 39 df cmp %rbx,%rdi - 405a29: 0f 84 61 01 00 00 je 405b90 <_nl_explode_name+0x1e0> - 405a2f: 40 80 fe 5f cmp $0x5f,%sil - 405a33: 0f 85 ec 00 00 00 jne 405b25 <_nl_explode_name+0x175> - 405a39: 48 8d 43 01 lea 0x1(%rbx),%rax - 405a3d: c6 03 00 movb $0x0,(%rbx) - 405a40: 48 89 01 mov %rax,(%rcx) - 405a43: 0f b6 73 01 movzbl 0x1(%rbx),%esi - 405a47: 40 f6 c6 bf test $0xbf,%sil - 405a4b: 75 10 jne 405a5d <_nl_explode_name+0xad> - 405a4d: eb 14 jmp 405a63 <_nl_explode_name+0xb3> - 405a4f: 90 nop - 405a50: 48 83 c0 01 add $0x1,%rax - 405a54: 0f b6 30 movzbl (%rax),%esi - 405a57: 40 f6 c6 bf test $0xbf,%sil - 405a5b: 74 06 je 405a63 <_nl_explode_name+0xb3> - 405a5d: 40 80 fe 2e cmp $0x2e,%sil - 405a61: 75 ed jne 405a50 <_nl_explode_name+0xa0> - 405a63: 40 80 fe 2e cmp $0x2e,%sil - 405a67: 48 89 c3 mov %rax,%rbx - 405a6a: 41 bd 06 00 00 00 mov $0x6,%r13d - 405a70: bd 04 00 00 00 mov $0x4,%ebp - 405a75: 0f 85 bc 00 00 00 jne 405b37 <_nl_explode_name+0x187> - 405a7b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 405a80: 48 8d 7b 01 lea 0x1(%rbx),%rdi - 405a84: c6 03 00 movb $0x0,(%rbx) - 405a87: 49 89 38 mov %rdi,(%r8) - 405a8a: 0f b6 73 01 movzbl 0x1(%rbx),%esi - 405a8e: 40 f6 c6 bf test $0xbf,%sil - 405a92: 0f 84 5a 01 00 00 je 405bf2 <_nl_explode_name+0x242> - 405a98: 49 89 fc mov %rdi,%r12 - 405a9b: eb 06 jmp 405aa3 <_nl_explode_name+0xf3> - 405a9d: 0f 1f 00 nopl (%rax) - 405aa0: 49 89 dc mov %rbx,%r12 - 405aa3: 41 f6 44 24 01 bf testb $0xbf,0x1(%r12) - 405aa9: 49 8d 5c 24 01 lea 0x1(%r12),%rbx - 405aae: 75 f0 jne 405aa0 <_nl_explode_name+0xf0> - 405ab0: 48 39 df cmp %rbx,%rdi - 405ab3: 4c 89 0c 24 mov %r9,(%rsp) - 405ab7: 0f 84 40 01 00 00 je 405bfd <_nl_explode_name+0x24d> - 405abd: 48 89 de mov %rbx,%rsi - 405ac0: 4c 89 44 24 18 mov %r8,0x18(%rsp) - 405ac5: 48 89 4c 24 10 mov %rcx,0x10(%rsp) - 405aca: 48 29 fe sub %rdi,%rsi - 405acd: 48 89 54 24 08 mov %rdx,0x8(%rsp) - 405ad2: e8 c9 fd ff ff callq 4058a0 <_nl_normalize_codeset> - 405ad7: 4c 8b 0c 24 mov (%rsp),%r9 - 405adb: 48 85 c0 test %rax,%rax - 405ade: 49 89 c6 mov %rax,%r14 - 405ae1: 49 89 01 mov %rax,(%r9) - 405ae4: 0f 84 1b 01 00 00 je 405c05 <_nl_explode_name+0x255> - 405aea: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 - 405aef: 48 89 c6 mov %rax,%rsi - 405af2: 49 8b 38 mov (%r8),%rdi - 405af5: 4c 89 04 24 mov %r8,(%rsp) - 405af9: e8 62 a8 ff ff callq 400360 <__rela_iplt_end+0x98> - 405afe: 85 c0 test %eax,%eax - 405b00: 4c 8b 04 24 mov (%rsp),%r8 - 405b04: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 405b09: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx - 405b0e: 0f 84 ac 00 00 00 je 405bc0 <_nl_explode_name+0x210> - 405b14: 83 cd 03 or $0x3,%ebp - 405b17: 41 0f b6 74 24 01 movzbl 0x1(%r12),%esi - 405b1d: eb 18 jmp 405b37 <_nl_explode_name+0x187> - 405b1f: 90 nop - 405b20: 48 39 df cmp %rbx,%rdi - 405b23: 74 6b je 405b90 <_nl_explode_name+0x1e0> - 405b25: 31 ed xor %ebp,%ebp - 405b27: 40 80 fe 2e cmp $0x2e,%sil - 405b2b: 41 bd 02 00 00 00 mov $0x2,%r13d - 405b31: 0f 84 49 ff ff ff je 405a80 <_nl_explode_name+0xd0> - 405b37: 40 80 fe 40 cmp $0x40,%sil - 405b3b: 74 3b je 405b78 <_nl_explode_name+0x1c8> - 405b3d: 48 8b 01 mov (%rcx),%rax - 405b40: 48 85 c0 test %rax,%rax - 405b43: 74 0b je 405b50 <_nl_explode_name+0x1a0> - 405b45: 89 ea mov %ebp,%edx - 405b47: 83 e2 fb and $0xfffffffb,%edx - 405b4a: 80 38 00 cmpb $0x0,(%rax) - 405b4d: 0f 44 ea cmove %edx,%ebp - 405b50: 49 8b 10 mov (%r8),%rdx - 405b53: 89 e8 mov %ebp,%eax - 405b55: 48 85 d2 test %rdx,%rdx - 405b58: 74 0b je 405b65 <_nl_explode_name+0x1b5> - 405b5a: 89 e9 mov %ebp,%ecx - 405b5c: 83 e1 fd and $0xfffffffd,%ecx - 405b5f: 80 3a 00 cmpb $0x0,(%rdx) - 405b62: 0f 44 c1 cmove %ecx,%eax - 405b65: 48 83 c4 20 add $0x20,%rsp - 405b69: 5b pop %rbx - 405b6a: 5d pop %rbp - 405b6b: 41 5c pop %r12 - 405b6d: 41 5d pop %r13 - 405b6f: 41 5e pop %r14 - 405b71: c3 retq - 405b72: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 405b78: 48 8d 43 01 lea 0x1(%rbx),%rax - 405b7c: c6 03 00 movb $0x0,(%rbx) - 405b7f: 48 89 02 mov %rax,(%rdx) - 405b82: 89 e8 mov %ebp,%eax - 405b84: 83 c8 08 or $0x8,%eax - 405b87: 80 7b 01 00 cmpb $0x0,0x1(%rbx) - 405b8b: 0f 45 e8 cmovne %eax,%ebp - 405b8e: eb ad jmp 405b3d <_nl_explode_name+0x18d> - 405b90: 31 f6 xor %esi,%esi - 405b92: 4c 89 44 24 10 mov %r8,0x10(%rsp) - 405b97: 48 89 4c 24 08 mov %rcx,0x8(%rsp) - 405b9c: 48 89 14 24 mov %rdx,(%rsp) - 405ba0: 31 ed xor %ebp,%ebp - 405ba2: e8 29 6e 02 00 callq 42c9d0 <__rawmemchr> - 405ba7: 48 8b 14 24 mov (%rsp),%rdx - 405bab: 48 89 c3 mov %rax,%rbx - 405bae: 0f b6 30 movzbl (%rax),%esi - 405bb1: 48 8b 4c 24 08 mov 0x8(%rsp),%rcx - 405bb6: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 - 405bbb: e9 77 ff ff ff jmpq 405b37 <_nl_explode_name+0x187> - 405bc0: 4c 89 f7 mov %r14,%rdi - 405bc3: 4c 89 44 24 10 mov %r8,0x10(%rsp) - 405bc8: 48 89 4c 24 08 mov %rcx,0x8(%rsp) - 405bcd: 48 89 14 24 mov %rdx,(%rsp) - 405bd1: 44 89 ed mov %r13d,%ebp - 405bd4: e8 d7 81 01 00 callq 41ddb0 <__cfree> - 405bd9: 41 0f b6 74 24 01 movzbl 0x1(%r12),%esi - 405bdf: 48 8b 14 24 mov (%rsp),%rdx - 405be3: 48 8b 4c 24 08 mov 0x8(%rsp),%rcx - 405be8: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 - 405bed: e9 45 ff ff ff jmpq 405b37 <_nl_explode_name+0x187> - 405bf2: 44 89 ed mov %r13d,%ebp - 405bf5: 48 89 fb mov %rdi,%rbx - 405bf8: e9 3a ff ff ff jmpq 405b37 <_nl_explode_name+0x187> - 405bfd: 44 89 ed mov %r13d,%ebp - 405c00: e9 32 ff ff ff jmpq 405b37 <_nl_explode_name+0x187> - 405c05: b8 ff ff ff ff mov $0xffffffff,%eax - 405c0a: e9 56 ff ff ff jmpq 405b65 <_nl_explode_name+0x1b5> - 405c0f: 90 nop - -0000000000405c10 <__gettext_free_exp>: - 405c10: 48 85 ff test %rdi,%rdi - 405c13: 0f 84 af 06 00 00 je 4062c8 <__gettext_free_exp+0x6b8> - 405c19: 41 57 push %r15 - 405c1b: 41 56 push %r14 - 405c1d: 41 55 push %r13 - 405c1f: 41 54 push %r12 - 405c21: 55 push %rbp - 405c22: 53 push %rbx - 405c23: 48 89 fb mov %rdi,%rbx - 405c26: 48 83 ec 08 sub $0x8,%rsp - 405c2a: 8b 07 mov (%rdi),%eax - 405c2c: 83 f8 02 cmp $0x2,%eax - 405c2f: 74 56 je 405c87 <__gettext_free_exp+0x77> - 405c31: 83 f8 03 cmp $0x3,%eax - 405c34: 74 22 je 405c58 <__gettext_free_exp+0x48> - 405c36: 83 f8 01 cmp $0x1,%eax - 405c39: 74 7b je 405cb6 <__gettext_free_exp+0xa6> - 405c3b: 48 83 c4 08 add $0x8,%rsp - 405c3f: 48 89 df mov %rbx,%rdi - 405c42: 5b pop %rbx - 405c43: 5d pop %rbp - 405c44: 41 5c pop %r12 - 405c46: 41 5d pop %r13 - 405c48: 41 5e pop %r14 - 405c4a: 41 5f pop %r15 - 405c4c: e9 5f 81 01 00 jmpq 41ddb0 <__cfree> - 405c51: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 405c58: 48 8b 6f 18 mov 0x18(%rdi),%rbp - 405c5c: 48 85 ed test %rbp,%rbp - 405c5f: 74 26 je 405c87 <__gettext_free_exp+0x77> - 405c61: 8b 45 00 mov 0x0(%rbp),%eax - 405c64: 83 f8 02 cmp $0x2,%eax - 405c67: 0f 84 6c 03 00 00 je 405fd9 <__gettext_free_exp+0x3c9> - 405c6d: 83 f8 03 cmp $0x3,%eax - 405c70: 0f 84 5a 03 00 00 je 405fd0 <__gettext_free_exp+0x3c0> - 405c76: 83 f8 01 cmp $0x1,%eax - 405c79: 0f 84 63 03 00 00 je 405fe2 <__gettext_free_exp+0x3d2> - 405c7f: 48 89 ef mov %rbp,%rdi - 405c82: e8 29 81 01 00 callq 41ddb0 <__cfree> - 405c87: 48 8b 6b 10 mov 0x10(%rbx),%rbp - 405c8b: 48 85 ed test %rbp,%rbp - 405c8e: 74 26 je 405cb6 <__gettext_free_exp+0xa6> - 405c90: 8b 45 00 mov 0x0(%rbp),%eax - 405c93: 83 f8 02 cmp $0x2,%eax - 405c96: 0f 84 5d 01 00 00 je 405df9 <__gettext_free_exp+0x1e9> - 405c9c: 83 f8 03 cmp $0x3,%eax - 405c9f: 0f 84 4b 01 00 00 je 405df0 <__gettext_free_exp+0x1e0> - 405ca5: 83 f8 01 cmp $0x1,%eax - 405ca8: 0f 84 7b 01 00 00 je 405e29 <__gettext_free_exp+0x219> - 405cae: 48 89 ef mov %rbp,%rdi - 405cb1: e8 fa 80 01 00 callq 41ddb0 <__cfree> - 405cb6: 48 8b 6b 08 mov 0x8(%rbx),%rbp - 405cba: 48 85 ed test %rbp,%rbp - 405cbd: 0f 84 78 ff ff ff je 405c3b <__gettext_free_exp+0x2b> - 405cc3: 8b 45 00 mov 0x0(%rbp),%eax - 405cc6: 83 f8 02 cmp $0x2,%eax - 405cc9: 74 4b je 405d16 <__gettext_free_exp+0x106> - 405ccb: 83 f8 03 cmp $0x3,%eax - 405cce: 0f 84 cc 03 00 00 je 4060a0 <__gettext_free_exp+0x490> - 405cd4: 83 f8 01 cmp $0x1,%eax - 405cd7: 74 6d je 405d46 <__gettext_free_exp+0x136> - 405cd9: 48 89 ef mov %rbp,%rdi - 405cdc: e8 cf 80 01 00 callq 41ddb0 <__cfree> - 405ce1: e9 55 ff ff ff jmpq 405c3b <__gettext_free_exp+0x2b> - 405ce6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 405ced: 00 00 00 - 405cf0: 49 8b 7c 24 18 mov 0x18(%r12),%rdi - 405cf5: e8 16 ff ff ff callq 405c10 <__gettext_free_exp> - 405cfa: 49 8b 7c 24 10 mov 0x10(%r12),%rdi - 405cff: e8 0c ff ff ff callq 405c10 <__gettext_free_exp> - 405d04: 49 8b 7c 24 08 mov 0x8(%r12),%rdi - 405d09: e8 02 ff ff ff callq 405c10 <__gettext_free_exp> - 405d0e: 4c 89 e7 mov %r12,%rdi - 405d11: e8 9a 80 01 00 callq 41ddb0 <__cfree> - 405d16: 4c 8b 65 10 mov 0x10(%rbp),%r12 - 405d1a: 4d 85 e4 test %r12,%r12 - 405d1d: 74 27 je 405d46 <__gettext_free_exp+0x136> - 405d1f: 41 8b 04 24 mov (%r12),%eax - 405d23: 83 f8 02 cmp $0x2,%eax - 405d26: 0f 84 36 02 00 00 je 405f62 <__gettext_free_exp+0x352> - 405d2c: 83 f8 03 cmp $0x3,%eax - 405d2f: 0f 84 23 02 00 00 je 405f58 <__gettext_free_exp+0x348> - 405d35: 83 f8 01 cmp $0x1,%eax - 405d38: 0f 84 55 02 00 00 je 405f93 <__gettext_free_exp+0x383> - 405d3e: 4c 89 e7 mov %r12,%rdi - 405d41: e8 6a 80 01 00 callq 41ddb0 <__cfree> - 405d46: 4c 8b 65 08 mov 0x8(%rbp),%r12 - 405d4a: 4d 85 e4 test %r12,%r12 - 405d4d: 74 8a je 405cd9 <__gettext_free_exp+0xc9> - 405d4f: 41 8b 04 24 mov (%r12),%eax - 405d53: 83 f8 02 cmp $0x2,%eax - 405d56: 74 22 je 405d7a <__gettext_free_exp+0x16a> - 405d58: 83 f8 03 cmp $0x3,%eax - 405d5b: 74 13 je 405d70 <__gettext_free_exp+0x160> - 405d5d: 83 f8 01 cmp $0x1,%eax - 405d60: 74 49 je 405dab <__gettext_free_exp+0x19b> - 405d62: 4c 89 e7 mov %r12,%rdi - 405d65: e8 46 80 01 00 callq 41ddb0 <__cfree> - 405d6a: e9 6a ff ff ff jmpq 405cd9 <__gettext_free_exp+0xc9> - 405d6f: 90 nop - 405d70: 49 8b 7c 24 18 mov 0x18(%r12),%rdi - 405d75: e8 96 fe ff ff callq 405c10 <__gettext_free_exp> - 405d7a: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 - 405d7f: 4d 85 ed test %r13,%r13 - 405d82: 74 27 je 405dab <__gettext_free_exp+0x19b> - 405d84: 41 8b 45 00 mov 0x0(%r13),%eax - 405d88: 83 f8 02 cmp $0x2,%eax - 405d8b: 0f 84 b8 03 00 00 je 406149 <__gettext_free_exp+0x539> - 405d91: 83 f8 03 cmp $0x3,%eax - 405d94: 0f 84 a6 03 00 00 je 406140 <__gettext_free_exp+0x530> - 405d9a: 83 f8 01 cmp $0x1,%eax - 405d9d: 0f 84 af 03 00 00 je 406152 <__gettext_free_exp+0x542> - 405da3: 4c 89 ef mov %r13,%rdi - 405da6: e8 05 80 01 00 callq 41ddb0 <__cfree> - 405dab: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 - 405db0: 4d 85 ed test %r13,%r13 - 405db3: 74 ad je 405d62 <__gettext_free_exp+0x152> - 405db5: 41 8b 45 00 mov 0x0(%r13),%eax - 405db9: 83 f8 02 cmp $0x2,%eax - 405dbc: 0f 84 b7 00 00 00 je 405e79 <__gettext_free_exp+0x269> - 405dc2: 83 f8 03 cmp $0x3,%eax - 405dc5: 0f 84 a5 00 00 00 je 405e70 <__gettext_free_exp+0x260> - 405dcb: 83 f8 01 cmp $0x1,%eax - 405dce: 0f 84 d4 00 00 00 je 405ea8 <__gettext_free_exp+0x298> - 405dd4: 4c 89 ef mov %r13,%rdi - 405dd7: e8 d4 7f 01 00 callq 41ddb0 <__cfree> - 405ddc: 4c 89 e7 mov %r12,%rdi - 405ddf: e8 cc 7f 01 00 callq 41ddb0 <__cfree> - 405de4: e9 f0 fe ff ff jmpq 405cd9 <__gettext_free_exp+0xc9> - 405de9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 405df0: 48 8b 7d 18 mov 0x18(%rbp),%rdi - 405df4: e8 17 fe ff ff callq 405c10 <__gettext_free_exp> - 405df9: 4c 8b 65 10 mov 0x10(%rbp),%r12 - 405dfd: 4d 85 e4 test %r12,%r12 - 405e00: 74 27 je 405e29 <__gettext_free_exp+0x219> - 405e02: 41 8b 04 24 mov (%r12),%eax - 405e06: 83 f8 02 cmp $0x2,%eax - 405e09: 0f 84 5b 04 00 00 je 40626a <__gettext_free_exp+0x65a> - 405e0f: 83 f8 03 cmp $0x3,%eax - 405e12: 0f 84 48 04 00 00 je 406260 <__gettext_free_exp+0x650> - 405e18: 83 f8 01 cmp $0x1,%eax - 405e1b: 0f 84 53 04 00 00 je 406274 <__gettext_free_exp+0x664> - 405e21: 4c 89 e7 mov %r12,%rdi - 405e24: e8 87 7f 01 00 callq 41ddb0 <__cfree> - 405e29: 4c 8b 65 08 mov 0x8(%rbp),%r12 - 405e2d: 4d 85 e4 test %r12,%r12 - 405e30: 0f 84 78 fe ff ff je 405cae <__gettext_free_exp+0x9e> - 405e36: 41 8b 04 24 mov (%r12),%eax - 405e3a: 83 f8 02 cmp $0x2,%eax - 405e3d: 0f 84 a7 00 00 00 je 405eea <__gettext_free_exp+0x2da> - 405e43: 83 f8 03 cmp $0x3,%eax - 405e46: 0f 84 94 00 00 00 je 405ee0 <__gettext_free_exp+0x2d0> - 405e4c: 83 f8 01 cmp $0x1,%eax - 405e4f: 0f 84 c6 00 00 00 je 405f1b <__gettext_free_exp+0x30b> - 405e55: 4c 89 e7 mov %r12,%rdi - 405e58: e8 53 7f 01 00 callq 41ddb0 <__cfree> - 405e5d: 48 89 ef mov %rbp,%rdi - 405e60: e8 4b 7f 01 00 callq 41ddb0 <__cfree> - 405e65: e9 4c fe ff ff jmpq 405cb6 <__gettext_free_exp+0xa6> - 405e6a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 405e70: 49 8b 7d 18 mov 0x18(%r13),%rdi - 405e74: e8 97 fd ff ff callq 405c10 <__gettext_free_exp> - 405e79: 4d 8b 75 10 mov 0x10(%r13),%r14 - 405e7d: 4d 85 f6 test %r14,%r14 - 405e80: 74 26 je 405ea8 <__gettext_free_exp+0x298> - 405e82: 41 8b 06 mov (%r14),%eax - 405e85: 83 f8 02 cmp $0x2,%eax - 405e88: 0f 84 bb 01 00 00 je 406049 <__gettext_free_exp+0x439> - 405e8e: 83 f8 03 cmp $0x3,%eax - 405e91: 0f 84 a9 01 00 00 je 406040 <__gettext_free_exp+0x430> - 405e97: 83 f8 01 cmp $0x1,%eax - 405e9a: 0f 84 b2 01 00 00 je 406052 <__gettext_free_exp+0x442> - 405ea0: 4c 89 f7 mov %r14,%rdi - 405ea3: e8 08 7f 01 00 callq 41ddb0 <__cfree> - 405ea8: 4d 8b 75 08 mov 0x8(%r13),%r14 - 405eac: 4d 85 f6 test %r14,%r14 - 405eaf: 0f 84 1f ff ff ff je 405dd4 <__gettext_free_exp+0x1c4> - 405eb5: 41 8b 06 mov (%r14),%eax - 405eb8: 83 f8 02 cmp $0x2,%eax - 405ebb: 0f 84 20 02 00 00 je 4060e1 <__gettext_free_exp+0x4d1> - 405ec1: 83 f8 03 cmp $0x3,%eax - 405ec4: 0f 84 0e 02 00 00 je 4060d8 <__gettext_free_exp+0x4c8> - 405eca: 83 f8 01 cmp $0x1,%eax - 405ecd: 0f 84 17 02 00 00 je 4060ea <__gettext_free_exp+0x4da> - 405ed3: 4c 89 f7 mov %r14,%rdi - 405ed6: e8 d5 7e 01 00 callq 41ddb0 <__cfree> - 405edb: e9 f4 fe ff ff jmpq 405dd4 <__gettext_free_exp+0x1c4> - 405ee0: 49 8b 7c 24 18 mov 0x18(%r12),%rdi - 405ee5: e8 26 fd ff ff callq 405c10 <__gettext_free_exp> - 405eea: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 - 405eef: 4d 85 ed test %r13,%r13 - 405ef2: 74 27 je 405f1b <__gettext_free_exp+0x30b> - 405ef4: 41 8b 45 00 mov 0x0(%r13),%eax - 405ef8: 83 f8 02 cmp $0x2,%eax - 405efb: 0f 84 88 01 00 00 je 406089 <__gettext_free_exp+0x479> - 405f01: 83 f8 03 cmp $0x3,%eax - 405f04: 0f 84 76 01 00 00 je 406080 <__gettext_free_exp+0x470> - 405f0a: 83 f8 01 cmp $0x1,%eax - 405f0d: 0f 84 7f 01 00 00 je 406092 <__gettext_free_exp+0x482> - 405f13: 4c 89 ef mov %r13,%rdi - 405f16: e8 95 7e 01 00 callq 41ddb0 <__cfree> - 405f1b: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 - 405f20: 4d 85 ed test %r13,%r13 - 405f23: 0f 84 2c ff ff ff je 405e55 <__gettext_free_exp+0x245> - 405f29: 41 8b 45 00 mov 0x0(%r13),%eax - 405f2d: 83 f8 02 cmp $0x2,%eax - 405f30: 0f 84 73 02 00 00 je 4061a9 <__gettext_free_exp+0x599> - 405f36: 83 f8 03 cmp $0x3,%eax - 405f39: 0f 84 61 02 00 00 je 4061a0 <__gettext_free_exp+0x590> - 405f3f: 83 f8 01 cmp $0x1,%eax - 405f42: 0f 84 6a 02 00 00 je 4061b2 <__gettext_free_exp+0x5a2> - 405f48: 4c 89 ef mov %r13,%rdi - 405f4b: e8 60 7e 01 00 callq 41ddb0 <__cfree> - 405f50: e9 00 ff ff ff jmpq 405e55 <__gettext_free_exp+0x245> - 405f55: 0f 1f 00 nopl (%rax) - 405f58: 49 8b 7c 24 18 mov 0x18(%r12),%rdi - 405f5d: e8 ae fc ff ff callq 405c10 <__gettext_free_exp> - 405f62: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 - 405f67: 4d 85 ed test %r13,%r13 - 405f6a: 74 27 je 405f93 <__gettext_free_exp+0x383> - 405f6c: 41 8b 45 00 mov 0x0(%r13),%eax - 405f70: 83 f8 02 cmp $0x2,%eax - 405f73: 0f 84 f0 00 00 00 je 406069 <__gettext_free_exp+0x459> - 405f79: 83 f8 03 cmp $0x3,%eax - 405f7c: 0f 84 de 00 00 00 je 406060 <__gettext_free_exp+0x450> - 405f82: 83 f8 01 cmp $0x1,%eax - 405f85: 0f 84 e7 00 00 00 je 406072 <__gettext_free_exp+0x462> - 405f8b: 4c 89 ef mov %r13,%rdi - 405f8e: e8 1d 7e 01 00 callq 41ddb0 <__cfree> - 405f93: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 - 405f98: 4d 85 ed test %r13,%r13 - 405f9b: 0f 84 9d fd ff ff je 405d3e <__gettext_free_exp+0x12e> - 405fa1: 41 8b 45 00 mov 0x0(%r13),%eax - 405fa5: 83 f8 02 cmp $0x2,%eax - 405fa8: 0f 84 5b 02 00 00 je 406209 <__gettext_free_exp+0x5f9> - 405fae: 83 f8 03 cmp $0x3,%eax - 405fb1: 0f 84 49 02 00 00 je 406200 <__gettext_free_exp+0x5f0> - 405fb7: 83 f8 01 cmp $0x1,%eax - 405fba: 0f 84 52 02 00 00 je 406212 <__gettext_free_exp+0x602> - 405fc0: 4c 89 ef mov %r13,%rdi - 405fc3: e8 e8 7d 01 00 callq 41ddb0 <__cfree> - 405fc8: e9 71 fd ff ff jmpq 405d3e <__gettext_free_exp+0x12e> - 405fcd: 0f 1f 00 nopl (%rax) - 405fd0: 48 8b 7d 18 mov 0x18(%rbp),%rdi - 405fd4: e8 37 fc ff ff callq 405c10 <__gettext_free_exp> - 405fd9: 48 8b 7d 10 mov 0x10(%rbp),%rdi - 405fdd: e8 2e fc ff ff callq 405c10 <__gettext_free_exp> - 405fe2: 4c 8b 65 08 mov 0x8(%rbp),%r12 - 405fe6: 4d 85 e4 test %r12,%r12 - 405fe9: 0f 84 90 fc ff ff je 405c7f <__gettext_free_exp+0x6f> - 405fef: 41 8b 04 24 mov (%r12),%eax - 405ff3: 83 f8 02 cmp $0x2,%eax - 405ff6: 74 22 je 40601a <__gettext_free_exp+0x40a> - 405ff8: 83 f8 03 cmp $0x3,%eax - 405ffb: 74 13 je 406010 <__gettext_free_exp+0x400> - 405ffd: 83 f8 01 cmp $0x1,%eax - 406000: 74 22 je 406024 <__gettext_free_exp+0x414> - 406002: 4c 89 e7 mov %r12,%rdi - 406005: e8 a6 7d 01 00 callq 41ddb0 <__cfree> - 40600a: e9 70 fc ff ff jmpq 405c7f <__gettext_free_exp+0x6f> - 40600f: 90 nop - 406010: 49 8b 7c 24 18 mov 0x18(%r12),%rdi - 406015: e8 f6 fb ff ff callq 405c10 <__gettext_free_exp> - 40601a: 49 8b 7c 24 10 mov 0x10(%r12),%rdi - 40601f: e8 ec fb ff ff callq 405c10 <__gettext_free_exp> - 406024: 49 8b 7c 24 08 mov 0x8(%r12),%rdi - 406029: e8 e2 fb ff ff callq 405c10 <__gettext_free_exp> - 40602e: 4c 89 e7 mov %r12,%rdi - 406031: e8 7a 7d 01 00 callq 41ddb0 <__cfree> - 406036: e9 44 fc ff ff jmpq 405c7f <__gettext_free_exp+0x6f> - 40603b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 406040: 49 8b 7e 18 mov 0x18(%r14),%rdi - 406044: e8 c7 fb ff ff callq 405c10 <__gettext_free_exp> - 406049: 49 8b 7e 10 mov 0x10(%r14),%rdi - 40604d: e8 be fb ff ff callq 405c10 <__gettext_free_exp> - 406052: 49 8b 7e 08 mov 0x8(%r14),%rdi - 406056: e8 b5 fb ff ff callq 405c10 <__gettext_free_exp> - 40605b: e9 40 fe ff ff jmpq 405ea0 <__gettext_free_exp+0x290> - 406060: 49 8b 7d 18 mov 0x18(%r13),%rdi - 406064: e8 a7 fb ff ff callq 405c10 <__gettext_free_exp> - 406069: 49 8b 7d 10 mov 0x10(%r13),%rdi - 40606d: e8 9e fb ff ff callq 405c10 <__gettext_free_exp> - 406072: 49 8b 7d 08 mov 0x8(%r13),%rdi - 406076: e8 95 fb ff ff callq 405c10 <__gettext_free_exp> - 40607b: e9 0b ff ff ff jmpq 405f8b <__gettext_free_exp+0x37b> - 406080: 49 8b 7d 18 mov 0x18(%r13),%rdi - 406084: e8 87 fb ff ff callq 405c10 <__gettext_free_exp> - 406089: 49 8b 7d 10 mov 0x10(%r13),%rdi - 40608d: e8 7e fb ff ff callq 405c10 <__gettext_free_exp> - 406092: 49 8b 7d 08 mov 0x8(%r13),%rdi - 406096: e8 75 fb ff ff callq 405c10 <__gettext_free_exp> - 40609b: e9 73 fe ff ff jmpq 405f13 <__gettext_free_exp+0x303> - 4060a0: 4c 8b 65 18 mov 0x18(%rbp),%r12 - 4060a4: 4d 85 e4 test %r12,%r12 - 4060a7: 0f 84 69 fc ff ff je 405d16 <__gettext_free_exp+0x106> - 4060ad: 41 8b 04 24 mov (%r12),%eax - 4060b1: 83 f8 02 cmp $0x2,%eax - 4060b4: 0f 84 40 fc ff ff je 405cfa <__gettext_free_exp+0xea> - 4060ba: 83 f8 03 cmp $0x3,%eax - 4060bd: 0f 84 2d fc ff ff je 405cf0 <__gettext_free_exp+0xe0> - 4060c3: 83 f8 01 cmp $0x1,%eax - 4060c6: 0f 85 42 fc ff ff jne 405d0e <__gettext_free_exp+0xfe> - 4060cc: e9 33 fc ff ff jmpq 405d04 <__gettext_free_exp+0xf4> - 4060d1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4060d8: 49 8b 7e 18 mov 0x18(%r14),%rdi - 4060dc: e8 2f fb ff ff callq 405c10 <__gettext_free_exp> - 4060e1: 49 8b 7e 10 mov 0x10(%r14),%rdi - 4060e5: e8 26 fb ff ff callq 405c10 <__gettext_free_exp> - 4060ea: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 4060ee: 4d 85 ff test %r15,%r15 - 4060f1: 0f 84 dc fd ff ff je 405ed3 <__gettext_free_exp+0x2c3> - 4060f7: 41 8b 07 mov (%r15),%eax - 4060fa: 83 f8 02 cmp $0x2,%eax - 4060fd: 74 2a je 406129 <__gettext_free_exp+0x519> - 4060ff: 83 f8 03 cmp $0x3,%eax - 406102: 74 1c je 406120 <__gettext_free_exp+0x510> - 406104: 83 f8 01 cmp $0x1,%eax - 406107: 74 29 je 406132 <__gettext_free_exp+0x522> - 406109: 4c 89 ff mov %r15,%rdi - 40610c: e8 9f 7c 01 00 callq 41ddb0 <__cfree> - 406111: e9 bd fd ff ff jmpq 405ed3 <__gettext_free_exp+0x2c3> - 406116: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40611d: 00 00 00 - 406120: 49 8b 7f 18 mov 0x18(%r15),%rdi - 406124: e8 e7 fa ff ff callq 405c10 <__gettext_free_exp> - 406129: 49 8b 7f 10 mov 0x10(%r15),%rdi - 40612d: e8 de fa ff ff callq 405c10 <__gettext_free_exp> - 406132: 49 8b 7f 08 mov 0x8(%r15),%rdi - 406136: e8 d5 fa ff ff callq 405c10 <__gettext_free_exp> - 40613b: eb cc jmp 406109 <__gettext_free_exp+0x4f9> - 40613d: 0f 1f 00 nopl (%rax) - 406140: 49 8b 7d 18 mov 0x18(%r13),%rdi - 406144: e8 c7 fa ff ff callq 405c10 <__gettext_free_exp> - 406149: 49 8b 7d 10 mov 0x10(%r13),%rdi - 40614d: e8 be fa ff ff callq 405c10 <__gettext_free_exp> - 406152: 4d 8b 75 08 mov 0x8(%r13),%r14 - 406156: 4d 85 f6 test %r14,%r14 - 406159: 0f 84 44 fc ff ff je 405da3 <__gettext_free_exp+0x193> - 40615f: 41 8b 06 mov (%r14),%eax - 406162: 83 f8 02 cmp $0x2,%eax - 406165: 74 22 je 406189 <__gettext_free_exp+0x579> - 406167: 83 f8 03 cmp $0x3,%eax - 40616a: 74 14 je 406180 <__gettext_free_exp+0x570> - 40616c: 83 f8 01 cmp $0x1,%eax - 40616f: 74 21 je 406192 <__gettext_free_exp+0x582> - 406171: 4c 89 f7 mov %r14,%rdi - 406174: e8 37 7c 01 00 callq 41ddb0 <__cfree> - 406179: e9 25 fc ff ff jmpq 405da3 <__gettext_free_exp+0x193> - 40617e: 66 90 xchg %ax,%ax - 406180: 49 8b 7e 18 mov 0x18(%r14),%rdi - 406184: e8 87 fa ff ff callq 405c10 <__gettext_free_exp> - 406189: 49 8b 7e 10 mov 0x10(%r14),%rdi - 40618d: e8 7e fa ff ff callq 405c10 <__gettext_free_exp> - 406192: 49 8b 7e 08 mov 0x8(%r14),%rdi - 406196: e8 75 fa ff ff callq 405c10 <__gettext_free_exp> - 40619b: eb d4 jmp 406171 <__gettext_free_exp+0x561> - 40619d: 0f 1f 00 nopl (%rax) - 4061a0: 49 8b 7d 18 mov 0x18(%r13),%rdi - 4061a4: e8 67 fa ff ff callq 405c10 <__gettext_free_exp> - 4061a9: 49 8b 7d 10 mov 0x10(%r13),%rdi - 4061ad: e8 5e fa ff ff callq 405c10 <__gettext_free_exp> - 4061b2: 4d 8b 75 08 mov 0x8(%r13),%r14 - 4061b6: 4d 85 f6 test %r14,%r14 - 4061b9: 0f 84 89 fd ff ff je 405f48 <__gettext_free_exp+0x338> - 4061bf: 41 8b 06 mov (%r14),%eax - 4061c2: 83 f8 02 cmp $0x2,%eax - 4061c5: 74 22 je 4061e9 <__gettext_free_exp+0x5d9> - 4061c7: 83 f8 03 cmp $0x3,%eax - 4061ca: 74 14 je 4061e0 <__gettext_free_exp+0x5d0> - 4061cc: 83 f8 01 cmp $0x1,%eax - 4061cf: 74 21 je 4061f2 <__gettext_free_exp+0x5e2> - 4061d1: 4c 89 f7 mov %r14,%rdi - 4061d4: e8 d7 7b 01 00 callq 41ddb0 <__cfree> - 4061d9: e9 6a fd ff ff jmpq 405f48 <__gettext_free_exp+0x338> - 4061de: 66 90 xchg %ax,%ax - 4061e0: 49 8b 7e 18 mov 0x18(%r14),%rdi - 4061e4: e8 27 fa ff ff callq 405c10 <__gettext_free_exp> - 4061e9: 49 8b 7e 10 mov 0x10(%r14),%rdi - 4061ed: e8 1e fa ff ff callq 405c10 <__gettext_free_exp> - 4061f2: 49 8b 7e 08 mov 0x8(%r14),%rdi - 4061f6: e8 15 fa ff ff callq 405c10 <__gettext_free_exp> - 4061fb: eb d4 jmp 4061d1 <__gettext_free_exp+0x5c1> - 4061fd: 0f 1f 00 nopl (%rax) - 406200: 49 8b 7d 18 mov 0x18(%r13),%rdi - 406204: e8 07 fa ff ff callq 405c10 <__gettext_free_exp> - 406209: 49 8b 7d 10 mov 0x10(%r13),%rdi - 40620d: e8 fe f9 ff ff callq 405c10 <__gettext_free_exp> - 406212: 4d 8b 75 08 mov 0x8(%r13),%r14 - 406216: 4d 85 f6 test %r14,%r14 - 406219: 0f 84 a1 fd ff ff je 405fc0 <__gettext_free_exp+0x3b0> - 40621f: 41 8b 06 mov (%r14),%eax - 406222: 83 f8 02 cmp $0x2,%eax - 406225: 74 22 je 406249 <__gettext_free_exp+0x639> - 406227: 83 f8 03 cmp $0x3,%eax - 40622a: 74 14 je 406240 <__gettext_free_exp+0x630> - 40622c: 83 f8 01 cmp $0x1,%eax - 40622f: 74 21 je 406252 <__gettext_free_exp+0x642> - 406231: 4c 89 f7 mov %r14,%rdi - 406234: e8 77 7b 01 00 callq 41ddb0 <__cfree> - 406239: e9 82 fd ff ff jmpq 405fc0 <__gettext_free_exp+0x3b0> - 40623e: 66 90 xchg %ax,%ax - 406240: 49 8b 7e 18 mov 0x18(%r14),%rdi - 406244: e8 c7 f9 ff ff callq 405c10 <__gettext_free_exp> - 406249: 49 8b 7e 10 mov 0x10(%r14),%rdi - 40624d: e8 be f9 ff ff callq 405c10 <__gettext_free_exp> - 406252: 49 8b 7e 08 mov 0x8(%r14),%rdi - 406256: e8 b5 f9 ff ff callq 405c10 <__gettext_free_exp> - 40625b: eb d4 jmp 406231 <__gettext_free_exp+0x621> - 40625d: 0f 1f 00 nopl (%rax) - 406260: 49 8b 7c 24 18 mov 0x18(%r12),%rdi - 406265: e8 a6 f9 ff ff callq 405c10 <__gettext_free_exp> - 40626a: 49 8b 7c 24 10 mov 0x10(%r12),%rdi - 40626f: e8 9c f9 ff ff callq 405c10 <__gettext_free_exp> - 406274: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 - 406279: 4d 85 ed test %r13,%r13 - 40627c: 0f 84 9f fb ff ff je 405e21 <__gettext_free_exp+0x211> - 406282: 41 8b 45 00 mov 0x0(%r13),%eax - 406286: 83 f8 02 cmp $0x2,%eax - 406289: 74 26 je 4062b1 <__gettext_free_exp+0x6a1> - 40628b: 83 f8 03 cmp $0x3,%eax - 40628e: 74 18 je 4062a8 <__gettext_free_exp+0x698> - 406290: 83 f8 01 cmp $0x1,%eax - 406293: 74 25 je 4062ba <__gettext_free_exp+0x6aa> - 406295: 4c 89 ef mov %r13,%rdi - 406298: e8 13 7b 01 00 callq 41ddb0 <__cfree> - 40629d: e9 7f fb ff ff jmpq 405e21 <__gettext_free_exp+0x211> - 4062a2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4062a8: 49 8b 7d 18 mov 0x18(%r13),%rdi - 4062ac: e8 5f f9 ff ff callq 405c10 <__gettext_free_exp> - 4062b1: 49 8b 7d 10 mov 0x10(%r13),%rdi - 4062b5: e8 56 f9 ff ff callq 405c10 <__gettext_free_exp> - 4062ba: 49 8b 7d 08 mov 0x8(%r13),%rdi - 4062be: e8 4d f9 ff ff callq 405c10 <__gettext_free_exp> - 4062c3: eb d0 jmp 406295 <__gettext_free_exp+0x685> - 4062c5: 0f 1f 00 nopl (%rax) - 4062c8: f3 c3 repz retq - 4062ca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -00000000004062d0 : - 4062d0: 41 57 push %r15 - 4062d2: 41 56 push %r14 - 4062d4: 49 89 f6 mov %rsi,%r14 - 4062d7: 41 55 push %r13 - 4062d9: 41 54 push %r12 - 4062db: 55 push %rbp - 4062dc: 53 push %rbx - 4062dd: 48 83 ec 18 sub $0x18,%rsp - 4062e1: 48 8b 5e 08 mov 0x8(%rsi),%rbx - 4062e5: 48 85 db test %rbx,%rbx - 4062e8: 74 3e je 406328 - 4062ea: 48 8b 2e mov (%rsi),%rbp - 4062ed: 48 85 ed test %rbp,%rbp - 4062f0: 74 36 je 406328 - 4062f2: 41 89 fc mov %edi,%r12d - 4062f5: bf 20 00 00 00 mov $0x20,%edi - 4062fa: e8 11 77 01 00 callq 41da10 <__libc_malloc> - 4062ff: 48 85 c0 test %rax,%rax - 406302: 74 24 je 406328 - 406304: c7 00 02 00 00 00 movl $0x2,(%rax) - 40630a: 44 89 60 04 mov %r12d,0x4(%rax) - 40630e: 48 89 58 10 mov %rbx,0x10(%rax) - 406312: 48 89 68 08 mov %rbp,0x8(%rax) - 406316: 48 83 c4 18 add $0x18,%rsp - 40631a: 5b pop %rbx - 40631b: 5d pop %rbp - 40631c: 41 5c pop %r12 - 40631e: 41 5d pop %r13 - 406320: 41 5e pop %r14 - 406322: 41 5f pop %r15 - 406324: c3 retq - 406325: 0f 1f 00 nopl (%rax) - 406328: 31 ed xor %ebp,%ebp - 40632a: eb 28 jmp 406354 - 40632c: 0f 1f 40 00 nopl 0x0(%rax) - 406330: 83 f8 03 cmp $0x3,%eax - 406333: 0f 84 27 03 00 00 je 406660 - 406339: 83 f8 01 cmp $0x1,%eax - 40633c: 74 57 je 406395 - 40633e: 48 89 df mov %rbx,%rdi - 406341: e8 6a 7a 01 00 callq 41ddb0 <__cfree> - 406346: 48 83 ed 08 sub $0x8,%rbp - 40634a: 48 83 fd f0 cmp $0xfffffffffffffff0,%rbp - 40634e: 0f 84 ec 0c 00 00 je 407040 - 406354: 49 8b 5c 2e 08 mov 0x8(%r14,%rbp,1),%rbx - 406359: 48 85 db test %rbx,%rbx - 40635c: 74 e8 je 406346 - 40635e: 8b 03 mov (%rbx),%eax - 406360: 83 f8 02 cmp $0x2,%eax - 406363: 75 cb jne 406330 - 406365: 4c 8b 63 10 mov 0x10(%rbx),%r12 - 406369: 4d 85 e4 test %r12,%r12 - 40636c: 74 27 je 406395 - 40636e: 41 8b 04 24 mov (%r12),%eax - 406372: 83 f8 02 cmp $0x2,%eax - 406375: 0f 84 76 02 00 00 je 4065f1 - 40637b: 83 f8 03 cmp $0x3,%eax - 40637e: 0f 84 7c 0c 00 00 je 407000 - 406384: 83 f8 01 cmp $0x1,%eax - 406387: 0f 84 95 02 00 00 je 406622 - 40638d: 4c 89 e7 mov %r12,%rdi - 406390: e8 1b 7a 01 00 callq 41ddb0 <__cfree> - 406395: 4c 8b 63 08 mov 0x8(%rbx),%r12 - 406399: 4d 85 e4 test %r12,%r12 - 40639c: 74 a0 je 40633e - 40639e: 41 8b 04 24 mov (%r12),%eax - 4063a2: 83 f8 02 cmp $0x2,%eax - 4063a5: 74 4a je 4063f1 - 4063a7: 83 f8 03 cmp $0x3,%eax - 4063aa: 74 14 je 4063c0 - 4063ac: 83 f8 01 cmp $0x1,%eax - 4063af: 74 71 je 406422 - 4063b1: 4c 89 e7 mov %r12,%rdi - 4063b4: e8 f7 79 01 00 callq 41ddb0 <__cfree> - 4063b9: eb 83 jmp 40633e - 4063bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4063c0: 4d 8b 6c 24 18 mov 0x18(%r12),%r13 - 4063c5: 4d 85 ed test %r13,%r13 - 4063c8: 74 27 je 4063f1 - 4063ca: 41 8b 45 00 mov 0x0(%r13),%eax - 4063ce: 83 f8 02 cmp $0x2,%eax - 4063d1: 0f 84 68 0a 00 00 je 406e3f - 4063d7: 83 f8 03 cmp $0x3,%eax - 4063da: 0f 84 30 0a 00 00 je 406e10 - 4063e0: 83 f8 01 cmp $0x1,%eax - 4063e3: 0f 84 85 0a 00 00 je 406e6e - 4063e9: 4c 89 ef mov %r13,%rdi - 4063ec: e8 bf 79 01 00 callq 41ddb0 <__cfree> - 4063f1: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 - 4063f6: 4d 85 ed test %r13,%r13 - 4063f9: 74 27 je 406422 - 4063fb: 41 8b 45 00 mov 0x0(%r13),%eax - 4063ff: 83 f8 02 cmp $0x2,%eax - 406402: 0f 84 07 04 00 00 je 40680f - 406408: 83 f8 03 cmp $0x3,%eax - 40640b: 0f 84 cf 03 00 00 je 4067e0 - 406411: 83 f8 01 cmp $0x1,%eax - 406414: 0f 84 24 04 00 00 je 40683e - 40641a: 4c 89 ef mov %r13,%rdi - 40641d: e8 8e 79 01 00 callq 41ddb0 <__cfree> - 406422: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 - 406427: 4d 85 ed test %r13,%r13 - 40642a: 74 85 je 4063b1 - 40642c: 41 8b 45 00 mov 0x0(%r13),%eax - 406430: 83 f8 02 cmp $0x2,%eax - 406433: 0f 84 c8 00 00 00 je 406501 - 406439: 83 f8 03 cmp $0x3,%eax - 40643c: 0f 84 0e 0b 00 00 je 406f50 - 406442: 83 f8 01 cmp $0x1,%eax - 406445: 0f 84 e5 00 00 00 je 406530 - 40644b: 4c 89 ef mov %r13,%rdi - 40644e: e8 5d 79 01 00 callq 41ddb0 <__cfree> - 406453: e9 59 ff ff ff jmpq 4063b1 - 406458: 48 8b 78 18 mov 0x18(%rax),%rdi - 40645c: 48 89 04 24 mov %rax,(%rsp) - 406460: e8 ab f7 ff ff callq 405c10 <__gettext_free_exp> - 406465: 48 8b 04 24 mov (%rsp),%rax - 406469: 48 8b 78 10 mov 0x10(%rax),%rdi - 40646d: 48 89 04 24 mov %rax,(%rsp) - 406471: e8 9a f7 ff ff callq 405c10 <__gettext_free_exp> - 406476: 48 8b 04 24 mov (%rsp),%rax - 40647a: 48 8b 78 08 mov 0x8(%rax),%rdi - 40647e: 48 89 04 24 mov %rax,(%rsp) - 406482: e8 89 f7 ff ff callq 405c10 <__gettext_free_exp> - 406487: 48 8b 04 24 mov (%rsp),%rax - 40648b: 48 89 c7 mov %rax,%rdi - 40648e: e8 1d 79 01 00 callq 41ddb0 <__cfree> - 406493: 49 8b 47 10 mov 0x10(%r15),%rax - 406497: 48 85 c0 test %rax,%rax - 40649a: 48 89 04 24 mov %rax,(%rsp) - 40649e: 74 26 je 4064c6 - 4064a0: 8b 00 mov (%rax),%eax - 4064a2: 83 f8 02 cmp $0x2,%eax - 4064a5: 0f 84 9d 20 00 00 je 408548 - 4064ab: 83 f8 03 cmp $0x3,%eax - 4064ae: 0f 84 87 20 00 00 je 40853b - 4064b4: 83 f8 01 cmp $0x1,%eax - 4064b7: 0f 84 bd 20 00 00 je 40857a - 4064bd: 48 8b 3c 24 mov (%rsp),%rdi - 4064c1: e8 ea 78 01 00 callq 41ddb0 <__cfree> - 4064c6: 49 8b 47 08 mov 0x8(%r15),%rax - 4064ca: 48 85 c0 test %rax,%rax - 4064cd: 48 89 04 24 mov %rax,(%rsp) - 4064d1: 74 26 je 4064f9 - 4064d3: 8b 00 mov (%rax),%eax - 4064d5: 83 f8 02 cmp $0x2,%eax - 4064d8: 0f 84 9f 14 00 00 je 40797d - 4064de: 83 f8 03 cmp $0x3,%eax - 4064e1: 0f 84 89 14 00 00 je 407970 - 4064e7: 83 f8 01 cmp $0x1,%eax - 4064ea: 0f 84 bf 14 00 00 je 4079af - 4064f0: 48 8b 3c 24 mov (%rsp),%rdi - 4064f4: e8 b7 78 01 00 callq 41ddb0 <__cfree> - 4064f9: 4c 89 ff mov %r15,%rdi - 4064fc: e8 af 78 01 00 callq 41ddb0 <__cfree> - 406501: 4d 8b 7d 10 mov 0x10(%r13),%r15 - 406505: 4d 85 ff test %r15,%r15 - 406508: 74 26 je 406530 - 40650a: 41 8b 07 mov (%r15),%eax - 40650d: 83 f8 02 cmp $0x2,%eax - 406510: 0f 84 f8 10 00 00 je 40760e - 406516: 83 f8 03 cmp $0x3,%eax - 406519: 0f 84 c1 10 00 00 je 4075e0 - 40651f: 83 f8 01 cmp $0x1,%eax - 406522: 0f 84 12 05 00 00 je 406a3a - 406528: 4c 89 ff mov %r15,%rdi - 40652b: e8 80 78 01 00 callq 41ddb0 <__cfree> - 406530: 4d 8b 7d 08 mov 0x8(%r13),%r15 - 406534: 4d 85 ff test %r15,%r15 - 406537: 0f 84 0e ff ff ff je 40644b - 40653d: 41 8b 07 mov (%r15),%eax - 406540: 83 f8 02 cmp $0x2,%eax - 406543: 0f 84 8a 01 00 00 je 4066d3 - 406549: 83 f8 03 cmp $0x3,%eax - 40654c: 0f 84 4e 01 00 00 je 4066a0 - 406552: 83 f8 01 cmp $0x1,%eax - 406555: 0f 84 ab 01 00 00 je 406706 - 40655b: 4c 89 ff mov %r15,%rdi - 40655e: e8 4d 78 01 00 callq 41ddb0 <__cfree> - 406563: e9 e3 fe ff ff jmpq 40644b - 406568: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40656c: e8 9f f6 ff ff callq 405c10 <__gettext_free_exp> - 406571: 49 8b 7f 10 mov 0x10(%r15),%rdi - 406575: e8 96 f6 ff ff callq 405c10 <__gettext_free_exp> - 40657a: 49 8b 7f 08 mov 0x8(%r15),%rdi - 40657e: e8 8d f6 ff ff callq 405c10 <__gettext_free_exp> - 406583: 4c 89 ff mov %r15,%rdi - 406586: e8 25 78 01 00 callq 41ddb0 <__cfree> - 40658b: 4d 8b 7d 10 mov 0x10(%r13),%r15 - 40658f: 4d 85 ff test %r15,%r15 - 406592: 74 26 je 4065ba - 406594: 41 8b 07 mov (%r15),%eax - 406597: 83 f8 02 cmp $0x2,%eax - 40659a: 0f 84 67 20 00 00 je 408607 - 4065a0: 83 f8 03 cmp $0x3,%eax - 4065a3: 0f 84 55 20 00 00 je 4085fe - 4065a9: 83 f8 01 cmp $0x1,%eax - 4065ac: 0f 84 5e 20 00 00 je 408610 - 4065b2: 4c 89 ff mov %r15,%rdi - 4065b5: e8 f6 77 01 00 callq 41ddb0 <__cfree> - 4065ba: 4d 8b 7d 08 mov 0x8(%r13),%r15 - 4065be: 4d 85 ff test %r15,%r15 - 4065c1: 74 26 je 4065e9 - 4065c3: 41 8b 07 mov (%r15),%eax - 4065c6: 83 f8 02 cmp $0x2,%eax - 4065c9: 0f 84 aa 15 00 00 je 407b79 - 4065cf: 83 f8 03 cmp $0x3,%eax - 4065d2: 0f 84 98 15 00 00 je 407b70 - 4065d8: 83 f8 01 cmp $0x1,%eax - 4065db: 0f 84 c6 15 00 00 je 407ba7 - 4065e1: 4c 89 ff mov %r15,%rdi - 4065e4: e8 c7 77 01 00 callq 41ddb0 <__cfree> - 4065e9: 4c 89 ef mov %r13,%rdi - 4065ec: e8 bf 77 01 00 callq 41ddb0 <__cfree> - 4065f1: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 - 4065f6: 4d 85 ed test %r13,%r13 - 4065f9: 74 27 je 406622 - 4065fb: 41 8b 45 00 mov 0x0(%r13),%eax - 4065ff: 83 f8 02 cmp $0x2,%eax - 406602: 0f 84 27 13 00 00 je 40792f - 406608: 83 f8 03 cmp $0x3,%eax - 40660b: 0f 84 ef 12 00 00 je 407900 - 406611: 83 f8 01 cmp $0x1,%eax - 406614: 0f 84 78 06 00 00 je 406c92 - 40661a: 4c 89 ef mov %r13,%rdi - 40661d: e8 8e 77 01 00 callq 41ddb0 <__cfree> - 406622: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 - 406627: 4d 85 ed test %r13,%r13 - 40662a: 0f 84 5d fd ff ff je 40638d - 406630: 41 8b 45 00 mov 0x0(%r13),%eax - 406634: 83 f8 02 cmp $0x2,%eax - 406637: 0f 84 32 01 00 00 je 40676f - 40663d: 83 f8 03 cmp $0x3,%eax - 406640: 0f 84 fa 00 00 00 je 406740 - 406646: 83 f8 01 cmp $0x1,%eax - 406649: 0f 84 4f 01 00 00 je 40679e - 40664f: 4c 89 ef mov %r13,%rdi - 406652: e8 59 77 01 00 callq 41ddb0 <__cfree> - 406657: e9 31 fd ff ff jmpq 40638d - 40665c: 0f 1f 40 00 nopl 0x0(%rax) - 406660: 4c 8b 63 18 mov 0x18(%rbx),%r12 - 406664: 4d 85 e4 test %r12,%r12 - 406667: 0f 84 f8 fc ff ff je 406365 - 40666d: 41 8b 04 24 mov (%r12),%eax - 406671: 83 f8 02 cmp $0x2,%eax - 406674: 0f 84 47 09 00 00 je 406fc1 - 40667a: 83 f8 03 cmp $0x3,%eax - 40667d: 0f 84 0d 09 00 00 je 406f90 - 406683: 83 f8 01 cmp $0x1,%eax - 406686: 0f 84 73 02 00 00 je 4068ff - 40668c: 4c 89 e7 mov %r12,%rdi - 40668f: e8 1c 77 01 00 callq 41ddb0 <__cfree> - 406694: e9 cc fc ff ff jmpq 406365 - 406699: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4066a0: 49 8b 47 18 mov 0x18(%r15),%rax - 4066a4: 48 85 c0 test %rax,%rax - 4066a7: 48 89 04 24 mov %rax,(%rsp) - 4066ab: 74 26 je 4066d3 - 4066ad: 8b 00 mov (%rax),%eax - 4066af: 83 f8 02 cmp $0x2,%eax - 4066b2: 0f 84 45 13 00 00 je 4079fd - 4066b8: 83 f8 03 cmp $0x3,%eax - 4066bb: 0f 84 2f 13 00 00 je 4079f0 - 4066c1: 83 f8 01 cmp $0x1,%eax - 4066c4: 0f 84 65 13 00 00 je 407a2f - 4066ca: 48 8b 3c 24 mov (%rsp),%rdi - 4066ce: e8 dd 76 01 00 callq 41ddb0 <__cfree> - 4066d3: 49 8b 47 10 mov 0x10(%r15),%rax - 4066d7: 48 85 c0 test %rax,%rax - 4066da: 48 89 04 24 mov %rax,(%rsp) - 4066de: 74 26 je 406706 - 4066e0: 8b 00 mov (%rax),%eax - 4066e2: 83 f8 02 cmp $0x2,%eax - 4066e5: 0f 84 87 0a 00 00 je 407172 - 4066eb: 83 f8 03 cmp $0x3,%eax - 4066ee: 0f 84 4c 0a 00 00 je 407140 - 4066f4: 83 f8 01 cmp $0x1,%eax - 4066f7: 0f 84 a7 0a 00 00 je 4071a4 - 4066fd: 48 8b 3c 24 mov (%rsp),%rdi - 406701: e8 aa 76 01 00 callq 41ddb0 <__cfree> - 406706: 49 8b 47 08 mov 0x8(%r15),%rax - 40670a: 48 85 c0 test %rax,%rax - 40670d: 0f 84 48 fe ff ff je 40655b - 406713: 8b 10 mov (%rax),%edx - 406715: 83 fa 02 cmp $0x2,%edx - 406718: 0f 84 f8 0c 00 00 je 407416 - 40671e: 83 fa 03 cmp $0x3,%edx - 406721: 0f 84 b9 0c 00 00 je 4073e0 - 406727: 83 fa 01 cmp $0x1,%edx - 40672a: 0f 84 71 02 00 00 je 4069a1 - 406730: 48 89 c7 mov %rax,%rdi - 406733: e8 78 76 01 00 callq 41ddb0 <__cfree> - 406738: e9 1e fe ff ff jmpq 40655b - 40673d: 0f 1f 00 nopl (%rax) - 406740: 4d 8b 7d 18 mov 0x18(%r13),%r15 - 406744: 4d 85 ff test %r15,%r15 - 406747: 74 26 je 40676f - 406749: 41 8b 07 mov (%r15),%eax - 40674c: 83 f8 02 cmp $0x2,%eax - 40674f: 0f 84 54 16 00 00 je 407da9 - 406755: 83 f8 03 cmp $0x3,%eax - 406758: 0f 84 42 16 00 00 je 407da0 - 40675e: 83 f8 01 cmp $0x1,%eax - 406761: 0f 84 70 16 00 00 je 407dd7 - 406767: 4c 89 ff mov %r15,%rdi - 40676a: e8 41 76 01 00 callq 41ddb0 <__cfree> - 40676f: 4d 8b 7d 10 mov 0x10(%r13),%r15 - 406773: 4d 85 ff test %r15,%r15 - 406776: 74 26 je 40679e - 406778: 41 8b 07 mov (%r15),%eax - 40677b: 83 f8 02 cmp $0x2,%eax - 40677e: 0f 84 fa 0e 00 00 je 40767e - 406784: 83 f8 03 cmp $0x3,%eax - 406787: 0f 84 c3 0e 00 00 je 407650 - 40678d: 83 f8 01 cmp $0x1,%eax - 406790: 0f 84 1b 0f 00 00 je 4076b1 - 406796: 4c 89 ff mov %r15,%rdi - 406799: e8 12 76 01 00 callq 41ddb0 <__cfree> - 40679e: 4d 8b 7d 08 mov 0x8(%r13),%r15 - 4067a2: 4d 85 ff test %r15,%r15 - 4067a5: 0f 84 a4 fe ff ff je 40664f - 4067ab: 41 8b 07 mov (%r15),%eax - 4067ae: 83 f8 02 cmp $0x2,%eax - 4067b1: 0f 84 07 11 00 00 je 4078be - 4067b7: 83 f8 03 cmp $0x3,%eax - 4067ba: 0f 84 d0 10 00 00 je 407890 - 4067c0: 83 f8 01 cmp $0x1,%eax - 4067c3: 0f 84 11 04 00 00 je 406bda - 4067c9: 4c 89 ff mov %r15,%rdi - 4067cc: e8 df 75 01 00 callq 41ddb0 <__cfree> - 4067d1: e9 79 fe ff ff jmpq 40664f - 4067d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4067dd: 00 00 00 - 4067e0: 4d 8b 7d 18 mov 0x18(%r13),%r15 - 4067e4: 4d 85 ff test %r15,%r15 - 4067e7: 74 26 je 40680f - 4067e9: 41 8b 07 mov (%r15),%eax - 4067ec: 83 f8 02 cmp $0x2,%eax - 4067ef: 0f 84 f4 13 00 00 je 407be9 - 4067f5: 83 f8 03 cmp $0x3,%eax - 4067f8: 0f 84 e2 13 00 00 je 407be0 - 4067fe: 83 f8 01 cmp $0x1,%eax - 406801: 0f 84 10 14 00 00 je 407c17 - 406807: 4c 89 ff mov %r15,%rdi - 40680a: e8 a1 75 01 00 callq 41ddb0 <__cfree> - 40680f: 4d 8b 7d 10 mov 0x10(%r13),%r15 - 406813: 4d 85 ff test %r15,%r15 - 406816: 74 26 je 40683e - 406818: 41 8b 07 mov (%r15),%eax - 40681b: 83 f8 02 cmp $0x2,%eax - 40681e: 0f 84 62 0c 00 00 je 407486 - 406824: 83 f8 03 cmp $0x3,%eax - 406827: 0f 84 2b 0c 00 00 je 407458 - 40682d: 83 f8 01 cmp $0x1,%eax - 406830: 0f 84 83 0c 00 00 je 4074b9 - 406836: 4c 89 ff mov %r15,%rdi - 406839: e8 72 75 01 00 callq 41ddb0 <__cfree> - 40683e: 4d 8b 7d 08 mov 0x8(%r13),%r15 - 406842: 4d 85 ff test %r15,%r15 - 406845: 0f 84 cf fb ff ff je 40641a - 40684b: 41 8b 07 mov (%r15),%eax - 40684e: 83 f8 02 cmp $0x2,%eax - 406851: 0f 84 47 0d 00 00 je 40759e - 406857: 83 f8 03 cmp $0x3,%eax - 40685a: 0f 84 10 0d 00 00 je 407570 - 406860: 83 f8 01 cmp $0x1,%eax - 406863: 0f 84 bb 02 00 00 je 406b24 - 406869: 4c 89 ff mov %r15,%rdi - 40686c: e8 3f 75 01 00 callq 41ddb0 <__cfree> - 406871: e9 a4 fb ff ff jmpq 40641a - 406876: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40687a: e8 91 f3 ff ff callq 405c10 <__gettext_free_exp> - 40687f: 49 8b 7f 10 mov 0x10(%r15),%rdi - 406883: e8 88 f3 ff ff callq 405c10 <__gettext_free_exp> - 406888: 49 8b 7f 08 mov 0x8(%r15),%rdi - 40688c: e8 7f f3 ff ff callq 405c10 <__gettext_free_exp> - 406891: 4c 89 ff mov %r15,%rdi - 406894: e8 17 75 01 00 callq 41ddb0 <__cfree> - 406899: 4d 8b 7d 10 mov 0x10(%r13),%r15 - 40689d: 4d 85 ff test %r15,%r15 - 4068a0: 74 26 je 4068c8 - 4068a2: 41 8b 07 mov (%r15),%eax - 4068a5: 83 f8 02 cmp $0x2,%eax - 4068a8: 0f 84 10 1d 00 00 je 4085be - 4068ae: 83 f8 03 cmp $0x3,%eax - 4068b1: 0f 84 fe 1c 00 00 je 4085b5 - 4068b7: 83 f8 01 cmp $0x1,%eax - 4068ba: 0f 84 07 1d 00 00 je 4085c7 - 4068c0: 4c 89 ff mov %r15,%rdi - 4068c3: e8 e8 74 01 00 callq 41ddb0 <__cfree> - 4068c8: 4d 8b 7d 08 mov 0x8(%r13),%r15 - 4068cc: 4d 85 ff test %r15,%r15 - 4068cf: 74 26 je 4068f7 - 4068d1: 41 8b 07 mov (%r15),%eax - 4068d4: 83 f8 02 cmp $0x2,%eax - 4068d7: 0f 84 7c 13 00 00 je 407c59 - 4068dd: 83 f8 03 cmp $0x3,%eax - 4068e0: 0f 84 6a 13 00 00 je 407c50 - 4068e6: 83 f8 01 cmp $0x1,%eax - 4068e9: 0f 84 98 13 00 00 je 407c87 - 4068ef: 4c 89 ff mov %r15,%rdi - 4068f2: e8 b9 74 01 00 callq 41ddb0 <__cfree> - 4068f7: 4c 89 ef mov %r13,%rdi - 4068fa: e8 b1 74 01 00 callq 41ddb0 <__cfree> - 4068ff: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 - 406904: 4d 85 ed test %r13,%r13 - 406907: 0f 84 7f fd ff ff je 40668c - 40690d: 41 8b 45 00 mov 0x0(%r13),%eax - 406911: 83 f8 02 cmp $0x2,%eax - 406914: 0f 84 e5 03 00 00 je 406cff - 40691a: 83 f8 03 cmp $0x3,%eax - 40691d: 0f 84 ad 03 00 00 je 406cd0 - 406923: 83 f8 01 cmp $0x1,%eax - 406926: 0f 84 02 04 00 00 je 406d2e - 40692c: 4c 89 ef mov %r13,%rdi - 40692f: e8 7c 74 01 00 callq 41ddb0 <__cfree> - 406934: e9 53 fd ff ff jmpq 40668c - 406939: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 406940: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 406944: 48 89 44 24 08 mov %rax,0x8(%rsp) - 406949: 48 89 14 24 mov %rdx,(%rsp) - 40694d: e8 be f2 ff ff callq 405c10 <__gettext_free_exp> - 406952: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 406957: 48 8b 14 24 mov (%rsp),%rdx - 40695b: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40695f: 48 89 44 24 08 mov %rax,0x8(%rsp) - 406964: 48 89 14 24 mov %rdx,(%rsp) - 406968: e8 a3 f2 ff ff callq 405c10 <__gettext_free_exp> - 40696d: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 406972: 48 8b 14 24 mov (%rsp),%rdx - 406976: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40697a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40697f: 48 89 14 24 mov %rdx,(%rsp) - 406983: e8 88 f2 ff ff callq 405c10 <__gettext_free_exp> - 406988: 48 8b 14 24 mov (%rsp),%rdx - 40698c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 406991: 48 89 d7 mov %rdx,%rdi - 406994: 48 89 04 24 mov %rax,(%rsp) - 406998: e8 13 74 01 00 callq 41ddb0 <__cfree> - 40699d: 48 8b 04 24 mov (%rsp),%rax - 4069a1: 48 8b 78 08 mov 0x8(%rax),%rdi - 4069a5: 48 89 04 24 mov %rax,(%rsp) - 4069a9: e8 62 f2 ff ff callq 405c10 <__gettext_free_exp> - 4069ae: 48 8b 04 24 mov (%rsp),%rax - 4069b2: e9 79 fd ff ff jmpq 406730 - 4069b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4069be: 00 00 - 4069c0: 48 8b 04 24 mov (%rsp),%rax - 4069c4: 48 8b 78 18 mov 0x18(%rax),%rdi - 4069c8: e8 43 f2 ff ff callq 405c10 <__gettext_free_exp> - 4069cd: 48 8b 04 24 mov (%rsp),%rax - 4069d1: 48 8b 40 10 mov 0x10(%rax),%rax - 4069d5: 48 85 c0 test %rax,%rax - 4069d8: 74 25 je 4069ff - 4069da: 8b 10 mov (%rax),%edx - 4069dc: 83 fa 02 cmp $0x2,%edx - 4069df: 0f 84 fc 1c 00 00 je 4086e1 - 4069e5: 83 fa 03 cmp $0x3,%edx - 4069e8: 0f 84 e0 1c 00 00 je 4086ce - 4069ee: 83 fa 01 cmp $0x1,%edx - 4069f1: 0f 84 fd 1c 00 00 je 4086f4 - 4069f7: 48 89 c7 mov %rax,%rdi - 4069fa: e8 b1 73 01 00 callq 41ddb0 <__cfree> - 4069ff: 48 8b 04 24 mov (%rsp),%rax - 406a03: 48 8b 40 08 mov 0x8(%rax),%rax - 406a07: 48 85 c0 test %rax,%rax - 406a0a: 74 25 je 406a31 - 406a0c: 8b 10 mov (%rax),%edx - 406a0e: 83 fa 02 cmp $0x2,%edx - 406a11: 0f 84 8c 14 00 00 je 407ea3 - 406a17: 83 fa 03 cmp $0x3,%edx - 406a1a: 0f 84 70 14 00 00 je 407e90 - 406a20: 83 fa 01 cmp $0x1,%edx - 406a23: 0f 84 8d 14 00 00 je 407eb6 - 406a29: 48 89 c7 mov %rax,%rdi - 406a2c: e8 7f 73 01 00 callq 41ddb0 <__cfree> - 406a31: 48 8b 3c 24 mov (%rsp),%rdi - 406a35: e8 76 73 01 00 callq 41ddb0 <__cfree> - 406a3a: 49 8b 47 08 mov 0x8(%r15),%rax - 406a3e: 48 85 c0 test %rax,%rax - 406a41: 48 89 04 24 mov %rax,(%rsp) - 406a45: 0f 84 dd fa ff ff je 406528 - 406a4b: 8b 00 mov (%rax),%eax - 406a4d: 83 f8 02 cmp $0x2,%eax - 406a50: 0f 84 dc 08 00 00 je 407332 - 406a56: 83 f8 03 cmp $0x3,%eax - 406a59: 0f 84 a1 08 00 00 je 407300 - 406a5f: 83 f8 01 cmp $0x1,%eax - 406a62: 0f 84 fc 08 00 00 je 407364 - 406a68: 48 8b 3c 24 mov (%rsp),%rdi - 406a6c: e8 3f 73 01 00 callq 41ddb0 <__cfree> - 406a71: e9 b2 fa ff ff jmpq 406528 - 406a76: 48 8b 78 18 mov 0x18(%rax),%rdi - 406a7a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 406a7f: e8 8c f1 ff ff callq 405c10 <__gettext_free_exp> - 406a84: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 406a89: 48 8b 78 10 mov 0x10(%rax),%rdi - 406a8d: 48 89 44 24 08 mov %rax,0x8(%rsp) - 406a92: e8 79 f1 ff ff callq 405c10 <__gettext_free_exp> - 406a97: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 406a9c: 48 8b 78 08 mov 0x8(%rax),%rdi - 406aa0: 48 89 44 24 08 mov %rax,0x8(%rsp) - 406aa5: e8 66 f1 ff ff callq 405c10 <__gettext_free_exp> - 406aaa: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 406aaf: 48 89 c7 mov %rax,%rdi - 406ab2: e8 f9 72 01 00 callq 41ddb0 <__cfree> - 406ab7: 48 8b 04 24 mov (%rsp),%rax - 406abb: 48 8b 40 10 mov 0x10(%rax),%rax - 406abf: 48 85 c0 test %rax,%rax - 406ac2: 74 25 je 406ae9 - 406ac4: 8b 10 mov (%rax),%edx - 406ac6: 83 fa 02 cmp $0x2,%edx - 406ac9: 0f 84 d4 1b 00 00 je 4086a3 - 406acf: 83 fa 03 cmp $0x3,%edx - 406ad2: 0f 84 b8 1b 00 00 je 408690 - 406ad8: 83 fa 01 cmp $0x1,%edx - 406adb: 0f 84 d5 1b 00 00 je 4086b6 - 406ae1: 48 89 c7 mov %rax,%rdi - 406ae4: e8 c7 72 01 00 callq 41ddb0 <__cfree> - 406ae9: 48 8b 04 24 mov (%rsp),%rax - 406aed: 48 8b 40 08 mov 0x8(%rax),%rax - 406af1: 48 85 c0 test %rax,%rax - 406af4: 74 25 je 406b1b - 406af6: 8b 10 mov (%rax),%edx - 406af8: 83 fa 02 cmp $0x2,%edx - 406afb: 0f 84 22 14 00 00 je 407f23 - 406b01: 83 fa 03 cmp $0x3,%edx - 406b04: 0f 84 06 14 00 00 je 407f10 - 406b0a: 83 fa 01 cmp $0x1,%edx - 406b0d: 0f 84 23 14 00 00 je 407f36 - 406b13: 48 89 c7 mov %rax,%rdi - 406b16: e8 95 72 01 00 callq 41ddb0 <__cfree> - 406b1b: 48 8b 3c 24 mov (%rsp),%rdi - 406b1f: e8 8c 72 01 00 callq 41ddb0 <__cfree> - 406b24: 49 8b 47 08 mov 0x8(%r15),%rax - 406b28: 48 85 c0 test %rax,%rax - 406b2b: 48 89 04 24 mov %rax,(%rsp) - 406b2f: 0f 84 34 fd ff ff je 406869 - 406b35: 8b 00 mov (%rax),%eax - 406b37: 83 f8 02 cmp $0x2,%eax - 406b3a: 0f 84 12 07 00 00 je 407252 - 406b40: 83 f8 03 cmp $0x3,%eax - 406b43: 0f 84 d7 06 00 00 je 407220 - 406b49: 83 f8 01 cmp $0x1,%eax - 406b4c: 0f 84 32 07 00 00 je 407284 - 406b52: 48 8b 3c 24 mov (%rsp),%rdi - 406b56: e8 55 72 01 00 callq 41ddb0 <__cfree> - 406b5b: e9 09 fd ff ff jmpq 406869 - 406b60: 48 8b 04 24 mov (%rsp),%rax - 406b64: 48 8b 78 18 mov 0x18(%rax),%rdi - 406b68: e8 a3 f0 ff ff callq 405c10 <__gettext_free_exp> - 406b6d: 48 8b 04 24 mov (%rsp),%rax - 406b71: 48 8b 40 10 mov 0x10(%rax),%rax - 406b75: 48 85 c0 test %rax,%rax - 406b78: 74 25 je 406b9f - 406b7a: 8b 10 mov (%rax),%edx - 406b7c: 83 fa 02 cmp $0x2,%edx - 406b7f: 0f 84 16 1c 00 00 je 40879b - 406b85: 83 fa 03 cmp $0x3,%edx - 406b88: 0f 84 fa 1b 00 00 je 408788 - 406b8e: 83 fa 01 cmp $0x1,%edx - 406b91: 0f 84 17 1c 00 00 je 4087ae - 406b97: 48 89 c7 mov %rax,%rdi - 406b9a: e8 11 72 01 00 callq 41ddb0 <__cfree> - 406b9f: 48 8b 04 24 mov (%rsp),%rax - 406ba3: 48 8b 40 08 mov 0x8(%rax),%rax - 406ba7: 48 85 c0 test %rax,%rax - 406baa: 74 25 je 406bd1 - 406bac: 8b 10 mov (%rax),%edx - 406bae: 83 fa 02 cmp $0x2,%edx - 406bb1: 0f 84 6c 12 00 00 je 407e23 - 406bb7: 83 fa 03 cmp $0x3,%edx - 406bba: 0f 84 50 12 00 00 je 407e10 - 406bc0: 83 fa 01 cmp $0x1,%edx - 406bc3: 0f 84 6d 12 00 00 je 407e36 - 406bc9: 48 89 c7 mov %rax,%rdi - 406bcc: e8 df 71 01 00 callq 41ddb0 <__cfree> - 406bd1: 48 8b 3c 24 mov (%rsp),%rdi - 406bd5: e8 d6 71 01 00 callq 41ddb0 <__cfree> - 406bda: 49 8b 47 08 mov 0x8(%r15),%rax - 406bde: 48 85 c0 test %rax,%rax - 406be1: 48 89 04 24 mov %rax,(%rsp) - 406be5: 0f 84 de fb ff ff je 4067c9 - 406beb: 8b 00 mov (%rax),%eax - 406bed: 83 f8 02 cmp $0x2,%eax - 406bf0: 0f 84 94 04 00 00 je 40708a - 406bf6: 83 f8 03 cmp $0x3,%eax - 406bf9: 0f 84 59 04 00 00 je 407058 - 406bff: 83 f8 01 cmp $0x1,%eax - 406c02: 0f 84 b4 04 00 00 je 4070bc - 406c08: 48 8b 3c 24 mov (%rsp),%rdi - 406c0c: e8 9f 71 01 00 callq 41ddb0 <__cfree> - 406c11: e9 b3 fb ff ff jmpq 4067c9 - 406c16: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 406c1d: 00 00 00 - 406c20: 49 8b 7f 18 mov 0x18(%r15),%rdi - 406c24: e8 e7 ef ff ff callq 405c10 <__gettext_free_exp> - 406c29: 49 8b 47 10 mov 0x10(%r15),%rax - 406c2d: 48 85 c0 test %rax,%rax - 406c30: 74 25 je 406c57 - 406c32: 8b 10 mov (%rax),%edx - 406c34: 83 fa 02 cmp $0x2,%edx - 406c37: 0f 84 d8 1b 00 00 je 408815 - 406c3d: 83 fa 03 cmp $0x3,%edx - 406c40: 0f 84 be 1b 00 00 je 408804 - 406c46: 83 fa 01 cmp $0x1,%edx - 406c49: 0f 84 d7 1b 00 00 je 408826 - 406c4f: 48 89 c7 mov %rax,%rdi - 406c52: e8 59 71 01 00 callq 41ddb0 <__cfree> - 406c57: 49 8b 47 08 mov 0x8(%r15),%rax - 406c5b: 48 85 c0 test %rax,%rax - 406c5e: 48 89 04 24 mov %rax,(%rsp) - 406c62: 74 26 je 406c8a - 406c64: 8b 00 mov (%rax),%eax - 406c66: 83 f8 02 cmp $0x2,%eax - 406c69: 0f 84 2e 14 00 00 je 40809d - 406c6f: 83 f8 03 cmp $0x3,%eax - 406c72: 0f 84 18 14 00 00 je 408090 - 406c78: 83 f8 01 cmp $0x1,%eax - 406c7b: 0f 84 4e 14 00 00 je 4080cf - 406c81: 48 8b 3c 24 mov (%rsp),%rdi - 406c85: e8 26 71 01 00 callq 41ddb0 <__cfree> - 406c8a: 4c 89 ff mov %r15,%rdi - 406c8d: e8 1e 71 01 00 callq 41ddb0 <__cfree> - 406c92: 4d 8b 7d 08 mov 0x8(%r13),%r15 - 406c96: 4d 85 ff test %r15,%r15 - 406c99: 0f 84 7b f9 ff ff je 40661a - 406c9f: 41 8b 07 mov (%r15),%eax - 406ca2: 83 f8 02 cmp $0x2,%eax - 406ca5: 0f 84 f3 0a 00 00 je 40779e - 406cab: 83 f8 03 cmp $0x3,%eax - 406cae: 0f 84 bc 0a 00 00 je 407770 - 406cb4: 83 f8 01 cmp $0x1,%eax - 406cb7: 0f 84 14 0b 00 00 je 4077d1 - 406cbd: 4c 89 ff mov %r15,%rdi - 406cc0: e8 eb 70 01 00 callq 41ddb0 <__cfree> - 406cc5: e9 50 f9 ff ff jmpq 40661a - 406cca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 406cd0: 4d 8b 7d 18 mov 0x18(%r13),%r15 - 406cd4: 4d 85 ff test %r15,%r15 - 406cd7: 74 26 je 406cff - 406cd9: 41 8b 07 mov (%r15),%eax - 406cdc: 83 f8 02 cmp $0x2,%eax - 406cdf: 0f 84 5b 22 00 00 je 408f40 - 406ce5: 83 f8 03 cmp $0x3,%eax - 406ce8: 0f 84 49 22 00 00 je 408f37 - 406cee: 83 f8 01 cmp $0x1,%eax - 406cf1: 0f 84 52 22 00 00 je 408f49 - 406cf7: 4c 89 ff mov %r15,%rdi - 406cfa: e8 b1 70 01 00 callq 41ddb0 <__cfree> - 406cff: 4d 8b 7d 10 mov 0x10(%r13),%r15 - 406d03: 4d 85 ff test %r15,%r15 - 406d06: 74 26 je 406d2e - 406d08: 41 8b 07 mov (%r15),%eax - 406d0b: 83 f8 02 cmp $0x2,%eax - 406d0e: 0f 84 b5 0f 00 00 je 407cc9 - 406d14: 83 f8 03 cmp $0x3,%eax - 406d17: 0f 84 a3 0f 00 00 je 407cc0 - 406d1d: 83 f8 01 cmp $0x1,%eax - 406d20: 0f 84 d1 0f 00 00 je 407cf7 - 406d26: 4c 89 ff mov %r15,%rdi - 406d29: e8 82 70 01 00 callq 41ddb0 <__cfree> - 406d2e: 4d 8b 7d 08 mov 0x8(%r13),%r15 - 406d32: 4d 85 ff test %r15,%r15 - 406d35: 0f 84 f1 fb ff ff je 40692c - 406d3b: 41 8b 07 mov (%r15),%eax - 406d3e: 83 f8 02 cmp $0x2,%eax - 406d41: 74 56 je 406d99 - 406d43: 83 f8 03 cmp $0x3,%eax - 406d46: 0f 84 14 21 00 00 je 408e60 - 406d4c: 83 f8 01 cmp $0x1,%eax - 406d4f: 74 76 je 406dc7 - 406d51: 4c 89 ff mov %r15,%rdi - 406d54: e8 57 70 01 00 callq 41ddb0 <__cfree> - 406d59: e9 ce fb ff ff jmpq 40692c - 406d5e: 48 8b 78 18 mov 0x18(%rax),%rdi - 406d62: 48 89 04 24 mov %rax,(%rsp) - 406d66: e8 a5 ee ff ff callq 405c10 <__gettext_free_exp> - 406d6b: 48 8b 04 24 mov (%rsp),%rax - 406d6f: 48 8b 78 10 mov 0x10(%rax),%rdi - 406d73: 48 89 04 24 mov %rax,(%rsp) - 406d77: e8 94 ee ff ff callq 405c10 <__gettext_free_exp> - 406d7c: 48 8b 04 24 mov (%rsp),%rax - 406d80: 48 8b 78 08 mov 0x8(%rax),%rdi - 406d84: 48 89 04 24 mov %rax,(%rsp) - 406d88: e8 83 ee ff ff callq 405c10 <__gettext_free_exp> - 406d8d: 48 8b 04 24 mov (%rsp),%rax - 406d91: 48 89 c7 mov %rax,%rdi - 406d94: e8 17 70 01 00 callq 41ddb0 <__cfree> - 406d99: 49 8b 47 10 mov 0x10(%r15),%rax - 406d9d: 48 85 c0 test %rax,%rax - 406da0: 74 25 je 406dc7 - 406da2: 8b 10 mov (%rax),%edx - 406da4: 83 fa 02 cmp $0x2,%edx - 406da7: 0f 84 1b 16 00 00 je 4083c8 - 406dad: 83 fa 03 cmp $0x3,%edx - 406db0: 0f 84 01 16 00 00 je 4083b7 - 406db6: 83 fa 01 cmp $0x1,%edx - 406db9: 0f 84 1a 16 00 00 je 4083d9 - 406dbf: 48 89 c7 mov %rax,%rdi - 406dc2: e8 e9 6f 01 00 callq 41ddb0 <__cfree> - 406dc7: 49 8b 47 08 mov 0x8(%r15),%rax - 406dcb: 48 85 c0 test %rax,%rax - 406dce: 48 89 04 24 mov %rax,(%rsp) - 406dd2: 0f 84 79 ff ff ff je 406d51 - 406dd8: 8b 00 mov (%rax),%eax - 406dda: 83 f8 02 cmp $0x2,%eax - 406ddd: 0f 84 9a 0c 00 00 je 407a7d - 406de3: 83 f8 03 cmp $0x3,%eax - 406de6: 0f 84 84 0c 00 00 je 407a70 - 406dec: 83 f8 01 cmp $0x1,%eax - 406def: 0f 84 ba 0c 00 00 je 407aaf - 406df5: 48 8b 3c 24 mov (%rsp),%rdi - 406df9: e8 b2 6f 01 00 callq 41ddb0 <__cfree> - 406dfe: 4c 89 ff mov %r15,%rdi - 406e01: e8 aa 6f 01 00 callq 41ddb0 <__cfree> - 406e06: e9 21 fb ff ff jmpq 40692c - 406e0b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 406e10: 4d 8b 7d 18 mov 0x18(%r13),%r15 - 406e14: 4d 85 ff test %r15,%r15 - 406e17: 74 26 je 406e3f - 406e19: 41 8b 07 mov (%r15),%eax - 406e1c: 83 f8 02 cmp $0x2,%eax - 406e1f: 0f 84 73 20 00 00 je 408e98 - 406e25: 83 f8 03 cmp $0x3,%eax - 406e28: 0f 84 61 20 00 00 je 408e8f - 406e2e: 83 f8 01 cmp $0x1,%eax - 406e31: 0f 84 6a 20 00 00 je 408ea1 - 406e37: 4c 89 ff mov %r15,%rdi - 406e3a: e8 71 6f 01 00 callq 41ddb0 <__cfree> - 406e3f: 4d 8b 7d 10 mov 0x10(%r13),%r15 - 406e43: 4d 85 ff test %r15,%r15 - 406e46: 74 26 je 406e6e - 406e48: 41 8b 07 mov (%r15),%eax - 406e4b: 83 f8 02 cmp $0x2,%eax - 406e4e: 0f 84 e5 0e 00 00 je 407d39 - 406e54: 83 f8 03 cmp $0x3,%eax - 406e57: 0f 84 d3 0e 00 00 je 407d30 - 406e5d: 83 f8 01 cmp $0x1,%eax - 406e60: 0f 84 01 0f 00 00 je 407d67 - 406e66: 4c 89 ff mov %r15,%rdi - 406e69: e8 42 6f 01 00 callq 41ddb0 <__cfree> - 406e6e: 4d 8b 7d 08 mov 0x8(%r13),%r15 - 406e72: 4d 85 ff test %r15,%r15 - 406e75: 0f 84 6e f5 ff ff je 4063e9 - 406e7b: 41 8b 07 mov (%r15),%eax - 406e7e: 83 f8 02 cmp $0x2,%eax - 406e81: 74 56 je 406ed9 - 406e83: 83 f8 03 cmp $0x3,%eax - 406e86: 0f 84 7c 20 00 00 je 408f08 - 406e8c: 83 f8 01 cmp $0x1,%eax - 406e8f: 74 76 je 406f07 - 406e91: 4c 89 ff mov %r15,%rdi - 406e94: e8 17 6f 01 00 callq 41ddb0 <__cfree> - 406e99: e9 4b f5 ff ff jmpq 4063e9 - 406e9e: 48 8b 78 18 mov 0x18(%rax),%rdi - 406ea2: 48 89 04 24 mov %rax,(%rsp) - 406ea6: e8 65 ed ff ff callq 405c10 <__gettext_free_exp> - 406eab: 48 8b 04 24 mov (%rsp),%rax - 406eaf: 48 8b 78 10 mov 0x10(%rax),%rdi - 406eb3: 48 89 04 24 mov %rax,(%rsp) - 406eb7: e8 54 ed ff ff callq 405c10 <__gettext_free_exp> - 406ebc: 48 8b 04 24 mov (%rsp),%rax - 406ec0: 48 8b 78 08 mov 0x8(%rax),%rdi - 406ec4: 48 89 04 24 mov %rax,(%rsp) - 406ec8: e8 43 ed ff ff callq 405c10 <__gettext_free_exp> - 406ecd: 48 8b 04 24 mov (%rsp),%rax - 406ed1: 48 89 c7 mov %rax,%rdi - 406ed4: e8 d7 6e 01 00 callq 41ddb0 <__cfree> - 406ed9: 49 8b 47 10 mov 0x10(%r15),%rax - 406edd: 48 85 c0 test %rax,%rax - 406ee0: 74 25 je 406f07 - 406ee2: 8b 10 mov (%rax),%edx - 406ee4: 83 fa 02 cmp $0x2,%edx - 406ee7: 0f 84 9d 15 00 00 je 40848a - 406eed: 83 fa 03 cmp $0x3,%edx - 406ef0: 0f 84 83 15 00 00 je 408479 - 406ef6: 83 fa 01 cmp $0x1,%edx - 406ef9: 0f 84 9c 15 00 00 je 40849b - 406eff: 48 89 c7 mov %rax,%rdi - 406f02: e8 a9 6e 01 00 callq 41ddb0 <__cfree> - 406f07: 49 8b 47 08 mov 0x8(%r15),%rax - 406f0b: 48 85 c0 test %rax,%rax - 406f0e: 48 89 04 24 mov %rax,(%rsp) - 406f12: 0f 84 79 ff ff ff je 406e91 - 406f18: 8b 00 mov (%rax),%eax - 406f1a: 83 f8 02 cmp $0x2,%eax - 406f1d: 0f 84 da 0b 00 00 je 407afd - 406f23: 83 f8 03 cmp $0x3,%eax - 406f26: 0f 84 c4 0b 00 00 je 407af0 - 406f2c: 83 f8 01 cmp $0x1,%eax - 406f2f: 0f 84 fa 0b 00 00 je 407b2f - 406f35: 48 8b 3c 24 mov (%rsp),%rdi - 406f39: e8 72 6e 01 00 callq 41ddb0 <__cfree> - 406f3e: 4c 89 ff mov %r15,%rdi - 406f41: e8 6a 6e 01 00 callq 41ddb0 <__cfree> - 406f46: e9 9e f4 ff ff jmpq 4063e9 - 406f4b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 406f50: 4d 8b 7d 18 mov 0x18(%r13),%r15 - 406f54: 4d 85 ff test %r15,%r15 - 406f57: 0f 84 a4 f5 ff ff je 406501 - 406f5d: 41 8b 07 mov (%r15),%eax - 406f60: 83 f8 02 cmp $0x2,%eax - 406f63: 0f 84 2a f5 ff ff je 406493 - 406f69: 83 f8 03 cmp $0x3,%eax - 406f6c: 0f 84 3e 20 00 00 je 408fb0 - 406f72: 83 f8 01 cmp $0x1,%eax - 406f75: 0f 84 4b f5 ff ff je 4064c6 - 406f7b: 4c 89 ff mov %r15,%rdi - 406f7e: e8 2d 6e 01 00 callq 41ddb0 <__cfree> - 406f83: e9 79 f5 ff ff jmpq 406501 - 406f88: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 406f8f: 00 - 406f90: 4d 8b 6c 24 18 mov 0x18(%r12),%r13 - 406f95: 4d 85 ed test %r13,%r13 - 406f98: 74 27 je 406fc1 - 406f9a: 41 8b 45 00 mov 0x0(%r13),%eax - 406f9e: 83 f8 02 cmp $0x2,%eax - 406fa1: 0f 84 f2 12 00 00 je 408299 - 406fa7: 83 f8 03 cmp $0x3,%eax - 406faa: 0f 84 e0 12 00 00 je 408290 - 406fb0: 83 f8 01 cmp $0x1,%eax - 406fb3: 0f 84 0f 13 00 00 je 4082c8 - 406fb9: 4c 89 ef mov %r13,%rdi - 406fbc: e8 ef 6d 01 00 callq 41ddb0 <__cfree> - 406fc1: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 - 406fc6: 4d 85 ed test %r13,%r13 - 406fc9: 0f 84 30 f9 ff ff je 4068ff - 406fcf: 41 8b 45 00 mov 0x0(%r13),%eax - 406fd3: 83 f8 02 cmp $0x2,%eax - 406fd6: 0f 84 bd f8 ff ff je 406899 - 406fdc: 83 f8 03 cmp $0x3,%eax - 406fdf: 0f 84 ab 20 00 00 je 409090 - 406fe5: 83 f8 01 cmp $0x1,%eax - 406fe8: 0f 84 da f8 ff ff je 4068c8 - 406fee: 4c 89 ef mov %r13,%rdi - 406ff1: e8 ba 6d 01 00 callq 41ddb0 <__cfree> - 406ff6: e9 04 f9 ff ff jmpq 4068ff - 406ffb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 407000: 4d 8b 6c 24 18 mov 0x18(%r12),%r13 - 407005: 4d 85 ed test %r13,%r13 - 407008: 0f 84 e3 f5 ff ff je 4065f1 - 40700e: 41 8b 45 00 mov 0x0(%r13),%eax - 407012: 83 f8 02 cmp $0x2,%eax - 407015: 0f 84 70 f5 ff ff je 40658b - 40701b: 83 f8 03 cmp $0x3,%eax - 40701e: 0f 84 34 20 00 00 je 409058 - 407024: 83 f8 01 cmp $0x1,%eax - 407027: 0f 84 8d f5 ff ff je 4065ba - 40702d: 4c 89 ef mov %r13,%rdi - 407030: e8 7b 6d 01 00 callq 41ddb0 <__cfree> - 407035: e9 b7 f5 ff ff jmpq 4065f1 - 40703a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 407040: 48 83 c4 18 add $0x18,%rsp - 407044: 31 c0 xor %eax,%eax - 407046: 5b pop %rbx - 407047: 5d pop %rbp - 407048: 41 5c pop %r12 - 40704a: 41 5d pop %r13 - 40704c: 41 5e pop %r14 - 40704e: 41 5f pop %r15 - 407050: c3 retq - 407051: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 407058: 48 8b 04 24 mov (%rsp),%rax - 40705c: 48 8b 40 18 mov 0x18(%rax),%rax - 407060: 48 85 c0 test %rax,%rax - 407063: 74 25 je 40708a - 407065: 8b 10 mov (%rax),%edx - 407067: 83 fa 02 cmp $0x2,%edx - 40706a: 0f 84 63 20 00 00 je 4090d3 - 407070: 83 fa 03 cmp $0x3,%edx - 407073: 0f 84 47 20 00 00 je 4090c0 - 407079: 83 fa 01 cmp $0x1,%edx - 40707c: 0f 84 64 20 00 00 je 4090e6 - 407082: 48 89 c7 mov %rax,%rdi - 407085: e8 26 6d 01 00 callq 41ddb0 <__cfree> - 40708a: 48 8b 04 24 mov (%rsp),%rax - 40708e: 48 8b 40 10 mov 0x10(%rax),%rax - 407092: 48 85 c0 test %rax,%rax - 407095: 74 25 je 4070bc - 407097: 8b 10 mov (%rax),%edx - 407099: 83 fa 02 cmp $0x2,%edx - 40709c: 0f 84 01 0f 00 00 je 407fa3 - 4070a2: 83 fa 03 cmp $0x3,%edx - 4070a5: 0f 84 e5 0e 00 00 je 407f90 - 4070ab: 83 fa 01 cmp $0x1,%edx - 4070ae: 0f 84 02 0f 00 00 je 407fb6 - 4070b4: 48 89 c7 mov %rax,%rdi - 4070b7: e8 f4 6c 01 00 callq 41ddb0 <__cfree> - 4070bc: 48 8b 04 24 mov (%rsp),%rax - 4070c0: 48 8b 40 08 mov 0x8(%rax),%rax - 4070c4: 48 85 c0 test %rax,%rax - 4070c7: 0f 84 3b fb ff ff je 406c08 - 4070cd: 8b 10 mov (%rax),%edx - 4070cf: 83 fa 02 cmp $0x2,%edx - 4070d2: 74 2f je 407103 - 4070d4: 83 fa 03 cmp $0x3,%edx - 4070d7: 74 17 je 4070f0 - 4070d9: 83 fa 01 cmp $0x1,%edx - 4070dc: 74 38 je 407116 - 4070de: 48 89 c7 mov %rax,%rdi - 4070e1: e8 ca 6c 01 00 callq 41ddb0 <__cfree> - 4070e6: e9 1d fb ff ff jmpq 406c08 - 4070eb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4070f0: 48 8b 78 18 mov 0x18(%rax),%rdi - 4070f4: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4070f9: e8 12 eb ff ff callq 405c10 <__gettext_free_exp> - 4070fe: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407103: 48 8b 78 10 mov 0x10(%rax),%rdi - 407107: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40710c: e8 ff ea ff ff callq 405c10 <__gettext_free_exp> - 407111: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407116: 48 8b 78 08 mov 0x8(%rax),%rdi - 40711a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40711f: e8 ec ea ff ff callq 405c10 <__gettext_free_exp> - 407124: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407129: 48 89 c7 mov %rax,%rdi - 40712c: e8 7f 6c 01 00 callq 41ddb0 <__cfree> - 407131: e9 d2 fa ff ff jmpq 406c08 - 407136: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40713d: 00 00 00 - 407140: 48 8b 04 24 mov (%rsp),%rax - 407144: 48 8b 40 18 mov 0x18(%rax),%rax - 407148: 48 85 c0 test %rax,%rax - 40714b: 74 25 je 407172 - 40714d: 8b 10 mov (%rax),%edx - 40714f: 83 fa 02 cmp $0x2,%edx - 407152: 0f 84 cb 21 00 00 je 409323 - 407158: 83 fa 03 cmp $0x3,%edx - 40715b: 0f 84 af 21 00 00 je 409310 - 407161: 83 fa 01 cmp $0x1,%edx - 407164: 0f 84 cc 21 00 00 je 409336 - 40716a: 48 89 c7 mov %rax,%rdi - 40716d: e8 3e 6c 01 00 callq 41ddb0 <__cfree> - 407172: 48 8b 04 24 mov (%rsp),%rax - 407176: 48 8b 40 10 mov 0x10(%rax),%rax - 40717a: 48 85 c0 test %rax,%rax - 40717d: 74 25 je 4071a4 - 40717f: 8b 10 mov (%rax),%edx - 407181: 83 fa 02 cmp $0x2,%edx - 407184: 0f 84 59 0d 00 00 je 407ee3 - 40718a: 83 fa 03 cmp $0x3,%edx - 40718d: 0f 84 3d 0d 00 00 je 407ed0 - 407193: 83 fa 01 cmp $0x1,%edx - 407196: 0f 84 5a 0d 00 00 je 407ef6 - 40719c: 48 89 c7 mov %rax,%rdi - 40719f: e8 0c 6c 01 00 callq 41ddb0 <__cfree> - 4071a4: 48 8b 04 24 mov (%rsp),%rax - 4071a8: 48 8b 40 08 mov 0x8(%rax),%rax - 4071ac: 48 85 c0 test %rax,%rax - 4071af: 0f 84 48 f5 ff ff je 4066fd - 4071b5: 8b 10 mov (%rax),%edx - 4071b7: 83 fa 02 cmp $0x2,%edx - 4071ba: 74 2f je 4071eb - 4071bc: 83 fa 03 cmp $0x3,%edx - 4071bf: 74 17 je 4071d8 - 4071c1: 83 fa 01 cmp $0x1,%edx - 4071c4: 74 38 je 4071fe - 4071c6: 48 89 c7 mov %rax,%rdi - 4071c9: e8 e2 6b 01 00 callq 41ddb0 <__cfree> - 4071ce: e9 2a f5 ff ff jmpq 4066fd - 4071d3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4071d8: 48 8b 78 18 mov 0x18(%rax),%rdi - 4071dc: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4071e1: e8 2a ea ff ff callq 405c10 <__gettext_free_exp> - 4071e6: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4071eb: 48 8b 78 10 mov 0x10(%rax),%rdi - 4071ef: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4071f4: e8 17 ea ff ff callq 405c10 <__gettext_free_exp> - 4071f9: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4071fe: 48 8b 78 08 mov 0x8(%rax),%rdi - 407202: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407207: e8 04 ea ff ff callq 405c10 <__gettext_free_exp> - 40720c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407211: 48 89 c7 mov %rax,%rdi - 407214: e8 97 6b 01 00 callq 41ddb0 <__cfree> - 407219: e9 df f4 ff ff jmpq 4066fd - 40721e: 66 90 xchg %ax,%ax - 407220: 48 8b 04 24 mov (%rsp),%rax - 407224: 48 8b 40 18 mov 0x18(%rax),%rax - 407228: 48 85 c0 test %rax,%rax - 40722b: 74 25 je 407252 - 40722d: 8b 10 mov (%rax),%edx - 40722f: 83 fa 02 cmp $0x2,%edx - 407232: 0f 84 ad 20 00 00 je 4092e5 - 407238: 83 fa 03 cmp $0x3,%edx - 40723b: 0f 84 91 20 00 00 je 4092d2 - 407241: 83 fa 01 cmp $0x1,%edx - 407244: 0f 84 ae 20 00 00 je 4092f8 - 40724a: 48 89 c7 mov %rax,%rdi - 40724d: e8 5e 6b 01 00 callq 41ddb0 <__cfree> - 407252: 48 8b 04 24 mov (%rsp),%rax - 407256: 48 8b 40 10 mov 0x10(%rax),%rax - 40725a: 48 85 c0 test %rax,%rax - 40725d: 74 25 je 407284 - 40725f: 8b 10 mov (%rax),%edx - 407261: 83 fa 02 cmp $0x2,%edx - 407264: 0f 84 f9 0c 00 00 je 407f63 - 40726a: 83 fa 03 cmp $0x3,%edx - 40726d: 0f 84 dd 0c 00 00 je 407f50 - 407273: 83 fa 01 cmp $0x1,%edx - 407276: 0f 84 fa 0c 00 00 je 407f76 - 40727c: 48 89 c7 mov %rax,%rdi - 40727f: e8 2c 6b 01 00 callq 41ddb0 <__cfree> - 407284: 48 8b 04 24 mov (%rsp),%rax - 407288: 48 8b 40 08 mov 0x8(%rax),%rax - 40728c: 48 85 c0 test %rax,%rax - 40728f: 0f 84 bd f8 ff ff je 406b52 - 407295: 8b 10 mov (%rax),%edx - 407297: 83 fa 02 cmp $0x2,%edx - 40729a: 74 2f je 4072cb - 40729c: 83 fa 03 cmp $0x3,%edx - 40729f: 74 17 je 4072b8 - 4072a1: 83 fa 01 cmp $0x1,%edx - 4072a4: 74 38 je 4072de - 4072a6: 48 89 c7 mov %rax,%rdi - 4072a9: e8 02 6b 01 00 callq 41ddb0 <__cfree> - 4072ae: e9 9f f8 ff ff jmpq 406b52 - 4072b3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4072b8: 48 8b 78 18 mov 0x18(%rax),%rdi - 4072bc: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4072c1: e8 4a e9 ff ff callq 405c10 <__gettext_free_exp> - 4072c6: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4072cb: 48 8b 78 10 mov 0x10(%rax),%rdi - 4072cf: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4072d4: e8 37 e9 ff ff callq 405c10 <__gettext_free_exp> - 4072d9: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4072de: 48 8b 78 08 mov 0x8(%rax),%rdi - 4072e2: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4072e7: e8 24 e9 ff ff callq 405c10 <__gettext_free_exp> - 4072ec: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4072f1: 48 89 c7 mov %rax,%rdi - 4072f4: e8 b7 6a 01 00 callq 41ddb0 <__cfree> - 4072f9: e9 54 f8 ff ff jmpq 406b52 - 4072fe: 66 90 xchg %ax,%ax - 407300: 48 8b 04 24 mov (%rsp),%rax - 407304: 48 8b 40 18 mov 0x18(%rax),%rax - 407308: 48 85 c0 test %rax,%rax - 40730b: 74 25 je 407332 - 40730d: 8b 10 mov (%rax),%edx - 40730f: 83 fa 02 cmp $0x2,%edx - 407312: 0f 84 c9 22 00 00 je 4095e1 - 407318: 83 fa 03 cmp $0x3,%edx - 40731b: 0f 84 ad 22 00 00 je 4095ce - 407321: 83 fa 01 cmp $0x1,%edx - 407324: 0f 84 ca 22 00 00 je 4095f4 - 40732a: 48 89 c7 mov %rax,%rdi - 40732d: e8 7e 6a 01 00 callq 41ddb0 <__cfree> - 407332: 48 8b 04 24 mov (%rsp),%rax - 407336: 48 8b 40 10 mov 0x10(%rax),%rax - 40733a: 48 85 c0 test %rax,%rax - 40733d: 74 25 je 407364 - 40733f: 8b 10 mov (%rax),%edx - 407341: 83 fa 02 cmp $0x2,%edx - 407344: 0f 84 99 0c 00 00 je 407fe3 - 40734a: 83 fa 03 cmp $0x3,%edx - 40734d: 0f 84 7d 0c 00 00 je 407fd0 - 407353: 83 fa 01 cmp $0x1,%edx - 407356: 0f 84 9a 0c 00 00 je 407ff6 - 40735c: 48 89 c7 mov %rax,%rdi - 40735f: e8 4c 6a 01 00 callq 41ddb0 <__cfree> - 407364: 48 8b 04 24 mov (%rsp),%rax - 407368: 48 8b 40 08 mov 0x8(%rax),%rax - 40736c: 48 85 c0 test %rax,%rax - 40736f: 0f 84 f3 f6 ff ff je 406a68 - 407375: 8b 10 mov (%rax),%edx - 407377: 83 fa 02 cmp $0x2,%edx - 40737a: 74 2f je 4073ab - 40737c: 83 fa 03 cmp $0x3,%edx - 40737f: 74 17 je 407398 - 407381: 83 fa 01 cmp $0x1,%edx - 407384: 74 38 je 4073be - 407386: 48 89 c7 mov %rax,%rdi - 407389: e8 22 6a 01 00 callq 41ddb0 <__cfree> - 40738e: e9 d5 f6 ff ff jmpq 406a68 - 407393: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 407398: 48 8b 78 18 mov 0x18(%rax),%rdi - 40739c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4073a1: e8 6a e8 ff ff callq 405c10 <__gettext_free_exp> - 4073a6: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4073ab: 48 8b 78 10 mov 0x10(%rax),%rdi - 4073af: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4073b4: e8 57 e8 ff ff callq 405c10 <__gettext_free_exp> - 4073b9: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4073be: 48 8b 78 08 mov 0x8(%rax),%rdi - 4073c2: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4073c7: e8 44 e8 ff ff callq 405c10 <__gettext_free_exp> - 4073cc: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4073d1: 48 89 c7 mov %rax,%rdi - 4073d4: e8 d7 69 01 00 callq 41ddb0 <__cfree> - 4073d9: e9 8a f6 ff ff jmpq 406a68 - 4073de: 66 90 xchg %ax,%ax - 4073e0: 48 8b 50 18 mov 0x18(%rax),%rdx - 4073e4: 48 85 d2 test %rdx,%rdx - 4073e7: 74 2d je 407416 - 4073e9: 8b 0a mov (%rdx),%ecx - 4073eb: 83 f9 02 cmp $0x2,%ecx - 4073ee: 0f 84 27 0f 00 00 je 40831b - 4073f4: 83 f9 03 cmp $0x3,%ecx - 4073f7: 0f 84 03 0f 00 00 je 408300 - 4073fd: 83 f9 01 cmp $0x1,%ecx - 407400: 0f 84 30 0f 00 00 je 408336 - 407406: 48 89 d7 mov %rdx,%rdi - 407409: 48 89 04 24 mov %rax,(%rsp) - 40740d: e8 9e 69 01 00 callq 41ddb0 <__cfree> - 407412: 48 8b 04 24 mov (%rsp),%rax - 407416: 48 8b 50 10 mov 0x10(%rax),%rdx - 40741a: 48 85 d2 test %rdx,%rdx - 40741d: 0f 84 7e f5 ff ff je 4069a1 - 407423: 8b 0a mov (%rdx),%ecx - 407425: 83 f9 02 cmp $0x2,%ecx - 407428: 0f 84 2d f5 ff ff je 40695b - 40742e: 83 f9 03 cmp $0x3,%ecx - 407431: 0f 84 09 f5 ff ff je 406940 - 407437: 83 f9 01 cmp $0x1,%ecx - 40743a: 0f 84 36 f5 ff ff je 406976 - 407440: 48 89 d7 mov %rdx,%rdi - 407443: 48 89 04 24 mov %rax,(%rsp) - 407447: e8 64 69 01 00 callq 41ddb0 <__cfree> - 40744c: 48 8b 04 24 mov (%rsp),%rax - 407450: e9 4c f5 ff ff jmpq 4069a1 - 407455: 0f 1f 00 nopl (%rax) - 407458: 49 8b 47 18 mov 0x18(%r15),%rax - 40745c: 48 85 c0 test %rax,%rax - 40745f: 74 25 je 407486 - 407461: 8b 10 mov (%rax),%edx - 407463: 83 fa 02 cmp $0x2,%edx - 407466: 0f 84 58 23 00 00 je 4097c4 - 40746c: 83 fa 03 cmp $0x3,%edx - 40746f: 0f 84 3e 23 00 00 je 4097b3 - 407475: 83 fa 01 cmp $0x1,%edx - 407478: 0f 84 57 23 00 00 je 4097d5 - 40747e: 48 89 c7 mov %rax,%rdi - 407481: e8 2a 69 01 00 callq 41ddb0 <__cfree> - 407486: 49 8b 47 10 mov 0x10(%r15),%rax - 40748a: 48 85 c0 test %rax,%rax - 40748d: 48 89 04 24 mov %rax,(%rsp) - 407491: 74 26 je 4074b9 - 407493: 8b 00 mov (%rax),%eax - 407495: 83 f8 02 cmp $0x2,%eax - 407498: 0f 84 7f 0c 00 00 je 40811d - 40749e: 83 f8 03 cmp $0x3,%eax - 4074a1: 0f 84 69 0c 00 00 je 408110 - 4074a7: 83 f8 01 cmp $0x1,%eax - 4074aa: 0f 84 9f 0c 00 00 je 40814f - 4074b0: 48 8b 3c 24 mov (%rsp),%rdi - 4074b4: e8 f7 68 01 00 callq 41ddb0 <__cfree> - 4074b9: 49 8b 47 08 mov 0x8(%r15),%rax - 4074bd: 48 85 c0 test %rax,%rax - 4074c0: 48 89 04 24 mov %rax,(%rsp) - 4074c4: 0f 84 6c f3 ff ff je 406836 - 4074ca: 8b 00 mov (%rax),%eax - 4074cc: 83 f8 02 cmp $0x2,%eax - 4074cf: 74 2c je 4074fd - 4074d1: 83 f8 03 cmp $0x3,%eax - 4074d4: 74 1a je 4074f0 - 4074d6: 83 f8 01 cmp $0x1,%eax - 4074d9: 74 54 je 40752f - 4074db: 48 8b 3c 24 mov (%rsp),%rdi - 4074df: e8 cc 68 01 00 callq 41ddb0 <__cfree> - 4074e4: e9 4d f3 ff ff jmpq 406836 - 4074e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4074f0: 48 8b 04 24 mov (%rsp),%rax - 4074f4: 48 8b 78 18 mov 0x18(%rax),%rdi - 4074f8: e8 13 e7 ff ff callq 405c10 <__gettext_free_exp> - 4074fd: 48 8b 04 24 mov (%rsp),%rax - 407501: 48 8b 40 10 mov 0x10(%rax),%rax - 407505: 48 85 c0 test %rax,%rax - 407508: 74 25 je 40752f - 40750a: 8b 10 mov (%rax),%edx - 40750c: 83 fa 02 cmp $0x2,%edx - 40750f: 0f 84 48 12 00 00 je 40875d - 407515: 83 fa 03 cmp $0x3,%edx - 407518: 0f 84 2c 12 00 00 je 40874a - 40751e: 83 fa 01 cmp $0x1,%edx - 407521: 0f 84 49 12 00 00 je 408770 - 407527: 48 89 c7 mov %rax,%rdi - 40752a: e8 81 68 01 00 callq 41ddb0 <__cfree> - 40752f: 48 8b 04 24 mov (%rsp),%rax - 407533: 48 8b 40 08 mov 0x8(%rax),%rax - 407537: 48 85 c0 test %rax,%rax - 40753a: 74 9f je 4074db - 40753c: 8b 10 mov (%rax),%edx - 40753e: 83 fa 02 cmp $0x2,%edx - 407541: 0f 84 1c 09 00 00 je 407e63 - 407547: 83 fa 03 cmp $0x3,%edx - 40754a: 0f 84 00 09 00 00 je 407e50 - 407550: 83 fa 01 cmp $0x1,%edx - 407553: 0f 84 1d 09 00 00 je 407e76 - 407559: 48 89 c7 mov %rax,%rdi - 40755c: e8 4f 68 01 00 callq 41ddb0 <__cfree> - 407561: 48 8b 3c 24 mov (%rsp),%rdi - 407565: e8 46 68 01 00 callq 41ddb0 <__cfree> - 40756a: e9 c7 f2 ff ff jmpq 406836 - 40756f: 90 nop - 407570: 49 8b 47 18 mov 0x18(%r15),%rax - 407574: 48 85 c0 test %rax,%rax - 407577: 74 25 je 40759e - 407579: 8b 10 mov (%rax),%edx - 40757b: 83 fa 02 cmp $0x2,%edx - 40757e: 0f 84 e3 0d 00 00 je 408367 - 407584: 83 fa 03 cmp $0x3,%edx - 407587: 0f 84 c9 0d 00 00 je 408356 - 40758d: 83 fa 01 cmp $0x1,%edx - 407590: 0f 84 e2 0d 00 00 je 408378 - 407596: 48 89 c7 mov %rax,%rdi - 407599: e8 12 68 01 00 callq 41ddb0 <__cfree> - 40759e: 49 8b 47 10 mov 0x10(%r15),%rax - 4075a2: 48 85 c0 test %rax,%rax - 4075a5: 48 89 04 24 mov %rax,(%rsp) - 4075a9: 0f 84 75 f5 ff ff je 406b24 - 4075af: 8b 00 mov (%rax),%eax - 4075b1: 83 f8 02 cmp $0x2,%eax - 4075b4: 0f 84 fd f4 ff ff je 406ab7 - 4075ba: 83 f8 03 cmp $0x3,%eax - 4075bd: 0f 84 dd 20 00 00 je 4096a0 - 4075c3: 83 f8 01 cmp $0x1,%eax - 4075c6: 0f 84 1d f5 ff ff je 406ae9 - 4075cc: 48 8b 3c 24 mov (%rsp),%rdi - 4075d0: e8 db 67 01 00 callq 41ddb0 <__cfree> - 4075d5: e9 4a f5 ff ff jmpq 406b24 - 4075da: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4075e0: 49 8b 47 18 mov 0x18(%r15),%rax - 4075e4: 48 85 c0 test %rax,%rax - 4075e7: 74 25 je 40760e - 4075e9: 8b 10 mov (%rax),%edx - 4075eb: 83 fa 02 cmp $0x2,%edx - 4075ee: 0f 84 f7 0e 00 00 je 4084eb - 4075f4: 83 fa 03 cmp $0x3,%edx - 4075f7: 0f 84 dd 0e 00 00 je 4084da - 4075fd: 83 fa 01 cmp $0x1,%edx - 407600: 0f 84 f6 0e 00 00 je 4084fc - 407606: 48 89 c7 mov %rax,%rdi - 407609: e8 a2 67 01 00 callq 41ddb0 <__cfree> - 40760e: 49 8b 47 10 mov 0x10(%r15),%rax - 407612: 48 85 c0 test %rax,%rax - 407615: 48 89 04 24 mov %rax,(%rsp) - 407619: 0f 84 1b f4 ff ff je 406a3a - 40761f: 8b 00 mov (%rax),%eax - 407621: 83 f8 02 cmp $0x2,%eax - 407624: 0f 84 a3 f3 ff ff je 4069cd - 40762a: 83 f8 03 cmp $0x3,%eax - 40762d: 0f 84 8d f3 ff ff je 4069c0 - 407633: 83 f8 01 cmp $0x1,%eax - 407636: 0f 84 c3 f3 ff ff je 4069ff - 40763c: 48 8b 3c 24 mov (%rsp),%rdi - 407640: e8 6b 67 01 00 callq 41ddb0 <__cfree> - 407645: e9 f0 f3 ff ff jmpq 406a3a - 40764a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 407650: 49 8b 47 18 mov 0x18(%r15),%rax - 407654: 48 85 c0 test %rax,%rax - 407657: 74 25 je 40767e - 407659: 8b 10 mov (%rax),%edx - 40765b: 83 fa 02 cmp $0x2,%edx - 40765e: 0f 84 08 22 00 00 je 40986c - 407664: 83 fa 03 cmp $0x3,%edx - 407667: 0f 84 ee 21 00 00 je 40985b - 40766d: 83 fa 01 cmp $0x1,%edx - 407670: 0f 84 07 22 00 00 je 40987d - 407676: 48 89 c7 mov %rax,%rdi - 407679: e8 32 67 01 00 callq 41ddb0 <__cfree> - 40767e: 49 8b 47 10 mov 0x10(%r15),%rax - 407682: 48 85 c0 test %rax,%rax - 407685: 48 89 04 24 mov %rax,(%rsp) - 407689: 74 26 je 4076b1 - 40768b: 8b 00 mov (%rax),%eax - 40768d: 83 f8 02 cmp $0x2,%eax - 407690: 0f 84 87 0b 00 00 je 40821d - 407696: 83 f8 03 cmp $0x3,%eax - 407699: 0f 84 71 0b 00 00 je 408210 - 40769f: 83 f8 01 cmp $0x1,%eax - 4076a2: 0f 84 a7 0b 00 00 je 40824f - 4076a8: 48 8b 3c 24 mov (%rsp),%rdi - 4076ac: e8 ff 66 01 00 callq 41ddb0 <__cfree> - 4076b1: 49 8b 47 08 mov 0x8(%r15),%rax - 4076b5: 48 85 c0 test %rax,%rax - 4076b8: 48 89 04 24 mov %rax,(%rsp) - 4076bc: 0f 84 d4 f0 ff ff je 406796 - 4076c2: 8b 00 mov (%rax),%eax - 4076c4: 83 f8 02 cmp $0x2,%eax - 4076c7: 74 2c je 4076f5 - 4076c9: 83 f8 03 cmp $0x3,%eax - 4076cc: 74 1a je 4076e8 - 4076ce: 83 f8 01 cmp $0x1,%eax - 4076d1: 74 54 je 407727 - 4076d3: 48 8b 3c 24 mov (%rsp),%rdi - 4076d7: e8 d4 66 01 00 callq 41ddb0 <__cfree> - 4076dc: e9 b5 f0 ff ff jmpq 406796 - 4076e1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4076e8: 48 8b 04 24 mov (%rsp),%rax - 4076ec: 48 8b 78 18 mov 0x18(%rax),%rdi - 4076f0: e8 1b e5 ff ff callq 405c10 <__gettext_free_exp> - 4076f5: 48 8b 04 24 mov (%rsp),%rax - 4076f9: 48 8b 40 10 mov 0x10(%rax),%rax - 4076fd: 48 85 c0 test %rax,%rax - 407700: 74 25 je 407727 - 407702: 8b 10 mov (%rax),%edx - 407704: 83 fa 02 cmp $0x2,%edx - 407707: 0f 84 cc 10 00 00 je 4087d9 - 40770d: 83 fa 03 cmp $0x3,%edx - 407710: 0f 84 b0 10 00 00 je 4087c6 - 407716: 83 fa 01 cmp $0x1,%edx - 407719: 0f 84 cd 10 00 00 je 4087ec - 40771f: 48 89 c7 mov %rax,%rdi - 407722: e8 89 66 01 00 callq 41ddb0 <__cfree> - 407727: 48 8b 04 24 mov (%rsp),%rax - 40772b: 48 8b 40 08 mov 0x8(%rax),%rax - 40772f: 48 85 c0 test %rax,%rax - 407732: 74 9f je 4076d3 - 407734: 8b 10 mov (%rax),%edx - 407736: 83 fa 02 cmp $0x2,%edx - 407739: 0f 84 24 09 00 00 je 408063 - 40773f: 83 fa 03 cmp $0x3,%edx - 407742: 0f 84 08 09 00 00 je 408050 - 407748: 83 fa 01 cmp $0x1,%edx - 40774b: 0f 84 25 09 00 00 je 408076 - 407751: 48 89 c7 mov %rax,%rdi - 407754: e8 57 66 01 00 callq 41ddb0 <__cfree> - 407759: 48 8b 3c 24 mov (%rsp),%rdi - 40775d: e8 4e 66 01 00 callq 41ddb0 <__cfree> - 407762: e9 2f f0 ff ff jmpq 406796 - 407767: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40776e: 00 00 - 407770: 49 8b 47 18 mov 0x18(%r15),%rax - 407774: 48 85 c0 test %rax,%rax - 407777: 74 25 je 40779e - 407779: 8b 10 mov (%rax),%edx - 40777b: 83 fa 02 cmp $0x2,%edx - 40777e: 0f 84 a8 22 00 00 je 409a2c - 407784: 83 fa 03 cmp $0x3,%edx - 407787: 0f 84 8e 22 00 00 je 409a1b - 40778d: 83 fa 01 cmp $0x1,%edx - 407790: 0f 84 a7 22 00 00 je 409a3d - 407796: 48 89 c7 mov %rax,%rdi - 407799: e8 12 66 01 00 callq 41ddb0 <__cfree> - 40779e: 49 8b 47 10 mov 0x10(%r15),%rax - 4077a2: 48 85 c0 test %rax,%rax - 4077a5: 48 89 04 24 mov %rax,(%rsp) - 4077a9: 74 26 je 4077d1 - 4077ab: 8b 00 mov (%rax),%eax - 4077ad: 83 f8 02 cmp $0x2,%eax - 4077b0: 0f 84 e7 09 00 00 je 40819d - 4077b6: 83 f8 03 cmp $0x3,%eax - 4077b9: 0f 84 d1 09 00 00 je 408190 - 4077bf: 83 f8 01 cmp $0x1,%eax - 4077c2: 0f 84 07 0a 00 00 je 4081cf - 4077c8: 48 8b 3c 24 mov (%rsp),%rdi - 4077cc: e8 df 65 01 00 callq 41ddb0 <__cfree> - 4077d1: 49 8b 47 08 mov 0x8(%r15),%rax - 4077d5: 48 85 c0 test %rax,%rax - 4077d8: 48 89 04 24 mov %rax,(%rsp) - 4077dc: 0f 84 db f4 ff ff je 406cbd - 4077e2: 8b 00 mov (%rax),%eax - 4077e4: 83 f8 02 cmp $0x2,%eax - 4077e7: 74 2c je 407815 - 4077e9: 83 f8 03 cmp $0x3,%eax - 4077ec: 74 1a je 407808 - 4077ee: 83 f8 01 cmp $0x1,%eax - 4077f1: 74 54 je 407847 - 4077f3: 48 8b 3c 24 mov (%rsp),%rdi - 4077f7: e8 b4 65 01 00 callq 41ddb0 <__cfree> - 4077fc: e9 bc f4 ff ff jmpq 406cbd - 407801: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 407808: 48 8b 04 24 mov (%rsp),%rax - 40780c: 48 8b 78 18 mov 0x18(%rax),%rdi - 407810: e8 fb e3 ff ff callq 405c10 <__gettext_free_exp> - 407815: 48 8b 04 24 mov (%rsp),%rax - 407819: 48 8b 40 10 mov 0x10(%rax),%rax - 40781d: 48 85 c0 test %rax,%rax - 407820: 74 25 je 407847 - 407822: 8b 10 mov (%rax),%edx - 407824: 83 fa 02 cmp $0x2,%edx - 407827: 0f 84 f2 0e 00 00 je 40871f - 40782d: 83 fa 03 cmp $0x3,%edx - 407830: 0f 84 d6 0e 00 00 je 40870c - 407836: 83 fa 01 cmp $0x1,%edx - 407839: 0f 84 f3 0e 00 00 je 408732 - 40783f: 48 89 c7 mov %rax,%rdi - 407842: e8 69 65 01 00 callq 41ddb0 <__cfree> - 407847: 48 8b 04 24 mov (%rsp),%rax - 40784b: 48 8b 40 08 mov 0x8(%rax),%rax - 40784f: 48 85 c0 test %rax,%rax - 407852: 74 9f je 4077f3 - 407854: 8b 10 mov (%rax),%edx - 407856: 83 fa 02 cmp $0x2,%edx - 407859: 0f 84 c4 07 00 00 je 408023 - 40785f: 83 fa 03 cmp $0x3,%edx - 407862: 0f 84 a8 07 00 00 je 408010 - 407868: 83 fa 01 cmp $0x1,%edx - 40786b: 0f 84 c5 07 00 00 je 408036 - 407871: 48 89 c7 mov %rax,%rdi - 407874: e8 37 65 01 00 callq 41ddb0 <__cfree> - 407879: 48 8b 3c 24 mov (%rsp),%rdi - 40787d: e8 2e 65 01 00 callq 41ddb0 <__cfree> - 407882: e9 36 f4 ff ff jmpq 406cbd - 407887: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40788e: 00 00 - 407890: 49 8b 47 18 mov 0x18(%r15),%rax - 407894: 48 85 c0 test %rax,%rax - 407897: 74 25 je 4078be - 407899: 8b 10 mov (%rax),%edx - 40789b: 83 fa 02 cmp $0x2,%edx - 40789e: 0f 84 85 0b 00 00 je 408429 - 4078a4: 83 fa 03 cmp $0x3,%edx - 4078a7: 0f 84 6b 0b 00 00 je 408418 - 4078ad: 83 fa 01 cmp $0x1,%edx - 4078b0: 0f 84 84 0b 00 00 je 40843a - 4078b6: 48 89 c7 mov %rax,%rdi - 4078b9: e8 f2 64 01 00 callq 41ddb0 <__cfree> - 4078be: 49 8b 47 10 mov 0x10(%r15),%rax - 4078c2: 48 85 c0 test %rax,%rax - 4078c5: 48 89 04 24 mov %rax,(%rsp) - 4078c9: 0f 84 0b f3 ff ff je 406bda - 4078cf: 8b 00 mov (%rax),%eax - 4078d1: 83 f8 02 cmp $0x2,%eax - 4078d4: 0f 84 93 f2 ff ff je 406b6d - 4078da: 83 f8 03 cmp $0x3,%eax - 4078dd: 0f 84 7d f2 ff ff je 406b60 - 4078e3: 83 f8 01 cmp $0x1,%eax - 4078e6: 0f 84 b3 f2 ff ff je 406b9f - 4078ec: 48 8b 3c 24 mov (%rsp),%rdi - 4078f0: e8 bb 64 01 00 callq 41ddb0 <__cfree> - 4078f5: e9 e0 f2 ff ff jmpq 406bda - 4078fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 407900: 4d 8b 7d 18 mov 0x18(%r13),%r15 - 407904: 4d 85 ff test %r15,%r15 - 407907: 74 26 je 40792f - 407909: 41 8b 07 mov (%r15),%eax - 40790c: 83 f8 02 cmp $0x2,%eax - 40790f: 0f 84 3b 0d 00 00 je 408650 - 407915: 83 f8 03 cmp $0x3,%eax - 407918: 0f 84 29 0d 00 00 je 408647 - 40791e: 83 f8 01 cmp $0x1,%eax - 407921: 0f 84 32 0d 00 00 je 408659 - 407927: 4c 89 ff mov %r15,%rdi - 40792a: e8 81 64 01 00 callq 41ddb0 <__cfree> - 40792f: 4d 8b 7d 10 mov 0x10(%r13),%r15 - 407933: 4d 85 ff test %r15,%r15 - 407936: 0f 84 56 f3 ff ff je 406c92 - 40793c: 41 8b 07 mov (%r15),%eax - 40793f: 83 f8 02 cmp $0x2,%eax - 407942: 0f 84 e1 f2 ff ff je 406c29 - 407948: 83 f8 03 cmp $0x3,%eax - 40794b: 0f 84 cf f2 ff ff je 406c20 - 407951: 83 f8 01 cmp $0x1,%eax - 407954: 0f 84 fd f2 ff ff je 406c57 - 40795a: 4c 89 ff mov %r15,%rdi - 40795d: e8 4e 64 01 00 callq 41ddb0 <__cfree> - 407962: e9 2b f3 ff ff jmpq 406c92 - 407967: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40796e: 00 00 - 407970: 48 8b 04 24 mov (%rsp),%rax - 407974: 48 8b 78 18 mov 0x18(%rax),%rdi - 407978: e8 93 e2 ff ff callq 405c10 <__gettext_free_exp> - 40797d: 48 8b 04 24 mov (%rsp),%rax - 407981: 48 8b 40 10 mov 0x10(%rax),%rax - 407985: 48 85 c0 test %rax,%rax - 407988: 74 25 je 4079af - 40798a: 8b 10 mov (%rax),%edx - 40798c: 83 fa 02 cmp $0x2,%edx - 40798f: 0f 84 0c 1b 00 00 je 4094a1 - 407995: 83 fa 03 cmp $0x3,%edx - 407998: 0f 84 f0 1a 00 00 je 40948e - 40799e: 83 fa 01 cmp $0x1,%edx - 4079a1: 0f 84 0d 1b 00 00 je 4094b4 - 4079a7: 48 89 c7 mov %rax,%rdi - 4079aa: e8 01 64 01 00 callq 41ddb0 <__cfree> - 4079af: 48 8b 04 24 mov (%rsp),%rax - 4079b3: 48 8b 40 08 mov 0x8(%rax),%rax - 4079b7: 48 85 c0 test %rax,%rax - 4079ba: 0f 84 30 eb ff ff je 4064f0 - 4079c0: 8b 10 mov (%rax),%edx - 4079c2: 83 fa 02 cmp $0x2,%edx - 4079c5: 0f 84 69 10 00 00 je 408a34 - 4079cb: 83 fa 03 cmp $0x3,%edx - 4079ce: 0f 84 4d 10 00 00 je 408a21 - 4079d4: 83 fa 01 cmp $0x1,%edx - 4079d7: 0f 84 6a 10 00 00 je 408a47 - 4079dd: 48 89 c7 mov %rax,%rdi - 4079e0: e8 cb 63 01 00 callq 41ddb0 <__cfree> - 4079e5: e9 06 eb ff ff jmpq 4064f0 - 4079ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4079f0: 48 8b 04 24 mov (%rsp),%rax - 4079f4: 48 8b 78 18 mov 0x18(%rax),%rdi - 4079f8: e8 13 e2 ff ff callq 405c10 <__gettext_free_exp> - 4079fd: 48 8b 04 24 mov (%rsp),%rax - 407a01: 48 8b 40 10 mov 0x10(%rax),%rax - 407a05: 48 85 c0 test %rax,%rax - 407a08: 74 25 je 407a2f - 407a0a: 8b 10 mov (%rax),%edx - 407a0c: 83 fa 02 cmp $0x2,%edx - 407a0f: 0f 84 0a 1c 00 00 je 40961f - 407a15: 83 fa 03 cmp $0x3,%edx - 407a18: 0f 84 ee 1b 00 00 je 40960c - 407a1e: 83 fa 01 cmp $0x1,%edx - 407a21: 0f 84 0b 1c 00 00 je 409632 - 407a27: 48 89 c7 mov %rax,%rdi - 407a2a: e8 81 63 01 00 callq 41ddb0 <__cfree> - 407a2f: 48 8b 04 24 mov (%rsp),%rax - 407a33: 48 8b 40 08 mov 0x8(%rax),%rax - 407a37: 48 85 c0 test %rax,%rax - 407a3a: 0f 84 8a ec ff ff je 4066ca - 407a40: 8b 10 mov (%rax),%edx - 407a42: 83 fa 02 cmp $0x2,%edx - 407a45: 0f 84 a3 10 00 00 je 408aee - 407a4b: 83 fa 03 cmp $0x3,%edx - 407a4e: 0f 84 87 10 00 00 je 408adb - 407a54: 83 fa 01 cmp $0x1,%edx - 407a57: 0f 84 a4 10 00 00 je 408b01 - 407a5d: 48 89 c7 mov %rax,%rdi - 407a60: e8 4b 63 01 00 callq 41ddb0 <__cfree> - 407a65: e9 60 ec ff ff jmpq 4066ca - 407a6a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 407a70: 48 8b 04 24 mov (%rsp),%rax - 407a74: 48 8b 78 18 mov 0x18(%rax),%rdi - 407a78: e8 93 e1 ff ff callq 405c10 <__gettext_free_exp> - 407a7d: 48 8b 04 24 mov (%rsp),%rax - 407a81: 48 8b 40 10 mov 0x10(%rax),%rax - 407a85: 48 85 c0 test %rax,%rax - 407a88: 74 25 je 407aaf - 407a8a: 8b 10 mov (%rax),%edx - 407a8c: 83 fa 02 cmp $0x2,%edx - 407a8f: 0f 84 66 17 00 00 je 4091fb - 407a95: 83 fa 03 cmp $0x3,%edx - 407a98: 0f 84 4a 17 00 00 je 4091e8 - 407a9e: 83 fa 01 cmp $0x1,%edx - 407aa1: 0f 84 67 17 00 00 je 40920e - 407aa7: 48 89 c7 mov %rax,%rdi - 407aaa: e8 01 63 01 00 callq 41ddb0 <__cfree> - 407aaf: 48 8b 04 24 mov (%rsp),%rax - 407ab3: 48 8b 40 08 mov 0x8(%rax),%rax - 407ab7: 48 85 c0 test %rax,%rax - 407aba: 0f 84 35 f3 ff ff je 406df5 - 407ac0: 8b 10 mov (%rax),%edx - 407ac2: 83 fa 02 cmp $0x2,%edx - 407ac5: 0f 84 e5 0f 00 00 je 408ab0 - 407acb: 83 fa 03 cmp $0x3,%edx - 407ace: 0f 84 c9 0f 00 00 je 408a9d - 407ad4: 83 fa 01 cmp $0x1,%edx - 407ad7: 0f 84 e6 0f 00 00 je 408ac3 - 407add: 48 89 c7 mov %rax,%rdi - 407ae0: e8 cb 62 01 00 callq 41ddb0 <__cfree> - 407ae5: e9 0b f3 ff ff jmpq 406df5 - 407aea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 407af0: 48 8b 04 24 mov (%rsp),%rax - 407af4: 48 8b 78 18 mov 0x18(%rax),%rdi - 407af8: e8 13 e1 ff ff callq 405c10 <__gettext_free_exp> - 407afd: 48 8b 04 24 mov (%rsp),%rax - 407b01: 48 8b 40 10 mov 0x10(%rax),%rax - 407b05: 48 85 c0 test %rax,%rax - 407b08: 74 25 je 407b2f - 407b0a: 8b 10 mov (%rax),%edx - 407b0c: 83 fa 02 cmp $0x2,%edx - 407b0f: 0f 84 a8 16 00 00 je 4091bd - 407b15: 83 fa 03 cmp $0x3,%edx - 407b18: 0f 84 8c 16 00 00 je 4091aa - 407b1e: 83 fa 01 cmp $0x1,%edx - 407b21: 0f 84 a9 16 00 00 je 4091d0 - 407b27: 48 89 c7 mov %rax,%rdi - 407b2a: e8 81 62 01 00 callq 41ddb0 <__cfree> - 407b2f: 48 8b 04 24 mov (%rsp),%rax - 407b33: 48 8b 40 08 mov 0x8(%rax),%rax - 407b37: 48 85 c0 test %rax,%rax - 407b3a: 0f 84 f5 f3 ff ff je 406f35 - 407b40: 8b 10 mov (%rax),%edx - 407b42: 83 fa 02 cmp $0x2,%edx - 407b45: 0f 84 27 0f 00 00 je 408a72 - 407b4b: 83 fa 03 cmp $0x3,%edx - 407b4e: 0f 84 0b 0f 00 00 je 408a5f - 407b54: 83 fa 01 cmp $0x1,%edx - 407b57: 0f 84 28 0f 00 00 je 408a85 - 407b5d: 48 89 c7 mov %rax,%rdi - 407b60: e8 4b 62 01 00 callq 41ddb0 <__cfree> - 407b65: e9 cb f3 ff ff jmpq 406f35 - 407b6a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 407b70: 49 8b 7f 18 mov 0x18(%r15),%rdi - 407b74: e8 97 e0 ff ff callq 405c10 <__gettext_free_exp> - 407b79: 49 8b 47 10 mov 0x10(%r15),%rax - 407b7d: 48 85 c0 test %rax,%rax - 407b80: 74 25 je 407ba7 - 407b82: 8b 10 mov (%rax),%edx - 407b84: 83 fa 02 cmp $0x2,%edx - 407b87: 0f 84 bf 1d 00 00 je 40994c - 407b8d: 83 fa 03 cmp $0x3,%edx - 407b90: 0f 84 a5 1d 00 00 je 40993b - 407b96: 83 fa 01 cmp $0x1,%edx - 407b99: 0f 84 be 1d 00 00 je 40995d - 407b9f: 48 89 c7 mov %rax,%rdi - 407ba2: e8 09 62 01 00 callq 41ddb0 <__cfree> - 407ba7: 49 8b 47 08 mov 0x8(%r15),%rax - 407bab: 48 85 c0 test %rax,%rax - 407bae: 0f 84 2d ea ff ff je 4065e1 - 407bb4: 8b 10 mov (%rax),%edx - 407bb6: 83 fa 02 cmp $0x2,%edx - 407bb9: 0f 84 50 11 00 00 je 408d0f - 407bbf: 83 fa 03 cmp $0x3,%edx - 407bc2: 0f 84 36 11 00 00 je 408cfe - 407bc8: 83 fa 01 cmp $0x1,%edx - 407bcb: 0f 84 4f 11 00 00 je 408d20 - 407bd1: 48 89 c7 mov %rax,%rdi - 407bd4: e8 d7 61 01 00 callq 41ddb0 <__cfree> - 407bd9: e9 03 ea ff ff jmpq 4065e1 - 407bde: 66 90 xchg %ax,%ax - 407be0: 49 8b 7f 18 mov 0x18(%r15),%rdi - 407be4: e8 27 e0 ff ff callq 405c10 <__gettext_free_exp> - 407be9: 49 8b 47 10 mov 0x10(%r15),%rax - 407bed: 48 85 c0 test %rax,%rax - 407bf0: 74 25 je 407c17 - 407bf2: 8b 10 mov (%rax),%edx - 407bf4: 83 fa 02 cmp $0x2,%edx - 407bf7: 0f 84 e7 1a 00 00 je 4096e4 - 407bfd: 83 fa 03 cmp $0x3,%edx - 407c00: 0f 84 cd 1a 00 00 je 4096d3 - 407c06: 83 fa 01 cmp $0x1,%edx - 407c09: 0f 84 e6 1a 00 00 je 4096f5 - 407c0f: 48 89 c7 mov %rax,%rdi - 407c12: e8 99 61 01 00 callq 41ddb0 <__cfree> - 407c17: 49 8b 47 08 mov 0x8(%r15),%rax - 407c1b: 48 85 c0 test %rax,%rax - 407c1e: 0f 84 e3 eb ff ff je 406807 - 407c24: 8b 10 mov (%rax),%edx - 407c26: 83 fa 02 cmp $0x2,%edx - 407c29: 0f 84 5c 0f 00 00 je 408b8b - 407c2f: 83 fa 03 cmp $0x3,%edx - 407c32: 0f 84 42 0f 00 00 je 408b7a - 407c38: 83 fa 01 cmp $0x1,%edx - 407c3b: 0f 84 5b 0f 00 00 je 408b9c - 407c41: 48 89 c7 mov %rax,%rdi - 407c44: e8 67 61 01 00 callq 41ddb0 <__cfree> - 407c49: e9 b9 eb ff ff jmpq 406807 - 407c4e: 66 90 xchg %ax,%ax - 407c50: 49 8b 7f 18 mov 0x18(%r15),%rdi - 407c54: e8 b7 df ff ff callq 405c10 <__gettext_free_exp> - 407c59: 49 8b 47 10 mov 0x10(%r15),%rax - 407c5d: 48 85 c0 test %rax,%rax - 407c60: 74 25 je 407c87 - 407c62: 8b 10 mov (%rax),%edx - 407c64: 83 fa 02 cmp $0x2,%edx - 407c67: 0f 84 4f 1d 00 00 je 4099bc - 407c6d: 83 fa 03 cmp $0x3,%edx - 407c70: 0f 84 35 1d 00 00 je 4099ab - 407c76: 83 fa 01 cmp $0x1,%edx - 407c79: 0f 84 4e 1d 00 00 je 4099cd - 407c7f: 48 89 c7 mov %rax,%rdi - 407c82: e8 29 61 01 00 callq 41ddb0 <__cfree> - 407c87: 49 8b 47 08 mov 0x8(%r15),%rax - 407c8b: 48 85 c0 test %rax,%rax - 407c8e: 0f 84 5b ec ff ff je 4068ef - 407c94: 8b 10 mov (%rax),%edx - 407c96: 83 fa 02 cmp $0x2,%edx - 407c99: 0f 84 4d 0f 00 00 je 408bec - 407c9f: 83 fa 03 cmp $0x3,%edx - 407ca2: 0f 84 33 0f 00 00 je 408bdb - 407ca8: 83 fa 01 cmp $0x1,%edx - 407cab: 0f 84 4c 0f 00 00 je 408bfd - 407cb1: 48 89 c7 mov %rax,%rdi - 407cb4: e8 f7 60 01 00 callq 41ddb0 <__cfree> - 407cb9: e9 31 ec ff ff jmpq 4068ef - 407cbe: 66 90 xchg %ax,%ax - 407cc0: 49 8b 7f 18 mov 0x18(%r15),%rdi - 407cc4: e8 47 df ff ff callq 405c10 <__gettext_free_exp> - 407cc9: 49 8b 47 10 mov 0x10(%r15),%rax - 407ccd: 48 85 c0 test %rax,%rax - 407cd0: 74 25 je 407cf7 - 407cd2: 8b 10 mov (%rax),%edx - 407cd4: 83 fa 02 cmp $0x2,%edx - 407cd7: 0f 84 17 1d 00 00 je 4099f4 - 407cdd: 83 fa 03 cmp $0x3,%edx - 407ce0: 0f 84 fd 1c 00 00 je 4099e3 - 407ce6: 83 fa 01 cmp $0x1,%edx - 407ce9: 0f 84 16 1d 00 00 je 409a05 - 407cef: 48 89 c7 mov %rax,%rdi - 407cf2: e8 b9 60 01 00 callq 41ddb0 <__cfree> - 407cf7: 49 8b 47 08 mov 0x8(%r15),%rax - 407cfb: 48 85 c0 test %rax,%rax - 407cfe: 0f 84 22 f0 ff ff je 406d26 - 407d04: 8b 10 mov (%rax),%edx - 407d06: 83 fa 02 cmp $0x2,%edx - 407d09: 0f 84 1b 0e 00 00 je 408b2a - 407d0f: 83 fa 03 cmp $0x3,%edx - 407d12: 0f 84 01 0e 00 00 je 408b19 - 407d18: 83 fa 01 cmp $0x1,%edx - 407d1b: 0f 84 1a 0e 00 00 je 408b3b - 407d21: 48 89 c7 mov %rax,%rdi - 407d24: e8 87 60 01 00 callq 41ddb0 <__cfree> - 407d29: e9 f8 ef ff ff jmpq 406d26 - 407d2e: 66 90 xchg %ax,%ax - 407d30: 49 8b 7f 18 mov 0x18(%r15),%rdi - 407d34: e8 d7 de ff ff callq 405c10 <__gettext_free_exp> - 407d39: 49 8b 47 10 mov 0x10(%r15),%rax - 407d3d: 48 85 c0 test %rax,%rax - 407d40: 74 25 je 407d67 - 407d42: 8b 10 mov (%rax),%edx - 407d44: 83 fa 02 cmp $0x2,%edx - 407d47: 0f 84 3f 1a 00 00 je 40978c - 407d4d: 83 fa 03 cmp $0x3,%edx - 407d50: 0f 84 25 1a 00 00 je 40977b - 407d56: 83 fa 01 cmp $0x1,%edx - 407d59: 0f 84 3e 1a 00 00 je 40979d - 407d5f: 48 89 c7 mov %rax,%rdi - 407d62: e8 49 60 01 00 callq 41ddb0 <__cfree> - 407d67: 49 8b 47 08 mov 0x8(%r15),%rax - 407d6b: 48 85 c0 test %rax,%rax - 407d6e: 0f 84 f2 f0 ff ff je 406e66 - 407d74: 8b 10 mov (%rax),%edx - 407d76: 83 fa 02 cmp $0x2,%edx - 407d79: 0f 84 ce 0e 00 00 je 408c4d - 407d7f: 83 fa 03 cmp $0x3,%edx - 407d82: 0f 84 b4 0e 00 00 je 408c3c - 407d88: 83 fa 01 cmp $0x1,%edx - 407d8b: 0f 84 cd 0e 00 00 je 408c5e - 407d91: 48 89 c7 mov %rax,%rdi - 407d94: e8 17 60 01 00 callq 41ddb0 <__cfree> - 407d99: e9 c8 f0 ff ff jmpq 406e66 - 407d9e: 66 90 xchg %ax,%ax - 407da0: 49 8b 7f 18 mov 0x18(%r15),%rdi - 407da4: e8 67 de ff ff callq 405c10 <__gettext_free_exp> - 407da9: 49 8b 47 10 mov 0x10(%r15),%rax - 407dad: 48 85 c0 test %rax,%rax - 407db0: 74 25 je 407dd7 - 407db2: 8b 10 mov (%rax),%edx - 407db4: 83 fa 02 cmp $0x2,%edx - 407db7: 0f 84 97 19 00 00 je 409754 - 407dbd: 83 fa 03 cmp $0x3,%edx - 407dc0: 0f 84 7d 19 00 00 je 409743 - 407dc6: 83 fa 01 cmp $0x1,%edx - 407dc9: 0f 84 96 19 00 00 je 409765 - 407dcf: 48 89 c7 mov %rax,%rdi - 407dd2: e8 d9 5f 01 00 callq 41ddb0 <__cfree> - 407dd7: 49 8b 47 08 mov 0x8(%r15),%rax - 407ddb: 48 85 c0 test %rax,%rax - 407dde: 0f 84 83 e9 ff ff je 406767 - 407de4: 8b 10 mov (%rax),%edx - 407de6: 83 fa 02 cmp $0x2,%edx - 407de9: 0f 84 bf 0e 00 00 je 408cae - 407def: 83 fa 03 cmp $0x3,%edx - 407df2: 0f 84 a5 0e 00 00 je 408c9d - 407df8: 83 fa 01 cmp $0x1,%edx - 407dfb: 0f 84 be 0e 00 00 je 408cbf - 407e01: 48 89 c7 mov %rax,%rdi - 407e04: e8 a7 5f 01 00 callq 41ddb0 <__cfree> - 407e09: e9 59 e9 ff ff jmpq 406767 - 407e0e: 66 90 xchg %ax,%ax - 407e10: 48 8b 78 18 mov 0x18(%rax),%rdi - 407e14: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407e19: e8 f2 dd ff ff callq 405c10 <__gettext_free_exp> - 407e1e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407e23: 48 8b 78 10 mov 0x10(%rax),%rdi - 407e27: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407e2c: e8 df dd ff ff callq 405c10 <__gettext_free_exp> - 407e31: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407e36: 48 8b 78 08 mov 0x8(%rax),%rdi - 407e3a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407e3f: e8 cc dd ff ff callq 405c10 <__gettext_free_exp> - 407e44: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407e49: e9 7b ed ff ff jmpq 406bc9 - 407e4e: 66 90 xchg %ax,%ax - 407e50: 48 8b 78 18 mov 0x18(%rax),%rdi - 407e54: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407e59: e8 b2 dd ff ff callq 405c10 <__gettext_free_exp> - 407e5e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407e63: 48 8b 78 10 mov 0x10(%rax),%rdi - 407e67: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407e6c: e8 9f dd ff ff callq 405c10 <__gettext_free_exp> - 407e71: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407e76: 48 8b 78 08 mov 0x8(%rax),%rdi - 407e7a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407e7f: e8 8c dd ff ff callq 405c10 <__gettext_free_exp> - 407e84: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407e89: e9 cb f6 ff ff jmpq 407559 - 407e8e: 66 90 xchg %ax,%ax - 407e90: 48 8b 78 18 mov 0x18(%rax),%rdi - 407e94: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407e99: e8 72 dd ff ff callq 405c10 <__gettext_free_exp> - 407e9e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407ea3: 48 8b 78 10 mov 0x10(%rax),%rdi - 407ea7: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407eac: e8 5f dd ff ff callq 405c10 <__gettext_free_exp> - 407eb1: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407eb6: 48 8b 78 08 mov 0x8(%rax),%rdi - 407eba: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407ebf: e8 4c dd ff ff callq 405c10 <__gettext_free_exp> - 407ec4: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407ec9: e9 5b eb ff ff jmpq 406a29 - 407ece: 66 90 xchg %ax,%ax - 407ed0: 48 8b 78 18 mov 0x18(%rax),%rdi - 407ed4: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407ed9: e8 32 dd ff ff callq 405c10 <__gettext_free_exp> - 407ede: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407ee3: 48 8b 78 10 mov 0x10(%rax),%rdi - 407ee7: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407eec: e8 1f dd ff ff callq 405c10 <__gettext_free_exp> - 407ef1: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407ef6: 48 8b 78 08 mov 0x8(%rax),%rdi - 407efa: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407eff: e8 0c dd ff ff callq 405c10 <__gettext_free_exp> - 407f04: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407f09: e9 8e f2 ff ff jmpq 40719c - 407f0e: 66 90 xchg %ax,%ax - 407f10: 48 8b 78 18 mov 0x18(%rax),%rdi - 407f14: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407f19: e8 f2 dc ff ff callq 405c10 <__gettext_free_exp> - 407f1e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407f23: 48 8b 78 10 mov 0x10(%rax),%rdi - 407f27: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407f2c: e8 df dc ff ff callq 405c10 <__gettext_free_exp> - 407f31: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407f36: 48 8b 78 08 mov 0x8(%rax),%rdi - 407f3a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407f3f: e8 cc dc ff ff callq 405c10 <__gettext_free_exp> - 407f44: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407f49: e9 c5 eb ff ff jmpq 406b13 - 407f4e: 66 90 xchg %ax,%ax - 407f50: 48 8b 78 18 mov 0x18(%rax),%rdi - 407f54: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407f59: e8 b2 dc ff ff callq 405c10 <__gettext_free_exp> - 407f5e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407f63: 48 8b 78 10 mov 0x10(%rax),%rdi - 407f67: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407f6c: e8 9f dc ff ff callq 405c10 <__gettext_free_exp> - 407f71: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407f76: 48 8b 78 08 mov 0x8(%rax),%rdi - 407f7a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407f7f: e8 8c dc ff ff callq 405c10 <__gettext_free_exp> - 407f84: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407f89: e9 ee f2 ff ff jmpq 40727c - 407f8e: 66 90 xchg %ax,%ax - 407f90: 48 8b 78 18 mov 0x18(%rax),%rdi - 407f94: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407f99: e8 72 dc ff ff callq 405c10 <__gettext_free_exp> - 407f9e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407fa3: 48 8b 78 10 mov 0x10(%rax),%rdi - 407fa7: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407fac: e8 5f dc ff ff callq 405c10 <__gettext_free_exp> - 407fb1: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407fb6: 48 8b 78 08 mov 0x8(%rax),%rdi - 407fba: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407fbf: e8 4c dc ff ff callq 405c10 <__gettext_free_exp> - 407fc4: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407fc9: e9 e6 f0 ff ff jmpq 4070b4 - 407fce: 66 90 xchg %ax,%ax - 407fd0: 48 8b 78 18 mov 0x18(%rax),%rdi - 407fd4: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407fd9: e8 32 dc ff ff callq 405c10 <__gettext_free_exp> - 407fde: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407fe3: 48 8b 78 10 mov 0x10(%rax),%rdi - 407fe7: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407fec: e8 1f dc ff ff callq 405c10 <__gettext_free_exp> - 407ff1: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 407ff6: 48 8b 78 08 mov 0x8(%rax),%rdi - 407ffa: 48 89 44 24 08 mov %rax,0x8(%rsp) - 407fff: e8 0c dc ff ff callq 405c10 <__gettext_free_exp> - 408004: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408009: e9 4e f3 ff ff jmpq 40735c - 40800e: 66 90 xchg %ax,%ax - 408010: 48 8b 78 18 mov 0x18(%rax),%rdi - 408014: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408019: e8 f2 db ff ff callq 405c10 <__gettext_free_exp> - 40801e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408023: 48 8b 78 10 mov 0x10(%rax),%rdi - 408027: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40802c: e8 df db ff ff callq 405c10 <__gettext_free_exp> - 408031: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408036: 48 8b 78 08 mov 0x8(%rax),%rdi - 40803a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40803f: e8 cc db ff ff callq 405c10 <__gettext_free_exp> - 408044: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408049: e9 23 f8 ff ff jmpq 407871 - 40804e: 66 90 xchg %ax,%ax - 408050: 48 8b 78 18 mov 0x18(%rax),%rdi - 408054: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408059: e8 b2 db ff ff callq 405c10 <__gettext_free_exp> - 40805e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408063: 48 8b 78 10 mov 0x10(%rax),%rdi - 408067: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40806c: e8 9f db ff ff callq 405c10 <__gettext_free_exp> - 408071: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408076: 48 8b 78 08 mov 0x8(%rax),%rdi - 40807a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40807f: e8 8c db ff ff callq 405c10 <__gettext_free_exp> - 408084: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408089: e9 c3 f6 ff ff jmpq 407751 - 40808e: 66 90 xchg %ax,%ax - 408090: 48 8b 04 24 mov (%rsp),%rax - 408094: 48 8b 78 18 mov 0x18(%rax),%rdi - 408098: e8 73 db ff ff callq 405c10 <__gettext_free_exp> - 40809d: 48 8b 04 24 mov (%rsp),%rax - 4080a1: 48 8b 40 10 mov 0x10(%rax),%rax - 4080a5: 48 85 c0 test %rax,%rax - 4080a8: 74 25 je 4080cf - 4080aa: 8b 10 mov (%rax),%edx - 4080ac: 83 fa 02 cmp $0x2,%edx - 4080af: 0f 84 3f 08 00 00 je 4088f4 - 4080b5: 83 fa 03 cmp $0x3,%edx - 4080b8: 0f 84 23 08 00 00 je 4088e1 - 4080be: 83 fa 01 cmp $0x1,%edx - 4080c1: 0f 84 40 08 00 00 je 408907 - 4080c7: 48 89 c7 mov %rax,%rdi - 4080ca: e8 e1 5c 01 00 callq 41ddb0 <__cfree> - 4080cf: 48 8b 04 24 mov (%rsp),%rax - 4080d3: 48 8b 40 08 mov 0x8(%rax),%rax - 4080d7: 48 85 c0 test %rax,%rax - 4080da: 0f 84 a1 eb ff ff je 406c81 - 4080e0: 8b 10 mov (%rax),%edx - 4080e2: 83 fa 02 cmp $0x2,%edx - 4080e5: 0f 84 41 0d 00 00 je 408e2c - 4080eb: 83 fa 03 cmp $0x3,%edx - 4080ee: 0f 84 25 0d 00 00 je 408e19 - 4080f4: 83 fa 01 cmp $0x1,%edx - 4080f7: 0f 84 42 0d 00 00 je 408e3f - 4080fd: 48 89 c7 mov %rax,%rdi - 408100: e8 ab 5c 01 00 callq 41ddb0 <__cfree> - 408105: e9 77 eb ff ff jmpq 406c81 - 40810a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 408110: 48 8b 04 24 mov (%rsp),%rax - 408114: 48 8b 78 18 mov 0x18(%rax),%rdi - 408118: e8 f3 da ff ff callq 405c10 <__gettext_free_exp> - 40811d: 48 8b 04 24 mov (%rsp),%rax - 408121: 48 8b 40 10 mov 0x10(%rax),%rax - 408125: 48 85 c0 test %rax,%rax - 408128: 74 25 je 40814f - 40812a: 8b 10 mov (%rax),%edx - 40812c: 83 fa 02 cmp $0x2,%edx - 40812f: 0f 84 43 07 00 00 je 408878 - 408135: 83 fa 03 cmp $0x3,%edx - 408138: 0f 84 27 07 00 00 je 408865 - 40813e: 83 fa 01 cmp $0x1,%edx - 408141: 0f 84 44 07 00 00 je 40888b - 408147: 48 89 c7 mov %rax,%rdi - 40814a: e8 61 5c 01 00 callq 41ddb0 <__cfree> - 40814f: 48 8b 04 24 mov (%rsp),%rax - 408153: 48 8b 40 08 mov 0x8(%rax),%rax - 408157: 48 85 c0 test %rax,%rax - 40815a: 0f 84 50 f3 ff ff je 4074b0 - 408160: 8b 10 mov (%rax),%edx - 408162: 83 fa 02 cmp $0x2,%edx - 408165: 0f 84 45 0c 00 00 je 408db0 - 40816b: 83 fa 03 cmp $0x3,%edx - 40816e: 0f 84 29 0c 00 00 je 408d9d - 408174: 83 fa 01 cmp $0x1,%edx - 408177: 0f 84 46 0c 00 00 je 408dc3 - 40817d: 48 89 c7 mov %rax,%rdi - 408180: e8 2b 5c 01 00 callq 41ddb0 <__cfree> - 408185: e9 26 f3 ff ff jmpq 4074b0 - 40818a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 408190: 48 8b 04 24 mov (%rsp),%rax - 408194: 48 8b 78 18 mov 0x18(%rax),%rdi - 408198: e8 73 da ff ff callq 405c10 <__gettext_free_exp> - 40819d: 48 8b 04 24 mov (%rsp),%rax - 4081a1: 48 8b 40 10 mov 0x10(%rax),%rax - 4081a5: 48 85 c0 test %rax,%rax - 4081a8: 74 25 je 4081cf - 4081aa: 8b 10 mov (%rax),%edx - 4081ac: 83 fa 02 cmp $0x2,%edx - 4081af: 0f 84 7d 07 00 00 je 408932 - 4081b5: 83 fa 03 cmp $0x3,%edx - 4081b8: 0f 84 61 07 00 00 je 40891f - 4081be: 83 fa 01 cmp $0x1,%edx - 4081c1: 0f 84 7e 07 00 00 je 408945 - 4081c7: 48 89 c7 mov %rax,%rdi - 4081ca: e8 e1 5b 01 00 callq 41ddb0 <__cfree> - 4081cf: 48 8b 04 24 mov (%rsp),%rax - 4081d3: 48 8b 40 08 mov 0x8(%rax),%rax - 4081d7: 48 85 c0 test %rax,%rax - 4081da: 0f 84 e8 f5 ff ff je 4077c8 - 4081e0: 8b 10 mov (%rax),%edx - 4081e2: 83 fa 02 cmp $0x2,%edx - 4081e5: 0f 84 87 0b 00 00 je 408d72 - 4081eb: 83 fa 03 cmp $0x3,%edx - 4081ee: 0f 84 6b 0b 00 00 je 408d5f - 4081f4: 83 fa 01 cmp $0x1,%edx - 4081f7: 0f 84 88 0b 00 00 je 408d85 - 4081fd: 48 89 c7 mov %rax,%rdi - 408200: e8 ab 5b 01 00 callq 41ddb0 <__cfree> - 408205: e9 be f5 ff ff jmpq 4077c8 - 40820a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 408210: 48 8b 04 24 mov (%rsp),%rax - 408214: 48 8b 78 18 mov 0x18(%rax),%rdi - 408218: e8 f3 d9 ff ff callq 405c10 <__gettext_free_exp> - 40821d: 48 8b 04 24 mov (%rsp),%rax - 408221: 48 8b 40 10 mov 0x10(%rax),%rax - 408225: 48 85 c0 test %rax,%rax - 408228: 74 25 je 40824f - 40822a: 8b 10 mov (%rax),%edx - 40822c: 83 fa 02 cmp $0x2,%edx - 40822f: 0f 84 81 06 00 00 je 4088b6 - 408235: 83 fa 03 cmp $0x3,%edx - 408238: 0f 84 65 06 00 00 je 4088a3 - 40823e: 83 fa 01 cmp $0x1,%edx - 408241: 0f 84 82 06 00 00 je 4088c9 - 408247: 48 89 c7 mov %rax,%rdi - 40824a: e8 61 5b 01 00 callq 41ddb0 <__cfree> - 40824f: 48 8b 04 24 mov (%rsp),%rax - 408253: 48 8b 40 08 mov 0x8(%rax),%rax - 408257: 48 85 c0 test %rax,%rax - 40825a: 0f 84 48 f4 ff ff je 4076a8 - 408260: 8b 10 mov (%rax),%edx - 408262: 83 fa 02 cmp $0x2,%edx - 408265: 0f 84 83 0b 00 00 je 408dee - 40826b: 83 fa 03 cmp $0x3,%edx - 40826e: 0f 84 67 0b 00 00 je 408ddb - 408274: 83 fa 01 cmp $0x1,%edx - 408277: 0f 84 84 0b 00 00 je 408e01 - 40827d: 48 89 c7 mov %rax,%rdi - 408280: e8 2b 5b 01 00 callq 41ddb0 <__cfree> - 408285: e9 1e f4 ff ff jmpq 4076a8 - 40828a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 408290: 49 8b 7d 18 mov 0x18(%r13),%rdi - 408294: e8 77 d9 ff ff callq 405c10 <__gettext_free_exp> - 408299: 4d 8b 7d 10 mov 0x10(%r13),%r15 - 40829d: 4d 85 ff test %r15,%r15 - 4082a0: 74 26 je 4082c8 - 4082a2: 41 8b 07 mov (%r15),%eax - 4082a5: 83 f8 02 cmp $0x2,%eax - 4082a8: 0f 84 1e 07 00 00 je 4089cc - 4082ae: 83 f8 03 cmp $0x3,%eax - 4082b1: 0f 84 0c 07 00 00 je 4089c3 - 4082b7: 83 f8 01 cmp $0x1,%eax - 4082ba: 0f 84 15 07 00 00 je 4089d5 - 4082c0: 4c 89 ff mov %r15,%rdi - 4082c3: e8 e8 5a 01 00 callq 41ddb0 <__cfree> - 4082c8: 4d 8b 7d 08 mov 0x8(%r13),%r15 - 4082cc: 4d 85 ff test %r15,%r15 - 4082cf: 0f 84 e4 ec ff ff je 406fb9 - 4082d5: 41 8b 07 mov (%r15),%eax - 4082d8: 83 f8 02 cmp $0x2,%eax - 4082db: 0f 84 07 0d 00 00 je 408fe8 - 4082e1: 83 f8 03 cmp $0x3,%eax - 4082e4: 0f 84 f5 0c 00 00 je 408fdf - 4082ea: 83 f8 01 cmp $0x1,%eax - 4082ed: 0f 84 fe 0c 00 00 je 408ff1 - 4082f3: 4c 89 ff mov %r15,%rdi - 4082f6: e8 b5 5a 01 00 callq 41ddb0 <__cfree> - 4082fb: e9 b9 ec ff ff jmpq 406fb9 - 408300: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 408304: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408309: 48 89 14 24 mov %rdx,(%rsp) - 40830d: e8 fe d8 ff ff callq 405c10 <__gettext_free_exp> - 408312: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408317: 48 8b 14 24 mov (%rsp),%rdx - 40831b: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40831f: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408324: 48 89 14 24 mov %rdx,(%rsp) - 408328: e8 e3 d8 ff ff callq 405c10 <__gettext_free_exp> - 40832d: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408332: 48 8b 14 24 mov (%rsp),%rdx - 408336: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40833a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40833f: 48 89 14 24 mov %rdx,(%rsp) - 408343: e8 c8 d8 ff ff callq 405c10 <__gettext_free_exp> - 408348: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40834d: 48 8b 14 24 mov (%rsp),%rdx - 408351: e9 b0 f0 ff ff jmpq 407406 - 408356: 48 8b 78 18 mov 0x18(%rax),%rdi - 40835a: 48 89 04 24 mov %rax,(%rsp) - 40835e: e8 ad d8 ff ff callq 405c10 <__gettext_free_exp> - 408363: 48 8b 04 24 mov (%rsp),%rax - 408367: 48 8b 78 10 mov 0x10(%rax),%rdi - 40836b: 48 89 04 24 mov %rax,(%rsp) - 40836f: e8 9c d8 ff ff callq 405c10 <__gettext_free_exp> - 408374: 48 8b 04 24 mov (%rsp),%rax - 408378: 48 8b 50 08 mov 0x8(%rax),%rdx - 40837c: 48 85 d2 test %rdx,%rdx - 40837f: 0f 84 11 f2 ff ff je 407596 - 408385: 8b 0a mov (%rdx),%ecx - 408387: 83 f9 02 cmp $0x2,%ecx - 40838a: 0f 84 c3 10 00 00 je 409453 - 408390: 83 f9 03 cmp $0x3,%ecx - 408393: 0f 84 9f 10 00 00 je 409438 - 408399: 83 f9 01 cmp $0x1,%ecx - 40839c: 0f 84 cc 10 00 00 je 40946e - 4083a2: 48 89 d7 mov %rdx,%rdi - 4083a5: 48 89 04 24 mov %rax,(%rsp) - 4083a9: e8 02 5a 01 00 callq 41ddb0 <__cfree> - 4083ae: 48 8b 04 24 mov (%rsp),%rax - 4083b2: e9 df f1 ff ff jmpq 407596 - 4083b7: 48 8b 78 18 mov 0x18(%rax),%rdi - 4083bb: 48 89 04 24 mov %rax,(%rsp) - 4083bf: e8 4c d8 ff ff callq 405c10 <__gettext_free_exp> - 4083c4: 48 8b 04 24 mov (%rsp),%rax - 4083c8: 48 8b 78 10 mov 0x10(%rax),%rdi - 4083cc: 48 89 04 24 mov %rax,(%rsp) - 4083d0: e8 3b d8 ff ff callq 405c10 <__gettext_free_exp> - 4083d5: 48 8b 04 24 mov (%rsp),%rax - 4083d9: 48 8b 50 08 mov 0x8(%rax),%rdx - 4083dd: 48 85 d2 test %rdx,%rdx - 4083e0: 0f 84 d9 e9 ff ff je 406dbf - 4083e6: 8b 0a mov (%rdx),%ecx - 4083e8: 83 f9 02 cmp $0x2,%ecx - 4083eb: 0f 84 4c 11 00 00 je 40953d - 4083f1: 83 f9 03 cmp $0x3,%ecx - 4083f4: 0f 84 28 11 00 00 je 409522 - 4083fa: 83 f9 01 cmp $0x1,%ecx - 4083fd: 0f 84 55 11 00 00 je 409558 - 408403: 48 89 d7 mov %rdx,%rdi - 408406: 48 89 04 24 mov %rax,(%rsp) - 40840a: e8 a1 59 01 00 callq 41ddb0 <__cfree> - 40840f: 48 8b 04 24 mov (%rsp),%rax - 408413: e9 a7 e9 ff ff jmpq 406dbf - 408418: 48 8b 78 18 mov 0x18(%rax),%rdi - 40841c: 48 89 04 24 mov %rax,(%rsp) - 408420: e8 eb d7 ff ff callq 405c10 <__gettext_free_exp> - 408425: 48 8b 04 24 mov (%rsp),%rax - 408429: 48 8b 78 10 mov 0x10(%rax),%rdi - 40842d: 48 89 04 24 mov %rax,(%rsp) - 408431: e8 da d7 ff ff callq 405c10 <__gettext_free_exp> - 408436: 48 8b 04 24 mov (%rsp),%rax - 40843a: 48 8b 50 08 mov 0x8(%rax),%rdx - 40843e: 48 85 d2 test %rdx,%rdx - 408441: 0f 84 6f f4 ff ff je 4078b6 - 408447: 8b 0a mov (%rdx),%ecx - 408449: 83 f9 02 cmp $0x2,%ecx - 40844c: 0f 84 95 10 00 00 je 4094e7 - 408452: 83 f9 03 cmp $0x3,%ecx - 408455: 0f 84 71 10 00 00 je 4094cc - 40845b: 83 f9 01 cmp $0x1,%ecx - 40845e: 0f 84 9e 10 00 00 je 409502 - 408464: 48 89 d7 mov %rdx,%rdi - 408467: 48 89 04 24 mov %rax,(%rsp) - 40846b: e8 40 59 01 00 callq 41ddb0 <__cfree> - 408470: 48 8b 04 24 mov (%rsp),%rax - 408474: e9 3d f4 ff ff jmpq 4078b6 - 408479: 48 8b 78 18 mov 0x18(%rax),%rdi - 40847d: 48 89 04 24 mov %rax,(%rsp) - 408481: e8 8a d7 ff ff callq 405c10 <__gettext_free_exp> - 408486: 48 8b 04 24 mov (%rsp),%rax - 40848a: 48 8b 78 10 mov 0x10(%rax),%rdi - 40848e: 48 89 04 24 mov %rax,(%rsp) - 408492: e8 79 d7 ff ff callq 405c10 <__gettext_free_exp> - 408497: 48 8b 04 24 mov (%rsp),%rax - 40849b: 48 8b 50 08 mov 0x8(%rax),%rdx - 40849f: 48 85 d2 test %rdx,%rdx - 4084a2: 0f 84 57 ea ff ff je 406eff - 4084a8: 8b 0a mov (%rdx),%ecx - 4084aa: 83 f9 02 cmp $0x2,%ecx - 4084ad: 0f 84 bc 0c 00 00 je 40916f - 4084b3: 83 f9 03 cmp $0x3,%ecx - 4084b6: 0f 84 98 0c 00 00 je 409154 - 4084bc: 83 f9 01 cmp $0x1,%ecx - 4084bf: 0f 84 c5 0c 00 00 je 40918a - 4084c5: 48 89 d7 mov %rdx,%rdi - 4084c8: 48 89 04 24 mov %rax,(%rsp) - 4084cc: e8 df 58 01 00 callq 41ddb0 <__cfree> - 4084d1: 48 8b 04 24 mov (%rsp),%rax - 4084d5: e9 25 ea ff ff jmpq 406eff - 4084da: 48 8b 78 18 mov 0x18(%rax),%rdi - 4084de: 48 89 04 24 mov %rax,(%rsp) - 4084e2: e8 29 d7 ff ff callq 405c10 <__gettext_free_exp> - 4084e7: 48 8b 04 24 mov (%rsp),%rax - 4084eb: 48 8b 78 10 mov 0x10(%rax),%rdi - 4084ef: 48 89 04 24 mov %rax,(%rsp) - 4084f3: e8 18 d7 ff ff callq 405c10 <__gettext_free_exp> - 4084f8: 48 8b 04 24 mov (%rsp),%rax - 4084fc: 48 8b 50 08 mov 0x8(%rax),%rdx - 408500: 48 85 d2 test %rdx,%rdx - 408503: 0f 84 fd f0 ff ff je 407606 - 408509: 8b 0a mov (%rdx),%ecx - 40850b: 83 f9 02 cmp $0x2,%ecx - 40850e: 0f 84 e9 0e 00 00 je 4093fd - 408514: 83 f9 03 cmp $0x3,%ecx - 408517: 0f 84 c5 0e 00 00 je 4093e2 - 40851d: 83 f9 01 cmp $0x1,%ecx - 408520: 0f 84 f2 0e 00 00 je 409418 - 408526: 48 89 d7 mov %rdx,%rdi - 408529: 48 89 04 24 mov %rax,(%rsp) - 40852d: e8 7e 58 01 00 callq 41ddb0 <__cfree> - 408532: 48 8b 04 24 mov (%rsp),%rax - 408536: e9 cb f0 ff ff jmpq 407606 - 40853b: 48 8b 04 24 mov (%rsp),%rax - 40853f: 48 8b 78 18 mov 0x18(%rax),%rdi - 408543: e8 c8 d6 ff ff callq 405c10 <__gettext_free_exp> - 408548: 48 8b 04 24 mov (%rsp),%rax - 40854c: 48 8b 40 10 mov 0x10(%rax),%rax - 408550: 48 85 c0 test %rax,%rax - 408553: 74 25 je 40857a - 408555: 8b 10 mov (%rax),%edx - 408557: 83 fa 02 cmp $0x2,%edx - 40855a: 0f 84 96 04 00 00 je 4089f6 - 408560: 83 fa 03 cmp $0x3,%edx - 408563: 0f 84 7a 04 00 00 je 4089e3 - 408569: 83 fa 01 cmp $0x1,%edx - 40856c: 0f 84 97 04 00 00 je 408a09 - 408572: 48 89 c7 mov %rax,%rdi - 408575: e8 36 58 01 00 callq 41ddb0 <__cfree> - 40857a: 48 8b 04 24 mov (%rsp),%rax - 40857e: 48 8b 40 08 mov 0x8(%rax),%rax - 408582: 48 85 c0 test %rax,%rax - 408585: 0f 84 32 df ff ff je 4064bd - 40858b: 8b 10 mov (%rax),%edx - 40858d: 83 fa 02 cmp $0x2,%edx - 408590: 0f 84 21 0e 00 00 je 4093b7 - 408596: 83 fa 03 cmp $0x3,%edx - 408599: 0f 84 05 0e 00 00 je 4093a4 - 40859f: 83 fa 01 cmp $0x1,%edx - 4085a2: 0f 84 22 0e 00 00 je 4093ca - 4085a8: 48 89 c7 mov %rax,%rdi - 4085ab: e8 00 58 01 00 callq 41ddb0 <__cfree> - 4085b0: e9 08 df ff ff jmpq 4064bd - 4085b5: 49 8b 7f 18 mov 0x18(%r15),%rdi - 4085b9: e8 52 d6 ff ff callq 405c10 <__gettext_free_exp> - 4085be: 49 8b 7f 10 mov 0x10(%r15),%rdi - 4085c2: e8 49 d6 ff ff callq 405c10 <__gettext_free_exp> - 4085c7: 49 8b 47 08 mov 0x8(%r15),%rax - 4085cb: 48 85 c0 test %rax,%rax - 4085ce: 0f 84 ec e2 ff ff je 4068c0 - 4085d4: 8b 10 mov (%rax),%edx - 4085d6: 83 fa 02 cmp $0x2,%edx - 4085d9: 0f 84 35 13 00 00 je 409914 - 4085df: 83 fa 03 cmp $0x3,%edx - 4085e2: 0f 84 1b 13 00 00 je 409903 - 4085e8: 83 fa 01 cmp $0x1,%edx - 4085eb: 0f 84 34 13 00 00 je 409925 - 4085f1: 48 89 c7 mov %rax,%rdi - 4085f4: e8 b7 57 01 00 callq 41ddb0 <__cfree> - 4085f9: e9 c2 e2 ff ff jmpq 4068c0 - 4085fe: 49 8b 7f 18 mov 0x18(%r15),%rdi - 408602: e8 09 d6 ff ff callq 405c10 <__gettext_free_exp> - 408607: 49 8b 7f 10 mov 0x10(%r15),%rdi - 40860b: e8 00 d6 ff ff callq 405c10 <__gettext_free_exp> - 408610: 49 8b 47 08 mov 0x8(%r15),%rax - 408614: 48 85 c0 test %rax,%rax - 408617: 0f 84 95 df ff ff je 4065b2 - 40861d: 8b 10 mov (%rax),%edx - 40861f: 83 fa 02 cmp $0x2,%edx - 408622: 0f 84 5c 13 00 00 je 409984 - 408628: 83 fa 03 cmp $0x3,%edx - 40862b: 0f 84 42 13 00 00 je 409973 - 408631: 83 fa 01 cmp $0x1,%edx - 408634: 0f 84 5b 13 00 00 je 409995 - 40863a: 48 89 c7 mov %rax,%rdi - 40863d: e8 6e 57 01 00 callq 41ddb0 <__cfree> - 408642: e9 6b df ff ff jmpq 4065b2 - 408647: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40864b: e8 c0 d5 ff ff callq 405c10 <__gettext_free_exp> - 408650: 49 8b 7f 10 mov 0x10(%r15),%rdi - 408654: e8 b7 d5 ff ff callq 405c10 <__gettext_free_exp> - 408659: 49 8b 47 08 mov 0x8(%r15),%rax - 40865d: 48 85 c0 test %rax,%rax - 408660: 0f 84 c1 f2 ff ff je 407927 - 408666: 8b 10 mov (%rax),%edx - 408668: 83 fa 02 cmp $0x2,%edx - 40866b: 0f 84 ab 10 00 00 je 40971c - 408671: 83 fa 03 cmp $0x3,%edx - 408674: 0f 84 91 10 00 00 je 40970b - 40867a: 83 fa 01 cmp $0x1,%edx - 40867d: 0f 84 aa 10 00 00 je 40972d - 408683: 48 89 c7 mov %rax,%rdi - 408686: e8 25 57 01 00 callq 41ddb0 <__cfree> - 40868b: e9 97 f2 ff ff jmpq 407927 - 408690: 48 8b 78 18 mov 0x18(%rax),%rdi - 408694: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408699: e8 72 d5 ff ff callq 405c10 <__gettext_free_exp> - 40869e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4086a3: 48 8b 78 10 mov 0x10(%rax),%rdi - 4086a7: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4086ac: e8 5f d5 ff ff callq 405c10 <__gettext_free_exp> - 4086b1: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4086b6: 48 8b 78 08 mov 0x8(%rax),%rdi - 4086ba: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4086bf: e8 4c d5 ff ff callq 405c10 <__gettext_free_exp> - 4086c4: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4086c9: e9 13 e4 ff ff jmpq 406ae1 - 4086ce: 48 8b 78 18 mov 0x18(%rax),%rdi - 4086d2: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4086d7: e8 34 d5 ff ff callq 405c10 <__gettext_free_exp> - 4086dc: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4086e1: 48 8b 78 10 mov 0x10(%rax),%rdi - 4086e5: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4086ea: e8 21 d5 ff ff callq 405c10 <__gettext_free_exp> - 4086ef: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4086f4: 48 8b 78 08 mov 0x8(%rax),%rdi - 4086f8: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4086fd: e8 0e d5 ff ff callq 405c10 <__gettext_free_exp> - 408702: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408707: e9 eb e2 ff ff jmpq 4069f7 - 40870c: 48 8b 78 18 mov 0x18(%rax),%rdi - 408710: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408715: e8 f6 d4 ff ff callq 405c10 <__gettext_free_exp> - 40871a: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40871f: 48 8b 78 10 mov 0x10(%rax),%rdi - 408723: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408728: e8 e3 d4 ff ff callq 405c10 <__gettext_free_exp> - 40872d: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408732: 48 8b 78 08 mov 0x8(%rax),%rdi - 408736: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40873b: e8 d0 d4 ff ff callq 405c10 <__gettext_free_exp> - 408740: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408745: e9 f5 f0 ff ff jmpq 40783f - 40874a: 48 8b 78 18 mov 0x18(%rax),%rdi - 40874e: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408753: e8 b8 d4 ff ff callq 405c10 <__gettext_free_exp> - 408758: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40875d: 48 8b 78 10 mov 0x10(%rax),%rdi - 408761: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408766: e8 a5 d4 ff ff callq 405c10 <__gettext_free_exp> - 40876b: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408770: 48 8b 78 08 mov 0x8(%rax),%rdi - 408774: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408779: e8 92 d4 ff ff callq 405c10 <__gettext_free_exp> - 40877e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408783: e9 9f ed ff ff jmpq 407527 - 408788: 48 8b 78 18 mov 0x18(%rax),%rdi - 40878c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408791: e8 7a d4 ff ff callq 405c10 <__gettext_free_exp> - 408796: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40879b: 48 8b 78 10 mov 0x10(%rax),%rdi - 40879f: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4087a4: e8 67 d4 ff ff callq 405c10 <__gettext_free_exp> - 4087a9: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4087ae: 48 8b 78 08 mov 0x8(%rax),%rdi - 4087b2: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4087b7: e8 54 d4 ff ff callq 405c10 <__gettext_free_exp> - 4087bc: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4087c1: e9 d1 e3 ff ff jmpq 406b97 - 4087c6: 48 8b 78 18 mov 0x18(%rax),%rdi - 4087ca: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4087cf: e8 3c d4 ff ff callq 405c10 <__gettext_free_exp> - 4087d4: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4087d9: 48 8b 78 10 mov 0x10(%rax),%rdi - 4087dd: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4087e2: e8 29 d4 ff ff callq 405c10 <__gettext_free_exp> - 4087e7: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4087ec: 48 8b 78 08 mov 0x8(%rax),%rdi - 4087f0: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4087f5: e8 16 d4 ff ff callq 405c10 <__gettext_free_exp> - 4087fa: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4087ff: e9 1b ef ff ff jmpq 40771f - 408804: 48 8b 78 18 mov 0x18(%rax),%rdi - 408808: 48 89 04 24 mov %rax,(%rsp) - 40880c: e8 ff d3 ff ff callq 405c10 <__gettext_free_exp> - 408811: 48 8b 04 24 mov (%rsp),%rax - 408815: 48 8b 78 10 mov 0x10(%rax),%rdi - 408819: 48 89 04 24 mov %rax,(%rsp) - 40881d: e8 ee d3 ff ff callq 405c10 <__gettext_free_exp> - 408822: 48 8b 04 24 mov (%rsp),%rax - 408826: 48 8b 50 08 mov 0x8(%rax),%rdx - 40882a: 48 85 d2 test %rdx,%rdx - 40882d: 0f 84 1c e4 ff ff je 406c4f - 408833: 8b 0a mov (%rdx),%ecx - 408835: 83 f9 02 cmp $0x2,%ecx - 408838: 0f 84 3a 01 00 00 je 408978 - 40883e: 83 f9 03 cmp $0x3,%ecx - 408841: 0f 84 16 01 00 00 je 40895d - 408847: 83 f9 01 cmp $0x1,%ecx - 40884a: 0f 84 43 01 00 00 je 408993 - 408850: 48 89 d7 mov %rdx,%rdi - 408853: 48 89 04 24 mov %rax,(%rsp) - 408857: e8 54 55 01 00 callq 41ddb0 <__cfree> - 40885c: 48 8b 04 24 mov (%rsp),%rax - 408860: e9 ea e3 ff ff jmpq 406c4f - 408865: 48 8b 78 18 mov 0x18(%rax),%rdi - 408869: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40886e: e8 9d d3 ff ff callq 405c10 <__gettext_free_exp> - 408873: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408878: 48 8b 78 10 mov 0x10(%rax),%rdi - 40887c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408881: e8 8a d3 ff ff callq 405c10 <__gettext_free_exp> - 408886: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40888b: 48 8b 78 08 mov 0x8(%rax),%rdi - 40888f: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408894: e8 77 d3 ff ff callq 405c10 <__gettext_free_exp> - 408899: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40889e: e9 a4 f8 ff ff jmpq 408147 - 4088a3: 48 8b 78 18 mov 0x18(%rax),%rdi - 4088a7: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4088ac: e8 5f d3 ff ff callq 405c10 <__gettext_free_exp> - 4088b1: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4088b6: 48 8b 78 10 mov 0x10(%rax),%rdi - 4088ba: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4088bf: e8 4c d3 ff ff callq 405c10 <__gettext_free_exp> - 4088c4: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4088c9: 48 8b 78 08 mov 0x8(%rax),%rdi - 4088cd: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4088d2: e8 39 d3 ff ff callq 405c10 <__gettext_free_exp> - 4088d7: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4088dc: e9 66 f9 ff ff jmpq 408247 - 4088e1: 48 8b 78 18 mov 0x18(%rax),%rdi - 4088e5: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4088ea: e8 21 d3 ff ff callq 405c10 <__gettext_free_exp> - 4088ef: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4088f4: 48 8b 78 10 mov 0x10(%rax),%rdi - 4088f8: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4088fd: e8 0e d3 ff ff callq 405c10 <__gettext_free_exp> - 408902: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408907: 48 8b 78 08 mov 0x8(%rax),%rdi - 40890b: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408910: e8 fb d2 ff ff callq 405c10 <__gettext_free_exp> - 408915: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40891a: e9 a8 f7 ff ff jmpq 4080c7 - 40891f: 48 8b 78 18 mov 0x18(%rax),%rdi - 408923: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408928: e8 e3 d2 ff ff callq 405c10 <__gettext_free_exp> - 40892d: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408932: 48 8b 78 10 mov 0x10(%rax),%rdi - 408936: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40893b: e8 d0 d2 ff ff callq 405c10 <__gettext_free_exp> - 408940: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408945: 48 8b 78 08 mov 0x8(%rax),%rdi - 408949: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40894e: e8 bd d2 ff ff callq 405c10 <__gettext_free_exp> - 408953: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408958: e9 6a f8 ff ff jmpq 4081c7 - 40895d: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 408961: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408966: 48 89 14 24 mov %rdx,(%rsp) - 40896a: e8 a1 d2 ff ff callq 405c10 <__gettext_free_exp> - 40896f: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408974: 48 8b 14 24 mov (%rsp),%rdx - 408978: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40897c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408981: 48 89 14 24 mov %rdx,(%rsp) - 408985: e8 86 d2 ff ff callq 405c10 <__gettext_free_exp> - 40898a: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40898f: 48 8b 14 24 mov (%rsp),%rdx - 408993: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 408997: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40899c: 48 89 14 24 mov %rdx,(%rsp) - 4089a0: e8 6b d2 ff ff callq 405c10 <__gettext_free_exp> - 4089a5: 48 8b 14 24 mov (%rsp),%rdx - 4089a9: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4089ae: 48 89 d7 mov %rdx,%rdi - 4089b1: 48 89 04 24 mov %rax,(%rsp) - 4089b5: e8 f6 53 01 00 callq 41ddb0 <__cfree> - 4089ba: 48 8b 04 24 mov (%rsp),%rax - 4089be: e9 8c e2 ff ff jmpq 406c4f - 4089c3: 49 8b 7f 18 mov 0x18(%r15),%rdi - 4089c7: e8 44 d2 ff ff callq 405c10 <__gettext_free_exp> - 4089cc: 49 8b 7f 10 mov 0x10(%r15),%rdi - 4089d0: e8 3b d2 ff ff callq 405c10 <__gettext_free_exp> - 4089d5: 49 8b 7f 08 mov 0x8(%r15),%rdi - 4089d9: e8 32 d2 ff ff callq 405c10 <__gettext_free_exp> - 4089de: e9 dd f8 ff ff jmpq 4082c0 - 4089e3: 48 8b 78 18 mov 0x18(%rax),%rdi - 4089e7: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4089ec: e8 1f d2 ff ff callq 405c10 <__gettext_free_exp> - 4089f1: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4089f6: 48 8b 78 10 mov 0x10(%rax),%rdi - 4089fa: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4089ff: e8 0c d2 ff ff callq 405c10 <__gettext_free_exp> - 408a04: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408a09: 48 8b 78 08 mov 0x8(%rax),%rdi - 408a0d: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408a12: e8 f9 d1 ff ff callq 405c10 <__gettext_free_exp> - 408a17: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408a1c: e9 51 fb ff ff jmpq 408572 - 408a21: 48 8b 78 18 mov 0x18(%rax),%rdi - 408a25: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408a2a: e8 e1 d1 ff ff callq 405c10 <__gettext_free_exp> - 408a2f: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408a34: 48 8b 78 10 mov 0x10(%rax),%rdi - 408a38: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408a3d: e8 ce d1 ff ff callq 405c10 <__gettext_free_exp> - 408a42: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408a47: 48 8b 78 08 mov 0x8(%rax),%rdi - 408a4b: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408a50: e8 bb d1 ff ff callq 405c10 <__gettext_free_exp> - 408a55: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408a5a: e9 7e ef ff ff jmpq 4079dd - 408a5f: 48 8b 78 18 mov 0x18(%rax),%rdi - 408a63: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408a68: e8 a3 d1 ff ff callq 405c10 <__gettext_free_exp> - 408a6d: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408a72: 48 8b 78 10 mov 0x10(%rax),%rdi - 408a76: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408a7b: e8 90 d1 ff ff callq 405c10 <__gettext_free_exp> - 408a80: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408a85: 48 8b 78 08 mov 0x8(%rax),%rdi - 408a89: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408a8e: e8 7d d1 ff ff callq 405c10 <__gettext_free_exp> - 408a93: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408a98: e9 c0 f0 ff ff jmpq 407b5d - 408a9d: 48 8b 78 18 mov 0x18(%rax),%rdi - 408aa1: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408aa6: e8 65 d1 ff ff callq 405c10 <__gettext_free_exp> - 408aab: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408ab0: 48 8b 78 10 mov 0x10(%rax),%rdi - 408ab4: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408ab9: e8 52 d1 ff ff callq 405c10 <__gettext_free_exp> - 408abe: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408ac3: 48 8b 78 08 mov 0x8(%rax),%rdi - 408ac7: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408acc: e8 3f d1 ff ff callq 405c10 <__gettext_free_exp> - 408ad1: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408ad6: e9 02 f0 ff ff jmpq 407add - 408adb: 48 8b 78 18 mov 0x18(%rax),%rdi - 408adf: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408ae4: e8 27 d1 ff ff callq 405c10 <__gettext_free_exp> - 408ae9: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408aee: 48 8b 78 10 mov 0x10(%rax),%rdi - 408af2: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408af7: e8 14 d1 ff ff callq 405c10 <__gettext_free_exp> - 408afc: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408b01: 48 8b 78 08 mov 0x8(%rax),%rdi - 408b05: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408b0a: e8 01 d1 ff ff callq 405c10 <__gettext_free_exp> - 408b0f: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408b14: e9 44 ef ff ff jmpq 407a5d - 408b19: 48 8b 78 18 mov 0x18(%rax),%rdi - 408b1d: 48 89 04 24 mov %rax,(%rsp) - 408b21: e8 ea d0 ff ff callq 405c10 <__gettext_free_exp> - 408b26: 48 8b 04 24 mov (%rsp),%rax - 408b2a: 48 8b 78 10 mov 0x10(%rax),%rdi - 408b2e: 48 89 04 24 mov %rax,(%rsp) - 408b32: e8 d9 d0 ff ff callq 405c10 <__gettext_free_exp> - 408b37: 48 8b 04 24 mov (%rsp),%rax - 408b3b: 48 8b 50 08 mov 0x8(%rax),%rdx - 408b3f: 48 85 d2 test %rdx,%rdx - 408b42: 0f 84 d9 f1 ff ff je 407d21 - 408b48: 8b 0a mov (%rdx),%ecx - 408b4a: 83 f9 02 cmp $0x2,%ecx - 408b4d: 0f 84 40 0a 00 00 je 409593 - 408b53: 83 f9 03 cmp $0x3,%ecx - 408b56: 0f 84 1c 0a 00 00 je 409578 - 408b5c: 83 f9 01 cmp $0x1,%ecx - 408b5f: 0f 84 49 0a 00 00 je 4095ae - 408b65: 48 89 d7 mov %rdx,%rdi - 408b68: 48 89 04 24 mov %rax,(%rsp) - 408b6c: e8 3f 52 01 00 callq 41ddb0 <__cfree> - 408b71: 48 8b 04 24 mov (%rsp),%rax - 408b75: e9 a7 f1 ff ff jmpq 407d21 - 408b7a: 48 8b 78 18 mov 0x18(%rax),%rdi - 408b7e: 48 89 04 24 mov %rax,(%rsp) - 408b82: e8 89 d0 ff ff callq 405c10 <__gettext_free_exp> - 408b87: 48 8b 04 24 mov (%rsp),%rax - 408b8b: 48 8b 78 10 mov 0x10(%rax),%rdi - 408b8f: 48 89 04 24 mov %rax,(%rsp) - 408b93: e8 78 d0 ff ff callq 405c10 <__gettext_free_exp> - 408b98: 48 8b 04 24 mov (%rsp),%rax - 408b9c: 48 8b 50 08 mov 0x8(%rax),%rdx - 408ba0: 48 85 d2 test %rdx,%rdx - 408ba3: 0f 84 98 f0 ff ff je 407c41 - 408ba9: 8b 0a mov (%rdx),%ecx - 408bab: 83 f9 02 cmp $0x2,%ecx - 408bae: 0f 84 b1 0a 00 00 je 409665 - 408bb4: 83 f9 03 cmp $0x3,%ecx - 408bb7: 0f 84 8d 0a 00 00 je 40964a - 408bbd: 83 f9 01 cmp $0x1,%ecx - 408bc0: 0f 84 ba 0a 00 00 je 409680 - 408bc6: 48 89 d7 mov %rdx,%rdi - 408bc9: 48 89 04 24 mov %rax,(%rsp) - 408bcd: e8 de 51 01 00 callq 41ddb0 <__cfree> - 408bd2: 48 8b 04 24 mov (%rsp),%rax - 408bd6: e9 66 f0 ff ff jmpq 407c41 - 408bdb: 48 8b 78 18 mov 0x18(%rax),%rdi - 408bdf: 48 89 04 24 mov %rax,(%rsp) - 408be3: e8 28 d0 ff ff callq 405c10 <__gettext_free_exp> - 408be8: 48 8b 04 24 mov (%rsp),%rax - 408bec: 48 8b 78 10 mov 0x10(%rax),%rdi - 408bf0: 48 89 04 24 mov %rax,(%rsp) - 408bf4: e8 17 d0 ff ff callq 405c10 <__gettext_free_exp> - 408bf9: 48 8b 04 24 mov (%rsp),%rax - 408bfd: 48 8b 50 08 mov 0x8(%rax),%rdx - 408c01: 48 85 d2 test %rdx,%rdx - 408c04: 0f 84 a7 f0 ff ff je 407cb1 - 408c0a: 8b 0a mov (%rdx),%ecx - 408c0c: 83 f9 02 cmp $0x2,%ecx - 408c0f: 0f 84 04 05 00 00 je 409119 - 408c15: 83 f9 03 cmp $0x3,%ecx - 408c18: 0f 84 e0 04 00 00 je 4090fe - 408c1e: 83 f9 01 cmp $0x1,%ecx - 408c21: 0f 84 0d 05 00 00 je 409134 - 408c27: 48 89 d7 mov %rdx,%rdi - 408c2a: 48 89 04 24 mov %rax,(%rsp) - 408c2e: e8 7d 51 01 00 callq 41ddb0 <__cfree> - 408c33: 48 8b 04 24 mov (%rsp),%rax - 408c37: e9 75 f0 ff ff jmpq 407cb1 - 408c3c: 48 8b 78 18 mov 0x18(%rax),%rdi - 408c40: 48 89 04 24 mov %rax,(%rsp) - 408c44: e8 c7 cf ff ff callq 405c10 <__gettext_free_exp> - 408c49: 48 8b 04 24 mov (%rsp),%rax - 408c4d: 48 8b 78 10 mov 0x10(%rax),%rdi - 408c51: 48 89 04 24 mov %rax,(%rsp) - 408c55: e8 b6 cf ff ff callq 405c10 <__gettext_free_exp> - 408c5a: 48 8b 04 24 mov (%rsp),%rax - 408c5e: 48 8b 50 08 mov 0x8(%rax),%rdx - 408c62: 48 85 d2 test %rdx,%rdx - 408c65: 0f 84 26 f1 ff ff je 407d91 - 408c6b: 8b 0a mov (%rdx),%ecx - 408c6d: 83 f9 02 cmp $0x2,%ecx - 408c70: 0f 84 cb 05 00 00 je 409241 - 408c76: 83 f9 03 cmp $0x3,%ecx - 408c79: 0f 84 a7 05 00 00 je 409226 - 408c7f: 83 f9 01 cmp $0x1,%ecx - 408c82: 0f 84 d4 05 00 00 je 40925c - 408c88: 48 89 d7 mov %rdx,%rdi - 408c8b: 48 89 04 24 mov %rax,(%rsp) - 408c8f: e8 1c 51 01 00 callq 41ddb0 <__cfree> - 408c94: 48 8b 04 24 mov (%rsp),%rax - 408c98: e9 f4 f0 ff ff jmpq 407d91 - 408c9d: 48 8b 78 18 mov 0x18(%rax),%rdi - 408ca1: 48 89 04 24 mov %rax,(%rsp) - 408ca5: e8 66 cf ff ff callq 405c10 <__gettext_free_exp> - 408caa: 48 8b 04 24 mov (%rsp),%rax - 408cae: 48 8b 78 10 mov 0x10(%rax),%rdi - 408cb2: 48 89 04 24 mov %rax,(%rsp) - 408cb6: e8 55 cf ff ff callq 405c10 <__gettext_free_exp> - 408cbb: 48 8b 04 24 mov (%rsp),%rax - 408cbf: 48 8b 50 08 mov 0x8(%rax),%rdx - 408cc3: 48 85 d2 test %rdx,%rdx - 408cc6: 0f 84 35 f1 ff ff je 407e01 - 408ccc: 8b 0a mov (%rdx),%ecx - 408cce: 83 f9 02 cmp $0x2,%ecx - 408cd1: 0f 84 92 06 00 00 je 409369 - 408cd7: 83 f9 03 cmp $0x3,%ecx - 408cda: 0f 84 6e 06 00 00 je 40934e - 408ce0: 83 f9 01 cmp $0x1,%ecx - 408ce3: 0f 84 9b 06 00 00 je 409384 - 408ce9: 48 89 d7 mov %rdx,%rdi - 408cec: 48 89 04 24 mov %rax,(%rsp) - 408cf0: e8 bb 50 01 00 callq 41ddb0 <__cfree> - 408cf5: 48 8b 04 24 mov (%rsp),%rax - 408cf9: e9 03 f1 ff ff jmpq 407e01 - 408cfe: 48 8b 78 18 mov 0x18(%rax),%rdi - 408d02: 48 89 04 24 mov %rax,(%rsp) - 408d06: e8 05 cf ff ff callq 405c10 <__gettext_free_exp> - 408d0b: 48 8b 04 24 mov (%rsp),%rax - 408d0f: 48 8b 78 10 mov 0x10(%rax),%rdi - 408d13: 48 89 04 24 mov %rax,(%rsp) - 408d17: e8 f4 ce ff ff callq 405c10 <__gettext_free_exp> - 408d1c: 48 8b 04 24 mov (%rsp),%rax - 408d20: 48 8b 50 08 mov 0x8(%rax),%rdx - 408d24: 48 85 d2 test %rdx,%rdx - 408d27: 0f 84 a4 ee ff ff je 407bd1 - 408d2d: 8b 0a mov (%rdx),%ecx - 408d2f: 83 f9 02 cmp $0x2,%ecx - 408d32: 0f 84 5f 05 00 00 je 409297 - 408d38: 83 f9 03 cmp $0x3,%ecx - 408d3b: 0f 84 3b 05 00 00 je 40927c - 408d41: 83 f9 01 cmp $0x1,%ecx - 408d44: 0f 84 68 05 00 00 je 4092b2 - 408d4a: 48 89 d7 mov %rdx,%rdi - 408d4d: 48 89 04 24 mov %rax,(%rsp) - 408d51: e8 5a 50 01 00 callq 41ddb0 <__cfree> - 408d56: 48 8b 04 24 mov (%rsp),%rax - 408d5a: e9 72 ee ff ff jmpq 407bd1 - 408d5f: 48 8b 78 18 mov 0x18(%rax),%rdi - 408d63: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408d68: e8 a3 ce ff ff callq 405c10 <__gettext_free_exp> - 408d6d: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408d72: 48 8b 78 10 mov 0x10(%rax),%rdi - 408d76: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408d7b: e8 90 ce ff ff callq 405c10 <__gettext_free_exp> - 408d80: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408d85: 48 8b 78 08 mov 0x8(%rax),%rdi - 408d89: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408d8e: e8 7d ce ff ff callq 405c10 <__gettext_free_exp> - 408d93: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408d98: e9 60 f4 ff ff jmpq 4081fd - 408d9d: 48 8b 78 18 mov 0x18(%rax),%rdi - 408da1: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408da6: e8 65 ce ff ff callq 405c10 <__gettext_free_exp> - 408dab: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408db0: 48 8b 78 10 mov 0x10(%rax),%rdi - 408db4: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408db9: e8 52 ce ff ff callq 405c10 <__gettext_free_exp> - 408dbe: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408dc3: 48 8b 78 08 mov 0x8(%rax),%rdi - 408dc7: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408dcc: e8 3f ce ff ff callq 405c10 <__gettext_free_exp> - 408dd1: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408dd6: e9 a2 f3 ff ff jmpq 40817d - 408ddb: 48 8b 78 18 mov 0x18(%rax),%rdi - 408ddf: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408de4: e8 27 ce ff ff callq 405c10 <__gettext_free_exp> - 408de9: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408dee: 48 8b 78 10 mov 0x10(%rax),%rdi - 408df2: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408df7: e8 14 ce ff ff callq 405c10 <__gettext_free_exp> - 408dfc: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408e01: 48 8b 78 08 mov 0x8(%rax),%rdi - 408e05: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408e0a: e8 01 ce ff ff callq 405c10 <__gettext_free_exp> - 408e0f: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408e14: e9 64 f4 ff ff jmpq 40827d - 408e19: 48 8b 78 18 mov 0x18(%rax),%rdi - 408e1d: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408e22: e8 e9 cd ff ff callq 405c10 <__gettext_free_exp> - 408e27: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408e2c: 48 8b 78 10 mov 0x10(%rax),%rdi - 408e30: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408e35: e8 d6 cd ff ff callq 405c10 <__gettext_free_exp> - 408e3a: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408e3f: 48 8b 78 08 mov 0x8(%rax),%rdi - 408e43: 48 89 44 24 08 mov %rax,0x8(%rsp) - 408e48: e8 c3 cd ff ff callq 405c10 <__gettext_free_exp> - 408e4d: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 408e52: e9 a6 f2 ff ff jmpq 4080fd - 408e57: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 408e5e: 00 00 - 408e60: 49 8b 47 18 mov 0x18(%r15),%rax - 408e64: 48 85 c0 test %rax,%rax - 408e67: 0f 84 2c df ff ff je 406d99 - 408e6d: 8b 10 mov (%rax),%edx - 408e6f: 83 fa 02 cmp $0x2,%edx - 408e72: 0f 84 f7 de ff ff je 406d6f - 408e78: 83 fa 03 cmp $0x3,%edx - 408e7b: 0f 84 dd de ff ff je 406d5e - 408e81: 83 fa 01 cmp $0x1,%edx - 408e84: 0f 85 07 df ff ff jne 406d91 - 408e8a: e9 f1 de ff ff jmpq 406d80 - 408e8f: 49 8b 7f 18 mov 0x18(%r15),%rdi - 408e93: e8 78 cd ff ff callq 405c10 <__gettext_free_exp> - 408e98: 49 8b 7f 10 mov 0x10(%r15),%rdi - 408e9c: e8 6f cd ff ff callq 405c10 <__gettext_free_exp> - 408ea1: 49 8b 47 08 mov 0x8(%r15),%rax - 408ea5: 48 85 c0 test %rax,%rax - 408ea8: 0f 84 89 df ff ff je 406e37 - 408eae: 8b 10 mov (%rax),%edx - 408eb0: 83 fa 02 cmp $0x2,%edx - 408eb3: 74 28 je 408edd - 408eb5: 83 fa 03 cmp $0x3,%edx - 408eb8: 74 12 je 408ecc - 408eba: 83 fa 01 cmp $0x1,%edx - 408ebd: 74 2f je 408eee - 408ebf: 48 89 c7 mov %rax,%rdi - 408ec2: e8 e9 4e 01 00 callq 41ddb0 <__cfree> - 408ec7: e9 6b df ff ff jmpq 406e37 - 408ecc: 48 8b 78 18 mov 0x18(%rax),%rdi - 408ed0: 48 89 04 24 mov %rax,(%rsp) - 408ed4: e8 37 cd ff ff callq 405c10 <__gettext_free_exp> - 408ed9: 48 8b 04 24 mov (%rsp),%rax - 408edd: 48 8b 78 10 mov 0x10(%rax),%rdi - 408ee1: 48 89 04 24 mov %rax,(%rsp) - 408ee5: e8 26 cd ff ff callq 405c10 <__gettext_free_exp> - 408eea: 48 8b 04 24 mov (%rsp),%rax - 408eee: 48 8b 78 08 mov 0x8(%rax),%rdi - 408ef2: 48 89 04 24 mov %rax,(%rsp) - 408ef6: e8 15 cd ff ff callq 405c10 <__gettext_free_exp> - 408efb: 48 8b 04 24 mov (%rsp),%rax - 408eff: eb be jmp 408ebf - 408f01: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 408f08: 49 8b 47 18 mov 0x18(%r15),%rax - 408f0c: 48 85 c0 test %rax,%rax - 408f0f: 0f 84 c4 df ff ff je 406ed9 - 408f15: 8b 10 mov (%rax),%edx - 408f17: 83 fa 02 cmp $0x2,%edx - 408f1a: 0f 84 8f df ff ff je 406eaf - 408f20: 83 fa 03 cmp $0x3,%edx - 408f23: 0f 84 75 df ff ff je 406e9e - 408f29: 83 fa 01 cmp $0x1,%edx - 408f2c: 0f 85 9f df ff ff jne 406ed1 - 408f32: e9 89 df ff ff jmpq 406ec0 - 408f37: 49 8b 7f 18 mov 0x18(%r15),%rdi - 408f3b: e8 d0 cc ff ff callq 405c10 <__gettext_free_exp> - 408f40: 49 8b 7f 10 mov 0x10(%r15),%rdi - 408f44: e8 c7 cc ff ff callq 405c10 <__gettext_free_exp> - 408f49: 49 8b 47 08 mov 0x8(%r15),%rax - 408f4d: 48 85 c0 test %rax,%rax - 408f50: 0f 84 a1 dd ff ff je 406cf7 - 408f56: 8b 10 mov (%rax),%edx - 408f58: 83 fa 02 cmp $0x2,%edx - 408f5b: 74 28 je 408f85 - 408f5d: 83 fa 03 cmp $0x3,%edx - 408f60: 74 12 je 408f74 - 408f62: 83 fa 01 cmp $0x1,%edx - 408f65: 74 2f je 408f96 - 408f67: 48 89 c7 mov %rax,%rdi - 408f6a: e8 41 4e 01 00 callq 41ddb0 <__cfree> - 408f6f: e9 83 dd ff ff jmpq 406cf7 - 408f74: 48 8b 78 18 mov 0x18(%rax),%rdi - 408f78: 48 89 04 24 mov %rax,(%rsp) - 408f7c: e8 8f cc ff ff callq 405c10 <__gettext_free_exp> - 408f81: 48 8b 04 24 mov (%rsp),%rax - 408f85: 48 8b 78 10 mov 0x10(%rax),%rdi - 408f89: 48 89 04 24 mov %rax,(%rsp) - 408f8d: e8 7e cc ff ff callq 405c10 <__gettext_free_exp> - 408f92: 48 8b 04 24 mov (%rsp),%rax - 408f96: 48 8b 78 08 mov 0x8(%rax),%rdi - 408f9a: 48 89 04 24 mov %rax,(%rsp) - 408f9e: e8 6d cc ff ff callq 405c10 <__gettext_free_exp> - 408fa3: 48 8b 04 24 mov (%rsp),%rax - 408fa7: eb be jmp 408f67 - 408fa9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 408fb0: 49 8b 47 18 mov 0x18(%r15),%rax - 408fb4: 48 85 c0 test %rax,%rax - 408fb7: 0f 84 d6 d4 ff ff je 406493 - 408fbd: 8b 10 mov (%rax),%edx - 408fbf: 83 fa 02 cmp $0x2,%edx - 408fc2: 0f 84 a1 d4 ff ff je 406469 - 408fc8: 83 fa 03 cmp $0x3,%edx - 408fcb: 0f 84 87 d4 ff ff je 406458 - 408fd1: 83 fa 01 cmp $0x1,%edx - 408fd4: 0f 85 b1 d4 ff ff jne 40648b - 408fda: e9 9b d4 ff ff jmpq 40647a - 408fdf: 49 8b 7f 18 mov 0x18(%r15),%rdi - 408fe3: e8 28 cc ff ff callq 405c10 <__gettext_free_exp> - 408fe8: 49 8b 7f 10 mov 0x10(%r15),%rdi - 408fec: e8 1f cc ff ff callq 405c10 <__gettext_free_exp> - 408ff1: 49 8b 47 08 mov 0x8(%r15),%rax - 408ff5: 48 85 c0 test %rax,%rax - 408ff8: 0f 84 f5 f2 ff ff je 4082f3 - 408ffe: 8b 10 mov (%rax),%edx - 409000: 83 fa 02 cmp $0x2,%edx - 409003: 74 28 je 40902d - 409005: 83 fa 03 cmp $0x3,%edx - 409008: 74 12 je 40901c - 40900a: 83 fa 01 cmp $0x1,%edx - 40900d: 74 2f je 40903e - 40900f: 48 89 c7 mov %rax,%rdi - 409012: e8 99 4d 01 00 callq 41ddb0 <__cfree> - 409017: e9 d7 f2 ff ff jmpq 4082f3 - 40901c: 48 8b 78 18 mov 0x18(%rax),%rdi - 409020: 48 89 04 24 mov %rax,(%rsp) - 409024: e8 e7 cb ff ff callq 405c10 <__gettext_free_exp> - 409029: 48 8b 04 24 mov (%rsp),%rax - 40902d: 48 8b 78 10 mov 0x10(%rax),%rdi - 409031: 48 89 04 24 mov %rax,(%rsp) - 409035: e8 d6 cb ff ff callq 405c10 <__gettext_free_exp> - 40903a: 48 8b 04 24 mov (%rsp),%rax - 40903e: 48 8b 78 08 mov 0x8(%rax),%rdi - 409042: 48 89 04 24 mov %rax,(%rsp) - 409046: e8 c5 cb ff ff callq 405c10 <__gettext_free_exp> - 40904b: 48 8b 04 24 mov (%rsp),%rax - 40904f: eb be jmp 40900f - 409051: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 409058: 4d 8b 7d 18 mov 0x18(%r13),%r15 - 40905c: 4d 85 ff test %r15,%r15 - 40905f: 0f 84 26 d5 ff ff je 40658b - 409065: 41 8b 07 mov (%r15),%eax - 409068: 83 f8 02 cmp $0x2,%eax - 40906b: 0f 84 00 d5 ff ff je 406571 - 409071: 83 f8 03 cmp $0x3,%eax - 409074: 0f 84 ee d4 ff ff je 406568 - 40907a: 83 f8 01 cmp $0x1,%eax - 40907d: 0f 85 00 d5 ff ff jne 406583 - 409083: e9 f2 d4 ff ff jmpq 40657a - 409088: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40908f: 00 - 409090: 4d 8b 7d 18 mov 0x18(%r13),%r15 - 409094: 4d 85 ff test %r15,%r15 - 409097: 0f 84 fc d7 ff ff je 406899 - 40909d: 41 8b 07 mov (%r15),%eax - 4090a0: 83 f8 02 cmp $0x2,%eax - 4090a3: 0f 84 d6 d7 ff ff je 40687f - 4090a9: 83 f8 03 cmp $0x3,%eax - 4090ac: 0f 84 c4 d7 ff ff je 406876 - 4090b2: 83 f8 01 cmp $0x1,%eax - 4090b5: 0f 85 d6 d7 ff ff jne 406891 - 4090bb: e9 c8 d7 ff ff jmpq 406888 - 4090c0: 48 8b 78 18 mov 0x18(%rax),%rdi - 4090c4: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4090c9: e8 42 cb ff ff callq 405c10 <__gettext_free_exp> - 4090ce: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4090d3: 48 8b 78 10 mov 0x10(%rax),%rdi - 4090d7: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4090dc: e8 2f cb ff ff callq 405c10 <__gettext_free_exp> - 4090e1: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4090e6: 48 8b 78 08 mov 0x8(%rax),%rdi - 4090ea: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4090ef: e8 1c cb ff ff callq 405c10 <__gettext_free_exp> - 4090f4: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4090f9: e9 84 df ff ff jmpq 407082 - 4090fe: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 409102: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409107: 48 89 14 24 mov %rdx,(%rsp) - 40910b: e8 00 cb ff ff callq 405c10 <__gettext_free_exp> - 409110: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409115: 48 8b 14 24 mov (%rsp),%rdx - 409119: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40911d: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409122: 48 89 14 24 mov %rdx,(%rsp) - 409126: e8 e5 ca ff ff callq 405c10 <__gettext_free_exp> - 40912b: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409130: 48 8b 14 24 mov (%rsp),%rdx - 409134: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 409138: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40913d: 48 89 14 24 mov %rdx,(%rsp) - 409141: e8 ca ca ff ff callq 405c10 <__gettext_free_exp> - 409146: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40914b: 48 8b 14 24 mov (%rsp),%rdx - 40914f: e9 d3 fa ff ff jmpq 408c27 - 409154: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 409158: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40915d: 48 89 14 24 mov %rdx,(%rsp) - 409161: e8 aa ca ff ff callq 405c10 <__gettext_free_exp> - 409166: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40916b: 48 8b 14 24 mov (%rsp),%rdx - 40916f: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 409173: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409178: 48 89 14 24 mov %rdx,(%rsp) - 40917c: e8 8f ca ff ff callq 405c10 <__gettext_free_exp> - 409181: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409186: 48 8b 14 24 mov (%rsp),%rdx - 40918a: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40918e: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409193: 48 89 14 24 mov %rdx,(%rsp) - 409197: e8 74 ca ff ff callq 405c10 <__gettext_free_exp> - 40919c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4091a1: 48 8b 14 24 mov (%rsp),%rdx - 4091a5: e9 1b f3 ff ff jmpq 4084c5 - 4091aa: 48 8b 78 18 mov 0x18(%rax),%rdi - 4091ae: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4091b3: e8 58 ca ff ff callq 405c10 <__gettext_free_exp> - 4091b8: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4091bd: 48 8b 78 10 mov 0x10(%rax),%rdi - 4091c1: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4091c6: e8 45 ca ff ff callq 405c10 <__gettext_free_exp> - 4091cb: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4091d0: 48 8b 78 08 mov 0x8(%rax),%rdi - 4091d4: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4091d9: e8 32 ca ff ff callq 405c10 <__gettext_free_exp> - 4091de: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4091e3: e9 3f e9 ff ff jmpq 407b27 - 4091e8: 48 8b 78 18 mov 0x18(%rax),%rdi - 4091ec: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4091f1: e8 1a ca ff ff callq 405c10 <__gettext_free_exp> - 4091f6: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4091fb: 48 8b 78 10 mov 0x10(%rax),%rdi - 4091ff: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409204: e8 07 ca ff ff callq 405c10 <__gettext_free_exp> - 409209: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40920e: 48 8b 78 08 mov 0x8(%rax),%rdi - 409212: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409217: e8 f4 c9 ff ff callq 405c10 <__gettext_free_exp> - 40921c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409221: e9 81 e8 ff ff jmpq 407aa7 - 409226: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40922a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40922f: 48 89 14 24 mov %rdx,(%rsp) - 409233: e8 d8 c9 ff ff callq 405c10 <__gettext_free_exp> - 409238: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40923d: 48 8b 14 24 mov (%rsp),%rdx - 409241: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 409245: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40924a: 48 89 14 24 mov %rdx,(%rsp) - 40924e: e8 bd c9 ff ff callq 405c10 <__gettext_free_exp> - 409253: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409258: 48 8b 14 24 mov (%rsp),%rdx - 40925c: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 409260: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409265: 48 89 14 24 mov %rdx,(%rsp) - 409269: e8 a2 c9 ff ff callq 405c10 <__gettext_free_exp> - 40926e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409273: 48 8b 14 24 mov (%rsp),%rdx - 409277: e9 0c fa ff ff jmpq 408c88 - 40927c: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 409280: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409285: 48 89 14 24 mov %rdx,(%rsp) - 409289: e8 82 c9 ff ff callq 405c10 <__gettext_free_exp> - 40928e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409293: 48 8b 14 24 mov (%rsp),%rdx - 409297: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40929b: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4092a0: 48 89 14 24 mov %rdx,(%rsp) - 4092a4: e8 67 c9 ff ff callq 405c10 <__gettext_free_exp> - 4092a9: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4092ae: 48 8b 14 24 mov (%rsp),%rdx - 4092b2: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 4092b6: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4092bb: 48 89 14 24 mov %rdx,(%rsp) - 4092bf: e8 4c c9 ff ff callq 405c10 <__gettext_free_exp> - 4092c4: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4092c9: 48 8b 14 24 mov (%rsp),%rdx - 4092cd: e9 78 fa ff ff jmpq 408d4a - 4092d2: 48 8b 78 18 mov 0x18(%rax),%rdi - 4092d6: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4092db: e8 30 c9 ff ff callq 405c10 <__gettext_free_exp> - 4092e0: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4092e5: 48 8b 78 10 mov 0x10(%rax),%rdi - 4092e9: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4092ee: e8 1d c9 ff ff callq 405c10 <__gettext_free_exp> - 4092f3: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4092f8: 48 8b 78 08 mov 0x8(%rax),%rdi - 4092fc: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409301: e8 0a c9 ff ff callq 405c10 <__gettext_free_exp> - 409306: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40930b: e9 3a df ff ff jmpq 40724a - 409310: 48 8b 78 18 mov 0x18(%rax),%rdi - 409314: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409319: e8 f2 c8 ff ff callq 405c10 <__gettext_free_exp> - 40931e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409323: 48 8b 78 10 mov 0x10(%rax),%rdi - 409327: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40932c: e8 df c8 ff ff callq 405c10 <__gettext_free_exp> - 409331: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409336: 48 8b 78 08 mov 0x8(%rax),%rdi - 40933a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40933f: e8 cc c8 ff ff callq 405c10 <__gettext_free_exp> - 409344: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409349: e9 1c de ff ff jmpq 40716a - 40934e: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 409352: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409357: 48 89 14 24 mov %rdx,(%rsp) - 40935b: e8 b0 c8 ff ff callq 405c10 <__gettext_free_exp> - 409360: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409365: 48 8b 14 24 mov (%rsp),%rdx - 409369: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40936d: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409372: 48 89 14 24 mov %rdx,(%rsp) - 409376: e8 95 c8 ff ff callq 405c10 <__gettext_free_exp> - 40937b: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409380: 48 8b 14 24 mov (%rsp),%rdx - 409384: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 409388: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40938d: 48 89 14 24 mov %rdx,(%rsp) - 409391: e8 7a c8 ff ff callq 405c10 <__gettext_free_exp> - 409396: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40939b: 48 8b 14 24 mov (%rsp),%rdx - 40939f: e9 45 f9 ff ff jmpq 408ce9 - 4093a4: 48 8b 78 18 mov 0x18(%rax),%rdi - 4093a8: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4093ad: e8 5e c8 ff ff callq 405c10 <__gettext_free_exp> - 4093b2: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4093b7: 48 8b 78 10 mov 0x10(%rax),%rdi - 4093bb: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4093c0: e8 4b c8 ff ff callq 405c10 <__gettext_free_exp> - 4093c5: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4093ca: 48 8b 78 08 mov 0x8(%rax),%rdi - 4093ce: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4093d3: e8 38 c8 ff ff callq 405c10 <__gettext_free_exp> - 4093d8: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4093dd: e9 c6 f1 ff ff jmpq 4085a8 - 4093e2: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 4093e6: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4093eb: 48 89 14 24 mov %rdx,(%rsp) - 4093ef: e8 1c c8 ff ff callq 405c10 <__gettext_free_exp> - 4093f4: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4093f9: 48 8b 14 24 mov (%rsp),%rdx - 4093fd: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 409401: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409406: 48 89 14 24 mov %rdx,(%rsp) - 40940a: e8 01 c8 ff ff callq 405c10 <__gettext_free_exp> - 40940f: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409414: 48 8b 14 24 mov (%rsp),%rdx - 409418: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40941c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409421: 48 89 14 24 mov %rdx,(%rsp) - 409425: e8 e6 c7 ff ff callq 405c10 <__gettext_free_exp> - 40942a: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40942f: 48 8b 14 24 mov (%rsp),%rdx - 409433: e9 ee f0 ff ff jmpq 408526 - 409438: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40943c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409441: 48 89 14 24 mov %rdx,(%rsp) - 409445: e8 c6 c7 ff ff callq 405c10 <__gettext_free_exp> - 40944a: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40944f: 48 8b 14 24 mov (%rsp),%rdx - 409453: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 409457: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40945c: 48 89 14 24 mov %rdx,(%rsp) - 409460: e8 ab c7 ff ff callq 405c10 <__gettext_free_exp> - 409465: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40946a: 48 8b 14 24 mov (%rsp),%rdx - 40946e: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 409472: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409477: 48 89 14 24 mov %rdx,(%rsp) - 40947b: e8 90 c7 ff ff callq 405c10 <__gettext_free_exp> - 409480: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409485: 48 8b 14 24 mov (%rsp),%rdx - 409489: e9 14 ef ff ff jmpq 4083a2 - 40948e: 48 8b 78 18 mov 0x18(%rax),%rdi - 409492: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409497: e8 74 c7 ff ff callq 405c10 <__gettext_free_exp> - 40949c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4094a1: 48 8b 78 10 mov 0x10(%rax),%rdi - 4094a5: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4094aa: e8 61 c7 ff ff callq 405c10 <__gettext_free_exp> - 4094af: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4094b4: 48 8b 78 08 mov 0x8(%rax),%rdi - 4094b8: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4094bd: e8 4e c7 ff ff callq 405c10 <__gettext_free_exp> - 4094c2: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4094c7: e9 db e4 ff ff jmpq 4079a7 - 4094cc: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 4094d0: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4094d5: 48 89 14 24 mov %rdx,(%rsp) - 4094d9: e8 32 c7 ff ff callq 405c10 <__gettext_free_exp> - 4094de: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4094e3: 48 8b 14 24 mov (%rsp),%rdx - 4094e7: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 4094eb: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4094f0: 48 89 14 24 mov %rdx,(%rsp) - 4094f4: e8 17 c7 ff ff callq 405c10 <__gettext_free_exp> - 4094f9: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4094fe: 48 8b 14 24 mov (%rsp),%rdx - 409502: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 409506: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40950b: 48 89 14 24 mov %rdx,(%rsp) - 40950f: e8 fc c6 ff ff callq 405c10 <__gettext_free_exp> - 409514: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409519: 48 8b 14 24 mov (%rsp),%rdx - 40951d: e9 42 ef ff ff jmpq 408464 - 409522: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 409526: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40952b: 48 89 14 24 mov %rdx,(%rsp) - 40952f: e8 dc c6 ff ff callq 405c10 <__gettext_free_exp> - 409534: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409539: 48 8b 14 24 mov (%rsp),%rdx - 40953d: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 409541: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409546: 48 89 14 24 mov %rdx,(%rsp) - 40954a: e8 c1 c6 ff ff callq 405c10 <__gettext_free_exp> - 40954f: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409554: 48 8b 14 24 mov (%rsp),%rdx - 409558: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40955c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409561: 48 89 14 24 mov %rdx,(%rsp) - 409565: e8 a6 c6 ff ff callq 405c10 <__gettext_free_exp> - 40956a: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40956f: 48 8b 14 24 mov (%rsp),%rdx - 409573: e9 8b ee ff ff jmpq 408403 - 409578: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40957c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409581: 48 89 14 24 mov %rdx,(%rsp) - 409585: e8 86 c6 ff ff callq 405c10 <__gettext_free_exp> - 40958a: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40958f: 48 8b 14 24 mov (%rsp),%rdx - 409593: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 409597: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40959c: 48 89 14 24 mov %rdx,(%rsp) - 4095a0: e8 6b c6 ff ff callq 405c10 <__gettext_free_exp> - 4095a5: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4095aa: 48 8b 14 24 mov (%rsp),%rdx - 4095ae: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 4095b2: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4095b7: 48 89 14 24 mov %rdx,(%rsp) - 4095bb: e8 50 c6 ff ff callq 405c10 <__gettext_free_exp> - 4095c0: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4095c5: 48 8b 14 24 mov (%rsp),%rdx - 4095c9: e9 97 f5 ff ff jmpq 408b65 - 4095ce: 48 8b 78 18 mov 0x18(%rax),%rdi - 4095d2: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4095d7: e8 34 c6 ff ff callq 405c10 <__gettext_free_exp> - 4095dc: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4095e1: 48 8b 78 10 mov 0x10(%rax),%rdi - 4095e5: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4095ea: e8 21 c6 ff ff callq 405c10 <__gettext_free_exp> - 4095ef: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4095f4: 48 8b 78 08 mov 0x8(%rax),%rdi - 4095f8: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4095fd: e8 0e c6 ff ff callq 405c10 <__gettext_free_exp> - 409602: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409607: e9 1e dd ff ff jmpq 40732a - 40960c: 48 8b 78 18 mov 0x18(%rax),%rdi - 409610: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409615: e8 f6 c5 ff ff callq 405c10 <__gettext_free_exp> - 40961a: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40961f: 48 8b 78 10 mov 0x10(%rax),%rdi - 409623: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409628: e8 e3 c5 ff ff callq 405c10 <__gettext_free_exp> - 40962d: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409632: 48 8b 78 08 mov 0x8(%rax),%rdi - 409636: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40963b: e8 d0 c5 ff ff callq 405c10 <__gettext_free_exp> - 409640: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409645: e9 dd e3 ff ff jmpq 407a27 - 40964a: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40964e: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409653: 48 89 14 24 mov %rdx,(%rsp) - 409657: e8 b4 c5 ff ff callq 405c10 <__gettext_free_exp> - 40965c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409661: 48 8b 14 24 mov (%rsp),%rdx - 409665: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 409669: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40966e: 48 89 14 24 mov %rdx,(%rsp) - 409672: e8 99 c5 ff ff callq 405c10 <__gettext_free_exp> - 409677: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40967c: 48 8b 14 24 mov (%rsp),%rdx - 409680: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 409684: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409689: 48 89 14 24 mov %rdx,(%rsp) - 40968d: e8 7e c5 ff ff callq 405c10 <__gettext_free_exp> - 409692: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409697: 48 8b 14 24 mov (%rsp),%rdx - 40969b: e9 26 f5 ff ff jmpq 408bc6 - 4096a0: 48 8b 04 24 mov (%rsp),%rax - 4096a4: 48 8b 40 18 mov 0x18(%rax),%rax - 4096a8: 48 85 c0 test %rax,%rax - 4096ab: 0f 84 06 d4 ff ff je 406ab7 - 4096b1: 8b 10 mov (%rax),%edx - 4096b3: 83 fa 02 cmp $0x2,%edx - 4096b6: 0f 84 cd d3 ff ff je 406a89 - 4096bc: 83 fa 03 cmp $0x3,%edx - 4096bf: 0f 84 b1 d3 ff ff je 406a76 - 4096c5: 83 fa 01 cmp $0x1,%edx - 4096c8: 0f 85 e1 d3 ff ff jne 406aaf - 4096ce: e9 c9 d3 ff ff jmpq 406a9c - 4096d3: 48 8b 78 18 mov 0x18(%rax),%rdi - 4096d7: 48 89 04 24 mov %rax,(%rsp) - 4096db: e8 30 c5 ff ff callq 405c10 <__gettext_free_exp> - 4096e0: 48 8b 04 24 mov (%rsp),%rax - 4096e4: 48 8b 78 10 mov 0x10(%rax),%rdi - 4096e8: 48 89 04 24 mov %rax,(%rsp) - 4096ec: e8 1f c5 ff ff callq 405c10 <__gettext_free_exp> - 4096f1: 48 8b 04 24 mov (%rsp),%rax - 4096f5: 48 8b 78 08 mov 0x8(%rax),%rdi - 4096f9: 48 89 04 24 mov %rax,(%rsp) - 4096fd: e8 0e c5 ff ff callq 405c10 <__gettext_free_exp> - 409702: 48 8b 04 24 mov (%rsp),%rax - 409706: e9 04 e5 ff ff jmpq 407c0f - 40970b: 48 8b 78 18 mov 0x18(%rax),%rdi - 40970f: 48 89 04 24 mov %rax,(%rsp) - 409713: e8 f8 c4 ff ff callq 405c10 <__gettext_free_exp> - 409718: 48 8b 04 24 mov (%rsp),%rax - 40971c: 48 8b 78 10 mov 0x10(%rax),%rdi - 409720: 48 89 04 24 mov %rax,(%rsp) - 409724: e8 e7 c4 ff ff callq 405c10 <__gettext_free_exp> - 409729: 48 8b 04 24 mov (%rsp),%rax - 40972d: 48 8b 78 08 mov 0x8(%rax),%rdi - 409731: 48 89 04 24 mov %rax,(%rsp) - 409735: e8 d6 c4 ff ff callq 405c10 <__gettext_free_exp> - 40973a: 48 8b 04 24 mov (%rsp),%rax - 40973e: e9 40 ef ff ff jmpq 408683 - 409743: 48 8b 78 18 mov 0x18(%rax),%rdi - 409747: 48 89 04 24 mov %rax,(%rsp) - 40974b: e8 c0 c4 ff ff callq 405c10 <__gettext_free_exp> - 409750: 48 8b 04 24 mov (%rsp),%rax - 409754: 48 8b 78 10 mov 0x10(%rax),%rdi - 409758: 48 89 04 24 mov %rax,(%rsp) - 40975c: e8 af c4 ff ff callq 405c10 <__gettext_free_exp> - 409761: 48 8b 04 24 mov (%rsp),%rax - 409765: 48 8b 78 08 mov 0x8(%rax),%rdi - 409769: 48 89 04 24 mov %rax,(%rsp) - 40976d: e8 9e c4 ff ff callq 405c10 <__gettext_free_exp> - 409772: 48 8b 04 24 mov (%rsp),%rax - 409776: e9 54 e6 ff ff jmpq 407dcf - 40977b: 48 8b 78 18 mov 0x18(%rax),%rdi - 40977f: 48 89 04 24 mov %rax,(%rsp) - 409783: e8 88 c4 ff ff callq 405c10 <__gettext_free_exp> - 409788: 48 8b 04 24 mov (%rsp),%rax - 40978c: 48 8b 78 10 mov 0x10(%rax),%rdi - 409790: 48 89 04 24 mov %rax,(%rsp) - 409794: e8 77 c4 ff ff callq 405c10 <__gettext_free_exp> - 409799: 48 8b 04 24 mov (%rsp),%rax - 40979d: 48 8b 78 08 mov 0x8(%rax),%rdi - 4097a1: 48 89 04 24 mov %rax,(%rsp) - 4097a5: e8 66 c4 ff ff callq 405c10 <__gettext_free_exp> - 4097aa: 48 8b 04 24 mov (%rsp),%rax - 4097ae: e9 ac e5 ff ff jmpq 407d5f - 4097b3: 48 8b 78 18 mov 0x18(%rax),%rdi - 4097b7: 48 89 04 24 mov %rax,(%rsp) - 4097bb: e8 50 c4 ff ff callq 405c10 <__gettext_free_exp> - 4097c0: 48 8b 04 24 mov (%rsp),%rax - 4097c4: 48 8b 78 10 mov 0x10(%rax),%rdi - 4097c8: 48 89 04 24 mov %rax,(%rsp) - 4097cc: e8 3f c4 ff ff callq 405c10 <__gettext_free_exp> - 4097d1: 48 8b 04 24 mov (%rsp),%rax - 4097d5: 48 8b 50 08 mov 0x8(%rax),%rdx - 4097d9: 48 85 d2 test %rdx,%rdx - 4097dc: 0f 84 9c dc ff ff je 40747e - 4097e2: 8b 0a mov (%rdx),%ecx - 4097e4: 83 f9 02 cmp $0x2,%ecx - 4097e7: 74 3a je 409823 - 4097e9: 83 f9 03 cmp $0x3,%ecx - 4097ec: 74 1a je 409808 - 4097ee: 83 f9 01 cmp $0x1,%ecx - 4097f1: 74 4b je 40983e - 4097f3: 48 89 d7 mov %rdx,%rdi - 4097f6: 48 89 04 24 mov %rax,(%rsp) - 4097fa: e8 b1 45 01 00 callq 41ddb0 <__cfree> - 4097ff: 48 8b 04 24 mov (%rsp),%rax - 409803: e9 76 dc ff ff jmpq 40747e - 409808: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40980c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409811: 48 89 14 24 mov %rdx,(%rsp) - 409815: e8 f6 c3 ff ff callq 405c10 <__gettext_free_exp> - 40981a: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40981f: 48 8b 14 24 mov (%rsp),%rdx - 409823: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 409827: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40982c: 48 89 14 24 mov %rdx,(%rsp) - 409830: e8 db c3 ff ff callq 405c10 <__gettext_free_exp> - 409835: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40983a: 48 8b 14 24 mov (%rsp),%rdx - 40983e: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 409842: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409847: 48 89 14 24 mov %rdx,(%rsp) - 40984b: e8 c0 c3 ff ff callq 405c10 <__gettext_free_exp> - 409850: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409855: 48 8b 14 24 mov (%rsp),%rdx - 409859: eb 98 jmp 4097f3 - 40985b: 48 8b 78 18 mov 0x18(%rax),%rdi - 40985f: 48 89 04 24 mov %rax,(%rsp) - 409863: e8 a8 c3 ff ff callq 405c10 <__gettext_free_exp> - 409868: 48 8b 04 24 mov (%rsp),%rax - 40986c: 48 8b 78 10 mov 0x10(%rax),%rdi - 409870: 48 89 04 24 mov %rax,(%rsp) - 409874: e8 97 c3 ff ff callq 405c10 <__gettext_free_exp> - 409879: 48 8b 04 24 mov (%rsp),%rax - 40987d: 48 8b 50 08 mov 0x8(%rax),%rdx - 409881: 48 85 d2 test %rdx,%rdx - 409884: 0f 84 ec dd ff ff je 407676 - 40988a: 8b 0a mov (%rdx),%ecx - 40988c: 83 f9 02 cmp $0x2,%ecx - 40988f: 74 3a je 4098cb - 409891: 83 f9 03 cmp $0x3,%ecx - 409894: 74 1a je 4098b0 - 409896: 83 f9 01 cmp $0x1,%ecx - 409899: 74 4b je 4098e6 - 40989b: 48 89 d7 mov %rdx,%rdi - 40989e: 48 89 04 24 mov %rax,(%rsp) - 4098a2: e8 09 45 01 00 callq 41ddb0 <__cfree> - 4098a7: 48 8b 04 24 mov (%rsp),%rax - 4098ab: e9 c6 dd ff ff jmpq 407676 - 4098b0: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 4098b4: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4098b9: 48 89 14 24 mov %rdx,(%rsp) - 4098bd: e8 4e c3 ff ff callq 405c10 <__gettext_free_exp> - 4098c2: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4098c7: 48 8b 14 24 mov (%rsp),%rdx - 4098cb: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 4098cf: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4098d4: 48 89 14 24 mov %rdx,(%rsp) - 4098d8: e8 33 c3 ff ff callq 405c10 <__gettext_free_exp> - 4098dd: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4098e2: 48 8b 14 24 mov (%rsp),%rdx - 4098e6: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 4098ea: 48 89 44 24 08 mov %rax,0x8(%rsp) - 4098ef: 48 89 14 24 mov %rdx,(%rsp) - 4098f3: e8 18 c3 ff ff callq 405c10 <__gettext_free_exp> - 4098f8: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4098fd: 48 8b 14 24 mov (%rsp),%rdx - 409901: eb 98 jmp 40989b - 409903: 48 8b 78 18 mov 0x18(%rax),%rdi - 409907: 48 89 04 24 mov %rax,(%rsp) - 40990b: e8 00 c3 ff ff callq 405c10 <__gettext_free_exp> - 409910: 48 8b 04 24 mov (%rsp),%rax - 409914: 48 8b 78 10 mov 0x10(%rax),%rdi - 409918: 48 89 04 24 mov %rax,(%rsp) - 40991c: e8 ef c2 ff ff callq 405c10 <__gettext_free_exp> - 409921: 48 8b 04 24 mov (%rsp),%rax - 409925: 48 8b 78 08 mov 0x8(%rax),%rdi - 409929: 48 89 04 24 mov %rax,(%rsp) - 40992d: e8 de c2 ff ff callq 405c10 <__gettext_free_exp> - 409932: 48 8b 04 24 mov (%rsp),%rax - 409936: e9 b6 ec ff ff jmpq 4085f1 - 40993b: 48 8b 78 18 mov 0x18(%rax),%rdi - 40993f: 48 89 04 24 mov %rax,(%rsp) - 409943: e8 c8 c2 ff ff callq 405c10 <__gettext_free_exp> - 409948: 48 8b 04 24 mov (%rsp),%rax - 40994c: 48 8b 78 10 mov 0x10(%rax),%rdi - 409950: 48 89 04 24 mov %rax,(%rsp) - 409954: e8 b7 c2 ff ff callq 405c10 <__gettext_free_exp> - 409959: 48 8b 04 24 mov (%rsp),%rax - 40995d: 48 8b 78 08 mov 0x8(%rax),%rdi - 409961: 48 89 04 24 mov %rax,(%rsp) - 409965: e8 a6 c2 ff ff callq 405c10 <__gettext_free_exp> - 40996a: 48 8b 04 24 mov (%rsp),%rax - 40996e: e9 2c e2 ff ff jmpq 407b9f - 409973: 48 8b 78 18 mov 0x18(%rax),%rdi - 409977: 48 89 04 24 mov %rax,(%rsp) - 40997b: e8 90 c2 ff ff callq 405c10 <__gettext_free_exp> - 409980: 48 8b 04 24 mov (%rsp),%rax - 409984: 48 8b 78 10 mov 0x10(%rax),%rdi - 409988: 48 89 04 24 mov %rax,(%rsp) - 40998c: e8 7f c2 ff ff callq 405c10 <__gettext_free_exp> - 409991: 48 8b 04 24 mov (%rsp),%rax - 409995: 48 8b 78 08 mov 0x8(%rax),%rdi - 409999: 48 89 04 24 mov %rax,(%rsp) - 40999d: e8 6e c2 ff ff callq 405c10 <__gettext_free_exp> - 4099a2: 48 8b 04 24 mov (%rsp),%rax - 4099a6: e9 8f ec ff ff jmpq 40863a - 4099ab: 48 8b 78 18 mov 0x18(%rax),%rdi - 4099af: 48 89 04 24 mov %rax,(%rsp) - 4099b3: e8 58 c2 ff ff callq 405c10 <__gettext_free_exp> - 4099b8: 48 8b 04 24 mov (%rsp),%rax - 4099bc: 48 8b 78 10 mov 0x10(%rax),%rdi - 4099c0: 48 89 04 24 mov %rax,(%rsp) - 4099c4: e8 47 c2 ff ff callq 405c10 <__gettext_free_exp> - 4099c9: 48 8b 04 24 mov (%rsp),%rax - 4099cd: 48 8b 78 08 mov 0x8(%rax),%rdi - 4099d1: 48 89 04 24 mov %rax,(%rsp) - 4099d5: e8 36 c2 ff ff callq 405c10 <__gettext_free_exp> - 4099da: 48 8b 04 24 mov (%rsp),%rax - 4099de: e9 9c e2 ff ff jmpq 407c7f - 4099e3: 48 8b 78 18 mov 0x18(%rax),%rdi - 4099e7: 48 89 04 24 mov %rax,(%rsp) - 4099eb: e8 20 c2 ff ff callq 405c10 <__gettext_free_exp> - 4099f0: 48 8b 04 24 mov (%rsp),%rax - 4099f4: 48 8b 78 10 mov 0x10(%rax),%rdi - 4099f8: 48 89 04 24 mov %rax,(%rsp) - 4099fc: e8 0f c2 ff ff callq 405c10 <__gettext_free_exp> - 409a01: 48 8b 04 24 mov (%rsp),%rax - 409a05: 48 8b 78 08 mov 0x8(%rax),%rdi - 409a09: 48 89 04 24 mov %rax,(%rsp) - 409a0d: e8 fe c1 ff ff callq 405c10 <__gettext_free_exp> - 409a12: 48 8b 04 24 mov (%rsp),%rax - 409a16: e9 d4 e2 ff ff jmpq 407cef - 409a1b: 48 8b 78 18 mov 0x18(%rax),%rdi - 409a1f: 48 89 04 24 mov %rax,(%rsp) - 409a23: e8 e8 c1 ff ff callq 405c10 <__gettext_free_exp> - 409a28: 48 8b 04 24 mov (%rsp),%rax - 409a2c: 48 8b 78 10 mov 0x10(%rax),%rdi - 409a30: 48 89 04 24 mov %rax,(%rsp) - 409a34: e8 d7 c1 ff ff callq 405c10 <__gettext_free_exp> - 409a39: 48 8b 04 24 mov (%rsp),%rax - 409a3d: 48 8b 78 08 mov 0x8(%rax),%rdi - 409a41: 48 89 04 24 mov %rax,(%rsp) - 409a45: e8 c6 c1 ff ff callq 405c10 <__gettext_free_exp> - 409a4a: 48 8b 04 24 mov (%rsp),%rax - 409a4e: e9 43 dd ff ff jmpq 407796 - 409a53: 0f 1f 00 nopl (%rax) - 409a56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 409a5d: 00 00 00 - -0000000000409a60 : - 409a60: 41 57 push %r15 - 409a62: 41 56 push %r14 - 409a64: 41 55 push %r13 - 409a66: 41 54 push %r12 - 409a68: 4c 63 e7 movslq %edi,%r12 - 409a6b: 55 push %rbp - 409a6c: 53 push %rbx - 409a6d: 41 8d 5c 24 ff lea -0x1(%r12),%ebx - 409a72: 48 83 ec 18 sub $0x18,%rsp - 409a76: 85 db test %ebx,%ebx - 409a78: 0f 88 85 37 00 00 js 40d203 - 409a7e: 4c 63 eb movslq %ebx,%r13 - 409a81: 49 89 d7 mov %rdx,%r15 - 409a84: 89 dd mov %ebx,%ebp - 409a86: 4a 83 3c ea 00 cmpq $0x0,(%rdx,%r13,8) - 409a8b: 4a 8d 04 ed 00 00 00 lea 0x0(,%r13,8),%rax - 409a92: 00 - 409a93: 48 8d 4c 02 f8 lea -0x8(%rdx,%rax,1),%rcx - 409a98: 89 d8 mov %ebx,%eax - 409a9a: 75 0f jne 409aab - 409a9c: eb 72 jmp 409b10 - 409a9e: 66 90 xchg %ax,%ax - 409aa0: 48 83 e9 08 sub $0x8,%rcx - 409aa4: 48 83 79 08 00 cmpq $0x0,0x8(%rcx) - 409aa9: 74 65 je 409b10 - 409aab: 83 e8 01 sub $0x1,%eax - 409aae: 83 f8 ff cmp $0xffffffff,%eax - 409ab1: 75 ed jne 409aa0 - 409ab3: bf 20 00 00 00 mov $0x20,%edi - 409ab8: 89 34 24 mov %esi,(%rsp) - 409abb: e8 50 3f 01 00 callq 41da10 <__libc_malloc> - 409ac0: 48 85 c0 test %rax,%rax - 409ac3: 49 89 c6 mov %rax,%r14 - 409ac6: 8b 34 24 mov (%rsp),%esi - 409ac9: 74 45 je 409b10 - 409acb: 41 89 76 04 mov %esi,0x4(%r14) - 409acf: 4a 8d 34 e5 00 00 00 lea 0x0(,%r12,8),%rsi - 409ad6: 00 - 409ad7: 89 db mov %ebx,%ebx - 409ad9: 48 8d 14 dd 08 00 00 lea 0x8(,%rbx,8),%rdx - 409ae0: 00 - 409ae1: 45 89 26 mov %r12d,(%r14) - 409ae4: 48 8d 7e 08 lea 0x8(%rsi),%rdi - 409ae8: 48 29 d6 sub %rdx,%rsi - 409aeb: 48 29 d7 sub %rdx,%rdi - 409aee: 4c 01 fe add %r15,%rsi - 409af1: 4c 01 f7 add %r14,%rdi - 409af4: e8 27 25 02 00 callq 42c020 - 409af9: 48 83 c4 18 add $0x18,%rsp - 409afd: 4c 89 f0 mov %r14,%rax - 409b00: 5b pop %rbx - 409b01: 5d pop %rbp - 409b02: 41 5c pop %r12 - 409b04: 41 5d pop %r13 - 409b06: 41 5e pop %r14 - 409b08: 41 5f pop %r15 - 409b0a: c3 retq - 409b0b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 409b10: 4f 8d 24 ef lea (%r15,%r13,8),%r12 - 409b14: eb 30 jmp 409b46 - 409b16: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 409b1d: 00 00 00 - 409b20: 83 f8 03 cmp $0x3,%eax - 409b23: 0f 84 f7 02 00 00 je 409e20 - 409b29: 83 f8 01 cmp $0x1,%eax - 409b2c: 74 58 je 409b86 - 409b2e: 48 89 df mov %rbx,%rdi - 409b31: e8 7a 42 01 00 callq 41ddb0 <__cfree> - 409b36: 83 ed 01 sub $0x1,%ebp - 409b39: 49 83 ec 08 sub $0x8,%r12 - 409b3d: 83 fd ff cmp $0xffffffff,%ebp - 409b40: 0f 84 8a 0a 00 00 je 40a5d0 - 409b46: 49 8b 1c 24 mov (%r12),%rbx - 409b4a: 48 85 db test %rbx,%rbx - 409b4d: 74 e7 je 409b36 - 409b4f: 8b 03 mov (%rbx),%eax - 409b51: 83 f8 02 cmp $0x2,%eax - 409b54: 75 ca jne 409b20 - 409b56: 4c 8b 6b 10 mov 0x10(%rbx),%r13 - 409b5a: 4d 85 ed test %r13,%r13 - 409b5d: 74 27 je 409b86 - 409b5f: 41 8b 45 00 mov 0x0(%r13),%eax - 409b63: 83 f8 02 cmp $0x2,%eax - 409b66: 0f 84 35 09 00 00 je 40a4a1 - 409b6c: 83 f8 03 cmp $0x3,%eax - 409b6f: 0f 84 1b 0a 00 00 je 40a590 - 409b75: 83 f8 01 cmp $0x1,%eax - 409b78: 0f 84 63 02 00 00 je 409de1 - 409b7e: 4c 89 ef mov %r13,%rdi - 409b81: e8 2a 42 01 00 callq 41ddb0 <__cfree> - 409b86: 4c 8b 6b 08 mov 0x8(%rbx),%r13 - 409b8a: 4d 85 ed test %r13,%r13 - 409b8d: 74 9f je 409b2e - 409b8f: 41 8b 45 00 mov 0x0(%r13),%eax - 409b93: 83 f8 02 cmp $0x2,%eax - 409b96: 74 47 je 409bdf - 409b98: 83 f8 03 cmp $0x3,%eax - 409b9b: 74 13 je 409bb0 - 409b9d: 83 f8 01 cmp $0x1,%eax - 409ba0: 74 6c je 409c0e - 409ba2: 4c 89 ef mov %r13,%rdi - 409ba5: e8 06 42 01 00 callq 41ddb0 <__cfree> - 409baa: eb 82 jmp 409b2e - 409bac: 0f 1f 40 00 nopl 0x0(%rax) - 409bb0: 4d 8b 75 18 mov 0x18(%r13),%r14 - 409bb4: 4d 85 f6 test %r14,%r14 - 409bb7: 74 26 je 409bdf - 409bb9: 41 8b 06 mov (%r14),%eax - 409bbc: 83 f8 02 cmp $0x2,%eax - 409bbf: 0f 84 ca 0d 00 00 je 40a98f - 409bc5: 83 f8 03 cmp $0x3,%eax - 409bc8: 0f 84 92 0d 00 00 je 40a960 - 409bce: 83 f8 01 cmp $0x1,%eax - 409bd1: 0f 84 e7 0d 00 00 je 40a9be - 409bd7: 4c 89 f7 mov %r14,%rdi - 409bda: e8 d1 41 01 00 callq 41ddb0 <__cfree> - 409bdf: 4d 8b 75 10 mov 0x10(%r13),%r14 - 409be3: 4d 85 f6 test %r14,%r14 - 409be6: 74 26 je 409c0e - 409be8: 41 8b 06 mov (%r14),%eax - 409beb: 83 f8 02 cmp $0x2,%eax - 409bee: 0f 84 8b 04 00 00 je 40a07f - 409bf4: 83 f8 03 cmp $0x3,%eax - 409bf7: 0f 84 53 04 00 00 je 40a050 - 409bfd: 83 f8 01 cmp $0x1,%eax - 409c00: 0f 84 a8 04 00 00 je 40a0ae - 409c06: 4c 89 f7 mov %r14,%rdi - 409c09: e8 a2 41 01 00 callq 41ddb0 <__cfree> - 409c0e: 4d 8b 75 08 mov 0x8(%r13),%r14 - 409c12: 4d 85 f6 test %r14,%r14 - 409c15: 74 8b je 409ba2 - 409c17: 41 8b 06 mov (%r14),%eax - 409c1a: 83 f8 02 cmp $0x2,%eax - 409c1d: 0f 84 2f 06 00 00 je 40a252 - 409c23: 83 f8 03 cmp $0x3,%eax - 409c26: 0f 84 b4 08 00 00 je 40a4e0 - 409c2c: 83 f8 01 cmp $0x1,%eax - 409c2f: 0f 84 c8 00 00 00 je 409cfd - 409c35: 4c 89 f7 mov %r14,%rdi - 409c38: e8 73 41 01 00 callq 41ddb0 <__cfree> - 409c3d: e9 60 ff ff ff jmpq 409ba2 - 409c42: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 409c48: 48 8b 04 24 mov (%rsp),%rax - 409c4c: 48 8b 78 18 mov 0x18(%rax),%rdi - 409c50: e8 bb bf ff ff callq 405c10 <__gettext_free_exp> - 409c55: 48 8b 04 24 mov (%rsp),%rax - 409c59: 48 8b 40 10 mov 0x10(%rax),%rax - 409c5d: 48 85 c0 test %rax,%rax - 409c60: 74 25 je 409c87 - 409c62: 8b 10 mov (%rax),%edx - 409c64: 83 fa 02 cmp $0x2,%edx - 409c67: 0f 84 93 22 00 00 je 40bf00 - 409c6d: 83 fa 03 cmp $0x3,%edx - 409c70: 0f 84 77 22 00 00 je 40beed - 409c76: 83 fa 01 cmp $0x1,%edx - 409c79: 0f 84 94 22 00 00 je 40bf13 - 409c7f: 48 89 c7 mov %rax,%rdi - 409c82: e8 29 41 01 00 callq 41ddb0 <__cfree> - 409c87: 48 8b 04 24 mov (%rsp),%rax - 409c8b: 48 8b 40 08 mov 0x8(%rax),%rax - 409c8f: 48 85 c0 test %rax,%rax - 409c92: 74 25 je 409cb9 - 409c94: 8b 10 mov (%rax),%edx - 409c96: 83 fa 02 cmp $0x2,%edx - 409c99: 0f 84 6c 19 00 00 je 40b60b - 409c9f: 83 fa 03 cmp $0x3,%edx - 409ca2: 0f 84 50 19 00 00 je 40b5f8 - 409ca8: 83 fa 01 cmp $0x1,%edx - 409cab: 0f 84 6d 19 00 00 je 40b61e - 409cb1: 48 89 c7 mov %rax,%rdi - 409cb4: e8 f7 40 01 00 callq 41ddb0 <__cfree> - 409cb9: 48 8b 3c 24 mov (%rsp),%rdi - 409cbd: e8 ee 40 01 00 callq 41ddb0 <__cfree> - 409cc2: 49 8b 47 08 mov 0x8(%r15),%rax - 409cc6: 48 85 c0 test %rax,%rax - 409cc9: 48 89 04 24 mov %rax,(%rsp) - 409ccd: 74 26 je 409cf5 - 409ccf: 8b 00 mov (%rax),%eax - 409cd1: 83 f8 02 cmp $0x2,%eax - 409cd4: 0f 84 98 10 00 00 je 40ad72 - 409cda: 83 f8 03 cmp $0x3,%eax - 409cdd: 0f 84 5d 10 00 00 je 40ad40 - 409ce3: 83 f8 01 cmp $0x1,%eax - 409ce6: 0f 84 b8 10 00 00 je 40ada4 - 409cec: 48 8b 3c 24 mov (%rsp),%rdi - 409cf0: e8 bb 40 01 00 callq 41ddb0 <__cfree> - 409cf5: 4c 89 ff mov %r15,%rdi - 409cf8: e8 b3 40 01 00 callq 41ddb0 <__cfree> - 409cfd: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 409d01: 4d 85 ff test %r15,%r15 - 409d04: 0f 84 2b ff ff ff je 409c35 - 409d0a: 41 8b 07 mov (%r15),%eax - 409d0d: 83 f8 02 cmp $0x2,%eax - 409d10: 0f 84 45 02 00 00 je 409f5b - 409d16: 83 f8 03 cmp $0x3,%eax - 409d19: 0f 84 09 02 00 00 je 409f28 - 409d1f: 83 f8 01 cmp $0x1,%eax - 409d22: 0f 84 66 02 00 00 je 409f8e - 409d28: 4c 89 ff mov %r15,%rdi - 409d2b: e8 80 40 01 00 callq 41ddb0 <__cfree> - 409d30: e9 00 ff ff ff jmpq 409c35 - 409d35: 0f 1f 00 nopl (%rax) - 409d38: 49 8b 7f 18 mov 0x18(%r15),%rdi - 409d3c: e8 cf be ff ff callq 405c10 <__gettext_free_exp> - 409d41: 49 8b 47 10 mov 0x10(%r15),%rax - 409d45: 48 85 c0 test %rax,%rax - 409d48: 74 25 je 409d6f - 409d4a: 8b 10 mov (%rax),%edx - 409d4c: 83 fa 02 cmp $0x2,%edx - 409d4f: 0f 84 63 22 00 00 je 40bfb8 - 409d55: 83 fa 03 cmp $0x3,%edx - 409d58: 0f 84 49 22 00 00 je 40bfa7 - 409d5e: 83 fa 01 cmp $0x1,%edx - 409d61: 0f 84 62 22 00 00 je 40bfc9 - 409d67: 48 89 c7 mov %rax,%rdi - 409d6a: e8 41 40 01 00 callq 41ddb0 <__cfree> - 409d6f: 49 8b 47 08 mov 0x8(%r15),%rax - 409d73: 48 85 c0 test %rax,%rax - 409d76: 48 89 04 24 mov %rax,(%rsp) - 409d7a: 74 26 je 409da2 - 409d7c: 8b 00 mov (%rax),%eax - 409d7e: 83 f8 02 cmp $0x2,%eax - 409d81: 0f 84 64 1b 00 00 je 40b8eb - 409d87: 83 f8 03 cmp $0x3,%eax - 409d8a: 0f 84 4e 1b 00 00 je 40b8de - 409d90: 83 f8 01 cmp $0x1,%eax - 409d93: 0f 84 84 1b 00 00 je 40b91d - 409d99: 48 8b 3c 24 mov (%rsp),%rdi - 409d9d: e8 0e 40 01 00 callq 41ddb0 <__cfree> - 409da2: 4c 89 ff mov %r15,%rdi - 409da5: e8 06 40 01 00 callq 41ddb0 <__cfree> - 409daa: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 409dae: 4d 85 ff test %r15,%r15 - 409db1: 74 26 je 409dd9 - 409db3: 41 8b 07 mov (%r15),%eax - 409db6: 83 f8 02 cmp $0x2,%eax - 409db9: 0f 84 cf 12 00 00 je 40b08e - 409dbf: 83 f8 03 cmp $0x3,%eax - 409dc2: 0f 84 98 12 00 00 je 40b060 - 409dc8: 83 f8 01 cmp $0x1,%eax - 409dcb: 0f 84 f0 12 00 00 je 40b0c1 - 409dd1: 4c 89 ff mov %r15,%rdi - 409dd4: e8 d7 3f 01 00 callq 41ddb0 <__cfree> - 409dd9: 4c 89 f7 mov %r14,%rdi - 409ddc: e8 cf 3f 01 00 callq 41ddb0 <__cfree> - 409de1: 4d 8b 75 08 mov 0x8(%r13),%r14 - 409de5: 4d 85 f6 test %r14,%r14 - 409de8: 0f 84 90 fd ff ff je 409b7e - 409dee: 41 8b 06 mov (%r14),%eax - 409df1: 83 f8 02 cmp $0x2,%eax - 409df4: 0f 84 c5 04 00 00 je 40a2bf - 409dfa: 83 f8 03 cmp $0x3,%eax - 409dfd: 0f 84 8d 04 00 00 je 40a290 - 409e03: 83 f8 01 cmp $0x1,%eax - 409e06: 0f 84 e2 04 00 00 je 40a2ee - 409e0c: 4c 89 f7 mov %r14,%rdi - 409e0f: e8 9c 3f 01 00 callq 41ddb0 <__cfree> - 409e14: e9 65 fd ff ff jmpq 409b7e - 409e19: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 409e20: 4c 8b 6b 18 mov 0x18(%rbx),%r13 - 409e24: 4d 85 ed test %r13,%r13 - 409e27: 0f 84 29 fd ff ff je 409b56 - 409e2d: 41 8b 45 00 mov 0x0(%r13),%eax - 409e31: 83 f8 02 cmp $0x2,%eax - 409e34: 0f 84 15 07 00 00 je 40a54f - 409e3a: 83 f8 03 cmp $0x3,%eax - 409e3d: 0f 84 dd 06 00 00 je 40a520 - 409e43: 83 f8 01 cmp $0x1,%eax - 409e46: 0f 84 96 00 00 00 je 409ee2 - 409e4c: 4c 89 ef mov %r13,%rdi - 409e4f: e8 5c 3f 01 00 callq 41ddb0 <__cfree> - 409e54: e9 fd fc ff ff jmpq 409b56 - 409e59: 49 8b 7f 18 mov 0x18(%r15),%rdi - 409e5d: e8 ae bd ff ff callq 405c10 <__gettext_free_exp> - 409e62: 49 8b 7f 10 mov 0x10(%r15),%rdi - 409e66: e8 a5 bd ff ff callq 405c10 <__gettext_free_exp> - 409e6b: 49 8b 7f 08 mov 0x8(%r15),%rdi - 409e6f: e8 9c bd ff ff callq 405c10 <__gettext_free_exp> - 409e74: 4c 89 ff mov %r15,%rdi - 409e77: e8 34 3f 01 00 callq 41ddb0 <__cfree> - 409e7c: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 409e80: 4d 85 ff test %r15,%r15 - 409e83: 74 26 je 409eab - 409e85: 41 8b 07 mov (%r15),%eax - 409e88: 83 f8 02 cmp $0x2,%eax - 409e8b: 0f 84 19 1f 00 00 je 40bdaa - 409e91: 83 f8 03 cmp $0x3,%eax - 409e94: 0f 84 07 1f 00 00 je 40bda1 - 409e9a: 83 f8 01 cmp $0x1,%eax - 409e9d: 0f 84 10 1f 00 00 je 40bdb3 - 409ea3: 4c 89 ff mov %r15,%rdi - 409ea6: e8 05 3f 01 00 callq 41ddb0 <__cfree> - 409eab: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 409eaf: 4d 85 ff test %r15,%r15 - 409eb2: 74 26 je 409eda - 409eb4: 41 8b 07 mov (%r15),%eax - 409eb7: 83 f8 02 cmp $0x2,%eax - 409eba: 0f 84 16 15 00 00 je 40b3d6 - 409ec0: 83 f8 03 cmp $0x3,%eax - 409ec3: 0f 84 04 15 00 00 je 40b3cd - 409ec9: 83 f8 01 cmp $0x1,%eax - 409ecc: 0f 84 32 15 00 00 je 40b404 - 409ed2: 4c 89 ff mov %r15,%rdi - 409ed5: e8 d6 3e 01 00 callq 41ddb0 <__cfree> - 409eda: 4c 89 f7 mov %r14,%rdi - 409edd: e8 ce 3e 01 00 callq 41ddb0 <__cfree> - 409ee2: 4d 8b 75 08 mov 0x8(%r13),%r14 - 409ee6: 4d 85 f6 test %r14,%r14 - 409ee9: 0f 84 5d ff ff ff je 409e4c - 409eef: 41 8b 06 mov (%r14),%eax - 409ef2: 83 f8 02 cmp $0x2,%eax - 409ef5: 0f 84 54 09 00 00 je 40a84f - 409efb: 83 f8 03 cmp $0x3,%eax - 409efe: 0f 84 1c 09 00 00 je 40a820 - 409f04: 83 f8 01 cmp $0x1,%eax - 409f07: 0f 84 71 09 00 00 je 40a87e - 409f0d: 4c 89 f7 mov %r14,%rdi - 409f10: e8 9b 3e 01 00 callq 41ddb0 <__cfree> - 409f15: 4c 89 ef mov %r13,%rdi - 409f18: e8 93 3e 01 00 callq 41ddb0 <__cfree> - 409f1d: e9 34 fc ff ff jmpq 409b56 - 409f22: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 409f28: 49 8b 47 18 mov 0x18(%r15),%rax - 409f2c: 48 85 c0 test %rax,%rax - 409f2f: 48 89 04 24 mov %rax,(%rsp) - 409f33: 74 26 je 409f5b - 409f35: 8b 00 mov (%rax),%eax - 409f37: 83 f8 02 cmp $0x2,%eax - 409f3a: 0f 84 44 12 00 00 je 40b184 - 409f40: 83 f8 03 cmp $0x3,%eax - 409f43: 0f 84 2e 12 00 00 je 40b177 - 409f49: 83 f8 01 cmp $0x1,%eax - 409f4c: 0f 84 64 12 00 00 je 40b1b6 - 409f52: 48 8b 3c 24 mov (%rsp),%rdi - 409f56: e8 55 3e 01 00 callq 41ddb0 <__cfree> - 409f5b: 49 8b 47 10 mov 0x10(%r15),%rax - 409f5f: 48 85 c0 test %rax,%rax - 409f62: 48 89 04 24 mov %rax,(%rsp) - 409f66: 74 26 je 409f8e - 409f68: 8b 00 mov (%rax),%eax - 409f6a: 83 f8 02 cmp $0x2,%eax - 409f6d: 0f 84 3f 0c 00 00 je 40abb2 - 409f73: 83 f8 03 cmp $0x3,%eax - 409f76: 0f 84 04 0c 00 00 je 40ab80 - 409f7c: 83 f8 01 cmp $0x1,%eax - 409f7f: 0f 84 5f 0c 00 00 je 40abe4 - 409f85: 48 8b 3c 24 mov (%rsp),%rdi - 409f89: e8 22 3e 01 00 callq 41ddb0 <__cfree> - 409f8e: 49 8b 47 08 mov 0x8(%r15),%rax - 409f92: 48 85 c0 test %rax,%rax - 409f95: 0f 84 8d fd ff ff je 409d28 - 409f9b: 8b 10 mov (%rax),%edx - 409f9d: 83 fa 02 cmp $0x2,%edx - 409fa0: 0f 84 78 06 00 00 je 40a61e - 409fa6: 83 fa 03 cmp $0x3,%edx - 409fa9: 0f 84 39 06 00 00 je 40a5e8 - 409faf: 83 fa 01 cmp $0x1,%edx - 409fb2: 74 75 je 40a029 - 409fb4: 48 89 c7 mov %rax,%rdi - 409fb7: e8 f4 3d 01 00 callq 41ddb0 <__cfree> - 409fbc: e9 67 fd ff ff jmpq 409d28 - 409fc1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 409fc8: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 409fcc: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409fd1: 48 89 14 24 mov %rdx,(%rsp) - 409fd5: e8 36 bc ff ff callq 405c10 <__gettext_free_exp> - 409fda: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409fdf: 48 8b 14 24 mov (%rsp),%rdx - 409fe3: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 409fe7: 48 89 44 24 08 mov %rax,0x8(%rsp) - 409fec: 48 89 14 24 mov %rdx,(%rsp) - 409ff0: e8 1b bc ff ff callq 405c10 <__gettext_free_exp> - 409ff5: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 409ffa: 48 8b 14 24 mov (%rsp),%rdx - 409ffe: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40a002: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40a007: 48 89 14 24 mov %rdx,(%rsp) - 40a00b: e8 00 bc ff ff callq 405c10 <__gettext_free_exp> - 40a010: 48 8b 14 24 mov (%rsp),%rdx - 40a014: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40a019: 48 89 d7 mov %rdx,%rdi - 40a01c: 48 89 04 24 mov %rax,(%rsp) - 40a020: e8 8b 3d 01 00 callq 41ddb0 <__cfree> - 40a025: 48 8b 04 24 mov (%rsp),%rax - 40a029: 48 8b 78 08 mov 0x8(%rax),%rdi - 40a02d: 48 89 04 24 mov %rax,(%rsp) - 40a031: e8 da bb ff ff callq 405c10 <__gettext_free_exp> - 40a036: 48 8b 04 24 mov (%rsp),%rax - 40a03a: 48 89 c7 mov %rax,%rdi - 40a03d: e8 6e 3d 01 00 callq 41ddb0 <__cfree> - 40a042: e9 e1 fc ff ff jmpq 409d28 - 40a047: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40a04e: 00 00 - 40a050: 4d 8b 7e 18 mov 0x18(%r14),%r15 - 40a054: 4d 85 ff test %r15,%r15 - 40a057: 74 26 je 40a07f - 40a059: 41 8b 07 mov (%r15),%eax - 40a05c: 83 f8 02 cmp $0x2,%eax - 40a05f: 0f 84 29 15 00 00 je 40b58e - 40a065: 83 f8 03 cmp $0x3,%eax - 40a068: 0f 84 17 15 00 00 je 40b585 - 40a06e: 83 f8 01 cmp $0x1,%eax - 40a071: 0f 84 45 15 00 00 je 40b5bc - 40a077: 4c 89 ff mov %r15,%rdi - 40a07a: e8 31 3d 01 00 callq 41ddb0 <__cfree> - 40a07f: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 40a083: 4d 85 ff test %r15,%r15 - 40a086: 74 26 je 40a0ae - 40a088: 41 8b 07 mov (%r15),%eax - 40a08b: 83 f8 02 cmp $0x2,%eax - 40a08e: 0f 84 ba 0d 00 00 je 40ae4e - 40a094: 83 f8 03 cmp $0x3,%eax - 40a097: 0f 84 83 0d 00 00 je 40ae20 - 40a09d: 83 f8 01 cmp $0x1,%eax - 40a0a0: 0f 84 db 0d 00 00 je 40ae81 - 40a0a6: 4c 89 ff mov %r15,%rdi - 40a0a9: e8 02 3d 01 00 callq 41ddb0 <__cfree> - 40a0ae: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 40a0b2: 4d 85 ff test %r15,%r15 - 40a0b5: 0f 84 4b fb ff ff je 409c06 - 40a0bb: 41 8b 07 mov (%r15),%eax - 40a0be: 83 f8 02 cmp $0x2,%eax - 40a0c1: 0f 84 a7 06 00 00 je 40a76e - 40a0c7: 83 f8 03 cmp $0x3,%eax - 40a0ca: 0f 84 70 06 00 00 je 40a740 - 40a0d0: 83 f8 01 cmp $0x1,%eax - 40a0d3: 0f 84 91 00 00 00 je 40a16a - 40a0d9: 4c 89 ff mov %r15,%rdi - 40a0dc: e8 cf 3c 01 00 callq 41ddb0 <__cfree> - 40a0e1: e9 20 fb ff ff jmpq 409c06 - 40a0e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40a0ed: 00 00 00 - 40a0f0: 48 8b 04 24 mov (%rsp),%rax - 40a0f4: 48 8b 78 18 mov 0x18(%rax),%rdi - 40a0f8: e8 13 bb ff ff callq 405c10 <__gettext_free_exp> - 40a0fd: 48 8b 04 24 mov (%rsp),%rax - 40a101: 48 8b 40 10 mov 0x10(%rax),%rax - 40a105: 48 85 c0 test %rax,%rax - 40a108: 74 25 je 40a12f - 40a10a: 8b 10 mov (%rax),%edx - 40a10c: 83 fa 02 cmp $0x2,%edx - 40a10f: 0f 84 6f 1d 00 00 je 40be84 - 40a115: 83 fa 03 cmp $0x3,%edx - 40a118: 0f 84 53 1d 00 00 je 40be71 - 40a11e: 83 fa 01 cmp $0x1,%edx - 40a121: 0f 84 70 1d 00 00 je 40be97 - 40a127: 48 89 c7 mov %rax,%rdi - 40a12a: e8 81 3c 01 00 callq 41ddb0 <__cfree> - 40a12f: 48 8b 04 24 mov (%rsp),%rax - 40a133: 48 8b 40 08 mov 0x8(%rax),%rax - 40a137: 48 85 c0 test %rax,%rax - 40a13a: 74 25 je 40a161 - 40a13c: 8b 10 mov (%rax),%edx - 40a13e: 83 fa 02 cmp $0x2,%edx - 40a141: 0f 84 76 16 00 00 je 40b7bd - 40a147: 83 fa 03 cmp $0x3,%edx - 40a14a: 0f 84 5a 16 00 00 je 40b7aa - 40a150: 83 fa 01 cmp $0x1,%edx - 40a153: 0f 84 77 16 00 00 je 40b7d0 - 40a159: 48 89 c7 mov %rax,%rdi - 40a15c: e8 4f 3c 01 00 callq 41ddb0 <__cfree> - 40a161: 48 8b 3c 24 mov (%rsp),%rdi - 40a165: e8 46 3c 01 00 callq 41ddb0 <__cfree> - 40a16a: 49 8b 47 08 mov 0x8(%r15),%rax - 40a16e: 48 85 c0 test %rax,%rax - 40a171: 48 89 04 24 mov %rax,(%rsp) - 40a175: 0f 84 5e ff ff ff je 40a0d9 - 40a17b: 8b 00 mov (%rax),%eax - 40a17d: 83 f8 02 cmp $0x2,%eax - 40a180: 0f 84 4c 09 00 00 je 40aad2 - 40a186: 83 f8 03 cmp $0x3,%eax - 40a189: 0f 84 11 09 00 00 je 40aaa0 - 40a18f: 83 f8 01 cmp $0x1,%eax - 40a192: 0f 84 6c 09 00 00 je 40ab04 - 40a198: 48 8b 3c 24 mov (%rsp),%rdi - 40a19c: e8 0f 3c 01 00 callq 41ddb0 <__cfree> - 40a1a1: 4c 89 ff mov %r15,%rdi - 40a1a4: e8 07 3c 01 00 callq 41ddb0 <__cfree> - 40a1a9: e9 58 fa ff ff jmpq 409c06 - 40a1ae: 48 8b 78 18 mov 0x18(%rax),%rdi - 40a1b2: 48 89 04 24 mov %rax,(%rsp) - 40a1b6: e8 55 ba ff ff callq 405c10 <__gettext_free_exp> - 40a1bb: 48 8b 04 24 mov (%rsp),%rax - 40a1bf: 48 8b 78 10 mov 0x10(%rax),%rdi - 40a1c3: 48 89 04 24 mov %rax,(%rsp) - 40a1c7: e8 44 ba ff ff callq 405c10 <__gettext_free_exp> - 40a1cc: 48 8b 04 24 mov (%rsp),%rax - 40a1d0: 48 8b 78 08 mov 0x8(%rax),%rdi - 40a1d4: 48 89 04 24 mov %rax,(%rsp) - 40a1d8: e8 33 ba ff ff callq 405c10 <__gettext_free_exp> - 40a1dd: 48 8b 04 24 mov (%rsp),%rax - 40a1e1: 48 89 c7 mov %rax,%rdi - 40a1e4: e8 c7 3b 01 00 callq 41ddb0 <__cfree> - 40a1e9: 49 8b 47 10 mov 0x10(%r15),%rax - 40a1ed: 48 85 c0 test %rax,%rax - 40a1f0: 74 25 je 40a217 - 40a1f2: 8b 10 mov (%rax),%edx - 40a1f4: 83 fa 02 cmp $0x2,%edx - 40a1f7: 0f 84 26 19 00 00 je 40bb23 - 40a1fd: 83 fa 03 cmp $0x3,%edx - 40a200: 0f 84 0c 19 00 00 je 40bb12 - 40a206: 83 fa 01 cmp $0x1,%edx - 40a209: 0f 84 25 19 00 00 je 40bb34 - 40a20f: 48 89 c7 mov %rax,%rdi - 40a212: e8 99 3b 01 00 callq 41ddb0 <__cfree> - 40a217: 49 8b 47 08 mov 0x8(%r15),%rax - 40a21b: 48 85 c0 test %rax,%rax - 40a21e: 48 89 04 24 mov %rax,(%rsp) - 40a222: 74 26 je 40a24a - 40a224: 8b 00 mov (%rax),%eax - 40a226: 83 f8 02 cmp $0x2,%eax - 40a229: 0f 84 cf 0f 00 00 je 40b1fe - 40a22f: 83 f8 03 cmp $0x3,%eax - 40a232: 0f 84 b9 0f 00 00 je 40b1f1 - 40a238: 83 f8 01 cmp $0x1,%eax - 40a23b: 0f 84 ef 0f 00 00 je 40b230 - 40a241: 48 8b 3c 24 mov (%rsp),%rdi - 40a245: e8 66 3b 01 00 callq 41ddb0 <__cfree> - 40a24a: 4c 89 ff mov %r15,%rdi - 40a24d: e8 5e 3b 01 00 callq 41ddb0 <__cfree> - 40a252: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 40a256: 4d 85 ff test %r15,%r15 - 40a259: 0f 84 9e fa ff ff je 409cfd - 40a25f: 41 8b 07 mov (%r15),%eax - 40a262: 83 f8 02 cmp $0x2,%eax - 40a265: 0f 84 23 04 00 00 je 40a68e - 40a26b: 83 f8 03 cmp $0x3,%eax - 40a26e: 0f 84 ec 03 00 00 je 40a660 - 40a274: 83 f8 01 cmp $0x1,%eax - 40a277: 0f 84 45 fa ff ff je 409cc2 - 40a27d: 4c 89 ff mov %r15,%rdi - 40a280: e8 2b 3b 01 00 callq 41ddb0 <__cfree> - 40a285: e9 73 fa ff ff jmpq 409cfd - 40a28a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 40a290: 4d 8b 7e 18 mov 0x18(%r14),%r15 - 40a294: 4d 85 ff test %r15,%r15 - 40a297: 74 26 je 40a2bf - 40a299: 41 8b 07 mov (%r15),%eax - 40a29c: 83 f8 02 cmp $0x2,%eax - 40a29f: 0f 84 0d 12 00 00 je 40b4b2 - 40a2a5: 83 f8 03 cmp $0x3,%eax - 40a2a8: 0f 84 fb 11 00 00 je 40b4a9 - 40a2ae: 83 f8 01 cmp $0x1,%eax - 40a2b1: 0f 84 29 12 00 00 je 40b4e0 - 40a2b7: 4c 89 ff mov %r15,%rdi - 40a2ba: e8 f1 3a 01 00 callq 41ddb0 <__cfree> - 40a2bf: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 40a2c3: 4d 85 ff test %r15,%r15 - 40a2c6: 74 26 je 40a2ee - 40a2c8: 41 8b 07 mov (%r15),%eax - 40a2cb: 83 f8 02 cmp $0x2,%eax - 40a2ce: 0f 84 9a 0c 00 00 je 40af6e - 40a2d4: 83 f8 03 cmp $0x3,%eax - 40a2d7: 0f 84 63 0c 00 00 je 40af40 - 40a2dd: 83 f8 01 cmp $0x1,%eax - 40a2e0: 0f 84 bb 0c 00 00 je 40afa1 - 40a2e6: 4c 89 ff mov %r15,%rdi - 40a2e9: e8 c2 3a 01 00 callq 41ddb0 <__cfree> - 40a2ee: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 40a2f2: 4d 85 ff test %r15,%r15 - 40a2f5: 0f 84 11 fb ff ff je 409e0c - 40a2fb: 41 8b 07 mov (%r15),%eax - 40a2fe: 83 f8 02 cmp $0x2,%eax - 40a301: 0f 84 f7 03 00 00 je 40a6fe - 40a307: 83 f8 03 cmp $0x3,%eax - 40a30a: 0f 84 c0 03 00 00 je 40a6d0 - 40a310: 83 f8 01 cmp $0x1,%eax - 40a313: 0f 84 bb 00 00 00 je 40a3d4 - 40a319: 4c 89 ff mov %r15,%rdi - 40a31c: e8 8f 3a 01 00 callq 41ddb0 <__cfree> - 40a321: e9 e6 fa ff ff jmpq 409e0c - 40a326: 48 8b 78 18 mov 0x18(%rax),%rdi - 40a32a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40a32f: e8 dc b8 ff ff callq 405c10 <__gettext_free_exp> - 40a334: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40a339: 48 8b 78 10 mov 0x10(%rax),%rdi - 40a33d: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40a342: e8 c9 b8 ff ff callq 405c10 <__gettext_free_exp> - 40a347: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40a34c: 48 8b 78 08 mov 0x8(%rax),%rdi - 40a350: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40a355: e8 b6 b8 ff ff callq 405c10 <__gettext_free_exp> - 40a35a: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40a35f: 48 89 c7 mov %rax,%rdi - 40a362: e8 49 3a 01 00 callq 41ddb0 <__cfree> - 40a367: 48 8b 04 24 mov (%rsp),%rax - 40a36b: 48 8b 40 10 mov 0x10(%rax),%rax - 40a36f: 48 85 c0 test %rax,%rax - 40a372: 74 25 je 40a399 - 40a374: 8b 10 mov (%rax),%edx - 40a376: 83 fa 02 cmp $0x2,%edx - 40a379: 0f 84 c7 1a 00 00 je 40be46 - 40a37f: 83 fa 03 cmp $0x3,%edx - 40a382: 0f 84 ab 1a 00 00 je 40be33 - 40a388: 83 fa 01 cmp $0x1,%edx - 40a38b: 0f 84 c8 1a 00 00 je 40be59 - 40a391: 48 89 c7 mov %rax,%rdi - 40a394: e8 17 3a 01 00 callq 41ddb0 <__cfree> - 40a399: 48 8b 04 24 mov (%rsp),%rax - 40a39d: 48 8b 40 08 mov 0x8(%rax),%rax - 40a3a1: 48 85 c0 test %rax,%rax - 40a3a4: 74 25 je 40a3cb - 40a3a6: 8b 10 mov (%rax),%edx - 40a3a8: 83 fa 02 cmp $0x2,%edx - 40a3ab: 0f 84 4a 14 00 00 je 40b7fb - 40a3b1: 83 fa 03 cmp $0x3,%edx - 40a3b4: 0f 84 2e 14 00 00 je 40b7e8 - 40a3ba: 83 fa 01 cmp $0x1,%edx - 40a3bd: 0f 84 4b 14 00 00 je 40b80e - 40a3c3: 48 89 c7 mov %rax,%rdi - 40a3c6: e8 e5 39 01 00 callq 41ddb0 <__cfree> - 40a3cb: 48 8b 3c 24 mov (%rsp),%rdi - 40a3cf: e8 dc 39 01 00 callq 41ddb0 <__cfree> - 40a3d4: 49 8b 47 08 mov 0x8(%r15),%rax - 40a3d8: 48 85 c0 test %rax,%rax - 40a3db: 48 89 04 24 mov %rax,(%rsp) - 40a3df: 0f 84 34 ff ff ff je 40a319 - 40a3e5: 8b 00 mov (%rax),%eax - 40a3e7: 83 f8 02 cmp $0x2,%eax - 40a3ea: 0f 84 a2 08 00 00 je 40ac92 - 40a3f0: 83 f8 03 cmp $0x3,%eax - 40a3f3: 0f 84 67 08 00 00 je 40ac60 - 40a3f9: 83 f8 01 cmp $0x1,%eax - 40a3fc: 0f 84 c2 08 00 00 je 40acc4 - 40a402: 48 8b 3c 24 mov (%rsp),%rdi - 40a406: e8 a5 39 01 00 callq 41ddb0 <__cfree> - 40a40b: 4c 89 ff mov %r15,%rdi - 40a40e: e8 9d 39 01 00 callq 41ddb0 <__cfree> - 40a413: e9 f4 f9 ff ff jmpq 409e0c - 40a418: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40a41c: e8 ef b7 ff ff callq 405c10 <__gettext_free_exp> - 40a421: 49 8b 7f 10 mov 0x10(%r15),%rdi - 40a425: e8 e6 b7 ff ff callq 405c10 <__gettext_free_exp> - 40a42a: 49 8b 7f 08 mov 0x8(%r15),%rdi - 40a42e: e8 dd b7 ff ff callq 405c10 <__gettext_free_exp> - 40a433: 4c 89 ff mov %r15,%rdi - 40a436: e8 75 39 01 00 callq 41ddb0 <__cfree> - 40a43b: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 40a43f: 4d 85 ff test %r15,%r15 - 40a442: 74 26 je 40a46a - 40a444: 41 8b 07 mov (%r15),%eax - 40a447: 83 f8 02 cmp $0x2,%eax - 40a44a: 0f 84 11 19 00 00 je 40bd61 - 40a450: 83 f8 03 cmp $0x3,%eax - 40a453: 0f 84 ff 18 00 00 je 40bd58 - 40a459: 83 f8 01 cmp $0x1,%eax - 40a45c: 0f 84 08 19 00 00 je 40bd6a - 40a462: 4c 89 ff mov %r15,%rdi - 40a465: e8 46 39 01 00 callq 41ddb0 <__cfree> - 40a46a: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 40a46e: 4d 85 ff test %r15,%r15 - 40a471: 74 26 je 40a499 - 40a473: 41 8b 07 mov (%r15),%eax - 40a476: 83 f8 02 cmp $0x2,%eax - 40a479: 0f 84 c5 0f 00 00 je 40b444 - 40a47f: 83 f8 03 cmp $0x3,%eax - 40a482: 0f 84 b3 0f 00 00 je 40b43b - 40a488: 83 f8 01 cmp $0x1,%eax - 40a48b: 0f 84 e1 0f 00 00 je 40b472 - 40a491: 4c 89 ff mov %r15,%rdi - 40a494: e8 17 39 01 00 callq 41ddb0 <__cfree> - 40a499: 4c 89 f7 mov %r14,%rdi - 40a49c: e8 0f 39 01 00 callq 41ddb0 <__cfree> - 40a4a1: 4d 8b 75 10 mov 0x10(%r13),%r14 - 40a4a5: 4d 85 f6 test %r14,%r14 - 40a4a8: 0f 84 33 f9 ff ff je 409de1 - 40a4ae: 41 8b 06 mov (%r14),%eax - 40a4b1: 83 f8 02 cmp $0x2,%eax - 40a4b4: 0f 84 25 03 00 00 je 40a7df - 40a4ba: 83 f8 03 cmp $0x3,%eax - 40a4bd: 0f 84 ed 02 00 00 je 40a7b0 - 40a4c3: 83 f8 01 cmp $0x1,%eax - 40a4c6: 0f 84 de f8 ff ff je 409daa - 40a4cc: 4c 89 f7 mov %r14,%rdi - 40a4cf: e8 dc 38 01 00 callq 41ddb0 <__cfree> - 40a4d4: e9 08 f9 ff ff jmpq 409de1 - 40a4d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40a4e0: 4d 8b 7e 18 mov 0x18(%r14),%r15 - 40a4e4: 4d 85 ff test %r15,%r15 - 40a4e7: 0f 84 65 fd ff ff je 40a252 - 40a4ed: 41 8b 07 mov (%r15),%eax - 40a4f0: 83 f8 02 cmp $0x2,%eax - 40a4f3: 0f 84 f0 fc ff ff je 40a1e9 - 40a4f9: 83 f8 03 cmp $0x3,%eax - 40a4fc: 0f 84 7e 21 00 00 je 40c680 - 40a502: 83 f8 01 cmp $0x1,%eax - 40a505: 0f 84 0c fd ff ff je 40a217 - 40a50b: 4c 89 ff mov %r15,%rdi - 40a50e: e8 9d 38 01 00 callq 41ddb0 <__cfree> - 40a513: e9 3a fd ff ff jmpq 40a252 - 40a518: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40a51f: 00 - 40a520: 4d 8b 75 18 mov 0x18(%r13),%r14 - 40a524: 4d 85 f6 test %r14,%r14 - 40a527: 74 26 je 40a54f - 40a529: 41 8b 06 mov (%r14),%eax - 40a52c: 83 f8 02 cmp $0x2,%eax - 40a52f: 0f 84 20 15 00 00 je 40ba55 - 40a535: 83 f8 03 cmp $0x3,%eax - 40a538: 0f 84 0e 15 00 00 je 40ba4c - 40a53e: 83 f8 01 cmp $0x1,%eax - 40a541: 0f 84 3d 15 00 00 je 40ba84 - 40a547: 4c 89 f7 mov %r14,%rdi - 40a54a: e8 61 38 01 00 callq 41ddb0 <__cfree> - 40a54f: 4d 8b 75 10 mov 0x10(%r13),%r14 - 40a553: 4d 85 f6 test %r14,%r14 - 40a556: 0f 84 86 f9 ff ff je 409ee2 - 40a55c: 41 8b 06 mov (%r14),%eax - 40a55f: 83 f8 02 cmp $0x2,%eax - 40a562: 0f 84 14 f9 ff ff je 409e7c - 40a568: 83 f8 03 cmp $0x3,%eax - 40a56b: 0f 84 8f 22 00 00 je 40c800 - 40a571: 83 f8 01 cmp $0x1,%eax - 40a574: 0f 84 31 f9 ff ff je 409eab - 40a57a: 4c 89 f7 mov %r14,%rdi - 40a57d: e8 2e 38 01 00 callq 41ddb0 <__cfree> - 40a582: e9 5b f9 ff ff jmpq 409ee2 - 40a587: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40a58e: 00 00 - 40a590: 4d 8b 75 18 mov 0x18(%r13),%r14 - 40a594: 4d 85 f6 test %r14,%r14 - 40a597: 0f 84 04 ff ff ff je 40a4a1 - 40a59d: 41 8b 06 mov (%r14),%eax - 40a5a0: 83 f8 02 cmp $0x2,%eax - 40a5a3: 0f 84 92 fe ff ff je 40a43b - 40a5a9: 83 f8 03 cmp $0x3,%eax - 40a5ac: 0f 84 16 22 00 00 je 40c7c8 - 40a5b2: 83 f8 01 cmp $0x1,%eax - 40a5b5: 0f 84 af fe ff ff je 40a46a - 40a5bb: 4c 89 f7 mov %r14,%rdi - 40a5be: e8 ed 37 01 00 callq 41ddb0 <__cfree> - 40a5c3: e9 d9 fe ff ff jmpq 40a4a1 - 40a5c8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40a5cf: 00 - 40a5d0: 31 c0 xor %eax,%eax - 40a5d2: 48 83 c4 18 add $0x18,%rsp - 40a5d6: 5b pop %rbx - 40a5d7: 5d pop %rbp - 40a5d8: 41 5c pop %r12 - 40a5da: 41 5d pop %r13 - 40a5dc: 41 5e pop %r14 - 40a5de: 41 5f pop %r15 - 40a5e0: c3 retq - 40a5e1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40a5e8: 48 8b 50 18 mov 0x18(%rax),%rdx - 40a5ec: 48 85 d2 test %rdx,%rdx - 40a5ef: 74 2d je 40a61e - 40a5f1: 8b 0a mov (%rdx),%ecx - 40a5f3: 83 f9 02 cmp $0x2,%ecx - 40a5f6: 0f 84 db 14 00 00 je 40bad7 - 40a5fc: 83 f9 03 cmp $0x3,%ecx - 40a5ff: 0f 84 b7 14 00 00 je 40babc - 40a605: 83 f9 01 cmp $0x1,%ecx - 40a608: 0f 84 e4 14 00 00 je 40baf2 - 40a60e: 48 89 d7 mov %rdx,%rdi - 40a611: 48 89 04 24 mov %rax,(%rsp) - 40a615: e8 96 37 01 00 callq 41ddb0 <__cfree> - 40a61a: 48 8b 04 24 mov (%rsp),%rax - 40a61e: 48 8b 50 10 mov 0x10(%rax),%rdx - 40a622: 48 85 d2 test %rdx,%rdx - 40a625: 0f 84 fe f9 ff ff je 40a029 - 40a62b: 8b 0a mov (%rdx),%ecx - 40a62d: 83 f9 02 cmp $0x2,%ecx - 40a630: 0f 84 ad f9 ff ff je 409fe3 - 40a636: 83 f9 03 cmp $0x3,%ecx - 40a639: 0f 84 89 f9 ff ff je 409fc8 - 40a63f: 83 f9 01 cmp $0x1,%ecx - 40a642: 0f 84 b6 f9 ff ff je 409ffe - 40a648: 48 89 d7 mov %rdx,%rdi - 40a64b: 48 89 04 24 mov %rax,(%rsp) - 40a64f: e8 5c 37 01 00 callq 41ddb0 <__cfree> - 40a654: 48 8b 04 24 mov (%rsp),%rax - 40a658: e9 cc f9 ff ff jmpq 40a029 - 40a65d: 0f 1f 00 nopl (%rax) - 40a660: 49 8b 47 18 mov 0x18(%r15),%rax - 40a664: 48 85 c0 test %rax,%rax - 40a667: 74 25 je 40a68e - 40a669: 8b 10 mov (%rax),%edx - 40a66b: 83 fa 02 cmp $0x2,%edx - 40a66e: 0f 84 10 15 00 00 je 40bb84 - 40a674: 83 fa 03 cmp $0x3,%edx - 40a677: 0f 84 f6 14 00 00 je 40bb73 - 40a67d: 83 fa 01 cmp $0x1,%edx - 40a680: 0f 84 0f 15 00 00 je 40bb95 - 40a686: 48 89 c7 mov %rax,%rdi - 40a689: e8 22 37 01 00 callq 41ddb0 <__cfree> - 40a68e: 49 8b 47 10 mov 0x10(%r15),%rax - 40a692: 48 85 c0 test %rax,%rax - 40a695: 48 89 04 24 mov %rax,(%rsp) - 40a699: 0f 84 23 f6 ff ff je 409cc2 - 40a69f: 8b 00 mov (%rax),%eax - 40a6a1: 83 f8 02 cmp $0x2,%eax - 40a6a4: 0f 84 ab f5 ff ff je 409c55 - 40a6aa: 83 f8 03 cmp $0x3,%eax - 40a6ad: 0f 84 95 f5 ff ff je 409c48 - 40a6b3: 83 f8 01 cmp $0x1,%eax - 40a6b6: 0f 84 cb f5 ff ff je 409c87 - 40a6bc: 48 8b 3c 24 mov (%rsp),%rdi - 40a6c0: e8 eb 36 01 00 callq 41ddb0 <__cfree> - 40a6c5: e9 f8 f5 ff ff jmpq 409cc2 - 40a6ca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 40a6d0: 49 8b 47 18 mov 0x18(%r15),%rax - 40a6d4: 48 85 c0 test %rax,%rax - 40a6d7: 74 25 je 40a6fe - 40a6d9: 8b 10 mov (%rax),%edx - 40a6db: 83 fa 02 cmp $0x2,%edx - 40a6de: 0f 84 24 16 00 00 je 40bd08 - 40a6e4: 83 fa 03 cmp $0x3,%edx - 40a6e7: 0f 84 0a 16 00 00 je 40bcf7 - 40a6ed: 83 fa 01 cmp $0x1,%edx - 40a6f0: 0f 84 23 16 00 00 je 40bd19 - 40a6f6: 48 89 c7 mov %rax,%rdi - 40a6f9: e8 b2 36 01 00 callq 41ddb0 <__cfree> - 40a6fe: 49 8b 47 10 mov 0x10(%r15),%rax - 40a702: 48 85 c0 test %rax,%rax - 40a705: 48 89 04 24 mov %rax,(%rsp) - 40a709: 0f 84 c5 fc ff ff je 40a3d4 - 40a70f: 8b 00 mov (%rax),%eax - 40a711: 83 f8 02 cmp $0x2,%eax - 40a714: 0f 84 4d fc ff ff je 40a367 - 40a71a: 83 f8 03 cmp $0x3,%eax - 40a71d: 0f 84 ed 28 00 00 je 40d010 - 40a723: 83 f8 01 cmp $0x1,%eax - 40a726: 0f 84 6d fc ff ff je 40a399 - 40a72c: 48 8b 3c 24 mov (%rsp),%rdi - 40a730: e8 7b 36 01 00 callq 41ddb0 <__cfree> - 40a735: e9 9a fc ff ff jmpq 40a3d4 - 40a73a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 40a740: 49 8b 47 18 mov 0x18(%r15),%rax - 40a744: 48 85 c0 test %rax,%rax - 40a747: 74 25 je 40a76e - 40a749: 8b 10 mov (%rax),%edx - 40a74b: 83 fa 02 cmp $0x2,%edx - 40a74e: 0f 84 53 15 00 00 je 40bca7 - 40a754: 83 fa 03 cmp $0x3,%edx - 40a757: 0f 84 39 15 00 00 je 40bc96 - 40a75d: 83 fa 01 cmp $0x1,%edx - 40a760: 0f 84 52 15 00 00 je 40bcb8 - 40a766: 48 89 c7 mov %rax,%rdi - 40a769: e8 42 36 01 00 callq 41ddb0 <__cfree> - 40a76e: 49 8b 47 10 mov 0x10(%r15),%rax - 40a772: 48 85 c0 test %rax,%rax - 40a775: 48 89 04 24 mov %rax,(%rsp) - 40a779: 0f 84 eb f9 ff ff je 40a16a - 40a77f: 8b 00 mov (%rax),%eax - 40a781: 83 f8 02 cmp $0x2,%eax - 40a784: 0f 84 73 f9 ff ff je 40a0fd - 40a78a: 83 f8 03 cmp $0x3,%eax - 40a78d: 0f 84 5d f9 ff ff je 40a0f0 - 40a793: 83 f8 01 cmp $0x1,%eax - 40a796: 0f 84 93 f9 ff ff je 40a12f - 40a79c: 48 8b 3c 24 mov (%rsp),%rdi - 40a7a0: e8 0b 36 01 00 callq 41ddb0 <__cfree> - 40a7a5: e9 c0 f9 ff ff jmpq 40a16a - 40a7aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 40a7b0: 4d 8b 7e 18 mov 0x18(%r14),%r15 - 40a7b4: 4d 85 ff test %r15,%r15 - 40a7b7: 74 26 je 40a7df - 40a7b9: 41 8b 07 mov (%r15),%eax - 40a7bc: 83 f8 02 cmp $0x2,%eax - 40a7bf: 0f 84 2e 16 00 00 je 40bdf3 - 40a7c5: 83 f8 03 cmp $0x3,%eax - 40a7c8: 0f 84 1c 16 00 00 je 40bdea - 40a7ce: 83 f8 01 cmp $0x1,%eax - 40a7d1: 0f 84 25 16 00 00 je 40bdfc - 40a7d7: 4c 89 ff mov %r15,%rdi - 40a7da: e8 d1 35 01 00 callq 41ddb0 <__cfree> - 40a7df: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 40a7e3: 4d 85 ff test %r15,%r15 - 40a7e6: 0f 84 be f5 ff ff je 409daa - 40a7ec: 41 8b 07 mov (%r15),%eax - 40a7ef: 83 f8 02 cmp $0x2,%eax - 40a7f2: 0f 84 49 f5 ff ff je 409d41 - 40a7f8: 83 f8 03 cmp $0x3,%eax - 40a7fb: 0f 84 37 f5 ff ff je 409d38 - 40a801: 83 f8 01 cmp $0x1,%eax - 40a804: 0f 84 65 f5 ff ff je 409d6f - 40a80a: 4c 89 ff mov %r15,%rdi - 40a80d: e8 9e 35 01 00 callq 41ddb0 <__cfree> - 40a812: e9 93 f5 ff ff jmpq 409daa - 40a817: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40a81e: 00 00 - 40a820: 4d 8b 7e 18 mov 0x18(%r14),%r15 - 40a824: 4d 85 ff test %r15,%r15 - 40a827: 74 26 je 40a84f - 40a829: 41 8b 07 mov (%r15),%eax - 40a82c: 83 f8 02 cmp $0x2,%eax - 40a82f: 0f 84 ab 1d 00 00 je 40c5e0 - 40a835: 83 f8 03 cmp $0x3,%eax - 40a838: 0f 84 99 1d 00 00 je 40c5d7 - 40a83e: 83 f8 01 cmp $0x1,%eax - 40a841: 0f 84 a2 1d 00 00 je 40c5e9 - 40a847: 4c 89 ff mov %r15,%rdi - 40a84a: e8 61 35 01 00 callq 41ddb0 <__cfree> - 40a84f: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 40a853: 4d 85 ff test %r15,%r15 - 40a856: 74 26 je 40a87e - 40a858: 41 8b 07 mov (%r15),%eax - 40a85b: 83 f8 02 cmp $0x2,%eax - 40a85e: 0f 84 bc 0c 00 00 je 40b520 - 40a864: 83 f8 03 cmp $0x3,%eax - 40a867: 0f 84 aa 0c 00 00 je 40b517 - 40a86d: 83 f8 01 cmp $0x1,%eax - 40a870: 0f 84 d8 0c 00 00 je 40b54e - 40a876: 4c 89 ff mov %r15,%rdi - 40a879: e8 32 35 01 00 callq 41ddb0 <__cfree> - 40a87e: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 40a882: 4d 85 ff test %r15,%r15 - 40a885: 0f 84 82 f6 ff ff je 409f0d - 40a88b: 41 8b 07 mov (%r15),%eax - 40a88e: 83 f8 02 cmp $0x2,%eax - 40a891: 74 56 je 40a8e9 - 40a893: 83 f8 03 cmp $0x3,%eax - 40a896: 0f 84 b4 1d 00 00 je 40c650 - 40a89c: 83 f8 01 cmp $0x1,%eax - 40a89f: 74 76 je 40a917 - 40a8a1: 4c 89 ff mov %r15,%rdi - 40a8a4: e8 07 35 01 00 callq 41ddb0 <__cfree> - 40a8a9: e9 5f f6 ff ff jmpq 409f0d - 40a8ae: 48 8b 78 18 mov 0x18(%rax),%rdi - 40a8b2: 48 89 04 24 mov %rax,(%rsp) - 40a8b6: e8 55 b3 ff ff callq 405c10 <__gettext_free_exp> - 40a8bb: 48 8b 04 24 mov (%rsp),%rax - 40a8bf: 48 8b 78 10 mov 0x10(%rax),%rdi - 40a8c3: 48 89 04 24 mov %rax,(%rsp) - 40a8c7: e8 44 b3 ff ff callq 405c10 <__gettext_free_exp> - 40a8cc: 48 8b 04 24 mov (%rsp),%rax - 40a8d0: 48 8b 78 08 mov 0x8(%rax),%rdi - 40a8d4: 48 89 04 24 mov %rax,(%rsp) - 40a8d8: e8 33 b3 ff ff callq 405c10 <__gettext_free_exp> - 40a8dd: 48 8b 04 24 mov (%rsp),%rax - 40a8e1: 48 89 c7 mov %rax,%rdi - 40a8e4: e8 c7 34 01 00 callq 41ddb0 <__cfree> - 40a8e9: 49 8b 47 10 mov 0x10(%r15),%rax - 40a8ed: 48 85 c0 test %rax,%rax - 40a8f0: 74 25 je 40a917 - 40a8f2: 8b 10 mov (%rax),%edx - 40a8f4: 83 fa 02 cmp $0x2,%edx - 40a8f7: 0f 84 e8 12 00 00 je 40bbe5 - 40a8fd: 83 fa 03 cmp $0x3,%edx - 40a900: 0f 84 ce 12 00 00 je 40bbd4 - 40a906: 83 fa 01 cmp $0x1,%edx - 40a909: 0f 84 e7 12 00 00 je 40bbf6 - 40a90f: 48 89 c7 mov %rax,%rdi - 40a912: e8 99 34 01 00 callq 41ddb0 <__cfree> - 40a917: 49 8b 47 08 mov 0x8(%r15),%rax - 40a91b: 48 85 c0 test %rax,%rax - 40a91e: 48 89 04 24 mov %rax,(%rsp) - 40a922: 0f 84 79 ff ff ff je 40a8a1 - 40a928: 8b 00 mov (%rax),%eax - 40a92a: 83 f8 02 cmp $0x2,%eax - 40a92d: 0f 84 bf 09 00 00 je 40b2f2 - 40a933: 83 f8 03 cmp $0x3,%eax - 40a936: 0f 84 a9 09 00 00 je 40b2e5 - 40a93c: 83 f8 01 cmp $0x1,%eax - 40a93f: 0f 84 df 09 00 00 je 40b324 - 40a945: 48 8b 3c 24 mov (%rsp),%rdi - 40a949: e8 62 34 01 00 callq 41ddb0 <__cfree> - 40a94e: 4c 89 ff mov %r15,%rdi - 40a951: e8 5a 34 01 00 callq 41ddb0 <__cfree> - 40a956: e9 b2 f5 ff ff jmpq 409f0d - 40a95b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40a960: 4d 8b 7e 18 mov 0x18(%r14),%r15 - 40a964: 4d 85 ff test %r15,%r15 - 40a967: 74 26 je 40a98f - 40a969: 41 8b 07 mov (%r15),%eax - 40a96c: 83 f8 02 cmp $0x2,%eax - 40a96f: 0f 84 73 1d 00 00 je 40c6e8 - 40a975: 83 f8 03 cmp $0x3,%eax - 40a978: 0f 84 61 1d 00 00 je 40c6df - 40a97e: 83 f8 01 cmp $0x1,%eax - 40a981: 0f 84 6a 1d 00 00 je 40c6f1 - 40a987: 4c 89 ff mov %r15,%rdi - 40a98a: e8 21 34 01 00 callq 41ddb0 <__cfree> - 40a98f: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 40a993: 4d 85 ff test %r15,%r15 - 40a996: 74 26 je 40a9be - 40a998: 41 8b 07 mov (%r15),%eax - 40a99b: 83 f8 02 cmp $0x2,%eax - 40a99e: 0f 84 c4 09 00 00 je 40b368 - 40a9a4: 83 f8 03 cmp $0x3,%eax - 40a9a7: 0f 84 b2 09 00 00 je 40b35f - 40a9ad: 83 f8 01 cmp $0x1,%eax - 40a9b0: 0f 84 e0 09 00 00 je 40b396 - 40a9b6: 4c 89 ff mov %r15,%rdi - 40a9b9: e8 f2 33 01 00 callq 41ddb0 <__cfree> - 40a9be: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 40a9c2: 4d 85 ff test %r15,%r15 - 40a9c5: 0f 84 0c f2 ff ff je 409bd7 - 40a9cb: 41 8b 07 mov (%r15),%eax - 40a9ce: 83 f8 02 cmp $0x2,%eax - 40a9d1: 74 56 je 40aa29 - 40a9d3: 83 f8 03 cmp $0x3,%eax - 40a9d6: 0f 84 d4 1c 00 00 je 40c6b0 - 40a9dc: 83 f8 01 cmp $0x1,%eax - 40a9df: 74 76 je 40aa57 - 40a9e1: 4c 89 ff mov %r15,%rdi - 40a9e4: e8 c7 33 01 00 callq 41ddb0 <__cfree> - 40a9e9: e9 e9 f1 ff ff jmpq 409bd7 - 40a9ee: 48 8b 78 18 mov 0x18(%rax),%rdi - 40a9f2: 48 89 04 24 mov %rax,(%rsp) - 40a9f6: e8 15 b2 ff ff callq 405c10 <__gettext_free_exp> - 40a9fb: 48 8b 04 24 mov (%rsp),%rax - 40a9ff: 48 8b 78 10 mov 0x10(%rax),%rdi - 40aa03: 48 89 04 24 mov %rax,(%rsp) - 40aa07: e8 04 b2 ff ff callq 405c10 <__gettext_free_exp> - 40aa0c: 48 8b 04 24 mov (%rsp),%rax - 40aa10: 48 8b 78 08 mov 0x8(%rax),%rdi - 40aa14: 48 89 04 24 mov %rax,(%rsp) - 40aa18: e8 f3 b1 ff ff callq 405c10 <__gettext_free_exp> - 40aa1d: 48 8b 04 24 mov (%rsp),%rax - 40aa21: 48 89 c7 mov %rax,%rdi - 40aa24: e8 87 33 01 00 callq 41ddb0 <__cfree> - 40aa29: 49 8b 47 10 mov 0x10(%r15),%rax - 40aa2d: 48 85 c0 test %rax,%rax - 40aa30: 74 25 je 40aa57 - 40aa32: 8b 10 mov (%rax),%edx - 40aa34: 83 fa 02 cmp $0x2,%edx - 40aa37: 0f 84 09 12 00 00 je 40bc46 - 40aa3d: 83 fa 03 cmp $0x3,%edx - 40aa40: 0f 84 ef 11 00 00 je 40bc35 - 40aa46: 83 fa 01 cmp $0x1,%edx - 40aa49: 0f 84 08 12 00 00 je 40bc57 - 40aa4f: 48 89 c7 mov %rax,%rdi - 40aa52: e8 59 33 01 00 callq 41ddb0 <__cfree> - 40aa57: 49 8b 47 08 mov 0x8(%r15),%rax - 40aa5b: 48 85 c0 test %rax,%rax - 40aa5e: 48 89 04 24 mov %rax,(%rsp) - 40aa62: 0f 84 79 ff ff ff je 40a9e1 - 40aa68: 8b 00 mov (%rax),%eax - 40aa6a: 83 f8 02 cmp $0x2,%eax - 40aa6d: 0f 84 05 08 00 00 je 40b278 - 40aa73: 83 f8 03 cmp $0x3,%eax - 40aa76: 0f 84 ef 07 00 00 je 40b26b - 40aa7c: 83 f8 01 cmp $0x1,%eax - 40aa7f: 0f 84 25 08 00 00 je 40b2aa - 40aa85: 48 8b 3c 24 mov (%rsp),%rdi - 40aa89: e8 22 33 01 00 callq 41ddb0 <__cfree> - 40aa8e: 4c 89 ff mov %r15,%rdi - 40aa91: e8 1a 33 01 00 callq 41ddb0 <__cfree> - 40aa96: e9 3c f1 ff ff jmpq 409bd7 - 40aa9b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40aaa0: 48 8b 04 24 mov (%rsp),%rax - 40aaa4: 48 8b 40 18 mov 0x18(%rax),%rax - 40aaa8: 48 85 c0 test %rax,%rax - 40aaab: 74 25 je 40aad2 - 40aaad: 8b 10 mov (%rax),%edx - 40aaaf: 83 fa 02 cmp $0x2,%edx - 40aab2: 0f 84 81 22 00 00 je 40cd39 - 40aab8: 83 fa 03 cmp $0x3,%edx - 40aabb: 0f 84 65 22 00 00 je 40cd26 - 40aac1: 83 fa 01 cmp $0x1,%edx - 40aac4: 0f 84 82 22 00 00 je 40cd4c - 40aaca: 48 89 c7 mov %rax,%rdi - 40aacd: e8 de 32 01 00 callq 41ddb0 <__cfree> - 40aad2: 48 8b 04 24 mov (%rsp),%rax - 40aad6: 48 8b 40 10 mov 0x10(%rax),%rax - 40aada: 48 85 c0 test %rax,%rax - 40aadd: 74 25 je 40ab04 - 40aadf: 8b 10 mov (%rax),%edx - 40aae1: 83 fa 02 cmp $0x2,%edx - 40aae4: 0f 84 4f 0d 00 00 je 40b839 - 40aaea: 83 fa 03 cmp $0x3,%edx - 40aaed: 0f 84 33 0d 00 00 je 40b826 - 40aaf3: 83 fa 01 cmp $0x1,%edx - 40aaf6: 0f 84 50 0d 00 00 je 40b84c - 40aafc: 48 89 c7 mov %rax,%rdi - 40aaff: e8 ac 32 01 00 callq 41ddb0 <__cfree> - 40ab04: 48 8b 04 24 mov (%rsp),%rax - 40ab08: 48 8b 40 08 mov 0x8(%rax),%rax - 40ab0c: 48 85 c0 test %rax,%rax - 40ab0f: 0f 84 83 f6 ff ff je 40a198 - 40ab15: 8b 10 mov (%rax),%edx - 40ab17: 83 fa 02 cmp $0x2,%edx - 40ab1a: 74 2f je 40ab4b - 40ab1c: 83 fa 03 cmp $0x3,%edx - 40ab1f: 74 17 je 40ab38 - 40ab21: 83 fa 01 cmp $0x1,%edx - 40ab24: 74 38 je 40ab5e - 40ab26: 48 89 c7 mov %rax,%rdi - 40ab29: e8 82 32 01 00 callq 41ddb0 <__cfree> - 40ab2e: e9 65 f6 ff ff jmpq 40a198 - 40ab33: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40ab38: 48 8b 78 18 mov 0x18(%rax),%rdi - 40ab3c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ab41: e8 ca b0 ff ff callq 405c10 <__gettext_free_exp> - 40ab46: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ab4b: 48 8b 78 10 mov 0x10(%rax),%rdi - 40ab4f: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ab54: e8 b7 b0 ff ff callq 405c10 <__gettext_free_exp> - 40ab59: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ab5e: 48 8b 78 08 mov 0x8(%rax),%rdi - 40ab62: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ab67: e8 a4 b0 ff ff callq 405c10 <__gettext_free_exp> - 40ab6c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ab71: 48 89 c7 mov %rax,%rdi - 40ab74: e8 37 32 01 00 callq 41ddb0 <__cfree> - 40ab79: e9 1a f6 ff ff jmpq 40a198 - 40ab7e: 66 90 xchg %ax,%ax - 40ab80: 48 8b 04 24 mov (%rsp),%rax - 40ab84: 48 8b 40 18 mov 0x18(%rax),%rax - 40ab88: 48 85 c0 test %rax,%rax - 40ab8b: 74 25 je 40abb2 - 40ab8d: 8b 10 mov (%rax),%edx - 40ab8f: 83 fa 02 cmp $0x2,%edx - 40ab92: 0f 84 39 1f 00 00 je 40cad1 - 40ab98: 83 fa 03 cmp $0x3,%edx - 40ab9b: 0f 84 1d 1f 00 00 je 40cabe - 40aba1: 83 fa 01 cmp $0x1,%edx - 40aba4: 0f 84 3a 1f 00 00 je 40cae4 - 40abaa: 48 89 c7 mov %rax,%rdi - 40abad: e8 fe 31 01 00 callq 41ddb0 <__cfree> - 40abb2: 48 8b 04 24 mov (%rsp),%rax - 40abb6: 48 8b 40 10 mov 0x10(%rax),%rax - 40abba: 48 85 c0 test %rax,%rax - 40abbd: 74 25 je 40abe4 - 40abbf: 8b 10 mov (%rax),%edx - 40abc1: 83 fa 02 cmp $0x2,%edx - 40abc4: 0f 84 b5 0b 00 00 je 40b77f - 40abca: 83 fa 03 cmp $0x3,%edx - 40abcd: 0f 84 99 0b 00 00 je 40b76c - 40abd3: 83 fa 01 cmp $0x1,%edx - 40abd6: 0f 84 b6 0b 00 00 je 40b792 - 40abdc: 48 89 c7 mov %rax,%rdi - 40abdf: e8 cc 31 01 00 callq 41ddb0 <__cfree> - 40abe4: 48 8b 04 24 mov (%rsp),%rax - 40abe8: 48 8b 40 08 mov 0x8(%rax),%rax - 40abec: 48 85 c0 test %rax,%rax - 40abef: 0f 84 90 f3 ff ff je 409f85 - 40abf5: 8b 10 mov (%rax),%edx - 40abf7: 83 fa 02 cmp $0x2,%edx - 40abfa: 74 2f je 40ac2b - 40abfc: 83 fa 03 cmp $0x3,%edx - 40abff: 74 17 je 40ac18 - 40ac01: 83 fa 01 cmp $0x1,%edx - 40ac04: 74 38 je 40ac3e - 40ac06: 48 89 c7 mov %rax,%rdi - 40ac09: e8 a2 31 01 00 callq 41ddb0 <__cfree> - 40ac0e: e9 72 f3 ff ff jmpq 409f85 - 40ac13: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40ac18: 48 8b 78 18 mov 0x18(%rax),%rdi - 40ac1c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ac21: e8 ea af ff ff callq 405c10 <__gettext_free_exp> - 40ac26: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ac2b: 48 8b 78 10 mov 0x10(%rax),%rdi - 40ac2f: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ac34: e8 d7 af ff ff callq 405c10 <__gettext_free_exp> - 40ac39: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ac3e: 48 8b 78 08 mov 0x8(%rax),%rdi - 40ac42: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ac47: e8 c4 af ff ff callq 405c10 <__gettext_free_exp> - 40ac4c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ac51: 48 89 c7 mov %rax,%rdi - 40ac54: e8 57 31 01 00 callq 41ddb0 <__cfree> - 40ac59: e9 27 f3 ff ff jmpq 409f85 - 40ac5e: 66 90 xchg %ax,%ax - 40ac60: 48 8b 04 24 mov (%rsp),%rax - 40ac64: 48 8b 40 18 mov 0x18(%rax),%rax - 40ac68: 48 85 c0 test %rax,%rax - 40ac6b: 74 25 je 40ac92 - 40ac6d: 8b 10 mov (%rax),%edx - 40ac6f: 83 fa 02 cmp $0x2,%edx - 40ac72: 0f 84 1b 1e 00 00 je 40ca93 - 40ac78: 83 fa 03 cmp $0x3,%edx - 40ac7b: 0f 84 ff 1d 00 00 je 40ca80 - 40ac81: 83 fa 01 cmp $0x1,%edx - 40ac84: 0f 84 1c 1e 00 00 je 40caa6 - 40ac8a: 48 89 c7 mov %rax,%rdi - 40ac8d: e8 1e 31 01 00 callq 41ddb0 <__cfree> - 40ac92: 48 8b 04 24 mov (%rsp),%rax - 40ac96: 48 8b 40 10 mov 0x10(%rax),%rax - 40ac9a: 48 85 c0 test %rax,%rax - 40ac9d: 74 25 je 40acc4 - 40ac9f: 8b 10 mov (%rax),%edx - 40aca1: 83 fa 02 cmp $0x2,%edx - 40aca4: 0f 84 97 0a 00 00 je 40b741 - 40acaa: 83 fa 03 cmp $0x3,%edx - 40acad: 0f 84 7b 0a 00 00 je 40b72e - 40acb3: 83 fa 01 cmp $0x1,%edx - 40acb6: 0f 84 98 0a 00 00 je 40b754 - 40acbc: 48 89 c7 mov %rax,%rdi - 40acbf: e8 ec 30 01 00 callq 41ddb0 <__cfree> - 40acc4: 48 8b 04 24 mov (%rsp),%rax - 40acc8: 48 8b 40 08 mov 0x8(%rax),%rax - 40accc: 48 85 c0 test %rax,%rax - 40accf: 0f 84 2d f7 ff ff je 40a402 - 40acd5: 8b 10 mov (%rax),%edx - 40acd7: 83 fa 02 cmp $0x2,%edx - 40acda: 74 2f je 40ad0b - 40acdc: 83 fa 03 cmp $0x3,%edx - 40acdf: 74 17 je 40acf8 - 40ace1: 83 fa 01 cmp $0x1,%edx - 40ace4: 74 38 je 40ad1e - 40ace6: 48 89 c7 mov %rax,%rdi - 40ace9: e8 c2 30 01 00 callq 41ddb0 <__cfree> - 40acee: e9 0f f7 ff ff jmpq 40a402 - 40acf3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40acf8: 48 8b 78 18 mov 0x18(%rax),%rdi - 40acfc: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ad01: e8 0a af ff ff callq 405c10 <__gettext_free_exp> - 40ad06: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ad0b: 48 8b 78 10 mov 0x10(%rax),%rdi - 40ad0f: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ad14: e8 f7 ae ff ff callq 405c10 <__gettext_free_exp> - 40ad19: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ad1e: 48 8b 78 08 mov 0x8(%rax),%rdi - 40ad22: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ad27: e8 e4 ae ff ff callq 405c10 <__gettext_free_exp> - 40ad2c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ad31: 48 89 c7 mov %rax,%rdi - 40ad34: e8 77 30 01 00 callq 41ddb0 <__cfree> - 40ad39: e9 c4 f6 ff ff jmpq 40a402 - 40ad3e: 66 90 xchg %ax,%ax - 40ad40: 48 8b 04 24 mov (%rsp),%rax - 40ad44: 48 8b 40 18 mov 0x18(%rax),%rax - 40ad48: 48 85 c0 test %rax,%rax - 40ad4b: 74 25 je 40ad72 - 40ad4d: 8b 10 mov (%rax),%edx - 40ad4f: 83 fa 02 cmp $0x2,%edx - 40ad52: 0f 84 2b 1c 00 00 je 40c983 - 40ad58: 83 fa 03 cmp $0x3,%edx - 40ad5b: 0f 84 0f 1c 00 00 je 40c970 - 40ad61: 83 fa 01 cmp $0x1,%edx - 40ad64: 0f 84 2c 1c 00 00 je 40c996 - 40ad6a: 48 89 c7 mov %rax,%rdi - 40ad6d: e8 3e 30 01 00 callq 41ddb0 <__cfree> - 40ad72: 48 8b 04 24 mov (%rsp),%rax - 40ad76: 48 8b 40 10 mov 0x10(%rax),%rax - 40ad7a: 48 85 c0 test %rax,%rax - 40ad7d: 74 25 je 40ada4 - 40ad7f: 8b 10 mov (%rax),%edx - 40ad81: 83 fa 02 cmp $0x2,%edx - 40ad84: 0f 84 79 09 00 00 je 40b703 - 40ad8a: 83 fa 03 cmp $0x3,%edx - 40ad8d: 0f 84 5d 09 00 00 je 40b6f0 - 40ad93: 83 fa 01 cmp $0x1,%edx - 40ad96: 0f 84 7a 09 00 00 je 40b716 - 40ad9c: 48 89 c7 mov %rax,%rdi - 40ad9f: e8 0c 30 01 00 callq 41ddb0 <__cfree> - 40ada4: 48 8b 04 24 mov (%rsp),%rax - 40ada8: 48 8b 40 08 mov 0x8(%rax),%rax - 40adac: 48 85 c0 test %rax,%rax - 40adaf: 0f 84 37 ef ff ff je 409cec - 40adb5: 8b 10 mov (%rax),%edx - 40adb7: 83 fa 02 cmp $0x2,%edx - 40adba: 74 2f je 40adeb - 40adbc: 83 fa 03 cmp $0x3,%edx - 40adbf: 74 17 je 40add8 - 40adc1: 83 fa 01 cmp $0x1,%edx - 40adc4: 74 38 je 40adfe - 40adc6: 48 89 c7 mov %rax,%rdi - 40adc9: e8 e2 2f 01 00 callq 41ddb0 <__cfree> - 40adce: e9 19 ef ff ff jmpq 409cec - 40add3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40add8: 48 8b 78 18 mov 0x18(%rax),%rdi - 40addc: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ade1: e8 2a ae ff ff callq 405c10 <__gettext_free_exp> - 40ade6: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40adeb: 48 8b 78 10 mov 0x10(%rax),%rdi - 40adef: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40adf4: e8 17 ae ff ff callq 405c10 <__gettext_free_exp> - 40adf9: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40adfe: 48 8b 78 08 mov 0x8(%rax),%rdi - 40ae02: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ae07: e8 04 ae ff ff callq 405c10 <__gettext_free_exp> - 40ae0c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ae11: 48 89 c7 mov %rax,%rdi - 40ae14: e8 97 2f 01 00 callq 41ddb0 <__cfree> - 40ae19: e9 ce ee ff ff jmpq 409cec - 40ae1e: 66 90 xchg %ax,%ax - 40ae20: 49 8b 47 18 mov 0x18(%r15),%rax - 40ae24: 48 85 c0 test %rax,%rax - 40ae27: 74 25 je 40ae4e - 40ae29: 8b 10 mov (%rax),%edx - 40ae2b: 83 fa 02 cmp $0x2,%edx - 40ae2e: 0f 84 20 22 00 00 je 40d054 - 40ae34: 83 fa 03 cmp $0x3,%edx - 40ae37: 0f 84 06 22 00 00 je 40d043 - 40ae3d: 83 fa 01 cmp $0x1,%edx - 40ae40: 0f 84 1f 22 00 00 je 40d065 - 40ae46: 48 89 c7 mov %rax,%rdi - 40ae49: e8 62 2f 01 00 callq 41ddb0 <__cfree> - 40ae4e: 49 8b 47 10 mov 0x10(%r15),%rax - 40ae52: 48 85 c0 test %rax,%rax - 40ae55: 48 89 04 24 mov %rax,(%rsp) - 40ae59: 74 26 je 40ae81 - 40ae5b: 8b 00 mov (%rax),%eax - 40ae5d: 83 f8 02 cmp $0x2,%eax - 40ae60: 0f 84 ff 0a 00 00 je 40b965 - 40ae66: 83 f8 03 cmp $0x3,%eax - 40ae69: 0f 84 e9 0a 00 00 je 40b958 - 40ae6f: 83 f8 01 cmp $0x1,%eax - 40ae72: 0f 84 1f 0b 00 00 je 40b997 - 40ae78: 48 8b 3c 24 mov (%rsp),%rdi - 40ae7c: e8 2f 2f 01 00 callq 41ddb0 <__cfree> - 40ae81: 49 8b 47 08 mov 0x8(%r15),%rax - 40ae85: 48 85 c0 test %rax,%rax - 40ae88: 48 89 04 24 mov %rax,(%rsp) - 40ae8c: 0f 84 14 f2 ff ff je 40a0a6 - 40ae92: 8b 00 mov (%rax),%eax - 40ae94: 83 f8 02 cmp $0x2,%eax - 40ae97: 74 2c je 40aec5 - 40ae99: 83 f8 03 cmp $0x3,%eax - 40ae9c: 74 1a je 40aeb8 - 40ae9e: 83 f8 01 cmp $0x1,%eax - 40aea1: 74 54 je 40aef7 - 40aea3: 48 8b 3c 24 mov (%rsp),%rdi - 40aea7: e8 04 2f 01 00 callq 41ddb0 <__cfree> - 40aeac: e9 f5 f1 ff ff jmpq 40a0a6 - 40aeb1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40aeb8: 48 8b 04 24 mov (%rsp),%rax - 40aebc: 48 8b 78 18 mov 0x18(%rax),%rdi - 40aec0: e8 4b ad ff ff callq 405c10 <__gettext_free_exp> - 40aec5: 48 8b 04 24 mov (%rsp),%rax - 40aec9: 48 8b 40 10 mov 0x10(%rax),%rax - 40aecd: 48 85 c0 test %rax,%rax - 40aed0: 74 25 je 40aef7 - 40aed2: 8b 10 mov (%rax),%edx - 40aed4: 83 fa 02 cmp $0x2,%edx - 40aed7: 0f 84 e5 0f 00 00 je 40bec2 - 40aedd: 83 fa 03 cmp $0x3,%edx - 40aee0: 0f 84 c9 0f 00 00 je 40beaf - 40aee6: 83 fa 01 cmp $0x1,%edx - 40aee9: 0f 84 e6 0f 00 00 je 40bed5 - 40aeef: 48 89 c7 mov %rax,%rdi - 40aef2: e8 b9 2e 01 00 callq 41ddb0 <__cfree> - 40aef7: 48 8b 04 24 mov (%rsp),%rax - 40aefb: 48 8b 40 08 mov 0x8(%rax),%rax - 40aeff: 48 85 c0 test %rax,%rax - 40af02: 74 9f je 40aea3 - 40af04: 8b 10 mov (%rax),%edx - 40af06: 83 fa 02 cmp $0x2,%edx - 40af09: 0f 84 3a 07 00 00 je 40b649 - 40af0f: 83 fa 03 cmp $0x3,%edx - 40af12: 0f 84 1e 07 00 00 je 40b636 - 40af18: 83 fa 01 cmp $0x1,%edx - 40af1b: 0f 84 3b 07 00 00 je 40b65c - 40af21: 48 89 c7 mov %rax,%rdi - 40af24: e8 87 2e 01 00 callq 41ddb0 <__cfree> - 40af29: 48 8b 3c 24 mov (%rsp),%rdi - 40af2d: e8 7e 2e 01 00 callq 41ddb0 <__cfree> - 40af32: e9 6f f1 ff ff jmpq 40a0a6 - 40af37: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40af3e: 00 00 - 40af40: 49 8b 47 18 mov 0x18(%r15),%rax - 40af44: 48 85 c0 test %rax,%rax - 40af47: 74 25 je 40af6e - 40af49: 8b 10 mov (%rax),%edx - 40af4b: 83 fa 02 cmp $0x2,%edx - 40af4e: 0f 84 a8 21 00 00 je 40d0fc - 40af54: 83 fa 03 cmp $0x3,%edx - 40af57: 0f 84 8e 21 00 00 je 40d0eb - 40af5d: 83 fa 01 cmp $0x1,%edx - 40af60: 0f 84 a7 21 00 00 je 40d10d - 40af66: 48 89 c7 mov %rax,%rdi - 40af69: e8 42 2e 01 00 callq 41ddb0 <__cfree> - 40af6e: 49 8b 47 10 mov 0x10(%r15),%rax - 40af72: 48 85 c0 test %rax,%rax - 40af75: 48 89 04 24 mov %rax,(%rsp) - 40af79: 74 26 je 40afa1 - 40af7b: 8b 00 mov (%rax),%eax - 40af7d: 83 f8 02 cmp $0x2,%eax - 40af80: 0f 84 eb 08 00 00 je 40b871 - 40af86: 83 f8 03 cmp $0x3,%eax - 40af89: 0f 84 d5 08 00 00 je 40b864 - 40af8f: 83 f8 01 cmp $0x1,%eax - 40af92: 0f 84 0b 09 00 00 je 40b8a3 - 40af98: 48 8b 3c 24 mov (%rsp),%rdi - 40af9c: e8 0f 2e 01 00 callq 41ddb0 <__cfree> - 40afa1: 49 8b 47 08 mov 0x8(%r15),%rax - 40afa5: 48 85 c0 test %rax,%rax - 40afa8: 48 89 04 24 mov %rax,(%rsp) - 40afac: 0f 84 34 f3 ff ff je 40a2e6 - 40afb2: 8b 00 mov (%rax),%eax - 40afb4: 83 f8 02 cmp $0x2,%eax - 40afb7: 74 2c je 40afe5 - 40afb9: 83 f8 03 cmp $0x3,%eax - 40afbc: 74 1a je 40afd8 - 40afbe: 83 f8 01 cmp $0x1,%eax - 40afc1: 74 54 je 40b017 - 40afc3: 48 8b 3c 24 mov (%rsp),%rdi - 40afc7: e8 e4 2d 01 00 callq 41ddb0 <__cfree> - 40afcc: e9 15 f3 ff ff jmpq 40a2e6 - 40afd1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40afd8: 48 8b 04 24 mov (%rsp),%rax - 40afdc: 48 8b 78 18 mov 0x18(%rax),%rdi - 40afe0: e8 2b ac ff ff callq 405c10 <__gettext_free_exp> - 40afe5: 48 8b 04 24 mov (%rsp),%rax - 40afe9: 48 8b 40 10 mov 0x10(%rax),%rax - 40afed: 48 85 c0 test %rax,%rax - 40aff0: 74 25 je 40b017 - 40aff2: 8b 10 mov (%rax),%edx - 40aff4: 83 fa 02 cmp $0x2,%edx - 40aff7: 0f 84 7f 0f 00 00 je 40bf7c - 40affd: 83 fa 03 cmp $0x3,%edx - 40b000: 0f 84 63 0f 00 00 je 40bf69 - 40b006: 83 fa 01 cmp $0x1,%edx - 40b009: 0f 84 80 0f 00 00 je 40bf8f - 40b00f: 48 89 c7 mov %rax,%rdi - 40b012: e8 99 2d 01 00 callq 41ddb0 <__cfree> - 40b017: 48 8b 04 24 mov (%rsp),%rax - 40b01b: 48 8b 40 08 mov 0x8(%rax),%rax - 40b01f: 48 85 c0 test %rax,%rax - 40b022: 74 9f je 40afc3 - 40b024: 8b 10 mov (%rax),%edx - 40b026: 83 fa 02 cmp $0x2,%edx - 40b029: 0f 84 96 06 00 00 je 40b6c5 - 40b02f: 83 fa 03 cmp $0x3,%edx - 40b032: 0f 84 7a 06 00 00 je 40b6b2 - 40b038: 83 fa 01 cmp $0x1,%edx - 40b03b: 0f 84 97 06 00 00 je 40b6d8 - 40b041: 48 89 c7 mov %rax,%rdi - 40b044: e8 67 2d 01 00 callq 41ddb0 <__cfree> - 40b049: 48 8b 3c 24 mov (%rsp),%rdi - 40b04d: e8 5e 2d 01 00 callq 41ddb0 <__cfree> - 40b052: e9 8f f2 ff ff jmpq 40a2e6 - 40b057: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40b05e: 00 00 - 40b060: 49 8b 47 18 mov 0x18(%r15),%rax - 40b064: 48 85 c0 test %rax,%rax - 40b067: 74 25 je 40b08e - 40b069: 8b 10 mov (%rax),%edx - 40b06b: 83 fa 02 cmp $0x2,%edx - 40b06e: 0f 84 c5 1e 00 00 je 40cf39 - 40b074: 83 fa 03 cmp $0x3,%edx - 40b077: 0f 84 ab 1e 00 00 je 40cf28 - 40b07d: 83 fa 01 cmp $0x1,%edx - 40b080: 0f 84 c4 1e 00 00 je 40cf4a - 40b086: 48 89 c7 mov %rax,%rdi - 40b089: e8 22 2d 01 00 callq 41ddb0 <__cfree> - 40b08e: 49 8b 47 10 mov 0x10(%r15),%rax - 40b092: 48 85 c0 test %rax,%rax - 40b095: 48 89 04 24 mov %rax,(%rsp) - 40b099: 74 26 je 40b0c1 - 40b09b: 8b 00 mov (%rax),%eax - 40b09d: 83 f8 02 cmp $0x2,%eax - 40b0a0: 0f 84 39 09 00 00 je 40b9df - 40b0a6: 83 f8 03 cmp $0x3,%eax - 40b0a9: 0f 84 23 09 00 00 je 40b9d2 - 40b0af: 83 f8 01 cmp $0x1,%eax - 40b0b2: 0f 84 59 09 00 00 je 40ba11 - 40b0b8: 48 8b 3c 24 mov (%rsp),%rdi - 40b0bc: e8 ef 2c 01 00 callq 41ddb0 <__cfree> - 40b0c1: 49 8b 47 08 mov 0x8(%r15),%rax - 40b0c5: 48 85 c0 test %rax,%rax - 40b0c8: 48 89 04 24 mov %rax,(%rsp) - 40b0cc: 0f 84 ff ec ff ff je 409dd1 - 40b0d2: 8b 00 mov (%rax),%eax - 40b0d4: 83 f8 02 cmp $0x2,%eax - 40b0d7: 74 2c je 40b105 - 40b0d9: 83 f8 03 cmp $0x3,%eax - 40b0dc: 74 1a je 40b0f8 - 40b0de: 83 f8 01 cmp $0x1,%eax - 40b0e1: 74 54 je 40b137 - 40b0e3: 48 8b 3c 24 mov (%rsp),%rdi - 40b0e7: e8 c4 2c 01 00 callq 41ddb0 <__cfree> - 40b0ec: e9 e0 ec ff ff jmpq 409dd1 - 40b0f1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40b0f8: 48 8b 04 24 mov (%rsp),%rax - 40b0fc: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b100: e8 0b ab ff ff callq 405c10 <__gettext_free_exp> - 40b105: 48 8b 04 24 mov (%rsp),%rax - 40b109: 48 8b 40 10 mov 0x10(%rax),%rax - 40b10d: 48 85 c0 test %rax,%rax - 40b110: 74 25 je 40b137 - 40b112: 8b 10 mov (%rax),%edx - 40b114: 83 fa 02 cmp $0x2,%edx - 40b117: 0f 84 21 0e 00 00 je 40bf3e - 40b11d: 83 fa 03 cmp $0x3,%edx - 40b120: 0f 84 05 0e 00 00 je 40bf2b - 40b126: 83 fa 01 cmp $0x1,%edx - 40b129: 0f 84 22 0e 00 00 je 40bf51 - 40b12f: 48 89 c7 mov %rax,%rdi - 40b132: e8 79 2c 01 00 callq 41ddb0 <__cfree> - 40b137: 48 8b 04 24 mov (%rsp),%rax - 40b13b: 48 8b 40 08 mov 0x8(%rax),%rax - 40b13f: 48 85 c0 test %rax,%rax - 40b142: 74 9f je 40b0e3 - 40b144: 8b 10 mov (%rax),%edx - 40b146: 83 fa 02 cmp $0x2,%edx - 40b149: 0f 84 38 05 00 00 je 40b687 - 40b14f: 83 fa 03 cmp $0x3,%edx - 40b152: 0f 84 1c 05 00 00 je 40b674 - 40b158: 83 fa 01 cmp $0x1,%edx - 40b15b: 0f 84 39 05 00 00 je 40b69a - 40b161: 48 89 c7 mov %rax,%rdi - 40b164: e8 47 2c 01 00 callq 41ddb0 <__cfree> - 40b169: 48 8b 3c 24 mov (%rsp),%rdi - 40b16d: e8 3e 2c 01 00 callq 41ddb0 <__cfree> - 40b172: e9 5a ec ff ff jmpq 409dd1 - 40b177: 48 8b 04 24 mov (%rsp),%rax - 40b17b: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b17f: e8 8c aa ff ff callq 405c10 <__gettext_free_exp> - 40b184: 48 8b 04 24 mov (%rsp),%rax - 40b188: 48 8b 40 10 mov 0x10(%rax),%rax - 40b18c: 48 85 c0 test %rax,%rax - 40b18f: 74 25 je 40b1b6 - 40b191: 8b 10 mov (%rax),%edx - 40b193: 83 fa 02 cmp $0x2,%edx - 40b196: 0f 84 b9 18 00 00 je 40ca55 - 40b19c: 83 fa 03 cmp $0x3,%edx - 40b19f: 0f 84 9d 18 00 00 je 40ca42 - 40b1a5: 83 fa 01 cmp $0x1,%edx - 40b1a8: 0f 84 ba 18 00 00 je 40ca68 - 40b1ae: 48 89 c7 mov %rax,%rdi - 40b1b1: e8 fa 2b 01 00 callq 41ddb0 <__cfree> - 40b1b6: 48 8b 04 24 mov (%rsp),%rax - 40b1ba: 48 8b 40 08 mov 0x8(%rax),%rax - 40b1be: 48 85 c0 test %rax,%rax - 40b1c1: 0f 84 8b ed ff ff je 409f52 - 40b1c7: 8b 10 mov (%rax),%edx - 40b1c9: 83 fa 02 cmp $0x2,%edx - 40b1cc: 0f 84 c7 0f 00 00 je 40c199 - 40b1d2: 83 fa 03 cmp $0x3,%edx - 40b1d5: 0f 84 ab 0f 00 00 je 40c186 - 40b1db: 83 fa 01 cmp $0x1,%edx - 40b1de: 0f 84 c8 0f 00 00 je 40c1ac - 40b1e4: 48 89 c7 mov %rax,%rdi - 40b1e7: e8 c4 2b 01 00 callq 41ddb0 <__cfree> - 40b1ec: e9 61 ed ff ff jmpq 409f52 - 40b1f1: 48 8b 04 24 mov (%rsp),%rax - 40b1f5: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b1f9: e8 12 aa ff ff callq 405c10 <__gettext_free_exp> - 40b1fe: 48 8b 04 24 mov (%rsp),%rax - 40b202: 48 8b 40 10 mov 0x10(%rax),%rax - 40b206: 48 85 c0 test %rax,%rax - 40b209: 74 25 je 40b230 - 40b20b: 8b 10 mov (%rax),%edx - 40b20d: 83 fa 02 cmp $0x2,%edx - 40b210: 0f 84 2f 17 00 00 je 40c945 - 40b216: 83 fa 03 cmp $0x3,%edx - 40b219: 0f 84 13 17 00 00 je 40c932 - 40b21f: 83 fa 01 cmp $0x1,%edx - 40b222: 0f 84 30 17 00 00 je 40c958 - 40b228: 48 89 c7 mov %rax,%rdi - 40b22b: e8 80 2b 01 00 callq 41ddb0 <__cfree> - 40b230: 48 8b 04 24 mov (%rsp),%rax - 40b234: 48 8b 40 08 mov 0x8(%rax),%rax - 40b238: 48 85 c0 test %rax,%rax - 40b23b: 0f 84 00 f0 ff ff je 40a241 - 40b241: 8b 10 mov (%rax),%edx - 40b243: 83 fa 02 cmp $0x2,%edx - 40b246: 0f 84 c9 0f 00 00 je 40c215 - 40b24c: 83 fa 03 cmp $0x3,%edx - 40b24f: 0f 84 ad 0f 00 00 je 40c202 - 40b255: 83 fa 01 cmp $0x1,%edx - 40b258: 0f 84 ca 0f 00 00 je 40c228 - 40b25e: 48 89 c7 mov %rax,%rdi - 40b261: e8 4a 2b 01 00 callq 41ddb0 <__cfree> - 40b266: e9 d6 ef ff ff jmpq 40a241 - 40b26b: 48 8b 04 24 mov (%rsp),%rax - 40b26f: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b273: e8 98 a9 ff ff callq 405c10 <__gettext_free_exp> - 40b278: 48 8b 04 24 mov (%rsp),%rax - 40b27c: 48 8b 40 10 mov 0x10(%rax),%rax - 40b280: 48 85 c0 test %rax,%rax - 40b283: 74 25 je 40b2aa - 40b285: 8b 10 mov (%rax),%edx - 40b287: 83 fa 02 cmp $0x2,%edx - 40b28a: 0f 84 d5 18 00 00 je 40cb65 - 40b290: 83 fa 03 cmp $0x3,%edx - 40b293: 0f 84 b9 18 00 00 je 40cb52 - 40b299: 83 fa 01 cmp $0x1,%edx - 40b29c: 0f 84 d6 18 00 00 je 40cb78 - 40b2a2: 48 89 c7 mov %rax,%rdi - 40b2a5: e8 06 2b 01 00 callq 41ddb0 <__cfree> - 40b2aa: 48 8b 04 24 mov (%rsp),%rax - 40b2ae: 48 8b 40 08 mov 0x8(%rax),%rax - 40b2b2: 48 85 c0 test %rax,%rax - 40b2b5: 0f 84 ca f7 ff ff je 40aa85 - 40b2bb: 8b 10 mov (%rax),%edx - 40b2bd: 83 fa 02 cmp $0x2,%edx - 40b2c0: 0f 84 8d 0f 00 00 je 40c253 - 40b2c6: 83 fa 03 cmp $0x3,%edx - 40b2c9: 0f 84 71 0f 00 00 je 40c240 - 40b2cf: 83 fa 01 cmp $0x1,%edx - 40b2d2: 0f 84 8e 0f 00 00 je 40c266 - 40b2d8: 48 89 c7 mov %rax,%rdi - 40b2db: e8 d0 2a 01 00 callq 41ddb0 <__cfree> - 40b2e0: e9 a0 f7 ff ff jmpq 40aa85 - 40b2e5: 48 8b 04 24 mov (%rsp),%rax - 40b2e9: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b2ed: e8 1e a9 ff ff callq 405c10 <__gettext_free_exp> - 40b2f2: 48 8b 04 24 mov (%rsp),%rax - 40b2f6: 48 8b 40 10 mov 0x10(%rax),%rax - 40b2fa: 48 85 c0 test %rax,%rax - 40b2fd: 74 25 je 40b324 - 40b2ff: 8b 10 mov (%rax),%edx - 40b301: 83 fa 02 cmp $0x2,%edx - 40b304: 0f 84 99 18 00 00 je 40cba3 - 40b30a: 83 fa 03 cmp $0x3,%edx - 40b30d: 0f 84 7d 18 00 00 je 40cb90 - 40b313: 83 fa 01 cmp $0x1,%edx - 40b316: 0f 84 9a 18 00 00 je 40cbb6 - 40b31c: 48 89 c7 mov %rax,%rdi - 40b31f: e8 8c 2a 01 00 callq 41ddb0 <__cfree> - 40b324: 48 8b 04 24 mov (%rsp),%rax - 40b328: 48 8b 40 08 mov 0x8(%rax),%rax - 40b32c: 48 85 c0 test %rax,%rax - 40b32f: 0f 84 10 f6 ff ff je 40a945 - 40b335: 8b 10 mov (%rax),%edx - 40b337: 83 fa 02 cmp $0x2,%edx - 40b33a: 0f 84 97 0e 00 00 je 40c1d7 - 40b340: 83 fa 03 cmp $0x3,%edx - 40b343: 0f 84 7b 0e 00 00 je 40c1c4 - 40b349: 83 fa 01 cmp $0x1,%edx - 40b34c: 0f 84 98 0e 00 00 je 40c1ea - 40b352: 48 89 c7 mov %rax,%rdi - 40b355: e8 56 2a 01 00 callq 41ddb0 <__cfree> - 40b35a: e9 e6 f5 ff ff jmpq 40a945 - 40b35f: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40b363: e8 a8 a8 ff ff callq 405c10 <__gettext_free_exp> - 40b368: 49 8b 47 10 mov 0x10(%r15),%rax - 40b36c: 48 85 c0 test %rax,%rax - 40b36f: 74 25 je 40b396 - 40b371: 8b 10 mov (%rax),%edx - 40b373: 83 fa 02 cmp $0x2,%edx - 40b376: 0f 84 85 1b 00 00 je 40cf01 - 40b37c: 83 fa 03 cmp $0x3,%edx - 40b37f: 0f 84 6b 1b 00 00 je 40cef0 - 40b385: 83 fa 01 cmp $0x1,%edx - 40b388: 0f 84 84 1b 00 00 je 40cf12 - 40b38e: 48 89 c7 mov %rax,%rdi - 40b391: e8 1a 2a 01 00 callq 41ddb0 <__cfree> - 40b396: 49 8b 47 08 mov 0x8(%r15),%rax - 40b39a: 48 85 c0 test %rax,%rax - 40b39d: 0f 84 13 f6 ff ff je 40a9b6 - 40b3a3: 8b 10 mov (%rax),%edx - 40b3a5: 83 fa 02 cmp $0x2,%edx - 40b3a8: 0f 84 04 10 00 00 je 40c3b2 - 40b3ae: 83 fa 03 cmp $0x3,%edx - 40b3b1: 0f 84 ea 0f 00 00 je 40c3a1 - 40b3b7: 83 fa 01 cmp $0x1,%edx - 40b3ba: 0f 84 03 10 00 00 je 40c3c3 - 40b3c0: 48 89 c7 mov %rax,%rdi - 40b3c3: e8 e8 29 01 00 callq 41ddb0 <__cfree> - 40b3c8: e9 e9 f5 ff ff jmpq 40a9b6 - 40b3cd: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40b3d1: e8 3a a8 ff ff callq 405c10 <__gettext_free_exp> - 40b3d6: 49 8b 47 10 mov 0x10(%r15),%rax - 40b3da: 48 85 c0 test %rax,%rax - 40b3dd: 74 25 je 40b404 - 40b3df: 8b 10 mov (%rax),%edx - 40b3e1: 83 fa 02 cmp $0x2,%edx - 40b3e4: 0f 84 a7 1a 00 00 je 40ce91 - 40b3ea: 83 fa 03 cmp $0x3,%edx - 40b3ed: 0f 84 8d 1a 00 00 je 40ce80 - 40b3f3: 83 fa 01 cmp $0x1,%edx - 40b3f6: 0f 84 a6 1a 00 00 je 40cea2 - 40b3fc: 48 89 c7 mov %rax,%rdi - 40b3ff: e8 ac 29 01 00 callq 41ddb0 <__cfree> - 40b404: 49 8b 47 08 mov 0x8(%r15),%rax - 40b408: 48 85 c0 test %rax,%rax - 40b40b: 0f 84 c1 ea ff ff je 409ed2 - 40b411: 8b 10 mov (%rax),%edx - 40b413: 83 fa 02 cmp $0x2,%edx - 40b416: 0f 84 35 0f 00 00 je 40c351 - 40b41c: 83 fa 03 cmp $0x3,%edx - 40b41f: 0f 84 1b 0f 00 00 je 40c340 - 40b425: 83 fa 01 cmp $0x1,%edx - 40b428: 0f 84 34 0f 00 00 je 40c362 - 40b42e: 48 89 c7 mov %rax,%rdi - 40b431: e8 7a 29 01 00 callq 41ddb0 <__cfree> - 40b436: e9 97 ea ff ff jmpq 409ed2 - 40b43b: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40b43f: e8 cc a7 ff ff callq 405c10 <__gettext_free_exp> - 40b444: 49 8b 47 10 mov 0x10(%r15),%rax - 40b448: 48 85 c0 test %rax,%rax - 40b44b: 74 25 je 40b472 - 40b44d: 8b 10 mov (%rax),%edx - 40b44f: 83 fa 02 cmp $0x2,%edx - 40b452: 0f 84 14 1d 00 00 je 40d16c - 40b458: 83 fa 03 cmp $0x3,%edx - 40b45b: 0f 84 fa 1c 00 00 je 40d15b - 40b461: 83 fa 01 cmp $0x1,%edx - 40b464: 0f 84 13 1d 00 00 je 40d17d - 40b46a: 48 89 c7 mov %rax,%rdi - 40b46d: e8 3e 29 01 00 callq 41ddb0 <__cfree> - 40b472: 49 8b 47 08 mov 0x8(%r15),%rax - 40b476: 48 85 c0 test %rax,%rax - 40b479: 0f 84 12 f0 ff ff je 40a491 - 40b47f: 8b 10 mov (%rax),%edx - 40b481: 83 fa 02 cmp $0x2,%edx - 40b484: 0f 84 05 0e 00 00 je 40c28f - 40b48a: 83 fa 03 cmp $0x3,%edx - 40b48d: 0f 84 eb 0d 00 00 je 40c27e - 40b493: 83 fa 01 cmp $0x1,%edx - 40b496: 0f 84 04 0e 00 00 je 40c2a0 - 40b49c: 48 89 c7 mov %rax,%rdi - 40b49f: e8 0c 29 01 00 callq 41ddb0 <__cfree> - 40b4a4: e9 e8 ef ff ff jmpq 40a491 - 40b4a9: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40b4ad: e8 5e a7 ff ff callq 405c10 <__gettext_free_exp> - 40b4b2: 49 8b 47 10 mov 0x10(%r15),%rax - 40b4b6: 48 85 c0 test %rax,%rax - 40b4b9: 74 25 je 40b4e0 - 40b4bb: 8b 10 mov (%rax),%edx - 40b4bd: 83 fa 02 cmp $0x2,%edx - 40b4c0: 0f 84 6e 1c 00 00 je 40d134 - 40b4c6: 83 fa 03 cmp $0x3,%edx - 40b4c9: 0f 84 54 1c 00 00 je 40d123 - 40b4cf: 83 fa 01 cmp $0x1,%edx - 40b4d2: 0f 84 6d 1c 00 00 je 40d145 - 40b4d8: 48 89 c7 mov %rax,%rdi - 40b4db: e8 d0 28 01 00 callq 41ddb0 <__cfree> - 40b4e0: 49 8b 47 08 mov 0x8(%r15),%rax - 40b4e4: 48 85 c0 test %rax,%rax - 40b4e7: 0f 84 ca ed ff ff je 40a2b7 - 40b4ed: 8b 10 mov (%rax),%edx - 40b4ef: 83 fa 02 cmp $0x2,%edx - 40b4f2: 0f 84 1b 0f 00 00 je 40c413 - 40b4f8: 83 fa 03 cmp $0x3,%edx - 40b4fb: 0f 84 01 0f 00 00 je 40c402 - 40b501: 83 fa 01 cmp $0x1,%edx - 40b504: 0f 84 1a 0f 00 00 je 40c424 - 40b50a: 48 89 c7 mov %rax,%rdi - 40b50d: e8 9e 28 01 00 callq 41ddb0 <__cfree> - 40b512: e9 a0 ed ff ff jmpq 40a2b7 - 40b517: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40b51b: e8 f0 a6 ff ff callq 405c10 <__gettext_free_exp> - 40b520: 49 8b 47 10 mov 0x10(%r15),%rax - 40b524: 48 85 c0 test %rax,%rax - 40b527: 74 25 je 40b54e - 40b529: 8b 10 mov (%rax),%edx - 40b52b: 83 fa 02 cmp $0x2,%edx - 40b52e: 0f 84 25 19 00 00 je 40ce59 - 40b534: 83 fa 03 cmp $0x3,%edx - 40b537: 0f 84 0b 19 00 00 je 40ce48 - 40b53d: 83 fa 01 cmp $0x1,%edx - 40b540: 0f 84 24 19 00 00 je 40ce6a - 40b546: 48 89 c7 mov %rax,%rdi - 40b549: e8 62 28 01 00 callq 41ddb0 <__cfree> - 40b54e: 49 8b 47 08 mov 0x8(%r15),%rax - 40b552: 48 85 c0 test %rax,%rax - 40b555: 0f 84 1b f3 ff ff je 40a876 - 40b55b: 8b 10 mov (%rax),%edx - 40b55d: 83 fa 02 cmp $0x2,%edx - 40b560: 0f 84 8a 0d 00 00 je 40c2f0 - 40b566: 83 fa 03 cmp $0x3,%edx - 40b569: 0f 84 70 0d 00 00 je 40c2df - 40b56f: 83 fa 01 cmp $0x1,%edx - 40b572: 0f 84 89 0d 00 00 je 40c301 - 40b578: 48 89 c7 mov %rax,%rdi - 40b57b: e8 30 28 01 00 callq 41ddb0 <__cfree> - 40b580: e9 f1 f2 ff ff jmpq 40a876 - 40b585: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40b589: e8 82 a6 ff ff callq 405c10 <__gettext_free_exp> - 40b58e: 49 8b 47 10 mov 0x10(%r15),%rax - 40b592: 48 85 c0 test %rax,%rax - 40b595: 74 25 je 40b5bc - 40b597: 8b 10 mov (%rax),%edx - 40b599: 83 fa 02 cmp $0x2,%edx - 40b59c: 0f 84 27 19 00 00 je 40cec9 - 40b5a2: 83 fa 03 cmp $0x3,%edx - 40b5a5: 0f 84 0d 19 00 00 je 40ceb8 - 40b5ab: 83 fa 01 cmp $0x1,%edx - 40b5ae: 0f 84 26 19 00 00 je 40ceda - 40b5b4: 48 89 c7 mov %rax,%rdi - 40b5b7: e8 f4 27 01 00 callq 41ddb0 <__cfree> - 40b5bc: 49 8b 47 08 mov 0x8(%r15),%rax - 40b5c0: 48 85 c0 test %rax,%rax - 40b5c3: 48 89 04 24 mov %rax,(%rsp) - 40b5c7: 0f 84 aa ea ff ff je 40a077 - 40b5cd: 8b 00 mov (%rax),%eax - 40b5cf: 83 f8 02 cmp $0x2,%eax - 40b5d2: 0f 84 cd 19 00 00 je 40cfa5 - 40b5d8: 83 f8 03 cmp $0x3,%eax - 40b5db: 0f 84 b7 19 00 00 je 40cf98 - 40b5e1: 83 f8 01 cmp $0x1,%eax - 40b5e4: 0f 84 ba 0e 00 00 je 40c4a4 - 40b5ea: 48 8b 3c 24 mov (%rsp),%rdi - 40b5ee: e8 bd 27 01 00 callq 41ddb0 <__cfree> - 40b5f3: e9 7f ea ff ff jmpq 40a077 - 40b5f8: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b5fc: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b601: e8 0a a6 ff ff callq 405c10 <__gettext_free_exp> - 40b606: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b60b: 48 8b 78 10 mov 0x10(%rax),%rdi - 40b60f: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b614: e8 f7 a5 ff ff callq 405c10 <__gettext_free_exp> - 40b619: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b61e: 48 8b 78 08 mov 0x8(%rax),%rdi - 40b622: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b627: e8 e4 a5 ff ff callq 405c10 <__gettext_free_exp> - 40b62c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b631: e9 7b e6 ff ff jmpq 409cb1 - 40b636: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b63a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b63f: e8 cc a5 ff ff callq 405c10 <__gettext_free_exp> - 40b644: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b649: 48 8b 78 10 mov 0x10(%rax),%rdi - 40b64d: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b652: e8 b9 a5 ff ff callq 405c10 <__gettext_free_exp> - 40b657: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b65c: 48 8b 78 08 mov 0x8(%rax),%rdi - 40b660: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b665: e8 a6 a5 ff ff callq 405c10 <__gettext_free_exp> - 40b66a: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b66f: e9 ad f8 ff ff jmpq 40af21 - 40b674: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b678: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b67d: e8 8e a5 ff ff callq 405c10 <__gettext_free_exp> - 40b682: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b687: 48 8b 78 10 mov 0x10(%rax),%rdi - 40b68b: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b690: e8 7b a5 ff ff callq 405c10 <__gettext_free_exp> - 40b695: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b69a: 48 8b 78 08 mov 0x8(%rax),%rdi - 40b69e: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b6a3: e8 68 a5 ff ff callq 405c10 <__gettext_free_exp> - 40b6a8: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b6ad: e9 af fa ff ff jmpq 40b161 - 40b6b2: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b6b6: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b6bb: e8 50 a5 ff ff callq 405c10 <__gettext_free_exp> - 40b6c0: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b6c5: 48 8b 78 10 mov 0x10(%rax),%rdi - 40b6c9: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b6ce: e8 3d a5 ff ff callq 405c10 <__gettext_free_exp> - 40b6d3: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b6d8: 48 8b 78 08 mov 0x8(%rax),%rdi - 40b6dc: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b6e1: e8 2a a5 ff ff callq 405c10 <__gettext_free_exp> - 40b6e6: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b6eb: e9 51 f9 ff ff jmpq 40b041 - 40b6f0: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b6f4: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b6f9: e8 12 a5 ff ff callq 405c10 <__gettext_free_exp> - 40b6fe: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b703: 48 8b 78 10 mov 0x10(%rax),%rdi - 40b707: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b70c: e8 ff a4 ff ff callq 405c10 <__gettext_free_exp> - 40b711: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b716: 48 8b 78 08 mov 0x8(%rax),%rdi - 40b71a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b71f: e8 ec a4 ff ff callq 405c10 <__gettext_free_exp> - 40b724: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b729: e9 6e f6 ff ff jmpq 40ad9c - 40b72e: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b732: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b737: e8 d4 a4 ff ff callq 405c10 <__gettext_free_exp> - 40b73c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b741: 48 8b 78 10 mov 0x10(%rax),%rdi - 40b745: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b74a: e8 c1 a4 ff ff callq 405c10 <__gettext_free_exp> - 40b74f: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b754: 48 8b 78 08 mov 0x8(%rax),%rdi - 40b758: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b75d: e8 ae a4 ff ff callq 405c10 <__gettext_free_exp> - 40b762: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b767: e9 50 f5 ff ff jmpq 40acbc - 40b76c: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b770: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b775: e8 96 a4 ff ff callq 405c10 <__gettext_free_exp> - 40b77a: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b77f: 48 8b 78 10 mov 0x10(%rax),%rdi - 40b783: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b788: e8 83 a4 ff ff callq 405c10 <__gettext_free_exp> - 40b78d: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b792: 48 8b 78 08 mov 0x8(%rax),%rdi - 40b796: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b79b: e8 70 a4 ff ff callq 405c10 <__gettext_free_exp> - 40b7a0: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b7a5: e9 32 f4 ff ff jmpq 40abdc - 40b7aa: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b7ae: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b7b3: e8 58 a4 ff ff callq 405c10 <__gettext_free_exp> - 40b7b8: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b7bd: 48 8b 78 10 mov 0x10(%rax),%rdi - 40b7c1: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b7c6: e8 45 a4 ff ff callq 405c10 <__gettext_free_exp> - 40b7cb: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b7d0: 48 8b 78 08 mov 0x8(%rax),%rdi - 40b7d4: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b7d9: e8 32 a4 ff ff callq 405c10 <__gettext_free_exp> - 40b7de: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b7e3: e9 71 e9 ff ff jmpq 40a159 - 40b7e8: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b7ec: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b7f1: e8 1a a4 ff ff callq 405c10 <__gettext_free_exp> - 40b7f6: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b7fb: 48 8b 78 10 mov 0x10(%rax),%rdi - 40b7ff: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b804: e8 07 a4 ff ff callq 405c10 <__gettext_free_exp> - 40b809: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b80e: 48 8b 78 08 mov 0x8(%rax),%rdi - 40b812: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b817: e8 f4 a3 ff ff callq 405c10 <__gettext_free_exp> - 40b81c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b821: e9 9d eb ff ff jmpq 40a3c3 - 40b826: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b82a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b82f: e8 dc a3 ff ff callq 405c10 <__gettext_free_exp> - 40b834: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b839: 48 8b 78 10 mov 0x10(%rax),%rdi - 40b83d: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b842: e8 c9 a3 ff ff callq 405c10 <__gettext_free_exp> - 40b847: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b84c: 48 8b 78 08 mov 0x8(%rax),%rdi - 40b850: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40b855: e8 b6 a3 ff ff callq 405c10 <__gettext_free_exp> - 40b85a: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40b85f: e9 98 f2 ff ff jmpq 40aafc - 40b864: 48 8b 04 24 mov (%rsp),%rax - 40b868: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b86c: e8 9f a3 ff ff callq 405c10 <__gettext_free_exp> - 40b871: 48 8b 04 24 mov (%rsp),%rax - 40b875: 48 8b 40 10 mov 0x10(%rax),%rax - 40b879: 48 85 c0 test %rax,%rax - 40b87c: 74 25 je 40b8a3 - 40b87e: 8b 10 mov (%rax),%edx - 40b880: 83 fa 02 cmp $0x2,%edx - 40b883: 0f 84 d0 07 00 00 je 40c059 - 40b889: 83 fa 03 cmp $0x3,%edx - 40b88c: 0f 84 b4 07 00 00 je 40c046 - 40b892: 83 fa 01 cmp $0x1,%edx - 40b895: 0f 84 d1 07 00 00 je 40c06c - 40b89b: 48 89 c7 mov %rax,%rdi - 40b89e: e8 0d 25 01 00 callq 41ddb0 <__cfree> - 40b8a3: 48 8b 04 24 mov (%rsp),%rax - 40b8a7: 48 8b 40 08 mov 0x8(%rax),%rax - 40b8ab: 48 85 c0 test %rax,%rax - 40b8ae: 0f 84 e4 f6 ff ff je 40af98 - 40b8b4: 8b 10 mov (%rax),%edx - 40b8b6: 83 fa 02 cmp $0x2,%edx - 40b8b9: 0f 84 ed 0c 00 00 je 40c5ac - 40b8bf: 83 fa 03 cmp $0x3,%edx - 40b8c2: 0f 84 d1 0c 00 00 je 40c599 - 40b8c8: 83 fa 01 cmp $0x1,%edx - 40b8cb: 0f 84 ee 0c 00 00 je 40c5bf - 40b8d1: 48 89 c7 mov %rax,%rdi - 40b8d4: e8 d7 24 01 00 callq 41ddb0 <__cfree> - 40b8d9: e9 ba f6 ff ff jmpq 40af98 - 40b8de: 48 8b 04 24 mov (%rsp),%rax - 40b8e2: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b8e6: e8 25 a3 ff ff callq 405c10 <__gettext_free_exp> - 40b8eb: 48 8b 04 24 mov (%rsp),%rax - 40b8ef: 48 8b 40 10 mov 0x10(%rax),%rax - 40b8f3: 48 85 c0 test %rax,%rax - 40b8f6: 74 25 je 40b91d - 40b8f8: 8b 10 mov (%rax),%edx - 40b8fa: 83 fa 02 cmp $0x2,%edx - 40b8fd: 0f 84 fa 07 00 00 je 40c0fd - 40b903: 83 fa 03 cmp $0x3,%edx - 40b906: 0f 84 de 07 00 00 je 40c0ea - 40b90c: 83 fa 01 cmp $0x1,%edx - 40b90f: 0f 84 fb 07 00 00 je 40c110 - 40b915: 48 89 c7 mov %rax,%rdi - 40b918: e8 93 24 01 00 callq 41ddb0 <__cfree> - 40b91d: 48 8b 04 24 mov (%rsp),%rax - 40b921: 48 8b 40 08 mov 0x8(%rax),%rax - 40b925: 48 85 c0 test %rax,%rax - 40b928: 0f 84 6b e4 ff ff je 409d99 - 40b92e: 8b 10 mov (%rax),%edx - 40b930: 83 fa 02 cmp $0x2,%edx - 40b933: 0f 84 b9 0b 00 00 je 40c4f2 - 40b939: 83 fa 03 cmp $0x3,%edx - 40b93c: 0f 84 9d 0b 00 00 je 40c4df - 40b942: 83 fa 01 cmp $0x1,%edx - 40b945: 0f 84 ba 0b 00 00 je 40c505 - 40b94b: 48 89 c7 mov %rax,%rdi - 40b94e: e8 5d 24 01 00 callq 41ddb0 <__cfree> - 40b953: e9 41 e4 ff ff jmpq 409d99 - 40b958: 48 8b 04 24 mov (%rsp),%rax - 40b95c: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b960: e8 ab a2 ff ff callq 405c10 <__gettext_free_exp> - 40b965: 48 8b 04 24 mov (%rsp),%rax - 40b969: 48 8b 40 10 mov 0x10(%rax),%rax - 40b96d: 48 85 c0 test %rax,%rax - 40b970: 74 25 je 40b997 - 40b972: 8b 10 mov (%rax),%edx - 40b974: 83 fa 02 cmp $0x2,%edx - 40b977: 0f 84 9e 06 00 00 je 40c01b - 40b97d: 83 fa 03 cmp $0x3,%edx - 40b980: 0f 84 82 06 00 00 je 40c008 - 40b986: 83 fa 01 cmp $0x1,%edx - 40b989: 0f 84 9f 06 00 00 je 40c02e - 40b98f: 48 89 c7 mov %rax,%rdi - 40b992: e8 19 24 01 00 callq 41ddb0 <__cfree> - 40b997: 48 8b 04 24 mov (%rsp),%rax - 40b99b: 48 8b 40 08 mov 0x8(%rax),%rax - 40b99f: 48 85 c0 test %rax,%rax - 40b9a2: 0f 84 d0 f4 ff ff je 40ae78 - 40b9a8: 8b 10 mov (%rax),%edx - 40b9aa: 83 fa 02 cmp $0x2,%edx - 40b9ad: 0f 84 7d 0b 00 00 je 40c530 - 40b9b3: 83 fa 03 cmp $0x3,%edx - 40b9b6: 0f 84 61 0b 00 00 je 40c51d - 40b9bc: 83 fa 01 cmp $0x1,%edx - 40b9bf: 0f 84 7e 0b 00 00 je 40c543 - 40b9c5: 48 89 c7 mov %rax,%rdi - 40b9c8: e8 e3 23 01 00 callq 41ddb0 <__cfree> - 40b9cd: e9 a6 f4 ff ff jmpq 40ae78 - 40b9d2: 48 8b 04 24 mov (%rsp),%rax - 40b9d6: 48 8b 78 18 mov 0x18(%rax),%rdi - 40b9da: e8 31 a2 ff ff callq 405c10 <__gettext_free_exp> - 40b9df: 48 8b 04 24 mov (%rsp),%rax - 40b9e3: 48 8b 40 10 mov 0x10(%rax),%rax - 40b9e7: 48 85 c0 test %rax,%rax - 40b9ea: 74 25 je 40ba11 - 40b9ec: 8b 10 mov (%rax),%edx - 40b9ee: 83 fa 02 cmp $0x2,%edx - 40b9f1: 0f 84 44 07 00 00 je 40c13b - 40b9f7: 83 fa 03 cmp $0x3,%edx - 40b9fa: 0f 84 28 07 00 00 je 40c128 - 40ba00: 83 fa 01 cmp $0x1,%edx - 40ba03: 0f 84 45 07 00 00 je 40c14e - 40ba09: 48 89 c7 mov %rax,%rdi - 40ba0c: e8 9f 23 01 00 callq 41ddb0 <__cfree> - 40ba11: 48 8b 04 24 mov (%rsp),%rax - 40ba15: 48 8b 40 08 mov 0x8(%rax),%rax - 40ba19: 48 85 c0 test %rax,%rax - 40ba1c: 0f 84 96 f6 ff ff je 40b0b8 - 40ba22: 8b 10 mov (%rax),%edx - 40ba24: 83 fa 02 cmp $0x2,%edx - 40ba27: 0f 84 41 0b 00 00 je 40c56e - 40ba2d: 83 fa 03 cmp $0x3,%edx - 40ba30: 0f 84 25 0b 00 00 je 40c55b - 40ba36: 83 fa 01 cmp $0x1,%edx - 40ba39: 0f 84 42 0b 00 00 je 40c581 - 40ba3f: 48 89 c7 mov %rax,%rdi - 40ba42: e8 69 23 01 00 callq 41ddb0 <__cfree> - 40ba47: e9 6c f6 ff ff jmpq 40b0b8 - 40ba4c: 49 8b 7e 18 mov 0x18(%r14),%rdi - 40ba50: e8 bb a1 ff ff callq 405c10 <__gettext_free_exp> - 40ba55: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 40ba59: 4d 85 ff test %r15,%r15 - 40ba5c: 74 26 je 40ba84 - 40ba5e: 41 8b 07 mov (%r15),%eax - 40ba61: 83 f8 02 cmp $0x2,%eax - 40ba64: 0f 84 05 07 00 00 je 40c16f - 40ba6a: 83 f8 03 cmp $0x3,%eax - 40ba6d: 0f 84 f3 06 00 00 je 40c166 - 40ba73: 83 f8 01 cmp $0x1,%eax - 40ba76: 0f 84 fc 06 00 00 je 40c178 - 40ba7c: 4c 89 ff mov %r15,%rdi - 40ba7f: e8 2c 23 01 00 callq 41ddb0 <__cfree> - 40ba84: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 40ba88: 4d 85 ff test %r15,%r15 - 40ba8b: 0f 84 b6 ea ff ff je 40a547 - 40ba91: 41 8b 07 mov (%r15),%eax - 40ba94: 83 f8 02 cmp $0x2,%eax - 40ba97: 0f 84 bd 0c 00 00 je 40c75a - 40ba9d: 83 f8 03 cmp $0x3,%eax - 40baa0: 0f 84 ab 0c 00 00 je 40c751 - 40baa6: 83 f8 01 cmp $0x1,%eax - 40baa9: 0f 84 b4 0c 00 00 je 40c763 - 40baaf: 4c 89 ff mov %r15,%rdi - 40bab2: e8 f9 22 01 00 callq 41ddb0 <__cfree> - 40bab7: e9 8b ea ff ff jmpq 40a547 - 40babc: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40bac0: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40bac5: 48 89 14 24 mov %rdx,(%rsp) - 40bac9: e8 42 a1 ff ff callq 405c10 <__gettext_free_exp> - 40bace: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40bad3: 48 8b 14 24 mov (%rsp),%rdx - 40bad7: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40badb: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40bae0: 48 89 14 24 mov %rdx,(%rsp) - 40bae4: e8 27 a1 ff ff callq 405c10 <__gettext_free_exp> - 40bae9: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40baee: 48 8b 14 24 mov (%rsp),%rdx - 40baf2: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40baf6: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40bafb: 48 89 14 24 mov %rdx,(%rsp) - 40baff: e8 0c a1 ff ff callq 405c10 <__gettext_free_exp> - 40bb04: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40bb09: 48 8b 14 24 mov (%rsp),%rdx - 40bb0d: e9 fc ea ff ff jmpq 40a60e - 40bb12: 48 8b 78 18 mov 0x18(%rax),%rdi - 40bb16: 48 89 04 24 mov %rax,(%rsp) - 40bb1a: e8 f1 a0 ff ff callq 405c10 <__gettext_free_exp> - 40bb1f: 48 8b 04 24 mov (%rsp),%rax - 40bb23: 48 8b 78 10 mov 0x10(%rax),%rdi - 40bb27: 48 89 04 24 mov %rax,(%rsp) - 40bb2b: e8 e0 a0 ff ff callq 405c10 <__gettext_free_exp> - 40bb30: 48 8b 04 24 mov (%rsp),%rax - 40bb34: 48 8b 50 08 mov 0x8(%rax),%rdx - 40bb38: 48 85 d2 test %rdx,%rdx - 40bb3b: 0f 84 ce e6 ff ff je 40a20f - 40bb41: 8b 0a mov (%rdx),%ecx - 40bb43: 83 f9 02 cmp $0x2,%ecx - 40bb46: 0f 84 33 12 00 00 je 40cd7f - 40bb4c: 83 f9 03 cmp $0x3,%ecx - 40bb4f: 0f 84 0f 12 00 00 je 40cd64 - 40bb55: 83 f9 01 cmp $0x1,%ecx - 40bb58: 0f 84 3c 12 00 00 je 40cd9a - 40bb5e: 48 89 d7 mov %rdx,%rdi - 40bb61: 48 89 04 24 mov %rax,(%rsp) - 40bb65: e8 46 22 01 00 callq 41ddb0 <__cfree> - 40bb6a: 48 8b 04 24 mov (%rsp),%rax - 40bb6e: e9 9c e6 ff ff jmpq 40a20f - 40bb73: 48 8b 78 18 mov 0x18(%rax),%rdi - 40bb77: 48 89 04 24 mov %rax,(%rsp) - 40bb7b: e8 90 a0 ff ff callq 405c10 <__gettext_free_exp> - 40bb80: 48 8b 04 24 mov (%rsp),%rax - 40bb84: 48 8b 78 10 mov 0x10(%rax),%rdi - 40bb88: 48 89 04 24 mov %rax,(%rsp) - 40bb8c: e8 7f a0 ff ff callq 405c10 <__gettext_free_exp> - 40bb91: 48 8b 04 24 mov (%rsp),%rax - 40bb95: 48 8b 50 08 mov 0x8(%rax),%rdx - 40bb99: 48 85 d2 test %rdx,%rdx - 40bb9c: 0f 84 e4 ea ff ff je 40a686 - 40bba2: 8b 0a mov (%rdx),%ecx - 40bba4: 83 f9 02 cmp $0x2,%ecx - 40bba7: 0f 84 e8 10 00 00 je 40cc95 - 40bbad: 83 f9 03 cmp $0x3,%ecx - 40bbb0: 0f 84 c4 10 00 00 je 40cc7a - 40bbb6: 83 f9 01 cmp $0x1,%ecx - 40bbb9: 0f 84 f1 10 00 00 je 40ccb0 - 40bbbf: 48 89 d7 mov %rdx,%rdi - 40bbc2: 48 89 04 24 mov %rax,(%rsp) - 40bbc6: e8 e5 21 01 00 callq 41ddb0 <__cfree> - 40bbcb: 48 8b 04 24 mov (%rsp),%rax - 40bbcf: e9 b2 ea ff ff jmpq 40a686 - 40bbd4: 48 8b 78 18 mov 0x18(%rax),%rdi - 40bbd8: 48 89 04 24 mov %rax,(%rsp) - 40bbdc: e8 2f a0 ff ff callq 405c10 <__gettext_free_exp> - 40bbe1: 48 8b 04 24 mov (%rsp),%rax - 40bbe5: 48 8b 78 10 mov 0x10(%rax),%rdi - 40bbe9: 48 89 04 24 mov %rax,(%rsp) - 40bbed: e8 1e a0 ff ff callq 405c10 <__gettext_free_exp> - 40bbf2: 48 8b 04 24 mov (%rsp),%rax - 40bbf6: 48 8b 50 08 mov 0x8(%rax),%rdx - 40bbfa: 48 85 d2 test %rdx,%rdx - 40bbfd: 0f 84 0c ed ff ff je 40a90f - 40bc03: 8b 0a mov (%rdx),%ecx - 40bc05: 83 f9 02 cmp $0x2,%ecx - 40bc08: 0f 84 93 0c 00 00 je 40c8a1 - 40bc0e: 83 f9 03 cmp $0x3,%ecx - 40bc11: 0f 84 6f 0c 00 00 je 40c886 - 40bc17: 83 f9 01 cmp $0x1,%ecx - 40bc1a: 0f 84 9c 0c 00 00 je 40c8bc - 40bc20: 48 89 d7 mov %rdx,%rdi - 40bc23: 48 89 04 24 mov %rax,(%rsp) - 40bc27: e8 84 21 01 00 callq 41ddb0 <__cfree> - 40bc2c: 48 8b 04 24 mov (%rsp),%rax - 40bc30: e9 da ec ff ff jmpq 40a90f - 40bc35: 48 8b 78 18 mov 0x18(%rax),%rdi - 40bc39: 48 89 04 24 mov %rax,(%rsp) - 40bc3d: e8 ce 9f ff ff callq 405c10 <__gettext_free_exp> - 40bc42: 48 8b 04 24 mov (%rsp),%rax - 40bc46: 48 8b 78 10 mov 0x10(%rax),%rdi - 40bc4a: 48 89 04 24 mov %rax,(%rsp) - 40bc4e: e8 bd 9f ff ff callq 405c10 <__gettext_free_exp> - 40bc53: 48 8b 04 24 mov (%rsp),%rax - 40bc57: 48 8b 50 08 mov 0x8(%rax),%rdx - 40bc5b: 48 85 d2 test %rdx,%rdx - 40bc5e: 0f 84 eb ed ff ff je 40aa4f - 40bc64: 8b 0a mov (%rdx),%ecx - 40bc66: 83 f9 02 cmp $0x2,%ecx - 40bc69: 0f 84 7c 10 00 00 je 40cceb - 40bc6f: 83 f9 03 cmp $0x3,%ecx - 40bc72: 0f 84 58 10 00 00 je 40ccd0 - 40bc78: 83 f9 01 cmp $0x1,%ecx - 40bc7b: 0f 84 85 10 00 00 je 40cd06 - 40bc81: 48 89 d7 mov %rdx,%rdi - 40bc84: 48 89 04 24 mov %rax,(%rsp) - 40bc88: e8 23 21 01 00 callq 41ddb0 <__cfree> - 40bc8d: 48 8b 04 24 mov (%rsp),%rax - 40bc91: e9 b9 ed ff ff jmpq 40aa4f - 40bc96: 48 8b 78 18 mov 0x18(%rax),%rdi - 40bc9a: 48 89 04 24 mov %rax,(%rsp) - 40bc9e: e8 6d 9f ff ff callq 405c10 <__gettext_free_exp> - 40bca3: 48 8b 04 24 mov (%rsp),%rax - 40bca7: 48 8b 78 10 mov 0x10(%rax),%rdi - 40bcab: 48 89 04 24 mov %rax,(%rsp) - 40bcaf: e8 5c 9f ff ff callq 405c10 <__gettext_free_exp> - 40bcb4: 48 8b 04 24 mov (%rsp),%rax - 40bcb8: 48 8b 50 08 mov 0x8(%rax),%rdx - 40bcbc: 48 85 d2 test %rdx,%rdx - 40bcbf: 0f 84 a1 ea ff ff je 40a766 - 40bcc5: 8b 0a mov (%rdx),%ecx - 40bcc7: 83 f9 02 cmp $0x2,%ecx - 40bcca: 0f 84 f9 0c 00 00 je 40c9c9 - 40bcd0: 83 f9 03 cmp $0x3,%ecx - 40bcd3: 0f 84 d5 0c 00 00 je 40c9ae - 40bcd9: 83 f9 01 cmp $0x1,%ecx - 40bcdc: 0f 84 02 0d 00 00 je 40c9e4 - 40bce2: 48 89 d7 mov %rdx,%rdi - 40bce5: 48 89 04 24 mov %rax,(%rsp) - 40bce9: e8 c2 20 01 00 callq 41ddb0 <__cfree> - 40bcee: 48 8b 04 24 mov (%rsp),%rax - 40bcf2: e9 6f ea ff ff jmpq 40a766 - 40bcf7: 48 8b 78 18 mov 0x18(%rax),%rdi - 40bcfb: 48 89 04 24 mov %rax,(%rsp) - 40bcff: e8 0c 9f ff ff callq 405c10 <__gettext_free_exp> - 40bd04: 48 8b 04 24 mov (%rsp),%rax - 40bd08: 48 8b 78 10 mov 0x10(%rax),%rdi - 40bd0c: 48 89 04 24 mov %rax,(%rsp) - 40bd10: e8 fb 9e ff ff callq 405c10 <__gettext_free_exp> - 40bd15: 48 8b 04 24 mov (%rsp),%rax - 40bd19: 48 8b 50 08 mov 0x8(%rax),%rdx - 40bd1d: 48 85 d2 test %rdx,%rdx - 40bd20: 0f 84 d0 e9 ff ff je 40a6f6 - 40bd26: 8b 0a mov (%rdx),%ecx - 40bd28: 83 f9 02 cmp $0x2,%ecx - 40bd2b: 0f 84 0e 0f 00 00 je 40cc3f - 40bd31: 83 f9 03 cmp $0x3,%ecx - 40bd34: 0f 84 ea 0e 00 00 je 40cc24 - 40bd3a: 83 f9 01 cmp $0x1,%ecx - 40bd3d: 0f 84 17 0f 00 00 je 40cc5a - 40bd43: 48 89 d7 mov %rdx,%rdi - 40bd46: 48 89 04 24 mov %rax,(%rsp) - 40bd4a: e8 61 20 01 00 callq 41ddb0 <__cfree> - 40bd4f: 48 8b 04 24 mov (%rsp),%rax - 40bd53: e9 9e e9 ff ff jmpq 40a6f6 - 40bd58: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40bd5c: e8 af 9e ff ff callq 405c10 <__gettext_free_exp> - 40bd61: 49 8b 7f 10 mov 0x10(%r15),%rdi - 40bd65: e8 a6 9e ff ff callq 405c10 <__gettext_free_exp> - 40bd6a: 49 8b 47 08 mov 0x8(%r15),%rax - 40bd6e: 48 85 c0 test %rax,%rax - 40bd71: 0f 84 eb e6 ff ff je 40a462 - 40bd77: 8b 10 mov (%rax),%edx - 40bd79: 83 fa 02 cmp $0x2,%edx - 40bd7c: 0f 84 ef 11 00 00 je 40cf71 - 40bd82: 83 fa 03 cmp $0x3,%edx - 40bd85: 0f 84 d5 11 00 00 je 40cf60 - 40bd8b: 83 fa 01 cmp $0x1,%edx - 40bd8e: 0f 84 ee 11 00 00 je 40cf82 - 40bd94: 48 89 c7 mov %rax,%rdi - 40bd97: e8 14 20 01 00 callq 41ddb0 <__cfree> - 40bd9c: e9 c1 e6 ff ff jmpq 40a462 - 40bda1: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40bda5: e8 66 9e ff ff callq 405c10 <__gettext_free_exp> - 40bdaa: 49 8b 7f 10 mov 0x10(%r15),%rdi - 40bdae: e8 5d 9e ff ff callq 405c10 <__gettext_free_exp> - 40bdb3: 49 8b 47 08 mov 0x8(%r15),%rax - 40bdb7: 48 85 c0 test %rax,%rax - 40bdba: 0f 84 e3 e0 ff ff je 409ea3 - 40bdc0: 8b 10 mov (%rax),%edx - 40bdc2: 83 fa 02 cmp $0x2,%edx - 40bdc5: 0f 84 56 10 00 00 je 40ce21 - 40bdcb: 83 fa 03 cmp $0x3,%edx - 40bdce: 0f 84 3c 10 00 00 je 40ce10 - 40bdd4: 83 fa 01 cmp $0x1,%edx - 40bdd7: 0f 84 55 10 00 00 je 40ce32 - 40bddd: 48 89 c7 mov %rax,%rdi - 40bde0: e8 cb 1f 01 00 callq 41ddb0 <__cfree> - 40bde5: e9 b9 e0 ff ff jmpq 409ea3 - 40bdea: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40bdee: e8 1d 9e ff ff callq 405c10 <__gettext_free_exp> - 40bdf3: 49 8b 7f 10 mov 0x10(%r15),%rdi - 40bdf7: e8 14 9e ff ff callq 405c10 <__gettext_free_exp> - 40bdfc: 49 8b 47 08 mov 0x8(%r15),%rax - 40be00: 48 85 c0 test %rax,%rax - 40be03: 0f 84 ce e9 ff ff je 40a7d7 - 40be09: 8b 10 mov (%rax),%edx - 40be0b: 83 fa 02 cmp $0x2,%edx - 40be0e: 0f 84 d5 11 00 00 je 40cfe9 - 40be14: 83 fa 03 cmp $0x3,%edx - 40be17: 0f 84 bb 11 00 00 je 40cfd8 - 40be1d: 83 fa 01 cmp $0x1,%edx - 40be20: 0f 84 d4 11 00 00 je 40cffa - 40be26: 48 89 c7 mov %rax,%rdi - 40be29: e8 82 1f 01 00 callq 41ddb0 <__cfree> - 40be2e: e9 a4 e9 ff ff jmpq 40a7d7 - 40be33: 48 8b 78 18 mov 0x18(%rax),%rdi - 40be37: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40be3c: e8 cf 9d ff ff callq 405c10 <__gettext_free_exp> - 40be41: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40be46: 48 8b 78 10 mov 0x10(%rax),%rdi - 40be4a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40be4f: e8 bc 9d ff ff callq 405c10 <__gettext_free_exp> - 40be54: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40be59: 48 8b 78 08 mov 0x8(%rax),%rdi - 40be5d: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40be62: e8 a9 9d ff ff callq 405c10 <__gettext_free_exp> - 40be67: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40be6c: e9 20 e5 ff ff jmpq 40a391 - 40be71: 48 8b 78 18 mov 0x18(%rax),%rdi - 40be75: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40be7a: e8 91 9d ff ff callq 405c10 <__gettext_free_exp> - 40be7f: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40be84: 48 8b 78 10 mov 0x10(%rax),%rdi - 40be88: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40be8d: e8 7e 9d ff ff callq 405c10 <__gettext_free_exp> - 40be92: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40be97: 48 8b 78 08 mov 0x8(%rax),%rdi - 40be9b: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40bea0: e8 6b 9d ff ff callq 405c10 <__gettext_free_exp> - 40bea5: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40beaa: e9 78 e2 ff ff jmpq 40a127 - 40beaf: 48 8b 78 18 mov 0x18(%rax),%rdi - 40beb3: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40beb8: e8 53 9d ff ff callq 405c10 <__gettext_free_exp> - 40bebd: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40bec2: 48 8b 78 10 mov 0x10(%rax),%rdi - 40bec6: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40becb: e8 40 9d ff ff callq 405c10 <__gettext_free_exp> - 40bed0: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40bed5: 48 8b 78 08 mov 0x8(%rax),%rdi - 40bed9: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40bede: e8 2d 9d ff ff callq 405c10 <__gettext_free_exp> - 40bee3: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40bee8: e9 02 f0 ff ff jmpq 40aeef - 40beed: 48 8b 78 18 mov 0x18(%rax),%rdi - 40bef1: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40bef6: e8 15 9d ff ff callq 405c10 <__gettext_free_exp> - 40befb: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40bf00: 48 8b 78 10 mov 0x10(%rax),%rdi - 40bf04: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40bf09: e8 02 9d ff ff callq 405c10 <__gettext_free_exp> - 40bf0e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40bf13: 48 8b 78 08 mov 0x8(%rax),%rdi - 40bf17: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40bf1c: e8 ef 9c ff ff callq 405c10 <__gettext_free_exp> - 40bf21: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40bf26: e9 54 dd ff ff jmpq 409c7f - 40bf2b: 48 8b 78 18 mov 0x18(%rax),%rdi - 40bf2f: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40bf34: e8 d7 9c ff ff callq 405c10 <__gettext_free_exp> - 40bf39: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40bf3e: 48 8b 78 10 mov 0x10(%rax),%rdi - 40bf42: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40bf47: e8 c4 9c ff ff callq 405c10 <__gettext_free_exp> - 40bf4c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40bf51: 48 8b 78 08 mov 0x8(%rax),%rdi - 40bf55: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40bf5a: e8 b1 9c ff ff callq 405c10 <__gettext_free_exp> - 40bf5f: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40bf64: e9 c6 f1 ff ff jmpq 40b12f - 40bf69: 48 8b 78 18 mov 0x18(%rax),%rdi - 40bf6d: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40bf72: e8 99 9c ff ff callq 405c10 <__gettext_free_exp> - 40bf77: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40bf7c: 48 8b 78 10 mov 0x10(%rax),%rdi - 40bf80: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40bf85: e8 86 9c ff ff callq 405c10 <__gettext_free_exp> - 40bf8a: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40bf8f: 48 8b 78 08 mov 0x8(%rax),%rdi - 40bf93: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40bf98: e8 73 9c ff ff callq 405c10 <__gettext_free_exp> - 40bf9d: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40bfa2: e9 68 f0 ff ff jmpq 40b00f - 40bfa7: 48 8b 78 18 mov 0x18(%rax),%rdi - 40bfab: 48 89 04 24 mov %rax,(%rsp) - 40bfaf: e8 5c 9c ff ff callq 405c10 <__gettext_free_exp> - 40bfb4: 48 8b 04 24 mov (%rsp),%rax - 40bfb8: 48 8b 78 10 mov 0x10(%rax),%rdi - 40bfbc: 48 89 04 24 mov %rax,(%rsp) - 40bfc0: e8 4b 9c ff ff callq 405c10 <__gettext_free_exp> - 40bfc5: 48 8b 04 24 mov (%rsp),%rax - 40bfc9: 48 8b 50 08 mov 0x8(%rax),%rdx - 40bfcd: 48 85 d2 test %rdx,%rdx - 40bfd0: 0f 84 91 dd ff ff je 409d67 - 40bfd6: 8b 0a mov (%rdx),%ecx - 40bfd8: 83 f9 02 cmp $0x2,%ecx - 40bfdb: 0f 84 be 00 00 00 je 40c09f - 40bfe1: 83 f9 03 cmp $0x3,%ecx - 40bfe4: 0f 84 9a 00 00 00 je 40c084 - 40bfea: 83 f9 01 cmp $0x1,%ecx - 40bfed: 0f 84 c7 00 00 00 je 40c0ba - 40bff3: 48 89 d7 mov %rdx,%rdi - 40bff6: 48 89 04 24 mov %rax,(%rsp) - 40bffa: e8 b1 1d 01 00 callq 41ddb0 <__cfree> - 40bfff: 48 8b 04 24 mov (%rsp),%rax - 40c003: e9 5f dd ff ff jmpq 409d67 - 40c008: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c00c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c011: e8 fa 9b ff ff callq 405c10 <__gettext_free_exp> - 40c016: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c01b: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c01f: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c024: e8 e7 9b ff ff callq 405c10 <__gettext_free_exp> - 40c029: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c02e: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c032: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c037: e8 d4 9b ff ff callq 405c10 <__gettext_free_exp> - 40c03c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c041: e9 49 f9 ff ff jmpq 40b98f - 40c046: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c04a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c04f: e8 bc 9b ff ff callq 405c10 <__gettext_free_exp> - 40c054: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c059: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c05d: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c062: e8 a9 9b ff ff callq 405c10 <__gettext_free_exp> - 40c067: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c06c: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c070: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c075: e8 96 9b ff ff callq 405c10 <__gettext_free_exp> - 40c07a: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c07f: e9 17 f8 ff ff jmpq 40b89b - 40c084: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40c088: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c08d: 48 89 14 24 mov %rdx,(%rsp) - 40c091: e8 7a 9b ff ff callq 405c10 <__gettext_free_exp> - 40c096: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c09b: 48 8b 14 24 mov (%rsp),%rdx - 40c09f: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40c0a3: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c0a8: 48 89 14 24 mov %rdx,(%rsp) - 40c0ac: e8 5f 9b ff ff callq 405c10 <__gettext_free_exp> - 40c0b1: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c0b6: 48 8b 14 24 mov (%rsp),%rdx - 40c0ba: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40c0be: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c0c3: 48 89 14 24 mov %rdx,(%rsp) - 40c0c7: e8 44 9b ff ff callq 405c10 <__gettext_free_exp> - 40c0cc: 48 8b 14 24 mov (%rsp),%rdx - 40c0d0: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c0d5: 48 89 d7 mov %rdx,%rdi - 40c0d8: 48 89 04 24 mov %rax,(%rsp) - 40c0dc: e8 cf 1c 01 00 callq 41ddb0 <__cfree> - 40c0e1: 48 8b 04 24 mov (%rsp),%rax - 40c0e5: e9 7d dc ff ff jmpq 409d67 - 40c0ea: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c0ee: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c0f3: e8 18 9b ff ff callq 405c10 <__gettext_free_exp> - 40c0f8: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c0fd: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c101: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c106: e8 05 9b ff ff callq 405c10 <__gettext_free_exp> - 40c10b: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c110: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c114: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c119: e8 f2 9a ff ff callq 405c10 <__gettext_free_exp> - 40c11e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c123: e9 ed f7 ff ff jmpq 40b915 - 40c128: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c12c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c131: e8 da 9a ff ff callq 405c10 <__gettext_free_exp> - 40c136: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c13b: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c13f: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c144: e8 c7 9a ff ff callq 405c10 <__gettext_free_exp> - 40c149: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c14e: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c152: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c157: e8 b4 9a ff ff callq 405c10 <__gettext_free_exp> - 40c15c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c161: e9 a3 f8 ff ff jmpq 40ba09 - 40c166: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40c16a: e8 a1 9a ff ff callq 405c10 <__gettext_free_exp> - 40c16f: 49 8b 7f 10 mov 0x10(%r15),%rdi - 40c173: e8 98 9a ff ff callq 405c10 <__gettext_free_exp> - 40c178: 49 8b 7f 08 mov 0x8(%r15),%rdi - 40c17c: e8 8f 9a ff ff callq 405c10 <__gettext_free_exp> - 40c181: e9 f6 f8 ff ff jmpq 40ba7c - 40c186: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c18a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c18f: e8 7c 9a ff ff callq 405c10 <__gettext_free_exp> - 40c194: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c199: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c19d: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c1a2: e8 69 9a ff ff callq 405c10 <__gettext_free_exp> - 40c1a7: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c1ac: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c1b0: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c1b5: e8 56 9a ff ff callq 405c10 <__gettext_free_exp> - 40c1ba: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c1bf: e9 20 f0 ff ff jmpq 40b1e4 - 40c1c4: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c1c8: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c1cd: e8 3e 9a ff ff callq 405c10 <__gettext_free_exp> - 40c1d2: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c1d7: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c1db: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c1e0: e8 2b 9a ff ff callq 405c10 <__gettext_free_exp> - 40c1e5: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c1ea: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c1ee: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c1f3: e8 18 9a ff ff callq 405c10 <__gettext_free_exp> - 40c1f8: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c1fd: e9 50 f1 ff ff jmpq 40b352 - 40c202: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c206: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c20b: e8 00 9a ff ff callq 405c10 <__gettext_free_exp> - 40c210: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c215: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c219: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c21e: e8 ed 99 ff ff callq 405c10 <__gettext_free_exp> - 40c223: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c228: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c22c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c231: e8 da 99 ff ff callq 405c10 <__gettext_free_exp> - 40c236: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c23b: e9 1e f0 ff ff jmpq 40b25e - 40c240: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c244: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c249: e8 c2 99 ff ff callq 405c10 <__gettext_free_exp> - 40c24e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c253: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c257: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c25c: e8 af 99 ff ff callq 405c10 <__gettext_free_exp> - 40c261: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c266: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c26a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c26f: e8 9c 99 ff ff callq 405c10 <__gettext_free_exp> - 40c274: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c279: e9 5a f0 ff ff jmpq 40b2d8 - 40c27e: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c282: 48 89 04 24 mov %rax,(%rsp) - 40c286: e8 85 99 ff ff callq 405c10 <__gettext_free_exp> - 40c28b: 48 8b 04 24 mov (%rsp),%rax - 40c28f: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c293: 48 89 04 24 mov %rax,(%rsp) - 40c297: e8 74 99 ff ff callq 405c10 <__gettext_free_exp> - 40c29c: 48 8b 04 24 mov (%rsp),%rax - 40c2a0: 48 8b 50 08 mov 0x8(%rax),%rdx - 40c2a4: 48 85 d2 test %rdx,%rdx - 40c2a7: 0f 84 ef f1 ff ff je 40b49c - 40c2ad: 8b 0a mov (%rdx),%ecx - 40c2af: 83 f9 02 cmp $0x2,%ecx - 40c2b2: 0f 84 1d 0b 00 00 je 40cdd5 - 40c2b8: 83 f9 03 cmp $0x3,%ecx - 40c2bb: 0f 84 f9 0a 00 00 je 40cdba - 40c2c1: 83 f9 01 cmp $0x1,%ecx - 40c2c4: 0f 84 26 0b 00 00 je 40cdf0 - 40c2ca: 48 89 d7 mov %rdx,%rdi - 40c2cd: 48 89 04 24 mov %rax,(%rsp) - 40c2d1: e8 da 1a 01 00 callq 41ddb0 <__cfree> - 40c2d6: 48 8b 04 24 mov (%rsp),%rax - 40c2da: e9 bd f1 ff ff jmpq 40b49c - 40c2df: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c2e3: 48 89 04 24 mov %rax,(%rsp) - 40c2e7: e8 24 99 ff ff callq 405c10 <__gettext_free_exp> - 40c2ec: 48 8b 04 24 mov (%rsp),%rax - 40c2f0: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c2f4: 48 89 04 24 mov %rax,(%rsp) - 40c2f8: e8 13 99 ff ff callq 405c10 <__gettext_free_exp> - 40c2fd: 48 8b 04 24 mov (%rsp),%rax - 40c301: 48 8b 50 08 mov 0x8(%rax),%rdx - 40c305: 48 85 d2 test %rdx,%rdx - 40c308: 0f 84 6a f2 ff ff je 40b578 - 40c30e: 8b 0a mov (%rdx),%ecx - 40c310: 83 f9 02 cmp $0x2,%ecx - 40c313: 0f 84 de 05 00 00 je 40c8f7 - 40c319: 83 f9 03 cmp $0x3,%ecx - 40c31c: 0f 84 ba 05 00 00 je 40c8dc - 40c322: 83 f9 01 cmp $0x1,%ecx - 40c325: 0f 84 e7 05 00 00 je 40c912 - 40c32b: 48 89 d7 mov %rdx,%rdi - 40c32e: 48 89 04 24 mov %rax,(%rsp) - 40c332: e8 79 1a 01 00 callq 41ddb0 <__cfree> - 40c337: 48 8b 04 24 mov (%rsp),%rax - 40c33b: e9 38 f2 ff ff jmpq 40b578 - 40c340: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c344: 48 89 04 24 mov %rax,(%rsp) - 40c348: e8 c3 98 ff ff callq 405c10 <__gettext_free_exp> - 40c34d: 48 8b 04 24 mov (%rsp),%rax - 40c351: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c355: 48 89 04 24 mov %rax,(%rsp) - 40c359: e8 b2 98 ff ff callq 405c10 <__gettext_free_exp> - 40c35e: 48 8b 04 24 mov (%rsp),%rax - 40c362: 48 8b 50 08 mov 0x8(%rax),%rdx - 40c366: 48 85 d2 test %rdx,%rdx - 40c369: 0f 84 bf f0 ff ff je 40b42e - 40c36f: 8b 0a mov (%rdx),%ecx - 40c371: 83 f9 02 cmp $0x2,%ecx - 40c374: 0f 84 d1 04 00 00 je 40c84b - 40c37a: 83 f9 03 cmp $0x3,%ecx - 40c37d: 0f 84 ad 04 00 00 je 40c830 - 40c383: 83 f9 01 cmp $0x1,%ecx - 40c386: 0f 84 da 04 00 00 je 40c866 - 40c38c: 48 89 d7 mov %rdx,%rdi - 40c38f: 48 89 04 24 mov %rax,(%rsp) - 40c393: e8 18 1a 01 00 callq 41ddb0 <__cfree> - 40c398: 48 8b 04 24 mov (%rsp),%rax - 40c39c: e9 8d f0 ff ff jmpq 40b42e - 40c3a1: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c3a5: 48 89 04 24 mov %rax,(%rsp) - 40c3a9: e8 62 98 ff ff callq 405c10 <__gettext_free_exp> - 40c3ae: 48 8b 04 24 mov (%rsp),%rax - 40c3b2: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c3b6: 48 89 04 24 mov %rax,(%rsp) - 40c3ba: e8 51 98 ff ff callq 405c10 <__gettext_free_exp> - 40c3bf: 48 8b 04 24 mov (%rsp),%rax - 40c3c3: 48 8b 50 08 mov 0x8(%rax),%rdx - 40c3c7: 48 85 d2 test %rdx,%rdx - 40c3ca: 0f 84 f0 ef ff ff je 40b3c0 - 40c3d0: 8b 0a mov (%rdx),%ecx - 40c3d2: 83 f9 02 cmp $0x2,%ecx - 40c3d5: 0f 84 3c 07 00 00 je 40cb17 - 40c3db: 83 f9 03 cmp $0x3,%ecx - 40c3de: 0f 84 18 07 00 00 je 40cafc - 40c3e4: 83 f9 01 cmp $0x1,%ecx - 40c3e7: 0f 84 45 07 00 00 je 40cb32 - 40c3ed: 48 89 d7 mov %rdx,%rdi - 40c3f0: 48 89 04 24 mov %rax,(%rsp) - 40c3f4: e8 b7 19 01 00 callq 41ddb0 <__cfree> - 40c3f9: 48 8b 04 24 mov (%rsp),%rax - 40c3fd: e9 be ef ff ff jmpq 40b3c0 - 40c402: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c406: 48 89 04 24 mov %rax,(%rsp) - 40c40a: e8 01 98 ff ff callq 405c10 <__gettext_free_exp> - 40c40f: 48 8b 04 24 mov (%rsp),%rax - 40c413: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c417: 48 89 04 24 mov %rax,(%rsp) - 40c41b: e8 f0 97 ff ff callq 405c10 <__gettext_free_exp> - 40c420: 48 8b 04 24 mov (%rsp),%rax - 40c424: 48 8b 50 08 mov 0x8(%rax),%rdx - 40c428: 48 85 d2 test %rdx,%rdx - 40c42b: 0f 84 d9 f0 ff ff je 40b50a - 40c431: 8b 0a mov (%rdx),%ecx - 40c433: 83 f9 02 cmp $0x2,%ecx - 40c436: 0f 84 ad 07 00 00 je 40cbe9 - 40c43c: 83 f9 03 cmp $0x3,%ecx - 40c43f: 0f 84 89 07 00 00 je 40cbce - 40c445: 83 f9 01 cmp $0x1,%ecx - 40c448: 0f 84 b6 07 00 00 je 40cc04 - 40c44e: 48 89 d7 mov %rdx,%rdi - 40c451: 48 89 04 24 mov %rax,(%rsp) - 40c455: e8 56 19 01 00 callq 41ddb0 <__cfree> - 40c45a: 48 8b 04 24 mov (%rsp),%rax - 40c45e: e9 a7 f0 ff ff jmpq 40b50a - 40c463: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c467: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c46c: e8 9f 97 ff ff callq 405c10 <__gettext_free_exp> - 40c471: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c476: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c47a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c47f: e8 8c 97 ff ff callq 405c10 <__gettext_free_exp> - 40c484: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c489: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c48d: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c492: e8 79 97 ff ff callq 405c10 <__gettext_free_exp> - 40c497: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c49c: 48 89 c7 mov %rax,%rdi - 40c49f: e8 0c 19 01 00 callq 41ddb0 <__cfree> - 40c4a4: 48 8b 04 24 mov (%rsp),%rax - 40c4a8: 48 8b 40 08 mov 0x8(%rax),%rax - 40c4ac: 48 85 c0 test %rax,%rax - 40c4af: 0f 84 35 f1 ff ff je 40b5ea - 40c4b5: 8b 10 mov (%rax),%edx - 40c4b7: 83 fa 02 cmp $0x2,%edx - 40c4ba: 0f 84 57 05 00 00 je 40ca17 - 40c4c0: 83 fa 03 cmp $0x3,%edx - 40c4c3: 0f 84 3b 05 00 00 je 40ca04 - 40c4c9: 83 fa 01 cmp $0x1,%edx - 40c4cc: 0f 84 58 05 00 00 je 40ca2a - 40c4d2: 48 89 c7 mov %rax,%rdi - 40c4d5: e8 d6 18 01 00 callq 41ddb0 <__cfree> - 40c4da: e9 0b f1 ff ff jmpq 40b5ea - 40c4df: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c4e3: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c4e8: e8 23 97 ff ff callq 405c10 <__gettext_free_exp> - 40c4ed: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c4f2: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c4f6: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c4fb: e8 10 97 ff ff callq 405c10 <__gettext_free_exp> - 40c500: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c505: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c509: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c50e: e8 fd 96 ff ff callq 405c10 <__gettext_free_exp> - 40c513: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c518: e9 2e f4 ff ff jmpq 40b94b - 40c51d: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c521: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c526: e8 e5 96 ff ff callq 405c10 <__gettext_free_exp> - 40c52b: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c530: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c534: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c539: e8 d2 96 ff ff callq 405c10 <__gettext_free_exp> - 40c53e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c543: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c547: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c54c: e8 bf 96 ff ff callq 405c10 <__gettext_free_exp> - 40c551: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c556: e9 6a f4 ff ff jmpq 40b9c5 - 40c55b: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c55f: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c564: e8 a7 96 ff ff callq 405c10 <__gettext_free_exp> - 40c569: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c56e: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c572: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c577: e8 94 96 ff ff callq 405c10 <__gettext_free_exp> - 40c57c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c581: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c585: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c58a: e8 81 96 ff ff callq 405c10 <__gettext_free_exp> - 40c58f: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c594: e9 a6 f4 ff ff jmpq 40ba3f - 40c599: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c59d: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c5a2: e8 69 96 ff ff callq 405c10 <__gettext_free_exp> - 40c5a7: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c5ac: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c5b0: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c5b5: e8 56 96 ff ff callq 405c10 <__gettext_free_exp> - 40c5ba: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c5bf: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c5c3: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c5c8: e8 43 96 ff ff callq 405c10 <__gettext_free_exp> - 40c5cd: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c5d2: e9 fa f2 ff ff jmpq 40b8d1 - 40c5d7: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40c5db: e8 30 96 ff ff callq 405c10 <__gettext_free_exp> - 40c5e0: 49 8b 7f 10 mov 0x10(%r15),%rdi - 40c5e4: e8 27 96 ff ff callq 405c10 <__gettext_free_exp> - 40c5e9: 49 8b 47 08 mov 0x8(%r15),%rax - 40c5ed: 48 85 c0 test %rax,%rax - 40c5f0: 0f 84 51 e2 ff ff je 40a847 - 40c5f6: 8b 10 mov (%rax),%edx - 40c5f8: 83 fa 02 cmp $0x2,%edx - 40c5fb: 74 28 je 40c625 - 40c5fd: 83 fa 03 cmp $0x3,%edx - 40c600: 74 12 je 40c614 - 40c602: 83 fa 01 cmp $0x1,%edx - 40c605: 74 2f je 40c636 - 40c607: 48 89 c7 mov %rax,%rdi - 40c60a: e8 a1 17 01 00 callq 41ddb0 <__cfree> - 40c60f: e9 33 e2 ff ff jmpq 40a847 - 40c614: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c618: 48 89 04 24 mov %rax,(%rsp) - 40c61c: e8 ef 95 ff ff callq 405c10 <__gettext_free_exp> - 40c621: 48 8b 04 24 mov (%rsp),%rax - 40c625: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c629: 48 89 04 24 mov %rax,(%rsp) - 40c62d: e8 de 95 ff ff callq 405c10 <__gettext_free_exp> - 40c632: 48 8b 04 24 mov (%rsp),%rax - 40c636: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c63a: 48 89 04 24 mov %rax,(%rsp) - 40c63e: e8 cd 95 ff ff callq 405c10 <__gettext_free_exp> - 40c643: 48 8b 04 24 mov (%rsp),%rax - 40c647: eb be jmp 40c607 - 40c649: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40c650: 49 8b 47 18 mov 0x18(%r15),%rax - 40c654: 48 85 c0 test %rax,%rax - 40c657: 0f 84 8c e2 ff ff je 40a8e9 - 40c65d: 8b 10 mov (%rax),%edx - 40c65f: 83 fa 02 cmp $0x2,%edx - 40c662: 0f 84 57 e2 ff ff je 40a8bf - 40c668: 83 fa 03 cmp $0x3,%edx - 40c66b: 0f 84 3d e2 ff ff je 40a8ae - 40c671: 83 fa 01 cmp $0x1,%edx - 40c674: 0f 85 67 e2 ff ff jne 40a8e1 - 40c67a: e9 51 e2 ff ff jmpq 40a8d0 - 40c67f: 90 nop - 40c680: 49 8b 47 18 mov 0x18(%r15),%rax - 40c684: 48 85 c0 test %rax,%rax - 40c687: 0f 84 5c db ff ff je 40a1e9 - 40c68d: 8b 10 mov (%rax),%edx - 40c68f: 83 fa 02 cmp $0x2,%edx - 40c692: 0f 84 27 db ff ff je 40a1bf - 40c698: 83 fa 03 cmp $0x3,%edx - 40c69b: 0f 84 0d db ff ff je 40a1ae - 40c6a1: 83 fa 01 cmp $0x1,%edx - 40c6a4: 0f 85 37 db ff ff jne 40a1e1 - 40c6aa: e9 21 db ff ff jmpq 40a1d0 - 40c6af: 90 nop - 40c6b0: 49 8b 47 18 mov 0x18(%r15),%rax - 40c6b4: 48 85 c0 test %rax,%rax - 40c6b7: 0f 84 6c e3 ff ff je 40aa29 - 40c6bd: 8b 10 mov (%rax),%edx - 40c6bf: 83 fa 02 cmp $0x2,%edx - 40c6c2: 0f 84 37 e3 ff ff je 40a9ff - 40c6c8: 83 fa 03 cmp $0x3,%edx - 40c6cb: 0f 84 1d e3 ff ff je 40a9ee - 40c6d1: 83 fa 01 cmp $0x1,%edx - 40c6d4: 0f 85 47 e3 ff ff jne 40aa21 - 40c6da: e9 31 e3 ff ff jmpq 40aa10 - 40c6df: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40c6e3: e8 28 95 ff ff callq 405c10 <__gettext_free_exp> - 40c6e8: 49 8b 7f 10 mov 0x10(%r15),%rdi - 40c6ec: e8 1f 95 ff ff callq 405c10 <__gettext_free_exp> - 40c6f1: 49 8b 47 08 mov 0x8(%r15),%rax - 40c6f5: 48 85 c0 test %rax,%rax - 40c6f8: 0f 84 89 e2 ff ff je 40a987 - 40c6fe: 8b 10 mov (%rax),%edx - 40c700: 83 fa 02 cmp $0x2,%edx - 40c703: 74 28 je 40c72d - 40c705: 83 fa 03 cmp $0x3,%edx - 40c708: 74 12 je 40c71c - 40c70a: 83 fa 01 cmp $0x1,%edx - 40c70d: 74 2f je 40c73e - 40c70f: 48 89 c7 mov %rax,%rdi - 40c712: e8 99 16 01 00 callq 41ddb0 <__cfree> - 40c717: e9 6b e2 ff ff jmpq 40a987 - 40c71c: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c720: 48 89 04 24 mov %rax,(%rsp) - 40c724: e8 e7 94 ff ff callq 405c10 <__gettext_free_exp> - 40c729: 48 8b 04 24 mov (%rsp),%rax - 40c72d: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c731: 48 89 04 24 mov %rax,(%rsp) - 40c735: e8 d6 94 ff ff callq 405c10 <__gettext_free_exp> - 40c73a: 48 8b 04 24 mov (%rsp),%rax - 40c73e: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c742: 48 89 04 24 mov %rax,(%rsp) - 40c746: e8 c5 94 ff ff callq 405c10 <__gettext_free_exp> - 40c74b: 48 8b 04 24 mov (%rsp),%rax - 40c74f: eb be jmp 40c70f - 40c751: 49 8b 7f 18 mov 0x18(%r15),%rdi - 40c755: e8 b6 94 ff ff callq 405c10 <__gettext_free_exp> - 40c75a: 49 8b 7f 10 mov 0x10(%r15),%rdi - 40c75e: e8 ad 94 ff ff callq 405c10 <__gettext_free_exp> - 40c763: 49 8b 47 08 mov 0x8(%r15),%rax - 40c767: 48 85 c0 test %rax,%rax - 40c76a: 0f 84 3f f3 ff ff je 40baaf - 40c770: 8b 10 mov (%rax),%edx - 40c772: 83 fa 02 cmp $0x2,%edx - 40c775: 74 28 je 40c79f - 40c777: 83 fa 03 cmp $0x3,%edx - 40c77a: 74 12 je 40c78e - 40c77c: 83 fa 01 cmp $0x1,%edx - 40c77f: 74 2f je 40c7b0 - 40c781: 48 89 c7 mov %rax,%rdi - 40c784: e8 27 16 01 00 callq 41ddb0 <__cfree> - 40c789: e9 21 f3 ff ff jmpq 40baaf - 40c78e: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c792: 48 89 04 24 mov %rax,(%rsp) - 40c796: e8 75 94 ff ff callq 405c10 <__gettext_free_exp> - 40c79b: 48 8b 04 24 mov (%rsp),%rax - 40c79f: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c7a3: 48 89 04 24 mov %rax,(%rsp) - 40c7a7: e8 64 94 ff ff callq 405c10 <__gettext_free_exp> - 40c7ac: 48 8b 04 24 mov (%rsp),%rax - 40c7b0: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c7b4: 48 89 04 24 mov %rax,(%rsp) - 40c7b8: e8 53 94 ff ff callq 405c10 <__gettext_free_exp> - 40c7bd: 48 8b 04 24 mov (%rsp),%rax - 40c7c1: eb be jmp 40c781 - 40c7c3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40c7c8: 4d 8b 7e 18 mov 0x18(%r14),%r15 - 40c7cc: 4d 85 ff test %r15,%r15 - 40c7cf: 0f 84 66 dc ff ff je 40a43b - 40c7d5: 41 8b 07 mov (%r15),%eax - 40c7d8: 83 f8 02 cmp $0x2,%eax - 40c7db: 0f 84 40 dc ff ff je 40a421 - 40c7e1: 83 f8 03 cmp $0x3,%eax - 40c7e4: 0f 84 2e dc ff ff je 40a418 - 40c7ea: 83 f8 01 cmp $0x1,%eax - 40c7ed: 0f 85 40 dc ff ff jne 40a433 - 40c7f3: e9 32 dc ff ff jmpq 40a42a - 40c7f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40c7ff: 00 - 40c800: 4d 8b 7e 18 mov 0x18(%r14),%r15 - 40c804: 4d 85 ff test %r15,%r15 - 40c807: 0f 84 6f d6 ff ff je 409e7c - 40c80d: 41 8b 07 mov (%r15),%eax - 40c810: 83 f8 02 cmp $0x2,%eax - 40c813: 0f 84 49 d6 ff ff je 409e62 - 40c819: 83 f8 03 cmp $0x3,%eax - 40c81c: 0f 84 37 d6 ff ff je 409e59 - 40c822: 83 f8 01 cmp $0x1,%eax - 40c825: 0f 85 49 d6 ff ff jne 409e74 - 40c82b: e9 3b d6 ff ff jmpq 409e6b - 40c830: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40c834: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c839: 48 89 14 24 mov %rdx,(%rsp) - 40c83d: e8 ce 93 ff ff callq 405c10 <__gettext_free_exp> - 40c842: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c847: 48 8b 14 24 mov (%rsp),%rdx - 40c84b: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40c84f: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c854: 48 89 14 24 mov %rdx,(%rsp) - 40c858: e8 b3 93 ff ff callq 405c10 <__gettext_free_exp> - 40c85d: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c862: 48 8b 14 24 mov (%rsp),%rdx - 40c866: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40c86a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c86f: 48 89 14 24 mov %rdx,(%rsp) - 40c873: e8 98 93 ff ff callq 405c10 <__gettext_free_exp> - 40c878: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c87d: 48 8b 14 24 mov (%rsp),%rdx - 40c881: e9 06 fb ff ff jmpq 40c38c - 40c886: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40c88a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c88f: 48 89 14 24 mov %rdx,(%rsp) - 40c893: e8 78 93 ff ff callq 405c10 <__gettext_free_exp> - 40c898: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c89d: 48 8b 14 24 mov (%rsp),%rdx - 40c8a1: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40c8a5: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c8aa: 48 89 14 24 mov %rdx,(%rsp) - 40c8ae: e8 5d 93 ff ff callq 405c10 <__gettext_free_exp> - 40c8b3: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c8b8: 48 8b 14 24 mov (%rsp),%rdx - 40c8bc: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40c8c0: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c8c5: 48 89 14 24 mov %rdx,(%rsp) - 40c8c9: e8 42 93 ff ff callq 405c10 <__gettext_free_exp> - 40c8ce: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c8d3: 48 8b 14 24 mov (%rsp),%rdx - 40c8d7: e9 44 f3 ff ff jmpq 40bc20 - 40c8dc: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40c8e0: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c8e5: 48 89 14 24 mov %rdx,(%rsp) - 40c8e9: e8 22 93 ff ff callq 405c10 <__gettext_free_exp> - 40c8ee: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c8f3: 48 8b 14 24 mov (%rsp),%rdx - 40c8f7: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40c8fb: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c900: 48 89 14 24 mov %rdx,(%rsp) - 40c904: e8 07 93 ff ff callq 405c10 <__gettext_free_exp> - 40c909: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c90e: 48 8b 14 24 mov (%rsp),%rdx - 40c912: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40c916: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c91b: 48 89 14 24 mov %rdx,(%rsp) - 40c91f: e8 ec 92 ff ff callq 405c10 <__gettext_free_exp> - 40c924: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c929: 48 8b 14 24 mov (%rsp),%rdx - 40c92d: e9 f9 f9 ff ff jmpq 40c32b - 40c932: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c936: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c93b: e8 d0 92 ff ff callq 405c10 <__gettext_free_exp> - 40c940: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c945: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c949: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c94e: e8 bd 92 ff ff callq 405c10 <__gettext_free_exp> - 40c953: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c958: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c95c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c961: e8 aa 92 ff ff callq 405c10 <__gettext_free_exp> - 40c966: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c96b: e9 b8 e8 ff ff jmpq 40b228 - 40c970: 48 8b 78 18 mov 0x18(%rax),%rdi - 40c974: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c979: e8 92 92 ff ff callq 405c10 <__gettext_free_exp> - 40c97e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c983: 48 8b 78 10 mov 0x10(%rax),%rdi - 40c987: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c98c: e8 7f 92 ff ff callq 405c10 <__gettext_free_exp> - 40c991: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c996: 48 8b 78 08 mov 0x8(%rax),%rdi - 40c99a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c99f: e8 6c 92 ff ff callq 405c10 <__gettext_free_exp> - 40c9a4: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c9a9: e9 bc e3 ff ff jmpq 40ad6a - 40c9ae: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40c9b2: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c9b7: 48 89 14 24 mov %rdx,(%rsp) - 40c9bb: e8 50 92 ff ff callq 405c10 <__gettext_free_exp> - 40c9c0: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c9c5: 48 8b 14 24 mov (%rsp),%rdx - 40c9c9: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40c9cd: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c9d2: 48 89 14 24 mov %rdx,(%rsp) - 40c9d6: e8 35 92 ff ff callq 405c10 <__gettext_free_exp> - 40c9db: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c9e0: 48 8b 14 24 mov (%rsp),%rdx - 40c9e4: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40c9e8: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40c9ed: 48 89 14 24 mov %rdx,(%rsp) - 40c9f1: e8 1a 92 ff ff callq 405c10 <__gettext_free_exp> - 40c9f6: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40c9fb: 48 8b 14 24 mov (%rsp),%rdx - 40c9ff: e9 de f2 ff ff jmpq 40bce2 - 40ca04: 48 8b 78 18 mov 0x18(%rax),%rdi - 40ca08: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ca0d: e8 fe 91 ff ff callq 405c10 <__gettext_free_exp> - 40ca12: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ca17: 48 8b 78 10 mov 0x10(%rax),%rdi - 40ca1b: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ca20: e8 eb 91 ff ff callq 405c10 <__gettext_free_exp> - 40ca25: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ca2a: 48 8b 78 08 mov 0x8(%rax),%rdi - 40ca2e: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ca33: e8 d8 91 ff ff callq 405c10 <__gettext_free_exp> - 40ca38: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ca3d: e9 90 fa ff ff jmpq 40c4d2 - 40ca42: 48 8b 78 18 mov 0x18(%rax),%rdi - 40ca46: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ca4b: e8 c0 91 ff ff callq 405c10 <__gettext_free_exp> - 40ca50: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ca55: 48 8b 78 10 mov 0x10(%rax),%rdi - 40ca59: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ca5e: e8 ad 91 ff ff callq 405c10 <__gettext_free_exp> - 40ca63: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ca68: 48 8b 78 08 mov 0x8(%rax),%rdi - 40ca6c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ca71: e8 9a 91 ff ff callq 405c10 <__gettext_free_exp> - 40ca76: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ca7b: e9 2e e7 ff ff jmpq 40b1ae - 40ca80: 48 8b 78 18 mov 0x18(%rax),%rdi - 40ca84: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ca89: e8 82 91 ff ff callq 405c10 <__gettext_free_exp> - 40ca8e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ca93: 48 8b 78 10 mov 0x10(%rax),%rdi - 40ca97: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ca9c: e8 6f 91 ff ff callq 405c10 <__gettext_free_exp> - 40caa1: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40caa6: 48 8b 78 08 mov 0x8(%rax),%rdi - 40caaa: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40caaf: e8 5c 91 ff ff callq 405c10 <__gettext_free_exp> - 40cab4: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cab9: e9 cc e1 ff ff jmpq 40ac8a - 40cabe: 48 8b 78 18 mov 0x18(%rax),%rdi - 40cac2: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cac7: e8 44 91 ff ff callq 405c10 <__gettext_free_exp> - 40cacc: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cad1: 48 8b 78 10 mov 0x10(%rax),%rdi - 40cad5: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cada: e8 31 91 ff ff callq 405c10 <__gettext_free_exp> - 40cadf: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cae4: 48 8b 78 08 mov 0x8(%rax),%rdi - 40cae8: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40caed: e8 1e 91 ff ff callq 405c10 <__gettext_free_exp> - 40caf2: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40caf7: e9 ae e0 ff ff jmpq 40abaa - 40cafc: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40cb00: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cb05: 48 89 14 24 mov %rdx,(%rsp) - 40cb09: e8 02 91 ff ff callq 405c10 <__gettext_free_exp> - 40cb0e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cb13: 48 8b 14 24 mov (%rsp),%rdx - 40cb17: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40cb1b: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cb20: 48 89 14 24 mov %rdx,(%rsp) - 40cb24: e8 e7 90 ff ff callq 405c10 <__gettext_free_exp> - 40cb29: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cb2e: 48 8b 14 24 mov (%rsp),%rdx - 40cb32: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40cb36: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cb3b: 48 89 14 24 mov %rdx,(%rsp) - 40cb3f: e8 cc 90 ff ff callq 405c10 <__gettext_free_exp> - 40cb44: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cb49: 48 8b 14 24 mov (%rsp),%rdx - 40cb4d: e9 9b f8 ff ff jmpq 40c3ed - 40cb52: 48 8b 78 18 mov 0x18(%rax),%rdi - 40cb56: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cb5b: e8 b0 90 ff ff callq 405c10 <__gettext_free_exp> - 40cb60: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cb65: 48 8b 78 10 mov 0x10(%rax),%rdi - 40cb69: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cb6e: e8 9d 90 ff ff callq 405c10 <__gettext_free_exp> - 40cb73: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cb78: 48 8b 78 08 mov 0x8(%rax),%rdi - 40cb7c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cb81: e8 8a 90 ff ff callq 405c10 <__gettext_free_exp> - 40cb86: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cb8b: e9 12 e7 ff ff jmpq 40b2a2 - 40cb90: 48 8b 78 18 mov 0x18(%rax),%rdi - 40cb94: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cb99: e8 72 90 ff ff callq 405c10 <__gettext_free_exp> - 40cb9e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cba3: 48 8b 78 10 mov 0x10(%rax),%rdi - 40cba7: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cbac: e8 5f 90 ff ff callq 405c10 <__gettext_free_exp> - 40cbb1: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cbb6: 48 8b 78 08 mov 0x8(%rax),%rdi - 40cbba: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cbbf: e8 4c 90 ff ff callq 405c10 <__gettext_free_exp> - 40cbc4: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cbc9: e9 4e e7 ff ff jmpq 40b31c - 40cbce: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40cbd2: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cbd7: 48 89 14 24 mov %rdx,(%rsp) - 40cbdb: e8 30 90 ff ff callq 405c10 <__gettext_free_exp> - 40cbe0: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cbe5: 48 8b 14 24 mov (%rsp),%rdx - 40cbe9: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40cbed: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cbf2: 48 89 14 24 mov %rdx,(%rsp) - 40cbf6: e8 15 90 ff ff callq 405c10 <__gettext_free_exp> - 40cbfb: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cc00: 48 8b 14 24 mov (%rsp),%rdx - 40cc04: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40cc08: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cc0d: 48 89 14 24 mov %rdx,(%rsp) - 40cc11: e8 fa 8f ff ff callq 405c10 <__gettext_free_exp> - 40cc16: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cc1b: 48 8b 14 24 mov (%rsp),%rdx - 40cc1f: e9 2a f8 ff ff jmpq 40c44e - 40cc24: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40cc28: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cc2d: 48 89 14 24 mov %rdx,(%rsp) - 40cc31: e8 da 8f ff ff callq 405c10 <__gettext_free_exp> - 40cc36: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cc3b: 48 8b 14 24 mov (%rsp),%rdx - 40cc3f: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40cc43: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cc48: 48 89 14 24 mov %rdx,(%rsp) - 40cc4c: e8 bf 8f ff ff callq 405c10 <__gettext_free_exp> - 40cc51: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cc56: 48 8b 14 24 mov (%rsp),%rdx - 40cc5a: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40cc5e: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cc63: 48 89 14 24 mov %rdx,(%rsp) - 40cc67: e8 a4 8f ff ff callq 405c10 <__gettext_free_exp> - 40cc6c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cc71: 48 8b 14 24 mov (%rsp),%rdx - 40cc75: e9 c9 f0 ff ff jmpq 40bd43 - 40cc7a: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40cc7e: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cc83: 48 89 14 24 mov %rdx,(%rsp) - 40cc87: e8 84 8f ff ff callq 405c10 <__gettext_free_exp> - 40cc8c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cc91: 48 8b 14 24 mov (%rsp),%rdx - 40cc95: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40cc99: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cc9e: 48 89 14 24 mov %rdx,(%rsp) - 40cca2: e8 69 8f ff ff callq 405c10 <__gettext_free_exp> - 40cca7: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ccac: 48 8b 14 24 mov (%rsp),%rdx - 40ccb0: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40ccb4: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ccb9: 48 89 14 24 mov %rdx,(%rsp) - 40ccbd: e8 4e 8f ff ff callq 405c10 <__gettext_free_exp> - 40ccc2: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ccc7: 48 8b 14 24 mov (%rsp),%rdx - 40cccb: e9 ef ee ff ff jmpq 40bbbf - 40ccd0: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40ccd4: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ccd9: 48 89 14 24 mov %rdx,(%rsp) - 40ccdd: e8 2e 8f ff ff callq 405c10 <__gettext_free_exp> - 40cce2: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cce7: 48 8b 14 24 mov (%rsp),%rdx - 40cceb: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40ccef: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40ccf4: 48 89 14 24 mov %rdx,(%rsp) - 40ccf8: e8 13 8f ff ff callq 405c10 <__gettext_free_exp> - 40ccfd: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cd02: 48 8b 14 24 mov (%rsp),%rdx - 40cd06: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40cd0a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cd0f: 48 89 14 24 mov %rdx,(%rsp) - 40cd13: e8 f8 8e ff ff callq 405c10 <__gettext_free_exp> - 40cd18: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cd1d: 48 8b 14 24 mov (%rsp),%rdx - 40cd21: e9 5b ef ff ff jmpq 40bc81 - 40cd26: 48 8b 78 18 mov 0x18(%rax),%rdi - 40cd2a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cd2f: e8 dc 8e ff ff callq 405c10 <__gettext_free_exp> - 40cd34: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cd39: 48 8b 78 10 mov 0x10(%rax),%rdi - 40cd3d: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cd42: e8 c9 8e ff ff callq 405c10 <__gettext_free_exp> - 40cd47: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cd4c: 48 8b 78 08 mov 0x8(%rax),%rdi - 40cd50: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cd55: e8 b6 8e ff ff callq 405c10 <__gettext_free_exp> - 40cd5a: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cd5f: e9 66 dd ff ff jmpq 40aaca - 40cd64: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40cd68: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cd6d: 48 89 14 24 mov %rdx,(%rsp) - 40cd71: e8 9a 8e ff ff callq 405c10 <__gettext_free_exp> - 40cd76: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cd7b: 48 8b 14 24 mov (%rsp),%rdx - 40cd7f: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40cd83: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cd88: 48 89 14 24 mov %rdx,(%rsp) - 40cd8c: e8 7f 8e ff ff callq 405c10 <__gettext_free_exp> - 40cd91: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cd96: 48 8b 14 24 mov (%rsp),%rdx - 40cd9a: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40cd9e: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cda3: 48 89 14 24 mov %rdx,(%rsp) - 40cda7: e8 64 8e ff ff callq 405c10 <__gettext_free_exp> - 40cdac: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cdb1: 48 8b 14 24 mov (%rsp),%rdx - 40cdb5: e9 a4 ed ff ff jmpq 40bb5e - 40cdba: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40cdbe: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cdc3: 48 89 14 24 mov %rdx,(%rsp) - 40cdc7: e8 44 8e ff ff callq 405c10 <__gettext_free_exp> - 40cdcc: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cdd1: 48 8b 14 24 mov (%rsp),%rdx - 40cdd5: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40cdd9: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cdde: 48 89 14 24 mov %rdx,(%rsp) - 40cde2: e8 29 8e ff ff callq 405c10 <__gettext_free_exp> - 40cde7: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40cdec: 48 8b 14 24 mov (%rsp),%rdx - 40cdf0: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40cdf4: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40cdf9: 48 89 14 24 mov %rdx,(%rsp) - 40cdfd: e8 0e 8e ff ff callq 405c10 <__gettext_free_exp> - 40ce02: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40ce07: 48 8b 14 24 mov (%rsp),%rdx - 40ce0b: e9 ba f4 ff ff jmpq 40c2ca - 40ce10: 48 8b 78 18 mov 0x18(%rax),%rdi - 40ce14: 48 89 04 24 mov %rax,(%rsp) - 40ce18: e8 f3 8d ff ff callq 405c10 <__gettext_free_exp> - 40ce1d: 48 8b 04 24 mov (%rsp),%rax - 40ce21: 48 8b 78 10 mov 0x10(%rax),%rdi - 40ce25: 48 89 04 24 mov %rax,(%rsp) - 40ce29: e8 e2 8d ff ff callq 405c10 <__gettext_free_exp> - 40ce2e: 48 8b 04 24 mov (%rsp),%rax - 40ce32: 48 8b 78 08 mov 0x8(%rax),%rdi - 40ce36: 48 89 04 24 mov %rax,(%rsp) - 40ce3a: e8 d1 8d ff ff callq 405c10 <__gettext_free_exp> - 40ce3f: 48 8b 04 24 mov (%rsp),%rax - 40ce43: e9 95 ef ff ff jmpq 40bddd - 40ce48: 48 8b 78 18 mov 0x18(%rax),%rdi - 40ce4c: 48 89 04 24 mov %rax,(%rsp) - 40ce50: e8 bb 8d ff ff callq 405c10 <__gettext_free_exp> - 40ce55: 48 8b 04 24 mov (%rsp),%rax - 40ce59: 48 8b 78 10 mov 0x10(%rax),%rdi - 40ce5d: 48 89 04 24 mov %rax,(%rsp) - 40ce61: e8 aa 8d ff ff callq 405c10 <__gettext_free_exp> - 40ce66: 48 8b 04 24 mov (%rsp),%rax - 40ce6a: 48 8b 78 08 mov 0x8(%rax),%rdi - 40ce6e: 48 89 04 24 mov %rax,(%rsp) - 40ce72: e8 99 8d ff ff callq 405c10 <__gettext_free_exp> - 40ce77: 48 8b 04 24 mov (%rsp),%rax - 40ce7b: e9 c6 e6 ff ff jmpq 40b546 - 40ce80: 48 8b 78 18 mov 0x18(%rax),%rdi - 40ce84: 48 89 04 24 mov %rax,(%rsp) - 40ce88: e8 83 8d ff ff callq 405c10 <__gettext_free_exp> - 40ce8d: 48 8b 04 24 mov (%rsp),%rax - 40ce91: 48 8b 78 10 mov 0x10(%rax),%rdi - 40ce95: 48 89 04 24 mov %rax,(%rsp) - 40ce99: e8 72 8d ff ff callq 405c10 <__gettext_free_exp> - 40ce9e: 48 8b 04 24 mov (%rsp),%rax - 40cea2: 48 8b 78 08 mov 0x8(%rax),%rdi - 40cea6: 48 89 04 24 mov %rax,(%rsp) - 40ceaa: e8 61 8d ff ff callq 405c10 <__gettext_free_exp> - 40ceaf: 48 8b 04 24 mov (%rsp),%rax - 40ceb3: e9 44 e5 ff ff jmpq 40b3fc - 40ceb8: 48 8b 78 18 mov 0x18(%rax),%rdi - 40cebc: 48 89 04 24 mov %rax,(%rsp) - 40cec0: e8 4b 8d ff ff callq 405c10 <__gettext_free_exp> - 40cec5: 48 8b 04 24 mov (%rsp),%rax - 40cec9: 48 8b 78 10 mov 0x10(%rax),%rdi - 40cecd: 48 89 04 24 mov %rax,(%rsp) - 40ced1: e8 3a 8d ff ff callq 405c10 <__gettext_free_exp> - 40ced6: 48 8b 04 24 mov (%rsp),%rax - 40ceda: 48 8b 78 08 mov 0x8(%rax),%rdi - 40cede: 48 89 04 24 mov %rax,(%rsp) - 40cee2: e8 29 8d ff ff callq 405c10 <__gettext_free_exp> - 40cee7: 48 8b 04 24 mov (%rsp),%rax - 40ceeb: e9 c4 e6 ff ff jmpq 40b5b4 - 40cef0: 48 8b 78 18 mov 0x18(%rax),%rdi - 40cef4: 48 89 04 24 mov %rax,(%rsp) - 40cef8: e8 13 8d ff ff callq 405c10 <__gettext_free_exp> - 40cefd: 48 8b 04 24 mov (%rsp),%rax - 40cf01: 48 8b 78 10 mov 0x10(%rax),%rdi - 40cf05: 48 89 04 24 mov %rax,(%rsp) - 40cf09: e8 02 8d ff ff callq 405c10 <__gettext_free_exp> - 40cf0e: 48 8b 04 24 mov (%rsp),%rax - 40cf12: 48 8b 78 08 mov 0x8(%rax),%rdi - 40cf16: 48 89 04 24 mov %rax,(%rsp) - 40cf1a: e8 f1 8c ff ff callq 405c10 <__gettext_free_exp> - 40cf1f: 48 8b 04 24 mov (%rsp),%rax - 40cf23: e9 66 e4 ff ff jmpq 40b38e - 40cf28: 48 8b 78 18 mov 0x18(%rax),%rdi - 40cf2c: 48 89 04 24 mov %rax,(%rsp) - 40cf30: e8 db 8c ff ff callq 405c10 <__gettext_free_exp> - 40cf35: 48 8b 04 24 mov (%rsp),%rax - 40cf39: 48 8b 78 10 mov 0x10(%rax),%rdi - 40cf3d: 48 89 04 24 mov %rax,(%rsp) - 40cf41: e8 ca 8c ff ff callq 405c10 <__gettext_free_exp> - 40cf46: 48 8b 04 24 mov (%rsp),%rax - 40cf4a: 48 8b 78 08 mov 0x8(%rax),%rdi - 40cf4e: 48 89 04 24 mov %rax,(%rsp) - 40cf52: e8 b9 8c ff ff callq 405c10 <__gettext_free_exp> - 40cf57: 48 8b 04 24 mov (%rsp),%rax - 40cf5b: e9 26 e1 ff ff jmpq 40b086 - 40cf60: 48 8b 78 18 mov 0x18(%rax),%rdi - 40cf64: 48 89 04 24 mov %rax,(%rsp) - 40cf68: e8 a3 8c ff ff callq 405c10 <__gettext_free_exp> - 40cf6d: 48 8b 04 24 mov (%rsp),%rax - 40cf71: 48 8b 78 10 mov 0x10(%rax),%rdi - 40cf75: 48 89 04 24 mov %rax,(%rsp) - 40cf79: e8 92 8c ff ff callq 405c10 <__gettext_free_exp> - 40cf7e: 48 8b 04 24 mov (%rsp),%rax - 40cf82: 48 8b 78 08 mov 0x8(%rax),%rdi - 40cf86: 48 89 04 24 mov %rax,(%rsp) - 40cf8a: e8 81 8c ff ff callq 405c10 <__gettext_free_exp> - 40cf8f: 48 8b 04 24 mov (%rsp),%rax - 40cf93: e9 fc ed ff ff jmpq 40bd94 - 40cf98: 48 8b 04 24 mov (%rsp),%rax - 40cf9c: 48 8b 78 18 mov 0x18(%rax),%rdi - 40cfa0: e8 6b 8c ff ff callq 405c10 <__gettext_free_exp> - 40cfa5: 48 8b 04 24 mov (%rsp),%rax - 40cfa9: 48 8b 40 10 mov 0x10(%rax),%rax - 40cfad: 48 85 c0 test %rax,%rax - 40cfb0: 0f 84 ee f4 ff ff je 40c4a4 - 40cfb6: 8b 10 mov (%rax),%edx - 40cfb8: 83 fa 02 cmp $0x2,%edx - 40cfbb: 0f 84 b5 f4 ff ff je 40c476 - 40cfc1: 83 fa 03 cmp $0x3,%edx - 40cfc4: 0f 84 99 f4 ff ff je 40c463 - 40cfca: 83 fa 01 cmp $0x1,%edx - 40cfcd: 0f 85 c9 f4 ff ff jne 40c49c - 40cfd3: e9 b1 f4 ff ff jmpq 40c489 - 40cfd8: 48 8b 78 18 mov 0x18(%rax),%rdi - 40cfdc: 48 89 04 24 mov %rax,(%rsp) - 40cfe0: e8 2b 8c ff ff callq 405c10 <__gettext_free_exp> - 40cfe5: 48 8b 04 24 mov (%rsp),%rax - 40cfe9: 48 8b 78 10 mov 0x10(%rax),%rdi - 40cfed: 48 89 04 24 mov %rax,(%rsp) - 40cff1: e8 1a 8c ff ff callq 405c10 <__gettext_free_exp> - 40cff6: 48 8b 04 24 mov (%rsp),%rax - 40cffa: 48 8b 78 08 mov 0x8(%rax),%rdi - 40cffe: 48 89 04 24 mov %rax,(%rsp) - 40d002: e8 09 8c ff ff callq 405c10 <__gettext_free_exp> - 40d007: 48 8b 04 24 mov (%rsp),%rax - 40d00b: e9 16 ee ff ff jmpq 40be26 - 40d010: 48 8b 04 24 mov (%rsp),%rax - 40d014: 48 8b 40 18 mov 0x18(%rax),%rax - 40d018: 48 85 c0 test %rax,%rax - 40d01b: 0f 84 46 d3 ff ff je 40a367 - 40d021: 8b 10 mov (%rax),%edx - 40d023: 83 fa 02 cmp $0x2,%edx - 40d026: 0f 84 0d d3 ff ff je 40a339 - 40d02c: 83 fa 03 cmp $0x3,%edx - 40d02f: 0f 84 f1 d2 ff ff je 40a326 - 40d035: 83 fa 01 cmp $0x1,%edx - 40d038: 0f 85 21 d3 ff ff jne 40a35f - 40d03e: e9 09 d3 ff ff jmpq 40a34c - 40d043: 48 8b 78 18 mov 0x18(%rax),%rdi - 40d047: 48 89 04 24 mov %rax,(%rsp) - 40d04b: e8 c0 8b ff ff callq 405c10 <__gettext_free_exp> - 40d050: 48 8b 04 24 mov (%rsp),%rax - 40d054: 48 8b 78 10 mov 0x10(%rax),%rdi - 40d058: 48 89 04 24 mov %rax,(%rsp) - 40d05c: e8 af 8b ff ff callq 405c10 <__gettext_free_exp> - 40d061: 48 8b 04 24 mov (%rsp),%rax - 40d065: 48 8b 50 08 mov 0x8(%rax),%rdx - 40d069: 48 85 d2 test %rdx,%rdx - 40d06c: 0f 84 d4 dd ff ff je 40ae46 - 40d072: 8b 0a mov (%rdx),%ecx - 40d074: 83 f9 02 cmp $0x2,%ecx - 40d077: 74 3a je 40d0b3 - 40d079: 83 f9 03 cmp $0x3,%ecx - 40d07c: 74 1a je 40d098 - 40d07e: 83 f9 01 cmp $0x1,%ecx - 40d081: 74 4b je 40d0ce - 40d083: 48 89 d7 mov %rdx,%rdi - 40d086: 48 89 04 24 mov %rax,(%rsp) - 40d08a: e8 21 0d 01 00 callq 41ddb0 <__cfree> - 40d08f: 48 8b 04 24 mov (%rsp),%rax - 40d093: e9 ae dd ff ff jmpq 40ae46 - 40d098: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40d09c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40d0a1: 48 89 14 24 mov %rdx,(%rsp) - 40d0a5: e8 66 8b ff ff callq 405c10 <__gettext_free_exp> - 40d0aa: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40d0af: 48 8b 14 24 mov (%rsp),%rdx - 40d0b3: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40d0b7: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40d0bc: 48 89 14 24 mov %rdx,(%rsp) - 40d0c0: e8 4b 8b ff ff callq 405c10 <__gettext_free_exp> - 40d0c5: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40d0ca: 48 8b 14 24 mov (%rsp),%rdx - 40d0ce: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40d0d2: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40d0d7: 48 89 14 24 mov %rdx,(%rsp) - 40d0db: e8 30 8b ff ff callq 405c10 <__gettext_free_exp> - 40d0e0: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40d0e5: 48 8b 14 24 mov (%rsp),%rdx - 40d0e9: eb 98 jmp 40d083 - 40d0eb: 48 8b 78 18 mov 0x18(%rax),%rdi - 40d0ef: 48 89 04 24 mov %rax,(%rsp) - 40d0f3: e8 18 8b ff ff callq 405c10 <__gettext_free_exp> - 40d0f8: 48 8b 04 24 mov (%rsp),%rax - 40d0fc: 48 8b 78 10 mov 0x10(%rax),%rdi - 40d100: 48 89 04 24 mov %rax,(%rsp) - 40d104: e8 07 8b ff ff callq 405c10 <__gettext_free_exp> - 40d109: 48 8b 04 24 mov (%rsp),%rax - 40d10d: 48 8b 78 08 mov 0x8(%rax),%rdi - 40d111: 48 89 04 24 mov %rax,(%rsp) - 40d115: e8 f6 8a ff ff callq 405c10 <__gettext_free_exp> - 40d11a: 48 8b 04 24 mov (%rsp),%rax - 40d11e: e9 43 de ff ff jmpq 40af66 - 40d123: 48 8b 78 18 mov 0x18(%rax),%rdi - 40d127: 48 89 04 24 mov %rax,(%rsp) - 40d12b: e8 e0 8a ff ff callq 405c10 <__gettext_free_exp> - 40d130: 48 8b 04 24 mov (%rsp),%rax - 40d134: 48 8b 78 10 mov 0x10(%rax),%rdi - 40d138: 48 89 04 24 mov %rax,(%rsp) - 40d13c: e8 cf 8a ff ff callq 405c10 <__gettext_free_exp> - 40d141: 48 8b 04 24 mov (%rsp),%rax - 40d145: 48 8b 78 08 mov 0x8(%rax),%rdi - 40d149: 48 89 04 24 mov %rax,(%rsp) - 40d14d: e8 be 8a ff ff callq 405c10 <__gettext_free_exp> - 40d152: 48 8b 04 24 mov (%rsp),%rax - 40d156: e9 7d e3 ff ff jmpq 40b4d8 - 40d15b: 48 8b 78 18 mov 0x18(%rax),%rdi - 40d15f: 48 89 04 24 mov %rax,(%rsp) - 40d163: e8 a8 8a ff ff callq 405c10 <__gettext_free_exp> - 40d168: 48 8b 04 24 mov (%rsp),%rax - 40d16c: 48 8b 78 10 mov 0x10(%rax),%rdi - 40d170: 48 89 04 24 mov %rax,(%rsp) - 40d174: e8 97 8a ff ff callq 405c10 <__gettext_free_exp> - 40d179: 48 8b 04 24 mov (%rsp),%rax - 40d17d: 48 8b 50 08 mov 0x8(%rax),%rdx - 40d181: 48 85 d2 test %rdx,%rdx - 40d184: 0f 84 e0 e2 ff ff je 40b46a - 40d18a: 8b 0a mov (%rdx),%ecx - 40d18c: 83 f9 02 cmp $0x2,%ecx - 40d18f: 74 3a je 40d1cb - 40d191: 83 f9 03 cmp $0x3,%ecx - 40d194: 74 1a je 40d1b0 - 40d196: 83 f9 01 cmp $0x1,%ecx - 40d199: 74 4b je 40d1e6 - 40d19b: 48 89 d7 mov %rdx,%rdi - 40d19e: 48 89 04 24 mov %rax,(%rsp) - 40d1a2: e8 09 0c 01 00 callq 41ddb0 <__cfree> - 40d1a7: 48 8b 04 24 mov (%rsp),%rax - 40d1ab: e9 ba e2 ff ff jmpq 40b46a - 40d1b0: 48 8b 7a 18 mov 0x18(%rdx),%rdi - 40d1b4: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40d1b9: 48 89 14 24 mov %rdx,(%rsp) - 40d1bd: e8 4e 8a ff ff callq 405c10 <__gettext_free_exp> - 40d1c2: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40d1c7: 48 8b 14 24 mov (%rsp),%rdx - 40d1cb: 48 8b 7a 10 mov 0x10(%rdx),%rdi - 40d1cf: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40d1d4: 48 89 14 24 mov %rdx,(%rsp) - 40d1d8: e8 33 8a ff ff callq 405c10 <__gettext_free_exp> - 40d1dd: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40d1e2: 48 8b 14 24 mov (%rsp),%rdx - 40d1e6: 48 8b 7a 08 mov 0x8(%rdx),%rdi - 40d1ea: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40d1ef: 48 89 14 24 mov %rdx,(%rsp) - 40d1f3: e8 18 8a ff ff callq 405c10 <__gettext_free_exp> - 40d1f8: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40d1fd: 48 8b 14 24 mov (%rsp),%rdx - 40d201: eb 98 jmp 40d19b - 40d203: bf 20 00 00 00 mov $0x20,%edi - 40d208: 89 34 24 mov %esi,(%rsp) - 40d20b: e8 00 08 01 00 callq 41da10 <__libc_malloc> - 40d210: 48 85 c0 test %rax,%rax - 40d213: 8b 34 24 mov (%rsp),%esi - 40d216: 0f 84 b4 d3 ff ff je 40a5d0 - 40d21c: 44 89 20 mov %r12d,(%rax) - 40d21f: 89 70 04 mov %esi,0x4(%rax) - 40d222: e9 ab d3 ff ff jmpq 40a5d2 - 40d227: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40d22e: 00 00 - -000000000040d230 <__gettextparse>: - 40d230: 41 57 push %r15 - 40d232: 41 56 push %r14 - 40d234: 45 31 c0 xor %r8d,%r8d - 40d237: 41 55 push %r13 - 40d239: 41 54 push %r12 - 40d23b: 45 89 c5 mov %r8d,%r13d - 40d23e: 55 push %rbp - 40d23f: 53 push %rbx - 40d240: bd c8 00 00 00 mov $0xc8,%ebp - 40d245: 41 bc fe ff ff ff mov $0xfffffffe,%r12d - 40d24b: 48 81 ec 28 08 00 00 sub $0x828,%rsp - 40d252: 48 8d 9c 24 e0 01 00 lea 0x1e0(%rsp),%rbx - 40d259: 00 - 40d25a: 4c 8d 74 24 50 lea 0x50(%rsp),%r14 - 40d25f: 48 89 7c 24 18 mov %rdi,0x18(%rsp) - 40d264: c7 44 24 0c 00 00 00 movl $0x0,0xc(%rsp) - 40d26b: 00 - 40d26c: 48 89 1c 24 mov %rbx,(%rsp) - 40d270: 4c 89 f1 mov %r14,%rcx - 40d273: 48 8d 44 2d 00 lea 0x0(%rbp,%rbp,1),%rax - 40d278: 66 45 89 2e mov %r13w,(%r14) - 40d27c: 48 8d 54 01 fe lea -0x2(%rcx,%rax,1),%rdx - 40d281: 49 39 d6 cmp %rdx,%r14 - 40d284: 0f 82 c4 00 00 00 jb 40d34e <__gettextparse+0x11e> - 40d28a: 49 29 ce sub %rcx,%r14 - 40d28d: 49 d1 fe sar %r14 - 40d290: 48 81 fd 0f 27 00 00 cmp $0x270f,%rbp - 40d297: 49 8d 5e 01 lea 0x1(%r14),%rbx - 40d29b: 0f 87 0e 07 00 00 ja 40d9af <__gettextparse+0x77f> - 40d2a1: 48 3d 10 27 00 00 cmp $0x2710,%rax - 40d2a7: bd 10 27 00 00 mov $0x2710,%ebp - 40d2ac: 48 89 4c 24 10 mov %rcx,0x10(%rsp) - 40d2b1: 48 0f 46 e8 cmovbe %rax,%rbp - 40d2b5: 48 8d 44 ad 00 lea 0x0(%rbp,%rbp,4),%rax - 40d2ba: 48 8d 7c 00 07 lea 0x7(%rax,%rax,1),%rdi - 40d2bf: e8 4c 07 01 00 callq 41da10 <__libc_malloc> - 40d2c4: 48 85 c0 test %rax,%rax - 40d2c7: 49 89 c7 mov %rax,%r15 - 40d2ca: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx - 40d2cf: 0f 84 da 06 00 00 je 40d9af <__gettextparse+0x77f> - 40d2d5: 4c 8d 34 1b lea (%rbx,%rbx,1),%r14 - 40d2d9: 48 89 ce mov %rcx,%rsi - 40d2dc: 48 89 c7 mov %rax,%rdi - 40d2df: 48 c1 e3 03 shl $0x3,%rbx - 40d2e3: 4c 89 f2 mov %r14,%rdx - 40d2e6: e8 35 ed 01 00 callq 42c020 - 40d2eb: 4d 8d 14 6f lea (%r15,%rbp,2),%r10 - 40d2ef: 48 8b 34 24 mov (%rsp),%rsi - 40d2f3: 48 8d 44 2d 00 lea 0x0(%rbp,%rbp,1),%rax - 40d2f8: 48 89 da mov %rbx,%rdx - 40d2fb: 4c 89 d7 mov %r10,%rdi - 40d2fe: 48 89 44 24 20 mov %rax,0x20(%rsp) - 40d303: e8 18 ed 01 00 callq 42c020 - 40d308: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx - 40d30d: 49 89 c2 mov %rax,%r10 - 40d310: 48 8d 44 24 50 lea 0x50(%rsp),%rax - 40d315: 48 39 c1 cmp %rax,%rcx - 40d318: 74 10 je 40d32a <__gettextparse+0xfa> - 40d31a: 48 89 cf mov %rcx,%rdi - 40d31d: 4c 89 14 24 mov %r10,(%rsp) - 40d321: e8 8a 0a 01 00 callq 41ddb0 <__cfree> - 40d326: 4c 8b 14 24 mov (%rsp),%r10 - 40d32a: 48 8d 44 2d 00 lea 0x0(%rbp,%rbp,1),%rax - 40d32f: 4f 8d 74 37 fe lea -0x2(%r15,%r14,1),%r14 - 40d334: 49 8d 5c 1a f8 lea -0x8(%r10,%rbx,1),%rbx - 40d339: 49 8d 44 07 fe lea -0x2(%r15,%rax,1),%rax - 40d33e: 49 39 c6 cmp %rax,%r14 - 40d341: 0f 83 7f 06 00 00 jae 40d9c6 <__gettextparse+0x796> - 40d347: 4c 89 14 24 mov %r10,(%rsp) - 40d34b: 4c 89 f9 mov %r15,%rcx - 40d34e: 41 83 fd 09 cmp $0x9,%r13d - 40d352: 0f 84 64 06 00 00 je 40d9bc <__gettextparse+0x78c> - 40d358: 4d 63 c5 movslq %r13d,%r8 - 40d35b: 41 0f be 80 20 17 4a movsbl 0x4a1720(%r8),%eax - 40d362: 00 - 40d363: 83 f8 f6 cmp $0xfffffff6,%eax - 40d366: 74 3f je 40d3a7 <__gettextparse+0x177> - 40d368: 41 83 fc fe cmp $0xfffffffe,%r12d - 40d36c: 0f 84 2e 02 00 00 je 40d5a0 <__gettextparse+0x370> - 40d372: 45 85 e4 test %r12d,%r12d - 40d375: 0f 8e bc 01 00 00 jle 40d537 <__gettextparse+0x307> - 40d37b: 41 81 fc 06 01 00 00 cmp $0x106,%r12d - 40d382: be 02 00 00 00 mov $0x2,%esi - 40d387: 0f 8e 93 01 00 00 jle 40d520 <__gettextparse+0x2f0> - 40d38d: 8d 14 06 lea (%rsi,%rax,1),%edx - 40d390: 83 fa 36 cmp $0x36,%edx - 40d393: 77 12 ja 40d3a7 <__gettextparse+0x177> - 40d395: 48 63 d2 movslq %edx,%rdx - 40d398: 0f be ba a0 16 4a 00 movsbl 0x4a16a0(%rdx),%edi - 40d39f: 39 fe cmp %edi,%esi - 40d3a1: 0f 84 b9 01 00 00 je 40d560 <__gettextparse+0x330> - 40d3a7: 41 0f b6 b0 40 17 4a movzbl 0x4a1740(%r8),%esi - 40d3ae: 00 - 40d3af: 85 f6 test %esi,%esi - 40d3b1: 48 89 f2 mov %rsi,%rdx - 40d3b4: 74 32 je 40d3e8 <__gettextparse+0x1b8> - 40d3b6: 48 63 f6 movslq %esi,%rsi - 40d3b9: bf 01 00 00 00 mov $0x1,%edi - 40d3be: 0f b6 86 60 17 4a 00 movzbl 0x4a1760(%rsi),%eax - 40d3c5: 29 c7 sub %eax,%edi - 40d3c7: 49 89 c7 mov %rax,%r15 - 40d3ca: 80 fa 0d cmp $0xd,%dl - 40d3cd: 48 63 c7 movslq %edi,%rax - 40d3d0: 48 8b 04 c3 mov (%rbx,%rax,8),%rax - 40d3d4: 0f 87 94 03 00 00 ja 40d76e <__gettextparse+0x53e> - 40d3da: ff 24 d5 40 12 4a 00 jmpq *0x4a1240(,%rdx,8) - 40d3e1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40d3e8: 83 7c 24 0c 03 cmpl $0x3,0xc(%rsp) - 40d3ed: 75 21 jne 40d410 <__gettextparse+0x1e0> - 40d3ef: e9 54 01 00 00 jmpq 40d548 <__gettextparse+0x318> - 40d3f4: 0f 1f 40 00 nopl 0x0(%rax) - 40d3f8: 4c 39 f1 cmp %r14,%rcx - 40d3fb: 74 53 je 40d450 <__gettextparse+0x220> - 40d3fd: 49 83 ee 02 sub $0x2,%r14 - 40d401: 49 0f bf 06 movswq (%r14),%rax - 40d405: 48 83 eb 08 sub $0x8,%rbx - 40d409: 0f be 80 20 17 4a 00 movsbl 0x4a1720(%rax),%eax - 40d410: 83 f8 f6 cmp $0xfffffff6,%eax - 40d413: 74 e3 je 40d3f8 <__gettextparse+0x1c8> - 40d415: 83 c0 01 add $0x1,%eax - 40d418: 83 f8 36 cmp $0x36,%eax - 40d41b: 77 db ja 40d3f8 <__gettextparse+0x1c8> - 40d41d: 48 98 cltq - 40d41f: 80 b8 a0 16 4a 00 01 cmpb $0x1,0x4a16a0(%rax) - 40d426: 75 d0 jne 40d3f8 <__gettextparse+0x1c8> - 40d428: 44 0f b6 a8 e0 16 4a movzbl 0x4a16e0(%rax),%r13d - 40d42f: 00 - 40d430: 45 85 ed test %r13d,%r13d - 40d433: 74 c3 je 40d3f8 <__gettextparse+0x1c8> - 40d435: 48 8b 44 24 28 mov 0x28(%rsp),%rax - 40d43a: 48 83 c3 08 add $0x8,%rbx - 40d43e: c7 44 24 0c 03 00 00 movl $0x3,0xc(%rsp) - 40d445: 00 - 40d446: 48 89 03 mov %rax,(%rbx) - 40d449: e9 b0 00 00 00 jmpq 40d4fe <__gettextparse+0x2ce> - 40d44e: 66 90 xchg %ax,%ax - 40d450: bb 01 00 00 00 mov $0x1,%ebx - 40d455: 48 8d 44 24 50 lea 0x50(%rsp),%rax - 40d45a: 49 39 c6 cmp %rax,%r14 - 40d45d: 74 08 je 40d467 <__gettextparse+0x237> - 40d45f: 4c 89 f7 mov %r14,%rdi - 40d462: e8 49 09 01 00 callq 41ddb0 <__cfree> - 40d467: 48 81 c4 28 08 00 00 add $0x828,%rsp - 40d46e: 89 d8 mov %ebx,%eax - 40d470: 5b pop %rbx - 40d471: 5d pop %rbp - 40d472: 41 5c pop %r12 - 40d474: 41 5d pop %r13 - 40d476: 41 5e pop %r14 - 40d478: 41 5f pop %r15 - 40d47a: c3 retq - 40d47b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40d480: 48 8b 03 mov (%rbx),%rax - 40d483: 48 8b 53 f0 mov -0x10(%rbx),%rdx - 40d487: 48 8d 74 24 30 lea 0x30(%rsp),%rsi - 40d48c: 8b 7b f8 mov -0x8(%rbx),%edi - 40d48f: 48 89 4c 24 10 mov %rcx,0x10(%rsp) - 40d494: 48 89 54 24 30 mov %rdx,0x30(%rsp) - 40d499: 48 89 44 24 38 mov %rax,0x38(%rsp) - 40d49e: e8 2d 8e ff ff callq 4062d0 - 40d4a3: 4a 8d 3c fd 00 00 00 lea 0x0(,%r15,8),%rdi - 40d4aa: 00 - 40d4ab: 4b 8d 14 3f lea (%r15,%r15,1),%rdx - 40d4af: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx - 40d4b4: be ff ff ff ff mov $0xffffffff,%esi - 40d4b9: 41 b8 02 00 00 00 mov $0x2,%r8d - 40d4bf: 48 f7 df neg %rdi - 40d4c2: 48 f7 da neg %rdx - 40d4c5: 48 01 df add %rbx,%rdi - 40d4c8: 49 01 d6 add %rdx,%r14 - 40d4cb: 48 89 47 08 mov %rax,0x8(%rdi) - 40d4cf: 41 0f bf 06 movswl (%r14),%eax - 40d4d3: 48 8d 5f 08 lea 0x8(%rdi),%rbx - 40d4d7: 89 c2 mov %eax,%edx - 40d4d9: 01 f0 add %esi,%eax - 40d4db: 83 f8 36 cmp $0x36,%eax - 40d4de: 77 13 ja 40d4f3 <__gettextparse+0x2c3> - 40d4e0: 48 98 cltq - 40d4e2: 66 0f be b0 a0 16 4a movsbw 0x4a16a0(%rax),%si - 40d4e9: 00 - 40d4ea: 66 39 f2 cmp %si,%dx - 40d4ed: 0f 84 5b 02 00 00 je 40d74e <__gettextparse+0x51e> - 40d4f3: 4d 63 c0 movslq %r8d,%r8 - 40d4f6: 45 0f be a8 3b 17 4a movsbl 0x4a173b(%r8),%r13d - 40d4fd: 00 - 40d4fe: 49 83 c6 02 add $0x2,%r14 - 40d502: e9 6c fd ff ff jmpq 40d273 <__gettextparse+0x43> - 40d507: 49 8d 79 02 lea 0x2(%r9),%rdi - 40d50b: 48 8b 74 24 18 mov 0x18(%rsp),%rsi - 40d510: 45 85 e4 test %r12d,%r12d - 40d513: 48 89 3e mov %rdi,(%rsi) - 40d516: 7e 1f jle 40d537 <__gettextparse+0x307> - 40d518: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40d51f: 00 - 40d520: 49 63 d4 movslq %r12d,%rdx - 40d523: 0f b6 b2 80 17 4a 00 movzbl 0x4a1780(%rdx),%esi - 40d52a: e9 5e fe ff ff jmpq 40d38d <__gettextparse+0x15d> - 40d52f: 48 8b 74 24 18 mov 0x18(%rsp),%rsi - 40d534: 4c 89 0e mov %r9,(%rsi) - 40d537: 31 f6 xor %esi,%esi - 40d539: 45 31 e4 xor %r12d,%r12d - 40d53c: e9 4c fe ff ff jmpq 40d38d <__gettextparse+0x15d> - 40d541: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40d548: 41 83 fc 00 cmp $0x0,%r12d - 40d54c: 0f 8e 09 02 00 00 jle 40d75b <__gettextparse+0x52b> - 40d552: 41 bc fe ff ff ff mov $0xfffffffe,%r12d - 40d558: e9 b3 fe ff ff jmpq 40d410 <__gettextparse+0x1e0> - 40d55d: 0f 1f 00 nopl (%rax) - 40d560: 44 0f b6 aa e0 16 4a movzbl 0x4a16e0(%rdx),%r13d - 40d567: 00 - 40d568: 45 85 ed test %r13d,%r13d - 40d56b: 0f 84 c8 01 00 00 je 40d739 <__gettextparse+0x509> - 40d571: 8b 44 24 0c mov 0xc(%rsp),%eax - 40d575: 41 bc fe ff ff ff mov $0xfffffffe,%r12d - 40d57b: 83 f8 01 cmp $0x1,%eax - 40d57e: 83 d0 ff adc $0xffffffff,%eax - 40d581: 48 83 c3 08 add $0x8,%rbx - 40d585: 89 44 24 0c mov %eax,0xc(%rsp) - 40d589: 48 8b 44 24 28 mov 0x28(%rsp),%rax - 40d58e: 48 89 03 mov %rax,(%rbx) - 40d591: e9 68 ff ff ff jmpq 40d4fe <__gettextparse+0x2ce> - 40d596: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40d59d: 00 00 00 - 40d5a0: 48 8b 74 24 18 mov 0x18(%rsp),%rsi - 40d5a5: 4c 8b 0e mov (%rsi),%r9 - 40d5a8: 41 0f b6 11 movzbl (%r9),%edx - 40d5ac: 84 d2 test %dl,%dl - 40d5ae: 74 84 je 40d534 <__gettextparse+0x304> - 40d5b0: 80 fa 09 cmp $0x9,%dl - 40d5b3: 74 0b je 40d5c0 <__gettextparse+0x390> - 40d5b5: 80 fa 20 cmp $0x20,%dl - 40d5b8: 75 20 jne 40d5da <__gettextparse+0x3aa> - 40d5ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 40d5c0: 49 83 c1 01 add $0x1,%r9 - 40d5c4: 41 0f b6 11 movzbl (%r9),%edx - 40d5c8: 84 d2 test %dl,%dl - 40d5ca: 0f 84 5f ff ff ff je 40d52f <__gettextparse+0x2ff> - 40d5d0: 80 fa 20 cmp $0x20,%dl - 40d5d3: 74 eb je 40d5c0 <__gettextparse+0x390> - 40d5d5: 80 fa 09 cmp $0x9,%dl - 40d5d8: 74 e6 je 40d5c0 <__gettextparse+0x390> - 40d5da: 80 fa 7c cmp $0x7c,%dl - 40d5dd: 49 8d 79 01 lea 0x1(%r9),%rdi - 40d5e1: 44 0f be e2 movsbl %dl,%r12d - 40d5e5: 0f 87 c0 01 00 00 ja 40d7ab <__gettextparse+0x57b> - 40d5eb: 0f b6 d2 movzbl %dl,%edx - 40d5ee: ff 24 d5 b0 12 4a 00 jmpq *0x4a12b0(,%rdx,8) - 40d5f5: 48 8b 13 mov (%rbx),%rdx - 40d5f8: 48 85 d2 test %rdx,%rdx - 40d5fb: 0f 84 60 01 00 00 je 40d761 <__gettextparse+0x531> - 40d601: 48 8b 74 24 18 mov 0x18(%rsp),%rsi - 40d606: 4a 8d 3c fd 00 00 00 lea 0x0(,%r15,8),%rdi - 40d60d: 00 - 40d60e: 41 b8 01 00 00 00 mov $0x1,%r8d - 40d614: 48 f7 df neg %rdi - 40d617: 48 89 56 08 mov %rdx,0x8(%rsi) - 40d61b: 4b 8d 14 3f lea (%r15,%r15,1),%rdx - 40d61f: be f6 ff ff ff mov $0xfffffff6,%esi - 40d624: 48 f7 da neg %rdx - 40d627: e9 99 fe ff ff jmpq 40d4c5 <__gettextparse+0x295> - 40d62c: 48 8b 53 f0 mov -0x10(%rbx),%rdx - 40d630: 48 8b 73 e0 mov -0x20(%rbx),%rsi - 40d634: bf 03 00 00 00 mov $0x3,%edi - 40d639: 48 8b 03 mov (%rbx),%rax - 40d63c: 48 89 4c 24 10 mov %rcx,0x10(%rsp) - 40d641: 48 89 54 24 38 mov %rdx,0x38(%rsp) - 40d646: 48 8d 54 24 30 lea 0x30(%rsp),%rdx - 40d64b: 48 89 74 24 30 mov %rsi,0x30(%rsp) - 40d650: be 10 00 00 00 mov $0x10,%esi - 40d655: 48 89 44 24 40 mov %rax,0x40(%rsp) - 40d65a: e8 01 c4 ff ff callq 409a60 - 40d65f: e9 3f fe ff ff jmpq 40d4a3 <__gettextparse+0x273> - 40d664: 48 8b 03 mov (%rbx),%rax - 40d667: 48 8b 53 f0 mov -0x10(%rbx),%rdx - 40d66b: 48 8d 74 24 30 lea 0x30(%rsp),%rsi - 40d670: 48 89 4c 24 10 mov %rcx,0x10(%rsp) - 40d675: bf 0f 00 00 00 mov $0xf,%edi - 40d67a: 48 89 54 24 30 mov %rdx,0x30(%rsp) - 40d67f: 48 89 44 24 38 mov %rax,0x38(%rsp) - 40d684: e9 15 fe ff ff jmpq 40d49e <__gettextparse+0x26e> - 40d689: 48 8b 03 mov (%rbx),%rax - 40d68c: 48 8b 53 f0 mov -0x10(%rbx),%rdx - 40d690: 48 8d 74 24 30 lea 0x30(%rsp),%rsi - 40d695: 48 89 4c 24 10 mov %rcx,0x10(%rsp) - 40d69a: bf 0e 00 00 00 mov $0xe,%edi - 40d69f: 48 89 54 24 30 mov %rdx,0x30(%rsp) - 40d6a4: 48 89 44 24 38 mov %rax,0x38(%rsp) - 40d6a9: e9 f0 fd ff ff jmpq 40d49e <__gettextparse+0x26e> - 40d6ae: 48 8b 43 f8 mov -0x8(%rbx),%rax - 40d6b2: 4a 8d 3c fd 00 00 00 lea 0x0(,%r15,8),%rdi - 40d6b9: 00 - 40d6ba: 4b 8d 14 3f lea (%r15,%r15,1),%rdx - 40d6be: be ff ff ff ff mov $0xffffffff,%esi - 40d6c3: 41 b8 02 00 00 00 mov $0x2,%r8d - 40d6c9: 48 f7 df neg %rdi - 40d6cc: 48 f7 da neg %rdx - 40d6cf: e9 f1 fd ff ff jmpq 40d4c5 <__gettextparse+0x295> - 40d6d4: 48 8b 03 mov (%rbx),%rax - 40d6d7: 48 8d 54 24 30 lea 0x30(%rsp),%rdx - 40d6dc: be 02 00 00 00 mov $0x2,%esi - 40d6e1: bf 01 00 00 00 mov $0x1,%edi - 40d6e6: 48 89 4c 24 10 mov %rcx,0x10(%rsp) - 40d6eb: 48 89 44 24 30 mov %rax,0x30(%rsp) - 40d6f0: e8 6b c3 ff ff callq 409a60 - 40d6f5: e9 a9 fd ff ff jmpq 40d4a3 <__gettextparse+0x273> - 40d6fa: 31 d2 xor %edx,%edx - 40d6fc: 31 ff xor %edi,%edi - 40d6fe: be 01 00 00 00 mov $0x1,%esi - 40d703: 48 89 4c 24 10 mov %rcx,0x10(%rsp) - 40d708: e8 53 c3 ff ff callq 409a60 - 40d70d: 48 85 c0 test %rax,%rax - 40d710: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx - 40d715: 0f 84 b8 02 00 00 je 40d9d3 <__gettextparse+0x7a3> - 40d71b: 48 8b 13 mov (%rbx),%rdx - 40d71e: 48 89 50 08 mov %rdx,0x8(%rax) - 40d722: eb 8e jmp 40d6b2 <__gettextparse+0x482> - 40d724: 31 d2 xor %edx,%edx - 40d726: 31 f6 xor %esi,%esi - 40d728: 31 ff xor %edi,%edi - 40d72a: 48 89 4c 24 10 mov %rcx,0x10(%rsp) - 40d72f: e8 2c c3 ff ff callq 409a60 - 40d734: e9 6a fd ff ff jmpq 40d4a3 <__gettextparse+0x273> - 40d739: 48 8b 43 08 mov 0x8(%rbx),%rax - 40d73d: 31 f6 xor %esi,%esi - 40d73f: 41 b8 f0 ff ff ff mov $0xfffffff0,%r8d - 40d745: 31 d2 xor %edx,%edx - 40d747: 31 ff xor %edi,%edi - 40d749: e9 77 fd ff ff jmpq 40d4c5 <__gettextparse+0x295> - 40d74e: 44 0f b6 a8 e0 16 4a movzbl 0x4a16e0(%rax),%r13d - 40d755: 00 - 40d756: e9 a3 fd ff ff jmpq 40d4fe <__gettextparse+0x2ce> - 40d75b: 0f 85 af fc ff ff jne 40d410 <__gettextparse+0x1e0> - 40d761: 49 89 ce mov %rcx,%r14 - 40d764: bb 01 00 00 00 mov $0x1,%ebx - 40d769: e9 e7 fc ff ff jmpq 40d455 <__gettextparse+0x225> - 40d76e: 44 0f b6 86 70 17 4a movzbl 0x4a1770(%rsi),%r8d - 40d775: 00 - 40d776: 4a 8d 3c fd 00 00 00 lea 0x0(,%r15,8),%rdi - 40d77d: 00 - 40d77e: 4d 01 ff add %r15,%r15 - 40d781: 4c 89 fa mov %r15,%rdx - 40d784: 48 f7 df neg %rdi - 40d787: 48 f7 da neg %rdx - 40d78a: 41 83 e8 10 sub $0x10,%r8d - 40d78e: 49 63 f0 movslq %r8d,%rsi - 40d791: 0f be b6 17 17 4a 00 movsbl 0x4a1717(%rsi),%esi - 40d798: e9 28 fd ff ff jmpq 40d4c5 <__gettextparse+0x295> - 40d79d: 41 0f be 51 01 movsbl 0x1(%r9),%edx - 40d7a2: 41 39 d4 cmp %edx,%r12d - 40d7a5: 0f 84 5c fd ff ff je 40d507 <__gettextparse+0x2d7> - 40d7ab: be 01 00 00 00 mov $0x1,%esi - 40d7b0: 41 bc 00 01 00 00 mov $0x100,%r12d - 40d7b6: 48 8b 54 24 18 mov 0x18(%rsp),%rdx - 40d7bb: 48 89 3a mov %rdi,(%rdx) - 40d7be: e9 ca fb ff ff jmpq 40d38d <__gettextparse+0x15d> - 40d7c3: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx - 40d7ca: ff ff ff - 40d7cd: 48 23 54 24 28 and 0x28(%rsp),%rdx - 40d7d2: be 09 00 00 00 mov $0x9,%esi - 40d7d7: 41 bc 05 01 00 00 mov $0x105,%r12d - 40d7dd: 48 83 ca 05 or $0x5,%rdx - 40d7e1: 48 89 54 24 28 mov %rdx,0x28(%rsp) - 40d7e6: eb ce jmp 40d7b6 <__gettextparse+0x586> - 40d7e8: 41 80 79 01 3d cmpb $0x3d,0x1(%r9) - 40d7ed: 0f 85 18 fd ff ff jne 40d50b <__gettextparse+0x2db> - 40d7f3: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx - 40d7fa: ff ff ff - 40d7fd: 48 23 54 24 28 and 0x28(%rsp),%rdx - 40d802: 49 8d 79 02 lea 0x2(%r9),%rdi - 40d806: be 06 00 00 00 mov $0x6,%esi - 40d80b: 41 bc 02 01 00 00 mov $0x102,%r12d - 40d811: 48 83 ca 0d or $0xd,%rdx - 40d815: 48 89 54 24 28 mov %rdx,0x28(%rsp) - 40d81a: eb 9a jmp 40d7b6 <__gettextparse+0x586> - 40d81c: 41 80 79 01 3d cmpb $0x3d,0x1(%r9) - 40d821: 0f 84 d0 01 00 00 je 40d9f7 <__gettextparse+0x7c7> - 40d827: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx - 40d82e: ff ff ff - 40d831: 48 23 54 24 28 and 0x28(%rsp),%rdx - 40d836: be 07 00 00 00 mov $0x7,%esi - 40d83b: 41 bc 03 01 00 00 mov $0x103,%r12d - 40d841: 48 83 ca 09 or $0x9,%rdx - 40d845: 48 89 54 24 28 mov %rdx,0x28(%rsp) - 40d84a: e9 67 ff ff ff jmpq 40d7b6 <__gettextparse+0x586> - 40d84f: 41 80 79 01 3d cmpb $0x3d,0x1(%r9) - 40d854: be 01 00 00 00 mov $0x1,%esi - 40d859: 41 bc 00 01 00 00 mov $0x100,%r12d - 40d85f: 0f 85 51 ff ff ff jne 40d7b6 <__gettextparse+0x586> - 40d865: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx - 40d86c: ff ff ff - 40d86f: 48 23 54 24 28 and 0x28(%rsp),%rdx - 40d874: 49 8d 79 02 lea 0x2(%r9),%rdi - 40d878: be 06 00 00 00 mov $0x6,%esi - 40d87d: 41 bc 02 01 00 00 mov $0x102,%r12d - 40d883: 48 83 ca 0c or $0xc,%rdx - 40d887: 48 89 54 24 28 mov %rdx,0x28(%rsp) - 40d88c: e9 25 ff ff ff jmpq 40d7b6 <__gettextparse+0x586> - 40d891: 41 80 79 01 3d cmpb $0x3d,0x1(%r9) - 40d896: 0f 84 87 01 00 00 je 40da23 <__gettextparse+0x7f3> - 40d89c: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx - 40d8a3: ff ff ff - 40d8a6: 48 23 54 24 28 and 0x28(%rsp),%rdx - 40d8ab: be 07 00 00 00 mov $0x7,%esi - 40d8b0: 41 bc 03 01 00 00 mov $0x103,%r12d - 40d8b6: 48 83 ca 08 or $0x8,%rdx - 40d8ba: 48 89 54 24 28 mov %rdx,0x28(%rsp) - 40d8bf: e9 f2 fe ff ff jmpq 40d7b6 <__gettextparse+0x586> - 40d8c4: 41 0f be 51 01 movsbl 0x1(%r9),%edx - 40d8c9: 41 8d 74 24 d0 lea -0x30(%r12),%esi - 40d8ce: 48 63 f6 movslq %esi,%rsi - 40d8d1: 44 8d 4a d0 lea -0x30(%rdx),%r9d - 40d8d5: 41 80 f9 09 cmp $0x9,%r9b - 40d8d9: 77 1f ja 40d8fa <__gettextparse+0x6ca> - 40d8db: 83 ea 30 sub $0x30,%edx - 40d8de: 48 8d 34 b6 lea (%rsi,%rsi,4),%rsi - 40d8e2: 48 83 c7 01 add $0x1,%rdi - 40d8e6: 48 63 d2 movslq %edx,%rdx - 40d8e9: 48 8d 34 72 lea (%rdx,%rsi,2),%rsi - 40d8ed: 0f be 17 movsbl (%rdi),%edx - 40d8f0: 44 8d 4a d0 lea -0x30(%rdx),%r9d - 40d8f4: 41 80 f9 09 cmp $0x9,%r9b - 40d8f8: 76 e1 jbe 40d8db <__gettextparse+0x6ab> - 40d8fa: 48 89 74 24 28 mov %rsi,0x28(%rsp) - 40d8ff: 41 bc 06 01 00 00 mov $0x106,%r12d - 40d905: be 0b 00 00 00 mov $0xb,%esi - 40d90a: e9 a7 fe ff ff jmpq 40d7b6 <__gettextparse+0x586> - 40d90f: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx - 40d916: ff ff ff - 40d919: 48 23 54 24 28 and 0x28(%rsp),%rdx - 40d91e: be 09 00 00 00 mov $0x9,%esi - 40d923: 41 bc 05 01 00 00 mov $0x105,%r12d - 40d929: 48 83 ca 04 or $0x4,%rdx - 40d92d: 48 89 54 24 28 mov %rdx,0x28(%rsp) - 40d932: e9 7f fe ff ff jmpq 40d7b6 <__gettextparse+0x586> - 40d937: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx - 40d93e: ff ff ff - 40d941: 48 23 54 24 28 and 0x28(%rsp),%rdx - 40d946: be 08 00 00 00 mov $0x8,%esi - 40d94b: 41 bc 04 01 00 00 mov $0x104,%r12d - 40d951: 48 83 ca 06 or $0x6,%rdx - 40d955: 48 89 54 24 28 mov %rdx,0x28(%rsp) - 40d95a: e9 57 fe ff ff jmpq 40d7b6 <__gettextparse+0x586> - 40d95f: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx - 40d966: ff ff ff - 40d969: 48 23 54 24 28 and 0x28(%rsp),%rdx - 40d96e: be 09 00 00 00 mov $0x9,%esi - 40d973: 41 bc 05 01 00 00 mov $0x105,%r12d - 40d979: 48 83 ca 03 or $0x3,%rdx - 40d97d: 48 89 54 24 28 mov %rdx,0x28(%rsp) - 40d982: e9 2f fe ff ff jmpq 40d7b6 <__gettextparse+0x586> - 40d987: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx - 40d98e: ff ff ff - 40d991: 48 23 54 24 28 and 0x28(%rsp),%rdx - 40d996: be 08 00 00 00 mov $0x8,%esi - 40d99b: 41 bc 04 01 00 00 mov $0x104,%r12d - 40d9a1: 48 83 ca 07 or $0x7,%rdx - 40d9a5: 48 89 54 24 28 mov %rdx,0x28(%rsp) - 40d9aa: e9 07 fe ff ff jmpq 40d7b6 <__gettextparse+0x586> - 40d9af: 49 89 ce mov %rcx,%r14 - 40d9b2: bb 02 00 00 00 mov $0x2,%ebx - 40d9b7: e9 99 fa ff ff jmpq 40d455 <__gettextparse+0x225> - 40d9bc: 49 89 ce mov %rcx,%r14 - 40d9bf: 31 db xor %ebx,%ebx - 40d9c1: e9 8f fa ff ff jmpq 40d455 <__gettextparse+0x225> - 40d9c6: 4d 89 fe mov %r15,%r14 - 40d9c9: bb 01 00 00 00 mov $0x1,%ebx - 40d9ce: e9 82 fa ff ff jmpq 40d455 <__gettextparse+0x225> - 40d9d3: 4a 8d 3c fd 00 00 00 lea 0x0(,%r15,8),%rdi - 40d9da: 00 - 40d9db: 4d 01 ff add %r15,%r15 - 40d9de: be ff ff ff ff mov $0xffffffff,%esi - 40d9e3: 4c 89 fa mov %r15,%rdx - 40d9e6: 41 b8 02 00 00 00 mov $0x2,%r8d - 40d9ec: 48 f7 df neg %rdi - 40d9ef: 48 f7 da neg %rdx - 40d9f2: e9 ce fa ff ff jmpq 40d4c5 <__gettextparse+0x295> - 40d9f7: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx - 40d9fe: ff ff ff - 40da01: 48 23 54 24 28 and 0x28(%rsp),%rdx - 40da06: 49 8d 79 02 lea 0x2(%r9),%rdi - 40da0a: be 07 00 00 00 mov $0x7,%esi - 40da0f: 41 bc 03 01 00 00 mov $0x103,%r12d - 40da15: 48 83 ca 0b or $0xb,%rdx - 40da19: 48 89 54 24 28 mov %rdx,0x28(%rsp) - 40da1e: e9 93 fd ff ff jmpq 40d7b6 <__gettextparse+0x586> - 40da23: 48 ba 00 00 00 00 ff movabs $0xffffffff00000000,%rdx - 40da2a: ff ff ff - 40da2d: 48 23 54 24 28 and 0x28(%rsp),%rdx - 40da32: 49 8d 79 02 lea 0x2(%r9),%rdi - 40da36: be 07 00 00 00 mov $0x7,%esi - 40da3b: 41 bc 03 01 00 00 mov $0x103,%r12d - 40da41: 48 83 ca 0a or $0xa,%rdx - 40da45: 48 89 54 24 28 mov %rdx,0x28(%rsp) - 40da4a: e9 67 fd ff ff jmpq 40d7b6 <__gettextparse+0x586> - 40da4f: 90 nop - -000000000040da50 <__gettext_extract_plural>: - 40da50: 41 55 push %r13 - 40da52: 41 54 push %r12 - 40da54: 55 push %rbp - 40da55: 53 push %rbx - 40da56: 48 89 f5 mov %rsi,%rbp - 40da59: 48 89 d3 mov %rdx,%rbx - 40da5c: 48 83 ec 28 sub $0x28,%rsp - 40da60: 48 85 ff test %rdi,%rdi - 40da63: 0f 84 9f 00 00 00 je 40db08 <__gettext_extract_plural+0xb8> - 40da69: 49 89 fd mov %rdi,%r13 - 40da6c: be 87 18 4a 00 mov $0x4a1887,%esi - 40da71: e8 aa 28 ff ff callq 400320 <__rela_iplt_end+0x58> - 40da76: be 8f 18 4a 00 mov $0x4a188f,%esi - 40da7b: 49 89 c4 mov %rax,%r12 - 40da7e: 4c 89 ef mov %r13,%rdi - 40da81: e8 9a 28 ff ff callq 400320 <__rela_iplt_end+0x58> - 40da86: 4d 85 e4 test %r12,%r12 - 40da89: 74 7d je 40db08 <__gettext_extract_plural+0xb8> - 40da8b: 48 85 c0 test %rax,%rax - 40da8e: 74 78 je 40db08 <__gettext_extract_plural+0xb8> - 40da90: 4c 8d 68 09 lea 0x9(%rax),%r13 - 40da94: 0f b6 40 09 movzbl 0x9(%rax),%eax - 40da98: 84 c0 test %al,%al - 40da9a: 74 6c je 40db08 <__gettext_extract_plural+0xb8> - 40da9c: 48 c7 c2 f0 ff ff ff mov $0xfffffffffffffff0,%rdx - 40daa3: 64 48 8b 0a mov %fs:(%rdx),%rcx - 40daa7: eb 14 jmp 40dabd <__gettext_extract_plural+0x6d> - 40daa9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40dab0: 49 83 c5 01 add $0x1,%r13 - 40dab4: 41 0f b6 45 00 movzbl 0x0(%r13),%eax - 40dab9: 84 c0 test %al,%al - 40dabb: 74 4b je 40db08 <__gettext_extract_plural+0xb8> - 40dabd: 0f b6 d0 movzbl %al,%edx - 40dac0: f6 44 51 01 20 testb $0x20,0x1(%rcx,%rdx,2) - 40dac5: 75 e9 jne 40dab0 <__gettext_extract_plural+0x60> - 40dac7: 83 e8 30 sub $0x30,%eax - 40daca: 3c 09 cmp $0x9,%al - 40dacc: 77 3a ja 40db08 <__gettext_extract_plural+0xb8> - 40dace: 48 8d 74 24 08 lea 0x8(%rsp),%rsi - 40dad3: ba 0a 00 00 00 mov $0xa,%edx - 40dad8: 4c 89 ef mov %r13,%rdi - 40dadb: e8 70 11 00 00 callq 40ec50 <__strtoul> - 40dae0: 4c 39 6c 24 08 cmp %r13,0x8(%rsp) - 40dae5: 74 21 je 40db08 <__gettext_extract_plural+0xb8> - 40dae7: 48 8d 7c 24 10 lea 0x10(%rsp),%rdi - 40daec: 49 83 c4 07 add $0x7,%r12 - 40daf0: 48 89 03 mov %rax,(%rbx) - 40daf3: 4c 89 64 24 10 mov %r12,0x10(%rsp) - 40daf8: e8 33 f7 ff ff callq 40d230 <__gettextparse> - 40dafd: 85 c0 test %eax,%eax - 40daff: 74 21 je 40db22 <__gettext_extract_plural+0xd2> - 40db01: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40db08: 48 c7 45 00 a0 18 4a movq $0x4a18a0,0x0(%rbp) - 40db0f: 00 - 40db10: 48 c7 03 02 00 00 00 movq $0x2,(%rbx) - 40db17: 48 83 c4 28 add $0x28,%rsp - 40db1b: 5b pop %rbx - 40db1c: 5d pop %rbp - 40db1d: 41 5c pop %r12 - 40db1f: 41 5d pop %r13 - 40db21: c3 retq - 40db22: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 40db27: 48 89 45 00 mov %rax,0x0(%rbp) - 40db2b: eb ea jmp 40db17 <__gettext_extract_plural+0xc7> - 40db2d: 0f 1f 00 nopl (%rax) - -000000000040db30 <__hash_string>: - 40db30: 31 c0 xor %eax,%eax - 40db32: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 40db38: 0f b6 17 movzbl (%rdi),%edx - 40db3b: 84 d2 test %dl,%dl - 40db3d: 74 27 je 40db66 <__hash_string+0x36> - 40db3f: 48 c1 e0 04 shl $0x4,%rax - 40db43: 48 83 c7 01 add $0x1,%rdi - 40db47: 48 01 d0 add %rdx,%rax - 40db4a: 48 89 c2 mov %rax,%rdx - 40db4d: 81 e2 00 00 00 f0 and $0xf0000000,%edx - 40db53: 74 e3 je 40db38 <__hash_string+0x8> - 40db55: 48 31 d0 xor %rdx,%rax - 40db58: 48 c1 ea 18 shr $0x18,%rdx - 40db5c: 48 31 d0 xor %rdx,%rax - 40db5f: 0f b6 17 movzbl (%rdi),%edx - 40db62: 84 d2 test %dl,%dl - 40db64: 75 d9 jne 40db3f <__hash_string+0xf> - 40db66: f3 c3 repz retq - 40db68: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40db6f: 00 - -000000000040db70 <_setjmp>: - 40db70: 31 f6 xor %esi,%esi - 40db72: e9 b9 18 04 00 jmpq 44f430 <__sigsetjmp> - 40db77: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40db7e: 00 00 - -000000000040db80 : - 40db80: 64 8b 0c 25 d4 02 00 mov %fs:0x2d4,%ecx - 40db87: 00 - 40db88: 64 8b 04 25 d0 02 00 mov %fs:0x2d0,%eax - 40db8f: 00 - 40db90: 48 63 f0 movslq %eax,%rsi - 40db93: 85 f6 test %esi,%esi - 40db95: 75 31 jne 40dbc8 - 40db97: b8 ba 00 00 00 mov $0xba,%eax - 40db9c: 0f 05 syscall - 40db9e: 89 c1 mov %eax,%ecx - 40dba0: 64 89 04 25 d0 02 00 mov %eax,%fs:0x2d0 - 40dba7: 00 - 40dba8: 48 63 f0 movslq %eax,%rsi - 40dbab: 48 63 d7 movslq %edi,%rdx - 40dbae: b8 ea 00 00 00 mov $0xea,%eax - 40dbb3: 48 63 f9 movslq %ecx,%rdi - 40dbb6: 0f 05 syscall - 40dbb8: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 40dbbe: 77 20 ja 40dbe0 - 40dbc0: f3 c3 repz retq - 40dbc2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 40dbc8: 85 c9 test %ecx,%ecx - 40dbca: 7f df jg 40dbab - 40dbcc: 89 ca mov %ecx,%edx - 40dbce: f7 da neg %edx - 40dbd0: 81 e1 ff ff ff 7f and $0x7fffffff,%ecx - 40dbd6: 0f 44 d6 cmove %esi,%edx - 40dbd9: 89 d1 mov %edx,%ecx - 40dbdb: eb ce jmp 40dbab - 40dbdd: 0f 1f 00 nopl (%rax) - 40dbe0: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 40dbe7: f7 d8 neg %eax - 40dbe9: 64 89 02 mov %eax,%fs:(%rdx) - 40dbec: b8 ff ff ff ff mov $0xffffffff,%eax - 40dbf1: c3 retq - 40dbf2: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40dbf9: 00 00 00 - 40dbfc: 0f 1f 40 00 nopl 0x0(%rax) - -000000000040dc00 : - 40dc00: 48 81 ec 28 01 00 00 sub $0x128,%rsp - 40dc07: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx - 40dc0e: 00 00 - 40dc10: 48 3b 15 21 e5 2b 00 cmp 0x2be521(%rip),%rdx # 6cc138 - 40dc17: 74 46 je 40dc5f - 40dc19: be 01 00 00 00 mov $0x1,%esi - 40dc1e: 31 c0 xor %eax,%eax - 40dc20: 83 3d 95 f5 2b 00 00 cmpl $0x0,0x2bf595(%rip) # 6cd1bc <__libc_multiple_threads> - 40dc27: 74 0c je 40dc35 - 40dc29: f0 0f b1 35 ff e4 2b lock cmpxchg %esi,0x2be4ff(%rip) # 6cc130 - 40dc30: 00 - 40dc31: 75 0b jne 40dc3e - 40dc33: eb 23 jmp 40dc58 - 40dc35: 0f b1 35 f4 e4 2b 00 cmpxchg %esi,0x2be4f4(%rip) # 6cc130 - 40dc3c: 74 1a je 40dc58 - 40dc3e: 48 8d 3d eb e4 2b 00 lea 0x2be4eb(%rip),%rdi # 6cc130 - 40dc45: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 40dc4c: e8 7f 49 03 00 callq 4425d0 <__lll_lock_wait_private> - 40dc51: 48 81 c4 80 00 00 00 add $0x80,%rsp - 40dc58: 48 89 15 d9 e4 2b 00 mov %rdx,0x2be4d9(%rip) # 6cc138 - 40dc5f: 8b 05 db e4 2b 00 mov 0x2be4db(%rip),%eax # 6cc140 - 40dc65: 83 05 c8 e4 2b 00 01 addl $0x1,0x2be4c8(%rip) # 6cc134 - 40dc6c: 85 c0 test %eax,%eax - 40dc6e: 74 43 je 40dcb3 - 40dc70: 83 f8 01 cmp $0x1,%eax - 40dc73: 74 77 je 40dcec - 40dc75: 83 f8 02 cmp $0x2,%eax - 40dc78: 0f 84 8e 00 00 00 je 40dd0c - 40dc7e: 83 f8 03 cmp $0x3,%eax - 40dc81: 0f 84 42 01 00 00 je 40ddc9 - 40dc87: 83 f8 04 cmp $0x4,%eax - 40dc8a: 0f 84 05 02 00 00 je 40de95 - 40dc90: 83 f8 05 cmp $0x5,%eax - 40dc93: 0f 84 1a 02 00 00 je 40deb3 - 40dc99: 83 f8 06 cmp $0x6,%eax - 40dc9c: 0f 84 34 02 00 00 je 40ded6 - 40dca2: 83 f8 07 cmp $0x7,%eax - 40dca5: 0f 84 2c 02 00 00 je 40ded7 - 40dcab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40dcb0: f4 hlt - 40dcb1: eb fd jmp 40dcb0 - 40dcb3: 31 c0 xor %eax,%eax - 40dcb5: b9 10 00 00 00 mov $0x10,%ecx - 40dcba: 48 89 e7 mov %rsp,%rdi - 40dcbd: f3 48 ab rep stos %rax,%es:(%rdi) - 40dcc0: 31 d2 xor %edx,%edx - 40dcc2: 48 89 e6 mov %rsp,%rsi - 40dcc5: bf 01 00 00 00 mov $0x1,%edi - 40dcca: c7 05 6c e4 2b 00 01 movl $0x1,0x2be46c(%rip) # 6cc140 - 40dcd1: 00 00 00 - 40dcd4: 48 c7 04 24 20 00 00 movq $0x20,(%rsp) - 40dcdb: 00 - 40dcdc: e8 5f 1a 04 00 callq 44f740 <__sigprocmask> - 40dce1: 8b 05 59 e4 2b 00 mov 0x2be459(%rip),%eax # 6cc140 - 40dce7: 83 f8 01 cmp $0x1,%eax - 40dcea: 75 89 jne 40dc75 - 40dcec: 31 ff xor %edi,%edi - 40dcee: c7 05 48 e4 2b 00 02 movl $0x2,0x2be448(%rip) # 6cc140 - 40dcf5: 00 00 00 - 40dcf8: e8 03 7d 00 00 callq 415a00 <_IO_flush_all_lockp> - 40dcfd: 8b 05 3d e4 2b 00 mov 0x2be43d(%rip),%eax # 6cc140 - 40dd03: 83 f8 02 cmp $0x2,%eax - 40dd06: 0f 85 72 ff ff ff jne 40dc7e - 40dd0c: 83 2d 21 e4 2b 00 01 subl $0x1,0x2be421(%rip) # 6cc134 - 40dd13: c7 05 23 e4 2b 00 00 movl $0x0,0x2be423(%rip) # 6cc140 - 40dd1a: 00 00 00 - 40dd1d: 75 41 jne 40dd60 - 40dd1f: 48 c7 05 0e e4 2b 00 movq $0x0,0x2be40e(%rip) # 6cc138 - 40dd26: 00 00 00 00 - 40dd2a: 83 3d 8b f4 2b 00 00 cmpl $0x0,0x2bf48b(%rip) # 6cd1bc <__libc_multiple_threads> - 40dd31: 74 0b je 40dd3e - 40dd33: f0 ff 0d f6 e3 2b 00 lock decl 0x2be3f6(%rip) # 6cc130 - 40dd3a: 75 0a jne 40dd46 - 40dd3c: eb 22 jmp 40dd60 - 40dd3e: ff 0d ec e3 2b 00 decl 0x2be3ec(%rip) # 6cc130 - 40dd44: 74 1a je 40dd60 - 40dd46: 48 8d 3d e3 e3 2b 00 lea 0x2be3e3(%rip),%rdi # 6cc130 - 40dd4d: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 40dd54: e8 a7 48 03 00 callq 442600 <__lll_unlock_wake_private> - 40dd59: 48 81 c4 80 00 00 00 add $0x80,%rsp - 40dd60: bf 06 00 00 00 mov $0x6,%edi - 40dd65: e8 16 fe ff ff callq 40db80 - 40dd6a: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx - 40dd71: 00 00 - 40dd73: 48 3b 15 be e3 2b 00 cmp 0x2be3be(%rip),%rdx # 6cc138 - 40dd7a: 74 46 je 40ddc2 - 40dd7c: be 01 00 00 00 mov $0x1,%esi - 40dd81: 31 c0 xor %eax,%eax - 40dd83: 83 3d 32 f4 2b 00 00 cmpl $0x0,0x2bf432(%rip) # 6cd1bc <__libc_multiple_threads> - 40dd8a: 74 0c je 40dd98 - 40dd8c: f0 0f b1 35 9c e3 2b lock cmpxchg %esi,0x2be39c(%rip) # 6cc130 - 40dd93: 00 - 40dd94: 75 0b jne 40dda1 - 40dd96: eb 23 jmp 40ddbb - 40dd98: 0f b1 35 91 e3 2b 00 cmpxchg %esi,0x2be391(%rip) # 6cc130 - 40dd9f: 74 1a je 40ddbb - 40dda1: 48 8d 3d 88 e3 2b 00 lea 0x2be388(%rip),%rdi # 6cc130 - 40dda8: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 40ddaf: e8 1c 48 03 00 callq 4425d0 <__lll_lock_wait_private> - 40ddb4: 48 81 c4 80 00 00 00 add $0x80,%rsp - 40ddbb: 48 89 15 76 e3 2b 00 mov %rdx,0x2be376(%rip) # 6cc138 - 40ddc2: 83 05 6b e3 2b 00 01 addl $0x1,0x2be36b(%rip) # 6cc134 - 40ddc9: 48 8d b4 24 80 00 00 lea 0x80(%rsp),%rsi - 40ddd0: 00 - 40ddd1: 31 c0 xor %eax,%eax - 40ddd3: b9 13 00 00 00 mov $0x13,%ecx - 40ddd8: 31 d2 xor %edx,%edx - 40ddda: c7 05 5c e3 2b 00 04 movl $0x4,0x2be35c(%rip) # 6cc140 - 40dde1: 00 00 00 - 40dde4: 48 89 f7 mov %rsi,%rdi - 40dde7: f3 48 ab rep stos %rax,%es:(%rdi) - 40ddea: 48 c7 84 24 88 00 00 movq $0xffffffffffffffff,0x88(%rsp) - 40ddf1: 00 ff ff ff ff - 40ddf6: bf 06 00 00 00 mov $0x6,%edi - 40ddfb: 48 c7 46 10 ff ff ff movq $0xffffffffffffffff,0x10(%rsi) - 40de02: ff - 40de03: 48 c7 46 18 ff ff ff movq $0xffffffffffffffff,0x18(%rsi) - 40de0a: ff - 40de0b: 48 c7 46 20 ff ff ff movq $0xffffffffffffffff,0x20(%rsi) - 40de12: ff - 40de13: 48 c7 46 28 ff ff ff movq $0xffffffffffffffff,0x28(%rsi) - 40de1a: ff - 40de1b: 48 c7 46 30 ff ff ff movq $0xffffffffffffffff,0x30(%rsi) - 40de22: ff - 40de23: 48 c7 46 38 ff ff ff movq $0xffffffffffffffff,0x38(%rsi) - 40de2a: ff - 40de2b: 48 c7 46 40 ff ff ff movq $0xffffffffffffffff,0x40(%rsi) - 40de32: ff - 40de33: 48 c7 46 48 ff ff ff movq $0xffffffffffffffff,0x48(%rsi) - 40de3a: ff - 40de3b: 48 c7 46 50 ff ff ff movq $0xffffffffffffffff,0x50(%rsi) - 40de42: ff - 40de43: 48 c7 46 58 ff ff ff movq $0xffffffffffffffff,0x58(%rsi) - 40de4a: ff - 40de4b: 48 c7 46 60 ff ff ff movq $0xffffffffffffffff,0x60(%rsi) - 40de52: ff - 40de53: 48 c7 46 68 ff ff ff movq $0xffffffffffffffff,0x68(%rsi) - 40de5a: ff - 40de5b: 48 c7 46 70 ff ff ff movq $0xffffffffffffffff,0x70(%rsi) - 40de62: ff - 40de63: 48 c7 46 78 ff ff ff movq $0xffffffffffffffff,0x78(%rsi) - 40de6a: ff - 40de6b: 48 c7 86 80 00 00 00 movq $0xffffffffffffffff,0x80(%rsi) - 40de72: ff ff ff ff - 40de76: c7 84 24 08 01 00 00 movl $0x0,0x108(%rsp) - 40de7d: 00 00 00 00 - 40de81: e8 8a 18 04 00 callq 44f710 <__sigaction> - 40de86: 8b 05 b4 e2 2b 00 mov 0x2be2b4(%rip),%eax # 6cc140 - 40de8c: 83 f8 04 cmp $0x4,%eax - 40de8f: 0f 85 fb fd ff ff jne 40dc90 - 40de95: c7 05 a1 e2 2b 00 05 movl $0x5,0x2be2a1(%rip) # 6cc140 - 40de9c: 00 00 00 - 40de9f: e8 4c 35 00 00 callq 4113f0 <__fcloseall> - 40dea4: 8b 05 96 e2 2b 00 mov 0x2be296(%rip),%eax # 6cc140 - 40deaa: 83 f8 05 cmp $0x5,%eax - 40dead: 0f 85 e6 fd ff ff jne 40dc99 - 40deb3: bf 06 00 00 00 mov $0x6,%edi - 40deb8: c7 05 7e e2 2b 00 06 movl $0x6,0x2be27e(%rip) # 6cc140 - 40debf: 00 00 00 - 40dec2: e8 b9 fc ff ff callq 40db80 - 40dec7: 8b 05 73 e2 2b 00 mov 0x2be273(%rip),%eax # 6cc140 - 40decd: 83 f8 06 cmp $0x6,%eax - 40ded0: 0f 85 cc fd ff ff jne 40dca2 - 40ded6: f4 hlt - 40ded7: bf 7f 00 00 00 mov $0x7f,%edi - 40dedc: c7 05 5a e2 2b 00 08 movl $0x8,0x2be25a(%rip) # 6cc140 - 40dee3: 00 00 00 - 40dee6: e8 e5 08 03 00 callq 43e7d0 <_exit> - 40deeb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -000000000040def0 : - 40def0: 41 57 push %r15 - 40def2: 41 56 push %r14 - 40def4: 48 89 f8 mov %rdi,%rax - 40def7: 41 55 push %r13 - 40def9: 41 54 push %r12 - 40defb: 49 89 d4 mov %rdx,%r12 - 40defe: 55 push %rbp - 40deff: 53 push %rbx - 40df00: 49 d1 ec shr %r12 - 40df03: 4d 89 e7 mov %r12,%r15 - 40df06: 48 89 d5 mov %rdx,%rbp - 40df09: 48 83 ec 58 sub $0x58,%rsp - 40df0d: 4c 29 e5 sub %r12,%rbp - 40df10: 4c 0f af 3f imul (%rdi),%r15 - 40df14: 48 89 7c 24 18 mov %rdi,0x18(%rsp) - 40df19: 48 89 74 24 28 mov %rsi,0x28(%rsp) - 40df1e: 48 89 54 24 48 mov %rdx,0x48(%rsp) - 40df23: 49 01 f7 add %rsi,%r15 - 40df26: 49 83 fc 01 cmp $0x1,%r12 - 40df2a: 76 0b jbe 40df37 - 40df2c: 4c 89 e2 mov %r12,%rdx - 40df2f: 48 89 c7 mov %rax,%rdi - 40df32: e8 b9 ff ff ff callq 40def0 - 40df37: 48 83 fd 01 cmp $0x1,%rbp - 40df3b: 76 10 jbe 40df4d - 40df3d: 48 8b 7c 24 18 mov 0x18(%rsp),%rdi - 40df42: 48 89 ea mov %rbp,%rdx - 40df45: 4c 89 fe mov %r15,%rsi - 40df48: e8 a3 ff ff ff callq 40def0 - 40df4d: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 40df52: 48 8b 38 mov (%rax),%rdi - 40df55: 48 8b 58 20 mov 0x20(%rax),%rbx - 40df59: 4c 8b 70 10 mov 0x10(%rax),%r14 - 40df5d: 48 89 7c 24 10 mov %rdi,0x10(%rsp) - 40df62: 48 8b 78 18 mov 0x18(%rax),%rdi - 40df66: 48 8b 40 08 mov 0x8(%rax),%rax - 40df6a: 48 89 7c 24 08 mov %rdi,0x8(%rsp) - 40df6f: 48 83 f8 01 cmp $0x1,%rax - 40df73: 0f 84 df 02 00 00 je 40e258 - 40df79: 0f 82 61 02 00 00 jb 40e1e0 - 40df7f: 48 83 f8 02 cmp $0x2,%rax - 40df83: 74 73 je 40dff8 - 40df85: 48 83 f8 03 cmp $0x3,%rax - 40df89: 0f 85 29 03 00 00 jne 40e2b8 - 40df8f: 48 85 ed test %rbp,%rbp - 40df92: 0f 84 91 03 00 00 je 40e329 - 40df98: 4d 85 e4 test %r12,%r12 - 40df9b: 4c 8b 6c 24 28 mov 0x28(%rsp),%r13 - 40dfa0: 75 32 jne 40dfd4 - 40dfa2: e9 82 03 00 00 jmpq 40e329 - 40dfa7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40dfae: 00 00 - 40dfb0: 49 8b 07 mov (%r15),%rax - 40dfb3: 48 83 ed 01 sub $0x1,%rbp - 40dfb7: 49 83 c7 08 add $0x8,%r15 - 40dfbb: 48 89 03 mov %rax,(%rbx) - 40dfbe: 48 83 c3 08 add $0x8,%rbx - 40dfc2: 4d 85 e4 test %r12,%r12 - 40dfc5: 0f 84 85 01 00 00 je 40e150 - 40dfcb: 48 85 ed test %rbp,%rbp - 40dfce: 0f 84 7c 01 00 00 je 40e150 - 40dfd4: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 40dfd9: 49 8b 37 mov (%r15),%rsi - 40dfdc: 49 8b 7d 00 mov 0x0(%r13),%rdi - 40dfe0: 41 ff d6 callq *%r14 - 40dfe3: 85 c0 test %eax,%eax - 40dfe5: 7f c9 jg 40dfb0 - 40dfe7: 49 8b 45 00 mov 0x0(%r13),%rax - 40dfeb: 49 83 ec 01 sub $0x1,%r12 - 40dfef: 49 83 c5 08 add $0x8,%r13 - 40dff3: eb c6 jmp 40dfbb - 40dff5: 0f 1f 00 nopl (%rax) - 40dff8: 48 8b 74 24 10 mov 0x10(%rsp),%rsi - 40dffd: b8 08 00 00 00 mov $0x8,%eax - 40e002: 4c 8b 6c 24 28 mov 0x28(%rsp),%r13 - 40e007: 4c 89 74 24 30 mov %r14,0x30(%rsp) - 40e00c: 48 29 f0 sub %rsi,%rax - 40e00f: 4c 89 6c 24 20 mov %r13,0x20(%rsp) - 40e014: 49 89 f6 mov %rsi,%r14 - 40e017: 48 89 44 24 38 mov %rax,0x38(%rsp) - 40e01c: b8 10 00 00 00 mov $0x10,%eax - 40e021: 49 89 ed mov %rbp,%r13 - 40e024: 48 29 f0 sub %rsi,%rax - 40e027: 4d 85 e4 test %r12,%r12 - 40e02a: 4c 89 fd mov %r15,%rbp - 40e02d: 48 89 44 24 40 mov %rax,0x40(%rsp) - 40e032: 0f 84 09 01 00 00 je 40e141 - 40e038: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40e03f: 00 - 40e040: 4d 85 ed test %r13,%r13 - 40e043: 0f 84 f8 00 00 00 je 40e141 - 40e049: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 40e04e: 48 89 ee mov %rbp,%rsi - 40e051: 48 8b 7c 24 20 mov 0x20(%rsp),%rdi - 40e056: 48 8b 44 24 30 mov 0x30(%rsp),%rax - 40e05b: 4e 8d 3c 33 lea (%rbx,%r14,1),%r15 - 40e05f: ff d0 callq *%rax - 40e061: 85 c0 test %eax,%eax - 40e063: 0f 8e 47 01 00 00 jle 40e1b0 - 40e069: 48 89 e8 mov %rbp,%rax - 40e06c: 49 83 ed 01 sub $0x1,%r13 - 40e070: 4c 01 f5 add %r14,%rbp - 40e073: 4c 39 fb cmp %r15,%rbx - 40e076: 0f 83 b9 00 00 00 jae 40e135 - 40e07c: 48 8b 7c 24 38 mov 0x38(%rsp),%rdi - 40e081: 48 8b 74 24 40 mov 0x40(%rsp),%rsi - 40e086: 49 8d 57 07 lea 0x7(%r15),%rdx - 40e08a: 4c 01 ff add %r15,%rdi - 40e08d: 49 8d 0c 37 lea (%r15,%rsi,1),%rcx - 40e091: 48 29 fa sub %rdi,%rdx - 40e094: 48 c1 ea 03 shr $0x3,%rdx - 40e098: 48 83 c2 01 add $0x1,%rdx - 40e09c: 48 39 c8 cmp %rcx,%rax - 40e09f: 48 8d 48 10 lea 0x10(%rax),%rcx - 40e0a3: 40 0f 93 c6 setae %sil - 40e0a7: 48 39 cb cmp %rcx,%rbx - 40e0aa: 0f 93 c1 setae %cl - 40e0ad: 40 08 ce or %cl,%sil - 40e0b0: 0f 84 da 00 00 00 je 40e190 - 40e0b6: 48 83 fa 18 cmp $0x18,%rdx - 40e0ba: 0f 86 d0 00 00 00 jbe 40e190 - 40e0c0: 48 89 c1 mov %rax,%rcx - 40e0c3: 48 c1 e1 3c shl $0x3c,%rcx - 40e0c7: 48 c1 e9 3f shr $0x3f,%rcx - 40e0cb: 48 39 d1 cmp %rdx,%rcx - 40e0ce: 48 0f 47 ca cmova %rdx,%rcx - 40e0d2: 48 85 c9 test %rcx,%rcx - 40e0d5: 0f 84 f5 00 00 00 je 40e1d0 - 40e0db: 48 8b 30 mov (%rax),%rsi - 40e0de: 4c 8d 48 08 lea 0x8(%rax),%r9 - 40e0e2: 48 89 33 mov %rsi,(%rbx) - 40e0e5: 48 29 ca sub %rcx,%rdx - 40e0e8: 48 c1 e1 03 shl $0x3,%rcx - 40e0ec: 45 31 db xor %r11d,%r11d - 40e0ef: 48 8d 72 fe lea -0x2(%rdx),%rsi - 40e0f3: 48 01 c8 add %rcx,%rax - 40e0f6: 48 01 cb add %rcx,%rbx - 40e0f9: 31 c9 xor %ecx,%ecx - 40e0fb: 48 d1 ee shr %rsi - 40e0fe: 48 83 c6 01 add $0x1,%rsi - 40e102: 4c 8d 14 36 lea (%rsi,%rsi,1),%r10 - 40e106: 66 0f 6f 04 08 movdqa (%rax,%rcx,1),%xmm0 - 40e10b: 49 83 c3 01 add $0x1,%r11 - 40e10f: 0f 11 04 0b movups %xmm0,(%rbx,%rcx,1) - 40e113: 48 83 c1 10 add $0x10,%rcx - 40e117: 49 39 f3 cmp %rsi,%r11 - 40e11a: 72 ea jb 40e106 - 40e11c: 4a 8d 04 d5 00 00 00 lea 0x0(,%r10,8),%rax - 40e123: 00 - 40e124: 48 01 c7 add %rax,%rdi - 40e127: 49 01 c1 add %rax,%r9 - 40e12a: 49 39 d2 cmp %rdx,%r10 - 40e12d: 74 06 je 40e135 - 40e12f: 49 8b 01 mov (%r9),%rax - 40e132: 48 89 07 mov %rax,(%rdi) - 40e135: 4d 85 e4 test %r12,%r12 - 40e138: 4c 89 fb mov %r15,%rbx - 40e13b: 0f 85 ff fe ff ff jne 40e040 - 40e141: 4c 89 ed mov %r13,%rbp - 40e144: 4c 8b 6c 24 20 mov 0x20(%rsp),%r13 - 40e149: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40e150: 4d 85 e4 test %r12,%r12 - 40e153: 0f 85 df 00 00 00 jne 40e238 - 40e159: 48 8b 54 24 48 mov 0x48(%rsp),%rdx - 40e15e: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 40e163: 48 8b 7c 24 28 mov 0x28(%rsp),%rdi - 40e168: 48 29 ea sub %rbp,%rdx - 40e16b: 48 8b 70 20 mov 0x20(%rax),%rsi - 40e16f: 48 0f af 54 24 10 imul 0x10(%rsp),%rdx - 40e175: 48 83 c4 58 add $0x58,%rsp - 40e179: 5b pop %rbx - 40e17a: 5d pop %rbp - 40e17b: 41 5c pop %r12 - 40e17d: 41 5d pop %r13 - 40e17f: 41 5e pop %r14 - 40e181: 41 5f pop %r15 - 40e183: e9 98 de 01 00 jmpq 42c020 - 40e188: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40e18f: 00 - 40e190: 48 83 c0 08 add $0x8,%rax - 40e194: 48 8b 50 f8 mov -0x8(%rax),%rdx - 40e198: 48 83 c3 08 add $0x8,%rbx - 40e19c: 49 39 df cmp %rbx,%r15 - 40e19f: 48 89 53 f8 mov %rdx,-0x8(%rbx) - 40e1a3: 77 eb ja 40e190 - 40e1a5: eb 8e jmp 40e135 - 40e1a7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40e1ae: 00 00 - 40e1b0: 48 8b 7c 24 20 mov 0x20(%rsp),%rdi - 40e1b5: 49 83 ec 01 sub $0x1,%r12 - 40e1b9: 48 89 f8 mov %rdi,%rax - 40e1bc: 4c 01 f7 add %r14,%rdi - 40e1bf: 48 89 7c 24 20 mov %rdi,0x20(%rsp) - 40e1c4: e9 aa fe ff ff jmpq 40e073 - 40e1c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40e1d0: 49 89 c1 mov %rax,%r9 - 40e1d3: 48 89 df mov %rbx,%rdi - 40e1d6: e9 0a ff ff ff jmpq 40e0e5 - 40e1db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40e1e0: 4d 85 e4 test %r12,%r12 - 40e1e3: 4c 8b 6c 24 28 mov 0x28(%rsp),%r13 - 40e1e8: 75 20 jne 40e20a - 40e1ea: e9 61 ff ff ff jmpq 40e150 - 40e1ef: 90 nop - 40e1f0: 41 8b 07 mov (%r15),%eax - 40e1f3: 48 83 ed 01 sub $0x1,%rbp - 40e1f7: 49 83 c7 04 add $0x4,%r15 - 40e1fb: 89 03 mov %eax,(%rbx) - 40e1fd: 48 83 c3 04 add $0x4,%rbx - 40e201: 4d 85 e4 test %r12,%r12 - 40e204: 0f 84 46 ff ff ff je 40e150 - 40e20a: 48 85 ed test %rbp,%rbp - 40e20d: 0f 84 3d ff ff ff je 40e150 - 40e213: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 40e218: 4c 89 fe mov %r15,%rsi - 40e21b: 4c 89 ef mov %r13,%rdi - 40e21e: 41 ff d6 callq *%r14 - 40e221: 85 c0 test %eax,%eax - 40e223: 7f cb jg 40e1f0 - 40e225: 41 8b 45 00 mov 0x0(%r13),%eax - 40e229: 49 83 ec 01 sub $0x1,%r12 - 40e22d: 49 83 c5 04 add $0x4,%r13 - 40e231: eb c8 jmp 40e1fb - 40e233: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40e238: 4c 89 e2 mov %r12,%rdx - 40e23b: 4c 89 ee mov %r13,%rsi - 40e23e: 48 89 df mov %rbx,%rdi - 40e241: 48 0f af 54 24 10 imul 0x10(%rsp),%rdx - 40e247: e8 d4 dd 01 00 callq 42c020 - 40e24c: e9 08 ff ff ff jmpq 40e159 - 40e251: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40e258: 48 85 ed test %rbp,%rbp - 40e25b: 0f 84 c8 00 00 00 je 40e329 - 40e261: 4d 85 e4 test %r12,%r12 - 40e264: 4c 8b 6c 24 28 mov 0x28(%rsp),%r13 - 40e269: 75 29 jne 40e294 - 40e26b: e9 b9 00 00 00 jmpq 40e329 - 40e270: 49 8b 07 mov (%r15),%rax - 40e273: 48 83 ed 01 sub $0x1,%rbp - 40e277: 49 83 c7 08 add $0x8,%r15 - 40e27b: 48 89 03 mov %rax,(%rbx) - 40e27e: 48 83 c3 08 add $0x8,%rbx - 40e282: 4d 85 e4 test %r12,%r12 - 40e285: 0f 84 c5 fe ff ff je 40e150 - 40e28b: 48 85 ed test %rbp,%rbp - 40e28e: 0f 84 bc fe ff ff je 40e150 - 40e294: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 40e299: 4c 89 fe mov %r15,%rsi - 40e29c: 4c 89 ef mov %r13,%rdi - 40e29f: 41 ff d6 callq *%r14 - 40e2a2: 85 c0 test %eax,%eax - 40e2a4: 7f ca jg 40e270 - 40e2a6: 49 8b 45 00 mov 0x0(%r13),%rax - 40e2aa: 49 83 ec 01 sub $0x1,%r12 - 40e2ae: 49 83 c5 08 add $0x8,%r13 - 40e2b2: eb c7 jmp 40e27b - 40e2b4: 0f 1f 40 00 nopl 0x0(%rax) - 40e2b8: 4c 8b 6c 24 28 mov 0x28(%rsp),%r13 - 40e2bd: 4d 85 e4 test %r12,%r12 - 40e2c0: 0f 84 8a fe ff ff je 40e150 - 40e2c6: 48 85 ed test %rbp,%rbp - 40e2c9: 0f 84 81 fe ff ff je 40e150 - 40e2cf: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 40e2d4: 4c 89 fe mov %r15,%rsi - 40e2d7: 4c 89 ef mov %r13,%rdi - 40e2da: 41 ff d6 callq *%r14 - 40e2dd: 85 c0 test %eax,%eax - 40e2df: 48 8b 54 24 10 mov 0x10(%rsp),%rdx - 40e2e4: 7e 2a jle 40e310 - 40e2e6: 4c 89 fe mov %r15,%rsi - 40e2e9: 48 89 df mov %rbx,%rdi - 40e2ec: 48 83 ed 01 sub $0x1,%rbp - 40e2f0: e8 cb 82 01 00 callq 4265c0 <__mempcpy> - 40e2f5: 4c 03 7c 24 10 add 0x10(%rsp),%r15 - 40e2fa: 4d 85 e4 test %r12,%r12 - 40e2fd: 48 89 c3 mov %rax,%rbx - 40e300: 75 c4 jne 40e2c6 - 40e302: e9 49 fe ff ff jmpq 40e150 - 40e307: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40e30e: 00 00 - 40e310: 4c 89 ee mov %r13,%rsi - 40e313: 48 89 df mov %rbx,%rdi - 40e316: 49 83 ec 01 sub $0x1,%r12 - 40e31a: e8 a1 82 01 00 callq 4265c0 <__mempcpy> - 40e31f: 4c 03 6c 24 10 add 0x10(%rsp),%r13 - 40e324: 48 89 c3 mov %rax,%rbx - 40e327: eb 94 jmp 40e2bd - 40e329: 4c 8b 6c 24 28 mov 0x28(%rsp),%r13 - 40e32e: e9 1d fe ff ff jmpq 40e150 - 40e333: 0f 1f 00 nopl (%rax) - 40e336: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40e33d: 00 00 00 - -000000000040e340 <__qsort_r>: - 40e340: 55 push %rbp - 40e341: 48 89 e5 mov %rsp,%rbp - 40e344: 41 57 push %r15 - 40e346: 41 56 push %r14 - 40e348: 41 55 push %r13 - 40e34a: 41 54 push %r12 - 40e34c: 49 89 fe mov %rdi,%r14 - 40e34f: 53 push %rbx - 40e350: 49 89 cf mov %rcx,%r15 - 40e353: 48 89 d3 mov %rdx,%rbx - 40e356: 49 89 f5 mov %rsi,%r13 - 40e359: 48 83 ec 68 sub $0x68,%rsp - 40e35d: 48 83 fa 20 cmp $0x20,%rdx - 40e361: 48 89 75 88 mov %rsi,-0x78(%rbp) - 40e365: 0f 87 f5 02 00 00 ja 40e660 <__qsort_r+0x320> - 40e36b: 4c 0f af ea imul %rdx,%r13 - 40e36f: 49 81 fd ff 03 00 00 cmp $0x3ff,%r13 - 40e376: 0f 86 f8 02 00 00 jbe 40e674 <__qsort_r+0x334> - 40e37c: 8b 15 ce dd 2b 00 mov 0x2bddce(%rip),%edx # 6cc150 - 40e382: 85 d2 test %edx,%edx - 40e384: 0f 84 96 03 00 00 je 40e720 <__qsort_r+0x3e0> - 40e38a: 48 63 f2 movslq %edx,%rsi - 40e38d: 4c 89 e8 mov %r13,%rax - 40e390: 31 d2 xor %edx,%edx - 40e392: 48 f7 f6 div %rsi - 40e395: 48 3b 05 ac dd 2b 00 cmp 0x2bddac(%rip),%rax # 6cc148 - 40e39c: 0f 87 fe 02 00 00 ja 40e6a0 <__qsort_r+0x360> - 40e3a2: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 40e3a9: 4c 89 ef mov %r13,%rdi - 40e3ac: 4c 89 45 98 mov %r8,-0x68(%rbp) - 40e3b0: 64 44 8b 20 mov %fs:(%rax),%r12d - 40e3b4: e8 57 f6 00 00 callq 41da10 <__libc_malloc> - 40e3b9: 48 c7 c1 d0 ff ff ff mov $0xffffffffffffffd0,%rcx - 40e3c0: 48 85 c0 test %rax,%rax - 40e3c3: 48 89 85 78 ff ff ff mov %rax,-0x88(%rbp) - 40e3ca: 4c 8b 45 98 mov -0x68(%rbp),%r8 - 40e3ce: 64 44 89 21 mov %r12d,%fs:(%rcx) - 40e3d2: 0f 84 c8 02 00 00 je 40e6a0 <__qsort_r+0x360> - 40e3d8: 48 89 45 c0 mov %rax,-0x40(%rbp) - 40e3dc: 48 89 c6 mov %rax,%rsi - 40e3df: 48 83 fb 20 cmp $0x20,%rbx - 40e3e3: 48 89 5d a0 mov %rbx,-0x60(%rbp) - 40e3e7: 48 c7 45 a8 04 00 00 movq $0x4,-0x58(%rbp) - 40e3ee: 00 - 40e3ef: 4c 89 7d b0 mov %r15,-0x50(%rbp) - 40e3f3: 4c 89 45 b8 mov %r8,-0x48(%rbp) - 40e3f7: 0f 86 cb 02 00 00 jbe 40e6c8 <__qsort_r+0x388> - 40e3fd: 48 8b 45 88 mov -0x78(%rbp),%rax - 40e401: 4c 8d 0c c5 00 00 00 lea 0x0(,%rax,8),%r9 - 40e408: 00 - 40e409: 4e 8d 24 0e lea (%rsi,%r9,1),%r12 - 40e40d: 4b 8d 04 0c lea (%r12,%r9,1),%rax - 40e411: 49 39 c4 cmp %rax,%r12 - 40e414: 48 89 45 80 mov %rax,-0x80(%rbp) - 40e418: 0f 83 94 03 00 00 jae 40e7b2 <__qsort_r+0x472> - 40e41e: 49 8d 4c 24 08 lea 0x8(%r12),%rcx - 40e423: 4c 8d 58 07 lea 0x7(%rax),%r11 - 40e427: 4c 89 e2 mov %r12,%rdx - 40e42a: 48 c1 e2 3c shl $0x3c,%rdx - 40e42e: 49 29 cb sub %rcx,%r11 - 40e431: 48 c1 ea 3f shr $0x3f,%rdx - 40e435: 49 c1 eb 03 shr $0x3,%r11 - 40e439: 49 8d 7b 01 lea 0x1(%r11),%rdi - 40e43d: 48 39 fa cmp %rdi,%rdx - 40e440: 48 0f 47 d7 cmova %rdi,%rdx - 40e444: 48 83 ff 0a cmp $0xa,%rdi - 40e448: 0f 87 29 03 00 00 ja 40e777 <__qsort_r+0x437> - 40e44e: 48 89 fa mov %rdi,%rdx - 40e451: 48 83 fa 01 cmp $0x1,%rdx - 40e455: 4d 89 34 24 mov %r14,(%r12) - 40e459: 49 8d 04 1e lea (%r14,%rbx,1),%rax - 40e45d: 0f 84 a9 00 00 00 je 40e50c <__qsort_r+0x1cc> - 40e463: 49 89 44 24 08 mov %rax,0x8(%r12) - 40e468: 48 01 d8 add %rbx,%rax - 40e46b: 48 83 fa 02 cmp $0x2,%rdx - 40e46f: 49 8d 4c 24 10 lea 0x10(%r12),%rcx - 40e474: 0f 84 92 00 00 00 je 40e50c <__qsort_r+0x1cc> - 40e47a: 49 89 44 24 10 mov %rax,0x10(%r12) - 40e47f: 48 01 d8 add %rbx,%rax - 40e482: 48 83 fa 03 cmp $0x3,%rdx - 40e486: 49 8d 4c 24 18 lea 0x18(%r12),%rcx - 40e48b: 74 7f je 40e50c <__qsort_r+0x1cc> - 40e48d: 49 89 44 24 18 mov %rax,0x18(%r12) - 40e492: 48 01 d8 add %rbx,%rax - 40e495: 48 83 fa 04 cmp $0x4,%rdx - 40e499: 49 8d 4c 24 20 lea 0x20(%r12),%rcx - 40e49e: 74 6c je 40e50c <__qsort_r+0x1cc> - 40e4a0: 49 89 44 24 20 mov %rax,0x20(%r12) - 40e4a5: 48 01 d8 add %rbx,%rax - 40e4a8: 48 83 fa 05 cmp $0x5,%rdx - 40e4ac: 49 8d 4c 24 28 lea 0x28(%r12),%rcx - 40e4b1: 74 59 je 40e50c <__qsort_r+0x1cc> - 40e4b3: 49 89 44 24 28 mov %rax,0x28(%r12) - 40e4b8: 48 01 d8 add %rbx,%rax - 40e4bb: 48 83 fa 06 cmp $0x6,%rdx - 40e4bf: 49 8d 4c 24 30 lea 0x30(%r12),%rcx - 40e4c4: 74 46 je 40e50c <__qsort_r+0x1cc> - 40e4c6: 49 89 44 24 30 mov %rax,0x30(%r12) - 40e4cb: 48 01 d8 add %rbx,%rax - 40e4ce: 48 83 fa 07 cmp $0x7,%rdx - 40e4d2: 49 8d 4c 24 38 lea 0x38(%r12),%rcx - 40e4d7: 74 33 je 40e50c <__qsort_r+0x1cc> - 40e4d9: 49 89 44 24 38 mov %rax,0x38(%r12) - 40e4de: 48 01 d8 add %rbx,%rax - 40e4e1: 48 83 fa 08 cmp $0x8,%rdx - 40e4e5: 49 8d 4c 24 40 lea 0x40(%r12),%rcx - 40e4ea: 74 20 je 40e50c <__qsort_r+0x1cc> - 40e4ec: 49 89 44 24 40 mov %rax,0x40(%r12) - 40e4f1: 48 01 d8 add %rbx,%rax - 40e4f4: 48 83 fa 0a cmp $0xa,%rdx - 40e4f8: 49 8d 4c 24 48 lea 0x48(%r12),%rcx - 40e4fd: 75 0d jne 40e50c <__qsort_r+0x1cc> - 40e4ff: 49 8d 4c 24 50 lea 0x50(%r12),%rcx - 40e504: 49 89 44 24 48 mov %rax,0x48(%r12) - 40e509: 48 01 d8 add %rbx,%rax - 40e50c: 48 39 d7 cmp %rdx,%rdi - 40e50f: 74 72 je 40e583 <__qsort_r+0x243> - 40e511: 48 29 d7 sub %rdx,%rdi - 40e514: 4c 8d 47 fe lea -0x2(%rdi),%r8 - 40e518: 49 d1 e8 shr %r8 - 40e51b: 49 83 c0 01 add $0x1,%r8 - 40e51f: 49 39 d3 cmp %rdx,%r11 - 40e522: 4f 8d 14 00 lea (%r8,%r8,1),%r10 - 40e526: 74 58 je 40e580 <__qsort_r+0x240> - 40e528: 4c 8d 1c 03 lea (%rbx,%rax,1),%r11 - 40e52c: 48 89 45 98 mov %rax,-0x68(%rbp) - 40e530: 48 03 55 88 add -0x78(%rbp),%rdx - 40e534: f3 0f 7e 45 98 movq -0x68(%rbp),%xmm0 - 40e539: 4c 89 5d 98 mov %r11,-0x68(%rbp) - 40e53d: 4c 8d 1c 1b lea (%rbx,%rbx,1),%r11 - 40e541: 0f 16 45 98 movhps -0x68(%rbp),%xmm0 - 40e545: 4c 89 5d 98 mov %r11,-0x68(%rbp) - 40e549: 48 8d 34 d6 lea (%rsi,%rdx,8),%rsi - 40e54d: 31 d2 xor %edx,%edx - 40e54f: f3 0f 7e 4d 98 movq -0x68(%rbp),%xmm1 - 40e554: 66 0f 6c c9 punpcklqdq %xmm1,%xmm1 - 40e558: 48 83 c2 01 add $0x1,%rdx - 40e55c: 48 83 c6 10 add $0x10,%rsi - 40e560: 0f 29 46 f0 movaps %xmm0,-0x10(%rsi) - 40e564: 66 0f d4 c1 paddq %xmm1,%xmm0 - 40e568: 4c 39 c2 cmp %r8,%rdx - 40e56b: 72 eb jb 40e558 <__qsort_r+0x218> - 40e56d: 48 89 da mov %rbx,%rdx - 40e570: 4a 8d 0c d1 lea (%rcx,%r10,8),%rcx - 40e574: 49 0f af d2 imul %r10,%rdx - 40e578: 48 01 d0 add %rdx,%rax - 40e57b: 4c 39 d7 cmp %r10,%rdi - 40e57e: 74 03 je 40e583 <__qsort_r+0x243> - 40e580: 48 89 01 mov %rax,(%rcx) - 40e583: 4c 89 ce mov %r9,%rsi - 40e586: 48 03 75 c0 add -0x40(%rbp),%rsi - 40e58a: 48 8b 45 88 mov -0x78(%rbp),%rax - 40e58e: 48 c7 45 a0 08 00 00 movq $0x8,-0x60(%rbp) - 40e595: 00 - 40e596: 48 c7 45 a8 03 00 00 movq $0x3,-0x58(%rbp) - 40e59d: 00 - 40e59e: 48 83 f8 01 cmp $0x1,%rax - 40e5a2: 0f 86 e3 01 00 00 jbe 40e78b <__qsort_r+0x44b> - 40e5a8: 48 8d 7d a0 lea -0x60(%rbp),%rdi - 40e5ac: 48 89 c2 mov %rax,%rdx - 40e5af: e8 3c f9 ff ff callq 40def0 - 40e5b4: 48 c7 45 90 00 00 00 movq $0x0,-0x70(%rbp) - 40e5bb: 00 - 40e5bc: 48 8b 45 90 mov -0x70(%rbp),%rax - 40e5c0: 4c 89 75 98 mov %r14,-0x68(%rbp) - 40e5c4: 0f 1f 40 00 nopl 0x0(%rax) - 40e5c8: 4d 8b 3c c4 mov (%r12,%rax,8),%r15 - 40e5cc: 4c 8b 6d 98 mov -0x68(%rbp),%r13 - 40e5d0: 4d 39 ef cmp %r13,%r15 - 40e5d3: 74 5d je 40e632 <__qsort_r+0x2f2> - 40e5d5: 48 8b 7d 80 mov -0x80(%rbp),%rdi - 40e5d9: 4c 89 ee mov %r13,%rsi - 40e5dc: 48 89 da mov %rbx,%rdx - 40e5df: e8 3c da 01 00 callq 42c020 - 40e5e4: 4c 89 ef mov %r13,%rdi - 40e5e7: 48 8b 75 90 mov -0x70(%rbp),%rsi - 40e5eb: eb 06 jmp 40e5f3 <__qsort_r+0x2b3> - 40e5ed: 0f 1f 00 nopl (%rax) - 40e5f0: 49 89 c7 mov %rax,%r15 - 40e5f3: 4c 89 f8 mov %r15,%rax - 40e5f6: 31 d2 xor %edx,%edx - 40e5f8: 49 89 3c f4 mov %rdi,(%r12,%rsi,8) - 40e5fc: 4c 29 f0 sub %r14,%rax - 40e5ff: 4c 89 fe mov %r15,%rsi - 40e602: 48 f7 f3 div %rbx - 40e605: 48 89 da mov %rbx,%rdx - 40e608: 49 89 c5 mov %rax,%r13 - 40e60b: e8 10 da 01 00 callq 42c020 - 40e610: 4b 8d 14 ec lea (%r12,%r13,8),%rdx - 40e614: 4c 89 ee mov %r13,%rsi - 40e617: 4c 89 ff mov %r15,%rdi - 40e61a: 48 8b 02 mov (%rdx),%rax - 40e61d: 48 3b 45 98 cmp -0x68(%rbp),%rax - 40e621: 75 cd jne 40e5f0 <__qsort_r+0x2b0> - 40e623: 48 8b 75 80 mov -0x80(%rbp),%rsi - 40e627: 4c 89 3a mov %r15,(%rdx) - 40e62a: 48 89 da mov %rbx,%rdx - 40e62d: e8 ee d9 01 00 callq 42c020 - 40e632: 48 83 45 90 01 addq $0x1,-0x70(%rbp) - 40e637: 48 01 5d 98 add %rbx,-0x68(%rbp) - 40e63b: 48 8b 45 90 mov -0x70(%rbp),%rax - 40e63f: 48 39 45 88 cmp %rax,-0x78(%rbp) - 40e643: 75 83 jne 40e5c8 <__qsort_r+0x288> - 40e645: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi - 40e64c: e8 5f f7 00 00 callq 41ddb0 <__cfree> - 40e651: 48 8d 65 d8 lea -0x28(%rbp),%rsp - 40e655: 5b pop %rbx - 40e656: 41 5c pop %r12 - 40e658: 41 5d pop %r13 - 40e65a: 41 5e pop %r14 - 40e65c: 41 5f pop %r15 - 40e65e: 5d pop %rbp - 40e65f: c3 retq - 40e660: 49 c1 e5 04 shl $0x4,%r13 - 40e664: 49 01 d5 add %rdx,%r13 - 40e667: 49 81 fd ff 03 00 00 cmp $0x3ff,%r13 - 40e66e: 0f 87 08 fd ff ff ja 40e37c <__qsort_r+0x3c> - 40e674: 49 83 c5 1e add $0x1e,%r13 - 40e678: 48 c7 85 78 ff ff ff movq $0x0,-0x88(%rbp) - 40e67f: 00 00 00 00 - 40e683: 49 83 e5 f0 and $0xfffffffffffffff0,%r13 - 40e687: 4c 29 ec sub %r13,%rsp - 40e68a: 48 8d 74 24 0f lea 0xf(%rsp),%rsi - 40e68f: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 40e693: 48 89 75 c0 mov %rsi,-0x40(%rbp) - 40e697: e9 43 fd ff ff jmpq 40e3df <__qsort_r+0x9f> - 40e69c: 0f 1f 40 00 nopl 0x0(%rax) - 40e6a0: 48 8b 75 88 mov -0x78(%rbp),%rsi - 40e6a4: 4c 89 f9 mov %r15,%rcx - 40e6a7: 48 89 da mov %rbx,%rdx - 40e6aa: 4c 89 f7 mov %r14,%rdi - 40e6ad: e8 ce 10 04 00 callq 44f780 <_quicksort> - 40e6b2: 48 8d 65 d8 lea -0x28(%rbp),%rsp - 40e6b6: 5b pop %rbx - 40e6b7: 41 5c pop %r12 - 40e6b9: 41 5d pop %r13 - 40e6bb: 41 5e pop %r14 - 40e6bd: 41 5f pop %r15 - 40e6bf: 5d pop %rbp - 40e6c0: c3 retq - 40e6c1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40e6c8: 48 89 d8 mov %rbx,%rax - 40e6cb: 4c 09 f0 or %r14,%rax - 40e6ce: a8 03 test $0x3,%al - 40e6d0: 75 20 jne 40e6f2 <__qsort_r+0x3b2> - 40e6d2: 48 83 fb 04 cmp $0x4,%rbx - 40e6d6: 0f 84 de 00 00 00 je 40e7ba <__qsort_r+0x47a> - 40e6dc: 48 83 fb 08 cmp $0x8,%rbx - 40e6e0: 0f 84 b5 00 00 00 je 40e79b <__qsort_r+0x45b> - 40e6e6: a8 07 test $0x7,%al - 40e6e8: 75 08 jne 40e6f2 <__qsort_r+0x3b2> - 40e6ea: 48 c7 45 a8 02 00 00 movq $0x2,-0x58(%rbp) - 40e6f1: 00 - 40e6f2: 48 8b 45 88 mov -0x78(%rbp),%rax - 40e6f6: 48 83 f8 01 cmp $0x1,%rax - 40e6fa: 0f 86 45 ff ff ff jbe 40e645 <__qsort_r+0x305> - 40e700: 48 8d 7d a0 lea -0x60(%rbp),%rdi - 40e704: 48 89 c2 mov %rax,%rdx - 40e707: 4c 89 f6 mov %r14,%rsi - 40e70a: e8 e1 f7 ff ff callq 40def0 - 40e70f: 48 8b bd 78 ff ff ff mov -0x88(%rbp),%rdi - 40e716: e8 95 f6 00 00 callq 41ddb0 <__cfree> - 40e71b: e9 31 ff ff ff jmpq 40e651 <__qsort_r+0x311> - 40e720: bf 55 00 00 00 mov $0x55,%edi - 40e725: 4c 89 45 98 mov %r8,-0x68(%rbp) - 40e729: e8 e2 01 03 00 callq 43e910 <__sysconf> - 40e72e: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 40e732: 48 ba ff ff ff ff ff movabs $0x1fffffffffffffff,%rdx - 40e739: ff ff 1f - 40e73c: 4c 8b 45 98 mov -0x68(%rbp),%r8 - 40e740: 74 0f je 40e751 <__qsort_r+0x411> - 40e742: 48 8d 50 03 lea 0x3(%rax),%rdx - 40e746: 48 85 c0 test %rax,%rax - 40e749: 48 0f 49 d0 cmovns %rax,%rdx - 40e74d: 48 c1 fa 02 sar $0x2,%rdx - 40e751: 4c 89 45 98 mov %r8,-0x68(%rbp) - 40e755: 48 89 15 ec d9 2b 00 mov %rdx,0x2bd9ec(%rip) # 6cc148 - 40e75c: bf 1e 00 00 00 mov $0x1e,%edi - 40e761: e8 aa 01 03 00 callq 43e910 <__sysconf> - 40e766: 4c 8b 45 98 mov -0x68(%rbp),%r8 - 40e76a: 89 c2 mov %eax,%edx - 40e76c: 89 05 de d9 2b 00 mov %eax,0x2bd9de(%rip) # 6cc150 - 40e772: e9 13 fc ff ff jmpq 40e38a <__qsort_r+0x4a> - 40e777: 48 85 d2 test %rdx,%rdx - 40e77a: 0f 85 d1 fc ff ff jne 40e451 <__qsort_r+0x111> - 40e780: 4c 89 e1 mov %r12,%rcx - 40e783: 4c 89 f0 mov %r14,%rax - 40e786: e9 86 fd ff ff jmpq 40e511 <__qsort_r+0x1d1> - 40e78b: 48 83 7d 88 00 cmpq $0x0,-0x78(%rbp) - 40e790: 0f 85 1e fe ff ff jne 40e5b4 <__qsort_r+0x274> - 40e796: e9 aa fe ff ff jmpq 40e645 <__qsort_r+0x305> - 40e79b: 41 f6 c6 07 test $0x7,%r14b - 40e79f: 0f 85 41 ff ff ff jne 40e6e6 <__qsort_r+0x3a6> - 40e7a5: 48 c7 45 a8 01 00 00 movq $0x1,-0x58(%rbp) - 40e7ac: 00 - 40e7ad: e9 40 ff ff ff jmpq 40e6f2 <__qsort_r+0x3b2> - 40e7b2: 4c 89 e6 mov %r12,%rsi - 40e7b5: e9 d0 fd ff ff jmpq 40e58a <__qsort_r+0x24a> - 40e7ba: 48 c7 45 a8 00 00 00 movq $0x0,-0x58(%rbp) - 40e7c1: 00 - 40e7c2: e9 2b ff ff ff jmpq 40e6f2 <__qsort_r+0x3b2> - 40e7c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40e7ce: 00 00 - -000000000040e7d0 : - 40e7d0: 45 31 c0 xor %r8d,%r8d - 40e7d3: e9 68 fb ff ff jmpq 40e340 <__qsort_r> - 40e7d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40e7df: 00 - -000000000040e7e0 : - 40e7e0: 41 57 push %r15 - 40e7e2: 41 56 push %r14 - 40e7e4: 41 55 push %r13 - 40e7e6: 41 54 push %r12 - 40e7e8: 55 push %rbp - 40e7e9: 53 push %rbx - 40e7ea: 48 89 fb mov %rdi,%rbx - 40e7ed: 48 83 ec 08 sub $0x8,%rsp - 40e7f1: e8 5a 4e 01 00 callq 423650 - 40e7f6: 48 8b 2d 43 de 2b 00 mov 0x2bde43(%rip),%rbp # 6cc640 <__environ> - 40e7fd: 48 85 ed test %rbp,%rbp - 40e800: 0f 84 b2 00 00 00 je 40e8b8 - 40e806: 49 89 c5 mov %rax,%r13 - 40e809: 0f b6 03 movzbl (%rbx),%eax - 40e80c: 84 c0 test %al,%al - 40e80e: 0f 84 a4 00 00 00 je 40e8b8 - 40e814: 80 7b 01 00 cmpb $0x0,0x1(%rbx) - 40e818: 75 46 jne 40e860 - 40e81a: 48 8b 5d 00 mov 0x0(%rbp),%rbx - 40e81e: 80 cc 3d or $0x3d,%ah - 40e821: 48 85 db test %rbx,%rbx - 40e824: 75 17 jne 40e83d - 40e826: eb 1e jmp 40e846 - 40e828: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40e82f: 00 - 40e830: 48 83 c5 08 add $0x8,%rbp - 40e834: 48 8b 5d 00 mov 0x0(%rbp),%rbx - 40e838: 48 85 db test %rbx,%rbx - 40e83b: 74 09 je 40e846 - 40e83d: 66 3b 03 cmp (%rbx),%ax - 40e840: 75 ee jne 40e830 - 40e842: 48 83 c3 02 add $0x2,%rbx - 40e846: 48 83 c4 08 add $0x8,%rsp - 40e84a: 48 89 d8 mov %rbx,%rax - 40e84d: 5b pop %rbx - 40e84e: 5d pop %rbp - 40e84f: 41 5c pop %r12 - 40e851: 41 5d pop %r13 - 40e853: 41 5e pop %r14 - 40e855: 41 5f pop %r15 - 40e857: c3 retq - 40e858: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40e85f: 00 - 40e860: 44 0f b7 23 movzwl (%rbx),%r12d - 40e864: 4c 8d 7b 02 lea 0x2(%rbx),%r15 - 40e868: 48 8b 5d 00 mov 0x0(%rbp),%rbx - 40e86c: 4d 8d 75 fe lea -0x2(%r13),%r14 - 40e870: 48 85 db test %rbx,%rbx - 40e873: 75 18 jne 40e88d - 40e875: eb cf jmp 40e846 - 40e877: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40e87e: 00 00 - 40e880: 48 83 c5 08 add $0x8,%rbp - 40e884: 48 8b 5d 00 mov 0x0(%rbp),%rbx - 40e888: 48 85 db test %rbx,%rbx - 40e88b: 74 b9 je 40e846 - 40e88d: 66 44 3b 23 cmp (%rbx),%r12w - 40e891: 75 ed jne 40e880 - 40e893: 48 8d 7b 02 lea 0x2(%rbx),%rdi - 40e897: 4c 89 f2 mov %r14,%rdx - 40e89a: 4c 89 fe mov %r15,%rsi - 40e89d: e8 4e 4f 01 00 callq 4237f0 - 40e8a2: 85 c0 test %eax,%eax - 40e8a4: 75 da jne 40e880 - 40e8a6: 42 80 3c 2b 3d cmpb $0x3d,(%rbx,%r13,1) - 40e8ab: 75 d3 jne 40e880 - 40e8ad: 4a 8d 5c 2b 01 lea 0x1(%rbx,%r13,1),%rbx - 40e8b2: eb 92 jmp 40e846 - 40e8b4: 0f 1f 40 00 nopl 0x0(%rax) - 40e8b8: 31 db xor %ebx,%ebx - 40e8ba: eb 8a jmp 40e846 - 40e8bc: 0f 1f 40 00 nopl 0x0(%rax) - -000000000040e8c0 <__run_exit_handlers>: - 40e8c0: 41 55 push %r13 - 40e8c2: 41 54 push %r12 - 40e8c4: b8 00 00 00 00 mov $0x0,%eax - 40e8c9: 55 push %rbp - 40e8ca: 53 push %rbx - 40e8cb: 48 89 f5 mov %rsi,%rbp - 40e8ce: 89 fb mov %edi,%ebx - 40e8d0: 41 89 d4 mov %edx,%r12d - 40e8d3: 48 83 ec 08 sub $0x8,%rsp - 40e8d7: 48 85 c0 test %rax,%rax - 40e8da: 74 05 je 40e8e1 <__run_exit_handlers+0x21> - 40e8dc: e8 1f 17 bf ff callq 0 <_nl_current_LC_CTYPE> - 40e8e1: 4c 8b 6d 00 mov 0x0(%rbp),%r13 - 40e8e5: 4d 85 ed test %r13,%r13 - 40e8e8: 74 56 je 40e940 <__run_exit_handlers+0x80> - 40e8ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 40e8f0: 49 8b 45 08 mov 0x8(%r13),%rax - 40e8f4: 48 89 c2 mov %rax,%rdx - 40e8f7: 48 c1 e2 05 shl $0x5,%rdx - 40e8fb: 48 85 c0 test %rax,%rax - 40e8fe: 49 8d 4c 15 f0 lea -0x10(%r13,%rdx,1),%rcx - 40e903: 74 2a je 40e92f <__run_exit_handlers+0x6f> - 40e905: 48 83 e8 01 sub $0x1,%rax - 40e909: 49 89 45 08 mov %rax,0x8(%r13) - 40e90d: 48 8b 11 mov (%rcx),%rdx - 40e910: 48 83 fa 03 cmp $0x3,%rdx - 40e914: 0f 84 a6 00 00 00 je 40e9c0 <__run_exit_handlers+0x100> - 40e91a: 48 83 fa 04 cmp $0x4,%rdx - 40e91e: 74 78 je 40e998 <__run_exit_handlers+0xd8> - 40e920: 48 83 fa 02 cmp $0x2,%rdx - 40e924: 74 4a je 40e970 <__run_exit_handlers+0xb0> - 40e926: 48 83 e9 20 sub $0x20,%rcx - 40e92a: 48 85 c0 test %rax,%rax - 40e92d: 75 d6 jne 40e905 <__run_exit_handlers+0x45> - 40e92f: 49 8b 45 00 mov 0x0(%r13),%rax - 40e933: 48 85 c0 test %rax,%rax - 40e936: 48 89 45 00 mov %rax,0x0(%rbp) - 40e93a: 0f 85 9d 00 00 00 jne 40e9dd <__run_exit_handlers+0x11d> - 40e940: 45 84 e4 test %r12b,%r12b - 40e943: 74 20 je 40e965 <__run_exit_handlers+0xa5> - 40e945: b8 58 e1 4b 00 mov $0x4be158,%eax - 40e94a: 48 3d 60 e1 4b 00 cmp $0x4be160,%rax - 40e950: 73 13 jae 40e965 <__run_exit_handlers+0xa5> - 40e952: 48 89 c5 mov %rax,%rbp - 40e955: ff 55 00 callq *0x0(%rbp) - 40e958: 48 83 c5 08 add $0x8,%rbp - 40e95c: 48 81 fd 60 e1 4b 00 cmp $0x4be160,%rbp - 40e963: 72 f0 jb 40e955 <__run_exit_handlers+0x95> - 40e965: 89 df mov %ebx,%edi - 40e967: e8 64 fe 02 00 callq 43e7d0 <_exit> - 40e96c: 0f 1f 40 00 nopl 0x0(%rax) - 40e970: 48 c1 e0 05 shl $0x5,%rax - 40e974: 89 df mov %ebx,%edi - 40e976: 4c 01 e8 add %r13,%rax - 40e979: 48 8b 50 18 mov 0x18(%rax),%rdx - 40e97d: 48 8b 70 20 mov 0x20(%rax),%rsi - 40e981: 48 c1 ca 11 ror $0x11,%rdx - 40e985: 64 48 33 14 25 30 00 xor %fs:0x30,%rdx - 40e98c: 00 00 - 40e98e: ff d2 callq *%rdx - 40e990: e9 5b ff ff ff jmpq 40e8f0 <__run_exit_handlers+0x30> - 40e995: 0f 1f 00 nopl (%rax) - 40e998: 48 c1 e0 05 shl $0x5,%rax - 40e99c: 89 de mov %ebx,%esi - 40e99e: 4c 01 e8 add %r13,%rax - 40e9a1: 48 8b 50 18 mov 0x18(%rax),%rdx - 40e9a5: 48 8b 78 20 mov 0x20(%rax),%rdi - 40e9a9: 48 c1 ca 11 ror $0x11,%rdx - 40e9ad: 64 48 33 14 25 30 00 xor %fs:0x30,%rdx - 40e9b4: 00 00 - 40e9b6: ff d2 callq *%rdx - 40e9b8: e9 33 ff ff ff jmpq 40e8f0 <__run_exit_handlers+0x30> - 40e9bd: 0f 1f 00 nopl (%rax) - 40e9c0: 48 c1 e0 05 shl $0x5,%rax - 40e9c4: 49 8b 44 05 18 mov 0x18(%r13,%rax,1),%rax - 40e9c9: 48 c1 c8 11 ror $0x11,%rax - 40e9cd: 64 48 33 04 25 30 00 xor %fs:0x30,%rax - 40e9d4: 00 00 - 40e9d6: ff d0 callq *%rax - 40e9d8: e9 13 ff ff ff jmpq 40e8f0 <__run_exit_handlers+0x30> - 40e9dd: 4c 89 ef mov %r13,%rdi - 40e9e0: e8 cb f3 00 00 callq 41ddb0 <__cfree> - 40e9e5: e9 f7 fe ff ff jmpq 40e8e1 <__run_exit_handlers+0x21> - 40e9ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -000000000040e9f0 : - 40e9f0: 48 83 ec 08 sub $0x8,%rsp - 40e9f4: ba 01 00 00 00 mov $0x1,%edx - 40e9f9: be a0 a0 6c 00 mov $0x6ca0a0,%esi - 40e9fe: e8 bd fe ff ff callq 40e8c0 <__run_exit_handlers> - 40ea03: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40ea0a: 00 00 00 - 40ea0d: 0f 1f 00 nopl (%rax) - -000000000040ea10 <__new_exitfn>: - 40ea10: 55 push %rbp - 40ea11: 53 push %rbx - 40ea12: be 01 00 00 00 mov $0x1,%esi - 40ea17: 48 89 fb mov %rdi,%rbx - 40ea1a: 31 c0 xor %eax,%eax - 40ea1c: 48 83 ec 08 sub $0x8,%rsp - 40ea20: 83 3d 95 e7 2b 00 00 cmpl $0x0,0x2be795(%rip) # 6cd1bc <__libc_multiple_threads> - 40ea27: 74 0c je 40ea35 <__new_exitfn+0x25> - 40ea29: f0 0f b1 35 3f db 2b lock cmpxchg %esi,0x2bdb3f(%rip) # 6cc570 - 40ea30: 00 - 40ea31: 75 0b jne 40ea3e <__new_exitfn+0x2e> - 40ea33: eb 23 jmp 40ea58 <__new_exitfn+0x48> - 40ea35: 0f b1 35 34 db 2b 00 cmpxchg %esi,0x2bdb34(%rip) # 6cc570 - 40ea3c: 74 1a je 40ea58 <__new_exitfn+0x48> - 40ea3e: 48 8d 3d 2b db 2b 00 lea 0x2bdb2b(%rip),%rdi # 6cc570 - 40ea45: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 40ea4c: e8 7f 3b 03 00 callq 4425d0 <__lll_lock_wait_private> - 40ea51: 48 81 c4 80 00 00 00 add $0x80,%rsp - 40ea58: 48 8b 2b mov (%rbx),%rbp - 40ea5b: 31 ff xor %edi,%edi - 40ea5d: 48 85 ed test %rbp,%rbp - 40ea60: 48 89 e8 mov %rbp,%rax - 40ea63: 0f 84 10 01 00 00 je 40eb79 <__new_exitfn+0x169> - 40ea69: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40ea70: 48 8b 48 08 mov 0x8(%rax),%rcx - 40ea74: 48 85 c9 test %rcx,%rcx - 40ea77: 74 3e je 40eab7 <__new_exitfn+0xa7> - 40ea79: 48 8d 51 ff lea -0x1(%rcx),%rdx - 40ea7d: 48 89 d6 mov %rdx,%rsi - 40ea80: 48 c1 e6 05 shl $0x5,%rsi - 40ea84: 48 83 7c 30 10 00 cmpq $0x0,0x10(%rax,%rsi,1) - 40ea8a: 75 47 jne 40ead3 <__new_exitfn+0xc3> - 40ea8c: 48 c1 e1 05 shl $0x5,%rcx - 40ea90: 48 8d 4c 08 d0 lea -0x30(%rax,%rcx,1),%rcx - 40ea95: eb 1b jmp 40eab2 <__new_exitfn+0xa2> - 40ea97: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40ea9e: 00 00 - 40eaa0: 48 83 e9 20 sub $0x20,%rcx - 40eaa4: 48 8d 72 ff lea -0x1(%rdx),%rsi - 40eaa8: 48 83 79 20 00 cmpq $0x0,0x20(%rcx) - 40eaad: 75 31 jne 40eae0 <__new_exitfn+0xd0> - 40eaaf: 48 89 f2 mov %rsi,%rdx - 40eab2: 48 85 d2 test %rdx,%rdx - 40eab5: 75 e9 jne 40eaa0 <__new_exitfn+0x90> - 40eab7: 48 8b 10 mov (%rax),%rdx - 40eaba: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) - 40eac1: 00 - 40eac2: 48 89 c7 mov %rax,%rdi - 40eac5: 48 85 d2 test %rdx,%rdx - 40eac8: 0f 84 9d 00 00 00 je 40eb6b <__new_exitfn+0x15b> - 40eace: 48 89 d0 mov %rdx,%rax - 40ead1: eb 9d jmp 40ea70 <__new_exitfn+0x60> - 40ead3: 48 89 ca mov %rcx,%rdx - 40ead6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40eadd: 00 00 00 - 40eae0: 48 83 fa 20 cmp $0x20,%rdx - 40eae4: 74 63 je 40eb49 <__new_exitfn+0x139> - 40eae6: 48 89 d1 mov %rdx,%rcx - 40eae9: 48 83 c2 01 add $0x1,%rdx - 40eaed: 48 c1 e1 05 shl $0x5,%rcx - 40eaf1: 48 89 50 08 mov %rdx,0x8(%rax) - 40eaf5: 48 8d 74 08 10 lea 0x10(%rax,%rcx,1),%rsi - 40eafa: 48 c7 06 01 00 00 00 movq $0x1,(%rsi) - 40eb01: 48 83 05 a7 e6 2b 00 addq $0x1,0x2be6a7(%rip) # 6cd1b0 <__new_exitfn_called> - 40eb08: 01 - 40eb09: 83 3d ac e6 2b 00 00 cmpl $0x0,0x2be6ac(%rip) # 6cd1bc <__libc_multiple_threads> - 40eb10: 74 0b je 40eb1d <__new_exitfn+0x10d> - 40eb12: f0 ff 0d 57 da 2b 00 lock decl 0x2bda57(%rip) # 6cc570 - 40eb19: 75 0a jne 40eb25 <__new_exitfn+0x115> - 40eb1b: eb 22 jmp 40eb3f <__new_exitfn+0x12f> - 40eb1d: ff 0d 4d da 2b 00 decl 0x2bda4d(%rip) # 6cc570 - 40eb23: 74 1a je 40eb3f <__new_exitfn+0x12f> - 40eb25: 48 8d 3d 44 da 2b 00 lea 0x2bda44(%rip),%rdi # 6cc570 - 40eb2c: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 40eb33: e8 c8 3a 03 00 callq 442600 <__lll_unlock_wake_private> - 40eb38: 48 81 c4 80 00 00 00 add $0x80,%rsp - 40eb3f: 48 83 c4 08 add $0x8,%rsp - 40eb43: 48 89 f0 mov %rsi,%rax - 40eb46: 5b pop %rbx - 40eb47: 5d pop %rbp - 40eb48: c3 retq - 40eb49: 48 85 ff test %rdi,%rdi - 40eb4c: 48 89 f8 mov %rdi,%rax - 40eb4f: 75 1a jne 40eb6b <__new_exitfn+0x15b> - 40eb51: be 10 04 00 00 mov $0x410,%esi - 40eb56: bf 01 00 00 00 mov $0x1,%edi - 40eb5b: e8 60 fa 00 00 callq 41e5c0 <__calloc> - 40eb60: 48 85 c0 test %rax,%rax - 40eb63: 74 2d je 40eb92 <__new_exitfn+0x182> - 40eb65: 48 89 28 mov %rbp,(%rax) - 40eb68: 48 89 03 mov %rax,(%rbx) - 40eb6b: 48 8d 70 10 lea 0x10(%rax),%rsi - 40eb6f: 48 c7 40 08 01 00 00 movq $0x1,0x8(%rax) - 40eb76: 00 - 40eb77: eb 81 jmp 40eafa <__new_exitfn+0xea> - 40eb79: b9 18 19 4a 00 mov $0x4a1918,%ecx - 40eb7e: ba 64 00 00 00 mov $0x64,%edx - 40eb83: be 00 19 4a 00 mov $0x4a1900,%esi - 40eb88: bf 0d 19 4a 00 mov $0x4a190d,%edi - 40eb8d: e8 ae 2b ff ff callq 401740 <__assert_fail> - 40eb92: 31 f6 xor %esi,%esi - 40eb94: e9 70 ff ff ff jmpq 40eb09 <__new_exitfn+0xf9> - 40eb99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -000000000040eba0 <__internal_atexit>: - 40eba0: 41 54 push %r12 - 40eba2: 55 push %rbp - 40eba3: 49 89 f4 mov %rsi,%r12 - 40eba6: 53 push %rbx - 40eba7: 48 89 fb mov %rdi,%rbx - 40ebaa: 48 89 cf mov %rcx,%rdi - 40ebad: 48 89 d5 mov %rdx,%rbp - 40ebb0: e8 5b fe ff ff callq 40ea10 <__new_exitfn> - 40ebb5: 48 85 c0 test %rax,%rax - 40ebb8: 74 2a je 40ebe4 <__internal_atexit+0x44> - 40ebba: 48 89 df mov %rbx,%rdi - 40ebbd: 4c 89 60 10 mov %r12,0x10(%rax) - 40ebc1: 48 89 68 18 mov %rbp,0x18(%rax) - 40ebc5: 64 48 33 3c 25 30 00 xor %fs:0x30,%rdi - 40ebcc: 00 00 - 40ebce: 48 c1 c7 11 rol $0x11,%rdi - 40ebd2: 48 89 78 08 mov %rdi,0x8(%rax) - 40ebd6: 48 c7 00 04 00 00 00 movq $0x4,(%rax) - 40ebdd: 31 c0 xor %eax,%eax - 40ebdf: 5b pop %rbx - 40ebe0: 5d pop %rbp - 40ebe1: 41 5c pop %r12 - 40ebe3: c3 retq - 40ebe4: b8 ff ff ff ff mov $0xffffffff,%eax - 40ebe9: eb f4 jmp 40ebdf <__internal_atexit+0x3f> - 40ebeb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -000000000040ebf0 <__cxa_atexit>: - 40ebf0: 41 54 push %r12 - 40ebf2: 55 push %rbp - 40ebf3: 49 89 f4 mov %rsi,%r12 - 40ebf6: 53 push %rbx - 40ebf7: 48 89 fb mov %rdi,%rbx - 40ebfa: bf a0 a0 6c 00 mov $0x6ca0a0,%edi - 40ebff: 48 89 d5 mov %rdx,%rbp - 40ec02: e8 09 fe ff ff callq 40ea10 <__new_exitfn> - 40ec07: 48 85 c0 test %rax,%rax - 40ec0a: 74 2a je 40ec36 <__cxa_atexit+0x46> - 40ec0c: 48 89 df mov %rbx,%rdi - 40ec0f: 4c 89 60 10 mov %r12,0x10(%rax) - 40ec13: 48 89 68 18 mov %rbp,0x18(%rax) - 40ec17: 64 48 33 3c 25 30 00 xor %fs:0x30,%rdi - 40ec1e: 00 00 - 40ec20: 48 c1 c7 11 rol $0x11,%rdi - 40ec24: 48 89 78 08 mov %rdi,0x8(%rax) - 40ec28: 48 c7 00 04 00 00 00 movq $0x4,(%rax) - 40ec2f: 31 c0 xor %eax,%eax - 40ec31: 5b pop %rbx - 40ec32: 5d pop %rbp - 40ec33: 41 5c pop %r12 - 40ec35: c3 retq - 40ec36: b8 ff ff ff ff mov $0xffffffff,%eax - 40ec3b: eb f4 jmp 40ec31 <__cxa_atexit+0x41> - 40ec3d: 0f 1f 00 nopl (%rax) - -000000000040ec40 <__strtoul_internal>: - 40ec40: 48 c7 c0 b8 ff ff ff mov $0xffffffffffffffb8,%rax - 40ec47: 64 4c 8b 00 mov %fs:(%rax),%r8 - 40ec4b: e9 20 00 00 00 jmpq 40ec70 <____strtoul_l_internal> - -000000000040ec50 <__strtoul>: - 40ec50: 48 c7 c0 b8 ff ff ff mov $0xffffffffffffffb8,%rax - 40ec57: 31 c9 xor %ecx,%ecx - 40ec59: 64 4c 8b 00 mov %fs:(%rax),%r8 - 40ec5d: e9 0e 00 00 00 jmpq 40ec70 <____strtoul_l_internal> - 40ec62: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40ec69: 00 00 00 - 40ec6c: 0f 1f 40 00 nopl 0x0(%rax) - -000000000040ec70 <____strtoul_l_internal>: - 40ec70: 41 57 push %r15 - 40ec72: 41 56 push %r14 - 40ec74: 49 89 f7 mov %rsi,%r15 - 40ec77: 41 55 push %r13 - 40ec79: 41 54 push %r12 - 40ec7b: 49 89 fe mov %rdi,%r14 - 40ec7e: 55 push %rbp - 40ec7f: 53 push %rbx - 40ec80: 48 83 ec 28 sub $0x28,%rsp - 40ec84: 85 c9 test %ecx,%ecx - 40ec86: 74 16 je 40ec9e <____strtoul_l_internal+0x2e> - 40ec88: 49 8b 70 08 mov 0x8(%r8),%rsi - 40ec8c: 48 8b 4e 50 mov 0x50(%rsi),%rcx - 40ec90: 0f b6 01 movzbl (%rcx),%eax - 40ec93: 83 e8 01 sub $0x1,%eax - 40ec96: 3c 7d cmp $0x7d,%al - 40ec98: 0f 86 f2 00 00 00 jbe 40ed90 <____strtoul_l_internal+0x120> - 40ec9e: 31 c9 xor %ecx,%ecx - 40eca0: 31 ed xor %ebp,%ebp - 40eca2: 83 fa 01 cmp $0x1,%edx - 40eca5: 0f 84 c5 00 00 00 je 40ed70 <____strtoul_l_internal+0x100> - 40ecab: 83 fa 24 cmp $0x24,%edx - 40ecae: 0f 87 bc 00 00 00 ja 40ed70 <____strtoul_l_internal+0x100> - 40ecb4: 49 0f be 06 movsbq (%r14),%rax - 40ecb8: 49 8b 70 68 mov 0x68(%r8),%rsi - 40ecbc: 4d 89 f4 mov %r14,%r12 - 40ecbf: f6 44 46 01 20 testb $0x20,0x1(%rsi,%rax,2) - 40ecc4: 48 89 c3 mov %rax,%rbx - 40ecc7: 74 1a je 40ece3 <____strtoul_l_internal+0x73> - 40ecc9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40ecd0: 49 83 c4 01 add $0x1,%r12 - 40ecd4: 49 0f be 04 24 movsbq (%r12),%rax - 40ecd9: f6 44 46 01 20 testb $0x20,0x1(%rsi,%rax,2) - 40ecde: 48 89 c3 mov %rax,%rbx - 40ece1: 75 ed jne 40ecd0 <____strtoul_l_internal+0x60> - 40ece3: 84 db test %bl,%bl - 40ece5: 0f 84 bd 00 00 00 je 40eda8 <____strtoul_l_internal+0x138> - 40eceb: 80 fb 2d cmp $0x2d,%bl - 40ecee: 0f 84 10 03 00 00 je 40f004 <____strtoul_l_internal+0x394> - 40ecf4: 80 fb 2b cmp $0x2b,%bl - 40ecf7: c7 44 24 14 00 00 00 movl $0x0,0x14(%rsp) - 40ecfe: 00 - 40ecff: 0f 84 5a 03 00 00 je 40f05f <____strtoul_l_internal+0x3ef> - 40ed05: 80 fb 30 cmp $0x30,%bl - 40ed08: 0f 84 dd 00 00 00 je 40edeb <____strtoul_l_internal+0x17b> - 40ed0e: 85 d2 test %edx,%edx - 40ed10: 0f 85 e1 00 00 00 jne 40edf7 <____strtoul_l_internal+0x187> - 40ed16: 48 85 c9 test %rcx,%rcx - 40ed19: 48 89 0c 24 mov %rcx,(%rsp) - 40ed1d: 0f 84 73 03 00 00 je 40f096 <____strtoul_l_internal+0x426> - 40ed23: 48 89 ef mov %rbp,%rdi - 40ed26: e8 25 49 01 00 callq 423650 - 40ed2b: 48 85 c0 test %rax,%rax - 40ed2e: 49 89 c5 mov %rax,%r13 - 40ed31: 74 78 je 40edab <____strtoul_l_internal+0x13b> - 40ed33: 0f b6 7d 00 movzbl 0x0(%rbp),%edi - 40ed37: 48 8b 0c 24 mov (%rsp),%rcx - 40ed3b: 40 38 df cmp %bl,%dil - 40ed3e: 0f 85 0e 02 00 00 jne 40ef52 <____strtoul_l_internal+0x2e2> - 40ed44: 31 d2 xor %edx,%edx - 40ed46: eb 18 jmp 40ed60 <____strtoul_l_internal+0xf0> - 40ed48: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40ed4f: 00 - 40ed50: 41 0f b6 34 14 movzbl (%r12,%rdx,1),%esi - 40ed55: 40 38 74 15 00 cmp %sil,0x0(%rbp,%rdx,1) - 40ed5a: 0f 85 f2 01 00 00 jne 40ef52 <____strtoul_l_internal+0x2e2> - 40ed60: 48 83 c2 01 add $0x1,%rdx - 40ed64: 48 39 d0 cmp %rdx,%rax - 40ed67: 75 e7 jne 40ed50 <____strtoul_l_internal+0xe0> - 40ed69: eb 40 jmp 40edab <____strtoul_l_internal+0x13b> - 40ed6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40ed70: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 40ed77: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) - 40ed7e: 31 c0 xor %eax,%eax - 40ed80: 48 83 c4 28 add $0x28,%rsp - 40ed84: 5b pop %rbx - 40ed85: 5d pop %rbp - 40ed86: 41 5c pop %r12 - 40ed88: 41 5d pop %r13 - 40ed8a: 41 5e pop %r14 - 40ed8c: 41 5f pop %r15 - 40ed8e: c3 retq - 40ed8f: 90 nop - 40ed90: 48 8b 6e 48 mov 0x48(%rsi),%rbp - 40ed94: 80 7d 00 00 cmpb $0x0,0x0(%rbp) - 40ed98: 0f 85 04 ff ff ff jne 40eca2 <____strtoul_l_internal+0x32> - 40ed9e: e9 fb fe ff ff jmpq 40ec9e <____strtoul_l_internal+0x2e> - 40eda3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40eda8: 4d 89 f4 mov %r14,%r12 - 40edab: 4d 85 ff test %r15,%r15 - 40edae: 0f 84 ba 02 00 00 je 40f06e <____strtoul_l_internal+0x3fe> - 40edb4: 4c 89 e0 mov %r12,%rax - 40edb7: 4c 29 f0 sub %r14,%rax - 40edba: 48 83 f8 01 cmp $0x1,%rax - 40edbe: 7e 17 jle 40edd7 <____strtoul_l_internal+0x167> - 40edc0: 49 0f be 54 24 ff movsbq -0x1(%r12),%rdx - 40edc6: 48 8b 05 2b 39 0a 00 mov 0xa392b(%rip),%rax # 4b26f8 <_nl_C_locobj+0x78> - 40edcd: 83 3c 90 58 cmpl $0x58,(%rax,%rdx,4) - 40edd1: 0f 84 6e 02 00 00 je 40f045 <____strtoul_l_internal+0x3d5> - 40edd7: 4d 89 37 mov %r14,(%r15) - 40edda: 48 83 c4 28 add $0x28,%rsp - 40edde: 31 c0 xor %eax,%eax - 40ede0: 5b pop %rbx - 40ede1: 5d pop %rbp - 40ede2: 41 5c pop %r12 - 40ede4: 41 5d pop %r13 - 40ede6: 41 5e pop %r14 - 40ede8: 41 5f pop %r15 - 40edea: c3 retq - 40edeb: f7 c2 ef ff ff ff test $0xffffffef,%edx - 40edf1: 0f 84 24 02 00 00 je 40f01b <____strtoul_l_internal+0x3ab> - 40edf7: 83 fa 0a cmp $0xa,%edx - 40edfa: 0f 84 16 ff ff ff je 40ed16 <____strtoul_l_internal+0xa6> - 40ee00: 8d 4a fe lea -0x2(%rdx),%ecx - 40ee03: 45 31 ed xor %r13d,%r13d - 40ee06: 31 c0 xor %eax,%eax - 40ee08: 48 63 c9 movslq %ecx,%rcx - 40ee0b: 4c 39 e0 cmp %r12,%rax - 40ee0e: 48 8b 3c cd c0 27 4b mov 0x4b27c0(,%rcx,8),%rdi - 40ee15: 00 - 40ee16: 48 89 3c 24 mov %rdi,(%rsp) - 40ee1a: 0f b6 b9 80 27 4b 00 movzbl 0x4b2780(%rcx),%edi - 40ee21: 40 88 7c 24 13 mov %dil,0x13(%rsp) - 40ee26: 74 83 je 40edab <____strtoul_l_internal+0x13b> - 40ee28: 84 db test %bl,%bl - 40ee2a: 0f 84 7b ff ff ff je 40edab <____strtoul_l_internal+0x13b> - 40ee30: 4d 8d 45 ff lea -0x1(%r13),%r8 - 40ee34: 4c 8b 15 ad 38 0a 00 mov 0xa38ad(%rip),%r10 # 4b26e8 <_nl_C_locobj+0x68> - 40ee3b: 4c 8b 1d b6 38 0a 00 mov 0xa38b6(%rip),%r11 # 4b26f8 <_nl_C_locobj+0x78> - 40ee42: 48 63 ca movslq %edx,%rcx - 40ee45: 4c 89 e7 mov %r12,%rdi - 40ee48: 4c 89 64 24 18 mov %r12,0x18(%rsp) - 40ee4d: 4c 89 44 24 08 mov %r8,0x8(%rsp) - 40ee52: 4c 8b 04 24 mov (%rsp),%r8 - 40ee56: 45 31 c9 xor %r9d,%r9d - 40ee59: 31 f6 xor %esi,%esi - 40ee5b: 49 89 cc mov %rcx,%r12 - 40ee5e: 66 90 xchg %ax,%ax - 40ee60: 8d 4b d0 lea -0x30(%rbx),%ecx - 40ee63: 80 f9 09 cmp $0x9,%cl - 40ee66: 0f 86 aa 00 00 00 jbe 40ef16 <____strtoul_l_internal+0x2a6> - 40ee6c: 4d 85 ed test %r13,%r13 - 40ee6f: 0f 84 8f 00 00 00 je 40ef04 <____strtoul_l_internal+0x294> - 40ee75: 38 5d 00 cmp %bl,0x0(%rbp) - 40ee78: 0f 85 86 00 00 00 jne 40ef04 <____strtoul_l_internal+0x294> - 40ee7e: 31 c9 xor %ecx,%ecx - 40ee80: 88 1c 24 mov %bl,(%rsp) - 40ee83: eb 0d jmp 40ee92 <____strtoul_l_internal+0x222> - 40ee85: 0f 1f 00 nopl (%rax) - 40ee88: 0f b6 1c 0f movzbl (%rdi,%rcx,1),%ebx - 40ee8c: 38 5c 0d 00 cmp %bl,0x0(%rbp,%rcx,1) - 40ee90: 75 6e jne 40ef00 <____strtoul_l_internal+0x290> - 40ee92: 48 83 c1 01 add $0x1,%rcx - 40ee96: 49 39 cd cmp %rcx,%r13 - 40ee99: 75 ed jne 40ee88 <____strtoul_l_internal+0x218> - 40ee9b: 48 8b 5c 24 08 mov 0x8(%rsp),%rbx - 40eea0: 48 8d 0c 1f lea (%rdi,%rbx,1),%rcx - 40eea4: 0f 1f 40 00 nopl 0x0(%rax) - 40eea8: 48 8d 79 01 lea 0x1(%rcx),%rdi - 40eeac: 0f b6 59 01 movzbl 0x1(%rcx),%ebx - 40eeb0: 48 39 f8 cmp %rdi,%rax - 40eeb3: 74 04 je 40eeb9 <____strtoul_l_internal+0x249> - 40eeb5: 84 db test %bl,%bl - 40eeb7: 75 a7 jne 40ee60 <____strtoul_l_internal+0x1f0> - 40eeb9: 4c 8b 64 24 18 mov 0x18(%rsp),%r12 - 40eebe: 49 39 fc cmp %rdi,%r12 - 40eec1: 0f 84 e4 fe ff ff je 40edab <____strtoul_l_internal+0x13b> - 40eec7: 4d 85 ff test %r15,%r15 - 40eeca: 74 03 je 40eecf <____strtoul_l_internal+0x25f> - 40eecc: 49 89 3f mov %rdi,(%r15) - 40eecf: 45 85 c9 test %r9d,%r9d - 40eed2: 0f 84 17 01 00 00 je 40efef <____strtoul_l_internal+0x37f> - 40eed8: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 40eedf: 64 c7 00 22 00 00 00 movl $0x22,%fs:(%rax) - 40eee6: 48 83 c4 28 add $0x28,%rsp - 40eeea: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 40eef1: 5b pop %rbx - 40eef2: 5d pop %rbp - 40eef3: 41 5c pop %r12 - 40eef5: 41 5d pop %r13 - 40eef7: 41 5e pop %r14 - 40eef9: 41 5f pop %r15 - 40eefb: c3 retq - 40eefc: 0f 1f 40 00 nopl 0x0(%rax) - 40ef00: 0f b6 1c 24 movzbl (%rsp),%ebx - 40ef04: 0f b6 db movzbl %bl,%ebx - 40ef07: 41 f6 44 5a 01 04 testb $0x4,0x1(%r10,%rbx,2) - 40ef0d: 74 aa je 40eeb9 <____strtoul_l_internal+0x249> - 40ef0f: 41 8b 0c 9b mov (%r11,%rbx,4),%ecx - 40ef13: 83 e9 37 sub $0x37,%ecx - 40ef16: 0f b6 d9 movzbl %cl,%ebx - 40ef19: 39 d3 cmp %edx,%ebx - 40ef1b: 7d 9c jge 40eeb9 <____strtoul_l_internal+0x249> - 40ef1d: 49 39 f0 cmp %rsi,%r8 - 40ef20: 72 0e jb 40ef30 <____strtoul_l_internal+0x2c0> - 40ef22: 3a 4c 24 13 cmp 0x13(%rsp),%cl - 40ef26: 76 18 jbe 40ef40 <____strtoul_l_internal+0x2d0> - 40ef28: 49 39 f0 cmp %rsi,%r8 - 40ef2b: 75 13 jne 40ef40 <____strtoul_l_internal+0x2d0> - 40ef2d: 0f 1f 00 nopl (%rax) - 40ef30: 48 89 f9 mov %rdi,%rcx - 40ef33: 41 b9 01 00 00 00 mov $0x1,%r9d - 40ef39: e9 6a ff ff ff jmpq 40eea8 <____strtoul_l_internal+0x238> - 40ef3e: 66 90 xchg %ax,%ax - 40ef40: 49 0f af f4 imul %r12,%rsi - 40ef44: 0f b6 c9 movzbl %cl,%ecx - 40ef47: 48 01 ce add %rcx,%rsi - 40ef4a: 48 89 f9 mov %rdi,%rcx - 40ef4d: e9 56 ff ff ff jmpq 40eea8 <____strtoul_l_internal+0x238> - 40ef52: 84 db test %bl,%bl - 40ef54: 0f 84 34 01 00 00 je 40f08e <____strtoul_l_internal+0x41e> - 40ef5a: 4c 8b 05 87 37 0a 00 mov 0xa3787(%rip),%r8 # 4b26e8 <_nl_C_locobj+0x68> - 40ef61: 4c 8b 0d 90 37 0a 00 mov 0xa3790(%rip),%r9 # 4b26f8 <_nl_C_locobj+0x78> - 40ef68: 4c 89 e6 mov %r12,%rsi - 40ef6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40ef70: 8d 53 d0 lea -0x30(%rbx),%edx - 40ef73: 80 fa 09 cmp $0x9,%dl - 40ef76: 76 25 jbe 40ef9d <____strtoul_l_internal+0x32d> - 40ef78: 40 3a 3e cmp (%rsi),%dil - 40ef7b: 75 53 jne 40efd0 <____strtoul_l_internal+0x360> - 40ef7d: 31 d2 xor %edx,%edx - 40ef7f: eb 13 jmp 40ef94 <____strtoul_l_internal+0x324> - 40ef81: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40ef88: 44 0f b6 1c 16 movzbl (%rsi,%rdx,1),%r11d - 40ef8d: 44 38 5c 15 00 cmp %r11b,0x0(%rbp,%rdx,1) - 40ef92: 75 3c jne 40efd0 <____strtoul_l_internal+0x360> - 40ef94: 48 83 c2 01 add $0x1,%rdx - 40ef98: 48 39 d0 cmp %rdx,%rax - 40ef9b: 75 eb jne 40ef88 <____strtoul_l_internal+0x318> - 40ef9d: 48 83 c6 01 add $0x1,%rsi - 40efa1: 0f b6 1e movzbl (%rsi),%ebx - 40efa4: 84 db test %bl,%bl - 40efa6: 75 c8 jne 40ef70 <____strtoul_l_internal+0x300> - 40efa8: 48 89 ea mov %rbp,%rdx - 40efab: 4c 89 e7 mov %r12,%rdi - 40efae: e8 0d 01 00 00 callq 40f0c0 <__correctly_grouped_prefixmb> - 40efb3: 41 0f b6 1c 24 movzbl (%r12),%ebx - 40efb8: b9 08 00 00 00 mov $0x8,%ecx - 40efbd: ba 0a 00 00 00 mov $0xa,%edx - 40efc2: e9 41 fe ff ff jmpq 40ee08 <____strtoul_l_internal+0x198> - 40efc7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40efce: 00 00 - 40efd0: 0f b6 db movzbl %bl,%ebx - 40efd3: 41 f6 44 58 01 04 testb $0x4,0x1(%r8,%rbx,2) - 40efd9: 74 cd je 40efa8 <____strtoul_l_internal+0x338> - 40efdb: 41 83 3c 99 40 cmpl $0x40,(%r9,%rbx,4) - 40efe0: 7f c6 jg 40efa8 <____strtoul_l_internal+0x338> - 40efe2: 48 83 c6 01 add $0x1,%rsi - 40efe6: 0f b6 1e movzbl (%rsi),%ebx - 40efe9: 84 db test %bl,%bl - 40efeb: 75 83 jne 40ef70 <____strtoul_l_internal+0x300> - 40efed: eb b9 jmp 40efa8 <____strtoul_l_internal+0x338> - 40efef: 8b 54 24 14 mov 0x14(%rsp),%edx - 40eff3: 48 89 f0 mov %rsi,%rax - 40eff6: 48 f7 d8 neg %rax - 40eff9: 85 d2 test %edx,%edx - 40effb: 48 0f 44 c6 cmove %rsi,%rax - 40efff: e9 7c fd ff ff jmpq 40ed80 <____strtoul_l_internal+0x110> - 40f004: 41 0f b6 5c 24 01 movzbl 0x1(%r12),%ebx - 40f00a: c7 44 24 14 01 00 00 movl $0x1,0x14(%rsp) - 40f011: 00 - 40f012: 49 83 c4 01 add $0x1,%r12 - 40f016: e9 ea fc ff ff jmpq 40ed05 <____strtoul_l_internal+0x95> - 40f01b: 49 0f be 74 24 01 movsbq 0x1(%r12),%rsi - 40f021: 48 8b 05 d0 36 0a 00 mov 0xa36d0(%rip),%rax # 4b26f8 <_nl_C_locobj+0x78> - 40f028: 83 3c b0 58 cmpl $0x58,(%rax,%rsi,4) - 40f02c: 74 47 je 40f075 <____strtoul_l_internal+0x405> - 40f02e: 85 d2 test %edx,%edx - 40f030: 0f 85 c1 fd ff ff jne 40edf7 <____strtoul_l_internal+0x187> - 40f036: b9 06 00 00 00 mov $0x6,%ecx - 40f03b: ba 08 00 00 00 mov $0x8,%edx - 40f040: e9 be fd ff ff jmpq 40ee03 <____strtoul_l_internal+0x193> - 40f045: 41 80 7c 24 fe 30 cmpb $0x30,-0x2(%r12) - 40f04b: 0f 85 86 fd ff ff jne 40edd7 <____strtoul_l_internal+0x167> - 40f051: 49 83 ec 01 sub $0x1,%r12 - 40f055: 31 c0 xor %eax,%eax - 40f057: 4d 89 27 mov %r12,(%r15) - 40f05a: e9 21 fd ff ff jmpq 40ed80 <____strtoul_l_internal+0x110> - 40f05f: 41 0f b6 5c 24 01 movzbl 0x1(%r12),%ebx - 40f065: 49 83 c4 01 add $0x1,%r12 - 40f069: e9 97 fc ff ff jmpq 40ed05 <____strtoul_l_internal+0x95> - 40f06e: 31 c0 xor %eax,%eax - 40f070: e9 0b fd ff ff jmpq 40ed80 <____strtoul_l_internal+0x110> - 40f075: 41 0f b6 5c 24 02 movzbl 0x2(%r12),%ebx - 40f07b: b9 0e 00 00 00 mov $0xe,%ecx - 40f080: 49 83 c4 02 add $0x2,%r12 - 40f084: ba 10 00 00 00 mov $0x10,%edx - 40f089: e9 75 fd ff ff jmpq 40ee03 <____strtoul_l_internal+0x193> - 40f08e: 4c 89 e6 mov %r12,%rsi - 40f091: e9 12 ff ff ff jmpq 40efa8 <____strtoul_l_internal+0x338> - 40f096: b9 08 00 00 00 mov $0x8,%ecx - 40f09b: ba 0a 00 00 00 mov $0xa,%edx - 40f0a0: e9 5e fd ff ff jmpq 40ee03 <____strtoul_l_internal+0x193> - 40f0a5: 90 nop - 40f0a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40f0ad: 00 00 00 - -000000000040f0b0 <__strtoul_l>: - 40f0b0: 49 89 c8 mov %rcx,%r8 - 40f0b3: 31 c9 xor %ecx,%ecx - 40f0b5: e9 b6 fb ff ff jmpq 40ec70 <____strtoul_l_internal> - 40f0ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -000000000040f0c0 <__correctly_grouped_prefixmb>: - 40f0c0: 41 57 push %r15 - 40f0c2: 41 56 push %r14 - 40f0c4: 41 55 push %r13 - 40f0c6: 41 54 push %r12 - 40f0c8: 55 push %rbp - 40f0c9: 53 push %rbx - 40f0ca: 48 83 ec 18 sub $0x18,%rsp - 40f0ce: 48 85 c9 test %rcx,%rcx - 40f0d1: 48 89 4c 24 08 mov %rcx,0x8(%rsp) - 40f0d6: 0f 84 fd 00 00 00 je 40f1d9 <__correctly_grouped_prefixmb+0x119> - 40f0dc: 48 89 fd mov %rdi,%rbp - 40f0df: 48 89 d7 mov %rdx,%rdi - 40f0e2: 48 89 34 24 mov %rsi,(%rsp) - 40f0e6: 48 89 d3 mov %rdx,%rbx - 40f0e9: e8 62 45 01 00 callq 423650 - 40f0ee: 48 8b 34 24 mov (%rsp),%rsi - 40f0f2: 48 39 ee cmp %rbp,%rsi - 40f0f5: 0f 86 ad 00 00 00 jbe 40f1a8 <__correctly_grouped_prefixmb+0xe8> - 40f0fb: 4c 8d 78 ff lea -0x1(%rax),%r15 - 40f0ff: 48 8d 55 ff lea -0x1(%rbp),%rdx - 40f103: 4c 8d 4e ff lea -0x1(%rsi),%r9 - 40f107: 4c 39 cd cmp %r9,%rbp - 40f10a: 0f 87 c9 00 00 00 ja 40f1d9 <__correctly_grouped_prefixmb+0x119> - 40f110: 44 0f b6 13 movzbl (%rbx),%r10d - 40f114: 4e 8d 1c 3e lea (%rsi,%r15,1),%r11 - 40f118: eb 17 jmp 40f131 <__correctly_grouped_prefixmb+0x71> - 40f11a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 40f120: 49 83 e9 01 sub $0x1,%r9 - 40f124: 49 83 eb 01 sub $0x1,%r11 - 40f128: 49 39 d1 cmp %rdx,%r9 - 40f12b: 0f 84 a8 00 00 00 je 40f1d9 <__correctly_grouped_prefixmb+0x119> - 40f131: 45 38 53 ff cmp %r10b,-0x1(%r11) - 40f135: 75 e9 jne 40f120 <__correctly_grouped_prefixmb+0x60> - 40f137: 0f b6 43 01 movzbl 0x1(%rbx),%eax - 40f13b: 84 c0 test %al,%al - 40f13d: 74 2b je 40f16a <__correctly_grouped_prefixmb+0xaa> - 40f13f: 41 38 43 fe cmp %al,-0x2(%r11) - 40f143: 75 db jne 40f120 <__correctly_grouped_prefixmb+0x60> - 40f145: 48 8d 43 02 lea 0x2(%rbx),%rax - 40f149: 4c 89 d9 mov %r11,%rcx - 40f14c: eb 14 jmp 40f162 <__correctly_grouped_prefixmb+0xa2> - 40f14e: 66 90 xchg %ax,%ax - 40f150: 44 0f b6 41 fd movzbl -0x3(%rcx),%r8d - 40f155: 48 83 c0 01 add $0x1,%rax - 40f159: 48 83 e9 01 sub $0x1,%rcx - 40f15d: 44 38 c7 cmp %r8b,%dil - 40f160: 75 be jne 40f120 <__correctly_grouped_prefixmb+0x60> - 40f162: 0f b6 38 movzbl (%rax),%edi - 40f165: 40 84 ff test %dil,%dil - 40f168: 75 e6 jne 40f150 <__correctly_grouped_prefixmb+0x90> - 40f16a: 4c 39 cd cmp %r9,%rbp - 40f16d: 77 6a ja 40f1d9 <__correctly_grouped_prefixmb+0x119> - 40f16f: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 40f174: 48 89 f1 mov %rsi,%rcx - 40f177: 4c 29 c9 sub %r9,%rcx - 40f17a: 48 0f be 00 movsbq (%rax),%rax - 40f17e: 49 89 c5 mov %rax,%r13 - 40f181: 83 c0 01 add $0x1,%eax - 40f184: 48 98 cltq - 40f186: 48 39 c1 cmp %rax,%rcx - 40f189: 74 60 je 40f1eb <__correctly_grouped_prefixmb+0x12b> - 40f18b: 4c 89 0c 24 mov %r9,(%rsp) - 40f18f: 7e 09 jle 40f19a <__correctly_grouped_prefixmb+0xda> - 40f191: 4b 8d 44 29 01 lea 0x1(%r9,%r13,1),%rax - 40f196: 48 89 04 24 mov %rax,(%rsp) - 40f19a: 48 3b 2c 24 cmp (%rsp),%rbp - 40f19e: 48 8b 34 24 mov (%rsp),%rsi - 40f1a2: 0f 82 5b ff ff ff jb 40f103 <__correctly_grouped_prefixmb+0x43> - 40f1a8: 48 39 f5 cmp %rsi,%rbp - 40f1ab: 48 89 f0 mov %rsi,%rax - 40f1ae: 48 0f 43 c5 cmovae %rbp,%rax - 40f1b2: 48 83 c4 18 add $0x18,%rsp - 40f1b6: 5b pop %rbx - 40f1b7: 5d pop %rbp - 40f1b8: 41 5c pop %r12 - 40f1ba: 41 5d pop %r13 - 40f1bc: 41 5e pop %r14 - 40f1be: 41 5f pop %r15 - 40f1c0: c3 retq - 40f1c1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40f1c8: 49 83 e9 01 sub $0x1,%r9 - 40f1cc: 49 83 eb 01 sub $0x1,%r11 - 40f1d0: 4c 39 ca cmp %r9,%rdx - 40f1d3: 0f 85 d7 00 00 00 jne 40f2b0 <__correctly_grouped_prefixmb+0x1f0> - 40f1d9: 48 83 c4 18 add $0x18,%rsp - 40f1dd: 48 89 f0 mov %rsi,%rax - 40f1e0: 5b pop %rbx - 40f1e1: 5d pop %rbp - 40f1e2: 41 5c pop %r12 - 40f1e4: 41 5d pop %r13 - 40f1e6: 41 5e pop %r14 - 40f1e8: 41 5f pop %r15 - 40f1ea: c3 retq - 40f1eb: 4d 8d 61 ff lea -0x1(%r9),%r12 - 40f1ef: 4c 8b 74 24 08 mov 0x8(%rsp),%r14 - 40f1f4: 4c 89 24 24 mov %r12,(%rsp) - 40f1f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40f1ff: 00 - 40f200: 41 0f b6 46 01 movzbl 0x1(%r14),%eax - 40f205: 84 c0 test %al,%al - 40f207: 74 08 je 40f211 <__correctly_grouped_prefixmb+0x151> - 40f209: 49 83 c6 01 add $0x1,%r14 - 40f20d: 4c 0f be e8 movsbq %al,%r13 - 40f211: 41 80 fd 7f cmp $0x7f,%r13b - 40f215: 0f 84 85 00 00 00 je 40f2a0 <__correctly_grouped_prefixmb+0x1e0> - 40f21b: 45 84 ed test %r13b,%r13b - 40f21e: 0f 88 7c 00 00 00 js 40f2a0 <__correctly_grouped_prefixmb+0x1e0> - 40f224: 4c 39 e5 cmp %r12,%rbp - 40f227: 77 b0 ja 40f1d9 <__correctly_grouped_prefixmb+0x119> - 40f229: 4f 8d 1c 39 lea (%r9,%r15,1),%r11 - 40f22d: 4d 89 e1 mov %r12,%r9 - 40f230: 45 84 d2 test %r10b,%r10b - 40f233: 74 2c je 40f261 <__correctly_grouped_prefixmb+0x1a1> - 40f235: 45 3a 53 ff cmp -0x1(%r11),%r10b - 40f239: 48 8d 43 01 lea 0x1(%rbx),%rax - 40f23d: 4c 89 df mov %r11,%rdi - 40f240: 74 18 je 40f25a <__correctly_grouped_prefixmb+0x19a> - 40f242: eb 3c jmp 40f280 <__correctly_grouped_prefixmb+0x1c0> - 40f244: 0f 1f 40 00 nopl 0x0(%rax) - 40f248: 44 0f b6 47 fe movzbl -0x2(%rdi),%r8d - 40f24d: 48 83 c0 01 add $0x1,%rax - 40f251: 48 83 ef 01 sub $0x1,%rdi - 40f255: 44 38 c1 cmp %r8b,%cl - 40f258: 75 26 jne 40f280 <__correctly_grouped_prefixmb+0x1c0> - 40f25a: 0f b6 08 movzbl (%rax),%ecx - 40f25d: 84 c9 test %cl,%cl - 40f25f: 75 e7 jne 40f248 <__correctly_grouped_prefixmb+0x188> - 40f261: 4d 29 cc sub %r9,%r12 - 40f264: 4c 39 cd cmp %r9,%rbp - 40f267: 77 27 ja 40f290 <__correctly_grouped_prefixmb+0x1d0> - 40f269: 49 0f be c5 movsbq %r13b,%rax - 40f26d: 49 39 c4 cmp %rax,%r12 - 40f270: 0f 85 24 ff ff ff jne 40f19a <__correctly_grouped_prefixmb+0xda> - 40f276: 4d 8d 61 ff lea -0x1(%r9),%r12 - 40f27a: eb 84 jmp 40f200 <__correctly_grouped_prefixmb+0x140> - 40f27c: 0f 1f 40 00 nopl 0x0(%rax) - 40f280: 49 83 e9 01 sub $0x1,%r9 - 40f284: 49 83 eb 01 sub $0x1,%r11 - 40f288: 4c 39 ca cmp %r9,%rdx - 40f28b: 75 a3 jne 40f230 <__correctly_grouped_prefixmb+0x170> - 40f28d: 49 29 d4 sub %rdx,%r12 - 40f290: 4d 39 e5 cmp %r12,%r13 - 40f293: 0f 8c 01 ff ff ff jl 40f19a <__correctly_grouped_prefixmb+0xda> - 40f299: e9 3b ff ff ff jmpq 40f1d9 <__correctly_grouped_prefixmb+0x119> - 40f29e: 66 90 xchg %ax,%ax - 40f2a0: 4c 39 e5 cmp %r12,%rbp - 40f2a3: 0f 87 30 ff ff ff ja 40f1d9 <__correctly_grouped_prefixmb+0x119> - 40f2a9: 4f 8d 1c 39 lea (%r9,%r15,1),%r11 - 40f2ad: 4d 89 e1 mov %r12,%r9 - 40f2b0: 45 84 d2 test %r10b,%r10b - 40f2b3: 74 38 je 40f2ed <__correctly_grouped_prefixmb+0x22d> - 40f2b5: 45 38 53 ff cmp %r10b,-0x1(%r11) - 40f2b9: 48 8d 43 01 lea 0x1(%rbx),%rax - 40f2bd: 4c 89 df mov %r11,%rdi - 40f2c0: 74 24 je 40f2e6 <__correctly_grouped_prefixmb+0x226> - 40f2c2: e9 01 ff ff ff jmpq 40f1c8 <__correctly_grouped_prefixmb+0x108> - 40f2c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40f2ce: 00 00 - 40f2d0: 44 0f b6 47 fe movzbl -0x2(%rdi),%r8d - 40f2d5: 48 83 c0 01 add $0x1,%rax - 40f2d9: 48 83 ef 01 sub $0x1,%rdi - 40f2dd: 44 38 c1 cmp %r8b,%cl - 40f2e0: 0f 85 e2 fe ff ff jne 40f1c8 <__correctly_grouped_prefixmb+0x108> - 40f2e6: 0f b6 08 movzbl (%rax),%ecx - 40f2e9: 84 c9 test %cl,%cl - 40f2eb: 75 e3 jne 40f2d0 <__correctly_grouped_prefixmb+0x210> - 40f2ed: 4c 39 cd cmp %r9,%rbp - 40f2f0: 76 84 jbe 40f276 <__correctly_grouped_prefixmb+0x1b6> - 40f2f2: e9 e2 fe ff ff jmpq 40f1d9 <__correctly_grouped_prefixmb+0x119> - 40f2f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40f2fe: 00 00 - -000000000040f300 <___asprintf>: - 40f300: 48 81 ec d8 00 00 00 sub $0xd8,%rsp - 40f307: 84 c0 test %al,%al - 40f309: 48 89 54 24 30 mov %rdx,0x30(%rsp) - 40f30e: 48 89 4c 24 38 mov %rcx,0x38(%rsp) - 40f313: 4c 89 44 24 40 mov %r8,0x40(%rsp) - 40f318: 4c 89 4c 24 48 mov %r9,0x48(%rsp) - 40f31d: 74 37 je 40f356 <___asprintf+0x56> - 40f31f: 0f 29 44 24 50 movaps %xmm0,0x50(%rsp) - 40f324: 0f 29 4c 24 60 movaps %xmm1,0x60(%rsp) - 40f329: 0f 29 54 24 70 movaps %xmm2,0x70(%rsp) - 40f32e: 0f 29 9c 24 80 00 00 movaps %xmm3,0x80(%rsp) - 40f335: 00 - 40f336: 0f 29 a4 24 90 00 00 movaps %xmm4,0x90(%rsp) - 40f33d: 00 - 40f33e: 0f 29 ac 24 a0 00 00 movaps %xmm5,0xa0(%rsp) - 40f345: 00 - 40f346: 0f 29 b4 24 b0 00 00 movaps %xmm6,0xb0(%rsp) - 40f34d: 00 - 40f34e: 0f 29 bc 24 c0 00 00 movaps %xmm7,0xc0(%rsp) - 40f355: 00 - 40f356: 48 8d 84 24 e0 00 00 lea 0xe0(%rsp),%rax - 40f35d: 00 - 40f35e: 48 8d 54 24 08 lea 0x8(%rsp),%rdx - 40f363: 48 89 44 24 10 mov %rax,0x10(%rsp) - 40f368: 48 8d 44 24 20 lea 0x20(%rsp),%rax - 40f36d: c7 44 24 08 10 00 00 movl $0x10,0x8(%rsp) - 40f374: 00 - 40f375: c7 44 24 0c 30 00 00 movl $0x30,0xc(%rsp) - 40f37c: 00 - 40f37d: 48 89 44 24 18 mov %rax,0x18(%rsp) - 40f382: e8 19 1f 00 00 callq 4112a0 <_IO_vasprintf> - 40f387: 48 81 c4 d8 00 00 00 add $0xd8,%rsp - 40f38e: c3 retq - 40f38f: 90 nop - -000000000040f390 <__fxprintf>: - 40f390: 55 push %rbp - 40f391: 48 89 e5 mov %rsp,%rbp - 40f394: 41 55 push %r13 - 40f396: 41 54 push %r12 - 40f398: 53 push %rbx - 40f399: 49 89 fc mov %rdi,%r12 - 40f39c: 49 89 f5 mov %rsi,%r13 - 40f39f: 48 81 ec d8 00 00 00 sub $0xd8,%rsp - 40f3a6: 84 c0 test %al,%al - 40f3a8: 48 89 95 40 ff ff ff mov %rdx,-0xc0(%rbp) - 40f3af: 48 89 8d 48 ff ff ff mov %rcx,-0xb8(%rbp) - 40f3b6: 4c 89 85 50 ff ff ff mov %r8,-0xb0(%rbp) - 40f3bd: 4c 89 8d 58 ff ff ff mov %r9,-0xa8(%rbp) - 40f3c4: 74 26 je 40f3ec <__fxprintf+0x5c> - 40f3c6: 0f 29 85 60 ff ff ff movaps %xmm0,-0xa0(%rbp) - 40f3cd: 0f 29 8d 70 ff ff ff movaps %xmm1,-0x90(%rbp) - 40f3d4: 0f 29 55 80 movaps %xmm2,-0x80(%rbp) - 40f3d8: 0f 29 5d 90 movaps %xmm3,-0x70(%rbp) - 40f3dc: 0f 29 65 a0 movaps %xmm4,-0x60(%rbp) - 40f3e0: 0f 29 6d b0 movaps %xmm5,-0x50(%rbp) - 40f3e4: 0f 29 75 c0 movaps %xmm6,-0x40(%rbp) - 40f3e8: 0f 29 7d d0 movaps %xmm7,-0x30(%rbp) - 40f3ec: 4d 85 e4 test %r12,%r12 - 40f3ef: 48 8d 45 10 lea 0x10(%rbp),%rax - 40f3f3: 4c 0f 44 25 3d b3 2b cmove 0x2bb33d(%rip),%r12 # 6ca738 <_IO_stderr> - 40f3fa: 00 - 40f3fb: 48 89 85 20 ff ff ff mov %rax,-0xe0(%rbp) - 40f402: 48 8d 85 30 ff ff ff lea -0xd0(%rbp),%rax - 40f409: c7 85 18 ff ff ff 10 movl $0x10,-0xe8(%rbp) - 40f410: 00 00 00 - 40f413: c7 85 1c ff ff ff 30 movl $0x30,-0xe4(%rbp) - 40f41a: 00 00 00 - 40f41d: 48 89 85 28 ff ff ff mov %rax,-0xd8(%rbp) - 40f424: 41 8b 84 24 c0 00 00 mov 0xc0(%r12),%eax - 40f42b: 00 - 40f42c: 85 c0 test %eax,%eax - 40f42e: 7e 70 jle 40f4a0 <__fxprintf+0x110> - 40f430: 4c 89 ef mov %r13,%rdi - 40f433: 48 89 e3 mov %rsp,%rbx - 40f436: e8 15 42 01 00 callq 423650 - 40f43b: 48 83 c0 01 add $0x1,%rax - 40f43f: 48 8d 14 85 12 00 00 lea 0x12(,%rax,4),%rdx - 40f446: 00 - 40f447: 48 83 e2 f0 and $0xfffffffffffffff0,%rdx - 40f44b: 48 29 d4 sub %rdx,%rsp - 40f44e: 48 85 c0 test %rax,%rax - 40f451: 48 89 e6 mov %rsp,%rsi - 40f454: 74 28 je 40f47e <__fxprintf+0xee> - 40f456: 41 0f be 4d 00 movsbl 0x0(%r13),%ecx - 40f45b: 84 c9 test %cl,%cl - 40f45d: 78 5e js 40f4bd <__fxprintf+0x12d> - 40f45f: 31 d2 xor %edx,%edx - 40f461: eb 0f jmp 40f472 <__fxprintf+0xe2> - 40f463: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40f468: 41 0f be 4c 15 00 movsbl 0x0(%r13,%rdx,1),%ecx - 40f46e: 84 c9 test %cl,%cl - 40f470: 78 4b js 40f4bd <__fxprintf+0x12d> - 40f472: 89 0c 96 mov %ecx,(%rsi,%rdx,4) - 40f475: 48 83 c2 01 add $0x1,%rdx - 40f479: 48 39 d0 cmp %rdx,%rax - 40f47c: 75 ea jne 40f468 <__fxprintf+0xd8> - 40f47e: 48 8d 95 18 ff ff ff lea -0xe8(%rbp),%rdx - 40f485: 4c 89 e7 mov %r12,%rdi - 40f488: e8 03 fd 04 00 callq 45f190 <_IO_vfwprintf> - 40f48d: 48 89 dc mov %rbx,%rsp - 40f490: 48 8d 65 e8 lea -0x18(%rbp),%rsp - 40f494: 5b pop %rbx - 40f495: 41 5c pop %r12 - 40f497: 41 5d pop %r13 - 40f499: 5d pop %rbp - 40f49a: c3 retq - 40f49b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40f4a0: 48 8d 95 18 ff ff ff lea -0xe8(%rbp),%rdx - 40f4a7: 4c 89 ee mov %r13,%rsi - 40f4aa: 4c 89 e7 mov %r12,%rdi - 40f4ad: e8 1e 54 04 00 callq 4548d0 <_IO_vfprintf> - 40f4b2: 48 8d 65 e8 lea -0x18(%rbp),%rsp - 40f4b6: 5b pop %rbx - 40f4b7: 41 5c pop %r12 - 40f4b9: 41 5d pop %r13 - 40f4bb: 5d pop %rbp - 40f4bc: c3 retq - 40f4bd: b9 48 19 4a 00 mov $0x4a1948,%ecx - 40f4c2: ba 2c 00 00 00 mov $0x2c,%edx - 40f4c7: be 25 19 4a 00 mov $0x4a1925,%esi - 40f4cc: bf 30 19 4a 00 mov $0x4a1930,%edi - 40f4d1: e8 6a 22 ff ff callq 401740 <__assert_fail> - 40f4d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40f4dd: 00 00 00 - -000000000040f4e0 <_IO_new_fclose>: - 40f4e0: 41 54 push %r12 - 40f4e2: 55 push %rbp - 40f4e3: 53 push %rbx - 40f4e4: 8b 07 mov (%rdi),%eax - 40f4e6: 48 89 fb mov %rdi,%rbx - 40f4e9: f6 c4 20 test $0x20,%ah - 40f4ec: 0f 85 fe 00 00 00 jne 40f5f0 <_IO_new_fclose+0x110> - 40f4f2: 89 c2 mov %eax,%edx - 40f4f4: 81 e2 00 80 00 00 and $0x8000,%edx - 40f4fa: 0f 84 fc 00 00 00 je 40f5fc <_IO_new_fclose+0x11c> - 40f500: c1 e0 1a shl $0x1a,%eax - 40f503: c1 f8 1f sar $0x1f,%eax - 40f506: 85 d2 test %edx,%edx - 40f508: 89 c5 mov %eax,%ebp - 40f50a: 0f 84 71 01 00 00 je 40f681 <_IO_new_fclose+0x1a1> - 40f510: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 40f517: 31 f6 xor %esi,%esi - 40f519: 48 89 df mov %rbx,%rdi - 40f51c: ff 50 10 callq *0x10(%rax) - 40f51f: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax - 40f525: 85 c0 test %eax,%eax - 40f527: 0f 8e a3 01 00 00 jle 40f6d0 <_IO_new_fclose+0x1f0> - 40f52d: 4c 8b a3 98 00 00 00 mov 0x98(%rbx),%r12 - 40f534: be 01 00 00 00 mov $0x1,%esi - 40f539: 31 c0 xor %eax,%eax - 40f53b: 83 3d 7a dc 2b 00 00 cmpl $0x0,0x2bdc7a(%rip) # 6cd1bc <__libc_multiple_threads> - 40f542: 74 0c je 40f550 <_IO_new_fclose+0x70> - 40f544: f0 0f b1 35 84 dd 2b lock cmpxchg %esi,0x2bdd84(%rip) # 6cd2d0 <__gconv_lock> - 40f54b: 00 - 40f54c: 75 0b jne 40f559 <_IO_new_fclose+0x79> - 40f54e: eb 23 jmp 40f573 <_IO_new_fclose+0x93> - 40f550: 0f b1 35 79 dd 2b 00 cmpxchg %esi,0x2bdd79(%rip) # 6cd2d0 <__gconv_lock> - 40f557: 74 1a je 40f573 <_IO_new_fclose+0x93> - 40f559: 48 8d 3d 70 dd 2b 00 lea 0x2bdd70(%rip),%rdi # 6cd2d0 <__gconv_lock> - 40f560: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 40f567: e8 64 30 03 00 callq 4425d0 <__lll_lock_wait_private> - 40f56c: 48 81 c4 80 00 00 00 add $0x80,%rsp - 40f573: 49 8b 7c 24 48 mov 0x48(%r12),%rdi - 40f578: e8 43 5f 03 00 callq 4454c0 <__gconv_release_step> - 40f57d: 49 8b bc 24 88 00 00 mov 0x88(%r12),%rdi - 40f584: 00 - 40f585: e8 36 5f 03 00 callq 4454c0 <__gconv_release_step> - 40f58a: 83 3d 2b dc 2b 00 00 cmpl $0x0,0x2bdc2b(%rip) # 6cd1bc <__libc_multiple_threads> - 40f591: 74 0b je 40f59e <_IO_new_fclose+0xbe> - 40f593: f0 ff 0d 36 dd 2b 00 lock decl 0x2bdd36(%rip) # 6cd2d0 <__gconv_lock> - 40f59a: 75 0a jne 40f5a6 <_IO_new_fclose+0xc6> - 40f59c: eb 22 jmp 40f5c0 <_IO_new_fclose+0xe0> - 40f59e: ff 0d 2c dd 2b 00 decl 0x2bdd2c(%rip) # 6cd2d0 <__gconv_lock> - 40f5a4: 74 1a je 40f5c0 <_IO_new_fclose+0xe0> - 40f5a6: 48 8d 3d 23 dd 2b 00 lea 0x2bdd23(%rip),%rdi # 6cd2d0 <__gconv_lock> - 40f5ad: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 40f5b4: e8 47 30 03 00 callq 442600 <__lll_unlock_wake_private> - 40f5b9: 48 81 c4 80 00 00 00 add $0x80,%rsp - 40f5c0: 48 3b 1d 81 b1 2b 00 cmp 0x2bb181(%rip),%rbx # 6ca748 <_IO_stdin> - 40f5c7: 74 1a je 40f5e3 <_IO_new_fclose+0x103> - 40f5c9: 48 3b 1d 70 b1 2b 00 cmp 0x2bb170(%rip),%rbx # 6ca740 <_IO_stdout> - 40f5d0: 74 11 je 40f5e3 <_IO_new_fclose+0x103> - 40f5d2: 48 3b 1d 5f b1 2b 00 cmp 0x2bb15f(%rip),%rbx # 6ca738 <_IO_stderr> - 40f5d9: 74 08 je 40f5e3 <_IO_new_fclose+0x103> - 40f5db: 48 89 df mov %rbx,%rdi - 40f5de: e8 cd e7 00 00 callq 41ddb0 <__cfree> - 40f5e3: 89 e8 mov %ebp,%eax - 40f5e5: 5b pop %rbx - 40f5e6: 5d pop %rbp - 40f5e7: 41 5c pop %r12 - 40f5e9: c3 retq - 40f5ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 40f5f0: e8 5b 4e 00 00 callq 414450 <_IO_un_link> - 40f5f5: 8b 03 mov (%rbx),%eax - 40f5f7: f6 c4 80 test $0x80,%ah - 40f5fa: 75 5a jne 40f656 <_IO_new_fclose+0x176> - 40f5fc: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 40f603: 64 4c 8b 04 25 10 00 mov %fs:0x10,%r8 - 40f60a: 00 00 - 40f60c: 4c 3b 42 08 cmp 0x8(%rdx),%r8 - 40f610: 74 40 je 40f652 <_IO_new_fclose+0x172> - 40f612: be 01 00 00 00 mov $0x1,%esi - 40f617: 31 c0 xor %eax,%eax - 40f619: 83 3d 9c db 2b 00 00 cmpl $0x0,0x2bdb9c(%rip) # 6cd1bc <__libc_multiple_threads> - 40f620: 74 08 je 40f62a <_IO_new_fclose+0x14a> - 40f622: f0 0f b1 32 lock cmpxchg %esi,(%rdx) - 40f626: 75 07 jne 40f62f <_IO_new_fclose+0x14f> - 40f628: eb 1b jmp 40f645 <_IO_new_fclose+0x165> - 40f62a: 0f b1 32 cmpxchg %esi,(%rdx) - 40f62d: 74 16 je 40f645 <_IO_new_fclose+0x165> - 40f62f: 48 8d 3a lea (%rdx),%rdi - 40f632: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 40f639: e8 92 2f 03 00 callq 4425d0 <__lll_lock_wait_private> - 40f63e: 48 81 c4 80 00 00 00 add $0x80,%rsp - 40f645: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 40f64c: 8b 03 mov (%rbx),%eax - 40f64e: 4c 89 42 08 mov %r8,0x8(%rdx) - 40f652: 83 42 04 01 addl $0x1,0x4(%rdx) - 40f656: 89 c2 mov %eax,%edx - 40f658: 81 e2 00 80 00 00 and $0x8000,%edx - 40f65e: f6 c4 20 test $0x20,%ah - 40f661: 0f 84 99 fe ff ff je 40f500 <_IO_new_fclose+0x20> - 40f667: 48 89 df mov %rbx,%rdi - 40f66a: e8 71 3c 00 00 callq 4132e0 <_IO_new_file_close_it> - 40f66f: 8b 13 mov (%rbx),%edx - 40f671: 89 c5 mov %eax,%ebp - 40f673: 81 e2 00 80 00 00 and $0x8000,%edx - 40f679: 85 d2 test %edx,%edx - 40f67b: 0f 85 8f fe ff ff jne 40f510 <_IO_new_fclose+0x30> - 40f681: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 40f688: 83 6a 04 01 subl $0x1,0x4(%rdx) - 40f68c: 0f 85 7e fe ff ff jne 40f510 <_IO_new_fclose+0x30> - 40f692: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) - 40f699: 00 - 40f69a: 83 3d 1b db 2b 00 00 cmpl $0x0,0x2bdb1b(%rip) # 6cd1bc <__libc_multiple_threads> - 40f6a1: 74 07 je 40f6aa <_IO_new_fclose+0x1ca> - 40f6a3: f0 ff 0a lock decl (%rdx) - 40f6a6: 75 06 jne 40f6ae <_IO_new_fclose+0x1ce> - 40f6a8: eb 1a jmp 40f6c4 <_IO_new_fclose+0x1e4> - 40f6aa: ff 0a decl (%rdx) - 40f6ac: 74 16 je 40f6c4 <_IO_new_fclose+0x1e4> - 40f6ae: 48 8d 3a lea (%rdx),%rdi - 40f6b1: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 40f6b8: e8 43 2f 03 00 callq 442600 <__lll_unlock_wake_private> - 40f6bd: 48 81 c4 80 00 00 00 add $0x80,%rsp - 40f6c4: e9 47 fe ff ff jmpq 40f510 <_IO_new_fclose+0x30> - 40f6c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40f6d0: 48 83 7b 48 00 cmpq $0x0,0x48(%rbx) - 40f6d5: 0f 84 e5 fe ff ff je 40f5c0 <_IO_new_fclose+0xe0> - 40f6db: 48 89 df mov %rbx,%rdi - 40f6de: e8 4d 53 00 00 callq 414a30 <_IO_free_backup_area> - 40f6e3: e9 d8 fe ff ff jmpq 40f5c0 <_IO_new_fclose+0xe0> - 40f6e8: 48 89 c6 mov %rax,%rsi - 40f6eb: f7 03 00 80 00 00 testl $0x8000,(%rbx) - 40f6f1: 75 3f jne 40f732 <_IO_new_fclose+0x252> - 40f6f3: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 40f6fa: 83 6a 04 01 subl $0x1,0x4(%rdx) - 40f6fe: 75 32 jne 40f732 <_IO_new_fclose+0x252> - 40f700: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) - 40f707: 00 - 40f708: 83 3d ad da 2b 00 00 cmpl $0x0,0x2bdaad(%rip) # 6cd1bc <__libc_multiple_threads> - 40f70f: 74 07 je 40f718 <_IO_new_fclose+0x238> - 40f711: f0 ff 0a lock decl (%rdx) - 40f714: 75 06 jne 40f71c <_IO_new_fclose+0x23c> - 40f716: eb 1a jmp 40f732 <_IO_new_fclose+0x252> - 40f718: ff 0a decl (%rdx) - 40f71a: 74 16 je 40f732 <_IO_new_fclose+0x252> - 40f71c: 48 8d 3a lea (%rdx),%rdi - 40f71f: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 40f726: e8 d5 2e 03 00 callq 442600 <__lll_unlock_wake_private> - 40f72b: 48 81 c4 80 00 00 00 add $0x80,%rsp - 40f732: 48 89 f7 mov %rsi,%rdi - 40f735: e8 36 ce 08 00 callq 49c570 <_Unwind_Resume> - 40f73a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -000000000040f740 <_IO_fflush>: - 40f740: 48 85 ff test %rdi,%rdi - 40f743: 0f 84 d7 00 00 00 je 40f820 <_IO_fflush+0xe0> - 40f749: 53 push %rbx - 40f74a: 8b 07 mov (%rdi),%eax - 40f74c: 48 89 fa mov %rdi,%rdx - 40f74f: 25 00 80 00 00 and $0x8000,%eax - 40f754: 75 59 jne 40f7af <_IO_fflush+0x6f> - 40f756: 4c 8b 87 88 00 00 00 mov 0x88(%rdi),%r8 - 40f75d: 64 4c 8b 0c 25 10 00 mov %fs:0x10,%r9 - 40f764: 00 00 - 40f766: 4d 3b 48 08 cmp 0x8(%r8),%r9 - 40f76a: 74 3e je 40f7aa <_IO_fflush+0x6a> - 40f76c: be 01 00 00 00 mov $0x1,%esi - 40f771: 83 3d 44 da 2b 00 00 cmpl $0x0,0x2bda44(%rip) # 6cd1bc <__libc_multiple_threads> - 40f778: 74 09 je 40f783 <_IO_fflush+0x43> - 40f77a: f0 41 0f b1 30 lock cmpxchg %esi,(%r8) - 40f77f: 75 08 jne 40f789 <_IO_fflush+0x49> - 40f781: eb 1c jmp 40f79f <_IO_fflush+0x5f> - 40f783: 41 0f b1 30 cmpxchg %esi,(%r8) - 40f787: 74 16 je 40f79f <_IO_fflush+0x5f> - 40f789: 49 8d 38 lea (%r8),%rdi - 40f78c: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 40f793: e8 38 2e 03 00 callq 4425d0 <__lll_lock_wait_private> - 40f798: 48 81 c4 80 00 00 00 add $0x80,%rsp - 40f79f: 4c 8b 82 88 00 00 00 mov 0x88(%rdx),%r8 - 40f7a6: 4d 89 48 08 mov %r9,0x8(%r8) - 40f7aa: 41 83 40 04 01 addl $0x1,0x4(%r8) - 40f7af: 48 8b 82 d8 00 00 00 mov 0xd8(%rdx),%rax - 40f7b6: 48 89 d3 mov %rdx,%rbx - 40f7b9: 48 89 d7 mov %rdx,%rdi - 40f7bc: ff 50 60 callq *0x60(%rax) - 40f7bf: 31 d2 xor %edx,%edx - 40f7c1: 85 c0 test %eax,%eax - 40f7c3: 0f 95 c2 setne %dl - 40f7c6: f7 da neg %edx - 40f7c8: f7 03 00 80 00 00 testl $0x8000,(%rbx) - 40f7ce: 74 08 je 40f7d8 <_IO_fflush+0x98> - 40f7d0: 89 d0 mov %edx,%eax - 40f7d2: 5b pop %rbx - 40f7d3: c3 retq - 40f7d4: 0f 1f 40 00 nopl 0x0(%rax) - 40f7d8: 48 8b b3 88 00 00 00 mov 0x88(%rbx),%rsi - 40f7df: 83 6e 04 01 subl $0x1,0x4(%rsi) - 40f7e3: 75 eb jne 40f7d0 <_IO_fflush+0x90> - 40f7e5: 48 c7 46 08 00 00 00 movq $0x0,0x8(%rsi) - 40f7ec: 00 - 40f7ed: 83 3d c8 d9 2b 00 00 cmpl $0x0,0x2bd9c8(%rip) # 6cd1bc <__libc_multiple_threads> - 40f7f4: 74 07 je 40f7fd <_IO_fflush+0xbd> - 40f7f6: f0 ff 0e lock decl (%rsi) - 40f7f9: 75 06 jne 40f801 <_IO_fflush+0xc1> - 40f7fb: eb 1a jmp 40f817 <_IO_fflush+0xd7> - 40f7fd: ff 0e decl (%rsi) - 40f7ff: 74 16 je 40f817 <_IO_fflush+0xd7> - 40f801: 48 8d 3e lea (%rsi),%rdi - 40f804: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 40f80b: e8 f0 2d 03 00 callq 442600 <__lll_unlock_wake_private> - 40f810: 48 81 c4 80 00 00 00 add $0x80,%rsp - 40f817: 89 d0 mov %edx,%eax - 40f819: 5b pop %rbx - 40f81a: c3 retq - 40f81b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40f820: e9 ab 64 00 00 jmpq 415cd0 <_IO_flush_all> - 40f825: 48 89 c6 mov %rax,%rsi - 40f828: f7 03 00 80 00 00 testl $0x8000,(%rbx) - 40f82e: 75 3f jne 40f86f <_IO_fflush+0x12f> - 40f830: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 40f837: 83 6a 04 01 subl $0x1,0x4(%rdx) - 40f83b: 75 32 jne 40f86f <_IO_fflush+0x12f> - 40f83d: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) - 40f844: 00 - 40f845: 83 3d 70 d9 2b 00 00 cmpl $0x0,0x2bd970(%rip) # 6cd1bc <__libc_multiple_threads> - 40f84c: 74 07 je 40f855 <_IO_fflush+0x115> - 40f84e: f0 ff 0a lock decl (%rdx) - 40f851: 75 06 jne 40f859 <_IO_fflush+0x119> - 40f853: eb 1a jmp 40f86f <_IO_fflush+0x12f> - 40f855: ff 0a decl (%rdx) - 40f857: 74 16 je 40f86f <_IO_fflush+0x12f> - 40f859: 48 8d 3a lea (%rdx),%rdi - 40f85c: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 40f863: e8 98 2d 03 00 callq 442600 <__lll_unlock_wake_private> - 40f868: 48 81 c4 80 00 00 00 add $0x80,%rsp - 40f86f: 48 89 f7 mov %rsi,%rdi - 40f872: e8 f9 cc 08 00 callq 49c570 <_Unwind_Resume> - 40f877: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40f87e: 00 00 - -000000000040f880 <__fopen_maybe_mmap>: - 40f880: f6 47 74 01 testb $0x1,0x74(%rdi) - 40f884: 48 89 f8 mov %rdi,%rax - 40f887: 74 30 je 40f8b9 <__fopen_maybe_mmap+0x39> - 40f889: f6 07 08 testb $0x8,(%rdi) - 40f88c: 74 2b je 40f8b9 <__fopen_maybe_mmap+0x39> - 40f88e: 8b 97 c0 00 00 00 mov 0xc0(%rdi),%edx - 40f894: b9 a0 19 4a 00 mov $0x4a19a0,%ecx - 40f899: 85 d2 test %edx,%edx - 40f89b: ba a0 1c 4a 00 mov $0x4a1ca0,%edx - 40f8a0: 48 0f 4f d1 cmovg %rcx,%rdx - 40f8a4: 48 89 97 d8 00 00 00 mov %rdx,0xd8(%rdi) - 40f8ab: 48 8b 97 a0 00 00 00 mov 0xa0(%rdi),%rdx - 40f8b2: 48 89 8a 30 01 00 00 mov %rcx,0x130(%rdx) - 40f8b9: f3 c3 repz retq - 40f8bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -000000000040f8c0 <__fopen_internal>: - 40f8c0: 41 55 push %r13 - 40f8c2: 41 54 push %r12 - 40f8c4: 41 89 d5 mov %edx,%r13d - 40f8c7: 55 push %rbp - 40f8c8: 53 push %rbx - 40f8c9: 48 89 fd mov %rdi,%rbp - 40f8cc: bf 28 02 00 00 mov $0x228,%edi - 40f8d1: 49 89 f4 mov %rsi,%r12 - 40f8d4: 48 83 ec 08 sub $0x8,%rsp - 40f8d8: e8 33 e1 00 00 callq 41da10 <__libc_malloc> - 40f8dd: 48 85 c0 test %rax,%rax - 40f8e0: 0f 84 b2 00 00 00 je 40f998 <__fopen_internal+0xd8> - 40f8e6: 48 8d 90 e0 00 00 00 lea 0xe0(%rax),%rdx - 40f8ed: 48 8d 88 f0 00 00 00 lea 0xf0(%rax),%rcx - 40f8f4: 48 89 c3 mov %rax,%rbx - 40f8f7: 31 f6 xor %esi,%esi - 40f8f9: 48 89 c7 mov %rax,%rdi - 40f8fc: 41 b8 20 1b 4a 00 mov $0x4a1b20,%r8d - 40f902: 48 89 90 88 00 00 00 mov %rdx,0x88(%rax) - 40f909: 31 d2 xor %edx,%edx - 40f90b: e8 b0 5b 00 00 callq 4154c0 <_IO_no_init> - 40f910: 48 89 df mov %rbx,%rdi - 40f913: 48 c7 83 d8 00 00 00 movq $0x4a1e20,0xd8(%rbx) - 40f91a: 20 1e 4a 00 - 40f91e: e8 0d 37 00 00 callq 413030 <_IO_new_file_init> - 40f923: 44 89 e9 mov %r13d,%ecx - 40f926: 4c 89 e2 mov %r12,%rdx - 40f929: 48 89 ee mov %rbp,%rsi - 40f92c: 48 89 df mov %rbx,%rdi - 40f92f: e8 2c 3b 00 00 callq 413460 <_IO_new_file_fopen> - 40f934: 48 85 c0 test %rax,%rax - 40f937: 74 63 je 40f99c <__fopen_internal+0xdc> - 40f939: f6 43 74 01 testb $0x1,0x74(%rbx) - 40f93d: 74 05 je 40f944 <__fopen_internal+0x84> - 40f93f: f6 03 08 testb $0x8,(%rbx) - 40f942: 75 14 jne 40f958 <__fopen_internal+0x98> - 40f944: 48 83 c4 08 add $0x8,%rsp - 40f948: 48 89 d8 mov %rbx,%rax - 40f94b: 5b pop %rbx - 40f94c: 5d pop %rbp - 40f94d: 41 5c pop %r12 - 40f94f: 41 5d pop %r13 - 40f951: c3 retq - 40f952: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 40f958: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax - 40f95e: ba a0 19 4a 00 mov $0x4a19a0,%edx - 40f963: 85 c0 test %eax,%eax - 40f965: b8 a0 1c 4a 00 mov $0x4a1ca0,%eax - 40f96a: 48 0f 4f c2 cmovg %rdx,%rax - 40f96e: 48 89 83 d8 00 00 00 mov %rax,0xd8(%rbx) - 40f975: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 40f97c: 48 89 90 30 01 00 00 mov %rdx,0x130(%rax) - 40f983: 48 83 c4 08 add $0x8,%rsp - 40f987: 48 89 d8 mov %rbx,%rax - 40f98a: 5b pop %rbx - 40f98b: 5d pop %rbp - 40f98c: 41 5c pop %r12 - 40f98e: 41 5d pop %r13 - 40f990: c3 retq - 40f991: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40f998: 31 db xor %ebx,%ebx - 40f99a: eb a8 jmp 40f944 <__fopen_internal+0x84> - 40f99c: 48 89 df mov %rbx,%rdi - 40f99f: e8 ac 4a 00 00 callq 414450 <_IO_un_link> - 40f9a4: 48 89 df mov %rbx,%rdi - 40f9a7: 31 db xor %ebx,%ebx - 40f9a9: e8 02 e4 00 00 callq 41ddb0 <__cfree> - 40f9ae: eb 94 jmp 40f944 <__fopen_internal+0x84> - -000000000040f9b0 <_IO_new_fopen>: - 40f9b0: 41 54 push %r12 - 40f9b2: 55 push %rbp - 40f9b3: 48 89 fd mov %rdi,%rbp - 40f9b6: 53 push %rbx - 40f9b7: bf 28 02 00 00 mov $0x228,%edi - 40f9bc: 49 89 f4 mov %rsi,%r12 - 40f9bf: e8 4c e0 00 00 callq 41da10 <__libc_malloc> - 40f9c4: 48 85 c0 test %rax,%rax - 40f9c7: 0f 84 a3 00 00 00 je 40fa70 <_IO_new_fopen+0xc0> - 40f9cd: 48 8d 90 e0 00 00 00 lea 0xe0(%rax),%rdx - 40f9d4: 48 8d 88 f0 00 00 00 lea 0xf0(%rax),%rcx - 40f9db: 48 89 c3 mov %rax,%rbx - 40f9de: 31 f6 xor %esi,%esi - 40f9e0: 48 89 c7 mov %rax,%rdi - 40f9e3: 41 b8 20 1b 4a 00 mov $0x4a1b20,%r8d - 40f9e9: 48 89 90 88 00 00 00 mov %rdx,0x88(%rax) - 40f9f0: 31 d2 xor %edx,%edx - 40f9f2: e8 c9 5a 00 00 callq 4154c0 <_IO_no_init> - 40f9f7: 48 89 df mov %rbx,%rdi - 40f9fa: 48 c7 83 d8 00 00 00 movq $0x4a1e20,0xd8(%rbx) - 40fa01: 20 1e 4a 00 - 40fa05: e8 26 36 00 00 callq 413030 <_IO_new_file_init> - 40fa0a: b9 01 00 00 00 mov $0x1,%ecx - 40fa0f: 4c 89 e2 mov %r12,%rdx - 40fa12: 48 89 ee mov %rbp,%rsi - 40fa15: 48 89 df mov %rbx,%rdi - 40fa18: e8 43 3a 00 00 callq 413460 <_IO_new_file_fopen> - 40fa1d: 48 85 c0 test %rax,%rax - 40fa20: 74 52 je 40fa74 <_IO_new_fopen+0xc4> - 40fa22: f6 43 74 01 testb $0x1,0x74(%rbx) - 40fa26: 74 05 je 40fa2d <_IO_new_fopen+0x7d> - 40fa28: f6 03 08 testb $0x8,(%rbx) - 40fa2b: 75 0b jne 40fa38 <_IO_new_fopen+0x88> - 40fa2d: 48 89 d8 mov %rbx,%rax - 40fa30: 5b pop %rbx - 40fa31: 5d pop %rbp - 40fa32: 41 5c pop %r12 - 40fa34: c3 retq - 40fa35: 0f 1f 00 nopl (%rax) - 40fa38: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax - 40fa3e: ba a0 19 4a 00 mov $0x4a19a0,%edx - 40fa43: 85 c0 test %eax,%eax - 40fa45: b8 a0 1c 4a 00 mov $0x4a1ca0,%eax - 40fa4a: 48 0f 4f c2 cmovg %rdx,%rax - 40fa4e: 48 89 83 d8 00 00 00 mov %rax,0xd8(%rbx) - 40fa55: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 40fa5c: 48 89 90 30 01 00 00 mov %rdx,0x130(%rax) - 40fa63: 48 89 d8 mov %rbx,%rax - 40fa66: 5b pop %rbx - 40fa67: 5d pop %rbp - 40fa68: 41 5c pop %r12 - 40fa6a: c3 retq - 40fa6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40fa70: 31 db xor %ebx,%ebx - 40fa72: eb b9 jmp 40fa2d <_IO_new_fopen+0x7d> - 40fa74: 48 89 df mov %rbx,%rdi - 40fa77: e8 d4 49 00 00 callq 414450 <_IO_un_link> - 40fa7c: 48 89 df mov %rbx,%rdi - 40fa7f: 31 db xor %ebx,%ebx - 40fa81: e8 2a e3 00 00 callq 41ddb0 <__cfree> - 40fa86: eb a5 jmp 40fa2d <_IO_new_fopen+0x7d> - 40fa88: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 40fa8f: 00 - -000000000040fa90 : - 40fa90: 41 54 push %r12 - 40fa92: 55 push %rbp - 40fa93: 41 89 f4 mov %esi,%r12d - 40fa96: 53 push %rbx - 40fa97: 48 89 fb mov %rdi,%rbx - 40fa9a: 48 83 ec 10 sub $0x10,%rsp - 40fa9e: 48 8b af 98 00 00 00 mov 0x98(%rdi),%rbp - 40faa5: 48 89 ef mov %rbp,%rdi - 40faa8: ff 55 20 callq *0x20(%rbp) - 40faab: 85 c0 test %eax,%eax - 40faad: 0f 9f c2 setg %dl - 40fab0: 41 38 d4 cmp %dl,%r12b - 40fab3: 73 3b jae 40faf0 - 40fab5: 48 8b 53 08 mov 0x8(%rbx),%rdx - 40fab9: 48 2b 53 18 sub 0x18(%rbx),%rdx - 40fabd: 48 63 c8 movslq %eax,%rcx - 40fac0: 48 8b b3 a0 00 00 00 mov 0xa0(%rbx),%rsi - 40fac7: 48 89 d0 mov %rdx,%rax - 40faca: 48 99 cqto - 40facc: 48 f7 f9 idiv %rcx - 40facf: 48 c1 e0 02 shl $0x2,%rax - 40fad3: 48 01 46 08 add %rax,0x8(%rsi) - 40fad7: 48 8b 46 08 mov 0x8(%rsi),%rax - 40fadb: 48 89 06 mov %rax,(%rsi) - 40fade: 31 c0 xor %eax,%eax - 40fae0: 48 83 c4 10 add $0x10,%rsp - 40fae4: 5b pop %rbx - 40fae5: 5d pop %rbp - 40fae6: 41 5c pop %r12 - 40fae8: c3 retq - 40fae9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40faf0: 48 8b 43 18 mov 0x18(%rbx),%rax - 40faf4: 48 89 44 24 08 mov %rax,0x8(%rsp) - 40faf9: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 40fb00: 48 8b 50 58 mov 0x58(%rax),%rdx - 40fb04: 48 89 50 60 mov %rdx,0x60(%rax) - 40fb08: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 40fb0f: 48 8b 4b 08 mov 0x8(%rbx),%rcx - 40fb13: 48 8b 53 18 mov 0x18(%rbx),%rdx - 40fb17: 48 8d 78 08 lea 0x8(%rax),%rdi - 40fb1b: 48 8d 70 58 lea 0x58(%rax),%rsi - 40fb1f: 57 push %rdi - 40fb20: ff 70 38 pushq 0x38(%rax) - 40fb23: 48 89 ef mov %rbp,%rdi - 40fb26: 4c 8b 48 10 mov 0x10(%rax),%r9 - 40fb2a: 4c 8d 44 24 18 lea 0x18(%rsp),%r8 - 40fb2f: ff 55 18 callq *0x18(%rbp) - 40fb32: 83 f8 02 cmp $0x2,%eax - 40fb35: 5a pop %rdx - 40fb36: 59 pop %rcx - 40fb37: 74 17 je 40fb50 - 40fb39: 83 f8 01 cmp $0x1,%eax - 40fb3c: 74 bb je 40faf9 - 40fb3e: 48 8b b3 a0 00 00 00 mov 0xa0(%rbx),%rsi - 40fb45: eb 90 jmp 40fad7 - 40fb47: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 40fb4e: 00 00 - 40fb50: 83 0b 20 orl $0x20,(%rbx) - 40fb53: b8 ff ff ff ff mov $0xffffffff,%eax - 40fb58: eb 86 jmp 40fae0 - 40fb5a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -000000000040fb60 <_IO_wfile_underflow>: - 40fb60: 8b 07 mov (%rdi),%eax - 40fb62: a8 04 test $0x4,%al - 40fb64: 0f 85 96 04 00 00 jne 410000 <_IO_wfile_underflow+0x4a0> - 40fb6a: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax - 40fb71: 48 8b 10 mov (%rax),%rdx - 40fb74: 48 3b 50 08 cmp 0x8(%rax),%rdx - 40fb78: 0f 82 62 03 00 00 jb 40fee0 <_IO_wfile_underflow+0x380> - 40fb7e: 41 57 push %r15 - 40fb80: 41 56 push %r14 - 40fb82: 41 55 push %r13 - 40fb84: 41 54 push %r12 - 40fb86: 55 push %rbp - 40fb87: 53 push %rbx - 40fb88: 48 89 fb mov %rdi,%rbx - 40fb8b: 48 83 ec 28 sub $0x28,%rsp - 40fb8f: 48 8b 57 08 mov 0x8(%rdi),%rdx - 40fb93: 48 3b 57 10 cmp 0x10(%rdi),%rdx - 40fb97: 4c 8b a7 98 00 00 00 mov 0x98(%rdi),%r12 - 40fb9e: 0f 82 7c 03 00 00 jb 40ff20 <_IO_wfile_underflow+0x3c0> - 40fba4: 48 8b 47 38 mov 0x38(%rdi),%rax - 40fba8: 48 89 47 10 mov %rax,0x10(%rdi) - 40fbac: 48 89 47 08 mov %rax,0x8(%rdi) - 40fbb0: 48 89 47 18 mov %rax,0x18(%rdi) - 40fbb4: 48 85 c0 test %rax,%rax - 40fbb7: 0f 84 8b 04 00 00 je 410048 <_IO_wfile_underflow+0x4e8> - 40fbbd: 48 89 43 30 mov %rax,0x30(%rbx) - 40fbc1: 48 89 43 28 mov %rax,0x28(%rbx) - 40fbc5: 48 89 43 20 mov %rax,0x20(%rbx) - 40fbc9: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 40fbd0: 48 83 78 30 00 cmpq $0x0,0x30(%rax) - 40fbd5: 0f 84 45 04 00 00 je 410020 <_IO_wfile_underflow+0x4c0> - 40fbdb: f7 03 02 02 00 00 testl $0x202,(%rbx) - 40fbe1: 0f 84 a9 00 00 00 je 40fc90 <_IO_wfile_underflow+0x130> - 40fbe7: 48 8b 2d 52 ab 2b 00 mov 0x2bab52(%rip),%rbp # 6ca740 <_IO_stdout> - 40fbee: 8b 55 00 mov 0x0(%rbp),%edx - 40fbf1: 89 d0 mov %edx,%eax - 40fbf3: 25 00 80 00 00 and $0x8000,%eax - 40fbf8: 0f 85 92 03 00 00 jne 40ff90 <_IO_wfile_underflow+0x430> - 40fbfe: 4c 8b 85 88 00 00 00 mov 0x88(%rbp),%r8 - 40fc05: 64 4c 8b 0c 25 10 00 mov %fs:0x10,%r9 - 40fc0c: 00 00 - 40fc0e: 4d 3b 48 08 cmp 0x8(%r8),%r9 - 40fc12: 0f 84 c4 04 00 00 je 4100dc <_IO_wfile_underflow+0x57c> - 40fc18: be 01 00 00 00 mov $0x1,%esi - 40fc1d: 83 3d 98 d5 2b 00 00 cmpl $0x0,0x2bd598(%rip) # 6cd1bc <__libc_multiple_threads> - 40fc24: 74 09 je 40fc2f <_IO_wfile_underflow+0xcf> - 40fc26: f0 41 0f b1 30 lock cmpxchg %esi,(%r8) - 40fc2b: 75 08 jne 40fc35 <_IO_wfile_underflow+0xd5> - 40fc2d: eb 1c jmp 40fc4b <_IO_wfile_underflow+0xeb> - 40fc2f: 41 0f b1 30 cmpxchg %esi,(%r8) - 40fc33: 74 16 je 40fc4b <_IO_wfile_underflow+0xeb> - 40fc35: 49 8d 38 lea (%r8),%rdi - 40fc38: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 40fc3f: e8 8c 29 03 00 callq 4425d0 <__lll_lock_wait_private> - 40fc44: 48 81 c4 80 00 00 00 add $0x80,%rsp - 40fc4b: 48 8b 3d ee aa 2b 00 mov 0x2baaee(%rip),%rdi # 6ca740 <_IO_stdout> - 40fc52: 4c 8b 85 88 00 00 00 mov 0x88(%rbp),%r8 - 40fc59: 8b 17 mov (%rdi),%edx - 40fc5b: 4d 89 48 08 mov %r9,0x8(%r8) - 40fc5f: 81 e2 88 02 00 00 and $0x288,%edx - 40fc65: 41 83 40 04 01 addl $0x1,0x4(%r8) - 40fc6a: 81 fa 80 02 00 00 cmp $0x280,%edx - 40fc70: 0f 84 2f 03 00 00 je 40ffa5 <_IO_wfile_underflow+0x445> - 40fc76: f7 45 00 00 80 00 00 testl $0x8000,0x0(%rbp) - 40fc7d: 75 11 jne 40fc90 <_IO_wfile_underflow+0x130> - 40fc7f: 48 8b 95 88 00 00 00 mov 0x88(%rbp),%rdx - 40fc86: 83 6a 04 01 subl $0x1,0x4(%rdx) - 40fc8a: 0f 84 15 04 00 00 je 4100a5 <_IO_wfile_underflow+0x545> - 40fc90: 48 89 df mov %rbx,%rdi - 40fc93: 4c 8d 6c 24 10 lea 0x10(%rsp),%r13 - 40fc98: 31 ed xor %ebp,%ebp - 40fc9a: e8 21 4d 00 00 callq 4149c0 <_IO_switch_to_get_mode> - 40fc9f: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 40fca6: 4c 8b 73 10 mov 0x10(%rbx),%r14 - 40fcaa: 48 8b 50 30 mov 0x30(%rax),%rdx - 40fcae: 48 89 10 mov %rdx,(%rax) - 40fcb1: 48 89 50 10 mov %rdx,0x10(%rax) - 40fcb5: 48 89 50 08 mov %rdx,0x8(%rax) - 40fcb9: 48 89 50 28 mov %rdx,0x28(%rax) - 40fcbd: 48 89 50 20 mov %rdx,0x20(%rax) - 40fcc1: 48 89 50 18 mov %rdx,0x18(%rax) - 40fcc5: 0f 1f 00 nopl (%rax) - 40fcc8: 48 8b 53 40 mov 0x40(%rbx),%rdx - 40fccc: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 40fcd3: 4c 89 f6 mov %r14,%rsi - 40fcd6: 48 89 df mov %rbx,%rdi - 40fcd9: 4c 29 f2 sub %r14,%rdx - 40fcdc: ff 50 70 callq *0x70(%rax) - 40fcdf: 48 83 f8 00 cmp $0x0,%rax - 40fce3: 0f 8e f7 00 00 00 jle 40fde0 <_IO_wfile_underflow+0x280> - 40fce9: 48 8b 8b 90 00 00 00 mov 0x90(%rbx),%rcx - 40fcf0: 48 01 43 10 add %rax,0x10(%rbx) - 40fcf4: 48 83 f9 ff cmp $0xffffffffffffffff,%rcx - 40fcf8: 74 0a je 40fd04 <_IO_wfile_underflow+0x1a4> - 40fcfa: 48 01 c1 add %rax,%rcx - 40fcfd: 48 89 8b 90 00 00 00 mov %rcx,0x90(%rbx) - 40fd04: 48 8b 93 a0 00 00 00 mov 0xa0(%rbx),%rdx - 40fd0b: 48 85 ed test %rbp,%rbp - 40fd0e: 48 8b 4a 58 mov 0x58(%rdx),%rcx - 40fd12: 48 89 4a 60 mov %rcx,0x60(%rdx) - 40fd16: 48 8b 7b 08 mov 0x8(%rbx),%rdi - 40fd1a: 48 8b 4b 10 mov 0x10(%rbx),%rcx - 40fd1e: 48 89 7b 18 mov %rdi,0x18(%rbx) - 40fd22: 0f 85 38 01 00 00 jne 40fe60 <_IO_wfile_underflow+0x300> - 40fd28: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 40fd2f: 48 8d 50 08 lea 0x8(%rax),%rdx - 40fd33: 48 8d 70 58 lea 0x58(%rax),%rsi - 40fd37: 52 push %rdx - 40fd38: ff 70 38 pushq 0x38(%rax) - 40fd3b: 48 89 fa mov %rdi,%rdx - 40fd3e: 4c 8b 48 08 mov 0x8(%rax),%r9 - 40fd42: 4c 89 e7 mov %r12,%rdi - 40fd45: 4c 8d 44 24 18 lea 0x18(%rsp),%r8 - 40fd4a: 41 ff 54 24 18 callq *0x18(%r12) - 40fd4f: 5a pop %rdx - 40fd50: 59 pop %rcx - 40fd51: 48 8b 4c 24 08 mov 0x8(%rsp),%rcx - 40fd56: 31 ed xor %ebp,%ebp - 40fd58: 48 89 ce mov %rcx,%rsi - 40fd5b: 48 8b 93 a0 00 00 00 mov 0xa0(%rbx),%rdx - 40fd62: 48 89 73 08 mov %rsi,0x8(%rbx) - 40fd66: 48 8b 7a 30 mov 0x30(%rdx),%rdi - 40fd6a: 48 39 7a 08 cmp %rdi,0x8(%rdx) - 40fd6e: 0f 85 74 02 00 00 jne 40ffe8 <_IO_wfile_underflow+0x488> - 40fd74: 83 f8 02 cmp $0x2,%eax - 40fd77: 0f 84 74 01 00 00 je 40fef1 <_IO_wfile_underflow+0x391> - 40fd7d: 83 f8 01 cmp $0x1,%eax - 40fd80: 0f 85 5e 03 00 00 jne 4100e4 <_IO_wfile_underflow+0x584> - 40fd86: 48 85 ed test %rbp,%rbp - 40fd89: 75 3d jne 40fdc8 <_IO_wfile_underflow+0x268> - 40fd8b: 4c 8b 73 18 mov 0x18(%rbx),%r14 - 40fd8f: 4c 39 f6 cmp %r14,%rsi - 40fd92: 0f 87 80 00 00 00 ja 40fe18 <_IO_wfile_underflow+0x2b8> - 40fd98: 48 8b 6b 10 mov 0x10(%rbx),%rbp - 40fd9c: 48 29 f5 sub %rsi,%rbp - 40fd9f: 48 83 fd 0f cmp $0xf,%rbp - 40fda3: 0f 87 48 01 00 00 ja 40fef1 <_IO_wfile_underflow+0x391> - 40fda9: 48 89 ea mov %rbp,%rdx - 40fdac: 4c 89 ef mov %r13,%rdi - 40fdaf: e8 6c c2 01 00 callq 42c020 - 40fdb4: 4c 89 73 10 mov %r14,0x10(%rbx) - 40fdb8: 4c 89 73 08 mov %r14,0x8(%rbx) - 40fdbc: e9 07 ff ff ff jmpq 40fcc8 <_IO_wfile_underflow+0x168> - 40fdc1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40fdc8: 48 89 c8 mov %rcx,%rax - 40fdcb: 4c 29 e8 sub %r13,%rax - 40fdce: 75 78 jne 40fe48 <_IO_wfile_underflow+0x2e8> - 40fdd0: 48 83 fd 10 cmp $0x10,%rbp - 40fdd4: 0f 84 17 01 00 00 je 40fef1 <_IO_wfile_underflow+0x391> - 40fdda: 4c 8b 73 18 mov 0x18(%rbx),%r14 - 40fdde: eb d4 jmp 40fdb4 <_IO_wfile_underflow+0x254> - 40fde0: 0f 85 da 01 00 00 jne 40ffc0 <_IO_wfile_underflow+0x460> - 40fde6: 48 85 ed test %rbp,%rbp - 40fde9: 0f 85 d1 01 00 00 jne 40ffc0 <_IO_wfile_underflow+0x460> - 40fdef: 8b 03 mov (%rbx),%eax - 40fdf1: 48 c7 83 90 00 00 00 movq $0xffffffffffffffff,0x90(%rbx) - 40fdf8: ff ff ff ff - 40fdfc: 83 c8 10 or $0x10,%eax - 40fdff: 89 03 mov %eax,(%rbx) - 40fe01: b8 ff ff ff ff mov $0xffffffff,%eax - 40fe06: 48 83 c4 28 add $0x28,%rsp - 40fe0a: 5b pop %rbx - 40fe0b: 5d pop %rbp - 40fe0c: 41 5c pop %r12 - 40fe0e: 41 5d pop %r13 - 40fe10: 41 5e pop %r14 - 40fe12: 41 5f pop %r15 - 40fe14: c3 retq - 40fe15: 0f 1f 00 nopl (%rax) - 40fe18: 4c 8b 7b 10 mov 0x10(%rbx),%r15 - 40fe1c: 4c 89 f7 mov %r14,%rdi - 40fe1f: 49 29 f7 sub %rsi,%r15 - 40fe22: 4c 89 fa mov %r15,%rdx - 40fe25: e8 d6 04 ff ff callq 400300 <__rela_iplt_end+0x38> - 40fe2a: 4c 8b 73 10 mov 0x10(%rbx),%r14 - 40fe2e: 48 8b 43 18 mov 0x18(%rbx),%rax - 40fe32: 4d 29 fe sub %r15,%r14 - 40fe35: 48 89 43 08 mov %rax,0x8(%rbx) - 40fe39: 4c 89 73 10 mov %r14,0x10(%rbx) - 40fe3d: e9 86 fe ff ff jmpq 40fcc8 <_IO_wfile_underflow+0x168> - 40fe42: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 40fe48: 48 29 c5 sub %rax,%rbp - 40fe4b: 48 89 ce mov %rcx,%rsi - 40fe4e: 4c 89 ef mov %r13,%rdi - 40fe51: 48 89 ea mov %rbp,%rdx - 40fe54: e8 a7 04 ff ff callq 400300 <__rela_iplt_end+0x38> - 40fe59: e9 72 ff ff ff jmpq 40fdd0 <_IO_wfile_underflow+0x270> - 40fe5e: 66 90 xchg %ax,%ax - 40fe60: 41 b8 10 00 00 00 mov $0x10,%r8d - 40fe66: 4d 8d 74 2d 00 lea 0x0(%r13,%rbp,1),%r14 - 40fe6b: 48 89 fe mov %rdi,%rsi - 40fe6e: 49 29 e8 sub %rbp,%r8 - 40fe71: 49 39 c0 cmp %rax,%r8 - 40fe74: 4c 89 f7 mov %r14,%rdi - 40fe77: 49 0f 46 c0 cmovbe %r8,%rax - 40fe7b: 48 89 c2 mov %rax,%rdx - 40fe7e: 49 89 c7 mov %rax,%r15 - 40fe81: e8 3a 67 01 00 callq 4265c0 <__mempcpy> - 40fe86: 48 8b 93 a0 00 00 00 mov 0xa0(%rbx),%rdx - 40fe8d: 4c 01 fd add %r15,%rbp - 40fe90: 4c 89 e7 mov %r12,%rdi - 40fe93: 48 8d 4a 08 lea 0x8(%rdx),%rcx - 40fe97: 48 8d 72 58 lea 0x58(%rdx),%rsi - 40fe9b: 51 push %rcx - 40fe9c: ff 72 38 pushq 0x38(%rdx) - 40fe9f: 48 89 c1 mov %rax,%rcx - 40fea2: 4c 8b 4a 08 mov 0x8(%rdx),%r9 - 40fea6: 4c 89 ea mov %r13,%rdx - 40fea9: 4c 8d 44 24 18 lea 0x18(%rsp),%r8 - 40feae: 41 ff 54 24 18 callq *0x18(%r12) - 40feb3: 48 85 ed test %rbp,%rbp - 40feb6: 5e pop %rsi - 40feb7: 5f pop %rdi - 40feb8: 0f 84 93 fe ff ff je 40fd51 <_IO_wfile_underflow+0x1f1> - 40febe: 48 8b 4c 24 08 mov 0x8(%rsp),%rcx - 40fec3: be 00 00 00 00 mov $0x0,%esi - 40fec8: 48 89 ca mov %rcx,%rdx - 40fecb: 4c 29 f2 sub %r14,%rdx - 40fece: 48 0f 48 d6 cmovs %rsi,%rdx - 40fed2: 48 89 d6 mov %rdx,%rsi - 40fed5: 48 03 73 08 add 0x8(%rbx),%rsi - 40fed9: e9 7d fe ff ff jmpq 40fd5b <_IO_wfile_underflow+0x1fb> - 40fede: 66 90 xchg %ax,%ax - 40fee0: 8b 02 mov (%rdx),%eax - 40fee2: c3 retq - 40fee3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 40fee8: 83 f8 02 cmp $0x2,%eax - 40feeb: 0f 85 88 01 00 00 jne 410079 <_IO_wfile_underflow+0x519> - 40fef1: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 40fef8: 64 c7 00 54 00 00 00 movl $0x54,%fs:(%rax) - 40feff: 83 0b 20 orl $0x20,(%rbx) - 40ff02: 48 83 c4 28 add $0x28,%rsp - 40ff06: 5b pop %rbx - 40ff07: b8 ff ff ff ff mov $0xffffffff,%eax - 40ff0c: 5d pop %rbp - 40ff0d: 41 5c pop %r12 - 40ff0f: 41 5d pop %r13 - 40ff11: 41 5e pop %r14 - 40ff13: 41 5f pop %r15 - 40ff15: c3 retq - 40ff16: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 40ff1d: 00 00 00 - 40ff20: 48 89 54 24 10 mov %rdx,0x10(%rsp) - 40ff25: 48 8b 50 58 mov 0x58(%rax),%rdx - 40ff29: 48 89 50 60 mov %rdx,0x60(%rax) - 40ff2d: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax - 40ff34: 48 8b 4f 10 mov 0x10(%rdi),%rcx - 40ff38: 48 8b 57 08 mov 0x8(%rdi),%rdx - 40ff3c: 4c 8b 48 30 mov 0x30(%rax),%r9 - 40ff40: 48 8d 78 08 lea 0x8(%rax),%rdi - 40ff44: 48 8d 70 58 lea 0x58(%rax),%rsi - 40ff48: 4c 89 08 mov %r9,(%rax) - 40ff4b: 4c 89 48 10 mov %r9,0x10(%rax) - 40ff4f: 57 push %rdi - 40ff50: ff 70 38 pushq 0x38(%rax) - 40ff53: 4c 89 e7 mov %r12,%rdi - 40ff56: 4c 8d 44 24 20 lea 0x20(%rsp),%r8 - 40ff5b: 41 ff 54 24 18 callq *0x18(%r12) - 40ff60: 48 8b 53 08 mov 0x8(%rbx),%rdx - 40ff64: 48 8b 74 24 20 mov 0x20(%rsp),%rsi - 40ff69: 48 89 53 18 mov %rdx,0x18(%rbx) - 40ff6d: 48 8b 93 a0 00 00 00 mov 0xa0(%rbx),%rdx - 40ff74: 48 89 73 08 mov %rsi,0x8(%rbx) - 40ff78: 41 58 pop %r8 - 40ff7a: 48 8b 0a mov (%rdx),%rcx - 40ff7d: 48 3b 4a 08 cmp 0x8(%rdx),%rcx - 40ff81: 41 59 pop %r9 - 40ff83: 0f 83 5f ff ff ff jae 40fee8 <_IO_wfile_underflow+0x388> - 40ff89: 8b 01 mov (%rcx),%eax - 40ff8b: e9 76 fe ff ff jmpq 40fe06 <_IO_wfile_underflow+0x2a6> - 40ff90: 81 e2 88 02 00 00 and $0x288,%edx - 40ff96: 81 fa 80 02 00 00 cmp $0x280,%edx - 40ff9c: 0f 85 ee fc ff ff jne 40fc90 <_IO_wfile_underflow+0x130> - 40ffa2: 48 89 ef mov %rbp,%rdi - 40ffa5: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 40ffac: be ff ff ff ff mov $0xffffffff,%esi - 40ffb1: ff 50 18 callq *0x18(%rax) - 40ffb4: e9 bd fc ff ff jmpq 40fc76 <_IO_wfile_underflow+0x116> - 40ffb9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 40ffc0: 83 0b 20 orl $0x20,(%rbx) - 40ffc3: 48 85 ed test %rbp,%rbp - 40ffc6: 0f 84 84 01 00 00 je 410150 <_IO_wfile_underflow+0x5f0> - 40ffcc: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 40ffd3: 64 c7 00 54 00 00 00 movl $0x54,%fs:(%rax) - 40ffda: b8 ff ff ff ff mov $0xffffffff,%eax - 40ffdf: e9 22 fe ff ff jmpq 40fe06 <_IO_wfile_underflow+0x2a6> - 40ffe4: 0f 1f 40 00 nopl 0x0(%rax) - 40ffe8: 48 8b 02 mov (%rdx),%rax - 40ffeb: 8b 00 mov (%rax),%eax - 40ffed: 48 83 c4 28 add $0x28,%rsp - 40fff1: 5b pop %rbx - 40fff2: 5d pop %rbp - 40fff3: 41 5c pop %r12 - 40fff5: 41 5d pop %r13 - 40fff7: 41 5e pop %r14 - 40fff9: 41 5f pop %r15 - 40fffb: c3 retq - 40fffc: 0f 1f 40 00 nopl 0x0(%rax) - 410000: 83 c8 20 or $0x20,%eax - 410003: 89 07 mov %eax,(%rdi) - 410005: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41000c: 64 c7 00 09 00 00 00 movl $0x9,%fs:(%rax) - 410013: b8 ff ff ff ff mov $0xffffffff,%eax - 410018: c3 retq - 410019: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 410020: 48 8b 78 40 mov 0x40(%rax),%rdi - 410024: 48 85 ff test %rdi,%rdi - 410027: 74 0b je 410034 <_IO_wfile_underflow+0x4d4> - 410029: e8 82 dd 00 00 callq 41ddb0 <__cfree> - 41002e: 81 23 ff fe ff ff andl $0xfffffeff,(%rbx) - 410034: 48 89 df mov %rbx,%rdi - 410037: e8 64 46 05 00 callq 4646a0 <_IO_wdoallocbuf> - 41003c: e9 9a fb ff ff jmpq 40fbdb <_IO_wfile_underflow+0x7b> - 410041: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 410048: 48 8b 7b 48 mov 0x48(%rbx),%rdi - 41004c: 48 85 ff test %rdi,%rdi - 41004f: 74 0b je 41005c <_IO_wfile_underflow+0x4fc> - 410051: e8 5a dd 00 00 callq 41ddb0 <__cfree> - 410056: 81 23 ff fe ff ff andl $0xfffffeff,(%rbx) - 41005c: 48 89 df mov %rbx,%rdi - 41005f: e8 9c 4d 00 00 callq 414e00 <_IO_doallocbuf> - 410064: 48 8b 43 38 mov 0x38(%rbx),%rax - 410068: 48 89 43 10 mov %rax,0x10(%rbx) - 41006c: 48 89 43 08 mov %rax,0x8(%rbx) - 410070: 48 89 43 18 mov %rax,0x18(%rbx) - 410074: e9 44 fb ff ff jmpq 40fbbd <_IO_wfile_underflow+0x5d> - 410079: 48 8b 53 10 mov 0x10(%rbx),%rdx - 41007d: 48 8b 7b 38 mov 0x38(%rbx),%rdi - 410081: 48 29 f2 sub %rsi,%rdx - 410084: e8 77 02 ff ff callq 400300 <__rela_iplt_end+0x38> - 410089: 48 8b 43 38 mov 0x38(%rbx),%rax - 41008d: 48 89 c2 mov %rax,%rdx - 410090: 48 2b 53 08 sub 0x8(%rbx),%rdx - 410094: 48 89 43 18 mov %rax,0x18(%rbx) - 410098: 48 01 53 10 add %rdx,0x10(%rbx) - 41009c: 48 89 43 08 mov %rax,0x8(%rbx) - 4100a0: e9 0f fb ff ff jmpq 40fbb4 <_IO_wfile_underflow+0x54> - 4100a5: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) - 4100ac: 00 - 4100ad: 83 3d 08 d1 2b 00 00 cmpl $0x0,0x2bd108(%rip) # 6cd1bc <__libc_multiple_threads> - 4100b4: 74 07 je 4100bd <_IO_wfile_underflow+0x55d> - 4100b6: f0 ff 0a lock decl (%rdx) - 4100b9: 75 06 jne 4100c1 <_IO_wfile_underflow+0x561> - 4100bb: eb 1a jmp 4100d7 <_IO_wfile_underflow+0x577> - 4100bd: ff 0a decl (%rdx) - 4100bf: 74 16 je 4100d7 <_IO_wfile_underflow+0x577> - 4100c1: 48 8d 3a lea (%rdx),%rdi - 4100c4: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4100cb: e8 30 25 03 00 callq 442600 <__lll_unlock_wake_private> - 4100d0: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4100d7: e9 b4 fb ff ff jmpq 40fc90 <_IO_wfile_underflow+0x130> - 4100dc: 48 89 ef mov %rbp,%rdi - 4100df: e9 7b fb ff ff jmpq 40fc5f <_IO_wfile_underflow+0xff> - 4100e4: b9 80 19 4a 00 mov $0x4a1980,%ecx - 4100e9: ba 35 01 00 00 mov $0x135,%edx - 4100ee: be 53 19 4a 00 mov $0x4a1953,%esi - 4100f3: bf 5e 19 4a 00 mov $0x4a195e,%edi - 4100f8: e8 43 16 ff ff callq 401740 <__assert_fail> - 4100fd: f7 45 00 00 80 00 00 testl $0x8000,0x0(%rbp) - 410104: 48 89 c6 mov %rax,%rsi - 410107: 75 3f jne 410148 <_IO_wfile_underflow+0x5e8> - 410109: 48 8b 95 88 00 00 00 mov 0x88(%rbp),%rdx - 410110: 83 6a 04 01 subl $0x1,0x4(%rdx) - 410114: 75 32 jne 410148 <_IO_wfile_underflow+0x5e8> - 410116: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) - 41011d: 00 - 41011e: 83 3d 97 d0 2b 00 00 cmpl $0x0,0x2bd097(%rip) # 6cd1bc <__libc_multiple_threads> - 410125: 74 07 je 41012e <_IO_wfile_underflow+0x5ce> - 410127: f0 ff 0a lock decl (%rdx) - 41012a: 75 06 jne 410132 <_IO_wfile_underflow+0x5d2> - 41012c: eb 1a jmp 410148 <_IO_wfile_underflow+0x5e8> - 41012e: ff 0a decl (%rdx) - 410130: 74 16 je 410148 <_IO_wfile_underflow+0x5e8> - 410132: 48 8d 3a lea (%rdx),%rdi - 410135: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41013c: e8 bf 24 03 00 callq 442600 <__lll_unlock_wake_private> - 410141: 48 81 c4 80 00 00 00 add $0x80,%rsp - 410148: 48 89 f7 mov %rsi,%rdi - 41014b: e8 20 c4 08 00 callq 49c570 <_Unwind_Resume> - 410150: 83 c8 ff or $0xffffffff,%eax - 410153: e9 ae fc ff ff jmpq 40fe06 <_IO_wfile_underflow+0x2a6> - 410158: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41015f: 00 - -0000000000410160 <_IO_wfile_seekoff>: - 410160: 41 57 push %r15 - 410162: 41 56 push %r14 - 410164: 49 89 ff mov %rdi,%r15 - 410167: 41 55 push %r13 - 410169: 41 54 push %r12 - 41016b: 55 push %rbp - 41016c: 53 push %rbx - 41016d: 48 81 ec b8 00 00 00 sub $0xb8,%rsp - 410174: 85 c9 test %ecx,%ecx - 410176: 0f 84 a4 02 00 00 je 410420 <_IO_wfile_seekoff+0x2c0> - 41017c: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax - 410183: 48 89 f3 mov %rsi,%rbx - 410186: 89 d5 mov %edx,%ebp - 410188: 48 8b 70 08 mov 0x8(%rax),%rsi - 41018c: 48 39 70 10 cmp %rsi,0x10(%rax) - 410190: 74 3e je 4101d0 <_IO_wfile_seekoff+0x70> - 410192: 48 8b 48 20 mov 0x20(%rax),%rcx - 410196: 48 8b 50 18 mov 0x18(%rax),%rdx - 41019a: 45 31 e4 xor %r12d,%r12d - 41019d: 48 39 d1 cmp %rdx,%rcx - 4101a0: 76 46 jbe 4101e8 <_IO_wfile_seekoff+0x88> - 4101a2: 4c 89 ff mov %r15,%rdi - 4101a5: e8 f6 45 05 00 callq 4647a0 <_IO_switch_to_wget_mode> - 4101aa: 85 c0 test %eax,%eax - 4101ac: ba ff ff ff ff mov $0xffffffff,%edx - 4101b1: 0f 84 41 03 00 00 je 4104f8 <_IO_wfile_seekoff+0x398> - 4101b7: 48 81 c4 b8 00 00 00 add $0xb8,%rsp - 4101be: 48 89 d0 mov %rdx,%rax - 4101c1: 5b pop %rbx - 4101c2: 5d pop %rbp - 4101c3: 41 5c pop %r12 - 4101c5: 41 5d pop %r13 - 4101c7: 41 5e pop %r14 - 4101c9: 41 5f pop %r15 - 4101cb: c3 retq - 4101cc: 0f 1f 40 00 nopl 0x0(%rax) - 4101d0: 48 8b 50 18 mov 0x18(%rax),%rdx - 4101d4: 48 8b 48 20 mov 0x20(%rax),%rcx - 4101d8: 48 39 ca cmp %rcx,%rdx - 4101db: 75 bd jne 41019a <_IO_wfile_seekoff+0x3a> - 4101dd: 41 bc 01 00 00 00 mov $0x1,%r12d - 4101e3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4101e8: 41 f7 07 00 08 00 00 testl $0x800,(%r15) - 4101ef: 75 b1 jne 4101a2 <_IO_wfile_seekoff+0x42> - 4101f1: 48 83 78 30 00 cmpq $0x0,0x30(%rax) - 4101f6: 0f 84 b4 03 00 00 je 4105b0 <_IO_wfile_seekoff+0x450> - 4101fc: 83 fd 01 cmp $0x1,%ebp - 4101ff: 0f 84 bb 01 00 00 je 4103c0 <_IO_wfile_seekoff+0x260> - 410205: 83 fd 02 cmp $0x2,%ebp - 410208: 0f 85 c2 00 00 00 jne 4102d0 <_IO_wfile_seekoff+0x170> - 41020e: 49 8b 87 d8 00 00 00 mov 0xd8(%r15),%rax - 410215: 48 8d 74 24 20 lea 0x20(%rsp),%rsi - 41021a: 4c 89 ff mov %r15,%rdi - 41021d: ff 90 90 00 00 00 callq *0x90(%rax) - 410223: 85 c0 test %eax,%eax - 410225: 0f 84 85 00 00 00 je 4102b0 <_IO_wfile_seekoff+0x150> - 41022b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 410230: 4c 89 ff mov %r15,%rdi - 410233: e8 68 61 00 00 callq 4163a0 <_IO_unsave_markers> - 410238: 49 8b 87 d8 00 00 00 mov 0xd8(%r15),%rax - 41023f: 89 ea mov %ebp,%edx - 410241: 48 89 de mov %rbx,%rsi - 410244: 4c 89 ff mov %r15,%rdi - 410247: ff 90 80 00 00 00 callq *0x80(%rax) - 41024d: 48 c7 c2 ff ff ff ff mov $0xffffffffffffffff,%rdx - 410254: 48 39 d0 cmp %rdx,%rax - 410257: 0f 84 5a ff ff ff je 4101b7 <_IO_wfile_seekoff+0x57> - 41025d: 49 8b 57 38 mov 0x38(%r15),%rdx - 410261: 41 83 27 ef andl $0xffffffef,(%r15) - 410265: 49 89 87 90 00 00 00 mov %rax,0x90(%r15) - 41026c: 49 89 57 18 mov %rdx,0x18(%r15) - 410270: 49 89 57 08 mov %rdx,0x8(%r15) - 410274: 49 89 57 10 mov %rdx,0x10(%r15) - 410278: 49 89 57 28 mov %rdx,0x28(%r15) - 41027c: 49 89 57 20 mov %rdx,0x20(%r15) - 410280: 49 89 57 30 mov %rdx,0x30(%r15) - 410284: 49 8b 97 a0 00 00 00 mov 0xa0(%r15),%rdx - 41028b: 48 8b 4a 30 mov 0x30(%rdx),%rcx - 41028f: 48 89 4a 10 mov %rcx,0x10(%rdx) - 410293: 48 89 0a mov %rcx,(%rdx) - 410296: 48 89 4a 08 mov %rcx,0x8(%rdx) - 41029a: 48 89 4a 20 mov %rcx,0x20(%rdx) - 41029e: 48 89 4a 18 mov %rcx,0x18(%rdx) - 4102a2: 48 89 4a 28 mov %rcx,0x28(%rdx) - 4102a6: 48 89 c2 mov %rax,%rdx - 4102a9: e9 09 ff ff ff jmpq 4101b7 <_IO_wfile_seekoff+0x57> - 4102ae: 66 90 xchg %ax,%ax - 4102b0: 8b 44 24 38 mov 0x38(%rsp),%eax - 4102b4: 25 00 f0 00 00 and $0xf000,%eax - 4102b9: 3d 00 80 00 00 cmp $0x8000,%eax - 4102be: 0f 85 6c ff ff ff jne 410230 <_IO_wfile_seekoff+0xd0> - 4102c4: 48 03 5c 24 50 add 0x50(%rsp),%rbx - 4102c9: 31 ed xor %ebp,%ebp - 4102cb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4102d0: 49 8b 87 90 00 00 00 mov 0x90(%r15),%rax - 4102d7: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 4102db: 0f 84 27 02 00 00 je 410508 <_IO_wfile_seekoff+0x3a8> - 4102e1: 49 83 7f 18 00 cmpq $0x0,0x18(%r15) - 4102e6: 41 8b 17 mov (%r15),%edx - 4102e9: 74 25 je 410310 <_IO_wfile_seekoff+0x1b0> - 4102eb: f6 c6 01 test $0x1,%dh - 4102ee: 75 20 jne 410310 <_IO_wfile_seekoff+0x1b0> - 4102f0: 49 8b 4f 38 mov 0x38(%r15),%rcx - 4102f4: 48 89 ce mov %rcx,%rsi - 4102f7: 49 2b 77 10 sub 0x10(%r15),%rsi - 4102fb: 48 01 c6 add %rax,%rsi - 4102fe: 48 39 de cmp %rbx,%rsi - 410301: 7f 0d jg 410310 <_IO_wfile_seekoff+0x1b0> - 410303: 48 39 c3 cmp %rax,%rbx - 410306: 0f 8c ac 03 00 00 jl 4106b8 <_IO_wfile_seekoff+0x558> - 41030c: 0f 1f 40 00 nopl 0x0(%rax) - 410310: 83 e2 04 and $0x4,%edx - 410313: 0f 85 17 ff ff ff jne 410230 <_IO_wfile_seekoff+0xd0> - 410319: 49 8b 57 38 mov 0x38(%r15),%rdx - 41031d: 49 8b 47 40 mov 0x40(%r15),%rax - 410321: 49 89 dd mov %rbx,%r13 - 410324: 48 89 d6 mov %rdx,%rsi - 410327: 48 29 c6 sub %rax,%rsi - 41032a: 48 29 d0 sub %rdx,%rax - 41032d: ba 00 00 00 00 mov $0x0,%edx - 410332: 48 21 de and %rbx,%rsi - 410335: 49 29 f5 sub %rsi,%r13 - 410338: 49 39 c5 cmp %rax,%r13 - 41033b: 49 8b 87 d8 00 00 00 mov 0xd8(%r15),%rax - 410342: 0f 8f d8 01 00 00 jg 410520 <_IO_wfile_seekoff+0x3c0> - 410348: 4c 89 ff mov %r15,%rdi - 41034b: ff 90 80 00 00 00 callq *0x80(%rax) - 410351: 48 85 c0 test %rax,%rax - 410354: 49 89 c6 mov %rax,%r14 - 410357: 0f 88 8b 01 00 00 js 4104e8 <_IO_wfile_seekoff+0x388> - 41035d: 4d 85 ed test %r13,%r13 - 410360: 0f 84 ce 01 00 00 je 410534 <_IO_wfile_seekoff+0x3d4> - 410366: 49 8b 87 d8 00 00 00 mov 0xd8(%r15),%rax - 41036d: 45 85 e4 test %r12d,%r12d - 410370: 49 8b 77 38 mov 0x38(%r15),%rsi - 410374: 4c 89 ea mov %r13,%rdx - 410377: 48 8b 40 70 mov 0x70(%rax),%rax - 41037b: 75 07 jne 410384 <_IO_wfile_seekoff+0x224> - 41037d: 49 8b 57 40 mov 0x40(%r15),%rdx - 410381: 48 29 f2 sub %rsi,%rdx - 410384: 4c 89 ff mov %r15,%rdi - 410387: ff d0 callq *%rax - 410389: 49 39 c5 cmp %rax,%r13 - 41038c: 49 89 c4 mov %rax,%r12 - 41038f: 48 89 c2 mov %rax,%rdx - 410392: 0f 8e a4 01 00 00 jle 41053c <_IO_wfile_seekoff+0x3dc> - 410398: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 41039c: 4c 89 eb mov %r13,%rbx - 41039f: bd 01 00 00 00 mov $0x1,%ebp - 4103a4: 0f 84 86 fe ff ff je 410230 <_IO_wfile_seekoff+0xd0> - 4103aa: 48 29 c3 sub %rax,%rbx - 4103ad: bd 01 00 00 00 mov $0x1,%ebp - 4103b2: e9 79 fe ff ff jmpq 410230 <_IO_wfile_seekoff+0xd0> - 4103b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4103be: 00 00 - 4103c0: 4d 8b af 98 00 00 00 mov 0x98(%r15),%r13 - 4103c7: 4c 89 ef mov %r13,%rdi - 4103ca: 41 ff 55 20 callq *0x20(%r13) - 4103ce: 85 c0 test %eax,%eax - 4103d0: 0f 8e 6a 03 00 00 jle 410740 <_IO_wfile_seekoff+0x5e0> - 4103d6: 49 8b 8f a0 00 00 00 mov 0xa0(%r15),%rcx - 4103dd: 48 98 cltq - 4103df: 48 8b 51 08 mov 0x8(%rcx),%rdx - 4103e3: 48 2b 11 sub (%rcx),%rdx - 4103e6: 48 c1 fa 02 sar $0x2,%rdx - 4103ea: 48 0f af c2 imul %rdx,%rax - 4103ee: 48 29 c3 sub %rax,%rbx - 4103f1: 49 8b 47 10 mov 0x10(%r15),%rax - 4103f5: 49 2b 47 08 sub 0x8(%r15),%rax - 4103f9: 48 29 c3 sub %rax,%rbx - 4103fc: 49 8b 87 90 00 00 00 mov 0x90(%r15),%rax - 410403: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 410407: 0f 84 23 fe ff ff je 410230 <_IO_wfile_seekoff+0xd0> - 41040d: 48 01 c3 add %rax,%rbx - 410410: 31 ed xor %ebp,%ebp - 410412: e9 ca fe ff ff jmpq 4102e1 <_IO_wfile_seekoff+0x181> - 410417: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 41041e: 00 00 - 410420: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax - 410427: 48 83 78 30 00 cmpq $0x0,0x30(%rax) - 41042c: 0f 84 06 03 00 00 je 410738 <_IO_wfile_seekoff+0x5d8> - 410432: 8b 17 mov (%rdi),%edx - 410434: 4c 8b 60 20 mov 0x20(%rax),%r12 - 410438: 48 8b 68 18 mov 0x18(%rax),%rbp - 41043c: 41 89 d5 mov %edx,%r13d - 41043f: 41 81 e5 00 10 00 00 and $0x1000,%r13d - 410446: 49 39 ec cmp %rbp,%r12 - 410449: 76 09 jbe 410454 <_IO_wfile_seekoff+0x2f4> - 41044b: 45 85 ed test %r13d,%r13d - 41044e: 0f 85 1c 02 00 00 jne 410670 <_IO_wfile_seekoff+0x510> - 410454: 80 e6 01 and $0x1,%dh - 410457: 0f 84 b3 01 00 00 je 410610 <_IO_wfile_seekoff+0x4b0> - 41045d: 48 8b 78 08 mov 0x8(%rax),%rdi - 410461: 48 39 38 cmp %rdi,(%rax) - 410464: 72 6e jb 4104d4 <_IO_wfile_seekoff+0x374> - 410466: 4c 8b 70 40 mov 0x40(%rax),%r14 - 41046a: 48 8b 40 50 mov 0x50(%rax),%rax - 41046e: 4c 89 74 24 08 mov %r14,0x8(%rsp) - 410473: 48 89 04 24 mov %rax,(%rsp) - 410477: 49 8b 9f 98 00 00 00 mov 0x98(%r15),%rbx - 41047e: 48 89 df mov %rbx,%rdi - 410481: ff 53 20 callq *0x20(%rbx) - 410484: 49 39 ec cmp %rbp,%r12 - 410487: 0f 87 a3 01 00 00 ja 410630 <_IO_wfile_seekoff+0x4d0> - 41048d: 85 c0 test %eax,%eax - 41048f: 0f 8e 3b 03 00 00 jle 4107d0 <_IO_wfile_seekoff+0x670> - 410495: 48 8b 14 24 mov (%rsp),%rdx - 410499: 48 98 cltq - 41049b: 4c 29 f2 sub %r14,%rdx - 41049e: 48 c1 fa 02 sar $0x2,%rdx - 4104a2: 48 0f af d0 imul %rax,%rdx - 4104a6: 49 8b 47 10 mov 0x10(%r15),%rax - 4104aa: 49 2b 47 08 sub 0x8(%r15),%rax - 4104ae: 48 f7 da neg %rdx - 4104b1: 48 89 d3 mov %rdx,%rbx - 4104b4: 48 29 c3 sub %rax,%rbx - 4104b7: 49 8b 87 90 00 00 00 mov 0x90(%r15),%rax - 4104be: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 4104c2: 0f 84 e0 02 00 00 je 4107a8 <_IO_wfile_seekoff+0x648> - 4104c8: 48 01 c3 add %rax,%rbx - 4104cb: 48 89 da mov %rbx,%rdx - 4104ce: 0f 89 e3 fc ff ff jns 4101b7 <_IO_wfile_seekoff+0x57> - 4104d4: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 4104db: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) - 4104e2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4104e8: 48 c7 c2 ff ff ff ff mov $0xffffffffffffffff,%rdx - 4104ef: e9 c3 fc ff ff jmpq 4101b7 <_IO_wfile_seekoff+0x57> - 4104f4: 0f 1f 40 00 nopl 0x0(%rax) - 4104f8: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax - 4104ff: e9 ed fc ff ff jmpq 4101f1 <_IO_wfile_seekoff+0x91> - 410504: 0f 1f 40 00 nopl 0x0(%rax) - 410508: 41 8b 17 mov (%r15),%edx - 41050b: 83 e2 04 and $0x4,%edx - 41050e: 0f 85 1c fd ff ff jne 410230 <_IO_wfile_seekoff+0xd0> - 410514: e9 00 fe ff ff jmpq 410319 <_IO_wfile_seekoff+0x1b9> - 410519: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 410520: 48 89 de mov %rbx,%rsi - 410523: 4c 89 ff mov %r15,%rdi - 410526: ff 90 80 00 00 00 callq *0x80(%rax) - 41052c: 48 85 c0 test %rax,%rax - 41052f: 49 89 c6 mov %rax,%r14 - 410532: 78 b4 js 4104e8 <_IO_wfile_seekoff+0x388> - 410534: 31 d2 xor %edx,%edx - 410536: 45 31 ed xor %r13d,%r13d - 410539: 45 31 e4 xor %r12d,%r12d - 41053c: 49 8b 47 38 mov 0x38(%r15),%rax - 410540: be 01 00 00 00 mov $0x1,%esi - 410545: 4c 89 ff mov %r15,%rdi - 410548: 49 89 47 18 mov %rax,0x18(%r15) - 41054c: 49 89 47 28 mov %rax,0x28(%r15) - 410550: 48 01 c2 add %rax,%rdx - 410553: 49 89 47 20 mov %rax,0x20(%r15) - 410557: 49 89 47 30 mov %rax,0x30(%r15) - 41055b: 49 01 c5 add %rax,%r13 - 41055e: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax - 410565: 49 89 57 10 mov %rdx,0x10(%r15) - 410569: 4d 89 6f 08 mov %r13,0x8(%r15) - 41056d: 48 8b 50 30 mov 0x30(%rax),%rdx - 410571: 48 89 50 10 mov %rdx,0x10(%rax) - 410575: 48 89 10 mov %rdx,(%rax) - 410578: 48 89 50 08 mov %rdx,0x8(%rax) - 41057c: 48 89 50 20 mov %rdx,0x20(%rax) - 410580: 48 89 50 18 mov %rdx,0x18(%rax) - 410584: 48 89 50 28 mov %rdx,0x28(%rax) - 410588: e8 03 f5 ff ff callq 40fa90 - 41058d: 85 c0 test %eax,%eax - 41058f: 0f 85 9b fc ff ff jne 410230 <_IO_wfile_seekoff+0xd0> - 410595: 4d 01 e6 add %r12,%r14 - 410598: 41 83 27 ef andl $0xffffffef,(%r15) - 41059c: 48 89 da mov %rbx,%rdx - 41059f: 4d 89 b7 90 00 00 00 mov %r14,0x90(%r15) - 4105a6: e9 0c fc ff ff jmpq 4101b7 <_IO_wfile_seekoff+0x57> - 4105ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4105b0: 48 8b 78 10 mov 0x10(%rax),%rdi - 4105b4: 48 85 ff test %rdi,%rdi - 4105b7: 74 0c je 4105c5 <_IO_wfile_seekoff+0x465> - 4105b9: e8 f2 d7 00 00 callq 41ddb0 <__cfree> - 4105be: 41 81 27 ff fe ff ff andl $0xfffffeff,(%r15) - 4105c5: 4c 89 ff mov %r15,%rdi - 4105c8: e8 33 48 00 00 callq 414e00 <_IO_doallocbuf> - 4105cd: 49 8b 47 38 mov 0x38(%r15),%rax - 4105d1: 49 89 47 28 mov %rax,0x28(%r15) - 4105d5: 49 89 47 20 mov %rax,0x20(%r15) - 4105d9: 49 89 47 30 mov %rax,0x30(%r15) - 4105dd: 49 89 47 18 mov %rax,0x18(%r15) - 4105e1: 49 89 47 08 mov %rax,0x8(%r15) - 4105e5: 49 89 47 10 mov %rax,0x10(%r15) - 4105e9: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax - 4105f0: 48 8b 50 30 mov 0x30(%rax),%rdx - 4105f4: 48 89 50 20 mov %rdx,0x20(%rax) - 4105f8: 48 89 50 18 mov %rdx,0x18(%rax) - 4105fc: 48 89 50 28 mov %rdx,0x28(%rax) - 410600: 48 89 50 10 mov %rdx,0x10(%rax) - 410604: 48 89 10 mov %rdx,(%rax) - 410607: 48 89 50 08 mov %rdx,0x8(%rax) - 41060b: e9 ec fb ff ff jmpq 4101fc <_IO_wfile_seekoff+0x9c> - 410610: 48 8b 78 10 mov 0x10(%rax),%rdi - 410614: 4c 8b 30 mov (%rax),%r14 - 410617: 48 8b 40 08 mov 0x8(%rax),%rax - 41061b: 48 89 7c 24 08 mov %rdi,0x8(%rsp) - 410620: 48 89 04 24 mov %rax,(%rsp) - 410624: e9 4e fe ff ff jmpq 410477 <_IO_wfile_seekoff+0x317> - 410629: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 410630: 85 c0 test %eax,%eax - 410632: 0f 8e e0 01 00 00 jle 410818 <_IO_wfile_seekoff+0x6b8> - 410638: 49 8b 97 a0 00 00 00 mov 0xa0(%r15),%rdx - 41063f: 48 98 cltq - 410641: 48 8b 5a 20 mov 0x20(%rdx),%rbx - 410645: 48 2b 5a 18 sub 0x18(%rdx),%rbx - 410649: 48 c1 fb 02 sar $0x2,%rbx - 41064d: 48 0f af d8 imul %rax,%rbx - 410651: 48 89 dd mov %rbx,%rbp - 410654: 45 85 ed test %r13d,%r13d - 410657: 49 8b 57 28 mov 0x28(%r15),%rdx - 41065b: 74 4b je 4106a8 <_IO_wfile_seekoff+0x548> - 41065d: 49 2b 57 20 sub 0x20(%r15),%rdx - 410661: 48 8d 1c 2a lea (%rdx,%rbp,1),%rbx - 410665: e9 4d fe ff ff jmpq 4104b7 <_IO_wfile_seekoff+0x357> - 41066a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 410670: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 410677: 31 f6 xor %esi,%esi - 410679: ba 02 00 00 00 mov $0x2,%edx - 41067e: ff 90 80 00 00 00 callq *0x80(%rax) - 410684: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 410688: 0f 84 5a fe ff ff je 4104e8 <_IO_wfile_seekoff+0x388> - 41068e: 49 89 87 90 00 00 00 mov %rax,0x90(%r15) - 410695: 41 8b 17 mov (%r15),%edx - 410698: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax - 41069f: e9 b0 fd ff ff jmpq 410454 <_IO_wfile_seekoff+0x2f4> - 4106a4: 0f 1f 40 00 nopl 0x0(%rax) - 4106a8: 49 2b 57 10 sub 0x10(%r15),%rdx - 4106ac: 48 8d 1c 2a lea (%rdx,%rbp,1),%rbx - 4106b0: e9 02 fe ff ff jmpq 4104b7 <_IO_wfile_seekoff+0x357> - 4106b5: 0f 1f 00 nopl (%rax) - 4106b8: 48 89 d8 mov %rbx,%rax - 4106bb: 49 89 4f 18 mov %rcx,0x18(%r15) - 4106bf: 49 89 4f 28 mov %rcx,0x28(%r15) - 4106c3: 48 29 f0 sub %rsi,%rax - 4106c6: 49 89 4f 20 mov %rcx,0x20(%r15) - 4106ca: 49 89 4f 30 mov %rcx,0x30(%r15) - 4106ce: 48 01 c8 add %rcx,%rax - 4106d1: 31 f6 xor %esi,%esi - 4106d3: 4c 89 ff mov %r15,%rdi - 4106d6: 49 89 47 08 mov %rax,0x8(%r15) - 4106da: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax - 4106e1: 48 8b 50 30 mov 0x30(%rax),%rdx - 4106e5: 48 89 50 10 mov %rdx,0x10(%rax) - 4106e9: 48 89 10 mov %rdx,(%rax) - 4106ec: 48 89 50 08 mov %rdx,0x8(%rax) - 4106f0: 48 89 50 20 mov %rdx,0x20(%rax) - 4106f4: 48 89 50 18 mov %rdx,0x18(%rax) - 4106f8: 48 89 50 28 mov %rdx,0x28(%rax) - 4106fc: e8 8f f3 ff ff callq 40fa90 - 410701: 85 c0 test %eax,%eax - 410703: 0f 85 27 fb ff ff jne 410230 <_IO_wfile_seekoff+0xd0> - 410709: 49 8b b7 90 00 00 00 mov 0x90(%r15),%rsi - 410710: 41 83 27 ef andl $0xffffffef,(%r15) - 410714: 48 85 f6 test %rsi,%rsi - 410717: 78 12 js 41072b <_IO_wfile_seekoff+0x5cb> - 410719: 49 8b 87 d8 00 00 00 mov 0xd8(%r15),%rax - 410720: 31 d2 xor %edx,%edx - 410722: 4c 89 ff mov %r15,%rdi - 410725: ff 90 80 00 00 00 callq *0x80(%rax) - 41072b: 48 89 da mov %rbx,%rdx - 41072e: e9 84 fa ff ff jmpq 4101b7 <_IO_wfile_seekoff+0x57> - 410733: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 410738: 31 db xor %ebx,%ebx - 41073a: e9 78 fd ff ff jmpq 4104b7 <_IO_wfile_seekoff+0x357> - 41073f: 90 nop - 410740: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax - 410747: 4c 89 ef mov %r13,%rdi - 41074a: 48 8b 50 60 mov 0x60(%rax),%rdx - 41074e: 4c 8b 00 mov (%rax),%r8 - 410751: 4c 2b 40 10 sub 0x10(%rax),%r8 - 410755: 48 89 50 58 mov %rdx,0x58(%rax) - 410759: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax - 410760: 49 8b 4f 10 mov 0x10(%r15),%rcx - 410764: 49 8b 57 18 mov 0x18(%r15),%rdx - 410768: 49 c1 f8 02 sar $0x2,%r8 - 41076c: 48 8d 70 58 lea 0x58(%rax),%rsi - 410770: 41 ff 55 30 callq *0x30(%r13) - 410774: 49 8b 4f 18 mov 0x18(%r15),%rcx - 410778: 48 63 d0 movslq %eax,%rdx - 41077b: 48 8d 04 11 lea (%rcx,%rdx,1),%rax - 41077f: 49 89 47 08 mov %rax,0x8(%r15) - 410783: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax - 41078a: 48 8b 30 mov (%rax),%rsi - 41078d: 48 89 70 08 mov %rsi,0x8(%rax) - 410791: 49 8b 47 10 mov 0x10(%r15),%rax - 410795: 48 29 c8 sub %rcx,%rax - 410798: 48 29 d0 sub %rdx,%rax - 41079b: 48 29 c3 sub %rax,%rbx - 41079e: e9 59 fc ff ff jmpq 4103fc <_IO_wfile_seekoff+0x29c> - 4107a3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4107a8: 49 8b 87 d8 00 00 00 mov 0xd8(%r15),%rax - 4107af: 31 f6 xor %esi,%esi - 4107b1: ba 01 00 00 00 mov $0x1,%edx - 4107b6: 4c 89 ff mov %r15,%rdi - 4107b9: ff 90 80 00 00 00 callq *0x80(%rax) - 4107bf: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 4107c3: 0f 84 1f fd ff ff je 4104e8 <_IO_wfile_seekoff+0x388> - 4107c9: e9 fa fc ff ff jmpq 4104c8 <_IO_wfile_seekoff+0x368> - 4107ce: 66 90 xchg %ax,%ax - 4107d0: 49 8b 87 a0 00 00 00 mov 0xa0(%r15),%rax - 4107d7: 4d 89 f0 mov %r14,%r8 - 4107da: 4c 2b 44 24 08 sub 0x8(%rsp),%r8 - 4107df: 49 8b 4f 10 mov 0x10(%r15),%rcx - 4107e3: 49 8b 57 18 mov 0x18(%r15),%rdx - 4107e7: 48 89 df mov %rbx,%rdi - 4107ea: 48 8d 74 24 20 lea 0x20(%rsp),%rsi - 4107ef: 48 8b 40 60 mov 0x60(%rax),%rax - 4107f3: 49 c1 f8 02 sar $0x2,%r8 - 4107f7: 48 89 44 24 20 mov %rax,0x20(%rsp) - 4107fc: ff 53 30 callq *0x30(%rbx) - 4107ff: 49 8b 4f 10 mov 0x10(%r15),%rcx - 410803: 49 2b 4f 18 sub 0x18(%r15),%rcx - 410807: 48 63 d0 movslq %eax,%rdx - 41080a: 48 89 d3 mov %rdx,%rbx - 41080d: 48 29 cb sub %rcx,%rbx - 410810: e9 a2 fc ff ff jmpq 4104b7 <_IO_wfile_seekoff+0x357> - 410815: 0f 1f 00 nopl (%rax) - 410818: 4d 8b b7 a0 00 00 00 mov 0xa0(%r15),%r14 - 41081f: 49 8b 4e 20 mov 0x20(%r14),%rcx - 410823: 4d 8b 66 18 mov 0x18(%r14),%r12 - 410827: 48 89 cd mov %rcx,%rbp - 41082a: 48 89 4c 24 08 mov %rcx,0x8(%rsp) - 41082f: 4c 29 e5 sub %r12,%rbp - 410832: 48 89 ef mov %rbp,%rdi - 410835: e8 d6 d1 00 00 callq 41da10 <__libc_malloc> - 41083a: 4c 89 64 24 20 mov %r12,0x20(%rsp) - 41083f: 48 89 44 24 18 mov %rax,0x18(%rsp) - 410844: 49 89 c2 mov %rax,%r10 - 410847: 49 8b 46 60 mov 0x60(%r14),%rax - 41084b: 4c 01 d5 add %r10,%rbp - 41084e: 4d 89 d1 mov %r10,%r9 - 410851: 4c 89 e2 mov %r12,%rdx - 410854: 48 89 df mov %rbx,%rdi - 410857: 48 89 44 24 10 mov %rax,0x10(%rsp) - 41085c: 48 8d 44 24 18 lea 0x18(%rsp),%rax - 410861: 50 push %rax - 410862: 55 push %rbp - 410863: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx - 410868: 4c 89 54 24 10 mov %r10,0x10(%rsp) - 41086d: 4c 8d 44 24 30 lea 0x30(%rsp),%r8 - 410872: 48 8d 74 24 20 lea 0x20(%rsp),%rsi - 410877: ff 53 08 callq *0x8(%rbx) - 41087a: 5a pop %rdx - 41087b: 85 c0 test %eax,%eax - 41087d: 59 pop %rcx - 41087e: 4c 8b 14 24 mov (%rsp),%r10 - 410882: 75 15 jne 410899 <_IO_wfile_seekoff+0x739> - 410884: 48 8b 6c 24 18 mov 0x18(%rsp),%rbp - 410889: 4c 89 d7 mov %r10,%rdi - 41088c: 4c 29 d5 sub %r10,%rbp - 41088f: e8 1c d5 00 00 callq 41ddb0 <__cfree> - 410894: e9 bb fd ff ff jmpq 410654 <_IO_wfile_seekoff+0x4f4> - 410899: 4c 89 d7 mov %r10,%rdi - 41089c: e8 0f d5 00 00 callq 41ddb0 <__cfree> - 4108a1: ba ff ff ff ff mov $0xffffffff,%edx - 4108a6: e9 0c f9 ff ff jmpq 4101b7 <_IO_wfile_seekoff+0x57> - 4108ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -00000000004108b0 <_IO_wfile_underflow_mmap>: - 4108b0: 8b 07 mov (%rdi),%eax - 4108b2: a8 04 test $0x4,%al - 4108b4: 0f 85 f6 00 00 00 jne 4109b0 <_IO_wfile_underflow_mmap+0x100> - 4108ba: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax - 4108c1: 48 8b 10 mov (%rax),%rdx - 4108c4: 48 3b 50 08 cmp 0x8(%rax),%rdx - 4108c8: 0f 82 a2 00 00 00 jb 410970 <_IO_wfile_underflow_mmap+0xc0> - 4108ce: 55 push %rbp - 4108cf: 53 push %rbx - 4108d0: 48 89 fb mov %rdi,%rbx - 4108d3: 48 83 ec 18 sub $0x18,%rsp - 4108d7: 48 8b 57 08 mov 0x8(%rdi),%rdx - 4108db: 48 3b 57 10 cmp 0x10(%rdi),%rdx - 4108df: 48 8b af 98 00 00 00 mov 0x98(%rdi),%rbp - 4108e6: 0f 83 8c 00 00 00 jae 410978 <_IO_wfile_underflow_mmap+0xc8> - 4108ec: 48 83 78 30 00 cmpq $0x0,0x30(%rax) - 4108f1: 48 89 54 24 08 mov %rdx,0x8(%rsp) - 4108f6: 0f 84 d4 00 00 00 je 4109d0 <_IO_wfile_underflow_mmap+0x120> - 4108fc: 48 8b 50 58 mov 0x58(%rax),%rdx - 410900: 48 89 50 60 mov %rdx,0x60(%rax) - 410904: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 41090b: 48 8b 4b 10 mov 0x10(%rbx),%rcx - 41090f: 48 8b 53 08 mov 0x8(%rbx),%rdx - 410913: 4c 8b 48 30 mov 0x30(%rax),%r9 - 410917: 48 8d 78 08 lea 0x8(%rax),%rdi - 41091b: 48 8d 70 58 lea 0x58(%rax),%rsi - 41091f: 4c 89 08 mov %r9,(%rax) - 410922: 4c 89 48 10 mov %r9,0x10(%rax) - 410926: 57 push %rdi - 410927: ff 70 38 pushq 0x38(%rax) - 41092a: 48 89 ef mov %rbp,%rdi - 41092d: 4c 8d 44 24 18 lea 0x18(%rsp),%r8 - 410932: ff 55 18 callq *0x18(%rbp) - 410935: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 41093a: 48 89 43 08 mov %rax,0x8(%rbx) - 41093e: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 410945: 59 pop %rcx - 410946: 5e pop %rsi - 410947: 48 8b 10 mov (%rax),%rdx - 41094a: 48 3b 50 08 cmp 0x8(%rax),%rdx - 41094e: 72 50 jb 4109a0 <_IO_wfile_underflow_mmap+0xf0> - 410950: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 410957: 64 c7 00 54 00 00 00 movl $0x54,%fs:(%rax) - 41095e: 83 0b 20 orl $0x20,(%rbx) - 410961: b8 ff ff ff ff mov $0xffffffff,%eax - 410966: 48 83 c4 18 add $0x18,%rsp - 41096a: 5b pop %rbx - 41096b: 5d pop %rbp - 41096c: c3 retq - 41096d: 0f 1f 00 nopl (%rax) - 410970: 8b 02 mov (%rdx),%eax - 410972: c3 retq - 410973: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 410978: e8 b3 24 00 00 callq 412e30 <_IO_file_underflow_mmap> - 41097d: 89 c2 mov %eax,%edx - 41097f: b8 ff ff ff ff mov $0xffffffff,%eax - 410984: 39 c2 cmp %eax,%edx - 410986: 74 de je 410966 <_IO_wfile_underflow_mmap+0xb6> - 410988: 48 8b 53 08 mov 0x8(%rbx),%rdx - 41098c: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 410993: e9 54 ff ff ff jmpq 4108ec <_IO_wfile_underflow_mmap+0x3c> - 410998: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41099f: 00 - 4109a0: 8b 02 mov (%rdx),%eax - 4109a2: 48 83 c4 18 add $0x18,%rsp - 4109a6: 5b pop %rbx - 4109a7: 5d pop %rbp - 4109a8: c3 retq - 4109a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4109b0: 83 c8 20 or $0x20,%eax - 4109b3: 89 07 mov %eax,(%rdi) - 4109b5: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 4109bc: 64 c7 00 09 00 00 00 movl $0x9,%fs:(%rax) - 4109c3: b8 ff ff ff ff mov $0xffffffff,%eax - 4109c8: c3 retq - 4109c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4109d0: 48 8b 78 40 mov 0x40(%rax),%rdi - 4109d4: 48 85 ff test %rdi,%rdi - 4109d7: 74 0b je 4109e4 <_IO_wfile_underflow_mmap+0x134> - 4109d9: e8 d2 d3 00 00 callq 41ddb0 <__cfree> - 4109de: 81 23 ff fe ff ff andl $0xfffffeff,(%rbx) - 4109e4: 48 89 df mov %rbx,%rdi - 4109e7: e8 b4 3c 05 00 callq 4646a0 <_IO_wdoallocbuf> - 4109ec: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 4109f3: e9 04 ff ff ff jmpq 4108fc <_IO_wfile_underflow_mmap+0x4c> - 4109f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4109ff: 00 - -0000000000410a00 <_IO_wfile_underflow_maybe_mmap>: - 410a00: 53 push %rbx - 410a01: 48 89 fb mov %rdi,%rbx - 410a04: e8 b7 22 00 00 callq 412cc0 <_IO_file_underflow_maybe_mmap> - 410a09: 83 f8 ff cmp $0xffffffff,%eax - 410a0c: 75 02 jne 410a10 <_IO_wfile_underflow_maybe_mmap+0x10> - 410a0e: 5b pop %rbx - 410a0f: c3 retq - 410a10: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 410a17: 48 89 df mov %rbx,%rdi - 410a1a: 5b pop %rbx - 410a1b: 48 8b 80 30 01 00 00 mov 0x130(%rax),%rax - 410a22: 48 8b 40 20 mov 0x20(%rax),%rax - 410a26: ff e0 jmpq *%rax - 410a28: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 410a2f: 00 - -0000000000410a30 <_IO_wdo_write>: - 410a30: 41 57 push %r15 - 410a32: 41 56 push %r14 - 410a34: 41 55 push %r13 - 410a36: 41 54 push %r12 - 410a38: 55 push %rbp - 410a39: 53 push %rbx - 410a3a: 48 89 fb mov %rdi,%rbx - 410a3d: 48 83 ec 38 sub $0x38,%rsp - 410a41: 48 85 d2 test %rdx,%rdx - 410a44: 0f 84 46 01 00 00 je 410b90 <_IO_wdo_write+0x160> - 410a4a: 4c 8b 4f 28 mov 0x28(%rdi),%r9 - 410a4e: 4c 39 4f 30 cmp %r9,0x30(%rdi) - 410a52: 49 89 f7 mov %rsi,%r15 - 410a55: 48 8b 87 98 00 00 00 mov 0x98(%rdi),%rax - 410a5c: 49 89 d4 mov %rdx,%r12 - 410a5f: 48 8b 77 20 mov 0x20(%rdi),%rsi - 410a63: 48 89 44 24 08 mov %rax,0x8(%rsp) - 410a68: 0f 84 5e 01 00 00 je 410bcc <_IO_wdo_write+0x19c> - 410a6e: 48 89 f5 mov %rsi,%rbp - 410a71: e9 a7 00 00 00 jmpq 410b1d <_IO_wdo_write+0xed> - 410a76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 410a7d: 00 00 00 - 410a80: 4c 8d 6c 24 20 lea 0x20(%rsp),%r13 - 410a85: 48 8d 44 24 30 lea 0x30(%rsp),%rax - 410a8a: 4d 89 e9 mov %r13,%r9 - 410a8d: 4c 89 ed mov %r13,%rbp - 410a90: 48 8b bb a0 00 00 00 mov 0xa0(%rbx),%rdi - 410a97: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 410a9c: 4b 8d 0c a7 lea (%r15,%r12,4),%rcx - 410aa0: 4c 89 fa mov %r15,%rdx - 410aa3: 48 8d 77 58 lea 0x58(%rdi),%rsi - 410aa7: 48 8d 7c 24 18 lea 0x18(%rsp),%rdi - 410aac: 57 push %rdi - 410aad: 50 push %rax - 410aae: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 410ab3: 4c 8d 44 24 20 lea 0x20(%rsp),%r8 - 410ab8: 48 89 c7 mov %rax,%rdi - 410abb: ff 50 08 callq *0x8(%rax) - 410abe: 41 89 c6 mov %eax,%r14d - 410ac1: 48 89 ee mov %rbp,%rsi - 410ac4: 48 89 df mov %rbx,%rdi - 410ac7: 58 pop %rax - 410ac8: 5a pop %rdx - 410ac9: 48 8b 54 24 18 mov 0x18(%rsp),%rdx - 410ace: 4c 29 ea sub %r13,%rdx - 410ad1: e8 fa 26 00 00 callq 4131d0 <_IO_new_do_write> - 410ad6: 83 f8 ff cmp $0xffffffff,%eax - 410ad9: 0f 84 99 00 00 00 je 410b78 <_IO_wdo_write+0x148> - 410adf: 48 8b 54 24 10 mov 0x10(%rsp),%rdx - 410ae4: 48 89 d0 mov %rdx,%rax - 410ae7: 4c 29 f8 sub %r15,%rax - 410aea: 48 89 c6 mov %rax,%rsi - 410aed: 48 c1 fe 02 sar $0x2,%rsi - 410af1: 49 29 f4 sub %rsi,%r12 - 410af4: 45 85 f6 test %r14d,%r14d - 410af7: 74 10 je 410b09 <_IO_wdo_write+0xd9> - 410af9: 41 83 fe 01 cmp $0x1,%r14d - 410afd: 75 41 jne 410b40 <_IO_wdo_write+0x110> - 410aff: 48 83 c0 03 add $0x3,%rax - 410b03: 48 83 f8 06 cmp $0x6,%rax - 410b07: 76 37 jbe 410b40 <_IO_wdo_write+0x110> - 410b09: 4d 85 e4 test %r12,%r12 - 410b0c: 0f 84 7e 00 00 00 je 410b90 <_IO_wdo_write+0x160> - 410b12: 4c 8b 4b 28 mov 0x28(%rbx),%r9 - 410b16: 48 8b 6b 20 mov 0x20(%rbx),%rbp - 410b1a: 49 89 d7 mov %rdx,%r15 - 410b1d: 4c 89 c8 mov %r9,%rax - 410b20: 49 89 ed mov %rbp,%r13 - 410b23: 48 29 e8 sub %rbp,%rax - 410b26: 48 83 f8 0f cmp $0xf,%rax - 410b2a: 0f 86 50 ff ff ff jbe 410a80 <_IO_wdo_write+0x50> - 410b30: 48 8b 43 40 mov 0x40(%rbx),%rax - 410b34: e9 57 ff ff ff jmpq 410a90 <_IO_wdo_write+0x60> - 410b39: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 410b40: 48 8b 93 a0 00 00 00 mov 0xa0(%rbx),%rdx - 410b47: 31 c0 xor %eax,%eax - 410b49: 4d 85 e4 test %r12,%r12 - 410b4c: 0f 95 c0 setne %al - 410b4f: f7 d8 neg %eax - 410b51: f7 03 02 02 00 00 testl $0x202,(%rbx) - 410b57: 48 8b 4a 30 mov 0x30(%rdx),%rcx - 410b5b: 48 89 4a 10 mov %rcx,0x10(%rdx) - 410b5f: 48 89 0a mov %rcx,(%rdx) - 410b62: 48 89 4a 08 mov %rcx,0x8(%rdx) - 410b66: 48 89 4a 20 mov %rcx,0x20(%rdx) - 410b6a: 48 89 4a 18 mov %rcx,0x18(%rdx) - 410b6e: 75 04 jne 410b74 <_IO_wdo_write+0x144> - 410b70: 48 8b 4a 38 mov 0x38(%rdx),%rcx - 410b74: 48 89 4a 28 mov %rcx,0x28(%rdx) - 410b78: 48 83 c4 38 add $0x38,%rsp - 410b7c: 5b pop %rbx - 410b7d: 5d pop %rbp - 410b7e: 41 5c pop %r12 - 410b80: 41 5d pop %r13 - 410b82: 41 5e pop %r14 - 410b84: 41 5f pop %r15 - 410b86: c3 retq - 410b87: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 410b8e: 00 00 - 410b90: 48 8b 93 a0 00 00 00 mov 0xa0(%rbx),%rdx - 410b97: 8b 03 mov (%rbx),%eax - 410b99: 48 8b 4a 30 mov 0x30(%rdx),%rcx - 410b9d: 25 02 02 00 00 and $0x202,%eax - 410ba2: 48 89 4a 10 mov %rcx,0x10(%rdx) - 410ba6: 48 89 0a mov %rcx,(%rdx) - 410ba9: 48 89 4a 08 mov %rcx,0x8(%rdx) - 410bad: 48 89 4a 20 mov %rcx,0x20(%rdx) - 410bb1: 48 89 4a 18 mov %rcx,0x18(%rdx) - 410bb5: 74 b9 je 410b70 <_IO_wdo_write+0x140> - 410bb7: 48 89 4a 28 mov %rcx,0x28(%rdx) - 410bbb: 48 83 c4 38 add $0x38,%rsp - 410bbf: 31 c0 xor %eax,%eax - 410bc1: 5b pop %rbx - 410bc2: 5d pop %rbp - 410bc3: 41 5c pop %r12 - 410bc5: 41 5d pop %r13 - 410bc7: 41 5e pop %r14 - 410bc9: 41 5f pop %r15 - 410bcb: c3 retq - 410bcc: 49 39 f1 cmp %rsi,%r9 - 410bcf: 0f 84 99 fe ff ff je 410a6e <_IO_wdo_write+0x3e> - 410bd5: 4c 89 ca mov %r9,%rdx - 410bd8: 48 29 f2 sub %rsi,%rdx - 410bdb: e8 f0 25 00 00 callq 4131d0 <_IO_new_do_write> - 410be0: 83 f8 ff cmp $0xffffffff,%eax - 410be3: 74 93 je 410b78 <_IO_wdo_write+0x148> - 410be5: 4c 8b 4b 28 mov 0x28(%rbx),%r9 - 410be9: 48 8b 73 20 mov 0x20(%rbx),%rsi - 410bed: e9 7c fe ff ff jmpq 410a6e <_IO_wdo_write+0x3e> - 410bf2: 0f 1f 40 00 nopl 0x0(%rax) - 410bf6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 410bfd: 00 00 00 - -0000000000410c00 <_IO_wfile_overflow>: - 410c00: 8b 17 mov (%rdi),%edx - 410c02: f6 c2 08 test $0x8,%dl - 410c05: 74 19 je 410c20 <_IO_wfile_overflow+0x20> - 410c07: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 410c0e: 83 ca 20 or $0x20,%edx - 410c11: 89 17 mov %edx,(%rdi) - 410c13: 64 c7 00 09 00 00 00 movl $0x9,%fs:(%rax) - 410c1a: b8 ff ff ff ff mov $0xffffffff,%eax - 410c1f: c3 retq - 410c20: 55 push %rbp - 410c21: 53 push %rbx - 410c22: 89 f5 mov %esi,%ebp - 410c24: 48 89 fb mov %rdi,%rbx - 410c27: 48 83 ec 08 sub $0x8,%rsp - 410c2b: f6 c6 08 test $0x8,%dh - 410c2e: 75 6f jne 410c9f <_IO_wfile_overflow+0x9f> - 410c30: 48 8b 8f a0 00 00 00 mov 0xa0(%rdi),%rcx - 410c37: 48 83 79 18 00 cmpq $0x0,0x18(%rcx) - 410c3c: 0f 84 be 01 00 00 je 410e00 <_IO_wfile_overflow+0x200> - 410c42: 48 8b 01 mov (%rcx),%rax - 410c45: 48 8b 71 38 mov 0x38(%rcx),%rsi - 410c49: 48 39 f0 cmp %rsi,%rax - 410c4c: 0f 84 8e 01 00 00 je 410de0 <_IO_wfile_overflow+0x1e0> - 410c52: 48 89 71 28 mov %rsi,0x28(%rcx) - 410c56: 48 8b 71 08 mov 0x8(%rcx),%rsi - 410c5a: 48 89 41 20 mov %rax,0x20(%rcx) - 410c5e: 48 89 41 18 mov %rax,0x18(%rcx) - 410c62: 48 89 31 mov %rsi,(%rcx) - 410c65: 48 89 71 10 mov %rsi,0x10(%rcx) - 410c69: 48 8b 73 08 mov 0x8(%rbx),%rsi - 410c6d: 48 89 73 28 mov %rsi,0x28(%rbx) - 410c71: 48 89 73 20 mov %rsi,0x20(%rbx) - 410c75: 48 8b 73 40 mov 0x40(%rbx),%rsi - 410c79: 48 89 73 30 mov %rsi,0x30(%rbx) - 410c7d: 48 8b 73 10 mov 0x10(%rbx),%rsi - 410c81: 48 89 73 08 mov %rsi,0x8(%rbx) - 410c85: 48 89 73 18 mov %rsi,0x18(%rbx) - 410c89: 89 d6 mov %edx,%esi - 410c8b: 81 ce 00 08 00 00 or $0x800,%esi - 410c91: 81 e2 02 02 00 00 and $0x202,%edx - 410c97: 89 33 mov %esi,(%rbx) - 410c99: 74 04 je 410c9f <_IO_wfile_overflow+0x9f> - 410c9b: 48 89 41 28 mov %rax,0x28(%rcx) - 410c9f: 83 fd ff cmp $0xffffffff,%ebp - 410ca2: 74 7c je 410d20 <_IO_wfile_overflow+0x120> - 410ca4: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 410cab: 48 8b 48 20 mov 0x20(%rax),%rcx - 410caf: 48 3b 48 38 cmp 0x38(%rax),%rcx - 410cb3: 0f 84 9f 00 00 00 je 410d58 <_IO_wfile_overflow+0x158> - 410cb9: 48 8d 51 04 lea 0x4(%rcx),%rdx - 410cbd: 48 89 50 20 mov %rdx,0x20(%rax) - 410cc1: 89 29 mov %ebp,(%rcx) - 410cc3: 8b 0b mov (%rbx),%ecx - 410cc5: f6 c1 02 test $0x2,%cl - 410cc8: 74 3e je 410d08 <_IO_wfile_overflow+0x108> - 410cca: 8b 8b c0 00 00 00 mov 0xc0(%rbx),%ecx - 410cd0: 85 c9 test %ecx,%ecx - 410cd2: 0f 8e c8 00 00 00 jle 410da0 <_IO_wfile_overflow+0x1a0> - 410cd8: 48 8b 70 18 mov 0x18(%rax),%rsi - 410cdc: 48 89 df mov %rbx,%rdi - 410cdf: 48 29 f2 sub %rsi,%rdx - 410ce2: 48 c1 fa 02 sar $0x2,%rdx - 410ce6: e8 45 fd ff ff callq 410a30 <_IO_wdo_write> - 410ceb: 83 f8 ff cmp $0xffffffff,%eax - 410cee: 0f 94 c0 sete %al - 410cf1: 84 c0 test %al,%al - 410cf3: 74 1d je 410d12 <_IO_wfile_overflow+0x112> - 410cf5: 48 83 c4 08 add $0x8,%rsp - 410cf9: b8 ff ff ff ff mov $0xffffffff,%eax - 410cfe: 5b pop %rbx - 410cff: 5d pop %rbp - 410d00: c3 retq - 410d01: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 410d08: 80 e5 02 and $0x2,%ch - 410d0b: 74 05 je 410d12 <_IO_wfile_overflow+0x112> - 410d0d: 83 fd 0a cmp $0xa,%ebp - 410d10: 74 b8 je 410cca <_IO_wfile_overflow+0xca> - 410d12: 48 83 c4 08 add $0x8,%rsp - 410d16: 89 e8 mov %ebp,%eax - 410d18: 5b pop %rbx - 410d19: 5d pop %rbp - 410d1a: c3 retq - 410d1b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 410d20: 8b bb c0 00 00 00 mov 0xc0(%rbx),%edi - 410d26: 85 ff test %edi,%edi - 410d28: 0f 8e 92 00 00 00 jle 410dc0 <_IO_wfile_overflow+0x1c0> - 410d2e: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 410d35: 48 89 df mov %rbx,%rdi - 410d38: 48 8b 70 18 mov 0x18(%rax),%rsi - 410d3c: 48 8b 50 20 mov 0x20(%rax),%rdx - 410d40: 48 83 c4 08 add $0x8,%rsp - 410d44: 5b pop %rbx - 410d45: 5d pop %rbp - 410d46: 48 29 f2 sub %rsi,%rdx - 410d49: 48 c1 fa 02 sar $0x2,%rdx - 410d4d: e9 de fc ff ff jmpq 410a30 <_IO_wdo_write> - 410d52: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 410d58: 8b b3 c0 00 00 00 mov 0xc0(%rbx),%esi - 410d5e: 85 f6 test %esi,%esi - 410d60: 0f 8e c7 00 00 00 jle 410e2d <_IO_wfile_overflow+0x22d> - 410d66: 48 8b 70 18 mov 0x18(%rax),%rsi - 410d6a: 48 89 df mov %rbx,%rdi - 410d6d: 48 29 f1 sub %rsi,%rcx - 410d70: 48 89 ca mov %rcx,%rdx - 410d73: 48 c1 fa 02 sar $0x2,%rdx - 410d77: e8 b4 fc ff ff callq 410a30 <_IO_wdo_write> - 410d7c: 83 f8 ff cmp $0xffffffff,%eax - 410d7f: 0f 94 c0 sete %al - 410d82: 84 c0 test %al,%al - 410d84: 0f 85 6b ff ff ff jne 410cf5 <_IO_wfile_overflow+0xf5> - 410d8a: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 410d91: 48 8b 48 20 mov 0x20(%rax),%rcx - 410d95: e9 1f ff ff ff jmpq 410cb9 <_IO_wfile_overflow+0xb9> - 410d9a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 410da0: 48 8b 73 20 mov 0x20(%rbx),%rsi - 410da4: 48 8b 53 28 mov 0x28(%rbx),%rdx - 410da8: 48 89 df mov %rbx,%rdi - 410dab: 48 29 f2 sub %rsi,%rdx - 410dae: e8 1d 24 00 00 callq 4131d0 <_IO_new_do_write> - 410db3: 83 f8 ff cmp $0xffffffff,%eax - 410db6: 0f 94 c0 sete %al - 410db9: e9 33 ff ff ff jmpq 410cf1 <_IO_wfile_overflow+0xf1> - 410dbe: 66 90 xchg %ax,%ax - 410dc0: 48 8b 73 20 mov 0x20(%rbx),%rsi - 410dc4: 48 8b 53 28 mov 0x28(%rbx),%rdx - 410dc8: 48 83 c4 08 add $0x8,%rsp - 410dcc: 48 89 df mov %rbx,%rdi - 410dcf: 5b pop %rbx - 410dd0: 5d pop %rbp - 410dd1: 48 29 f2 sub %rsi,%rdx - 410dd4: e9 f7 23 00 00 jmpq 4131d0 <_IO_new_do_write> - 410dd9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 410de0: 48 8b 47 38 mov 0x38(%rdi),%rax - 410de4: 48 89 47 08 mov %rax,0x8(%rdi) - 410de8: 48 89 47 10 mov %rax,0x10(%rdi) - 410dec: 48 8b 41 30 mov 0x30(%rcx),%rax - 410df0: 48 89 01 mov %rax,(%rcx) - 410df3: 48 89 41 08 mov %rax,0x8(%rcx) - 410df7: e9 56 fe ff ff jmpq 410c52 <_IO_wfile_overflow+0x52> - 410dfc: 0f 1f 40 00 nopl 0x0(%rax) - 410e00: e8 9b 38 05 00 callq 4646a0 <_IO_wdoallocbuf> - 410e05: 48 8b 8b a0 00 00 00 mov 0xa0(%rbx),%rcx - 410e0c: 48 83 7b 20 00 cmpq $0x0,0x20(%rbx) - 410e11: 48 8b 41 30 mov 0x30(%rcx),%rax - 410e15: 48 89 41 10 mov %rax,0x10(%rcx) - 410e19: 48 89 01 mov %rax,(%rcx) - 410e1c: 48 89 41 08 mov %rax,0x8(%rcx) - 410e20: 74 29 je 410e4b <_IO_wfile_overflow+0x24b> - 410e22: 48 8b 71 38 mov 0x38(%rcx),%rsi - 410e26: 8b 13 mov (%rbx),%edx - 410e28: e9 25 fe ff ff jmpq 410c52 <_IO_wfile_overflow+0x52> - 410e2d: 48 8b 73 20 mov 0x20(%rbx),%rsi - 410e31: 48 8b 53 28 mov 0x28(%rbx),%rdx - 410e35: 48 89 df mov %rbx,%rdi - 410e38: 48 29 f2 sub %rsi,%rdx - 410e3b: e8 90 23 00 00 callq 4131d0 <_IO_new_do_write> - 410e40: 83 f8 ff cmp $0xffffffff,%eax - 410e43: 0f 94 c0 sete %al - 410e46: e9 37 ff ff ff jmpq 410d82 <_IO_wfile_overflow+0x182> - 410e4b: 48 89 df mov %rbx,%rdi - 410e4e: e8 ad 3f 00 00 callq 414e00 <_IO_doallocbuf> - 410e53: 48 8b 43 38 mov 0x38(%rbx),%rax - 410e57: 48 8b 8b a0 00 00 00 mov 0xa0(%rbx),%rcx - 410e5e: 48 89 43 08 mov %rax,0x8(%rbx) - 410e62: 48 89 43 10 mov %rax,0x10(%rbx) - 410e66: 48 8b 01 mov (%rcx),%rax - 410e69: eb b7 jmp 410e22 <_IO_wfile_overflow+0x222> - 410e6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -0000000000410e70 <_IO_wfile_sync>: - 410e70: 41 54 push %r12 - 410e72: 55 push %rbp - 410e73: 53 push %rbx - 410e74: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax - 410e7b: 48 89 fb mov %rdi,%rbx - 410e7e: 48 8b 50 20 mov 0x20(%rax),%rdx - 410e82: 48 8b 70 18 mov 0x18(%rax),%rsi - 410e86: 48 39 f2 cmp %rsi,%rdx - 410e89: 76 3c jbe 410ec7 <_IO_wfile_sync+0x57> - 410e8b: 8b 87 c0 00 00 00 mov 0xc0(%rdi),%eax - 410e91: 85 c0 test %eax,%eax - 410e93: 0f 8e a7 00 00 00 jle 410f40 <_IO_wfile_sync+0xd0> - 410e99: 48 29 f2 sub %rsi,%rdx - 410e9c: 48 c1 fa 02 sar $0x2,%rdx - 410ea0: e8 8b fb ff ff callq 410a30 <_IO_wdo_write> - 410ea5: 85 c0 test %eax,%eax - 410ea7: 0f 95 c0 setne %al - 410eaa: 84 c0 test %al,%al - 410eac: 74 12 je 410ec0 <_IO_wfile_sync+0x50> - 410eae: 5b pop %rbx - 410eaf: b8 ff ff ff ff mov $0xffffffff,%eax - 410eb4: 5d pop %rbp - 410eb5: 41 5c pop %r12 - 410eb7: c3 retq - 410eb8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 410ebf: 00 - 410ec0: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 410ec7: 48 8b 28 mov (%rax),%rbp - 410eca: 48 2b 68 08 sub 0x8(%rax),%rbp - 410ece: 48 c1 fd 02 sar $0x2,%rbp - 410ed2: 48 85 ed test %rbp,%rbp - 410ed5: 75 19 jne 410ef0 <_IO_wfile_sync+0x80> - 410ed7: 48 c7 83 90 00 00 00 movq $0xffffffffffffffff,0x90(%rbx) - 410ede: ff ff ff ff - 410ee2: 31 c0 xor %eax,%eax - 410ee4: 5b pop %rbx - 410ee5: 5d pop %rbp - 410ee6: 41 5c pop %r12 - 410ee8: c3 retq - 410ee9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 410ef0: 4c 8b a3 98 00 00 00 mov 0x98(%rbx),%r12 - 410ef7: 4c 89 e7 mov %r12,%rdi - 410efa: 41 ff 54 24 20 callq *0x20(%r12) - 410eff: 85 c0 test %eax,%eax - 410f01: 7e 7d jle 410f80 <_IO_wfile_sync+0x110> - 410f03: 48 63 f0 movslq %eax,%rsi - 410f06: 48 0f af f5 imul %rbp,%rsi - 410f0a: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 410f11: ba 01 00 00 00 mov $0x1,%edx - 410f16: 48 89 df mov %rbx,%rdi - 410f19: ff 90 80 00 00 00 callq *0x80(%rax) - 410f1f: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 410f23: 74 3b je 410f60 <_IO_wfile_sync+0xf0> - 410f25: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 410f2c: 48 8b 10 mov (%rax),%rdx - 410f2f: 48 89 50 08 mov %rdx,0x8(%rax) - 410f33: 48 8b 43 08 mov 0x8(%rbx),%rax - 410f37: 48 89 43 10 mov %rax,0x10(%rbx) - 410f3b: eb 9a jmp 410ed7 <_IO_wfile_sync+0x67> - 410f3d: 0f 1f 00 nopl (%rax) - 410f40: 48 8b 77 20 mov 0x20(%rdi),%rsi - 410f44: 48 8b 57 28 mov 0x28(%rdi),%rdx - 410f48: 48 29 f2 sub %rsi,%rdx - 410f4b: e8 80 22 00 00 callq 4131d0 <_IO_new_do_write> - 410f50: 85 c0 test %eax,%eax - 410f52: 0f 95 c0 setne %al - 410f55: e9 50 ff ff ff jmpq 410eaa <_IO_wfile_sync+0x3a> - 410f5a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 410f60: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 410f67: 64 83 38 1d cmpl $0x1d,%fs:(%rax) - 410f6b: 0f 85 3d ff ff ff jne 410eae <_IO_wfile_sync+0x3e> - 410f71: e9 61 ff ff ff jmpq 410ed7 <_IO_wfile_sync+0x67> - 410f76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 410f7d: 00 00 00 - 410f80: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 410f87: 49 89 e8 mov %rbp,%r8 - 410f8a: 4c 89 e7 mov %r12,%rdi - 410f8d: 48 8b 50 60 mov 0x60(%rax),%rdx - 410f91: 48 89 50 58 mov %rdx,0x58(%rax) - 410f95: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 410f9c: 48 8b 4b 10 mov 0x10(%rbx),%rcx - 410fa0: 48 8b 53 18 mov 0x18(%rbx),%rdx - 410fa4: 48 8d 70 58 lea 0x58(%rax),%rsi - 410fa8: 41 ff 54 24 30 callq *0x30(%r12) - 410fad: 48 8b 53 18 mov 0x18(%rbx),%rdx - 410fb1: 48 98 cltq - 410fb3: 48 8d 0c 02 lea (%rdx,%rax,1),%rcx - 410fb7: 48 2b 53 10 sub 0x10(%rbx),%rdx - 410fbb: 48 89 4b 08 mov %rcx,0x8(%rbx) - 410fbf: 48 8d 34 02 lea (%rdx,%rax,1),%rsi - 410fc3: e9 42 ff ff ff jmpq 410f0a <_IO_wfile_sync+0x9a> - 410fc8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 410fcf: 00 - -0000000000410fd0 <_IO_wfile_xsputn>: - 410fd0: 48 85 d2 test %rdx,%rdx - 410fd3: 0f 84 df 01 00 00 je 4111b8 <_IO_wfile_xsputn+0x1e8> - 410fd9: 41 57 push %r15 - 410fdb: 41 56 push %r14 - 410fdd: 41 55 push %r13 - 410fdf: 41 54 push %r12 - 410fe1: 49 89 fd mov %rdi,%r13 - 410fe4: 55 push %rbp - 410fe5: 53 push %rbx - 410fe6: 48 89 f5 mov %rsi,%rbp - 410fe9: 49 89 d4 mov %rdx,%r12 - 410fec: 48 83 ec 28 sub $0x28,%rsp - 410ff0: 41 8b 45 00 mov 0x0(%r13),%eax - 410ff4: 4c 8b b7 a0 00 00 00 mov 0xa0(%rdi),%r14 - 410ffb: 25 00 0a 00 00 and $0xa00,%eax - 411000: 49 8b 5e 28 mov 0x28(%r14),%rbx - 411004: 49 8b 7e 20 mov 0x20(%r14),%rdi - 411008: 3d 00 0a 00 00 cmp $0xa00,%eax - 41100d: 0f 84 cd 01 00 00 je 4111e0 <_IO_wfile_xsputn+0x210> - 411013: 48 29 fb sub %rdi,%rbx - 411016: 45 31 ff xor %r15d,%r15d - 411019: 48 c1 fb 02 sar $0x2,%rbx - 41101d: 48 85 db test %rbx,%rbx - 411020: 0f 84 9a 01 00 00 je 4111c0 <_IO_wfile_xsputn+0x1f0> - 411026: 49 39 dc cmp %rbx,%r12 - 411029: 49 0f 46 dc cmovbe %r12,%rbx - 41102d: 48 83 fb 14 cmp $0x14,%rbx - 411031: 0f 87 f9 01 00 00 ja 411230 <_IO_wfile_xsputn+0x260> - 411037: 48 8d 55 10 lea 0x10(%rbp),%rdx - 41103b: 8d 43 ff lea -0x1(%rbx),%eax - 41103e: 48 39 d7 cmp %rdx,%rdi - 411041: 48 8d 57 10 lea 0x10(%rdi),%rdx - 411045: 89 c1 mov %eax,%ecx - 411047: 40 0f 93 c6 setae %sil - 41104b: 48 39 d5 cmp %rdx,%rbp - 41104e: 0f 93 c2 setae %dl - 411051: 40 08 d6 or %dl,%sil - 411054: 0f 84 06 02 00 00 je 411260 <_IO_wfile_xsputn+0x290> - 41105a: 83 fb 0c cmp $0xc,%ebx - 41105d: 0f 86 fd 01 00 00 jbe 411260 <_IO_wfile_xsputn+0x290> - 411063: 49 89 e8 mov %rbp,%r8 - 411066: 41 83 e0 0f and $0xf,%r8d - 41106a: 49 c1 e8 02 shr $0x2,%r8 - 41106e: 49 f7 d8 neg %r8 - 411071: 41 83 e0 03 and $0x3,%r8d - 411075: 41 39 d8 cmp %ebx,%r8d - 411078: 44 0f 47 c3 cmova %ebx,%r8d - 41107c: 45 85 c0 test %r8d,%r8d - 41107f: 0f 84 cb 01 00 00 je 411250 <_IO_wfile_xsputn+0x280> - 411085: 8b 55 00 mov 0x0(%rbp),%edx - 411088: 41 83 f8 01 cmp $0x1,%r8d - 41108c: 48 8d 77 04 lea 0x4(%rdi),%rsi - 411090: 4c 8d 55 04 lea 0x4(%rbp),%r10 - 411094: 8d 4b fe lea -0x2(%rbx),%ecx - 411097: 89 17 mov %edx,(%rdi) - 411099: 74 28 je 4110c3 <_IO_wfile_xsputn+0xf3> - 41109b: 8b 55 04 mov 0x4(%rbp),%edx - 41109e: 41 83 f8 03 cmp $0x3,%r8d - 4110a2: 48 8d 77 08 lea 0x8(%rdi),%rsi - 4110a6: 4c 8d 55 08 lea 0x8(%rbp),%r10 - 4110aa: 8d 4b fd lea -0x3(%rbx),%ecx - 4110ad: 89 57 04 mov %edx,0x4(%rdi) - 4110b0: 75 11 jne 4110c3 <_IO_wfile_xsputn+0xf3> - 4110b2: 8b 55 08 mov 0x8(%rbp),%edx - 4110b5: 48 8d 77 0c lea 0xc(%rdi),%rsi - 4110b9: 4c 8d 55 0c lea 0xc(%rbp),%r10 - 4110bd: 8d 4b fc lea -0x4(%rbx),%ecx - 4110c0: 89 57 08 mov %edx,0x8(%rdi) - 4110c3: 89 da mov %ebx,%edx - 4110c5: 89 44 24 1c mov %eax,0x1c(%rsp) - 4110c9: 44 29 c2 sub %r8d,%edx - 4110cc: 45 89 c0 mov %r8d,%r8d - 4110cf: 89 54 24 14 mov %edx,0x14(%rsp) - 4110d3: 83 ea 04 sub $0x4,%edx - 4110d6: 49 c1 e0 02 shl $0x2,%r8 - 4110da: c1 ea 02 shr $0x2,%edx - 4110dd: 4e 8d 5c 05 00 lea 0x0(%rbp,%r8,1),%r11 - 4110e2: 83 c2 01 add $0x1,%edx - 4110e5: 44 8d 0c 95 00 00 00 lea 0x0(,%rdx,4),%r9d - 4110ec: 00 - 4110ed: 44 89 4c 24 18 mov %r9d,0x18(%rsp) - 4110f2: 4e 8d 0c 07 lea (%rdi,%r8,1),%r9 - 4110f6: 45 31 c0 xor %r8d,%r8d - 4110f9: 4c 89 4c 24 08 mov %r9,0x8(%rsp) - 4110fe: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 411103: 45 31 c9 xor %r9d,%r9d - 411106: 66 43 0f 6f 04 03 movdqa (%r11,%r8,1),%xmm0 - 41110c: 41 83 c1 01 add $0x1,%r9d - 411110: 42 0f 11 04 00 movups %xmm0,(%rax,%r8,1) - 411115: 49 83 c0 10 add $0x10,%r8 - 411119: 41 39 d1 cmp %edx,%r9d - 41111c: 72 e8 jb 411106 <_IO_wfile_xsputn+0x136> - 41111e: 44 8b 5c 24 18 mov 0x18(%rsp),%r11d - 411123: 8b 44 24 1c mov 0x1c(%rsp),%eax - 411127: 44 89 da mov %r11d,%edx - 41112a: 44 29 d9 sub %r11d,%ecx - 41112d: 48 c1 e2 02 shl $0x2,%rdx - 411131: 48 01 d6 add %rdx,%rsi - 411134: 49 01 d2 add %rdx,%r10 - 411137: 44 39 5c 24 14 cmp %r11d,0x14(%rsp) - 41113c: 74 1c je 41115a <_IO_wfile_xsputn+0x18a> - 41113e: 41 8b 12 mov (%r10),%edx - 411141: 85 c9 test %ecx,%ecx - 411143: 89 16 mov %edx,(%rsi) - 411145: 74 13 je 41115a <_IO_wfile_xsputn+0x18a> - 411147: 41 8b 52 04 mov 0x4(%r10),%edx - 41114b: 83 f9 01 cmp $0x1,%ecx - 41114e: 89 56 04 mov %edx,0x4(%rsi) - 411151: 74 07 je 41115a <_IO_wfile_xsputn+0x18a> - 411153: 41 8b 52 08 mov 0x8(%r10),%edx - 411157: 89 56 08 mov %edx,0x8(%rsi) - 41115a: 48 8d 04 85 04 00 00 lea 0x4(,%rax,4),%rax - 411161: 00 - 411162: 48 01 c7 add %rax,%rdi - 411165: 48 01 c5 add %rax,%rbp - 411168: 49 89 7e 20 mov %rdi,0x20(%r14) - 41116c: 4c 89 e0 mov %r12,%rax - 41116f: 48 29 d8 sub %rbx,%rax - 411172: 48 89 c3 mov %rax,%rbx - 411175: 75 4c jne 4111c3 <_IO_wfile_xsputn+0x1f3> - 411177: 45 85 ff test %r15d,%r15d - 41117a: 74 23 je 41119f <_IO_wfile_xsputn+0x1cf> - 41117c: 49 8b 85 a0 00 00 00 mov 0xa0(%r13),%rax - 411183: 48 8b 50 20 mov 0x20(%rax),%rdx - 411187: 48 8b 70 18 mov 0x18(%rax),%rsi - 41118b: 48 39 f2 cmp %rsi,%rdx - 41118e: 74 0f je 41119f <_IO_wfile_xsputn+0x1cf> - 411190: 48 29 f2 sub %rsi,%rdx - 411193: 4c 89 ef mov %r13,%rdi - 411196: 48 c1 fa 02 sar $0x2,%rdx - 41119a: e8 91 f8 ff ff callq 410a30 <_IO_wdo_write> - 41119f: 48 83 c4 28 add $0x28,%rsp - 4111a3: 4c 89 e0 mov %r12,%rax - 4111a6: 48 29 d8 sub %rbx,%rax - 4111a9: 5b pop %rbx - 4111aa: 5d pop %rbp - 4111ab: 41 5c pop %r12 - 4111ad: 41 5d pop %r13 - 4111af: 41 5e pop %r14 - 4111b1: 41 5f pop %r15 - 4111b3: c3 retq - 4111b4: 0f 1f 40 00 nopl 0x0(%rax) - 4111b8: 31 c0 xor %eax,%eax - 4111ba: c3 retq - 4111bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4111c0: 4c 89 e3 mov %r12,%rbx - 4111c3: 48 89 da mov %rbx,%rdx - 4111c6: 48 89 ee mov %rbp,%rsi - 4111c9: 4c 89 ef mov %r13,%rdi - 4111cc: e8 df 2d 05 00 callq 463fb0 <_IO_wdefault_xsputn> - 4111d1: 48 29 c3 sub %rax,%rbx - 4111d4: eb a1 jmp 411177 <_IO_wfile_xsputn+0x1a7> - 4111d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4111dd: 00 00 00 - 4111e0: 49 8b 5e 38 mov 0x38(%r14),%rbx - 4111e4: 45 31 ff xor %r15d,%r15d - 4111e7: 48 29 fb sub %rdi,%rbx - 4111ea: 48 c1 fb 02 sar $0x2,%rbx - 4111ee: 48 39 da cmp %rbx,%rdx - 4111f1: 0f 87 26 fe ff ff ja 41101d <_IO_wfile_xsputn+0x4d> - 4111f7: 48 8d 14 96 lea (%rsi,%rdx,4),%rdx - 4111fb: 48 39 d6 cmp %rdx,%rsi - 4111fe: 0f 83 19 fe ff ff jae 41101d <_IO_wfile_xsputn+0x4d> - 411204: 83 7a fc 0a cmpl $0xa,-0x4(%rdx) - 411208: 48 8d 42 fc lea -0x4(%rdx),%rax - 41120c: 75 0b jne 411219 <_IO_wfile_xsputn+0x249> - 41120e: eb 78 jmp 411288 <_IO_wfile_xsputn+0x2b8> - 411210: 48 83 e8 04 sub $0x4,%rax - 411214: 83 38 0a cmpl $0xa,(%rax) - 411217: 74 6f je 411288 <_IO_wfile_xsputn+0x2b8> - 411219: 48 39 c5 cmp %rax,%rbp - 41121c: 72 f2 jb 411210 <_IO_wfile_xsputn+0x240> - 41121e: 45 31 ff xor %r15d,%r15d - 411221: e9 f7 fd ff ff jmpq 41101d <_IO_wfile_xsputn+0x4d> - 411226: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41122d: 00 00 00 - 411230: 48 89 ee mov %rbp,%rsi - 411233: 48 89 da mov %rbx,%rdx - 411236: 48 8d 6c 9d 00 lea 0x0(%rbp,%rbx,4),%rbp - 41123b: e8 00 d1 02 00 callq 43e340 <__wmempcpy> - 411240: 49 89 46 20 mov %rax,0x20(%r14) - 411244: e9 23 ff ff ff jmpq 41116c <_IO_wfile_xsputn+0x19c> - 411249: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 411250: 49 89 ea mov %rbp,%r10 - 411253: 48 89 fe mov %rdi,%rsi - 411256: e9 68 fe ff ff jmpq 4110c3 <_IO_wfile_xsputn+0xf3> - 41125b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 411260: 89 c6 mov %eax,%esi - 411262: 31 d2 xor %edx,%edx - 411264: 48 83 c6 01 add $0x1,%rsi - 411268: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41126f: 00 - 411270: 8b 4c 95 00 mov 0x0(%rbp,%rdx,4),%ecx - 411274: 89 0c 97 mov %ecx,(%rdi,%rdx,4) - 411277: 48 83 c2 01 add $0x1,%rdx - 41127b: 48 39 f2 cmp %rsi,%rdx - 41127e: 75 f0 jne 411270 <_IO_wfile_xsputn+0x2a0> - 411280: e9 d5 fe ff ff jmpq 41115a <_IO_wfile_xsputn+0x18a> - 411285: 0f 1f 00 nopl (%rax) - 411288: 48 29 e8 sub %rbp,%rax - 41128b: 41 bf 01 00 00 00 mov $0x1,%r15d - 411291: 48 c1 f8 02 sar $0x2,%rax - 411295: 48 8d 58 01 lea 0x1(%rax),%rbx - 411299: e9 7f fd ff ff jmpq 41101d <_IO_wfile_xsputn+0x4d> - 41129e: 66 90 xchg %ax,%ax - -00000000004112a0 <_IO_vasprintf>: - 4112a0: 41 55 push %r13 - 4112a2: 41 54 push %r12 - 4112a4: 49 89 fc mov %rdi,%r12 - 4112a7: 55 push %rbp - 4112a8: 53 push %rbx - 4112a9: bf 64 00 00 00 mov $0x64,%edi - 4112ae: 48 89 f5 mov %rsi,%rbp - 4112b1: 49 89 d5 mov %rdx,%r13 - 4112b4: 48 81 ec f8 00 00 00 sub $0xf8,%rsp - 4112bb: e8 50 c7 00 00 callq 41da10 <__libc_malloc> - 4112c0: 48 85 c0 test %rax,%rax - 4112c3: 0f 84 17 01 00 00 je 4113e0 <_IO_vasprintf+0x140> - 4112c9: 48 89 c3 mov %rax,%rbx - 4112cc: 45 31 c0 xor %r8d,%r8d - 4112cf: 31 c9 xor %ecx,%ecx - 4112d1: ba ff ff ff ff mov $0xffffffff,%edx - 4112d6: be 00 80 00 00 mov $0x8000,%esi - 4112db: 48 89 e7 mov %rsp,%rdi - 4112de: 48 c7 84 24 88 00 00 movq $0x0,0x88(%rsp) - 4112e5: 00 00 00 00 00 - 4112ea: e8 d1 41 00 00 callq 4154c0 <_IO_no_init> - 4112ef: 48 89 d9 mov %rbx,%rcx - 4112f2: 48 89 de mov %rbx,%rsi - 4112f5: ba 64 00 00 00 mov $0x64,%edx - 4112fa: 48 89 e7 mov %rsp,%rdi - 4112fd: 48 c7 84 24 d8 00 00 movq $0x4a1f00,0xd8(%rsp) - 411304: 00 00 1f 4a 00 - 411309: e8 32 59 00 00 callq 416c40 <_IO_str_init_static_internal> - 41130e: 4c 89 ea mov %r13,%rdx - 411311: 48 89 ee mov %rbp,%rsi - 411314: 48 89 e7 mov %rsp,%rdi - 411317: 83 24 24 fe andl $0xfffffffe,(%rsp) - 41131b: 48 c7 84 24 e0 00 00 movq $0x41da10,0xe0(%rsp) - 411322: 00 10 da 41 00 - 411327: 48 c7 84 24 e8 00 00 movq $0x41ddb0,0xe8(%rsp) - 41132e: 00 b0 dd 41 00 - 411333: e8 98 35 04 00 callq 4548d0 <_IO_vfprintf> - 411338: 85 c0 test %eax,%eax - 41133a: 89 c3 mov %eax,%ebx - 41133c: 0f 88 8e 00 00 00 js 4113d0 <_IO_vasprintf+0x130> - 411342: 48 8b 44 24 20 mov 0x20(%rsp),%rax - 411347: 48 8b 6c 24 28 mov 0x28(%rsp),%rbp - 41134c: 48 8b 54 24 30 mov 0x30(%rsp),%rdx - 411351: 48 29 c5 sub %rax,%rbp - 411354: 48 29 c2 sub %rax,%rdx - 411357: 4c 8d 6d 01 lea 0x1(%rbp),%r13 - 41135b: 48 d1 ea shr %rdx - 41135e: 49 39 d5 cmp %rdx,%r13 - 411361: 72 2d jb 411390 <_IO_vasprintf+0xf0> - 411363: 48 8b 7c 24 38 mov 0x38(%rsp),%rdi - 411368: 4c 89 ee mov %r13,%rsi - 41136b: e8 00 cc 00 00 callq 41df70 <__libc_realloc> - 411370: 48 85 c0 test %rax,%rax - 411373: 49 89 04 24 mov %rax,(%r12) - 411377: 74 4c je 4113c5 <_IO_vasprintf+0x125> - 411379: c6 04 28 00 movb $0x0,(%rax,%rbp,1) - 41137d: 89 d8 mov %ebx,%eax - 41137f: 48 81 c4 f8 00 00 00 add $0xf8,%rsp - 411386: 5b pop %rbx - 411387: 5d pop %rbp - 411388: 41 5c pop %r12 - 41138a: 41 5d pop %r13 - 41138c: c3 retq - 41138d: 0f 1f 00 nopl (%rax) - 411390: 4c 89 ef mov %r13,%rdi - 411393: e8 78 c6 00 00 callq 41da10 <__libc_malloc> - 411398: 48 85 c0 test %rax,%rax - 41139b: 49 89 04 24 mov %rax,(%r12) - 41139f: 74 c2 je 411363 <_IO_vasprintf+0xc3> - 4113a1: 4c 8b 6c 24 38 mov 0x38(%rsp),%r13 - 4113a6: 48 89 ea mov %rbp,%rdx - 4113a9: 48 89 c7 mov %rax,%rdi - 4113ac: 4c 89 ee mov %r13,%rsi - 4113af: e8 6c ac 01 00 callq 42c020 - 4113b4: 4c 89 ef mov %r13,%rdi - 4113b7: e8 f4 c9 00 00 callq 41ddb0 <__cfree> - 4113bc: 49 8b 04 24 mov (%r12),%rax - 4113c0: 48 85 c0 test %rax,%rax - 4113c3: 75 b4 jne 411379 <_IO_vasprintf+0xd9> - 4113c5: 48 8b 44 24 38 mov 0x38(%rsp),%rax - 4113ca: 49 89 04 24 mov %rax,(%r12) - 4113ce: eb a9 jmp 411379 <_IO_vasprintf+0xd9> - 4113d0: 48 8b 7c 24 38 mov 0x38(%rsp),%rdi - 4113d5: e8 d6 c9 00 00 callq 41ddb0 <__cfree> - 4113da: 89 d8 mov %ebx,%eax - 4113dc: eb a1 jmp 41137f <_IO_vasprintf+0xdf> - 4113de: 66 90 xchg %ax,%ax - 4113e0: b8 ff ff ff ff mov $0xffffffff,%eax - 4113e5: eb 98 jmp 41137f <_IO_vasprintf+0xdf> - 4113e7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4113ee: 00 00 - -00000000004113f0 <__fcloseall>: - 4113f0: e9 fb 2d 00 00 jmpq 4141f0 <_IO_cleanup> - 4113f5: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4113fc: 00 00 00 - 4113ff: 90 nop - -0000000000411400 <__libc_message.constprop.0>: - 411400: 55 push %rbp - 411401: bf 14 1c 4a 00 mov $0x4a1c14,%edi - 411406: 48 89 e5 mov %rsp,%rbp - 411409: 41 57 push %r15 - 41140b: 41 56 push %r14 - 41140d: 48 8d 45 10 lea 0x10(%rbp),%rax - 411411: 41 55 push %r13 - 411413: 41 54 push %r12 - 411415: 53 push %rbx - 411416: 48 83 ec 58 sub $0x58,%rsp - 41141a: 48 89 45 90 mov %rax,-0x70(%rbp) - 41141e: 48 8d 45 a0 lea -0x60(%rbp),%rax - 411422: 48 89 55 b0 mov %rdx,-0x50(%rbp) - 411426: 48 89 4d b8 mov %rcx,-0x48(%rbp) - 41142a: 4c 89 45 c0 mov %r8,-0x40(%rbp) - 41142e: 4c 89 4d c8 mov %r9,-0x38(%rbp) - 411432: c7 45 88 10 00 00 00 movl $0x10,-0x78(%rbp) - 411439: 48 89 45 98 mov %rax,-0x68(%rbp) - 41143d: e8 5e 05 04 00 callq 4519a0 <__libc_secure_getenv> - 411442: 48 85 c0 test %rax,%rax - 411445: 74 09 je 411450 <__libc_message.constprop.0+0x50> - 411447: 80 38 00 cmpb $0x0,(%rax) - 41144a: 0f 85 26 01 00 00 jne 411576 <__libc_message.constprop.0+0x176> - 411450: be 02 09 00 00 mov $0x902,%esi - 411455: bf 27 1c 4a 00 mov $0x4a1c27,%edi - 41145a: b8 02 00 00 00 mov $0x2,%eax - 41145f: 0f 05 syscall - 411461: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 411467: 0f 87 2b 01 00 00 ja 411598 <__libc_message.constprop.0+0x198> - 41146d: 83 f8 ff cmp $0xffffffff,%eax - 411470: 41 89 c5 mov %eax,%r13d - 411473: 0f 84 fd 00 00 00 je 411576 <__libc_message.constprop.0+0x176> - 411479: 4c 63 e0 movslq %eax,%r12 - 41147c: 8b 45 88 mov -0x78(%rbp),%eax - 41147f: 83 f8 2f cmp $0x2f,%eax - 411482: 0f 87 ff 00 00 00 ja 411587 <__libc_message.constprop.0+0x187> - 411488: 89 c2 mov %eax,%edx - 41148a: 48 03 55 98 add -0x68(%rbp),%rdx - 41148e: 83 c0 08 add $0x8,%eax - 411491: 89 45 88 mov %eax,-0x78(%rbp) - 411494: 4c 8b 32 mov (%rdx),%r14 - 411497: 4c 89 f7 mov %r14,%rdi - 41149a: e8 b1 21 01 00 callq 423650 - 41149f: 48 83 ec 30 sub $0x30,%rsp - 4114a3: 49 89 c0 mov %rax,%r8 - 4114a6: 41 b9 14 00 00 00 mov $0x14,%r9d - 4114ac: 48 8d 44 24 0f lea 0xf(%rsp),%rax - 4114b1: 48 83 ec 20 sub $0x20,%rsp - 4114b5: 48 8d 5c 24 0f lea 0xf(%rsp),%rbx - 4114ba: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 4114be: 48 83 e3 f0 and $0xfffffffffffffff0,%rbx - 4114c2: 4c 89 30 mov %r14,(%rax) - 4114c5: 4c 89 40 08 mov %r8,0x8(%rax) - 4114c9: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) - 4114d0: 00 - 4114d1: 4c 89 33 mov %r14,(%rbx) - 4114d4: 4c 89 43 08 mov %r8,0x8(%rbx) - 4114d8: ba 01 00 00 00 mov $0x1,%edx - 4114dd: 48 89 de mov %rbx,%rsi - 4114e0: 4c 89 e7 mov %r12,%rdi - 4114e3: 44 89 c8 mov %r9d,%eax - 4114e6: 0f 05 syscall - 4114e8: 48 83 f8 fc cmp $0xfffffffffffffffc,%rax - 4114ec: 74 ea je 4114d8 <__libc_message.constprop.0+0xd8> - 4114ee: 4c 8b 3d 8b 9c 2b 00 mov 0x2b9c8b(%rip),%r15 # 6cb180 <_dl_pagesize> - 4114f5: 49 39 c0 cmp %rax,%r8 - 4114f8: b9 22 00 00 00 mov $0x22,%ecx - 4114fd: 41 0f 94 c4 sete %r12b - 411501: ba 03 00 00 00 mov $0x3,%edx - 411506: 45 31 c9 xor %r9d,%r9d - 411509: 31 ff xor %edi,%edi - 41150b: 4b 8d 04 38 lea (%r8,%r15,1),%rax - 41150f: 49 f7 df neg %r15 - 411512: 41 83 c8 ff or $0xffffffff,%r8d - 411516: 49 21 c7 and %rax,%r15 - 411519: 4c 89 fe mov %r15,%rsi - 41151c: e8 cf e6 02 00 callq 43fbf0 <__mmap> - 411521: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 411525: 49 89 c6 mov %rax,%r14 - 411528: 74 36 je 411560 <__libc_message.constprop.0+0x160> - 41152a: 48 8b 53 08 mov 0x8(%rbx),%rdx - 41152e: 48 8b 33 mov (%rbx),%rsi - 411531: 48 8d 78 04 lea 0x4(%rax),%rdi - 411535: 44 89 38 mov %r15d,(%rax) - 411538: e8 83 50 01 00 callq 4265c0 <__mempcpy> - 41153d: 4c 89 f7 mov %r14,%rdi - 411540: c6 00 00 movb $0x0,(%rax) - 411543: 48 87 3d d6 ab 2b 00 xchg %rdi,0x2babd6(%rip) # 6cc120 <__abort_msg> - 41154a: 48 85 ff test %rdi,%rdi - 41154d: 74 11 je 411560 <__libc_message.constprop.0+0x160> - 41154f: 8b 37 mov (%rdi),%esi - 411551: e8 5a e7 02 00 callq 43fcb0 <__munmap> - 411556: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41155d: 00 00 00 - 411560: 41 0f b6 f4 movzbl %r12b,%esi - 411564: 44 89 ea mov %r13d,%edx - 411567: bf 01 00 00 00 mov $0x1,%edi - 41156c: e8 1f ee fe ff callq 400390 - 411571: e8 8a c6 ff ff callq 40dc00 - 411576: 41 bc 02 00 00 00 mov $0x2,%r12d - 41157c: 41 bd 02 00 00 00 mov $0x2,%r13d - 411582: e9 f5 fe ff ff jmpq 41147c <__libc_message.constprop.0+0x7c> - 411587: 48 8b 55 90 mov -0x70(%rbp),%rdx - 41158b: 48 8d 42 08 lea 0x8(%rdx),%rax - 41158f: 48 89 45 90 mov %rax,-0x70(%rbp) - 411593: e9 fc fe ff ff jmpq 411494 <__libc_message.constprop.0+0x94> - 411598: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 41159f: f7 d8 neg %eax - 4115a1: 41 bc 02 00 00 00 mov $0x2,%r12d - 4115a7: 41 bd 02 00 00 00 mov $0x2,%r13d - 4115ad: 64 89 02 mov %eax,%fs:(%rdx) - 4115b0: e9 c7 fe ff ff jmpq 41147c <__libc_message.constprop.0+0x7c> - 4115b5: 90 nop - 4115b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4115bd: 00 00 00 - -00000000004115c0 <__libc_message>: - 4115c0: 55 push %rbp - 4115c1: 48 89 e5 mov %rsp,%rbp - 4115c4: 41 57 push %r15 - 4115c6: 41 56 push %r14 - 4115c8: 48 8d 45 10 lea 0x10(%rbp),%rax - 4115cc: 41 55 push %r13 - 4115ce: 41 54 push %r12 - 4115d0: 53 push %rbx - 4115d1: 41 89 ff mov %edi,%r15d - 4115d4: bf 14 1c 4a 00 mov $0x4a1c14,%edi - 4115d9: 48 89 f3 mov %rsi,%rbx - 4115dc: 48 83 ec 68 sub $0x68,%rsp - 4115e0: 48 89 45 90 mov %rax,-0x70(%rbp) - 4115e4: 48 8d 45 a0 lea -0x60(%rbp),%rax - 4115e8: 48 89 55 b0 mov %rdx,-0x50(%rbp) - 4115ec: 48 89 4d b8 mov %rcx,-0x48(%rbp) - 4115f0: 4c 89 45 c0 mov %r8,-0x40(%rbp) - 4115f4: 4c 89 4d c8 mov %r9,-0x38(%rbp) - 4115f8: c7 45 88 10 00 00 00 movl $0x10,-0x78(%rbp) - 4115ff: 48 89 45 98 mov %rax,-0x68(%rbp) - 411603: e8 98 03 04 00 callq 4519a0 <__libc_secure_getenv> - 411608: 48 85 c0 test %rax,%rax - 41160b: 74 09 je 411616 <__libc_message+0x56> - 41160d: 80 38 00 cmpb $0x0,(%rax) - 411610: 0f 85 81 01 00 00 jne 411797 <__libc_message+0x1d7> - 411616: be 02 09 00 00 mov $0x902,%esi - 41161b: bf 27 1c 4a 00 mov $0x4a1c27,%edi - 411620: b8 02 00 00 00 mov $0x2,%eax - 411625: 0f 05 syscall - 411627: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 41162d: 0f 87 58 01 00 00 ja 41178b <__libc_message+0x1cb> - 411633: 83 f8 ff cmp $0xffffffff,%eax - 411636: 89 85 7c ff ff ff mov %eax,-0x84(%rbp) - 41163c: 0f 84 55 01 00 00 je 411797 <__libc_message+0x1d7> - 411642: 44 0f b6 2b movzbl (%rbx),%r13d - 411646: 45 31 e4 xor %r12d,%r12d - 411649: 45 31 f6 xor %r14d,%r14d - 41164c: 45 84 ed test %r13b,%r13b - 41164f: 0f 84 5f 01 00 00 je 4117b4 <__libc_message+0x1f4> - 411655: 0f 1f 00 nopl (%rax) - 411658: 44 89 ea mov %r13d,%edx - 41165b: 48 89 d8 mov %rbx,%rax - 41165e: eb 15 jmp 411675 <__libc_message+0xb5> - 411660: 48 8d 78 01 lea 0x1(%rax),%rdi - 411664: be 25 00 00 00 mov $0x25,%esi - 411669: e8 72 b5 01 00 callq 42cbe0 <__strchrnul> - 41166e: 0f b6 10 movzbl (%rax),%edx - 411671: 84 d2 test %dl,%dl - 411673: 74 0b je 411680 <__libc_message+0xc0> - 411675: 80 fa 25 cmp $0x25,%dl - 411678: 75 e6 jne 411660 <__libc_message+0xa0> - 41167a: 80 78 01 73 cmpb $0x73,0x1(%rax) - 41167e: 75 e0 jne 411660 <__libc_message+0xa0> - 411680: 41 80 fd 25 cmp $0x25,%r13b - 411684: 74 3a je 4116c0 <__libc_message+0x100> - 411686: 48 89 c6 mov %rax,%rsi - 411689: 48 89 d9 mov %rbx,%rcx - 41168c: 48 29 de sub %rbx,%rsi - 41168f: 48 89 c3 mov %rax,%rbx - 411692: 48 83 ec 30 sub $0x30,%rsp - 411696: 45 8d 54 24 01 lea 0x1(%r12),%r10d - 41169b: 48 8d 54 24 0f lea 0xf(%rsp),%rdx - 4116a0: 48 83 e2 f0 and $0xfffffffffffffff0,%rdx - 4116a4: 48 89 0a mov %rcx,(%rdx) - 4116a7: 48 89 72 08 mov %rsi,0x8(%rdx) - 4116ab: 4c 89 72 10 mov %r14,0x10(%rdx) - 4116af: 44 0f b6 2b movzbl (%rbx),%r13d - 4116b3: 45 84 ed test %r13b,%r13b - 4116b6: 74 48 je 411700 <__libc_message+0x140> - 4116b8: 45 89 d4 mov %r10d,%r12d - 4116bb: 49 89 d6 mov %rdx,%r14 - 4116be: eb 98 jmp 411658 <__libc_message+0x98> - 4116c0: 80 7b 01 73 cmpb $0x73,0x1(%rbx) - 4116c4: 75 c0 jne 411686 <__libc_message+0xc6> - 4116c6: 8b 45 88 mov -0x78(%rbp),%eax - 4116c9: 83 f8 2f cmp $0x2f,%eax - 4116cc: 0f 87 ee 00 00 00 ja 4117c0 <__libc_message+0x200> - 4116d2: 89 c2 mov %eax,%edx - 4116d4: 48 03 55 98 add -0x68(%rbp),%rdx - 4116d8: 83 c0 08 add $0x8,%eax - 4116db: 89 45 88 mov %eax,-0x78(%rbp) - 4116de: 48 8b 0a mov (%rdx),%rcx - 4116e1: 48 83 c3 02 add $0x2,%rbx - 4116e5: 48 89 cf mov %rcx,%rdi - 4116e8: 48 89 8d 70 ff ff ff mov %rcx,-0x90(%rbp) - 4116ef: e8 5c 1f 01 00 callq 423650 - 4116f4: 48 8b 8d 70 ff ff ff mov -0x90(%rbp),%rcx - 4116fb: 48 89 c6 mov %rax,%rsi - 4116fe: eb 92 jmp 411692 <__libc_message+0xd2> - 411700: 4d 63 c2 movslq %r10d,%r8 - 411703: 49 63 d4 movslq %r12d,%rdx - 411706: 4c 89 c0 mov %r8,%rax - 411709: 48 c1 e2 04 shl $0x4,%rdx - 41170d: 48 c1 e0 04 shl $0x4,%rax - 411711: 48 83 c0 10 add $0x10,%rax - 411715: 48 29 c4 sub %rax,%rsp - 411718: 31 c0 xor %eax,%eax - 41171a: 4c 8d 6c 24 0f lea 0xf(%rsp),%r13 - 41171f: 49 83 e5 f0 and $0xfffffffffffffff0,%r13 - 411723: 4c 01 ea add %r13,%rdx - 411726: eb 17 jmp 41173f <__libc_message+0x17f> - 411728: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41172f: 00 - 411730: 49 8b 0e mov (%r14),%rcx - 411733: 49 8b 76 08 mov 0x8(%r14),%rsi - 411737: 48 83 ea 10 sub $0x10,%rdx - 41173b: 4d 8b 76 10 mov 0x10(%r14),%r14 - 41173f: 48 8d 1c 30 lea (%rax,%rsi,1),%rbx - 411743: 49 39 d5 cmp %rdx,%r13 - 411746: 48 89 0a mov %rcx,(%rdx) - 411749: 48 89 72 08 mov %rsi,0x8(%rdx) - 41174d: 48 89 d8 mov %rbx,%rax - 411750: 75 de jne 411730 <__libc_message+0x170> - 411752: 4c 63 b5 7c ff ff ff movslq -0x84(%rbp),%r14 - 411759: 41 b9 14 00 00 00 mov $0x14,%r9d - 41175f: 90 nop - 411760: 4c 89 c2 mov %r8,%rdx - 411763: 4c 89 ee mov %r13,%rsi - 411766: 4c 89 f7 mov %r14,%rdi - 411769: 44 89 c8 mov %r9d,%eax - 41176c: 0f 05 syscall - 41176e: 48 83 f8 fc cmp $0xfffffffffffffffc,%rax - 411772: 49 89 c4 mov %rax,%r12 - 411775: 74 e9 je 411760 <__libc_message+0x1a0> - 411777: 45 85 ff test %r15d,%r15d - 41177a: 75 55 jne 4117d1 <__libc_message+0x211> - 41177c: 48 8d 65 d8 lea -0x28(%rbp),%rsp - 411780: 5b pop %rbx - 411781: 41 5c pop %r12 - 411783: 41 5d pop %r13 - 411785: 41 5e pop %r14 - 411787: 41 5f pop %r15 - 411789: 5d pop %rbp - 41178a: c3 retq - 41178b: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 411792: f7 d8 neg %eax - 411794: 64 89 02 mov %eax,%fs:(%rdx) - 411797: 44 0f b6 2b movzbl (%rbx),%r13d - 41179b: 45 31 e4 xor %r12d,%r12d - 41179e: 45 31 f6 xor %r14d,%r14d - 4117a1: c7 85 7c ff ff ff 02 movl $0x2,-0x84(%rbp) - 4117a8: 00 00 00 - 4117ab: 45 84 ed test %r13b,%r13b - 4117ae: 0f 85 a4 fe ff ff jne 411658 <__libc_message+0x98> - 4117b4: 45 85 ff test %r15d,%r15d - 4117b7: 74 c3 je 41177c <__libc_message+0x1bc> - 4117b9: 31 f6 xor %esi,%esi - 4117bb: e9 b3 00 00 00 jmpq 411873 <__libc_message+0x2b3> - 4117c0: 48 8b 55 90 mov -0x70(%rbp),%rdx - 4117c4: 48 8d 42 08 lea 0x8(%rdx),%rax - 4117c8: 48 89 45 90 mov %rax,-0x70(%rbp) - 4117cc: e9 0d ff ff ff jmpq 4116de <__libc_message+0x11e> - 4117d1: 48 8b 05 a8 99 2b 00 mov 0x2b99a8(%rip),%rax # 6cb180 <_dl_pagesize> - 4117d8: 45 31 c9 xor %r9d,%r9d - 4117db: 31 ff xor %edi,%edi - 4117dd: 41 b8 ff ff ff ff mov $0xffffffff,%r8d - 4117e3: b9 22 00 00 00 mov $0x22,%ecx - 4117e8: ba 03 00 00 00 mov $0x3,%edx - 4117ed: 44 89 95 78 ff ff ff mov %r10d,-0x88(%rbp) - 4117f4: 4c 8d 1c 03 lea (%rbx,%rax,1),%r11 - 4117f8: 48 f7 d8 neg %rax - 4117fb: 49 21 c3 and %rax,%r11 - 4117fe: 4c 89 de mov %r11,%rsi - 411801: 4d 89 de mov %r11,%r14 - 411804: e8 e7 e3 02 00 callq 43fbf0 <__mmap> - 411809: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 41180d: 48 89 85 70 ff ff ff mov %rax,-0x90(%rbp) - 411814: 74 54 je 41186a <__libc_message+0x2aa> - 411816: 44 8b 95 78 ff ff ff mov -0x88(%rbp),%r10d - 41181d: 44 89 30 mov %r14d,(%rax) - 411820: 4d 8d 75 08 lea 0x8(%r13),%r14 - 411824: 48 83 c0 04 add $0x4,%rax - 411828: 41 8d 52 ff lea -0x1(%r10),%edx - 41182c: 48 c1 e2 04 shl $0x4,%rdx - 411830: 4d 8d 6c 15 18 lea 0x18(%r13,%rdx,1),%r13 - 411835: 49 8b 76 f8 mov -0x8(%r14),%rsi - 411839: 49 8b 16 mov (%r14),%rdx - 41183c: 48 89 c7 mov %rax,%rdi - 41183f: 49 83 c6 10 add $0x10,%r14 - 411843: e8 78 4d 01 00 callq 4265c0 <__mempcpy> - 411848: 4d 39 ee cmp %r13,%r14 - 41184b: 75 e8 jne 411835 <__libc_message+0x275> - 41184d: c6 00 00 movb $0x0,(%rax) - 411850: 48 8b bd 70 ff ff ff mov -0x90(%rbp),%rdi - 411857: 48 87 3d c2 a8 2b 00 xchg %rdi,0x2ba8c2(%rip) # 6cc120 <__abort_msg> - 41185e: 48 85 ff test %rdi,%rdi - 411861: 74 07 je 41186a <__libc_message+0x2aa> - 411863: 8b 37 mov (%rdi),%esi - 411865: e8 46 e4 02 00 callq 43fcb0 <__munmap> - 41186a: 31 f6 xor %esi,%esi - 41186c: 4c 39 e3 cmp %r12,%rbx - 41186f: 40 0f 94 c6 sete %sil - 411873: 8b 95 7c ff ff ff mov -0x84(%rbp),%edx - 411879: 44 89 ff mov %r15d,%edi - 41187c: e8 0f eb fe ff callq 400390 - 411881: e8 7a c3 ff ff callq 40dc00 - 411886: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41188d: 00 00 00 - -0000000000411890 <__libc_fatal>: - 411890: 48 89 fa mov %rdi,%rdx - 411893: 48 83 ec 08 sub $0x8,%rsp - 411897: be 99 c4 4b 00 mov $0x4bc499,%esi - 41189c: bf 01 00 00 00 mov $0x1,%edi - 4118a1: 31 c0 xor %eax,%eax - 4118a3: e8 58 fb ff ff callq 411400 <__libc_message.constprop.0> - 4118a8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4118af: 00 - -00000000004118b0 <__fgets_unlocked>: - 4118b0: 85 f6 test %esi,%esi - 4118b2: 0f 8e 88 00 00 00 jle 411940 <__fgets_unlocked+0x90> - 4118b8: 83 fe 01 cmp $0x1,%esi - 4118bb: 41 54 push %r12 - 4118bd: 55 push %rbp - 4118be: 53 push %rbx - 4118bf: 48 89 fb mov %rdi,%rbx - 4118c2: 74 6c je 411930 <__fgets_unlocked+0x80> - 4118c4: 8b 02 mov (%rdx),%eax - 4118c6: 48 89 d5 mov %rdx,%rbp - 4118c9: 83 ee 01 sub $0x1,%esi - 4118cc: 41 b8 01 00 00 00 mov $0x1,%r8d - 4118d2: b9 0a 00 00 00 mov $0xa,%ecx - 4118d7: 41 89 c4 mov %eax,%r12d - 4118da: 83 e0 df and $0xffffffdf,%eax - 4118dd: 89 02 mov %eax,(%rdx) - 4118df: 48 63 d6 movslq %esi,%rdx - 4118e2: 48 89 fe mov %rdi,%rsi - 4118e5: 48 89 ef mov %rbp,%rdi - 4118e8: 41 83 e4 20 and $0x20,%r12d - 4118ec: e8 1f 1b 05 00 callq 463410 <_IO_getline> - 4118f1: 48 85 c0 test %rax,%rax - 4118f4: 8b 55 00 mov 0x0(%rbp),%edx - 4118f7: 75 17 jne 411910 <__fgets_unlocked+0x60> - 4118f9: 31 db xor %ebx,%ebx - 4118fb: 41 09 d4 or %edx,%r12d - 4118fe: 48 89 d8 mov %rbx,%rax - 411901: 44 89 65 00 mov %r12d,0x0(%rbp) - 411905: 5b pop %rbx - 411906: 5d pop %rbp - 411907: 41 5c pop %r12 - 411909: c3 retq - 41190a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 411910: f6 c2 20 test $0x20,%dl - 411913: 74 0d je 411922 <__fgets_unlocked+0x72> - 411915: 48 c7 c1 d0 ff ff ff mov $0xffffffffffffffd0,%rcx - 41191c: 64 83 39 0b cmpl $0xb,%fs:(%rcx) - 411920: 75 d7 jne 4118f9 <__fgets_unlocked+0x49> - 411922: c6 04 03 00 movb $0x0,(%rbx,%rax,1) - 411926: 8b 55 00 mov 0x0(%rbp),%edx - 411929: eb d0 jmp 4118fb <__fgets_unlocked+0x4b> - 41192b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 411930: c6 07 00 movb $0x0,(%rdi) - 411933: 48 89 f8 mov %rdi,%rax - 411936: eb cd jmp 411905 <__fgets_unlocked+0x55> - 411938: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41193f: 00 - 411940: 31 c0 xor %eax,%eax - 411942: c3 retq - 411943: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41194a: 00 00 00 - 41194d: 0f 1f 00 nopl (%rax) - -0000000000411950 <_IO_file_seekoff_maybe_mmap>: - 411950: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 411957: 53 push %rbx - 411958: 48 89 fb mov %rdi,%rbx - 41195b: ff 90 80 00 00 00 callq *0x80(%rax) - 411961: 48 85 c0 test %rax,%rax - 411964: 78 0a js 411970 <_IO_file_seekoff_maybe_mmap+0x20> - 411966: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) - 41196d: 5b pop %rbx - 41196e: c3 retq - 41196f: 90 nop - 411970: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 411977: 5b pop %rbx - 411978: c3 retq - 411979: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -0000000000411980 <_IO_file_close>: - 411980: 48 63 7f 70 movslq 0x70(%rdi),%rdi - 411984: b8 03 00 00 00 mov $0x3,%eax - 411989: 0f 05 syscall - 41198b: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 411991: 76 11 jbe 4119a4 <_IO_file_close+0x24> - 411993: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 41199a: f7 d8 neg %eax - 41199c: 64 89 02 mov %eax,%fs:(%rdx) - 41199f: b8 ff ff ff ff mov $0xffffffff,%eax - 4119a4: f3 c3 repz retq - 4119a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4119ad: 00 00 00 - -00000000004119b0 <_IO_new_file_setbuf>: - 4119b0: 53 push %rbx - 4119b1: 48 89 fb mov %rdi,%rbx - 4119b4: e8 37 38 00 00 callq 4151f0 <_IO_default_setbuf> - 4119b9: 48 85 c0 test %rax,%rax - 4119bc: 74 1f je 4119dd <_IO_new_file_setbuf+0x2d> - 4119be: 48 8b 43 38 mov 0x38(%rbx),%rax - 4119c2: 48 89 43 30 mov %rax,0x30(%rbx) - 4119c6: 48 89 43 28 mov %rax,0x28(%rbx) - 4119ca: 48 89 43 20 mov %rax,0x20(%rbx) - 4119ce: 48 89 43 18 mov %rax,0x18(%rbx) - 4119d2: 48 89 43 08 mov %rax,0x8(%rbx) - 4119d6: 48 89 43 10 mov %rax,0x10(%rbx) - 4119da: 48 89 d8 mov %rbx,%rax - 4119dd: 5b pop %rbx - 4119de: c3 retq - 4119df: 90 nop - -00000000004119e0 <_IO_file_setbuf_mmap>: - 4119e0: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax - 4119e7: 53 push %rbx - 4119e8: 48 89 fb mov %rdi,%rbx - 4119eb: 48 c7 87 d8 00 00 00 movq $0x4a1e20,0xd8(%rdi) - 4119f2: 20 1e 4a 00 - 4119f6: 48 c7 80 30 01 00 00 movq $0x4a1b20,0x130(%rax) - 4119fd: 20 1b 4a 00 - 411a01: e8 ea 37 00 00 callq 4151f0 <_IO_default_setbuf> - 411a06: 48 85 c0 test %rax,%rax - 411a09: 74 25 je 411a30 <_IO_file_setbuf_mmap+0x50> - 411a0b: 48 8b 43 38 mov 0x38(%rbx),%rax - 411a0f: 48 89 43 30 mov %rax,0x30(%rbx) - 411a13: 48 89 43 28 mov %rax,0x28(%rbx) - 411a17: 48 89 43 20 mov %rax,0x20(%rbx) - 411a1b: 48 89 43 18 mov %rax,0x18(%rbx) - 411a1f: 48 89 43 08 mov %rax,0x8(%rbx) - 411a23: 48 89 43 10 mov %rax,0x10(%rbx) - 411a27: 48 89 d8 mov %rbx,%rax - 411a2a: 5b pop %rbx - 411a2b: c3 retq - 411a2c: 0f 1f 40 00 nopl 0x0(%rax) - 411a30: 48 8b 93 a0 00 00 00 mov 0xa0(%rbx),%rdx - 411a37: 48 c7 83 d8 00 00 00 movq $0x4a1d60,0xd8(%rbx) - 411a3e: 60 1d 4a 00 - 411a42: 48 c7 82 30 01 00 00 movq $0x4a1a60,0x130(%rdx) - 411a49: 60 1a 4a 00 - 411a4d: 5b pop %rbx - 411a4e: c3 retq - 411a4f: 90 nop - -0000000000411a50 <_IO_new_file_underflow>: - 411a50: 8b 07 mov (%rdi),%eax - 411a52: a8 04 test $0x4,%al - 411a54: 0f 85 16 02 00 00 jne 411c70 <_IO_new_file_underflow+0x220> - 411a5a: 48 8b 57 08 mov 0x8(%rdi),%rdx - 411a5e: 48 3b 57 10 cmp 0x10(%rdi),%rdx - 411a62: 0f 82 68 01 00 00 jb 411bd0 <_IO_new_file_underflow+0x180> - 411a68: 55 push %rbp - 411a69: 53 push %rbx - 411a6a: 48 89 fb mov %rdi,%rbx - 411a6d: 48 83 ec 08 sub $0x8,%rsp - 411a71: 48 83 7f 38 00 cmpq $0x0,0x38(%rdi) - 411a76: 0f 84 b4 01 00 00 je 411c30 <_IO_new_file_underflow+0x1e0> - 411a7c: a9 02 02 00 00 test $0x202,%eax - 411a81: 0f 84 d9 00 00 00 je 411b60 <_IO_new_file_underflow+0x110> - 411a87: 48 8b 2d b2 8c 2b 00 mov 0x2b8cb2(%rip),%rbp # 6ca740 <_IO_stdout> - 411a8e: 8b 55 00 mov 0x0(%rbp),%edx - 411a91: 89 d0 mov %edx,%eax - 411a93: 25 00 80 00 00 and $0x8000,%eax - 411a98: 0f 85 3a 01 00 00 jne 411bd8 <_IO_new_file_underflow+0x188> - 411a9e: 4c 8b 85 88 00 00 00 mov 0x88(%rbp),%r8 - 411aa5: 64 4c 8b 0c 25 10 00 mov %fs:0x10,%r9 - 411aac: 00 00 - 411aae: 4d 3b 48 08 cmp 0x8(%r8),%r9 - 411ab2: 0f 84 a8 01 00 00 je 411c60 <_IO_new_file_underflow+0x210> - 411ab8: be 01 00 00 00 mov $0x1,%esi - 411abd: 83 3d f8 b6 2b 00 00 cmpl $0x0,0x2bb6f8(%rip) # 6cd1bc <__libc_multiple_threads> - 411ac4: 74 09 je 411acf <_IO_new_file_underflow+0x7f> - 411ac6: f0 41 0f b1 30 lock cmpxchg %esi,(%r8) - 411acb: 75 08 jne 411ad5 <_IO_new_file_underflow+0x85> - 411acd: eb 1c jmp 411aeb <_IO_new_file_underflow+0x9b> - 411acf: 41 0f b1 30 cmpxchg %esi,(%r8) - 411ad3: 74 16 je 411aeb <_IO_new_file_underflow+0x9b> - 411ad5: 49 8d 38 lea (%r8),%rdi - 411ad8: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 411adf: e8 ec 0a 03 00 callq 4425d0 <__lll_lock_wait_private> - 411ae4: 48 81 c4 80 00 00 00 add $0x80,%rsp - 411aeb: 48 8b 3d 4e 8c 2b 00 mov 0x2b8c4e(%rip),%rdi # 6ca740 <_IO_stdout> - 411af2: 4c 8b 85 88 00 00 00 mov 0x88(%rbp),%r8 - 411af9: 8b 17 mov (%rdi),%edx - 411afb: 4d 89 48 08 mov %r9,0x8(%r8) - 411aff: 81 e2 88 02 00 00 and $0x288,%edx - 411b05: 41 83 40 04 01 addl $0x1,0x4(%r8) - 411b0a: 81 fa 80 02 00 00 cmp $0x280,%edx - 411b10: 0f 84 d7 00 00 00 je 411bed <_IO_new_file_underflow+0x19d> - 411b16: f7 45 00 00 80 00 00 testl $0x8000,0x0(%rbp) - 411b1d: 75 41 jne 411b60 <_IO_new_file_underflow+0x110> - 411b1f: 48 8b 95 88 00 00 00 mov 0x88(%rbp),%rdx - 411b26: 83 6a 04 01 subl $0x1,0x4(%rdx) - 411b2a: 75 34 jne 411b60 <_IO_new_file_underflow+0x110> - 411b2c: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) - 411b33: 00 - 411b34: 83 3d 81 b6 2b 00 00 cmpl $0x0,0x2bb681(%rip) # 6cd1bc <__libc_multiple_threads> - 411b3b: 74 07 je 411b44 <_IO_new_file_underflow+0xf4> - 411b3d: f0 ff 0a lock decl (%rdx) - 411b40: 75 06 jne 411b48 <_IO_new_file_underflow+0xf8> - 411b42: eb 1a jmp 411b5e <_IO_new_file_underflow+0x10e> - 411b44: ff 0a decl (%rdx) - 411b46: 74 16 je 411b5e <_IO_new_file_underflow+0x10e> - 411b48: 48 8d 3a lea (%rdx),%rdi - 411b4b: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 411b52: e8 a9 0a 03 00 callq 442600 <__lll_unlock_wake_private> - 411b57: 48 81 c4 80 00 00 00 add $0x80,%rsp - 411b5e: 66 90 xchg %ax,%ax - 411b60: 48 89 df mov %rbx,%rdi - 411b63: e8 58 2e 00 00 callq 4149c0 <_IO_switch_to_get_mode> - 411b68: 48 8b 73 38 mov 0x38(%rbx),%rsi - 411b6c: 48 8b 53 40 mov 0x40(%rbx),%rdx - 411b70: 48 89 df mov %rbx,%rdi - 411b73: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 411b7a: 48 29 f2 sub %rsi,%rdx - 411b7d: 48 89 73 08 mov %rsi,0x8(%rbx) - 411b81: 48 89 73 18 mov %rsi,0x18(%rbx) - 411b85: 48 89 73 10 mov %rsi,0x10(%rbx) - 411b89: 48 89 73 30 mov %rsi,0x30(%rbx) - 411b8d: 48 89 73 28 mov %rsi,0x28(%rbx) - 411b91: 48 89 73 20 mov %rsi,0x20(%rbx) - 411b95: ff 50 70 callq *0x70(%rax) - 411b98: 48 83 f8 00 cmp $0x0,%rax - 411b9c: 7e 6a jle 411c08 <_IO_new_file_underflow+0x1b8> - 411b9e: 48 8b 93 90 00 00 00 mov 0x90(%rbx),%rdx - 411ba5: 48 01 43 10 add %rax,0x10(%rbx) - 411ba9: 48 83 fa ff cmp $0xffffffffffffffff,%rdx - 411bad: 74 0a je 411bb9 <_IO_new_file_underflow+0x169> - 411baf: 48 01 c2 add %rax,%rdx - 411bb2: 48 89 93 90 00 00 00 mov %rdx,0x90(%rbx) - 411bb9: 48 8b 43 08 mov 0x8(%rbx),%rax - 411bbd: 0f b6 00 movzbl (%rax),%eax - 411bc0: 48 83 c4 08 add $0x8,%rsp - 411bc4: 5b pop %rbx - 411bc5: 5d pop %rbp - 411bc6: c3 retq - 411bc7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 411bce: 00 00 - 411bd0: 0f b6 02 movzbl (%rdx),%eax - 411bd3: c3 retq - 411bd4: 0f 1f 40 00 nopl 0x0(%rax) - 411bd8: 81 e2 88 02 00 00 and $0x288,%edx - 411bde: 81 fa 80 02 00 00 cmp $0x280,%edx - 411be4: 0f 85 76 ff ff ff jne 411b60 <_IO_new_file_underflow+0x110> - 411bea: 48 89 ef mov %rbp,%rdi - 411bed: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 411bf4: be ff ff ff ff mov $0xffffffff,%esi - 411bf9: ff 50 18 callq *0x18(%rax) - 411bfc: e9 15 ff ff ff jmpq 411b16 <_IO_new_file_underflow+0xc6> - 411c01: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 411c08: 8b 03 mov (%rbx),%eax - 411c0a: 75 4c jne 411c58 <_IO_new_file_underflow+0x208> - 411c0c: 83 c8 10 or $0x10,%eax - 411c0f: 89 03 mov %eax,(%rbx) - 411c11: 48 c7 83 90 00 00 00 movq $0xffffffffffffffff,0x90(%rbx) - 411c18: ff ff ff ff - 411c1c: 48 83 c4 08 add $0x8,%rsp - 411c20: b8 ff ff ff ff mov $0xffffffff,%eax - 411c25: 5b pop %rbx - 411c26: 5d pop %rbp - 411c27: c3 retq - 411c28: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 411c2f: 00 - 411c30: 48 8b 7f 48 mov 0x48(%rdi),%rdi - 411c34: 48 85 ff test %rdi,%rdi - 411c37: 74 0b je 411c44 <_IO_new_file_underflow+0x1f4> - 411c39: e8 72 c1 00 00 callq 41ddb0 <__cfree> - 411c3e: 81 23 ff fe ff ff andl $0xfffffeff,(%rbx) - 411c44: 48 89 df mov %rbx,%rdi - 411c47: e8 b4 31 00 00 callq 414e00 <_IO_doallocbuf> - 411c4c: 8b 03 mov (%rbx),%eax - 411c4e: e9 29 fe ff ff jmpq 411a7c <_IO_new_file_underflow+0x2c> - 411c53: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 411c58: 83 c8 20 or $0x20,%eax - 411c5b: eb b2 jmp 411c0f <_IO_new_file_underflow+0x1bf> - 411c5d: 0f 1f 00 nopl (%rax) - 411c60: 48 89 ef mov %rbp,%rdi - 411c63: e9 97 fe ff ff jmpq 411aff <_IO_new_file_underflow+0xaf> - 411c68: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 411c6f: 00 - 411c70: 83 c8 20 or $0x20,%eax - 411c73: 89 07 mov %eax,(%rdi) - 411c75: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 411c7c: 64 c7 00 09 00 00 00 movl $0x9,%fs:(%rax) - 411c83: b8 ff ff ff ff mov $0xffffffff,%eax - 411c88: c3 retq - 411c89: f7 45 00 00 80 00 00 testl $0x8000,0x0(%rbp) - 411c90: 48 89 c6 mov %rax,%rsi - 411c93: 75 3f jne 411cd4 <_IO_new_file_underflow+0x284> - 411c95: 48 8b 95 88 00 00 00 mov 0x88(%rbp),%rdx - 411c9c: 83 6a 04 01 subl $0x1,0x4(%rdx) - 411ca0: 75 32 jne 411cd4 <_IO_new_file_underflow+0x284> - 411ca2: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) - 411ca9: 00 - 411caa: 83 3d 0b b5 2b 00 00 cmpl $0x0,0x2bb50b(%rip) # 6cd1bc <__libc_multiple_threads> - 411cb1: 74 07 je 411cba <_IO_new_file_underflow+0x26a> - 411cb3: f0 ff 0a lock decl (%rdx) - 411cb6: 75 06 jne 411cbe <_IO_new_file_underflow+0x26e> - 411cb8: eb 1a jmp 411cd4 <_IO_new_file_underflow+0x284> - 411cba: ff 0a decl (%rdx) - 411cbc: 74 16 je 411cd4 <_IO_new_file_underflow+0x284> - 411cbe: 48 8d 3a lea (%rdx),%rdi - 411cc1: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 411cc8: e8 33 09 03 00 callq 442600 <__lll_unlock_wake_private> - 411ccd: 48 81 c4 80 00 00 00 add $0x80,%rsp - 411cd4: 48 89 f7 mov %rsi,%rdi - 411cd7: e8 94 a8 08 00 callq 49c570 <_Unwind_Resume> - 411cdc: 0f 1f 40 00 nopl 0x0(%rax) - -0000000000411ce0 <_IO_new_file_seekoff>: - 411ce0: 41 56 push %r14 - 411ce2: 41 55 push %r13 - 411ce4: 41 54 push %r12 - 411ce6: 55 push %rbp - 411ce7: 53 push %rbx - 411ce8: 48 89 fb mov %rdi,%rbx - 411ceb: 48 81 ec 90 00 00 00 sub $0x90,%rsp - 411cf2: 85 c9 test %ecx,%ecx - 411cf4: 0f 84 d6 02 00 00 je 411fd0 <_IO_new_file_seekoff+0x2f0> - 411cfa: 48 8b 47 10 mov 0x10(%rdi),%rax - 411cfe: 48 39 47 18 cmp %rax,0x18(%rdi) - 411d02: 48 89 f5 mov %rsi,%rbp - 411d05: 41 89 d4 mov %edx,%r12d - 411d08: 0f 84 ca 00 00 00 je 411dd8 <_IO_new_file_seekoff+0xf8> - 411d0e: 48 8b 57 28 mov 0x28(%rdi),%rdx - 411d12: 48 8b 47 20 mov 0x20(%rdi),%rax - 411d16: 45 31 ed xor %r13d,%r13d - 411d19: 48 39 c2 cmp %rax,%rdx - 411d1c: 0f 86 ce 00 00 00 jbe 411df0 <_IO_new_file_seekoff+0x110> - 411d22: 48 89 df mov %rbx,%rdi - 411d25: e8 96 2c 00 00 callq 4149c0 <_IO_switch_to_get_mode> - 411d2a: 85 c0 test %eax,%eax - 411d2c: 0f 85 06 03 00 00 jne 412038 <_IO_new_file_seekoff+0x358> - 411d32: 48 83 7b 38 00 cmpq $0x0,0x38(%rbx) - 411d37: 0f 84 ca 00 00 00 je 411e07 <_IO_new_file_seekoff+0x127> - 411d3d: 41 83 fc 01 cmp $0x1,%r12d - 411d41: 0f 84 09 01 00 00 je 411e50 <_IO_new_file_seekoff+0x170> - 411d47: 41 83 fc 02 cmp $0x2,%r12d - 411d4b: 0f 85 bf 01 00 00 jne 411f10 <_IO_new_file_seekoff+0x230> - 411d51: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 411d58: 48 89 e6 mov %rsp,%rsi - 411d5b: 48 89 df mov %rbx,%rdi - 411d5e: ff 90 90 00 00 00 callq *0x90(%rax) - 411d64: 85 c0 test %eax,%eax - 411d66: 0f 84 84 01 00 00 je 411ef0 <_IO_new_file_seekoff+0x210> - 411d6c: 48 89 df mov %rbx,%rdi - 411d6f: e8 2c 46 00 00 callq 4163a0 <_IO_unsave_markers> - 411d74: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 411d7b: 48 89 ee mov %rbp,%rsi - 411d7e: 48 c7 c5 ff ff ff ff mov $0xffffffffffffffff,%rbp - 411d85: 44 89 e2 mov %r12d,%edx - 411d88: 48 89 df mov %rbx,%rdi - 411d8b: ff 90 80 00 00 00 callq *0x80(%rax) - 411d91: 48 39 e8 cmp %rbp,%rax - 411d94: 74 29 je 411dbf <_IO_new_file_seekoff+0xdf> - 411d96: 48 8b 53 38 mov 0x38(%rbx),%rdx - 411d9a: 83 23 ef andl $0xffffffef,(%rbx) - 411d9d: 48 89 c5 mov %rax,%rbp - 411da0: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) - 411da7: 48 89 53 18 mov %rdx,0x18(%rbx) - 411dab: 48 89 53 08 mov %rdx,0x8(%rbx) - 411daf: 48 89 53 10 mov %rdx,0x10(%rbx) - 411db3: 48 89 53 28 mov %rdx,0x28(%rbx) - 411db7: 48 89 53 20 mov %rdx,0x20(%rbx) - 411dbb: 48 89 53 30 mov %rdx,0x30(%rbx) - 411dbf: 48 81 c4 90 00 00 00 add $0x90,%rsp - 411dc6: 48 89 e8 mov %rbp,%rax - 411dc9: 5b pop %rbx - 411dca: 5d pop %rbp - 411dcb: 41 5c pop %r12 - 411dcd: 41 5d pop %r13 - 411dcf: 41 5e pop %r14 - 411dd1: c3 retq - 411dd2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 411dd8: 48 8b 47 20 mov 0x20(%rdi),%rax - 411ddc: 48 8b 57 28 mov 0x28(%rdi),%rdx - 411de0: 48 39 d0 cmp %rdx,%rax - 411de3: 0f 85 2d ff ff ff jne 411d16 <_IO_new_file_seekoff+0x36> - 411de9: 41 bd 01 00 00 00 mov $0x1,%r13d - 411def: 90 nop - 411df0: f7 03 00 08 00 00 testl $0x800,(%rbx) - 411df6: 0f 85 26 ff ff ff jne 411d22 <_IO_new_file_seekoff+0x42> - 411dfc: 48 83 7b 38 00 cmpq $0x0,0x38(%rbx) - 411e01: 0f 85 36 ff ff ff jne 411d3d <_IO_new_file_seekoff+0x5d> - 411e07: 48 8b 7b 18 mov 0x18(%rbx),%rdi - 411e0b: 48 85 ff test %rdi,%rdi - 411e0e: 74 0b je 411e1b <_IO_new_file_seekoff+0x13b> - 411e10: e8 9b bf 00 00 callq 41ddb0 <__cfree> - 411e15: 81 23 ff fe ff ff andl $0xfffffeff,(%rbx) - 411e1b: 48 89 df mov %rbx,%rdi - 411e1e: e8 dd 2f 00 00 callq 414e00 <_IO_doallocbuf> - 411e23: 48 8b 43 38 mov 0x38(%rbx),%rax - 411e27: 41 83 fc 01 cmp $0x1,%r12d - 411e2b: 48 89 43 28 mov %rax,0x28(%rbx) - 411e2f: 48 89 43 20 mov %rax,0x20(%rbx) - 411e33: 48 89 43 30 mov %rax,0x30(%rbx) - 411e37: 48 89 43 18 mov %rax,0x18(%rbx) - 411e3b: 48 89 43 08 mov %rax,0x8(%rbx) - 411e3f: 48 89 43 10 mov %rax,0x10(%rbx) - 411e43: 0f 85 fe fe ff ff jne 411d47 <_IO_new_file_seekoff+0x67> - 411e49: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 411e50: 48 8b 43 10 mov 0x10(%rbx),%rax - 411e54: 48 2b 43 08 sub 0x8(%rbx),%rax - 411e58: 48 8b b3 90 00 00 00 mov 0x90(%rbx),%rsi - 411e5f: 48 29 c5 sub %rax,%rbp - 411e62: 48 83 fe ff cmp $0xffffffffffffffff,%rsi - 411e66: 0f 84 00 ff ff ff je 411d6c <_IO_new_file_seekoff+0x8c> - 411e6c: 48 01 f5 add %rsi,%rbp - 411e6f: 0f 88 ae 01 00 00 js 412023 <_IO_new_file_seekoff+0x343> - 411e75: 45 31 e4 xor %r12d,%r12d - 411e78: 48 83 7b 18 00 cmpq $0x0,0x18(%rbx) - 411e7d: 8b 03 mov (%rbx),%eax - 411e7f: 0f 84 9e 00 00 00 je 411f23 <_IO_new_file_seekoff+0x243> - 411e85: f6 c4 01 test $0x1,%ah - 411e88: 0f 85 95 00 00 00 jne 411f23 <_IO_new_file_seekoff+0x243> - 411e8e: 48 8b 53 38 mov 0x38(%rbx),%rdx - 411e92: 48 89 d1 mov %rdx,%rcx - 411e95: 48 2b 4b 10 sub 0x10(%rbx),%rcx - 411e99: 48 01 f1 add %rsi,%rcx - 411e9c: 48 39 e9 cmp %rbp,%rcx - 411e9f: 0f 8f 7e 00 00 00 jg 411f23 <_IO_new_file_seekoff+0x243> - 411ea5: 48 39 f5 cmp %rsi,%rbp - 411ea8: 7d 79 jge 411f23 <_IO_new_file_seekoff+0x243> - 411eaa: 48 89 ef mov %rbp,%rdi - 411ead: 83 e0 ef and $0xffffffef,%eax - 411eb0: 48 89 53 18 mov %rdx,0x18(%rbx) - 411eb4: 48 29 cf sub %rcx,%rdi - 411eb7: 48 89 53 28 mov %rdx,0x28(%rbx) - 411ebb: 48 89 53 20 mov %rdx,0x20(%rbx) - 411ebf: 48 89 f9 mov %rdi,%rcx - 411ec2: 48 89 53 30 mov %rdx,0x30(%rbx) - 411ec6: 89 03 mov %eax,(%rbx) - 411ec8: 48 01 d1 add %rdx,%rcx - 411ecb: 48 85 f6 test %rsi,%rsi - 411ece: 48 89 4b 08 mov %rcx,0x8(%rbx) - 411ed2: 0f 88 e7 fe ff ff js 411dbf <_IO_new_file_seekoff+0xdf> - 411ed8: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 411edf: 31 d2 xor %edx,%edx - 411ee1: 48 89 df mov %rbx,%rdi - 411ee4: ff 90 80 00 00 00 callq *0x80(%rax) - 411eea: e9 d0 fe ff ff jmpq 411dbf <_IO_new_file_seekoff+0xdf> - 411eef: 90 nop - 411ef0: 8b 44 24 18 mov 0x18(%rsp),%eax - 411ef4: 25 00 f0 00 00 and $0xf000,%eax - 411ef9: 3d 00 80 00 00 cmp $0x8000,%eax - 411efe: 0f 85 68 fe ff ff jne 411d6c <_IO_new_file_seekoff+0x8c> - 411f04: 48 03 6c 24 30 add 0x30(%rsp),%rbp - 411f09: 45 31 e4 xor %r12d,%r12d - 411f0c: 0f 1f 40 00 nopl 0x0(%rax) - 411f10: 48 8b b3 90 00 00 00 mov 0x90(%rbx),%rsi - 411f17: 48 83 fe ff cmp $0xffffffffffffffff,%rsi - 411f1b: 0f 85 57 ff ff ff jne 411e78 <_IO_new_file_seekoff+0x198> - 411f21: 8b 03 mov (%rbx),%eax - 411f23: a8 04 test $0x4,%al - 411f25: 0f 85 41 fe ff ff jne 411d6c <_IO_new_file_seekoff+0x8c> - 411f2b: 48 8b 53 38 mov 0x38(%rbx),%rdx - 411f2f: 48 8b 43 40 mov 0x40(%rbx),%rax - 411f33: 49 89 ec mov %rbp,%r12 - 411f36: 48 89 d6 mov %rdx,%rsi - 411f39: 48 29 c6 sub %rax,%rsi - 411f3c: 48 29 d0 sub %rdx,%rax - 411f3f: ba 00 00 00 00 mov $0x0,%edx - 411f44: 48 21 ee and %rbp,%rsi - 411f47: 49 29 f4 sub %rsi,%r12 - 411f4a: 49 39 c4 cmp %rax,%r12 - 411f4d: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 411f54: 0f 8f ee 00 00 00 jg 412048 <_IO_new_file_seekoff+0x368> - 411f5a: 48 89 df mov %rbx,%rdi - 411f5d: ff 90 80 00 00 00 callq *0x80(%rax) - 411f63: 48 85 c0 test %rax,%rax - 411f66: 49 89 c6 mov %rax,%r14 - 411f69: 0f 88 c9 00 00 00 js 412038 <_IO_new_file_seekoff+0x358> - 411f6f: 4d 85 e4 test %r12,%r12 - 411f72: 0f 84 e4 00 00 00 je 41205c <_IO_new_file_seekoff+0x37c> - 411f78: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 411f7f: 45 85 ed test %r13d,%r13d - 411f82: 48 8b 73 38 mov 0x38(%rbx),%rsi - 411f86: 4c 89 e2 mov %r12,%rdx - 411f89: 48 8b 40 70 mov 0x70(%rax),%rax - 411f8d: 75 07 jne 411f96 <_IO_new_file_seekoff+0x2b6> - 411f8f: 48 8b 53 40 mov 0x40(%rbx),%rdx - 411f93: 48 29 f2 sub %rsi,%rdx - 411f96: 48 89 df mov %rbx,%rdi - 411f99: ff d0 callq *%rax - 411f9b: 49 39 c4 cmp %rax,%r12 - 411f9e: 48 89 c1 mov %rax,%rcx - 411fa1: 0f 8e bc 00 00 00 jle 412063 <_IO_new_file_seekoff+0x383> - 411fa7: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 411fab: 4c 89 e5 mov %r12,%rbp - 411fae: 41 bc 01 00 00 00 mov $0x1,%r12d - 411fb4: 0f 84 b2 fd ff ff je 411d6c <_IO_new_file_seekoff+0x8c> - 411fba: 48 29 c5 sub %rax,%rbp - 411fbd: 41 bc 01 00 00 00 mov $0x1,%r12d - 411fc3: e9 a4 fd ff ff jmpq 411d6c <_IO_new_file_seekoff+0x8c> - 411fc8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 411fcf: 00 - 411fd0: 48 83 7f 38 00 cmpq $0x0,0x38(%rdi) - 411fd5: 0f 84 1d 01 00 00 je 4120f8 <_IO_new_file_seekoff+0x418> - 411fdb: 4c 8b 6f 28 mov 0x28(%rdi),%r13 - 411fdf: 4c 8b 67 20 mov 0x20(%rdi),%r12 - 411fe3: 8b 2f mov (%rdi),%ebp - 411fe5: 81 e5 00 10 00 00 and $0x1000,%ebp - 411feb: 4d 39 e5 cmp %r12,%r13 - 411fee: 76 08 jbe 411ff8 <_IO_new_file_seekoff+0x318> - 411ff0: 85 ed test %ebp,%ebp - 411ff2: 0f 85 c0 00 00 00 jne 4120b8 <_IO_new_file_seekoff+0x3d8> - 411ff8: 48 8b 83 90 00 00 00 mov 0x90(%rbx),%rax - 411fff: 4d 39 e5 cmp %r12,%r13 - 412002: 0f 87 98 00 00 00 ja 4120a0 <_IO_new_file_seekoff+0x3c0> - 412008: 48 8b 6b 08 mov 0x8(%rbx),%rbp - 41200c: 48 2b 6b 10 sub 0x10(%rbx),%rbp - 412010: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 412014: 0f 84 f6 00 00 00 je 412110 <_IO_new_file_seekoff+0x430> - 41201a: 48 01 c5 add %rax,%rbp - 41201d: 0f 89 9c fd ff ff jns 411dbf <_IO_new_file_seekoff+0xdf> - 412023: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41202a: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) - 412031: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 412038: 48 c7 c5 ff ff ff ff mov $0xffffffffffffffff,%rbp - 41203f: e9 7b fd ff ff jmpq 411dbf <_IO_new_file_seekoff+0xdf> - 412044: 0f 1f 40 00 nopl 0x0(%rax) - 412048: 48 89 ee mov %rbp,%rsi - 41204b: 48 89 df mov %rbx,%rdi - 41204e: ff 90 80 00 00 00 callq *0x80(%rax) - 412054: 48 85 c0 test %rax,%rax - 412057: 49 89 c6 mov %rax,%r14 - 41205a: 78 dc js 412038 <_IO_new_file_seekoff+0x358> - 41205c: 31 c9 xor %ecx,%ecx - 41205e: 45 31 e4 xor %r12d,%r12d - 412061: 31 c0 xor %eax,%eax - 412063: 48 8b 53 38 mov 0x38(%rbx),%rdx - 412067: 4c 01 f0 add %r14,%rax - 41206a: 83 23 ef andl $0xffffffef,(%rbx) - 41206d: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) - 412074: 49 01 d4 add %rdx,%r12 - 412077: 48 01 d1 add %rdx,%rcx - 41207a: 48 89 53 18 mov %rdx,0x18(%rbx) - 41207e: 4c 89 63 08 mov %r12,0x8(%rbx) - 412082: 48 89 4b 10 mov %rcx,0x10(%rbx) - 412086: 48 89 53 28 mov %rdx,0x28(%rbx) - 41208a: 48 89 53 20 mov %rdx,0x20(%rbx) - 41208e: 48 89 53 30 mov %rdx,0x30(%rbx) - 412092: e9 28 fd ff ff jmpq 411dbf <_IO_new_file_seekoff+0xdf> - 412097: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 41209e: 00 00 - 4120a0: 85 ed test %ebp,%ebp - 4120a2: 48 8b 6b 28 mov 0x28(%rbx),%rbp - 4120a6: 74 40 je 4120e8 <_IO_new_file_seekoff+0x408> - 4120a8: 48 2b 6b 20 sub 0x20(%rbx),%rbp - 4120ac: e9 5f ff ff ff jmpq 412010 <_IO_new_file_seekoff+0x330> - 4120b1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4120b8: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 4120bf: 31 f6 xor %esi,%esi - 4120c1: ba 02 00 00 00 mov $0x2,%edx - 4120c6: ff 90 80 00 00 00 callq *0x80(%rax) - 4120cc: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 4120d0: 0f 84 62 ff ff ff je 412038 <_IO_new_file_seekoff+0x358> - 4120d6: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) - 4120dd: e9 1d ff ff ff jmpq 411fff <_IO_new_file_seekoff+0x31f> - 4120e2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4120e8: 48 2b 6b 10 sub 0x10(%rbx),%rbp - 4120ec: e9 1f ff ff ff jmpq 412010 <_IO_new_file_seekoff+0x330> - 4120f1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4120f8: 48 8b 87 90 00 00 00 mov 0x90(%rdi),%rax - 4120ff: 31 ed xor %ebp,%ebp - 412101: e9 0a ff ff ff jmpq 412010 <_IO_new_file_seekoff+0x330> - 412106: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41210d: 00 00 00 - 412110: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 412117: 31 f6 xor %esi,%esi - 412119: ba 01 00 00 00 mov $0x1,%edx - 41211e: 48 89 df mov %rbx,%rdi - 412121: ff 90 80 00 00 00 callq *0x80(%rax) - 412127: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 41212b: 0f 84 07 ff ff ff je 412038 <_IO_new_file_seekoff+0x358> - 412131: e9 e4 fe ff ff jmpq 41201a <_IO_new_file_seekoff+0x33a> - 412136: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41213d: 00 00 00 - -0000000000412140 <_IO_file_close_mmap>: - 412140: 53 push %rbx - 412141: 48 89 fb mov %rdi,%rbx - 412144: 48 8b 7f 38 mov 0x38(%rdi),%rdi - 412148: 48 8b 73 40 mov 0x40(%rbx),%rsi - 41214c: 48 29 fe sub %rdi,%rsi - 41214f: e8 5c db 02 00 callq 43fcb0 <__munmap> - 412154: 48 c7 43 40 00 00 00 movq $0x0,0x40(%rbx) - 41215b: 00 - 41215c: 48 c7 43 38 00 00 00 movq $0x0,0x38(%rbx) - 412163: 00 - 412164: b8 03 00 00 00 mov $0x3,%eax - 412169: 48 63 7b 70 movslq 0x70(%rbx),%rdi - 41216d: 0f 05 syscall - 41216f: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 412175: 76 11 jbe 412188 <_IO_file_close_mmap+0x48> - 412177: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 41217e: f7 d8 neg %eax - 412180: 64 89 02 mov %eax,%fs:(%rdx) - 412183: b8 ff ff ff ff mov $0xffffffff,%eax - 412188: 5b pop %rbx - 412189: c3 retq - 41218a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -0000000000412190 <_IO_file_seek>: - 412190: 8b 7f 70 mov 0x70(%rdi),%edi - 412193: e9 98 03 03 00 jmpq 442530 <__libc_lseek> - 412198: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41219f: 00 - -00000000004121a0 <_IO_file_sync_mmap>: - 4121a0: 53 push %rbx - 4121a1: 48 8b 77 08 mov 0x8(%rdi),%rsi - 4121a5: 48 89 fb mov %rdi,%rbx - 4121a8: 48 3b 77 10 cmp 0x10(%rdi),%rsi - 4121ac: 74 32 je 4121e0 <_IO_file_sync_mmap+0x40> - 4121ae: 48 2b 77 38 sub 0x38(%rdi),%rsi - 4121b2: 8b 7f 70 mov 0x70(%rdi),%edi - 4121b5: 31 d2 xor %edx,%edx - 4121b7: e8 74 03 03 00 callq 442530 <__libc_lseek> - 4121bc: 48 8b 73 08 mov 0x8(%rbx),%rsi - 4121c0: 48 2b 73 38 sub 0x38(%rbx),%rsi - 4121c4: 48 39 f0 cmp %rsi,%rax - 4121c7: 75 27 jne 4121f0 <_IO_file_sync_mmap+0x50> - 4121c9: 48 8b 43 18 mov 0x18(%rbx),%rax - 4121cd: 48 89 b3 90 00 00 00 mov %rsi,0x90(%rbx) - 4121d4: 48 89 43 08 mov %rax,0x8(%rbx) - 4121d8: 48 89 43 10 mov %rax,0x10(%rbx) - 4121dc: 31 c0 xor %eax,%eax - 4121de: 5b pop %rbx - 4121df: c3 retq - 4121e0: 48 2b 77 38 sub 0x38(%rdi),%rsi - 4121e4: eb e3 jmp 4121c9 <_IO_file_sync_mmap+0x29> - 4121e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4121ed: 00 00 00 - 4121f0: 83 0b 20 orl $0x20,(%rbx) - 4121f3: b8 ff ff ff ff mov $0xffffffff,%eax - 4121f8: 5b pop %rbx - 4121f9: c3 retq - 4121fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -0000000000412200 <_IO_file_xsgetn_maybe_mmap>: - 412200: 41 55 push %r13 - 412202: 41 54 push %r12 - 412204: 49 89 d4 mov %rdx,%r12 - 412207: 55 push %rbp - 412208: 53 push %rbx - 412209: 48 89 f5 mov %rsi,%rbp - 41220c: 48 89 fb mov %rdi,%rbx - 41220f: 48 81 ec 98 00 00 00 sub $0x98,%rsp - 412216: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 41221d: 48 89 e6 mov %rsp,%rsi - 412220: ff 90 90 00 00 00 callq *0x90(%rax) - 412226: 85 c0 test %eax,%eax - 412228: 75 10 jne 41223a <_IO_file_xsgetn_maybe_mmap+0x3a> - 41222a: 8b 44 24 18 mov 0x18(%rsp),%eax - 41222e: 25 00 f0 00 00 and $0xf000,%eax - 412233: 3d 00 80 00 00 cmp $0x8000,%eax - 412238: 74 56 je 412290 <_IO_file_xsgetn_maybe_mmap+0x90> - 41223a: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax - 412240: ba 20 1e 4a 00 mov $0x4a1e20,%edx - 412245: 85 c0 test %eax,%eax - 412247: b8 20 1b 4a 00 mov $0x4a1b20,%eax - 41224c: 48 0f 4e c2 cmovle %rdx,%rax - 412250: 48 89 83 d8 00 00 00 mov %rax,0xd8(%rbx) - 412257: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 41225e: 48 c7 80 30 01 00 00 movq $0x4a1b20,0x130(%rax) - 412265: 20 1b 4a 00 - 412269: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 412270: 4c 89 e2 mov %r12,%rdx - 412273: 48 89 ee mov %rbp,%rsi - 412276: 48 89 df mov %rbx,%rdi - 412279: ff 50 40 callq *0x40(%rax) - 41227c: 48 81 c4 98 00 00 00 add $0x98,%rsp - 412283: 5b pop %rbx - 412284: 5d pop %rbp - 412285: 41 5c pop %r12 - 412287: 41 5d pop %r13 - 412289: c3 retq - 41228a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 412290: 48 8b 74 24 30 mov 0x30(%rsp),%rsi - 412295: 48 85 f6 test %rsi,%rsi - 412298: 74 a0 je 41223a <_IO_file_xsgetn_maybe_mmap+0x3a> - 41229a: 48 8b 83 90 00 00 00 mov 0x90(%rbx),%rax - 4122a1: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 4122a5: 74 05 je 4122ac <_IO_file_xsgetn_maybe_mmap+0xac> - 4122a7: 48 39 c6 cmp %rax,%rsi - 4122aa: 7c 8e jl 41223a <_IO_file_xsgetn_maybe_mmap+0x3a> - 4122ac: 44 8b 43 70 mov 0x70(%rbx),%r8d - 4122b0: 45 31 c9 xor %r9d,%r9d - 4122b3: 31 ff xor %edi,%edi - 4122b5: b9 01 00 00 00 mov $0x1,%ecx - 4122ba: ba 01 00 00 00 mov $0x1,%edx - 4122bf: e8 2c d9 02 00 callq 43fbf0 <__mmap> - 4122c4: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 4122c8: 49 89 c5 mov %rax,%r13 - 4122cb: 0f 84 69 ff ff ff je 41223a <_IO_file_xsgetn_maybe_mmap+0x3a> - 4122d1: 48 8b 74 24 30 mov 0x30(%rsp),%rsi - 4122d6: 8b 7b 70 mov 0x70(%rbx),%edi - 4122d9: 31 d2 xor %edx,%edx - 4122db: e8 50 02 03 00 callq 442530 <__libc_lseek> - 4122e0: 48 8b 74 24 30 mov 0x30(%rsp),%rsi - 4122e5: 48 39 f0 cmp %rsi,%rax - 4122e8: 74 18 je 412302 <_IO_file_xsgetn_maybe_mmap+0x102> - 4122ea: 4c 89 ef mov %r13,%rdi - 4122ed: e8 be d9 02 00 callq 43fcb0 <__munmap> - 4122f2: 48 c7 83 90 00 00 00 movq $0xffffffffffffffff,0x90(%rbx) - 4122f9: ff ff ff ff - 4122fd: e9 38 ff ff ff jmpq 41223a <_IO_file_xsgetn_maybe_mmap+0x3a> - 412302: 49 8d 54 05 00 lea 0x0(%r13,%rax,1),%rdx - 412307: 31 c9 xor %ecx,%ecx - 412309: 4c 89 ee mov %r13,%rsi - 41230c: 48 89 df mov %rbx,%rdi - 41230f: e8 8c 2a 00 00 callq 414da0 <_IO_setb> - 412314: 48 8b 83 90 00 00 00 mov 0x90(%rbx),%rax - 41231b: ba 00 00 00 00 mov $0x0,%edx - 412320: 4c 89 6b 18 mov %r13,0x18(%rbx) - 412324: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 412328: 48 0f 44 c2 cmove %rdx,%rax - 41232c: 8b 93 c0 00 00 00 mov 0xc0(%rbx),%edx - 412332: 4c 01 e8 add %r13,%rax - 412335: 48 89 43 08 mov %rax,0x8(%rbx) - 412339: 48 8b 44 24 30 mov 0x30(%rsp),%rax - 41233e: 49 01 c5 add %rax,%r13 - 412341: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) - 412348: 85 d2 test %edx,%edx - 41234a: b8 60 1a 4a 00 mov $0x4a1a60,%eax - 41234f: ba 60 1d 4a 00 mov $0x4a1d60,%edx - 412354: 4c 89 6b 10 mov %r13,0x10(%rbx) - 412358: 48 0f 4e c2 cmovle %rdx,%rax - 41235c: 48 89 83 d8 00 00 00 mov %rax,0xd8(%rbx) - 412363: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 41236a: 48 c7 80 30 01 00 00 movq $0x4a1a60,0x130(%rax) - 412371: 60 1a 4a 00 - 412375: e9 ef fe ff ff jmpq 412269 <_IO_file_xsgetn_maybe_mmap+0x69> - 41237a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -0000000000412380 <_IO_file_stat>: - 412380: 48 89 f2 mov %rsi,%rdx - 412383: 8b 77 70 mov 0x70(%rdi),%esi - 412386: bf 01 00 00 00 mov $0x1,%edi - 41238b: e9 40 cd 02 00 jmpq 43f0d0 <__fxstat> - -0000000000412390 <_IO_new_file_write>: - 412390: 48 85 d2 test %rdx,%rdx - 412393: 41 56 push %r14 - 412395: 49 89 fe mov %rdi,%r14 - 412398: 41 55 push %r13 - 41239a: 41 54 push %r12 - 41239c: 55 push %rbp - 41239d: 53 push %rbx - 41239e: 0f 8e 93 00 00 00 jle 412437 <_IO_new_file_write+0xa7> - 4123a4: 48 89 f5 mov %rsi,%rbp - 4123a7: 49 89 d4 mov %rdx,%r12 - 4123aa: 48 89 d3 mov %rdx,%rbx - 4123ad: 41 bd 01 00 00 00 mov $0x1,%r13d - 4123b3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4123b8: 41 f6 46 74 02 testb $0x2,0x74(%r14) - 4123bd: 74 51 je 412410 <_IO_new_file_write+0x80> - 4123bf: 49 63 7e 70 movslq 0x70(%r14),%rdi - 4123c3: 48 89 da mov %rbx,%rdx - 4123c6: 48 89 ee mov %rbp,%rsi - 4123c9: 44 89 e8 mov %r13d,%eax - 4123cc: 0f 05 syscall - 4123ce: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 4123d4: 76 49 jbe 41241f <_IO_new_file_write+0x8f> - 4123d6: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 4123dd: f7 d8 neg %eax - 4123df: 64 89 02 mov %eax,%fs:(%rdx) - 4123e2: 41 83 0e 20 orl $0x20,(%r14) - 4123e6: 4c 89 e0 mov %r12,%rax - 4123e9: 48 29 d8 sub %rbx,%rax - 4123ec: 49 8b 96 90 00 00 00 mov 0x90(%r14),%rdx - 4123f3: 48 85 d2 test %rdx,%rdx - 4123f6: 78 0a js 412402 <_IO_new_file_write+0x72> - 4123f8: 48 01 c2 add %rax,%rdx - 4123fb: 49 89 96 90 00 00 00 mov %rdx,0x90(%r14) - 412402: 5b pop %rbx - 412403: 5d pop %rbp - 412404: 41 5c pop %r12 - 412406: 41 5d pop %r13 - 412408: 41 5e pop %r14 - 41240a: c3 retq - 41240b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 412410: 41 8b 7e 70 mov 0x70(%r14),%edi - 412414: 48 89 da mov %rbx,%rdx - 412417: 48 89 ee mov %rbp,%rsi - 41241a: e8 c1 cd 02 00 callq 43f1e0 <__libc_write> - 41241f: 48 85 c0 test %rax,%rax - 412422: 78 be js 4123e2 <_IO_new_file_write+0x52> - 412424: 48 29 c3 sub %rax,%rbx - 412427: 48 01 c5 add %rax,%rbp - 41242a: 48 85 db test %rbx,%rbx - 41242d: 7f 89 jg 4123b8 <_IO_new_file_write+0x28> - 41242f: 4c 89 e0 mov %r12,%rax - 412432: 48 29 d8 sub %rbx,%rax - 412435: eb b5 jmp 4123ec <_IO_new_file_write+0x5c> - 412437: 31 c0 xor %eax,%eax - 412439: eb b1 jmp 4123ec <_IO_new_file_write+0x5c> - 41243b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -0000000000412440 <_IO_file_xsgetn_mmap>: - 412440: 41 57 push %r15 - 412442: 41 56 push %r14 - 412444: 49 89 d7 mov %rdx,%r15 - 412447: 41 55 push %r13 - 412449: 41 54 push %r12 - 41244b: 49 89 f6 mov %rsi,%r14 - 41244e: 55 push %rbp - 41244f: 53 push %rbx - 412450: 48 89 fd mov %rdi,%rbp - 412453: 49 89 f4 mov %rsi,%r12 - 412456: 48 81 ec 98 00 00 00 sub $0x98,%rsp - 41245d: 4c 8b 6f 08 mov 0x8(%rdi),%r13 - 412461: 48 8b 5f 10 mov 0x10(%rdi),%rbx - 412465: 4c 29 eb sub %r13,%rbx - 412468: 48 39 d3 cmp %rdx,%rbx - 41246b: 0f 83 80 01 00 00 jae 4125f1 <_IO_file_xsgetn_mmap+0x1b1> - 412471: f7 07 00 01 00 00 testl $0x100,(%rdi) - 412477: 0f 85 93 01 00 00 jne 412610 <_IO_file_xsgetn_mmap+0x1d0> - 41247d: 48 8b 85 d8 00 00 00 mov 0xd8(%rbp),%rax - 412484: 48 89 e6 mov %rsp,%rsi - 412487: 48 89 ef mov %rbp,%rdi - 41248a: ff 90 90 00 00 00 callq *0x90(%rax) - 412490: 85 c0 test %eax,%eax - 412492: 75 14 jne 4124a8 <_IO_file_xsgetn_mmap+0x68> - 412494: 8b 44 24 18 mov 0x18(%rsp),%eax - 412498: 25 00 f0 00 00 and $0xf000,%eax - 41249d: 3d 00 80 00 00 cmp $0x8000,%eax - 4124a2: 0f 84 88 00 00 00 je 412530 <_IO_file_xsgetn_mmap+0xf0> - 4124a8: 48 8b 7d 38 mov 0x38(%rbp),%rdi - 4124ac: 48 8b 75 40 mov 0x40(%rbp),%rsi - 4124b0: 48 29 fe sub %rdi,%rsi - 4124b3: e8 f8 d7 02 00 callq 43fcb0 <__munmap> - 4124b8: 8b 85 c0 00 00 00 mov 0xc0(%rbp),%eax - 4124be: ba 20 1e 4a 00 mov $0x4a1e20,%edx - 4124c3: 48 c7 45 40 00 00 00 movq $0x0,0x40(%rbp) - 4124ca: 00 - 4124cb: 48 c7 45 38 00 00 00 movq $0x0,0x38(%rbp) - 4124d2: 00 - 4124d3: 48 c7 45 18 00 00 00 movq $0x0,0x18(%rbp) - 4124da: 00 - 4124db: 4c 89 f6 mov %r14,%rsi - 4124de: 48 c7 45 08 00 00 00 movq $0x0,0x8(%rbp) - 4124e5: 00 - 4124e6: 48 c7 45 10 00 00 00 movq $0x0,0x10(%rbp) - 4124ed: 00 - 4124ee: 48 89 ef mov %rbp,%rdi - 4124f1: 85 c0 test %eax,%eax - 4124f3: b8 20 1b 4a 00 mov $0x4a1b20,%eax - 4124f8: 48 0f 4e c2 cmovle %rdx,%rax - 4124fc: 4d 29 f4 sub %r14,%r12 - 4124ff: 4c 89 fa mov %r15,%rdx - 412502: 48 89 85 d8 00 00 00 mov %rax,0xd8(%rbp) - 412509: 48 8b 85 a0 00 00 00 mov 0xa0(%rbp),%rax - 412510: 48 c7 80 30 01 00 00 movq $0x4a1b20,0x130(%rax) - 412517: 20 1b 4a 00 - 41251b: 48 8b 85 d8 00 00 00 mov 0xd8(%rbp),%rax - 412522: ff 50 40 callq *0x40(%rax) - 412525: 4c 01 e0 add %r12,%rax - 412528: e9 cf 00 00 00 jmpq 4125fc <_IO_file_xsgetn_mmap+0x1bc> - 41252d: 0f 1f 00 nopl (%rax) - 412530: 48 8b 5c 24 30 mov 0x30(%rsp),%rbx - 412535: 48 85 db test %rbx,%rbx - 412538: 0f 84 6a ff ff ff je 4124a8 <_IO_file_xsgetn_mmap+0x68> - 41253e: e8 4d d6 02 00 callq 43fb90 <__getpagesize> - 412543: 48 8b 7d 38 mov 0x38(%rbp),%rdi - 412547: 48 63 c8 movslq %eax,%rcx - 41254a: 48 89 ce mov %rcx,%rsi - 41254d: 48 8d 54 0b ff lea -0x1(%rbx,%rcx,1),%rdx - 412552: 48 f7 de neg %rsi - 412555: 49 89 f8 mov %rdi,%r8 - 412558: 48 21 f2 and %rsi,%rdx - 41255b: 48 89 f8 mov %rdi,%rax - 41255e: 49 f7 d0 not %r8 - 412561: 4c 03 45 40 add 0x40(%rbp),%r8 - 412565: 4c 01 c1 add %r8,%rcx - 412568: 48 21 ce and %rcx,%rsi - 41256b: 48 39 f2 cmp %rsi,%rdx - 41256e: 0f 82 01 01 00 00 jb 412675 <_IO_file_xsgetn_mmap+0x235> - 412574: 0f 87 21 01 00 00 ja 41269b <_IO_file_xsgetn_mmap+0x25b> - 41257a: 48 01 fb add %rdi,%rbx - 41257d: 48 89 5d 40 mov %rbx,0x40(%rbp) - 412581: 49 89 dd mov %rbx,%r13 - 412584: 48 8b 55 10 mov 0x10(%rbp),%rdx - 412588: 48 2b 55 08 sub 0x8(%rbp),%rdx - 41258c: 4c 89 ee mov %r13,%rsi - 41258f: 48 8b 8d 90 00 00 00 mov 0x90(%rbp),%rcx - 412596: 48 29 c6 sub %rax,%rsi - 412599: 48 89 7d 18 mov %rdi,0x18(%rbp) - 41259d: 48 29 d1 sub %rdx,%rcx - 4125a0: 48 39 f1 cmp %rsi,%rcx - 4125a3: 48 89 ca mov %rcx,%rdx - 4125a6: 48 89 8d 90 00 00 00 mov %rcx,0x90(%rbp) - 4125ad: 0f 8d ae 00 00 00 jge 412661 <_IO_file_xsgetn_mmap+0x221> - 4125b3: 48 01 fa add %rdi,%rdx - 4125b6: 8b 7d 70 mov 0x70(%rbp),%edi - 4125b9: 4c 89 6d 10 mov %r13,0x10(%rbp) - 4125bd: 48 89 55 08 mov %rdx,0x8(%rbp) - 4125c1: 31 d2 xor %edx,%edx - 4125c3: e8 68 ff 02 00 callq 442530 <__libc_lseek> - 4125c8: 48 8b 55 40 mov 0x40(%rbp),%rdx - 4125cc: 48 2b 55 38 sub 0x38(%rbp),%rdx - 4125d0: 48 39 d0 cmp %rdx,%rax - 4125d3: 0f 84 f3 00 00 00 je 4126cc <_IO_file_xsgetn_mmap+0x28c> - 4125d9: 83 4d 00 20 orl $0x20,0x0(%rbp) - 4125dd: 4c 8b 6d 08 mov 0x8(%rbp),%r13 - 4125e1: 48 8b 5d 10 mov 0x10(%rbp),%rbx - 4125e5: 4c 29 eb sub %r13,%rbx - 4125e8: 4c 39 fb cmp %r15,%rbx - 4125eb: 73 04 jae 4125f1 <_IO_file_xsgetn_mmap+0x1b1> - 4125ed: 83 4d 00 10 orl $0x10,0x0(%rbp) - 4125f1: 48 85 db test %rbx,%rbx - 4125f4: 75 4a jne 412640 <_IO_file_xsgetn_mmap+0x200> - 4125f6: 4c 89 e0 mov %r12,%rax - 4125f9: 4c 29 f0 sub %r14,%rax - 4125fc: 48 81 c4 98 00 00 00 add $0x98,%rsp - 412603: 5b pop %rbx - 412604: 5d pop %rbp - 412605: 41 5c pop %r12 - 412607: 41 5d pop %r13 - 412609: 41 5e pop %r14 - 41260b: 41 5f pop %r15 - 41260d: c3 retq - 41260e: 66 90 xchg %ax,%ax - 412610: 48 89 da mov %rbx,%rdx - 412613: 4c 89 ee mov %r13,%rsi - 412616: 4c 89 f7 mov %r14,%rdi - 412619: e8 a2 3f 01 00 callq 4265c0 <__mempcpy> - 41261e: 48 89 ef mov %rbp,%rdi - 412621: 49 29 df sub %rbx,%r15 - 412624: 49 89 c4 mov %rax,%r12 - 412627: e8 34 23 00 00 callq 414960 <_IO_switch_to_main_get_area> - 41262c: 4c 8b 6d 08 mov 0x8(%rbp),%r13 - 412630: 48 8b 5d 10 mov 0x10(%rbp),%rbx - 412634: 4c 29 eb sub %r13,%rbx - 412637: 49 39 df cmp %rbx,%r15 - 41263a: 0f 87 3d fe ff ff ja 41247d <_IO_file_xsgetn_mmap+0x3d> - 412640: 4c 39 fb cmp %r15,%rbx - 412643: 4c 89 e7 mov %r12,%rdi - 412646: 4c 89 ee mov %r13,%rsi - 412649: 49 0f 47 df cmova %r15,%rbx - 41264d: 48 89 da mov %rbx,%rdx - 412650: 4c 01 eb add %r13,%rbx - 412653: e8 68 3f 01 00 callq 4265c0 <__mempcpy> - 412658: 48 89 5d 08 mov %rbx,0x8(%rbp) - 41265c: 49 89 c4 mov %rax,%r12 - 41265f: eb 95 jmp 4125f6 <_IO_file_xsgetn_mmap+0x1b6> - 412661: 4d 85 ff test %r15,%r15 - 412664: 4c 89 6d 08 mov %r13,0x8(%rbp) - 412668: 4c 89 6d 10 mov %r13,0x10(%rbp) - 41266c: 74 88 je 4125f6 <_IO_file_xsgetn_mmap+0x1b6> - 41266e: 31 db xor %ebx,%ebx - 412670: e9 78 ff ff ff jmpq 4125ed <_IO_file_xsgetn_mmap+0x1ad> - 412675: 48 01 d7 add %rdx,%rdi - 412678: 48 29 d6 sub %rdx,%rsi - 41267b: e8 30 d6 02 00 callq 43fcb0 <__munmap> - 412680: 48 8b 7d 38 mov 0x38(%rbp),%rdi - 412684: 48 89 fb mov %rdi,%rbx - 412687: 48 03 5c 24 30 add 0x30(%rsp),%rbx - 41268c: 48 89 f8 mov %rdi,%rax - 41268f: 48 89 5d 40 mov %rbx,0x40(%rbp) - 412693: 49 89 dd mov %rbx,%r13 - 412696: e9 e9 fe ff ff jmpq 412584 <_IO_file_xsgetn_mmap+0x144> - 41269b: 31 c0 xor %eax,%eax - 41269d: b9 01 00 00 00 mov $0x1,%ecx - 4126a2: e8 a9 fe 02 00 callq 442550 <__mremap> - 4126a7: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 4126ab: 0f 84 f7 fd ff ff je 4124a8 <_IO_file_xsgetn_mmap+0x68> - 4126b1: 48 89 c3 mov %rax,%rbx - 4126b4: 48 03 5c 24 30 add 0x30(%rsp),%rbx - 4126b9: 48 89 45 38 mov %rax,0x38(%rbp) - 4126bd: 48 89 c7 mov %rax,%rdi - 4126c0: 48 89 5d 40 mov %rbx,0x40(%rbp) - 4126c4: 49 89 dd mov %rbx,%r13 - 4126c7: e9 b8 fe ff ff jmpq 412584 <_IO_file_xsgetn_mmap+0x144> - 4126cc: 48 89 85 90 00 00 00 mov %rax,0x90(%rbp) - 4126d3: e9 05 ff ff ff jmpq 4125dd <_IO_file_xsgetn_mmap+0x19d> - 4126d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4126df: 00 - -00000000004126e0 <_IO_file_xsgetn>: - 4126e0: 41 56 push %r14 - 4126e2: 41 55 push %r13 - 4126e4: 49 89 f6 mov %rsi,%r14 - 4126e7: 41 54 push %r12 - 4126e9: 55 push %rbp - 4126ea: 49 89 d5 mov %rdx,%r13 - 4126ed: 53 push %rbx - 4126ee: 48 83 7f 38 00 cmpq $0x0,0x38(%rdi) - 4126f3: 48 89 fb mov %rdi,%rbx - 4126f6: 0f 84 a4 01 00 00 je 4128a0 <_IO_file_xsgetn+0x1c0> - 4126fc: 4d 85 ed test %r13,%r13 - 4126ff: 4d 89 ec mov %r13,%r12 - 412702: 0f 84 c8 00 00 00 je 4127d0 <_IO_file_xsgetn+0xf0> - 412708: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41270f: 00 - 412710: 48 8b 73 08 mov 0x8(%rbx),%rsi - 412714: 48 8b 6b 10 mov 0x10(%rbx),%rbp - 412718: 48 29 f5 sub %rsi,%rbp - 41271b: 4c 39 e5 cmp %r12,%rbp - 41271e: 0f 83 c4 00 00 00 jae 4127e8 <_IO_file_xsgetn+0x108> - 412724: 48 85 ed test %rbp,%rbp - 412727: 0f 85 23 01 00 00 jne 412850 <_IO_file_xsgetn+0x170> - 41272d: f7 03 00 01 00 00 testl $0x100,(%rbx) - 412733: 0f 85 07 01 00 00 jne 412840 <_IO_file_xsgetn+0x160> - 412739: 48 8b 53 38 mov 0x38(%rbx),%rdx - 41273d: 48 85 d2 test %rdx,%rdx - 412740: 0f 84 ba 00 00 00 je 412800 <_IO_file_xsgetn+0x120> - 412746: 48 8b 4b 40 mov 0x40(%rbx),%rcx - 41274a: 48 29 d1 sub %rdx,%rcx - 41274d: 49 39 cc cmp %rcx,%r12 - 412750: 0f 82 1a 01 00 00 jb 412870 <_IO_file_xsgetn+0x190> - 412756: 48 83 f9 7f cmp $0x7f,%rcx - 41275a: 48 89 53 18 mov %rdx,0x18(%rbx) - 41275e: 48 89 53 08 mov %rdx,0x8(%rbx) - 412762: 48 89 53 10 mov %rdx,0x10(%rbx) - 412766: 48 89 53 28 mov %rdx,0x28(%rbx) - 41276a: 48 89 53 20 mov %rdx,0x20(%rbx) - 41276e: 48 89 53 30 mov %rdx,0x30(%rbx) - 412772: 0f 86 b8 00 00 00 jbe 412830 <_IO_file_xsgetn+0x150> - 412778: 4c 89 e0 mov %r12,%rax - 41277b: 31 d2 xor %edx,%edx - 41277d: 48 f7 f1 div %rcx - 412780: 4c 89 e0 mov %r12,%rax - 412783: 48 29 d0 sub %rdx,%rax - 412786: 48 89 c2 mov %rax,%rdx - 412789: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 412790: 4c 89 f6 mov %r14,%rsi - 412793: 48 89 df mov %rbx,%rdi - 412796: ff 50 70 callq *0x70(%rax) - 412799: 48 83 f8 00 cmp $0x0,%rax - 41279d: 0f 8e ed 00 00 00 jle 412890 <_IO_file_xsgetn+0x1b0> - 4127a3: 48 8b 93 90 00 00 00 mov 0x90(%rbx),%rdx - 4127aa: 49 01 c6 add %rax,%r14 - 4127ad: 49 29 c4 sub %rax,%r12 - 4127b0: 48 83 fa ff cmp $0xffffffffffffffff,%rdx - 4127b4: 74 0a je 4127c0 <_IO_file_xsgetn+0xe0> - 4127b6: 48 01 d0 add %rdx,%rax - 4127b9: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) - 4127c0: 4d 85 e4 test %r12,%r12 - 4127c3: 0f 85 47 ff ff ff jne 412710 <_IO_file_xsgetn+0x30> - 4127c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4127d0: 45 31 e4 xor %r12d,%r12d - 4127d3: 4c 89 e8 mov %r13,%rax - 4127d6: 5b pop %rbx - 4127d7: 4c 29 e0 sub %r12,%rax - 4127da: 5d pop %rbp - 4127db: 41 5c pop %r12 - 4127dd: 41 5d pop %r13 - 4127df: 41 5e pop %r14 - 4127e1: c3 retq - 4127e2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4127e8: 4c 89 e2 mov %r12,%rdx - 4127eb: 4c 89 f7 mov %r14,%rdi - 4127ee: e8 2d 98 01 00 callq 42c020 - 4127f3: 4c 01 63 08 add %r12,0x8(%rbx) - 4127f7: eb d7 jmp 4127d0 <_IO_file_xsgetn+0xf0> - 4127f9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 412800: 48 c7 43 18 00 00 00 movq $0x0,0x18(%rbx) - 412807: 00 - 412808: 48 c7 43 08 00 00 00 movq $0x0,0x8(%rbx) - 41280f: 00 - 412810: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) - 412817: 00 - 412818: 48 c7 43 28 00 00 00 movq $0x0,0x28(%rbx) - 41281f: 00 - 412820: 48 c7 43 20 00 00 00 movq $0x0,0x20(%rbx) - 412827: 00 - 412828: 48 c7 43 30 00 00 00 movq $0x0,0x30(%rbx) - 41282f: 00 - 412830: 4c 89 e2 mov %r12,%rdx - 412833: e9 51 ff ff ff jmpq 412789 <_IO_file_xsgetn+0xa9> - 412838: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41283f: 00 - 412840: 48 89 df mov %rbx,%rdi - 412843: e8 18 21 00 00 callq 414960 <_IO_switch_to_main_get_area> - 412848: e9 73 ff ff ff jmpq 4127c0 <_IO_file_xsgetn+0xe0> - 41284d: 0f 1f 00 nopl (%rax) - 412850: 4c 89 f7 mov %r14,%rdi - 412853: 48 89 ea mov %rbp,%rdx - 412856: 49 29 ec sub %rbp,%r12 - 412859: e8 62 3d 01 00 callq 4265c0 <__mempcpy> - 41285e: 48 01 6b 08 add %rbp,0x8(%rbx) - 412862: 49 89 c6 mov %rax,%r14 - 412865: e9 c3 fe ff ff jmpq 41272d <_IO_file_xsgetn+0x4d> - 41286a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 412870: 48 89 df mov %rbx,%rdi - 412873: e8 48 22 00 00 callq 414ac0 <__underflow> - 412878: 83 f8 ff cmp $0xffffffff,%eax - 41287b: 0f 85 3f ff ff ff jne 4127c0 <_IO_file_xsgetn+0xe0> - 412881: 4c 89 e8 mov %r13,%rax - 412884: 5b pop %rbx - 412885: 4c 29 e0 sub %r12,%rax - 412888: 5d pop %rbp - 412889: 41 5c pop %r12 - 41288b: 41 5d pop %r13 - 41288d: 41 5e pop %r14 - 41288f: c3 retq - 412890: 75 2f jne 4128c1 <_IO_file_xsgetn+0x1e1> - 412892: 83 0b 10 orl $0x10,(%rbx) - 412895: e9 39 ff ff ff jmpq 4127d3 <_IO_file_xsgetn+0xf3> - 41289a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4128a0: 48 8b 7f 48 mov 0x48(%rdi),%rdi - 4128a4: 48 85 ff test %rdi,%rdi - 4128a7: 74 0b je 4128b4 <_IO_file_xsgetn+0x1d4> - 4128a9: e8 02 b5 00 00 callq 41ddb0 <__cfree> - 4128ae: 81 23 ff fe ff ff andl $0xfffffeff,(%rbx) - 4128b4: 48 89 df mov %rbx,%rdi - 4128b7: e8 44 25 00 00 callq 414e00 <_IO_doallocbuf> - 4128bc: e9 3b fe ff ff jmpq 4126fc <_IO_file_xsgetn+0x1c> - 4128c1: 83 0b 20 orl $0x20,(%rbx) - 4128c4: e9 0a ff ff ff jmpq 4127d3 <_IO_file_xsgetn+0xf3> - 4128c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -00000000004128d0 <_IO_file_seekoff_mmap>: - 4128d0: 55 push %rbp - 4128d1: 53 push %rbx - 4128d2: 48 89 fb mov %rdi,%rbx - 4128d5: 48 83 ec 08 sub $0x8,%rsp - 4128d9: 85 c9 test %ecx,%ecx - 4128db: 0f 84 87 00 00 00 je 412968 <_IO_file_seekoff_mmap+0x98> - 4128e1: 83 fa 01 cmp $0x1,%edx - 4128e4: 48 89 f5 mov %rsi,%rbp - 4128e7: 74 6f je 412958 <_IO_file_seekoff_mmap+0x88> - 4128e9: 83 fa 02 cmp $0x2,%edx - 4128ec: 75 0b jne 4128f9 <_IO_file_seekoff_mmap+0x29> - 4128ee: 48 8b 47 40 mov 0x40(%rdi),%rax - 4128f2: 48 2b 47 38 sub 0x38(%rdi),%rax - 4128f6: 48 01 c5 add %rax,%rbp - 4128f9: 48 85 ed test %rbp,%rbp - 4128fc: 0f 88 96 00 00 00 js 412998 <_IO_file_seekoff_mmap+0xc8> - 412902: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 412909: 31 d2 xor %edx,%edx - 41290b: 48 89 ee mov %rbp,%rsi - 41290e: 48 89 df mov %rbx,%rdi - 412911: ff 90 80 00 00 00 callq *0x80(%rax) - 412917: 48 85 c0 test %rax,%rax - 41291a: 0f 88 8f 00 00 00 js 4129af <_IO_file_seekoff_mmap+0xdf> - 412920: 48 8b 4b 40 mov 0x40(%rbx),%rcx - 412924: 48 8b 53 38 mov 0x38(%rbx),%rdx - 412928: 48 89 ce mov %rcx,%rsi - 41292b: 48 89 53 18 mov %rdx,0x18(%rbx) - 41292f: 48 29 d6 sub %rdx,%rsi - 412932: 48 39 f5 cmp %rsi,%rbp - 412935: 7e 51 jle 412988 <_IO_file_seekoff_mmap+0xb8> - 412937: 48 89 4b 08 mov %rcx,0x8(%rbx) - 41293b: 48 89 4b 10 mov %rcx,0x10(%rbx) - 41293f: 83 23 ef andl $0xffffffef,(%rbx) - 412942: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) - 412949: 48 89 e8 mov %rbp,%rax - 41294c: 48 83 c4 08 add $0x8,%rsp - 412950: 5b pop %rbx - 412951: 5d pop %rbp - 412952: c3 retq - 412953: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 412958: 48 8b 47 08 mov 0x8(%rdi),%rax - 41295c: 48 2b 47 18 sub 0x18(%rdi),%rax - 412960: 48 01 c5 add %rax,%rbp - 412963: eb 94 jmp 4128f9 <_IO_file_seekoff_mmap+0x29> - 412965: 0f 1f 00 nopl (%rax) - 412968: 48 8b 57 10 mov 0x10(%rdi),%rdx - 41296c: 48 2b 57 08 sub 0x8(%rdi),%rdx - 412970: 48 8b 87 90 00 00 00 mov 0x90(%rdi),%rax - 412977: 48 83 c4 08 add $0x8,%rsp - 41297b: 5b pop %rbx - 41297c: 5d pop %rbp - 41297d: 48 29 d0 sub %rdx,%rax - 412980: c3 retq - 412981: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 412988: 48 01 ea add %rbp,%rdx - 41298b: 48 89 53 08 mov %rdx,0x8(%rbx) - 41298f: 48 89 53 10 mov %rdx,0x10(%rbx) - 412993: eb aa jmp 41293f <_IO_file_seekoff_mmap+0x6f> - 412995: 0f 1f 00 nopl (%rax) - 412998: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41299f: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) - 4129a6: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 4129ad: eb 9d jmp 41294c <_IO_file_seekoff_mmap+0x7c> - 4129af: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 4129b6: eb 94 jmp 41294c <_IO_file_seekoff_mmap+0x7c> - 4129b8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4129bf: 00 - -00000000004129c0 <_IO_file_read>: - 4129c0: f6 47 74 02 testb $0x2,0x74(%rdi) - 4129c4: 74 32 je 4129f8 <_IO_file_read+0x38> - 4129c6: 48 63 7f 70 movslq 0x70(%rdi),%rdi - 4129ca: 31 c0 xor %eax,%eax - 4129cc: 0f 05 syscall - 4129ce: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 4129d4: 76 1a jbe 4129f0 <_IO_file_read+0x30> - 4129d6: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 4129dd: f7 d8 neg %eax - 4129df: 64 89 02 mov %eax,%fs:(%rdx) - 4129e2: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 4129e9: c3 retq - 4129ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4129f0: f3 c3 repz retq - 4129f2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4129f8: 8b 7f 70 mov 0x70(%rdi),%edi - 4129fb: e9 80 c7 02 00 jmpq 43f180 <__libc_read> - -0000000000412a00 <_IO_new_file_xsputn>: - 412a00: 31 c0 xor %eax,%eax - 412a02: 48 85 d2 test %rdx,%rdx - 412a05: 0f 84 84 00 00 00 je 412a8f <_IO_new_file_xsputn+0x8f> - 412a0b: 41 57 push %r15 - 412a0d: 41 56 push %r14 - 412a0f: 41 55 push %r13 - 412a11: 41 54 push %r12 - 412a13: 49 89 f5 mov %rsi,%r13 - 412a16: 55 push %rbp - 412a17: 53 push %rbx - 412a18: 49 89 d4 mov %rdx,%r12 - 412a1b: 48 89 fb mov %rdi,%rbx - 412a1e: 48 83 ec 08 sub $0x8,%rsp - 412a22: 8b 07 mov (%rdi),%eax - 412a24: 25 00 0a 00 00 and $0xa00,%eax - 412a29: 3d 00 0a 00 00 cmp $0xa00,%eax - 412a2e: 0f 84 bc 00 00 00 je 412af0 <_IO_new_file_xsputn+0xf0> - 412a34: 48 8b 57 30 mov 0x30(%rdi),%rdx - 412a38: 48 8b 7f 28 mov 0x28(%rdi),%rdi - 412a3c: 48 39 fa cmp %rdi,%rdx - 412a3f: 76 57 jbe 412a98 <_IO_new_file_xsputn+0x98> - 412a41: 48 29 fa sub %rdi,%rdx - 412a44: 45 31 f6 xor %r14d,%r14d - 412a47: 48 85 d2 test %rdx,%rdx - 412a4a: 0f 84 f0 00 00 00 je 412b40 <_IO_new_file_xsputn+0x140> - 412a50: 49 39 d4 cmp %rdx,%r12 - 412a53: 4c 89 ee mov %r13,%rsi - 412a56: 49 0f 46 d4 cmovbe %r12,%rdx - 412a5a: 48 89 d5 mov %rdx,%rbp - 412a5d: e8 5e 3b 01 00 callq 4265c0 <__mempcpy> - 412a62: 48 89 43 28 mov %rax,0x28(%rbx) - 412a66: 4c 89 e0 mov %r12,%rax - 412a69: 49 01 ed add %rbp,%r13 - 412a6c: 48 29 e8 sub %rbp,%rax - 412a6f: 48 89 c5 mov %rax,%rbp - 412a72: 49 01 ee add %rbp,%r14 - 412a75: 0f 85 12 02 00 00 jne 412c8d <_IO_new_file_xsputn+0x28d> - 412a7b: 4c 89 e0 mov %r12,%rax - 412a7e: 48 29 e8 sub %rbp,%rax - 412a81: 48 83 c4 08 add $0x8,%rsp - 412a85: 5b pop %rbx - 412a86: 5d pop %rbp - 412a87: 41 5c pop %r12 - 412a89: 41 5d pop %r13 - 412a8b: 41 5e pop %r14 - 412a8d: 41 5f pop %r15 - 412a8f: f3 c3 repz retq - 412a91: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 412a98: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 412a9f: be ff ff ff ff mov $0xffffffff,%esi - 412aa4: 48 89 df mov %rbx,%rdi - 412aa7: 4c 89 e5 mov %r12,%rbp - 412aaa: ff 50 18 callq *0x18(%rax) - 412aad: 83 f8 ff cmp $0xffffffff,%eax - 412ab0: 74 c9 je 412a7b <_IO_new_file_xsputn+0x7b> - 412ab2: 48 8b 4b 40 mov 0x40(%rbx),%rcx - 412ab6: 48 2b 4b 38 sub 0x38(%rbx),%rcx - 412aba: 31 d2 xor %edx,%edx - 412abc: 48 83 f9 7f cmp $0x7f,%rcx - 412ac0: 0f 87 ad 00 00 00 ja 412b73 <_IO_new_file_xsputn+0x173> - 412ac6: 49 89 ee mov %rbp,%r14 - 412ac9: 49 29 d6 sub %rdx,%r14 - 412acc: 0f 85 ae 00 00 00 jne 412b80 <_IO_new_file_xsputn+0x180> - 412ad2: 48 85 ed test %rbp,%rbp - 412ad5: 74 a4 je 412a7b <_IO_new_file_xsputn+0x7b> - 412ad7: 4b 8d 74 35 00 lea 0x0(%r13,%r14,1),%rsi - 412adc: 48 89 ea mov %rbp,%rdx - 412adf: 48 89 df mov %rbx,%rdi - 412ae2: e8 e9 23 00 00 callq 414ed0 <_IO_default_xsputn> - 412ae7: 48 29 c5 sub %rax,%rbp - 412aea: eb 8f jmp 412a7b <_IO_new_file_xsputn+0x7b> - 412aec: 0f 1f 40 00 nopl 0x0(%rax) - 412af0: 48 8b 7f 28 mov 0x28(%rdi),%rdi - 412af4: 48 8b 53 40 mov 0x40(%rbx),%rdx - 412af8: 48 29 fa sub %rdi,%rdx - 412afb: 49 39 d4 cmp %rdx,%r12 - 412afe: 0f 87 40 ff ff ff ja 412a44 <_IO_new_file_xsputn+0x44> - 412b04: 4a 8d 0c 26 lea (%rsi,%r12,1),%rcx - 412b08: 48 39 ce cmp %rcx,%rsi - 412b0b: 73 25 jae 412b32 <_IO_new_file_xsputn+0x132> - 412b0d: 80 79 ff 0a cmpb $0xa,-0x1(%rcx) - 412b11: 48 8d 41 ff lea -0x1(%rcx),%rax - 412b15: 75 16 jne 412b2d <_IO_new_file_xsputn+0x12d> - 412b17: e9 e4 00 00 00 jmpq 412c00 <_IO_new_file_xsputn+0x200> - 412b1c: 0f 1f 40 00 nopl 0x0(%rax) - 412b20: 48 83 e8 01 sub $0x1,%rax - 412b24: 80 38 0a cmpb $0xa,(%rax) - 412b27: 0f 84 d3 00 00 00 je 412c00 <_IO_new_file_xsputn+0x200> - 412b2d: 49 39 c5 cmp %rax,%r13 - 412b30: 75 ee jne 412b20 <_IO_new_file_xsputn+0x120> - 412b32: 45 31 f6 xor %r14d,%r14d - 412b35: e9 16 ff ff ff jmpq 412a50 <_IO_new_file_xsputn+0x50> - 412b3a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 412b40: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 412b47: be ff ff ff ff mov $0xffffffff,%esi - 412b4c: 48 89 df mov %rbx,%rdi - 412b4f: ff 50 18 callq *0x18(%rax) - 412b52: 89 c2 mov %eax,%edx - 412b54: 31 c0 xor %eax,%eax - 412b56: 83 fa ff cmp $0xffffffff,%edx - 412b59: 0f 84 22 ff ff ff je 412a81 <_IO_new_file_xsputn+0x81> - 412b5f: 48 8b 4b 40 mov 0x40(%rbx),%rcx - 412b63: 48 2b 4b 38 sub 0x38(%rbx),%rcx - 412b67: 4c 89 e5 mov %r12,%rbp - 412b6a: 4d 89 e6 mov %r12,%r14 - 412b6d: 48 83 f9 7f cmp $0x7f,%rcx - 412b71: 76 0d jbe 412b80 <_IO_new_file_xsputn+0x180> - 412b73: 48 89 e8 mov %rbp,%rax - 412b76: 31 d2 xor %edx,%edx - 412b78: 48 f7 f1 div %rcx - 412b7b: e9 46 ff ff ff jmpq 412ac6 <_IO_new_file_xsputn+0xc6> - 412b80: f7 03 00 10 00 00 testl $0x1000,(%rbx) - 412b86: 0f 84 94 00 00 00 je 412c20 <_IO_new_file_xsputn+0x220> - 412b8c: 48 c7 83 90 00 00 00 movq $0xffffffffffffffff,0x90(%rbx) - 412b93: ff ff ff ff - 412b97: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 412b9e: 4c 89 f2 mov %r14,%rdx - 412ba1: 4c 89 ee mov %r13,%rsi - 412ba4: 48 89 df mov %rbx,%rdi - 412ba7: ff 50 78 callq *0x78(%rax) - 412baa: 49 89 c7 mov %rax,%r15 - 412bad: 0f b7 83 80 00 00 00 movzwl 0x80(%rbx),%eax - 412bb4: 4d 85 ff test %r15,%r15 - 412bb7: 74 09 je 412bc2 <_IO_new_file_xsputn+0x1c2> - 412bb9: 66 85 c0 test %ax,%ax - 412bbc: 0f 85 ae 00 00 00 jne 412c70 <_IO_new_file_xsputn+0x270> - 412bc2: 8b 93 c0 00 00 00 mov 0xc0(%rbx),%edx - 412bc8: 48 8b 43 38 mov 0x38(%rbx),%rax - 412bcc: 85 d2 test %edx,%edx - 412bce: 48 89 43 18 mov %rax,0x18(%rbx) - 412bd2: 48 89 43 08 mov %rax,0x8(%rbx) - 412bd6: 48 89 43 10 mov %rax,0x10(%rbx) - 412bda: 48 89 43 28 mov %rax,0x28(%rbx) - 412bde: 48 89 43 20 mov %rax,0x20(%rbx) - 412be2: 7e 7b jle 412c5f <_IO_new_file_xsputn+0x25f> - 412be4: 48 8b 43 40 mov 0x40(%rbx),%rax - 412be8: 4c 29 fd sub %r15,%rbp - 412beb: 4d 39 f7 cmp %r14,%r15 - 412bee: 48 89 43 30 mov %rax,0x30(%rbx) - 412bf2: 0f 83 da fe ff ff jae 412ad2 <_IO_new_file_xsputn+0xd2> - 412bf8: e9 7e fe ff ff jmpq 412a7b <_IO_new_file_xsputn+0x7b> - 412bfd: 0f 1f 00 nopl (%rax) - 412c00: 4c 29 e8 sub %r13,%rax - 412c03: 41 be 01 00 00 00 mov $0x1,%r14d - 412c09: 4c 89 e5 mov %r12,%rbp - 412c0c: 48 83 c0 01 add $0x1,%rax - 412c10: 48 89 c2 mov %rax,%rdx - 412c13: 0f 85 37 fe ff ff jne 412a50 <_IO_new_file_xsputn+0x50> - 412c19: e9 54 fe ff ff jmpq 412a72 <_IO_new_file_xsputn+0x72> - 412c1e: 66 90 xchg %ax,%ax - 412c20: 48 8b 43 10 mov 0x10(%rbx),%rax - 412c24: 48 8b 73 20 mov 0x20(%rbx),%rsi - 412c28: 48 39 f0 cmp %rsi,%rax - 412c2b: 0f 84 66 ff ff ff je 412b97 <_IO_new_file_xsputn+0x197> - 412c31: 48 29 c6 sub %rax,%rsi - 412c34: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 412c3b: ba 01 00 00 00 mov $0x1,%edx - 412c40: 48 89 df mov %rbx,%rdi - 412c43: ff 90 80 00 00 00 callq *0x80(%rax) - 412c49: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 412c4d: 0f 84 28 fe ff ff je 412a7b <_IO_new_file_xsputn+0x7b> - 412c53: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) - 412c5a: e9 38 ff ff ff jmpq 412b97 <_IO_new_file_xsputn+0x197> - 412c5f: f7 03 02 02 00 00 testl $0x202,(%rbx) - 412c65: 0f 85 7d ff ff ff jne 412be8 <_IO_new_file_xsputn+0x1e8> - 412c6b: e9 74 ff ff ff jmpq 412be4 <_IO_new_file_xsputn+0x1e4> - 412c70: 8d 78 ff lea -0x1(%rax),%edi - 412c73: 44 89 fa mov %r15d,%edx - 412c76: 4c 89 ee mov %r13,%rsi - 412c79: e8 42 2d 00 00 callq 4159c0 <_IO_adjust_column> - 412c7e: 83 c0 01 add $0x1,%eax - 412c81: 66 89 83 80 00 00 00 mov %ax,0x80(%rbx) - 412c88: e9 35 ff ff ff jmpq 412bc2 <_IO_new_file_xsputn+0x1c2> - 412c8d: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 412c94: 83 ce ff or $0xffffffff,%esi - 412c97: 48 89 df mov %rbx,%rdi - 412c9a: ff 50 18 callq *0x18(%rax) - 412c9d: 83 c0 01 add $0x1,%eax - 412ca0: 0f 85 0c fe ff ff jne 412ab2 <_IO_new_file_xsputn+0xb2> - 412ca6: 48 85 ed test %rbp,%rbp - 412ca9: 0f 85 cc fd ff ff jne 412a7b <_IO_new_file_xsputn+0x7b> - 412caf: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 412cb6: e9 c6 fd ff ff jmpq 412a81 <_IO_new_file_xsputn+0x81> - 412cbb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -0000000000412cc0 <_IO_file_underflow_maybe_mmap>: - 412cc0: 55 push %rbp - 412cc1: 53 push %rbx - 412cc2: 48 89 fb mov %rdi,%rbx - 412cc5: 48 81 ec 98 00 00 00 sub $0x98,%rsp - 412ccc: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 412cd3: 48 89 e6 mov %rsp,%rsi - 412cd6: ff 90 90 00 00 00 callq *0x90(%rax) - 412cdc: 85 c0 test %eax,%eax - 412cde: 75 10 jne 412cf0 <_IO_file_underflow_maybe_mmap+0x30> - 412ce0: 8b 44 24 18 mov 0x18(%rsp),%eax - 412ce4: 25 00 f0 00 00 and $0xf000,%eax - 412ce9: 3d 00 80 00 00 cmp $0x8000,%eax - 412cee: 74 50 je 412d40 <_IO_file_underflow_maybe_mmap+0x80> - 412cf0: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax - 412cf6: ba 20 1e 4a 00 mov $0x4a1e20,%edx - 412cfb: 85 c0 test %eax,%eax - 412cfd: b8 20 1b 4a 00 mov $0x4a1b20,%eax - 412d02: 48 0f 4e c2 cmovle %rdx,%rax - 412d06: 48 89 83 d8 00 00 00 mov %rax,0xd8(%rbx) - 412d0d: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 412d14: 48 c7 80 30 01 00 00 movq $0x4a1b20,0x130(%rax) - 412d1b: 20 1b 4a 00 - 412d1f: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 412d26: 48 89 df mov %rbx,%rdi - 412d29: ff 50 20 callq *0x20(%rax) - 412d2c: 48 81 c4 98 00 00 00 add $0x98,%rsp - 412d33: 5b pop %rbx - 412d34: 5d pop %rbp - 412d35: c3 retq - 412d36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 412d3d: 00 00 00 - 412d40: 48 8b 74 24 30 mov 0x30(%rsp),%rsi - 412d45: 48 85 f6 test %rsi,%rsi - 412d48: 74 a6 je 412cf0 <_IO_file_underflow_maybe_mmap+0x30> - 412d4a: 48 8b 83 90 00 00 00 mov 0x90(%rbx),%rax - 412d51: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 412d55: 74 05 je 412d5c <_IO_file_underflow_maybe_mmap+0x9c> - 412d57: 48 39 c6 cmp %rax,%rsi - 412d5a: 7c 94 jl 412cf0 <_IO_file_underflow_maybe_mmap+0x30> - 412d5c: 44 8b 43 70 mov 0x70(%rbx),%r8d - 412d60: 45 31 c9 xor %r9d,%r9d - 412d63: 31 ff xor %edi,%edi - 412d65: b9 01 00 00 00 mov $0x1,%ecx - 412d6a: ba 01 00 00 00 mov $0x1,%edx - 412d6f: e8 7c ce 02 00 callq 43fbf0 <__mmap> - 412d74: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 412d78: 48 89 c5 mov %rax,%rbp - 412d7b: 0f 84 6f ff ff ff je 412cf0 <_IO_file_underflow_maybe_mmap+0x30> - 412d81: 48 8b 74 24 30 mov 0x30(%rsp),%rsi - 412d86: 8b 7b 70 mov 0x70(%rbx),%edi - 412d89: 31 d2 xor %edx,%edx - 412d8b: e8 a0 f7 02 00 callq 442530 <__libc_lseek> - 412d90: 48 8b 74 24 30 mov 0x30(%rsp),%rsi - 412d95: 48 39 f0 cmp %rsi,%rax - 412d98: 74 18 je 412db2 <_IO_file_underflow_maybe_mmap+0xf2> - 412d9a: 48 89 ef mov %rbp,%rdi - 412d9d: e8 0e cf 02 00 callq 43fcb0 <__munmap> - 412da2: 48 c7 83 90 00 00 00 movq $0xffffffffffffffff,0x90(%rbx) - 412da9: ff ff ff ff - 412dad: e9 3e ff ff ff jmpq 412cf0 <_IO_file_underflow_maybe_mmap+0x30> - 412db2: 48 8d 54 05 00 lea 0x0(%rbp,%rax,1),%rdx - 412db7: 31 c9 xor %ecx,%ecx - 412db9: 48 89 ee mov %rbp,%rsi - 412dbc: 48 89 df mov %rbx,%rdi - 412dbf: e8 dc 1f 00 00 callq 414da0 <_IO_setb> - 412dc4: 48 8b 83 90 00 00 00 mov 0x90(%rbx),%rax - 412dcb: ba 00 00 00 00 mov $0x0,%edx - 412dd0: 48 89 6b 18 mov %rbp,0x18(%rbx) - 412dd4: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 412dd8: 48 0f 44 c2 cmove %rdx,%rax - 412ddc: 8b 93 c0 00 00 00 mov 0xc0(%rbx),%edx - 412de2: 48 01 e8 add %rbp,%rax - 412de5: 48 89 43 08 mov %rax,0x8(%rbx) - 412de9: 48 8b 44 24 30 mov 0x30(%rsp),%rax - 412dee: 48 01 c5 add %rax,%rbp - 412df1: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) - 412df8: 85 d2 test %edx,%edx - 412dfa: b8 60 1a 4a 00 mov $0x4a1a60,%eax - 412dff: ba 60 1d 4a 00 mov $0x4a1d60,%edx - 412e04: 48 89 6b 10 mov %rbp,0x10(%rbx) - 412e08: 48 0f 4e c2 cmovle %rdx,%rax - 412e0c: 48 89 83 d8 00 00 00 mov %rax,0xd8(%rbx) - 412e13: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 412e1a: 48 c7 80 30 01 00 00 movq $0x4a1a60,0x130(%rax) - 412e21: 60 1a 4a 00 - 412e25: e9 f5 fe ff ff jmpq 412d1f <_IO_file_underflow_maybe_mmap+0x5f> - 412e2a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -0000000000412e30 <_IO_file_underflow_mmap>: - 412e30: 48 8b 47 08 mov 0x8(%rdi),%rax - 412e34: 48 3b 47 10 cmp 0x10(%rdi),%rax - 412e38: 73 06 jae 412e40 <_IO_file_underflow_mmap+0x10> - 412e3a: 0f b6 00 movzbl (%rax),%eax - 412e3d: c3 retq - 412e3e: 66 90 xchg %ax,%ax - 412e40: 55 push %rbp - 412e41: 53 push %rbx - 412e42: 48 89 fb mov %rdi,%rbx - 412e45: 48 81 ec 98 00 00 00 sub $0x98,%rsp - 412e4c: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 412e53: 48 89 e6 mov %rsp,%rsi - 412e56: ff 90 90 00 00 00 callq *0x90(%rax) - 412e5c: 85 c0 test %eax,%eax - 412e5e: 75 14 jne 412e74 <_IO_file_underflow_mmap+0x44> - 412e60: 8b 44 24 18 mov 0x18(%rsp),%eax - 412e64: 25 00 f0 00 00 and $0xf000,%eax - 412e69: 3d 00 80 00 00 cmp $0x8000,%eax - 412e6e: 0f 84 84 00 00 00 je 412ef8 <_IO_file_underflow_mmap+0xc8> - 412e74: 48 8b 7b 38 mov 0x38(%rbx),%rdi - 412e78: 48 8b 73 40 mov 0x40(%rbx),%rsi - 412e7c: 48 29 fe sub %rdi,%rsi - 412e7f: e8 2c ce 02 00 callq 43fcb0 <__munmap> - 412e84: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax - 412e8a: ba 20 1e 4a 00 mov $0x4a1e20,%edx - 412e8f: 48 c7 43 40 00 00 00 movq $0x0,0x40(%rbx) - 412e96: 00 - 412e97: 48 c7 43 38 00 00 00 movq $0x0,0x38(%rbx) - 412e9e: 00 - 412e9f: 48 c7 43 18 00 00 00 movq $0x0,0x18(%rbx) - 412ea6: 00 - 412ea7: 48 89 df mov %rbx,%rdi - 412eaa: 48 c7 43 08 00 00 00 movq $0x0,0x8(%rbx) - 412eb1: 00 - 412eb2: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) - 412eb9: 00 - 412eba: 85 c0 test %eax,%eax - 412ebc: b8 20 1b 4a 00 mov $0x4a1b20,%eax - 412ec1: 48 0f 4e c2 cmovle %rdx,%rax - 412ec5: 48 89 83 d8 00 00 00 mov %rax,0xd8(%rbx) - 412ecc: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 412ed3: 48 c7 80 30 01 00 00 movq $0x4a1b20,0x130(%rax) - 412eda: 20 1b 4a 00 - 412ede: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 412ee5: ff 50 20 callq *0x20(%rax) - 412ee8: 48 81 c4 98 00 00 00 add $0x98,%rsp - 412eef: 5b pop %rbx - 412ef0: 5d pop %rbp - 412ef1: c3 retq - 412ef2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 412ef8: 48 8b 6c 24 30 mov 0x30(%rsp),%rbp - 412efd: 48 85 ed test %rbp,%rbp - 412f00: 0f 84 6e ff ff ff je 412e74 <_IO_file_underflow_mmap+0x44> - 412f06: e8 85 cc 02 00 callq 43fb90 <__getpagesize> - 412f0b: 48 8b 7b 38 mov 0x38(%rbx),%rdi - 412f0f: 48 98 cltq - 412f11: 48 89 c6 mov %rax,%rsi - 412f14: 48 8d 54 05 ff lea -0x1(%rbp,%rax,1),%rdx - 412f19: 48 f7 de neg %rsi - 412f1c: 48 89 f9 mov %rdi,%rcx - 412f1f: 48 21 f2 and %rsi,%rdx - 412f22: 49 89 f8 mov %rdi,%r8 - 412f25: 48 f7 d1 not %rcx - 412f28: 48 03 4b 40 add 0x40(%rbx),%rcx - 412f2c: 48 01 c8 add %rcx,%rax - 412f2f: 48 21 c6 and %rax,%rsi - 412f32: 48 39 f2 cmp %rsi,%rdx - 412f35: 0f 82 8d 00 00 00 jb 412fc8 <_IO_file_underflow_mmap+0x198> - 412f3b: 0f 87 aa 00 00 00 ja 412feb <_IO_file_underflow_mmap+0x1bb> - 412f41: 48 01 fd add %rdi,%rbp - 412f44: 48 89 6b 40 mov %rbp,0x40(%rbx) - 412f48: 48 8b 53 10 mov 0x10(%rbx),%rdx - 412f4c: 48 2b 53 08 sub 0x8(%rbx),%rdx - 412f50: 48 89 ee mov %rbp,%rsi - 412f53: 48 8b 83 90 00 00 00 mov 0x90(%rbx),%rax - 412f5a: 4c 29 c6 sub %r8,%rsi - 412f5d: 48 89 7b 18 mov %rdi,0x18(%rbx) - 412f61: 48 29 d0 sub %rdx,%rax - 412f64: 48 39 f0 cmp %rsi,%rax - 412f67: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) - 412f6e: 7d 40 jge 412fb0 <_IO_file_underflow_mmap+0x180> - 412f70: 48 01 c7 add %rax,%rdi - 412f73: 31 d2 xor %edx,%edx - 412f75: 48 89 6b 10 mov %rbp,0x10(%rbx) - 412f79: 48 89 7b 08 mov %rdi,0x8(%rbx) - 412f7d: 8b 7b 70 mov 0x70(%rbx),%edi - 412f80: e8 ab f5 02 00 callq 442530 <__libc_lseek> - 412f85: 48 8b 53 40 mov 0x40(%rbx),%rdx - 412f89: 48 2b 53 38 sub 0x38(%rbx),%rdx - 412f8d: 48 39 d0 cmp %rdx,%rax - 412f90: 0f 84 86 00 00 00 je 41301c <_IO_file_underflow_mmap+0x1ec> - 412f96: 83 0b 20 orl $0x20,(%rbx) - 412f99: 48 8b 43 08 mov 0x8(%rbx),%rax - 412f9d: 48 3b 43 10 cmp 0x10(%rbx),%rax - 412fa1: 73 15 jae 412fb8 <_IO_file_underflow_mmap+0x188> - 412fa3: 0f b6 00 movzbl (%rax),%eax - 412fa6: 48 81 c4 98 00 00 00 add $0x98,%rsp - 412fad: 5b pop %rbx - 412fae: 5d pop %rbp - 412faf: c3 retq - 412fb0: 48 89 6b 08 mov %rbp,0x8(%rbx) - 412fb4: 48 89 6b 10 mov %rbp,0x10(%rbx) - 412fb8: 83 0b 10 orl $0x10,(%rbx) - 412fbb: b8 ff ff ff ff mov $0xffffffff,%eax - 412fc0: e9 23 ff ff ff jmpq 412ee8 <_IO_file_underflow_mmap+0xb8> - 412fc5: 0f 1f 00 nopl (%rax) - 412fc8: 48 01 d7 add %rdx,%rdi - 412fcb: 48 29 d6 sub %rdx,%rsi - 412fce: e8 dd cc 02 00 callq 43fcb0 <__munmap> - 412fd3: 48 8b 7b 38 mov 0x38(%rbx),%rdi - 412fd7: 48 89 fd mov %rdi,%rbp - 412fda: 48 03 6c 24 30 add 0x30(%rsp),%rbp - 412fdf: 49 89 f8 mov %rdi,%r8 - 412fe2: 48 89 6b 40 mov %rbp,0x40(%rbx) - 412fe6: e9 5d ff ff ff jmpq 412f48 <_IO_file_underflow_mmap+0x118> - 412feb: 31 c0 xor %eax,%eax - 412fed: b9 01 00 00 00 mov $0x1,%ecx - 412ff2: e8 59 f5 02 00 callq 442550 <__mremap> - 412ff7: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 412ffb: 0f 84 73 fe ff ff je 412e74 <_IO_file_underflow_mmap+0x44> - 413001: 48 89 c5 mov %rax,%rbp - 413004: 48 03 6c 24 30 add 0x30(%rsp),%rbp - 413009: 48 89 43 38 mov %rax,0x38(%rbx) - 41300d: 49 89 c0 mov %rax,%r8 - 413010: 48 89 c7 mov %rax,%rdi - 413013: 48 89 6b 40 mov %rbp,0x40(%rbx) - 413017: e9 2c ff ff ff jmpq 412f48 <_IO_file_underflow_mmap+0x118> - 41301c: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) - 413023: e9 71 ff ff ff jmpq 412f99 <_IO_file_underflow_mmap+0x169> - 413028: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41302f: 00 - -0000000000413030 <_IO_new_file_init>: - 413030: 55 push %rbp - 413031: 53 push %rbx - 413032: 48 c7 c5 ff ff ff ff mov $0xffffffffffffffff,%rbp - 413039: 48 89 fb mov %rdi,%rbx - 41303c: 48 83 ec 08 sub $0x8,%rsp - 413040: 81 0f 0c 24 00 00 orl $0x240c,(%rdi) - 413046: 48 89 af 90 00 00 00 mov %rbp,0x90(%rdi) - 41304d: e8 9e 16 00 00 callq 4146f0 <_IO_link_in> - 413052: 89 6b 70 mov %ebp,0x70(%rbx) - 413055: 48 83 c4 08 add $0x8,%rsp - 413059: 5b pop %rbx - 41305a: 5d pop %rbp - 41305b: c3 retq - 41305c: 0f 1f 40 00 nopl 0x0(%rax) - -0000000000413060 <_IO_file_open>: - 413060: 55 push %rbp - 413061: 53 push %rbx - 413062: 48 89 fb mov %rdi,%rbx - 413065: 48 89 f7 mov %rsi,%rdi - 413068: 48 63 f2 movslq %edx,%rsi - 41306b: 48 83 ec 18 sub $0x18,%rsp - 41306f: f6 43 74 02 testb $0x2,0x74(%rbx) - 413073: 74 6b je 4130e0 <_IO_file_open+0x80> - 413075: 48 63 d1 movslq %ecx,%rdx - 413078: b8 02 00 00 00 mov $0x2,%eax - 41307d: 0f 05 syscall - 41307f: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 413085: 89 c5 mov %eax,%ebp - 413087: 77 47 ja 4130d0 <_IO_file_open+0x70> - 413089: 85 ed test %ebp,%ebp - 41308b: 78 4f js 4130dc <_IO_file_open+0x7c> - 41308d: 8b 13 mov (%rbx),%edx - 41308f: 44 89 c0 mov %r8d,%eax - 413092: 41 81 e0 04 10 00 00 and $0x1004,%r8d - 413099: 25 0c 10 00 00 and $0x100c,%eax - 41309e: 89 6b 70 mov %ebp,0x70(%rbx) - 4130a1: 81 e2 f3 ef ff ff and $0xffffeff3,%edx - 4130a7: 09 d0 or %edx,%eax - 4130a9: 41 81 f8 04 10 00 00 cmp $0x1004,%r8d - 4130b0: 89 03 mov %eax,(%rbx) - 4130b2: 74 4c je 413100 <_IO_file_open+0xa0> - 4130b4: 48 89 df mov %rbx,%rdi - 4130b7: e8 34 16 00 00 callq 4146f0 <_IO_link_in> - 4130bc: 48 89 d8 mov %rbx,%rax - 4130bf: 48 83 c4 18 add $0x18,%rsp - 4130c3: 5b pop %rbx - 4130c4: 5d pop %rbp - 4130c5: c3 retq - 4130c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4130cd: 00 00 00 - 4130d0: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 4130d7: f7 d8 neg %eax - 4130d9: 64 89 02 mov %eax,%fs:(%rdx) - 4130dc: 31 c0 xor %eax,%eax - 4130de: eb df jmp 4130bf <_IO_file_open+0x5f> - 4130e0: 89 ca mov %ecx,%edx - 4130e2: 31 c0 xor %eax,%eax - 4130e4: 44 89 44 24 0c mov %r8d,0xc(%rsp) - 4130e9: e8 32 c0 02 00 callq 43f120 <__libc_open> - 4130ee: 44 8b 44 24 0c mov 0xc(%rsp),%r8d - 4130f3: 89 c5 mov %eax,%ebp - 4130f5: eb 92 jmp 413089 <_IO_file_open+0x29> - 4130f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4130fe: 00 00 - 413100: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 413107: 31 f6 xor %esi,%esi - 413109: ba 02 00 00 00 mov $0x2,%edx - 41310e: 48 89 df mov %rbx,%rdi - 413111: ff 90 80 00 00 00 callq *0x80(%rax) - 413117: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 41311b: 75 97 jne 4130b4 <_IO_file_open+0x54> - 41311d: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 413124: 64 83 3a 1d cmpl $0x1d,%fs:(%rdx) - 413128: 74 8a je 4130b4 <_IO_file_open+0x54> - 41312a: 48 63 fd movslq %ebp,%rdi - 41312d: b8 03 00 00 00 mov $0x3,%eax - 413132: 0f 05 syscall - 413134: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 41313a: 76 a0 jbe 4130dc <_IO_file_open+0x7c> - 41313c: f7 d8 neg %eax - 41313e: 64 89 02 mov %eax,%fs:(%rdx) - 413141: 31 c0 xor %eax,%eax - 413143: e9 77 ff ff ff jmpq 4130bf <_IO_file_open+0x5f> - 413148: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41314f: 00 - -0000000000413150 <_IO_new_file_attach>: - 413150: 83 7f 70 ff cmpl $0xffffffff,0x70(%rdi) - 413154: 75 5a jne 4131b0 <_IO_new_file_attach+0x60> - 413156: 8b 07 mov (%rdi),%eax - 413158: 41 54 push %r12 - 41315a: b9 03 00 00 00 mov $0x3,%ecx - 41315f: 55 push %rbp - 413160: 48 c7 c5 d0 ff ff ff mov $0xffffffffffffffd0,%rbp - 413167: ba 01 00 00 00 mov $0x1,%edx - 41316c: 53 push %rbx - 41316d: 89 77 70 mov %esi,0x70(%rdi) - 413170: 48 89 fb mov %rdi,%rbx - 413173: 83 e0 f3 and $0xfffffff3,%eax - 413176: 31 f6 xor %esi,%esi - 413178: 48 c7 87 90 00 00 00 movq $0xffffffffffffffff,0x90(%rdi) - 41317f: ff ff ff ff - 413183: 83 c8 40 or $0x40,%eax - 413186: 64 44 8b 65 00 mov %fs:0x0(%rbp),%r12d - 41318b: 89 07 mov %eax,(%rdi) - 41318d: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 413194: ff 50 48 callq *0x48(%rax) - 413197: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 41319b: 74 1b je 4131b8 <_IO_new_file_attach+0x68> - 41319d: 64 44 89 65 00 mov %r12d,%fs:0x0(%rbp) - 4131a2: 48 89 d8 mov %rbx,%rax - 4131a5: 5b pop %rbx - 4131a6: 5d pop %rbp - 4131a7: 41 5c pop %r12 - 4131a9: c3 retq - 4131aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4131b0: 31 c0 xor %eax,%eax - 4131b2: c3 retq - 4131b3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4131b8: 31 c0 xor %eax,%eax - 4131ba: 64 83 7d 00 1d cmpl $0x1d,%fs:0x0(%rbp) - 4131bf: 74 dc je 41319d <_IO_new_file_attach+0x4d> - 4131c1: eb e2 jmp 4131a5 <_IO_new_file_attach+0x55> - 4131c3: 0f 1f 00 nopl (%rax) - 4131c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4131cd: 00 00 00 - -00000000004131d0 <_IO_new_do_write>: - 4131d0: 31 c0 xor %eax,%eax - 4131d2: 48 85 d2 test %rdx,%rdx - 4131d5: 75 09 jne 4131e0 <_IO_new_do_write+0x10> - 4131d7: c3 retq - 4131d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4131df: 00 - 4131e0: 41 55 push %r13 - 4131e2: 41 54 push %r12 - 4131e4: 49 89 f4 mov %rsi,%r12 - 4131e7: 55 push %rbp - 4131e8: 53 push %rbx - 4131e9: 48 89 d5 mov %rdx,%rbp - 4131ec: 48 89 fb mov %rdi,%rbx - 4131ef: 48 83 ec 08 sub $0x8,%rsp - 4131f3: f7 07 00 10 00 00 testl $0x1000,(%rdi) - 4131f9: 0f 85 a1 00 00 00 jne 4132a0 <_IO_new_do_write+0xd0> - 4131ff: 48 8b 47 10 mov 0x10(%rdi),%rax - 413203: 48 8b 77 20 mov 0x20(%rdi),%rsi - 413207: 48 39 f0 cmp %rsi,%rax - 41320a: 74 2a je 413236 <_IO_new_do_write+0x66> - 41320c: 48 29 c6 sub %rax,%rsi - 41320f: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 413216: ba 01 00 00 00 mov $0x1,%edx - 41321b: ff 90 80 00 00 00 callq *0x80(%rax) - 413221: 48 89 c2 mov %rax,%rdx - 413224: b8 ff ff ff ff mov $0xffffffff,%eax - 413229: 48 83 fa ff cmp $0xffffffffffffffff,%rdx - 41322d: 74 62 je 413291 <_IO_new_do_write+0xc1> - 41322f: 48 89 93 90 00 00 00 mov %rdx,0x90(%rbx) - 413236: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 41323d: 48 89 ea mov %rbp,%rdx - 413240: 4c 89 e6 mov %r12,%rsi - 413243: 48 89 df mov %rbx,%rdi - 413246: ff 50 78 callq *0x78(%rax) - 413249: 49 89 c5 mov %rax,%r13 - 41324c: 0f b7 83 80 00 00 00 movzwl 0x80(%rbx),%eax - 413253: 4d 85 ed test %r13,%r13 - 413256: 74 05 je 41325d <_IO_new_do_write+0x8d> - 413258: 66 85 c0 test %ax,%ax - 41325b: 75 63 jne 4132c0 <_IO_new_do_write+0xf0> - 41325d: 8b 93 c0 00 00 00 mov 0xc0(%rbx),%edx - 413263: 48 8b 43 38 mov 0x38(%rbx),%rax - 413267: 85 d2 test %edx,%edx - 413269: 48 89 43 18 mov %rax,0x18(%rbx) - 41326d: 48 89 43 08 mov %rax,0x8(%rbx) - 413271: 48 89 43 10 mov %rax,0x10(%rbx) - 413275: 48 89 43 28 mov %rax,0x28(%rbx) - 413279: 48 89 43 20 mov %rax,0x20(%rbx) - 41327d: 7e 31 jle 4132b0 <_IO_new_do_write+0xe0> - 41327f: 48 8b 43 40 mov 0x40(%rbx),%rax - 413283: 48 89 43 30 mov %rax,0x30(%rbx) - 413287: 31 c0 xor %eax,%eax - 413289: 4c 39 ed cmp %r13,%rbp - 41328c: 0f 95 c0 setne %al - 41328f: f7 d8 neg %eax - 413291: 48 83 c4 08 add $0x8,%rsp - 413295: 5b pop %rbx - 413296: 5d pop %rbp - 413297: 41 5c pop %r12 - 413299: 41 5d pop %r13 - 41329b: c3 retq - 41329c: 0f 1f 40 00 nopl 0x0(%rax) - 4132a0: 48 c7 87 90 00 00 00 movq $0xffffffffffffffff,0x90(%rdi) - 4132a7: ff ff ff ff - 4132ab: eb 89 jmp 413236 <_IO_new_do_write+0x66> - 4132ad: 0f 1f 00 nopl (%rax) - 4132b0: f7 03 02 02 00 00 testl $0x202,(%rbx) - 4132b6: 75 cb jne 413283 <_IO_new_do_write+0xb3> - 4132b8: eb c5 jmp 41327f <_IO_new_do_write+0xaf> - 4132ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4132c0: 8d 78 ff lea -0x1(%rax),%edi - 4132c3: 44 89 ea mov %r13d,%edx - 4132c6: 4c 89 e6 mov %r12,%rsi - 4132c9: e8 f2 26 00 00 callq 4159c0 <_IO_adjust_column> - 4132ce: 83 c0 01 add $0x1,%eax - 4132d1: 66 89 83 80 00 00 00 mov %ax,0x80(%rbx) - 4132d8: e9 80 ff ff ff jmpq 41325d <_IO_new_do_write+0x8d> - 4132dd: 0f 1f 00 nopl (%rax) - -00000000004132e0 <_IO_new_file_close_it>: - 4132e0: 8b 47 70 mov 0x70(%rdi),%eax - 4132e3: 83 f8 ff cmp $0xffffffff,%eax - 4132e6: 0f 84 fe 00 00 00 je 4133ea <_IO_new_file_close_it+0x10a> - 4132ec: 41 54 push %r12 - 4132ee: 55 push %rbp - 4132ef: 45 31 e4 xor %r12d,%r12d - 4132f2: 53 push %rbx - 4132f3: 8b 07 mov (%rdi),%eax - 4132f5: 48 89 fb mov %rdi,%rbx - 4132f8: 25 08 08 00 00 and $0x808,%eax - 4132fd: 3d 00 08 00 00 cmp $0x800,%eax - 413302: 0f 84 08 01 00 00 je 413410 <_IO_new_file_close_it+0x130> - 413308: 48 89 df mov %rbx,%rdi - 41330b: 31 ed xor %ebp,%ebp - 41330d: e8 8e 30 00 00 callq 4163a0 <_IO_unsave_markers> - 413312: f6 43 74 20 testb $0x20,0x74(%rbx) - 413316: 0f 84 d4 00 00 00 je 4133f0 <_IO_new_file_close_it+0x110> - 41331c: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax - 413322: 85 c0 test %eax,%eax - 413324: 7e 5a jle 413380 <_IO_new_file_close_it+0xa0> - 413326: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 41332d: 48 83 78 40 00 cmpq $0x0,0x40(%rax) - 413332: 74 08 je 41333c <_IO_new_file_close_it+0x5c> - 413334: 48 89 df mov %rbx,%rdi - 413337: e8 e4 14 05 00 callq 464820 <_IO_free_wbackup_area> - 41333c: 31 c9 xor %ecx,%ecx - 41333e: 31 d2 xor %edx,%edx - 413340: 31 f6 xor %esi,%esi - 413342: 48 89 df mov %rbx,%rdi - 413345: e8 46 05 05 00 callq 463890 <_IO_wsetb> - 41334a: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 413351: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) - 413358: 00 - 413359: 48 c7 00 00 00 00 00 movq $0x0,(%rax) - 413360: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) - 413367: 00 - 413368: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) - 41336f: 00 - 413370: 48 c7 40 18 00 00 00 movq $0x0,0x18(%rax) - 413377: 00 - 413378: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) - 41337f: 00 - 413380: 31 c9 xor %ecx,%ecx - 413382: 31 d2 xor %edx,%edx - 413384: 31 f6 xor %esi,%esi - 413386: 48 89 df mov %rbx,%rdi - 413389: e8 12 1a 00 00 callq 414da0 <_IO_setb> - 41338e: 48 c7 43 18 00 00 00 movq $0x0,0x18(%rbx) - 413395: 00 - 413396: 48 c7 43 08 00 00 00 movq $0x0,0x8(%rbx) - 41339d: 00 - 41339e: 48 89 df mov %rbx,%rdi - 4133a1: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) - 4133a8: 00 - 4133a9: 48 c7 43 28 00 00 00 movq $0x0,0x28(%rbx) - 4133b0: 00 - 4133b1: 48 c7 43 20 00 00 00 movq $0x0,0x20(%rbx) - 4133b8: 00 - 4133b9: 48 c7 43 30 00 00 00 movq $0x0,0x30(%rbx) - 4133c0: 00 - 4133c1: e8 8a 10 00 00 callq 414450 <_IO_un_link> - 4133c6: 85 ed test %ebp,%ebp - 4133c8: 44 89 e0 mov %r12d,%eax - 4133cb: c7 03 0c 24 ad fb movl $0xfbad240c,(%rbx) - 4133d1: c7 43 70 ff ff ff ff movl $0xffffffff,0x70(%rbx) - 4133d8: 48 c7 83 90 00 00 00 movq $0xffffffffffffffff,0x90(%rbx) - 4133df: ff ff ff ff - 4133e3: 0f 45 c5 cmovne %ebp,%eax - 4133e6: 5b pop %rbx - 4133e7: 5d pop %rbp - 4133e8: 41 5c pop %r12 - 4133ea: f3 c3 repz retq - 4133ec: 0f 1f 40 00 nopl 0x0(%rax) - 4133f0: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 4133f7: 48 89 df mov %rbx,%rdi - 4133fa: ff 90 88 00 00 00 callq *0x88(%rax) - 413400: 89 c5 mov %eax,%ebp - 413402: e9 15 ff ff ff jmpq 41331c <_IO_new_file_close_it+0x3c> - 413407: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 41340e: 00 00 - 413410: 8b 97 c0 00 00 00 mov 0xc0(%rdi),%edx - 413416: 85 d2 test %edx,%edx - 413418: 7e 26 jle 413440 <_IO_new_file_close_it+0x160> - 41341a: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax - 413421: 48 8b 70 18 mov 0x18(%rax),%rsi - 413425: 48 8b 50 20 mov 0x20(%rax),%rdx - 413429: 48 29 f2 sub %rsi,%rdx - 41342c: 48 c1 fa 02 sar $0x2,%rdx - 413430: e8 fb d5 ff ff callq 410a30 <_IO_wdo_write> - 413435: 41 89 c4 mov %eax,%r12d - 413438: e9 cb fe ff ff jmpq 413308 <_IO_new_file_close_it+0x28> - 41343d: 0f 1f 00 nopl (%rax) - 413440: 48 8b 77 20 mov 0x20(%rdi),%rsi - 413444: 48 8b 57 28 mov 0x28(%rdi),%rdx - 413448: 48 29 f2 sub %rsi,%rdx - 41344b: e8 80 fd ff ff callq 4131d0 <_IO_new_do_write> - 413450: 41 89 c4 mov %eax,%r12d - 413453: e9 b0 fe ff ff jmpq 413308 <_IO_new_file_close_it+0x28> - 413458: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41345f: 00 - -0000000000413460 <_IO_new_file_fopen>: - 413460: 41 57 push %r15 - 413462: 41 56 push %r14 - 413464: 41 55 push %r13 - 413466: 41 54 push %r12 - 413468: 55 push %rbp - 413469: 53 push %rbx - 41346a: 48 83 ec 28 sub $0x28,%rsp - 41346e: 83 7f 70 ff cmpl $0xffffffff,0x70(%rdi) - 413472: 75 54 jne 4134c8 <_IO_new_file_fopen+0x68> - 413474: 0f b6 02 movzbl (%rdx),%eax - 413477: 3c 72 cmp $0x72,%al - 413479: 0f 84 51 05 00 00 je 4139d0 <_IO_new_file_fopen+0x570> - 41347f: 3c 77 cmp $0x77,%al - 413481: 74 5d je 4134e0 <_IO_new_file_fopen+0x80> - 413483: 3c 61 cmp $0x61,%al - 413485: 0f 84 25 05 00 00 je 4139b0 <_IO_new_file_fopen+0x550> - 41348b: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 413492: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) - 413499: 48 83 c4 28 add $0x28,%rsp - 41349d: 31 c0 xor %eax,%eax - 41349f: 5b pop %rbx - 4134a0: 5d pop %rbp - 4134a1: 41 5c pop %r12 - 4134a3: 41 5d pop %r13 - 4134a5: 41 5e pop %r14 - 4134a7: 41 5f pop %r15 - 4134a9: c3 retq - 4134aa: 48 c7 c5 d0 ff ff ff mov $0xffffffffffffffd0,%rbp - 4134b1: 48 89 df mov %rbx,%rdi - 4134b4: 64 44 8b 65 00 mov %fs:0x0(%rbp),%r12d - 4134b9: e8 22 fe ff ff callq 4132e0 <_IO_new_file_close_it> - 4134be: 64 44 89 65 00 mov %r12d,%fs:0x0(%rbp) - 4134c3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4134c8: 31 c0 xor %eax,%eax - 4134ca: 48 83 c4 28 add $0x28,%rsp - 4134ce: 5b pop %rbx - 4134cf: 5d pop %rbp - 4134d0: 41 5c pop %r12 - 4134d2: 41 5d pop %r13 - 4134d4: 41 5e pop %r14 - 4134d6: 41 5f pop %r15 - 4134d8: c3 retq - 4134d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4134e0: 41 b8 04 00 00 00 mov $0x4,%r8d - 4134e6: b8 01 00 00 00 mov $0x1,%eax - 4134eb: 41 ba 40 02 00 00 mov $0x240,%r10d - 4134f1: 44 0f b6 4a 01 movzbl 0x1(%rdx),%r9d - 4134f6: 4c 8d 62 01 lea 0x1(%rdx),%r12 - 4134fa: 41 80 f9 63 cmp $0x63,%r9b - 4134fe: 0f 84 bb 05 00 00 je 413abf <_IO_new_file_fopen+0x65f> - 413504: 0f 8f ee 03 00 00 jg 4138f8 <_IO_new_file_fopen+0x498> - 41350a: 41 80 f9 2b cmp $0x2b,%r9b - 41350e: 0f 84 c3 05 00 00 je 413ad7 <_IO_new_file_fopen+0x677> - 413514: 41 80 f9 62 cmp $0x62,%r9b - 413518: 74 16 je 413530 <_IO_new_file_fopen+0xd0> - 41351a: 45 84 c9 test %r9b,%r9b - 41351d: 49 89 d4 mov %rdx,%r12 - 413520: 0f 84 2a 01 00 00 je 413650 <_IO_new_file_fopen+0x1f0> - 413526: 49 89 d4 mov %rdx,%r12 - 413529: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 413530: 44 0f b6 4a 02 movzbl 0x2(%rdx),%r9d - 413535: 4c 8d 5a 02 lea 0x2(%rdx),%r11 - 413539: 41 80 f9 63 cmp $0x63,%r9b - 41353d: 0f 84 ae 05 00 00 je 413af1 <_IO_new_file_fopen+0x691> - 413543: 0f 8f 07 04 00 00 jg 413950 <_IO_new_file_fopen+0x4f0> - 413549: 41 80 f9 2b cmp $0x2b,%r9b - 41354d: 0f 84 a7 05 00 00 je 413afa <_IO_new_file_fopen+0x69a> - 413553: 41 80 f9 62 cmp $0x62,%r9b - 413557: 0f 84 12 05 00 00 je 413a6f <_IO_new_file_fopen+0x60f> - 41355d: 45 84 c9 test %r9b,%r9b - 413560: 0f 84 ea 00 00 00 je 413650 <_IO_new_file_fopen+0x1f0> - 413566: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41356d: 00 00 00 - 413570: 44 0f b6 4a 03 movzbl 0x3(%rdx),%r9d - 413575: 4c 8d 5a 03 lea 0x3(%rdx),%r11 - 413579: 41 80 f9 63 cmp $0x63,%r9b - 41357d: 0f 84 9f 05 00 00 je 413b22 <_IO_new_file_fopen+0x6c2> - 413583: 0f 8f f7 03 00 00 jg 413980 <_IO_new_file_fopen+0x520> - 413589: 41 80 f9 2b cmp $0x2b,%r9b - 41358d: 0f 84 7b 05 00 00 je 413b0e <_IO_new_file_fopen+0x6ae> - 413593: 41 80 f9 62 cmp $0x62,%r9b - 413597: 0f 84 f9 04 00 00 je 413a96 <_IO_new_file_fopen+0x636> - 41359d: 45 84 c9 test %r9b,%r9b - 4135a0: 0f 84 aa 00 00 00 je 413650 <_IO_new_file_fopen+0x1f0> - 4135a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4135ad: 00 00 00 - 4135b0: 44 0f b6 4a 04 movzbl 0x4(%rdx),%r9d - 4135b5: 4c 8d 5a 04 lea 0x4(%rdx),%r11 - 4135b9: 41 80 f9 63 cmp $0x63,%r9b - 4135bd: 0f 84 85 05 00 00 je 413b48 <_IO_new_file_fopen+0x6e8> - 4135c3: 0f 8f 17 04 00 00 jg 4139e0 <_IO_new_file_fopen+0x580> - 4135c9: 41 80 f9 2b cmp $0x2b,%r9b - 4135cd: 0f 84 61 05 00 00 je 413b34 <_IO_new_file_fopen+0x6d4> - 4135d3: 41 80 f9 62 cmp $0x62,%r9b - 4135d7: 0f 84 c5 04 00 00 je 413aa2 <_IO_new_file_fopen+0x642> - 4135dd: 45 84 c9 test %r9b,%r9b - 4135e0: 74 6e je 413650 <_IO_new_file_fopen+0x1f0> - 4135e2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4135e8: 44 0f b6 4a 05 movzbl 0x5(%rdx),%r9d - 4135ed: 4c 8d 5a 05 lea 0x5(%rdx),%r11 - 4135f1: 41 80 f9 63 cmp $0x63,%r9b - 4135f5: 0f 84 7c 05 00 00 je 413b77 <_IO_new_file_fopen+0x717> - 4135fb: 0f 8f 0f 04 00 00 jg 413a10 <_IO_new_file_fopen+0x5b0> - 413601: 41 80 f9 2b cmp $0x2b,%r9b - 413605: 0f 84 58 05 00 00 je 413b63 <_IO_new_file_fopen+0x703> - 41360b: 41 80 f9 62 cmp $0x62,%r9b - 41360f: 0f 84 99 04 00 00 je 413aae <_IO_new_file_fopen+0x64e> - 413615: 45 84 c9 test %r9b,%r9b - 413618: 74 36 je 413650 <_IO_new_file_fopen+0x1f0> - 41361a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 413620: 4c 8d 4a 06 lea 0x6(%rdx),%r9 - 413624: 0f b6 52 06 movzbl 0x6(%rdx),%edx - 413628: 80 fa 63 cmp $0x63,%dl - 41362b: 0f 84 88 05 00 00 je 413bb9 <_IO_new_file_fopen+0x759> - 413631: 0f 8f 09 04 00 00 jg 413a40 <_IO_new_file_fopen+0x5e0> - 413637: 80 fa 2b cmp $0x2b,%dl - 41363a: 0f 84 65 05 00 00 je 413ba5 <_IO_new_file_fopen+0x745> - 413640: 80 fa 62 cmp $0x62,%dl - 413643: 4d 0f 44 e1 cmove %r9,%r12 - 413647: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 41364e: 00 00 - 413650: 44 89 d2 mov %r10d,%edx - 413653: 41 89 c9 mov %ecx,%r9d - 413656: b9 b6 01 00 00 mov $0x1b6,%ecx - 41365b: 09 c2 or %eax,%edx - 41365d: 48 89 fb mov %rdi,%rbx - 413660: e8 fb f9 ff ff callq 413060 <_IO_file_open> - 413665: 48 85 c0 test %rax,%rax - 413668: 48 89 c5 mov %rax,%rbp - 41366b: 0f 84 57 fe ff ff je 4134c8 <_IO_new_file_fopen+0x68> - 413671: 49 8d 7c 24 01 lea 0x1(%r12),%rdi - 413676: be 30 1c 4a 00 mov $0x4a1c30,%esi - 41367b: e8 a0 cc fe ff callq 400320 <__rela_iplt_end+0x58> - 413680: 48 85 c0 test %rax,%rax - 413683: 49 89 c5 mov %rax,%r13 - 413686: 0f 84 f4 03 00 00 je 413a80 <_IO_new_file_fopen+0x620> - 41368c: 4c 8d 78 05 lea 0x5(%rax),%r15 - 413690: be 2c 00 00 00 mov $0x2c,%esi - 413695: 4c 89 ff mov %r15,%rdi - 413698: e8 43 95 01 00 callq 42cbe0 <__strchrnul> - 41369d: 4c 29 f8 sub %r15,%rax - 4136a0: 48 8d 78 03 lea 0x3(%rax),%rdi - 4136a4: 49 89 c6 mov %rax,%r14 - 4136a7: e8 64 a3 00 00 callq 41da10 <__libc_malloc> - 4136ac: 48 85 c0 test %rax,%rax - 4136af: 49 89 c4 mov %rax,%r12 - 4136b2: 0f 84 f2 fd ff ff je 4134aa <_IO_new_file_fopen+0x4a> - 4136b8: 4c 89 f2 mov %r14,%rdx - 4136bb: 4c 89 fe mov %r15,%rsi - 4136be: 48 89 c7 mov %rax,%rdi - 4136c1: e8 fa 2e 01 00 callq 4265c0 <__mempcpy> - 4136c6: c6 00 00 movb $0x0,(%rax) - 4136c9: 45 0f b6 04 24 movzbl (%r12),%r8d - 4136ce: 45 84 c0 test %r8b,%r8b - 4136d1: 0f 84 08 05 00 00 je 413bdf <_IO_new_file_fopen+0x77f> - 4136d7: 4c 8b 1d 0a f0 09 00 mov 0x9f00a(%rip),%r11 # 4b26e8 <_nl_C_locobj+0x68> - 4136de: 4c 8b 35 13 f0 09 00 mov 0x9f013(%rip),%r14 # 4b26f8 <_nl_C_locobj+0x78> - 4136e5: 4d 89 e1 mov %r12,%r9 - 4136e8: 4c 89 e0 mov %r12,%rax - 4136eb: 45 31 ff xor %r15d,%r15d - 4136ee: 49 ba 07 40 00 00 00 movabs $0x8000000004007,%r10 - 4136f5: 00 08 00 - 4136f8: eb 26 jmp 413720 <_IO_new_file_fopen+0x2c0> - 4136fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 413700: 41 80 f8 2f cmp $0x2f,%r8b - 413704: 0f 84 26 02 00 00 je 413930 <_IO_new_file_fopen+0x4d0> - 41370a: 49 83 c1 01 add $0x1,%r9 - 41370e: 45 0f b6 01 movzbl (%r9),%r8d - 413712: 45 84 c0 test %r8b,%r8b - 413715: 74 54 je 41376b <_IO_new_file_fopen+0x30b> - 413717: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 41371e: 00 00 - 413720: 49 0f be f8 movsbq %r8b,%rdi - 413724: 41 8d 48 d4 lea -0x2c(%r8),%ecx - 413728: ba 01 00 00 00 mov $0x1,%edx - 41372d: 41 0f b7 34 7b movzwl (%r11,%rdi,2),%esi - 413732: 66 c1 ee 03 shr $0x3,%si - 413736: 83 e6 01 and $0x1,%esi - 413739: 80 f9 33 cmp $0x33,%cl - 41373c: 77 10 ja 41374e <_IO_new_file_fopen+0x2ee> - 41373e: 4c 89 d2 mov %r10,%rdx - 413741: 48 d3 ea shr %cl,%rdx - 413744: 83 e2 01 and $0x1,%edx - 413747: 48 83 f2 01 xor $0x1,%rdx - 41374b: 83 e2 01 and $0x1,%edx - 41374e: 40 38 f2 cmp %sil,%dl - 413751: 77 ad ja 413700 <_IO_new_file_fopen+0x2a0> - 413753: 41 8b 14 be mov (%r14,%rdi,4),%edx - 413757: 49 83 c1 01 add $0x1,%r9 - 41375b: 48 83 c0 01 add $0x1,%rax - 41375f: 88 50 ff mov %dl,-0x1(%rax) - 413762: 45 0f b6 01 movzbl (%r9),%r8d - 413766: 45 84 c0 test %r8b,%r8b - 413769: 75 b5 jne 413720 <_IO_new_file_fopen+0x2c0> - 41376b: 41 83 ff 01 cmp $0x1,%r15d - 41376f: 7f 17 jg 413788 <_IO_new_file_fopen+0x328> - 413771: 45 85 ff test %r15d,%r15d - 413774: 48 8d 50 01 lea 0x1(%rax),%rdx - 413778: c6 00 2f movb $0x2f,(%rax) - 41377b: 0f 85 56 04 00 00 jne 413bd7 <_IO_new_file_fopen+0x777> - 413781: 48 8d 42 01 lea 0x1(%rdx),%rax - 413785: c6 02 2f movb $0x2f,(%rdx) - 413788: c6 00 00 movb $0x0,(%rax) - 41378b: 41 80 7c 24 02 00 cmpb $0x0,0x2(%r12) - 413791: 75 22 jne 4137b5 <_IO_new_file_fopen+0x355> - 413793: 48 8b 0d 5e ef 09 00 mov 0x9ef5e(%rip),%rcx # 4b26f8 <_nl_C_locobj+0x78> - 41379a: 31 c0 xor %eax,%eax - 41379c: 0f 1f 40 00 nopl 0x0(%rax) - 4137a0: 49 0f be 54 05 05 movsbq 0x5(%r13,%rax,1),%rdx - 4137a6: 8b 14 91 mov (%rcx,%rdx,4),%edx - 4137a9: 41 88 14 04 mov %dl,(%r12,%rax,1) - 4137ad: 48 83 c0 01 add $0x1,%rax - 4137b1: 84 d2 test %dl,%dl - 4137b3: 75 eb jne 4137a0 <_IO_new_file_fopen+0x340> - 4137b5: 4c 89 e6 mov %r12,%rsi - 4137b8: 48 89 e7 mov %rsp,%rdi - 4137bb: e8 10 af 02 00 callq 43e6d0 <__wcsmbs_named_conv> - 4137c0: 85 c0 test %eax,%eax - 4137c2: 0f 85 b8 03 00 00 jne 413b80 <_IO_new_file_fopen+0x720> - 4137c8: 4c 89 e7 mov %r12,%rdi - 4137cb: e8 e0 a5 00 00 callq 41ddb0 <__cfree> - 4137d0: 48 83 7c 24 08 01 cmpq $0x1,0x8(%rsp) - 4137d6: 0f 85 2b 04 00 00 jne 413c07 <_IO_new_file_fopen+0x7a7> - 4137dc: 48 83 7c 24 18 01 cmpq $0x1,0x18(%rsp) - 4137e2: 0f 85 06 04 00 00 jne 413bee <_IO_new_file_fopen+0x78e> - 4137e8: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 4137ef: be e0 45 4b 00 mov $0x4b45e0,%esi - 4137f4: b9 18 00 00 00 mov $0x18,%ecx - 4137f9: 48 8b 50 08 mov 0x8(%rax),%rdx - 4137fd: 48 c7 40 58 00 00 00 movq $0x0,0x58(%rax) - 413804: 00 - 413805: 48 89 10 mov %rdx,(%rax) - 413808: 48 8b 50 18 mov 0x18(%rax),%rdx - 41380c: 48 89 50 20 mov %rdx,0x20(%rax) - 413810: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 413817: 48 c7 40 60 00 00 00 movq $0x0,0x60(%rax) - 41381e: 00 - 41381f: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 413826: 48 8d 50 68 lea 0x68(%rax),%rdx - 41382a: 48 89 93 98 00 00 00 mov %rdx,0x98(%rbx) - 413831: 48 89 d7 mov %rdx,%rdi - 413834: 48 8b 14 24 mov (%rsp),%rdx - 413838: f3 48 a5 rep movsq %ds:(%rsi),%es:(%rdi) - 41383b: 48 c7 80 a8 00 00 00 movq $0x1,0xa8(%rax) - 413842: 01 00 00 00 - 413846: c7 80 cc 00 00 00 00 movl $0x0,0xcc(%rax) - 41384d: 00 00 00 - 413850: 48 89 90 b0 00 00 00 mov %rdx,0xb0(%rax) - 413857: c7 80 d0 00 00 00 01 movl $0x1,0xd0(%rax) - 41385e: 00 00 00 - 413861: c7 80 c8 00 00 00 01 movl $0x1,0xc8(%rax) - 413868: 00 00 00 - 41386b: 48 8b 8d a0 00 00 00 mov 0xa0(%rbp),%rcx - 413872: 48 c7 80 e8 00 00 00 movq $0x1,0xe8(%rax) - 413879: 01 00 00 00 - 41387d: c7 80 0c 01 00 00 00 movl $0x0,0x10c(%rax) - 413884: 00 00 00 - 413887: c7 80 10 01 00 00 01 movl $0x1,0x110(%rax) - 41388e: 00 00 00 - 413891: c7 80 08 01 00 00 09 movl $0x9,0x108(%rax) - 413898: 00 00 00 - 41389b: 48 8d 51 58 lea 0x58(%rcx),%rdx - 41389f: 48 89 90 d8 00 00 00 mov %rdx,0xd8(%rax) - 4138a6: 48 8b 54 24 10 mov 0x10(%rsp),%rdx - 4138ab: 48 89 90 f0 00 00 00 mov %rdx,0xf0(%rax) - 4138b2: 48 8b 8d a0 00 00 00 mov 0xa0(%rbp),%rcx - 4138b9: 48 8d 51 58 lea 0x58(%rcx),%rdx - 4138bd: 48 89 90 18 01 00 00 mov %rdx,0x118(%rax) - 4138c4: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 4138cb: 48 8b 80 30 01 00 00 mov 0x130(%rax),%rax - 4138d2: 48 89 83 d8 00 00 00 mov %rax,0xd8(%rbx) - 4138d9: c7 85 c0 00 00 00 01 movl $0x1,0xc0(%rbp) - 4138e0: 00 00 00 - 4138e3: 48 83 c4 28 add $0x28,%rsp - 4138e7: 5b pop %rbx - 4138e8: 48 89 e8 mov %rbp,%rax - 4138eb: 5d pop %rbp - 4138ec: 41 5c pop %r12 - 4138ee: 41 5d pop %r13 - 4138f0: 41 5e pop %r14 - 4138f2: 41 5f pop %r15 - 4138f4: c3 retq - 4138f5: 0f 1f 00 nopl (%rax) - 4138f8: 41 80 f9 6d cmp $0x6d,%r9b - 4138fc: 0f 84 c9 01 00 00 je 413acb <_IO_new_file_fopen+0x66b> - 413902: 41 80 f9 78 cmp $0x78,%r9b - 413906: 0f 84 aa 01 00 00 je 413ab6 <_IO_new_file_fopen+0x656> - 41390c: 41 80 f9 65 cmp $0x65,%r9b - 413910: 0f 85 10 fc ff ff jne 413526 <_IO_new_file_fopen+0xc6> - 413916: 41 81 ca 00 00 08 00 or $0x80000,%r10d - 41391d: 83 4f 74 40 orl $0x40,0x74(%rdi) - 413921: 49 89 d4 mov %rdx,%r12 - 413924: e9 07 fc ff ff jmpq 413530 <_IO_new_file_fopen+0xd0> - 413929: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 413930: 41 83 c7 01 add $0x1,%r15d - 413934: 41 83 ff 03 cmp $0x3,%r15d - 413938: 0f 84 4a fe ff ff je 413788 <_IO_new_file_fopen+0x328> - 41393e: c6 00 2f movb $0x2f,(%rax) - 413941: 48 83 c0 01 add $0x1,%rax - 413945: e9 c0 fd ff ff jmpq 41370a <_IO_new_file_fopen+0x2aa> - 41394a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 413950: 41 80 f9 6d cmp $0x6d,%r9b - 413954: 0f 84 8e 01 00 00 je 413ae8 <_IO_new_file_fopen+0x688> - 41395a: 41 80 f9 78 cmp $0x78,%r9b - 41395e: 0f 84 07 01 00 00 je 413a6b <_IO_new_file_fopen+0x60b> - 413964: 41 80 f9 65 cmp $0x65,%r9b - 413968: 0f 85 02 fc ff ff jne 413570 <_IO_new_file_fopen+0x110> - 41396e: 41 81 ca 00 00 08 00 or $0x80000,%r10d - 413975: 83 4f 74 40 orl $0x40,0x74(%rdi) - 413979: e9 f2 fb ff ff jmpq 413570 <_IO_new_file_fopen+0x110> - 41397e: 66 90 xchg %ax,%ax - 413980: 41 80 f9 6d cmp $0x6d,%r9b - 413984: 0f 84 a1 01 00 00 je 413b2b <_IO_new_file_fopen+0x6cb> - 41398a: 41 80 f9 78 cmp $0x78,%r9b - 41398e: 0f 84 fe 00 00 00 je 413a92 <_IO_new_file_fopen+0x632> - 413994: 41 80 f9 65 cmp $0x65,%r9b - 413998: 0f 85 12 fc ff ff jne 4135b0 <_IO_new_file_fopen+0x150> - 41399e: 41 81 ca 00 00 08 00 or $0x80000,%r10d - 4139a5: 83 4f 74 40 orl $0x40,0x74(%rdi) - 4139a9: e9 02 fc ff ff jmpq 4135b0 <_IO_new_file_fopen+0x150> - 4139ae: 66 90 xchg %ax,%ax - 4139b0: 41 b8 04 10 00 00 mov $0x1004,%r8d - 4139b6: b8 01 00 00 00 mov $0x1,%eax - 4139bb: 41 ba 40 04 00 00 mov $0x440,%r10d - 4139c1: e9 2b fb ff ff jmpq 4134f1 <_IO_new_file_fopen+0x91> - 4139c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4139cd: 00 00 00 - 4139d0: 41 b8 08 00 00 00 mov $0x8,%r8d - 4139d6: 31 c0 xor %eax,%eax - 4139d8: 45 31 d2 xor %r10d,%r10d - 4139db: e9 11 fb ff ff jmpq 4134f1 <_IO_new_file_fopen+0x91> - 4139e0: 41 80 f9 6d cmp $0x6d,%r9b - 4139e4: 0f 84 67 01 00 00 je 413b51 <_IO_new_file_fopen+0x6f1> - 4139ea: 41 80 f9 78 cmp $0x78,%r9b - 4139ee: 0f 84 aa 00 00 00 je 413a9e <_IO_new_file_fopen+0x63e> - 4139f4: 41 80 f9 65 cmp $0x65,%r9b - 4139f8: 0f 85 ea fb ff ff jne 4135e8 <_IO_new_file_fopen+0x188> - 4139fe: 41 81 ca 00 00 08 00 or $0x80000,%r10d - 413a05: 83 4f 74 40 orl $0x40,0x74(%rdi) - 413a09: e9 da fb ff ff jmpq 4135e8 <_IO_new_file_fopen+0x188> - 413a0e: 66 90 xchg %ax,%ax - 413a10: 41 80 f9 6d cmp $0x6d,%r9b - 413a14: 0f 84 40 01 00 00 je 413b5a <_IO_new_file_fopen+0x6fa> - 413a1a: 41 80 f9 78 cmp $0x78,%r9b - 413a1e: 0f 84 86 00 00 00 je 413aaa <_IO_new_file_fopen+0x64a> - 413a24: 41 80 f9 65 cmp $0x65,%r9b - 413a28: 0f 85 f2 fb ff ff jne 413620 <_IO_new_file_fopen+0x1c0> - 413a2e: 41 81 ca 00 00 08 00 or $0x80000,%r10d - 413a35: 83 4f 74 40 orl $0x40,0x74(%rdi) - 413a39: e9 e2 fb ff ff jmpq 413620 <_IO_new_file_fopen+0x1c0> - 413a3e: 66 90 xchg %ax,%ax - 413a40: 80 fa 6d cmp $0x6d,%dl - 413a43: 0f 84 79 01 00 00 je 413bc2 <_IO_new_file_fopen+0x762> - 413a49: 80 fa 78 cmp $0x78,%dl - 413a4c: 0f 84 79 01 00 00 je 413bcb <_IO_new_file_fopen+0x76b> - 413a52: 80 fa 65 cmp $0x65,%dl - 413a55: 0f 85 f5 fb ff ff jne 413650 <_IO_new_file_fopen+0x1f0> - 413a5b: 41 81 ca 00 00 08 00 or $0x80000,%r10d - 413a62: 83 4f 74 40 orl $0x40,0x74(%rdi) - 413a66: e9 e5 fb ff ff jmpq 413650 <_IO_new_file_fopen+0x1f0> - 413a6b: 41 80 ca 80 or $0x80,%r10b - 413a6f: 4d 89 dc mov %r11,%r12 - 413a72: e9 f9 fa ff ff jmpq 413570 <_IO_new_file_fopen+0x110> - 413a77: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 413a7e: 00 00 - 413a80: 48 83 c4 28 add $0x28,%rsp - 413a84: 48 89 e8 mov %rbp,%rax - 413a87: 5b pop %rbx - 413a88: 5d pop %rbp - 413a89: 41 5c pop %r12 - 413a8b: 41 5d pop %r13 - 413a8d: 41 5e pop %r14 - 413a8f: 41 5f pop %r15 - 413a91: c3 retq - 413a92: 41 80 ca 80 or $0x80,%r10b - 413a96: 4d 89 dc mov %r11,%r12 - 413a99: e9 12 fb ff ff jmpq 4135b0 <_IO_new_file_fopen+0x150> - 413a9e: 41 80 ca 80 or $0x80,%r10b - 413aa2: 4d 89 dc mov %r11,%r12 - 413aa5: e9 3e fb ff ff jmpq 4135e8 <_IO_new_file_fopen+0x188> - 413aaa: 41 80 ca 80 or $0x80,%r10b - 413aae: 4d 89 dc mov %r11,%r12 - 413ab1: e9 6a fb ff ff jmpq 413620 <_IO_new_file_fopen+0x1c0> - 413ab6: 41 80 ca 80 or $0x80,%r10b - 413aba: e9 71 fa ff ff jmpq 413530 <_IO_new_file_fopen+0xd0> - 413abf: 83 4f 74 02 orl $0x2,0x74(%rdi) - 413ac3: 49 89 d4 mov %rdx,%r12 - 413ac6: e9 65 fa ff ff jmpq 413530 <_IO_new_file_fopen+0xd0> - 413acb: 83 4f 74 01 orl $0x1,0x74(%rdi) - 413acf: 49 89 d4 mov %rdx,%r12 - 413ad2: e9 59 fa ff ff jmpq 413530 <_IO_new_file_fopen+0xd0> - 413ad7: 41 81 e0 00 10 00 00 and $0x1000,%r8d - 413ade: b8 02 00 00 00 mov $0x2,%eax - 413ae3: e9 48 fa ff ff jmpq 413530 <_IO_new_file_fopen+0xd0> - 413ae8: 83 4f 74 01 orl $0x1,0x74(%rdi) - 413aec: e9 7f fa ff ff jmpq 413570 <_IO_new_file_fopen+0x110> - 413af1: 83 4f 74 02 orl $0x2,0x74(%rdi) - 413af5: e9 76 fa ff ff jmpq 413570 <_IO_new_file_fopen+0x110> - 413afa: 41 81 e0 00 10 00 00 and $0x1000,%r8d - 413b01: 4d 89 dc mov %r11,%r12 - 413b04: b8 02 00 00 00 mov $0x2,%eax - 413b09: e9 62 fa ff ff jmpq 413570 <_IO_new_file_fopen+0x110> - 413b0e: 41 81 e0 00 10 00 00 and $0x1000,%r8d - 413b15: 4d 89 dc mov %r11,%r12 - 413b18: b8 02 00 00 00 mov $0x2,%eax - 413b1d: e9 8e fa ff ff jmpq 4135b0 <_IO_new_file_fopen+0x150> - 413b22: 83 4f 74 02 orl $0x2,0x74(%rdi) - 413b26: e9 85 fa ff ff jmpq 4135b0 <_IO_new_file_fopen+0x150> - 413b2b: 83 4f 74 01 orl $0x1,0x74(%rdi) - 413b2f: e9 7c fa ff ff jmpq 4135b0 <_IO_new_file_fopen+0x150> - 413b34: 41 81 e0 00 10 00 00 and $0x1000,%r8d - 413b3b: 4d 89 dc mov %r11,%r12 - 413b3e: b8 02 00 00 00 mov $0x2,%eax - 413b43: e9 a0 fa ff ff jmpq 4135e8 <_IO_new_file_fopen+0x188> - 413b48: 83 4f 74 02 orl $0x2,0x74(%rdi) - 413b4c: e9 97 fa ff ff jmpq 4135e8 <_IO_new_file_fopen+0x188> - 413b51: 83 4f 74 01 orl $0x1,0x74(%rdi) - 413b55: e9 8e fa ff ff jmpq 4135e8 <_IO_new_file_fopen+0x188> - 413b5a: 83 4f 74 01 orl $0x1,0x74(%rdi) - 413b5e: e9 bd fa ff ff jmpq 413620 <_IO_new_file_fopen+0x1c0> - 413b63: 41 81 e0 00 10 00 00 and $0x1000,%r8d - 413b6a: 4d 89 dc mov %r11,%r12 - 413b6d: b8 02 00 00 00 mov $0x2,%eax - 413b72: e9 a9 fa ff ff jmpq 413620 <_IO_new_file_fopen+0x1c0> - 413b77: 83 4f 74 02 orl $0x2,0x74(%rdi) - 413b7b: e9 a0 fa ff ff jmpq 413620 <_IO_new_file_fopen+0x1c0> - 413b80: 48 89 df mov %rbx,%rdi - 413b83: e8 58 f7 ff ff callq 4132e0 <_IO_new_file_close_it> - 413b88: 4c 89 e7 mov %r12,%rdi - 413b8b: e8 20 a2 00 00 callq 41ddb0 <__cfree> - 413b90: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 413b97: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) - 413b9e: 31 c0 xor %eax,%eax - 413ba0: e9 25 f9 ff ff jmpq 4134ca <_IO_new_file_fopen+0x6a> - 413ba5: 41 81 e0 00 10 00 00 and $0x1000,%r8d - 413bac: 4d 89 cc mov %r9,%r12 - 413baf: b8 02 00 00 00 mov $0x2,%eax - 413bb4: e9 97 fa ff ff jmpq 413650 <_IO_new_file_fopen+0x1f0> - 413bb9: 83 4f 74 02 orl $0x2,0x74(%rdi) - 413bbd: e9 8e fa ff ff jmpq 413650 <_IO_new_file_fopen+0x1f0> - 413bc2: 83 4f 74 01 orl $0x1,0x74(%rdi) - 413bc6: e9 85 fa ff ff jmpq 413650 <_IO_new_file_fopen+0x1f0> - 413bcb: 41 80 ca 80 or $0x80,%r10b - 413bcf: 4d 89 cc mov %r9,%r12 - 413bd2: e9 79 fa ff ff jmpq 413650 <_IO_new_file_fopen+0x1f0> - 413bd7: 48 89 d0 mov %rdx,%rax - 413bda: e9 a9 fb ff ff jmpq 413788 <_IO_new_file_fopen+0x328> - 413bdf: 49 8d 54 24 01 lea 0x1(%r12),%rdx - 413be4: 41 c6 04 24 2f movb $0x2f,(%r12) - 413be9: e9 93 fb ff ff jmpq 413781 <_IO_new_file_fopen+0x321> - 413bee: b9 70 1c 4a 00 mov $0x4a1c70,%ecx - 413bf3: ba 80 01 00 00 mov $0x180,%edx - 413bf8: be 54 19 4a 00 mov $0x4a1954,%esi - 413bfd: bf 4c 1c 4a 00 mov $0x4a1c4c,%edi - 413c02: e8 39 db fe ff callq 401740 <__assert_fail> - 413c07: b9 70 1c 4a 00 mov $0x4a1c70,%ecx - 413c0c: ba 7f 01 00 00 mov $0x17f,%edx - 413c11: be 54 19 4a 00 mov $0x4a1954,%esi - 413c16: bf 36 1c 4a 00 mov $0x4a1c36,%edi - 413c1b: e8 20 db fe ff callq 401740 <__assert_fail> - -0000000000413c20 <_IO_new_file_finish>: - 413c20: 53 push %rbx - 413c21: 83 7f 70 ff cmpl $0xffffffff,0x70(%rdi) - 413c25: 48 89 fb mov %rdi,%rbx - 413c28: 74 2a je 413c54 <_IO_new_file_finish+0x34> - 413c2a: 8b 87 c0 00 00 00 mov 0xc0(%rdi),%eax - 413c30: 85 c0 test %eax,%eax - 413c32: 7e 4c jle 413c80 <_IO_new_file_finish+0x60> - 413c34: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax - 413c3b: 48 8b 70 18 mov 0x18(%rax),%rsi - 413c3f: 48 8b 50 20 mov 0x20(%rax),%rdx - 413c43: 48 29 f2 sub %rsi,%rdx - 413c46: 48 c1 fa 02 sar $0x2,%rdx - 413c4a: e8 e1 cd ff ff callq 410a30 <_IO_wdo_write> - 413c4f: f6 03 40 testb $0x40,(%rbx) - 413c52: 74 0c je 413c60 <_IO_new_file_finish+0x40> - 413c54: 48 89 df mov %rbx,%rdi - 413c57: 31 f6 xor %esi,%esi - 413c59: 5b pop %rbx - 413c5a: e9 b1 19 00 00 jmpq 415610 <_IO_default_finish> - 413c5f: 90 nop - 413c60: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 413c67: 48 89 df mov %rbx,%rdi - 413c6a: ff 90 88 00 00 00 callq *0x88(%rax) - 413c70: 48 89 df mov %rbx,%rdi - 413c73: 31 f6 xor %esi,%esi - 413c75: 5b pop %rbx - 413c76: e9 95 19 00 00 jmpq 415610 <_IO_default_finish> - 413c7b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 413c80: 48 8b 77 20 mov 0x20(%rdi),%rsi - 413c84: 48 8b 57 28 mov 0x28(%rdi),%rdx - 413c88: 48 29 f2 sub %rsi,%rdx - 413c8b: e8 40 f5 ff ff callq 4131d0 <_IO_new_do_write> - 413c90: eb bd jmp 413c4f <_IO_new_file_finish+0x2f> - 413c92: 0f 1f 40 00 nopl 0x0(%rax) - 413c96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 413c9d: 00 00 00 - -0000000000413ca0 <_IO_new_file_overflow>: - 413ca0: 8b 0f mov (%rdi),%ecx - 413ca2: f6 c1 08 test $0x8,%cl - 413ca5: 0f 85 95 01 00 00 jne 413e40 <_IO_new_file_overflow+0x1a0> - 413cab: f6 c5 08 test $0x8,%ch - 413cae: 41 54 push %r12 - 413cb0: 55 push %rbp - 413cb1: 89 f5 mov %esi,%ebp - 413cb3: 53 push %rbx - 413cb4: 48 89 fb mov %rdi,%rbx - 413cb7: 74 4f je 413d08 <_IO_new_file_overflow+0x68> - 413cb9: 48 8b 77 20 mov 0x20(%rdi),%rsi - 413cbd: 48 85 f6 test %rsi,%rsi - 413cc0: 0f 84 9a 01 00 00 je 413e60 <_IO_new_file_overflow+0x1c0> - 413cc6: 48 8b 57 28 mov 0x28(%rdi),%rdx - 413cca: 83 fd ff cmp $0xffffffff,%ebp - 413ccd: 0f 84 4d 01 00 00 je 413e20 <_IO_new_file_overflow+0x180> - 413cd3: 48 39 53 40 cmp %rdx,0x40(%rbx) - 413cd7: 0f 84 fb 00 00 00 je 413dd8 <_IO_new_file_overflow+0x138> - 413cdd: 48 8d 42 01 lea 0x1(%rdx),%rax - 413ce1: 48 89 43 28 mov %rax,0x28(%rbx) - 413ce5: 40 88 2a mov %bpl,(%rdx) - 413ce8: 8b 03 mov (%rbx),%eax - 413cea: a8 02 test $0x2,%al - 413cec: 0f 85 86 00 00 00 jne 413d78 <_IO_new_file_overflow+0xd8> - 413cf2: f6 c4 02 test $0x2,%ah - 413cf5: 74 05 je 413cfc <_IO_new_file_overflow+0x5c> - 413cf7: 83 fd 0a cmp $0xa,%ebp - 413cfa: 74 7c je 413d78 <_IO_new_file_overflow+0xd8> - 413cfc: 40 0f b6 c5 movzbl %bpl,%eax - 413d00: 5b pop %rbx - 413d01: 5d pop %rbp - 413d02: 41 5c pop %r12 - 413d04: c3 retq - 413d05: 0f 1f 00 nopl (%rax) - 413d08: 48 83 7f 20 00 cmpq $0x0,0x20(%rdi) - 413d0d: 0f 84 4d 01 00 00 je 413e60 <_IO_new_file_overflow+0x1c0> - 413d13: 48 8b 57 08 mov 0x8(%rdi),%rdx - 413d17: f6 c5 01 test $0x1,%ch - 413d1a: 0f 85 80 00 00 00 jne 413da0 <_IO_new_file_overflow+0x100> - 413d20: 48 8b 43 40 mov 0x40(%rbx),%rax - 413d24: 48 39 d0 cmp %rdx,%rax - 413d27: 0f 84 03 01 00 00 je 413e30 <_IO_new_file_overflow+0x190> - 413d2d: 48 8b 73 10 mov 0x10(%rbx),%rsi - 413d31: 8b bb c0 00 00 00 mov 0xc0(%rbx),%edi - 413d37: 48 89 43 30 mov %rax,0x30(%rbx) - 413d3b: 89 c8 mov %ecx,%eax - 413d3d: 80 cc 08 or $0x8,%ah - 413d40: 48 89 73 08 mov %rsi,0x8(%rbx) - 413d44: 48 89 73 18 mov %rsi,0x18(%rbx) - 413d48: 48 89 53 28 mov %rdx,0x28(%rbx) - 413d4c: 48 89 53 20 mov %rdx,0x20(%rbx) - 413d50: 48 89 d6 mov %rdx,%rsi - 413d53: 85 ff test %edi,%edi - 413d55: 89 03 mov %eax,(%rbx) - 413d57: 0f 8f 6d ff ff ff jg 413cca <_IO_new_file_overflow+0x2a> - 413d5d: 81 e1 02 02 00 00 and $0x202,%ecx - 413d63: 0f 84 61 ff ff ff je 413cca <_IO_new_file_overflow+0x2a> - 413d69: 48 89 53 30 mov %rdx,0x30(%rbx) - 413d6d: e9 58 ff ff ff jmpq 413cca <_IO_new_file_overflow+0x2a> - 413d72: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 413d78: 48 8b 73 20 mov 0x20(%rbx),%rsi - 413d7c: 48 8b 53 28 mov 0x28(%rbx),%rdx - 413d80: 48 89 df mov %rbx,%rdi - 413d83: 48 29 f2 sub %rsi,%rdx - 413d86: e8 45 f4 ff ff callq 4131d0 <_IO_new_do_write> - 413d8b: 83 f8 ff cmp $0xffffffff,%eax - 413d8e: 0f 85 68 ff ff ff jne 413cfc <_IO_new_file_overflow+0x5c> - 413d94: b8 ff ff ff ff mov $0xffffffff,%eax - 413d99: e9 62 ff ff ff jmpq 413d00 <_IO_new_file_overflow+0x60> - 413d9e: 66 90 xchg %ax,%ax - 413da0: 4c 8b 63 10 mov 0x10(%rbx),%r12 - 413da4: 48 89 df mov %rbx,%rdi - 413da7: 49 29 d4 sub %rdx,%r12 - 413daa: e8 81 0c 00 00 callq 414a30 <_IO_free_backup_area> - 413daf: 48 8b 53 18 mov 0x18(%rbx),%rdx - 413db3: 8b 0b mov (%rbx),%ecx - 413db5: 48 89 d0 mov %rdx,%rax - 413db8: 48 2b 43 38 sub 0x38(%rbx),%rax - 413dbc: 4c 39 e0 cmp %r12,%rax - 413dbf: 49 0f 47 c4 cmova %r12,%rax - 413dc3: 48 29 c2 sub %rax,%rdx - 413dc6: 48 89 53 18 mov %rdx,0x18(%rbx) - 413dca: 48 89 53 08 mov %rdx,0x8(%rbx) - 413dce: e9 4d ff ff ff jmpq 413d20 <_IO_new_file_overflow+0x80> - 413dd3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 413dd8: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax - 413dde: 85 c0 test %eax,%eax - 413de0: 0f 8e 9a 00 00 00 jle 413e80 <_IO_new_file_overflow+0x1e0> - 413de6: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 413ded: 48 89 df mov %rbx,%rdi - 413df0: 48 8b 70 18 mov 0x18(%rax),%rsi - 413df4: 48 8b 50 20 mov 0x20(%rax),%rdx - 413df8: 48 29 f2 sub %rsi,%rdx - 413dfb: 48 c1 fa 02 sar $0x2,%rdx - 413dff: e8 2c cc ff ff callq 410a30 <_IO_wdo_write> - 413e04: 83 f8 ff cmp $0xffffffff,%eax - 413e07: 0f 94 c0 sete %al - 413e0a: 84 c0 test %al,%al - 413e0c: 0f 85 82 ff ff ff jne 413d94 <_IO_new_file_overflow+0xf4> - 413e12: 48 8b 53 28 mov 0x28(%rbx),%rdx - 413e16: e9 c2 fe ff ff jmpq 413cdd <_IO_new_file_overflow+0x3d> - 413e1b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 413e20: 48 89 df mov %rbx,%rdi - 413e23: 48 29 f2 sub %rsi,%rdx - 413e26: 5b pop %rbx - 413e27: 5d pop %rbp - 413e28: 41 5c pop %r12 - 413e2a: e9 a1 f3 ff ff jmpq 4131d0 <_IO_new_do_write> - 413e2f: 90 nop - 413e30: 48 8b 53 38 mov 0x38(%rbx),%rdx - 413e34: 48 89 53 10 mov %rdx,0x10(%rbx) - 413e38: 48 89 d6 mov %rdx,%rsi - 413e3b: e9 f1 fe ff ff jmpq 413d31 <_IO_new_file_overflow+0x91> - 413e40: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 413e47: 83 c9 20 or $0x20,%ecx - 413e4a: 89 0f mov %ecx,(%rdi) - 413e4c: 64 c7 00 09 00 00 00 movl $0x9,%fs:(%rax) - 413e53: b8 ff ff ff ff mov $0xffffffff,%eax - 413e58: c3 retq - 413e59: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 413e60: 48 89 df mov %rbx,%rdi - 413e63: e8 98 0f 00 00 callq 414e00 <_IO_doallocbuf> - 413e68: 48 8b 53 38 mov 0x38(%rbx),%rdx - 413e6c: 8b 0b mov (%rbx),%ecx - 413e6e: 48 89 53 18 mov %rdx,0x18(%rbx) - 413e72: 48 89 53 08 mov %rdx,0x8(%rbx) - 413e76: 48 89 53 10 mov %rdx,0x10(%rbx) - 413e7a: e9 98 fe ff ff jmpq 413d17 <_IO_new_file_overflow+0x77> - 413e7f: 90 nop - 413e80: 48 29 f2 sub %rsi,%rdx - 413e83: 48 89 df mov %rbx,%rdi - 413e86: e8 45 f3 ff ff callq 4131d0 <_IO_new_do_write> - 413e8b: 83 f8 ff cmp $0xffffffff,%eax - 413e8e: 0f 94 c0 sete %al - 413e91: e9 74 ff ff ff jmpq 413e0a <_IO_new_file_overflow+0x16a> - 413e96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 413e9d: 00 00 00 - -0000000000413ea0 <_IO_new_file_sync>: - 413ea0: 53 push %rbx - 413ea1: 48 8b 57 28 mov 0x28(%rdi),%rdx - 413ea5: 48 89 fb mov %rdi,%rbx - 413ea8: 48 8b 77 20 mov 0x20(%rdi),%rsi - 413eac: 48 39 f2 cmp %rsi,%rdx - 413eaf: 76 2e jbe 413edf <_IO_new_file_sync+0x3f> - 413eb1: 8b 87 c0 00 00 00 mov 0xc0(%rdi),%eax - 413eb7: 85 c0 test %eax,%eax - 413eb9: 7e 6d jle 413f28 <_IO_new_file_sync+0x88> - 413ebb: 48 8b 87 a0 00 00 00 mov 0xa0(%rdi),%rax - 413ec2: 48 8b 70 18 mov 0x18(%rax),%rsi - 413ec6: 48 8b 50 20 mov 0x20(%rax),%rdx - 413eca: 48 29 f2 sub %rsi,%rdx - 413ecd: 48 c1 fa 02 sar $0x2,%rdx - 413ed1: e8 5a cb ff ff callq 410a30 <_IO_wdo_write> - 413ed6: 85 c0 test %eax,%eax - 413ed8: 0f 95 c0 setne %al - 413edb: 84 c0 test %al,%al - 413edd: 75 6e jne 413f4d <_IO_new_file_sync+0xad> - 413edf: 48 8b 73 08 mov 0x8(%rbx),%rsi - 413ee3: 48 2b 73 10 sub 0x10(%rbx),%rsi - 413ee7: 75 17 jne 413f00 <_IO_new_file_sync+0x60> - 413ee9: 48 c7 83 90 00 00 00 movq $0xffffffffffffffff,0x90(%rbx) - 413ef0: ff ff ff ff - 413ef4: 31 c0 xor %eax,%eax - 413ef6: 5b pop %rbx - 413ef7: c3 retq - 413ef8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 413eff: 00 - 413f00: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 413f07: ba 01 00 00 00 mov $0x1,%edx - 413f0c: 48 89 df mov %rbx,%rdi - 413f0f: ff 90 80 00 00 00 callq *0x80(%rax) - 413f15: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 413f19: 74 25 je 413f40 <_IO_new_file_sync+0xa0> - 413f1b: 48 8b 43 08 mov 0x8(%rbx),%rax - 413f1f: 48 89 43 10 mov %rax,0x10(%rbx) - 413f23: eb c4 jmp 413ee9 <_IO_new_file_sync+0x49> - 413f25: 0f 1f 00 nopl (%rax) - 413f28: 48 29 f2 sub %rsi,%rdx - 413f2b: e8 a0 f2 ff ff callq 4131d0 <_IO_new_do_write> - 413f30: 85 c0 test %eax,%eax - 413f32: 0f 95 c0 setne %al - 413f35: eb a4 jmp 413edb <_IO_new_file_sync+0x3b> - 413f37: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 413f3e: 00 00 - 413f40: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 413f47: 64 83 38 1d cmpl $0x1d,%fs:(%rax) - 413f4b: 74 9c je 413ee9 <_IO_new_file_sync+0x49> - 413f4d: b8 ff ff ff ff mov $0xffffffff,%eax - 413f52: 5b pop %rbx - 413f53: c3 retq - 413f54: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 413f5b: 00 00 00 - 413f5e: 66 90 xchg %ax,%ax - -0000000000413f60 : - 413f60: 41 57 push %r15 - 413f62: 41 56 push %r14 - 413f64: 41 55 push %r13 - 413f66: 41 54 push %r12 - 413f68: 49 89 f4 mov %rsi,%r12 - 413f6b: 55 push %rbp - 413f6c: 53 push %rbx - 413f6d: 49 89 fd mov %rdi,%r13 - 413f70: 48 89 f5 mov %rsi,%rbp - 413f73: 48 83 ec 28 sub $0x28,%rsp - 413f77: 4c 8b 47 18 mov 0x18(%rdi),%r8 - 413f7b: 48 8b 47 60 mov 0x60(%rdi),%rax - 413f7f: 4d 29 c4 sub %r8,%r12 - 413f82: 48 85 c0 test %rax,%rax - 413f85: 0f 84 36 01 00 00 je 4140c1 - 413f8b: 4c 89 e3 mov %r12,%rbx - 413f8e: 48 89 c1 mov %rax,%rcx - 413f91: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 413f98: 48 63 79 10 movslq 0x10(%rcx),%rdi - 413f9c: 48 8b 09 mov (%rcx),%rcx - 413f9f: 48 39 fb cmp %rdi,%rbx - 413fa2: 48 0f 4f df cmovg %rdi,%rbx - 413fa6: 48 85 c9 test %rcx,%rcx - 413fa9: 75 ed jne 413f98 - 413fab: 49 8b 75 58 mov 0x58(%r13),%rsi - 413faf: 4d 8b 7d 48 mov 0x48(%r13),%r15 - 413fb3: 4c 89 e2 mov %r12,%rdx - 413fb6: 48 29 da sub %rbx,%rdx - 413fb9: 49 89 f6 mov %rsi,%r14 - 413fbc: 4d 29 fe sub %r15,%r14 - 413fbf: 4c 39 f2 cmp %r14,%rdx - 413fc2: 77 4c ja 414010 - 413fc4: 49 29 d6 sub %rdx,%r14 - 413fc7: 48 85 db test %rbx,%rbx - 413fca: 0f 88 0b 01 00 00 js 4140db - 413fd0: 48 85 d2 test %rdx,%rdx - 413fd3: 0f 85 c7 00 00 00 jne 4140a0 - 413fd9: 4d 01 fe add %r15,%r14 - 413fdc: 4c 89 e6 mov %r12,%rsi - 413fdf: 48 85 c0 test %rax,%rax - 413fe2: 4d 89 75 50 mov %r14,0x50(%r13) - 413fe6: 74 13 je 413ffb - 413fe8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 413fef: 00 - 413ff0: 29 70 10 sub %esi,0x10(%rax) - 413ff3: 48 8b 00 mov (%rax),%rax - 413ff6: 48 85 c0 test %rax,%rax - 413ff9: 75 f5 jne 413ff0 - 413ffb: 31 c0 xor %eax,%eax - 413ffd: 48 83 c4 28 add $0x28,%rsp - 414001: 5b pop %rbx - 414002: 5d pop %rbp - 414003: 41 5c pop %r12 - 414005: 41 5d pop %r13 - 414007: 41 5e pop %r14 - 414009: 41 5f pop %r15 - 41400b: c3 retq - 41400c: 0f 1f 40 00 nopl 0x0(%rax) - 414010: 48 8d 42 64 lea 0x64(%rdx),%rax - 414014: 4c 89 44 24 18 mov %r8,0x18(%rsp) - 414019: 48 89 74 24 10 mov %rsi,0x10(%rsp) - 41401e: 48 89 54 24 08 mov %rdx,0x8(%rsp) - 414023: 48 89 c7 mov %rax,%rdi - 414026: 48 89 04 24 mov %rax,(%rsp) - 41402a: e8 e1 99 00 00 callq 41da10 <__libc_malloc> - 41402f: 48 85 c0 test %rax,%rax - 414032: 0f 84 0b 01 00 00 je 414143 - 414038: 48 85 db test %rbx,%rbx - 41403b: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 414040: 48 8b 74 24 10 mov 0x10(%rsp),%rsi - 414045: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 - 41404a: 0f 88 b3 00 00 00 js 414103 - 414050: 4c 8d 70 64 lea 0x64(%rax),%r14 - 414054: 49 8d 34 18 lea (%r8,%rbx,1),%rsi - 414058: 48 89 44 24 08 mov %rax,0x8(%rsp) - 41405d: 4c 89 f7 mov %r14,%rdi - 414060: e8 bb 7f 01 00 callq 42c020 - 414065: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 - 41406a: 4c 89 ff mov %r15,%rdi - 41406d: 4c 89 4c 24 08 mov %r9,0x8(%rsp) - 414072: e8 39 9d 00 00 callq 41ddb0 <__cfree> - 414077: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 - 41407c: 4c 8b 3c 24 mov (%rsp),%r15 - 414080: 48 89 ee mov %rbp,%rsi - 414083: 49 8b 45 60 mov 0x60(%r13),%rax - 414087: 49 2b 75 18 sub 0x18(%r13),%rsi - 41408b: 4d 01 cf add %r9,%r15 - 41408e: 4d 89 4d 48 mov %r9,0x48(%r13) - 414092: 4d 89 7d 58 mov %r15,0x58(%r13) - 414096: e9 44 ff ff ff jmpq 413fdf - 41409b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4140a0: 4b 8d 3c 37 lea (%r15,%r14,1),%rdi - 4140a4: 49 8d 34 18 lea (%r8,%rbx,1),%rsi - 4140a8: e8 73 7f 01 00 callq 42c020 - 4140ad: 48 89 ee mov %rbp,%rsi - 4140b0: 4d 03 75 48 add 0x48(%r13),%r14 - 4140b4: 49 2b 75 18 sub 0x18(%r13),%rsi - 4140b8: 49 8b 45 60 mov 0x60(%r13),%rax - 4140bc: e9 1e ff ff ff jmpq 413fdf - 4140c1: 48 8b 77 58 mov 0x58(%rdi),%rsi - 4140c5: 4c 8b 7f 48 mov 0x48(%rdi),%r15 - 4140c9: 49 89 f6 mov %rsi,%r14 - 4140cc: 4d 29 fe sub %r15,%r14 - 4140cf: 4d 85 e4 test %r12,%r12 - 4140d2: 0f 89 01 ff ff ff jns 413fd9 - 4140d8: 4c 89 e3 mov %r12,%rbx - 4140db: 4b 8d 3c 37 lea (%r15,%r14,1),%rdi - 4140df: 48 89 da mov %rbx,%rdx - 4140e2: 48 01 de add %rbx,%rsi - 4140e5: 48 f7 da neg %rdx - 4140e8: e8 13 c2 fe ff callq 400300 <__rela_iplt_end+0x38> - 4140ed: 49 8b 75 18 mov 0x18(%r13),%rsi - 4140f1: 4c 89 f7 mov %r14,%rdi - 4140f4: 48 89 ea mov %rbp,%rdx - 4140f7: 48 29 df sub %rbx,%rdi - 4140fa: 49 03 7d 48 add 0x48(%r13),%rdi - 4140fe: 48 29 f2 sub %rsi,%rdx - 414101: eb a5 jmp 4140a8 - 414103: 4c 8d 70 64 lea 0x64(%rax),%r14 - 414107: 48 89 da mov %rbx,%rdx - 41410a: 48 01 de add %rbx,%rsi - 41410d: 48 f7 da neg %rdx - 414110: 4c 89 44 24 10 mov %r8,0x10(%rsp) - 414115: 48 89 44 24 08 mov %rax,0x8(%rsp) - 41411a: 4c 89 f7 mov %r14,%rdi - 41411d: e8 9e 24 01 00 callq 4265c0 <__mempcpy> - 414122: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 - 414127: 4c 89 e2 mov %r12,%rdx - 41412a: 48 89 c7 mov %rax,%rdi - 41412d: 4c 89 c6 mov %r8,%rsi - 414130: e8 8b 24 01 00 callq 4265c0 <__mempcpy> - 414135: 4d 8b 7d 48 mov 0x48(%r13),%r15 - 414139: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 - 41413e: e9 27 ff ff ff jmpq 41406a - 414143: b8 ff ff ff ff mov $0xffffffff,%eax - 414148: e9 b0 fe ff ff jmpq 413ffd - 41414d: 0f 1f 00 nopl (%rax) - -0000000000414150 : - 414150: 48 8b 05 39 84 2b 00 mov 0x2b8439(%rip),%rax # 6cc590 - 414157: 48 85 c0 test %rax,%rax - 41415a: 74 47 je 4141a3 - 41415c: f7 00 00 80 00 00 testl $0x8000,(%rax) - 414162: 75 3f jne 4141a3 - 414164: 48 8b 90 88 00 00 00 mov 0x88(%rax),%rdx - 41416b: 83 6a 04 01 subl $0x1,0x4(%rdx) - 41416f: 75 32 jne 4141a3 - 414171: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) - 414178: 00 - 414179: 83 3d 3c 90 2b 00 00 cmpl $0x0,0x2b903c(%rip) # 6cd1bc <__libc_multiple_threads> - 414180: 74 07 je 414189 - 414182: f0 ff 0a lock decl (%rdx) - 414185: 75 06 jne 41418d - 414187: eb 1a jmp 4141a3 - 414189: ff 0a decl (%rdx) - 41418b: 74 16 je 4141a3 - 41418d: 48 8d 3a lea (%rdx),%rdi - 414190: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 414197: e8 64 e4 02 00 callq 442600 <__lll_unlock_wake_private> - 41419c: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4141a3: 83 2d fa 83 2b 00 01 subl $0x1,0x2b83fa(%rip) # 6cc5a4 - 4141aa: 75 41 jne 4141ed - 4141ac: 48 c7 05 f1 83 2b 00 movq $0x0,0x2b83f1(%rip) # 6cc5a8 - 4141b3: 00 00 00 00 - 4141b7: 83 3d fe 8f 2b 00 00 cmpl $0x0,0x2b8ffe(%rip) # 6cd1bc <__libc_multiple_threads> - 4141be: 74 0b je 4141cb - 4141c0: f0 ff 0d d9 83 2b 00 lock decl 0x2b83d9(%rip) # 6cc5a0 - 4141c7: 75 0a jne 4141d3 - 4141c9: eb 22 jmp 4141ed - 4141cb: ff 0d cf 83 2b 00 decl 0x2b83cf(%rip) # 6cc5a0 - 4141d1: 74 1a je 4141ed - 4141d3: 48 8d 3d c6 83 2b 00 lea 0x2b83c6(%rip),%rdi # 6cc5a0 - 4141da: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4141e1: e8 1a e4 02 00 callq 442600 <__lll_unlock_wake_private> - 4141e6: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4141ed: f3 c3 repz retq - 4141ef: 90 nop - -00000000004141f0 <_IO_cleanup>: - 4141f0: 41 55 push %r13 - 4141f2: 41 54 push %r12 - 4141f4: 45 31 e4 xor %r12d,%r12d - 4141f7: 55 push %rbp - 4141f8: 53 push %rbx - 4141f9: 48 83 ec 08 sub $0x8,%rsp - 4141fd: 48 8b 1d bc 5e 2b 00 mov 0x2b5ebc(%rip),%rbx # 6ca0c0 <_IO_list_all> - 414204: 8b 2d 8e 83 2b 00 mov 0x2b838e(%rip),%ebp # 6cc598 <_IO_list_all_stamp> - 41420a: 48 85 db test %rbx,%rbx - 41420d: 75 47 jne 414256 <_IO_cleanup+0x66> - 41420f: e9 bc 01 00 00 jmpq 4143d0 <_IO_cleanup+0x1e0> - 414214: 0f 1f 40 00 nopl 0x0(%rax) - 414218: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 41421f: be ff ff ff ff mov $0xffffffff,%esi - 414224: 48 89 df mov %rbx,%rdi - 414227: ff 50 18 callq *0x18(%rax) - 41422a: 83 f8 ff cmp $0xffffffff,%eax - 41422d: 8b 15 65 83 2b 00 mov 0x2b8365(%rip),%edx # 6cc598 <_IO_list_all_stamp> - 414233: 0f 84 8f 01 00 00 je 4143c8 <_IO_cleanup+0x1d8> - 414239: 39 d5 cmp %edx,%ebp - 41423b: 48 c7 05 4a 83 2b 00 movq $0x0,0x2b834a(%rip) # 6cc590 - 414242: 00 00 00 00 - 414246: 74 41 je 414289 <_IO_cleanup+0x99> - 414248: 48 8b 1d 71 5e 2b 00 mov 0x2b5e71(%rip),%rbx # 6ca0c0 <_IO_list_all> - 41424f: 89 d5 mov %edx,%ebp - 414251: 48 85 db test %rbx,%rbx - 414254: 74 3e je 414294 <_IO_cleanup+0xa4> - 414256: 8b 8b c0 00 00 00 mov 0xc0(%rbx),%ecx - 41425c: 48 89 1d 2d 83 2b 00 mov %rbx,0x2b832d(%rip) # 6cc590 - 414263: 85 c9 test %ecx,%ecx - 414265: 0f 8e 45 01 00 00 jle 4143b0 <_IO_cleanup+0x1c0> - 41426b: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 414272: 48 8b 70 18 mov 0x18(%rax),%rsi - 414276: 48 39 70 20 cmp %rsi,0x20(%rax) - 41427a: 77 9c ja 414218 <_IO_cleanup+0x28> - 41427c: 48 c7 05 09 83 2b 00 movq $0x0,0x2b8309(%rip) # 6cc590 - 414283: 00 00 00 00 - 414287: 89 ea mov %ebp,%edx - 414289: 48 8b 5b 68 mov 0x68(%rbx),%rbx - 41428d: 89 d5 mov %edx,%ebp - 41428f: 48 85 db test %rbx,%rbx - 414292: 75 c2 jne 414256 <_IO_cleanup+0x66> - 414294: 48 8b 1d 25 5e 2b 00 mov 0x2b5e25(%rip),%rbx # 6ca0c0 <_IO_list_all> - 41429b: 48 85 db test %rbx,%rbx - 41429e: 0f 84 2c 01 00 00 je 4143d0 <_IO_cleanup+0x1e0> - 4142a4: 64 4c 8b 2c 25 10 00 mov %fs:0x10,%r13 - 4142ab: 00 00 - 4142ad: e9 95 00 00 00 jmpq 414347 <_IO_cleanup+0x157> - 4142b2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4142b8: 48 8b 83 88 00 00 00 mov 0x88(%rbx),%rax - 4142bf: 4c 89 68 08 mov %r13,0x8(%rax) - 4142c3: c7 40 04 01 00 00 00 movl $0x1,0x4(%rax) - 4142ca: 80 3d b7 82 2b 00 00 cmpb $0x0,0x2b82b7(%rip) # 6cc588 - 4142d1: 75 2b jne 4142fe <_IO_cleanup+0x10e> - 4142d3: 8b 03 mov (%rbx),%eax - 4142d5: a8 01 test $0x1,%al - 4142d7: 75 25 jne 4142fe <_IO_cleanup+0x10e> - 4142d9: 83 c8 01 or $0x1,%eax - 4142dc: 89 03 mov %eax,(%rbx) - 4142de: 48 8b 05 9b 82 2b 00 mov 0x2b829b(%rip),%rax # 6cc580 - 4142e5: 48 89 1d 94 82 2b 00 mov %rbx,0x2b8294(%rip) # 6cc580 - 4142ec: 48 89 83 a8 00 00 00 mov %rax,0xa8(%rbx) - 4142f3: 48 8b 43 38 mov 0x38(%rbx),%rax - 4142f7: 48 89 83 b0 00 00 00 mov %rax,0xb0(%rbx) - 4142fe: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 414305: 31 d2 xor %edx,%edx - 414307: 31 f6 xor %esi,%esi - 414309: 48 89 df mov %rbx,%rdi - 41430c: ff 50 58 callq *0x58(%rax) - 41430f: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax - 414315: 85 c0 test %eax,%eax - 414317: 7e 0e jle 414327 <_IO_cleanup+0x137> - 414319: 31 c9 xor %ecx,%ecx - 41431b: 31 d2 xor %edx,%edx - 41431d: 31 f6 xor %esi,%esi - 41431f: 48 89 df mov %rbx,%rdi - 414322: e8 69 f5 04 00 callq 463890 <_IO_wsetb> - 414327: 83 fd 02 cmp $0x2,%ebp - 41432a: 0f 85 b0 00 00 00 jne 4143e0 <_IO_cleanup+0x1f0> - 414330: c7 83 c0 00 00 00 ff movl $0xffffffff,0xc0(%rbx) - 414337: ff ff ff - 41433a: 48 8b 5b 68 mov 0x68(%rbx),%rbx - 41433e: 48 85 db test %rbx,%rbx - 414341: 0f 84 89 00 00 00 je 4143d0 <_IO_cleanup+0x1e0> - 414347: f6 03 02 testb $0x2,(%rbx) - 41434a: 75 e4 jne 414330 <_IO_cleanup+0x140> - 41434c: 8b 93 c0 00 00 00 mov 0xc0(%rbx),%edx - 414352: 85 d2 test %edx,%edx - 414354: 74 da je 414330 <_IO_cleanup+0x140> - 414356: 31 ed xor %ebp,%ebp - 414358: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 41435f: 48 85 d2 test %rdx,%rdx - 414362: 0f 84 62 ff ff ff je 4142ca <_IO_cleanup+0xda> - 414368: 4c 3b 6a 08 cmp 0x8(%rdx),%r13 - 41436c: 0f 84 c6 00 00 00 je 414438 <_IO_cleanup+0x248> - 414372: 31 c0 xor %eax,%eax - 414374: b9 01 00 00 00 mov $0x1,%ecx - 414379: 83 3d 3c 8e 2b 00 00 cmpl $0x0,0x2b8e3c(%rip) # 6cd1bc <__libc_multiple_threads> - 414380: 74 06 je 414388 <_IO_cleanup+0x198> - 414382: f0 0f b1 0a lock cmpxchg %ecx,(%rdx) - 414386: eb 03 jmp 41438b <_IO_cleanup+0x19b> - 414388: 0f b1 0a cmpxchg %ecx,(%rdx) - 41438b: 85 c0 test %eax,%eax - 41438d: 0f 84 25 ff ff ff je 4142b8 <_IO_cleanup+0xc8> - 414393: 83 c5 01 add $0x1,%ebp - 414396: e8 95 ac 02 00 callq 43f030 <__sched_yield> - 41439b: 83 fd 02 cmp $0x2,%ebp - 41439e: 0f 84 26 ff ff ff je 4142ca <_IO_cleanup+0xda> - 4143a4: eb b2 jmp 414358 <_IO_cleanup+0x168> - 4143a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4143ad: 00 00 00 - 4143b0: 48 8b 43 20 mov 0x20(%rbx),%rax - 4143b4: 48 39 43 28 cmp %rax,0x28(%rbx) - 4143b8: 0f 87 5a fe ff ff ja 414218 <_IO_cleanup+0x28> - 4143be: e9 b9 fe ff ff jmpq 41427c <_IO_cleanup+0x8c> - 4143c3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4143c8: 41 89 c4 mov %eax,%r12d - 4143cb: e9 69 fe ff ff jmpq 414239 <_IO_cleanup+0x49> - 4143d0: 48 83 c4 08 add $0x8,%rsp - 4143d4: 44 89 e0 mov %r12d,%eax - 4143d7: 5b pop %rbx - 4143d8: 5d pop %rbp - 4143d9: 41 5c pop %r12 - 4143db: 41 5d pop %r13 - 4143dd: c3 retq - 4143de: 66 90 xchg %ax,%ax - 4143e0: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 4143e7: 48 85 d2 test %rdx,%rdx - 4143ea: 0f 84 40 ff ff ff je 414330 <_IO_cleanup+0x140> - 4143f0: 83 6a 04 01 subl $0x1,0x4(%rdx) - 4143f4: 0f 85 36 ff ff ff jne 414330 <_IO_cleanup+0x140> - 4143fa: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) - 414401: 00 - 414402: 83 3d b3 8d 2b 00 00 cmpl $0x0,0x2b8db3(%rip) # 6cd1bc <__libc_multiple_threads> - 414409: 74 07 je 414412 <_IO_cleanup+0x222> - 41440b: f0 ff 0a lock decl (%rdx) - 41440e: 75 06 jne 414416 <_IO_cleanup+0x226> - 414410: eb 1a jmp 41442c <_IO_cleanup+0x23c> - 414412: ff 0a decl (%rdx) - 414414: 74 16 je 41442c <_IO_cleanup+0x23c> - 414416: 48 8d 3a lea (%rdx),%rdi - 414419: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 414420: e8 db e1 02 00 callq 442600 <__lll_unlock_wake_private> - 414425: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41442c: e9 ff fe ff ff jmpq 414330 <_IO_cleanup+0x140> - 414431: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 414438: 83 42 04 01 addl $0x1,0x4(%rdx) - 41443c: e9 89 fe ff ff jmpq 4142ca <_IO_cleanup+0xda> - 414441: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 414446: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41444d: 00 00 00 - -0000000000414450 <_IO_un_link>: - 414450: f6 07 80 testb $0x80,(%rdi) - 414453: 0f 84 da 01 00 00 je 414633 <_IO_un_link+0x1e3> - 414459: 55 push %rbp - 41445a: 53 push %rbx - 41445b: bd 00 00 00 00 mov $0x0,%ebp - 414460: 48 89 fb mov %rdi,%rbx - 414463: 48 83 ec 28 sub $0x28,%rsp - 414467: 48 85 ed test %rbp,%rbp - 41446a: 0f 84 28 02 00 00 je 414698 <_IO_un_link+0x248> - 414470: 31 d2 xor %edx,%edx - 414472: be 50 41 41 00 mov $0x414150,%esi - 414477: 48 89 e7 mov %rsp,%rdi - 41447a: e8 81 bb be ff callq 0 <_nl_current_LC_CTYPE> - 41447f: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx - 414486: 00 00 - 414488: 48 3b 15 19 81 2b 00 cmp 0x2b8119(%rip),%rdx # 6cc5a8 - 41448f: 74 46 je 4144d7 <_IO_un_link+0x87> - 414491: be 01 00 00 00 mov $0x1,%esi - 414496: 31 c0 xor %eax,%eax - 414498: 83 3d 1d 8d 2b 00 00 cmpl $0x0,0x2b8d1d(%rip) # 6cd1bc <__libc_multiple_threads> - 41449f: 74 0c je 4144ad <_IO_un_link+0x5d> - 4144a1: f0 0f b1 35 f7 80 2b lock cmpxchg %esi,0x2b80f7(%rip) # 6cc5a0 - 4144a8: 00 - 4144a9: 75 0b jne 4144b6 <_IO_un_link+0x66> - 4144ab: eb 23 jmp 4144d0 <_IO_un_link+0x80> - 4144ad: 0f b1 35 ec 80 2b 00 cmpxchg %esi,0x2b80ec(%rip) # 6cc5a0 - 4144b4: 74 1a je 4144d0 <_IO_un_link+0x80> - 4144b6: 48 8d 3d e3 80 2b 00 lea 0x2b80e3(%rip),%rdi # 6cc5a0 - 4144bd: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4144c4: e8 07 e1 02 00 callq 4425d0 <__lll_lock_wait_private> - 4144c9: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4144d0: 48 89 15 d1 80 2b 00 mov %rdx,0x2b80d1(%rip) # 6cc5a8 - 4144d7: 8b 33 mov (%rbx),%esi - 4144d9: 8b 15 c5 80 2b 00 mov 0x2b80c5(%rip),%edx # 6cc5a4 - 4144df: 48 89 1d aa 80 2b 00 mov %rbx,0x2b80aa(%rip) # 6cc590 - 4144e6: 89 f0 mov %esi,%eax - 4144e8: 83 c2 01 add $0x1,%edx - 4144eb: 25 00 80 00 00 and $0x8000,%eax - 4144f0: 89 15 ae 80 2b 00 mov %edx,0x2b80ae(%rip) # 6cc5a4 - 4144f6: 0f 85 7c 01 00 00 jne 414678 <_IO_un_link+0x228> - 4144fc: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 414503: 64 4c 8b 04 25 10 00 mov %fs:0x10,%r8 - 41450a: 00 00 - 41450c: 4c 3b 42 08 cmp 0x8(%rdx),%r8 - 414510: 74 3c je 41454e <_IO_un_link+0xfe> - 414512: be 01 00 00 00 mov $0x1,%esi - 414517: 83 3d 9e 8c 2b 00 00 cmpl $0x0,0x2b8c9e(%rip) # 6cd1bc <__libc_multiple_threads> - 41451e: 74 08 je 414528 <_IO_un_link+0xd8> - 414520: f0 0f b1 32 lock cmpxchg %esi,(%rdx) - 414524: 75 07 jne 41452d <_IO_un_link+0xdd> - 414526: eb 1b jmp 414543 <_IO_un_link+0xf3> - 414528: 0f b1 32 cmpxchg %esi,(%rdx) - 41452b: 74 16 je 414543 <_IO_un_link+0xf3> - 41452d: 48 8d 3a lea (%rdx),%rdi - 414530: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 414537: e8 94 e0 02 00 callq 4425d0 <__lll_lock_wait_private> - 41453c: 48 81 c4 80 00 00 00 add $0x80,%rsp - 414543: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 41454a: 4c 89 42 08 mov %r8,0x8(%rdx) - 41454e: 8b 33 mov (%rbx),%esi - 414550: 48 8b 3d 69 5b 2b 00 mov 0x2b5b69(%rip),%rdi # 6ca0c0 <_IO_list_all> - 414557: 83 42 04 01 addl $0x1,0x4(%rdx) - 41455b: 89 f0 mov %esi,%eax - 41455d: 25 00 80 00 00 and $0x8000,%eax - 414562: 48 85 ff test %rdi,%rdi - 414565: 74 36 je 41459d <_IO_un_link+0x14d> - 414567: 48 39 fb cmp %rdi,%rbx - 41456a: 0f 84 60 01 00 00 je 4146d0 <_IO_un_link+0x280> - 414570: 48 8b 4f 68 mov 0x68(%rdi),%rcx - 414574: 48 85 c9 test %rcx,%rcx - 414577: 74 24 je 41459d <_IO_un_link+0x14d> - 414579: 48 39 cb cmp %rcx,%rbx - 41457c: 75 16 jne 414594 <_IO_un_link+0x144> - 41457e: e9 64 01 00 00 jmpq 4146e7 <_IO_un_link+0x297> - 414583: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 414588: 48 39 d3 cmp %rdx,%rbx - 41458b: 0f 84 1f 01 00 00 je 4146b0 <_IO_un_link+0x260> - 414591: 48 89 d1 mov %rdx,%rcx - 414594: 48 8b 51 68 mov 0x68(%rcx),%rdx - 414598: 48 85 d2 test %rdx,%rdx - 41459b: 75 eb jne 414588 <_IO_un_link+0x138> - 41459d: 40 80 e6 7f and $0x7f,%sil - 4145a1: 85 c0 test %eax,%eax - 4145a3: 89 33 mov %esi,(%rbx) - 4145a5: 0f 85 bf 00 00 00 jne 41466a <_IO_un_link+0x21a> - 4145ab: 48 8b b3 88 00 00 00 mov 0x88(%rbx),%rsi - 4145b2: 8b 46 04 mov 0x4(%rsi),%eax - 4145b5: 83 e8 01 sub $0x1,%eax - 4145b8: 85 c0 test %eax,%eax - 4145ba: 89 46 04 mov %eax,0x4(%rsi) - 4145bd: 8b 15 e1 7f 2b 00 mov 0x2b7fe1(%rip),%edx # 6cc5a4 - 4145c3: 74 73 je 414638 <_IO_un_link+0x1e8> - 4145c5: 83 ea 01 sub $0x1,%edx - 4145c8: 48 c7 05 bd 7f 2b 00 movq $0x0,0x2b7fbd(%rip) # 6cc590 - 4145cf: 00 00 00 00 - 4145d3: 85 d2 test %edx,%edx - 4145d5: 89 15 c9 7f 2b 00 mov %edx,0x2b7fc9(%rip) # 6cc5a4 - 4145db: 75 41 jne 41461e <_IO_un_link+0x1ce> - 4145dd: 48 c7 05 c0 7f 2b 00 movq $0x0,0x2b7fc0(%rip) # 6cc5a8 - 4145e4: 00 00 00 00 - 4145e8: 83 3d cd 8b 2b 00 00 cmpl $0x0,0x2b8bcd(%rip) # 6cd1bc <__libc_multiple_threads> - 4145ef: 74 0b je 4145fc <_IO_un_link+0x1ac> - 4145f1: f0 ff 0d a8 7f 2b 00 lock decl 0x2b7fa8(%rip) # 6cc5a0 - 4145f8: 75 0a jne 414604 <_IO_un_link+0x1b4> - 4145fa: eb 22 jmp 41461e <_IO_un_link+0x1ce> - 4145fc: ff 0d 9e 7f 2b 00 decl 0x2b7f9e(%rip) # 6cc5a0 - 414602: 74 1a je 41461e <_IO_un_link+0x1ce> - 414604: 48 8d 3d 95 7f 2b 00 lea 0x2b7f95(%rip),%rdi # 6cc5a0 - 41460b: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 414612: e8 e9 df 02 00 callq 442600 <__lll_unlock_wake_private> - 414617: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41461e: 48 85 ed test %rbp,%rbp - 414621: 74 0a je 41462d <_IO_un_link+0x1dd> - 414623: 31 f6 xor %esi,%esi - 414625: 48 89 e7 mov %rsp,%rdi - 414628: e8 d3 b9 be ff callq 0 <_nl_current_LC_CTYPE> - 41462d: 48 83 c4 28 add $0x28,%rsp - 414631: 5b pop %rbx - 414632: 5d pop %rbp - 414633: f3 c3 repz retq - 414635: 0f 1f 00 nopl (%rax) - 414638: 48 c7 46 08 00 00 00 movq $0x0,0x8(%rsi) - 41463f: 00 - 414640: 83 3d 75 8b 2b 00 00 cmpl $0x0,0x2b8b75(%rip) # 6cd1bc <__libc_multiple_threads> - 414647: 74 07 je 414650 <_IO_un_link+0x200> - 414649: f0 ff 0e lock decl (%rsi) - 41464c: 75 06 jne 414654 <_IO_un_link+0x204> - 41464e: eb 1a jmp 41466a <_IO_un_link+0x21a> - 414650: ff 0e decl (%rsi) - 414652: 74 16 je 41466a <_IO_un_link+0x21a> - 414654: 48 8d 3e lea (%rsi),%rdi - 414657: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41465e: e8 9d df 02 00 callq 442600 <__lll_unlock_wake_private> - 414663: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41466a: 8b 15 34 7f 2b 00 mov 0x2b7f34(%rip),%edx # 6cc5a4 - 414670: e9 50 ff ff ff jmpq 4145c5 <_IO_un_link+0x175> - 414675: 0f 1f 00 nopl (%rax) - 414678: 48 8b 3d 41 5a 2b 00 mov 0x2b5a41(%rip),%rdi # 6ca0c0 <_IO_list_all> - 41467f: 48 85 ff test %rdi,%rdi - 414682: 0f 85 df fe ff ff jne 414567 <_IO_un_link+0x117> - 414688: 40 80 e6 7f and $0x7f,%sil - 41468c: 89 33 mov %esi,(%rbx) - 41468e: e9 32 ff ff ff jmpq 4145c5 <_IO_un_link+0x175> - 414693: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 414698: 48 c7 04 24 50 41 41 movq $0x414150,(%rsp) - 41469f: 00 - 4146a0: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) - 4146a7: 00 00 - 4146a9: e9 d1 fd ff ff jmpq 41447f <_IO_un_link+0x2f> - 4146ae: 66 90 xchg %ax,%ax - 4146b0: 48 83 c1 68 add $0x68,%rcx - 4146b4: 48 8b 53 68 mov 0x68(%rbx),%rdx - 4146b8: 83 05 d9 7e 2b 00 01 addl $0x1,0x2b7ed9(%rip) # 6cc598 <_IO_list_all_stamp> - 4146bf: 48 89 11 mov %rdx,(%rcx) - 4146c2: e9 d6 fe ff ff jmpq 41459d <_IO_un_link+0x14d> - 4146c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4146ce: 00 00 - 4146d0: 48 8b 53 68 mov 0x68(%rbx),%rdx - 4146d4: 83 05 bd 7e 2b 00 01 addl $0x1,0x2b7ebd(%rip) # 6cc598 <_IO_list_all_stamp> - 4146db: 48 89 15 de 59 2b 00 mov %rdx,0x2b59de(%rip) # 6ca0c0 <_IO_list_all> - 4146e2: e9 b6 fe ff ff jmpq 41459d <_IO_un_link+0x14d> - 4146e7: 48 8d 4f 68 lea 0x68(%rdi),%rcx - 4146eb: eb c7 jmp 4146b4 <_IO_un_link+0x264> - 4146ed: 0f 1f 00 nopl (%rax) - -00000000004146f0 <_IO_link_in>: - 4146f0: 8b 07 mov (%rdi),%eax - 4146f2: a8 80 test $0x80,%al - 4146f4: 0f 85 ab 01 00 00 jne 4148a5 <_IO_link_in+0x1b5> - 4146fa: 55 push %rbp - 4146fb: 53 push %rbx - 4146fc: bd 00 00 00 00 mov $0x0,%ebp - 414701: 0c 80 or $0x80,%al - 414703: 48 89 fb mov %rdi,%rbx - 414706: 48 83 ec 28 sub $0x28,%rsp - 41470a: 48 85 ed test %rbp,%rbp - 41470d: 89 07 mov %eax,(%rdi) - 41470f: 0f 84 bb 01 00 00 je 4148d0 <_IO_link_in+0x1e0> - 414715: 31 d2 xor %edx,%edx - 414717: be 50 41 41 00 mov $0x414150,%esi - 41471c: 48 89 e7 mov %rsp,%rdi - 41471f: e8 dc b8 be ff callq 0 <_nl_current_LC_CTYPE> - 414724: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx - 41472b: 00 00 - 41472d: 48 3b 15 74 7e 2b 00 cmp 0x2b7e74(%rip),%rdx # 6cc5a8 - 414734: 74 46 je 41477c <_IO_link_in+0x8c> - 414736: be 01 00 00 00 mov $0x1,%esi - 41473b: 31 c0 xor %eax,%eax - 41473d: 83 3d 78 8a 2b 00 00 cmpl $0x0,0x2b8a78(%rip) # 6cd1bc <__libc_multiple_threads> - 414744: 74 0c je 414752 <_IO_link_in+0x62> - 414746: f0 0f b1 35 52 7e 2b lock cmpxchg %esi,0x2b7e52(%rip) # 6cc5a0 - 41474d: 00 - 41474e: 75 0b jne 41475b <_IO_link_in+0x6b> - 414750: eb 23 jmp 414775 <_IO_link_in+0x85> - 414752: 0f b1 35 47 7e 2b 00 cmpxchg %esi,0x2b7e47(%rip) # 6cc5a0 - 414759: 74 1a je 414775 <_IO_link_in+0x85> - 41475b: 48 8d 3d 3e 7e 2b 00 lea 0x2b7e3e(%rip),%rdi # 6cc5a0 - 414762: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 414769: e8 62 de 02 00 callq 4425d0 <__lll_lock_wait_private> - 41476e: 48 81 c4 80 00 00 00 add $0x80,%rsp - 414775: 48 89 15 2c 7e 2b 00 mov %rdx,0x2b7e2c(%rip) # 6cc5a8 - 41477c: 8b 0b mov (%rbx),%ecx - 41477e: 8b 15 20 7e 2b 00 mov 0x2b7e20(%rip),%edx # 6cc5a4 - 414784: 48 89 1d 05 7e 2b 00 mov %rbx,0x2b7e05(%rip) # 6cc590 - 41478b: 89 c8 mov %ecx,%eax - 41478d: 83 c2 01 add $0x1,%edx - 414790: 25 00 80 00 00 and $0x8000,%eax - 414795: 89 15 09 7e 2b 00 mov %edx,0x2b7e09(%rip) # 6cc5a4 - 41479b: 0f 85 0f 01 00 00 jne 4148b0 <_IO_link_in+0x1c0> - 4147a1: 4c 8b 83 88 00 00 00 mov 0x88(%rbx),%r8 - 4147a8: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx - 4147af: 00 00 - 4147b1: 49 3b 50 08 cmp 0x8(%r8),%rdx - 4147b5: 74 40 je 4147f7 <_IO_link_in+0x107> - 4147b7: be 01 00 00 00 mov $0x1,%esi - 4147bc: 83 3d f9 89 2b 00 00 cmpl $0x0,0x2b89f9(%rip) # 6cd1bc <__libc_multiple_threads> - 4147c3: 74 09 je 4147ce <_IO_link_in+0xde> - 4147c5: f0 41 0f b1 30 lock cmpxchg %esi,(%r8) - 4147ca: 75 08 jne 4147d4 <_IO_link_in+0xe4> - 4147cc: eb 1c jmp 4147ea <_IO_link_in+0xfa> - 4147ce: 41 0f b1 30 cmpxchg %esi,(%r8) - 4147d2: 74 16 je 4147ea <_IO_link_in+0xfa> - 4147d4: 49 8d 38 lea (%r8),%rdi - 4147d7: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4147de: e8 ed dd 02 00 callq 4425d0 <__lll_lock_wait_private> - 4147e3: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4147ea: 4c 8b 83 88 00 00 00 mov 0x88(%rbx),%r8 - 4147f1: 8b 0b mov (%rbx),%ecx - 4147f3: 49 89 50 08 mov %rdx,0x8(%r8) - 4147f7: 48 8b 05 c2 58 2b 00 mov 0x2b58c2(%rip),%rax # 6ca0c0 <_IO_list_all> - 4147fe: 41 83 40 04 01 addl $0x1,0x4(%r8) - 414803: 83 05 8e 7d 2b 00 01 addl $0x1,0x2b7d8e(%rip) # 6cc598 <_IO_list_all_stamp> - 41480a: 80 e5 80 and $0x80,%ch - 41480d: 48 89 1d ac 58 2b 00 mov %rbx,0x2b58ac(%rip) # 6ca0c0 <_IO_list_all> - 414814: 48 89 43 68 mov %rax,0x68(%rbx) - 414818: 0f 85 06 01 00 00 jne 414924 <_IO_link_in+0x234> - 41481e: 41 8b 40 04 mov 0x4(%r8),%eax - 414822: 83 e8 01 sub $0x1,%eax - 414825: 85 c0 test %eax,%eax - 414827: 41 89 40 04 mov %eax,0x4(%r8) - 41482b: 8b 15 73 7d 2b 00 mov 0x2b7d73(%rip),%edx # 6cc5a4 - 414831: 0f 84 b9 00 00 00 je 4148f0 <_IO_link_in+0x200> - 414837: 83 ea 01 sub $0x1,%edx - 41483a: 48 c7 05 4b 7d 2b 00 movq $0x0,0x2b7d4b(%rip) # 6cc590 - 414841: 00 00 00 00 - 414845: 85 d2 test %edx,%edx - 414847: 89 15 57 7d 2b 00 mov %edx,0x2b7d57(%rip) # 6cc5a4 - 41484d: 75 41 jne 414890 <_IO_link_in+0x1a0> - 41484f: 48 c7 05 4e 7d 2b 00 movq $0x0,0x2b7d4e(%rip) # 6cc5a8 - 414856: 00 00 00 00 - 41485a: 83 3d 5b 89 2b 00 00 cmpl $0x0,0x2b895b(%rip) # 6cd1bc <__libc_multiple_threads> - 414861: 74 0b je 41486e <_IO_link_in+0x17e> - 414863: f0 ff 0d 36 7d 2b 00 lock decl 0x2b7d36(%rip) # 6cc5a0 - 41486a: 75 0a jne 414876 <_IO_link_in+0x186> - 41486c: eb 22 jmp 414890 <_IO_link_in+0x1a0> - 41486e: ff 0d 2c 7d 2b 00 decl 0x2b7d2c(%rip) # 6cc5a0 - 414874: 74 1a je 414890 <_IO_link_in+0x1a0> - 414876: 48 8d 3d 23 7d 2b 00 lea 0x2b7d23(%rip),%rdi # 6cc5a0 - 41487d: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 414884: e8 77 dd 02 00 callq 442600 <__lll_unlock_wake_private> - 414889: 48 81 c4 80 00 00 00 add $0x80,%rsp - 414890: 48 85 ed test %rbp,%rbp - 414893: 74 0a je 41489f <_IO_link_in+0x1af> - 414895: 31 f6 xor %esi,%esi - 414897: 48 89 e7 mov %rsp,%rdi - 41489a: e8 61 b7 be ff callq 0 <_nl_current_LC_CTYPE> - 41489f: 48 83 c4 28 add $0x28,%rsp - 4148a3: 5b pop %rbx - 4148a4: 5d pop %rbp - 4148a5: f3 c3 repz retq - 4148a7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4148ae: 00 00 - 4148b0: 48 8b 05 09 58 2b 00 mov 0x2b5809(%rip),%rax # 6ca0c0 <_IO_list_all> - 4148b7: 83 05 da 7c 2b 00 01 addl $0x1,0x2b7cda(%rip) # 6cc598 <_IO_list_all_stamp> - 4148be: 48 89 1d fb 57 2b 00 mov %rbx,0x2b57fb(%rip) # 6ca0c0 <_IO_list_all> - 4148c5: 48 89 43 68 mov %rax,0x68(%rbx) - 4148c9: e9 69 ff ff ff jmpq 414837 <_IO_link_in+0x147> - 4148ce: 66 90 xchg %ax,%ax - 4148d0: 48 c7 04 24 50 41 41 movq $0x414150,(%rsp) - 4148d7: 00 - 4148d8: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) - 4148df: 00 00 - 4148e1: e9 3e fe ff ff jmpq 414724 <_IO_link_in+0x34> - 4148e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4148ed: 00 00 00 - 4148f0: 49 c7 40 08 00 00 00 movq $0x0,0x8(%r8) - 4148f7: 00 - 4148f8: 83 3d bd 88 2b 00 00 cmpl $0x0,0x2b88bd(%rip) # 6cd1bc <__libc_multiple_threads> - 4148ff: 74 08 je 414909 <_IO_link_in+0x219> - 414901: f0 41 ff 08 lock decl (%r8) - 414905: 75 07 jne 41490e <_IO_link_in+0x21e> - 414907: eb 1b jmp 414924 <_IO_link_in+0x234> - 414909: 41 ff 08 decl (%r8) - 41490c: 74 16 je 414924 <_IO_link_in+0x234> - 41490e: 49 8d 38 lea (%r8),%rdi - 414911: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 414918: e8 e3 dc 02 00 callq 442600 <__lll_unlock_wake_private> - 41491d: 48 81 c4 80 00 00 00 add $0x80,%rsp - 414924: 8b 15 7a 7c 2b 00 mov 0x2b7c7a(%rip),%edx # 6cc5a4 - 41492a: e9 08 ff ff ff jmpq 414837 <_IO_link_in+0x147> - 41492f: 90 nop - -0000000000414930 <_IO_least_marker>: - 414930: 48 8b 57 60 mov 0x60(%rdi),%rdx - 414934: 48 89 f0 mov %rsi,%rax - 414937: 48 2b 47 18 sub 0x18(%rdi),%rax - 41493b: 48 85 d2 test %rdx,%rdx - 41493e: 74 13 je 414953 <_IO_least_marker+0x23> - 414940: 48 63 4a 10 movslq 0x10(%rdx),%rcx - 414944: 48 8b 12 mov (%rdx),%rdx - 414947: 48 39 c8 cmp %rcx,%rax - 41494a: 48 0f 4f c1 cmovg %rcx,%rax - 41494e: 48 85 d2 test %rdx,%rdx - 414951: 75 ed jne 414940 <_IO_least_marker+0x10> - 414953: f3 c3 repz retq - 414955: 90 nop - 414956: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41495d: 00 00 00 - -0000000000414960 <_IO_switch_to_main_get_area>: - 414960: 48 8b 47 10 mov 0x10(%rdi),%rax - 414964: 48 8b 57 58 mov 0x58(%rdi),%rdx - 414968: 81 27 ff fe ff ff andl $0xfffffeff,(%rdi) - 41496e: 48 89 57 10 mov %rdx,0x10(%rdi) - 414972: 48 89 47 58 mov %rax,0x58(%rdi) - 414976: 48 8b 57 18 mov 0x18(%rdi),%rdx - 41497a: 48 8b 47 48 mov 0x48(%rdi),%rax - 41497e: 48 89 57 48 mov %rdx,0x48(%rdi) - 414982: 48 89 47 18 mov %rax,0x18(%rdi) - 414986: 48 89 47 08 mov %rax,0x8(%rdi) - 41498a: c3 retq - 41498b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -0000000000414990 <_IO_switch_to_backup_area>: - 414990: 48 8b 57 10 mov 0x10(%rdi),%rdx - 414994: 48 8b 47 58 mov 0x58(%rdi),%rax - 414998: 48 8b 4f 48 mov 0x48(%rdi),%rcx - 41499c: 81 0f 00 01 00 00 orl $0x100,(%rdi) - 4149a2: 48 89 57 58 mov %rdx,0x58(%rdi) - 4149a6: 48 8b 57 18 mov 0x18(%rdi),%rdx - 4149aa: 48 89 47 10 mov %rax,0x10(%rdi) - 4149ae: 48 89 4f 18 mov %rcx,0x18(%rdi) - 4149b2: 48 89 57 48 mov %rdx,0x48(%rdi) - 4149b6: 48 89 47 08 mov %rax,0x8(%rdi) - 4149ba: c3 retq - 4149bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -00000000004149c0 <_IO_switch_to_get_mode>: - 4149c0: 48 8b 47 28 mov 0x28(%rdi),%rax - 4149c4: 48 3b 47 20 cmp 0x20(%rdi),%rax - 4149c8: 53 push %rbx - 4149c9: 48 89 fb mov %rdi,%rbx - 4149cc: 77 42 ja 414a10 <_IO_switch_to_get_mode+0x50> - 4149ce: 8b 13 mov (%rbx),%edx - 4149d0: f6 c6 01 test $0x1,%dh - 4149d3: 75 2b jne 414a00 <_IO_switch_to_get_mode+0x40> - 4149d5: 48 39 43 10 cmp %rax,0x10(%rbx) - 4149d9: 48 8b 4b 38 mov 0x38(%rbx),%rcx - 4149dd: 48 89 4b 18 mov %rcx,0x18(%rbx) - 4149e1: 73 04 jae 4149e7 <_IO_switch_to_get_mode+0x27> - 4149e3: 48 89 43 10 mov %rax,0x10(%rbx) - 4149e7: 80 e6 f7 and $0xf7,%dh - 4149ea: 48 89 43 08 mov %rax,0x8(%rbx) - 4149ee: 48 89 43 30 mov %rax,0x30(%rbx) - 4149f2: 48 89 43 20 mov %rax,0x20(%rbx) - 4149f6: 89 13 mov %edx,(%rbx) - 4149f8: 31 c0 xor %eax,%eax - 4149fa: 5b pop %rbx - 4149fb: c3 retq - 4149fc: 0f 1f 40 00 nopl 0x0(%rax) - 414a00: 48 8b 4b 50 mov 0x50(%rbx),%rcx - 414a04: 48 89 4b 18 mov %rcx,0x18(%rbx) - 414a08: eb dd jmp 4149e7 <_IO_switch_to_get_mode+0x27> - 414a0a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 414a10: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 414a17: be ff ff ff ff mov $0xffffffff,%esi - 414a1c: ff 50 18 callq *0x18(%rax) - 414a1f: 83 f8 ff cmp $0xffffffff,%eax - 414a22: 74 d6 je 4149fa <_IO_switch_to_get_mode+0x3a> - 414a24: 48 8b 43 28 mov 0x28(%rbx),%rax - 414a28: eb a4 jmp 4149ce <_IO_switch_to_get_mode+0xe> - 414a2a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -0000000000414a30 <_IO_free_backup_area>: - 414a30: 53 push %rbx - 414a31: 8b 07 mov (%rdi),%eax - 414a33: 48 89 fb mov %rdi,%rbx - 414a36: f6 c4 01 test $0x1,%ah - 414a39: 74 45 je 414a80 <_IO_free_backup_area+0x50> - 414a3b: 80 e4 fe and $0xfe,%ah - 414a3e: 89 07 mov %eax,(%rdi) - 414a40: 48 8b 47 58 mov 0x58(%rdi),%rax - 414a44: 48 89 47 10 mov %rax,0x10(%rdi) - 414a48: 48 8b 43 48 mov 0x48(%rbx),%rax - 414a4c: 48 8b 7f 18 mov 0x18(%rdi),%rdi - 414a50: 48 89 43 18 mov %rax,0x18(%rbx) - 414a54: 48 89 43 08 mov %rax,0x8(%rbx) - 414a58: e8 53 93 00 00 callq 41ddb0 <__cfree> - 414a5d: 48 c7 43 48 00 00 00 movq $0x0,0x48(%rbx) - 414a64: 00 - 414a65: 48 c7 43 58 00 00 00 movq $0x0,0x58(%rbx) - 414a6c: 00 - 414a6d: 48 c7 43 50 00 00 00 movq $0x0,0x50(%rbx) - 414a74: 00 - 414a75: 5b pop %rbx - 414a76: c3 retq - 414a77: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 414a7e: 00 00 - 414a80: 48 8b 7f 48 mov 0x48(%rdi),%rdi - 414a84: eb d2 jmp 414a58 <_IO_free_backup_area+0x28> - 414a86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 414a8d: 00 00 00 - -0000000000414a90 <__overflow>: - 414a90: 8b 87 c0 00 00 00 mov 0xc0(%rdi),%eax - 414a96: 85 c0 test %eax,%eax - 414a98: 75 0a jne 414aa4 <__overflow+0x14> - 414a9a: c7 87 c0 00 00 00 ff movl $0xffffffff,0xc0(%rdi) - 414aa1: ff ff ff - 414aa4: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 414aab: 48 8b 40 18 mov 0x18(%rax),%rax - 414aaf: ff e0 jmpq *%rax - 414ab1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 414ab6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 414abd: 00 00 00 - -0000000000414ac0 <__underflow>: - 414ac0: 53 push %rbx - 414ac1: 8b 87 c0 00 00 00 mov 0xc0(%rdi),%eax - 414ac7: 85 c0 test %eax,%eax - 414ac9: 75 55 jne 414b20 <__underflow+0x60> - 414acb: c7 87 c0 00 00 00 ff movl $0xffffffff,0xc0(%rdi) - 414ad2: ff ff ff - 414ad5: 8b 07 mov (%rdi),%eax - 414ad7: 48 89 fb mov %rdi,%rbx - 414ada: f6 c4 08 test $0x8,%ah - 414add: 0f 85 85 00 00 00 jne 414b68 <__underflow+0xa8> - 414ae3: 48 8b 57 08 mov 0x8(%rdi),%rdx - 414ae7: 48 8b 77 10 mov 0x10(%rdi),%rsi - 414aeb: 48 39 f2 cmp %rsi,%rdx - 414aee: 72 6d jb 414b5d <__underflow+0x9d> - 414af0: f6 c4 01 test $0x1,%ah - 414af3: 75 3b jne 414b30 <__underflow+0x70> - 414af5: 48 83 7b 60 00 cmpq $0x0,0x60(%rbx) - 414afa: 0f 84 e0 00 00 00 je 414be0 <__underflow+0x120> - 414b00: 48 89 df mov %rbx,%rdi - 414b03: e8 58 f4 ff ff callq 413f60 - 414b08: 85 c0 test %eax,%eax - 414b0a: 75 19 jne 414b25 <__underflow+0x65> - 414b0c: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 414b13: 48 89 df mov %rbx,%rdi - 414b16: 5b pop %rbx - 414b17: 48 8b 40 20 mov 0x20(%rax),%rax - 414b1b: ff e0 jmpq *%rax - 414b1d: 0f 1f 00 nopl (%rax) - 414b20: 83 f8 ff cmp $0xffffffff,%eax - 414b23: 74 b0 je 414ad5 <__underflow+0x15> - 414b25: b8 ff ff ff ff mov $0xffffffff,%eax - 414b2a: 5b pop %rbx - 414b2b: c3 retq - 414b2c: 0f 1f 40 00 nopl 0x0(%rax) - 414b30: 48 8b 4b 58 mov 0x58(%rbx),%rcx - 414b34: 48 8b 53 48 mov 0x48(%rbx),%rdx - 414b38: 80 e4 fe and $0xfe,%ah - 414b3b: 48 89 73 58 mov %rsi,0x58(%rbx) - 414b3f: 48 8b 73 18 mov 0x18(%rbx),%rsi - 414b43: 89 03 mov %eax,(%rbx) - 414b45: 48 39 d1 cmp %rdx,%rcx - 414b48: 48 89 4b 10 mov %rcx,0x10(%rbx) - 414b4c: 48 89 53 18 mov %rdx,0x18(%rbx) - 414b50: 48 89 73 48 mov %rsi,0x48(%rbx) - 414b54: 48 89 53 08 mov %rdx,0x8(%rbx) - 414b58: 48 89 ce mov %rcx,%rsi - 414b5b: 76 98 jbe 414af5 <__underflow+0x35> - 414b5d: 0f b6 02 movzbl (%rdx),%eax - 414b60: 5b pop %rbx - 414b61: c3 retq - 414b62: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 414b68: 48 8b 57 28 mov 0x28(%rdi),%rdx - 414b6c: 48 3b 57 20 cmp 0x20(%rdi),%rdx - 414b70: 77 4e ja 414bc0 <__underflow+0x100> - 414b72: f6 c4 01 test $0x1,%ah - 414b75: 75 31 jne 414ba8 <__underflow+0xe8> - 414b77: 48 8b 73 10 mov 0x10(%rbx),%rsi - 414b7b: 48 8b 4b 38 mov 0x38(%rbx),%rcx - 414b7f: 48 39 d6 cmp %rdx,%rsi - 414b82: 48 89 4b 18 mov %rcx,0x18(%rbx) - 414b86: 73 07 jae 414b8f <__underflow+0xcf> - 414b88: 48 89 53 10 mov %rdx,0x10(%rbx) - 414b8c: 48 89 d6 mov %rdx,%rsi - 414b8f: 80 e4 f7 and $0xf7,%ah - 414b92: 48 89 53 08 mov %rdx,0x8(%rbx) - 414b96: 48 89 53 30 mov %rdx,0x30(%rbx) - 414b9a: 48 89 53 20 mov %rdx,0x20(%rbx) - 414b9e: 89 03 mov %eax,(%rbx) - 414ba0: e9 46 ff ff ff jmpq 414aeb <__underflow+0x2b> - 414ba5: 0f 1f 00 nopl (%rax) - 414ba8: 48 8b 4b 50 mov 0x50(%rbx),%rcx - 414bac: 48 8b 73 10 mov 0x10(%rbx),%rsi - 414bb0: 48 89 4b 18 mov %rcx,0x18(%rbx) - 414bb4: eb d9 jmp 414b8f <__underflow+0xcf> - 414bb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 414bbd: 00 00 00 - 414bc0: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 414bc7: be ff ff ff ff mov $0xffffffff,%esi - 414bcc: ff 50 18 callq *0x18(%rax) - 414bcf: 83 f8 ff cmp $0xffffffff,%eax - 414bd2: 0f 84 4d ff ff ff je 414b25 <__underflow+0x65> - 414bd8: 8b 03 mov (%rbx),%eax - 414bda: 48 8b 53 28 mov 0x28(%rbx),%rdx - 414bde: eb 92 jmp 414b72 <__underflow+0xb2> - 414be0: 48 8b 7b 48 mov 0x48(%rbx),%rdi - 414be4: 48 85 ff test %rdi,%rdi - 414be7: 0f 84 1f ff ff ff je 414b0c <__underflow+0x4c> - 414bed: f6 c4 01 test $0x1,%ah - 414bf0: 74 1c je 414c0e <__underflow+0x14e> - 414bf2: 80 e4 fe and $0xfe,%ah - 414bf5: 48 89 7b 08 mov %rdi,0x8(%rbx) - 414bf9: 89 03 mov %eax,(%rbx) - 414bfb: 48 8b 43 58 mov 0x58(%rbx),%rax - 414bff: 48 89 43 10 mov %rax,0x10(%rbx) - 414c03: 48 8b 43 18 mov 0x18(%rbx),%rax - 414c07: 48 89 7b 18 mov %rdi,0x18(%rbx) - 414c0b: 48 89 c7 mov %rax,%rdi - 414c0e: e8 9d 91 00 00 callq 41ddb0 <__cfree> - 414c13: 48 c7 43 48 00 00 00 movq $0x0,0x48(%rbx) - 414c1a: 00 - 414c1b: 48 c7 43 58 00 00 00 movq $0x0,0x58(%rbx) - 414c22: 00 - 414c23: 48 c7 43 50 00 00 00 movq $0x0,0x50(%rbx) - 414c2a: 00 - 414c2b: e9 dc fe ff ff jmpq 414b0c <__underflow+0x4c> - -0000000000414c30 <__uflow>: - 414c30: 53 push %rbx - 414c31: 8b 87 c0 00 00 00 mov 0xc0(%rdi),%eax - 414c37: 85 c0 test %eax,%eax - 414c39: 75 55 jne 414c90 <__uflow+0x60> - 414c3b: c7 87 c0 00 00 00 ff movl $0xffffffff,0xc0(%rdi) - 414c42: ff ff ff - 414c45: 8b 07 mov (%rdi),%eax - 414c47: 48 89 fb mov %rdi,%rbx - 414c4a: f6 c4 08 test $0x8,%ah - 414c4d: 0f 85 dd 00 00 00 jne 414d30 <__uflow+0x100> - 414c53: 48 8b 57 08 mov 0x8(%rdi),%rdx - 414c57: 48 8b 77 10 mov 0x10(%rdi),%rsi - 414c5b: 48 39 f2 cmp %rsi,%rdx - 414c5e: 0f 82 bc 00 00 00 jb 414d20 <__uflow+0xf0> - 414c64: f6 c4 01 test $0x1,%ah - 414c67: 75 37 jne 414ca0 <__uflow+0x70> - 414c69: 48 83 7b 60 00 cmpq $0x0,0x60(%rbx) - 414c6e: 74 64 je 414cd4 <__uflow+0xa4> - 414c70: 48 89 df mov %rbx,%rdi - 414c73: e8 e8 f2 ff ff callq 413f60 - 414c78: 85 c0 test %eax,%eax - 414c7a: 75 19 jne 414c95 <__uflow+0x65> - 414c7c: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 414c83: 48 89 df mov %rbx,%rdi - 414c86: 5b pop %rbx - 414c87: 48 8b 40 28 mov 0x28(%rax),%rax - 414c8b: ff e0 jmpq *%rax - 414c8d: 0f 1f 00 nopl (%rax) - 414c90: 83 f8 ff cmp $0xffffffff,%eax - 414c93: 74 b0 je 414c45 <__uflow+0x15> - 414c95: b8 ff ff ff ff mov $0xffffffff,%eax - 414c9a: 5b pop %rbx - 414c9b: c3 retq - 414c9c: 0f 1f 40 00 nopl 0x0(%rax) - 414ca0: 48 8b 4b 58 mov 0x58(%rbx),%rcx - 414ca4: 48 8b 53 48 mov 0x48(%rbx),%rdx - 414ca8: 80 e4 fe and $0xfe,%ah - 414cab: 48 89 73 58 mov %rsi,0x58(%rbx) - 414caf: 48 8b 73 18 mov 0x18(%rbx),%rsi - 414cb3: 89 03 mov %eax,(%rbx) - 414cb5: 48 39 d1 cmp %rdx,%rcx - 414cb8: 48 89 4b 10 mov %rcx,0x10(%rbx) - 414cbc: 48 89 53 18 mov %rdx,0x18(%rbx) - 414cc0: 48 89 73 48 mov %rsi,0x48(%rbx) - 414cc4: 77 5a ja 414d20 <__uflow+0xf0> - 414cc6: 48 83 7b 60 00 cmpq $0x0,0x60(%rbx) - 414ccb: 48 89 53 08 mov %rdx,0x8(%rbx) - 414ccf: 48 89 ce mov %rcx,%rsi - 414cd2: 75 9c jne 414c70 <__uflow+0x40> - 414cd4: 48 8b 7b 48 mov 0x48(%rbx),%rdi - 414cd8: 48 85 ff test %rdi,%rdi - 414cdb: 74 9f je 414c7c <__uflow+0x4c> - 414cdd: f6 c4 01 test $0x1,%ah - 414ce0: 74 1c je 414cfe <__uflow+0xce> - 414ce2: 80 e4 fe and $0xfe,%ah - 414ce5: 48 89 7b 08 mov %rdi,0x8(%rbx) - 414ce9: 89 03 mov %eax,(%rbx) - 414ceb: 48 8b 43 58 mov 0x58(%rbx),%rax - 414cef: 48 89 43 10 mov %rax,0x10(%rbx) - 414cf3: 48 8b 43 18 mov 0x18(%rbx),%rax - 414cf7: 48 89 7b 18 mov %rdi,0x18(%rbx) - 414cfb: 48 89 c7 mov %rax,%rdi - 414cfe: e8 ad 90 00 00 callq 41ddb0 <__cfree> - 414d03: 48 c7 43 48 00 00 00 movq $0x0,0x48(%rbx) - 414d0a: 00 - 414d0b: 48 c7 43 58 00 00 00 movq $0x0,0x58(%rbx) - 414d12: 00 - 414d13: 48 c7 43 50 00 00 00 movq $0x0,0x50(%rbx) - 414d1a: 00 - 414d1b: e9 5c ff ff ff jmpq 414c7c <__uflow+0x4c> - 414d20: 48 8d 42 01 lea 0x1(%rdx),%rax - 414d24: 48 89 43 08 mov %rax,0x8(%rbx) - 414d28: 0f b6 02 movzbl (%rdx),%eax - 414d2b: 5b pop %rbx - 414d2c: c3 retq - 414d2d: 0f 1f 00 nopl (%rax) - 414d30: 48 8b 57 28 mov 0x28(%rdi),%rdx - 414d34: 48 3b 57 20 cmp 0x20(%rdi),%rdx - 414d38: 77 46 ja 414d80 <__uflow+0x150> - 414d3a: f6 c4 01 test $0x1,%ah - 414d3d: 75 31 jne 414d70 <__uflow+0x140> - 414d3f: 48 8b 73 10 mov 0x10(%rbx),%rsi - 414d43: 48 8b 4b 38 mov 0x38(%rbx),%rcx - 414d47: 48 39 d6 cmp %rdx,%rsi - 414d4a: 48 89 4b 18 mov %rcx,0x18(%rbx) - 414d4e: 73 07 jae 414d57 <__uflow+0x127> - 414d50: 48 89 53 10 mov %rdx,0x10(%rbx) - 414d54: 48 89 d6 mov %rdx,%rsi - 414d57: 80 e4 f7 and $0xf7,%ah - 414d5a: 48 89 53 08 mov %rdx,0x8(%rbx) - 414d5e: 48 89 53 30 mov %rdx,0x30(%rbx) - 414d62: 48 89 53 20 mov %rdx,0x20(%rbx) - 414d66: 89 03 mov %eax,(%rbx) - 414d68: e9 ee fe ff ff jmpq 414c5b <__uflow+0x2b> - 414d6d: 0f 1f 00 nopl (%rax) - 414d70: 48 8b 4b 50 mov 0x50(%rbx),%rcx - 414d74: 48 8b 73 10 mov 0x10(%rbx),%rsi - 414d78: 48 89 4b 18 mov %rcx,0x18(%rbx) - 414d7c: eb d9 jmp 414d57 <__uflow+0x127> - 414d7e: 66 90 xchg %ax,%ax - 414d80: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 414d87: be ff ff ff ff mov $0xffffffff,%esi - 414d8c: ff 50 18 callq *0x18(%rax) - 414d8f: 83 f8 ff cmp $0xffffffff,%eax - 414d92: 0f 84 fd fe ff ff je 414c95 <__uflow+0x65> - 414d98: 8b 03 mov (%rbx),%eax - 414d9a: 48 8b 53 28 mov 0x28(%rbx),%rdx - 414d9e: eb 9a jmp 414d3a <__uflow+0x10a> - -0000000000414da0 <_IO_setb>: - 414da0: 53 push %rbx - 414da1: 48 89 fb mov %rdi,%rbx - 414da4: 48 83 ec 20 sub $0x20,%rsp - 414da8: 48 8b 7f 38 mov 0x38(%rdi),%rdi - 414dac: 8b 03 mov (%rbx),%eax - 414dae: 48 85 ff test %rdi,%rdi - 414db1: 74 04 je 414db7 <_IO_setb+0x17> - 414db3: a8 01 test $0x1,%al - 414db5: 74 21 je 414dd8 <_IO_setb+0x38> - 414db7: 48 89 53 40 mov %rdx,0x40(%rbx) - 414dbb: 89 c2 mov %eax,%edx - 414dbd: 83 c8 01 or $0x1,%eax - 414dc0: 83 e2 fe and $0xfffffffe,%edx - 414dc3: 85 c9 test %ecx,%ecx - 414dc5: 48 89 73 38 mov %rsi,0x38(%rbx) - 414dc9: 0f 45 c2 cmovne %edx,%eax - 414dcc: 89 03 mov %eax,(%rbx) - 414dce: 48 83 c4 20 add $0x20,%rsp - 414dd2: 5b pop %rbx - 414dd3: c3 retq - 414dd4: 0f 1f 40 00 nopl 0x0(%rax) - 414dd8: 89 4c 24 1c mov %ecx,0x1c(%rsp) - 414ddc: 48 89 54 24 10 mov %rdx,0x10(%rsp) - 414de1: 48 89 74 24 08 mov %rsi,0x8(%rsp) - 414de6: e8 c5 8f 00 00 callq 41ddb0 <__cfree> - 414deb: 8b 03 mov (%rbx),%eax - 414ded: 8b 4c 24 1c mov 0x1c(%rsp),%ecx - 414df1: 48 8b 54 24 10 mov 0x10(%rsp),%rdx - 414df6: 48 8b 74 24 08 mov 0x8(%rsp),%rsi - 414dfb: eb ba jmp 414db7 <_IO_setb+0x17> - 414dfd: 0f 1f 00 nopl (%rax) - -0000000000414e00 <_IO_doallocbuf>: - 414e00: 48 83 7f 38 00 cmpq $0x0,0x38(%rdi) - 414e05: 74 09 je 414e10 <_IO_doallocbuf+0x10> - 414e07: c3 retq - 414e08: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 414e0f: 00 - 414e10: 41 54 push %r12 - 414e12: 55 push %rbp - 414e13: 53 push %rbx - 414e14: 8b 07 mov (%rdi),%eax - 414e16: 48 89 fb mov %rdi,%rbx - 414e19: a8 02 test $0x2,%al - 414e1b: 74 0a je 414e27 <_IO_doallocbuf+0x27> - 414e1d: 8b 97 c0 00 00 00 mov 0xc0(%rdi),%edx - 414e23: 85 d2 test %edx,%edx - 414e25: 7e 49 jle 414e70 <_IO_doallocbuf+0x70> - 414e27: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 414e2e: 48 89 df mov %rbx,%rdi - 414e31: ff 50 68 callq *0x68(%rax) - 414e34: 83 f8 ff cmp $0xffffffff,%eax - 414e37: 74 07 je 414e40 <_IO_doallocbuf+0x40> - 414e39: 5b pop %rbx - 414e3a: 5d pop %rbp - 414e3b: 41 5c pop %r12 - 414e3d: c3 retq - 414e3e: 66 90 xchg %ax,%ax - 414e40: 48 8b 7b 38 mov 0x38(%rbx),%rdi - 414e44: 4c 8d a3 84 00 00 00 lea 0x84(%rbx),%r12 - 414e4b: 48 8d ab 83 00 00 00 lea 0x83(%rbx),%rbp - 414e52: 8b 03 mov (%rbx),%eax - 414e54: 48 85 ff test %rdi,%rdi - 414e57: 74 04 je 414e5d <_IO_doallocbuf+0x5d> - 414e59: a8 01 test $0x1,%al - 414e5b: 74 23 je 414e80 <_IO_doallocbuf+0x80> - 414e5d: 83 c8 01 or $0x1,%eax - 414e60: 48 89 6b 38 mov %rbp,0x38(%rbx) - 414e64: 4c 89 63 40 mov %r12,0x40(%rbx) - 414e68: 89 03 mov %eax,(%rbx) - 414e6a: eb cd jmp 414e39 <_IO_doallocbuf+0x39> - 414e6c: 0f 1f 40 00 nopl 0x0(%rax) - 414e70: 4c 8d a7 84 00 00 00 lea 0x84(%rdi),%r12 - 414e77: 48 8d af 83 00 00 00 lea 0x83(%rdi),%rbp - 414e7e: eb dd jmp 414e5d <_IO_doallocbuf+0x5d> - 414e80: e8 2b 8f 00 00 callq 41ddb0 <__cfree> - 414e85: 8b 03 mov (%rbx),%eax - 414e87: eb d4 jmp 414e5d <_IO_doallocbuf+0x5d> - 414e89: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -0000000000414e90 <_IO_default_underflow>: - 414e90: b8 ff ff ff ff mov $0xffffffff,%eax - 414e95: c3 retq - 414e96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 414e9d: 00 00 00 - -0000000000414ea0 <_IO_default_uflow>: - 414ea0: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 414ea7: 53 push %rbx - 414ea8: 48 89 fb mov %rdi,%rbx - 414eab: ff 50 20 callq *0x20(%rax) - 414eae: 83 f8 ff cmp $0xffffffff,%eax - 414eb1: 74 0f je 414ec2 <_IO_default_uflow+0x22> - 414eb3: 48 8b 43 08 mov 0x8(%rbx),%rax - 414eb7: 48 8d 50 01 lea 0x1(%rax),%rdx - 414ebb: 48 89 53 08 mov %rdx,0x8(%rbx) - 414ebf: 0f b6 00 movzbl (%rax),%eax - 414ec2: 5b pop %rbx - 414ec3: c3 retq - 414ec4: 66 90 xchg %ax,%ax - 414ec6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 414ecd: 00 00 00 - -0000000000414ed0 <_IO_default_xsputn>: - 414ed0: 48 85 d2 test %rdx,%rdx - 414ed3: 0f 84 b7 00 00 00 je 414f90 <_IO_default_xsputn+0xc0> - 414ed9: 41 56 push %r14 - 414edb: 41 55 push %r13 - 414edd: 49 89 f6 mov %rsi,%r14 - 414ee0: 41 54 push %r12 - 414ee2: 55 push %rbp - 414ee3: 49 89 fc mov %rdi,%r12 - 414ee6: 53 push %rbx - 414ee7: 49 89 d5 mov %rdx,%r13 - 414eea: 48 89 d5 mov %rdx,%rbp - 414eed: 0f 1f 00 nopl (%rax) - 414ef0: 49 8b 7c 24 28 mov 0x28(%r12),%rdi - 414ef5: 49 8b 5c 24 30 mov 0x30(%r12),%rbx - 414efa: 48 39 df cmp %rbx,%rdi - 414efd: 73 36 jae 414f35 <_IO_default_xsputn+0x65> - 414eff: 48 29 fb sub %rdi,%rbx - 414f02: 48 39 dd cmp %rbx,%rbp - 414f05: 48 0f 46 dd cmovbe %rbp,%rbx - 414f09: 48 83 fb 14 cmp $0x14,%rbx - 414f0d: 77 51 ja 414f60 <_IO_default_xsputn+0x90> - 414f0f: 48 85 db test %rbx,%rbx - 414f12: 74 1e je 414f32 <_IO_default_xsputn+0x62> - 414f14: 31 c0 xor %eax,%eax - 414f16: 41 0f b6 14 06 movzbl (%r14,%rax,1),%edx - 414f1b: 88 14 07 mov %dl,(%rdi,%rax,1) - 414f1e: 48 83 c0 01 add $0x1,%rax - 414f22: 48 39 c3 cmp %rax,%rbx - 414f25: 75 ef jne 414f16 <_IO_default_xsputn+0x46> - 414f27: 48 01 df add %rbx,%rdi - 414f2a: 49 01 de add %rbx,%r14 - 414f2d: 49 89 7c 24 28 mov %rdi,0x28(%r12) - 414f32: 48 29 dd sub %rbx,%rbp - 414f35: 48 85 ed test %rbp,%rbp - 414f38: 74 3e je 414f78 <_IO_default_xsputn+0xa8> - 414f3a: 49 8b 84 24 d8 00 00 mov 0xd8(%r12),%rax - 414f41: 00 - 414f42: 41 0f b6 36 movzbl (%r14),%esi - 414f46: 4c 89 e7 mov %r12,%rdi - 414f49: 49 8d 5e 01 lea 0x1(%r14),%rbx - 414f4d: ff 50 18 callq *0x18(%rax) - 414f50: 83 f8 ff cmp $0xffffffff,%eax - 414f53: 74 23 je 414f78 <_IO_default_xsputn+0xa8> - 414f55: 48 83 ed 01 sub $0x1,%rbp - 414f59: 49 89 de mov %rbx,%r14 - 414f5c: eb 92 jmp 414ef0 <_IO_default_xsputn+0x20> - 414f5e: 66 90 xchg %ax,%ax - 414f60: 4c 89 f6 mov %r14,%rsi - 414f63: 48 89 da mov %rbx,%rdx - 414f66: 49 01 de add %rbx,%r14 - 414f69: e8 52 16 01 00 callq 4265c0 <__mempcpy> - 414f6e: 49 89 44 24 28 mov %rax,0x28(%r12) - 414f73: eb bd jmp 414f32 <_IO_default_xsputn+0x62> - 414f75: 0f 1f 00 nopl (%rax) - 414f78: 4c 89 e8 mov %r13,%rax - 414f7b: 5b pop %rbx - 414f7c: 48 29 e8 sub %rbp,%rax - 414f7f: 5d pop %rbp - 414f80: 41 5c pop %r12 - 414f82: 41 5d pop %r13 - 414f84: 41 5e pop %r14 - 414f86: c3 retq - 414f87: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 414f8e: 00 00 - 414f90: 31 c0 xor %eax,%eax - 414f92: c3 retq - 414f93: 0f 1f 00 nopl (%rax) - 414f96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 414f9d: 00 00 00 - -0000000000414fa0 <_IO_sgetn>: - 414fa0: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 414fa7: 48 8b 40 40 mov 0x40(%rax),%rax - 414fab: ff e0 jmpq *%rax - 414fad: 0f 1f 00 nopl (%rax) - -0000000000414fb0 <_IO_default_xsgetn>: - 414fb0: 41 56 push %r14 - 414fb2: 41 55 push %r13 - 414fb4: 49 89 d6 mov %rdx,%r14 - 414fb7: 41 54 push %r12 - 414fb9: 49 89 f4 mov %rsi,%r12 - 414fbc: 55 push %rbp - 414fbd: 53 push %rbx - 414fbe: 48 8b 4f 08 mov 0x8(%rdi),%rcx - 414fc2: 48 89 fb mov %rdi,%rbx - 414fc5: 48 8b 77 10 mov 0x10(%rdi),%rsi - 414fc9: 49 89 d5 mov %rdx,%r13 - 414fcc: 0f 1f 40 00 nopl 0x0(%rax) - 414fd0: 48 39 ce cmp %rcx,%rsi - 414fd3: 76 4a jbe 41501f <_IO_default_xsgetn+0x6f> - 414fd5: 48 29 ce sub %rcx,%rsi - 414fd8: 49 39 f6 cmp %rsi,%r14 - 414fdb: 49 0f 46 f6 cmovbe %r14,%rsi - 414fdf: 48 83 fe 14 cmp $0x14,%rsi - 414fe3: 48 89 f5 mov %rsi,%rbp - 414fe6: 0f 87 44 01 00 00 ja 415130 <_IO_default_xsgetn+0x180> - 414fec: 48 85 f6 test %rsi,%rsi - 414fef: 74 2b je 41501c <_IO_default_xsgetn+0x6c> - 414ff1: 8d 76 ff lea -0x1(%rsi),%esi - 414ff4: 31 c0 xor %eax,%eax - 414ff6: 48 89 f2 mov %rsi,%rdx - 414ff9: 48 83 c6 01 add $0x1,%rsi - 414ffd: 0f b6 3c 01 movzbl (%rcx,%rax,1),%edi - 415001: 41 88 3c 04 mov %dil,(%r12,%rax,1) - 415005: 48 83 c0 01 add $0x1,%rax - 415009: 48 39 f0 cmp %rsi,%rax - 41500c: 75 ef jne 414ffd <_IO_default_xsgetn+0x4d> - 41500e: 48 83 c2 01 add $0x1,%rdx - 415012: 49 01 d4 add %rdx,%r12 - 415015: 48 01 ca add %rcx,%rdx - 415018: 48 89 53 08 mov %rdx,0x8(%rbx) - 41501c: 49 29 ee sub %rbp,%r14 - 41501f: 4d 85 f6 test %r14,%r14 - 415022: 0f 84 b1 00 00 00 je 4150d9 <_IO_default_xsgetn+0x129> - 415028: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax - 41502e: 85 c0 test %eax,%eax - 415030: 0f 85 9a 00 00 00 jne 4150d0 <_IO_default_xsgetn+0x120> - 415036: c7 83 c0 00 00 00 ff movl $0xffffffff,0xc0(%rbx) - 41503d: ff ff ff - 415040: 8b 03 mov (%rbx),%eax - 415042: f6 c4 08 test $0x8,%ah - 415045: 0f 85 a5 00 00 00 jne 4150f0 <_IO_default_xsgetn+0x140> - 41504b: 48 8b 4b 08 mov 0x8(%rbx),%rcx - 41504f: 48 8b 73 10 mov 0x10(%rbx),%rsi - 415053: 48 39 ce cmp %rcx,%rsi - 415056: 0f 87 74 ff ff ff ja 414fd0 <_IO_default_xsgetn+0x20> - 41505c: f6 c4 01 test $0x1,%ah - 41505f: 74 31 je 415092 <_IO_default_xsgetn+0xe2> - 415061: 48 8b 53 58 mov 0x58(%rbx),%rdx - 415065: 48 8b 4b 48 mov 0x48(%rbx),%rcx - 415069: 80 e4 fe and $0xfe,%ah - 41506c: 48 89 73 58 mov %rsi,0x58(%rbx) - 415070: 48 8b 73 18 mov 0x18(%rbx),%rsi - 415074: 89 03 mov %eax,(%rbx) - 415076: 48 39 ca cmp %rcx,%rdx - 415079: 48 89 53 10 mov %rdx,0x10(%rbx) - 41507d: 48 89 4b 18 mov %rcx,0x18(%rbx) - 415081: 48 89 73 48 mov %rsi,0x48(%rbx) - 415085: 48 89 4b 08 mov %rcx,0x8(%rbx) - 415089: 48 89 d6 mov %rdx,%rsi - 41508c: 0f 87 3e ff ff ff ja 414fd0 <_IO_default_xsgetn+0x20> - 415092: 48 83 7b 60 00 cmpq $0x0,0x60(%rbx) - 415097: 0f 84 b3 00 00 00 je 415150 <_IO_default_xsgetn+0x1a0> - 41509d: 48 89 df mov %rbx,%rdi - 4150a0: e8 bb ee ff ff callq 413f60 - 4150a5: 85 c0 test %eax,%eax - 4150a7: 75 30 jne 4150d9 <_IO_default_xsgetn+0x129> - 4150a9: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 4150b0: 48 89 df mov %rbx,%rdi - 4150b3: ff 50 20 callq *0x20(%rax) - 4150b6: 83 f8 ff cmp $0xffffffff,%eax - 4150b9: 74 1e je 4150d9 <_IO_default_xsgetn+0x129> - 4150bb: 48 8b 4b 08 mov 0x8(%rbx),%rcx - 4150bf: 48 8b 73 10 mov 0x10(%rbx),%rsi - 4150c3: e9 08 ff ff ff jmpq 414fd0 <_IO_default_xsgetn+0x20> - 4150c8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4150cf: 00 - 4150d0: 83 f8 ff cmp $0xffffffff,%eax - 4150d3: 0f 84 67 ff ff ff je 415040 <_IO_default_xsgetn+0x90> - 4150d9: 4c 89 e8 mov %r13,%rax - 4150dc: 5b pop %rbx - 4150dd: 4c 29 f0 sub %r14,%rax - 4150e0: 5d pop %rbp - 4150e1: 41 5c pop %r12 - 4150e3: 41 5d pop %r13 - 4150e5: 41 5e pop %r14 - 4150e7: c3 retq - 4150e8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4150ef: 00 - 4150f0: 48 8b 4b 28 mov 0x28(%rbx),%rcx - 4150f4: 48 3b 4b 20 cmp 0x20(%rbx),%rcx - 4150f8: 0f 87 ca 00 00 00 ja 4151c8 <_IO_default_xsgetn+0x218> - 4150fe: f6 c4 01 test $0x1,%ah - 415101: 0f 84 99 00 00 00 je 4151a0 <_IO_default_xsgetn+0x1f0> - 415107: 48 8b 53 50 mov 0x50(%rbx),%rdx - 41510b: 48 8b 73 10 mov 0x10(%rbx),%rsi - 41510f: 48 89 53 18 mov %rdx,0x18(%rbx) - 415113: 80 e4 f7 and $0xf7,%ah - 415116: 48 89 4b 08 mov %rcx,0x8(%rbx) - 41511a: 48 89 4b 30 mov %rcx,0x30(%rbx) - 41511e: 48 89 4b 20 mov %rcx,0x20(%rbx) - 415122: 89 03 mov %eax,(%rbx) - 415124: e9 2a ff ff ff jmpq 415053 <_IO_default_xsgetn+0xa3> - 415129: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 415130: 48 89 f2 mov %rsi,%rdx - 415133: 4c 89 e7 mov %r12,%rdi - 415136: 48 89 ce mov %rcx,%rsi - 415139: e8 82 14 01 00 callq 4265c0 <__mempcpy> - 41513e: 48 01 6b 08 add %rbp,0x8(%rbx) - 415142: 49 89 c4 mov %rax,%r12 - 415145: e9 d2 fe ff ff jmpq 41501c <_IO_default_xsgetn+0x6c> - 41514a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 415150: 48 8b 7b 48 mov 0x48(%rbx),%rdi - 415154: 48 85 ff test %rdi,%rdi - 415157: 0f 84 4c ff ff ff je 4150a9 <_IO_default_xsgetn+0xf9> - 41515d: f6 c4 01 test $0x1,%ah - 415160: 74 1c je 41517e <_IO_default_xsgetn+0x1ce> - 415162: 80 e4 fe and $0xfe,%ah - 415165: 48 89 7b 08 mov %rdi,0x8(%rbx) - 415169: 89 03 mov %eax,(%rbx) - 41516b: 48 8b 43 58 mov 0x58(%rbx),%rax - 41516f: 48 89 43 10 mov %rax,0x10(%rbx) - 415173: 48 8b 43 18 mov 0x18(%rbx),%rax - 415177: 48 89 7b 18 mov %rdi,0x18(%rbx) - 41517b: 48 89 c7 mov %rax,%rdi - 41517e: e8 2d 8c 00 00 callq 41ddb0 <__cfree> - 415183: 48 c7 43 48 00 00 00 movq $0x0,0x48(%rbx) - 41518a: 00 - 41518b: 48 c7 43 58 00 00 00 movq $0x0,0x58(%rbx) - 415192: 00 - 415193: 48 c7 43 50 00 00 00 movq $0x0,0x50(%rbx) - 41519a: 00 - 41519b: e9 09 ff ff ff jmpq 4150a9 <_IO_default_xsgetn+0xf9> - 4151a0: 48 8b 73 10 mov 0x10(%rbx),%rsi - 4151a4: 48 8b 53 38 mov 0x38(%rbx),%rdx - 4151a8: 48 39 ce cmp %rcx,%rsi - 4151ab: 48 89 53 18 mov %rdx,0x18(%rbx) - 4151af: 0f 83 5e ff ff ff jae 415113 <_IO_default_xsgetn+0x163> - 4151b5: 48 89 4b 10 mov %rcx,0x10(%rbx) - 4151b9: 48 89 ce mov %rcx,%rsi - 4151bc: e9 52 ff ff ff jmpq 415113 <_IO_default_xsgetn+0x163> - 4151c1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4151c8: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 4151cf: be ff ff ff ff mov $0xffffffff,%esi - 4151d4: 48 89 df mov %rbx,%rdi - 4151d7: ff 50 18 callq *0x18(%rax) - 4151da: 83 f8 ff cmp $0xffffffff,%eax - 4151dd: 0f 84 f6 fe ff ff je 4150d9 <_IO_default_xsgetn+0x129> - 4151e3: 8b 03 mov (%rbx),%eax - 4151e5: 48 8b 4b 28 mov 0x28(%rbx),%rcx - 4151e9: e9 10 ff ff ff jmpq 4150fe <_IO_default_xsgetn+0x14e> - 4151ee: 66 90 xchg %ax,%ax - -00000000004151f0 <_IO_default_setbuf>: - 4151f0: 41 54 push %r12 - 4151f2: 55 push %rbp - 4151f3: 49 89 f4 mov %rsi,%r12 - 4151f6: 53 push %rbx - 4151f7: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 4151fe: 48 89 fb mov %rdi,%rbx - 415201: 48 89 d5 mov %rdx,%rbp - 415204: ff 50 60 callq *0x60(%rax) - 415207: 83 f8 ff cmp $0xffffffff,%eax - 41520a: 0f 84 a0 00 00 00 je 4152b0 <_IO_default_setbuf+0xc0> - 415210: 8b 13 mov (%rbx),%edx - 415212: 4d 85 e4 test %r12,%r12 - 415215: 89 d0 mov %edx,%eax - 415217: 74 67 je 415280 <_IO_default_setbuf+0x90> - 415219: 48 85 ed test %rbp,%rbp - 41521c: 74 62 je 415280 <_IO_default_setbuf+0x90> - 41521e: 48 8b 7b 38 mov 0x38(%rbx),%rdi - 415222: 83 e0 fd and $0xfffffffd,%eax - 415225: 4c 01 e5 add %r12,%rbp - 415228: 89 03 mov %eax,(%rbx) - 41522a: 48 85 ff test %rdi,%rdi - 41522d: 74 05 je 415234 <_IO_default_setbuf+0x44> - 41522f: 83 e2 01 and $0x1,%edx - 415232: 74 6d je 4152a1 <_IO_default_setbuf+0xb1> - 415234: 83 c8 01 or $0x1,%eax - 415237: 4c 89 63 38 mov %r12,0x38(%rbx) - 41523b: 48 89 6b 40 mov %rbp,0x40(%rbx) - 41523f: 89 03 mov %eax,(%rbx) - 415241: 48 c7 43 30 00 00 00 movq $0x0,0x30(%rbx) - 415248: 00 - 415249: 48 89 d8 mov %rbx,%rax - 41524c: 48 c7 43 28 00 00 00 movq $0x0,0x28(%rbx) - 415253: 00 - 415254: 48 c7 43 20 00 00 00 movq $0x0,0x20(%rbx) - 41525b: 00 - 41525c: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) - 415263: 00 - 415264: 48 c7 43 08 00 00 00 movq $0x0,0x8(%rbx) - 41526b: 00 - 41526c: 48 c7 43 18 00 00 00 movq $0x0,0x18(%rbx) - 415273: 00 - 415274: 5b pop %rbx - 415275: 5d pop %rbp - 415276: 41 5c pop %r12 - 415278: c3 retq - 415279: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 415280: 48 8b 7b 38 mov 0x38(%rbx),%rdi - 415284: 83 c8 02 or $0x2,%eax - 415287: 48 8d ab 84 00 00 00 lea 0x84(%rbx),%rbp - 41528e: 89 03 mov %eax,(%rbx) - 415290: 4c 8d a3 83 00 00 00 lea 0x83(%rbx),%r12 - 415297: 48 85 ff test %rdi,%rdi - 41529a: 74 98 je 415234 <_IO_default_setbuf+0x44> - 41529c: 83 e2 01 and $0x1,%edx - 41529f: 75 93 jne 415234 <_IO_default_setbuf+0x44> - 4152a1: e8 0a 8b 00 00 callq 41ddb0 <__cfree> - 4152a6: 8b 03 mov (%rbx),%eax - 4152a8: eb 8a jmp 415234 <_IO_default_setbuf+0x44> - 4152aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4152b0: 31 c0 xor %eax,%eax - 4152b2: eb c0 jmp 415274 <_IO_default_setbuf+0x84> - 4152b4: 66 90 xchg %ax,%ax - 4152b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4152bd: 00 00 00 - -00000000004152c0 <_IO_default_seekpos>: - 4152c0: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 4152c7: 89 d1 mov %edx,%ecx - 4152c9: 31 d2 xor %edx,%edx - 4152cb: 48 8b 40 48 mov 0x48(%rax),%rax - 4152cf: ff e0 jmpq *%rax - 4152d1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4152d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4152dd: 00 00 00 - -00000000004152e0 <_IO_default_doallocate>: - 4152e0: 41 54 push %r12 - 4152e2: 55 push %rbp - 4152e3: 53 push %rbx - 4152e4: 48 89 fb mov %rdi,%rbx - 4152e7: bf 00 20 00 00 mov $0x2000,%edi - 4152ec: e8 1f 87 00 00 callq 41da10 <__libc_malloc> - 4152f1: 48 89 c5 mov %rax,%rbp - 4152f4: b8 ff ff ff ff mov $0xffffffff,%eax - 4152f9: 48 85 ed test %rbp,%rbp - 4152fc: 74 29 je 415327 <_IO_default_doallocate+0x47> - 4152fe: 48 8b 7b 38 mov 0x38(%rbx),%rdi - 415302: 4c 8d a5 00 20 00 00 lea 0x2000(%rbp),%r12 - 415309: 8b 13 mov (%rbx),%edx - 41530b: 48 85 ff test %rdi,%rdi - 41530e: 74 05 je 415315 <_IO_default_doallocate+0x35> - 415310: f6 c2 01 test $0x1,%dl - 415313: 74 1b je 415330 <_IO_default_doallocate+0x50> - 415315: 83 e2 fe and $0xfffffffe,%edx - 415318: 48 89 6b 38 mov %rbp,0x38(%rbx) - 41531c: 4c 89 63 40 mov %r12,0x40(%rbx) - 415320: 89 13 mov %edx,(%rbx) - 415322: b8 01 00 00 00 mov $0x1,%eax - 415327: 5b pop %rbx - 415328: 5d pop %rbp - 415329: 41 5c pop %r12 - 41532b: c3 retq - 41532c: 0f 1f 40 00 nopl 0x0(%rax) - 415330: e8 7b 8a 00 00 callq 41ddb0 <__cfree> - 415335: 8b 13 mov (%rbx),%edx - 415337: eb dc jmp 415315 <_IO_default_doallocate+0x35> - 415339: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -0000000000415340 <_IO_init>: - 415340: 31 c0 xor %eax,%eax - 415342: 81 ce 00 00 ad fb or $0xfbad0000,%esi - 415348: c7 47 74 00 00 00 00 movl $0x0,0x74(%rdi) - 41534f: 66 89 87 80 00 00 00 mov %ax,0x80(%rdi) - 415356: 48 8b 87 88 00 00 00 mov 0x88(%rdi),%rax - 41535d: 89 37 mov %esi,(%rdi) - 41535f: 48 c7 47 38 00 00 00 movq $0x0,0x38(%rdi) - 415366: 00 - 415367: 48 c7 47 40 00 00 00 movq $0x0,0x40(%rdi) - 41536e: 00 - 41536f: 48 c7 47 18 00 00 00 movq $0x0,0x18(%rdi) - 415376: 00 - 415377: 48 85 c0 test %rax,%rax - 41537a: 48 c7 47 08 00 00 00 movq $0x0,0x8(%rdi) - 415381: 00 - 415382: 48 c7 47 10 00 00 00 movq $0x0,0x10(%rdi) - 415389: 00 - 41538a: 48 c7 47 20 00 00 00 movq $0x0,0x20(%rdi) - 415391: 00 - 415392: 48 c7 47 28 00 00 00 movq $0x0,0x28(%rdi) - 415399: 00 - 41539a: 48 c7 47 30 00 00 00 movq $0x0,0x30(%rdi) - 4153a1: 00 - 4153a2: 48 c7 47 68 00 00 00 movq $0x0,0x68(%rdi) - 4153a9: 00 - 4153aa: 48 c7 47 48 00 00 00 movq $0x0,0x48(%rdi) - 4153b1: 00 - 4153b2: 48 c7 47 50 00 00 00 movq $0x0,0x50(%rdi) - 4153b9: 00 - 4153ba: 48 c7 47 58 00 00 00 movq $0x0,0x58(%rdi) - 4153c1: 00 - 4153c2: 48 c7 47 60 00 00 00 movq $0x0,0x60(%rdi) - 4153c9: 00 - 4153ca: 74 15 je 4153e1 <_IO_init+0xa1> - 4153cc: c7 00 00 00 00 00 movl $0x0,(%rax) - 4153d2: c7 40 04 00 00 00 00 movl $0x0,0x4(%rax) - 4153d9: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) - 4153e0: 00 - 4153e1: c7 87 c0 00 00 00 ff movl $0xffffffff,0xc0(%rdi) - 4153e8: ff ff ff - 4153eb: 48 c7 87 a0 00 00 00 movq $0xffffffffffffffff,0xa0(%rdi) - 4153f2: ff ff ff ff - 4153f6: 48 c7 87 a8 00 00 00 movq $0x0,0xa8(%rdi) - 4153fd: 00 00 00 00 - 415401: c3 retq - 415402: 0f 1f 40 00 nopl 0x0(%rax) - 415406: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41540d: 00 00 00 - -0000000000415410 <_IO_old_init>: - 415410: 31 c0 xor %eax,%eax - 415412: 81 ce 00 00 ad fb or $0xfbad0000,%esi - 415418: c7 47 74 00 00 00 00 movl $0x0,0x74(%rdi) - 41541f: 66 89 87 80 00 00 00 mov %ax,0x80(%rdi) - 415426: 48 8b 87 88 00 00 00 mov 0x88(%rdi),%rax - 41542d: 89 37 mov %esi,(%rdi) - 41542f: 48 c7 47 38 00 00 00 movq $0x0,0x38(%rdi) - 415436: 00 - 415437: 48 c7 47 40 00 00 00 movq $0x0,0x40(%rdi) - 41543e: 00 - 41543f: 48 c7 47 18 00 00 00 movq $0x0,0x18(%rdi) - 415446: 00 - 415447: 48 85 c0 test %rax,%rax - 41544a: 48 c7 47 08 00 00 00 movq $0x0,0x8(%rdi) - 415451: 00 - 415452: 48 c7 47 10 00 00 00 movq $0x0,0x10(%rdi) - 415459: 00 - 41545a: 48 c7 47 20 00 00 00 movq $0x0,0x20(%rdi) - 415461: 00 - 415462: 48 c7 47 28 00 00 00 movq $0x0,0x28(%rdi) - 415469: 00 - 41546a: 48 c7 47 30 00 00 00 movq $0x0,0x30(%rdi) - 415471: 00 - 415472: 48 c7 47 68 00 00 00 movq $0x0,0x68(%rdi) - 415479: 00 - 41547a: 48 c7 47 48 00 00 00 movq $0x0,0x48(%rdi) - 415481: 00 - 415482: 48 c7 47 50 00 00 00 movq $0x0,0x50(%rdi) - 415489: 00 - 41548a: 48 c7 47 58 00 00 00 movq $0x0,0x58(%rdi) - 415491: 00 - 415492: 48 c7 47 60 00 00 00 movq $0x0,0x60(%rdi) - 415499: 00 - 41549a: 74 15 je 4154b1 <_IO_old_init+0xa1> - 41549c: c7 00 00 00 00 00 movl $0x0,(%rax) - 4154a2: c7 40 04 00 00 00 00 movl $0x0,0x4(%rax) - 4154a9: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) - 4154b0: 00 - 4154b1: f3 c3 repz retq - 4154b3: 0f 1f 00 nopl (%rax) - 4154b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4154bd: 00 00 00 - -00000000004154c0 <_IO_no_init>: - 4154c0: 31 c0 xor %eax,%eax - 4154c2: 81 ce 00 00 ad fb or $0xfbad0000,%esi - 4154c8: c7 47 74 00 00 00 00 movl $0x0,0x74(%rdi) - 4154cf: 66 89 87 80 00 00 00 mov %ax,0x80(%rdi) - 4154d6: 48 8b 87 88 00 00 00 mov 0x88(%rdi),%rax - 4154dd: 89 37 mov %esi,(%rdi) - 4154df: 48 c7 47 38 00 00 00 movq $0x0,0x38(%rdi) - 4154e6: 00 - 4154e7: 48 c7 47 40 00 00 00 movq $0x0,0x40(%rdi) - 4154ee: 00 - 4154ef: 48 c7 47 18 00 00 00 movq $0x0,0x18(%rdi) - 4154f6: 00 - 4154f7: 48 85 c0 test %rax,%rax - 4154fa: 48 c7 47 08 00 00 00 movq $0x0,0x8(%rdi) - 415501: 00 - 415502: 48 c7 47 10 00 00 00 movq $0x0,0x10(%rdi) - 415509: 00 - 41550a: 48 c7 47 20 00 00 00 movq $0x0,0x20(%rdi) - 415511: 00 - 415512: 48 c7 47 28 00 00 00 movq $0x0,0x28(%rdi) - 415519: 00 - 41551a: 48 c7 47 30 00 00 00 movq $0x0,0x30(%rdi) - 415521: 00 - 415522: 48 c7 47 68 00 00 00 movq $0x0,0x68(%rdi) - 415529: 00 - 41552a: 48 c7 47 48 00 00 00 movq $0x0,0x48(%rdi) - 415531: 00 - 415532: 48 c7 47 50 00 00 00 movq $0x0,0x50(%rdi) - 415539: 00 - 41553a: 48 c7 47 58 00 00 00 movq $0x0,0x58(%rdi) - 415541: 00 - 415542: 48 c7 47 60 00 00 00 movq $0x0,0x60(%rdi) - 415549: 00 - 41554a: 74 15 je 415561 <_IO_no_init+0xa1> - 41554c: c7 00 00 00 00 00 movl $0x0,(%rax) - 415552: c7 40 04 00 00 00 00 movl $0x0,0x4(%rax) - 415559: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) - 415560: 00 - 415561: 85 d2 test %edx,%edx - 415563: 89 97 c0 00 00 00 mov %edx,0xc0(%rdi) - 415569: 78 75 js 4155e0 <_IO_no_init+0x120> - 41556b: 48 89 8f a0 00 00 00 mov %rcx,0xa0(%rdi) - 415572: 48 c7 41 30 00 00 00 movq $0x0,0x30(%rcx) - 415579: 00 - 41557a: 48 c7 41 38 00 00 00 movq $0x0,0x38(%rcx) - 415581: 00 - 415582: 48 c7 41 10 00 00 00 movq $0x0,0x10(%rcx) - 415589: 00 - 41558a: 48 c7 01 00 00 00 00 movq $0x0,(%rcx) - 415591: 48 c7 41 08 00 00 00 movq $0x0,0x8(%rcx) - 415598: 00 - 415599: 48 c7 41 18 00 00 00 movq $0x0,0x18(%rcx) - 4155a0: 00 - 4155a1: 48 c7 41 20 00 00 00 movq $0x0,0x20(%rcx) - 4155a8: 00 - 4155a9: 48 c7 41 28 00 00 00 movq $0x0,0x28(%rcx) - 4155b0: 00 - 4155b1: 48 c7 41 40 00 00 00 movq $0x0,0x40(%rcx) - 4155b8: 00 - 4155b9: 48 c7 41 48 00 00 00 movq $0x0,0x48(%rcx) - 4155c0: 00 - 4155c1: 48 c7 41 50 00 00 00 movq $0x0,0x50(%rcx) - 4155c8: 00 - 4155c9: 4c 89 81 30 01 00 00 mov %r8,0x130(%rcx) - 4155d0: 48 c7 87 a8 00 00 00 movq $0x0,0xa8(%rdi) - 4155d7: 00 00 00 00 - 4155db: c3 retq - 4155dc: 0f 1f 40 00 nopl 0x0(%rax) - 4155e0: 48 c7 87 a0 00 00 00 movq $0xffffffffffffffff,0xa0(%rdi) - 4155e7: ff ff ff ff - 4155eb: 48 c7 87 a8 00 00 00 movq $0x0,0xa8(%rdi) - 4155f2: 00 00 00 00 - 4155f6: c3 retq - 4155f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4155fe: 00 00 - -0000000000415600 <_IO_default_sync>: - 415600: 31 c0 xor %eax,%eax - 415602: c3 retq - 415603: 0f 1f 00 nopl (%rax) - 415606: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41560d: 00 00 00 - -0000000000415610 <_IO_default_finish>: - 415610: 55 push %rbp - 415611: 53 push %rbx - 415612: 48 89 fb mov %rdi,%rbx - 415615: 48 83 ec 28 sub $0x28,%rsp - 415619: 48 8b 7f 38 mov 0x38(%rdi),%rdi - 41561d: 48 85 ff test %rdi,%rdi - 415620: 74 09 je 41562b <_IO_default_finish+0x1b> - 415622: f6 03 01 testb $0x1,(%rbx) - 415625: 0f 84 fd 01 00 00 je 415828 <_IO_default_finish+0x218> - 41562b: 48 8b 43 60 mov 0x60(%rbx),%rax - 41562f: 48 85 c0 test %rax,%rax - 415632: 74 14 je 415648 <_IO_default_finish+0x38> - 415634: 0f 1f 40 00 nopl 0x0(%rax) - 415638: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) - 41563f: 00 - 415640: 48 8b 00 mov (%rax),%rax - 415643: 48 85 c0 test %rax,%rax - 415646: 75 f0 jne 415638 <_IO_default_finish+0x28> - 415648: 48 8b 7b 48 mov 0x48(%rbx),%rdi - 41564c: 48 85 ff test %rdi,%rdi - 41564f: 74 0d je 41565e <_IO_default_finish+0x4e> - 415651: e8 5a 87 00 00 callq 41ddb0 <__cfree> - 415656: 48 c7 43 48 00 00 00 movq $0x0,0x48(%rbx) - 41565d: 00 - 41565e: f6 03 80 testb $0x80,(%rbx) - 415661: 75 0d jne 415670 <_IO_default_finish+0x60> - 415663: 48 83 c4 28 add $0x28,%rsp - 415667: 5b pop %rbx - 415668: 5d pop %rbp - 415669: c3 retq - 41566a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 415670: bd 00 00 00 00 mov $0x0,%ebp - 415675: 48 85 ed test %rbp,%rbp - 415678: 0f 84 62 02 00 00 je 4158e0 <_IO_default_finish+0x2d0> - 41567e: 31 d2 xor %edx,%edx - 415680: be 50 41 41 00 mov $0x414150,%esi - 415685: 48 89 e7 mov %rsp,%rdi - 415688: e8 73 a9 be ff callq 0 <_nl_current_LC_CTYPE> - 41568d: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx - 415694: 00 00 - 415696: 48 3b 15 0b 6f 2b 00 cmp 0x2b6f0b(%rip),%rdx # 6cc5a8 - 41569d: 74 46 je 4156e5 <_IO_default_finish+0xd5> - 41569f: be 01 00 00 00 mov $0x1,%esi - 4156a4: 31 c0 xor %eax,%eax - 4156a6: 83 3d 0f 7b 2b 00 00 cmpl $0x0,0x2b7b0f(%rip) # 6cd1bc <__libc_multiple_threads> - 4156ad: 74 0c je 4156bb <_IO_default_finish+0xab> - 4156af: f0 0f b1 35 e9 6e 2b lock cmpxchg %esi,0x2b6ee9(%rip) # 6cc5a0 - 4156b6: 00 - 4156b7: 75 0b jne 4156c4 <_IO_default_finish+0xb4> - 4156b9: eb 23 jmp 4156de <_IO_default_finish+0xce> - 4156bb: 0f b1 35 de 6e 2b 00 cmpxchg %esi,0x2b6ede(%rip) # 6cc5a0 - 4156c2: 74 1a je 4156de <_IO_default_finish+0xce> - 4156c4: 48 8d 3d d5 6e 2b 00 lea 0x2b6ed5(%rip),%rdi # 6cc5a0 - 4156cb: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4156d2: e8 f9 ce 02 00 callq 4425d0 <__lll_lock_wait_private> - 4156d7: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4156de: 48 89 15 c3 6e 2b 00 mov %rdx,0x2b6ec3(%rip) # 6cc5a8 - 4156e5: 8b 33 mov (%rbx),%esi - 4156e7: 8b 15 b7 6e 2b 00 mov 0x2b6eb7(%rip),%edx # 6cc5a4 - 4156ed: 48 89 1d 9c 6e 2b 00 mov %rbx,0x2b6e9c(%rip) # 6cc590 - 4156f4: 89 f0 mov %esi,%eax - 4156f6: 83 c2 01 add $0x1,%edx - 4156f9: 25 00 80 00 00 and $0x8000,%eax - 4156fe: 89 15 a0 6e 2b 00 mov %edx,0x2b6ea0(%rip) # 6cc5a4 - 415704: 0f 84 3e 01 00 00 je 415848 <_IO_default_finish+0x238> - 41570a: 48 8b 3d af 49 2b 00 mov 0x2b49af(%rip),%rdi # 6ca0c0 <_IO_list_all> - 415711: 48 85 ff test %rdi,%rdi - 415714: 0f 84 f3 01 00 00 je 41590d <_IO_default_finish+0x2fd> - 41571a: 48 39 fb cmp %rdi,%rbx - 41571d: 0f 84 d3 01 00 00 je 4158f6 <_IO_default_finish+0x2e6> - 415723: 48 8b 4f 68 mov 0x68(%rdi),%rcx - 415727: 48 85 c9 test %rcx,%rcx - 41572a: 74 29 je 415755 <_IO_default_finish+0x145> - 41572c: 48 39 cb cmp %rcx,%rbx - 41572f: 75 1b jne 41574c <_IO_default_finish+0x13c> - 415731: e9 e2 01 00 00 jmpq 415918 <_IO_default_finish+0x308> - 415736: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41573d: 00 00 00 - 415740: 48 39 d3 cmp %rdx,%rbx - 415743: 0f 84 77 01 00 00 je 4158c0 <_IO_default_finish+0x2b0> - 415749: 48 89 d1 mov %rdx,%rcx - 41574c: 48 8b 51 68 mov 0x68(%rcx),%rdx - 415750: 48 85 d2 test %rdx,%rdx - 415753: 75 eb jne 415740 <_IO_default_finish+0x130> - 415755: 40 80 e6 7f and $0x7f,%sil - 415759: 85 c0 test %eax,%eax - 41575b: 89 33 mov %esi,(%rbx) - 41575d: 75 4c jne 4157ab <_IO_default_finish+0x19b> - 41575f: 48 8b b3 88 00 00 00 mov 0x88(%rbx),%rsi - 415766: 8b 46 04 mov 0x4(%rsi),%eax - 415769: 83 e8 01 sub $0x1,%eax - 41576c: 85 c0 test %eax,%eax - 41576e: 89 46 04 mov %eax,0x4(%rsi) - 415771: 8b 15 2d 6e 2b 00 mov 0x2b6e2d(%rip),%edx # 6cc5a4 - 415777: 75 38 jne 4157b1 <_IO_default_finish+0x1a1> - 415779: 48 c7 46 08 00 00 00 movq $0x0,0x8(%rsi) - 415780: 00 - 415781: 83 3d 34 7a 2b 00 00 cmpl $0x0,0x2b7a34(%rip) # 6cd1bc <__libc_multiple_threads> - 415788: 74 07 je 415791 <_IO_default_finish+0x181> - 41578a: f0 ff 0e lock decl (%rsi) - 41578d: 75 06 jne 415795 <_IO_default_finish+0x185> - 41578f: eb 1a jmp 4157ab <_IO_default_finish+0x19b> - 415791: ff 0e decl (%rsi) - 415793: 74 16 je 4157ab <_IO_default_finish+0x19b> - 415795: 48 8d 3e lea (%rsi),%rdi - 415798: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41579f: e8 5c ce 02 00 callq 442600 <__lll_unlock_wake_private> - 4157a4: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4157ab: 8b 15 f3 6d 2b 00 mov 0x2b6df3(%rip),%edx # 6cc5a4 - 4157b1: 83 ea 01 sub $0x1,%edx - 4157b4: 48 c7 05 d1 6d 2b 00 movq $0x0,0x2b6dd1(%rip) # 6cc590 - 4157bb: 00 00 00 00 - 4157bf: 85 d2 test %edx,%edx - 4157c1: 89 15 dd 6d 2b 00 mov %edx,0x2b6ddd(%rip) # 6cc5a4 - 4157c7: 75 41 jne 41580a <_IO_default_finish+0x1fa> - 4157c9: 48 c7 05 d4 6d 2b 00 movq $0x0,0x2b6dd4(%rip) # 6cc5a8 - 4157d0: 00 00 00 00 - 4157d4: 83 3d e1 79 2b 00 00 cmpl $0x0,0x2b79e1(%rip) # 6cd1bc <__libc_multiple_threads> - 4157db: 74 0b je 4157e8 <_IO_default_finish+0x1d8> - 4157dd: f0 ff 0d bc 6d 2b 00 lock decl 0x2b6dbc(%rip) # 6cc5a0 - 4157e4: 75 0a jne 4157f0 <_IO_default_finish+0x1e0> - 4157e6: eb 22 jmp 41580a <_IO_default_finish+0x1fa> - 4157e8: ff 0d b2 6d 2b 00 decl 0x2b6db2(%rip) # 6cc5a0 - 4157ee: 74 1a je 41580a <_IO_default_finish+0x1fa> - 4157f0: 48 8d 3d a9 6d 2b 00 lea 0x2b6da9(%rip),%rdi # 6cc5a0 - 4157f7: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4157fe: e8 fd cd 02 00 callq 442600 <__lll_unlock_wake_private> - 415803: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41580a: 48 85 ed test %rbp,%rbp - 41580d: 0f 84 50 fe ff ff je 415663 <_IO_default_finish+0x53> - 415813: 48 89 e7 mov %rsp,%rdi - 415816: 31 f6 xor %esi,%esi - 415818: e8 e3 a7 be ff callq 0 <_nl_current_LC_CTYPE> - 41581d: 48 83 c4 28 add $0x28,%rsp - 415821: 5b pop %rbx - 415822: 5d pop %rbp - 415823: c3 retq - 415824: 0f 1f 40 00 nopl 0x0(%rax) - 415828: e8 83 85 00 00 callq 41ddb0 <__cfree> - 41582d: 48 c7 43 40 00 00 00 movq $0x0,0x40(%rbx) - 415834: 00 - 415835: 48 c7 43 38 00 00 00 movq $0x0,0x38(%rbx) - 41583c: 00 - 41583d: e9 e9 fd ff ff jmpq 41562b <_IO_default_finish+0x1b> - 415842: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 415848: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 41584f: 64 4c 8b 04 25 10 00 mov %fs:0x10,%r8 - 415856: 00 00 - 415858: 4c 3b 42 08 cmp 0x8(%rdx),%r8 - 41585c: 74 3c je 41589a <_IO_default_finish+0x28a> - 41585e: be 01 00 00 00 mov $0x1,%esi - 415863: 83 3d 52 79 2b 00 00 cmpl $0x0,0x2b7952(%rip) # 6cd1bc <__libc_multiple_threads> - 41586a: 74 08 je 415874 <_IO_default_finish+0x264> - 41586c: f0 0f b1 32 lock cmpxchg %esi,(%rdx) - 415870: 75 07 jne 415879 <_IO_default_finish+0x269> - 415872: eb 1b jmp 41588f <_IO_default_finish+0x27f> - 415874: 0f b1 32 cmpxchg %esi,(%rdx) - 415877: 74 16 je 41588f <_IO_default_finish+0x27f> - 415879: 48 8d 3a lea (%rdx),%rdi - 41587c: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 415883: e8 48 cd 02 00 callq 4425d0 <__lll_lock_wait_private> - 415888: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41588f: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 415896: 4c 89 42 08 mov %r8,0x8(%rdx) - 41589a: 8b 33 mov (%rbx),%esi - 41589c: 48 8b 3d 1d 48 2b 00 mov 0x2b481d(%rip),%rdi # 6ca0c0 <_IO_list_all> - 4158a3: 83 42 04 01 addl $0x1,0x4(%rdx) - 4158a7: 89 f0 mov %esi,%eax - 4158a9: 25 00 80 00 00 and $0x8000,%eax - 4158ae: 48 85 ff test %rdi,%rdi - 4158b1: 0f 85 63 fe ff ff jne 41571a <_IO_default_finish+0x10a> - 4158b7: e9 99 fe ff ff jmpq 415755 <_IO_default_finish+0x145> - 4158bc: 0f 1f 40 00 nopl 0x0(%rax) - 4158c0: 48 83 c1 68 add $0x68,%rcx - 4158c4: 48 8b 53 68 mov 0x68(%rbx),%rdx - 4158c8: 83 05 c9 6c 2b 00 01 addl $0x1,0x2b6cc9(%rip) # 6cc598 <_IO_list_all_stamp> - 4158cf: 48 89 11 mov %rdx,(%rcx) - 4158d2: e9 7e fe ff ff jmpq 415755 <_IO_default_finish+0x145> - 4158d7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4158de: 00 00 - 4158e0: 48 c7 04 24 50 41 41 movq $0x414150,(%rsp) - 4158e7: 00 - 4158e8: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) - 4158ef: 00 00 - 4158f1: e9 97 fd ff ff jmpq 41568d <_IO_default_finish+0x7d> - 4158f6: 48 8b 53 68 mov 0x68(%rbx),%rdx - 4158fa: 83 05 97 6c 2b 00 01 addl $0x1,0x2b6c97(%rip) # 6cc598 <_IO_list_all_stamp> - 415901: 48 89 15 b8 47 2b 00 mov %rdx,0x2b47b8(%rip) # 6ca0c0 <_IO_list_all> - 415908: e9 48 fe ff ff jmpq 415755 <_IO_default_finish+0x145> - 41590d: 40 80 e6 7f and $0x7f,%sil - 415911: 89 33 mov %esi,(%rbx) - 415913: e9 99 fe ff ff jmpq 4157b1 <_IO_default_finish+0x1a1> - 415918: 48 8d 4f 68 lea 0x68(%rdi),%rcx - 41591c: eb a6 jmp 4158c4 <_IO_default_finish+0x2b4> - 41591e: 66 90 xchg %ax,%ax - -0000000000415920 <_IO_default_seekoff>: - 415920: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 415927: c3 retq - 415928: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41592f: 00 - -0000000000415930 <_IO_sputbackc>: - 415930: 53 push %rbx - 415931: 48 8b 57 08 mov 0x8(%rdi),%rdx - 415935: 48 89 fb mov %rdi,%rbx - 415938: 48 3b 57 18 cmp 0x18(%rdi),%rdx - 41593c: 76 0c jbe 41594a <_IO_sputbackc+0x1a> - 41593e: 0f b6 42 ff movzbl -0x1(%rdx),%eax - 415942: 40 0f b6 ce movzbl %sil,%ecx - 415946: 39 c8 cmp %ecx,%eax - 415948: 74 1e je 415968 <_IO_sputbackc+0x38> - 41594a: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 415951: 48 89 df mov %rbx,%rdi - 415954: ff 50 30 callq *0x30(%rax) - 415957: 83 f8 ff cmp $0xffffffff,%eax - 41595a: 74 03 je 41595f <_IO_sputbackc+0x2f> - 41595c: 83 23 ef andl $0xffffffef,(%rbx) - 41595f: 5b pop %rbx - 415960: c3 retq - 415961: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 415968: 48 83 ea 01 sub $0x1,%rdx - 41596c: 48 89 57 08 mov %rdx,0x8(%rdi) - 415970: eb ea jmp 41595c <_IO_sputbackc+0x2c> - 415972: 0f 1f 40 00 nopl 0x0(%rax) - 415976: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41597d: 00 00 00 - -0000000000415980 <_IO_sungetc>: - 415980: 48 8b 47 08 mov 0x8(%rdi),%rax - 415984: 48 3b 47 18 cmp 0x18(%rdi),%rax - 415988: 53 push %rbx - 415989: 48 89 fb mov %rdi,%rbx - 41598c: 76 12 jbe 4159a0 <_IO_sungetc+0x20> - 41598e: 48 8d 50 ff lea -0x1(%rax),%rdx - 415992: 48 89 57 08 mov %rdx,0x8(%rdi) - 415996: 0f b6 40 ff movzbl -0x1(%rax),%eax - 41599a: 83 23 ef andl $0xffffffef,(%rbx) - 41599d: 5b pop %rbx - 41599e: c3 retq - 41599f: 90 nop - 4159a0: 48 8b 87 d8 00 00 00 mov 0xd8(%rdi),%rax - 4159a7: be ff ff ff ff mov $0xffffffff,%esi - 4159ac: ff 50 30 callq *0x30(%rax) - 4159af: 83 f8 ff cmp $0xffffffff,%eax - 4159b2: 75 e6 jne 41599a <_IO_sungetc+0x1a> - 4159b4: 5b pop %rbx - 4159b5: c3 retq - 4159b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4159bd: 00 00 00 - -00000000004159c0 <_IO_adjust_column>: - 4159c0: 4c 63 c2 movslq %edx,%r8 - 4159c3: 49 01 f0 add %rsi,%r8 - 4159c6: 4c 39 c6 cmp %r8,%rsi - 4159c9: 73 23 jae 4159ee <_IO_adjust_column+0x2e> - 4159cb: 41 80 78 ff 0a cmpb $0xa,-0x1(%r8) - 4159d0: 49 8d 48 ff lea -0x1(%r8),%rcx - 4159d4: 75 13 jne 4159e9 <_IO_adjust_column+0x29> - 4159d6: eb 20 jmp 4159f8 <_IO_adjust_column+0x38> - 4159d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4159df: 00 - 4159e0: 48 83 e9 01 sub $0x1,%rcx - 4159e4: 80 39 0a cmpb $0xa,(%rcx) - 4159e7: 74 0f je 4159f8 <_IO_adjust_column+0x38> - 4159e9: 48 39 ce cmp %rcx,%rsi - 4159ec: 75 f2 jne 4159e0 <_IO_adjust_column+0x20> - 4159ee: 8d 04 3a lea (%rdx,%rdi,1),%eax - 4159f1: c3 retq - 4159f2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4159f8: 49 29 c8 sub %rcx,%r8 - 4159fb: 41 8d 40 ff lea -0x1(%r8),%eax - 4159ff: c3 retq - -0000000000415a00 <_IO_flush_all_lockp>: - 415a00: 41 57 push %r15 - 415a02: 41 56 push %r14 - 415a04: 41 89 fe mov %edi,%r14d - 415a07: 41 55 push %r13 - 415a09: 41 54 push %r12 - 415a0b: 55 push %rbp - 415a0c: 53 push %rbx - 415a0d: 48 83 ec 28 sub $0x28,%rsp - 415a11: 85 ff test %edi,%edi - 415a13: 0f 84 17 02 00 00 je 415c30 <_IO_flush_all_lockp+0x230> - 415a19: b8 00 00 00 00 mov $0x0,%eax - 415a1e: 45 31 ed xor %r13d,%r13d - 415a21: 48 85 c0 test %rax,%rax - 415a24: 41 0f 95 c5 setne %r13b - 415a28: 0f 84 82 02 00 00 je 415cb0 <_IO_flush_all_lockp+0x2b0> - 415a2e: 31 d2 xor %edx,%edx - 415a30: be 50 41 41 00 mov $0x414150,%esi - 415a35: 48 89 e7 mov %rsp,%rdi - 415a38: e8 c3 a5 be ff callq 0 <_nl_current_LC_CTYPE> - 415a3d: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx - 415a44: 00 00 - 415a46: 48 3b 15 5b 6b 2b 00 cmp 0x2b6b5b(%rip),%rdx # 6cc5a8 - 415a4d: 74 46 je 415a95 <_IO_flush_all_lockp+0x95> - 415a4f: be 01 00 00 00 mov $0x1,%esi - 415a54: 31 c0 xor %eax,%eax - 415a56: 83 3d 5f 77 2b 00 00 cmpl $0x0,0x2b775f(%rip) # 6cd1bc <__libc_multiple_threads> - 415a5d: 74 0c je 415a6b <_IO_flush_all_lockp+0x6b> - 415a5f: f0 0f b1 35 39 6b 2b lock cmpxchg %esi,0x2b6b39(%rip) # 6cc5a0 - 415a66: 00 - 415a67: 75 0b jne 415a74 <_IO_flush_all_lockp+0x74> - 415a69: eb 23 jmp 415a8e <_IO_flush_all_lockp+0x8e> - 415a6b: 0f b1 35 2e 6b 2b 00 cmpxchg %esi,0x2b6b2e(%rip) # 6cc5a0 - 415a72: 74 1a je 415a8e <_IO_flush_all_lockp+0x8e> - 415a74: 48 8d 3d 25 6b 2b 00 lea 0x2b6b25(%rip),%rdi # 6cc5a0 - 415a7b: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 415a82: e8 49 cb 02 00 callq 4425d0 <__lll_lock_wait_private> - 415a87: 48 81 c4 80 00 00 00 add $0x80,%rsp - 415a8e: 48 89 15 13 6b 2b 00 mov %rdx,0x2b6b13(%rip) # 6cc5a8 - 415a95: 8b 05 09 6b 2b 00 mov 0x2b6b09(%rip),%eax # 6cc5a4 - 415a9b: 48 8b 1d 1e 46 2b 00 mov 0x2b461e(%rip),%rbx # 6ca0c0 <_IO_list_all> - 415aa2: 44 8b 3d ef 6a 2b 00 mov 0x2b6aef(%rip),%r15d # 6cc598 <_IO_list_all_stamp> - 415aa9: 83 c0 01 add $0x1,%eax - 415aac: 48 85 db test %rbx,%rbx - 415aaf: 89 05 ef 6a 2b 00 mov %eax,0x2b6aef(%rip) # 6cc5a4 - 415ab5: 0f 84 0b 02 00 00 je 415cc6 <_IO_flush_all_lockp+0x2c6> - 415abb: 31 ed xor %ebp,%ebp - 415abd: 64 4c 8b 24 25 10 00 mov %fs:0x10,%r12 - 415ac4: 00 00 - 415ac6: eb 1b jmp 415ae3 <_IO_flush_all_lockp+0xe3> - 415ac8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 415acf: 00 - 415ad0: 48 8b 1d e9 45 2b 00 mov 0x2b45e9(%rip),%rbx # 6ca0c0 <_IO_list_all> - 415ad7: 41 89 c7 mov %eax,%r15d - 415ada: 48 85 db test %rbx,%rbx - 415add: 0f 84 14 01 00 00 je 415bf7 <_IO_flush_all_lockp+0x1f7> - 415ae3: 45 85 f6 test %r14d,%r14d - 415ae6: 48 89 1d a3 6a 2b 00 mov %rbx,0x2b6aa3(%rip) # 6cc590 - 415aed: 74 56 je 415b45 <_IO_flush_all_lockp+0x145> - 415aef: 8b 03 mov (%rbx),%eax - 415af1: 25 00 80 00 00 and $0x8000,%eax - 415af6: 75 4d jne 415b45 <_IO_flush_all_lockp+0x145> - 415af8: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 415aff: 4c 3b 62 08 cmp 0x8(%rdx),%r12 - 415b03: 74 3c je 415b41 <_IO_flush_all_lockp+0x141> - 415b05: be 01 00 00 00 mov $0x1,%esi - 415b0a: 83 3d ab 76 2b 00 00 cmpl $0x0,0x2b76ab(%rip) # 6cd1bc <__libc_multiple_threads> - 415b11: 74 08 je 415b1b <_IO_flush_all_lockp+0x11b> - 415b13: f0 0f b1 32 lock cmpxchg %esi,(%rdx) - 415b17: 75 07 jne 415b20 <_IO_flush_all_lockp+0x120> - 415b19: eb 1b jmp 415b36 <_IO_flush_all_lockp+0x136> - 415b1b: 0f b1 32 cmpxchg %esi,(%rdx) - 415b1e: 74 16 je 415b36 <_IO_flush_all_lockp+0x136> - 415b20: 48 8d 3a lea (%rdx),%rdi - 415b23: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 415b2a: e8 a1 ca 02 00 callq 4425d0 <__lll_lock_wait_private> - 415b2f: 48 81 c4 80 00 00 00 add $0x80,%rsp - 415b36: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 415b3d: 4c 89 62 08 mov %r12,0x8(%rdx) - 415b41: 83 42 04 01 addl $0x1,0x4(%rdx) - 415b45: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax - 415b4b: 85 c0 test %eax,%eax - 415b4d: 0f 8e fd 00 00 00 jle 415c50 <_IO_flush_all_lockp+0x250> - 415b53: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 415b5a: 48 8b 48 18 mov 0x18(%rax),%rcx - 415b5e: 48 39 48 20 cmp %rcx,0x20(%rax) - 415b62: 76 1d jbe 415b81 <_IO_flush_all_lockp+0x181> - 415b64: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 415b6b: be ff ff ff ff mov $0xffffffff,%esi - 415b70: 48 89 df mov %rbx,%rdi - 415b73: ff 50 18 callq *0x18(%rax) - 415b76: 83 f8 ff cmp $0xffffffff,%eax - 415b79: b8 ff ff ff ff mov $0xffffffff,%eax - 415b7e: 0f 44 e8 cmove %eax,%ebp - 415b81: 45 85 f6 test %r14d,%r14d - 415b84: 74 4a je 415bd0 <_IO_flush_all_lockp+0x1d0> - 415b86: f7 03 00 80 00 00 testl $0x8000,(%rbx) - 415b8c: 75 42 jne 415bd0 <_IO_flush_all_lockp+0x1d0> - 415b8e: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 415b95: 83 6a 04 01 subl $0x1,0x4(%rdx) - 415b99: 75 35 jne 415bd0 <_IO_flush_all_lockp+0x1d0> - 415b9b: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) - 415ba2: 00 - 415ba3: 83 3d 12 76 2b 00 00 cmpl $0x0,0x2b7612(%rip) # 6cd1bc <__libc_multiple_threads> - 415baa: 74 07 je 415bb3 <_IO_flush_all_lockp+0x1b3> - 415bac: f0 ff 0a lock decl (%rdx) - 415baf: 75 06 jne 415bb7 <_IO_flush_all_lockp+0x1b7> - 415bb1: eb 1a jmp 415bcd <_IO_flush_all_lockp+0x1cd> - 415bb3: ff 0a decl (%rdx) - 415bb5: 74 16 je 415bcd <_IO_flush_all_lockp+0x1cd> - 415bb7: 48 8d 3a lea (%rdx),%rdi - 415bba: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 415bc1: e8 3a ca 02 00 callq 442600 <__lll_unlock_wake_private> - 415bc6: 48 81 c4 80 00 00 00 add $0x80,%rsp - 415bcd: 0f 1f 00 nopl (%rax) - 415bd0: 8b 05 c2 69 2b 00 mov 0x2b69c2(%rip),%eax # 6cc598 <_IO_list_all_stamp> - 415bd6: 48 c7 05 af 69 2b 00 movq $0x0,0x2b69af(%rip) # 6cc590 - 415bdd: 00 00 00 00 - 415be1: 41 39 c7 cmp %eax,%r15d - 415be4: 0f 85 e6 fe ff ff jne 415ad0 <_IO_flush_all_lockp+0xd0> - 415bea: 48 8b 5b 68 mov 0x68(%rbx),%rbx - 415bee: 48 85 db test %rbx,%rbx - 415bf1: 0f 85 ec fe ff ff jne 415ae3 <_IO_flush_all_lockp+0xe3> - 415bf7: 45 85 f6 test %r14d,%r14d - 415bfa: 8b 05 a4 69 2b 00 mov 0x2b69a4(%rip),%eax # 6cc5a4 - 415c00: 74 0d je 415c0f <_IO_flush_all_lockp+0x20f> - 415c02: 83 e8 01 sub $0x1,%eax - 415c05: 85 c0 test %eax,%eax - 415c07: 89 05 97 69 2b 00 mov %eax,0x2b6997(%rip) # 6cc5a4 - 415c0d: 74 59 je 415c68 <_IO_flush_all_lockp+0x268> - 415c0f: 45 85 ed test %r13d,%r13d - 415c12: 74 0a je 415c1e <_IO_flush_all_lockp+0x21e> - 415c14: 31 f6 xor %esi,%esi - 415c16: 48 89 e7 mov %rsp,%rdi - 415c19: e8 e2 a3 be ff callq 0 <_nl_current_LC_CTYPE> - 415c1e: 48 83 c4 28 add $0x28,%rsp - 415c22: 89 e8 mov %ebp,%eax - 415c24: 5b pop %rbx - 415c25: 5d pop %rbp - 415c26: 41 5c pop %r12 - 415c28: 41 5d pop %r13 - 415c2a: 41 5e pop %r14 - 415c2c: 41 5f pop %r15 - 415c2e: c3 retq - 415c2f: 90 nop - 415c30: 48 8b 1d 89 44 2b 00 mov 0x2b4489(%rip),%rbx # 6ca0c0 <_IO_list_all> - 415c37: 45 31 ed xor %r13d,%r13d - 415c3a: 44 8b 3d 57 69 2b 00 mov 0x2b6957(%rip),%r15d # 6cc598 <_IO_list_all_stamp> - 415c41: 48 85 db test %rbx,%rbx - 415c44: 0f 85 71 fe ff ff jne 415abb <_IO_flush_all_lockp+0xbb> - 415c4a: 31 ed xor %ebp,%ebp - 415c4c: eb d0 jmp 415c1e <_IO_flush_all_lockp+0x21e> - 415c4e: 66 90 xchg %ax,%ax - 415c50: 48 8b 43 20 mov 0x20(%rbx),%rax - 415c54: 48 39 43 28 cmp %rax,0x28(%rbx) - 415c58: 0f 87 06 ff ff ff ja 415b64 <_IO_flush_all_lockp+0x164> - 415c5e: e9 1e ff ff ff jmpq 415b81 <_IO_flush_all_lockp+0x181> - 415c63: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 415c68: 48 c7 05 35 69 2b 00 movq $0x0,0x2b6935(%rip) # 6cc5a8 - 415c6f: 00 00 00 00 - 415c73: 83 3d 42 75 2b 00 00 cmpl $0x0,0x2b7542(%rip) # 6cd1bc <__libc_multiple_threads> - 415c7a: 74 0b je 415c87 <_IO_flush_all_lockp+0x287> - 415c7c: f0 ff 0d 1d 69 2b 00 lock decl 0x2b691d(%rip) # 6cc5a0 - 415c83: 75 0a jne 415c8f <_IO_flush_all_lockp+0x28f> - 415c85: eb 22 jmp 415ca9 <_IO_flush_all_lockp+0x2a9> - 415c87: ff 0d 13 69 2b 00 decl 0x2b6913(%rip) # 6cc5a0 - 415c8d: 74 1a je 415ca9 <_IO_flush_all_lockp+0x2a9> - 415c8f: 48 8d 3d 0a 69 2b 00 lea 0x2b690a(%rip),%rdi # 6cc5a0 - 415c96: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 415c9d: e8 5e c9 02 00 callq 442600 <__lll_unlock_wake_private> - 415ca2: 48 81 c4 80 00 00 00 add $0x80,%rsp - 415ca9: e9 61 ff ff ff jmpq 415c0f <_IO_flush_all_lockp+0x20f> - 415cae: 66 90 xchg %ax,%ax - 415cb0: 48 c7 04 24 50 41 41 movq $0x414150,(%rsp) - 415cb7: 00 - 415cb8: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) - 415cbf: 00 00 - 415cc1: e9 77 fd ff ff jmpq 415a3d <_IO_flush_all_lockp+0x3d> - 415cc6: 31 ed xor %ebp,%ebp - 415cc8: e9 35 ff ff ff jmpq 415c02 <_IO_flush_all_lockp+0x202> - 415ccd: 0f 1f 00 nopl (%rax) - -0000000000415cd0 <_IO_flush_all>: - 415cd0: 41 56 push %r14 - 415cd2: 41 55 push %r13 - 415cd4: 41 54 push %r12 - 415cd6: 55 push %rbp - 415cd7: 41 bc 00 00 00 00 mov $0x0,%r12d - 415cdd: 53 push %rbx - 415cde: 48 83 ec 20 sub $0x20,%rsp - 415ce2: 4d 85 e4 test %r12,%r12 - 415ce5: 0f 84 45 02 00 00 je 415f30 <_IO_flush_all+0x260> - 415ceb: 31 d2 xor %edx,%edx - 415ced: be 50 41 41 00 mov $0x414150,%esi - 415cf2: 48 89 e7 mov %rsp,%rdi - 415cf5: e8 06 a3 be ff callq 0 <_nl_current_LC_CTYPE> - 415cfa: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx - 415d01: 00 00 - 415d03: 48 3b 15 9e 68 2b 00 cmp 0x2b689e(%rip),%rdx # 6cc5a8 - 415d0a: 74 46 je 415d52 <_IO_flush_all+0x82> - 415d0c: be 01 00 00 00 mov $0x1,%esi - 415d11: 31 c0 xor %eax,%eax - 415d13: 83 3d a2 74 2b 00 00 cmpl $0x0,0x2b74a2(%rip) # 6cd1bc <__libc_multiple_threads> - 415d1a: 74 0c je 415d28 <_IO_flush_all+0x58> - 415d1c: f0 0f b1 35 7c 68 2b lock cmpxchg %esi,0x2b687c(%rip) # 6cc5a0 - 415d23: 00 - 415d24: 75 0b jne 415d31 <_IO_flush_all+0x61> - 415d26: eb 23 jmp 415d4b <_IO_flush_all+0x7b> - 415d28: 0f b1 35 71 68 2b 00 cmpxchg %esi,0x2b6871(%rip) # 6cc5a0 - 415d2f: 74 1a je 415d4b <_IO_flush_all+0x7b> - 415d31: 48 8d 3d 68 68 2b 00 lea 0x2b6868(%rip),%rdi # 6cc5a0 - 415d38: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 415d3f: e8 8c c8 02 00 callq 4425d0 <__lll_lock_wait_private> - 415d44: 48 81 c4 80 00 00 00 add $0x80,%rsp - 415d4b: 48 89 15 56 68 2b 00 mov %rdx,0x2b6856(%rip) # 6cc5a8 - 415d52: 8b 05 4c 68 2b 00 mov 0x2b684c(%rip),%eax # 6cc5a4 - 415d58: 48 8b 1d 61 43 2b 00 mov 0x2b4361(%rip),%rbx # 6ca0c0 <_IO_list_all> - 415d5f: 31 ed xor %ebp,%ebp - 415d61: 44 8b 2d 30 68 2b 00 mov 0x2b6830(%rip),%r13d # 6cc598 <_IO_list_all_stamp> - 415d68: 83 c0 01 add $0x1,%eax - 415d6b: 48 85 db test %rbx,%rbx - 415d6e: 89 05 30 68 2b 00 mov %eax,0x2b6830(%rip) # 6cc5a4 - 415d74: 0f 84 2e 01 00 00 je 415ea8 <_IO_flush_all+0x1d8> - 415d7a: 64 4c 8b 34 25 10 00 mov %fs:0x10,%r14 - 415d81: 00 00 - 415d83: eb 16 jmp 415d9b <_IO_flush_all+0xcb> - 415d85: 0f 1f 00 nopl (%rax) - 415d88: 48 8b 1d 31 43 2b 00 mov 0x2b4331(%rip),%rbx # 6ca0c0 <_IO_list_all> - 415d8f: 48 85 db test %rbx,%rbx - 415d92: 0f 84 0a 01 00 00 je 415ea2 <_IO_flush_all+0x1d2> - 415d98: 41 89 c5 mov %eax,%r13d - 415d9b: 8b 03 mov (%rbx),%eax - 415d9d: 48 89 1d ec 67 2b 00 mov %rbx,0x2b67ec(%rip) # 6cc590 - 415da4: 25 00 80 00 00 and $0x8000,%eax - 415da9: 75 4d jne 415df8 <_IO_flush_all+0x128> - 415dab: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 415db2: 4c 3b 72 08 cmp 0x8(%rdx),%r14 - 415db6: 74 3c je 415df4 <_IO_flush_all+0x124> - 415db8: be 01 00 00 00 mov $0x1,%esi - 415dbd: 83 3d f8 73 2b 00 00 cmpl $0x0,0x2b73f8(%rip) # 6cd1bc <__libc_multiple_threads> - 415dc4: 74 08 je 415dce <_IO_flush_all+0xfe> - 415dc6: f0 0f b1 32 lock cmpxchg %esi,(%rdx) - 415dca: 75 07 jne 415dd3 <_IO_flush_all+0x103> - 415dcc: eb 1b jmp 415de9 <_IO_flush_all+0x119> - 415dce: 0f b1 32 cmpxchg %esi,(%rdx) - 415dd1: 74 16 je 415de9 <_IO_flush_all+0x119> - 415dd3: 48 8d 3a lea (%rdx),%rdi - 415dd6: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 415ddd: e8 ee c7 02 00 callq 4425d0 <__lll_lock_wait_private> - 415de2: 48 81 c4 80 00 00 00 add $0x80,%rsp - 415de9: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 415df0: 4c 89 72 08 mov %r14,0x8(%rdx) - 415df4: 83 42 04 01 addl $0x1,0x4(%rdx) - 415df8: 8b 83 c0 00 00 00 mov 0xc0(%rbx),%eax - 415dfe: 85 c0 test %eax,%eax - 415e00: 0f 8e 12 01 00 00 jle 415f18 <_IO_flush_all+0x248> - 415e06: 48 8b 83 a0 00 00 00 mov 0xa0(%rbx),%rax - 415e0d: 48 8b 48 18 mov 0x18(%rax),%rcx - 415e11: 48 39 48 20 cmp %rcx,0x20(%rax) - 415e15: 76 1d jbe 415e34 <_IO_flush_all+0x164> - 415e17: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 415e1e: be ff ff ff ff mov $0xffffffff,%esi - 415e23: 48 89 df mov %rbx,%rdi - 415e26: ff 50 18 callq *0x18(%rax) - 415e29: 83 f8 ff cmp $0xffffffff,%eax - 415e2c: b8 ff ff ff ff mov $0xffffffff,%eax - 415e31: 0f 44 e8 cmove %eax,%ebp - 415e34: f7 03 00 80 00 00 testl $0x8000,(%rbx) - 415e3a: 75 3f jne 415e7b <_IO_flush_all+0x1ab> - 415e3c: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 415e43: 83 6a 04 01 subl $0x1,0x4(%rdx) - 415e47: 75 32 jne 415e7b <_IO_flush_all+0x1ab> - 415e49: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) - 415e50: 00 - 415e51: 83 3d 64 73 2b 00 00 cmpl $0x0,0x2b7364(%rip) # 6cd1bc <__libc_multiple_threads> - 415e58: 74 07 je 415e61 <_IO_flush_all+0x191> - 415e5a: f0 ff 0a lock decl (%rdx) - 415e5d: 75 06 jne 415e65 <_IO_flush_all+0x195> - 415e5f: eb 1a jmp 415e7b <_IO_flush_all+0x1ab> - 415e61: ff 0a decl (%rdx) - 415e63: 74 16 je 415e7b <_IO_flush_all+0x1ab> - 415e65: 48 8d 3a lea (%rdx),%rdi - 415e68: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 415e6f: e8 8c c7 02 00 callq 442600 <__lll_unlock_wake_private> - 415e74: 48 81 c4 80 00 00 00 add $0x80,%rsp - 415e7b: 8b 05 17 67 2b 00 mov 0x2b6717(%rip),%eax # 6cc598 <_IO_list_all_stamp> - 415e81: 48 c7 05 04 67 2b 00 movq $0x0,0x2b6704(%rip) # 6cc590 - 415e88: 00 00 00 00 - 415e8c: 44 39 e8 cmp %r13d,%eax - 415e8f: 0f 85 f3 fe ff ff jne 415d88 <_IO_flush_all+0xb8> - 415e95: 48 8b 5b 68 mov 0x68(%rbx),%rbx - 415e99: 48 85 db test %rbx,%rbx - 415e9c: 0f 85 f6 fe ff ff jne 415d98 <_IO_flush_all+0xc8> - 415ea2: 8b 05 fc 66 2b 00 mov 0x2b66fc(%rip),%eax # 6cc5a4 - 415ea8: 83 e8 01 sub $0x1,%eax - 415eab: 85 c0 test %eax,%eax - 415ead: 89 05 f1 66 2b 00 mov %eax,0x2b66f1(%rip) # 6cc5a4 - 415eb3: 75 41 jne 415ef6 <_IO_flush_all+0x226> - 415eb5: 48 c7 05 e8 66 2b 00 movq $0x0,0x2b66e8(%rip) # 6cc5a8 - 415ebc: 00 00 00 00 - 415ec0: 83 3d f5 72 2b 00 00 cmpl $0x0,0x2b72f5(%rip) # 6cd1bc <__libc_multiple_threads> - 415ec7: 74 0b je 415ed4 <_IO_flush_all+0x204> - 415ec9: f0 ff 0d d0 66 2b 00 lock decl 0x2b66d0(%rip) # 6cc5a0 - 415ed0: 75 0a jne 415edc <_IO_flush_all+0x20c> - 415ed2: eb 22 jmp 415ef6 <_IO_flush_all+0x226> - 415ed4: ff 0d c6 66 2b 00 decl 0x2b66c6(%rip) # 6cc5a0 - 415eda: 74 1a je 415ef6 <_IO_flush_all+0x226> - 415edc: 48 8d 3d bd 66 2b 00 lea 0x2b66bd(%rip),%rdi # 6cc5a0 - 415ee3: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 415eea: e8 11 c7 02 00 callq 442600 <__lll_unlock_wake_private> - 415eef: 48 81 c4 80 00 00 00 add $0x80,%rsp - 415ef6: 4d 85 e4 test %r12,%r12 - 415ef9: 74 0a je 415f05 <_IO_flush_all+0x235> - 415efb: 31 f6 xor %esi,%esi - 415efd: 48 89 e7 mov %rsp,%rdi - 415f00: e8 fb a0 be ff callq 0 <_nl_current_LC_CTYPE> - 415f05: 48 83 c4 20 add $0x20,%rsp - 415f09: 89 e8 mov %ebp,%eax - 415f0b: 5b pop %rbx - 415f0c: 5d pop %rbp - 415f0d: 41 5c pop %r12 - 415f0f: 41 5d pop %r13 - 415f11: 41 5e pop %r14 - 415f13: c3 retq - 415f14: 0f 1f 40 00 nopl 0x0(%rax) - 415f18: 48 8b 43 20 mov 0x20(%rbx),%rax - 415f1c: 48 39 43 28 cmp %rax,0x28(%rbx) - 415f20: 0f 87 f1 fe ff ff ja 415e17 <_IO_flush_all+0x147> - 415f26: e9 09 ff ff ff jmpq 415e34 <_IO_flush_all+0x164> - 415f2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 415f30: 48 c7 04 24 50 41 41 movq $0x414150,(%rsp) - 415f37: 00 - 415f38: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) - 415f3f: 00 00 - 415f41: e9 b4 fd ff ff jmpq 415cfa <_IO_flush_all+0x2a> - 415f46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 415f4d: 00 00 00 - -0000000000415f50 <_IO_flush_all_linebuffered>: - 415f50: 41 55 push %r13 - 415f52: 41 54 push %r12 - 415f54: 55 push %rbp - 415f55: 53 push %rbx - 415f56: bd 00 00 00 00 mov $0x0,%ebp - 415f5b: 48 83 ec 28 sub $0x28,%rsp - 415f5f: 48 85 ed test %rbp,%rbp - 415f62: 0f 84 38 02 00 00 je 4161a0 <_IO_flush_all_linebuffered+0x250> - 415f68: 31 d2 xor %edx,%edx - 415f6a: be 50 41 41 00 mov $0x414150,%esi - 415f6f: 48 89 e7 mov %rsp,%rdi - 415f72: e8 89 a0 be ff callq 0 <_nl_current_LC_CTYPE> - 415f77: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx - 415f7e: 00 00 - 415f80: 48 3b 15 21 66 2b 00 cmp 0x2b6621(%rip),%rdx # 6cc5a8 - 415f87: 74 46 je 415fcf <_IO_flush_all_linebuffered+0x7f> - 415f89: be 01 00 00 00 mov $0x1,%esi - 415f8e: 31 c0 xor %eax,%eax - 415f90: 83 3d 25 72 2b 00 00 cmpl $0x0,0x2b7225(%rip) # 6cd1bc <__libc_multiple_threads> - 415f97: 74 0c je 415fa5 <_IO_flush_all_linebuffered+0x55> - 415f99: f0 0f b1 35 ff 65 2b lock cmpxchg %esi,0x2b65ff(%rip) # 6cc5a0 - 415fa0: 00 - 415fa1: 75 0b jne 415fae <_IO_flush_all_linebuffered+0x5e> - 415fa3: eb 23 jmp 415fc8 <_IO_flush_all_linebuffered+0x78> - 415fa5: 0f b1 35 f4 65 2b 00 cmpxchg %esi,0x2b65f4(%rip) # 6cc5a0 - 415fac: 74 1a je 415fc8 <_IO_flush_all_linebuffered+0x78> - 415fae: 48 8d 3d eb 65 2b 00 lea 0x2b65eb(%rip),%rdi # 6cc5a0 - 415fb5: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 415fbc: e8 0f c6 02 00 callq 4425d0 <__lll_lock_wait_private> - 415fc1: 48 81 c4 80 00 00 00 add $0x80,%rsp - 415fc8: 48 89 15 d9 65 2b 00 mov %rdx,0x2b65d9(%rip) # 6cc5a8 - 415fcf: 8b 05 cf 65 2b 00 mov 0x2b65cf(%rip),%eax # 6cc5a4 - 415fd5: 48 8b 1d e4 40 2b 00 mov 0x2b40e4(%rip),%rbx # 6ca0c0 <_IO_list_all> - 415fdc: 44 8b 25 b5 65 2b 00 mov 0x2b65b5(%rip),%r12d # 6cc598 <_IO_list_all_stamp> - 415fe3: 83 c0 01 add $0x1,%eax - 415fe6: 48 85 db test %rbx,%rbx - 415fe9: 89 05 b5 65 2b 00 mov %eax,0x2b65b5(%rip) # 6cc5a4 - 415fef: 0f 84 3a 01 00 00 je 41612f <_IO_flush_all_linebuffered+0x1df> - 415ff5: 44 89 e0 mov %r12d,%eax - 415ff8: 64 4c 8b 2c 25 10 00 mov %fs:0x10,%r13 - 415fff: 00 00 - 416001: e9 d7 00 00 00 jmpq 4160dd <_IO_flush_all_linebuffered+0x18d> - 416006: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41600d: 00 00 00 - 416010: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 416017: 4c 3b 6a 08 cmp 0x8(%rdx),%r13 - 41601b: 74 3e je 41605b <_IO_flush_all_linebuffered+0x10b> - 41601d: be 01 00 00 00 mov $0x1,%esi - 416022: 89 c8 mov %ecx,%eax - 416024: 83 3d 91 71 2b 00 00 cmpl $0x0,0x2b7191(%rip) # 6cd1bc <__libc_multiple_threads> - 41602b: 74 08 je 416035 <_IO_flush_all_linebuffered+0xe5> - 41602d: f0 0f b1 32 lock cmpxchg %esi,(%rdx) - 416031: 75 07 jne 41603a <_IO_flush_all_linebuffered+0xea> - 416033: eb 1b jmp 416050 <_IO_flush_all_linebuffered+0x100> - 416035: 0f b1 32 cmpxchg %esi,(%rdx) - 416038: 74 16 je 416050 <_IO_flush_all_linebuffered+0x100> - 41603a: 48 8d 3a lea (%rdx),%rdi - 41603d: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 416044: e8 87 c5 02 00 callq 4425d0 <__lll_lock_wait_private> - 416049: 48 81 c4 80 00 00 00 add $0x80,%rsp - 416050: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 416057: 4c 89 6a 08 mov %r13,0x8(%rdx) - 41605b: 83 42 04 01 addl $0x1,0x4(%rdx) - 41605f: 8b 03 mov (%rbx),%eax - 416061: 25 08 02 00 00 and $0x208,%eax - 416066: 3d 00 02 00 00 cmp $0x200,%eax - 41606b: 0f 84 91 00 00 00 je 416102 <_IO_flush_all_linebuffered+0x1b2> - 416071: f7 03 00 80 00 00 testl $0x8000,(%rbx) - 416077: 75 3f jne 4160b8 <_IO_flush_all_linebuffered+0x168> - 416079: 48 8b 93 88 00 00 00 mov 0x88(%rbx),%rdx - 416080: 83 6a 04 01 subl $0x1,0x4(%rdx) - 416084: 75 32 jne 4160b8 <_IO_flush_all_linebuffered+0x168> - 416086: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) - 41608d: 00 - 41608e: 83 3d 27 71 2b 00 00 cmpl $0x0,0x2b7127(%rip) # 6cd1bc <__libc_multiple_threads> - 416095: 74 07 je 41609e <_IO_flush_all_linebuffered+0x14e> - 416097: f0 ff 0a lock decl (%rdx) - 41609a: 75 06 jne 4160a2 <_IO_flush_all_linebuffered+0x152> - 41609c: eb 1a jmp 4160b8 <_IO_flush_all_linebuffered+0x168> - 41609e: ff 0a decl (%rdx) - 4160a0: 74 16 je 4160b8 <_IO_flush_all_linebuffered+0x168> - 4160a2: 48 8d 3a lea (%rdx),%rdi - 4160a5: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4160ac: e8 4f c5 02 00 callq 442600 <__lll_unlock_wake_private> - 4160b1: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4160b8: 8b 05 da 64 2b 00 mov 0x2b64da(%rip),%eax # 6cc598 <_IO_list_all_stamp> - 4160be: 41 39 c4 cmp %eax,%r12d - 4160c1: 48 c7 05 c4 64 2b 00 movq $0x0,0x2b64c4(%rip) # 6cc590 - 4160c8: 00 00 00 00 - 4160cc: 74 52 je 416120 <_IO_flush_all_linebuffered+0x1d0> - 4160ce: 48 8b 1d eb 3f 2b 00 mov 0x2b3feb(%rip),%rbx # 6ca0c0 <_IO_list_all> - 4160d5: 41 89 c4 mov %eax,%r12d - 4160d8: 48 85 db test %rbx,%rbx - 4160db: 74 4c je 416129 <_IO_flush_all_linebuffered+0x1d9> - 4160dd: 8b 13 mov (%rbx),%edx - 4160df: 48 89 1d aa 64 2b 00 mov %rbx,0x2b64aa(%rip) # 6cc590 - 4160e6: 89 d1 mov %edx,%ecx - 4160e8: 81 e1 00 80 00 00 and $0x8000,%ecx - 4160ee: 0f 84 1c ff ff ff je 416010 <_IO_flush_all_linebuffered+0xc0> - 4160f4: 81 e2 08 02 00 00 and $0x208,%edx - 4160fa: 81 fa 00 02 00 00 cmp $0x200,%edx - 416100: 75 bc jne 4160be <_IO_flush_all_linebuffered+0x16e> - 416102: 48 8b 83 d8 00 00 00 mov 0xd8(%rbx),%rax - 416109: be ff ff ff ff mov $0xffffffff,%esi - 41610e: 48 89 df mov %rbx,%rdi - 416111: ff 50 18 callq *0x18(%rax) - 416114: e9 58 ff ff ff jmpq 416071 <_IO_flush_all_linebuffered+0x121> - 416119: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 416120: 48 8b 5b 68 mov 0x68(%rbx),%rbx - 416124: 48 85 db test %rbx,%rbx - 416127: 75 b4 jne 4160dd <_IO_flush_all_linebuffered+0x18d> - 416129: 8b 05 75 64 2b 00 mov 0x2b6475(%rip),%eax # 6cc5a4 - 41612f: 83 e8 01 sub $0x1,%eax - 416132: 85 c0 test %eax,%eax - 416134: 89 05 6a 64 2b 00 mov %eax,0x2b646a(%rip) # 6cc5a4 - 41613a: 75 41 jne 41617d <_IO_flush_all_linebuffered+0x22d> - 41613c: 48 c7 05 61 64 2b 00 movq $0x0,0x2b6461(%rip) # 6cc5a8 - 416143: 00 00 00 00 - 416147: 83 3d 6e 70 2b 00 00 cmpl $0x0,0x2b706e(%rip) # 6cd1bc <__libc_multiple_threads> - 41614e: 74 0b je 41615b <_IO_flush_all_linebuffered+0x20b> - 416150: f0 ff 0d 49 64 2b 00 lock decl 0x2b6449(%rip) # 6cc5a0 - 416157: 75 0a jne 416163 <_IO_flush_all_linebuffered+0x213> - 416159: eb 22 jmp 41617d <_IO_flush_all_linebuffered+0x22d> - 41615b: ff 0d 3f 64 2b 00 decl 0x2b643f(%rip) # 6cc5a0 - 416161: 74 1a je 41617d <_IO_flush_all_linebuffered+0x22d> - 416163: 48 8d 3d 36 64 2b 00 lea 0x2b6436(%rip),%rdi # 6cc5a0 - 41616a: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 416171: e8 8a c4 02 00 callq 442600 <__lll_unlock_wake_private> - 416176: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41617d: 48 85 ed test %rbp,%rbp - 416180: 74 0a je 41618c <_IO_flush_all_linebuffered+0x23c> - 416182: 31 f6 xor %esi,%esi - 416184: 48 89 e7 mov %rsp,%rdi - 416187: e8 74 9e be ff callq 0 <_nl_current_LC_CTYPE> - 41618c: 48 83 c4 28 add $0x28,%rsp - 416190: 5b pop %rbx - 416191: 5d pop %rbp - 416192: 41 5c pop %r12 - 416194: 41 5d pop %r13 - 416196: c3 retq - 416197: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 41619e: 00 00 - 4161a0: 48 c7 04 24 50 41 41 movq $0x414150,(%rsp) - 4161a7: 00 - 4161a8: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) - 4161af: 00 00 - 4161b1: e9 c1 fd ff ff jmpq 415f77 <_IO_flush_all_linebuffered+0x27> - 4161b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4161bd: 00 00 00 - -00000000004161c0 <_IO_init_marker>: - 4161c0: 55 push %rbp - 4161c1: 53 push %rbx - 4161c2: 48 89 fd mov %rdi,%rbp - 4161c5: 48 89 f3 mov %rsi,%rbx - 4161c8: 48 83 ec 08 sub $0x8,%rsp - 4161cc: 8b 06 mov (%rsi),%eax - 4161ce: 48 89 77 08 mov %rsi,0x8(%rdi) - 4161d2: f6 c4 08 test $0x8,%ah - 4161d5: 75 31 jne 416208 <_IO_init_marker+0x48> - 4161d7: 48 8b 53 08 mov 0x8(%rbx),%rdx - 4161db: f6 c4 01 test $0x1,%ah - 4161de: 89 d0 mov %edx,%eax - 4161e0: 75 1e jne 416200 <_IO_init_marker+0x40> - 4161e2: 2b 43 18 sub 0x18(%rbx),%eax - 4161e5: 89 45 10 mov %eax,0x10(%rbp) - 4161e8: 48 8b 43 60 mov 0x60(%rbx),%rax - 4161ec: 48 89 45 00 mov %rax,0x0(%rbp) - 4161f0: 48 89 6b 60 mov %rbp,0x60(%rbx) - 4161f4: 48 83 c4 08 add $0x8,%rsp - 4161f8: 5b pop %rbx - 4161f9: 5d pop %rbp - 4161fa: c3 retq - 4161fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 416200: 2b 43 10 sub 0x10(%rbx),%eax - 416203: eb e0 jmp 4161e5 <_IO_init_marker+0x25> - 416205: 0f 1f 00 nopl (%rax) - 416208: 48 8b 4e 28 mov 0x28(%rsi),%rcx - 41620c: 48 3b 4e 20 cmp 0x20(%rsi),%rcx - 416210: 77 3e ja 416250 <_IO_init_marker+0x90> - 416212: f6 c4 01 test $0x1,%ah - 416215: 75 29 jne 416240 <_IO_init_marker+0x80> - 416217: 48 3b 4b 10 cmp 0x10(%rbx),%rcx - 41621b: 48 8b 53 38 mov 0x38(%rbx),%rdx - 41621f: 48 89 53 18 mov %rdx,0x18(%rbx) - 416223: 48 89 ca mov %rcx,%rdx - 416226: 76 04 jbe 41622c <_IO_init_marker+0x6c> - 416228: 48 89 4b 10 mov %rcx,0x10(%rbx) - 41622c: 80 e4 f7 and $0xf7,%ah - 41622f: 48 89 4b 08 mov %rcx,0x8(%rbx) - 416233: 48 89 4b 30 mov %rcx,0x30(%rbx) - 416237: 48 89 4b 20 mov %rcx,0x20(%rbx) - 41623b: 89 03 mov %eax,(%rbx) - 41623d: eb 9c jmp 4161db <_IO_init_marker+0x1b> - 41623f: 90 nop - 416240: 48 8b 53 50 mov 0x50(%rbx),%rdx - 416244: 48 89 53 18 mov %rdx,0x18(%rbx) - 416248: 48 89 ca mov %rcx,%rdx - 41624b: eb df jmp 41622c <_IO_init_marker+0x6c> - 41624d: 0f 1f 00 nopl (%rax) - 416250: 48 8b 86 d8 00 00 00 mov 0xd8(%rsi),%rax - 416257: 48 89 df mov %rbx,%rdi - 41625a: be ff ff ff ff mov $0xffffffff,%esi - 41625f: ff 50 18 callq *0x18(%rax) - 416262: 83 f8 ff cmp $0xffffffff,%eax - 416265: 8b 03 mov (%rbx),%eax - 416267: 0f 84 6a ff ff ff je 4161d7 <_IO_init_marker+0x17> - 41626d: 48 8b 4b 28 mov 0x28(%rbx),%rcx - 416271: eb 9f jmp 416212 <_IO_init_marker+0x52> - 416273: 0f 1f 00 nopl (%rax) - 416276: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41627d: 00 00 00 - -0000000000416280 <_IO_remove_marker>: - 416280: 48 8b 47 08 mov 0x8(%rdi),%rax - 416284: 48 8b 50 60 mov 0x60(%rax),%rdx - 416288: 48 85 d2 test %rdx,%rdx - 41628b: 74 1b je 4162a8 <_IO_remove_marker+0x28> - 41628d: 48 39 d7 cmp %rdx,%rdi - 416290: 75 0e jne 4162a0 <_IO_remove_marker+0x20> - 416292: eb 16 jmp 4162aa <_IO_remove_marker+0x2a> - 416294: 0f 1f 40 00 nopl 0x0(%rax) - 416298: 48 39 c7 cmp %rax,%rdi - 41629b: 74 11 je 4162ae <_IO_remove_marker+0x2e> - 41629d: 48 89 c2 mov %rax,%rdx - 4162a0: 48 8b 02 mov (%rdx),%rax - 4162a3: 48 85 c0 test %rax,%rax - 4162a6: 75 f0 jne 416298 <_IO_remove_marker+0x18> - 4162a8: f3 c3 repz retq - 4162aa: 48 8d 50 60 lea 0x60(%rax),%rdx - 4162ae: 48 8b 07 mov (%rdi),%rax - 4162b1: 48 89 02 mov %rax,(%rdx) - 4162b4: c3 retq - 4162b5: 90 nop - 4162b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4162bd: 00 00 00 - -00000000004162c0 <_IO_marker_difference>: - 4162c0: 8b 47 10 mov 0x10(%rdi),%eax - 4162c3: 2b 46 10 sub 0x10(%rsi),%eax - 4162c6: c3 retq - 4162c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4162ce: 00 00 - -00000000004162d0 <_IO_marker_delta>: - 4162d0: 48 8b 47 08 mov 0x8(%rdi),%rax - 4162d4: 48 85 c0 test %rax,%rax - 4162d7: 74 20 je 4162f9 <_IO_marker_delta+0x29> - 4162d9: f7 00 00 01 00 00 testl $0x100,(%rax) - 4162df: 48 8b 50 08 mov 0x8(%rax),%rdx - 4162e3: 75 0b jne 4162f0 <_IO_marker_delta+0x20> - 4162e5: 2b 50 18 sub 0x18(%rax),%edx - 4162e8: 8b 47 10 mov 0x10(%rdi),%eax - 4162eb: 29 d0 sub %edx,%eax - 4162ed: c3 retq - 4162ee: 66 90 xchg %ax,%ax - 4162f0: 2b 50 10 sub 0x10(%rax),%edx - 4162f3: 8b 47 10 mov 0x10(%rdi),%eax - 4162f6: 29 d0 sub %edx,%eax - 4162f8: c3 retq - 4162f9: b8 ff ff ff ff mov $0xffffffff,%eax - 4162fe: c3 retq - 4162ff: 90 nop - -0000000000416300 <_IO_seekmark>: - 416300: 48 8b 56 08 mov 0x8(%rsi),%rdx - 416304: b8 ff ff ff ff mov $0xffffffff,%eax - 416309: 48 39 fa cmp %rdi,%rdx - 41630c: 75 3d jne 41634b <_IO_seekmark+0x4b> - 41630e: 48 63 46 10 movslq 0x10(%rsi),%rax - 416312: 8b 0a mov (%rdx),%ecx - 416314: 85 c0 test %eax,%eax - 416316: 78 48 js 416360 <_IO_seekmark+0x60> - 416318: f6 c5 01 test $0x1,%ch - 41631b: 74 33 je 416350 <_IO_seekmark+0x50> - 41631d: 80 e5 fe and $0xfe,%ch - 416320: 48 8b 72 58 mov 0x58(%rdx),%rsi - 416324: 89 0a mov %ecx,(%rdx) - 416326: 48 8b 4a 10 mov 0x10(%rdx),%rcx - 41632a: 48 89 72 10 mov %rsi,0x10(%rdx) - 41632e: 48 8b 72 18 mov 0x18(%rdx),%rsi - 416332: 48 89 4a 58 mov %rcx,0x58(%rdx) - 416336: 48 8b 4a 48 mov 0x48(%rdx),%rcx - 41633a: 48 89 72 48 mov %rsi,0x48(%rdx) - 41633e: 48 89 4a 18 mov %rcx,0x18(%rdx) - 416342: 48 01 c8 add %rcx,%rax - 416345: 48 89 42 08 mov %rax,0x8(%rdx) - 416349: 31 c0 xor %eax,%eax - 41634b: f3 c3 repz retq - 41634d: 0f 1f 00 nopl (%rax) - 416350: 48 8b 4a 18 mov 0x18(%rdx),%rcx - 416354: eb ec jmp 416342 <_IO_seekmark+0x42> - 416356: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41635d: 00 00 00 - 416360: f6 c5 01 test $0x1,%ch - 416363: 75 2b jne 416390 <_IO_seekmark+0x90> - 416365: 48 8b 72 10 mov 0x10(%rdx),%rsi - 416369: 80 cd 01 or $0x1,%ch - 41636c: 48 8b 7a 48 mov 0x48(%rdx),%rdi - 416370: 89 0a mov %ecx,(%rdx) - 416372: 48 8b 4a 58 mov 0x58(%rdx),%rcx - 416376: 48 89 72 58 mov %rsi,0x58(%rdx) - 41637a: 48 8b 72 18 mov 0x18(%rdx),%rsi - 41637e: 48 89 4a 10 mov %rcx,0x10(%rdx) - 416382: 48 89 7a 18 mov %rdi,0x18(%rdx) - 416386: 48 89 72 48 mov %rsi,0x48(%rdx) - 41638a: eb b6 jmp 416342 <_IO_seekmark+0x42> - 41638c: 0f 1f 40 00 nopl 0x0(%rax) - 416390: 48 8b 4a 10 mov 0x10(%rdx),%rcx - 416394: eb ac jmp 416342 <_IO_seekmark+0x42> - 416396: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41639d: 00 00 00 - -00000000004163a0 <_IO_unsave_markers>: - 4163a0: 48 83 7f 60 00 cmpq $0x0,0x60(%rdi) - 4163a5: 48 89 f8 mov %rdi,%rax - 4163a8: 74 08 je 4163b2 <_IO_unsave_markers+0x12> - 4163aa: 48 c7 47 60 00 00 00 movq $0x0,0x60(%rdi) - 4163b1: 00 - 4163b2: 48 8b 78 48 mov 0x48(%rax),%rdi - 4163b6: 48 85 ff test %rdi,%rdi - 4163b9: 74 45 je 416400 <_IO_unsave_markers+0x60> - 4163bb: 8b 10 mov (%rax),%edx - 4163bd: 53 push %rbx - 4163be: f6 c6 01 test $0x1,%dh - 4163c1: 74 1c je 4163df <_IO_unsave_markers+0x3f> - 4163c3: 80 e6 fe and $0xfe,%dh - 4163c6: 48 89 78 08 mov %rdi,0x8(%rax) - 4163ca: 89 10 mov %edx,(%rax) - 4163cc: 48 8b 50 58 mov 0x58(%rax),%rdx - 4163d0: 48 89 50 10 mov %rdx,0x10(%rax) - 4163d4: 48 8b 50 18 mov 0x18(%rax),%rdx - 4163d8: 48 89 78 18 mov %rdi,0x18(%rax) - 4163dc: 48 89 d7 mov %rdx,%rdi - 4163df: 48 89 c3 mov %rax,%rbx - 4163e2: e8 c9 79 00 00 callq 41ddb0 <__cfree> - 4163e7: 48 c7 43 48 00 00 00 movq $0x0,0x48(%rbx) - 4163ee: 00 - 4163ef: 48 c7 43 58 00 00 00 movq $0x0,0x58(%rbx) - 4163f6: 00 - 4163f7: 48 c7 43 50 00 00 00 movq $0x0,0x50(%rbx) - 4163fe: 00 - 4163ff: 5b pop %rbx - 416400: f3 c3 repz retq - 416402: 0f 1f 40 00 nopl 0x0(%rax) - 416406: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41640d: 00 00 00 - -0000000000416410 <_IO_default_pbackfail>: - 416410: 41 57 push %r15 - 416412: 41 56 push %r14 - 416414: 41 55 push %r13 - 416416: 41 54 push %r12 - 416418: 41 89 f4 mov %esi,%r12d - 41641b: 55 push %rbp - 41641c: 53 push %rbx - 41641d: 48 89 fb mov %rdi,%rbx - 416420: 48 83 ec 08 sub $0x8,%rsp - 416424: 48 8b 6f 08 mov 0x8(%rdi),%rbp - 416428: 4c 8b 77 18 mov 0x18(%rdi),%r14 - 41642c: 44 8b 2f mov (%rdi),%r13d - 41642f: 4c 39 f5 cmp %r14,%rbp - 416432: 76 2c jbe 416460 <_IO_default_pbackfail+0x50> - 416434: 41 f7 c5 00 01 00 00 test $0x100,%r13d - 41643b: 74 7b je 4164b8 <_IO_default_pbackfail+0xa8> - 41643d: 48 8d 45 ff lea -0x1(%rbp),%rax - 416441: 48 89 43 08 mov %rax,0x8(%rbx) - 416445: 44 88 65 ff mov %r12b,-0x1(%rbp) - 416449: 41 0f b6 c4 movzbl %r12b,%eax - 41644d: 48 83 c4 08 add $0x8,%rsp - 416451: 5b pop %rbx - 416452: 5d pop %rbp - 416453: 41 5c pop %r12 - 416455: 41 5d pop %r13 - 416457: 41 5e pop %r14 - 416459: 41 5f pop %r15 - 41645b: c3 retq - 41645c: 0f 1f 40 00 nopl 0x0(%rax) - 416460: 41 f7 c5 00 01 00 00 test $0x100,%r13d - 416467: 0f 84 83 00 00 00 je 4164f0 <_IO_default_pbackfail+0xe0> - 41646d: 4c 8b 6b 10 mov 0x10(%rbx),%r13 - 416471: 4d 29 f5 sub %r14,%r13 - 416474: 4b 8d 7c 2d 00 lea 0x0(%r13,%r13,1),%rdi - 416479: e8 92 75 00 00 callq 41da10 <__libc_malloc> - 41647e: 48 85 c0 test %rax,%rax - 416481: 49 89 c7 mov %rax,%r15 - 416484: 0f 84 d0 00 00 00 je 41655a <_IO_default_pbackfail+0x14a> - 41648a: 4a 8d 2c 28 lea (%rax,%r13,1),%rbp - 41648e: 4c 89 ea mov %r13,%rdx - 416491: 4c 89 f6 mov %r14,%rsi - 416494: 48 89 ef mov %rbp,%rdi - 416497: 49 01 ed add %rbp,%r13 - 41649a: e8 81 5b 01 00 callq 42c020 - 41649f: 4c 89 f7 mov %r14,%rdi - 4164a2: e8 09 79 00 00 callq 41ddb0 <__cfree> - 4164a7: 4c 89 7b 18 mov %r15,0x18(%rbx) - 4164ab: 4c 89 6b 10 mov %r13,0x10(%rbx) - 4164af: 48 89 6b 50 mov %rbp,0x50(%rbx) - 4164b3: eb 88 jmp 41643d <_IO_default_pbackfail+0x2d> - 4164b5: 0f 1f 00 nopl (%rax) - 4164b8: 0f b6 45 ff movzbl -0x1(%rbp),%eax - 4164bc: 39 f0 cmp %esi,%eax - 4164be: 74 68 je 416528 <_IO_default_pbackfail+0x118> - 4164c0: 48 83 7f 48 00 cmpq $0x0,0x48(%rdi) - 4164c5: 74 71 je 416538 <_IO_default_pbackfail+0x128> - 4164c7: 48 89 ee mov %rbp,%rsi - 4164ca: 48 89 df mov %rbx,%rdi - 4164cd: e8 8e da ff ff callq 413f60 - 4164d2: 85 c0 test %eax,%eax - 4164d4: 0f 85 80 00 00 00 jne 41655a <_IO_default_pbackfail+0x14a> - 4164da: 48 8b 4b 08 mov 0x8(%rbx),%rcx - 4164de: 44 8b 2b mov (%rbx),%r13d - 4164e1: 48 8b 6b 58 mov 0x58(%rbx),%rbp - 4164e5: 48 8b 43 48 mov 0x48(%rbx),%rax - 4164e9: eb 15 jmp 416500 <_IO_default_pbackfail+0xf0> - 4164eb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4164f0: 48 8b 43 48 mov 0x48(%rbx),%rax - 4164f4: 48 85 c0 test %rax,%rax - 4164f7: 74 3f je 416538 <_IO_default_pbackfail+0x128> - 4164f9: 48 89 e9 mov %rbp,%rcx - 4164fc: 48 8b 6b 58 mov 0x58(%rbx),%rbp - 416500: 48 8b 53 10 mov 0x10(%rbx),%rdx - 416504: 41 81 cd 00 01 00 00 or $0x100,%r13d - 41650b: 48 89 6b 10 mov %rbp,0x10(%rbx) - 41650f: 44 89 2b mov %r13d,(%rbx) - 416512: 48 89 43 18 mov %rax,0x18(%rbx) - 416516: 48 89 4b 48 mov %rcx,0x48(%rbx) - 41651a: 48 89 53 58 mov %rdx,0x58(%rbx) - 41651e: e9 1a ff ff ff jmpq 41643d <_IO_default_pbackfail+0x2d> - 416523: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 416528: 48 83 ed 01 sub $0x1,%rbp - 41652c: 48 89 6f 08 mov %rbp,0x8(%rdi) - 416530: e9 14 ff ff ff jmpq 416449 <_IO_default_pbackfail+0x39> - 416535: 0f 1f 00 nopl (%rax) - 416538: bf 80 00 00 00 mov $0x80,%edi - 41653d: e8 ce 74 00 00 callq 41da10 <__libc_malloc> - 416542: 48 85 c0 test %rax,%rax - 416545: 74 13 je 41655a <_IO_default_pbackfail+0x14a> - 416547: 48 8d 90 80 00 00 00 lea 0x80(%rax),%rdx - 41654e: 48 89 e9 mov %rbp,%rcx - 416551: 48 89 53 50 mov %rdx,0x50(%rbx) - 416555: 48 89 d5 mov %rdx,%rbp - 416558: eb a6 jmp 416500 <_IO_default_pbackfail+0xf0> - 41655a: b8 ff ff ff ff mov $0xffffffff,%eax - 41655f: e9 e9 fe ff ff jmpq 41644d <_IO_default_pbackfail+0x3d> - 416564: 66 90 xchg %ax,%ax - 416566: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41656d: 00 00 00 - -0000000000416570 <_IO_default_seek>: - 416570: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 416577: c3 retq - 416578: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41657f: 00 - -0000000000416580 <_IO_default_stat>: - 416580: b8 ff ff ff ff mov $0xffffffff,%eax - 416585: c3 retq - 416586: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41658d: 00 00 00 - -0000000000416590 <_IO_default_read>: - 416590: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 416597: c3 retq - 416598: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41659f: 00 - -00000000004165a0 <_IO_default_write>: - 4165a0: 31 c0 xor %eax,%eax - 4165a2: c3 retq - 4165a3: 0f 1f 00 nopl (%rax) - 4165a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4165ad: 00 00 00 - -00000000004165b0 <_IO_default_showmanyc>: - 4165b0: b8 ff ff ff ff mov $0xffffffff,%eax - 4165b5: c3 retq - 4165b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4165bd: 00 00 00 - -00000000004165c0 <_IO_default_imbue>: - 4165c0: f3 c3 repz retq - 4165c2: 0f 1f 40 00 nopl 0x0(%rax) - 4165c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4165cd: 00 00 00 - -00000000004165d0 <_IO_iter_begin>: - 4165d0: 48 8b 05 e9 3a 2b 00 mov 0x2b3ae9(%rip),%rax # 6ca0c0 <_IO_list_all> - 4165d7: c3 retq - 4165d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4165df: 00 - -00000000004165e0 <_IO_iter_end>: - 4165e0: 31 c0 xor %eax,%eax - 4165e2: c3 retq - 4165e3: 0f 1f 00 nopl (%rax) - 4165e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4165ed: 00 00 00 - -00000000004165f0 <_IO_iter_next>: - 4165f0: 48 8b 47 68 mov 0x68(%rdi),%rax - 4165f4: c3 retq - 4165f5: 90 nop - 4165f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4165fd: 00 00 00 - -0000000000416600 <_IO_iter_file>: - 416600: 48 89 f8 mov %rdi,%rax - 416603: c3 retq - 416604: 66 90 xchg %ax,%ax - 416606: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41660d: 00 00 00 - -0000000000416610 <_IO_list_lock>: - 416610: 64 48 8b 14 25 10 00 mov %fs:0x10,%rdx - 416617: 00 00 - 416619: 48 3b 15 88 5f 2b 00 cmp 0x2b5f88(%rip),%rdx # 6cc5a8 - 416620: 74 46 je 416668 <_IO_list_lock+0x58> - 416622: be 01 00 00 00 mov $0x1,%esi - 416627: 31 c0 xor %eax,%eax - 416629: 83 3d 8c 6b 2b 00 00 cmpl $0x0,0x2b6b8c(%rip) # 6cd1bc <__libc_multiple_threads> - 416630: 74 0c je 41663e <_IO_list_lock+0x2e> - 416632: f0 0f b1 35 66 5f 2b lock cmpxchg %esi,0x2b5f66(%rip) # 6cc5a0 - 416639: 00 - 41663a: 75 0b jne 416647 <_IO_list_lock+0x37> - 41663c: eb 23 jmp 416661 <_IO_list_lock+0x51> - 41663e: 0f b1 35 5b 5f 2b 00 cmpxchg %esi,0x2b5f5b(%rip) # 6cc5a0 - 416645: 74 1a je 416661 <_IO_list_lock+0x51> - 416647: 48 8d 3d 52 5f 2b 00 lea 0x2b5f52(%rip),%rdi # 6cc5a0 - 41664e: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 416655: e8 76 bf 02 00 callq 4425d0 <__lll_lock_wait_private> - 41665a: 48 81 c4 80 00 00 00 add $0x80,%rsp - 416661: 48 89 15 40 5f 2b 00 mov %rdx,0x2b5f40(%rip) # 6cc5a8 - 416668: 83 05 35 5f 2b 00 01 addl $0x1,0x2b5f35(%rip) # 6cc5a4 - 41666f: c3 retq - -0000000000416670 <_IO_list_unlock>: - 416670: 83 2d 2d 5f 2b 00 01 subl $0x1,0x2b5f2d(%rip) # 6cc5a4 - 416677: 75 41 jne 4166ba <_IO_list_unlock+0x4a> - 416679: 48 c7 05 24 5f 2b 00 movq $0x0,0x2b5f24(%rip) # 6cc5a8 - 416680: 00 00 00 00 - 416684: 83 3d 31 6b 2b 00 00 cmpl $0x0,0x2b6b31(%rip) # 6cd1bc <__libc_multiple_threads> - 41668b: 74 0b je 416698 <_IO_list_unlock+0x28> - 41668d: f0 ff 0d 0c 5f 2b 00 lock decl 0x2b5f0c(%rip) # 6cc5a0 - 416694: 75 0a jne 4166a0 <_IO_list_unlock+0x30> - 416696: eb 22 jmp 4166ba <_IO_list_unlock+0x4a> - 416698: ff 0d 02 5f 2b 00 decl 0x2b5f02(%rip) # 6cc5a0 - 41669e: 74 1a je 4166ba <_IO_list_unlock+0x4a> - 4166a0: 48 8d 3d f9 5e 2b 00 lea 0x2b5ef9(%rip),%rdi # 6cc5a0 - 4166a7: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4166ae: e8 4d bf 02 00 callq 442600 <__lll_unlock_wake_private> - 4166b3: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4166ba: f3 c3 repz retq - 4166bc: 0f 1f 40 00 nopl 0x0(%rax) - -00000000004166c0 <_IO_list_resetlock>: - 4166c0: c7 05 d6 5e 2b 00 00 movl $0x0,0x2b5ed6(%rip) # 6cc5a0 - 4166c7: 00 00 00 - 4166ca: c7 05 d0 5e 2b 00 00 movl $0x0,0x2b5ed0(%rip) # 6cc5a4 - 4166d1: 00 00 00 - 4166d4: 48 c7 05 c9 5e 2b 00 movq $0x0,0x2b5ec9(%rip) # 6cc5a8 - 4166db: 00 00 00 00 - 4166df: c3 retq - -00000000004166e0 <_IO_str_underflow>: - 4166e0: 48 8b 47 28 mov 0x28(%rdi),%rax - 4166e4: 48 8b 4f 10 mov 0x10(%rdi),%rcx - 4166e8: 48 39 c8 cmp %rcx,%rax - 4166eb: 76 07 jbe 4166f4 <_IO_str_underflow+0x14> - 4166ed: 48 89 47 10 mov %rax,0x10(%rdi) - 4166f1: 48 89 c1 mov %rax,%rcx - 4166f4: 8b 17 mov (%rdi),%edx - 4166f6: 81 e2 00 0c 00 00 and $0xc00,%edx - 4166fc: 81 fa 00 0c 00 00 cmp $0xc00,%edx - 416702: 74 14 je 416718 <_IO_str_underflow+0x38> - 416704: 48 8b 47 08 mov 0x8(%rdi),%rax - 416708: 48 39 c8 cmp %rcx,%rax - 41670b: 73 23 jae 416730 <_IO_str_underflow+0x50> - 41670d: 0f b6 00 movzbl (%rax),%eax - 416710: c3 retq - 416711: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 416718: 48 8b 57 30 mov 0x30(%rdi),%rdx - 41671c: 81 27 ff f7 ff ff andl $0xfffff7ff,(%rdi) - 416722: 48 89 47 08 mov %rax,0x8(%rdi) - 416726: 48 89 57 28 mov %rdx,0x28(%rdi) - 41672a: eb dc jmp 416708 <_IO_str_underflow+0x28> - 41672c: 0f 1f 40 00 nopl 0x0(%rax) - 416730: b8 ff ff ff ff mov $0xffffffff,%eax - 416735: c3 retq - 416736: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41673d: 00 00 00 - -0000000000416740 <_IO_str_overflow>: - 416740: 8b 0f mov (%rdi),%ecx - 416742: f6 c1 08 test $0x8,%cl - 416745: 74 11 je 416758 <_IO_str_overflow+0x18> - 416747: 31 c0 xor %eax,%eax - 416749: 83 fe ff cmp $0xffffffff,%esi - 41674c: 0f 95 c0 setne %al - 41674f: f7 d8 neg %eax - 416751: c3 retq - 416752: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 416758: 41 57 push %r15 - 41675a: 89 c8 mov %ecx,%eax - 41675c: 41 56 push %r14 - 41675e: 41 55 push %r13 - 416760: 41 54 push %r12 - 416762: 25 00 0c 00 00 and $0xc00,%eax - 416767: 55 push %rbp - 416768: 53 push %rbx - 416769: 48 83 ec 08 sub $0x8,%rsp - 41676d: 3d 00 04 00 00 cmp $0x400,%eax - 416772: 0f 84 08 01 00 00 je 416880 <_IO_str_overflow+0x140> - 416778: 48 8b 57 28 mov 0x28(%rdi),%rdx - 41677c: 4c 8b 67 38 mov 0x38(%rdi),%r12 - 416780: 4c 8b 6f 40 mov 0x40(%rdi),%r13 - 416784: 89 f5 mov %esi,%ebp - 416786: 48 89 d6 mov %rdx,%rsi - 416789: 48 2b 77 20 sub 0x20(%rdi),%rsi - 41678d: 31 c0 xor %eax,%eax - 41678f: 48 89 fb mov %rdi,%rbx - 416792: 4d 29 e5 sub %r12,%r13 - 416795: 83 fd ff cmp $0xffffffff,%ebp - 416798: 0f 94 c0 sete %al - 41679b: 4c 01 e8 add %r13,%rax - 41679e: 48 39 c6 cmp %rax,%rsi - 4167a1: 0f 82 aa 00 00 00 jb 416851 <_IO_str_overflow+0x111> - 4167a7: 83 e1 01 and $0x1,%ecx - 4167aa: 0f 85 f0 00 00 00 jne 4168a0 <_IO_str_overflow+0x160> - 4167b0: 4f 8d 74 2d 64 lea 0x64(%r13,%r13,1),%r14 - 4167b5: 4d 39 f5 cmp %r14,%r13 - 4167b8: 0f 87 e2 00 00 00 ja 4168a0 <_IO_str_overflow+0x160> - 4167be: 4c 89 f7 mov %r14,%rdi - 4167c1: ff 93 e0 00 00 00 callq *0xe0(%rbx) - 4167c7: 48 85 c0 test %rax,%rax - 4167ca: 49 89 c7 mov %rax,%r15 - 4167cd: 0f 84 cd 00 00 00 je 4168a0 <_IO_str_overflow+0x160> - 4167d3: 4d 85 e4 test %r12,%r12 - 4167d6: 74 1f je 4167f7 <_IO_str_overflow+0xb7> - 4167d8: 4c 89 ea mov %r13,%rdx - 4167db: 4c 89 e6 mov %r12,%rsi - 4167de: 48 89 c7 mov %rax,%rdi - 4167e1: e8 3a 58 01 00 callq 42c020 - 4167e6: 4c 89 e7 mov %r12,%rdi - 4167e9: ff 93 e8 00 00 00 callq *0xe8(%rbx) - 4167ef: 48 c7 43 38 00 00 00 movq $0x0,0x38(%rbx) - 4167f6: 00 - 4167f7: 4b 8d 3c 2f lea (%r15,%r13,1),%rdi - 4167fb: 4c 89 f2 mov %r14,%rdx - 4167fe: 31 f6 xor %esi,%esi - 416800: 4c 29 ea sub %r13,%rdx - 416803: e8 48 9b fe ff callq 400350 <__rela_iplt_end+0x88> - 416808: 4b 8d 14 37 lea (%r15,%r14,1),%rdx - 41680c: b9 01 00 00 00 mov $0x1,%ecx - 416811: 4c 89 fe mov %r15,%rsi - 416814: 48 89 df mov %rbx,%rdi - 416817: e8 84 e5 ff ff callq 414da0 <_IO_setb> - 41681c: 4c 89 f8 mov %r15,%rax - 41681f: 4c 89 7b 20 mov %r15,0x20(%rbx) - 416823: 4c 29 e0 sub %r12,%rax - 416826: 48 01 43 18 add %rax,0x18(%rbx) - 41682a: 4c 89 f8 mov %r15,%rax - 41682d: 4c 29 e0 sub %r12,%rax - 416830: 48 01 43 08 add %rax,0x8(%rbx) - 416834: 4c 89 f8 mov %r15,%rax - 416837: 4c 29 e0 sub %r12,%rax - 41683a: 48 01 43 10 add %rax,0x10(%rbx) - 41683e: 48 89 c2 mov %rax,%rdx - 416841: 48 03 53 28 add 0x28(%rbx),%rdx - 416845: 48 8b 43 40 mov 0x40(%rbx),%rax - 416849: 48 89 53 28 mov %rdx,0x28(%rbx) - 41684d: 48 89 43 30 mov %rax,0x30(%rbx) - 416851: 83 fd ff cmp $0xffffffff,%ebp - 416854: 74 0f je 416865 <_IO_str_overflow+0x125> - 416856: 48 8d 42 01 lea 0x1(%rdx),%rax - 41685a: 48 89 43 28 mov %rax,0x28(%rbx) - 41685e: 40 88 2a mov %bpl,(%rdx) - 416861: 48 8b 53 28 mov 0x28(%rbx),%rdx - 416865: 48 39 53 10 cmp %rdx,0x10(%rbx) - 416869: 89 e8 mov %ebp,%eax - 41686b: 73 04 jae 416871 <_IO_str_overflow+0x131> - 41686d: 48 89 53 10 mov %rdx,0x10(%rbx) - 416871: 48 83 c4 08 add $0x8,%rsp - 416875: 5b pop %rbx - 416876: 5d pop %rbp - 416877: 41 5c pop %r12 - 416879: 41 5d pop %r13 - 41687b: 41 5e pop %r14 - 41687d: 41 5f pop %r15 - 41687f: c3 retq - 416880: 48 8b 57 08 mov 0x8(%rdi),%rdx - 416884: 48 8b 47 10 mov 0x10(%rdi),%rax - 416888: 80 cd 08 or $0x8,%ch - 41688b: 89 0f mov %ecx,(%rdi) - 41688d: 48 89 57 28 mov %rdx,0x28(%rdi) - 416891: 48 89 47 08 mov %rax,0x8(%rdi) - 416895: e9 e2 fe ff ff jmpq 41677c <_IO_str_overflow+0x3c> - 41689a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4168a0: b8 ff ff ff ff mov $0xffffffff,%eax - 4168a5: eb ca jmp 416871 <_IO_str_overflow+0x131> - 4168a7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4168ae: 00 00 - -00000000004168b0 : - 4168b0: 41 57 push %r15 - 4168b2: 41 56 push %r14 - 4168b4: 41 55 push %r13 - 4168b6: 41 54 push %r12 - 4168b8: 55 push %rbp - 4168b9: 53 push %rbx - 4168ba: 48 83 ec 28 sub $0x28,%rsp - 4168be: 4c 8b 77 38 mov 0x38(%rdi),%r14 - 4168c2: 48 8b 47 40 mov 0x40(%rdi),%rax - 4168c6: 4c 29 f0 sub %r14,%rax - 4168c9: 48 39 f0 cmp %rsi,%rax - 4168cc: 0f 8d fe 00 00 00 jge 4169d0 - 4168d2: 44 8b 3f mov (%rdi),%r15d - 4168d5: 41 83 e7 01 and $0x1,%r15d - 4168d9: 74 1d je 4168f8 - 4168db: 41 bf 01 00 00 00 mov $0x1,%r15d - 4168e1: 48 83 c4 28 add $0x28,%rsp - 4168e5: 44 89 f8 mov %r15d,%eax - 4168e8: 5b pop %rbx - 4168e9: 5d pop %rbp - 4168ea: 41 5c pop %r12 - 4168ec: 41 5d pop %r13 - 4168ee: 41 5e pop %r14 - 4168f0: 41 5f pop %r15 - 4168f2: c3 retq - 4168f3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4168f8: 48 8b 47 20 mov 0x20(%rdi),%rax - 4168fc: 48 89 fb mov %rdi,%rbx - 4168ff: 4c 8b 67 30 mov 0x30(%rdi),%r12 - 416903: 89 54 24 1c mov %edx,0x1c(%rsp) - 416907: 48 89 f5 mov %rsi,%rbp - 41690a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 41690f: 48 8d 46 64 lea 0x64(%rsi),%rax - 416913: 48 89 44 24 10 mov %rax,0x10(%rsp) - 416918: 48 89 c7 mov %rax,%rdi - 41691b: ff 93 e0 00 00 00 callq *0xe0(%rbx) - 416921: 48 85 c0 test %rax,%rax - 416924: 49 89 c5 mov %rax,%r13 - 416927: 74 b2 je 4168db - 416929: 4d 85 f6 test %r14,%r14 - 41692c: 74 24 je 416952 - 41692e: 48 8b 53 40 mov 0x40(%rbx),%rdx - 416932: 48 2b 53 38 sub 0x38(%rbx),%rdx - 416936: 4c 89 f6 mov %r14,%rsi - 416939: 48 89 c7 mov %rax,%rdi - 41693c: e8 df 56 01 00 callq 42c020 - 416941: 4c 89 f7 mov %r14,%rdi - 416944: ff 93 e8 00 00 00 callq *0xe8(%rbx) - 41694a: 48 c7 43 38 00 00 00 movq $0x0,0x38(%rbx) - 416951: 00 - 416952: 48 8b 54 24 10 mov 0x10(%rsp),%rdx - 416957: b9 01 00 00 00 mov $0x1,%ecx - 41695c: 4c 89 ee mov %r13,%rsi - 41695f: 48 89 df mov %rbx,%rdi - 416962: 4c 2b 64 24 08 sub 0x8(%rsp),%r12 - 416967: 4c 01 ea add %r13,%rdx - 41696a: e8 31 e4 ff ff callq 414da0 <_IO_setb> - 41696f: 8b 54 24 1c mov 0x1c(%rsp),%edx - 416973: 4c 89 e8 mov %r13,%rax - 416976: 4c 29 f0 sub %r14,%rax - 416979: 85 d2 test %edx,%edx - 41697b: 75 63 jne 4169e0 - 41697d: 48 01 43 18 add %rax,0x18(%rbx) - 416981: 4c 89 e8 mov %r13,%rax - 416984: 4c 89 6b 20 mov %r13,0x20(%rbx) - 416988: 4c 29 f0 sub %r14,%rax - 41698b: 48 01 43 08 add %rax,0x8(%rbx) - 41698f: 4c 89 e8 mov %r13,%rax - 416992: 4c 29 f0 sub %r14,%rax - 416995: 48 01 43 10 add %rax,0x10(%rbx) - 416999: 4c 89 e8 mov %r13,%rax - 41699c: 4c 29 f0 sub %r14,%rax - 41699f: 48 01 43 28 add %rax,0x28(%rbx) - 4169a3: 4c 39 e5 cmp %r12,%rbp - 4169a6: 48 8b 43 40 mov 0x40(%rbx),%rax - 4169aa: 48 89 43 30 mov %rax,0x30(%rbx) - 4169ae: 7c 63 jl 416a13 - 4169b0: 48 89 ea mov %rbp,%rdx - 4169b3: 4b 8d 7c 25 00 lea 0x0(%r13,%r12,1),%rdi - 4169b8: 31 f6 xor %esi,%esi - 4169ba: 4c 29 e2 sub %r12,%rdx - 4169bd: e8 8e 99 fe ff callq 400350 <__rela_iplt_end+0x88> - 4169c2: e9 1a ff ff ff jmpq 4168e1 - 4169c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4169ce: 00 00 - 4169d0: 45 31 ff xor %r15d,%r15d - 4169d3: e9 09 ff ff ff jmpq 4168e1 - 4169d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4169df: 00 - 4169e0: 48 01 43 20 add %rax,0x20(%rbx) - 4169e4: 4c 89 e8 mov %r13,%rax - 4169e7: 4c 89 6b 18 mov %r13,0x18(%rbx) - 4169eb: 4c 29 f0 sub %r14,%rax - 4169ee: 48 01 43 28 add %rax,0x28(%rbx) - 4169f2: 4c 89 e8 mov %r13,%rax - 4169f5: 4c 29 f0 sub %r14,%rax - 4169f8: 48 01 43 30 add %rax,0x30(%rbx) - 4169fc: 4c 89 e8 mov %r13,%rax - 4169ff: 4c 29 f0 sub %r14,%rax - 416a02: 48 01 43 08 add %rax,0x8(%rbx) - 416a06: 4c 39 e5 cmp %r12,%rbp - 416a09: 48 8b 43 40 mov 0x40(%rbx),%rax - 416a0d: 48 89 43 10 mov %rax,0x10(%rbx) - 416a11: 7d 9d jge 4169b0 - 416a13: b9 f0 1e 4a 00 mov $0x4a1ef0,%ecx - 416a18: ba e0 00 00 00 mov $0xe0,%edx - 416a1d: be c8 1e 4a 00 mov $0x4a1ec8,%esi - 416a22: bf d1 1e 4a 00 mov $0x4a1ed1,%edi - 416a27: e8 14 ad fe ff callq 401740 <__assert_fail> - 416a2c: 0f 1f 40 00 nopl 0x0(%rax) - -0000000000416a30 <_IO_str_seekoff>: - 416a30: 41 55 push %r13 - 416a32: 41 54 push %r12 - 416a34: 41 89 d5 mov %edx,%r13d - 416a37: 55 push %rbp - 416a38: 53 push %rbx - 416a39: 49 89 f4 mov %rsi,%r12 - 416a3c: 48 89 fb mov %rdi,%rbx - 416a3f: 48 83 ec 18 sub $0x18,%rsp - 416a43: 85 c9 test %ecx,%ecx - 416a45: 0f 85 85 00 00 00 jne 416ad0 <_IO_str_seekoff+0xa0> - 416a4b: 8b 07 mov (%rdi),%eax - 416a4d: f6 c4 04 test $0x4,%ah - 416a50: 74 5e je 416ab0 <_IO_str_seekoff+0x80> - 416a52: f6 c4 08 test $0x8,%ah - 416a55: 0f 84 b5 00 00 00 je 416b10 <_IO_str_seekoff+0xe0> - 416a5b: 48 8b 6f 28 mov 0x28(%rdi),%rbp - 416a5f: 48 39 6f 10 cmp %rbp,0x10(%rdi) - 416a63: 48 0f 43 6f 10 cmovae 0x10(%rdi),%rbp - 416a68: 48 2b 6f 18 sub 0x18(%rdi),%rbp - 416a6c: 41 83 fd 01 cmp $0x1,%r13d - 416a70: 0f 84 12 01 00 00 je 416b88 <_IO_str_seekoff+0x158> - 416a76: 49 8d 04 2c lea (%r12,%rbp,1),%rax - 416a7a: 41 83 fd 02 cmp $0x2,%r13d - 416a7e: 4c 0f 44 e0 cmove %rax,%r12 - 416a82: 4d 85 e4 test %r12,%r12 - 416a85: 0f 88 2a 01 00 00 js 416bb5 <_IO_str_seekoff+0x185> - 416a8b: 49 39 ec cmp %rbp,%r12 - 416a8e: 0f 8f 0c 01 00 00 jg 416ba0 <_IO_str_seekoff+0x170> - 416a94: 4c 89 e0 mov %r12,%rax - 416a97: 48 03 43 20 add 0x20(%rbx),%rax - 416a9b: 48 89 43 28 mov %rax,0x28(%rbx) - 416a9f: 48 83 c4 18 add $0x18,%rsp - 416aa3: 4c 89 e0 mov %r12,%rax - 416aa6: 5b pop %rbx - 416aa7: 5d pop %rbp - 416aa8: 41 5c pop %r12 - 416aaa: 41 5d pop %r13 - 416aac: c3 retq - 416aad: 0f 1f 00 nopl (%rax) - 416ab0: a8 08 test $0x8,%al - 416ab2: 0f 85 a8 00 00 00 jne 416b60 <_IO_str_seekoff+0x130> - 416ab8: 48 8b 43 28 mov 0x28(%rbx),%rax - 416abc: 48 2b 43 20 sub 0x20(%rbx),%rax - 416ac0: 48 83 c4 18 add $0x18,%rsp - 416ac4: 5b pop %rbx - 416ac5: 5d pop %rbp - 416ac6: 41 5c pop %r12 - 416ac8: 41 5d pop %r13 - 416aca: c3 retq - 416acb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 416ad0: 48 8b 6f 28 mov 0x28(%rdi),%rbp - 416ad4: 48 39 6f 10 cmp %rbp,0x10(%rdi) - 416ad8: 48 0f 43 6f 10 cmovae 0x10(%rdi),%rbp - 416add: 48 8b 47 18 mov 0x18(%rdi),%rax - 416ae1: 48 29 c5 sub %rax,%rbp - 416ae4: f6 c1 01 test $0x1,%cl - 416ae7: 75 40 jne 416b29 <_IO_str_seekoff+0xf9> - 416ae9: 83 e1 02 and $0x2,%ecx - 416aec: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 416af3: 85 c9 test %ecx,%ecx - 416af5: 0f 85 71 ff ff ff jne 416a6c <_IO_str_seekoff+0x3c> - 416afb: 48 83 c4 18 add $0x18,%rsp - 416aff: 5b pop %rbx - 416b00: 5d pop %rbp - 416b01: 41 5c pop %r12 - 416b03: 41 5d pop %r13 - 416b05: c3 retq - 416b06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 416b0d: 00 00 00 - 416b10: 48 8b 6f 28 mov 0x28(%rdi),%rbp - 416b14: 48 39 6f 10 cmp %rbp,0x10(%rdi) - 416b18: b9 01 00 00 00 mov $0x1,%ecx - 416b1d: 48 0f 43 6f 10 cmovae 0x10(%rdi),%rbp - 416b22: 48 8b 47 18 mov 0x18(%rdi),%rax - 416b26: 48 29 c5 sub %rax,%rbp - 416b29: 41 83 fd 01 cmp $0x1,%r13d - 416b2d: 74 49 je 416b78 <_IO_str_seekoff+0x148> - 416b2f: 49 8d 14 2c lea (%r12,%rbp,1),%rdx - 416b33: 41 83 fd 02 cmp $0x2,%r13d - 416b37: 4c 0f 44 e2 cmove %rdx,%r12 - 416b3b: 4d 85 e4 test %r12,%r12 - 416b3e: 78 75 js 416bb5 <_IO_str_seekoff+0x185> - 416b40: 49 39 ec cmp %rbp,%r12 - 416b43: 0f 8f 7f 00 00 00 jg 416bc8 <_IO_str_seekoff+0x198> - 416b49: 4a 8d 14 20 lea (%rax,%r12,1),%rdx - 416b4d: 48 01 e8 add %rbp,%rax - 416b50: 83 e1 02 and $0x2,%ecx - 416b53: 48 89 43 10 mov %rax,0x10(%rbx) - 416b57: 4c 89 e0 mov %r12,%rax - 416b5a: 48 89 53 08 mov %rdx,0x8(%rbx) - 416b5e: eb 93 jmp 416af3 <_IO_str_seekoff+0xc3> - 416b60: 48 8b 43 08 mov 0x8(%rbx),%rax - 416b64: 48 2b 43 18 sub 0x18(%rbx),%rax - 416b68: 48 83 c4 18 add $0x18,%rsp - 416b6c: 5b pop %rbx - 416b6d: 5d pop %rbp - 416b6e: 41 5c pop %r12 - 416b70: 41 5d pop %r13 - 416b72: c3 retq - 416b73: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 416b78: 48 8b 53 08 mov 0x8(%rbx),%rdx - 416b7c: 48 29 c2 sub %rax,%rdx - 416b7f: 49 01 d4 add %rdx,%r12 - 416b82: eb b7 jmp 416b3b <_IO_str_seekoff+0x10b> - 416b84: 0f 1f 40 00 nopl 0x0(%rax) - 416b88: 48 8b 43 28 mov 0x28(%rbx),%rax - 416b8c: 48 2b 43 20 sub 0x20(%rbx),%rax - 416b90: 49 01 c4 add %rax,%r12 - 416b93: e9 ea fe ff ff jmpq 416a82 <_IO_str_seekoff+0x52> - 416b98: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 416b9f: 00 - 416ba0: 31 d2 xor %edx,%edx - 416ba2: 4c 89 e6 mov %r12,%rsi - 416ba5: 48 89 df mov %rbx,%rdi - 416ba8: e8 03 fd ff ff callq 4168b0 - 416bad: 85 c0 test %eax,%eax - 416baf: 0f 84 df fe ff ff je 416a94 <_IO_str_seekoff+0x64> - 416bb5: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 416bbc: e9 ff fe ff ff jmpq 416ac0 <_IO_str_seekoff+0x90> - 416bc1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 416bc8: ba 01 00 00 00 mov $0x1,%edx - 416bcd: 4c 89 e6 mov %r12,%rsi - 416bd0: 48 89 df mov %rbx,%rdi - 416bd3: 89 4c 24 0c mov %ecx,0xc(%rsp) - 416bd7: e8 d4 fc ff ff callq 4168b0 - 416bdc: 85 c0 test %eax,%eax - 416bde: 75 d5 jne 416bb5 <_IO_str_seekoff+0x185> - 416be0: 48 8b 43 18 mov 0x18(%rbx),%rax - 416be4: 8b 4c 24 0c mov 0xc(%rsp),%ecx - 416be8: e9 5c ff ff ff jmpq 416b49 <_IO_str_seekoff+0x119> - 416bed: 0f 1f 00 nopl (%rax) - -0000000000416bf0 <_IO_str_pbackfail>: - 416bf0: f6 07 08 testb $0x8,(%rdi) - 416bf3: 74 05 je 416bfa <_IO_str_pbackfail+0xa> - 416bf5: 83 fe ff cmp $0xffffffff,%esi - 416bf8: 75 06 jne 416c00 <_IO_str_pbackfail+0x10> - 416bfa: e9 11 f8 ff ff jmpq 416410 <_IO_default_pbackfail> - 416bff: 90 nop - 416c00: b8 ff ff ff ff mov $0xffffffff,%eax - 416c05: c3 retq - 416c06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 416c0d: 00 00 00 - -0000000000416c10 <_IO_str_finish>: - 416c10: 53 push %rbx - 416c11: 48 89 fb mov %rdi,%rbx - 416c14: 48 8b 7f 38 mov 0x38(%rdi),%rdi - 416c18: 48 85 ff test %rdi,%rdi - 416c1b: 74 0b je 416c28 <_IO_str_finish+0x18> - 416c1d: f6 03 01 testb $0x1,(%rbx) - 416c20: 75 06 jne 416c28 <_IO_str_finish+0x18> - 416c22: ff 93 e8 00 00 00 callq *0xe8(%rbx) - 416c28: 48 c7 43 38 00 00 00 movq $0x0,0x38(%rbx) - 416c2f: 00 - 416c30: 48 89 df mov %rbx,%rdi - 416c33: 31 f6 xor %esi,%esi - 416c35: 5b pop %rbx - 416c36: e9 d5 e9 ff ff jmpq 415610 <_IO_default_finish> - 416c3b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -0000000000416c40 <_IO_str_init_static_internal>: - 416c40: 41 55 push %r13 - 416c42: 41 54 push %r12 - 416c44: 49 89 cd mov %rcx,%r13 - 416c47: 55 push %rbp - 416c48: 53 push %rbx - 416c49: 49 89 f4 mov %rsi,%r12 - 416c4c: 48 89 fb mov %rdi,%rbx - 416c4f: 48 83 ec 08 sub $0x8,%rsp - 416c53: 48 85 d2 test %rdx,%rdx - 416c56: 75 58 jne 416cb0 <_IO_str_init_static_internal+0x70> - 416c58: 31 f6 xor %esi,%esi - 416c5a: 4c 89 e7 mov %r12,%rdi - 416c5d: e8 6e 5d 01 00 callq 42c9d0 <__rawmemchr> - 416c62: 48 89 c5 mov %rax,%rbp - 416c65: 31 c9 xor %ecx,%ecx - 416c67: 48 89 ea mov %rbp,%rdx - 416c6a: 4c 89 e6 mov %r12,%rsi - 416c6d: 48 89 df mov %rbx,%rdi - 416c70: e8 2b e1 ff ff callq 414da0 <_IO_setb> - 416c75: 4d 85 ed test %r13,%r13 - 416c78: 4c 89 63 20 mov %r12,0x20(%rbx) - 416c7c: 4c 89 63 18 mov %r12,0x18(%rbx) - 416c80: 4c 89 63 08 mov %r12,0x8(%rbx) - 416c84: 74 42 je 416cc8 <_IO_str_init_static_internal+0x88> - 416c86: 4c 89 6b 28 mov %r13,0x28(%rbx) - 416c8a: 48 89 6b 30 mov %rbp,0x30(%rbx) - 416c8e: 4c 89 6b 10 mov %r13,0x10(%rbx) - 416c92: 48 c7 83 e0 00 00 00 movq $0x0,0xe0(%rbx) - 416c99: 00 00 00 00 - 416c9d: 48 83 c4 08 add $0x8,%rsp - 416ca1: 5b pop %rbx - 416ca2: 5d pop %rbp - 416ca3: 41 5c pop %r12 - 416ca5: 41 5d pop %r13 - 416ca7: c3 retq - 416ca8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 416caf: 00 - 416cb0: 48 01 f2 add %rsi,%rdx - 416cb3: 48 c7 c5 ff ff ff ff mov $0xffffffffffffffff,%rbp - 416cba: 48 39 d6 cmp %rdx,%rsi - 416cbd: 48 0f 42 ea cmovb %rdx,%rbp - 416cc1: eb a2 jmp 416c65 <_IO_str_init_static_internal+0x25> - 416cc3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 416cc8: 4c 89 63 28 mov %r12,0x28(%rbx) - 416ccc: 4c 89 63 30 mov %r12,0x30(%rbx) - 416cd0: 48 89 6b 10 mov %rbp,0x10(%rbx) - 416cd4: eb bc jmp 416c92 <_IO_str_init_static_internal+0x52> - 416cd6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 416cdd: 00 00 00 - -0000000000416ce0 <_IO_str_init_static>: - 416ce0: 41 55 push %r13 - 416ce2: 41 54 push %r12 - 416ce4: 49 89 cd mov %rcx,%r13 - 416ce7: 55 push %rbp - 416ce8: 53 push %rbx - 416ce9: bb ff ff ff ff mov $0xffffffff,%ebx - 416cee: 48 89 fd mov %rdi,%rbp - 416cf1: 49 89 f4 mov %rsi,%r12 - 416cf4: 48 83 ec 08 sub $0x8,%rsp - 416cf8: 85 d2 test %edx,%edx - 416cfa: 0f 48 d3 cmovs %ebx,%edx - 416cfd: 48 63 d2 movslq %edx,%rdx - 416d00: 48 85 d2 test %rdx,%rdx - 416d03: 75 53 jne 416d58 <_IO_str_init_static+0x78> - 416d05: 31 f6 xor %esi,%esi - 416d07: 4c 89 e7 mov %r12,%rdi - 416d0a: e8 c1 5c 01 00 callq 42c9d0 <__rawmemchr> - 416d0f: 48 89 c3 mov %rax,%rbx - 416d12: 31 c9 xor %ecx,%ecx - 416d14: 48 89 da mov %rbx,%rdx - 416d17: 4c 89 e6 mov %r12,%rsi - 416d1a: 48 89 ef mov %rbp,%rdi - 416d1d: e8 7e e0 ff ff callq 414da0 <_IO_setb> - 416d22: 4d 85 ed test %r13,%r13 - 416d25: 4c 89 65 20 mov %r12,0x20(%rbp) - 416d29: 4c 89 65 18 mov %r12,0x18(%rbp) - 416d2d: 4c 89 65 08 mov %r12,0x8(%rbp) - 416d31: 74 3d je 416d70 <_IO_str_init_static+0x90> - 416d33: 4c 89 6d 28 mov %r13,0x28(%rbp) - 416d37: 48 89 5d 30 mov %rbx,0x30(%rbp) - 416d3b: 4c 89 6d 10 mov %r13,0x10(%rbp) - 416d3f: 48 c7 85 e0 00 00 00 movq $0x0,0xe0(%rbp) - 416d46: 00 00 00 00 - 416d4a: 48 83 c4 08 add $0x8,%rsp - 416d4e: 5b pop %rbx - 416d4f: 5d pop %rbp - 416d50: 41 5c pop %r12 - 416d52: 41 5d pop %r13 - 416d54: c3 retq - 416d55: 0f 1f 00 nopl (%rax) - 416d58: 48 01 f2 add %rsi,%rdx - 416d5b: 48 c7 c3 ff ff ff ff mov $0xffffffffffffffff,%rbx - 416d62: 48 39 d6 cmp %rdx,%rsi - 416d65: 48 0f 42 da cmovb %rdx,%rbx - 416d69: eb a7 jmp 416d12 <_IO_str_init_static+0x32> - 416d6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 416d70: 4c 89 65 28 mov %r12,0x28(%rbp) - 416d74: 4c 89 65 30 mov %r12,0x30(%rbp) - 416d78: 48 89 5d 10 mov %rbx,0x10(%rbp) - 416d7c: eb c1 jmp 416d3f <_IO_str_init_static+0x5f> - 416d7e: 66 90 xchg %ax,%ax - -0000000000416d80 <_IO_str_init_readonly>: - 416d80: 41 54 push %r12 - 416d82: 85 d2 test %edx,%edx - 416d84: 55 push %rbp - 416d85: 53 push %rbx - 416d86: bb ff ff ff ff mov $0xffffffff,%ebx - 416d8b: 48 89 fd mov %rdi,%rbp - 416d8e: 0f 48 d3 cmovs %ebx,%edx - 416d91: 49 89 f4 mov %rsi,%r12 - 416d94: 48 63 d2 movslq %edx,%rdx - 416d97: 48 85 d2 test %rdx,%rdx - 416d9a: 75 4c jne 416de8 <_IO_str_init_readonly+0x68> - 416d9c: 31 f6 xor %esi,%esi - 416d9e: 4c 89 e7 mov %r12,%rdi - 416da1: e8 2a 5c 01 00 callq 42c9d0 <__rawmemchr> - 416da6: 48 89 c3 mov %rax,%rbx - 416da9: 48 89 da mov %rbx,%rdx - 416dac: 4c 89 e6 mov %r12,%rsi - 416daf: 48 89 ef mov %rbp,%rdi - 416db2: 31 c9 xor %ecx,%ecx - 416db4: e8 e7 df ff ff callq 414da0 <_IO_setb> - 416db9: 83 4d 00 08 orl $0x8,0x0(%rbp) - 416dbd: 4c 89 65 20 mov %r12,0x20(%rbp) - 416dc1: 4c 89 65 18 mov %r12,0x18(%rbp) - 416dc5: 4c 89 65 08 mov %r12,0x8(%rbp) - 416dc9: 4c 89 65 28 mov %r12,0x28(%rbp) - 416dcd: 4c 89 65 30 mov %r12,0x30(%rbp) - 416dd1: 48 89 5d 10 mov %rbx,0x10(%rbp) - 416dd5: 48 c7 85 e0 00 00 00 movq $0x0,0xe0(%rbp) - 416ddc: 00 00 00 00 - 416de0: 5b pop %rbx - 416de1: 5d pop %rbp - 416de2: 41 5c pop %r12 - 416de4: c3 retq - 416de5: 0f 1f 00 nopl (%rax) - 416de8: 48 01 f2 add %rsi,%rdx - 416deb: 48 c7 c3 ff ff ff ff mov $0xffffffffffffffff,%rbx - 416df2: 48 39 d6 cmp %rdx,%rsi - 416df5: 48 0f 42 da cmovb %rdx,%rbx - 416df9: eb ae jmp 416da9 <_IO_str_init_readonly+0x29> - 416dfb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -0000000000416e00 <_IO_str_count>: - 416e00: 48 8b 47 28 mov 0x28(%rdi),%rax - 416e04: 48 39 47 10 cmp %rax,0x10(%rdi) - 416e08: 48 0f 43 47 10 cmovae 0x10(%rdi),%rax - 416e0d: 48 2b 47 18 sub 0x18(%rdi),%rax - 416e11: c3 retq - 416e12: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 416e19: 00 00 00 - 416e1c: 0f 1f 40 00 nopl 0x0(%rax) - -0000000000416e20 <__malloc_assert>: - 416e20: 48 83 ec 10 sub $0x10,%rsp - 416e24: 41 89 d1 mov %edx,%r9d - 416e27: 48 8b 15 b2 42 2b 00 mov 0x2b42b2(%rip),%rdx # 6cb0e0 <__progname> - 416e2e: 41 bb 25 67 4b 00 mov $0x4b6725,%r11d - 416e34: 41 ba 6f 52 4b 00 mov $0x4b526f,%r10d - 416e3a: 48 85 c9 test %rcx,%rcx - 416e3d: 49 89 f0 mov %rsi,%r8 - 416e40: 48 89 c8 mov %rcx,%rax - 416e43: 4c 89 de mov %r11,%rsi - 416e46: 49 0f 45 f2 cmovne %r10,%rsi - 416e4a: 49 0f 44 c3 cmove %r11,%rax - 416e4e: 80 3a 00 cmpb $0x0,(%rdx) - 416e51: 4c 89 d9 mov %r11,%rcx - 416e54: 57 push %rdi - 416e55: 56 push %rsi - 416e56: 50 push %rax - 416e57: be 20 23 4a 00 mov $0x4a2320,%esi - 416e5c: 49 0f 45 ca cmovne %r10,%rcx - 416e60: 31 ff xor %edi,%edi - 416e62: 31 c0 xor %eax,%eax - 416e64: e8 27 85 ff ff callq 40f390 <__fxprintf> - 416e69: 48 8b 3d c8 38 2b 00 mov 0x2b38c8(%rip),%rdi # 6ca738 <_IO_stderr> - 416e70: 48 83 c4 20 add $0x20,%rsp - 416e74: e8 c7 88 ff ff callq 40f740 <_IO_fflush> - 416e79: e8 82 6d ff ff callq 40dc00 - 416e7e: 66 90 xchg %ax,%ax - -0000000000416e80 : - 416e80: 48 01 fe add %rdi,%rsi - 416e83: 41 54 push %r12 - 416e85: 48 8b 05 f4 42 2b 00 mov 0x2b42f4(%rip),%rax # 6cb180 <_dl_pagesize> - 416e8c: 48 81 fe ff 7f 00 00 cmp $0x7fff,%rsi - 416e93: 55 push %rbp - 416e94: 53 push %rbx - 416e95: 0f 86 f5 00 00 00 jbe 416f90 - 416e9b: 48 81 fe 00 00 00 04 cmp $0x4000000,%rsi - 416ea2: 0f 87 f8 00 00 00 ja 416fa0 - 416ea8: 48 8b 3d 61 57 2b 00 mov 0x2b5761(%rip),%rdi # 6cc610 - 416eaf: 48 8d 6c 06 ff lea -0x1(%rsi,%rax,1),%rbp - 416eb4: 48 f7 d8 neg %rax - 416eb7: 48 21 c5 and %rax,%rbp - 416eba: 48 85 ff test %rdi,%rdi - 416ebd: 74 6e je 416f2d - 416ebf: 45 31 c9 xor %r9d,%r9d - 416ec2: 31 d2 xor %edx,%edx - 416ec4: 41 b8 ff ff ff ff mov $0xffffffff,%r8d - 416eca: b9 22 40 00 00 mov $0x4022,%ecx - 416ecf: be 00 00 00 04 mov $0x4000000,%esi - 416ed4: e8 17 8d 02 00 callq 43fbf0 <__mmap> - 416ed9: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 416edd: 48 89 c3 mov %rax,%rbx - 416ee0: 48 c7 05 25 57 2b 00 movq $0x0,0x2b5725(%rip) # 6cc610 - 416ee7: 00 00 00 00 - 416eeb: 74 40 je 416f2d - 416eed: a9 ff ff ff 03 test $0x3ffffff,%eax - 416ef2: 75 2c jne 416f20 - 416ef4: ba 03 00 00 00 mov $0x3,%edx - 416ef9: 48 89 ee mov %rbp,%rsi - 416efc: 48 89 df mov %rbx,%rdi - 416eff: e8 cc 8d 02 00 callq 43fcd0 <__mprotect> - 416f04: 85 c0 test %eax,%eax - 416f06: 0f 85 fc 00 00 00 jne 417008 - 416f0c: 48 89 6b 10 mov %rbp,0x10(%rbx) - 416f10: 48 89 6b 18 mov %rbp,0x18(%rbx) - 416f14: 90 nop - 416f15: 48 89 d8 mov %rbx,%rax - 416f18: 5b pop %rbx - 416f19: 5d pop %rbp - 416f1a: 41 5c pop %r12 - 416f1c: c3 retq - 416f1d: 0f 1f 00 nopl (%rax) - 416f20: be 00 00 00 04 mov $0x4000000,%esi - 416f25: 48 89 c7 mov %rax,%rdi - 416f28: e8 83 8d 02 00 callq 43fcb0 <__munmap> - 416f2d: 45 31 c9 xor %r9d,%r9d - 416f30: 31 d2 xor %edx,%edx - 416f32: 31 ff xor %edi,%edi - 416f34: 41 b8 ff ff ff ff mov $0xffffffff,%r8d - 416f3a: b9 22 40 00 00 mov $0x4022,%ecx - 416f3f: be 00 00 00 08 mov $0x8000000,%esi - 416f44: e8 a7 8c 02 00 callq 43fbf0 <__mmap> - 416f49: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 416f4d: 0f 84 85 00 00 00 je 416fd8 - 416f53: 48 8d 98 ff ff ff 03 lea 0x3ffffff(%rax),%rbx - 416f5a: 48 81 e3 00 00 00 fc and $0xfffffffffc000000,%rbx - 416f61: 49 89 dc mov %rbx,%r12 - 416f64: 49 29 c4 sub %rax,%r12 - 416f67: 75 57 jne 416fc0 - 416f69: 48 8d bb 00 00 00 04 lea 0x4000000(%rbx),%rdi - 416f70: 48 89 3d 99 56 2b 00 mov %rdi,0x2b5699(%rip) # 6cc610 - 416f77: be 00 00 00 04 mov $0x4000000,%esi - 416f7c: 4c 29 e6 sub %r12,%rsi - 416f7f: e8 2c 8d 02 00 callq 43fcb0 <__munmap> - 416f84: e9 6b ff ff ff jmpq 416ef4 - 416f89: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 416f90: be 00 80 00 00 mov $0x8000,%esi - 416f95: e9 0e ff ff ff jmpq 416ea8 - 416f9a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 416fa0: 48 81 ff 00 00 00 04 cmp $0x4000000,%rdi - 416fa7: be 00 00 00 04 mov $0x4000000,%esi - 416fac: 0f 86 f6 fe ff ff jbe 416ea8 - 416fb2: 31 c0 xor %eax,%eax - 416fb4: e9 5f ff ff ff jmpq 416f18 - 416fb9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 416fc0: 48 89 c7 mov %rax,%rdi - 416fc3: 4c 89 e6 mov %r12,%rsi - 416fc6: e8 e5 8c 02 00 callq 43fcb0 <__munmap> - 416fcb: 48 8d bb 00 00 00 04 lea 0x4000000(%rbx),%rdi - 416fd2: eb a3 jmp 416f77 - 416fd4: 0f 1f 40 00 nopl 0x0(%rax) - 416fd8: 45 31 c9 xor %r9d,%r9d - 416fdb: 31 d2 xor %edx,%edx - 416fdd: 31 ff xor %edi,%edi - 416fdf: 41 89 c0 mov %eax,%r8d - 416fe2: b9 22 40 00 00 mov $0x4022,%ecx - 416fe7: be 00 00 00 04 mov $0x4000000,%esi - 416fec: e8 ff 8b 02 00 callq 43fbf0 <__mmap> - 416ff1: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 416ff5: 48 89 c3 mov %rax,%rbx - 416ff8: 74 b8 je 416fb2 - 416ffa: a9 ff ff ff 03 test $0x3ffffff,%eax - 416fff: 0f 84 ef fe ff ff je 416ef4 - 417005: 0f 1f 00 nopl (%rax) - 417008: be 00 00 00 04 mov $0x4000000,%esi - 41700d: 48 89 df mov %rbx,%rdi - 417010: e8 9b 8c 02 00 callq 43fcb0 <__munmap> - 417015: 31 c0 xor %eax,%eax - 417017: e9 fc fe ff ff jmpq 416f18 - 41701c: 0f 1f 40 00 nopl 0x0(%rax) - -0000000000417020 : - 417020: 41 55 push %r13 - 417022: 41 54 push %r12 - 417024: 55 push %rbp - 417025: 53 push %rbx - 417026: 48 83 ec 08 sub $0x8,%rsp - 41702a: 48 8b 57 08 mov 0x8(%rdi),%rdx - 41702e: 48 8b 05 4b 41 2b 00 mov 0x2b414b(%rip),%rax # 6cb180 <_dl_pagesize> - 417035: 48 8b 2f mov (%rdi),%rbp - 417038: 49 89 d5 mov %rdx,%r13 - 41703b: 49 83 e5 f8 and $0xfffffffffffffff8,%r13 - 41703f: 83 e2 02 and $0x2,%edx - 417042: 0f 84 c5 00 00 00 je 41710d - 417048: 4e 8d 64 2d 00 lea 0x0(%rbp,%r13,1),%r12 - 41704d: 48 8d 50 ff lea -0x1(%rax),%rdx - 417051: 4c 85 e2 test %r12,%rdx - 417054: 0f 85 9a 00 00 00 jne 4170f4 - 41705a: 48 8d 5c 28 07 lea 0x7(%rax,%rbp,1),%rbx - 41705f: 48 f7 d8 neg %rax - 417062: 48 01 f3 add %rsi,%rbx - 417065: 48 21 c3 and %rax,%rbx - 417068: 49 39 dc cmp %rbx,%r12 - 41706b: 74 6f je 4170dc - 41706d: 48 29 ef sub %rbp,%rdi - 417070: 31 c0 xor %eax,%eax - 417072: b9 01 00 00 00 mov $0x1,%ecx - 417077: 48 89 da mov %rbx,%rdx - 41707a: 4c 89 e6 mov %r12,%rsi - 41707d: e8 ce b4 02 00 callq 442550 <__mremap> - 417082: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 417086: 74 68 je 4170f0 - 417088: 48 8d 3c 28 lea (%rax,%rbp,1),%rdi - 41708c: 40 f6 c7 0f test $0xf,%dil - 417090: 0f 85 a9 00 00 00 jne 41713f - 417096: 48 3b 2f cmp (%rdi),%rbp - 417099: 0f 85 87 00 00 00 jne 417126 - 41709f: 48 89 d8 mov %rbx,%rax - 4170a2: 48 29 e8 sub %rbp,%rax - 4170a5: 48 83 c8 02 or $0x2,%rax - 4170a9: 48 89 47 08 mov %rax,0x8(%rdi) - 4170ad: 48 89 d8 mov %rbx,%rax - 4170b0: 4c 29 e8 sub %r13,%rax - 4170b3: 48 29 e8 sub %rbp,%rax - 4170b6: f0 48 0f c1 05 19 37 lock xadd %rax,0x2b3719(%rip) # 6ca7d8 - 4170bd: 2b 00 - 4170bf: 4c 29 e3 sub %r12,%rbx - 4170c2: 48 01 c3 add %rax,%rbx - 4170c5: 48 8b 05 14 37 2b 00 mov 0x2b3714(%rip),%rax # 6ca7e0 - 4170cc: 48 39 c3 cmp %rax,%rbx - 4170cf: 76 0b jbe 4170dc - 4170d1: f0 48 0f b1 1d 06 37 lock cmpxchg %rbx,0x2b3706(%rip) # 6ca7e0 - 4170d8: 2b 00 - 4170da: 75 e9 jne 4170c5 - 4170dc: 48 89 f8 mov %rdi,%rax - 4170df: 48 83 c4 08 add $0x8,%rsp - 4170e3: 5b pop %rbx - 4170e4: 5d pop %rbp - 4170e5: 41 5c pop %r12 - 4170e7: 41 5d pop %r13 - 4170e9: c3 retq - 4170ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4170f0: 31 c0 xor %eax,%eax - 4170f2: eb eb jmp 4170df - 4170f4: b9 68 2e 4a 00 mov $0x4a2e68,%ecx - 4170f9: ba 34 0b 00 00 mov $0xb34,%edx - 4170fe: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 417103: bf 48 23 4a 00 mov $0x4a2348,%edi - 417108: e8 13 fd ff ff callq 416e20 <__malloc_assert> - 41710d: b9 68 2e 4a 00 mov $0x4a2e68,%ecx - 417112: ba 33 0b 00 00 mov $0xb33,%edx - 417117: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41711c: bf d1 1f 4a 00 mov $0x4a1fd1,%edi - 417121: e8 fa fc ff ff callq 416e20 <__malloc_assert> - 417126: b9 68 2e 4a 00 mov $0x4a2e68,%ecx - 41712b: ba 47 0b 00 00 mov $0xb47,%edx - 417130: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 417135: bf 01 20 4a 00 mov $0x4a2001,%edi - 41713a: e8 e1 fc ff ff callq 416e20 <__malloc_assert> - 41713f: b9 68 2e 4a 00 mov $0x4a2e68,%ecx - 417144: ba 45 0b 00 00 mov $0xb45,%edx - 417149: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41714e: bf e6 1f 4a 00 mov $0x4a1fe6,%edi - 417153: e8 c8 fc ff ff callq 416e20 <__malloc_assert> - 417158: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41715f: 00 - -0000000000417160 : - 417160: 48 83 ec 08 sub $0x8,%rsp - 417164: 48 8b 15 bd 54 2b 00 mov 0x2b54bd(%rip),%rdx # 6cc628 - 41716b: 49 c7 c1 d8 ff ff ff mov $0xffffffffffffffd8,%r9 - 417172: 48 85 d2 test %rdx,%rdx - 417175: 64 4d 8b 01 mov %fs:(%r9),%r8 - 417179: 0f 84 05 01 00 00 je 417284 - 41717f: be 01 00 00 00 mov $0x1,%esi - 417184: 31 c0 xor %eax,%eax - 417186: 83 3d 2f 60 2b 00 00 cmpl $0x0,0x2b602f(%rip) # 6cd1bc <__libc_multiple_threads> - 41718d: 74 0c je 41719b - 41718f: f0 0f b1 35 99 54 2b lock cmpxchg %esi,0x2b5499(%rip) # 6cc630 - 417196: 00 - 417197: 75 0b jne 4171a4 - 417199: eb 23 jmp 4171be - 41719b: 0f b1 35 8e 54 2b 00 cmpxchg %esi,0x2b548e(%rip) # 6cc630 - 4171a2: 74 1a je 4171be - 4171a4: 48 8d 3d 85 54 2b 00 lea 0x2b5485(%rip),%rdi # 6cc630 - 4171ab: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4171b2: e8 19 b4 02 00 callq 4425d0 <__lll_lock_wait_private> - 4171b7: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4171be: 48 8b 15 63 54 2b 00 mov 0x2b5463(%rip),%rdx # 6cc628 - 4171c5: 48 85 d2 test %rdx,%rdx - 4171c8: 74 47 je 417211 - 4171ca: 48 83 ba 78 08 00 00 cmpq $0x0,0x878(%rdx) - 4171d1: 00 - 4171d2: 48 8b 82 70 08 00 00 mov 0x870(%rdx),%rax - 4171d9: 48 89 05 48 54 2b 00 mov %rax,0x2b5448(%rip) # 6cc628 - 4171e0: 0f 85 a6 00 00 00 jne 41728c - 4171e6: 4d 85 c0 test %r8,%r8 - 4171e9: 48 c7 82 78 08 00 00 movq $0x1,0x878(%rdx) - 4171f0: 01 00 00 00 - 4171f4: 74 1b je 417211 - 4171f6: 49 8b 80 78 08 00 00 mov 0x878(%r8),%rax - 4171fd: 48 85 c0 test %rax,%rax - 417200: 0f 84 9f 00 00 00 je 4172a5 - 417206: 48 83 e8 01 sub $0x1,%rax - 41720a: 49 89 80 78 08 00 00 mov %rax,0x878(%r8) - 417211: 83 3d a4 5f 2b 00 00 cmpl $0x0,0x2b5fa4(%rip) # 6cd1bc <__libc_multiple_threads> - 417218: 74 0b je 417225 - 41721a: f0 ff 0d 0f 54 2b 00 lock decl 0x2b540f(%rip) # 6cc630 - 417221: 75 0a jne 41722d - 417223: eb 22 jmp 417247 - 417225: ff 0d 05 54 2b 00 decl 0x2b5405(%rip) # 6cc630 - 41722b: 74 1a je 417247 - 41722d: 48 8d 3d fc 53 2b 00 lea 0x2b53fc(%rip),%rdi # 6cc630 - 417234: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41723b: e8 c0 b3 02 00 callq 442600 <__lll_unlock_wake_private> - 417240: 48 81 c4 80 00 00 00 add $0x80,%rsp - 417247: 48 85 d2 test %rdx,%rdx - 41724a: 74 38 je 417284 - 41724c: 90 nop - 41724d: be 01 00 00 00 mov $0x1,%esi - 417252: 31 c0 xor %eax,%eax - 417254: 83 3d 61 5f 2b 00 00 cmpl $0x0,0x2b5f61(%rip) # 6cd1bc <__libc_multiple_threads> - 41725b: 74 08 je 417265 - 41725d: f0 0f b1 32 lock cmpxchg %esi,(%rdx) - 417261: 75 07 jne 41726a - 417263: eb 1b jmp 417280 - 417265: 0f b1 32 cmpxchg %esi,(%rdx) - 417268: 74 16 je 417280 - 41726a: 48 8d 3a lea (%rdx),%rdi - 41726d: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 417274: e8 57 b3 02 00 callq 4425d0 <__lll_lock_wait_private> - 417279: 48 81 c4 80 00 00 00 add $0x80,%rsp - 417280: 64 49 89 11 mov %rdx,%fs:(%r9) - 417284: 48 89 d0 mov %rdx,%rax - 417287: 48 83 c4 08 add $0x8,%rsp - 41728b: c3 retq - 41728c: b9 38 2e 4a 00 mov $0x4a2e38,%ecx - 417291: ba d4 02 00 00 mov $0x2d4,%edx - 417296: be a8 1f 4a 00 mov $0x4a1fa8,%esi - 41729b: bf 1a 20 4a 00 mov $0x4a201a,%edi - 4172a0: e8 7b fb ff ff callq 416e20 <__malloc_assert> - 4172a5: e8 29 92 fe ff callq 4004d3 - 4172aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -00000000004172b0 : - 4172b0: 41 56 push %r14 - 4172b2: 41 55 push %r13 - 4172b4: 41 54 push %r12 - 4172b6: 55 push %rbp - 4172b7: 49 89 f4 mov %rsi,%r12 - 4172ba: 53 push %rbx - 4172bb: 89 fb mov %edi,%ebx - 4172bd: 48 89 d7 mov %rdx,%rdi - 4172c0: 48 83 ec 20 sub $0x20,%rsp - 4172c4: 48 85 c9 test %rcx,%rcx - 4172c7: 74 04 je 4172cd - 4172c9: 83 49 04 04 orl $0x4,0x4(%rcx) - 4172cd: 89 d8 mov %ebx,%eax - 4172cf: 83 e0 05 and $0x5,%eax - 4172d2: 83 f8 05 cmp $0x5,%eax - 4172d5: 0f 84 a5 00 00 00 je 417380 - 4172db: f6 c3 01 test $0x1,%bl - 4172de: 75 20 jne 417300 - 4172e0: 83 e3 02 and $0x2,%ebx - 4172e3: 0f 85 b0 00 00 00 jne 417399 - 4172e9: 48 83 c4 20 add $0x20,%rsp - 4172ed: 5b pop %rbx - 4172ee: 5d pop %rbp - 4172ef: 41 5c pop %r12 - 4172f1: 41 5d pop %r13 - 4172f3: 41 5e pop %r14 - 4172f5: c3 retq - 4172f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4172fd: 00 00 00 - 417300: 48 8d 74 24 10 lea 0x10(%rsp),%rsi - 417305: 31 c9 xor %ecx,%ecx - 417307: ba 10 00 00 00 mov $0x10,%edx - 41730c: c6 44 24 10 00 movb $0x0,0x10(%rsp) - 417311: e8 9a ab 03 00 callq 451eb0 <_itoa_word> - 417316: 48 39 e0 cmp %rsp,%rax - 417319: 48 89 c5 mov %rax,%rbp - 41731c: 76 25 jbe 417343 - 41731e: 48 89 c2 mov %rax,%rdx - 417321: 48 89 c7 mov %rax,%rdi - 417324: be 30 00 00 00 mov $0x30,%esi - 417329: 48 29 e2 sub %rsp,%rdx - 41732c: 4c 8d 70 ff lea -0x1(%rax),%r14 - 417330: 48 29 d7 sub %rdx,%rdi - 417333: e8 18 90 fe ff callq 400350 <__rela_iplt_end+0x88> - 417338: 48 8d 44 24 ff lea -0x1(%rsp),%rax - 41733d: 4c 29 f0 sub %r14,%rax - 417340: 48 01 c5 add %rax,%rbp - 417343: 48 8b 05 76 5f 2b 00 mov 0x2b5f76(%rip),%rax # 6cd2c0 <__libc_argv> - 41734a: ba 38 20 4a 00 mov $0x4a2038,%edx - 41734f: 49 89 e8 mov %rbp,%r8 - 417352: 4c 89 e1 mov %r12,%rcx - 417355: be a8 23 4a 00 mov $0x4a23a8,%esi - 41735a: 48 8b 00 mov (%rax),%rax - 41735d: 48 85 c0 test %rax,%rax - 417360: 48 0f 45 d0 cmovne %rax,%rdx - 417364: 83 e3 02 and $0x2,%ebx - 417367: 31 c0 xor %eax,%eax - 417369: 89 df mov %ebx,%edi - 41736b: e8 50 a2 ff ff callq 4115c0 <__libc_message> - 417370: 48 83 c4 20 add $0x20,%rsp - 417374: 5b pop %rbx - 417375: 5d pop %rbp - 417376: 41 5c pop %r12 - 417378: 41 5d pop %r13 - 41737a: 41 5e pop %r14 - 41737c: c3 retq - 41737d: 0f 1f 00 nopl (%rax) - 417380: 83 e3 02 and $0x2,%ebx - 417383: 4c 89 e2 mov %r12,%rdx - 417386: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41738b: 89 df mov %ebx,%edi - 41738d: 31 c0 xor %eax,%eax - 41738f: e8 2c a2 ff ff callq 4115c0 <__libc_message> - 417394: e9 50 ff ff ff jmpq 4172e9 - 417399: e8 62 68 ff ff callq 40dc00 - 41739e: 66 90 xchg %ax,%ax - -00000000004173a0 : - 4173a0: 48 8b 06 mov (%rsi),%rax - 4173a3: 41 56 push %r14 - 4173a5: 41 55 push %r13 - 4173a7: 41 54 push %r12 - 4173a9: 55 push %rbp - 4173aa: 53 push %rbx - 4173ab: 48 8b 68 08 mov 0x8(%rax),%rbp - 4173af: 48 83 e5 f8 and $0xfffffffffffffff8,%rbp - 4173b3: 48 8d 45 df lea -0x21(%rbp),%rax - 4173b7: 48 39 f8 cmp %rdi,%rax - 4173ba: 76 12 jbe 4173ce - 4173bc: 48 8b 1d bd 3d 2b 00 mov 0x2b3dbd(%rip),%rbx # 6cb180 <_dl_pagesize> - 4173c3: 48 29 f8 sub %rdi,%rax - 4173c6: 48 f7 db neg %rbx - 4173c9: 48 21 c3 and %rax,%rbx - 4173cc: 75 12 jne 4173e0 - 4173ce: 31 c0 xor %eax,%eax - 4173d0: 5b pop %rbx - 4173d1: 5d pop %rbp - 4173d2: 41 5c pop %r12 - 4173d4: 41 5d pop %r13 - 4173d6: 41 5e pop %r14 - 4173d8: c3 retq - 4173d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4173e0: 49 89 f4 mov %rsi,%r12 - 4173e3: 31 ff xor %edi,%edi - 4173e5: 49 89 d5 mov %rdx,%r13 - 4173e8: ff 15 a2 3c 2b 00 callq *0x2b3ca2(%rip) # 6cb090 <__morecore> - 4173ee: 49 89 c6 mov %rax,%r14 - 4173f1: 48 89 e8 mov %rbp,%rax - 4173f4: 49 03 04 24 add (%r12),%rax - 4173f8: 49 39 c6 cmp %rax,%r14 - 4173fb: 75 d1 jne 4173ce - 4173fd: 48 89 df mov %rbx,%rdi - 417400: 48 f7 df neg %rdi - 417403: ff 15 87 3c 2b 00 callq *0x2b3c87(%rip) # 6cb090 <__morecore> - 417409: 48 8b 05 d0 51 2b 00 mov 0x2b51d0(%rip),%rax # 6cc5e0 <__after_morecore_hook> - 417410: 48 85 c0 test %rax,%rax - 417413: 75 2d jne 417442 - 417415: 31 ff xor %edi,%edi - 417417: ff 15 73 3c 2b 00 callq *0x2b3c73(%rip) # 6cb090 <__morecore> - 41741d: 90 nop - 41741e: 48 85 c0 test %rax,%rax - 417421: 74 ab je 4173ce - 417423: 49 29 c6 sub %rax,%r14 - 417426: 74 a6 je 4173ce - 417428: 49 8b 04 24 mov (%r12),%rax - 41742c: 4c 29 f5 sub %r14,%rbp - 41742f: 4d 29 75 00 sub %r14,0x0(%r13) - 417433: 48 83 cd 01 or $0x1,%rbp - 417437: 48 89 68 08 mov %rbp,0x8(%rax) - 41743b: b8 01 00 00 00 mov $0x1,%eax - 417440: eb 8e jmp 4173d0 - 417442: ff d0 callq *%rax - 417444: eb cf jmp 417415 - 417446: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41744d: 00 00 00 - -0000000000417450 : - 417450: 55 push %rbp - 417451: 53 push %rbx - 417452: 48 89 fd mov %rdi,%rbp - 417455: 48 89 f3 mov %rsi,%rbx - 417458: 48 83 ec 08 sub $0x8,%rsp - 41745c: 48 8b 05 9d 51 2b 00 mov 0x2b519d(%rip),%rax # 6cc600 - 417463: 48 85 c0 test %rax,%rax - 417466: 75 17 jne 41747f - 417468: 48 8b 05 51 33 2b 00 mov 0x2b3351(%rip),%rax # 6ca7c0 - 41746f: 48 85 c0 test %rax,%rax - 417472: 0f 84 00 02 00 00 je 417678 - 417478: 48 89 05 81 51 2b 00 mov %rax,0x2b5181(%rip) # 6cc600 - 41747f: 48 8b 15 e2 32 2b 00 mov 0x2b32e2(%rip),%rdx # 6ca768 - 417486: 48 83 e8 01 sub $0x1,%rax - 41748a: 48 39 d0 cmp %rdx,%rax - 41748d: 0f 83 50 02 00 00 jae 4176e3 - 417493: 48 8b 15 5e 51 2b 00 mov 0x2b515e(%rip),%rdx # 6cc5f8 - 41749a: 48 85 d2 test %rdx,%rdx - 41749d: 0f 84 2b 02 00 00 je 4176ce - 4174a3: 48 89 d1 mov %rdx,%rcx - 4174a6: be 01 00 00 00 mov $0x1,%esi - 4174ab: eb 33 jmp 4174e0 - 4174ad: 0f 1f 00 nopl (%rax) - 4174b0: 83 3d 05 5d 2b 00 00 cmpl $0x0,0x2b5d05(%rip) # 6cd1bc <__libc_multiple_threads> - 4174b7: 74 06 je 4174bf - 4174b9: f0 0f b1 32 lock cmpxchg %esi,(%rdx) - 4174bd: eb 03 jmp 4174c2 - 4174bf: 0f b1 32 cmpxchg %esi,(%rdx) - 4174c2: 85 c0 test %eax,%eax - 4174c4: 0f 84 95 00 00 00 je 41755f - 4174ca: 48 8b 05 27 51 2b 00 mov 0x2b5127(%rip),%rax # 6cc5f8 - 4174d1: 48 8b 92 68 08 00 00 mov 0x868(%rdx),%rdx - 4174d8: 48 39 c2 cmp %rax,%rdx - 4174db: 48 89 c1 mov %rax,%rcx - 4174de: 74 1a je 4174fa - 4174e0: 8b 42 04 mov 0x4(%rdx),%eax - 4174e3: 83 e0 04 and $0x4,%eax - 4174e6: 74 c8 je 4174b0 - 4174e8: 48 8b 92 68 08 00 00 mov 0x868(%rdx),%rdx - 4174ef: 48 89 c8 mov %rcx,%rax - 4174f2: 48 89 c1 mov %rax,%rcx - 4174f5: 48 39 c2 cmp %rax,%rdx - 4174f8: 75 e6 jne 4174e0 - 4174fa: 48 39 c3 cmp %rax,%rbx - 4174fd: 0f 84 13 02 00 00 je 417716 - 417503: 48 89 c2 mov %rax,%rdx - 417506: eb 18 jmp 417520 - 417508: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41750f: 00 - 417510: 48 8b 92 68 08 00 00 mov 0x868(%rdx),%rdx - 417517: 48 39 c2 cmp %rax,%rdx - 41751a: 0f 84 88 01 00 00 je 4176a8 - 417520: f6 42 04 04 testb $0x4,0x4(%rdx) - 417524: 75 ea jne 417510 - 417526: 48 39 d3 cmp %rdx,%rbx - 417529: 74 e5 je 417510 - 41752b: 90 nop - 41752c: be 01 00 00 00 mov $0x1,%esi - 417531: 31 c0 xor %eax,%eax - 417533: 83 3d 82 5c 2b 00 00 cmpl $0x0,0x2b5c82(%rip) # 6cd1bc <__libc_multiple_threads> - 41753a: 74 08 je 417544 - 41753c: f0 0f b1 32 lock cmpxchg %esi,(%rdx) - 417540: 75 07 jne 417549 - 417542: eb 1b jmp 41755f - 417544: 0f b1 32 cmpxchg %esi,(%rdx) - 417547: 74 16 je 41755f - 417549: 48 8d 3a lea (%rdx),%rdi - 41754c: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 417553: e8 78 b0 02 00 callq 4425d0 <__lll_lock_wait_private> - 417558: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41755f: 49 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%r8 - 417566: be 01 00 00 00 mov $0x1,%esi - 41756b: 31 c0 xor %eax,%eax - 41756d: 64 4d 8b 08 mov %fs:(%r8),%r9 - 417571: 83 3d 44 5c 2b 00 00 cmpl $0x0,0x2b5c44(%rip) # 6cd1bc <__libc_multiple_threads> - 417578: 74 0c je 417586 - 41757a: f0 0f b1 35 ae 50 2b lock cmpxchg %esi,0x2b50ae(%rip) # 6cc630 - 417581: 00 - 417582: 75 0b jne 41758f - 417584: eb 23 jmp 4175a9 - 417586: 0f b1 35 a3 50 2b 00 cmpxchg %esi,0x2b50a3(%rip) # 6cc630 - 41758d: 74 1a je 4175a9 - 41758f: 48 8d 3d 9a 50 2b 00 lea 0x2b509a(%rip),%rdi # 6cc630 - 417596: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41759d: e8 2e b0 02 00 callq 4425d0 <__lll_lock_wait_private> - 4175a2: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4175a9: 4d 85 c9 test %r9,%r9 - 4175ac: 74 1b je 4175c9 - 4175ae: 49 8b 81 78 08 00 00 mov 0x878(%r9),%rax - 4175b5: 48 85 c0 test %rax,%rax - 4175b8: 0f 84 ff 03 00 00 je 4179bd - 4175be: 48 83 e8 01 sub $0x1,%rax - 4175c2: 49 89 81 78 08 00 00 mov %rax,0x878(%r9) - 4175c9: 48 8b 0d 58 50 2b 00 mov 0x2b5058(%rip),%rcx # 6cc628 - 4175d0: 48 85 c9 test %rcx,%rcx - 4175d3: 74 41 je 417616 - 4175d5: 48 83 b9 78 08 00 00 cmpq $0x0,0x878(%rcx) - 4175dc: 00 - 4175dd: 0f 85 ad 03 00 00 jne 417990 - 4175e3: 48 39 d1 cmp %rdx,%rcx - 4175e6: 75 22 jne 41760a - 4175e8: e9 51 01 00 00 jmpq 41773e - 4175ed: 0f 1f 00 nopl (%rax) - 4175f0: 48 83 b8 78 08 00 00 cmpq $0x0,0x878(%rax) - 4175f7: 00 - 4175f8: 0f 85 92 03 00 00 jne 417990 - 4175fe: 48 39 c2 cmp %rax,%rdx - 417601: 0f 84 b1 00 00 00 je 4176b8 - 417607: 48 89 c1 mov %rax,%rcx - 41760a: 48 8b 81 70 08 00 00 mov 0x870(%rcx),%rax - 417611: 48 85 c0 test %rax,%rax - 417614: 75 da jne 4175f0 - 417616: 48 83 82 78 08 00 00 addq $0x1,0x878(%rdx) - 41761d: 01 - 41761e: 83 3d 97 5b 2b 00 00 cmpl $0x0,0x2b5b97(%rip) # 6cd1bc <__libc_multiple_threads> - 417625: 74 0b je 417632 - 417627: f0 ff 0d 02 50 2b 00 lock decl 0x2b5002(%rip) # 6cc630 - 41762e: 75 0a jne 41763a - 417630: eb 22 jmp 417654 - 417632: ff 0d f8 4f 2b 00 decl 0x2b4ff8(%rip) # 6cc630 - 417638: 74 1a je 417654 - 41763a: 48 8d 3d ef 4f 2b 00 lea 0x2b4fef(%rip),%rdi # 6cc630 - 417641: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 417648: e8 b3 af 02 00 callq 442600 <__lll_unlock_wake_private> - 41764d: 48 81 c4 80 00 00 00 add $0x80,%rsp - 417654: 90 nop - 417655: 48 8b 82 68 08 00 00 mov 0x868(%rdx),%rax - 41765c: 64 49 89 10 mov %rdx,%fs:(%r8) - 417660: 48 89 05 91 4f 2b 00 mov %rax,0x2b4f91(%rip) # 6cc5f8 - 417667: 48 83 c4 08 add $0x8,%rsp - 41766b: 48 89 d0 mov %rdx,%rax - 41766e: 5b pop %rbx - 41766f: 5d pop %rbp - 417670: c3 retq - 417671: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 417678: 48 8b 15 e9 30 2b 00 mov 0x2b30e9(%rip),%rdx # 6ca768 - 41767f: 48 39 15 32 31 2b 00 cmp %rdx,0x2b3132(%rip) # 6ca7b8 - 417686: 0f 83 fa fd ff ff jae 417486 - 41768c: e8 af a9 02 00 callq 442040 <__get_nprocs> - 417691: 85 c0 test %eax,%eax - 417693: 0f 8e 89 00 00 00 jle 417722 - 417699: c1 e0 03 shl $0x3,%eax - 41769c: 48 98 cltq - 41769e: e9 d5 fd ff ff jmpq 417478 - 4176a3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4176a8: 48 83 c4 08 add $0x8,%rsp - 4176ac: 31 d2 xor %edx,%edx - 4176ae: 48 89 d0 mov %rdx,%rax - 4176b1: 5b pop %rbx - 4176b2: 5d pop %rbp - 4176b3: c3 retq - 4176b4: 0f 1f 40 00 nopl 0x0(%rax) - 4176b8: 48 81 c1 70 08 00 00 add $0x870,%rcx - 4176bf: 48 8b 80 70 08 00 00 mov 0x870(%rax),%rax - 4176c6: 48 89 01 mov %rax,(%rcx) - 4176c9: e9 48 ff ff ff jmpq 417616 - 4176ce: 48 c7 05 1f 4f 2b 00 movq $0x6ca800,0x2b4f1f(%rip) # 6cc5f8 - 4176d5: 00 a8 6c 00 - 4176d9: ba 00 a8 6c 00 mov $0x6ca800,%edx - 4176de: e9 c0 fd ff ff jmpq 4174a3 - 4176e3: 48 8d 4a 01 lea 0x1(%rdx),%rcx - 4176e7: 48 89 d0 mov %rdx,%rax - 4176ea: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 - 4176f1: 00 00 - 4176f3: 74 01 je 4176f6 - 4176f5: f0 48 0f b1 0d 6a 30 lock cmpxchg %rcx,0x2b306a(%rip) # 6ca768 - 4176fc: 2b 00 - 4176fe: 48 39 d0 cmp %rdx,%rax - 417701: 74 48 je 41774b - 417703: 48 8b 15 5e 30 2b 00 mov 0x2b305e(%rip),%rdx # 6ca768 - 41770a: 48 8b 05 ef 4e 2b 00 mov 0x2b4eef(%rip),%rax # 6cc600 - 417711: e9 70 fd ff ff jmpq 417486 - 417716: 48 8b 83 68 08 00 00 mov 0x868(%rbx),%rax - 41771d: e9 e1 fd ff ff jmpq 417503 - 417722: 48 c7 05 d3 4e 2b 00 movq $0x10,0x2b4ed3(%rip) # 6cc600 - 417729: 10 00 00 00 - 41772d: 48 8b 15 34 30 2b 00 mov 0x2b3034(%rip),%rdx # 6ca768 - 417734: b8 10 00 00 00 mov $0x10,%eax - 417739: e9 48 fd ff ff jmpq 417486 - 41773e: 48 89 d0 mov %rdx,%rax - 417741: b9 28 c6 6c 00 mov $0x6cc628,%ecx - 417746: e9 74 ff ff ff jmpq 4176bf - 41774b: 48 8b 35 56 30 2b 00 mov 0x2b3056(%rip),%rsi # 6ca7a8 - 417752: 48 8d bd c0 08 00 00 lea 0x8c0(%rbp),%rdi - 417759: e8 22 f7 ff ff callq 416e80 - 41775e: 48 85 c0 test %rax,%rax - 417761: 49 89 c0 mov %rax,%r8 - 417764: 0f 84 58 02 00 00 je 4179c2 - 41776a: 49 8d 50 20 lea 0x20(%r8),%rdx - 41776e: 49 8d 40 78 lea 0x78(%r8),%rax - 417772: 49 8d 88 68 08 00 00 lea 0x868(%r8),%rcx - 417779: 49 89 10 mov %rdx,(%r8) - 41777c: 0f 1f 40 00 nopl 0x0(%rax) - 417780: 48 89 40 18 mov %rax,0x18(%rax) - 417784: 48 89 40 10 mov %rax,0x10(%rax) - 417788: 48 83 c0 10 add $0x10,%rax - 41778c: 48 39 c8 cmp %rcx,%rax - 41778f: 75 ef jne 417780 - 417791: 48 81 fa 00 a8 6c 00 cmp $0x6ca800,%rdx - 417798: 0f 84 0b 02 00 00 je 4179a9 - 41779e: 41 8b 40 24 mov 0x24(%r8),%eax - 4177a2: 83 c8 02 or $0x2,%eax - 4177a5: 83 c8 01 or $0x1,%eax - 4177a8: 4c 89 c6 mov %r8,%rsi - 4177ab: 49 c7 80 98 08 00 00 movq $0x1,0x898(%r8) - 4177b2: 01 00 00 00 - 4177b6: 41 89 40 24 mov %eax,0x24(%r8) - 4177ba: 49 8b 40 10 mov 0x10(%r8),%rax - 4177be: 49 8d 88 b0 08 00 00 lea 0x8b0(%r8),%rcx - 4177c5: 48 01 05 4c 4e 2b 00 add %rax,0x2b4e4c(%rip) # 6cc618 - 4177cc: 83 e6 0f and $0xf,%esi - 4177cf: 49 89 80 a8 08 00 00 mov %rax,0x8a8(%r8) - 4177d6: 49 89 80 a0 08 00 00 mov %rax,0x8a0(%r8) - 4177dd: 74 07 je 4177e6 - 4177df: 48 29 f1 sub %rsi,%rcx - 4177e2: 48 83 c1 10 add $0x10,%rcx - 4177e6: 4c 01 c0 add %r8,%rax - 4177e9: 49 89 48 78 mov %rcx,0x78(%r8) - 4177ed: 48 29 c8 sub %rcx,%rax - 4177f0: 48 83 c8 01 or $0x1,%rax - 4177f4: 48 89 41 08 mov %rax,0x8(%rcx) - 4177f8: 90 nop - 4177f9: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax - 417800: 41 b9 01 00 00 00 mov $0x1,%r9d - 417806: 45 31 d2 xor %r10d,%r10d - 417809: 41 c7 40 20 00 00 00 movl $0x0,0x20(%r8) - 417810: 00 - 417811: 44 89 ce mov %r9d,%esi - 417814: 64 48 8b 18 mov %fs:(%rax),%rbx - 417818: 64 48 89 10 mov %rdx,%fs:(%rax) - 41781c: 44 89 d0 mov %r10d,%eax - 41781f: 83 3d 96 59 2b 00 00 cmpl $0x0,0x2b5996(%rip) # 6cd1bc <__libc_multiple_threads> - 417826: 74 0c je 417834 - 417828: f0 0f b1 35 f0 4d 2b lock cmpxchg %esi,0x2b4df0(%rip) # 6cc620 - 41782f: 00 - 417830: 75 0b jne 41783d - 417832: eb 23 jmp 417857 - 417834: 0f b1 35 e5 4d 2b 00 cmpxchg %esi,0x2b4de5(%rip) # 6cc620 - 41783b: 74 1a je 417857 - 41783d: 48 8d 3d dc 4d 2b 00 lea 0x2b4ddc(%rip),%rdi # 6cc620 - 417844: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41784b: e8 80 ad 02 00 callq 4425d0 <__lll_lock_wait_private> - 417850: 48 81 c4 80 00 00 00 add $0x80,%rsp - 417857: 48 8b 05 0a 38 2b 00 mov 0x2b380a(%rip),%rax # 6cb068 - 41785e: 49 89 80 88 08 00 00 mov %rax,0x888(%r8) - 417865: 48 89 15 fc 37 2b 00 mov %rdx,0x2b37fc(%rip) # 6cb068 - 41786c: 83 3d 49 59 2b 00 00 cmpl $0x0,0x2b5949(%rip) # 6cd1bc <__libc_multiple_threads> - 417873: 74 0b je 417880 - 417875: f0 ff 0d a4 4d 2b 00 lock decl 0x2b4da4(%rip) # 6cc620 - 41787c: 75 0a jne 417888 - 41787e: eb 22 jmp 4178a2 - 417880: ff 0d 9a 4d 2b 00 decl 0x2b4d9a(%rip) # 6cc620 - 417886: 74 1a je 4178a2 - 417888: 48 8d 3d 91 4d 2b 00 lea 0x2b4d91(%rip),%rdi # 6cc620 - 41788f: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 417896: e8 65 ad 02 00 callq 442600 <__lll_unlock_wake_private> - 41789b: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4178a2: 44 89 ce mov %r9d,%esi - 4178a5: 44 89 d0 mov %r10d,%eax - 4178a8: 83 3d 0d 59 2b 00 00 cmpl $0x0,0x2b590d(%rip) # 6cd1bc <__libc_multiple_threads> - 4178af: 74 0c je 4178bd - 4178b1: f0 0f b1 35 77 4d 2b lock cmpxchg %esi,0x2b4d77(%rip) # 6cc630 - 4178b8: 00 - 4178b9: 75 0b jne 4178c6 - 4178bb: eb 23 jmp 4178e0 - 4178bd: 0f b1 35 6c 4d 2b 00 cmpxchg %esi,0x2b4d6c(%rip) # 6cc630 - 4178c4: 74 1a je 4178e0 - 4178c6: 48 8d 3d 63 4d 2b 00 lea 0x2b4d63(%rip),%rdi # 6cc630 - 4178cd: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4178d4: e8 f7 ac 02 00 callq 4425d0 <__lll_lock_wait_private> - 4178d9: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4178e0: 48 85 db test %rbx,%rbx - 4178e3: 74 1b je 417900 - 4178e5: 48 8b 83 78 08 00 00 mov 0x878(%rbx),%rax - 4178ec: 48 85 c0 test %rax,%rax - 4178ef: 0f 84 c8 00 00 00 je 4179bd - 4178f5: 48 83 e8 01 sub $0x1,%rax - 4178f9: 48 89 83 78 08 00 00 mov %rax,0x878(%rbx) - 417900: 83 3d b5 58 2b 00 00 cmpl $0x0,0x2b58b5(%rip) # 6cd1bc <__libc_multiple_threads> - 417907: 74 0b je 417914 - 417909: f0 ff 0d 20 4d 2b 00 lock decl 0x2b4d20(%rip) # 6cc630 - 417910: 75 0a jne 41791c - 417912: eb 22 jmp 417936 - 417914: ff 0d 16 4d 2b 00 decl 0x2b4d16(%rip) # 6cc630 - 41791a: 74 1a je 417936 - 41791c: 48 8d 3d 0d 4d 2b 00 lea 0x2b4d0d(%rip),%rdi # 6cc630 - 417923: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41792a: e8 d1 ac 02 00 callq 442600 <__lll_unlock_wake_private> - 41792f: 48 81 c4 80 00 00 00 add $0x80,%rsp - 417936: be 01 00 00 00 mov $0x1,%esi - 41793b: 31 c0 xor %eax,%eax - 41793d: 83 3d 78 58 2b 00 00 cmpl $0x0,0x2b5878(%rip) # 6cd1bc <__libc_multiple_threads> - 417944: 74 08 je 41794e - 417946: f0 0f b1 32 lock cmpxchg %esi,(%rdx) - 41794a: 75 07 jne 417953 - 41794c: eb 1b jmp 417969 - 41794e: 0f b1 32 cmpxchg %esi,(%rdx) - 417951: 74 16 je 417969 - 417953: 48 8d 3a lea (%rdx),%rdi - 417956: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41795d: e8 6e ac 02 00 callq 4425d0 <__lll_lock_wait_private> - 417962: 48 81 c4 80 00 00 00 add $0x80,%rsp - 417969: 48 85 d2 test %rdx,%rdx - 41796c: 0f 85 f5 fc ff ff jne 417667 - 417972: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 - 417979: 00 00 - 41797b: 74 01 je 41797e - 41797d: f0 48 ff 0d e3 2d 2b lock decq 0x2b2de3(%rip) # 6ca768 - 417984: 00 - 417985: 31 d2 xor %edx,%edx - 417987: e9 db fc ff ff jmpq 417667 - 41798c: 0f 1f 40 00 nopl 0x0(%rax) - 417990: b9 80 2f 4a 00 mov $0x4a2f80,%ecx - 417995: ba ee 02 00 00 mov $0x2ee,%edx - 41799a: be a8 1f 4a 00 mov $0x4a1fa8,%esi - 41799f: bf 42 20 4a 00 mov $0x4a2042,%edi - 4179a4: e8 77 f4 ff ff callq 416e20 <__malloc_assert> - 4179a9: 48 c7 05 84 4c 2b 00 movq $0x80,0x2b4c84(%rip) # 6cc638 - 4179b0: 80 00 00 00 - 4179b4: 41 8b 40 24 mov 0x24(%r8),%eax - 4179b8: e9 e8 fd ff ff jmpq 4177a5 - 4179bd: e8 11 8b fe ff callq 4004d3 - 4179c2: 48 8b 35 df 2d 2b 00 mov 0x2b2ddf(%rip),%rsi # 6ca7a8 - 4179c9: bf c0 08 00 00 mov $0x8c0,%edi - 4179ce: e8 ad f4 ff ff callq 416e80 - 4179d3: 48 85 c0 test %rax,%rax - 4179d6: 49 89 c0 mov %rax,%r8 - 4179d9: 0f 85 8b fd ff ff jne 41776a - 4179df: eb 91 jmp 417972 - 4179e1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4179e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4179ed: 00 00 00 - -00000000004179f0 : - 4179f0: 90 nop - 4179f1: 48 81 ff 00 a8 6c 00 cmp $0x6ca800,%rdi - 4179f8: 0f 84 8a 00 00 00 je 417a88 - 4179fe: 48 89 fa mov %rdi,%rdx - 417a01: 83 3d b4 57 2b 00 00 cmpl $0x0,0x2b57b4(%rip) # 6cd1bc <__libc_multiple_threads> - 417a08: 74 07 je 417a11 - 417a0a: f0 ff 0a lock decl (%rdx) - 417a0d: 75 06 jne 417a15 - 417a0f: eb 1a jmp 417a2b - 417a11: ff 0a decl (%rdx) - 417a13: 74 16 je 417a2b - 417a15: 48 8d 3a lea (%rdx),%rdi - 417a18: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 417a1f: e8 dc ab 02 00 callq 442600 <__lll_unlock_wake_private> - 417a24: 48 81 c4 80 00 00 00 add $0x80,%rsp - 417a2b: 8b 05 d3 2d 2b 00 mov 0x2b2dd3(%rip),%eax # 6ca804 - 417a31: 83 e0 04 and $0x4,%eax - 417a34: 75 4a jne 417a80 - 417a36: be 01 00 00 00 mov $0x1,%esi - 417a3b: 83 3d 7a 57 2b 00 00 cmpl $0x0,0x2b577a(%rip) # 6cd1bc <__libc_multiple_threads> - 417a42: 74 0c je 417a50 - 417a44: f0 0f b1 35 b4 2d 2b lock cmpxchg %esi,0x2b2db4(%rip) # 6ca800 - 417a4b: 00 - 417a4c: 75 0b jne 417a59 - 417a4e: eb 23 jmp 417a73 - 417a50: 0f b1 35 a9 2d 2b 00 cmpxchg %esi,0x2b2da9(%rip) # 6ca800 - 417a57: 74 1a je 417a73 - 417a59: 48 8d 3d a0 2d 2b 00 lea 0x2b2da0(%rip),%rdi # 6ca800 - 417a60: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 417a67: e8 64 ab 02 00 callq 4425d0 <__lll_lock_wait_private> - 417a6c: 48 81 c4 80 00 00 00 add $0x80,%rsp - 417a73: b8 00 a8 6c 00 mov $0x6ca800,%eax - 417a78: c3 retq - 417a79: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 417a80: 31 c0 xor %eax,%eax - 417a82: c3 retq - 417a83: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 417a88: 53 push %rbx - 417a89: 48 89 f3 mov %rsi,%rbx - 417a8c: 83 3d 29 57 2b 00 00 cmpl $0x0,0x2b5729(%rip) # 6cd1bc <__libc_multiple_threads> - 417a93: 74 0b je 417aa0 - 417a95: f0 ff 0d 64 2d 2b 00 lock decl 0x2b2d64(%rip) # 6ca800 - 417a9c: 75 0a jne 417aa8 - 417a9e: eb 22 jmp 417ac2 - 417aa0: ff 0d 5a 2d 2b 00 decl 0x2b2d5a(%rip) # 6ca800 - 417aa6: 74 1a je 417ac2 - 417aa8: 48 8d 3d 51 2d 2b 00 lea 0x2b2d51(%rip),%rdi # 6ca800 - 417aaf: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 417ab6: e8 45 ab 02 00 callq 442600 <__lll_unlock_wake_private> - 417abb: 48 81 c4 80 00 00 00 add $0x80,%rsp - 417ac2: e8 99 f6 ff ff callq 417160 - 417ac7: 48 85 c0 test %rax,%rax - 417aca: 74 02 je 417ace - 417acc: 5b pop %rbx - 417acd: c3 retq - 417ace: 48 89 df mov %rbx,%rdi - 417ad1: be 00 a8 6c 00 mov $0x6ca800,%esi - 417ad6: 5b pop %rbx - 417ad7: e9 74 f9 ff ff jmpq 417450 - 417adc: 0f 1f 40 00 nopl 0x0(%rax) - -0000000000417ae0 : - 417ae0: 41 56 push %r14 - 417ae2: 41 55 push %r13 - 417ae4: 41 54 push %r12 - 417ae6: 55 push %rbp - 417ae7: 53 push %rbx - 417ae8: 48 83 ec 20 sub $0x20,%rsp - 417aec: 48 8b 3d 65 2d 2b 00 mov 0x2b2d65(%rip),%rdi # 6ca858 - 417af3: 48 8b 1d 86 36 2b 00 mov 0x2b3686(%rip),%rbx # 6cb180 <_dl_pagesize> - 417afa: 48 81 ff 58 a8 6c 00 cmp $0x6ca858,%rdi - 417b01: 0f 84 15 01 00 00 je 417c1c - 417b07: 48 8b 47 08 mov 0x8(%rdi),%rax - 417b0b: a8 02 test $0x2,%al - 417b0d: 75 11 jne 417b20 - 417b0f: 48 89 c2 mov %rax,%rdx - 417b12: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx - 417b16: 48 83 fa 1f cmp $0x1f,%rdx - 417b1a: 0f 87 d0 00 00 00 ja 417bf0 - 417b20: 8b 05 de 2c 2b 00 mov 0x2b2cde(%rip),%eax # 6ca804 - 417b26: 8b 2d 44 2c 2b 00 mov 0x2b2c44(%rip),%ebp # 6ca770 - 417b2c: 83 c8 04 or $0x4,%eax - 417b2f: 89 05 cf 2c 2b 00 mov %eax,0x2b2ccf(%rip) # 6ca804 - 417b35: 89 e8 mov %ebp,%eax - 417b37: 83 e0 05 and $0x5,%eax - 417b3a: 83 f8 05 cmp $0x5,%eax - 417b3d: 0f 84 6d 01 00 00 je 417cb0 - 417b43: 40 f6 c5 01 test $0x1,%bpl - 417b47: 0f 85 e3 00 00 00 jne 417c30 - 417b4d: 83 e5 02 and $0x2,%ebp - 417b50: 0f 85 8d 01 00 00 jne 417ce3 - 417b56: 31 ff xor %edi,%edi - 417b58: ff 15 32 35 2b 00 callq *0x2b3532(%rip) # 6cb090 <__morecore> - 417b5e: 49 89 c5 mov %rax,%r13 - 417b61: 48 89 c5 mov %rax,%rbp - 417b64: 41 83 e5 0f and $0xf,%r13d - 417b68: 75 76 jne 417be0 - 417b6a: 48 8b 05 37 2c 2b 00 mov 0x2b2c37(%rip),%rax # 6ca7a8 - 417b71: 48 8d 53 ff lea -0x1(%rbx),%rdx - 417b75: 49 8d 44 05 20 lea 0x20(%r13,%rax,1),%rax - 417b7a: 48 8d 4c 05 00 lea 0x0(%rbp,%rax,1),%rcx - 417b7f: 48 01 c3 add %rax,%rbx - 417b82: 48 21 ca and %rcx,%rdx - 417b85: 48 29 d3 sub %rdx,%rbx - 417b88: 48 89 df mov %rbx,%rdi - 417b8b: ff 15 ff 34 2b 00 callq *0x2b34ff(%rip) # 6cb090 <__morecore> - 417b91: 48 85 c0 test %rax,%rax - 417b94: 49 89 c4 mov %rax,%r12 - 417b97: 0f 84 2e 01 00 00 je 417ccb - 417b9d: 48 8b 05 3c 4a 2b 00 mov 0x2b4a3c(%rip),%rax # 6cc5e0 <__after_morecore_hook> - 417ba4: 48 85 c0 test %rax,%rax - 417ba7: 74 02 je 417bab - 417ba9: ff d0 callq *%rax - 417bab: 4c 2b 25 3e 2c 2b 00 sub 0x2b2c3e(%rip),%r12 # 6ca7f0 - 417bb2: 4c 01 ed add %r13,%rbp - 417bb5: 31 c0 xor %eax,%eax - 417bb7: 48 89 2d 9a 2c 2b 00 mov %rbp,0x2b2c9a(%rip) # 6ca858 - 417bbe: 49 01 dc add %rbx,%r12 - 417bc1: 4c 29 eb sub %r13,%rbx - 417bc4: 48 83 cb 01 or $0x1,%rbx - 417bc8: 4c 89 25 b1 34 2b 00 mov %r12,0x2b34b1(%rip) # 6cb080 - 417bcf: 48 89 5d 08 mov %rbx,0x8(%rbp) - 417bd3: 48 83 c4 20 add $0x20,%rsp - 417bd7: 5b pop %rbx - 417bd8: 5d pop %rbp - 417bd9: 41 5c pop %r12 - 417bdb: 41 5d pop %r13 - 417bdd: 41 5e pop %r14 - 417bdf: c3 retq - 417be0: b8 10 00 00 00 mov $0x10,%eax - 417be5: 4c 29 e8 sub %r13,%rax - 417be8: 49 89 c5 mov %rax,%r13 - 417beb: e9 7a ff ff ff jmpq 417b6a - 417bf0: a8 01 test $0x1,%al - 417bf2: 0f 84 28 ff ff ff je 417b20 - 417bf8: 8b 05 06 2c 2b 00 mov 0x2b2c06(%rip),%eax # 6ca804 - 417bfe: a8 02 test $0x2,%al - 417c00: 75 1a jne 417c1c - 417c02: 48 8b 0d 77 34 2b 00 mov 0x2b3477(%rip),%rcx # 6cb080 - 417c09: 48 03 0d e0 2b 2b 00 add 0x2b2be0(%rip),%rcx # 6ca7f0 - 417c10: 48 01 fa add %rdi,%rdx - 417c13: 48 39 ca cmp %rcx,%rdx - 417c16: 0f 85 0a ff ff ff jne 417b26 - 417c1c: 48 83 c4 20 add $0x20,%rsp - 417c20: 31 c0 xor %eax,%eax - 417c22: 5b pop %rbx - 417c23: 5d pop %rbp - 417c24: 41 5c pop %r12 - 417c26: 41 5d pop %r13 - 417c28: 41 5e pop %r14 - 417c2a: c3 retq - 417c2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 417c30: 48 8d 74 24 10 lea 0x10(%rsp),%rsi - 417c35: 31 c9 xor %ecx,%ecx - 417c37: ba 10 00 00 00 mov $0x10,%edx - 417c3c: c6 44 24 10 00 movb $0x0,0x10(%rsp) - 417c41: e8 6a a2 03 00 callq 451eb0 <_itoa_word> - 417c46: 48 39 e0 cmp %rsp,%rax - 417c49: 49 89 c4 mov %rax,%r12 - 417c4c: 76 25 jbe 417c73 - 417c4e: 48 89 c2 mov %rax,%rdx - 417c51: 48 89 c7 mov %rax,%rdi - 417c54: be 30 00 00 00 mov $0x30,%esi - 417c59: 48 29 e2 sub %rsp,%rdx - 417c5c: 4c 8d 70 ff lea -0x1(%rax),%r14 - 417c60: 48 29 d7 sub %rdx,%rdi - 417c63: e8 e8 86 fe ff callq 400350 <__rela_iplt_end+0x88> - 417c68: 48 8d 44 24 ff lea -0x1(%rsp),%rax - 417c6d: 4c 29 f0 sub %r14,%rax - 417c70: 49 01 c4 add %rax,%r12 - 417c73: 48 8b 05 46 56 2b 00 mov 0x2b5646(%rip),%rax # 6cd2c0 <__libc_argv> - 417c7a: 89 ef mov %ebp,%edi - 417c7c: ba 38 20 4a 00 mov $0x4a2038,%edx - 417c81: 4d 89 e0 mov %r12,%r8 - 417c84: b9 5b 20 4a 00 mov $0x4a205b,%ecx - 417c89: be a8 23 4a 00 mov $0x4a23a8,%esi - 417c8e: 48 8b 00 mov (%rax),%rax - 417c91: 48 85 c0 test %rax,%rax - 417c94: 48 0f 45 d0 cmovne %rax,%rdx - 417c98: 83 e7 02 and $0x2,%edi - 417c9b: 31 c0 xor %eax,%eax - 417c9d: e8 1e 99 ff ff callq 4115c0 <__libc_message> - 417ca2: e9 af fe ff ff jmpq 417b56 - 417ca7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 417cae: 00 00 - 417cb0: 89 ef mov %ebp,%edi - 417cb2: ba 5b 20 4a 00 mov $0x4a205b,%edx - 417cb7: be 3c ca 4b 00 mov $0x4bca3c,%esi - 417cbc: 83 e7 02 and $0x2,%edi - 417cbf: 31 c0 xor %eax,%eax - 417cc1: e8 fa 98 ff ff callq 4115c0 <__libc_message> - 417cc6: e9 8b fe ff ff jmpq 417b56 - 417ccb: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 417cd2: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) - 417cd9: b8 ff ff ff ff mov $0xffffffff,%eax - 417cde: e9 f0 fe ff ff jmpq 417bd3 - 417ce3: e8 18 5f ff ff callq 40dc00 - 417ce8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 417cef: 00 - -0000000000417cf0 : - 417cf0: 41 55 push %r13 - 417cf2: 41 54 push %r12 - 417cf4: 55 push %rbp - 417cf5: 53 push %rbx - 417cf6: 48 83 ec 28 sub $0x28,%rsp - 417cfa: 48 8b 47 08 mov 0x8(%rdi),%rax - 417cfe: 48 89 c6 mov %rax,%rsi - 417d01: 48 83 e6 f8 and $0xfffffffffffffff8,%rsi - 417d05: a8 02 test $0x2,%al - 417d07: 0f 84 09 01 00 00 je 417e16 - 417d0d: 48 8b 07 mov (%rdi),%rax - 417d10: 48 89 fa mov %rdi,%rdx - 417d13: 48 01 c6 add %rax,%rsi - 417d16: 48 29 c7 sub %rax,%rdi - 417d19: 48 8b 05 60 34 2b 00 mov 0x2b3460(%rip),%rax # 6cb180 <_dl_pagesize> - 417d20: 48 89 f9 mov %rdi,%rcx - 417d23: 48 09 f1 or %rsi,%rcx - 417d26: 48 83 e8 01 sub $0x1,%rax - 417d2a: 48 85 c8 test %rcx,%rax - 417d2d: 75 29 jne 417d58 - 417d2f: f0 ff 0d 92 2a 2b 00 lock decl 0x2b2a92(%rip) # 6ca7c8 - 417d36: 48 89 f0 mov %rsi,%rax - 417d39: 48 f7 d8 neg %rax - 417d3c: f0 48 01 05 94 2a 2b lock add %rax,0x2b2a94(%rip) # 6ca7d8 - 417d43: 00 - 417d44: e8 67 7f 02 00 callq 43fcb0 <__munmap> - 417d49: 48 83 c4 28 add $0x28,%rsp - 417d4d: 5b pop %rbx - 417d4e: 5d pop %rbp - 417d4f: 41 5c pop %r12 - 417d51: 41 5d pop %r13 - 417d53: c3 retq - 417d54: 0f 1f 40 00 nopl 0x0(%rax) - 417d58: 8b 1d 12 2a 2b 00 mov 0x2b2a12(%rip),%ebx # 6ca770 - 417d5e: 89 d8 mov %ebx,%eax - 417d60: 83 e0 05 and $0x5,%eax - 417d63: 83 f8 05 cmp $0x5,%eax - 417d66: 0f 84 8f 00 00 00 je 417dfb - 417d6c: f6 c3 01 test $0x1,%bl - 417d6f: 75 0f jne 417d80 - 417d71: 83 e3 02 and $0x2,%ebx - 417d74: 74 d3 je 417d49 - 417d76: e8 85 5e ff ff callq 40dc00 - 417d7b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 417d80: 48 8d 7a 10 lea 0x10(%rdx),%rdi - 417d84: 48 8d 74 24 10 lea 0x10(%rsp),%rsi - 417d89: 31 c9 xor %ecx,%ecx - 417d8b: ba 10 00 00 00 mov $0x10,%edx - 417d90: c6 44 24 10 00 movb $0x0,0x10(%rsp) - 417d95: e8 16 a1 03 00 callq 451eb0 <_itoa_word> - 417d9a: 48 39 e0 cmp %rsp,%rax - 417d9d: 48 89 c5 mov %rax,%rbp - 417da0: 76 25 jbe 417dc7 - 417da2: 48 89 c2 mov %rax,%rdx - 417da5: 48 89 c7 mov %rax,%rdi - 417da8: be 30 00 00 00 mov $0x30,%esi - 417dad: 48 29 e2 sub %rsp,%rdx - 417db0: 4c 8d 68 ff lea -0x1(%rax),%r13 - 417db4: 48 29 d7 sub %rdx,%rdi - 417db7: e8 94 85 fe ff callq 400350 <__rela_iplt_end+0x88> - 417dbc: 48 8d 44 24 ff lea -0x1(%rsp),%rax - 417dc1: 4c 29 e8 sub %r13,%rax - 417dc4: 48 01 c5 add %rax,%rbp - 417dc7: 48 8b 05 f2 54 2b 00 mov 0x2b54f2(%rip),%rax # 6cd2c0 <__libc_argv> - 417dce: ba 38 20 4a 00 mov $0x4a2038,%edx - 417dd3: 49 89 e8 mov %rbp,%r8 - 417dd6: b9 d0 23 4a 00 mov $0x4a23d0,%ecx - 417ddb: be a8 23 4a 00 mov $0x4a23a8,%esi - 417de0: 48 8b 00 mov (%rax),%rax - 417de3: 48 85 c0 test %rax,%rax - 417de6: 48 0f 45 d0 cmovne %rax,%rdx - 417dea: 83 e3 02 and $0x2,%ebx - 417ded: 31 c0 xor %eax,%eax - 417def: 89 df mov %ebx,%edi - 417df1: e8 ca 97 ff ff callq 4115c0 <__libc_message> - 417df6: e9 4e ff ff ff jmpq 417d49 - 417dfb: 83 e3 02 and $0x2,%ebx - 417dfe: ba d0 23 4a 00 mov $0x4a23d0,%edx - 417e03: be 3c ca 4b 00 mov $0x4bca3c,%esi - 417e08: 89 df mov %ebx,%edi - 417e0a: 31 c0 xor %eax,%eax - 417e0c: e8 af 97 ff ff callq 4115c0 <__libc_message> - 417e11: e9 33 ff ff ff jmpq 417d49 - 417e16: b9 78 2e 4a 00 mov $0x4a2e78,%ecx - 417e1b: ba 0f 0b 00 00 mov $0xb0f,%edx - 417e20: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 417e25: bf d1 1f 4a 00 mov $0x4a1fd1,%edi - 417e2a: e8 f1 ef ff ff callq 416e20 <__malloc_assert> - 417e2f: 90 nop - -0000000000417e30 : - 417e30: 48 83 3d 00 48 2b 00 cmpq $0x0,0x2b4800(%rip) # 6cc638 - 417e37: 00 - 417e38: 0f 84 26 07 00 00 je 418564 - 417e3e: 41 57 push %r15 - 417e40: 41 56 push %r14 - 417e42: 49 89 fe mov %rdi,%r14 - 417e45: 41 55 push %r13 - 417e47: 41 54 push %r12 - 417e49: 55 push %rbp - 417e4a: 53 push %rbx - 417e4b: 48 83 ec 68 sub $0x68,%rsp - 417e4f: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 - 417e56: 00 00 - 417e58: 74 01 je 417e5b - 417e5a: f0 83 4f 04 01 lock orl $0x1,0x4(%rdi) - 417e5f: 48 8d 47 50 lea 0x50(%rdi),%rax - 417e63: 48 8d 74 24 40 lea 0x40(%rsp),%rsi - 417e68: 4c 8d 57 58 lea 0x58(%rdi),%r10 - 417e6c: 4c 8d 5f 08 lea 0x8(%rdi),%r11 - 417e70: 48 89 44 24 08 mov %rax,0x8(%rsp) - 417e75: b8 01 00 00 00 mov $0x1,%eax - 417e7a: 48 29 f0 sub %rsi,%rax - 417e7d: 48 89 44 24 10 mov %rax,0x10(%rsp) - 417e82: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 417e88: 31 db xor %ebx,%ebx - 417e8a: 49 87 1b xchg %rbx,(%r11) - 417e8d: 48 85 db test %rbx,%rbx - 417e90: 0f 84 71 01 00 00 je 418007 - 417e96: 4c 89 1c 24 mov %r11,(%rsp) - 417e9a: 4d 89 d7 mov %r10,%r15 - 417e9d: e9 a6 00 00 00 jmpq 417f48 - 417ea2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 417ea8: 48 8b 45 08 mov 0x8(%rbp),%rax - 417eac: 4d 01 ec add %r13,%r12 - 417eaf: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 417eb3: 48 3b 44 05 00 cmp 0x0(%rbp,%rax,1),%rax - 417eb8: 0f 85 22 02 00 00 jne 4180e0 - 417ebe: 4c 8b 6d 10 mov 0x10(%rbp),%r13 - 417ec2: 48 8b 45 18 mov 0x18(%rbp),%rax - 417ec6: 49 3b 6d 18 cmp 0x18(%r13),%rbp - 417eca: 0f 85 a0 01 00 00 jne 418070 - 417ed0: 48 3b 68 10 cmp 0x10(%rax),%rbp - 417ed4: 0f 85 96 01 00 00 jne 418070 - 417eda: 48 81 7d 08 ff 03 00 cmpq $0x3ff,0x8(%rbp) - 417ee1: 00 - 417ee2: 49 89 45 18 mov %rax,0x18(%r13) - 417ee6: 4c 89 68 10 mov %r13,0x10(%rax) - 417eea: 76 14 jbe 417f00 - 417eec: 48 8b 45 20 mov 0x20(%rbp),%rax - 417ef0: 48 85 c0 test %rax,%rax - 417ef3: 0f 85 07 04 00 00 jne 418300 - 417ef9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 417f00: 49 8b 46 68 mov 0x68(%r14),%rax - 417f04: 49 81 fc ff 03 00 00 cmp $0x3ff,%r12 - 417f0b: 49 89 5e 68 mov %rbx,0x68(%r14) - 417f0f: 48 89 58 18 mov %rbx,0x18(%rax) - 417f13: 76 10 jbe 417f25 - 417f15: 48 c7 43 20 00 00 00 movq $0x0,0x20(%rbx) - 417f1c: 00 - 417f1d: 48 c7 43 28 00 00 00 movq $0x0,0x28(%rbx) - 417f24: 00 - 417f25: 4c 89 e2 mov %r12,%rdx - 417f28: 4c 89 7b 18 mov %r15,0x18(%rbx) - 417f2c: 48 89 43 10 mov %rax,0x10(%rbx) - 417f30: 48 83 ca 01 or $0x1,%rdx - 417f34: 4d 85 c9 test %r9,%r9 - 417f37: 48 89 53 08 mov %rdx,0x8(%rbx) - 417f3b: 4e 89 24 23 mov %r12,(%rbx,%r12,1) - 417f3f: 4c 89 cb mov %r9,%rbx - 417f42: 0f 84 b8 00 00 00 je 418000 - 417f48: 48 8b 43 08 mov 0x8(%rbx),%rax - 417f4c: 4c 8b 4b 10 mov 0x10(%rbx),%r9 - 417f50: 49 89 c4 mov %rax,%r12 - 417f53: 49 83 e4 fa and $0xfffffffffffffffa,%r12 - 417f57: 4a 8d 2c 23 lea (%rbx,%r12,1),%rbp - 417f5b: 4c 8b 6d 08 mov 0x8(%rbp),%r13 - 417f5f: 49 83 e5 f8 and $0xfffffffffffffff8,%r13 - 417f63: a8 01 test $0x1,%al - 417f65: 75 59 jne 417fc0 - 417f67: 48 8b 03 mov (%rbx),%rax - 417f6a: 48 29 c3 sub %rax,%rbx - 417f6d: 49 01 c4 add %rax,%r12 - 417f70: 48 8b 43 08 mov 0x8(%rbx),%rax - 417f74: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 417f78: 48 3b 04 03 cmp (%rbx,%rax,1),%rax - 417f7c: 0f 85 26 01 00 00 jne 4180a8 - 417f82: 4c 8b 5b 10 mov 0x10(%rbx),%r11 - 417f86: 48 8b 43 18 mov 0x18(%rbx),%rax - 417f8a: 49 3b 5b 18 cmp 0x18(%r11),%rbx - 417f8e: 0f 85 9c 00 00 00 jne 418030 - 417f94: 48 3b 58 10 cmp 0x10(%rax),%rbx - 417f98: 0f 85 92 00 00 00 jne 418030 - 417f9e: 48 81 7b 08 ff 03 00 cmpq $0x3ff,0x8(%rbx) - 417fa5: 00 - 417fa6: 49 89 43 18 mov %rax,0x18(%r11) - 417faa: 4c 89 58 10 mov %r11,0x10(%rax) - 417fae: 76 10 jbe 417fc0 - 417fb0: 48 8b 43 20 mov 0x20(%rbx),%rax - 417fb4: 48 85 c0 test %rax,%rax - 417fb7: 0f 85 03 03 00 00 jne 4182c0 - 417fbd: 0f 1f 00 nopl (%rax) - 417fc0: 49 3b 6e 58 cmp 0x58(%r14),%rbp - 417fc4: 74 1a je 417fe0 - 417fc6: 42 f6 44 2d 08 01 testb $0x1,0x8(%rbp,%r13,1) - 417fcc: 0f 84 d6 fe ff ff je 417ea8 - 417fd2: 48 83 65 08 fe andq $0xfffffffffffffffe,0x8(%rbp) - 417fd7: e9 24 ff ff ff jmpq 417f00 - 417fdc: 0f 1f 40 00 nopl 0x0(%rax) - 417fe0: 4d 01 ec add %r13,%r12 - 417fe3: 49 83 cc 01 or $0x1,%r12 - 417fe7: 4d 85 c9 test %r9,%r9 - 417fea: 4c 89 63 08 mov %r12,0x8(%rbx) - 417fee: 49 89 5e 58 mov %rbx,0x58(%r14) - 417ff2: 4c 89 cb mov %r9,%rbx - 417ff5: 0f 85 4d ff ff ff jne 417f48 - 417ffb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 418000: 4c 8b 1c 24 mov (%rsp),%r11 - 418004: 4d 89 fa mov %r15,%r10 - 418007: 49 83 c3 08 add $0x8,%r11 - 41800b: 49 8d 43 f8 lea -0x8(%r11),%rax - 41800f: 48 39 44 24 08 cmp %rax,0x8(%rsp) - 418014: 0f 85 6e fe ff ff jne 417e88 - 41801a: 48 83 c4 68 add $0x68,%rsp - 41801e: 5b pop %rbx - 41801f: 5d pop %rbp - 418020: 41 5c pop %r12 - 418022: 41 5d pop %r13 - 418024: 41 5e pop %r14 - 418026: 41 5f pop %r15 - 418028: c3 retq - 418029: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 418030: 4d 85 f6 test %r14,%r14 - 418033: 44 8b 1d 36 27 2b 00 mov 0x2b2736(%rip),%r11d # 6ca770 - 41803a: 74 05 je 418041 - 41803c: 41 83 4e 04 04 orl $0x4,0x4(%r14) - 418041: 44 89 d8 mov %r11d,%eax - 418044: 83 e0 05 and $0x5,%eax - 418047: 83 f8 05 cmp $0x5,%eax - 41804a: 0f 84 7f 04 00 00 je 4184cf - 418050: 41 f6 c3 01 test $0x1,%r11b - 418054: 0f 85 96 01 00 00 jne 4181f0 - 41805a: 41 83 e3 02 and $0x2,%r11d - 41805e: 0f 84 5c ff ff ff je 417fc0 - 418064: e8 97 5b ff ff callq 40dc00 - 418069: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 418070: 8b 3d fa 26 2b 00 mov 0x2b26fa(%rip),%edi # 6ca770 - 418076: 41 83 4e 04 04 orl $0x4,0x4(%r14) - 41807b: 89 f8 mov %edi,%eax - 41807d: 83 e0 05 and $0x5,%eax - 418080: 83 f8 05 cmp $0x5,%eax - 418083: 0f 84 6c 04 00 00 je 4184f5 - 418089: 41 89 fd mov %edi,%r13d - 41808c: 41 83 e5 02 and $0x2,%r13d - 418090: 83 e7 01 and $0x1,%edi - 418093: 0f 85 af 00 00 00 jne 418148 - 418099: 45 85 ed test %r13d,%r13d - 41809c: 0f 84 5e fe ff ff je 417f00 - 4180a2: eb c0 jmp 418064 - 4180a4: 0f 1f 40 00 nopl 0x0(%rax) - 4180a8: 4d 85 f6 test %r14,%r14 - 4180ab: 44 8b 1d be 26 2b 00 mov 0x2b26be(%rip),%r11d # 6ca770 - 4180b2: 74 05 je 4180b9 - 4180b4: 41 83 4e 04 04 orl $0x4,0x4(%r14) - 4180b9: 44 89 d8 mov %r11d,%eax - 4180bc: 83 e0 05 and $0x5,%eax - 4180bf: 83 f8 05 cmp $0x5,%eax - 4180c2: 0f 84 50 04 00 00 je 418518 - 4180c8: 41 f6 c3 01 test $0x1,%r11b - 4180cc: 0f 85 6e 02 00 00 jne 418340 - 4180d2: 41 83 e3 02 and $0x2,%r11d - 4180d6: 0f 84 a6 fe ff ff je 417f82 - 4180dc: eb 86 jmp 418064 - 4180de: 66 90 xchg %ax,%ax - 4180e0: 44 8b 1d 89 26 2b 00 mov 0x2b2689(%rip),%r11d # 6ca770 - 4180e7: 41 83 4e 04 04 orl $0x4,0x4(%r14) - 4180ec: 44 89 d8 mov %r11d,%eax - 4180ef: 83 e0 05 and $0x5,%eax - 4180f2: 83 f8 05 cmp $0x5,%eax - 4180f5: 0f 84 43 04 00 00 je 41853e - 4180fb: 41 f6 c3 01 test $0x1,%r11b - 4180ff: 0f 85 0b 03 00 00 jne 418410 - 418105: 41 f6 c3 02 test $0x2,%r11b - 418109: 0f 85 55 ff ff ff jne 418064 - 41810f: 4c 8b 6d 10 mov 0x10(%rbp),%r13 - 418113: 48 8b 45 18 mov 0x18(%rbp),%rax - 418117: 49 39 6d 18 cmp %rbp,0x18(%r13) - 41811b: 0f 85 df fd ff ff jne 417f00 - 418121: 48 3b 68 10 cmp 0x10(%rax),%rbp - 418125: 0f 84 af fd ff ff je 417eda - 41812b: 44 89 df mov %r11d,%edi - 41812e: 41 83 4e 04 04 orl $0x4,0x4(%r14) - 418133: 41 89 fd mov %edi,%r13d - 418136: 41 83 e5 02 and $0x2,%r13d - 41813a: 83 e7 01 and $0x1,%edi - 41813d: 0f 84 56 ff ff ff je 418099 - 418143: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 418148: 48 8d 74 24 50 lea 0x50(%rsp),%rsi - 41814d: 31 c9 xor %ecx,%ecx - 41814f: 48 89 ef mov %rbp,%rdi - 418152: ba 10 00 00 00 mov $0x10,%edx - 418157: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 41815c: c6 44 24 50 00 movb $0x0,0x50(%rsp) - 418161: e8 4a 9d 03 00 callq 451eb0 <_itoa_word> - 418166: 48 89 c5 mov %rax,%rbp - 418169: 48 8d 44 24 40 lea 0x40(%rsp),%rax - 41816e: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 418173: 48 39 c5 cmp %rax,%rbp - 418176: 76 3c jbe 4181b4 - 418178: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 41817d: 48 8d 4d ff lea -0x1(%rbp),%rcx - 418181: 48 89 ef mov %rbp,%rdi - 418184: be 30 00 00 00 mov $0x30,%esi - 418189: 4c 89 4c 24 20 mov %r9,0x20(%rsp) - 41818e: 48 89 4c 24 18 mov %rcx,0x18(%rsp) - 418193: 48 8d 14 08 lea (%rax,%rcx,1),%rdx - 418197: 48 29 d7 sub %rdx,%rdi - 41819a: e8 b1 81 fe ff callq 400350 <__rela_iplt_end+0x88> - 41819f: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx - 4181a4: 48 8d 44 24 3f lea 0x3f(%rsp),%rax - 4181a9: 4c 8b 4c 24 20 mov 0x20(%rsp),%r9 - 4181ae: 48 29 c8 sub %rcx,%rax - 4181b1: 48 01 c5 add %rax,%rbp - 4181b4: 48 8b 05 05 51 2b 00 mov 0x2b5105(%rip),%rax # 6cd2c0 <__libc_argv> - 4181bb: ba 38 20 4a 00 mov $0x4a2038,%edx - 4181c0: 49 89 e8 mov %rbp,%r8 - 4181c3: b9 95 20 4a 00 mov $0x4a2095,%ecx - 4181c8: be a8 23 4a 00 mov $0x4a23a8,%esi - 4181cd: 44 89 ef mov %r13d,%edi - 4181d0: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 4181d5: 48 8b 00 mov (%rax),%rax - 4181d8: 48 85 c0 test %rax,%rax - 4181db: 48 0f 45 d0 cmovne %rax,%rdx - 4181df: 31 c0 xor %eax,%eax - 4181e1: e8 da 93 ff ff callq 4115c0 <__libc_message> - 4181e6: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 4181eb: e9 10 fd ff ff jmpq 417f00 - 4181f0: 48 8d 74 24 50 lea 0x50(%rsp),%rsi - 4181f5: 31 c9 xor %ecx,%ecx - 4181f7: ba 10 00 00 00 mov $0x10,%edx - 4181fc: 48 89 df mov %rbx,%rdi - 4181ff: 44 89 5c 24 20 mov %r11d,0x20(%rsp) - 418204: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 418209: c6 44 24 50 00 movb $0x0,0x50(%rsp) - 41820e: e8 9d 9c 03 00 callq 451eb0 <_itoa_word> - 418213: 49 89 c0 mov %rax,%r8 - 418216: 48 8d 44 24 40 lea 0x40(%rsp),%rax - 41821b: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 418220: 44 8b 5c 24 20 mov 0x20(%rsp),%r11d - 418225: 49 39 c0 cmp %rax,%r8 - 418228: 76 50 jbe 41827a - 41822a: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 41822f: 49 8d 48 ff lea -0x1(%r8),%rcx - 418233: 4c 89 c7 mov %r8,%rdi - 418236: be 30 00 00 00 mov $0x30,%esi - 41823b: 44 89 5c 24 30 mov %r11d,0x30(%rsp) - 418240: 4c 89 4c 24 28 mov %r9,0x28(%rsp) - 418245: 48 89 4c 24 20 mov %rcx,0x20(%rsp) - 41824a: 4c 89 44 24 18 mov %r8,0x18(%rsp) - 41824f: 48 8d 14 08 lea (%rax,%rcx,1),%rdx - 418253: 48 29 d7 sub %rdx,%rdi - 418256: e8 f5 80 fe ff callq 400350 <__rela_iplt_end+0x88> - 41825b: 48 8b 4c 24 20 mov 0x20(%rsp),%rcx - 418260: 48 8d 44 24 3f lea 0x3f(%rsp),%rax - 418265: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 - 41826a: 44 8b 5c 24 30 mov 0x30(%rsp),%r11d - 41826f: 4c 8b 4c 24 28 mov 0x28(%rsp),%r9 - 418274: 48 29 c8 sub %rcx,%rax - 418277: 49 01 c0 add %rax,%r8 - 41827a: 48 8b 05 3f 50 2b 00 mov 0x2b503f(%rip),%rax # 6cd2c0 <__libc_argv> - 418281: 44 89 df mov %r11d,%edi - 418284: ba 38 20 4a 00 mov $0x4a2038,%edx - 418289: b9 95 20 4a 00 mov $0x4a2095,%ecx - 41828e: be a8 23 4a 00 mov $0x4a23a8,%esi - 418293: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 418298: 48 8b 00 mov (%rax),%rax - 41829b: 48 85 c0 test %rax,%rax - 41829e: 48 0f 45 d0 cmovne %rax,%rdx - 4182a2: 83 e7 02 and $0x2,%edi - 4182a5: 31 c0 xor %eax,%eax - 4182a7: e8 14 93 ff ff callq 4115c0 <__libc_message> - 4182ac: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 4182b1: e9 0a fd ff ff jmpq 417fc0 - 4182b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4182bd: 00 00 00 - 4182c0: 48 3b 58 28 cmp 0x28(%rax),%rbx - 4182c4: 0f 85 dd 02 00 00 jne 4185a7 - 4182ca: 48 8b 53 28 mov 0x28(%rbx),%rdx - 4182ce: 48 3b 5a 20 cmp 0x20(%rdx),%rbx - 4182d2: 0f 85 cf 02 00 00 jne 4185a7 - 4182d8: 49 83 7b 20 00 cmpq $0x0,0x20(%r11) - 4182dd: 0f 84 03 03 00 00 je 4185e6 - 4182e3: 48 8b 53 28 mov 0x28(%rbx),%rdx - 4182e7: 48 89 50 28 mov %rdx,0x28(%rax) - 4182eb: 48 8b 53 28 mov 0x28(%rbx),%rdx - 4182ef: 48 89 42 20 mov %rax,0x20(%rdx) - 4182f3: e9 c8 fc ff ff jmpq 417fc0 - 4182f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4182ff: 00 - 418300: 48 3b 68 28 cmp 0x28(%rax),%rbp - 418304: 0f 85 06 03 00 00 jne 418610 - 41830a: 48 8b 55 28 mov 0x28(%rbp),%rdx - 41830e: 48 3b 6a 20 cmp 0x20(%rdx),%rbp - 418312: 0f 85 f8 02 00 00 jne 418610 - 418318: 49 83 7d 20 00 cmpq $0x0,0x20(%r13) - 41831d: 0f 84 27 03 00 00 je 41864a - 418323: 48 8b 55 28 mov 0x28(%rbp),%rdx - 418327: 48 89 50 28 mov %rdx,0x28(%rax) - 41832b: 48 8b 55 28 mov 0x28(%rbp),%rdx - 41832f: 48 89 42 20 mov %rax,0x20(%rdx) - 418333: e9 c8 fb ff ff jmpq 417f00 - 418338: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41833f: 00 - 418340: 48 8d 74 24 50 lea 0x50(%rsp),%rsi - 418345: 31 c9 xor %ecx,%ecx - 418347: ba 10 00 00 00 mov $0x10,%edx - 41834c: 48 89 df mov %rbx,%rdi - 41834f: 44 89 5c 24 20 mov %r11d,0x20(%rsp) - 418354: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 418359: c6 44 24 50 00 movb $0x0,0x50(%rsp) - 41835e: e8 4d 9b 03 00 callq 451eb0 <_itoa_word> - 418363: 49 89 c0 mov %rax,%r8 - 418366: 48 8d 44 24 40 lea 0x40(%rsp),%rax - 41836b: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 418370: 44 8b 5c 24 20 mov 0x20(%rsp),%r11d - 418375: 49 39 c0 cmp %rax,%r8 - 418378: 76 50 jbe 4183ca - 41837a: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 41837f: 49 8d 48 ff lea -0x1(%r8),%rcx - 418383: 4c 89 c7 mov %r8,%rdi - 418386: be 30 00 00 00 mov $0x30,%esi - 41838b: 44 89 5c 24 30 mov %r11d,0x30(%rsp) - 418390: 4c 89 4c 24 28 mov %r9,0x28(%rsp) - 418395: 48 89 4c 24 20 mov %rcx,0x20(%rsp) - 41839a: 4c 89 44 24 18 mov %r8,0x18(%rsp) - 41839f: 48 8d 14 08 lea (%rax,%rcx,1),%rdx - 4183a3: 48 29 d7 sub %rdx,%rdi - 4183a6: e8 a5 7f fe ff callq 400350 <__rela_iplt_end+0x88> - 4183ab: 48 8b 4c 24 20 mov 0x20(%rsp),%rcx - 4183b0: 48 8d 44 24 3f lea 0x3f(%rsp),%rax - 4183b5: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 - 4183ba: 44 8b 5c 24 30 mov 0x30(%rsp),%r11d - 4183bf: 4c 8b 4c 24 28 mov 0x28(%rsp),%r9 - 4183c4: 48 29 c8 sub %rcx,%rax - 4183c7: 49 01 c0 add %rax,%r8 - 4183ca: 48 8b 05 ef 4e 2b 00 mov 0x2b4eef(%rip),%rax # 6cd2c0 <__libc_argv> - 4183d1: 44 89 df mov %r11d,%edi - 4183d4: ba 38 20 4a 00 mov $0x4a2038,%edx - 4183d9: b9 78 20 4a 00 mov $0x4a2078,%ecx - 4183de: be a8 23 4a 00 mov $0x4a23a8,%esi - 4183e3: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 4183e8: 48 8b 00 mov (%rax),%rax - 4183eb: 48 85 c0 test %rax,%rax - 4183ee: 48 0f 45 d0 cmovne %rax,%rdx - 4183f2: 83 e7 02 and $0x2,%edi - 4183f5: 31 c0 xor %eax,%eax - 4183f7: e8 c4 91 ff ff callq 4115c0 <__libc_message> - 4183fc: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 418401: e9 7c fb ff ff jmpq 417f82 - 418406: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41840d: 00 00 00 - 418410: 48 8d 74 24 50 lea 0x50(%rsp),%rsi - 418415: 31 c9 xor %ecx,%ecx - 418417: ba 10 00 00 00 mov $0x10,%edx - 41841c: 48 89 ef mov %rbp,%rdi - 41841f: 44 89 5c 24 20 mov %r11d,0x20(%rsp) - 418424: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 418429: c6 44 24 50 00 movb $0x0,0x50(%rsp) - 41842e: e8 7d 9a 03 00 callq 451eb0 <_itoa_word> - 418433: 49 89 c5 mov %rax,%r13 - 418436: 48 8d 44 24 40 lea 0x40(%rsp),%rax - 41843b: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 418440: 44 8b 5c 24 20 mov 0x20(%rsp),%r11d - 418445: 49 39 c5 cmp %rax,%r13 - 418448: 76 46 jbe 418490 - 41844a: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 41844f: 49 8d 4d ff lea -0x1(%r13),%rcx - 418453: 4c 89 ef mov %r13,%rdi - 418456: be 30 00 00 00 mov $0x30,%esi - 41845b: 44 89 5c 24 28 mov %r11d,0x28(%rsp) - 418460: 4c 89 4c 24 20 mov %r9,0x20(%rsp) - 418465: 48 89 4c 24 18 mov %rcx,0x18(%rsp) - 41846a: 48 8d 14 08 lea (%rax,%rcx,1),%rdx - 41846e: 48 29 d7 sub %rdx,%rdi - 418471: e8 da 7e fe ff callq 400350 <__rela_iplt_end+0x88> - 418476: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx - 41847b: 48 8d 44 24 3f lea 0x3f(%rsp),%rax - 418480: 44 8b 5c 24 28 mov 0x28(%rsp),%r11d - 418485: 4c 8b 4c 24 20 mov 0x20(%rsp),%r9 - 41848a: 48 29 c8 sub %rcx,%rax - 41848d: 49 01 c5 add %rax,%r13 - 418490: 48 8b 05 29 4e 2b 00 mov 0x2b4e29(%rip),%rax # 6cd2c0 <__libc_argv> - 418497: 44 89 df mov %r11d,%edi - 41849a: ba 38 20 4a 00 mov $0x4a2038,%edx - 41849f: 4d 89 e8 mov %r13,%r8 - 4184a2: b9 78 20 4a 00 mov $0x4a2078,%ecx - 4184a7: be a8 23 4a 00 mov $0x4a23a8,%esi - 4184ac: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 4184b1: 48 8b 00 mov (%rax),%rax - 4184b4: 48 85 c0 test %rax,%rax - 4184b7: 48 0f 45 d0 cmovne %rax,%rdx - 4184bb: 83 e7 02 and $0x2,%edi - 4184be: 31 c0 xor %eax,%eax - 4184c0: e8 fb 90 ff ff callq 4115c0 <__libc_message> - 4184c5: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 4184ca: e9 ef f9 ff ff jmpq 417ebe - 4184cf: 44 89 df mov %r11d,%edi - 4184d2: ba 95 20 4a 00 mov $0x4a2095,%edx - 4184d7: be 3c ca 4b 00 mov $0x4bca3c,%esi - 4184dc: 83 e7 02 and $0x2,%edi - 4184df: 31 c0 xor %eax,%eax - 4184e1: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 4184e6: e8 d5 90 ff ff callq 4115c0 <__libc_message> - 4184eb: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 4184f0: e9 cb fa ff ff jmpq 417fc0 - 4184f5: 83 e7 02 and $0x2,%edi - 4184f8: ba 95 20 4a 00 mov $0x4a2095,%edx - 4184fd: be 3c ca 4b 00 mov $0x4bca3c,%esi - 418502: 31 c0 xor %eax,%eax - 418504: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 418509: e8 b2 90 ff ff callq 4115c0 <__libc_message> - 41850e: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 418513: e9 e8 f9 ff ff jmpq 417f00 - 418518: 44 89 df mov %r11d,%edi - 41851b: ba 78 20 4a 00 mov $0x4a2078,%edx - 418520: be 3c ca 4b 00 mov $0x4bca3c,%esi - 418525: 83 e7 02 and $0x2,%edi - 418528: 31 c0 xor %eax,%eax - 41852a: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 41852f: e8 8c 90 ff ff callq 4115c0 <__libc_message> - 418534: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 418539: e9 44 fa ff ff jmpq 417f82 - 41853e: 44 89 df mov %r11d,%edi - 418541: ba 78 20 4a 00 mov $0x4a2078,%edx - 418546: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41854b: 83 e7 02 and $0x2,%edi - 41854e: 31 c0 xor %eax,%eax - 418550: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 418555: e8 66 90 ff ff callq 4115c0 <__libc_message> - 41855a: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 41855f: e9 5a f9 ff ff jmpq 417ebe - 418564: 48 8d 4f 58 lea 0x58(%rdi),%rcx - 418568: 48 8d 97 48 08 00 00 lea 0x848(%rdi),%rdx - 41856f: 48 89 c8 mov %rcx,%rax - 418572: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 418578: 48 89 40 18 mov %rax,0x18(%rax) - 41857c: 48 89 40 10 mov %rax,0x10(%rax) - 418580: 48 83 c0 10 add $0x10,%rax - 418584: 48 39 c2 cmp %rax,%rdx - 418587: 75 ef jne 418578 - 418589: 48 81 ff 00 a8 6c 00 cmp $0x6ca800,%rdi - 418590: 0f 84 93 02 00 00 je 418829 - 418596: 8b 47 04 mov 0x4(%rdi),%eax - 418599: 83 c8 02 or $0x2,%eax - 41859c: 83 c8 01 or $0x1,%eax - 41859f: 48 89 4f 58 mov %rcx,0x58(%rdi) - 4185a3: 89 47 04 mov %eax,0x4(%rdi) - 4185a6: c3 retq - 4185a7: 4d 85 f6 test %r14,%r14 - 4185aa: 44 8b 05 bf 21 2b 00 mov 0x2b21bf(%rip),%r8d # 6ca770 - 4185b1: 74 05 je 4185b8 - 4185b3: 41 83 4e 04 04 orl $0x4,0x4(%r14) - 4185b8: 44 89 c2 mov %r8d,%edx - 4185bb: 83 e2 05 and $0x5,%edx - 4185be: 83 fa 05 cmp $0x5,%edx - 4185c1: 0f 84 85 02 00 00 je 41884c - 4185c7: 41 f6 c0 01 test $0x1,%r8b - 4185cb: 0f 85 a3 00 00 00 jne 418674 - 4185d1: 41 83 e0 02 and $0x2,%r8d - 4185d5: 0f 85 89 fa ff ff jne 418064 - 4185db: 49 83 7b 20 00 cmpq $0x0,0x20(%r11) - 4185e0: 0f 85 fd fc ff ff jne 4182e3 - 4185e6: 48 39 c3 cmp %rax,%rbx - 4185e9: 0f 84 50 02 00 00 je 41883f - 4185ef: 49 89 43 20 mov %rax,0x20(%r11) - 4185f3: 48 8b 43 28 mov 0x28(%rbx),%rax - 4185f7: 49 89 43 28 mov %rax,0x28(%r11) - 4185fb: 48 8b 43 20 mov 0x20(%rbx),%rax - 4185ff: 4c 89 58 28 mov %r11,0x28(%rax) - 418603: 48 8b 43 28 mov 0x28(%rbx),%rax - 418607: 4c 89 58 20 mov %r11,0x20(%rax) - 41860b: e9 b0 f9 ff ff jmpq 417fc0 - 418610: 44 8b 1d 59 21 2b 00 mov 0x2b2159(%rip),%r11d # 6ca770 - 418617: 41 83 4e 04 04 orl $0x4,0x4(%r14) - 41861c: 44 89 da mov %r11d,%edx - 41861f: 83 e2 05 and $0x5,%edx - 418622: 83 fa 05 cmp $0x5,%edx - 418625: 0f 84 62 02 00 00 je 41888d - 41862b: 41 f6 c3 01 test $0x1,%r11b - 41862f: 0f 85 2a 01 00 00 jne 41875f - 418635: 41 83 e3 02 and $0x2,%r11d - 418639: 0f 85 25 fa ff ff jne 418064 - 41863f: 49 83 7d 20 00 cmpq $0x0,0x20(%r13) - 418644: 0f 85 d9 fc ff ff jne 418323 - 41864a: 48 39 c5 cmp %rax,%rbp - 41864d: 0f 84 2d 02 00 00 je 418880 - 418653: 49 89 45 20 mov %rax,0x20(%r13) - 418657: 48 8b 45 28 mov 0x28(%rbp),%rax - 41865b: 49 89 45 28 mov %rax,0x28(%r13) - 41865f: 48 8b 45 20 mov 0x20(%rbp),%rax - 418663: 4c 89 68 28 mov %r13,0x28(%rax) - 418667: 48 8b 45 28 mov 0x28(%rbp),%rax - 41866b: 4c 89 68 20 mov %r13,0x20(%rax) - 41866f: e9 8c f8 ff ff jmpq 417f00 - 418674: 48 8d 74 24 50 lea 0x50(%rsp),%rsi - 418679: 31 c9 xor %ecx,%ecx - 41867b: ba 10 00 00 00 mov $0x10,%edx - 418680: 48 89 df mov %rbx,%rdi - 418683: 44 89 44 24 28 mov %r8d,0x28(%rsp) - 418688: 4c 89 5c 24 20 mov %r11,0x20(%rsp) - 41868d: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 418692: c6 44 24 50 00 movb $0x0,0x50(%rsp) - 418697: e8 14 98 03 00 callq 451eb0 <_itoa_word> - 41869c: 48 89 c1 mov %rax,%rcx - 41869f: 48 8d 44 24 40 lea 0x40(%rsp),%rax - 4186a4: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 4186a9: 4c 8b 5c 24 20 mov 0x20(%rsp),%r11 - 4186ae: 44 8b 44 24 28 mov 0x28(%rsp),%r8d - 4186b3: 48 39 c1 cmp %rax,%rcx - 4186b6: 76 5a jbe 418712 - 4186b8: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 4186bd: 4c 8d 51 ff lea -0x1(%rcx),%r10 - 4186c1: 48 89 cf mov %rcx,%rdi - 4186c4: be 30 00 00 00 mov $0x30,%esi - 4186c9: 44 89 44 24 3c mov %r8d,0x3c(%rsp) - 4186ce: 4c 89 5c 24 30 mov %r11,0x30(%rsp) - 4186d3: 4c 89 4c 24 28 mov %r9,0x28(%rsp) - 4186d8: 4c 89 54 24 20 mov %r10,0x20(%rsp) - 4186dd: 4a 8d 14 10 lea (%rax,%r10,1),%rdx - 4186e1: 48 89 4c 24 18 mov %rcx,0x18(%rsp) - 4186e6: 48 29 d7 sub %rdx,%rdi - 4186e9: e8 62 7c fe ff callq 400350 <__rela_iplt_end+0x88> - 4186ee: 4c 8b 54 24 20 mov 0x20(%rsp),%r10 - 4186f3: 48 8d 44 24 3f lea 0x3f(%rsp),%rax - 4186f8: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx - 4186fd: 44 8b 44 24 3c mov 0x3c(%rsp),%r8d - 418702: 4c 8b 5c 24 30 mov 0x30(%rsp),%r11 - 418707: 4c 8b 4c 24 28 mov 0x28(%rsp),%r9 - 41870c: 4c 29 d0 sub %r10,%rax - 41870f: 48 01 c1 add %rax,%rcx - 418712: 48 8b 05 a7 4b 2b 00 mov 0x2b4ba7(%rip),%rax # 6cd2c0 <__libc_argv> - 418719: 44 89 c7 mov %r8d,%edi - 41871c: ba 38 20 4a 00 mov $0x4a2038,%edx - 418721: 49 89 c8 mov %rcx,%r8 - 418724: be a8 23 4a 00 mov $0x4a23a8,%esi - 418729: b9 f0 23 4a 00 mov $0x4a23f0,%ecx - 41872e: 4c 89 5c 24 20 mov %r11,0x20(%rsp) - 418733: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 418738: 48 8b 00 mov (%rax),%rax - 41873b: 48 85 c0 test %rax,%rax - 41873e: 48 0f 45 d0 cmovne %rax,%rdx - 418742: 31 c0 xor %eax,%eax - 418744: 83 e7 02 and $0x2,%edi - 418747: e8 74 8e ff ff callq 4115c0 <__libc_message> - 41874c: 48 8b 43 20 mov 0x20(%rbx),%rax - 418750: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 418755: 4c 8b 5c 24 20 mov 0x20(%rsp),%r11 - 41875a: e9 79 fb ff ff jmpq 4182d8 - 41875f: 48 8d 74 24 50 lea 0x50(%rsp),%rsi - 418764: 31 c9 xor %ecx,%ecx - 418766: ba 10 00 00 00 mov $0x10,%edx - 41876b: 48 89 ef mov %rbp,%rdi - 41876e: 44 89 5c 24 20 mov %r11d,0x20(%rsp) - 418773: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 418778: c6 44 24 50 00 movb $0x0,0x50(%rsp) - 41877d: e8 2e 97 03 00 callq 451eb0 <_itoa_word> - 418782: 49 89 c0 mov %rax,%r8 - 418785: 48 8d 44 24 40 lea 0x40(%rsp),%rax - 41878a: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 41878f: 44 8b 5c 24 20 mov 0x20(%rsp),%r11d - 418794: 49 39 c0 cmp %rax,%r8 - 418797: 76 50 jbe 4187e9 - 418799: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 41879e: 49 8d 48 ff lea -0x1(%r8),%rcx - 4187a2: 4c 89 c7 mov %r8,%rdi - 4187a5: be 30 00 00 00 mov $0x30,%esi - 4187aa: 44 89 5c 24 30 mov %r11d,0x30(%rsp) - 4187af: 4c 89 4c 24 28 mov %r9,0x28(%rsp) - 4187b4: 48 89 4c 24 20 mov %rcx,0x20(%rsp) - 4187b9: 4c 89 44 24 18 mov %r8,0x18(%rsp) - 4187be: 48 8d 14 08 lea (%rax,%rcx,1),%rdx - 4187c2: 48 29 d7 sub %rdx,%rdi - 4187c5: e8 86 7b fe ff callq 400350 <__rela_iplt_end+0x88> - 4187ca: 48 8b 4c 24 20 mov 0x20(%rsp),%rcx - 4187cf: 48 8d 44 24 3f lea 0x3f(%rsp),%rax - 4187d4: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 - 4187d9: 44 8b 5c 24 30 mov 0x30(%rsp),%r11d - 4187de: 4c 8b 4c 24 28 mov 0x28(%rsp),%r9 - 4187e3: 48 29 c8 sub %rcx,%rax - 4187e6: 49 01 c0 add %rax,%r8 - 4187e9: 48 8b 05 d0 4a 2b 00 mov 0x2b4ad0(%rip),%rax # 6cd2c0 <__libc_argv> - 4187f0: 44 89 df mov %r11d,%edi - 4187f3: ba 38 20 4a 00 mov $0x4a2038,%edx - 4187f8: b9 f0 23 4a 00 mov $0x4a23f0,%ecx - 4187fd: be a8 23 4a 00 mov $0x4a23a8,%esi - 418802: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 418807: 48 8b 00 mov (%rax),%rax - 41880a: 48 85 c0 test %rax,%rax - 41880d: 48 0f 45 d0 cmovne %rax,%rdx - 418811: 31 c0 xor %eax,%eax - 418813: 83 e7 02 and $0x2,%edi - 418816: e8 a5 8d ff ff callq 4115c0 <__libc_message> - 41881b: 48 8b 45 20 mov 0x20(%rbp),%rax - 41881f: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 418824: e9 ef fa ff ff jmpq 418318 - 418829: 48 c7 05 04 3e 2b 00 movq $0x80,0x2b3e04(%rip) # 6cc638 - 418830: 80 00 00 00 - 418834: 8b 05 ca 1f 2b 00 mov 0x2b1fca(%rip),%eax # 6ca804 - 41883a: e9 5d fd ff ff jmpq 41859c - 41883f: 4d 89 5b 28 mov %r11,0x28(%r11) - 418843: 4d 89 5b 20 mov %r11,0x20(%r11) - 418847: e9 74 f7 ff ff jmpq 417fc0 - 41884c: 44 89 c7 mov %r8d,%edi - 41884f: 31 c0 xor %eax,%eax - 418851: ba f0 23 4a 00 mov $0x4a23f0,%edx - 418856: 83 e7 02 and $0x2,%edi - 418859: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41885e: 4c 89 5c 24 20 mov %r11,0x20(%rsp) - 418863: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 418868: e8 53 8d ff ff callq 4115c0 <__libc_message> - 41886d: 48 8b 43 20 mov 0x20(%rbx),%rax - 418871: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 418876: 4c 8b 5c 24 20 mov 0x20(%rsp),%r11 - 41887b: e9 58 fa ff ff jmpq 4182d8 - 418880: 4d 89 6d 28 mov %r13,0x28(%r13) - 418884: 4d 89 6d 20 mov %r13,0x20(%r13) - 418888: e9 73 f6 ff ff jmpq 417f00 - 41888d: 44 89 df mov %r11d,%edi - 418890: 31 c0 xor %eax,%eax - 418892: ba f0 23 4a 00 mov $0x4a23f0,%edx - 418897: 83 e7 02 and $0x2,%edi - 41889a: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41889f: 4c 89 4c 24 18 mov %r9,0x18(%rsp) - 4188a4: e8 17 8d ff ff callq 4115c0 <__libc_message> - 4188a9: 48 8b 45 20 mov 0x20(%rbp),%rax - 4188ad: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 4188b2: e9 61 fa ff ff jmpq 418318 - 4188b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4188be: 00 00 - -00000000004188c0 : - 4188c0: 41 54 push %r12 - 4188c2: 55 push %rbp - 4188c3: 49 89 f4 mov %rsi,%r12 - 4188c6: 53 push %rbx - 4188c7: 48 8b 47 58 mov 0x58(%rdi),%rax - 4188cb: 48 89 fb mov %rdi,%rbx - 4188ce: 48 85 c0 test %rax,%rax - 4188d1: 0f 84 f4 00 00 00 je 4189cb - 4188d7: 48 8b 68 08 mov 0x8(%rax),%rbp - 4188db: 48 8d 7b 08 lea 0x8(%rbx),%rdi - 4188df: 4c 8d 43 58 lea 0x58(%rbx),%r8 - 4188e3: 45 31 d2 xor %r10d,%r10d - 4188e6: 45 31 c9 xor %r9d,%r9d - 4188e9: 48 89 e9 mov %rbp,%rcx - 4188ec: 48 83 e1 f8 and $0xfffffffffffffff8,%rcx - 4188f0: 48 8b 07 mov (%rdi),%rax - 4188f3: 48 85 c0 test %rax,%rax - 4188f6: 74 20 je 418918 - 4188f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4188ff: 00 - 418900: 48 8b 50 08 mov 0x8(%rax),%rdx - 418904: 48 8b 40 10 mov 0x10(%rax),%rax - 418908: 41 83 c2 01 add $0x1,%r10d - 41890c: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx - 418910: 49 01 d1 add %rdx,%r9 - 418913: 48 85 c0 test %rax,%rax - 418916: 75 e8 jne 418900 - 418918: 48 83 c7 08 add $0x8,%rdi - 41891c: 4c 39 c7 cmp %r8,%rdi - 41891f: 75 cf jne 4188f0 - 418921: 4c 8d 9b 48 08 00 00 lea 0x848(%rbx),%r11 - 418928: 4c 01 c9 add %r9,%rcx - 41892b: bf 01 00 00 00 mov $0x1,%edi - 418930: 49 8b 40 18 mov 0x18(%r8),%rax - 418934: 49 39 c0 cmp %rax,%r8 - 418937: 74 1e je 418957 - 418939: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 418940: 48 8b 50 08 mov 0x8(%rax),%rdx - 418944: 48 8b 40 18 mov 0x18(%rax),%rax - 418948: 83 c7 01 add $0x1,%edi - 41894b: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx - 41894f: 48 01 d1 add %rdx,%rcx - 418952: 49 39 c0 cmp %rax,%r8 - 418955: 75 e9 jne 418940 - 418957: 49 83 c0 10 add $0x10,%r8 - 41895b: 4d 39 c3 cmp %r8,%r11 - 41895e: 75 d0 jne 418930 - 418960: 48 8b 93 80 08 00 00 mov 0x880(%rbx),%rdx - 418967: 41 8b 44 24 1c mov 0x1c(%r12),%eax - 41896c: 45 01 54 24 08 add %r10d,0x8(%r12) - 418971: 41 01 7c 24 04 add %edi,0x4(%r12) - 418976: 01 d0 add %edx,%eax - 418978: 41 01 4c 24 20 add %ecx,0x20(%r12) - 41897d: 41 01 14 24 add %edx,(%r12) - 418981: 29 c8 sub %ecx,%eax - 418983: 45 01 4c 24 18 add %r9d,0x18(%r12) - 418988: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx - 41898f: 41 89 44 24 1c mov %eax,0x1c(%r12) - 418994: 74 05 je 41899b - 418996: 5b pop %rbx - 418997: 5d pop %rbp - 418998: 41 5c pop %r12 - 41899a: c3 retq - 41899b: 8b 05 27 1e 2b 00 mov 0x2b1e27(%rip),%eax # 6ca7c8 - 4189a1: 83 e5 f8 and $0xfffffff8,%ebp - 4189a4: 5b pop %rbx - 4189a5: 41 89 44 24 0c mov %eax,0xc(%r12) - 4189aa: 48 8b 05 27 1e 2b 00 mov 0x2b1e27(%rip),%rax # 6ca7d8 - 4189b1: 41 89 44 24 10 mov %eax,0x10(%r12) - 4189b6: 48 8b 05 2b 1e 2b 00 mov 0x2b1e2b(%rip),%rax # 6ca7e8 - 4189bd: 41 89 6c 24 24 mov %ebp,0x24(%r12) - 4189c2: 5d pop %rbp - 4189c3: 41 89 44 24 14 mov %eax,0x14(%r12) - 4189c8: 41 5c pop %r12 - 4189ca: c3 retq - 4189cb: e8 60 f4 ff ff callq 417e30 - 4189d0: 48 8b 43 58 mov 0x58(%rbx),%rax - 4189d4: e9 fe fe ff ff jmpq 4188d7 - 4189d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -00000000004189e0 : - 4189e0: 48 85 ff test %rdi,%rdi - 4189e3: 0f 84 1b 04 00 00 je 418e04 - 4189e9: 41 57 push %r15 - 4189eb: 41 56 push %r14 - 4189ed: 49 89 f8 mov %rdi,%r8 - 4189f0: 41 55 push %r13 - 4189f2: 41 54 push %r12 - 4189f4: be 01 00 00 00 mov $0x1,%esi - 4189f9: 55 push %rbp - 4189fa: 53 push %rbx - 4189fb: 31 c0 xor %eax,%eax - 4189fd: 48 83 ec 38 sub $0x38,%rsp - 418a01: 83 3d b4 47 2b 00 00 cmpl $0x0,0x2b47b4(%rip) # 6cd1bc <__libc_multiple_threads> - 418a08: 74 0c je 418a16 - 418a0a: f0 0f b1 35 ee 1d 2b lock cmpxchg %esi,0x2b1dee(%rip) # 6ca800 - 418a11: 00 - 418a12: 75 0b jne 418a1f - 418a14: eb 23 jmp 418a39 - 418a16: 0f b1 35 e3 1d 2b 00 cmpxchg %esi,0x2b1de3(%rip) # 6ca800 - 418a1d: 74 1a je 418a39 - 418a1f: 48 8d 3d da 1d 2b 00 lea 0x2b1dda(%rip),%rdi # 6ca800 - 418a26: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 418a2d: e8 9e 9b 02 00 callq 4425d0 <__lll_lock_wait_private> - 418a32: 48 81 c4 80 00 00 00 add $0x80,%rsp - 418a39: 41 f6 c0 0f test $0xf,%r8b - 418a3d: 0f 85 35 04 00 00 jne 418e78 - 418a43: 49 8d 58 f0 lea -0x10(%r8),%rbx - 418a47: 49 8b 40 f8 mov -0x8(%r8),%rax - 418a4b: 48 89 df mov %rbx,%rdi - 418a4e: 48 89 d9 mov %rbx,%rcx - 418a51: 48 c1 e9 0b shr $0xb,%rcx - 418a55: 48 c1 ef 03 shr $0x3,%rdi - 418a59: 48 89 c2 mov %rax,%rdx - 418a5c: 31 cf xor %ecx,%edi - 418a5e: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx - 418a62: b9 02 00 00 00 mov $0x2,%ecx - 418a67: 40 80 ff 01 cmp $0x1,%dil - 418a6b: 0f 44 f9 cmove %ecx,%edi - 418a6e: a8 02 test $0x2,%al - 418a70: 0f 84 9a 03 00 00 je 418e10 - 418a76: 48 8b 05 03 27 2b 00 mov 0x2b2703(%rip),%rax # 6cb180 <_dl_pagesize> - 418a7d: 48 8d 48 ff lea -0x1(%rax),%rcx - 418a81: 4c 89 c0 mov %r8,%rax - 418a84: 48 21 c8 and %rcx,%rax - 418a87: 48 8d 70 f0 lea -0x10(%rax),%rsi - 418a8b: 48 f7 c6 ef ff ff ff test $0xffffffffffffffef,%rsi - 418a92: 74 34 je 418ac8 - 418a94: 48 8d 70 ff lea -0x1(%rax),%rsi - 418a98: 48 81 fe fe 1f 00 00 cmp $0x1ffe,%rsi - 418a9f: 77 27 ja 418ac8 - 418aa1: 48 8d 70 c0 lea -0x40(%rax),%rsi - 418aa5: 48 f7 c6 bf ff ff ff test $0xffffffffffffffbf,%rsi - 418aac: 74 1a je 418ac8 - 418aae: 48 8d b0 00 ff ff ff lea -0x100(%rax),%rsi - 418ab5: 48 f7 c6 ff fe ff ff test $0xfffffffffffffeff,%rsi - 418abc: 0f 85 5e 06 00 00 jne 419120 - 418ac2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 418ac8: 49 8b 40 f8 mov -0x8(%r8),%rax - 418acc: 83 e0 03 and $0x3,%eax - 418acf: 48 83 f8 02 cmp $0x2,%rax - 418ad3: 0f 85 9f 03 00 00 jne 418e78 - 418ad9: 49 8b 40 f0 mov -0x10(%r8),%rax - 418add: 48 89 de mov %rbx,%rsi - 418ae0: 48 29 c6 sub %rax,%rsi - 418ae3: 48 01 d0 add %rdx,%rax - 418ae6: 48 09 f0 or %rsi,%rax - 418ae9: 48 85 c8 test %rcx,%rax - 418aec: 0f 85 86 03 00 00 jne 418e78 - 418af2: 48 83 ea 01 sub $0x1,%rdx - 418af6: 40 0f b6 ff movzbl %dil,%edi - 418afa: 48 8d 34 13 lea (%rbx,%rdx,1),%rsi - 418afe: 0f b6 06 movzbl (%rsi),%eax - 418b01: 48 39 f8 cmp %rdi,%rax - 418b04: 48 89 c1 mov %rax,%rcx - 418b07: 74 3f je 418b48 - 418b09: 48 85 c0 test %rax,%rax - 418b0c: 0f 84 66 03 00 00 je 418e78 - 418b12: 48 8d 48 10 lea 0x10(%rax),%rcx - 418b16: 48 39 ca cmp %rcx,%rdx - 418b19: 73 1b jae 418b36 - 418b1b: e9 58 03 00 00 jmpq 418e78 - 418b20: 48 85 c0 test %rax,%rax - 418b23: 0f 84 4f 03 00 00 je 418e78 - 418b29: 48 8d 48 10 lea 0x10(%rax),%rcx - 418b2d: 48 39 d1 cmp %rdx,%rcx - 418b30: 0f 87 42 03 00 00 ja 418e78 - 418b36: 48 29 c2 sub %rax,%rdx - 418b39: 48 8d 34 13 lea (%rbx,%rdx,1),%rsi - 418b3d: 0f b6 06 movzbl (%rsi),%eax - 418b40: 48 39 f8 cmp %rdi,%rax - 418b43: 48 89 c1 mov %rax,%rcx - 418b46: 75 d8 jne 418b20 - 418b48: f7 d1 not %ecx - 418b4a: 48 85 db test %rbx,%rbx - 418b4d: 88 0e mov %cl,(%rsi) - 418b4f: 0f 84 23 03 00 00 je 418e78 - 418b55: 4d 8b 60 f8 mov -0x8(%r8),%r12 - 418b59: 41 f6 c4 02 test $0x2,%r12b - 418b5d: 0f 85 55 02 00 00 jne 418db8 - 418b63: 4c 89 e5 mov %r12,%rbp - 418b66: 48 83 e5 f8 and $0xfffffffffffffff8,%rbp - 418b6a: 48 89 e8 mov %rbp,%rax - 418b6d: 48 f7 d8 neg %rax - 418b70: 48 39 c3 cmp %rax,%rbx - 418b73: 0f 87 e7 04 00 00 ja 419060 - 418b79: f6 c3 0f test $0xf,%bl - 418b7c: 0f 85 de 04 00 00 jne 419060 - 418b82: 48 83 fd 1f cmp $0x1f,%rbp - 418b86: 0f 86 64 05 00 00 jbe 4190f0 - 418b8c: 41 f6 c4 08 test $0x8,%r12b - 418b90: 0f 85 5a 05 00 00 jne 4190f0 - 418b96: 48 3b 2d 9b 3a 2b 00 cmp 0x2b3a9b(%rip),%rbp # 6cc638 - 418b9d: 0f 86 a5 03 00 00 jbe 418f48 - 418ba3: 48 8b 05 ae 1c 2b 00 mov 0x2b1cae(%rip),%rax # 6ca858 - 418baa: 4c 8d 34 2b lea (%rbx,%rbp,1),%r14 - 418bae: 44 8b 2d 4f 1c 2b 00 mov 0x2b1c4f(%rip),%r13d # 6ca804 - 418bb5: 48 39 c3 cmp %rax,%rbx - 418bb8: 0f 84 94 06 00 00 je 419252 - 418bbe: 41 f6 c5 02 test $0x2,%r13b - 418bc2: 0f 84 af 06 00 00 je 419277 - 418bc8: 49 8b 46 08 mov 0x8(%r14),%rax - 418bcc: a8 01 test $0x1,%al - 418bce: 0f 84 c2 06 00 00 je 419296 - 418bd4: 49 89 c7 mov %rax,%r15 - 418bd7: 49 83 e7 f8 and $0xfffffffffffffff8,%r15 - 418bdb: 48 83 f8 10 cmp $0x10,%rax - 418bdf: 0f 86 4e 06 00 00 jbe 419233 - 418be5: 4c 3b 3d 94 24 2b 00 cmp 0x2b2494(%rip),%r15 # 6cb080 - 418bec: 0f 83 41 06 00 00 jae 419233 - 418bf2: 8b 35 3c 3a 2b 00 mov 0x2b3a3c(%rip),%esi # 6cc634 - 418bf8: 85 f6 test %esi,%esi - 418bfa: 0f 85 b0 06 00 00 jne 4192b0 - 418c00: 41 83 e4 01 and $0x1,%r12d - 418c04: 0f 85 8e 00 00 00 jne 418c98 - 418c0a: 49 8b 40 f0 mov -0x10(%r8),%rax - 418c0e: 48 29 c3 sub %rax,%rbx - 418c11: 48 01 c5 add %rax,%rbp - 418c14: 48 8b 43 08 mov 0x8(%rbx),%rax - 418c18: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 418c1c: 48 3b 04 03 cmp (%rbx,%rax,1),%rax - 418c20: 0f 85 1a 07 00 00 jne 419340 - 418c26: 4c 8b 63 10 mov 0x10(%rbx),%r12 - 418c2a: 48 8b 43 18 mov 0x18(%rbx),%rax - 418c2e: 49 3b 5c 24 18 cmp 0x18(%r12),%rbx - 418c33: 0f 85 8b 06 00 00 jne 4192c4 - 418c39: 48 3b 58 10 cmp 0x10(%rax),%rbx - 418c3d: 0f 85 81 06 00 00 jne 4192c4 - 418c43: 48 81 7b 08 ff 03 00 cmpq $0x3ff,0x8(%rbx) - 418c4a: 00 - 418c4b: 49 89 44 24 18 mov %rax,0x18(%r12) - 418c50: 4c 89 60 10 mov %r12,0x10(%rax) - 418c54: 76 42 jbe 418c98 - 418c56: 48 8b 43 20 mov 0x20(%rbx),%rax - 418c5a: 48 85 c0 test %rax,%rax - 418c5d: 74 39 je 418c98 - 418c5f: 48 3b 58 28 cmp 0x28(%rax),%rbx - 418c63: 0f 85 92 0a 00 00 jne 4196fb - 418c69: 48 8b 53 28 mov 0x28(%rbx),%rdx - 418c6d: 48 3b 5a 20 cmp 0x20(%rdx),%rbx - 418c71: 0f 85 84 0a 00 00 jne 4196fb - 418c77: 49 83 7c 24 20 00 cmpq $0x0,0x20(%r12) - 418c7d: 0f 84 4c 0a 00 00 je 4196cf - 418c83: 48 8b 53 28 mov 0x28(%rbx),%rdx - 418c87: 48 89 50 28 mov %rdx,0x28(%rax) - 418c8b: 48 8b 53 28 mov 0x28(%rbx),%rdx - 418c8f: 48 89 42 20 mov %rax,0x20(%rdx) - 418c93: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 418c98: 4c 3b 35 b9 1b 2b 00 cmp 0x2b1bb9(%rip),%r14 # 6ca858 - 418c9f: 0f 84 b8 05 00 00 je 41925d - 418ca5: 43 f6 44 3e 08 01 testb $0x1,0x8(%r14,%r15,1) - 418cab: 0f 85 97 04 00 00 jne 419148 - 418cb1: 49 8b 46 08 mov 0x8(%r14),%rax - 418cb5: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 418cb9: 49 3b 04 06 cmp (%r14,%rax,1),%rax - 418cbd: 0f 85 f8 06 00 00 jne 4193bb - 418cc3: 4d 8b 66 10 mov 0x10(%r14),%r12 - 418cc7: 49 8b 46 18 mov 0x18(%r14),%rax - 418ccb: 4d 3b 74 24 18 cmp 0x18(%r12),%r14 - 418cd0: 0f 85 2a 06 00 00 jne 419300 - 418cd6: 4c 3b 70 10 cmp 0x10(%rax),%r14 - 418cda: 0f 85 20 06 00 00 jne 419300 - 418ce0: 49 81 7e 08 ff 03 00 cmpq $0x3ff,0x8(%r14) - 418ce7: 00 - 418ce8: 49 89 44 24 18 mov %rax,0x18(%r12) - 418ced: 4c 89 60 10 mov %r12,0x10(%rax) - 418cf1: 76 0d jbe 418d00 - 418cf3: 49 8b 46 20 mov 0x20(%r14),%rax - 418cf7: 48 85 c0 test %rax,%rax - 418cfa: 0f 85 3b 08 00 00 jne 41953b - 418d00: 4c 01 fd add %r15,%rbp - 418d03: 48 8b 05 5e 1b 2b 00 mov 0x2b1b5e(%rip),%rax # 6ca868 - 418d0a: 44 8b 2d f3 1a 2b 00 mov 0x2b1af3(%rip),%r13d # 6ca804 - 418d11: 41 bc 48 24 4a 00 mov $0x4a2448,%r12d - 418d17: 48 81 78 18 58 a8 6c cmpq $0x6ca858,0x18(%rax) - 418d1e: 00 - 418d1f: 0f 85 cd 02 00 00 jne 418ff2 - 418d25: 48 81 fd ff 03 00 00 cmp $0x3ff,%rbp - 418d2c: 48 89 43 10 mov %rax,0x10(%rbx) - 418d30: 48 c7 43 18 58 a8 6c movq $0x6ca858,0x18(%rbx) - 418d37: 00 - 418d38: 76 10 jbe 418d4a - 418d3a: 48 c7 43 20 00 00 00 movq $0x0,0x20(%rbx) - 418d41: 00 - 418d42: 48 c7 43 28 00 00 00 movq $0x0,0x28(%rbx) - 418d49: 00 - 418d4a: 48 89 1d 17 1b 2b 00 mov %rbx,0x2b1b17(%rip) # 6ca868 - 418d51: 48 89 58 18 mov %rbx,0x18(%rax) - 418d55: 48 89 e8 mov %rbp,%rax - 418d58: 48 83 c8 01 or $0x1,%rax - 418d5c: 48 89 43 08 mov %rax,0x8(%rbx) - 418d60: 48 89 2c 2b mov %rbp,(%rbx,%rbp,1) - 418d64: 48 81 fd ff ff 00 00 cmp $0xffff,%rbp - 418d6b: 0f 86 af 02 00 00 jbe 419020 - 418d71: f6 05 8c 1a 2b 00 01 testb $0x1,0x2b1a8c(%rip) # 6ca804 - 418d78: 0f 84 23 05 00 00 je 4192a1 - 418d7e: 48 8b 05 d3 1a 2b 00 mov 0x2b1ad3(%rip),%rax # 6ca858 - 418d85: 48 8b 40 08 mov 0x8(%rax),%rax - 418d89: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 418d8d: 48 3b 05 0c 1a 2b 00 cmp 0x2b1a0c(%rip),%rax # 6ca7a0 - 418d94: 0f 82 86 02 00 00 jb 419020 - 418d9a: 48 8b 3d 07 1a 2b 00 mov 0x2b1a07(%rip),%rdi # 6ca7a8 - 418da1: ba 80 b0 6c 00 mov $0x6cb080,%edx - 418da6: be 58 a8 6c 00 mov $0x6ca858,%esi - 418dab: e8 f0 e5 ff ff callq 4173a0 - 418db0: e9 6b 02 00 00 jmpq 419020 - 418db5: 0f 1f 00 nopl (%rax) - 418db8: 83 3d fd 43 2b 00 00 cmpl $0x0,0x2b43fd(%rip) # 6cd1bc <__libc_multiple_threads> - 418dbf: 74 0b je 418dcc - 418dc1: f0 ff 0d 38 1a 2b 00 lock decl 0x2b1a38(%rip) # 6ca800 - 418dc8: 75 0a jne 418dd4 - 418dca: eb 22 jmp 418dee - 418dcc: ff 0d 2e 1a 2b 00 decl 0x2b1a2e(%rip) # 6ca800 - 418dd2: 74 1a je 418dee - 418dd4: 48 8d 3d 25 1a 2b 00 lea 0x2b1a25(%rip),%rdi # 6ca800 - 418ddb: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 418de2: e8 19 98 02 00 callq 442600 <__lll_unlock_wake_private> - 418de7: 48 81 c4 80 00 00 00 add $0x80,%rsp - 418dee: 48 89 df mov %rbx,%rdi - 418df1: e8 fa ee ff ff callq 417cf0 - 418df6: 48 83 c4 38 add $0x38,%rsp - 418dfa: 5b pop %rbx - 418dfb: 5d pop %rbp - 418dfc: 41 5c pop %r12 - 418dfe: 41 5d pop %r13 - 418e00: 41 5e pop %r14 - 418e02: 41 5f pop %r15 - 418e04: f3 c3 repz retq - 418e06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 418e0d: 00 00 00 - 418e10: 8b 0d ee 19 2b 00 mov 0x2b19ee(%rip),%ecx # 6ca804 - 418e16: 83 e1 02 and $0x2,%ecx - 418e19: 75 1c jne 418e37 - 418e1b: 48 8b 35 ce 19 2b 00 mov 0x2b19ce(%rip),%rsi # 6ca7f0 - 418e22: 48 39 f3 cmp %rsi,%rbx - 418e25: 72 51 jb 418e78 - 418e27: 48 03 35 52 22 2b 00 add 0x2b2252(%rip),%rsi # 6cb080 - 418e2e: 4c 8d 0c 13 lea (%rbx,%rdx,1),%r9 - 418e32: 49 39 f1 cmp %rsi,%r9 - 418e35: 73 41 jae 418e78 - 418e37: 48 83 fa 1f cmp $0x1f,%rdx - 418e3b: 76 3b jbe 418e78 - 418e3d: a8 08 test $0x8,%al - 418e3f: 75 37 jne 418e78 - 418e41: 41 f6 44 10 f8 01 testb $0x1,-0x8(%r8,%rdx,1) - 418e47: 74 2f je 418e78 - 418e49: a8 01 test $0x1,%al - 418e4b: 0f 85 8f 00 00 00 jne 418ee0 - 418e51: 49 8b 40 f0 mov -0x10(%r8),%rax - 418e55: a8 0f test $0xf,%al - 418e57: 75 1f jne 418e78 - 418e59: 85 c9 test %ecx,%ecx - 418e5b: 48 89 d9 mov %rbx,%rcx - 418e5e: 0f 84 a4 02 00 00 je 419108 - 418e64: 48 29 c1 sub %rax,%rcx - 418e67: 48 8b 49 08 mov 0x8(%rcx),%rcx - 418e6b: 48 83 e1 f8 and $0xfffffffffffffff8,%rcx - 418e6f: 48 39 c8 cmp %rcx,%rax - 418e72: 74 6c je 418ee0 - 418e74: 0f 1f 40 00 nopl 0x0(%rax) - 418e78: 83 3d 3d 43 2b 00 00 cmpl $0x0,0x2b433d(%rip) # 6cd1bc <__libc_multiple_threads> - 418e7f: 74 0b je 418e8c - 418e81: f0 ff 0d 78 19 2b 00 lock decl 0x2b1978(%rip) # 6ca800 - 418e88: 75 0a jne 418e94 - 418e8a: eb 22 jmp 418eae - 418e8c: ff 0d 6e 19 2b 00 decl 0x2b196e(%rip) # 6ca800 - 418e92: 74 1a je 418eae - 418e94: 48 8d 3d 65 19 2b 00 lea 0x2b1965(%rip),%rdi # 6ca800 - 418e9b: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 418ea2: e8 59 97 02 00 callq 442600 <__lll_unlock_wake_private> - 418ea7: 48 81 c4 80 00 00 00 add $0x80,%rsp - 418eae: 8b 1d bc 18 2b 00 mov 0x2b18bc(%rip),%ebx # 6ca770 - 418eb4: 83 0d 49 19 2b 00 04 orl $0x4,0x2b1949(%rip) # 6ca804 - 418ebb: 89 d8 mov %ebx,%eax - 418ebd: 83 e0 05 and $0x5,%eax - 418ec0: 83 f8 05 cmp $0x5,%eax - 418ec3: 0f 84 d7 04 00 00 je 4193a0 - 418ec9: f6 c3 01 test $0x1,%bl - 418ecc: 0f 85 80 02 00 00 jne 419152 - 418ed2: 83 e3 02 and $0x2,%ebx - 418ed5: 0f 84 1b ff ff ff je 418df6 - 418edb: e8 20 4d ff ff callq 40dc00 - 418ee0: 48 83 c2 07 add $0x7,%rdx - 418ee4: 40 0f b6 ff movzbl %dil,%edi - 418ee8: 48 8d 34 13 lea (%rbx,%rdx,1),%rsi - 418eec: 0f b6 06 movzbl (%rsi),%eax - 418eef: 48 39 f8 cmp %rdi,%rax - 418ef2: 48 89 c1 mov %rax,%rcx - 418ef5: 0f 84 4d fc ff ff je 418b48 - 418efb: 48 85 c0 test %rax,%rax - 418efe: 0f 84 74 ff ff ff je 418e78 - 418f04: 48 8d 48 10 lea 0x10(%rax),%rcx - 418f08: 48 39 ca cmp %rcx,%rdx - 418f0b: 73 21 jae 418f2e - 418f0d: e9 66 ff ff ff jmpq 418e78 - 418f12: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 418f18: 48 85 c0 test %rax,%rax - 418f1b: 0f 84 57 ff ff ff je 418e78 - 418f21: 48 8d 48 10 lea 0x10(%rax),%rcx - 418f25: 48 39 d1 cmp %rdx,%rcx - 418f28: 0f 87 4a ff ff ff ja 418e78 - 418f2e: 48 29 c2 sub %rax,%rdx - 418f31: 48 8d 34 13 lea (%rbx,%rdx,1),%rsi - 418f35: 0f b6 06 movzbl (%rsi),%eax - 418f38: 48 39 f8 cmp %rdi,%rax - 418f3b: 48 89 c1 mov %rax,%rcx - 418f3e: 75 d8 jne 418f18 - 418f40: e9 03 fc ff ff jmpq 418b48 - 418f45: 0f 1f 00 nopl (%rax) - 418f48: 49 8b 44 28 f8 mov -0x8(%r8,%rbp,1),%rax - 418f4d: 48 83 f8 10 cmp $0x10,%rax - 418f51: 0f 86 a1 02 00 00 jbe 4191f8 - 418f57: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 418f5b: 48 3b 05 1e 21 2b 00 cmp 0x2b211e(%rip),%rax # 6cb080 - 418f62: 0f 83 90 02 00 00 jae 4191f8 - 418f68: 8b 35 c6 36 2b 00 mov 0x2b36c6(%rip),%esi # 6cc634 - 418f6e: 85 f6 test %esi,%esi - 418f70: 0f 85 c8 02 00 00 jne 41923e - 418f76: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 - 418f7d: 00 00 - 418f7f: 74 01 je 418f82 - 418f81: f0 83 25 7b 18 2b 00 lock andl $0xfffffffe,0x2b187b(%rip) # 6ca804 - 418f88: fe - 418f89: c1 ed 04 shr $0x4,%ebp - 418f8c: be ff ff ff ff mov $0xffffffff,%esi - 418f91: 8d 45 fe lea -0x2(%rbp),%eax - 418f94: 48 8b 14 c5 08 a8 6c mov 0x6ca808(,%rax,8),%rdx - 418f9b: 00 - 418f9c: 48 89 c5 mov %rax,%rbp - 418f9f: 48 8d 0c c5 08 a8 6c lea 0x6ca808(,%rax,8),%rcx - 418fa6: 00 - 418fa7: 48 39 d3 cmp %rdx,%rbx - 418faa: 75 07 jne 418fb3 - 418fac: eb 37 jmp 418fe5 - 418fae: 66 90 xchg %ax,%ax - 418fb0: 48 89 c2 mov %rax,%rdx - 418fb3: 48 85 d2 test %rdx,%rdx - 418fb6: 74 09 je 418fc1 - 418fb8: 8b 42 08 mov 0x8(%rdx),%eax - 418fbb: c1 e8 04 shr $0x4,%eax - 418fbe: 8d 70 fe lea -0x2(%rax),%esi - 418fc1: 49 89 10 mov %rdx,(%r8) - 418fc4: 48 89 d0 mov %rdx,%rax - 418fc7: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 - 418fce: 00 00 - 418fd0: 74 01 je 418fd3 - 418fd2: f0 48 0f b1 19 lock cmpxchg %rbx,(%rcx) - 418fd7: 48 39 d0 cmp %rdx,%rax - 418fda: 0f 84 30 02 00 00 je 419210 - 418fe0: 48 39 c3 cmp %rax,%rbx - 418fe3: 75 cb jne 418fb0 - 418fe5: 44 8b 2d 18 18 2b 00 mov 0x2b1818(%rip),%r13d # 6ca804 - 418fec: 41 bc 70 24 4a 00 mov $0x4a2470,%r12d - 418ff2: 8b 2d 78 17 2b 00 mov 0x2b1778(%rip),%ebp # 6ca770 - 418ff8: 41 83 cd 04 or $0x4,%r13d - 418ffc: 44 89 2d 01 18 2b 00 mov %r13d,0x2b1801(%rip) # 6ca804 - 419003: 89 e8 mov %ebp,%eax - 419005: 83 e0 05 and $0x5,%eax - 419008: 83 f8 05 cmp $0x5,%eax - 41900b: 0f 84 c7 01 00 00 je 4191d8 - 419011: 40 f6 c5 01 test $0x1,%bpl - 419015: 75 59 jne 419070 - 419017: 83 e5 02 and $0x2,%ebp - 41901a: 0f 85 bb fe ff ff jne 418edb - 419020: 83 3d 95 41 2b 00 00 cmpl $0x0,0x2b4195(%rip) # 6cd1bc <__libc_multiple_threads> - 419027: 74 0b je 419034 - 419029: f0 ff 0d d0 17 2b 00 lock decl 0x2b17d0(%rip) # 6ca800 - 419030: 75 0a jne 41903c - 419032: eb 22 jmp 419056 - 419034: ff 0d c6 17 2b 00 decl 0x2b17c6(%rip) # 6ca800 - 41903a: 74 1a je 419056 - 41903c: 48 8d 3d bd 17 2b 00 lea 0x2b17bd(%rip),%rdi # 6ca800 - 419043: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41904a: e8 b1 95 02 00 callq 442600 <__lll_unlock_wake_private> - 41904f: 48 81 c4 80 00 00 00 add $0x80,%rsp - 419056: e9 9b fd ff ff jmpq 418df6 - 41905b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 419060: 44 8b 2d 9d 17 2b 00 mov 0x2b179d(%rip),%r13d # 6ca804 - 419067: 41 bc b2 20 4a 00 mov $0x4a20b2,%r12d - 41906d: eb 83 jmp 418ff2 - 41906f: 90 nop - 419070: 48 8d 7b 10 lea 0x10(%rbx),%rdi - 419074: 4c 8d 6c 24 10 lea 0x10(%rsp),%r13 - 419079: 48 8d 74 24 20 lea 0x20(%rsp),%rsi - 41907e: 31 c9 xor %ecx,%ecx - 419080: ba 10 00 00 00 mov $0x10,%edx - 419085: c6 44 24 20 00 movb $0x0,0x20(%rsp) - 41908a: e8 21 8e 03 00 callq 451eb0 <_itoa_word> - 41908f: 4c 39 e8 cmp %r13,%rax - 419092: 48 89 c3 mov %rax,%rbx - 419095: 76 25 jbe 4190bc - 419097: 48 89 c2 mov %rax,%rdx - 41909a: 48 89 c7 mov %rax,%rdi - 41909d: be 30 00 00 00 mov $0x30,%esi - 4190a2: 4c 29 ea sub %r13,%rdx - 4190a5: 4c 8d 70 ff lea -0x1(%rax),%r14 - 4190a9: 48 29 d7 sub %rdx,%rdi - 4190ac: e8 9f 72 fe ff callq 400350 <__rela_iplt_end+0x88> - 4190b1: 48 8d 44 24 0f lea 0xf(%rsp),%rax - 4190b6: 4c 29 f0 sub %r14,%rax - 4190b9: 48 01 c3 add %rax,%rbx - 4190bc: 48 8b 05 fd 41 2b 00 mov 0x2b41fd(%rip),%rax # 6cd2c0 <__libc_argv> - 4190c3: 89 ef mov %ebp,%edi - 4190c5: ba 38 20 4a 00 mov $0x4a2038,%edx - 4190ca: 49 89 d8 mov %rbx,%r8 - 4190cd: 4c 89 e1 mov %r12,%rcx - 4190d0: be a8 23 4a 00 mov $0x4a23a8,%esi - 4190d5: 48 8b 00 mov (%rax),%rax - 4190d8: 48 85 c0 test %rax,%rax - 4190db: 48 0f 45 d0 cmovne %rax,%rdx - 4190df: 83 e7 02 and $0x2,%edi - 4190e2: 31 c0 xor %eax,%eax - 4190e4: e8 d7 84 ff ff callq 4115c0 <__libc_message> - 4190e9: e9 32 ff ff ff jmpq 419020 - 4190ee: 66 90 xchg %ax,%ax - 4190f0: 44 8b 2d 0d 17 2b 00 mov 0x2b170d(%rip),%r13d # 6ca804 - 4190f7: 41 bc ca 20 4a 00 mov $0x4a20ca,%r12d - 4190fd: e9 f0 fe ff ff jmpq 418ff2 - 419102: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 419108: 48 29 c1 sub %rax,%rcx - 41910b: 48 3b 0d de 16 2b 00 cmp 0x2b16de(%rip),%rcx # 6ca7f0 - 419112: 0f 83 4f fd ff ff jae 418e67 - 419118: e9 5b fd ff ff jmpq 418e78 - 41911d: 0f 1f 00 nopl (%rax) - 419120: 48 8d b0 00 fc ff ff lea -0x400(%rax),%rsi - 419127: 48 f7 c6 ff fb ff ff test $0xfffffffffffffbff,%rsi - 41912e: 0f 84 94 f9 ff ff je 418ac8 - 419134: 48 3d 00 10 00 00 cmp $0x1000,%rax - 41913a: 0f 84 88 f9 ff ff je 418ac8 - 419140: e9 33 fd ff ff jmpq 418e78 - 419145: 0f 1f 00 nopl (%rax) - 419148: 49 83 66 08 fe andq $0xfffffffffffffffe,0x8(%r14) - 41914d: e9 b1 fb ff ff jmpq 418d03 - 419152: 4c 8d 64 24 10 lea 0x10(%rsp),%r12 - 419157: 48 8d 74 24 20 lea 0x20(%rsp),%rsi - 41915c: 31 c9 xor %ecx,%ecx - 41915e: ba 10 00 00 00 mov $0x10,%edx - 419163: 4c 89 c7 mov %r8,%rdi - 419166: c6 44 24 20 00 movb $0x0,0x20(%rsp) - 41916b: e8 40 8d 03 00 callq 451eb0 <_itoa_word> - 419170: 4c 39 e0 cmp %r12,%rax - 419173: 48 89 c5 mov %rax,%rbp - 419176: 76 25 jbe 41919d - 419178: 48 89 c2 mov %rax,%rdx - 41917b: 48 89 c7 mov %rax,%rdi - 41917e: be 30 00 00 00 mov $0x30,%esi - 419183: 4c 29 e2 sub %r12,%rdx - 419186: 4c 8d 68 ff lea -0x1(%rax),%r13 - 41918a: 48 29 d7 sub %rdx,%rdi - 41918d: e8 be 71 fe ff callq 400350 <__rela_iplt_end+0x88> - 419192: 48 8d 44 24 0f lea 0xf(%rsp),%rax - 419197: 4c 29 e8 sub %r13,%rax - 41919a: 48 01 c5 add %rax,%rbp - 41919d: 48 8b 05 1c 41 2b 00 mov 0x2b411c(%rip),%rax # 6cd2c0 <__libc_argv> - 4191a4: ba 38 20 4a 00 mov $0x4a2038,%edx - 4191a9: 49 89 e8 mov %rbp,%r8 - 4191ac: b9 b2 20 4a 00 mov $0x4a20b2,%ecx - 4191b1: be a8 23 4a 00 mov $0x4a23a8,%esi - 4191b6: 48 8b 00 mov (%rax),%rax - 4191b9: 48 85 c0 test %rax,%rax - 4191bc: 48 0f 45 d0 cmovne %rax,%rdx - 4191c0: 83 e3 02 and $0x2,%ebx - 4191c3: 31 c0 xor %eax,%eax - 4191c5: 89 df mov %ebx,%edi - 4191c7: e8 f4 83 ff ff callq 4115c0 <__libc_message> - 4191cc: e9 25 fc ff ff jmpq 418df6 - 4191d1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4191d8: 89 ef mov %ebp,%edi - 4191da: 4c 89 e2 mov %r12,%rdx - 4191dd: be 3c ca 4b 00 mov $0x4bca3c,%esi - 4191e2: 83 e7 02 and $0x2,%edi - 4191e5: 31 c0 xor %eax,%eax - 4191e7: e8 d4 83 ff ff callq 4115c0 <__libc_message> - 4191ec: e9 2f fe ff ff jmpq 419020 - 4191f1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4191f8: 44 8b 2d 05 16 2b 00 mov 0x2b1605(%rip),%r13d # 6ca804 - 4191ff: 41 bc 20 24 4a 00 mov $0x4a2420,%r12d - 419205: e9 e8 fd ff ff jmpq 418ff2 - 41920a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 419210: 39 f5 cmp %esi,%ebp - 419212: 0f 84 08 fe ff ff je 419020 - 419218: 48 85 d2 test %rdx,%rdx - 41921b: 44 8b 2d e2 15 2b 00 mov 0x2b15e2(%rip),%r13d # 6ca804 - 419222: 41 bc df 20 4a 00 mov $0x4a20df,%r12d - 419228: 0f 84 f2 fd ff ff je 419020 - 41922e: e9 bf fd ff ff jmpq 418ff2 - 419233: 41 bc 00 25 4a 00 mov $0x4a2500,%r12d - 419239: e9 b4 fd ff ff jmpq 418ff2 - 41923e: 48 8d 55 f0 lea -0x10(%rbp),%rdx - 419242: 4c 89 c7 mov %r8,%rdi - 419245: e8 06 71 fe ff callq 400350 <__rela_iplt_end+0x88> - 41924a: 49 89 c0 mov %rax,%r8 - 41924d: e9 24 fd ff ff jmpq 418f76 - 419252: 41 bc 98 24 4a 00 mov $0x4a2498,%r12d - 419258: e9 95 fd ff ff jmpq 418ff2 - 41925d: 4c 01 fd add %r15,%rbp - 419260: 48 89 e8 mov %rbp,%rax - 419263: 48 83 c8 01 or $0x1,%rax - 419267: 48 89 43 08 mov %rax,0x8(%rbx) - 41926b: 48 89 1d e6 15 2b 00 mov %rbx,0x2b15e6(%rip) # 6ca858 - 419272: e9 ed fa ff ff jmpq 418d64 - 419277: 48 8b 50 08 mov 0x8(%rax),%rdx - 41927b: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx - 41927f: 48 01 d0 add %rdx,%rax - 419282: 49 39 c6 cmp %rax,%r14 - 419285: 0f 82 3d f9 ff ff jb 418bc8 - 41928b: 41 bc b8 24 4a 00 mov $0x4a24b8,%r12d - 419291: e9 5c fd ff ff jmpq 418ff2 - 419296: 41 bc d8 24 4a 00 mov $0x4a24d8,%r12d - 41929c: e9 51 fd ff ff jmpq 418ff2 - 4192a1: bf 00 a8 6c 00 mov $0x6ca800,%edi - 4192a6: e8 85 eb ff ff callq 417e30 - 4192ab: e9 ce fa ff ff jmpq 418d7e - 4192b0: 48 8d 55 f0 lea -0x10(%rbp),%rdx - 4192b4: 4c 89 c7 mov %r8,%rdi - 4192b7: e8 94 70 fe ff callq 400350 <__rela_iplt_end+0x88> - 4192bc: 49 89 c0 mov %rax,%r8 - 4192bf: e9 3c f9 ff ff jmpq 418c00 - 4192c4: 44 8b 0d a5 14 2b 00 mov 0x2b14a5(%rip),%r9d # 6ca770 - 4192cb: 83 0d 32 15 2b 00 04 orl $0x4,0x2b1532(%rip) # 6ca804 - 4192d2: 44 89 c8 mov %r9d,%eax - 4192d5: 83 e0 05 and $0x5,%eax - 4192d8: 83 f8 05 cmp $0x5,%eax - 4192db: 0f 84 d2 03 00 00 je 4196b3 - 4192e1: 41 f6 c1 01 test $0x1,%r9b - 4192e5: 0f 85 31 01 00 00 jne 41941c - 4192eb: 41 83 e1 02 and $0x2,%r9d - 4192ef: 0f 84 a3 f9 ff ff je 418c98 - 4192f5: e9 e1 fb ff ff jmpq 418edb - 4192fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 419300: 44 8b 2d 69 14 2b 00 mov 0x2b1469(%rip),%r13d # 6ca770 - 419307: 83 0d f6 14 2b 00 04 orl $0x4,0x2b14f6(%rip) # 6ca804 - 41930e: 44 89 e8 mov %r13d,%eax - 419311: 83 e0 05 and $0x5,%eax - 419314: 83 f8 05 cmp $0x5,%eax - 419317: 0f 84 7a 03 00 00 je 419697 - 41931d: 41 f6 c5 01 test $0x1,%r13b - 419321: 0f 85 8c 01 00 00 jne 4194b3 - 419327: 41 83 e5 02 and $0x2,%r13d - 41932b: 0f 84 cf f9 ff ff je 418d00 - 419331: e9 a5 fb ff ff jmpq 418edb - 419336: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41933d: 00 00 00 - 419340: 44 8b 0d 29 14 2b 00 mov 0x2b1429(%rip),%r9d # 6ca770 - 419347: 41 83 cd 04 or $0x4,%r13d - 41934b: 44 89 2d b2 14 2b 00 mov %r13d,0x2b14b2(%rip) # 6ca804 - 419352: 44 89 c8 mov %r9d,%eax - 419355: 83 e0 05 and $0x5,%eax - 419358: 83 f8 05 cmp $0x5,%eax - 41935b: 0f 84 bb 03 00 00 je 41971c - 419361: 41 f6 c1 01 test $0x1,%r9b - 419365: 0f 85 09 02 00 00 jne 419574 - 41936b: 41 f6 c1 02 test $0x2,%r9b - 41936f: 0f 85 66 fb ff ff jne 418edb - 419375: 4c 8b 63 10 mov 0x10(%rbx),%r12 - 419379: 48 8b 43 18 mov 0x18(%rbx),%rax - 41937d: 49 39 5c 24 18 cmp %rbx,0x18(%r12) - 419382: 0f 85 63 ff ff ff jne 4192eb - 419388: 48 3b 58 10 cmp 0x10(%rax),%rbx - 41938c: 0f 84 b1 f8 ff ff je 418c43 - 419392: 44 89 2d 6b 14 2b 00 mov %r13d,0x2b146b(%rip) # 6ca804 - 419399: e9 43 ff ff ff jmpq 4192e1 - 41939e: 66 90 xchg %ax,%ax - 4193a0: 83 e3 02 and $0x2,%ebx - 4193a3: ba b2 20 4a 00 mov $0x4a20b2,%edx - 4193a8: be 3c ca 4b 00 mov $0x4bca3c,%esi - 4193ad: 89 df mov %ebx,%edi - 4193af: 31 c0 xor %eax,%eax - 4193b1: e8 0a 82 ff ff callq 4115c0 <__libc_message> - 4193b6: e9 3b fa ff ff jmpq 418df6 - 4193bb: 44 8b 2d ae 13 2b 00 mov 0x2b13ae(%rip),%r13d # 6ca770 - 4193c2: 8b 15 3c 14 2b 00 mov 0x2b143c(%rip),%edx # 6ca804 - 4193c8: 44 89 e8 mov %r13d,%eax - 4193cb: 83 ca 04 or $0x4,%edx - 4193ce: 83 e0 05 and $0x5,%eax - 4193d1: 89 15 2d 14 2b 00 mov %edx,0x2b142d(%rip) # 6ca804 - 4193d7: 83 f8 05 cmp $0x5,%eax - 4193da: 0f 84 58 03 00 00 je 419738 - 4193e0: 41 f6 c5 01 test $0x1,%r13b - 4193e4: 0f 85 21 02 00 00 jne 41960b - 4193ea: 41 f6 c5 02 test $0x2,%r13b - 4193ee: 0f 85 e7 fa ff ff jne 418edb - 4193f4: 4d 8b 66 10 mov 0x10(%r14),%r12 - 4193f8: 49 8b 46 18 mov 0x18(%r14),%rax - 4193fc: 4d 3b 74 24 18 cmp 0x18(%r12),%r14 - 419401: 0f 85 20 ff ff ff jne 419327 - 419407: 4c 3b 70 10 cmp 0x10(%rax),%r14 - 41940b: 0f 84 cf f8 ff ff je 418ce0 - 419411: 89 15 ed 13 2b 00 mov %edx,0x2b13ed(%rip) # 6ca804 - 419417: e9 01 ff ff ff jmpq 41931d - 41941c: 4c 8d 64 24 10 lea 0x10(%rsp),%r12 - 419421: 48 8d 74 24 20 lea 0x20(%rsp),%rsi - 419426: 31 c9 xor %ecx,%ecx - 419428: ba 10 00 00 00 mov $0x10,%edx - 41942d: 48 89 df mov %rbx,%rdi - 419430: 44 89 0c 24 mov %r9d,(%rsp) - 419434: c6 44 24 20 00 movb $0x0,0x20(%rsp) - 419439: e8 72 8a 03 00 callq 451eb0 <_itoa_word> - 41943e: 4c 39 e0 cmp %r12,%rax - 419441: 49 89 c5 mov %rax,%r13 - 419444: 44 8b 0c 24 mov (%rsp),%r9d - 419448: 76 34 jbe 41947e - 41944a: 4c 89 ea mov %r13,%rdx - 41944d: 48 8d 40 ff lea -0x1(%rax),%rax - 419451: 4c 89 ef mov %r13,%rdi - 419454: 4c 29 e2 sub %r12,%rdx - 419457: be 30 00 00 00 mov $0x30,%esi - 41945c: 44 89 4c 24 08 mov %r9d,0x8(%rsp) - 419461: 48 29 d7 sub %rdx,%rdi - 419464: 48 89 04 24 mov %rax,(%rsp) - 419468: e8 e3 6e fe ff callq 400350 <__rela_iplt_end+0x88> - 41946d: 48 8d 44 24 0f lea 0xf(%rsp),%rax - 419472: 48 2b 04 24 sub (%rsp),%rax - 419476: 44 8b 4c 24 08 mov 0x8(%rsp),%r9d - 41947b: 49 01 c5 add %rax,%r13 - 41947e: 48 8b 05 3b 3e 2b 00 mov 0x2b3e3b(%rip),%rax # 6cd2c0 <__libc_argv> - 419485: 44 89 cf mov %r9d,%edi - 419488: ba 38 20 4a 00 mov $0x4a2038,%edx - 41948d: 4d 89 e8 mov %r13,%r8 - 419490: b9 95 20 4a 00 mov $0x4a2095,%ecx - 419495: be a8 23 4a 00 mov $0x4a23a8,%esi - 41949a: 48 8b 00 mov (%rax),%rax - 41949d: 48 85 c0 test %rax,%rax - 4194a0: 48 0f 45 d0 cmovne %rax,%rdx - 4194a4: 83 e7 02 and $0x2,%edi - 4194a7: 31 c0 xor %eax,%eax - 4194a9: e8 12 81 ff ff callq 4115c0 <__libc_message> - 4194ae: e9 e5 f7 ff ff jmpq 418c98 - 4194b3: 4c 8d 44 24 10 lea 0x10(%rsp),%r8 - 4194b8: 48 8d 74 24 20 lea 0x20(%rsp),%rsi - 4194bd: 31 c9 xor %ecx,%ecx - 4194bf: ba 10 00 00 00 mov $0x10,%edx - 4194c4: 4c 89 f7 mov %r14,%rdi - 4194c7: c6 44 24 20 00 movb $0x0,0x20(%rsp) - 4194cc: 4c 89 04 24 mov %r8,(%rsp) - 4194d0: e8 db 89 03 00 callq 451eb0 <_itoa_word> - 4194d5: 4c 8b 04 24 mov (%rsp),%r8 - 4194d9: 49 89 c4 mov %rax,%r12 - 4194dc: 4c 39 c0 cmp %r8,%rax - 4194df: 76 25 jbe 419506 - 4194e1: 48 89 c2 mov %rax,%rdx - 4194e4: 48 89 c7 mov %rax,%rdi - 4194e7: be 30 00 00 00 mov $0x30,%esi - 4194ec: 4c 29 c2 sub %r8,%rdx - 4194ef: 4c 8d 70 ff lea -0x1(%rax),%r14 - 4194f3: 48 29 d7 sub %rdx,%rdi - 4194f6: e8 55 6e fe ff callq 400350 <__rela_iplt_end+0x88> - 4194fb: 48 8d 44 24 0f lea 0xf(%rsp),%rax - 419500: 4c 29 f0 sub %r14,%rax - 419503: 49 01 c4 add %rax,%r12 - 419506: 48 8b 05 b3 3d 2b 00 mov 0x2b3db3(%rip),%rax # 6cd2c0 <__libc_argv> - 41950d: 44 89 ef mov %r13d,%edi - 419510: ba 38 20 4a 00 mov $0x4a2038,%edx - 419515: 4d 89 e0 mov %r12,%r8 - 419518: b9 95 20 4a 00 mov $0x4a2095,%ecx - 41951d: be a8 23 4a 00 mov $0x4a23a8,%esi - 419522: 48 8b 00 mov (%rax),%rax - 419525: 48 85 c0 test %rax,%rax - 419528: 48 0f 45 d0 cmovne %rax,%rdx - 41952c: 83 e7 02 and $0x2,%edi - 41952f: 31 c0 xor %eax,%eax - 419531: e8 8a 80 ff ff callq 4115c0 <__libc_message> - 419536: e9 c5 f7 ff ff jmpq 418d00 - 41953b: 4c 3b 70 28 cmp 0x28(%rax),%r14 - 41953f: 0f 85 37 02 00 00 jne 41977c - 419545: 49 8b 56 28 mov 0x28(%r14),%rdx - 419549: 4c 3b 72 20 cmp 0x20(%rdx),%r14 - 41954d: 0f 85 29 02 00 00 jne 41977c - 419553: 49 83 7c 24 20 00 cmpq $0x0,0x20(%r12) - 419559: 0f 84 f5 01 00 00 je 419754 - 41955f: 49 8b 56 28 mov 0x28(%r14),%rdx - 419563: 48 89 50 28 mov %rdx,0x28(%rax) - 419567: 49 8b 56 28 mov 0x28(%r14),%rdx - 41956b: 48 89 42 20 mov %rax,0x20(%rdx) - 41956f: e9 8c f7 ff ff jmpq 418d00 - 419574: 4c 8d 64 24 10 lea 0x10(%rsp),%r12 - 419579: 48 8d 74 24 20 lea 0x20(%rsp),%rsi - 41957e: 31 c9 xor %ecx,%ecx - 419580: ba 10 00 00 00 mov $0x10,%edx - 419585: 48 89 df mov %rbx,%rdi - 419588: 44 89 0c 24 mov %r9d,(%rsp) - 41958c: c6 44 24 20 00 movb $0x0,0x20(%rsp) - 419591: e8 1a 89 03 00 callq 451eb0 <_itoa_word> - 419596: 4c 39 e0 cmp %r12,%rax - 419599: 49 89 c5 mov %rax,%r13 - 41959c: 44 8b 0c 24 mov (%rsp),%r9d - 4195a0: 76 34 jbe 4195d6 - 4195a2: 4c 89 ea mov %r13,%rdx - 4195a5: 48 8d 40 ff lea -0x1(%rax),%rax - 4195a9: 4c 89 ef mov %r13,%rdi - 4195ac: 4c 29 e2 sub %r12,%rdx - 4195af: be 30 00 00 00 mov $0x30,%esi - 4195b4: 44 89 4c 24 08 mov %r9d,0x8(%rsp) - 4195b9: 48 29 d7 sub %rdx,%rdi - 4195bc: 48 89 04 24 mov %rax,(%rsp) - 4195c0: e8 8b 6d fe ff callq 400350 <__rela_iplt_end+0x88> - 4195c5: 48 8d 44 24 0f lea 0xf(%rsp),%rax - 4195ca: 48 2b 04 24 sub (%rsp),%rax - 4195ce: 44 8b 4c 24 08 mov 0x8(%rsp),%r9d - 4195d3: 49 01 c5 add %rax,%r13 - 4195d6: 48 8b 05 e3 3c 2b 00 mov 0x2b3ce3(%rip),%rax # 6cd2c0 <__libc_argv> - 4195dd: 44 89 cf mov %r9d,%edi - 4195e0: ba 38 20 4a 00 mov $0x4a2038,%edx - 4195e5: 4d 89 e8 mov %r13,%r8 - 4195e8: b9 78 20 4a 00 mov $0x4a2078,%ecx - 4195ed: be a8 23 4a 00 mov $0x4a23a8,%esi - 4195f2: 48 8b 00 mov (%rax),%rax - 4195f5: 48 85 c0 test %rax,%rax - 4195f8: 48 0f 45 d0 cmovne %rax,%rdx - 4195fc: 83 e7 02 and $0x2,%edi - 4195ff: 31 c0 xor %eax,%eax - 419601: e8 ba 7f ff ff callq 4115c0 <__libc_message> - 419606: e9 1b f6 ff ff jmpq 418c26 - 41960b: 4c 8d 64 24 10 lea 0x10(%rsp),%r12 - 419610: 48 8d 74 24 20 lea 0x20(%rsp),%rsi - 419615: 31 c9 xor %ecx,%ecx - 419617: ba 10 00 00 00 mov $0x10,%edx - 41961c: 4c 89 f7 mov %r14,%rdi - 41961f: c6 44 24 20 00 movb $0x0,0x20(%rsp) - 419624: e8 87 88 03 00 callq 451eb0 <_itoa_word> - 419629: 4c 39 e0 cmp %r12,%rax - 41962c: 49 89 c0 mov %rax,%r8 - 41962f: 76 34 jbe 419665 - 419631: 4c 89 c2 mov %r8,%rdx - 419634: 4c 89 c7 mov %r8,%rdi - 419637: 48 8d 40 ff lea -0x1(%rax),%rax - 41963b: 4c 29 e2 sub %r12,%rdx - 41963e: be 30 00 00 00 mov $0x30,%esi - 419643: 4c 89 44 24 08 mov %r8,0x8(%rsp) - 419648: 48 29 d7 sub %rdx,%rdi - 41964b: 48 89 04 24 mov %rax,(%rsp) - 41964f: e8 fc 6c fe ff callq 400350 <__rela_iplt_end+0x88> - 419654: 48 8d 44 24 0f lea 0xf(%rsp),%rax - 419659: 48 2b 04 24 sub (%rsp),%rax - 41965d: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 - 419662: 49 01 c0 add %rax,%r8 - 419665: 48 8b 05 54 3c 2b 00 mov 0x2b3c54(%rip),%rax # 6cd2c0 <__libc_argv> - 41966c: 44 89 ef mov %r13d,%edi - 41966f: ba 38 20 4a 00 mov $0x4a2038,%edx - 419674: b9 78 20 4a 00 mov $0x4a2078,%ecx - 419679: be a8 23 4a 00 mov $0x4a23a8,%esi - 41967e: 48 8b 00 mov (%rax),%rax - 419681: 48 85 c0 test %rax,%rax - 419684: 48 0f 45 d0 cmovne %rax,%rdx - 419688: 83 e7 02 and $0x2,%edi - 41968b: 31 c0 xor %eax,%eax - 41968d: e8 2e 7f ff ff callq 4115c0 <__libc_message> - 419692: e9 2c f6 ff ff jmpq 418cc3 - 419697: 44 89 ef mov %r13d,%edi - 41969a: ba 95 20 4a 00 mov $0x4a2095,%edx - 41969f: be 3c ca 4b 00 mov $0x4bca3c,%esi - 4196a4: 83 e7 02 and $0x2,%edi - 4196a7: 31 c0 xor %eax,%eax - 4196a9: e8 12 7f ff ff callq 4115c0 <__libc_message> - 4196ae: e9 4d f6 ff ff jmpq 418d00 - 4196b3: 44 89 cf mov %r9d,%edi - 4196b6: ba 95 20 4a 00 mov $0x4a2095,%edx - 4196bb: be 3c ca 4b 00 mov $0x4bca3c,%esi - 4196c0: 83 e7 02 and $0x2,%edi - 4196c3: 31 c0 xor %eax,%eax - 4196c5: e8 f6 7e ff ff callq 4115c0 <__libc_message> - 4196ca: e9 c9 f5 ff ff jmpq 418c98 - 4196cf: 48 39 c3 cmp %rax,%rbx - 4196d2: 0f 84 c5 00 00 00 je 41979d - 4196d8: 49 89 44 24 20 mov %rax,0x20(%r12) - 4196dd: 48 8b 43 28 mov 0x28(%rbx),%rax - 4196e1: 49 89 44 24 28 mov %rax,0x28(%r12) - 4196e6: 48 8b 43 20 mov 0x20(%rbx),%rax - 4196ea: 4c 89 60 28 mov %r12,0x28(%rax) - 4196ee: 48 8b 43 28 mov 0x28(%rbx),%rax - 4196f2: 4c 89 60 20 mov %r12,0x20(%rax) - 4196f6: e9 9d f5 ff ff jmpq 418c98 - 4196fb: 8b 3d 6f 10 2b 00 mov 0x2b106f(%rip),%edi # 6ca770 - 419701: b9 00 a8 6c 00 mov $0x6ca800,%ecx - 419706: 48 89 da mov %rbx,%rdx - 419709: be f0 23 4a 00 mov $0x4a23f0,%esi - 41970e: e8 9d db ff ff callq 4172b0 - 419713: 48 8b 43 20 mov 0x20(%rbx),%rax - 419717: e9 5b f5 ff ff jmpq 418c77 - 41971c: 44 89 cf mov %r9d,%edi - 41971f: ba 78 20 4a 00 mov $0x4a2078,%edx - 419724: be 3c ca 4b 00 mov $0x4bca3c,%esi - 419729: 83 e7 02 and $0x2,%edi - 41972c: 31 c0 xor %eax,%eax - 41972e: e8 8d 7e ff ff callq 4115c0 <__libc_message> - 419733: e9 ee f4 ff ff jmpq 418c26 - 419738: 44 89 ef mov %r13d,%edi - 41973b: ba 78 20 4a 00 mov $0x4a2078,%edx - 419740: be 3c ca 4b 00 mov $0x4bca3c,%esi - 419745: 83 e7 02 and $0x2,%edi - 419748: 31 c0 xor %eax,%eax - 41974a: e8 71 7e ff ff callq 4115c0 <__libc_message> - 41974f: e9 6f f5 ff ff jmpq 418cc3 - 419754: 49 39 c6 cmp %rax,%r14 - 419757: 74 53 je 4197ac - 419759: 49 89 44 24 20 mov %rax,0x20(%r12) - 41975e: 49 8b 46 28 mov 0x28(%r14),%rax - 419762: 49 89 44 24 28 mov %rax,0x28(%r12) - 419767: 49 8b 46 20 mov 0x20(%r14),%rax - 41976b: 4c 89 60 28 mov %r12,0x28(%rax) - 41976f: 49 8b 46 28 mov 0x28(%r14),%rax - 419773: 4c 89 60 20 mov %r12,0x20(%rax) - 419777: e9 84 f5 ff ff jmpq 418d00 - 41977c: 8b 3d ee 0f 2b 00 mov 0x2b0fee(%rip),%edi # 6ca770 - 419782: b9 00 a8 6c 00 mov $0x6ca800,%ecx - 419787: 4c 89 f2 mov %r14,%rdx - 41978a: be f0 23 4a 00 mov $0x4a23f0,%esi - 41978f: e8 1c db ff ff callq 4172b0 - 419794: 49 8b 46 20 mov 0x20(%r14),%rax - 419798: e9 b6 fd ff ff jmpq 419553 - 41979d: 4d 89 64 24 28 mov %r12,0x28(%r12) - 4197a2: 4d 89 64 24 20 mov %r12,0x20(%r12) - 4197a7: e9 ec f4 ff ff jmpq 418c98 - 4197ac: 4d 89 64 24 28 mov %r12,0x28(%r12) - 4197b1: 4d 89 64 24 20 mov %r12,0x20(%r12) - 4197b6: e9 45 f5 ff ff jmpq 418d00 - 4197bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -00000000004197c0 <_int_free>: - 4197c0: 41 57 push %r15 - 4197c2: 41 56 push %r14 - 4197c4: 41 55 push %r13 - 4197c6: 41 54 push %r12 - 4197c8: 55 push %rbp - 4197c9: 53 push %rbx - 4197ca: 48 89 fd mov %rdi,%rbp - 4197cd: 48 89 f3 mov %rsi,%rbx - 4197d0: 48 83 ec 58 sub $0x58,%rsp - 4197d4: 48 8b 46 08 mov 0x8(%rsi),%rax - 4197d8: 89 54 24 04 mov %edx,0x4(%rsp) - 4197dc: 49 89 c4 mov %rax,%r12 - 4197df: 49 83 e4 f8 and $0xfffffffffffffff8,%r12 - 4197e3: 4c 89 e2 mov %r12,%rdx - 4197e6: 48 f7 da neg %rdx - 4197e9: 48 39 d6 cmp %rdx,%rsi - 4197ec: 0f 87 4e 05 00 00 ja 419d40 <_int_free+0x580> - 4197f2: 40 f6 c6 0f test $0xf,%sil - 4197f6: 0f 85 44 05 00 00 jne 419d40 <_int_free+0x580> - 4197fc: 49 83 fc 1f cmp $0x1f,%r12 - 419800: 0f 86 d2 05 00 00 jbe 419dd8 <_int_free+0x618> - 419806: a8 08 test $0x8,%al - 419808: 0f 85 ca 05 00 00 jne 419dd8 <_int_free+0x618> - 41980e: 4c 3b 25 23 2e 2b 00 cmp 0x2b2e23(%rip),%r12 # 6cc638 - 419815: 0f 87 05 01 00 00 ja 419920 <_int_free+0x160> - 41981b: 4a 8d 14 26 lea (%rsi,%r12,1),%rdx - 41981f: 48 8b 42 08 mov 0x8(%rdx),%rax - 419823: 48 83 f8 10 cmp $0x10,%rax - 419827: 0f 86 a3 07 00 00 jbe 419fd0 <_int_free+0x810> - 41982d: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 419831: 48 3b 87 80 08 00 00 cmp 0x880(%rdi),%rax - 419838: 0f 83 92 07 00 00 jae 419fd0 <_int_free+0x810> - 41983e: 8b 35 f0 2d 2b 00 mov 0x2b2df0(%rip),%esi # 6cc634 - 419844: 4c 8d 43 10 lea 0x10(%rbx),%r8 - 419848: 85 f6 test %esi,%esi - 41984a: 0f 85 50 0a 00 00 jne 41a2a0 <_int_free+0xae0> - 419850: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 - 419857: 00 00 - 419859: 74 01 je 41985c <_int_free+0x9c> - 41985b: f0 83 65 04 fe lock andl $0xfffffffe,0x4(%rbp) - 419860: 41 c1 ec 04 shr $0x4,%r12d - 419864: 41 8d 44 24 fe lea -0x2(%r12),%eax - 419869: 48 8b 54 c5 08 mov 0x8(%rbp,%rax,8),%rdx - 41986e: 49 89 c4 mov %rax,%r12 - 419871: 48 8d 74 c5 08 lea 0x8(%rbp,%rax,8),%rsi - 419876: 48 39 d3 cmp %rdx,%rbx - 419879: 74 51 je 4198cc <_int_free+0x10c> - 41987b: 8b 7c 24 04 mov 0x4(%rsp),%edi - 41987f: 85 ff test %edi,%edi - 419881: bf ff ff ff ff mov $0xffffffff,%edi - 419886: 41 0f 95 c1 setne %r9b - 41988a: eb 07 jmp 419893 <_int_free+0xd3> - 41988c: 0f 1f 40 00 nopl 0x0(%rax) - 419890: 48 89 c2 mov %rax,%rdx - 419893: 48 85 d2 test %rdx,%rdx - 419896: 0f 95 c1 setne %cl - 419899: 44 20 c9 and %r9b,%cl - 41989c: 74 09 je 4198a7 <_int_free+0xe7> - 41989e: 8b 7a 08 mov 0x8(%rdx),%edi - 4198a1: c1 ef 04 shr $0x4,%edi - 4198a4: 83 ef 02 sub $0x2,%edi - 4198a7: 48 89 53 10 mov %rdx,0x10(%rbx) - 4198ab: 48 89 d0 mov %rdx,%rax - 4198ae: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 - 4198b5: 00 00 - 4198b7: 74 01 je 4198ba <_int_free+0xfa> - 4198b9: f0 48 0f b1 1e lock cmpxchg %rbx,(%rsi) - 4198be: 48 39 d0 cmp %rdx,%rax - 4198c1: 0f 84 59 06 00 00 je 419f20 <_int_free+0x760> - 4198c7: 48 39 c3 cmp %rax,%rbx - 4198ca: 75 c4 jne 419890 <_int_free+0xd0> - 4198cc: 4c 89 c7 mov %r8,%rdi - 4198cf: 41 bd 70 24 4a 00 mov $0x4a2470,%r13d - 4198d5: 0f 1f 00 nopl (%rax) - 4198d8: 48 85 ed test %rbp,%rbp - 4198db: 44 8b 25 8e 0e 2b 00 mov 0x2b0e8e(%rip),%r12d # 6ca770 - 4198e2: 74 04 je 4198e8 <_int_free+0x128> - 4198e4: 83 4d 04 04 orl $0x4,0x4(%rbp) - 4198e8: 44 89 e0 mov %r12d,%eax - 4198eb: 83 e0 05 and $0x5,%eax - 4198ee: 83 f8 05 cmp $0x5,%eax - 4198f1: 0f 84 b9 06 00 00 je 419fb0 <_int_free+0x7f0> - 4198f7: 41 f6 c4 01 test $0x1,%r12b - 4198fb: 0f 85 4f 04 00 00 jne 419d50 <_int_free+0x590> - 419901: 41 83 e4 02 and $0x2,%r12d - 419905: 0f 85 99 08 00 00 jne 41a1a4 <_int_free+0x9e4> - 41990b: 48 83 c4 58 add $0x58,%rsp - 41990f: 5b pop %rbx - 419910: 5d pop %rbp - 419911: 41 5c pop %r12 - 419913: 41 5d pop %r13 - 419915: 41 5e pop %r14 - 419917: 41 5f pop %r15 - 419919: c3 retq - 41991a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 419920: a8 02 test $0x2,%al - 419922: 0f 85 e8 05 00 00 jne 419f10 <_int_free+0x750> - 419928: 8b 44 24 04 mov 0x4(%rsp),%eax - 41992c: 85 c0 test %eax,%eax - 41992e: 0f 84 ac 03 00 00 je 419ce0 <_int_free+0x520> - 419934: 48 8b 47 58 mov 0x58(%rdi),%rax - 419938: 4e 8d 2c 26 lea (%rsi,%r12,1),%r13 - 41993c: 48 39 c6 cmp %rax,%rsi - 41993f: 0f 84 b1 12 00 00 je 41abf6 <_int_free+0x1436> - 419945: 45 31 c9 xor %r9d,%r9d - 419948: c7 44 24 28 00 00 00 movl $0x0,0x28(%rsp) - 41994f: 00 - 419950: f6 45 04 02 testb $0x2,0x4(%rbp) - 419954: 0f 84 d6 09 00 00 je 41a330 <_int_free+0xb70> - 41995a: 49 8b 45 08 mov 0x8(%r13),%rax - 41995e: a8 01 test $0x1,%al - 419960: 0f 84 ea 09 00 00 je 41a350 <_int_free+0xb90> - 419966: 49 89 c7 mov %rax,%r15 - 419969: 49 83 e7 f8 and $0xfffffffffffffff8,%r15 - 41996d: 48 83 f8 10 cmp $0x10,%rax - 419971: 0f 86 39 08 00 00 jbe 41a1b0 <_int_free+0x9f0> - 419977: 4c 3b bd 80 08 00 00 cmp 0x880(%rbp),%r15 - 41997e: 0f 83 2c 08 00 00 jae 41a1b0 <_int_free+0x9f0> - 419984: 8b 35 aa 2c 2b 00 mov 0x2b2caa(%rip),%esi # 6cc634 - 41998a: 85 f6 test %esi,%esi - 41998c: 0f 85 c9 09 00 00 jne 41a35b <_int_free+0xb9b> - 419992: f6 43 08 01 testb $0x1,0x8(%rbx) - 419996: 0f 85 8c 00 00 00 jne 419a28 <_int_free+0x268> - 41999c: 48 8b 03 mov (%rbx),%rax - 41999f: 48 29 c3 sub %rax,%rbx - 4199a2: 49 01 c4 add %rax,%r12 - 4199a5: 48 8b 43 08 mov 0x8(%rbx),%rax - 4199a9: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 4199ad: 48 3b 04 03 cmp (%rbx,%rax,1),%rax - 4199b1: 0f 85 54 0a 00 00 jne 41a40b <_int_free+0xc4b> - 4199b7: 48 8b 43 10 mov 0x10(%rbx),%rax - 4199bb: 48 8b 53 18 mov 0x18(%rbx),%rdx - 4199bf: 48 3b 58 18 cmp 0x18(%rax),%rbx - 4199c3: 0f 85 b0 09 00 00 jne 41a379 <_int_free+0xbb9> - 4199c9: 48 3b 5a 10 cmp 0x10(%rdx),%rbx - 4199cd: 0f 85 a6 09 00 00 jne 41a379 <_int_free+0xbb9> - 4199d3: 48 81 7b 08 ff 03 00 cmpq $0x3ff,0x8(%rbx) - 4199da: 00 - 4199db: 48 89 50 18 mov %rdx,0x18(%rax) - 4199df: 48 89 42 10 mov %rax,0x10(%rdx) - 4199e3: 76 43 jbe 419a28 <_int_free+0x268> - 4199e5: 48 8b 53 20 mov 0x20(%rbx),%rdx - 4199e9: 48 85 d2 test %rdx,%rdx - 4199ec: 74 3a je 419a28 <_int_free+0x268> - 4199ee: 48 3b 5a 28 cmp 0x28(%rdx),%rbx - 4199f2: 0f 85 c3 10 00 00 jne 41aabb <_int_free+0x12fb> - 4199f8: 48 8b 4b 28 mov 0x28(%rbx),%rcx - 4199fc: 48 3b 59 20 cmp 0x20(%rcx),%rbx - 419a00: 0f 85 b5 10 00 00 jne 41aabb <_int_free+0x12fb> - 419a06: 48 83 78 20 00 cmpq $0x0,0x20(%rax) - 419a0b: 0f 84 ff 10 00 00 je 41ab10 <_int_free+0x1350> - 419a11: 48 8b 43 28 mov 0x28(%rbx),%rax - 419a15: 48 89 42 28 mov %rax,0x28(%rdx) - 419a19: 48 8b 43 28 mov 0x28(%rbx),%rax - 419a1d: 48 89 50 20 mov %rdx,0x20(%rax) - 419a21: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 419a28: 4c 39 6d 58 cmp %r13,0x58(%rbp) - 419a2c: 0f 84 e6 08 00 00 je 41a318 <_int_free+0xb58> - 419a32: 43 f6 44 3d 08 01 testb $0x1,0x8(%r13,%r15,1) - 419a38: 0f 85 62 05 00 00 jne 419fa0 <_int_free+0x7e0> - 419a3e: 49 8b 45 08 mov 0x8(%r13),%rax - 419a42: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 419a46: 49 3b 44 05 00 cmp 0x0(%r13,%rax,1),%rax - 419a4b: 0f 85 0f 0a 00 00 jne 41a460 <_int_free+0xca0> - 419a51: 49 8b 45 10 mov 0x10(%r13),%rax - 419a55: 49 8b 55 18 mov 0x18(%r13),%rdx - 419a59: 4c 39 68 18 cmp %r13,0x18(%rax) - 419a5d: 0f 85 13 07 00 00 jne 41a176 <_int_free+0x9b6> - 419a63: 4c 8b 42 10 mov 0x10(%rdx),%r8 - 419a67: 4d 39 e8 cmp %r13,%r8 - 419a6a: 0f 85 06 07 00 00 jne 41a176 <_int_free+0x9b6> - 419a70: 49 81 78 08 ff 03 00 cmpq $0x3ff,0x8(%r8) - 419a77: 00 - 419a78: 48 89 50 18 mov %rdx,0x18(%rax) - 419a7c: 48 89 42 10 mov %rax,0x10(%rdx) - 419a80: 0f 87 fa 05 00 00 ja 41a080 <_int_free+0x8c0> - 419a86: 4d 01 fc add %r15,%r12 - 419a89: 48 8b 45 68 mov 0x68(%rbp),%rax - 419a8d: 48 8d 55 58 lea 0x58(%rbp),%rdx - 419a91: 48 3b 50 18 cmp 0x18(%rax),%rdx - 419a95: 0f 85 15 09 00 00 jne 41a3b0 <_int_free+0xbf0> - 419a9b: 49 81 fc ff 03 00 00 cmp $0x3ff,%r12 - 419aa2: 48 89 43 10 mov %rax,0x10(%rbx) - 419aa6: 48 89 53 18 mov %rdx,0x18(%rbx) - 419aaa: 76 10 jbe 419abc <_int_free+0x2fc> - 419aac: 48 c7 43 20 00 00 00 movq $0x0,0x20(%rbx) - 419ab3: 00 - 419ab4: 48 c7 43 28 00 00 00 movq $0x0,0x28(%rbx) - 419abb: 00 - 419abc: 48 89 5d 68 mov %rbx,0x68(%rbp) - 419ac0: 48 89 58 18 mov %rbx,0x18(%rax) - 419ac4: 4c 89 e0 mov %r12,%rax - 419ac7: 48 83 c8 01 or $0x1,%rax - 419acb: 48 89 43 08 mov %rax,0x8(%rbx) - 419acf: 4e 89 24 23 mov %r12,(%rbx,%r12,1) - 419ad3: 49 81 fc ff ff 00 00 cmp $0xffff,%r12 - 419ada: 0f 86 a0 03 00 00 jbe 419e80 <_int_free+0x6c0> - 419ae0: f6 45 04 01 testb $0x1,0x4(%rbp) - 419ae4: 0f 84 de 05 00 00 je 41a0c8 <_int_free+0x908> - 419aea: 48 81 fd 00 a8 6c 00 cmp $0x6ca800,%rbp - 419af1: 0f 84 dd 08 00 00 je 41a3d4 <_int_free+0xc14> - 419af7: 4c 8b 65 58 mov 0x58(%rbp),%r12 - 419afb: 4c 89 e7 mov %r12,%rdi - 419afe: 48 81 e7 00 00 00 fc and $0xfffffffffc000000,%rdi - 419b05: 48 3b 2f cmp (%rdi),%rbp - 419b08: 0f 85 cf 10 00 00 jne 41abdd <_int_free+0x141d> - 419b0e: 48 8b 05 93 0c 2b 00 mov 0x2b0c93(%rip),%rax # 6ca7a8 - 419b15: 4c 8b 2d 64 16 2b 00 mov 0x2b1664(%rip),%r13 # 6cb180 <_dl_pagesize> - 419b1c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 419b21: 48 8d 47 20 lea 0x20(%rdi),%rax - 419b25: 49 39 c4 cmp %rax,%r12 - 419b28: 0f 85 c2 02 00 00 jne 419df0 <_int_free+0x630> - 419b2e: 4c 8b 7f 08 mov 0x8(%rdi),%r15 - 419b32: 49 8b 4f 10 mov 0x10(%r15),%rcx - 419b36: 48 8d 51 f0 lea -0x10(%rcx),%rdx - 419b3a: 49 8d 04 17 lea (%r15,%rdx,1),%rax - 419b3e: 83 e0 0f and $0xf,%eax - 419b41: 48 29 c2 sub %rax,%rdx - 419b44: 4c 01 fa add %r15,%rdx - 419b47: 48 83 7a 08 01 cmpq $0x1,0x8(%rdx) - 419b4c: 0f 85 aa 0e 00 00 jne 41a9fc <_int_free+0x123c> - 419b52: 48 8d 5c 24 30 lea 0x30(%rsp),%rbx - 419b57: be 01 00 00 00 mov $0x1,%esi - 419b5c: 49 89 d6 mov %rdx,%r14 - 419b5f: 48 29 de sub %rbx,%rsi - 419b62: 48 89 74 24 10 mov %rsi,0x10(%rsp) - 419b67: e9 d9 00 00 00 jmpq 419c45 <_int_free+0x485> - 419b6c: 0f 1f 40 00 nopl 0x0(%rax) - 419b70: be 00 00 00 04 mov $0x4000000,%esi - 419b75: 4d 89 f4 mov %r14,%r12 - 419b78: e8 33 61 02 00 callq 43fcb0 <__munmap> - 419b7d: 41 f6 46 08 01 testb $0x1,0x8(%r14) - 419b82: 75 5c jne 419be0 <_int_free+0x420> - 419b84: 4d 2b 26 sub (%r14),%r12 - 419b87: 49 8b 44 24 08 mov 0x8(%r12),%rax - 419b8c: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 419b90: 49 3b 04 04 cmp (%r12,%rax,1),%rax - 419b94: 0f 85 a6 03 00 00 jne 419f40 <_int_free+0x780> - 419b9a: 4d 8b 74 24 10 mov 0x10(%r12),%r14 - 419b9f: 49 8b 44 24 18 mov 0x18(%r12),%rax - 419ba4: 4d 3b 66 18 cmp 0x18(%r14),%r12 - 419ba8: 0f 85 22 03 00 00 jne 419ed0 <_int_free+0x710> - 419bae: 4c 3b 60 10 cmp 0x10(%rax),%r12 - 419bb2: 0f 85 18 03 00 00 jne 419ed0 <_int_free+0x710> - 419bb8: 49 81 7c 24 08 ff 03 cmpq $0x3ff,0x8(%r12) - 419bbf: 00 00 - 419bc1: 49 89 46 18 mov %rax,0x18(%r14) - 419bc5: 4c 89 70 10 mov %r14,0x10(%rax) - 419bc9: 76 15 jbe 419be0 <_int_free+0x420> - 419bcb: 49 8b 44 24 20 mov 0x20(%r12),%rax - 419bd0: 48 85 c0 test %rax,%rax - 419bd3: 0f 85 df 06 00 00 jne 41a2b8 <_int_free+0xaf8> - 419bd9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 419be0: 49 8d 04 1c lea (%r12,%rbx,1),%rax - 419be4: 49 8d 55 ff lea -0x1(%r13),%rdx - 419be8: 48 85 d0 test %rdx,%rax - 419beb: 0f 85 a4 0e 00 00 jne 41aa95 <_int_free+0x12d5> - 419bf1: 4c 89 fa mov %r15,%rdx - 419bf4: 49 03 57 10 add 0x10(%r15),%rdx - 419bf8: 48 39 d0 cmp %rdx,%rax - 419bfb: 0f 85 7b 0e 00 00 jne 41aa7c <_int_free+0x12bc> - 419c01: 49 8d 47 20 lea 0x20(%r15),%rax - 419c05: 48 83 cb 01 or $0x1,%rbx - 419c09: 4c 89 65 58 mov %r12,0x58(%rbp) - 419c0d: 49 89 5c 24 08 mov %rbx,0x8(%r12) - 419c12: 49 39 c4 cmp %rax,%r12 - 419c15: 0f 85 dd 01 00 00 jne 419df8 <_int_free+0x638> - 419c1b: 49 8b 57 08 mov 0x8(%r15),%rdx - 419c1f: 4c 89 ff mov %r15,%rdi - 419c22: 48 8b 4a 10 mov 0x10(%rdx),%rcx - 419c26: 4c 8d 71 f0 lea -0x10(%rcx),%r14 - 419c2a: 4a 8d 04 32 lea (%rdx,%r14,1),%rax - 419c2e: 83 e0 0f and $0xf,%eax - 419c31: 49 29 c6 sub %rax,%r14 - 419c34: 49 01 d6 add %rdx,%r14 - 419c37: 49 83 7e 08 01 cmpq $0x1,0x8(%r14) - 419c3c: 0f 85 ba 0d 00 00 jne 41a9fc <_int_free+0x123c> - 419c42: 49 89 d7 mov %rdx,%r15 - 419c45: 4d 2b 36 sub (%r14),%r14 - 419c48: 49 8b 56 08 mov 0x8(%r14),%rdx - 419c4c: 48 89 d6 mov %rdx,%rsi - 419c4f: 48 83 e6 f8 and $0xfffffffffffffff8,%rsi - 419c53: 48 01 f0 add %rsi,%rax - 419c56: 4c 8d 48 10 lea 0x10(%rax),%r9 - 419c5a: 48 83 c0 0f add $0xf,%rax - 419c5e: 48 83 f8 3e cmp $0x3e,%rax - 419c62: 0f 87 7b 0d 00 00 ja 41a9e3 <_int_free+0x1223> - 419c68: 83 e2 01 and $0x1,%edx - 419c6b: 4c 89 cb mov %r9,%rbx - 419c6e: 75 03 jne 419c73 <_int_free+0x4b3> - 419c70: 49 03 1e add (%r14),%rbx - 419c73: 48 8d 43 ff lea -0x1(%rbx),%rax - 419c77: 48 3d fe ff ff 03 cmp $0x3fffffe,%rax - 419c7d: 0f 87 e0 0d 00 00 ja 41aa63 <_int_free+0x12a3> - 419c83: 48 89 d8 mov %rbx,%rax - 419c86: 48 29 c8 sub %rcx,%rax - 419c89: 48 8d 90 00 00 00 04 lea 0x4000000(%rax),%rdx - 419c90: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 419c95: 4a 8d 44 28 20 lea 0x20(%rax,%r13,1),%rax - 419c9a: 48 39 c2 cmp %rax,%rdx - 419c9d: 0f 82 4d 01 00 00 jb 419df0 <_int_free+0x630> - 419ca3: 48 8b 47 10 mov 0x10(%rdi),%rax - 419ca7: 48 29 85 80 08 00 00 sub %rax,0x880(%rbp) - 419cae: 48 29 05 63 29 2b 00 sub %rax,0x2b2963(%rip) # 6cc618 - 419cb5: 90 nop - 419cb6: 48 8d 87 00 00 00 04 lea 0x4000000(%rdi),%rax - 419cbd: 48 39 05 4c 29 2b 00 cmp %rax,0x2b294c(%rip) # 6cc610 - 419cc4: 0f 85 a6 fe ff ff jne 419b70 <_int_free+0x3b0> - 419cca: 48 c7 05 3b 29 2b 00 movq $0x0,0x2b293b(%rip) # 6cc610 - 419cd1: 00 00 00 00 - 419cd5: e9 96 fe ff ff jmpq 419b70 <_int_free+0x3b0> - 419cda: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 419ce0: be 01 00 00 00 mov $0x1,%esi - 419ce5: 83 3d d0 34 2b 00 00 cmpl $0x0,0x2b34d0(%rip) # 6cd1bc <__libc_multiple_threads> - 419cec: 74 09 je 419cf7 <_int_free+0x537> - 419cee: f0 0f b1 75 00 lock cmpxchg %esi,0x0(%rbp) - 419cf3: 75 08 jne 419cfd <_int_free+0x53d> - 419cf5: eb 1d jmp 419d14 <_int_free+0x554> - 419cf7: 0f b1 75 00 cmpxchg %esi,0x0(%rbp) - 419cfb: 74 17 je 419d14 <_int_free+0x554> - 419cfd: 48 8d 7d 00 lea 0x0(%rbp),%rdi - 419d01: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 419d08: e8 c3 88 02 00 callq 4425d0 <__lll_lock_wait_private> - 419d0d: 48 81 c4 80 00 00 00 add $0x80,%rsp - 419d14: 48 8b 45 58 mov 0x58(%rbp),%rax - 419d18: 4e 8d 2c 23 lea (%rbx,%r12,1),%r13 - 419d1c: 48 39 c3 cmp %rax,%rbx - 419d1f: 0f 84 e3 05 00 00 je 41a308 <_int_free+0xb48> - 419d25: 41 b9 01 00 00 00 mov $0x1,%r9d - 419d2b: c7 44 24 28 01 00 00 movl $0x1,0x28(%rsp) - 419d32: 00 - 419d33: e9 18 fc ff ff jmpq 419950 <_int_free+0x190> - 419d38: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 419d3f: 00 - 419d40: 48 8d 7b 10 lea 0x10(%rbx),%rdi - 419d44: 41 bd b2 20 4a 00 mov $0x4a20b2,%r13d - 419d4a: e9 89 fb ff ff jmpq 4198d8 <_int_free+0x118> - 419d4f: 90 nop - 419d50: 48 8d 6c 24 30 lea 0x30(%rsp),%rbp - 419d55: 48 8d 74 24 40 lea 0x40(%rsp),%rsi - 419d5a: 31 c9 xor %ecx,%ecx - 419d5c: ba 10 00 00 00 mov $0x10,%edx - 419d61: c6 44 24 40 00 movb $0x0,0x40(%rsp) - 419d66: e8 45 81 03 00 callq 451eb0 <_itoa_word> - 419d6b: 48 39 e8 cmp %rbp,%rax - 419d6e: 48 89 c3 mov %rax,%rbx - 419d71: 76 25 jbe 419d98 <_int_free+0x5d8> - 419d73: 48 89 c2 mov %rax,%rdx - 419d76: 48 89 c7 mov %rax,%rdi - 419d79: be 30 00 00 00 mov $0x30,%esi - 419d7e: 48 29 ea sub %rbp,%rdx - 419d81: 4c 8d 70 ff lea -0x1(%rax),%r14 - 419d85: 48 29 d7 sub %rdx,%rdi - 419d88: e8 c3 65 fe ff callq 400350 <__rela_iplt_end+0x88> - 419d8d: 48 8d 44 24 2f lea 0x2f(%rsp),%rax - 419d92: 4c 29 f0 sub %r14,%rax - 419d95: 48 01 c3 add %rax,%rbx - 419d98: 48 8b 05 21 35 2b 00 mov 0x2b3521(%rip),%rax # 6cd2c0 <__libc_argv> - 419d9f: 44 89 e7 mov %r12d,%edi - 419da2: ba 38 20 4a 00 mov $0x4a2038,%edx - 419da7: 49 89 d8 mov %rbx,%r8 - 419daa: 4c 89 e9 mov %r13,%rcx - 419dad: be a8 23 4a 00 mov $0x4a23a8,%esi - 419db2: 48 8b 00 mov (%rax),%rax - 419db5: 48 85 c0 test %rax,%rax - 419db8: 48 0f 45 d0 cmovne %rax,%rdx - 419dbc: 83 e7 02 and $0x2,%edi - 419dbf: 31 c0 xor %eax,%eax - 419dc1: e8 fa 77 ff ff callq 4115c0 <__libc_message> - 419dc6: 48 83 c4 58 add $0x58,%rsp - 419dca: 5b pop %rbx - 419dcb: 5d pop %rbp - 419dcc: 41 5c pop %r12 - 419dce: 41 5d pop %r13 - 419dd0: 41 5e pop %r14 - 419dd2: 41 5f pop %r15 - 419dd4: c3 retq - 419dd5: 0f 1f 00 nopl (%rax) - 419dd8: 48 8d 7b 10 lea 0x10(%rbx),%rdi - 419ddc: 41 bd ca 20 4a 00 mov $0x4a20ca,%r13d - 419de2: e9 f1 fa ff ff jmpq 4198d8 <_int_free+0x118> - 419de7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 419dee: 00 00 - 419df0: 49 8b 5c 24 08 mov 0x8(%r12),%rbx - 419df5: 49 89 ff mov %rdi,%r15 - 419df8: 48 83 e3 f8 and $0xfffffffffffffff8,%rbx - 419dfc: 48 39 1d 9d 09 2b 00 cmp %rbx,0x2b099d(%rip) # 6ca7a0 - 419e03: 77 7b ja 419e80 <_int_free+0x6c0> - 419e05: 48 89 d8 mov %rbx,%rax - 419e08: 48 83 e8 21 sub $0x21,%rax - 419e0c: 78 72 js 419e80 <_int_free+0x6c0> - 419e0e: 48 8b 4c 24 08 mov 0x8(%rsp),%rcx - 419e13: 48 39 c1 cmp %rax,%rcx - 419e16: 73 68 jae 419e80 <_int_free+0x6c0> - 419e18: 48 29 c8 sub %rcx,%rax - 419e1b: 49 f7 dd neg %r13 - 419e1e: 49 21 c5 and %rax,%r13 - 419e21: 74 5d je 419e80 <_int_free+0x6c0> - 419e23: 4d 8b 77 10 mov 0x10(%r15),%r14 - 419e27: 4d 29 ee sub %r13,%r14 - 419e2a: 49 83 fe 1f cmp $0x1f,%r14 - 419e2e: 7e 50 jle 419e80 <_int_free+0x6c0> - 419e30: 8b 35 2a 09 2b 00 mov 0x2b092a(%rip),%esi # 6ca760 - 419e36: 85 f6 test %esi,%esi - 419e38: 0f 88 1e 0b 00 00 js 41a95c <_int_free+0x119c> - 419e3e: 0f 95 c0 setne %al - 419e41: 84 c0 test %al,%al - 419e43: 4b 8d 3c 37 lea (%r15,%r14,1),%rdi - 419e47: 0f 85 e4 0a 00 00 jne 41a931 <_int_free+0x1171> - 419e4d: ba 04 00 00 00 mov $0x4,%edx - 419e52: 4c 89 ee mov %r13,%rsi - 419e55: e8 96 5e 02 00 callq 43fcf0 <__madvise> - 419e5a: 4d 89 77 10 mov %r14,0x10(%r15) - 419e5e: 90 nop - 419e5f: 4c 29 2d b2 27 2b 00 sub %r13,0x2b27b2(%rip) # 6cc618 - 419e66: 4c 29 eb sub %r13,%rbx - 419e69: 4c 29 ad 80 08 00 00 sub %r13,0x880(%rbp) - 419e70: 48 83 cb 01 or $0x1,%rbx - 419e74: 49 89 5c 24 08 mov %rbx,0x8(%r12) - 419e79: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 419e80: 8b 54 24 04 mov 0x4(%rsp),%edx - 419e84: 85 d2 test %edx,%edx - 419e86: 0f 85 7f fa ff ff jne 41990b <_int_free+0x14b> - 419e8c: 8b 44 24 28 mov 0x28(%rsp),%eax - 419e90: 85 c0 test %eax,%eax - 419e92: 0f 84 2c 0d 00 00 je 41abc4 <_int_free+0x1404> - 419e98: 83 3d 1d 33 2b 00 00 cmpl $0x0,0x2b331d(%rip) # 6cd1bc <__libc_multiple_threads> - 419e9f: 74 08 je 419ea9 <_int_free+0x6e9> - 419ea1: f0 ff 4d 00 lock decl 0x0(%rbp) - 419ea5: 75 07 jne 419eae <_int_free+0x6ee> - 419ea7: eb 1c jmp 419ec5 <_int_free+0x705> - 419ea9: ff 4d 00 decl 0x0(%rbp) - 419eac: 74 17 je 419ec5 <_int_free+0x705> - 419eae: 48 8d 7d 00 lea 0x0(%rbp),%rdi - 419eb2: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 419eb9: e8 42 87 02 00 callq 442600 <__lll_unlock_wake_private> - 419ebe: 48 81 c4 80 00 00 00 add $0x80,%rsp - 419ec5: e9 41 fa ff ff jmpq 41990b <_int_free+0x14b> - 419eca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 419ed0: 8b 3d 9a 08 2b 00 mov 0x2b089a(%rip),%edi # 6ca770 - 419ed6: 83 4d 04 04 orl $0x4,0x4(%rbp) - 419eda: 89 f8 mov %edi,%eax - 419edc: 83 e0 05 and $0x5,%eax - 419edf: 83 f8 05 cmp $0x5,%eax - 419ee2: 0f 84 d3 04 00 00 je 41a3bb <_int_free+0xbfb> - 419ee8: 41 89 fe mov %edi,%r14d - 419eeb: 41 83 e6 02 and $0x2,%r14d - 419eef: 83 e7 01 and $0x1,%edi - 419ef2: 0f 85 10 03 00 00 jne 41a208 <_int_free+0xa48> - 419ef8: 45 85 f6 test %r14d,%r14d - 419efb: 0f 84 df fc ff ff je 419be0 <_int_free+0x420> - 419f01: e9 9e 02 00 00 jmpq 41a1a4 <_int_free+0x9e4> - 419f06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 419f0d: 00 00 00 - 419f10: 48 89 f7 mov %rsi,%rdi - 419f13: e8 d8 dd ff ff callq 417cf0 - 419f18: e9 ee f9 ff ff jmpq 41990b <_int_free+0x14b> - 419f1d: 0f 1f 00 nopl (%rax) - 419f20: 44 39 e7 cmp %r12d,%edi - 419f23: 0f 84 e2 f9 ff ff je 41990b <_int_free+0x14b> - 419f29: 84 c9 test %cl,%cl - 419f2b: 0f 84 da f9 ff ff je 41990b <_int_free+0x14b> - 419f31: 4c 89 c7 mov %r8,%rdi - 419f34: 41 bd df 20 4a 00 mov $0x4a20df,%r13d - 419f3a: e9 99 f9 ff ff jmpq 4198d8 <_int_free+0x118> - 419f3f: 90 nop - 419f40: 44 8b 15 29 08 2b 00 mov 0x2b0829(%rip),%r10d # 6ca770 - 419f47: 83 4d 04 04 orl $0x4,0x4(%rbp) - 419f4b: 44 89 d0 mov %r10d,%eax - 419f4e: 83 e0 05 and $0x5,%eax - 419f51: 83 f8 05 cmp $0x5,%eax - 419f54: 0f 84 66 05 00 00 je 41a4c0 <_int_free+0xd00> - 419f5a: 41 f6 c2 01 test $0x1,%r10b - 419f5e: 0f 85 71 01 00 00 jne 41a0d5 <_int_free+0x915> - 419f64: 41 f6 c2 02 test $0x2,%r10b - 419f68: 0f 85 36 02 00 00 jne 41a1a4 <_int_free+0x9e4> - 419f6e: 4d 8b 74 24 10 mov 0x10(%r12),%r14 - 419f73: 49 8b 44 24 18 mov 0x18(%r12),%rax - 419f78: 4d 3b 66 18 cmp 0x18(%r14),%r12 - 419f7c: 0f 85 5e fc ff ff jne 419be0 <_int_free+0x420> - 419f82: 4c 3b 60 10 cmp 0x10(%rax),%r12 - 419f86: 0f 84 2c fc ff ff je 419bb8 <_int_free+0x3f8> - 419f8c: 44 89 d7 mov %r10d,%edi - 419f8f: 83 4d 04 04 orl $0x4,0x4(%rbp) - 419f93: e9 50 ff ff ff jmpq 419ee8 <_int_free+0x728> - 419f98: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 419f9f: 00 - 419fa0: 49 83 65 08 fe andq $0xfffffffffffffffe,0x8(%r13) - 419fa5: e9 df fa ff ff jmpq 419a89 <_int_free+0x2c9> - 419faa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 419fb0: 44 89 e7 mov %r12d,%edi - 419fb3: 4c 89 ea mov %r13,%rdx - 419fb6: be 3c ca 4b 00 mov $0x4bca3c,%esi - 419fbb: 83 e7 02 and $0x2,%edi - 419fbe: 31 c0 xor %eax,%eax - 419fc0: e8 fb 75 ff ff callq 4115c0 <__libc_message> - 419fc5: e9 41 f9 ff ff jmpq 41990b <_int_free+0x14b> - 419fca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 419fd0: 44 8b 44 24 04 mov 0x4(%rsp),%r8d - 419fd5: 45 85 c0 test %r8d,%r8d - 419fd8: 0f 85 92 00 00 00 jne 41a070 <_int_free+0x8b0> - 419fde: be 01 00 00 00 mov $0x1,%esi - 419fe3: 8b 44 24 04 mov 0x4(%rsp),%eax - 419fe7: 83 3d ce 31 2b 00 00 cmpl $0x0,0x2b31ce(%rip) # 6cd1bc <__libc_multiple_threads> - 419fee: 74 09 je 419ff9 <_int_free+0x839> - 419ff0: f0 0f b1 75 00 lock cmpxchg %esi,0x0(%rbp) - 419ff5: 75 08 jne 419fff <_int_free+0x83f> - 419ff7: eb 1d jmp 41a016 <_int_free+0x856> - 419ff9: 0f b1 75 00 cmpxchg %esi,0x0(%rbp) - 419ffd: 74 17 je 41a016 <_int_free+0x856> - 419fff: 48 8d 7d 00 lea 0x0(%rbp),%rdi - 41a003: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41a00a: e8 c1 85 02 00 callq 4425d0 <__lll_lock_wait_private> - 41a00f: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41a016: 48 8b 42 08 mov 0x8(%rdx),%rax - 41a01a: 48 83 f8 10 cmp $0x10,%rax - 41a01e: 0f 86 d4 02 00 00 jbe 41a2f8 <_int_free+0xb38> - 41a024: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 41a028: 48 3b 85 80 08 00 00 cmp 0x880(%rbp),%rax - 41a02f: 0f 83 c3 02 00 00 jae 41a2f8 <_int_free+0xb38> - 41a035: 83 3d 80 31 2b 00 00 cmpl $0x0,0x2b3180(%rip) # 6cd1bc <__libc_multiple_threads> - 41a03c: 74 08 je 41a046 <_int_free+0x886> - 41a03e: f0 ff 4d 00 lock decl 0x0(%rbp) - 41a042: 75 07 jne 41a04b <_int_free+0x88b> - 41a044: eb 1c jmp 41a062 <_int_free+0x8a2> - 41a046: ff 4d 00 decl 0x0(%rbp) - 41a049: 74 17 je 41a062 <_int_free+0x8a2> - 41a04b: 48 8d 7d 00 lea 0x0(%rbp),%rdi - 41a04f: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41a056: e8 a5 85 02 00 callq 442600 <__lll_unlock_wake_private> - 41a05b: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41a062: e9 d7 f7 ff ff jmpq 41983e <_int_free+0x7e> - 41a067: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 41a06e: 00 00 - 41a070: 48 8d 7b 10 lea 0x10(%rbx),%rdi - 41a074: 41 bd 20 24 4a 00 mov $0x4a2420,%r13d - 41a07a: e9 59 f8 ff ff jmpq 4198d8 <_int_free+0x118> - 41a07f: 90 nop - 41a080: 49 8b 50 20 mov 0x20(%r8),%rdx - 41a084: 48 85 d2 test %rdx,%rdx - 41a087: 0f 84 f9 f9 ff ff je 419a86 <_int_free+0x2c6> - 41a08d: 4c 39 42 28 cmp %r8,0x28(%rdx) - 41a091: 0f 85 cd 0a 00 00 jne 41ab64 <_int_free+0x13a4> - 41a097: 49 8b 48 28 mov 0x28(%r8),%rcx - 41a09b: 4c 39 41 20 cmp %r8,0x20(%rcx) - 41a09f: 0f 85 bf 0a 00 00 jne 41ab64 <_int_free+0x13a4> - 41a0a5: 48 83 78 20 00 cmpq $0x0,0x20(%rax) - 41a0aa: 0f 84 8a 0a 00 00 je 41ab3a <_int_free+0x137a> - 41a0b0: 49 8b 40 28 mov 0x28(%r8),%rax - 41a0b4: 48 89 42 28 mov %rax,0x28(%rdx) - 41a0b8: 49 8b 40 28 mov 0x28(%r8),%rax - 41a0bc: 48 89 50 20 mov %rdx,0x20(%rax) - 41a0c0: e9 c1 f9 ff ff jmpq 419a86 <_int_free+0x2c6> - 41a0c5: 0f 1f 00 nopl (%rax) - 41a0c8: 48 89 ef mov %rbp,%rdi - 41a0cb: e8 60 dd ff ff callq 417e30 - 41a0d0: e9 15 fa ff ff jmpq 419aea <_int_free+0x32a> - 41a0d5: 48 8d 74 24 40 lea 0x40(%rsp),%rsi - 41a0da: 31 c9 xor %ecx,%ecx - 41a0dc: ba 10 00 00 00 mov $0x10,%edx - 41a0e1: 4c 89 e7 mov %r12,%rdi - 41a0e4: 44 89 54 24 18 mov %r10d,0x18(%rsp) - 41a0e9: c6 44 24 40 00 movb $0x0,0x40(%rsp) - 41a0ee: e8 bd 7d 03 00 callq 451eb0 <_itoa_word> - 41a0f3: 49 89 c6 mov %rax,%r14 - 41a0f6: 48 8d 44 24 30 lea 0x30(%rsp),%rax - 41a0fb: 44 8b 54 24 18 mov 0x18(%rsp),%r10d - 41a100: 49 39 c6 cmp %rax,%r14 - 41a103: 76 3c jbe 41a141 <_int_free+0x981> - 41a105: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 41a10a: 49 8d 4e ff lea -0x1(%r14),%rcx - 41a10e: 4c 89 f7 mov %r14,%rdi - 41a111: be 30 00 00 00 mov $0x30,%esi - 41a116: 44 89 54 24 20 mov %r10d,0x20(%rsp) - 41a11b: 48 89 4c 24 18 mov %rcx,0x18(%rsp) - 41a120: 48 8d 14 08 lea (%rax,%rcx,1),%rdx - 41a124: 48 29 d7 sub %rdx,%rdi - 41a127: e8 24 62 fe ff callq 400350 <__rela_iplt_end+0x88> - 41a12c: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx - 41a131: 48 8d 44 24 2f lea 0x2f(%rsp),%rax - 41a136: 44 8b 54 24 20 mov 0x20(%rsp),%r10d - 41a13b: 48 29 c8 sub %rcx,%rax - 41a13e: 49 01 c6 add %rax,%r14 - 41a141: 48 8b 05 78 31 2b 00 mov 0x2b3178(%rip),%rax # 6cd2c0 <__libc_argv> - 41a148: 44 89 d7 mov %r10d,%edi - 41a14b: ba 38 20 4a 00 mov $0x4a2038,%edx - 41a150: 4d 89 f0 mov %r14,%r8 - 41a153: b9 78 20 4a 00 mov $0x4a2078,%ecx - 41a158: be a8 23 4a 00 mov $0x4a23a8,%esi - 41a15d: 48 8b 00 mov (%rax),%rax - 41a160: 48 85 c0 test %rax,%rax - 41a163: 48 0f 45 d0 cmovne %rax,%rdx - 41a167: 83 e7 02 and $0x2,%edi - 41a16a: 31 c0 xor %eax,%eax - 41a16c: e8 4f 74 ff ff callq 4115c0 <__libc_message> - 41a171: e9 24 fa ff ff jmpq 419b9a <_int_free+0x3da> - 41a176: 44 8b 15 f3 05 2b 00 mov 0x2b05f3(%rip),%r10d # 6ca770 - 41a17d: 83 4d 04 04 orl $0x4,0x4(%rbp) - 41a181: 44 89 d0 mov %r10d,%eax - 41a184: 83 e0 05 and $0x5,%eax - 41a187: 83 f8 05 cmp $0x5,%eax - 41a18a: 0f 84 7a 07 00 00 je 41a90a <_int_free+0x114a> - 41a190: 41 f6 c2 01 test $0x1,%r10b - 41a194: 0f 85 62 04 00 00 jne 41a5fc <_int_free+0xe3c> - 41a19a: 41 83 e2 02 and $0x2,%r10d - 41a19e: 0f 84 e2 f8 ff ff je 419a86 <_int_free+0x2c6> - 41a1a4: e8 57 3a ff ff callq 40dc00 - 41a1a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41a1b0: 41 bd 00 25 4a 00 mov $0x4a2500,%r13d - 41a1b6: 44 8b 54 24 04 mov 0x4(%rsp),%r10d - 41a1bb: 45 85 d2 test %r10d,%r10d - 41a1be: 0f 85 48 0a 00 00 jne 41ac0c <_int_free+0x144c> - 41a1c4: 45 84 c9 test %r9b,%r9b - 41a1c7: 0f 84 3f 0a 00 00 je 41ac0c <_int_free+0x144c> - 41a1cd: 83 3d e8 2f 2b 00 00 cmpl $0x0,0x2b2fe8(%rip) # 6cd1bc <__libc_multiple_threads> - 41a1d4: 74 08 je 41a1de <_int_free+0xa1e> - 41a1d6: f0 ff 4d 00 lock decl 0x0(%rbp) - 41a1da: 75 07 jne 41a1e3 <_int_free+0xa23> - 41a1dc: eb 1c jmp 41a1fa <_int_free+0xa3a> - 41a1de: ff 4d 00 decl 0x0(%rbp) - 41a1e1: 74 17 je 41a1fa <_int_free+0xa3a> - 41a1e3: 48 8d 7d 00 lea 0x0(%rbp),%rdi - 41a1e7: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41a1ee: e8 0d 84 02 00 callq 442600 <__lll_unlock_wake_private> - 41a1f3: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41a1fa: 48 8d 7b 10 lea 0x10(%rbx),%rdi - 41a1fe: e9 d5 f6 ff ff jmpq 4198d8 <_int_free+0x118> - 41a203: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41a208: 48 8d 74 24 40 lea 0x40(%rsp),%rsi - 41a20d: 31 c9 xor %ecx,%ecx - 41a20f: ba 10 00 00 00 mov $0x10,%edx - 41a214: 4c 89 e7 mov %r12,%rdi - 41a217: c6 44 24 40 00 movb $0x0,0x40(%rsp) - 41a21c: e8 8f 7c 03 00 callq 451eb0 <_itoa_word> - 41a221: 49 89 c0 mov %rax,%r8 - 41a224: 48 8d 44 24 30 lea 0x30(%rsp),%rax - 41a229: 49 39 c0 cmp %rax,%r8 - 41a22c: 76 3c jbe 41a26a <_int_free+0xaaa> - 41a22e: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 41a233: 49 8d 48 ff lea -0x1(%r8),%rcx - 41a237: 4c 89 c7 mov %r8,%rdi - 41a23a: be 30 00 00 00 mov $0x30,%esi - 41a23f: 4c 89 44 24 18 mov %r8,0x18(%rsp) - 41a244: 48 89 4c 24 20 mov %rcx,0x20(%rsp) - 41a249: 48 8d 14 08 lea (%rax,%rcx,1),%rdx - 41a24d: 48 29 d7 sub %rdx,%rdi - 41a250: e8 fb 60 fe ff callq 400350 <__rela_iplt_end+0x88> - 41a255: 48 8b 4c 24 20 mov 0x20(%rsp),%rcx - 41a25a: 48 8d 44 24 2f lea 0x2f(%rsp),%rax - 41a25f: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 - 41a264: 48 29 c8 sub %rcx,%rax - 41a267: 49 01 c0 add %rax,%r8 - 41a26a: 48 8b 05 4f 30 2b 00 mov 0x2b304f(%rip),%rax # 6cd2c0 <__libc_argv> - 41a271: ba 38 20 4a 00 mov $0x4a2038,%edx - 41a276: b9 95 20 4a 00 mov $0x4a2095,%ecx - 41a27b: be a8 23 4a 00 mov $0x4a23a8,%esi - 41a280: 44 89 f7 mov %r14d,%edi - 41a283: 48 8b 00 mov (%rax),%rax - 41a286: 48 85 c0 test %rax,%rax - 41a289: 48 0f 45 d0 cmovne %rax,%rdx - 41a28d: 31 c0 xor %eax,%eax - 41a28f: e8 2c 73 ff ff callq 4115c0 <__libc_message> - 41a294: e9 47 f9 ff ff jmpq 419be0 <_int_free+0x420> - 41a299: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41a2a0: 49 8d 54 24 f0 lea -0x10(%r12),%rdx - 41a2a5: 4c 89 c7 mov %r8,%rdi - 41a2a8: e8 a3 60 fe ff callq 400350 <__rela_iplt_end+0x88> - 41a2ad: 49 89 c0 mov %rax,%r8 - 41a2b0: e9 9b f5 ff ff jmpq 419850 <_int_free+0x90> - 41a2b5: 0f 1f 00 nopl (%rax) - 41a2b8: 4c 3b 60 28 cmp 0x28(%rax),%r12 - 41a2bc: 0f 85 1a 02 00 00 jne 41a4dc <_int_free+0xd1c> - 41a2c2: 49 8b 54 24 28 mov 0x28(%r12),%rdx - 41a2c7: 4c 3b 62 20 cmp 0x20(%rdx),%r12 - 41a2cb: 0f 85 0b 02 00 00 jne 41a4dc <_int_free+0xd1c> - 41a2d1: 49 83 7e 20 00 cmpq $0x0,0x20(%r14) - 41a2d6: 0f 84 34 02 00 00 je 41a510 <_int_free+0xd50> - 41a2dc: 49 8b 54 24 28 mov 0x28(%r12),%rdx - 41a2e1: 48 89 50 28 mov %rdx,0x28(%rax) - 41a2e5: 49 8b 54 24 28 mov 0x28(%r12),%rdx - 41a2ea: 48 89 42 20 mov %rax,0x20(%rdx) - 41a2ee: e9 ed f8 ff ff jmpq 419be0 <_int_free+0x420> - 41a2f3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41a2f8: 41 bd 20 24 4a 00 mov $0x4a2420,%r13d - 41a2fe: e9 ca fe ff ff jmpq 41a1cd <_int_free+0xa0d> - 41a303: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41a308: 41 bd 98 24 4a 00 mov $0x4a2498,%r13d - 41a30e: e9 ba fe ff ff jmpq 41a1cd <_int_free+0xa0d> - 41a313: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41a318: 4d 01 fc add %r15,%r12 - 41a31b: 4c 89 e0 mov %r12,%rax - 41a31e: 48 83 c8 01 or $0x1,%rax - 41a322: 48 89 43 08 mov %rax,0x8(%rbx) - 41a326: 48 89 5d 58 mov %rbx,0x58(%rbp) - 41a32a: e9 a4 f7 ff ff jmpq 419ad3 <_int_free+0x313> - 41a32f: 90 nop - 41a330: 48 8b 50 08 mov 0x8(%rax),%rdx - 41a334: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx - 41a338: 48 01 d0 add %rdx,%rax - 41a33b: 49 39 c5 cmp %rax,%r13 - 41a33e: 0f 82 16 f6 ff ff jb 41995a <_int_free+0x19a> - 41a344: 41 bd b8 24 4a 00 mov $0x4a24b8,%r13d - 41a34a: e9 67 fe ff ff jmpq 41a1b6 <_int_free+0x9f6> - 41a34f: 90 nop - 41a350: 41 bd d8 24 4a 00 mov $0x4a24d8,%r13d - 41a356: e9 5b fe ff ff jmpq 41a1b6 <_int_free+0x9f6> - 41a35b: 49 8d 54 24 f0 lea -0x10(%r12),%rdx - 41a360: 48 8d 7b 10 lea 0x10(%rbx),%rdi - 41a364: 44 88 4c 24 08 mov %r9b,0x8(%rsp) - 41a369: e8 e2 5f fe ff callq 400350 <__rela_iplt_end+0x88> - 41a36e: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d - 41a374: e9 19 f6 ff ff jmpq 419992 <_int_free+0x1d2> - 41a379: 44 8b 15 f0 03 2b 00 mov 0x2b03f0(%rip),%r10d # 6ca770 - 41a380: 83 4d 04 04 orl $0x4,0x4(%rbp) - 41a384: 44 89 d0 mov %r10d,%eax - 41a387: 83 e0 05 and $0x5,%eax - 41a38a: 83 f8 05 cmp $0x5,%eax - 41a38d: 0f 84 50 05 00 00 je 41a8e3 <_int_free+0x1123> - 41a393: 41 f6 c2 01 test $0x1,%r10b - 41a397: 0f 85 a0 01 00 00 jne 41a53d <_int_free+0xd7d> - 41a39d: 41 83 e2 02 and $0x2,%r10d - 41a3a1: 0f 84 81 f6 ff ff je 419a28 <_int_free+0x268> - 41a3a7: e9 f8 fd ff ff jmpq 41a1a4 <_int_free+0x9e4> - 41a3ac: 0f 1f 40 00 nopl 0x0(%rax) - 41a3b0: 41 bd 48 24 4a 00 mov $0x4a2448,%r13d - 41a3b6: e9 fb fd ff ff jmpq 41a1b6 <_int_free+0x9f6> - 41a3bb: 83 e7 02 and $0x2,%edi - 41a3be: ba 95 20 4a 00 mov $0x4a2095,%edx - 41a3c3: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41a3c8: 31 c0 xor %eax,%eax - 41a3ca: e8 f1 71 ff ff callq 4115c0 <__libc_message> - 41a3cf: e9 0c f8 ff ff jmpq 419be0 <_int_free+0x420> - 41a3d4: 48 8b 05 7d 04 2b 00 mov 0x2b047d(%rip),%rax # 6ca858 - 41a3db: 48 8b 40 08 mov 0x8(%rax),%rax - 41a3df: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 41a3e3: 48 3b 05 b6 03 2b 00 cmp 0x2b03b6(%rip),%rax # 6ca7a0 - 41a3ea: 0f 82 90 fa ff ff jb 419e80 <_int_free+0x6c0> - 41a3f0: 48 8b 3d b1 03 2b 00 mov 0x2b03b1(%rip),%rdi # 6ca7a8 - 41a3f7: ba 80 b0 6c 00 mov $0x6cb080,%edx - 41a3fc: be 58 a8 6c 00 mov $0x6ca858,%esi - 41a401: e8 9a cf ff ff callq 4173a0 - 41a406: e9 75 fa ff ff jmpq 419e80 <_int_free+0x6c0> - 41a40b: 44 8b 15 5e 03 2b 00 mov 0x2b035e(%rip),%r10d # 6ca770 - 41a412: 83 4d 04 04 orl $0x4,0x4(%rbp) - 41a416: 44 89 d0 mov %r10d,%eax - 41a419: 83 e0 05 and $0x5,%eax - 41a41c: 83 f8 05 cmp $0x5,%eax - 41a41f: 0f 84 f0 05 00 00 je 41aa15 <_int_free+0x1255> - 41a425: 41 f6 c2 01 test $0x1,%r10b - 41a429: 0f 85 89 02 00 00 jne 41a6b8 <_int_free+0xef8> - 41a42f: 41 f6 c2 02 test $0x2,%r10b - 41a433: 0f 85 6b fd ff ff jne 41a1a4 <_int_free+0x9e4> - 41a439: 48 8b 43 10 mov 0x10(%rbx),%rax - 41a43d: 48 8b 53 18 mov 0x18(%rbx),%rdx - 41a441: 48 3b 58 18 cmp 0x18(%rax),%rbx - 41a445: 0f 85 52 ff ff ff jne 41a39d <_int_free+0xbdd> - 41a44b: 48 3b 5a 10 cmp 0x10(%rdx),%rbx - 41a44f: 0f 84 7e f5 ff ff je 4199d3 <_int_free+0x213> - 41a455: 83 4d 04 04 orl $0x4,0x4(%rbp) - 41a459: e9 35 ff ff ff jmpq 41a393 <_int_free+0xbd3> - 41a45e: 66 90 xchg %ax,%ax - 41a460: 44 8b 15 09 03 2b 00 mov 0x2b0309(%rip),%r10d # 6ca770 - 41a467: 83 4d 04 04 orl $0x4,0x4(%rbp) - 41a46b: 44 89 d0 mov %r10d,%eax - 41a46e: 83 e0 05 and $0x5,%eax - 41a471: 83 f8 05 cmp $0x5,%eax - 41a474: 0f 84 c2 05 00 00 je 41aa3c <_int_free+0x127c> - 41a47a: 41 f6 c2 01 test $0x1,%r10b - 41a47e: 0f 85 f3 02 00 00 jne 41a777 <_int_free+0xfb7> - 41a484: 41 f6 c2 02 test $0x2,%r10b - 41a488: 0f 85 16 fd ff ff jne 41a1a4 <_int_free+0x9e4> - 41a48e: 49 8b 45 10 mov 0x10(%r13),%rax - 41a492: 49 8b 55 18 mov 0x18(%r13),%rdx - 41a496: 4c 39 68 18 cmp %r13,0x18(%rax) - 41a49a: 0f 85 fa fc ff ff jne 41a19a <_int_free+0x9da> - 41a4a0: 4c 8b 42 10 mov 0x10(%rdx),%r8 - 41a4a4: 4d 39 c5 cmp %r8,%r13 - 41a4a7: 0f 84 c3 f5 ff ff je 419a70 <_int_free+0x2b0> - 41a4ad: 83 4d 04 04 orl $0x4,0x4(%rbp) - 41a4b1: e9 da fc ff ff jmpq 41a190 <_int_free+0x9d0> - 41a4b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41a4bd: 00 00 00 - 41a4c0: 44 89 d7 mov %r10d,%edi - 41a4c3: ba 78 20 4a 00 mov $0x4a2078,%edx - 41a4c8: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41a4cd: 83 e7 02 and $0x2,%edi - 41a4d0: 31 c0 xor %eax,%eax - 41a4d2: e8 e9 70 ff ff callq 4115c0 <__libc_message> - 41a4d7: e9 be f6 ff ff jmpq 419b9a <_int_free+0x3da> - 41a4dc: 44 8b 15 8d 02 2b 00 mov 0x2b028d(%rip),%r10d # 6ca770 - 41a4e3: 83 4d 04 04 orl $0x4,0x4(%rbp) - 41a4e7: 44 89 d2 mov %r10d,%edx - 41a4ea: 83 e2 05 and $0x5,%edx - 41a4ed: 83 fa 05 cmp $0x5,%edx - 41a4f0: 0f 84 f9 05 00 00 je 41aaef <_int_free+0x132f> - 41a4f6: 41 f6 c2 01 test $0x1,%r10b - 41a4fa: 0f 85 36 03 00 00 jne 41a836 <_int_free+0x1076> - 41a500: 41 83 e2 02 and $0x2,%r10d - 41a504: 0f 84 c7 fd ff ff je 41a2d1 <_int_free+0xb11> - 41a50a: e9 95 fc ff ff jmpq 41a1a4 <_int_free+0x9e4> - 41a50f: 90 nop - 41a510: 49 39 c4 cmp %rax,%r12 - 41a513: 0f 84 95 05 00 00 je 41aaae <_int_free+0x12ee> - 41a519: 49 89 46 20 mov %rax,0x20(%r14) - 41a51d: 49 8b 44 24 28 mov 0x28(%r12),%rax - 41a522: 49 89 46 28 mov %rax,0x28(%r14) - 41a526: 49 8b 44 24 20 mov 0x20(%r12),%rax - 41a52b: 4c 89 70 28 mov %r14,0x28(%rax) - 41a52f: 49 8b 44 24 28 mov 0x28(%r12),%rax - 41a534: 4c 89 70 20 mov %r14,0x20(%rax) - 41a538: e9 a3 f6 ff ff jmpq 419be0 <_int_free+0x420> - 41a53d: 4c 8d 5c 24 30 lea 0x30(%rsp),%r11 - 41a542: 48 8d 74 24 40 lea 0x40(%rsp),%rsi - 41a547: 31 c9 xor %ecx,%ecx - 41a549: ba 10 00 00 00 mov $0x10,%edx - 41a54e: 48 89 df mov %rbx,%rdi - 41a551: 44 88 4c 24 18 mov %r9b,0x18(%rsp) - 41a556: 44 89 54 24 10 mov %r10d,0x10(%rsp) - 41a55b: 4c 89 5c 24 08 mov %r11,0x8(%rsp) - 41a560: c6 44 24 40 00 movb $0x0,0x40(%rsp) - 41a565: e8 46 79 03 00 callq 451eb0 <_itoa_word> - 41a56a: 4c 8b 5c 24 08 mov 0x8(%rsp),%r11 - 41a56f: 49 89 c0 mov %rax,%r8 - 41a572: 44 8b 54 24 10 mov 0x10(%rsp),%r10d - 41a577: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d - 41a57d: 4c 39 d8 cmp %r11,%rax - 41a580: 76 3d jbe 41a5bf <_int_free+0xdff> - 41a582: 4c 89 c2 mov %r8,%rdx - 41a585: 4c 89 c7 mov %r8,%rdi - 41a588: 48 8d 40 ff lea -0x1(%rax),%rax - 41a58c: 4c 29 da sub %r11,%rdx - 41a58f: be 30 00 00 00 mov $0x30,%esi - 41a594: 4c 89 44 24 08 mov %r8,0x8(%rsp) - 41a599: 48 29 d7 sub %rdx,%rdi - 41a59c: 49 89 c6 mov %rax,%r14 - 41a59f: e8 ac 5d fe ff callq 400350 <__rela_iplt_end+0x88> - 41a5a4: 48 8d 44 24 2f lea 0x2f(%rsp),%rax - 41a5a9: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 - 41a5ae: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d - 41a5b4: 44 8b 54 24 10 mov 0x10(%rsp),%r10d - 41a5b9: 4c 29 f0 sub %r14,%rax - 41a5bc: 49 01 c0 add %rax,%r8 - 41a5bf: 48 8b 05 fa 2c 2b 00 mov 0x2b2cfa(%rip),%rax # 6cd2c0 <__libc_argv> - 41a5c6: 44 89 d7 mov %r10d,%edi - 41a5c9: ba 38 20 4a 00 mov $0x4a2038,%edx - 41a5ce: b9 95 20 4a 00 mov $0x4a2095,%ecx - 41a5d3: be a8 23 4a 00 mov $0x4a23a8,%esi - 41a5d8: 44 88 4c 24 08 mov %r9b,0x8(%rsp) - 41a5dd: 48 8b 00 mov (%rax),%rax - 41a5e0: 48 85 c0 test %rax,%rax - 41a5e3: 48 0f 45 d0 cmovne %rax,%rdx - 41a5e7: 83 e7 02 and $0x2,%edi - 41a5ea: 31 c0 xor %eax,%eax - 41a5ec: e8 cf 6f ff ff callq 4115c0 <__libc_message> - 41a5f1: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d - 41a5f7: e9 2c f4 ff ff jmpq 419a28 <_int_free+0x268> - 41a5fc: 4c 8d 5c 24 30 lea 0x30(%rsp),%r11 - 41a601: 48 8d 74 24 40 lea 0x40(%rsp),%rsi - 41a606: 31 c9 xor %ecx,%ecx - 41a608: ba 10 00 00 00 mov $0x10,%edx - 41a60d: 4c 89 ef mov %r13,%rdi - 41a610: 44 88 4c 24 18 mov %r9b,0x18(%rsp) - 41a615: 44 89 54 24 10 mov %r10d,0x10(%rsp) - 41a61a: 4c 89 5c 24 08 mov %r11,0x8(%rsp) - 41a61f: c6 44 24 40 00 movb $0x0,0x40(%rsp) - 41a624: e8 87 78 03 00 callq 451eb0 <_itoa_word> - 41a629: 4c 8b 5c 24 08 mov 0x8(%rsp),%r11 - 41a62e: 49 89 c0 mov %rax,%r8 - 41a631: 44 8b 54 24 10 mov 0x10(%rsp),%r10d - 41a636: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d - 41a63c: 4c 39 d8 cmp %r11,%rax - 41a63f: 76 3a jbe 41a67b <_int_free+0xebb> - 41a641: 48 89 c2 mov %rax,%rdx - 41a644: 48 89 c7 mov %rax,%rdi - 41a647: be 30 00 00 00 mov $0x30,%esi - 41a64c: 4c 29 da sub %r11,%rdx - 41a64f: 4c 8d 68 ff lea -0x1(%rax),%r13 - 41a653: 48 89 44 24 08 mov %rax,0x8(%rsp) - 41a658: 48 29 d7 sub %rdx,%rdi - 41a65b: e8 f0 5c fe ff callq 400350 <__rela_iplt_end+0x88> - 41a660: 48 8d 44 24 2f lea 0x2f(%rsp),%rax - 41a665: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 - 41a66a: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d - 41a670: 44 8b 54 24 10 mov 0x10(%rsp),%r10d - 41a675: 4c 29 e8 sub %r13,%rax - 41a678: 49 01 c0 add %rax,%r8 - 41a67b: 48 8b 05 3e 2c 2b 00 mov 0x2b2c3e(%rip),%rax # 6cd2c0 <__libc_argv> - 41a682: 44 89 d7 mov %r10d,%edi - 41a685: ba 38 20 4a 00 mov $0x4a2038,%edx - 41a68a: b9 95 20 4a 00 mov $0x4a2095,%ecx - 41a68f: be a8 23 4a 00 mov $0x4a23a8,%esi - 41a694: 44 88 4c 24 08 mov %r9b,0x8(%rsp) - 41a699: 48 8b 00 mov (%rax),%rax - 41a69c: 48 85 c0 test %rax,%rax - 41a69f: 48 0f 45 d0 cmovne %rax,%rdx - 41a6a3: 83 e7 02 and $0x2,%edi - 41a6a6: 31 c0 xor %eax,%eax - 41a6a8: e8 13 6f ff ff callq 4115c0 <__libc_message> - 41a6ad: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d - 41a6b3: e9 ce f3 ff ff jmpq 419a86 <_int_free+0x2c6> - 41a6b8: 4c 8d 5c 24 30 lea 0x30(%rsp),%r11 - 41a6bd: 48 8d 74 24 40 lea 0x40(%rsp),%rsi - 41a6c2: 31 c9 xor %ecx,%ecx - 41a6c4: ba 10 00 00 00 mov $0x10,%edx - 41a6c9: 48 89 df mov %rbx,%rdi - 41a6cc: 44 88 4c 24 18 mov %r9b,0x18(%rsp) - 41a6d1: 44 89 54 24 10 mov %r10d,0x10(%rsp) - 41a6d6: 4c 89 5c 24 08 mov %r11,0x8(%rsp) - 41a6db: c6 44 24 40 00 movb $0x0,0x40(%rsp) - 41a6e0: e8 cb 77 03 00 callq 451eb0 <_itoa_word> - 41a6e5: 4c 8b 5c 24 08 mov 0x8(%rsp),%r11 - 41a6ea: 49 89 c0 mov %rax,%r8 - 41a6ed: 44 8b 54 24 10 mov 0x10(%rsp),%r10d - 41a6f2: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d - 41a6f8: 4c 39 d8 cmp %r11,%rax - 41a6fb: 76 3d jbe 41a73a <_int_free+0xf7a> - 41a6fd: 4c 89 c2 mov %r8,%rdx - 41a700: 4c 89 c7 mov %r8,%rdi - 41a703: 48 8d 40 ff lea -0x1(%rax),%rax - 41a707: 4c 29 da sub %r11,%rdx - 41a70a: be 30 00 00 00 mov $0x30,%esi - 41a70f: 4c 89 44 24 08 mov %r8,0x8(%rsp) - 41a714: 48 29 d7 sub %rdx,%rdi - 41a717: 49 89 c6 mov %rax,%r14 - 41a71a: e8 31 5c fe ff callq 400350 <__rela_iplt_end+0x88> - 41a71f: 48 8d 44 24 2f lea 0x2f(%rsp),%rax - 41a724: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 - 41a729: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d - 41a72f: 44 8b 54 24 10 mov 0x10(%rsp),%r10d - 41a734: 4c 29 f0 sub %r14,%rax - 41a737: 49 01 c0 add %rax,%r8 - 41a73a: 48 8b 05 7f 2b 2b 00 mov 0x2b2b7f(%rip),%rax # 6cd2c0 <__libc_argv> - 41a741: 44 89 d7 mov %r10d,%edi - 41a744: ba 38 20 4a 00 mov $0x4a2038,%edx - 41a749: b9 78 20 4a 00 mov $0x4a2078,%ecx - 41a74e: be a8 23 4a 00 mov $0x4a23a8,%esi - 41a753: 44 88 4c 24 08 mov %r9b,0x8(%rsp) - 41a758: 48 8b 00 mov (%rax),%rax - 41a75b: 48 85 c0 test %rax,%rax - 41a75e: 48 0f 45 d0 cmovne %rax,%rdx - 41a762: 83 e7 02 and $0x2,%edi - 41a765: 31 c0 xor %eax,%eax - 41a767: e8 54 6e ff ff callq 4115c0 <__libc_message> - 41a76c: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d - 41a772: e9 40 f2 ff ff jmpq 4199b7 <_int_free+0x1f7> - 41a777: 4c 8d 5c 24 30 lea 0x30(%rsp),%r11 - 41a77c: 48 8d 74 24 40 lea 0x40(%rsp),%rsi - 41a781: 31 c9 xor %ecx,%ecx - 41a783: ba 10 00 00 00 mov $0x10,%edx - 41a788: 4c 89 ef mov %r13,%rdi - 41a78b: 44 88 4c 24 18 mov %r9b,0x18(%rsp) - 41a790: 44 89 54 24 10 mov %r10d,0x10(%rsp) - 41a795: 4c 89 5c 24 08 mov %r11,0x8(%rsp) - 41a79a: c6 44 24 40 00 movb $0x0,0x40(%rsp) - 41a79f: e8 0c 77 03 00 callq 451eb0 <_itoa_word> - 41a7a4: 4c 8b 5c 24 08 mov 0x8(%rsp),%r11 - 41a7a9: 49 89 c0 mov %rax,%r8 - 41a7ac: 44 8b 54 24 10 mov 0x10(%rsp),%r10d - 41a7b1: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d - 41a7b7: 4c 39 d8 cmp %r11,%rax - 41a7ba: 76 3d jbe 41a7f9 <_int_free+0x1039> - 41a7bc: 4c 89 c2 mov %r8,%rdx - 41a7bf: 4c 89 c7 mov %r8,%rdi - 41a7c2: 48 8d 40 ff lea -0x1(%rax),%rax - 41a7c6: 4c 29 da sub %r11,%rdx - 41a7c9: be 30 00 00 00 mov $0x30,%esi - 41a7ce: 4c 89 44 24 08 mov %r8,0x8(%rsp) - 41a7d3: 48 29 d7 sub %rdx,%rdi - 41a7d6: 49 89 c6 mov %rax,%r14 - 41a7d9: e8 72 5b fe ff callq 400350 <__rela_iplt_end+0x88> - 41a7de: 48 8d 44 24 2f lea 0x2f(%rsp),%rax - 41a7e3: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 - 41a7e8: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d - 41a7ee: 44 8b 54 24 10 mov 0x10(%rsp),%r10d - 41a7f3: 4c 29 f0 sub %r14,%rax - 41a7f6: 49 01 c0 add %rax,%r8 - 41a7f9: 48 8b 05 c0 2a 2b 00 mov 0x2b2ac0(%rip),%rax # 6cd2c0 <__libc_argv> - 41a800: 44 89 d7 mov %r10d,%edi - 41a803: ba 38 20 4a 00 mov $0x4a2038,%edx - 41a808: b9 78 20 4a 00 mov $0x4a2078,%ecx - 41a80d: be a8 23 4a 00 mov $0x4a23a8,%esi - 41a812: 44 88 4c 24 08 mov %r9b,0x8(%rsp) - 41a817: 48 8b 00 mov (%rax),%rax - 41a81a: 48 85 c0 test %rax,%rax - 41a81d: 48 0f 45 d0 cmovne %rax,%rdx - 41a821: 83 e7 02 and $0x2,%edi - 41a824: 31 c0 xor %eax,%eax - 41a826: e8 95 6d ff ff callq 4115c0 <__libc_message> - 41a82b: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d - 41a831: e9 1b f2 ff ff jmpq 419a51 <_int_free+0x291> - 41a836: 48 8d 74 24 40 lea 0x40(%rsp),%rsi - 41a83b: 31 c9 xor %ecx,%ecx - 41a83d: ba 10 00 00 00 mov $0x10,%edx - 41a842: 4c 89 e7 mov %r12,%rdi - 41a845: 44 89 54 24 18 mov %r10d,0x18(%rsp) - 41a84a: c6 44 24 40 00 movb $0x0,0x40(%rsp) - 41a84f: e8 5c 76 03 00 callq 451eb0 <_itoa_word> - 41a854: 49 89 c0 mov %rax,%r8 - 41a857: 48 8d 44 24 30 lea 0x30(%rsp),%rax - 41a85c: 44 8b 54 24 18 mov 0x18(%rsp),%r10d - 41a861: 49 39 c0 cmp %rax,%r8 - 41a864: 76 46 jbe 41a8ac <_int_free+0x10ec> - 41a866: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 41a86b: 49 8d 48 ff lea -0x1(%r8),%rcx - 41a86f: 4c 89 c7 mov %r8,%rdi - 41a872: be 30 00 00 00 mov $0x30,%esi - 41a877: 44 89 54 24 2c mov %r10d,0x2c(%rsp) - 41a87c: 4c 89 44 24 18 mov %r8,0x18(%rsp) - 41a881: 48 89 4c 24 20 mov %rcx,0x20(%rsp) - 41a886: 48 8d 14 08 lea (%rax,%rcx,1),%rdx - 41a88a: 48 29 d7 sub %rdx,%rdi - 41a88d: e8 be 5a fe ff callq 400350 <__rela_iplt_end+0x88> - 41a892: 48 8b 4c 24 20 mov 0x20(%rsp),%rcx - 41a897: 48 8d 44 24 2f lea 0x2f(%rsp),%rax - 41a89c: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 - 41a8a1: 44 8b 54 24 2c mov 0x2c(%rsp),%r10d - 41a8a6: 48 29 c8 sub %rcx,%rax - 41a8a9: 49 01 c0 add %rax,%r8 - 41a8ac: 48 8b 05 0d 2a 2b 00 mov 0x2b2a0d(%rip),%rax # 6cd2c0 <__libc_argv> - 41a8b3: 44 89 d7 mov %r10d,%edi - 41a8b6: ba 38 20 4a 00 mov $0x4a2038,%edx - 41a8bb: b9 f0 23 4a 00 mov $0x4a23f0,%ecx - 41a8c0: be a8 23 4a 00 mov $0x4a23a8,%esi - 41a8c5: 48 8b 00 mov (%rax),%rax - 41a8c8: 48 85 c0 test %rax,%rax - 41a8cb: 48 0f 45 d0 cmovne %rax,%rdx - 41a8cf: 31 c0 xor %eax,%eax - 41a8d1: 83 e7 02 and $0x2,%edi - 41a8d4: e8 e7 6c ff ff callq 4115c0 <__libc_message> - 41a8d9: 49 8b 44 24 20 mov 0x20(%r12),%rax - 41a8de: e9 ee f9 ff ff jmpq 41a2d1 <_int_free+0xb11> - 41a8e3: 44 89 d7 mov %r10d,%edi - 41a8e6: ba 95 20 4a 00 mov $0x4a2095,%edx - 41a8eb: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41a8f0: 83 e7 02 and $0x2,%edi - 41a8f3: 31 c0 xor %eax,%eax - 41a8f5: 44 88 4c 24 08 mov %r9b,0x8(%rsp) - 41a8fa: e8 c1 6c ff ff callq 4115c0 <__libc_message> - 41a8ff: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d - 41a905: e9 1e f1 ff ff jmpq 419a28 <_int_free+0x268> - 41a90a: 44 89 d7 mov %r10d,%edi - 41a90d: ba 95 20 4a 00 mov $0x4a2095,%edx - 41a912: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41a917: 83 e7 02 and $0x2,%edi - 41a91a: 31 c0 xor %eax,%eax - 41a91c: 44 88 4c 24 08 mov %r9b,0x8(%rsp) - 41a921: e8 9a 6c ff ff callq 4115c0 <__libc_message> - 41a926: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d - 41a92c: e9 55 f1 ff ff jmpq 419a86 <_int_free+0x2c6> - 41a931: 45 31 c9 xor %r9d,%r9d - 41a934: 31 d2 xor %edx,%edx - 41a936: 41 b8 ff ff ff ff mov $0xffffffff,%r8d - 41a93c: b9 32 00 00 00 mov $0x32,%ecx - 41a941: 4c 89 ee mov %r13,%rsi - 41a944: e8 a7 52 02 00 callq 43fbf0 <__mmap> - 41a949: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 41a94d: 0f 84 2d f5 ff ff je 419e80 <_int_free+0x6c0> - 41a953: 4d 89 77 18 mov %r14,0x18(%r15) - 41a957: e9 fe f4 ff ff jmpq 419e5a <_int_free+0x69a> - 41a95c: 44 8b 05 35 f6 2a 00 mov 0x2af635(%rip),%r8d # 6c9f98 <__libc_enable_secure> - 41a963: 45 85 c0 test %r8d,%r8d - 41a966: 44 89 05 f3 fd 2a 00 mov %r8d,0x2afdf3(%rip) # 6ca760 - 41a96d: 75 64 jne 41a9d3 <_int_free+0x1213> - 41a96f: be 00 00 08 00 mov $0x80000,%esi - 41a974: bf 00 26 4a 00 mov $0x4a2600,%edi - 41a979: b8 02 00 00 00 mov $0x2,%eax - 41a97e: 0f 05 syscall - 41a980: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 41a986: 0f 87 27 02 00 00 ja 41abb3 <_int_free+0x13f3> - 41a98c: 85 c0 test %eax,%eax - 41a98e: 78 43 js 41a9d3 <_int_free+0x1213> - 41a990: 4c 63 c8 movslq %eax,%r9 - 41a993: ba 01 00 00 00 mov $0x1,%edx - 41a998: 48 8d 74 24 30 lea 0x30(%rsp),%rsi - 41a99d: 4c 89 cf mov %r9,%rdi - 41a9a0: 44 89 c0 mov %r8d,%eax - 41a9a3: 0f 05 syscall - 41a9a5: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 41a9ab: 0f 87 f1 01 00 00 ja 41aba2 <_int_free+0x13e2> - 41a9b1: 48 85 c0 test %rax,%rax - 41a9b4: 7e 0c jle 41a9c2 <_int_free+0x1202> - 41a9b6: 45 31 c0 xor %r8d,%r8d - 41a9b9: 80 7c 24 30 32 cmpb $0x32,0x30(%rsp) - 41a9be: 41 0f 94 c0 sete %r8b - 41a9c2: 44 89 05 97 fd 2a 00 mov %r8d,0x2afd97(%rip) # 6ca760 - 41a9c9: 4c 89 cf mov %r9,%rdi - 41a9cc: b8 03 00 00 00 mov $0x3,%eax - 41a9d1: 0f 05 syscall - 41a9d3: 8b 0d 87 fd 2a 00 mov 0x2afd87(%rip),%ecx # 6ca760 - 41a9d9: 85 c9 test %ecx,%ecx - 41a9db: 0f 95 c0 setne %al - 41a9de: e9 5e f4 ff ff jmpq 419e41 <_int_free+0x681> - 41a9e3: b9 88 2e 4a 00 mov $0x4a2e88,%ecx - 41a9e8: ba 37 02 00 00 mov $0x237,%edx - 41a9ed: be a8 1f 4a 00 mov $0x4a1fa8,%esi - 41a9f2: bf 28 25 4a 00 mov $0x4a2528,%edi - 41a9f7: e8 24 c4 ff ff callq 416e20 <__malloc_assert> - 41a9fc: b9 88 2e 4a 00 mov $0x4a2e88,%ecx - 41aa01: ba 34 02 00 00 mov $0x234,%edx - 41aa06: be a8 1f 4a 00 mov $0x4a1fa8,%esi - 41aa0b: bf 0f 21 4a 00 mov $0x4a210f,%edi - 41aa10: e8 0b c4 ff ff callq 416e20 <__malloc_assert> - 41aa15: 44 89 d7 mov %r10d,%edi - 41aa18: ba 78 20 4a 00 mov $0x4a2078,%edx - 41aa1d: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41aa22: 83 e7 02 and $0x2,%edi - 41aa25: 31 c0 xor %eax,%eax - 41aa27: 44 88 4c 24 08 mov %r9b,0x8(%rsp) - 41aa2c: e8 8f 6b ff ff callq 4115c0 <__libc_message> - 41aa31: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d - 41aa37: e9 7b ef ff ff jmpq 4199b7 <_int_free+0x1f7> - 41aa3c: 44 89 d7 mov %r10d,%edi - 41aa3f: ba 78 20 4a 00 mov $0x4a2078,%edx - 41aa44: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41aa49: 83 e7 02 and $0x2,%edi - 41aa4c: 31 c0 xor %eax,%eax - 41aa4e: 44 88 4c 24 08 mov %r9b,0x8(%rsp) - 41aa53: e8 68 6b ff ff callq 4115c0 <__libc_message> - 41aa58: 44 0f b6 4c 24 08 movzbl 0x8(%rsp),%r9d - 41aa5e: e9 ee ef ff ff jmpq 419a51 <_int_free+0x291> - 41aa63: b9 88 2e 4a 00 mov $0x4a2e88,%ecx - 41aa68: ba 3a 02 00 00 mov $0x23a,%edx - 41aa6d: be a8 1f 4a 00 mov $0x4a1fa8,%esi - 41aa72: bf 58 25 4a 00 mov $0x4a2558,%edi - 41aa77: e8 a4 c3 ff ff callq 416e20 <__malloc_assert> - 41aa7c: b9 88 2e 4a 00 mov $0x4a2e88,%ecx - 41aa81: ba 48 02 00 00 mov $0x248,%edx - 41aa86: be a8 1f 4a 00 mov $0x4a1fa8,%esi - 41aa8b: bf c8 25 4a 00 mov $0x4a25c8,%edi - 41aa90: e8 8b c3 ff ff callq 416e20 <__malloc_assert> - 41aa95: b9 88 2e 4a 00 mov $0x4a2e88,%ecx - 41aa9a: ba 47 02 00 00 mov $0x247,%edx - 41aa9f: be a8 1f 4a 00 mov $0x4a1fa8,%esi - 41aaa4: bf 88 25 4a 00 mov $0x4a2588,%edi - 41aaa9: e8 72 c3 ff ff callq 416e20 <__malloc_assert> - 41aaae: 4d 89 76 28 mov %r14,0x28(%r14) - 41aab2: 4d 89 76 20 mov %r14,0x20(%r14) - 41aab6: e9 25 f1 ff ff jmpq 419be0 <_int_free+0x420> - 41aabb: 8b 3d af fc 2a 00 mov 0x2afcaf(%rip),%edi # 6ca770 - 41aac1: 48 89 da mov %rbx,%rdx - 41aac4: 48 89 e9 mov %rbp,%rcx - 41aac7: be f0 23 4a 00 mov $0x4a23f0,%esi - 41aacc: 44 88 4c 24 10 mov %r9b,0x10(%rsp) - 41aad1: 48 89 44 24 08 mov %rax,0x8(%rsp) - 41aad6: e8 d5 c7 ff ff callq 4172b0 - 41aadb: 48 8b 53 20 mov 0x20(%rbx),%rdx - 41aadf: 44 0f b6 4c 24 10 movzbl 0x10(%rsp),%r9d - 41aae5: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 41aaea: e9 17 ef ff ff jmpq 419a06 <_int_free+0x246> - 41aaef: 44 89 d7 mov %r10d,%edi - 41aaf2: 31 c0 xor %eax,%eax - 41aaf4: ba f0 23 4a 00 mov $0x4a23f0,%edx - 41aaf9: 83 e7 02 and $0x2,%edi - 41aafc: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41ab01: e8 ba 6a ff ff callq 4115c0 <__libc_message> - 41ab06: 49 8b 44 24 20 mov 0x20(%r12),%rax - 41ab0b: e9 c1 f7 ff ff jmpq 41a2d1 <_int_free+0xb11> - 41ab10: 48 39 d3 cmp %rdx,%rbx - 41ab13: 0f 84 f9 00 00 00 je 41ac12 <_int_free+0x1452> - 41ab19: 48 89 50 20 mov %rdx,0x20(%rax) - 41ab1d: 48 8b 53 28 mov 0x28(%rbx),%rdx - 41ab21: 48 89 50 28 mov %rdx,0x28(%rax) - 41ab25: 48 8b 53 20 mov 0x20(%rbx),%rdx - 41ab29: 48 89 42 28 mov %rax,0x28(%rdx) - 41ab2d: 48 8b 53 28 mov 0x28(%rbx),%rdx - 41ab31: 48 89 42 20 mov %rax,0x20(%rdx) - 41ab35: e9 ee ee ff ff jmpq 419a28 <_int_free+0x268> - 41ab3a: 49 39 d0 cmp %rdx,%r8 - 41ab3d: 0f 84 dc 00 00 00 je 41ac1f <_int_free+0x145f> - 41ab43: 48 89 50 20 mov %rdx,0x20(%rax) - 41ab47: 49 8b 50 28 mov 0x28(%r8),%rdx - 41ab4b: 48 89 50 28 mov %rdx,0x28(%rax) - 41ab4f: 49 8b 50 20 mov 0x20(%r8),%rdx - 41ab53: 48 89 42 28 mov %rax,0x28(%rdx) - 41ab57: 49 8b 50 28 mov 0x28(%r8),%rdx - 41ab5b: 48 89 42 20 mov %rax,0x20(%rdx) - 41ab5f: e9 22 ef ff ff jmpq 419a86 <_int_free+0x2c6> - 41ab64: 8b 3d 06 fc 2a 00 mov 0x2afc06(%rip),%edi # 6ca770 - 41ab6a: 4c 89 c2 mov %r8,%rdx - 41ab6d: 48 89 e9 mov %rbp,%rcx - 41ab70: be f0 23 4a 00 mov $0x4a23f0,%esi - 41ab75: 44 88 4c 24 18 mov %r9b,0x18(%rsp) - 41ab7a: 48 89 44 24 10 mov %rax,0x10(%rsp) - 41ab7f: 4c 89 44 24 08 mov %r8,0x8(%rsp) - 41ab84: e8 27 c7 ff ff callq 4172b0 - 41ab89: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 - 41ab8e: 44 0f b6 4c 24 18 movzbl 0x18(%rsp),%r9d - 41ab94: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 41ab99: 49 8b 50 20 mov 0x20(%r8),%rdx - 41ab9d: e9 03 f5 ff ff jmpq 41a0a5 <_int_free+0x8e5> - 41aba2: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 41aba9: f7 d8 neg %eax - 41abab: 64 89 02 mov %eax,%fs:(%rdx) - 41abae: e9 0f fe ff ff jmpq 41a9c2 <_int_free+0x1202> - 41abb3: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 41abba: f7 d8 neg %eax - 41abbc: 64 89 02 mov %eax,%fs:(%rdx) - 41abbf: e9 0f fe ff ff jmpq 41a9d3 <_int_free+0x1213> - 41abc4: b9 98 2e 4a 00 mov $0x4a2e98,%ecx - 41abc9: ba fe 0f 00 00 mov $0xffe,%edx - 41abce: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41abd3: bf 2b 21 4a 00 mov $0x4a212b,%edi - 41abd8: e8 43 c2 ff ff callq 416e20 <__malloc_assert> - 41abdd: b9 98 2e 4a 00 mov $0x4a2e98,%ecx - 41abe2: ba f8 0f 00 00 mov $0xff8,%edx - 41abe7: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41abec: bf fc 20 4a 00 mov $0x4a20fc,%edi - 41abf1: e8 2a c2 ff ff callq 416e20 <__malloc_assert> - 41abf6: 48 8d 7e 10 lea 0x10(%rsi),%rdi - 41abfa: 41 bd 98 24 4a 00 mov $0x4a2498,%r13d - 41ac00: 44 8b 25 69 fb 2a 00 mov 0x2afb69(%rip),%r12d # 6ca770 - 41ac07: e9 d8 ec ff ff jmpq 4198e4 <_int_free+0x124> - 41ac0c: 48 8d 7b 10 lea 0x10(%rbx),%rdi - 41ac10: eb ee jmp 41ac00 <_int_free+0x1440> - 41ac12: 48 89 40 28 mov %rax,0x28(%rax) - 41ac16: 48 89 40 20 mov %rax,0x20(%rax) - 41ac1a: e9 09 ee ff ff jmpq 419a28 <_int_free+0x268> - 41ac1f: 48 89 40 28 mov %rax,0x28(%rax) - 41ac23: 48 89 40 20 mov %rax,0x20(%rax) - 41ac27: e9 5a ee ff ff jmpq 419a86 <_int_free+0x2c6> - 41ac2c: 0f 1f 40 00 nopl 0x0(%rax) - -000000000041ac30 : - 41ac30: 41 57 push %r15 - 41ac32: 41 56 push %r14 - 41ac34: 41 55 push %r13 - 41ac36: 41 54 push %r12 - 41ac38: 55 push %rbp - 41ac39: 53 push %rbx - 41ac3a: 48 89 fd mov %rdi,%rbp - 41ac3d: 48 83 ec 58 sub $0x58,%rsp - 41ac41: 48 85 f6 test %rsi,%rsi - 41ac44: 4c 8b 3d 35 05 2b 00 mov 0x2b0535(%rip),%r15 # 6cb180 <_dl_pagesize> - 41ac4b: 0f 84 bf 02 00 00 je 41af10 - 41ac51: 48 39 3d 58 fb 2a 00 cmp %rdi,0x2afb58(%rip) # 6ca7b0 - 41ac58: 48 89 f3 mov %rsi,%rbx - 41ac5b: 0f 86 8f 01 00 00 jbe 41adf0 - 41ac61: c6 44 24 08 00 movb $0x0,0x8(%rsp) - 41ac66: 48 8d 43 58 lea 0x58(%rbx),%rax - 41ac6a: 4d 8d 74 2f 07 lea 0x7(%r15,%rbp,1),%r14 - 41ac6f: 48 89 04 24 mov %rax,(%rsp) - 41ac73: 4c 89 f8 mov %r15,%rax - 41ac76: 48 f7 d8 neg %rax - 41ac79: 49 21 c6 and %rax,%r14 - 41ac7c: 4c 89 74 24 18 mov %r14,0x18(%rsp) - 41ac81: 4c 8b 6b 58 mov 0x58(%rbx),%r13 - 41ac85: 49 8b 45 08 mov 0x8(%r13),%rax - 41ac89: 49 89 c4 mov %rax,%r12 - 41ac8c: 49 83 e4 f8 and $0xfffffffffffffff8,%r12 - 41ac90: 4d 85 e4 test %r12,%r12 - 41ac93: 4f 8d 54 25 00 lea 0x0(%r13,%r12,1),%r10 - 41ac98: 41 0f 95 c3 setne %r11b - 41ac9c: 4c 3b 2c 24 cmp (%rsp),%r13 - 41aca0: 0f 85 1a 01 00 00 jne 41adc0 - 41aca6: 45 84 db test %r11b,%r11b - 41aca9: 0f 85 11 01 00 00 jne 41adc0 - 41acaf: 4c 8d 45 20 lea 0x20(%rbp),%r8 - 41acb3: 4d 39 c4 cmp %r8,%r12 - 41acb6: 0f 83 b7 07 00 00 jae 41b473 - 41acbc: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx - 41acc3: 0f 84 f7 02 00 00 je 41afc0 - 41acc9: 48 89 ea mov %rbp,%rdx - 41accc: 4d 89 ee mov %r13,%r14 - 41accf: 4c 29 e2 sub %r12,%rdx - 41acd2: 49 81 e6 00 00 00 fc and $0xfffffffffc000000,%r14 - 41acd9: 48 83 c2 20 add $0x20,%rdx - 41acdd: 48 85 d2 test %rdx,%rdx - 41ace0: 0f 8e 42 01 00 00 jle 41ae28 - 41ace6: 48 8b 05 93 04 2b 00 mov 0x2b0493(%rip),%rax # 6cb180 <_dl_pagesize> - 41aced: 4d 8b 4e 10 mov 0x10(%r14),%r9 - 41acf1: 48 8d 4c 02 ff lea -0x1(%rdx,%rax,1),%rcx - 41acf6: 48 f7 d8 neg %rax - 41acf9: 48 21 c8 and %rcx,%rax - 41acfc: 4a 8d 0c 08 lea (%rax,%r9,1),%rcx - 41ad00: 48 81 f9 00 00 00 04 cmp $0x4000000,%rcx - 41ad07: 0f 87 1b 01 00 00 ja 41ae28 - 41ad0d: 49 8b 7e 18 mov 0x18(%r14),%rdi - 41ad11: 48 39 f9 cmp %rdi,%rcx - 41ad14: 0f 87 a6 01 00 00 ja 41aec0 - 41ad1a: 4c 89 f0 mov %r14,%rax - 41ad1d: 4c 89 ea mov %r13,%rdx - 41ad20: 4d 89 c6 mov %r8,%r14 - 41ad23: 49 89 c0 mov %rax,%r8 - 41ad26: 49 89 48 10 mov %rcx,0x10(%r8) - 41ad2a: 90 nop - 41ad2b: 48 89 c8 mov %rcx,%rax - 41ad2e: 4c 01 c1 add %r8,%rcx - 41ad31: 4c 29 c8 sub %r9,%rax - 41ad34: 48 01 05 dd 18 2b 00 add %rax,0x2b18dd(%rip) # 6cc618 - 41ad3b: 4c 29 e9 sub %r13,%rcx - 41ad3e: 48 89 c6 mov %rax,%rsi - 41ad41: 48 03 b3 80 08 00 00 add 0x880(%rbx),%rsi - 41ad48: 48 83 c9 01 or $0x1,%rcx - 41ad4c: 48 89 b3 80 08 00 00 mov %rsi,0x880(%rbx) - 41ad53: 49 89 4d 08 mov %rcx,0x8(%r13) - 41ad57: 48 39 b3 88 08 00 00 cmp %rsi,0x888(%rbx) - 41ad5e: 73 07 jae 41ad67 - 41ad60: 48 89 b3 88 08 00 00 mov %rsi,0x888(%rbx) - 41ad67: 48 8b 42 08 mov 0x8(%rdx),%rax - 41ad6b: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 41ad6f: 49 39 c6 cmp %rax,%r14 - 41ad72: 0f 87 58 03 00 00 ja 41b0d0 - 41ad78: 48 29 e8 sub %rbp,%rax - 41ad7b: 31 c9 xor %ecx,%ecx - 41ad7d: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx - 41ad84: 0f 95 c1 setne %cl - 41ad87: 48 8d 34 2a lea (%rdx,%rbp,1),%rsi - 41ad8b: 48 83 cd 01 or $0x1,%rbp - 41ad8f: 48 c1 e1 02 shl $0x2,%rcx - 41ad93: 48 83 c8 01 or $0x1,%rax - 41ad97: 48 83 c2 10 add $0x10,%rdx - 41ad9b: 48 09 e9 or %rbp,%rcx - 41ad9e: 48 89 73 58 mov %rsi,0x58(%rbx) - 41ada2: 48 89 4a f8 mov %rcx,-0x8(%rdx) - 41ada6: 48 89 46 08 mov %rax,0x8(%rsi) - 41adaa: 48 83 c4 58 add $0x58,%rsp - 41adae: 48 89 d0 mov %rdx,%rax - 41adb1: 5b pop %rbx - 41adb2: 5d pop %rbp - 41adb3: 41 5c pop %r12 - 41adb5: 41 5d pop %r13 - 41adb7: 41 5e pop %r14 - 41adb9: 41 5f pop %r15 - 41adbb: c3 retq - 41adbc: 0f 1f 40 00 nopl 0x0(%rax) - 41adc0: 49 83 fc 1f cmp $0x1f,%r12 - 41adc4: 76 11 jbe 41add7 - 41adc6: a8 01 test $0x1,%al - 41adc8: 74 0d je 41add7 - 41adca: 49 8d 47 ff lea -0x1(%r15),%rax - 41adce: 49 85 c2 test %rax,%r10 - 41add1: 0f 84 d8 fe ff ff je 41acaf - 41add7: b9 a8 2e 4a 00 mov $0x4a2ea8,%ecx - 41addc: ba 5a 09 00 00 mov $0x95a,%edx - 41ade1: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41ade6: bf 60 26 4a 00 mov $0x4a2660,%edi - 41adeb: e8 30 c0 ff ff callq 416e20 <__malloc_assert> - 41adf0: 8b 05 d6 f9 2a 00 mov 0x2af9d6(%rip),%eax # 6ca7cc - 41adf6: 39 05 cc f9 2a 00 cmp %eax,0x2af9cc(%rip) # 6ca7c8 - 41adfc: 0f 8d 5f fe ff ff jge 41ac61 - 41ae02: 4d 8d 64 3f 07 lea 0x7(%r15,%rdi,1),%r12 - 41ae07: 4c 89 f8 mov %r15,%rax - 41ae0a: 48 f7 d8 neg %rax - 41ae0d: 49 21 c4 and %rax,%r12 - 41ae10: 4c 39 e7 cmp %r12,%rdi - 41ae13: 0f 82 9e 06 00 00 jb 41b4b7 - 41ae19: c6 44 24 08 01 movb $0x1,0x8(%rsp) - 41ae1e: e9 43 fe ff ff jmpq 41ac66 - 41ae23: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41ae28: 48 8b 35 79 f9 2a 00 mov 0x2af979(%rip),%rsi # 6ca7a8 - 41ae2f: 48 8d 7d 40 lea 0x40(%rbp),%rdi - 41ae33: 4c 89 44 24 10 mov %r8,0x10(%rsp) - 41ae38: e8 43 c0 ff ff callq 416e80 - 41ae3d: 48 85 c0 test %rax,%rax - 41ae40: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 - 41ae45: 0f 84 9d 02 00 00 je 41b0e8 - 41ae4b: 48 8b 48 10 mov 0x10(%rax),%rcx - 41ae4f: 48 8d 50 20 lea 0x20(%rax),%rdx - 41ae53: 48 01 0d be 17 2b 00 add %rcx,0x2b17be(%rip) # 6cc618 - 41ae5a: 49 83 ec 20 sub $0x20,%r12 - 41ae5e: 4c 89 f7 mov %r14,%rdi - 41ae61: 48 89 18 mov %rbx,(%rax) - 41ae64: 49 83 e4 f0 and $0xfffffffffffffff0,%r12 - 41ae68: 48 89 78 08 mov %rdi,0x8(%rax) - 41ae6c: 48 89 53 58 mov %rdx,0x58(%rbx) - 41ae70: 48 89 ce mov %rcx,%rsi - 41ae73: 48 03 b3 80 08 00 00 add 0x880(%rbx),%rsi - 41ae7a: 48 83 e9 20 sub $0x20,%rcx - 41ae7e: 48 83 c9 01 or $0x1,%rcx - 41ae82: 49 83 fc 1f cmp $0x1f,%r12 - 41ae86: 4d 89 c6 mov %r8,%r14 - 41ae89: 48 89 b3 80 08 00 00 mov %rsi,0x880(%rbx) - 41ae90: 48 89 48 28 mov %rcx,0x28(%rax) - 41ae94: 49 8d 44 24 10 lea 0x10(%r12),%rax - 41ae99: 49 8d 4c 05 00 lea 0x0(%r13,%rax,1),%rcx - 41ae9e: 48 c7 41 08 01 00 00 movq $0x1,0x8(%rcx) - 41aea5: 00 - 41aea6: 0f 87 ec 01 00 00 ja 41b098 - 41aeac: 48 89 c7 mov %rax,%rdi - 41aeaf: 48 83 cf 01 or $0x1,%rdi - 41aeb3: 49 89 7d 08 mov %rdi,0x8(%r13) - 41aeb7: 48 89 01 mov %rax,(%rcx) - 41aeba: e9 98 fe ff ff jmpq 41ad57 - 41aebf: 90 nop - 41aec0: 48 89 ce mov %rcx,%rsi - 41aec3: ba 03 00 00 00 mov $0x3,%edx - 41aec8: 4c 89 44 24 10 mov %r8,0x10(%rsp) - 41aecd: 48 29 fe sub %rdi,%rsi - 41aed0: 4c 01 f7 add %r14,%rdi - 41aed3: 4c 89 4c 24 28 mov %r9,0x28(%rsp) - 41aed8: 48 89 4c 24 20 mov %rcx,0x20(%rsp) - 41aedd: e8 ee 4d 02 00 callq 43fcd0 <__mprotect> - 41aee2: 85 c0 test %eax,%eax - 41aee4: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 - 41aee9: 0f 85 39 ff ff ff jne 41ae28 - 41aeef: 48 8b 4c 24 20 mov 0x20(%rsp),%rcx - 41aef4: 4c 89 f0 mov %r14,%rax - 41aef7: 4c 8b 4c 24 28 mov 0x28(%rsp),%r9 - 41aefc: 4d 89 c6 mov %r8,%r14 - 41aeff: 48 8b 53 58 mov 0x58(%rbx),%rdx - 41af03: 49 89 c0 mov %rax,%r8 - 41af06: 48 89 48 18 mov %rcx,0x18(%rax) - 41af0a: e9 17 fe ff ff jmpq 41ad26 - 41af0f: 90 nop - 41af10: 4d 8d 64 3f 07 lea 0x7(%r15,%rdi,1),%r12 - 41af15: 4d 89 fa mov %r15,%r10 - 41af18: 49 f7 da neg %r10 - 41af1b: 4d 21 d4 and %r10,%r12 - 41af1e: 4c 39 e7 cmp %r12,%rdi - 41af21: 0f 83 b7 01 00 00 jae 41b0de - 41af27: 45 31 c9 xor %r9d,%r9d - 41af2a: 31 ff xor %edi,%edi - 41af2c: 41 b8 ff ff ff ff mov $0xffffffff,%r8d - 41af32: b9 22 00 00 00 mov $0x22,%ecx - 41af37: ba 03 00 00 00 mov $0x3,%edx - 41af3c: 4c 89 e6 mov %r12,%rsi - 41af3f: e8 ac 4c 02 00 callq 43fbf0 <__mmap> - 41af44: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 41af48: 0f 84 90 01 00 00 je 41b0de - 41af4e: 48 8d 50 10 lea 0x10(%rax),%rdx - 41af52: f6 c2 0f test $0xf,%dl - 41af55: 0f 85 86 05 00 00 jne 41b4e1 - 41af5b: 4c 89 e1 mov %r12,%rcx - 41af5e: 48 83 c9 02 or $0x2,%rcx - 41af62: 48 89 48 08 mov %rcx,0x8(%rax) - 41af66: b9 01 00 00 00 mov $0x1,%ecx - 41af6b: f0 0f c1 0d 55 f8 2a lock xadd %ecx,0x2af855(%rip) # 6ca7c8 - 41af72: 00 - 41af73: 83 c1 01 add $0x1,%ecx - 41af76: 8b 05 54 f8 2a 00 mov 0x2af854(%rip),%eax # 6ca7d0 - 41af7c: 39 c1 cmp %eax,%ecx - 41af7e: 7e 0a jle 41af8a - 41af80: f0 0f b1 0d 48 f8 2a lock cmpxchg %ecx,0x2af848(%rip) # 6ca7d0 - 41af87: 00 - 41af88: 75 ec jne 41af76 - 41af8a: 4d 89 e2 mov %r12,%r10 - 41af8d: f0 4c 0f c1 15 42 f8 lock xadd %r10,0x2af842(%rip) # 6ca7d8 - 41af94: 2a 00 - 41af96: 4d 01 e2 add %r12,%r10 - 41af99: 48 8b 05 40 f8 2a 00 mov 0x2af840(%rip),%rax # 6ca7e0 - 41afa0: 49 39 c2 cmp %rax,%r10 - 41afa3: 0f 86 01 fe ff ff jbe 41adaa - 41afa9: f0 4c 0f b1 15 2e f8 lock cmpxchg %r10,0x2af82e(%rip) # 6ca7e0 - 41afb0: 2a 00 - 41afb2: 0f 84 f2 fd ff ff je 41adaa - 41afb8: eb df jmp 41af99 - 41afba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41afc0: f6 05 3d f8 2a 00 02 testb $0x2,0x2af83d(%rip) # 6ca804 - 41afc7: 48 8b 05 da f7 2a 00 mov 0x2af7da(%rip),%rax # 6ca7a8 - 41afce: 4d 89 c6 mov %r8,%r14 - 41afd1: 48 8d 54 05 20 lea 0x20(%rbp,%rax,1),%rdx - 41afd6: 0f 84 34 01 00 00 je 41b110 - 41afdc: 49 8d 47 ff lea -0x1(%r15),%rax - 41afe0: 49 f7 df neg %r15 - 41afe3: 4c 89 7c 24 08 mov %r15,0x8(%rsp) - 41afe8: 48 01 c2 add %rax,%rdx - 41afeb: 48 89 04 24 mov %rax,(%rsp) - 41afef: 4c 21 fa and %r15,%rdx - 41aff2: 48 85 d2 test %rdx,%rdx - 41aff5: 49 89 d7 mov %rdx,%r15 - 41aff8: 0f 8e 49 01 00 00 jle 41b147 - 41affe: 48 89 d7 mov %rdx,%rdi - 41b001: 48 89 54 24 10 mov %rdx,0x10(%rsp) - 41b006: 44 88 5c 24 20 mov %r11b,0x20(%rsp) - 41b00b: 4c 89 54 24 18 mov %r10,0x18(%rsp) - 41b010: ff 15 7a 00 2b 00 callq *0x2b007a(%rip) # 6cb090 <__morecore> - 41b016: 48 8b 54 24 10 mov 0x10(%rsp),%rdx - 41b01b: 49 89 c0 mov %rax,%r8 - 41b01e: 90 nop - 41b01f: 48 85 c0 test %rax,%rax - 41b022: 4c 8b 54 24 18 mov 0x18(%rsp),%r10 - 41b027: 44 0f b6 5c 24 20 movzbl 0x20(%rsp),%r11d - 41b02d: 0f 84 72 04 00 00 je 41b4a5 - 41b033: 48 8b 05 a6 15 2b 00 mov 0x2b15a6(%rip),%rax # 6cc5e0 <__after_morecore_hook> - 41b03a: 48 85 c0 test %rax,%rax - 41b03d: 0f 85 3d 03 00 00 jne 41b380 - 41b043: ba 01 00 00 00 mov $0x1,%edx - 41b048: 31 c0 xor %eax,%eax - 41b04a: 48 83 3d 9e f7 2a 00 cmpq $0x0,0x2af79e(%rip) # 6ca7f0 - 41b051: 00 - 41b052: 0f 84 08 03 00 00 je 41b360 - 41b058: 4c 89 fe mov %r15,%rsi - 41b05b: 48 03 35 1e 00 2b 00 add 0x2b001e(%rip),%rsi # 6cb080 - 41b062: 4d 39 c2 cmp %r8,%r10 - 41b065: 48 89 35 14 00 2b 00 mov %rsi,0x2b0014(%rip) # 6cb080 - 41b06c: 0f 85 5e 01 00 00 jne 41b1d0 - 41b072: 84 d2 test %dl,%dl - 41b074: 0f 84 56 01 00 00 je 41b1d0 - 41b07a: 4d 01 fc add %r15,%r12 - 41b07d: 48 8b 15 d4 f7 2a 00 mov 0x2af7d4(%rip),%rdx # 6ca858 - 41b084: 49 83 cc 01 or $0x1,%r12 - 41b088: 4d 89 65 08 mov %r12,0x8(%r13) - 41b08c: e9 c6 fc ff ff jmpq 41ad57 - 41b091: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41b098: 4b c7 44 25 08 11 00 movq $0x11,0x8(%r13,%r12,1) - 41b09f: 00 00 - 41b0a1: 49 83 cc 05 or $0x5,%r12 - 41b0a5: 48 c7 01 10 00 00 00 movq $0x10,(%rcx) - 41b0ac: ba 01 00 00 00 mov $0x1,%edx - 41b0b1: 4c 89 ee mov %r13,%rsi - 41b0b4: 4d 89 65 08 mov %r12,0x8(%r13) - 41b0b8: 48 89 df mov %rbx,%rdi - 41b0bb: e8 00 e7 ff ff callq 4197c0 <_int_free> - 41b0c0: 48 8b b3 80 08 00 00 mov 0x880(%rbx),%rsi - 41b0c7: 48 8b 53 58 mov 0x58(%rbx),%rdx - 41b0cb: e9 87 fc ff ff jmpq 41ad57 - 41b0d0: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41b0d7: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) - 41b0de: 31 d2 xor %edx,%edx - 41b0e0: e9 c5 fc ff ff jmpq 41adaa - 41b0e5: 0f 1f 00 nopl (%rax) - 41b0e8: 80 7c 24 08 00 cmpb $0x0,0x8(%rsp) - 41b0ed: 0f 85 0d 02 00 00 jne 41b300 - 41b0f3: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 41b0f8: 48 39 c5 cmp %rax,%rbp - 41b0fb: 49 89 c4 mov %rax,%r12 - 41b0fe: 0f 82 f6 03 00 00 jb 41b4fa - 41b104: c6 44 24 08 01 movb $0x1,0x8(%rsp) - 41b109: e9 73 fb ff ff jmpq 41ac81 - 41b10e: 66 90 xchg %ax,%ax - 41b110: 49 8d 47 ff lea -0x1(%r15),%rax - 41b114: 4c 29 e2 sub %r12,%rdx - 41b117: 49 f7 df neg %r15 - 41b11a: 4c 89 7c 24 08 mov %r15,0x8(%rsp) - 41b11f: 48 01 c2 add %rax,%rdx - 41b122: 48 89 04 24 mov %rax,(%rsp) - 41b126: 4c 21 fa and %r15,%rdx - 41b129: 48 85 d2 test %rdx,%rdx - 41b12c: 49 89 d7 mov %rdx,%r15 - 41b12f: 0f 8f c9 fe ff ff jg 41affe - 41b135: 48 8b 04 24 mov (%rsp),%rax - 41b139: 4c 01 e0 add %r12,%rax - 41b13c: 48 01 d0 add %rdx,%rax - 41b13f: 48 23 44 24 08 and 0x8(%rsp),%rax - 41b144: 49 89 c7 mov %rax,%r15 - 41b147: 49 81 ff ff ff 0f 00 cmp $0xfffff,%r15 - 41b14e: 4c 89 7c 24 10 mov %r15,0x10(%rsp) - 41b153: 77 0f ja 41b164 - 41b155: 48 c7 44 24 10 00 00 movq $0x100000,0x10(%rsp) - 41b15c: 10 00 - 41b15e: 41 bf 00 00 10 00 mov $0x100000,%r15d - 41b164: 48 3b 6c 24 10 cmp 0x10(%rsp),%rbp - 41b169: 0f 83 7e 01 00 00 jae 41b2ed - 41b16f: 48 8b 74 24 10 mov 0x10(%rsp),%rsi - 41b174: 45 31 c9 xor %r9d,%r9d - 41b177: 41 b8 ff ff ff ff mov $0xffffffff,%r8d - 41b17d: 31 ff xor %edi,%edi - 41b17f: b9 22 00 00 00 mov $0x22,%ecx - 41b184: ba 03 00 00 00 mov $0x3,%edx - 41b189: 44 88 5c 24 20 mov %r11b,0x20(%rsp) - 41b18e: 4c 89 54 24 18 mov %r10,0x18(%rsp) - 41b193: e8 58 4a 02 00 callq 43fbf0 <__mmap> - 41b198: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 41b19c: 49 89 c0 mov %rax,%r8 - 41b19f: 0f 84 48 01 00 00 je 41b2ed - 41b1a5: 83 0d 58 f6 2a 00 02 orl $0x2,0x2af658(%rip) # 6ca804 - 41b1ac: 48 85 c0 test %rax,%rax - 41b1af: 4c 8b 54 24 18 mov 0x18(%rsp),%r10 - 41b1b4: 44 0f b6 5c 24 20 movzbl 0x20(%rsp),%r11d - 41b1ba: 0f 84 2d 01 00 00 je 41b2ed - 41b1c0: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 41b1c5: 4c 01 c0 add %r8,%rax - 41b1c8: 0f 94 c2 sete %dl - 41b1cb: e9 7a fe ff ff jmpq 41b04a - 41b1d0: 8b 15 2e f6 2a 00 mov 0x2af62e(%rip),%edx # 6ca804 - 41b1d6: f6 c2 02 test $0x2,%dl - 41b1d9: 0f 85 39 01 00 00 jne 41b318 - 41b1df: 4d 39 c2 cmp %r8,%r10 - 41b1e2: 76 09 jbe 41b1ed - 41b1e4: 45 84 db test %r11b,%r11b - 41b1e7: 0f 85 b9 01 00 00 jne 41b3a6 - 41b1ed: 4d 85 e4 test %r12,%r12 - 41b1f0: 74 10 je 41b202 - 41b1f2: 4c 89 c0 mov %r8,%rax - 41b1f5: 4c 29 d0 sub %r10,%rax - 41b1f8: 48 01 c6 add %rax,%rsi - 41b1fb: 48 89 35 7e fe 2a 00 mov %rsi,0x2afe7e(%rip) # 6cb080 - 41b202: 4c 89 c2 mov %r8,%rdx - 41b205: 83 e2 0f and $0xf,%edx - 41b208: 0f 84 62 01 00 00 je 41b370 - 41b20e: b8 10 00 00 00 mov $0x10,%eax - 41b213: 48 29 d0 sub %rdx,%rax - 41b216: 49 8d 3c 00 lea (%r8,%rax,1),%rdi - 41b21a: 48 89 7c 24 10 mov %rdi,0x10(%rsp) - 41b21f: 4c 01 e0 add %r12,%rax - 41b222: 48 8b 0c 24 mov (%rsp),%rcx - 41b226: 4c 8b 54 24 08 mov 0x8(%rsp),%r10 - 41b22b: 49 8d 14 07 lea (%r15,%rax,1),%rdx - 41b22f: 4c 01 c2 add %r8,%rdx - 41b232: 48 01 d1 add %rdx,%rcx - 41b235: 48 29 d0 sub %rdx,%rax - 41b238: 49 21 ca and %rcx,%r10 - 41b23b: 49 8d 0c 02 lea (%r10,%rax,1),%rcx - 41b23f: 48 85 c9 test %rcx,%rcx - 41b242: 49 89 cf mov %rcx,%r15 - 41b245: 0f 88 41 02 00 00 js 41b48c - 41b24b: 48 89 cf mov %rcx,%rdi - 41b24e: 48 89 0c 24 mov %rcx,(%rsp) - 41b252: ff 15 38 fe 2a 00 callq *0x2afe38(%rip) # 6cb090 <__morecore> - 41b258: 48 85 c0 test %rax,%rax - 41b25b: 48 8b 0c 24 mov (%rsp),%rcx - 41b25f: 0f 84 01 02 00 00 je 41b466 - 41b265: 48 8b 15 74 13 2b 00 mov 0x2b1374(%rip),%rdx # 6cc5e0 <__after_morecore_hook> - 41b26c: 48 8b 35 0d fe 2a 00 mov 0x2afe0d(%rip),%rsi # 6cb080 - 41b273: 48 85 d2 test %rdx,%rdx - 41b276: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 - 41b27b: 0f 85 bb 01 00 00 jne 41b43c - 41b281: 4c 29 c0 sub %r8,%rax - 41b284: 48 01 ce add %rcx,%rsi - 41b287: 4c 89 05 ca f5 2a 00 mov %r8,0x2af5ca(%rip) # 6ca858 - 41b28e: 49 01 c7 add %rax,%r15 - 41b291: 4c 89 c2 mov %r8,%rdx - 41b294: 49 83 cf 01 or $0x1,%r15 - 41b298: 4d 85 e4 test %r12,%r12 - 41b29b: 4d 89 78 08 mov %r15,0x8(%r8) - 41b29f: 48 89 35 da fd 2a 00 mov %rsi,0x2afdda(%rip) # 6cb080 - 41b2a6: 0f 84 ab fa ff ff je 41ad57 - 41b2ac: 49 83 ec 20 sub $0x20,%r12 - 41b2b0: 49 83 e4 f0 and $0xfffffffffffffff0,%r12 - 41b2b4: 4c 89 e0 mov %r12,%rax - 41b2b7: 48 83 c8 01 or $0x1,%rax - 41b2bb: 49 83 fc 1f cmp $0x1f,%r12 - 41b2bf: 49 89 45 08 mov %rax,0x8(%r13) - 41b2c3: 4b c7 44 25 08 11 00 movq $0x11,0x8(%r13,%r12,1) - 41b2ca: 00 00 - 41b2cc: 4b c7 44 25 18 11 00 movq $0x11,0x18(%r13,%r12,1) - 41b2d3: 00 00 - 41b2d5: 0f 86 7c fa ff ff jbe 41ad57 - 41b2db: ba 01 00 00 00 mov $0x1,%edx - 41b2e0: 4c 89 ee mov %r13,%rsi - 41b2e3: bf 00 a8 6c 00 mov $0x6ca800,%edi - 41b2e8: e8 d3 e4 ff ff callq 4197c0 <_int_free> - 41b2ed: 48 8b 35 8c fd 2a 00 mov 0x2afd8c(%rip),%rsi # 6cb080 - 41b2f4: 48 8b 15 5d f5 2a 00 mov 0x2af55d(%rip),%rdx # 6ca858 - 41b2fb: e9 57 fa ff ff jmpq 41ad57 - 41b300: 4d 89 c6 mov %r8,%r14 - 41b303: 48 8b b3 80 08 00 00 mov 0x880(%rbx),%rsi - 41b30a: 48 8b 53 58 mov 0x58(%rbx),%rdx - 41b30e: e9 44 fa ff ff jmpq 41ad57 - 41b313: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41b318: 4c 89 c1 mov %r8,%rcx - 41b31b: 83 e1 0f and $0xf,%ecx - 41b31e: 0f 85 00 02 00 00 jne 41b524 - 41b324: 45 31 ff xor %r15d,%r15d - 41b327: 48 85 c0 test %rax,%rax - 41b32a: 0f 85 51 ff ff ff jne 41b281 - 41b330: 4c 89 04 24 mov %r8,(%rsp) - 41b334: 31 ff xor %edi,%edi - 41b336: ff 15 54 fd 2a 00 callq *0x2afd54(%rip) # 6cb090 <__morecore> - 41b33c: 4c 8b 04 24 mov (%rsp),%r8 - 41b340: 4c 89 44 24 10 mov %r8,0x10(%rsp) - 41b345: 48 85 c0 test %rax,%rax - 41b348: 48 8b 35 31 fd 2a 00 mov 0x2afd31(%rip),%rsi # 6cb080 - 41b34f: 74 a3 je 41b2f4 - 41b351: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 - 41b356: 31 c9 xor %ecx,%ecx - 41b358: 45 31 ff xor %r15d,%r15d - 41b35b: e9 21 ff ff ff jmpq 41b281 - 41b360: 4c 89 05 89 f4 2a 00 mov %r8,0x2af489(%rip) # 6ca7f0 - 41b367: e9 ec fc ff ff jmpq 41b058 - 41b36c: 0f 1f 40 00 nopl 0x0(%rax) - 41b370: 4c 89 44 24 10 mov %r8,0x10(%rsp) - 41b375: 31 c0 xor %eax,%eax - 41b377: e9 a3 fe ff ff jmpq 41b21f - 41b37c: 0f 1f 40 00 nopl 0x0(%rax) - 41b380: 44 88 5c 24 20 mov %r11b,0x20(%rsp) - 41b385: 4c 89 44 24 18 mov %r8,0x18(%rsp) - 41b38a: 4c 89 54 24 10 mov %r10,0x10(%rsp) - 41b38f: ff d0 callq *%rax - 41b391: 4c 8b 54 24 10 mov 0x10(%rsp),%r10 - 41b396: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 - 41b39b: 44 0f b6 5c 24 20 movzbl 0x20(%rsp),%r11d - 41b3a1: e9 9d fc ff ff jmpq 41b043 - 41b3a6: 83 ca 04 or $0x4,%edx - 41b3a9: 4c 8d 6c 24 30 lea 0x30(%rsp),%r13 - 41b3ae: 48 8d 74 24 40 lea 0x40(%rsp),%rsi - 41b3b3: 89 15 4b f4 2a 00 mov %edx,0x2af44b(%rip) # 6ca804 - 41b3b9: 31 c9 xor %ecx,%ecx - 41b3bb: ba 10 00 00 00 mov $0x10,%edx - 41b3c0: 4c 89 c7 mov %r8,%rdi - 41b3c3: c6 44 24 40 00 movb $0x0,0x40(%rsp) - 41b3c8: e8 e3 6a 03 00 callq 451eb0 <_itoa_word> - 41b3cd: 4c 39 e8 cmp %r13,%rax - 41b3d0: 49 89 c4 mov %rax,%r12 - 41b3d3: 76 25 jbe 41b3fa - 41b3d5: 48 89 c2 mov %rax,%rdx - 41b3d8: 48 89 c7 mov %rax,%rdi - 41b3db: be 30 00 00 00 mov $0x30,%esi - 41b3e0: 4c 29 ea sub %r13,%rdx - 41b3e3: 4c 8d 78 ff lea -0x1(%rax),%r15 - 41b3e7: 48 29 d7 sub %rdx,%rdi - 41b3ea: e8 61 4f fe ff callq 400350 <__rela_iplt_end+0x88> - 41b3ef: 48 8d 44 24 2f lea 0x2f(%rsp),%rax - 41b3f4: 4c 29 f8 sub %r15,%rax - 41b3f7: 49 01 c4 add %rax,%r12 - 41b3fa: 48 8b 05 bf 1e 2b 00 mov 0x2b1ebf(%rip),%rax # 6cd2c0 <__libc_argv> - 41b401: ba 38 20 4a 00 mov $0x4a2038,%edx - 41b406: be a8 23 4a 00 mov $0x4a23a8,%esi - 41b40b: 4d 89 e0 mov %r12,%r8 - 41b40e: b9 48 27 4a 00 mov $0x4a2748,%ecx - 41b413: bf 02 00 00 00 mov $0x2,%edi - 41b418: 48 8b 00 mov (%rax),%rax - 41b41b: 48 85 c0 test %rax,%rax - 41b41e: 48 0f 45 d0 cmovne %rax,%rdx - 41b422: 31 c0 xor %eax,%eax - 41b424: e8 97 61 ff ff callq 4115c0 <__libc_message> - 41b429: 48 8b 35 50 fc 2a 00 mov 0x2afc50(%rip),%rsi # 6cb080 - 41b430: 48 8b 15 21 f4 2a 00 mov 0x2af421(%rip),%rdx # 6ca858 - 41b437: e9 1b f9 ff ff jmpq 41ad57 - 41b43c: 48 89 44 24 10 mov %rax,0x10(%rsp) - 41b441: 4c 89 44 24 08 mov %r8,0x8(%rsp) - 41b446: 48 89 0c 24 mov %rcx,(%rsp) - 41b44a: ff d2 callq *%rdx - 41b44c: 48 8b 35 2d fc 2a 00 mov 0x2afc2d(%rip),%rsi # 6cb080 - 41b453: 48 8b 0c 24 mov (%rsp),%rcx - 41b457: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 - 41b45c: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 41b461: e9 1b fe ff ff jmpq 41b281 - 41b466: 31 ff xor %edi,%edi - 41b468: ff 15 22 fc 2a 00 callq *0x2afc22(%rip) # 6cb090 <__morecore> - 41b46e: e9 d2 fe ff ff jmpq 41b345 - 41b473: b9 a8 2e 4a 00 mov $0x4a2ea8,%ecx - 41b478: ba 5d 09 00 00 mov $0x95d,%edx - 41b47d: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41b482: bf 08 27 4a 00 mov $0x4a2708,%edi - 41b487: e8 94 b9 ff ff callq 416e20 <__malloc_assert> - 41b48c: b9 a8 2e 4a 00 mov $0x4a2ea8,%ecx - 41b491: ba 39 0a 00 00 mov $0xa39,%edx - 41b496: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41b49b: bf 32 21 4a 00 mov $0x4a2132,%edi - 41b4a0: e8 7b b9 ff ff callq 416e20 <__malloc_assert> - 41b4a5: f6 05 58 f3 2a 00 02 testb $0x2,0x2af358(%rip) # 6ca804 - 41b4ac: 0f 84 83 fc ff ff je 41b135 - 41b4b2: e9 90 fc ff ff jmpq 41b147 - 41b4b7: 45 31 c9 xor %r9d,%r9d - 41b4ba: 41 83 c8 ff or $0xffffffff,%r8d - 41b4be: 31 ff xor %edi,%edi - 41b4c0: b9 22 00 00 00 mov $0x22,%ecx - 41b4c5: ba 03 00 00 00 mov $0x3,%edx - 41b4ca: 4c 89 e6 mov %r12,%rsi - 41b4cd: e8 1e 47 02 00 callq 43fbf0 <__mmap> - 41b4d2: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 41b4d6: 0f 85 72 fa ff ff jne 41af4e - 41b4dc: e9 38 f9 ff ff jmpq 41ae19 - 41b4e1: b9 a8 2e 4a 00 mov $0x4a2ea8,%ecx - 41b4e6: ba 24 09 00 00 mov $0x924,%edx - 41b4eb: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41b4f0: bf 20 26 4a 00 mov $0x4a2620,%edi - 41b4f5: e8 26 b9 ff ff callq 416e20 <__malloc_assert> - 41b4fa: 45 31 c9 xor %r9d,%r9d - 41b4fd: 41 83 c8 ff or $0xffffffff,%r8d - 41b501: 31 ff xor %edi,%edi - 41b503: b9 22 00 00 00 mov $0x22,%ecx - 41b508: ba 03 00 00 00 mov $0x3,%edx - 41b50d: 48 89 c6 mov %rax,%rsi - 41b510: e8 db 46 02 00 callq 43fbf0 <__mmap> - 41b515: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 41b519: 0f 85 2f fa ff ff jne 41af4e - 41b51f: e9 e0 fb ff ff jmpq 41b104 - 41b524: b9 a8 2e 4a 00 mov $0x4a2ea8,%ecx - 41b529: ba 59 0a 00 00 mov $0xa59,%edx - 41b52e: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41b533: bf 70 27 4a 00 mov $0x4a2770,%edi - 41b538: e8 e3 b8 ff ff callq 416e20 <__malloc_assert> - 41b53d: 0f 1f 00 nopl (%rax) - -000000000041b540 <_int_malloc>: - 41b540: 48 83 fe bf cmp $0xffffffffffffffbf,%rsi - 41b544: 0f 87 63 08 00 00 ja 41bdad <_int_malloc+0x86d> - 41b54a: 48 89 f0 mov %rsi,%rax - 41b54d: 41 57 push %r15 - 41b54f: 41 56 push %r14 - 41b551: 48 83 c0 17 add $0x17,%rax - 41b555: 41 55 push %r13 - 41b557: 41 54 push %r12 - 41b559: 55 push %rbp - 41b55a: 53 push %rbx - 41b55b: 48 89 c5 mov %rax,%rbp - 41b55e: 48 83 e5 f0 and $0xfffffffffffffff0,%rbp - 41b562: 48 89 fb mov %rdi,%rbx - 41b565: 48 81 ec 98 00 00 00 sub $0x98,%rsp - 41b56c: 48 83 f8 20 cmp $0x20,%rax - 41b570: b8 20 00 00 00 mov $0x20,%eax - 41b575: 48 0f 42 e8 cmovb %rax,%rbp - 41b579: 48 85 ff test %rdi,%rdi - 41b57c: 48 89 74 24 08 mov %rsi,0x8(%rsp) - 41b581: 0f 84 3a 08 00 00 je 41bdc1 <_int_malloc+0x881> - 41b587: 48 3b 2d aa 10 2b 00 cmp 0x2b10aa(%rip),%rbp # 6cc638 - 41b58e: 77 70 ja 41b600 <_int_malloc+0xc0> - 41b590: 89 ef mov %ebp,%edi - 41b592: c1 ef 04 shr $0x4,%edi - 41b595: 8d 47 fe lea -0x2(%rdi),%eax - 41b598: 48 8b 4c c3 08 mov 0x8(%rbx,%rax,8),%rcx - 41b59d: 48 8d 34 c3 lea (%rbx,%rax,8),%rsi - 41b5a1: 48 89 c7 mov %rax,%rdi - 41b5a4: 48 8d 56 08 lea 0x8(%rsi),%rdx - 41b5a8: 48 85 c9 test %rcx,%rcx - 41b5ab: 74 53 je 41b600 <_int_malloc+0xc0> - 41b5ad: 4c 8b 41 10 mov 0x10(%rcx),%r8 - 41b5b1: 48 89 c8 mov %rcx,%rax - 41b5b4: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 - 41b5bb: 00 00 - 41b5bd: 74 01 je 41b5c0 <_int_malloc+0x80> - 41b5bf: f0 4c 0f b1 46 08 lock cmpxchg %r8,0x8(%rsi) - 41b5c5: 48 39 c8 cmp %rcx,%rax - 41b5c8: 49 89 c7 mov %rax,%r15 - 41b5cb: 75 2e jne 41b5fb <_int_malloc+0xbb> - 41b5cd: e9 64 02 00 00 jmpq 41b836 <_int_malloc+0x2f6> - 41b5d2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41b5d8: 49 8b 4f 10 mov 0x10(%r15),%rcx - 41b5dc: 4c 89 f8 mov %r15,%rax - 41b5df: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 - 41b5e6: 00 00 - 41b5e8: 74 01 je 41b5eb <_int_malloc+0xab> - 41b5ea: f0 48 0f b1 0a lock cmpxchg %rcx,(%rdx) - 41b5ef: 4c 39 f8 cmp %r15,%rax - 41b5f2: 0f 84 3e 02 00 00 je 41b836 <_int_malloc+0x2f6> - 41b5f8: 49 89 c7 mov %rax,%r15 - 41b5fb: 4d 85 ff test %r15,%r15 - 41b5fe: 75 d8 jne 41b5d8 <_int_malloc+0x98> - 41b600: 48 81 fd ff 03 00 00 cmp $0x3ff,%rbp - 41b607: 77 5a ja 41b663 <_int_malloc+0x123> - 41b609: 89 e8 mov %ebp,%eax - 41b60b: c1 e8 04 shr $0x4,%eax - 41b60e: 89 04 24 mov %eax,(%rsp) - 41b611: 8d 44 00 fe lea -0x2(%rax,%rax,1),%eax - 41b615: 48 8d 44 c3 60 lea 0x60(%rbx,%rax,8),%rax - 41b61a: 48 8d 48 08 lea 0x8(%rax),%rcx - 41b61e: 4c 8b 79 08 mov 0x8(%rcx),%r15 - 41b622: 48 83 e8 08 sub $0x8,%rax - 41b626: 4c 39 f8 cmp %r15,%rax - 41b629: 74 70 je 41b69b <_int_malloc+0x15b> - 41b62b: 4d 85 ff test %r15,%r15 - 41b62e: 74 63 je 41b693 <_int_malloc+0x153> - 41b630: 49 8b 57 18 mov 0x18(%r15),%rdx - 41b634: 4c 3b 7a 10 cmp 0x10(%rdx),%r15 - 41b638: 0f 85 13 09 00 00 jne 41bf51 <_int_malloc+0xa11> - 41b63e: 49 83 4c 2f 08 01 orq $0x1,0x8(%r15,%rbp,1) - 41b644: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx - 41b64b: 48 89 51 08 mov %rdx,0x8(%rcx) - 41b64f: 48 89 42 10 mov %rax,0x10(%rdx) - 41b653: 0f 84 ef 01 00 00 je 41b848 <_int_malloc+0x308> - 41b659: 49 83 4f 08 04 orq $0x4,0x8(%r15) - 41b65e: e9 e5 01 00 00 jmpq 41b848 <_int_malloc+0x308> - 41b663: 49 89 ec mov %rbp,%r12 - 41b666: 49 c1 ec 06 shr $0x6,%r12 - 41b66a: 49 83 fc 30 cmp $0x30,%r12 - 41b66e: 0f 86 0c 07 00 00 jbe 41bd80 <_int_malloc+0x840> - 41b674: 49 89 ec mov %rbp,%r12 - 41b677: 49 c1 ec 09 shr $0x9,%r12 - 41b67b: 49 83 fc 14 cmp $0x14,%r12 - 41b67f: 0f 87 7b 07 00 00 ja 41be00 <_int_malloc+0x8c0> - 41b685: 41 8d 44 24 5b lea 0x5b(%r12),%eax - 41b68a: 89 04 24 mov %eax,(%rsp) - 41b68d: f6 43 04 01 testb $0x1,0x4(%rbx) - 41b691: 75 08 jne 41b69b <_int_malloc+0x15b> - 41b693: 48 89 df mov %rbx,%rdi - 41b696: e8 95 c7 ff ff callq 417e30 - 41b69b: 48 89 e9 mov %rbp,%rcx - 41b69e: 48 89 e8 mov %rbp,%rax - 41b6a1: 48 89 ef mov %rbp,%rdi - 41b6a4: 48 c1 e9 0c shr $0xc,%rcx - 41b6a8: 48 c1 e8 06 shr $0x6,%rax - 41b6ac: 48 c1 ef 09 shr $0x9,%rdi - 41b6b0: 48 89 4c 24 48 mov %rcx,0x48(%rsp) - 41b6b5: 83 c1 6e add $0x6e,%ecx - 41b6b8: 48 89 44 24 30 mov %rax,0x30(%rsp) - 41b6bd: 89 4c 24 54 mov %ecx,0x54(%rsp) - 41b6c1: 48 89 e9 mov %rbp,%rcx - 41b6c4: 83 c0 30 add $0x30,%eax - 41b6c7: 48 c1 e9 0f shr $0xf,%rcx - 41b6cb: 48 89 7c 24 40 mov %rdi,0x40(%rsp) - 41b6d0: 89 44 24 3c mov %eax,0x3c(%rsp) - 41b6d4: 83 c7 5b add $0x5b,%edi - 41b6d7: 48 89 4c 24 58 mov %rcx,0x58(%rsp) - 41b6dc: 89 e8 mov %ebp,%eax - 41b6de: 83 c1 77 add $0x77,%ecx - 41b6e1: c1 e8 04 shr $0x4,%eax - 41b6e4: 89 7c 24 50 mov %edi,0x50(%rsp) - 41b6e8: 89 4c 24 68 mov %ecx,0x68(%rsp) - 41b6ec: 48 8d 7c 24 70 lea 0x70(%rsp),%rdi - 41b6f1: 48 89 e9 mov %rbp,%rcx - 41b6f4: 48 c1 e9 12 shr $0x12,%rcx - 41b6f8: 89 44 24 38 mov %eax,0x38(%rsp) - 41b6fc: b8 01 00 00 00 mov $0x1,%eax - 41b701: 48 89 4c 24 60 mov %rcx,0x60(%rsp) - 41b706: 48 29 f8 sub %rdi,%rax - 41b709: 83 c1 7c add $0x7c,%ecx - 41b70c: 4c 8d 63 58 lea 0x58(%rbx),%r12 - 41b710: 89 4c 24 6c mov %ecx,0x6c(%rsp) - 41b714: 48 89 44 24 28 mov %rax,0x28(%rsp) - 41b719: 41 bf 10 27 00 00 mov $0x2710,%r15d - 41b71f: eb 4e jmp 41b76f <_int_malloc+0x22f> - 41b721: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41b728: 89 f1 mov %esi,%ecx - 41b72a: c1 e9 04 shr $0x4,%ecx - 41b72d: 8d 44 09 fe lea -0x2(%rcx,%rcx,1),%eax - 41b731: 48 98 cltq - 41b733: 48 8d 44 c3 60 lea 0x60(%rbx,%rax,8),%rax - 41b738: 48 8b 78 08 mov 0x8(%rax),%rdi - 41b73c: 4c 8d 40 f8 lea -0x8(%rax),%r8 - 41b740: 89 c8 mov %ecx,%eax - 41b742: ba 01 00 00 00 mov $0x1,%edx - 41b747: c1 f8 05 sar $0x5,%eax - 41b74a: d3 e2 shl %cl,%edx - 41b74c: 48 98 cltq - 41b74e: 09 94 83 58 08 00 00 or %edx,0x858(%rbx,%rax,4) - 41b755: 41 83 ef 01 sub $0x1,%r15d - 41b759: 4d 89 45 18 mov %r8,0x18(%r13) - 41b75d: 49 89 7d 10 mov %rdi,0x10(%r13) - 41b761: 4c 89 6f 18 mov %r13,0x18(%rdi) - 41b765: 4d 89 68 10 mov %r13,0x10(%r8) - 41b769: 0f 84 94 03 00 00 je 41bb03 <_int_malloc+0x5c3> - 41b76f: 4c 8b 6b 70 mov 0x70(%rbx),%r13 - 41b773: 4d 39 e5 cmp %r12,%r13 - 41b776: 0f 84 87 03 00 00 je 41bb03 <_int_malloc+0x5c3> - 41b77c: 49 8b 75 08 mov 0x8(%r13),%rsi - 41b780: 4d 8b 75 18 mov 0x18(%r13),%r14 - 41b784: 48 83 fe 10 cmp $0x10,%rsi - 41b788: 0f 86 52 01 00 00 jbe 41b8e0 <_int_malloc+0x3a0> - 41b78e: 48 3b b3 80 08 00 00 cmp 0x880(%rbx),%rsi - 41b795: 0f 87 45 01 00 00 ja 41b8e0 <_int_malloc+0x3a0> - 41b79b: 48 83 e6 f8 and $0xfffffffffffffff8,%rsi - 41b79f: 48 81 fd ff 03 00 00 cmp $0x3ff,%rbp - 41b7a6: 77 09 ja 41b7b1 <_int_malloc+0x271> - 41b7a8: 4d 39 e6 cmp %r12,%r14 - 41b7ab: 0f 84 8f 01 00 00 je 41b940 <_int_malloc+0x400> - 41b7b1: 48 39 f5 cmp %rsi,%rbp - 41b7b4: 4c 89 73 70 mov %r14,0x70(%rbx) - 41b7b8: 4d 89 66 10 mov %r12,0x10(%r14) - 41b7bc: 0f 84 a6 04 00 00 je 41bc68 <_int_malloc+0x728> - 41b7c2: 48 81 fe ff 03 00 00 cmp $0x3ff,%rsi - 41b7c9: 0f 86 59 ff ff ff jbe 41b728 <_int_malloc+0x1e8> - 41b7cf: 48 89 f0 mov %rsi,%rax - 41b7d2: 48 c1 e8 06 shr $0x6,%rax - 41b7d6: 48 83 f8 30 cmp $0x30,%rax - 41b7da: 0f 87 90 00 00 00 ja 41b870 <_int_malloc+0x330> - 41b7e0: 8d 48 30 lea 0x30(%rax),%ecx - 41b7e3: 8d 44 00 5e lea 0x5e(%rax,%rax,1),%eax - 41b7e7: 48 98 cltq - 41b7e9: 48 8d 44 c3 60 lea 0x60(%rbx,%rax,8),%rax - 41b7ee: 48 8d 78 f8 lea -0x8(%rax),%rdi - 41b7f2: 48 8d 50 08 lea 0x8(%rax),%rdx - 41b7f6: 48 8b 40 08 mov 0x8(%rax),%rax - 41b7fa: 48 39 c7 cmp %rax,%rdi - 41b7fd: 0f 84 e5 01 00 00 je 41b9e8 <_int_malloc+0x4a8> - 41b803: 4c 8b 42 08 mov 0x8(%rdx),%r8 - 41b807: 48 83 ce 01 or $0x1,%rsi - 41b80b: 49 8b 50 08 mov 0x8(%r8),%rdx - 41b80f: f6 c2 04 test $0x4,%dl - 41b812: 0f 85 f1 09 00 00 jne 41c209 <_int_malloc+0xcc9> - 41b818: 48 39 d6 cmp %rdx,%rsi - 41b81b: 73 73 jae 41b890 <_int_malloc+0x350> - 41b81d: 48 8b 50 28 mov 0x28(%rax),%rdx - 41b821: 49 89 45 20 mov %rax,0x20(%r13) - 41b825: 49 89 55 28 mov %rdx,0x28(%r13) - 41b829: 4c 89 6a 20 mov %r13,0x20(%rdx) - 41b82d: 4c 89 68 28 mov %r13,0x28(%rax) - 41b831: e9 0a ff ff ff jmpq 41b740 <_int_malloc+0x200> - 41b836: 41 8b 47 08 mov 0x8(%r15),%eax - 41b83a: c1 e8 04 shr $0x4,%eax - 41b83d: 83 e8 02 sub $0x2,%eax - 41b840: 39 c7 cmp %eax,%edi - 41b842: 0f 85 26 06 00 00 jne 41be6e <_int_malloc+0x92e> - 41b848: 8b 05 e6 0d 2b 00 mov 0x2b0de6(%rip),%eax # 6cc634 - 41b84e: 49 8d 4f 10 lea 0x10(%r15),%rcx - 41b852: 85 c0 test %eax,%eax - 41b854: 0f 85 71 01 00 00 jne 41b9cb <_int_malloc+0x48b> - 41b85a: 48 81 c4 98 00 00 00 add $0x98,%rsp - 41b861: 48 89 c8 mov %rcx,%rax - 41b864: 5b pop %rbx - 41b865: 5d pop %rbp - 41b866: 41 5c pop %r12 - 41b868: 41 5d pop %r13 - 41b86a: 41 5e pop %r14 - 41b86c: 41 5f pop %r15 - 41b86e: c3 retq - 41b86f: 90 nop - 41b870: 48 89 f0 mov %rsi,%rax - 41b873: 48 c1 e8 09 shr $0x9,%rax - 41b877: 48 83 f8 14 cmp $0x14,%rax - 41b87b: 0f 87 97 00 00 00 ja 41b918 <_int_malloc+0x3d8> - 41b881: 8d 48 5b lea 0x5b(%rax),%ecx - 41b884: 8d 84 00 b4 00 00 00 lea 0xb4(%rax,%rax,1),%eax - 41b88b: e9 57 ff ff ff jmpq 41b7e7 <_int_malloc+0x2a7> - 41b890: 48 8b 50 08 mov 0x8(%rax),%rdx - 41b894: f6 c2 04 test $0x4,%dl - 41b897: 74 18 je 41b8b1 <_int_malloc+0x371> - 41b899: e9 84 09 00 00 jmpq 41c222 <_int_malloc+0xce2> - 41b89e: 66 90 xchg %ax,%ax - 41b8a0: 48 8b 40 20 mov 0x20(%rax),%rax - 41b8a4: 48 8b 50 08 mov 0x8(%rax),%rdx - 41b8a8: f6 c2 04 test $0x4,%dl - 41b8ab: 0f 85 87 06 00 00 jne 41bf38 <_int_malloc+0x9f8> - 41b8b1: 48 39 d6 cmp %rdx,%rsi - 41b8b4: 72 ea jb 41b8a0 <_int_malloc+0x360> - 41b8b6: 0f 84 64 01 00 00 je 41ba20 <_int_malloc+0x4e0> - 41b8bc: 48 8b 50 28 mov 0x28(%rax),%rdx - 41b8c0: 49 89 45 20 mov %rax,0x20(%r13) - 41b8c4: 48 89 c7 mov %rax,%rdi - 41b8c7: 49 89 55 28 mov %rdx,0x28(%r13) - 41b8cb: 4c 89 68 28 mov %r13,0x28(%rax) - 41b8cf: 49 8b 55 28 mov 0x28(%r13),%rdx - 41b8d3: 4c 89 6a 20 mov %r13,0x20(%rdx) - 41b8d7: 4c 8b 47 18 mov 0x18(%rdi),%r8 - 41b8db: e9 60 fe ff ff jmpq 41b740 <_int_malloc+0x200> - 41b8e0: 44 8b 0d 89 ee 2a 00 mov 0x2aee89(%rip),%r9d # 6ca770 - 41b8e7: 83 4b 04 04 orl $0x4,0x4(%rbx) - 41b8eb: 44 89 c8 mov %r9d,%eax - 41b8ee: 83 e0 05 and $0x5,%eax - 41b8f1: 83 f8 05 cmp $0x5,%eax - 41b8f4: 0f 84 93 04 00 00 je 41bd8d <_int_malloc+0x84d> - 41b8fa: 41 f6 c1 01 test $0x1,%r9b - 41b8fe: 0f 85 2c 01 00 00 jne 41ba30 <_int_malloc+0x4f0> - 41b904: 41 83 e1 02 and $0x2,%r9d - 41b908: 0f 84 8d fe ff ff je 41b79b <_int_malloc+0x25b> - 41b90e: e9 84 05 00 00 jmpq 41be97 <_int_malloc+0x957> - 41b913: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41b918: 48 89 f0 mov %rsi,%rax - 41b91b: 48 c1 e8 0c shr $0xc,%rax - 41b91f: 48 83 f8 0a cmp $0xa,%rax - 41b923: 0f 87 d7 00 00 00 ja 41ba00 <_int_malloc+0x4c0> - 41b929: 8d 48 6e lea 0x6e(%rax),%ecx - 41b92c: 8d 84 00 da 00 00 00 lea 0xda(%rax,%rax,1),%eax - 41b933: e9 af fe ff ff jmpq 41b7e7 <_int_malloc+0x2a7> - 41b938: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41b93f: 00 - 41b940: 4c 3b 6b 60 cmp 0x60(%rbx),%r13 - 41b944: 0f 85 67 fe ff ff jne 41b7b1 <_int_malloc+0x271> - 41b94a: 48 8d 45 20 lea 0x20(%rbp),%rax - 41b94e: 48 39 c6 cmp %rax,%rsi - 41b951: 0f 86 5a fe ff ff jbe 41b7b1 <_int_malloc+0x271> - 41b957: 48 89 f2 mov %rsi,%rdx - 41b95a: 49 8d 44 2d 00 lea 0x0(%r13,%rbp,1),%rax - 41b95f: 48 29 ea sub %rbp,%rdx - 41b962: 48 81 fa ff 03 00 00 cmp $0x3ff,%rdx - 41b969: 48 89 43 68 mov %rax,0x68(%rbx) - 41b96d: 48 89 43 70 mov %rax,0x70(%rbx) - 41b971: 48 89 43 60 mov %rax,0x60(%rbx) - 41b975: 4c 89 60 10 mov %r12,0x10(%rax) - 41b979: 4c 89 60 18 mov %r12,0x18(%rax) - 41b97d: 76 10 jbe 41b98f <_int_malloc+0x44f> - 41b97f: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) - 41b986: 00 - 41b987: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) - 41b98e: 00 - 41b98f: 31 c9 xor %ecx,%ecx - 41b991: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx - 41b998: 0f 95 c1 setne %cl - 41b99b: 48 83 cd 01 or $0x1,%rbp - 41b99f: 48 c1 e1 02 shl $0x2,%rcx - 41b9a3: 48 09 e9 or %rbp,%rcx - 41b9a6: 49 89 4d 08 mov %rcx,0x8(%r13) - 41b9aa: 48 89 d1 mov %rdx,%rcx - 41b9ad: 48 83 c9 01 or $0x1,%rcx - 41b9b1: 48 89 48 08 mov %rcx,0x8(%rax) - 41b9b5: 48 89 14 10 mov %rdx,(%rax,%rdx,1) - 41b9b9: 49 8d 4d 10 lea 0x10(%r13),%rcx - 41b9bd: 8b 05 71 0c 2b 00 mov 0x2b0c71(%rip),%eax # 6cc634 - 41b9c3: 85 c0 test %eax,%eax - 41b9c5: 0f 84 8f fe ff ff je 41b85a <_int_malloc+0x31a> - 41b9cb: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 41b9d0: 34 ff xor $0xff,%al - 41b9d2: 48 89 cf mov %rcx,%rdi - 41b9d5: 89 c6 mov %eax,%esi - 41b9d7: e8 74 49 fe ff callq 400350 <__rela_iplt_end+0x88> - 41b9dc: 48 89 c1 mov %rax,%rcx - 41b9df: e9 76 fe ff ff jmpq 41b85a <_int_malloc+0x31a> - 41b9e4: 0f 1f 40 00 nopl 0x0(%rax) - 41b9e8: 4d 89 6d 28 mov %r13,0x28(%r13) - 41b9ec: 4d 89 6d 20 mov %r13,0x20(%r13) - 41b9f0: 49 89 f8 mov %rdi,%r8 - 41b9f3: e9 48 fd ff ff jmpq 41b740 <_int_malloc+0x200> - 41b9f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41b9ff: 00 - 41ba00: 48 89 f0 mov %rsi,%rax - 41ba03: 48 c1 e8 0f shr $0xf,%rax - 41ba07: 48 83 f8 04 cmp $0x4,%rax - 41ba0b: 0f 87 d2 00 00 00 ja 41bae3 <_int_malloc+0x5a3> - 41ba11: 8d 48 77 lea 0x77(%rax),%ecx - 41ba14: 8d 84 00 ec 00 00 00 lea 0xec(%rax,%rax,1),%eax - 41ba1b: e9 c7 fd ff ff jmpq 41b7e7 <_int_malloc+0x2a7> - 41ba20: 48 8b 78 10 mov 0x10(%rax),%rdi - 41ba24: e9 ae fe ff ff jmpq 41b8d7 <_int_malloc+0x397> - 41ba29: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41ba30: 48 8d b4 24 80 00 00 lea 0x80(%rsp),%rsi - 41ba37: 00 - 41ba38: 49 8d 7d 10 lea 0x10(%r13),%rdi - 41ba3c: 31 c9 xor %ecx,%ecx - 41ba3e: ba 10 00 00 00 mov $0x10,%edx - 41ba43: 44 89 4c 24 10 mov %r9d,0x10(%rsp) - 41ba48: c6 84 24 80 00 00 00 movb $0x0,0x80(%rsp) - 41ba4f: 00 - 41ba50: e8 5b 64 03 00 callq 451eb0 <_itoa_word> - 41ba55: 49 89 c0 mov %rax,%r8 - 41ba58: 48 8d 44 24 70 lea 0x70(%rsp),%rax - 41ba5d: 44 8b 4c 24 10 mov 0x10(%rsp),%r9d - 41ba62: 49 39 c0 cmp %rax,%r8 - 41ba65: 76 46 jbe 41baad <_int_malloc+0x56d> - 41ba67: 48 8b 44 24 28 mov 0x28(%rsp),%rax - 41ba6c: 49 8d 48 ff lea -0x1(%r8),%rcx - 41ba70: 4c 89 c7 mov %r8,%rdi - 41ba73: be 30 00 00 00 mov $0x30,%esi - 41ba78: 44 89 4c 24 24 mov %r9d,0x24(%rsp) - 41ba7d: 4c 89 44 24 10 mov %r8,0x10(%rsp) - 41ba82: 48 89 4c 24 18 mov %rcx,0x18(%rsp) - 41ba87: 48 8d 14 08 lea (%rax,%rcx,1),%rdx - 41ba8b: 48 29 d7 sub %rdx,%rdi - 41ba8e: e8 bd 48 fe ff callq 400350 <__rela_iplt_end+0x88> - 41ba93: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx - 41ba98: 48 8d 44 24 6f lea 0x6f(%rsp),%rax - 41ba9d: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 - 41baa2: 44 8b 4c 24 24 mov 0x24(%rsp),%r9d - 41baa7: 48 29 c8 sub %rcx,%rax - 41baaa: 49 01 c0 add %rax,%r8 - 41baad: 48 8b 05 0c 18 2b 00 mov 0x2b180c(%rip),%rax # 6cd2c0 <__libc_argv> - 41bab4: 44 89 cf mov %r9d,%edi - 41bab7: ba 38 20 4a 00 mov $0x4a2038,%edx - 41babc: be a8 23 4a 00 mov $0x4a23a8,%esi - 41bac1: b9 42 21 4a 00 mov $0x4a2142,%ecx - 41bac6: 48 8b 00 mov (%rax),%rax - 41bac9: 48 85 c0 test %rax,%rax - 41bacc: 48 0f 45 d0 cmovne %rax,%rdx - 41bad0: 83 e7 02 and $0x2,%edi - 41bad3: 31 c0 xor %eax,%eax - 41bad5: e8 e6 5a ff ff callq 4115c0 <__libc_message> - 41bada: 49 8b 75 08 mov 0x8(%r13),%rsi - 41bade: e9 b8 fc ff ff jmpq 41b79b <_int_malloc+0x25b> - 41bae3: 48 89 f0 mov %rsi,%rax - 41bae6: 48 c1 e8 12 shr $0x12,%rax - 41baea: 48 83 f8 02 cmp $0x2,%rax - 41baee: 0f 87 9f 01 00 00 ja 41bc93 <_int_malloc+0x753> - 41baf4: 8d 48 7c lea 0x7c(%rax),%ecx - 41baf7: 8d 84 00 f6 00 00 00 lea 0xf6(%rax,%rax,1),%eax - 41bafe: e9 e4 fc ff ff jmpq 41b7e7 <_int_malloc+0x2a7> - 41bb03: 48 81 fd ff 03 00 00 cmp $0x3ff,%rbp - 41bb0a: 0f 87 92 01 00 00 ja 41bca2 <_int_malloc+0x762> - 41bb10: 8b 04 24 mov (%rsp),%eax - 41bb13: 8d 48 01 lea 0x1(%rax),%ecx - 41bb16: 01 c0 add %eax,%eax - 41bb18: 48 8d 54 c3 58 lea 0x58(%rbx,%rax,8),%rdx - 41bb1d: 89 cf mov %ecx,%edi - 41bb1f: c1 ef 05 shr $0x5,%edi - 41bb22: 89 f8 mov %edi,%eax - 41bb24: 8b b4 83 58 08 00 00 mov 0x858(%rbx,%rax,4),%esi - 41bb2b: b8 01 00 00 00 mov $0x1,%eax - 41bb30: d3 e0 shl %cl,%eax - 41bb32: 39 f0 cmp %esi,%eax - 41bb34: 77 40 ja 41bb76 <_int_malloc+0x636> - 41bb36: 85 c0 test %eax,%eax - 41bb38: 75 12 jne 41bb4c <_int_malloc+0x60c> - 41bb3a: eb 3a jmp 41bb76 <_int_malloc+0x636> - 41bb3c: 0f 1f 40 00 nopl 0x0(%rax) - 41bb40: 48 83 c2 10 add $0x10,%rdx - 41bb44: 01 c0 add %eax,%eax - 41bb46: 0f 84 dc 05 00 00 je 41c128 <_int_malloc+0xbe8> - 41bb4c: 85 f0 test %esi,%eax - 41bb4e: 74 f0 je 41bb40 <_int_malloc+0x600> - 41bb50: 4c 8b 7a 18 mov 0x18(%rdx),%r15 - 41bb54: 4c 39 fa cmp %r15,%rdx - 41bb57: 0f 85 4f 03 00 00 jne 41beac <_int_malloc+0x96c> - 41bb5d: 89 c1 mov %eax,%ecx - 41bb5f: 01 c0 add %eax,%eax - 41bb61: 48 83 c2 10 add $0x10,%rdx - 41bb65: f7 d1 not %ecx - 41bb67: 21 ce and %ecx,%esi - 41bb69: 89 f9 mov %edi,%ecx - 41bb6b: 39 f0 cmp %esi,%eax - 41bb6d: 89 b4 8b 58 08 00 00 mov %esi,0x858(%rbx,%rcx,4) - 41bb74: 76 c0 jbe 41bb36 <_int_malloc+0x5f6> - 41bb76: 8d 47 01 lea 0x1(%rdi),%eax - 41bb79: 83 f8 03 cmp $0x3,%eax - 41bb7c: 77 3d ja 41bbbb <_int_malloc+0x67b> - 41bb7e: 89 c2 mov %eax,%edx - 41bb80: 8b b4 93 58 08 00 00 mov 0x858(%rbx,%rdx,4),%esi - 41bb87: 85 f6 test %esi,%esi - 41bb89: 0f 85 9c 02 00 00 jne 41be2b <_int_malloc+0x8eb> - 41bb8f: 8d 47 02 lea 0x2(%rdi),%eax - 41bb92: 83 f8 04 cmp $0x4,%eax - 41bb95: 74 24 je 41bbbb <_int_malloc+0x67b> - 41bb97: 89 c2 mov %eax,%edx - 41bb99: 8b b4 93 58 08 00 00 mov 0x858(%rbx,%rdx,4),%esi - 41bba0: 85 f6 test %esi,%esi - 41bba2: 0f 85 83 02 00 00 jne 41be2b <_int_malloc+0x8eb> - 41bba8: 83 ff 01 cmp $0x1,%edi - 41bbab: 74 0e je 41bbbb <_int_malloc+0x67b> - 41bbad: 8b b3 64 08 00 00 mov 0x864(%rbx),%esi - 41bbb3: 85 f6 test %esi,%esi - 41bbb5: 0f 85 e5 02 00 00 jne 41bea0 <_int_malloc+0x960> - 41bbbb: 48 8b 53 58 mov 0x58(%rbx),%rdx - 41bbbf: 48 8d 4d 20 lea 0x20(%rbp),%rcx - 41bbc3: 48 8b 42 08 mov 0x8(%rdx),%rax - 41bbc7: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 41bbcb: 48 39 c8 cmp %rcx,%rax - 41bbce: 0f 83 0c 05 00 00 jae 41c0e0 <_int_malloc+0xba0> - 41bbd4: f6 43 04 01 testb $0x1,0x4(%rbx) - 41bbd8: 0f 85 e2 04 00 00 jne 41c0c0 <_int_malloc+0xb80> - 41bbde: 48 89 df mov %rbx,%rdi - 41bbe1: e8 4a c2 ff ff callq 417e30 - 41bbe6: 8b 44 24 38 mov 0x38(%rsp),%eax - 41bbea: 48 81 fd ff 03 00 00 cmp $0x3ff,%rbp - 41bbf1: 89 04 24 mov %eax,(%rsp) - 41bbf4: 0f 86 1f fb ff ff jbe 41b719 <_int_malloc+0x1d9> - 41bbfa: 48 83 7c 24 30 30 cmpq $0x30,0x30(%rsp) - 41bc00: 8b 44 24 3c mov 0x3c(%rsp),%eax - 41bc04: 89 04 24 mov %eax,(%rsp) - 41bc07: 0f 86 0c fb ff ff jbe 41b719 <_int_malloc+0x1d9> - 41bc0d: 48 83 7c 24 40 14 cmpq $0x14,0x40(%rsp) - 41bc13: 8b 44 24 50 mov 0x50(%rsp),%eax - 41bc17: 89 04 24 mov %eax,(%rsp) - 41bc1a: 0f 86 f9 fa ff ff jbe 41b719 <_int_malloc+0x1d9> - 41bc20: 48 83 7c 24 48 0a cmpq $0xa,0x48(%rsp) - 41bc26: 8b 44 24 54 mov 0x54(%rsp),%eax - 41bc2a: 89 04 24 mov %eax,(%rsp) - 41bc2d: 0f 86 e6 fa ff ff jbe 41b719 <_int_malloc+0x1d9> - 41bc33: 48 83 7c 24 58 04 cmpq $0x4,0x58(%rsp) - 41bc39: 8b 44 24 68 mov 0x68(%rsp),%eax - 41bc3d: 89 04 24 mov %eax,(%rsp) - 41bc40: 0f 86 d3 fa ff ff jbe 41b719 <_int_malloc+0x1d9> - 41bc46: 48 83 7c 24 60 02 cmpq $0x2,0x60(%rsp) - 41bc4c: 41 be 7e 00 00 00 mov $0x7e,%r14d - 41bc52: 44 0f 46 74 24 6c cmovbe 0x6c(%rsp),%r14d - 41bc58: 44 89 34 24 mov %r14d,(%rsp) - 41bc5c: e9 b8 fa ff ff jmpq 41b719 <_int_malloc+0x1d9> - 41bc61: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41bc68: 49 83 4c 2d 08 01 orq $0x1,0x8(%r13,%rbp,1) - 41bc6e: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx - 41bc75: 74 05 je 41bc7c <_int_malloc+0x73c> - 41bc77: 49 83 4d 08 04 orq $0x4,0x8(%r13) - 41bc7c: 8b 05 b2 09 2b 00 mov 0x2b09b2(%rip),%eax # 6cc634 - 41bc82: 49 8d 4d 10 lea 0x10(%r13),%rcx - 41bc86: 85 c0 test %eax,%eax - 41bc88: 0f 84 cc fb ff ff je 41b85a <_int_malloc+0x31a> - 41bc8e: e9 38 fd ff ff jmpq 41b9cb <_int_malloc+0x48b> - 41bc93: b8 fa 00 00 00 mov $0xfa,%eax - 41bc98: b9 7e 00 00 00 mov $0x7e,%ecx - 41bc9d: e9 45 fb ff ff jmpq 41b7e7 <_int_malloc+0x2a7> - 41bca2: 8b 04 24 mov (%rsp),%eax - 41bca5: 8d 44 00 fe lea -0x2(%rax,%rax,1),%eax - 41bca9: 48 8d 44 c3 60 lea 0x60(%rbx,%rax,8),%rax - 41bcae: 48 8b 50 08 mov 0x8(%rax),%rdx - 41bcb2: 48 8d 48 08 lea 0x8(%rax),%rcx - 41bcb6: 48 83 e8 08 sub $0x8,%rax - 41bcba: 48 39 c2 cmp %rax,%rdx - 41bcbd: 0f 84 4d fe ff ff je 41bb10 <_int_malloc+0x5d0> - 41bcc3: 48 3b 6a 08 cmp 0x8(%rdx),%rbp - 41bcc7: 0f 87 43 fe ff ff ja 41bb10 <_int_malloc+0x5d0> - 41bccd: 4c 8b 7a 28 mov 0x28(%rdx),%r15 - 41bcd1: eb 04 jmp 41bcd7 <_int_malloc+0x797> - 41bcd3: 4d 8b 7f 28 mov 0x28(%r15),%r15 - 41bcd7: 49 8b 57 08 mov 0x8(%r15),%rdx - 41bcdb: 49 89 d6 mov %rdx,%r14 - 41bcde: 49 83 e6 f8 and $0xfffffffffffffff8,%r14 - 41bce2: 4c 39 f5 cmp %r14,%rbp - 41bce5: 77 ec ja 41bcd3 <_int_malloc+0x793> - 41bce7: 4c 3b 79 08 cmp 0x8(%rcx),%r15 - 41bceb: 0f 84 da 04 00 00 je 41c1cb <_int_malloc+0xc8b> - 41bcf1: 49 8b 4f 10 mov 0x10(%r15),%rcx - 41bcf5: 4c 89 f0 mov %r14,%rax - 41bcf8: 48 3b 51 08 cmp 0x8(%rcx),%rdx - 41bcfc: 75 0a jne 41bd08 <_int_malloc+0x7c8> - 41bcfe: 48 89 d0 mov %rdx,%rax - 41bd01: 49 89 cf mov %rcx,%r15 - 41bd04: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 41bd08: 4c 89 f7 mov %r14,%rdi - 41bd0b: 48 29 ef sub %rbp,%rdi - 41bd0e: 49 39 04 07 cmp %rax,(%r15,%rax,1) - 41bd12: 48 89 3c 24 mov %rdi,(%rsp) - 41bd16: 0f 85 26 06 00 00 jne 41c342 <_int_malloc+0xe02> - 41bd1c: 4d 8b 6f 10 mov 0x10(%r15),%r13 - 41bd20: 49 8b 47 18 mov 0x18(%r15),%rax - 41bd24: 4d 3b 7d 18 cmp 0x18(%r13),%r15 - 41bd28: 0f 85 c0 04 00 00 jne 41c1ee <_int_malloc+0xcae> - 41bd2e: 4c 3b 78 10 cmp 0x10(%rax),%r15 - 41bd32: 0f 85 b6 04 00 00 jne 41c1ee <_int_malloc+0xcae> - 41bd38: 49 81 7f 08 ff 03 00 cmpq $0x3ff,0x8(%r15) - 41bd3f: 00 - 41bd40: 49 89 45 18 mov %rax,0x18(%r13) - 41bd44: 4c 89 68 10 mov %r13,0x10(%rax) - 41bd48: 76 0d jbe 41bd57 <_int_malloc+0x817> - 41bd4a: 49 8b 47 20 mov 0x20(%r15),%rax - 41bd4e: 48 85 c0 test %rax,%rax - 41bd51: 0f 85 06 06 00 00 jne 41c35d <_int_malloc+0xe1d> - 41bd57: 48 83 3c 24 1f cmpq $0x1f,(%rsp) - 41bd5c: 0f 87 38 04 00 00 ja 41c19a <_int_malloc+0xc5a> - 41bd62: 4b 83 4c 37 08 01 orq $0x1,0x8(%r15,%r14,1) - 41bd68: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx - 41bd6f: 0f 85 e4 f8 ff ff jne 41b659 <_int_malloc+0x119> - 41bd75: e9 ce fa ff ff jmpq 41b848 <_int_malloc+0x308> - 41bd7a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41bd80: 41 8d 44 24 30 lea 0x30(%r12),%eax - 41bd85: 89 04 24 mov %eax,(%rsp) - 41bd88: e9 00 f9 ff ff jmpq 41b68d <_int_malloc+0x14d> - 41bd8d: 44 89 cf mov %r9d,%edi - 41bd90: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41bd95: ba 42 21 4a 00 mov $0x4a2142,%edx - 41bd9a: 83 e7 02 and $0x2,%edi - 41bd9d: 31 c0 xor %eax,%eax - 41bd9f: e8 1c 58 ff ff callq 4115c0 <__libc_message> - 41bda4: 49 8b 75 08 mov 0x8(%r13),%rsi - 41bda8: e9 ee f9 ff ff jmpq 41b79b <_int_malloc+0x25b> - 41bdad: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41bdb4: 31 c9 xor %ecx,%ecx - 41bdb6: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) - 41bdbd: 48 89 c8 mov %rcx,%rax - 41bdc0: c3 retq - 41bdc1: 31 f6 xor %esi,%esi - 41bdc3: 48 89 ef mov %rbp,%rdi - 41bdc6: e8 65 ee ff ff callq 41ac30 - 41bdcb: 48 85 c0 test %rax,%rax - 41bdce: 0f 84 86 00 00 00 je 41be5a <_int_malloc+0x91a> - 41bdd4: 8b 15 5a 08 2b 00 mov 0x2b085a(%rip),%edx # 6cc634 - 41bdda: 48 89 c1 mov %rax,%rcx - 41bddd: 85 d2 test %edx,%edx - 41bddf: 0f 84 75 fa ff ff je 41b85a <_int_malloc+0x31a> - 41bde5: 89 d6 mov %edx,%esi - 41bde7: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 41bdec: 48 89 c7 mov %rax,%rdi - 41bdef: 40 80 f6 ff xor $0xff,%sil - 41bdf3: e8 58 45 fe ff callq 400350 <__rela_iplt_end+0x88> - 41bdf8: 48 89 c1 mov %rax,%rcx - 41bdfb: e9 5a fa ff ff jmpq 41b85a <_int_malloc+0x31a> - 41be00: 49 89 ec mov %rbp,%r12 - 41be03: 49 c1 ec 0c shr $0xc,%r12 - 41be07: 49 83 fc 0a cmp $0xa,%r12 - 41be0b: 76 54 jbe 41be61 <_int_malloc+0x921> - 41be0d: 49 89 ec mov %rbp,%r12 - 41be10: 49 c1 ec 0f shr $0xf,%r12 - 41be14: 49 83 fc 04 cmp $0x4,%r12 - 41be18: 0f 87 43 02 00 00 ja 41c061 <_int_malloc+0xb21> - 41be1e: 41 8d 44 24 77 lea 0x77(%r12),%eax - 41be23: 89 04 24 mov %eax,(%rsp) - 41be26: e9 62 f8 ff ff jmpq 41b68d <_int_malloc+0x14d> - 41be2b: 89 c2 mov %eax,%edx - 41be2d: 89 c7 mov %eax,%edi - 41be2f: c1 e2 06 shl $0x6,%edx - 41be32: 83 ea 02 sub $0x2,%edx - 41be35: 89 d0 mov %edx,%eax - 41be37: 48 8d 54 c3 58 lea 0x58(%rbx,%rax,8),%rdx - 41be3c: b8 01 00 00 00 mov $0x1,%eax - 41be41: e9 06 fd ff ff jmpq 41bb4c <_int_malloc+0x60c> - 41be46: 89 ef mov %ebp,%edi - 41be48: 4c 89 e2 mov %r12,%rdx - 41be4b: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41be50: 83 e7 02 and $0x2,%edi - 41be53: 31 c0 xor %eax,%eax - 41be55: e8 66 57 ff ff callq 4115c0 <__libc_message> - 41be5a: 31 c9 xor %ecx,%ecx - 41be5c: e9 f9 f9 ff ff jmpq 41b85a <_int_malloc+0x31a> - 41be61: 41 8d 44 24 6e lea 0x6e(%r12),%eax - 41be66: 89 04 24 mov %eax,(%rsp) - 41be69: e9 1f f8 ff ff jmpq 41b68d <_int_malloc+0x14d> - 41be6e: 41 bc b0 27 4a 00 mov $0x4a27b0,%r12d - 41be74: 8b 2d f6 e8 2a 00 mov 0x2ae8f6(%rip),%ebp # 6ca770 - 41be7a: 83 4b 04 04 orl $0x4,0x4(%rbx) - 41be7e: 89 e8 mov %ebp,%eax - 41be80: 83 e0 05 and $0x5,%eax - 41be83: 83 f8 05 cmp $0x5,%eax - 41be86: 74 be je 41be46 <_int_malloc+0x906> - 41be88: 40 f6 c5 01 test $0x1,%bpl - 41be8c: 0f 85 ca 00 00 00 jne 41bf5c <_int_malloc+0xa1c> - 41be92: 83 e5 02 and $0x2,%ebp - 41be95: 74 c3 je 41be5a <_int_malloc+0x91a> - 41be97: e8 64 1d ff ff callq 40dc00 - 41be9c: 0f 1f 40 00 nopl 0x0(%rax) - 41bea0: ba be 00 00 00 mov $0xbe,%edx - 41bea5: bf 03 00 00 00 mov $0x3,%edi - 41beaa: eb 89 jmp 41be35 <_int_malloc+0x8f5> - 41beac: 49 8b 47 08 mov 0x8(%r15),%rax - 41beb0: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 41beb4: 48 39 c5 cmp %rax,%rbp - 41beb7: 0f 87 34 04 00 00 ja 41c2f1 <_int_malloc+0xdb1> - 41bebd: 4d 8d 2c 07 lea (%r15,%rax,1),%r13 - 41bec1: 48 89 c7 mov %rax,%rdi - 41bec4: 48 29 ef sub %rbp,%rdi - 41bec7: 49 3b 45 00 cmp 0x0(%r13),%rax - 41becb: 48 89 3c 24 mov %rdi,(%rsp) - 41becf: 0f 85 6c 02 00 00 jne 41c141 <_int_malloc+0xc01> - 41bed5: 49 8b 47 10 mov 0x10(%r15),%rax - 41bed9: 49 8b 57 18 mov 0x18(%r15),%rdx - 41bedd: 4c 3b 78 18 cmp 0x18(%rax),%r15 - 41bee1: 0f 85 9a 01 00 00 jne 41c081 <_int_malloc+0xb41> - 41bee7: 4c 8b 72 10 mov 0x10(%rdx),%r14 - 41beeb: 4d 39 f7 cmp %r14,%r15 - 41beee: 0f 85 8d 01 00 00 jne 41c081 <_int_malloc+0xb41> - 41bef4: 49 81 7e 08 ff 03 00 cmpq $0x3ff,0x8(%r14) - 41befb: 00 - 41befc: 48 89 50 18 mov %rdx,0x18(%rax) - 41bf00: 48 89 42 10 mov %rax,0x10(%rdx) - 41bf04: 76 0d jbe 41bf13 <_int_malloc+0x9d3> - 41bf06: 49 8b 56 20 mov 0x20(%r14),%rdx - 41bf0a: 48 85 d2 test %rdx,%rdx - 41bf0d: 0f 85 f7 03 00 00 jne 41c30a <_int_malloc+0xdca> - 41bf13: 48 83 3c 24 1f cmpq $0x1f,(%rsp) - 41bf18: 0f 87 c4 00 00 00 ja 41bfe2 <_int_malloc+0xaa2> - 41bf1e: 49 83 4d 08 01 orq $0x1,0x8(%r13) - 41bf23: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx - 41bf2a: 0f 85 29 f7 ff ff jne 41b659 <_int_malloc+0x119> - 41bf30: e9 13 f9 ff ff jmpq 41b848 <_int_malloc+0x308> - 41bf35: 0f 1f 00 nopl (%rax) - 41bf38: b9 b8 2e 4a 00 mov $0x4a2eb8,%ecx - 41bf3d: ba ef 0d 00 00 mov $0xdef,%edx - 41bf42: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41bf47: bf 80 28 4a 00 mov $0x4a2880,%edi - 41bf4c: e8 cf ae ff ff callq 416e20 <__malloc_assert> - 41bf51: 41 bc d8 27 4a 00 mov $0x4a27d8,%r12d - 41bf57: e9 18 ff ff ff jmpq 41be74 <_int_malloc+0x934> - 41bf5c: 4c 8d 6c 24 70 lea 0x70(%rsp),%r13 - 41bf61: 48 8d b4 24 80 00 00 lea 0x80(%rsp),%rsi - 41bf68: 00 - 41bf69: 49 8d 7f 10 lea 0x10(%r15),%rdi - 41bf6d: 31 c9 xor %ecx,%ecx - 41bf6f: ba 10 00 00 00 mov $0x10,%edx - 41bf74: c6 84 24 80 00 00 00 movb $0x0,0x80(%rsp) - 41bf7b: 00 - 41bf7c: e8 2f 5f 03 00 callq 451eb0 <_itoa_word> - 41bf81: 4c 39 e8 cmp %r13,%rax - 41bf84: 48 89 c3 mov %rax,%rbx - 41bf87: 76 25 jbe 41bfae <_int_malloc+0xa6e> - 41bf89: 48 89 c2 mov %rax,%rdx - 41bf8c: 48 89 c7 mov %rax,%rdi - 41bf8f: be 30 00 00 00 mov $0x30,%esi - 41bf94: 4c 29 ea sub %r13,%rdx - 41bf97: 4c 8d 70 ff lea -0x1(%rax),%r14 - 41bf9b: 48 29 d7 sub %rdx,%rdi - 41bf9e: e8 ad 43 fe ff callq 400350 <__rela_iplt_end+0x88> - 41bfa3: 48 8d 44 24 6f lea 0x6f(%rsp),%rax - 41bfa8: 4c 29 f0 sub %r14,%rax - 41bfab: 48 01 c3 add %rax,%rbx - 41bfae: 48 8b 05 0b 13 2b 00 mov 0x2b130b(%rip),%rax # 6cd2c0 <__libc_argv> - 41bfb5: ba 38 20 4a 00 mov $0x4a2038,%edx - 41bfba: 89 ef mov %ebp,%edi - 41bfbc: 4c 89 e1 mov %r12,%rcx - 41bfbf: 49 89 d8 mov %rbx,%r8 - 41bfc2: be a8 23 4a 00 mov $0x4a23a8,%esi - 41bfc7: 48 8b 00 mov (%rax),%rax - 41bfca: 48 85 c0 test %rax,%rax - 41bfcd: 48 0f 45 d0 cmovne %rax,%rdx - 41bfd1: 83 e7 02 and $0x2,%edi - 41bfd4: 31 c0 xor %eax,%eax - 41bfd6: e8 e5 55 ff ff callq 4115c0 <__libc_message> - 41bfdb: 31 c9 xor %ecx,%ecx - 41bfdd: e9 78 f8 ff ff jmpq 41b85a <_int_malloc+0x31a> - 41bfe2: 48 8b 53 68 mov 0x68(%rbx),%rdx - 41bfe6: 4c 39 62 18 cmp %r12,0x18(%rdx) - 41bfea: 0f 85 f3 01 00 00 jne 41c1e3 <_int_malloc+0xca3> - 41bff0: 49 8d 04 2f lea (%r15,%rbp,1),%rax - 41bff4: 48 81 fd ff 03 00 00 cmp $0x3ff,%rbp - 41bffb: 4c 89 60 18 mov %r12,0x18(%rax) - 41bfff: 48 89 50 10 mov %rdx,0x10(%rax) - 41c003: 48 89 43 68 mov %rax,0x68(%rbx) - 41c007: 48 89 42 18 mov %rax,0x18(%rdx) - 41c00b: 77 04 ja 41c011 <_int_malloc+0xad1> - 41c00d: 48 89 43 60 mov %rax,0x60(%rbx) - 41c011: 48 81 3c 24 ff 03 00 cmpq $0x3ff,(%rsp) - 41c018: 00 - 41c019: 76 10 jbe 41c02b <_int_malloc+0xaeb> - 41c01b: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) - 41c022: 00 - 41c023: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) - 41c02a: 00 - 41c02b: 31 d2 xor %edx,%edx - 41c02d: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx - 41c034: 48 8b 3c 24 mov (%rsp),%rdi - 41c038: 0f 95 c2 setne %dl - 41c03b: 48 83 cd 01 or $0x1,%rbp - 41c03f: 48 c1 e2 02 shl $0x2,%rdx - 41c043: 48 09 ea or %rbp,%rdx - 41c046: 49 89 57 08 mov %rdx,0x8(%r15) - 41c04a: 48 89 fa mov %rdi,%rdx - 41c04d: 48 83 ca 01 or $0x1,%rdx - 41c051: 48 89 50 08 mov %rdx,0x8(%rax) - 41c055: 48 89 fa mov %rdi,%rdx - 41c058: 48 89 3c 10 mov %rdi,(%rax,%rdx,1) - 41c05c: e9 e7 f7 ff ff jmpq 41b848 <_int_malloc+0x308> - 41c061: 48 89 e8 mov %rbp,%rax - 41c064: 48 c1 e8 12 shr $0x12,%rax - 41c068: 44 8d 60 7c lea 0x7c(%rax),%r12d - 41c06c: 48 83 f8 02 cmp $0x2,%rax - 41c070: b8 7e 00 00 00 mov $0x7e,%eax - 41c075: 41 0f 46 c4 cmovbe %r12d,%eax - 41c079: 89 04 24 mov %eax,(%rsp) - 41c07c: e9 0c f6 ff ff jmpq 41b68d <_int_malloc+0x14d> - 41c081: 8b 15 e9 e6 2a 00 mov 0x2ae6e9(%rip),%edx # 6ca770 - 41c087: 83 4b 04 04 orl $0x4,0x4(%rbx) - 41c08b: 89 d0 mov %edx,%eax - 41c08d: 83 e0 05 and $0x5,%eax - 41c090: 83 f8 05 cmp $0x5,%eax - 41c093: 0f 84 3d 02 00 00 je 41c2d6 <_int_malloc+0xd96> - 41c099: 41 89 d6 mov %edx,%r14d - 41c09c: 41 83 e6 02 and $0x2,%r14d - 41c0a0: 83 e2 01 and $0x1,%edx - 41c0a3: 0f 85 92 01 00 00 jne 41c23b <_int_malloc+0xcfb> - 41c0a9: 45 85 f6 test %r14d,%r14d - 41c0ac: 0f 84 61 fe ff ff je 41bf13 <_int_malloc+0x9d3> - 41c0b2: e9 e0 fd ff ff jmpq 41be97 <_int_malloc+0x957> - 41c0b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 41c0be: 00 00 - 41c0c0: 48 89 de mov %rbx,%rsi - 41c0c3: 48 89 ef mov %rbp,%rdi - 41c0c6: e8 65 eb ff ff callq 41ac30 - 41c0cb: 48 85 c0 test %rax,%rax - 41c0ce: 0f 85 00 fd ff ff jne 41bdd4 <_int_malloc+0x894> - 41c0d4: 31 c9 xor %ecx,%ecx - 41c0d6: e9 7f f7 ff ff jmpq 41b85a <_int_malloc+0x31a> - 41c0db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41c0e0: 48 29 e8 sub %rbp,%rax - 41c0e3: 31 c9 xor %ecx,%ecx - 41c0e5: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx - 41c0ec: 0f 95 c1 setne %cl - 41c0ef: 48 8d 34 2a lea (%rdx,%rbp,1),%rsi - 41c0f3: 48 83 cd 01 or $0x1,%rbp - 41c0f7: 48 c1 e1 02 shl $0x2,%rcx - 41c0fb: 48 83 c8 01 or $0x1,%rax - 41c0ff: 48 09 e9 or %rbp,%rcx - 41c102: 48 89 73 58 mov %rsi,0x58(%rbx) - 41c106: 48 89 4a 08 mov %rcx,0x8(%rdx) - 41c10a: 48 89 46 08 mov %rax,0x8(%rsi) - 41c10e: 48 8d 4a 10 lea 0x10(%rdx),%rcx - 41c112: 8b 05 1c 05 2b 00 mov 0x2b051c(%rip),%eax # 6cc634 - 41c118: 85 c0 test %eax,%eax - 41c11a: 0f 84 3a f7 ff ff je 41b85a <_int_malloc+0x31a> - 41c120: e9 a6 f8 ff ff jmpq 41b9cb <_int_malloc+0x48b> - 41c125: 0f 1f 00 nopl (%rax) - 41c128: b9 b8 2e 4a 00 mov $0x4a2eb8,%ecx - 41c12d: ba 77 0e 00 00 mov $0xe77,%edx - 41c132: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41c137: bf 5e 21 4a 00 mov $0x4a215e,%edi - 41c13c: e8 df ac ff ff callq 416e20 <__malloc_assert> - 41c141: 44 8b 0d 28 e6 2a 00 mov 0x2ae628(%rip),%r9d # 6ca770 - 41c148: 83 4b 04 04 orl $0x4,0x4(%rbx) - 41c14c: 44 89 c8 mov %r9d,%eax - 41c14f: 83 e0 05 and $0x5,%eax - 41c152: 83 f8 05 cmp $0x5,%eax - 41c155: 0f 84 e2 02 00 00 je 41c43d <_int_malloc+0xefd> - 41c15b: 41 f6 c1 01 test $0x1,%r9b - 41c15f: 0f 85 30 02 00 00 jne 41c395 <_int_malloc+0xe55> - 41c165: 41 f6 c1 02 test $0x2,%r9b - 41c169: 0f 85 28 fd ff ff jne 41be97 <_int_malloc+0x957> - 41c16f: 49 8b 47 10 mov 0x10(%r15),%rax - 41c173: 49 8b 57 18 mov 0x18(%r15),%rdx - 41c177: 4c 3b 78 18 cmp 0x18(%rax),%r15 - 41c17b: 0f 85 92 fd ff ff jne 41bf13 <_int_malloc+0x9d3> - 41c181: 4c 8b 72 10 mov 0x10(%rdx),%r14 - 41c185: 4d 39 f7 cmp %r14,%r15 - 41c188: 0f 84 66 fd ff ff je 41bef4 <_int_malloc+0x9b4> - 41c18e: 44 89 ca mov %r9d,%edx - 41c191: 83 4b 04 04 orl $0x4,0x4(%rbx) - 41c195: e9 ff fe ff ff jmpq 41c099 <_int_malloc+0xb59> - 41c19a: 48 8b 53 68 mov 0x68(%rbx),%rdx - 41c19e: 49 8d 04 2f lea (%r15,%rbp,1),%rax - 41c1a2: 4c 39 62 18 cmp %r12,0x18(%rdx) - 41c1a6: 75 30 jne 41c1d8 <_int_malloc+0xc98> - 41c1a8: 48 81 3c 24 ff 03 00 cmpq $0x3ff,(%rsp) - 41c1af: 00 - 41c1b0: 4c 89 60 18 mov %r12,0x18(%rax) - 41c1b4: 48 89 50 10 mov %rdx,0x10(%rax) - 41c1b8: 48 89 43 68 mov %rax,0x68(%rbx) - 41c1bc: 48 89 42 18 mov %rax,0x18(%rdx) - 41c1c0: 0f 86 65 fe ff ff jbe 41c02b <_int_malloc+0xaeb> - 41c1c6: e9 50 fe ff ff jmpq 41c01b <_int_malloc+0xadb> - 41c1cb: 49 8b 47 08 mov 0x8(%r15),%rax - 41c1cf: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 41c1d3: e9 30 fb ff ff jmpq 41bd08 <_int_malloc+0x7c8> - 41c1d8: 41 bc 08 28 4a 00 mov $0x4a2808,%r12d - 41c1de: e9 91 fc ff ff jmpq 41be74 <_int_malloc+0x934> - 41c1e3: 41 bc 30 28 4a 00 mov $0x4a2830,%r12d - 41c1e9: e9 86 fc ff ff jmpq 41be74 <_int_malloc+0x934> - 41c1ee: 8b 3d 7c e5 2a 00 mov 0x2ae57c(%rip),%edi # 6ca770 - 41c1f4: 48 89 d9 mov %rbx,%rcx - 41c1f7: 4c 89 fa mov %r15,%rdx - 41c1fa: be 95 20 4a 00 mov $0x4a2095,%esi - 41c1ff: e8 ac b0 ff ff callq 4172b0 - 41c204: e9 4e fb ff ff jmpq 41bd57 <_int_malloc+0x817> - 41c209: b9 b8 2e 4a 00 mov $0x4a2eb8,%ecx - 41c20e: ba df 0d 00 00 mov $0xddf,%edx - 41c213: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41c218: bf 58 28 4a 00 mov $0x4a2858,%edi - 41c21d: e8 fe ab ff ff callq 416e20 <__malloc_assert> - 41c222: b9 b8 2e 4a 00 mov $0x4a2eb8,%ecx - 41c227: ba eb 0d 00 00 mov $0xdeb,%edx - 41c22c: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41c231: bf 80 28 4a 00 mov $0x4a2880,%edi - 41c236: e8 e5 ab ff ff callq 416e20 <__malloc_assert> - 41c23b: 4c 8d 5c 24 70 lea 0x70(%rsp),%r11 - 41c240: 48 8d b4 24 80 00 00 lea 0x80(%rsp),%rsi - 41c247: 00 - 41c248: 31 c9 xor %ecx,%ecx - 41c24a: ba 10 00 00 00 mov $0x10,%edx - 41c24f: 4c 89 ff mov %r15,%rdi - 41c252: c6 84 24 80 00 00 00 movb $0x0,0x80(%rsp) - 41c259: 00 - 41c25a: 4c 89 5c 24 10 mov %r11,0x10(%rsp) - 41c25f: e8 4c 5c 03 00 callq 451eb0 <_itoa_word> - 41c264: 4c 8b 5c 24 10 mov 0x10(%rsp),%r11 - 41c269: 49 89 c0 mov %rax,%r8 - 41c26c: 4c 39 d8 cmp %r11,%rax - 41c26f: 76 36 jbe 41c2a7 <_int_malloc+0xd67> - 41c271: 4c 89 c2 mov %r8,%rdx - 41c274: 4c 89 c7 mov %r8,%rdi - 41c277: 48 8d 40 ff lea -0x1(%rax),%rax - 41c27b: 4c 29 da sub %r11,%rdx - 41c27e: be 30 00 00 00 mov $0x30,%esi - 41c283: 4c 89 44 24 18 mov %r8,0x18(%rsp) - 41c288: 48 29 d7 sub %rdx,%rdi - 41c28b: 48 89 44 24 10 mov %rax,0x10(%rsp) - 41c290: e8 bb 40 fe ff callq 400350 <__rela_iplt_end+0x88> - 41c295: 48 8d 44 24 6f lea 0x6f(%rsp),%rax - 41c29a: 48 2b 44 24 10 sub 0x10(%rsp),%rax - 41c29f: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 - 41c2a4: 49 01 c0 add %rax,%r8 - 41c2a7: 48 8b 05 12 10 2b 00 mov 0x2b1012(%rip),%rax # 6cd2c0 <__libc_argv> - 41c2ae: ba 38 20 4a 00 mov $0x4a2038,%edx - 41c2b3: b9 95 20 4a 00 mov $0x4a2095,%ecx - 41c2b8: be a8 23 4a 00 mov $0x4a23a8,%esi - 41c2bd: 44 89 f7 mov %r14d,%edi - 41c2c0: 48 8b 00 mov (%rax),%rax - 41c2c3: 48 85 c0 test %rax,%rax - 41c2c6: 48 0f 45 d0 cmovne %rax,%rdx - 41c2ca: 31 c0 xor %eax,%eax - 41c2cc: e8 ef 52 ff ff callq 4115c0 <__libc_message> - 41c2d1: e9 3d fc ff ff jmpq 41bf13 <_int_malloc+0x9d3> - 41c2d6: 89 d7 mov %edx,%edi - 41c2d8: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41c2dd: ba 95 20 4a 00 mov $0x4a2095,%edx - 41c2e2: 83 e7 02 and $0x2,%edi - 41c2e5: 31 c0 xor %eax,%eax - 41c2e7: e8 d4 52 ff ff callq 4115c0 <__libc_message> - 41c2ec: e9 22 fc ff ff jmpq 41bf13 <_int_malloc+0x9d3> - 41c2f1: b9 b8 2e 4a 00 mov $0x4a2eb8,%ecx - 41c2f6: ba 8a 0e 00 00 mov $0xe8a,%edx - 41c2fb: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41c300: bf a8 28 4a 00 mov $0x4a28a8,%edi - 41c305: e8 16 ab ff ff callq 416e20 <__malloc_assert> - 41c30a: 4c 39 72 28 cmp %r14,0x28(%rdx) - 41c30e: 0f 85 6b 01 00 00 jne 41c47f <_int_malloc+0xf3f> - 41c314: 49 8b 4e 28 mov 0x28(%r14),%rcx - 41c318: 4c 39 71 20 cmp %r14,0x20(%rcx) - 41c31c: 0f 85 5d 01 00 00 jne 41c47f <_int_malloc+0xf3f> - 41c322: 48 83 78 20 00 cmpq $0x0,0x20(%rax) - 41c327: 0f 84 2c 01 00 00 je 41c459 <_int_malloc+0xf19> - 41c32d: 49 8b 46 28 mov 0x28(%r14),%rax - 41c331: 48 89 42 28 mov %rax,0x28(%rdx) - 41c335: 49 8b 46 28 mov 0x28(%r14),%rax - 41c339: 48 89 50 20 mov %rdx,0x20(%rax) - 41c33d: e9 d1 fb ff ff jmpq 41bf13 <_int_malloc+0x9d3> - 41c342: 8b 3d 28 e4 2a 00 mov 0x2ae428(%rip),%edi # 6ca770 - 41c348: 48 89 d9 mov %rbx,%rcx - 41c34b: 4c 89 fa mov %r15,%rdx - 41c34e: be 78 20 4a 00 mov $0x4a2078,%esi - 41c353: e8 58 af ff ff callq 4172b0 - 41c358: e9 bf f9 ff ff jmpq 41bd1c <_int_malloc+0x7dc> - 41c35d: 4c 3b 78 28 cmp 0x28(%rax),%r15 - 41c361: 0f 85 74 01 00 00 jne 41c4db <_int_malloc+0xf9b> - 41c367: 49 8b 57 28 mov 0x28(%r15),%rdx - 41c36b: 4c 3b 7a 20 cmp 0x20(%rdx),%r15 - 41c36f: 0f 85 66 01 00 00 jne 41c4db <_int_malloc+0xf9b> - 41c375: 49 83 7d 20 00 cmpq $0x0,0x20(%r13) - 41c37a: 0f 84 35 01 00 00 je 41c4b5 <_int_malloc+0xf75> - 41c380: 49 8b 57 28 mov 0x28(%r15),%rdx - 41c384: 48 89 50 28 mov %rdx,0x28(%rax) - 41c388: 49 8b 57 28 mov 0x28(%r15),%rdx - 41c38c: 48 89 42 20 mov %rax,0x20(%rdx) - 41c390: e9 c2 f9 ff ff jmpq 41bd57 <_int_malloc+0x817> - 41c395: 4c 8d 74 24 70 lea 0x70(%rsp),%r14 - 41c39a: 48 8d b4 24 80 00 00 lea 0x80(%rsp),%rsi - 41c3a1: 00 - 41c3a2: 31 c9 xor %ecx,%ecx - 41c3a4: ba 10 00 00 00 mov $0x10,%edx - 41c3a9: 4c 89 ff mov %r15,%rdi - 41c3ac: 44 89 4c 24 10 mov %r9d,0x10(%rsp) - 41c3b1: c6 84 24 80 00 00 00 movb $0x0,0x80(%rsp) - 41c3b8: 00 - 41c3b9: e8 f2 5a 03 00 callq 451eb0 <_itoa_word> - 41c3be: 4c 39 f0 cmp %r14,%rax - 41c3c1: 49 89 c0 mov %rax,%r8 - 41c3c4: 44 8b 4c 24 10 mov 0x10(%rsp),%r9d - 41c3c9: 76 40 jbe 41c40b <_int_malloc+0xecb> - 41c3cb: 4c 89 c2 mov %r8,%rdx - 41c3ce: 4c 89 c7 mov %r8,%rdi - 41c3d1: 48 8d 40 ff lea -0x1(%rax),%rax - 41c3d5: 4c 29 f2 sub %r14,%rdx - 41c3d8: be 30 00 00 00 mov $0x30,%esi - 41c3dd: 44 89 4c 24 24 mov %r9d,0x24(%rsp) - 41c3e2: 48 29 d7 sub %rdx,%rdi - 41c3e5: 4c 89 44 24 18 mov %r8,0x18(%rsp) - 41c3ea: 48 89 44 24 10 mov %rax,0x10(%rsp) - 41c3ef: e8 5c 3f fe ff callq 400350 <__rela_iplt_end+0x88> - 41c3f4: 48 8d 44 24 6f lea 0x6f(%rsp),%rax - 41c3f9: 48 2b 44 24 10 sub 0x10(%rsp),%rax - 41c3fe: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 - 41c403: 44 8b 4c 24 24 mov 0x24(%rsp),%r9d - 41c408: 49 01 c0 add %rax,%r8 - 41c40b: 48 8b 05 ae 0e 2b 00 mov 0x2b0eae(%rip),%rax # 6cd2c0 <__libc_argv> - 41c412: 44 89 cf mov %r9d,%edi - 41c415: ba 38 20 4a 00 mov $0x4a2038,%edx - 41c41a: b9 78 20 4a 00 mov $0x4a2078,%ecx - 41c41f: be a8 23 4a 00 mov $0x4a23a8,%esi - 41c424: 48 8b 00 mov (%rax),%rax - 41c427: 48 85 c0 test %rax,%rax - 41c42a: 48 0f 45 d0 cmovne %rax,%rdx - 41c42e: 83 e7 02 and $0x2,%edi - 41c431: 31 c0 xor %eax,%eax - 41c433: e8 88 51 ff ff callq 4115c0 <__libc_message> - 41c438: e9 98 fa ff ff jmpq 41bed5 <_int_malloc+0x995> - 41c43d: 44 89 cf mov %r9d,%edi - 41c440: ba 78 20 4a 00 mov $0x4a2078,%edx - 41c445: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41c44a: 83 e7 02 and $0x2,%edi - 41c44d: 31 c0 xor %eax,%eax - 41c44f: e8 6c 51 ff ff callq 4115c0 <__libc_message> - 41c454: e9 7c fa ff ff jmpq 41bed5 <_int_malloc+0x995> - 41c459: 4c 39 f2 cmp %r14,%rdx - 41c45c: 74 4a je 41c4a8 <_int_malloc+0xf68> - 41c45e: 48 89 50 20 mov %rdx,0x20(%rax) - 41c462: 49 8b 56 28 mov 0x28(%r14),%rdx - 41c466: 48 89 50 28 mov %rdx,0x28(%rax) - 41c46a: 49 8b 56 20 mov 0x20(%r14),%rdx - 41c46e: 48 89 42 28 mov %rax,0x28(%rdx) - 41c472: 49 8b 56 28 mov 0x28(%r14),%rdx - 41c476: 48 89 42 20 mov %rax,0x20(%rdx) - 41c47a: e9 94 fa ff ff jmpq 41bf13 <_int_malloc+0x9d3> - 41c47f: 8b 3d eb e2 2a 00 mov 0x2ae2eb(%rip),%edi # 6ca770 - 41c485: 4c 89 f2 mov %r14,%rdx - 41c488: 48 89 d9 mov %rbx,%rcx - 41c48b: be f0 23 4a 00 mov $0x4a23f0,%esi - 41c490: 48 89 44 24 10 mov %rax,0x10(%rsp) - 41c495: e8 16 ae ff ff callq 4172b0 - 41c49a: 49 8b 56 20 mov 0x20(%r14),%rdx - 41c49e: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 41c4a3: e9 7a fe ff ff jmpq 41c322 <_int_malloc+0xde2> - 41c4a8: 48 89 40 28 mov %rax,0x28(%rax) - 41c4ac: 48 89 40 20 mov %rax,0x20(%rax) - 41c4b0: e9 5e fa ff ff jmpq 41bf13 <_int_malloc+0x9d3> - 41c4b5: 49 39 c7 cmp %rax,%r15 - 41c4b8: 74 40 je 41c4fa <_int_malloc+0xfba> - 41c4ba: 49 89 45 20 mov %rax,0x20(%r13) - 41c4be: 49 8b 47 28 mov 0x28(%r15),%rax - 41c4c2: 49 89 45 28 mov %rax,0x28(%r13) - 41c4c6: 49 8b 47 20 mov 0x20(%r15),%rax - 41c4ca: 4c 89 68 28 mov %r13,0x28(%rax) - 41c4ce: 49 8b 47 28 mov 0x28(%r15),%rax - 41c4d2: 4c 89 68 20 mov %r13,0x20(%rax) - 41c4d6: e9 7c f8 ff ff jmpq 41bd57 <_int_malloc+0x817> - 41c4db: 8b 3d 8f e2 2a 00 mov 0x2ae28f(%rip),%edi # 6ca770 - 41c4e1: 48 89 d9 mov %rbx,%rcx - 41c4e4: 4c 89 fa mov %r15,%rdx - 41c4e7: be f0 23 4a 00 mov $0x4a23f0,%esi - 41c4ec: e8 bf ad ff ff callq 4172b0 - 41c4f1: 49 8b 47 20 mov 0x20(%r15),%rax - 41c4f5: e9 7b fe ff ff jmpq 41c375 <_int_malloc+0xe35> - 41c4fa: 4d 89 6d 28 mov %r13,0x28(%r13) - 41c4fe: 4d 89 6d 20 mov %r13,0x20(%r13) - 41c502: e9 50 f8 ff ff jmpq 41bd57 <_int_malloc+0x817> - 41c507: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 41c50e: 00 00 - -000000000041c510 <_int_memalign>: - 41c510: 48 83 fa bf cmp $0xffffffffffffffbf,%rdx - 41c514: 0f 87 a6 01 00 00 ja 41c6c0 <_int_memalign+0x1b0> - 41c51a: 48 83 c2 17 add $0x17,%rdx - 41c51e: 41 56 push %r14 - 41c520: 41 55 push %r13 - 41c522: 41 54 push %r12 - 41c524: 55 push %rbp - 41c525: 48 89 d5 mov %rdx,%rbp - 41c528: 48 83 e5 f0 and $0xfffffffffffffff0,%rbp - 41c52c: b8 20 00 00 00 mov $0x20,%eax - 41c531: 48 83 fa 20 cmp $0x20,%rdx - 41c535: 48 0f 42 e8 cmovb %rax,%rbp - 41c539: 53 push %rbx - 41c53a: 49 89 f5 mov %rsi,%r13 - 41c53d: 48 8d 74 35 20 lea 0x20(%rbp,%rsi,1),%rsi - 41c542: 48 89 fb mov %rdi,%rbx - 41c545: e8 f6 ef ff ff callq 41b540 <_int_malloc> - 41c54a: 48 85 c0 test %rax,%rax - 41c54d: 48 89 c1 mov %rax,%rcx - 41c550: 0f 84 aa 01 00 00 je 41c700 <_int_memalign+0x1f0> - 41c556: 31 d2 xor %edx,%edx - 41c558: 48 8d 70 f0 lea -0x10(%rax),%rsi - 41c55c: 49 f7 f5 div %r13 - 41c55f: 48 85 d2 test %rdx,%rdx - 41c562: 0f 84 c8 00 00 00 je 41c630 <_int_memalign+0x120> - 41c568: 4a 8d 44 29 ff lea -0x1(%rcx,%r13,1),%rax - 41c56d: 4c 89 ea mov %r13,%rdx - 41c570: 48 f7 da neg %rdx - 41c573: 48 21 d0 and %rdx,%rax - 41c576: 48 83 e8 10 sub $0x10,%rax - 41c57a: 48 89 c2 mov %rax,%rdx - 41c57d: 4e 8d 24 28 lea (%rax,%r13,1),%r12 - 41c581: 48 29 f2 sub %rsi,%rdx - 41c584: 48 83 fa 1f cmp $0x1f,%rdx - 41c588: 4c 0f 47 e0 cmova %rax,%r12 - 41c58c: 48 8b 41 f8 mov -0x8(%rcx),%rax - 41c590: 4c 89 e2 mov %r12,%rdx - 41c593: 48 29 f2 sub %rsi,%rdx - 41c596: 49 89 c6 mov %rax,%r14 - 41c599: 49 83 e6 f8 and $0xfffffffffffffff8,%r14 - 41c59d: 49 29 d6 sub %rdx,%r14 - 41c5a0: 83 e0 02 and $0x2,%eax - 41c5a3: 0f 85 ef 00 00 00 jne 41c698 <_int_memalign+0x188> - 41c5a9: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx - 41c5b0: 0f 84 22 01 00 00 je 41c6d8 <_int_memalign+0x1c8> - 41c5b6: 4c 89 f0 mov %r14,%rax - 41c5b9: 48 83 c8 05 or $0x5,%rax - 41c5bd: 49 89 44 24 08 mov %rax,0x8(%r12) - 41c5c2: 4b 83 4c 34 08 01 orq $0x1,0x8(%r12,%r14,1) - 41c5c8: b8 04 00 00 00 mov $0x4,%eax - 41c5cd: 48 8b 79 f8 mov -0x8(%rcx),%rdi - 41c5d1: 83 e7 07 and $0x7,%edi - 41c5d4: 48 09 f8 or %rdi,%rax - 41c5d7: 48 89 df mov %rbx,%rdi - 41c5da: 48 09 c2 or %rax,%rdx - 41c5dd: 48 89 51 f8 mov %rdx,-0x8(%rcx) - 41c5e1: ba 01 00 00 00 mov $0x1,%edx - 41c5e6: e8 d5 d1 ff ff callq 4197c0 <_int_free> - 41c5eb: 4c 39 f5 cmp %r14,%rbp - 41c5ee: 0f 87 13 01 00 00 ja 41c707 <_int_memalign+0x1f7> - 41c5f4: 49 8d 4c 24 10 lea 0x10(%r12),%rcx - 41c5f9: 31 d2 xor %edx,%edx - 41c5fb: 48 89 c8 mov %rcx,%rax - 41c5fe: 49 f7 f5 div %r13 - 41c601: 48 85 d2 test %rdx,%rdx - 41c604: 0f 85 fd 00 00 00 jne 41c707 <_int_memalign+0x1f7> - 41c60a: 49 8b 54 24 08 mov 0x8(%r12),%rdx - 41c60f: 49 89 cd mov %rcx,%r13 - 41c612: 48 89 d1 mov %rdx,%rcx - 41c615: 83 e1 02 and $0x2,%ecx - 41c618: 74 29 je 41c643 <_int_memalign+0x133> - 41c61a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41c620: 4c 89 e8 mov %r13,%rax - 41c623: 5b pop %rbx - 41c624: 5d pop %rbp - 41c625: 41 5c pop %r12 - 41c627: 41 5d pop %r13 - 41c629: 41 5e pop %r14 - 41c62b: c3 retq - 41c62c: 0f 1f 40 00 nopl 0x0(%rax) - 41c630: 49 89 f4 mov %rsi,%r12 - 41c633: 49 89 cd mov %rcx,%r13 - 41c636: 49 8b 54 24 08 mov 0x8(%r12),%rdx - 41c63b: 48 89 d1 mov %rdx,%rcx - 41c63e: 83 e1 02 and $0x2,%ecx - 41c641: 75 dd jne 41c620 <_int_memalign+0x110> - 41c643: 48 8d 75 20 lea 0x20(%rbp),%rsi - 41c647: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx - 41c64b: 48 39 f2 cmp %rsi,%rdx - 41c64e: 76 d0 jbe 41c620 <_int_memalign+0x110> - 41c650: 48 29 ea sub %rbp,%rdx - 41c653: bf 04 00 00 00 mov $0x4,%edi - 41c658: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx - 41c65f: 48 0f 45 cf cmovne %rdi,%rcx - 41c663: 49 8d 34 2c lea (%r12,%rbp,1),%rsi - 41c667: 48 83 ca 01 or $0x1,%rdx - 41c66b: 48 09 ca or %rcx,%rdx - 41c66e: 48 89 df mov %rbx,%rdi - 41c671: 48 89 56 08 mov %rdx,0x8(%rsi) - 41c675: 49 8b 54 24 08 mov 0x8(%r12),%rdx - 41c67a: 83 e2 07 and $0x7,%edx - 41c67d: 48 09 d5 or %rdx,%rbp - 41c680: ba 01 00 00 00 mov $0x1,%edx - 41c685: 49 89 6c 24 08 mov %rbp,0x8(%r12) - 41c68a: e8 31 d1 ff ff callq 4197c0 <_int_free> - 41c68f: eb 8f jmp 41c620 <_int_memalign+0x110> - 41c691: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41c698: 48 03 51 f0 add -0x10(%rcx),%rdx - 41c69c: 49 83 ce 02 or $0x2,%r14 - 41c6a0: 49 8d 44 24 10 lea 0x10(%r12),%rax - 41c6a5: 4d 89 74 24 08 mov %r14,0x8(%r12) - 41c6aa: 49 89 14 24 mov %rdx,(%r12) - 41c6ae: 5b pop %rbx - 41c6af: 5d pop %rbp - 41c6b0: 41 5c pop %r12 - 41c6b2: 41 5d pop %r13 - 41c6b4: 41 5e pop %r14 - 41c6b6: c3 retq - 41c6b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 41c6be: 00 00 - 41c6c0: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41c6c7: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) - 41c6ce: 31 c0 xor %eax,%eax - 41c6d0: c3 retq - 41c6d1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41c6d8: 4c 89 f7 mov %r14,%rdi - 41c6db: 48 83 cf 01 or $0x1,%rdi - 41c6df: 49 89 7c 24 08 mov %rdi,0x8(%r12) - 41c6e4: 4b 83 4c 34 08 01 orq $0x1,0x8(%r12,%r14,1) - 41c6ea: 48 8b 79 f8 mov -0x8(%rcx),%rdi - 41c6ee: 83 e7 07 and $0x7,%edi - 41c6f1: e9 de fe ff ff jmpq 41c5d4 <_int_memalign+0xc4> - 41c6f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41c6fd: 00 00 00 - 41c700: 31 c0 xor %eax,%eax - 41c702: e9 1c ff ff ff jmpq 41c623 <_int_memalign+0x113> - 41c707: b9 c8 2e 4a 00 mov $0x4a2ec8,%ecx - 41c70c: ba 6f 11 00 00 mov $0x116f,%edx - 41c711: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41c716: bf d8 28 4a 00 mov $0x4a28d8,%edi - 41c71b: e8 00 a7 ff ff callq 416e20 <__malloc_assert> - -000000000041c720 : - 41c720: 48 83 ff ff cmp $0xffffffffffffffff,%rdi - 41c724: 0f 84 26 01 00 00 je 41c850 - 41c72a: 53 push %rbx - 41c72b: be 01 00 00 00 mov $0x1,%esi - 41c730: 48 89 fb mov %rdi,%rbx - 41c733: 31 c0 xor %eax,%eax - 41c735: 83 3d 80 0a 2b 00 00 cmpl $0x0,0x2b0a80(%rip) # 6cd1bc <__libc_multiple_threads> - 41c73c: 74 0c je 41c74a - 41c73e: f0 0f b1 35 ba e0 2a lock cmpxchg %esi,0x2ae0ba(%rip) # 6ca800 - 41c745: 00 - 41c746: 75 0b jne 41c753 - 41c748: eb 23 jmp 41c76d - 41c74a: 0f b1 35 af e0 2a 00 cmpxchg %esi,0x2ae0af(%rip) # 6ca800 - 41c751: 74 1a je 41c76d - 41c753: 48 8d 3d a6 e0 2a 00 lea 0x2ae0a6(%rip),%rdi # 6ca800 - 41c75a: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41c761: e8 6a 5e 02 00 callq 4425d0 <__lll_lock_wait_private> - 41c766: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41c76d: e8 6e b3 ff ff callq 417ae0 - 41c772: 45 31 c0 xor %r8d,%r8d - 41c775: 85 c0 test %eax,%eax - 41c777: 78 11 js 41c78a - 41c779: 48 8d 73 01 lea 0x1(%rbx),%rsi - 41c77d: bf 00 a8 6c 00 mov $0x6ca800,%edi - 41c782: e8 b9 ed ff ff callq 41b540 <_int_malloc> - 41c787: 49 89 c0 mov %rax,%r8 - 41c78a: 83 3d 2b 0a 2b 00 00 cmpl $0x0,0x2b0a2b(%rip) # 6cd1bc <__libc_multiple_threads> - 41c791: 74 0b je 41c79e - 41c793: f0 ff 0d 66 e0 2a 00 lock decl 0x2ae066(%rip) # 6ca800 - 41c79a: 75 0a jne 41c7a6 - 41c79c: eb 22 jmp 41c7c0 - 41c79e: ff 0d 5c e0 2a 00 decl 0x2ae05c(%rip) # 6ca800 - 41c7a4: 74 1a je 41c7c0 - 41c7a6: 48 8d 3d 53 e0 2a 00 lea 0x2ae053(%rip),%rdi # 6ca800 - 41c7ad: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41c7b4: e8 47 5e 02 00 callq 442600 <__lll_unlock_wake_private> - 41c7b9: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41c7c0: 4d 85 c0 test %r8,%r8 - 41c7c3: 0f 84 9f 00 00 00 je 41c868 - 41c7c9: 49 8d 40 f0 lea -0x10(%r8),%rax - 41c7cd: 49 89 c1 mov %rax,%r9 - 41c7d0: 48 c1 e8 0b shr $0xb,%rax - 41c7d4: 49 c1 e9 03 shr $0x3,%r9 - 41c7d8: 41 31 c1 xor %eax,%r9d - 41c7db: b8 02 00 00 00 mov $0x2,%eax - 41c7e0: 41 80 f9 01 cmp $0x1,%r9b - 41c7e4: 44 0f 44 c8 cmove %eax,%r9d - 41c7e8: 49 8b 40 f8 mov -0x8(%r8),%rax - 41c7ec: 41 0f b6 f9 movzbl %r9b,%edi - 41c7f0: 48 89 c2 mov %rax,%rdx - 41c7f3: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx - 41c7f7: 48 8d 4a f0 lea -0x10(%rdx),%rcx - 41c7fb: 48 83 ea 08 sub $0x8,%rdx - 41c7ff: a8 02 test $0x2,%al - 41c801: b8 ff 00 00 00 mov $0xff,%eax - 41c806: 48 0f 44 ca cmove %rdx,%rcx - 41c80a: 48 83 e9 01 sub $0x1,%rcx - 41c80e: 48 39 cb cmp %rcx,%rbx - 41c811: 73 2d jae 41c840 - 41c813: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41c818: 48 89 ca mov %rcx,%rdx - 41c81b: 48 29 da sub %rbx,%rdx - 41c81e: 48 81 fa ff 00 00 00 cmp $0xff,%rdx - 41c825: 48 0f 47 d0 cmova %rax,%rdx - 41c829: 48 8d 72 ff lea -0x1(%rdx),%rsi - 41c82d: 48 39 fa cmp %rdi,%rdx - 41c830: 48 0f 44 d6 cmove %rsi,%rdx - 41c834: 41 88 14 08 mov %dl,(%r8,%rcx,1) - 41c838: 48 29 d1 sub %rdx,%rcx - 41c83b: 48 39 cb cmp %rcx,%rbx - 41c83e: 72 d8 jb 41c818 - 41c840: 45 88 0c 18 mov %r9b,(%r8,%rbx,1) - 41c844: 4c 89 c0 mov %r8,%rax - 41c847: 5b pop %rbx - 41c848: c3 retq - 41c849: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41c850: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41c857: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) - 41c85e: 31 c0 xor %eax,%eax - 41c860: c3 retq - 41c861: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41c868: 31 c0 xor %eax,%eax - 41c86a: 5b pop %rbx - 41c86b: c3 retq - 41c86c: 0f 1f 40 00 nopl 0x0(%rax) - -000000000041c870 : - 41c870: 55 push %rbp - 41c871: 53 push %rbx - 41c872: 48 89 f3 mov %rsi,%rbx - 41c875: 48 83 ec 08 sub $0x8,%rsp - 41c879: 48 83 ff 10 cmp $0x10,%rdi - 41c87d: 0f 86 8d 01 00 00 jbe 41ca10 - 41c883: 48 83 ff 1f cmp $0x1f,%rdi - 41c887: 0f 87 33 01 00 00 ja 41c9c0 - 41c88d: 48 83 fe bf cmp $0xffffffffffffffbf,%rsi - 41c891: 0f 87 a1 01 00 00 ja 41ca38 - 41c897: bd 20 00 00 00 mov $0x20,%ebp - 41c89c: be 01 00 00 00 mov $0x1,%esi - 41c8a1: 31 c0 xor %eax,%eax - 41c8a3: 83 3d 12 09 2b 00 00 cmpl $0x0,0x2b0912(%rip) # 6cd1bc <__libc_multiple_threads> - 41c8aa: 74 0c je 41c8b8 - 41c8ac: f0 0f b1 35 4c df 2a lock cmpxchg %esi,0x2adf4c(%rip) # 6ca800 - 41c8b3: 00 - 41c8b4: 75 0b jne 41c8c1 - 41c8b6: eb 23 jmp 41c8db - 41c8b8: 0f b1 35 41 df 2a 00 cmpxchg %esi,0x2adf41(%rip) # 6ca800 - 41c8bf: 74 1a je 41c8db - 41c8c1: 48 8d 3d 38 df 2a 00 lea 0x2adf38(%rip),%rdi # 6ca800 - 41c8c8: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41c8cf: e8 fc 5c 02 00 callq 4425d0 <__lll_lock_wait_private> - 41c8d4: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41c8db: e8 00 b2 ff ff callq 417ae0 - 41c8e0: 45 31 c0 xor %r8d,%r8d - 41c8e3: 85 c0 test %eax,%eax - 41c8e5: 78 14 js 41c8fb - 41c8e7: 48 8d 53 01 lea 0x1(%rbx),%rdx - 41c8eb: 48 89 ee mov %rbp,%rsi - 41c8ee: bf 00 a8 6c 00 mov $0x6ca800,%edi - 41c8f3: e8 18 fc ff ff callq 41c510 <_int_memalign> - 41c8f8: 49 89 c0 mov %rax,%r8 - 41c8fb: 83 3d ba 08 2b 00 00 cmpl $0x0,0x2b08ba(%rip) # 6cd1bc <__libc_multiple_threads> - 41c902: 74 0b je 41c90f - 41c904: f0 ff 0d f5 de 2a 00 lock decl 0x2adef5(%rip) # 6ca800 - 41c90b: 75 0a jne 41c917 - 41c90d: eb 22 jmp 41c931 - 41c90f: ff 0d eb de 2a 00 decl 0x2adeeb(%rip) # 6ca800 - 41c915: 74 1a je 41c931 - 41c917: 48 8d 3d e2 de 2a 00 lea 0x2adee2(%rip),%rdi # 6ca800 - 41c91e: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41c925: e8 d6 5c 02 00 callq 442600 <__lll_unlock_wake_private> - 41c92a: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41c931: 4d 85 c0 test %r8,%r8 - 41c934: 0f 84 16 01 00 00 je 41ca50 - 41c93a: 49 8d 40 f0 lea -0x10(%r8),%rax - 41c93e: 49 89 c1 mov %rax,%r9 - 41c941: 48 c1 e8 0b shr $0xb,%rax - 41c945: 49 c1 e9 03 shr $0x3,%r9 - 41c949: 41 31 c1 xor %eax,%r9d - 41c94c: b8 02 00 00 00 mov $0x2,%eax - 41c951: 41 80 f9 01 cmp $0x1,%r9b - 41c955: 44 0f 44 c8 cmove %eax,%r9d - 41c959: 49 8b 40 f8 mov -0x8(%r8),%rax - 41c95d: 41 0f b6 f9 movzbl %r9b,%edi - 41c961: 48 89 c2 mov %rax,%rdx - 41c964: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx - 41c968: 48 8d 4a f0 lea -0x10(%rdx),%rcx - 41c96c: 48 83 ea 08 sub $0x8,%rdx - 41c970: a8 02 test $0x2,%al - 41c972: b8 ff 00 00 00 mov $0xff,%eax - 41c977: 48 0f 44 ca cmove %rdx,%rcx - 41c97b: 48 83 e9 01 sub $0x1,%rcx - 41c97f: 48 39 cb cmp %rcx,%rbx - 41c982: 73 2c jae 41c9b0 - 41c984: 0f 1f 40 00 nopl 0x0(%rax) - 41c988: 48 89 ca mov %rcx,%rdx - 41c98b: 48 29 da sub %rbx,%rdx - 41c98e: 48 81 fa ff 00 00 00 cmp $0xff,%rdx - 41c995: 48 0f 47 d0 cmova %rax,%rdx - 41c999: 48 8d 72 ff lea -0x1(%rdx),%rsi - 41c99d: 48 39 fa cmp %rdi,%rdx - 41c9a0: 48 0f 44 d6 cmove %rsi,%rdx - 41c9a4: 41 88 14 08 mov %dl,(%r8,%rcx,1) - 41c9a8: 48 29 d1 sub %rdx,%rcx - 41c9ab: 48 39 cb cmp %rcx,%rbx - 41c9ae: 72 d8 jb 41c988 - 41c9b0: 45 88 0c 18 mov %r9b,(%r8,%rbx,1) - 41c9b4: 4c 89 c0 mov %r8,%rax - 41c9b7: 48 83 c4 08 add $0x8,%rsp - 41c9bb: 5b pop %rbx - 41c9bc: 5d pop %rbp - 41c9bd: c3 retq - 41c9be: 66 90 xchg %ax,%ax - 41c9c0: 48 b8 00 00 00 00 00 movabs $0x8000000000000000,%rax - 41c9c7: 00 00 80 - 41c9ca: 48 39 c7 cmp %rax,%rdi - 41c9cd: 77 51 ja 41ca20 - 41c9cf: 48 c7 c0 df ff ff ff mov $0xffffffffffffffdf,%rax - 41c9d6: 48 29 f8 sub %rdi,%rax - 41c9d9: 48 39 c6 cmp %rax,%rsi - 41c9dc: 77 5a ja 41ca38 - 41c9de: 48 8d 47 ff lea -0x1(%rdi),%rax - 41c9e2: 48 85 f8 test %rdi,%rax - 41c9e5: 74 70 je 41ca57 - 41c9e7: 48 83 ff 20 cmp $0x20,%rdi - 41c9eb: bd 20 00 00 00 mov $0x20,%ebp - 41c9f0: 0f 84 a6 fe ff ff je 41c89c - 41c9f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41c9fd: 00 00 00 - 41ca00: 48 01 ed add %rbp,%rbp - 41ca03: 48 39 ef cmp %rbp,%rdi - 41ca06: 77 f8 ja 41ca00 - 41ca08: e9 8f fe ff ff jmpq 41c89c - 41ca0d: 0f 1f 00 nopl (%rax) - 41ca10: 48 83 c4 08 add $0x8,%rsp - 41ca14: 48 89 df mov %rbx,%rdi - 41ca17: 31 f6 xor %esi,%esi - 41ca19: 5b pop %rbx - 41ca1a: 5d pop %rbp - 41ca1b: e9 00 fd ff ff jmpq 41c720 - 41ca20: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41ca27: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) - 41ca2e: 31 c0 xor %eax,%eax - 41ca30: e9 82 ff ff ff jmpq 41c9b7 - 41ca35: 0f 1f 00 nopl (%rax) - 41ca38: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41ca3f: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) - 41ca46: 31 c0 xor %eax,%eax - 41ca48: e9 6a ff ff ff jmpq 41c9b7 - 41ca4d: 0f 1f 00 nopl (%rax) - 41ca50: 31 c0 xor %eax,%eax - 41ca52: e9 60 ff ff ff jmpq 41c9b7 - 41ca57: 48 89 fd mov %rdi,%rbp - 41ca5a: e9 3d fe ff ff jmpq 41c89c - 41ca5f: 90 nop - -000000000041ca60 <_int_realloc>: - 41ca60: 41 57 push %r15 - 41ca62: 41 56 push %r14 - 41ca64: 41 55 push %r13 - 41ca66: 41 54 push %r12 - 41ca68: 49 89 cd mov %rcx,%r13 - 41ca6b: 55 push %rbp - 41ca6c: 53 push %rbx - 41ca6d: 48 89 fd mov %rdi,%rbp - 41ca70: 48 89 f3 mov %rsi,%rbx - 41ca73: 48 83 ec 48 sub $0x48,%rsp - 41ca77: 48 8b 4e 08 mov 0x8(%rsi),%rcx - 41ca7b: 48 83 f9 10 cmp $0x10,%rcx - 41ca7f: 0f 86 03 02 00 00 jbe 41cc88 <_int_realloc+0x228> - 41ca85: 48 8b 87 80 08 00 00 mov 0x880(%rdi),%rax - 41ca8c: 48 39 d0 cmp %rdx,%rax - 41ca8f: 0f 86 9b 02 00 00 jbe 41cd30 <_int_realloc+0x2d0> - 41ca95: 49 89 cc mov %rcx,%r12 - 41ca98: 41 83 e4 02 and $0x2,%r12d - 41ca9c: 0f 85 77 06 00 00 jne 41d119 <_int_realloc+0x6b9> - 41caa2: 4c 8d 3c 16 lea (%rsi,%rdx,1),%r15 - 41caa6: 49 8b 77 08 mov 0x8(%r15),%rsi - 41caaa: 48 89 f7 mov %rsi,%rdi - 41caad: 48 83 e7 f8 and $0xfffffffffffffff8,%rdi - 41cab1: 48 39 f8 cmp %rdi,%rax - 41cab4: 0f 86 16 03 00 00 jbe 41cdd0 <_int_realloc+0x370> - 41caba: 48 83 fe 10 cmp $0x10,%rsi - 41cabe: 0f 86 0c 03 00 00 jbe 41cdd0 <_int_realloc+0x370> - 41cac4: 4c 39 ea cmp %r13,%rdx - 41cac7: 72 47 jb 41cb10 <_int_realloc+0xb0> - 41cac9: 48 89 d0 mov %rdx,%rax - 41cacc: 4c 29 e8 sub %r13,%rax - 41cacf: 48 83 f8 1f cmp $0x1f,%rax - 41cad3: 0f 87 07 02 00 00 ja 41cce0 <_int_realloc+0x280> - 41cad9: 83 e1 07 and $0x7,%ecx - 41cadc: b8 04 00 00 00 mov $0x4,%eax - 41cae1: 48 81 fd 00 a8 6c 00 cmp $0x6ca800,%rbp - 41cae8: 4c 0f 45 e0 cmovne %rax,%r12 - 41caec: 48 09 d1 or %rdx,%rcx - 41caef: 4c 09 e1 or %r12,%rcx - 41caf2: 48 89 4b 08 mov %rcx,0x8(%rbx) - 41caf6: 48 83 4c 13 08 01 orq $0x1,0x8(%rbx,%rdx,1) - 41cafc: 48 8d 43 10 lea 0x10(%rbx),%rax - 41cb00: 48 83 c4 48 add $0x48,%rsp - 41cb04: 5b pop %rbx - 41cb05: 5d pop %rbp - 41cb06: 41 5c pop %r12 - 41cb08: 41 5d pop %r13 - 41cb0a: 41 5e pop %r14 - 41cb0c: 41 5f pop %r15 - 41cb0e: c3 retq - 41cb0f: 90 nop - 41cb10: 4c 3b 7d 58 cmp 0x58(%rbp),%r15 - 41cb14: 0f 84 3e 03 00 00 je 41ce58 <_int_realloc+0x3f8> - 41cb1a: 49 8d 04 3f lea (%r15,%rdi,1),%rax - 41cb1e: f6 40 08 01 testb $0x1,0x8(%rax) - 41cb22: 0f 85 98 00 00 00 jne 41cbc0 <_int_realloc+0x160> - 41cb28: 4c 8d 0c 3a lea (%rdx,%rdi,1),%r9 - 41cb2c: 4d 39 cd cmp %r9,%r13 - 41cb2f: 0f 87 8b 00 00 00 ja 41cbc0 <_int_realloc+0x160> - 41cb35: 48 3b 38 cmp (%rax),%rdi - 41cb38: 0f 85 86 03 00 00 jne 41cec4 <_int_realloc+0x464> - 41cb3e: 4d 8b 77 10 mov 0x10(%r15),%r14 - 41cb42: 49 8b 47 18 mov 0x18(%r15),%rax - 41cb46: 4d 3b 7e 18 cmp 0x18(%r14),%r15 - 41cb4a: 0f 85 d0 02 00 00 jne 41ce20 <_int_realloc+0x3c0> - 41cb50: 4c 3b 78 10 cmp 0x10(%rax),%r15 - 41cb54: 0f 85 c6 02 00 00 jne 41ce20 <_int_realloc+0x3c0> - 41cb5a: 49 81 7f 08 ff 03 00 cmpq $0x3ff,0x8(%r15) - 41cb61: 00 - 41cb62: 49 89 46 18 mov %rax,0x18(%r14) - 41cb66: 4c 89 70 10 mov %r14,0x10(%rax) - 41cb6a: 76 44 jbe 41cbb0 <_int_realloc+0x150> - 41cb6c: 49 8b 47 20 mov 0x20(%r15),%rax - 41cb70: 48 85 c0 test %rax,%rax - 41cb73: 74 3b je 41cbb0 <_int_realloc+0x150> - 41cb75: 4c 3b 78 28 cmp 0x28(%rax),%r15 - 41cb79: 0f 85 4d 05 00 00 jne 41d0cc <_int_realloc+0x66c> - 41cb7f: 49 8b 57 28 mov 0x28(%r15),%rdx - 41cb83: 4c 3b 7a 20 cmp 0x20(%rdx),%r15 - 41cb87: 0f 85 3f 05 00 00 jne 41d0cc <_int_realloc+0x66c> - 41cb8d: 49 83 7e 20 00 cmpq $0x0,0x20(%r14) - 41cb92: 0f 84 5b 05 00 00 je 41d0f3 <_int_realloc+0x693> - 41cb98: 49 8b 57 28 mov 0x28(%r15),%rdx - 41cb9c: 48 89 50 28 mov %rdx,0x28(%rax) - 41cba0: 49 8b 57 28 mov 0x28(%r15),%rdx - 41cba4: 48 89 42 20 mov %rax,0x20(%rdx) - 41cba8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41cbaf: 00 - 41cbb0: 48 8b 4b 08 mov 0x8(%rbx),%rcx - 41cbb4: 4c 89 ca mov %r9,%rdx - 41cbb7: e9 0d ff ff ff jmpq 41cac9 <_int_realloc+0x69> - 41cbbc: 0f 1f 40 00 nopl 0x0(%rax) - 41cbc0: 49 8d 75 f1 lea -0xf(%r13),%rsi - 41cbc4: 48 89 ef mov %rbp,%rdi - 41cbc7: 48 89 14 24 mov %rdx,(%rsp) - 41cbcb: e8 70 e9 ff ff callq 41b540 <_int_malloc> - 41cbd0: 48 85 c0 test %rax,%rax - 41cbd3: 49 89 c6 mov %rax,%r14 - 41cbd6: 0f 84 ef 00 00 00 je 41cccb <_int_realloc+0x26b> - 41cbdc: 48 8d 40 f0 lea -0x10(%rax),%rax - 41cbe0: 48 8b 14 24 mov (%rsp),%rdx - 41cbe4: 49 39 c7 cmp %rax,%r15 - 41cbe7: 0f 84 0b 02 00 00 je 41cdf8 <_int_realloc+0x398> - 41cbed: 48 83 ea 08 sub $0x8,%rdx - 41cbf1: 48 89 d0 mov %rdx,%rax - 41cbf4: 48 c1 e8 03 shr $0x3,%rax - 41cbf8: 83 f8 02 cmp $0x2,%eax - 41cbfb: 0f 86 4a 05 00 00 jbe 41d14b <_int_realloc+0x6eb> - 41cc01: 83 f8 09 cmp $0x9,%eax - 41cc04: 0f 87 d6 01 00 00 ja 41cde0 <_int_realloc+0x380> - 41cc0a: 48 8b 53 10 mov 0x10(%rbx),%rdx - 41cc0e: 83 f8 04 cmp $0x4,%eax - 41cc11: 49 89 16 mov %rdx,(%r14) - 41cc14: 48 8b 53 18 mov 0x18(%rbx),%rdx - 41cc18: 49 89 56 08 mov %rdx,0x8(%r14) - 41cc1c: 48 8b 53 20 mov 0x20(%rbx),%rdx - 41cc20: 49 89 56 10 mov %rdx,0x10(%r14) - 41cc24: 76 3a jbe 41cc60 <_int_realloc+0x200> - 41cc26: 48 8b 53 28 mov 0x28(%rbx),%rdx - 41cc2a: 83 f8 06 cmp $0x6,%eax - 41cc2d: 49 89 56 18 mov %rdx,0x18(%r14) - 41cc31: 48 8b 53 30 mov 0x30(%rbx),%rdx - 41cc35: 49 89 56 20 mov %rdx,0x20(%r14) - 41cc39: 76 25 jbe 41cc60 <_int_realloc+0x200> - 41cc3b: 48 8b 53 38 mov 0x38(%rbx),%rdx - 41cc3f: 83 f8 09 cmp $0x9,%eax - 41cc42: 49 89 56 28 mov %rdx,0x28(%r14) - 41cc46: 48 8b 53 40 mov 0x40(%rbx),%rdx - 41cc4a: 49 89 56 30 mov %rdx,0x30(%r14) - 41cc4e: 75 10 jne 41cc60 <_int_realloc+0x200> - 41cc50: 48 8b 43 48 mov 0x48(%rbx),%rax - 41cc54: 49 89 46 38 mov %rax,0x38(%r14) - 41cc58: 48 8b 43 50 mov 0x50(%rbx),%rax - 41cc5c: 49 89 46 40 mov %rax,0x40(%r14) - 41cc60: 48 89 de mov %rbx,%rsi - 41cc63: 48 89 ef mov %rbp,%rdi - 41cc66: ba 01 00 00 00 mov $0x1,%edx - 41cc6b: e8 50 cb ff ff callq 4197c0 <_int_free> - 41cc70: 48 83 c4 48 add $0x48,%rsp - 41cc74: 4c 89 f0 mov %r14,%rax - 41cc77: 5b pop %rbx - 41cc78: 5d pop %rbp - 41cc79: 41 5c pop %r12 - 41cc7b: 41 5d pop %r13 - 41cc7d: 41 5e pop %r14 - 41cc7f: 41 5f pop %r15 - 41cc81: c3 retq - 41cc82: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41cc88: 48 85 ed test %rbp,%rbp - 41cc8b: 48 8d 7e 10 lea 0x10(%rsi),%rdi - 41cc8f: 44 8b 25 da da 2a 00 mov 0x2adada(%rip),%r12d # 6ca770 - 41cc96: 41 bd 67 21 4a 00 mov $0x4a2167,%r13d - 41cc9c: 0f 85 9f 00 00 00 jne 41cd41 <_int_realloc+0x2e1> - 41cca2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41cca8: 44 89 e2 mov %r12d,%edx - 41ccab: 83 e2 05 and $0x5,%edx - 41ccae: 83 fa 05 cmp $0x5,%edx - 41ccb1: 0f 84 f1 01 00 00 je 41cea8 <_int_realloc+0x448> - 41ccb7: 41 f6 c4 01 test $0x1,%r12b - 41ccbb: 0f 85 8f 00 00 00 jne 41cd50 <_int_realloc+0x2f0> - 41ccc1: 41 83 e4 02 and $0x2,%r12d - 41ccc5: 0f 85 83 01 00 00 jne 41ce4e <_int_realloc+0x3ee> - 41cccb: 48 83 c4 48 add $0x48,%rsp - 41cccf: 31 c0 xor %eax,%eax - 41ccd1: 5b pop %rbx - 41ccd2: 5d pop %rbp - 41ccd3: 41 5c pop %r12 - 41ccd5: 41 5d pop %r13 - 41ccd7: 41 5e pop %r14 - 41ccd9: 41 5f pop %r15 - 41ccdb: c3 retq - 41ccdc: 0f 1f 40 00 nopl 0x0(%rax) - 41cce0: 83 e1 07 and $0x7,%ecx - 41cce3: 48 81 fd 00 a8 6c 00 cmp $0x6ca800,%rbp - 41ccea: 4a 8d 34 2b lea (%rbx,%r13,1),%rsi - 41ccee: 0f 84 24 01 00 00 je 41ce18 <_int_realloc+0x3b8> - 41ccf4: 49 83 cd 04 or $0x4,%r13 - 41ccf8: 41 bc 04 00 00 00 mov $0x4,%r12d - 41ccfe: 4c 09 e9 or %r13,%rcx - 41cd01: 48 89 4b 08 mov %rcx,0x8(%rbx) - 41cd05: 48 89 c1 mov %rax,%rcx - 41cd08: ba 01 00 00 00 mov $0x1,%edx - 41cd0d: 48 83 c9 01 or $0x1,%rcx - 41cd11: 48 89 ef mov %rbp,%rdi - 41cd14: 4c 09 e1 or %r12,%rcx - 41cd17: 48 89 4e 08 mov %rcx,0x8(%rsi) - 41cd1b: 48 83 4c 06 08 01 orq $0x1,0x8(%rsi,%rax,1) - 41cd21: e8 9a ca ff ff callq 4197c0 <_int_free> - 41cd26: e9 d1 fd ff ff jmpq 41cafc <_int_realloc+0x9c> - 41cd2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41cd30: 41 bd 67 21 4a 00 mov $0x4a2167,%r13d - 41cd36: 44 8b 25 33 da 2a 00 mov 0x2ada33(%rip),%r12d # 6ca770 - 41cd3d: 48 8d 7b 10 lea 0x10(%rbx),%rdi - 41cd41: 83 4d 04 04 orl $0x4,0x4(%rbp) - 41cd45: e9 5e ff ff ff jmpq 41cca8 <_int_realloc+0x248> - 41cd4a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41cd50: 48 8d 6c 24 20 lea 0x20(%rsp),%rbp - 41cd55: 48 8d 74 24 30 lea 0x30(%rsp),%rsi - 41cd5a: 31 c9 xor %ecx,%ecx - 41cd5c: ba 10 00 00 00 mov $0x10,%edx - 41cd61: c6 44 24 30 00 movb $0x0,0x30(%rsp) - 41cd66: e8 45 51 03 00 callq 451eb0 <_itoa_word> - 41cd6b: 48 39 e8 cmp %rbp,%rax - 41cd6e: 48 89 c3 mov %rax,%rbx - 41cd71: 76 25 jbe 41cd98 <_int_realloc+0x338> - 41cd73: 48 89 c2 mov %rax,%rdx - 41cd76: 48 89 c7 mov %rax,%rdi - 41cd79: be 30 00 00 00 mov $0x30,%esi - 41cd7e: 48 29 ea sub %rbp,%rdx - 41cd81: 4c 8d 70 ff lea -0x1(%rax),%r14 - 41cd85: 48 29 d7 sub %rdx,%rdi - 41cd88: e8 c3 35 fe ff callq 400350 <__rela_iplt_end+0x88> - 41cd8d: 48 8d 44 24 1f lea 0x1f(%rsp),%rax - 41cd92: 4c 29 f0 sub %r14,%rax - 41cd95: 48 01 c3 add %rax,%rbx - 41cd98: 48 8b 05 21 05 2b 00 mov 0x2b0521(%rip),%rax # 6cd2c0 <__libc_argv> - 41cd9f: ba 38 20 4a 00 mov $0x4a2038,%edx - 41cda4: 44 89 e7 mov %r12d,%edi - 41cda7: 49 89 d8 mov %rbx,%r8 - 41cdaa: 4c 89 e9 mov %r13,%rcx - 41cdad: be a8 23 4a 00 mov $0x4a23a8,%esi - 41cdb2: 48 8b 00 mov (%rax),%rax - 41cdb5: 48 85 c0 test %rax,%rax - 41cdb8: 48 0f 45 d0 cmovne %rax,%rdx - 41cdbc: 31 c0 xor %eax,%eax - 41cdbe: 83 e7 02 and $0x2,%edi - 41cdc1: e8 fa 47 ff ff callq 4115c0 <__libc_message> - 41cdc6: 31 c0 xor %eax,%eax - 41cdc8: e9 33 fd ff ff jmpq 41cb00 <_int_realloc+0xa0> - 41cdcd: 0f 1f 00 nopl (%rax) - 41cdd0: 41 bd 83 21 4a 00 mov $0x4a2183,%r13d - 41cdd6: e9 5b ff ff ff jmpq 41cd36 <_int_realloc+0x2d6> - 41cddb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41cde0: 48 8d 73 10 lea 0x10(%rbx),%rsi - 41cde4: 4c 89 f7 mov %r14,%rdi - 41cde7: e8 34 f2 00 00 callq 42c020 - 41cdec: e9 6f fe ff ff jmpq 41cc60 <_int_realloc+0x200> - 41cdf1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41cdf8: 49 8b 46 f8 mov -0x8(%r14),%rax - 41cdfc: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 41ce00: 48 01 c2 add %rax,%rdx - 41ce03: 49 39 d5 cmp %rdx,%r13 - 41ce06: 0f 87 26 03 00 00 ja 41d132 <_int_realloc+0x6d2> - 41ce0c: 48 8b 4b 08 mov 0x8(%rbx),%rcx - 41ce10: e9 b4 fc ff ff jmpq 41cac9 <_int_realloc+0x69> - 41ce15: 0f 1f 00 nopl (%rax) - 41ce18: 4c 09 e9 or %r13,%rcx - 41ce1b: e9 e1 fe ff ff jmpq 41cd01 <_int_realloc+0x2a1> - 41ce20: 44 8b 15 49 d9 2a 00 mov 0x2ad949(%rip),%r10d # 6ca770 - 41ce27: 83 4d 04 04 orl $0x4,0x4(%rbp) - 41ce2b: 44 89 d0 mov %r10d,%eax - 41ce2e: 83 e0 05 and $0x5,%eax - 41ce31: 83 f8 05 cmp $0x5,%eax - 41ce34: 0f 84 4a 02 00 00 je 41d084 <_int_realloc+0x624> - 41ce3a: 41 f6 c2 01 test $0x1,%r10b - 41ce3e: 0f 85 d3 00 00 00 jne 41cf17 <_int_realloc+0x4b7> - 41ce44: 41 83 e2 02 and $0x2,%r10d - 41ce48: 0f 84 62 fd ff ff je 41cbb0 <_int_realloc+0x150> - 41ce4e: e8 ad 0d ff ff callq 40dc00 - 41ce53: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41ce58: 49 8d 45 20 lea 0x20(%r13),%rax - 41ce5c: 48 01 d7 add %rdx,%rdi - 41ce5f: 48 39 c7 cmp %rax,%rdi - 41ce62: 0f 82 58 fd ff ff jb 41cbc0 <_int_realloc+0x160> - 41ce68: 83 e1 07 and $0x7,%ecx - 41ce6b: b8 04 00 00 00 mov $0x4,%eax - 41ce70: 48 81 fd 00 a8 6c 00 cmp $0x6ca800,%rbp - 41ce77: 48 89 ca mov %rcx,%rdx - 41ce7a: 4c 0f 45 e0 cmovne %rax,%r12 - 41ce7e: 4a 8d 04 2b lea (%rbx,%r13,1),%rax - 41ce82: 4c 09 ea or %r13,%rdx - 41ce85: 4c 29 ef sub %r13,%rdi - 41ce88: 4c 09 e2 or %r12,%rdx - 41ce8b: 48 83 cf 01 or $0x1,%rdi - 41ce8f: 48 89 53 08 mov %rdx,0x8(%rbx) - 41ce93: 48 89 45 58 mov %rax,0x58(%rbp) - 41ce97: 48 89 78 08 mov %rdi,0x8(%rax) - 41ce9b: 48 8d 43 10 lea 0x10(%rbx),%rax - 41ce9f: e9 5c fc ff ff jmpq 41cb00 <_int_realloc+0xa0> - 41cea4: 0f 1f 40 00 nopl 0x0(%rax) - 41cea8: 44 89 e7 mov %r12d,%edi - 41ceab: 31 c0 xor %eax,%eax - 41cead: 4c 89 ea mov %r13,%rdx - 41ceb0: 83 e7 02 and $0x2,%edi - 41ceb3: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41ceb8: e8 03 47 ff ff callq 4115c0 <__libc_message> - 41cebd: 31 c0 xor %eax,%eax - 41cebf: e9 3c fc ff ff jmpq 41cb00 <_int_realloc+0xa0> - 41cec4: 44 8b 15 a5 d8 2a 00 mov 0x2ad8a5(%rip),%r10d # 6ca770 - 41cecb: 83 4d 04 04 orl $0x4,0x4(%rbp) - 41cecf: 44 89 d0 mov %r10d,%eax - 41ced2: 83 e0 05 and $0x5,%eax - 41ced5: 83 f8 05 cmp $0x5,%eax - 41ced8: 0f 84 ca 01 00 00 je 41d0a8 <_int_realloc+0x648> - 41cede: 41 f6 c2 01 test $0x1,%r10b - 41cee2: 0f 85 e2 00 00 00 jne 41cfca <_int_realloc+0x56a> - 41cee8: 41 f6 c2 02 test $0x2,%r10b - 41ceec: 0f 85 5c ff ff ff jne 41ce4e <_int_realloc+0x3ee> - 41cef2: 4d 8b 77 10 mov 0x10(%r15),%r14 - 41cef6: 49 8b 47 18 mov 0x18(%r15),%rax - 41cefa: 4d 3b 7e 18 cmp 0x18(%r14),%r15 - 41cefe: 0f 85 40 ff ff ff jne 41ce44 <_int_realloc+0x3e4> - 41cf04: 4c 3b 78 10 cmp 0x10(%rax),%r15 - 41cf08: 0f 84 4c fc ff ff je 41cb5a <_int_realloc+0xfa> - 41cf0e: 83 4d 04 04 orl $0x4,0x4(%rbp) - 41cf12: e9 23 ff ff ff jmpq 41ce3a <_int_realloc+0x3da> - 41cf17: 4c 8d 74 24 20 lea 0x20(%rsp),%r14 - 41cf1c: 48 8d 74 24 30 lea 0x30(%rsp),%rsi - 41cf21: 31 c9 xor %ecx,%ecx - 41cf23: 4c 89 ff mov %r15,%rdi - 41cf26: ba 10 00 00 00 mov $0x10,%edx - 41cf2b: 44 89 54 24 08 mov %r10d,0x8(%rsp) - 41cf30: 4c 89 0c 24 mov %r9,(%rsp) - 41cf34: c6 44 24 30 00 movb $0x0,0x30(%rsp) - 41cf39: e8 72 4f 03 00 callq 451eb0 <_itoa_word> - 41cf3e: 4c 39 f0 cmp %r14,%rax - 41cf41: 49 89 c7 mov %rax,%r15 - 41cf44: 4c 8b 0c 24 mov (%rsp),%r9 - 41cf48: 44 8b 54 24 08 mov 0x8(%rsp),%r10d - 41cf4d: 76 3e jbe 41cf8d <_int_realloc+0x52d> - 41cf4f: 4c 89 fa mov %r15,%rdx - 41cf52: 48 8d 40 ff lea -0x1(%rax),%rax - 41cf56: 4c 89 ff mov %r15,%rdi - 41cf59: 4c 29 f2 sub %r14,%rdx - 41cf5c: be 30 00 00 00 mov $0x30,%esi - 41cf61: 44 89 54 24 10 mov %r10d,0x10(%rsp) - 41cf66: 48 29 d7 sub %rdx,%rdi - 41cf69: 4c 89 4c 24 08 mov %r9,0x8(%rsp) - 41cf6e: 48 89 04 24 mov %rax,(%rsp) - 41cf72: e8 d9 33 fe ff callq 400350 <__rela_iplt_end+0x88> - 41cf77: 48 8d 44 24 1f lea 0x1f(%rsp),%rax - 41cf7c: 48 2b 04 24 sub (%rsp),%rax - 41cf80: 44 8b 54 24 10 mov 0x10(%rsp),%r10d - 41cf85: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 - 41cf8a: 49 01 c7 add %rax,%r15 - 41cf8d: 48 8b 05 2c 03 2b 00 mov 0x2b032c(%rip),%rax # 6cd2c0 <__libc_argv> - 41cf94: 44 89 d7 mov %r10d,%edi - 41cf97: ba 38 20 4a 00 mov $0x4a2038,%edx - 41cf9c: 4d 89 f8 mov %r15,%r8 - 41cf9f: b9 95 20 4a 00 mov $0x4a2095,%ecx - 41cfa4: be a8 23 4a 00 mov $0x4a23a8,%esi - 41cfa9: 4c 89 0c 24 mov %r9,(%rsp) - 41cfad: 48 8b 00 mov (%rax),%rax - 41cfb0: 48 85 c0 test %rax,%rax - 41cfb3: 48 0f 45 d0 cmovne %rax,%rdx - 41cfb7: 83 e7 02 and $0x2,%edi - 41cfba: 31 c0 xor %eax,%eax - 41cfbc: e8 ff 45 ff ff callq 4115c0 <__libc_message> - 41cfc1: 4c 8b 0c 24 mov (%rsp),%r9 - 41cfc5: e9 e6 fb ff ff jmpq 41cbb0 <_int_realloc+0x150> - 41cfca: 4c 8d 74 24 20 lea 0x20(%rsp),%r14 - 41cfcf: 48 8d 74 24 30 lea 0x30(%rsp),%rsi - 41cfd4: 31 c9 xor %ecx,%ecx - 41cfd6: ba 10 00 00 00 mov $0x10,%edx - 41cfdb: 4c 89 ff mov %r15,%rdi - 41cfde: 44 89 54 24 08 mov %r10d,0x8(%rsp) - 41cfe3: 4c 89 0c 24 mov %r9,(%rsp) - 41cfe7: c6 44 24 30 00 movb $0x0,0x30(%rsp) - 41cfec: e8 bf 4e 03 00 callq 451eb0 <_itoa_word> - 41cff1: 4c 39 f0 cmp %r14,%rax - 41cff4: 49 89 c0 mov %rax,%r8 - 41cff7: 4c 8b 0c 24 mov (%rsp),%r9 - 41cffb: 44 8b 54 24 08 mov 0x8(%rsp),%r10d - 41d000: 76 48 jbe 41d04a <_int_realloc+0x5ea> - 41d002: 4c 89 c2 mov %r8,%rdx - 41d005: 4c 89 c7 mov %r8,%rdi - 41d008: 48 8d 40 ff lea -0x1(%rax),%rax - 41d00c: 4c 29 f2 sub %r14,%rdx - 41d00f: be 30 00 00 00 mov $0x30,%esi - 41d014: 44 89 54 24 1c mov %r10d,0x1c(%rsp) - 41d019: 48 29 d7 sub %rdx,%rdi - 41d01c: 4c 89 4c 24 10 mov %r9,0x10(%rsp) - 41d021: 4c 89 44 24 08 mov %r8,0x8(%rsp) - 41d026: 48 89 04 24 mov %rax,(%rsp) - 41d02a: e8 21 33 fe ff callq 400350 <__rela_iplt_end+0x88> - 41d02f: 48 8d 44 24 1f lea 0x1f(%rsp),%rax - 41d034: 48 2b 04 24 sub (%rsp),%rax - 41d038: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 - 41d03d: 44 8b 54 24 1c mov 0x1c(%rsp),%r10d - 41d042: 4c 8b 4c 24 10 mov 0x10(%rsp),%r9 - 41d047: 49 01 c0 add %rax,%r8 - 41d04a: 48 8b 05 6f 02 2b 00 mov 0x2b026f(%rip),%rax # 6cd2c0 <__libc_argv> - 41d051: 44 89 d7 mov %r10d,%edi - 41d054: ba 38 20 4a 00 mov $0x4a2038,%edx - 41d059: b9 78 20 4a 00 mov $0x4a2078,%ecx - 41d05e: be a8 23 4a 00 mov $0x4a23a8,%esi - 41d063: 4c 89 0c 24 mov %r9,(%rsp) - 41d067: 48 8b 00 mov (%rax),%rax - 41d06a: 48 85 c0 test %rax,%rax - 41d06d: 48 0f 45 d0 cmovne %rax,%rdx - 41d071: 83 e7 02 and $0x2,%edi - 41d074: 31 c0 xor %eax,%eax - 41d076: e8 45 45 ff ff callq 4115c0 <__libc_message> - 41d07b: 4c 8b 0c 24 mov (%rsp),%r9 - 41d07f: e9 ba fa ff ff jmpq 41cb3e <_int_realloc+0xde> - 41d084: 44 89 d7 mov %r10d,%edi - 41d087: ba 95 20 4a 00 mov $0x4a2095,%edx - 41d08c: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41d091: 83 e7 02 and $0x2,%edi - 41d094: 31 c0 xor %eax,%eax - 41d096: 4c 89 0c 24 mov %r9,(%rsp) - 41d09a: e8 21 45 ff ff callq 4115c0 <__libc_message> - 41d09f: 4c 8b 0c 24 mov (%rsp),%r9 - 41d0a3: e9 08 fb ff ff jmpq 41cbb0 <_int_realloc+0x150> - 41d0a8: 44 89 d7 mov %r10d,%edi - 41d0ab: ba 78 20 4a 00 mov $0x4a2078,%edx - 41d0b0: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41d0b5: 83 e7 02 and $0x2,%edi - 41d0b8: 31 c0 xor %eax,%eax - 41d0ba: 4c 89 0c 24 mov %r9,(%rsp) - 41d0be: e8 fd 44 ff ff callq 4115c0 <__libc_message> - 41d0c3: 4c 8b 0c 24 mov (%rsp),%r9 - 41d0c7: e9 72 fa ff ff jmpq 41cb3e <_int_realloc+0xde> - 41d0cc: 8b 3d 9e d6 2a 00 mov 0x2ad69e(%rip),%edi # 6ca770 - 41d0d2: 48 89 e9 mov %rbp,%rcx - 41d0d5: 4c 89 fa mov %r15,%rdx - 41d0d8: be f0 23 4a 00 mov $0x4a23f0,%esi - 41d0dd: 4c 89 0c 24 mov %r9,(%rsp) - 41d0e1: e8 ca a1 ff ff callq 4172b0 - 41d0e6: 49 8b 47 20 mov 0x20(%r15),%rax - 41d0ea: 4c 8b 0c 24 mov (%rsp),%r9 - 41d0ee: e9 9a fa ff ff jmpq 41cb8d <_int_realloc+0x12d> - 41d0f3: 49 39 c7 cmp %rax,%r15 - 41d0f6: 74 6c je 41d164 <_int_realloc+0x704> - 41d0f8: 49 89 46 20 mov %rax,0x20(%r14) - 41d0fc: 49 8b 47 28 mov 0x28(%r15),%rax - 41d100: 49 89 46 28 mov %rax,0x28(%r14) - 41d104: 49 8b 47 20 mov 0x20(%r15),%rax - 41d108: 4c 89 70 28 mov %r14,0x28(%rax) - 41d10c: 49 8b 47 28 mov 0x28(%r15),%rax - 41d110: 4c 89 70 20 mov %r14,0x20(%rax) - 41d114: e9 97 fa ff ff jmpq 41cbb0 <_int_realloc+0x150> - 41d119: b9 58 2e 4a 00 mov $0x4a2e58,%ecx - 41d11e: ba a3 10 00 00 mov $0x10a3,%edx - 41d123: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41d128: bf a0 21 4a 00 mov $0x4a21a0,%edi - 41d12d: e8 ee 9c ff ff callq 416e20 <__malloc_assert> - 41d132: b9 58 2e 4a 00 mov $0x4a2e58,%ecx - 41d137: ba 0f 11 00 00 mov $0x110f,%edx - 41d13c: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41d141: bf 20 29 4a 00 mov $0x4a2920,%edi - 41d146: e8 d5 9c ff ff callq 416e20 <__malloc_assert> - 41d14b: b9 58 2e 4a 00 mov $0x4a2e58,%ecx - 41d150: ba eb 10 00 00 mov $0x10eb,%edx - 41d155: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41d15a: bf b9 21 4a 00 mov $0x4a21b9,%edi - 41d15f: e8 bc 9c ff ff callq 416e20 <__malloc_assert> - 41d164: 4d 89 76 28 mov %r14,0x28(%r14) - 41d168: 4d 89 76 20 mov %r14,0x20(%r14) - 41d16c: e9 3f fa ff ff jmpq 41cbb0 <_int_realloc+0x150> - 41d171: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41d176: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41d17d: 00 00 00 - -000000000041d180 : - 41d180: 41 57 push %r15 - 41d182: 41 56 push %r14 - 41d184: 41 55 push %r13 - 41d186: 41 54 push %r12 - 41d188: 55 push %rbp - 41d189: 53 push %rbx - 41d18a: 48 83 ec 48 sub $0x48,%rsp - 41d18e: 48 83 fe ff cmp $0xffffffffffffffff,%rsi - 41d192: 0f 84 98 04 00 00 je 41d630 - 41d198: 48 85 ff test %rdi,%rdi - 41d19b: 48 89 fd mov %rdi,%rbp - 41d19e: 48 89 f3 mov %rsi,%rbx - 41d1a1: 0f 84 49 05 00 00 je 41d6f0 - 41d1a7: 48 85 f6 test %rsi,%rsi - 41d1aa: 0f 84 b0 04 00 00 je 41d660 - 41d1b0: be 01 00 00 00 mov $0x1,%esi - 41d1b5: 31 c0 xor %eax,%eax - 41d1b7: 83 3d fe ff 2a 00 00 cmpl $0x0,0x2afffe(%rip) # 6cd1bc <__libc_multiple_threads> - 41d1be: 74 0c je 41d1cc - 41d1c0: f0 0f b1 35 38 d6 2a lock cmpxchg %esi,0x2ad638(%rip) # 6ca800 - 41d1c7: 00 - 41d1c8: 75 0b jne 41d1d5 - 41d1ca: eb 23 jmp 41d1ef - 41d1cc: 0f b1 35 2d d6 2a 00 cmpxchg %esi,0x2ad62d(%rip) # 6ca800 - 41d1d3: 74 1a je 41d1ef - 41d1d5: 48 8d 3d 24 d6 2a 00 lea 0x2ad624(%rip),%rdi # 6ca800 - 41d1dc: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41d1e3: e8 e8 53 02 00 callq 4425d0 <__lll_lock_wait_private> - 41d1e8: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41d1ef: 40 f6 c5 0f test $0xf,%bpl - 41d1f3: 0f 85 37 01 00 00 jne 41d330 - 41d1f9: 48 8d 7d f0 lea -0x10(%rbp),%rdi - 41d1fd: 48 8b 45 f8 mov -0x8(%rbp),%rax - 41d201: 48 89 fe mov %rdi,%rsi - 41d204: 48 89 f9 mov %rdi,%rcx - 41d207: 48 c1 e9 0b shr $0xb,%rcx - 41d20b: 48 c1 ee 03 shr $0x3,%rsi - 41d20f: 48 89 c2 mov %rax,%rdx - 41d212: 31 ce xor %ecx,%esi - 41d214: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx - 41d218: b9 02 00 00 00 mov $0x2,%ecx - 41d21d: 40 80 fe 01 cmp $0x1,%sil - 41d221: 0f 44 f1 cmove %ecx,%esi - 41d224: a8 02 test $0x2,%al - 41d226: 0f 84 d4 02 00 00 je 41d500 - 41d22c: 48 8b 05 4d df 2a 00 mov 0x2adf4d(%rip),%rax # 6cb180 <_dl_pagesize> - 41d233: 48 8d 48 ff lea -0x1(%rax),%rcx - 41d237: 48 89 e8 mov %rbp,%rax - 41d23a: 48 21 c8 and %rcx,%rax - 41d23d: 4c 8d 40 f0 lea -0x10(%rax),%r8 - 41d241: 49 f7 c0 ef ff ff ff test $0xffffffffffffffef,%r8 - 41d248: 74 36 je 41d280 - 41d24a: 4c 8d 40 ff lea -0x1(%rax),%r8 - 41d24e: 49 81 f8 fe 1f 00 00 cmp $0x1ffe,%r8 - 41d255: 77 29 ja 41d280 - 41d257: 4c 8d 40 c0 lea -0x40(%rax),%r8 - 41d25b: 49 f7 c0 bf ff ff ff test $0xffffffffffffffbf,%r8 - 41d262: 74 1c je 41d280 - 41d264: 4c 8d 80 00 ff ff ff lea -0x100(%rax),%r8 - 41d26b: 49 f7 c0 ff fe ff ff test $0xfffffffffffffeff,%r8 - 41d272: 0f 85 90 00 00 00 jne 41d308 - 41d278: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41d27f: 00 - 41d280: 48 8b 45 f8 mov -0x8(%rbp),%rax - 41d284: 45 31 ed xor %r13d,%r13d - 41d287: 83 e0 03 and $0x3,%eax - 41d28a: 48 83 f8 02 cmp $0x2,%rax - 41d28e: 0f 85 9f 00 00 00 jne 41d333 - 41d294: 48 8b 45 f0 mov -0x10(%rbp),%rax - 41d298: 49 89 f8 mov %rdi,%r8 - 41d29b: 49 29 c0 sub %rax,%r8 - 41d29e: 48 01 d0 add %rdx,%rax - 41d2a1: 4c 09 c0 or %r8,%rax - 41d2a4: 48 85 c8 test %rcx,%rax - 41d2a7: 0f 85 86 00 00 00 jne 41d333 - 41d2ad: 48 83 ea 01 sub $0x1,%rdx - 41d2b1: 40 0f b6 f6 movzbl %sil,%esi - 41d2b5: 4c 8d 04 17 lea (%rdi,%rdx,1),%r8 - 41d2b9: 41 0f b6 00 movzbl (%r8),%eax - 41d2bd: 48 39 f0 cmp %rsi,%rax - 41d2c0: 48 89 c1 mov %rax,%rcx - 41d2c3: 74 34 je 41d2f9 - 41d2c5: 48 85 c0 test %rax,%rax - 41d2c8: 74 69 je 41d333 - 41d2ca: 48 8d 48 10 lea 0x10(%rax),%rcx - 41d2ce: 48 39 ca cmp %rcx,%rdx - 41d2d1: 73 13 jae 41d2e6 - 41d2d3: eb 5e jmp 41d333 - 41d2d5: 0f 1f 00 nopl (%rax) - 41d2d8: 48 85 c0 test %rax,%rax - 41d2db: 74 53 je 41d330 - 41d2dd: 48 8d 48 10 lea 0x10(%rax),%rcx - 41d2e1: 48 39 d1 cmp %rdx,%rcx - 41d2e4: 77 4a ja 41d330 - 41d2e6: 48 29 c2 sub %rax,%rdx - 41d2e9: 4c 8d 04 17 lea (%rdi,%rdx,1),%r8 - 41d2ed: 41 0f b6 00 movzbl (%r8),%eax - 41d2f1: 48 39 f0 cmp %rsi,%rax - 41d2f4: 48 89 c1 mov %rax,%rcx - 41d2f7: 75 df jne 41d2d8 - 41d2f9: f7 d1 not %ecx - 41d2fb: 4c 89 44 24 18 mov %r8,0x18(%rsp) - 41d300: 49 89 fd mov %rdi,%r13 - 41d303: 41 88 08 mov %cl,(%r8) - 41d306: eb 2b jmp 41d333 - 41d308: 4c 8d 80 00 fc ff ff lea -0x400(%rax),%r8 - 41d30f: 49 f7 c0 ff fb ff ff test $0xfffffffffffffbff,%r8 - 41d316: 0f 84 64 ff ff ff je 41d280 - 41d31c: 48 3d 00 10 00 00 cmp $0x1000,%rax - 41d322: 0f 84 58 ff ff ff je 41d280 - 41d328: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41d32f: 00 - 41d330: 45 31 ed xor %r13d,%r13d - 41d333: 83 3d 82 fe 2a 00 00 cmpl $0x0,0x2afe82(%rip) # 6cd1bc <__libc_multiple_threads> - 41d33a: 74 0b je 41d347 - 41d33c: f0 ff 0d bd d4 2a 00 lock decl 0x2ad4bd(%rip) # 6ca800 - 41d343: 75 0a jne 41d34f - 41d345: eb 22 jmp 41d369 - 41d347: ff 0d b3 d4 2a 00 decl 0x2ad4b3(%rip) # 6ca800 - 41d34d: 74 1a je 41d369 - 41d34f: 48 8d 3d aa d4 2a 00 lea 0x2ad4aa(%rip),%rdi # 6ca800 - 41d356: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41d35d: e8 9e 52 02 00 callq 442600 <__lll_unlock_wake_private> - 41d362: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41d369: 4d 85 ed test %r13,%r13 - 41d36c: 0f 84 06 04 00 00 je 41d778 - 41d372: 4d 8b 75 08 mov 0x8(%r13),%r14 - 41d376: 4c 8d 4b 01 lea 0x1(%rbx),%r9 - 41d37a: 4c 89 4c 24 08 mov %r9,0x8(%rsp) - 41d37f: 49 83 e6 f8 and $0xfffffffffffffff8,%r14 - 41d383: 49 83 f9 bf cmp $0xffffffffffffffbf,%r9 - 41d387: 0f 87 a3 02 00 00 ja 41d630 - 41d38d: 4c 8d 7b 18 lea 0x18(%rbx),%r15 - 41d391: 41 bc 20 00 00 00 mov $0x20,%r12d - 41d397: be 01 00 00 00 mov $0x1,%esi - 41d39c: 4d 89 e2 mov %r12,%r10 - 41d39f: 4c 89 fa mov %r15,%rdx - 41d3a2: 48 83 e2 f0 and $0xfffffffffffffff0,%rdx - 41d3a6: 49 83 ff 20 cmp $0x20,%r15 - 41d3aa: 4c 0f 43 d2 cmovae %rdx,%r10 - 41d3ae: 31 c0 xor %eax,%eax - 41d3b0: 83 3d 05 fe 2a 00 00 cmpl $0x0,0x2afe05(%rip) # 6cd1bc <__libc_multiple_threads> - 41d3b7: 74 0c je 41d3c5 - 41d3b9: f0 0f b1 35 3f d4 2a lock cmpxchg %esi,0x2ad43f(%rip) # 6ca800 - 41d3c0: 00 - 41d3c1: 75 0b jne 41d3ce - 41d3c3: eb 23 jmp 41d3e8 - 41d3c5: 0f b1 35 34 d4 2a 00 cmpxchg %esi,0x2ad434(%rip) # 6ca800 - 41d3cc: 74 1a je 41d3e8 - 41d3ce: 48 8d 3d 2b d4 2a 00 lea 0x2ad42b(%rip),%rdi # 6ca800 - 41d3d5: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41d3dc: e8 ef 51 02 00 callq 4425d0 <__lll_lock_wait_private> - 41d3e1: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41d3e8: 41 f6 45 08 02 testb $0x2,0x8(%r13) - 41d3ed: 0f 85 dd 01 00 00 jne 41d5d0 - 41d3f3: 48 89 54 24 08 mov %rdx,0x8(%rsp) - 41d3f8: e8 e3 a6 ff ff callq 417ae0 - 41d3fd: 85 c0 test %eax,%eax - 41d3ff: 0f 88 4b 02 00 00 js 41d650 - 41d405: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 41d40a: 49 83 ff 20 cmp $0x20,%r15 - 41d40e: 4c 89 e1 mov %r12,%rcx - 41d411: 4c 89 ee mov %r13,%rsi - 41d414: bf 00 a8 6c 00 mov $0x6ca800,%edi - 41d419: 48 0f 43 ca cmovae %rdx,%rcx - 41d41d: 4c 89 f2 mov %r14,%rdx - 41d420: e8 3b f6 ff ff callq 41ca60 <_int_realloc> - 41d425: 48 89 c5 mov %rax,%rbp - 41d428: 48 85 ed test %rbp,%rbp - 41d42b: 0f 84 1f 02 00 00 je 41d650 - 41d431: 83 3d 84 fd 2a 00 00 cmpl $0x0,0x2afd84(%rip) # 6cd1bc <__libc_multiple_threads> - 41d438: 74 0b je 41d445 - 41d43a: f0 ff 0d bf d3 2a 00 lock decl 0x2ad3bf(%rip) # 6ca800 - 41d441: 75 0a jne 41d44d - 41d443: eb 22 jmp 41d467 - 41d445: ff 0d b5 d3 2a 00 decl 0x2ad3b5(%rip) # 6ca800 - 41d44b: 74 1a je 41d467 - 41d44d: 48 8d 3d ac d3 2a 00 lea 0x2ad3ac(%rip),%rdi # 6ca800 - 41d454: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41d45b: e8 a0 51 02 00 callq 442600 <__lll_unlock_wake_private> - 41d460: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41d467: 48 85 ed test %rbp,%rbp - 41d46a: 0f 84 90 02 00 00 je 41d700 - 41d470: 48 8d 45 f0 lea -0x10(%rbp),%rax - 41d474: be ff 00 00 00 mov $0xff,%esi - 41d479: 49 89 c0 mov %rax,%r8 - 41d47c: 48 c1 e8 0b shr $0xb,%rax - 41d480: 49 c1 e8 03 shr $0x3,%r8 - 41d484: 41 31 c0 xor %eax,%r8d - 41d487: b8 02 00 00 00 mov $0x2,%eax - 41d48c: 41 80 f8 01 cmp $0x1,%r8b - 41d490: 44 0f 44 c0 cmove %eax,%r8d - 41d494: 48 8b 45 f8 mov -0x8(%rbp),%rax - 41d498: 41 0f b6 f8 movzbl %r8b,%edi - 41d49c: 48 89 c2 mov %rax,%rdx - 41d49f: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx - 41d4a3: 48 8d 4a f0 lea -0x10(%rdx),%rcx - 41d4a7: 48 83 ea 08 sub $0x8,%rdx - 41d4ab: a8 02 test $0x2,%al - 41d4ad: 48 0f 44 ca cmove %rdx,%rcx - 41d4b1: 48 83 e9 01 sub $0x1,%rcx - 41d4b5: 48 39 cb cmp %rcx,%rbx - 41d4b8: 73 2e jae 41d4e8 - 41d4ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41d4c0: 48 89 ca mov %rcx,%rdx - 41d4c3: 48 29 da sub %rbx,%rdx - 41d4c6: 48 81 fa ff 00 00 00 cmp $0xff,%rdx - 41d4cd: 48 0f 47 d6 cmova %rsi,%rdx - 41d4d1: 48 8d 42 ff lea -0x1(%rdx),%rax - 41d4d5: 48 39 fa cmp %rdi,%rdx - 41d4d8: 48 0f 44 d0 cmove %rax,%rdx - 41d4dc: 88 54 0d 00 mov %dl,0x0(%rbp,%rcx,1) - 41d4e0: 48 29 d1 sub %rdx,%rcx - 41d4e3: 48 39 cb cmp %rcx,%rbx - 41d4e6: 72 d8 jb 41d4c0 - 41d4e8: 44 88 44 1d 00 mov %r8b,0x0(%rbp,%rbx,1) - 41d4ed: 48 89 e8 mov %rbp,%rax - 41d4f0: 48 83 c4 48 add $0x48,%rsp - 41d4f4: 5b pop %rbx - 41d4f5: 5d pop %rbp - 41d4f6: 41 5c pop %r12 - 41d4f8: 41 5d pop %r13 - 41d4fa: 41 5e pop %r14 - 41d4fc: 41 5f pop %r15 - 41d4fe: c3 retq - 41d4ff: 90 nop - 41d500: 8b 0d fe d2 2a 00 mov 0x2ad2fe(%rip),%ecx # 6ca804 - 41d506: 83 e1 02 and $0x2,%ecx - 41d509: 0f 84 f1 00 00 00 je 41d600 - 41d50f: 48 83 fa 1f cmp $0x1f,%rdx - 41d513: 0f 86 17 fe ff ff jbe 41d330 - 41d519: a8 08 test $0x8,%al - 41d51b: 0f 85 0f fe ff ff jne 41d330 - 41d521: f6 44 17 08 01 testb $0x1,0x8(%rdi,%rdx,1) - 41d526: 0f 84 04 fe ff ff je 41d330 - 41d52c: a8 01 test $0x1,%al - 41d52e: 75 2e jne 41d55e - 41d530: 48 8b 45 f0 mov -0x10(%rbp),%rax - 41d534: a8 0f test $0xf,%al - 41d536: 0f 85 f4 fd ff ff jne 41d330 - 41d53c: 85 c9 test %ecx,%ecx - 41d53e: 48 89 f9 mov %rdi,%rcx - 41d541: 0f 84 c0 01 00 00 je 41d707 - 41d547: 48 29 c1 sub %rax,%rcx - 41d54a: 48 8b 49 08 mov 0x8(%rcx),%rcx - 41d54e: 45 31 ed xor %r13d,%r13d - 41d551: 48 83 e1 f8 and $0xfffffffffffffff8,%rcx - 41d555: 48 39 c8 cmp %rcx,%rax - 41d558: 0f 85 d5 fd ff ff jne 41d333 - 41d55e: 48 83 c2 07 add $0x7,%rdx - 41d562: 40 0f b6 f6 movzbl %sil,%esi - 41d566: 4c 8d 04 17 lea (%rdi,%rdx,1),%r8 - 41d56a: 41 0f b6 00 movzbl (%r8),%eax - 41d56e: 48 39 c6 cmp %rax,%rsi - 41d571: 48 89 c1 mov %rax,%rcx - 41d574: 0f 84 7f fd ff ff je 41d2f9 - 41d57a: 48 85 c0 test %rax,%rax - 41d57d: 0f 84 ad fd ff ff je 41d330 - 41d583: 48 8d 48 10 lea 0x10(%rax),%rcx - 41d587: 48 39 ca cmp %rcx,%rdx - 41d58a: 73 22 jae 41d5ae - 41d58c: e9 9f fd ff ff jmpq 41d330 - 41d591: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41d598: 48 85 c0 test %rax,%rax - 41d59b: 0f 84 8f fd ff ff je 41d330 - 41d5a1: 48 8d 48 10 lea 0x10(%rax),%rcx - 41d5a5: 48 39 d1 cmp %rdx,%rcx - 41d5a8: 0f 87 82 fd ff ff ja 41d330 - 41d5ae: 48 29 c2 sub %rax,%rdx - 41d5b1: 4c 8d 04 17 lea (%rdi,%rdx,1),%r8 - 41d5b5: 41 0f b6 00 movzbl (%r8),%eax - 41d5b9: 48 39 c6 cmp %rax,%rsi - 41d5bc: 48 89 c1 mov %rax,%rcx - 41d5bf: 75 d7 jne 41d598 - 41d5c1: e9 33 fd ff ff jmpq 41d2f9 - 41d5c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41d5cd: 00 00 00 - 41d5d0: 4c 89 d6 mov %r10,%rsi - 41d5d3: 4c 89 ef mov %r13,%rdi - 41d5d6: 4c 89 54 24 10 mov %r10,0x10(%rsp) - 41d5db: e8 40 9a ff ff callq 417020 - 41d5e0: 48 85 c0 test %rax,%rax - 41d5e3: 4c 8b 54 24 10 mov 0x10(%rsp),%r10 - 41d5e8: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 - 41d5ed: 0f 84 29 01 00 00 je 41d71c - 41d5f3: 48 8d 68 10 lea 0x10(%rax),%rbp - 41d5f7: e9 2c fe ff ff jmpq 41d428 - 41d5fc: 0f 1f 40 00 nopl 0x0(%rax) - 41d600: 4c 8b 05 e9 d1 2a 00 mov 0x2ad1e9(%rip),%r8 # 6ca7f0 - 41d607: 4c 39 c7 cmp %r8,%rdi - 41d60a: 0f 82 20 fd ff ff jb 41d330 - 41d610: 4c 03 05 69 da 2a 00 add 0x2ada69(%rip),%r8 # 6cb080 - 41d617: 4c 8d 0c 17 lea (%rdi,%rdx,1),%r9 - 41d61b: 4d 39 c1 cmp %r8,%r9 - 41d61e: 0f 82 eb fe ff ff jb 41d50f - 41d624: e9 07 fd ff ff jmpq 41d330 - 41d629: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41d630: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41d637: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) - 41d63e: 48 83 c4 48 add $0x48,%rsp - 41d642: 31 c0 xor %eax,%eax - 41d644: 5b pop %rbx - 41d645: 5d pop %rbp - 41d646: 41 5c pop %r12 - 41d648: 41 5d pop %r13 - 41d64a: 41 5e pop %r14 - 41d64c: 41 5f pop %r15 - 41d64e: c3 retq - 41d64f: 90 nop - 41d650: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 41d655: 31 ed xor %ebp,%ebp - 41d657: f6 10 notb (%rax) - 41d659: e9 d3 fd ff ff jmpq 41d431 - 41d65e: 66 90 xchg %ax,%ax - 41d660: 31 f6 xor %esi,%esi - 41d662: e8 79 b3 ff ff callq 4189e0 - 41d667: 31 c0 xor %eax,%eax - 41d669: e9 82 fe ff ff jmpq 41d4f0 - 41d66e: 4c 8d 6c 24 20 lea 0x20(%rsp),%r13 - 41d673: 48 8d 74 24 30 lea 0x30(%rsp),%rsi - 41d678: 31 c9 xor %ecx,%ecx - 41d67a: 48 89 ef mov %rbp,%rdi - 41d67d: ba 10 00 00 00 mov $0x10,%edx - 41d682: c6 44 24 30 00 movb $0x0,0x30(%rsp) - 41d687: e8 24 48 03 00 callq 451eb0 <_itoa_word> - 41d68c: 4c 39 e8 cmp %r13,%rax - 41d68f: 48 89 c5 mov %rax,%rbp - 41d692: 76 25 jbe 41d6b9 - 41d694: 48 89 c2 mov %rax,%rdx - 41d697: 48 89 c7 mov %rax,%rdi - 41d69a: be 30 00 00 00 mov $0x30,%esi - 41d69f: 4c 29 ea sub %r13,%rdx - 41d6a2: 4c 8d 70 ff lea -0x1(%rax),%r14 - 41d6a6: 48 29 d7 sub %rdx,%rdi - 41d6a9: e8 a2 2c fe ff callq 400350 <__rela_iplt_end+0x88> - 41d6ae: 48 8d 44 24 1f lea 0x1f(%rsp),%rax - 41d6b3: 4c 29 f0 sub %r14,%rax - 41d6b6: 48 01 c5 add %rax,%rbp - 41d6b9: 48 8b 05 00 fc 2a 00 mov 0x2afc00(%rip),%rax # 6cd2c0 <__libc_argv> - 41d6c0: ba 38 20 4a 00 mov $0x4a2038,%edx - 41d6c5: 44 89 e7 mov %r12d,%edi - 41d6c8: 49 89 e8 mov %rbp,%r8 - 41d6cb: b9 c6 21 4a 00 mov $0x4a21c6,%ecx - 41d6d0: be a8 23 4a 00 mov $0x4a23a8,%esi - 41d6d5: 48 8b 00 mov (%rax),%rax - 41d6d8: 48 85 c0 test %rax,%rax - 41d6db: 48 0f 45 d0 cmovne %rax,%rdx - 41d6df: 83 e7 02 and $0x2,%edi - 41d6e2: 31 c0 xor %eax,%eax - 41d6e4: e8 d7 3e ff ff callq 4115c0 <__libc_message> - 41d6e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41d6f0: 31 f6 xor %esi,%esi - 41d6f2: 48 89 df mov %rbx,%rdi - 41d6f5: e8 26 f0 ff ff callq 41c720 - 41d6fa: e9 f1 fd ff ff jmpq 41d4f0 - 41d6ff: 90 nop - 41d700: 31 c0 xor %eax,%eax - 41d702: e9 e9 fd ff ff jmpq 41d4f0 - 41d707: 48 29 c1 sub %rax,%rcx - 41d70a: 48 3b 0d df d0 2a 00 cmp 0x2ad0df(%rip),%rcx # 6ca7f0 - 41d711: 0f 83 33 fe ff ff jae 41d54a - 41d717: e9 14 fc ff ff jmpq 41d330 - 41d71c: 49 8d 46 f8 lea -0x8(%r14),%rax - 41d720: 49 39 c2 cmp %rax,%r10 - 41d723: 0f 86 08 fd ff ff jbe 41d431 - 41d729: 4c 89 4c 24 08 mov %r9,0x8(%rsp) - 41d72e: e8 ad a3 ff ff callq 417ae0 - 41d733: 85 c0 test %eax,%eax - 41d735: 0f 88 15 ff ff ff js 41d650 - 41d73b: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 - 41d740: bf 00 a8 6c 00 mov $0x6ca800,%edi - 41d745: 4c 89 ce mov %r9,%rsi - 41d748: e8 f3 dd ff ff callq 41b540 <_int_malloc> - 41d74d: 48 85 c0 test %rax,%rax - 41d750: 49 89 c7 mov %rax,%r15 - 41d753: 0f 84 f7 fe ff ff je 41d650 - 41d759: 49 8d 56 f0 lea -0x10(%r14),%rdx - 41d75d: 48 89 ee mov %rbp,%rsi - 41d760: 48 89 c7 mov %rax,%rdi - 41d763: 4c 89 fd mov %r15,%rbp - 41d766: e8 b5 e8 00 00 callq 42c020 - 41d76b: 4c 89 ef mov %r13,%rdi - 41d76e: e8 7d a5 ff ff callq 417cf0 - 41d773: e9 b9 fc ff ff jmpq 41d431 - 41d778: 44 8b 25 f1 cf 2a 00 mov 0x2acff1(%rip),%r12d # 6ca770 - 41d77f: 83 0d 7e d0 2a 00 04 orl $0x4,0x2ad07e(%rip) # 6ca804 - 41d786: 44 89 e0 mov %r12d,%eax - 41d789: 83 e0 05 and $0x5,%eax - 41d78c: 83 f8 05 cmp $0x5,%eax - 41d78f: 74 1f je 41d7b0 - 41d791: 41 f6 c4 01 test $0x1,%r12b - 41d795: 0f 85 d3 fe ff ff jne 41d66e - 41d79b: 41 83 e4 02 and $0x2,%r12d - 41d79f: 0f 84 4b ff ff ff je 41d6f0 - 41d7a5: e8 56 04 ff ff callq 40dc00 - 41d7aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41d7b0: 44 89 e7 mov %r12d,%edi - 41d7b3: ba c6 21 4a 00 mov $0x4a21c6,%edx - 41d7b8: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41d7bd: 83 e7 02 and $0x2,%edi - 41d7c0: 31 c0 xor %eax,%eax - 41d7c2: e8 f9 3d ff ff callq 4115c0 <__libc_message> - 41d7c7: e9 24 ff ff ff jmpq 41d6f0 - 41d7cc: 0f 1f 40 00 nopl 0x0(%rax) - -000000000041d7d0 <__malloc_fork_lock_parent>: - 41d7d0: 8b 05 8e cf 2a 00 mov 0x2acf8e(%rip),%eax # 6ca764 <__libc_malloc_initialized> - 41d7d6: 85 c0 test %eax,%eax - 41d7d8: 0f 8e 94 00 00 00 jle 41d872 <__malloc_fork_lock_parent+0xa2> - 41d7de: be 01 00 00 00 mov $0x1,%esi - 41d7e3: 31 c0 xor %eax,%eax - 41d7e5: 83 3d d0 f9 2a 00 00 cmpl $0x0,0x2af9d0(%rip) # 6cd1bc <__libc_multiple_threads> - 41d7ec: 74 0c je 41d7fa <__malloc_fork_lock_parent+0x2a> - 41d7ee: f0 0f b1 35 2a ee 2a lock cmpxchg %esi,0x2aee2a(%rip) # 6cc620 - 41d7f5: 00 - 41d7f6: 75 0b jne 41d803 <__malloc_fork_lock_parent+0x33> - 41d7f8: eb 23 jmp 41d81d <__malloc_fork_lock_parent+0x4d> - 41d7fa: 0f b1 35 1f ee 2a 00 cmpxchg %esi,0x2aee1f(%rip) # 6cc620 - 41d801: 74 1a je 41d81d <__malloc_fork_lock_parent+0x4d> - 41d803: 48 8d 3d 16 ee 2a 00 lea 0x2aee16(%rip),%rdi # 6cc620 - 41d80a: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41d811: e8 ba 4d 02 00 callq 4425d0 <__lll_lock_wait_private> - 41d816: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41d81d: ba 00 a8 6c 00 mov $0x6ca800,%edx - 41d822: 41 b9 01 00 00 00 mov $0x1,%r9d - 41d828: 45 31 c0 xor %r8d,%r8d - 41d82b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41d830: 44 89 ce mov %r9d,%esi - 41d833: 44 89 c0 mov %r8d,%eax - 41d836: 83 3d 7f f9 2a 00 00 cmpl $0x0,0x2af97f(%rip) # 6cd1bc <__libc_multiple_threads> - 41d83d: 74 08 je 41d847 <__malloc_fork_lock_parent+0x77> - 41d83f: f0 0f b1 32 lock cmpxchg %esi,(%rdx) - 41d843: 75 07 jne 41d84c <__malloc_fork_lock_parent+0x7c> - 41d845: eb 1b jmp 41d862 <__malloc_fork_lock_parent+0x92> - 41d847: 0f b1 32 cmpxchg %esi,(%rdx) - 41d84a: 74 16 je 41d862 <__malloc_fork_lock_parent+0x92> - 41d84c: 48 8d 3a lea (%rdx),%rdi - 41d84f: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41d856: e8 75 4d 02 00 callq 4425d0 <__lll_lock_wait_private> - 41d85b: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41d862: 48 8b 92 68 08 00 00 mov 0x868(%rdx),%rdx - 41d869: 48 81 fa 00 a8 6c 00 cmp $0x6ca800,%rdx - 41d870: 75 be jne 41d830 <__malloc_fork_lock_parent+0x60> - 41d872: f3 c3 repz retq - 41d874: 66 90 xchg %ax,%ax - 41d876: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41d87d: 00 00 00 - -000000000041d880 <__malloc_fork_unlock_parent>: - 41d880: 8b 05 de ce 2a 00 mov 0x2acede(%rip),%eax # 6ca764 <__libc_malloc_initialized> - 41d886: 85 c0 test %eax,%eax - 41d888: 7e 76 jle 41d900 <__malloc_fork_unlock_parent+0x80> - 41d88a: ba 00 a8 6c 00 mov $0x6ca800,%edx - 41d88f: 90 nop - 41d890: 83 3d 25 f9 2a 00 00 cmpl $0x0,0x2af925(%rip) # 6cd1bc <__libc_multiple_threads> - 41d897: 74 07 je 41d8a0 <__malloc_fork_unlock_parent+0x20> - 41d899: f0 ff 0a lock decl (%rdx) - 41d89c: 75 06 jne 41d8a4 <__malloc_fork_unlock_parent+0x24> - 41d89e: eb 1a jmp 41d8ba <__malloc_fork_unlock_parent+0x3a> - 41d8a0: ff 0a decl (%rdx) - 41d8a2: 74 16 je 41d8ba <__malloc_fork_unlock_parent+0x3a> - 41d8a4: 48 8d 3a lea (%rdx),%rdi - 41d8a7: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41d8ae: e8 4d 4d 02 00 callq 442600 <__lll_unlock_wake_private> - 41d8b3: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41d8ba: 48 8b 92 68 08 00 00 mov 0x868(%rdx),%rdx - 41d8c1: 48 81 fa 00 a8 6c 00 cmp $0x6ca800,%rdx - 41d8c8: 75 c6 jne 41d890 <__malloc_fork_unlock_parent+0x10> - 41d8ca: 83 3d eb f8 2a 00 00 cmpl $0x0,0x2af8eb(%rip) # 6cd1bc <__libc_multiple_threads> - 41d8d1: 74 0b je 41d8de <__malloc_fork_unlock_parent+0x5e> - 41d8d3: f0 ff 0d 46 ed 2a 00 lock decl 0x2aed46(%rip) # 6cc620 - 41d8da: 75 0a jne 41d8e6 <__malloc_fork_unlock_parent+0x66> - 41d8dc: eb 22 jmp 41d900 <__malloc_fork_unlock_parent+0x80> - 41d8de: ff 0d 3c ed 2a 00 decl 0x2aed3c(%rip) # 6cc620 - 41d8e4: 74 1a je 41d900 <__malloc_fork_unlock_parent+0x80> - 41d8e6: 48 8d 3d 33 ed 2a 00 lea 0x2aed33(%rip),%rdi # 6cc620 - 41d8ed: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41d8f4: e8 07 4d 02 00 callq 442600 <__lll_unlock_wake_private> - 41d8f9: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41d900: f3 c3 repz retq - 41d902: 0f 1f 40 00 nopl 0x0(%rax) - 41d906: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41d90d: 00 00 00 - -000000000041d910 <__malloc_fork_unlock_child>: - 41d910: 8b 05 4e ce 2a 00 mov 0x2ace4e(%rip),%eax # 6ca764 <__libc_malloc_initialized> - 41d916: 85 c0 test %eax,%eax - 41d918: 0f 8e 85 00 00 00 jle 41d9a3 <__malloc_fork_unlock_child+0x93> - 41d91e: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax - 41d925: c7 05 01 ed 2a 00 00 movl $0x0,0x2aed01(%rip) # 6cc630 - 41d92c: 00 00 00 - 41d92f: 64 48 8b 08 mov %fs:(%rax),%rcx - 41d933: 48 85 c9 test %rcx,%rcx - 41d936: 74 0b je 41d943 <__malloc_fork_unlock_child+0x33> - 41d938: 48 c7 81 78 08 00 00 movq $0x1,0x878(%rcx) - 41d93f: 01 00 00 00 - 41d943: 48 c7 05 da ec 2a 00 movq $0x0,0x2aecda(%rip) # 6cc628 - 41d94a: 00 00 00 00 - 41d94e: 31 f6 xor %esi,%esi - 41d950: 31 d2 xor %edx,%edx - 41d952: b8 00 a8 6c 00 mov $0x6ca800,%eax - 41d957: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 41d95e: 00 00 - 41d960: 48 39 c8 cmp %rcx,%rax - 41d963: c7 00 00 00 00 00 movl $0x0,(%rax) - 41d969: 74 1a je 41d985 <__malloc_fork_unlock_child+0x75> - 41d96b: 48 89 90 70 08 00 00 mov %rdx,0x870(%rax) - 41d972: 48 c7 80 78 08 00 00 movq $0x0,0x878(%rax) - 41d979: 00 00 00 00 - 41d97d: 48 89 c2 mov %rax,%rdx - 41d980: be 01 00 00 00 mov $0x1,%esi - 41d985: 48 8b 80 68 08 00 00 mov 0x868(%rax),%rax - 41d98c: 48 3d 00 a8 6c 00 cmp $0x6ca800,%rax - 41d992: 75 cc jne 41d960 <__malloc_fork_unlock_child+0x50> - 41d994: 40 84 f6 test %sil,%sil - 41d997: 75 0c jne 41d9a5 <__malloc_fork_unlock_child+0x95> - 41d999: c7 05 7d ec 2a 00 00 movl $0x0,0x2aec7d(%rip) # 6cc620 - 41d9a0: 00 00 00 - 41d9a3: f3 c3 repz retq - 41d9a5: 48 89 15 7c ec 2a 00 mov %rdx,0x2aec7c(%rip) # 6cc628 - 41d9ac: eb eb jmp 41d999 <__malloc_fork_unlock_child+0x89> - 41d9ae: 66 90 xchg %ax,%ax - -000000000041d9b0 <__malloc_check_init>: - 41d9b0: 8b 05 52 ec 2a 00 mov 0x2aec52(%rip),%eax # 6cc608 - 41d9b6: 85 c0 test %eax,%eax - 41d9b8: 75 3e jne 41d9f8 <__malloc_check_init+0x48> - 41d9ba: c7 05 48 ec 2a 00 01 movl $0x1,0x2aec48(%rip) # 6cc60c - 41d9c1: 00 00 00 - 41d9c4: 48 c7 05 b9 cd 2a 00 movq $0x41c720,0x2acdb9(%rip) # 6ca788 <__malloc_hook> - 41d9cb: 20 c7 41 00 - 41d9cf: 48 c7 05 0e ec 2a 00 movq $0x4189e0,0x2aec0e(%rip) # 6cc5e8 <__free_hook> - 41d9d6: e0 89 41 00 - 41d9da: 48 c7 05 9b cd 2a 00 movq $0x41d180,0x2acd9b(%rip) # 6ca780 <__realloc_hook> - 41d9e1: 80 d1 41 00 - 41d9e5: 48 c7 05 88 cd 2a 00 movq $0x41c870,0x2acd88(%rip) # 6ca778 <__memalign_hook> - 41d9ec: 70 c8 41 00 - 41d9f0: c3 retq - 41d9f1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41d9f8: c7 05 06 ec 2a 00 00 movl $0x0,0x2aec06(%rip) # 6cc608 - 41d9ff: 00 00 00 - 41da02: c3 retq - 41da03: 0f 1f 00 nopl (%rax) - 41da06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41da0d: 00 00 00 - -000000000041da10 <__libc_malloc>: - 41da10: 55 push %rbp - 41da11: 53 push %rbx - 41da12: 48 83 ec 08 sub $0x8,%rsp - 41da16: 48 8b 05 6b cd 2a 00 mov 0x2acd6b(%rip),%rax # 6ca788 <__malloc_hook> - 41da1d: 48 85 c0 test %rax,%rax - 41da20: 0f 85 42 01 00 00 jne 41db68 <__libc_malloc+0x158> - 41da26: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax - 41da2d: 48 89 fd mov %rdi,%rbp - 41da30: 64 48 8b 18 mov %fs:(%rax),%rbx - 41da34: 48 85 db test %rbx,%rbx - 41da37: 74 0c je 41da45 <__libc_malloc+0x35> - 41da39: 8b 43 04 mov 0x4(%rbx),%eax - 41da3c: 83 e0 04 and $0x4,%eax - 41da3f: 0f 84 93 00 00 00 je 41dad8 <__libc_malloc+0xc8> - 41da45: e8 16 97 ff ff callq 417160 - 41da4a: 48 85 c0 test %rax,%rax - 41da4d: 48 89 c3 mov %rax,%rbx - 41da50: 0f 84 ba 00 00 00 je 41db10 <__libc_malloc+0x100> - 41da56: 48 89 ee mov %rbp,%rsi - 41da59: 48 89 df mov %rbx,%rdi - 41da5c: e8 df da ff ff callq 41b540 <_int_malloc> - 41da61: 48 85 c0 test %rax,%rax - 41da64: 48 89 c2 mov %rax,%rdx - 41da67: 0f 84 cb 00 00 00 je 41db38 <__libc_malloc+0x128> - 41da6d: 83 3d 48 f7 2a 00 00 cmpl $0x0,0x2af748(%rip) # 6cd1bc <__libc_multiple_threads> - 41da74: 74 07 je 41da7d <__libc_malloc+0x6d> - 41da76: f0 ff 0b lock decl (%rbx) - 41da79: 75 06 jne 41da81 <__libc_malloc+0x71> - 41da7b: eb 1a jmp 41da97 <__libc_malloc+0x87> - 41da7d: ff 0b decl (%rbx) - 41da7f: 74 16 je 41da97 <__libc_malloc+0x87> - 41da81: 48 8d 3b lea (%rbx),%rdi - 41da84: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41da8b: e8 70 4b 02 00 callq 442600 <__lll_unlock_wake_private> - 41da90: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41da97: 48 85 d2 test %rdx,%rdx - 41da9a: 0f 84 d8 00 00 00 je 41db78 <__libc_malloc+0x168> - 41daa0: 48 8b 42 f8 mov -0x8(%rdx),%rax - 41daa4: a8 02 test $0x2,%al - 41daa6: 75 1f jne 41dac7 <__libc_malloc+0xb7> - 41daa8: a8 04 test $0x4,%al - 41daaa: b9 00 a8 6c 00 mov $0x6ca800,%ecx - 41daaf: 74 0d je 41dabe <__libc_malloc+0xae> - 41dab1: 48 8d 42 f0 lea -0x10(%rdx),%rax - 41dab5: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax - 41dabb: 48 8b 08 mov (%rax),%rcx - 41dabe: 48 39 d9 cmp %rbx,%rcx - 41dac1: 0f 85 b8 00 00 00 jne 41db7f <__libc_malloc+0x16f> - 41dac7: 48 89 d0 mov %rdx,%rax - 41daca: 48 83 c4 08 add $0x8,%rsp - 41dace: 5b pop %rbx - 41dacf: 5d pop %rbp - 41dad0: c3 retq - 41dad1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41dad8: be 01 00 00 00 mov $0x1,%esi - 41dadd: 83 3d d8 f6 2a 00 00 cmpl $0x0,0x2af6d8(%rip) # 6cd1bc <__libc_multiple_threads> - 41dae4: 74 08 je 41daee <__libc_malloc+0xde> - 41dae6: f0 0f b1 33 lock cmpxchg %esi,(%rbx) - 41daea: 75 07 jne 41daf3 <__libc_malloc+0xe3> - 41daec: eb 1b jmp 41db09 <__libc_malloc+0xf9> - 41daee: 0f b1 33 cmpxchg %esi,(%rbx) - 41daf1: 74 16 je 41db09 <__libc_malloc+0xf9> - 41daf3: 48 8d 3b lea (%rbx),%rdi - 41daf6: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41dafd: e8 ce 4a 02 00 callq 4425d0 <__lll_lock_wait_private> - 41db02: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41db09: e9 48 ff ff ff jmpq 41da56 <__libc_malloc+0x46> - 41db0e: 66 90 xchg %ax,%ax - 41db10: 31 f6 xor %esi,%esi - 41db12: 48 89 ef mov %rbp,%rdi - 41db15: e8 36 99 ff ff callq 417450 - 41db1a: 48 89 ee mov %rbp,%rsi - 41db1d: 48 89 c7 mov %rax,%rdi - 41db20: 48 89 c3 mov %rax,%rbx - 41db23: e8 18 da ff ff callq 41b540 <_int_malloc> - 41db28: 48 85 c0 test %rax,%rax - 41db2b: 48 89 c2 mov %rax,%rdx - 41db2e: 75 25 jne 41db55 <__libc_malloc+0x145> - 41db30: 48 85 db test %rbx,%rbx - 41db33: 74 20 je 41db55 <__libc_malloc+0x145> - 41db35: 0f 1f 00 nopl (%rax) - 41db38: 90 nop - 41db39: 48 89 df mov %rbx,%rdi - 41db3c: 48 89 ee mov %rbp,%rsi - 41db3f: e8 ac 9e ff ff callq 4179f0 - 41db44: 48 89 ee mov %rbp,%rsi - 41db47: 48 89 c7 mov %rax,%rdi - 41db4a: 48 89 c3 mov %rax,%rbx - 41db4d: e8 ee d9 ff ff callq 41b540 <_int_malloc> - 41db52: 48 89 c2 mov %rax,%rdx - 41db55: 48 85 db test %rbx,%rbx - 41db58: 0f 85 0f ff ff ff jne 41da6d <__libc_malloc+0x5d> - 41db5e: e9 34 ff ff ff jmpq 41da97 <__libc_malloc+0x87> - 41db63: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41db68: 48 8b 74 24 18 mov 0x18(%rsp),%rsi - 41db6d: 48 83 c4 08 add $0x8,%rsp - 41db71: 5b pop %rbx - 41db72: 5d pop %rbp - 41db73: ff e0 jmpq *%rax - 41db75: 0f 1f 00 nopl (%rax) - 41db78: 31 c0 xor %eax,%eax - 41db7a: e9 4b ff ff ff jmpq 41daca <__libc_malloc+0xba> - 41db7f: b9 48 2e 4a 00 mov $0x4a2e48,%ecx - 41db84: ba 6f 0b 00 00 mov $0xb6f,%edx - 41db89: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41db8e: bf 58 29 4a 00 mov $0x4a2958,%edi - 41db93: e8 88 92 ff ff callq 416e20 <__malloc_assert> - 41db98: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41db9f: 00 - -000000000041dba0 <__malloc_get_state>: - 41dba0: 53 push %rbx - 41dba1: bf a8 08 00 00 mov $0x8a8,%edi - 41dba6: e8 65 fe ff ff callq 41da10 <__libc_malloc> - 41dbab: 48 85 c0 test %rax,%rax - 41dbae: 0f 84 f5 01 00 00 je 41dda9 <__malloc_get_state+0x209> - 41dbb4: 48 89 c3 mov %rax,%rbx - 41dbb7: be 01 00 00 00 mov $0x1,%esi - 41dbbc: 31 c0 xor %eax,%eax - 41dbbe: 83 3d f7 f5 2a 00 00 cmpl $0x0,0x2af5f7(%rip) # 6cd1bc <__libc_multiple_threads> - 41dbc5: 74 0c je 41dbd3 <__malloc_get_state+0x33> - 41dbc7: f0 0f b1 35 31 cc 2a lock cmpxchg %esi,0x2acc31(%rip) # 6ca800 - 41dbce: 00 - 41dbcf: 75 0b jne 41dbdc <__malloc_get_state+0x3c> - 41dbd1: eb 23 jmp 41dbf6 <__malloc_get_state+0x56> - 41dbd3: 0f b1 35 26 cc 2a 00 cmpxchg %esi,0x2acc26(%rip) # 6ca800 - 41dbda: 74 1a je 41dbf6 <__malloc_get_state+0x56> - 41dbdc: 48 8d 3d 1d cc 2a 00 lea 0x2acc1d(%rip),%rdi # 6ca800 - 41dbe3: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41dbea: e8 e1 49 02 00 callq 4425d0 <__lll_lock_wait_private> - 41dbef: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41dbf6: bf 00 a8 6c 00 mov $0x6ca800,%edi - 41dbfb: e8 30 a2 ff ff callq 417e30 - 41dc00: 48 8b 05 51 cc 2a 00 mov 0x2acc51(%rip),%rax # 6ca858 - 41dc07: 48 c7 03 41 45 4c 44 movq $0x444c4541,(%rbx) - 41dc0e: ba 58 a8 6c 00 mov $0x6ca858,%edx - 41dc13: 48 c7 43 08 04 00 00 movq $0x4,0x8(%rbx) - 41dc1a: 00 - 41dc1b: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) - 41dc22: 00 - 41dc23: 48 8d 4b 38 lea 0x38(%rbx),%rcx - 41dc27: 48 c7 43 18 00 00 00 movq $0x0,0x18(%rbx) - 41dc2e: 00 - 41dc2f: 48 c7 43 28 00 00 00 movq $0x0,0x28(%rbx) - 41dc36: 00 - 41dc37: 48 89 43 20 mov %rax,0x20(%rbx) - 41dc3b: eb 1f jmp 41dc5c <__malloc_get_state+0xbc> - 41dc3d: 0f 1f 00 nopl (%rax) - 41dc40: 48 89 71 f8 mov %rsi,-0x8(%rcx) - 41dc44: 48 8b 72 18 mov 0x18(%rdx),%rsi - 41dc48: 48 89 31 mov %rsi,(%rcx) - 41dc4b: 48 83 c2 10 add $0x10,%rdx - 41dc4f: 48 83 c1 10 add $0x10,%rcx - 41dc53: 48 81 fa 48 b0 6c 00 cmp $0x6cb048,%rdx - 41dc5a: 74 24 je 41dc80 <__malloc_get_state+0xe0> - 41dc5c: 48 8b 72 10 mov 0x10(%rdx),%rsi - 41dc60: 48 39 f2 cmp %rsi,%rdx - 41dc63: 75 db jne 41dc40 <__malloc_get_state+0xa0> - 41dc65: 48 c7 01 00 00 00 00 movq $0x0,(%rcx) - 41dc6c: 48 c7 41 f8 00 00 00 movq $0x0,-0x8(%rcx) - 41dc73: 00 - 41dc74: eb d5 jmp 41dc4b <__malloc_get_state+0xab> - 41dc76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41dc7d: 00 00 00 - 41dc80: 48 8b 05 69 cb 2a 00 mov 0x2acb69(%rip),%rax # 6ca7f0 - 41dc87: 48 89 83 20 08 00 00 mov %rax,0x820(%rbx) - 41dc8e: 48 8b 05 eb d3 2a 00 mov 0x2ad3eb(%rip),%rax # 6cb080 - 41dc95: 89 83 28 08 00 00 mov %eax,0x828(%rbx) - 41dc9b: 48 8b 05 fe ca 2a 00 mov 0x2acafe(%rip),%rax # 6ca7a0 - 41dca2: 48 89 83 30 08 00 00 mov %rax,0x830(%rbx) - 41dca9: 48 8b 05 f8 ca 2a 00 mov 0x2acaf8(%rip),%rax # 6ca7a8 - 41dcb0: 48 89 83 38 08 00 00 mov %rax,0x838(%rbx) - 41dcb7: 8b 05 0f cb 2a 00 mov 0x2acb0f(%rip),%eax # 6ca7cc - 41dcbd: 89 83 40 08 00 00 mov %eax,0x840(%rbx) - 41dcc3: 48 8b 05 e6 ca 2a 00 mov 0x2acae6(%rip),%rax # 6ca7b0 - 41dcca: 48 89 83 48 08 00 00 mov %rax,0x848(%rbx) - 41dcd1: 8b 05 99 ca 2a 00 mov 0x2aca99(%rip),%eax # 6ca770 - 41dcd7: 89 83 50 08 00 00 mov %eax,0x850(%rbx) - 41dcdd: 48 8b 05 a4 d3 2a 00 mov 0x2ad3a4(%rip),%rax # 6cb088 - 41dce4: 48 c7 83 60 08 00 00 movq $0x0,0x860(%rbx) - 41dceb: 00 00 00 00 - 41dcef: 48 89 83 58 08 00 00 mov %rax,0x858(%rbx) - 41dcf6: 8b 05 cc ca 2a 00 mov 0x2acacc(%rip),%eax # 6ca7c8 - 41dcfc: 89 83 68 08 00 00 mov %eax,0x868(%rbx) - 41dd02: 8b 05 c8 ca 2a 00 mov 0x2acac8(%rip),%eax # 6ca7d0 - 41dd08: 89 83 6c 08 00 00 mov %eax,0x86c(%rbx) - 41dd0e: 48 8b 05 c3 ca 2a 00 mov 0x2acac3(%rip),%rax # 6ca7d8 - 41dd15: 48 89 83 70 08 00 00 mov %rax,0x870(%rbx) - 41dd1c: 48 8b 05 bd ca 2a 00 mov 0x2acabd(%rip),%rax # 6ca7e0 - 41dd23: 48 89 83 78 08 00 00 mov %rax,0x878(%rbx) - 41dd2a: 8b 05 dc e8 2a 00 mov 0x2ae8dc(%rip),%eax # 6cc60c - 41dd30: 89 83 80 08 00 00 mov %eax,0x880(%rbx) - 41dd36: 48 8b 05 fb e8 2a 00 mov 0x2ae8fb(%rip),%rax # 6cc638 - 41dd3d: 48 89 83 88 08 00 00 mov %rax,0x888(%rbx) - 41dd44: 48 8b 05 6d ca 2a 00 mov 0x2aca6d(%rip),%rax # 6ca7b8 - 41dd4b: 48 89 83 90 08 00 00 mov %rax,0x890(%rbx) - 41dd52: 48 8b 05 67 ca 2a 00 mov 0x2aca67(%rip),%rax # 6ca7c0 - 41dd59: 48 89 83 98 08 00 00 mov %rax,0x898(%rbx) - 41dd60: 48 8b 05 01 ca 2a 00 mov 0x2aca01(%rip),%rax # 6ca768 - 41dd67: 48 89 83 a0 08 00 00 mov %rax,0x8a0(%rbx) - 41dd6e: 83 3d 47 f4 2a 00 00 cmpl $0x0,0x2af447(%rip) # 6cd1bc <__libc_multiple_threads> - 41dd75: 74 0b je 41dd82 <__malloc_get_state+0x1e2> - 41dd77: f0 ff 0d 82 ca 2a 00 lock decl 0x2aca82(%rip) # 6ca800 - 41dd7e: 75 0a jne 41dd8a <__malloc_get_state+0x1ea> - 41dd80: eb 22 jmp 41dda4 <__malloc_get_state+0x204> - 41dd82: ff 0d 78 ca 2a 00 decl 0x2aca78(%rip) # 6ca800 - 41dd88: 74 1a je 41dda4 <__malloc_get_state+0x204> - 41dd8a: 48 8d 3d 6f ca 2a 00 lea 0x2aca6f(%rip),%rdi # 6ca800 - 41dd91: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41dd98: e8 63 48 02 00 callq 442600 <__lll_unlock_wake_private> - 41dd9d: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41dda4: 48 89 d8 mov %rbx,%rax - 41dda7: 5b pop %rbx - 41dda8: c3 retq - 41dda9: 31 c0 xor %eax,%eax - 41ddab: 5b pop %rbx - 41ddac: c3 retq - 41ddad: 0f 1f 00 nopl (%rax) - -000000000041ddb0 <__cfree>: - 41ddb0: 41 55 push %r13 - 41ddb2: 41 54 push %r12 - 41ddb4: 55 push %rbp - 41ddb5: 53 push %rbx - 41ddb6: 48 83 ec 28 sub $0x28,%rsp - 41ddba: 48 8b 05 27 e8 2a 00 mov 0x2ae827(%rip),%rax # 6cc5e8 <__free_hook> - 41ddc1: 48 85 c0 test %rax,%rax - 41ddc4: 0f 85 c6 00 00 00 jne 41de90 <__cfree+0xe0> - 41ddca: 48 85 ff test %rdi,%rdi - 41ddcd: 74 28 je 41ddf7 <__cfree+0x47> - 41ddcf: 48 8b 47 f8 mov -0x8(%rdi),%rax - 41ddd3: 48 8d 77 f0 lea -0x10(%rdi),%rsi - 41ddd7: a8 02 test $0x2,%al - 41ddd9: 75 2d jne 41de08 <__cfree+0x58> - 41dddb: a8 04 test $0x4,%al - 41dddd: bf 00 a8 6c 00 mov $0x6ca800,%edi - 41dde2: 74 0c je 41ddf0 <__cfree+0x40> - 41dde4: 48 89 f0 mov %rsi,%rax - 41dde7: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax - 41dded: 48 8b 38 mov (%rax),%rdi - 41ddf0: 31 d2 xor %edx,%edx - 41ddf2: e8 c9 b9 ff ff callq 4197c0 <_int_free> - 41ddf7: 48 83 c4 28 add $0x28,%rsp - 41ddfb: 5b pop %rbx - 41ddfc: 5d pop %rbp - 41ddfd: 41 5c pop %r12 - 41ddff: 41 5d pop %r13 - 41de01: c3 retq - 41de02: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41de08: 8b 15 c6 c9 2a 00 mov 0x2ac9c6(%rip),%edx # 6ca7d4 - 41de0e: 85 d2 test %edx,%edx - 41de10: 75 2e jne 41de40 <__cfree+0x90> - 41de12: 48 3b 05 97 c9 2a 00 cmp 0x2ac997(%rip),%rax # 6ca7b0 - 41de19: 76 25 jbe 41de40 <__cfree+0x90> - 41de1b: 48 3d 00 00 00 02 cmp $0x2000000,%rax - 41de21: 77 1d ja 41de40 <__cfree+0x90> - 41de23: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 41de27: 48 8d 14 00 lea (%rax,%rax,1),%rdx - 41de2b: 48 89 05 7e c9 2a 00 mov %rax,0x2ac97e(%rip) # 6ca7b0 - 41de32: 48 89 15 67 c9 2a 00 mov %rdx,0x2ac967(%rip) # 6ca7a0 - 41de39: 90 nop - 41de3a: eb 08 jmp 41de44 <__cfree+0x94> - 41de3c: 0f 1f 40 00 nopl 0x0(%rax) - 41de40: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 41de44: 48 8b 4f f0 mov -0x10(%rdi),%rcx - 41de48: 48 89 f2 mov %rsi,%rdx - 41de4b: 48 8d 34 01 lea (%rcx,%rax,1),%rsi - 41de4f: 48 8b 05 2a d3 2a 00 mov 0x2ad32a(%rip),%rax # 6cb180 <_dl_pagesize> - 41de56: 48 29 ca sub %rcx,%rdx - 41de59: 48 89 d1 mov %rdx,%rcx - 41de5c: 48 09 f1 or %rsi,%rcx - 41de5f: 48 83 e8 01 sub $0x1,%rax - 41de63: 48 85 c8 test %rcx,%rax - 41de66: 75 40 jne 41dea8 <__cfree+0xf8> - 41de68: f0 ff 0d 59 c9 2a 00 lock decl 0x2ac959(%rip) # 6ca7c8 - 41de6f: 48 89 f0 mov %rsi,%rax - 41de72: 48 f7 d8 neg %rax - 41de75: f0 48 01 05 5b c9 2a lock add %rax,0x2ac95b(%rip) # 6ca7d8 - 41de7c: 00 - 41de7d: 48 89 d7 mov %rdx,%rdi - 41de80: e8 2b 1e 02 00 callq 43fcb0 <__munmap> - 41de85: 48 83 c4 28 add $0x28,%rsp - 41de89: 5b pop %rbx - 41de8a: 5d pop %rbp - 41de8b: 41 5c pop %r12 - 41de8d: 41 5d pop %r13 - 41de8f: c3 retq - 41de90: 48 8b 74 24 48 mov 0x48(%rsp),%rsi - 41de95: ff d0 callq *%rax - 41de97: 48 83 c4 28 add $0x28,%rsp - 41de9b: 5b pop %rbx - 41de9c: 5d pop %rbp - 41de9d: 41 5c pop %r12 - 41de9f: 41 5d pop %r13 - 41dea1: c3 retq - 41dea2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41dea8: 8b 1d c2 c8 2a 00 mov 0x2ac8c2(%rip),%ebx # 6ca770 - 41deae: 89 d8 mov %ebx,%eax - 41deb0: 83 e0 05 and $0x5,%eax - 41deb3: 83 f8 05 cmp $0x5,%eax - 41deb6: 0f 84 8b 00 00 00 je 41df47 <__cfree+0x197> - 41debc: f6 c3 01 test $0x1,%bl - 41debf: 75 0f jne 41ded0 <__cfree+0x120> - 41dec1: 83 e3 02 and $0x2,%ebx - 41dec4: 0f 84 2d ff ff ff je 41ddf7 <__cfree+0x47> - 41deca: e8 31 fd fe ff callq 40dc00 - 41decf: 90 nop - 41ded0: 48 8d 74 24 10 lea 0x10(%rsp),%rsi - 41ded5: 31 c9 xor %ecx,%ecx - 41ded7: ba 10 00 00 00 mov $0x10,%edx - 41dedc: c6 44 24 10 00 movb $0x0,0x10(%rsp) - 41dee1: e8 ca 3f 03 00 callq 451eb0 <_itoa_word> - 41dee6: 48 39 e0 cmp %rsp,%rax - 41dee9: 48 89 c5 mov %rax,%rbp - 41deec: 76 25 jbe 41df13 <__cfree+0x163> - 41deee: 48 89 c2 mov %rax,%rdx - 41def1: 48 89 c7 mov %rax,%rdi - 41def4: be 30 00 00 00 mov $0x30,%esi - 41def9: 48 29 e2 sub %rsp,%rdx - 41defc: 4c 8d 68 ff lea -0x1(%rax),%r13 - 41df00: 48 29 d7 sub %rdx,%rdi - 41df03: e8 48 24 fe ff callq 400350 <__rela_iplt_end+0x88> - 41df08: 48 8d 44 24 ff lea -0x1(%rsp),%rax - 41df0d: 4c 29 e8 sub %r13,%rax - 41df10: 48 01 c5 add %rax,%rbp - 41df13: 48 8b 05 a6 f3 2a 00 mov 0x2af3a6(%rip),%rax # 6cd2c0 <__libc_argv> - 41df1a: ba 38 20 4a 00 mov $0x4a2038,%edx - 41df1f: 49 89 e8 mov %rbp,%r8 - 41df22: b9 d0 23 4a 00 mov $0x4a23d0,%ecx - 41df27: be a8 23 4a 00 mov $0x4a23a8,%esi - 41df2c: 48 8b 00 mov (%rax),%rax - 41df2f: 48 85 c0 test %rax,%rax - 41df32: 48 0f 45 d0 cmovne %rax,%rdx - 41df36: 83 e3 02 and $0x2,%ebx - 41df39: 31 c0 xor %eax,%eax - 41df3b: 89 df mov %ebx,%edi - 41df3d: e8 7e 36 ff ff callq 4115c0 <__libc_message> - 41df42: e9 b0 fe ff ff jmpq 41ddf7 <__cfree+0x47> - 41df47: 83 e3 02 and $0x2,%ebx - 41df4a: ba d0 23 4a 00 mov $0x4a23d0,%edx - 41df4f: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41df54: 89 df mov %ebx,%edi - 41df56: 31 c0 xor %eax,%eax - 41df58: e8 63 36 ff ff callq 4115c0 <__libc_message> - 41df5d: e9 95 fe ff ff jmpq 41ddf7 <__cfree+0x47> - 41df62: 0f 1f 40 00 nopl 0x0(%rax) - 41df66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41df6d: 00 00 00 - -000000000041df70 <__libc_realloc>: - 41df70: 41 57 push %r15 - 41df72: 41 56 push %r14 - 41df74: 41 55 push %r13 - 41df76: 41 54 push %r12 - 41df78: 49 89 f5 mov %rsi,%r13 - 41df7b: 55 push %rbp - 41df7c: 53 push %rbx - 41df7d: 48 89 fb mov %rdi,%rbx - 41df80: 48 83 ec 38 sub $0x38,%rsp - 41df84: 48 8b 05 f5 c7 2a 00 mov 0x2ac7f5(%rip),%rax # 6ca780 <__realloc_hook> - 41df8b: 48 85 c0 test %rax,%rax - 41df8e: 0f 85 04 02 00 00 jne 41e198 <__libc_realloc+0x228> - 41df94: 48 85 f6 test %rsi,%rsi - 41df97: 75 09 jne 41dfa2 <__libc_realloc+0x32> - 41df99: 48 85 ff test %rdi,%rdi - 41df9c: 0f 85 6e 02 00 00 jne 41e210 <__libc_realloc+0x2a0> - 41dfa2: 48 85 db test %rbx,%rbx - 41dfa5: 0f 84 15 03 00 00 je 41e2c0 <__libc_realloc+0x350> - 41dfab: 48 8b 43 f8 mov -0x8(%rbx),%rax - 41dfaf: 4c 8d 73 f0 lea -0x10(%rbx),%r14 - 41dfb3: 49 89 c7 mov %rax,%r15 - 41dfb6: 48 89 c1 mov %rax,%rcx - 41dfb9: 49 83 e7 f8 and $0xfffffffffffffff8,%r15 - 41dfbd: 83 e1 02 and $0x2,%ecx - 41dfc0: 74 7e je 41e040 <__libc_realloc+0xd0> - 41dfc2: 4c 89 f8 mov %r15,%rax - 41dfc5: 48 f7 d8 neg %rax - 41dfc8: 49 39 c6 cmp %rax,%r14 - 41dfcb: 0f 87 3f 03 00 00 ja 41e310 <__libc_realloc+0x3a0> - 41dfd1: 41 f6 c6 0f test $0xf,%r14b - 41dfd5: 0f 85 35 03 00 00 jne 41e310 <__libc_realloc+0x3a0> - 41dfdb: 45 31 e4 xor %r12d,%r12d - 41dfde: 49 83 fd bf cmp $0xffffffffffffffbf,%r13 - 41dfe2: 0f 87 c8 01 00 00 ja 41e1b0 <__libc_realloc+0x240> - 41dfe8: 49 8d 45 17 lea 0x17(%r13),%rax - 41dfec: 48 89 c2 mov %rax,%rdx - 41dfef: 48 83 e2 f0 and $0xfffffffffffffff0,%rdx - 41dff3: 48 83 f8 20 cmp $0x20,%rax - 41dff7: b8 20 00 00 00 mov $0x20,%eax - 41dffc: 48 0f 42 d0 cmovb %rax,%rdx - 41e000: 48 85 c9 test %rcx,%rcx - 41e003: 0f 84 97 00 00 00 je 41e0a0 <__libc_realloc+0x130> - 41e009: 48 89 d6 mov %rdx,%rsi - 41e00c: 4c 89 f7 mov %r14,%rdi - 41e00f: 48 89 54 24 08 mov %rdx,0x8(%rsp) - 41e014: e8 07 90 ff ff callq 417020 - 41e019: 48 85 c0 test %rax,%rax - 41e01c: 48 8d 68 10 lea 0x10(%rax),%rbp - 41e020: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 41e025: 0f 84 9d 01 00 00 je 41e1c8 <__libc_realloc+0x258> - 41e02b: 48 83 c4 38 add $0x38,%rsp - 41e02f: 48 89 e8 mov %rbp,%rax - 41e032: 5b pop %rbx - 41e033: 5d pop %rbp - 41e034: 41 5c pop %r12 - 41e036: 41 5d pop %r13 - 41e038: 41 5e pop %r14 - 41e03a: 41 5f pop %r15 - 41e03c: c3 retq - 41e03d: 0f 1f 00 nopl (%rax) - 41e040: a8 04 test $0x4,%al - 41e042: 0f 84 28 01 00 00 je 41e170 <__libc_realloc+0x200> - 41e048: 4c 89 f0 mov %r14,%rax - 41e04b: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax - 41e051: 4c 8b 20 mov (%rax),%r12 - 41e054: 4c 89 f8 mov %r15,%rax - 41e057: 48 f7 d8 neg %rax - 41e05a: 49 39 c6 cmp %rax,%r14 - 41e05d: 77 0a ja 41e069 <__libc_realloc+0xf9> - 41e05f: 41 f6 c6 0f test $0xf,%r14b - 41e063: 0f 84 75 ff ff ff je 41dfde <__libc_realloc+0x6e> - 41e069: 4d 85 e4 test %r12,%r12 - 41e06c: 8b 2d fe c6 2a 00 mov 0x2ac6fe(%rip),%ebp # 6ca770 - 41e072: 74 06 je 41e07a <__libc_realloc+0x10a> - 41e074: 41 83 4c 24 04 04 orl $0x4,0x4(%r12) - 41e07a: 89 e8 mov %ebp,%eax - 41e07c: 83 e0 05 and $0x5,%eax - 41e07f: 83 f8 05 cmp $0x5,%eax - 41e082: 0f 84 98 02 00 00 je 41e320 <__libc_realloc+0x3b0> - 41e088: 40 f6 c5 01 test $0x1,%bpl - 41e08c: 0f 85 a6 01 00 00 jne 41e238 <__libc_realloc+0x2c8> - 41e092: 83 e5 02 and $0x2,%ebp - 41e095: 0f 85 a2 02 00 00 jne 41e33d <__libc_realloc+0x3cd> - 41e09b: 31 ed xor %ebp,%ebp - 41e09d: eb 8c jmp 41e02b <__libc_realloc+0xbb> - 41e09f: 90 nop - 41e0a0: be 01 00 00 00 mov $0x1,%esi - 41e0a5: 31 c0 xor %eax,%eax - 41e0a7: 83 3d 0e f1 2a 00 00 cmpl $0x0,0x2af10e(%rip) # 6cd1bc <__libc_multiple_threads> - 41e0ae: 74 0a je 41e0ba <__libc_realloc+0x14a> - 41e0b0: f0 41 0f b1 34 24 lock cmpxchg %esi,(%r12) - 41e0b6: 75 09 jne 41e0c1 <__libc_realloc+0x151> - 41e0b8: eb 1e jmp 41e0d8 <__libc_realloc+0x168> - 41e0ba: 41 0f b1 34 24 cmpxchg %esi,(%r12) - 41e0bf: 74 17 je 41e0d8 <__libc_realloc+0x168> - 41e0c1: 49 8d 3c 24 lea (%r12),%rdi - 41e0c5: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41e0cc: e8 ff 44 02 00 callq 4425d0 <__lll_lock_wait_private> - 41e0d1: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41e0d8: 48 89 d1 mov %rdx,%rcx - 41e0db: 4c 89 f6 mov %r14,%rsi - 41e0de: 4c 89 fa mov %r15,%rdx - 41e0e1: 4c 89 e7 mov %r12,%rdi - 41e0e4: e8 77 e9 ff ff callq 41ca60 <_int_realloc> - 41e0e9: 48 89 c5 mov %rax,%rbp - 41e0ec: 83 3d c9 f0 2a 00 00 cmpl $0x0,0x2af0c9(%rip) # 6cd1bc <__libc_multiple_threads> - 41e0f3: 74 09 je 41e0fe <__libc_realloc+0x18e> - 41e0f5: f0 41 ff 0c 24 lock decl (%r12) - 41e0fa: 75 08 jne 41e104 <__libc_realloc+0x194> - 41e0fc: eb 1d jmp 41e11b <__libc_realloc+0x1ab> - 41e0fe: 41 ff 0c 24 decl (%r12) - 41e102: 74 17 je 41e11b <__libc_realloc+0x1ab> - 41e104: 49 8d 3c 24 lea (%r12),%rdi - 41e108: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41e10f: e8 ec 44 02 00 callq 442600 <__lll_unlock_wake_private> - 41e114: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41e11b: 48 85 ed test %rbp,%rbp - 41e11e: 0f 84 ac 01 00 00 je 41e2d0 <__libc_realloc+0x360> - 41e124: 48 8b 45 f8 mov -0x8(%rbp),%rax - 41e128: a8 02 test $0x2,%al - 41e12a: 0f 85 fb fe ff ff jne 41e02b <__libc_realloc+0xbb> - 41e130: a8 04 test $0x4,%al - 41e132: ba 00 a8 6c 00 mov $0x6ca800,%edx - 41e137: 74 0d je 41e146 <__libc_realloc+0x1d6> - 41e139: 48 8d 45 f0 lea -0x10(%rbp),%rax - 41e13d: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax - 41e143: 48 8b 10 mov (%rax),%rdx - 41e146: 4c 39 e2 cmp %r12,%rdx - 41e149: 0f 84 dc fe ff ff je 41e02b <__libc_realloc+0xbb> - 41e14f: b9 18 2e 4a 00 mov $0x4a2e18,%ecx - 41e154: ba e9 0b 00 00 mov $0xbe9,%edx - 41e159: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41e15e: bf c0 29 4a 00 mov $0x4a29c0,%edi - 41e163: e8 b8 8c ff ff callq 416e20 <__malloc_assert> - 41e168: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41e16f: 00 - 41e170: 4c 89 f8 mov %r15,%rax - 41e173: 48 f7 d8 neg %rax - 41e176: 49 39 c6 cmp %rax,%r14 - 41e179: 0f 87 a1 00 00 00 ja 41e220 <__libc_realloc+0x2b0> - 41e17f: 41 f6 c6 0f test $0xf,%r14b - 41e183: 0f 85 97 00 00 00 jne 41e220 <__libc_realloc+0x2b0> - 41e189: 41 bc 00 a8 6c 00 mov $0x6ca800,%r12d - 41e18f: e9 4a fe ff ff jmpq 41dfde <__libc_realloc+0x6e> - 41e194: 0f 1f 40 00 nopl 0x0(%rax) - 41e198: 48 8b 54 24 68 mov 0x68(%rsp),%rdx - 41e19d: ff d0 callq *%rax - 41e19f: 48 89 c5 mov %rax,%rbp - 41e1a2: e9 84 fe ff ff jmpq 41e02b <__libc_realloc+0xbb> - 41e1a7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 41e1ae: 00 00 - 41e1b0: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41e1b7: 31 ed xor %ebp,%ebp - 41e1b9: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) - 41e1c0: e9 66 fe ff ff jmpq 41e02b <__libc_realloc+0xbb> - 41e1c5: 0f 1f 00 nopl (%rax) - 41e1c8: 49 8d 47 f8 lea -0x8(%r15),%rax - 41e1cc: 48 89 dd mov %rbx,%rbp - 41e1cf: 48 39 c2 cmp %rax,%rdx - 41e1d2: 0f 86 53 fe ff ff jbe 41e02b <__libc_realloc+0xbb> - 41e1d8: 4c 89 ef mov %r13,%rdi - 41e1db: e8 30 f8 ff ff callq 41da10 <__libc_malloc> - 41e1e0: 48 85 c0 test %rax,%rax - 41e1e3: 48 89 c3 mov %rax,%rbx - 41e1e6: 0f 84 af fe ff ff je 41e09b <__libc_realloc+0x12b> - 41e1ec: 49 8d 57 f0 lea -0x10(%r15),%rdx - 41e1f0: 48 89 ee mov %rbp,%rsi - 41e1f3: 48 89 c7 mov %rax,%rdi - 41e1f6: 48 89 dd mov %rbx,%rbp - 41e1f9: e8 22 de 00 00 callq 42c020 - 41e1fe: 4c 89 f7 mov %r14,%rdi - 41e201: e8 ea 9a ff ff callq 417cf0 - 41e206: e9 20 fe ff ff jmpq 41e02b <__libc_realloc+0xbb> - 41e20b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41e210: e8 9b fb ff ff callq 41ddb0 <__cfree> - 41e215: 31 ed xor %ebp,%ebp - 41e217: e9 0f fe ff ff jmpq 41e02b <__libc_realloc+0xbb> - 41e21c: 0f 1f 40 00 nopl 0x0(%rax) - 41e220: 8b 2d 4a c5 2a 00 mov 0x2ac54a(%rip),%ebp # 6ca770 - 41e226: 41 bc 00 a8 6c 00 mov $0x6ca800,%r12d - 41e22c: e9 43 fe ff ff jmpq 41e074 <__libc_realloc+0x104> - 41e231: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41e238: 4c 8d 64 24 10 lea 0x10(%rsp),%r12 - 41e23d: 48 8d 74 24 20 lea 0x20(%rsp),%rsi - 41e242: 31 c9 xor %ecx,%ecx - 41e244: 48 89 df mov %rbx,%rdi - 41e247: ba 10 00 00 00 mov $0x10,%edx - 41e24c: c6 44 24 20 00 movb $0x0,0x20(%rsp) - 41e251: e8 5a 3c 03 00 callq 451eb0 <_itoa_word> - 41e256: 4c 39 e0 cmp %r12,%rax - 41e259: 48 89 c3 mov %rax,%rbx - 41e25c: 76 25 jbe 41e283 <__libc_realloc+0x313> - 41e25e: 48 89 c2 mov %rax,%rdx - 41e261: 48 89 c7 mov %rax,%rdi - 41e264: be 30 00 00 00 mov $0x30,%esi - 41e269: 4c 29 e2 sub %r12,%rdx - 41e26c: 4c 8d 68 ff lea -0x1(%rax),%r13 - 41e270: 48 29 d7 sub %rdx,%rdi - 41e273: e8 d8 20 fe ff callq 400350 <__rela_iplt_end+0x88> - 41e278: 48 8d 44 24 0f lea 0xf(%rsp),%rax - 41e27d: 4c 29 e8 sub %r13,%rax - 41e280: 48 01 c3 add %rax,%rbx - 41e283: 48 8b 05 36 f0 2a 00 mov 0x2af036(%rip),%rax # 6cd2c0 <__libc_argv> - 41e28a: 89 ef mov %ebp,%edi - 41e28c: ba 38 20 4a 00 mov $0x4a2038,%edx - 41e291: 49 89 d8 mov %rbx,%r8 - 41e294: b9 c6 21 4a 00 mov $0x4a21c6,%ecx - 41e299: be a8 23 4a 00 mov $0x4a23a8,%esi - 41e29e: 48 8b 00 mov (%rax),%rax - 41e2a1: 48 85 c0 test %rax,%rax - 41e2a4: 48 0f 45 d0 cmovne %rax,%rdx - 41e2a8: 83 e7 02 and $0x2,%edi - 41e2ab: 31 c0 xor %eax,%eax - 41e2ad: e8 0e 33 ff ff callq 4115c0 <__libc_message> - 41e2b2: 31 ed xor %ebp,%ebp - 41e2b4: e9 72 fd ff ff jmpq 41e02b <__libc_realloc+0xbb> - 41e2b9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41e2c0: 4c 89 ef mov %r13,%rdi - 41e2c3: e8 48 f7 ff ff callq 41da10 <__libc_malloc> - 41e2c8: 48 89 c5 mov %rax,%rbp - 41e2cb: e9 5b fd ff ff jmpq 41e02b <__libc_realloc+0xbb> - 41e2d0: 90 nop - 41e2d1: 4c 89 ef mov %r13,%rdi - 41e2d4: 31 ed xor %ebp,%ebp - 41e2d6: e8 35 f7 ff ff callq 41da10 <__libc_malloc> - 41e2db: 48 85 c0 test %rax,%rax - 41e2de: 49 89 c5 mov %rax,%r13 - 41e2e1: 0f 84 44 fd ff ff je 41e02b <__libc_realloc+0xbb> - 41e2e7: 49 8d 57 f8 lea -0x8(%r15),%rdx - 41e2eb: 48 89 de mov %rbx,%rsi - 41e2ee: 48 89 c7 mov %rax,%rdi - 41e2f1: 4c 89 ed mov %r13,%rbp - 41e2f4: e8 27 dd 00 00 callq 42c020 - 41e2f9: 31 d2 xor %edx,%edx - 41e2fb: 4c 89 f6 mov %r14,%rsi - 41e2fe: 4c 89 e7 mov %r12,%rdi - 41e301: e8 ba b4 ff ff callq 4197c0 <_int_free> - 41e306: e9 20 fd ff ff jmpq 41e02b <__libc_realloc+0xbb> - 41e30b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41e310: 8b 2d 5a c4 2a 00 mov 0x2ac45a(%rip),%ebp # 6ca770 - 41e316: e9 5f fd ff ff jmpq 41e07a <__libc_realloc+0x10a> - 41e31b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41e320: 89 ef mov %ebp,%edi - 41e322: ba c6 21 4a 00 mov $0x4a21c6,%edx - 41e327: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41e32c: 83 e7 02 and $0x2,%edi - 41e32f: 31 c0 xor %eax,%eax - 41e331: 31 ed xor %ebp,%ebp - 41e333: e8 88 32 ff ff callq 4115c0 <__libc_message> - 41e338: e9 ee fc ff ff jmpq 41e02b <__libc_realloc+0xbb> - 41e33d: e8 be f8 fe ff callq 40dc00 - 41e342: 0f 1f 40 00 nopl 0x0(%rax) - 41e346: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41e34d: 00 00 00 - -000000000041e350 <__libc_memalign>: - 41e350: 48 8b 05 21 c4 2a 00 mov 0x2ac421(%rip),%rax # 6ca778 <__memalign_hook> - 41e357: 41 54 push %r12 - 41e359: 48 85 c0 test %rax,%rax - 41e35c: 55 push %rbp - 41e35d: 53 push %rbx - 41e35e: 48 8b 54 24 18 mov 0x18(%rsp),%rdx - 41e363: 0f 85 ef 01 00 00 jne 41e558 <__libc_memalign+0x208> - 41e369: 48 83 ff 10 cmp $0x10,%rdi - 41e36d: 0f 86 d5 01 00 00 jbe 41e548 <__libc_memalign+0x1f8> - 41e373: 48 83 ff 1f cmp $0x1f,%rdi - 41e377: 0f 87 e3 00 00 00 ja 41e460 <__libc_memalign+0x110> - 41e37d: 48 83 fe bf cmp $0xffffffffffffffbf,%rsi - 41e381: 0f 87 f1 01 00 00 ja 41e578 <__libc_memalign+0x228> - 41e387: bb 20 00 00 00 mov $0x20,%ebx - 41e38c: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax - 41e393: 49 89 f4 mov %rsi,%r12 - 41e396: 64 48 8b 28 mov %fs:(%rax),%rbp - 41e39a: 48 85 ed test %rbp,%rbp - 41e39d: 0f 84 15 01 00 00 je 41e4b8 <__libc_memalign+0x168> - 41e3a3: 8b 45 04 mov 0x4(%rbp),%eax - 41e3a6: 83 e0 04 and $0x4,%eax - 41e3a9: 0f 85 09 01 00 00 jne 41e4b8 <__libc_memalign+0x168> - 41e3af: be 01 00 00 00 mov $0x1,%esi - 41e3b4: 83 3d 01 ee 2a 00 00 cmpl $0x0,0x2aee01(%rip) # 6cd1bc <__libc_multiple_threads> - 41e3bb: 74 09 je 41e3c6 <__libc_memalign+0x76> - 41e3bd: f0 0f b1 75 00 lock cmpxchg %esi,0x0(%rbp) - 41e3c2: 75 08 jne 41e3cc <__libc_memalign+0x7c> - 41e3c4: eb 1d jmp 41e3e3 <__libc_memalign+0x93> - 41e3c6: 0f b1 75 00 cmpxchg %esi,0x0(%rbp) - 41e3ca: 74 17 je 41e3e3 <__libc_memalign+0x93> - 41e3cc: 48 8d 7d 00 lea 0x0(%rbp),%rdi - 41e3d0: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41e3d7: e8 f4 41 02 00 callq 4425d0 <__lll_lock_wait_private> - 41e3dc: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41e3e3: 4c 89 e2 mov %r12,%rdx - 41e3e6: 48 89 de mov %rbx,%rsi - 41e3e9: 48 89 ef mov %rbp,%rdi - 41e3ec: e8 1f e1 ff ff callq 41c510 <_int_memalign> - 41e3f1: 48 85 c0 test %rax,%rax - 41e3f4: 48 89 c2 mov %rax,%rdx - 41e3f7: 0f 84 fb 00 00 00 je 41e4f8 <__libc_memalign+0x1a8> - 41e3fd: 83 3d b8 ed 2a 00 00 cmpl $0x0,0x2aedb8(%rip) # 6cd1bc <__libc_multiple_threads> - 41e404: 74 08 je 41e40e <__libc_memalign+0xbe> - 41e406: f0 ff 4d 00 lock decl 0x0(%rbp) - 41e40a: 75 07 jne 41e413 <__libc_memalign+0xc3> - 41e40c: eb 1c jmp 41e42a <__libc_memalign+0xda> - 41e40e: ff 4d 00 decl 0x0(%rbp) - 41e411: 74 17 je 41e42a <__libc_memalign+0xda> - 41e413: 48 8d 7d 00 lea 0x0(%rbp),%rdi - 41e417: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41e41e: e8 dd 41 02 00 callq 442600 <__lll_unlock_wake_private> - 41e423: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41e42a: 48 85 d2 test %rdx,%rdx - 41e42d: 0f 84 5d 01 00 00 je 41e590 <__libc_memalign+0x240> - 41e433: 48 8b 42 f8 mov -0x8(%rdx),%rax - 41e437: a8 02 test $0x2,%al - 41e439: 75 16 jne 41e451 <__libc_memalign+0x101> - 41e43b: a8 04 test $0x4,%al - 41e43d: b9 00 a8 6c 00 mov $0x6ca800,%ecx - 41e442: 0f 85 e8 00 00 00 jne 41e530 <__libc_memalign+0x1e0> - 41e448: 48 39 e9 cmp %rbp,%rcx - 41e44b: 0f 85 46 01 00 00 jne 41e597 <__libc_memalign+0x247> - 41e451: 48 89 d0 mov %rdx,%rax - 41e454: 5b pop %rbx - 41e455: 5d pop %rbp - 41e456: 41 5c pop %r12 - 41e458: c3 retq - 41e459: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41e460: 48 b8 00 00 00 00 00 movabs $0x8000000000000000,%rax - 41e467: 00 00 80 - 41e46a: 48 39 c7 cmp %rax,%rdi - 41e46d: 0f 87 ed 00 00 00 ja 41e560 <__libc_memalign+0x210> - 41e473: 48 c7 c0 df ff ff ff mov $0xffffffffffffffdf,%rax - 41e47a: 48 29 f8 sub %rdi,%rax - 41e47d: 48 39 c6 cmp %rax,%rsi - 41e480: 0f 87 f2 00 00 00 ja 41e578 <__libc_memalign+0x228> - 41e486: 48 8d 47 ff lea -0x1(%rdi),%rax - 41e48a: 48 85 f8 test %rdi,%rax - 41e48d: 0f 84 1d 01 00 00 je 41e5b0 <__libc_memalign+0x260> - 41e493: 48 83 ff 20 cmp $0x20,%rdi - 41e497: bb 20 00 00 00 mov $0x20,%ebx - 41e49c: 0f 84 ea fe ff ff je 41e38c <__libc_memalign+0x3c> - 41e4a2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41e4a8: 48 01 db add %rbx,%rbx - 41e4ab: 48 39 df cmp %rbx,%rdi - 41e4ae: 77 f8 ja 41e4a8 <__libc_memalign+0x158> - 41e4b0: e9 d7 fe ff ff jmpq 41e38c <__libc_memalign+0x3c> - 41e4b5: 0f 1f 00 nopl (%rax) - 41e4b8: e8 a3 8c ff ff callq 417160 - 41e4bd: 48 85 c0 test %rax,%rax - 41e4c0: 48 89 c5 mov %rax,%rbp - 41e4c3: 0f 85 1a ff ff ff jne 41e3e3 <__libc_memalign+0x93> - 41e4c9: 4a 8d 7c 23 20 lea 0x20(%rbx,%r12,1),%rdi - 41e4ce: 31 f6 xor %esi,%esi - 41e4d0: e8 7b 8f ff ff callq 417450 - 41e4d5: 4c 89 e2 mov %r12,%rdx - 41e4d8: 48 89 de mov %rbx,%rsi - 41e4db: 48 89 c7 mov %rax,%rdi - 41e4de: 48 89 c5 mov %rax,%rbp - 41e4e1: e8 2a e0 ff ff callq 41c510 <_int_memalign> - 41e4e6: 48 85 c0 test %rax,%rax - 41e4e9: 48 89 c2 mov %rax,%rdx - 41e4ec: 75 2a jne 41e518 <__libc_memalign+0x1c8> - 41e4ee: 48 85 ed test %rbp,%rbp - 41e4f1: 74 25 je 41e518 <__libc_memalign+0x1c8> - 41e4f3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41e4f8: 90 nop - 41e4f9: 48 89 ef mov %rbp,%rdi - 41e4fc: 4c 89 e6 mov %r12,%rsi - 41e4ff: e8 ec 94 ff ff callq 4179f0 - 41e504: 4c 89 e2 mov %r12,%rdx - 41e507: 48 89 de mov %rbx,%rsi - 41e50a: 48 89 c7 mov %rax,%rdi - 41e50d: 48 89 c5 mov %rax,%rbp - 41e510: e8 fb df ff ff callq 41c510 <_int_memalign> - 41e515: 48 89 c2 mov %rax,%rdx - 41e518: 48 85 ed test %rbp,%rbp - 41e51b: 0f 85 dc fe ff ff jne 41e3fd <__libc_memalign+0xad> - 41e521: e9 04 ff ff ff jmpq 41e42a <__libc_memalign+0xda> - 41e526: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41e52d: 00 00 00 - 41e530: 48 8d 42 f0 lea -0x10(%rdx),%rax - 41e534: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax - 41e53a: 48 8b 08 mov (%rax),%rcx - 41e53d: e9 06 ff ff ff jmpq 41e448 <__libc_memalign+0xf8> - 41e542: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41e548: 5b pop %rbx - 41e549: 5d pop %rbp - 41e54a: 41 5c pop %r12 - 41e54c: 48 89 f7 mov %rsi,%rdi - 41e54f: e9 bc f4 ff ff jmpq 41da10 <__libc_malloc> - 41e554: 0f 1f 40 00 nopl 0x0(%rax) - 41e558: 5b pop %rbx - 41e559: 5d pop %rbp - 41e55a: 41 5c pop %r12 - 41e55c: ff e0 jmpq *%rax - 41e55e: 66 90 xchg %ax,%ax - 41e560: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41e567: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) - 41e56e: 31 c0 xor %eax,%eax - 41e570: e9 df fe ff ff jmpq 41e454 <__libc_memalign+0x104> - 41e575: 0f 1f 00 nopl (%rax) - 41e578: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41e57f: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) - 41e586: 31 c0 xor %eax,%eax - 41e588: e9 c7 fe ff ff jmpq 41e454 <__libc_memalign+0x104> - 41e58d: 0f 1f 00 nopl (%rax) - 41e590: 31 c0 xor %eax,%eax - 41e592: e9 bd fe ff ff jmpq 41e454 <__libc_memalign+0x104> - 41e597: b9 08 2e 4a 00 mov $0x4a2e08,%ecx - 41e59c: ba 3c 0c 00 00 mov $0xc3c,%edx - 41e5a1: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41e5a6: bf 20 2a 4a 00 mov $0x4a2a20,%edi - 41e5ab: e8 70 88 ff ff callq 416e20 <__malloc_assert> - 41e5b0: 48 89 fb mov %rdi,%rbx - 41e5b3: e9 d4 fd ff ff jmpq 41e38c <__libc_memalign+0x3c> - 41e5b8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41e5bf: 00 - -000000000041e5c0 <__calloc>: - 41e5c0: 41 55 push %r13 - 41e5c2: 48 89 fa mov %rdi,%rdx - 41e5c5: 41 54 push %r12 - 41e5c7: 55 push %rbp - 41e5c8: 53 push %rbx - 41e5c9: 48 89 fd mov %rdi,%rbp - 41e5cc: 48 09 f2 or %rsi,%rdx - 41e5cf: b8 ff ff ff ff mov $0xffffffff,%eax - 41e5d4: 48 83 ec 08 sub $0x8,%rsp - 41e5d8: 48 0f af ee imul %rsi,%rbp - 41e5dc: 48 39 c2 cmp %rax,%rdx - 41e5df: 76 1f jbe 41e600 <__calloc+0x40> - 41e5e1: 48 85 f6 test %rsi,%rsi - 41e5e4: 74 1a je 41e600 <__calloc+0x40> - 41e5e6: 31 d2 xor %edx,%edx - 41e5e8: 48 89 e8 mov %rbp,%rax - 41e5eb: 48 f7 f6 div %rsi - 41e5ee: 48 39 c7 cmp %rax,%rdi - 41e5f1: 0f 85 a9 02 00 00 jne 41e8a0 <__calloc+0x2e0> - 41e5f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 41e5fe: 00 00 - 41e600: 48 8b 05 81 c1 2a 00 mov 0x2ac181(%rip),%rax # 6ca788 <__malloc_hook> - 41e607: 48 85 c0 test %rax,%rax - 41e60a: 0f 85 70 02 00 00 jne 41e880 <__calloc+0x2c0> - 41e610: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax - 41e617: 64 48 8b 18 mov %fs:(%rax),%rbx - 41e61b: 48 85 db test %rbx,%rbx - 41e61e: 74 0c je 41e62c <__calloc+0x6c> - 41e620: 8b 43 04 mov 0x4(%rbx),%eax - 41e623: 83 e0 04 and $0x4,%eax - 41e626: 0f 84 d4 00 00 00 je 41e700 <__calloc+0x140> - 41e62c: e8 2f 8b ff ff callq 417160 - 41e631: 48 85 c0 test %rax,%rax - 41e634: 48 89 c3 mov %rax,%rbx - 41e637: 0f 84 7b 02 00 00 je 41e8b8 <__calloc+0x2f8> - 41e63d: 4c 8b 6b 58 mov 0x58(%rbx),%r13 - 41e641: 4d 8b 65 08 mov 0x8(%r13),%r12 - 41e645: 49 83 e4 f8 and $0xfffffffffffffff8,%r12 - 41e649: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx - 41e650: 0f 84 9a 01 00 00 je 41e7f0 <__calloc+0x230> - 41e656: 4c 89 e8 mov %r13,%rax - 41e659: 48 89 ee mov %rbp,%rsi - 41e65c: 48 89 df mov %rbx,%rdi - 41e65f: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax - 41e665: 48 03 40 18 add 0x18(%rax),%rax - 41e669: 4c 29 e8 sub %r13,%rax - 41e66c: 49 39 c4 cmp %rax,%r12 - 41e66f: 4c 0f 42 e0 cmovb %rax,%r12 - 41e673: e8 c8 ce ff ff callq 41b540 <_int_malloc> - 41e678: 48 85 c0 test %rax,%rax - 41e67b: 49 89 c0 mov %rax,%r8 - 41e67e: 0f 84 8c 01 00 00 je 41e810 <__calloc+0x250> - 41e684: 49 8b 40 f8 mov -0x8(%r8),%rax - 41e688: a8 02 test $0x2,%al - 41e68a: 75 16 jne 41e6a2 <__calloc+0xe2> - 41e68c: a8 04 test $0x4,%al - 41e68e: ba 00 a8 6c 00 mov $0x6ca800,%edx - 41e693: 0f 85 b7 01 00 00 jne 41e850 <__calloc+0x290> - 41e699: 48 39 da cmp %rbx,%rdx - 41e69c: 0f 85 55 02 00 00 jne 41e8f7 <__calloc+0x337> - 41e6a2: 48 85 db test %rbx,%rbx - 41e6a5: 74 33 je 41e6da <__calloc+0x11a> - 41e6a7: 83 3d 0e eb 2a 00 00 cmpl $0x0,0x2aeb0e(%rip) # 6cd1bc <__libc_multiple_threads> - 41e6ae: 74 07 je 41e6b7 <__calloc+0xf7> - 41e6b0: f0 ff 0b lock decl (%rbx) - 41e6b3: 75 06 jne 41e6bb <__calloc+0xfb> - 41e6b5: eb 1a jmp 41e6d1 <__calloc+0x111> - 41e6b7: ff 0b decl (%rbx) - 41e6b9: 74 16 je 41e6d1 <__calloc+0x111> - 41e6bb: 48 8d 3b lea (%rbx),%rdi - 41e6be: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41e6c5: e8 36 3f 02 00 callq 442600 <__lll_unlock_wake_private> - 41e6ca: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41e6d1: 4d 85 c0 test %r8,%r8 - 41e6d4: 0f 84 bd 01 00 00 je 41e897 <__calloc+0x2d7> - 41e6da: 49 8b 50 f8 mov -0x8(%r8),%rdx - 41e6de: f6 c2 02 test $0x2,%dl - 41e6e1: 74 5d je 41e740 <__calloc+0x180> - 41e6e3: 8b 15 4b df 2a 00 mov 0x2adf4b(%rip),%edx # 6cc634 - 41e6e9: 4c 89 c0 mov %r8,%rax - 41e6ec: 85 d2 test %edx,%edx - 41e6ee: 0f 85 74 01 00 00 jne 41e868 <__calloc+0x2a8> - 41e6f4: 48 83 c4 08 add $0x8,%rsp - 41e6f8: 5b pop %rbx - 41e6f9: 5d pop %rbp - 41e6fa: 41 5c pop %r12 - 41e6fc: 41 5d pop %r13 - 41e6fe: c3 retq - 41e6ff: 90 nop - 41e700: be 01 00 00 00 mov $0x1,%esi - 41e705: 83 3d b0 ea 2a 00 00 cmpl $0x0,0x2aeab0(%rip) # 6cd1bc <__libc_multiple_threads> - 41e70c: 74 08 je 41e716 <__calloc+0x156> - 41e70e: f0 0f b1 33 lock cmpxchg %esi,(%rbx) - 41e712: 75 07 jne 41e71b <__calloc+0x15b> - 41e714: eb 1b jmp 41e731 <__calloc+0x171> - 41e716: 0f b1 33 cmpxchg %esi,(%rbx) - 41e719: 74 16 je 41e731 <__calloc+0x171> - 41e71b: 48 8d 3b lea (%rbx),%rdi - 41e71e: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41e725: e8 a6 3e 02 00 callq 4425d0 <__lll_lock_wait_private> - 41e72a: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41e731: e9 07 ff ff ff jmpq 41e63d <__calloc+0x7d> - 41e736: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41e73d: 00 00 00 - 41e740: 8b 05 ee de 2a 00 mov 0x2adeee(%rip),%eax # 6cc634 - 41e746: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx - 41e74a: 85 c0 test %eax,%eax - 41e74c: 75 10 jne 41e75e <__calloc+0x19e> - 41e74e: 49 8d 40 f0 lea -0x10(%r8),%rax - 41e752: 49 39 c5 cmp %rax,%r13 - 41e755: 75 07 jne 41e75e <__calloc+0x19e> - 41e757: 4c 39 e2 cmp %r12,%rdx - 41e75a: 49 0f 47 d4 cmova %r12,%rdx - 41e75e: 48 83 ea 08 sub $0x8,%rdx - 41e762: 48 89 d1 mov %rdx,%rcx - 41e765: 48 c1 e9 03 shr $0x3,%rcx - 41e769: 48 83 f9 02 cmp $0x2,%rcx - 41e76d: 0f 86 9d 01 00 00 jbe 41e910 <__calloc+0x350> - 41e773: 48 83 f9 09 cmp $0x9,%rcx - 41e777: 0f 87 ee 00 00 00 ja 41e86b <__calloc+0x2ab> - 41e77d: 48 83 f9 04 cmp $0x4,%rcx - 41e781: 49 c7 00 00 00 00 00 movq $0x0,(%r8) - 41e788: 49 c7 40 08 00 00 00 movq $0x0,0x8(%r8) - 41e78f: 00 - 41e790: 49 c7 40 10 00 00 00 movq $0x0,0x10(%r8) - 41e797: 00 - 41e798: 4c 89 c0 mov %r8,%rax - 41e79b: 0f 86 53 ff ff ff jbe 41e6f4 <__calloc+0x134> - 41e7a1: 48 83 f9 06 cmp $0x6,%rcx - 41e7a5: 49 c7 40 18 00 00 00 movq $0x0,0x18(%r8) - 41e7ac: 00 - 41e7ad: 49 c7 40 20 00 00 00 movq $0x0,0x20(%r8) - 41e7b4: 00 - 41e7b5: 0f 86 39 ff ff ff jbe 41e6f4 <__calloc+0x134> - 41e7bb: 48 83 f9 09 cmp $0x9,%rcx - 41e7bf: 49 c7 40 28 00 00 00 movq $0x0,0x28(%r8) - 41e7c6: 00 - 41e7c7: 49 c7 40 30 00 00 00 movq $0x0,0x30(%r8) - 41e7ce: 00 - 41e7cf: 0f 85 1f ff ff ff jne 41e6f4 <__calloc+0x134> - 41e7d5: 49 c7 40 38 00 00 00 movq $0x0,0x38(%r8) - 41e7dc: 00 - 41e7dd: 49 c7 40 40 00 00 00 movq $0x0,0x40(%r8) - 41e7e4: 00 - 41e7e5: e9 0a ff ff ff jmpq 41e6f4 <__calloc+0x134> - 41e7ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41e7f0: 48 89 ee mov %rbp,%rsi - 41e7f3: bf 00 a8 6c 00 mov $0x6ca800,%edi - 41e7f8: e8 43 cd ff ff callq 41b540 <_int_malloc> - 41e7fd: 48 85 c0 test %rax,%rax - 41e800: 49 89 c0 mov %rax,%r8 - 41e803: 0f 85 7b fe ff ff jne 41e684 <__calloc+0xc4> - 41e809: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41e810: 90 nop - 41e811: 48 89 df mov %rbx,%rdi - 41e814: 48 89 ee mov %rbp,%rsi - 41e817: e8 d4 91 ff ff callq 4179f0 - 41e81c: 48 89 ee mov %rbp,%rsi - 41e81f: 48 89 c3 mov %rax,%rbx - 41e822: 48 89 c7 mov %rax,%rdi - 41e825: e8 16 cd ff ff callq 41b540 <_int_malloc> - 41e82a: 48 85 db test %rbx,%rbx - 41e82d: 49 89 c0 mov %rax,%r8 - 41e830: 0f 85 71 fe ff ff jne 41e6a7 <__calloc+0xe7> - 41e836: e9 96 fe ff ff jmpq 41e6d1 <__calloc+0x111> - 41e83b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41e840: a8 04 test $0x4,%al - 41e842: 0f 84 af 00 00 00 je 41e8f7 <__calloc+0x337> - 41e848: 45 31 e4 xor %r12d,%r12d - 41e84b: 45 31 ed xor %r13d,%r13d - 41e84e: 66 90 xchg %ax,%ax - 41e850: 49 8d 40 f0 lea -0x10(%r8),%rax - 41e854: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax - 41e85a: 48 8b 10 mov (%rax),%rdx - 41e85d: e9 37 fe ff ff jmpq 41e699 <__calloc+0xd9> - 41e862: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41e868: 48 89 ea mov %rbp,%rdx - 41e86b: 31 f6 xor %esi,%esi - 41e86d: 4c 89 c7 mov %r8,%rdi - 41e870: 48 83 c4 08 add $0x8,%rsp - 41e874: 5b pop %rbx - 41e875: 5d pop %rbp - 41e876: 41 5c pop %r12 - 41e878: 41 5d pop %r13 - 41e87a: e9 d1 1a fe ff jmpq 400350 <__rela_iplt_end+0x88> - 41e87f: 90 nop - 41e880: 48 8b 74 24 28 mov 0x28(%rsp),%rsi - 41e885: 48 89 ef mov %rbp,%rdi - 41e888: ff d0 callq *%rax - 41e88a: 31 f6 xor %esi,%esi - 41e88c: 48 85 c0 test %rax,%rax - 41e88f: 48 89 ea mov %rbp,%rdx - 41e892: 48 89 c7 mov %rax,%rdi - 41e895: 75 d9 jne 41e870 <__calloc+0x2b0> - 41e897: 31 c0 xor %eax,%eax - 41e899: e9 56 fe ff ff jmpq 41e6f4 <__calloc+0x134> - 41e89e: 66 90 xchg %ax,%ax - 41e8a0: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41e8a7: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) - 41e8ae: 31 c0 xor %eax,%eax - 41e8b0: e9 3f fe ff ff jmpq 41e6f4 <__calloc+0x134> - 41e8b5: 0f 1f 00 nopl (%rax) - 41e8b8: 31 f6 xor %esi,%esi - 41e8ba: 48 89 ef mov %rbp,%rdi - 41e8bd: e8 8e 8b ff ff callq 417450 - 41e8c2: 48 85 c0 test %rax,%rax - 41e8c5: 48 89 c3 mov %rax,%rbx - 41e8c8: 0f 85 6f fd ff ff jne 41e63d <__calloc+0x7d> - 41e8ce: 31 ff xor %edi,%edi - 41e8d0: 48 89 ee mov %rbp,%rsi - 41e8d3: e8 68 cc ff ff callq 41b540 <_int_malloc> - 41e8d8: 48 85 c0 test %rax,%rax - 41e8db: 49 89 c0 mov %rax,%r8 - 41e8de: 74 b7 je 41e897 <__calloc+0x2d7> - 41e8e0: 48 8b 40 f8 mov -0x8(%rax),%rax - 41e8e4: a8 02 test $0x2,%al - 41e8e6: 0f 84 54 ff ff ff je 41e840 <__calloc+0x280> - 41e8ec: 45 31 e4 xor %r12d,%r12d - 41e8ef: 45 31 ed xor %r13d,%r13d - 41e8f2: e9 e3 fd ff ff jmpq 41e6da <__calloc+0x11a> - 41e8f7: b9 f8 2d 4a 00 mov $0x4a2df8,%ecx - 41e8fc: ba a8 0c 00 00 mov $0xca8,%edx - 41e901: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41e906: bf 78 2a 4a 00 mov $0x4a2a78,%edi - 41e90b: e8 10 85 ff ff callq 416e20 <__malloc_assert> - 41e910: b9 f8 2d 4a 00 mov $0x4a2df8,%ecx - 41e915: ba d3 0c 00 00 mov $0xcd3,%edx - 41e91a: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41e91f: bf e1 21 4a 00 mov $0x4a21e1,%edi - 41e924: e8 f7 84 ff ff callq 416e20 <__malloc_assert> - 41e929: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -000000000041e930 <__malloc_usable_size>: - 41e930: 41 55 push %r13 - 41e932: 41 54 push %r12 - 41e934: 55 push %rbp - 41e935: 53 push %rbx - 41e936: 48 83 ec 28 sub $0x28,%rsp - 41e93a: 48 85 ff test %rdi,%rdi - 41e93d: 74 5a je 41e999 <__malloc_usable_size+0x69> - 41e93f: 83 3d c6 dc 2a 00 01 cmpl $0x1,0x2adcc6(%rip) # 6cc60c - 41e946: 48 8d 4f f0 lea -0x10(%rdi),%rcx - 41e94a: 74 64 je 41e9b0 <__malloc_usable_size+0x80> - 41e94c: 48 8b 47 f8 mov -0x8(%rdi),%rax - 41e950: a8 02 test $0x2,%al - 41e952: 75 1c jne 41e970 <__malloc_usable_size+0x40> - 41e954: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 41e958: f6 44 07 f8 01 testb $0x1,-0x8(%rdi,%rax,1) - 41e95d: 74 3a je 41e999 <__malloc_usable_size+0x69> - 41e95f: 48 83 e8 08 sub $0x8,%rax - 41e963: 48 83 c4 28 add $0x28,%rsp - 41e967: 5b pop %rbx - 41e968: 5d pop %rbp - 41e969: 41 5c pop %r12 - 41e96b: 41 5d pop %r13 - 41e96d: c3 retq - 41e96e: 66 90 xchg %ax,%ax - 41e970: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 41e974: 48 83 c4 28 add $0x28,%rsp - 41e978: 48 83 e8 10 sub $0x10,%rax - 41e97c: 5b pop %rbx - 41e97d: 5d pop %rbp - 41e97e: 41 5c pop %r12 - 41e980: 41 5d pop %r13 - 41e982: c3 retq - 41e983: 83 e3 02 and $0x2,%ebx - 41e986: ba d0 2a 4a 00 mov $0x4a2ad0,%edx - 41e98b: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41e990: 89 df mov %ebx,%edi - 41e992: 31 c0 xor %eax,%eax - 41e994: e8 27 2c ff ff callq 4115c0 <__libc_message> - 41e999: 48 83 c4 28 add $0x28,%rsp - 41e99d: 31 c0 xor %eax,%eax - 41e99f: 5b pop %rbx - 41e9a0: 5d pop %rbp - 41e9a1: 41 5c pop %r12 - 41e9a3: 41 5d pop %r13 - 41e9a5: c3 retq - 41e9a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41e9ad: 00 00 00 - 41e9b0: 4c 8b 4f f8 mov -0x8(%rdi),%r9 - 41e9b4: 49 89 c8 mov %rcx,%r8 - 41e9b7: 48 89 c8 mov %rcx,%rax - 41e9ba: 48 c1 e8 0b shr $0xb,%rax - 41e9be: 49 c1 e8 03 shr $0x3,%r8 - 41e9c2: 41 31 c0 xor %eax,%r8d - 41e9c5: b8 02 00 00 00 mov $0x2,%eax - 41e9ca: 41 80 f8 01 cmp $0x1,%r8b - 41e9ce: 4d 89 ca mov %r9,%r10 - 41e9d1: 4c 89 ca mov %r9,%rdx - 41e9d4: 44 0f 44 c0 cmove %eax,%r8d - 41e9d8: 41 83 e2 02 and $0x2,%r10d - 41e9dc: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx - 41e9e0: 49 83 fa 01 cmp $0x1,%r10 - 41e9e4: 48 19 c0 sbb %rax,%rax - 41e9e7: 83 e0 08 and $0x8,%eax - 41e9ea: 48 8d 44 02 ff lea -0x1(%rdx,%rax,1),%rax - 41e9ef: 0f b6 54 07 f0 movzbl -0x10(%rdi,%rax,1),%edx - 41e9f4: 44 38 c2 cmp %r8b,%dl - 41e9f7: 0f 84 77 ff ff ff je 41e974 <__malloc_usable_size+0x44> - 41e9fd: 84 d2 test %dl,%dl - 41e9ff: 74 2c je 41ea2d <__malloc_usable_size+0xfd> - 41ea01: 48 8d 72 10 lea 0x10(%rdx),%rsi - 41ea05: 48 39 f0 cmp %rsi,%rax - 41ea08: 73 0f jae 41ea19 <__malloc_usable_size+0xe9> - 41ea0a: eb 21 jmp 41ea2d <__malloc_usable_size+0xfd> - 41ea0c: 0f 1f 40 00 nopl 0x0(%rax) - 41ea10: 48 8d 72 10 lea 0x10(%rdx),%rsi - 41ea14: 48 39 c6 cmp %rax,%rsi - 41ea17: 77 14 ja 41ea2d <__malloc_usable_size+0xfd> - 41ea19: 48 29 d0 sub %rdx,%rax - 41ea1c: 0f b6 14 01 movzbl (%rcx,%rax,1),%edx - 41ea20: 44 38 c2 cmp %r8b,%dl - 41ea23: 0f 84 4b ff ff ff je 41e974 <__malloc_usable_size+0x44> - 41ea29: 84 d2 test %dl,%dl - 41ea2b: 75 e3 jne 41ea10 <__malloc_usable_size+0xe0> - 41ea2d: 4d 85 d2 test %r10,%r10 - 41ea30: 8b 1d 3a bd 2a 00 mov 0x2abd3a(%rip),%ebx # 6ca770 - 41ea36: 75 1d jne 41ea55 <__malloc_usable_size+0x125> - 41ea38: 41 83 e1 04 and $0x4,%r9d - 41ea3c: 0f 84 be 00 00 00 je 41eb00 <__malloc_usable_size+0x1d0> - 41ea42: 48 81 e1 00 00 00 fc and $0xfffffffffc000000,%rcx - 41ea49: 48 8b 01 mov (%rcx),%rax - 41ea4c: 48 85 c0 test %rax,%rax - 41ea4f: 74 04 je 41ea55 <__malloc_usable_size+0x125> - 41ea51: 83 48 04 04 orl $0x4,0x4(%rax) - 41ea55: 89 d8 mov %ebx,%eax - 41ea57: 83 e0 05 and $0x5,%eax - 41ea5a: 83 f8 05 cmp $0x5,%eax - 41ea5d: 0f 84 20 ff ff ff je 41e983 <__malloc_usable_size+0x53> - 41ea63: f6 c3 01 test $0x1,%bl - 41ea66: 75 18 jne 41ea80 <__malloc_usable_size+0x150> - 41ea68: 83 e3 02 and $0x2,%ebx - 41ea6b: 0f 84 28 ff ff ff je 41e999 <__malloc_usable_size+0x69> - 41ea71: e8 8a f1 fe ff callq 40dc00 - 41ea76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41ea7d: 00 00 00 - 41ea80: 48 8d 74 24 10 lea 0x10(%rsp),%rsi - 41ea85: 31 c9 xor %ecx,%ecx - 41ea87: ba 10 00 00 00 mov $0x10,%edx - 41ea8c: c6 44 24 10 00 movb $0x0,0x10(%rsp) - 41ea91: e8 1a 34 03 00 callq 451eb0 <_itoa_word> - 41ea96: 48 39 e0 cmp %rsp,%rax - 41ea99: 48 89 c5 mov %rax,%rbp - 41ea9c: 76 25 jbe 41eac3 <__malloc_usable_size+0x193> - 41ea9e: 48 89 c2 mov %rax,%rdx - 41eaa1: 48 89 c7 mov %rax,%rdi - 41eaa4: be 30 00 00 00 mov $0x30,%esi - 41eaa9: 48 29 e2 sub %rsp,%rdx - 41eaac: 4c 8d 68 ff lea -0x1(%rax),%r13 - 41eab0: 48 29 d7 sub %rdx,%rdi - 41eab3: e8 98 18 fe ff callq 400350 <__rela_iplt_end+0x88> - 41eab8: 48 8d 44 24 ff lea -0x1(%rsp),%rax - 41eabd: 4c 29 e8 sub %r13,%rax - 41eac0: 48 01 c5 add %rax,%rbp - 41eac3: 48 8b 05 f6 e7 2a 00 mov 0x2ae7f6(%rip),%rax # 6cd2c0 <__libc_argv> - 41eaca: ba 38 20 4a 00 mov $0x4a2038,%edx - 41eacf: 49 89 e8 mov %rbp,%r8 - 41ead2: b9 d0 2a 4a 00 mov $0x4a2ad0,%ecx - 41ead7: be a8 23 4a 00 mov $0x4a23a8,%esi - 41eadc: 48 8b 00 mov (%rax),%rax - 41eadf: 48 85 c0 test %rax,%rax - 41eae2: 48 0f 45 d0 cmovne %rax,%rdx - 41eae6: 83 e3 02 and $0x2,%ebx - 41eae9: 31 c0 xor %eax,%eax - 41eaeb: 89 df mov %ebx,%edi - 41eaed: e8 ce 2a ff ff callq 4115c0 <__libc_message> - 41eaf2: 31 c0 xor %eax,%eax - 41eaf4: e9 6a fe ff ff jmpq 41e963 <__malloc_usable_size+0x33> - 41eaf9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41eb00: b8 00 a8 6c 00 mov $0x6ca800,%eax - 41eb05: e9 47 ff ff ff jmpq 41ea51 <__malloc_usable_size+0x121> - 41eb0a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -000000000041eb10 <__libc_mallopt>: - 41eb10: 55 push %rbp - 41eb11: 53 push %rbx - 41eb12: 48 63 ee movslq %esi,%rbp - 41eb15: 89 fb mov %edi,%ebx - 41eb17: 48 83 ec 08 sub $0x8,%rsp - 41eb1b: 8b 05 43 bc 2a 00 mov 0x2abc43(%rip),%eax # 6ca764 <__libc_malloc_initialized> - 41eb21: 85 c0 test %eax,%eax - 41eb23: 0f 88 b7 01 00 00 js 41ece0 <__libc_mallopt+0x1d0> - 41eb29: be 01 00 00 00 mov $0x1,%esi - 41eb2e: 31 c0 xor %eax,%eax - 41eb30: 83 3d 85 e6 2a 00 00 cmpl $0x0,0x2ae685(%rip) # 6cd1bc <__libc_multiple_threads> - 41eb37: 74 0c je 41eb45 <__libc_mallopt+0x35> - 41eb39: f0 0f b1 35 bf bc 2a lock cmpxchg %esi,0x2abcbf(%rip) # 6ca800 - 41eb40: 00 - 41eb41: 75 0b jne 41eb4e <__libc_mallopt+0x3e> - 41eb43: eb 23 jmp 41eb68 <__libc_mallopt+0x58> - 41eb45: 0f b1 35 b4 bc 2a 00 cmpxchg %esi,0x2abcb4(%rip) # 6ca800 - 41eb4c: 74 1a je 41eb68 <__libc_mallopt+0x58> - 41eb4e: 48 8d 3d ab bc 2a 00 lea 0x2abcab(%rip),%rdi # 6ca800 - 41eb55: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41eb5c: e8 6f 3a 02 00 callq 4425d0 <__lll_lock_wait_private> - 41eb61: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41eb68: bf 00 a8 6c 00 mov $0x6ca800,%edi - 41eb6d: e8 be 92 ff ff callq 417e30 - 41eb72: 90 nop - 41eb73: 83 c3 08 add $0x8,%ebx - 41eb76: 83 fb 09 cmp $0x9,%ebx - 41eb79: 0f 87 ba 00 00 00 ja 41ec39 <__libc_mallopt+0x129> - 41eb7f: ff 24 dd d8 2e 4a 00 jmpq *0x4a2ed8(,%rbx,8) - 41eb86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41eb8d: 00 00 00 - 41eb90: 31 d2 xor %edx,%edx - 41eb92: 81 fd a0 00 00 00 cmp $0xa0,%ebp - 41eb98: 77 37 ja 41ebd1 <__libc_mallopt+0xc1> - 41eb9a: 90 nop - 41eb9b: 85 ed test %ebp,%ebp - 41eb9d: b8 10 00 00 00 mov $0x10,%eax - 41eba2: 74 08 je 41ebac <__libc_mallopt+0x9c> - 41eba4: 48 8d 45 08 lea 0x8(%rbp),%rax - 41eba8: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 41ebac: 48 89 05 85 da 2a 00 mov %rax,0x2ada85(%rip) # 6cc638 - 41ebb3: ba 01 00 00 00 mov $0x1,%edx - 41ebb8: eb 17 jmp 41ebd1 <__libc_mallopt+0xc1> - 41ebba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41ebc0: 85 ed test %ebp,%ebp - 41ebc2: 7e 75 jle 41ec39 <__libc_mallopt+0x129> - 41ebc4: 90 nop - 41ebc5: ba 01 00 00 00 mov $0x1,%edx - 41ebca: 48 89 2d ef bb 2a 00 mov %rbp,0x2abbef(%rip) # 6ca7c0 - 41ebd1: 83 3d e4 e5 2a 00 00 cmpl $0x0,0x2ae5e4(%rip) # 6cd1bc <__libc_multiple_threads> - 41ebd8: 74 0b je 41ebe5 <__libc_mallopt+0xd5> - 41ebda: f0 ff 0d 1f bc 2a 00 lock decl 0x2abc1f(%rip) # 6ca800 - 41ebe1: 75 0a jne 41ebed <__libc_mallopt+0xdd> - 41ebe3: eb 22 jmp 41ec07 <__libc_mallopt+0xf7> - 41ebe5: ff 0d 15 bc 2a 00 decl 0x2abc15(%rip) # 6ca800 - 41ebeb: 74 1a je 41ec07 <__libc_mallopt+0xf7> - 41ebed: 48 8d 3d 0c bc 2a 00 lea 0x2abc0c(%rip),%rdi # 6ca800 - 41ebf4: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41ebfb: e8 00 3a 02 00 callq 442600 <__lll_unlock_wake_private> - 41ec00: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41ec07: 48 83 c4 08 add $0x8,%rsp - 41ec0b: 89 d0 mov %edx,%eax - 41ec0d: 5b pop %rbx - 41ec0e: 5d pop %rbp - 41ec0f: c3 retq - 41ec10: 85 ed test %ebp,%ebp - 41ec12: 7e 25 jle 41ec39 <__libc_mallopt+0x129> - 41ec14: 90 nop - 41ec15: ba 01 00 00 00 mov $0x1,%edx - 41ec1a: 48 89 2d 97 bb 2a 00 mov %rbp,0x2abb97(%rip) # 6ca7b8 - 41ec21: eb ae jmp 41ebd1 <__libc_mallopt+0xc1> - 41ec23: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41ec28: 90 nop - 41ec29: c7 05 a1 bb 2a 00 01 movl $0x1,0x2abba1(%rip) # 6ca7d4 - 41ec30: 00 00 00 - 41ec33: 89 2d 93 bb 2a 00 mov %ebp,0x2abb93(%rip) # 6ca7cc - 41ec39: ba 01 00 00 00 mov $0x1,%edx - 41ec3e: eb 91 jmp 41ebd1 <__libc_mallopt+0xc1> - 41ec40: 31 d2 xor %edx,%edx - 41ec42: 81 fd 00 00 00 02 cmp $0x2000000,%ebp - 41ec48: 0f 87 83 ff ff ff ja 41ebd1 <__libc_mallopt+0xc1> - 41ec4e: 90 nop - 41ec4f: c7 05 7b bb 2a 00 01 movl $0x1,0x2abb7b(%rip) # 6ca7d4 - 41ec56: 00 00 00 - 41ec59: 48 89 2d 50 bb 2a 00 mov %rbp,0x2abb50(%rip) # 6ca7b0 - 41ec60: ba 01 00 00 00 mov $0x1,%edx - 41ec65: e9 67 ff ff ff jmpq 41ebd1 <__libc_mallopt+0xc1> - 41ec6a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41ec70: 90 nop - 41ec71: c7 05 59 bb 2a 00 01 movl $0x1,0x2abb59(%rip) # 6ca7d4 - 41ec78: 00 00 00 - 41ec7b: 48 89 2d 26 bb 2a 00 mov %rbp,0x2abb26(%rip) # 6ca7a8 - 41ec82: ba 01 00 00 00 mov $0x1,%edx - 41ec87: e9 45 ff ff ff jmpq 41ebd1 <__libc_mallopt+0xc1> - 41ec8c: 0f 1f 40 00 nopl 0x0(%rax) - 41ec90: 90 nop - 41ec91: c7 05 39 bb 2a 00 01 movl $0x1,0x2abb39(%rip) # 6ca7d4 - 41ec98: 00 00 00 - 41ec9b: 48 89 2d fe ba 2a 00 mov %rbp,0x2abafe(%rip) # 6ca7a0 - 41eca2: ba 01 00 00 00 mov $0x1,%edx - 41eca7: e9 25 ff ff ff jmpq 41ebd1 <__libc_mallopt+0xc1> - 41ecac: 0f 1f 40 00 nopl 0x0(%rax) - 41ecb0: 90 nop - 41ecb1: ba 01 00 00 00 mov $0x1,%edx - 41ecb6: 89 2d 78 d9 2a 00 mov %ebp,0x2ad978(%rip) # 6cc634 - 41ecbc: e9 10 ff ff ff jmpq 41ebd1 <__libc_mallopt+0xc1> - 41ecc1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41ecc8: 90 nop - 41ecc9: ba 01 00 00 00 mov $0x1,%edx - 41ecce: 89 2d 9c ba 2a 00 mov %ebp,0x2aba9c(%rip) # 6ca770 - 41ecd4: e9 f8 fe ff ff jmpq 41ebd1 <__libc_mallopt+0xc1> - 41ecd9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41ece0: e8 0b 00 00 00 callq 41ecf0 - 41ece5: e9 3f fe ff ff jmpq 41eb29 <__libc_mallopt+0x19> - 41ecea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -000000000041ecf0 : - 41ecf0: 41 55 push %r13 - 41ecf2: 41 54 push %r12 - 41ecf4: 55 push %rbp - 41ecf5: 53 push %rbx - 41ecf6: 48 83 ec 08 sub $0x8,%rsp - 41ecfa: 4c 8b 25 3f d9 2a 00 mov 0x2ad93f(%rip),%r12 # 6cc640 <__environ> - 41ed01: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax - 41ed08: c7 05 52 ba 2a 00 00 movl $0x0,0x2aba52(%rip) # 6ca764 <__libc_malloc_initialized> - 41ed0f: 00 00 00 - 41ed12: 4d 85 e4 test %r12,%r12 - 41ed15: 64 48 c7 00 00 a8 6c movq $0x6ca800,%fs:(%rax) - 41ed1c: 00 - 41ed1d: 0f 84 9b 00 00 00 je 41edbe - 41ed23: 45 31 ed xor %r13d,%r13d - 41ed26: eb 0c jmp 41ed34 - 41ed28: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41ed2f: 00 - 41ed30: 49 83 c4 08 add $0x8,%r12 - 41ed34: 49 8b 1c 24 mov (%r12),%rbx - 41ed38: 48 85 db test %rbx,%rbx - 41ed3b: 74 73 je 41edb0 - 41ed3d: 80 3b 4d cmpb $0x4d,(%rbx) - 41ed40: 75 ee jne 41ed30 - 41ed42: 80 7b 01 41 cmpb $0x41,0x1(%rbx) - 41ed46: 75 e8 jne 41ed30 - 41ed48: 80 7b 02 4c cmpb $0x4c,0x2(%rbx) - 41ed4c: 75 e2 jne 41ed30 - 41ed4e: 80 7b 03 4c cmpb $0x4c,0x3(%rbx) - 41ed52: 75 dc jne 41ed30 - 41ed54: 80 7b 04 4f cmpb $0x4f,0x4(%rbx) - 41ed58: 75 d6 jne 41ed30 - 41ed5a: 80 7b 05 43 cmpb $0x43,0x5(%rbx) - 41ed5e: 75 d0 jne 41ed30 - 41ed60: 80 7b 06 5f cmpb $0x5f,0x6(%rbx) - 41ed64: 75 ca jne 41ed30 - 41ed66: 48 89 dd mov %rbx,%rbp - 41ed69: 49 83 c4 08 add $0x8,%r12 - 41ed6d: 48 83 c5 07 add $0x7,%rbp - 41ed71: 74 3d je 41edb0 - 41ed73: 0f b6 53 07 movzbl 0x7(%rbx),%edx - 41ed77: 84 d2 test %dl,%dl - 41ed79: 74 b9 je 41ed34 - 41ed7b: 31 c0 xor %eax,%eax - 41ed7d: 80 fa 3d cmp $0x3d,%dl - 41ed80: 74 b2 je 41ed34 - 41ed82: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41ed88: 48 83 c0 01 add $0x1,%rax - 41ed8c: 0f b6 54 03 07 movzbl 0x7(%rbx,%rax,1),%edx - 41ed91: 84 d2 test %dl,%dl - 41ed93: 74 9f je 41ed34 - 41ed95: 80 fa 3d cmp $0x3d,%dl - 41ed98: 75 ee jne 41ed88 - 41ed9a: 48 83 e8 06 sub $0x6,%rax - 41ed9e: 48 83 f8 09 cmp $0x9,%rax - 41eda2: 77 90 ja 41ed34 - 41eda4: ff 24 c5 28 2f 4a 00 jmpq *0x4a2f28(,%rax,8) - 41edab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41edb0: 4d 85 ed test %r13,%r13 - 41edb3: 74 09 je 41edbe - 41edb5: 41 0f be 45 00 movsbl 0x0(%r13),%eax - 41edba: 84 c0 test %al,%al - 41edbc: 75 2a jne 41ede8 - 41edbe: 48 8b 05 2b d8 2a 00 mov 0x2ad82b(%rip),%rax # 6cc5f0 <__malloc_initialize_hook> - 41edc5: 48 85 c0 test %rax,%rax - 41edc8: 74 02 je 41edcc - 41edca: ff d0 callq *%rax - 41edcc: c7 05 8e b9 2a 00 01 movl $0x1,0x2ab98e(%rip) # 6ca764 <__libc_malloc_initialized> - 41edd3: 00 00 00 - 41edd6: 48 83 c4 08 add $0x8,%rsp - 41edda: 5b pop %rbx - 41eddb: 5d pop %rbp - 41eddc: 41 5c pop %r12 - 41edde: 41 5d pop %r13 - 41ede0: c3 retq - 41ede1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41ede8: 8d 70 d0 lea -0x30(%rax),%esi - 41edeb: bf fb ff ff ff mov $0xfffffffb,%edi - 41edf0: e8 1b fd ff ff callq 41eb10 <__libc_mallopt> - 41edf5: 8b 15 75 b9 2a 00 mov 0x2ab975(%rip),%edx # 6ca770 - 41edfb: 85 d2 test %edx,%edx - 41edfd: 74 bf je 41edbe - 41edff: 8b 05 03 d8 2a 00 mov 0x2ad803(%rip),%eax # 6cc608 - 41ee05: 85 c0 test %eax,%eax - 41ee07: 0f 84 ac 01 00 00 je 41efb9 - 41ee0d: c7 05 f1 d7 2a 00 00 movl $0x0,0x2ad7f1(%rip) # 6cc608 - 41ee14: 00 00 00 - 41ee17: eb a5 jmp 41edbe - 41ee19: 8b 0d 79 b1 2a 00 mov 0x2ab179(%rip),%ecx # 6c9f98 <__libc_enable_secure> - 41ee1f: 85 c9 test %ecx,%ecx - 41ee21: 0f 85 0d ff ff ff jne 41ed34 - 41ee27: ba 0f 00 00 00 mov $0xf,%edx - 41ee2c: be 1f 22 4a 00 mov $0x4a221f,%esi - 41ee31: 48 89 ef mov %rbp,%rdi - 41ee34: e8 f7 14 fe ff callq 400330 <__rela_iplt_end+0x68> - 41ee39: 85 c0 test %eax,%eax - 41ee3b: 0f 84 d4 01 00 00 je 41f015 - 41ee41: ba 0f 00 00 00 mov $0xf,%edx - 41ee46: be 2f 22 4a 00 mov $0x4a222f,%esi - 41ee4b: 48 89 ef mov %rbp,%rdi - 41ee4e: e8 dd 14 fe ff callq 400330 <__rela_iplt_end+0x68> - 41ee53: 85 c0 test %eax,%eax - 41ee55: 0f 85 d9 fe ff ff jne 41ed34 - 41ee5b: 48 8d 7b 17 lea 0x17(%rbx),%rdi - 41ee5f: 31 f6 xor %esi,%esi - 41ee61: ba 0a 00 00 00 mov $0xa,%edx - 41ee66: e8 65 2b 03 00 callq 4519d0 <__strtol> - 41ee6b: bf fd ff ff ff mov $0xfffffffd,%edi - 41ee70: 89 c6 mov %eax,%esi - 41ee72: e8 99 fc ff ff callq 41eb10 <__libc_mallopt> - 41ee77: e9 b8 fe ff ff jmpq 41ed34 - 41ee7c: 0f 1f 40 00 nopl 0x0(%rax) - 41ee80: 8b 35 12 b1 2a 00 mov 0x2ab112(%rip),%esi # 6c9f98 <__libc_enable_secure> - 41ee86: 85 f6 test %esi,%esi - 41ee88: 0f 85 a6 fe ff ff jne 41ed34 - 41ee8e: ba 0a 00 00 00 mov $0xa,%edx - 41ee93: be 14 22 4a 00 mov $0x4a2214,%esi - 41ee98: 48 89 ef mov %rbp,%rdi - 41ee9b: e8 90 14 fe ff callq 400330 <__rela_iplt_end+0x68> - 41eea0: 85 c0 test %eax,%eax - 41eea2: 0f 85 8c fe ff ff jne 41ed34 - 41eea8: 48 8d 7b 12 lea 0x12(%rbx),%rdi - 41eeac: 31 f6 xor %esi,%esi - 41eeae: ba 0a 00 00 00 mov $0xa,%edx - 41eeb3: e8 18 2b 03 00 callq 4519d0 <__strtol> - 41eeb8: bf f9 ff ff ff mov $0xfffffff9,%edi - 41eebd: 89 c6 mov %eax,%esi - 41eebf: e8 4c fc ff ff callq 41eb10 <__libc_mallopt> - 41eec4: e9 6b fe ff ff jmpq 41ed34 - 41eec9: 8b 3d c9 b0 2a 00 mov 0x2ab0c9(%rip),%edi # 6c9f98 <__libc_enable_secure> - 41eecf: 85 ff test %edi,%edi - 41eed1: 0f 85 5d fe ff ff jne 41ed34 - 41eed7: ba 09 00 00 00 mov $0x9,%edx - 41eedc: be 00 22 4a 00 mov $0x4a2200,%esi - 41eee1: 48 89 ef mov %rbp,%rdi - 41eee4: e8 47 14 fe ff callq 400330 <__rela_iplt_end+0x68> - 41eee9: 85 c0 test %eax,%eax - 41eeeb: 0f 84 45 01 00 00 je 41f036 - 41eef1: ba 09 00 00 00 mov $0x9,%edx - 41eef6: be 0a 22 4a 00 mov $0x4a220a,%esi - 41eefb: 48 89 ef mov %rbp,%rdi - 41eefe: e8 2d 14 fe ff callq 400330 <__rela_iplt_end+0x68> - 41ef03: 85 c0 test %eax,%eax - 41ef05: 0f 85 29 fe ff ff jne 41ed34 - 41ef0b: 48 8d 7b 11 lea 0x11(%rbx),%rdi - 41ef0f: 31 f6 xor %esi,%esi - 41ef11: ba 0a 00 00 00 mov $0xa,%edx - 41ef16: e8 b5 2a 03 00 callq 4519d0 <__strtol> - 41ef1b: bf f8 ff ff ff mov $0xfffffff8,%edi - 41ef20: 89 c6 mov %eax,%esi - 41ef22: e8 e9 fb ff ff callq 41eb10 <__libc_mallopt> - 41ef27: e9 08 fe ff ff jmpq 41ed34 - 41ef2c: 0f 1f 40 00 nopl 0x0(%rax) - 41ef30: 44 8b 05 61 b0 2a 00 mov 0x2ab061(%rip),%r8d # 6c9f98 <__libc_enable_secure> - 41ef37: 45 85 c0 test %r8d,%r8d - 41ef3a: 0f 85 f4 fd ff ff jne 41ed34 - 41ef40: ba 08 00 00 00 mov $0x8,%edx - 41ef45: be ee 21 4a 00 mov $0x4a21ee,%esi - 41ef4a: 48 89 ef mov %rbp,%rdi - 41ef4d: e8 de 13 fe ff callq 400330 <__rela_iplt_end+0x68> - 41ef52: 85 c0 test %eax,%eax - 41ef54: 0f 84 9a 00 00 00 je 41eff4 - 41ef5a: ba 08 00 00 00 mov $0x8,%edx - 41ef5f: be f7 21 4a 00 mov $0x4a21f7,%esi - 41ef64: 48 89 ef mov %rbp,%rdi - 41ef67: e8 c4 13 fe ff callq 400330 <__rela_iplt_end+0x68> - 41ef6c: 85 c0 test %eax,%eax - 41ef6e: 0f 85 c0 fd ff ff jne 41ed34 - 41ef74: 48 8d 7b 10 lea 0x10(%rbx),%rdi - 41ef78: 31 f6 xor %esi,%esi - 41ef7a: ba 0a 00 00 00 mov $0xa,%edx - 41ef7f: e8 4c 2a 03 00 callq 4519d0 <__strtol> - 41ef84: bf fa ff ff ff mov $0xfffffffa,%edi - 41ef89: 89 c6 mov %eax,%esi - 41ef8b: e8 80 fb ff ff callq 41eb10 <__libc_mallopt> - 41ef90: e9 9f fd ff ff jmpq 41ed34 - 41ef95: 0f 1f 00 nopl (%rax) - 41ef98: ba 06 00 00 00 mov $0x6,%edx - 41ef9d: be b9 4f 4a 00 mov $0x4a4fb9,%esi - 41efa2: 48 89 ef mov %rbp,%rdi - 41efa5: 48 83 c3 0e add $0xe,%rbx - 41efa9: e8 82 13 fe ff callq 400330 <__rela_iplt_end+0x68> - 41efae: 85 c0 test %eax,%eax - 41efb0: 4c 0f 44 eb cmove %rbx,%r13 - 41efb4: e9 7b fd ff ff jmpq 41ed34 - 41efb9: c7 05 49 d6 2a 00 01 movl $0x1,0x2ad649(%rip) # 6cc60c - 41efc0: 00 00 00 - 41efc3: 48 c7 05 ba b7 2a 00 movq $0x41c720,0x2ab7ba(%rip) # 6ca788 <__malloc_hook> - 41efca: 20 c7 41 00 - 41efce: 48 c7 05 0f d6 2a 00 movq $0x4189e0,0x2ad60f(%rip) # 6cc5e8 <__free_hook> - 41efd5: e0 89 41 00 - 41efd9: 48 c7 05 9c b7 2a 00 movq $0x41d180,0x2ab79c(%rip) # 6ca780 <__realloc_hook> - 41efe0: 80 d1 41 00 - 41efe4: 48 c7 05 89 b7 2a 00 movq $0x41c870,0x2ab789(%rip) # 6ca778 <__memalign_hook> - 41efeb: 70 c8 41 00 - 41efef: e9 ca fd ff ff jmpq 41edbe - 41eff4: 48 8d 7b 10 lea 0x10(%rbx),%rdi - 41eff8: 31 f6 xor %esi,%esi - 41effa: ba 0a 00 00 00 mov $0xa,%edx - 41efff: e8 cc 29 03 00 callq 4519d0 <__strtol> - 41f004: bf fe ff ff ff mov $0xfffffffe,%edi - 41f009: 89 c6 mov %eax,%esi - 41f00b: e8 00 fb ff ff callq 41eb10 <__libc_mallopt> - 41f010: e9 1f fd ff ff jmpq 41ed34 - 41f015: 48 8d 7b 17 lea 0x17(%rbx),%rdi - 41f019: 31 f6 xor %esi,%esi - 41f01b: ba 0a 00 00 00 mov $0xa,%edx - 41f020: e8 ab 29 03 00 callq 4519d0 <__strtol> - 41f025: bf ff ff ff ff mov $0xffffffff,%edi - 41f02a: 89 c6 mov %eax,%esi - 41f02c: e8 df fa ff ff callq 41eb10 <__libc_mallopt> - 41f031: e9 fe fc ff ff jmpq 41ed34 - 41f036: 48 8d 7b 11 lea 0x11(%rbx),%rdi - 41f03a: 31 f6 xor %esi,%esi - 41f03c: ba 0a 00 00 00 mov $0xa,%edx - 41f041: e8 8a 29 03 00 callq 4519d0 <__strtol> - 41f046: bf fc ff ff ff mov $0xfffffffc,%edi - 41f04b: 89 c6 mov %eax,%esi - 41f04d: e8 be fa ff ff callq 41eb10 <__libc_mallopt> - 41f052: e9 dd fc ff ff jmpq 41ed34 - 41f057: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 41f05e: 00 00 - -000000000041f060 : - 41f060: 55 push %rbp - 41f061: 53 push %rbx - 41f062: 48 89 fd mov %rdi,%rbp - 41f065: 48 83 ec 08 sub $0x8,%rsp - 41f069: 8b 05 f5 b6 2a 00 mov 0x2ab6f5(%rip),%eax # 6ca764 <__libc_malloc_initialized> - 41f06f: 48 c7 05 0e b7 2a 00 movq $0x0,0x2ab70e(%rip) # 6ca788 <__malloc_hook> - 41f076: 00 00 00 00 - 41f07a: 85 c0 test %eax,%eax - 41f07c: 0f 88 46 01 00 00 js 41f1c8 - 41f082: 31 c0 xor %eax,%eax - 41f084: 48 85 c0 test %rax,%rax - 41f087: 0f 85 50 01 00 00 jne 41f1dd - 41f08d: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax - 41f094: 64 48 8b 18 mov %fs:(%rax),%rbx - 41f098: 48 85 db test %rbx,%rbx - 41f09b: 74 0c je 41f0a9 - 41f09d: 8b 43 04 mov 0x4(%rbx),%eax - 41f0a0: 83 e0 04 and $0x4,%eax - 41f0a3: 0f 84 8f 00 00 00 je 41f138 - 41f0a9: e8 b2 80 ff ff callq 417160 - 41f0ae: 48 85 c0 test %rax,%rax - 41f0b1: 48 89 c3 mov %rax,%rbx - 41f0b4: 0f 84 b6 00 00 00 je 41f170 - 41f0ba: 48 89 ee mov %rbp,%rsi - 41f0bd: 48 89 df mov %rbx,%rdi - 41f0c0: e8 7b c4 ff ff callq 41b540 <_int_malloc> - 41f0c5: 48 85 c0 test %rax,%rax - 41f0c8: 48 89 c2 mov %rax,%rdx - 41f0cb: 0f 84 c7 00 00 00 je 41f198 - 41f0d1: 83 3d e4 e0 2a 00 00 cmpl $0x0,0x2ae0e4(%rip) # 6cd1bc <__libc_multiple_threads> - 41f0d8: 74 07 je 41f0e1 - 41f0da: f0 ff 0b lock decl (%rbx) - 41f0dd: 75 06 jne 41f0e5 - 41f0df: eb 1a jmp 41f0fb - 41f0e1: ff 0b decl (%rbx) - 41f0e3: 74 16 je 41f0fb - 41f0e5: 48 8d 3b lea (%rbx),%rdi - 41f0e8: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41f0ef: e8 0c 35 02 00 callq 442600 <__lll_unlock_wake_private> - 41f0f4: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41f0fb: 48 85 d2 test %rdx,%rdx - 41f0fe: 0f 84 ec 00 00 00 je 41f1f0 - 41f104: 48 8b 42 f8 mov -0x8(%rdx),%rax - 41f108: a8 02 test $0x2,%al - 41f10a: 75 1f jne 41f12b - 41f10c: a8 04 test $0x4,%al - 41f10e: b9 00 a8 6c 00 mov $0x6ca800,%ecx - 41f113: 74 0d je 41f122 - 41f115: 48 8d 42 f0 lea -0x10(%rdx),%rax - 41f119: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax - 41f11f: 48 8b 08 mov (%rax),%rcx - 41f122: 48 39 d9 cmp %rbx,%rcx - 41f125: 0f 85 cc 00 00 00 jne 41f1f7 - 41f12b: 48 89 d0 mov %rdx,%rax - 41f12e: 48 83 c4 08 add $0x8,%rsp - 41f132: 5b pop %rbx - 41f133: 5d pop %rbp - 41f134: c3 retq - 41f135: 0f 1f 00 nopl (%rax) - 41f138: be 01 00 00 00 mov $0x1,%esi - 41f13d: 83 3d 78 e0 2a 00 00 cmpl $0x0,0x2ae078(%rip) # 6cd1bc <__libc_multiple_threads> - 41f144: 74 08 je 41f14e - 41f146: f0 0f b1 33 lock cmpxchg %esi,(%rbx) - 41f14a: 75 07 jne 41f153 - 41f14c: eb 1b jmp 41f169 - 41f14e: 0f b1 33 cmpxchg %esi,(%rbx) - 41f151: 74 16 je 41f169 - 41f153: 48 8d 3b lea (%rbx),%rdi - 41f156: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41f15d: e8 6e 34 02 00 callq 4425d0 <__lll_lock_wait_private> - 41f162: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41f169: e9 4c ff ff ff jmpq 41f0ba - 41f16e: 66 90 xchg %ax,%ax - 41f170: 31 f6 xor %esi,%esi - 41f172: 48 89 ef mov %rbp,%rdi - 41f175: e8 d6 82 ff ff callq 417450 - 41f17a: 48 89 ee mov %rbp,%rsi - 41f17d: 48 89 c7 mov %rax,%rdi - 41f180: 48 89 c3 mov %rax,%rbx - 41f183: e8 b8 c3 ff ff callq 41b540 <_int_malloc> - 41f188: 48 85 c0 test %rax,%rax - 41f18b: 48 89 c2 mov %rax,%rdx - 41f18e: 75 25 jne 41f1b5 - 41f190: 48 85 db test %rbx,%rbx - 41f193: 74 20 je 41f1b5 - 41f195: 0f 1f 00 nopl (%rax) - 41f198: 90 nop - 41f199: 48 89 df mov %rbx,%rdi - 41f19c: 48 89 ee mov %rbp,%rsi - 41f19f: e8 4c 88 ff ff callq 4179f0 - 41f1a4: 48 89 ee mov %rbp,%rsi - 41f1a7: 48 89 c7 mov %rax,%rdi - 41f1aa: 48 89 c3 mov %rax,%rbx - 41f1ad: e8 8e c3 ff ff callq 41b540 <_int_malloc> - 41f1b2: 48 89 c2 mov %rax,%rdx - 41f1b5: 48 85 db test %rbx,%rbx - 41f1b8: 0f 85 13 ff ff ff jne 41f0d1 - 41f1be: e9 38 ff ff ff jmpq 41f0fb - 41f1c3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41f1c8: e8 23 fb ff ff callq 41ecf0 - 41f1cd: 48 8b 05 b4 b5 2a 00 mov 0x2ab5b4(%rip),%rax # 6ca788 <__malloc_hook> - 41f1d4: 48 85 c0 test %rax,%rax - 41f1d7: 0f 84 b0 fe ff ff je 41f08d - 41f1dd: 48 8b 74 24 18 mov 0x18(%rsp),%rsi - 41f1e2: 48 83 c4 08 add $0x8,%rsp - 41f1e6: 48 89 ef mov %rbp,%rdi - 41f1e9: 5b pop %rbx - 41f1ea: 5d pop %rbp - 41f1eb: ff e0 jmpq *%rax - 41f1ed: 0f 1f 00 nopl (%rax) - 41f1f0: 31 c0 xor %eax,%eax - 41f1f2: e9 37 ff ff ff jmpq 41f12e - 41f1f7: b9 48 2e 4a 00 mov $0x4a2e48,%ecx - 41f1fc: ba 6f 0b 00 00 mov $0xb6f,%edx - 41f201: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41f206: bf 58 29 4a 00 mov $0x4a2958,%edi - 41f20b: e8 10 7c ff ff callq 416e20 <__malloc_assert> - -000000000041f210 : - 41f210: 41 57 push %r15 - 41f212: 41 56 push %r14 - 41f214: 41 55 push %r13 - 41f216: 41 54 push %r12 - 41f218: 49 89 f5 mov %rsi,%r13 - 41f21b: 55 push %rbp - 41f21c: 53 push %rbx - 41f21d: 48 89 fb mov %rdi,%rbx - 41f220: 48 83 ec 38 sub $0x38,%rsp - 41f224: 8b 05 3a b5 2a 00 mov 0x2ab53a(%rip),%eax # 6ca764 <__libc_malloc_initialized> - 41f22a: 48 c7 05 53 b5 2a 00 movq $0x0,0x2ab553(%rip) # 6ca788 <__malloc_hook> - 41f231: 00 00 00 00 - 41f235: 48 c7 05 40 b5 2a 00 movq $0x0,0x2ab540(%rip) # 6ca780 <__realloc_hook> - 41f23c: 00 00 00 00 - 41f240: 85 c0 test %eax,%eax - 41f242: 0f 88 18 02 00 00 js 41f460 - 41f248: 31 c0 xor %eax,%eax - 41f24a: 48 85 c0 test %rax,%rax - 41f24d: 0f 85 25 02 00 00 jne 41f478 - 41f253: 4d 85 ed test %r13,%r13 - 41f256: 75 09 jne 41f261 - 41f258: 48 85 db test %rbx,%rbx - 41f25b: 0f 85 8f 02 00 00 jne 41f4f0 - 41f261: 48 85 db test %rbx,%rbx - 41f264: 0f 84 1e 03 00 00 je 41f588 - 41f26a: 48 8b 43 f8 mov -0x8(%rbx),%rax - 41f26e: 4c 8d 73 f0 lea -0x10(%rbx),%r14 - 41f272: 49 89 c7 mov %rax,%r15 - 41f275: 48 89 c1 mov %rax,%rcx - 41f278: 49 83 e7 f8 and $0xfffffffffffffff8,%r15 - 41f27c: 83 e1 02 and $0x2,%ecx - 41f27f: 74 7f je 41f300 - 41f281: 4c 89 f8 mov %r15,%rax - 41f284: 48 f7 d8 neg %rax - 41f287: 49 39 c6 cmp %rax,%r14 - 41f28a: 0f 87 50 03 00 00 ja 41f5e0 - 41f290: 41 f6 c6 0f test $0xf,%r14b - 41f294: 0f 85 46 03 00 00 jne 41f5e0 - 41f29a: 45 31 e4 xor %r12d,%r12d - 41f29d: 49 83 fd bf cmp $0xffffffffffffffbf,%r13 - 41f2a1: 0f 87 e9 01 00 00 ja 41f490 - 41f2a7: 49 8d 45 17 lea 0x17(%r13),%rax - 41f2ab: 48 89 c2 mov %rax,%rdx - 41f2ae: 48 83 e2 f0 and $0xfffffffffffffff0,%rdx - 41f2b2: 48 83 f8 20 cmp $0x20,%rax - 41f2b6: b8 20 00 00 00 mov $0x20,%eax - 41f2bb: 48 0f 42 d0 cmovb %rax,%rdx - 41f2bf: 48 85 c9 test %rcx,%rcx - 41f2c2: 0f 84 98 00 00 00 je 41f360 - 41f2c8: 48 89 d6 mov %rdx,%rsi - 41f2cb: 4c 89 f7 mov %r14,%rdi - 41f2ce: 48 89 54 24 08 mov %rdx,0x8(%rsp) - 41f2d3: e8 48 7d ff ff callq 417020 - 41f2d8: 48 85 c0 test %rax,%rax - 41f2db: 48 8d 68 10 lea 0x10(%rax),%rbp - 41f2df: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 41f2e4: 0f 84 be 01 00 00 je 41f4a8 - 41f2ea: 48 83 c4 38 add $0x38,%rsp - 41f2ee: 48 89 e8 mov %rbp,%rax - 41f2f1: 5b pop %rbx - 41f2f2: 5d pop %rbp - 41f2f3: 41 5c pop %r12 - 41f2f5: 41 5d pop %r13 - 41f2f7: 41 5e pop %r14 - 41f2f9: 41 5f pop %r15 - 41f2fb: c3 retq - 41f2fc: 0f 1f 40 00 nopl 0x0(%rax) - 41f300: a8 04 test $0x4,%al - 41f302: 0f 84 28 01 00 00 je 41f430 - 41f308: 4c 89 f0 mov %r14,%rax - 41f30b: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax - 41f311: 4c 8b 20 mov (%rax),%r12 - 41f314: 4c 89 f8 mov %r15,%rax - 41f317: 48 f7 d8 neg %rax - 41f31a: 49 39 c6 cmp %rax,%r14 - 41f31d: 77 0a ja 41f329 - 41f31f: 41 f6 c6 0f test $0xf,%r14b - 41f323: 0f 84 74 ff ff ff je 41f29d - 41f329: 4d 85 e4 test %r12,%r12 - 41f32c: 8b 2d 3e b4 2a 00 mov 0x2ab43e(%rip),%ebp # 6ca770 - 41f332: 74 06 je 41f33a - 41f334: 41 83 4c 24 04 04 orl $0x4,0x4(%r12) - 41f33a: 89 e8 mov %ebp,%eax - 41f33c: 83 e0 05 and $0x5,%eax - 41f33f: 83 f8 05 cmp $0x5,%eax - 41f342: 0f 84 a8 02 00 00 je 41f5f0 - 41f348: 40 f6 c5 01 test $0x1,%bpl - 41f34c: 0f 85 ae 01 00 00 jne 41f500 - 41f352: 83 e5 02 and $0x2,%ebp - 41f355: 0f 85 b2 02 00 00 jne 41f60d - 41f35b: 31 ed xor %ebp,%ebp - 41f35d: eb 8b jmp 41f2ea - 41f35f: 90 nop - 41f360: be 01 00 00 00 mov $0x1,%esi - 41f365: 31 c0 xor %eax,%eax - 41f367: 83 3d 4e de 2a 00 00 cmpl $0x0,0x2ade4e(%rip) # 6cd1bc <__libc_multiple_threads> - 41f36e: 74 0a je 41f37a - 41f370: f0 41 0f b1 34 24 lock cmpxchg %esi,(%r12) - 41f376: 75 09 jne 41f381 - 41f378: eb 1e jmp 41f398 - 41f37a: 41 0f b1 34 24 cmpxchg %esi,(%r12) - 41f37f: 74 17 je 41f398 - 41f381: 49 8d 3c 24 lea (%r12),%rdi - 41f385: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41f38c: e8 3f 32 02 00 callq 4425d0 <__lll_lock_wait_private> - 41f391: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41f398: 48 89 d1 mov %rdx,%rcx - 41f39b: 4c 89 f6 mov %r14,%rsi - 41f39e: 4c 89 fa mov %r15,%rdx - 41f3a1: 4c 89 e7 mov %r12,%rdi - 41f3a4: e8 b7 d6 ff ff callq 41ca60 <_int_realloc> - 41f3a9: 48 89 c5 mov %rax,%rbp - 41f3ac: 83 3d 09 de 2a 00 00 cmpl $0x0,0x2ade09(%rip) # 6cd1bc <__libc_multiple_threads> - 41f3b3: 74 09 je 41f3be - 41f3b5: f0 41 ff 0c 24 lock decl (%r12) - 41f3ba: 75 08 jne 41f3c4 - 41f3bc: eb 1d jmp 41f3db - 41f3be: 41 ff 0c 24 decl (%r12) - 41f3c2: 74 17 je 41f3db - 41f3c4: 49 8d 3c 24 lea (%r12),%rdi - 41f3c8: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41f3cf: e8 2c 32 02 00 callq 442600 <__lll_unlock_wake_private> - 41f3d4: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41f3db: 48 85 ed test %rbp,%rbp - 41f3de: 0f 84 bc 01 00 00 je 41f5a0 - 41f3e4: 48 8b 45 f8 mov -0x8(%rbp),%rax - 41f3e8: a8 02 test $0x2,%al - 41f3ea: 0f 85 fa fe ff ff jne 41f2ea - 41f3f0: a8 04 test $0x4,%al - 41f3f2: ba 00 a8 6c 00 mov $0x6ca800,%edx - 41f3f7: 74 0d je 41f406 - 41f3f9: 48 8d 45 f0 lea -0x10(%rbp),%rax - 41f3fd: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax - 41f403: 48 8b 10 mov (%rax),%rdx - 41f406: 4c 39 e2 cmp %r12,%rdx - 41f409: 0f 84 db fe ff ff je 41f2ea - 41f40f: b9 18 2e 4a 00 mov $0x4a2e18,%ecx - 41f414: ba e9 0b 00 00 mov $0xbe9,%edx - 41f419: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41f41e: bf c0 29 4a 00 mov $0x4a29c0,%edi - 41f423: e8 f8 79 ff ff callq 416e20 <__malloc_assert> - 41f428: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41f42f: 00 - 41f430: 4c 89 f8 mov %r15,%rax - 41f433: 48 f7 d8 neg %rax - 41f436: 49 39 c6 cmp %rax,%r14 - 41f439: 77 10 ja 41f44b - 41f43b: 41 f6 c6 0f test $0xf,%r14b - 41f43f: 41 bc 00 a8 6c 00 mov $0x6ca800,%r12d - 41f445: 0f 84 52 fe ff ff je 41f29d - 41f44b: 8b 2d 1f b3 2a 00 mov 0x2ab31f(%rip),%ebp # 6ca770 - 41f451: 41 bc 00 a8 6c 00 mov $0x6ca800,%r12d - 41f457: e9 d8 fe ff ff jmpq 41f334 - 41f45c: 0f 1f 40 00 nopl 0x0(%rax) - 41f460: e8 8b f8 ff ff callq 41ecf0 - 41f465: 48 8b 05 14 b3 2a 00 mov 0x2ab314(%rip),%rax # 6ca780 <__realloc_hook> - 41f46c: 48 85 c0 test %rax,%rax - 41f46f: 0f 84 de fd ff ff je 41f253 - 41f475: 0f 1f 00 nopl (%rax) - 41f478: 48 8b 54 24 68 mov 0x68(%rsp),%rdx - 41f47d: 4c 89 ee mov %r13,%rsi - 41f480: 48 89 df mov %rbx,%rdi - 41f483: ff d0 callq *%rax - 41f485: 48 89 c5 mov %rax,%rbp - 41f488: e9 5d fe ff ff jmpq 41f2ea - 41f48d: 0f 1f 00 nopl (%rax) - 41f490: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41f497: 31 ed xor %ebp,%ebp - 41f499: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) - 41f4a0: e9 45 fe ff ff jmpq 41f2ea - 41f4a5: 0f 1f 00 nopl (%rax) - 41f4a8: 49 8d 47 f8 lea -0x8(%r15),%rax - 41f4ac: 48 89 dd mov %rbx,%rbp - 41f4af: 48 39 c2 cmp %rax,%rdx - 41f4b2: 0f 86 32 fe ff ff jbe 41f2ea - 41f4b8: 4c 89 ef mov %r13,%rdi - 41f4bb: e8 50 e5 ff ff callq 41da10 <__libc_malloc> - 41f4c0: 48 85 c0 test %rax,%rax - 41f4c3: 48 89 c3 mov %rax,%rbx - 41f4c6: 0f 84 8f fe ff ff je 41f35b - 41f4cc: 49 8d 57 f0 lea -0x10(%r15),%rdx - 41f4d0: 48 89 ee mov %rbp,%rsi - 41f4d3: 48 89 c7 mov %rax,%rdi - 41f4d6: 48 89 dd mov %rbx,%rbp - 41f4d9: e8 42 cb 00 00 callq 42c020 - 41f4de: 4c 89 f7 mov %r14,%rdi - 41f4e1: e8 0a 88 ff ff callq 417cf0 - 41f4e6: e9 ff fd ff ff jmpq 41f2ea - 41f4eb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41f4f0: 48 89 df mov %rbx,%rdi - 41f4f3: 31 ed xor %ebp,%ebp - 41f4f5: e8 b6 e8 ff ff callq 41ddb0 <__cfree> - 41f4fa: e9 eb fd ff ff jmpq 41f2ea - 41f4ff: 90 nop - 41f500: 4c 8d 64 24 10 lea 0x10(%rsp),%r12 - 41f505: 48 8d 74 24 20 lea 0x20(%rsp),%rsi - 41f50a: 31 c9 xor %ecx,%ecx - 41f50c: 48 89 df mov %rbx,%rdi - 41f50f: ba 10 00 00 00 mov $0x10,%edx - 41f514: c6 44 24 20 00 movb $0x0,0x20(%rsp) - 41f519: e8 92 29 03 00 callq 451eb0 <_itoa_word> - 41f51e: 4c 39 e0 cmp %r12,%rax - 41f521: 48 89 c3 mov %rax,%rbx - 41f524: 76 25 jbe 41f54b - 41f526: 48 89 c2 mov %rax,%rdx - 41f529: 48 89 c7 mov %rax,%rdi - 41f52c: be 30 00 00 00 mov $0x30,%esi - 41f531: 4c 29 e2 sub %r12,%rdx - 41f534: 4c 8d 68 ff lea -0x1(%rax),%r13 - 41f538: 48 29 d7 sub %rdx,%rdi - 41f53b: e8 10 0e fe ff callq 400350 <__rela_iplt_end+0x88> - 41f540: 48 8d 44 24 0f lea 0xf(%rsp),%rax - 41f545: 4c 29 e8 sub %r13,%rax - 41f548: 48 01 c3 add %rax,%rbx - 41f54b: 48 8b 05 6e dd 2a 00 mov 0x2add6e(%rip),%rax # 6cd2c0 <__libc_argv> - 41f552: 89 ef mov %ebp,%edi - 41f554: ba 38 20 4a 00 mov $0x4a2038,%edx - 41f559: 49 89 d8 mov %rbx,%r8 - 41f55c: b9 c6 21 4a 00 mov $0x4a21c6,%ecx - 41f561: be a8 23 4a 00 mov $0x4a23a8,%esi - 41f566: 48 8b 00 mov (%rax),%rax - 41f569: 48 85 c0 test %rax,%rax - 41f56c: 48 0f 45 d0 cmovne %rax,%rdx - 41f570: 83 e7 02 and $0x2,%edi - 41f573: 31 c0 xor %eax,%eax - 41f575: e8 46 20 ff ff callq 4115c0 <__libc_message> - 41f57a: 31 ed xor %ebp,%ebp - 41f57c: e9 69 fd ff ff jmpq 41f2ea - 41f581: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41f588: 4c 89 ef mov %r13,%rdi - 41f58b: e8 80 e4 ff ff callq 41da10 <__libc_malloc> - 41f590: 48 89 c5 mov %rax,%rbp - 41f593: e9 52 fd ff ff jmpq 41f2ea - 41f598: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41f59f: 00 - 41f5a0: 90 nop - 41f5a1: 4c 89 ef mov %r13,%rdi - 41f5a4: 31 ed xor %ebp,%ebp - 41f5a6: e8 65 e4 ff ff callq 41da10 <__libc_malloc> - 41f5ab: 48 85 c0 test %rax,%rax - 41f5ae: 49 89 c5 mov %rax,%r13 - 41f5b1: 0f 84 33 fd ff ff je 41f2ea - 41f5b7: 49 8d 57 f8 lea -0x8(%r15),%rdx - 41f5bb: 48 89 de mov %rbx,%rsi - 41f5be: 48 89 c7 mov %rax,%rdi - 41f5c1: 4c 89 ed mov %r13,%rbp - 41f5c4: e8 57 ca 00 00 callq 42c020 - 41f5c9: 31 d2 xor %edx,%edx - 41f5cb: 4c 89 f6 mov %r14,%rsi - 41f5ce: 4c 89 e7 mov %r12,%rdi - 41f5d1: e8 ea a1 ff ff callq 4197c0 <_int_free> - 41f5d6: e9 0f fd ff ff jmpq 41f2ea - 41f5db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41f5e0: 8b 2d 8a b1 2a 00 mov 0x2ab18a(%rip),%ebp # 6ca770 - 41f5e6: e9 4f fd ff ff jmpq 41f33a - 41f5eb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41f5f0: 89 ef mov %ebp,%edi - 41f5f2: ba c6 21 4a 00 mov $0x4a21c6,%edx - 41f5f7: be 3c ca 4b 00 mov $0x4bca3c,%esi - 41f5fc: 83 e7 02 and $0x2,%edi - 41f5ff: 31 c0 xor %eax,%eax - 41f601: 31 ed xor %ebp,%ebp - 41f603: e8 b8 1f ff ff callq 4115c0 <__libc_message> - 41f608: e9 dd fc ff ff jmpq 41f2ea - 41f60d: e8 ee e5 fe ff callq 40dc00 - 41f612: 0f 1f 40 00 nopl 0x0(%rax) - 41f616: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41f61d: 00 00 00 - -000000000041f620 : - 41f620: 41 54 push %r12 - 41f622: 55 push %rbp - 41f623: 49 89 f4 mov %rsi,%r12 - 41f626: 53 push %rbx - 41f627: 48 83 ec 10 sub $0x10,%rsp - 41f62b: 8b 05 33 b1 2a 00 mov 0x2ab133(%rip),%eax # 6ca764 <__libc_malloc_initialized> - 41f631: 48 c7 05 3c b1 2a 00 movq $0x0,0x2ab13c(%rip) # 6ca778 <__memalign_hook> - 41f638: 00 00 00 00 - 41f63c: 85 c0 test %eax,%eax - 41f63e: 0f 88 f4 01 00 00 js 41f838 - 41f644: 48 8b 05 2d b1 2a 00 mov 0x2ab12d(%rip),%rax # 6ca778 <__memalign_hook> - 41f64b: 48 8b 54 24 28 mov 0x28(%rsp),%rdx - 41f650: 48 85 c0 test %rax,%rax - 41f653: 0f 85 07 02 00 00 jne 41f860 - 41f659: 48 83 ff 10 cmp $0x10,%rdi - 41f65d: 0f 86 ed 01 00 00 jbe 41f850 - 41f663: 48 83 ff 1f cmp $0x1f,%rdi - 41f667: 0f 87 e3 00 00 00 ja 41f750 - 41f66d: 49 83 fc bf cmp $0xffffffffffffffbf,%r12 - 41f671: 0f 87 11 02 00 00 ja 41f888 - 41f677: bb 20 00 00 00 mov $0x20,%ebx - 41f67c: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax - 41f683: 64 48 8b 28 mov %fs:(%rax),%rbp - 41f687: 48 85 ed test %rbp,%rbp - 41f68a: 0f 84 18 01 00 00 je 41f7a8 - 41f690: 8b 45 04 mov 0x4(%rbp),%eax - 41f693: 83 e0 04 and $0x4,%eax - 41f696: 0f 85 0c 01 00 00 jne 41f7a8 - 41f69c: be 01 00 00 00 mov $0x1,%esi - 41f6a1: 83 3d 14 db 2a 00 00 cmpl $0x0,0x2adb14(%rip) # 6cd1bc <__libc_multiple_threads> - 41f6a8: 74 09 je 41f6b3 - 41f6aa: f0 0f b1 75 00 lock cmpxchg %esi,0x0(%rbp) - 41f6af: 75 08 jne 41f6b9 - 41f6b1: eb 1d jmp 41f6d0 - 41f6b3: 0f b1 75 00 cmpxchg %esi,0x0(%rbp) - 41f6b7: 74 17 je 41f6d0 - 41f6b9: 48 8d 7d 00 lea 0x0(%rbp),%rdi - 41f6bd: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41f6c4: e8 07 2f 02 00 callq 4425d0 <__lll_lock_wait_private> - 41f6c9: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41f6d0: 4c 89 e2 mov %r12,%rdx - 41f6d3: 48 89 de mov %rbx,%rsi - 41f6d6: 48 89 ef mov %rbp,%rdi - 41f6d9: e8 32 ce ff ff callq 41c510 <_int_memalign> - 41f6de: 48 85 c0 test %rax,%rax - 41f6e1: 48 89 c2 mov %rax,%rdx - 41f6e4: 0f 84 fe 00 00 00 je 41f7e8 - 41f6ea: 83 3d cb da 2a 00 00 cmpl $0x0,0x2adacb(%rip) # 6cd1bc <__libc_multiple_threads> - 41f6f1: 74 08 je 41f6fb - 41f6f3: f0 ff 4d 00 lock decl 0x0(%rbp) - 41f6f7: 75 07 jne 41f700 - 41f6f9: eb 1c jmp 41f717 - 41f6fb: ff 4d 00 decl 0x0(%rbp) - 41f6fe: 74 17 je 41f717 - 41f700: 48 8d 7d 00 lea 0x0(%rbp),%rdi - 41f704: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41f70b: e8 f0 2e 02 00 callq 442600 <__lll_unlock_wake_private> - 41f710: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41f717: 48 85 d2 test %rdx,%rdx - 41f71a: 0f 84 80 01 00 00 je 41f8a0 - 41f720: 48 8b 42 f8 mov -0x8(%rdx),%rax - 41f724: a8 02 test $0x2,%al - 41f726: 75 16 jne 41f73e - 41f728: a8 04 test $0x4,%al - 41f72a: b9 00 a8 6c 00 mov $0x6ca800,%ecx - 41f72f: 0f 85 eb 00 00 00 jne 41f820 - 41f735: 48 39 e9 cmp %rbp,%rcx - 41f738: 0f 85 69 01 00 00 jne 41f8a7 - 41f73e: 48 89 d0 mov %rdx,%rax - 41f741: 48 83 c4 10 add $0x10,%rsp - 41f745: 5b pop %rbx - 41f746: 5d pop %rbp - 41f747: 41 5c pop %r12 - 41f749: c3 retq - 41f74a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41f750: 48 b8 00 00 00 00 00 movabs $0x8000000000000000,%rax - 41f757: 00 00 80 - 41f75a: 48 39 c7 cmp %rax,%rdi - 41f75d: 0f 87 0d 01 00 00 ja 41f870 - 41f763: 48 c7 c0 df ff ff ff mov $0xffffffffffffffdf,%rax - 41f76a: 48 29 f8 sub %rdi,%rax - 41f76d: 49 39 c4 cmp %rax,%r12 - 41f770: 0f 87 12 01 00 00 ja 41f888 - 41f776: 48 8d 47 ff lea -0x1(%rdi),%rax - 41f77a: 48 85 f8 test %rdi,%rax - 41f77d: 0f 84 3d 01 00 00 je 41f8c0 - 41f783: 48 83 ff 20 cmp $0x20,%rdi - 41f787: bb 20 00 00 00 mov $0x20,%ebx - 41f78c: 0f 84 ea fe ff ff je 41f67c - 41f792: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41f798: 48 01 db add %rbx,%rbx - 41f79b: 48 39 df cmp %rbx,%rdi - 41f79e: 77 f8 ja 41f798 - 41f7a0: e9 d7 fe ff ff jmpq 41f67c - 41f7a5: 0f 1f 00 nopl (%rax) - 41f7a8: e8 b3 79 ff ff callq 417160 - 41f7ad: 48 85 c0 test %rax,%rax - 41f7b0: 48 89 c5 mov %rax,%rbp - 41f7b3: 0f 85 17 ff ff ff jne 41f6d0 - 41f7b9: 4a 8d 7c 23 20 lea 0x20(%rbx,%r12,1),%rdi - 41f7be: 31 f6 xor %esi,%esi - 41f7c0: e8 8b 7c ff ff callq 417450 - 41f7c5: 4c 89 e2 mov %r12,%rdx - 41f7c8: 48 89 de mov %rbx,%rsi - 41f7cb: 48 89 c7 mov %rax,%rdi - 41f7ce: 48 89 c5 mov %rax,%rbp - 41f7d1: e8 3a cd ff ff callq 41c510 <_int_memalign> - 41f7d6: 48 85 c0 test %rax,%rax - 41f7d9: 48 89 c2 mov %rax,%rdx - 41f7dc: 75 2a jne 41f808 - 41f7de: 48 85 ed test %rbp,%rbp - 41f7e1: 74 25 je 41f808 - 41f7e3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41f7e8: 90 nop - 41f7e9: 48 89 ef mov %rbp,%rdi - 41f7ec: 4c 89 e6 mov %r12,%rsi - 41f7ef: e8 fc 81 ff ff callq 4179f0 - 41f7f4: 4c 89 e2 mov %r12,%rdx - 41f7f7: 48 89 de mov %rbx,%rsi - 41f7fa: 48 89 c7 mov %rax,%rdi - 41f7fd: 48 89 c5 mov %rax,%rbp - 41f800: e8 0b cd ff ff callq 41c510 <_int_memalign> - 41f805: 48 89 c2 mov %rax,%rdx - 41f808: 48 85 ed test %rbp,%rbp - 41f80b: 0f 85 d9 fe ff ff jne 41f6ea - 41f811: e9 01 ff ff ff jmpq 41f717 - 41f816: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41f81d: 00 00 00 - 41f820: 48 8d 42 f0 lea -0x10(%rdx),%rax - 41f824: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax - 41f82a: 48 8b 08 mov (%rax),%rcx - 41f82d: e9 03 ff ff ff jmpq 41f735 - 41f832: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41f838: 48 89 7c 24 08 mov %rdi,0x8(%rsp) - 41f83d: e8 ae f4 ff ff callq 41ecf0 - 41f842: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi - 41f847: e9 f8 fd ff ff jmpq 41f644 - 41f84c: 0f 1f 40 00 nopl 0x0(%rax) - 41f850: 48 83 c4 10 add $0x10,%rsp - 41f854: 4c 89 e7 mov %r12,%rdi - 41f857: 5b pop %rbx - 41f858: 5d pop %rbp - 41f859: 41 5c pop %r12 - 41f85b: e9 b0 e1 ff ff jmpq 41da10 <__libc_malloc> - 41f860: 48 83 c4 10 add $0x10,%rsp - 41f864: 4c 89 e6 mov %r12,%rsi - 41f867: 5b pop %rbx - 41f868: 5d pop %rbp - 41f869: 41 5c pop %r12 - 41f86b: ff e0 jmpq *%rax - 41f86d: 0f 1f 00 nopl (%rax) - 41f870: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41f877: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) - 41f87e: 31 c0 xor %eax,%eax - 41f880: e9 bc fe ff ff jmpq 41f741 - 41f885: 0f 1f 00 nopl (%rax) - 41f888: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 41f88f: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) - 41f896: 31 c0 xor %eax,%eax - 41f898: e9 a4 fe ff ff jmpq 41f741 - 41f89d: 0f 1f 00 nopl (%rax) - 41f8a0: 31 c0 xor %eax,%eax - 41f8a2: e9 9a fe ff ff jmpq 41f741 - 41f8a7: b9 08 2e 4a 00 mov $0x4a2e08,%ecx - 41f8ac: ba 3c 0c 00 00 mov $0xc3c,%edx - 41f8b1: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 41f8b6: bf 20 2a 4a 00 mov $0x4a2a20,%edi - 41f8bb: e8 60 75 ff ff callq 416e20 <__malloc_assert> - 41f8c0: 48 89 fb mov %rdi,%rbx - 41f8c3: e9 b4 fd ff ff jmpq 41f67c - 41f8c8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41f8cf: 00 - -000000000041f8d0 <__malloc_set_state>: - 41f8d0: 44 8b 05 8d ae 2a 00 mov 0x2aae8d(%rip),%r8d # 6ca764 <__libc_malloc_initialized> - 41f8d7: 53 push %rbx - 41f8d8: 48 89 fb mov %rdi,%rbx - 41f8db: c7 05 23 cd 2a 00 01 movl $0x1,0x2acd23(%rip) # 6cc608 - 41f8e2: 00 00 00 - 41f8e5: 45 85 c0 test %r8d,%r8d - 41f8e8: 0f 88 df 04 00 00 js 41fdcd <__malloc_set_state+0x4fd> - 41f8ee: 48 81 3b 41 45 4c 44 cmpq $0x444c4541,(%rbx) - 41f8f5: 0f 85 e4 04 00 00 jne 41fddf <__malloc_set_state+0x50f> - 41f8fb: 48 f7 43 08 00 ff ff testq $0xffffffffffffff00,0x8(%rbx) - 41f902: ff - 41f903: 0f 8f dd 04 00 00 jg 41fde6 <__malloc_set_state+0x516> - 41f909: be 01 00 00 00 mov $0x1,%esi - 41f90e: 31 c0 xor %eax,%eax - 41f910: 83 3d a5 d8 2a 00 00 cmpl $0x0,0x2ad8a5(%rip) # 6cd1bc <__libc_multiple_threads> - 41f917: 74 0c je 41f925 <__malloc_set_state+0x55> - 41f919: f0 0f b1 35 df ae 2a lock cmpxchg %esi,0x2aaedf(%rip) # 6ca800 - 41f920: 00 - 41f921: 75 0b jne 41f92e <__malloc_set_state+0x5e> - 41f923: eb 23 jmp 41f948 <__malloc_set_state+0x78> - 41f925: 0f b1 35 d4 ae 2a 00 cmpxchg %esi,0x2aaed4(%rip) # 6ca800 - 41f92c: 74 1a je 41f948 <__malloc_set_state+0x78> - 41f92e: 48 8d 3d cb ae 2a 00 lea 0x2aaecb(%rip),%rdi # 6ca800 - 41f935: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41f93c: e8 8f 2c 02 00 callq 4425d0 <__lll_lock_wait_private> - 41f941: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41f948: 64 83 3c 25 18 00 00 cmpl $0x0,%fs:0x18 - 41f94f: 00 00 - 41f951: 74 01 je 41f954 <__malloc_set_state+0x84> - 41f953: f0 83 0d a9 ae 2a 00 lock orl $0x1,0x2aaea9(%rip) # 6ca804 - 41f95a: 01 - 41f95b: 48 83 7b 08 03 cmpq $0x3,0x8(%rbx) - 41f960: 0f 8f 0d 01 00 00 jg 41fa73 <__malloc_set_state+0x1a3> - 41f966: 48 c7 05 c7 cc 2a 00 movq $0x40,0x2accc7(%rip) # 6cc638 - 41f96d: 40 00 00 00 - 41f971: ba 08 a8 6c 00 mov $0x6ca808,%edx - 41f976: 31 c0 xor %eax,%eax - 41f978: b9 0a 00 00 00 mov $0xa,%ecx - 41f97d: 48 89 d7 mov %rdx,%rdi - 41f980: c7 05 ce b6 2a 00 00 movl $0x0,0x2ab6ce(%rip) # 6cb058 - 41f987: 00 00 00 - 41f98a: c7 05 c8 b6 2a 00 00 movl $0x0,0x2ab6c8(%rip) # 6cb05c - 41f991: 00 00 00 - 41f994: f3 48 ab rep stos %rax,%es:(%rdi) - 41f997: c7 05 bf b6 2a 00 00 movl $0x0,0x2ab6bf(%rip) # 6cb060 - 41f99e: 00 00 00 - 41f9a1: c7 05 b9 b6 2a 00 00 movl $0x0,0x2ab6b9(%rip) # 6cb064 - 41f9a8: 00 00 00 - 41f9ab: 48 8d 53 38 lea 0x38(%rbx),%rdx - 41f9af: b9 01 00 00 00 mov $0x1,%ecx - 41f9b4: 41 b8 01 00 00 00 mov $0x1,%r8d - 41f9ba: 41 b9 7e 00 00 00 mov $0x7e,%r9d - 41f9c0: 48 8b 43 20 mov 0x20(%rbx),%rax - 41f9c4: 48 c7 05 91 ae 2a 00 movq $0x0,0x2aae91(%rip) # 6ca860 - 41f9cb: 00 00 00 00 - 41f9cf: 48 89 05 82 ae 2a 00 mov %rax,0x2aae82(%rip) # 6ca858 - 41f9d6: b8 58 a8 6c 00 mov $0x6ca858,%eax - 41f9db: eb 50 jmp 41fa2d <__malloc_set_state+0x15d> - 41f9dd: 0f 1f 00 nopl (%rax) - 41f9e0: 48 83 f9 3f cmp $0x3f,%rcx - 41f9e4: 0f 87 b6 00 00 00 ja 41faa0 <__malloc_set_state+0x1d0> - 41f9ea: 48 8b 3a mov (%rdx),%rdi - 41f9ed: 48 89 78 18 mov %rdi,0x18(%rax) - 41f9f1: 48 89 70 10 mov %rsi,0x10(%rax) - 41f9f5: 44 89 c7 mov %r8d,%edi - 41f9f8: 48 89 46 18 mov %rax,0x18(%rsi) - 41f9fc: 48 8b 70 18 mov 0x18(%rax),%rsi - 41fa00: d3 e7 shl %cl,%edi - 41fa02: 48 89 46 10 mov %rax,0x10(%rsi) - 41fa06: 48 89 ce mov %rcx,%rsi - 41fa09: 48 c1 ee 05 shr $0x5,%rsi - 41fa0d: 09 3c b5 58 b0 6c 00 or %edi,0x6cb058(,%rsi,4) - 41fa14: 48 83 c1 01 add $0x1,%rcx - 41fa18: 48 83 c0 10 add $0x10,%rax - 41fa1c: 48 83 c2 10 add $0x10,%rdx - 41fa20: 48 81 f9 80 00 00 00 cmp $0x80,%rcx - 41fa27: 0f 84 6b 01 00 00 je 41fb98 <__malloc_set_state+0x2c8> - 41fa2d: 48 8b 72 f8 mov -0x8(%rdx),%rsi - 41fa31: 48 85 f6 test %rsi,%rsi - 41fa34: 0f 84 a6 00 00 00 je 41fae0 <__malloc_set_state+0x210> - 41fa3a: 48 83 7b 08 02 cmpq $0x2,0x8(%rbx) - 41fa3f: 7f 9f jg 41f9e0 <__malloc_set_state+0x110> - 41fa41: 48 8b 3a mov (%rdx),%rdi - 41fa44: 48 89 40 18 mov %rax,0x18(%rax) - 41fa48: 48 89 40 10 mov %rax,0x10(%rax) - 41fa4c: 48 c7 46 18 58 a8 6c movq $0x6ca858,0x18(%rsi) - 41fa53: 00 - 41fa54: 4c 8b 15 0d ae 2a 00 mov 0x2aae0d(%rip),%r10 # 6ca868 - 41fa5b: 4c 89 57 10 mov %r10,0x10(%rdi) - 41fa5f: 4c 8b 15 02 ae 2a 00 mov 0x2aae02(%rip),%r10 # 6ca868 - 41fa66: 49 89 7a 18 mov %rdi,0x18(%r10) - 41fa6a: 48 89 35 f7 ad 2a 00 mov %rsi,0x2aadf7(%rip) # 6ca868 - 41fa71: eb a1 jmp 41fa14 <__malloc_set_state+0x144> - 41fa73: 48 8b 93 88 08 00 00 mov 0x888(%rbx),%rdx - 41fa7a: b8 10 00 00 00 mov $0x10,%eax - 41fa7f: 48 85 d2 test %rdx,%rdx - 41fa82: 74 08 je 41fa8c <__malloc_set_state+0x1bc> - 41fa84: 48 8d 42 08 lea 0x8(%rdx),%rax - 41fa88: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 41fa8c: 48 89 05 a5 cb 2a 00 mov %rax,0x2acba5(%rip) # 6cc638 - 41fa93: e9 d9 fe ff ff jmpq 41f971 <__malloc_set_state+0xa1> - 41fa98: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 41fa9f: 00 - 41faa0: 4c 8b 56 08 mov 0x8(%rsi),%r10 - 41faa4: 4c 89 d7 mov %r10,%rdi - 41faa7: 48 c1 ef 06 shr $0x6,%rdi - 41faab: 48 83 ff 30 cmp $0x30,%rdi - 41faaf: 77 4f ja 41fb00 <__malloc_set_state+0x230> - 41fab1: 48 83 c7 30 add $0x30,%rdi - 41fab5: 48 39 cf cmp %rcx,%rdi - 41fab8: 48 8b 3a mov (%rdx),%rdi - 41fabb: 75 87 jne 41fa44 <__malloc_set_state+0x174> - 41fabd: 4c 8b 5f 08 mov 0x8(%rdi),%r11 - 41fac1: 4d 89 da mov %r11,%r10 - 41fac4: 49 c1 ea 06 shr $0x6,%r10 - 41fac8: 49 83 fa 30 cmp $0x30,%r10 - 41facc: 77 62 ja 41fb30 <__malloc_set_state+0x260> - 41face: 49 83 c2 30 add $0x30,%r10 - 41fad2: 49 39 ca cmp %rcx,%r10 - 41fad5: 0f 85 69 ff ff ff jne 41fa44 <__malloc_set_state+0x174> - 41fadb: e9 0d ff ff ff jmpq 41f9ed <__malloc_set_state+0x11d> - 41fae0: 48 83 3a 00 cmpq $0x0,(%rdx) - 41fae4: 0f 85 03 03 00 00 jne 41fded <__malloc_set_state+0x51d> - 41faea: 48 89 40 18 mov %rax,0x18(%rax) - 41faee: 48 89 40 10 mov %rax,0x10(%rax) - 41faf2: e9 1d ff ff ff jmpq 41fa14 <__malloc_set_state+0x144> - 41faf7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 41fafe: 00 00 - 41fb00: 4c 89 d7 mov %r10,%rdi - 41fb03: 48 c1 ef 09 shr $0x9,%rdi - 41fb07: 48 83 ff 14 cmp $0x14,%rdi - 41fb0b: 77 0b ja 41fb18 <__malloc_set_state+0x248> - 41fb0d: 48 83 c7 5b add $0x5b,%rdi - 41fb11: eb a2 jmp 41fab5 <__malloc_set_state+0x1e5> - 41fb13: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41fb18: 4c 89 d7 mov %r10,%rdi - 41fb1b: 48 c1 ef 0c shr $0xc,%rdi - 41fb1f: 48 83 ff 0a cmp $0xa,%rdi - 41fb23: 77 23 ja 41fb48 <__malloc_set_state+0x278> - 41fb25: 48 83 c7 6e add $0x6e,%rdi - 41fb29: eb 8a jmp 41fab5 <__malloc_set_state+0x1e5> - 41fb2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41fb30: 4d 89 da mov %r11,%r10 - 41fb33: 49 c1 ea 09 shr $0x9,%r10 - 41fb37: 49 83 fa 14 cmp $0x14,%r10 - 41fb3b: 77 23 ja 41fb60 <__malloc_set_state+0x290> - 41fb3d: 49 83 c2 5b add $0x5b,%r10 - 41fb41: eb 8f jmp 41fad2 <__malloc_set_state+0x202> - 41fb43: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41fb48: 4c 89 d7 mov %r10,%rdi - 41fb4b: 48 c1 ef 0f shr $0xf,%rdi - 41fb4f: 48 83 ff 04 cmp $0x4,%rdi - 41fb53: 77 2b ja 41fb80 <__malloc_set_state+0x2b0> - 41fb55: 48 83 c7 77 add $0x77,%rdi - 41fb59: e9 57 ff ff ff jmpq 41fab5 <__malloc_set_state+0x1e5> - 41fb5e: 66 90 xchg %ax,%ax - 41fb60: 4d 89 da mov %r11,%r10 - 41fb63: 49 c1 ea 0c shr $0xc,%r10 - 41fb67: 49 83 fa 0a cmp $0xa,%r10 - 41fb6b: 0f 87 9f 01 00 00 ja 41fd10 <__malloc_set_state+0x440> - 41fb71: 49 83 c2 6e add $0x6e,%r10 - 41fb75: e9 58 ff ff ff jmpq 41fad2 <__malloc_set_state+0x202> - 41fb7a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41fb80: 49 c1 ea 12 shr $0x12,%r10 - 41fb84: 49 8d 7a 7c lea 0x7c(%r10),%rdi - 41fb88: 49 83 fa 02 cmp $0x2,%r10 - 41fb8c: 49 0f 47 f9 cmova %r9,%rdi - 41fb90: e9 20 ff ff ff jmpq 41fab5 <__malloc_set_state+0x1e5> - 41fb95: 0f 1f 00 nopl (%rax) - 41fb98: 48 8b 4b 08 mov 0x8(%rbx),%rcx - 41fb9c: 48 83 f9 02 cmp $0x2,%rcx - 41fba0: 7f 43 jg 41fbe5 <__malloc_set_state+0x315> - 41fba2: 48 8b 05 bf ac 2a 00 mov 0x2aacbf(%rip),%rax # 6ca868 - 41fba9: 48 3d 58 a8 6c 00 cmp $0x6ca858,%rax - 41fbaf: 74 34 je 41fbe5 <__malloc_set_state+0x315> - 41fbb1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 41fbb8: 48 8b 50 08 mov 0x8(%rax),%rdx - 41fbbc: 48 83 e2 f8 and $0xfffffffffffffff8,%rdx - 41fbc0: 48 81 fa ff 03 00 00 cmp $0x3ff,%rdx - 41fbc7: 76 10 jbe 41fbd9 <__malloc_set_state+0x309> - 41fbc9: 48 c7 40 20 00 00 00 movq $0x0,0x20(%rax) - 41fbd0: 00 - 41fbd1: 48 c7 40 28 00 00 00 movq $0x0,0x28(%rax) - 41fbd8: 00 - 41fbd9: 48 8b 40 10 mov 0x10(%rax),%rax - 41fbdd: 48 3d 58 a8 6c 00 cmp $0x6ca858,%rax - 41fbe3: 75 d3 jne 41fbb8 <__malloc_set_state+0x2e8> - 41fbe5: 48 8b 83 20 08 00 00 mov 0x820(%rbx),%rax - 41fbec: 48 85 c9 test %rcx,%rcx - 41fbef: 48 89 05 fa ab 2a 00 mov %rax,0x2aabfa(%rip) # 6ca7f0 - 41fbf6: 48 63 83 28 08 00 00 movslq 0x828(%rbx),%rax - 41fbfd: 48 89 05 7c b4 2a 00 mov %rax,0x2ab47c(%rip) # 6cb080 - 41fc04: 48 8b 83 30 08 00 00 mov 0x830(%rbx),%rax - 41fc0b: 48 89 05 8e ab 2a 00 mov %rax,0x2aab8e(%rip) # 6ca7a0 - 41fc12: 48 8b 83 38 08 00 00 mov 0x838(%rbx),%rax - 41fc19: 48 89 05 88 ab 2a 00 mov %rax,0x2aab88(%rip) # 6ca7a8 - 41fc20: 8b 83 40 08 00 00 mov 0x840(%rbx),%eax - 41fc26: 89 05 a0 ab 2a 00 mov %eax,0x2aaba0(%rip) # 6ca7cc - 41fc2c: 48 8b 83 48 08 00 00 mov 0x848(%rbx),%rax - 41fc33: 48 89 05 76 ab 2a 00 mov %rax,0x2aab76(%rip) # 6ca7b0 - 41fc3a: 8b 83 50 08 00 00 mov 0x850(%rbx),%eax - 41fc40: 89 05 2a ab 2a 00 mov %eax,0x2aab2a(%rip) # 6ca770 - 41fc46: 48 8b 83 58 08 00 00 mov 0x858(%rbx),%rax - 41fc4d: 48 89 05 34 b4 2a 00 mov %rax,0x2ab434(%rip) # 6cb088 - 41fc54: 8b 83 68 08 00 00 mov 0x868(%rbx),%eax - 41fc5a: 89 05 68 ab 2a 00 mov %eax,0x2aab68(%rip) # 6ca7c8 - 41fc60: 8b 83 6c 08 00 00 mov 0x86c(%rbx),%eax - 41fc66: 89 05 64 ab 2a 00 mov %eax,0x2aab64(%rip) # 6ca7d0 - 41fc6c: 48 8b 83 70 08 00 00 mov 0x870(%rbx),%rax - 41fc73: 48 89 05 5e ab 2a 00 mov %rax,0x2aab5e(%rip) # 6ca7d8 - 41fc7a: 48 8b 83 78 08 00 00 mov 0x878(%rbx),%rax - 41fc81: 48 89 05 58 ab 2a 00 mov %rax,0x2aab58(%rip) # 6ca7e0 - 41fc88: 7e 4c jle 41fcd6 <__malloc_set_state+0x406> - 41fc8a: 8b bb 80 08 00 00 mov 0x880(%rbx),%edi - 41fc90: 85 ff test %edi,%edi - 41fc92: 0f 85 a3 00 00 00 jne 41fd3b <__malloc_set_state+0x46b> - 41fc98: 8b 05 6e c9 2a 00 mov 0x2ac96e(%rip),%eax # 6cc60c - 41fc9e: 85 c0 test %eax,%eax - 41fca0: 0f 85 ec 00 00 00 jne 41fd92 <__malloc_set_state+0x4c2> - 41fca6: 48 83 f9 03 cmp $0x3,%rcx - 41fcaa: 7e 2a jle 41fcd6 <__malloc_set_state+0x406> - 41fcac: 48 8b 83 90 08 00 00 mov 0x890(%rbx),%rax - 41fcb3: 48 89 05 fe aa 2a 00 mov %rax,0x2aaafe(%rip) # 6ca7b8 - 41fcba: 48 8b 83 98 08 00 00 mov 0x898(%rbx),%rax - 41fcc1: 48 89 05 f8 aa 2a 00 mov %rax,0x2aaaf8(%rip) # 6ca7c0 - 41fcc8: 48 8b 83 a0 08 00 00 mov 0x8a0(%rbx),%rax - 41fccf: 48 89 05 92 aa 2a 00 mov %rax,0x2aaa92(%rip) # 6ca768 - 41fcd6: 83 3d df d4 2a 00 00 cmpl $0x0,0x2ad4df(%rip) # 6cd1bc <__libc_multiple_threads> - 41fcdd: 74 0b je 41fcea <__malloc_set_state+0x41a> - 41fcdf: f0 ff 0d 1a ab 2a 00 lock decl 0x2aab1a(%rip) # 6ca800 - 41fce6: 75 0a jne 41fcf2 <__malloc_set_state+0x422> - 41fce8: eb 22 jmp 41fd0c <__malloc_set_state+0x43c> - 41fcea: ff 0d 10 ab 2a 00 decl 0x2aab10(%rip) # 6ca800 - 41fcf0: 74 1a je 41fd0c <__malloc_set_state+0x43c> - 41fcf2: 48 8d 3d 07 ab 2a 00 lea 0x2aab07(%rip),%rdi # 6ca800 - 41fcf9: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41fd00: e8 fb 28 02 00 callq 442600 <__lll_unlock_wake_private> - 41fd05: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41fd0c: 31 c0 xor %eax,%eax - 41fd0e: 5b pop %rbx - 41fd0f: c3 retq - 41fd10: 4d 89 da mov %r11,%r10 - 41fd13: 49 c1 ea 0f shr $0xf,%r10 - 41fd17: 49 83 fa 04 cmp $0x4,%r10 - 41fd1b: 77 09 ja 41fd26 <__malloc_set_state+0x456> - 41fd1d: 49 83 c2 77 add $0x77,%r10 - 41fd21: e9 ac fd ff ff jmpq 41fad2 <__malloc_set_state+0x202> - 41fd26: 49 c1 eb 12 shr $0x12,%r11 - 41fd2a: 4d 8d 53 7c lea 0x7c(%r11),%r10 - 41fd2e: 49 83 fb 02 cmp $0x2,%r11 - 41fd32: 4d 0f 47 d1 cmova %r9,%r10 - 41fd36: e9 97 fd ff ff jmpq 41fad2 <__malloc_set_state+0x202> - 41fd3b: 8b 35 cb c8 2a 00 mov 0x2ac8cb(%rip),%esi # 6cc60c - 41fd41: 85 f6 test %esi,%esi - 41fd43: 0f 85 5d ff ff ff jne 41fca6 <__malloc_set_state+0x3d6> - 41fd49: 8b 15 b9 c8 2a 00 mov 0x2ac8b9(%rip),%edx # 6cc608 - 41fd4f: 85 d2 test %edx,%edx - 41fd51: 0f 85 4f ff ff ff jne 41fca6 <__malloc_set_state+0x3d6> - 41fd57: c7 05 ab c8 2a 00 01 movl $0x1,0x2ac8ab(%rip) # 6cc60c - 41fd5e: 00 00 00 - 41fd61: 48 c7 05 1c aa 2a 00 movq $0x41c720,0x2aaa1c(%rip) # 6ca788 <__malloc_hook> - 41fd68: 20 c7 41 00 - 41fd6c: 48 c7 05 71 c8 2a 00 movq $0x4189e0,0x2ac871(%rip) # 6cc5e8 <__free_hook> - 41fd73: e0 89 41 00 - 41fd77: 48 c7 05 fe a9 2a 00 movq $0x41d180,0x2aa9fe(%rip) # 6ca780 <__realloc_hook> - 41fd7e: 80 d1 41 00 - 41fd82: 48 c7 05 eb a9 2a 00 movq $0x41c870,0x2aa9eb(%rip) # 6ca778 <__memalign_hook> - 41fd89: 70 c8 41 00 - 41fd8d: e9 14 ff ff ff jmpq 41fca6 <__malloc_set_state+0x3d6> - 41fd92: 48 c7 05 eb a9 2a 00 movq $0x0,0x2aa9eb(%rip) # 6ca788 <__malloc_hook> - 41fd99: 00 00 00 00 - 41fd9d: 48 c7 05 40 c8 2a 00 movq $0x0,0x2ac840(%rip) # 6cc5e8 <__free_hook> - 41fda4: 00 00 00 00 - 41fda8: 48 c7 05 cd a9 2a 00 movq $0x0,0x2aa9cd(%rip) # 6ca780 <__realloc_hook> - 41fdaf: 00 00 00 00 - 41fdb3: 48 c7 05 ba a9 2a 00 movq $0x0,0x2aa9ba(%rip) # 6ca778 <__memalign_hook> - 41fdba: 00 00 00 00 - 41fdbe: c7 05 44 c8 2a 00 00 movl $0x0,0x2ac844(%rip) # 6cc60c - 41fdc5: 00 00 00 - 41fdc8: e9 d9 fe ff ff jmpq 41fca6 <__malloc_set_state+0x3d6> - 41fdcd: e8 1e ef ff ff callq 41ecf0 - 41fdd2: 48 81 3b 41 45 4c 44 cmpq $0x444c4541,(%rbx) - 41fdd9: 0f 84 1c fb ff ff je 41f8fb <__malloc_set_state+0x2b> - 41fddf: b8 ff ff ff ff mov $0xffffffff,%eax - 41fde4: 5b pop %rbx - 41fde5: c3 retq - 41fde6: b8 fe ff ff ff mov $0xfffffffe,%eax - 41fdeb: 5b pop %rbx - 41fdec: c3 retq - 41fded: b9 a0 2f 4a 00 mov $0x4a2fa0,%ecx - 41fdf2: ba 45 02 00 00 mov $0x245,%edx - 41fdf7: be 3f 22 4a 00 mov $0x4a223f,%esi - 41fdfc: bf 47 22 4a 00 mov $0x4a2247,%edi - 41fe01: e8 1a 70 ff ff callq 416e20 <__malloc_assert> - 41fe06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41fe0d: 00 00 00 - -000000000041fe10 <__libc_valloc>: - 41fe10: 8b 05 4e a9 2a 00 mov 0x2aa94e(%rip),%eax # 6ca764 <__libc_malloc_initialized> - 41fe16: 41 54 push %r12 - 41fe18: 49 89 fc mov %rdi,%r12 - 41fe1b: 55 push %rbp - 41fe1c: 53 push %rbx - 41fe1d: 85 c0 test %eax,%eax - 41fe1f: 0f 88 2b 02 00 00 js 420050 <__libc_valloc+0x240> - 41fe25: 48 8b 05 4c a9 2a 00 mov 0x2aa94c(%rip),%rax # 6ca778 <__memalign_hook> - 41fe2c: 48 8b 54 24 18 mov 0x18(%rsp),%rdx - 41fe31: 48 85 c0 test %rax,%rax - 41fe34: 48 8b 3d 45 b3 2a 00 mov 0x2ab345(%rip),%rdi # 6cb180 <_dl_pagesize> - 41fe3b: 0f 85 e7 01 00 00 jne 420028 <__libc_valloc+0x218> - 41fe41: 48 83 ff 10 cmp $0x10,%rdi - 41fe45: 0f 86 cd 01 00 00 jbe 420018 <__libc_valloc+0x208> - 41fe4b: 48 83 ff 1f cmp $0x1f,%rdi - 41fe4f: 0f 87 db 00 00 00 ja 41ff30 <__libc_valloc+0x120> - 41fe55: 49 83 fc bf cmp $0xffffffffffffffbf,%r12 - 41fe59: 0f 87 01 02 00 00 ja 420060 <__libc_valloc+0x250> - 41fe5f: bb 20 00 00 00 mov $0x20,%ebx - 41fe64: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax - 41fe6b: 64 48 8b 28 mov %fs:(%rax),%rbp - 41fe6f: 48 85 ed test %rbp,%rbp - 41fe72: 0f 84 10 01 00 00 je 41ff88 <__libc_valloc+0x178> - 41fe78: 8b 45 04 mov 0x4(%rbp),%eax - 41fe7b: 83 e0 04 and $0x4,%eax - 41fe7e: 0f 85 04 01 00 00 jne 41ff88 <__libc_valloc+0x178> - 41fe84: be 01 00 00 00 mov $0x1,%esi - 41fe89: 83 3d 2c d3 2a 00 00 cmpl $0x0,0x2ad32c(%rip) # 6cd1bc <__libc_multiple_threads> - 41fe90: 74 09 je 41fe9b <__libc_valloc+0x8b> - 41fe92: f0 0f b1 75 00 lock cmpxchg %esi,0x0(%rbp) - 41fe97: 75 08 jne 41fea1 <__libc_valloc+0x91> - 41fe99: eb 1d jmp 41feb8 <__libc_valloc+0xa8> - 41fe9b: 0f b1 75 00 cmpxchg %esi,0x0(%rbp) - 41fe9f: 74 17 je 41feb8 <__libc_valloc+0xa8> - 41fea1: 48 8d 7d 00 lea 0x0(%rbp),%rdi - 41fea5: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41feac: e8 1f 27 02 00 callq 4425d0 <__lll_lock_wait_private> - 41feb1: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41feb8: 4c 89 e2 mov %r12,%rdx - 41febb: 48 89 de mov %rbx,%rsi - 41febe: 48 89 ef mov %rbp,%rdi - 41fec1: e8 4a c6 ff ff callq 41c510 <_int_memalign> - 41fec6: 48 85 c0 test %rax,%rax - 41fec9: 48 89 c2 mov %rax,%rdx - 41fecc: 0f 84 f6 00 00 00 je 41ffc8 <__libc_valloc+0x1b8> - 41fed2: 83 3d e3 d2 2a 00 00 cmpl $0x0,0x2ad2e3(%rip) # 6cd1bc <__libc_multiple_threads> - 41fed9: 74 08 je 41fee3 <__libc_valloc+0xd3> - 41fedb: f0 ff 4d 00 lock decl 0x0(%rbp) - 41fedf: 75 07 jne 41fee8 <__libc_valloc+0xd8> - 41fee1: eb 1c jmp 41feff <__libc_valloc+0xef> - 41fee3: ff 4d 00 decl 0x0(%rbp) - 41fee6: 74 17 je 41feff <__libc_valloc+0xef> - 41fee8: 48 8d 7d 00 lea 0x0(%rbp),%rdi - 41feec: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 41fef3: e8 08 27 02 00 callq 442600 <__lll_unlock_wake_private> - 41fef8: 48 81 c4 80 00 00 00 add $0x80,%rsp - 41feff: 48 85 d2 test %rdx,%rdx - 41ff02: 0f 84 70 01 00 00 je 420078 <__libc_valloc+0x268> - 41ff08: 48 8b 42 f8 mov -0x8(%rdx),%rax - 41ff0c: a8 02 test $0x2,%al - 41ff0e: 75 16 jne 41ff26 <__libc_valloc+0x116> - 41ff10: a8 04 test $0x4,%al - 41ff12: b9 00 a8 6c 00 mov $0x6ca800,%ecx - 41ff17: 0f 85 e3 00 00 00 jne 420000 <__libc_valloc+0x1f0> - 41ff1d: 48 39 e9 cmp %rbp,%rcx - 41ff20: 0f 85 59 01 00 00 jne 42007f <__libc_valloc+0x26f> - 41ff26: 48 89 d0 mov %rdx,%rax - 41ff29: 5b pop %rbx - 41ff2a: 5d pop %rbp - 41ff2b: 41 5c pop %r12 - 41ff2d: c3 retq - 41ff2e: 66 90 xchg %ax,%ax - 41ff30: 48 b8 00 00 00 00 00 movabs $0x8000000000000000,%rax - 41ff37: 00 00 80 - 41ff3a: 48 39 c7 cmp %rax,%rdi - 41ff3d: 0f 87 f5 00 00 00 ja 420038 <__libc_valloc+0x228> - 41ff43: 48 c7 c0 df ff ff ff mov $0xffffffffffffffdf,%rax - 41ff4a: 48 29 f8 sub %rdi,%rax - 41ff4d: 49 39 c4 cmp %rax,%r12 - 41ff50: 0f 87 0a 01 00 00 ja 420060 <__libc_valloc+0x250> - 41ff56: 48 8d 47 ff lea -0x1(%rdi),%rax - 41ff5a: 48 85 f8 test %rdi,%rax - 41ff5d: 0f 84 35 01 00 00 je 420098 <__libc_valloc+0x288> - 41ff63: 48 83 ff 20 cmp $0x20,%rdi - 41ff67: bb 20 00 00 00 mov $0x20,%ebx - 41ff6c: 0f 84 f2 fe ff ff je 41fe64 <__libc_valloc+0x54> - 41ff72: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 41ff78: 48 01 db add %rbx,%rbx - 41ff7b: 48 39 df cmp %rbx,%rdi - 41ff7e: 77 f8 ja 41ff78 <__libc_valloc+0x168> - 41ff80: e9 df fe ff ff jmpq 41fe64 <__libc_valloc+0x54> - 41ff85: 0f 1f 00 nopl (%rax) - 41ff88: e8 d3 71 ff ff callq 417160 - 41ff8d: 48 85 c0 test %rax,%rax - 41ff90: 48 89 c5 mov %rax,%rbp - 41ff93: 0f 85 1f ff ff ff jne 41feb8 <__libc_valloc+0xa8> - 41ff99: 4a 8d 7c 23 20 lea 0x20(%rbx,%r12,1),%rdi - 41ff9e: 31 f6 xor %esi,%esi - 41ffa0: e8 ab 74 ff ff callq 417450 - 41ffa5: 4c 89 e2 mov %r12,%rdx - 41ffa8: 48 89 de mov %rbx,%rsi - 41ffab: 48 89 c7 mov %rax,%rdi - 41ffae: 48 89 c5 mov %rax,%rbp - 41ffb1: e8 5a c5 ff ff callq 41c510 <_int_memalign> - 41ffb6: 48 85 c0 test %rax,%rax - 41ffb9: 48 89 c2 mov %rax,%rdx - 41ffbc: 75 2a jne 41ffe8 <__libc_valloc+0x1d8> - 41ffbe: 48 85 ed test %rbp,%rbp - 41ffc1: 74 25 je 41ffe8 <__libc_valloc+0x1d8> - 41ffc3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 41ffc8: 90 nop - 41ffc9: 48 89 ef mov %rbp,%rdi - 41ffcc: 4c 89 e6 mov %r12,%rsi - 41ffcf: e8 1c 7a ff ff callq 4179f0 - 41ffd4: 4c 89 e2 mov %r12,%rdx - 41ffd7: 48 89 de mov %rbx,%rsi - 41ffda: 48 89 c7 mov %rax,%rdi - 41ffdd: 48 89 c5 mov %rax,%rbp - 41ffe0: e8 2b c5 ff ff callq 41c510 <_int_memalign> - 41ffe5: 48 89 c2 mov %rax,%rdx - 41ffe8: 48 85 ed test %rbp,%rbp - 41ffeb: 0f 85 e1 fe ff ff jne 41fed2 <__libc_valloc+0xc2> - 41fff1: e9 09 ff ff ff jmpq 41feff <__libc_valloc+0xef> - 41fff6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 41fffd: 00 00 00 - 420000: 48 8d 42 f0 lea -0x10(%rdx),%rax - 420004: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax - 42000a: 48 8b 08 mov (%rax),%rcx - 42000d: e9 0b ff ff ff jmpq 41ff1d <__libc_valloc+0x10d> - 420012: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 420018: 5b pop %rbx - 420019: 4c 89 e7 mov %r12,%rdi - 42001c: 5d pop %rbp - 42001d: 41 5c pop %r12 - 42001f: e9 ec d9 ff ff jmpq 41da10 <__libc_malloc> - 420024: 0f 1f 40 00 nopl 0x0(%rax) - 420028: 5b pop %rbx - 420029: 4c 89 e6 mov %r12,%rsi - 42002c: 5d pop %rbp - 42002d: 41 5c pop %r12 - 42002f: ff e0 jmpq *%rax - 420031: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 420038: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 42003f: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) - 420046: 31 c0 xor %eax,%eax - 420048: e9 dc fe ff ff jmpq 41ff29 <__libc_valloc+0x119> - 42004d: 0f 1f 00 nopl (%rax) - 420050: e8 9b ec ff ff callq 41ecf0 - 420055: e9 cb fd ff ff jmpq 41fe25 <__libc_valloc+0x15> - 42005a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 420060: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 420067: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) - 42006e: 31 c0 xor %eax,%eax - 420070: e9 b4 fe ff ff jmpq 41ff29 <__libc_valloc+0x119> - 420075: 0f 1f 00 nopl (%rax) - 420078: 31 c0 xor %eax,%eax - 42007a: e9 aa fe ff ff jmpq 41ff29 <__libc_valloc+0x119> - 42007f: b9 08 2e 4a 00 mov $0x4a2e08,%ecx - 420084: ba 3c 0c 00 00 mov $0xc3c,%edx - 420089: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 42008e: bf 20 2a 4a 00 mov $0x4a2a20,%edi - 420093: e8 88 6d ff ff callq 416e20 <__malloc_assert> - 420098: 48 89 fb mov %rdi,%rbx - 42009b: e9 c4 fd ff ff jmpq 41fe64 <__libc_valloc+0x54> - -00000000004200a0 <__libc_pvalloc>: - 4200a0: 41 54 push %r12 - 4200a2: 55 push %rbp - 4200a3: 53 push %rbx - 4200a4: 48 83 ec 10 sub $0x10,%rsp - 4200a8: 8b 05 b6 a6 2a 00 mov 0x2aa6b6(%rip),%eax # 6ca764 <__libc_malloc_initialized> - 4200ae: 85 c0 test %eax,%eax - 4200b0: 0f 88 7a 02 00 00 js 420330 <__libc_pvalloc+0x290> - 4200b6: 48 8b 05 c3 b0 2a 00 mov 0x2ab0c3(%rip),%rax # 6cb180 <_dl_pagesize> - 4200bd: 48 c7 c6 df ff ff ff mov $0xffffffffffffffdf,%rsi - 4200c4: 48 8b 54 24 28 mov 0x28(%rsp),%rdx - 4200c9: 48 89 f3 mov %rsi,%rbx - 4200cc: 4c 8d 40 ff lea -0x1(%rax),%r8 - 4200d0: 48 89 c1 mov %rax,%rcx - 4200d3: 48 f7 d9 neg %rcx - 4200d6: 4e 8d 24 07 lea (%rdi,%r8,1),%r12 - 4200da: 49 21 cc and %rcx,%r12 - 4200dd: 48 8d 0c 00 lea (%rax,%rax,1),%rcx - 4200e1: 48 29 cb sub %rcx,%rbx - 4200e4: 48 39 df cmp %rbx,%rdi - 4200e7: 0f 87 4b 01 00 00 ja 420238 <__libc_pvalloc+0x198> - 4200ed: 48 8b 0d 84 a6 2a 00 mov 0x2aa684(%rip),%rcx # 6ca778 <__memalign_hook> - 4200f4: 48 85 c9 test %rcx,%rcx - 4200f7: 0f 85 03 02 00 00 jne 420300 <__libc_pvalloc+0x260> - 4200fd: 48 83 f8 10 cmp $0x10,%rax - 420101: 0f 86 e1 01 00 00 jbe 4202e8 <__libc_pvalloc+0x248> - 420107: 48 83 f8 1f cmp $0x1f,%rax - 42010b: 0f 87 df 00 00 00 ja 4201f0 <__libc_pvalloc+0x150> - 420111: 49 83 fc bf cmp $0xffffffffffffffbf,%r12 - 420115: 0f 87 1d 01 00 00 ja 420238 <__libc_pvalloc+0x198> - 42011b: bb 20 00 00 00 mov $0x20,%ebx - 420120: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax - 420127: 64 48 8b 28 mov %fs:(%rax),%rbp - 42012b: 48 85 ed test %rbp,%rbp - 42012e: 0f 84 24 01 00 00 je 420258 <__libc_pvalloc+0x1b8> - 420134: 8b 45 04 mov 0x4(%rbp),%eax - 420137: 83 e0 04 and $0x4,%eax - 42013a: 0f 85 18 01 00 00 jne 420258 <__libc_pvalloc+0x1b8> - 420140: be 01 00 00 00 mov $0x1,%esi - 420145: 83 3d 70 d0 2a 00 00 cmpl $0x0,0x2ad070(%rip) # 6cd1bc <__libc_multiple_threads> - 42014c: 74 09 je 420157 <__libc_pvalloc+0xb7> - 42014e: f0 0f b1 75 00 lock cmpxchg %esi,0x0(%rbp) - 420153: 75 08 jne 42015d <__libc_pvalloc+0xbd> - 420155: eb 1d jmp 420174 <__libc_pvalloc+0xd4> - 420157: 0f b1 75 00 cmpxchg %esi,0x0(%rbp) - 42015b: 74 17 je 420174 <__libc_pvalloc+0xd4> - 42015d: 48 8d 7d 00 lea 0x0(%rbp),%rdi - 420161: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 420168: e8 63 24 02 00 callq 4425d0 <__lll_lock_wait_private> - 42016d: 48 81 c4 80 00 00 00 add $0x80,%rsp - 420174: 4c 89 e2 mov %r12,%rdx - 420177: 48 89 de mov %rbx,%rsi - 42017a: 48 89 ef mov %rbp,%rdi - 42017d: e8 8e c3 ff ff callq 41c510 <_int_memalign> - 420182: 48 85 c0 test %rax,%rax - 420185: 48 89 c2 mov %rax,%rdx - 420188: 0f 84 0a 01 00 00 je 420298 <__libc_pvalloc+0x1f8> - 42018e: 83 3d 27 d0 2a 00 00 cmpl $0x0,0x2ad027(%rip) # 6cd1bc <__libc_multiple_threads> - 420195: 74 08 je 42019f <__libc_pvalloc+0xff> - 420197: f0 ff 4d 00 lock decl 0x0(%rbp) - 42019b: 75 07 jne 4201a4 <__libc_pvalloc+0x104> - 42019d: eb 1c jmp 4201bb <__libc_pvalloc+0x11b> - 42019f: ff 4d 00 decl 0x0(%rbp) - 4201a2: 74 17 je 4201bb <__libc_pvalloc+0x11b> - 4201a4: 48 8d 7d 00 lea 0x0(%rbp),%rdi - 4201a8: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4201af: e8 4c 24 02 00 callq 442600 <__lll_unlock_wake_private> - 4201b4: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4201bb: 48 85 d2 test %rdx,%rdx - 4201be: 0f 84 64 01 00 00 je 420328 <__libc_pvalloc+0x288> - 4201c4: 48 8b 42 f8 mov -0x8(%rdx),%rax - 4201c8: a8 02 test $0x2,%al - 4201ca: 75 16 jne 4201e2 <__libc_pvalloc+0x142> - 4201cc: a8 04 test $0x4,%al - 4201ce: b9 00 a8 6c 00 mov $0x6ca800,%ecx - 4201d3: 0f 85 f7 00 00 00 jne 4202d0 <__libc_pvalloc+0x230> - 4201d9: 48 39 cd cmp %rcx,%rbp - 4201dc: 0f 85 6a 01 00 00 jne 42034c <__libc_pvalloc+0x2ac> - 4201e2: 48 89 d0 mov %rdx,%rax - 4201e5: 48 83 c4 10 add $0x10,%rsp - 4201e9: 5b pop %rbx - 4201ea: 5d pop %rbp - 4201eb: 41 5c pop %r12 - 4201ed: c3 retq - 4201ee: 66 90 xchg %ax,%ax - 4201f0: 48 ba 00 00 00 00 00 movabs $0x8000000000000000,%rdx - 4201f7: 00 00 80 - 4201fa: 48 39 d0 cmp %rdx,%rax - 4201fd: 0f 87 0d 01 00 00 ja 420310 <__libc_pvalloc+0x270> - 420203: 48 29 c6 sub %rax,%rsi - 420206: 49 39 f4 cmp %rsi,%r12 - 420209: 77 2d ja 420238 <__libc_pvalloc+0x198> - 42020b: 4c 85 c0 test %r8,%rax - 42020e: 0f 84 30 01 00 00 je 420344 <__libc_pvalloc+0x2a4> - 420214: 48 83 f8 20 cmp $0x20,%rax - 420218: bb 20 00 00 00 mov $0x20,%ebx - 42021d: 0f 84 fd fe ff ff je 420120 <__libc_pvalloc+0x80> - 420223: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 420228: 48 01 db add %rbx,%rbx - 42022b: 48 39 d8 cmp %rbx,%rax - 42022e: 77 f8 ja 420228 <__libc_pvalloc+0x188> - 420230: e9 eb fe ff ff jmpq 420120 <__libc_pvalloc+0x80> - 420235: 0f 1f 00 nopl (%rax) - 420238: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 42023f: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) - 420246: 48 83 c4 10 add $0x10,%rsp - 42024a: 31 c0 xor %eax,%eax - 42024c: 5b pop %rbx - 42024d: 5d pop %rbp - 42024e: 41 5c pop %r12 - 420250: c3 retq - 420251: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 420258: e8 03 6f ff ff callq 417160 - 42025d: 48 85 c0 test %rax,%rax - 420260: 48 89 c5 mov %rax,%rbp - 420263: 0f 85 0b ff ff ff jne 420174 <__libc_pvalloc+0xd4> - 420269: 49 8d 7c 1c 20 lea 0x20(%r12,%rbx,1),%rdi - 42026e: 31 f6 xor %esi,%esi - 420270: e8 db 71 ff ff callq 417450 - 420275: 4c 89 e2 mov %r12,%rdx - 420278: 48 89 de mov %rbx,%rsi - 42027b: 48 89 c7 mov %rax,%rdi - 42027e: 48 89 c5 mov %rax,%rbp - 420281: e8 8a c2 ff ff callq 41c510 <_int_memalign> - 420286: 48 85 c0 test %rax,%rax - 420289: 48 89 c2 mov %rax,%rdx - 42028c: 75 2a jne 4202b8 <__libc_pvalloc+0x218> - 42028e: 48 85 ed test %rbp,%rbp - 420291: 74 25 je 4202b8 <__libc_pvalloc+0x218> - 420293: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 420298: 90 nop - 420299: 48 89 ef mov %rbp,%rdi - 42029c: 4c 89 e6 mov %r12,%rsi - 42029f: e8 4c 77 ff ff callq 4179f0 - 4202a4: 4c 89 e2 mov %r12,%rdx - 4202a7: 48 89 de mov %rbx,%rsi - 4202aa: 48 89 c7 mov %rax,%rdi - 4202ad: 48 89 c5 mov %rax,%rbp - 4202b0: e8 5b c2 ff ff callq 41c510 <_int_memalign> - 4202b5: 48 89 c2 mov %rax,%rdx - 4202b8: 48 85 ed test %rbp,%rbp - 4202bb: 0f 85 cd fe ff ff jne 42018e <__libc_pvalloc+0xee> - 4202c1: e9 f5 fe ff ff jmpq 4201bb <__libc_pvalloc+0x11b> - 4202c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4202cd: 00 00 00 - 4202d0: 48 8d 42 f0 lea -0x10(%rdx),%rax - 4202d4: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax - 4202da: 48 8b 08 mov (%rax),%rcx - 4202dd: e9 f7 fe ff ff jmpq 4201d9 <__libc_pvalloc+0x139> - 4202e2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4202e8: 48 83 c4 10 add $0x10,%rsp - 4202ec: 4c 89 e7 mov %r12,%rdi - 4202ef: 5b pop %rbx - 4202f0: 5d pop %rbp - 4202f1: 41 5c pop %r12 - 4202f3: e9 18 d7 ff ff jmpq 41da10 <__libc_malloc> - 4202f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4202ff: 00 - 420300: 48 83 c4 10 add $0x10,%rsp - 420304: 4c 89 e6 mov %r12,%rsi - 420307: 48 89 c7 mov %rax,%rdi - 42030a: 5b pop %rbx - 42030b: 5d pop %rbp - 42030c: 41 5c pop %r12 - 42030e: ff e1 jmpq *%rcx - 420310: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 420317: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) - 42031e: 31 c0 xor %eax,%eax - 420320: e9 c0 fe ff ff jmpq 4201e5 <__libc_pvalloc+0x145> - 420325: 0f 1f 00 nopl (%rax) - 420328: 31 c0 xor %eax,%eax - 42032a: e9 b6 fe ff ff jmpq 4201e5 <__libc_pvalloc+0x145> - 42032f: 90 nop - 420330: 48 89 7c 24 08 mov %rdi,0x8(%rsp) - 420335: e8 b6 e9 ff ff callq 41ecf0 - 42033a: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi - 42033f: e9 72 fd ff ff jmpq 4200b6 <__libc_pvalloc+0x16> - 420344: 48 89 c3 mov %rax,%rbx - 420347: e9 d4 fd ff ff jmpq 420120 <__libc_pvalloc+0x80> - 42034c: b9 08 2e 4a 00 mov $0x4a2e08,%ecx - 420351: ba 3c 0c 00 00 mov $0xc3c,%edx - 420356: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 42035b: bf 20 2a 4a 00 mov $0x4a2a20,%edi - 420360: e8 bb 6a ff ff callq 416e20 <__malloc_assert> - 420365: 90 nop - 420366: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42036d: 00 00 00 - -0000000000420370 <__malloc_trim>: - 420370: 41 57 push %r15 - 420372: 41 56 push %r14 - 420374: 41 55 push %r13 - 420376: 41 54 push %r12 - 420378: 55 push %rbp - 420379: 53 push %rbx - 42037a: 48 83 ec 28 sub $0x28,%rsp - 42037e: 8b 05 e0 a3 2a 00 mov 0x2aa3e0(%rip),%eax # 6ca764 <__libc_malloc_initialized> - 420384: 48 89 7c 24 18 mov %rdi,0x18(%rsp) - 420389: 85 c0 test %eax,%eax - 42038b: 0f 88 40 02 00 00 js 4205d1 <__malloc_trim+0x261> - 420391: 48 c7 44 24 08 00 a8 movq $0x6ca800,0x8(%rsp) - 420398: 6c 00 - 42039a: c7 44 24 14 00 00 00 movl $0x0,0x14(%rsp) - 4203a1: 00 - 4203a2: be 01 00 00 00 mov $0x1,%esi - 4203a7: 31 c0 xor %eax,%eax - 4203a9: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 4203ae: 83 3d 07 ce 2a 00 00 cmpl $0x0,0x2ace07(%rip) # 6cd1bc <__libc_multiple_threads> - 4203b5: 74 08 je 4203bf <__malloc_trim+0x4f> - 4203b7: f0 0f b1 32 lock cmpxchg %esi,(%rdx) - 4203bb: 75 07 jne 4203c4 <__malloc_trim+0x54> - 4203bd: eb 1b jmp 4203da <__malloc_trim+0x6a> - 4203bf: 0f b1 32 cmpxchg %esi,(%rdx) - 4203c2: 74 16 je 4203da <__malloc_trim+0x6a> - 4203c4: 48 8d 3a lea (%rdx),%rdi - 4203c7: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4203ce: e8 fd 21 02 00 callq 4425d0 <__lll_lock_wait_private> - 4203d3: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4203da: 45 31 db xor %r11d,%r11d - 4203dd: f6 42 04 04 testb $0x4,0x4(%rdx) - 4203e1: 74 5f je 420442 <__malloc_trim+0xd2> - 4203e3: 44 09 5c 24 14 or %r11d,0x14(%rsp) - 4203e8: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 4203ed: 83 3d c8 cd 2a 00 00 cmpl $0x0,0x2acdc8(%rip) # 6cd1bc <__libc_multiple_threads> - 4203f4: 74 07 je 4203fd <__malloc_trim+0x8d> - 4203f6: f0 ff 0a lock decl (%rdx) - 4203f9: 75 06 jne 420401 <__malloc_trim+0x91> - 4203fb: eb 1a jmp 420417 <__malloc_trim+0xa7> - 4203fd: ff 0a decl (%rdx) - 4203ff: 74 16 je 420417 <__malloc_trim+0xa7> - 420401: 48 8d 3a lea (%rdx),%rdi - 420404: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 42040b: e8 f0 21 02 00 callq 442600 <__lll_unlock_wake_private> - 420410: 48 81 c4 80 00 00 00 add $0x80,%rsp - 420417: 48 8b 82 68 08 00 00 mov 0x868(%rdx),%rax - 42041e: 48 3d 00 a8 6c 00 cmp $0x6ca800,%rax - 420424: 48 89 44 24 08 mov %rax,0x8(%rsp) - 420429: 0f 85 73 ff ff ff jne 4203a2 <__malloc_trim+0x32> - 42042f: 8b 44 24 14 mov 0x14(%rsp),%eax - 420433: 48 83 c4 28 add $0x28,%rsp - 420437: 5b pop %rbx - 420438: 5d pop %rbp - 420439: 41 5c pop %r12 - 42043b: 41 5d pop %r13 - 42043d: 41 5e pop %r14 - 42043f: 41 5f pop %r15 - 420441: c3 retq - 420442: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi - 420447: e8 e4 79 ff ff callq 417e30 - 42044c: 48 8b 0d 2d ad 2a 00 mov 0x2aad2d(%rip),%rcx # 6cb180 <_dl_pagesize> - 420453: 48 81 f9 ff 03 00 00 cmp $0x3ff,%rcx - 42045a: 0f 87 d3 00 00 00 ja 420533 <__malloc_trim+0x1c3> - 420460: 89 c8 mov %ecx,%eax - 420462: c1 e8 04 shr $0x4,%eax - 420465: 89 44 24 10 mov %eax,0x10(%rsp) - 420469: 4c 8d 71 ff lea -0x1(%rcx),%r14 - 42046d: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 420472: 45 31 db xor %r11d,%r11d - 420475: bd 01 00 00 00 mov $0x1,%ebp - 42047a: 4c 8d 69 2f lea 0x2f(%rcx),%r13 - 42047e: 4d 89 f7 mov %r14,%r15 - 420481: 4c 8d 60 58 lea 0x58(%rax),%r12 - 420485: 49 f7 d7 not %r15 - 420488: eb 1b jmp 4204a5 <__malloc_trim+0x135> - 42048a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 420490: 39 6c 24 10 cmp %ebp,0x10(%rsp) - 420494: 7e 14 jle 4204aa <__malloc_trim+0x13a> - 420496: 83 c5 01 add $0x1,%ebp - 420499: 49 83 c4 10 add $0x10,%r12 - 42049d: 81 fd 80 00 00 00 cmp $0x80,%ebp - 4204a3: 74 75 je 42051a <__malloc_trim+0x1aa> - 4204a5: 83 fd 01 cmp $0x1,%ebp - 4204a8: 75 e6 jne 420490 <__malloc_trim+0x120> - 4204aa: 49 8b 5c 24 18 mov 0x18(%r12),%rbx - 4204af: 49 39 dc cmp %rbx,%r12 - 4204b2: 75 15 jne 4204c9 <__malloc_trim+0x159> - 4204b4: eb e0 jmp 420496 <__malloc_trim+0x126> - 4204b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4204bd: 00 00 00 - 4204c0: 48 8b 5b 18 mov 0x18(%rbx),%rbx - 4204c4: 49 39 dc cmp %rbx,%r12 - 4204c7: 74 cd je 420496 <__malloc_trim+0x126> - 4204c9: 48 8b 73 08 mov 0x8(%rbx),%rsi - 4204cd: 48 83 e6 f8 and $0xfffffffffffffff8,%rsi - 4204d1: 4c 39 ee cmp %r13,%rsi - 4204d4: 76 ea jbe 4204c0 <__malloc_trim+0x150> - 4204d6: 4a 8d 3c 2b lea (%rbx,%r13,1),%rdi - 4204da: 48 8d 43 30 lea 0x30(%rbx),%rax - 4204de: 4c 21 ff and %r15,%rdi - 4204e1: 48 39 c7 cmp %rax,%rdi - 4204e4: 0f 82 b3 00 00 00 jb 42059d <__malloc_trim+0x22d> - 4204ea: 48 8d 04 33 lea (%rbx,%rsi,1),%rax - 4204ee: 48 39 c7 cmp %rax,%rdi - 4204f1: 0f 83 8d 00 00 00 jae 420584 <__malloc_trim+0x214> - 4204f7: 48 89 f8 mov %rdi,%rax - 4204fa: 48 29 d8 sub %rbx,%rax - 4204fd: 48 29 c6 sub %rax,%rsi - 420500: 49 39 f6 cmp %rsi,%r14 - 420503: 73 bb jae 4204c0 <__malloc_trim+0x150> - 420505: 4c 21 fe and %r15,%rsi - 420508: ba 04 00 00 00 mov $0x4,%edx - 42050d: e8 de f7 01 00 callq 43fcf0 <__madvise> - 420512: 41 bb 01 00 00 00 mov $0x1,%r11d - 420518: eb a6 jmp 4204c0 <__malloc_trim+0x150> - 42051a: 31 c0 xor %eax,%eax - 42051c: 48 81 7c 24 08 00 a8 cmpq $0x6ca800,0x8(%rsp) - 420523: 6c 00 - 420525: 0f 84 d1 00 00 00 je 4205fc <__malloc_trim+0x28c> - 42052b: 41 09 c3 or %eax,%r11d - 42052e: e9 b0 fe ff ff jmpq 4203e3 <__malloc_trim+0x73> - 420533: 49 89 cc mov %rcx,%r12 - 420536: 49 c1 ec 06 shr $0x6,%r12 - 42053a: 49 83 fc 30 cmp $0x30,%r12 - 42053e: 77 0e ja 42054e <__malloc_trim+0x1de> - 420540: 41 8d 44 24 30 lea 0x30(%r12),%eax - 420545: 89 44 24 10 mov %eax,0x10(%rsp) - 420549: e9 1b ff ff ff jmpq 420469 <__malloc_trim+0xf9> - 42054e: 49 89 cc mov %rcx,%r12 - 420551: 49 c1 ec 09 shr $0x9,%r12 - 420555: 49 83 fc 14 cmp $0x14,%r12 - 420559: 76 1b jbe 420576 <__malloc_trim+0x206> - 42055b: 49 89 cc mov %rcx,%r12 - 42055e: 49 c1 ec 0c shr $0xc,%r12 - 420562: 49 83 fc 0a cmp $0xa,%r12 - 420566: 77 4e ja 4205b6 <__malloc_trim+0x246> - 420568: 41 8d 44 24 6e lea 0x6e(%r12),%eax - 42056d: 89 44 24 10 mov %eax,0x10(%rsp) - 420571: e9 f3 fe ff ff jmpq 420469 <__malloc_trim+0xf9> - 420576: 41 8d 44 24 5b lea 0x5b(%r12),%eax - 42057b: 89 44 24 10 mov %eax,0x10(%rsp) - 42057f: e9 e5 fe ff ff jmpq 420469 <__malloc_trim+0xf9> - 420584: b9 1a 23 4a 00 mov $0x4a231a,%ecx - 420589: ba aa 11 00 00 mov $0x11aa,%edx - 42058e: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 420593: bf 38 2b 4a 00 mov $0x4a2b38,%edi - 420598: e8 83 68 ff ff callq 416e20 <__malloc_assert> - 42059d: b9 1a 23 4a 00 mov $0x4a231a,%ecx - 4205a2: ba a9 11 00 00 mov $0x11a9,%edx - 4205a7: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 4205ac: bf 00 2b 4a 00 mov $0x4a2b00,%edi - 4205b1: e8 6a 68 ff ff callq 416e20 <__malloc_assert> - 4205b6: 49 89 cc mov %rcx,%r12 - 4205b9: 49 c1 ec 0f shr $0xf,%r12 - 4205bd: 49 83 fc 04 cmp $0x4,%r12 - 4205c1: 77 18 ja 4205db <__malloc_trim+0x26b> - 4205c3: 41 8d 44 24 77 lea 0x77(%r12),%eax - 4205c8: 89 44 24 10 mov %eax,0x10(%rsp) - 4205cc: e9 98 fe ff ff jmpq 420469 <__malloc_trim+0xf9> - 4205d1: e8 1a e7 ff ff callq 41ecf0 - 4205d6: e9 b6 fd ff ff jmpq 420391 <__malloc_trim+0x21> - 4205db: 48 89 c8 mov %rcx,%rax - 4205de: 48 c1 e8 12 shr $0x12,%rax - 4205e2: 44 8d 60 7c lea 0x7c(%rax),%r12d - 4205e6: 48 83 f8 02 cmp $0x2,%rax - 4205ea: b8 7e 00 00 00 mov $0x7e,%eax - 4205ef: 41 0f 46 c4 cmovbe %r12d,%eax - 4205f3: 89 44 24 10 mov %eax,0x10(%rsp) - 4205f7: e9 6d fe ff ff jmpq 420469 <__malloc_trim+0xf9> - 4205fc: 48 8b 7c 24 18 mov 0x18(%rsp),%rdi - 420601: ba 80 b0 6c 00 mov $0x6cb080,%edx - 420606: be 58 a8 6c 00 mov $0x6ca858,%esi - 42060b: 44 89 5c 24 10 mov %r11d,0x10(%rsp) - 420610: e8 8b 6d ff ff callq 4173a0 - 420615: 44 8b 5c 24 10 mov 0x10(%rsp),%r11d - 42061a: e9 0c ff ff ff jmpq 42052b <__malloc_trim+0x1bb> - 42061f: 90 nop - -0000000000420620 <__libc_mallinfo>: - 420620: 41 54 push %r12 - 420622: 55 push %rbp - 420623: 49 89 fc mov %rdi,%r12 - 420626: 53 push %rbx - 420627: 48 83 ec 30 sub $0x30,%rsp - 42062b: 8b 05 33 a1 2a 00 mov 0x2aa133(%rip),%eax # 6ca764 <__libc_malloc_initialized> - 420631: 85 c0 test %eax,%eax - 420633: 0f 88 ef 00 00 00 js 420728 <__libc_mallinfo+0x108> - 420639: 48 c7 04 24 00 00 00 movq $0x0,(%rsp) - 420640: 00 - 420641: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) - 420648: 00 00 - 42064a: bb 00 a8 6c 00 mov $0x6ca800,%ebx - 42064f: 48 c7 44 24 10 00 00 movq $0x0,0x10(%rsp) - 420656: 00 00 - 420658: 48 c7 44 24 18 00 00 movq $0x0,0x18(%rsp) - 42065f: 00 00 - 420661: bd 01 00 00 00 mov $0x1,%ebp - 420666: 48 c7 44 24 20 00 00 movq $0x0,0x20(%rsp) - 42066d: 00 00 - 42066f: 90 nop - 420670: 89 ee mov %ebp,%esi - 420672: 31 c0 xor %eax,%eax - 420674: 83 3d 41 cb 2a 00 00 cmpl $0x0,0x2acb41(%rip) # 6cd1bc <__libc_multiple_threads> - 42067b: 74 08 je 420685 <__libc_mallinfo+0x65> - 42067d: f0 0f b1 33 lock cmpxchg %esi,(%rbx) - 420681: 75 07 jne 42068a <__libc_mallinfo+0x6a> - 420683: eb 1b jmp 4206a0 <__libc_mallinfo+0x80> - 420685: 0f b1 33 cmpxchg %esi,(%rbx) - 420688: 74 16 je 4206a0 <__libc_mallinfo+0x80> - 42068a: 48 8d 3b lea (%rbx),%rdi - 42068d: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 420694: e8 37 1f 02 00 callq 4425d0 <__lll_lock_wait_private> - 420699: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4206a0: 48 89 e6 mov %rsp,%rsi - 4206a3: 48 89 df mov %rbx,%rdi - 4206a6: e8 15 82 ff ff callq 4188c0 - 4206ab: 83 3d 0a cb 2a 00 00 cmpl $0x0,0x2acb0a(%rip) # 6cd1bc <__libc_multiple_threads> - 4206b2: 74 07 je 4206bb <__libc_mallinfo+0x9b> - 4206b4: f0 ff 0b lock decl (%rbx) - 4206b7: 75 06 jne 4206bf <__libc_mallinfo+0x9f> - 4206b9: eb 1a jmp 4206d5 <__libc_mallinfo+0xb5> - 4206bb: ff 0b decl (%rbx) - 4206bd: 74 16 je 4206d5 <__libc_mallinfo+0xb5> - 4206bf: 48 8d 3b lea (%rbx),%rdi - 4206c2: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4206c9: e8 32 1f 02 00 callq 442600 <__lll_unlock_wake_private> - 4206ce: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4206d5: 48 8b 9b 68 08 00 00 mov 0x868(%rbx),%rbx - 4206dc: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx - 4206e3: 75 8b jne 420670 <__libc_mallinfo+0x50> - 4206e5: 48 8b 04 24 mov (%rsp),%rax - 4206e9: 49 89 04 24 mov %rax,(%r12) - 4206ed: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4206f2: 49 89 44 24 08 mov %rax,0x8(%r12) - 4206f7: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 4206fc: 49 89 44 24 10 mov %rax,0x10(%r12) - 420701: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 420706: 49 89 44 24 18 mov %rax,0x18(%r12) - 42070b: 48 8b 44 24 20 mov 0x20(%rsp),%rax - 420710: 49 89 44 24 20 mov %rax,0x20(%r12) - 420715: 48 83 c4 30 add $0x30,%rsp - 420719: 4c 89 e0 mov %r12,%rax - 42071c: 5b pop %rbx - 42071d: 5d pop %rbp - 42071e: 41 5c pop %r12 - 420720: c3 retq - 420721: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 420728: e8 c3 e5 ff ff callq 41ecf0 - 42072d: e9 07 ff ff ff jmpq 420639 <__libc_mallinfo+0x19> - 420732: 0f 1f 40 00 nopl 0x0(%rax) - 420736: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42073d: 00 00 00 - -0000000000420740 <__malloc_stats>: - 420740: 41 57 push %r15 - 420742: 41 56 push %r14 - 420744: 41 55 push %r13 - 420746: 41 54 push %r12 - 420748: 55 push %rbp - 420749: 53 push %rbx - 42074a: 48 83 ec 38 sub $0x38,%rsp - 42074e: 8b 05 10 a0 2a 00 mov 0x2aa010(%rip),%eax # 6ca764 <__libc_malloc_initialized> - 420754: 4c 8b 25 7d a0 2a 00 mov 0x2aa07d(%rip),%r12 # 6ca7d8 - 42075b: 85 c0 test %eax,%eax - 42075d: 45 89 e5 mov %r12d,%r13d - 420760: 0f 88 ba 01 00 00 js 420920 <__malloc_stats+0x1e0> - 420766: 48 8b 05 cb 9f 2a 00 mov 0x2a9fcb(%rip),%rax # 6ca738 <_IO_stderr> - 42076d: bb 00 a8 6c 00 mov $0x6ca800,%ebx - 420772: 31 ed xor %ebp,%ebp - 420774: 41 be 01 00 00 00 mov $0x1,%r14d - 42077a: 44 8b 78 74 mov 0x74(%rax),%r15d - 42077e: 44 89 fa mov %r15d,%edx - 420781: 83 ca 02 or $0x2,%edx - 420784: 89 50 74 mov %edx,0x74(%rax) - 420787: eb 0a jmp 420793 <__malloc_stats+0x53> - 420789: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 420790: 83 c5 01 add $0x1,%ebp - 420793: 48 c7 04 24 00 00 00 movq $0x0,(%rsp) - 42079a: 00 - 42079b: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) - 4207a2: 00 00 - 4207a4: 44 89 f6 mov %r14d,%esi - 4207a7: 48 c7 44 24 10 00 00 movq $0x0,0x10(%rsp) - 4207ae: 00 00 - 4207b0: 48 c7 44 24 18 00 00 movq $0x0,0x18(%rsp) - 4207b7: 00 00 - 4207b9: 31 c0 xor %eax,%eax - 4207bb: 48 c7 44 24 20 00 00 movq $0x0,0x20(%rsp) - 4207c2: 00 00 - 4207c4: 83 3d f1 c9 2a 00 00 cmpl $0x0,0x2ac9f1(%rip) # 6cd1bc <__libc_multiple_threads> - 4207cb: 74 08 je 4207d5 <__malloc_stats+0x95> - 4207cd: f0 0f b1 33 lock cmpxchg %esi,(%rbx) - 4207d1: 75 07 jne 4207da <__malloc_stats+0x9a> - 4207d3: eb 1b jmp 4207f0 <__malloc_stats+0xb0> - 4207d5: 0f b1 33 cmpxchg %esi,(%rbx) - 4207d8: 74 16 je 4207f0 <__malloc_stats+0xb0> - 4207da: 48 8d 3b lea (%rbx),%rdi - 4207dd: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 4207e4: e8 e7 1d 02 00 callq 4425d0 <__lll_lock_wait_private> - 4207e9: 48 81 c4 80 00 00 00 add $0x80,%rsp - 4207f0: 48 89 e6 mov %rsp,%rsi - 4207f3: 48 89 df mov %rbx,%rdi - 4207f6: e8 c5 80 ff ff callq 4188c0 - 4207fb: 48 8b 3d 36 9f 2a 00 mov 0x2a9f36(%rip),%rdi # 6ca738 <_IO_stderr> - 420802: 89 ea mov %ebp,%edx - 420804: be 5e 22 4a 00 mov $0x4a225e,%esi - 420809: 31 c0 xor %eax,%eax - 42080b: e8 90 bb 03 00 callq 45c3a0 <__fprintf> - 420810: 8b 14 24 mov (%rsp),%edx - 420813: 48 8b 3d 1e 9f 2a 00 mov 0x2a9f1e(%rip),%rdi # 6ca738 <_IO_stderr> - 42081a: be 69 22 4a 00 mov $0x4a2269,%esi - 42081f: 31 c0 xor %eax,%eax - 420821: e8 7a bb 03 00 callq 45c3a0 <__fprintf> - 420826: 8b 54 24 1c mov 0x1c(%rsp),%edx - 42082a: 48 8b 3d 07 9f 2a 00 mov 0x2a9f07(%rip),%rdi # 6ca738 <_IO_stderr> - 420831: be 82 22 4a 00 mov $0x4a2282,%esi - 420836: 31 c0 xor %eax,%eax - 420838: e8 63 bb 03 00 callq 45c3a0 <__fprintf> - 42083d: 44 03 24 24 add (%rsp),%r12d - 420841: 44 03 6c 24 1c add 0x1c(%rsp),%r13d - 420846: 83 3d 6f c9 2a 00 00 cmpl $0x0,0x2ac96f(%rip) # 6cd1bc <__libc_multiple_threads> - 42084d: 74 07 je 420856 <__malloc_stats+0x116> - 42084f: f0 ff 0b lock decl (%rbx) - 420852: 75 06 jne 42085a <__malloc_stats+0x11a> - 420854: eb 1a jmp 420870 <__malloc_stats+0x130> - 420856: ff 0b decl (%rbx) - 420858: 74 16 je 420870 <__malloc_stats+0x130> - 42085a: 48 8d 3b lea (%rbx),%rdi - 42085d: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 420864: e8 97 1d 02 00 callq 442600 <__lll_unlock_wake_private> - 420869: 48 81 c4 80 00 00 00 add $0x80,%rsp - 420870: 48 8b 9b 68 08 00 00 mov 0x868(%rbx),%rbx - 420877: 48 81 fb 00 a8 6c 00 cmp $0x6ca800,%rbx - 42087e: 0f 85 0c ff ff ff jne 420790 <__malloc_stats+0x50> - 420884: 48 8b 0d ad 9e 2a 00 mov 0x2a9ead(%rip),%rcx # 6ca738 <_IO_stderr> - 42088b: ba 14 00 00 00 mov $0x14,%edx - 420890: be 01 00 00 00 mov $0x1,%esi - 420895: bf 9b 22 4a 00 mov $0x4a229b,%edi - 42089a: e8 e1 24 04 00 callq 462d80 <_IO_fwrite> - 42089f: 48 8b 3d 92 9e 2a 00 mov 0x2a9e92(%rip),%rdi # 6ca738 <_IO_stderr> - 4208a6: 44 89 e2 mov %r12d,%edx - 4208a9: be 69 22 4a 00 mov $0x4a2269,%esi - 4208ae: 31 c0 xor %eax,%eax - 4208b0: e8 eb ba 03 00 callq 45c3a0 <__fprintf> - 4208b5: 48 8b 3d 7c 9e 2a 00 mov 0x2a9e7c(%rip),%rdi # 6ca738 <_IO_stderr> - 4208bc: 44 89 ea mov %r13d,%edx - 4208bf: be 82 22 4a 00 mov $0x4a2282,%esi - 4208c4: 31 c0 xor %eax,%eax - 4208c6: e8 d5 ba 03 00 callq 45c3a0 <__fprintf> - 4208cb: 8b 15 ff 9e 2a 00 mov 0x2a9eff(%rip),%edx # 6ca7d0 - 4208d1: 48 8b 3d 60 9e 2a 00 mov 0x2a9e60(%rip),%rdi # 6ca738 <_IO_stderr> - 4208d8: be b0 22 4a 00 mov $0x4a22b0,%esi - 4208dd: 31 c0 xor %eax,%eax - 4208df: e8 bc ba 03 00 callq 45c3a0 <__fprintf> - 4208e4: 48 8b 15 f5 9e 2a 00 mov 0x2a9ef5(%rip),%rdx # 6ca7e0 - 4208eb: 48 8b 3d 46 9e 2a 00 mov 0x2a9e46(%rip),%rdi # 6ca738 <_IO_stderr> - 4208f2: be c9 22 4a 00 mov $0x4a22c9,%esi - 4208f7: 31 c0 xor %eax,%eax - 4208f9: e8 a2 ba 03 00 callq 45c3a0 <__fprintf> - 4208fe: 48 8b 05 33 9e 2a 00 mov 0x2a9e33(%rip),%rax # 6ca738 <_IO_stderr> - 420905: 44 09 78 74 or %r15d,0x74(%rax) - 420909: 48 83 c4 38 add $0x38,%rsp - 42090d: 5b pop %rbx - 42090e: 5d pop %rbp - 42090f: 41 5c pop %r12 - 420911: 41 5d pop %r13 - 420913: 41 5e pop %r14 - 420915: 41 5f pop %r15 - 420917: c3 retq - 420918: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42091f: 00 - 420920: e8 cb e3 ff ff callq 41ecf0 - 420925: e9 3c fe ff ff jmpq 420766 <__malloc_stats+0x26> - 42092a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -0000000000420930 <__malloc_info.part.7>: - 420930: 41 57 push %r15 - 420932: 41 56 push %r14 - 420934: 41 55 push %r13 - 420936: 41 54 push %r12 - 420938: 55 push %rbp - 420939: 53 push %rbx - 42093a: 48 89 fb mov %rdi,%rbx - 42093d: 48 81 ec 98 11 00 00 sub $0x1198,%rsp - 420944: 8b 0d 1a 9e 2a 00 mov 0x2a9e1a(%rip),%ecx # 6ca764 <__libc_malloc_initialized> - 42094a: 85 c9 test %ecx,%ecx - 42094c: 0f 88 55 04 00 00 js 420da7 <__malloc_info.part.7+0x477> - 420952: 48 89 de mov %rbx,%rsi - 420955: bf e3 22 4a 00 mov $0x4a22e3,%edi - 42095a: e8 31 22 04 00 callq 462b90 <_IO_fputs> - 42095f: 48 8d 84 24 b8 01 00 lea 0x1b8(%rsp),%rax - 420966: 00 - 420967: 48 c7 44 24 10 00 a8 movq $0x6ca800,0x10(%rsp) - 42096e: 6c 00 - 420970: 48 c7 44 24 20 00 00 movq $0x0,0x20(%rsp) - 420977: 00 00 - 420979: 48 c7 44 24 18 00 00 movq $0x0,0x18(%rsp) - 420980: 00 00 - 420982: 48 c7 44 24 50 00 00 movq $0x0,0x50(%rsp) - 420989: 00 00 - 42098b: 31 d2 xor %edx,%edx - 42098d: 48 c7 44 24 48 00 00 movq $0x0,0x48(%rsp) - 420994: 00 00 - 420996: 48 c7 44 24 30 00 00 movq $0x0,0x30(%rsp) - 42099d: 00 00 - 42099f: 48 c7 44 24 40 00 00 movq $0x0,0x40(%rsp) - 4209a6: 00 00 - 4209a8: 48 c7 44 24 28 00 00 movq $0x0,0x28(%rsp) - 4209af: 00 00 - 4209b1: 48 c7 44 24 38 00 00 movq $0x0,0x38(%rsp) - 4209b8: 00 00 - 4209ba: 48 89 44 24 68 mov %rax,0x68(%rsp) - 4209bf: 8d 42 01 lea 0x1(%rdx),%eax - 4209c2: be f9 22 4a 00 mov $0x4a22f9,%esi - 4209c7: 48 89 df mov %rbx,%rdi - 4209ca: 89 44 24 64 mov %eax,0x64(%rsp) - 4209ce: 31 c0 xor %eax,%eax - 4209d0: e8 cb b9 03 00 callq 45c3a0 <__fprintf> - 4209d5: be 01 00 00 00 mov $0x1,%esi - 4209da: 31 c0 xor %eax,%eax - 4209dc: 48 8b 54 24 10 mov 0x10(%rsp),%rdx - 4209e1: 83 3d d4 c7 2a 00 00 cmpl $0x0,0x2ac7d4(%rip) # 6cd1bc <__libc_multiple_threads> - 4209e8: 74 08 je 4209f2 <__malloc_info.part.7+0xc2> - 4209ea: f0 0f b1 32 lock cmpxchg %esi,(%rdx) - 4209ee: 75 07 jne 4209f7 <__malloc_info.part.7+0xc7> - 4209f0: eb 1b jmp 420a0d <__malloc_info.part.7+0xdd> - 4209f2: 0f b1 32 cmpxchg %esi,(%rdx) - 4209f5: 74 16 je 420a0d <__malloc_info.part.7+0xdd> - 4209f7: 48 8d 3a lea (%rdx),%rdi - 4209fa: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 420a01: e8 ca 1b 02 00 callq 4425d0 <__lll_lock_wait_private> - 420a06: 48 81 c4 80 00 00 00 add $0x80,%rsp - 420a0d: 4c 8b 4c 24 68 mov 0x68(%rsp),%r9 - 420a12: 48 8d 7a 08 lea 0x8(%rdx),%rdi - 420a16: 48 8d 4c 24 78 lea 0x78(%rsp),%rcx - 420a1b: 45 31 c0 xor %r8d,%r8d - 420a1e: 45 31 e4 xor %r12d,%r12d - 420a21: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 420a28: 48 8b 07 mov (%rdi),%rax - 420a2b: 48 85 c0 test %rax,%rax - 420a2e: 0f 84 fa 02 00 00 je 420d2e <__malloc_info.part.7+0x3fe> - 420a34: 48 8b 70 08 mov 0x8(%rax),%rsi - 420a38: 31 d2 xor %edx,%edx - 420a3a: 48 83 e6 f8 and $0xfffffffffffffff8,%rsi - 420a3e: 66 90 xchg %ax,%ax - 420a40: 48 8b 40 10 mov 0x10(%rax),%rax - 420a44: 48 83 c2 01 add $0x1,%rdx - 420a48: 48 85 c0 test %rax,%rax - 420a4b: 75 f3 jne 420a40 <__malloc_info.part.7+0x110> - 420a4d: 48 89 f0 mov %rsi,%rax - 420a50: 49 01 d0 add %rdx,%r8 - 420a53: 48 89 31 mov %rsi,(%rcx) - 420a56: 48 0f af c2 imul %rdx,%rax - 420a5a: 48 89 51 10 mov %rdx,0x10(%rcx) - 420a5e: 49 01 c4 add %rax,%r12 - 420a61: 48 8d 46 f1 lea -0xf(%rsi),%rax - 420a65: 48 89 41 f8 mov %rax,-0x8(%rcx) - 420a69: 48 0f af 11 imul (%rcx),%rdx - 420a6d: 48 83 c1 20 add $0x20,%rcx - 420a71: 48 83 c7 08 add $0x8,%rdi - 420a75: 48 89 51 e8 mov %rdx,-0x18(%rcx) - 420a79: 49 39 c9 cmp %rcx,%r9 - 420a7c: 75 aa jne 420a28 <__malloc_info.part.7+0xf8> - 420a7e: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 420a83: 4c 8d 94 24 b0 01 00 lea 0x1b0(%rsp),%r10 - 420a8a: 00 - 420a8b: 4c 8d 9c 24 90 11 00 lea 0x1190(%rsp),%r11 - 420a92: 00 - 420a93: 4c 89 44 24 58 mov %r8,0x58(%rsp) - 420a98: 45 31 f6 xor %r14d,%r14d - 420a9b: 45 31 c0 xor %r8d,%r8d - 420a9e: 4c 8d 48 58 lea 0x58(%rax),%r9 - 420aa2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 420aa8: 49 8b 51 10 mov 0x10(%r9),%rdx - 420aac: 66 0f ef d2 pxor %xmm2,%xmm2 - 420ab0: 66 0f 6f 0d 28 25 08 movdqa 0x82528(%rip),%xmm1 # 4a2fe0 <__func__.10972+0x20> - 420ab7: 00 - 420ab8: 48 85 d2 test %rdx,%rdx - 420abb: 41 0f 29 0a movaps %xmm1,(%r10) - 420abf: 41 0f 29 52 10 movaps %xmm2,0x10(%r10) - 420ac4: 0f 84 56 02 00 00 je 420d20 <__malloc_info.part.7+0x3f0> - 420aca: 49 39 d1 cmp %rdx,%r9 - 420acd: 0f 84 4d 02 00 00 je 420d20 <__malloc_info.part.7+0x3f0> - 420ad3: 49 8b 42 18 mov 0x18(%r10),%rax - 420ad7: 49 8b 6a 10 mov 0x10(%r10),%rbp - 420adb: 31 c9 xor %ecx,%ecx - 420add: 49 8b 32 mov (%r10),%rsi - 420ae0: 48 8d 78 01 lea 0x1(%rax),%rdi - 420ae4: eb 0d jmp 420af3 <__malloc_info.part.7+0x1c3> - 420ae6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 420aed: 00 00 00 - 420af0: 48 89 c7 mov %rax,%rdi - 420af3: 48 8b 42 08 mov 0x8(%rdx),%rax - 420af7: 48 8b 52 10 mov 0x10(%rdx),%rdx - 420afb: 48 01 c5 add %rax,%rbp - 420afe: 48 39 c6 cmp %rax,%rsi - 420b01: 48 0f 47 f0 cmova %rax,%rsi - 420b05: 48 39 c1 cmp %rax,%rcx - 420b08: 48 0f 42 c8 cmovb %rax,%rcx - 420b0c: 49 39 d1 cmp %rdx,%r9 - 420b0f: 48 8d 47 01 lea 0x1(%rdi),%rax - 420b13: 75 db jne 420af0 <__malloc_info.part.7+0x1c0> - 420b15: 48 89 74 24 08 mov %rsi,0x8(%rsp) - 420b1a: 48 85 ff test %rdi,%rdi - 420b1d: f3 0f 7e 44 24 08 movq 0x8(%rsp),%xmm0 - 420b23: 48 89 4c 24 08 mov %rcx,0x8(%rsp) - 420b28: 0f 16 44 24 08 movhps 0x8(%rsp),%xmm0 - 420b2d: 48 89 6c 24 08 mov %rbp,0x8(%rsp) - 420b32: 41 0f 29 02 movaps %xmm0,(%r10) - 420b36: f3 0f 7e 44 24 08 movq 0x8(%rsp),%xmm0 - 420b3c: 48 89 7c 24 08 mov %rdi,0x8(%rsp) - 420b41: 0f 16 44 24 08 movhps 0x8(%rsp),%xmm0 - 420b46: 41 0f 29 42 10 movaps %xmm0,0x10(%r10) - 420b4b: 0f 84 cf 01 00 00 je 420d20 <__malloc_info.part.7+0x3f0> - 420b51: 4d 89 c7 mov %r8,%r15 - 420b54: 49 83 c2 20 add $0x20,%r10 - 420b58: 49 01 fe add %rdi,%r14 - 420b5b: 49 83 c1 10 add $0x10,%r9 - 420b5f: 4d 03 7a f0 add -0x10(%r10),%r15 - 420b63: 4d 39 d3 cmp %r10,%r11 - 420b66: 4d 89 f8 mov %r15,%r8 - 420b69: 0f 85 39 ff ff ff jne 420aa8 <__malloc_info.part.7+0x178> - 420b6f: 48 8b 74 24 10 mov 0x10(%rsp),%rsi - 420b74: 83 3d 41 c6 2a 00 00 cmpl $0x0,0x2ac641(%rip) # 6cd1bc <__libc_multiple_threads> - 420b7b: 74 07 je 420b84 <__malloc_info.part.7+0x254> - 420b7d: f0 ff 0e lock decl (%rsi) - 420b80: 75 06 jne 420b88 <__malloc_info.part.7+0x258> - 420b82: eb 1a jmp 420b9e <__malloc_info.part.7+0x26e> - 420b84: ff 0e decl (%rsi) - 420b86: 74 16 je 420b9e <__malloc_info.part.7+0x26e> - 420b88: 48 8d 3e lea (%rsi),%rdi - 420b8b: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 420b92: e8 69 1a 02 00 callq 442600 <__lll_unlock_wake_private> - 420b97: 48 81 c4 80 00 00 00 add $0x80,%rsp - 420b9e: 48 8b 74 24 58 mov 0x58(%rsp),%rsi - 420ba3: 4c 01 64 24 30 add %r12,0x30(%rsp) - 420ba8: 48 8d ac 24 88 00 00 lea 0x88(%rsp),%rbp - 420baf: 00 - 420bb0: 48 01 74 24 28 add %rsi,0x28(%rsp) - 420bb5: 45 31 ed xor %r13d,%r13d - 420bb8: 4c 01 74 24 38 add %r14,0x38(%rsp) - 420bbd: 4c 01 7c 24 40 add %r15,0x40(%rsp) - 420bc2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 420bc8: 49 83 fd 0a cmp $0xa,%r13 - 420bcc: 4c 8b 4d 00 mov 0x0(%rbp),%r9 - 420bd0: 74 20 je 420bf2 <__malloc_info.part.7+0x2c2> - 420bd2: 4d 85 c9 test %r9,%r9 - 420bd5: 74 1b je 420bf2 <__malloc_info.part.7+0x2c2> - 420bd7: 48 8b 4d f0 mov -0x10(%rbp),%rcx - 420bdb: 48 8b 55 e8 mov -0x18(%rbp),%rdx - 420bdf: be 60 2b 4a 00 mov $0x4a2b60,%esi - 420be4: 4c 8b 45 f8 mov -0x8(%rbp),%r8 - 420be8: 48 89 df mov %rbx,%rdi - 420beb: 31 c0 xor %eax,%eax - 420bed: e8 ae b7 03 00 callq 45c3a0 <__fprintf> - 420bf2: 49 83 c5 01 add $0x1,%r13 - 420bf6: 48 83 c5 20 add $0x20,%rbp - 420bfa: 49 81 fd 89 00 00 00 cmp $0x89,%r13 - 420c01: 75 c5 jne 420bc8 <__malloc_info.part.7+0x298> - 420c03: 4c 8b 8c 24 c8 01 00 mov 0x1c8(%rsp),%r9 - 420c0a: 00 - 420c0b: 4d 85 c9 test %r9,%r9 - 420c0e: 0f 85 38 01 00 00 jne 420d4c <__malloc_info.part.7+0x41c> - 420c14: 48 8b 6c 24 10 mov 0x10(%rsp),%rbp - 420c19: 4d 89 f9 mov %r15,%r9 - 420c1c: 4d 89 f0 mov %r14,%r8 - 420c1f: 4c 89 e1 mov %r12,%rcx - 420c22: be e8 2b 4a 00 mov $0x4a2be8,%esi - 420c27: 48 89 df mov %rbx,%rdi - 420c2a: 48 8b 85 80 08 00 00 mov 0x880(%rbp),%rax - 420c31: 48 8b 95 88 08 00 00 mov 0x888(%rbp),%rdx - 420c38: 48 01 44 24 48 add %rax,0x48(%rsp) - 420c3d: 48 01 54 24 50 add %rdx,0x50(%rsp) - 420c42: 52 push %rdx - 420c43: 50 push %rax - 420c44: 31 c0 xor %eax,%eax - 420c46: 48 8b 54 24 68 mov 0x68(%rsp),%rdx - 420c4b: e8 50 b7 03 00 callq 45c3a0 <__fprintf> - 420c50: 48 81 fd 00 a8 6c 00 cmp $0x6ca800,%rbp - 420c57: 58 pop %rax - 420c58: 5a pop %rdx - 420c59: 0f 84 19 01 00 00 je 420d78 <__malloc_info.part.7+0x448> - 420c5f: 48 8b 45 58 mov 0x58(%rbp),%rax - 420c63: be 90 2c 4a 00 mov $0x4a2c90,%esi - 420c68: 48 89 df mov %rbx,%rdi - 420c6b: 48 89 c5 mov %rax,%rbp - 420c6e: 48 89 44 24 08 mov %rax,0x8(%rsp) - 420c73: 31 c0 xor %eax,%eax - 420c75: 48 81 e5 00 00 00 fc and $0xfffffffffc000000,%rbp - 420c7c: 48 8b 4d 18 mov 0x18(%rbp),%rcx - 420c80: 48 8b 55 10 mov 0x10(%rbp),%rdx - 420c84: e8 17 b7 03 00 callq 45c3a0 <__fprintf> - 420c89: 48 8b 75 10 mov 0x10(%rbp),%rsi - 420c8d: 48 01 74 24 18 add %rsi,0x18(%rsp) - 420c92: 48 8b 75 18 mov 0x18(%rbp),%rsi - 420c96: 48 01 74 24 20 add %rsi,0x20(%rsp) - 420c9b: 48 89 de mov %rbx,%rsi - 420c9e: bf 11 23 4a 00 mov $0x4a2311,%edi - 420ca3: e8 e8 1e 04 00 callq 462b90 <_IO_fputs> - 420ca8: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 420cad: 8b 54 24 64 mov 0x64(%rsp),%edx - 420cb1: 48 8b 80 68 08 00 00 mov 0x868(%rax),%rax - 420cb8: 48 3d 00 a8 6c 00 cmp $0x6ca800,%rax - 420cbe: 48 89 44 24 10 mov %rax,0x10(%rsp) - 420cc3: 0f 85 f6 fc ff ff jne 4209bf <__malloc_info.part.7+0x8f> - 420cc9: 8b 05 f9 9a 2a 00 mov 0x2a9af9(%rip),%eax # 6ca7c8 - 420ccf: ff 74 24 20 pushq 0x20(%rsp) - 420cd3: 48 89 df mov %rbx,%rdi - 420cd6: ff 74 24 20 pushq 0x20(%rsp) - 420cda: ff 74 24 60 pushq 0x60(%rsp) - 420cde: be d8 2c 4a 00 mov $0x4a2cd8,%esi - 420ce3: ff 74 24 60 pushq 0x60(%rsp) - 420ce7: ff 35 eb 9a 2a 00 pushq 0x2a9aeb(%rip) # 6ca7d8 - 420ced: 50 push %rax - 420cee: 4c 8b 4c 24 70 mov 0x70(%rsp),%r9 - 420cf3: 31 c0 xor %eax,%eax - 420cf5: 4c 8b 44 24 68 mov 0x68(%rsp),%r8 - 420cfa: 48 8b 4c 24 60 mov 0x60(%rsp),%rcx - 420cff: 48 8b 54 24 58 mov 0x58(%rsp),%rdx - 420d04: e8 97 b6 03 00 callq 45c3a0 <__fprintf> - 420d09: 48 81 c4 c8 11 00 00 add $0x11c8,%rsp - 420d10: 31 c0 xor %eax,%eax - 420d12: 5b pop %rbx - 420d13: 5d pop %rbp - 420d14: 41 5c pop %r12 - 420d16: 41 5d pop %r13 - 420d18: 41 5e pop %r14 - 420d1a: 41 5f pop %r15 - 420d1c: c3 retq - 420d1d: 0f 1f 00 nopl (%rax) - 420d20: 49 c7 02 00 00 00 00 movq $0x0,(%r10) - 420d27: 31 ff xor %edi,%edi - 420d29: e9 23 fe ff ff jmpq 420b51 <__malloc_info.part.7+0x221> - 420d2e: 48 c7 41 10 00 00 00 movq $0x0,0x10(%rcx) - 420d35: 00 - 420d36: 48 c7 01 00 00 00 00 movq $0x0,(%rcx) - 420d3d: 31 d2 xor %edx,%edx - 420d3f: 48 c7 41 f8 00 00 00 movq $0x0,-0x8(%rcx) - 420d46: 00 - 420d47: e9 1d fd ff ff jmpq 420a69 <__malloc_info.part.7+0x139> - 420d4c: 4c 8b 84 24 c0 01 00 mov 0x1c0(%rsp),%r8 - 420d53: 00 - 420d54: 48 8b 8c 24 b8 01 00 mov 0x1b8(%rsp),%rcx - 420d5b: 00 - 420d5c: be a8 2b 4a 00 mov $0x4a2ba8,%esi - 420d61: 48 8b 94 24 b0 01 00 mov 0x1b0(%rsp),%rdx - 420d68: 00 - 420d69: 48 89 df mov %rbx,%rdi - 420d6c: 31 c0 xor %eax,%eax - 420d6e: e8 2d b6 03 00 callq 45c3a0 <__fprintf> - 420d73: e9 9c fe ff ff jmpq 420c14 <__malloc_info.part.7+0x2e4> - 420d78: 48 8b 15 01 a3 2a 00 mov 0x2aa301(%rip),%rdx # 6cb080 - 420d7f: be 90 2c 4a 00 mov $0x4a2c90,%esi - 420d84: 48 89 df mov %rbx,%rdi - 420d87: 31 c0 xor %eax,%eax - 420d89: 48 89 d1 mov %rdx,%rcx - 420d8c: e8 0f b6 03 00 callq 45c3a0 <__fprintf> - 420d91: 48 8b 05 e8 a2 2a 00 mov 0x2aa2e8(%rip),%rax # 6cb080 - 420d98: 48 01 44 24 18 add %rax,0x18(%rsp) - 420d9d: 48 01 44 24 20 add %rax,0x20(%rsp) - 420da2: e9 f4 fe ff ff jmpq 420c9b <__malloc_info.part.7+0x36b> - 420da7: e8 44 df ff ff callq 41ecf0 - 420dac: e9 a1 fb ff ff jmpq 420952 <__malloc_info.part.7+0x22> - 420db1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 420db6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 420dbd: 00 00 00 - -0000000000420dc0 <__posix_memalign>: - 420dc0: 40 f6 c6 07 test $0x7,%sil - 420dc4: b8 16 00 00 00 mov $0x16,%eax - 420dc9: 74 05 je 420dd0 <__posix_memalign+0x10> - 420dcb: c3 retq - 420dcc: 0f 1f 40 00 nopl 0x0(%rax) - 420dd0: 48 89 f0 mov %rsi,%rax - 420dd3: 48 c1 e8 03 shr $0x3,%rax - 420dd7: 48 8d 48 ff lea -0x1(%rax),%rcx - 420ddb: 48 85 c1 test %rax,%rcx - 420dde: 0f 85 7c 01 00 00 jne 420f60 <__posix_memalign+0x1a0> - 420de4: 48 85 f6 test %rsi,%rsi - 420de7: 0f 84 73 01 00 00 je 420f60 <__posix_memalign+0x1a0> - 420ded: 41 55 push %r13 - 420def: 41 54 push %r12 - 420df1: 48 89 f0 mov %rsi,%rax - 420df4: 55 push %rbp - 420df5: 53 push %rbx - 420df6: 48 89 fd mov %rdi,%rbp - 420df9: 48 89 d3 mov %rdx,%rbx - 420dfc: 48 83 ec 08 sub $0x8,%rsp - 420e00: 48 8b 0d 71 99 2a 00 mov 0x2a9971(%rip),%rcx # 6ca778 <__memalign_hook> - 420e07: 48 85 c9 test %rcx,%rcx - 420e0a: 48 8b 54 24 28 mov 0x28(%rsp),%rdx - 420e0f: 0f 85 51 01 00 00 jne 420f66 <__posix_memalign+0x1a6> - 420e15: 48 83 fe 10 cmp $0x10,%rsi - 420e19: 0f 86 b9 01 00 00 jbe 420fd8 <__posix_memalign+0x218> - 420e1f: 48 83 fe 1f cmp $0x1f,%rsi - 420e23: 0f 86 51 01 00 00 jbe 420f7a <__posix_memalign+0x1ba> - 420e29: 48 ba 00 00 00 00 00 movabs $0x8000000000000000,%rdx - 420e30: 00 00 80 - 420e33: 48 39 d6 cmp %rdx,%rsi - 420e36: 0f 87 c8 01 00 00 ja 421004 <__posix_memalign+0x244> - 420e3c: 48 c7 c2 df ff ff ff mov $0xffffffffffffffdf,%rdx - 420e43: 48 29 f2 sub %rsi,%rdx - 420e46: 48 39 d3 cmp %rdx,%rbx - 420e49: 0f 87 c8 01 00 00 ja 421017 <__posix_memalign+0x257> - 420e4f: 48 8d 56 ff lea -0x1(%rsi),%rdx - 420e53: 48 85 f2 test %rsi,%rdx - 420e56: 0f 84 e7 01 00 00 je 421043 <__posix_memalign+0x283> - 420e5c: 48 83 fe 20 cmp $0x20,%rsi - 420e60: 41 bc 20 00 00 00 mov $0x20,%r12d - 420e66: 74 10 je 420e78 <__posix_memalign+0xb8> - 420e68: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 420e6f: 00 - 420e70: 4d 01 e4 add %r12,%r12 - 420e73: 4c 39 e0 cmp %r12,%rax - 420e76: 77 f8 ja 420e70 <__posix_memalign+0xb0> - 420e78: 48 c7 c0 d8 ff ff ff mov $0xffffffffffffffd8,%rax - 420e7f: 64 4c 8b 28 mov %fs:(%rax),%r13 - 420e83: 4d 85 ed test %r13,%r13 - 420e86: 0f 84 03 01 00 00 je 420f8f <__posix_memalign+0x1cf> - 420e8c: 41 8b 45 04 mov 0x4(%r13),%eax - 420e90: 83 e0 04 and $0x4,%eax - 420e93: 0f 85 f6 00 00 00 jne 420f8f <__posix_memalign+0x1cf> - 420e99: be 01 00 00 00 mov $0x1,%esi - 420e9e: 83 3d 17 c3 2a 00 00 cmpl $0x0,0x2ac317(%rip) # 6cd1bc <__libc_multiple_threads> - 420ea5: 74 0a je 420eb1 <__posix_memalign+0xf1> - 420ea7: f0 41 0f b1 75 00 lock cmpxchg %esi,0x0(%r13) - 420ead: 75 09 jne 420eb8 <__posix_memalign+0xf8> - 420eaf: eb 1e jmp 420ecf <__posix_memalign+0x10f> - 420eb1: 41 0f b1 75 00 cmpxchg %esi,0x0(%r13) - 420eb6: 74 17 je 420ecf <__posix_memalign+0x10f> - 420eb8: 49 8d 7d 00 lea 0x0(%r13),%rdi - 420ebc: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 420ec3: e8 08 17 02 00 callq 4425d0 <__lll_lock_wait_private> - 420ec8: 48 81 c4 80 00 00 00 add $0x80,%rsp - 420ecf: 48 89 da mov %rbx,%rdx - 420ed2: 4c 89 e6 mov %r12,%rsi - 420ed5: 4c 89 ef mov %r13,%rdi - 420ed8: e8 33 b6 ff ff callq 41c510 <_int_memalign> - 420edd: 48 85 c0 test %rax,%rax - 420ee0: 48 89 c2 mov %rax,%rdx - 420ee3: 0f 84 f9 00 00 00 je 420fe2 <__posix_memalign+0x222> - 420ee9: 83 3d cc c2 2a 00 00 cmpl $0x0,0x2ac2cc(%rip) # 6cd1bc <__libc_multiple_threads> - 420ef0: 74 09 je 420efb <__posix_memalign+0x13b> - 420ef2: f0 41 ff 4d 00 lock decl 0x0(%r13) - 420ef7: 75 08 jne 420f01 <__posix_memalign+0x141> - 420ef9: eb 1d jmp 420f18 <__posix_memalign+0x158> - 420efb: 41 ff 4d 00 decl 0x0(%r13) - 420eff: 74 17 je 420f18 <__posix_memalign+0x158> - 420f01: 49 8d 7d 00 lea 0x0(%r13),%rdi - 420f05: 48 81 ec 80 00 00 00 sub $0x80,%rsp - 420f0c: e8 ef 16 02 00 callq 442600 <__lll_unlock_wake_private> - 420f11: 48 81 c4 80 00 00 00 add $0x80,%rsp - 420f18: 48 85 d2 test %rdx,%rdx - 420f1b: 74 56 je 420f73 <__posix_memalign+0x1b3> - 420f1d: 48 8b 42 f8 mov -0x8(%rdx),%rax - 420f21: a8 02 test $0x2,%al - 420f23: 75 1f jne 420f44 <__posix_memalign+0x184> - 420f25: a8 04 test $0x4,%al - 420f27: b9 00 a8 6c 00 mov $0x6ca800,%ecx - 420f2c: 74 0d je 420f3b <__posix_memalign+0x17b> - 420f2e: 48 8d 42 f0 lea -0x10(%rdx),%rax - 420f32: 48 25 00 00 00 fc and $0xfffffffffc000000,%rax - 420f38: 48 8b 08 mov (%rax),%rcx - 420f3b: 4c 39 e9 cmp %r13,%rcx - 420f3e: 0f 85 e6 00 00 00 jne 42102a <__posix_memalign+0x26a> - 420f44: 48 89 d0 mov %rdx,%rax - 420f47: 48 89 45 00 mov %rax,0x0(%rbp) - 420f4b: 31 c0 xor %eax,%eax - 420f4d: 48 83 c4 08 add $0x8,%rsp - 420f51: 5b pop %rbx - 420f52: 5d pop %rbp - 420f53: 41 5c pop %r12 - 420f55: 41 5d pop %r13 - 420f57: c3 retq - 420f58: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 420f5f: 00 - 420f60: b8 16 00 00 00 mov $0x16,%eax - 420f65: c3 retq - 420f66: 48 89 de mov %rbx,%rsi - 420f69: 48 89 c7 mov %rax,%rdi - 420f6c: ff d1 callq *%rcx - 420f6e: 48 85 c0 test %rax,%rax - 420f71: 75 d4 jne 420f47 <__posix_memalign+0x187> - 420f73: b8 0c 00 00 00 mov $0xc,%eax - 420f78: eb d3 jmp 420f4d <__posix_memalign+0x18d> - 420f7a: 48 83 fb bf cmp $0xffffffffffffffbf,%rbx - 420f7e: 0f 87 93 00 00 00 ja 421017 <__posix_memalign+0x257> - 420f84: 41 bc 20 00 00 00 mov $0x20,%r12d - 420f8a: e9 e9 fe ff ff jmpq 420e78 <__posix_memalign+0xb8> - 420f8f: e8 cc 61 ff ff callq 417160 - 420f94: 48 85 c0 test %rax,%rax - 420f97: 49 89 c5 mov %rax,%r13 - 420f9a: 0f 85 2f ff ff ff jne 420ecf <__posix_memalign+0x10f> - 420fa0: 49 8d 7c 1c 20 lea 0x20(%r12,%rbx,1),%rdi - 420fa5: 31 f6 xor %esi,%esi - 420fa7: e8 a4 64 ff ff callq 417450 - 420fac: 48 89 da mov %rbx,%rdx - 420faf: 4c 89 e6 mov %r12,%rsi - 420fb2: 48 89 c7 mov %rax,%rdi - 420fb5: 49 89 c5 mov %rax,%r13 - 420fb8: e8 53 b5 ff ff callq 41c510 <_int_memalign> - 420fbd: 48 85 c0 test %rax,%rax - 420fc0: 48 89 c2 mov %rax,%rdx - 420fc3: 75 05 jne 420fca <__posix_memalign+0x20a> - 420fc5: 4d 85 ed test %r13,%r13 - 420fc8: 75 18 jne 420fe2 <__posix_memalign+0x222> - 420fca: 4d 85 ed test %r13,%r13 - 420fcd: 0f 85 16 ff ff ff jne 420ee9 <__posix_memalign+0x129> - 420fd3: e9 40 ff ff ff jmpq 420f18 <__posix_memalign+0x158> - 420fd8: 48 89 df mov %rbx,%rdi - 420fdb: e8 30 ca ff ff callq 41da10 <__libc_malloc> - 420fe0: eb 8c jmp 420f6e <__posix_memalign+0x1ae> - 420fe2: 90 nop - 420fe3: 4c 89 ef mov %r13,%rdi - 420fe6: 48 89 de mov %rbx,%rsi - 420fe9: e8 02 6a ff ff callq 4179f0 - 420fee: 48 89 da mov %rbx,%rdx - 420ff1: 4c 89 e6 mov %r12,%rsi - 420ff4: 48 89 c7 mov %rax,%rdi - 420ff7: 49 89 c5 mov %rax,%r13 - 420ffa: e8 11 b5 ff ff callq 41c510 <_int_memalign> - 420fff: 48 89 c2 mov %rax,%rdx - 421002: eb c6 jmp 420fca <__posix_memalign+0x20a> - 421004: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 42100b: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) - 421012: e9 5c ff ff ff jmpq 420f73 <__posix_memalign+0x1b3> - 421017: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 42101e: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) - 421025: e9 49 ff ff ff jmpq 420f73 <__posix_memalign+0x1b3> - 42102a: b9 08 2e 4a 00 mov $0x4a2e08,%ecx - 42102f: ba 3c 0c 00 00 mov $0xc3c,%edx - 421034: be c8 1f 4a 00 mov $0x4a1fc8,%esi - 421039: bf 20 2a 4a 00 mov $0x4a2a20,%edi - 42103e: e8 dd 5d ff ff callq 416e20 <__malloc_assert> - 421043: 49 89 f4 mov %rsi,%r12 - 421046: e9 2d fe ff ff jmpq 420e78 <__posix_memalign+0xb8> - 42104b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -0000000000421050 <__malloc_info>: - 421050: 85 ff test %edi,%edi - 421052: 74 0c je 421060 <__malloc_info+0x10> - 421054: b8 16 00 00 00 mov $0x16,%eax - 421059: c3 retq - 42105a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 421060: 48 89 f7 mov %rsi,%rdi - 421063: e9 c8 f8 ff ff jmpq 420930 <__malloc_info.part.7> - 421068: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42106f: 00 - -0000000000421070 <__default_morecore>: - 421070: 48 83 ec 08 sub $0x8,%rsp - 421074: e8 77 ea 01 00 callq 43faf0 <__sbrk> - 421079: ba 00 00 00 00 mov $0x0,%edx - 42107e: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 421082: 48 0f 44 c2 cmove %rdx,%rax - 421086: 48 83 c4 08 add $0x8,%rsp - 42108a: c3 retq - 42108b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -0000000000421090 : - 421090: 48 8d 05 19 00 00 00 lea 0x19(%rip),%rax # 4210b0 <__GI_strchr> - 421097: f7 05 1f b6 2a 00 04 testl $0x4,0x2ab61f(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 42109e: 00 00 00 - 4210a1: 74 07 je 4210aa - 4210a3: 48 8d 05 66 a9 01 00 lea 0x1a966(%rip),%rax # 43ba10 <__strchr_sse2_no_bsf> - 4210aa: c3 retq - 4210ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -00000000004210b0 <__GI_strchr>: - 4210b0: 66 0f 6e ce movd %esi,%xmm1 - 4210b4: 89 f8 mov %edi,%eax - 4210b6: 25 ff 0f 00 00 and $0xfff,%eax - 4210bb: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 - 4210bf: 3d c0 0f 00 00 cmp $0xfc0,%eax - 4210c4: 66 0f 61 c9 punpcklwd %xmm1,%xmm1 - 4210c8: 66 0f 70 c9 00 pshufd $0x0,%xmm1,%xmm1 - 4210cd: 0f 8f 5d 01 00 00 jg 421230 <__GI_strchr+0x180> - 4210d3: f3 0f 6f 07 movdqu (%rdi),%xmm0 - 4210d7: 66 0f ef db pxor %xmm3,%xmm3 - 4210db: 66 0f 6f e0 movdqa %xmm0,%xmm4 - 4210df: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4210e3: 66 0f 74 e3 pcmpeqb %xmm3,%xmm4 - 4210e7: 66 0f eb c4 por %xmm4,%xmm0 - 4210eb: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4210ef: 85 c0 test %eax,%eax - 4210f1: 74 15 je 421108 <__GI_strchr+0x58> - 4210f3: 0f bc c0 bsf %eax,%eax - 4210f6: ba 00 00 00 00 mov $0x0,%edx - 4210fb: 48 8d 04 07 lea (%rdi,%rax,1),%rax - 4210ff: 40 38 30 cmp %sil,(%rax) - 421102: 48 0f 45 c2 cmovne %rdx,%rax - 421106: c3 retq - 421107: 90 nop - 421108: f3 0f 6f 47 10 movdqu 0x10(%rdi),%xmm0 - 42110d: 66 0f 6f e0 movdqa %xmm0,%xmm4 - 421111: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421115: 66 0f 74 e3 pcmpeqb %xmm3,%xmm4 - 421119: 66 0f eb c4 por %xmm4,%xmm0 - 42111d: 66 0f d7 c8 pmovmskb %xmm0,%ecx - 421121: f3 0f 6f 47 20 movdqu 0x20(%rdi),%xmm0 - 421126: 66 0f 6f e0 movdqa %xmm0,%xmm4 - 42112a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42112e: 48 c1 e1 10 shl $0x10,%rcx - 421132: 66 0f 74 e3 pcmpeqb %xmm3,%xmm4 - 421136: 66 0f eb c4 por %xmm4,%xmm0 - 42113a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 42113e: f3 0f 6f 47 30 movdqu 0x30(%rdi),%xmm0 - 421143: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 - 421147: 48 c1 e0 20 shl $0x20,%rax - 42114b: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42114f: 48 09 c8 or %rcx,%rax - 421152: 66 0f eb c3 por %xmm3,%xmm0 - 421156: 66 0f d7 c8 pmovmskb %xmm0,%ecx - 42115a: 48 c1 e1 30 shl $0x30,%rcx - 42115e: 48 09 c8 or %rcx,%rax - 421161: 48 85 c0 test %rax,%rax - 421164: 0f 85 a6 00 00 00 jne 421210 <__GI_strchr+0x160> - 42116a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 421170: 66 0f ef f6 pxor %xmm6,%xmm6 - 421174: 48 83 e7 c0 and $0xffffffffffffffc0,%rdi - 421178: 48 83 c7 40 add $0x40,%rdi - 42117c: 66 0f 6f 2f movdqa (%rdi),%xmm5 - 421180: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 - 421185: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 - 42118a: 66 0f ef e9 pxor %xmm1,%xmm5 - 42118e: 66 0f 6f 67 30 movdqa 0x30(%rdi),%xmm4 - 421193: 66 0f ef d1 pxor %xmm1,%xmm2 - 421197: 66 0f ef d9 pxor %xmm1,%xmm3 - 42119b: 66 0f da 2f pminub (%rdi),%xmm5 - 42119f: 66 0f ef e1 pxor %xmm1,%xmm4 - 4211a3: 66 0f da 57 10 pminub 0x10(%rdi),%xmm2 - 4211a8: 66 0f da 5f 20 pminub 0x20(%rdi),%xmm3 - 4211ad: 66 0f da ea pminub %xmm2,%xmm5 - 4211b1: 66 0f da 67 30 pminub 0x30(%rdi),%xmm4 - 4211b6: 66 0f da eb pminub %xmm3,%xmm5 - 4211ba: 66 0f da ec pminub %xmm4,%xmm5 - 4211be: 66 0f 74 ee pcmpeqb %xmm6,%xmm5 - 4211c2: 66 0f d7 c5 pmovmskb %xmm5,%eax - 4211c6: 85 c0 test %eax,%eax - 4211c8: 74 ae je 421178 <__GI_strchr+0xc8> - 4211ca: 66 0f 6f 2f movdqa (%rdi),%xmm5 - 4211ce: 66 0f 6f c5 movdqa %xmm5,%xmm0 - 4211d2: 66 0f 74 e9 pcmpeqb %xmm1,%xmm5 - 4211d6: 66 0f 74 c6 pcmpeqb %xmm6,%xmm0 - 4211da: 66 0f eb e8 por %xmm0,%xmm5 - 4211de: 66 0f 74 d6 pcmpeqb %xmm6,%xmm2 - 4211e2: 66 0f 74 de pcmpeqb %xmm6,%xmm3 - 4211e6: 66 0f 74 e6 pcmpeqb %xmm6,%xmm4 - 4211ea: 66 0f d7 cd pmovmskb %xmm5,%ecx - 4211ee: 66 0f d7 c2 pmovmskb %xmm2,%eax - 4211f2: 48 c1 e0 10 shl $0x10,%rax - 4211f6: 66 44 0f d7 c3 pmovmskb %xmm3,%r8d - 4211fb: 66 0f d7 d4 pmovmskb %xmm4,%edx - 4211ff: 49 c1 e0 20 shl $0x20,%r8 - 421203: 4c 09 c0 or %r8,%rax - 421206: 48 09 c8 or %rcx,%rax - 421209: 48 c1 e2 30 shl $0x30,%rdx - 42120d: 48 09 d0 or %rdx,%rax - 421210: 48 0f bc c0 bsf %rax,%rax - 421214: ba 00 00 00 00 mov $0x0,%edx - 421219: 48 8d 04 07 lea (%rdi,%rax,1),%rax - 42121d: 40 38 30 cmp %sil,(%rax) - 421220: 48 0f 45 c2 cmovne %rdx,%rax - 421224: c3 retq - 421225: 90 nop - 421226: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42122d: 00 00 00 - 421230: 48 89 fa mov %rdi,%rdx - 421233: 66 0f ef d2 pxor %xmm2,%xmm2 - 421237: 48 83 e2 c0 and $0xffffffffffffffc0,%rdx - 42123b: 66 0f 6f c1 movdqa %xmm1,%xmm0 - 42123f: 66 0f 6f 1a movdqa (%rdx),%xmm3 - 421243: 66 0f 6f e3 movdqa %xmm3,%xmm4 - 421247: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 42124b: 66 0f 74 e2 pcmpeqb %xmm2,%xmm4 - 42124f: 66 0f eb dc por %xmm4,%xmm3 - 421253: 66 44 0f d7 c3 pmovmskb %xmm3,%r8d - 421258: 66 0f 6f 5a 10 movdqa 0x10(%rdx),%xmm3 - 42125d: 66 0f 6f e3 movdqa %xmm3,%xmm4 - 421261: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 421265: 66 0f 74 e2 pcmpeqb %xmm2,%xmm4 - 421269: 66 0f eb dc por %xmm4,%xmm3 - 42126d: 66 0f d7 c3 pmovmskb %xmm3,%eax - 421271: 66 0f 6f 5a 20 movdqa 0x20(%rdx),%xmm3 - 421276: 66 0f 6f e3 movdqa %xmm3,%xmm4 - 42127a: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 42127e: 48 c1 e0 10 shl $0x10,%rax - 421282: 66 0f 74 e2 pcmpeqb %xmm2,%xmm4 - 421286: 66 0f eb dc por %xmm4,%xmm3 - 42128a: 66 44 0f d7 cb pmovmskb %xmm3,%r9d - 42128f: 66 0f 6f 5a 30 movdqa 0x30(%rdx),%xmm3 - 421294: 66 0f 74 d3 pcmpeqb %xmm3,%xmm2 - 421298: 49 c1 e1 20 shl $0x20,%r9 - 42129c: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 4212a0: 4c 09 c8 or %r9,%rax - 4212a3: 4c 09 c0 or %r8,%rax - 4212a6: 66 0f eb c2 por %xmm2,%xmm0 - 4212aa: 66 0f d7 c8 pmovmskb %xmm0,%ecx - 4212ae: 48 c1 e1 30 shl $0x30,%rcx - 4212b2: 48 09 c8 or %rcx,%rax - 4212b5: 89 f9 mov %edi,%ecx - 4212b7: 28 d1 sub %dl,%cl - 4212b9: 48 d3 e8 shr %cl,%rax - 4212bc: 48 85 c0 test %rax,%rax - 4212bf: 0f 85 4b ff ff ff jne 421210 <__GI_strchr+0x160> - 4212c5: e9 a0 fe ff ff jmpq 42116a <__GI_strchr+0xba> - 4212ca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -00000000004212d0 : - 4212d0: 48 8d 05 79 cd 00 00 lea 0xcd79(%rip),%rax # 42e050 <__strcmp_sse2_unaligned> - 4212d7: f7 05 df b3 2a 00 10 testl $0x10,0x2ab3df(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 4212de: 00 00 00 - 4212e1: 75 1a jne 4212fd - 4212e3: 48 8d 05 06 bb 00 00 lea 0xbb06(%rip),%rax # 42cdf0 <__strcmp_ssse3> - 4212ea: f7 05 9c b3 2a 00 00 testl $0x200,0x2ab39c(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> - 4212f1: 02 00 00 - 4212f4: 75 07 jne 4212fd - 4212f6: 48 8d 05 03 00 00 00 lea 0x3(%rip),%rax # 421300 <__GI_strcmp> - 4212fd: c3 retq - 4212fe: 66 90 xchg %ax,%ax - -0000000000421300 <__GI_strcmp>: - 421300: 89 f1 mov %esi,%ecx - 421302: 89 f8 mov %edi,%eax - 421304: 48 83 e1 3f and $0x3f,%rcx - 421308: 48 83 e0 3f and $0x3f,%rax - 42130c: 83 f9 30 cmp $0x30,%ecx - 42130f: 77 3f ja 421350 <__GI_strcmp+0x50> - 421311: 83 f8 30 cmp $0x30,%eax - 421314: 77 3a ja 421350 <__GI_strcmp+0x50> - 421316: 66 0f 12 0f movlpd (%rdi),%xmm1 - 42131a: 66 0f 12 16 movlpd (%rsi),%xmm2 - 42131e: 66 0f 16 4f 08 movhpd 0x8(%rdi),%xmm1 - 421323: 66 0f 16 56 08 movhpd 0x8(%rsi),%xmm2 - 421328: 66 0f ef c0 pxor %xmm0,%xmm0 - 42132c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421330: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 421334: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421338: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42133c: 81 ea ff ff 00 00 sub $0xffff,%edx - 421342: 0f 85 c8 13 00 00 jne 422710 <__GI_strcmp+0x1410> - 421348: 48 83 c6 10 add $0x10,%rsi - 42134c: 48 83 c7 10 add $0x10,%rdi - 421350: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 421354: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 421358: ba ff ff 00 00 mov $0xffff,%edx - 42135d: 45 31 c0 xor %r8d,%r8d - 421360: 83 e1 0f and $0xf,%ecx - 421363: 83 e0 0f and $0xf,%eax - 421366: 39 c1 cmp %eax,%ecx - 421368: 74 26 je 421390 <__GI_strcmp+0x90> - 42136a: 77 07 ja 421373 <__GI_strcmp+0x73> - 42136c: 41 89 d0 mov %edx,%r8d - 42136f: 91 xchg %eax,%ecx - 421370: 48 87 f7 xchg %rsi,%rdi - 421373: 4c 8d 48 0f lea 0xf(%rax),%r9 - 421377: 49 29 c9 sub %rcx,%r9 - 42137a: 4c 8d 15 af 1c 08 00 lea 0x81caf(%rip),%r10 # 4a3030 <__func__.10972+0x70> - 421381: 4f 63 0c 8a movslq (%r10,%r9,4),%r9 - 421385: 4f 8d 14 0a lea (%r10,%r9,1),%r10 - 421389: 41 ff e2 jmpq *%r10 - 42138c: 0f 1f 40 00 nopl 0x0(%rax) - 421390: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 421394: 66 0f ef c0 pxor %xmm0,%xmm0 - 421398: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42139c: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 4213a0: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4213a4: 66 44 0f d7 c9 pmovmskb %xmm1,%r9d - 4213a9: d3 ea shr %cl,%edx - 4213ab: 41 d3 e9 shr %cl,%r9d - 4213ae: 44 29 ca sub %r9d,%edx - 4213b1: 0f 85 3e 13 00 00 jne 4226f5 <__GI_strcmp+0x13f5> - 4213b7: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4213be: 49 c7 c1 10 00 00 00 mov $0x10,%r9 - 4213c5: 66 0f ef c0 pxor %xmm0,%xmm0 - 4213c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4213d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4213d5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4213da: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4213de: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4213e2: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4213e6: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4213ea: 81 ea ff ff 00 00 sub $0xffff,%edx - 4213f0: 0f 85 fa 12 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 4213f6: 48 83 c1 10 add $0x10,%rcx - 4213fa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4213ff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 421404: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421408: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42140c: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421410: 66 0f d7 d1 pmovmskb %xmm1,%edx - 421414: 81 ea ff ff 00 00 sub $0xffff,%edx - 42141a: 0f 85 d0 12 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 421420: 48 83 c1 10 add $0x10,%rcx - 421424: eb aa jmp 4213d0 <__GI_strcmp+0xd0> - 421426: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42142d: 00 00 00 - 421430: 66 0f ef c0 pxor %xmm0,%xmm0 - 421434: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 421438: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42143c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421440: 66 0f 73 fa 0f pslldq $0xf,%xmm2 - 421445: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 421449: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42144d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 421452: d3 ea shr %cl,%edx - 421454: 41 d3 e9 shr %cl,%r9d - 421457: 44 29 ca sub %r9d,%edx - 42145a: 0f 85 95 12 00 00 jne 4226f5 <__GI_strcmp+0x13f5> - 421460: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 421464: 66 0f ef c0 pxor %xmm0,%xmm0 - 421468: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42146f: 41 b9 01 00 00 00 mov $0x1,%r9d - 421475: 4c 8d 57 01 lea 0x1(%rdi),%r10 - 421479: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 421480: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 421487: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42148e: 00 00 - 421490: 49 83 c2 10 add $0x10,%r10 - 421494: 0f 8f 96 00 00 00 jg 421530 <__GI_strcmp+0x230> - 42149a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42149f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4214a4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4214a8: 66 0f 73 db 01 psrldq $0x1,%xmm3 - 4214ad: 66 0f 73 fa 0f pslldq $0xf,%xmm2 - 4214b2: 66 0f eb d3 por %xmm3,%xmm2 - 4214b6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4214ba: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4214be: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4214c2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4214c6: 81 ea ff ff 00 00 sub $0xffff,%edx - 4214cc: 0f 85 1e 12 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 4214d2: 48 83 c1 10 add $0x10,%rcx - 4214d6: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4214da: 49 83 c2 10 add $0x10,%r10 - 4214de: 7f 50 jg 421530 <__GI_strcmp+0x230> - 4214e0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4214e5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4214ea: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4214ee: 66 0f 73 db 01 psrldq $0x1,%xmm3 - 4214f3: 66 0f 73 fa 0f pslldq $0xf,%xmm2 - 4214f8: 66 0f eb d3 por %xmm3,%xmm2 - 4214fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421500: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 421504: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421508: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42150c: 81 ea ff ff 00 00 sub $0xffff,%edx - 421512: 0f 85 d8 11 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 421518: 48 83 c1 10 add $0x10,%rcx - 42151c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 421520: e9 6b ff ff ff jmpq 421490 <__GI_strcmp+0x190> - 421525: 90 nop - 421526: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42152d: 00 00 00 - 421530: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 421534: 66 0f d7 d0 pmovmskb %xmm0,%edx - 421538: f7 c2 fe ff 00 00 test $0xfffe,%edx - 42153e: 75 10 jne 421550 <__GI_strcmp+0x250> - 421540: 66 0f ef c0 pxor %xmm0,%xmm0 - 421544: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42154b: e9 4a ff ff ff jmpq 42149a <__GI_strcmp+0x19a> - 421550: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421555: 66 0f 73 d8 01 psrldq $0x1,%xmm0 - 42155a: 66 0f 73 db 01 psrldq $0x1,%xmm3 - 42155f: e9 7c 11 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> - 421564: 66 90 xchg %ax,%ax - 421566: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42156d: 00 00 00 - 421570: 66 0f ef c0 pxor %xmm0,%xmm0 - 421574: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 421578: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42157c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421580: 66 0f 73 fa 0e pslldq $0xe,%xmm2 - 421585: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 421589: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42158d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 421592: d3 ea shr %cl,%edx - 421594: 41 d3 e9 shr %cl,%r9d - 421597: 44 29 ca sub %r9d,%edx - 42159a: 0f 85 55 11 00 00 jne 4226f5 <__GI_strcmp+0x13f5> - 4215a0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 4215a4: 66 0f ef c0 pxor %xmm0,%xmm0 - 4215a8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4215af: 41 b9 02 00 00 00 mov $0x2,%r9d - 4215b5: 4c 8d 57 02 lea 0x2(%rdi),%r10 - 4215b9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 4215c0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4215c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4215ce: 00 00 - 4215d0: 49 83 c2 10 add $0x10,%r10 - 4215d4: 0f 8f 96 00 00 00 jg 421670 <__GI_strcmp+0x370> - 4215da: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4215df: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4215e4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4215e8: 66 0f 73 db 02 psrldq $0x2,%xmm3 - 4215ed: 66 0f 73 fa 0e pslldq $0xe,%xmm2 - 4215f2: 66 0f eb d3 por %xmm3,%xmm2 - 4215f6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4215fa: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4215fe: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421602: 66 0f d7 d1 pmovmskb %xmm1,%edx - 421606: 81 ea ff ff 00 00 sub $0xffff,%edx - 42160c: 0f 85 de 10 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 421612: 48 83 c1 10 add $0x10,%rcx - 421616: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42161a: 49 83 c2 10 add $0x10,%r10 - 42161e: 7f 50 jg 421670 <__GI_strcmp+0x370> - 421620: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421625: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42162a: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42162e: 66 0f 73 db 02 psrldq $0x2,%xmm3 - 421633: 66 0f 73 fa 0e pslldq $0xe,%xmm2 - 421638: 66 0f eb d3 por %xmm3,%xmm2 - 42163c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421640: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 421644: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421648: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42164c: 81 ea ff ff 00 00 sub $0xffff,%edx - 421652: 0f 85 98 10 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 421658: 48 83 c1 10 add $0x10,%rcx - 42165c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 421660: e9 6b ff ff ff jmpq 4215d0 <__GI_strcmp+0x2d0> - 421665: 90 nop - 421666: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42166d: 00 00 00 - 421670: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 421674: 66 0f d7 d0 pmovmskb %xmm0,%edx - 421678: f7 c2 fc ff 00 00 test $0xfffc,%edx - 42167e: 75 10 jne 421690 <__GI_strcmp+0x390> - 421680: 66 0f ef c0 pxor %xmm0,%xmm0 - 421684: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42168b: e9 4a ff ff ff jmpq 4215da <__GI_strcmp+0x2da> - 421690: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421695: 66 0f 73 d8 02 psrldq $0x2,%xmm0 - 42169a: 66 0f 73 db 02 psrldq $0x2,%xmm3 - 42169f: e9 3c 10 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> - 4216a4: 66 90 xchg %ax,%ax - 4216a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4216ad: 00 00 00 - 4216b0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4216b4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4216b8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4216bc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4216c0: 66 0f 73 fa 0d pslldq $0xd,%xmm2 - 4216c5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 4216c9: 66 0f f8 d0 psubb %xmm0,%xmm2 - 4216cd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 4216d2: d3 ea shr %cl,%edx - 4216d4: 41 d3 e9 shr %cl,%r9d - 4216d7: 44 29 ca sub %r9d,%edx - 4216da: 0f 85 15 10 00 00 jne 4226f5 <__GI_strcmp+0x13f5> - 4216e0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 4216e4: 66 0f ef c0 pxor %xmm0,%xmm0 - 4216e8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4216ef: 41 b9 03 00 00 00 mov $0x3,%r9d - 4216f5: 4c 8d 57 03 lea 0x3(%rdi),%r10 - 4216f9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 421700: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 421707: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42170e: 00 00 - 421710: 49 83 c2 10 add $0x10,%r10 - 421714: 0f 8f 96 00 00 00 jg 4217b0 <__GI_strcmp+0x4b0> - 42171a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42171f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 421724: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 421728: 66 0f 73 db 03 psrldq $0x3,%xmm3 - 42172d: 66 0f 73 fa 0d pslldq $0xd,%xmm2 - 421732: 66 0f eb d3 por %xmm3,%xmm2 - 421736: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42173a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42173e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421742: 66 0f d7 d1 pmovmskb %xmm1,%edx - 421746: 81 ea ff ff 00 00 sub $0xffff,%edx - 42174c: 0f 85 9e 0f 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 421752: 48 83 c1 10 add $0x10,%rcx - 421756: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42175a: 49 83 c2 10 add $0x10,%r10 - 42175e: 7f 50 jg 4217b0 <__GI_strcmp+0x4b0> - 421760: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421765: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42176a: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42176e: 66 0f 73 db 03 psrldq $0x3,%xmm3 - 421773: 66 0f 73 fa 0d pslldq $0xd,%xmm2 - 421778: 66 0f eb d3 por %xmm3,%xmm2 - 42177c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421780: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 421784: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421788: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42178c: 81 ea ff ff 00 00 sub $0xffff,%edx - 421792: 0f 85 58 0f 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 421798: 48 83 c1 10 add $0x10,%rcx - 42179c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4217a0: e9 6b ff ff ff jmpq 421710 <__GI_strcmp+0x410> - 4217a5: 90 nop - 4217a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4217ad: 00 00 00 - 4217b0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 4217b4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4217b8: f7 c2 f8 ff 00 00 test $0xfff8,%edx - 4217be: 75 10 jne 4217d0 <__GI_strcmp+0x4d0> - 4217c0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4217c4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4217cb: e9 4a ff ff ff jmpq 42171a <__GI_strcmp+0x41a> - 4217d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4217d5: 66 0f 73 d8 03 psrldq $0x3,%xmm0 - 4217da: 66 0f 73 db 03 psrldq $0x3,%xmm3 - 4217df: e9 fc 0e 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> - 4217e4: 66 90 xchg %ax,%ax - 4217e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4217ed: 00 00 00 - 4217f0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4217f4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4217f8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4217fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421800: 66 0f 73 fa 0c pslldq $0xc,%xmm2 - 421805: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 421809: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42180d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 421812: d3 ea shr %cl,%edx - 421814: 41 d3 e9 shr %cl,%r9d - 421817: 44 29 ca sub %r9d,%edx - 42181a: 0f 85 d5 0e 00 00 jne 4226f5 <__GI_strcmp+0x13f5> - 421820: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 421824: 66 0f ef c0 pxor %xmm0,%xmm0 - 421828: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42182f: 41 b9 04 00 00 00 mov $0x4,%r9d - 421835: 4c 8d 57 04 lea 0x4(%rdi),%r10 - 421839: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 421840: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 421847: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42184e: 00 00 - 421850: 49 83 c2 10 add $0x10,%r10 - 421854: 0f 8f 96 00 00 00 jg 4218f0 <__GI_strcmp+0x5f0> - 42185a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42185f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 421864: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 421868: 66 0f 73 db 04 psrldq $0x4,%xmm3 - 42186d: 66 0f 73 fa 0c pslldq $0xc,%xmm2 - 421872: 66 0f eb d3 por %xmm3,%xmm2 - 421876: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42187a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42187e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421882: 66 0f d7 d1 pmovmskb %xmm1,%edx - 421886: 81 ea ff ff 00 00 sub $0xffff,%edx - 42188c: 0f 85 5e 0e 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 421892: 48 83 c1 10 add $0x10,%rcx - 421896: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42189a: 49 83 c2 10 add $0x10,%r10 - 42189e: 7f 50 jg 4218f0 <__GI_strcmp+0x5f0> - 4218a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4218a5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4218aa: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4218ae: 66 0f 73 db 04 psrldq $0x4,%xmm3 - 4218b3: 66 0f 73 fa 0c pslldq $0xc,%xmm2 - 4218b8: 66 0f eb d3 por %xmm3,%xmm2 - 4218bc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4218c0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4218c4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4218c8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4218cc: 81 ea ff ff 00 00 sub $0xffff,%edx - 4218d2: 0f 85 18 0e 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 4218d8: 48 83 c1 10 add $0x10,%rcx - 4218dc: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4218e0: e9 6b ff ff ff jmpq 421850 <__GI_strcmp+0x550> - 4218e5: 90 nop - 4218e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4218ed: 00 00 00 - 4218f0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 4218f4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4218f8: f7 c2 f0 ff 00 00 test $0xfff0,%edx - 4218fe: 75 10 jne 421910 <__GI_strcmp+0x610> - 421900: 66 0f ef c0 pxor %xmm0,%xmm0 - 421904: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42190b: e9 4a ff ff ff jmpq 42185a <__GI_strcmp+0x55a> - 421910: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421915: 66 0f 73 d8 04 psrldq $0x4,%xmm0 - 42191a: 66 0f 73 db 04 psrldq $0x4,%xmm3 - 42191f: e9 bc 0d 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> - 421924: 66 90 xchg %ax,%ax - 421926: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42192d: 00 00 00 - 421930: 66 0f ef c0 pxor %xmm0,%xmm0 - 421934: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 421938: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42193c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421940: 66 0f 73 fa 0b pslldq $0xb,%xmm2 - 421945: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 421949: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42194d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 421952: d3 ea shr %cl,%edx - 421954: 41 d3 e9 shr %cl,%r9d - 421957: 44 29 ca sub %r9d,%edx - 42195a: 0f 85 95 0d 00 00 jne 4226f5 <__GI_strcmp+0x13f5> - 421960: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 421964: 66 0f ef c0 pxor %xmm0,%xmm0 - 421968: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42196f: 41 b9 05 00 00 00 mov $0x5,%r9d - 421975: 4c 8d 57 05 lea 0x5(%rdi),%r10 - 421979: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 421980: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 421987: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42198e: 00 00 - 421990: 49 83 c2 10 add $0x10,%r10 - 421994: 0f 8f 96 00 00 00 jg 421a30 <__GI_strcmp+0x730> - 42199a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42199f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4219a4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4219a8: 66 0f 73 db 05 psrldq $0x5,%xmm3 - 4219ad: 66 0f 73 fa 0b pslldq $0xb,%xmm2 - 4219b2: 66 0f eb d3 por %xmm3,%xmm2 - 4219b6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4219ba: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4219be: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4219c2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4219c6: 81 ea ff ff 00 00 sub $0xffff,%edx - 4219cc: 0f 85 1e 0d 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 4219d2: 48 83 c1 10 add $0x10,%rcx - 4219d6: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4219da: 49 83 c2 10 add $0x10,%r10 - 4219de: 7f 50 jg 421a30 <__GI_strcmp+0x730> - 4219e0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4219e5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4219ea: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4219ee: 66 0f 73 db 05 psrldq $0x5,%xmm3 - 4219f3: 66 0f 73 fa 0b pslldq $0xb,%xmm2 - 4219f8: 66 0f eb d3 por %xmm3,%xmm2 - 4219fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421a00: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 421a04: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421a08: 66 0f d7 d1 pmovmskb %xmm1,%edx - 421a0c: 81 ea ff ff 00 00 sub $0xffff,%edx - 421a12: 0f 85 d8 0c 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 421a18: 48 83 c1 10 add $0x10,%rcx - 421a1c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 421a20: e9 6b ff ff ff jmpq 421990 <__GI_strcmp+0x690> - 421a25: 90 nop - 421a26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 421a2d: 00 00 00 - 421a30: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 421a34: 66 0f d7 d0 pmovmskb %xmm0,%edx - 421a38: f7 c2 e0 ff 00 00 test $0xffe0,%edx - 421a3e: 75 10 jne 421a50 <__GI_strcmp+0x750> - 421a40: 66 0f ef c0 pxor %xmm0,%xmm0 - 421a44: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 421a4b: e9 4a ff ff ff jmpq 42199a <__GI_strcmp+0x69a> - 421a50: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421a55: 66 0f 73 d8 05 psrldq $0x5,%xmm0 - 421a5a: 66 0f 73 db 05 psrldq $0x5,%xmm3 - 421a5f: e9 7c 0c 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> - 421a64: 66 90 xchg %ax,%ax - 421a66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 421a6d: 00 00 00 - 421a70: 66 0f ef c0 pxor %xmm0,%xmm0 - 421a74: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 421a78: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 421a7c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421a80: 66 0f 73 fa 0a pslldq $0xa,%xmm2 - 421a85: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 421a89: 66 0f f8 d0 psubb %xmm0,%xmm2 - 421a8d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 421a92: d3 ea shr %cl,%edx - 421a94: 41 d3 e9 shr %cl,%r9d - 421a97: 44 29 ca sub %r9d,%edx - 421a9a: 0f 85 55 0c 00 00 jne 4226f5 <__GI_strcmp+0x13f5> - 421aa0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 421aa4: 66 0f ef c0 pxor %xmm0,%xmm0 - 421aa8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 421aaf: 41 b9 06 00 00 00 mov $0x6,%r9d - 421ab5: 4c 8d 57 06 lea 0x6(%rdi),%r10 - 421ab9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 421ac0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 421ac7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 421ace: 00 00 - 421ad0: 49 83 c2 10 add $0x10,%r10 - 421ad4: 0f 8f 96 00 00 00 jg 421b70 <__GI_strcmp+0x870> - 421ada: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421adf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 421ae4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 421ae8: 66 0f 73 db 06 psrldq $0x6,%xmm3 - 421aed: 66 0f 73 fa 0a pslldq $0xa,%xmm2 - 421af2: 66 0f eb d3 por %xmm3,%xmm2 - 421af6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421afa: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 421afe: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421b02: 66 0f d7 d1 pmovmskb %xmm1,%edx - 421b06: 81 ea ff ff 00 00 sub $0xffff,%edx - 421b0c: 0f 85 de 0b 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 421b12: 48 83 c1 10 add $0x10,%rcx - 421b16: 66 0f 6f dc movdqa %xmm4,%xmm3 - 421b1a: 49 83 c2 10 add $0x10,%r10 - 421b1e: 7f 50 jg 421b70 <__GI_strcmp+0x870> - 421b20: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421b25: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 421b2a: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 421b2e: 66 0f 73 db 06 psrldq $0x6,%xmm3 - 421b33: 66 0f 73 fa 0a pslldq $0xa,%xmm2 - 421b38: 66 0f eb d3 por %xmm3,%xmm2 - 421b3c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421b40: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 421b44: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421b48: 66 0f d7 d1 pmovmskb %xmm1,%edx - 421b4c: 81 ea ff ff 00 00 sub $0xffff,%edx - 421b52: 0f 85 98 0b 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 421b58: 48 83 c1 10 add $0x10,%rcx - 421b5c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 421b60: e9 6b ff ff ff jmpq 421ad0 <__GI_strcmp+0x7d0> - 421b65: 90 nop - 421b66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 421b6d: 00 00 00 - 421b70: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 421b74: 66 0f d7 d0 pmovmskb %xmm0,%edx - 421b78: f7 c2 c0 ff 00 00 test $0xffc0,%edx - 421b7e: 75 10 jne 421b90 <__GI_strcmp+0x890> - 421b80: 66 0f ef c0 pxor %xmm0,%xmm0 - 421b84: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 421b8b: e9 4a ff ff ff jmpq 421ada <__GI_strcmp+0x7da> - 421b90: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421b95: 66 0f 73 d8 06 psrldq $0x6,%xmm0 - 421b9a: 66 0f 73 db 06 psrldq $0x6,%xmm3 - 421b9f: e9 3c 0b 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> - 421ba4: 66 90 xchg %ax,%ax - 421ba6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 421bad: 00 00 00 - 421bb0: 66 0f ef c0 pxor %xmm0,%xmm0 - 421bb4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 421bb8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 421bbc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421bc0: 66 0f 73 fa 09 pslldq $0x9,%xmm2 - 421bc5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 421bc9: 66 0f f8 d0 psubb %xmm0,%xmm2 - 421bcd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 421bd2: d3 ea shr %cl,%edx - 421bd4: 41 d3 e9 shr %cl,%r9d - 421bd7: 44 29 ca sub %r9d,%edx - 421bda: 0f 85 15 0b 00 00 jne 4226f5 <__GI_strcmp+0x13f5> - 421be0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 421be4: 66 0f ef c0 pxor %xmm0,%xmm0 - 421be8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 421bef: 41 b9 07 00 00 00 mov $0x7,%r9d - 421bf5: 4c 8d 57 07 lea 0x7(%rdi),%r10 - 421bf9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 421c00: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 421c07: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 421c0e: 00 00 - 421c10: 49 83 c2 10 add $0x10,%r10 - 421c14: 0f 8f 96 00 00 00 jg 421cb0 <__GI_strcmp+0x9b0> - 421c1a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421c1f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 421c24: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 421c28: 66 0f 73 db 07 psrldq $0x7,%xmm3 - 421c2d: 66 0f 73 fa 09 pslldq $0x9,%xmm2 - 421c32: 66 0f eb d3 por %xmm3,%xmm2 - 421c36: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421c3a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 421c3e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421c42: 66 0f d7 d1 pmovmskb %xmm1,%edx - 421c46: 81 ea ff ff 00 00 sub $0xffff,%edx - 421c4c: 0f 85 9e 0a 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 421c52: 48 83 c1 10 add $0x10,%rcx - 421c56: 66 0f 6f dc movdqa %xmm4,%xmm3 - 421c5a: 49 83 c2 10 add $0x10,%r10 - 421c5e: 7f 50 jg 421cb0 <__GI_strcmp+0x9b0> - 421c60: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421c65: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 421c6a: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 421c6e: 66 0f 73 db 07 psrldq $0x7,%xmm3 - 421c73: 66 0f 73 fa 09 pslldq $0x9,%xmm2 - 421c78: 66 0f eb d3 por %xmm3,%xmm2 - 421c7c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421c80: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 421c84: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421c88: 66 0f d7 d1 pmovmskb %xmm1,%edx - 421c8c: 81 ea ff ff 00 00 sub $0xffff,%edx - 421c92: 0f 85 58 0a 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 421c98: 48 83 c1 10 add $0x10,%rcx - 421c9c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 421ca0: e9 6b ff ff ff jmpq 421c10 <__GI_strcmp+0x910> - 421ca5: 90 nop - 421ca6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 421cad: 00 00 00 - 421cb0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 421cb4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 421cb8: f7 c2 80 ff 00 00 test $0xff80,%edx - 421cbe: 75 10 jne 421cd0 <__GI_strcmp+0x9d0> - 421cc0: 66 0f ef c0 pxor %xmm0,%xmm0 - 421cc4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 421ccb: e9 4a ff ff ff jmpq 421c1a <__GI_strcmp+0x91a> - 421cd0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421cd5: 66 0f 73 d8 07 psrldq $0x7,%xmm0 - 421cda: 66 0f 73 db 07 psrldq $0x7,%xmm3 - 421cdf: e9 fc 09 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> - 421ce4: 66 90 xchg %ax,%ax - 421ce6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 421ced: 00 00 00 - 421cf0: 66 0f ef c0 pxor %xmm0,%xmm0 - 421cf4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 421cf8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 421cfc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421d00: 66 0f 73 fa 08 pslldq $0x8,%xmm2 - 421d05: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 421d09: 66 0f f8 d0 psubb %xmm0,%xmm2 - 421d0d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 421d12: d3 ea shr %cl,%edx - 421d14: 41 d3 e9 shr %cl,%r9d - 421d17: 44 29 ca sub %r9d,%edx - 421d1a: 0f 85 d5 09 00 00 jne 4226f5 <__GI_strcmp+0x13f5> - 421d20: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 421d24: 66 0f ef c0 pxor %xmm0,%xmm0 - 421d28: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 421d2f: 41 b9 08 00 00 00 mov $0x8,%r9d - 421d35: 4c 8d 57 08 lea 0x8(%rdi),%r10 - 421d39: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 421d40: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 421d47: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 421d4e: 00 00 - 421d50: 49 83 c2 10 add $0x10,%r10 - 421d54: 0f 8f 96 00 00 00 jg 421df0 <__GI_strcmp+0xaf0> - 421d5a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421d5f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 421d64: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 421d68: 66 0f 73 db 08 psrldq $0x8,%xmm3 - 421d6d: 66 0f 73 fa 08 pslldq $0x8,%xmm2 - 421d72: 66 0f eb d3 por %xmm3,%xmm2 - 421d76: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421d7a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 421d7e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421d82: 66 0f d7 d1 pmovmskb %xmm1,%edx - 421d86: 81 ea ff ff 00 00 sub $0xffff,%edx - 421d8c: 0f 85 5e 09 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 421d92: 48 83 c1 10 add $0x10,%rcx - 421d96: 66 0f 6f dc movdqa %xmm4,%xmm3 - 421d9a: 49 83 c2 10 add $0x10,%r10 - 421d9e: 7f 50 jg 421df0 <__GI_strcmp+0xaf0> - 421da0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421da5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 421daa: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 421dae: 66 0f 73 db 08 psrldq $0x8,%xmm3 - 421db3: 66 0f 73 fa 08 pslldq $0x8,%xmm2 - 421db8: 66 0f eb d3 por %xmm3,%xmm2 - 421dbc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421dc0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 421dc4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421dc8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 421dcc: 81 ea ff ff 00 00 sub $0xffff,%edx - 421dd2: 0f 85 18 09 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 421dd8: 48 83 c1 10 add $0x10,%rcx - 421ddc: 66 0f 6f dc movdqa %xmm4,%xmm3 - 421de0: e9 6b ff ff ff jmpq 421d50 <__GI_strcmp+0xa50> - 421de5: 90 nop - 421de6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 421ded: 00 00 00 - 421df0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 421df4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 421df8: f7 c2 00 ff 00 00 test $0xff00,%edx - 421dfe: 75 10 jne 421e10 <__GI_strcmp+0xb10> - 421e00: 66 0f ef c0 pxor %xmm0,%xmm0 - 421e04: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 421e0b: e9 4a ff ff ff jmpq 421d5a <__GI_strcmp+0xa5a> - 421e10: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421e15: 66 0f 73 d8 08 psrldq $0x8,%xmm0 - 421e1a: 66 0f 73 db 08 psrldq $0x8,%xmm3 - 421e1f: e9 bc 08 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> - 421e24: 66 90 xchg %ax,%ax - 421e26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 421e2d: 00 00 00 - 421e30: 66 0f ef c0 pxor %xmm0,%xmm0 - 421e34: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 421e38: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 421e3c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421e40: 66 0f 73 fa 07 pslldq $0x7,%xmm2 - 421e45: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 421e49: 66 0f f8 d0 psubb %xmm0,%xmm2 - 421e4d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 421e52: d3 ea shr %cl,%edx - 421e54: 41 d3 e9 shr %cl,%r9d - 421e57: 44 29 ca sub %r9d,%edx - 421e5a: 0f 85 95 08 00 00 jne 4226f5 <__GI_strcmp+0x13f5> - 421e60: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 421e64: 66 0f ef c0 pxor %xmm0,%xmm0 - 421e68: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 421e6f: 41 b9 09 00 00 00 mov $0x9,%r9d - 421e75: 4c 8d 57 09 lea 0x9(%rdi),%r10 - 421e79: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 421e80: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 421e87: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 421e8e: 00 00 - 421e90: 49 83 c2 10 add $0x10,%r10 - 421e94: 0f 8f 96 00 00 00 jg 421f30 <__GI_strcmp+0xc30> - 421e9a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421e9f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 421ea4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 421ea8: 66 0f 73 db 09 psrldq $0x9,%xmm3 - 421ead: 66 0f 73 fa 07 pslldq $0x7,%xmm2 - 421eb2: 66 0f eb d3 por %xmm3,%xmm2 - 421eb6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421eba: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 421ebe: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421ec2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 421ec6: 81 ea ff ff 00 00 sub $0xffff,%edx - 421ecc: 0f 85 1e 08 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 421ed2: 48 83 c1 10 add $0x10,%rcx - 421ed6: 66 0f 6f dc movdqa %xmm4,%xmm3 - 421eda: 49 83 c2 10 add $0x10,%r10 - 421ede: 7f 50 jg 421f30 <__GI_strcmp+0xc30> - 421ee0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421ee5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 421eea: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 421eee: 66 0f 73 db 09 psrldq $0x9,%xmm3 - 421ef3: 66 0f 73 fa 07 pslldq $0x7,%xmm2 - 421ef8: 66 0f eb d3 por %xmm3,%xmm2 - 421efc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421f00: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 421f04: 66 0f f8 c8 psubb %xmm0,%xmm1 - 421f08: 66 0f d7 d1 pmovmskb %xmm1,%edx - 421f0c: 81 ea ff ff 00 00 sub $0xffff,%edx - 421f12: 0f 85 d8 07 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 421f18: 48 83 c1 10 add $0x10,%rcx - 421f1c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 421f20: e9 6b ff ff ff jmpq 421e90 <__GI_strcmp+0xb90> - 421f25: 90 nop - 421f26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 421f2d: 00 00 00 - 421f30: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 421f34: 66 0f d7 d0 pmovmskb %xmm0,%edx - 421f38: f7 c2 00 fe 00 00 test $0xfe00,%edx - 421f3e: 75 10 jne 421f50 <__GI_strcmp+0xc50> - 421f40: 66 0f ef c0 pxor %xmm0,%xmm0 - 421f44: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 421f4b: e9 4a ff ff ff jmpq 421e9a <__GI_strcmp+0xb9a> - 421f50: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421f55: 66 0f 73 d8 09 psrldq $0x9,%xmm0 - 421f5a: 66 0f 73 db 09 psrldq $0x9,%xmm3 - 421f5f: e9 7c 07 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> - 421f64: 66 90 xchg %ax,%ax - 421f66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 421f6d: 00 00 00 - 421f70: 66 0f ef c0 pxor %xmm0,%xmm0 - 421f74: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 421f78: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 421f7c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421f80: 66 0f 73 fa 06 pslldq $0x6,%xmm2 - 421f85: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 421f89: 66 0f f8 d0 psubb %xmm0,%xmm2 - 421f8d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 421f92: d3 ea shr %cl,%edx - 421f94: 41 d3 e9 shr %cl,%r9d - 421f97: 44 29 ca sub %r9d,%edx - 421f9a: 0f 85 55 07 00 00 jne 4226f5 <__GI_strcmp+0x13f5> - 421fa0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 421fa4: 66 0f ef c0 pxor %xmm0,%xmm0 - 421fa8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 421faf: 41 b9 0a 00 00 00 mov $0xa,%r9d - 421fb5: 4c 8d 57 0a lea 0xa(%rdi),%r10 - 421fb9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 421fc0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 421fc7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 421fce: 00 00 - 421fd0: 49 83 c2 10 add $0x10,%r10 - 421fd4: 0f 8f 96 00 00 00 jg 422070 <__GI_strcmp+0xd70> - 421fda: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 421fdf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 421fe4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 421fe8: 66 0f 73 db 0a psrldq $0xa,%xmm3 - 421fed: 66 0f 73 fa 06 pslldq $0x6,%xmm2 - 421ff2: 66 0f eb d3 por %xmm3,%xmm2 - 421ff6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 421ffa: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 421ffe: 66 0f f8 c8 psubb %xmm0,%xmm1 - 422002: 66 0f d7 d1 pmovmskb %xmm1,%edx - 422006: 81 ea ff ff 00 00 sub $0xffff,%edx - 42200c: 0f 85 de 06 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 422012: 48 83 c1 10 add $0x10,%rcx - 422016: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42201a: 49 83 c2 10 add $0x10,%r10 - 42201e: 7f 50 jg 422070 <__GI_strcmp+0xd70> - 422020: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 422025: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42202a: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42202e: 66 0f 73 db 0a psrldq $0xa,%xmm3 - 422033: 66 0f 73 fa 06 pslldq $0x6,%xmm2 - 422038: 66 0f eb d3 por %xmm3,%xmm2 - 42203c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 422040: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 422044: 66 0f f8 c8 psubb %xmm0,%xmm1 - 422048: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42204c: 81 ea ff ff 00 00 sub $0xffff,%edx - 422052: 0f 85 98 06 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 422058: 48 83 c1 10 add $0x10,%rcx - 42205c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 422060: e9 6b ff ff ff jmpq 421fd0 <__GI_strcmp+0xcd0> - 422065: 90 nop - 422066: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42206d: 00 00 00 - 422070: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 422074: 66 0f d7 d0 pmovmskb %xmm0,%edx - 422078: f7 c2 00 fc 00 00 test $0xfc00,%edx - 42207e: 75 10 jne 422090 <__GI_strcmp+0xd90> - 422080: 66 0f ef c0 pxor %xmm0,%xmm0 - 422084: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42208b: e9 4a ff ff ff jmpq 421fda <__GI_strcmp+0xcda> - 422090: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 422095: 66 0f 73 d8 0a psrldq $0xa,%xmm0 - 42209a: 66 0f 73 db 0a psrldq $0xa,%xmm3 - 42209f: e9 3c 06 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> - 4220a4: 66 90 xchg %ax,%ax - 4220a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4220ad: 00 00 00 - 4220b0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4220b4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4220b8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4220bc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4220c0: 66 0f 73 fa 05 pslldq $0x5,%xmm2 - 4220c5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 4220c9: 66 0f f8 d0 psubb %xmm0,%xmm2 - 4220cd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 4220d2: d3 ea shr %cl,%edx - 4220d4: 41 d3 e9 shr %cl,%r9d - 4220d7: 44 29 ca sub %r9d,%edx - 4220da: 0f 85 15 06 00 00 jne 4226f5 <__GI_strcmp+0x13f5> - 4220e0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 4220e4: 66 0f ef c0 pxor %xmm0,%xmm0 - 4220e8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4220ef: 41 b9 0b 00 00 00 mov $0xb,%r9d - 4220f5: 4c 8d 57 0b lea 0xb(%rdi),%r10 - 4220f9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 422100: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422107: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42210e: 00 00 - 422110: 49 83 c2 10 add $0x10,%r10 - 422114: 0f 8f 96 00 00 00 jg 4221b0 <__GI_strcmp+0xeb0> - 42211a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42211f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 422124: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 422128: 66 0f 73 db 0b psrldq $0xb,%xmm3 - 42212d: 66 0f 73 fa 05 pslldq $0x5,%xmm2 - 422132: 66 0f eb d3 por %xmm3,%xmm2 - 422136: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42213a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42213e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 422142: 66 0f d7 d1 pmovmskb %xmm1,%edx - 422146: 81 ea ff ff 00 00 sub $0xffff,%edx - 42214c: 0f 85 9e 05 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 422152: 48 83 c1 10 add $0x10,%rcx - 422156: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42215a: 49 83 c2 10 add $0x10,%r10 - 42215e: 7f 50 jg 4221b0 <__GI_strcmp+0xeb0> - 422160: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 422165: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42216a: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42216e: 66 0f 73 db 0b psrldq $0xb,%xmm3 - 422173: 66 0f 73 fa 05 pslldq $0x5,%xmm2 - 422178: 66 0f eb d3 por %xmm3,%xmm2 - 42217c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 422180: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 422184: 66 0f f8 c8 psubb %xmm0,%xmm1 - 422188: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42218c: 81 ea ff ff 00 00 sub $0xffff,%edx - 422192: 0f 85 58 05 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 422198: 48 83 c1 10 add $0x10,%rcx - 42219c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4221a0: e9 6b ff ff ff jmpq 422110 <__GI_strcmp+0xe10> - 4221a5: 90 nop - 4221a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4221ad: 00 00 00 - 4221b0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 4221b4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4221b8: f7 c2 00 f8 00 00 test $0xf800,%edx - 4221be: 75 10 jne 4221d0 <__GI_strcmp+0xed0> - 4221c0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4221c4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4221cb: e9 4a ff ff ff jmpq 42211a <__GI_strcmp+0xe1a> - 4221d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4221d5: 66 0f 73 d8 0b psrldq $0xb,%xmm0 - 4221da: 66 0f 73 db 0b psrldq $0xb,%xmm3 - 4221df: e9 fc 04 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> - 4221e4: 66 90 xchg %ax,%ax - 4221e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4221ed: 00 00 00 - 4221f0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4221f4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4221f8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4221fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 422200: 66 0f 73 fa 04 pslldq $0x4,%xmm2 - 422205: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 422209: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42220d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 422212: d3 ea shr %cl,%edx - 422214: 41 d3 e9 shr %cl,%r9d - 422217: 44 29 ca sub %r9d,%edx - 42221a: 0f 85 d5 04 00 00 jne 4226f5 <__GI_strcmp+0x13f5> - 422220: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 422224: 66 0f ef c0 pxor %xmm0,%xmm0 - 422228: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42222f: 41 b9 0c 00 00 00 mov $0xc,%r9d - 422235: 4c 8d 57 0c lea 0xc(%rdi),%r10 - 422239: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 422240: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422247: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42224e: 00 00 - 422250: 49 83 c2 10 add $0x10,%r10 - 422254: 0f 8f 96 00 00 00 jg 4222f0 <__GI_strcmp+0xff0> - 42225a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42225f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 422264: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 422268: 66 0f 73 db 0c psrldq $0xc,%xmm3 - 42226d: 66 0f 73 fa 04 pslldq $0x4,%xmm2 - 422272: 66 0f eb d3 por %xmm3,%xmm2 - 422276: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42227a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42227e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 422282: 66 0f d7 d1 pmovmskb %xmm1,%edx - 422286: 81 ea ff ff 00 00 sub $0xffff,%edx - 42228c: 0f 85 5e 04 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 422292: 48 83 c1 10 add $0x10,%rcx - 422296: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42229a: 49 83 c2 10 add $0x10,%r10 - 42229e: 7f 50 jg 4222f0 <__GI_strcmp+0xff0> - 4222a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4222a5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4222aa: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4222ae: 66 0f 73 db 0c psrldq $0xc,%xmm3 - 4222b3: 66 0f 73 fa 04 pslldq $0x4,%xmm2 - 4222b8: 66 0f eb d3 por %xmm3,%xmm2 - 4222bc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4222c0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4222c4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4222c8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4222cc: 81 ea ff ff 00 00 sub $0xffff,%edx - 4222d2: 0f 85 18 04 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 4222d8: 48 83 c1 10 add $0x10,%rcx - 4222dc: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4222e0: e9 6b ff ff ff jmpq 422250 <__GI_strcmp+0xf50> - 4222e5: 90 nop - 4222e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4222ed: 00 00 00 - 4222f0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 4222f4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4222f8: f7 c2 00 f0 00 00 test $0xf000,%edx - 4222fe: 75 10 jne 422310 <__GI_strcmp+0x1010> - 422300: 66 0f ef c0 pxor %xmm0,%xmm0 - 422304: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42230b: e9 4a ff ff ff jmpq 42225a <__GI_strcmp+0xf5a> - 422310: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 422315: 66 0f 73 d8 0c psrldq $0xc,%xmm0 - 42231a: 66 0f 73 db 0c psrldq $0xc,%xmm3 - 42231f: e9 bc 03 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> - 422324: 66 90 xchg %ax,%ax - 422326: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42232d: 00 00 00 - 422330: 66 0f ef c0 pxor %xmm0,%xmm0 - 422334: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 422338: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42233c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 422340: 66 0f 73 fa 03 pslldq $0x3,%xmm2 - 422345: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 422349: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42234d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 422352: d3 ea shr %cl,%edx - 422354: 41 d3 e9 shr %cl,%r9d - 422357: 44 29 ca sub %r9d,%edx - 42235a: 0f 85 95 03 00 00 jne 4226f5 <__GI_strcmp+0x13f5> - 422360: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 422364: 66 0f ef c0 pxor %xmm0,%xmm0 - 422368: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42236f: 41 b9 0d 00 00 00 mov $0xd,%r9d - 422375: 4c 8d 57 0d lea 0xd(%rdi),%r10 - 422379: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 422380: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422387: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42238e: 00 00 - 422390: 49 83 c2 10 add $0x10,%r10 - 422394: 0f 8f 96 00 00 00 jg 422430 <__GI_strcmp+0x1130> - 42239a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42239f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4223a4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4223a8: 66 0f 73 db 0d psrldq $0xd,%xmm3 - 4223ad: 66 0f 73 fa 03 pslldq $0x3,%xmm2 - 4223b2: 66 0f eb d3 por %xmm3,%xmm2 - 4223b6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4223ba: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4223be: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4223c2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4223c6: 81 ea ff ff 00 00 sub $0xffff,%edx - 4223cc: 0f 85 1e 03 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 4223d2: 48 83 c1 10 add $0x10,%rcx - 4223d6: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4223da: 49 83 c2 10 add $0x10,%r10 - 4223de: 7f 50 jg 422430 <__GI_strcmp+0x1130> - 4223e0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4223e5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4223ea: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4223ee: 66 0f 73 db 0d psrldq $0xd,%xmm3 - 4223f3: 66 0f 73 fa 03 pslldq $0x3,%xmm2 - 4223f8: 66 0f eb d3 por %xmm3,%xmm2 - 4223fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 422400: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 422404: 66 0f f8 c8 psubb %xmm0,%xmm1 - 422408: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42240c: 81 ea ff ff 00 00 sub $0xffff,%edx - 422412: 0f 85 d8 02 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 422418: 48 83 c1 10 add $0x10,%rcx - 42241c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 422420: e9 6b ff ff ff jmpq 422390 <__GI_strcmp+0x1090> - 422425: 90 nop - 422426: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42242d: 00 00 00 - 422430: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 422434: 66 0f d7 d0 pmovmskb %xmm0,%edx - 422438: f7 c2 00 e0 00 00 test $0xe000,%edx - 42243e: 75 10 jne 422450 <__GI_strcmp+0x1150> - 422440: 66 0f ef c0 pxor %xmm0,%xmm0 - 422444: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42244b: e9 4a ff ff ff jmpq 42239a <__GI_strcmp+0x109a> - 422450: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 422455: 66 0f 73 d8 0d psrldq $0xd,%xmm0 - 42245a: 66 0f 73 db 0d psrldq $0xd,%xmm3 - 42245f: e9 7c 02 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> - 422464: 66 90 xchg %ax,%ax - 422466: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42246d: 00 00 00 - 422470: 66 0f ef c0 pxor %xmm0,%xmm0 - 422474: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 422478: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42247c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 422480: 66 0f 73 fa 02 pslldq $0x2,%xmm2 - 422485: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 422489: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42248d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 422492: d3 ea shr %cl,%edx - 422494: 41 d3 e9 shr %cl,%r9d - 422497: 44 29 ca sub %r9d,%edx - 42249a: 0f 85 55 02 00 00 jne 4226f5 <__GI_strcmp+0x13f5> - 4224a0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 4224a4: 66 0f ef c0 pxor %xmm0,%xmm0 - 4224a8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4224af: 41 b9 0e 00 00 00 mov $0xe,%r9d - 4224b5: 4c 8d 57 0e lea 0xe(%rdi),%r10 - 4224b9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 4224c0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4224c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4224ce: 00 00 - 4224d0: 49 83 c2 10 add $0x10,%r10 - 4224d4: 0f 8f 96 00 00 00 jg 422570 <__GI_strcmp+0x1270> - 4224da: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4224df: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4224e4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4224e8: 66 0f 73 db 0e psrldq $0xe,%xmm3 - 4224ed: 66 0f 73 fa 02 pslldq $0x2,%xmm2 - 4224f2: 66 0f eb d3 por %xmm3,%xmm2 - 4224f6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4224fa: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4224fe: 66 0f f8 c8 psubb %xmm0,%xmm1 - 422502: 66 0f d7 d1 pmovmskb %xmm1,%edx - 422506: 81 ea ff ff 00 00 sub $0xffff,%edx - 42250c: 0f 85 de 01 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 422512: 48 83 c1 10 add $0x10,%rcx - 422516: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42251a: 49 83 c2 10 add $0x10,%r10 - 42251e: 7f 50 jg 422570 <__GI_strcmp+0x1270> - 422520: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 422525: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42252a: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42252e: 66 0f 73 db 0e psrldq $0xe,%xmm3 - 422533: 66 0f 73 fa 02 pslldq $0x2,%xmm2 - 422538: 66 0f eb d3 por %xmm3,%xmm2 - 42253c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 422540: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 422544: 66 0f f8 c8 psubb %xmm0,%xmm1 - 422548: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42254c: 81 ea ff ff 00 00 sub $0xffff,%edx - 422552: 0f 85 98 01 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 422558: 48 83 c1 10 add $0x10,%rcx - 42255c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 422560: e9 6b ff ff ff jmpq 4224d0 <__GI_strcmp+0x11d0> - 422565: 90 nop - 422566: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42256d: 00 00 00 - 422570: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 422574: 66 0f d7 d0 pmovmskb %xmm0,%edx - 422578: f7 c2 00 c0 00 00 test $0xc000,%edx - 42257e: 75 10 jne 422590 <__GI_strcmp+0x1290> - 422580: 66 0f ef c0 pxor %xmm0,%xmm0 - 422584: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42258b: e9 4a ff ff ff jmpq 4224da <__GI_strcmp+0x11da> - 422590: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 422595: 66 0f 73 d8 0e psrldq $0xe,%xmm0 - 42259a: 66 0f 73 db 0e psrldq $0xe,%xmm3 - 42259f: e9 3c 01 00 00 jmpq 4226e0 <__GI_strcmp+0x13e0> - 4225a4: 66 90 xchg %ax,%ax - 4225a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4225ad: 00 00 00 - 4225b0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4225b4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4225b8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4225bc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4225c0: 66 0f 73 fa 01 pslldq $0x1,%xmm2 - 4225c5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 4225c9: 66 0f f8 d0 psubb %xmm0,%xmm2 - 4225cd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 4225d2: d3 ea shr %cl,%edx - 4225d4: 41 d3 e9 shr %cl,%r9d - 4225d7: 44 29 ca sub %r9d,%edx - 4225da: 0f 85 15 01 00 00 jne 4226f5 <__GI_strcmp+0x13f5> - 4225e0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 4225e4: 66 0f ef c0 pxor %xmm0,%xmm0 - 4225e8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4225ef: 41 b9 0f 00 00 00 mov $0xf,%r9d - 4225f5: 4c 8d 57 0f lea 0xf(%rdi),%r10 - 4225f9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 422600: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422607: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42260e: 00 00 - 422610: 49 83 c2 10 add $0x10,%r10 - 422614: 0f 8f 96 00 00 00 jg 4226b0 <__GI_strcmp+0x13b0> - 42261a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42261f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 422624: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 422628: 66 0f 73 db 0f psrldq $0xf,%xmm3 - 42262d: 66 0f 73 fa 01 pslldq $0x1,%xmm2 - 422632: 66 0f eb d3 por %xmm3,%xmm2 - 422636: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42263a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42263e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 422642: 66 0f d7 d1 pmovmskb %xmm1,%edx - 422646: 81 ea ff ff 00 00 sub $0xffff,%edx - 42264c: 0f 85 9e 00 00 00 jne 4226f0 <__GI_strcmp+0x13f0> - 422652: 48 83 c1 10 add $0x10,%rcx - 422656: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42265a: 49 83 c2 10 add $0x10,%r10 - 42265e: 7f 50 jg 4226b0 <__GI_strcmp+0x13b0> - 422660: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 422665: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42266a: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42266e: 66 0f 73 db 0f psrldq $0xf,%xmm3 - 422673: 66 0f 73 fa 01 pslldq $0x1,%xmm2 - 422678: 66 0f eb d3 por %xmm3,%xmm2 - 42267c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 422680: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 422684: 66 0f f8 c8 psubb %xmm0,%xmm1 - 422688: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42268c: 81 ea ff ff 00 00 sub $0xffff,%edx - 422692: 75 5c jne 4226f0 <__GI_strcmp+0x13f0> - 422694: 48 83 c1 10 add $0x10,%rcx - 422698: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42269c: e9 6f ff ff ff jmpq 422610 <__GI_strcmp+0x1310> - 4226a1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4226a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4226ad: 00 00 00 - 4226b0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 4226b4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4226b8: f7 c2 00 80 00 00 test $0x8000,%edx - 4226be: 75 10 jne 4226d0 <__GI_strcmp+0x13d0> - 4226c0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4226c4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4226cb: e9 4a ff ff ff jmpq 42261a <__GI_strcmp+0x131a> - 4226d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4226d5: 66 0f 73 db 0f psrldq $0xf,%xmm3 - 4226da: 66 0f 73 d8 0f psrldq $0xf,%xmm0 - 4226df: 90 nop - 4226e0: 66 0f 74 cb pcmpeqb %xmm3,%xmm1 - 4226e4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4226e8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4226ec: f7 d2 not %edx - 4226ee: 66 90 xchg %ax,%ax - 4226f0: 49 8d 44 09 f0 lea -0x10(%r9,%rcx,1),%rax - 4226f5: 48 8d 3c 07 lea (%rdi,%rax,1),%rdi - 4226f9: 48 8d 34 0e lea (%rsi,%rcx,1),%rsi - 4226fd: 45 85 c0 test %r8d,%r8d - 422700: 74 0e je 422710 <__GI_strcmp+0x1410> - 422702: 48 87 f7 xchg %rsi,%rdi - 422705: 90 nop - 422706: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42270d: 00 00 00 - 422710: 48 0f bc d2 bsf %rdx,%rdx - 422714: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx - 422718: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax - 42271c: 29 c8 sub %ecx,%eax - 42271e: c3 retq - 42271f: 31 c0 xor %eax,%eax - 422721: c3 retq - 422722: 0f 1f 40 00 nopl 0x0(%rax) - 422726: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42272d: 00 00 00 - 422730: 0f b6 0e movzbl (%rsi),%ecx - 422733: 0f b6 07 movzbl (%rdi),%eax - 422736: 29 c8 sub %ecx,%eax - 422738: c3 retq - 422739: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -0000000000422740 <__strcmp_sse42>: - 422740: 89 f1 mov %esi,%ecx - 422742: 89 f8 mov %edi,%eax - 422744: 48 83 e1 3f and $0x3f,%rcx - 422748: 48 83 e0 3f and $0x3f,%rax - 42274c: 83 f9 30 cmp $0x30,%ecx - 42274f: 77 3f ja 422790 <__strcmp_sse42+0x50> - 422751: 83 f8 30 cmp $0x30,%eax - 422754: 77 3a ja 422790 <__strcmp_sse42+0x50> - 422756: f3 0f 6f 0f movdqu (%rdi),%xmm1 - 42275a: f3 0f 6f 16 movdqu (%rsi),%xmm2 - 42275e: 66 0f ef c0 pxor %xmm0,%xmm0 - 422762: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 422766: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42276a: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42276e: 66 0f d7 d1 pmovmskb %xmm1,%edx - 422772: 81 ea ff ff 00 00 sub $0xffff,%edx - 422778: 0f 85 42 0d 00 00 jne 4234c0 <__strcmp_sse42+0xd80> - 42277e: 48 83 c6 10 add $0x10,%rsi - 422782: 48 83 c7 10 add $0x10,%rdi - 422786: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42278d: 00 00 00 - 422790: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 422794: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 422798: ba ff ff 00 00 mov $0xffff,%edx - 42279d: 45 31 c0 xor %r8d,%r8d - 4227a0: 83 e1 0f and $0xf,%ecx - 4227a3: 83 e0 0f and $0xf,%eax - 4227a6: 66 0f ef c0 pxor %xmm0,%xmm0 - 4227aa: 39 c1 cmp %eax,%ecx - 4227ac: 74 32 je 4227e0 <__strcmp_sse42+0xa0> - 4227ae: 77 07 ja 4227b7 <__strcmp_sse42+0x77> - 4227b0: 41 89 d0 mov %edx,%r8d - 4227b3: 91 xchg %eax,%ecx - 4227b4: 48 87 f7 xchg %rsi,%rdi - 4227b7: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4227bb: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4227bf: 4c 8d 48 0f lea 0xf(%rax),%r9 - 4227c3: 49 29 c9 sub %rcx,%r9 - 4227c6: 4c 8d 15 23 08 08 00 lea 0x80823(%rip),%r10 # 4a2ff0 <__func__.10972+0x30> - 4227cd: 4f 63 0c 8a movslq (%r10,%r9,4),%r9 - 4227d1: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4227d5: 4f 8d 14 0a lea (%r10,%r9,1),%r10 - 4227d9: 41 ff e2 jmpq *%r10 - 4227dc: 0f 1f 40 00 nopl 0x0(%rax) - 4227e0: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4227e4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4227e8: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 4227ec: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4227f0: 66 44 0f d7 c9 pmovmskb %xmm1,%r9d - 4227f5: d3 ea shr %cl,%edx - 4227f7: 41 d3 e9 shr %cl,%r9d - 4227fa: 44 29 ca sub %r9d,%edx - 4227fd: 0f 85 a8 0c 00 00 jne 4234ab <__strcmp_sse42+0xd6b> - 422803: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42280a: 49 c7 c1 10 00 00 00 mov $0x10,%r9 - 422811: 48 89 ca mov %rcx,%rdx - 422814: 66 90 xchg %ax,%ax - 422816: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42281d: 00 00 00 - 422820: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 422825: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 42282c: 48 8d 52 10 lea 0x10(%rdx),%rdx - 422830: 76 1e jbe 422850 <__strcmp_sse42+0x110> - 422832: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 422837: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 42283e: 48 8d 52 10 lea 0x10(%rdx),%rdx - 422842: 76 0c jbe 422850 <__strcmp_sse42+0x110> - 422844: eb da jmp 422820 <__strcmp_sse42+0xe0> - 422846: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42284d: 00 00 00 - 422850: 0f 83 79 0c 00 00 jae 4234cf <__strcmp_sse42+0xd8f> - 422856: 48 8d 4c 0a f0 lea -0x10(%rdx,%rcx,1),%rcx - 42285b: 0f b6 04 0f movzbl (%rdi,%rcx,1),%eax - 42285f: 0f b6 14 0e movzbl (%rsi,%rcx,1),%edx - 422863: 29 d0 sub %edx,%eax - 422865: c3 retq - 422866: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42286d: 00 00 00 - 422870: 66 0f 73 fa 0f pslldq $0xf,%xmm2 - 422875: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 422879: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42287d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 422882: d3 ea shr %cl,%edx - 422884: 41 d3 e9 shr %cl,%r9d - 422887: 44 29 ca sub %r9d,%edx - 42288a: 0f 85 1b 0c 00 00 jne 4234ab <__strcmp_sse42+0xd6b> - 422890: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 422894: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42289b: 41 b9 01 00 00 00 mov $0x1,%r9d - 4228a1: 4c 8d 57 01 lea 0x1(%rdi),%r10 - 4228a5: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 4228ac: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4228b3: 48 89 ca mov %rcx,%rdx - 4228b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4228bd: 00 00 00 - 4228c0: 49 83 c2 10 add $0x10,%r10 - 4228c4: 7f 4a jg 422910 <__strcmp_sse42+0x1d0> - 4228c6: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 4228cb: 66 0f 3a 0f 44 17 f0 palignr $0x1,-0x10(%rdi,%rdx,1),%xmm0 - 4228d2: 01 - 4228d3: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 4228da: 0f 86 b0 0b 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 4228e0: 48 83 c2 10 add $0x10,%rdx - 4228e4: 49 83 c2 10 add $0x10,%r10 - 4228e8: 7f 26 jg 422910 <__strcmp_sse42+0x1d0> - 4228ea: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 4228ef: 66 0f 3a 0f 44 17 f0 palignr $0x1,-0x10(%rdi,%rdx,1),%xmm0 - 4228f6: 01 - 4228f7: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 4228fe: 0f 86 8c 0b 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 422904: 48 83 c2 10 add $0x10,%rdx - 422908: eb b6 jmp 4228c0 <__strcmp_sse42+0x180> - 42290a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 422910: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422917: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 42291d: 66 0f 73 d8 01 psrldq $0x1,%xmm0 - 422922: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 422928: 83 f9 0e cmp $0xe,%ecx - 42292b: 77 99 ja 4228c6 <__strcmp_sse42+0x186> - 42292d: e9 4b 0b 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> - 422932: 0f 1f 40 00 nopl 0x0(%rax) - 422936: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42293d: 00 00 00 - 422940: 66 0f 73 fa 0e pslldq $0xe,%xmm2 - 422945: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 422949: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42294d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 422952: d3 ea shr %cl,%edx - 422954: 41 d3 e9 shr %cl,%r9d - 422957: 44 29 ca sub %r9d,%edx - 42295a: 0f 85 4b 0b 00 00 jne 4234ab <__strcmp_sse42+0xd6b> - 422960: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 422964: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42296b: 41 b9 02 00 00 00 mov $0x2,%r9d - 422971: 4c 8d 57 02 lea 0x2(%rdi),%r10 - 422975: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42297c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422983: 48 89 ca mov %rcx,%rdx - 422986: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42298d: 00 00 00 - 422990: 49 83 c2 10 add $0x10,%r10 - 422994: 7f 4a jg 4229e0 <__strcmp_sse42+0x2a0> - 422996: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42299b: 66 0f 3a 0f 44 17 f0 palignr $0x2,-0x10(%rdi,%rdx,1),%xmm0 - 4229a2: 02 - 4229a3: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 4229aa: 0f 86 e0 0a 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 4229b0: 48 83 c2 10 add $0x10,%rdx - 4229b4: 49 83 c2 10 add $0x10,%r10 - 4229b8: 7f 26 jg 4229e0 <__strcmp_sse42+0x2a0> - 4229ba: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 4229bf: 66 0f 3a 0f 44 17 f0 palignr $0x2,-0x10(%rdi,%rdx,1),%xmm0 - 4229c6: 02 - 4229c7: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 4229ce: 0f 86 bc 0a 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 4229d4: 48 83 c2 10 add $0x10,%rdx - 4229d8: eb b6 jmp 422990 <__strcmp_sse42+0x250> - 4229da: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4229e0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4229e7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 4229ed: 66 0f 73 d8 02 psrldq $0x2,%xmm0 - 4229f2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 4229f8: 83 f9 0d cmp $0xd,%ecx - 4229fb: 77 99 ja 422996 <__strcmp_sse42+0x256> - 4229fd: e9 7b 0a 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> - 422a02: 0f 1f 40 00 nopl 0x0(%rax) - 422a06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 422a0d: 00 00 00 - 422a10: 66 0f 73 fa 0d pslldq $0xd,%xmm2 - 422a15: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 422a19: 66 0f f8 d0 psubb %xmm0,%xmm2 - 422a1d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 422a22: d3 ea shr %cl,%edx - 422a24: 41 d3 e9 shr %cl,%r9d - 422a27: 44 29 ca sub %r9d,%edx - 422a2a: 0f 85 7b 0a 00 00 jne 4234ab <__strcmp_sse42+0xd6b> - 422a30: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 422a34: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 422a3b: 41 b9 03 00 00 00 mov $0x3,%r9d - 422a41: 4c 8d 57 03 lea 0x3(%rdi),%r10 - 422a45: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 422a4c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422a53: 48 89 ca mov %rcx,%rdx - 422a56: 49 83 c2 10 add $0x10,%r10 - 422a5a: 7f 44 jg 422aa0 <__strcmp_sse42+0x360> - 422a5c: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 422a61: 66 0f 3a 0f 44 17 f0 palignr $0x3,-0x10(%rdi,%rdx,1),%xmm0 - 422a68: 03 - 422a69: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 422a70: 0f 86 1a 0a 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 422a76: 48 83 c2 10 add $0x10,%rdx - 422a7a: 49 83 c2 10 add $0x10,%r10 - 422a7e: 7f 20 jg 422aa0 <__strcmp_sse42+0x360> - 422a80: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 422a85: 66 0f 3a 0f 44 17 f0 palignr $0x3,-0x10(%rdi,%rdx,1),%xmm0 - 422a8c: 03 - 422a8d: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 422a94: 0f 86 f6 09 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 422a9a: 48 83 c2 10 add $0x10,%rdx - 422a9e: eb b6 jmp 422a56 <__strcmp_sse42+0x316> - 422aa0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422aa7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 422aad: 66 0f 73 d8 03 psrldq $0x3,%xmm0 - 422ab2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 422ab8: 83 f9 0c cmp $0xc,%ecx - 422abb: 77 9f ja 422a5c <__strcmp_sse42+0x31c> - 422abd: e9 bb 09 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> - 422ac2: 0f 1f 40 00 nopl 0x0(%rax) - 422ac6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 422acd: 00 00 00 - 422ad0: 66 0f 73 fa 0c pslldq $0xc,%xmm2 - 422ad5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 422ad9: 66 0f f8 d0 psubb %xmm0,%xmm2 - 422add: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 422ae2: d3 ea shr %cl,%edx - 422ae4: 41 d3 e9 shr %cl,%r9d - 422ae7: 44 29 ca sub %r9d,%edx - 422aea: 0f 85 bb 09 00 00 jne 4234ab <__strcmp_sse42+0xd6b> - 422af0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 422af4: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 422afb: 41 b9 04 00 00 00 mov $0x4,%r9d - 422b01: 4c 8d 57 04 lea 0x4(%rdi),%r10 - 422b05: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 422b0c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422b13: 48 89 ca mov %rcx,%rdx - 422b16: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 422b1d: 00 00 00 - 422b20: 49 83 c2 10 add $0x10,%r10 - 422b24: 7f 4a jg 422b70 <__strcmp_sse42+0x430> - 422b26: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 422b2b: 66 0f 3a 0f 44 17 f0 palignr $0x4,-0x10(%rdi,%rdx,1),%xmm0 - 422b32: 04 - 422b33: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 422b3a: 0f 86 50 09 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 422b40: 48 83 c2 10 add $0x10,%rdx - 422b44: 49 83 c2 10 add $0x10,%r10 - 422b48: 7f 26 jg 422b70 <__strcmp_sse42+0x430> - 422b4a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 422b4f: 66 0f 3a 0f 44 17 f0 palignr $0x4,-0x10(%rdi,%rdx,1),%xmm0 - 422b56: 04 - 422b57: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 422b5e: 0f 86 2c 09 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 422b64: 48 83 c2 10 add $0x10,%rdx - 422b68: eb b6 jmp 422b20 <__strcmp_sse42+0x3e0> - 422b6a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 422b70: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422b77: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 422b7d: 66 0f 73 d8 04 psrldq $0x4,%xmm0 - 422b82: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 422b88: 83 f9 0b cmp $0xb,%ecx - 422b8b: 77 99 ja 422b26 <__strcmp_sse42+0x3e6> - 422b8d: e9 eb 08 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> - 422b92: 0f 1f 40 00 nopl 0x0(%rax) - 422b96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 422b9d: 00 00 00 - 422ba0: 66 0f 73 fa 0b pslldq $0xb,%xmm2 - 422ba5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 422ba9: 66 0f f8 d0 psubb %xmm0,%xmm2 - 422bad: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 422bb2: d3 ea shr %cl,%edx - 422bb4: 41 d3 e9 shr %cl,%r9d - 422bb7: 44 29 ca sub %r9d,%edx - 422bba: 0f 85 eb 08 00 00 jne 4234ab <__strcmp_sse42+0xd6b> - 422bc0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 422bc4: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 422bcb: 41 b9 05 00 00 00 mov $0x5,%r9d - 422bd1: 4c 8d 57 05 lea 0x5(%rdi),%r10 - 422bd5: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 422bdc: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422be3: 48 89 ca mov %rcx,%rdx - 422be6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 422bed: 00 00 00 - 422bf0: 49 83 c2 10 add $0x10,%r10 - 422bf4: 7f 4a jg 422c40 <__strcmp_sse42+0x500> - 422bf6: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 422bfb: 66 0f 3a 0f 44 17 f0 palignr $0x5,-0x10(%rdi,%rdx,1),%xmm0 - 422c02: 05 - 422c03: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 422c0a: 0f 86 80 08 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 422c10: 48 83 c2 10 add $0x10,%rdx - 422c14: 49 83 c2 10 add $0x10,%r10 - 422c18: 7f 26 jg 422c40 <__strcmp_sse42+0x500> - 422c1a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 422c1f: 66 0f 3a 0f 44 17 f0 palignr $0x5,-0x10(%rdi,%rdx,1),%xmm0 - 422c26: 05 - 422c27: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 422c2e: 0f 86 5c 08 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 422c34: 48 83 c2 10 add $0x10,%rdx - 422c38: eb b6 jmp 422bf0 <__strcmp_sse42+0x4b0> - 422c3a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 422c40: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422c47: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 422c4d: 66 0f 73 d8 05 psrldq $0x5,%xmm0 - 422c52: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 422c58: 83 f9 0a cmp $0xa,%ecx - 422c5b: 77 99 ja 422bf6 <__strcmp_sse42+0x4b6> - 422c5d: e9 1b 08 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> - 422c62: 0f 1f 40 00 nopl 0x0(%rax) - 422c66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 422c6d: 00 00 00 - 422c70: 66 0f 73 fa 0a pslldq $0xa,%xmm2 - 422c75: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 422c79: 66 0f f8 d0 psubb %xmm0,%xmm2 - 422c7d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 422c82: d3 ea shr %cl,%edx - 422c84: 41 d3 e9 shr %cl,%r9d - 422c87: 44 29 ca sub %r9d,%edx - 422c8a: 0f 85 1b 08 00 00 jne 4234ab <__strcmp_sse42+0xd6b> - 422c90: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 422c94: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 422c9b: 41 b9 06 00 00 00 mov $0x6,%r9d - 422ca1: 4c 8d 57 06 lea 0x6(%rdi),%r10 - 422ca5: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 422cac: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422cb3: 48 89 ca mov %rcx,%rdx - 422cb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 422cbd: 00 00 00 - 422cc0: 49 83 c2 10 add $0x10,%r10 - 422cc4: 7f 4a jg 422d10 <__strcmp_sse42+0x5d0> - 422cc6: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 422ccb: 66 0f 3a 0f 44 17 f0 palignr $0x6,-0x10(%rdi,%rdx,1),%xmm0 - 422cd2: 06 - 422cd3: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 422cda: 0f 86 b0 07 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 422ce0: 48 83 c2 10 add $0x10,%rdx - 422ce4: 49 83 c2 10 add $0x10,%r10 - 422ce8: 7f 26 jg 422d10 <__strcmp_sse42+0x5d0> - 422cea: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 422cef: 66 0f 3a 0f 44 17 f0 palignr $0x6,-0x10(%rdi,%rdx,1),%xmm0 - 422cf6: 06 - 422cf7: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 422cfe: 0f 86 8c 07 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 422d04: 48 83 c2 10 add $0x10,%rdx - 422d08: eb b6 jmp 422cc0 <__strcmp_sse42+0x580> - 422d0a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 422d10: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422d17: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 422d1d: 66 0f 73 d8 06 psrldq $0x6,%xmm0 - 422d22: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 422d28: 83 f9 09 cmp $0x9,%ecx - 422d2b: 77 99 ja 422cc6 <__strcmp_sse42+0x586> - 422d2d: e9 4b 07 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> - 422d32: 0f 1f 40 00 nopl 0x0(%rax) - 422d36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 422d3d: 00 00 00 - 422d40: 66 0f 73 fa 09 pslldq $0x9,%xmm2 - 422d45: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 422d49: 66 0f f8 d0 psubb %xmm0,%xmm2 - 422d4d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 422d52: d3 ea shr %cl,%edx - 422d54: 41 d3 e9 shr %cl,%r9d - 422d57: 44 29 ca sub %r9d,%edx - 422d5a: 0f 85 4b 07 00 00 jne 4234ab <__strcmp_sse42+0xd6b> - 422d60: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 422d64: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 422d6b: 41 b9 07 00 00 00 mov $0x7,%r9d - 422d71: 4c 8d 57 07 lea 0x7(%rdi),%r10 - 422d75: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 422d7c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422d83: 48 89 ca mov %rcx,%rdx - 422d86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 422d8d: 00 00 00 - 422d90: 49 83 c2 10 add $0x10,%r10 - 422d94: 7f 4a jg 422de0 <__strcmp_sse42+0x6a0> - 422d96: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 422d9b: 66 0f 3a 0f 44 17 f0 palignr $0x7,-0x10(%rdi,%rdx,1),%xmm0 - 422da2: 07 - 422da3: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 422daa: 0f 86 e0 06 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 422db0: 48 83 c2 10 add $0x10,%rdx - 422db4: 49 83 c2 10 add $0x10,%r10 - 422db8: 7f 26 jg 422de0 <__strcmp_sse42+0x6a0> - 422dba: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 422dbf: 66 0f 3a 0f 44 17 f0 palignr $0x7,-0x10(%rdi,%rdx,1),%xmm0 - 422dc6: 07 - 422dc7: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 422dce: 0f 86 bc 06 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 422dd4: 48 83 c2 10 add $0x10,%rdx - 422dd8: eb b6 jmp 422d90 <__strcmp_sse42+0x650> - 422dda: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 422de0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422de7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 422ded: 66 0f 73 d8 07 psrldq $0x7,%xmm0 - 422df2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 422df8: 83 f9 08 cmp $0x8,%ecx - 422dfb: 77 99 ja 422d96 <__strcmp_sse42+0x656> - 422dfd: e9 7b 06 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> - 422e02: 0f 1f 40 00 nopl 0x0(%rax) - 422e06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 422e0d: 00 00 00 - 422e10: 66 0f 73 fa 08 pslldq $0x8,%xmm2 - 422e15: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 422e19: 66 0f f8 d0 psubb %xmm0,%xmm2 - 422e1d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 422e22: d3 ea shr %cl,%edx - 422e24: 41 d3 e9 shr %cl,%r9d - 422e27: 44 29 ca sub %r9d,%edx - 422e2a: 0f 85 7b 06 00 00 jne 4234ab <__strcmp_sse42+0xd6b> - 422e30: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 422e34: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 422e3b: 41 b9 08 00 00 00 mov $0x8,%r9d - 422e41: 4c 8d 57 08 lea 0x8(%rdi),%r10 - 422e45: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 422e4c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422e53: 48 89 ca mov %rcx,%rdx - 422e56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 422e5d: 00 00 00 - 422e60: 49 83 c2 10 add $0x10,%r10 - 422e64: 7f 4a jg 422eb0 <__strcmp_sse42+0x770> - 422e66: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 422e6b: 66 0f 3a 0f 44 17 f0 palignr $0x8,-0x10(%rdi,%rdx,1),%xmm0 - 422e72: 08 - 422e73: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 422e7a: 0f 86 10 06 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 422e80: 48 83 c2 10 add $0x10,%rdx - 422e84: 49 83 c2 10 add $0x10,%r10 - 422e88: 7f 26 jg 422eb0 <__strcmp_sse42+0x770> - 422e8a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 422e8f: 66 0f 3a 0f 44 17 f0 palignr $0x8,-0x10(%rdi,%rdx,1),%xmm0 - 422e96: 08 - 422e97: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 422e9e: 0f 86 ec 05 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 422ea4: 48 83 c2 10 add $0x10,%rdx - 422ea8: eb b6 jmp 422e60 <__strcmp_sse42+0x720> - 422eaa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 422eb0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422eb7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 422ebd: 66 0f 73 d8 08 psrldq $0x8,%xmm0 - 422ec2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 422ec8: 83 f9 07 cmp $0x7,%ecx - 422ecb: 77 99 ja 422e66 <__strcmp_sse42+0x726> - 422ecd: e9 ab 05 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> - 422ed2: 0f 1f 40 00 nopl 0x0(%rax) - 422ed6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 422edd: 00 00 00 - 422ee0: 66 0f 73 fa 07 pslldq $0x7,%xmm2 - 422ee5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 422ee9: 66 0f f8 d0 psubb %xmm0,%xmm2 - 422eed: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 422ef2: d3 ea shr %cl,%edx - 422ef4: 41 d3 e9 shr %cl,%r9d - 422ef7: 44 29 ca sub %r9d,%edx - 422efa: 0f 85 ab 05 00 00 jne 4234ab <__strcmp_sse42+0xd6b> - 422f00: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 422f04: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 422f0b: 41 b9 09 00 00 00 mov $0x9,%r9d - 422f11: 4c 8d 57 09 lea 0x9(%rdi),%r10 - 422f15: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 422f1c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422f23: 48 89 ca mov %rcx,%rdx - 422f26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 422f2d: 00 00 00 - 422f30: 49 83 c2 10 add $0x10,%r10 - 422f34: 7f 4a jg 422f80 <__strcmp_sse42+0x840> - 422f36: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 422f3b: 66 0f 3a 0f 44 17 f0 palignr $0x9,-0x10(%rdi,%rdx,1),%xmm0 - 422f42: 09 - 422f43: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 422f4a: 0f 86 40 05 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 422f50: 48 83 c2 10 add $0x10,%rdx - 422f54: 49 83 c2 10 add $0x10,%r10 - 422f58: 7f 26 jg 422f80 <__strcmp_sse42+0x840> - 422f5a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 422f5f: 66 0f 3a 0f 44 17 f0 palignr $0x9,-0x10(%rdi,%rdx,1),%xmm0 - 422f66: 09 - 422f67: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 422f6e: 0f 86 1c 05 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 422f74: 48 83 c2 10 add $0x10,%rdx - 422f78: eb b6 jmp 422f30 <__strcmp_sse42+0x7f0> - 422f7a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 422f80: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422f87: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 422f8d: 66 0f 73 d8 09 psrldq $0x9,%xmm0 - 422f92: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 422f98: 83 f9 06 cmp $0x6,%ecx - 422f9b: 77 99 ja 422f36 <__strcmp_sse42+0x7f6> - 422f9d: e9 db 04 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> - 422fa2: 0f 1f 40 00 nopl 0x0(%rax) - 422fa6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 422fad: 00 00 00 - 422fb0: 66 0f 73 fa 06 pslldq $0x6,%xmm2 - 422fb5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 422fb9: 66 0f f8 d0 psubb %xmm0,%xmm2 - 422fbd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 422fc2: d3 ea shr %cl,%edx - 422fc4: 41 d3 e9 shr %cl,%r9d - 422fc7: 44 29 ca sub %r9d,%edx - 422fca: 0f 85 db 04 00 00 jne 4234ab <__strcmp_sse42+0xd6b> - 422fd0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 422fd4: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 422fdb: 41 b9 0a 00 00 00 mov $0xa,%r9d - 422fe1: 4c 8d 57 0a lea 0xa(%rdi),%r10 - 422fe5: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 422fec: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 422ff3: 48 89 ca mov %rcx,%rdx - 422ff6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 422ffd: 00 00 00 - 423000: 49 83 c2 10 add $0x10,%r10 - 423004: 7f 4a jg 423050 <__strcmp_sse42+0x910> - 423006: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42300b: 66 0f 3a 0f 44 17 f0 palignr $0xa,-0x10(%rdi,%rdx,1),%xmm0 - 423012: 0a - 423013: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 42301a: 0f 86 70 04 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 423020: 48 83 c2 10 add $0x10,%rdx - 423024: 49 83 c2 10 add $0x10,%r10 - 423028: 7f 26 jg 423050 <__strcmp_sse42+0x910> - 42302a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42302f: 66 0f 3a 0f 44 17 f0 palignr $0xa,-0x10(%rdi,%rdx,1),%xmm0 - 423036: 0a - 423037: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 42303e: 0f 86 4c 04 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 423044: 48 83 c2 10 add $0x10,%rdx - 423048: eb b6 jmp 423000 <__strcmp_sse42+0x8c0> - 42304a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 423050: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 423057: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 42305d: 66 0f 73 d8 0a psrldq $0xa,%xmm0 - 423062: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 423068: 83 f9 05 cmp $0x5,%ecx - 42306b: 77 99 ja 423006 <__strcmp_sse42+0x8c6> - 42306d: e9 0b 04 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> - 423072: 0f 1f 40 00 nopl 0x0(%rax) - 423076: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42307d: 00 00 00 - 423080: 66 0f 73 fa 05 pslldq $0x5,%xmm2 - 423085: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 423089: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42308d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 423092: d3 ea shr %cl,%edx - 423094: 41 d3 e9 shr %cl,%r9d - 423097: 44 29 ca sub %r9d,%edx - 42309a: 0f 85 0b 04 00 00 jne 4234ab <__strcmp_sse42+0xd6b> - 4230a0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 4230a4: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4230ab: 41 b9 0b 00 00 00 mov $0xb,%r9d - 4230b1: 4c 8d 57 0b lea 0xb(%rdi),%r10 - 4230b5: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 4230bc: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4230c3: 48 89 ca mov %rcx,%rdx - 4230c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4230cd: 00 00 00 - 4230d0: 49 83 c2 10 add $0x10,%r10 - 4230d4: 7f 4a jg 423120 <__strcmp_sse42+0x9e0> - 4230d6: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 4230db: 66 0f 3a 0f 44 17 f0 palignr $0xb,-0x10(%rdi,%rdx,1),%xmm0 - 4230e2: 0b - 4230e3: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 4230ea: 0f 86 a0 03 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 4230f0: 48 83 c2 10 add $0x10,%rdx - 4230f4: 49 83 c2 10 add $0x10,%r10 - 4230f8: 7f 26 jg 423120 <__strcmp_sse42+0x9e0> - 4230fa: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 4230ff: 66 0f 3a 0f 44 17 f0 palignr $0xb,-0x10(%rdi,%rdx,1),%xmm0 - 423106: 0b - 423107: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 42310e: 0f 86 7c 03 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 423114: 48 83 c2 10 add $0x10,%rdx - 423118: eb b6 jmp 4230d0 <__strcmp_sse42+0x990> - 42311a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 423120: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 423127: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 42312d: 66 0f 73 d8 0b psrldq $0xb,%xmm0 - 423132: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 423138: 83 f9 04 cmp $0x4,%ecx - 42313b: 77 99 ja 4230d6 <__strcmp_sse42+0x996> - 42313d: e9 3b 03 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> - 423142: 0f 1f 40 00 nopl 0x0(%rax) - 423146: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42314d: 00 00 00 - 423150: 66 0f 73 fa 04 pslldq $0x4,%xmm2 - 423155: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 423159: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42315d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 423162: d3 ea shr %cl,%edx - 423164: 41 d3 e9 shr %cl,%r9d - 423167: 44 29 ca sub %r9d,%edx - 42316a: 0f 85 3b 03 00 00 jne 4234ab <__strcmp_sse42+0xd6b> - 423170: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 423174: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42317b: 41 b9 0c 00 00 00 mov $0xc,%r9d - 423181: 4c 8d 57 0c lea 0xc(%rdi),%r10 - 423185: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42318c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 423193: 48 89 ca mov %rcx,%rdx - 423196: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42319d: 00 00 00 - 4231a0: 49 83 c2 10 add $0x10,%r10 - 4231a4: 7f 4a jg 4231f0 <__strcmp_sse42+0xab0> - 4231a6: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 4231ab: 66 0f 3a 0f 44 17 f0 palignr $0xc,-0x10(%rdi,%rdx,1),%xmm0 - 4231b2: 0c - 4231b3: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 4231ba: 0f 86 d0 02 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 4231c0: 48 83 c2 10 add $0x10,%rdx - 4231c4: 49 83 c2 10 add $0x10,%r10 - 4231c8: 7f 26 jg 4231f0 <__strcmp_sse42+0xab0> - 4231ca: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 4231cf: 66 0f 3a 0f 44 17 f0 palignr $0xc,-0x10(%rdi,%rdx,1),%xmm0 - 4231d6: 0c - 4231d7: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 4231de: 0f 86 ac 02 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 4231e4: 48 83 c2 10 add $0x10,%rdx - 4231e8: eb b6 jmp 4231a0 <__strcmp_sse42+0xa60> - 4231ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4231f0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4231f7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 4231fd: 66 0f 73 d8 0c psrldq $0xc,%xmm0 - 423202: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 423208: 83 f9 03 cmp $0x3,%ecx - 42320b: 77 99 ja 4231a6 <__strcmp_sse42+0xa66> - 42320d: e9 6b 02 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> - 423212: 0f 1f 40 00 nopl 0x0(%rax) - 423216: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42321d: 00 00 00 - 423220: 66 0f 73 fa 03 pslldq $0x3,%xmm2 - 423225: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 423229: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42322d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 423232: d3 ea shr %cl,%edx - 423234: 41 d3 e9 shr %cl,%r9d - 423237: 44 29 ca sub %r9d,%edx - 42323a: 0f 85 6b 02 00 00 jne 4234ab <__strcmp_sse42+0xd6b> - 423240: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 423244: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42324b: 41 b9 0d 00 00 00 mov $0xd,%r9d - 423251: 4c 8d 57 0d lea 0xd(%rdi),%r10 - 423255: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42325c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 423263: 48 89 ca mov %rcx,%rdx - 423266: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42326d: 00 00 00 - 423270: 49 83 c2 10 add $0x10,%r10 - 423274: 7f 4a jg 4232c0 <__strcmp_sse42+0xb80> - 423276: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42327b: 66 0f 3a 0f 44 17 f0 palignr $0xd,-0x10(%rdi,%rdx,1),%xmm0 - 423282: 0d - 423283: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 42328a: 0f 86 00 02 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 423290: 48 83 c2 10 add $0x10,%rdx - 423294: 49 83 c2 10 add $0x10,%r10 - 423298: 7f 26 jg 4232c0 <__strcmp_sse42+0xb80> - 42329a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42329f: 66 0f 3a 0f 44 17 f0 palignr $0xd,-0x10(%rdi,%rdx,1),%xmm0 - 4232a6: 0d - 4232a7: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 4232ae: 0f 86 dc 01 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 4232b4: 48 83 c2 10 add $0x10,%rdx - 4232b8: eb b6 jmp 423270 <__strcmp_sse42+0xb30> - 4232ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4232c0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4232c7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 4232cd: 66 0f 73 d8 0d psrldq $0xd,%xmm0 - 4232d2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 4232d8: 83 f9 02 cmp $0x2,%ecx - 4232db: 77 99 ja 423276 <__strcmp_sse42+0xb36> - 4232dd: e9 9b 01 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> - 4232e2: 0f 1f 40 00 nopl 0x0(%rax) - 4232e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4232ed: 00 00 00 - 4232f0: 66 0f 73 fa 02 pslldq $0x2,%xmm2 - 4232f5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 4232f9: 66 0f f8 d0 psubb %xmm0,%xmm2 - 4232fd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 423302: d3 ea shr %cl,%edx - 423304: 41 d3 e9 shr %cl,%r9d - 423307: 44 29 ca sub %r9d,%edx - 42330a: 0f 85 9b 01 00 00 jne 4234ab <__strcmp_sse42+0xd6b> - 423310: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 423314: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42331b: 41 b9 0e 00 00 00 mov $0xe,%r9d - 423321: 4c 8d 57 0e lea 0xe(%rdi),%r10 - 423325: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42332c: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 423333: 48 89 ca mov %rcx,%rdx - 423336: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42333d: 00 00 00 - 423340: 49 83 c2 10 add $0x10,%r10 - 423344: 7f 4a jg 423390 <__strcmp_sse42+0xc50> - 423346: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42334b: 66 0f 3a 0f 44 17 f0 palignr $0xe,-0x10(%rdi,%rdx,1),%xmm0 - 423352: 0e - 423353: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 42335a: 0f 86 30 01 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 423360: 48 83 c2 10 add $0x10,%rdx - 423364: 49 83 c2 10 add $0x10,%r10 - 423368: 7f 26 jg 423390 <__strcmp_sse42+0xc50> - 42336a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42336f: 66 0f 3a 0f 44 17 f0 palignr $0xe,-0x10(%rdi,%rdx,1),%xmm0 - 423376: 0e - 423377: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 42337e: 0f 86 0c 01 00 00 jbe 423490 <__strcmp_sse42+0xd50> - 423384: 48 83 c2 10 add $0x10,%rdx - 423388: eb b6 jmp 423340 <__strcmp_sse42+0xc00> - 42338a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 423390: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 423397: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 42339d: 66 0f 73 d8 0e psrldq $0xe,%xmm0 - 4233a2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 4233a8: 83 f9 01 cmp $0x1,%ecx - 4233ab: 77 99 ja 423346 <__strcmp_sse42+0xc06> - 4233ad: e9 cb 00 00 00 jmpq 42347d <__strcmp_sse42+0xd3d> - 4233b2: 0f 1f 40 00 nopl 0x0(%rax) - 4233b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4233bd: 00 00 00 - 4233c0: 66 0f 73 fa 01 pslldq $0x1,%xmm2 - 4233c5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 4233c9: 66 0f f8 d0 psubb %xmm0,%xmm2 - 4233cd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 4233d2: d3 ea shr %cl,%edx - 4233d4: 41 d3 e9 shr %cl,%r9d - 4233d7: 44 29 ca sub %r9d,%edx - 4233da: 0f 85 cb 00 00 00 jne 4234ab <__strcmp_sse42+0xd6b> - 4233e0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 4233e4: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4233eb: 41 b9 0f 00 00 00 mov $0xf,%r9d - 4233f1: 4c 8d 57 0f lea 0xf(%rdi),%r10 - 4233f5: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 4233fc: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 423403: 48 89 ca mov %rcx,%rdx - 423406: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42340d: 00 00 00 - 423410: 49 83 c2 10 add $0x10,%r10 - 423414: 7f 4a jg 423460 <__strcmp_sse42+0xd20> - 423416: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42341b: 66 0f 3a 0f 44 17 f0 palignr $0xf,-0x10(%rdi,%rdx,1),%xmm0 - 423422: 0f - 423423: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 42342a: 76 64 jbe 423490 <__strcmp_sse42+0xd50> - 42342c: 48 83 c2 10 add $0x10,%rdx - 423430: 49 83 c2 10 add $0x10,%r10 - 423434: 7f 2a jg 423460 <__strcmp_sse42+0xd20> - 423436: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42343b: 66 0f 3a 0f 44 17 f0 palignr $0xf,-0x10(%rdi,%rdx,1),%xmm0 - 423442: 0f - 423443: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 42344a: 76 44 jbe 423490 <__strcmp_sse42+0xd50> - 42344c: 48 83 c2 10 add $0x10,%rdx - 423450: eb be jmp 423410 <__strcmp_sse42+0xcd0> - 423452: 0f 1f 40 00 nopl 0x0(%rax) - 423456: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42345d: 00 00 00 - 423460: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 423467: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 42346d: 66 0f 73 d8 0f psrldq $0xf,%xmm0 - 423472: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 423478: 83 f9 00 cmp $0x0,%ecx - 42347b: 77 99 ja 423416 <__strcmp_sse42+0xcd6> - 42347d: 66 0f 3a 63 04 16 1a pcmpistri $0x1a,(%rsi,%rdx,1),%xmm0 - 423484: 66 90 xchg %ax,%ax - 423486: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42348d: 00 00 00 - 423490: 73 3d jae 4234cf <__strcmp_sse42+0xd8f> - 423492: 48 01 ca add %rcx,%rdx - 423495: 4a 8d 7c 0f f0 lea -0x10(%rdi,%r9,1),%rdi - 42349a: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax - 42349e: 0f b6 14 16 movzbl (%rsi,%rdx,1),%edx - 4234a2: 45 85 c0 test %r8d,%r8d - 4234a5: 74 01 je 4234a8 <__strcmp_sse42+0xd68> - 4234a7: 92 xchg %eax,%edx - 4234a8: 29 d0 sub %edx,%eax - 4234aa: c3 retq - 4234ab: 48 8d 3c 07 lea (%rdi,%rax,1),%rdi - 4234af: 48 8d 34 0e lea (%rsi,%rcx,1),%rsi - 4234b3: 45 85 c0 test %r8d,%r8d - 4234b6: 74 08 je 4234c0 <__strcmp_sse42+0xd80> - 4234b8: 48 87 f7 xchg %rsi,%rdi - 4234bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4234c0: 48 0f bc d2 bsf %rdx,%rdx - 4234c4: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx - 4234c8: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax - 4234cc: 29 c8 sub %ecx,%eax - 4234ce: c3 retq - 4234cf: 31 c0 xor %eax,%eax - 4234d1: c3 retq - 4234d2: 0f 1f 40 00 nopl 0x0(%rax) - 4234d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4234dd: 00 00 00 - 4234e0: 0f b6 0e movzbl (%rsi),%ecx - 4234e3: 0f b6 07 movzbl (%rdi),%eax - 4234e6: 29 c8 sub %ecx,%eax - 4234e8: c3 retq - 4234e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -00000000004234f0 : - 4234f0: 48 8d 05 39 78 01 00 lea 0x17839(%rip),%rax # 43ad30 <__strcpy_sse2_unaligned> - 4234f7: f7 05 bf 91 2a 00 10 testl $0x10,0x2a91bf(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 4234fe: 00 00 00 - 423501: 75 1a jne 42351d - 423503: 48 8d 05 16 00 00 00 lea 0x16(%rip),%rax # 423520 <__GI_strcpy> - 42350a: f7 05 7c 91 2a 00 00 testl $0x200,0x2a917c(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> - 423511: 02 00 00 - 423514: 74 07 je 42351d - 423516: 48 8d 05 53 48 01 00 lea 0x14853(%rip),%rax # 437d70 <__strcpy_ssse3> - 42351d: c3 retq - 42351e: 66 90 xchg %ax,%ax - -0000000000423520 <__GI_strcpy>: - 423520: 48 89 f1 mov %rsi,%rcx - 423523: 83 e1 07 and $0x7,%ecx - 423526: 48 89 fa mov %rdi,%rdx - 423529: 74 1b je 423546 <__GI_strcpy+0x26> - 42352b: f7 d9 neg %ecx - 42352d: 83 c1 08 add $0x8,%ecx - 423530: 8a 06 mov (%rsi),%al - 423532: 84 c0 test %al,%al - 423534: 88 02 mov %al,(%rdx) - 423536: 0f 84 bc 00 00 00 je 4235f8 <__GI_strcpy+0xd8> - 42353c: 48 ff c6 inc %rsi - 42353f: 48 ff c2 inc %rdx - 423542: ff c9 dec %ecx - 423544: 75 ea jne 423530 <__GI_strcpy+0x10> - 423546: 49 b8 ff fe fe fe fe movabs $0xfefefefefefefeff,%r8 - 42354d: fe fe fe - 423550: 48 8b 06 mov (%rsi),%rax - 423553: 48 83 c6 08 add $0x8,%rsi - 423557: 49 89 c1 mov %rax,%r9 - 42355a: 4d 01 c1 add %r8,%r9 - 42355d: 0f 83 7d 00 00 00 jae 4235e0 <__GI_strcpy+0xc0> - 423563: 49 31 c1 xor %rax,%r9 - 423566: 4d 09 c1 or %r8,%r9 - 423569: 49 ff c1 inc %r9 - 42356c: 75 72 jne 4235e0 <__GI_strcpy+0xc0> - 42356e: 48 89 02 mov %rax,(%rdx) - 423571: 48 83 c2 08 add $0x8,%rdx - 423575: 48 8b 06 mov (%rsi),%rax - 423578: 48 83 c6 08 add $0x8,%rsi - 42357c: 49 89 c1 mov %rax,%r9 - 42357f: 4d 01 c1 add %r8,%r9 - 423582: 73 5c jae 4235e0 <__GI_strcpy+0xc0> - 423584: 49 31 c1 xor %rax,%r9 - 423587: 4d 09 c1 or %r8,%r9 - 42358a: 49 ff c1 inc %r9 - 42358d: 75 51 jne 4235e0 <__GI_strcpy+0xc0> - 42358f: 48 89 02 mov %rax,(%rdx) - 423592: 48 83 c2 08 add $0x8,%rdx - 423596: 48 8b 06 mov (%rsi),%rax - 423599: 48 83 c6 08 add $0x8,%rsi - 42359d: 49 89 c1 mov %rax,%r9 - 4235a0: 4d 01 c1 add %r8,%r9 - 4235a3: 73 3b jae 4235e0 <__GI_strcpy+0xc0> - 4235a5: 49 31 c1 xor %rax,%r9 - 4235a8: 4d 09 c1 or %r8,%r9 - 4235ab: 49 ff c1 inc %r9 - 4235ae: 75 30 jne 4235e0 <__GI_strcpy+0xc0> - 4235b0: 48 89 02 mov %rax,(%rdx) - 4235b3: 48 83 c2 08 add $0x8,%rdx - 4235b7: 48 8b 06 mov (%rsi),%rax - 4235ba: 48 83 c6 08 add $0x8,%rsi - 4235be: 49 89 c1 mov %rax,%r9 - 4235c1: 4d 01 c1 add %r8,%r9 - 4235c4: 73 1a jae 4235e0 <__GI_strcpy+0xc0> - 4235c6: 49 31 c1 xor %rax,%r9 - 4235c9: 4d 09 c1 or %r8,%r9 - 4235cc: 49 ff c1 inc %r9 - 4235cf: 75 0f jne 4235e0 <__GI_strcpy+0xc0> - 4235d1: 48 89 02 mov %rax,(%rdx) - 4235d4: 48 83 c2 08 add $0x8,%rdx - 4235d8: e9 73 ff ff ff jmpq 423550 <__GI_strcpy+0x30> - 4235dd: 0f 1f 00 nopl (%rax) - 4235e0: 88 02 mov %al,(%rdx) - 4235e2: 84 c0 test %al,%al - 4235e4: 74 12 je 4235f8 <__GI_strcpy+0xd8> - 4235e6: 48 ff c2 inc %rdx - 4235e9: 88 22 mov %ah,(%rdx) - 4235eb: 84 e4 test %ah,%ah - 4235ed: 74 09 je 4235f8 <__GI_strcpy+0xd8> - 4235ef: 48 ff c2 inc %rdx - 4235f2: 48 c1 e8 10 shr $0x10,%rax - 4235f6: eb e8 jmp 4235e0 <__GI_strcpy+0xc0> - 4235f8: 48 89 f8 mov %rdi,%rax - 4235fb: c3 retq - 4235fc: 0f 1f 40 00 nopl 0x0(%rax) - -0000000000423600 <__strdup>: - 423600: 55 push %rbp - 423601: 53 push %rbx - 423602: 48 89 fd mov %rdi,%rbp - 423605: 48 83 ec 08 sub $0x8,%rsp - 423609: e8 42 00 00 00 callq 423650 - 42360e: 48 8d 58 01 lea 0x1(%rax),%rbx - 423612: 48 89 df mov %rbx,%rdi - 423615: e8 f6 a3 ff ff callq 41da10 <__libc_malloc> - 42361a: 48 85 c0 test %rax,%rax - 42361d: 74 19 je 423638 <__strdup+0x38> - 42361f: 48 83 c4 08 add $0x8,%rsp - 423623: 48 89 da mov %rbx,%rdx - 423626: 48 89 ee mov %rbp,%rsi - 423629: 5b pop %rbx - 42362a: 5d pop %rbp - 42362b: 48 89 c7 mov %rax,%rdi - 42362e: e9 ed 89 00 00 jmpq 42c020 - 423633: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 423638: 48 83 c4 08 add $0x8,%rsp - 42363c: 31 c0 xor %eax,%eax - 42363e: 5b pop %rbx - 42363f: 5d pop %rbp - 423640: c3 retq - 423641: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 423648: 00 00 00 - 42364b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -0000000000423650 : - 423650: 66 0f ef c0 pxor %xmm0,%xmm0 - 423654: 66 0f ef c9 pxor %xmm1,%xmm1 - 423658: 66 0f ef d2 pxor %xmm2,%xmm2 - 42365c: 66 0f ef db pxor %xmm3,%xmm3 - 423660: 48 89 f8 mov %rdi,%rax - 423663: 48 89 f9 mov %rdi,%rcx - 423666: 48 81 e1 ff 0f 00 00 and $0xfff,%rcx - 42366d: 48 81 f9 cf 0f 00 00 cmp $0xfcf,%rcx - 423674: 77 6a ja 4236e0 - 423676: f3 0f 6f 20 movdqu (%rax),%xmm4 - 42367a: 66 0f 74 e0 pcmpeqb %xmm0,%xmm4 - 42367e: 66 0f d7 d4 pmovmskb %xmm4,%edx - 423682: 85 d2 test %edx,%edx - 423684: 74 04 je 42368a - 423686: 0f bc c2 bsf %edx,%eax - 423689: c3 retq - 42368a: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 42368e: 66 0f 74 48 10 pcmpeqb 0x10(%rax),%xmm1 - 423693: 66 0f 74 50 20 pcmpeqb 0x20(%rax),%xmm2 - 423698: 66 0f 74 58 30 pcmpeqb 0x30(%rax),%xmm3 - 42369d: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4236a1: 66 44 0f d7 c2 pmovmskb %xmm2,%r8d - 4236a6: 66 0f d7 cb pmovmskb %xmm3,%ecx - 4236aa: 48 c1 e2 10 shl $0x10,%rdx - 4236ae: 48 c1 e1 10 shl $0x10,%rcx - 4236b2: 4c 09 c1 or %r8,%rcx - 4236b5: 48 c1 e1 20 shl $0x20,%rcx - 4236b9: 48 09 ca or %rcx,%rdx - 4236bc: 48 89 f9 mov %rdi,%rcx - 4236bf: 48 31 c1 xor %rax,%rcx - 4236c2: 48 83 e0 c0 and $0xffffffffffffffc0,%rax - 4236c6: 48 d3 fa sar %cl,%rdx - 4236c9: 48 85 d2 test %rdx,%rdx - 4236cc: 0f 84 7e 00 00 00 je 423750 - 4236d2: 48 0f bc c2 bsf %rdx,%rax - 4236d6: c3 retq - 4236d7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4236de: 00 00 - 4236e0: 48 83 e0 c0 and $0xffffffffffffffc0,%rax - 4236e4: 66 0f 74 00 pcmpeqb (%rax),%xmm0 - 4236e8: 66 0f 74 48 10 pcmpeqb 0x10(%rax),%xmm1 - 4236ed: 66 0f 74 50 20 pcmpeqb 0x20(%rax),%xmm2 - 4236f2: 66 0f 74 58 30 pcmpeqb 0x30(%rax),%xmm3 - 4236f7: 66 0f d7 f0 pmovmskb %xmm0,%esi - 4236fb: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4236ff: 66 44 0f d7 c2 pmovmskb %xmm2,%r8d - 423704: 66 0f d7 cb pmovmskb %xmm3,%ecx - 423708: 48 c1 e2 10 shl $0x10,%rdx - 42370c: 48 c1 e1 10 shl $0x10,%rcx - 423710: 48 09 f2 or %rsi,%rdx - 423713: 4c 09 c1 or %r8,%rcx - 423716: 48 c1 e1 20 shl $0x20,%rcx - 42371a: 48 09 ca or %rcx,%rdx - 42371d: 48 89 f9 mov %rdi,%rcx - 423720: 48 31 c1 xor %rax,%rcx - 423723: 48 83 e0 c0 and $0xffffffffffffffc0,%rax - 423727: 48 d3 fa sar %cl,%rdx - 42372a: 48 85 d2 test %rdx,%rdx - 42372d: 74 11 je 423740 - 42372f: 48 0f bc c2 bsf %rdx,%rax - 423733: c3 retq - 423734: 66 90 xchg %ax,%ax - 423736: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42373d: 00 00 00 - 423740: 66 0f ef c9 pxor %xmm1,%xmm1 - 423744: 66 0f ef d2 pxor %xmm2,%xmm2 - 423748: 66 0f ef db pxor %xmm3,%xmm3 - 42374c: 0f 1f 40 00 nopl 0x0(%rax) - 423750: 66 0f 6f 40 40 movdqa 0x40(%rax),%xmm0 - 423755: 66 0f da 40 50 pminub 0x50(%rax),%xmm0 - 42375a: 66 0f da 40 60 pminub 0x60(%rax),%xmm0 - 42375f: 66 0f da 40 70 pminub 0x70(%rax),%xmm0 - 423764: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 423768: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42376c: 85 d2 test %edx,%edx - 42376e: 75 30 jne 4237a0 - 423770: 48 83 e8 80 sub $0xffffffffffffff80,%rax - 423774: 66 0f 6f 00 movdqa (%rax),%xmm0 - 423778: 66 0f da 40 10 pminub 0x10(%rax),%xmm0 - 42377d: 66 0f da 40 20 pminub 0x20(%rax),%xmm0 - 423782: 66 0f da 40 30 pminub 0x30(%rax),%xmm0 - 423787: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42378b: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42378f: 85 d2 test %edx,%edx - 423791: 75 11 jne 4237a4 - 423793: eb bb jmp 423750 - 423795: 90 nop - 423796: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42379d: 00 00 00 - 4237a0: 48 83 c0 40 add $0x40,%rax - 4237a4: 66 0f ef c0 pxor %xmm0,%xmm0 - 4237a8: 66 0f 74 00 pcmpeqb (%rax),%xmm0 - 4237ac: 66 0f 74 48 10 pcmpeqb 0x10(%rax),%xmm1 - 4237b1: 66 0f 74 50 20 pcmpeqb 0x20(%rax),%xmm2 - 4237b6: 66 0f 74 58 30 pcmpeqb 0x30(%rax),%xmm3 - 4237bb: 66 0f d7 f0 pmovmskb %xmm0,%esi - 4237bf: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4237c3: 66 44 0f d7 c2 pmovmskb %xmm2,%r8d - 4237c8: 66 0f d7 cb pmovmskb %xmm3,%ecx - 4237cc: 48 c1 e2 10 shl $0x10,%rdx - 4237d0: 48 c1 e1 10 shl $0x10,%rcx - 4237d4: 48 09 f2 or %rsi,%rdx - 4237d7: 4c 09 c1 or %r8,%rcx - 4237da: 48 c1 e1 20 shl $0x20,%rcx - 4237de: 48 09 ca or %rcx,%rdx - 4237e1: 48 0f bc d2 bsf %rdx,%rdx - 4237e5: 48 01 d0 add %rdx,%rax - 4237e8: 48 29 f8 sub %rdi,%rax - 4237eb: c3 retq - 4237ec: 0f 1f 40 00 nopl 0x0(%rax) - -00000000004237f0 : - 4237f0: 48 85 d2 test %rdx,%rdx - 4237f3: 0f 84 2b 18 00 00 je 425024 - 4237f9: 48 83 fa 01 cmp $0x1,%rdx - 4237fd: 0f 84 2d 18 00 00 je 425030 - 423803: 49 89 d3 mov %rdx,%r11 - 423806: 89 f1 mov %esi,%ecx - 423808: 89 f8 mov %edi,%eax - 42380a: 48 83 e1 3f and $0x3f,%rcx - 42380e: 48 83 e0 3f and $0x3f,%rax - 423812: 83 f9 30 cmp $0x30,%ecx - 423815: 77 49 ja 423860 - 423817: 83 f8 30 cmp $0x30,%eax - 42381a: 77 44 ja 423860 - 42381c: 66 0f 12 0f movlpd (%rdi),%xmm1 - 423820: 66 0f 12 16 movlpd (%rsi),%xmm2 - 423824: 66 0f 16 4f 08 movhpd 0x8(%rdi),%xmm1 - 423829: 66 0f 16 56 08 movhpd 0x8(%rsi),%xmm2 - 42382e: 66 0f ef c0 pxor %xmm0,%xmm0 - 423832: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 423836: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42383a: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42383e: 66 0f d7 d1 pmovmskb %xmm1,%edx - 423842: 81 ea ff ff 00 00 sub $0xffff,%edx - 423848: 0f 85 c2 17 00 00 jne 425010 - 42384e: 49 83 eb 10 sub $0x10,%r11 - 423852: 0f 86 cc 17 00 00 jbe 425024 - 423858: 48 83 c6 10 add $0x10,%rsi - 42385c: 48 83 c7 10 add $0x10,%rdi - 423860: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 423864: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 423868: ba ff ff 00 00 mov $0xffff,%edx - 42386d: 45 31 c0 xor %r8d,%r8d - 423870: 83 e1 0f and $0xf,%ecx - 423873: 83 e0 0f and $0xf,%eax - 423876: 39 c1 cmp %eax,%ecx - 423878: 74 26 je 4238a0 - 42387a: 77 07 ja 423883 - 42387c: 41 89 d0 mov %edx,%r8d - 42387f: 91 xchg %eax,%ecx - 423880: 48 87 f7 xchg %rsi,%rdi - 423883: 4c 8d 48 0f lea 0xf(%rax),%r9 - 423887: 49 29 c9 sub %rcx,%r9 - 42388a: 4c 8d 15 df f7 07 00 lea 0x7f7df(%rip),%r10 # 4a3070 <__func__.10972+0xb0> - 423891: 4f 63 0c 8a movslq (%r10,%r9,4),%r9 - 423895: 4f 8d 14 0a lea (%r10,%r9,1),%r10 - 423899: 41 ff e2 jmpq *%r10 - 42389c: 0f 1f 40 00 nopl 0x0(%rax) - 4238a0: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4238a4: 66 0f ef c0 pxor %xmm0,%xmm0 - 4238a8: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4238ac: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 4238b0: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4238b4: 66 44 0f d7 c9 pmovmskb %xmm1,%r9d - 4238b9: d3 ea shr %cl,%edx - 4238bb: 41 d3 e9 shr %cl,%r9d - 4238be: 44 29 ca sub %r9d,%edx - 4238c1: 0f 85 2e 17 00 00 jne 424ff5 - 4238c7: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 - 4238cc: 4d 39 cb cmp %r9,%r11 - 4238cf: 0f 82 4f 17 00 00 jb 425024 - 4238d5: 4d 85 c9 test %r9,%r9 - 4238d8: 0f 84 46 17 00 00 je 425024 - 4238de: 4d 89 cb mov %r9,%r11 - 4238e1: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4238e8: 49 c7 c1 10 00 00 00 mov $0x10,%r9 - 4238ef: 66 0f ef c0 pxor %xmm0,%xmm0 - 4238f3: 0f 1f 00 nopl (%rax) - 4238f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4238fd: 00 00 00 - 423900: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 423905: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42390a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42390e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 423912: 66 0f f8 c8 psubb %xmm0,%xmm1 - 423916: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42391a: 81 ea ff ff 00 00 sub $0xffff,%edx - 423920: 0f 85 ca 16 00 00 jne 424ff0 - 423926: 49 83 eb 10 sub $0x10,%r11 - 42392a: 0f 86 f4 16 00 00 jbe 425024 - 423930: 48 83 c1 10 add $0x10,%rcx - 423934: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 423939: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42393e: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 423942: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 423946: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42394a: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42394e: 81 ea ff ff 00 00 sub $0xffff,%edx - 423954: 0f 85 96 16 00 00 jne 424ff0 - 42395a: 49 83 eb 10 sub $0x10,%r11 - 42395e: 0f 86 c0 16 00 00 jbe 425024 - 423964: 48 83 c1 10 add $0x10,%rcx - 423968: eb 96 jmp 423900 - 42396a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 423970: 66 0f ef c0 pxor %xmm0,%xmm0 - 423974: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 423978: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42397c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 423980: 66 0f 73 fa 0f pslldq $0xf,%xmm2 - 423985: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 423989: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42398d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 423992: d3 ea shr %cl,%edx - 423994: 41 d3 e9 shr %cl,%r9d - 423997: 44 29 ca sub %r9d,%edx - 42399a: 0f 85 55 16 00 00 jne 424ff5 - 4239a0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 4239a4: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 - 4239a9: 4d 39 cb cmp %r9,%r11 - 4239ac: 0f 82 72 16 00 00 jb 425024 - 4239b2: 4d 85 c9 test %r9,%r9 - 4239b5: 0f 84 69 16 00 00 je 425024 - 4239bb: 4d 89 cb mov %r9,%r11 - 4239be: 66 0f ef c0 pxor %xmm0,%xmm0 - 4239c2: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4239c9: 41 b9 01 00 00 00 mov $0x1,%r9d - 4239cf: 4c 8d 57 01 lea 0x1(%rdi),%r10 - 4239d3: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 4239da: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4239e1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4239e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4239ed: 00 00 00 - 4239f0: 49 83 c2 10 add $0x10,%r10 - 4239f4: 0f 8f a6 00 00 00 jg 423aa0 - 4239fa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4239ff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 423a04: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 423a08: 66 0f 73 db 01 psrldq $0x1,%xmm3 - 423a0d: 66 0f 73 fa 0f pslldq $0xf,%xmm2 - 423a12: 66 0f eb d3 por %xmm3,%xmm2 - 423a16: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 423a1a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 423a1e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 423a22: 66 0f d7 d1 pmovmskb %xmm1,%edx - 423a26: 81 ea ff ff 00 00 sub $0xffff,%edx - 423a2c: 0f 85 be 15 00 00 jne 424ff0 - 423a32: 49 83 eb 10 sub $0x10,%r11 - 423a36: 0f 86 e8 15 00 00 jbe 425024 - 423a3c: 48 83 c1 10 add $0x10,%rcx - 423a40: 66 0f 6f dc movdqa %xmm4,%xmm3 - 423a44: 49 83 c2 10 add $0x10,%r10 - 423a48: 7f 56 jg 423aa0 - 423a4a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 423a4f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 423a54: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 423a58: 66 0f 73 db 01 psrldq $0x1,%xmm3 - 423a5d: 66 0f 73 fa 0f pslldq $0xf,%xmm2 - 423a62: 66 0f eb d3 por %xmm3,%xmm2 - 423a66: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 423a6a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 423a6e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 423a72: 66 0f d7 d1 pmovmskb %xmm1,%edx - 423a76: 81 ea ff ff 00 00 sub $0xffff,%edx - 423a7c: 0f 85 6e 15 00 00 jne 424ff0 - 423a82: 49 83 eb 10 sub $0x10,%r11 - 423a86: 0f 86 98 15 00 00 jbe 425024 - 423a8c: 48 83 c1 10 add $0x10,%rcx - 423a90: 66 0f 6f dc movdqa %xmm4,%xmm3 - 423a94: e9 57 ff ff ff jmpq 4239f0 - 423a99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 423aa0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 423aa4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 423aa8: f7 c2 fe ff 00 00 test $0xfffe,%edx - 423aae: 75 20 jne 423ad0 - 423ab0: 49 83 fb 0f cmp $0xf,%r11 - 423ab4: 76 1a jbe 423ad0 - 423ab6: 66 0f ef c0 pxor %xmm0,%xmm0 - 423aba: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 423ac1: e9 34 ff ff ff jmpq 4239fa - 423ac6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 423acd: 00 00 00 - 423ad0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 423ad5: 66 0f 73 d8 01 psrldq $0x1,%xmm0 - 423ada: 66 0f 73 db 01 psrldq $0x1,%xmm3 - 423adf: e9 fc 14 00 00 jmpq 424fe0 - 423ae4: 66 90 xchg %ax,%ax - 423ae6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 423aed: 00 00 00 - 423af0: 66 0f ef c0 pxor %xmm0,%xmm0 - 423af4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 423af8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 423afc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 423b00: 66 0f 73 fa 0e pslldq $0xe,%xmm2 - 423b05: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 423b09: 66 0f f8 d0 psubb %xmm0,%xmm2 - 423b0d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 423b12: d3 ea shr %cl,%edx - 423b14: 41 d3 e9 shr %cl,%r9d - 423b17: 44 29 ca sub %r9d,%edx - 423b1a: 0f 85 d5 14 00 00 jne 424ff5 - 423b20: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 423b24: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 - 423b29: 4d 39 cb cmp %r9,%r11 - 423b2c: 0f 82 f2 14 00 00 jb 425024 - 423b32: 4d 85 c9 test %r9,%r9 - 423b35: 0f 84 e9 14 00 00 je 425024 - 423b3b: 4d 89 cb mov %r9,%r11 - 423b3e: 66 0f ef c0 pxor %xmm0,%xmm0 - 423b42: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 423b49: 41 b9 02 00 00 00 mov $0x2,%r9d - 423b4f: 4c 8d 57 02 lea 0x2(%rdi),%r10 - 423b53: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 423b5a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 423b61: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 423b66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 423b6d: 00 00 00 - 423b70: 49 83 c2 10 add $0x10,%r10 - 423b74: 0f 8f a6 00 00 00 jg 423c20 - 423b7a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 423b7f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 423b84: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 423b88: 66 0f 73 db 02 psrldq $0x2,%xmm3 - 423b8d: 66 0f 73 fa 0e pslldq $0xe,%xmm2 - 423b92: 66 0f eb d3 por %xmm3,%xmm2 - 423b96: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 423b9a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 423b9e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 423ba2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 423ba6: 81 ea ff ff 00 00 sub $0xffff,%edx - 423bac: 0f 85 3e 14 00 00 jne 424ff0 - 423bb2: 49 83 eb 10 sub $0x10,%r11 - 423bb6: 0f 86 68 14 00 00 jbe 425024 - 423bbc: 48 83 c1 10 add $0x10,%rcx - 423bc0: 66 0f 6f dc movdqa %xmm4,%xmm3 - 423bc4: 49 83 c2 10 add $0x10,%r10 - 423bc8: 7f 56 jg 423c20 - 423bca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 423bcf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 423bd4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 423bd8: 66 0f 73 db 02 psrldq $0x2,%xmm3 - 423bdd: 66 0f 73 fa 0e pslldq $0xe,%xmm2 - 423be2: 66 0f eb d3 por %xmm3,%xmm2 - 423be6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 423bea: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 423bee: 66 0f f8 c8 psubb %xmm0,%xmm1 - 423bf2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 423bf6: 81 ea ff ff 00 00 sub $0xffff,%edx - 423bfc: 0f 85 ee 13 00 00 jne 424ff0 - 423c02: 49 83 eb 10 sub $0x10,%r11 - 423c06: 0f 86 18 14 00 00 jbe 425024 - 423c0c: 48 83 c1 10 add $0x10,%rcx - 423c10: 66 0f 6f dc movdqa %xmm4,%xmm3 - 423c14: e9 57 ff ff ff jmpq 423b70 - 423c19: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 423c20: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 423c24: 66 0f d7 d0 pmovmskb %xmm0,%edx - 423c28: f7 c2 fc ff 00 00 test $0xfffc,%edx - 423c2e: 75 20 jne 423c50 - 423c30: 49 83 fb 0e cmp $0xe,%r11 - 423c34: 76 1a jbe 423c50 - 423c36: 66 0f ef c0 pxor %xmm0,%xmm0 - 423c3a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 423c41: e9 34 ff ff ff jmpq 423b7a - 423c46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 423c4d: 00 00 00 - 423c50: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 423c55: 66 0f 73 d8 02 psrldq $0x2,%xmm0 - 423c5a: 66 0f 73 db 02 psrldq $0x2,%xmm3 - 423c5f: e9 7c 13 00 00 jmpq 424fe0 - 423c64: 66 90 xchg %ax,%ax - 423c66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 423c6d: 00 00 00 - 423c70: 66 0f ef c0 pxor %xmm0,%xmm0 - 423c74: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 423c78: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 423c7c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 423c80: 66 0f 73 fa 0d pslldq $0xd,%xmm2 - 423c85: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 423c89: 66 0f f8 d0 psubb %xmm0,%xmm2 - 423c8d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 423c92: d3 ea shr %cl,%edx - 423c94: 41 d3 e9 shr %cl,%r9d - 423c97: 44 29 ca sub %r9d,%edx - 423c9a: 0f 85 55 13 00 00 jne 424ff5 - 423ca0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 423ca4: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 - 423ca9: 4d 39 cb cmp %r9,%r11 - 423cac: 0f 82 72 13 00 00 jb 425024 - 423cb2: 4d 85 c9 test %r9,%r9 - 423cb5: 0f 84 69 13 00 00 je 425024 - 423cbb: 4d 89 cb mov %r9,%r11 - 423cbe: 66 0f ef c0 pxor %xmm0,%xmm0 - 423cc2: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 423cc9: 41 b9 03 00 00 00 mov $0x3,%r9d - 423ccf: 4c 8d 57 03 lea 0x3(%rdi),%r10 - 423cd3: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 423cda: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 423ce1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 423ce6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 423ced: 00 00 00 - 423cf0: 49 83 c2 10 add $0x10,%r10 - 423cf4: 0f 8f a6 00 00 00 jg 423da0 - 423cfa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 423cff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 423d04: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 423d08: 66 0f 73 db 03 psrldq $0x3,%xmm3 - 423d0d: 66 0f 73 fa 0d pslldq $0xd,%xmm2 - 423d12: 66 0f eb d3 por %xmm3,%xmm2 - 423d16: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 423d1a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 423d1e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 423d22: 66 0f d7 d1 pmovmskb %xmm1,%edx - 423d26: 81 ea ff ff 00 00 sub $0xffff,%edx - 423d2c: 0f 85 be 12 00 00 jne 424ff0 - 423d32: 49 83 eb 10 sub $0x10,%r11 - 423d36: 0f 86 e8 12 00 00 jbe 425024 - 423d3c: 48 83 c1 10 add $0x10,%rcx - 423d40: 66 0f 6f dc movdqa %xmm4,%xmm3 - 423d44: 49 83 c2 10 add $0x10,%r10 - 423d48: 7f 56 jg 423da0 - 423d4a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 423d4f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 423d54: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 423d58: 66 0f 73 db 03 psrldq $0x3,%xmm3 - 423d5d: 66 0f 73 fa 0d pslldq $0xd,%xmm2 - 423d62: 66 0f eb d3 por %xmm3,%xmm2 - 423d66: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 423d6a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 423d6e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 423d72: 66 0f d7 d1 pmovmskb %xmm1,%edx - 423d76: 81 ea ff ff 00 00 sub $0xffff,%edx - 423d7c: 0f 85 6e 12 00 00 jne 424ff0 - 423d82: 49 83 eb 10 sub $0x10,%r11 - 423d86: 0f 86 98 12 00 00 jbe 425024 - 423d8c: 48 83 c1 10 add $0x10,%rcx - 423d90: 66 0f 6f dc movdqa %xmm4,%xmm3 - 423d94: e9 57 ff ff ff jmpq 423cf0 - 423d99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 423da0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 423da4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 423da8: f7 c2 f8 ff 00 00 test $0xfff8,%edx - 423dae: 75 20 jne 423dd0 - 423db0: 49 83 fb 0d cmp $0xd,%r11 - 423db4: 76 1a jbe 423dd0 - 423db6: 66 0f ef c0 pxor %xmm0,%xmm0 - 423dba: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 423dc1: e9 34 ff ff ff jmpq 423cfa - 423dc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 423dcd: 00 00 00 - 423dd0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 423dd5: 66 0f 73 d8 03 psrldq $0x3,%xmm0 - 423dda: 66 0f 73 db 03 psrldq $0x3,%xmm3 - 423ddf: e9 fc 11 00 00 jmpq 424fe0 - 423de4: 66 90 xchg %ax,%ax - 423de6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 423ded: 00 00 00 - 423df0: 66 0f ef c0 pxor %xmm0,%xmm0 - 423df4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 423df8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 423dfc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 423e00: 66 0f 73 fa 0c pslldq $0xc,%xmm2 - 423e05: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 423e09: 66 0f f8 d0 psubb %xmm0,%xmm2 - 423e0d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 423e12: d3 ea shr %cl,%edx - 423e14: 41 d3 e9 shr %cl,%r9d - 423e17: 44 29 ca sub %r9d,%edx - 423e1a: 0f 85 d5 11 00 00 jne 424ff5 - 423e20: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 423e24: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 - 423e29: 4d 39 cb cmp %r9,%r11 - 423e2c: 0f 82 f2 11 00 00 jb 425024 - 423e32: 4d 85 c9 test %r9,%r9 - 423e35: 0f 84 e9 11 00 00 je 425024 - 423e3b: 4d 89 cb mov %r9,%r11 - 423e3e: 66 0f ef c0 pxor %xmm0,%xmm0 - 423e42: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 423e49: 41 b9 04 00 00 00 mov $0x4,%r9d - 423e4f: 4c 8d 57 04 lea 0x4(%rdi),%r10 - 423e53: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 423e5a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 423e61: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 423e66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 423e6d: 00 00 00 - 423e70: 49 83 c2 10 add $0x10,%r10 - 423e74: 0f 8f a6 00 00 00 jg 423f20 - 423e7a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 423e7f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 423e84: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 423e88: 66 0f 73 db 04 psrldq $0x4,%xmm3 - 423e8d: 66 0f 73 fa 0c pslldq $0xc,%xmm2 - 423e92: 66 0f eb d3 por %xmm3,%xmm2 - 423e96: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 423e9a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 423e9e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 423ea2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 423ea6: 81 ea ff ff 00 00 sub $0xffff,%edx - 423eac: 0f 85 3e 11 00 00 jne 424ff0 - 423eb2: 49 83 eb 10 sub $0x10,%r11 - 423eb6: 0f 86 68 11 00 00 jbe 425024 - 423ebc: 48 83 c1 10 add $0x10,%rcx - 423ec0: 66 0f 6f dc movdqa %xmm4,%xmm3 - 423ec4: 49 83 c2 10 add $0x10,%r10 - 423ec8: 7f 56 jg 423f20 - 423eca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 423ecf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 423ed4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 423ed8: 66 0f 73 db 04 psrldq $0x4,%xmm3 - 423edd: 66 0f 73 fa 0c pslldq $0xc,%xmm2 - 423ee2: 66 0f eb d3 por %xmm3,%xmm2 - 423ee6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 423eea: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 423eee: 66 0f f8 c8 psubb %xmm0,%xmm1 - 423ef2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 423ef6: 81 ea ff ff 00 00 sub $0xffff,%edx - 423efc: 0f 85 ee 10 00 00 jne 424ff0 - 423f02: 49 83 eb 10 sub $0x10,%r11 - 423f06: 0f 86 18 11 00 00 jbe 425024 - 423f0c: 48 83 c1 10 add $0x10,%rcx - 423f10: 66 0f 6f dc movdqa %xmm4,%xmm3 - 423f14: e9 57 ff ff ff jmpq 423e70 - 423f19: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 423f20: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 423f24: 66 0f d7 d0 pmovmskb %xmm0,%edx - 423f28: f7 c2 f0 ff 00 00 test $0xfff0,%edx - 423f2e: 75 20 jne 423f50 - 423f30: 49 83 fb 0c cmp $0xc,%r11 - 423f34: 76 1a jbe 423f50 - 423f36: 66 0f ef c0 pxor %xmm0,%xmm0 - 423f3a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 423f41: e9 34 ff ff ff jmpq 423e7a - 423f46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 423f4d: 00 00 00 - 423f50: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 423f55: 66 0f 73 d8 04 psrldq $0x4,%xmm0 - 423f5a: 66 0f 73 db 04 psrldq $0x4,%xmm3 - 423f5f: e9 7c 10 00 00 jmpq 424fe0 - 423f64: 66 90 xchg %ax,%ax - 423f66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 423f6d: 00 00 00 - 423f70: 66 0f ef c0 pxor %xmm0,%xmm0 - 423f74: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 423f78: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 423f7c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 423f80: 66 0f 73 fa 0b pslldq $0xb,%xmm2 - 423f85: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 423f89: 66 0f f8 d0 psubb %xmm0,%xmm2 - 423f8d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 423f92: d3 ea shr %cl,%edx - 423f94: 41 d3 e9 shr %cl,%r9d - 423f97: 44 29 ca sub %r9d,%edx - 423f9a: 0f 85 55 10 00 00 jne 424ff5 - 423fa0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 423fa4: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 - 423fa9: 4d 39 cb cmp %r9,%r11 - 423fac: 0f 82 72 10 00 00 jb 425024 - 423fb2: 4d 85 c9 test %r9,%r9 - 423fb5: 0f 84 69 10 00 00 je 425024 - 423fbb: 4d 89 cb mov %r9,%r11 - 423fbe: 66 0f ef c0 pxor %xmm0,%xmm0 - 423fc2: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 423fc9: 41 b9 05 00 00 00 mov $0x5,%r9d - 423fcf: 4c 8d 57 05 lea 0x5(%rdi),%r10 - 423fd3: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 423fda: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 423fe1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 423fe6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 423fed: 00 00 00 - 423ff0: 49 83 c2 10 add $0x10,%r10 - 423ff4: 0f 8f a6 00 00 00 jg 4240a0 - 423ffa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 423fff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424004: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424008: 66 0f 73 db 05 psrldq $0x5,%xmm3 - 42400d: 66 0f 73 fa 0b pslldq $0xb,%xmm2 - 424012: 66 0f eb d3 por %xmm3,%xmm2 - 424016: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42401a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42401e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424022: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424026: 81 ea ff ff 00 00 sub $0xffff,%edx - 42402c: 0f 85 be 0f 00 00 jne 424ff0 - 424032: 49 83 eb 10 sub $0x10,%r11 - 424036: 0f 86 e8 0f 00 00 jbe 425024 - 42403c: 48 83 c1 10 add $0x10,%rcx - 424040: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424044: 49 83 c2 10 add $0x10,%r10 - 424048: 7f 56 jg 4240a0 - 42404a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42404f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424054: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424058: 66 0f 73 db 05 psrldq $0x5,%xmm3 - 42405d: 66 0f 73 fa 0b pslldq $0xb,%xmm2 - 424062: 66 0f eb d3 por %xmm3,%xmm2 - 424066: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42406a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42406e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424072: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424076: 81 ea ff ff 00 00 sub $0xffff,%edx - 42407c: 0f 85 6e 0f 00 00 jne 424ff0 - 424082: 49 83 eb 10 sub $0x10,%r11 - 424086: 0f 86 98 0f 00 00 jbe 425024 - 42408c: 48 83 c1 10 add $0x10,%rcx - 424090: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424094: e9 57 ff ff ff jmpq 423ff0 - 424099: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4240a0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 4240a4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4240a8: f7 c2 e0 ff 00 00 test $0xffe0,%edx - 4240ae: 75 20 jne 4240d0 - 4240b0: 49 83 fb 0b cmp $0xb,%r11 - 4240b4: 76 1a jbe 4240d0 - 4240b6: 66 0f ef c0 pxor %xmm0,%xmm0 - 4240ba: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4240c1: e9 34 ff ff ff jmpq 423ffa - 4240c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4240cd: 00 00 00 - 4240d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4240d5: 66 0f 73 d8 05 psrldq $0x5,%xmm0 - 4240da: 66 0f 73 db 05 psrldq $0x5,%xmm3 - 4240df: e9 fc 0e 00 00 jmpq 424fe0 - 4240e4: 66 90 xchg %ax,%ax - 4240e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4240ed: 00 00 00 - 4240f0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4240f4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4240f8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4240fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424100: 66 0f 73 fa 0a pslldq $0xa,%xmm2 - 424105: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 424109: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42410d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 424112: d3 ea shr %cl,%edx - 424114: 41 d3 e9 shr %cl,%r9d - 424117: 44 29 ca sub %r9d,%edx - 42411a: 0f 85 d5 0e 00 00 jne 424ff5 - 424120: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 424124: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 - 424129: 4d 39 cb cmp %r9,%r11 - 42412c: 0f 82 f2 0e 00 00 jb 425024 - 424132: 4d 85 c9 test %r9,%r9 - 424135: 0f 84 e9 0e 00 00 je 425024 - 42413b: 4d 89 cb mov %r9,%r11 - 42413e: 66 0f ef c0 pxor %xmm0,%xmm0 - 424142: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 424149: 41 b9 06 00 00 00 mov $0x6,%r9d - 42414f: 4c 8d 57 06 lea 0x6(%rdi),%r10 - 424153: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42415a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 424161: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 424166: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42416d: 00 00 00 - 424170: 49 83 c2 10 add $0x10,%r10 - 424174: 0f 8f a6 00 00 00 jg 424220 - 42417a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42417f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424184: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424188: 66 0f 73 db 06 psrldq $0x6,%xmm3 - 42418d: 66 0f 73 fa 0a pslldq $0xa,%xmm2 - 424192: 66 0f eb d3 por %xmm3,%xmm2 - 424196: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42419a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42419e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4241a2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4241a6: 81 ea ff ff 00 00 sub $0xffff,%edx - 4241ac: 0f 85 3e 0e 00 00 jne 424ff0 - 4241b2: 49 83 eb 10 sub $0x10,%r11 - 4241b6: 0f 86 68 0e 00 00 jbe 425024 - 4241bc: 48 83 c1 10 add $0x10,%rcx - 4241c0: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4241c4: 49 83 c2 10 add $0x10,%r10 - 4241c8: 7f 56 jg 424220 - 4241ca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4241cf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4241d4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4241d8: 66 0f 73 db 06 psrldq $0x6,%xmm3 - 4241dd: 66 0f 73 fa 0a pslldq $0xa,%xmm2 - 4241e2: 66 0f eb d3 por %xmm3,%xmm2 - 4241e6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4241ea: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4241ee: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4241f2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4241f6: 81 ea ff ff 00 00 sub $0xffff,%edx - 4241fc: 0f 85 ee 0d 00 00 jne 424ff0 - 424202: 49 83 eb 10 sub $0x10,%r11 - 424206: 0f 86 18 0e 00 00 jbe 425024 - 42420c: 48 83 c1 10 add $0x10,%rcx - 424210: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424214: e9 57 ff ff ff jmpq 424170 - 424219: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 424220: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 424224: 66 0f d7 d0 pmovmskb %xmm0,%edx - 424228: f7 c2 c0 ff 00 00 test $0xffc0,%edx - 42422e: 75 20 jne 424250 - 424230: 49 83 fb 0a cmp $0xa,%r11 - 424234: 76 1a jbe 424250 - 424236: 66 0f ef c0 pxor %xmm0,%xmm0 - 42423a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 424241: e9 34 ff ff ff jmpq 42417a - 424246: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42424d: 00 00 00 - 424250: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 424255: 66 0f 73 d8 06 psrldq $0x6,%xmm0 - 42425a: 66 0f 73 db 06 psrldq $0x6,%xmm3 - 42425f: e9 7c 0d 00 00 jmpq 424fe0 - 424264: 66 90 xchg %ax,%ax - 424266: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42426d: 00 00 00 - 424270: 66 0f ef c0 pxor %xmm0,%xmm0 - 424274: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 424278: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42427c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424280: 66 0f 73 fa 09 pslldq $0x9,%xmm2 - 424285: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 424289: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42428d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 424292: d3 ea shr %cl,%edx - 424294: 41 d3 e9 shr %cl,%r9d - 424297: 44 29 ca sub %r9d,%edx - 42429a: 0f 85 55 0d 00 00 jne 424ff5 - 4242a0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 4242a4: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 - 4242a9: 4d 39 cb cmp %r9,%r11 - 4242ac: 0f 82 72 0d 00 00 jb 425024 - 4242b2: 4d 85 c9 test %r9,%r9 - 4242b5: 0f 84 69 0d 00 00 je 425024 - 4242bb: 4d 89 cb mov %r9,%r11 - 4242be: 66 0f ef c0 pxor %xmm0,%xmm0 - 4242c2: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4242c9: 41 b9 07 00 00 00 mov $0x7,%r9d - 4242cf: 4c 8d 57 07 lea 0x7(%rdi),%r10 - 4242d3: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 4242da: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4242e1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4242e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4242ed: 00 00 00 - 4242f0: 49 83 c2 10 add $0x10,%r10 - 4242f4: 0f 8f a6 00 00 00 jg 4243a0 - 4242fa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4242ff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424304: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424308: 66 0f 73 db 07 psrldq $0x7,%xmm3 - 42430d: 66 0f 73 fa 09 pslldq $0x9,%xmm2 - 424312: 66 0f eb d3 por %xmm3,%xmm2 - 424316: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42431a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42431e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424322: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424326: 81 ea ff ff 00 00 sub $0xffff,%edx - 42432c: 0f 85 be 0c 00 00 jne 424ff0 - 424332: 49 83 eb 10 sub $0x10,%r11 - 424336: 0f 86 e8 0c 00 00 jbe 425024 - 42433c: 48 83 c1 10 add $0x10,%rcx - 424340: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424344: 49 83 c2 10 add $0x10,%r10 - 424348: 7f 56 jg 4243a0 - 42434a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42434f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424354: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424358: 66 0f 73 db 07 psrldq $0x7,%xmm3 - 42435d: 66 0f 73 fa 09 pslldq $0x9,%xmm2 - 424362: 66 0f eb d3 por %xmm3,%xmm2 - 424366: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42436a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42436e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424372: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424376: 81 ea ff ff 00 00 sub $0xffff,%edx - 42437c: 0f 85 6e 0c 00 00 jne 424ff0 - 424382: 49 83 eb 10 sub $0x10,%r11 - 424386: 0f 86 98 0c 00 00 jbe 425024 - 42438c: 48 83 c1 10 add $0x10,%rcx - 424390: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424394: e9 57 ff ff ff jmpq 4242f0 - 424399: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4243a0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 4243a4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4243a8: f7 c2 80 ff 00 00 test $0xff80,%edx - 4243ae: 75 20 jne 4243d0 - 4243b0: 49 83 fb 09 cmp $0x9,%r11 - 4243b4: 76 1a jbe 4243d0 - 4243b6: 66 0f ef c0 pxor %xmm0,%xmm0 - 4243ba: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4243c1: e9 34 ff ff ff jmpq 4242fa - 4243c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4243cd: 00 00 00 - 4243d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4243d5: 66 0f 73 d8 07 psrldq $0x7,%xmm0 - 4243da: 66 0f 73 db 07 psrldq $0x7,%xmm3 - 4243df: e9 fc 0b 00 00 jmpq 424fe0 - 4243e4: 66 90 xchg %ax,%ax - 4243e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4243ed: 00 00 00 - 4243f0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4243f4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4243f8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4243fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424400: 66 0f 73 fa 08 pslldq $0x8,%xmm2 - 424405: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 424409: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42440d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 424412: d3 ea shr %cl,%edx - 424414: 41 d3 e9 shr %cl,%r9d - 424417: 44 29 ca sub %r9d,%edx - 42441a: 0f 85 d5 0b 00 00 jne 424ff5 - 424420: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 424424: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 - 424429: 4d 39 cb cmp %r9,%r11 - 42442c: 0f 82 f2 0b 00 00 jb 425024 - 424432: 4d 85 c9 test %r9,%r9 - 424435: 0f 84 e9 0b 00 00 je 425024 - 42443b: 4d 89 cb mov %r9,%r11 - 42443e: 66 0f ef c0 pxor %xmm0,%xmm0 - 424442: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 424449: 41 b9 08 00 00 00 mov $0x8,%r9d - 42444f: 4c 8d 57 08 lea 0x8(%rdi),%r10 - 424453: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42445a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 424461: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 424466: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42446d: 00 00 00 - 424470: 49 83 c2 10 add $0x10,%r10 - 424474: 0f 8f a6 00 00 00 jg 424520 - 42447a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42447f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424484: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424488: 66 0f 73 db 08 psrldq $0x8,%xmm3 - 42448d: 66 0f 73 fa 08 pslldq $0x8,%xmm2 - 424492: 66 0f eb d3 por %xmm3,%xmm2 - 424496: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42449a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42449e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4244a2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4244a6: 81 ea ff ff 00 00 sub $0xffff,%edx - 4244ac: 0f 85 3e 0b 00 00 jne 424ff0 - 4244b2: 49 83 eb 10 sub $0x10,%r11 - 4244b6: 0f 86 68 0b 00 00 jbe 425024 - 4244bc: 48 83 c1 10 add $0x10,%rcx - 4244c0: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4244c4: 49 83 c2 10 add $0x10,%r10 - 4244c8: 7f 56 jg 424520 - 4244ca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4244cf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4244d4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4244d8: 66 0f 73 db 08 psrldq $0x8,%xmm3 - 4244dd: 66 0f 73 fa 08 pslldq $0x8,%xmm2 - 4244e2: 66 0f eb d3 por %xmm3,%xmm2 - 4244e6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4244ea: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4244ee: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4244f2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4244f6: 81 ea ff ff 00 00 sub $0xffff,%edx - 4244fc: 0f 85 ee 0a 00 00 jne 424ff0 - 424502: 49 83 eb 10 sub $0x10,%r11 - 424506: 0f 86 18 0b 00 00 jbe 425024 - 42450c: 48 83 c1 10 add $0x10,%rcx - 424510: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424514: e9 57 ff ff ff jmpq 424470 - 424519: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 424520: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 424524: 66 0f d7 d0 pmovmskb %xmm0,%edx - 424528: f7 c2 00 ff 00 00 test $0xff00,%edx - 42452e: 75 20 jne 424550 - 424530: 49 83 fb 08 cmp $0x8,%r11 - 424534: 76 1a jbe 424550 - 424536: 66 0f ef c0 pxor %xmm0,%xmm0 - 42453a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 424541: e9 34 ff ff ff jmpq 42447a - 424546: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42454d: 00 00 00 - 424550: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 424555: 66 0f 73 d8 08 psrldq $0x8,%xmm0 - 42455a: 66 0f 73 db 08 psrldq $0x8,%xmm3 - 42455f: e9 7c 0a 00 00 jmpq 424fe0 - 424564: 66 90 xchg %ax,%ax - 424566: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42456d: 00 00 00 - 424570: 66 0f ef c0 pxor %xmm0,%xmm0 - 424574: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 424578: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42457c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424580: 66 0f 73 fa 07 pslldq $0x7,%xmm2 - 424585: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 424589: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42458d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 424592: d3 ea shr %cl,%edx - 424594: 41 d3 e9 shr %cl,%r9d - 424597: 44 29 ca sub %r9d,%edx - 42459a: 0f 85 55 0a 00 00 jne 424ff5 - 4245a0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 4245a4: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 - 4245a9: 4d 39 cb cmp %r9,%r11 - 4245ac: 0f 82 72 0a 00 00 jb 425024 - 4245b2: 4d 85 c9 test %r9,%r9 - 4245b5: 0f 84 69 0a 00 00 je 425024 - 4245bb: 4d 89 cb mov %r9,%r11 - 4245be: 66 0f ef c0 pxor %xmm0,%xmm0 - 4245c2: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4245c9: 41 b9 09 00 00 00 mov $0x9,%r9d - 4245cf: 4c 8d 57 09 lea 0x9(%rdi),%r10 - 4245d3: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 4245da: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4245e1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4245e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4245ed: 00 00 00 - 4245f0: 49 83 c2 10 add $0x10,%r10 - 4245f4: 0f 8f a6 00 00 00 jg 4246a0 - 4245fa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4245ff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424604: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424608: 66 0f 73 db 09 psrldq $0x9,%xmm3 - 42460d: 66 0f 73 fa 07 pslldq $0x7,%xmm2 - 424612: 66 0f eb d3 por %xmm3,%xmm2 - 424616: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42461a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42461e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424622: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424626: 81 ea ff ff 00 00 sub $0xffff,%edx - 42462c: 0f 85 be 09 00 00 jne 424ff0 - 424632: 49 83 eb 10 sub $0x10,%r11 - 424636: 0f 86 e8 09 00 00 jbe 425024 - 42463c: 48 83 c1 10 add $0x10,%rcx - 424640: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424644: 49 83 c2 10 add $0x10,%r10 - 424648: 7f 56 jg 4246a0 - 42464a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42464f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424654: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424658: 66 0f 73 db 09 psrldq $0x9,%xmm3 - 42465d: 66 0f 73 fa 07 pslldq $0x7,%xmm2 - 424662: 66 0f eb d3 por %xmm3,%xmm2 - 424666: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42466a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42466e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424672: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424676: 81 ea ff ff 00 00 sub $0xffff,%edx - 42467c: 0f 85 6e 09 00 00 jne 424ff0 - 424682: 49 83 eb 10 sub $0x10,%r11 - 424686: 0f 86 98 09 00 00 jbe 425024 - 42468c: 48 83 c1 10 add $0x10,%rcx - 424690: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424694: e9 57 ff ff ff jmpq 4245f0 - 424699: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4246a0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 4246a4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4246a8: f7 c2 00 fe 00 00 test $0xfe00,%edx - 4246ae: 75 20 jne 4246d0 - 4246b0: 49 83 fb 07 cmp $0x7,%r11 - 4246b4: 76 1a jbe 4246d0 - 4246b6: 66 0f ef c0 pxor %xmm0,%xmm0 - 4246ba: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4246c1: e9 34 ff ff ff jmpq 4245fa - 4246c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4246cd: 00 00 00 - 4246d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4246d5: 66 0f 73 d8 09 psrldq $0x9,%xmm0 - 4246da: 66 0f 73 db 09 psrldq $0x9,%xmm3 - 4246df: e9 fc 08 00 00 jmpq 424fe0 - 4246e4: 66 90 xchg %ax,%ax - 4246e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4246ed: 00 00 00 - 4246f0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4246f4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4246f8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4246fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424700: 66 0f 73 fa 06 pslldq $0x6,%xmm2 - 424705: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 424709: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42470d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 424712: d3 ea shr %cl,%edx - 424714: 41 d3 e9 shr %cl,%r9d - 424717: 44 29 ca sub %r9d,%edx - 42471a: 0f 85 d5 08 00 00 jne 424ff5 - 424720: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 424724: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 - 424729: 4d 39 cb cmp %r9,%r11 - 42472c: 0f 82 f2 08 00 00 jb 425024 - 424732: 4d 85 c9 test %r9,%r9 - 424735: 0f 84 e9 08 00 00 je 425024 - 42473b: 4d 89 cb mov %r9,%r11 - 42473e: 66 0f ef c0 pxor %xmm0,%xmm0 - 424742: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 424749: 41 b9 0a 00 00 00 mov $0xa,%r9d - 42474f: 4c 8d 57 0a lea 0xa(%rdi),%r10 - 424753: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42475a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 424761: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 424766: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42476d: 00 00 00 - 424770: 49 83 c2 10 add $0x10,%r10 - 424774: 0f 8f a6 00 00 00 jg 424820 - 42477a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42477f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424784: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424788: 66 0f 73 db 0a psrldq $0xa,%xmm3 - 42478d: 66 0f 73 fa 06 pslldq $0x6,%xmm2 - 424792: 66 0f eb d3 por %xmm3,%xmm2 - 424796: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42479a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42479e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4247a2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4247a6: 81 ea ff ff 00 00 sub $0xffff,%edx - 4247ac: 0f 85 3e 08 00 00 jne 424ff0 - 4247b2: 49 83 eb 10 sub $0x10,%r11 - 4247b6: 0f 86 68 08 00 00 jbe 425024 - 4247bc: 48 83 c1 10 add $0x10,%rcx - 4247c0: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4247c4: 49 83 c2 10 add $0x10,%r10 - 4247c8: 7f 56 jg 424820 - 4247ca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4247cf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4247d4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4247d8: 66 0f 73 db 0a psrldq $0xa,%xmm3 - 4247dd: 66 0f 73 fa 06 pslldq $0x6,%xmm2 - 4247e2: 66 0f eb d3 por %xmm3,%xmm2 - 4247e6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4247ea: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4247ee: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4247f2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4247f6: 81 ea ff ff 00 00 sub $0xffff,%edx - 4247fc: 0f 85 ee 07 00 00 jne 424ff0 - 424802: 49 83 eb 10 sub $0x10,%r11 - 424806: 0f 86 18 08 00 00 jbe 425024 - 42480c: 48 83 c1 10 add $0x10,%rcx - 424810: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424814: e9 57 ff ff ff jmpq 424770 - 424819: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 424820: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 424824: 66 0f d7 d0 pmovmskb %xmm0,%edx - 424828: f7 c2 00 fc 00 00 test $0xfc00,%edx - 42482e: 75 20 jne 424850 - 424830: 49 83 fb 06 cmp $0x6,%r11 - 424834: 76 1a jbe 424850 - 424836: 66 0f ef c0 pxor %xmm0,%xmm0 - 42483a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 424841: e9 34 ff ff ff jmpq 42477a - 424846: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42484d: 00 00 00 - 424850: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 424855: 66 0f 73 d8 0a psrldq $0xa,%xmm0 - 42485a: 66 0f 73 db 0a psrldq $0xa,%xmm3 - 42485f: e9 7c 07 00 00 jmpq 424fe0 - 424864: 66 90 xchg %ax,%ax - 424866: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42486d: 00 00 00 - 424870: 66 0f ef c0 pxor %xmm0,%xmm0 - 424874: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 424878: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42487c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424880: 66 0f 73 fa 05 pslldq $0x5,%xmm2 - 424885: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 424889: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42488d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 424892: d3 ea shr %cl,%edx - 424894: 41 d3 e9 shr %cl,%r9d - 424897: 44 29 ca sub %r9d,%edx - 42489a: 0f 85 55 07 00 00 jne 424ff5 - 4248a0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 4248a4: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 - 4248a9: 4d 39 cb cmp %r9,%r11 - 4248ac: 0f 82 72 07 00 00 jb 425024 - 4248b2: 4d 85 c9 test %r9,%r9 - 4248b5: 0f 84 69 07 00 00 je 425024 - 4248bb: 4d 89 cb mov %r9,%r11 - 4248be: 66 0f ef c0 pxor %xmm0,%xmm0 - 4248c2: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4248c9: 41 b9 0b 00 00 00 mov $0xb,%r9d - 4248cf: 4c 8d 57 0b lea 0xb(%rdi),%r10 - 4248d3: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 4248da: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4248e1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4248e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4248ed: 00 00 00 - 4248f0: 49 83 c2 10 add $0x10,%r10 - 4248f4: 0f 8f a6 00 00 00 jg 4249a0 - 4248fa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4248ff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424904: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424908: 66 0f 73 db 0b psrldq $0xb,%xmm3 - 42490d: 66 0f 73 fa 05 pslldq $0x5,%xmm2 - 424912: 66 0f eb d3 por %xmm3,%xmm2 - 424916: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42491a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42491e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424922: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424926: 81 ea ff ff 00 00 sub $0xffff,%edx - 42492c: 0f 85 be 06 00 00 jne 424ff0 - 424932: 49 83 eb 10 sub $0x10,%r11 - 424936: 0f 86 e8 06 00 00 jbe 425024 - 42493c: 48 83 c1 10 add $0x10,%rcx - 424940: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424944: 49 83 c2 10 add $0x10,%r10 - 424948: 7f 56 jg 4249a0 - 42494a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42494f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424954: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424958: 66 0f 73 db 0b psrldq $0xb,%xmm3 - 42495d: 66 0f 73 fa 05 pslldq $0x5,%xmm2 - 424962: 66 0f eb d3 por %xmm3,%xmm2 - 424966: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42496a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42496e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424972: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424976: 81 ea ff ff 00 00 sub $0xffff,%edx - 42497c: 0f 85 6e 06 00 00 jne 424ff0 - 424982: 49 83 eb 10 sub $0x10,%r11 - 424986: 0f 86 98 06 00 00 jbe 425024 - 42498c: 48 83 c1 10 add $0x10,%rcx - 424990: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424994: e9 57 ff ff ff jmpq 4248f0 - 424999: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4249a0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 4249a4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4249a8: f7 c2 00 f8 00 00 test $0xf800,%edx - 4249ae: 75 20 jne 4249d0 - 4249b0: 49 83 fb 05 cmp $0x5,%r11 - 4249b4: 76 1a jbe 4249d0 - 4249b6: 66 0f ef c0 pxor %xmm0,%xmm0 - 4249ba: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4249c1: e9 34 ff ff ff jmpq 4248fa - 4249c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4249cd: 00 00 00 - 4249d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4249d5: 66 0f 73 d8 0b psrldq $0xb,%xmm0 - 4249da: 66 0f 73 db 0b psrldq $0xb,%xmm3 - 4249df: e9 fc 05 00 00 jmpq 424fe0 - 4249e4: 66 90 xchg %ax,%ax - 4249e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4249ed: 00 00 00 - 4249f0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4249f4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4249f8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4249fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424a00: 66 0f 73 fa 04 pslldq $0x4,%xmm2 - 424a05: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 424a09: 66 0f f8 d0 psubb %xmm0,%xmm2 - 424a0d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 424a12: d3 ea shr %cl,%edx - 424a14: 41 d3 e9 shr %cl,%r9d - 424a17: 44 29 ca sub %r9d,%edx - 424a1a: 0f 85 d5 05 00 00 jne 424ff5 - 424a20: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 424a24: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 - 424a29: 4d 39 cb cmp %r9,%r11 - 424a2c: 0f 82 f2 05 00 00 jb 425024 - 424a32: 4d 85 c9 test %r9,%r9 - 424a35: 0f 84 e9 05 00 00 je 425024 - 424a3b: 4d 89 cb mov %r9,%r11 - 424a3e: 66 0f ef c0 pxor %xmm0,%xmm0 - 424a42: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 424a49: 41 b9 0c 00 00 00 mov $0xc,%r9d - 424a4f: 4c 8d 57 0c lea 0xc(%rdi),%r10 - 424a53: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 424a5a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 424a61: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 424a66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 424a6d: 00 00 00 - 424a70: 49 83 c2 10 add $0x10,%r10 - 424a74: 0f 8f a6 00 00 00 jg 424b20 - 424a7a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 424a7f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424a84: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424a88: 66 0f 73 db 0c psrldq $0xc,%xmm3 - 424a8d: 66 0f 73 fa 04 pslldq $0x4,%xmm2 - 424a92: 66 0f eb d3 por %xmm3,%xmm2 - 424a96: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424a9a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 424a9e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424aa2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424aa6: 81 ea ff ff 00 00 sub $0xffff,%edx - 424aac: 0f 85 3e 05 00 00 jne 424ff0 - 424ab2: 49 83 eb 10 sub $0x10,%r11 - 424ab6: 0f 86 68 05 00 00 jbe 425024 - 424abc: 48 83 c1 10 add $0x10,%rcx - 424ac0: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424ac4: 49 83 c2 10 add $0x10,%r10 - 424ac8: 7f 56 jg 424b20 - 424aca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 424acf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424ad4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424ad8: 66 0f 73 db 0c psrldq $0xc,%xmm3 - 424add: 66 0f 73 fa 04 pslldq $0x4,%xmm2 - 424ae2: 66 0f eb d3 por %xmm3,%xmm2 - 424ae6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424aea: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 424aee: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424af2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424af6: 81 ea ff ff 00 00 sub $0xffff,%edx - 424afc: 0f 85 ee 04 00 00 jne 424ff0 - 424b02: 49 83 eb 10 sub $0x10,%r11 - 424b06: 0f 86 18 05 00 00 jbe 425024 - 424b0c: 48 83 c1 10 add $0x10,%rcx - 424b10: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424b14: e9 57 ff ff ff jmpq 424a70 - 424b19: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 424b20: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 424b24: 66 0f d7 d0 pmovmskb %xmm0,%edx - 424b28: f7 c2 00 f0 00 00 test $0xf000,%edx - 424b2e: 75 20 jne 424b50 - 424b30: 49 83 fb 04 cmp $0x4,%r11 - 424b34: 76 1a jbe 424b50 - 424b36: 66 0f ef c0 pxor %xmm0,%xmm0 - 424b3a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 424b41: e9 34 ff ff ff jmpq 424a7a - 424b46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 424b4d: 00 00 00 - 424b50: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 424b55: 66 0f 73 d8 0c psrldq $0xc,%xmm0 - 424b5a: 66 0f 73 db 0c psrldq $0xc,%xmm3 - 424b5f: e9 7c 04 00 00 jmpq 424fe0 - 424b64: 66 90 xchg %ax,%ax - 424b66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 424b6d: 00 00 00 - 424b70: 66 0f ef c0 pxor %xmm0,%xmm0 - 424b74: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 424b78: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 424b7c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424b80: 66 0f 73 fa 03 pslldq $0x3,%xmm2 - 424b85: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 424b89: 66 0f f8 d0 psubb %xmm0,%xmm2 - 424b8d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 424b92: d3 ea shr %cl,%edx - 424b94: 41 d3 e9 shr %cl,%r9d - 424b97: 44 29 ca sub %r9d,%edx - 424b9a: 0f 85 55 04 00 00 jne 424ff5 - 424ba0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 424ba4: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 - 424ba9: 4d 39 cb cmp %r9,%r11 - 424bac: 0f 82 72 04 00 00 jb 425024 - 424bb2: 4d 85 c9 test %r9,%r9 - 424bb5: 0f 84 69 04 00 00 je 425024 - 424bbb: 4d 89 cb mov %r9,%r11 - 424bbe: 66 0f ef c0 pxor %xmm0,%xmm0 - 424bc2: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 424bc9: 41 b9 0d 00 00 00 mov $0xd,%r9d - 424bcf: 4c 8d 57 0d lea 0xd(%rdi),%r10 - 424bd3: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 424bda: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 424be1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 424be6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 424bed: 00 00 00 - 424bf0: 49 83 c2 10 add $0x10,%r10 - 424bf4: 0f 8f a6 00 00 00 jg 424ca0 - 424bfa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 424bff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424c04: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424c08: 66 0f 73 db 0d psrldq $0xd,%xmm3 - 424c0d: 66 0f 73 fa 03 pslldq $0x3,%xmm2 - 424c12: 66 0f eb d3 por %xmm3,%xmm2 - 424c16: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424c1a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 424c1e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424c22: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424c26: 81 ea ff ff 00 00 sub $0xffff,%edx - 424c2c: 0f 85 be 03 00 00 jne 424ff0 - 424c32: 49 83 eb 10 sub $0x10,%r11 - 424c36: 0f 86 e8 03 00 00 jbe 425024 - 424c3c: 48 83 c1 10 add $0x10,%rcx - 424c40: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424c44: 49 83 c2 10 add $0x10,%r10 - 424c48: 7f 56 jg 424ca0 - 424c4a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 424c4f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424c54: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424c58: 66 0f 73 db 0d psrldq $0xd,%xmm3 - 424c5d: 66 0f 73 fa 03 pslldq $0x3,%xmm2 - 424c62: 66 0f eb d3 por %xmm3,%xmm2 - 424c66: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424c6a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 424c6e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424c72: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424c76: 81 ea ff ff 00 00 sub $0xffff,%edx - 424c7c: 0f 85 6e 03 00 00 jne 424ff0 - 424c82: 49 83 eb 10 sub $0x10,%r11 - 424c86: 0f 86 98 03 00 00 jbe 425024 - 424c8c: 48 83 c1 10 add $0x10,%rcx - 424c90: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424c94: e9 57 ff ff ff jmpq 424bf0 - 424c99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 424ca0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 424ca4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 424ca8: f7 c2 00 e0 00 00 test $0xe000,%edx - 424cae: 75 20 jne 424cd0 - 424cb0: 49 83 fb 03 cmp $0x3,%r11 - 424cb4: 76 1a jbe 424cd0 - 424cb6: 66 0f ef c0 pxor %xmm0,%xmm0 - 424cba: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 424cc1: e9 34 ff ff ff jmpq 424bfa - 424cc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 424ccd: 00 00 00 - 424cd0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 424cd5: 66 0f 73 d8 0d psrldq $0xd,%xmm0 - 424cda: 66 0f 73 db 0d psrldq $0xd,%xmm3 - 424cdf: e9 fc 02 00 00 jmpq 424fe0 - 424ce4: 66 90 xchg %ax,%ax - 424ce6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 424ced: 00 00 00 - 424cf0: 66 0f ef c0 pxor %xmm0,%xmm0 - 424cf4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 424cf8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 424cfc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424d00: 66 0f 73 fa 02 pslldq $0x2,%xmm2 - 424d05: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 424d09: 66 0f f8 d0 psubb %xmm0,%xmm2 - 424d0d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 424d12: d3 ea shr %cl,%edx - 424d14: 41 d3 e9 shr %cl,%r9d - 424d17: 44 29 ca sub %r9d,%edx - 424d1a: 0f 85 d5 02 00 00 jne 424ff5 - 424d20: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 424d24: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 - 424d29: 4d 39 cb cmp %r9,%r11 - 424d2c: 0f 82 f2 02 00 00 jb 425024 - 424d32: 4d 85 c9 test %r9,%r9 - 424d35: 0f 84 e9 02 00 00 je 425024 - 424d3b: 4d 89 cb mov %r9,%r11 - 424d3e: 66 0f ef c0 pxor %xmm0,%xmm0 - 424d42: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 424d49: 41 b9 0e 00 00 00 mov $0xe,%r9d - 424d4f: 4c 8d 57 0e lea 0xe(%rdi),%r10 - 424d53: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 424d5a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 424d61: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 424d66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 424d6d: 00 00 00 - 424d70: 49 83 c2 10 add $0x10,%r10 - 424d74: 0f 8f a6 00 00 00 jg 424e20 - 424d7a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 424d7f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424d84: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424d88: 66 0f 73 db 0e psrldq $0xe,%xmm3 - 424d8d: 66 0f 73 fa 02 pslldq $0x2,%xmm2 - 424d92: 66 0f eb d3 por %xmm3,%xmm2 - 424d96: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424d9a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 424d9e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424da2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424da6: 81 ea ff ff 00 00 sub $0xffff,%edx - 424dac: 0f 85 3e 02 00 00 jne 424ff0 - 424db2: 49 83 eb 10 sub $0x10,%r11 - 424db6: 0f 86 68 02 00 00 jbe 425024 - 424dbc: 48 83 c1 10 add $0x10,%rcx - 424dc0: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424dc4: 49 83 c2 10 add $0x10,%r10 - 424dc8: 7f 56 jg 424e20 - 424dca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 424dcf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424dd4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424dd8: 66 0f 73 db 0e psrldq $0xe,%xmm3 - 424ddd: 66 0f 73 fa 02 pslldq $0x2,%xmm2 - 424de2: 66 0f eb d3 por %xmm3,%xmm2 - 424de6: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424dea: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 424dee: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424df2: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424df6: 81 ea ff ff 00 00 sub $0xffff,%edx - 424dfc: 0f 85 ee 01 00 00 jne 424ff0 - 424e02: 49 83 eb 10 sub $0x10,%r11 - 424e06: 0f 86 18 02 00 00 jbe 425024 - 424e0c: 48 83 c1 10 add $0x10,%rcx - 424e10: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424e14: e9 57 ff ff ff jmpq 424d70 - 424e19: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 424e20: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 424e24: 66 0f d7 d0 pmovmskb %xmm0,%edx - 424e28: f7 c2 00 c0 00 00 test $0xc000,%edx - 424e2e: 75 20 jne 424e50 - 424e30: 49 83 fb 02 cmp $0x2,%r11 - 424e34: 76 1a jbe 424e50 - 424e36: 66 0f ef c0 pxor %xmm0,%xmm0 - 424e3a: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 424e41: e9 34 ff ff ff jmpq 424d7a - 424e46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 424e4d: 00 00 00 - 424e50: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 424e55: 66 0f 73 d8 0e psrldq $0xe,%xmm0 - 424e5a: 66 0f 73 db 0e psrldq $0xe,%xmm3 - 424e5f: e9 7c 01 00 00 jmpq 424fe0 - 424e64: 66 90 xchg %ax,%ax - 424e66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 424e6d: 00 00 00 - 424e70: 66 0f ef c0 pxor %xmm0,%xmm0 - 424e74: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 424e78: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 424e7c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424e80: 66 0f 73 fa 01 pslldq $0x1,%xmm2 - 424e85: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 424e89: 66 0f f8 d0 psubb %xmm0,%xmm2 - 424e8d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 424e92: d3 ea shr %cl,%edx - 424e94: 41 d3 e9 shr %cl,%r9d - 424e97: 44 29 ca sub %r9d,%edx - 424e9a: 0f 85 55 01 00 00 jne 424ff5 - 424ea0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 424ea4: 4e 8d 4c 19 f0 lea -0x10(%rcx,%r11,1),%r9 - 424ea9: 4d 39 cb cmp %r9,%r11 - 424eac: 0f 82 72 01 00 00 jb 425024 - 424eb2: 4d 85 c9 test %r9,%r9 - 424eb5: 0f 84 69 01 00 00 je 425024 - 424ebb: 4d 89 cb mov %r9,%r11 - 424ebe: 66 0f ef c0 pxor %xmm0,%xmm0 - 424ec2: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 424ec9: 41 b9 0f 00 00 00 mov $0xf,%r9d - 424ecf: 4c 8d 57 0f lea 0xf(%rdi),%r10 - 424ed3: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 424eda: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 424ee1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 424ee6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 424eed: 00 00 00 - 424ef0: 49 83 c2 10 add $0x10,%r10 - 424ef4: 0f 8f a6 00 00 00 jg 424fa0 - 424efa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 424eff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424f04: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424f08: 66 0f 73 db 0f psrldq $0xf,%xmm3 - 424f0d: 66 0f 73 fa 01 pslldq $0x1,%xmm2 - 424f12: 66 0f eb d3 por %xmm3,%xmm2 - 424f16: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424f1a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 424f1e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424f22: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424f26: 81 ea ff ff 00 00 sub $0xffff,%edx - 424f2c: 0f 85 be 00 00 00 jne 424ff0 - 424f32: 49 83 eb 10 sub $0x10,%r11 - 424f36: 0f 86 e8 00 00 00 jbe 425024 - 424f3c: 48 83 c1 10 add $0x10,%rcx - 424f40: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424f44: 49 83 c2 10 add $0x10,%r10 - 424f48: 7f 56 jg 424fa0 - 424f4a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 424f4f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 424f54: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 424f58: 66 0f 73 db 0f psrldq $0xf,%xmm3 - 424f5d: 66 0f 73 fa 01 pslldq $0x1,%xmm2 - 424f62: 66 0f eb d3 por %xmm3,%xmm2 - 424f66: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 424f6a: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 424f6e: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424f72: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424f76: 81 ea ff ff 00 00 sub $0xffff,%edx - 424f7c: 75 72 jne 424ff0 - 424f7e: 49 83 eb 10 sub $0x10,%r11 - 424f82: 0f 86 9c 00 00 00 jbe 425024 - 424f88: 48 83 c1 10 add $0x10,%rcx - 424f8c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 424f90: e9 5b ff ff ff jmpq 424ef0 - 424f95: 90 nop - 424f96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 424f9d: 00 00 00 - 424fa0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 424fa4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 424fa8: f7 c2 00 80 00 00 test $0x8000,%edx - 424fae: 75 20 jne 424fd0 - 424fb0: 49 83 fb 01 cmp $0x1,%r11 - 424fb4: 76 1a jbe 424fd0 - 424fb6: 66 0f ef c0 pxor %xmm0,%xmm0 - 424fba: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 424fc1: e9 34 ff ff ff jmpq 424efa - 424fc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 424fcd: 00 00 00 - 424fd0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 424fd5: 66 0f 73 db 0f psrldq $0xf,%xmm3 - 424fda: 66 0f 73 d8 0f psrldq $0xf,%xmm0 - 424fdf: 90 nop - 424fe0: 66 0f 74 cb pcmpeqb %xmm3,%xmm1 - 424fe4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 424fe8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 424fec: f7 d2 not %edx - 424fee: 66 90 xchg %ax,%ax - 424ff0: 49 8d 44 09 f0 lea -0x10(%r9,%rcx,1),%rax - 424ff5: 48 8d 3c 07 lea (%rdi,%rax,1),%rdi - 424ff9: 48 8d 34 0e lea (%rsi,%rcx,1),%rsi - 424ffd: 45 85 c0 test %r8d,%r8d - 425000: 74 0e je 425010 - 425002: 48 87 f7 xchg %rsi,%rdi - 425005: 90 nop - 425006: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42500d: 00 00 00 - 425010: 48 0f bc d2 bsf %rdx,%rdx - 425014: 49 29 d3 sub %rdx,%r11 - 425017: 76 0b jbe 425024 - 425019: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx - 42501d: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax - 425021: 29 c8 sub %ecx,%eax - 425023: c3 retq - 425024: 31 c0 xor %eax,%eax - 425026: c3 retq - 425027: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42502e: 00 00 - 425030: 0f b6 0e movzbl (%rsi),%ecx - 425033: 0f b6 07 movzbl (%rdi),%eax - 425036: 29 c8 sub %ecx,%eax - 425038: c3 retq - 425039: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -0000000000425040 : - 425040: 41 57 push %r15 - 425042: 41 56 push %r14 - 425044: 41 55 push %r13 - 425046: 41 54 push %r12 - 425048: 49 89 fd mov %rdi,%r13 - 42504b: 55 push %rbp - 42504c: 53 push %rbx - 42504d: 48 89 d5 mov %rdx,%rbp - 425050: 48 89 f3 mov %rsi,%rbx - 425053: 49 89 cc mov %rcx,%r12 - 425056: bf 01 00 00 00 mov $0x1,%edi - 42505b: 48 81 ec 58 08 00 00 sub $0x858,%rsp - 425062: ba 01 00 00 00 mov $0x1,%edx - 425067: 31 c9 xor %ecx,%ecx - 425069: 48 c7 c6 ff ff ff ff mov $0xffffffffffffffff,%rsi - 425070: 48 8d 04 0a lea (%rdx,%rcx,1),%rax - 425074: 49 39 c4 cmp %rax,%r12 - 425077: 76 2c jbe 4250a5 - 425079: 4c 8d 44 35 00 lea 0x0(%rbp,%rsi,1),%r8 - 42507e: 45 0f b6 14 10 movzbl (%r8,%rdx,1),%r10d - 425083: 44 38 54 05 00 cmp %r10b,0x0(%rbp,%rax,1) - 425088: 0f 83 8a 02 00 00 jae 425318 - 42508e: 48 89 c1 mov %rax,%rcx - 425091: ba 01 00 00 00 mov $0x1,%edx - 425096: 48 89 c7 mov %rax,%rdi - 425099: 48 8d 04 0a lea (%rdx,%rcx,1),%rax - 42509d: 48 29 f7 sub %rsi,%rdi - 4250a0: 49 39 c4 cmp %rax,%r12 - 4250a3: 77 d4 ja 425079 - 4250a5: 48 c7 44 24 08 01 00 movq $0x1,0x8(%rsp) - 4250ac: 00 00 - 4250ae: ba 01 00 00 00 mov $0x1,%edx - 4250b3: 31 c9 xor %ecx,%ecx - 4250b5: 49 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%r8 - 4250bc: 0f 1f 40 00 nopl 0x0(%rax) - 4250c0: 48 8d 04 0a lea (%rdx,%rcx,1),%rax - 4250c4: 49 39 c4 cmp %rax,%r12 - 4250c7: 76 31 jbe 4250fa - 4250c9: 4e 8d 4c 05 00 lea 0x0(%rbp,%r8,1),%r9 - 4250ce: 45 0f b6 1c 11 movzbl (%r9,%rdx,1),%r11d - 4250d3: 44 38 5c 05 00 cmp %r11b,0x0(%rbp,%rax,1) - 4250d8: 0f 86 52 02 00 00 jbe 425330 - 4250de: 48 89 c1 mov %rax,%rcx - 4250e1: ba 01 00 00 00 mov $0x1,%edx - 4250e6: 4c 29 c1 sub %r8,%rcx - 4250e9: 48 89 4c 24 08 mov %rcx,0x8(%rsp) - 4250ee: 48 89 c1 mov %rax,%rcx - 4250f1: 48 8d 04 0a lea (%rdx,%rcx,1),%rax - 4250f5: 49 39 c4 cmp %rax,%r12 - 4250f8: 77 cf ja 4250c9 - 4250fa: 49 8d 40 01 lea 0x1(%r8),%rax - 4250fe: 48 83 c6 01 add $0x1,%rsi - 425102: 48 39 f0 cmp %rsi,%rax - 425105: 48 89 44 24 10 mov %rax,0x10(%rsp) - 42510a: 73 0a jae 425116 - 42510c: 48 89 7c 24 08 mov %rdi,0x8(%rsp) - 425111: 48 89 74 24 10 mov %rsi,0x10(%rsp) - 425116: 4c 89 64 24 18 mov %r12,0x18(%rsp) - 42511b: 48 8d 44 24 50 lea 0x50(%rsp),%rax - 425120: 48 8d 94 24 50 08 00 lea 0x850(%rsp),%rdx - 425127: 00 - 425128: f3 0f 7e 44 24 18 movq 0x18(%rsp),%xmm0 - 42512e: 66 0f 6c c0 punpcklqdq %xmm0,%xmm0 - 425132: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 425138: 0f 29 00 movaps %xmm0,(%rax) - 42513b: 48 83 c0 10 add $0x10,%rax - 42513f: 48 39 d0 cmp %rdx,%rax - 425142: 75 f4 jne 425138 - 425144: 4d 85 e4 test %r12,%r12 - 425147: 49 8d 44 24 ff lea -0x1(%r12),%rax - 42514c: 48 89 ea mov %rbp,%rdx - 42514f: 74 1d je 42516e - 425151: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 425158: 0f b6 0a movzbl (%rdx),%ecx - 42515b: 48 83 c2 01 add $0x1,%rdx - 42515f: 48 89 44 cc 50 mov %rax,0x50(%rsp,%rcx,8) - 425164: 48 83 e8 01 sub $0x1,%rax - 425168: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 42516c: 75 ea jne 425158 - 42516e: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 425173: 48 8b 54 24 10 mov 0x10(%rsp),%rdx - 425178: 48 89 ef mov %rbp,%rdi - 42517b: 48 8d 74 05 00 lea 0x0(%rbp,%rax,1),%rsi - 425180: e8 ab b1 fd ff callq 400330 <__rela_iplt_end+0x68> - 425185: 85 c0 test %eax,%eax - 425187: 0f 85 0b 02 00 00 jne 425398 - 42518d: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx - 425192: 4d 8d 7c 24 ff lea -0x1(%r12),%r15 - 425197: b8 01 00 00 00 mov $0x1,%eax - 42519c: 45 31 c0 xor %r8d,%r8d - 42519f: 48 89 6c 24 20 mov %rbp,0x20(%rsp) - 4251a4: 45 31 f6 xor %r14d,%r14d - 4251a7: 4c 89 64 24 18 mov %r12,0x18(%rsp) - 4251ac: 48 8d 71 ff lea -0x1(%rcx),%rsi - 4251b0: 48 89 cf mov %rcx,%rdi - 4251b3: 48 29 c8 sub %rcx,%rax - 4251b6: 48 f7 df neg %rdi - 4251b9: 48 89 44 24 40 mov %rax,0x40(%rsp) - 4251be: 4c 89 e0 mov %r12,%rax - 4251c1: 48 89 74 24 28 mov %rsi,0x28(%rsp) - 4251c6: 48 01 ee add %rbp,%rsi - 4251c9: 48 89 7c 24 48 mov %rdi,0x48(%rsp) - 4251ce: 49 89 f1 mov %rsi,%r9 - 4251d1: 48 89 74 24 38 mov %rsi,0x38(%rsp) - 4251d6: 4c 89 e6 mov %r12,%rsi - 4251d9: 48 2b 74 24 08 sub 0x8(%rsp),%rsi - 4251de: 49 01 f9 add %rdi,%r9 - 4251e1: 4c 89 fd mov %r15,%rbp - 4251e4: 48 89 df mov %rbx,%rdi - 4251e7: 4d 89 c7 mov %r8,%r15 - 4251ea: 4c 89 cb mov %r9,%rbx - 4251ed: 48 89 74 24 30 mov %rsi,0x30(%rsp) - 4251f2: eb 22 jmp 425216 - 4251f4: 0f 1f 40 00 nopl 0x0(%rax) - 4251f8: 4d 85 f6 test %r14,%r14 - 4251fb: 74 0b je 425208 - 4251fd: 48 3b 44 24 08 cmp 0x8(%rsp),%rax - 425202: 48 0f 42 44 24 30 cmovb 0x30(%rsp),%rax - 425208: 49 01 c7 add %rax,%r15 - 42520b: 45 31 f6 xor %r14d,%r14d - 42520e: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 425213: 4c 89 e7 mov %r12,%rdi - 425216: 4d 8d 24 07 lea (%r15,%rax,1),%r12 - 42521a: 31 f6 xor %esi,%esi - 42521c: 4c 89 e2 mov %r12,%rdx - 42521f: 48 29 fa sub %rdi,%rdx - 425222: 4c 01 ef add %r13,%rdi - 425225: e8 16 09 00 00 callq 425b40 <__memchr> - 42522a: 4d 85 e4 test %r12,%r12 - 42522d: 0f 84 d7 02 00 00 je 42550a - 425233: 48 85 c0 test %rax,%rax - 425236: 0f 85 ce 02 00 00 jne 42550a - 42523c: 43 0f b6 44 25 ff movzbl -0x1(%r13,%r12,1),%eax - 425242: 48 8b 44 c4 50 mov 0x50(%rsp,%rax,8),%rax - 425247: 48 85 c0 test %rax,%rax - 42524a: 75 ac jne 4251f8 - 42524c: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 425251: 48 8b 74 24 20 mov 0x20(%rsp),%rsi - 425256: 49 39 c6 cmp %rax,%r14 - 425259: 49 0f 43 c6 cmovae %r14,%rax - 42525d: 48 8d 14 06 lea (%rsi,%rax,1),%rdx - 425261: 49 8d 34 07 lea (%r15,%rax,1),%rsi - 425265: 48 39 e8 cmp %rbp,%rax - 425268: 49 8d 7c 35 00 lea 0x0(%r13,%rsi,1),%rdi - 42526d: 73 37 jae 4252a6 - 42526f: 0f b6 32 movzbl (%rdx),%esi - 425272: 40 38 37 cmp %sil,(%rdi) - 425275: 0f 85 d5 00 00 00 jne 425350 - 42527b: 48 89 c6 mov %rax,%rsi - 42527e: 48 f7 de neg %rsi - 425281: 48 01 f2 add %rsi,%rdx - 425284: 48 01 fe add %rdi,%rsi - 425287: eb 14 jmp 42529d - 425289: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 425290: 0f b6 0c 06 movzbl (%rsi,%rax,1),%ecx - 425294: 38 0c 02 cmp %cl,(%rdx,%rax,1) - 425297: 0f 85 b3 00 00 00 jne 425350 - 42529d: 48 83 c0 01 add $0x1,%rax - 4252a1: 48 39 e8 cmp %rbp,%rax - 4252a4: 72 ea jb 425290 - 4252a6: 48 8b 44 24 28 mov 0x28(%rsp),%rax - 4252ab: 49 8d 34 07 lea (%r15,%rax,1),%rsi - 4252af: 4c 01 ee add %r13,%rsi - 4252b2: 4c 3b 74 24 10 cmp 0x10(%rsp),%r14 - 4252b7: 0f 83 73 02 00 00 jae 425530 - 4252bd: 48 8b 44 24 38 mov 0x38(%rsp),%rax - 4252c2: 0f b6 00 movzbl (%rax),%eax - 4252c5: 38 06 cmp %al,(%rsi) - 4252c7: 0f 85 63 02 00 00 jne 425530 - 4252cd: 48 8b 44 24 28 mov 0x28(%rsp),%rax - 4252d2: 48 03 74 24 48 add 0x48(%rsp),%rsi - 4252d7: eb 18 jmp 4252f1 - 4252d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4252e0: 48 8d 50 ff lea -0x1(%rax),%rdx - 4252e4: 0f b6 4c 32 01 movzbl 0x1(%rdx,%rsi,1),%ecx - 4252e9: 38 0c 03 cmp %cl,(%rbx,%rax,1) - 4252ec: 75 08 jne 4252f6 - 4252ee: 48 89 d0 mov %rdx,%rax - 4252f1: 49 39 c6 cmp %rax,%r14 - 4252f4: 75 ea jne 4252e0 - 4252f6: 49 83 c6 01 add $0x1,%r14 - 4252fa: 49 39 c6 cmp %rax,%r14 - 4252fd: 0f 87 37 02 00 00 ja 42553a - 425303: 4c 03 7c 24 08 add 0x8(%rsp),%r15 - 425308: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 - 42530d: e9 fc fe ff ff jmpq 42520e - 425312: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 425318: 74 4e je 425368 - 42531a: 48 89 ce mov %rcx,%rsi - 42531d: bf 01 00 00 00 mov $0x1,%edi - 425322: 48 83 c1 01 add $0x1,%rcx - 425326: ba 01 00 00 00 mov $0x1,%edx - 42532b: e9 40 fd ff ff jmpq 425070 - 425330: 74 4e je 425380 - 425332: 49 89 c8 mov %rcx,%r8 - 425335: 48 c7 44 24 08 01 00 movq $0x1,0x8(%rsp) - 42533c: 00 00 - 42533e: 48 83 c1 01 add $0x1,%rcx - 425342: ba 01 00 00 00 mov $0x1,%edx - 425347: e9 74 fd ff ff jmpq 4250c0 - 42534c: 0f 1f 40 00 nopl 0x0(%rax) - 425350: 48 8b 7c 24 40 mov 0x40(%rsp),%rdi - 425355: 45 31 f6 xor %r14d,%r14d - 425358: 4e 8d 04 3f lea (%rdi,%r15,1),%r8 - 42535c: 4e 8d 3c 00 lea (%rax,%r8,1),%r15 - 425360: e9 a9 fe ff ff jmpq 42520e - 425365: 0f 1f 00 nopl (%rax) - 425368: 48 39 fa cmp %rdi,%rdx - 42536b: 0f 84 af 01 00 00 je 425520 - 425371: 48 83 c2 01 add $0x1,%rdx - 425375: e9 f6 fc ff ff jmpq 425070 - 42537a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 425380: 48 3b 54 24 08 cmp 0x8(%rsp),%rdx - 425385: 0f 84 83 01 00 00 je 42550e - 42538b: 48 83 c2 01 add $0x1,%rdx - 42538f: e9 2c fd ff ff jmpq 4250c0 - 425394: 0f 1f 40 00 nopl 0x0(%rax) - 425398: 48 8b 74 24 10 mov 0x10(%rsp),%rsi - 42539d: 4c 89 e0 mov %r12,%rax - 4253a0: 41 bb 01 00 00 00 mov $0x1,%r11d - 4253a6: 49 8d 4c 24 ff lea -0x1(%r12),%rcx - 4253ab: 4c 89 64 24 08 mov %r12,0x8(%rsp) - 4253b0: 48 29 f0 sub %rsi,%rax - 4253b3: 48 39 f0 cmp %rsi,%rax - 4253b6: 48 0f 42 c6 cmovb %rsi,%rax - 4253ba: 49 29 f3 sub %rsi,%r11 - 4253bd: 45 31 ff xor %r15d,%r15d - 4253c0: 48 83 c0 01 add $0x1,%rax - 4253c4: 48 89 44 24 38 mov %rax,0x38(%rsp) - 4253c9: 48 8d 46 ff lea -0x1(%rsi),%rax - 4253cd: 48 89 c7 mov %rax,%rdi - 4253d0: 48 89 44 24 30 mov %rax,0x30(%rsp) - 4253d5: 48 8d 44 35 00 lea 0x0(%rbp,%rsi,1),%rax - 4253da: 48 f7 de neg %rsi - 4253dd: 48 01 fd add %rdi,%rbp - 4253e0: 48 89 df mov %rbx,%rdi - 4253e3: 49 89 c6 mov %rax,%r14 - 4253e6: 48 89 44 24 18 mov %rax,0x18(%rsp) - 4253eb: 4c 89 e8 mov %r13,%rax - 4253ee: 49 01 f6 add %rsi,%r14 - 4253f1: 4d 89 fd mov %r15,%r13 - 4253f4: 48 89 74 24 20 mov %rsi,0x20(%rsp) - 4253f9: 4c 89 74 24 28 mov %r14,0x28(%rsp) - 4253fe: 48 89 cb mov %rcx,%rbx - 425401: 49 89 ec mov %rbp,%r12 - 425404: 4d 89 de mov %r11,%r14 - 425407: 49 89 c7 mov %rax,%r15 - 42540a: eb 0a jmp 425416 - 42540c: 0f 1f 40 00 nopl 0x0(%rax) - 425410: 49 01 c5 add %rax,%r13 - 425413: 48 89 ef mov %rbp,%rdi - 425416: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 42541b: 31 f6 xor %esi,%esi - 42541d: 49 8d 6c 05 00 lea 0x0(%r13,%rax,1),%rbp - 425422: 48 89 ea mov %rbp,%rdx - 425425: 48 29 fa sub %rdi,%rdx - 425428: 4c 01 ff add %r15,%rdi - 42542b: e8 10 07 00 00 callq 425b40 <__memchr> - 425430: 48 85 c0 test %rax,%rax - 425433: 0f 85 d1 00 00 00 jne 42550a - 425439: 48 85 ed test %rbp,%rbp - 42543c: 0f 84 c8 00 00 00 je 42550a - 425442: 41 0f b6 44 2f ff movzbl -0x1(%r15,%rbp,1),%eax - 425448: 48 8b 44 c4 50 mov 0x50(%rsp,%rax,8),%rax - 42544d: 48 85 c0 test %rax,%rax - 425450: 75 be jne 425410 - 425452: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 425457: 49 8d 54 05 00 lea 0x0(%r13,%rax,1),%rdx - 42545c: 4c 01 fa add %r15,%rdx - 42545f: 48 39 d8 cmp %rbx,%rax - 425462: 73 2f jae 425493 - 425464: 48 8b 74 24 18 mov 0x18(%rsp),%rsi - 425469: 0f b6 36 movzbl (%rsi),%esi - 42546c: 40 38 32 cmp %sil,(%rdx) - 42546f: 75 7f jne 4254f0 - 425471: 48 03 54 24 20 add 0x20(%rsp),%rdx - 425476: 48 8b 4c 24 28 mov 0x28(%rsp),%rcx - 42547b: eb 0d jmp 42548a - 42547d: 0f 1f 00 nopl (%rax) - 425480: 0f b6 3c 02 movzbl (%rdx,%rax,1),%edi - 425484: 40 38 3c 01 cmp %dil,(%rcx,%rax,1) - 425488: 75 66 jne 4254f0 - 42548a: 48 83 c0 01 add $0x1,%rax - 42548e: 48 39 d8 cmp %rbx,%rax - 425491: 72 ed jb 425480 - 425493: 48 8b 44 24 30 mov 0x30(%rsp),%rax - 425498: 49 8d 74 05 00 lea 0x0(%r13,%rax,1),%rsi - 42549d: 4c 01 fe add %r15,%rsi - 4254a0: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 4254a4: 74 26 je 4254cc - 4254a6: 41 0f b6 04 24 movzbl (%r12),%eax - 4254ab: 38 06 cmp %al,(%rsi) - 4254ad: 75 51 jne 425500 - 4254af: 31 c0 xor %eax,%eax - 4254b1: eb 14 jmp 4254c7 - 4254b3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4254b8: 41 0f b6 54 04 ff movzbl -0x1(%r12,%rax,1),%edx - 4254be: 48 83 e8 01 sub $0x1,%rax - 4254c2: 3a 14 06 cmp (%rsi,%rax,1),%dl - 4254c5: 75 39 jne 425500 - 4254c7: 49 39 c6 cmp %rax,%r14 - 4254ca: 75 ec jne 4254b8 - 4254cc: 4c 89 f8 mov %r15,%rax - 4254cf: 4d 89 ef mov %r13,%r15 - 4254d2: 4a 8d 04 38 lea (%rax,%r15,1),%rax - 4254d6: 48 81 c4 58 08 00 00 add $0x858,%rsp - 4254dd: 5b pop %rbx - 4254de: 5d pop %rbp - 4254df: 41 5c pop %r12 - 4254e1: 41 5d pop %r13 - 4254e3: 41 5e pop %r14 - 4254e5: 41 5f pop %r15 - 4254e7: c3 retq - 4254e8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4254ef: 00 - 4254f0: 4f 8d 04 2e lea (%r14,%r13,1),%r8 - 4254f4: 4e 8d 2c 00 lea (%rax,%r8,1),%r13 - 4254f8: e9 16 ff ff ff jmpq 425413 - 4254fd: 0f 1f 00 nopl (%rax) - 425500: 4c 03 6c 24 38 add 0x38(%rsp),%r13 - 425505: e9 09 ff ff ff jmpq 425413 - 42550a: 31 c0 xor %eax,%eax - 42550c: eb c8 jmp 4254d6 - 42550e: 48 89 54 24 08 mov %rdx,0x8(%rsp) - 425513: 48 89 c1 mov %rax,%rcx - 425516: ba 01 00 00 00 mov $0x1,%edx - 42551b: e9 a0 fb ff ff jmpq 4250c0 - 425520: 48 89 d7 mov %rdx,%rdi - 425523: 48 89 c1 mov %rax,%rcx - 425526: ba 01 00 00 00 mov $0x1,%edx - 42552b: e9 40 fb ff ff jmpq 425070 - 425530: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 425535: e9 bc fd ff ff jmpq 4252f6 - 42553a: 4b 8d 44 3d 00 lea 0x0(%r13,%r15,1),%rax - 42553f: eb 95 jmp 4254d6 - 425541: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 425546: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42554d: 00 00 00 - -0000000000425550 <__strstr_sse2>: - 425550: 41 57 push %r15 - 425552: 41 56 push %r14 - 425554: 41 55 push %r13 - 425556: 41 54 push %r12 - 425558: 55 push %rbp - 425559: 53 push %rbx - 42555a: 48 83 ec 58 sub $0x58,%rsp - 42555e: 0f b6 17 movzbl (%rdi),%edx - 425561: 84 d2 test %dl,%dl - 425563: 0f 84 93 05 00 00 je 425afc <__strstr_sse2+0x5ac> - 425569: 0f b6 0e movzbl (%rsi),%ecx - 42556c: 84 c9 test %cl,%cl - 42556e: 0f 84 bc 00 00 00 je 425630 <__strstr_sse2+0xe0> - 425574: 48 89 f3 mov %rsi,%rbx - 425577: 49 89 f8 mov %rdi,%r8 - 42557a: 41 b9 01 00 00 00 mov $0x1,%r9d - 425580: eb 0d jmp 42558f <__strstr_sse2+0x3f> - 425582: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 425588: 0f b6 0b movzbl (%rbx),%ecx - 42558b: 84 c9 test %cl,%cl - 42558d: 74 1d je 4255ac <__strstr_sse2+0x5c> - 42558f: 49 83 c0 01 add $0x1,%r8 - 425593: 48 83 c3 01 add $0x1,%rbx - 425597: 38 ca cmp %cl,%dl - 425599: 41 0f b6 10 movzbl (%r8),%edx - 42559d: 0f 94 c0 sete %al - 4255a0: 41 21 c1 and %eax,%r9d - 4255a3: 84 d2 test %dl,%dl - 4255a5: 75 e1 jne 425588 <__strstr_sse2+0x38> - 4255a7: 80 3b 00 cmpb $0x0,(%rbx) - 4255aa: 75 6c jne 425618 <__strstr_sse2+0xc8> - 4255ac: 45 84 c9 test %r9b,%r9b - 4255af: 75 7f jne 425630 <__strstr_sse2+0xe0> - 4255b1: 49 89 dc mov %rbx,%r12 - 4255b4: 48 89 fd mov %rdi,%rbp - 4255b7: 48 8d 7f 01 lea 0x1(%rdi),%rdi - 4255bb: 49 29 f4 sub %rsi,%r12 - 4255be: 0f be 36 movsbl (%rsi),%esi - 4255c1: e8 ba ad fd ff callq 400380 <__rela_iplt_end+0xb8> - 4255c6: 48 85 c0 test %rax,%rax - 4255c9: 49 89 c7 mov %rax,%r15 - 4255cc: 74 4a je 425618 <__strstr_sse2+0xc8> - 4255ce: 49 83 fc 01 cmp $0x1,%r12 - 4255d2: 74 46 je 42561a <__strstr_sse2+0xca> - 4255d4: 4a 8d 7c 25 00 lea 0x0(%rbp,%r12,1),%rdi - 4255d9: 4c 29 e3 sub %r12,%rbx - 4255dc: 49 89 f8 mov %rdi,%r8 - 4255df: 49 29 c0 sub %rax,%r8 - 4255e2: 48 39 f8 cmp %rdi,%rax - 4255e5: b8 01 00 00 00 mov $0x1,%eax - 4255ea: 4c 0f 47 c0 cmova %rax,%r8 - 4255ee: 49 83 fc 1f cmp $0x1f,%r12 - 4255f2: 76 54 jbe 425648 <__strstr_sse2+0xf8> - 4255f4: 48 83 c4 58 add $0x58,%rsp - 4255f8: 4c 89 e1 mov %r12,%rcx - 4255fb: 48 89 da mov %rbx,%rdx - 4255fe: 4c 89 ff mov %r15,%rdi - 425601: 4c 89 c6 mov %r8,%rsi - 425604: 5b pop %rbx - 425605: 5d pop %rbp - 425606: 41 5c pop %r12 - 425608: 41 5d pop %r13 - 42560a: 41 5e pop %r14 - 42560c: 41 5f pop %r15 - 42560e: e9 2d fa ff ff jmpq 425040 - 425613: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 425618: 31 c0 xor %eax,%eax - 42561a: 48 83 c4 58 add $0x58,%rsp - 42561e: 5b pop %rbx - 42561f: 5d pop %rbp - 425620: 41 5c pop %r12 - 425622: 41 5d pop %r13 - 425624: 41 5e pop %r14 - 425626: 41 5f pop %r15 - 425628: c3 retq - 425629: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 425630: 48 83 c4 58 add $0x58,%rsp - 425634: 48 89 f8 mov %rdi,%rax - 425637: 5b pop %rbx - 425638: 5d pop %rbp - 425639: 41 5c pop %r12 - 42563b: 41 5d pop %r13 - 42563d: 41 5e pop %r14 - 42563f: 41 5f pop %r15 - 425641: c3 retq - 425642: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 425648: 41 be 01 00 00 00 mov $0x1,%r14d - 42564e: ba 01 00 00 00 mov $0x1,%edx - 425653: 31 f6 xor %esi,%esi - 425655: 48 c7 c1 ff ff ff ff mov $0xffffffffffffffff,%rcx - 42565c: 0f 1f 40 00 nopl 0x0(%rax) - 425660: 48 8d 04 32 lea (%rdx,%rsi,1),%rax - 425664: 49 39 c4 cmp %rax,%r12 - 425667: 76 29 jbe 425692 <__strstr_sse2+0x142> - 425669: 48 8d 3c 0b lea (%rbx,%rcx,1),%rdi - 42566d: 0f b6 3c 17 movzbl (%rdi,%rdx,1),%edi - 425671: 40 38 3c 03 cmp %dil,(%rbx,%rax,1) - 425675: 0f 83 f5 01 00 00 jae 425870 <__strstr_sse2+0x320> - 42567b: 48 89 c6 mov %rax,%rsi - 42567e: ba 01 00 00 00 mov $0x1,%edx - 425683: 49 89 c6 mov %rax,%r14 - 425686: 48 8d 04 32 lea (%rdx,%rsi,1),%rax - 42568a: 49 29 ce sub %rcx,%r14 - 42568d: 49 39 c4 cmp %rax,%r12 - 425690: 77 d7 ja 425669 <__strstr_sse2+0x119> - 425692: 41 bb 01 00 00 00 mov $0x1,%r11d - 425698: ba 01 00 00 00 mov $0x1,%edx - 42569d: 31 f6 xor %esi,%esi - 42569f: 48 c7 c7 ff ff ff ff mov $0xffffffffffffffff,%rdi - 4256a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4256ad: 00 00 00 - 4256b0: 48 8d 04 32 lea (%rdx,%rsi,1),%rax - 4256b4: 49 39 c4 cmp %rax,%r12 - 4256b7: 76 2a jbe 4256e3 <__strstr_sse2+0x193> - 4256b9: 4c 8d 0c 3b lea (%rbx,%rdi,1),%r9 - 4256bd: 45 0f b6 14 11 movzbl (%r9,%rdx,1),%r10d - 4256c2: 44 38 14 03 cmp %r10b,(%rbx,%rax,1) - 4256c6: 0f 86 c4 01 00 00 jbe 425890 <__strstr_sse2+0x340> - 4256cc: 48 89 c6 mov %rax,%rsi - 4256cf: ba 01 00 00 00 mov $0x1,%edx - 4256d4: 49 89 c3 mov %rax,%r11 - 4256d7: 48 8d 04 32 lea (%rdx,%rsi,1),%rax - 4256db: 49 29 fb sub %rdi,%r11 - 4256de: 49 39 c4 cmp %rax,%r12 - 4256e1: 77 d6 ja 4256b9 <__strstr_sse2+0x169> - 4256e3: 48 83 c7 01 add $0x1,%rdi - 4256e7: 48 83 c1 01 add $0x1,%rcx - 4256eb: 48 39 cf cmp %rcx,%rdi - 4256ee: 72 06 jb 4256f6 <__strstr_sse2+0x1a6> - 4256f0: 4d 89 de mov %r11,%r14 - 4256f3: 48 89 f9 mov %rdi,%rcx - 4256f6: 4a 8d 34 33 lea (%rbx,%r14,1),%rsi - 4256fa: 48 89 ca mov %rcx,%rdx - 4256fd: 48 89 df mov %rbx,%rdi - 425700: 4c 89 44 24 10 mov %r8,0x10(%rsp) - 425705: 48 89 4c 24 08 mov %rcx,0x8(%rsp) - 42570a: e8 21 ac fd ff callq 400330 <__rela_iplt_end+0x68> - 42570f: 85 c0 test %eax,%eax - 425711: 48 8b 4c 24 08 mov 0x8(%rsp),%rcx - 425716: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 - 42571b: 0f 85 d1 01 00 00 jne 4258f2 <__strstr_sse2+0x3a2> - 425721: 48 8d 41 ff lea -0x1(%rcx),%rax - 425725: 4c 89 e7 mov %r12,%rdi - 425728: 45 31 ed xor %r13d,%r13d - 42572b: 4c 29 f7 sub %r14,%rdi - 42572e: 31 ed xor %ebp,%ebp - 425730: 4c 89 74 24 38 mov %r14,0x38(%rsp) - 425735: 48 89 44 24 18 mov %rax,0x18(%rsp) - 42573a: 48 89 7c 24 30 mov %rdi,0x30(%rsp) - 42573f: 48 01 d8 add %rbx,%rax - 425742: 48 89 cf mov %rcx,%rdi - 425745: 49 89 c2 mov %rax,%r10 - 425748: 48 89 44 24 28 mov %rax,0x28(%rsp) - 42574d: 48 f7 df neg %rdi - 425750: b8 01 00 00 00 mov $0x1,%eax - 425755: 4d 89 ee mov %r13,%r14 - 425758: 49 01 fa add %rdi,%r10 - 42575b: 48 29 c8 sub %rcx,%rax - 42575e: 48 89 7c 24 40 mov %rdi,0x40(%rsp) - 425763: 4d 89 e5 mov %r12,%r13 - 425766: 48 89 44 24 20 mov %rax,0x20(%rsp) - 42576b: 49 89 ec mov %rbp,%r12 - 42576e: 4c 89 c7 mov %r8,%rdi - 425771: 48 89 5c 24 10 mov %rbx,0x10(%rsp) - 425776: 4c 89 d5 mov %r10,%rbp - 425779: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 425780: 4b 8d 5c 25 00 lea 0x0(%r13,%r12,1),%rbx - 425785: 31 f6 xor %esi,%esi - 425787: 48 89 da mov %rbx,%rdx - 42578a: 48 29 fa sub %rdi,%rdx - 42578d: 4c 01 ff add %r15,%rdi - 425790: e8 ab 03 00 00 callq 425b40 <__memchr> - 425795: 48 85 c0 test %rax,%rax - 425798: 0f 85 7a fe ff ff jne 425618 <__strstr_sse2+0xc8> - 42579e: 48 85 db test %rbx,%rbx - 4257a1: 0f 84 71 fe ff ff je 425618 <__strstr_sse2+0xc8> - 4257a7: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 4257ac: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx - 4257b1: 49 39 c6 cmp %rax,%r14 - 4257b4: 49 0f 43 c6 cmovae %r14,%rax - 4257b8: 4a 8d 34 20 lea (%rax,%r12,1),%rsi - 4257bc: 49 39 c5 cmp %rax,%r13 - 4257bf: 48 8d 14 01 lea (%rcx,%rax,1),%rdx - 4257c3: 49 8d 3c 37 lea (%r15,%rsi,1),%rdi - 4257c7: 76 36 jbe 4257ff <__strstr_sse2+0x2af> - 4257c9: 0f b6 0f movzbl (%rdi),%ecx - 4257cc: 38 0a cmp %cl,(%rdx) - 4257ce: 0f 85 dc 00 00 00 jne 4258b0 <__strstr_sse2+0x360> - 4257d4: 48 89 c6 mov %rax,%rsi - 4257d7: 48 f7 de neg %rsi - 4257da: 48 01 f2 add %rsi,%rdx - 4257dd: 48 01 fe add %rdi,%rsi - 4257e0: eb 14 jmp 4257f6 <__strstr_sse2+0x2a6> - 4257e2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4257e8: 0f b6 3c 06 movzbl (%rsi,%rax,1),%edi - 4257ec: 40 38 3c 02 cmp %dil,(%rdx,%rax,1) - 4257f0: 0f 85 ba 00 00 00 jne 4258b0 <__strstr_sse2+0x360> - 4257f6: 48 83 c0 01 add $0x1,%rax - 4257fa: 49 39 c5 cmp %rax,%r13 - 4257fd: 77 e9 ja 4257e8 <__strstr_sse2+0x298> - 4257ff: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 425804: 49 8d 34 04 lea (%r12,%rax,1),%rsi - 425808: 4c 01 fe add %r15,%rsi - 42580b: 4c 3b 74 24 08 cmp 0x8(%rsp),%r14 - 425810: 0f 83 9d 02 00 00 jae 425ab3 <__strstr_sse2+0x563> - 425816: 48 8b 7c 24 28 mov 0x28(%rsp),%rdi - 42581b: 0f b6 0e movzbl (%rsi),%ecx - 42581e: 38 0f cmp %cl,(%rdi) - 425820: 0f 85 8d 02 00 00 jne 425ab3 <__strstr_sse2+0x563> - 425826: 48 03 74 24 40 add 0x40(%rsp),%rsi - 42582b: eb 15 jmp 425842 <__strstr_sse2+0x2f2> - 42582d: 0f 1f 00 nopl (%rax) - 425830: 48 8d 50 ff lea -0x1(%rax),%rdx - 425834: 0f b6 4c 32 01 movzbl 0x1(%rdx,%rsi,1),%ecx - 425839: 38 4c 05 00 cmp %cl,0x0(%rbp,%rax,1) - 42583d: 75 08 jne 425847 <__strstr_sse2+0x2f7> - 42583f: 48 89 d0 mov %rdx,%rax - 425842: 49 39 c6 cmp %rax,%r14 - 425845: 75 e9 jne 425830 <__strstr_sse2+0x2e0> - 425847: 4d 8d 4e 01 lea 0x1(%r14),%r9 - 42584b: 49 39 c1 cmp %rax,%r9 - 42584e: 0f 87 b6 02 00 00 ja 425b0a <__strstr_sse2+0x5ba> - 425854: 4c 03 64 24 38 add 0x38(%rsp),%r12 - 425859: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 - 42585e: 48 89 df mov %rbx,%rdi - 425861: e9 1a ff ff ff jmpq 425780 <__strstr_sse2+0x230> - 425866: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42586d: 00 00 00 - 425870: 74 56 je 4258c8 <__strstr_sse2+0x378> - 425872: 48 89 f1 mov %rsi,%rcx - 425875: 41 be 01 00 00 00 mov $0x1,%r14d - 42587b: 48 83 c6 01 add $0x1,%rsi - 42587f: ba 01 00 00 00 mov $0x1,%edx - 425884: e9 d7 fd ff ff jmpq 425660 <__strstr_sse2+0x110> - 425889: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 425890: 74 4e je 4258e0 <__strstr_sse2+0x390> - 425892: 48 89 f7 mov %rsi,%rdi - 425895: 41 bb 01 00 00 00 mov $0x1,%r11d - 42589b: 48 83 c6 01 add $0x1,%rsi - 42589f: ba 01 00 00 00 mov $0x1,%edx - 4258a4: e9 07 fe ff ff jmpq 4256b0 <__strstr_sse2+0x160> - 4258a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4258b0: 48 8b 4c 24 20 mov 0x20(%rsp),%rcx - 4258b5: 45 31 f6 xor %r14d,%r14d - 4258b8: 4e 8d 1c 21 lea (%rcx,%r12,1),%r11 - 4258bc: 4e 8d 24 18 lea (%rax,%r11,1),%r12 - 4258c0: eb 9c jmp 42585e <__strstr_sse2+0x30e> - 4258c2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4258c8: 4c 39 f2 cmp %r14,%rdx - 4258cb: 0f 84 ae 01 00 00 je 425a7f <__strstr_sse2+0x52f> - 4258d1: 48 83 c2 01 add $0x1,%rdx - 4258d5: e9 86 fd ff ff jmpq 425660 <__strstr_sse2+0x110> - 4258da: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4258e0: 4c 39 da cmp %r11,%rdx - 4258e3: 0f 84 a6 01 00 00 je 425a8f <__strstr_sse2+0x53f> - 4258e9: 48 83 c2 01 add $0x1,%rdx - 4258ed: e9 be fd ff ff jmpq 4256b0 <__strstr_sse2+0x160> - 4258f2: 4c 8d 51 01 lea 0x1(%rcx),%r10 - 4258f6: 49 8d 04 0f lea (%r15,%rcx,1),%rax - 4258fa: 48 8d 2c 0b lea (%rbx,%rcx,1),%rbp - 4258fe: 4d 39 d0 cmp %r10,%r8 - 425901: 48 89 44 24 18 mov %rax,0x18(%rsp) - 425906: 0f 82 b1 01 00 00 jb 425abd <__strstr_sse2+0x56d> - 42590c: 4c 89 e0 mov %r12,%rax - 42590f: 44 0f b6 4d 00 movzbl 0x0(%rbp),%r9d - 425914: 41 be 01 00 00 00 mov $0x1,%r14d - 42591a: 48 29 c8 sub %rcx,%rax - 42591d: 48 89 4c 24 38 mov %rcx,0x38(%rsp) - 425922: 48 8b 54 24 18 mov 0x18(%rsp),%rdx - 425927: 48 39 c8 cmp %rcx,%rax - 42592a: 4c 89 54 24 20 mov %r10,0x20(%rsp) - 42592f: 48 0f 42 c1 cmovb %rcx,%rax - 425933: 49 29 ce sub %rcx,%r14 - 425936: 48 83 c0 01 add $0x1,%rax - 42593a: 48 89 44 24 40 mov %rax,0x40(%rsp) - 42593f: 48 8d 41 ff lea -0x1(%rcx),%rax - 425943: 48 89 c7 mov %rax,%rdi - 425946: 48 89 44 24 48 mov %rax,0x48(%rsp) - 42594b: 4a 8d 04 13 lea (%rbx,%r10,1),%rax - 42594f: 48 01 fb add %rdi,%rbx - 425952: 48 89 cf mov %rcx,%rdi - 425955: 4c 89 f1 mov %r14,%rcx - 425958: 48 f7 df neg %rdi - 42595b: 49 89 c5 mov %rax,%r13 - 42595e: 4d 89 fe mov %r15,%r14 - 425961: 48 89 7c 24 30 mov %rdi,0x30(%rsp) - 425966: 49 01 fd add %rdi,%r13 - 425969: 49 89 df mov %rbx,%r15 - 42596c: 48 89 44 24 28 mov %rax,0x28(%rsp) - 425971: 4c 89 c7 mov %r8,%rdi - 425974: 44 89 cb mov %r9d,%ebx - 425977: eb 12 jmp 42598b <__strstr_sse2+0x43b> - 425979: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 425980: 84 c0 test %al,%al - 425982: 0f 84 90 fc ff ff je 425618 <__strstr_sse2+0xc8> - 425988: 48 89 ea mov %rbp,%rdx - 42598b: 0f b6 02 movzbl (%rdx),%eax - 42598e: 48 8d 6a 01 lea 0x1(%rdx),%rbp - 425992: 38 c3 cmp %al,%bl - 425994: 75 ea jne 425980 <__strstr_sse2+0x430> - 425996: 48 2b 6c 24 18 sub 0x18(%rsp),%rbp - 42599b: 4c 8b 54 24 20 mov 0x20(%rsp),%r10 - 4259a0: 4d 39 d4 cmp %r10,%r12 - 4259a3: 48 8d 45 ff lea -0x1(%rbp),%rax - 4259a7: 76 35 jbe 4259de <__strstr_sse2+0x48e> - 4259a9: 0f b6 72 01 movzbl 0x1(%rdx),%esi - 4259ad: 4c 8d 42 02 lea 0x2(%rdx),%r8 - 4259b1: 48 8b 54 24 28 mov 0x28(%rsp),%rdx - 4259b6: 40 38 32 cmp %sil,(%rdx) - 4259b9: 4c 89 d2 mov %r10,%rdx - 4259bc: 75 67 jne 425a25 <__strstr_sse2+0x4d5> - 4259be: 4c 03 44 24 30 add 0x30(%rsp),%r8 - 4259c3: eb 10 jmp 4259d5 <__strstr_sse2+0x485> - 4259c5: 0f 1f 00 nopl (%rax) - 4259c8: 41 0f b6 74 10 fe movzbl -0x2(%r8,%rdx,1),%esi - 4259ce: 41 38 74 15 ff cmp %sil,-0x1(%r13,%rdx,1) - 4259d3: 75 50 jne 425a25 <__strstr_sse2+0x4d5> - 4259d5: 48 83 c2 01 add $0x1,%rdx - 4259d9: 49 39 d4 cmp %rdx,%r12 - 4259dc: 77 ea ja 4259c8 <__strstr_sse2+0x478> - 4259de: 48 8b 74 24 48 mov 0x48(%rsp),%rsi - 4259e3: 48 8d 2c 30 lea (%rax,%rsi,1),%rbp - 4259e7: 4c 01 f5 add %r14,%rbp - 4259ea: 48 83 fe ff cmp $0xffffffffffffffff,%rsi - 4259ee: 74 2d je 425a1d <__strstr_sse2+0x4cd> - 4259f0: 0f b6 75 00 movzbl 0x0(%rbp),%esi - 4259f4: 31 d2 xor %edx,%edx - 4259f6: 41 3a 37 cmp (%r15),%sil - 4259f9: 74 1d je 425a18 <__strstr_sse2+0x4c8> - 4259fb: e9 9f 00 00 00 jmpq 425a9f <__strstr_sse2+0x54f> - 425a00: 45 0f b6 44 17 ff movzbl -0x1(%r15,%rdx,1),%r8d - 425a06: 48 83 ea 01 sub $0x1,%rdx - 425a0a: 0f b6 74 15 00 movzbl 0x0(%rbp,%rdx,1),%esi - 425a0f: 41 38 f0 cmp %sil,%r8b - 425a12: 0f 85 87 00 00 00 jne 425a9f <__strstr_sse2+0x54f> - 425a18: 48 39 d1 cmp %rdx,%rcx - 425a1b: 75 e3 jne 425a00 <__strstr_sse2+0x4b0> - 425a1d: 4c 01 f0 add %r14,%rax - 425a20: e9 f5 fb ff ff jmpq 42561a <__strstr_sse2+0xca> - 425a25: 40 84 f6 test %sil,%sil - 425a28: 0f 84 ea fb ff ff je 425618 <__strstr_sse2+0xc8> - 425a2e: 48 8d 2c 01 lea (%rcx,%rax,1),%rbp - 425a32: 48 01 d5 add %rdx,%rbp - 425a35: 4d 8d 04 2c lea (%r12,%rbp,1),%r8 - 425a39: 31 f6 xor %esi,%esi - 425a3b: 48 89 4c 24 10 mov %rcx,0x10(%rsp) - 425a40: 4c 89 c2 mov %r8,%rdx - 425a43: 4c 89 44 24 08 mov %r8,0x8(%rsp) - 425a48: 48 29 fa sub %rdi,%rdx - 425a4b: 4c 01 f7 add %r14,%rdi - 425a4e: e8 ed 00 00 00 callq 425b40 <__memchr> - 425a53: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 - 425a58: 4d 85 c0 test %r8,%r8 - 425a5b: 0f 84 b7 fb ff ff je 425618 <__strstr_sse2+0xc8> - 425a61: 48 85 c0 test %rax,%rax - 425a64: 0f 85 ae fb ff ff jne 425618 <__strstr_sse2+0xc8> - 425a6a: 48 03 6c 24 38 add 0x38(%rsp),%rbp - 425a6f: 4c 89 c7 mov %r8,%rdi - 425a72: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx - 425a77: 4c 01 f5 add %r14,%rbp - 425a7a: e9 09 ff ff ff jmpq 425988 <__strstr_sse2+0x438> - 425a7f: 49 89 d6 mov %rdx,%r14 - 425a82: 48 89 c6 mov %rax,%rsi - 425a85: ba 01 00 00 00 mov $0x1,%edx - 425a8a: e9 d1 fb ff ff jmpq 425660 <__strstr_sse2+0x110> - 425a8f: 49 89 d3 mov %rdx,%r11 - 425a92: 48 89 c6 mov %rax,%rsi - 425a95: ba 01 00 00 00 mov $0x1,%edx - 425a9a: e9 11 fc ff ff jmpq 4256b0 <__strstr_sse2+0x160> - 425a9f: 40 84 f6 test %sil,%sil - 425aa2: 0f 84 70 fb ff ff je 425618 <__strstr_sse2+0xc8> - 425aa8: 48 8b 74 24 40 mov 0x40(%rsp),%rsi - 425aad: 48 8d 2c 06 lea (%rsi,%rax,1),%rbp - 425ab1: eb 82 jmp 425a35 <__strstr_sse2+0x4e5> - 425ab3: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 425ab8: e9 8a fd ff ff jmpq 425847 <__strstr_sse2+0x2f7> - 425abd: 48 89 c8 mov %rcx,%rax - 425ac0: 4b 8d 3c 07 lea (%r15,%r8,1),%rdi - 425ac4: 31 f6 xor %esi,%esi - 425ac6: 4c 29 c0 sub %r8,%rax - 425ac9: 4c 89 54 24 10 mov %r10,0x10(%rsp) - 425ace: 48 89 4c 24 08 mov %rcx,0x8(%rsp) - 425ad3: 48 8d 50 01 lea 0x1(%rax),%rdx - 425ad7: e8 64 00 00 00 callq 425b40 <__memchr> - 425adc: 48 89 c2 mov %rax,%rdx - 425adf: 31 c0 xor %eax,%eax - 425ae1: 48 85 d2 test %rdx,%rdx - 425ae4: 0f 85 30 fb ff ff jne 42561a <__strstr_sse2+0xca> - 425aea: 4c 8b 54 24 10 mov 0x10(%rsp),%r10 - 425aef: 48 8b 4c 24 08 mov 0x8(%rsp),%rcx - 425af4: 4d 89 d0 mov %r10,%r8 - 425af7: e9 10 fe ff ff jmpq 42590c <__strstr_sse2+0x3bc> - 425afc: 48 89 f3 mov %rsi,%rbx - 425aff: 41 b9 01 00 00 00 mov $0x1,%r9d - 425b05: e9 9d fa ff ff jmpq 4255a7 <__strstr_sse2+0x57> - 425b0a: 4b 8d 04 27 lea (%r15,%r12,1),%rax - 425b0e: e9 07 fb ff ff jmpq 42561a <__strstr_sse2+0xca> - 425b13: 0f 1f 00 nopl (%rax) - 425b16: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 425b1d: 00 00 00 - -0000000000425b20 <__libc_strstr>: - 425b20: f6 05 99 6b 2a 00 10 testb $0x10,0x2a6b99(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 425b27: ba 50 55 42 00 mov $0x425550,%edx - 425b2c: b8 a0 d4 43 00 mov $0x43d4a0,%eax - 425b31: 48 0f 44 c2 cmove %rdx,%rax - 425b35: c3 retq - 425b36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 425b3d: 00 00 00 - -0000000000425b40 <__memchr>: - 425b40: 66 48 0f 6e ce movq %rsi,%xmm1 - 425b45: 48 89 f9 mov %rdi,%rcx - 425b48: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 - 425b4c: 48 85 d2 test %rdx,%rdx - 425b4f: 0f 84 2b 03 00 00 je 425e80 <__memchr+0x340> - 425b55: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 - 425b59: 48 83 e1 3f and $0x3f,%rcx - 425b5d: 66 0f 70 c9 00 pshufd $0x0,%xmm1,%xmm1 - 425b62: 48 83 f9 30 cmp $0x30,%rcx - 425b66: 77 48 ja 425bb0 <__memchr+0x70> - 425b68: f3 0f 6f 07 movdqu (%rdi),%xmm0 - 425b6c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 425b70: 66 0f d7 c0 pmovmskb %xmm0,%eax - 425b74: 85 c0 test %eax,%eax - 425b76: 0f 85 c4 02 00 00 jne 425e40 <__memchr+0x300> - 425b7c: 48 83 ea 10 sub $0x10,%rdx - 425b80: 0f 86 fa 02 00 00 jbe 425e80 <__memchr+0x340> - 425b86: 48 83 c7 10 add $0x10,%rdi - 425b8a: 48 83 e1 0f and $0xf,%rcx - 425b8e: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 425b92: 48 01 ca add %rcx,%rdx - 425b95: 48 83 ea 40 sub $0x40,%rdx - 425b99: 0f 86 c1 01 00 00 jbe 425d60 <__memchr+0x220> - 425b9f: eb 5f jmp 425c00 <__memchr+0xc0> - 425ba1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 425ba6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 425bad: 00 00 00 - 425bb0: 48 83 e1 0f and $0xf,%rcx - 425bb4: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 425bb8: 66 0f 6f 07 movdqa (%rdi),%xmm0 - 425bbc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 425bc0: 66 0f d7 c0 pmovmskb %xmm0,%eax - 425bc4: d3 f8 sar %cl,%eax - 425bc6: 85 c0 test %eax,%eax - 425bc8: 74 16 je 425be0 <__memchr+0xa0> - 425bca: 0f bc c0 bsf %eax,%eax - 425bcd: 48 29 c2 sub %rax,%rdx - 425bd0: 0f 86 aa 02 00 00 jbe 425e80 <__memchr+0x340> - 425bd6: 48 01 f8 add %rdi,%rax - 425bd9: 48 01 c8 add %rcx,%rax - 425bdc: c3 retq - 425bdd: 0f 1f 00 nopl (%rax) - 425be0: 48 01 ca add %rcx,%rdx - 425be3: 48 83 ea 10 sub $0x10,%rdx - 425be7: 0f 86 93 02 00 00 jbe 425e80 <__memchr+0x340> - 425bed: 48 83 c7 10 add $0x10,%rdi - 425bf1: 48 83 ea 40 sub $0x40,%rdx - 425bf5: 0f 86 65 01 00 00 jbe 425d60 <__memchr+0x220> - 425bfb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 425c00: 66 0f 6f 07 movdqa (%rdi),%xmm0 - 425c04: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 425c08: 66 0f d7 c0 pmovmskb %xmm0,%eax - 425c0c: 85 c0 test %eax,%eax - 425c0e: 0f 85 fc 01 00 00 jne 425e10 <__memchr+0x2d0> - 425c14: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 - 425c19: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 425c1d: 66 0f d7 c2 pmovmskb %xmm2,%eax - 425c21: 85 c0 test %eax,%eax - 425c23: 0f 85 f7 01 00 00 jne 425e20 <__memchr+0x2e0> - 425c29: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 - 425c2e: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 425c32: 66 0f d7 c3 pmovmskb %xmm3,%eax - 425c36: 85 c0 test %eax,%eax - 425c38: 0f 85 f2 01 00 00 jne 425e30 <__memchr+0x2f0> - 425c3e: 66 0f 6f 67 30 movdqa 0x30(%rdi),%xmm4 - 425c43: 66 0f 74 e1 pcmpeqb %xmm1,%xmm4 - 425c47: 48 83 c7 40 add $0x40,%rdi - 425c4b: 66 0f d7 c4 pmovmskb %xmm4,%eax - 425c4f: 85 c0 test %eax,%eax - 425c51: 0f 85 a9 01 00 00 jne 425e00 <__memchr+0x2c0> - 425c57: 48 f7 c7 3f 00 00 00 test $0x3f,%rdi - 425c5e: 74 70 je 425cd0 <__memchr+0x190> - 425c60: 48 83 ea 40 sub $0x40,%rdx - 425c64: 0f 86 f6 00 00 00 jbe 425d60 <__memchr+0x220> - 425c6a: 66 0f 6f 07 movdqa (%rdi),%xmm0 - 425c6e: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 425c72: 66 0f d7 c0 pmovmskb %xmm0,%eax - 425c76: 85 c0 test %eax,%eax - 425c78: 0f 85 92 01 00 00 jne 425e10 <__memchr+0x2d0> - 425c7e: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 - 425c83: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 425c87: 66 0f d7 c2 pmovmskb %xmm2,%eax - 425c8b: 85 c0 test %eax,%eax - 425c8d: 0f 85 8d 01 00 00 jne 425e20 <__memchr+0x2e0> - 425c93: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 - 425c98: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 425c9c: 66 0f d7 c3 pmovmskb %xmm3,%eax - 425ca0: 85 c0 test %eax,%eax - 425ca2: 0f 85 88 01 00 00 jne 425e30 <__memchr+0x2f0> - 425ca8: 66 0f 6f 5f 30 movdqa 0x30(%rdi),%xmm3 - 425cad: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 425cb1: 66 0f d7 c3 pmovmskb %xmm3,%eax - 425cb5: 48 83 c7 40 add $0x40,%rdi - 425cb9: 85 c0 test %eax,%eax - 425cbb: 0f 85 3f 01 00 00 jne 425e00 <__memchr+0x2c0> - 425cc1: 48 89 f9 mov %rdi,%rcx - 425cc4: 48 83 e7 c0 and $0xffffffffffffffc0,%rdi - 425cc8: 48 83 e1 3f and $0x3f,%rcx - 425ccc: 48 01 ca add %rcx,%rdx - 425ccf: 90 nop - 425cd0: 48 83 ea 40 sub $0x40,%rdx - 425cd4: 0f 86 86 00 00 00 jbe 425d60 <__memchr+0x220> - 425cda: 66 0f 6f 07 movdqa (%rdi),%xmm0 - 425cde: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 - 425ce3: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 - 425ce8: 66 0f 6f 67 30 movdqa 0x30(%rdi),%xmm4 - 425ced: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 425cf1: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 425cf5: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 425cf9: 66 0f 74 e1 pcmpeqb %xmm1,%xmm4 - 425cfd: 66 0f de d8 pmaxub %xmm0,%xmm3 - 425d01: 66 0f de e2 pmaxub %xmm2,%xmm4 - 425d05: 66 0f de e3 pmaxub %xmm3,%xmm4 - 425d09: 66 0f d7 c4 pmovmskb %xmm4,%eax - 425d0d: 48 83 c7 40 add $0x40,%rdi - 425d11: 85 c0 test %eax,%eax - 425d13: 74 bb je 425cd0 <__memchr+0x190> - 425d15: 48 83 ef 40 sub $0x40,%rdi - 425d19: 66 0f d7 c0 pmovmskb %xmm0,%eax - 425d1d: 85 c0 test %eax,%eax - 425d1f: 0f 85 eb 00 00 00 jne 425e10 <__memchr+0x2d0> - 425d25: 66 0f d7 c2 pmovmskb %xmm2,%eax - 425d29: 85 c0 test %eax,%eax - 425d2b: 0f 85 ef 00 00 00 jne 425e20 <__memchr+0x2e0> - 425d31: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 - 425d36: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 425d3a: 66 0f 74 4f 30 pcmpeqb 0x30(%rdi),%xmm1 - 425d3f: 66 0f d7 c3 pmovmskb %xmm3,%eax - 425d43: 85 c0 test %eax,%eax - 425d45: 0f 85 e5 00 00 00 jne 425e30 <__memchr+0x2f0> - 425d4b: 66 0f d7 c1 pmovmskb %xmm1,%eax - 425d4f: 0f bc c0 bsf %eax,%eax - 425d52: 48 8d 44 07 30 lea 0x30(%rdi,%rax,1),%rax - 425d57: c3 retq - 425d58: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 425d5f: 00 - 425d60: 48 83 c2 20 add $0x20,%rdx - 425d64: 7e 6a jle 425dd0 <__memchr+0x290> - 425d66: 66 0f 6f 07 movdqa (%rdi),%xmm0 - 425d6a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 425d6e: 66 0f d7 c0 pmovmskb %xmm0,%eax - 425d72: 85 c0 test %eax,%eax - 425d74: 0f 85 96 00 00 00 jne 425e10 <__memchr+0x2d0> - 425d7a: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 - 425d7f: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 425d83: 66 0f d7 c2 pmovmskb %xmm2,%eax - 425d87: 85 c0 test %eax,%eax - 425d89: 0f 85 91 00 00 00 jne 425e20 <__memchr+0x2e0> - 425d8f: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 - 425d94: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 425d98: 66 0f d7 c3 pmovmskb %xmm3,%eax - 425d9c: 85 c0 test %eax,%eax - 425d9e: 0f 85 bc 00 00 00 jne 425e60 <__memchr+0x320> - 425da4: 48 83 ea 10 sub $0x10,%rdx - 425da8: 0f 8e d2 00 00 00 jle 425e80 <__memchr+0x340> - 425dae: 66 0f 74 4f 30 pcmpeqb 0x30(%rdi),%xmm1 - 425db3: 66 0f d7 c1 pmovmskb %xmm1,%eax - 425db7: 85 c0 test %eax,%eax - 425db9: 0f 85 b1 00 00 00 jne 425e70 <__memchr+0x330> - 425dbf: 48 31 c0 xor %rax,%rax - 425dc2: c3 retq - 425dc3: 0f 1f 00 nopl (%rax) - 425dc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 425dcd: 00 00 00 - 425dd0: 48 83 c2 20 add $0x20,%rdx - 425dd4: 66 0f 6f 07 movdqa (%rdi),%xmm0 - 425dd8: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 425ddc: 66 0f d7 c0 pmovmskb %xmm0,%eax - 425de0: 85 c0 test %eax,%eax - 425de2: 75 5c jne 425e40 <__memchr+0x300> - 425de4: 48 83 ea 10 sub $0x10,%rdx - 425de8: 0f 86 92 00 00 00 jbe 425e80 <__memchr+0x340> - 425dee: 66 0f 74 4f 10 pcmpeqb 0x10(%rdi),%xmm1 - 425df3: 66 0f d7 c1 pmovmskb %xmm1,%eax - 425df7: 85 c0 test %eax,%eax - 425df9: 75 55 jne 425e50 <__memchr+0x310> - 425dfb: 48 31 c0 xor %rax,%rax - 425dfe: c3 retq - 425dff: 90 nop - 425e00: 0f bc c0 bsf %eax,%eax - 425e03: 48 8d 44 38 f0 lea -0x10(%rax,%rdi,1),%rax - 425e08: c3 retq - 425e09: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 425e10: 0f bc c0 bsf %eax,%eax - 425e13: 48 01 f8 add %rdi,%rax - 425e16: c3 retq - 425e17: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 425e1e: 00 00 - 425e20: 0f bc c0 bsf %eax,%eax - 425e23: 48 8d 44 38 10 lea 0x10(%rax,%rdi,1),%rax - 425e28: c3 retq - 425e29: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 425e30: 0f bc c0 bsf %eax,%eax - 425e33: 48 8d 44 38 20 lea 0x20(%rax,%rdi,1),%rax - 425e38: c3 retq - 425e39: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 425e40: 0f bc c0 bsf %eax,%eax - 425e43: 48 29 c2 sub %rax,%rdx - 425e46: 76 38 jbe 425e80 <__memchr+0x340> - 425e48: 48 01 f8 add %rdi,%rax - 425e4b: c3 retq - 425e4c: 0f 1f 40 00 nopl 0x0(%rax) - 425e50: 0f bc c0 bsf %eax,%eax - 425e53: 48 29 c2 sub %rax,%rdx - 425e56: 76 28 jbe 425e80 <__memchr+0x340> - 425e58: 48 8d 44 07 10 lea 0x10(%rdi,%rax,1),%rax - 425e5d: c3 retq - 425e5e: 66 90 xchg %ax,%ax - 425e60: 0f bc c0 bsf %eax,%eax - 425e63: 48 29 c2 sub %rax,%rdx - 425e66: 76 18 jbe 425e80 <__memchr+0x340> - 425e68: 48 8d 44 07 20 lea 0x20(%rdi,%rax,1),%rax - 425e6d: c3 retq - 425e6e: 66 90 xchg %ax,%ax - 425e70: 0f bc c0 bsf %eax,%eax - 425e73: 48 29 c2 sub %rax,%rdx - 425e76: 76 08 jbe 425e80 <__memchr+0x340> - 425e78: 48 8d 44 07 30 lea 0x30(%rdi,%rax,1),%rax - 425e7d: c3 retq - 425e7e: 66 90 xchg %ax,%ax - 425e80: 48 31 c0 xor %rax,%rax - 425e83: c3 retq - 425e84: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 425e8b: 00 00 00 - 425e8e: 66 90 xchg %ax,%ax - -0000000000425e90 : - 425e90: f7 05 f6 67 2a 00 00 testl $0x200,0x2a67f6(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> - 425e97: 02 00 00 - 425e9a: 75 08 jne 425ea4 - 425e9c: 48 8d 05 1d 00 00 00 lea 0x1d(%rip),%rax # 425ec0 <__memcmp_sse2> - 425ea3: c3 retq - 425ea4: f7 05 e2 67 2a 00 00 testl $0x80000,0x2a67e2(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> - 425eab: 00 08 00 - 425eae: 74 08 je 425eb8 - 425eb0: 48 8d 05 49 84 00 00 lea 0x8449(%rip),%rax # 42e300 <__memcmp_sse4_1> - 425eb7: c3 retq - 425eb8: 48 8d 05 71 5e 01 00 lea 0x15e71(%rip),%rax # 43bd30 <__memcmp_ssse3> - 425ebf: c3 retq - -0000000000425ec0 <__memcmp_sse2>: - 425ec0: 48 85 d2 test %rdx,%rdx - 425ec3: 0f 84 f7 00 00 00 je 425fc0 <__memcmp_sse2+0x100> - 425ec9: 48 83 fa 01 cmp $0x1,%rdx - 425ecd: 0f 8e bd 00 00 00 jle 425f90 <__memcmp_sse2+0xd0> - 425ed3: 48 29 fe sub %rdi,%rsi - 425ed6: 49 89 d2 mov %rdx,%r10 - 425ed9: 49 83 fa 20 cmp $0x20,%r10 - 425edd: 0f 8d e0 00 00 00 jge 425fc3 <__memcmp_sse2+0x103> - 425ee3: 49 f7 c2 01 00 00 00 test $0x1,%r10 - 425eea: 74 1d je 425f09 <__memcmp_sse2+0x49> - 425eec: 0f b6 07 movzbl (%rdi),%eax - 425eef: 0f b6 14 37 movzbl (%rdi,%rsi,1),%edx - 425ef3: 49 83 ea 01 sub $0x1,%r10 - 425ef7: 0f 84 99 00 00 00 je 425f96 <__memcmp_sse2+0xd6> - 425efd: 48 83 c7 01 add $0x1,%rdi - 425f01: 29 d0 sub %edx,%eax - 425f03: 0f 85 8f 00 00 00 jne 425f98 <__memcmp_sse2+0xd8> - 425f09: 49 f7 c2 02 00 00 00 test $0x2,%r10 - 425f10: 74 15 je 425f27 <__memcmp_sse2+0x67> - 425f12: 0f b7 07 movzwl (%rdi),%eax - 425f15: 0f b7 14 37 movzwl (%rdi,%rsi,1),%edx - 425f19: 49 83 ea 02 sub $0x2,%r10 - 425f1d: 74 7a je 425f99 <__memcmp_sse2+0xd9> - 425f1f: 48 83 c7 02 add $0x2,%rdi - 425f23: 39 d0 cmp %edx,%eax - 425f25: 75 72 jne 425f99 <__memcmp_sse2+0xd9> - 425f27: 49 f7 c2 04 00 00 00 test $0x4,%r10 - 425f2e: 74 13 je 425f43 <__memcmp_sse2+0x83> - 425f30: 8b 07 mov (%rdi),%eax - 425f32: 8b 14 37 mov (%rdi,%rsi,1),%edx - 425f35: 49 83 ea 04 sub $0x4,%r10 - 425f39: 74 5e je 425f99 <__memcmp_sse2+0xd9> - 425f3b: 48 83 c7 04 add $0x4,%rdi - 425f3f: 39 d0 cmp %edx,%eax - 425f41: 75 56 jne 425f99 <__memcmp_sse2+0xd9> - 425f43: 49 f7 c2 08 00 00 00 test $0x8,%r10 - 425f4a: 74 16 je 425f62 <__memcmp_sse2+0xa2> - 425f4c: 48 8b 07 mov (%rdi),%rax - 425f4f: 48 8b 14 37 mov (%rdi,%rsi,1),%rdx - 425f53: 49 83 ea 08 sub $0x8,%r10 - 425f57: 74 40 je 425f99 <__memcmp_sse2+0xd9> - 425f59: 48 83 c7 08 add $0x8,%rdi - 425f5d: 48 39 d0 cmp %rdx,%rax - 425f60: 75 37 jne 425f99 <__memcmp_sse2+0xd9> - 425f62: f3 0f 6f 0f movdqu (%rdi),%xmm1 - 425f66: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 - 425f6b: 66 0f 74 c8 pcmpeqb %xmm0,%xmm1 - 425f6f: 66 0f d7 d1 pmovmskb %xmm1,%edx - 425f73: 31 c0 xor %eax,%eax - 425f75: 81 ea ff ff 00 00 sub $0xffff,%edx - 425f7b: 74 43 je 425fc0 <__memcmp_sse2+0x100> - 425f7d: 0f bc ca bsf %edx,%ecx - 425f80: 48 8d 0c 0f lea (%rdi,%rcx,1),%rcx - 425f84: 0f b6 01 movzbl (%rcx),%eax - 425f87: 0f b6 14 0e movzbl (%rsi,%rcx,1),%edx - 425f8b: eb 09 jmp 425f96 <__memcmp_sse2+0xd6> - 425f8d: 0f 1f 00 nopl (%rax) - 425f90: 0f b6 07 movzbl (%rdi),%eax - 425f93: 0f b6 16 movzbl (%rsi),%edx - 425f96: 29 d0 sub %edx,%eax - 425f98: c3 retq - 425f99: 48 39 d0 cmp %rdx,%rax - 425f9c: 74 22 je 425fc0 <__memcmp_sse2+0x100> - 425f9e: 49 89 c3 mov %rax,%r11 - 425fa1: 49 29 d3 sub %rdx,%r11 - 425fa4: 49 0f bc cb bsf %r11,%rcx - 425fa8: 48 c1 f9 03 sar $0x3,%rcx - 425fac: 48 c1 e1 03 shl $0x3,%rcx - 425fb0: 48 d3 f8 sar %cl,%rax - 425fb3: 0f b6 c0 movzbl %al,%eax - 425fb6: 48 d3 fa sar %cl,%rdx - 425fb9: 0f b6 d2 movzbl %dl,%edx - 425fbc: 29 d0 sub %edx,%eax - 425fbe: c3 retq - 425fbf: 90 nop - 425fc0: 31 c0 xor %eax,%eax - 425fc2: c3 retq - 425fc3: 49 89 d3 mov %rdx,%r11 - 425fc6: 49 01 fb add %rdi,%r11 - 425fc9: 49 89 f8 mov %rdi,%r8 - 425fcc: 49 83 e0 0f and $0xf,%r8 - 425fd0: 74 25 je 425ff7 <__memcmp_sse2+0x137> - 425fd2: f3 0f 6f 0f movdqu (%rdi),%xmm1 - 425fd6: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 - 425fdb: 66 0f 74 c8 pcmpeqb %xmm0,%xmm1 - 425fdf: 66 0f d7 d1 pmovmskb %xmm1,%edx - 425fe3: 81 ea ff ff 00 00 sub $0xffff,%edx - 425fe9: 0f 85 61 01 00 00 jne 426150 <__memcmp_sse2+0x290> - 425fef: 49 f7 d8 neg %r8 - 425ff2: 4a 8d 7c 07 10 lea 0x10(%rdi,%r8,1),%rdi - 425ff7: 48 f7 c6 0f 00 00 00 test $0xf,%rsi - 425ffe: 0f 84 5f 01 00 00 je 426163 <__memcmp_sse2+0x2a3> - 426004: 48 f7 c7 10 00 00 00 test $0x10,%rdi - 42600b: 74 1d je 42602a <__memcmp_sse2+0x16a> - 42600d: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 - 426012: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 426016: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42601a: 81 ea ff ff 00 00 sub $0xffff,%edx - 426020: 0f 85 2a 01 00 00 jne 426150 <__memcmp_sse2+0x290> - 426026: 48 83 c7 10 add $0x10,%rdi - 42602a: 4d 89 da mov %r11,%r10 - 42602d: 49 83 e2 e0 and $0xffffffffffffffe0,%r10 - 426031: 4c 39 d7 cmp %r10,%rdi - 426034: 0f 8d 03 01 00 00 jge 42613d <__memcmp_sse2+0x27d> - 42603a: 48 f7 c7 20 00 00 00 test $0x20,%rdi - 426041: 74 3a je 42607d <__memcmp_sse2+0x1bd> - 426043: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 - 426048: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 42604c: 66 0f d7 d0 pmovmskb %xmm0,%edx - 426050: 81 ea ff ff 00 00 sub $0xffff,%edx - 426056: 0f 85 f4 00 00 00 jne 426150 <__memcmp_sse2+0x290> - 42605c: 48 83 c7 10 add $0x10,%rdi - 426060: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 - 426065: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 426069: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42606d: 81 ea ff ff 00 00 sub $0xffff,%edx - 426073: 0f 85 d7 00 00 00 jne 426150 <__memcmp_sse2+0x290> - 426079: 48 83 c7 10 add $0x10,%rdi - 42607d: 4d 89 da mov %r11,%r10 - 426080: 49 83 e2 c0 and $0xffffffffffffffc0,%r10 - 426084: 4c 39 d7 cmp %r10,%rdi - 426087: 7d 71 jge 4260fa <__memcmp_sse2+0x23a> - 426089: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 - 42608e: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 426092: 66 0f d7 d0 pmovmskb %xmm0,%edx - 426096: 81 ea ff ff 00 00 sub $0xffff,%edx - 42609c: 0f 85 ae 00 00 00 jne 426150 <__memcmp_sse2+0x290> - 4260a2: 48 83 c7 10 add $0x10,%rdi - 4260a6: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 - 4260ab: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 4260af: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4260b3: 81 ea ff ff 00 00 sub $0xffff,%edx - 4260b9: 0f 85 91 00 00 00 jne 426150 <__memcmp_sse2+0x290> - 4260bf: 48 83 c7 10 add $0x10,%rdi - 4260c3: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 - 4260c8: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 4260cc: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4260d0: 81 ea ff ff 00 00 sub $0xffff,%edx - 4260d6: 75 78 jne 426150 <__memcmp_sse2+0x290> - 4260d8: 48 83 c7 10 add $0x10,%rdi - 4260dc: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 - 4260e1: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 4260e5: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4260e9: 81 ea ff ff 00 00 sub $0xffff,%edx - 4260ef: 75 5f jne 426150 <__memcmp_sse2+0x290> - 4260f1: 48 83 c7 10 add $0x10,%rdi - 4260f5: 49 39 fa cmp %rdi,%r10 - 4260f8: 75 8f jne 426089 <__memcmp_sse2+0x1c9> - 4260fa: 4d 89 da mov %r11,%r10 - 4260fd: 49 83 e2 e0 and $0xffffffffffffffe0,%r10 - 426101: 4c 39 d7 cmp %r10,%rdi - 426104: 7d 37 jge 42613d <__memcmp_sse2+0x27d> - 426106: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 - 42610b: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 42610f: 66 0f d7 d0 pmovmskb %xmm0,%edx - 426113: 81 ea ff ff 00 00 sub $0xffff,%edx - 426119: 75 35 jne 426150 <__memcmp_sse2+0x290> - 42611b: 48 83 c7 10 add $0x10,%rdi - 42611f: f3 0f 6f 04 37 movdqu (%rdi,%rsi,1),%xmm0 - 426124: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 426128: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42612c: 81 ea ff ff 00 00 sub $0xffff,%edx - 426132: 75 1c jne 426150 <__memcmp_sse2+0x290> - 426134: 48 83 c7 10 add $0x10,%rdi - 426138: 49 39 fa cmp %rdi,%r10 - 42613b: 75 c9 jne 426106 <__memcmp_sse2+0x246> - 42613d: 49 29 fb sub %rdi,%r11 - 426140: 0f 84 7a fe ff ff je 425fc0 <__memcmp_sse2+0x100> - 426146: 4d 89 da mov %r11,%r10 - 426149: e9 95 fd ff ff jmpq 425ee3 <__memcmp_sse2+0x23> - 42614e: 66 90 xchg %ax,%ax - 426150: 0f bc ca bsf %edx,%ecx - 426153: 0f b6 04 0f movzbl (%rdi,%rcx,1),%eax - 426157: 48 01 fe add %rdi,%rsi - 42615a: 0f b6 14 0e movzbl (%rsi,%rcx,1),%edx - 42615e: e9 33 fe ff ff jmpq 425f96 <__memcmp_sse2+0xd6> - 426163: 4d 89 da mov %r11,%r10 - 426166: 49 83 e2 e0 and $0xffffffffffffffe0,%r10 - 42616a: 4c 39 d7 cmp %r10,%rdi - 42616d: 7d ce jge 42613d <__memcmp_sse2+0x27d> - 42616f: 48 f7 c7 10 00 00 00 test $0x10,%rdi - 426176: 74 1e je 426196 <__memcmp_sse2+0x2d6> - 426178: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 - 42617d: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 426181: 66 0f d7 d0 pmovmskb %xmm0,%edx - 426185: 81 ea ff ff 00 00 sub $0xffff,%edx - 42618b: 75 c3 jne 426150 <__memcmp_sse2+0x290> - 42618d: 48 83 c7 10 add $0x10,%rdi - 426191: 49 39 fa cmp %rdi,%r10 - 426194: 74 a7 je 42613d <__memcmp_sse2+0x27d> - 426196: 4d 89 da mov %r11,%r10 - 426199: 49 83 e2 c0 and $0xffffffffffffffc0,%r10 - 42619d: 48 f7 c7 20 00 00 00 test $0x20,%rdi - 4261a4: 74 36 je 4261dc <__memcmp_sse2+0x31c> - 4261a6: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 - 4261ab: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 4261af: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4261b3: 81 ea ff ff 00 00 sub $0xffff,%edx - 4261b9: 75 95 jne 426150 <__memcmp_sse2+0x290> - 4261bb: 48 83 c7 10 add $0x10,%rdi - 4261bf: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 - 4261c4: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 4261c8: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4261cc: 81 ea ff ff 00 00 sub $0xffff,%edx - 4261d2: 0f 85 78 ff ff ff jne 426150 <__memcmp_sse2+0x290> - 4261d8: 48 83 c7 10 add $0x10,%rdi - 4261dc: 49 39 fa cmp %rdi,%r10 - 4261df: 0f 84 15 ff ff ff je 4260fa <__memcmp_sse2+0x23a> - 4261e5: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 - 4261ea: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 4261ee: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4261f2: 81 ea ff ff 00 00 sub $0xffff,%edx - 4261f8: 0f 85 52 ff ff ff jne 426150 <__memcmp_sse2+0x290> - 4261fe: 48 83 c7 10 add $0x10,%rdi - 426202: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 - 426207: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 42620b: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42620f: 81 ea ff ff 00 00 sub $0xffff,%edx - 426215: 0f 85 35 ff ff ff jne 426150 <__memcmp_sse2+0x290> - 42621b: 48 83 c7 10 add $0x10,%rdi - 42621f: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 - 426224: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 426228: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42622c: 81 ea ff ff 00 00 sub $0xffff,%edx - 426232: 0f 85 18 ff ff ff jne 426150 <__memcmp_sse2+0x290> - 426238: 48 83 c7 10 add $0x10,%rdi - 42623c: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 - 426241: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 426245: 66 0f d7 d0 pmovmskb %xmm0,%edx - 426249: 81 ea ff ff 00 00 sub $0xffff,%edx - 42624f: 0f 85 fb fe ff ff jne 426150 <__memcmp_sse2+0x290> - 426255: 48 83 c7 10 add $0x10,%rdi - 426259: 49 39 fa cmp %rdi,%r10 - 42625c: 75 87 jne 4261e5 <__memcmp_sse2+0x325> - 42625e: 4d 89 da mov %r11,%r10 - 426261: 49 83 e2 e0 and $0xffffffffffffffe0,%r10 - 426265: 4c 39 d7 cmp %r10,%rdi - 426268: 0f 8d cf fe ff ff jge 42613d <__memcmp_sse2+0x27d> - 42626e: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 - 426273: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 426277: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42627b: 81 ea ff ff 00 00 sub $0xffff,%edx - 426281: 0f 85 c9 fe ff ff jne 426150 <__memcmp_sse2+0x290> - 426287: 48 83 c7 10 add $0x10,%rdi - 42628b: 66 0f 6f 04 37 movdqa (%rdi,%rsi,1),%xmm0 - 426290: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 426294: 66 0f d7 d0 pmovmskb %xmm0,%edx - 426298: 81 ea ff ff 00 00 sub $0xffff,%edx - 42629e: 0f 85 ac fe ff ff jne 426150 <__memcmp_sse2+0x290> - 4262a4: 48 83 c7 10 add $0x10,%rdi - 4262a8: 4c 39 d7 cmp %r10,%rdi - 4262ab: 75 c1 jne 42626e <__memcmp_sse2+0x3ae> - 4262ad: 49 29 fb sub %rdi,%r11 - 4262b0: 0f 84 0a fd ff ff je 425fc0 <__memcmp_sse2+0x100> - 4262b6: 4d 89 da mov %r11,%r10 - 4262b9: e9 25 fc ff ff jmpq 425ee3 <__memcmp_sse2+0x23> - 4262be: 66 90 xchg %ax,%ax - -00000000004262c0 <__memmove_sse2>: - 4262c0: 41 55 push %r13 - 4262c2: 48 89 f8 mov %rdi,%rax - 4262c5: 41 54 push %r12 - 4262c7: 55 push %rbp - 4262c8: 53 push %rbx - 4262c9: 48 29 f0 sub %rsi,%rax - 4262cc: 49 89 fc mov %rdi,%r12 - 4262cf: 48 83 ec 08 sub $0x8,%rsp - 4262d3: 48 39 d0 cmp %rdx,%rax - 4262d6: 0f 82 99 00 00 00 jb 426375 <__memmove_sse2+0xb5> - 4262dc: 48 83 fa 0f cmp $0xf,%rdx - 4262e0: 48 89 fb mov %rdi,%rbx - 4262e3: 49 89 f5 mov %rsi,%r13 - 4262e6: 76 5e jbe 426346 <__memmove_sse2+0x86> - 4262e8: 48 89 f9 mov %rdi,%rcx - 4262eb: 48 f7 d9 neg %rcx - 4262ee: 83 e1 07 and $0x7,%ecx - 4262f1: 48 29 ca sub %rcx,%rdx - 4262f4: 48 85 c9 test %rcx,%rcx - 4262f7: 48 89 d5 mov %rdx,%rbp - 4262fa: 74 1b je 426317 <__memmove_sse2+0x57> - 4262fc: 31 c0 xor %eax,%eax - 4262fe: 0f b6 14 06 movzbl (%rsi,%rax,1),%edx - 426302: 41 88 14 04 mov %dl,(%r12,%rax,1) - 426306: 48 83 c0 01 add $0x1,%rax - 42630a: 48 39 c1 cmp %rax,%rcx - 42630d: 75 ef jne 4262fe <__memmove_sse2+0x3e> - 42630f: 4c 8d 2c 0e lea (%rsi,%rcx,1),%r13 - 426313: 49 8d 1c 0c lea (%r12,%rcx,1),%rbx - 426317: 48 89 ea mov %rbp,%rdx - 42631a: 4c 89 ee mov %r13,%rsi - 42631d: 48 89 df mov %rbx,%rdi - 426320: 48 c1 ea 03 shr $0x3,%rdx - 426324: 41 f6 c5 07 test $0x7,%r13b - 426328: 0f 84 dc 00 00 00 je 42640a <__memmove_sse2+0x14a> - 42632e: e8 8d 62 00 00 callq 42c5c0 <_wordcopy_fwd_dest_aligned> - 426333: 48 89 e8 mov %rbp,%rax - 426336: 48 89 ea mov %rbp,%rdx - 426339: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 42633d: 83 e2 07 and $0x7,%edx - 426340: 49 01 c5 add %rax,%r13 - 426343: 48 01 c3 add %rax,%rbx - 426346: 49 29 dd sub %rbx,%r13 - 426349: 48 85 d2 test %rdx,%rdx - 42634c: 48 8d 0c 13 lea (%rbx,%rdx,1),%rcx - 426350: 48 89 df mov %rbx,%rdi - 426353: 74 12 je 426367 <__memmove_sse2+0xa7> - 426355: 41 0f b6 44 3d 00 movzbl 0x0(%r13,%rdi,1),%eax - 42635b: 48 83 c7 01 add $0x1,%rdi - 42635f: 88 47 ff mov %al,-0x1(%rdi) - 426362: 48 39 cf cmp %rcx,%rdi - 426365: 75 ee jne 426355 <__memmove_sse2+0x95> - 426367: 48 83 c4 08 add $0x8,%rsp - 42636b: 4c 89 e0 mov %r12,%rax - 42636e: 5b pop %rbx - 42636f: 5d pop %rbp - 426370: 41 5c pop %r12 - 426372: 41 5d pop %r13 - 426374: c3 retq - 426375: 48 01 d6 add %rdx,%rsi - 426378: 48 83 fa 0f cmp $0xf,%rdx - 42637c: 48 8d 2c 17 lea (%rdi,%rdx,1),%rbp - 426380: 76 5f jbe 4263e1 <__memmove_sse2+0x121> - 426382: 48 89 e9 mov %rbp,%rcx - 426385: 48 89 d3 mov %rdx,%rbx - 426388: 49 89 f5 mov %rsi,%r13 - 42638b: 83 e1 07 and $0x7,%ecx - 42638e: 48 29 cb sub %rcx,%rbx - 426391: 48 85 c9 test %rcx,%rcx - 426394: 74 1b je 4263b1 <__memmove_sse2+0xf1> - 426396: 48 89 ea mov %rbp,%rdx - 426399: 49 29 cd sub %rcx,%r13 - 42639c: 48 29 f2 sub %rsi,%rdx - 42639f: 48 83 ee 01 sub $0x1,%rsi - 4263a3: 0f b6 06 movzbl (%rsi),%eax - 4263a6: 4c 39 ee cmp %r13,%rsi - 4263a9: 88 04 32 mov %al,(%rdx,%rsi,1) - 4263ac: 75 f1 jne 42639f <__memmove_sse2+0xdf> - 4263ae: 48 29 cd sub %rcx,%rbp - 4263b1: 48 89 da mov %rbx,%rdx - 4263b4: 4c 89 ee mov %r13,%rsi - 4263b7: 48 89 ef mov %rbp,%rdi - 4263ba: 48 c1 ea 03 shr $0x3,%rdx - 4263be: 41 f6 c5 07 test $0x7,%r13b - 4263c2: 74 50 je 426414 <__memmove_sse2+0x154> - 4263c4: e8 a7 64 00 00 callq 42c870 <_wordcopy_bwd_dest_aligned> - 4263c9: 48 89 d8 mov %rbx,%rax - 4263cc: 4c 89 ee mov %r13,%rsi - 4263cf: 48 83 e0 f8 and $0xfffffffffffffff8,%rax - 4263d3: 48 29 c6 sub %rax,%rsi - 4263d6: 48 29 c5 sub %rax,%rbp - 4263d9: 83 e3 07 and $0x7,%ebx - 4263dc: 48 89 da mov %rbx,%rdx - 4263df: 74 86 je 426367 <__memmove_sse2+0xa7> - 4263e1: 48 89 f0 mov %rsi,%rax - 4263e4: 48 89 ef mov %rbp,%rdi - 4263e7: 48 29 d0 sub %rdx,%rax - 4263ea: 48 29 f7 sub %rsi,%rdi - 4263ed: 48 83 ee 01 sub $0x1,%rsi - 4263f1: 0f b6 16 movzbl (%rsi),%edx - 4263f4: 48 39 c6 cmp %rax,%rsi - 4263f7: 88 14 37 mov %dl,(%rdi,%rsi,1) - 4263fa: 75 f1 jne 4263ed <__memmove_sse2+0x12d> - 4263fc: 48 83 c4 08 add $0x8,%rsp - 426400: 4c 89 e0 mov %r12,%rax - 426403: 5b pop %rbx - 426404: 5d pop %rbp - 426405: 41 5c pop %r12 - 426407: 41 5d pop %r13 - 426409: c3 retq - 42640a: e8 81 60 00 00 callq 42c490 <_wordcopy_fwd_aligned> - 42640f: e9 1f ff ff ff jmpq 426333 <__memmove_sse2+0x73> - 426414: e8 d7 62 00 00 callq 42c6f0 <_wordcopy_bwd_aligned> - 426419: eb ae jmp 4263c9 <__memmove_sse2+0x109> - -000000000042641b <__libc_memmove>: - 42641b: 8b 15 9f 62 2a 00 mov 0x2a629f(%rip),%edx # 6cc6c0 <_dl_x86_cpu_features+0x40> - 426421: 89 d0 mov %edx,%eax - 426423: 25 00 10 02 00 and $0x21000,%eax - 426428: 3d 00 10 02 00 cmp $0x21000,%eax - 42642d: 74 2a je 426459 <__libc_memmove+0x3e> - 42642f: f6 c6 08 test $0x8,%dh - 426432: b8 d0 24 43 00 mov $0x4324d0,%eax - 426437: 75 25 jne 42645e <__libc_memmove+0x43> - 426439: f6 05 51 62 2a 00 02 testb $0x2,0x2a6251(%rip) # 6cc691 <_dl_x86_cpu_features+0x11> - 426440: b8 c0 62 42 00 mov $0x4262c0,%eax - 426445: 74 17 je 42645e <__libc_memmove+0x43> - 426447: 83 e2 02 and $0x2,%edx - 42644a: b8 c0 29 43 00 mov $0x4329c0,%eax - 42644f: ba 50 f9 42 00 mov $0x42f950,%edx - 426454: 48 0f 44 c2 cmove %rdx,%rax - 426458: c3 retq - 426459: b8 e0 54 43 00 mov $0x4354e0,%eax - 42645e: f3 c3 repz retq - -0000000000426460 : - 426460: 48 8d 05 69 00 00 00 lea 0x69(%rip),%rax # 4264d0 <__memset_sse2> - 426467: f7 05 4f 62 2a 00 00 testl $0x400,0x2a624f(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 42646e: 04 00 00 - 426471: 74 26 je 426499 - 426473: 48 8d 05 c6 74 01 00 lea 0x174c6(%rip),%rax # 43d940 <__memset_avx2> - 42647a: f7 05 3c 62 2a 00 00 testl $0x1000,0x2a623c(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 426481: 10 00 00 - 426484: 74 13 je 426499 - 426486: f7 05 30 62 2a 00 00 testl $0x20000,0x2a6230(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 42648d: 00 02 00 - 426490: 74 07 je 426499 - 426492: 48 8d 05 47 76 01 00 lea 0x17647(%rip),%rax # 43dae0 <__memset_avx512_no_vzeroupper> - 426499: c3 retq - 42649a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -00000000004264a0 <__bzero>: - 4264a0: 48 89 f8 mov %rdi,%rax - 4264a3: 48 89 f2 mov %rsi,%rdx - 4264a6: 66 0f ef c0 pxor %xmm0,%xmm0 - 4264aa: eb 38 jmp 4264e4 <__memset_sse2+0x14> - 4264ac: 0f 1f 40 00 nopl 0x0(%rax) - -00000000004264b0 <__memset_tail>: - 4264b0: 48 89 c8 mov %rcx,%rax - 4264b3: 66 0f 6e c6 movd %esi,%xmm0 - 4264b7: 66 0f 60 c0 punpcklbw %xmm0,%xmm0 - 4264bb: 66 0f 61 c0 punpcklwd %xmm0,%xmm0 - 4264bf: 66 0f 70 c0 00 pshufd $0x0,%xmm0,%xmm0 - 4264c4: eb 1e jmp 4264e4 <__memset_sse2+0x14> - 4264c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4264cd: 00 00 00 - -00000000004264d0 <__memset_sse2>: - 4264d0: 66 0f 6e c6 movd %esi,%xmm0 - 4264d4: 48 89 f8 mov %rdi,%rax - 4264d7: 66 0f 60 c0 punpcklbw %xmm0,%xmm0 - 4264db: 66 0f 61 c0 punpcklwd %xmm0,%xmm0 - 4264df: 66 0f 70 c0 00 pshufd $0x0,%xmm0,%xmm0 - 4264e4: 48 83 fa 40 cmp $0x40,%rdx - 4264e8: 77 36 ja 426520 <__memset_sse2+0x50> - 4264ea: 48 83 fa 10 cmp $0x10,%rdx - 4264ee: 0f 86 8a 00 00 00 jbe 42657e <__memset_sse2+0xae> - 4264f4: 48 83 fa 20 cmp $0x20,%rdx - 4264f8: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 4264fc: f3 0f 7f 44 17 f0 movdqu %xmm0,-0x10(%rdi,%rdx,1) - 426502: 77 0c ja 426510 <__memset_sse2+0x40> - 426504: f3 c3 repz retq - 426506: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42650d: 00 00 00 - 426510: f3 0f 7f 47 10 movdqu %xmm0,0x10(%rdi) - 426515: f3 0f 7f 44 17 e0 movdqu %xmm0,-0x20(%rdi,%rdx,1) - 42651b: c3 retq - 42651c: 0f 1f 40 00 nopl 0x0(%rax) - 426520: 48 8d 4f 40 lea 0x40(%rdi),%rcx - 426524: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 426528: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 42652c: f3 0f 7f 44 17 f0 movdqu %xmm0,-0x10(%rdi,%rdx,1) - 426532: f3 0f 7f 47 10 movdqu %xmm0,0x10(%rdi) - 426537: f3 0f 7f 44 17 e0 movdqu %xmm0,-0x20(%rdi,%rdx,1) - 42653d: f3 0f 7f 47 20 movdqu %xmm0,0x20(%rdi) - 426542: f3 0f 7f 44 17 d0 movdqu %xmm0,-0x30(%rdi,%rdx,1) - 426548: f3 0f 7f 47 30 movdqu %xmm0,0x30(%rdi) - 42654d: f3 0f 7f 44 17 c0 movdqu %xmm0,-0x40(%rdi,%rdx,1) - 426553: 48 01 fa add %rdi,%rdx - 426556: 48 83 e2 c0 and $0xffffffffffffffc0,%rdx - 42655a: 48 39 d1 cmp %rdx,%rcx - 42655d: 74 a5 je 426504 <__memset_sse2+0x34> - 42655f: 90 nop - 426560: 66 0f 7f 01 movdqa %xmm0,(%rcx) - 426564: 66 0f 7f 41 10 movdqa %xmm0,0x10(%rcx) - 426569: 66 0f 7f 41 20 movdqa %xmm0,0x20(%rcx) - 42656e: 66 0f 7f 41 30 movdqa %xmm0,0x30(%rcx) - 426573: 48 83 c1 40 add $0x40,%rcx - 426577: 48 39 ca cmp %rcx,%rdx - 42657a: 75 e4 jne 426560 <__memset_sse2+0x90> - 42657c: f3 c3 repz retq - 42657e: 66 48 0f 7e c1 movq %xmm0,%rcx - 426583: f6 c2 18 test $0x18,%dl - 426586: 75 22 jne 4265aa <__memset_sse2+0xda> - 426588: f6 c2 04 test $0x4,%dl - 42658b: 75 16 jne 4265a3 <__memset_sse2+0xd3> - 42658d: f6 c2 01 test $0x1,%dl - 426590: 74 02 je 426594 <__memset_sse2+0xc4> - 426592: 88 0f mov %cl,(%rdi) - 426594: f6 c2 02 test $0x2,%dl - 426597: 0f 84 67 ff ff ff je 426504 <__memset_sse2+0x34> - 42659d: 66 89 4c 10 fe mov %cx,-0x2(%rax,%rdx,1) - 4265a2: c3 retq - 4265a3: 89 0f mov %ecx,(%rdi) - 4265a5: 89 4c 17 fc mov %ecx,-0x4(%rdi,%rdx,1) - 4265a9: c3 retq - 4265aa: 48 89 0f mov %rcx,(%rdi) - 4265ad: 48 89 4c 17 f8 mov %rcx,-0x8(%rdi,%rdx,1) - 4265b2: c3 retq - 4265b3: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4265ba: 00 00 00 - 4265bd: 0f 1f 00 nopl (%rax) - -00000000004265c0 <__mempcpy>: - 4265c0: 48 83 fa 20 cmp $0x20,%rdx - 4265c4: 73 7a jae 426640 <__mempcpy+0x80> - 4265c6: f6 c2 01 test $0x1,%dl - 4265c9: 74 0b je 4265d6 <__mempcpy+0x16> - 4265cb: 0f b6 0e movzbl (%rsi),%ecx - 4265ce: 88 0f mov %cl,(%rdi) - 4265d0: 48 ff c6 inc %rsi - 4265d3: 48 ff c7 inc %rdi - 4265d6: f6 c2 02 test $0x2,%dl - 4265d9: 74 0e je 4265e9 <__mempcpy+0x29> - 4265db: 0f b7 0e movzwl (%rsi),%ecx - 4265de: 66 89 0f mov %cx,(%rdi) - 4265e1: 48 83 c6 02 add $0x2,%rsi - 4265e5: 48 83 c7 02 add $0x2,%rdi - 4265e9: f6 c2 04 test $0x4,%dl - 4265ec: 74 0c je 4265fa <__mempcpy+0x3a> - 4265ee: 8b 0e mov (%rsi),%ecx - 4265f0: 89 0f mov %ecx,(%rdi) - 4265f2: 48 83 c6 04 add $0x4,%rsi - 4265f6: 48 83 c7 04 add $0x4,%rdi - 4265fa: f6 c2 08 test $0x8,%dl - 4265fd: 74 11 je 426610 <__mempcpy+0x50> - 4265ff: 48 8b 0e mov (%rsi),%rcx - 426602: 48 89 0f mov %rcx,(%rdi) - 426605: 48 83 c6 08 add $0x8,%rsi - 426609: 48 83 c7 08 add $0x8,%rdi - 42660d: 0f 1f 00 nopl (%rax) - 426610: 81 e2 f0 00 00 00 and $0xf0,%edx - 426616: 74 23 je 42663b <__mempcpy+0x7b> - 426618: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42661f: 00 - 426620: 48 8b 0e mov (%rsi),%rcx - 426623: 4c 8b 46 08 mov 0x8(%rsi),%r8 - 426627: 48 89 0f mov %rcx,(%rdi) - 42662a: 4c 89 47 08 mov %r8,0x8(%rdi) - 42662e: 83 ea 10 sub $0x10,%edx - 426631: 48 8d 76 10 lea 0x10(%rsi),%rsi - 426635: 48 8d 7f 10 lea 0x10(%rdi),%rdi - 426639: 75 e5 jne 426620 <__mempcpy+0x60> - 42663b: 48 89 f8 mov %rdi,%rax - 42663e: c3 retq - 42663f: 90 nop - 426640: 89 f1 mov %esi,%ecx - 426642: 83 e1 07 and $0x7,%ecx - 426645: 74 29 je 426670 <__mempcpy+0xb0> - 426647: 48 8d 54 11 f8 lea -0x8(%rcx,%rdx,1),%rdx - 42664c: 83 e9 08 sub $0x8,%ecx - 42664f: 90 nop - 426650: 0f b6 06 movzbl (%rsi),%eax - 426653: 88 07 mov %al,(%rdi) - 426655: ff c1 inc %ecx - 426657: 48 8d 76 01 lea 0x1(%rsi),%rsi - 42665b: 48 8d 7f 01 lea 0x1(%rdi),%rdi - 42665f: 75 ef jne 426650 <__mempcpy+0x90> - 426661: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 426666: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42666d: 00 00 00 - 426670: 48 81 fa 00 04 00 00 cmp $0x400,%rdx - 426677: 77 77 ja 4266f0 <__mempcpy+0x130> - 426679: 89 d1 mov %edx,%ecx - 42667b: c1 e9 05 shr $0x5,%ecx - 42667e: 74 60 je 4266e0 <__mempcpy+0x120> - 426680: ff c9 dec %ecx - 426682: 48 8b 06 mov (%rsi),%rax - 426685: 4c 8b 46 08 mov 0x8(%rsi),%r8 - 426689: 4c 8b 4e 10 mov 0x10(%rsi),%r9 - 42668d: 4c 8b 56 18 mov 0x18(%rsi),%r10 - 426691: 48 89 07 mov %rax,(%rdi) - 426694: 4c 89 47 08 mov %r8,0x8(%rdi) - 426698: 4c 89 4f 10 mov %r9,0x10(%rdi) - 42669c: 4c 89 57 18 mov %r10,0x18(%rdi) - 4266a0: 48 8d 76 20 lea 0x20(%rsi),%rsi - 4266a4: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 4266a8: 74 36 je 4266e0 <__mempcpy+0x120> - 4266aa: ff c9 dec %ecx - 4266ac: 48 8b 06 mov (%rsi),%rax - 4266af: 4c 8b 46 08 mov 0x8(%rsi),%r8 - 4266b3: 4c 8b 4e 10 mov 0x10(%rsi),%r9 - 4266b7: 4c 8b 56 18 mov 0x18(%rsi),%r10 - 4266bb: 48 89 07 mov %rax,(%rdi) - 4266be: 4c 89 47 08 mov %r8,0x8(%rdi) - 4266c2: 4c 89 4f 10 mov %r9,0x10(%rdi) - 4266c6: 4c 89 57 18 mov %r10,0x18(%rdi) - 4266ca: 48 8d 76 20 lea 0x20(%rsi),%rsi - 4266ce: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 4266d2: 75 ac jne 426680 <__mempcpy+0xc0> - 4266d4: 66 90 xchg %ax,%ax - 4266d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4266dd: 00 00 00 - 4266e0: 83 e2 1f and $0x1f,%edx - 4266e3: 0f 85 dd fe ff ff jne 4265c6 <__mempcpy+0x6> - 4266e9: 48 89 f8 mov %rdi,%rax - 4266ec: c3 retq - 4266ed: 0f 1f 00 nopl (%rax) - 4266f0: 4c 8b 1d d9 49 2a 00 mov 0x2a49d9(%rip),%r11 # 6cb0d0 <__x86_data_cache_size_half> - 4266f7: 49 39 d3 cmp %rdx,%r11 - 4266fa: 4c 0f 47 da cmova %rdx,%r11 - 4266fe: 4c 89 d9 mov %r11,%rcx - 426701: 49 83 e3 f8 and $0xfffffffffffffff8,%r11 - 426705: 48 c1 e9 03 shr $0x3,%rcx - 426709: 74 05 je 426710 <__mempcpy+0x150> - 42670b: f3 48 a5 rep movsq %ds:(%rsi),%es:(%rdi) - 42670e: 66 90 xchg %ax,%ax - 426710: 4c 29 da sub %r11,%rdx - 426713: 48 f7 c2 f8 ff ff ff test $0xfffffffffffffff8,%rdx - 42671a: 75 14 jne 426730 <__mempcpy+0x170> - 42671c: 83 e2 07 and $0x7,%edx - 42671f: 0f 85 a1 fe ff ff jne 4265c6 <__mempcpy+0x6> - 426725: 48 89 f8 mov %rdi,%rax - 426728: c3 retq - 426729: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 426730: 4c 8b 05 79 49 2a 00 mov 0x2a4979(%rip),%r8 # 6cb0b0 <__x86_shared_cache_size_half> - 426737: 49 39 d0 cmp %rdx,%r8 - 42673a: 4c 0f 47 c2 cmova %rdx,%r8 - 42673e: 4c 89 c1 mov %r8,%rcx - 426741: 49 83 e0 c0 and $0xffffffffffffffc0,%r8 - 426745: 48 c1 e9 06 shr $0x6,%rcx - 426749: 0f 84 ab 01 00 00 je 4268fa <__mempcpy+0x33a> - 42674f: 4c 89 74 24 f8 mov %r14,-0x8(%rsp) - 426754: 4c 89 6c 24 f0 mov %r13,-0x10(%rsp) - 426759: 4c 89 64 24 e8 mov %r12,-0x18(%rsp) - 42675e: 48 89 5c 24 e0 mov %rbx,-0x20(%rsp) - 426763: 83 3d 4e 6a 2a 00 00 cmpl $0x0,0x2a6a4e(%rip) # 6cd1b8 <__x86_prefetchw> - 42676a: 0f 84 c0 00 00 00 je 426830 <__mempcpy+0x270> - 426770: 48 ff c9 dec %rcx - 426773: 48 8b 06 mov (%rsi),%rax - 426776: 48 8b 5e 08 mov 0x8(%rsi),%rbx - 42677a: 4c 8b 4e 10 mov 0x10(%rsi),%r9 - 42677e: 4c 8b 56 18 mov 0x18(%rsi),%r10 - 426782: 4c 8b 5e 20 mov 0x20(%rsi),%r11 - 426786: 4c 8b 66 28 mov 0x28(%rsi),%r12 - 42678a: 4c 8b 6e 30 mov 0x30(%rsi),%r13 - 42678e: 4c 8b 76 38 mov 0x38(%rsi),%r14 - 426792: 0f 18 8e 80 03 00 00 prefetcht0 0x380(%rsi) - 426799: 0f 18 8e c0 03 00 00 prefetcht0 0x3c0(%rsi) - 4267a0: 48 89 07 mov %rax,(%rdi) - 4267a3: 48 89 5f 08 mov %rbx,0x8(%rdi) - 4267a7: 4c 89 4f 10 mov %r9,0x10(%rdi) - 4267ab: 4c 89 57 18 mov %r10,0x18(%rdi) - 4267af: 4c 89 5f 20 mov %r11,0x20(%rdi) - 4267b3: 4c 89 67 28 mov %r12,0x28(%rdi) - 4267b7: 4c 89 6f 30 mov %r13,0x30(%rdi) - 4267bb: 4c 89 77 38 mov %r14,0x38(%rdi) - 4267bf: 48 8d 76 40 lea 0x40(%rsi),%rsi - 4267c3: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 4267c7: 0f 84 19 01 00 00 je 4268e6 <__mempcpy+0x326> - 4267cd: 48 ff c9 dec %rcx - 4267d0: 48 8b 06 mov (%rsi),%rax - 4267d3: 48 8b 5e 08 mov 0x8(%rsi),%rbx - 4267d7: 4c 8b 4e 10 mov 0x10(%rsi),%r9 - 4267db: 4c 8b 56 18 mov 0x18(%rsi),%r10 - 4267df: 4c 8b 5e 20 mov 0x20(%rsi),%r11 - 4267e3: 4c 8b 66 28 mov 0x28(%rsi),%r12 - 4267e7: 4c 8b 6e 30 mov 0x30(%rsi),%r13 - 4267eb: 4c 8b 76 38 mov 0x38(%rsi),%r14 - 4267ef: 48 89 07 mov %rax,(%rdi) - 4267f2: 48 89 5f 08 mov %rbx,0x8(%rdi) - 4267f6: 4c 89 4f 10 mov %r9,0x10(%rdi) - 4267fa: 4c 89 57 18 mov %r10,0x18(%rdi) - 4267fe: 4c 89 5f 20 mov %r11,0x20(%rdi) - 426802: 4c 89 67 28 mov %r12,0x28(%rdi) - 426806: 4c 89 6f 30 mov %r13,0x30(%rdi) - 42680a: 4c 89 77 38 mov %r14,0x38(%rdi) - 42680e: 0f 0d 8f 40 03 00 00 prefetchw 0x340(%rdi) - 426815: 0f 0d 8f 80 03 00 00 prefetchw 0x380(%rdi) - 42681c: 48 8d 76 40 lea 0x40(%rsi),%rsi - 426820: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 426824: 0f 85 46 ff ff ff jne 426770 <__mempcpy+0x1b0> - 42682a: e9 b7 00 00 00 jmpq 4268e6 <__mempcpy+0x326> - 42682f: 90 nop - 426830: 48 ff c9 dec %rcx - 426833: 48 8b 06 mov (%rsi),%rax - 426836: 48 8b 5e 08 mov 0x8(%rsi),%rbx - 42683a: 4c 8b 4e 10 mov 0x10(%rsi),%r9 - 42683e: 4c 8b 56 18 mov 0x18(%rsi),%r10 - 426842: 4c 8b 5e 20 mov 0x20(%rsi),%r11 - 426846: 4c 8b 66 28 mov 0x28(%rsi),%r12 - 42684a: 4c 8b 6e 30 mov 0x30(%rsi),%r13 - 42684e: 4c 8b 76 38 mov 0x38(%rsi),%r14 - 426852: 0f 18 8e 80 03 00 00 prefetcht0 0x380(%rsi) - 426859: 0f 18 8e c0 03 00 00 prefetcht0 0x3c0(%rsi) - 426860: 48 89 07 mov %rax,(%rdi) - 426863: 48 89 5f 08 mov %rbx,0x8(%rdi) - 426867: 4c 89 4f 10 mov %r9,0x10(%rdi) - 42686b: 4c 89 57 18 mov %r10,0x18(%rdi) - 42686f: 4c 89 5f 20 mov %r11,0x20(%rdi) - 426873: 4c 89 67 28 mov %r12,0x28(%rdi) - 426877: 4c 89 6f 30 mov %r13,0x30(%rdi) - 42687b: 4c 89 77 38 mov %r14,0x38(%rdi) - 42687f: 48 8d 76 40 lea 0x40(%rsi),%rsi - 426883: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 426887: 74 5d je 4268e6 <__mempcpy+0x326> - 426889: 48 ff c9 dec %rcx - 42688c: 48 8b 06 mov (%rsi),%rax - 42688f: 48 8b 5e 08 mov 0x8(%rsi),%rbx - 426893: 4c 8b 4e 10 mov 0x10(%rsi),%r9 - 426897: 4c 8b 56 18 mov 0x18(%rsi),%r10 - 42689b: 4c 8b 5e 20 mov 0x20(%rsi),%r11 - 42689f: 4c 8b 66 28 mov 0x28(%rsi),%r12 - 4268a3: 4c 8b 6e 30 mov 0x30(%rsi),%r13 - 4268a7: 4c 8b 76 38 mov 0x38(%rsi),%r14 - 4268ab: 0f 18 8f 40 03 00 00 prefetcht0 0x340(%rdi) - 4268b2: 0f 18 8f 80 03 00 00 prefetcht0 0x380(%rdi) - 4268b9: 48 89 07 mov %rax,(%rdi) - 4268bc: 48 89 5f 08 mov %rbx,0x8(%rdi) - 4268c0: 4c 89 4f 10 mov %r9,0x10(%rdi) - 4268c4: 4c 89 57 18 mov %r10,0x18(%rdi) - 4268c8: 4c 89 5f 20 mov %r11,0x20(%rdi) - 4268cc: 4c 89 67 28 mov %r12,0x28(%rdi) - 4268d0: 4c 89 6f 30 mov %r13,0x30(%rdi) - 4268d4: 4c 89 77 38 mov %r14,0x38(%rdi) - 4268d8: 48 8d 76 40 lea 0x40(%rsi),%rsi - 4268dc: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 4268e0: 0f 85 4a ff ff ff jne 426830 <__mempcpy+0x270> - 4268e6: 48 8b 5c 24 e0 mov -0x20(%rsp),%rbx - 4268eb: 4c 8b 64 24 e8 mov -0x18(%rsp),%r12 - 4268f0: 4c 8b 6c 24 f0 mov -0x10(%rsp),%r13 - 4268f5: 4c 8b 74 24 f8 mov -0x8(%rsp),%r14 - 4268fa: 4c 29 c2 sub %r8,%rdx - 4268fd: 48 f7 c2 c0 ff ff ff test $0xffffffffffffffc0,%rdx - 426904: 75 1a jne 426920 <__mempcpy+0x360> - 426906: 83 e2 3f and $0x3f,%edx - 426909: 0f 85 b7 fc ff ff jne 4265c6 <__mempcpy+0x6> - 42690f: 48 89 f8 mov %rdi,%rax - 426912: c3 retq - 426913: 0f 1f 00 nopl (%rax) - 426916: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42691d: 00 00 00 - 426920: 48 89 d1 mov %rdx,%rcx - 426923: 48 c1 e9 07 shr $0x7,%rcx - 426927: 0f 84 d8 00 00 00 je 426a05 <__mempcpy+0x445> - 42692d: 4c 89 74 24 f8 mov %r14,-0x8(%rsp) - 426932: 4c 89 6c 24 f0 mov %r13,-0x10(%rsp) - 426937: 4c 89 64 24 e8 mov %r12,-0x18(%rsp) - 42693c: 0f 1f 40 00 nopl 0x0(%rax) - 426940: 0f 18 86 00 03 00 00 prefetchnta 0x300(%rsi) - 426947: 0f 18 86 40 03 00 00 prefetchnta 0x340(%rsi) - 42694e: 48 ff c9 dec %rcx - 426951: 48 8b 06 mov (%rsi),%rax - 426954: 4c 8b 46 08 mov 0x8(%rsi),%r8 - 426958: 4c 8b 4e 10 mov 0x10(%rsi),%r9 - 42695c: 4c 8b 56 18 mov 0x18(%rsi),%r10 - 426960: 4c 8b 5e 20 mov 0x20(%rsi),%r11 - 426964: 4c 8b 66 28 mov 0x28(%rsi),%r12 - 426968: 4c 8b 6e 30 mov 0x30(%rsi),%r13 - 42696c: 4c 8b 76 38 mov 0x38(%rsi),%r14 - 426970: 48 0f c3 07 movnti %rax,(%rdi) - 426974: 4c 0f c3 47 08 movnti %r8,0x8(%rdi) - 426979: 4c 0f c3 4f 10 movnti %r9,0x10(%rdi) - 42697e: 4c 0f c3 57 18 movnti %r10,0x18(%rdi) - 426983: 4c 0f c3 5f 20 movnti %r11,0x20(%rdi) - 426988: 4c 0f c3 67 28 movnti %r12,0x28(%rdi) - 42698d: 4c 0f c3 6f 30 movnti %r13,0x30(%rdi) - 426992: 4c 0f c3 77 38 movnti %r14,0x38(%rdi) - 426997: 48 8b 46 40 mov 0x40(%rsi),%rax - 42699b: 4c 8b 46 48 mov 0x48(%rsi),%r8 - 42699f: 4c 8b 4e 50 mov 0x50(%rsi),%r9 - 4269a3: 4c 8b 56 58 mov 0x58(%rsi),%r10 - 4269a7: 4c 8b 5e 60 mov 0x60(%rsi),%r11 - 4269ab: 4c 8b 66 68 mov 0x68(%rsi),%r12 - 4269af: 4c 8b 6e 70 mov 0x70(%rsi),%r13 - 4269b3: 4c 8b 76 78 mov 0x78(%rsi),%r14 - 4269b7: 48 0f c3 47 40 movnti %rax,0x40(%rdi) - 4269bc: 4c 0f c3 47 48 movnti %r8,0x48(%rdi) - 4269c1: 4c 0f c3 4f 50 movnti %r9,0x50(%rdi) - 4269c6: 4c 0f c3 57 58 movnti %r10,0x58(%rdi) - 4269cb: 4c 0f c3 5f 60 movnti %r11,0x60(%rdi) - 4269d0: 4c 0f c3 67 68 movnti %r12,0x68(%rdi) - 4269d5: 4c 0f c3 6f 70 movnti %r13,0x70(%rdi) - 4269da: 4c 0f c3 77 78 movnti %r14,0x78(%rdi) - 4269df: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 4269e6: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 4269ed: 0f 85 4d ff ff ff jne 426940 <__mempcpy+0x380> - 4269f3: 0f ae f8 sfence - 4269f6: 4c 8b 64 24 e8 mov -0x18(%rsp),%r12 - 4269fb: 4c 8b 6c 24 f0 mov -0x10(%rsp),%r13 - 426a00: 4c 8b 74 24 f8 mov -0x8(%rsp),%r14 - 426a05: 83 e2 7f and $0x7f,%edx - 426a08: 0f 85 b8 fb ff ff jne 4265c6 <__mempcpy+0x6> - 426a0e: 48 89 f8 mov %rdi,%rax - 426a11: c3 retq - 426a12: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 426a19: 00 00 00 - 426a1c: 0f 1f 40 00 nopl 0x0(%rax) - -0000000000426a20 <__stpcpy>: - 426a20: 48 8d 05 39 49 01 00 lea 0x14939(%rip),%rax # 43b360 <__stpcpy_sse2_unaligned> - 426a27: f7 05 8f 5c 2a 00 10 testl $0x10,0x2a5c8f(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 426a2e: 00 00 00 - 426a31: 75 1a jne 426a4d <__stpcpy+0x2d> - 426a33: 48 8d 05 16 00 00 00 lea 0x16(%rip),%rax # 426a50 <__GI___stpcpy> - 426a3a: f7 05 4c 5c 2a 00 00 testl $0x200,0x2a5c4c(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> - 426a41: 02 00 00 - 426a44: 74 07 je 426a4d <__stpcpy+0x2d> - 426a46: 48 8d 05 d3 2a 01 00 lea 0x12ad3(%rip),%rax # 439520 <__stpcpy_ssse3> - 426a4d: c3 retq - 426a4e: 66 90 xchg %ax,%ax - -0000000000426a50 <__GI___stpcpy>: - 426a50: 48 89 f1 mov %rsi,%rcx - 426a53: 83 e1 07 and $0x7,%ecx - 426a56: 48 89 fa mov %rdi,%rdx - 426a59: 74 1b je 426a76 <__GI___stpcpy+0x26> - 426a5b: f7 d9 neg %ecx - 426a5d: 83 c1 08 add $0x8,%ecx - 426a60: 8a 06 mov (%rsi),%al - 426a62: 84 c0 test %al,%al - 426a64: 88 02 mov %al,(%rdx) - 426a66: 0f 84 bc 00 00 00 je 426b28 <__GI___stpcpy+0xd8> - 426a6c: 48 ff c6 inc %rsi - 426a6f: 48 ff c2 inc %rdx - 426a72: ff c9 dec %ecx - 426a74: 75 ea jne 426a60 <__GI___stpcpy+0x10> - 426a76: 49 b8 ff fe fe fe fe movabs $0xfefefefefefefeff,%r8 - 426a7d: fe fe fe - 426a80: 48 8b 06 mov (%rsi),%rax - 426a83: 48 83 c6 08 add $0x8,%rsi - 426a87: 49 89 c1 mov %rax,%r9 - 426a8a: 4d 01 c1 add %r8,%r9 - 426a8d: 0f 83 7d 00 00 00 jae 426b10 <__GI___stpcpy+0xc0> - 426a93: 49 31 c1 xor %rax,%r9 - 426a96: 4d 09 c1 or %r8,%r9 - 426a99: 49 ff c1 inc %r9 - 426a9c: 75 72 jne 426b10 <__GI___stpcpy+0xc0> - 426a9e: 48 89 02 mov %rax,(%rdx) - 426aa1: 48 83 c2 08 add $0x8,%rdx - 426aa5: 48 8b 06 mov (%rsi),%rax - 426aa8: 48 83 c6 08 add $0x8,%rsi - 426aac: 49 89 c1 mov %rax,%r9 - 426aaf: 4d 01 c1 add %r8,%r9 - 426ab2: 73 5c jae 426b10 <__GI___stpcpy+0xc0> - 426ab4: 49 31 c1 xor %rax,%r9 - 426ab7: 4d 09 c1 or %r8,%r9 - 426aba: 49 ff c1 inc %r9 - 426abd: 75 51 jne 426b10 <__GI___stpcpy+0xc0> - 426abf: 48 89 02 mov %rax,(%rdx) - 426ac2: 48 83 c2 08 add $0x8,%rdx - 426ac6: 48 8b 06 mov (%rsi),%rax - 426ac9: 48 83 c6 08 add $0x8,%rsi - 426acd: 49 89 c1 mov %rax,%r9 - 426ad0: 4d 01 c1 add %r8,%r9 - 426ad3: 73 3b jae 426b10 <__GI___stpcpy+0xc0> - 426ad5: 49 31 c1 xor %rax,%r9 - 426ad8: 4d 09 c1 or %r8,%r9 - 426adb: 49 ff c1 inc %r9 - 426ade: 75 30 jne 426b10 <__GI___stpcpy+0xc0> - 426ae0: 48 89 02 mov %rax,(%rdx) - 426ae3: 48 83 c2 08 add $0x8,%rdx - 426ae7: 48 8b 06 mov (%rsi),%rax - 426aea: 48 83 c6 08 add $0x8,%rsi - 426aee: 49 89 c1 mov %rax,%r9 - 426af1: 4d 01 c1 add %r8,%r9 - 426af4: 73 1a jae 426b10 <__GI___stpcpy+0xc0> - 426af6: 49 31 c1 xor %rax,%r9 - 426af9: 4d 09 c1 or %r8,%r9 - 426afc: 49 ff c1 inc %r9 - 426aff: 75 0f jne 426b10 <__GI___stpcpy+0xc0> - 426b01: 48 89 02 mov %rax,(%rdx) - 426b04: 48 83 c2 08 add $0x8,%rdx - 426b08: e9 73 ff ff ff jmpq 426a80 <__GI___stpcpy+0x30> - 426b0d: 0f 1f 00 nopl (%rax) - 426b10: 88 02 mov %al,(%rdx) - 426b12: 84 c0 test %al,%al - 426b14: 74 12 je 426b28 <__GI___stpcpy+0xd8> - 426b16: 48 ff c2 inc %rdx - 426b19: 88 22 mov %ah,(%rdx) - 426b1b: 84 e4 test %ah,%ah - 426b1d: 74 09 je 426b28 <__GI___stpcpy+0xd8> - 426b1f: 48 ff c2 inc %rdx - 426b22: 48 c1 e8 10 shr $0x10,%rax - 426b26: eb e8 jmp 426b10 <__GI___stpcpy+0xc0> - 426b28: 48 89 d0 mov %rdx,%rax - 426b2b: c3 retq - 426b2c: 0f 1f 40 00 nopl 0x0(%rax) - -0000000000426b30 <__strcasecmp_l>: - 426b30: f7 05 86 5b 2a 00 00 testl $0x200,0x2a5b86(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 426b37: 02 00 00 - 426b3a: 75 13 jne 426b4f <__strcasecmp_l+0x1f> - 426b3c: 48 8d 05 cd 22 00 00 lea 0x22cd(%rip),%rax # 428e10 <__strcasecmp_l_sse42> - 426b43: f7 05 43 5b 2a 00 00 testl $0x100000,0x2a5b43(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> - 426b4a: 00 10 00 - 426b4d: 75 1a jne 426b69 <__strcasecmp_l+0x39> - 426b4f: 48 8d 05 da f0 00 00 lea 0xf0da(%rip),%rax # 435c30 <__strcasecmp_l_ssse3> - 426b56: f7 05 30 5b 2a 00 00 testl $0x200,0x2a5b30(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> - 426b5d: 02 00 00 - 426b60: 75 07 jne 426b69 <__strcasecmp_l+0x39> - 426b62: 48 8d 05 67 00 00 00 lea 0x67(%rip),%rax # 426bd0 <__GI___strcasecmp_l> - 426b69: c3 retq - 426b6a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -0000000000426b70 <__strcasecmp>: - 426b70: 48 8d 05 39 3e 00 00 lea 0x3e39(%rip),%rax # 42a9b0 <__strcasecmp_avx> - 426b77: f7 05 3f 5b 2a 00 40 testl $0x40,0x2a5b3f(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 426b7e: 00 00 00 - 426b81: 75 39 jne 426bbc <__strcasecmp+0x4c> - 426b83: f7 05 33 5b 2a 00 00 testl $0x200,0x2a5b33(%rip) # 6cc6c0 <_dl_x86_cpu_features+0x40> - 426b8a: 02 00 00 - 426b8d: 75 13 jne 426ba2 <__strcasecmp+0x32> - 426b8f: 48 8d 05 6a 22 00 00 lea 0x226a(%rip),%rax # 428e00 <__strcasecmp_sse42> - 426b96: f7 05 f0 5a 2a 00 00 testl $0x100000,0x2a5af0(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> - 426b9d: 00 10 00 - 426ba0: 75 1a jne 426bbc <__strcasecmp+0x4c> - 426ba2: 48 8d 05 77 f0 00 00 lea 0xf077(%rip),%rax # 435c20 <__strcasecmp_ssse3> - 426ba9: f7 05 dd 5a 2a 00 00 testl $0x200,0x2a5add(%rip) # 6cc690 <_dl_x86_cpu_features+0x10> - 426bb0: 02 00 00 - 426bb3: 75 07 jne 426bbc <__strcasecmp+0x4c> - 426bb5: 48 8d 05 04 00 00 00 lea 0x4(%rip),%rax # 426bc0 <__strcasecmp_sse2> - 426bbc: c3 retq - 426bbd: 0f 1f 00 nopl (%rax) - -0000000000426bc0 <__strcasecmp_sse2>: - 426bc0: 48 c7 c0 b8 ff ff ff mov $0xffffffffffffffb8,%rax - 426bc7: 64 48 8b 10 mov %fs:(%rax),%rdx - 426bcb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -0000000000426bd0 <__GI___strcasecmp_l>: - 426bd0: 48 8b 02 mov (%rdx),%rax - 426bd3: f7 80 78 02 00 00 01 testl $0x1,0x278(%rax) - 426bda: 00 00 00 - 426bdd: 0f 85 1d 77 01 00 jne 43e300 <__strcasecmp_l_nonascii> - 426be3: 89 f1 mov %esi,%ecx - 426be5: 89 f8 mov %edi,%eax - 426be7: 48 83 e1 3f and $0x3f,%rcx - 426beb: 48 83 e0 3f and $0x3f,%rax - 426bef: 66 0f 6f 2d b9 c4 07 movdqa 0x7c4b9(%rip),%xmm5 # 4a30b0 <__func__.10972+0xf0> - 426bf6: 00 - 426bf7: 66 0f 6f 35 c1 c4 07 movdqa 0x7c4c1(%rip),%xmm6 # 4a30c0 <__func__.10972+0x100> - 426bfe: 00 - 426bff: 66 0f 6f 3d c9 c4 07 movdqa 0x7c4c9(%rip),%xmm7 # 4a30d0 - 426c06: 00 - 426c07: 83 f9 30 cmp $0x30,%ecx - 426c0a: 0f 87 90 00 00 00 ja 426ca0 <__GI___strcasecmp_l+0xd0> - 426c10: 83 f8 30 cmp $0x30,%eax - 426c13: 0f 87 87 00 00 00 ja 426ca0 <__GI___strcasecmp_l+0xd0> - 426c19: 66 0f 12 0f movlpd (%rdi),%xmm1 - 426c1d: 66 0f 12 16 movlpd (%rsi),%xmm2 - 426c21: 66 0f 16 4f 08 movhpd 0x8(%rdi),%xmm1 - 426c26: 66 0f 16 56 08 movhpd 0x8(%rsi),%xmm2 - 426c2b: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 426c30: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 426c35: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 426c3a: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 426c3f: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 426c44: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 426c49: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 426c4e: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 426c53: 66 45 0f db c1 pand %xmm9,%xmm8 - 426c58: 66 45 0f db d3 pand %xmm11,%xmm10 - 426c5d: 66 44 0f db c7 pand %xmm7,%xmm8 - 426c62: 66 44 0f db d7 pand %xmm7,%xmm10 - 426c67: 66 41 0f eb c8 por %xmm8,%xmm1 - 426c6c: 66 41 0f eb d2 por %xmm10,%xmm2 - 426c71: 66 0f ef c0 pxor %xmm0,%xmm0 - 426c75: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 426c79: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 426c7d: 66 0f f8 c8 psubb %xmm0,%xmm1 - 426c81: 66 0f d7 d1 pmovmskb %xmm1,%edx - 426c85: 81 ea ff ff 00 00 sub $0xffff,%edx - 426c8b: 0f 85 2f 21 00 00 jne 428dc0 <__GI___strcasecmp_l+0x21f0> - 426c91: 48 83 c6 10 add $0x10,%rsi - 426c95: 48 83 c7 10 add $0x10,%rdi - 426c99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 426ca0: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 426ca4: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 426ca8: ba ff ff 00 00 mov $0xffff,%edx - 426cad: 45 31 c0 xor %r8d,%r8d - 426cb0: 83 e1 0f and $0xf,%ecx - 426cb3: 83 e0 0f and $0xf,%eax - 426cb6: 39 c1 cmp %eax,%ecx - 426cb8: 74 26 je 426ce0 <__GI___strcasecmp_l+0x110> - 426cba: 77 07 ja 426cc3 <__GI___strcasecmp_l+0xf3> - 426cbc: 41 89 d0 mov %edx,%r8d - 426cbf: 91 xchg %eax,%ecx - 426cc0: 48 87 f7 xchg %rsi,%rdi - 426cc3: 4c 8d 48 0f lea 0xf(%rax),%r9 - 426cc7: 49 29 c9 sub %rcx,%r9 - 426cca: 4c 8d 15 9f c4 07 00 lea 0x7c49f(%rip),%r10 # 4a3170 - 426cd1: 4f 63 0c 8a movslq (%r10,%r9,4),%r9 - 426cd5: 4f 8d 14 0a lea (%r10,%r9,1),%r10 - 426cd9: 41 ff e2 jmpq *%r10 - 426cdc: 0f 1f 40 00 nopl 0x0(%rax) - 426ce0: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 426ce4: 66 0f ef c0 pxor %xmm0,%xmm0 - 426ce8: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 426cec: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 426cf0: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 426cf5: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 426cfa: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 426cff: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 426d04: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 426d09: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 426d0e: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 426d13: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 426d18: 66 45 0f db c1 pand %xmm9,%xmm8 - 426d1d: 66 45 0f db d3 pand %xmm11,%xmm10 - 426d22: 66 44 0f db c7 pand %xmm7,%xmm8 - 426d27: 66 44 0f db d7 pand %xmm7,%xmm10 - 426d2c: 66 41 0f eb c8 por %xmm8,%xmm1 - 426d31: 66 41 0f eb d2 por %xmm10,%xmm2 - 426d36: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 426d3a: 66 0f f8 c8 psubb %xmm0,%xmm1 - 426d3e: 66 44 0f d7 c9 pmovmskb %xmm1,%r9d - 426d43: d3 ea shr %cl,%edx - 426d45: 41 d3 e9 shr %cl,%r9d - 426d48: 44 29 ca sub %r9d,%edx - 426d4b: 0f 85 54 20 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> - 426d51: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 426d58: 49 c7 c1 10 00 00 00 mov $0x10,%r9 - 426d5f: 66 0f ef c0 pxor %xmm0,%xmm0 - 426d63: 0f 1f 00 nopl (%rax) - 426d66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 426d6d: 00 00 00 - 426d70: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 426d75: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 426d7a: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 426d7f: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 426d84: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 426d89: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 426d8e: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 426d93: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 426d98: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 426d9d: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 426da2: 66 45 0f db c1 pand %xmm9,%xmm8 - 426da7: 66 45 0f db d3 pand %xmm11,%xmm10 - 426dac: 66 44 0f db c7 pand %xmm7,%xmm8 - 426db1: 66 44 0f db d7 pand %xmm7,%xmm10 - 426db6: 66 41 0f eb c8 por %xmm8,%xmm1 - 426dbb: 66 41 0f eb d2 por %xmm10,%xmm2 - 426dc0: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 426dc4: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 426dc8: 66 0f f8 c8 psubb %xmm0,%xmm1 - 426dcc: 66 0f d7 d1 pmovmskb %xmm1,%edx - 426dd0: 81 ea ff ff 00 00 sub $0xffff,%edx - 426dd6: 0f 85 c4 1f 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 426ddc: 48 83 c1 10 add $0x10,%rcx - 426de0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 426de5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 426dea: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 426def: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 426df4: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 426df9: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 426dfe: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 426e03: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 426e08: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 426e0d: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 426e12: 66 45 0f db c1 pand %xmm9,%xmm8 - 426e17: 66 45 0f db d3 pand %xmm11,%xmm10 - 426e1c: 66 44 0f db c7 pand %xmm7,%xmm8 - 426e21: 66 44 0f db d7 pand %xmm7,%xmm10 - 426e26: 66 41 0f eb c8 por %xmm8,%xmm1 - 426e2b: 66 41 0f eb d2 por %xmm10,%xmm2 - 426e30: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 426e34: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 426e38: 66 0f f8 c8 psubb %xmm0,%xmm1 - 426e3c: 66 0f d7 d1 pmovmskb %xmm1,%edx - 426e40: 81 ea ff ff 00 00 sub $0xffff,%edx - 426e46: 0f 85 54 1f 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 426e4c: 48 83 c1 10 add $0x10,%rcx - 426e50: e9 1b ff ff ff jmpq 426d70 <__GI___strcasecmp_l+0x1a0> - 426e55: 90 nop - 426e56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 426e5d: 00 00 00 - 426e60: 66 0f ef c0 pxor %xmm0,%xmm0 - 426e64: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 426e68: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 426e6c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 426e70: 66 0f 73 fa 0f pslldq $0xf,%xmm2 - 426e75: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 426e7a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 426e7f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 426e84: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 426e89: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 426e8e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 426e93: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 426e98: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 426e9d: 66 45 0f db c1 pand %xmm9,%xmm8 - 426ea2: 66 45 0f db d3 pand %xmm11,%xmm10 - 426ea7: 66 44 0f db c7 pand %xmm7,%xmm8 - 426eac: 66 44 0f db d7 pand %xmm7,%xmm10 - 426eb1: 66 41 0f eb c8 por %xmm8,%xmm1 - 426eb6: 66 41 0f eb d2 por %xmm10,%xmm2 - 426ebb: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 426ebf: 66 0f f8 d0 psubb %xmm0,%xmm2 - 426ec3: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 426ec8: d3 ea shr %cl,%edx - 426eca: 41 d3 e9 shr %cl,%r9d - 426ecd: 44 29 ca sub %r9d,%edx - 426ed0: 0f 85 cf 1e 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> - 426ed6: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 426eda: 66 0f ef c0 pxor %xmm0,%xmm0 - 426ede: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 426ee5: 41 b9 01 00 00 00 mov $0x1,%r9d - 426eeb: 4c 8d 57 01 lea 0x1(%rdi),%r10 - 426eef: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 426ef6: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 426efd: 0f 1f 00 nopl (%rax) - 426f00: 49 83 c2 10 add $0x10,%r10 - 426f04: 0f 8f 26 01 00 00 jg 427030 <__GI___strcasecmp_l+0x460> - 426f0a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 426f0f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 426f14: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 426f18: 66 0f 73 db 01 psrldq $0x1,%xmm3 - 426f1d: 66 0f 73 fa 0f pslldq $0xf,%xmm2 - 426f22: 66 0f eb d3 por %xmm3,%xmm2 - 426f26: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 426f2b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 426f30: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 426f35: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 426f3a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 426f3f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 426f44: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 426f49: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 426f4e: 66 45 0f db c1 pand %xmm9,%xmm8 - 426f53: 66 45 0f db d3 pand %xmm11,%xmm10 - 426f58: 66 44 0f db c7 pand %xmm7,%xmm8 - 426f5d: 66 44 0f db d7 pand %xmm7,%xmm10 - 426f62: 66 41 0f eb c8 por %xmm8,%xmm1 - 426f67: 66 41 0f eb d2 por %xmm10,%xmm2 - 426f6c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 426f70: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 426f74: 66 0f f8 c8 psubb %xmm0,%xmm1 - 426f78: 66 0f d7 d1 pmovmskb %xmm1,%edx - 426f7c: 81 ea ff ff 00 00 sub $0xffff,%edx - 426f82: 0f 85 18 1e 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 426f88: 48 83 c1 10 add $0x10,%rcx - 426f8c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 426f90: 49 83 c2 10 add $0x10,%r10 - 426f94: 0f 8f 96 00 00 00 jg 427030 <__GI___strcasecmp_l+0x460> - 426f9a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 426f9f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 426fa4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 426fa8: 66 0f 73 db 01 psrldq $0x1,%xmm3 - 426fad: 66 0f 73 fa 0f pslldq $0xf,%xmm2 - 426fb2: 66 0f eb d3 por %xmm3,%xmm2 - 426fb6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 426fbb: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 426fc0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 426fc5: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 426fca: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 426fcf: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 426fd4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 426fd9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 426fde: 66 45 0f db c1 pand %xmm9,%xmm8 - 426fe3: 66 45 0f db d3 pand %xmm11,%xmm10 - 426fe8: 66 44 0f db c7 pand %xmm7,%xmm8 - 426fed: 66 44 0f db d7 pand %xmm7,%xmm10 - 426ff2: 66 41 0f eb c8 por %xmm8,%xmm1 - 426ff7: 66 41 0f eb d2 por %xmm10,%xmm2 - 426ffc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427000: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 427004: 66 0f f8 c8 psubb %xmm0,%xmm1 - 427008: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42700c: 81 ea ff ff 00 00 sub $0xffff,%edx - 427012: 0f 85 88 1d 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 427018: 48 83 c1 10 add $0x10,%rcx - 42701c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 427020: e9 db fe ff ff jmpq 426f00 <__GI___strcasecmp_l+0x330> - 427025: 90 nop - 427026: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42702d: 00 00 00 - 427030: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 427034: 66 0f d7 d0 pmovmskb %xmm0,%edx - 427038: f7 c2 fe ff 00 00 test $0xfffe,%edx - 42703e: 75 10 jne 427050 <__GI___strcasecmp_l+0x480> - 427040: 66 0f ef c0 pxor %xmm0,%xmm0 - 427044: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42704b: e9 ba fe ff ff jmpq 426f0a <__GI___strcasecmp_l+0x33a> - 427050: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 427055: 66 0f 73 d8 01 psrldq $0x1,%xmm0 - 42705a: 66 0f 73 db 01 psrldq $0x1,%xmm3 - 42705f: e9 dc 1c 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> - 427064: 66 90 xchg %ax,%ax - 427066: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42706d: 00 00 00 - 427070: 66 0f ef c0 pxor %xmm0,%xmm0 - 427074: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 427078: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42707c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427080: 66 0f 73 fa 0e pslldq $0xe,%xmm2 - 427085: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42708a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 42708f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 427094: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 427099: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42709e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4270a3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4270a8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4270ad: 66 45 0f db c1 pand %xmm9,%xmm8 - 4270b2: 66 45 0f db d3 pand %xmm11,%xmm10 - 4270b7: 66 44 0f db c7 pand %xmm7,%xmm8 - 4270bc: 66 44 0f db d7 pand %xmm7,%xmm10 - 4270c1: 66 41 0f eb c8 por %xmm8,%xmm1 - 4270c6: 66 41 0f eb d2 por %xmm10,%xmm2 - 4270cb: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 4270cf: 66 0f f8 d0 psubb %xmm0,%xmm2 - 4270d3: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 4270d8: d3 ea shr %cl,%edx - 4270da: 41 d3 e9 shr %cl,%r9d - 4270dd: 44 29 ca sub %r9d,%edx - 4270e0: 0f 85 bf 1c 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> - 4270e6: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 4270ea: 66 0f ef c0 pxor %xmm0,%xmm0 - 4270ee: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4270f5: 41 b9 02 00 00 00 mov $0x2,%r9d - 4270fb: 4c 8d 57 02 lea 0x2(%rdi),%r10 - 4270ff: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 427106: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42710d: 0f 1f 00 nopl (%rax) - 427110: 49 83 c2 10 add $0x10,%r10 - 427114: 0f 8f 26 01 00 00 jg 427240 <__GI___strcasecmp_l+0x670> - 42711a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42711f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 427124: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 427128: 66 0f 73 db 02 psrldq $0x2,%xmm3 - 42712d: 66 0f 73 fa 0e pslldq $0xe,%xmm2 - 427132: 66 0f eb d3 por %xmm3,%xmm2 - 427136: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42713b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 427140: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 427145: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 42714a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42714f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 427154: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 427159: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42715e: 66 45 0f db c1 pand %xmm9,%xmm8 - 427163: 66 45 0f db d3 pand %xmm11,%xmm10 - 427168: 66 44 0f db c7 pand %xmm7,%xmm8 - 42716d: 66 44 0f db d7 pand %xmm7,%xmm10 - 427172: 66 41 0f eb c8 por %xmm8,%xmm1 - 427177: 66 41 0f eb d2 por %xmm10,%xmm2 - 42717c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427180: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 427184: 66 0f f8 c8 psubb %xmm0,%xmm1 - 427188: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42718c: 81 ea ff ff 00 00 sub $0xffff,%edx - 427192: 0f 85 08 1c 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 427198: 48 83 c1 10 add $0x10,%rcx - 42719c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4271a0: 49 83 c2 10 add $0x10,%r10 - 4271a4: 0f 8f 96 00 00 00 jg 427240 <__GI___strcasecmp_l+0x670> - 4271aa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4271af: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4271b4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4271b8: 66 0f 73 db 02 psrldq $0x2,%xmm3 - 4271bd: 66 0f 73 fa 0e pslldq $0xe,%xmm2 - 4271c2: 66 0f eb d3 por %xmm3,%xmm2 - 4271c6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4271cb: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4271d0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4271d5: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4271da: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4271df: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4271e4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4271e9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4271ee: 66 45 0f db c1 pand %xmm9,%xmm8 - 4271f3: 66 45 0f db d3 pand %xmm11,%xmm10 - 4271f8: 66 44 0f db c7 pand %xmm7,%xmm8 - 4271fd: 66 44 0f db d7 pand %xmm7,%xmm10 - 427202: 66 41 0f eb c8 por %xmm8,%xmm1 - 427207: 66 41 0f eb d2 por %xmm10,%xmm2 - 42720c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427210: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 427214: 66 0f f8 c8 psubb %xmm0,%xmm1 - 427218: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42721c: 81 ea ff ff 00 00 sub $0xffff,%edx - 427222: 0f 85 78 1b 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 427228: 48 83 c1 10 add $0x10,%rcx - 42722c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 427230: e9 db fe ff ff jmpq 427110 <__GI___strcasecmp_l+0x540> - 427235: 90 nop - 427236: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42723d: 00 00 00 - 427240: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 427244: 66 0f d7 d0 pmovmskb %xmm0,%edx - 427248: f7 c2 fc ff 00 00 test $0xfffc,%edx - 42724e: 75 10 jne 427260 <__GI___strcasecmp_l+0x690> - 427250: 66 0f ef c0 pxor %xmm0,%xmm0 - 427254: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42725b: e9 ba fe ff ff jmpq 42711a <__GI___strcasecmp_l+0x54a> - 427260: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 427265: 66 0f 73 d8 02 psrldq $0x2,%xmm0 - 42726a: 66 0f 73 db 02 psrldq $0x2,%xmm3 - 42726f: e9 cc 1a 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> - 427274: 66 90 xchg %ax,%ax - 427276: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42727d: 00 00 00 - 427280: 66 0f ef c0 pxor %xmm0,%xmm0 - 427284: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 427288: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42728c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427290: 66 0f 73 fa 0d pslldq $0xd,%xmm2 - 427295: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42729a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 42729f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4272a4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4272a9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4272ae: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4272b3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4272b8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4272bd: 66 45 0f db c1 pand %xmm9,%xmm8 - 4272c2: 66 45 0f db d3 pand %xmm11,%xmm10 - 4272c7: 66 44 0f db c7 pand %xmm7,%xmm8 - 4272cc: 66 44 0f db d7 pand %xmm7,%xmm10 - 4272d1: 66 41 0f eb c8 por %xmm8,%xmm1 - 4272d6: 66 41 0f eb d2 por %xmm10,%xmm2 - 4272db: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 4272df: 66 0f f8 d0 psubb %xmm0,%xmm2 - 4272e3: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 4272e8: d3 ea shr %cl,%edx - 4272ea: 41 d3 e9 shr %cl,%r9d - 4272ed: 44 29 ca sub %r9d,%edx - 4272f0: 0f 85 af 1a 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> - 4272f6: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 4272fa: 66 0f ef c0 pxor %xmm0,%xmm0 - 4272fe: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 427305: 41 b9 03 00 00 00 mov $0x3,%r9d - 42730b: 4c 8d 57 03 lea 0x3(%rdi),%r10 - 42730f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 427316: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42731d: 0f 1f 00 nopl (%rax) - 427320: 49 83 c2 10 add $0x10,%r10 - 427324: 0f 8f 26 01 00 00 jg 427450 <__GI___strcasecmp_l+0x880> - 42732a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42732f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 427334: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 427338: 66 0f 73 db 03 psrldq $0x3,%xmm3 - 42733d: 66 0f 73 fa 0d pslldq $0xd,%xmm2 - 427342: 66 0f eb d3 por %xmm3,%xmm2 - 427346: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42734b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 427350: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 427355: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 42735a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42735f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 427364: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 427369: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42736e: 66 45 0f db c1 pand %xmm9,%xmm8 - 427373: 66 45 0f db d3 pand %xmm11,%xmm10 - 427378: 66 44 0f db c7 pand %xmm7,%xmm8 - 42737d: 66 44 0f db d7 pand %xmm7,%xmm10 - 427382: 66 41 0f eb c8 por %xmm8,%xmm1 - 427387: 66 41 0f eb d2 por %xmm10,%xmm2 - 42738c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427390: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 427394: 66 0f f8 c8 psubb %xmm0,%xmm1 - 427398: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42739c: 81 ea ff ff 00 00 sub $0xffff,%edx - 4273a2: 0f 85 f8 19 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 4273a8: 48 83 c1 10 add $0x10,%rcx - 4273ac: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4273b0: 49 83 c2 10 add $0x10,%r10 - 4273b4: 0f 8f 96 00 00 00 jg 427450 <__GI___strcasecmp_l+0x880> - 4273ba: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4273bf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4273c4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4273c8: 66 0f 73 db 03 psrldq $0x3,%xmm3 - 4273cd: 66 0f 73 fa 0d pslldq $0xd,%xmm2 - 4273d2: 66 0f eb d3 por %xmm3,%xmm2 - 4273d6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4273db: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4273e0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4273e5: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4273ea: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4273ef: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4273f4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4273f9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4273fe: 66 45 0f db c1 pand %xmm9,%xmm8 - 427403: 66 45 0f db d3 pand %xmm11,%xmm10 - 427408: 66 44 0f db c7 pand %xmm7,%xmm8 - 42740d: 66 44 0f db d7 pand %xmm7,%xmm10 - 427412: 66 41 0f eb c8 por %xmm8,%xmm1 - 427417: 66 41 0f eb d2 por %xmm10,%xmm2 - 42741c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427420: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 427424: 66 0f f8 c8 psubb %xmm0,%xmm1 - 427428: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42742c: 81 ea ff ff 00 00 sub $0xffff,%edx - 427432: 0f 85 68 19 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 427438: 48 83 c1 10 add $0x10,%rcx - 42743c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 427440: e9 db fe ff ff jmpq 427320 <__GI___strcasecmp_l+0x750> - 427445: 90 nop - 427446: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42744d: 00 00 00 - 427450: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 427454: 66 0f d7 d0 pmovmskb %xmm0,%edx - 427458: f7 c2 f8 ff 00 00 test $0xfff8,%edx - 42745e: 75 10 jne 427470 <__GI___strcasecmp_l+0x8a0> - 427460: 66 0f ef c0 pxor %xmm0,%xmm0 - 427464: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42746b: e9 ba fe ff ff jmpq 42732a <__GI___strcasecmp_l+0x75a> - 427470: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 427475: 66 0f 73 d8 03 psrldq $0x3,%xmm0 - 42747a: 66 0f 73 db 03 psrldq $0x3,%xmm3 - 42747f: e9 bc 18 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> - 427484: 66 90 xchg %ax,%ax - 427486: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42748d: 00 00 00 - 427490: 66 0f ef c0 pxor %xmm0,%xmm0 - 427494: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 427498: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42749c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4274a0: 66 0f 73 fa 0c pslldq $0xc,%xmm2 - 4274a5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4274aa: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4274af: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4274b4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4274b9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4274be: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4274c3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4274c8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4274cd: 66 45 0f db c1 pand %xmm9,%xmm8 - 4274d2: 66 45 0f db d3 pand %xmm11,%xmm10 - 4274d7: 66 44 0f db c7 pand %xmm7,%xmm8 - 4274dc: 66 44 0f db d7 pand %xmm7,%xmm10 - 4274e1: 66 41 0f eb c8 por %xmm8,%xmm1 - 4274e6: 66 41 0f eb d2 por %xmm10,%xmm2 - 4274eb: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 4274ef: 66 0f f8 d0 psubb %xmm0,%xmm2 - 4274f3: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 4274f8: d3 ea shr %cl,%edx - 4274fa: 41 d3 e9 shr %cl,%r9d - 4274fd: 44 29 ca sub %r9d,%edx - 427500: 0f 85 9f 18 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> - 427506: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42750a: 66 0f ef c0 pxor %xmm0,%xmm0 - 42750e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 427515: 41 b9 04 00 00 00 mov $0x4,%r9d - 42751b: 4c 8d 57 04 lea 0x4(%rdi),%r10 - 42751f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 427526: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42752d: 0f 1f 00 nopl (%rax) - 427530: 49 83 c2 10 add $0x10,%r10 - 427534: 0f 8f 26 01 00 00 jg 427660 <__GI___strcasecmp_l+0xa90> - 42753a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42753f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 427544: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 427548: 66 0f 73 db 04 psrldq $0x4,%xmm3 - 42754d: 66 0f 73 fa 0c pslldq $0xc,%xmm2 - 427552: 66 0f eb d3 por %xmm3,%xmm2 - 427556: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42755b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 427560: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 427565: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 42756a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42756f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 427574: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 427579: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42757e: 66 45 0f db c1 pand %xmm9,%xmm8 - 427583: 66 45 0f db d3 pand %xmm11,%xmm10 - 427588: 66 44 0f db c7 pand %xmm7,%xmm8 - 42758d: 66 44 0f db d7 pand %xmm7,%xmm10 - 427592: 66 41 0f eb c8 por %xmm8,%xmm1 - 427597: 66 41 0f eb d2 por %xmm10,%xmm2 - 42759c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4275a0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4275a4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4275a8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4275ac: 81 ea ff ff 00 00 sub $0xffff,%edx - 4275b2: 0f 85 e8 17 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 4275b8: 48 83 c1 10 add $0x10,%rcx - 4275bc: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4275c0: 49 83 c2 10 add $0x10,%r10 - 4275c4: 0f 8f 96 00 00 00 jg 427660 <__GI___strcasecmp_l+0xa90> - 4275ca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4275cf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4275d4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4275d8: 66 0f 73 db 04 psrldq $0x4,%xmm3 - 4275dd: 66 0f 73 fa 0c pslldq $0xc,%xmm2 - 4275e2: 66 0f eb d3 por %xmm3,%xmm2 - 4275e6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4275eb: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4275f0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4275f5: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4275fa: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4275ff: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 427604: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 427609: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42760e: 66 45 0f db c1 pand %xmm9,%xmm8 - 427613: 66 45 0f db d3 pand %xmm11,%xmm10 - 427618: 66 44 0f db c7 pand %xmm7,%xmm8 - 42761d: 66 44 0f db d7 pand %xmm7,%xmm10 - 427622: 66 41 0f eb c8 por %xmm8,%xmm1 - 427627: 66 41 0f eb d2 por %xmm10,%xmm2 - 42762c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427630: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 427634: 66 0f f8 c8 psubb %xmm0,%xmm1 - 427638: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42763c: 81 ea ff ff 00 00 sub $0xffff,%edx - 427642: 0f 85 58 17 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 427648: 48 83 c1 10 add $0x10,%rcx - 42764c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 427650: e9 db fe ff ff jmpq 427530 <__GI___strcasecmp_l+0x960> - 427655: 90 nop - 427656: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42765d: 00 00 00 - 427660: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 427664: 66 0f d7 d0 pmovmskb %xmm0,%edx - 427668: f7 c2 f0 ff 00 00 test $0xfff0,%edx - 42766e: 75 10 jne 427680 <__GI___strcasecmp_l+0xab0> - 427670: 66 0f ef c0 pxor %xmm0,%xmm0 - 427674: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42767b: e9 ba fe ff ff jmpq 42753a <__GI___strcasecmp_l+0x96a> - 427680: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 427685: 66 0f 73 d8 04 psrldq $0x4,%xmm0 - 42768a: 66 0f 73 db 04 psrldq $0x4,%xmm3 - 42768f: e9 ac 16 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> - 427694: 66 90 xchg %ax,%ax - 427696: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42769d: 00 00 00 - 4276a0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4276a4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4276a8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4276ac: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4276b0: 66 0f 73 fa 0b pslldq $0xb,%xmm2 - 4276b5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4276ba: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4276bf: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4276c4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4276c9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4276ce: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4276d3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4276d8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4276dd: 66 45 0f db c1 pand %xmm9,%xmm8 - 4276e2: 66 45 0f db d3 pand %xmm11,%xmm10 - 4276e7: 66 44 0f db c7 pand %xmm7,%xmm8 - 4276ec: 66 44 0f db d7 pand %xmm7,%xmm10 - 4276f1: 66 41 0f eb c8 por %xmm8,%xmm1 - 4276f6: 66 41 0f eb d2 por %xmm10,%xmm2 - 4276fb: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 4276ff: 66 0f f8 d0 psubb %xmm0,%xmm2 - 427703: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 427708: d3 ea shr %cl,%edx - 42770a: 41 d3 e9 shr %cl,%r9d - 42770d: 44 29 ca sub %r9d,%edx - 427710: 0f 85 8f 16 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> - 427716: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42771a: 66 0f ef c0 pxor %xmm0,%xmm0 - 42771e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 427725: 41 b9 05 00 00 00 mov $0x5,%r9d - 42772b: 4c 8d 57 05 lea 0x5(%rdi),%r10 - 42772f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 427736: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42773d: 0f 1f 00 nopl (%rax) - 427740: 49 83 c2 10 add $0x10,%r10 - 427744: 0f 8f 26 01 00 00 jg 427870 <__GI___strcasecmp_l+0xca0> - 42774a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42774f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 427754: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 427758: 66 0f 73 db 05 psrldq $0x5,%xmm3 - 42775d: 66 0f 73 fa 0b pslldq $0xb,%xmm2 - 427762: 66 0f eb d3 por %xmm3,%xmm2 - 427766: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42776b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 427770: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 427775: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 42777a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42777f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 427784: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 427789: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42778e: 66 45 0f db c1 pand %xmm9,%xmm8 - 427793: 66 45 0f db d3 pand %xmm11,%xmm10 - 427798: 66 44 0f db c7 pand %xmm7,%xmm8 - 42779d: 66 44 0f db d7 pand %xmm7,%xmm10 - 4277a2: 66 41 0f eb c8 por %xmm8,%xmm1 - 4277a7: 66 41 0f eb d2 por %xmm10,%xmm2 - 4277ac: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4277b0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4277b4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4277b8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4277bc: 81 ea ff ff 00 00 sub $0xffff,%edx - 4277c2: 0f 85 d8 15 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 4277c8: 48 83 c1 10 add $0x10,%rcx - 4277cc: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4277d0: 49 83 c2 10 add $0x10,%r10 - 4277d4: 0f 8f 96 00 00 00 jg 427870 <__GI___strcasecmp_l+0xca0> - 4277da: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4277df: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4277e4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4277e8: 66 0f 73 db 05 psrldq $0x5,%xmm3 - 4277ed: 66 0f 73 fa 0b pslldq $0xb,%xmm2 - 4277f2: 66 0f eb d3 por %xmm3,%xmm2 - 4277f6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4277fb: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 427800: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 427805: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 42780a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42780f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 427814: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 427819: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42781e: 66 45 0f db c1 pand %xmm9,%xmm8 - 427823: 66 45 0f db d3 pand %xmm11,%xmm10 - 427828: 66 44 0f db c7 pand %xmm7,%xmm8 - 42782d: 66 44 0f db d7 pand %xmm7,%xmm10 - 427832: 66 41 0f eb c8 por %xmm8,%xmm1 - 427837: 66 41 0f eb d2 por %xmm10,%xmm2 - 42783c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427840: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 427844: 66 0f f8 c8 psubb %xmm0,%xmm1 - 427848: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42784c: 81 ea ff ff 00 00 sub $0xffff,%edx - 427852: 0f 85 48 15 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 427858: 48 83 c1 10 add $0x10,%rcx - 42785c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 427860: e9 db fe ff ff jmpq 427740 <__GI___strcasecmp_l+0xb70> - 427865: 90 nop - 427866: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42786d: 00 00 00 - 427870: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 427874: 66 0f d7 d0 pmovmskb %xmm0,%edx - 427878: f7 c2 e0 ff 00 00 test $0xffe0,%edx - 42787e: 75 10 jne 427890 <__GI___strcasecmp_l+0xcc0> - 427880: 66 0f ef c0 pxor %xmm0,%xmm0 - 427884: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42788b: e9 ba fe ff ff jmpq 42774a <__GI___strcasecmp_l+0xb7a> - 427890: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 427895: 66 0f 73 d8 05 psrldq $0x5,%xmm0 - 42789a: 66 0f 73 db 05 psrldq $0x5,%xmm3 - 42789f: e9 9c 14 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> - 4278a4: 66 90 xchg %ax,%ax - 4278a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4278ad: 00 00 00 - 4278b0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4278b4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4278b8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4278bc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4278c0: 66 0f 73 fa 0a pslldq $0xa,%xmm2 - 4278c5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4278ca: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4278cf: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4278d4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4278d9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4278de: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4278e3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4278e8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4278ed: 66 45 0f db c1 pand %xmm9,%xmm8 - 4278f2: 66 45 0f db d3 pand %xmm11,%xmm10 - 4278f7: 66 44 0f db c7 pand %xmm7,%xmm8 - 4278fc: 66 44 0f db d7 pand %xmm7,%xmm10 - 427901: 66 41 0f eb c8 por %xmm8,%xmm1 - 427906: 66 41 0f eb d2 por %xmm10,%xmm2 - 42790b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42790f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 427913: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 427918: d3 ea shr %cl,%edx - 42791a: 41 d3 e9 shr %cl,%r9d - 42791d: 44 29 ca sub %r9d,%edx - 427920: 0f 85 7f 14 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> - 427926: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42792a: 66 0f ef c0 pxor %xmm0,%xmm0 - 42792e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 427935: 41 b9 06 00 00 00 mov $0x6,%r9d - 42793b: 4c 8d 57 06 lea 0x6(%rdi),%r10 - 42793f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 427946: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42794d: 0f 1f 00 nopl (%rax) - 427950: 49 83 c2 10 add $0x10,%r10 - 427954: 0f 8f 26 01 00 00 jg 427a80 <__GI___strcasecmp_l+0xeb0> - 42795a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42795f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 427964: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 427968: 66 0f 73 db 06 psrldq $0x6,%xmm3 - 42796d: 66 0f 73 fa 0a pslldq $0xa,%xmm2 - 427972: 66 0f eb d3 por %xmm3,%xmm2 - 427976: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42797b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 427980: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 427985: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 42798a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42798f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 427994: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 427999: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42799e: 66 45 0f db c1 pand %xmm9,%xmm8 - 4279a3: 66 45 0f db d3 pand %xmm11,%xmm10 - 4279a8: 66 44 0f db c7 pand %xmm7,%xmm8 - 4279ad: 66 44 0f db d7 pand %xmm7,%xmm10 - 4279b2: 66 41 0f eb c8 por %xmm8,%xmm1 - 4279b7: 66 41 0f eb d2 por %xmm10,%xmm2 - 4279bc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4279c0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4279c4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4279c8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4279cc: 81 ea ff ff 00 00 sub $0xffff,%edx - 4279d2: 0f 85 c8 13 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 4279d8: 48 83 c1 10 add $0x10,%rcx - 4279dc: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4279e0: 49 83 c2 10 add $0x10,%r10 - 4279e4: 0f 8f 96 00 00 00 jg 427a80 <__GI___strcasecmp_l+0xeb0> - 4279ea: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4279ef: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4279f4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4279f8: 66 0f 73 db 06 psrldq $0x6,%xmm3 - 4279fd: 66 0f 73 fa 0a pslldq $0xa,%xmm2 - 427a02: 66 0f eb d3 por %xmm3,%xmm2 - 427a06: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 427a0b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 427a10: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 427a15: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 427a1a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 427a1f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 427a24: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 427a29: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 427a2e: 66 45 0f db c1 pand %xmm9,%xmm8 - 427a33: 66 45 0f db d3 pand %xmm11,%xmm10 - 427a38: 66 44 0f db c7 pand %xmm7,%xmm8 - 427a3d: 66 44 0f db d7 pand %xmm7,%xmm10 - 427a42: 66 41 0f eb c8 por %xmm8,%xmm1 - 427a47: 66 41 0f eb d2 por %xmm10,%xmm2 - 427a4c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427a50: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 427a54: 66 0f f8 c8 psubb %xmm0,%xmm1 - 427a58: 66 0f d7 d1 pmovmskb %xmm1,%edx - 427a5c: 81 ea ff ff 00 00 sub $0xffff,%edx - 427a62: 0f 85 38 13 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 427a68: 48 83 c1 10 add $0x10,%rcx - 427a6c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 427a70: e9 db fe ff ff jmpq 427950 <__GI___strcasecmp_l+0xd80> - 427a75: 90 nop - 427a76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 427a7d: 00 00 00 - 427a80: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 427a84: 66 0f d7 d0 pmovmskb %xmm0,%edx - 427a88: f7 c2 c0 ff 00 00 test $0xffc0,%edx - 427a8e: 75 10 jne 427aa0 <__GI___strcasecmp_l+0xed0> - 427a90: 66 0f ef c0 pxor %xmm0,%xmm0 - 427a94: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 427a9b: e9 ba fe ff ff jmpq 42795a <__GI___strcasecmp_l+0xd8a> - 427aa0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 427aa5: 66 0f 73 d8 06 psrldq $0x6,%xmm0 - 427aaa: 66 0f 73 db 06 psrldq $0x6,%xmm3 - 427aaf: e9 8c 12 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> - 427ab4: 66 90 xchg %ax,%ax - 427ab6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 427abd: 00 00 00 - 427ac0: 66 0f ef c0 pxor %xmm0,%xmm0 - 427ac4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 427ac8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 427acc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427ad0: 66 0f 73 fa 09 pslldq $0x9,%xmm2 - 427ad5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 427ada: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 427adf: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 427ae4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 427ae9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 427aee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 427af3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 427af8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 427afd: 66 45 0f db c1 pand %xmm9,%xmm8 - 427b02: 66 45 0f db d3 pand %xmm11,%xmm10 - 427b07: 66 44 0f db c7 pand %xmm7,%xmm8 - 427b0c: 66 44 0f db d7 pand %xmm7,%xmm10 - 427b11: 66 41 0f eb c8 por %xmm8,%xmm1 - 427b16: 66 41 0f eb d2 por %xmm10,%xmm2 - 427b1b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 427b1f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 427b23: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 427b28: d3 ea shr %cl,%edx - 427b2a: 41 d3 e9 shr %cl,%r9d - 427b2d: 44 29 ca sub %r9d,%edx - 427b30: 0f 85 6f 12 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> - 427b36: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 427b3a: 66 0f ef c0 pxor %xmm0,%xmm0 - 427b3e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 427b45: 41 b9 07 00 00 00 mov $0x7,%r9d - 427b4b: 4c 8d 57 07 lea 0x7(%rdi),%r10 - 427b4f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 427b56: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 427b5d: 0f 1f 00 nopl (%rax) - 427b60: 49 83 c2 10 add $0x10,%r10 - 427b64: 0f 8f 26 01 00 00 jg 427c90 <__GI___strcasecmp_l+0x10c0> - 427b6a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 427b6f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 427b74: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 427b78: 66 0f 73 db 07 psrldq $0x7,%xmm3 - 427b7d: 66 0f 73 fa 09 pslldq $0x9,%xmm2 - 427b82: 66 0f eb d3 por %xmm3,%xmm2 - 427b86: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 427b8b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 427b90: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 427b95: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 427b9a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 427b9f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 427ba4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 427ba9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 427bae: 66 45 0f db c1 pand %xmm9,%xmm8 - 427bb3: 66 45 0f db d3 pand %xmm11,%xmm10 - 427bb8: 66 44 0f db c7 pand %xmm7,%xmm8 - 427bbd: 66 44 0f db d7 pand %xmm7,%xmm10 - 427bc2: 66 41 0f eb c8 por %xmm8,%xmm1 - 427bc7: 66 41 0f eb d2 por %xmm10,%xmm2 - 427bcc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427bd0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 427bd4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 427bd8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 427bdc: 81 ea ff ff 00 00 sub $0xffff,%edx - 427be2: 0f 85 b8 11 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 427be8: 48 83 c1 10 add $0x10,%rcx - 427bec: 66 0f 6f dc movdqa %xmm4,%xmm3 - 427bf0: 49 83 c2 10 add $0x10,%r10 - 427bf4: 0f 8f 96 00 00 00 jg 427c90 <__GI___strcasecmp_l+0x10c0> - 427bfa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 427bff: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 427c04: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 427c08: 66 0f 73 db 07 psrldq $0x7,%xmm3 - 427c0d: 66 0f 73 fa 09 pslldq $0x9,%xmm2 - 427c12: 66 0f eb d3 por %xmm3,%xmm2 - 427c16: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 427c1b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 427c20: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 427c25: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 427c2a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 427c2f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 427c34: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 427c39: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 427c3e: 66 45 0f db c1 pand %xmm9,%xmm8 - 427c43: 66 45 0f db d3 pand %xmm11,%xmm10 - 427c48: 66 44 0f db c7 pand %xmm7,%xmm8 - 427c4d: 66 44 0f db d7 pand %xmm7,%xmm10 - 427c52: 66 41 0f eb c8 por %xmm8,%xmm1 - 427c57: 66 41 0f eb d2 por %xmm10,%xmm2 - 427c5c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427c60: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 427c64: 66 0f f8 c8 psubb %xmm0,%xmm1 - 427c68: 66 0f d7 d1 pmovmskb %xmm1,%edx - 427c6c: 81 ea ff ff 00 00 sub $0xffff,%edx - 427c72: 0f 85 28 11 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 427c78: 48 83 c1 10 add $0x10,%rcx - 427c7c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 427c80: e9 db fe ff ff jmpq 427b60 <__GI___strcasecmp_l+0xf90> - 427c85: 90 nop - 427c86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 427c8d: 00 00 00 - 427c90: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 427c94: 66 0f d7 d0 pmovmskb %xmm0,%edx - 427c98: f7 c2 80 ff 00 00 test $0xff80,%edx - 427c9e: 75 10 jne 427cb0 <__GI___strcasecmp_l+0x10e0> - 427ca0: 66 0f ef c0 pxor %xmm0,%xmm0 - 427ca4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 427cab: e9 ba fe ff ff jmpq 427b6a <__GI___strcasecmp_l+0xf9a> - 427cb0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 427cb5: 66 0f 73 d8 07 psrldq $0x7,%xmm0 - 427cba: 66 0f 73 db 07 psrldq $0x7,%xmm3 - 427cbf: e9 7c 10 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> - 427cc4: 66 90 xchg %ax,%ax - 427cc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 427ccd: 00 00 00 - 427cd0: 66 0f ef c0 pxor %xmm0,%xmm0 - 427cd4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 427cd8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 427cdc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427ce0: 66 0f 73 fa 08 pslldq $0x8,%xmm2 - 427ce5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 427cea: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 427cef: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 427cf4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 427cf9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 427cfe: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 427d03: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 427d08: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 427d0d: 66 45 0f db c1 pand %xmm9,%xmm8 - 427d12: 66 45 0f db d3 pand %xmm11,%xmm10 - 427d17: 66 44 0f db c7 pand %xmm7,%xmm8 - 427d1c: 66 44 0f db d7 pand %xmm7,%xmm10 - 427d21: 66 41 0f eb c8 por %xmm8,%xmm1 - 427d26: 66 41 0f eb d2 por %xmm10,%xmm2 - 427d2b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 427d2f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 427d33: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 427d38: d3 ea shr %cl,%edx - 427d3a: 41 d3 e9 shr %cl,%r9d - 427d3d: 44 29 ca sub %r9d,%edx - 427d40: 0f 85 5f 10 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> - 427d46: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 427d4a: 66 0f ef c0 pxor %xmm0,%xmm0 - 427d4e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 427d55: 41 b9 08 00 00 00 mov $0x8,%r9d - 427d5b: 4c 8d 57 08 lea 0x8(%rdi),%r10 - 427d5f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 427d66: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 427d6d: 0f 1f 00 nopl (%rax) - 427d70: 49 83 c2 10 add $0x10,%r10 - 427d74: 0f 8f 26 01 00 00 jg 427ea0 <__GI___strcasecmp_l+0x12d0> - 427d7a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 427d7f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 427d84: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 427d88: 66 0f 73 db 08 psrldq $0x8,%xmm3 - 427d8d: 66 0f 73 fa 08 pslldq $0x8,%xmm2 - 427d92: 66 0f eb d3 por %xmm3,%xmm2 - 427d96: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 427d9b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 427da0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 427da5: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 427daa: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 427daf: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 427db4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 427db9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 427dbe: 66 45 0f db c1 pand %xmm9,%xmm8 - 427dc3: 66 45 0f db d3 pand %xmm11,%xmm10 - 427dc8: 66 44 0f db c7 pand %xmm7,%xmm8 - 427dcd: 66 44 0f db d7 pand %xmm7,%xmm10 - 427dd2: 66 41 0f eb c8 por %xmm8,%xmm1 - 427dd7: 66 41 0f eb d2 por %xmm10,%xmm2 - 427ddc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427de0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 427de4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 427de8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 427dec: 81 ea ff ff 00 00 sub $0xffff,%edx - 427df2: 0f 85 a8 0f 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 427df8: 48 83 c1 10 add $0x10,%rcx - 427dfc: 66 0f 6f dc movdqa %xmm4,%xmm3 - 427e00: 49 83 c2 10 add $0x10,%r10 - 427e04: 0f 8f 96 00 00 00 jg 427ea0 <__GI___strcasecmp_l+0x12d0> - 427e0a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 427e0f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 427e14: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 427e18: 66 0f 73 db 08 psrldq $0x8,%xmm3 - 427e1d: 66 0f 73 fa 08 pslldq $0x8,%xmm2 - 427e22: 66 0f eb d3 por %xmm3,%xmm2 - 427e26: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 427e2b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 427e30: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 427e35: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 427e3a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 427e3f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 427e44: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 427e49: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 427e4e: 66 45 0f db c1 pand %xmm9,%xmm8 - 427e53: 66 45 0f db d3 pand %xmm11,%xmm10 - 427e58: 66 44 0f db c7 pand %xmm7,%xmm8 - 427e5d: 66 44 0f db d7 pand %xmm7,%xmm10 - 427e62: 66 41 0f eb c8 por %xmm8,%xmm1 - 427e67: 66 41 0f eb d2 por %xmm10,%xmm2 - 427e6c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427e70: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 427e74: 66 0f f8 c8 psubb %xmm0,%xmm1 - 427e78: 66 0f d7 d1 pmovmskb %xmm1,%edx - 427e7c: 81 ea ff ff 00 00 sub $0xffff,%edx - 427e82: 0f 85 18 0f 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 427e88: 48 83 c1 10 add $0x10,%rcx - 427e8c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 427e90: e9 db fe ff ff jmpq 427d70 <__GI___strcasecmp_l+0x11a0> - 427e95: 90 nop - 427e96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 427e9d: 00 00 00 - 427ea0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 427ea4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 427ea8: f7 c2 00 ff 00 00 test $0xff00,%edx - 427eae: 75 10 jne 427ec0 <__GI___strcasecmp_l+0x12f0> - 427eb0: 66 0f ef c0 pxor %xmm0,%xmm0 - 427eb4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 427ebb: e9 ba fe ff ff jmpq 427d7a <__GI___strcasecmp_l+0x11aa> - 427ec0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 427ec5: 66 0f 73 d8 08 psrldq $0x8,%xmm0 - 427eca: 66 0f 73 db 08 psrldq $0x8,%xmm3 - 427ecf: e9 6c 0e 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> - 427ed4: 66 90 xchg %ax,%ax - 427ed6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 427edd: 00 00 00 - 427ee0: 66 0f ef c0 pxor %xmm0,%xmm0 - 427ee4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 427ee8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 427eec: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427ef0: 66 0f 73 fa 07 pslldq $0x7,%xmm2 - 427ef5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 427efa: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 427eff: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 427f04: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 427f09: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 427f0e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 427f13: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 427f18: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 427f1d: 66 45 0f db c1 pand %xmm9,%xmm8 - 427f22: 66 45 0f db d3 pand %xmm11,%xmm10 - 427f27: 66 44 0f db c7 pand %xmm7,%xmm8 - 427f2c: 66 44 0f db d7 pand %xmm7,%xmm10 - 427f31: 66 41 0f eb c8 por %xmm8,%xmm1 - 427f36: 66 41 0f eb d2 por %xmm10,%xmm2 - 427f3b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 427f3f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 427f43: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 427f48: d3 ea shr %cl,%edx - 427f4a: 41 d3 e9 shr %cl,%r9d - 427f4d: 44 29 ca sub %r9d,%edx - 427f50: 0f 85 4f 0e 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> - 427f56: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 427f5a: 66 0f ef c0 pxor %xmm0,%xmm0 - 427f5e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 427f65: 41 b9 09 00 00 00 mov $0x9,%r9d - 427f6b: 4c 8d 57 09 lea 0x9(%rdi),%r10 - 427f6f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 427f76: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 427f7d: 0f 1f 00 nopl (%rax) - 427f80: 49 83 c2 10 add $0x10,%r10 - 427f84: 0f 8f 26 01 00 00 jg 4280b0 <__GI___strcasecmp_l+0x14e0> - 427f8a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 427f8f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 427f94: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 427f98: 66 0f 73 db 09 psrldq $0x9,%xmm3 - 427f9d: 66 0f 73 fa 07 pslldq $0x7,%xmm2 - 427fa2: 66 0f eb d3 por %xmm3,%xmm2 - 427fa6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 427fab: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 427fb0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 427fb5: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 427fba: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 427fbf: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 427fc4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 427fc9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 427fce: 66 45 0f db c1 pand %xmm9,%xmm8 - 427fd3: 66 45 0f db d3 pand %xmm11,%xmm10 - 427fd8: 66 44 0f db c7 pand %xmm7,%xmm8 - 427fdd: 66 44 0f db d7 pand %xmm7,%xmm10 - 427fe2: 66 41 0f eb c8 por %xmm8,%xmm1 - 427fe7: 66 41 0f eb d2 por %xmm10,%xmm2 - 427fec: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 427ff0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 427ff4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 427ff8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 427ffc: 81 ea ff ff 00 00 sub $0xffff,%edx - 428002: 0f 85 98 0d 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 428008: 48 83 c1 10 add $0x10,%rcx - 42800c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 428010: 49 83 c2 10 add $0x10,%r10 - 428014: 0f 8f 96 00 00 00 jg 4280b0 <__GI___strcasecmp_l+0x14e0> - 42801a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42801f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 428024: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 428028: 66 0f 73 db 09 psrldq $0x9,%xmm3 - 42802d: 66 0f 73 fa 07 pslldq $0x7,%xmm2 - 428032: 66 0f eb d3 por %xmm3,%xmm2 - 428036: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42803b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 428040: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 428045: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 42804a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42804f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428054: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428059: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42805e: 66 45 0f db c1 pand %xmm9,%xmm8 - 428063: 66 45 0f db d3 pand %xmm11,%xmm10 - 428068: 66 44 0f db c7 pand %xmm7,%xmm8 - 42806d: 66 44 0f db d7 pand %xmm7,%xmm10 - 428072: 66 41 0f eb c8 por %xmm8,%xmm1 - 428077: 66 41 0f eb d2 por %xmm10,%xmm2 - 42807c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428080: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 428084: 66 0f f8 c8 psubb %xmm0,%xmm1 - 428088: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42808c: 81 ea ff ff 00 00 sub $0xffff,%edx - 428092: 0f 85 08 0d 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 428098: 48 83 c1 10 add $0x10,%rcx - 42809c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4280a0: e9 db fe ff ff jmpq 427f80 <__GI___strcasecmp_l+0x13b0> - 4280a5: 90 nop - 4280a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4280ad: 00 00 00 - 4280b0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 4280b4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4280b8: f7 c2 00 fe 00 00 test $0xfe00,%edx - 4280be: 75 10 jne 4280d0 <__GI___strcasecmp_l+0x1500> - 4280c0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4280c4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4280cb: e9 ba fe ff ff jmpq 427f8a <__GI___strcasecmp_l+0x13ba> - 4280d0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4280d5: 66 0f 73 d8 09 psrldq $0x9,%xmm0 - 4280da: 66 0f 73 db 09 psrldq $0x9,%xmm3 - 4280df: e9 5c 0c 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> - 4280e4: 66 90 xchg %ax,%ax - 4280e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4280ed: 00 00 00 - 4280f0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4280f4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4280f8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4280fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428100: 66 0f 73 fa 06 pslldq $0x6,%xmm2 - 428105: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42810a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 42810f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 428114: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 428119: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42811e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428123: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428128: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42812d: 66 45 0f db c1 pand %xmm9,%xmm8 - 428132: 66 45 0f db d3 pand %xmm11,%xmm10 - 428137: 66 44 0f db c7 pand %xmm7,%xmm8 - 42813c: 66 44 0f db d7 pand %xmm7,%xmm10 - 428141: 66 41 0f eb c8 por %xmm8,%xmm1 - 428146: 66 41 0f eb d2 por %xmm10,%xmm2 - 42814b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42814f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 428153: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 428158: d3 ea shr %cl,%edx - 42815a: 41 d3 e9 shr %cl,%r9d - 42815d: 44 29 ca sub %r9d,%edx - 428160: 0f 85 3f 0c 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> - 428166: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42816a: 66 0f ef c0 pxor %xmm0,%xmm0 - 42816e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 428175: 41 b9 0a 00 00 00 mov $0xa,%r9d - 42817b: 4c 8d 57 0a lea 0xa(%rdi),%r10 - 42817f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 428186: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42818d: 0f 1f 00 nopl (%rax) - 428190: 49 83 c2 10 add $0x10,%r10 - 428194: 0f 8f 26 01 00 00 jg 4282c0 <__GI___strcasecmp_l+0x16f0> - 42819a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42819f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4281a4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4281a8: 66 0f 73 db 0a psrldq $0xa,%xmm3 - 4281ad: 66 0f 73 fa 06 pslldq $0x6,%xmm2 - 4281b2: 66 0f eb d3 por %xmm3,%xmm2 - 4281b6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4281bb: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4281c0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4281c5: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4281ca: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4281cf: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4281d4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4281d9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4281de: 66 45 0f db c1 pand %xmm9,%xmm8 - 4281e3: 66 45 0f db d3 pand %xmm11,%xmm10 - 4281e8: 66 44 0f db c7 pand %xmm7,%xmm8 - 4281ed: 66 44 0f db d7 pand %xmm7,%xmm10 - 4281f2: 66 41 0f eb c8 por %xmm8,%xmm1 - 4281f7: 66 41 0f eb d2 por %xmm10,%xmm2 - 4281fc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428200: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 428204: 66 0f f8 c8 psubb %xmm0,%xmm1 - 428208: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42820c: 81 ea ff ff 00 00 sub $0xffff,%edx - 428212: 0f 85 88 0b 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 428218: 48 83 c1 10 add $0x10,%rcx - 42821c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 428220: 49 83 c2 10 add $0x10,%r10 - 428224: 0f 8f 96 00 00 00 jg 4282c0 <__GI___strcasecmp_l+0x16f0> - 42822a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42822f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 428234: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 428238: 66 0f 73 db 0a psrldq $0xa,%xmm3 - 42823d: 66 0f 73 fa 06 pslldq $0x6,%xmm2 - 428242: 66 0f eb d3 por %xmm3,%xmm2 - 428246: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42824b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 428250: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 428255: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 42825a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42825f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428264: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428269: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42826e: 66 45 0f db c1 pand %xmm9,%xmm8 - 428273: 66 45 0f db d3 pand %xmm11,%xmm10 - 428278: 66 44 0f db c7 pand %xmm7,%xmm8 - 42827d: 66 44 0f db d7 pand %xmm7,%xmm10 - 428282: 66 41 0f eb c8 por %xmm8,%xmm1 - 428287: 66 41 0f eb d2 por %xmm10,%xmm2 - 42828c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428290: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 428294: 66 0f f8 c8 psubb %xmm0,%xmm1 - 428298: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42829c: 81 ea ff ff 00 00 sub $0xffff,%edx - 4282a2: 0f 85 f8 0a 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 4282a8: 48 83 c1 10 add $0x10,%rcx - 4282ac: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4282b0: e9 db fe ff ff jmpq 428190 <__GI___strcasecmp_l+0x15c0> - 4282b5: 90 nop - 4282b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4282bd: 00 00 00 - 4282c0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 4282c4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4282c8: f7 c2 00 fc 00 00 test $0xfc00,%edx - 4282ce: 75 10 jne 4282e0 <__GI___strcasecmp_l+0x1710> - 4282d0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4282d4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4282db: e9 ba fe ff ff jmpq 42819a <__GI___strcasecmp_l+0x15ca> - 4282e0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4282e5: 66 0f 73 d8 0a psrldq $0xa,%xmm0 - 4282ea: 66 0f 73 db 0a psrldq $0xa,%xmm3 - 4282ef: e9 4c 0a 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> - 4282f4: 66 90 xchg %ax,%ax - 4282f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4282fd: 00 00 00 - 428300: 66 0f ef c0 pxor %xmm0,%xmm0 - 428304: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 428308: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42830c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428310: 66 0f 73 fa 05 pslldq $0x5,%xmm2 - 428315: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42831a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 42831f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 428324: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 428329: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42832e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428333: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428338: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42833d: 66 45 0f db c1 pand %xmm9,%xmm8 - 428342: 66 45 0f db d3 pand %xmm11,%xmm10 - 428347: 66 44 0f db c7 pand %xmm7,%xmm8 - 42834c: 66 44 0f db d7 pand %xmm7,%xmm10 - 428351: 66 41 0f eb c8 por %xmm8,%xmm1 - 428356: 66 41 0f eb d2 por %xmm10,%xmm2 - 42835b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42835f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 428363: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 428368: d3 ea shr %cl,%edx - 42836a: 41 d3 e9 shr %cl,%r9d - 42836d: 44 29 ca sub %r9d,%edx - 428370: 0f 85 2f 0a 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> - 428376: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42837a: 66 0f ef c0 pxor %xmm0,%xmm0 - 42837e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 428385: 41 b9 0b 00 00 00 mov $0xb,%r9d - 42838b: 4c 8d 57 0b lea 0xb(%rdi),%r10 - 42838f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 428396: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42839d: 0f 1f 00 nopl (%rax) - 4283a0: 49 83 c2 10 add $0x10,%r10 - 4283a4: 0f 8f 26 01 00 00 jg 4284d0 <__GI___strcasecmp_l+0x1900> - 4283aa: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4283af: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4283b4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4283b8: 66 0f 73 db 0b psrldq $0xb,%xmm3 - 4283bd: 66 0f 73 fa 05 pslldq $0x5,%xmm2 - 4283c2: 66 0f eb d3 por %xmm3,%xmm2 - 4283c6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4283cb: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4283d0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4283d5: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4283da: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4283df: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4283e4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4283e9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4283ee: 66 45 0f db c1 pand %xmm9,%xmm8 - 4283f3: 66 45 0f db d3 pand %xmm11,%xmm10 - 4283f8: 66 44 0f db c7 pand %xmm7,%xmm8 - 4283fd: 66 44 0f db d7 pand %xmm7,%xmm10 - 428402: 66 41 0f eb c8 por %xmm8,%xmm1 - 428407: 66 41 0f eb d2 por %xmm10,%xmm2 - 42840c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428410: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 428414: 66 0f f8 c8 psubb %xmm0,%xmm1 - 428418: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42841c: 81 ea ff ff 00 00 sub $0xffff,%edx - 428422: 0f 85 78 09 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 428428: 48 83 c1 10 add $0x10,%rcx - 42842c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 428430: 49 83 c2 10 add $0x10,%r10 - 428434: 0f 8f 96 00 00 00 jg 4284d0 <__GI___strcasecmp_l+0x1900> - 42843a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42843f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 428444: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 428448: 66 0f 73 db 0b psrldq $0xb,%xmm3 - 42844d: 66 0f 73 fa 05 pslldq $0x5,%xmm2 - 428452: 66 0f eb d3 por %xmm3,%xmm2 - 428456: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42845b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 428460: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 428465: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 42846a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42846f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428474: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428479: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42847e: 66 45 0f db c1 pand %xmm9,%xmm8 - 428483: 66 45 0f db d3 pand %xmm11,%xmm10 - 428488: 66 44 0f db c7 pand %xmm7,%xmm8 - 42848d: 66 44 0f db d7 pand %xmm7,%xmm10 - 428492: 66 41 0f eb c8 por %xmm8,%xmm1 - 428497: 66 41 0f eb d2 por %xmm10,%xmm2 - 42849c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4284a0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4284a4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4284a8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4284ac: 81 ea ff ff 00 00 sub $0xffff,%edx - 4284b2: 0f 85 e8 08 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 4284b8: 48 83 c1 10 add $0x10,%rcx - 4284bc: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4284c0: e9 db fe ff ff jmpq 4283a0 <__GI___strcasecmp_l+0x17d0> - 4284c5: 90 nop - 4284c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4284cd: 00 00 00 - 4284d0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 4284d4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4284d8: f7 c2 00 f8 00 00 test $0xf800,%edx - 4284de: 75 10 jne 4284f0 <__GI___strcasecmp_l+0x1920> - 4284e0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4284e4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4284eb: e9 ba fe ff ff jmpq 4283aa <__GI___strcasecmp_l+0x17da> - 4284f0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4284f5: 66 0f 73 d8 0b psrldq $0xb,%xmm0 - 4284fa: 66 0f 73 db 0b psrldq $0xb,%xmm3 - 4284ff: e9 3c 08 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> - 428504: 66 90 xchg %ax,%ax - 428506: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42850d: 00 00 00 - 428510: 66 0f ef c0 pxor %xmm0,%xmm0 - 428514: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 428518: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42851c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428520: 66 0f 73 fa 04 pslldq $0x4,%xmm2 - 428525: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42852a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 42852f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 428534: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 428539: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42853e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428543: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428548: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42854d: 66 45 0f db c1 pand %xmm9,%xmm8 - 428552: 66 45 0f db d3 pand %xmm11,%xmm10 - 428557: 66 44 0f db c7 pand %xmm7,%xmm8 - 42855c: 66 44 0f db d7 pand %xmm7,%xmm10 - 428561: 66 41 0f eb c8 por %xmm8,%xmm1 - 428566: 66 41 0f eb d2 por %xmm10,%xmm2 - 42856b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42856f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 428573: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 428578: d3 ea shr %cl,%edx - 42857a: 41 d3 e9 shr %cl,%r9d - 42857d: 44 29 ca sub %r9d,%edx - 428580: 0f 85 1f 08 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> - 428586: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42858a: 66 0f ef c0 pxor %xmm0,%xmm0 - 42858e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 428595: 41 b9 0c 00 00 00 mov $0xc,%r9d - 42859b: 4c 8d 57 0c lea 0xc(%rdi),%r10 - 42859f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 4285a6: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4285ad: 0f 1f 00 nopl (%rax) - 4285b0: 49 83 c2 10 add $0x10,%r10 - 4285b4: 0f 8f 26 01 00 00 jg 4286e0 <__GI___strcasecmp_l+0x1b10> - 4285ba: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4285bf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4285c4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4285c8: 66 0f 73 db 0c psrldq $0xc,%xmm3 - 4285cd: 66 0f 73 fa 04 pslldq $0x4,%xmm2 - 4285d2: 66 0f eb d3 por %xmm3,%xmm2 - 4285d6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4285db: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4285e0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4285e5: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4285ea: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4285ef: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4285f4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4285f9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4285fe: 66 45 0f db c1 pand %xmm9,%xmm8 - 428603: 66 45 0f db d3 pand %xmm11,%xmm10 - 428608: 66 44 0f db c7 pand %xmm7,%xmm8 - 42860d: 66 44 0f db d7 pand %xmm7,%xmm10 - 428612: 66 41 0f eb c8 por %xmm8,%xmm1 - 428617: 66 41 0f eb d2 por %xmm10,%xmm2 - 42861c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428620: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 428624: 66 0f f8 c8 psubb %xmm0,%xmm1 - 428628: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42862c: 81 ea ff ff 00 00 sub $0xffff,%edx - 428632: 0f 85 68 07 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 428638: 48 83 c1 10 add $0x10,%rcx - 42863c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 428640: 49 83 c2 10 add $0x10,%r10 - 428644: 0f 8f 96 00 00 00 jg 4286e0 <__GI___strcasecmp_l+0x1b10> - 42864a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42864f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 428654: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 428658: 66 0f 73 db 0c psrldq $0xc,%xmm3 - 42865d: 66 0f 73 fa 04 pslldq $0x4,%xmm2 - 428662: 66 0f eb d3 por %xmm3,%xmm2 - 428666: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42866b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 428670: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 428675: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 42867a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42867f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428684: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428689: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42868e: 66 45 0f db c1 pand %xmm9,%xmm8 - 428693: 66 45 0f db d3 pand %xmm11,%xmm10 - 428698: 66 44 0f db c7 pand %xmm7,%xmm8 - 42869d: 66 44 0f db d7 pand %xmm7,%xmm10 - 4286a2: 66 41 0f eb c8 por %xmm8,%xmm1 - 4286a7: 66 41 0f eb d2 por %xmm10,%xmm2 - 4286ac: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4286b0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4286b4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4286b8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4286bc: 81 ea ff ff 00 00 sub $0xffff,%edx - 4286c2: 0f 85 d8 06 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 4286c8: 48 83 c1 10 add $0x10,%rcx - 4286cc: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4286d0: e9 db fe ff ff jmpq 4285b0 <__GI___strcasecmp_l+0x19e0> - 4286d5: 90 nop - 4286d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4286dd: 00 00 00 - 4286e0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 4286e4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4286e8: f7 c2 00 f0 00 00 test $0xf000,%edx - 4286ee: 75 10 jne 428700 <__GI___strcasecmp_l+0x1b30> - 4286f0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4286f4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4286fb: e9 ba fe ff ff jmpq 4285ba <__GI___strcasecmp_l+0x19ea> - 428700: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 428705: 66 0f 73 d8 0c psrldq $0xc,%xmm0 - 42870a: 66 0f 73 db 0c psrldq $0xc,%xmm3 - 42870f: e9 2c 06 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> - 428714: 66 90 xchg %ax,%ax - 428716: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42871d: 00 00 00 - 428720: 66 0f ef c0 pxor %xmm0,%xmm0 - 428724: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 428728: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42872c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428730: 66 0f 73 fa 03 pslldq $0x3,%xmm2 - 428735: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42873a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 42873f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 428744: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 428749: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42874e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428753: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428758: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42875d: 66 45 0f db c1 pand %xmm9,%xmm8 - 428762: 66 45 0f db d3 pand %xmm11,%xmm10 - 428767: 66 44 0f db c7 pand %xmm7,%xmm8 - 42876c: 66 44 0f db d7 pand %xmm7,%xmm10 - 428771: 66 41 0f eb c8 por %xmm8,%xmm1 - 428776: 66 41 0f eb d2 por %xmm10,%xmm2 - 42877b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42877f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 428783: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 428788: d3 ea shr %cl,%edx - 42878a: 41 d3 e9 shr %cl,%r9d - 42878d: 44 29 ca sub %r9d,%edx - 428790: 0f 85 0f 06 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> - 428796: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42879a: 66 0f ef c0 pxor %xmm0,%xmm0 - 42879e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4287a5: 41 b9 0d 00 00 00 mov $0xd,%r9d - 4287ab: 4c 8d 57 0d lea 0xd(%rdi),%r10 - 4287af: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 4287b6: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4287bd: 0f 1f 00 nopl (%rax) - 4287c0: 49 83 c2 10 add $0x10,%r10 - 4287c4: 0f 8f 26 01 00 00 jg 4288f0 <__GI___strcasecmp_l+0x1d20> - 4287ca: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4287cf: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4287d4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4287d8: 66 0f 73 db 0d psrldq $0xd,%xmm3 - 4287dd: 66 0f 73 fa 03 pslldq $0x3,%xmm2 - 4287e2: 66 0f eb d3 por %xmm3,%xmm2 - 4287e6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4287eb: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4287f0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4287f5: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4287fa: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4287ff: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428804: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428809: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42880e: 66 45 0f db c1 pand %xmm9,%xmm8 - 428813: 66 45 0f db d3 pand %xmm11,%xmm10 - 428818: 66 44 0f db c7 pand %xmm7,%xmm8 - 42881d: 66 44 0f db d7 pand %xmm7,%xmm10 - 428822: 66 41 0f eb c8 por %xmm8,%xmm1 - 428827: 66 41 0f eb d2 por %xmm10,%xmm2 - 42882c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428830: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 428834: 66 0f f8 c8 psubb %xmm0,%xmm1 - 428838: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42883c: 81 ea ff ff 00 00 sub $0xffff,%edx - 428842: 0f 85 58 05 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 428848: 48 83 c1 10 add $0x10,%rcx - 42884c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 428850: 49 83 c2 10 add $0x10,%r10 - 428854: 0f 8f 96 00 00 00 jg 4288f0 <__GI___strcasecmp_l+0x1d20> - 42885a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42885f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 428864: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 428868: 66 0f 73 db 0d psrldq $0xd,%xmm3 - 42886d: 66 0f 73 fa 03 pslldq $0x3,%xmm2 - 428872: 66 0f eb d3 por %xmm3,%xmm2 - 428876: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42887b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 428880: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 428885: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 42888a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42888f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428894: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428899: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42889e: 66 45 0f db c1 pand %xmm9,%xmm8 - 4288a3: 66 45 0f db d3 pand %xmm11,%xmm10 - 4288a8: 66 44 0f db c7 pand %xmm7,%xmm8 - 4288ad: 66 44 0f db d7 pand %xmm7,%xmm10 - 4288b2: 66 41 0f eb c8 por %xmm8,%xmm1 - 4288b7: 66 41 0f eb d2 por %xmm10,%xmm2 - 4288bc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4288c0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4288c4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4288c8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4288cc: 81 ea ff ff 00 00 sub $0xffff,%edx - 4288d2: 0f 85 c8 04 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 4288d8: 48 83 c1 10 add $0x10,%rcx - 4288dc: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4288e0: e9 db fe ff ff jmpq 4287c0 <__GI___strcasecmp_l+0x1bf0> - 4288e5: 90 nop - 4288e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4288ed: 00 00 00 - 4288f0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 4288f4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 4288f8: f7 c2 00 e0 00 00 test $0xe000,%edx - 4288fe: 75 10 jne 428910 <__GI___strcasecmp_l+0x1d40> - 428900: 66 0f ef c0 pxor %xmm0,%xmm0 - 428904: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42890b: e9 ba fe ff ff jmpq 4287ca <__GI___strcasecmp_l+0x1bfa> - 428910: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 428915: 66 0f 73 d8 0d psrldq $0xd,%xmm0 - 42891a: 66 0f 73 db 0d psrldq $0xd,%xmm3 - 42891f: e9 1c 04 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> - 428924: 66 90 xchg %ax,%ax - 428926: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42892d: 00 00 00 - 428930: 66 0f ef c0 pxor %xmm0,%xmm0 - 428934: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 428938: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42893c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428940: 66 0f 73 fa 02 pslldq $0x2,%xmm2 - 428945: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 42894a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 42894f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 428954: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 428959: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 42895e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428963: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428968: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 42896d: 66 45 0f db c1 pand %xmm9,%xmm8 - 428972: 66 45 0f db d3 pand %xmm11,%xmm10 - 428977: 66 44 0f db c7 pand %xmm7,%xmm8 - 42897c: 66 44 0f db d7 pand %xmm7,%xmm10 - 428981: 66 41 0f eb c8 por %xmm8,%xmm1 - 428986: 66 41 0f eb d2 por %xmm10,%xmm2 - 42898b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42898f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 428993: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 428998: d3 ea shr %cl,%edx - 42899a: 41 d3 e9 shr %cl,%r9d - 42899d: 44 29 ca sub %r9d,%edx - 4289a0: 0f 85 ff 03 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> - 4289a6: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 4289aa: 66 0f ef c0 pxor %xmm0,%xmm0 - 4289ae: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4289b5: 41 b9 0e 00 00 00 mov $0xe,%r9d - 4289bb: 4c 8d 57 0e lea 0xe(%rdi),%r10 - 4289bf: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 4289c6: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4289cd: 0f 1f 00 nopl (%rax) - 4289d0: 49 83 c2 10 add $0x10,%r10 - 4289d4: 0f 8f 26 01 00 00 jg 428b00 <__GI___strcasecmp_l+0x1f30> - 4289da: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4289df: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4289e4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 4289e8: 66 0f 73 db 0e psrldq $0xe,%xmm3 - 4289ed: 66 0f 73 fa 02 pslldq $0x2,%xmm2 - 4289f2: 66 0f eb d3 por %xmm3,%xmm2 - 4289f6: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4289fb: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 428a00: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 428a05: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 428a0a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 428a0f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428a14: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428a19: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 428a1e: 66 45 0f db c1 pand %xmm9,%xmm8 - 428a23: 66 45 0f db d3 pand %xmm11,%xmm10 - 428a28: 66 44 0f db c7 pand %xmm7,%xmm8 - 428a2d: 66 44 0f db d7 pand %xmm7,%xmm10 - 428a32: 66 41 0f eb c8 por %xmm8,%xmm1 - 428a37: 66 41 0f eb d2 por %xmm10,%xmm2 - 428a3c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428a40: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 428a44: 66 0f f8 c8 psubb %xmm0,%xmm1 - 428a48: 66 0f d7 d1 pmovmskb %xmm1,%edx - 428a4c: 81 ea ff ff 00 00 sub $0xffff,%edx - 428a52: 0f 85 48 03 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 428a58: 48 83 c1 10 add $0x10,%rcx - 428a5c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 428a60: 49 83 c2 10 add $0x10,%r10 - 428a64: 0f 8f 96 00 00 00 jg 428b00 <__GI___strcasecmp_l+0x1f30> - 428a6a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 428a6f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 428a74: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 428a78: 66 0f 73 db 0e psrldq $0xe,%xmm3 - 428a7d: 66 0f 73 fa 02 pslldq $0x2,%xmm2 - 428a82: 66 0f eb d3 por %xmm3,%xmm2 - 428a86: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 428a8b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 428a90: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 428a95: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 428a9a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 428a9f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428aa4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428aa9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 428aae: 66 45 0f db c1 pand %xmm9,%xmm8 - 428ab3: 66 45 0f db d3 pand %xmm11,%xmm10 - 428ab8: 66 44 0f db c7 pand %xmm7,%xmm8 - 428abd: 66 44 0f db d7 pand %xmm7,%xmm10 - 428ac2: 66 41 0f eb c8 por %xmm8,%xmm1 - 428ac7: 66 41 0f eb d2 por %xmm10,%xmm2 - 428acc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428ad0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 428ad4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 428ad8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 428adc: 81 ea ff ff 00 00 sub $0xffff,%edx - 428ae2: 0f 85 b8 02 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 428ae8: 48 83 c1 10 add $0x10,%rcx - 428aec: 66 0f 6f dc movdqa %xmm4,%xmm3 - 428af0: e9 db fe ff ff jmpq 4289d0 <__GI___strcasecmp_l+0x1e00> - 428af5: 90 nop - 428af6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 428afd: 00 00 00 - 428b00: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 428b04: 66 0f d7 d0 pmovmskb %xmm0,%edx - 428b08: f7 c2 00 c0 00 00 test $0xc000,%edx - 428b0e: 75 10 jne 428b20 <__GI___strcasecmp_l+0x1f50> - 428b10: 66 0f ef c0 pxor %xmm0,%xmm0 - 428b14: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 428b1b: e9 ba fe ff ff jmpq 4289da <__GI___strcasecmp_l+0x1e0a> - 428b20: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 428b25: 66 0f 73 d8 0e psrldq $0xe,%xmm0 - 428b2a: 66 0f 73 db 0e psrldq $0xe,%xmm3 - 428b2f: e9 0c 02 00 00 jmpq 428d40 <__GI___strcasecmp_l+0x2170> - 428b34: 66 90 xchg %ax,%ax - 428b36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 428b3d: 00 00 00 - 428b40: 66 0f ef c0 pxor %xmm0,%xmm0 - 428b44: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 428b48: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 428b4c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428b50: 66 0f 73 fa 01 pslldq $0x1,%xmm2 - 428b55: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 428b5a: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 428b5f: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 428b64: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 428b69: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 428b6e: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428b73: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428b78: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 428b7d: 66 45 0f db c1 pand %xmm9,%xmm8 - 428b82: 66 45 0f db d3 pand %xmm11,%xmm10 - 428b87: 66 44 0f db c7 pand %xmm7,%xmm8 - 428b8c: 66 44 0f db d7 pand %xmm7,%xmm10 - 428b91: 66 41 0f eb c8 por %xmm8,%xmm1 - 428b96: 66 41 0f eb d2 por %xmm10,%xmm2 - 428b9b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 428b9f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 428ba3: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 428ba8: d3 ea shr %cl,%edx - 428baa: 41 d3 e9 shr %cl,%r9d - 428bad: 44 29 ca sub %r9d,%edx - 428bb0: 0f 85 ef 01 00 00 jne 428da5 <__GI___strcasecmp_l+0x21d5> - 428bb6: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 428bba: 66 0f ef c0 pxor %xmm0,%xmm0 - 428bbe: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 428bc5: 41 b9 0f 00 00 00 mov $0xf,%r9d - 428bcb: 4c 8d 57 0f lea 0xf(%rdi),%r10 - 428bcf: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 428bd6: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 428bdd: 0f 1f 00 nopl (%rax) - 428be0: 49 83 c2 10 add $0x10,%r10 - 428be4: 0f 8f 26 01 00 00 jg 428d10 <__GI___strcasecmp_l+0x2140> - 428bea: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 428bef: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 428bf4: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 428bf8: 66 0f 73 db 0f psrldq $0xf,%xmm3 - 428bfd: 66 0f 73 fa 01 pslldq $0x1,%xmm2 - 428c02: 66 0f eb d3 por %xmm3,%xmm2 - 428c06: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 428c0b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 428c10: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 428c15: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 428c1a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 428c1f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428c24: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428c29: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 428c2e: 66 45 0f db c1 pand %xmm9,%xmm8 - 428c33: 66 45 0f db d3 pand %xmm11,%xmm10 - 428c38: 66 44 0f db c7 pand %xmm7,%xmm8 - 428c3d: 66 44 0f db d7 pand %xmm7,%xmm10 - 428c42: 66 41 0f eb c8 por %xmm8,%xmm1 - 428c47: 66 41 0f eb d2 por %xmm10,%xmm2 - 428c4c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428c50: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 428c54: 66 0f f8 c8 psubb %xmm0,%xmm1 - 428c58: 66 0f d7 d1 pmovmskb %xmm1,%edx - 428c5c: 81 ea ff ff 00 00 sub $0xffff,%edx - 428c62: 0f 85 38 01 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 428c68: 48 83 c1 10 add $0x10,%rcx - 428c6c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 428c70: 49 83 c2 10 add $0x10,%r10 - 428c74: 0f 8f 96 00 00 00 jg 428d10 <__GI___strcasecmp_l+0x2140> - 428c7a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 428c7f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 428c84: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 428c88: 66 0f 73 db 0f psrldq $0xf,%xmm3 - 428c8d: 66 0f 73 fa 01 pslldq $0x1,%xmm2 - 428c92: 66 0f eb d3 por %xmm3,%xmm2 - 428c96: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 428c9b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 428ca0: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 428ca5: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 428caa: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 428caf: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428cb4: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428cb9: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 428cbe: 66 45 0f db c1 pand %xmm9,%xmm8 - 428cc3: 66 45 0f db d3 pand %xmm11,%xmm10 - 428cc8: 66 44 0f db c7 pand %xmm7,%xmm8 - 428ccd: 66 44 0f db d7 pand %xmm7,%xmm10 - 428cd2: 66 41 0f eb c8 por %xmm8,%xmm1 - 428cd7: 66 41 0f eb d2 por %xmm10,%xmm2 - 428cdc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428ce0: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 428ce4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 428ce8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 428cec: 81 ea ff ff 00 00 sub $0xffff,%edx - 428cf2: 0f 85 a8 00 00 00 jne 428da0 <__GI___strcasecmp_l+0x21d0> - 428cf8: 48 83 c1 10 add $0x10,%rcx - 428cfc: 66 0f 6f dc movdqa %xmm4,%xmm3 - 428d00: e9 db fe ff ff jmpq 428be0 <__GI___strcasecmp_l+0x2010> - 428d05: 90 nop - 428d06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 428d0d: 00 00 00 - 428d10: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 428d14: 66 0f d7 d0 pmovmskb %xmm0,%edx - 428d18: f7 c2 00 80 00 00 test $0x8000,%edx - 428d1e: 75 10 jne 428d30 <__GI___strcasecmp_l+0x2160> - 428d20: 66 0f ef c0 pxor %xmm0,%xmm0 - 428d24: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 428d2b: e9 ba fe ff ff jmpq 428bea <__GI___strcasecmp_l+0x201a> - 428d30: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 428d35: 66 0f 73 db 0f psrldq $0xf,%xmm3 - 428d3a: 66 0f 73 d8 0f psrldq $0xf,%xmm0 - 428d3f: 90 nop - 428d40: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 428d45: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 428d4a: 66 44 0f 6f d3 movdqa %xmm3,%xmm10 - 428d4f: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 428d54: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 428d59: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 428d5e: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 428d63: 66 44 0f 64 db pcmpgtb %xmm3,%xmm11 - 428d68: 66 45 0f db c1 pand %xmm9,%xmm8 - 428d6d: 66 45 0f db d3 pand %xmm11,%xmm10 - 428d72: 66 44 0f db c7 pand %xmm7,%xmm8 - 428d77: 66 44 0f db d7 pand %xmm7,%xmm10 - 428d7c: 66 41 0f eb c8 por %xmm8,%xmm1 - 428d81: 66 41 0f eb da por %xmm10,%xmm3 - 428d86: 66 0f 74 cb pcmpeqb %xmm3,%xmm1 - 428d8a: 66 0f f8 c8 psubb %xmm0,%xmm1 - 428d8e: 66 0f d7 d1 pmovmskb %xmm1,%edx - 428d92: f7 d2 not %edx - 428d94: 66 90 xchg %ax,%ax - 428d96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 428d9d: 00 00 00 - 428da0: 49 8d 44 09 f0 lea -0x10(%r9,%rcx,1),%rax - 428da5: 48 8d 3c 07 lea (%rdi,%rax,1),%rdi - 428da9: 48 8d 34 0e lea (%rsi,%rcx,1),%rsi - 428dad: 45 85 c0 test %r8d,%r8d - 428db0: 74 0e je 428dc0 <__GI___strcasecmp_l+0x21f0> - 428db2: 48 87 f7 xchg %rsi,%rdi - 428db5: 90 nop - 428db6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 428dbd: 00 00 00 - 428dc0: 48 0f bc d2 bsf %rdx,%rdx - 428dc4: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx - 428dc8: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax - 428dcc: 48 8d 15 6d e7 07 00 lea 0x7e76d(%rip),%rdx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> - 428dd3: 8b 0c 8a mov (%rdx,%rcx,4),%ecx - 428dd6: 8b 04 82 mov (%rdx,%rax,4),%eax - 428dd9: 29 c8 sub %ecx,%eax - 428ddb: c3 retq - 428ddc: 31 c0 xor %eax,%eax - 428dde: c3 retq - 428ddf: 90 nop - 428de0: 0f b6 0e movzbl (%rsi),%ecx - 428de3: 0f b6 07 movzbl (%rdi),%eax - 428de6: 48 8d 15 53 e7 07 00 lea 0x7e753(%rip),%rdx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> - 428ded: 8b 0c 8a mov (%rdx,%rcx,4),%ecx - 428df0: 8b 04 82 mov (%rdx,%rax,4),%eax - 428df3: 29 c8 sub %ecx,%eax - 428df5: c3 retq - 428df6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 428dfd: 00 00 00 - -0000000000428e00 <__strcasecmp_sse42>: - 428e00: 48 c7 c0 b8 ff ff ff mov $0xffffffffffffffb8,%rax - 428e07: 64 48 8b 10 mov %fs:(%rax),%rdx - 428e0b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -0000000000428e10 <__strcasecmp_l_sse42>: - 428e10: 48 8b 02 mov (%rdx),%rax - 428e13: f7 80 78 02 00 00 01 testl $0x1,0x278(%rax) - 428e1a: 00 00 00 - 428e1d: 0f 85 dd 54 01 00 jne 43e300 <__strcasecmp_l_nonascii> - 428e23: 89 f1 mov %esi,%ecx - 428e25: 89 f8 mov %edi,%eax - 428e27: 48 83 e1 3f and $0x3f,%rcx - 428e2b: 48 83 e0 3f and $0x3f,%rax - 428e2f: 66 0f 6f 25 79 a2 07 movdqa 0x7a279(%rip),%xmm4 # 4a30b0 <__func__.10972+0xf0> - 428e36: 00 - 428e37: 66 0f 6f 2d 81 a2 07 movdqa 0x7a281(%rip),%xmm5 # 4a30c0 <__func__.10972+0x100> - 428e3e: 00 - 428e3f: 66 0f 6f 35 89 a2 07 movdqa 0x7a289(%rip),%xmm6 # 4a30d0 - 428e46: 00 - 428e47: 83 f9 30 cmp $0x30,%ecx - 428e4a: 0f 87 80 00 00 00 ja 428ed0 <__strcasecmp_l_sse42+0xc0> - 428e50: 83 f8 30 cmp $0x30,%eax - 428e53: 77 7b ja 428ed0 <__strcasecmp_l_sse42+0xc0> - 428e55: f3 0f 6f 0f movdqu (%rdi),%xmm1 - 428e59: f3 0f 6f 16 movdqu (%rsi),%xmm2 - 428e5d: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 428e61: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 428e66: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 428e6b: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 428e70: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 428e74: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 428e79: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 428e7e: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 428e83: 66 41 0f db f8 pand %xmm8,%xmm7 - 428e88: 66 45 0f db ca pand %xmm10,%xmm9 - 428e8d: 66 0f db fe pand %xmm6,%xmm7 - 428e91: 66 44 0f db ce pand %xmm6,%xmm9 - 428e96: 66 0f eb cf por %xmm7,%xmm1 - 428e9a: 66 41 0f eb d1 por %xmm9,%xmm2 - 428e9f: 66 0f ef c0 pxor %xmm0,%xmm0 - 428ea3: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428ea7: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 428eab: 66 0f f8 c8 psubb %xmm0,%xmm1 - 428eaf: 66 0f d7 d1 pmovmskb %xmm1,%edx - 428eb3: 81 ea ff ff 00 00 sub $0xffff,%edx - 428eb9: 0f 85 b1 1a 00 00 jne 42a970 <__strcasecmp_l_sse42+0x1b60> - 428ebf: 48 83 c6 10 add $0x10,%rsi - 428ec3: 48 83 c7 10 add $0x10,%rdi - 428ec7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 428ece: 00 00 - 428ed0: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 428ed4: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 428ed8: ba ff ff 00 00 mov $0xffff,%edx - 428edd: 45 31 c0 xor %r8d,%r8d - 428ee0: 83 e1 0f and $0xf,%ecx - 428ee3: 83 e0 0f and $0xf,%eax - 428ee6: 66 0f ef c0 pxor %xmm0,%xmm0 - 428eea: 39 c1 cmp %eax,%ecx - 428eec: 74 32 je 428f20 <__strcasecmp_l_sse42+0x110> - 428eee: 77 07 ja 428ef7 <__strcasecmp_l_sse42+0xe7> - 428ef0: 41 89 d0 mov %edx,%r8d - 428ef3: 91 xchg %eax,%ecx - 428ef4: 48 87 f7 xchg %rsi,%rdi - 428ef7: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 428efb: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 428eff: 4c 8d 48 0f lea 0xf(%rax),%r9 - 428f03: 49 29 c9 sub %rcx,%r9 - 428f06: 4c 8d 15 e3 a1 07 00 lea 0x7a1e3(%rip),%r10 # 4a30f0 - 428f0d: 4f 63 0c 8a movslq (%r10,%r9,4),%r9 - 428f11: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428f15: 4f 8d 14 0a lea (%r10,%r9,1),%r10 - 428f19: 41 ff e2 jmpq *%r10 - 428f1c: 0f 1f 40 00 nopl 0x0(%rax) - 428f20: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 428f24: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 428f28: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 428f2c: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 428f30: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 428f35: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 428f3a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 428f3f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 428f43: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 428f48: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 428f4d: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 428f52: 66 41 0f db f8 pand %xmm8,%xmm7 - 428f57: 66 45 0f db ca pand %xmm10,%xmm9 - 428f5c: 66 0f db fe pand %xmm6,%xmm7 - 428f60: 66 44 0f db ce pand %xmm6,%xmm9 - 428f65: 66 0f eb cf por %xmm7,%xmm1 - 428f69: 66 41 0f eb d1 por %xmm9,%xmm2 - 428f6e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 428f72: 66 0f f8 c8 psubb %xmm0,%xmm1 - 428f76: 66 44 0f d7 c9 pmovmskb %xmm1,%r9d - 428f7b: d3 ea shr %cl,%edx - 428f7d: 41 d3 e9 shr %cl,%r9d - 428f80: 44 29 ca sub %r9d,%edx - 428f83: 0f 85 cf 19 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> - 428f89: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 428f90: 49 c7 c1 10 00 00 00 mov $0x10,%r9 - 428f97: 48 89 ca mov %rcx,%rdx - 428f9a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 428fa0: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 428fa5: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 428faa: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 428fae: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 428fb3: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 428fb8: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 428fbd: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 428fc1: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 428fc6: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 428fcb: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 428fd0: 66 41 0f db f8 pand %xmm8,%xmm7 - 428fd5: 66 45 0f db ca pand %xmm10,%xmm9 - 428fda: 66 0f db fe pand %xmm6,%xmm7 - 428fde: 66 44 0f db ce pand %xmm6,%xmm9 - 428fe3: 66 0f eb c7 por %xmm7,%xmm0 - 428fe7: 66 41 0f eb c9 por %xmm9,%xmm1 - 428fec: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 428ff2: 48 8d 52 10 lea 0x10(%rdx),%rdx - 428ff6: 76 68 jbe 429060 <__strcasecmp_l_sse42+0x250> - 428ff8: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 428ffd: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 429002: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 429006: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42900b: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 429010: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429015: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 429019: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 42901e: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429023: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 429028: 66 41 0f db f8 pand %xmm8,%xmm7 - 42902d: 66 45 0f db ca pand %xmm10,%xmm9 - 429032: 66 0f db fe pand %xmm6,%xmm7 - 429036: 66 44 0f db ce pand %xmm6,%xmm9 - 42903b: 66 0f eb c7 por %xmm7,%xmm0 - 42903f: 66 41 0f eb c9 por %xmm9,%xmm1 - 429044: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 42904a: 48 8d 52 10 lea 0x10(%rdx),%rdx - 42904e: 76 10 jbe 429060 <__strcasecmp_l_sse42+0x250> - 429050: e9 4b ff ff ff jmpq 428fa0 <__strcasecmp_l_sse42+0x190> - 429055: 90 nop - 429056: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42905d: 00 00 00 - 429060: 0f 83 26 19 00 00 jae 42a98c <__strcasecmp_l_sse42+0x1b7c> - 429066: 48 8d 4c 0a f0 lea -0x10(%rdx,%rcx,1),%rcx - 42906b: 0f b6 04 0f movzbl (%rdi,%rcx,1),%eax - 42906f: 0f b6 14 0e movzbl (%rsi,%rcx,1),%edx - 429073: 48 8d 0d c6 e4 07 00 lea 0x7e4c6(%rip),%rcx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> - 42907a: 8b 04 81 mov (%rcx,%rax,4),%eax - 42907d: 8b 14 91 mov (%rcx,%rdx,4),%edx - 429080: 29 d0 sub %edx,%eax - 429082: c3 retq - 429083: 0f 1f 00 nopl (%rax) - 429086: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42908d: 00 00 00 - 429090: 66 0f 73 fa 0f pslldq $0xf,%xmm2 - 429095: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 429099: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42909e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 4290a3: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 4290a8: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 4290ac: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 4290b1: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 4290b6: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 4290bb: 66 41 0f db f8 pand %xmm8,%xmm7 - 4290c0: 66 45 0f db ca pand %xmm10,%xmm9 - 4290c5: 66 0f db fe pand %xmm6,%xmm7 - 4290c9: 66 44 0f db ce pand %xmm6,%xmm9 - 4290ce: 66 0f eb cf por %xmm7,%xmm1 - 4290d2: 66 41 0f eb d1 por %xmm9,%xmm2 - 4290d7: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 4290db: 66 0f f8 d0 psubb %xmm0,%xmm2 - 4290df: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 4290e4: d3 ea shr %cl,%edx - 4290e6: 41 d3 e9 shr %cl,%r9d - 4290e9: 44 29 ca sub %r9d,%edx - 4290ec: 0f 85 66 18 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> - 4290f2: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 4290f6: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4290fd: 41 b9 01 00 00 00 mov $0x1,%r9d - 429103: 4c 8d 57 01 lea 0x1(%rdi),%r10 - 429107: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42910e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 429115: 48 89 ca mov %rcx,%rdx - 429118: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42911f: 00 - 429120: 49 83 c2 10 add $0x10,%r10 - 429124: 0f 8f d6 00 00 00 jg 429200 <__strcasecmp_l_sse42+0x3f0> - 42912a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42912f: 66 0f 3a 0f 44 17 f0 palignr $0x1,-0x10(%rdi,%rdx,1),%xmm0 - 429136: 01 - 429137: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 42913c: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 429140: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 429145: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 42914a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42914f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 429153: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 429158: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42915d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 429162: 66 41 0f db f8 pand %xmm8,%xmm7 - 429167: 66 45 0f db ca pand %xmm10,%xmm9 - 42916c: 66 0f db fe pand %xmm6,%xmm7 - 429170: 66 44 0f db ce pand %xmm6,%xmm9 - 429175: 66 0f eb c7 por %xmm7,%xmm0 - 429179: 66 41 0f eb c9 por %xmm9,%xmm1 - 42917e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 429184: 0f 86 a6 17 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42918a: 48 83 c2 10 add $0x10,%rdx - 42918e: 49 83 c2 10 add $0x10,%r10 - 429192: 7f 6c jg 429200 <__strcasecmp_l_sse42+0x3f0> - 429194: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 429199: 66 0f 3a 0f 44 17 f0 palignr $0x1,-0x10(%rdi,%rdx,1),%xmm0 - 4291a0: 01 - 4291a1: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 4291a6: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 4291aa: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 4291af: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 4291b4: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 4291b9: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 4291bd: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 4291c2: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 4291c7: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 4291cc: 66 41 0f db f8 pand %xmm8,%xmm7 - 4291d1: 66 45 0f db ca pand %xmm10,%xmm9 - 4291d6: 66 0f db fe pand %xmm6,%xmm7 - 4291da: 66 44 0f db ce pand %xmm6,%xmm9 - 4291df: 66 0f eb c7 por %xmm7,%xmm0 - 4291e3: 66 41 0f eb c9 por %xmm9,%xmm1 - 4291e8: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 4291ee: 0f 86 3c 17 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 4291f4: 48 83 c2 10 add $0x10,%rdx - 4291f8: e9 23 ff ff ff jmpq 429120 <__strcasecmp_l_sse42+0x310> - 4291fd: 0f 1f 00 nopl (%rax) - 429200: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 429207: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 42920d: 66 0f 73 d8 01 psrldq $0x1,%xmm0 - 429212: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 429218: 83 f9 0e cmp $0xe,%ecx - 42921b: 0f 87 09 ff ff ff ja 42912a <__strcasecmp_l_sse42+0x31a> - 429221: e9 bb 16 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> - 429226: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42922d: 00 00 00 - 429230: 66 0f 73 fa 0e pslldq $0xe,%xmm2 - 429235: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 429239: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42923e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 429243: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429248: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42924c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 429251: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429256: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 42925b: 66 41 0f db f8 pand %xmm8,%xmm7 - 429260: 66 45 0f db ca pand %xmm10,%xmm9 - 429265: 66 0f db fe pand %xmm6,%xmm7 - 429269: 66 44 0f db ce pand %xmm6,%xmm9 - 42926e: 66 0f eb cf por %xmm7,%xmm1 - 429272: 66 41 0f eb d1 por %xmm9,%xmm2 - 429277: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42927b: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42927f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 429284: d3 ea shr %cl,%edx - 429286: 41 d3 e9 shr %cl,%r9d - 429289: 44 29 ca sub %r9d,%edx - 42928c: 0f 85 c6 16 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> - 429292: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 429296: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42929d: 41 b9 02 00 00 00 mov $0x2,%r9d - 4292a3: 4c 8d 57 02 lea 0x2(%rdi),%r10 - 4292a7: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 4292ae: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4292b5: 48 89 ca mov %rcx,%rdx - 4292b8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4292bf: 00 - 4292c0: 49 83 c2 10 add $0x10,%r10 - 4292c4: 0f 8f d6 00 00 00 jg 4293a0 <__strcasecmp_l_sse42+0x590> - 4292ca: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 4292cf: 66 0f 3a 0f 44 17 f0 palignr $0x2,-0x10(%rdi,%rdx,1),%xmm0 - 4292d6: 02 - 4292d7: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 4292dc: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 4292e0: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 4292e5: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 4292ea: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 4292ef: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 4292f3: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 4292f8: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 4292fd: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 429302: 66 41 0f db f8 pand %xmm8,%xmm7 - 429307: 66 45 0f db ca pand %xmm10,%xmm9 - 42930c: 66 0f db fe pand %xmm6,%xmm7 - 429310: 66 44 0f db ce pand %xmm6,%xmm9 - 429315: 66 0f eb c7 por %xmm7,%xmm0 - 429319: 66 41 0f eb c9 por %xmm9,%xmm1 - 42931e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 429324: 0f 86 06 16 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42932a: 48 83 c2 10 add $0x10,%rdx - 42932e: 49 83 c2 10 add $0x10,%r10 - 429332: 7f 6c jg 4293a0 <__strcasecmp_l_sse42+0x590> - 429334: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 429339: 66 0f 3a 0f 44 17 f0 palignr $0x2,-0x10(%rdi,%rdx,1),%xmm0 - 429340: 02 - 429341: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 429346: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 42934a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42934f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 429354: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429359: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42935d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 429362: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429367: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 42936c: 66 41 0f db f8 pand %xmm8,%xmm7 - 429371: 66 45 0f db ca pand %xmm10,%xmm9 - 429376: 66 0f db fe pand %xmm6,%xmm7 - 42937a: 66 44 0f db ce pand %xmm6,%xmm9 - 42937f: 66 0f eb c7 por %xmm7,%xmm0 - 429383: 66 41 0f eb c9 por %xmm9,%xmm1 - 429388: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 42938e: 0f 86 9c 15 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 429394: 48 83 c2 10 add $0x10,%rdx - 429398: e9 23 ff ff ff jmpq 4292c0 <__strcasecmp_l_sse42+0x4b0> - 42939d: 0f 1f 00 nopl (%rax) - 4293a0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4293a7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 4293ad: 66 0f 73 d8 02 psrldq $0x2,%xmm0 - 4293b2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 4293b8: 83 f9 0d cmp $0xd,%ecx - 4293bb: 0f 87 09 ff ff ff ja 4292ca <__strcasecmp_l_sse42+0x4ba> - 4293c1: e9 1b 15 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> - 4293c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4293cd: 00 00 00 - 4293d0: 66 0f 73 fa 0d pslldq $0xd,%xmm2 - 4293d5: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 4293d9: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 4293de: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 4293e3: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 4293e8: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 4293ec: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 4293f1: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 4293f6: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 4293fb: 66 41 0f db f8 pand %xmm8,%xmm7 - 429400: 66 45 0f db ca pand %xmm10,%xmm9 - 429405: 66 0f db fe pand %xmm6,%xmm7 - 429409: 66 44 0f db ce pand %xmm6,%xmm9 - 42940e: 66 0f eb cf por %xmm7,%xmm1 - 429412: 66 41 0f eb d1 por %xmm9,%xmm2 - 429417: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42941b: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42941f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 429424: d3 ea shr %cl,%edx - 429426: 41 d3 e9 shr %cl,%r9d - 429429: 44 29 ca sub %r9d,%edx - 42942c: 0f 85 26 15 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> - 429432: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 429436: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42943d: 41 b9 03 00 00 00 mov $0x3,%r9d - 429443: 4c 8d 57 03 lea 0x3(%rdi),%r10 - 429447: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42944e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 429455: 48 89 ca mov %rcx,%rdx - 429458: 49 83 c2 10 add $0x10,%r10 - 42945c: 0f 8f de 00 00 00 jg 429540 <__strcasecmp_l_sse42+0x730> - 429462: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 429467: 66 0f 3a 0f 44 17 f0 palignr $0x3,-0x10(%rdi,%rdx,1),%xmm0 - 42946e: 03 - 42946f: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 429474: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 429478: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42947d: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 429482: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429487: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42948b: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 429490: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429495: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 42949a: 66 41 0f db f8 pand %xmm8,%xmm7 - 42949f: 66 45 0f db ca pand %xmm10,%xmm9 - 4294a4: 66 0f db fe pand %xmm6,%xmm7 - 4294a8: 66 44 0f db ce pand %xmm6,%xmm9 - 4294ad: 66 0f eb c7 por %xmm7,%xmm0 - 4294b1: 66 41 0f eb c9 por %xmm9,%xmm1 - 4294b6: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 4294bc: 0f 86 6e 14 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 4294c2: 48 83 c2 10 add $0x10,%rdx - 4294c6: 49 83 c2 10 add $0x10,%r10 - 4294ca: 7f 74 jg 429540 <__strcasecmp_l_sse42+0x730> - 4294cc: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 4294d1: 66 0f 3a 0f 44 17 f0 palignr $0x3,-0x10(%rdi,%rdx,1),%xmm0 - 4294d8: 03 - 4294d9: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 4294de: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 4294e2: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 4294e7: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 4294ec: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 4294f1: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 4294f5: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 4294fa: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 4294ff: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 429504: 66 41 0f db f8 pand %xmm8,%xmm7 - 429509: 66 45 0f db ca pand %xmm10,%xmm9 - 42950e: 66 0f db fe pand %xmm6,%xmm7 - 429512: 66 44 0f db ce pand %xmm6,%xmm9 - 429517: 66 0f eb c7 por %xmm7,%xmm0 - 42951b: 66 41 0f eb c9 por %xmm9,%xmm1 - 429520: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 429526: 0f 86 04 14 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42952c: 48 83 c2 10 add $0x10,%rdx - 429530: e9 23 ff ff ff jmpq 429458 <__strcasecmp_l_sse42+0x648> - 429535: 90 nop - 429536: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42953d: 00 00 00 - 429540: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 429547: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 42954d: 66 0f 73 d8 03 psrldq $0x3,%xmm0 - 429552: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 429558: 83 f9 0c cmp $0xc,%ecx - 42955b: 0f 87 01 ff ff ff ja 429462 <__strcasecmp_l_sse42+0x652> - 429561: e9 7b 13 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> - 429566: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42956d: 00 00 00 - 429570: 66 0f 73 fa 0c pslldq $0xc,%xmm2 - 429575: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 429579: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42957e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 429583: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429588: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42958c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 429591: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429596: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 42959b: 66 41 0f db f8 pand %xmm8,%xmm7 - 4295a0: 66 45 0f db ca pand %xmm10,%xmm9 - 4295a5: 66 0f db fe pand %xmm6,%xmm7 - 4295a9: 66 44 0f db ce pand %xmm6,%xmm9 - 4295ae: 66 0f eb cf por %xmm7,%xmm1 - 4295b2: 66 41 0f eb d1 por %xmm9,%xmm2 - 4295b7: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 4295bb: 66 0f f8 d0 psubb %xmm0,%xmm2 - 4295bf: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 4295c4: d3 ea shr %cl,%edx - 4295c6: 41 d3 e9 shr %cl,%r9d - 4295c9: 44 29 ca sub %r9d,%edx - 4295cc: 0f 85 86 13 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> - 4295d2: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 4295d6: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 4295dd: 41 b9 04 00 00 00 mov $0x4,%r9d - 4295e3: 4c 8d 57 04 lea 0x4(%rdi),%r10 - 4295e7: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 4295ee: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4295f5: 48 89 ca mov %rcx,%rdx - 4295f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4295ff: 00 - 429600: 49 83 c2 10 add $0x10,%r10 - 429604: 0f 8f d6 00 00 00 jg 4296e0 <__strcasecmp_l_sse42+0x8d0> - 42960a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42960f: 66 0f 3a 0f 44 17 f0 palignr $0x4,-0x10(%rdi,%rdx,1),%xmm0 - 429616: 04 - 429617: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 42961c: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 429620: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 429625: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 42962a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42962f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 429633: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 429638: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42963d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 429642: 66 41 0f db f8 pand %xmm8,%xmm7 - 429647: 66 45 0f db ca pand %xmm10,%xmm9 - 42964c: 66 0f db fe pand %xmm6,%xmm7 - 429650: 66 44 0f db ce pand %xmm6,%xmm9 - 429655: 66 0f eb c7 por %xmm7,%xmm0 - 429659: 66 41 0f eb c9 por %xmm9,%xmm1 - 42965e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 429664: 0f 86 c6 12 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42966a: 48 83 c2 10 add $0x10,%rdx - 42966e: 49 83 c2 10 add $0x10,%r10 - 429672: 7f 6c jg 4296e0 <__strcasecmp_l_sse42+0x8d0> - 429674: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 429679: 66 0f 3a 0f 44 17 f0 palignr $0x4,-0x10(%rdi,%rdx,1),%xmm0 - 429680: 04 - 429681: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 429686: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 42968a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42968f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 429694: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429699: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42969d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 4296a2: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 4296a7: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 4296ac: 66 41 0f db f8 pand %xmm8,%xmm7 - 4296b1: 66 45 0f db ca pand %xmm10,%xmm9 - 4296b6: 66 0f db fe pand %xmm6,%xmm7 - 4296ba: 66 44 0f db ce pand %xmm6,%xmm9 - 4296bf: 66 0f eb c7 por %xmm7,%xmm0 - 4296c3: 66 41 0f eb c9 por %xmm9,%xmm1 - 4296c8: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 4296ce: 0f 86 5c 12 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 4296d4: 48 83 c2 10 add $0x10,%rdx - 4296d8: e9 23 ff ff ff jmpq 429600 <__strcasecmp_l_sse42+0x7f0> - 4296dd: 0f 1f 00 nopl (%rax) - 4296e0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 4296e7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 4296ed: 66 0f 73 d8 04 psrldq $0x4,%xmm0 - 4296f2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 4296f8: 83 f9 0b cmp $0xb,%ecx - 4296fb: 0f 87 09 ff ff ff ja 42960a <__strcasecmp_l_sse42+0x7fa> - 429701: e9 db 11 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> - 429706: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42970d: 00 00 00 - 429710: 66 0f 73 fa 0b pslldq $0xb,%xmm2 - 429715: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 429719: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42971e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 429723: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429728: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42972c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 429731: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429736: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 42973b: 66 41 0f db f8 pand %xmm8,%xmm7 - 429740: 66 45 0f db ca pand %xmm10,%xmm9 - 429745: 66 0f db fe pand %xmm6,%xmm7 - 429749: 66 44 0f db ce pand %xmm6,%xmm9 - 42974e: 66 0f eb cf por %xmm7,%xmm1 - 429752: 66 41 0f eb d1 por %xmm9,%xmm2 - 429757: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42975b: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42975f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 429764: d3 ea shr %cl,%edx - 429766: 41 d3 e9 shr %cl,%r9d - 429769: 44 29 ca sub %r9d,%edx - 42976c: 0f 85 e6 11 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> - 429772: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 429776: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42977d: 41 b9 05 00 00 00 mov $0x5,%r9d - 429783: 4c 8d 57 05 lea 0x5(%rdi),%r10 - 429787: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42978e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 429795: 48 89 ca mov %rcx,%rdx - 429798: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42979f: 00 - 4297a0: 49 83 c2 10 add $0x10,%r10 - 4297a4: 0f 8f d6 00 00 00 jg 429880 <__strcasecmp_l_sse42+0xa70> - 4297aa: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 4297af: 66 0f 3a 0f 44 17 f0 palignr $0x5,-0x10(%rdi,%rdx,1),%xmm0 - 4297b6: 05 - 4297b7: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 4297bc: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 4297c0: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 4297c5: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 4297ca: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 4297cf: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 4297d3: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 4297d8: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 4297dd: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 4297e2: 66 41 0f db f8 pand %xmm8,%xmm7 - 4297e7: 66 45 0f db ca pand %xmm10,%xmm9 - 4297ec: 66 0f db fe pand %xmm6,%xmm7 - 4297f0: 66 44 0f db ce pand %xmm6,%xmm9 - 4297f5: 66 0f eb c7 por %xmm7,%xmm0 - 4297f9: 66 41 0f eb c9 por %xmm9,%xmm1 - 4297fe: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 429804: 0f 86 26 11 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42980a: 48 83 c2 10 add $0x10,%rdx - 42980e: 49 83 c2 10 add $0x10,%r10 - 429812: 7f 6c jg 429880 <__strcasecmp_l_sse42+0xa70> - 429814: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 429819: 66 0f 3a 0f 44 17 f0 palignr $0x5,-0x10(%rdi,%rdx,1),%xmm0 - 429820: 05 - 429821: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 429826: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 42982a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42982f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 429834: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429839: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42983d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 429842: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429847: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 42984c: 66 41 0f db f8 pand %xmm8,%xmm7 - 429851: 66 45 0f db ca pand %xmm10,%xmm9 - 429856: 66 0f db fe pand %xmm6,%xmm7 - 42985a: 66 44 0f db ce pand %xmm6,%xmm9 - 42985f: 66 0f eb c7 por %xmm7,%xmm0 - 429863: 66 41 0f eb c9 por %xmm9,%xmm1 - 429868: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 42986e: 0f 86 bc 10 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 429874: 48 83 c2 10 add $0x10,%rdx - 429878: e9 23 ff ff ff jmpq 4297a0 <__strcasecmp_l_sse42+0x990> - 42987d: 0f 1f 00 nopl (%rax) - 429880: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 429887: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 42988d: 66 0f 73 d8 05 psrldq $0x5,%xmm0 - 429892: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 429898: 83 f9 0a cmp $0xa,%ecx - 42989b: 0f 87 09 ff ff ff ja 4297aa <__strcasecmp_l_sse42+0x99a> - 4298a1: e9 3b 10 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> - 4298a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4298ad: 00 00 00 - 4298b0: 66 0f 73 fa 0a pslldq $0xa,%xmm2 - 4298b5: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 4298b9: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 4298be: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 4298c3: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 4298c8: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 4298cc: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 4298d1: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 4298d6: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 4298db: 66 41 0f db f8 pand %xmm8,%xmm7 - 4298e0: 66 45 0f db ca pand %xmm10,%xmm9 - 4298e5: 66 0f db fe pand %xmm6,%xmm7 - 4298e9: 66 44 0f db ce pand %xmm6,%xmm9 - 4298ee: 66 0f eb cf por %xmm7,%xmm1 - 4298f2: 66 41 0f eb d1 por %xmm9,%xmm2 - 4298f7: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 4298fb: 66 0f f8 d0 psubb %xmm0,%xmm2 - 4298ff: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 429904: d3 ea shr %cl,%edx - 429906: 41 d3 e9 shr %cl,%r9d - 429909: 44 29 ca sub %r9d,%edx - 42990c: 0f 85 46 10 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> - 429912: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 429916: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42991d: 41 b9 06 00 00 00 mov $0x6,%r9d - 429923: 4c 8d 57 06 lea 0x6(%rdi),%r10 - 429927: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42992e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 429935: 48 89 ca mov %rcx,%rdx - 429938: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42993f: 00 - 429940: 49 83 c2 10 add $0x10,%r10 - 429944: 0f 8f d6 00 00 00 jg 429a20 <__strcasecmp_l_sse42+0xc10> - 42994a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42994f: 66 0f 3a 0f 44 17 f0 palignr $0x6,-0x10(%rdi,%rdx,1),%xmm0 - 429956: 06 - 429957: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 42995c: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 429960: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 429965: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 42996a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42996f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 429973: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 429978: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42997d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 429982: 66 41 0f db f8 pand %xmm8,%xmm7 - 429987: 66 45 0f db ca pand %xmm10,%xmm9 - 42998c: 66 0f db fe pand %xmm6,%xmm7 - 429990: 66 44 0f db ce pand %xmm6,%xmm9 - 429995: 66 0f eb c7 por %xmm7,%xmm0 - 429999: 66 41 0f eb c9 por %xmm9,%xmm1 - 42999e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 4299a4: 0f 86 86 0f 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 4299aa: 48 83 c2 10 add $0x10,%rdx - 4299ae: 49 83 c2 10 add $0x10,%r10 - 4299b2: 7f 6c jg 429a20 <__strcasecmp_l_sse42+0xc10> - 4299b4: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 4299b9: 66 0f 3a 0f 44 17 f0 palignr $0x6,-0x10(%rdi,%rdx,1),%xmm0 - 4299c0: 06 - 4299c1: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 4299c6: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 4299ca: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 4299cf: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 4299d4: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 4299d9: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 4299dd: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 4299e2: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 4299e7: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 4299ec: 66 41 0f db f8 pand %xmm8,%xmm7 - 4299f1: 66 45 0f db ca pand %xmm10,%xmm9 - 4299f6: 66 0f db fe pand %xmm6,%xmm7 - 4299fa: 66 44 0f db ce pand %xmm6,%xmm9 - 4299ff: 66 0f eb c7 por %xmm7,%xmm0 - 429a03: 66 41 0f eb c9 por %xmm9,%xmm1 - 429a08: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 429a0e: 0f 86 1c 0f 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 429a14: 48 83 c2 10 add $0x10,%rdx - 429a18: e9 23 ff ff ff jmpq 429940 <__strcasecmp_l_sse42+0xb30> - 429a1d: 0f 1f 00 nopl (%rax) - 429a20: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 429a27: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 429a2d: 66 0f 73 d8 06 psrldq $0x6,%xmm0 - 429a32: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 429a38: 83 f9 09 cmp $0x9,%ecx - 429a3b: 0f 87 09 ff ff ff ja 42994a <__strcasecmp_l_sse42+0xb3a> - 429a41: e9 9b 0e 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> - 429a46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 429a4d: 00 00 00 - 429a50: 66 0f 73 fa 09 pslldq $0x9,%xmm2 - 429a55: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 429a59: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 429a5e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 429a63: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429a68: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 429a6c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 429a71: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429a76: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 429a7b: 66 41 0f db f8 pand %xmm8,%xmm7 - 429a80: 66 45 0f db ca pand %xmm10,%xmm9 - 429a85: 66 0f db fe pand %xmm6,%xmm7 - 429a89: 66 44 0f db ce pand %xmm6,%xmm9 - 429a8e: 66 0f eb cf por %xmm7,%xmm1 - 429a92: 66 41 0f eb d1 por %xmm9,%xmm2 - 429a97: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 429a9b: 66 0f f8 d0 psubb %xmm0,%xmm2 - 429a9f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 429aa4: d3 ea shr %cl,%edx - 429aa6: 41 d3 e9 shr %cl,%r9d - 429aa9: 44 29 ca sub %r9d,%edx - 429aac: 0f 85 a6 0e 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> - 429ab2: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 429ab6: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 429abd: 41 b9 07 00 00 00 mov $0x7,%r9d - 429ac3: 4c 8d 57 07 lea 0x7(%rdi),%r10 - 429ac7: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 429ace: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 429ad5: 48 89 ca mov %rcx,%rdx - 429ad8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 429adf: 00 - 429ae0: 49 83 c2 10 add $0x10,%r10 - 429ae4: 0f 8f d6 00 00 00 jg 429bc0 <__strcasecmp_l_sse42+0xdb0> - 429aea: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 429aef: 66 0f 3a 0f 44 17 f0 palignr $0x7,-0x10(%rdi,%rdx,1),%xmm0 - 429af6: 07 - 429af7: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 429afc: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 429b00: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 429b05: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 429b0a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429b0f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 429b13: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 429b18: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429b1d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 429b22: 66 41 0f db f8 pand %xmm8,%xmm7 - 429b27: 66 45 0f db ca pand %xmm10,%xmm9 - 429b2c: 66 0f db fe pand %xmm6,%xmm7 - 429b30: 66 44 0f db ce pand %xmm6,%xmm9 - 429b35: 66 0f eb c7 por %xmm7,%xmm0 - 429b39: 66 41 0f eb c9 por %xmm9,%xmm1 - 429b3e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 429b44: 0f 86 e6 0d 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 429b4a: 48 83 c2 10 add $0x10,%rdx - 429b4e: 49 83 c2 10 add $0x10,%r10 - 429b52: 7f 6c jg 429bc0 <__strcasecmp_l_sse42+0xdb0> - 429b54: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 429b59: 66 0f 3a 0f 44 17 f0 palignr $0x7,-0x10(%rdi,%rdx,1),%xmm0 - 429b60: 07 - 429b61: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 429b66: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 429b6a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 429b6f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 429b74: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429b79: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 429b7d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 429b82: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429b87: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 429b8c: 66 41 0f db f8 pand %xmm8,%xmm7 - 429b91: 66 45 0f db ca pand %xmm10,%xmm9 - 429b96: 66 0f db fe pand %xmm6,%xmm7 - 429b9a: 66 44 0f db ce pand %xmm6,%xmm9 - 429b9f: 66 0f eb c7 por %xmm7,%xmm0 - 429ba3: 66 41 0f eb c9 por %xmm9,%xmm1 - 429ba8: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 429bae: 0f 86 7c 0d 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 429bb4: 48 83 c2 10 add $0x10,%rdx - 429bb8: e9 23 ff ff ff jmpq 429ae0 <__strcasecmp_l_sse42+0xcd0> - 429bbd: 0f 1f 00 nopl (%rax) - 429bc0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 429bc7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 429bcd: 66 0f 73 d8 07 psrldq $0x7,%xmm0 - 429bd2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 429bd8: 83 f9 08 cmp $0x8,%ecx - 429bdb: 0f 87 09 ff ff ff ja 429aea <__strcasecmp_l_sse42+0xcda> - 429be1: e9 fb 0c 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> - 429be6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 429bed: 00 00 00 - 429bf0: 66 0f 73 fa 08 pslldq $0x8,%xmm2 - 429bf5: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 429bf9: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 429bfe: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 429c03: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429c08: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 429c0c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 429c11: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429c16: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 429c1b: 66 41 0f db f8 pand %xmm8,%xmm7 - 429c20: 66 45 0f db ca pand %xmm10,%xmm9 - 429c25: 66 0f db fe pand %xmm6,%xmm7 - 429c29: 66 44 0f db ce pand %xmm6,%xmm9 - 429c2e: 66 0f eb cf por %xmm7,%xmm1 - 429c32: 66 41 0f eb d1 por %xmm9,%xmm2 - 429c37: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 429c3b: 66 0f f8 d0 psubb %xmm0,%xmm2 - 429c3f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 429c44: d3 ea shr %cl,%edx - 429c46: 41 d3 e9 shr %cl,%r9d - 429c49: 44 29 ca sub %r9d,%edx - 429c4c: 0f 85 06 0d 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> - 429c52: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 429c56: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 429c5d: 41 b9 08 00 00 00 mov $0x8,%r9d - 429c63: 4c 8d 57 08 lea 0x8(%rdi),%r10 - 429c67: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 429c6e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 429c75: 48 89 ca mov %rcx,%rdx - 429c78: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 429c7f: 00 - 429c80: 49 83 c2 10 add $0x10,%r10 - 429c84: 0f 8f d6 00 00 00 jg 429d60 <__strcasecmp_l_sse42+0xf50> - 429c8a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 429c8f: 66 0f 3a 0f 44 17 f0 palignr $0x8,-0x10(%rdi,%rdx,1),%xmm0 - 429c96: 08 - 429c97: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 429c9c: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 429ca0: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 429ca5: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 429caa: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429caf: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 429cb3: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 429cb8: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429cbd: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 429cc2: 66 41 0f db f8 pand %xmm8,%xmm7 - 429cc7: 66 45 0f db ca pand %xmm10,%xmm9 - 429ccc: 66 0f db fe pand %xmm6,%xmm7 - 429cd0: 66 44 0f db ce pand %xmm6,%xmm9 - 429cd5: 66 0f eb c7 por %xmm7,%xmm0 - 429cd9: 66 41 0f eb c9 por %xmm9,%xmm1 - 429cde: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 429ce4: 0f 86 46 0c 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 429cea: 48 83 c2 10 add $0x10,%rdx - 429cee: 49 83 c2 10 add $0x10,%r10 - 429cf2: 7f 6c jg 429d60 <__strcasecmp_l_sse42+0xf50> - 429cf4: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 429cf9: 66 0f 3a 0f 44 17 f0 palignr $0x8,-0x10(%rdi,%rdx,1),%xmm0 - 429d00: 08 - 429d01: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 429d06: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 429d0a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 429d0f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 429d14: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429d19: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 429d1d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 429d22: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429d27: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 429d2c: 66 41 0f db f8 pand %xmm8,%xmm7 - 429d31: 66 45 0f db ca pand %xmm10,%xmm9 - 429d36: 66 0f db fe pand %xmm6,%xmm7 - 429d3a: 66 44 0f db ce pand %xmm6,%xmm9 - 429d3f: 66 0f eb c7 por %xmm7,%xmm0 - 429d43: 66 41 0f eb c9 por %xmm9,%xmm1 - 429d48: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 429d4e: 0f 86 dc 0b 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 429d54: 48 83 c2 10 add $0x10,%rdx - 429d58: e9 23 ff ff ff jmpq 429c80 <__strcasecmp_l_sse42+0xe70> - 429d5d: 0f 1f 00 nopl (%rax) - 429d60: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 429d67: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 429d6d: 66 0f 73 d8 08 psrldq $0x8,%xmm0 - 429d72: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 429d78: 83 f9 07 cmp $0x7,%ecx - 429d7b: 0f 87 09 ff ff ff ja 429c8a <__strcasecmp_l_sse42+0xe7a> - 429d81: e9 5b 0b 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> - 429d86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 429d8d: 00 00 00 - 429d90: 66 0f 73 fa 07 pslldq $0x7,%xmm2 - 429d95: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 429d99: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 429d9e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 429da3: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429da8: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 429dac: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 429db1: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429db6: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 429dbb: 66 41 0f db f8 pand %xmm8,%xmm7 - 429dc0: 66 45 0f db ca pand %xmm10,%xmm9 - 429dc5: 66 0f db fe pand %xmm6,%xmm7 - 429dc9: 66 44 0f db ce pand %xmm6,%xmm9 - 429dce: 66 0f eb cf por %xmm7,%xmm1 - 429dd2: 66 41 0f eb d1 por %xmm9,%xmm2 - 429dd7: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 429ddb: 66 0f f8 d0 psubb %xmm0,%xmm2 - 429ddf: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 429de4: d3 ea shr %cl,%edx - 429de6: 41 d3 e9 shr %cl,%r9d - 429de9: 44 29 ca sub %r9d,%edx - 429dec: 0f 85 66 0b 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> - 429df2: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 429df6: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 429dfd: 41 b9 09 00 00 00 mov $0x9,%r9d - 429e03: 4c 8d 57 09 lea 0x9(%rdi),%r10 - 429e07: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 429e0e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 429e15: 48 89 ca mov %rcx,%rdx - 429e18: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 429e1f: 00 - 429e20: 49 83 c2 10 add $0x10,%r10 - 429e24: 0f 8f d6 00 00 00 jg 429f00 <__strcasecmp_l_sse42+0x10f0> - 429e2a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 429e2f: 66 0f 3a 0f 44 17 f0 palignr $0x9,-0x10(%rdi,%rdx,1),%xmm0 - 429e36: 09 - 429e37: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 429e3c: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 429e40: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 429e45: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 429e4a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429e4f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 429e53: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 429e58: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429e5d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 429e62: 66 41 0f db f8 pand %xmm8,%xmm7 - 429e67: 66 45 0f db ca pand %xmm10,%xmm9 - 429e6c: 66 0f db fe pand %xmm6,%xmm7 - 429e70: 66 44 0f db ce pand %xmm6,%xmm9 - 429e75: 66 0f eb c7 por %xmm7,%xmm0 - 429e79: 66 41 0f eb c9 por %xmm9,%xmm1 - 429e7e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 429e84: 0f 86 a6 0a 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 429e8a: 48 83 c2 10 add $0x10,%rdx - 429e8e: 49 83 c2 10 add $0x10,%r10 - 429e92: 7f 6c jg 429f00 <__strcasecmp_l_sse42+0x10f0> - 429e94: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 429e99: 66 0f 3a 0f 44 17 f0 palignr $0x9,-0x10(%rdi,%rdx,1),%xmm0 - 429ea0: 09 - 429ea1: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 429ea6: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 429eaa: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 429eaf: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 429eb4: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429eb9: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 429ebd: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 429ec2: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429ec7: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 429ecc: 66 41 0f db f8 pand %xmm8,%xmm7 - 429ed1: 66 45 0f db ca pand %xmm10,%xmm9 - 429ed6: 66 0f db fe pand %xmm6,%xmm7 - 429eda: 66 44 0f db ce pand %xmm6,%xmm9 - 429edf: 66 0f eb c7 por %xmm7,%xmm0 - 429ee3: 66 41 0f eb c9 por %xmm9,%xmm1 - 429ee8: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 429eee: 0f 86 3c 0a 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 429ef4: 48 83 c2 10 add $0x10,%rdx - 429ef8: e9 23 ff ff ff jmpq 429e20 <__strcasecmp_l_sse42+0x1010> - 429efd: 0f 1f 00 nopl (%rax) - 429f00: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 429f07: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 429f0d: 66 0f 73 d8 09 psrldq $0x9,%xmm0 - 429f12: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 429f18: 83 f9 06 cmp $0x6,%ecx - 429f1b: 0f 87 09 ff ff ff ja 429e2a <__strcasecmp_l_sse42+0x101a> - 429f21: e9 bb 09 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> - 429f26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 429f2d: 00 00 00 - 429f30: 66 0f 73 fa 06 pslldq $0x6,%xmm2 - 429f35: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 429f39: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 429f3e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 429f43: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429f48: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 429f4c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 429f51: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429f56: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 429f5b: 66 41 0f db f8 pand %xmm8,%xmm7 - 429f60: 66 45 0f db ca pand %xmm10,%xmm9 - 429f65: 66 0f db fe pand %xmm6,%xmm7 - 429f69: 66 44 0f db ce pand %xmm6,%xmm9 - 429f6e: 66 0f eb cf por %xmm7,%xmm1 - 429f72: 66 41 0f eb d1 por %xmm9,%xmm2 - 429f77: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 429f7b: 66 0f f8 d0 psubb %xmm0,%xmm2 - 429f7f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 429f84: d3 ea shr %cl,%edx - 429f86: 41 d3 e9 shr %cl,%r9d - 429f89: 44 29 ca sub %r9d,%edx - 429f8c: 0f 85 c6 09 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> - 429f92: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 429f96: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 429f9d: 41 b9 0a 00 00 00 mov $0xa,%r9d - 429fa3: 4c 8d 57 0a lea 0xa(%rdi),%r10 - 429fa7: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 429fae: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 429fb5: 48 89 ca mov %rcx,%rdx - 429fb8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 429fbf: 00 - 429fc0: 49 83 c2 10 add $0x10,%r10 - 429fc4: 0f 8f d6 00 00 00 jg 42a0a0 <__strcasecmp_l_sse42+0x1290> - 429fca: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 429fcf: 66 0f 3a 0f 44 17 f0 palignr $0xa,-0x10(%rdi,%rdx,1),%xmm0 - 429fd6: 0a - 429fd7: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 429fdc: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 429fe0: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 429fe5: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 429fea: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 429fef: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 429ff3: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 429ff8: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 429ffd: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 42a002: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a007: 66 45 0f db ca pand %xmm10,%xmm9 - 42a00c: 66 0f db fe pand %xmm6,%xmm7 - 42a010: 66 44 0f db ce pand %xmm6,%xmm9 - 42a015: 66 0f eb c7 por %xmm7,%xmm0 - 42a019: 66 41 0f eb c9 por %xmm9,%xmm1 - 42a01e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 42a024: 0f 86 06 09 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42a02a: 48 83 c2 10 add $0x10,%rdx - 42a02e: 49 83 c2 10 add $0x10,%r10 - 42a032: 7f 6c jg 42a0a0 <__strcasecmp_l_sse42+0x1290> - 42a034: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42a039: 66 0f 3a 0f 44 17 f0 palignr $0xa,-0x10(%rdi,%rdx,1),%xmm0 - 42a040: 0a - 42a041: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 42a046: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 42a04a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a04f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 42a054: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a059: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a05d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 42a062: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a067: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 42a06c: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a071: 66 45 0f db ca pand %xmm10,%xmm9 - 42a076: 66 0f db fe pand %xmm6,%xmm7 - 42a07a: 66 44 0f db ce pand %xmm6,%xmm9 - 42a07f: 66 0f eb c7 por %xmm7,%xmm0 - 42a083: 66 41 0f eb c9 por %xmm9,%xmm1 - 42a088: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 42a08e: 0f 86 9c 08 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42a094: 48 83 c2 10 add $0x10,%rdx - 42a098: e9 23 ff ff ff jmpq 429fc0 <__strcasecmp_l_sse42+0x11b0> - 42a09d: 0f 1f 00 nopl (%rax) - 42a0a0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42a0a7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 42a0ad: 66 0f 73 d8 0a psrldq $0xa,%xmm0 - 42a0b2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 42a0b8: 83 f9 05 cmp $0x5,%ecx - 42a0bb: 0f 87 09 ff ff ff ja 429fca <__strcasecmp_l_sse42+0x11ba> - 42a0c1: e9 1b 08 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> - 42a0c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42a0cd: 00 00 00 - 42a0d0: 66 0f 73 fa 05 pslldq $0x5,%xmm2 - 42a0d5: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 42a0d9: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a0de: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 42a0e3: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a0e8: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a0ec: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 42a0f1: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a0f6: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 42a0fb: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a100: 66 45 0f db ca pand %xmm10,%xmm9 - 42a105: 66 0f db fe pand %xmm6,%xmm7 - 42a109: 66 44 0f db ce pand %xmm6,%xmm9 - 42a10e: 66 0f eb cf por %xmm7,%xmm1 - 42a112: 66 41 0f eb d1 por %xmm9,%xmm2 - 42a117: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42a11b: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42a11f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42a124: d3 ea shr %cl,%edx - 42a126: 41 d3 e9 shr %cl,%r9d - 42a129: 44 29 ca sub %r9d,%edx - 42a12c: 0f 85 26 08 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> - 42a132: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42a136: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42a13d: 41 b9 0b 00 00 00 mov $0xb,%r9d - 42a143: 4c 8d 57 0b lea 0xb(%rdi),%r10 - 42a147: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42a14e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42a155: 48 89 ca mov %rcx,%rdx - 42a158: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42a15f: 00 - 42a160: 49 83 c2 10 add $0x10,%r10 - 42a164: 0f 8f d6 00 00 00 jg 42a240 <__strcasecmp_l_sse42+0x1430> - 42a16a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42a16f: 66 0f 3a 0f 44 17 f0 palignr $0xb,-0x10(%rdi,%rdx,1),%xmm0 - 42a176: 0b - 42a177: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 42a17c: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 42a180: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a185: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 42a18a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a18f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a193: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 42a198: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a19d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 42a1a2: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a1a7: 66 45 0f db ca pand %xmm10,%xmm9 - 42a1ac: 66 0f db fe pand %xmm6,%xmm7 - 42a1b0: 66 44 0f db ce pand %xmm6,%xmm9 - 42a1b5: 66 0f eb c7 por %xmm7,%xmm0 - 42a1b9: 66 41 0f eb c9 por %xmm9,%xmm1 - 42a1be: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 42a1c4: 0f 86 66 07 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42a1ca: 48 83 c2 10 add $0x10,%rdx - 42a1ce: 49 83 c2 10 add $0x10,%r10 - 42a1d2: 7f 6c jg 42a240 <__strcasecmp_l_sse42+0x1430> - 42a1d4: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42a1d9: 66 0f 3a 0f 44 17 f0 palignr $0xb,-0x10(%rdi,%rdx,1),%xmm0 - 42a1e0: 0b - 42a1e1: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 42a1e6: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 42a1ea: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a1ef: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 42a1f4: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a1f9: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a1fd: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 42a202: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a207: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 42a20c: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a211: 66 45 0f db ca pand %xmm10,%xmm9 - 42a216: 66 0f db fe pand %xmm6,%xmm7 - 42a21a: 66 44 0f db ce pand %xmm6,%xmm9 - 42a21f: 66 0f eb c7 por %xmm7,%xmm0 - 42a223: 66 41 0f eb c9 por %xmm9,%xmm1 - 42a228: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 42a22e: 0f 86 fc 06 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42a234: 48 83 c2 10 add $0x10,%rdx - 42a238: e9 23 ff ff ff jmpq 42a160 <__strcasecmp_l_sse42+0x1350> - 42a23d: 0f 1f 00 nopl (%rax) - 42a240: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42a247: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 42a24d: 66 0f 73 d8 0b psrldq $0xb,%xmm0 - 42a252: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 42a258: 83 f9 04 cmp $0x4,%ecx - 42a25b: 0f 87 09 ff ff ff ja 42a16a <__strcasecmp_l_sse42+0x135a> - 42a261: e9 7b 06 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> - 42a266: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42a26d: 00 00 00 - 42a270: 66 0f 73 fa 04 pslldq $0x4,%xmm2 - 42a275: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 42a279: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a27e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 42a283: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a288: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a28c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 42a291: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a296: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 42a29b: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a2a0: 66 45 0f db ca pand %xmm10,%xmm9 - 42a2a5: 66 0f db fe pand %xmm6,%xmm7 - 42a2a9: 66 44 0f db ce pand %xmm6,%xmm9 - 42a2ae: 66 0f eb cf por %xmm7,%xmm1 - 42a2b2: 66 41 0f eb d1 por %xmm9,%xmm2 - 42a2b7: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42a2bb: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42a2bf: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42a2c4: d3 ea shr %cl,%edx - 42a2c6: 41 d3 e9 shr %cl,%r9d - 42a2c9: 44 29 ca sub %r9d,%edx - 42a2cc: 0f 85 86 06 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> - 42a2d2: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42a2d6: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42a2dd: 41 b9 0c 00 00 00 mov $0xc,%r9d - 42a2e3: 4c 8d 57 0c lea 0xc(%rdi),%r10 - 42a2e7: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42a2ee: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42a2f5: 48 89 ca mov %rcx,%rdx - 42a2f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42a2ff: 00 - 42a300: 49 83 c2 10 add $0x10,%r10 - 42a304: 0f 8f d6 00 00 00 jg 42a3e0 <__strcasecmp_l_sse42+0x15d0> - 42a30a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42a30f: 66 0f 3a 0f 44 17 f0 palignr $0xc,-0x10(%rdi,%rdx,1),%xmm0 - 42a316: 0c - 42a317: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 42a31c: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 42a320: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a325: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 42a32a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a32f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a333: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 42a338: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a33d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 42a342: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a347: 66 45 0f db ca pand %xmm10,%xmm9 - 42a34c: 66 0f db fe pand %xmm6,%xmm7 - 42a350: 66 44 0f db ce pand %xmm6,%xmm9 - 42a355: 66 0f eb c7 por %xmm7,%xmm0 - 42a359: 66 41 0f eb c9 por %xmm9,%xmm1 - 42a35e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 42a364: 0f 86 c6 05 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42a36a: 48 83 c2 10 add $0x10,%rdx - 42a36e: 49 83 c2 10 add $0x10,%r10 - 42a372: 7f 6c jg 42a3e0 <__strcasecmp_l_sse42+0x15d0> - 42a374: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42a379: 66 0f 3a 0f 44 17 f0 palignr $0xc,-0x10(%rdi,%rdx,1),%xmm0 - 42a380: 0c - 42a381: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 42a386: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 42a38a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a38f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 42a394: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a399: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a39d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 42a3a2: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a3a7: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 42a3ac: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a3b1: 66 45 0f db ca pand %xmm10,%xmm9 - 42a3b6: 66 0f db fe pand %xmm6,%xmm7 - 42a3ba: 66 44 0f db ce pand %xmm6,%xmm9 - 42a3bf: 66 0f eb c7 por %xmm7,%xmm0 - 42a3c3: 66 41 0f eb c9 por %xmm9,%xmm1 - 42a3c8: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 42a3ce: 0f 86 5c 05 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42a3d4: 48 83 c2 10 add $0x10,%rdx - 42a3d8: e9 23 ff ff ff jmpq 42a300 <__strcasecmp_l_sse42+0x14f0> - 42a3dd: 0f 1f 00 nopl (%rax) - 42a3e0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42a3e7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 42a3ed: 66 0f 73 d8 0c psrldq $0xc,%xmm0 - 42a3f2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 42a3f8: 83 f9 03 cmp $0x3,%ecx - 42a3fb: 0f 87 09 ff ff ff ja 42a30a <__strcasecmp_l_sse42+0x14fa> - 42a401: e9 db 04 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> - 42a406: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42a40d: 00 00 00 - 42a410: 66 0f 73 fa 03 pslldq $0x3,%xmm2 - 42a415: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 42a419: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a41e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 42a423: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a428: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a42c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 42a431: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a436: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 42a43b: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a440: 66 45 0f db ca pand %xmm10,%xmm9 - 42a445: 66 0f db fe pand %xmm6,%xmm7 - 42a449: 66 44 0f db ce pand %xmm6,%xmm9 - 42a44e: 66 0f eb cf por %xmm7,%xmm1 - 42a452: 66 41 0f eb d1 por %xmm9,%xmm2 - 42a457: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42a45b: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42a45f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42a464: d3 ea shr %cl,%edx - 42a466: 41 d3 e9 shr %cl,%r9d - 42a469: 44 29 ca sub %r9d,%edx - 42a46c: 0f 85 e6 04 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> - 42a472: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42a476: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42a47d: 41 b9 0d 00 00 00 mov $0xd,%r9d - 42a483: 4c 8d 57 0d lea 0xd(%rdi),%r10 - 42a487: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42a48e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42a495: 48 89 ca mov %rcx,%rdx - 42a498: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42a49f: 00 - 42a4a0: 49 83 c2 10 add $0x10,%r10 - 42a4a4: 0f 8f d6 00 00 00 jg 42a580 <__strcasecmp_l_sse42+0x1770> - 42a4aa: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42a4af: 66 0f 3a 0f 44 17 f0 palignr $0xd,-0x10(%rdi,%rdx,1),%xmm0 - 42a4b6: 0d - 42a4b7: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 42a4bc: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 42a4c0: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a4c5: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 42a4ca: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a4cf: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a4d3: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 42a4d8: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a4dd: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 42a4e2: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a4e7: 66 45 0f db ca pand %xmm10,%xmm9 - 42a4ec: 66 0f db fe pand %xmm6,%xmm7 - 42a4f0: 66 44 0f db ce pand %xmm6,%xmm9 - 42a4f5: 66 0f eb c7 por %xmm7,%xmm0 - 42a4f9: 66 41 0f eb c9 por %xmm9,%xmm1 - 42a4fe: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 42a504: 0f 86 26 04 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42a50a: 48 83 c2 10 add $0x10,%rdx - 42a50e: 49 83 c2 10 add $0x10,%r10 - 42a512: 7f 6c jg 42a580 <__strcasecmp_l_sse42+0x1770> - 42a514: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42a519: 66 0f 3a 0f 44 17 f0 palignr $0xd,-0x10(%rdi,%rdx,1),%xmm0 - 42a520: 0d - 42a521: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 42a526: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 42a52a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a52f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 42a534: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a539: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a53d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 42a542: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a547: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 42a54c: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a551: 66 45 0f db ca pand %xmm10,%xmm9 - 42a556: 66 0f db fe pand %xmm6,%xmm7 - 42a55a: 66 44 0f db ce pand %xmm6,%xmm9 - 42a55f: 66 0f eb c7 por %xmm7,%xmm0 - 42a563: 66 41 0f eb c9 por %xmm9,%xmm1 - 42a568: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 42a56e: 0f 86 bc 03 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42a574: 48 83 c2 10 add $0x10,%rdx - 42a578: e9 23 ff ff ff jmpq 42a4a0 <__strcasecmp_l_sse42+0x1690> - 42a57d: 0f 1f 00 nopl (%rax) - 42a580: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42a587: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 42a58d: 66 0f 73 d8 0d psrldq $0xd,%xmm0 - 42a592: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 42a598: 83 f9 02 cmp $0x2,%ecx - 42a59b: 0f 87 09 ff ff ff ja 42a4aa <__strcasecmp_l_sse42+0x169a> - 42a5a1: e9 3b 03 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> - 42a5a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42a5ad: 00 00 00 - 42a5b0: 66 0f 73 fa 02 pslldq $0x2,%xmm2 - 42a5b5: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 42a5b9: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a5be: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 42a5c3: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a5c8: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a5cc: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 42a5d1: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a5d6: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 42a5db: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a5e0: 66 45 0f db ca pand %xmm10,%xmm9 - 42a5e5: 66 0f db fe pand %xmm6,%xmm7 - 42a5e9: 66 44 0f db ce pand %xmm6,%xmm9 - 42a5ee: 66 0f eb cf por %xmm7,%xmm1 - 42a5f2: 66 41 0f eb d1 por %xmm9,%xmm2 - 42a5f7: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42a5fb: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42a5ff: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42a604: d3 ea shr %cl,%edx - 42a606: 41 d3 e9 shr %cl,%r9d - 42a609: 44 29 ca sub %r9d,%edx - 42a60c: 0f 85 46 03 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> - 42a612: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42a616: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42a61d: 41 b9 0e 00 00 00 mov $0xe,%r9d - 42a623: 4c 8d 57 0e lea 0xe(%rdi),%r10 - 42a627: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42a62e: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42a635: 48 89 ca mov %rcx,%rdx - 42a638: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42a63f: 00 - 42a640: 49 83 c2 10 add $0x10,%r10 - 42a644: 0f 8f d6 00 00 00 jg 42a720 <__strcasecmp_l_sse42+0x1910> - 42a64a: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42a64f: 66 0f 3a 0f 44 17 f0 palignr $0xe,-0x10(%rdi,%rdx,1),%xmm0 - 42a656: 0e - 42a657: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 42a65c: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 42a660: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a665: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 42a66a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a66f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a673: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 42a678: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a67d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 42a682: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a687: 66 45 0f db ca pand %xmm10,%xmm9 - 42a68c: 66 0f db fe pand %xmm6,%xmm7 - 42a690: 66 44 0f db ce pand %xmm6,%xmm9 - 42a695: 66 0f eb c7 por %xmm7,%xmm0 - 42a699: 66 41 0f eb c9 por %xmm9,%xmm1 - 42a69e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 42a6a4: 0f 86 86 02 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42a6aa: 48 83 c2 10 add $0x10,%rdx - 42a6ae: 49 83 c2 10 add $0x10,%r10 - 42a6b2: 7f 6c jg 42a720 <__strcasecmp_l_sse42+0x1910> - 42a6b4: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42a6b9: 66 0f 3a 0f 44 17 f0 palignr $0xe,-0x10(%rdi,%rdx,1),%xmm0 - 42a6c0: 0e - 42a6c1: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 42a6c6: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 42a6ca: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a6cf: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 42a6d4: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a6d9: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a6dd: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 42a6e2: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a6e7: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 42a6ec: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a6f1: 66 45 0f db ca pand %xmm10,%xmm9 - 42a6f6: 66 0f db fe pand %xmm6,%xmm7 - 42a6fa: 66 44 0f db ce pand %xmm6,%xmm9 - 42a6ff: 66 0f eb c7 por %xmm7,%xmm0 - 42a703: 66 41 0f eb c9 por %xmm9,%xmm1 - 42a708: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 42a70e: 0f 86 1c 02 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42a714: 48 83 c2 10 add $0x10,%rdx - 42a718: e9 23 ff ff ff jmpq 42a640 <__strcasecmp_l_sse42+0x1830> - 42a71d: 0f 1f 00 nopl (%rax) - 42a720: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42a727: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 42a72d: 66 0f 73 d8 0e psrldq $0xe,%xmm0 - 42a732: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 42a738: 83 f9 01 cmp $0x1,%ecx - 42a73b: 0f 87 09 ff ff ff ja 42a64a <__strcasecmp_l_sse42+0x183a> - 42a741: e9 9b 01 00 00 jmpq 42a8e1 <__strcasecmp_l_sse42+0x1ad1> - 42a746: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42a74d: 00 00 00 - 42a750: 66 0f 73 fa 01 pslldq $0x1,%xmm2 - 42a755: 66 0f 6f f9 movdqa %xmm1,%xmm7 - 42a759: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a75e: 66 44 0f 6f ca movdqa %xmm2,%xmm9 - 42a763: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a768: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a76c: 66 44 0f 64 c1 pcmpgtb %xmm1,%xmm8 - 42a771: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a776: 66 44 0f 64 d2 pcmpgtb %xmm2,%xmm10 - 42a77b: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a780: 66 45 0f db ca pand %xmm10,%xmm9 - 42a785: 66 0f db fe pand %xmm6,%xmm7 - 42a789: 66 44 0f db ce pand %xmm6,%xmm9 - 42a78e: 66 0f eb cf por %xmm7,%xmm1 - 42a792: 66 41 0f eb d1 por %xmm9,%xmm2 - 42a797: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42a79b: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42a79f: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42a7a4: d3 ea shr %cl,%edx - 42a7a6: 41 d3 e9 shr %cl,%r9d - 42a7a9: 44 29 ca sub %r9d,%edx - 42a7ac: 0f 85 a6 01 00 00 jne 42a958 <__strcasecmp_l_sse42+0x1b48> - 42a7b2: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42a7b6: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42a7bd: 41 b9 0f 00 00 00 mov $0xf,%r9d - 42a7c3: 4c 8d 57 0f lea 0xf(%rdi),%r10 - 42a7c7: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42a7ce: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42a7d5: 48 89 ca mov %rcx,%rdx - 42a7d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42a7df: 00 - 42a7e0: 49 83 c2 10 add $0x10,%r10 - 42a7e4: 0f 8f d6 00 00 00 jg 42a8c0 <__strcasecmp_l_sse42+0x1ab0> - 42a7ea: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42a7ef: 66 0f 3a 0f 44 17 f0 palignr $0xf,-0x10(%rdi,%rdx,1),%xmm0 - 42a7f6: 0f - 42a7f7: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 42a7fc: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 42a800: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a805: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 42a80a: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a80f: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a813: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 42a818: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a81d: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 42a822: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a827: 66 45 0f db ca pand %xmm10,%xmm9 - 42a82c: 66 0f db fe pand %xmm6,%xmm7 - 42a830: 66 44 0f db ce pand %xmm6,%xmm9 - 42a835: 66 0f eb c7 por %xmm7,%xmm0 - 42a839: 66 41 0f eb c9 por %xmm9,%xmm1 - 42a83e: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 42a844: 0f 86 e6 00 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42a84a: 48 83 c2 10 add $0x10,%rdx - 42a84e: 49 83 c2 10 add $0x10,%r10 - 42a852: 7f 6c jg 42a8c0 <__strcasecmp_l_sse42+0x1ab0> - 42a854: 66 0f 6f 04 17 movdqa (%rdi,%rdx,1),%xmm0 - 42a859: 66 0f 3a 0f 44 17 f0 palignr $0xf,-0x10(%rdi,%rdx,1),%xmm0 - 42a860: 0f - 42a861: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 42a866: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 42a86a: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a86f: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 42a874: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a879: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a87d: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 42a882: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a887: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 42a88c: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a891: 66 45 0f db ca pand %xmm10,%xmm9 - 42a896: 66 0f db fe pand %xmm6,%xmm7 - 42a89a: 66 44 0f db ce pand %xmm6,%xmm9 - 42a89f: 66 0f eb c7 por %xmm7,%xmm0 - 42a8a3: 66 41 0f eb c9 por %xmm9,%xmm1 - 42a8a8: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 42a8ae: 0f 86 7c 00 00 00 jbe 42a930 <__strcasecmp_l_sse42+0x1b20> - 42a8b4: 48 83 c2 10 add $0x10,%rdx - 42a8b8: e9 23 ff ff ff jmpq 42a7e0 <__strcasecmp_l_sse42+0x19d0> - 42a8bd: 0f 1f 00 nopl (%rax) - 42a8c0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42a8c7: 66 0f 6f 44 17 f0 movdqa -0x10(%rdi,%rdx,1),%xmm0 - 42a8cd: 66 0f 73 d8 0f psrldq $0xf,%xmm0 - 42a8d2: 66 0f 3a 63 c0 3a pcmpistri $0x3a,%xmm0,%xmm0 - 42a8d8: 83 f9 00 cmp $0x0,%ecx - 42a8db: 0f 87 09 ff ff ff ja 42a7ea <__strcasecmp_l_sse42+0x19da> - 42a8e1: 66 0f 6f 0c 16 movdqa (%rsi,%rdx,1),%xmm1 - 42a8e6: 66 0f 6f f8 movdqa %xmm0,%xmm7 - 42a8ea: 66 44 0f 6f c5 movdqa %xmm5,%xmm8 - 42a8ef: 66 44 0f 6f c9 movdqa %xmm1,%xmm9 - 42a8f4: 66 44 0f 6f d5 movdqa %xmm5,%xmm10 - 42a8f9: 66 0f 64 fc pcmpgtb %xmm4,%xmm7 - 42a8fd: 66 44 0f 64 c0 pcmpgtb %xmm0,%xmm8 - 42a902: 66 44 0f 64 cc pcmpgtb %xmm4,%xmm9 - 42a907: 66 44 0f 64 d1 pcmpgtb %xmm1,%xmm10 - 42a90c: 66 41 0f db f8 pand %xmm8,%xmm7 - 42a911: 66 45 0f db ca pand %xmm10,%xmm9 - 42a916: 66 0f db fe pand %xmm6,%xmm7 - 42a91a: 66 44 0f db ce pand %xmm6,%xmm9 - 42a91f: 66 0f eb c7 por %xmm7,%xmm0 - 42a923: 66 41 0f eb c9 por %xmm9,%xmm1 - 42a928: 66 0f 3a 63 c1 1a pcmpistri $0x1a,%xmm1,%xmm0 - 42a92e: 66 90 xchg %ax,%ax - 42a930: 73 5a jae 42a98c <__strcasecmp_l_sse42+0x1b7c> - 42a932: 48 01 ca add %rcx,%rdx - 42a935: 4a 8d 7c 0f f0 lea -0x10(%rdi,%r9,1),%rdi - 42a93a: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax - 42a93e: 0f b6 14 16 movzbl (%rsi,%rdx,1),%edx - 42a942: 45 85 c0 test %r8d,%r8d - 42a945: 74 01 je 42a948 <__strcasecmp_l_sse42+0x1b38> - 42a947: 92 xchg %eax,%edx - 42a948: 48 8d 0d f1 cb 07 00 lea 0x7cbf1(%rip),%rcx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> - 42a94f: 8b 14 91 mov (%rcx,%rdx,4),%edx - 42a952: 8b 04 81 mov (%rcx,%rax,4),%eax - 42a955: 29 d0 sub %edx,%eax - 42a957: c3 retq - 42a958: 48 8d 3c 07 lea (%rdi,%rax,1),%rdi - 42a95c: 48 8d 34 0e lea (%rsi,%rcx,1),%rsi - 42a960: 45 85 c0 test %r8d,%r8d - 42a963: 74 0b je 42a970 <__strcasecmp_l_sse42+0x1b60> - 42a965: 48 87 f7 xchg %rsi,%rdi - 42a968: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42a96f: 00 - 42a970: 48 0f bc d2 bsf %rdx,%rdx - 42a974: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx - 42a978: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax - 42a97c: 48 8d 15 bd cb 07 00 lea 0x7cbbd(%rip),%rdx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> - 42a983: 8b 0c 8a mov (%rdx,%rcx,4),%ecx - 42a986: 8b 04 82 mov (%rdx,%rax,4),%eax - 42a989: 29 c8 sub %ecx,%eax - 42a98b: c3 retq - 42a98c: 31 c0 xor %eax,%eax - 42a98e: c3 retq - 42a98f: 90 nop - 42a990: 0f b6 0e movzbl (%rsi),%ecx - 42a993: 0f b6 07 movzbl (%rdi),%eax - 42a996: 48 8d 15 a3 cb 07 00 lea 0x7cba3(%rip),%rdx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> - 42a99d: 8b 0c 8a mov (%rdx,%rcx,4),%ecx - 42a9a0: 8b 04 82 mov (%rdx,%rax,4),%eax - 42a9a3: 29 c8 sub %ecx,%eax - 42a9a5: c3 retq - 42a9a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42a9ad: 00 00 00 - -000000000042a9b0 <__strcasecmp_avx>: - 42a9b0: 48 c7 c0 b8 ff ff ff mov $0xffffffffffffffb8,%rax - 42a9b7: 64 48 8b 10 mov %fs:(%rax),%rdx - 42a9bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -000000000042a9c0 <__strcasecmp_l_avx>: - 42a9c0: 48 8b 02 mov (%rdx),%rax - 42a9c3: f7 80 78 02 00 00 01 testl $0x1,0x278(%rax) - 42a9ca: 00 00 00 - 42a9cd: 0f 85 2d 39 01 00 jne 43e300 <__strcasecmp_l_nonascii> - 42a9d3: 89 f1 mov %esi,%ecx - 42a9d5: 89 f8 mov %edi,%eax - 42a9d7: 48 83 e1 3f and $0x3f,%rcx - 42a9db: 48 83 e0 3f and $0x3f,%rax - 42a9df: c5 f9 6f 25 c9 86 07 vmovdqa 0x786c9(%rip),%xmm4 # 4a30b0 <__func__.10972+0xf0> - 42a9e6: 00 - 42a9e7: c5 f9 6f 2d f1 86 07 vmovdqa 0x786f1(%rip),%xmm5 # 4a30e0 - 42a9ee: 00 - 42a9ef: c5 f9 6f 35 d9 86 07 vmovdqa 0x786d9(%rip),%xmm6 # 4a30d0 - 42a9f6: 00 - 42a9f7: 83 f9 30 cmp $0x30,%ecx - 42a9fa: 77 64 ja 42aa60 <__strcasecmp_l_avx+0xa0> - 42a9fc: 83 f8 30 cmp $0x30,%eax - 42a9ff: 77 5f ja 42aa60 <__strcasecmp_l_avx+0xa0> - 42aa01: c5 fa 6f 0f vmovdqu (%rdi),%xmm1 - 42aa05: c5 fa 6f 16 vmovdqu (%rsi),%xmm2 - 42aa09: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42aa0d: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42aa11: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42aa15: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42aa19: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42aa1d: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42aa22: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42aa26: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42aa2a: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42aa2e: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42aa32: c5 f9 ef c0 vpxor %xmm0,%xmm0,%xmm0 - 42aa36: c5 f9 74 c1 vpcmpeqb %xmm1,%xmm0,%xmm0 - 42aa3a: c5 f1 74 ca vpcmpeqb %xmm2,%xmm1,%xmm1 - 42aa3e: c5 f1 f8 c8 vpsubb %xmm0,%xmm1,%xmm1 - 42aa42: c5 f9 d7 d1 vpmovmskb %xmm1,%edx - 42aa46: 81 ea ff ff 00 00 sub $0xffff,%edx - 42aa4c: 0f 85 8e 15 00 00 jne 42bfe0 <__strcasecmp_l_avx+0x1620> - 42aa52: 48 83 c6 10 add $0x10,%rsi - 42aa56: 48 83 c7 10 add $0x10,%rdi - 42aa5a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 42aa60: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 42aa64: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 42aa68: ba ff ff 00 00 mov $0xffff,%edx - 42aa6d: 45 31 c0 xor %r8d,%r8d - 42aa70: 83 e1 0f and $0xf,%ecx - 42aa73: 83 e0 0f and $0xf,%eax - 42aa76: c5 f9 ef c0 vpxor %xmm0,%xmm0,%xmm0 - 42aa7a: 39 c1 cmp %eax,%ecx - 42aa7c: 74 32 je 42aab0 <__strcasecmp_l_avx+0xf0> - 42aa7e: 77 07 ja 42aa87 <__strcasecmp_l_avx+0xc7> - 42aa80: 41 89 d0 mov %edx,%r8d - 42aa83: 91 xchg %eax,%ecx - 42aa84: 48 87 f7 xchg %rsi,%rdi - 42aa87: c5 f9 6f 17 vmovdqa (%rdi),%xmm2 - 42aa8b: c5 f9 6f 0e vmovdqa (%rsi),%xmm1 - 42aa8f: 4c 8d 48 0f lea 0xf(%rax),%r9 - 42aa93: 49 29 c9 sub %rcx,%r9 - 42aa96: 4c 8d 15 93 86 07 00 lea 0x78693(%rip),%r10 # 4a3130 - 42aa9d: 4f 63 0c 8a movslq (%r10,%r9,4),%r9 - 42aaa1: c5 f9 74 c1 vpcmpeqb %xmm1,%xmm0,%xmm0 - 42aaa5: 4f 8d 14 0a lea (%r10,%r9,1),%r10 - 42aaa9: 41 ff e2 jmpq *%r10 - 42aaac: 0f 1f 40 00 nopl 0x0(%rax) - 42aab0: c5 f9 6f 0e vmovdqa (%rsi),%xmm1 - 42aab4: c5 f9 74 c1 vpcmpeqb %xmm1,%xmm0,%xmm0 - 42aab8: c5 f9 6f 17 vmovdqa (%rdi),%xmm2 - 42aabc: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42aac0: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42aac4: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42aac8: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42aacc: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42aad0: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42aad5: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42aad9: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42aadd: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42aae1: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42aae5: c5 f1 74 ca vpcmpeqb %xmm2,%xmm1,%xmm1 - 42aae9: c5 f1 f8 c8 vpsubb %xmm0,%xmm1,%xmm1 - 42aaed: c5 79 d7 c9 vpmovmskb %xmm1,%r9d - 42aaf1: d3 ea shr %cl,%edx - 42aaf3: 41 d3 e9 shr %cl,%r9d - 42aaf6: 44 29 ca sub %r9d,%edx - 42aaf9: 0f 85 c9 14 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> - 42aaff: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42ab06: 49 c7 c1 10 00 00 00 mov $0x10,%r9 - 42ab0d: 48 89 ca mov %rcx,%rdx - 42ab10: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42ab15: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42ab1a: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42ab1e: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42ab22: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42ab26: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42ab2a: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42ab2e: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42ab33: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42ab37: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42ab3b: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42ab3f: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42ab43: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42ab49: 48 8d 52 10 lea 0x10(%rdx),%rdx - 42ab4d: 76 41 jbe 42ab90 <__strcasecmp_l_avx+0x1d0> - 42ab4f: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42ab54: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42ab59: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42ab5d: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42ab61: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42ab65: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42ab69: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42ab6d: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42ab72: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42ab76: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42ab7a: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42ab7e: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42ab82: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42ab88: 48 8d 52 10 lea 0x10(%rdx),%rdx - 42ab8c: 76 02 jbe 42ab90 <__strcasecmp_l_avx+0x1d0> - 42ab8e: eb 80 jmp 42ab10 <__strcasecmp_l_avx+0x150> - 42ab90: 0f 83 66 14 00 00 jae 42bffc <__strcasecmp_l_avx+0x163c> - 42ab96: 48 8d 4c 0a f0 lea -0x10(%rdx,%rcx,1),%rcx - 42ab9b: 0f b6 04 0f movzbl (%rdi,%rcx,1),%eax - 42ab9f: 0f b6 14 0e movzbl (%rsi,%rcx,1),%edx - 42aba3: 48 8d 0d 96 c9 07 00 lea 0x7c996(%rip),%rcx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> - 42abaa: 8b 04 81 mov (%rcx,%rax,4),%eax - 42abad: 8b 14 91 mov (%rcx,%rdx,4),%edx - 42abb0: 29 d0 sub %edx,%eax - 42abb2: c3 retq - 42abb3: 0f 1f 00 nopl (%rax) - 42abb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42abbd: 00 00 00 - 42abc0: c5 e9 73 fa 0f vpslldq $0xf,%xmm2,%xmm2 - 42abc5: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42abc9: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42abcd: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42abd1: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42abd5: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42abd9: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42abde: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42abe2: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42abe6: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42abea: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42abee: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 - 42abf2: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 - 42abf6: c5 79 d7 ca vpmovmskb %xmm2,%r9d - 42abfa: d3 ea shr %cl,%edx - 42abfc: 41 d3 e9 shr %cl,%r9d - 42abff: 44 29 ca sub %r9d,%edx - 42ac02: 0f 85 c0 13 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> - 42ac08: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 - 42ac0c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42ac13: 41 b9 01 00 00 00 mov $0x1,%r9d - 42ac19: 4c 8d 57 01 lea 0x1(%rdi),%r10 - 42ac1d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42ac24: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42ac2b: 48 89 ca mov %rcx,%rdx - 42ac2e: 66 90 xchg %ax,%ax - 42ac30: 49 83 c2 10 add $0x10,%r10 - 42ac34: 0f 8f a6 00 00 00 jg 42ace0 <__strcasecmp_l_avx+0x320> - 42ac3a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42ac3f: c4 e3 79 0f 44 17 f0 vpalignr $0x1,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42ac46: 01 - 42ac47: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42ac4c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42ac50: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42ac54: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42ac58: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42ac5c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42ac60: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42ac65: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42ac69: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42ac6d: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42ac71: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42ac75: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42ac7b: 0f 86 1f 13 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42ac81: 48 83 c2 10 add $0x10,%rdx - 42ac85: 49 83 c2 10 add $0x10,%r10 - 42ac89: 7f 55 jg 42ace0 <__strcasecmp_l_avx+0x320> - 42ac8b: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42ac90: c4 e3 79 0f 44 17 f0 vpalignr $0x1,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42ac97: 01 - 42ac98: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42ac9d: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42aca1: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42aca5: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42aca9: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42acad: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42acb1: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42acb6: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42acba: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42acbe: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42acc2: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42acc6: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42accc: 0f 86 ce 12 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42acd2: 48 83 c2 10 add $0x10,%rdx - 42acd6: e9 55 ff ff ff jmpq 42ac30 <__strcasecmp_l_avx+0x270> - 42acdb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42ace0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42ace7: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 - 42aced: c5 f9 73 d8 01 vpsrldq $0x1,%xmm0,%xmm0 - 42acf2: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 - 42acf8: 83 f9 0e cmp $0xe,%ecx - 42acfb: 0f 87 39 ff ff ff ja 42ac3a <__strcasecmp_l_avx+0x27a> - 42ad01: e9 5b 12 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> - 42ad06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42ad0d: 00 00 00 - 42ad10: c5 e9 73 fa 0e vpslldq $0xe,%xmm2,%xmm2 - 42ad15: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42ad19: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42ad1d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42ad21: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42ad25: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42ad29: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42ad2e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42ad32: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42ad36: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42ad3a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42ad3e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 - 42ad42: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 - 42ad46: c5 79 d7 ca vpmovmskb %xmm2,%r9d - 42ad4a: d3 ea shr %cl,%edx - 42ad4c: 41 d3 e9 shr %cl,%r9d - 42ad4f: 44 29 ca sub %r9d,%edx - 42ad52: 0f 85 70 12 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> - 42ad58: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 - 42ad5c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42ad63: 41 b9 02 00 00 00 mov $0x2,%r9d - 42ad69: 4c 8d 57 02 lea 0x2(%rdi),%r10 - 42ad6d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42ad74: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42ad7b: 48 89 ca mov %rcx,%rdx - 42ad7e: 66 90 xchg %ax,%ax - 42ad80: 49 83 c2 10 add $0x10,%r10 - 42ad84: 0f 8f a6 00 00 00 jg 42ae30 <__strcasecmp_l_avx+0x470> - 42ad8a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42ad8f: c4 e3 79 0f 44 17 f0 vpalignr $0x2,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42ad96: 02 - 42ad97: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42ad9c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42ada0: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42ada4: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42ada8: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42adac: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42adb0: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42adb5: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42adb9: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42adbd: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42adc1: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42adc5: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42adcb: 0f 86 cf 11 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42add1: 48 83 c2 10 add $0x10,%rdx - 42add5: 49 83 c2 10 add $0x10,%r10 - 42add9: 7f 55 jg 42ae30 <__strcasecmp_l_avx+0x470> - 42addb: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42ade0: c4 e3 79 0f 44 17 f0 vpalignr $0x2,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42ade7: 02 - 42ade8: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42aded: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42adf1: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42adf5: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42adf9: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42adfd: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42ae01: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42ae06: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42ae0a: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42ae0e: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42ae12: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42ae16: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42ae1c: 0f 86 7e 11 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42ae22: 48 83 c2 10 add $0x10,%rdx - 42ae26: e9 55 ff ff ff jmpq 42ad80 <__strcasecmp_l_avx+0x3c0> - 42ae2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42ae30: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42ae37: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 - 42ae3d: c5 f9 73 d8 02 vpsrldq $0x2,%xmm0,%xmm0 - 42ae42: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 - 42ae48: 83 f9 0d cmp $0xd,%ecx - 42ae4b: 0f 87 39 ff ff ff ja 42ad8a <__strcasecmp_l_avx+0x3ca> - 42ae51: e9 0b 11 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> - 42ae56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42ae5d: 00 00 00 - 42ae60: c5 e9 73 fa 0d vpslldq $0xd,%xmm2,%xmm2 - 42ae65: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42ae69: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42ae6d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42ae71: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42ae75: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42ae79: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42ae7e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42ae82: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42ae86: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42ae8a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42ae8e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 - 42ae92: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 - 42ae96: c5 79 d7 ca vpmovmskb %xmm2,%r9d - 42ae9a: d3 ea shr %cl,%edx - 42ae9c: 41 d3 e9 shr %cl,%r9d - 42ae9f: 44 29 ca sub %r9d,%edx - 42aea2: 0f 85 20 11 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> - 42aea8: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 - 42aeac: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42aeb3: 41 b9 03 00 00 00 mov $0x3,%r9d - 42aeb9: 4c 8d 57 03 lea 0x3(%rdi),%r10 - 42aebd: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42aec4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42aecb: 48 89 ca mov %rcx,%rdx - 42aece: 49 83 c2 10 add $0x10,%r10 - 42aed2: 0f 8f a8 00 00 00 jg 42af80 <__strcasecmp_l_avx+0x5c0> - 42aed8: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42aedd: c4 e3 79 0f 44 17 f0 vpalignr $0x3,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42aee4: 03 - 42aee5: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42aeea: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42aeee: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42aef2: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42aef6: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42aefa: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42aefe: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42af03: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42af07: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42af0b: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42af0f: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42af13: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42af19: 0f 86 81 10 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42af1f: 48 83 c2 10 add $0x10,%rdx - 42af23: 49 83 c2 10 add $0x10,%r10 - 42af27: 7f 57 jg 42af80 <__strcasecmp_l_avx+0x5c0> - 42af29: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42af2e: c4 e3 79 0f 44 17 f0 vpalignr $0x3,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42af35: 03 - 42af36: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42af3b: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42af3f: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42af43: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42af47: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42af4b: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42af4f: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42af54: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42af58: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42af5c: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42af60: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42af64: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42af6a: 0f 86 30 10 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42af70: 48 83 c2 10 add $0x10,%rdx - 42af74: e9 55 ff ff ff jmpq 42aece <__strcasecmp_l_avx+0x50e> - 42af79: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42af80: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42af87: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 - 42af8d: c5 f9 73 d8 03 vpsrldq $0x3,%xmm0,%xmm0 - 42af92: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 - 42af98: 83 f9 0c cmp $0xc,%ecx - 42af9b: 0f 87 37 ff ff ff ja 42aed8 <__strcasecmp_l_avx+0x518> - 42afa1: e9 bb 0f 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> - 42afa6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42afad: 00 00 00 - 42afb0: c5 e9 73 fa 0c vpslldq $0xc,%xmm2,%xmm2 - 42afb5: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42afb9: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42afbd: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42afc1: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42afc5: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42afc9: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42afce: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42afd2: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42afd6: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42afda: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42afde: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 - 42afe2: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 - 42afe6: c5 79 d7 ca vpmovmskb %xmm2,%r9d - 42afea: d3 ea shr %cl,%edx - 42afec: 41 d3 e9 shr %cl,%r9d - 42afef: 44 29 ca sub %r9d,%edx - 42aff2: 0f 85 d0 0f 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> - 42aff8: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 - 42affc: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42b003: 41 b9 04 00 00 00 mov $0x4,%r9d - 42b009: 4c 8d 57 04 lea 0x4(%rdi),%r10 - 42b00d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42b014: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42b01b: 48 89 ca mov %rcx,%rdx - 42b01e: 66 90 xchg %ax,%ax - 42b020: 49 83 c2 10 add $0x10,%r10 - 42b024: 0f 8f a6 00 00 00 jg 42b0d0 <__strcasecmp_l_avx+0x710> - 42b02a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42b02f: c4 e3 79 0f 44 17 f0 vpalignr $0x4,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42b036: 04 - 42b037: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42b03c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42b040: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42b044: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42b048: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42b04c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b050: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b055: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b059: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b05d: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42b061: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42b065: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42b06b: 0f 86 2f 0f 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42b071: 48 83 c2 10 add $0x10,%rdx - 42b075: 49 83 c2 10 add $0x10,%r10 - 42b079: 7f 55 jg 42b0d0 <__strcasecmp_l_avx+0x710> - 42b07b: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42b080: c4 e3 79 0f 44 17 f0 vpalignr $0x4,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42b087: 04 - 42b088: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42b08d: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42b091: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42b095: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42b099: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42b09d: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b0a1: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b0a6: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b0aa: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b0ae: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42b0b2: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42b0b6: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42b0bc: 0f 86 de 0e 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42b0c2: 48 83 c2 10 add $0x10,%rdx - 42b0c6: e9 55 ff ff ff jmpq 42b020 <__strcasecmp_l_avx+0x660> - 42b0cb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42b0d0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42b0d7: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 - 42b0dd: c5 f9 73 d8 04 vpsrldq $0x4,%xmm0,%xmm0 - 42b0e2: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 - 42b0e8: 83 f9 0b cmp $0xb,%ecx - 42b0eb: 0f 87 39 ff ff ff ja 42b02a <__strcasecmp_l_avx+0x66a> - 42b0f1: e9 6b 0e 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> - 42b0f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42b0fd: 00 00 00 - 42b100: c5 e9 73 fa 0b vpslldq $0xb,%xmm2,%xmm2 - 42b105: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42b109: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42b10d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42b111: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42b115: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b119: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b11e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b122: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b126: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42b12a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42b12e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 - 42b132: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 - 42b136: c5 79 d7 ca vpmovmskb %xmm2,%r9d - 42b13a: d3 ea shr %cl,%edx - 42b13c: 41 d3 e9 shr %cl,%r9d - 42b13f: 44 29 ca sub %r9d,%edx - 42b142: 0f 85 80 0e 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> - 42b148: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 - 42b14c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42b153: 41 b9 05 00 00 00 mov $0x5,%r9d - 42b159: 4c 8d 57 05 lea 0x5(%rdi),%r10 - 42b15d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42b164: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42b16b: 48 89 ca mov %rcx,%rdx - 42b16e: 66 90 xchg %ax,%ax - 42b170: 49 83 c2 10 add $0x10,%r10 - 42b174: 0f 8f a6 00 00 00 jg 42b220 <__strcasecmp_l_avx+0x860> - 42b17a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42b17f: c4 e3 79 0f 44 17 f0 vpalignr $0x5,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42b186: 05 - 42b187: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42b18c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42b190: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42b194: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42b198: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42b19c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b1a0: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b1a5: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b1a9: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b1ad: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42b1b1: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42b1b5: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42b1bb: 0f 86 df 0d 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42b1c1: 48 83 c2 10 add $0x10,%rdx - 42b1c5: 49 83 c2 10 add $0x10,%r10 - 42b1c9: 7f 55 jg 42b220 <__strcasecmp_l_avx+0x860> - 42b1cb: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42b1d0: c4 e3 79 0f 44 17 f0 vpalignr $0x5,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42b1d7: 05 - 42b1d8: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42b1dd: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42b1e1: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42b1e5: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42b1e9: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42b1ed: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b1f1: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b1f6: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b1fa: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b1fe: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42b202: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42b206: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42b20c: 0f 86 8e 0d 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42b212: 48 83 c2 10 add $0x10,%rdx - 42b216: e9 55 ff ff ff jmpq 42b170 <__strcasecmp_l_avx+0x7b0> - 42b21b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42b220: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42b227: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 - 42b22d: c5 f9 73 d8 05 vpsrldq $0x5,%xmm0,%xmm0 - 42b232: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 - 42b238: 83 f9 0a cmp $0xa,%ecx - 42b23b: 0f 87 39 ff ff ff ja 42b17a <__strcasecmp_l_avx+0x7ba> - 42b241: e9 1b 0d 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> - 42b246: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42b24d: 00 00 00 - 42b250: c5 e9 73 fa 0a vpslldq $0xa,%xmm2,%xmm2 - 42b255: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42b259: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42b25d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42b261: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42b265: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b269: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b26e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b272: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b276: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42b27a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42b27e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 - 42b282: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 - 42b286: c5 79 d7 ca vpmovmskb %xmm2,%r9d - 42b28a: d3 ea shr %cl,%edx - 42b28c: 41 d3 e9 shr %cl,%r9d - 42b28f: 44 29 ca sub %r9d,%edx - 42b292: 0f 85 30 0d 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> - 42b298: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 - 42b29c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42b2a3: 41 b9 06 00 00 00 mov $0x6,%r9d - 42b2a9: 4c 8d 57 06 lea 0x6(%rdi),%r10 - 42b2ad: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42b2b4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42b2bb: 48 89 ca mov %rcx,%rdx - 42b2be: 66 90 xchg %ax,%ax - 42b2c0: 49 83 c2 10 add $0x10,%r10 - 42b2c4: 0f 8f a6 00 00 00 jg 42b370 <__strcasecmp_l_avx+0x9b0> - 42b2ca: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42b2cf: c4 e3 79 0f 44 17 f0 vpalignr $0x6,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42b2d6: 06 - 42b2d7: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42b2dc: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42b2e0: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42b2e4: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42b2e8: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42b2ec: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b2f0: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b2f5: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b2f9: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b2fd: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42b301: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42b305: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42b30b: 0f 86 8f 0c 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42b311: 48 83 c2 10 add $0x10,%rdx - 42b315: 49 83 c2 10 add $0x10,%r10 - 42b319: 7f 55 jg 42b370 <__strcasecmp_l_avx+0x9b0> - 42b31b: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42b320: c4 e3 79 0f 44 17 f0 vpalignr $0x6,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42b327: 06 - 42b328: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42b32d: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42b331: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42b335: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42b339: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42b33d: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b341: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b346: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b34a: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b34e: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42b352: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42b356: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42b35c: 0f 86 3e 0c 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42b362: 48 83 c2 10 add $0x10,%rdx - 42b366: e9 55 ff ff ff jmpq 42b2c0 <__strcasecmp_l_avx+0x900> - 42b36b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42b370: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42b377: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 - 42b37d: c5 f9 73 d8 06 vpsrldq $0x6,%xmm0,%xmm0 - 42b382: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 - 42b388: 83 f9 09 cmp $0x9,%ecx - 42b38b: 0f 87 39 ff ff ff ja 42b2ca <__strcasecmp_l_avx+0x90a> - 42b391: e9 cb 0b 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> - 42b396: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42b39d: 00 00 00 - 42b3a0: c5 e9 73 fa 09 vpslldq $0x9,%xmm2,%xmm2 - 42b3a5: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42b3a9: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42b3ad: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42b3b1: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42b3b5: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b3b9: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b3be: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b3c2: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b3c6: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42b3ca: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42b3ce: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 - 42b3d2: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 - 42b3d6: c5 79 d7 ca vpmovmskb %xmm2,%r9d - 42b3da: d3 ea shr %cl,%edx - 42b3dc: 41 d3 e9 shr %cl,%r9d - 42b3df: 44 29 ca sub %r9d,%edx - 42b3e2: 0f 85 e0 0b 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> - 42b3e8: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 - 42b3ec: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42b3f3: 41 b9 07 00 00 00 mov $0x7,%r9d - 42b3f9: 4c 8d 57 07 lea 0x7(%rdi),%r10 - 42b3fd: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42b404: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42b40b: 48 89 ca mov %rcx,%rdx - 42b40e: 66 90 xchg %ax,%ax - 42b410: 49 83 c2 10 add $0x10,%r10 - 42b414: 0f 8f a6 00 00 00 jg 42b4c0 <__strcasecmp_l_avx+0xb00> - 42b41a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42b41f: c4 e3 79 0f 44 17 f0 vpalignr $0x7,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42b426: 07 - 42b427: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42b42c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42b430: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42b434: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42b438: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42b43c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b440: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b445: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b449: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b44d: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42b451: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42b455: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42b45b: 0f 86 3f 0b 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42b461: 48 83 c2 10 add $0x10,%rdx - 42b465: 49 83 c2 10 add $0x10,%r10 - 42b469: 7f 55 jg 42b4c0 <__strcasecmp_l_avx+0xb00> - 42b46b: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42b470: c4 e3 79 0f 44 17 f0 vpalignr $0x7,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42b477: 07 - 42b478: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42b47d: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42b481: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42b485: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42b489: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42b48d: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b491: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b496: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b49a: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b49e: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42b4a2: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42b4a6: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42b4ac: 0f 86 ee 0a 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42b4b2: 48 83 c2 10 add $0x10,%rdx - 42b4b6: e9 55 ff ff ff jmpq 42b410 <__strcasecmp_l_avx+0xa50> - 42b4bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42b4c0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42b4c7: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 - 42b4cd: c5 f9 73 d8 07 vpsrldq $0x7,%xmm0,%xmm0 - 42b4d2: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 - 42b4d8: 83 f9 08 cmp $0x8,%ecx - 42b4db: 0f 87 39 ff ff ff ja 42b41a <__strcasecmp_l_avx+0xa5a> - 42b4e1: e9 7b 0a 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> - 42b4e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42b4ed: 00 00 00 - 42b4f0: c5 e9 73 fa 08 vpslldq $0x8,%xmm2,%xmm2 - 42b4f5: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42b4f9: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42b4fd: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42b501: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42b505: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b509: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b50e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b512: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b516: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42b51a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42b51e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 - 42b522: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 - 42b526: c5 79 d7 ca vpmovmskb %xmm2,%r9d - 42b52a: d3 ea shr %cl,%edx - 42b52c: 41 d3 e9 shr %cl,%r9d - 42b52f: 44 29 ca sub %r9d,%edx - 42b532: 0f 85 90 0a 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> - 42b538: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 - 42b53c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42b543: 41 b9 08 00 00 00 mov $0x8,%r9d - 42b549: 4c 8d 57 08 lea 0x8(%rdi),%r10 - 42b54d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42b554: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42b55b: 48 89 ca mov %rcx,%rdx - 42b55e: 66 90 xchg %ax,%ax - 42b560: 49 83 c2 10 add $0x10,%r10 - 42b564: 0f 8f a6 00 00 00 jg 42b610 <__strcasecmp_l_avx+0xc50> - 42b56a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42b56f: c4 e3 79 0f 44 17 f0 vpalignr $0x8,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42b576: 08 - 42b577: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42b57c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42b580: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42b584: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42b588: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42b58c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b590: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b595: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b599: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b59d: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42b5a1: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42b5a5: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42b5ab: 0f 86 ef 09 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42b5b1: 48 83 c2 10 add $0x10,%rdx - 42b5b5: 49 83 c2 10 add $0x10,%r10 - 42b5b9: 7f 55 jg 42b610 <__strcasecmp_l_avx+0xc50> - 42b5bb: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42b5c0: c4 e3 79 0f 44 17 f0 vpalignr $0x8,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42b5c7: 08 - 42b5c8: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42b5cd: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42b5d1: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42b5d5: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42b5d9: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42b5dd: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b5e1: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b5e6: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b5ea: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b5ee: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42b5f2: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42b5f6: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42b5fc: 0f 86 9e 09 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42b602: 48 83 c2 10 add $0x10,%rdx - 42b606: e9 55 ff ff ff jmpq 42b560 <__strcasecmp_l_avx+0xba0> - 42b60b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42b610: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42b617: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 - 42b61d: c5 f9 73 d8 08 vpsrldq $0x8,%xmm0,%xmm0 - 42b622: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 - 42b628: 83 f9 07 cmp $0x7,%ecx - 42b62b: 0f 87 39 ff ff ff ja 42b56a <__strcasecmp_l_avx+0xbaa> - 42b631: e9 2b 09 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> - 42b636: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42b63d: 00 00 00 - 42b640: c5 e9 73 fa 07 vpslldq $0x7,%xmm2,%xmm2 - 42b645: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42b649: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42b64d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42b651: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42b655: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b659: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b65e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b662: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b666: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42b66a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42b66e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 - 42b672: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 - 42b676: c5 79 d7 ca vpmovmskb %xmm2,%r9d - 42b67a: d3 ea shr %cl,%edx - 42b67c: 41 d3 e9 shr %cl,%r9d - 42b67f: 44 29 ca sub %r9d,%edx - 42b682: 0f 85 40 09 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> - 42b688: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 - 42b68c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42b693: 41 b9 09 00 00 00 mov $0x9,%r9d - 42b699: 4c 8d 57 09 lea 0x9(%rdi),%r10 - 42b69d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42b6a4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42b6ab: 48 89 ca mov %rcx,%rdx - 42b6ae: 66 90 xchg %ax,%ax - 42b6b0: 49 83 c2 10 add $0x10,%r10 - 42b6b4: 0f 8f a6 00 00 00 jg 42b760 <__strcasecmp_l_avx+0xda0> - 42b6ba: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42b6bf: c4 e3 79 0f 44 17 f0 vpalignr $0x9,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42b6c6: 09 - 42b6c7: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42b6cc: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42b6d0: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42b6d4: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42b6d8: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42b6dc: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b6e0: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b6e5: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b6e9: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b6ed: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42b6f1: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42b6f5: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42b6fb: 0f 86 9f 08 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42b701: 48 83 c2 10 add $0x10,%rdx - 42b705: 49 83 c2 10 add $0x10,%r10 - 42b709: 7f 55 jg 42b760 <__strcasecmp_l_avx+0xda0> - 42b70b: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42b710: c4 e3 79 0f 44 17 f0 vpalignr $0x9,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42b717: 09 - 42b718: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42b71d: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42b721: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42b725: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42b729: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42b72d: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b731: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b736: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b73a: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b73e: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42b742: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42b746: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42b74c: 0f 86 4e 08 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42b752: 48 83 c2 10 add $0x10,%rdx - 42b756: e9 55 ff ff ff jmpq 42b6b0 <__strcasecmp_l_avx+0xcf0> - 42b75b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42b760: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42b767: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 - 42b76d: c5 f9 73 d8 09 vpsrldq $0x9,%xmm0,%xmm0 - 42b772: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 - 42b778: 83 f9 06 cmp $0x6,%ecx - 42b77b: 0f 87 39 ff ff ff ja 42b6ba <__strcasecmp_l_avx+0xcfa> - 42b781: e9 db 07 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> - 42b786: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42b78d: 00 00 00 - 42b790: c5 e9 73 fa 06 vpslldq $0x6,%xmm2,%xmm2 - 42b795: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42b799: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42b79d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42b7a1: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42b7a5: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b7a9: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b7ae: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b7b2: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b7b6: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42b7ba: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42b7be: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 - 42b7c2: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 - 42b7c6: c5 79 d7 ca vpmovmskb %xmm2,%r9d - 42b7ca: d3 ea shr %cl,%edx - 42b7cc: 41 d3 e9 shr %cl,%r9d - 42b7cf: 44 29 ca sub %r9d,%edx - 42b7d2: 0f 85 f0 07 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> - 42b7d8: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 - 42b7dc: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42b7e3: 41 b9 0a 00 00 00 mov $0xa,%r9d - 42b7e9: 4c 8d 57 0a lea 0xa(%rdi),%r10 - 42b7ed: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42b7f4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42b7fb: 48 89 ca mov %rcx,%rdx - 42b7fe: 66 90 xchg %ax,%ax - 42b800: 49 83 c2 10 add $0x10,%r10 - 42b804: 0f 8f a6 00 00 00 jg 42b8b0 <__strcasecmp_l_avx+0xef0> - 42b80a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42b80f: c4 e3 79 0f 44 17 f0 vpalignr $0xa,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42b816: 0a - 42b817: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42b81c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42b820: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42b824: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42b828: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42b82c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b830: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b835: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b839: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b83d: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42b841: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42b845: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42b84b: 0f 86 4f 07 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42b851: 48 83 c2 10 add $0x10,%rdx - 42b855: 49 83 c2 10 add $0x10,%r10 - 42b859: 7f 55 jg 42b8b0 <__strcasecmp_l_avx+0xef0> - 42b85b: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42b860: c4 e3 79 0f 44 17 f0 vpalignr $0xa,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42b867: 0a - 42b868: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42b86d: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42b871: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42b875: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42b879: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42b87d: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b881: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b886: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b88a: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b88e: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42b892: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42b896: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42b89c: 0f 86 fe 06 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42b8a2: 48 83 c2 10 add $0x10,%rdx - 42b8a6: e9 55 ff ff ff jmpq 42b800 <__strcasecmp_l_avx+0xe40> - 42b8ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42b8b0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42b8b7: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 - 42b8bd: c5 f9 73 d8 0a vpsrldq $0xa,%xmm0,%xmm0 - 42b8c2: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 - 42b8c8: 83 f9 05 cmp $0x5,%ecx - 42b8cb: 0f 87 39 ff ff ff ja 42b80a <__strcasecmp_l_avx+0xe4a> - 42b8d1: e9 8b 06 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> - 42b8d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42b8dd: 00 00 00 - 42b8e0: c5 e9 73 fa 05 vpslldq $0x5,%xmm2,%xmm2 - 42b8e5: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42b8e9: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42b8ed: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42b8f1: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42b8f5: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b8f9: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b8fe: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b902: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b906: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42b90a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42b90e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 - 42b912: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 - 42b916: c5 79 d7 ca vpmovmskb %xmm2,%r9d - 42b91a: d3 ea shr %cl,%edx - 42b91c: 41 d3 e9 shr %cl,%r9d - 42b91f: 44 29 ca sub %r9d,%edx - 42b922: 0f 85 a0 06 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> - 42b928: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 - 42b92c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42b933: 41 b9 0b 00 00 00 mov $0xb,%r9d - 42b939: 4c 8d 57 0b lea 0xb(%rdi),%r10 - 42b93d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42b944: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42b94b: 48 89 ca mov %rcx,%rdx - 42b94e: 66 90 xchg %ax,%ax - 42b950: 49 83 c2 10 add $0x10,%r10 - 42b954: 0f 8f a6 00 00 00 jg 42ba00 <__strcasecmp_l_avx+0x1040> - 42b95a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42b95f: c4 e3 79 0f 44 17 f0 vpalignr $0xb,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42b966: 0b - 42b967: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42b96c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42b970: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42b974: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42b978: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42b97c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b980: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b985: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b989: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b98d: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42b991: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42b995: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42b99b: 0f 86 ff 05 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42b9a1: 48 83 c2 10 add $0x10,%rdx - 42b9a5: 49 83 c2 10 add $0x10,%r10 - 42b9a9: 7f 55 jg 42ba00 <__strcasecmp_l_avx+0x1040> - 42b9ab: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42b9b0: c4 e3 79 0f 44 17 f0 vpalignr $0xb,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42b9b7: 0b - 42b9b8: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42b9bd: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42b9c1: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42b9c5: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42b9c9: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42b9cd: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42b9d1: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42b9d6: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42b9da: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42b9de: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42b9e2: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42b9e6: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42b9ec: 0f 86 ae 05 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42b9f2: 48 83 c2 10 add $0x10,%rdx - 42b9f6: e9 55 ff ff ff jmpq 42b950 <__strcasecmp_l_avx+0xf90> - 42b9fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42ba00: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42ba07: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 - 42ba0d: c5 f9 73 d8 0b vpsrldq $0xb,%xmm0,%xmm0 - 42ba12: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 - 42ba18: 83 f9 04 cmp $0x4,%ecx - 42ba1b: 0f 87 39 ff ff ff ja 42b95a <__strcasecmp_l_avx+0xf9a> - 42ba21: e9 3b 05 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> - 42ba26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42ba2d: 00 00 00 - 42ba30: c5 e9 73 fa 04 vpslldq $0x4,%xmm2,%xmm2 - 42ba35: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42ba39: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42ba3d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42ba41: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42ba45: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42ba49: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42ba4e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42ba52: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42ba56: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42ba5a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42ba5e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 - 42ba62: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 - 42ba66: c5 79 d7 ca vpmovmskb %xmm2,%r9d - 42ba6a: d3 ea shr %cl,%edx - 42ba6c: 41 d3 e9 shr %cl,%r9d - 42ba6f: 44 29 ca sub %r9d,%edx - 42ba72: 0f 85 50 05 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> - 42ba78: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 - 42ba7c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42ba83: 41 b9 0c 00 00 00 mov $0xc,%r9d - 42ba89: 4c 8d 57 0c lea 0xc(%rdi),%r10 - 42ba8d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42ba94: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42ba9b: 48 89 ca mov %rcx,%rdx - 42ba9e: 66 90 xchg %ax,%ax - 42baa0: 49 83 c2 10 add $0x10,%r10 - 42baa4: 0f 8f a6 00 00 00 jg 42bb50 <__strcasecmp_l_avx+0x1190> - 42baaa: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42baaf: c4 e3 79 0f 44 17 f0 vpalignr $0xc,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42bab6: 0c - 42bab7: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42babc: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42bac0: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42bac4: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42bac8: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42bacc: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42bad0: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42bad5: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42bad9: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42badd: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42bae1: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42bae5: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42baeb: 0f 86 af 04 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42baf1: 48 83 c2 10 add $0x10,%rdx - 42baf5: 49 83 c2 10 add $0x10,%r10 - 42baf9: 7f 55 jg 42bb50 <__strcasecmp_l_avx+0x1190> - 42bafb: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42bb00: c4 e3 79 0f 44 17 f0 vpalignr $0xc,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42bb07: 0c - 42bb08: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42bb0d: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42bb11: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42bb15: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42bb19: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42bb1d: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42bb21: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42bb26: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42bb2a: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42bb2e: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42bb32: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42bb36: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42bb3c: 0f 86 5e 04 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42bb42: 48 83 c2 10 add $0x10,%rdx - 42bb46: e9 55 ff ff ff jmpq 42baa0 <__strcasecmp_l_avx+0x10e0> - 42bb4b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42bb50: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42bb57: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 - 42bb5d: c5 f9 73 d8 0c vpsrldq $0xc,%xmm0,%xmm0 - 42bb62: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 - 42bb68: 83 f9 03 cmp $0x3,%ecx - 42bb6b: 0f 87 39 ff ff ff ja 42baaa <__strcasecmp_l_avx+0x10ea> - 42bb71: e9 eb 03 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> - 42bb76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42bb7d: 00 00 00 - 42bb80: c5 e9 73 fa 03 vpslldq $0x3,%xmm2,%xmm2 - 42bb85: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42bb89: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42bb8d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42bb91: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42bb95: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42bb99: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42bb9e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42bba2: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42bba6: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42bbaa: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42bbae: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 - 42bbb2: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 - 42bbb6: c5 79 d7 ca vpmovmskb %xmm2,%r9d - 42bbba: d3 ea shr %cl,%edx - 42bbbc: 41 d3 e9 shr %cl,%r9d - 42bbbf: 44 29 ca sub %r9d,%edx - 42bbc2: 0f 85 00 04 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> - 42bbc8: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 - 42bbcc: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42bbd3: 41 b9 0d 00 00 00 mov $0xd,%r9d - 42bbd9: 4c 8d 57 0d lea 0xd(%rdi),%r10 - 42bbdd: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42bbe4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42bbeb: 48 89 ca mov %rcx,%rdx - 42bbee: 66 90 xchg %ax,%ax - 42bbf0: 49 83 c2 10 add $0x10,%r10 - 42bbf4: 0f 8f a6 00 00 00 jg 42bca0 <__strcasecmp_l_avx+0x12e0> - 42bbfa: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42bbff: c4 e3 79 0f 44 17 f0 vpalignr $0xd,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42bc06: 0d - 42bc07: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42bc0c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42bc10: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42bc14: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42bc18: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42bc1c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42bc20: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42bc25: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42bc29: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42bc2d: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42bc31: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42bc35: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42bc3b: 0f 86 5f 03 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42bc41: 48 83 c2 10 add $0x10,%rdx - 42bc45: 49 83 c2 10 add $0x10,%r10 - 42bc49: 7f 55 jg 42bca0 <__strcasecmp_l_avx+0x12e0> - 42bc4b: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42bc50: c4 e3 79 0f 44 17 f0 vpalignr $0xd,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42bc57: 0d - 42bc58: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42bc5d: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42bc61: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42bc65: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42bc69: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42bc6d: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42bc71: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42bc76: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42bc7a: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42bc7e: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42bc82: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42bc86: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42bc8c: 0f 86 0e 03 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42bc92: 48 83 c2 10 add $0x10,%rdx - 42bc96: e9 55 ff ff ff jmpq 42bbf0 <__strcasecmp_l_avx+0x1230> - 42bc9b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42bca0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42bca7: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 - 42bcad: c5 f9 73 d8 0d vpsrldq $0xd,%xmm0,%xmm0 - 42bcb2: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 - 42bcb8: 83 f9 02 cmp $0x2,%ecx - 42bcbb: 0f 87 39 ff ff ff ja 42bbfa <__strcasecmp_l_avx+0x123a> - 42bcc1: e9 9b 02 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> - 42bcc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42bccd: 00 00 00 - 42bcd0: c5 e9 73 fa 02 vpslldq $0x2,%xmm2,%xmm2 - 42bcd5: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42bcd9: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42bcdd: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42bce1: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42bce5: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42bce9: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42bcee: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42bcf2: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42bcf6: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42bcfa: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42bcfe: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 - 42bd02: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 - 42bd06: c5 79 d7 ca vpmovmskb %xmm2,%r9d - 42bd0a: d3 ea shr %cl,%edx - 42bd0c: 41 d3 e9 shr %cl,%r9d - 42bd0f: 44 29 ca sub %r9d,%edx - 42bd12: 0f 85 b0 02 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> - 42bd18: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 - 42bd1c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42bd23: 41 b9 0e 00 00 00 mov $0xe,%r9d - 42bd29: 4c 8d 57 0e lea 0xe(%rdi),%r10 - 42bd2d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42bd34: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42bd3b: 48 89 ca mov %rcx,%rdx - 42bd3e: 66 90 xchg %ax,%ax - 42bd40: 49 83 c2 10 add $0x10,%r10 - 42bd44: 0f 8f a6 00 00 00 jg 42bdf0 <__strcasecmp_l_avx+0x1430> - 42bd4a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42bd4f: c4 e3 79 0f 44 17 f0 vpalignr $0xe,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42bd56: 0e - 42bd57: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42bd5c: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42bd60: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42bd64: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42bd68: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42bd6c: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42bd70: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42bd75: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42bd79: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42bd7d: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42bd81: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42bd85: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42bd8b: 0f 86 0f 02 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42bd91: 48 83 c2 10 add $0x10,%rdx - 42bd95: 49 83 c2 10 add $0x10,%r10 - 42bd99: 7f 55 jg 42bdf0 <__strcasecmp_l_avx+0x1430> - 42bd9b: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42bda0: c4 e3 79 0f 44 17 f0 vpalignr $0xe,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42bda7: 0e - 42bda8: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42bdad: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42bdb1: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42bdb5: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42bdb9: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42bdbd: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42bdc1: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42bdc6: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42bdca: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42bdce: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42bdd2: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42bdd6: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42bddc: 0f 86 be 01 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42bde2: 48 83 c2 10 add $0x10,%rdx - 42bde6: e9 55 ff ff ff jmpq 42bd40 <__strcasecmp_l_avx+0x1380> - 42bdeb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42bdf0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42bdf7: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 - 42bdfd: c5 f9 73 d8 0e vpsrldq $0xe,%xmm0,%xmm0 - 42be02: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 - 42be08: 83 f9 01 cmp $0x1,%ecx - 42be0b: 0f 87 39 ff ff ff ja 42bd4a <__strcasecmp_l_avx+0x138a> - 42be11: e9 4b 01 00 00 jmpq 42bf61 <__strcasecmp_l_avx+0x15a1> - 42be16: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42be1d: 00 00 00 - 42be20: c5 e9 73 fa 01 vpslldq $0x1,%xmm2,%xmm2 - 42be25: c5 f1 64 fc vpcmpgtb %xmm4,%xmm1,%xmm7 - 42be29: c5 71 64 c5 vpcmpgtb %xmm5,%xmm1,%xmm8 - 42be2d: c5 69 64 cc vpcmpgtb %xmm4,%xmm2,%xmm9 - 42be31: c5 69 64 d5 vpcmpgtb %xmm5,%xmm2,%xmm10 - 42be35: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42be39: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42be3e: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42be42: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42be46: c5 b9 eb c9 vpor %xmm1,%xmm8,%xmm1 - 42be4a: c5 a9 eb d2 vpor %xmm2,%xmm10,%xmm2 - 42be4e: c5 e9 74 d1 vpcmpeqb %xmm1,%xmm2,%xmm2 - 42be52: c5 e9 f8 d0 vpsubb %xmm0,%xmm2,%xmm2 - 42be56: c5 79 d7 ca vpmovmskb %xmm2,%r9d - 42be5a: d3 ea shr %cl,%edx - 42be5c: 41 d3 e9 shr %cl,%r9d - 42be5f: 44 29 ca sub %r9d,%edx - 42be62: 0f 85 60 01 00 00 jne 42bfc8 <__strcasecmp_l_avx+0x1608> - 42be68: c5 f9 6f 1f vmovdqa (%rdi),%xmm3 - 42be6c: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42be73: 41 b9 0f 00 00 00 mov $0xf,%r9d - 42be79: 4c 8d 57 0f lea 0xf(%rdi),%r10 - 42be7d: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42be84: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42be8b: 48 89 ca mov %rcx,%rdx - 42be8e: 66 90 xchg %ax,%ax - 42be90: 49 83 c2 10 add $0x10,%r10 - 42be94: 0f 8f a6 00 00 00 jg 42bf40 <__strcasecmp_l_avx+0x1580> - 42be9a: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42be9f: c4 e3 79 0f 44 17 f0 vpalignr $0xf,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42bea6: 0f - 42bea7: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42beac: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42beb0: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42beb4: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42beb8: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42bebc: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42bec0: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42bec5: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42bec9: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42becd: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42bed1: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42bed5: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42bedb: 0f 86 bf 00 00 00 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42bee1: 48 83 c2 10 add $0x10,%rdx - 42bee5: 49 83 c2 10 add $0x10,%r10 - 42bee9: 7f 55 jg 42bf40 <__strcasecmp_l_avx+0x1580> - 42beeb: c5 f9 6f 04 17 vmovdqa (%rdi,%rdx,1),%xmm0 - 42bef0: c4 e3 79 0f 44 17 f0 vpalignr $0xf,-0x10(%rdi,%rdx,1),%xmm0,%xmm0 - 42bef7: 0f - 42bef8: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42befd: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42bf01: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42bf05: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42bf09: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42bf0d: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42bf11: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42bf16: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42bf1a: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42bf1e: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42bf22: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42bf26: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42bf2c: 76 72 jbe 42bfa0 <__strcasecmp_l_avx+0x15e0> - 42bf2e: 48 83 c2 10 add $0x10,%rdx - 42bf32: e9 59 ff ff ff jmpq 42be90 <__strcasecmp_l_avx+0x14d0> - 42bf37: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42bf3e: 00 00 - 42bf40: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42bf47: c5 f9 6f 44 17 f0 vmovdqa -0x10(%rdi,%rdx,1),%xmm0 - 42bf4d: c5 f9 73 d8 0f vpsrldq $0xf,%xmm0,%xmm0 - 42bf52: c4 e3 79 63 c0 3a vpcmpistri $0x3a,%xmm0,%xmm0 - 42bf58: 83 f9 00 cmp $0x0,%ecx - 42bf5b: 0f 87 39 ff ff ff ja 42be9a <__strcasecmp_l_avx+0x14da> - 42bf61: c5 f9 6f 0c 16 vmovdqa (%rsi,%rdx,1),%xmm1 - 42bf66: c5 f9 64 fc vpcmpgtb %xmm4,%xmm0,%xmm7 - 42bf6a: c5 79 64 c5 vpcmpgtb %xmm5,%xmm0,%xmm8 - 42bf6e: c5 71 64 cc vpcmpgtb %xmm4,%xmm1,%xmm9 - 42bf72: c5 71 64 d5 vpcmpgtb %xmm5,%xmm1,%xmm10 - 42bf76: c5 39 df c7 vpandn %xmm7,%xmm8,%xmm8 - 42bf7a: c4 41 29 df d1 vpandn %xmm9,%xmm10,%xmm10 - 42bf7f: c5 39 db c6 vpand %xmm6,%xmm8,%xmm8 - 42bf83: c5 29 db d6 vpand %xmm6,%xmm10,%xmm10 - 42bf87: c5 b9 eb c0 vpor %xmm0,%xmm8,%xmm0 - 42bf8b: c5 a9 eb c9 vpor %xmm1,%xmm10,%xmm1 - 42bf8f: c4 e3 79 63 c1 1a vpcmpistri $0x1a,%xmm1,%xmm0 - 42bf95: 90 nop - 42bf96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42bf9d: 00 00 00 - 42bfa0: 73 5a jae 42bffc <__strcasecmp_l_avx+0x163c> - 42bfa2: 48 01 ca add %rcx,%rdx - 42bfa5: 4a 8d 7c 0f f0 lea -0x10(%rdi,%r9,1),%rdi - 42bfaa: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax - 42bfae: 0f b6 14 16 movzbl (%rsi,%rdx,1),%edx - 42bfb2: 45 85 c0 test %r8d,%r8d - 42bfb5: 74 01 je 42bfb8 <__strcasecmp_l_avx+0x15f8> - 42bfb7: 92 xchg %eax,%edx - 42bfb8: 48 8d 0d 81 b5 07 00 lea 0x7b581(%rip),%rcx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> - 42bfbf: 8b 14 91 mov (%rcx,%rdx,4),%edx - 42bfc2: 8b 04 81 mov (%rcx,%rax,4),%eax - 42bfc5: 29 d0 sub %edx,%eax - 42bfc7: c3 retq - 42bfc8: 48 8d 3c 07 lea (%rdi,%rax,1),%rdi - 42bfcc: 48 8d 34 0e lea (%rsi,%rcx,1),%rsi - 42bfd0: 45 85 c0 test %r8d,%r8d - 42bfd3: 74 0b je 42bfe0 <__strcasecmp_l_avx+0x1620> - 42bfd5: 48 87 f7 xchg %rsi,%rdi - 42bfd8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42bfdf: 00 - 42bfe0: 48 0f bc d2 bsf %rdx,%rdx - 42bfe4: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx - 42bfe8: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax - 42bfec: 48 8d 15 4d b5 07 00 lea 0x7b54d(%rip),%rdx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> - 42bff3: 8b 0c 8a mov (%rdx,%rcx,4),%ecx - 42bff6: 8b 04 82 mov (%rdx,%rax,4),%eax - 42bff9: 29 c8 sub %ecx,%eax - 42bffb: c3 retq - 42bffc: 31 c0 xor %eax,%eax - 42bffe: c3 retq - 42bfff: 90 nop - 42c000: 0f b6 0e movzbl (%rsi),%ecx - 42c003: 0f b6 07 movzbl (%rdi),%eax - 42c006: 48 8d 15 33 b5 07 00 lea 0x7b533(%rip),%rdx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> - 42c00d: 8b 0c 8a mov (%rdx,%rcx,4),%ecx - 42c010: 8b 04 82 mov (%rdx,%rax,4),%eax - 42c013: 29 c8 sub %ecx,%eax - 42c015: c3 retq - 42c016: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42c01d: 00 00 00 - -000000000042c020 : - 42c020: 48 83 fa 20 cmp $0x20,%rdx - 42c024: 48 89 f8 mov %rdi,%rax - 42c027: 73 77 jae 42c0a0 - 42c029: f6 c2 01 test $0x1,%dl - 42c02c: 74 0b je 42c039 - 42c02e: 0f b6 0e movzbl (%rsi),%ecx - 42c031: 88 0f mov %cl,(%rdi) - 42c033: 48 ff c6 inc %rsi - 42c036: 48 ff c7 inc %rdi - 42c039: f6 c2 02 test $0x2,%dl - 42c03c: 74 12 je 42c050 - 42c03e: 0f b7 0e movzwl (%rsi),%ecx - 42c041: 66 89 0f mov %cx,(%rdi) - 42c044: 48 83 c6 02 add $0x2,%rsi - 42c048: 48 83 c7 02 add $0x2,%rdi - 42c04c: 0f 1f 40 00 nopl 0x0(%rax) - 42c050: f6 c2 04 test $0x4,%dl - 42c053: 74 0c je 42c061 - 42c055: 8b 0e mov (%rsi),%ecx - 42c057: 89 0f mov %ecx,(%rdi) - 42c059: 48 83 c6 04 add $0x4,%rsi - 42c05d: 48 83 c7 04 add $0x4,%rdi - 42c061: f6 c2 08 test $0x8,%dl - 42c064: 74 0e je 42c074 - 42c066: 48 8b 0e mov (%rsi),%rcx - 42c069: 48 89 0f mov %rcx,(%rdi) - 42c06c: 48 83 c6 08 add $0x8,%rsi - 42c070: 48 83 c7 08 add $0x8,%rdi - 42c074: 81 e2 f0 00 00 00 and $0xf0,%edx - 42c07a: 74 1f je 42c09b - 42c07c: 0f 1f 40 00 nopl 0x0(%rax) - 42c080: 48 8b 0e mov (%rsi),%rcx - 42c083: 4c 8b 46 08 mov 0x8(%rsi),%r8 - 42c087: 48 89 0f mov %rcx,(%rdi) - 42c08a: 4c 89 47 08 mov %r8,0x8(%rdi) - 42c08e: 83 ea 10 sub $0x10,%edx - 42c091: 48 8d 76 10 lea 0x10(%rsi),%rsi - 42c095: 48 8d 7f 10 lea 0x10(%rdi),%rdi - 42c099: 75 e5 jne 42c080 - 42c09b: f3 c3 repz retq - 42c09d: 0f 1f 00 nopl (%rax) - 42c0a0: 48 89 44 24 f8 mov %rax,-0x8(%rsp) - 42c0a5: 89 f1 mov %esi,%ecx - 42c0a7: 83 e1 07 and $0x7,%ecx - 42c0aa: 74 34 je 42c0e0 - 42c0ac: 48 8d 54 11 f8 lea -0x8(%rcx,%rdx,1),%rdx - 42c0b1: 83 e9 08 sub $0x8,%ecx - 42c0b4: 66 90 xchg %ax,%ax - 42c0b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42c0bd: 00 00 00 - 42c0c0: 0f b6 06 movzbl (%rsi),%eax - 42c0c3: 88 07 mov %al,(%rdi) - 42c0c5: ff c1 inc %ecx - 42c0c7: 48 8d 76 01 lea 0x1(%rsi),%rsi - 42c0cb: 48 8d 7f 01 lea 0x1(%rdi),%rdi - 42c0cf: 75 ef jne 42c0c0 - 42c0d1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42c0d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42c0dd: 00 00 00 - 42c0e0: 48 81 fa 00 04 00 00 cmp $0x400,%rdx - 42c0e7: 77 77 ja 42c160 - 42c0e9: 89 d1 mov %edx,%ecx - 42c0eb: c1 e9 05 shr $0x5,%ecx - 42c0ee: 74 60 je 42c150 - 42c0f0: ff c9 dec %ecx - 42c0f2: 48 8b 06 mov (%rsi),%rax - 42c0f5: 4c 8b 46 08 mov 0x8(%rsi),%r8 - 42c0f9: 4c 8b 4e 10 mov 0x10(%rsi),%r9 - 42c0fd: 4c 8b 56 18 mov 0x18(%rsi),%r10 - 42c101: 48 89 07 mov %rax,(%rdi) - 42c104: 4c 89 47 08 mov %r8,0x8(%rdi) - 42c108: 4c 89 4f 10 mov %r9,0x10(%rdi) - 42c10c: 4c 89 57 18 mov %r10,0x18(%rdi) - 42c110: 48 8d 76 20 lea 0x20(%rsi),%rsi - 42c114: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 42c118: 74 36 je 42c150 - 42c11a: ff c9 dec %ecx - 42c11c: 48 8b 06 mov (%rsi),%rax - 42c11f: 4c 8b 46 08 mov 0x8(%rsi),%r8 - 42c123: 4c 8b 4e 10 mov 0x10(%rsi),%r9 - 42c127: 4c 8b 56 18 mov 0x18(%rsi),%r10 - 42c12b: 48 89 07 mov %rax,(%rdi) - 42c12e: 4c 89 47 08 mov %r8,0x8(%rdi) - 42c132: 4c 89 4f 10 mov %r9,0x10(%rdi) - 42c136: 4c 89 57 18 mov %r10,0x18(%rdi) - 42c13a: 48 8d 76 20 lea 0x20(%rsi),%rsi - 42c13e: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 42c142: 75 ac jne 42c0f0 - 42c144: 66 90 xchg %ax,%ax - 42c146: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42c14d: 00 00 00 - 42c150: 83 e2 1f and $0x1f,%edx - 42c153: 48 8b 44 24 f8 mov -0x8(%rsp),%rax - 42c158: 0f 85 cb fe ff ff jne 42c029 - 42c15e: f3 c3 repz retq - 42c160: 4c 8b 1d 69 ef 29 00 mov 0x29ef69(%rip),%r11 # 6cb0d0 <__x86_data_cache_size_half> - 42c167: 49 39 d3 cmp %rdx,%r11 - 42c16a: 4c 0f 47 da cmova %rdx,%r11 - 42c16e: 4c 89 d9 mov %r11,%rcx - 42c171: 49 83 e3 f8 and $0xfffffffffffffff8,%r11 - 42c175: 48 c1 e9 03 shr $0x3,%rcx - 42c179: 74 05 je 42c180 - 42c17b: f3 48 a5 rep movsq %ds:(%rsi),%es:(%rdi) - 42c17e: 66 90 xchg %ax,%ax - 42c180: 4c 29 da sub %r11,%rdx - 42c183: 48 f7 c2 f8 ff ff ff test $0xfffffffffffffff8,%rdx - 42c18a: 75 14 jne 42c1a0 - 42c18c: 83 e2 07 and $0x7,%edx - 42c18f: 48 8b 44 24 f8 mov -0x8(%rsp),%rax - 42c194: 0f 85 8f fe ff ff jne 42c029 - 42c19a: f3 c3 repz retq - 42c19c: 0f 1f 40 00 nopl 0x0(%rax) - 42c1a0: 4c 8b 05 09 ef 29 00 mov 0x29ef09(%rip),%r8 # 6cb0b0 <__x86_shared_cache_size_half> - 42c1a7: 49 39 d0 cmp %rdx,%r8 - 42c1aa: 4c 0f 47 c2 cmova %rdx,%r8 - 42c1ae: 4c 89 c1 mov %r8,%rcx - 42c1b1: 49 83 e0 c0 and $0xffffffffffffffc0,%r8 - 42c1b5: 48 c1 e9 06 shr $0x6,%rcx - 42c1b9: 0f 84 ab 01 00 00 je 42c36a - 42c1bf: 4c 89 74 24 f0 mov %r14,-0x10(%rsp) - 42c1c4: 4c 89 6c 24 e8 mov %r13,-0x18(%rsp) - 42c1c9: 4c 89 64 24 e0 mov %r12,-0x20(%rsp) - 42c1ce: 48 89 5c 24 d8 mov %rbx,-0x28(%rsp) - 42c1d3: 83 3d de 0f 2a 00 00 cmpl $0x0,0x2a0fde(%rip) # 6cd1b8 <__x86_prefetchw> - 42c1da: 0f 84 c0 00 00 00 je 42c2a0 - 42c1e0: 48 ff c9 dec %rcx - 42c1e3: 48 8b 06 mov (%rsi),%rax - 42c1e6: 48 8b 5e 08 mov 0x8(%rsi),%rbx - 42c1ea: 4c 8b 4e 10 mov 0x10(%rsi),%r9 - 42c1ee: 4c 8b 56 18 mov 0x18(%rsi),%r10 - 42c1f2: 4c 8b 5e 20 mov 0x20(%rsi),%r11 - 42c1f6: 4c 8b 66 28 mov 0x28(%rsi),%r12 - 42c1fa: 4c 8b 6e 30 mov 0x30(%rsi),%r13 - 42c1fe: 4c 8b 76 38 mov 0x38(%rsi),%r14 - 42c202: 0f 18 8e 80 03 00 00 prefetcht0 0x380(%rsi) - 42c209: 0f 18 8e c0 03 00 00 prefetcht0 0x3c0(%rsi) - 42c210: 48 89 07 mov %rax,(%rdi) - 42c213: 48 89 5f 08 mov %rbx,0x8(%rdi) - 42c217: 4c 89 4f 10 mov %r9,0x10(%rdi) - 42c21b: 4c 89 57 18 mov %r10,0x18(%rdi) - 42c21f: 4c 89 5f 20 mov %r11,0x20(%rdi) - 42c223: 4c 89 67 28 mov %r12,0x28(%rdi) - 42c227: 4c 89 6f 30 mov %r13,0x30(%rdi) - 42c22b: 4c 89 77 38 mov %r14,0x38(%rdi) - 42c22f: 48 8d 76 40 lea 0x40(%rsi),%rsi - 42c233: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 42c237: 0f 84 19 01 00 00 je 42c356 - 42c23d: 48 ff c9 dec %rcx - 42c240: 48 8b 06 mov (%rsi),%rax - 42c243: 48 8b 5e 08 mov 0x8(%rsi),%rbx - 42c247: 4c 8b 4e 10 mov 0x10(%rsi),%r9 - 42c24b: 4c 8b 56 18 mov 0x18(%rsi),%r10 - 42c24f: 4c 8b 5e 20 mov 0x20(%rsi),%r11 - 42c253: 4c 8b 66 28 mov 0x28(%rsi),%r12 - 42c257: 4c 8b 6e 30 mov 0x30(%rsi),%r13 - 42c25b: 4c 8b 76 38 mov 0x38(%rsi),%r14 - 42c25f: 48 89 07 mov %rax,(%rdi) - 42c262: 48 89 5f 08 mov %rbx,0x8(%rdi) - 42c266: 4c 89 4f 10 mov %r9,0x10(%rdi) - 42c26a: 4c 89 57 18 mov %r10,0x18(%rdi) - 42c26e: 4c 89 5f 20 mov %r11,0x20(%rdi) - 42c272: 4c 89 67 28 mov %r12,0x28(%rdi) - 42c276: 4c 89 6f 30 mov %r13,0x30(%rdi) - 42c27a: 4c 89 77 38 mov %r14,0x38(%rdi) - 42c27e: 0f 0d 8f 40 03 00 00 prefetchw 0x340(%rdi) - 42c285: 0f 0d 8f 80 03 00 00 prefetchw 0x380(%rdi) - 42c28c: 48 8d 76 40 lea 0x40(%rsi),%rsi - 42c290: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 42c294: 0f 85 46 ff ff ff jne 42c1e0 - 42c29a: e9 b7 00 00 00 jmpq 42c356 - 42c29f: 90 nop - 42c2a0: 48 ff c9 dec %rcx - 42c2a3: 48 8b 06 mov (%rsi),%rax - 42c2a6: 48 8b 5e 08 mov 0x8(%rsi),%rbx - 42c2aa: 4c 8b 4e 10 mov 0x10(%rsi),%r9 - 42c2ae: 4c 8b 56 18 mov 0x18(%rsi),%r10 - 42c2b2: 4c 8b 5e 20 mov 0x20(%rsi),%r11 - 42c2b6: 4c 8b 66 28 mov 0x28(%rsi),%r12 - 42c2ba: 4c 8b 6e 30 mov 0x30(%rsi),%r13 - 42c2be: 4c 8b 76 38 mov 0x38(%rsi),%r14 - 42c2c2: 0f 18 8e 80 03 00 00 prefetcht0 0x380(%rsi) - 42c2c9: 0f 18 8e c0 03 00 00 prefetcht0 0x3c0(%rsi) - 42c2d0: 48 89 07 mov %rax,(%rdi) - 42c2d3: 48 89 5f 08 mov %rbx,0x8(%rdi) - 42c2d7: 4c 89 4f 10 mov %r9,0x10(%rdi) - 42c2db: 4c 89 57 18 mov %r10,0x18(%rdi) - 42c2df: 4c 89 5f 20 mov %r11,0x20(%rdi) - 42c2e3: 4c 89 67 28 mov %r12,0x28(%rdi) - 42c2e7: 4c 89 6f 30 mov %r13,0x30(%rdi) - 42c2eb: 4c 89 77 38 mov %r14,0x38(%rdi) - 42c2ef: 48 8d 76 40 lea 0x40(%rsi),%rsi - 42c2f3: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 42c2f7: 74 5d je 42c356 - 42c2f9: 48 ff c9 dec %rcx - 42c2fc: 48 8b 06 mov (%rsi),%rax - 42c2ff: 48 8b 5e 08 mov 0x8(%rsi),%rbx - 42c303: 4c 8b 4e 10 mov 0x10(%rsi),%r9 - 42c307: 4c 8b 56 18 mov 0x18(%rsi),%r10 - 42c30b: 4c 8b 5e 20 mov 0x20(%rsi),%r11 - 42c30f: 4c 8b 66 28 mov 0x28(%rsi),%r12 - 42c313: 4c 8b 6e 30 mov 0x30(%rsi),%r13 - 42c317: 4c 8b 76 38 mov 0x38(%rsi),%r14 - 42c31b: 0f 18 8f 40 03 00 00 prefetcht0 0x340(%rdi) - 42c322: 0f 18 8f 80 03 00 00 prefetcht0 0x380(%rdi) - 42c329: 48 89 07 mov %rax,(%rdi) - 42c32c: 48 89 5f 08 mov %rbx,0x8(%rdi) - 42c330: 4c 89 4f 10 mov %r9,0x10(%rdi) - 42c334: 4c 89 57 18 mov %r10,0x18(%rdi) - 42c338: 4c 89 5f 20 mov %r11,0x20(%rdi) - 42c33c: 4c 89 67 28 mov %r12,0x28(%rdi) - 42c340: 4c 89 6f 30 mov %r13,0x30(%rdi) - 42c344: 4c 89 77 38 mov %r14,0x38(%rdi) - 42c348: 48 8d 76 40 lea 0x40(%rsi),%rsi - 42c34c: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 42c350: 0f 85 4a ff ff ff jne 42c2a0 - 42c356: 48 8b 5c 24 d8 mov -0x28(%rsp),%rbx - 42c35b: 4c 8b 64 24 e0 mov -0x20(%rsp),%r12 - 42c360: 4c 8b 6c 24 e8 mov -0x18(%rsp),%r13 - 42c365: 4c 8b 74 24 f0 mov -0x10(%rsp),%r14 - 42c36a: 4c 29 c2 sub %r8,%rdx - 42c36d: 48 f7 c2 c0 ff ff ff test $0xffffffffffffffc0,%rdx - 42c374: 75 1a jne 42c390 - 42c376: 83 e2 3f and $0x3f,%edx - 42c379: 48 8b 44 24 f8 mov -0x8(%rsp),%rax - 42c37e: 0f 85 a5 fc ff ff jne 42c029 - 42c384: f3 c3 repz retq - 42c386: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42c38d: 00 00 00 - 42c390: 48 89 d1 mov %rdx,%rcx - 42c393: 48 c1 e9 07 shr $0x7,%rcx - 42c397: 0f 84 d8 00 00 00 je 42c475 - 42c39d: 4c 89 74 24 f0 mov %r14,-0x10(%rsp) - 42c3a2: 4c 89 6c 24 e8 mov %r13,-0x18(%rsp) - 42c3a7: 4c 89 64 24 e0 mov %r12,-0x20(%rsp) - 42c3ac: 0f 1f 40 00 nopl 0x0(%rax) - 42c3b0: 0f 18 86 00 03 00 00 prefetchnta 0x300(%rsi) - 42c3b7: 0f 18 86 40 03 00 00 prefetchnta 0x340(%rsi) - 42c3be: 48 ff c9 dec %rcx - 42c3c1: 48 8b 06 mov (%rsi),%rax - 42c3c4: 4c 8b 46 08 mov 0x8(%rsi),%r8 - 42c3c8: 4c 8b 4e 10 mov 0x10(%rsi),%r9 - 42c3cc: 4c 8b 56 18 mov 0x18(%rsi),%r10 - 42c3d0: 4c 8b 5e 20 mov 0x20(%rsi),%r11 - 42c3d4: 4c 8b 66 28 mov 0x28(%rsi),%r12 - 42c3d8: 4c 8b 6e 30 mov 0x30(%rsi),%r13 - 42c3dc: 4c 8b 76 38 mov 0x38(%rsi),%r14 - 42c3e0: 48 0f c3 07 movnti %rax,(%rdi) - 42c3e4: 4c 0f c3 47 08 movnti %r8,0x8(%rdi) - 42c3e9: 4c 0f c3 4f 10 movnti %r9,0x10(%rdi) - 42c3ee: 4c 0f c3 57 18 movnti %r10,0x18(%rdi) - 42c3f3: 4c 0f c3 5f 20 movnti %r11,0x20(%rdi) - 42c3f8: 4c 0f c3 67 28 movnti %r12,0x28(%rdi) - 42c3fd: 4c 0f c3 6f 30 movnti %r13,0x30(%rdi) - 42c402: 4c 0f c3 77 38 movnti %r14,0x38(%rdi) - 42c407: 48 8b 46 40 mov 0x40(%rsi),%rax - 42c40b: 4c 8b 46 48 mov 0x48(%rsi),%r8 - 42c40f: 4c 8b 4e 50 mov 0x50(%rsi),%r9 - 42c413: 4c 8b 56 58 mov 0x58(%rsi),%r10 - 42c417: 4c 8b 5e 60 mov 0x60(%rsi),%r11 - 42c41b: 4c 8b 66 68 mov 0x68(%rsi),%r12 - 42c41f: 4c 8b 6e 70 mov 0x70(%rsi),%r13 - 42c423: 4c 8b 76 78 mov 0x78(%rsi),%r14 - 42c427: 48 0f c3 47 40 movnti %rax,0x40(%rdi) - 42c42c: 4c 0f c3 47 48 movnti %r8,0x48(%rdi) - 42c431: 4c 0f c3 4f 50 movnti %r9,0x50(%rdi) - 42c436: 4c 0f c3 57 58 movnti %r10,0x58(%rdi) - 42c43b: 4c 0f c3 5f 60 movnti %r11,0x60(%rdi) - 42c440: 4c 0f c3 67 68 movnti %r12,0x68(%rdi) - 42c445: 4c 0f c3 6f 70 movnti %r13,0x70(%rdi) - 42c44a: 4c 0f c3 77 78 movnti %r14,0x78(%rdi) - 42c44f: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 42c456: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 42c45d: 0f 85 4d ff ff ff jne 42c3b0 - 42c463: 0f ae f8 sfence - 42c466: 4c 8b 64 24 e0 mov -0x20(%rsp),%r12 - 42c46b: 4c 8b 6c 24 e8 mov -0x18(%rsp),%r13 - 42c470: 4c 8b 74 24 f0 mov -0x10(%rsp),%r14 - 42c475: 83 e2 7f and $0x7f,%edx - 42c478: 48 8b 44 24 f8 mov -0x8(%rsp),%rax - 42c47d: 0f 85 a6 fb ff ff jne 42c029 - 42c483: f3 c3 repz retq - 42c485: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42c48c: 00 00 00 - 42c48f: 90 nop - -000000000042c490 <_wordcopy_fwd_aligned>: - 42c490: 48 89 d0 mov %rdx,%rax - 42c493: 83 e0 07 and $0x7,%eax - 42c496: ff 24 c5 b0 31 4a 00 jmpq *0x4a31b0(,%rax,8) - 42c49d: 0f 1f 00 nopl (%rax) - 42c4a0: 48 8b 06 mov (%rsi),%rax - 42c4a3: 48 83 ef 18 sub $0x18,%rdi - 42c4a7: 48 83 ee 10 sub $0x10,%rsi - 42c4ab: 48 8b 4e 18 mov 0x18(%rsi),%rcx - 42c4af: 48 83 c2 02 add $0x2,%rdx - 42c4b3: 48 89 47 18 mov %rax,0x18(%rdi) - 42c4b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42c4be: 00 00 - 42c4c0: 48 8b 46 20 mov 0x20(%rsi),%rax - 42c4c4: 48 89 4f 20 mov %rcx,0x20(%rdi) - 42c4c8: 48 8b 4e 28 mov 0x28(%rsi),%rcx - 42c4cc: 48 89 47 28 mov %rax,0x28(%rdi) - 42c4d0: 48 8b 46 30 mov 0x30(%rsi),%rax - 42c4d4: 48 89 4f 30 mov %rcx,0x30(%rdi) - 42c4d8: 48 8b 4e 38 mov 0x38(%rsi),%rcx - 42c4dc: 48 83 c7 40 add $0x40,%rdi - 42c4e0: 48 89 47 f8 mov %rax,-0x8(%rdi) - 42c4e4: 48 83 ea 08 sub $0x8,%rdx - 42c4e8: 0f 84 ca 00 00 00 je 42c5b8 <_wordcopy_fwd_aligned+0x128> - 42c4ee: 48 83 c6 40 add $0x40,%rsi - 42c4f2: 48 8b 06 mov (%rsi),%rax - 42c4f5: 48 89 0f mov %rcx,(%rdi) - 42c4f8: 48 8b 4e 08 mov 0x8(%rsi),%rcx - 42c4fc: 48 89 47 08 mov %rax,0x8(%rdi) - 42c500: 48 8b 46 10 mov 0x10(%rsi),%rax - 42c504: 48 89 4f 10 mov %rcx,0x10(%rdi) - 42c508: 48 8b 4e 18 mov 0x18(%rsi),%rcx - 42c50c: 48 89 47 18 mov %rax,0x18(%rdi) - 42c510: eb ae jmp 42c4c0 <_wordcopy_fwd_aligned+0x30> - 42c512: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 42c518: 48 85 d2 test %rdx,%rdx - 42c51b: 0f 84 9a 00 00 00 je 42c5bb <_wordcopy_fwd_aligned+0x12b> - 42c521: 48 8b 06 mov (%rsi),%rax - 42c524: 48 83 ef 08 sub $0x8,%rdi - 42c528: eb ce jmp 42c4f8 <_wordcopy_fwd_aligned+0x68> - 42c52a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 42c530: 48 83 ea 01 sub $0x1,%rdx - 42c534: 48 8b 0e mov (%rsi),%rcx - 42c537: 74 7f je 42c5b8 <_wordcopy_fwd_aligned+0x128> - 42c539: 48 83 c6 08 add $0x8,%rsi - 42c53d: eb b3 jmp 42c4f2 <_wordcopy_fwd_aligned+0x62> - 42c53f: 90 nop - 42c540: 48 8b 06 mov (%rsi),%rax - 42c543: 48 83 c2 06 add $0x6,%rdx - 42c547: 48 83 ee 30 sub $0x30,%rsi - 42c54b: 48 83 ef 38 sub $0x38,%rdi - 42c54f: eb 87 jmp 42c4d8 <_wordcopy_fwd_aligned+0x48> - 42c551: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42c558: 48 8b 0e mov (%rsi),%rcx - 42c55b: 48 83 c2 05 add $0x5,%rdx - 42c55f: 48 83 ee 28 sub $0x28,%rsi - 42c563: 48 83 ef 30 sub $0x30,%rdi - 42c567: e9 64 ff ff ff jmpq 42c4d0 <_wordcopy_fwd_aligned+0x40> - 42c56c: 0f 1f 40 00 nopl 0x0(%rax) - 42c570: 48 8b 06 mov (%rsi),%rax - 42c573: 48 83 c2 04 add $0x4,%rdx - 42c577: 48 83 ee 20 sub $0x20,%rsi - 42c57b: 48 83 ef 28 sub $0x28,%rdi - 42c57f: e9 44 ff ff ff jmpq 42c4c8 <_wordcopy_fwd_aligned+0x38> - 42c584: 0f 1f 40 00 nopl 0x0(%rax) - 42c588: 48 8b 0e mov (%rsi),%rcx - 42c58b: 48 83 c2 03 add $0x3,%rdx - 42c58f: 48 83 ee 18 sub $0x18,%rsi - 42c593: 48 83 ef 20 sub $0x20,%rdi - 42c597: e9 24 ff ff ff jmpq 42c4c0 <_wordcopy_fwd_aligned+0x30> - 42c59c: 0f 1f 40 00 nopl 0x0(%rax) - 42c5a0: 48 8b 0e mov (%rsi),%rcx - 42c5a3: 48 83 c2 01 add $0x1,%rdx - 42c5a7: 48 83 ee 08 sub $0x8,%rsi - 42c5ab: 48 83 ef 10 sub $0x10,%rdi - 42c5af: e9 4c ff ff ff jmpq 42c500 <_wordcopy_fwd_aligned+0x70> - 42c5b4: 0f 1f 40 00 nopl 0x0(%rax) - 42c5b8: 48 89 0f mov %rcx,(%rdi) - 42c5bb: f3 c3 repz retq - 42c5bd: 0f 1f 00 nopl (%rax) - -000000000042c5c0 <_wordcopy_fwd_dest_aligned>: - 42c5c0: 89 f0 mov %esi,%eax - 42c5c2: 48 89 d1 mov %rdx,%rcx - 42c5c5: 41 b8 40 00 00 00 mov $0x40,%r8d - 42c5cb: 83 e0 07 and $0x7,%eax - 42c5ce: 83 e1 03 and $0x3,%ecx - 42c5d1: 48 83 e6 f8 and $0xfffffffffffffff8,%rsi - 42c5d5: c1 e0 03 shl $0x3,%eax - 42c5d8: 53 push %rbx - 42c5d9: 41 29 c0 sub %eax,%r8d - 42c5dc: 48 83 f9 02 cmp $0x2,%rcx - 42c5e0: 0f 84 e2 00 00 00 je 42c6c8 <_wordcopy_fwd_dest_aligned+0x108> - 42c5e6: 48 83 f9 03 cmp $0x3,%rcx - 42c5ea: 74 54 je 42c640 <_wordcopy_fwd_dest_aligned+0x80> - 42c5ec: 48 83 f9 01 cmp $0x1,%rcx - 42c5f0: 74 1e je 42c610 <_wordcopy_fwd_dest_aligned+0x50> - 42c5f2: 48 85 d2 test %rdx,%rdx - 42c5f5: 74 42 je 42c639 <_wordcopy_fwd_dest_aligned+0x79> - 42c5f7: 4c 8b 0e mov (%rsi),%r9 - 42c5fa: 48 8b 5e 08 mov 0x8(%rsi),%rbx - 42c5fe: 48 83 ef 08 sub $0x8,%rdi - 42c602: 48 83 c6 08 add $0x8,%rsi - 42c606: e9 9b 00 00 00 jmpq 42c6a6 <_wordcopy_fwd_dest_aligned+0xe6> - 42c60b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42c610: 48 83 ea 01 sub $0x1,%rdx - 42c614: 4c 8b 16 mov (%rsi),%r10 - 42c617: 4c 8b 4e 08 mov 0x8(%rsi),%r9 - 42c61b: 0f 85 bf 00 00 00 jne 42c6e0 <_wordcopy_fwd_dest_aligned+0x120> - 42c621: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42c628: 89 c1 mov %eax,%ecx - 42c62a: 49 d3 ea shr %cl,%r10 - 42c62d: 44 89 c1 mov %r8d,%ecx - 42c630: 49 d3 e1 shl %cl,%r9 - 42c633: 4d 09 d1 or %r10,%r9 - 42c636: 4c 89 0f mov %r9,(%rdi) - 42c639: 5b pop %rbx - 42c63a: c3 retq - 42c63b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42c640: 48 8b 1e mov (%rsi),%rbx - 42c643: 4c 8b 5e 08 mov 0x8(%rsi),%r11 - 42c647: 48 83 c2 01 add $0x1,%rdx - 42c64b: 48 83 ef 10 sub $0x10,%rdi - 42c64f: 89 c1 mov %eax,%ecx - 42c651: 4d 89 d9 mov %r11,%r9 - 42c654: 4c 8b 56 10 mov 0x10(%rsi),%r10 - 42c658: 48 d3 eb shr %cl,%rbx - 42c65b: 44 89 c1 mov %r8d,%ecx - 42c65e: 49 d3 e1 shl %cl,%r9 - 42c661: 4c 09 cb or %r9,%rbx - 42c664: 48 89 5f 10 mov %rbx,0x10(%rdi) - 42c668: 89 c1 mov %eax,%ecx - 42c66a: 4c 89 d3 mov %r10,%rbx - 42c66d: 4c 8b 4e 18 mov 0x18(%rsi),%r9 - 42c671: 49 d3 eb shr %cl,%r11 - 42c674: 44 89 c1 mov %r8d,%ecx - 42c677: 48 83 c7 20 add $0x20,%rdi - 42c67b: 48 d3 e3 shl %cl,%rbx - 42c67e: 49 09 db or %rbx,%r11 - 42c681: 4c 89 5f f8 mov %r11,-0x8(%rdi) - 42c685: 48 83 ea 04 sub $0x4,%rdx - 42c689: 74 9d je 42c628 <_wordcopy_fwd_dest_aligned+0x68> - 42c68b: 48 83 c6 20 add $0x20,%rsi - 42c68f: 89 c1 mov %eax,%ecx - 42c691: 4d 89 cb mov %r9,%r11 - 42c694: 48 8b 1e mov (%rsi),%rbx - 42c697: 49 d3 ea shr %cl,%r10 - 42c69a: 44 89 c1 mov %r8d,%ecx - 42c69d: 49 d3 e3 shl %cl,%r11 - 42c6a0: 4d 09 da or %r11,%r10 - 42c6a3: 4c 89 17 mov %r10,(%rdi) - 42c6a6: 89 c1 mov %eax,%ecx - 42c6a8: 49 89 da mov %rbx,%r10 - 42c6ab: 4c 8b 5e 08 mov 0x8(%rsi),%r11 - 42c6af: 49 d3 e9 shr %cl,%r9 - 42c6b2: 44 89 c1 mov %r8d,%ecx - 42c6b5: 49 d3 e2 shl %cl,%r10 - 42c6b8: 4d 09 d1 or %r10,%r9 - 42c6bb: 4c 89 4f 08 mov %r9,0x8(%rdi) - 42c6bf: eb 8e jmp 42c64f <_wordcopy_fwd_dest_aligned+0x8f> - 42c6c1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42c6c8: 4c 8b 1e mov (%rsi),%r11 - 42c6cb: 4c 8b 56 08 mov 0x8(%rsi),%r10 - 42c6cf: 48 83 c2 02 add $0x2,%rdx - 42c6d3: 48 83 ee 08 sub $0x8,%rsi - 42c6d7: 48 83 ef 18 sub $0x18,%rdi - 42c6db: eb 8b jmp 42c668 <_wordcopy_fwd_dest_aligned+0xa8> - 42c6dd: 0f 1f 00 nopl (%rax) - 42c6e0: 48 83 c6 10 add $0x10,%rsi - 42c6e4: eb a9 jmp 42c68f <_wordcopy_fwd_dest_aligned+0xcf> - 42c6e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42c6ed: 00 00 00 - -000000000042c6f0 <_wordcopy_bwd_aligned>: - 42c6f0: 48 89 d0 mov %rdx,%rax - 42c6f3: 83 e0 07 and $0x7,%eax - 42c6f6: ff 24 c5 f0 31 4a 00 jmpq *0x4a31f0(,%rax,8) - 42c6fd: 0f 1f 00 nopl (%rax) - 42c700: 4c 8d 46 d0 lea -0x30(%rsi),%r8 - 42c704: 48 8b 76 f8 mov -0x8(%rsi),%rsi - 42c708: 48 83 ef 28 sub $0x28,%rdi - 42c70c: 48 89 f8 mov %rdi,%rax - 42c70f: 48 83 c2 02 add $0x2,%rdx - 42c713: 4c 89 c1 mov %r8,%rcx - 42c716: 4c 8b 49 20 mov 0x20(%rcx),%r9 - 42c71a: 48 89 70 20 mov %rsi,0x20(%rax) - 42c71e: 66 90 xchg %ax,%ax - 42c720: 48 8b 71 18 mov 0x18(%rcx),%rsi - 42c724: 4c 89 48 18 mov %r9,0x18(%rax) - 42c728: 4c 8b 49 10 mov 0x10(%rcx),%r9 - 42c72c: 48 89 70 10 mov %rsi,0x10(%rax) - 42c730: 48 8b 71 08 mov 0x8(%rcx),%rsi - 42c734: 4c 89 48 08 mov %r9,0x8(%rax) - 42c738: 48 83 ea 08 sub $0x8,%rdx - 42c73c: 4d 8b 08 mov (%r8),%r9 - 42c73f: 48 89 37 mov %rsi,(%rdi) - 42c742: 4c 8d 41 c0 lea -0x40(%rcx),%r8 - 42c746: 48 8d 78 c0 lea -0x40(%rax),%rdi - 42c74a: 0f 84 10 01 00 00 je 42c860 <_wordcopy_bwd_aligned+0x170> - 42c750: 49 8b 70 38 mov 0x38(%r8),%rsi - 42c754: 4c 89 c1 mov %r8,%rcx - 42c757: 48 89 f8 mov %rdi,%rax - 42c75a: 4c 89 4f 38 mov %r9,0x38(%rdi) - 42c75e: 4c 8b 49 30 mov 0x30(%rcx),%r9 - 42c762: 48 89 70 30 mov %rsi,0x30(%rax) - 42c766: 48 8b 71 28 mov 0x28(%rcx),%rsi - 42c76a: 4c 89 48 28 mov %r9,0x28(%rax) - 42c76e: 4c 8b 49 20 mov 0x20(%rcx),%r9 - 42c772: 48 89 70 20 mov %rsi,0x20(%rax) - 42c776: eb a8 jmp 42c720 <_wordcopy_bwd_aligned+0x30> - 42c778: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42c77f: 00 - 42c780: 48 85 d2 test %rdx,%rdx - 42c783: 0f 84 db 00 00 00 je 42c864 <_wordcopy_bwd_aligned+0x174> - 42c789: 4c 8d 46 c0 lea -0x40(%rsi),%r8 - 42c78d: 48 83 ef 38 sub $0x38,%rdi - 42c791: 48 8b 76 f8 mov -0x8(%rsi),%rsi - 42c795: 48 89 f8 mov %rdi,%rax - 42c798: 4c 89 c1 mov %r8,%rcx - 42c79b: eb c1 jmp 42c75e <_wordcopy_bwd_aligned+0x6e> - 42c79d: 0f 1f 00 nopl (%rax) - 42c7a0: 48 83 ef 40 sub $0x40,%rdi - 42c7a4: 48 83 ea 01 sub $0x1,%rdx - 42c7a8: 4c 8b 4e f8 mov -0x8(%rsi),%r9 - 42c7ac: 0f 84 ae 00 00 00 je 42c860 <_wordcopy_bwd_aligned+0x170> - 42c7b2: 4c 8d 46 b8 lea -0x48(%rsi),%r8 - 42c7b6: eb 98 jmp 42c750 <_wordcopy_bwd_aligned+0x60> - 42c7b8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42c7bf: 00 - 42c7c0: 48 8d 4e f0 lea -0x10(%rsi),%rcx - 42c7c4: 48 8d 47 f8 lea -0x8(%rdi),%rax - 42c7c8: 48 8b 76 f8 mov -0x8(%rsi),%rsi - 42c7cc: 48 83 c2 06 add $0x6,%rdx - 42c7d0: 49 89 c8 mov %rcx,%r8 - 42c7d3: 48 89 c7 mov %rax,%rdi - 42c7d6: e9 5d ff ff ff jmpq 42c738 <_wordcopy_bwd_aligned+0x48> - 42c7db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42c7e0: 4c 8d 46 e8 lea -0x18(%rsi),%r8 - 42c7e4: 48 83 ef 10 sub $0x10,%rdi - 42c7e8: 4c 8b 4e f8 mov -0x8(%rsi),%r9 - 42c7ec: 48 83 c2 05 add $0x5,%rdx - 42c7f0: 48 89 f8 mov %rdi,%rax - 42c7f3: 4c 89 c1 mov %r8,%rcx - 42c7f6: e9 35 ff ff ff jmpq 42c730 <_wordcopy_bwd_aligned+0x40> - 42c7fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42c800: 4c 8d 46 e0 lea -0x20(%rsi),%r8 - 42c804: 48 83 ef 18 sub $0x18,%rdi - 42c808: 48 8b 76 f8 mov -0x8(%rsi),%rsi - 42c80c: 48 83 c2 04 add $0x4,%rdx - 42c810: 48 89 f8 mov %rdi,%rax - 42c813: 4c 89 c1 mov %r8,%rcx - 42c816: e9 0d ff ff ff jmpq 42c728 <_wordcopy_bwd_aligned+0x38> - 42c81b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42c820: 4c 8d 46 d8 lea -0x28(%rsi),%r8 - 42c824: 48 83 ef 20 sub $0x20,%rdi - 42c828: 4c 8b 4e f8 mov -0x8(%rsi),%r9 - 42c82c: 48 83 c2 03 add $0x3,%rdx - 42c830: 48 89 f8 mov %rdi,%rax - 42c833: 4c 89 c1 mov %r8,%rcx - 42c836: e9 e5 fe ff ff jmpq 42c720 <_wordcopy_bwd_aligned+0x30> - 42c83b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42c840: 4c 8d 46 c8 lea -0x38(%rsi),%r8 - 42c844: 48 83 ef 30 sub $0x30,%rdi - 42c848: 4c 8b 4e f8 mov -0x8(%rsi),%r9 - 42c84c: 48 83 c2 01 add $0x1,%rdx - 42c850: 48 89 f8 mov %rdi,%rax - 42c853: 4c 89 c1 mov %r8,%rcx - 42c856: e9 0b ff ff ff jmpq 42c766 <_wordcopy_bwd_aligned+0x76> - 42c85b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42c860: 4c 89 4f 38 mov %r9,0x38(%rdi) - 42c864: f3 c3 repz retq - 42c866: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42c86d: 00 00 00 - -000000000042c870 <_wordcopy_bwd_dest_aligned>: - 42c870: 89 f0 mov %esi,%eax - 42c872: 48 89 d1 mov %rdx,%rcx - 42c875: 41 bb 40 00 00 00 mov $0x40,%r11d - 42c87b: 83 e0 07 and $0x7,%eax - 42c87e: 83 e1 03 and $0x3,%ecx - 42c881: 48 83 e6 f8 and $0xfffffffffffffff8,%rsi - 42c885: c1 e0 03 shl $0x3,%eax - 42c888: 41 54 push %r12 - 42c88a: 55 push %rbp - 42c88b: 41 29 c3 sub %eax,%r11d - 42c88e: 48 83 f9 02 cmp $0x2,%rcx - 42c892: 53 push %rbx - 42c893: 0f 84 07 01 00 00 je 42c9a0 <_wordcopy_bwd_dest_aligned+0x130> - 42c899: 48 83 f9 03 cmp $0x3,%rcx - 42c89d: 74 61 je 42c900 <_wordcopy_bwd_dest_aligned+0x90> - 42c89f: 48 83 f9 01 cmp $0x1,%rcx - 42c8a3: 74 23 je 42c8c8 <_wordcopy_bwd_dest_aligned+0x58> - 42c8a5: 48 85 d2 test %rdx,%rdx - 42c8a8: 74 48 je 42c8f2 <_wordcopy_bwd_dest_aligned+0x82> - 42c8aa: 48 8d 6e e0 lea -0x20(%rsi),%rbp - 42c8ae: 4c 8d 57 e8 lea -0x18(%rdi),%r10 - 42c8b2: 4c 8b 26 mov (%rsi),%r12 - 42c8b5: 4c 8b 4e f8 mov -0x8(%rsi),%r9 - 42c8b9: 4c 89 d7 mov %r10,%rdi - 42c8bc: 48 89 ee mov %rbp,%rsi - 42c8bf: e9 b9 00 00 00 jmpq 42c97d <_wordcopy_bwd_dest_aligned+0x10d> - 42c8c4: 0f 1f 40 00 nopl 0x0(%rax) - 42c8c8: 48 83 ea 01 sub $0x1,%rdx - 42c8cc: 4c 8d 57 e0 lea -0x20(%rdi),%r10 - 42c8d0: 4c 8b 06 mov (%rsi),%r8 - 42c8d3: 4c 8b 66 f8 mov -0x8(%rsi),%r12 - 42c8d7: 0f 85 e3 00 00 00 jne 42c9c0 <_wordcopy_bwd_dest_aligned+0x150> - 42c8dd: 0f 1f 00 nopl (%rax) - 42c8e0: 89 c1 mov %eax,%ecx - 42c8e2: 49 d3 ec shr %cl,%r12 - 42c8e5: 44 89 d9 mov %r11d,%ecx - 42c8e8: 49 d3 e0 shl %cl,%r8 - 42c8eb: 4d 09 e0 or %r12,%r8 - 42c8ee: 4d 89 42 18 mov %r8,0x18(%r10) - 42c8f2: 5b pop %rbx - 42c8f3: 5d pop %rbp - 42c8f4: 41 5c pop %r12 - 42c8f6: c3 retq - 42c8f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42c8fe: 00 00 - 42c900: 48 8d 6e e8 lea -0x18(%rsi),%rbp - 42c904: 4c 8d 57 f0 lea -0x10(%rdi),%r10 - 42c908: 4c 8b 0e mov (%rsi),%r9 - 42c90b: 48 8b 5e f8 mov -0x8(%rsi),%rbx - 42c90f: 48 83 c2 01 add $0x1,%rdx - 42c913: 48 89 ee mov %rbp,%rsi - 42c916: 4c 89 d7 mov %r10,%rdi - 42c919: 89 c1 mov %eax,%ecx - 42c91b: 49 89 dc mov %rbx,%r12 - 42c91e: 4c 8b 46 08 mov 0x8(%rsi),%r8 - 42c922: 49 d3 ec shr %cl,%r12 - 42c925: 44 89 d9 mov %r11d,%ecx - 42c928: 49 d3 e1 shl %cl,%r9 - 42c92b: 4d 09 e1 or %r12,%r9 - 42c92e: 4c 89 4f 08 mov %r9,0x8(%rdi) - 42c932: 49 89 f1 mov %rsi,%r9 - 42c935: 89 c1 mov %eax,%ecx - 42c937: 4c 89 c6 mov %r8,%rsi - 42c93a: 4c 8b 65 00 mov 0x0(%rbp),%r12 - 42c93e: 48 d3 ee shr %cl,%rsi - 42c941: 44 89 d9 mov %r11d,%ecx - 42c944: 49 8d 69 e0 lea -0x20(%r9),%rbp - 42c948: 48 d3 e3 shl %cl,%rbx - 42c94b: 48 89 d9 mov %rbx,%rcx - 42c94e: 48 09 f1 or %rsi,%rcx - 42c951: 48 83 ea 04 sub $0x4,%rdx - 42c955: 49 89 0a mov %rcx,(%r10) - 42c958: 4c 8d 57 e0 lea -0x20(%rdi),%r10 - 42c95c: 74 82 je 42c8e0 <_wordcopy_bwd_dest_aligned+0x70> - 42c95e: 89 c1 mov %eax,%ecx - 42c960: 4c 89 e3 mov %r12,%rbx - 42c963: 4c 8b 4d 18 mov 0x18(%rbp),%r9 - 42c967: 48 d3 eb shr %cl,%rbx - 42c96a: 44 89 d9 mov %r11d,%ecx - 42c96d: 48 89 ee mov %rbp,%rsi - 42c970: 49 d3 e0 shl %cl,%r8 - 42c973: 4c 89 d7 mov %r10,%rdi - 42c976: 49 09 d8 or %rbx,%r8 - 42c979: 4d 89 42 18 mov %r8,0x18(%r10) - 42c97d: 89 c1 mov %eax,%ecx - 42c97f: 4d 89 c8 mov %r9,%r8 - 42c982: 48 8b 5e 10 mov 0x10(%rsi),%rbx - 42c986: 49 d3 e8 shr %cl,%r8 - 42c989: 44 89 d9 mov %r11d,%ecx - 42c98c: 49 d3 e4 shl %cl,%r12 - 42c98f: 4d 09 c4 or %r8,%r12 - 42c992: 4c 89 67 10 mov %r12,0x10(%rdi) - 42c996: eb 81 jmp 42c919 <_wordcopy_bwd_dest_aligned+0xa9> - 42c998: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42c99f: 00 - 42c9a0: 4c 8d 4e f0 lea -0x10(%rsi),%r9 - 42c9a4: 48 83 ef 08 sub $0x8,%rdi - 42c9a8: 48 8b 1e mov (%rsi),%rbx - 42c9ab: 49 89 fa mov %rdi,%r10 - 42c9ae: 4c 8b 46 f8 mov -0x8(%rsi),%r8 - 42c9b2: 48 83 c2 02 add $0x2,%rdx - 42c9b6: 4c 89 cd mov %r9,%rbp - 42c9b9: e9 77 ff ff ff jmpq 42c935 <_wordcopy_bwd_dest_aligned+0xc5> - 42c9be: 66 90 xchg %ax,%ax - 42c9c0: 48 8d 6e d8 lea -0x28(%rsi),%rbp - 42c9c4: eb 98 jmp 42c95e <_wordcopy_bwd_dest_aligned+0xee> - 42c9c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42c9cd: 00 00 00 - -000000000042c9d0 <__rawmemchr>: - 42c9d0: 66 48 0f 6e ce movq %rsi,%xmm1 - 42c9d5: 48 89 f9 mov %rdi,%rcx - 42c9d8: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 - 42c9dc: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 - 42c9e0: 48 83 e1 3f and $0x3f,%rcx - 42c9e4: 66 0f 70 c9 00 pshufd $0x0,%xmm1,%xmm1 - 42c9e9: 48 83 f9 30 cmp $0x30,%rcx - 42c9ed: 77 21 ja 42ca10 <__rawmemchr+0x40> - 42c9ef: f3 0f 6f 07 movdqu (%rdi),%xmm0 - 42c9f3: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42c9f7: 66 0f d7 c0 pmovmskb %xmm0,%eax - 42c9fb: 85 c0 test %eax,%eax - 42c9fd: 0f 85 9d 01 00 00 jne 42cba0 <__rawmemchr+0x1d0> - 42ca03: 48 83 c7 10 add $0x10,%rdi - 42ca07: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 42ca0b: eb 43 jmp 42ca50 <__rawmemchr+0x80> - 42ca0d: 0f 1f 00 nopl (%rax) - 42ca10: 48 83 e1 0f and $0xf,%rcx - 42ca14: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 42ca18: 66 0f 6f 07 movdqa (%rdi),%xmm0 - 42ca1c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42ca20: 66 0f d7 c0 pmovmskb %xmm0,%eax - 42ca24: d3 f8 sar %cl,%eax - 42ca26: 85 c0 test %eax,%eax - 42ca28: 74 16 je 42ca40 <__rawmemchr+0x70> - 42ca2a: 0f bc c0 bsf %eax,%eax - 42ca2d: 48 01 f8 add %rdi,%rax - 42ca30: 48 01 c8 add %rcx,%rax - 42ca33: c3 retq - 42ca34: 66 90 xchg %ax,%ax - 42ca36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42ca3d: 00 00 00 - 42ca40: 48 83 c7 10 add $0x10,%rdi - 42ca44: 66 90 xchg %ax,%ax - 42ca46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42ca4d: 00 00 00 - 42ca50: 66 0f 6f 07 movdqa (%rdi),%xmm0 - 42ca54: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42ca58: 66 0f d7 c0 pmovmskb %xmm0,%eax - 42ca5c: 85 c0 test %eax,%eax - 42ca5e: 0f 85 3c 01 00 00 jne 42cba0 <__rawmemchr+0x1d0> - 42ca64: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 - 42ca69: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42ca6d: 66 0f d7 c2 pmovmskb %xmm2,%eax - 42ca71: 85 c0 test %eax,%eax - 42ca73: 0f 85 37 01 00 00 jne 42cbb0 <__rawmemchr+0x1e0> - 42ca79: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 - 42ca7e: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 42ca82: 66 0f d7 c3 pmovmskb %xmm3,%eax - 42ca86: 85 c0 test %eax,%eax - 42ca88: 0f 85 32 01 00 00 jne 42cbc0 <__rawmemchr+0x1f0> - 42ca8e: 66 0f 6f 67 30 movdqa 0x30(%rdi),%xmm4 - 42ca93: 66 0f 74 e1 pcmpeqb %xmm1,%xmm4 - 42ca97: 48 83 c7 40 add $0x40,%rdi - 42ca9b: 66 0f d7 c4 pmovmskb %xmm4,%eax - 42ca9f: 85 c0 test %eax,%eax - 42caa1: 0f 85 e9 00 00 00 jne 42cb90 <__rawmemchr+0x1c0> - 42caa7: 48 f7 c7 3f 00 00 00 test $0x3f,%rdi - 42caae: 74 60 je 42cb10 <__rawmemchr+0x140> - 42cab0: 66 0f 6f 07 movdqa (%rdi),%xmm0 - 42cab4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42cab8: 66 0f d7 c0 pmovmskb %xmm0,%eax - 42cabc: 85 c0 test %eax,%eax - 42cabe: 0f 85 dc 00 00 00 jne 42cba0 <__rawmemchr+0x1d0> - 42cac4: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 - 42cac9: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42cacd: 66 0f d7 c2 pmovmskb %xmm2,%eax - 42cad1: 85 c0 test %eax,%eax - 42cad3: 0f 85 d7 00 00 00 jne 42cbb0 <__rawmemchr+0x1e0> - 42cad9: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 - 42cade: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 42cae2: 66 0f d7 c3 pmovmskb %xmm3,%eax - 42cae6: 85 c0 test %eax,%eax - 42cae8: 0f 85 d2 00 00 00 jne 42cbc0 <__rawmemchr+0x1f0> - 42caee: 66 0f 6f 5f 30 movdqa 0x30(%rdi),%xmm3 - 42caf3: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 42caf7: 66 0f d7 c3 pmovmskb %xmm3,%eax - 42cafb: 48 83 c7 40 add $0x40,%rdi - 42caff: 85 c0 test %eax,%eax - 42cb01: 0f 85 89 00 00 00 jne 42cb90 <__rawmemchr+0x1c0> - 42cb07: 48 83 e7 c0 and $0xffffffffffffffc0,%rdi - 42cb0b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42cb10: 66 0f 6f 07 movdqa (%rdi),%xmm0 - 42cb14: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 - 42cb19: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 - 42cb1e: 66 0f 6f 67 30 movdqa 0x30(%rdi),%xmm4 - 42cb23: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42cb27: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42cb2b: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 42cb2f: 66 0f 74 e1 pcmpeqb %xmm1,%xmm4 - 42cb33: 66 0f de d8 pmaxub %xmm0,%xmm3 - 42cb37: 66 0f de e2 pmaxub %xmm2,%xmm4 - 42cb3b: 66 0f de e3 pmaxub %xmm3,%xmm4 - 42cb3f: 66 0f d7 c4 pmovmskb %xmm4,%eax - 42cb43: 48 83 c7 40 add $0x40,%rdi - 42cb47: 85 c0 test %eax,%eax - 42cb49: 74 c5 je 42cb10 <__rawmemchr+0x140> - 42cb4b: 48 83 ef 40 sub $0x40,%rdi - 42cb4f: 66 0f d7 c0 pmovmskb %xmm0,%eax - 42cb53: 85 c0 test %eax,%eax - 42cb55: 75 49 jne 42cba0 <__rawmemchr+0x1d0> - 42cb57: 66 0f d7 c2 pmovmskb %xmm2,%eax - 42cb5b: 85 c0 test %eax,%eax - 42cb5d: 75 51 jne 42cbb0 <__rawmemchr+0x1e0> - 42cb5f: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 - 42cb64: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 42cb68: 66 0f 74 4f 30 pcmpeqb 0x30(%rdi),%xmm1 - 42cb6d: 66 0f d7 c3 pmovmskb %xmm3,%eax - 42cb71: 85 c0 test %eax,%eax - 42cb73: 75 4b jne 42cbc0 <__rawmemchr+0x1f0> - 42cb75: 66 0f d7 c1 pmovmskb %xmm1,%eax - 42cb79: 0f bc c0 bsf %eax,%eax - 42cb7c: 48 8d 44 07 30 lea 0x30(%rdi,%rax,1),%rax - 42cb81: c3 retq - 42cb82: 0f 1f 40 00 nopl 0x0(%rax) - 42cb86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42cb8d: 00 00 00 - 42cb90: 0f bc c0 bsf %eax,%eax - 42cb93: 48 8d 44 38 f0 lea -0x10(%rax,%rdi,1),%rax - 42cb98: c3 retq - 42cb99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42cba0: 0f bc c0 bsf %eax,%eax - 42cba3: 48 01 f8 add %rdi,%rax - 42cba6: c3 retq - 42cba7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42cbae: 00 00 - 42cbb0: 0f bc c0 bsf %eax,%eax - 42cbb3: 48 8d 44 38 10 lea 0x10(%rax,%rdi,1),%rax - 42cbb8: c3 retq - 42cbb9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42cbc0: 0f bc c0 bsf %eax,%eax - 42cbc3: 48 8d 44 38 20 lea 0x20(%rax,%rdi,1),%rax - 42cbc8: c3 retq - 42cbc9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42cbd0: 48 31 c0 xor %rax,%rax - 42cbd3: c3 retq - 42cbd4: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42cbdb: 00 00 00 - 42cbde: 66 90 xchg %ax,%ax - -000000000042cbe0 <__strchrnul>: - 42cbe0: 66 0f 6e ce movd %esi,%xmm1 - 42cbe4: 89 f8 mov %edi,%eax - 42cbe6: 25 ff 0f 00 00 and $0xfff,%eax - 42cbeb: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 - 42cbef: 3d c0 0f 00 00 cmp $0xfc0,%eax - 42cbf4: 66 0f 61 c9 punpcklwd %xmm1,%xmm1 - 42cbf8: 66 0f 70 c9 00 pshufd $0x0,%xmm1,%xmm1 - 42cbfd: 0f 8f 4d 01 00 00 jg 42cd50 <__strchrnul+0x170> - 42cc03: f3 0f 6f 07 movdqu (%rdi),%xmm0 - 42cc07: 66 0f ef db pxor %xmm3,%xmm3 - 42cc0b: 66 0f 6f e0 movdqa %xmm0,%xmm4 - 42cc0f: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42cc13: 66 0f 74 e3 pcmpeqb %xmm3,%xmm4 - 42cc17: 66 0f eb c4 por %xmm4,%xmm0 - 42cc1b: 66 0f d7 c0 pmovmskb %xmm0,%eax - 42cc1f: 85 c0 test %eax,%eax - 42cc21: 74 0d je 42cc30 <__strchrnul+0x50> - 42cc23: 0f bc c0 bsf %eax,%eax - 42cc26: 48 8d 04 07 lea (%rdi,%rax,1),%rax - 42cc2a: c3 retq - 42cc2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42cc30: f3 0f 6f 47 10 movdqu 0x10(%rdi),%xmm0 - 42cc35: 66 0f 6f e0 movdqa %xmm0,%xmm4 - 42cc39: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42cc3d: 66 0f 74 e3 pcmpeqb %xmm3,%xmm4 - 42cc41: 66 0f eb c4 por %xmm4,%xmm0 - 42cc45: 66 0f d7 c8 pmovmskb %xmm0,%ecx - 42cc49: f3 0f 6f 47 20 movdqu 0x20(%rdi),%xmm0 - 42cc4e: 66 0f 6f e0 movdqa %xmm0,%xmm4 - 42cc52: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42cc56: 48 c1 e1 10 shl $0x10,%rcx - 42cc5a: 66 0f 74 e3 pcmpeqb %xmm3,%xmm4 - 42cc5e: 66 0f eb c4 por %xmm4,%xmm0 - 42cc62: 66 0f d7 c0 pmovmskb %xmm0,%eax - 42cc66: f3 0f 6f 47 30 movdqu 0x30(%rdi),%xmm0 - 42cc6b: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 - 42cc6f: 48 c1 e0 20 shl $0x20,%rax - 42cc73: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42cc77: 48 09 c8 or %rcx,%rax - 42cc7a: 66 0f eb c3 por %xmm3,%xmm0 - 42cc7e: 66 0f d7 c8 pmovmskb %xmm0,%ecx - 42cc82: 48 c1 e1 30 shl $0x30,%rcx - 42cc86: 48 09 c8 or %rcx,%rax - 42cc89: 48 85 c0 test %rax,%rax - 42cc8c: 0f 85 ae 00 00 00 jne 42cd40 <__strchrnul+0x160> - 42cc92: 0f 1f 40 00 nopl 0x0(%rax) - 42cc96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42cc9d: 00 00 00 - 42cca0: 66 0f ef f6 pxor %xmm6,%xmm6 - 42cca4: 48 83 e7 c0 and $0xffffffffffffffc0,%rdi - 42cca8: 48 83 c7 40 add $0x40,%rdi - 42ccac: 66 0f 6f 2f movdqa (%rdi),%xmm5 - 42ccb0: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 - 42ccb5: 66 0f 6f 5f 20 movdqa 0x20(%rdi),%xmm3 - 42ccba: 66 0f ef e9 pxor %xmm1,%xmm5 - 42ccbe: 66 0f 6f 67 30 movdqa 0x30(%rdi),%xmm4 - 42ccc3: 66 0f ef d1 pxor %xmm1,%xmm2 - 42ccc7: 66 0f ef d9 pxor %xmm1,%xmm3 - 42cccb: 66 0f da 2f pminub (%rdi),%xmm5 - 42cccf: 66 0f ef e1 pxor %xmm1,%xmm4 - 42ccd3: 66 0f da 57 10 pminub 0x10(%rdi),%xmm2 - 42ccd8: 66 0f da 5f 20 pminub 0x20(%rdi),%xmm3 - 42ccdd: 66 0f da ea pminub %xmm2,%xmm5 - 42cce1: 66 0f da 67 30 pminub 0x30(%rdi),%xmm4 - 42cce6: 66 0f da eb pminub %xmm3,%xmm5 - 42ccea: 66 0f da ec pminub %xmm4,%xmm5 - 42ccee: 66 0f 74 ee pcmpeqb %xmm6,%xmm5 - 42ccf2: 66 0f d7 c5 pmovmskb %xmm5,%eax - 42ccf6: 85 c0 test %eax,%eax - 42ccf8: 74 ae je 42cca8 <__strchrnul+0xc8> - 42ccfa: 66 0f 6f 2f movdqa (%rdi),%xmm5 - 42ccfe: 66 0f 6f c5 movdqa %xmm5,%xmm0 - 42cd02: 66 0f 74 e9 pcmpeqb %xmm1,%xmm5 - 42cd06: 66 0f 74 c6 pcmpeqb %xmm6,%xmm0 - 42cd0a: 66 0f eb e8 por %xmm0,%xmm5 - 42cd0e: 66 0f 74 d6 pcmpeqb %xmm6,%xmm2 - 42cd12: 66 0f 74 de pcmpeqb %xmm6,%xmm3 - 42cd16: 66 0f 74 e6 pcmpeqb %xmm6,%xmm4 - 42cd1a: 66 0f d7 cd pmovmskb %xmm5,%ecx - 42cd1e: 66 0f d7 c2 pmovmskb %xmm2,%eax - 42cd22: 48 c1 e0 10 shl $0x10,%rax - 42cd26: 66 44 0f d7 c3 pmovmskb %xmm3,%r8d - 42cd2b: 66 0f d7 d4 pmovmskb %xmm4,%edx - 42cd2f: 49 c1 e0 20 shl $0x20,%r8 - 42cd33: 4c 09 c0 or %r8,%rax - 42cd36: 48 09 c8 or %rcx,%rax - 42cd39: 48 c1 e2 30 shl $0x30,%rdx - 42cd3d: 48 09 d0 or %rdx,%rax - 42cd40: 48 0f bc c0 bsf %rax,%rax - 42cd44: 48 8d 04 07 lea (%rdi,%rax,1),%rax - 42cd48: c3 retq - 42cd49: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42cd50: 48 89 fa mov %rdi,%rdx - 42cd53: 66 0f ef d2 pxor %xmm2,%xmm2 - 42cd57: 48 83 e2 c0 and $0xffffffffffffffc0,%rdx - 42cd5b: 66 0f 6f c1 movdqa %xmm1,%xmm0 - 42cd5f: 66 0f 6f 1a movdqa (%rdx),%xmm3 - 42cd63: 66 0f 6f e3 movdqa %xmm3,%xmm4 - 42cd67: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 42cd6b: 66 0f 74 e2 pcmpeqb %xmm2,%xmm4 - 42cd6f: 66 0f eb dc por %xmm4,%xmm3 - 42cd73: 66 44 0f d7 c3 pmovmskb %xmm3,%r8d - 42cd78: 66 0f 6f 5a 10 movdqa 0x10(%rdx),%xmm3 - 42cd7d: 66 0f 6f e3 movdqa %xmm3,%xmm4 - 42cd81: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 42cd85: 66 0f 74 e2 pcmpeqb %xmm2,%xmm4 - 42cd89: 66 0f eb dc por %xmm4,%xmm3 - 42cd8d: 66 0f d7 c3 pmovmskb %xmm3,%eax - 42cd91: 66 0f 6f 5a 20 movdqa 0x20(%rdx),%xmm3 - 42cd96: 66 0f 6f e3 movdqa %xmm3,%xmm4 - 42cd9a: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 42cd9e: 48 c1 e0 10 shl $0x10,%rax - 42cda2: 66 0f 74 e2 pcmpeqb %xmm2,%xmm4 - 42cda6: 66 0f eb dc por %xmm4,%xmm3 - 42cdaa: 66 44 0f d7 cb pmovmskb %xmm3,%r9d - 42cdaf: 66 0f 6f 5a 30 movdqa 0x30(%rdx),%xmm3 - 42cdb4: 66 0f 74 d3 pcmpeqb %xmm3,%xmm2 - 42cdb8: 49 c1 e1 20 shl $0x20,%r9 - 42cdbc: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42cdc0: 4c 09 c8 or %r9,%rax - 42cdc3: 4c 09 c0 or %r8,%rax - 42cdc6: 66 0f eb c2 por %xmm2,%xmm0 - 42cdca: 66 0f d7 c8 pmovmskb %xmm0,%ecx - 42cdce: 48 c1 e1 30 shl $0x30,%rcx - 42cdd2: 48 09 c8 or %rcx,%rax - 42cdd5: 89 f9 mov %edi,%ecx - 42cdd7: 28 d1 sub %dl,%cl - 42cdd9: 48 d3 e8 shr %cl,%rax - 42cddc: 48 85 c0 test %rax,%rax - 42cddf: 0f 85 5b ff ff ff jne 42cd40 <__strchrnul+0x160> - 42cde5: e9 a8 fe ff ff jmpq 42cc92 <__strchrnul+0xb2> - 42cdea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -000000000042cdf0 <__strcmp_ssse3>: - 42cdf0: 89 f1 mov %esi,%ecx - 42cdf2: 89 f8 mov %edi,%eax - 42cdf4: 48 83 e1 3f and $0x3f,%rcx - 42cdf8: 48 83 e0 3f and $0x3f,%rax - 42cdfc: 83 f9 30 cmp $0x30,%ecx - 42cdff: 77 3f ja 42ce40 <__strcmp_ssse3+0x50> - 42ce01: 83 f8 30 cmp $0x30,%eax - 42ce04: 77 3a ja 42ce40 <__strcmp_ssse3+0x50> - 42ce06: 66 0f 12 0f movlpd (%rdi),%xmm1 - 42ce0a: 66 0f 12 16 movlpd (%rsi),%xmm2 - 42ce0e: 66 0f 16 4f 08 movhpd 0x8(%rdi),%xmm1 - 42ce13: 66 0f 16 56 08 movhpd 0x8(%rsi),%xmm2 - 42ce18: 66 0f ef c0 pxor %xmm0,%xmm0 - 42ce1c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42ce20: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42ce24: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42ce28: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42ce2c: 81 ea ff ff 00 00 sub $0xffff,%edx - 42ce32: 0f 85 e8 11 00 00 jne 42e020 <__strcmp_ssse3+0x1230> - 42ce38: 48 83 c6 10 add $0x10,%rsi - 42ce3c: 48 83 c7 10 add $0x10,%rdi - 42ce40: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 42ce44: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 42ce48: ba ff ff 00 00 mov $0xffff,%edx - 42ce4d: 45 31 c0 xor %r8d,%r8d - 42ce50: 83 e1 0f and $0xf,%ecx - 42ce53: 83 e0 0f and $0xf,%eax - 42ce56: 39 c1 cmp %eax,%ecx - 42ce58: 74 26 je 42ce80 <__strcmp_ssse3+0x90> - 42ce5a: 77 07 ja 42ce63 <__strcmp_ssse3+0x73> - 42ce5c: 41 89 d0 mov %edx,%r8d - 42ce5f: 91 xchg %eax,%ecx - 42ce60: 48 87 f7 xchg %rsi,%rdi - 42ce63: 4c 8d 48 0f lea 0xf(%rax),%r9 - 42ce67: 49 29 c9 sub %rcx,%r9 - 42ce6a: 4c 8d 15 bf 63 07 00 lea 0x763bf(%rip),%r10 # 4a3230 - 42ce71: 4f 63 0c 8a movslq (%r10,%r9,4),%r9 - 42ce75: 4f 8d 14 0a lea (%r10,%r9,1),%r10 - 42ce79: 41 ff e2 jmpq *%r10 - 42ce7c: 0f 1f 40 00 nopl 0x0(%rax) - 42ce80: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42ce84: 66 0f ef c0 pxor %xmm0,%xmm0 - 42ce88: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42ce8c: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 42ce90: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42ce94: 66 44 0f d7 c9 pmovmskb %xmm1,%r9d - 42ce99: d3 ea shr %cl,%edx - 42ce9b: 41 d3 e9 shr %cl,%r9d - 42ce9e: 44 29 ca sub %r9d,%edx - 42cea1: 0f 85 5e 11 00 00 jne 42e005 <__strcmp_ssse3+0x1215> - 42cea7: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42ceae: 49 c7 c1 10 00 00 00 mov $0x10,%r9 - 42ceb5: 66 0f ef c0 pxor %xmm0,%xmm0 - 42ceb9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42cec0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42cec5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42ceca: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42cece: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42ced2: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42ced6: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42ceda: 81 ea ff ff 00 00 sub $0xffff,%edx - 42cee0: 0f 85 1a 11 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42cee6: 48 83 c1 10 add $0x10,%rcx - 42ceea: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42ceef: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42cef4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42cef8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42cefc: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42cf00: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42cf04: 81 ea ff ff 00 00 sub $0xffff,%edx - 42cf0a: 0f 85 f0 10 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42cf10: 48 83 c1 10 add $0x10,%rcx - 42cf14: eb aa jmp 42cec0 <__strcmp_ssse3+0xd0> - 42cf16: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42cf1d: 00 00 00 - 42cf20: 66 0f ef c0 pxor %xmm0,%xmm0 - 42cf24: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42cf28: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42cf2c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42cf30: 66 0f 73 fa 0f pslldq $0xf,%xmm2 - 42cf35: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42cf39: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42cf3d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42cf42: d3 ea shr %cl,%edx - 42cf44: 41 d3 e9 shr %cl,%r9d - 42cf47: 44 29 ca sub %r9d,%edx - 42cf4a: 0f 85 b5 10 00 00 jne 42e005 <__strcmp_ssse3+0x1215> - 42cf50: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42cf54: 66 0f ef c0 pxor %xmm0,%xmm0 - 42cf58: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42cf5f: 41 b9 01 00 00 00 mov $0x1,%r9d - 42cf65: 4c 8d 57 01 lea 0x1(%rdi),%r10 - 42cf69: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42cf70: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42cf77: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42cf7e: 00 00 - 42cf80: 49 83 c2 10 add $0x10,%r10 - 42cf84: 7f 7a jg 42d000 <__strcmp_ssse3+0x210> - 42cf86: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42cf8b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42cf90: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42cf94: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 - 42cf9a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42cf9e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42cfa2: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42cfa6: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42cfaa: 81 ea ff ff 00 00 sub $0xffff,%edx - 42cfb0: 0f 85 4a 10 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42cfb6: 48 83 c1 10 add $0x10,%rcx - 42cfba: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42cfbe: 49 83 c2 10 add $0x10,%r10 - 42cfc2: 7f 3c jg 42d000 <__strcmp_ssse3+0x210> - 42cfc4: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42cfc9: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42cfce: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42cfd2: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 - 42cfd8: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42cfdc: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42cfe0: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42cfe4: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42cfe8: 81 ea ff ff 00 00 sub $0xffff,%edx - 42cfee: 0f 85 0c 10 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42cff4: 48 83 c1 10 add $0x10,%rcx - 42cff8: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42cffc: eb 82 jmp 42cf80 <__strcmp_ssse3+0x190> - 42cffe: 66 90 xchg %ax,%ax - 42d000: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42d004: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42d008: f7 c2 fe ff 00 00 test $0xfffe,%edx - 42d00e: 75 10 jne 42d020 <__strcmp_ssse3+0x230> - 42d010: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d014: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d01b: e9 66 ff ff ff jmpq 42cf86 <__strcmp_ssse3+0x196> - 42d020: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d025: 66 0f 73 d8 01 psrldq $0x1,%xmm0 - 42d02a: 66 0f 73 db 01 psrldq $0x1,%xmm3 - 42d02f: e9 bc 0f 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> - 42d034: 66 90 xchg %ax,%ax - 42d036: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42d03d: 00 00 00 - 42d040: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d044: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42d048: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42d04c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d050: 66 0f 73 fa 0e pslldq $0xe,%xmm2 - 42d055: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42d059: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42d05d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42d062: d3 ea shr %cl,%edx - 42d064: 41 d3 e9 shr %cl,%r9d - 42d067: 44 29 ca sub %r9d,%edx - 42d06a: 0f 85 95 0f 00 00 jne 42e005 <__strcmp_ssse3+0x1215> - 42d070: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42d074: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d078: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42d07f: 41 b9 02 00 00 00 mov $0x2,%r9d - 42d085: 4c 8d 57 02 lea 0x2(%rdi),%r10 - 42d089: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42d090: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d097: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42d09e: 00 00 - 42d0a0: 49 83 c2 10 add $0x10,%r10 - 42d0a4: 7f 7a jg 42d120 <__strcmp_ssse3+0x330> - 42d0a6: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d0ab: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d0b0: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d0b4: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 - 42d0ba: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d0be: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d0c2: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d0c6: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d0ca: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d0d0: 0f 85 2a 0f 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d0d6: 48 83 c1 10 add $0x10,%rcx - 42d0da: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d0de: 49 83 c2 10 add $0x10,%r10 - 42d0e2: 7f 3c jg 42d120 <__strcmp_ssse3+0x330> - 42d0e4: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d0e9: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d0ee: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d0f2: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 - 42d0f8: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d0fc: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d100: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d104: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d108: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d10e: 0f 85 ec 0e 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d114: 48 83 c1 10 add $0x10,%rcx - 42d118: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d11c: eb 82 jmp 42d0a0 <__strcmp_ssse3+0x2b0> - 42d11e: 66 90 xchg %ax,%ax - 42d120: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42d124: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42d128: f7 c2 fc ff 00 00 test $0xfffc,%edx - 42d12e: 75 10 jne 42d140 <__strcmp_ssse3+0x350> - 42d130: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d134: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d13b: e9 66 ff ff ff jmpq 42d0a6 <__strcmp_ssse3+0x2b6> - 42d140: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d145: 66 0f 73 d8 02 psrldq $0x2,%xmm0 - 42d14a: 66 0f 73 db 02 psrldq $0x2,%xmm3 - 42d14f: e9 9c 0e 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> - 42d154: 66 90 xchg %ax,%ax - 42d156: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42d15d: 00 00 00 - 42d160: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d164: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42d168: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42d16c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d170: 66 0f 73 fa 0d pslldq $0xd,%xmm2 - 42d175: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42d179: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42d17d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42d182: d3 ea shr %cl,%edx - 42d184: 41 d3 e9 shr %cl,%r9d - 42d187: 44 29 ca sub %r9d,%edx - 42d18a: 0f 85 75 0e 00 00 jne 42e005 <__strcmp_ssse3+0x1215> - 42d190: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42d194: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d198: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42d19f: 41 b9 03 00 00 00 mov $0x3,%r9d - 42d1a5: 4c 8d 57 03 lea 0x3(%rdi),%r10 - 42d1a9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42d1b0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d1b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42d1be: 00 00 - 42d1c0: 49 83 c2 10 add $0x10,%r10 - 42d1c4: 7f 7a jg 42d240 <__strcmp_ssse3+0x450> - 42d1c6: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d1cb: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d1d0: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d1d4: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 - 42d1da: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d1de: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d1e2: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d1e6: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d1ea: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d1f0: 0f 85 0a 0e 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d1f6: 48 83 c1 10 add $0x10,%rcx - 42d1fa: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d1fe: 49 83 c2 10 add $0x10,%r10 - 42d202: 7f 3c jg 42d240 <__strcmp_ssse3+0x450> - 42d204: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d209: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d20e: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d212: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 - 42d218: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d21c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d220: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d224: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d228: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d22e: 0f 85 cc 0d 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d234: 48 83 c1 10 add $0x10,%rcx - 42d238: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d23c: eb 82 jmp 42d1c0 <__strcmp_ssse3+0x3d0> - 42d23e: 66 90 xchg %ax,%ax - 42d240: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42d244: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42d248: f7 c2 f8 ff 00 00 test $0xfff8,%edx - 42d24e: 75 10 jne 42d260 <__strcmp_ssse3+0x470> - 42d250: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d254: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d25b: e9 66 ff ff ff jmpq 42d1c6 <__strcmp_ssse3+0x3d6> - 42d260: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d265: 66 0f 73 d8 03 psrldq $0x3,%xmm0 - 42d26a: 66 0f 73 db 03 psrldq $0x3,%xmm3 - 42d26f: e9 7c 0d 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> - 42d274: 66 90 xchg %ax,%ax - 42d276: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42d27d: 00 00 00 - 42d280: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d284: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42d288: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42d28c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d290: 66 0f 73 fa 0c pslldq $0xc,%xmm2 - 42d295: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42d299: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42d29d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42d2a2: d3 ea shr %cl,%edx - 42d2a4: 41 d3 e9 shr %cl,%r9d - 42d2a7: 44 29 ca sub %r9d,%edx - 42d2aa: 0f 85 55 0d 00 00 jne 42e005 <__strcmp_ssse3+0x1215> - 42d2b0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42d2b4: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d2b8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42d2bf: 41 b9 04 00 00 00 mov $0x4,%r9d - 42d2c5: 4c 8d 57 04 lea 0x4(%rdi),%r10 - 42d2c9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42d2d0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d2d7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42d2de: 00 00 - 42d2e0: 49 83 c2 10 add $0x10,%r10 - 42d2e4: 7f 7a jg 42d360 <__strcmp_ssse3+0x570> - 42d2e6: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d2eb: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d2f0: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d2f4: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 - 42d2fa: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d2fe: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d302: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d306: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d30a: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d310: 0f 85 ea 0c 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d316: 48 83 c1 10 add $0x10,%rcx - 42d31a: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d31e: 49 83 c2 10 add $0x10,%r10 - 42d322: 7f 3c jg 42d360 <__strcmp_ssse3+0x570> - 42d324: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d329: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d32e: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d332: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 - 42d338: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d33c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d340: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d344: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d348: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d34e: 0f 85 ac 0c 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d354: 48 83 c1 10 add $0x10,%rcx - 42d358: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d35c: eb 82 jmp 42d2e0 <__strcmp_ssse3+0x4f0> - 42d35e: 66 90 xchg %ax,%ax - 42d360: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42d364: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42d368: f7 c2 f0 ff 00 00 test $0xfff0,%edx - 42d36e: 75 10 jne 42d380 <__strcmp_ssse3+0x590> - 42d370: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d374: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d37b: e9 66 ff ff ff jmpq 42d2e6 <__strcmp_ssse3+0x4f6> - 42d380: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d385: 66 0f 73 d8 04 psrldq $0x4,%xmm0 - 42d38a: 66 0f 73 db 04 psrldq $0x4,%xmm3 - 42d38f: e9 5c 0c 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> - 42d394: 66 90 xchg %ax,%ax - 42d396: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42d39d: 00 00 00 - 42d3a0: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d3a4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42d3a8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42d3ac: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d3b0: 66 0f 73 fa 0b pslldq $0xb,%xmm2 - 42d3b5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42d3b9: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42d3bd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42d3c2: d3 ea shr %cl,%edx - 42d3c4: 41 d3 e9 shr %cl,%r9d - 42d3c7: 44 29 ca sub %r9d,%edx - 42d3ca: 0f 85 35 0c 00 00 jne 42e005 <__strcmp_ssse3+0x1215> - 42d3d0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42d3d4: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d3d8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42d3df: 41 b9 05 00 00 00 mov $0x5,%r9d - 42d3e5: 4c 8d 57 05 lea 0x5(%rdi),%r10 - 42d3e9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42d3f0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d3f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42d3fe: 00 00 - 42d400: 49 83 c2 10 add $0x10,%r10 - 42d404: 7f 7a jg 42d480 <__strcmp_ssse3+0x690> - 42d406: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d40b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d410: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d414: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 - 42d41a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d41e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d422: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d426: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d42a: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d430: 0f 85 ca 0b 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d436: 48 83 c1 10 add $0x10,%rcx - 42d43a: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d43e: 49 83 c2 10 add $0x10,%r10 - 42d442: 7f 3c jg 42d480 <__strcmp_ssse3+0x690> - 42d444: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d449: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d44e: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d452: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 - 42d458: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d45c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d460: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d464: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d468: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d46e: 0f 85 8c 0b 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d474: 48 83 c1 10 add $0x10,%rcx - 42d478: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d47c: eb 82 jmp 42d400 <__strcmp_ssse3+0x610> - 42d47e: 66 90 xchg %ax,%ax - 42d480: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42d484: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42d488: f7 c2 e0 ff 00 00 test $0xffe0,%edx - 42d48e: 75 10 jne 42d4a0 <__strcmp_ssse3+0x6b0> - 42d490: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d494: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d49b: e9 66 ff ff ff jmpq 42d406 <__strcmp_ssse3+0x616> - 42d4a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d4a5: 66 0f 73 d8 05 psrldq $0x5,%xmm0 - 42d4aa: 66 0f 73 db 05 psrldq $0x5,%xmm3 - 42d4af: e9 3c 0b 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> - 42d4b4: 66 90 xchg %ax,%ax - 42d4b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42d4bd: 00 00 00 - 42d4c0: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d4c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42d4c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42d4cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d4d0: 66 0f 73 fa 0a pslldq $0xa,%xmm2 - 42d4d5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42d4d9: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42d4dd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42d4e2: d3 ea shr %cl,%edx - 42d4e4: 41 d3 e9 shr %cl,%r9d - 42d4e7: 44 29 ca sub %r9d,%edx - 42d4ea: 0f 85 15 0b 00 00 jne 42e005 <__strcmp_ssse3+0x1215> - 42d4f0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42d4f4: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d4f8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42d4ff: 41 b9 06 00 00 00 mov $0x6,%r9d - 42d505: 4c 8d 57 06 lea 0x6(%rdi),%r10 - 42d509: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42d510: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d517: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42d51e: 00 00 - 42d520: 49 83 c2 10 add $0x10,%r10 - 42d524: 7f 7a jg 42d5a0 <__strcmp_ssse3+0x7b0> - 42d526: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d52b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d530: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d534: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 - 42d53a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d53e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d542: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d546: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d54a: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d550: 0f 85 aa 0a 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d556: 48 83 c1 10 add $0x10,%rcx - 42d55a: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d55e: 49 83 c2 10 add $0x10,%r10 - 42d562: 7f 3c jg 42d5a0 <__strcmp_ssse3+0x7b0> - 42d564: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d569: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d56e: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d572: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 - 42d578: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d57c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d580: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d584: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d588: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d58e: 0f 85 6c 0a 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d594: 48 83 c1 10 add $0x10,%rcx - 42d598: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d59c: eb 82 jmp 42d520 <__strcmp_ssse3+0x730> - 42d59e: 66 90 xchg %ax,%ax - 42d5a0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42d5a4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42d5a8: f7 c2 c0 ff 00 00 test $0xffc0,%edx - 42d5ae: 75 10 jne 42d5c0 <__strcmp_ssse3+0x7d0> - 42d5b0: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d5b4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d5bb: e9 66 ff ff ff jmpq 42d526 <__strcmp_ssse3+0x736> - 42d5c0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d5c5: 66 0f 73 d8 06 psrldq $0x6,%xmm0 - 42d5ca: 66 0f 73 db 06 psrldq $0x6,%xmm3 - 42d5cf: e9 1c 0a 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> - 42d5d4: 66 90 xchg %ax,%ax - 42d5d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42d5dd: 00 00 00 - 42d5e0: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d5e4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42d5e8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42d5ec: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d5f0: 66 0f 73 fa 09 pslldq $0x9,%xmm2 - 42d5f5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42d5f9: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42d5fd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42d602: d3 ea shr %cl,%edx - 42d604: 41 d3 e9 shr %cl,%r9d - 42d607: 44 29 ca sub %r9d,%edx - 42d60a: 0f 85 f5 09 00 00 jne 42e005 <__strcmp_ssse3+0x1215> - 42d610: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42d614: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d618: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42d61f: 41 b9 07 00 00 00 mov $0x7,%r9d - 42d625: 4c 8d 57 07 lea 0x7(%rdi),%r10 - 42d629: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42d630: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d637: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42d63e: 00 00 - 42d640: 49 83 c2 10 add $0x10,%r10 - 42d644: 7f 7a jg 42d6c0 <__strcmp_ssse3+0x8d0> - 42d646: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d64b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d650: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d654: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 - 42d65a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d65e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d662: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d666: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d66a: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d670: 0f 85 8a 09 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d676: 48 83 c1 10 add $0x10,%rcx - 42d67a: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d67e: 49 83 c2 10 add $0x10,%r10 - 42d682: 7f 3c jg 42d6c0 <__strcmp_ssse3+0x8d0> - 42d684: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d689: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d68e: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d692: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 - 42d698: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d69c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d6a0: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d6a4: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d6a8: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d6ae: 0f 85 4c 09 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d6b4: 48 83 c1 10 add $0x10,%rcx - 42d6b8: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d6bc: eb 82 jmp 42d640 <__strcmp_ssse3+0x850> - 42d6be: 66 90 xchg %ax,%ax - 42d6c0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42d6c4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42d6c8: f7 c2 80 ff 00 00 test $0xff80,%edx - 42d6ce: 75 10 jne 42d6e0 <__strcmp_ssse3+0x8f0> - 42d6d0: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d6d4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d6db: e9 66 ff ff ff jmpq 42d646 <__strcmp_ssse3+0x856> - 42d6e0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d6e5: 66 0f 73 d8 07 psrldq $0x7,%xmm0 - 42d6ea: 66 0f 73 db 07 psrldq $0x7,%xmm3 - 42d6ef: e9 fc 08 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> - 42d6f4: 66 90 xchg %ax,%ax - 42d6f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42d6fd: 00 00 00 - 42d700: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d704: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42d708: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42d70c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d710: 66 0f 73 fa 08 pslldq $0x8,%xmm2 - 42d715: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42d719: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42d71d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42d722: d3 ea shr %cl,%edx - 42d724: 41 d3 e9 shr %cl,%r9d - 42d727: 44 29 ca sub %r9d,%edx - 42d72a: 0f 85 d5 08 00 00 jne 42e005 <__strcmp_ssse3+0x1215> - 42d730: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42d734: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d738: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42d73f: 41 b9 08 00 00 00 mov $0x8,%r9d - 42d745: 4c 8d 57 08 lea 0x8(%rdi),%r10 - 42d749: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42d750: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d757: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42d75e: 00 00 - 42d760: 49 83 c2 10 add $0x10,%r10 - 42d764: 7f 7a jg 42d7e0 <__strcmp_ssse3+0x9f0> - 42d766: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d76b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d770: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d774: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 - 42d77a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d77e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d782: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d786: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d78a: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d790: 0f 85 6a 08 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d796: 48 83 c1 10 add $0x10,%rcx - 42d79a: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d79e: 49 83 c2 10 add $0x10,%r10 - 42d7a2: 7f 3c jg 42d7e0 <__strcmp_ssse3+0x9f0> - 42d7a4: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d7a9: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d7ae: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d7b2: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 - 42d7b8: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d7bc: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d7c0: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d7c4: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d7c8: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d7ce: 0f 85 2c 08 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d7d4: 48 83 c1 10 add $0x10,%rcx - 42d7d8: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d7dc: eb 82 jmp 42d760 <__strcmp_ssse3+0x970> - 42d7de: 66 90 xchg %ax,%ax - 42d7e0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42d7e4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42d7e8: f7 c2 00 ff 00 00 test $0xff00,%edx - 42d7ee: 75 10 jne 42d800 <__strcmp_ssse3+0xa10> - 42d7f0: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d7f4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d7fb: e9 66 ff ff ff jmpq 42d766 <__strcmp_ssse3+0x976> - 42d800: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d805: 66 0f 73 d8 08 psrldq $0x8,%xmm0 - 42d80a: 66 0f 73 db 08 psrldq $0x8,%xmm3 - 42d80f: e9 dc 07 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> - 42d814: 66 90 xchg %ax,%ax - 42d816: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42d81d: 00 00 00 - 42d820: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d824: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42d828: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42d82c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d830: 66 0f 73 fa 07 pslldq $0x7,%xmm2 - 42d835: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42d839: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42d83d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42d842: d3 ea shr %cl,%edx - 42d844: 41 d3 e9 shr %cl,%r9d - 42d847: 44 29 ca sub %r9d,%edx - 42d84a: 0f 85 b5 07 00 00 jne 42e005 <__strcmp_ssse3+0x1215> - 42d850: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42d854: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d858: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42d85f: 41 b9 09 00 00 00 mov $0x9,%r9d - 42d865: 4c 8d 57 09 lea 0x9(%rdi),%r10 - 42d869: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42d870: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d877: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42d87e: 00 00 - 42d880: 49 83 c2 10 add $0x10,%r10 - 42d884: 7f 7a jg 42d900 <__strcmp_ssse3+0xb10> - 42d886: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d88b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d890: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d894: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 - 42d89a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d89e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d8a2: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d8a6: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d8aa: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d8b0: 0f 85 4a 07 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d8b6: 48 83 c1 10 add $0x10,%rcx - 42d8ba: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d8be: 49 83 c2 10 add $0x10,%r10 - 42d8c2: 7f 3c jg 42d900 <__strcmp_ssse3+0xb10> - 42d8c4: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d8c9: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d8ce: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d8d2: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 - 42d8d8: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d8dc: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d8e0: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d8e4: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d8e8: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d8ee: 0f 85 0c 07 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d8f4: 48 83 c1 10 add $0x10,%rcx - 42d8f8: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d8fc: eb 82 jmp 42d880 <__strcmp_ssse3+0xa90> - 42d8fe: 66 90 xchg %ax,%ax - 42d900: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42d904: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42d908: f7 c2 00 fe 00 00 test $0xfe00,%edx - 42d90e: 75 10 jne 42d920 <__strcmp_ssse3+0xb30> - 42d910: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d914: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d91b: e9 66 ff ff ff jmpq 42d886 <__strcmp_ssse3+0xa96> - 42d920: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d925: 66 0f 73 d8 09 psrldq $0x9,%xmm0 - 42d92a: 66 0f 73 db 09 psrldq $0x9,%xmm3 - 42d92f: e9 bc 06 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> - 42d934: 66 90 xchg %ax,%ax - 42d936: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42d93d: 00 00 00 - 42d940: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d944: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42d948: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42d94c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d950: 66 0f 73 fa 06 pslldq $0x6,%xmm2 - 42d955: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42d959: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42d95d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42d962: d3 ea shr %cl,%edx - 42d964: 41 d3 e9 shr %cl,%r9d - 42d967: 44 29 ca sub %r9d,%edx - 42d96a: 0f 85 95 06 00 00 jne 42e005 <__strcmp_ssse3+0x1215> - 42d970: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42d974: 66 0f ef c0 pxor %xmm0,%xmm0 - 42d978: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42d97f: 41 b9 0a 00 00 00 mov $0xa,%r9d - 42d985: 4c 8d 57 0a lea 0xa(%rdi),%r10 - 42d989: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42d990: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42d997: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42d99e: 00 00 - 42d9a0: 49 83 c2 10 add $0x10,%r10 - 42d9a4: 7f 7a jg 42da20 <__strcmp_ssse3+0xc30> - 42d9a6: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d9ab: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d9b0: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d9b4: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 - 42d9ba: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d9be: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42d9c2: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42d9c6: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42d9ca: 81 ea ff ff 00 00 sub $0xffff,%edx - 42d9d0: 0f 85 2a 06 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42d9d6: 48 83 c1 10 add $0x10,%rcx - 42d9da: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42d9de: 49 83 c2 10 add $0x10,%r10 - 42d9e2: 7f 3c jg 42da20 <__strcmp_ssse3+0xc30> - 42d9e4: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42d9e9: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42d9ee: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42d9f2: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 - 42d9f8: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42d9fc: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42da00: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42da04: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42da08: 81 ea ff ff 00 00 sub $0xffff,%edx - 42da0e: 0f 85 ec 05 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42da14: 48 83 c1 10 add $0x10,%rcx - 42da18: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42da1c: eb 82 jmp 42d9a0 <__strcmp_ssse3+0xbb0> - 42da1e: 66 90 xchg %ax,%ax - 42da20: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42da24: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42da28: f7 c2 00 fc 00 00 test $0xfc00,%edx - 42da2e: 75 10 jne 42da40 <__strcmp_ssse3+0xc50> - 42da30: 66 0f ef c0 pxor %xmm0,%xmm0 - 42da34: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42da3b: e9 66 ff ff ff jmpq 42d9a6 <__strcmp_ssse3+0xbb6> - 42da40: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42da45: 66 0f 73 d8 0a psrldq $0xa,%xmm0 - 42da4a: 66 0f 73 db 0a psrldq $0xa,%xmm3 - 42da4f: e9 9c 05 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> - 42da54: 66 90 xchg %ax,%ax - 42da56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42da5d: 00 00 00 - 42da60: 66 0f ef c0 pxor %xmm0,%xmm0 - 42da64: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42da68: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42da6c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42da70: 66 0f 73 fa 05 pslldq $0x5,%xmm2 - 42da75: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42da79: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42da7d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42da82: d3 ea shr %cl,%edx - 42da84: 41 d3 e9 shr %cl,%r9d - 42da87: 44 29 ca sub %r9d,%edx - 42da8a: 0f 85 75 05 00 00 jne 42e005 <__strcmp_ssse3+0x1215> - 42da90: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42da94: 66 0f ef c0 pxor %xmm0,%xmm0 - 42da98: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42da9f: 41 b9 0b 00 00 00 mov $0xb,%r9d - 42daa5: 4c 8d 57 0b lea 0xb(%rdi),%r10 - 42daa9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42dab0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42dab7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42dabe: 00 00 - 42dac0: 49 83 c2 10 add $0x10,%r10 - 42dac4: 7f 7a jg 42db40 <__strcmp_ssse3+0xd50> - 42dac6: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42dacb: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42dad0: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42dad4: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 - 42dada: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42dade: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42dae2: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42dae6: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42daea: 81 ea ff ff 00 00 sub $0xffff,%edx - 42daf0: 0f 85 0a 05 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42daf6: 48 83 c1 10 add $0x10,%rcx - 42dafa: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42dafe: 49 83 c2 10 add $0x10,%r10 - 42db02: 7f 3c jg 42db40 <__strcmp_ssse3+0xd50> - 42db04: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42db09: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42db0e: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42db12: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 - 42db18: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42db1c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42db20: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42db24: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42db28: 81 ea ff ff 00 00 sub $0xffff,%edx - 42db2e: 0f 85 cc 04 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42db34: 48 83 c1 10 add $0x10,%rcx - 42db38: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42db3c: eb 82 jmp 42dac0 <__strcmp_ssse3+0xcd0> - 42db3e: 66 90 xchg %ax,%ax - 42db40: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42db44: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42db48: f7 c2 00 f8 00 00 test $0xf800,%edx - 42db4e: 75 10 jne 42db60 <__strcmp_ssse3+0xd70> - 42db50: 66 0f ef c0 pxor %xmm0,%xmm0 - 42db54: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42db5b: e9 66 ff ff ff jmpq 42dac6 <__strcmp_ssse3+0xcd6> - 42db60: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42db65: 66 0f 73 d8 0b psrldq $0xb,%xmm0 - 42db6a: 66 0f 73 db 0b psrldq $0xb,%xmm3 - 42db6f: e9 7c 04 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> - 42db74: 66 90 xchg %ax,%ax - 42db76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42db7d: 00 00 00 - 42db80: 66 0f ef c0 pxor %xmm0,%xmm0 - 42db84: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42db88: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42db8c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42db90: 66 0f 73 fa 04 pslldq $0x4,%xmm2 - 42db95: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42db99: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42db9d: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42dba2: d3 ea shr %cl,%edx - 42dba4: 41 d3 e9 shr %cl,%r9d - 42dba7: 44 29 ca sub %r9d,%edx - 42dbaa: 0f 85 55 04 00 00 jne 42e005 <__strcmp_ssse3+0x1215> - 42dbb0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42dbb4: 66 0f ef c0 pxor %xmm0,%xmm0 - 42dbb8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42dbbf: 41 b9 0c 00 00 00 mov $0xc,%r9d - 42dbc5: 4c 8d 57 0c lea 0xc(%rdi),%r10 - 42dbc9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42dbd0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42dbd7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42dbde: 00 00 - 42dbe0: 49 83 c2 10 add $0x10,%r10 - 42dbe4: 7f 7a jg 42dc60 <__strcmp_ssse3+0xe70> - 42dbe6: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42dbeb: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42dbf0: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42dbf4: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 - 42dbfa: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42dbfe: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42dc02: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42dc06: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42dc0a: 81 ea ff ff 00 00 sub $0xffff,%edx - 42dc10: 0f 85 ea 03 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42dc16: 48 83 c1 10 add $0x10,%rcx - 42dc1a: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42dc1e: 49 83 c2 10 add $0x10,%r10 - 42dc22: 7f 3c jg 42dc60 <__strcmp_ssse3+0xe70> - 42dc24: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42dc29: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42dc2e: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42dc32: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 - 42dc38: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42dc3c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42dc40: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42dc44: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42dc48: 81 ea ff ff 00 00 sub $0xffff,%edx - 42dc4e: 0f 85 ac 03 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42dc54: 48 83 c1 10 add $0x10,%rcx - 42dc58: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42dc5c: eb 82 jmp 42dbe0 <__strcmp_ssse3+0xdf0> - 42dc5e: 66 90 xchg %ax,%ax - 42dc60: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42dc64: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42dc68: f7 c2 00 f0 00 00 test $0xf000,%edx - 42dc6e: 75 10 jne 42dc80 <__strcmp_ssse3+0xe90> - 42dc70: 66 0f ef c0 pxor %xmm0,%xmm0 - 42dc74: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42dc7b: e9 66 ff ff ff jmpq 42dbe6 <__strcmp_ssse3+0xdf6> - 42dc80: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42dc85: 66 0f 73 d8 0c psrldq $0xc,%xmm0 - 42dc8a: 66 0f 73 db 0c psrldq $0xc,%xmm3 - 42dc8f: e9 5c 03 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> - 42dc94: 66 90 xchg %ax,%ax - 42dc96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42dc9d: 00 00 00 - 42dca0: 66 0f ef c0 pxor %xmm0,%xmm0 - 42dca4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42dca8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42dcac: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42dcb0: 66 0f 73 fa 03 pslldq $0x3,%xmm2 - 42dcb5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42dcb9: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42dcbd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42dcc2: d3 ea shr %cl,%edx - 42dcc4: 41 d3 e9 shr %cl,%r9d - 42dcc7: 44 29 ca sub %r9d,%edx - 42dcca: 0f 85 35 03 00 00 jne 42e005 <__strcmp_ssse3+0x1215> - 42dcd0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42dcd4: 66 0f ef c0 pxor %xmm0,%xmm0 - 42dcd8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42dcdf: 41 b9 0d 00 00 00 mov $0xd,%r9d - 42dce5: 4c 8d 57 0d lea 0xd(%rdi),%r10 - 42dce9: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42dcf0: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42dcf7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42dcfe: 00 00 - 42dd00: 49 83 c2 10 add $0x10,%r10 - 42dd04: 7f 7a jg 42dd80 <__strcmp_ssse3+0xf90> - 42dd06: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42dd0b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42dd10: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42dd14: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 - 42dd1a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42dd1e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42dd22: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42dd26: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42dd2a: 81 ea ff ff 00 00 sub $0xffff,%edx - 42dd30: 0f 85 ca 02 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42dd36: 48 83 c1 10 add $0x10,%rcx - 42dd3a: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42dd3e: 49 83 c2 10 add $0x10,%r10 - 42dd42: 7f 3c jg 42dd80 <__strcmp_ssse3+0xf90> - 42dd44: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42dd49: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42dd4e: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42dd52: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 - 42dd58: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42dd5c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42dd60: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42dd64: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42dd68: 81 ea ff ff 00 00 sub $0xffff,%edx - 42dd6e: 0f 85 8c 02 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42dd74: 48 83 c1 10 add $0x10,%rcx - 42dd78: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42dd7c: eb 82 jmp 42dd00 <__strcmp_ssse3+0xf10> - 42dd7e: 66 90 xchg %ax,%ax - 42dd80: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42dd84: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42dd88: f7 c2 00 e0 00 00 test $0xe000,%edx - 42dd8e: 75 10 jne 42dda0 <__strcmp_ssse3+0xfb0> - 42dd90: 66 0f ef c0 pxor %xmm0,%xmm0 - 42dd94: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42dd9b: e9 66 ff ff ff jmpq 42dd06 <__strcmp_ssse3+0xf16> - 42dda0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42dda5: 66 0f 73 d8 0d psrldq $0xd,%xmm0 - 42ddaa: 66 0f 73 db 0d psrldq $0xd,%xmm3 - 42ddaf: e9 3c 02 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> - 42ddb4: 66 90 xchg %ax,%ax - 42ddb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42ddbd: 00 00 00 - 42ddc0: 66 0f ef c0 pxor %xmm0,%xmm0 - 42ddc4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42ddc8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42ddcc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42ddd0: 66 0f 73 fa 02 pslldq $0x2,%xmm2 - 42ddd5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42ddd9: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42dddd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42dde2: d3 ea shr %cl,%edx - 42dde4: 41 d3 e9 shr %cl,%r9d - 42dde7: 44 29 ca sub %r9d,%edx - 42ddea: 0f 85 15 02 00 00 jne 42e005 <__strcmp_ssse3+0x1215> - 42ddf0: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42ddf4: 66 0f ef c0 pxor %xmm0,%xmm0 - 42ddf8: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42ddff: 41 b9 0e 00 00 00 mov $0xe,%r9d - 42de05: 4c 8d 57 0e lea 0xe(%rdi),%r10 - 42de09: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42de10: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42de17: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42de1e: 00 00 - 42de20: 49 83 c2 10 add $0x10,%r10 - 42de24: 7f 7a jg 42dea0 <__strcmp_ssse3+0x10b0> - 42de26: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42de2b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42de30: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42de34: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 - 42de3a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42de3e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42de42: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42de46: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42de4a: 81 ea ff ff 00 00 sub $0xffff,%edx - 42de50: 0f 85 aa 01 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42de56: 48 83 c1 10 add $0x10,%rcx - 42de5a: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42de5e: 49 83 c2 10 add $0x10,%r10 - 42de62: 7f 3c jg 42dea0 <__strcmp_ssse3+0x10b0> - 42de64: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42de69: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42de6e: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42de72: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 - 42de78: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42de7c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42de80: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42de84: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42de88: 81 ea ff ff 00 00 sub $0xffff,%edx - 42de8e: 0f 85 6c 01 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42de94: 48 83 c1 10 add $0x10,%rcx - 42de98: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42de9c: eb 82 jmp 42de20 <__strcmp_ssse3+0x1030> - 42de9e: 66 90 xchg %ax,%ax - 42dea0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42dea4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42dea8: f7 c2 00 c0 00 00 test $0xc000,%edx - 42deae: 75 10 jne 42dec0 <__strcmp_ssse3+0x10d0> - 42deb0: 66 0f ef c0 pxor %xmm0,%xmm0 - 42deb4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42debb: e9 66 ff ff ff jmpq 42de26 <__strcmp_ssse3+0x1036> - 42dec0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42dec5: 66 0f 73 d8 0e psrldq $0xe,%xmm0 - 42deca: 66 0f 73 db 0e psrldq $0xe,%xmm3 - 42decf: e9 1c 01 00 00 jmpq 42dff0 <__strcmp_ssse3+0x1200> - 42ded4: 66 90 xchg %ax,%ax - 42ded6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42dedd: 00 00 00 - 42dee0: 66 0f ef c0 pxor %xmm0,%xmm0 - 42dee4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42dee8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42deec: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42def0: 66 0f 73 fa 01 pslldq $0x1,%xmm2 - 42def5: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42def9: 66 0f f8 d0 psubb %xmm0,%xmm2 - 42defd: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 42df02: d3 ea shr %cl,%edx - 42df04: 41 d3 e9 shr %cl,%r9d - 42df07: 44 29 ca sub %r9d,%edx - 42df0a: 0f 85 f5 00 00 00 jne 42e005 <__strcmp_ssse3+0x1215> - 42df10: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 42df14: 66 0f ef c0 pxor %xmm0,%xmm0 - 42df18: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 42df1f: 41 b9 0f 00 00 00 mov $0xf,%r9d - 42df25: 4c 8d 57 0f lea 0xf(%rdi),%r10 - 42df29: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 42df30: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42df37: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 42df3e: 00 00 - 42df40: 49 83 c2 10 add $0x10,%r10 - 42df44: 7f 7a jg 42dfc0 <__strcmp_ssse3+0x11d0> - 42df46: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42df4b: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42df50: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42df54: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 - 42df5a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42df5e: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42df62: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42df66: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42df6a: 81 ea ff ff 00 00 sub $0xffff,%edx - 42df70: 0f 85 8a 00 00 00 jne 42e000 <__strcmp_ssse3+0x1210> - 42df76: 48 83 c1 10 add $0x10,%rcx - 42df7a: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42df7e: 49 83 c2 10 add $0x10,%r10 - 42df82: 7f 3c jg 42dfc0 <__strcmp_ssse3+0x11d0> - 42df84: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42df89: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 42df8e: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 42df92: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 - 42df98: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42df9c: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 42dfa0: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42dfa4: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42dfa8: 81 ea ff ff 00 00 sub $0xffff,%edx - 42dfae: 75 50 jne 42e000 <__strcmp_ssse3+0x1210> - 42dfb0: 48 83 c1 10 add $0x10,%rcx - 42dfb4: 66 0f 6f dc movdqa %xmm4,%xmm3 - 42dfb8: eb 86 jmp 42df40 <__strcmp_ssse3+0x1150> - 42dfba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 42dfc0: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 42dfc4: 66 0f d7 d0 pmovmskb %xmm0,%edx - 42dfc8: f7 c2 00 80 00 00 test $0x8000,%edx - 42dfce: 75 10 jne 42dfe0 <__strcmp_ssse3+0x11f0> - 42dfd0: 66 0f ef c0 pxor %xmm0,%xmm0 - 42dfd4: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 42dfdb: e9 66 ff ff ff jmpq 42df46 <__strcmp_ssse3+0x1156> - 42dfe0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 42dfe5: 66 0f 73 db 0f psrldq $0xf,%xmm3 - 42dfea: 66 0f 73 d8 0f psrldq $0xf,%xmm0 - 42dfef: 90 nop - 42dff0: 66 0f 74 cb pcmpeqb %xmm3,%xmm1 - 42dff4: 66 0f f8 c8 psubb %xmm0,%xmm1 - 42dff8: 66 0f d7 d1 pmovmskb %xmm1,%edx - 42dffc: f7 d2 not %edx - 42dffe: 66 90 xchg %ax,%ax - 42e000: 49 8d 44 09 f0 lea -0x10(%r9,%rcx,1),%rax - 42e005: 48 8d 3c 07 lea (%rdi,%rax,1),%rdi - 42e009: 48 8d 34 0e lea (%rsi,%rcx,1),%rsi - 42e00d: 45 85 c0 test %r8d,%r8d - 42e010: 74 0e je 42e020 <__strcmp_ssse3+0x1230> - 42e012: 48 87 f7 xchg %rsi,%rdi - 42e015: 90 nop - 42e016: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42e01d: 00 00 00 - 42e020: 48 0f bc d2 bsf %rdx,%rdx - 42e024: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx - 42e028: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax - 42e02c: 29 c8 sub %ecx,%eax - 42e02e: c3 retq - 42e02f: 31 c0 xor %eax,%eax - 42e031: c3 retq - 42e032: 0f 1f 40 00 nopl 0x0(%rax) - 42e036: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42e03d: 00 00 00 - 42e040: 0f b6 0e movzbl (%rsi),%ecx - 42e043: 0f b6 07 movzbl (%rdi),%eax - 42e046: 29 c8 sub %ecx,%eax - 42e048: c3 retq - 42e049: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -000000000042e050 <__strcmp_sse2_unaligned>: - 42e050: 89 f8 mov %edi,%eax - 42e052: 31 d2 xor %edx,%edx - 42e054: 66 0f ef ff pxor %xmm7,%xmm7 - 42e058: 09 f0 or %esi,%eax - 42e05a: 25 ff 0f 00 00 and $0xfff,%eax - 42e05f: 3d c0 0f 00 00 cmp $0xfc0,%eax - 42e064: 0f 8f 78 02 00 00 jg 42e2e2 <__strcmp_sse2_unaligned+0x292> - 42e06a: f3 0f 6f 0f movdqu (%rdi),%xmm1 - 42e06e: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 42e072: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42e076: 66 0f da c1 pminub %xmm1,%xmm0 - 42e07a: 66 0f ef c9 pxor %xmm1,%xmm1 - 42e07e: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42e082: 66 0f d7 c0 pmovmskb %xmm0,%eax - 42e086: 48 85 c0 test %rax,%rax - 42e089: 74 15 je 42e0a0 <__strcmp_sse2_unaligned+0x50> - 42e08b: 48 0f bc d0 bsf %rax,%rdx - 42e08f: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax - 42e093: 0f b6 14 16 movzbl (%rsi,%rdx,1),%edx - 42e097: 29 d0 sub %edx,%eax - 42e099: c3 retq - 42e09a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 42e0a0: f3 0f 6f 77 10 movdqu 0x10(%rdi),%xmm6 - 42e0a5: f3 0f 6f 5e 10 movdqu 0x10(%rsi),%xmm3 - 42e0aa: f3 0f 6f 6f 20 movdqu 0x20(%rdi),%xmm5 - 42e0af: 66 0f 74 de pcmpeqb %xmm6,%xmm3 - 42e0b3: f3 0f 6f 56 20 movdqu 0x20(%rsi),%xmm2 - 42e0b8: 66 0f da de pminub %xmm6,%xmm3 - 42e0bc: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 42e0c0: f3 0f 6f 67 30 movdqu 0x30(%rdi),%xmm4 - 42e0c5: 66 0f 74 d5 pcmpeqb %xmm5,%xmm2 - 42e0c9: 66 0f d7 d3 pmovmskb %xmm3,%edx - 42e0cd: f3 0f 6f 46 30 movdqu 0x30(%rsi),%xmm0 - 42e0d2: 66 0f da d5 pminub %xmm5,%xmm2 - 42e0d6: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 42e0da: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 - 42e0de: 66 0f d7 c2 pmovmskb %xmm2,%eax - 42e0e2: 48 c1 e2 10 shl $0x10,%rdx - 42e0e6: 66 0f da c4 pminub %xmm4,%xmm0 - 42e0ea: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 42e0ee: 48 c1 e0 20 shl $0x20,%rax - 42e0f2: 48 09 d0 or %rdx,%rax - 42e0f5: 66 0f d7 c8 pmovmskb %xmm0,%ecx - 42e0f9: 48 89 ca mov %rcx,%rdx - 42e0fc: 48 c1 e2 30 shl $0x30,%rdx - 42e100: 48 09 d0 or %rdx,%rax - 42e103: 75 86 jne 42e08b <__strcmp_sse2_unaligned+0x3b> - 42e105: 48 8d 57 40 lea 0x40(%rdi),%rdx - 42e109: b9 00 10 00 00 mov $0x1000,%ecx - 42e10e: 66 45 0f ef c9 pxor %xmm9,%xmm9 - 42e113: 48 83 e2 c0 and $0xffffffffffffffc0,%rdx - 42e117: 48 29 fa sub %rdi,%rdx - 42e11a: 48 8d 04 17 lea (%rdi,%rdx,1),%rax - 42e11e: 48 01 f2 add %rsi,%rdx - 42e121: 48 89 d6 mov %rdx,%rsi - 42e124: 81 e6 ff 0f 00 00 and $0xfff,%esi - 42e12a: 48 29 f1 sub %rsi,%rcx - 42e12d: 48 c1 e9 06 shr $0x6,%rcx - 42e131: 48 89 ce mov %rcx,%rsi - 42e134: eb 12 jmp 42e148 <__strcmp_sse2_unaligned+0xf8> - 42e136: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42e13d: 00 00 00 - 42e140: 48 83 c0 40 add $0x40,%rax - 42e144: 48 83 c2 40 add $0x40,%rdx - 42e148: 48 85 f6 test %rsi,%rsi - 42e14b: 48 8d 76 ff lea -0x1(%rsi),%rsi - 42e14f: 0f 84 bb 00 00 00 je 42e210 <__strcmp_sse2_unaligned+0x1c0> - 42e155: f3 0f 6f 02 movdqu (%rdx),%xmm0 - 42e159: f3 0f 6f 4a 10 movdqu 0x10(%rdx),%xmm1 - 42e15e: 66 0f 6f 10 movdqa (%rax),%xmm2 - 42e162: 66 0f 6f 58 10 movdqa 0x10(%rax),%xmm3 - 42e167: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 42e16b: f3 0f 6f 6a 20 movdqu 0x20(%rdx),%xmm5 - 42e170: 66 0f 74 cb pcmpeqb %xmm3,%xmm1 - 42e174: 66 0f da c2 pminub %xmm2,%xmm0 - 42e178: f3 0f 6f 72 30 movdqu 0x30(%rdx),%xmm6 - 42e17d: 66 0f da cb pminub %xmm3,%xmm1 - 42e181: 66 0f 6f 50 20 movdqa 0x20(%rax),%xmm2 - 42e186: 66 0f da c1 pminub %xmm1,%xmm0 - 42e18a: 66 0f 6f 58 30 movdqa 0x30(%rax),%xmm3 - 42e18f: 66 0f 74 ea pcmpeqb %xmm2,%xmm5 - 42e193: 66 0f 74 f3 pcmpeqb %xmm3,%xmm6 - 42e197: 66 0f da ea pminub %xmm2,%xmm5 - 42e19b: 66 0f da f3 pminub %xmm3,%xmm6 - 42e19f: 66 0f da c5 pminub %xmm5,%xmm0 - 42e1a3: 66 0f da c6 pminub %xmm6,%xmm0 - 42e1a7: 66 0f 74 c7 pcmpeqb %xmm7,%xmm0 - 42e1ab: 66 0f d7 c8 pmovmskb %xmm0,%ecx - 42e1af: 85 c9 test %ecx,%ecx - 42e1b1: 74 8d je 42e140 <__strcmp_sse2_unaligned+0xf0> - 42e1b3: 66 0f 74 ef pcmpeqb %xmm7,%xmm5 - 42e1b7: f3 0f 6f 02 movdqu (%rdx),%xmm0 - 42e1bb: 66 0f 74 cf pcmpeqb %xmm7,%xmm1 - 42e1bf: 66 0f 6f 10 movdqa (%rax),%xmm2 - 42e1c3: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 42e1c7: 66 0f da c2 pminub %xmm2,%xmm0 - 42e1cb: 66 0f 74 f7 pcmpeqb %xmm7,%xmm6 - 42e1cf: 66 0f 74 c7 pcmpeqb %xmm7,%xmm0 - 42e1d3: 66 0f d7 c9 pmovmskb %xmm1,%ecx - 42e1d7: 66 44 0f d7 c5 pmovmskb %xmm5,%r8d - 42e1dc: 66 0f d7 f8 pmovmskb %xmm0,%edi - 42e1e0: 48 c1 e1 10 shl $0x10,%rcx - 42e1e4: 49 c1 e0 20 shl $0x20,%r8 - 42e1e8: 66 0f d7 f6 pmovmskb %xmm6,%esi - 42e1ec: 4c 09 c1 or %r8,%rcx - 42e1ef: 48 09 f9 or %rdi,%rcx - 42e1f2: 48 c1 e6 30 shl $0x30,%rsi - 42e1f6: 48 09 f1 or %rsi,%rcx - 42e1f9: 48 0f bc c9 bsf %rcx,%rcx - 42e1fd: 0f b6 04 08 movzbl (%rax,%rcx,1),%eax - 42e201: 0f b6 14 0a movzbl (%rdx,%rcx,1),%edx - 42e205: 29 d0 sub %edx,%eax - 42e207: c3 retq - 42e208: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42e20f: 00 - 42e210: 4d 31 d2 xor %r10,%r10 - 42e213: 49 89 d1 mov %rdx,%r9 - 42e216: 49 83 e1 3f and $0x3f,%r9 - 42e21a: 4d 29 ca sub %r9,%r10 - 42e21d: 66 42 0f 6f 04 12 movdqa (%rdx,%r10,1),%xmm0 - 42e223: 66 42 0f 6f 4c 12 10 movdqa 0x10(%rdx,%r10,1),%xmm1 - 42e22a: f3 42 0f 6f 14 10 movdqu (%rax,%r10,1),%xmm2 - 42e230: f3 42 0f 6f 5c 10 10 movdqu 0x10(%rax,%r10,1),%xmm3 - 42e237: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 42e23b: 66 42 0f 6f 6c 12 20 movdqa 0x20(%rdx,%r10,1),%xmm5 - 42e242: 66 0f 74 cb pcmpeqb %xmm3,%xmm1 - 42e246: 66 0f da c2 pminub %xmm2,%xmm0 - 42e24a: 66 42 0f 6f 74 12 30 movdqa 0x30(%rdx,%r10,1),%xmm6 - 42e251: 66 0f da cb pminub %xmm3,%xmm1 - 42e255: f3 42 0f 6f 54 10 20 movdqu 0x20(%rax,%r10,1),%xmm2 - 42e25c: f3 42 0f 6f 5c 10 30 movdqu 0x30(%rax,%r10,1),%xmm3 - 42e263: 66 0f 74 ea pcmpeqb %xmm2,%xmm5 - 42e267: 66 0f 74 f3 pcmpeqb %xmm3,%xmm6 - 42e26b: 66 0f da ea pminub %xmm2,%xmm5 - 42e26f: 66 0f da f3 pminub %xmm3,%xmm6 - 42e273: 66 0f 74 c7 pcmpeqb %xmm7,%xmm0 - 42e277: 66 0f 74 cf pcmpeqb %xmm7,%xmm1 - 42e27b: 66 0f 74 ef pcmpeqb %xmm7,%xmm5 - 42e27f: 66 0f 74 f7 pcmpeqb %xmm7,%xmm6 - 42e283: 66 0f d7 c9 pmovmskb %xmm1,%ecx - 42e287: 66 44 0f d7 c5 pmovmskb %xmm5,%r8d - 42e28c: 66 0f d7 f8 pmovmskb %xmm0,%edi - 42e290: 48 c1 e1 10 shl $0x10,%rcx - 42e294: 49 c1 e0 20 shl $0x20,%r8 - 42e298: 66 0f d7 f6 pmovmskb %xmm6,%esi - 42e29c: 4c 09 c7 or %r8,%rdi - 42e29f: 48 09 cf or %rcx,%rdi - 42e2a2: 48 c1 e6 30 shl $0x30,%rsi - 42e2a6: 48 09 f7 or %rsi,%rdi - 42e2a9: 4c 89 c9 mov %r9,%rcx - 42e2ac: 48 c7 c6 3f 00 00 00 mov $0x3f,%rsi - 42e2b3: 48 d3 ef shr %cl,%rdi - 42e2b6: 48 85 ff test %rdi,%rdi - 42e2b9: 0f 84 96 fe ff ff je 42e155 <__strcmp_sse2_unaligned+0x105> - 42e2bf: 48 0f bc cf bsf %rdi,%rcx - 42e2c3: 0f b6 04 08 movzbl (%rax,%rcx,1),%eax - 42e2c7: 0f b6 14 0a movzbl (%rdx,%rcx,1),%edx - 42e2cb: 29 d0 sub %edx,%eax - 42e2cd: c3 retq - 42e2ce: 66 90 xchg %ax,%ax - 42e2d0: 38 c8 cmp %cl,%al - 42e2d2: 75 1c jne 42e2f0 <__strcmp_sse2_unaligned+0x2a0> - 42e2d4: 48 83 c2 01 add $0x1,%rdx - 42e2d8: 48 83 fa 40 cmp $0x40,%rdx - 42e2dc: 0f 84 23 fe ff ff je 42e105 <__strcmp_sse2_unaligned+0xb5> - 42e2e2: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax - 42e2e6: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx - 42e2ea: 84 c0 test %al,%al - 42e2ec: 75 e2 jne 42e2d0 <__strcmp_sse2_unaligned+0x280> - 42e2ee: 31 c0 xor %eax,%eax - 42e2f0: 29 c8 sub %ecx,%eax - 42e2f2: c3 retq - 42e2f3: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42e2fa: 00 00 00 - 42e2fd: 0f 1f 00 nopl (%rax) - -000000000042e300 <__memcmp_sse4_1>: - 42e300: 66 0f ef c0 pxor %xmm0,%xmm0 - 42e304: 48 83 fa 4f cmp $0x4f,%rdx - 42e308: 77 36 ja 42e340 <__memcmp_sse4_1+0x40> - 42e30a: 48 83 fa 01 cmp $0x1,%rdx - 42e30e: 74 20 je 42e330 <__memcmp_sse4_1+0x30> - 42e310: 48 01 d6 add %rdx,%rsi - 42e313: 48 01 d7 add %rdx,%rdi - 42e316: 4c 8d 1d 53 4f 07 00 lea 0x74f53(%rip),%r11 # 4a3270 - 42e31d: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 42e321: 4c 01 d9 add %r11,%rcx - 42e324: ff e1 jmpq *%rcx - 42e326: 0f 0b ud2 - 42e328: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42e32f: 00 - 42e330: 0f b6 07 movzbl (%rdi),%eax - 42e333: 0f b6 0e movzbl (%rsi),%ecx - 42e336: 29 c8 sub %ecx,%eax - 42e338: c3 retq - 42e339: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42e340: f3 0f 6f 0e movdqu (%rsi),%xmm1 - 42e344: f3 0f 6f 17 movdqu (%rdi),%xmm2 - 42e348: 66 0f ef d1 pxor %xmm1,%xmm2 - 42e34c: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e351: 0f 83 56 0b 00 00 jae 42eead <__memcmp_sse4_1+0xbad> - 42e357: 48 89 f1 mov %rsi,%rcx - 42e35a: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 42e35e: 48 83 c6 10 add $0x10,%rsi - 42e362: 48 29 f1 sub %rsi,%rcx - 42e365: 48 29 cf sub %rcx,%rdi - 42e368: 48 01 ca add %rcx,%rdx - 42e36b: 48 f7 c7 0f 00 00 00 test $0xf,%rdi - 42e372: 0f 84 08 05 00 00 je 42e880 <__memcmp_sse4_1+0x580> - 42e378: 48 81 fa 80 00 00 00 cmp $0x80,%rdx - 42e37f: 0f 87 b2 00 00 00 ja 42e437 <__memcmp_sse4_1+0x137> - 42e385: 48 83 ea 40 sub $0x40,%rdx - 42e389: f3 0f 6f 17 movdqu (%rdi),%xmm2 - 42e38d: 66 0f ef 16 pxor (%rsi),%xmm2 - 42e391: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e396: 0f 83 11 0b 00 00 jae 42eead <__memcmp_sse4_1+0xbad> - 42e39c: f3 0f 6f 57 10 movdqu 0x10(%rdi),%xmm2 - 42e3a1: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 - 42e3a6: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e3ab: 0f 83 f4 0a 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> - 42e3b1: f3 0f 6f 57 20 movdqu 0x20(%rdi),%xmm2 - 42e3b6: 66 0f ef 56 20 pxor 0x20(%rsi),%xmm2 - 42e3bb: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e3c0: 0f 83 d7 0a 00 00 jae 42ee9d <__memcmp_sse4_1+0xb9d> - 42e3c6: f3 0f 6f 57 30 movdqu 0x30(%rdi),%xmm2 - 42e3cb: 66 0f ef 56 30 pxor 0x30(%rsi),%xmm2 - 42e3d0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e3d5: 0f 83 b8 0a 00 00 jae 42ee93 <__memcmp_sse4_1+0xb93> - 42e3db: 48 83 fa 20 cmp $0x20,%rdx - 42e3df: 72 36 jb 42e417 <__memcmp_sse4_1+0x117> - 42e3e1: f3 0f 6f 57 40 movdqu 0x40(%rdi),%xmm2 - 42e3e6: 66 0f ef 56 40 pxor 0x40(%rsi),%xmm2 - 42e3eb: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e3f0: 0f 83 93 0a 00 00 jae 42ee89 <__memcmp_sse4_1+0xb89> - 42e3f6: f3 0f 6f 57 50 movdqu 0x50(%rdi),%xmm2 - 42e3fb: 66 0f ef 56 50 pxor 0x50(%rsi),%xmm2 - 42e400: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e405: 0f 83 74 0a 00 00 jae 42ee7f <__memcmp_sse4_1+0xb7f> - 42e40b: 48 83 ea 20 sub $0x20,%rdx - 42e40f: 48 83 c7 20 add $0x20,%rdi - 42e413: 48 83 c6 20 add $0x20,%rsi - 42e417: 48 83 c7 40 add $0x40,%rdi - 42e41b: 48 83 c6 40 add $0x40,%rsi - 42e41f: 48 01 d6 add %rdx,%rsi - 42e422: 48 01 d7 add %rdx,%rdi - 42e425: 4c 8d 1d 44 4e 07 00 lea 0x74e44(%rip),%r11 # 4a3270 - 42e42c: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 42e430: 4c 01 d9 add %r11,%rcx - 42e433: ff e1 jmpq *%rcx - 42e435: 0f 0b ud2 - 42e437: 48 81 fa 00 02 00 00 cmp $0x200,%rdx - 42e43e: 0f 87 2c 03 00 00 ja 42e770 <__memcmp_sse4_1+0x470> - 42e444: 48 81 fa 00 01 00 00 cmp $0x100,%rdx - 42e44b: 0f 87 17 01 00 00 ja 42e568 <__memcmp_sse4_1+0x268> - 42e451: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 42e458: f3 0f 6f 17 movdqu (%rdi),%xmm2 - 42e45c: 66 0f ef 16 pxor (%rsi),%xmm2 - 42e460: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e465: 0f 83 42 0a 00 00 jae 42eead <__memcmp_sse4_1+0xbad> - 42e46b: f3 0f 6f 57 10 movdqu 0x10(%rdi),%xmm2 - 42e470: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 - 42e475: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e47a: 0f 83 25 0a 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> - 42e480: f3 0f 6f 57 20 movdqu 0x20(%rdi),%xmm2 - 42e485: 66 0f ef 56 20 pxor 0x20(%rsi),%xmm2 - 42e48a: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e48f: 0f 83 08 0a 00 00 jae 42ee9d <__memcmp_sse4_1+0xb9d> - 42e495: f3 0f 6f 57 30 movdqu 0x30(%rdi),%xmm2 - 42e49a: 66 0f ef 56 30 pxor 0x30(%rsi),%xmm2 - 42e49f: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e4a4: 0f 83 e9 09 00 00 jae 42ee93 <__memcmp_sse4_1+0xb93> - 42e4aa: f3 0f 6f 57 40 movdqu 0x40(%rdi),%xmm2 - 42e4af: 66 0f ef 56 40 pxor 0x40(%rsi),%xmm2 - 42e4b4: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e4b9: 0f 83 ca 09 00 00 jae 42ee89 <__memcmp_sse4_1+0xb89> - 42e4bf: f3 0f 6f 57 50 movdqu 0x50(%rdi),%xmm2 - 42e4c4: 66 0f ef 56 50 pxor 0x50(%rsi),%xmm2 - 42e4c9: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e4ce: 0f 83 ab 09 00 00 jae 42ee7f <__memcmp_sse4_1+0xb7f> - 42e4d4: f3 0f 6f 57 60 movdqu 0x60(%rdi),%xmm2 - 42e4d9: 66 0f ef 56 60 pxor 0x60(%rsi),%xmm2 - 42e4de: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e4e3: 0f 83 8c 09 00 00 jae 42ee75 <__memcmp_sse4_1+0xb75> - 42e4e9: f3 0f 6f 57 70 movdqu 0x70(%rdi),%xmm2 - 42e4ee: 66 0f ef 56 70 pxor 0x70(%rsi),%xmm2 - 42e4f3: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e4f8: 0f 83 67 09 00 00 jae 42ee65 <__memcmp_sse4_1+0xb65> - 42e4fe: 48 81 c6 80 00 00 00 add $0x80,%rsi - 42e505: 48 81 c7 80 00 00 00 add $0x80,%rdi - 42e50c: 48 83 fa 40 cmp $0x40,%rdx - 42e510: 0f 83 6f fe ff ff jae 42e385 <__memcmp_sse4_1+0x85> - 42e516: 48 83 fa 20 cmp $0x20,%rdx - 42e51a: 72 34 jb 42e550 <__memcmp_sse4_1+0x250> - 42e51c: f3 0f 6f 17 movdqu (%rdi),%xmm2 - 42e520: 66 0f ef 16 pxor (%rsi),%xmm2 - 42e524: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e529: 0f 83 7e 09 00 00 jae 42eead <__memcmp_sse4_1+0xbad> - 42e52f: f3 0f 6f 57 10 movdqu 0x10(%rdi),%xmm2 - 42e534: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 - 42e539: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e53e: 0f 83 61 09 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> - 42e544: 48 83 ea 20 sub $0x20,%rdx - 42e548: 48 83 c7 20 add $0x20,%rdi - 42e54c: 48 83 c6 20 add $0x20,%rsi - 42e550: 48 01 d6 add %rdx,%rsi - 42e553: 48 01 d7 add %rdx,%rdi - 42e556: 4c 8d 1d 13 4d 07 00 lea 0x74d13(%rip),%r11 # 4a3270 - 42e55d: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 42e561: 4c 01 d9 add %r11,%rcx - 42e564: ff e1 jmpq *%rcx - 42e566: 0f 0b ud2 - 42e568: 48 81 ea 00 01 00 00 sub $0x100,%rdx - 42e56f: f3 0f 6f 17 movdqu (%rdi),%xmm2 - 42e573: 66 0f ef 16 pxor (%rsi),%xmm2 - 42e577: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e57c: 0f 83 2b 09 00 00 jae 42eead <__memcmp_sse4_1+0xbad> - 42e582: f3 0f 6f 57 10 movdqu 0x10(%rdi),%xmm2 - 42e587: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 - 42e58c: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e591: 0f 83 0e 09 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> - 42e597: f3 0f 6f 57 20 movdqu 0x20(%rdi),%xmm2 - 42e59c: 66 0f ef 56 20 pxor 0x20(%rsi),%xmm2 - 42e5a1: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e5a6: 0f 83 f1 08 00 00 jae 42ee9d <__memcmp_sse4_1+0xb9d> - 42e5ac: f3 0f 6f 57 30 movdqu 0x30(%rdi),%xmm2 - 42e5b1: 66 0f ef 56 30 pxor 0x30(%rsi),%xmm2 - 42e5b6: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e5bb: 0f 83 d2 08 00 00 jae 42ee93 <__memcmp_sse4_1+0xb93> - 42e5c1: f3 0f 6f 57 40 movdqu 0x40(%rdi),%xmm2 - 42e5c6: 66 0f ef 56 40 pxor 0x40(%rsi),%xmm2 - 42e5cb: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e5d0: 0f 83 b3 08 00 00 jae 42ee89 <__memcmp_sse4_1+0xb89> - 42e5d6: f3 0f 6f 57 50 movdqu 0x50(%rdi),%xmm2 - 42e5db: 66 0f ef 56 50 pxor 0x50(%rsi),%xmm2 - 42e5e0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e5e5: 0f 83 94 08 00 00 jae 42ee7f <__memcmp_sse4_1+0xb7f> - 42e5eb: f3 0f 6f 57 60 movdqu 0x60(%rdi),%xmm2 - 42e5f0: 66 0f ef 56 60 pxor 0x60(%rsi),%xmm2 - 42e5f5: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e5fa: 0f 83 75 08 00 00 jae 42ee75 <__memcmp_sse4_1+0xb75> - 42e600: f3 0f 6f 57 70 movdqu 0x70(%rdi),%xmm2 - 42e605: 66 0f ef 56 70 pxor 0x70(%rsi),%xmm2 - 42e60a: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e60f: 0f 83 50 08 00 00 jae 42ee65 <__memcmp_sse4_1+0xb65> - 42e615: f3 0f 6f 97 80 00 00 movdqu 0x80(%rdi),%xmm2 - 42e61c: 00 - 42e61d: 66 0f ef 96 80 00 00 pxor 0x80(%rsi),%xmm2 - 42e624: 00 - 42e625: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e62a: 0f 83 25 08 00 00 jae 42ee55 <__memcmp_sse4_1+0xb55> - 42e630: f3 0f 6f 97 90 00 00 movdqu 0x90(%rdi),%xmm2 - 42e637: 00 - 42e638: 66 0f ef 96 90 00 00 pxor 0x90(%rsi),%xmm2 - 42e63f: 00 - 42e640: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e645: 0f 83 fa 07 00 00 jae 42ee45 <__memcmp_sse4_1+0xb45> - 42e64b: f3 0f 6f 97 a0 00 00 movdqu 0xa0(%rdi),%xmm2 - 42e652: 00 - 42e653: 66 0f ef 96 a0 00 00 pxor 0xa0(%rsi),%xmm2 - 42e65a: 00 - 42e65b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e660: 0f 83 cf 07 00 00 jae 42ee35 <__memcmp_sse4_1+0xb35> - 42e666: f3 0f 6f 97 b0 00 00 movdqu 0xb0(%rdi),%xmm2 - 42e66d: 00 - 42e66e: 66 0f ef 96 b0 00 00 pxor 0xb0(%rsi),%xmm2 - 42e675: 00 - 42e676: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e67b: 0f 83 a1 07 00 00 jae 42ee22 <__memcmp_sse4_1+0xb22> - 42e681: f3 0f 6f 97 c0 00 00 movdqu 0xc0(%rdi),%xmm2 - 42e688: 00 - 42e689: 66 0f ef 96 c0 00 00 pxor 0xc0(%rsi),%xmm2 - 42e690: 00 - 42e691: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e696: 0f 83 73 07 00 00 jae 42ee0f <__memcmp_sse4_1+0xb0f> - 42e69c: f3 0f 6f 97 d0 00 00 movdqu 0xd0(%rdi),%xmm2 - 42e6a3: 00 - 42e6a4: 66 0f ef 96 d0 00 00 pxor 0xd0(%rsi),%xmm2 - 42e6ab: 00 - 42e6ac: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e6b1: 0f 83 45 07 00 00 jae 42edfc <__memcmp_sse4_1+0xafc> - 42e6b7: f3 0f 6f 97 e0 00 00 movdqu 0xe0(%rdi),%xmm2 - 42e6be: 00 - 42e6bf: 66 0f ef 96 e0 00 00 pxor 0xe0(%rsi),%xmm2 - 42e6c6: 00 - 42e6c7: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e6cc: 0f 83 17 07 00 00 jae 42ede9 <__memcmp_sse4_1+0xae9> - 42e6d2: f3 0f 6f 97 f0 00 00 movdqu 0xf0(%rdi),%xmm2 - 42e6d9: 00 - 42e6da: 66 0f ef 96 f0 00 00 pxor 0xf0(%rsi),%xmm2 - 42e6e1: 00 - 42e6e2: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e6e7: 0f 83 e9 06 00 00 jae 42edd6 <__memcmp_sse4_1+0xad6> - 42e6ed: 48 81 c6 00 01 00 00 add $0x100,%rsi - 42e6f4: 48 81 c7 00 01 00 00 add $0x100,%rdi - 42e6fb: 48 81 fa 80 00 00 00 cmp $0x80,%rdx - 42e702: 0f 83 49 fd ff ff jae 42e451 <__memcmp_sse4_1+0x151> - 42e708: 48 83 fa 40 cmp $0x40,%rdx - 42e70c: 0f 83 73 fc ff ff jae 42e385 <__memcmp_sse4_1+0x85> - 42e712: 48 83 fa 20 cmp $0x20,%rdx - 42e716: 72 34 jb 42e74c <__memcmp_sse4_1+0x44c> - 42e718: f3 0f 6f 17 movdqu (%rdi),%xmm2 - 42e71c: 66 0f ef 16 pxor (%rsi),%xmm2 - 42e720: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e725: 0f 83 82 07 00 00 jae 42eead <__memcmp_sse4_1+0xbad> - 42e72b: f3 0f 6f 57 10 movdqu 0x10(%rdi),%xmm2 - 42e730: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 - 42e735: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e73a: 0f 83 65 07 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> - 42e740: 48 83 ea 20 sub $0x20,%rdx - 42e744: 48 83 c7 20 add $0x20,%rdi - 42e748: 48 83 c6 20 add $0x20,%rsi - 42e74c: 48 01 d6 add %rdx,%rsi - 42e74f: 48 01 d7 add %rdx,%rdi - 42e752: 4c 8d 1d 17 4b 07 00 lea 0x74b17(%rip),%r11 # 4a3270 - 42e759: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 42e75d: 4c 01 d9 add %r11,%rcx - 42e760: ff e1 jmpq *%rcx - 42e762: 0f 0b ud2 - 42e764: 66 90 xchg %ax,%ax - 42e766: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42e76d: 00 00 00 - 42e770: 4c 8b 05 59 c9 29 00 mov 0x29c959(%rip),%r8 # 6cb0d0 <__x86_data_cache_size_half> - 42e777: 4d 89 c1 mov %r8,%r9 - 42e77a: 49 d1 e8 shr %r8 - 42e77d: 4d 01 c8 add %r9,%r8 - 42e780: 4c 39 c2 cmp %r8,%rdx - 42e783: 77 76 ja 42e7fb <__memcmp_sse4_1+0x4fb> - 42e785: 48 83 ea 40 sub $0x40,%rdx - 42e789: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42e790: f3 0f 6f 17 movdqu (%rdi),%xmm2 - 42e794: 66 0f ef 16 pxor (%rsi),%xmm2 - 42e798: 66 0f 6f ca movdqa %xmm2,%xmm1 - 42e79c: f3 0f 6f 5f 10 movdqu 0x10(%rdi),%xmm3 - 42e7a1: 66 0f ef 5e 10 pxor 0x10(%rsi),%xmm3 - 42e7a6: 66 0f eb cb por %xmm3,%xmm1 - 42e7aa: f3 0f 6f 67 20 movdqu 0x20(%rdi),%xmm4 - 42e7af: 66 0f ef 66 20 pxor 0x20(%rsi),%xmm4 - 42e7b4: 66 0f eb cc por %xmm4,%xmm1 - 42e7b8: f3 0f 6f 6f 30 movdqu 0x30(%rdi),%xmm5 - 42e7bd: 66 0f ef 6e 30 pxor 0x30(%rsi),%xmm5 - 42e7c2: 66 0f eb cd por %xmm5,%xmm1 - 42e7c6: 66 0f 38 17 c1 ptest %xmm1,%xmm0 - 42e7cb: 0f 83 bf 05 00 00 jae 42ed90 <__memcmp_sse4_1+0xa90> - 42e7d1: 48 83 c6 40 add $0x40,%rsi - 42e7d5: 48 83 c7 40 add $0x40,%rdi - 42e7d9: 48 83 ea 40 sub $0x40,%rdx - 42e7dd: 73 b1 jae 42e790 <__memcmp_sse4_1+0x490> - 42e7df: 48 83 c2 40 add $0x40,%rdx - 42e7e3: 48 01 d6 add %rdx,%rsi - 42e7e6: 48 01 d7 add %rdx,%rdi - 42e7e9: 4c 8d 1d 80 4a 07 00 lea 0x74a80(%rip),%r11 # 4a3270 - 42e7f0: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 42e7f4: 4c 01 d9 add %r11,%rcx - 42e7f7: ff e1 jmpq *%rcx - 42e7f9: 0f 0b ud2 - 42e7fb: 48 83 ea 40 sub $0x40,%rdx - 42e7ff: 90 nop - 42e800: 0f 18 87 c0 01 00 00 prefetchnta 0x1c0(%rdi) - 42e807: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 42e80e: f3 0f 6f 17 movdqu (%rdi),%xmm2 - 42e812: 66 0f ef 16 pxor (%rsi),%xmm2 - 42e816: 66 0f 6f ca movdqa %xmm2,%xmm1 - 42e81a: f3 0f 6f 5f 10 movdqu 0x10(%rdi),%xmm3 - 42e81f: 66 0f ef 5e 10 pxor 0x10(%rsi),%xmm3 - 42e824: 66 0f eb cb por %xmm3,%xmm1 - 42e828: f3 0f 6f 67 20 movdqu 0x20(%rdi),%xmm4 - 42e82d: 66 0f ef 66 20 pxor 0x20(%rsi),%xmm4 - 42e832: 66 0f eb cc por %xmm4,%xmm1 - 42e836: f3 0f 6f 6f 30 movdqu 0x30(%rdi),%xmm5 - 42e83b: 66 0f ef 6e 30 pxor 0x30(%rsi),%xmm5 - 42e840: 66 0f eb cd por %xmm5,%xmm1 - 42e844: 66 0f 38 17 c1 ptest %xmm1,%xmm0 - 42e849: 0f 83 41 05 00 00 jae 42ed90 <__memcmp_sse4_1+0xa90> - 42e84f: 48 83 c6 40 add $0x40,%rsi - 42e853: 48 83 c7 40 add $0x40,%rdi - 42e857: 48 83 ea 40 sub $0x40,%rdx - 42e85b: 73 a3 jae 42e800 <__memcmp_sse4_1+0x500> - 42e85d: 48 83 c2 40 add $0x40,%rdx - 42e861: 48 01 d6 add %rdx,%rsi - 42e864: 48 01 d7 add %rdx,%rdi - 42e867: 4c 8d 1d 02 4a 07 00 lea 0x74a02(%rip),%r11 # 4a3270 - 42e86e: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 42e872: 4c 01 d9 add %r11,%rcx - 42e875: ff e1 jmpq *%rcx - 42e877: 0f 0b ud2 - 42e879: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42e880: 48 81 fa 80 00 00 00 cmp $0x80,%rdx - 42e887: 0f 87 b3 00 00 00 ja 42e940 <__memcmp_sse4_1+0x640> - 42e88d: 48 83 ea 40 sub $0x40,%rdx - 42e891: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42e895: 66 0f ef 16 pxor (%rsi),%xmm2 - 42e899: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e89e: 0f 83 09 06 00 00 jae 42eead <__memcmp_sse4_1+0xbad> - 42e8a4: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 - 42e8a9: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 - 42e8ae: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e8b3: 0f 83 ec 05 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> - 42e8b9: 66 0f 6f 57 20 movdqa 0x20(%rdi),%xmm2 - 42e8be: 66 0f ef 56 20 pxor 0x20(%rsi),%xmm2 - 42e8c3: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e8c8: 0f 83 cf 05 00 00 jae 42ee9d <__memcmp_sse4_1+0xb9d> - 42e8ce: 66 0f 6f 57 30 movdqa 0x30(%rdi),%xmm2 - 42e8d3: 66 0f ef 56 30 pxor 0x30(%rsi),%xmm2 - 42e8d8: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e8dd: 0f 83 b0 05 00 00 jae 42ee93 <__memcmp_sse4_1+0xb93> - 42e8e3: 48 83 fa 20 cmp $0x20,%rdx - 42e8e7: 72 36 jb 42e91f <__memcmp_sse4_1+0x61f> - 42e8e9: 66 0f 6f 57 40 movdqa 0x40(%rdi),%xmm2 - 42e8ee: 66 0f ef 56 40 pxor 0x40(%rsi),%xmm2 - 42e8f3: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e8f8: 0f 83 8b 05 00 00 jae 42ee89 <__memcmp_sse4_1+0xb89> - 42e8fe: 66 0f 6f 57 50 movdqa 0x50(%rdi),%xmm2 - 42e903: 66 0f ef 56 50 pxor 0x50(%rsi),%xmm2 - 42e908: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e90d: 0f 83 6c 05 00 00 jae 42ee7f <__memcmp_sse4_1+0xb7f> - 42e913: 48 83 ea 20 sub $0x20,%rdx - 42e917: 48 83 c7 20 add $0x20,%rdi - 42e91b: 48 83 c6 20 add $0x20,%rsi - 42e91f: 48 83 c7 40 add $0x40,%rdi - 42e923: 48 83 c6 40 add $0x40,%rsi - 42e927: 48 01 d6 add %rdx,%rsi - 42e92a: 48 01 d7 add %rdx,%rdi - 42e92d: 4c 8d 1d 3c 49 07 00 lea 0x7493c(%rip),%r11 # 4a3270 - 42e934: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 42e938: 4c 01 d9 add %r11,%rcx - 42e93b: ff e1 jmpq *%rcx - 42e93d: 0f 0b ud2 - 42e93f: 90 nop - 42e940: 48 81 fa 00 02 00 00 cmp $0x200,%rdx - 42e947: 0f 87 33 03 00 00 ja 42ec80 <__memcmp_sse4_1+0x980> - 42e94d: 48 81 fa 00 01 00 00 cmp $0x100,%rdx - 42e954: 0f 87 26 01 00 00 ja 42ea80 <__memcmp_sse4_1+0x780> - 42e95a: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 42e961: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42e965: 66 0f ef 16 pxor (%rsi),%xmm2 - 42e969: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e96e: 0f 83 39 05 00 00 jae 42eead <__memcmp_sse4_1+0xbad> - 42e974: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 - 42e979: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 - 42e97e: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e983: 0f 83 1c 05 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> - 42e989: 66 0f 6f 57 20 movdqa 0x20(%rdi),%xmm2 - 42e98e: 66 0f ef 56 20 pxor 0x20(%rsi),%xmm2 - 42e993: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e998: 0f 83 ff 04 00 00 jae 42ee9d <__memcmp_sse4_1+0xb9d> - 42e99e: 66 0f 6f 57 30 movdqa 0x30(%rdi),%xmm2 - 42e9a3: 66 0f ef 56 30 pxor 0x30(%rsi),%xmm2 - 42e9a8: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e9ad: 0f 83 e0 04 00 00 jae 42ee93 <__memcmp_sse4_1+0xb93> - 42e9b3: 66 0f 6f 57 40 movdqa 0x40(%rdi),%xmm2 - 42e9b8: 66 0f ef 56 40 pxor 0x40(%rsi),%xmm2 - 42e9bd: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e9c2: 0f 83 c1 04 00 00 jae 42ee89 <__memcmp_sse4_1+0xb89> - 42e9c8: 66 0f 6f 57 50 movdqa 0x50(%rdi),%xmm2 - 42e9cd: 66 0f ef 56 50 pxor 0x50(%rsi),%xmm2 - 42e9d2: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e9d7: 0f 83 a2 04 00 00 jae 42ee7f <__memcmp_sse4_1+0xb7f> - 42e9dd: 66 0f 6f 57 60 movdqa 0x60(%rdi),%xmm2 - 42e9e2: 66 0f ef 56 60 pxor 0x60(%rsi),%xmm2 - 42e9e7: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42e9ec: 0f 83 83 04 00 00 jae 42ee75 <__memcmp_sse4_1+0xb75> - 42e9f2: 66 0f 6f 57 70 movdqa 0x70(%rdi),%xmm2 - 42e9f7: 66 0f ef 56 70 pxor 0x70(%rsi),%xmm2 - 42e9fc: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42ea01: 0f 83 5e 04 00 00 jae 42ee65 <__memcmp_sse4_1+0xb65> - 42ea07: 48 81 c6 80 00 00 00 add $0x80,%rsi - 42ea0e: 48 81 c7 80 00 00 00 add $0x80,%rdi - 42ea15: 48 83 fa 40 cmp $0x40,%rdx - 42ea19: 0f 83 6e fe ff ff jae 42e88d <__memcmp_sse4_1+0x58d> - 42ea1f: 48 83 fa 20 cmp $0x20,%rdx - 42ea23: 72 34 jb 42ea59 <__memcmp_sse4_1+0x759> - 42ea25: f3 0f 6f 17 movdqu (%rdi),%xmm2 - 42ea29: 66 0f ef 16 pxor (%rsi),%xmm2 - 42ea2d: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42ea32: 0f 83 75 04 00 00 jae 42eead <__memcmp_sse4_1+0xbad> - 42ea38: f3 0f 6f 57 10 movdqu 0x10(%rdi),%xmm2 - 42ea3d: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 - 42ea42: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42ea47: 0f 83 58 04 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> - 42ea4d: 48 83 ea 20 sub $0x20,%rdx - 42ea51: 48 83 c7 20 add $0x20,%rdi - 42ea55: 48 83 c6 20 add $0x20,%rsi - 42ea59: 48 01 d6 add %rdx,%rsi - 42ea5c: 48 01 d7 add %rdx,%rdi - 42ea5f: 4c 8d 1d 0a 48 07 00 lea 0x7480a(%rip),%r11 # 4a3270 - 42ea66: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 42ea6a: 4c 01 d9 add %r11,%rcx - 42ea6d: ff e1 jmpq *%rcx - 42ea6f: 0f 0b ud2 - 42ea71: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42ea76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42ea7d: 00 00 00 - 42ea80: 48 81 ea 00 01 00 00 sub $0x100,%rdx - 42ea87: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42ea8b: 66 0f ef 16 pxor (%rsi),%xmm2 - 42ea8f: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42ea94: 0f 83 13 04 00 00 jae 42eead <__memcmp_sse4_1+0xbad> - 42ea9a: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 - 42ea9f: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 - 42eaa4: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42eaa9: 0f 83 f6 03 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> - 42eaaf: 66 0f 6f 57 20 movdqa 0x20(%rdi),%xmm2 - 42eab4: 66 0f ef 56 20 pxor 0x20(%rsi),%xmm2 - 42eab9: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42eabe: 0f 83 d9 03 00 00 jae 42ee9d <__memcmp_sse4_1+0xb9d> - 42eac4: 66 0f 6f 57 30 movdqa 0x30(%rdi),%xmm2 - 42eac9: 66 0f ef 56 30 pxor 0x30(%rsi),%xmm2 - 42eace: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42ead3: 0f 83 ba 03 00 00 jae 42ee93 <__memcmp_sse4_1+0xb93> - 42ead9: 66 0f 6f 57 40 movdqa 0x40(%rdi),%xmm2 - 42eade: 66 0f ef 56 40 pxor 0x40(%rsi),%xmm2 - 42eae3: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42eae8: 0f 83 9b 03 00 00 jae 42ee89 <__memcmp_sse4_1+0xb89> - 42eaee: 66 0f 6f 57 50 movdqa 0x50(%rdi),%xmm2 - 42eaf3: 66 0f ef 56 50 pxor 0x50(%rsi),%xmm2 - 42eaf8: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42eafd: 0f 83 7c 03 00 00 jae 42ee7f <__memcmp_sse4_1+0xb7f> - 42eb03: 66 0f 6f 57 60 movdqa 0x60(%rdi),%xmm2 - 42eb08: 66 0f ef 56 60 pxor 0x60(%rsi),%xmm2 - 42eb0d: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42eb12: 0f 83 5d 03 00 00 jae 42ee75 <__memcmp_sse4_1+0xb75> - 42eb18: 66 0f 6f 57 70 movdqa 0x70(%rdi),%xmm2 - 42eb1d: 66 0f ef 56 70 pxor 0x70(%rsi),%xmm2 - 42eb22: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42eb27: 0f 83 38 03 00 00 jae 42ee65 <__memcmp_sse4_1+0xb65> - 42eb2d: 66 0f 6f 97 80 00 00 movdqa 0x80(%rdi),%xmm2 - 42eb34: 00 - 42eb35: 66 0f ef 96 80 00 00 pxor 0x80(%rsi),%xmm2 - 42eb3c: 00 - 42eb3d: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42eb42: 0f 83 0d 03 00 00 jae 42ee55 <__memcmp_sse4_1+0xb55> - 42eb48: 66 0f 6f 97 90 00 00 movdqa 0x90(%rdi),%xmm2 - 42eb4f: 00 - 42eb50: 66 0f ef 96 90 00 00 pxor 0x90(%rsi),%xmm2 - 42eb57: 00 - 42eb58: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42eb5d: 0f 83 e2 02 00 00 jae 42ee45 <__memcmp_sse4_1+0xb45> - 42eb63: 66 0f 6f 97 a0 00 00 movdqa 0xa0(%rdi),%xmm2 - 42eb6a: 00 - 42eb6b: 66 0f ef 96 a0 00 00 pxor 0xa0(%rsi),%xmm2 - 42eb72: 00 - 42eb73: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42eb78: 0f 83 b7 02 00 00 jae 42ee35 <__memcmp_sse4_1+0xb35> - 42eb7e: 66 0f 6f 97 b0 00 00 movdqa 0xb0(%rdi),%xmm2 - 42eb85: 00 - 42eb86: 66 0f ef 96 b0 00 00 pxor 0xb0(%rsi),%xmm2 - 42eb8d: 00 - 42eb8e: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42eb93: 0f 83 89 02 00 00 jae 42ee22 <__memcmp_sse4_1+0xb22> - 42eb99: 66 0f 6f 97 c0 00 00 movdqa 0xc0(%rdi),%xmm2 - 42eba0: 00 - 42eba1: 66 0f ef 96 c0 00 00 pxor 0xc0(%rsi),%xmm2 - 42eba8: 00 - 42eba9: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42ebae: 0f 83 5b 02 00 00 jae 42ee0f <__memcmp_sse4_1+0xb0f> - 42ebb4: 66 0f 6f 97 d0 00 00 movdqa 0xd0(%rdi),%xmm2 - 42ebbb: 00 - 42ebbc: 66 0f ef 96 d0 00 00 pxor 0xd0(%rsi),%xmm2 - 42ebc3: 00 - 42ebc4: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42ebc9: 0f 83 2d 02 00 00 jae 42edfc <__memcmp_sse4_1+0xafc> - 42ebcf: 66 0f 6f 97 e0 00 00 movdqa 0xe0(%rdi),%xmm2 - 42ebd6: 00 - 42ebd7: 66 0f ef 96 e0 00 00 pxor 0xe0(%rsi),%xmm2 - 42ebde: 00 - 42ebdf: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42ebe4: 0f 83 ff 01 00 00 jae 42ede9 <__memcmp_sse4_1+0xae9> - 42ebea: 66 0f 6f 97 f0 00 00 movdqa 0xf0(%rdi),%xmm2 - 42ebf1: 00 - 42ebf2: 66 0f ef 96 f0 00 00 pxor 0xf0(%rsi),%xmm2 - 42ebf9: 00 - 42ebfa: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42ebff: 0f 83 d1 01 00 00 jae 42edd6 <__memcmp_sse4_1+0xad6> - 42ec05: 48 81 c6 00 01 00 00 add $0x100,%rsi - 42ec0c: 48 81 c7 00 01 00 00 add $0x100,%rdi - 42ec13: 48 81 fa 80 00 00 00 cmp $0x80,%rdx - 42ec1a: 0f 83 3a fd ff ff jae 42e95a <__memcmp_sse4_1+0x65a> - 42ec20: 48 83 fa 40 cmp $0x40,%rdx - 42ec24: 0f 83 63 fc ff ff jae 42e88d <__memcmp_sse4_1+0x58d> - 42ec2a: 48 83 fa 20 cmp $0x20,%rdx - 42ec2e: 72 34 jb 42ec64 <__memcmp_sse4_1+0x964> - 42ec30: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42ec34: 66 0f ef 16 pxor (%rsi),%xmm2 - 42ec38: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42ec3d: 0f 83 6a 02 00 00 jae 42eead <__memcmp_sse4_1+0xbad> - 42ec43: 66 0f 6f 57 10 movdqa 0x10(%rdi),%xmm2 - 42ec48: 66 0f ef 56 10 pxor 0x10(%rsi),%xmm2 - 42ec4d: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42ec52: 0f 83 4d 02 00 00 jae 42eea5 <__memcmp_sse4_1+0xba5> - 42ec58: 48 83 ea 20 sub $0x20,%rdx - 42ec5c: 48 83 c7 20 add $0x20,%rdi - 42ec60: 48 83 c6 20 add $0x20,%rsi - 42ec64: 48 01 d6 add %rdx,%rsi - 42ec67: 48 01 d7 add %rdx,%rdi - 42ec6a: 4c 8d 1d ff 45 07 00 lea 0x745ff(%rip),%r11 # 4a3270 - 42ec71: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 42ec75: 4c 01 d9 add %r11,%rcx - 42ec78: ff e1 jmpq *%rcx - 42ec7a: 0f 0b ud2 - 42ec7c: 0f 1f 40 00 nopl 0x0(%rax) - 42ec80: 4c 8b 05 49 c4 29 00 mov 0x29c449(%rip),%r8 # 6cb0d0 <__x86_data_cache_size_half> - 42ec87: 4d 89 c1 mov %r8,%r9 - 42ec8a: 49 d1 e8 shr %r8 - 42ec8d: 4d 01 c8 add %r9,%r8 - 42ec90: 4c 39 c2 cmp %r8,%rdx - 42ec93: 77 76 ja 42ed0b <__memcmp_sse4_1+0xa0b> - 42ec95: 48 83 ea 40 sub $0x40,%rdx - 42ec99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42eca0: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42eca4: 66 0f ef 16 pxor (%rsi),%xmm2 - 42eca8: 66 0f 6f ca movdqa %xmm2,%xmm1 - 42ecac: 66 0f 6f 5f 10 movdqa 0x10(%rdi),%xmm3 - 42ecb1: 66 0f ef 5e 10 pxor 0x10(%rsi),%xmm3 - 42ecb6: 66 0f eb cb por %xmm3,%xmm1 - 42ecba: 66 0f 6f 67 20 movdqa 0x20(%rdi),%xmm4 - 42ecbf: 66 0f ef 66 20 pxor 0x20(%rsi),%xmm4 - 42ecc4: 66 0f eb cc por %xmm4,%xmm1 - 42ecc8: 66 0f 6f 6f 30 movdqa 0x30(%rdi),%xmm5 - 42eccd: 66 0f ef 6e 30 pxor 0x30(%rsi),%xmm5 - 42ecd2: 66 0f eb cd por %xmm5,%xmm1 - 42ecd6: 66 0f 38 17 c1 ptest %xmm1,%xmm0 - 42ecdb: 0f 83 af 00 00 00 jae 42ed90 <__memcmp_sse4_1+0xa90> - 42ece1: 48 83 c6 40 add $0x40,%rsi - 42ece5: 48 83 c7 40 add $0x40,%rdi - 42ece9: 48 83 ea 40 sub $0x40,%rdx - 42eced: 73 b1 jae 42eca0 <__memcmp_sse4_1+0x9a0> - 42ecef: 48 83 c2 40 add $0x40,%rdx - 42ecf3: 48 01 d6 add %rdx,%rsi - 42ecf6: 48 01 d7 add %rdx,%rdi - 42ecf9: 4c 8d 1d 70 45 07 00 lea 0x74570(%rip),%r11 # 4a3270 - 42ed00: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 42ed04: 4c 01 d9 add %r11,%rcx - 42ed07: ff e1 jmpq *%rcx - 42ed09: 0f 0b ud2 - 42ed0b: 48 83 ea 40 sub $0x40,%rdx - 42ed0f: 90 nop - 42ed10: 0f 18 87 c0 01 00 00 prefetchnta 0x1c0(%rdi) - 42ed17: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 42ed1e: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 42ed22: 66 0f ef 16 pxor (%rsi),%xmm2 - 42ed26: 66 0f 6f ca movdqa %xmm2,%xmm1 - 42ed2a: 66 0f 6f 5f 10 movdqa 0x10(%rdi),%xmm3 - 42ed2f: 66 0f ef 5e 10 pxor 0x10(%rsi),%xmm3 - 42ed34: 66 0f eb cb por %xmm3,%xmm1 - 42ed38: 66 0f 6f 67 20 movdqa 0x20(%rdi),%xmm4 - 42ed3d: 66 0f ef 66 20 pxor 0x20(%rsi),%xmm4 - 42ed42: 66 0f eb cc por %xmm4,%xmm1 - 42ed46: 66 0f 6f 6f 30 movdqa 0x30(%rdi),%xmm5 - 42ed4b: 66 0f ef 6e 30 pxor 0x30(%rsi),%xmm5 - 42ed50: 66 0f eb cd por %xmm5,%xmm1 - 42ed54: 66 0f 38 17 c1 ptest %xmm1,%xmm0 - 42ed59: 73 35 jae 42ed90 <__memcmp_sse4_1+0xa90> - 42ed5b: 48 83 c6 40 add $0x40,%rsi - 42ed5f: 48 83 c7 40 add $0x40,%rdi - 42ed63: 48 83 ea 40 sub $0x40,%rdx - 42ed67: 73 a7 jae 42ed10 <__memcmp_sse4_1+0xa10> - 42ed69: 48 83 c2 40 add $0x40,%rdx - 42ed6d: 48 01 d6 add %rdx,%rsi - 42ed70: 48 01 d7 add %rdx,%rdi - 42ed73: 4c 8d 1d f6 44 07 00 lea 0x744f6(%rip),%r11 # 4a3270 - 42ed7a: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 42ed7e: 4c 01 d9 add %r11,%rcx - 42ed81: ff e1 jmpq *%rcx - 42ed83: 0f 0b ud2 - 42ed85: 90 nop - 42ed86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42ed8d: 00 00 00 - 42ed90: 48 83 c7 10 add $0x10,%rdi - 42ed94: 48 83 c6 10 add $0x10,%rsi - 42ed98: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42ed9d: 0f 83 12 01 00 00 jae 42eeb5 <__memcmp_sse4_1+0xbb5> - 42eda3: 48 83 c7 10 add $0x10,%rdi - 42eda7: 48 83 c6 10 add $0x10,%rsi - 42edab: 66 0f 38 17 c3 ptest %xmm3,%xmm0 - 42edb0: 0f 83 ff 00 00 00 jae 42eeb5 <__memcmp_sse4_1+0xbb5> - 42edb6: 48 83 c7 10 add $0x10,%rdi - 42edba: 48 83 c6 10 add $0x10,%rsi - 42edbe: 66 0f 38 17 c4 ptest %xmm4,%xmm0 - 42edc3: 0f 83 ec 00 00 00 jae 42eeb5 <__memcmp_sse4_1+0xbb5> - 42edc9: 48 83 c7 10 add $0x10,%rdi - 42edcd: 48 83 c6 10 add $0x10,%rsi - 42edd1: e9 df 00 00 00 jmpq 42eeb5 <__memcmp_sse4_1+0xbb5> - 42edd6: 48 81 c7 00 01 00 00 add $0x100,%rdi - 42eddd: 48 81 c6 00 01 00 00 add $0x100,%rsi - 42ede4: e9 cc 00 00 00 jmpq 42eeb5 <__memcmp_sse4_1+0xbb5> - 42ede9: 48 81 c7 f0 00 00 00 add $0xf0,%rdi - 42edf0: 48 81 c6 f0 00 00 00 add $0xf0,%rsi - 42edf7: e9 b9 00 00 00 jmpq 42eeb5 <__memcmp_sse4_1+0xbb5> - 42edfc: 48 81 c7 e0 00 00 00 add $0xe0,%rdi - 42ee03: 48 81 c6 e0 00 00 00 add $0xe0,%rsi - 42ee0a: e9 a6 00 00 00 jmpq 42eeb5 <__memcmp_sse4_1+0xbb5> - 42ee0f: 48 81 c7 d0 00 00 00 add $0xd0,%rdi - 42ee16: 48 81 c6 d0 00 00 00 add $0xd0,%rsi - 42ee1d: e9 93 00 00 00 jmpq 42eeb5 <__memcmp_sse4_1+0xbb5> - 42ee22: 48 81 c7 c0 00 00 00 add $0xc0,%rdi - 42ee29: 48 81 c6 c0 00 00 00 add $0xc0,%rsi - 42ee30: e9 80 00 00 00 jmpq 42eeb5 <__memcmp_sse4_1+0xbb5> - 42ee35: 48 81 c7 b0 00 00 00 add $0xb0,%rdi - 42ee3c: 48 81 c6 b0 00 00 00 add $0xb0,%rsi - 42ee43: eb 70 jmp 42eeb5 <__memcmp_sse4_1+0xbb5> - 42ee45: 48 81 c7 a0 00 00 00 add $0xa0,%rdi - 42ee4c: 48 81 c6 a0 00 00 00 add $0xa0,%rsi - 42ee53: eb 60 jmp 42eeb5 <__memcmp_sse4_1+0xbb5> - 42ee55: 48 81 c7 90 00 00 00 add $0x90,%rdi - 42ee5c: 48 81 c6 90 00 00 00 add $0x90,%rsi - 42ee63: eb 50 jmp 42eeb5 <__memcmp_sse4_1+0xbb5> - 42ee65: 48 81 c7 80 00 00 00 add $0x80,%rdi - 42ee6c: 48 81 c6 80 00 00 00 add $0x80,%rsi - 42ee73: eb 40 jmp 42eeb5 <__memcmp_sse4_1+0xbb5> - 42ee75: 48 83 c7 70 add $0x70,%rdi - 42ee79: 48 83 c6 70 add $0x70,%rsi - 42ee7d: eb 36 jmp 42eeb5 <__memcmp_sse4_1+0xbb5> - 42ee7f: 48 83 c7 60 add $0x60,%rdi - 42ee83: 48 83 c6 60 add $0x60,%rsi - 42ee87: eb 2c jmp 42eeb5 <__memcmp_sse4_1+0xbb5> - 42ee89: 48 83 c7 50 add $0x50,%rdi - 42ee8d: 48 83 c6 50 add $0x50,%rsi - 42ee91: eb 22 jmp 42eeb5 <__memcmp_sse4_1+0xbb5> - 42ee93: 48 83 c7 40 add $0x40,%rdi - 42ee97: 48 83 c6 40 add $0x40,%rsi - 42ee9b: eb 18 jmp 42eeb5 <__memcmp_sse4_1+0xbb5> - 42ee9d: 48 83 c7 10 add $0x10,%rdi - 42eea1: 48 83 c6 10 add $0x10,%rsi - 42eea5: 48 83 c7 10 add $0x10,%rdi - 42eea9: 48 83 c6 10 add $0x10,%rsi - 42eead: 48 83 c7 10 add $0x10,%rdi - 42eeb1: 48 83 c6 10 add $0x10,%rsi - 42eeb5: 48 8b 47 f0 mov -0x10(%rdi),%rax - 42eeb9: 48 8b 4e f0 mov -0x10(%rsi),%rcx - 42eebd: 48 39 c1 cmp %rax,%rcx - 42eec0: 0f 85 3d 0a 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42eec6: 48 8b 47 f8 mov -0x8(%rdi),%rax - 42eeca: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 42eece: 48 39 c1 cmp %rax,%rcx - 42eed1: 0f 85 2c 0a 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42eed7: 31 c0 xor %eax,%eax - 42eed9: c3 retq - 42eeda: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 42eee0: 48 8b 47 f4 mov -0xc(%rdi),%rax - 42eee4: 48 8b 4e f4 mov -0xc(%rsi),%rcx - 42eee8: 48 39 c1 cmp %rax,%rcx - 42eeeb: 0f 85 12 0a 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42eef1: 8b 4e fc mov -0x4(%rsi),%ecx - 42eef4: 8b 47 fc mov -0x4(%rdi),%eax - 42eef7: 39 c1 cmp %eax,%ecx - 42eef9: 0f 85 10 0a 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> - 42eeff: 31 c0 xor %eax,%eax - 42ef01: c3 retq - 42ef02: 0f 1f 40 00 nopl 0x0(%rax) - 42ef06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42ef0d: 00 00 00 - 42ef10: f3 0f 6f 4f bf movdqu -0x41(%rdi),%xmm1 - 42ef15: f3 0f 6f 56 bf movdqu -0x41(%rsi),%xmm2 - 42ef1a: b2 bf mov $0xbf,%dl - 42ef1c: 66 0f ef d1 pxor %xmm1,%xmm2 - 42ef20: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42ef25: 0f 83 bd 09 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42ef2b: f3 0f 6f 4f cf movdqu -0x31(%rdi),%xmm1 - 42ef30: f3 0f 6f 56 cf movdqu -0x31(%rsi),%xmm2 - 42ef35: b2 cf mov $0xcf,%dl - 42ef37: 66 0f ef d1 pxor %xmm1,%xmm2 - 42ef3b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42ef40: 0f 83 a2 09 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42ef46: f3 0f 6f 4f df movdqu -0x21(%rdi),%xmm1 - 42ef4b: f3 0f 6f 56 df movdqu -0x21(%rsi),%xmm2 - 42ef50: b2 df mov $0xdf,%dl - 42ef52: 66 0f ef d1 pxor %xmm1,%xmm2 - 42ef56: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42ef5b: 0f 83 87 09 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42ef61: 48 8b 47 ef mov -0x11(%rdi),%rax - 42ef65: 48 8b 4e ef mov -0x11(%rsi),%rcx - 42ef69: 48 39 c1 cmp %rax,%rcx - 42ef6c: 0f 85 91 09 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42ef72: 48 8b 47 f7 mov -0x9(%rdi),%rax - 42ef76: 48 8b 4e f7 mov -0x9(%rsi),%rcx - 42ef7a: 48 39 c1 cmp %rax,%rcx - 42ef7d: 0f 85 80 09 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42ef83: 0f b6 47 ff movzbl -0x1(%rdi),%eax - 42ef87: 0f b6 56 ff movzbl -0x1(%rsi),%edx - 42ef8b: 29 d0 sub %edx,%eax - 42ef8d: c3 retq - 42ef8e: 66 90 xchg %ax,%ax - 42ef90: 48 8b 47 f3 mov -0xd(%rdi),%rax - 42ef94: 48 8b 4e f3 mov -0xd(%rsi),%rcx - 42ef98: 48 39 c1 cmp %rax,%rcx - 42ef9b: 0f 85 62 09 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42efa1: 48 8b 47 f8 mov -0x8(%rdi),%rax - 42efa5: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 42efa9: 48 39 c1 cmp %rax,%rcx - 42efac: 0f 85 51 09 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42efb2: 31 c0 xor %eax,%eax - 42efb4: c3 retq - 42efb5: 90 nop - 42efb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42efbd: 00 00 00 - 42efc0: 8b 47 fb mov -0x5(%rdi),%eax - 42efc3: 8b 4e fb mov -0x5(%rsi),%ecx - 42efc6: 39 c1 cmp %eax,%ecx - 42efc8: 0f 85 41 09 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> - 42efce: 0f b6 47 ff movzbl -0x1(%rdi),%eax - 42efd2: 0f b6 56 ff movzbl -0x1(%rsi),%edx - 42efd6: 29 d0 sub %edx,%eax - 42efd8: c3 retq - 42efd9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42efe0: f3 0f 6f 4f be movdqu -0x42(%rdi),%xmm1 - 42efe5: f3 0f 6f 56 be movdqu -0x42(%rsi),%xmm2 - 42efea: b2 be mov $0xbe,%dl - 42efec: 66 0f ef d1 pxor %xmm1,%xmm2 - 42eff0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42eff5: 0f 83 ed 08 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42effb: f3 0f 6f 4f ce movdqu -0x32(%rdi),%xmm1 - 42f000: f3 0f 6f 56 ce movdqu -0x32(%rsi),%xmm2 - 42f005: b2 ce mov $0xce,%dl - 42f007: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f00b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f010: 0f 83 d2 08 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f016: f3 0f 6f 4f de movdqu -0x22(%rdi),%xmm1 - 42f01b: f3 0f 6f 56 de movdqu -0x22(%rsi),%xmm2 - 42f020: b2 de mov $0xde,%dl - 42f022: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f026: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f02b: 0f 83 b7 08 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f031: 48 8b 47 ee mov -0x12(%rdi),%rax - 42f035: 48 8b 4e ee mov -0x12(%rsi),%rcx - 42f039: 48 39 c1 cmp %rax,%rcx - 42f03c: 0f 85 c1 08 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f042: 48 8b 47 f6 mov -0xa(%rdi),%rax - 42f046: 48 8b 4e f6 mov -0xa(%rsi),%rcx - 42f04a: 48 39 c1 cmp %rax,%rcx - 42f04d: 0f 85 b0 08 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f053: 0f b7 47 fe movzwl -0x2(%rdi),%eax - 42f057: 0f b7 4e fe movzwl -0x2(%rsi),%ecx - 42f05b: 38 c8 cmp %cl,%al - 42f05d: 0f 85 cd 08 00 00 jne 42f930 <__memcmp_sse4_1+0x1630> - 42f063: 25 ff ff 00 00 and $0xffff,%eax - 42f068: 81 e1 ff ff 00 00 and $0xffff,%ecx - 42f06e: 29 c8 sub %ecx,%eax - 42f070: c3 retq - 42f071: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42f076: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42f07d: 00 00 00 - 42f080: 48 8b 47 f2 mov -0xe(%rdi),%rax - 42f084: 48 8b 4e f2 mov -0xe(%rsi),%rcx - 42f088: 48 39 c1 cmp %rax,%rcx - 42f08b: 0f 85 72 08 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f091: 48 8b 47 f8 mov -0x8(%rdi),%rax - 42f095: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 42f099: 48 39 c1 cmp %rax,%rcx - 42f09c: 0f 85 61 08 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f0a2: 31 c0 xor %eax,%eax - 42f0a4: c3 retq - 42f0a5: 90 nop - 42f0a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42f0ad: 00 00 00 - 42f0b0: 8b 47 fa mov -0x6(%rdi),%eax - 42f0b3: 8b 4e fa mov -0x6(%rsi),%ecx - 42f0b6: 39 c1 cmp %eax,%ecx - 42f0b8: 0f 85 51 08 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> - 42f0be: 0f b7 4e fe movzwl -0x2(%rsi),%ecx - 42f0c2: 0f b7 47 fe movzwl -0x2(%rdi),%eax - 42f0c6: 38 c8 cmp %cl,%al - 42f0c8: 0f 85 62 08 00 00 jne 42f930 <__memcmp_sse4_1+0x1630> - 42f0ce: 25 ff ff 00 00 and $0xffff,%eax - 42f0d3: 81 e1 ff ff 00 00 and $0xffff,%ecx - 42f0d9: 29 c8 sub %ecx,%eax - 42f0db: c3 retq - 42f0dc: 0f 1f 40 00 nopl 0x0(%rax) - 42f0e0: f3 0f 6f 57 bd movdqu -0x43(%rdi),%xmm2 - 42f0e5: f3 0f 6f 4e bd movdqu -0x43(%rsi),%xmm1 - 42f0ea: b2 bd mov $0xbd,%dl - 42f0ec: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f0f0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f0f5: 0f 83 ed 07 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f0fb: f3 0f 6f 57 cd movdqu -0x33(%rdi),%xmm2 - 42f100: f3 0f 6f 4e cd movdqu -0x33(%rsi),%xmm1 - 42f105: b2 cd mov $0xcd,%dl - 42f107: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f10b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f110: 0f 83 d2 07 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f116: f3 0f 6f 4e dd movdqu -0x23(%rsi),%xmm1 - 42f11b: f3 0f 6f 57 dd movdqu -0x23(%rdi),%xmm2 - 42f120: b2 dd mov $0xdd,%dl - 42f122: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f126: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f12b: 0f 83 b7 07 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f131: 48 8b 47 ed mov -0x13(%rdi),%rax - 42f135: 48 8b 4e ed mov -0x13(%rsi),%rcx - 42f139: 48 39 c1 cmp %rax,%rcx - 42f13c: 0f 85 c1 07 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f142: 48 8b 47 f5 mov -0xb(%rdi),%rax - 42f146: 48 8b 4e f5 mov -0xb(%rsi),%rcx - 42f14a: 48 39 c1 cmp %rax,%rcx - 42f14d: 0f 85 b0 07 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f153: 8b 47 fc mov -0x4(%rdi),%eax - 42f156: 8b 4e fc mov -0x4(%rsi),%ecx - 42f159: 39 c1 cmp %eax,%ecx - 42f15b: 0f 85 ae 07 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> - 42f161: 31 c0 xor %eax,%eax - 42f163: c3 retq - 42f164: 66 90 xchg %ax,%ax - 42f166: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42f16d: 00 00 00 - 42f170: 48 8b 47 f1 mov -0xf(%rdi),%rax - 42f174: 48 8b 4e f1 mov -0xf(%rsi),%rcx - 42f178: 48 39 c1 cmp %rax,%rcx - 42f17b: 0f 85 82 07 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f181: 48 8b 47 f8 mov -0x8(%rdi),%rax - 42f185: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 42f189: 48 39 c1 cmp %rax,%rcx - 42f18c: 0f 85 71 07 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f192: 31 c0 xor %eax,%eax - 42f194: c3 retq - 42f195: 90 nop - 42f196: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42f19d: 00 00 00 - 42f1a0: 8b 47 f9 mov -0x7(%rdi),%eax - 42f1a3: 8b 4e f9 mov -0x7(%rsi),%ecx - 42f1a6: 39 c1 cmp %eax,%ecx - 42f1a8: 0f 85 61 07 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> - 42f1ae: 8b 47 fc mov -0x4(%rdi),%eax - 42f1b1: 8b 4e fc mov -0x4(%rsi),%ecx - 42f1b4: 39 c1 cmp %eax,%ecx - 42f1b6: 0f 85 53 07 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> - 42f1bc: 31 c0 xor %eax,%eax - 42f1be: c3 retq - 42f1bf: 90 nop - 42f1c0: 0f b7 47 fd movzwl -0x3(%rdi),%eax - 42f1c4: 0f b7 4e fd movzwl -0x3(%rsi),%ecx - 42f1c8: 39 c1 cmp %eax,%ecx - 42f1ca: 0f 85 4a 07 00 00 jne 42f91a <__memcmp_sse4_1+0x161a> - 42f1d0: 0f b6 47 ff movzbl -0x1(%rdi),%eax - 42f1d4: 0f b6 4e ff movzbl -0x1(%rsi),%ecx - 42f1d8: 29 c8 sub %ecx,%eax - 42f1da: c3 retq - 42f1db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42f1e0: f3 0f 6f 57 bc movdqu -0x44(%rdi),%xmm2 - 42f1e5: f3 0f 6f 4e bc movdqu -0x44(%rsi),%xmm1 - 42f1ea: b2 bc mov $0xbc,%dl - 42f1ec: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f1f0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f1f5: 0f 83 ed 06 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f1fb: f3 0f 6f 57 cc movdqu -0x34(%rdi),%xmm2 - 42f200: f3 0f 6f 4e cc movdqu -0x34(%rsi),%xmm1 - 42f205: b2 cc mov $0xcc,%dl - 42f207: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f20b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f210: 0f 83 d2 06 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f216: f3 0f 6f 57 dc movdqu -0x24(%rdi),%xmm2 - 42f21b: f3 0f 6f 4e dc movdqu -0x24(%rsi),%xmm1 - 42f220: b2 dc mov $0xdc,%dl - 42f222: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f226: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f22b: 0f 83 b7 06 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f231: f3 0f 6f 57 ec movdqu -0x14(%rdi),%xmm2 - 42f236: f3 0f 6f 4e ec movdqu -0x14(%rsi),%xmm1 - 42f23b: b2 ec mov $0xec,%dl - 42f23d: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f241: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f246: 0f 83 9c 06 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f24c: 8b 4e fc mov -0x4(%rsi),%ecx - 42f24f: 8b 47 fc mov -0x4(%rdi),%eax - 42f252: 39 c1 cmp %eax,%ecx - 42f254: 0f 85 b5 06 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> - 42f25a: 31 c0 xor %eax,%eax - 42f25c: c3 retq - 42f25d: 0f 1f 00 nopl (%rax) - 42f260: f3 0f 6f 4e bb movdqu -0x45(%rsi),%xmm1 - 42f265: f3 0f 6f 57 bb movdqu -0x45(%rdi),%xmm2 - 42f26a: b2 bb mov $0xbb,%dl - 42f26c: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f270: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f275: 0f 83 6d 06 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f27b: f3 0f 6f 4e cb movdqu -0x35(%rsi),%xmm1 - 42f280: f3 0f 6f 57 cb movdqu -0x35(%rdi),%xmm2 - 42f285: b2 cb mov $0xcb,%dl - 42f287: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f28b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f290: 0f 83 52 06 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f296: f3 0f 6f 4e db movdqu -0x25(%rsi),%xmm1 - 42f29b: f3 0f 6f 57 db movdqu -0x25(%rdi),%xmm2 - 42f2a0: b2 db mov $0xdb,%dl - 42f2a2: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f2a6: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f2ab: 0f 83 37 06 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f2b1: f3 0f 6f 4e eb movdqu -0x15(%rsi),%xmm1 - 42f2b6: f3 0f 6f 57 eb movdqu -0x15(%rdi),%xmm2 - 42f2bb: b2 eb mov $0xeb,%dl - 42f2bd: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f2c1: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f2c6: 0f 83 1c 06 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f2cc: 48 8b 47 f8 mov -0x8(%rdi),%rax - 42f2d0: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 42f2d4: 48 39 c1 cmp %rax,%rcx - 42f2d7: 0f 85 26 06 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f2dd: 31 c0 xor %eax,%eax - 42f2df: c3 retq - 42f2e0: f3 0f 6f 4e ba movdqu -0x46(%rsi),%xmm1 - 42f2e5: f3 0f 6f 57 ba movdqu -0x46(%rdi),%xmm2 - 42f2ea: b2 ba mov $0xba,%dl - 42f2ec: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f2f0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f2f5: 0f 83 ed 05 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f2fb: f3 0f 6f 4e ca movdqu -0x36(%rsi),%xmm1 - 42f300: f3 0f 6f 57 ca movdqu -0x36(%rdi),%xmm2 - 42f305: b2 ca mov $0xca,%dl - 42f307: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f30b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f310: 0f 83 d2 05 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f316: f3 0f 6f 4e da movdqu -0x26(%rsi),%xmm1 - 42f31b: f3 0f 6f 57 da movdqu -0x26(%rdi),%xmm2 - 42f320: b2 da mov $0xda,%dl - 42f322: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f326: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f32b: 0f 83 b7 05 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f331: f3 0f 6f 4e ea movdqu -0x16(%rsi),%xmm1 - 42f336: f3 0f 6f 57 ea movdqu -0x16(%rdi),%xmm2 - 42f33b: b2 ea mov $0xea,%dl - 42f33d: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f341: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f346: 0f 83 9c 05 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f34c: 48 8b 47 f8 mov -0x8(%rdi),%rax - 42f350: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 42f354: 48 39 c1 cmp %rax,%rcx - 42f357: 0f 85 a6 05 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f35d: 31 c0 xor %eax,%eax - 42f35f: c3 retq - 42f360: f3 0f 6f 4e b9 movdqu -0x47(%rsi),%xmm1 - 42f365: f3 0f 6f 57 b9 movdqu -0x47(%rdi),%xmm2 - 42f36a: b2 b9 mov $0xb9,%dl - 42f36c: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f370: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f375: 0f 83 6d 05 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f37b: f3 0f 6f 57 c9 movdqu -0x37(%rdi),%xmm2 - 42f380: f3 0f 6f 4e c9 movdqu -0x37(%rsi),%xmm1 - 42f385: b2 c9 mov $0xc9,%dl - 42f387: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f38b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f390: 0f 83 52 05 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f396: f3 0f 6f 57 d9 movdqu -0x27(%rdi),%xmm2 - 42f39b: f3 0f 6f 4e d9 movdqu -0x27(%rsi),%xmm1 - 42f3a0: b2 d9 mov $0xd9,%dl - 42f3a2: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f3a6: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f3ab: 0f 83 37 05 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f3b1: f3 0f 6f 57 e9 movdqu -0x17(%rdi),%xmm2 - 42f3b6: f3 0f 6f 4e e9 movdqu -0x17(%rsi),%xmm1 - 42f3bb: b2 e9 mov $0xe9,%dl - 42f3bd: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f3c1: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f3c6: 0f 83 1c 05 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f3cc: 48 8b 47 f8 mov -0x8(%rdi),%rax - 42f3d0: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 42f3d4: 48 39 c1 cmp %rax,%rcx - 42f3d7: 0f 85 26 05 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f3dd: 31 c0 xor %eax,%eax - 42f3df: c3 retq - 42f3e0: f3 0f 6f 4e b8 movdqu -0x48(%rsi),%xmm1 - 42f3e5: f3 0f 6f 57 b8 movdqu -0x48(%rdi),%xmm2 - 42f3ea: b2 b8 mov $0xb8,%dl - 42f3ec: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f3f0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f3f5: 0f 83 ed 04 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f3fb: f3 0f 6f 57 c8 movdqu -0x38(%rdi),%xmm2 - 42f400: f3 0f 6f 4e c8 movdqu -0x38(%rsi),%xmm1 - 42f405: b2 c8 mov $0xc8,%dl - 42f407: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f40b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f410: 0f 83 d2 04 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f416: f3 0f 6f 57 d8 movdqu -0x28(%rdi),%xmm2 - 42f41b: f3 0f 6f 4e d8 movdqu -0x28(%rsi),%xmm1 - 42f420: b2 d8 mov $0xd8,%dl - 42f422: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f426: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f42b: 0f 83 b7 04 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f431: f3 0f 6f 57 e8 movdqu -0x18(%rdi),%xmm2 - 42f436: f3 0f 6f 4e e8 movdqu -0x18(%rsi),%xmm1 - 42f43b: b2 e8 mov $0xe8,%dl - 42f43d: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f441: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f446: 0f 83 9c 04 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f44c: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 42f450: 48 8b 47 f8 mov -0x8(%rdi),%rax - 42f454: 48 39 c1 cmp %rax,%rcx - 42f457: 0f 85 a6 04 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f45d: 31 c0 xor %eax,%eax - 42f45f: c3 retq - 42f460: f3 0f 6f 4e b7 movdqu -0x49(%rsi),%xmm1 - 42f465: f3 0f 6f 57 b7 movdqu -0x49(%rdi),%xmm2 - 42f46a: b2 b7 mov $0xb7,%dl - 42f46c: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f470: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f475: 0f 83 6d 04 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f47b: f3 0f 6f 57 c7 movdqu -0x39(%rdi),%xmm2 - 42f480: f3 0f 6f 4e c7 movdqu -0x39(%rsi),%xmm1 - 42f485: b2 c7 mov $0xc7,%dl - 42f487: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f48b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f490: 0f 83 52 04 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f496: f3 0f 6f 57 d7 movdqu -0x29(%rdi),%xmm2 - 42f49b: f3 0f 6f 4e d7 movdqu -0x29(%rsi),%xmm1 - 42f4a0: b2 d7 mov $0xd7,%dl - 42f4a2: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f4a6: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f4ab: 0f 83 37 04 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f4b1: f3 0f 6f 57 e7 movdqu -0x19(%rdi),%xmm2 - 42f4b6: f3 0f 6f 4e e7 movdqu -0x19(%rsi),%xmm1 - 42f4bb: b2 e7 mov $0xe7,%dl - 42f4bd: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f4c1: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f4c6: 0f 83 1c 04 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f4cc: 48 8b 47 f7 mov -0x9(%rdi),%rax - 42f4d0: 48 8b 4e f7 mov -0x9(%rsi),%rcx - 42f4d4: 48 39 c1 cmp %rax,%rcx - 42f4d7: 0f 85 26 04 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f4dd: 0f b6 47 ff movzbl -0x1(%rdi),%eax - 42f4e1: 0f b6 4e ff movzbl -0x1(%rsi),%ecx - 42f4e5: 29 c8 sub %ecx,%eax - 42f4e7: c3 retq - 42f4e8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42f4ef: 00 - 42f4f0: f3 0f 6f 4e b6 movdqu -0x4a(%rsi),%xmm1 - 42f4f5: f3 0f 6f 57 b6 movdqu -0x4a(%rdi),%xmm2 - 42f4fa: b2 b6 mov $0xb6,%dl - 42f4fc: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f500: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f505: 0f 83 dd 03 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f50b: f3 0f 6f 57 c6 movdqu -0x3a(%rdi),%xmm2 - 42f510: f3 0f 6f 4e c6 movdqu -0x3a(%rsi),%xmm1 - 42f515: b2 c6 mov $0xc6,%dl - 42f517: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f51b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f520: 0f 83 c2 03 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f526: f3 0f 6f 57 d6 movdqu -0x2a(%rdi),%xmm2 - 42f52b: f3 0f 6f 4e d6 movdqu -0x2a(%rsi),%xmm1 - 42f530: b2 d6 mov $0xd6,%dl - 42f532: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f536: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f53b: 0f 83 a7 03 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f541: f3 0f 6f 57 e6 movdqu -0x1a(%rdi),%xmm2 - 42f546: f3 0f 6f 4e e6 movdqu -0x1a(%rsi),%xmm1 - 42f54b: b2 e6 mov $0xe6,%dl - 42f54d: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f551: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f556: 0f 83 8c 03 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f55c: 48 8b 47 f6 mov -0xa(%rdi),%rax - 42f560: 48 8b 4e f6 mov -0xa(%rsi),%rcx - 42f564: 48 39 c1 cmp %rax,%rcx - 42f567: 0f 85 96 03 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f56d: 0f b7 47 fe movzwl -0x2(%rdi),%eax - 42f571: 0f b7 4e fe movzwl -0x2(%rsi),%ecx - 42f575: e9 a0 03 00 00 jmpq 42f91a <__memcmp_sse4_1+0x161a> - 42f57a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 42f580: f3 0f 6f 4e b5 movdqu -0x4b(%rsi),%xmm1 - 42f585: f3 0f 6f 57 b5 movdqu -0x4b(%rdi),%xmm2 - 42f58a: b2 b5 mov $0xb5,%dl - 42f58c: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f590: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f595: 0f 83 4d 03 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f59b: f3 0f 6f 57 c5 movdqu -0x3b(%rdi),%xmm2 - 42f5a0: f3 0f 6f 4e c5 movdqu -0x3b(%rsi),%xmm1 - 42f5a5: b2 c5 mov $0xc5,%dl - 42f5a7: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f5ab: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f5b0: 0f 83 32 03 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f5b6: f3 0f 6f 57 d5 movdqu -0x2b(%rdi),%xmm2 - 42f5bb: f3 0f 6f 4e d5 movdqu -0x2b(%rsi),%xmm1 - 42f5c0: b2 d5 mov $0xd5,%dl - 42f5c2: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f5c6: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f5cb: 0f 83 17 03 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f5d1: f3 0f 6f 57 e5 movdqu -0x1b(%rdi),%xmm2 - 42f5d6: f3 0f 6f 4e e5 movdqu -0x1b(%rsi),%xmm1 - 42f5db: b2 e5 mov $0xe5,%dl - 42f5dd: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f5e1: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f5e6: 0f 83 fc 02 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f5ec: 48 8b 47 f5 mov -0xb(%rdi),%rax - 42f5f0: 48 8b 4e f5 mov -0xb(%rsi),%rcx - 42f5f4: 48 39 c1 cmp %rax,%rcx - 42f5f7: 0f 85 06 03 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f5fd: 8b 47 fc mov -0x4(%rdi),%eax - 42f600: 8b 4e fc mov -0x4(%rsi),%ecx - 42f603: 39 c1 cmp %eax,%ecx - 42f605: 0f 85 04 03 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> - 42f60b: 31 c0 xor %eax,%eax - 42f60d: c3 retq - 42f60e: 66 90 xchg %ax,%ax - 42f610: f3 0f 6f 4e b4 movdqu -0x4c(%rsi),%xmm1 - 42f615: f3 0f 6f 57 b4 movdqu -0x4c(%rdi),%xmm2 - 42f61a: b2 b4 mov $0xb4,%dl - 42f61c: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f620: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f625: 0f 83 bd 02 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f62b: f3 0f 6f 57 c4 movdqu -0x3c(%rdi),%xmm2 - 42f630: f3 0f 6f 4e c4 movdqu -0x3c(%rsi),%xmm1 - 42f635: b2 c4 mov $0xc4,%dl - 42f637: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f63b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f640: 0f 83 a2 02 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f646: f3 0f 6f 57 d4 movdqu -0x2c(%rdi),%xmm2 - 42f64b: f3 0f 6f 4e d4 movdqu -0x2c(%rsi),%xmm1 - 42f650: b2 d4 mov $0xd4,%dl - 42f652: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f656: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f65b: 0f 83 87 02 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f661: f3 0f 6f 57 e4 movdqu -0x1c(%rdi),%xmm2 - 42f666: f3 0f 6f 4e e4 movdqu -0x1c(%rsi),%xmm1 - 42f66b: b2 e4 mov $0xe4,%dl - 42f66d: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f671: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f676: 0f 83 6c 02 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f67c: 48 8b 47 f4 mov -0xc(%rdi),%rax - 42f680: 48 8b 4e f4 mov -0xc(%rsi),%rcx - 42f684: 48 39 c1 cmp %rax,%rcx - 42f687: 0f 85 76 02 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f68d: 8b 4e fc mov -0x4(%rsi),%ecx - 42f690: 8b 47 fc mov -0x4(%rdi),%eax - 42f693: 39 c1 cmp %eax,%ecx - 42f695: 0f 85 74 02 00 00 jne 42f90f <__memcmp_sse4_1+0x160f> - 42f69b: 31 c0 xor %eax,%eax - 42f69d: c3 retq - 42f69e: 66 90 xchg %ax,%ax - 42f6a0: f3 0f 6f 4e b3 movdqu -0x4d(%rsi),%xmm1 - 42f6a5: f3 0f 6f 57 b3 movdqu -0x4d(%rdi),%xmm2 - 42f6aa: b2 b3 mov $0xb3,%dl - 42f6ac: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f6b0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f6b5: 0f 83 2d 02 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f6bb: f3 0f 6f 57 c3 movdqu -0x3d(%rdi),%xmm2 - 42f6c0: f3 0f 6f 4e c3 movdqu -0x3d(%rsi),%xmm1 - 42f6c5: b2 c3 mov $0xc3,%dl - 42f6c7: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f6cb: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f6d0: 0f 83 12 02 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f6d6: f3 0f 6f 57 d3 movdqu -0x2d(%rdi),%xmm2 - 42f6db: f3 0f 6f 4e d3 movdqu -0x2d(%rsi),%xmm1 - 42f6e0: b2 d3 mov $0xd3,%dl - 42f6e2: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f6e6: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f6eb: 0f 83 f7 01 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f6f1: f3 0f 6f 57 e3 movdqu -0x1d(%rdi),%xmm2 - 42f6f6: f3 0f 6f 4e e3 movdqu -0x1d(%rsi),%xmm1 - 42f6fb: b2 e3 mov $0xe3,%dl - 42f6fd: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f701: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f706: 0f 83 dc 01 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f70c: 48 8b 47 f3 mov -0xd(%rdi),%rax - 42f710: 48 8b 4e f3 mov -0xd(%rsi),%rcx - 42f714: 48 39 c1 cmp %rax,%rcx - 42f717: 0f 85 e6 01 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f71d: 48 8b 47 f8 mov -0x8(%rdi),%rax - 42f721: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 42f725: 48 39 c1 cmp %rax,%rcx - 42f728: 0f 85 d5 01 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f72e: 31 c0 xor %eax,%eax - 42f730: c3 retq - 42f731: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42f736: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42f73d: 00 00 00 - 42f740: f3 0f 6f 4e b2 movdqu -0x4e(%rsi),%xmm1 - 42f745: f3 0f 6f 57 b2 movdqu -0x4e(%rdi),%xmm2 - 42f74a: b2 b2 mov $0xb2,%dl - 42f74c: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f750: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f755: 0f 83 8d 01 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f75b: f3 0f 6f 57 c2 movdqu -0x3e(%rdi),%xmm2 - 42f760: f3 0f 6f 4e c2 movdqu -0x3e(%rsi),%xmm1 - 42f765: b2 c2 mov $0xc2,%dl - 42f767: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f76b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f770: 0f 83 72 01 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f776: f3 0f 6f 57 d2 movdqu -0x2e(%rdi),%xmm2 - 42f77b: f3 0f 6f 4e d2 movdqu -0x2e(%rsi),%xmm1 - 42f780: b2 d2 mov $0xd2,%dl - 42f782: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f786: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f78b: 0f 83 57 01 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f791: f3 0f 6f 57 e2 movdqu -0x1e(%rdi),%xmm2 - 42f796: f3 0f 6f 4e e2 movdqu -0x1e(%rsi),%xmm1 - 42f79b: b2 e2 mov $0xe2,%dl - 42f79d: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f7a1: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f7a6: 0f 83 3c 01 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f7ac: 48 8b 47 f2 mov -0xe(%rdi),%rax - 42f7b0: 48 8b 4e f2 mov -0xe(%rsi),%rcx - 42f7b4: 48 39 c1 cmp %rax,%rcx - 42f7b7: 0f 85 46 01 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f7bd: 48 8b 47 f8 mov -0x8(%rdi),%rax - 42f7c1: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 42f7c5: 48 39 c1 cmp %rax,%rcx - 42f7c8: 0f 85 35 01 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f7ce: 31 c0 xor %eax,%eax - 42f7d0: c3 retq - 42f7d1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42f7d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42f7dd: 00 00 00 - 42f7e0: f3 0f 6f 4e b1 movdqu -0x4f(%rsi),%xmm1 - 42f7e5: f3 0f 6f 57 b1 movdqu -0x4f(%rdi),%xmm2 - 42f7ea: b2 b1 mov $0xb1,%dl - 42f7ec: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f7f0: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f7f5: 0f 83 ed 00 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f7fb: f3 0f 6f 57 c1 movdqu -0x3f(%rdi),%xmm2 - 42f800: f3 0f 6f 4e c1 movdqu -0x3f(%rsi),%xmm1 - 42f805: b2 c1 mov $0xc1,%dl - 42f807: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f80b: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f810: 0f 83 d2 00 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f816: f3 0f 6f 57 d1 movdqu -0x2f(%rdi),%xmm2 - 42f81b: f3 0f 6f 4e d1 movdqu -0x2f(%rsi),%xmm1 - 42f820: b2 d1 mov $0xd1,%dl - 42f822: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f826: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f82b: 0f 83 b7 00 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f831: f3 0f 6f 57 e1 movdqu -0x1f(%rdi),%xmm2 - 42f836: f3 0f 6f 4e e1 movdqu -0x1f(%rsi),%xmm1 - 42f83b: b2 e1 mov $0xe1,%dl - 42f83d: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f841: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f846: 0f 83 9c 00 00 00 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f84c: 48 8b 47 f1 mov -0xf(%rdi),%rax - 42f850: 48 8b 4e f1 mov -0xf(%rsi),%rcx - 42f854: 48 39 c1 cmp %rax,%rcx - 42f857: 0f 85 a6 00 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f85d: 48 8b 47 f8 mov -0x8(%rdi),%rax - 42f861: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 42f865: 48 39 c1 cmp %rax,%rcx - 42f868: 0f 85 95 00 00 00 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f86e: 31 c0 xor %eax,%eax - 42f870: c3 retq - 42f871: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42f876: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42f87d: 00 00 00 - 42f880: f3 0f 6f 57 c0 movdqu -0x40(%rdi),%xmm2 - 42f885: f3 0f 6f 4e c0 movdqu -0x40(%rsi),%xmm1 - 42f88a: b2 c0 mov $0xc0,%dl - 42f88c: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f890: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f895: 73 51 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f897: f3 0f 6f 57 d0 movdqu -0x30(%rdi),%xmm2 - 42f89c: f3 0f 6f 4e d0 movdqu -0x30(%rsi),%xmm1 - 42f8a1: b2 d0 mov $0xd0,%dl - 42f8a3: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f8a7: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f8ac: 73 3a jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f8ae: f3 0f 6f 57 e0 movdqu -0x20(%rdi),%xmm2 - 42f8b3: f3 0f 6f 4e e0 movdqu -0x20(%rsi),%xmm1 - 42f8b8: b2 e0 mov $0xe0,%dl - 42f8ba: 66 0f ef d1 pxor %xmm1,%xmm2 - 42f8be: 66 0f 38 17 c2 ptest %xmm2,%xmm0 - 42f8c3: 73 23 jae 42f8e8 <__memcmp_sse4_1+0x15e8> - 42f8c5: 48 8b 47 f0 mov -0x10(%rdi),%rax - 42f8c9: 48 8b 4e f0 mov -0x10(%rsi),%rcx - 42f8cd: 48 39 c1 cmp %rax,%rcx - 42f8d0: 75 31 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f8d2: 48 8b 47 f8 mov -0x8(%rdi),%rax - 42f8d6: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 42f8da: 48 39 c1 cmp %rax,%rcx - 42f8dd: 75 24 jne 42f903 <__memcmp_sse4_1+0x1603> - 42f8df: 31 c0 xor %eax,%eax - 42f8e1: c3 retq - 42f8e2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 42f8e8: 48 0f be d2 movsbq %dl,%rdx - 42f8ec: 48 8b 0c 16 mov (%rsi,%rdx,1),%rcx - 42f8f0: 48 8b 04 17 mov (%rdi,%rdx,1),%rax - 42f8f4: 48 39 c1 cmp %rax,%rcx - 42f8f7: 75 0a jne 42f903 <__memcmp_sse4_1+0x1603> - 42f8f9: 48 8b 4c 16 08 mov 0x8(%rsi,%rdx,1),%rcx - 42f8fe: 48 8b 44 17 08 mov 0x8(%rdi,%rdx,1),%rax - 42f903: 39 c1 cmp %eax,%ecx - 42f905: 75 08 jne 42f90f <__memcmp_sse4_1+0x160f> - 42f907: 48 c1 e9 20 shr $0x20,%rcx - 42f90b: 48 c1 e8 20 shr $0x20,%rax - 42f90f: 66 39 c8 cmp %cx,%ax - 42f912: 75 06 jne 42f91a <__memcmp_sse4_1+0x161a> - 42f914: c1 e9 10 shr $0x10,%ecx - 42f917: c1 e8 10 shr $0x10,%eax - 42f91a: 38 c8 cmp %cl,%al - 42f91c: 75 12 jne 42f930 <__memcmp_sse4_1+0x1630> - 42f91e: 25 ff ff 00 00 and $0xffff,%eax - 42f923: 81 e1 ff ff 00 00 and $0xffff,%ecx - 42f929: 29 c8 sub %ecx,%eax - 42f92b: c3 retq - 42f92c: 0f 1f 40 00 nopl 0x0(%rax) - 42f930: 25 ff 00 00 00 and $0xff,%eax - 42f935: 81 e1 ff 00 00 00 and $0xff,%ecx - 42f93b: 29 c8 sub %ecx,%eax - 42f93d: c3 retq - 42f93e: 66 90 xchg %ax,%ax - -000000000042f940 <__memmove_chk_ssse3>: - 42f940: 48 39 d1 cmp %rdx,%rcx - 42f943: 0f 82 67 31 01 00 jb 442ab0 <__chk_fail> - 42f949: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -000000000042f950 <__memmove_ssse3>: - 42f950: 48 89 f8 mov %rdi,%rax - 42f953: 48 39 f7 cmp %rsi,%rdi - 42f956: 72 0e jb 42f966 <__memmove_ssse3+0x16> - 42f958: 0f 84 7a 1a 00 00 je 4313d8 <__memmove_ssse3+0x1a88> - 42f95e: 48 83 fa 4f cmp $0x4f,%rdx - 42f962: 76 02 jbe 42f966 <__memmove_ssse3+0x16> - 42f964: eb 7a jmp 42f9e0 <__memmove_ssse3+0x90> - 42f966: 48 83 fa 4f cmp $0x4f,%rdx - 42f96a: 4c 8d 1d 3f 3a 07 00 lea 0x73a3f(%rip),%r11 # 4a33b0 - 42f971: 77 1d ja 42f990 <__memmove_ssse3+0x40> - 42f973: 4d 63 0c 93 movslq (%r11,%rdx,4),%r9 - 42f977: 48 01 d6 add %rdx,%rsi - 42f97a: 48 01 d7 add %rdx,%rdi - 42f97d: 4d 01 d9 add %r11,%r9 - 42f980: 41 ff e1 jmpq *%r9 - 42f983: 0f 0b ud2 - 42f985: 90 nop - 42f986: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42f98d: 00 00 00 - 42f990: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 42f994: 48 89 f9 mov %rdi,%rcx - 42f997: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 42f99b: 48 83 c7 10 add $0x10,%rdi - 42f99f: 49 89 c8 mov %rcx,%r8 - 42f9a2: 48 29 f9 sub %rdi,%rcx - 42f9a5: 48 01 ca add %rcx,%rdx - 42f9a8: 48 29 ce sub %rcx,%rsi - 42f9ab: 48 8b 0d fe b6 29 00 mov 0x29b6fe(%rip),%rcx # 6cb0b0 <__x86_shared_cache_size_half> - 42f9b2: 48 39 ca cmp %rcx,%rdx - 42f9b5: 49 89 f1 mov %rsi,%r9 - 42f9b8: 0f 87 92 27 00 00 ja 432150 <__memmove_ssse3+0x2800> - 42f9be: 49 83 e1 0f and $0xf,%r9 - 42f9c2: 74 7c je 42fa40 <__memmove_ssse3+0xf0> - 42f9c4: 48 8b 0d 05 b7 29 00 mov 0x29b705(%rip),%rcx # 6cb0d0 <__x86_data_cache_size_half> - 42f9cb: 4c 8d 1d 1e 3b 07 00 lea 0x73b1e(%rip),%r11 # 4a34f0 - 42f9d2: 4f 63 0c 8b movslq (%r11,%r9,4),%r9 - 42f9d6: 4f 8d 0c 0b lea (%r11,%r9,1),%r9 - 42f9da: 41 ff e1 jmpq *%r9 - 42f9dd: 0f 0b ud2 - 42f9df: 90 nop - 42f9e0: f3 0f 6f 44 16 f0 movdqu -0x10(%rsi,%rdx,1),%xmm0 - 42f9e6: 48 01 d6 add %rdx,%rsi - 42f9e9: 4c 8d 44 17 f0 lea -0x10(%rdi,%rdx,1),%r8 - 42f9ee: 48 01 d7 add %rdx,%rdi - 42f9f1: 48 89 f9 mov %rdi,%rcx - 42f9f4: 48 83 e1 0f and $0xf,%rcx - 42f9f8: 48 31 cf xor %rcx,%rdi - 42f9fb: 48 29 ca sub %rcx,%rdx - 42f9fe: 48 29 ce sub %rcx,%rsi - 42fa01: 48 8b 0d a8 b6 29 00 mov 0x29b6a8(%rip),%rcx # 6cb0b0 <__x86_shared_cache_size_half> - 42fa08: 48 39 ca cmp %rcx,%rdx - 42fa0b: 49 89 f1 mov %rsi,%r9 - 42fa0e: 0f 87 fc 28 00 00 ja 432310 <__memmove_ssse3+0x29c0> - 42fa14: 49 83 e1 0f and $0xf,%r9 - 42fa18: 0f 84 42 02 00 00 je 42fc60 <__memmove_ssse3+0x310> - 42fa1e: 48 8b 0d ab b6 29 00 mov 0x29b6ab(%rip),%rcx # 6cb0d0 <__x86_data_cache_size_half> - 42fa25: 4c 8d 1d 04 3b 07 00 lea 0x73b04(%rip),%r11 # 4a3530 - 42fa2c: 4f 63 0c 8b movslq (%r11,%r9,4),%r9 - 42fa30: 4f 8d 0c 0b lea (%r11,%r9,1),%r9 - 42fa34: 41 ff e1 jmpq *%r9 - 42fa37: 0f 0b ud2 - 42fa39: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42fa40: 48 83 ea 10 sub $0x10,%rdx - 42fa44: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 42fa48: 48 83 c6 10 add $0x10,%rsi - 42fa4c: 66 0f 7f 0f movdqa %xmm1,(%rdi) - 42fa50: 48 83 c7 10 add $0x10,%rdi - 42fa54: 48 81 fa 80 00 00 00 cmp $0x80,%rdx - 42fa5b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 42fa60: 77 4e ja 42fab0 <__memmove_ssse3+0x160> - 42fa62: 48 83 fa 40 cmp $0x40,%rdx - 42fa66: 72 2a jb 42fa92 <__memmove_ssse3+0x142> - 42fa68: 0f 28 26 movaps (%rsi),%xmm4 - 42fa6b: 0f 28 4e 10 movaps 0x10(%rsi),%xmm1 - 42fa6f: 0f 28 56 20 movaps 0x20(%rsi),%xmm2 - 42fa73: 0f 28 5e 30 movaps 0x30(%rsi),%xmm3 - 42fa77: 0f 29 27 movaps %xmm4,(%rdi) - 42fa7a: 0f 29 4f 10 movaps %xmm1,0x10(%rdi) - 42fa7e: 0f 29 57 20 movaps %xmm2,0x20(%rdi) - 42fa82: 0f 29 5f 30 movaps %xmm3,0x30(%rdi) - 42fa86: 48 83 ea 40 sub $0x40,%rdx - 42fa8a: 48 83 c6 40 add $0x40,%rsi - 42fa8e: 48 83 c7 40 add $0x40,%rdi - 42fa92: 48 01 d6 add %rdx,%rsi - 42fa95: 48 01 d7 add %rdx,%rdi - 42fa98: 4c 8d 1d 11 39 07 00 lea 0x73911(%rip),%r11 # 4a33b0 - 42fa9f: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 42faa3: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 42faa7: ff e2 jmpq *%rdx - 42faa9: 0f 0b ud2 - 42faab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 42fab0: 48 3b 15 19 b6 29 00 cmp 0x29b619(%rip),%rdx # 6cb0d0 <__x86_data_cache_size_half> - 42fab7: 48 8d 52 80 lea -0x80(%rdx),%rdx - 42fabb: 0f 83 af 00 00 00 jae 42fb70 <__memmove_ssse3+0x220> - 42fac1: 66 0f 6f 26 movdqa (%rsi),%xmm4 - 42fac5: 0f 28 4e 10 movaps 0x10(%rsi),%xmm1 - 42fac9: 0f 28 56 20 movaps 0x20(%rsi),%xmm2 - 42facd: 0f 28 5e 30 movaps 0x30(%rsi),%xmm3 - 42fad1: 66 0f 7f 27 movdqa %xmm4,(%rdi) - 42fad5: 0f 29 4f 10 movaps %xmm1,0x10(%rdi) - 42fad9: 0f 29 57 20 movaps %xmm2,0x20(%rdi) - 42fadd: 0f 29 5f 30 movaps %xmm3,0x30(%rdi) - 42fae1: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 42fae8: 0f 28 66 40 movaps 0x40(%rsi),%xmm4 - 42faec: 0f 28 6e 50 movaps 0x50(%rsi),%xmm5 - 42faf0: 0f 28 76 60 movaps 0x60(%rsi),%xmm6 - 42faf4: 0f 28 7e 70 movaps 0x70(%rsi),%xmm7 - 42faf8: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 42faff: 0f 29 67 40 movaps %xmm4,0x40(%rdi) - 42fb03: 0f 29 6f 50 movaps %xmm5,0x50(%rdi) - 42fb07: 0f 29 77 60 movaps %xmm6,0x60(%rdi) - 42fb0b: 0f 29 7f 70 movaps %xmm7,0x70(%rdi) - 42fb0f: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 42fb16: 73 a9 jae 42fac1 <__memmove_ssse3+0x171> - 42fb18: 48 83 fa c0 cmp $0xffffffffffffffc0,%rdx - 42fb1c: 48 8d 92 80 00 00 00 lea 0x80(%rdx),%rdx - 42fb23: 7c 32 jl 42fb57 <__memmove_ssse3+0x207> - 42fb25: 66 0f 6f 26 movdqa (%rsi),%xmm4 - 42fb29: 48 83 ea 40 sub $0x40,%rdx - 42fb2d: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 42fb32: 66 0f 7f 27 movdqa %xmm4,(%rdi) - 42fb36: 66 0f 7f 4f 10 movdqa %xmm1,0x10(%rdi) - 42fb3b: 66 0f 6f 66 20 movdqa 0x20(%rsi),%xmm4 - 42fb40: 66 0f 6f 4e 30 movdqa 0x30(%rsi),%xmm1 - 42fb45: 48 83 c6 40 add $0x40,%rsi - 42fb49: 66 0f 7f 67 20 movdqa %xmm4,0x20(%rdi) - 42fb4e: 66 0f 7f 4f 30 movdqa %xmm1,0x30(%rdi) - 42fb53: 48 83 c7 40 add $0x40,%rdi - 42fb57: 48 01 d6 add %rdx,%rsi - 42fb5a: 48 01 d7 add %rdx,%rdi - 42fb5d: 4c 8d 1d 4c 38 07 00 lea 0x7384c(%rip),%r11 # 4a33b0 - 42fb64: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 42fb68: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 42fb6c: ff e2 jmpq *%rdx - 42fb6e: 0f 0b ud2 - 42fb70: 0f 18 8e c0 01 00 00 prefetcht0 0x1c0(%rsi) - 42fb77: 0f 18 8e 80 02 00 00 prefetcht0 0x280(%rsi) - 42fb7e: 66 0f 6f 06 movdqa (%rsi),%xmm0 - 42fb82: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 42fb87: 66 0f 6f 56 20 movdqa 0x20(%rsi),%xmm2 - 42fb8c: 66 0f 6f 5e 30 movdqa 0x30(%rsi),%xmm3 - 42fb91: 66 0f 6f 66 40 movdqa 0x40(%rsi),%xmm4 - 42fb96: 66 0f 6f 6e 50 movdqa 0x50(%rsi),%xmm5 - 42fb9b: 66 0f 6f 76 60 movdqa 0x60(%rsi),%xmm6 - 42fba0: 66 0f 6f 7e 70 movdqa 0x70(%rsi),%xmm7 - 42fba5: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 42fbac: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 42fbb3: 66 0f 7f 07 movdqa %xmm0,(%rdi) - 42fbb7: 66 0f 7f 4f 10 movdqa %xmm1,0x10(%rdi) - 42fbbc: 66 0f 7f 57 20 movdqa %xmm2,0x20(%rdi) - 42fbc1: 66 0f 7f 5f 30 movdqa %xmm3,0x30(%rdi) - 42fbc6: 66 0f 7f 67 40 movdqa %xmm4,0x40(%rdi) - 42fbcb: 66 0f 7f 6f 50 movdqa %xmm5,0x50(%rdi) - 42fbd0: 66 0f 7f 77 60 movdqa %xmm6,0x60(%rdi) - 42fbd5: 66 0f 7f 7f 70 movdqa %xmm7,0x70(%rdi) - 42fbda: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 42fbe1: 73 8d jae 42fb70 <__memmove_ssse3+0x220> - 42fbe3: 48 83 fa c0 cmp $0xffffffffffffffc0,%rdx - 42fbe7: 48 8d 92 80 00 00 00 lea 0x80(%rdx),%rdx - 42fbee: 7c 32 jl 42fc22 <__memmove_ssse3+0x2d2> - 42fbf0: 66 0f 6f 06 movdqa (%rsi),%xmm0 - 42fbf4: 48 83 ea 40 sub $0x40,%rdx - 42fbf8: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 42fbfd: 66 0f 7f 07 movdqa %xmm0,(%rdi) - 42fc01: 66 0f 7f 4f 10 movdqa %xmm1,0x10(%rdi) - 42fc06: 66 0f 6f 46 20 movdqa 0x20(%rsi),%xmm0 - 42fc0b: 66 0f 6f 4e 30 movdqa 0x30(%rsi),%xmm1 - 42fc10: 48 83 c6 40 add $0x40,%rsi - 42fc14: 66 0f 7f 47 20 movdqa %xmm0,0x20(%rdi) - 42fc19: 66 0f 7f 4f 30 movdqa %xmm1,0x30(%rdi) - 42fc1e: 48 83 c7 40 add $0x40,%rdi - 42fc22: 48 83 fa 20 cmp $0x20,%rdx - 42fc26: 72 1e jb 42fc46 <__memmove_ssse3+0x2f6> - 42fc28: 66 0f 6f 06 movdqa (%rsi),%xmm0 - 42fc2c: 48 83 ea 20 sub $0x20,%rdx - 42fc30: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 42fc35: 48 83 c6 20 add $0x20,%rsi - 42fc39: 66 0f 7f 07 movdqa %xmm0,(%rdi) - 42fc3d: 66 0f 7f 4f 10 movdqa %xmm1,0x10(%rdi) - 42fc42: 48 83 c7 20 add $0x20,%rdi - 42fc46: 48 01 d7 add %rdx,%rdi - 42fc49: 48 01 d6 add %rdx,%rsi - 42fc4c: 4c 8d 1d 5d 37 07 00 lea 0x7375d(%rip),%r11 # 4a33b0 - 42fc53: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 42fc57: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 42fc5b: ff e2 jmpq *%rdx - 42fc5d: 0f 0b ud2 - 42fc5f: 90 nop - 42fc60: 48 83 ea 10 sub $0x10,%rdx - 42fc64: 66 0f 6f 4e f0 movdqa -0x10(%rsi),%xmm1 - 42fc69: 48 83 ee 10 sub $0x10,%rsi - 42fc6d: 66 0f 7f 4f f0 movdqa %xmm1,-0x10(%rdi) - 42fc72: 48 83 ef 10 sub $0x10,%rdi - 42fc76: 48 81 fa 80 00 00 00 cmp $0x80,%rdx - 42fc7d: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 42fc82: 77 4c ja 42fcd0 <__memmove_ssse3+0x380> - 42fc84: 48 83 fa 40 cmp $0x40,%rdx - 42fc88: 72 2c jb 42fcb6 <__memmove_ssse3+0x366> - 42fc8a: 0f 28 46 f0 movaps -0x10(%rsi),%xmm0 - 42fc8e: 0f 28 4e e0 movaps -0x20(%rsi),%xmm1 - 42fc92: 0f 28 56 d0 movaps -0x30(%rsi),%xmm2 - 42fc96: 0f 28 5e c0 movaps -0x40(%rsi),%xmm3 - 42fc9a: 0f 29 47 f0 movaps %xmm0,-0x10(%rdi) - 42fc9e: 0f 29 4f e0 movaps %xmm1,-0x20(%rdi) - 42fca2: 0f 29 57 d0 movaps %xmm2,-0x30(%rdi) - 42fca6: 0f 29 5f c0 movaps %xmm3,-0x40(%rdi) - 42fcaa: 48 83 ea 40 sub $0x40,%rdx - 42fcae: 48 83 ee 40 sub $0x40,%rsi - 42fcb2: 48 83 ef 40 sub $0x40,%rdi - 42fcb6: 4c 8d 1d f3 36 07 00 lea 0x736f3(%rip),%r11 # 4a33b0 - 42fcbd: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 42fcc1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 42fcc5: ff e2 jmpq *%rdx - 42fcc7: 0f 0b ud2 - 42fcc9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42fcd0: 48 3b 15 f9 b3 29 00 cmp 0x29b3f9(%rip),%rdx # 6cb0d0 <__x86_data_cache_size_half> - 42fcd7: 48 8d 52 80 lea -0x80(%rdx),%rdx - 42fcdb: 0f 83 af 00 00 00 jae 42fd90 <__memmove_ssse3+0x440> - 42fce1: 66 0f 6f 46 f0 movdqa -0x10(%rsi),%xmm0 - 42fce6: 0f 28 4e e0 movaps -0x20(%rsi),%xmm1 - 42fcea: 0f 28 56 d0 movaps -0x30(%rsi),%xmm2 - 42fcee: 0f 28 5e c0 movaps -0x40(%rsi),%xmm3 - 42fcf2: 66 0f 7f 47 f0 movdqa %xmm0,-0x10(%rdi) - 42fcf7: 0f 29 4f e0 movaps %xmm1,-0x20(%rdi) - 42fcfb: 0f 29 57 d0 movaps %xmm2,-0x30(%rdi) - 42fcff: 0f 29 5f c0 movaps %xmm3,-0x40(%rdi) - 42fd03: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 42fd0a: 0f 28 66 b0 movaps -0x50(%rsi),%xmm4 - 42fd0e: 0f 28 6e a0 movaps -0x60(%rsi),%xmm5 - 42fd12: 0f 28 76 90 movaps -0x70(%rsi),%xmm6 - 42fd16: 0f 28 7e 80 movaps -0x80(%rsi),%xmm7 - 42fd1a: 48 8d 76 80 lea -0x80(%rsi),%rsi - 42fd1e: 0f 29 67 b0 movaps %xmm4,-0x50(%rdi) - 42fd22: 0f 29 6f a0 movaps %xmm5,-0x60(%rdi) - 42fd26: 0f 29 77 90 movaps %xmm6,-0x70(%rdi) - 42fd2a: 0f 29 7f 80 movaps %xmm7,-0x80(%rdi) - 42fd2e: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 42fd32: 73 ad jae 42fce1 <__memmove_ssse3+0x391> - 42fd34: 48 83 fa c0 cmp $0xffffffffffffffc0,%rdx - 42fd38: 48 8d 92 80 00 00 00 lea 0x80(%rdx),%rdx - 42fd3f: 7c 34 jl 42fd75 <__memmove_ssse3+0x425> - 42fd41: 66 0f 6f 46 f0 movdqa -0x10(%rsi),%xmm0 - 42fd46: 48 83 ea 40 sub $0x40,%rdx - 42fd4a: 66 0f 6f 4e e0 movdqa -0x20(%rsi),%xmm1 - 42fd4f: 66 0f 7f 47 f0 movdqa %xmm0,-0x10(%rdi) - 42fd54: 66 0f 7f 4f e0 movdqa %xmm1,-0x20(%rdi) - 42fd59: 66 0f 6f 46 d0 movdqa -0x30(%rsi),%xmm0 - 42fd5e: 66 0f 6f 4e c0 movdqa -0x40(%rsi),%xmm1 - 42fd63: 48 83 ee 40 sub $0x40,%rsi - 42fd67: 66 0f 7f 47 d0 movdqa %xmm0,-0x30(%rdi) - 42fd6c: 66 0f 7f 4f c0 movdqa %xmm1,-0x40(%rdi) - 42fd71: 48 83 ef 40 sub $0x40,%rdi - 42fd75: 4c 8d 1d 34 36 07 00 lea 0x73634(%rip),%r11 # 4a33b0 - 42fd7c: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 42fd80: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 42fd84: ff e2 jmpq *%rdx - 42fd86: 0f 0b ud2 - 42fd88: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 42fd8f: 00 - 42fd90: 0f 18 8e 40 fe ff ff prefetcht0 -0x1c0(%rsi) - 42fd97: 0f 18 8e 80 fd ff ff prefetcht0 -0x280(%rsi) - 42fd9e: 66 0f 6f 46 f0 movdqa -0x10(%rsi),%xmm0 - 42fda3: 66 0f 6f 4e e0 movdqa -0x20(%rsi),%xmm1 - 42fda8: 66 0f 6f 56 d0 movdqa -0x30(%rsi),%xmm2 - 42fdad: 66 0f 6f 5e c0 movdqa -0x40(%rsi),%xmm3 - 42fdb2: 66 0f 6f 66 b0 movdqa -0x50(%rsi),%xmm4 - 42fdb7: 66 0f 6f 6e a0 movdqa -0x60(%rsi),%xmm5 - 42fdbc: 66 0f 6f 76 90 movdqa -0x70(%rsi),%xmm6 - 42fdc1: 66 0f 6f 7e 80 movdqa -0x80(%rsi),%xmm7 - 42fdc6: 48 8d 76 80 lea -0x80(%rsi),%rsi - 42fdca: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 42fdd1: 66 0f 7f 47 f0 movdqa %xmm0,-0x10(%rdi) - 42fdd6: 66 0f 7f 4f e0 movdqa %xmm1,-0x20(%rdi) - 42fddb: 66 0f 7f 57 d0 movdqa %xmm2,-0x30(%rdi) - 42fde0: 66 0f 7f 5f c0 movdqa %xmm3,-0x40(%rdi) - 42fde5: 66 0f 7f 67 b0 movdqa %xmm4,-0x50(%rdi) - 42fdea: 66 0f 7f 6f a0 movdqa %xmm5,-0x60(%rdi) - 42fdef: 66 0f 7f 77 90 movdqa %xmm6,-0x70(%rdi) - 42fdf4: 66 0f 7f 7f 80 movdqa %xmm7,-0x80(%rdi) - 42fdf9: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 42fdfd: 73 91 jae 42fd90 <__memmove_ssse3+0x440> - 42fdff: 48 83 fa c0 cmp $0xffffffffffffffc0,%rdx - 42fe03: 48 8d 92 80 00 00 00 lea 0x80(%rdx),%rdx - 42fe0a: 7c 34 jl 42fe40 <__memmove_ssse3+0x4f0> - 42fe0c: 66 0f 6f 46 f0 movdqa -0x10(%rsi),%xmm0 - 42fe11: 48 83 ea 40 sub $0x40,%rdx - 42fe15: 66 0f 6f 4e e0 movdqa -0x20(%rsi),%xmm1 - 42fe1a: 66 0f 7f 47 f0 movdqa %xmm0,-0x10(%rdi) - 42fe1f: 66 0f 7f 4f e0 movdqa %xmm1,-0x20(%rdi) - 42fe24: 66 0f 6f 46 d0 movdqa -0x30(%rsi),%xmm0 - 42fe29: 66 0f 6f 4e c0 movdqa -0x40(%rsi),%xmm1 - 42fe2e: 48 83 ee 40 sub $0x40,%rsi - 42fe32: 66 0f 7f 47 d0 movdqa %xmm0,-0x30(%rdi) - 42fe37: 66 0f 7f 4f c0 movdqa %xmm1,-0x40(%rdi) - 42fe3c: 48 83 ef 40 sub $0x40,%rdi - 42fe40: 48 83 fa 20 cmp $0x20,%rdx - 42fe44: 72 20 jb 42fe66 <__memmove_ssse3+0x516> - 42fe46: 66 0f 6f 46 f0 movdqa -0x10(%rsi),%xmm0 - 42fe4b: 48 83 ea 20 sub $0x20,%rdx - 42fe4f: 66 0f 6f 4e e0 movdqa -0x20(%rsi),%xmm1 - 42fe54: 48 83 ee 20 sub $0x20,%rsi - 42fe58: 66 0f 7f 47 f0 movdqa %xmm0,-0x10(%rdi) - 42fe5d: 66 0f 7f 4f e0 movdqa %xmm1,-0x20(%rdi) - 42fe62: 48 83 ef 20 sub $0x20,%rdi - 42fe66: 4c 8d 1d 43 35 07 00 lea 0x73543(%rip),%r11 # 4a33b0 - 42fe6d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 42fe71: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 42fe75: ff e2 jmpq *%rdx - 42fe77: 0f 0b ud2 - 42fe79: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 42fe80: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 42fe87: 48 39 ca cmp %rcx,%rdx - 42fe8a: 0f 28 4e ff movaps -0x1(%rsi),%xmm1 - 42fe8e: 72 07 jb 42fe97 <__memmove_ssse3+0x547> - 42fe90: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 42fe97: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 42fe9b: 41 ff e1 jmpq *%r9 - 42fe9e: 0f 0b ud2 - 42fea0: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 42fea7: 48 83 ea 40 sub $0x40,%rdx - 42feab: 0f 28 56 0f movaps 0xf(%rsi),%xmm2 - 42feaf: 0f 28 5e 1f movaps 0x1f(%rsi),%xmm3 - 42feb3: 0f 28 66 2f movaps 0x2f(%rsi),%xmm4 - 42feb7: 0f 28 6e 3f movaps 0x3f(%rsi),%xmm5 - 42febb: 66 0f 6f f5 movdqa %xmm5,%xmm6 - 42febf: 66 0f 3a 0f ec 01 palignr $0x1,%xmm4,%xmm5 - 42fec5: 48 8d 76 40 lea 0x40(%rsi),%rsi - 42fec9: 66 0f 3a 0f e3 01 palignr $0x1,%xmm3,%xmm4 - 42fecf: 66 0f 3a 0f da 01 palignr $0x1,%xmm2,%xmm3 - 42fed5: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 42fed9: 66 0f 3a 0f d1 01 palignr $0x1,%xmm1,%xmm2 - 42fedf: 66 0f 6f ce movdqa %xmm6,%xmm1 - 42fee3: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) - 42fee8: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 42feec: 72 0d jb 42fefb <__memmove_ssse3+0x5ab> - 42feee: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 42fef2: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 42fef6: 41 ff e1 jmpq *%r9 - 42fef9: 0f 0b ud2 - 42fefb: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 42feff: 48 8d 52 40 lea 0x40(%rdx),%rdx - 42ff03: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 42ff07: 48 01 d7 add %rdx,%rdi - 42ff0a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 42ff0f: 48 01 d6 add %rdx,%rsi - 42ff12: 4c 8d 1d 97 34 07 00 lea 0x73497(%rip),%r11 # 4a33b0 - 42ff19: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 42ff1d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 42ff21: ff e2 jmpq *%rdx - 42ff23: 0f 0b ud2 - 42ff25: 90 nop - 42ff26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42ff2d: 00 00 00 - 42ff30: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 42ff37: 48 39 ca cmp %rcx,%rdx - 42ff3a: 0f 28 4e ff movaps -0x1(%rsi),%xmm1 - 42ff3e: 72 07 jb 42ff47 <__memmove_ssse3+0x5f7> - 42ff40: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 42ff47: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 42ff4b: 41 ff e1 jmpq *%r9 - 42ff4e: 0f 0b ud2 - 42ff50: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 42ff57: 0f 28 56 ef movaps -0x11(%rsi),%xmm2 - 42ff5b: 48 83 ea 40 sub $0x40,%rdx - 42ff5f: 0f 28 5e df movaps -0x21(%rsi),%xmm3 - 42ff63: 0f 28 66 cf movaps -0x31(%rsi),%xmm4 - 42ff67: 0f 28 6e bf movaps -0x41(%rsi),%xmm5 - 42ff6b: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 42ff6f: 66 0f 3a 0f ca 01 palignr $0x1,%xmm2,%xmm1 - 42ff75: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 - 42ff7b: 66 0f 3a 0f dc 01 palignr $0x1,%xmm4,%xmm3 - 42ff81: 66 0f 3a 0f e5 01 palignr $0x1,%xmm5,%xmm4 - 42ff87: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 42ff8b: 0f 28 cd movaps %xmm5,%xmm1 - 42ff8e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 42ff92: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 42ff96: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 42ff9a: 72 08 jb 42ffa4 <__memmove_ssse3+0x654> - 42ff9c: 0f 29 27 movaps %xmm4,(%rdi) - 42ff9f: 41 ff e1 jmpq *%r9 - 42ffa2: 0f 0b ud2 - 42ffa4: 0f 29 27 movaps %xmm4,(%rdi) - 42ffa7: 48 8d 52 40 lea 0x40(%rdx),%rdx - 42ffab: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 42ffb0: 4c 8d 1d f9 33 07 00 lea 0x733f9(%rip),%r11 # 4a33b0 - 42ffb7: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 42ffbb: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 42ffbf: ff e2 jmpq *%rdx - 42ffc1: 0f 0b ud2 - 42ffc3: 0f 1f 00 nopl (%rax) - 42ffc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 42ffcd: 00 00 00 - 42ffd0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 42ffd7: 48 39 ca cmp %rcx,%rdx - 42ffda: 0f 28 4e fe movaps -0x2(%rsi),%xmm1 - 42ffde: 72 07 jb 42ffe7 <__memmove_ssse3+0x697> - 42ffe0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 42ffe7: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 42ffeb: 41 ff e1 jmpq *%r9 - 42ffee: 0f 0b ud2 - 42fff0: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 42fff7: 48 83 ea 40 sub $0x40,%rdx - 42fffb: 0f 28 56 0e movaps 0xe(%rsi),%xmm2 - 42ffff: 0f 28 5e 1e movaps 0x1e(%rsi),%xmm3 - 430003: 0f 28 66 2e movaps 0x2e(%rsi),%xmm4 - 430007: 0f 28 6e 3e movaps 0x3e(%rsi),%xmm5 - 43000b: 66 0f 6f f5 movdqa %xmm5,%xmm6 - 43000f: 66 0f 3a 0f ec 02 palignr $0x2,%xmm4,%xmm5 - 430015: 48 8d 76 40 lea 0x40(%rsi),%rsi - 430019: 66 0f 3a 0f e3 02 palignr $0x2,%xmm3,%xmm4 - 43001f: 66 0f 3a 0f da 02 palignr $0x2,%xmm2,%xmm3 - 430025: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 430029: 66 0f 3a 0f d1 02 palignr $0x2,%xmm1,%xmm2 - 43002f: 66 0f 6f ce movdqa %xmm6,%xmm1 - 430033: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) - 430038: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 43003c: 72 0d jb 43004b <__memmove_ssse3+0x6fb> - 43003e: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 430042: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430046: 41 ff e1 jmpq *%r9 - 430049: 0f 0b ud2 - 43004b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 43004f: 48 8d 52 40 lea 0x40(%rdx),%rdx - 430053: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430057: 48 01 d7 add %rdx,%rdi - 43005a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 43005f: 48 01 d6 add %rdx,%rsi - 430062: 4c 8d 1d 47 33 07 00 lea 0x73347(%rip),%r11 # 4a33b0 - 430069: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43006d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 430071: ff e2 jmpq *%rdx - 430073: 0f 0b ud2 - 430075: 90 nop - 430076: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43007d: 00 00 00 - 430080: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430087: 48 39 ca cmp %rcx,%rdx - 43008a: 0f 28 4e fe movaps -0x2(%rsi),%xmm1 - 43008e: 72 07 jb 430097 <__memmove_ssse3+0x747> - 430090: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430097: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 43009b: 41 ff e1 jmpq *%r9 - 43009e: 0f 0b ud2 - 4300a0: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 4300a7: 0f 28 56 ee movaps -0x12(%rsi),%xmm2 - 4300ab: 48 83 ea 40 sub $0x40,%rdx - 4300af: 0f 28 5e de movaps -0x22(%rsi),%xmm3 - 4300b3: 0f 28 66 ce movaps -0x32(%rsi),%xmm4 - 4300b7: 0f 28 6e be movaps -0x42(%rsi),%xmm5 - 4300bb: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 4300bf: 66 0f 3a 0f ca 02 palignr $0x2,%xmm2,%xmm1 - 4300c5: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 - 4300cb: 66 0f 3a 0f dc 02 palignr $0x2,%xmm4,%xmm3 - 4300d1: 66 0f 3a 0f e5 02 palignr $0x2,%xmm5,%xmm4 - 4300d7: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 4300db: 0f 28 cd movaps %xmm5,%xmm1 - 4300de: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 4300e2: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 4300e6: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 4300ea: 72 08 jb 4300f4 <__memmove_ssse3+0x7a4> - 4300ec: 0f 29 27 movaps %xmm4,(%rdi) - 4300ef: 41 ff e1 jmpq *%r9 - 4300f2: 0f 0b ud2 - 4300f4: 0f 29 27 movaps %xmm4,(%rdi) - 4300f7: 48 8d 52 40 lea 0x40(%rdx),%rdx - 4300fb: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 430100: 4c 8d 1d a9 32 07 00 lea 0x732a9(%rip),%r11 # 4a33b0 - 430107: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43010b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 43010f: ff e2 jmpq *%rdx - 430111: 0f 0b ud2 - 430113: 0f 1f 00 nopl (%rax) - 430116: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43011d: 00 00 00 - 430120: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430127: 48 39 ca cmp %rcx,%rdx - 43012a: 0f 28 4e fd movaps -0x3(%rsi),%xmm1 - 43012e: 72 07 jb 430137 <__memmove_ssse3+0x7e7> - 430130: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430137: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 43013b: 41 ff e1 jmpq *%r9 - 43013e: 0f 0b ud2 - 430140: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 430147: 48 83 ea 40 sub $0x40,%rdx - 43014b: 0f 28 56 0d movaps 0xd(%rsi),%xmm2 - 43014f: 0f 28 5e 1d movaps 0x1d(%rsi),%xmm3 - 430153: 0f 28 66 2d movaps 0x2d(%rsi),%xmm4 - 430157: 0f 28 6e 3d movaps 0x3d(%rsi),%xmm5 - 43015b: 66 0f 6f f5 movdqa %xmm5,%xmm6 - 43015f: 66 0f 3a 0f ec 03 palignr $0x3,%xmm4,%xmm5 - 430165: 48 8d 76 40 lea 0x40(%rsi),%rsi - 430169: 66 0f 3a 0f e3 03 palignr $0x3,%xmm3,%xmm4 - 43016f: 66 0f 3a 0f da 03 palignr $0x3,%xmm2,%xmm3 - 430175: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 430179: 66 0f 3a 0f d1 03 palignr $0x3,%xmm1,%xmm2 - 43017f: 66 0f 6f ce movdqa %xmm6,%xmm1 - 430183: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) - 430188: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 43018c: 72 0d jb 43019b <__memmove_ssse3+0x84b> - 43018e: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 430192: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430196: 41 ff e1 jmpq *%r9 - 430199: 0f 0b ud2 - 43019b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 43019f: 48 8d 52 40 lea 0x40(%rdx),%rdx - 4301a3: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 4301a7: 48 01 d7 add %rdx,%rdi - 4301aa: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 4301af: 48 01 d6 add %rdx,%rsi - 4301b2: 4c 8d 1d f7 31 07 00 lea 0x731f7(%rip),%r11 # 4a33b0 - 4301b9: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4301bd: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4301c1: ff e2 jmpq *%rdx - 4301c3: 0f 0b ud2 - 4301c5: 90 nop - 4301c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4301cd: 00 00 00 - 4301d0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 4301d7: 48 39 ca cmp %rcx,%rdx - 4301da: 0f 28 4e fd movaps -0x3(%rsi),%xmm1 - 4301de: 72 07 jb 4301e7 <__memmove_ssse3+0x897> - 4301e0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 4301e7: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 4301eb: 41 ff e1 jmpq *%r9 - 4301ee: 0f 0b ud2 - 4301f0: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 4301f7: 0f 28 56 ed movaps -0x13(%rsi),%xmm2 - 4301fb: 48 83 ea 40 sub $0x40,%rdx - 4301ff: 0f 28 5e dd movaps -0x23(%rsi),%xmm3 - 430203: 0f 28 66 cd movaps -0x33(%rsi),%xmm4 - 430207: 0f 28 6e bd movaps -0x43(%rsi),%xmm5 - 43020b: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 43020f: 66 0f 3a 0f ca 03 palignr $0x3,%xmm2,%xmm1 - 430215: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 - 43021b: 66 0f 3a 0f dc 03 palignr $0x3,%xmm4,%xmm3 - 430221: 66 0f 3a 0f e5 03 palignr $0x3,%xmm5,%xmm4 - 430227: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 43022b: 0f 28 cd movaps %xmm5,%xmm1 - 43022e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 430232: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 430236: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 43023a: 72 08 jb 430244 <__memmove_ssse3+0x8f4> - 43023c: 0f 29 27 movaps %xmm4,(%rdi) - 43023f: 41 ff e1 jmpq *%r9 - 430242: 0f 0b ud2 - 430244: 0f 29 27 movaps %xmm4,(%rdi) - 430247: 48 8d 52 40 lea 0x40(%rdx),%rdx - 43024b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 430250: 4c 8d 1d 59 31 07 00 lea 0x73159(%rip),%r11 # 4a33b0 - 430257: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43025b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 43025f: ff e2 jmpq *%rdx - 430261: 0f 0b ud2 - 430263: 0f 1f 00 nopl (%rax) - 430266: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43026d: 00 00 00 - 430270: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430277: 48 39 ca cmp %rcx,%rdx - 43027a: 0f 28 4e fc movaps -0x4(%rsi),%xmm1 - 43027e: 72 07 jb 430287 <__memmove_ssse3+0x937> - 430280: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430287: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 43028b: 41 ff e1 jmpq *%r9 - 43028e: 0f 0b ud2 - 430290: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 430297: 48 83 ea 40 sub $0x40,%rdx - 43029b: 0f 28 56 0c movaps 0xc(%rsi),%xmm2 - 43029f: 0f 28 5e 1c movaps 0x1c(%rsi),%xmm3 - 4302a3: 0f 28 66 2c movaps 0x2c(%rsi),%xmm4 - 4302a7: 0f 28 6e 3c movaps 0x3c(%rsi),%xmm5 - 4302ab: 66 0f 6f f5 movdqa %xmm5,%xmm6 - 4302af: 66 0f 3a 0f ec 04 palignr $0x4,%xmm4,%xmm5 - 4302b5: 48 8d 76 40 lea 0x40(%rsi),%rsi - 4302b9: 66 0f 3a 0f e3 04 palignr $0x4,%xmm3,%xmm4 - 4302bf: 66 0f 3a 0f da 04 palignr $0x4,%xmm2,%xmm3 - 4302c5: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 4302c9: 66 0f 3a 0f d1 04 palignr $0x4,%xmm1,%xmm2 - 4302cf: 66 0f 6f ce movdqa %xmm6,%xmm1 - 4302d3: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) - 4302d8: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 4302dc: 72 0d jb 4302eb <__memmove_ssse3+0x99b> - 4302de: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 4302e2: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 4302e6: 41 ff e1 jmpq *%r9 - 4302e9: 0f 0b ud2 - 4302eb: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 4302ef: 48 8d 52 40 lea 0x40(%rdx),%rdx - 4302f3: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 4302f7: 48 01 d7 add %rdx,%rdi - 4302fa: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 4302ff: 48 01 d6 add %rdx,%rsi - 430302: 4c 8d 1d a7 30 07 00 lea 0x730a7(%rip),%r11 # 4a33b0 - 430309: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43030d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 430311: ff e2 jmpq *%rdx - 430313: 0f 0b ud2 - 430315: 90 nop - 430316: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43031d: 00 00 00 - 430320: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430327: 48 39 ca cmp %rcx,%rdx - 43032a: 0f 28 4e fc movaps -0x4(%rsi),%xmm1 - 43032e: 72 07 jb 430337 <__memmove_ssse3+0x9e7> - 430330: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430337: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 43033b: 41 ff e1 jmpq *%r9 - 43033e: 0f 0b ud2 - 430340: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 430347: 0f 28 56 ec movaps -0x14(%rsi),%xmm2 - 43034b: 48 83 ea 40 sub $0x40,%rdx - 43034f: 0f 28 5e dc movaps -0x24(%rsi),%xmm3 - 430353: 0f 28 66 cc movaps -0x34(%rsi),%xmm4 - 430357: 0f 28 6e bc movaps -0x44(%rsi),%xmm5 - 43035b: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 43035f: 66 0f 3a 0f ca 04 palignr $0x4,%xmm2,%xmm1 - 430365: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 - 43036b: 66 0f 3a 0f dc 04 palignr $0x4,%xmm4,%xmm3 - 430371: 66 0f 3a 0f e5 04 palignr $0x4,%xmm5,%xmm4 - 430377: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 43037b: 0f 28 cd movaps %xmm5,%xmm1 - 43037e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 430382: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 430386: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 43038a: 72 08 jb 430394 <__memmove_ssse3+0xa44> - 43038c: 0f 29 27 movaps %xmm4,(%rdi) - 43038f: 41 ff e1 jmpq *%r9 - 430392: 0f 0b ud2 - 430394: 0f 29 27 movaps %xmm4,(%rdi) - 430397: 48 8d 52 40 lea 0x40(%rdx),%rdx - 43039b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 4303a0: 4c 8d 1d 09 30 07 00 lea 0x73009(%rip),%r11 # 4a33b0 - 4303a7: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4303ab: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4303af: ff e2 jmpq *%rdx - 4303b1: 0f 0b ud2 - 4303b3: 0f 1f 00 nopl (%rax) - 4303b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4303bd: 00 00 00 - 4303c0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 4303c7: 48 39 ca cmp %rcx,%rdx - 4303ca: 0f 28 4e fb movaps -0x5(%rsi),%xmm1 - 4303ce: 72 07 jb 4303d7 <__memmove_ssse3+0xa87> - 4303d0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 4303d7: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 4303db: 41 ff e1 jmpq *%r9 - 4303de: 0f 0b ud2 - 4303e0: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 4303e7: 48 83 ea 40 sub $0x40,%rdx - 4303eb: 0f 28 56 0b movaps 0xb(%rsi),%xmm2 - 4303ef: 0f 28 5e 1b movaps 0x1b(%rsi),%xmm3 - 4303f3: 0f 28 66 2b movaps 0x2b(%rsi),%xmm4 - 4303f7: 0f 28 6e 3b movaps 0x3b(%rsi),%xmm5 - 4303fb: 66 0f 6f f5 movdqa %xmm5,%xmm6 - 4303ff: 66 0f 3a 0f ec 05 palignr $0x5,%xmm4,%xmm5 - 430405: 48 8d 76 40 lea 0x40(%rsi),%rsi - 430409: 66 0f 3a 0f e3 05 palignr $0x5,%xmm3,%xmm4 - 43040f: 66 0f 3a 0f da 05 palignr $0x5,%xmm2,%xmm3 - 430415: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 430419: 66 0f 3a 0f d1 05 palignr $0x5,%xmm1,%xmm2 - 43041f: 66 0f 6f ce movdqa %xmm6,%xmm1 - 430423: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) - 430428: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 43042c: 72 0d jb 43043b <__memmove_ssse3+0xaeb> - 43042e: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 430432: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430436: 41 ff e1 jmpq *%r9 - 430439: 0f 0b ud2 - 43043b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 43043f: 48 8d 52 40 lea 0x40(%rdx),%rdx - 430443: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430447: 48 01 d7 add %rdx,%rdi - 43044a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 43044f: 48 01 d6 add %rdx,%rsi - 430452: 4c 8d 1d 57 2f 07 00 lea 0x72f57(%rip),%r11 # 4a33b0 - 430459: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43045d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 430461: ff e2 jmpq *%rdx - 430463: 0f 0b ud2 - 430465: 90 nop - 430466: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43046d: 00 00 00 - 430470: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430477: 48 39 ca cmp %rcx,%rdx - 43047a: 0f 28 4e fb movaps -0x5(%rsi),%xmm1 - 43047e: 72 07 jb 430487 <__memmove_ssse3+0xb37> - 430480: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430487: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 43048b: 41 ff e1 jmpq *%r9 - 43048e: 0f 0b ud2 - 430490: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 430497: 0f 28 56 eb movaps -0x15(%rsi),%xmm2 - 43049b: 48 83 ea 40 sub $0x40,%rdx - 43049f: 0f 28 5e db movaps -0x25(%rsi),%xmm3 - 4304a3: 0f 28 66 cb movaps -0x35(%rsi),%xmm4 - 4304a7: 0f 28 6e bb movaps -0x45(%rsi),%xmm5 - 4304ab: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 4304af: 66 0f 3a 0f ca 05 palignr $0x5,%xmm2,%xmm1 - 4304b5: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 - 4304bb: 66 0f 3a 0f dc 05 palignr $0x5,%xmm4,%xmm3 - 4304c1: 66 0f 3a 0f e5 05 palignr $0x5,%xmm5,%xmm4 - 4304c7: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 4304cb: 0f 28 cd movaps %xmm5,%xmm1 - 4304ce: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 4304d2: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 4304d6: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 4304da: 72 08 jb 4304e4 <__memmove_ssse3+0xb94> - 4304dc: 0f 29 27 movaps %xmm4,(%rdi) - 4304df: 41 ff e1 jmpq *%r9 - 4304e2: 0f 0b ud2 - 4304e4: 0f 29 27 movaps %xmm4,(%rdi) - 4304e7: 48 8d 52 40 lea 0x40(%rdx),%rdx - 4304eb: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 4304f0: 4c 8d 1d b9 2e 07 00 lea 0x72eb9(%rip),%r11 # 4a33b0 - 4304f7: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4304fb: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4304ff: ff e2 jmpq *%rdx - 430501: 0f 0b ud2 - 430503: 0f 1f 00 nopl (%rax) - 430506: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43050d: 00 00 00 - 430510: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430517: 48 39 ca cmp %rcx,%rdx - 43051a: 0f 28 4e fa movaps -0x6(%rsi),%xmm1 - 43051e: 72 07 jb 430527 <__memmove_ssse3+0xbd7> - 430520: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430527: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 43052b: 41 ff e1 jmpq *%r9 - 43052e: 0f 0b ud2 - 430530: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 430537: 48 83 ea 40 sub $0x40,%rdx - 43053b: 0f 28 56 0a movaps 0xa(%rsi),%xmm2 - 43053f: 0f 28 5e 1a movaps 0x1a(%rsi),%xmm3 - 430543: 0f 28 66 2a movaps 0x2a(%rsi),%xmm4 - 430547: 0f 28 6e 3a movaps 0x3a(%rsi),%xmm5 - 43054b: 66 0f 6f f5 movdqa %xmm5,%xmm6 - 43054f: 66 0f 3a 0f ec 06 palignr $0x6,%xmm4,%xmm5 - 430555: 48 8d 76 40 lea 0x40(%rsi),%rsi - 430559: 66 0f 3a 0f e3 06 palignr $0x6,%xmm3,%xmm4 - 43055f: 66 0f 3a 0f da 06 palignr $0x6,%xmm2,%xmm3 - 430565: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 430569: 66 0f 3a 0f d1 06 palignr $0x6,%xmm1,%xmm2 - 43056f: 66 0f 6f ce movdqa %xmm6,%xmm1 - 430573: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) - 430578: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 43057c: 72 0d jb 43058b <__memmove_ssse3+0xc3b> - 43057e: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 430582: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430586: 41 ff e1 jmpq *%r9 - 430589: 0f 0b ud2 - 43058b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 43058f: 48 8d 52 40 lea 0x40(%rdx),%rdx - 430593: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430597: 48 01 d7 add %rdx,%rdi - 43059a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 43059f: 48 01 d6 add %rdx,%rsi - 4305a2: 4c 8d 1d 07 2e 07 00 lea 0x72e07(%rip),%r11 # 4a33b0 - 4305a9: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4305ad: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4305b1: ff e2 jmpq *%rdx - 4305b3: 0f 0b ud2 - 4305b5: 90 nop - 4305b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4305bd: 00 00 00 - 4305c0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 4305c7: 48 39 ca cmp %rcx,%rdx - 4305ca: 0f 28 4e fa movaps -0x6(%rsi),%xmm1 - 4305ce: 72 07 jb 4305d7 <__memmove_ssse3+0xc87> - 4305d0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 4305d7: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 4305db: 41 ff e1 jmpq *%r9 - 4305de: 0f 0b ud2 - 4305e0: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 4305e7: 0f 28 56 ea movaps -0x16(%rsi),%xmm2 - 4305eb: 48 83 ea 40 sub $0x40,%rdx - 4305ef: 0f 28 5e da movaps -0x26(%rsi),%xmm3 - 4305f3: 0f 28 66 ca movaps -0x36(%rsi),%xmm4 - 4305f7: 0f 28 6e ba movaps -0x46(%rsi),%xmm5 - 4305fb: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 4305ff: 66 0f 3a 0f ca 06 palignr $0x6,%xmm2,%xmm1 - 430605: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 - 43060b: 66 0f 3a 0f dc 06 palignr $0x6,%xmm4,%xmm3 - 430611: 66 0f 3a 0f e5 06 palignr $0x6,%xmm5,%xmm4 - 430617: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 43061b: 0f 28 cd movaps %xmm5,%xmm1 - 43061e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 430622: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 430626: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 43062a: 72 08 jb 430634 <__memmove_ssse3+0xce4> - 43062c: 0f 29 27 movaps %xmm4,(%rdi) - 43062f: 41 ff e1 jmpq *%r9 - 430632: 0f 0b ud2 - 430634: 0f 29 27 movaps %xmm4,(%rdi) - 430637: 48 8d 52 40 lea 0x40(%rdx),%rdx - 43063b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 430640: 4c 8d 1d 69 2d 07 00 lea 0x72d69(%rip),%r11 # 4a33b0 - 430647: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43064b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 43064f: ff e2 jmpq *%rdx - 430651: 0f 0b ud2 - 430653: 0f 1f 00 nopl (%rax) - 430656: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43065d: 00 00 00 - 430660: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430667: 48 39 ca cmp %rcx,%rdx - 43066a: 0f 28 4e f9 movaps -0x7(%rsi),%xmm1 - 43066e: 72 07 jb 430677 <__memmove_ssse3+0xd27> - 430670: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430677: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 43067b: 41 ff e1 jmpq *%r9 - 43067e: 0f 0b ud2 - 430680: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 430687: 48 83 ea 40 sub $0x40,%rdx - 43068b: 0f 28 56 09 movaps 0x9(%rsi),%xmm2 - 43068f: 0f 28 5e 19 movaps 0x19(%rsi),%xmm3 - 430693: 0f 28 66 29 movaps 0x29(%rsi),%xmm4 - 430697: 0f 28 6e 39 movaps 0x39(%rsi),%xmm5 - 43069b: 66 0f 6f f5 movdqa %xmm5,%xmm6 - 43069f: 66 0f 3a 0f ec 07 palignr $0x7,%xmm4,%xmm5 - 4306a5: 48 8d 76 40 lea 0x40(%rsi),%rsi - 4306a9: 66 0f 3a 0f e3 07 palignr $0x7,%xmm3,%xmm4 - 4306af: 66 0f 3a 0f da 07 palignr $0x7,%xmm2,%xmm3 - 4306b5: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 4306b9: 66 0f 3a 0f d1 07 palignr $0x7,%xmm1,%xmm2 - 4306bf: 66 0f 6f ce movdqa %xmm6,%xmm1 - 4306c3: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) - 4306c8: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 4306cc: 72 0d jb 4306db <__memmove_ssse3+0xd8b> - 4306ce: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 4306d2: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 4306d6: 41 ff e1 jmpq *%r9 - 4306d9: 0f 0b ud2 - 4306db: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 4306df: 48 8d 52 40 lea 0x40(%rdx),%rdx - 4306e3: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 4306e7: 48 01 d7 add %rdx,%rdi - 4306ea: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 4306ef: 48 01 d6 add %rdx,%rsi - 4306f2: 4c 8d 1d b7 2c 07 00 lea 0x72cb7(%rip),%r11 # 4a33b0 - 4306f9: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4306fd: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 430701: ff e2 jmpq *%rdx - 430703: 0f 0b ud2 - 430705: 90 nop - 430706: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43070d: 00 00 00 - 430710: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430717: 48 39 ca cmp %rcx,%rdx - 43071a: 0f 28 4e f9 movaps -0x7(%rsi),%xmm1 - 43071e: 72 07 jb 430727 <__memmove_ssse3+0xdd7> - 430720: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430727: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 43072b: 41 ff e1 jmpq *%r9 - 43072e: 0f 0b ud2 - 430730: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 430737: 0f 28 56 e9 movaps -0x17(%rsi),%xmm2 - 43073b: 48 83 ea 40 sub $0x40,%rdx - 43073f: 0f 28 5e d9 movaps -0x27(%rsi),%xmm3 - 430743: 0f 28 66 c9 movaps -0x37(%rsi),%xmm4 - 430747: 0f 28 6e b9 movaps -0x47(%rsi),%xmm5 - 43074b: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 43074f: 66 0f 3a 0f ca 07 palignr $0x7,%xmm2,%xmm1 - 430755: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 - 43075b: 66 0f 3a 0f dc 07 palignr $0x7,%xmm4,%xmm3 - 430761: 66 0f 3a 0f e5 07 palignr $0x7,%xmm5,%xmm4 - 430767: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 43076b: 0f 28 cd movaps %xmm5,%xmm1 - 43076e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 430772: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 430776: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 43077a: 72 08 jb 430784 <__memmove_ssse3+0xe34> - 43077c: 0f 29 27 movaps %xmm4,(%rdi) - 43077f: 41 ff e1 jmpq *%r9 - 430782: 0f 0b ud2 - 430784: 0f 29 27 movaps %xmm4,(%rdi) - 430787: 48 8d 52 40 lea 0x40(%rdx),%rdx - 43078b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 430790: 4c 8d 1d 19 2c 07 00 lea 0x72c19(%rip),%r11 # 4a33b0 - 430797: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43079b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 43079f: ff e2 jmpq *%rdx - 4307a1: 0f 0b ud2 - 4307a3: 0f 1f 00 nopl (%rax) - 4307a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4307ad: 00 00 00 - 4307b0: 4d 8d 89 25 00 00 00 lea 0x25(%r9),%r9 - 4307b7: 48 39 ca cmp %rcx,%rdx - 4307ba: 0f 28 4e f8 movaps -0x8(%rsi),%xmm1 - 4307be: 72 07 jb 4307c7 <__memmove_ssse3+0xe77> - 4307c0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 4307c7: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 4307cb: 41 ff e1 jmpq *%r9 - 4307ce: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 4307d5: 48 83 ea 40 sub $0x40,%rdx - 4307d9: 0f 28 56 08 movaps 0x8(%rsi),%xmm2 - 4307dd: 0f 28 5e 18 movaps 0x18(%rsi),%xmm3 - 4307e1: 0f 28 66 28 movaps 0x28(%rsi),%xmm4 - 4307e5: 0f 28 6e 38 movaps 0x38(%rsi),%xmm5 - 4307e9: 66 0f 6f f5 movdqa %xmm5,%xmm6 - 4307ed: 66 0f 3a 0f ec 08 palignr $0x8,%xmm4,%xmm5 - 4307f3: 48 8d 76 40 lea 0x40(%rsi),%rsi - 4307f7: 66 0f 3a 0f e3 08 palignr $0x8,%xmm3,%xmm4 - 4307fd: 66 0f 3a 0f da 08 palignr $0x8,%xmm2,%xmm3 - 430803: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 430807: 66 0f 3a 0f d1 08 palignr $0x8,%xmm1,%xmm2 - 43080d: 66 0f 6f ce movdqa %xmm6,%xmm1 - 430811: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) - 430816: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 43081a: 72 14 jb 430830 <__memmove_ssse3+0xee0> - 43081c: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 430820: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430824: 41 ff e1 jmpq *%r9 - 430827: 0f 0b ud2 - 430829: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 430830: 48 8d 52 40 lea 0x40(%rdx),%rdx - 430834: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 430838: 48 01 d6 add %rdx,%rsi - 43083b: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 43083f: 48 01 d7 add %rdx,%rdi - 430842: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 430847: 4c 8d 1d 62 2b 07 00 lea 0x72b62(%rip),%r11 # 4a33b0 - 43084e: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 430852: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 430856: ff e2 jmpq *%rdx - 430858: 0f 0b ud2 - 43085a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 430860: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430867: 48 39 ca cmp %rcx,%rdx - 43086a: 0f 28 4e f8 movaps -0x8(%rsi),%xmm1 - 43086e: 72 07 jb 430877 <__memmove_ssse3+0xf27> - 430870: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430877: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 43087b: 41 ff e1 jmpq *%r9 - 43087e: 0f 0b ud2 - 430880: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 430887: 0f 28 56 e8 movaps -0x18(%rsi),%xmm2 - 43088b: 48 83 ea 40 sub $0x40,%rdx - 43088f: 0f 28 5e d8 movaps -0x28(%rsi),%xmm3 - 430893: 0f 28 66 c8 movaps -0x38(%rsi),%xmm4 - 430897: 0f 28 6e b8 movaps -0x48(%rsi),%xmm5 - 43089b: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 43089f: 66 0f 3a 0f ca 08 palignr $0x8,%xmm2,%xmm1 - 4308a5: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 - 4308ab: 66 0f 3a 0f dc 08 palignr $0x8,%xmm4,%xmm3 - 4308b1: 66 0f 3a 0f e5 08 palignr $0x8,%xmm5,%xmm4 - 4308b7: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 4308bb: 0f 28 cd movaps %xmm5,%xmm1 - 4308be: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 4308c2: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 4308c6: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 4308ca: 72 08 jb 4308d4 <__memmove_ssse3+0xf84> - 4308cc: 0f 29 27 movaps %xmm4,(%rdi) - 4308cf: 41 ff e1 jmpq *%r9 - 4308d2: 0f 0b ud2 - 4308d4: 0f 29 27 movaps %xmm4,(%rdi) - 4308d7: 48 8d 52 40 lea 0x40(%rdx),%rdx - 4308db: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 4308e0: 4c 8d 1d c9 2a 07 00 lea 0x72ac9(%rip),%r11 # 4a33b0 - 4308e7: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4308eb: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4308ef: ff e2 jmpq *%rdx - 4308f1: 0f 0b ud2 - 4308f3: 0f 1f 00 nopl (%rax) - 4308f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4308fd: 00 00 00 - 430900: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430907: 48 39 ca cmp %rcx,%rdx - 43090a: 0f 28 4e f7 movaps -0x9(%rsi),%xmm1 - 43090e: 72 07 jb 430917 <__memmove_ssse3+0xfc7> - 430910: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430917: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 43091b: 41 ff e1 jmpq *%r9 - 43091e: 0f 0b ud2 - 430920: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 430927: 48 83 ea 40 sub $0x40,%rdx - 43092b: 0f 28 56 07 movaps 0x7(%rsi),%xmm2 - 43092f: 0f 28 5e 17 movaps 0x17(%rsi),%xmm3 - 430933: 0f 28 66 27 movaps 0x27(%rsi),%xmm4 - 430937: 0f 28 6e 37 movaps 0x37(%rsi),%xmm5 - 43093b: 66 0f 6f f5 movdqa %xmm5,%xmm6 - 43093f: 66 0f 3a 0f ec 09 palignr $0x9,%xmm4,%xmm5 - 430945: 48 8d 76 40 lea 0x40(%rsi),%rsi - 430949: 66 0f 3a 0f e3 09 palignr $0x9,%xmm3,%xmm4 - 43094f: 66 0f 3a 0f da 09 palignr $0x9,%xmm2,%xmm3 - 430955: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 430959: 66 0f 3a 0f d1 09 palignr $0x9,%xmm1,%xmm2 - 43095f: 66 0f 6f ce movdqa %xmm6,%xmm1 - 430963: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) - 430968: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 43096c: 72 0d jb 43097b <__memmove_ssse3+0x102b> - 43096e: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 430972: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430976: 41 ff e1 jmpq *%r9 - 430979: 0f 0b ud2 - 43097b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 43097f: 48 8d 52 40 lea 0x40(%rdx),%rdx - 430983: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430987: 48 01 d7 add %rdx,%rdi - 43098a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 43098f: 48 01 d6 add %rdx,%rsi - 430992: 4c 8d 1d 17 2a 07 00 lea 0x72a17(%rip),%r11 # 4a33b0 - 430999: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43099d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4309a1: ff e2 jmpq *%rdx - 4309a3: 0f 0b ud2 - 4309a5: 90 nop - 4309a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4309ad: 00 00 00 - 4309b0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 4309b7: 48 39 ca cmp %rcx,%rdx - 4309ba: 0f 28 4e f7 movaps -0x9(%rsi),%xmm1 - 4309be: 72 07 jb 4309c7 <__memmove_ssse3+0x1077> - 4309c0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 4309c7: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 4309cb: 41 ff e1 jmpq *%r9 - 4309ce: 0f 0b ud2 - 4309d0: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 4309d7: 0f 28 56 e7 movaps -0x19(%rsi),%xmm2 - 4309db: 48 83 ea 40 sub $0x40,%rdx - 4309df: 0f 28 5e d7 movaps -0x29(%rsi),%xmm3 - 4309e3: 0f 28 66 c7 movaps -0x39(%rsi),%xmm4 - 4309e7: 0f 28 6e b7 movaps -0x49(%rsi),%xmm5 - 4309eb: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 4309ef: 66 0f 3a 0f ca 09 palignr $0x9,%xmm2,%xmm1 - 4309f5: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 - 4309fb: 66 0f 3a 0f dc 09 palignr $0x9,%xmm4,%xmm3 - 430a01: 66 0f 3a 0f e5 09 palignr $0x9,%xmm5,%xmm4 - 430a07: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 430a0b: 0f 28 cd movaps %xmm5,%xmm1 - 430a0e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 430a12: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 430a16: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 430a1a: 72 08 jb 430a24 <__memmove_ssse3+0x10d4> - 430a1c: 0f 29 27 movaps %xmm4,(%rdi) - 430a1f: 41 ff e1 jmpq *%r9 - 430a22: 0f 0b ud2 - 430a24: 0f 29 27 movaps %xmm4,(%rdi) - 430a27: 48 8d 52 40 lea 0x40(%rdx),%rdx - 430a2b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 430a30: 4c 8d 1d 79 29 07 00 lea 0x72979(%rip),%r11 # 4a33b0 - 430a37: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 430a3b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 430a3f: ff e2 jmpq *%rdx - 430a41: 0f 0b ud2 - 430a43: 0f 1f 00 nopl (%rax) - 430a46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 430a4d: 00 00 00 - 430a50: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430a57: 48 39 ca cmp %rcx,%rdx - 430a5a: 0f 28 4e f6 movaps -0xa(%rsi),%xmm1 - 430a5e: 72 07 jb 430a67 <__memmove_ssse3+0x1117> - 430a60: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430a67: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 430a6b: 41 ff e1 jmpq *%r9 - 430a6e: 0f 0b ud2 - 430a70: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 430a77: 48 83 ea 40 sub $0x40,%rdx - 430a7b: 0f 28 56 06 movaps 0x6(%rsi),%xmm2 - 430a7f: 0f 28 5e 16 movaps 0x16(%rsi),%xmm3 - 430a83: 0f 28 66 26 movaps 0x26(%rsi),%xmm4 - 430a87: 0f 28 6e 36 movaps 0x36(%rsi),%xmm5 - 430a8b: 66 0f 6f f5 movdqa %xmm5,%xmm6 - 430a8f: 66 0f 3a 0f ec 0a palignr $0xa,%xmm4,%xmm5 - 430a95: 48 8d 76 40 lea 0x40(%rsi),%rsi - 430a99: 66 0f 3a 0f e3 0a palignr $0xa,%xmm3,%xmm4 - 430a9f: 66 0f 3a 0f da 0a palignr $0xa,%xmm2,%xmm3 - 430aa5: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 430aa9: 66 0f 3a 0f d1 0a palignr $0xa,%xmm1,%xmm2 - 430aaf: 66 0f 6f ce movdqa %xmm6,%xmm1 - 430ab3: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) - 430ab8: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 430abc: 72 0d jb 430acb <__memmove_ssse3+0x117b> - 430abe: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 430ac2: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430ac6: 41 ff e1 jmpq *%r9 - 430ac9: 0f 0b ud2 - 430acb: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 430acf: 48 8d 52 40 lea 0x40(%rdx),%rdx - 430ad3: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430ad7: 48 01 d7 add %rdx,%rdi - 430ada: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 430adf: 48 01 d6 add %rdx,%rsi - 430ae2: 4c 8d 1d c7 28 07 00 lea 0x728c7(%rip),%r11 # 4a33b0 - 430ae9: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 430aed: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 430af1: ff e2 jmpq *%rdx - 430af3: 0f 0b ud2 - 430af5: 90 nop - 430af6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 430afd: 00 00 00 - 430b00: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430b07: 48 39 ca cmp %rcx,%rdx - 430b0a: 0f 28 4e f6 movaps -0xa(%rsi),%xmm1 - 430b0e: 72 07 jb 430b17 <__memmove_ssse3+0x11c7> - 430b10: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430b17: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 430b1b: 41 ff e1 jmpq *%r9 - 430b1e: 0f 0b ud2 - 430b20: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 430b27: 0f 28 56 e6 movaps -0x1a(%rsi),%xmm2 - 430b2b: 48 83 ea 40 sub $0x40,%rdx - 430b2f: 0f 28 5e d6 movaps -0x2a(%rsi),%xmm3 - 430b33: 0f 28 66 c6 movaps -0x3a(%rsi),%xmm4 - 430b37: 0f 28 6e b6 movaps -0x4a(%rsi),%xmm5 - 430b3b: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 430b3f: 66 0f 3a 0f ca 0a palignr $0xa,%xmm2,%xmm1 - 430b45: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 - 430b4b: 66 0f 3a 0f dc 0a palignr $0xa,%xmm4,%xmm3 - 430b51: 66 0f 3a 0f e5 0a palignr $0xa,%xmm5,%xmm4 - 430b57: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 430b5b: 0f 28 cd movaps %xmm5,%xmm1 - 430b5e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 430b62: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 430b66: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 430b6a: 72 08 jb 430b74 <__memmove_ssse3+0x1224> - 430b6c: 0f 29 27 movaps %xmm4,(%rdi) - 430b6f: 41 ff e1 jmpq *%r9 - 430b72: 0f 0b ud2 - 430b74: 0f 29 27 movaps %xmm4,(%rdi) - 430b77: 48 8d 52 40 lea 0x40(%rdx),%rdx - 430b7b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 430b80: 4c 8d 1d 29 28 07 00 lea 0x72829(%rip),%r11 # 4a33b0 - 430b87: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 430b8b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 430b8f: ff e2 jmpq *%rdx - 430b91: 0f 0b ud2 - 430b93: 0f 1f 00 nopl (%rax) - 430b96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 430b9d: 00 00 00 - 430ba0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430ba7: 48 39 ca cmp %rcx,%rdx - 430baa: 0f 28 4e f5 movaps -0xb(%rsi),%xmm1 - 430bae: 72 07 jb 430bb7 <__memmove_ssse3+0x1267> - 430bb0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430bb7: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 430bbb: 41 ff e1 jmpq *%r9 - 430bbe: 0f 0b ud2 - 430bc0: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 430bc7: 48 83 ea 40 sub $0x40,%rdx - 430bcb: 0f 28 56 05 movaps 0x5(%rsi),%xmm2 - 430bcf: 0f 28 5e 15 movaps 0x15(%rsi),%xmm3 - 430bd3: 0f 28 66 25 movaps 0x25(%rsi),%xmm4 - 430bd7: 0f 28 6e 35 movaps 0x35(%rsi),%xmm5 - 430bdb: 66 0f 6f f5 movdqa %xmm5,%xmm6 - 430bdf: 66 0f 3a 0f ec 0b palignr $0xb,%xmm4,%xmm5 - 430be5: 48 8d 76 40 lea 0x40(%rsi),%rsi - 430be9: 66 0f 3a 0f e3 0b palignr $0xb,%xmm3,%xmm4 - 430bef: 66 0f 3a 0f da 0b palignr $0xb,%xmm2,%xmm3 - 430bf5: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 430bf9: 66 0f 3a 0f d1 0b palignr $0xb,%xmm1,%xmm2 - 430bff: 66 0f 6f ce movdqa %xmm6,%xmm1 - 430c03: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) - 430c08: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 430c0c: 72 0d jb 430c1b <__memmove_ssse3+0x12cb> - 430c0e: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 430c12: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430c16: 41 ff e1 jmpq *%r9 - 430c19: 0f 0b ud2 - 430c1b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 430c1f: 48 8d 52 40 lea 0x40(%rdx),%rdx - 430c23: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430c27: 48 01 d7 add %rdx,%rdi - 430c2a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 430c2f: 48 01 d6 add %rdx,%rsi - 430c32: 4c 8d 1d 77 27 07 00 lea 0x72777(%rip),%r11 # 4a33b0 - 430c39: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 430c3d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 430c41: ff e2 jmpq *%rdx - 430c43: 0f 0b ud2 - 430c45: 90 nop - 430c46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 430c4d: 00 00 00 - 430c50: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430c57: 48 39 ca cmp %rcx,%rdx - 430c5a: 0f 28 4e f5 movaps -0xb(%rsi),%xmm1 - 430c5e: 72 07 jb 430c67 <__memmove_ssse3+0x1317> - 430c60: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430c67: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 430c6b: 41 ff e1 jmpq *%r9 - 430c6e: 0f 0b ud2 - 430c70: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 430c77: 0f 28 56 e5 movaps -0x1b(%rsi),%xmm2 - 430c7b: 48 83 ea 40 sub $0x40,%rdx - 430c7f: 0f 28 5e d5 movaps -0x2b(%rsi),%xmm3 - 430c83: 0f 28 66 c5 movaps -0x3b(%rsi),%xmm4 - 430c87: 0f 28 6e b5 movaps -0x4b(%rsi),%xmm5 - 430c8b: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 430c8f: 66 0f 3a 0f ca 0b palignr $0xb,%xmm2,%xmm1 - 430c95: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 - 430c9b: 66 0f 3a 0f dc 0b palignr $0xb,%xmm4,%xmm3 - 430ca1: 66 0f 3a 0f e5 0b palignr $0xb,%xmm5,%xmm4 - 430ca7: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 430cab: 0f 28 cd movaps %xmm5,%xmm1 - 430cae: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 430cb2: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 430cb6: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 430cba: 72 08 jb 430cc4 <__memmove_ssse3+0x1374> - 430cbc: 0f 29 27 movaps %xmm4,(%rdi) - 430cbf: 41 ff e1 jmpq *%r9 - 430cc2: 0f 0b ud2 - 430cc4: 0f 29 27 movaps %xmm4,(%rdi) - 430cc7: 48 8d 52 40 lea 0x40(%rdx),%rdx - 430ccb: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 430cd0: 4c 8d 1d d9 26 07 00 lea 0x726d9(%rip),%r11 # 4a33b0 - 430cd7: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 430cdb: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 430cdf: ff e2 jmpq *%rdx - 430ce1: 0f 0b ud2 - 430ce3: 0f 1f 00 nopl (%rax) - 430ce6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 430ced: 00 00 00 - 430cf0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430cf7: 48 39 ca cmp %rcx,%rdx - 430cfa: 0f 28 4e f4 movaps -0xc(%rsi),%xmm1 - 430cfe: 72 07 jb 430d07 <__memmove_ssse3+0x13b7> - 430d00: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430d07: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 430d0b: 41 ff e1 jmpq *%r9 - 430d0e: 0f 0b ud2 - 430d10: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 430d17: 48 83 ea 40 sub $0x40,%rdx - 430d1b: 0f 28 56 04 movaps 0x4(%rsi),%xmm2 - 430d1f: 0f 28 5e 14 movaps 0x14(%rsi),%xmm3 - 430d23: 0f 28 66 24 movaps 0x24(%rsi),%xmm4 - 430d27: 0f 28 6e 34 movaps 0x34(%rsi),%xmm5 - 430d2b: 66 0f 6f f5 movdqa %xmm5,%xmm6 - 430d2f: 66 0f 3a 0f ec 0c palignr $0xc,%xmm4,%xmm5 - 430d35: 48 8d 76 40 lea 0x40(%rsi),%rsi - 430d39: 66 0f 3a 0f e3 0c palignr $0xc,%xmm3,%xmm4 - 430d3f: 66 0f 3a 0f da 0c palignr $0xc,%xmm2,%xmm3 - 430d45: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 430d49: 66 0f 3a 0f d1 0c palignr $0xc,%xmm1,%xmm2 - 430d4f: 66 0f 6f ce movdqa %xmm6,%xmm1 - 430d53: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) - 430d58: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 430d5c: 72 0d jb 430d6b <__memmove_ssse3+0x141b> - 430d5e: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 430d62: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430d66: 41 ff e1 jmpq *%r9 - 430d69: 0f 0b ud2 - 430d6b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 430d6f: 48 8d 52 40 lea 0x40(%rdx),%rdx - 430d73: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430d77: 48 01 d7 add %rdx,%rdi - 430d7a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 430d7f: 48 01 d6 add %rdx,%rsi - 430d82: 4c 8d 1d 27 26 07 00 lea 0x72627(%rip),%r11 # 4a33b0 - 430d89: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 430d8d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 430d91: ff e2 jmpq *%rdx - 430d93: 0f 0b ud2 - 430d95: 90 nop - 430d96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 430d9d: 00 00 00 - 430da0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430da7: 48 39 ca cmp %rcx,%rdx - 430daa: 0f 28 4e f4 movaps -0xc(%rsi),%xmm1 - 430dae: 72 07 jb 430db7 <__memmove_ssse3+0x1467> - 430db0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430db7: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 430dbb: 41 ff e1 jmpq *%r9 - 430dbe: 0f 0b ud2 - 430dc0: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 430dc7: 0f 28 56 e4 movaps -0x1c(%rsi),%xmm2 - 430dcb: 48 83 ea 40 sub $0x40,%rdx - 430dcf: 0f 28 5e d4 movaps -0x2c(%rsi),%xmm3 - 430dd3: 0f 28 66 c4 movaps -0x3c(%rsi),%xmm4 - 430dd7: 0f 28 6e b4 movaps -0x4c(%rsi),%xmm5 - 430ddb: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 430ddf: 66 0f 3a 0f ca 0c palignr $0xc,%xmm2,%xmm1 - 430de5: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 - 430deb: 66 0f 3a 0f dc 0c palignr $0xc,%xmm4,%xmm3 - 430df1: 66 0f 3a 0f e5 0c palignr $0xc,%xmm5,%xmm4 - 430df7: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 430dfb: 0f 28 cd movaps %xmm5,%xmm1 - 430dfe: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 430e02: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 430e06: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 430e0a: 72 08 jb 430e14 <__memmove_ssse3+0x14c4> - 430e0c: 0f 29 27 movaps %xmm4,(%rdi) - 430e0f: 41 ff e1 jmpq *%r9 - 430e12: 0f 0b ud2 - 430e14: 0f 29 27 movaps %xmm4,(%rdi) - 430e17: 48 8d 52 40 lea 0x40(%rdx),%rdx - 430e1b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 430e20: 4c 8d 1d 89 25 07 00 lea 0x72589(%rip),%r11 # 4a33b0 - 430e27: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 430e2b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 430e2f: ff e2 jmpq *%rdx - 430e31: 0f 0b ud2 - 430e33: 0f 1f 00 nopl (%rax) - 430e36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 430e3d: 00 00 00 - 430e40: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430e47: 48 39 ca cmp %rcx,%rdx - 430e4a: 0f 28 4e f3 movaps -0xd(%rsi),%xmm1 - 430e4e: 72 07 jb 430e57 <__memmove_ssse3+0x1507> - 430e50: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430e57: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 430e5b: 41 ff e1 jmpq *%r9 - 430e5e: 0f 0b ud2 - 430e60: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 430e67: 48 83 ea 40 sub $0x40,%rdx - 430e6b: 0f 28 56 03 movaps 0x3(%rsi),%xmm2 - 430e6f: 0f 28 5e 13 movaps 0x13(%rsi),%xmm3 - 430e73: 0f 28 66 23 movaps 0x23(%rsi),%xmm4 - 430e77: 0f 28 6e 33 movaps 0x33(%rsi),%xmm5 - 430e7b: 66 0f 6f f5 movdqa %xmm5,%xmm6 - 430e7f: 66 0f 3a 0f ec 0d palignr $0xd,%xmm4,%xmm5 - 430e85: 48 8d 76 40 lea 0x40(%rsi),%rsi - 430e89: 66 0f 3a 0f e3 0d palignr $0xd,%xmm3,%xmm4 - 430e8f: 66 0f 3a 0f da 0d palignr $0xd,%xmm2,%xmm3 - 430e95: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 430e99: 66 0f 3a 0f d1 0d palignr $0xd,%xmm1,%xmm2 - 430e9f: 66 0f 6f ce movdqa %xmm6,%xmm1 - 430ea3: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) - 430ea8: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 430eac: 72 0d jb 430ebb <__memmove_ssse3+0x156b> - 430eae: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 430eb2: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430eb6: 41 ff e1 jmpq *%r9 - 430eb9: 0f 0b ud2 - 430ebb: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 430ebf: 48 8d 52 40 lea 0x40(%rdx),%rdx - 430ec3: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 430ec7: 48 01 d7 add %rdx,%rdi - 430eca: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 430ecf: 48 01 d6 add %rdx,%rsi - 430ed2: 4c 8d 1d d7 24 07 00 lea 0x724d7(%rip),%r11 # 4a33b0 - 430ed9: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 430edd: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 430ee1: ff e2 jmpq *%rdx - 430ee3: 0f 0b ud2 - 430ee5: 90 nop - 430ee6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 430eed: 00 00 00 - 430ef0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430ef7: 48 39 ca cmp %rcx,%rdx - 430efa: 0f 28 4e f3 movaps -0xd(%rsi),%xmm1 - 430efe: 72 07 jb 430f07 <__memmove_ssse3+0x15b7> - 430f00: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430f07: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 430f0b: 41 ff e1 jmpq *%r9 - 430f0e: 0f 0b ud2 - 430f10: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 430f17: 0f 28 56 e3 movaps -0x1d(%rsi),%xmm2 - 430f1b: 48 83 ea 40 sub $0x40,%rdx - 430f1f: 0f 28 5e d3 movaps -0x2d(%rsi),%xmm3 - 430f23: 0f 28 66 c3 movaps -0x3d(%rsi),%xmm4 - 430f27: 0f 28 6e b3 movaps -0x4d(%rsi),%xmm5 - 430f2b: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 430f2f: 66 0f 3a 0f ca 0d palignr $0xd,%xmm2,%xmm1 - 430f35: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 - 430f3b: 66 0f 3a 0f dc 0d palignr $0xd,%xmm4,%xmm3 - 430f41: 66 0f 3a 0f e5 0d palignr $0xd,%xmm5,%xmm4 - 430f47: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 430f4b: 0f 28 cd movaps %xmm5,%xmm1 - 430f4e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 430f52: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 430f56: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 430f5a: 72 08 jb 430f64 <__memmove_ssse3+0x1614> - 430f5c: 0f 29 27 movaps %xmm4,(%rdi) - 430f5f: 41 ff e1 jmpq *%r9 - 430f62: 0f 0b ud2 - 430f64: 0f 29 27 movaps %xmm4,(%rdi) - 430f67: 48 8d 52 40 lea 0x40(%rdx),%rdx - 430f6b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 430f70: 4c 8d 1d 39 24 07 00 lea 0x72439(%rip),%r11 # 4a33b0 - 430f77: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 430f7b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 430f7f: ff e2 jmpq *%rdx - 430f81: 0f 0b ud2 - 430f83: 0f 1f 00 nopl (%rax) - 430f86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 430f8d: 00 00 00 - 430f90: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 430f97: 48 39 ca cmp %rcx,%rdx - 430f9a: 0f 28 4e f2 movaps -0xe(%rsi),%xmm1 - 430f9e: 72 07 jb 430fa7 <__memmove_ssse3+0x1657> - 430fa0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 430fa7: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 430fab: 41 ff e1 jmpq *%r9 - 430fae: 0f 0b ud2 - 430fb0: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 430fb7: 48 83 ea 40 sub $0x40,%rdx - 430fbb: 0f 28 56 02 movaps 0x2(%rsi),%xmm2 - 430fbf: 0f 28 5e 12 movaps 0x12(%rsi),%xmm3 - 430fc3: 0f 28 66 22 movaps 0x22(%rsi),%xmm4 - 430fc7: 0f 28 6e 32 movaps 0x32(%rsi),%xmm5 - 430fcb: 66 0f 6f f5 movdqa %xmm5,%xmm6 - 430fcf: 66 0f 3a 0f ec 0e palignr $0xe,%xmm4,%xmm5 - 430fd5: 48 8d 76 40 lea 0x40(%rsi),%rsi - 430fd9: 66 0f 3a 0f e3 0e palignr $0xe,%xmm3,%xmm4 - 430fdf: 66 0f 3a 0f da 0e palignr $0xe,%xmm2,%xmm3 - 430fe5: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 430fe9: 66 0f 3a 0f d1 0e palignr $0xe,%xmm1,%xmm2 - 430fef: 66 0f 6f ce movdqa %xmm6,%xmm1 - 430ff3: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) - 430ff8: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 430ffc: 72 0d jb 43100b <__memmove_ssse3+0x16bb> - 430ffe: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 431002: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 431006: 41 ff e1 jmpq *%r9 - 431009: 0f 0b ud2 - 43100b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 43100f: 48 8d 52 40 lea 0x40(%rdx),%rdx - 431013: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 431017: 48 01 d7 add %rdx,%rdi - 43101a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 43101f: 48 01 d6 add %rdx,%rsi - 431022: 4c 8d 1d 87 23 07 00 lea 0x72387(%rip),%r11 # 4a33b0 - 431029: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43102d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 431031: ff e2 jmpq *%rdx - 431033: 0f 0b ud2 - 431035: 90 nop - 431036: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43103d: 00 00 00 - 431040: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 431047: 48 39 ca cmp %rcx,%rdx - 43104a: 0f 28 4e f2 movaps -0xe(%rsi),%xmm1 - 43104e: 72 07 jb 431057 <__memmove_ssse3+0x1707> - 431050: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 431057: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 43105b: 41 ff e1 jmpq *%r9 - 43105e: 0f 0b ud2 - 431060: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 431067: 0f 28 56 e2 movaps -0x1e(%rsi),%xmm2 - 43106b: 48 83 ea 40 sub $0x40,%rdx - 43106f: 0f 28 5e d2 movaps -0x2e(%rsi),%xmm3 - 431073: 0f 28 66 c2 movaps -0x3e(%rsi),%xmm4 - 431077: 0f 28 6e b2 movaps -0x4e(%rsi),%xmm5 - 43107b: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 43107f: 66 0f 3a 0f ca 0e palignr $0xe,%xmm2,%xmm1 - 431085: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 - 43108b: 66 0f 3a 0f dc 0e palignr $0xe,%xmm4,%xmm3 - 431091: 66 0f 3a 0f e5 0e palignr $0xe,%xmm5,%xmm4 - 431097: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 43109b: 0f 28 cd movaps %xmm5,%xmm1 - 43109e: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 4310a2: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 4310a6: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 4310aa: 72 08 jb 4310b4 <__memmove_ssse3+0x1764> - 4310ac: 0f 29 27 movaps %xmm4,(%rdi) - 4310af: 41 ff e1 jmpq *%r9 - 4310b2: 0f 0b ud2 - 4310b4: 0f 29 27 movaps %xmm4,(%rdi) - 4310b7: 48 8d 52 40 lea 0x40(%rdx),%rdx - 4310bb: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 4310c0: 4c 8d 1d e9 22 07 00 lea 0x722e9(%rip),%r11 # 4a33b0 - 4310c7: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4310cb: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4310cf: ff e2 jmpq *%rdx - 4310d1: 0f 0b ud2 - 4310d3: 0f 1f 00 nopl (%rax) - 4310d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4310dd: 00 00 00 - 4310e0: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 4310e7: 48 39 ca cmp %rcx,%rdx - 4310ea: 0f 28 4e f1 movaps -0xf(%rsi),%xmm1 - 4310ee: 72 07 jb 4310f7 <__memmove_ssse3+0x17a7> - 4310f0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 4310f7: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 4310fb: 41 ff e1 jmpq *%r9 - 4310fe: 0f 0b ud2 - 431100: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 431107: 48 83 ea 40 sub $0x40,%rdx - 43110b: 0f 28 56 01 movaps 0x1(%rsi),%xmm2 - 43110f: 0f 28 5e 11 movaps 0x11(%rsi),%xmm3 - 431113: 0f 28 66 21 movaps 0x21(%rsi),%xmm4 - 431117: 0f 28 6e 31 movaps 0x31(%rsi),%xmm5 - 43111b: 66 0f 6f f5 movdqa %xmm5,%xmm6 - 43111f: 66 0f 3a 0f ec 0f palignr $0xf,%xmm4,%xmm5 - 431125: 48 8d 76 40 lea 0x40(%rsi),%rsi - 431129: 66 0f 3a 0f e3 0f palignr $0xf,%xmm3,%xmm4 - 43112f: 66 0f 3a 0f da 0f palignr $0xf,%xmm2,%xmm3 - 431135: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 431139: 66 0f 3a 0f d1 0f palignr $0xf,%xmm1,%xmm2 - 43113f: 66 0f 6f ce movdqa %xmm6,%xmm1 - 431143: 66 0f 7f 57 c0 movdqa %xmm2,-0x40(%rdi) - 431148: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 43114c: 72 0d jb 43115b <__memmove_ssse3+0x180b> - 43114e: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 431152: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 431156: 41 ff e1 jmpq *%r9 - 431159: 0f 0b ud2 - 43115b: 0f 29 67 e0 movaps %xmm4,-0x20(%rdi) - 43115f: 48 8d 52 40 lea 0x40(%rdx),%rdx - 431163: 0f 29 6f f0 movaps %xmm5,-0x10(%rdi) - 431167: 48 01 d7 add %rdx,%rdi - 43116a: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 43116f: 48 01 d6 add %rdx,%rsi - 431172: 4c 8d 1d 37 22 07 00 lea 0x72237(%rip),%r11 # 4a33b0 - 431179: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43117d: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 431181: ff e2 jmpq *%rdx - 431183: 0f 0b ud2 - 431185: 90 nop - 431186: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43118d: 00 00 00 - 431190: 4d 8d 89 27 00 00 00 lea 0x27(%r9),%r9 - 431197: 48 39 ca cmp %rcx,%rdx - 43119a: 0f 28 4e f1 movaps -0xf(%rsi),%xmm1 - 43119e: 72 07 jb 4311a7 <__memmove_ssse3+0x1857> - 4311a0: 4d 8d 89 f9 ff ff ff lea -0x7(%r9),%r9 - 4311a7: 48 8d 52 c0 lea -0x40(%rdx),%rdx - 4311ab: 41 ff e1 jmpq *%r9 - 4311ae: 0f 0b ud2 - 4311b0: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 4311b7: 0f 28 56 e1 movaps -0x1f(%rsi),%xmm2 - 4311bb: 48 83 ea 40 sub $0x40,%rdx - 4311bf: 0f 28 5e d1 movaps -0x2f(%rsi),%xmm3 - 4311c3: 0f 28 66 c1 movaps -0x3f(%rsi),%xmm4 - 4311c7: 0f 28 6e b1 movaps -0x4f(%rsi),%xmm5 - 4311cb: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 4311cf: 66 0f 3a 0f ca 0f palignr $0xf,%xmm2,%xmm1 - 4311d5: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 - 4311db: 66 0f 3a 0f dc 0f palignr $0xf,%xmm4,%xmm3 - 4311e1: 66 0f 3a 0f e5 0f palignr $0xf,%xmm5,%xmm4 - 4311e7: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 4311eb: 0f 28 cd movaps %xmm5,%xmm1 - 4311ee: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 4311f2: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 4311f6: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 4311fa: 72 08 jb 431204 <__memmove_ssse3+0x18b4> - 4311fc: 0f 29 27 movaps %xmm4,(%rdi) - 4311ff: 41 ff e1 jmpq *%r9 - 431202: 0f 0b ud2 - 431204: 0f 29 27 movaps %xmm4,(%rdi) - 431207: 48 8d 52 40 lea 0x40(%rdx),%rdx - 43120b: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 431210: 4c 8d 1d 99 21 07 00 lea 0x72199(%rip),%r11 # 4a33b0 - 431217: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43121b: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 43121f: ff e2 jmpq *%rdx - 431221: 0f 0b ud2 - 431223: 0f 1f 00 nopl (%rax) - 431226: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43122d: 00 00 00 - 431230: f3 0f 6f 46 b8 movdqu -0x48(%rsi),%xmm0 - 431235: f3 0f 6f 4e c8 movdqu -0x38(%rsi),%xmm1 - 43123a: 4c 8b 46 d8 mov -0x28(%rsi),%r8 - 43123e: 4c 8b 4e e0 mov -0x20(%rsi),%r9 - 431242: 4c 8b 56 e8 mov -0x18(%rsi),%r10 - 431246: 4c 8b 5e f0 mov -0x10(%rsi),%r11 - 43124a: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 43124e: f3 0f 7f 47 b8 movdqu %xmm0,-0x48(%rdi) - 431253: f3 0f 7f 4f c8 movdqu %xmm1,-0x38(%rdi) - 431258: 4c 89 47 d8 mov %r8,-0x28(%rdi) - 43125c: 4c 89 4f e0 mov %r9,-0x20(%rdi) - 431260: 4c 89 57 e8 mov %r10,-0x18(%rdi) - 431264: 4c 89 5f f0 mov %r11,-0x10(%rdi) - 431268: 48 89 4f f8 mov %rcx,-0x8(%rdi) - 43126c: c3 retq - 43126d: 0f 1f 00 nopl (%rax) - 431270: f3 0f 6f 46 c0 movdqu -0x40(%rsi),%xmm0 - 431275: 48 8b 4e d0 mov -0x30(%rsi),%rcx - 431279: 4c 8b 46 d8 mov -0x28(%rsi),%r8 - 43127d: 4c 8b 4e e0 mov -0x20(%rsi),%r9 - 431281: 4c 8b 56 e8 mov -0x18(%rsi),%r10 - 431285: 4c 8b 5e f0 mov -0x10(%rsi),%r11 - 431289: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 43128d: f3 0f 7f 47 c0 movdqu %xmm0,-0x40(%rdi) - 431292: 48 89 4f d0 mov %rcx,-0x30(%rdi) - 431296: 4c 89 47 d8 mov %r8,-0x28(%rdi) - 43129a: 4c 89 4f e0 mov %r9,-0x20(%rdi) - 43129e: 4c 89 57 e8 mov %r10,-0x18(%rdi) - 4312a2: 4c 89 5f f0 mov %r11,-0x10(%rdi) - 4312a6: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 4312aa: c3 retq - 4312ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4312b0: f3 0f 6f 46 c8 movdqu -0x38(%rsi),%xmm0 - 4312b5: 4c 8b 46 d8 mov -0x28(%rsi),%r8 - 4312b9: 4c 8b 4e e0 mov -0x20(%rsi),%r9 - 4312bd: 4c 8b 56 e8 mov -0x18(%rsi),%r10 - 4312c1: 4c 8b 5e f0 mov -0x10(%rsi),%r11 - 4312c5: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 4312c9: f3 0f 7f 47 c8 movdqu %xmm0,-0x38(%rdi) - 4312ce: 4c 89 47 d8 mov %r8,-0x28(%rdi) - 4312d2: 4c 89 4f e0 mov %r9,-0x20(%rdi) - 4312d6: 4c 89 57 e8 mov %r10,-0x18(%rdi) - 4312da: 4c 89 5f f0 mov %r11,-0x10(%rdi) - 4312de: 48 89 4f f8 mov %rcx,-0x8(%rdi) - 4312e2: c3 retq - 4312e3: 0f 1f 00 nopl (%rax) - 4312e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4312ed: 00 00 00 - 4312f0: 48 8b 4e d0 mov -0x30(%rsi),%rcx - 4312f4: 4c 8b 46 d8 mov -0x28(%rsi),%r8 - 4312f8: 4c 8b 4e e0 mov -0x20(%rsi),%r9 - 4312fc: 4c 8b 56 e8 mov -0x18(%rsi),%r10 - 431300: 4c 8b 5e f0 mov -0x10(%rsi),%r11 - 431304: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431308: 48 89 4f d0 mov %rcx,-0x30(%rdi) - 43130c: 4c 89 47 d8 mov %r8,-0x28(%rdi) - 431310: 4c 89 4f e0 mov %r9,-0x20(%rdi) - 431314: 4c 89 57 e8 mov %r10,-0x18(%rdi) - 431318: 4c 89 5f f0 mov %r11,-0x10(%rdi) - 43131c: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431320: c3 retq - 431321: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 431326: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43132d: 00 00 00 - 431330: 4c 8b 46 d8 mov -0x28(%rsi),%r8 - 431334: 4c 8b 4e e0 mov -0x20(%rsi),%r9 - 431338: 4c 8b 56 e8 mov -0x18(%rsi),%r10 - 43133c: 4c 8b 5e f0 mov -0x10(%rsi),%r11 - 431340: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431344: 4c 89 47 d8 mov %r8,-0x28(%rdi) - 431348: 4c 89 4f e0 mov %r9,-0x20(%rdi) - 43134c: 4c 89 57 e8 mov %r10,-0x18(%rdi) - 431350: 4c 89 5f f0 mov %r11,-0x10(%rdi) - 431354: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431358: c3 retq - 431359: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 431360: 4c 8b 4e e0 mov -0x20(%rsi),%r9 - 431364: 4c 8b 56 e8 mov -0x18(%rsi),%r10 - 431368: 4c 8b 5e f0 mov -0x10(%rsi),%r11 - 43136c: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431370: 4c 89 4f e0 mov %r9,-0x20(%rdi) - 431374: 4c 89 57 e8 mov %r10,-0x18(%rdi) - 431378: 4c 89 5f f0 mov %r11,-0x10(%rdi) - 43137c: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431380: c3 retq - 431381: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 431386: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43138d: 00 00 00 - 431390: 4c 8b 56 e8 mov -0x18(%rsi),%r10 - 431394: 4c 8b 5e f0 mov -0x10(%rsi),%r11 - 431398: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 43139c: 4c 89 57 e8 mov %r10,-0x18(%rdi) - 4313a0: 4c 89 5f f0 mov %r11,-0x10(%rdi) - 4313a4: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 4313a8: c3 retq - 4313a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4313b0: 4c 8b 5e f0 mov -0x10(%rsi),%r11 - 4313b4: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 4313b8: 4c 89 5f f0 mov %r11,-0x10(%rdi) - 4313bc: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 4313c0: c3 retq - 4313c1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4313c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4313cd: 00 00 00 - 4313d0: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 4313d4: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 4313d8: c3 retq - 4313d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4313e0: f3 0f 6f 46 b7 movdqu -0x49(%rsi),%xmm0 - 4313e5: f3 0f 6f 4e c7 movdqu -0x39(%rsi),%xmm1 - 4313ea: 48 8b 4e d7 mov -0x29(%rsi),%rcx - 4313ee: 4c 8b 4e df mov -0x21(%rsi),%r9 - 4313f2: 4c 8b 56 e7 mov -0x19(%rsi),%r10 - 4313f6: 4c 8b 5e ef mov -0x11(%rsi),%r11 - 4313fa: 4c 8b 46 f7 mov -0x9(%rsi),%r8 - 4313fe: 8b 56 fc mov -0x4(%rsi),%edx - 431401: f3 0f 7f 47 b7 movdqu %xmm0,-0x49(%rdi) - 431406: f3 0f 7f 4f c7 movdqu %xmm1,-0x39(%rdi) - 43140b: 48 89 4f d7 mov %rcx,-0x29(%rdi) - 43140f: 4c 89 4f df mov %r9,-0x21(%rdi) - 431413: 4c 89 57 e7 mov %r10,-0x19(%rdi) - 431417: 4c 89 5f ef mov %r11,-0x11(%rdi) - 43141b: 4c 89 47 f7 mov %r8,-0x9(%rdi) - 43141f: 89 57 fc mov %edx,-0x4(%rdi) - 431422: c3 retq - 431423: 0f 1f 00 nopl (%rax) - 431426: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43142d: 00 00 00 - 431430: f3 0f 6f 46 bf movdqu -0x41(%rsi),%xmm0 - 431435: f3 0f 6f 4e cf movdqu -0x31(%rsi),%xmm1 - 43143a: 4c 8b 4e df mov -0x21(%rsi),%r9 - 43143e: 4c 8b 56 e7 mov -0x19(%rsi),%r10 - 431442: 4c 8b 5e ef mov -0x11(%rsi),%r11 - 431446: 48 8b 4e f7 mov -0x9(%rsi),%rcx - 43144a: 8b 56 fc mov -0x4(%rsi),%edx - 43144d: f3 0f 7f 47 bf movdqu %xmm0,-0x41(%rdi) - 431452: f3 0f 7f 4f cf movdqu %xmm1,-0x31(%rdi) - 431457: 4c 89 4f df mov %r9,-0x21(%rdi) - 43145b: 4c 89 57 e7 mov %r10,-0x19(%rdi) - 43145f: 4c 89 5f ef mov %r11,-0x11(%rdi) - 431463: 48 89 4f f7 mov %rcx,-0x9(%rdi) - 431467: 89 57 fc mov %edx,-0x4(%rdi) - 43146a: c3 retq - 43146b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 431470: f3 0f 6f 46 c7 movdqu -0x39(%rsi),%xmm0 - 431475: 4c 8b 46 d7 mov -0x29(%rsi),%r8 - 431479: 4c 8b 4e df mov -0x21(%rsi),%r9 - 43147d: 4c 8b 56 e7 mov -0x19(%rsi),%r10 - 431481: 4c 8b 5e ef mov -0x11(%rsi),%r11 - 431485: 48 8b 4e f7 mov -0x9(%rsi),%rcx - 431489: 8b 56 fc mov -0x4(%rsi),%edx - 43148c: f3 0f 7f 47 c7 movdqu %xmm0,-0x39(%rdi) - 431491: 4c 89 47 d7 mov %r8,-0x29(%rdi) - 431495: 4c 89 4f df mov %r9,-0x21(%rdi) - 431499: 4c 89 57 e7 mov %r10,-0x19(%rdi) - 43149d: 4c 89 5f ef mov %r11,-0x11(%rdi) - 4314a1: 48 89 4f f7 mov %rcx,-0x9(%rdi) - 4314a5: 89 57 fc mov %edx,-0x4(%rdi) - 4314a8: c3 retq - 4314a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4314b0: f3 0f 6f 46 cf movdqu -0x31(%rsi),%xmm0 - 4314b5: 4c 8b 4e df mov -0x21(%rsi),%r9 - 4314b9: 4c 8b 56 e7 mov -0x19(%rsi),%r10 - 4314bd: 4c 8b 5e ef mov -0x11(%rsi),%r11 - 4314c1: 48 8b 4e f7 mov -0x9(%rsi),%rcx - 4314c5: 8b 56 fc mov -0x4(%rsi),%edx - 4314c8: f3 0f 7f 47 cf movdqu %xmm0,-0x31(%rdi) - 4314cd: 4c 89 4f df mov %r9,-0x21(%rdi) - 4314d1: 4c 89 57 e7 mov %r10,-0x19(%rdi) - 4314d5: 4c 89 5f ef mov %r11,-0x11(%rdi) - 4314d9: 48 89 4f f7 mov %rcx,-0x9(%rdi) - 4314dd: 89 57 fc mov %edx,-0x4(%rdi) - 4314e0: c3 retq - 4314e1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4314e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4314ed: 00 00 00 - 4314f0: 4c 8b 46 d7 mov -0x29(%rsi),%r8 - 4314f4: 4c 8b 4e df mov -0x21(%rsi),%r9 - 4314f8: 4c 8b 56 e7 mov -0x19(%rsi),%r10 - 4314fc: 4c 8b 5e ef mov -0x11(%rsi),%r11 - 431500: 48 8b 4e f7 mov -0x9(%rsi),%rcx - 431504: 8a 56 ff mov -0x1(%rsi),%dl - 431507: 4c 89 47 d7 mov %r8,-0x29(%rdi) - 43150b: 4c 89 4f df mov %r9,-0x21(%rdi) - 43150f: 4c 89 57 e7 mov %r10,-0x19(%rdi) - 431513: 4c 89 5f ef mov %r11,-0x11(%rdi) - 431517: 48 89 4f f7 mov %rcx,-0x9(%rdi) - 43151b: 88 57 ff mov %dl,-0x1(%rdi) - 43151e: c3 retq - 43151f: 90 nop - 431520: 4c 8b 4e df mov -0x21(%rsi),%r9 - 431524: 4c 8b 56 e7 mov -0x19(%rsi),%r10 - 431528: 4c 8b 5e ef mov -0x11(%rsi),%r11 - 43152c: 48 8b 4e f7 mov -0x9(%rsi),%rcx - 431530: 8a 56 ff mov -0x1(%rsi),%dl - 431533: 4c 89 4f df mov %r9,-0x21(%rdi) - 431537: 4c 89 57 e7 mov %r10,-0x19(%rdi) - 43153b: 4c 89 5f ef mov %r11,-0x11(%rdi) - 43153f: 48 89 4f f7 mov %rcx,-0x9(%rdi) - 431543: 88 57 ff mov %dl,-0x1(%rdi) - 431546: c3 retq - 431547: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43154e: 00 00 - 431550: 4c 8b 56 e7 mov -0x19(%rsi),%r10 - 431554: 4c 8b 5e ef mov -0x11(%rsi),%r11 - 431558: 48 8b 4e f7 mov -0x9(%rsi),%rcx - 43155c: 8a 56 ff mov -0x1(%rsi),%dl - 43155f: 4c 89 57 e7 mov %r10,-0x19(%rdi) - 431563: 4c 89 5f ef mov %r11,-0x11(%rdi) - 431567: 48 89 4f f7 mov %rcx,-0x9(%rdi) - 43156b: 88 57 ff mov %dl,-0x1(%rdi) - 43156e: c3 retq - 43156f: 90 nop - 431570: 4c 8b 5e ef mov -0x11(%rsi),%r11 - 431574: 48 8b 4e f7 mov -0x9(%rsi),%rcx - 431578: 8b 56 fc mov -0x4(%rsi),%edx - 43157b: 4c 89 5f ef mov %r11,-0x11(%rdi) - 43157f: 48 89 4f f7 mov %rcx,-0x9(%rdi) - 431583: 89 57 fc mov %edx,-0x4(%rdi) - 431586: c3 retq - 431587: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43158e: 00 00 - 431590: 48 8b 4e f7 mov -0x9(%rsi),%rcx - 431594: 8b 56 fc mov -0x4(%rsi),%edx - 431597: 48 89 4f f7 mov %rcx,-0x9(%rdi) - 43159b: 89 57 fc mov %edx,-0x4(%rdi) - 43159e: c3 retq - 43159f: 90 nop - 4315a0: 8a 56 ff mov -0x1(%rsi),%dl - 4315a3: 88 57 ff mov %dl,-0x1(%rdi) - 4315a6: c3 retq - 4315a7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4315ae: 00 00 - 4315b0: f3 0f 6f 46 b6 movdqu -0x4a(%rsi),%xmm0 - 4315b5: f3 0f 6f 4e c6 movdqu -0x3a(%rsi),%xmm1 - 4315ba: 4c 8b 46 d6 mov -0x2a(%rsi),%r8 - 4315be: 4c 8b 4e de mov -0x22(%rsi),%r9 - 4315c2: 4c 8b 56 e6 mov -0x1a(%rsi),%r10 - 4315c6: 4c 8b 5e ee mov -0x12(%rsi),%r11 - 4315ca: 48 8b 4e f6 mov -0xa(%rsi),%rcx - 4315ce: 8b 56 fc mov -0x4(%rsi),%edx - 4315d1: f3 0f 7f 47 b6 movdqu %xmm0,-0x4a(%rdi) - 4315d6: f3 0f 7f 4f c6 movdqu %xmm1,-0x3a(%rdi) - 4315db: 4c 89 47 d6 mov %r8,-0x2a(%rdi) - 4315df: 4c 89 4f de mov %r9,-0x22(%rdi) - 4315e3: 4c 89 57 e6 mov %r10,-0x1a(%rdi) - 4315e7: 4c 89 5f ee mov %r11,-0x12(%rdi) - 4315eb: 48 89 4f f6 mov %rcx,-0xa(%rdi) - 4315ef: 89 57 fc mov %edx,-0x4(%rdi) - 4315f2: c3 retq - 4315f3: 0f 1f 00 nopl (%rax) - 4315f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4315fd: 00 00 00 - 431600: f3 0f 6f 46 be movdqu -0x42(%rsi),%xmm0 - 431605: f3 0f 6f 4e ce movdqu -0x32(%rsi),%xmm1 - 43160a: 4c 8b 46 d6 mov -0x2a(%rsi),%r8 - 43160e: 4c 8b 4e de mov -0x22(%rsi),%r9 - 431612: 4c 8b 56 e6 mov -0x1a(%rsi),%r10 - 431616: 4c 8b 5e ee mov -0x12(%rsi),%r11 - 43161a: 48 8b 4e f6 mov -0xa(%rsi),%rcx - 43161e: 8b 56 fc mov -0x4(%rsi),%edx - 431621: f3 0f 7f 47 be movdqu %xmm0,-0x42(%rdi) - 431626: f3 0f 7f 4f ce movdqu %xmm1,-0x32(%rdi) - 43162b: 4c 89 47 d6 mov %r8,-0x2a(%rdi) - 43162f: 4c 89 4f de mov %r9,-0x22(%rdi) - 431633: 4c 89 57 e6 mov %r10,-0x1a(%rdi) - 431637: 4c 89 5f ee mov %r11,-0x12(%rdi) - 43163b: 48 89 4f f6 mov %rcx,-0xa(%rdi) - 43163f: 89 57 fc mov %edx,-0x4(%rdi) - 431642: c3 retq - 431643: 0f 1f 00 nopl (%rax) - 431646: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43164d: 00 00 00 - 431650: f3 0f 6f 4e c6 movdqu -0x3a(%rsi),%xmm1 - 431655: 4c 8b 46 d6 mov -0x2a(%rsi),%r8 - 431659: 4c 8b 4e de mov -0x22(%rsi),%r9 - 43165d: 4c 8b 56 e6 mov -0x1a(%rsi),%r10 - 431661: 4c 8b 5e ee mov -0x12(%rsi),%r11 - 431665: 48 8b 4e f6 mov -0xa(%rsi),%rcx - 431669: 8b 56 fc mov -0x4(%rsi),%edx - 43166c: f3 0f 7f 4f c6 movdqu %xmm1,-0x3a(%rdi) - 431671: 4c 89 47 d6 mov %r8,-0x2a(%rdi) - 431675: 4c 89 4f de mov %r9,-0x22(%rdi) - 431679: 4c 89 57 e6 mov %r10,-0x1a(%rdi) - 43167d: 4c 89 5f ee mov %r11,-0x12(%rdi) - 431681: 48 89 4f f6 mov %rcx,-0xa(%rdi) - 431685: 89 57 fc mov %edx,-0x4(%rdi) - 431688: c3 retq - 431689: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 431690: f3 0f 6f 46 ce movdqu -0x32(%rsi),%xmm0 - 431695: 4c 8b 4e de mov -0x22(%rsi),%r9 - 431699: 4c 8b 56 e6 mov -0x1a(%rsi),%r10 - 43169d: 4c 8b 5e ee mov -0x12(%rsi),%r11 - 4316a1: 48 8b 4e f6 mov -0xa(%rsi),%rcx - 4316a5: 8b 56 fc mov -0x4(%rsi),%edx - 4316a8: f3 0f 7f 47 ce movdqu %xmm0,-0x32(%rdi) - 4316ad: 4c 89 4f de mov %r9,-0x22(%rdi) - 4316b1: 4c 89 57 e6 mov %r10,-0x1a(%rdi) - 4316b5: 4c 89 5f ee mov %r11,-0x12(%rdi) - 4316b9: 48 89 4f f6 mov %rcx,-0xa(%rdi) - 4316bd: 89 57 fc mov %edx,-0x4(%rdi) - 4316c0: c3 retq - 4316c1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4316c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4316cd: 00 00 00 - 4316d0: 4c 8b 46 d6 mov -0x2a(%rsi),%r8 - 4316d4: 4c 8b 4e de mov -0x22(%rsi),%r9 - 4316d8: 4c 8b 56 e6 mov -0x1a(%rsi),%r10 - 4316dc: 4c 8b 5e ee mov -0x12(%rsi),%r11 - 4316e0: 48 8b 4e f6 mov -0xa(%rsi),%rcx - 4316e4: 8b 56 fc mov -0x4(%rsi),%edx - 4316e7: 4c 89 47 d6 mov %r8,-0x2a(%rdi) - 4316eb: 4c 89 4f de mov %r9,-0x22(%rdi) - 4316ef: 4c 89 57 e6 mov %r10,-0x1a(%rdi) - 4316f3: 4c 89 5f ee mov %r11,-0x12(%rdi) - 4316f7: 48 89 4f f6 mov %rcx,-0xa(%rdi) - 4316fb: 89 57 fc mov %edx,-0x4(%rdi) - 4316fe: c3 retq - 4316ff: 90 nop - 431700: 4c 8b 4e de mov -0x22(%rsi),%r9 - 431704: 4c 8b 56 e6 mov -0x1a(%rsi),%r10 - 431708: 4c 8b 5e ee mov -0x12(%rsi),%r11 - 43170c: 48 8b 4e f6 mov -0xa(%rsi),%rcx - 431710: 8b 56 fc mov -0x4(%rsi),%edx - 431713: 4c 89 4f de mov %r9,-0x22(%rdi) - 431717: 4c 89 57 e6 mov %r10,-0x1a(%rdi) - 43171b: 4c 89 5f ee mov %r11,-0x12(%rdi) - 43171f: 48 89 4f f6 mov %rcx,-0xa(%rdi) - 431723: 89 57 fc mov %edx,-0x4(%rdi) - 431726: c3 retq - 431727: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43172e: 00 00 - 431730: 4c 8b 56 e6 mov -0x1a(%rsi),%r10 - 431734: 4c 8b 5e ee mov -0x12(%rsi),%r11 - 431738: 48 8b 4e f6 mov -0xa(%rsi),%rcx - 43173c: 8b 56 fc mov -0x4(%rsi),%edx - 43173f: 4c 89 57 e6 mov %r10,-0x1a(%rdi) - 431743: 4c 89 5f ee mov %r11,-0x12(%rdi) - 431747: 48 89 4f f6 mov %rcx,-0xa(%rdi) - 43174b: 89 57 fc mov %edx,-0x4(%rdi) - 43174e: c3 retq - 43174f: 90 nop - 431750: 4c 8b 5e ee mov -0x12(%rsi),%r11 - 431754: 48 8b 4e f6 mov -0xa(%rsi),%rcx - 431758: 8b 56 fc mov -0x4(%rsi),%edx - 43175b: 4c 89 5f ee mov %r11,-0x12(%rdi) - 43175f: 48 89 4f f6 mov %rcx,-0xa(%rdi) - 431763: 89 57 fc mov %edx,-0x4(%rdi) - 431766: c3 retq - 431767: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43176e: 00 00 - 431770: 48 8b 4e f6 mov -0xa(%rsi),%rcx - 431774: 8b 56 fc mov -0x4(%rsi),%edx - 431777: 48 89 4f f6 mov %rcx,-0xa(%rdi) - 43177b: 89 57 fc mov %edx,-0x4(%rdi) - 43177e: c3 retq - 43177f: 90 nop - 431780: 66 8b 56 fe mov -0x2(%rsi),%dx - 431784: 66 89 57 fe mov %dx,-0x2(%rdi) - 431788: c3 retq - 431789: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 431790: f3 0f 6f 46 b5 movdqu -0x4b(%rsi),%xmm0 - 431795: f3 0f 6f 4e c5 movdqu -0x3b(%rsi),%xmm1 - 43179a: 4c 8b 46 d5 mov -0x2b(%rsi),%r8 - 43179e: 4c 8b 4e dd mov -0x23(%rsi),%r9 - 4317a2: 4c 8b 56 e5 mov -0x1b(%rsi),%r10 - 4317a6: 4c 8b 5e ed mov -0x13(%rsi),%r11 - 4317aa: 48 8b 4e f5 mov -0xb(%rsi),%rcx - 4317ae: 8b 56 fc mov -0x4(%rsi),%edx - 4317b1: f3 0f 7f 47 b5 movdqu %xmm0,-0x4b(%rdi) - 4317b6: f3 0f 7f 4f c5 movdqu %xmm1,-0x3b(%rdi) - 4317bb: 4c 89 47 d5 mov %r8,-0x2b(%rdi) - 4317bf: 4c 89 4f dd mov %r9,-0x23(%rdi) - 4317c3: 4c 89 57 e5 mov %r10,-0x1b(%rdi) - 4317c7: 4c 89 5f ed mov %r11,-0x13(%rdi) - 4317cb: 48 89 4f f5 mov %rcx,-0xb(%rdi) - 4317cf: 89 57 fc mov %edx,-0x4(%rdi) - 4317d2: c3 retq - 4317d3: 0f 1f 00 nopl (%rax) - 4317d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4317dd: 00 00 00 - 4317e0: f3 0f 6f 46 bd movdqu -0x43(%rsi),%xmm0 - 4317e5: f3 0f 6f 4e c5 movdqu -0x3b(%rsi),%xmm1 - 4317ea: 4c 8b 46 d5 mov -0x2b(%rsi),%r8 - 4317ee: 4c 8b 4e dd mov -0x23(%rsi),%r9 - 4317f2: 4c 8b 56 e5 mov -0x1b(%rsi),%r10 - 4317f6: 4c 8b 5e ed mov -0x13(%rsi),%r11 - 4317fa: 48 8b 4e f5 mov -0xb(%rsi),%rcx - 4317fe: 8b 56 fc mov -0x4(%rsi),%edx - 431801: f3 0f 7f 47 bd movdqu %xmm0,-0x43(%rdi) - 431806: f3 0f 7f 4f c5 movdqu %xmm1,-0x3b(%rdi) - 43180b: 4c 89 47 d5 mov %r8,-0x2b(%rdi) - 43180f: 4c 89 4f dd mov %r9,-0x23(%rdi) - 431813: 4c 89 57 e5 mov %r10,-0x1b(%rdi) - 431817: 4c 89 5f ed mov %r11,-0x13(%rdi) - 43181b: 48 89 4f f5 mov %rcx,-0xb(%rdi) - 43181f: 89 57 fc mov %edx,-0x4(%rdi) - 431822: c3 retq - 431823: 0f 1f 00 nopl (%rax) - 431826: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43182d: 00 00 00 - 431830: f3 0f 6f 46 c5 movdqu -0x3b(%rsi),%xmm0 - 431835: 4c 8b 46 d5 mov -0x2b(%rsi),%r8 - 431839: 4c 8b 4e dd mov -0x23(%rsi),%r9 - 43183d: 4c 8b 56 e5 mov -0x1b(%rsi),%r10 - 431841: 4c 8b 5e ed mov -0x13(%rsi),%r11 - 431845: 48 8b 4e f5 mov -0xb(%rsi),%rcx - 431849: 8b 56 fc mov -0x4(%rsi),%edx - 43184c: f3 0f 7f 47 c5 movdqu %xmm0,-0x3b(%rdi) - 431851: 4c 89 47 d5 mov %r8,-0x2b(%rdi) - 431855: 4c 89 4f dd mov %r9,-0x23(%rdi) - 431859: 4c 89 57 e5 mov %r10,-0x1b(%rdi) - 43185d: 4c 89 5f ed mov %r11,-0x13(%rdi) - 431861: 48 89 4f f5 mov %rcx,-0xb(%rdi) - 431865: 89 57 fc mov %edx,-0x4(%rdi) - 431868: c3 retq - 431869: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 431870: f3 0f 6f 46 cd movdqu -0x33(%rsi),%xmm0 - 431875: 4c 8b 4e dd mov -0x23(%rsi),%r9 - 431879: 4c 8b 56 e5 mov -0x1b(%rsi),%r10 - 43187d: 4c 8b 5e ed mov -0x13(%rsi),%r11 - 431881: 48 8b 4e f5 mov -0xb(%rsi),%rcx - 431885: 8b 56 fc mov -0x4(%rsi),%edx - 431888: f3 0f 7f 47 cd movdqu %xmm0,-0x33(%rdi) - 43188d: 4c 89 4f dd mov %r9,-0x23(%rdi) - 431891: 4c 89 57 e5 mov %r10,-0x1b(%rdi) - 431895: 4c 89 5f ed mov %r11,-0x13(%rdi) - 431899: 48 89 4f f5 mov %rcx,-0xb(%rdi) - 43189d: 89 57 fc mov %edx,-0x4(%rdi) - 4318a0: c3 retq - 4318a1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4318a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4318ad: 00 00 00 - 4318b0: 4c 8b 46 d5 mov -0x2b(%rsi),%r8 - 4318b4: 4c 8b 4e dd mov -0x23(%rsi),%r9 - 4318b8: 4c 8b 56 e5 mov -0x1b(%rsi),%r10 - 4318bc: 4c 8b 5e ed mov -0x13(%rsi),%r11 - 4318c0: 48 8b 4e f5 mov -0xb(%rsi),%rcx - 4318c4: 8b 56 fc mov -0x4(%rsi),%edx - 4318c7: 4c 89 47 d5 mov %r8,-0x2b(%rdi) - 4318cb: 4c 89 4f dd mov %r9,-0x23(%rdi) - 4318cf: 4c 89 57 e5 mov %r10,-0x1b(%rdi) - 4318d3: 4c 89 5f ed mov %r11,-0x13(%rdi) - 4318d7: 48 89 4f f5 mov %rcx,-0xb(%rdi) - 4318db: 89 57 fc mov %edx,-0x4(%rdi) - 4318de: c3 retq - 4318df: 90 nop - 4318e0: 4c 8b 4e dd mov -0x23(%rsi),%r9 - 4318e4: 4c 8b 56 e5 mov -0x1b(%rsi),%r10 - 4318e8: 4c 8b 5e ed mov -0x13(%rsi),%r11 - 4318ec: 48 8b 4e f5 mov -0xb(%rsi),%rcx - 4318f0: 8b 56 fc mov -0x4(%rsi),%edx - 4318f3: 4c 89 4f dd mov %r9,-0x23(%rdi) - 4318f7: 4c 89 57 e5 mov %r10,-0x1b(%rdi) - 4318fb: 4c 89 5f ed mov %r11,-0x13(%rdi) - 4318ff: 48 89 4f f5 mov %rcx,-0xb(%rdi) - 431903: 89 57 fc mov %edx,-0x4(%rdi) - 431906: c3 retq - 431907: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43190e: 00 00 - 431910: 4c 8b 56 e5 mov -0x1b(%rsi),%r10 - 431914: 4c 8b 5e ed mov -0x13(%rsi),%r11 - 431918: 48 8b 4e f5 mov -0xb(%rsi),%rcx - 43191c: 8b 56 fc mov -0x4(%rsi),%edx - 43191f: 4c 89 57 e5 mov %r10,-0x1b(%rdi) - 431923: 4c 89 5f ed mov %r11,-0x13(%rdi) - 431927: 48 89 4f f5 mov %rcx,-0xb(%rdi) - 43192b: 89 57 fc mov %edx,-0x4(%rdi) - 43192e: c3 retq - 43192f: 90 nop - 431930: 4c 8b 5e ed mov -0x13(%rsi),%r11 - 431934: 48 8b 4e f5 mov -0xb(%rsi),%rcx - 431938: 8b 56 fc mov -0x4(%rsi),%edx - 43193b: 4c 89 5f ed mov %r11,-0x13(%rdi) - 43193f: 48 89 4f f5 mov %rcx,-0xb(%rdi) - 431943: 89 57 fc mov %edx,-0x4(%rdi) - 431946: c3 retq - 431947: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43194e: 00 00 - 431950: 48 8b 4e f5 mov -0xb(%rsi),%rcx - 431954: 8b 56 fc mov -0x4(%rsi),%edx - 431957: 48 89 4f f5 mov %rcx,-0xb(%rdi) - 43195b: 89 57 fc mov %edx,-0x4(%rdi) - 43195e: c3 retq - 43195f: 90 nop - 431960: 66 8b 56 fd mov -0x3(%rsi),%dx - 431964: 66 8b 4e fe mov -0x2(%rsi),%cx - 431968: 66 89 57 fd mov %dx,-0x3(%rdi) - 43196c: 66 89 4f fe mov %cx,-0x2(%rdi) - 431970: c3 retq - 431971: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 431976: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43197d: 00 00 00 - 431980: f3 0f 6f 46 b4 movdqu -0x4c(%rsi),%xmm0 - 431985: f3 0f 6f 4e c4 movdqu -0x3c(%rsi),%xmm1 - 43198a: 4c 8b 46 d4 mov -0x2c(%rsi),%r8 - 43198e: 4c 8b 4e dc mov -0x24(%rsi),%r9 - 431992: 4c 8b 56 e4 mov -0x1c(%rsi),%r10 - 431996: 4c 8b 5e ec mov -0x14(%rsi),%r11 - 43199a: 48 8b 4e f4 mov -0xc(%rsi),%rcx - 43199e: 8b 56 fc mov -0x4(%rsi),%edx - 4319a1: f3 0f 7f 47 b4 movdqu %xmm0,-0x4c(%rdi) - 4319a6: f3 0f 7f 4f c4 movdqu %xmm1,-0x3c(%rdi) - 4319ab: 4c 89 47 d4 mov %r8,-0x2c(%rdi) - 4319af: 4c 89 4f dc mov %r9,-0x24(%rdi) - 4319b3: 4c 89 57 e4 mov %r10,-0x1c(%rdi) - 4319b7: 4c 89 5f ec mov %r11,-0x14(%rdi) - 4319bb: 48 89 4f f4 mov %rcx,-0xc(%rdi) - 4319bf: 89 57 fc mov %edx,-0x4(%rdi) - 4319c2: c3 retq - 4319c3: 0f 1f 00 nopl (%rax) - 4319c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4319cd: 00 00 00 - 4319d0: f3 0f 6f 46 bc movdqu -0x44(%rsi),%xmm0 - 4319d5: f3 0f 6f 4e cc movdqu -0x34(%rsi),%xmm1 - 4319da: 4c 8b 4e dc mov -0x24(%rsi),%r9 - 4319de: 4c 8b 56 e4 mov -0x1c(%rsi),%r10 - 4319e2: 4c 8b 5e ec mov -0x14(%rsi),%r11 - 4319e6: 48 8b 4e f4 mov -0xc(%rsi),%rcx - 4319ea: 8b 56 fc mov -0x4(%rsi),%edx - 4319ed: f3 0f 7f 47 bc movdqu %xmm0,-0x44(%rdi) - 4319f2: f3 0f 7f 4f cc movdqu %xmm1,-0x34(%rdi) - 4319f7: 4c 89 4f dc mov %r9,-0x24(%rdi) - 4319fb: 4c 89 57 e4 mov %r10,-0x1c(%rdi) - 4319ff: 4c 89 5f ec mov %r11,-0x14(%rdi) - 431a03: 48 89 4f f4 mov %rcx,-0xc(%rdi) - 431a07: 89 57 fc mov %edx,-0x4(%rdi) - 431a0a: c3 retq - 431a0b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 431a10: f3 0f 6f 46 c4 movdqu -0x3c(%rsi),%xmm0 - 431a15: 4c 8b 46 d4 mov -0x2c(%rsi),%r8 - 431a19: 4c 8b 4e dc mov -0x24(%rsi),%r9 - 431a1d: 4c 8b 56 e4 mov -0x1c(%rsi),%r10 - 431a21: 4c 8b 5e ec mov -0x14(%rsi),%r11 - 431a25: 48 8b 4e f4 mov -0xc(%rsi),%rcx - 431a29: 8b 56 fc mov -0x4(%rsi),%edx - 431a2c: f3 0f 7f 47 c4 movdqu %xmm0,-0x3c(%rdi) - 431a31: 4c 89 47 d4 mov %r8,-0x2c(%rdi) - 431a35: 4c 89 4f dc mov %r9,-0x24(%rdi) - 431a39: 4c 89 57 e4 mov %r10,-0x1c(%rdi) - 431a3d: 4c 89 5f ec mov %r11,-0x14(%rdi) - 431a41: 48 89 4f f4 mov %rcx,-0xc(%rdi) - 431a45: 89 57 fc mov %edx,-0x4(%rdi) - 431a48: c3 retq - 431a49: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 431a50: f3 0f 6f 46 cc movdqu -0x34(%rsi),%xmm0 - 431a55: 4c 8b 4e dc mov -0x24(%rsi),%r9 - 431a59: 4c 8b 56 e4 mov -0x1c(%rsi),%r10 - 431a5d: 4c 8b 5e ec mov -0x14(%rsi),%r11 - 431a61: 48 8b 4e f4 mov -0xc(%rsi),%rcx - 431a65: 8b 56 fc mov -0x4(%rsi),%edx - 431a68: f3 0f 7f 47 cc movdqu %xmm0,-0x34(%rdi) - 431a6d: 4c 89 4f dc mov %r9,-0x24(%rdi) - 431a71: 4c 89 57 e4 mov %r10,-0x1c(%rdi) - 431a75: 4c 89 5f ec mov %r11,-0x14(%rdi) - 431a79: 48 89 4f f4 mov %rcx,-0xc(%rdi) - 431a7d: 89 57 fc mov %edx,-0x4(%rdi) - 431a80: c3 retq - 431a81: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 431a86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 431a8d: 00 00 00 - 431a90: 4c 8b 46 d4 mov -0x2c(%rsi),%r8 - 431a94: 4c 8b 4e dc mov -0x24(%rsi),%r9 - 431a98: 4c 8b 56 e4 mov -0x1c(%rsi),%r10 - 431a9c: 4c 8b 5e ec mov -0x14(%rsi),%r11 - 431aa0: 48 8b 4e f4 mov -0xc(%rsi),%rcx - 431aa4: 8b 56 fc mov -0x4(%rsi),%edx - 431aa7: 4c 89 47 d4 mov %r8,-0x2c(%rdi) - 431aab: 4c 89 4f dc mov %r9,-0x24(%rdi) - 431aaf: 4c 89 57 e4 mov %r10,-0x1c(%rdi) - 431ab3: 4c 89 5f ec mov %r11,-0x14(%rdi) - 431ab7: 48 89 4f f4 mov %rcx,-0xc(%rdi) - 431abb: 89 57 fc mov %edx,-0x4(%rdi) - 431abe: c3 retq - 431abf: 90 nop - 431ac0: 4c 8b 4e dc mov -0x24(%rsi),%r9 - 431ac4: 4c 8b 56 e4 mov -0x1c(%rsi),%r10 - 431ac8: 4c 8b 5e ec mov -0x14(%rsi),%r11 - 431acc: 48 8b 4e f4 mov -0xc(%rsi),%rcx - 431ad0: 8b 56 fc mov -0x4(%rsi),%edx - 431ad3: 4c 89 4f dc mov %r9,-0x24(%rdi) - 431ad7: 4c 89 57 e4 mov %r10,-0x1c(%rdi) - 431adb: 4c 89 5f ec mov %r11,-0x14(%rdi) - 431adf: 48 89 4f f4 mov %rcx,-0xc(%rdi) - 431ae3: 89 57 fc mov %edx,-0x4(%rdi) - 431ae6: c3 retq - 431ae7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 431aee: 00 00 - 431af0: 4c 8b 56 e4 mov -0x1c(%rsi),%r10 - 431af4: 4c 8b 5e ec mov -0x14(%rsi),%r11 - 431af8: 48 8b 4e f4 mov -0xc(%rsi),%rcx - 431afc: 8b 56 fc mov -0x4(%rsi),%edx - 431aff: 4c 89 57 e4 mov %r10,-0x1c(%rdi) - 431b03: 4c 89 5f ec mov %r11,-0x14(%rdi) - 431b07: 48 89 4f f4 mov %rcx,-0xc(%rdi) - 431b0b: 89 57 fc mov %edx,-0x4(%rdi) - 431b0e: c3 retq - 431b0f: 90 nop - 431b10: 4c 8b 5e ec mov -0x14(%rsi),%r11 - 431b14: 48 8b 4e f4 mov -0xc(%rsi),%rcx - 431b18: 8b 56 fc mov -0x4(%rsi),%edx - 431b1b: 4c 89 5f ec mov %r11,-0x14(%rdi) - 431b1f: 48 89 4f f4 mov %rcx,-0xc(%rdi) - 431b23: 89 57 fc mov %edx,-0x4(%rdi) - 431b26: c3 retq - 431b27: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 431b2e: 00 00 - 431b30: 48 8b 4e f4 mov -0xc(%rsi),%rcx - 431b34: 8b 56 fc mov -0x4(%rsi),%edx - 431b37: 48 89 4f f4 mov %rcx,-0xc(%rdi) - 431b3b: 89 57 fc mov %edx,-0x4(%rdi) - 431b3e: c3 retq - 431b3f: 90 nop - 431b40: 8b 56 fc mov -0x4(%rsi),%edx - 431b43: 89 57 fc mov %edx,-0x4(%rdi) - 431b46: c3 retq - 431b47: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 431b4e: 00 00 - 431b50: f3 0f 6f 46 b3 movdqu -0x4d(%rsi),%xmm0 - 431b55: f3 0f 6f 4e c3 movdqu -0x3d(%rsi),%xmm1 - 431b5a: 4c 8b 46 d3 mov -0x2d(%rsi),%r8 - 431b5e: 4c 8b 4e db mov -0x25(%rsi),%r9 - 431b62: 4c 8b 56 e3 mov -0x1d(%rsi),%r10 - 431b66: 4c 8b 5e eb mov -0x15(%rsi),%r11 - 431b6a: 48 8b 4e f3 mov -0xd(%rsi),%rcx - 431b6e: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431b72: f3 0f 7f 47 b3 movdqu %xmm0,-0x4d(%rdi) - 431b77: f3 0f 7f 4f c3 movdqu %xmm1,-0x3d(%rdi) - 431b7c: 4c 89 47 d3 mov %r8,-0x2d(%rdi) - 431b80: 4c 89 4f db mov %r9,-0x25(%rdi) - 431b84: 4c 89 57 e3 mov %r10,-0x1d(%rdi) - 431b88: 4c 89 5f eb mov %r11,-0x15(%rdi) - 431b8c: 48 89 4f f3 mov %rcx,-0xd(%rdi) - 431b90: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431b94: c3 retq - 431b95: 90 nop - 431b96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 431b9d: 00 00 00 - 431ba0: f3 0f 6f 46 bb movdqu -0x45(%rsi),%xmm0 - 431ba5: f3 0f 6f 4e cb movdqu -0x35(%rsi),%xmm1 - 431baa: 4c 8b 4e db mov -0x25(%rsi),%r9 - 431bae: 4c 8b 56 e3 mov -0x1d(%rsi),%r10 - 431bb2: 4c 8b 5e eb mov -0x15(%rsi),%r11 - 431bb6: 48 8b 4e f3 mov -0xd(%rsi),%rcx - 431bba: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431bbe: f3 0f 7f 47 bb movdqu %xmm0,-0x45(%rdi) - 431bc3: f3 0f 7f 4f cb movdqu %xmm1,-0x35(%rdi) - 431bc8: 4c 89 4f db mov %r9,-0x25(%rdi) - 431bcc: 4c 89 57 e3 mov %r10,-0x1d(%rdi) - 431bd0: 4c 89 5f eb mov %r11,-0x15(%rdi) - 431bd4: 48 89 4f f3 mov %rcx,-0xd(%rdi) - 431bd8: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431bdc: c3 retq - 431bdd: 0f 1f 00 nopl (%rax) - 431be0: f3 0f 6f 46 c3 movdqu -0x3d(%rsi),%xmm0 - 431be5: 4c 8b 46 d3 mov -0x2d(%rsi),%r8 - 431be9: 4c 8b 4e db mov -0x25(%rsi),%r9 - 431bed: 4c 8b 56 e3 mov -0x1d(%rsi),%r10 - 431bf1: 4c 8b 5e eb mov -0x15(%rsi),%r11 - 431bf5: 48 8b 4e f3 mov -0xd(%rsi),%rcx - 431bf9: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431bfd: f3 0f 7f 47 c3 movdqu %xmm0,-0x3d(%rdi) - 431c02: 4c 89 47 d3 mov %r8,-0x2d(%rdi) - 431c06: 4c 89 4f db mov %r9,-0x25(%rdi) - 431c0a: 4c 89 57 e3 mov %r10,-0x1d(%rdi) - 431c0e: 4c 89 5f eb mov %r11,-0x15(%rdi) - 431c12: 48 89 4f f3 mov %rcx,-0xd(%rdi) - 431c16: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431c1a: c3 retq - 431c1b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 431c20: f3 0f 6f 46 cb movdqu -0x35(%rsi),%xmm0 - 431c25: 4c 8b 46 d3 mov -0x2d(%rsi),%r8 - 431c29: 4c 8b 4e db mov -0x25(%rsi),%r9 - 431c2d: 4c 8b 56 e3 mov -0x1d(%rsi),%r10 - 431c31: 4c 8b 5e eb mov -0x15(%rsi),%r11 - 431c35: 48 8b 4e f3 mov -0xd(%rsi),%rcx - 431c39: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431c3d: f3 0f 7f 47 cb movdqu %xmm0,-0x35(%rdi) - 431c42: 4c 89 4f db mov %r9,-0x25(%rdi) - 431c46: 4c 89 57 e3 mov %r10,-0x1d(%rdi) - 431c4a: 4c 89 5f eb mov %r11,-0x15(%rdi) - 431c4e: 48 89 4f f3 mov %rcx,-0xd(%rdi) - 431c52: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431c56: c3 retq - 431c57: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 431c5e: 00 00 - 431c60: 4c 8b 46 d3 mov -0x2d(%rsi),%r8 - 431c64: 4c 8b 4e db mov -0x25(%rsi),%r9 - 431c68: 4c 8b 56 e3 mov -0x1d(%rsi),%r10 - 431c6c: 4c 8b 5e eb mov -0x15(%rsi),%r11 - 431c70: 48 8b 4e f3 mov -0xd(%rsi),%rcx - 431c74: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431c78: 4c 89 47 d3 mov %r8,-0x2d(%rdi) - 431c7c: 4c 89 4f db mov %r9,-0x25(%rdi) - 431c80: 4c 89 57 e3 mov %r10,-0x1d(%rdi) - 431c84: 4c 89 5f eb mov %r11,-0x15(%rdi) - 431c88: 48 89 4f f3 mov %rcx,-0xd(%rdi) - 431c8c: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431c90: c3 retq - 431c91: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 431c96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 431c9d: 00 00 00 - 431ca0: 4c 8b 4e db mov -0x25(%rsi),%r9 - 431ca4: 4c 8b 56 e3 mov -0x1d(%rsi),%r10 - 431ca8: 4c 8b 5e eb mov -0x15(%rsi),%r11 - 431cac: 48 8b 4e f3 mov -0xd(%rsi),%rcx - 431cb0: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431cb4: 4c 89 4f db mov %r9,-0x25(%rdi) - 431cb8: 4c 89 57 e3 mov %r10,-0x1d(%rdi) - 431cbc: 4c 89 5f eb mov %r11,-0x15(%rdi) - 431cc0: 48 89 4f f3 mov %rcx,-0xd(%rdi) - 431cc4: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431cc8: c3 retq - 431cc9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 431cd0: 4c 8b 56 e3 mov -0x1d(%rsi),%r10 - 431cd4: 4c 8b 5e eb mov -0x15(%rsi),%r11 - 431cd8: 48 8b 4e f3 mov -0xd(%rsi),%rcx - 431cdc: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431ce0: 4c 89 57 e3 mov %r10,-0x1d(%rdi) - 431ce4: 4c 89 5f eb mov %r11,-0x15(%rdi) - 431ce8: 48 89 4f f3 mov %rcx,-0xd(%rdi) - 431cec: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431cf0: c3 retq - 431cf1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 431cf6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 431cfd: 00 00 00 - 431d00: 4c 8b 5e eb mov -0x15(%rsi),%r11 - 431d04: 48 8b 4e f3 mov -0xd(%rsi),%rcx - 431d08: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431d0c: 4c 89 5f eb mov %r11,-0x15(%rdi) - 431d10: 48 89 4f f3 mov %rcx,-0xd(%rdi) - 431d14: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431d18: c3 retq - 431d19: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 431d20: 48 8b 4e f3 mov -0xd(%rsi),%rcx - 431d24: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431d28: 48 89 4f f3 mov %rcx,-0xd(%rdi) - 431d2c: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431d30: c3 retq - 431d31: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 431d36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 431d3d: 00 00 00 - 431d40: 8b 56 fb mov -0x5(%rsi),%edx - 431d43: 8b 4e fc mov -0x4(%rsi),%ecx - 431d46: 89 57 fb mov %edx,-0x5(%rdi) - 431d49: 89 4f fc mov %ecx,-0x4(%rdi) - 431d4c: c3 retq - 431d4d: 0f 1f 00 nopl (%rax) - 431d50: f3 0f 6f 46 b2 movdqu -0x4e(%rsi),%xmm0 - 431d55: f3 0f 6f 4e c2 movdqu -0x3e(%rsi),%xmm1 - 431d5a: 4c 8b 46 d2 mov -0x2e(%rsi),%r8 - 431d5e: 4c 8b 4e da mov -0x26(%rsi),%r9 - 431d62: 4c 8b 56 e2 mov -0x1e(%rsi),%r10 - 431d66: 4c 8b 5e ea mov -0x16(%rsi),%r11 - 431d6a: 48 8b 4e f2 mov -0xe(%rsi),%rcx - 431d6e: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431d72: f3 0f 7f 47 b2 movdqu %xmm0,-0x4e(%rdi) - 431d77: f3 0f 7f 4f c2 movdqu %xmm1,-0x3e(%rdi) - 431d7c: 4c 89 47 d2 mov %r8,-0x2e(%rdi) - 431d80: 4c 89 4f da mov %r9,-0x26(%rdi) - 431d84: 4c 89 57 e2 mov %r10,-0x1e(%rdi) - 431d88: 4c 89 5f ea mov %r11,-0x16(%rdi) - 431d8c: 48 89 4f f2 mov %rcx,-0xe(%rdi) - 431d90: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431d94: c3 retq - 431d95: 90 nop - 431d96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 431d9d: 00 00 00 - 431da0: f3 0f 6f 46 ba movdqu -0x46(%rsi),%xmm0 - 431da5: f3 0f 6f 4e ca movdqu -0x36(%rsi),%xmm1 - 431daa: 4c 8b 4e da mov -0x26(%rsi),%r9 - 431dae: 4c 8b 56 e2 mov -0x1e(%rsi),%r10 - 431db2: 4c 8b 5e ea mov -0x16(%rsi),%r11 - 431db6: 48 8b 4e f2 mov -0xe(%rsi),%rcx - 431dba: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431dbe: f3 0f 7f 47 ba movdqu %xmm0,-0x46(%rdi) - 431dc3: f3 0f 7f 4f ca movdqu %xmm1,-0x36(%rdi) - 431dc8: 4c 89 4f da mov %r9,-0x26(%rdi) - 431dcc: 4c 89 57 e2 mov %r10,-0x1e(%rdi) - 431dd0: 4c 89 5f ea mov %r11,-0x16(%rdi) - 431dd4: 48 89 4f f2 mov %rcx,-0xe(%rdi) - 431dd8: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431ddc: c3 retq - 431ddd: 0f 1f 00 nopl (%rax) - 431de0: f3 0f 6f 46 c2 movdqu -0x3e(%rsi),%xmm0 - 431de5: 4c 8b 46 d2 mov -0x2e(%rsi),%r8 - 431de9: 4c 8b 4e da mov -0x26(%rsi),%r9 - 431ded: 4c 8b 56 e2 mov -0x1e(%rsi),%r10 - 431df1: 4c 8b 5e ea mov -0x16(%rsi),%r11 - 431df5: 48 8b 4e f2 mov -0xe(%rsi),%rcx - 431df9: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431dfd: f3 0f 7f 47 c2 movdqu %xmm0,-0x3e(%rdi) - 431e02: 4c 89 47 d2 mov %r8,-0x2e(%rdi) - 431e06: 4c 89 4f da mov %r9,-0x26(%rdi) - 431e0a: 4c 89 57 e2 mov %r10,-0x1e(%rdi) - 431e0e: 4c 89 5f ea mov %r11,-0x16(%rdi) - 431e12: 48 89 4f f2 mov %rcx,-0xe(%rdi) - 431e16: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431e1a: c3 retq - 431e1b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 431e20: f3 0f 6f 46 ca movdqu -0x36(%rsi),%xmm0 - 431e25: 4c 8b 4e da mov -0x26(%rsi),%r9 - 431e29: 4c 8b 56 e2 mov -0x1e(%rsi),%r10 - 431e2d: 4c 8b 5e ea mov -0x16(%rsi),%r11 - 431e31: 48 8b 4e f2 mov -0xe(%rsi),%rcx - 431e35: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431e39: f3 0f 7f 47 ca movdqu %xmm0,-0x36(%rdi) - 431e3e: 4c 89 4f da mov %r9,-0x26(%rdi) - 431e42: 4c 89 57 e2 mov %r10,-0x1e(%rdi) - 431e46: 4c 89 5f ea mov %r11,-0x16(%rdi) - 431e4a: 48 89 4f f2 mov %rcx,-0xe(%rdi) - 431e4e: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431e52: c3 retq - 431e53: 0f 1f 00 nopl (%rax) - 431e56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 431e5d: 00 00 00 - 431e60: 4c 8b 46 d2 mov -0x2e(%rsi),%r8 - 431e64: 4c 8b 4e da mov -0x26(%rsi),%r9 - 431e68: 4c 8b 56 e2 mov -0x1e(%rsi),%r10 - 431e6c: 4c 8b 5e ea mov -0x16(%rsi),%r11 - 431e70: 48 8b 4e f2 mov -0xe(%rsi),%rcx - 431e74: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431e78: 4c 89 47 d2 mov %r8,-0x2e(%rdi) - 431e7c: 4c 89 4f da mov %r9,-0x26(%rdi) - 431e80: 4c 89 57 e2 mov %r10,-0x1e(%rdi) - 431e84: 4c 89 5f ea mov %r11,-0x16(%rdi) - 431e88: 48 89 4f f2 mov %rcx,-0xe(%rdi) - 431e8c: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431e90: c3 retq - 431e91: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 431e96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 431e9d: 00 00 00 - 431ea0: 4c 8b 4e da mov -0x26(%rsi),%r9 - 431ea4: 4c 8b 56 e2 mov -0x1e(%rsi),%r10 - 431ea8: 4c 8b 5e ea mov -0x16(%rsi),%r11 - 431eac: 48 8b 4e f2 mov -0xe(%rsi),%rcx - 431eb0: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431eb4: 4c 89 4f da mov %r9,-0x26(%rdi) - 431eb8: 4c 89 57 e2 mov %r10,-0x1e(%rdi) - 431ebc: 4c 89 5f ea mov %r11,-0x16(%rdi) - 431ec0: 48 89 4f f2 mov %rcx,-0xe(%rdi) - 431ec4: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431ec8: c3 retq - 431ec9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 431ed0: 4c 8b 56 e2 mov -0x1e(%rsi),%r10 - 431ed4: 4c 8b 5e ea mov -0x16(%rsi),%r11 - 431ed8: 48 8b 4e f2 mov -0xe(%rsi),%rcx - 431edc: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431ee0: 4c 89 57 e2 mov %r10,-0x1e(%rdi) - 431ee4: 4c 89 5f ea mov %r11,-0x16(%rdi) - 431ee8: 48 89 4f f2 mov %rcx,-0xe(%rdi) - 431eec: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431ef0: c3 retq - 431ef1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 431ef6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 431efd: 00 00 00 - 431f00: 4c 8b 5e ea mov -0x16(%rsi),%r11 - 431f04: 48 8b 4e f2 mov -0xe(%rsi),%rcx - 431f08: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431f0c: 4c 89 5f ea mov %r11,-0x16(%rdi) - 431f10: 48 89 4f f2 mov %rcx,-0xe(%rdi) - 431f14: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431f18: c3 retq - 431f19: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 431f20: 48 8b 4e f2 mov -0xe(%rsi),%rcx - 431f24: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431f28: 48 89 4f f2 mov %rcx,-0xe(%rdi) - 431f2c: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431f30: c3 retq - 431f31: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 431f36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 431f3d: 00 00 00 - 431f40: 8b 56 fa mov -0x6(%rsi),%edx - 431f43: 8b 4e fc mov -0x4(%rsi),%ecx - 431f46: 89 57 fa mov %edx,-0x6(%rdi) - 431f49: 89 4f fc mov %ecx,-0x4(%rdi) - 431f4c: c3 retq - 431f4d: 0f 1f 00 nopl (%rax) - 431f50: f3 0f 6f 46 b1 movdqu -0x4f(%rsi),%xmm0 - 431f55: f3 0f 6f 4e c1 movdqu -0x3f(%rsi),%xmm1 - 431f5a: 4c 8b 46 d1 mov -0x2f(%rsi),%r8 - 431f5e: 4c 8b 4e d9 mov -0x27(%rsi),%r9 - 431f62: 4c 8b 56 e1 mov -0x1f(%rsi),%r10 - 431f66: 4c 8b 5e e9 mov -0x17(%rsi),%r11 - 431f6a: 48 8b 4e f1 mov -0xf(%rsi),%rcx - 431f6e: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431f72: f3 0f 7f 47 b1 movdqu %xmm0,-0x4f(%rdi) - 431f77: f3 0f 7f 4f c1 movdqu %xmm1,-0x3f(%rdi) - 431f7c: 4c 89 47 d1 mov %r8,-0x2f(%rdi) - 431f80: 4c 89 4f d9 mov %r9,-0x27(%rdi) - 431f84: 4c 89 57 e1 mov %r10,-0x1f(%rdi) - 431f88: 4c 89 5f e9 mov %r11,-0x17(%rdi) - 431f8c: 48 89 4f f1 mov %rcx,-0xf(%rdi) - 431f90: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431f94: c3 retq - 431f95: 90 nop - 431f96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 431f9d: 00 00 00 - 431fa0: f3 0f 6f 46 b9 movdqu -0x47(%rsi),%xmm0 - 431fa5: f3 0f 6f 4e c9 movdqu -0x37(%rsi),%xmm1 - 431faa: 4c 8b 4e d9 mov -0x27(%rsi),%r9 - 431fae: 4c 8b 56 e1 mov -0x1f(%rsi),%r10 - 431fb2: 4c 8b 5e e9 mov -0x17(%rsi),%r11 - 431fb6: 48 8b 4e f1 mov -0xf(%rsi),%rcx - 431fba: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431fbe: f3 0f 7f 47 b9 movdqu %xmm0,-0x47(%rdi) - 431fc3: f3 0f 7f 4f c9 movdqu %xmm1,-0x37(%rdi) - 431fc8: 4c 89 4f d9 mov %r9,-0x27(%rdi) - 431fcc: 4c 89 57 e1 mov %r10,-0x1f(%rdi) - 431fd0: 4c 89 5f e9 mov %r11,-0x17(%rdi) - 431fd4: 48 89 4f f1 mov %rcx,-0xf(%rdi) - 431fd8: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 431fdc: c3 retq - 431fdd: 0f 1f 00 nopl (%rax) - 431fe0: f3 0f 6f 46 c1 movdqu -0x3f(%rsi),%xmm0 - 431fe5: 4c 8b 46 d1 mov -0x2f(%rsi),%r8 - 431fe9: 4c 8b 4e d9 mov -0x27(%rsi),%r9 - 431fed: 4c 8b 56 e1 mov -0x1f(%rsi),%r10 - 431ff1: 4c 8b 5e e9 mov -0x17(%rsi),%r11 - 431ff5: 48 8b 4e f1 mov -0xf(%rsi),%rcx - 431ff9: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 431ffd: f3 0f 7f 47 c1 movdqu %xmm0,-0x3f(%rdi) - 432002: 4c 89 47 d1 mov %r8,-0x2f(%rdi) - 432006: 4c 89 4f d9 mov %r9,-0x27(%rdi) - 43200a: 4c 89 57 e1 mov %r10,-0x1f(%rdi) - 43200e: 4c 89 5f e9 mov %r11,-0x17(%rdi) - 432012: 48 89 4f f1 mov %rcx,-0xf(%rdi) - 432016: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 43201a: c3 retq - 43201b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 432020: f3 0f 6f 46 c9 movdqu -0x37(%rsi),%xmm0 - 432025: 4c 8b 4e d9 mov -0x27(%rsi),%r9 - 432029: 4c 8b 56 e1 mov -0x1f(%rsi),%r10 - 43202d: 4c 8b 5e e9 mov -0x17(%rsi),%r11 - 432031: 48 8b 4e f1 mov -0xf(%rsi),%rcx - 432035: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 432039: f3 0f 7f 47 c9 movdqu %xmm0,-0x37(%rdi) - 43203e: 4c 89 4f d9 mov %r9,-0x27(%rdi) - 432042: 4c 89 57 e1 mov %r10,-0x1f(%rdi) - 432046: 4c 89 5f e9 mov %r11,-0x17(%rdi) - 43204a: 48 89 4f f1 mov %rcx,-0xf(%rdi) - 43204e: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 432052: c3 retq - 432053: 0f 1f 00 nopl (%rax) - 432056: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43205d: 00 00 00 - 432060: 4c 8b 46 d1 mov -0x2f(%rsi),%r8 - 432064: 4c 8b 4e d9 mov -0x27(%rsi),%r9 - 432068: 4c 8b 56 e1 mov -0x1f(%rsi),%r10 - 43206c: 4c 8b 5e e9 mov -0x17(%rsi),%r11 - 432070: 48 8b 4e f1 mov -0xf(%rsi),%rcx - 432074: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 432078: 4c 89 47 d1 mov %r8,-0x2f(%rdi) - 43207c: 4c 89 4f d9 mov %r9,-0x27(%rdi) - 432080: 4c 89 57 e1 mov %r10,-0x1f(%rdi) - 432084: 4c 89 5f e9 mov %r11,-0x17(%rdi) - 432088: 48 89 4f f1 mov %rcx,-0xf(%rdi) - 43208c: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 432090: c3 retq - 432091: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 432096: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43209d: 00 00 00 - 4320a0: 4c 8b 4e d9 mov -0x27(%rsi),%r9 - 4320a4: 4c 8b 56 e1 mov -0x1f(%rsi),%r10 - 4320a8: 4c 8b 5e e9 mov -0x17(%rsi),%r11 - 4320ac: 48 8b 4e f1 mov -0xf(%rsi),%rcx - 4320b0: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 4320b4: 4c 89 4f d9 mov %r9,-0x27(%rdi) - 4320b8: 4c 89 57 e1 mov %r10,-0x1f(%rdi) - 4320bc: 4c 89 5f e9 mov %r11,-0x17(%rdi) - 4320c0: 48 89 4f f1 mov %rcx,-0xf(%rdi) - 4320c4: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 4320c8: c3 retq - 4320c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4320d0: 4c 8b 56 e1 mov -0x1f(%rsi),%r10 - 4320d4: 4c 8b 5e e9 mov -0x17(%rsi),%r11 - 4320d8: 48 8b 4e f1 mov -0xf(%rsi),%rcx - 4320dc: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 4320e0: 4c 89 57 e1 mov %r10,-0x1f(%rdi) - 4320e4: 4c 89 5f e9 mov %r11,-0x17(%rdi) - 4320e8: 48 89 4f f1 mov %rcx,-0xf(%rdi) - 4320ec: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 4320f0: c3 retq - 4320f1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4320f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4320fd: 00 00 00 - 432100: 4c 8b 5e e9 mov -0x17(%rsi),%r11 - 432104: 48 8b 4e f1 mov -0xf(%rsi),%rcx - 432108: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 43210c: 4c 89 5f e9 mov %r11,-0x17(%rdi) - 432110: 48 89 4f f1 mov %rcx,-0xf(%rdi) - 432114: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 432118: c3 retq - 432119: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 432120: 48 8b 4e f1 mov -0xf(%rsi),%rcx - 432124: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 432128: 48 89 4f f1 mov %rcx,-0xf(%rdi) - 43212c: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 432130: c3 retq - 432131: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 432136: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43213d: 00 00 00 - 432140: 8b 56 f9 mov -0x7(%rsi),%edx - 432143: 8b 4e fc mov -0x4(%rsi),%ecx - 432146: 89 57 f9 mov %edx,-0x7(%rdi) - 432149: 89 4f fc mov %ecx,-0x4(%rdi) - 43214c: c3 retq - 43214d: 0f 1f 00 nopl (%rax) - 432150: f3 0f 6f 0e movdqu (%rsi),%xmm1 - 432154: 48 8d 76 10 lea 0x10(%rsi),%rsi - 432158: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 43215d: 66 0f e7 0f movntdq %xmm1,(%rdi) - 432161: 48 8d 7f 10 lea 0x10(%rdi),%rdi - 432165: 48 8d 92 70 ff ff ff lea -0x90(%rdx),%rdx - 43216c: 49 89 f1 mov %rsi,%r9 - 43216f: 49 29 f9 sub %rdi,%r9 - 432172: 49 39 d1 cmp %rdx,%r9 - 432175: 73 0d jae 432184 <__memmove_ssse3+0x2834> - 432177: 48 c1 e1 02 shl $0x2,%rcx - 43217b: 48 39 ca cmp %rcx,%rdx - 43217e: 0f 82 cc 00 00 00 jb 432250 <__memmove_ssse3+0x2900> - 432184: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 432188: f3 0f 6f 4e 10 movdqu 0x10(%rsi),%xmm1 - 43218d: f3 0f 6f 56 20 movdqu 0x20(%rsi),%xmm2 - 432192: f3 0f 6f 5e 30 movdqu 0x30(%rsi),%xmm3 - 432197: f3 0f 6f 66 40 movdqu 0x40(%rsi),%xmm4 - 43219c: f3 0f 6f 6e 50 movdqu 0x50(%rsi),%xmm5 - 4321a1: f3 0f 6f 76 60 movdqu 0x60(%rsi),%xmm6 - 4321a6: f3 0f 6f 7e 70 movdqu 0x70(%rsi),%xmm7 - 4321ab: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 4321b2: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 4321b9: 66 0f e7 07 movntdq %xmm0,(%rdi) - 4321bd: 66 0f e7 4f 10 movntdq %xmm1,0x10(%rdi) - 4321c2: 66 0f e7 57 20 movntdq %xmm2,0x20(%rdi) - 4321c7: 66 0f e7 5f 30 movntdq %xmm3,0x30(%rdi) - 4321cc: 66 0f e7 67 40 movntdq %xmm4,0x40(%rdi) - 4321d1: 66 0f e7 6f 50 movntdq %xmm5,0x50(%rdi) - 4321d6: 66 0f e7 77 60 movntdq %xmm6,0x60(%rdi) - 4321db: 66 0f e7 7f 70 movntdq %xmm7,0x70(%rdi) - 4321e0: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 4321e7: 73 9b jae 432184 <__memmove_ssse3+0x2834> - 4321e9: 48 83 fa c0 cmp $0xffffffffffffffc0,%rdx - 4321ed: 48 8d 92 80 00 00 00 lea 0x80(%rdx),%rdx - 4321f4: 7c 32 jl 432228 <__memmove_ssse3+0x28d8> - 4321f6: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 4321fa: f3 0f 6f 4e 10 movdqu 0x10(%rsi),%xmm1 - 4321ff: f3 0f 6f 56 20 movdqu 0x20(%rsi),%xmm2 - 432204: f3 0f 6f 5e 30 movdqu 0x30(%rsi),%xmm3 - 432209: 48 8d 76 40 lea 0x40(%rsi),%rsi - 43220d: 66 0f e7 07 movntdq %xmm0,(%rdi) - 432211: 66 0f e7 4f 10 movntdq %xmm1,0x10(%rdi) - 432216: 66 0f e7 57 20 movntdq %xmm2,0x20(%rdi) - 43221b: 66 0f e7 5f 30 movntdq %xmm3,0x30(%rdi) - 432220: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 432224: 48 83 ea 40 sub $0x40,%rdx - 432228: 48 01 d6 add %rdx,%rsi - 43222b: 48 01 d7 add %rdx,%rdi - 43222e: 0f ae f8 sfence - 432231: 4c 8d 1d 78 11 07 00 lea 0x71178(%rip),%r11 # 4a33b0 - 432238: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43223c: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 432240: ff e2 jmpq *%rdx - 432242: 0f 0b ud2 - 432244: 66 90 xchg %ax,%ax - 432246: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43224d: 00 00 00 - 432250: 0f 18 8e c0 01 00 00 prefetcht0 0x1c0(%rsi) - 432257: 0f 18 8e 00 02 00 00 prefetcht0 0x200(%rsi) - 43225e: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 432262: f3 0f 6f 4e 10 movdqu 0x10(%rsi),%xmm1 - 432267: f3 0f 6f 56 20 movdqu 0x20(%rsi),%xmm2 - 43226c: f3 0f 6f 5e 30 movdqu 0x30(%rsi),%xmm3 - 432271: f3 0f 6f 66 40 movdqu 0x40(%rsi),%xmm4 - 432276: f3 0f 6f 6e 50 movdqu 0x50(%rsi),%xmm5 - 43227b: f3 0f 6f 76 60 movdqu 0x60(%rsi),%xmm6 - 432280: f3 0f 6f 7e 70 movdqu 0x70(%rsi),%xmm7 - 432285: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 43228c: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 432293: 0f 29 07 movaps %xmm0,(%rdi) - 432296: 0f 29 4f 10 movaps %xmm1,0x10(%rdi) - 43229a: 0f 29 57 20 movaps %xmm2,0x20(%rdi) - 43229e: 0f 29 5f 30 movaps %xmm3,0x30(%rdi) - 4322a2: 0f 29 67 40 movaps %xmm4,0x40(%rdi) - 4322a6: 0f 29 6f 50 movaps %xmm5,0x50(%rdi) - 4322aa: 0f 29 77 60 movaps %xmm6,0x60(%rdi) - 4322ae: 0f 29 7f 70 movaps %xmm7,0x70(%rdi) - 4322b2: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 4322b9: 73 95 jae 432250 <__memmove_ssse3+0x2900> - 4322bb: 48 83 fa c0 cmp $0xffffffffffffffc0,%rdx - 4322bf: 48 8d 92 80 00 00 00 lea 0x80(%rdx),%rdx - 4322c6: 7c 2e jl 4322f6 <__memmove_ssse3+0x29a6> - 4322c8: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 4322cc: f3 0f 6f 4e 10 movdqu 0x10(%rsi),%xmm1 - 4322d1: f3 0f 6f 56 20 movdqu 0x20(%rsi),%xmm2 - 4322d6: f3 0f 6f 5e 30 movdqu 0x30(%rsi),%xmm3 - 4322db: 48 8d 76 40 lea 0x40(%rsi),%rsi - 4322df: 0f 29 07 movaps %xmm0,(%rdi) - 4322e2: 0f 29 4f 10 movaps %xmm1,0x10(%rdi) - 4322e6: 0f 29 57 20 movaps %xmm2,0x20(%rdi) - 4322ea: 0f 29 5f 30 movaps %xmm3,0x30(%rdi) - 4322ee: 48 8d 7f 40 lea 0x40(%rdi),%rdi - 4322f2: 48 83 ea 40 sub $0x40,%rdx - 4322f6: 48 01 d6 add %rdx,%rsi - 4322f9: 48 01 d7 add %rdx,%rdi - 4322fc: 4c 8d 1d ad 10 07 00 lea 0x710ad(%rip),%r11 # 4a33b0 - 432303: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 432307: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 43230b: ff e2 jmpq *%rdx - 43230d: 0f 0b ud2 - 43230f: 90 nop - 432310: f3 0f 6f 4e f0 movdqu -0x10(%rsi),%xmm1 - 432315: 48 8d 76 f0 lea -0x10(%rsi),%rsi - 432319: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 43231e: 66 0f 7f 4f f0 movdqa %xmm1,-0x10(%rdi) - 432323: 48 8d 7f f0 lea -0x10(%rdi),%rdi - 432327: 48 8d 92 70 ff ff ff lea -0x90(%rdx),%rdx - 43232e: 49 89 f9 mov %rdi,%r9 - 432331: 49 29 f1 sub %rsi,%r9 - 432334: 49 39 d1 cmp %rdx,%r9 - 432337: 73 09 jae 432342 <__memmove_ssse3+0x29f2> - 432339: 49 39 c9 cmp %rcx,%r9 - 43233c: 0f 82 be 00 00 00 jb 432400 <__memmove_ssse3+0x2ab0> - 432342: f3 0f 6f 46 f0 movdqu -0x10(%rsi),%xmm0 - 432347: f3 0f 6f 4e e0 movdqu -0x20(%rsi),%xmm1 - 43234c: f3 0f 6f 56 d0 movdqu -0x30(%rsi),%xmm2 - 432351: f3 0f 6f 5e c0 movdqu -0x40(%rsi),%xmm3 - 432356: f3 0f 6f 66 b0 movdqu -0x50(%rsi),%xmm4 - 43235b: f3 0f 6f 6e a0 movdqu -0x60(%rsi),%xmm5 - 432360: f3 0f 6f 76 90 movdqu -0x70(%rsi),%xmm6 - 432365: f3 0f 6f 7e 80 movdqu -0x80(%rsi),%xmm7 - 43236a: 48 8d 76 80 lea -0x80(%rsi),%rsi - 43236e: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 432375: 66 0f e7 47 f0 movntdq %xmm0,-0x10(%rdi) - 43237a: 66 0f e7 4f e0 movntdq %xmm1,-0x20(%rdi) - 43237f: 66 0f e7 57 d0 movntdq %xmm2,-0x30(%rdi) - 432384: 66 0f e7 5f c0 movntdq %xmm3,-0x40(%rdi) - 432389: 66 0f e7 67 b0 movntdq %xmm4,-0x50(%rdi) - 43238e: 66 0f e7 6f a0 movntdq %xmm5,-0x60(%rdi) - 432393: 66 0f e7 77 90 movntdq %xmm6,-0x70(%rdi) - 432398: 66 0f e7 7f 80 movntdq %xmm7,-0x80(%rdi) - 43239d: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 4323a1: 73 9f jae 432342 <__memmove_ssse3+0x29f2> - 4323a3: 48 83 fa c0 cmp $0xffffffffffffffc0,%rdx - 4323a7: 48 8d 92 80 00 00 00 lea 0x80(%rdx),%rdx - 4323ae: 7c 34 jl 4323e4 <__memmove_ssse3+0x2a94> - 4323b0: f3 0f 6f 46 f0 movdqu -0x10(%rsi),%xmm0 - 4323b5: f3 0f 6f 4e e0 movdqu -0x20(%rsi),%xmm1 - 4323ba: f3 0f 6f 56 d0 movdqu -0x30(%rsi),%xmm2 - 4323bf: f3 0f 6f 5e c0 movdqu -0x40(%rsi),%xmm3 - 4323c4: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 4323c8: 66 0f e7 47 f0 movntdq %xmm0,-0x10(%rdi) - 4323cd: 66 0f e7 4f e0 movntdq %xmm1,-0x20(%rdi) - 4323d2: 66 0f e7 57 d0 movntdq %xmm2,-0x30(%rdi) - 4323d7: 66 0f e7 5f c0 movntdq %xmm3,-0x40(%rdi) - 4323dc: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 4323e0: 48 83 ea 40 sub $0x40,%rdx - 4323e4: 0f ae f8 sfence - 4323e7: 4c 8d 1d c2 0f 07 00 lea 0x70fc2(%rip),%r11 # 4a33b0 - 4323ee: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4323f2: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4323f6: ff e2 jmpq *%rdx - 4323f8: 0f 0b ud2 - 4323fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 432400: 0f 18 8e 40 fe ff ff prefetcht0 -0x1c0(%rsi) - 432407: 0f 18 8e 00 fe ff ff prefetcht0 -0x200(%rsi) - 43240e: f3 0f 6f 46 f0 movdqu -0x10(%rsi),%xmm0 - 432413: f3 0f 6f 4e e0 movdqu -0x20(%rsi),%xmm1 - 432418: f3 0f 6f 56 d0 movdqu -0x30(%rsi),%xmm2 - 43241d: f3 0f 6f 5e c0 movdqu -0x40(%rsi),%xmm3 - 432422: f3 0f 6f 66 b0 movdqu -0x50(%rsi),%xmm4 - 432427: f3 0f 6f 6e a0 movdqu -0x60(%rsi),%xmm5 - 43242c: f3 0f 6f 76 90 movdqu -0x70(%rsi),%xmm6 - 432431: f3 0f 6f 7e 80 movdqu -0x80(%rsi),%xmm7 - 432436: 48 8d 76 80 lea -0x80(%rsi),%rsi - 43243a: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 432441: 0f 29 47 f0 movaps %xmm0,-0x10(%rdi) - 432445: 0f 29 4f e0 movaps %xmm1,-0x20(%rdi) - 432449: 0f 29 57 d0 movaps %xmm2,-0x30(%rdi) - 43244d: 0f 29 5f c0 movaps %xmm3,-0x40(%rdi) - 432451: 0f 29 67 b0 movaps %xmm4,-0x50(%rdi) - 432455: 0f 29 6f a0 movaps %xmm5,-0x60(%rdi) - 432459: 0f 29 77 90 movaps %xmm6,-0x70(%rdi) - 43245d: 0f 29 7f 80 movaps %xmm7,-0x80(%rdi) - 432461: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 432465: 73 99 jae 432400 <__memmove_ssse3+0x2ab0> - 432467: 48 83 fa c0 cmp $0xffffffffffffffc0,%rdx - 43246b: 48 8d 92 80 00 00 00 lea 0x80(%rdx),%rdx - 432472: 7c 30 jl 4324a4 <__memmove_ssse3+0x2b54> - 432474: f3 0f 6f 46 f0 movdqu -0x10(%rsi),%xmm0 - 432479: f3 0f 6f 4e e0 movdqu -0x20(%rsi),%xmm1 - 43247e: f3 0f 6f 56 d0 movdqu -0x30(%rsi),%xmm2 - 432483: f3 0f 6f 5e c0 movdqu -0x40(%rsi),%xmm3 - 432488: 48 8d 76 c0 lea -0x40(%rsi),%rsi - 43248c: 0f 29 47 f0 movaps %xmm0,-0x10(%rdi) - 432490: 0f 29 4f e0 movaps %xmm1,-0x20(%rdi) - 432494: 0f 29 57 d0 movaps %xmm2,-0x30(%rdi) - 432498: 0f 29 5f c0 movaps %xmm3,-0x40(%rdi) - 43249c: 48 8d 7f c0 lea -0x40(%rdi),%rdi - 4324a0: 48 83 ea 40 sub $0x40,%rdx - 4324a4: 4c 8d 1d 05 0f 07 00 lea 0x70f05(%rip),%r11 # 4a33b0 - 4324ab: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4324af: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4324b3: ff e2 jmpq *%rdx - 4324b5: 0f 0b ud2 - 4324b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4324be: 00 00 - -00000000004324c0 <__memmove_chk_avx_unaligned>: - 4324c0: 48 39 d1 cmp %rdx,%rcx - 4324c3: 0f 82 e7 05 01 00 jb 442ab0 <__chk_fail> - 4324c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -00000000004324d0 <__memmove_avx_unaligned>: - 4324d0: 48 89 f8 mov %rdi,%rax - 4324d3: 48 81 fa 00 01 00 00 cmp $0x100,%rdx - 4324da: 0f 83 c0 01 00 00 jae 4326a0 <__memmove_avx_unaligned+0x1d0> - 4324e0: 80 fa 10 cmp $0x10,%dl - 4324e3: 0f 82 67 01 00 00 jb 432650 <__memmove_avx_unaligned+0x180> - 4324e9: 80 fa 80 cmp $0x80,%dl - 4324ec: 0f 82 ae 00 00 00 jb 4325a0 <__memmove_avx_unaligned+0xd0> - 4324f2: c5 fa 6f 06 vmovdqu (%rsi),%xmm0 - 4324f6: 48 8d 0c 16 lea (%rsi,%rdx,1),%rcx - 4324fa: c5 fa 6f 4e 10 vmovdqu 0x10(%rsi),%xmm1 - 4324ff: c5 fa 6f 56 20 vmovdqu 0x20(%rsi),%xmm2 - 432504: c5 fa 6f 5e 30 vmovdqu 0x30(%rsi),%xmm3 - 432509: c5 fa 6f 66 40 vmovdqu 0x40(%rsi),%xmm4 - 43250e: c5 fa 6f 6e 50 vmovdqu 0x50(%rsi),%xmm5 - 432513: c5 fa 6f 76 60 vmovdqu 0x60(%rsi),%xmm6 - 432518: c5 fa 6f 7e 70 vmovdqu 0x70(%rsi),%xmm7 - 43251d: c5 7a 6f 41 80 vmovdqu -0x80(%rcx),%xmm8 - 432522: c5 7a 6f 49 90 vmovdqu -0x70(%rcx),%xmm9 - 432527: c5 7a 6f 51 a0 vmovdqu -0x60(%rcx),%xmm10 - 43252c: c5 7a 6f 59 b0 vmovdqu -0x50(%rcx),%xmm11 - 432531: c5 7a 6f 61 c0 vmovdqu -0x40(%rcx),%xmm12 - 432536: c5 7a 6f 69 d0 vmovdqu -0x30(%rcx),%xmm13 - 43253b: c5 7a 6f 71 e0 vmovdqu -0x20(%rcx),%xmm14 - 432540: c5 7a 6f 79 f0 vmovdqu -0x10(%rcx),%xmm15 - 432545: 48 8d 14 17 lea (%rdi,%rdx,1),%rdx - 432549: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) - 43254d: c5 fa 7f 4f 10 vmovdqu %xmm1,0x10(%rdi) - 432552: c5 fa 7f 57 20 vmovdqu %xmm2,0x20(%rdi) - 432557: c5 fa 7f 5f 30 vmovdqu %xmm3,0x30(%rdi) - 43255c: c5 fa 7f 67 40 vmovdqu %xmm4,0x40(%rdi) - 432561: c5 fa 7f 6f 50 vmovdqu %xmm5,0x50(%rdi) - 432566: c5 fa 7f 77 60 vmovdqu %xmm6,0x60(%rdi) - 43256b: c5 fa 7f 7f 70 vmovdqu %xmm7,0x70(%rdi) - 432570: c5 7a 7f 42 80 vmovdqu %xmm8,-0x80(%rdx) - 432575: c5 7a 7f 4a 90 vmovdqu %xmm9,-0x70(%rdx) - 43257a: c5 7a 7f 52 a0 vmovdqu %xmm10,-0x60(%rdx) - 43257f: c5 7a 7f 5a b0 vmovdqu %xmm11,-0x50(%rdx) - 432584: c5 7a 7f 62 c0 vmovdqu %xmm12,-0x40(%rdx) - 432589: c5 7a 7f 6a d0 vmovdqu %xmm13,-0x30(%rdx) - 43258e: c5 7a 7f 72 e0 vmovdqu %xmm14,-0x20(%rdx) - 432593: c5 7a 7f 7a f0 vmovdqu %xmm15,-0x10(%rdx) - 432598: c3 retq - 432599: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4325a0: 80 fa 40 cmp $0x40,%dl - 4325a3: 72 5b jb 432600 <__memmove_avx_unaligned+0x130> - 4325a5: c5 fa 6f 06 vmovdqu (%rsi),%xmm0 - 4325a9: 48 8d 0c 16 lea (%rsi,%rdx,1),%rcx - 4325ad: c5 fa 6f 4e 10 vmovdqu 0x10(%rsi),%xmm1 - 4325b2: c5 fa 6f 56 20 vmovdqu 0x20(%rsi),%xmm2 - 4325b7: 48 8d 14 17 lea (%rdi,%rdx,1),%rdx - 4325bb: c5 fa 6f 5e 30 vmovdqu 0x30(%rsi),%xmm3 - 4325c0: c5 fa 6f 61 c0 vmovdqu -0x40(%rcx),%xmm4 - 4325c5: c5 fa 6f 69 d0 vmovdqu -0x30(%rcx),%xmm5 - 4325ca: c5 fa 6f 71 e0 vmovdqu -0x20(%rcx),%xmm6 - 4325cf: c5 fa 6f 79 f0 vmovdqu -0x10(%rcx),%xmm7 - 4325d4: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) - 4325d8: c5 fa 7f 4f 10 vmovdqu %xmm1,0x10(%rdi) - 4325dd: c5 fa 7f 57 20 vmovdqu %xmm2,0x20(%rdi) - 4325e2: c5 fa 7f 5f 30 vmovdqu %xmm3,0x30(%rdi) - 4325e7: c5 fa 7f 62 c0 vmovdqu %xmm4,-0x40(%rdx) - 4325ec: c5 fa 7f 6a d0 vmovdqu %xmm5,-0x30(%rdx) - 4325f1: c5 fa 7f 72 e0 vmovdqu %xmm6,-0x20(%rdx) - 4325f6: c5 fa 7f 7a f0 vmovdqu %xmm7,-0x10(%rdx) - 4325fb: c3 retq - 4325fc: 0f 1f 40 00 nopl 0x0(%rax) - 432600: 80 fa 20 cmp $0x20,%dl - 432603: 72 2b jb 432630 <__memmove_avx_unaligned+0x160> - 432605: c5 fa 6f 06 vmovdqu (%rsi),%xmm0 - 432609: c5 fa 6f 4e 10 vmovdqu 0x10(%rsi),%xmm1 - 43260e: c5 fa 6f 74 16 e0 vmovdqu -0x20(%rsi,%rdx,1),%xmm6 - 432614: c5 fa 6f 7c 16 f0 vmovdqu -0x10(%rsi,%rdx,1),%xmm7 - 43261a: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) - 43261e: c5 fa 7f 4f 10 vmovdqu %xmm1,0x10(%rdi) - 432623: c5 fa 7f 74 17 e0 vmovdqu %xmm6,-0x20(%rdi,%rdx,1) - 432629: c5 fa 7f 7c 17 f0 vmovdqu %xmm7,-0x10(%rdi,%rdx,1) - 43262f: c3 retq - 432630: c5 fa 6f 06 vmovdqu (%rsi),%xmm0 - 432634: c5 fa 6f 7c 16 f0 vmovdqu -0x10(%rsi,%rdx,1),%xmm7 - 43263a: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) - 43263e: c5 fa 7f 7c 17 f0 vmovdqu %xmm7,-0x10(%rdi,%rdx,1) - 432644: c3 retq - 432645: 90 nop - 432646: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43264d: 00 00 00 - 432650: 80 fa 08 cmp $0x8,%dl - 432653: 72 1b jb 432670 <__memmove_avx_unaligned+0x1a0> - 432655: 48 8b 4c 16 f8 mov -0x8(%rsi,%rdx,1),%rcx - 43265a: 48 8b 36 mov (%rsi),%rsi - 43265d: 48 89 37 mov %rsi,(%rdi) - 432660: 48 89 4c 17 f8 mov %rcx,-0x8(%rdi,%rdx,1) - 432665: c3 retq - 432666: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43266d: 00 00 00 - 432670: 80 fa 04 cmp $0x4,%dl - 432673: 72 0d jb 432682 <__memmove_avx_unaligned+0x1b2> - 432675: 8b 4c 16 fc mov -0x4(%rsi,%rdx,1),%ecx - 432679: 8b 36 mov (%rsi),%esi - 43267b: 89 37 mov %esi,(%rdi) - 43267d: 89 4c 17 fc mov %ecx,-0x4(%rdi,%rdx,1) - 432681: c3 retq - 432682: 80 fa 01 cmp $0x1,%dl - 432685: 76 11 jbe 432698 <__memmove_avx_unaligned+0x1c8> - 432687: 66 8b 4c 16 fe mov -0x2(%rsi,%rdx,1),%cx - 43268c: 66 8b 36 mov (%rsi),%si - 43268f: 66 89 37 mov %si,(%rdi) - 432692: 66 89 4c 17 fe mov %cx,-0x2(%rdi,%rdx,1) - 432697: c3 retq - 432698: 72 04 jb 43269e <__memmove_avx_unaligned+0x1ce> - 43269a: 8a 0e mov (%rsi),%cl - 43269c: 88 0f mov %cl,(%rdi) - 43269e: c3 retq - 43269f: 90 nop - 4326a0: 48 89 f9 mov %rdi,%rcx - 4326a3: 48 29 f1 sub %rsi,%rcx - 4326a6: 48 39 d1 cmp %rdx,%rcx - 4326a9: 0f 82 c1 01 00 00 jb 432870 <__memmove_avx_unaligned+0x3a0> - 4326af: 48 81 fa 00 08 00 00 cmp $0x800,%rdx - 4326b6: 0f 83 c4 00 00 00 jae 432780 <__memmove_avx_unaligned+0x2b0> - 4326bc: 49 89 c0 mov %rax,%r8 - 4326bf: 48 8d 0c 16 lea (%rsi,%rdx,1),%rcx - 4326c3: 49 89 fa mov %rdi,%r10 - 4326c6: c5 fa 6f 69 80 vmovdqu -0x80(%rcx),%xmm5 - 4326cb: c5 fa 6f 71 90 vmovdqu -0x70(%rcx),%xmm6 - 4326d0: 48 c7 c0 80 00 00 00 mov $0x80,%rax - 4326d7: 48 83 e7 e0 and $0xffffffffffffffe0,%rdi - 4326db: 48 83 c7 20 add $0x20,%rdi - 4326df: c5 fa 6f 79 a0 vmovdqu -0x60(%rcx),%xmm7 - 4326e4: c5 7a 6f 41 b0 vmovdqu -0x50(%rcx),%xmm8 - 4326e9: 49 89 fb mov %rdi,%r11 - 4326ec: 4d 29 d3 sub %r10,%r11 - 4326ef: c5 7a 6f 49 c0 vmovdqu -0x40(%rcx),%xmm9 - 4326f4: c5 7a 6f 51 d0 vmovdqu -0x30(%rcx),%xmm10 - 4326f9: 4c 29 da sub %r11,%rdx - 4326fc: c5 7a 6f 59 e0 vmovdqu -0x20(%rcx),%xmm11 - 432701: c5 7a 6f 61 f0 vmovdqu -0x10(%rcx),%xmm12 - 432706: c5 fe 6f 26 vmovdqu (%rsi),%ymm4 - 43270a: 4c 01 de add %r11,%rsi - 43270d: 29 c2 sub %eax,%edx - 43270f: c5 fe 6f 06 vmovdqu (%rsi),%ymm0 - 432713: c5 fe 6f 4e 20 vmovdqu 0x20(%rsi),%ymm1 - 432718: c5 fe 6f 56 40 vmovdqu 0x40(%rsi),%ymm2 - 43271d: c5 fe 6f 5e 60 vmovdqu 0x60(%rsi),%ymm3 - 432722: 48 01 c6 add %rax,%rsi - 432725: c5 fd 7f 07 vmovdqa %ymm0,(%rdi) - 432729: c5 fd 7f 4f 20 vmovdqa %ymm1,0x20(%rdi) - 43272e: c5 fd 7f 57 40 vmovdqa %ymm2,0x40(%rdi) - 432733: c5 fd 7f 5f 60 vmovdqa %ymm3,0x60(%rdi) - 432738: 48 01 c7 add %rax,%rdi - 43273b: 29 c2 sub %eax,%edx - 43273d: 73 d0 jae 43270f <__memmove_avx_unaligned+0x23f> - 43273f: 01 c2 add %eax,%edx - 432741: 48 01 fa add %rdi,%rdx - 432744: c4 c1 7e 7f 22 vmovdqu %ymm4,(%r10) - 432749: c5 f8 77 vzeroupper - 43274c: c5 fa 7f 6a 80 vmovdqu %xmm5,-0x80(%rdx) - 432751: c5 fa 7f 72 90 vmovdqu %xmm6,-0x70(%rdx) - 432756: c5 fa 7f 7a a0 vmovdqu %xmm7,-0x60(%rdx) - 43275b: c5 7a 7f 42 b0 vmovdqu %xmm8,-0x50(%rdx) - 432760: c5 7a 7f 4a c0 vmovdqu %xmm9,-0x40(%rdx) - 432765: c5 7a 7f 52 d0 vmovdqu %xmm10,-0x30(%rdx) - 43276a: c5 7a 7f 5a e0 vmovdqu %xmm11,-0x20(%rdx) - 43276f: c5 7a 7f 62 f0 vmovdqu %xmm12,-0x10(%rdx) - 432774: 4c 89 c0 mov %r8,%rax - 432777: c3 retq - 432778: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43277f: 00 - 432780: 48 8b 0d 29 89 29 00 mov 0x298929(%rip),%rcx # 6cb0b0 <__x86_shared_cache_size_half> - 432787: 48 c1 e1 03 shl $0x3,%rcx - 43278b: 48 39 ca cmp %rcx,%rdx - 43278e: 73 10 jae 4327a0 <__memmove_avx_unaligned+0x2d0> - 432790: 48 89 d1 mov %rdx,%rcx - 432793: 48 89 d1 mov %rdx,%rcx - 432796: f3 a4 rep movsb %ds:(%rsi),%es:(%rdi) - 432798: c3 retq - 432799: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4327a0: 48 8d 0c 16 lea (%rsi,%rdx,1),%rcx - 4327a4: c5 fe 6f 26 vmovdqu (%rsi),%ymm4 - 4327a8: c5 fa 6f 6c 16 80 vmovdqu -0x80(%rsi,%rdx,1),%xmm5 - 4327ae: c5 fa 6f 71 90 vmovdqu -0x70(%rcx),%xmm6 - 4327b3: c5 fa 6f 79 a0 vmovdqu -0x60(%rcx),%xmm7 - 4327b8: c5 7a 6f 41 b0 vmovdqu -0x50(%rcx),%xmm8 - 4327bd: c5 7a 6f 49 c0 vmovdqu -0x40(%rcx),%xmm9 - 4327c2: c5 7a 6f 51 d0 vmovdqu -0x30(%rcx),%xmm10 - 4327c7: c5 7a 6f 59 e0 vmovdqu -0x20(%rcx),%xmm11 - 4327cc: c5 7a 6f 61 f0 vmovdqu -0x10(%rcx),%xmm12 - 4327d1: 49 89 f8 mov %rdi,%r8 - 4327d4: 48 83 e7 e0 and $0xffffffffffffffe0,%rdi - 4327d8: 48 83 c7 20 add $0x20,%rdi - 4327dc: 49 89 fa mov %rdi,%r10 - 4327df: 4d 29 c2 sub %r8,%r10 - 4327e2: 4c 29 d2 sub %r10,%rdx - 4327e5: 4c 01 d6 add %r10,%rsi - 4327e8: 48 8d 0c 17 lea (%rdi,%rdx,1),%rcx - 4327ec: 48 83 c2 80 add $0xffffffffffffff80,%rdx - 4327f0: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 4327f7: 0f 18 86 80 02 00 00 prefetchnta 0x280(%rsi) - 4327fe: c5 fe 6f 06 vmovdqu (%rsi),%ymm0 - 432802: c5 fe 6f 4e 20 vmovdqu 0x20(%rsi),%ymm1 - 432807: c5 fe 6f 56 40 vmovdqu 0x40(%rsi),%ymm2 - 43280c: c5 fe 6f 5e 60 vmovdqu 0x60(%rsi),%ymm3 - 432811: 48 83 ee 80 sub $0xffffffffffffff80,%rsi - 432815: c5 fd e7 07 vmovntdq %ymm0,(%rdi) - 432819: c5 fd e7 4f 20 vmovntdq %ymm1,0x20(%rdi) - 43281e: c5 fd e7 57 40 vmovntdq %ymm2,0x40(%rdi) - 432823: c5 fd e7 5f 60 vmovntdq %ymm3,0x60(%rdi) - 432828: 48 83 ef 80 sub $0xffffffffffffff80,%rdi - 43282c: 48 83 c2 80 add $0xffffffffffffff80,%rdx - 432830: 72 be jb 4327f0 <__memmove_avx_unaligned+0x320> - 432832: 0f ae f8 sfence - 432835: c4 c1 7e 7f 20 vmovdqu %ymm4,(%r8) - 43283a: c5 f8 77 vzeroupper - 43283d: c5 fa 7f 69 80 vmovdqu %xmm5,-0x80(%rcx) - 432842: c5 fa 7f 71 90 vmovdqu %xmm6,-0x70(%rcx) - 432847: c5 fa 7f 79 a0 vmovdqu %xmm7,-0x60(%rcx) - 43284c: c5 7a 7f 41 b0 vmovdqu %xmm8,-0x50(%rcx) - 432851: c5 7a 7f 49 c0 vmovdqu %xmm9,-0x40(%rcx) - 432856: c5 7a 7f 51 d0 vmovdqu %xmm10,-0x30(%rcx) - 43285b: c5 7a 7f 59 e0 vmovdqu %xmm11,-0x20(%rcx) - 432860: c5 7a 7f 61 f0 vmovdqu %xmm12,-0x10(%rcx) - 432865: c3 retq - 432866: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43286d: 00 00 00 - 432870: 48 8b 0d 39 88 29 00 mov 0x298839(%rip),%rcx # 6cb0b0 <__x86_shared_cache_size_half> - 432877: 48 c1 e1 03 shl $0x3,%rcx - 43287b: c5 fa 6f 2e vmovdqu (%rsi),%xmm5 - 43287f: c5 fa 6f 76 10 vmovdqu 0x10(%rsi),%xmm6 - 432884: 48 01 d7 add %rdx,%rdi - 432887: c5 fa 6f 7e 20 vmovdqu 0x20(%rsi),%xmm7 - 43288c: c5 7a 6f 46 30 vmovdqu 0x30(%rsi),%xmm8 - 432891: 4c 8d 57 e0 lea -0x20(%rdi),%r10 - 432895: 49 89 fb mov %rdi,%r11 - 432898: c5 7a 6f 4e 40 vmovdqu 0x40(%rsi),%xmm9 - 43289d: c5 7a 6f 56 50 vmovdqu 0x50(%rsi),%xmm10 - 4328a2: 49 83 e3 1f and $0x1f,%r11 - 4328a6: c5 7a 6f 5e 60 vmovdqu 0x60(%rsi),%xmm11 - 4328ab: c5 7a 6f 66 70 vmovdqu 0x70(%rsi),%xmm12 - 4328b0: 4c 31 df xor %r11,%rdi - 4328b3: 48 01 d6 add %rdx,%rsi - 4328b6: c5 fe 6f 66 e0 vmovdqu -0x20(%rsi),%ymm4 - 4328bb: 4c 29 de sub %r11,%rsi - 4328be: 4c 29 da sub %r11,%rdx - 4328c1: 48 39 ca cmp %rcx,%rdx - 4328c4: 77 6a ja 432930 <__memmove_avx_unaligned+0x460> - 4328c6: 48 83 c2 80 add $0xffffffffffffff80,%rdx - 4328ca: c5 fe 6f 46 e0 vmovdqu -0x20(%rsi),%ymm0 - 4328cf: c5 fe 6f 4e c0 vmovdqu -0x40(%rsi),%ymm1 - 4328d4: c5 fe 6f 56 a0 vmovdqu -0x60(%rsi),%ymm2 - 4328d9: c5 fe 6f 5e 80 vmovdqu -0x80(%rsi),%ymm3 - 4328de: 48 8d 76 80 lea -0x80(%rsi),%rsi - 4328e2: c5 fd 7f 47 e0 vmovdqa %ymm0,-0x20(%rdi) - 4328e7: c5 fd 7f 4f c0 vmovdqa %ymm1,-0x40(%rdi) - 4328ec: c5 fd 7f 57 a0 vmovdqa %ymm2,-0x60(%rdi) - 4328f1: c5 fd 7f 5f 80 vmovdqa %ymm3,-0x80(%rdi) - 4328f6: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 4328fa: 48 83 c2 80 add $0xffffffffffffff80,%rdx - 4328fe: 72 ca jb 4328ca <__memmove_avx_unaligned+0x3fa> - 432900: c4 c1 7e 7f 22 vmovdqu %ymm4,(%r10) - 432905: c5 f8 77 vzeroupper - 432908: c5 fa 7f 28 vmovdqu %xmm5,(%rax) - 43290c: c5 fa 7f 70 10 vmovdqu %xmm6,0x10(%rax) - 432911: c5 fa 7f 78 20 vmovdqu %xmm7,0x20(%rax) - 432916: c5 7a 7f 40 30 vmovdqu %xmm8,0x30(%rax) - 43291b: c5 7a 7f 48 40 vmovdqu %xmm9,0x40(%rax) - 432920: c5 7a 7f 50 50 vmovdqu %xmm10,0x50(%rax) - 432925: c5 7a 7f 58 60 vmovdqu %xmm11,0x60(%rax) - 43292a: c5 7a 7f 60 70 vmovdqu %xmm12,0x70(%rax) - 43292f: c3 retq - 432930: 48 83 c2 80 add $0xffffffffffffff80,%rdx - 432934: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 43293b: 0f 18 86 80 fd ff ff prefetchnta -0x280(%rsi) - 432942: c5 fe 6f 46 e0 vmovdqu -0x20(%rsi),%ymm0 - 432947: c5 fe 6f 4e c0 vmovdqu -0x40(%rsi),%ymm1 - 43294c: c5 fe 6f 56 a0 vmovdqu -0x60(%rsi),%ymm2 - 432951: c5 fe 6f 5e 80 vmovdqu -0x80(%rsi),%ymm3 - 432956: 48 8d 76 80 lea -0x80(%rsi),%rsi - 43295a: c5 fd e7 47 e0 vmovntdq %ymm0,-0x20(%rdi) - 43295f: c5 fd e7 4f c0 vmovntdq %ymm1,-0x40(%rdi) - 432964: c5 fd e7 57 a0 vmovntdq %ymm2,-0x60(%rdi) - 432969: c5 fd e7 5f 80 vmovntdq %ymm3,-0x80(%rdi) - 43296e: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 432972: 48 83 c2 80 add $0xffffffffffffff80,%rdx - 432976: 72 bc jb 432934 <__memmove_avx_unaligned+0x464> - 432978: 0f ae f8 sfence - 43297b: c4 c1 7e 7f 22 vmovdqu %ymm4,(%r10) - 432980: c5 f8 77 vzeroupper - 432983: c5 fa 7f 28 vmovdqu %xmm5,(%rax) - 432987: c5 fa 7f 70 10 vmovdqu %xmm6,0x10(%rax) - 43298c: c5 fa 7f 78 20 vmovdqu %xmm7,0x20(%rax) - 432991: c5 7a 7f 40 30 vmovdqu %xmm8,0x30(%rax) - 432996: c5 7a 7f 48 40 vmovdqu %xmm9,0x40(%rax) - 43299b: c5 7a 7f 50 50 vmovdqu %xmm10,0x50(%rax) - 4329a0: c5 7a 7f 58 60 vmovdqu %xmm11,0x60(%rax) - 4329a5: c5 7a 7f 60 70 vmovdqu %xmm12,0x70(%rax) - 4329aa: c3 retq - 4329ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -00000000004329b0 <__memmove_chk_ssse3_back>: - 4329b0: 48 39 d1 cmp %rdx,%rcx - 4329b3: 0f 82 f7 00 01 00 jb 442ab0 <__chk_fail> - 4329b9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -00000000004329c0 <__memmove_ssse3_back>: - 4329c0: 48 89 f8 mov %rdi,%rax - 4329c3: 48 39 f7 cmp %rsi,%rdi - 4329c6: 72 26 jb 4329ee <__memmove_ssse3_back+0x2e> - 4329c8: 0f 84 70 24 00 00 je 434e3e <__memmove_ssse3_back+0x247e> - 4329ce: 48 81 fa 90 00 00 00 cmp $0x90,%rdx - 4329d5: 0f 83 95 00 00 00 jae 432a70 <__memmove_ssse3_back+0xb0> - 4329db: 4c 8d 1d 8e 0b 07 00 lea 0x70b8e(%rip),%r11 # 4a3570 - 4329e2: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4329e6: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4329ea: ff e2 jmpq *%rdx - 4329ec: 0f 0b ud2 - 4329ee: 48 81 fa 90 00 00 00 cmp $0x90,%rdx - 4329f5: 73 19 jae 432a10 <__memmove_ssse3_back+0x50> - 4329f7: 48 01 d6 add %rdx,%rsi - 4329fa: 48 01 d7 add %rdx,%rdi - 4329fd: 4c 8d 1d ac 0d 07 00 lea 0x70dac(%rip),%r11 # 4a37b0 - 432a04: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 432a08: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 432a0c: ff e2 jmpq *%rdx - 432a0e: 0f 0b ud2 - 432a10: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 432a14: 49 89 f8 mov %rdi,%r8 - 432a17: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 432a1b: 48 83 c7 10 add $0x10,%rdi - 432a1f: 49 89 f9 mov %rdi,%r9 - 432a22: 4d 29 c1 sub %r8,%r9 - 432a25: 4c 29 ca sub %r9,%rdx - 432a28: 4c 01 ce add %r9,%rsi - 432a2b: 49 89 f1 mov %rsi,%r9 - 432a2e: 49 83 e1 0f and $0xf,%r9 - 432a32: 0f 84 98 00 00 00 je 432ad0 <__memmove_ssse3_back+0x110> - 432a38: 48 8b 0d 89 86 29 00 mov 0x298689(%rip),%rcx # 6cb0c8 <__x86_data_cache_size> - 432a3f: 48 39 ca cmp %rcx,%rdx - 432a42: 0f 83 28 18 00 00 jae 434270 <__memmove_ssse3_back+0x18b0> - 432a48: 4c 8d 1d a1 0f 07 00 lea 0x70fa1(%rip),%r11 # 4a39f0 - 432a4f: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 432a56: 4f 63 0c 8b movslq (%r11,%r9,4),%r9 - 432a5a: 4d 01 d9 add %r11,%r9 - 432a5d: 41 ff e1 jmpq *%r9 - 432a60: 0f 0b ud2 - 432a62: 0f 1f 40 00 nopl 0x0(%rax) - 432a66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 432a6d: 00 00 00 - 432a70: 48 8b 0d 51 86 29 00 mov 0x298651(%rip),%rcx # 6cb0c8 <__x86_data_cache_size> - 432a77: 48 d1 e1 shl %rcx - 432a7a: 48 39 ca cmp %rcx,%rdx - 432a7d: 0f 87 9d 19 00 00 ja 434420 <__memmove_ssse3_back+0x1a60> - 432a83: 48 01 d7 add %rdx,%rdi - 432a86: 48 01 d6 add %rdx,%rsi - 432a89: f3 0f 6f 46 f0 movdqu -0x10(%rsi),%xmm0 - 432a8e: 4c 8d 47 f0 lea -0x10(%rdi),%r8 - 432a92: 49 89 f9 mov %rdi,%r9 - 432a95: 49 83 e1 0f and $0xf,%r9 - 432a99: 4c 31 cf xor %r9,%rdi - 432a9c: 4c 29 ce sub %r9,%rsi - 432a9f: 4c 29 ca sub %r9,%rdx - 432aa2: 49 89 f1 mov %rsi,%r9 - 432aa5: 49 83 e1 0f and $0xf,%r9 - 432aa9: 0f 84 c1 00 00 00 je 432b70 <__memmove_ssse3_back+0x1b0> - 432aaf: 4c 8d 1d 7a 0f 07 00 lea 0x70f7a(%rip),%r11 # 4a3a30 - 432ab6: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 432abd: 4f 63 0c 8b movslq (%r11,%r9,4),%r9 - 432ac1: 4d 01 d9 add %r11,%r9 - 432ac4: 41 ff e1 jmpq *%r9 - 432ac7: 0f 0b ud2 - 432ac9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 432ad0: 49 89 d1 mov %rdx,%r9 - 432ad3: 49 c1 e9 08 shr $0x8,%r9 - 432ad7: 49 01 d1 add %rdx,%r9 - 432ada: 4c 3b 0d ef 85 29 00 cmp 0x2985ef(%rip),%r9 # 6cb0d0 <__x86_data_cache_size_half> - 432ae1: 0f 83 89 17 00 00 jae 434270 <__memmove_ssse3_back+0x18b0> - 432ae7: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 432aee: 66 90 xchg %ax,%ax - 432af0: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 432af4: 66 0f 7f 0f movdqa %xmm1,(%rdi) - 432af8: 0f 28 56 10 movaps 0x10(%rsi),%xmm2 - 432afc: 0f 29 57 10 movaps %xmm2,0x10(%rdi) - 432b00: 0f 28 5e 20 movaps 0x20(%rsi),%xmm3 - 432b04: 0f 29 5f 20 movaps %xmm3,0x20(%rdi) - 432b08: 0f 28 66 30 movaps 0x30(%rsi),%xmm4 - 432b0c: 0f 29 67 30 movaps %xmm4,0x30(%rdi) - 432b10: 0f 28 4e 40 movaps 0x40(%rsi),%xmm1 - 432b14: 0f 29 4f 40 movaps %xmm1,0x40(%rdi) - 432b18: 0f 28 56 50 movaps 0x50(%rsi),%xmm2 - 432b1c: 0f 29 57 50 movaps %xmm2,0x50(%rdi) - 432b20: 0f 28 5e 60 movaps 0x60(%rsi),%xmm3 - 432b24: 0f 29 5f 60 movaps %xmm3,0x60(%rdi) - 432b28: 0f 28 66 70 movaps 0x70(%rsi),%xmm4 - 432b2c: 0f 29 67 70 movaps %xmm4,0x70(%rdi) - 432b30: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 432b37: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 432b3e: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 432b45: 73 a9 jae 432af0 <__memmove_ssse3_back+0x130> - 432b47: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 432b4c: 48 81 c2 80 00 00 00 add $0x80,%rdx - 432b53: 48 01 d6 add %rdx,%rsi - 432b56: 48 01 d7 add %rdx,%rdi - 432b59: 4c 8d 1d 50 0c 07 00 lea 0x70c50(%rip),%r11 # 4a37b0 - 432b60: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 432b64: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 432b68: ff e2 jmpq *%rdx - 432b6a: 0f 0b ud2 - 432b6c: 0f 1f 40 00 nopl 0x0(%rax) - 432b70: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 432b77: 0f 28 4e f0 movaps -0x10(%rsi),%xmm1 - 432b7b: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 432b7f: 0f 28 56 e0 movaps -0x20(%rsi),%xmm2 - 432b83: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 432b87: 0f 28 5e d0 movaps -0x30(%rsi),%xmm3 - 432b8b: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 432b8f: 0f 28 66 c0 movaps -0x40(%rsi),%xmm4 - 432b93: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) - 432b97: 0f 28 6e b0 movaps -0x50(%rsi),%xmm5 - 432b9b: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) - 432b9f: 0f 28 6e a0 movaps -0x60(%rsi),%xmm5 - 432ba3: 0f 29 6f a0 movaps %xmm5,-0x60(%rdi) - 432ba7: 0f 28 6e 90 movaps -0x70(%rsi),%xmm5 - 432bab: 0f 29 6f 90 movaps %xmm5,-0x70(%rdi) - 432baf: 0f 28 6e 80 movaps -0x80(%rsi),%xmm5 - 432bb3: 0f 29 6f 80 movaps %xmm5,-0x80(%rdi) - 432bb7: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 432bbe: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 432bc2: 48 8d 76 80 lea -0x80(%rsi),%rsi - 432bc6: 73 af jae 432b77 <__memmove_ssse3_back+0x1b7> - 432bc8: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 432bcd: 48 81 c2 80 00 00 00 add $0x80,%rdx - 432bd4: 48 29 d7 sub %rdx,%rdi - 432bd7: 48 29 d6 sub %rdx,%rsi - 432bda: 4c 8d 1d 8f 09 07 00 lea 0x7098f(%rip),%r11 # 4a3570 - 432be1: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 432be5: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 432be9: ff e2 jmpq *%rdx - 432beb: 0f 0b ud2 - 432bed: 0f 1f 00 nopl (%rax) - 432bf0: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 432bf7: 0f 28 4e ff movaps -0x1(%rsi),%xmm1 - 432bfb: 0f 28 56 0f movaps 0xf(%rsi),%xmm2 - 432bff: 0f 28 5e 1f movaps 0x1f(%rsi),%xmm3 - 432c03: 0f 28 66 2f movaps 0x2f(%rsi),%xmm4 - 432c07: 0f 28 6e 3f movaps 0x3f(%rsi),%xmm5 - 432c0b: 0f 28 76 4f movaps 0x4f(%rsi),%xmm6 - 432c0f: 0f 28 7e 5f movaps 0x5f(%rsi),%xmm7 - 432c13: 44 0f 28 46 6f movaps 0x6f(%rsi),%xmm8 - 432c18: 44 0f 28 4e 7f movaps 0x7f(%rsi),%xmm9 - 432c1d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 432c24: 66 45 0f 3a 0f c8 01 palignr $0x1,%xmm8,%xmm9 - 432c2b: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) - 432c30: 66 44 0f 3a 0f c7 01 palignr $0x1,%xmm7,%xmm8 - 432c37: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) - 432c3c: 66 0f 3a 0f fe 01 palignr $0x1,%xmm6,%xmm7 - 432c42: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) - 432c46: 66 0f 3a 0f f5 01 palignr $0x1,%xmm5,%xmm6 - 432c4c: 0f 29 77 40 movaps %xmm6,0x40(%rdi) - 432c50: 66 0f 3a 0f ec 01 palignr $0x1,%xmm4,%xmm5 - 432c56: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) - 432c5a: 66 0f 3a 0f e3 01 palignr $0x1,%xmm3,%xmm4 - 432c60: 0f 29 67 20 movaps %xmm4,0x20(%rdi) - 432c64: 66 0f 3a 0f da 01 palignr $0x1,%xmm2,%xmm3 - 432c6a: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 432c6e: 66 0f 3a 0f d1 01 palignr $0x1,%xmm1,%xmm2 - 432c74: 0f 29 17 movaps %xmm2,(%rdi) - 432c77: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 432c7e: 0f 83 6c ff ff ff jae 432bf0 <__memmove_ssse3_back+0x230> - 432c84: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 432c89: 48 81 c2 80 00 00 00 add $0x80,%rdx - 432c90: 48 01 d7 add %rdx,%rdi - 432c93: 48 01 d6 add %rdx,%rsi - 432c96: 4c 8d 1d 13 0b 07 00 lea 0x70b13(%rip),%r11 # 4a37b0 - 432c9d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 432ca1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 432ca5: ff e2 jmpq *%rdx - 432ca7: 0f 0b ud2 - 432ca9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 432cb0: 0f 28 4e ff movaps -0x1(%rsi),%xmm1 - 432cb4: 0f 28 56 ef movaps -0x11(%rsi),%xmm2 - 432cb8: 66 0f 3a 0f ca 01 palignr $0x1,%xmm2,%xmm1 - 432cbe: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 432cc2: 0f 28 5e df movaps -0x21(%rsi),%xmm3 - 432cc6: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 - 432ccc: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 432cd0: 0f 28 66 cf movaps -0x31(%rsi),%xmm4 - 432cd4: 66 0f 3a 0f dc 01 palignr $0x1,%xmm4,%xmm3 - 432cda: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 432cde: 0f 28 6e bf movaps -0x41(%rsi),%xmm5 - 432ce2: 66 0f 3a 0f e5 01 palignr $0x1,%xmm5,%xmm4 - 432ce8: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) - 432cec: 0f 28 76 af movaps -0x51(%rsi),%xmm6 - 432cf0: 66 0f 3a 0f ee 01 palignr $0x1,%xmm6,%xmm5 - 432cf6: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) - 432cfa: 0f 28 7e 9f movaps -0x61(%rsi),%xmm7 - 432cfe: 66 0f 3a 0f f7 01 palignr $0x1,%xmm7,%xmm6 - 432d04: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) - 432d08: 44 0f 28 46 8f movaps -0x71(%rsi),%xmm8 - 432d0d: 66 41 0f 3a 0f f8 01 palignr $0x1,%xmm8,%xmm7 - 432d14: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) - 432d18: 44 0f 28 8e 7f ff ff movaps -0x81(%rsi),%xmm9 - 432d1f: ff - 432d20: 66 45 0f 3a 0f c1 01 palignr $0x1,%xmm9,%xmm8 - 432d27: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) - 432d2c: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 432d33: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 432d37: 48 8d 76 80 lea -0x80(%rsi),%rsi - 432d3b: 0f 83 6f ff ff ff jae 432cb0 <__memmove_ssse3_back+0x2f0> - 432d41: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 432d46: 48 81 c2 80 00 00 00 add $0x80,%rdx - 432d4d: 48 29 d7 sub %rdx,%rdi - 432d50: 48 29 d6 sub %rdx,%rsi - 432d53: 4c 8d 1d 16 08 07 00 lea 0x70816(%rip),%r11 # 4a3570 - 432d5a: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 432d5e: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 432d62: ff e2 jmpq *%rdx - 432d64: 0f 0b ud2 - 432d66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 432d6d: 00 00 00 - 432d70: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 432d77: 0f 28 4e fe movaps -0x2(%rsi),%xmm1 - 432d7b: 0f 28 56 0e movaps 0xe(%rsi),%xmm2 - 432d7f: 0f 28 5e 1e movaps 0x1e(%rsi),%xmm3 - 432d83: 0f 28 66 2e movaps 0x2e(%rsi),%xmm4 - 432d87: 0f 28 6e 3e movaps 0x3e(%rsi),%xmm5 - 432d8b: 0f 28 76 4e movaps 0x4e(%rsi),%xmm6 - 432d8f: 0f 28 7e 5e movaps 0x5e(%rsi),%xmm7 - 432d93: 44 0f 28 46 6e movaps 0x6e(%rsi),%xmm8 - 432d98: 44 0f 28 4e 7e movaps 0x7e(%rsi),%xmm9 - 432d9d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 432da4: 66 45 0f 3a 0f c8 02 palignr $0x2,%xmm8,%xmm9 - 432dab: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) - 432db0: 66 44 0f 3a 0f c7 02 palignr $0x2,%xmm7,%xmm8 - 432db7: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) - 432dbc: 66 0f 3a 0f fe 02 palignr $0x2,%xmm6,%xmm7 - 432dc2: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) - 432dc6: 66 0f 3a 0f f5 02 palignr $0x2,%xmm5,%xmm6 - 432dcc: 0f 29 77 40 movaps %xmm6,0x40(%rdi) - 432dd0: 66 0f 3a 0f ec 02 palignr $0x2,%xmm4,%xmm5 - 432dd6: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) - 432dda: 66 0f 3a 0f e3 02 palignr $0x2,%xmm3,%xmm4 - 432de0: 0f 29 67 20 movaps %xmm4,0x20(%rdi) - 432de4: 66 0f 3a 0f da 02 palignr $0x2,%xmm2,%xmm3 - 432dea: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 432dee: 66 0f 3a 0f d1 02 palignr $0x2,%xmm1,%xmm2 - 432df4: 0f 29 17 movaps %xmm2,(%rdi) - 432df7: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 432dfe: 0f 83 6c ff ff ff jae 432d70 <__memmove_ssse3_back+0x3b0> - 432e04: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 432e09: 48 81 c2 80 00 00 00 add $0x80,%rdx - 432e10: 48 01 d7 add %rdx,%rdi - 432e13: 48 01 d6 add %rdx,%rsi - 432e16: 4c 8d 1d 93 09 07 00 lea 0x70993(%rip),%r11 # 4a37b0 - 432e1d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 432e21: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 432e25: ff e2 jmpq *%rdx - 432e27: 0f 0b ud2 - 432e29: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 432e30: 0f 28 4e fe movaps -0x2(%rsi),%xmm1 - 432e34: 0f 28 56 ee movaps -0x12(%rsi),%xmm2 - 432e38: 66 0f 3a 0f ca 02 palignr $0x2,%xmm2,%xmm1 - 432e3e: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 432e42: 0f 28 5e de movaps -0x22(%rsi),%xmm3 - 432e46: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 - 432e4c: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 432e50: 0f 28 66 ce movaps -0x32(%rsi),%xmm4 - 432e54: 66 0f 3a 0f dc 02 palignr $0x2,%xmm4,%xmm3 - 432e5a: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 432e5e: 0f 28 6e be movaps -0x42(%rsi),%xmm5 - 432e62: 66 0f 3a 0f e5 02 palignr $0x2,%xmm5,%xmm4 - 432e68: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) - 432e6c: 0f 28 76 ae movaps -0x52(%rsi),%xmm6 - 432e70: 66 0f 3a 0f ee 02 palignr $0x2,%xmm6,%xmm5 - 432e76: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) - 432e7a: 0f 28 7e 9e movaps -0x62(%rsi),%xmm7 - 432e7e: 66 0f 3a 0f f7 02 palignr $0x2,%xmm7,%xmm6 - 432e84: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) - 432e88: 44 0f 28 46 8e movaps -0x72(%rsi),%xmm8 - 432e8d: 66 41 0f 3a 0f f8 02 palignr $0x2,%xmm8,%xmm7 - 432e94: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) - 432e98: 44 0f 28 8e 7e ff ff movaps -0x82(%rsi),%xmm9 - 432e9f: ff - 432ea0: 66 45 0f 3a 0f c1 02 palignr $0x2,%xmm9,%xmm8 - 432ea7: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) - 432eac: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 432eb3: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 432eb7: 48 8d 76 80 lea -0x80(%rsi),%rsi - 432ebb: 0f 83 6f ff ff ff jae 432e30 <__memmove_ssse3_back+0x470> - 432ec1: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 432ec6: 48 81 c2 80 00 00 00 add $0x80,%rdx - 432ecd: 48 29 d7 sub %rdx,%rdi - 432ed0: 48 29 d6 sub %rdx,%rsi - 432ed3: 4c 8d 1d 96 06 07 00 lea 0x70696(%rip),%r11 # 4a3570 - 432eda: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 432ede: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 432ee2: ff e2 jmpq *%rdx - 432ee4: 0f 0b ud2 - 432ee6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 432eed: 00 00 00 - 432ef0: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 432ef7: 0f 28 4e fd movaps -0x3(%rsi),%xmm1 - 432efb: 0f 28 56 0d movaps 0xd(%rsi),%xmm2 - 432eff: 0f 28 5e 1d movaps 0x1d(%rsi),%xmm3 - 432f03: 0f 28 66 2d movaps 0x2d(%rsi),%xmm4 - 432f07: 0f 28 6e 3d movaps 0x3d(%rsi),%xmm5 - 432f0b: 0f 28 76 4d movaps 0x4d(%rsi),%xmm6 - 432f0f: 0f 28 7e 5d movaps 0x5d(%rsi),%xmm7 - 432f13: 44 0f 28 46 6d movaps 0x6d(%rsi),%xmm8 - 432f18: 44 0f 28 4e 7d movaps 0x7d(%rsi),%xmm9 - 432f1d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 432f24: 66 45 0f 3a 0f c8 03 palignr $0x3,%xmm8,%xmm9 - 432f2b: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) - 432f30: 66 44 0f 3a 0f c7 03 palignr $0x3,%xmm7,%xmm8 - 432f37: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) - 432f3c: 66 0f 3a 0f fe 03 palignr $0x3,%xmm6,%xmm7 - 432f42: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) - 432f46: 66 0f 3a 0f f5 03 palignr $0x3,%xmm5,%xmm6 - 432f4c: 0f 29 77 40 movaps %xmm6,0x40(%rdi) - 432f50: 66 0f 3a 0f ec 03 palignr $0x3,%xmm4,%xmm5 - 432f56: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) - 432f5a: 66 0f 3a 0f e3 03 palignr $0x3,%xmm3,%xmm4 - 432f60: 0f 29 67 20 movaps %xmm4,0x20(%rdi) - 432f64: 66 0f 3a 0f da 03 palignr $0x3,%xmm2,%xmm3 - 432f6a: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 432f6e: 66 0f 3a 0f d1 03 palignr $0x3,%xmm1,%xmm2 - 432f74: 0f 29 17 movaps %xmm2,(%rdi) - 432f77: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 432f7e: 0f 83 6c ff ff ff jae 432ef0 <__memmove_ssse3_back+0x530> - 432f84: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 432f89: 48 81 c2 80 00 00 00 add $0x80,%rdx - 432f90: 48 01 d7 add %rdx,%rdi - 432f93: 48 01 d6 add %rdx,%rsi - 432f96: 4c 8d 1d 13 08 07 00 lea 0x70813(%rip),%r11 # 4a37b0 - 432f9d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 432fa1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 432fa5: ff e2 jmpq *%rdx - 432fa7: 0f 0b ud2 - 432fa9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 432fb0: 0f 28 4e fd movaps -0x3(%rsi),%xmm1 - 432fb4: 0f 28 56 ed movaps -0x13(%rsi),%xmm2 - 432fb8: 66 0f 3a 0f ca 03 palignr $0x3,%xmm2,%xmm1 - 432fbe: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 432fc2: 0f 28 5e dd movaps -0x23(%rsi),%xmm3 - 432fc6: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 - 432fcc: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 432fd0: 0f 28 66 cd movaps -0x33(%rsi),%xmm4 - 432fd4: 66 0f 3a 0f dc 03 palignr $0x3,%xmm4,%xmm3 - 432fda: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 432fde: 0f 28 6e bd movaps -0x43(%rsi),%xmm5 - 432fe2: 66 0f 3a 0f e5 03 palignr $0x3,%xmm5,%xmm4 - 432fe8: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) - 432fec: 0f 28 76 ad movaps -0x53(%rsi),%xmm6 - 432ff0: 66 0f 3a 0f ee 03 palignr $0x3,%xmm6,%xmm5 - 432ff6: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) - 432ffa: 0f 28 7e 9d movaps -0x63(%rsi),%xmm7 - 432ffe: 66 0f 3a 0f f7 03 palignr $0x3,%xmm7,%xmm6 - 433004: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) - 433008: 44 0f 28 46 8d movaps -0x73(%rsi),%xmm8 - 43300d: 66 41 0f 3a 0f f8 03 palignr $0x3,%xmm8,%xmm7 - 433014: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) - 433018: 44 0f 28 8e 7d ff ff movaps -0x83(%rsi),%xmm9 - 43301f: ff - 433020: 66 45 0f 3a 0f c1 03 palignr $0x3,%xmm9,%xmm8 - 433027: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) - 43302c: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 433033: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 433037: 48 8d 76 80 lea -0x80(%rsi),%rsi - 43303b: 0f 83 6f ff ff ff jae 432fb0 <__memmove_ssse3_back+0x5f0> - 433041: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433046: 48 81 c2 80 00 00 00 add $0x80,%rdx - 43304d: 48 29 d7 sub %rdx,%rdi - 433050: 48 29 d6 sub %rdx,%rsi - 433053: 4c 8d 1d 16 05 07 00 lea 0x70516(%rip),%r11 # 4a3570 - 43305a: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43305e: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 433062: ff e2 jmpq *%rdx - 433064: 0f 0b ud2 - 433066: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43306d: 00 00 00 - 433070: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 433077: 0f 28 4e fc movaps -0x4(%rsi),%xmm1 - 43307b: 0f 28 56 0c movaps 0xc(%rsi),%xmm2 - 43307f: 0f 28 5e 1c movaps 0x1c(%rsi),%xmm3 - 433083: 0f 28 66 2c movaps 0x2c(%rsi),%xmm4 - 433087: 0f 28 6e 3c movaps 0x3c(%rsi),%xmm5 - 43308b: 0f 28 76 4c movaps 0x4c(%rsi),%xmm6 - 43308f: 0f 28 7e 5c movaps 0x5c(%rsi),%xmm7 - 433093: 44 0f 28 46 6c movaps 0x6c(%rsi),%xmm8 - 433098: 44 0f 28 4e 7c movaps 0x7c(%rsi),%xmm9 - 43309d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 4330a4: 66 45 0f 3a 0f c8 04 palignr $0x4,%xmm8,%xmm9 - 4330ab: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) - 4330b0: 66 44 0f 3a 0f c7 04 palignr $0x4,%xmm7,%xmm8 - 4330b7: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) - 4330bc: 66 0f 3a 0f fe 04 palignr $0x4,%xmm6,%xmm7 - 4330c2: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) - 4330c6: 66 0f 3a 0f f5 04 palignr $0x4,%xmm5,%xmm6 - 4330cc: 0f 29 77 40 movaps %xmm6,0x40(%rdi) - 4330d0: 66 0f 3a 0f ec 04 palignr $0x4,%xmm4,%xmm5 - 4330d6: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) - 4330da: 66 0f 3a 0f e3 04 palignr $0x4,%xmm3,%xmm4 - 4330e0: 0f 29 67 20 movaps %xmm4,0x20(%rdi) - 4330e4: 66 0f 3a 0f da 04 palignr $0x4,%xmm2,%xmm3 - 4330ea: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 4330ee: 66 0f 3a 0f d1 04 palignr $0x4,%xmm1,%xmm2 - 4330f4: 0f 29 17 movaps %xmm2,(%rdi) - 4330f7: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 4330fe: 0f 83 6c ff ff ff jae 433070 <__memmove_ssse3_back+0x6b0> - 433104: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433109: 48 81 c2 80 00 00 00 add $0x80,%rdx - 433110: 48 01 d7 add %rdx,%rdi - 433113: 48 01 d6 add %rdx,%rsi - 433116: 4c 8d 1d 93 06 07 00 lea 0x70693(%rip),%r11 # 4a37b0 - 43311d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 433121: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 433125: ff e2 jmpq *%rdx - 433127: 0f 0b ud2 - 433129: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 433130: 0f 28 4e fc movaps -0x4(%rsi),%xmm1 - 433134: 0f 28 56 ec movaps -0x14(%rsi),%xmm2 - 433138: 66 0f 3a 0f ca 04 palignr $0x4,%xmm2,%xmm1 - 43313e: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 433142: 0f 28 5e dc movaps -0x24(%rsi),%xmm3 - 433146: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 - 43314c: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 433150: 0f 28 66 cc movaps -0x34(%rsi),%xmm4 - 433154: 66 0f 3a 0f dc 04 palignr $0x4,%xmm4,%xmm3 - 43315a: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 43315e: 0f 28 6e bc movaps -0x44(%rsi),%xmm5 - 433162: 66 0f 3a 0f e5 04 palignr $0x4,%xmm5,%xmm4 - 433168: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) - 43316c: 0f 28 76 ac movaps -0x54(%rsi),%xmm6 - 433170: 66 0f 3a 0f ee 04 palignr $0x4,%xmm6,%xmm5 - 433176: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) - 43317a: 0f 28 7e 9c movaps -0x64(%rsi),%xmm7 - 43317e: 66 0f 3a 0f f7 04 palignr $0x4,%xmm7,%xmm6 - 433184: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) - 433188: 44 0f 28 46 8c movaps -0x74(%rsi),%xmm8 - 43318d: 66 41 0f 3a 0f f8 04 palignr $0x4,%xmm8,%xmm7 - 433194: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) - 433198: 44 0f 28 8e 7c ff ff movaps -0x84(%rsi),%xmm9 - 43319f: ff - 4331a0: 66 45 0f 3a 0f c1 04 palignr $0x4,%xmm9,%xmm8 - 4331a7: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) - 4331ac: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 4331b3: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 4331b7: 48 8d 76 80 lea -0x80(%rsi),%rsi - 4331bb: 0f 83 6f ff ff ff jae 433130 <__memmove_ssse3_back+0x770> - 4331c1: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 4331c6: 48 81 c2 80 00 00 00 add $0x80,%rdx - 4331cd: 48 29 d7 sub %rdx,%rdi - 4331d0: 48 29 d6 sub %rdx,%rsi - 4331d3: 4c 8d 1d 96 03 07 00 lea 0x70396(%rip),%r11 # 4a3570 - 4331da: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4331de: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4331e2: ff e2 jmpq *%rdx - 4331e4: 0f 0b ud2 - 4331e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4331ed: 00 00 00 - 4331f0: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 4331f7: 0f 28 4e fb movaps -0x5(%rsi),%xmm1 - 4331fb: 0f 28 56 0b movaps 0xb(%rsi),%xmm2 - 4331ff: 0f 28 5e 1b movaps 0x1b(%rsi),%xmm3 - 433203: 0f 28 66 2b movaps 0x2b(%rsi),%xmm4 - 433207: 0f 28 6e 3b movaps 0x3b(%rsi),%xmm5 - 43320b: 0f 28 76 4b movaps 0x4b(%rsi),%xmm6 - 43320f: 0f 28 7e 5b movaps 0x5b(%rsi),%xmm7 - 433213: 44 0f 28 46 6b movaps 0x6b(%rsi),%xmm8 - 433218: 44 0f 28 4e 7b movaps 0x7b(%rsi),%xmm9 - 43321d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 433224: 66 45 0f 3a 0f c8 05 palignr $0x5,%xmm8,%xmm9 - 43322b: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) - 433230: 66 44 0f 3a 0f c7 05 palignr $0x5,%xmm7,%xmm8 - 433237: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) - 43323c: 66 0f 3a 0f fe 05 palignr $0x5,%xmm6,%xmm7 - 433242: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) - 433246: 66 0f 3a 0f f5 05 palignr $0x5,%xmm5,%xmm6 - 43324c: 0f 29 77 40 movaps %xmm6,0x40(%rdi) - 433250: 66 0f 3a 0f ec 05 palignr $0x5,%xmm4,%xmm5 - 433256: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) - 43325a: 66 0f 3a 0f e3 05 palignr $0x5,%xmm3,%xmm4 - 433260: 0f 29 67 20 movaps %xmm4,0x20(%rdi) - 433264: 66 0f 3a 0f da 05 palignr $0x5,%xmm2,%xmm3 - 43326a: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 43326e: 66 0f 3a 0f d1 05 palignr $0x5,%xmm1,%xmm2 - 433274: 0f 29 17 movaps %xmm2,(%rdi) - 433277: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 43327e: 0f 83 6c ff ff ff jae 4331f0 <__memmove_ssse3_back+0x830> - 433284: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433289: 48 81 c2 80 00 00 00 add $0x80,%rdx - 433290: 48 01 d7 add %rdx,%rdi - 433293: 48 01 d6 add %rdx,%rsi - 433296: 4c 8d 1d 13 05 07 00 lea 0x70513(%rip),%r11 # 4a37b0 - 43329d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4332a1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4332a5: ff e2 jmpq *%rdx - 4332a7: 0f 0b ud2 - 4332a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4332b0: 0f 28 4e fb movaps -0x5(%rsi),%xmm1 - 4332b4: 0f 28 56 eb movaps -0x15(%rsi),%xmm2 - 4332b8: 66 0f 3a 0f ca 05 palignr $0x5,%xmm2,%xmm1 - 4332be: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 4332c2: 0f 28 5e db movaps -0x25(%rsi),%xmm3 - 4332c6: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 - 4332cc: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 4332d0: 0f 28 66 cb movaps -0x35(%rsi),%xmm4 - 4332d4: 66 0f 3a 0f dc 05 palignr $0x5,%xmm4,%xmm3 - 4332da: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 4332de: 0f 28 6e bb movaps -0x45(%rsi),%xmm5 - 4332e2: 66 0f 3a 0f e5 05 palignr $0x5,%xmm5,%xmm4 - 4332e8: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) - 4332ec: 0f 28 76 ab movaps -0x55(%rsi),%xmm6 - 4332f0: 66 0f 3a 0f ee 05 palignr $0x5,%xmm6,%xmm5 - 4332f6: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) - 4332fa: 0f 28 7e 9b movaps -0x65(%rsi),%xmm7 - 4332fe: 66 0f 3a 0f f7 05 palignr $0x5,%xmm7,%xmm6 - 433304: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) - 433308: 44 0f 28 46 8b movaps -0x75(%rsi),%xmm8 - 43330d: 66 41 0f 3a 0f f8 05 palignr $0x5,%xmm8,%xmm7 - 433314: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) - 433318: 44 0f 28 8e 7b ff ff movaps -0x85(%rsi),%xmm9 - 43331f: ff - 433320: 66 45 0f 3a 0f c1 05 palignr $0x5,%xmm9,%xmm8 - 433327: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) - 43332c: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 433333: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 433337: 48 8d 76 80 lea -0x80(%rsi),%rsi - 43333b: 0f 83 6f ff ff ff jae 4332b0 <__memmove_ssse3_back+0x8f0> - 433341: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433346: 48 81 c2 80 00 00 00 add $0x80,%rdx - 43334d: 48 29 d7 sub %rdx,%rdi - 433350: 48 29 d6 sub %rdx,%rsi - 433353: 4c 8d 1d 16 02 07 00 lea 0x70216(%rip),%r11 # 4a3570 - 43335a: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43335e: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 433362: ff e2 jmpq *%rdx - 433364: 0f 0b ud2 - 433366: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43336d: 00 00 00 - 433370: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 433377: 0f 28 4e fa movaps -0x6(%rsi),%xmm1 - 43337b: 0f 28 56 0a movaps 0xa(%rsi),%xmm2 - 43337f: 0f 28 5e 1a movaps 0x1a(%rsi),%xmm3 - 433383: 0f 28 66 2a movaps 0x2a(%rsi),%xmm4 - 433387: 0f 28 6e 3a movaps 0x3a(%rsi),%xmm5 - 43338b: 0f 28 76 4a movaps 0x4a(%rsi),%xmm6 - 43338f: 0f 28 7e 5a movaps 0x5a(%rsi),%xmm7 - 433393: 44 0f 28 46 6a movaps 0x6a(%rsi),%xmm8 - 433398: 44 0f 28 4e 7a movaps 0x7a(%rsi),%xmm9 - 43339d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 4333a4: 66 45 0f 3a 0f c8 06 palignr $0x6,%xmm8,%xmm9 - 4333ab: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) - 4333b0: 66 44 0f 3a 0f c7 06 palignr $0x6,%xmm7,%xmm8 - 4333b7: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) - 4333bc: 66 0f 3a 0f fe 06 palignr $0x6,%xmm6,%xmm7 - 4333c2: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) - 4333c6: 66 0f 3a 0f f5 06 palignr $0x6,%xmm5,%xmm6 - 4333cc: 0f 29 77 40 movaps %xmm6,0x40(%rdi) - 4333d0: 66 0f 3a 0f ec 06 palignr $0x6,%xmm4,%xmm5 - 4333d6: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) - 4333da: 66 0f 3a 0f e3 06 palignr $0x6,%xmm3,%xmm4 - 4333e0: 0f 29 67 20 movaps %xmm4,0x20(%rdi) - 4333e4: 66 0f 3a 0f da 06 palignr $0x6,%xmm2,%xmm3 - 4333ea: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 4333ee: 66 0f 3a 0f d1 06 palignr $0x6,%xmm1,%xmm2 - 4333f4: 0f 29 17 movaps %xmm2,(%rdi) - 4333f7: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 4333fe: 0f 83 6c ff ff ff jae 433370 <__memmove_ssse3_back+0x9b0> - 433404: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433409: 48 81 c2 80 00 00 00 add $0x80,%rdx - 433410: 48 01 d7 add %rdx,%rdi - 433413: 48 01 d6 add %rdx,%rsi - 433416: 4c 8d 1d 93 03 07 00 lea 0x70393(%rip),%r11 # 4a37b0 - 43341d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 433421: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 433425: ff e2 jmpq *%rdx - 433427: 0f 0b ud2 - 433429: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 433430: 0f 28 4e fa movaps -0x6(%rsi),%xmm1 - 433434: 0f 28 56 ea movaps -0x16(%rsi),%xmm2 - 433438: 66 0f 3a 0f ca 06 palignr $0x6,%xmm2,%xmm1 - 43343e: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 433442: 0f 28 5e da movaps -0x26(%rsi),%xmm3 - 433446: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 - 43344c: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 433450: 0f 28 66 ca movaps -0x36(%rsi),%xmm4 - 433454: 66 0f 3a 0f dc 06 palignr $0x6,%xmm4,%xmm3 - 43345a: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 43345e: 0f 28 6e ba movaps -0x46(%rsi),%xmm5 - 433462: 66 0f 3a 0f e5 06 palignr $0x6,%xmm5,%xmm4 - 433468: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) - 43346c: 0f 28 76 aa movaps -0x56(%rsi),%xmm6 - 433470: 66 0f 3a 0f ee 06 palignr $0x6,%xmm6,%xmm5 - 433476: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) - 43347a: 0f 28 7e 9a movaps -0x66(%rsi),%xmm7 - 43347e: 66 0f 3a 0f f7 06 palignr $0x6,%xmm7,%xmm6 - 433484: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) - 433488: 44 0f 28 46 8a movaps -0x76(%rsi),%xmm8 - 43348d: 66 41 0f 3a 0f f8 06 palignr $0x6,%xmm8,%xmm7 - 433494: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) - 433498: 44 0f 28 8e 7a ff ff movaps -0x86(%rsi),%xmm9 - 43349f: ff - 4334a0: 66 45 0f 3a 0f c1 06 palignr $0x6,%xmm9,%xmm8 - 4334a7: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) - 4334ac: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 4334b3: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 4334b7: 48 8d 76 80 lea -0x80(%rsi),%rsi - 4334bb: 0f 83 6f ff ff ff jae 433430 <__memmove_ssse3_back+0xa70> - 4334c1: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 4334c6: 48 81 c2 80 00 00 00 add $0x80,%rdx - 4334cd: 48 29 d7 sub %rdx,%rdi - 4334d0: 48 29 d6 sub %rdx,%rsi - 4334d3: 4c 8d 1d 96 00 07 00 lea 0x70096(%rip),%r11 # 4a3570 - 4334da: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4334de: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4334e2: ff e2 jmpq *%rdx - 4334e4: 0f 0b ud2 - 4334e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4334ed: 00 00 00 - 4334f0: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 4334f7: 0f 28 4e f9 movaps -0x7(%rsi),%xmm1 - 4334fb: 0f 28 56 09 movaps 0x9(%rsi),%xmm2 - 4334ff: 0f 28 5e 19 movaps 0x19(%rsi),%xmm3 - 433503: 0f 28 66 29 movaps 0x29(%rsi),%xmm4 - 433507: 0f 28 6e 39 movaps 0x39(%rsi),%xmm5 - 43350b: 0f 28 76 49 movaps 0x49(%rsi),%xmm6 - 43350f: 0f 28 7e 59 movaps 0x59(%rsi),%xmm7 - 433513: 44 0f 28 46 69 movaps 0x69(%rsi),%xmm8 - 433518: 44 0f 28 4e 79 movaps 0x79(%rsi),%xmm9 - 43351d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 433524: 66 45 0f 3a 0f c8 07 palignr $0x7,%xmm8,%xmm9 - 43352b: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) - 433530: 66 44 0f 3a 0f c7 07 palignr $0x7,%xmm7,%xmm8 - 433537: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) - 43353c: 66 0f 3a 0f fe 07 palignr $0x7,%xmm6,%xmm7 - 433542: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) - 433546: 66 0f 3a 0f f5 07 palignr $0x7,%xmm5,%xmm6 - 43354c: 0f 29 77 40 movaps %xmm6,0x40(%rdi) - 433550: 66 0f 3a 0f ec 07 palignr $0x7,%xmm4,%xmm5 - 433556: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) - 43355a: 66 0f 3a 0f e3 07 palignr $0x7,%xmm3,%xmm4 - 433560: 0f 29 67 20 movaps %xmm4,0x20(%rdi) - 433564: 66 0f 3a 0f da 07 palignr $0x7,%xmm2,%xmm3 - 43356a: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 43356e: 66 0f 3a 0f d1 07 palignr $0x7,%xmm1,%xmm2 - 433574: 0f 29 17 movaps %xmm2,(%rdi) - 433577: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 43357e: 0f 83 6c ff ff ff jae 4334f0 <__memmove_ssse3_back+0xb30> - 433584: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433589: 48 81 c2 80 00 00 00 add $0x80,%rdx - 433590: 48 01 d7 add %rdx,%rdi - 433593: 48 01 d6 add %rdx,%rsi - 433596: 4c 8d 1d 13 02 07 00 lea 0x70213(%rip),%r11 # 4a37b0 - 43359d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4335a1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4335a5: ff e2 jmpq *%rdx - 4335a7: 0f 0b ud2 - 4335a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4335b0: 0f 28 4e f9 movaps -0x7(%rsi),%xmm1 - 4335b4: 0f 28 56 e9 movaps -0x17(%rsi),%xmm2 - 4335b8: 66 0f 3a 0f ca 07 palignr $0x7,%xmm2,%xmm1 - 4335be: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 4335c2: 0f 28 5e d9 movaps -0x27(%rsi),%xmm3 - 4335c6: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 - 4335cc: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 4335d0: 0f 28 66 c9 movaps -0x37(%rsi),%xmm4 - 4335d4: 66 0f 3a 0f dc 07 palignr $0x7,%xmm4,%xmm3 - 4335da: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 4335de: 0f 28 6e b9 movaps -0x47(%rsi),%xmm5 - 4335e2: 66 0f 3a 0f e5 07 palignr $0x7,%xmm5,%xmm4 - 4335e8: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) - 4335ec: 0f 28 76 a9 movaps -0x57(%rsi),%xmm6 - 4335f0: 66 0f 3a 0f ee 07 palignr $0x7,%xmm6,%xmm5 - 4335f6: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) - 4335fa: 0f 28 7e 99 movaps -0x67(%rsi),%xmm7 - 4335fe: 66 0f 3a 0f f7 07 palignr $0x7,%xmm7,%xmm6 - 433604: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) - 433608: 44 0f 28 46 89 movaps -0x77(%rsi),%xmm8 - 43360d: 66 41 0f 3a 0f f8 07 palignr $0x7,%xmm8,%xmm7 - 433614: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) - 433618: 44 0f 28 8e 79 ff ff movaps -0x87(%rsi),%xmm9 - 43361f: ff - 433620: 66 45 0f 3a 0f c1 07 palignr $0x7,%xmm9,%xmm8 - 433627: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) - 43362c: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 433633: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 433637: 48 8d 76 80 lea -0x80(%rsi),%rsi - 43363b: 0f 83 6f ff ff ff jae 4335b0 <__memmove_ssse3_back+0xbf0> - 433641: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433646: 48 81 c2 80 00 00 00 add $0x80,%rdx - 43364d: 48 29 d7 sub %rdx,%rdi - 433650: 48 29 d6 sub %rdx,%rsi - 433653: 4c 8d 1d 16 ff 06 00 lea 0x6ff16(%rip),%r11 # 4a3570 - 43365a: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43365e: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 433662: ff e2 jmpq *%rdx - 433664: 0f 0b ud2 - 433666: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43366d: 00 00 00 - 433670: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 433677: 0f 28 4e f8 movaps -0x8(%rsi),%xmm1 - 43367b: 0f 28 56 08 movaps 0x8(%rsi),%xmm2 - 43367f: 0f 28 5e 18 movaps 0x18(%rsi),%xmm3 - 433683: 0f 28 66 28 movaps 0x28(%rsi),%xmm4 - 433687: 0f 28 6e 38 movaps 0x38(%rsi),%xmm5 - 43368b: 0f 28 76 48 movaps 0x48(%rsi),%xmm6 - 43368f: 0f 28 7e 58 movaps 0x58(%rsi),%xmm7 - 433693: 44 0f 28 46 68 movaps 0x68(%rsi),%xmm8 - 433698: 44 0f 28 4e 78 movaps 0x78(%rsi),%xmm9 - 43369d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 4336a4: 66 45 0f 3a 0f c8 08 palignr $0x8,%xmm8,%xmm9 - 4336ab: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) - 4336b0: 66 44 0f 3a 0f c7 08 palignr $0x8,%xmm7,%xmm8 - 4336b7: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) - 4336bc: 66 0f 3a 0f fe 08 palignr $0x8,%xmm6,%xmm7 - 4336c2: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) - 4336c6: 66 0f 3a 0f f5 08 palignr $0x8,%xmm5,%xmm6 - 4336cc: 0f 29 77 40 movaps %xmm6,0x40(%rdi) - 4336d0: 66 0f 3a 0f ec 08 palignr $0x8,%xmm4,%xmm5 - 4336d6: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) - 4336da: 66 0f 3a 0f e3 08 palignr $0x8,%xmm3,%xmm4 - 4336e0: 0f 29 67 20 movaps %xmm4,0x20(%rdi) - 4336e4: 66 0f 3a 0f da 08 palignr $0x8,%xmm2,%xmm3 - 4336ea: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 4336ee: 66 0f 3a 0f d1 08 palignr $0x8,%xmm1,%xmm2 - 4336f4: 0f 29 17 movaps %xmm2,(%rdi) - 4336f7: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 4336fe: 0f 83 6c ff ff ff jae 433670 <__memmove_ssse3_back+0xcb0> - 433704: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433709: 48 81 c2 80 00 00 00 add $0x80,%rdx - 433710: 48 01 d7 add %rdx,%rdi - 433713: 48 01 d6 add %rdx,%rsi - 433716: 4c 8d 1d 93 00 07 00 lea 0x70093(%rip),%r11 # 4a37b0 - 43371d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 433721: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 433725: ff e2 jmpq *%rdx - 433727: 0f 0b ud2 - 433729: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 433730: 0f 28 4e f8 movaps -0x8(%rsi),%xmm1 - 433734: 0f 28 56 e8 movaps -0x18(%rsi),%xmm2 - 433738: 66 0f 3a 0f ca 08 palignr $0x8,%xmm2,%xmm1 - 43373e: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 433742: 0f 28 5e d8 movaps -0x28(%rsi),%xmm3 - 433746: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 - 43374c: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 433750: 0f 28 66 c8 movaps -0x38(%rsi),%xmm4 - 433754: 66 0f 3a 0f dc 08 palignr $0x8,%xmm4,%xmm3 - 43375a: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 43375e: 0f 28 6e b8 movaps -0x48(%rsi),%xmm5 - 433762: 66 0f 3a 0f e5 08 palignr $0x8,%xmm5,%xmm4 - 433768: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) - 43376c: 0f 28 76 a8 movaps -0x58(%rsi),%xmm6 - 433770: 66 0f 3a 0f ee 08 palignr $0x8,%xmm6,%xmm5 - 433776: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) - 43377a: 0f 28 7e 98 movaps -0x68(%rsi),%xmm7 - 43377e: 66 0f 3a 0f f7 08 palignr $0x8,%xmm7,%xmm6 - 433784: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) - 433788: 44 0f 28 46 88 movaps -0x78(%rsi),%xmm8 - 43378d: 66 41 0f 3a 0f f8 08 palignr $0x8,%xmm8,%xmm7 - 433794: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) - 433798: 44 0f 28 8e 78 ff ff movaps -0x88(%rsi),%xmm9 - 43379f: ff - 4337a0: 66 45 0f 3a 0f c1 08 palignr $0x8,%xmm9,%xmm8 - 4337a7: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) - 4337ac: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 4337b3: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 4337b7: 48 8d 76 80 lea -0x80(%rsi),%rsi - 4337bb: 0f 83 6f ff ff ff jae 433730 <__memmove_ssse3_back+0xd70> - 4337c1: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 4337c6: 48 81 c2 80 00 00 00 add $0x80,%rdx - 4337cd: 48 29 d7 sub %rdx,%rdi - 4337d0: 48 29 d6 sub %rdx,%rsi - 4337d3: 4c 8d 1d 96 fd 06 00 lea 0x6fd96(%rip),%r11 # 4a3570 - 4337da: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4337de: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4337e2: ff e2 jmpq *%rdx - 4337e4: 0f 0b ud2 - 4337e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4337ed: 00 00 00 - 4337f0: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 4337f7: 0f 28 4e f7 movaps -0x9(%rsi),%xmm1 - 4337fb: 0f 28 56 07 movaps 0x7(%rsi),%xmm2 - 4337ff: 0f 28 5e 17 movaps 0x17(%rsi),%xmm3 - 433803: 0f 28 66 27 movaps 0x27(%rsi),%xmm4 - 433807: 0f 28 6e 37 movaps 0x37(%rsi),%xmm5 - 43380b: 0f 28 76 47 movaps 0x47(%rsi),%xmm6 - 43380f: 0f 28 7e 57 movaps 0x57(%rsi),%xmm7 - 433813: 44 0f 28 46 67 movaps 0x67(%rsi),%xmm8 - 433818: 44 0f 28 4e 77 movaps 0x77(%rsi),%xmm9 - 43381d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 433824: 66 45 0f 3a 0f c8 09 palignr $0x9,%xmm8,%xmm9 - 43382b: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) - 433830: 66 44 0f 3a 0f c7 09 palignr $0x9,%xmm7,%xmm8 - 433837: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) - 43383c: 66 0f 3a 0f fe 09 palignr $0x9,%xmm6,%xmm7 - 433842: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) - 433846: 66 0f 3a 0f f5 09 palignr $0x9,%xmm5,%xmm6 - 43384c: 0f 29 77 40 movaps %xmm6,0x40(%rdi) - 433850: 66 0f 3a 0f ec 09 palignr $0x9,%xmm4,%xmm5 - 433856: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) - 43385a: 66 0f 3a 0f e3 09 palignr $0x9,%xmm3,%xmm4 - 433860: 0f 29 67 20 movaps %xmm4,0x20(%rdi) - 433864: 66 0f 3a 0f da 09 palignr $0x9,%xmm2,%xmm3 - 43386a: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 43386e: 66 0f 3a 0f d1 09 palignr $0x9,%xmm1,%xmm2 - 433874: 0f 29 17 movaps %xmm2,(%rdi) - 433877: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 43387e: 0f 83 6c ff ff ff jae 4337f0 <__memmove_ssse3_back+0xe30> - 433884: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433889: 48 81 c2 80 00 00 00 add $0x80,%rdx - 433890: 48 01 d7 add %rdx,%rdi - 433893: 48 01 d6 add %rdx,%rsi - 433896: 4c 8d 1d 13 ff 06 00 lea 0x6ff13(%rip),%r11 # 4a37b0 - 43389d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4338a1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4338a5: ff e2 jmpq *%rdx - 4338a7: 0f 0b ud2 - 4338a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4338b0: 0f 28 4e f7 movaps -0x9(%rsi),%xmm1 - 4338b4: 0f 28 56 e7 movaps -0x19(%rsi),%xmm2 - 4338b8: 66 0f 3a 0f ca 09 palignr $0x9,%xmm2,%xmm1 - 4338be: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 4338c2: 0f 28 5e d7 movaps -0x29(%rsi),%xmm3 - 4338c6: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 - 4338cc: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 4338d0: 0f 28 66 c7 movaps -0x39(%rsi),%xmm4 - 4338d4: 66 0f 3a 0f dc 09 palignr $0x9,%xmm4,%xmm3 - 4338da: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 4338de: 0f 28 6e b7 movaps -0x49(%rsi),%xmm5 - 4338e2: 66 0f 3a 0f e5 09 palignr $0x9,%xmm5,%xmm4 - 4338e8: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) - 4338ec: 0f 28 76 a7 movaps -0x59(%rsi),%xmm6 - 4338f0: 66 0f 3a 0f ee 09 palignr $0x9,%xmm6,%xmm5 - 4338f6: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) - 4338fa: 0f 28 7e 97 movaps -0x69(%rsi),%xmm7 - 4338fe: 66 0f 3a 0f f7 09 palignr $0x9,%xmm7,%xmm6 - 433904: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) - 433908: 44 0f 28 46 87 movaps -0x79(%rsi),%xmm8 - 43390d: 66 41 0f 3a 0f f8 09 palignr $0x9,%xmm8,%xmm7 - 433914: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) - 433918: 44 0f 28 8e 77 ff ff movaps -0x89(%rsi),%xmm9 - 43391f: ff - 433920: 66 45 0f 3a 0f c1 09 palignr $0x9,%xmm9,%xmm8 - 433927: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) - 43392c: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 433933: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 433937: 48 8d 76 80 lea -0x80(%rsi),%rsi - 43393b: 0f 83 6f ff ff ff jae 4338b0 <__memmove_ssse3_back+0xef0> - 433941: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433946: 48 81 c2 80 00 00 00 add $0x80,%rdx - 43394d: 48 29 d7 sub %rdx,%rdi - 433950: 48 29 d6 sub %rdx,%rsi - 433953: 4c 8d 1d 16 fc 06 00 lea 0x6fc16(%rip),%r11 # 4a3570 - 43395a: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43395e: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 433962: ff e2 jmpq *%rdx - 433964: 0f 0b ud2 - 433966: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43396d: 00 00 00 - 433970: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 433977: 0f 28 4e f6 movaps -0xa(%rsi),%xmm1 - 43397b: 0f 28 56 06 movaps 0x6(%rsi),%xmm2 - 43397f: 0f 28 5e 16 movaps 0x16(%rsi),%xmm3 - 433983: 0f 28 66 26 movaps 0x26(%rsi),%xmm4 - 433987: 0f 28 6e 36 movaps 0x36(%rsi),%xmm5 - 43398b: 0f 28 76 46 movaps 0x46(%rsi),%xmm6 - 43398f: 0f 28 7e 56 movaps 0x56(%rsi),%xmm7 - 433993: 44 0f 28 46 66 movaps 0x66(%rsi),%xmm8 - 433998: 44 0f 28 4e 76 movaps 0x76(%rsi),%xmm9 - 43399d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 4339a4: 66 45 0f 3a 0f c8 0a palignr $0xa,%xmm8,%xmm9 - 4339ab: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) - 4339b0: 66 44 0f 3a 0f c7 0a palignr $0xa,%xmm7,%xmm8 - 4339b7: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) - 4339bc: 66 0f 3a 0f fe 0a palignr $0xa,%xmm6,%xmm7 - 4339c2: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) - 4339c6: 66 0f 3a 0f f5 0a palignr $0xa,%xmm5,%xmm6 - 4339cc: 0f 29 77 40 movaps %xmm6,0x40(%rdi) - 4339d0: 66 0f 3a 0f ec 0a palignr $0xa,%xmm4,%xmm5 - 4339d6: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) - 4339da: 66 0f 3a 0f e3 0a palignr $0xa,%xmm3,%xmm4 - 4339e0: 0f 29 67 20 movaps %xmm4,0x20(%rdi) - 4339e4: 66 0f 3a 0f da 0a palignr $0xa,%xmm2,%xmm3 - 4339ea: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 4339ee: 66 0f 3a 0f d1 0a palignr $0xa,%xmm1,%xmm2 - 4339f4: 0f 29 17 movaps %xmm2,(%rdi) - 4339f7: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 4339fe: 0f 83 6c ff ff ff jae 433970 <__memmove_ssse3_back+0xfb0> - 433a04: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433a09: 48 81 c2 80 00 00 00 add $0x80,%rdx - 433a10: 48 01 d7 add %rdx,%rdi - 433a13: 48 01 d6 add %rdx,%rsi - 433a16: 4c 8d 1d 93 fd 06 00 lea 0x6fd93(%rip),%r11 # 4a37b0 - 433a1d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 433a21: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 433a25: ff e2 jmpq *%rdx - 433a27: 0f 0b ud2 - 433a29: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 433a30: 0f 28 4e f6 movaps -0xa(%rsi),%xmm1 - 433a34: 0f 28 56 e6 movaps -0x1a(%rsi),%xmm2 - 433a38: 66 0f 3a 0f ca 0a palignr $0xa,%xmm2,%xmm1 - 433a3e: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 433a42: 0f 28 5e d6 movaps -0x2a(%rsi),%xmm3 - 433a46: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 - 433a4c: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 433a50: 0f 28 66 c6 movaps -0x3a(%rsi),%xmm4 - 433a54: 66 0f 3a 0f dc 0a palignr $0xa,%xmm4,%xmm3 - 433a5a: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 433a5e: 0f 28 6e b6 movaps -0x4a(%rsi),%xmm5 - 433a62: 66 0f 3a 0f e5 0a palignr $0xa,%xmm5,%xmm4 - 433a68: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) - 433a6c: 0f 28 76 a6 movaps -0x5a(%rsi),%xmm6 - 433a70: 66 0f 3a 0f ee 0a palignr $0xa,%xmm6,%xmm5 - 433a76: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) - 433a7a: 0f 28 7e 96 movaps -0x6a(%rsi),%xmm7 - 433a7e: 66 0f 3a 0f f7 0a palignr $0xa,%xmm7,%xmm6 - 433a84: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) - 433a88: 44 0f 28 46 86 movaps -0x7a(%rsi),%xmm8 - 433a8d: 66 41 0f 3a 0f f8 0a palignr $0xa,%xmm8,%xmm7 - 433a94: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) - 433a98: 44 0f 28 8e 76 ff ff movaps -0x8a(%rsi),%xmm9 - 433a9f: ff - 433aa0: 66 45 0f 3a 0f c1 0a palignr $0xa,%xmm9,%xmm8 - 433aa7: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) - 433aac: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 433ab3: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 433ab7: 48 8d 76 80 lea -0x80(%rsi),%rsi - 433abb: 0f 83 6f ff ff ff jae 433a30 <__memmove_ssse3_back+0x1070> - 433ac1: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433ac6: 48 81 c2 80 00 00 00 add $0x80,%rdx - 433acd: 48 29 d7 sub %rdx,%rdi - 433ad0: 48 29 d6 sub %rdx,%rsi - 433ad3: 4c 8d 1d 96 fa 06 00 lea 0x6fa96(%rip),%r11 # 4a3570 - 433ada: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 433ade: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 433ae2: ff e2 jmpq *%rdx - 433ae4: 0f 0b ud2 - 433ae6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 433aed: 00 00 00 - 433af0: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 433af7: 0f 28 4e f5 movaps -0xb(%rsi),%xmm1 - 433afb: 0f 28 56 05 movaps 0x5(%rsi),%xmm2 - 433aff: 0f 28 5e 15 movaps 0x15(%rsi),%xmm3 - 433b03: 0f 28 66 25 movaps 0x25(%rsi),%xmm4 - 433b07: 0f 28 6e 35 movaps 0x35(%rsi),%xmm5 - 433b0b: 0f 28 76 45 movaps 0x45(%rsi),%xmm6 - 433b0f: 0f 28 7e 55 movaps 0x55(%rsi),%xmm7 - 433b13: 44 0f 28 46 65 movaps 0x65(%rsi),%xmm8 - 433b18: 44 0f 28 4e 75 movaps 0x75(%rsi),%xmm9 - 433b1d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 433b24: 66 45 0f 3a 0f c8 0b palignr $0xb,%xmm8,%xmm9 - 433b2b: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) - 433b30: 66 44 0f 3a 0f c7 0b palignr $0xb,%xmm7,%xmm8 - 433b37: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) - 433b3c: 66 0f 3a 0f fe 0b palignr $0xb,%xmm6,%xmm7 - 433b42: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) - 433b46: 66 0f 3a 0f f5 0b palignr $0xb,%xmm5,%xmm6 - 433b4c: 0f 29 77 40 movaps %xmm6,0x40(%rdi) - 433b50: 66 0f 3a 0f ec 0b palignr $0xb,%xmm4,%xmm5 - 433b56: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) - 433b5a: 66 0f 3a 0f e3 0b palignr $0xb,%xmm3,%xmm4 - 433b60: 0f 29 67 20 movaps %xmm4,0x20(%rdi) - 433b64: 66 0f 3a 0f da 0b palignr $0xb,%xmm2,%xmm3 - 433b6a: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 433b6e: 66 0f 3a 0f d1 0b palignr $0xb,%xmm1,%xmm2 - 433b74: 0f 29 17 movaps %xmm2,(%rdi) - 433b77: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 433b7e: 0f 83 6c ff ff ff jae 433af0 <__memmove_ssse3_back+0x1130> - 433b84: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433b89: 48 81 c2 80 00 00 00 add $0x80,%rdx - 433b90: 48 01 d7 add %rdx,%rdi - 433b93: 48 01 d6 add %rdx,%rsi - 433b96: 4c 8d 1d 13 fc 06 00 lea 0x6fc13(%rip),%r11 # 4a37b0 - 433b9d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 433ba1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 433ba5: ff e2 jmpq *%rdx - 433ba7: 0f 0b ud2 - 433ba9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 433bb0: 0f 28 4e f5 movaps -0xb(%rsi),%xmm1 - 433bb4: 0f 28 56 e5 movaps -0x1b(%rsi),%xmm2 - 433bb8: 66 0f 3a 0f ca 0b palignr $0xb,%xmm2,%xmm1 - 433bbe: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 433bc2: 0f 28 5e d5 movaps -0x2b(%rsi),%xmm3 - 433bc6: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 - 433bcc: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 433bd0: 0f 28 66 c5 movaps -0x3b(%rsi),%xmm4 - 433bd4: 66 0f 3a 0f dc 0b palignr $0xb,%xmm4,%xmm3 - 433bda: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 433bde: 0f 28 6e b5 movaps -0x4b(%rsi),%xmm5 - 433be2: 66 0f 3a 0f e5 0b palignr $0xb,%xmm5,%xmm4 - 433be8: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) - 433bec: 0f 28 76 a5 movaps -0x5b(%rsi),%xmm6 - 433bf0: 66 0f 3a 0f ee 0b palignr $0xb,%xmm6,%xmm5 - 433bf6: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) - 433bfa: 0f 28 7e 95 movaps -0x6b(%rsi),%xmm7 - 433bfe: 66 0f 3a 0f f7 0b palignr $0xb,%xmm7,%xmm6 - 433c04: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) - 433c08: 44 0f 28 46 85 movaps -0x7b(%rsi),%xmm8 - 433c0d: 66 41 0f 3a 0f f8 0b palignr $0xb,%xmm8,%xmm7 - 433c14: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) - 433c18: 44 0f 28 8e 75 ff ff movaps -0x8b(%rsi),%xmm9 - 433c1f: ff - 433c20: 66 45 0f 3a 0f c1 0b palignr $0xb,%xmm9,%xmm8 - 433c27: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) - 433c2c: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 433c33: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 433c37: 48 8d 76 80 lea -0x80(%rsi),%rsi - 433c3b: 0f 83 6f ff ff ff jae 433bb0 <__memmove_ssse3_back+0x11f0> - 433c41: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433c46: 48 81 c2 80 00 00 00 add $0x80,%rdx - 433c4d: 48 29 d7 sub %rdx,%rdi - 433c50: 48 29 d6 sub %rdx,%rsi - 433c53: 4c 8d 1d 16 f9 06 00 lea 0x6f916(%rip),%r11 # 4a3570 - 433c5a: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 433c5e: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 433c62: ff e2 jmpq *%rdx - 433c64: 0f 0b ud2 - 433c66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 433c6d: 00 00 00 - 433c70: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 433c77: 66 0f 6f 4e f4 movdqa -0xc(%rsi),%xmm1 - 433c7c: 0f 28 56 04 movaps 0x4(%rsi),%xmm2 - 433c80: 0f 28 5e 14 movaps 0x14(%rsi),%xmm3 - 433c84: 0f 28 66 24 movaps 0x24(%rsi),%xmm4 - 433c88: 0f 28 6e 34 movaps 0x34(%rsi),%xmm5 - 433c8c: 0f 28 76 44 movaps 0x44(%rsi),%xmm6 - 433c90: 0f 28 7e 54 movaps 0x54(%rsi),%xmm7 - 433c94: 44 0f 28 46 64 movaps 0x64(%rsi),%xmm8 - 433c99: 44 0f 28 4e 74 movaps 0x74(%rsi),%xmm9 - 433c9e: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 433ca5: 66 45 0f 3a 0f c8 0c palignr $0xc,%xmm8,%xmm9 - 433cac: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) - 433cb1: 66 44 0f 3a 0f c7 0c palignr $0xc,%xmm7,%xmm8 - 433cb8: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) - 433cbd: 66 0f 3a 0f fe 0c palignr $0xc,%xmm6,%xmm7 - 433cc3: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) - 433cc7: 66 0f 3a 0f f5 0c palignr $0xc,%xmm5,%xmm6 - 433ccd: 0f 29 77 40 movaps %xmm6,0x40(%rdi) - 433cd1: 66 0f 3a 0f ec 0c palignr $0xc,%xmm4,%xmm5 - 433cd7: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) - 433cdb: 66 0f 3a 0f e3 0c palignr $0xc,%xmm3,%xmm4 - 433ce1: 0f 29 67 20 movaps %xmm4,0x20(%rdi) - 433ce5: 66 0f 3a 0f da 0c palignr $0xc,%xmm2,%xmm3 - 433ceb: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 433cef: 66 0f 3a 0f d1 0c palignr $0xc,%xmm1,%xmm2 - 433cf5: 0f 29 17 movaps %xmm2,(%rdi) - 433cf8: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 433cff: 0f 83 6b ff ff ff jae 433c70 <__memmove_ssse3_back+0x12b0> - 433d05: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433d0a: 48 81 c2 80 00 00 00 add $0x80,%rdx - 433d11: 48 01 d7 add %rdx,%rdi - 433d14: 48 01 d6 add %rdx,%rsi - 433d17: 4c 8d 1d 92 fa 06 00 lea 0x6fa92(%rip),%r11 # 4a37b0 - 433d1e: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 433d22: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 433d26: ff e2 jmpq *%rdx - 433d28: 0f 0b ud2 - 433d2a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 433d30: 0f 28 4e f4 movaps -0xc(%rsi),%xmm1 - 433d34: 0f 28 56 e4 movaps -0x1c(%rsi),%xmm2 - 433d38: 66 0f 3a 0f ca 0c palignr $0xc,%xmm2,%xmm1 - 433d3e: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 433d42: 0f 28 5e d4 movaps -0x2c(%rsi),%xmm3 - 433d46: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 - 433d4c: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 433d50: 0f 28 66 c4 movaps -0x3c(%rsi),%xmm4 - 433d54: 66 0f 3a 0f dc 0c palignr $0xc,%xmm4,%xmm3 - 433d5a: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 433d5e: 0f 28 6e b4 movaps -0x4c(%rsi),%xmm5 - 433d62: 66 0f 3a 0f e5 0c palignr $0xc,%xmm5,%xmm4 - 433d68: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) - 433d6c: 0f 28 76 a4 movaps -0x5c(%rsi),%xmm6 - 433d70: 66 0f 3a 0f ee 0c palignr $0xc,%xmm6,%xmm5 - 433d76: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) - 433d7a: 0f 28 7e 94 movaps -0x6c(%rsi),%xmm7 - 433d7e: 66 0f 3a 0f f7 0c palignr $0xc,%xmm7,%xmm6 - 433d84: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) - 433d88: 44 0f 28 46 84 movaps -0x7c(%rsi),%xmm8 - 433d8d: 66 41 0f 3a 0f f8 0c palignr $0xc,%xmm8,%xmm7 - 433d94: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) - 433d98: 44 0f 28 8e 74 ff ff movaps -0x8c(%rsi),%xmm9 - 433d9f: ff - 433da0: 66 45 0f 3a 0f c1 0c palignr $0xc,%xmm9,%xmm8 - 433da7: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) - 433dac: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 433db3: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 433db7: 48 8d 76 80 lea -0x80(%rsi),%rsi - 433dbb: 0f 83 6f ff ff ff jae 433d30 <__memmove_ssse3_back+0x1370> - 433dc1: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433dc6: 48 81 c2 80 00 00 00 add $0x80,%rdx - 433dcd: 48 29 d7 sub %rdx,%rdi - 433dd0: 48 29 d6 sub %rdx,%rsi - 433dd3: 4c 8d 1d 96 f7 06 00 lea 0x6f796(%rip),%r11 # 4a3570 - 433dda: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 433dde: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 433de2: ff e2 jmpq *%rdx - 433de4: 0f 0b ud2 - 433de6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 433ded: 00 00 00 - 433df0: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 433df7: 0f 28 4e f3 movaps -0xd(%rsi),%xmm1 - 433dfb: 0f 28 56 03 movaps 0x3(%rsi),%xmm2 - 433dff: 0f 28 5e 13 movaps 0x13(%rsi),%xmm3 - 433e03: 0f 28 66 23 movaps 0x23(%rsi),%xmm4 - 433e07: 0f 28 6e 33 movaps 0x33(%rsi),%xmm5 - 433e0b: 0f 28 76 43 movaps 0x43(%rsi),%xmm6 - 433e0f: 0f 28 7e 53 movaps 0x53(%rsi),%xmm7 - 433e13: 44 0f 28 46 63 movaps 0x63(%rsi),%xmm8 - 433e18: 44 0f 28 4e 73 movaps 0x73(%rsi),%xmm9 - 433e1d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 433e24: 66 45 0f 3a 0f c8 0d palignr $0xd,%xmm8,%xmm9 - 433e2b: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) - 433e30: 66 44 0f 3a 0f c7 0d palignr $0xd,%xmm7,%xmm8 - 433e37: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) - 433e3c: 66 0f 3a 0f fe 0d palignr $0xd,%xmm6,%xmm7 - 433e42: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) - 433e46: 66 0f 3a 0f f5 0d palignr $0xd,%xmm5,%xmm6 - 433e4c: 0f 29 77 40 movaps %xmm6,0x40(%rdi) - 433e50: 66 0f 3a 0f ec 0d palignr $0xd,%xmm4,%xmm5 - 433e56: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) - 433e5a: 66 0f 3a 0f e3 0d palignr $0xd,%xmm3,%xmm4 - 433e60: 0f 29 67 20 movaps %xmm4,0x20(%rdi) - 433e64: 66 0f 3a 0f da 0d palignr $0xd,%xmm2,%xmm3 - 433e6a: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 433e6e: 66 0f 3a 0f d1 0d palignr $0xd,%xmm1,%xmm2 - 433e74: 0f 29 17 movaps %xmm2,(%rdi) - 433e77: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 433e7e: 0f 83 6c ff ff ff jae 433df0 <__memmove_ssse3_back+0x1430> - 433e84: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433e89: 48 81 c2 80 00 00 00 add $0x80,%rdx - 433e90: 48 01 d7 add %rdx,%rdi - 433e93: 48 01 d6 add %rdx,%rsi - 433e96: 4c 8d 1d 13 f9 06 00 lea 0x6f913(%rip),%r11 # 4a37b0 - 433e9d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 433ea1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 433ea5: ff e2 jmpq *%rdx - 433ea7: 0f 0b ud2 - 433ea9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 433eb0: 0f 28 4e f3 movaps -0xd(%rsi),%xmm1 - 433eb4: 0f 28 56 e3 movaps -0x1d(%rsi),%xmm2 - 433eb8: 66 0f 3a 0f ca 0d palignr $0xd,%xmm2,%xmm1 - 433ebe: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 433ec2: 0f 28 5e d3 movaps -0x2d(%rsi),%xmm3 - 433ec6: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 - 433ecc: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 433ed0: 0f 28 66 c3 movaps -0x3d(%rsi),%xmm4 - 433ed4: 66 0f 3a 0f dc 0d palignr $0xd,%xmm4,%xmm3 - 433eda: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 433ede: 0f 28 6e b3 movaps -0x4d(%rsi),%xmm5 - 433ee2: 66 0f 3a 0f e5 0d palignr $0xd,%xmm5,%xmm4 - 433ee8: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) - 433eec: 0f 28 76 a3 movaps -0x5d(%rsi),%xmm6 - 433ef0: 66 0f 3a 0f ee 0d palignr $0xd,%xmm6,%xmm5 - 433ef6: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) - 433efa: 0f 28 7e 93 movaps -0x6d(%rsi),%xmm7 - 433efe: 66 0f 3a 0f f7 0d palignr $0xd,%xmm7,%xmm6 - 433f04: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) - 433f08: 44 0f 28 46 83 movaps -0x7d(%rsi),%xmm8 - 433f0d: 66 41 0f 3a 0f f8 0d palignr $0xd,%xmm8,%xmm7 - 433f14: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) - 433f18: 44 0f 28 8e 73 ff ff movaps -0x8d(%rsi),%xmm9 - 433f1f: ff - 433f20: 66 45 0f 3a 0f c1 0d palignr $0xd,%xmm9,%xmm8 - 433f27: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) - 433f2c: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 433f33: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 433f37: 48 8d 76 80 lea -0x80(%rsi),%rsi - 433f3b: 0f 83 6f ff ff ff jae 433eb0 <__memmove_ssse3_back+0x14f0> - 433f41: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 433f46: 48 81 c2 80 00 00 00 add $0x80,%rdx - 433f4d: 48 29 d7 sub %rdx,%rdi - 433f50: 48 29 d6 sub %rdx,%rsi - 433f53: 4c 8d 1d 16 f6 06 00 lea 0x6f616(%rip),%r11 # 4a3570 - 433f5a: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 433f5e: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 433f62: ff e2 jmpq *%rdx - 433f64: 0f 0b ud2 - 433f66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 433f6d: 00 00 00 - 433f70: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 433f77: 0f 28 4e f2 movaps -0xe(%rsi),%xmm1 - 433f7b: 0f 28 56 02 movaps 0x2(%rsi),%xmm2 - 433f7f: 0f 28 5e 12 movaps 0x12(%rsi),%xmm3 - 433f83: 0f 28 66 22 movaps 0x22(%rsi),%xmm4 - 433f87: 0f 28 6e 32 movaps 0x32(%rsi),%xmm5 - 433f8b: 0f 28 76 42 movaps 0x42(%rsi),%xmm6 - 433f8f: 0f 28 7e 52 movaps 0x52(%rsi),%xmm7 - 433f93: 44 0f 28 46 62 movaps 0x62(%rsi),%xmm8 - 433f98: 44 0f 28 4e 72 movaps 0x72(%rsi),%xmm9 - 433f9d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 433fa4: 66 45 0f 3a 0f c8 0e palignr $0xe,%xmm8,%xmm9 - 433fab: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) - 433fb0: 66 44 0f 3a 0f c7 0e palignr $0xe,%xmm7,%xmm8 - 433fb7: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) - 433fbc: 66 0f 3a 0f fe 0e palignr $0xe,%xmm6,%xmm7 - 433fc2: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) - 433fc6: 66 0f 3a 0f f5 0e palignr $0xe,%xmm5,%xmm6 - 433fcc: 0f 29 77 40 movaps %xmm6,0x40(%rdi) - 433fd0: 66 0f 3a 0f ec 0e palignr $0xe,%xmm4,%xmm5 - 433fd6: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) - 433fda: 66 0f 3a 0f e3 0e palignr $0xe,%xmm3,%xmm4 - 433fe0: 0f 29 67 20 movaps %xmm4,0x20(%rdi) - 433fe4: 66 0f 3a 0f da 0e palignr $0xe,%xmm2,%xmm3 - 433fea: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 433fee: 66 0f 3a 0f d1 0e palignr $0xe,%xmm1,%xmm2 - 433ff4: 0f 29 17 movaps %xmm2,(%rdi) - 433ff7: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 433ffe: 0f 83 6c ff ff ff jae 433f70 <__memmove_ssse3_back+0x15b0> - 434004: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 434009: 48 81 c2 80 00 00 00 add $0x80,%rdx - 434010: 48 01 d7 add %rdx,%rdi - 434013: 48 01 d6 add %rdx,%rsi - 434016: 4c 8d 1d 93 f7 06 00 lea 0x6f793(%rip),%r11 # 4a37b0 - 43401d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 434021: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 434025: ff e2 jmpq *%rdx - 434027: 0f 0b ud2 - 434029: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 434030: 0f 28 4e f2 movaps -0xe(%rsi),%xmm1 - 434034: 0f 28 56 e2 movaps -0x1e(%rsi),%xmm2 - 434038: 66 0f 3a 0f ca 0e palignr $0xe,%xmm2,%xmm1 - 43403e: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 434042: 0f 28 5e d2 movaps -0x2e(%rsi),%xmm3 - 434046: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 - 43404c: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 434050: 0f 28 66 c2 movaps -0x3e(%rsi),%xmm4 - 434054: 66 0f 3a 0f dc 0e palignr $0xe,%xmm4,%xmm3 - 43405a: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 43405e: 0f 28 6e b2 movaps -0x4e(%rsi),%xmm5 - 434062: 66 0f 3a 0f e5 0e palignr $0xe,%xmm5,%xmm4 - 434068: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) - 43406c: 0f 28 76 a2 movaps -0x5e(%rsi),%xmm6 - 434070: 66 0f 3a 0f ee 0e palignr $0xe,%xmm6,%xmm5 - 434076: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) - 43407a: 0f 28 7e 92 movaps -0x6e(%rsi),%xmm7 - 43407e: 66 0f 3a 0f f7 0e palignr $0xe,%xmm7,%xmm6 - 434084: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) - 434088: 44 0f 28 46 82 movaps -0x7e(%rsi),%xmm8 - 43408d: 66 41 0f 3a 0f f8 0e palignr $0xe,%xmm8,%xmm7 - 434094: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) - 434098: 44 0f 28 8e 72 ff ff movaps -0x8e(%rsi),%xmm9 - 43409f: ff - 4340a0: 66 45 0f 3a 0f c1 0e palignr $0xe,%xmm9,%xmm8 - 4340a7: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) - 4340ac: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 4340b3: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 4340b7: 48 8d 76 80 lea -0x80(%rsi),%rsi - 4340bb: 0f 83 6f ff ff ff jae 434030 <__memmove_ssse3_back+0x1670> - 4340c1: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 4340c6: 48 81 c2 80 00 00 00 add $0x80,%rdx - 4340cd: 48 29 d7 sub %rdx,%rdi - 4340d0: 48 29 d6 sub %rdx,%rsi - 4340d3: 4c 8d 1d 96 f4 06 00 lea 0x6f496(%rip),%r11 # 4a3570 - 4340da: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4340de: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4340e2: ff e2 jmpq *%rdx - 4340e4: 0f 0b ud2 - 4340e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4340ed: 00 00 00 - 4340f0: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 4340f7: 0f 28 4e f1 movaps -0xf(%rsi),%xmm1 - 4340fb: 0f 28 56 01 movaps 0x1(%rsi),%xmm2 - 4340ff: 0f 28 5e 11 movaps 0x11(%rsi),%xmm3 - 434103: 0f 28 66 21 movaps 0x21(%rsi),%xmm4 - 434107: 0f 28 6e 31 movaps 0x31(%rsi),%xmm5 - 43410b: 0f 28 76 41 movaps 0x41(%rsi),%xmm6 - 43410f: 0f 28 7e 51 movaps 0x51(%rsi),%xmm7 - 434113: 44 0f 28 46 61 movaps 0x61(%rsi),%xmm8 - 434118: 44 0f 28 4e 71 movaps 0x71(%rsi),%xmm9 - 43411d: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 434124: 66 45 0f 3a 0f c8 0f palignr $0xf,%xmm8,%xmm9 - 43412b: 44 0f 29 4f 70 movaps %xmm9,0x70(%rdi) - 434130: 66 44 0f 3a 0f c7 0f palignr $0xf,%xmm7,%xmm8 - 434137: 44 0f 29 47 60 movaps %xmm8,0x60(%rdi) - 43413c: 66 0f 3a 0f fe 0f palignr $0xf,%xmm6,%xmm7 - 434142: 0f 29 7f 50 movaps %xmm7,0x50(%rdi) - 434146: 66 0f 3a 0f f5 0f palignr $0xf,%xmm5,%xmm6 - 43414c: 0f 29 77 40 movaps %xmm6,0x40(%rdi) - 434150: 66 0f 3a 0f ec 0f palignr $0xf,%xmm4,%xmm5 - 434156: 0f 29 6f 30 movaps %xmm5,0x30(%rdi) - 43415a: 66 0f 3a 0f e3 0f palignr $0xf,%xmm3,%xmm4 - 434160: 0f 29 67 20 movaps %xmm4,0x20(%rdi) - 434164: 66 0f 3a 0f da 0f palignr $0xf,%xmm2,%xmm3 - 43416a: 0f 29 5f 10 movaps %xmm3,0x10(%rdi) - 43416e: 66 0f 3a 0f d1 0f palignr $0xf,%xmm1,%xmm2 - 434174: 0f 29 17 movaps %xmm2,(%rdi) - 434177: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 43417e: 0f 83 6c ff ff ff jae 4340f0 <__memmove_ssse3_back+0x1730> - 434184: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 434189: 48 81 c2 80 00 00 00 add $0x80,%rdx - 434190: 48 01 d7 add %rdx,%rdi - 434193: 48 01 d6 add %rdx,%rsi - 434196: 4c 8d 1d 13 f6 06 00 lea 0x6f613(%rip),%r11 # 4a37b0 - 43419d: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4341a1: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4341a5: ff e2 jmpq *%rdx - 4341a7: 0f 0b ud2 - 4341a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4341b0: 0f 28 4e f1 movaps -0xf(%rsi),%xmm1 - 4341b4: 0f 28 56 e1 movaps -0x1f(%rsi),%xmm2 - 4341b8: 66 0f 3a 0f ca 0f palignr $0xf,%xmm2,%xmm1 - 4341be: 0f 29 4f f0 movaps %xmm1,-0x10(%rdi) - 4341c2: 0f 28 5e d1 movaps -0x2f(%rsi),%xmm3 - 4341c6: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 - 4341cc: 0f 29 57 e0 movaps %xmm2,-0x20(%rdi) - 4341d0: 0f 28 66 c1 movaps -0x3f(%rsi),%xmm4 - 4341d4: 66 0f 3a 0f dc 0f palignr $0xf,%xmm4,%xmm3 - 4341da: 0f 29 5f d0 movaps %xmm3,-0x30(%rdi) - 4341de: 0f 28 6e b1 movaps -0x4f(%rsi),%xmm5 - 4341e2: 66 0f 3a 0f e5 0f palignr $0xf,%xmm5,%xmm4 - 4341e8: 0f 29 67 c0 movaps %xmm4,-0x40(%rdi) - 4341ec: 0f 28 76 a1 movaps -0x5f(%rsi),%xmm6 - 4341f0: 66 0f 3a 0f ee 0f palignr $0xf,%xmm6,%xmm5 - 4341f6: 0f 29 6f b0 movaps %xmm5,-0x50(%rdi) - 4341fa: 0f 28 7e 91 movaps -0x6f(%rsi),%xmm7 - 4341fe: 66 0f 3a 0f f7 0f palignr $0xf,%xmm7,%xmm6 - 434204: 0f 29 77 a0 movaps %xmm6,-0x60(%rdi) - 434208: 44 0f 28 46 81 movaps -0x7f(%rsi),%xmm8 - 43420d: 66 41 0f 3a 0f f8 0f palignr $0xf,%xmm8,%xmm7 - 434214: 0f 29 7f 90 movaps %xmm7,-0x70(%rdi) - 434218: 44 0f 28 8e 71 ff ff movaps -0x8f(%rsi),%xmm9 - 43421f: ff - 434220: 66 45 0f 3a 0f c1 0f palignr $0xf,%xmm9,%xmm8 - 434227: 44 0f 29 47 80 movaps %xmm8,-0x80(%rdi) - 43422c: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 434233: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 434237: 48 8d 76 80 lea -0x80(%rsi),%rsi - 43423b: 0f 83 6f ff ff ff jae 4341b0 <__memmove_ssse3_back+0x17f0> - 434241: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 434246: 48 81 c2 80 00 00 00 add $0x80,%rdx - 43424d: 48 29 d7 sub %rdx,%rdi - 434250: 48 29 d6 sub %rdx,%rsi - 434253: 4c 8d 1d 16 f3 06 00 lea 0x6f316(%rip),%r11 # 4a3570 - 43425a: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 43425e: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 434262: ff e2 jmpq *%rdx - 434264: 0f 0b ud2 - 434266: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43426d: 00 00 00 - 434270: f3 0f 6f 0e movdqu (%rsi),%xmm1 - 434274: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 434279: 66 0f 7f 0f movdqa %xmm1,(%rdi) - 43427d: 48 83 ea 10 sub $0x10,%rdx - 434281: 48 83 c6 10 add $0x10,%rsi - 434285: 48 83 c7 10 add $0x10,%rdi - 434289: 48 8b 0d 20 6e 29 00 mov 0x296e20(%rip),%rcx # 6cb0b0 <__x86_shared_cache_size_half> - 434290: 49 89 f1 mov %rsi,%r9 - 434293: 49 29 f9 sub %rdi,%r9 - 434296: 49 39 d1 cmp %rdx,%r9 - 434299: 73 09 jae 4342a4 <__memmove_ssse3_back+0x18e4> - 43429b: 49 39 c9 cmp %rcx,%r9 - 43429e: 0f 86 c1 00 00 00 jbe 434365 <__memmove_ssse3_back+0x19a5> - 4342a4: 48 39 ca cmp %rcx,%rdx - 4342a7: 77 03 ja 4342ac <__memmove_ssse3_back+0x18ec> - 4342a9: 48 89 d1 mov %rdx,%rcx - 4342ac: 48 29 ca sub %rcx,%rdx - 4342af: 48 81 fa 00 10 00 00 cmp $0x1000,%rdx - 4342b6: 0f 86 a6 00 00 00 jbe 434362 <__memmove_ssse3_back+0x19a2> - 4342bc: 49 89 c9 mov %rcx,%r9 - 4342bf: 49 c1 e1 03 shl $0x3,%r9 - 4342c3: 4c 39 ca cmp %r9,%rdx - 4342c6: 76 06 jbe 4342ce <__memmove_ssse3_back+0x190e> - 4342c8: 48 01 ca add %rcx,%rdx - 4342cb: 48 31 c9 xor %rcx,%rcx - 4342ce: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 4342d5: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 4342dc: 0f 18 8e 00 02 00 00 prefetcht0 0x200(%rsi) - 4342e3: 0f 18 8e 00 03 00 00 prefetcht0 0x300(%rsi) - 4342ea: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 4342ee: f3 0f 6f 4e 10 movdqu 0x10(%rsi),%xmm1 - 4342f3: f3 0f 6f 56 20 movdqu 0x20(%rsi),%xmm2 - 4342f8: f3 0f 6f 5e 30 movdqu 0x30(%rsi),%xmm3 - 4342fd: f3 0f 6f 66 40 movdqu 0x40(%rsi),%xmm4 - 434302: f3 0f 6f 6e 50 movdqu 0x50(%rsi),%xmm5 - 434307: f3 0f 6f 76 60 movdqu 0x60(%rsi),%xmm6 - 43430c: f3 0f 6f 7e 70 movdqu 0x70(%rsi),%xmm7 - 434311: 0f ae e8 lfence - 434314: 66 0f e7 07 movntdq %xmm0,(%rdi) - 434318: 66 0f e7 4f 10 movntdq %xmm1,0x10(%rdi) - 43431d: 66 0f e7 57 20 movntdq %xmm2,0x20(%rdi) - 434322: 66 0f e7 5f 30 movntdq %xmm3,0x30(%rdi) - 434327: 66 0f e7 67 40 movntdq %xmm4,0x40(%rdi) - 43432c: 66 0f e7 6f 50 movntdq %xmm5,0x50(%rdi) - 434331: 66 0f e7 77 60 movntdq %xmm6,0x60(%rdi) - 434336: 66 0f e7 7f 70 movntdq %xmm7,0x70(%rdi) - 43433b: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 434342: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 434349: 73 8a jae 4342d5 <__memmove_ssse3_back+0x1915> - 43434b: 0f ae f8 sfence - 43434e: 48 81 f9 80 00 00 00 cmp $0x80,%rcx - 434355: 0f 82 96 00 00 00 jb 4343f1 <__memmove_ssse3_back+0x1a31> - 43435b: 48 81 c2 80 00 00 00 add $0x80,%rdx - 434362: 48 01 ca add %rcx,%rdx - 434365: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 43436c: 0f 18 86 c0 01 00 00 prefetchnta 0x1c0(%rsi) - 434373: 0f 18 86 80 02 00 00 prefetchnta 0x280(%rsi) - 43437a: 0f 18 87 c0 01 00 00 prefetchnta 0x1c0(%rdi) - 434381: 0f 18 87 80 02 00 00 prefetchnta 0x280(%rdi) - 434388: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 43438f: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 434393: f3 0f 6f 4e 10 movdqu 0x10(%rsi),%xmm1 - 434398: f3 0f 6f 56 20 movdqu 0x20(%rsi),%xmm2 - 43439d: f3 0f 6f 5e 30 movdqu 0x30(%rsi),%xmm3 - 4343a2: f3 0f 6f 66 40 movdqu 0x40(%rsi),%xmm4 - 4343a7: f3 0f 6f 6e 50 movdqu 0x50(%rsi),%xmm5 - 4343ac: f3 0f 6f 76 60 movdqu 0x60(%rsi),%xmm6 - 4343b1: f3 0f 6f 7e 70 movdqu 0x70(%rsi),%xmm7 - 4343b6: 66 0f 7f 07 movdqa %xmm0,(%rdi) - 4343ba: 66 0f 7f 4f 10 movdqa %xmm1,0x10(%rdi) - 4343bf: 66 0f 7f 57 20 movdqa %xmm2,0x20(%rdi) - 4343c4: 66 0f 7f 5f 30 movdqa %xmm3,0x30(%rdi) - 4343c9: 66 0f 7f 67 40 movdqa %xmm4,0x40(%rdi) - 4343ce: 66 0f 7f 6f 50 movdqa %xmm5,0x50(%rdi) - 4343d3: 66 0f 7f 77 60 movdqa %xmm6,0x60(%rdi) - 4343d8: 66 0f 7f 7f 70 movdqa %xmm7,0x70(%rdi) - 4343dd: 48 8d b6 80 00 00 00 lea 0x80(%rsi),%rsi - 4343e4: 48 8d bf 80 00 00 00 lea 0x80(%rdi),%rdi - 4343eb: 0f 83 7b ff ff ff jae 43436c <__memmove_ssse3_back+0x19ac> - 4343f1: 48 81 c2 80 00 00 00 add $0x80,%rdx - 4343f8: 48 01 d6 add %rdx,%rsi - 4343fb: 48 01 d7 add %rdx,%rdi - 4343fe: 4c 8d 1d ab f3 06 00 lea 0x6f3ab(%rip),%r11 # 4a37b0 - 434405: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 434409: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 43440d: ff e2 jmpq *%rdx - 43440f: 0f 0b ud2 - 434411: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 434416: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43441d: 00 00 00 - 434420: 48 01 d6 add %rdx,%rsi - 434423: 48 01 d7 add %rdx,%rdi - 434426: f3 0f 6f 46 f0 movdqu -0x10(%rsi),%xmm0 - 43442b: 4c 8d 47 f0 lea -0x10(%rdi),%r8 - 43442f: 49 89 f9 mov %rdi,%r9 - 434432: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 434436: 49 29 f9 sub %rdi,%r9 - 434439: 4c 29 ce sub %r9,%rsi - 43443c: 4c 29 ca sub %r9,%rdx - 43443f: 48 8b 0d 6a 6c 29 00 mov 0x296c6a(%rip),%rcx # 6cb0b0 <__x86_shared_cache_size_half> - 434446: 49 89 f9 mov %rdi,%r9 - 434449: 49 29 f1 sub %rsi,%r9 - 43444c: 49 39 d1 cmp %rdx,%r9 - 43444f: 73 09 jae 43445a <__memmove_ssse3_back+0x1a9a> - 434451: 49 39 c9 cmp %rcx,%r9 - 434454: 0f 86 bf 00 00 00 jbe 434519 <__memmove_ssse3_back+0x1b59> - 43445a: 48 39 ca cmp %rcx,%rdx - 43445d: 77 03 ja 434462 <__memmove_ssse3_back+0x1aa2> - 43445f: 48 89 d1 mov %rdx,%rcx - 434462: 48 29 ca sub %rcx,%rdx - 434465: 48 81 fa 00 10 00 00 cmp $0x1000,%rdx - 43446c: 0f 86 a4 00 00 00 jbe 434516 <__memmove_ssse3_back+0x1b56> - 434472: 49 89 c9 mov %rcx,%r9 - 434475: 49 c1 e1 03 shl $0x3,%r9 - 434479: 4c 39 ca cmp %r9,%rdx - 43447c: 76 06 jbe 434484 <__memmove_ssse3_back+0x1ac4> - 43447e: 48 01 ca add %rcx,%rdx - 434481: 48 31 c9 xor %rcx,%rcx - 434484: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 43448b: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 434492: 0f 18 8e 00 fe ff ff prefetcht0 -0x200(%rsi) - 434499: 0f 18 8e 00 fd ff ff prefetcht0 -0x300(%rsi) - 4344a0: f3 0f 6f 4e f0 movdqu -0x10(%rsi),%xmm1 - 4344a5: f3 0f 6f 56 e0 movdqu -0x20(%rsi),%xmm2 - 4344aa: f3 0f 6f 5e d0 movdqu -0x30(%rsi),%xmm3 - 4344af: f3 0f 6f 66 c0 movdqu -0x40(%rsi),%xmm4 - 4344b4: f3 0f 6f 6e b0 movdqu -0x50(%rsi),%xmm5 - 4344b9: f3 0f 6f 76 a0 movdqu -0x60(%rsi),%xmm6 - 4344be: f3 0f 6f 7e 90 movdqu -0x70(%rsi),%xmm7 - 4344c3: f3 44 0f 6f 46 80 movdqu -0x80(%rsi),%xmm8 - 4344c9: 0f ae e8 lfence - 4344cc: 66 0f e7 4f f0 movntdq %xmm1,-0x10(%rdi) - 4344d1: 66 0f e7 57 e0 movntdq %xmm2,-0x20(%rdi) - 4344d6: 66 0f e7 5f d0 movntdq %xmm3,-0x30(%rdi) - 4344db: 66 0f e7 67 c0 movntdq %xmm4,-0x40(%rdi) - 4344e0: 66 0f e7 6f b0 movntdq %xmm5,-0x50(%rdi) - 4344e5: 66 0f e7 77 a0 movntdq %xmm6,-0x60(%rdi) - 4344ea: 66 0f e7 7f 90 movntdq %xmm7,-0x70(%rdi) - 4344ef: 66 44 0f e7 47 80 movntdq %xmm8,-0x80(%rdi) - 4344f5: 48 8d 76 80 lea -0x80(%rsi),%rsi - 4344f9: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 4344fd: 73 8c jae 43448b <__memmove_ssse3_back+0x1acb> - 4344ff: 0f ae f8 sfence - 434502: 48 81 f9 80 00 00 00 cmp $0x80,%rcx - 434509: 0f 82 90 00 00 00 jb 43459f <__memmove_ssse3_back+0x1bdf> - 43450f: 48 81 c2 80 00 00 00 add $0x80,%rdx - 434516: 48 01 ca add %rcx,%rdx - 434519: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 434520: 0f 18 86 40 fe ff ff prefetchnta -0x1c0(%rsi) - 434527: 0f 18 86 80 fd ff ff prefetchnta -0x280(%rsi) - 43452e: 0f 18 87 40 fe ff ff prefetchnta -0x1c0(%rdi) - 434535: 0f 18 87 80 fd ff ff prefetchnta -0x280(%rdi) - 43453c: 48 81 ea 80 00 00 00 sub $0x80,%rdx - 434543: f3 0f 6f 4e f0 movdqu -0x10(%rsi),%xmm1 - 434548: f3 0f 6f 56 e0 movdqu -0x20(%rsi),%xmm2 - 43454d: f3 0f 6f 5e d0 movdqu -0x30(%rsi),%xmm3 - 434552: f3 0f 6f 66 c0 movdqu -0x40(%rsi),%xmm4 - 434557: f3 0f 6f 6e b0 movdqu -0x50(%rsi),%xmm5 - 43455c: f3 0f 6f 76 a0 movdqu -0x60(%rsi),%xmm6 - 434561: f3 0f 6f 7e 90 movdqu -0x70(%rsi),%xmm7 - 434566: f3 44 0f 6f 46 80 movdqu -0x80(%rsi),%xmm8 - 43456c: 66 0f 7f 4f f0 movdqa %xmm1,-0x10(%rdi) - 434571: 66 0f 7f 57 e0 movdqa %xmm2,-0x20(%rdi) - 434576: 66 0f 7f 5f d0 movdqa %xmm3,-0x30(%rdi) - 43457b: 66 0f 7f 67 c0 movdqa %xmm4,-0x40(%rdi) - 434580: 66 0f 7f 6f b0 movdqa %xmm5,-0x50(%rdi) - 434585: 66 0f 7f 77 a0 movdqa %xmm6,-0x60(%rdi) - 43458a: 66 0f 7f 7f 90 movdqa %xmm7,-0x70(%rdi) - 43458f: 66 44 0f 7f 47 80 movdqa %xmm8,-0x80(%rdi) - 434595: 48 8d 76 80 lea -0x80(%rsi),%rsi - 434599: 48 8d 7f 80 lea -0x80(%rdi),%rdi - 43459d: 73 81 jae 434520 <__memmove_ssse3_back+0x1b60> - 43459f: f3 41 0f 7f 00 movdqu %xmm0,(%r8) - 4345a4: 48 81 c2 80 00 00 00 add $0x80,%rdx - 4345ab: 48 29 d6 sub %rdx,%rsi - 4345ae: 48 29 d7 sub %rdx,%rdi - 4345b1: 4c 8d 1d b8 ef 06 00 lea 0x6efb8(%rip),%r11 # 4a3570 - 4345b8: 49 63 14 93 movslq (%r11,%rdx,4),%rdx - 4345bc: 49 8d 14 13 lea (%r11,%rdx,1),%rdx - 4345c0: ff e2 jmpq *%rdx - 4345c2: 0f 0b ud2 - 4345c4: 66 90 xchg %ax,%ax - 4345c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4345cd: 00 00 00 - 4345d0: f2 0f f0 46 80 lddqu -0x80(%rsi),%xmm0 - 4345d5: f3 0f 7f 47 80 movdqu %xmm0,-0x80(%rdi) - 4345da: f2 0f f0 46 90 lddqu -0x70(%rsi),%xmm0 - 4345df: f3 0f 7f 47 90 movdqu %xmm0,-0x70(%rdi) - 4345e4: f2 0f f0 46 a0 lddqu -0x60(%rsi),%xmm0 - 4345e9: f3 0f 7f 47 a0 movdqu %xmm0,-0x60(%rdi) - 4345ee: f2 0f f0 46 b0 lddqu -0x50(%rsi),%xmm0 - 4345f3: f3 0f 7f 47 b0 movdqu %xmm0,-0x50(%rdi) - 4345f8: f2 0f f0 46 c0 lddqu -0x40(%rsi),%xmm0 - 4345fd: f3 0f 7f 47 c0 movdqu %xmm0,-0x40(%rdi) - 434602: f2 0f f0 46 d0 lddqu -0x30(%rsi),%xmm0 - 434607: f3 0f 7f 47 d0 movdqu %xmm0,-0x30(%rdi) - 43460c: f2 0f f0 46 e0 lddqu -0x20(%rsi),%xmm0 - 434611: f3 0f 7f 47 e0 movdqu %xmm0,-0x20(%rdi) - 434616: f2 0f f0 46 f0 lddqu -0x10(%rsi),%xmm0 - 43461b: f3 0f 7f 47 f0 movdqu %xmm0,-0x10(%rdi) - 434620: c3 retq - 434621: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 434626: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43462d: 00 00 00 - 434630: f2 0f f0 86 71 ff ff lddqu -0x8f(%rsi),%xmm0 - 434637: ff - 434638: f3 0f 7f 87 71 ff ff movdqu %xmm0,-0x8f(%rdi) - 43463f: ff - 434640: f2 0f f0 46 81 lddqu -0x7f(%rsi),%xmm0 - 434645: f3 0f 7f 47 81 movdqu %xmm0,-0x7f(%rdi) - 43464a: f2 0f f0 46 91 lddqu -0x6f(%rsi),%xmm0 - 43464f: f3 0f 7f 47 91 movdqu %xmm0,-0x6f(%rdi) - 434654: f2 0f f0 46 a1 lddqu -0x5f(%rsi),%xmm0 - 434659: f3 0f 7f 47 a1 movdqu %xmm0,-0x5f(%rdi) - 43465e: f2 0f f0 46 b1 lddqu -0x4f(%rsi),%xmm0 - 434663: f3 0f 7f 47 b1 movdqu %xmm0,-0x4f(%rdi) - 434668: f2 0f f0 46 c1 lddqu -0x3f(%rsi),%xmm0 - 43466d: f3 0f 7f 47 c1 movdqu %xmm0,-0x3f(%rdi) - 434672: f2 0f f0 46 d1 lddqu -0x2f(%rsi),%xmm0 - 434677: f3 0f 7f 47 d1 movdqu %xmm0,-0x2f(%rdi) - 43467c: f2 0f f0 46 e1 lddqu -0x1f(%rsi),%xmm0 - 434681: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 - 434686: f3 0f 7f 47 e1 movdqu %xmm0,-0x1f(%rdi) - 43468b: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) - 434690: c3 retq - 434691: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 434696: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43469d: 00 00 00 - 4346a0: 48 8b 56 f1 mov -0xf(%rsi),%rdx - 4346a4: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 4346a8: 48 89 57 f1 mov %rdx,-0xf(%rdi) - 4346ac: 48 89 4f f8 mov %rcx,-0x8(%rdi) - 4346b0: c3 retq - 4346b1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4346b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4346bd: 00 00 00 - 4346c0: f2 0f f0 86 72 ff ff lddqu -0x8e(%rsi),%xmm0 - 4346c7: ff - 4346c8: f3 0f 7f 87 72 ff ff movdqu %xmm0,-0x8e(%rdi) - 4346cf: ff - 4346d0: f2 0f f0 46 82 lddqu -0x7e(%rsi),%xmm0 - 4346d5: f3 0f 7f 47 82 movdqu %xmm0,-0x7e(%rdi) - 4346da: f2 0f f0 46 92 lddqu -0x6e(%rsi),%xmm0 - 4346df: f3 0f 7f 47 92 movdqu %xmm0,-0x6e(%rdi) - 4346e4: f2 0f f0 46 a2 lddqu -0x5e(%rsi),%xmm0 - 4346e9: f3 0f 7f 47 a2 movdqu %xmm0,-0x5e(%rdi) - 4346ee: f2 0f f0 46 b2 lddqu -0x4e(%rsi),%xmm0 - 4346f3: f3 0f 7f 47 b2 movdqu %xmm0,-0x4e(%rdi) - 4346f8: f2 0f f0 46 c2 lddqu -0x3e(%rsi),%xmm0 - 4346fd: f3 0f 7f 47 c2 movdqu %xmm0,-0x3e(%rdi) - 434702: f2 0f f0 46 d2 lddqu -0x2e(%rsi),%xmm0 - 434707: f3 0f 7f 47 d2 movdqu %xmm0,-0x2e(%rdi) - 43470c: f2 0f f0 46 e2 lddqu -0x1e(%rsi),%xmm0 - 434711: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 - 434716: f3 0f 7f 47 e2 movdqu %xmm0,-0x1e(%rdi) - 43471b: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) - 434720: c3 retq - 434721: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 434726: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43472d: 00 00 00 - 434730: 48 8b 56 f2 mov -0xe(%rsi),%rdx - 434734: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 434738: 48 89 57 f2 mov %rdx,-0xe(%rdi) - 43473c: 48 89 4f f8 mov %rcx,-0x8(%rdi) - 434740: c3 retq - 434741: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 434746: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43474d: 00 00 00 - 434750: f2 0f f0 86 73 ff ff lddqu -0x8d(%rsi),%xmm0 - 434757: ff - 434758: f3 0f 7f 87 73 ff ff movdqu %xmm0,-0x8d(%rdi) - 43475f: ff - 434760: f2 0f f0 46 83 lddqu -0x7d(%rsi),%xmm0 - 434765: f3 0f 7f 47 83 movdqu %xmm0,-0x7d(%rdi) - 43476a: f2 0f f0 46 93 lddqu -0x6d(%rsi),%xmm0 - 43476f: f3 0f 7f 47 93 movdqu %xmm0,-0x6d(%rdi) - 434774: f2 0f f0 46 a3 lddqu -0x5d(%rsi),%xmm0 - 434779: f3 0f 7f 47 a3 movdqu %xmm0,-0x5d(%rdi) - 43477e: f2 0f f0 46 b3 lddqu -0x4d(%rsi),%xmm0 - 434783: f3 0f 7f 47 b3 movdqu %xmm0,-0x4d(%rdi) - 434788: f2 0f f0 46 c3 lddqu -0x3d(%rsi),%xmm0 - 43478d: f3 0f 7f 47 c3 movdqu %xmm0,-0x3d(%rdi) - 434792: f2 0f f0 46 d3 lddqu -0x2d(%rsi),%xmm0 - 434797: f3 0f 7f 47 d3 movdqu %xmm0,-0x2d(%rdi) - 43479c: f2 0f f0 46 e3 lddqu -0x1d(%rsi),%xmm0 - 4347a1: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 - 4347a6: f3 0f 7f 47 e3 movdqu %xmm0,-0x1d(%rdi) - 4347ab: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) - 4347b0: c3 retq - 4347b1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4347b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4347bd: 00 00 00 - 4347c0: 48 8b 56 f3 mov -0xd(%rsi),%rdx - 4347c4: 48 8b 4e f8 mov -0x8(%rsi),%rcx - 4347c8: 48 89 57 f3 mov %rdx,-0xd(%rdi) - 4347cc: 48 89 4f f8 mov %rcx,-0x8(%rdi) - 4347d0: c3 retq - 4347d1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4347d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4347dd: 00 00 00 - 4347e0: f2 0f f0 86 74 ff ff lddqu -0x8c(%rsi),%xmm0 - 4347e7: ff - 4347e8: f3 0f 7f 87 74 ff ff movdqu %xmm0,-0x8c(%rdi) - 4347ef: ff - 4347f0: f2 0f f0 46 84 lddqu -0x7c(%rsi),%xmm0 - 4347f5: f3 0f 7f 47 84 movdqu %xmm0,-0x7c(%rdi) - 4347fa: f2 0f f0 46 94 lddqu -0x6c(%rsi),%xmm0 - 4347ff: f3 0f 7f 47 94 movdqu %xmm0,-0x6c(%rdi) - 434804: f2 0f f0 46 a4 lddqu -0x5c(%rsi),%xmm0 - 434809: f3 0f 7f 47 a4 movdqu %xmm0,-0x5c(%rdi) - 43480e: f2 0f f0 46 b4 lddqu -0x4c(%rsi),%xmm0 - 434813: f3 0f 7f 47 b4 movdqu %xmm0,-0x4c(%rdi) - 434818: f2 0f f0 46 c4 lddqu -0x3c(%rsi),%xmm0 - 43481d: f3 0f 7f 47 c4 movdqu %xmm0,-0x3c(%rdi) - 434822: f2 0f f0 46 d4 lddqu -0x2c(%rsi),%xmm0 - 434827: f3 0f 7f 47 d4 movdqu %xmm0,-0x2c(%rdi) - 43482c: f2 0f f0 46 e4 lddqu -0x1c(%rsi),%xmm0 - 434831: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 - 434836: f3 0f 7f 47 e4 movdqu %xmm0,-0x1c(%rdi) - 43483b: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) - 434840: c3 retq - 434841: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 434846: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43484d: 00 00 00 - 434850: 48 8b 56 f4 mov -0xc(%rsi),%rdx - 434854: 8b 4e fc mov -0x4(%rsi),%ecx - 434857: 48 89 57 f4 mov %rdx,-0xc(%rdi) - 43485b: 89 4f fc mov %ecx,-0x4(%rdi) - 43485e: c3 retq - 43485f: 90 nop - 434860: f2 0f f0 86 75 ff ff lddqu -0x8b(%rsi),%xmm0 - 434867: ff - 434868: f3 0f 7f 87 75 ff ff movdqu %xmm0,-0x8b(%rdi) - 43486f: ff - 434870: f2 0f f0 46 85 lddqu -0x7b(%rsi),%xmm0 - 434875: f3 0f 7f 47 85 movdqu %xmm0,-0x7b(%rdi) - 43487a: f2 0f f0 46 95 lddqu -0x6b(%rsi),%xmm0 - 43487f: f3 0f 7f 47 95 movdqu %xmm0,-0x6b(%rdi) - 434884: f2 0f f0 46 a5 lddqu -0x5b(%rsi),%xmm0 - 434889: f3 0f 7f 47 a5 movdqu %xmm0,-0x5b(%rdi) - 43488e: f2 0f f0 46 b5 lddqu -0x4b(%rsi),%xmm0 - 434893: f3 0f 7f 47 b5 movdqu %xmm0,-0x4b(%rdi) - 434898: f2 0f f0 46 c5 lddqu -0x3b(%rsi),%xmm0 - 43489d: f3 0f 7f 47 c5 movdqu %xmm0,-0x3b(%rdi) - 4348a2: f2 0f f0 46 d5 lddqu -0x2b(%rsi),%xmm0 - 4348a7: f3 0f 7f 47 d5 movdqu %xmm0,-0x2b(%rdi) - 4348ac: f2 0f f0 46 e5 lddqu -0x1b(%rsi),%xmm0 - 4348b1: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 - 4348b6: f3 0f 7f 47 e5 movdqu %xmm0,-0x1b(%rdi) - 4348bb: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) - 4348c0: c3 retq - 4348c1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4348c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4348cd: 00 00 00 - 4348d0: 48 8b 56 f5 mov -0xb(%rsi),%rdx - 4348d4: 8b 4e fc mov -0x4(%rsi),%ecx - 4348d7: 48 89 57 f5 mov %rdx,-0xb(%rdi) - 4348db: 89 4f fc mov %ecx,-0x4(%rdi) - 4348de: c3 retq - 4348df: 90 nop - 4348e0: f2 0f f0 86 76 ff ff lddqu -0x8a(%rsi),%xmm0 - 4348e7: ff - 4348e8: f3 0f 7f 87 76 ff ff movdqu %xmm0,-0x8a(%rdi) - 4348ef: ff - 4348f0: f2 0f f0 46 86 lddqu -0x7a(%rsi),%xmm0 - 4348f5: f3 0f 7f 47 86 movdqu %xmm0,-0x7a(%rdi) - 4348fa: f2 0f f0 46 96 lddqu -0x6a(%rsi),%xmm0 - 4348ff: f3 0f 7f 47 96 movdqu %xmm0,-0x6a(%rdi) - 434904: f2 0f f0 46 a6 lddqu -0x5a(%rsi),%xmm0 - 434909: f3 0f 7f 47 a6 movdqu %xmm0,-0x5a(%rdi) - 43490e: f2 0f f0 46 b6 lddqu -0x4a(%rsi),%xmm0 - 434913: f3 0f 7f 47 b6 movdqu %xmm0,-0x4a(%rdi) - 434918: f2 0f f0 46 c6 lddqu -0x3a(%rsi),%xmm0 - 43491d: f3 0f 7f 47 c6 movdqu %xmm0,-0x3a(%rdi) - 434922: f2 0f f0 46 d6 lddqu -0x2a(%rsi),%xmm0 - 434927: f3 0f 7f 47 d6 movdqu %xmm0,-0x2a(%rdi) - 43492c: f2 0f f0 46 e6 lddqu -0x1a(%rsi),%xmm0 - 434931: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 - 434936: f3 0f 7f 47 e6 movdqu %xmm0,-0x1a(%rdi) - 43493b: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) - 434940: c3 retq - 434941: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 434946: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43494d: 00 00 00 - 434950: 48 8b 56 f6 mov -0xa(%rsi),%rdx - 434954: 8b 4e fc mov -0x4(%rsi),%ecx - 434957: 48 89 57 f6 mov %rdx,-0xa(%rdi) - 43495b: 89 4f fc mov %ecx,-0x4(%rdi) - 43495e: c3 retq - 43495f: 90 nop - 434960: f2 0f f0 86 77 ff ff lddqu -0x89(%rsi),%xmm0 - 434967: ff - 434968: f3 0f 7f 87 77 ff ff movdqu %xmm0,-0x89(%rdi) - 43496f: ff - 434970: f2 0f f0 46 87 lddqu -0x79(%rsi),%xmm0 - 434975: f3 0f 7f 47 87 movdqu %xmm0,-0x79(%rdi) - 43497a: f2 0f f0 46 97 lddqu -0x69(%rsi),%xmm0 - 43497f: f3 0f 7f 47 97 movdqu %xmm0,-0x69(%rdi) - 434984: f2 0f f0 46 a7 lddqu -0x59(%rsi),%xmm0 - 434989: f3 0f 7f 47 a7 movdqu %xmm0,-0x59(%rdi) - 43498e: f2 0f f0 46 b7 lddqu -0x49(%rsi),%xmm0 - 434993: f3 0f 7f 47 b7 movdqu %xmm0,-0x49(%rdi) - 434998: f2 0f f0 46 c7 lddqu -0x39(%rsi),%xmm0 - 43499d: f3 0f 7f 47 c7 movdqu %xmm0,-0x39(%rdi) - 4349a2: f2 0f f0 46 d7 lddqu -0x29(%rsi),%xmm0 - 4349a7: f3 0f 7f 47 d7 movdqu %xmm0,-0x29(%rdi) - 4349ac: f2 0f f0 46 e7 lddqu -0x19(%rsi),%xmm0 - 4349b1: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 - 4349b6: f3 0f 7f 47 e7 movdqu %xmm0,-0x19(%rdi) - 4349bb: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) - 4349c0: c3 retq - 4349c1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4349c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4349cd: 00 00 00 - 4349d0: 48 8b 56 f7 mov -0x9(%rsi),%rdx - 4349d4: 8b 4e fc mov -0x4(%rsi),%ecx - 4349d7: 48 89 57 f7 mov %rdx,-0x9(%rdi) - 4349db: 89 4f fc mov %ecx,-0x4(%rdi) - 4349de: c3 retq - 4349df: 90 nop - 4349e0: f2 0f f0 86 78 ff ff lddqu -0x88(%rsi),%xmm0 - 4349e7: ff - 4349e8: f3 0f 7f 87 78 ff ff movdqu %xmm0,-0x88(%rdi) - 4349ef: ff - 4349f0: f2 0f f0 46 88 lddqu -0x78(%rsi),%xmm0 - 4349f5: f3 0f 7f 47 88 movdqu %xmm0,-0x78(%rdi) - 4349fa: f2 0f f0 46 98 lddqu -0x68(%rsi),%xmm0 - 4349ff: f3 0f 7f 47 98 movdqu %xmm0,-0x68(%rdi) - 434a04: f2 0f f0 46 a8 lddqu -0x58(%rsi),%xmm0 - 434a09: f3 0f 7f 47 a8 movdqu %xmm0,-0x58(%rdi) - 434a0e: f2 0f f0 46 b8 lddqu -0x48(%rsi),%xmm0 - 434a13: f3 0f 7f 47 b8 movdqu %xmm0,-0x48(%rdi) - 434a18: f2 0f f0 46 c8 lddqu -0x38(%rsi),%xmm0 - 434a1d: f3 0f 7f 47 c8 movdqu %xmm0,-0x38(%rdi) - 434a22: f2 0f f0 46 d8 lddqu -0x28(%rsi),%xmm0 - 434a27: f3 0f 7f 47 d8 movdqu %xmm0,-0x28(%rdi) - 434a2c: f2 0f f0 46 e8 lddqu -0x18(%rsi),%xmm0 - 434a31: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 - 434a36: f3 0f 7f 47 e8 movdqu %xmm0,-0x18(%rdi) - 434a3b: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) - 434a40: c3 retq - 434a41: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 434a46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 434a4d: 00 00 00 - 434a50: 48 8b 56 f8 mov -0x8(%rsi),%rdx - 434a54: 48 89 57 f8 mov %rdx,-0x8(%rdi) - 434a58: c3 retq - 434a59: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 434a60: f2 0f f0 86 79 ff ff lddqu -0x87(%rsi),%xmm0 - 434a67: ff - 434a68: f3 0f 7f 87 79 ff ff movdqu %xmm0,-0x87(%rdi) - 434a6f: ff - 434a70: f2 0f f0 46 89 lddqu -0x77(%rsi),%xmm0 - 434a75: f3 0f 7f 47 89 movdqu %xmm0,-0x77(%rdi) - 434a7a: f2 0f f0 46 99 lddqu -0x67(%rsi),%xmm0 - 434a7f: f3 0f 7f 47 99 movdqu %xmm0,-0x67(%rdi) - 434a84: f2 0f f0 46 a9 lddqu -0x57(%rsi),%xmm0 - 434a89: f3 0f 7f 47 a9 movdqu %xmm0,-0x57(%rdi) - 434a8e: f2 0f f0 46 b9 lddqu -0x47(%rsi),%xmm0 - 434a93: f3 0f 7f 47 b9 movdqu %xmm0,-0x47(%rdi) - 434a98: f2 0f f0 46 c9 lddqu -0x37(%rsi),%xmm0 - 434a9d: f3 0f 7f 47 c9 movdqu %xmm0,-0x37(%rdi) - 434aa2: f2 0f f0 46 d9 lddqu -0x27(%rsi),%xmm0 - 434aa7: f3 0f 7f 47 d9 movdqu %xmm0,-0x27(%rdi) - 434aac: f2 0f f0 46 e9 lddqu -0x17(%rsi),%xmm0 - 434ab1: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 - 434ab6: f3 0f 7f 47 e9 movdqu %xmm0,-0x17(%rdi) - 434abb: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) - 434ac0: c3 retq - 434ac1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 434ac6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 434acd: 00 00 00 - 434ad0: 8b 56 f9 mov -0x7(%rsi),%edx - 434ad3: 8b 4e fc mov -0x4(%rsi),%ecx - 434ad6: 89 57 f9 mov %edx,-0x7(%rdi) - 434ad9: 89 4f fc mov %ecx,-0x4(%rdi) - 434adc: c3 retq - 434add: 0f 1f 00 nopl (%rax) - 434ae0: f2 0f f0 86 7a ff ff lddqu -0x86(%rsi),%xmm0 - 434ae7: ff - 434ae8: f3 0f 7f 87 7a ff ff movdqu %xmm0,-0x86(%rdi) - 434aef: ff - 434af0: f2 0f f0 46 8a lddqu -0x76(%rsi),%xmm0 - 434af5: f3 0f 7f 47 8a movdqu %xmm0,-0x76(%rdi) - 434afa: f2 0f f0 46 9a lddqu -0x66(%rsi),%xmm0 - 434aff: f3 0f 7f 47 9a movdqu %xmm0,-0x66(%rdi) - 434b04: f2 0f f0 46 aa lddqu -0x56(%rsi),%xmm0 - 434b09: f3 0f 7f 47 aa movdqu %xmm0,-0x56(%rdi) - 434b0e: f2 0f f0 46 ba lddqu -0x46(%rsi),%xmm0 - 434b13: f3 0f 7f 47 ba movdqu %xmm0,-0x46(%rdi) - 434b18: f2 0f f0 46 ca lddqu -0x36(%rsi),%xmm0 - 434b1d: f3 0f 7f 47 ca movdqu %xmm0,-0x36(%rdi) - 434b22: f2 0f f0 46 da lddqu -0x26(%rsi),%xmm0 - 434b27: f3 0f 7f 47 da movdqu %xmm0,-0x26(%rdi) - 434b2c: f2 0f f0 46 ea lddqu -0x16(%rsi),%xmm0 - 434b31: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 - 434b36: f3 0f 7f 47 ea movdqu %xmm0,-0x16(%rdi) - 434b3b: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) - 434b40: c3 retq - 434b41: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 434b46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 434b4d: 00 00 00 - 434b50: 8b 56 fa mov -0x6(%rsi),%edx - 434b53: 8b 4e fc mov -0x4(%rsi),%ecx - 434b56: 89 57 fa mov %edx,-0x6(%rdi) - 434b59: 89 4f fc mov %ecx,-0x4(%rdi) - 434b5c: c3 retq - 434b5d: 0f 1f 00 nopl (%rax) - 434b60: f2 0f f0 86 7b ff ff lddqu -0x85(%rsi),%xmm0 - 434b67: ff - 434b68: f3 0f 7f 87 7b ff ff movdqu %xmm0,-0x85(%rdi) - 434b6f: ff - 434b70: f2 0f f0 46 8b lddqu -0x75(%rsi),%xmm0 - 434b75: f3 0f 7f 47 8b movdqu %xmm0,-0x75(%rdi) - 434b7a: f2 0f f0 46 9b lddqu -0x65(%rsi),%xmm0 - 434b7f: f3 0f 7f 47 9b movdqu %xmm0,-0x65(%rdi) - 434b84: f2 0f f0 46 ab lddqu -0x55(%rsi),%xmm0 - 434b89: f3 0f 7f 47 ab movdqu %xmm0,-0x55(%rdi) - 434b8e: f2 0f f0 46 bb lddqu -0x45(%rsi),%xmm0 - 434b93: f3 0f 7f 47 bb movdqu %xmm0,-0x45(%rdi) - 434b98: f2 0f f0 46 cb lddqu -0x35(%rsi),%xmm0 - 434b9d: f3 0f 7f 47 cb movdqu %xmm0,-0x35(%rdi) - 434ba2: f2 0f f0 46 db lddqu -0x25(%rsi),%xmm0 - 434ba7: f3 0f 7f 47 db movdqu %xmm0,-0x25(%rdi) - 434bac: f2 0f f0 46 eb lddqu -0x15(%rsi),%xmm0 - 434bb1: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 - 434bb6: f3 0f 7f 47 eb movdqu %xmm0,-0x15(%rdi) - 434bbb: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) - 434bc0: c3 retq - 434bc1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 434bc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 434bcd: 00 00 00 - 434bd0: 8b 56 fb mov -0x5(%rsi),%edx - 434bd3: 8b 4e fc mov -0x4(%rsi),%ecx - 434bd6: 89 57 fb mov %edx,-0x5(%rdi) - 434bd9: 89 4f fc mov %ecx,-0x4(%rdi) - 434bdc: c3 retq - 434bdd: 0f 1f 00 nopl (%rax) - 434be0: f2 0f f0 86 7c ff ff lddqu -0x84(%rsi),%xmm0 - 434be7: ff - 434be8: f3 0f 7f 87 7c ff ff movdqu %xmm0,-0x84(%rdi) - 434bef: ff - 434bf0: f2 0f f0 46 8c lddqu -0x74(%rsi),%xmm0 - 434bf5: f3 0f 7f 47 8c movdqu %xmm0,-0x74(%rdi) - 434bfa: f2 0f f0 46 9c lddqu -0x64(%rsi),%xmm0 - 434bff: f3 0f 7f 47 9c movdqu %xmm0,-0x64(%rdi) - 434c04: f2 0f f0 46 ac lddqu -0x54(%rsi),%xmm0 - 434c09: f3 0f 7f 47 ac movdqu %xmm0,-0x54(%rdi) - 434c0e: f2 0f f0 46 bc lddqu -0x44(%rsi),%xmm0 - 434c13: f3 0f 7f 47 bc movdqu %xmm0,-0x44(%rdi) - 434c18: f2 0f f0 46 cc lddqu -0x34(%rsi),%xmm0 - 434c1d: f3 0f 7f 47 cc movdqu %xmm0,-0x34(%rdi) - 434c22: f2 0f f0 46 dc lddqu -0x24(%rsi),%xmm0 - 434c27: f3 0f 7f 47 dc movdqu %xmm0,-0x24(%rdi) - 434c2c: f2 0f f0 46 ec lddqu -0x14(%rsi),%xmm0 - 434c31: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 - 434c36: f3 0f 7f 47 ec movdqu %xmm0,-0x14(%rdi) - 434c3b: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) - 434c40: c3 retq - 434c41: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 434c46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 434c4d: 00 00 00 - 434c50: 8b 56 fc mov -0x4(%rsi),%edx - 434c53: 89 57 fc mov %edx,-0x4(%rdi) - 434c56: c3 retq - 434c57: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 434c5e: 00 00 - 434c60: f2 0f f0 86 7d ff ff lddqu -0x83(%rsi),%xmm0 - 434c67: ff - 434c68: f3 0f 7f 87 7d ff ff movdqu %xmm0,-0x83(%rdi) - 434c6f: ff - 434c70: f2 0f f0 46 8d lddqu -0x73(%rsi),%xmm0 - 434c75: f3 0f 7f 47 8d movdqu %xmm0,-0x73(%rdi) - 434c7a: f2 0f f0 46 9d lddqu -0x63(%rsi),%xmm0 - 434c7f: f3 0f 7f 47 9d movdqu %xmm0,-0x63(%rdi) - 434c84: f2 0f f0 46 ad lddqu -0x53(%rsi),%xmm0 - 434c89: f3 0f 7f 47 ad movdqu %xmm0,-0x53(%rdi) - 434c8e: f2 0f f0 46 bd lddqu -0x43(%rsi),%xmm0 - 434c93: f3 0f 7f 47 bd movdqu %xmm0,-0x43(%rdi) - 434c98: f2 0f f0 46 cd lddqu -0x33(%rsi),%xmm0 - 434c9d: f3 0f 7f 47 cd movdqu %xmm0,-0x33(%rdi) - 434ca2: f2 0f f0 46 dd lddqu -0x23(%rsi),%xmm0 - 434ca7: f3 0f 7f 47 dd movdqu %xmm0,-0x23(%rdi) - 434cac: f2 0f f0 46 ed lddqu -0x13(%rsi),%xmm0 - 434cb1: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 - 434cb6: f3 0f 7f 47 ed movdqu %xmm0,-0x13(%rdi) - 434cbb: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) - 434cc0: c3 retq - 434cc1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 434cc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 434ccd: 00 00 00 - 434cd0: 66 8b 56 fd mov -0x3(%rsi),%dx - 434cd4: 66 8b 4e fe mov -0x2(%rsi),%cx - 434cd8: 66 89 57 fd mov %dx,-0x3(%rdi) - 434cdc: 66 89 4f fe mov %cx,-0x2(%rdi) - 434ce0: c3 retq - 434ce1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 434ce6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 434ced: 00 00 00 - 434cf0: f2 0f f0 86 7e ff ff lddqu -0x82(%rsi),%xmm0 - 434cf7: ff - 434cf8: f3 0f 7f 87 7e ff ff movdqu %xmm0,-0x82(%rdi) - 434cff: ff - 434d00: f2 0f f0 46 8e lddqu -0x72(%rsi),%xmm0 - 434d05: f3 0f 7f 47 8e movdqu %xmm0,-0x72(%rdi) - 434d0a: f2 0f f0 46 9e lddqu -0x62(%rsi),%xmm0 - 434d0f: f3 0f 7f 47 9e movdqu %xmm0,-0x62(%rdi) - 434d14: f2 0f f0 46 ae lddqu -0x52(%rsi),%xmm0 - 434d19: f3 0f 7f 47 ae movdqu %xmm0,-0x52(%rdi) - 434d1e: f2 0f f0 46 be lddqu -0x42(%rsi),%xmm0 - 434d23: f3 0f 7f 47 be movdqu %xmm0,-0x42(%rdi) - 434d28: f2 0f f0 46 ce lddqu -0x32(%rsi),%xmm0 - 434d2d: f3 0f 7f 47 ce movdqu %xmm0,-0x32(%rdi) - 434d32: f2 0f f0 46 de lddqu -0x22(%rsi),%xmm0 - 434d37: f3 0f 7f 47 de movdqu %xmm0,-0x22(%rdi) - 434d3c: f2 0f f0 46 ee lddqu -0x12(%rsi),%xmm0 - 434d41: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 - 434d46: f3 0f 7f 47 ee movdqu %xmm0,-0x12(%rdi) - 434d4b: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) - 434d50: c3 retq - 434d51: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 434d56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 434d5d: 00 00 00 - 434d60: 0f b7 56 fe movzwl -0x2(%rsi),%edx - 434d64: 66 89 57 fe mov %dx,-0x2(%rdi) - 434d68: c3 retq - 434d69: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 434d70: f2 0f f0 86 7f ff ff lddqu -0x81(%rsi),%xmm0 - 434d77: ff - 434d78: f3 0f 7f 87 7f ff ff movdqu %xmm0,-0x81(%rdi) - 434d7f: ff - 434d80: f2 0f f0 46 8f lddqu -0x71(%rsi),%xmm0 - 434d85: f3 0f 7f 47 8f movdqu %xmm0,-0x71(%rdi) - 434d8a: f2 0f f0 46 9f lddqu -0x61(%rsi),%xmm0 - 434d8f: f3 0f 7f 47 9f movdqu %xmm0,-0x61(%rdi) - 434d94: f2 0f f0 46 af lddqu -0x51(%rsi),%xmm0 - 434d99: f3 0f 7f 47 af movdqu %xmm0,-0x51(%rdi) - 434d9e: f2 0f f0 46 bf lddqu -0x41(%rsi),%xmm0 - 434da3: f3 0f 7f 47 bf movdqu %xmm0,-0x41(%rdi) - 434da8: f2 0f f0 46 cf lddqu -0x31(%rsi),%xmm0 - 434dad: f3 0f 7f 47 cf movdqu %xmm0,-0x31(%rdi) - 434db2: f2 0f f0 46 df lddqu -0x21(%rsi),%xmm0 - 434db7: f3 0f 7f 47 df movdqu %xmm0,-0x21(%rdi) - 434dbc: f2 0f f0 46 ef lddqu -0x11(%rsi),%xmm0 - 434dc1: f2 0f f0 4e f0 lddqu -0x10(%rsi),%xmm1 - 434dc6: f3 0f 7f 47 ef movdqu %xmm0,-0x11(%rdi) - 434dcb: f3 0f 7f 4f f0 movdqu %xmm1,-0x10(%rdi) - 434dd0: c3 retq - 434dd1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 434dd6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 434ddd: 00 00 00 - 434de0: 0f b6 56 ff movzbl -0x1(%rsi),%edx - 434de4: 88 57 ff mov %dl,-0x1(%rdi) - 434de7: c3 retq - 434de8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 434def: 00 - 434df0: f2 0f f0 46 70 lddqu 0x70(%rsi),%xmm0 - 434df5: f3 0f 7f 47 70 movdqu %xmm0,0x70(%rdi) - 434dfa: f2 0f f0 46 60 lddqu 0x60(%rsi),%xmm0 - 434dff: f3 0f 7f 47 60 movdqu %xmm0,0x60(%rdi) - 434e04: f2 0f f0 46 50 lddqu 0x50(%rsi),%xmm0 - 434e09: f3 0f 7f 47 50 movdqu %xmm0,0x50(%rdi) - 434e0e: f2 0f f0 46 40 lddqu 0x40(%rsi),%xmm0 - 434e13: f3 0f 7f 47 40 movdqu %xmm0,0x40(%rdi) - 434e18: f2 0f f0 46 30 lddqu 0x30(%rsi),%xmm0 - 434e1d: f3 0f 7f 47 30 movdqu %xmm0,0x30(%rdi) - 434e22: f2 0f f0 46 20 lddqu 0x20(%rsi),%xmm0 - 434e27: f3 0f 7f 47 20 movdqu %xmm0,0x20(%rdi) - 434e2c: f2 0f f0 46 10 lddqu 0x10(%rsi),%xmm0 - 434e31: f3 0f 7f 47 10 movdqu %xmm0,0x10(%rdi) - 434e36: f2 0f f0 06 lddqu (%rsi),%xmm0 - 434e3a: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 434e3e: c3 retq - 434e3f: 90 nop - 434e40: f2 0f f0 46 7f lddqu 0x7f(%rsi),%xmm0 - 434e45: f3 0f 7f 47 7f movdqu %xmm0,0x7f(%rdi) - 434e4a: f2 0f f0 46 6f lddqu 0x6f(%rsi),%xmm0 - 434e4f: f3 0f 7f 47 6f movdqu %xmm0,0x6f(%rdi) - 434e54: f2 0f f0 46 5f lddqu 0x5f(%rsi),%xmm0 - 434e59: f3 0f 7f 47 5f movdqu %xmm0,0x5f(%rdi) - 434e5e: f2 0f f0 46 4f lddqu 0x4f(%rsi),%xmm0 - 434e63: f3 0f 7f 47 4f movdqu %xmm0,0x4f(%rdi) - 434e68: f2 0f f0 46 3f lddqu 0x3f(%rsi),%xmm0 - 434e6d: f3 0f 7f 47 3f movdqu %xmm0,0x3f(%rdi) - 434e72: f2 0f f0 46 2f lddqu 0x2f(%rsi),%xmm0 - 434e77: f3 0f 7f 47 2f movdqu %xmm0,0x2f(%rdi) - 434e7c: f2 0f f0 46 1f lddqu 0x1f(%rsi),%xmm0 - 434e81: f3 0f 7f 47 1f movdqu %xmm0,0x1f(%rdi) - 434e86: f2 0f f0 46 0f lddqu 0xf(%rsi),%xmm0 - 434e8b: f2 0f f0 0e lddqu (%rsi),%xmm1 - 434e8f: f3 0f 7f 47 0f movdqu %xmm0,0xf(%rdi) - 434e94: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 434e98: c3 retq - 434e99: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 434ea0: 48 8b 56 07 mov 0x7(%rsi),%rdx - 434ea4: 48 8b 0e mov (%rsi),%rcx - 434ea7: 48 89 57 07 mov %rdx,0x7(%rdi) - 434eab: 48 89 0f mov %rcx,(%rdi) - 434eae: c3 retq - 434eaf: 90 nop - 434eb0: f2 0f f0 46 7e lddqu 0x7e(%rsi),%xmm0 - 434eb5: f3 0f 7f 47 7e movdqu %xmm0,0x7e(%rdi) - 434eba: f2 0f f0 46 6e lddqu 0x6e(%rsi),%xmm0 - 434ebf: f3 0f 7f 47 6e movdqu %xmm0,0x6e(%rdi) - 434ec4: f2 0f f0 46 5e lddqu 0x5e(%rsi),%xmm0 - 434ec9: f3 0f 7f 47 5e movdqu %xmm0,0x5e(%rdi) - 434ece: f2 0f f0 46 4e lddqu 0x4e(%rsi),%xmm0 - 434ed3: f3 0f 7f 47 4e movdqu %xmm0,0x4e(%rdi) - 434ed8: f2 0f f0 46 3e lddqu 0x3e(%rsi),%xmm0 - 434edd: f3 0f 7f 47 3e movdqu %xmm0,0x3e(%rdi) - 434ee2: f2 0f f0 46 2e lddqu 0x2e(%rsi),%xmm0 - 434ee7: f3 0f 7f 47 2e movdqu %xmm0,0x2e(%rdi) - 434eec: f2 0f f0 46 1e lddqu 0x1e(%rsi),%xmm0 - 434ef1: f3 0f 7f 47 1e movdqu %xmm0,0x1e(%rdi) - 434ef6: f2 0f f0 46 0e lddqu 0xe(%rsi),%xmm0 - 434efb: f2 0f f0 0e lddqu (%rsi),%xmm1 - 434eff: f3 0f 7f 47 0e movdqu %xmm0,0xe(%rdi) - 434f04: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 434f08: c3 retq - 434f09: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 434f10: 48 8b 56 06 mov 0x6(%rsi),%rdx - 434f14: 48 8b 0e mov (%rsi),%rcx - 434f17: 48 89 57 06 mov %rdx,0x6(%rdi) - 434f1b: 48 89 0f mov %rcx,(%rdi) - 434f1e: c3 retq - 434f1f: 90 nop - 434f20: f2 0f f0 46 7d lddqu 0x7d(%rsi),%xmm0 - 434f25: f3 0f 7f 47 7d movdqu %xmm0,0x7d(%rdi) - 434f2a: f2 0f f0 46 6d lddqu 0x6d(%rsi),%xmm0 - 434f2f: f3 0f 7f 47 6d movdqu %xmm0,0x6d(%rdi) - 434f34: f2 0f f0 46 5d lddqu 0x5d(%rsi),%xmm0 - 434f39: f3 0f 7f 47 5d movdqu %xmm0,0x5d(%rdi) - 434f3e: f2 0f f0 46 4d lddqu 0x4d(%rsi),%xmm0 - 434f43: f3 0f 7f 47 4d movdqu %xmm0,0x4d(%rdi) - 434f48: f2 0f f0 46 3d lddqu 0x3d(%rsi),%xmm0 - 434f4d: f3 0f 7f 47 3d movdqu %xmm0,0x3d(%rdi) - 434f52: f2 0f f0 46 2d lddqu 0x2d(%rsi),%xmm0 - 434f57: f3 0f 7f 47 2d movdqu %xmm0,0x2d(%rdi) - 434f5c: f2 0f f0 46 1d lddqu 0x1d(%rsi),%xmm0 - 434f61: f3 0f 7f 47 1d movdqu %xmm0,0x1d(%rdi) - 434f66: f2 0f f0 46 0d lddqu 0xd(%rsi),%xmm0 - 434f6b: f2 0f f0 0e lddqu (%rsi),%xmm1 - 434f6f: f3 0f 7f 47 0d movdqu %xmm0,0xd(%rdi) - 434f74: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 434f78: c3 retq - 434f79: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 434f80: 48 8b 56 05 mov 0x5(%rsi),%rdx - 434f84: 48 8b 0e mov (%rsi),%rcx - 434f87: 48 89 57 05 mov %rdx,0x5(%rdi) - 434f8b: 48 89 0f mov %rcx,(%rdi) - 434f8e: c3 retq - 434f8f: 90 nop - 434f90: f2 0f f0 46 7c lddqu 0x7c(%rsi),%xmm0 - 434f95: f3 0f 7f 47 7c movdqu %xmm0,0x7c(%rdi) - 434f9a: f2 0f f0 46 6c lddqu 0x6c(%rsi),%xmm0 - 434f9f: f3 0f 7f 47 6c movdqu %xmm0,0x6c(%rdi) - 434fa4: f2 0f f0 46 5c lddqu 0x5c(%rsi),%xmm0 - 434fa9: f3 0f 7f 47 5c movdqu %xmm0,0x5c(%rdi) - 434fae: f2 0f f0 46 4c lddqu 0x4c(%rsi),%xmm0 - 434fb3: f3 0f 7f 47 4c movdqu %xmm0,0x4c(%rdi) - 434fb8: f2 0f f0 46 3c lddqu 0x3c(%rsi),%xmm0 - 434fbd: f3 0f 7f 47 3c movdqu %xmm0,0x3c(%rdi) - 434fc2: f2 0f f0 46 2c lddqu 0x2c(%rsi),%xmm0 - 434fc7: f3 0f 7f 47 2c movdqu %xmm0,0x2c(%rdi) - 434fcc: f2 0f f0 46 1c lddqu 0x1c(%rsi),%xmm0 - 434fd1: f3 0f 7f 47 1c movdqu %xmm0,0x1c(%rdi) - 434fd6: f2 0f f0 46 0c lddqu 0xc(%rsi),%xmm0 - 434fdb: f2 0f f0 0e lddqu (%rsi),%xmm1 - 434fdf: f3 0f 7f 47 0c movdqu %xmm0,0xc(%rdi) - 434fe4: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 434fe8: c3 retq - 434fe9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 434ff0: 48 8b 56 04 mov 0x4(%rsi),%rdx - 434ff4: 48 8b 0e mov (%rsi),%rcx - 434ff7: 48 89 57 04 mov %rdx,0x4(%rdi) - 434ffb: 48 89 0f mov %rcx,(%rdi) - 434ffe: c3 retq - 434fff: 90 nop - 435000: f2 0f f0 46 7b lddqu 0x7b(%rsi),%xmm0 - 435005: f3 0f 7f 47 7b movdqu %xmm0,0x7b(%rdi) - 43500a: f2 0f f0 46 6b lddqu 0x6b(%rsi),%xmm0 - 43500f: f3 0f 7f 47 6b movdqu %xmm0,0x6b(%rdi) - 435014: f2 0f f0 46 5b lddqu 0x5b(%rsi),%xmm0 - 435019: f3 0f 7f 47 5b movdqu %xmm0,0x5b(%rdi) - 43501e: f2 0f f0 46 4b lddqu 0x4b(%rsi),%xmm0 - 435023: f3 0f 7f 47 4b movdqu %xmm0,0x4b(%rdi) - 435028: f2 0f f0 46 3b lddqu 0x3b(%rsi),%xmm0 - 43502d: f3 0f 7f 47 3b movdqu %xmm0,0x3b(%rdi) - 435032: f2 0f f0 46 2b lddqu 0x2b(%rsi),%xmm0 - 435037: f3 0f 7f 47 2b movdqu %xmm0,0x2b(%rdi) - 43503c: f2 0f f0 46 1b lddqu 0x1b(%rsi),%xmm0 - 435041: f3 0f 7f 47 1b movdqu %xmm0,0x1b(%rdi) - 435046: f2 0f f0 46 0b lddqu 0xb(%rsi),%xmm0 - 43504b: f2 0f f0 0e lddqu (%rsi),%xmm1 - 43504f: f3 0f 7f 47 0b movdqu %xmm0,0xb(%rdi) - 435054: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 435058: c3 retq - 435059: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 435060: 48 8b 56 03 mov 0x3(%rsi),%rdx - 435064: 48 8b 0e mov (%rsi),%rcx - 435067: 48 89 57 03 mov %rdx,0x3(%rdi) - 43506b: 48 89 0f mov %rcx,(%rdi) - 43506e: c3 retq - 43506f: 90 nop - 435070: f2 0f f0 46 7a lddqu 0x7a(%rsi),%xmm0 - 435075: f3 0f 7f 47 7a movdqu %xmm0,0x7a(%rdi) - 43507a: f2 0f f0 46 6a lddqu 0x6a(%rsi),%xmm0 - 43507f: f3 0f 7f 47 6a movdqu %xmm0,0x6a(%rdi) - 435084: f2 0f f0 46 5a lddqu 0x5a(%rsi),%xmm0 - 435089: f3 0f 7f 47 5a movdqu %xmm0,0x5a(%rdi) - 43508e: f2 0f f0 46 4a lddqu 0x4a(%rsi),%xmm0 - 435093: f3 0f 7f 47 4a movdqu %xmm0,0x4a(%rdi) - 435098: f2 0f f0 46 3a lddqu 0x3a(%rsi),%xmm0 - 43509d: f3 0f 7f 47 3a movdqu %xmm0,0x3a(%rdi) - 4350a2: f2 0f f0 46 2a lddqu 0x2a(%rsi),%xmm0 - 4350a7: f3 0f 7f 47 2a movdqu %xmm0,0x2a(%rdi) - 4350ac: f2 0f f0 46 1a lddqu 0x1a(%rsi),%xmm0 - 4350b1: f3 0f 7f 47 1a movdqu %xmm0,0x1a(%rdi) - 4350b6: f2 0f f0 46 0a lddqu 0xa(%rsi),%xmm0 - 4350bb: f2 0f f0 0e lddqu (%rsi),%xmm1 - 4350bf: f3 0f 7f 47 0a movdqu %xmm0,0xa(%rdi) - 4350c4: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 4350c8: c3 retq - 4350c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4350d0: 48 8b 56 02 mov 0x2(%rsi),%rdx - 4350d4: 48 8b 0e mov (%rsi),%rcx - 4350d7: 48 89 57 02 mov %rdx,0x2(%rdi) - 4350db: 48 89 0f mov %rcx,(%rdi) - 4350de: c3 retq - 4350df: 90 nop - 4350e0: f2 0f f0 46 79 lddqu 0x79(%rsi),%xmm0 - 4350e5: f3 0f 7f 47 79 movdqu %xmm0,0x79(%rdi) - 4350ea: f2 0f f0 46 69 lddqu 0x69(%rsi),%xmm0 - 4350ef: f3 0f 7f 47 69 movdqu %xmm0,0x69(%rdi) - 4350f4: f2 0f f0 46 59 lddqu 0x59(%rsi),%xmm0 - 4350f9: f3 0f 7f 47 59 movdqu %xmm0,0x59(%rdi) - 4350fe: f2 0f f0 46 49 lddqu 0x49(%rsi),%xmm0 - 435103: f3 0f 7f 47 49 movdqu %xmm0,0x49(%rdi) - 435108: f2 0f f0 46 39 lddqu 0x39(%rsi),%xmm0 - 43510d: f3 0f 7f 47 39 movdqu %xmm0,0x39(%rdi) - 435112: f2 0f f0 46 29 lddqu 0x29(%rsi),%xmm0 - 435117: f3 0f 7f 47 29 movdqu %xmm0,0x29(%rdi) - 43511c: f2 0f f0 46 19 lddqu 0x19(%rsi),%xmm0 - 435121: f3 0f 7f 47 19 movdqu %xmm0,0x19(%rdi) - 435126: f2 0f f0 46 09 lddqu 0x9(%rsi),%xmm0 - 43512b: f2 0f f0 0e lddqu (%rsi),%xmm1 - 43512f: f3 0f 7f 47 09 movdqu %xmm0,0x9(%rdi) - 435134: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 435138: c3 retq - 435139: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 435140: 48 8b 56 01 mov 0x1(%rsi),%rdx - 435144: 48 8b 0e mov (%rsi),%rcx - 435147: 48 89 57 01 mov %rdx,0x1(%rdi) - 43514b: 48 89 0f mov %rcx,(%rdi) - 43514e: c3 retq - 43514f: 90 nop - 435150: f2 0f f0 46 78 lddqu 0x78(%rsi),%xmm0 - 435155: f3 0f 7f 47 78 movdqu %xmm0,0x78(%rdi) - 43515a: f2 0f f0 46 68 lddqu 0x68(%rsi),%xmm0 - 43515f: f3 0f 7f 47 68 movdqu %xmm0,0x68(%rdi) - 435164: f2 0f f0 46 58 lddqu 0x58(%rsi),%xmm0 - 435169: f3 0f 7f 47 58 movdqu %xmm0,0x58(%rdi) - 43516e: f2 0f f0 46 48 lddqu 0x48(%rsi),%xmm0 - 435173: f3 0f 7f 47 48 movdqu %xmm0,0x48(%rdi) - 435178: f2 0f f0 46 38 lddqu 0x38(%rsi),%xmm0 - 43517d: f3 0f 7f 47 38 movdqu %xmm0,0x38(%rdi) - 435182: f2 0f f0 46 28 lddqu 0x28(%rsi),%xmm0 - 435187: f3 0f 7f 47 28 movdqu %xmm0,0x28(%rdi) - 43518c: f2 0f f0 46 18 lddqu 0x18(%rsi),%xmm0 - 435191: f3 0f 7f 47 18 movdqu %xmm0,0x18(%rdi) - 435196: f2 0f f0 46 08 lddqu 0x8(%rsi),%xmm0 - 43519b: f2 0f f0 0e lddqu (%rsi),%xmm1 - 43519f: f3 0f 7f 47 08 movdqu %xmm0,0x8(%rdi) - 4351a4: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 4351a8: c3 retq - 4351a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4351b0: 48 8b 16 mov (%rsi),%rdx - 4351b3: 48 89 17 mov %rdx,(%rdi) - 4351b6: c3 retq - 4351b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 4351be: 00 00 - 4351c0: f2 0f f0 46 77 lddqu 0x77(%rsi),%xmm0 - 4351c5: f3 0f 7f 47 77 movdqu %xmm0,0x77(%rdi) - 4351ca: f2 0f f0 46 67 lddqu 0x67(%rsi),%xmm0 - 4351cf: f3 0f 7f 47 67 movdqu %xmm0,0x67(%rdi) - 4351d4: f2 0f f0 46 57 lddqu 0x57(%rsi),%xmm0 - 4351d9: f3 0f 7f 47 57 movdqu %xmm0,0x57(%rdi) - 4351de: f2 0f f0 46 47 lddqu 0x47(%rsi),%xmm0 - 4351e3: f3 0f 7f 47 47 movdqu %xmm0,0x47(%rdi) - 4351e8: f2 0f f0 46 37 lddqu 0x37(%rsi),%xmm0 - 4351ed: f3 0f 7f 47 37 movdqu %xmm0,0x37(%rdi) - 4351f2: f2 0f f0 46 27 lddqu 0x27(%rsi),%xmm0 - 4351f7: f3 0f 7f 47 27 movdqu %xmm0,0x27(%rdi) - 4351fc: f2 0f f0 46 17 lddqu 0x17(%rsi),%xmm0 - 435201: f3 0f 7f 47 17 movdqu %xmm0,0x17(%rdi) - 435206: f2 0f f0 46 07 lddqu 0x7(%rsi),%xmm0 - 43520b: f2 0f f0 0e lddqu (%rsi),%xmm1 - 43520f: f3 0f 7f 47 07 movdqu %xmm0,0x7(%rdi) - 435214: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 435218: c3 retq - 435219: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 435220: 8b 56 03 mov 0x3(%rsi),%edx - 435223: 8b 0e mov (%rsi),%ecx - 435225: 89 57 03 mov %edx,0x3(%rdi) - 435228: 89 0f mov %ecx,(%rdi) - 43522a: c3 retq - 43522b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 435230: f2 0f f0 46 76 lddqu 0x76(%rsi),%xmm0 - 435235: f3 0f 7f 47 76 movdqu %xmm0,0x76(%rdi) - 43523a: f2 0f f0 46 66 lddqu 0x66(%rsi),%xmm0 - 43523f: f3 0f 7f 47 66 movdqu %xmm0,0x66(%rdi) - 435244: f2 0f f0 46 56 lddqu 0x56(%rsi),%xmm0 - 435249: f3 0f 7f 47 56 movdqu %xmm0,0x56(%rdi) - 43524e: f2 0f f0 46 46 lddqu 0x46(%rsi),%xmm0 - 435253: f3 0f 7f 47 46 movdqu %xmm0,0x46(%rdi) - 435258: f2 0f f0 46 36 lddqu 0x36(%rsi),%xmm0 - 43525d: f3 0f 7f 47 36 movdqu %xmm0,0x36(%rdi) - 435262: f2 0f f0 46 26 lddqu 0x26(%rsi),%xmm0 - 435267: f3 0f 7f 47 26 movdqu %xmm0,0x26(%rdi) - 43526c: f2 0f f0 46 16 lddqu 0x16(%rsi),%xmm0 - 435271: f3 0f 7f 47 16 movdqu %xmm0,0x16(%rdi) - 435276: f2 0f f0 46 06 lddqu 0x6(%rsi),%xmm0 - 43527b: f2 0f f0 0e lddqu (%rsi),%xmm1 - 43527f: f3 0f 7f 47 06 movdqu %xmm0,0x6(%rdi) - 435284: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 435288: c3 retq - 435289: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 435290: 8b 56 02 mov 0x2(%rsi),%edx - 435293: 8b 0e mov (%rsi),%ecx - 435295: 89 57 02 mov %edx,0x2(%rdi) - 435298: 89 0f mov %ecx,(%rdi) - 43529a: c3 retq - 43529b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4352a0: f2 0f f0 46 75 lddqu 0x75(%rsi),%xmm0 - 4352a5: f3 0f 7f 47 75 movdqu %xmm0,0x75(%rdi) - 4352aa: f2 0f f0 46 65 lddqu 0x65(%rsi),%xmm0 - 4352af: f3 0f 7f 47 65 movdqu %xmm0,0x65(%rdi) - 4352b4: f2 0f f0 46 55 lddqu 0x55(%rsi),%xmm0 - 4352b9: f3 0f 7f 47 55 movdqu %xmm0,0x55(%rdi) - 4352be: f2 0f f0 46 45 lddqu 0x45(%rsi),%xmm0 - 4352c3: f3 0f 7f 47 45 movdqu %xmm0,0x45(%rdi) - 4352c8: f2 0f f0 46 35 lddqu 0x35(%rsi),%xmm0 - 4352cd: f3 0f 7f 47 35 movdqu %xmm0,0x35(%rdi) - 4352d2: f2 0f f0 46 25 lddqu 0x25(%rsi),%xmm0 - 4352d7: f3 0f 7f 47 25 movdqu %xmm0,0x25(%rdi) - 4352dc: f2 0f f0 46 15 lddqu 0x15(%rsi),%xmm0 - 4352e1: f3 0f 7f 47 15 movdqu %xmm0,0x15(%rdi) - 4352e6: f2 0f f0 46 05 lddqu 0x5(%rsi),%xmm0 - 4352eb: f2 0f f0 0e lddqu (%rsi),%xmm1 - 4352ef: f3 0f 7f 47 05 movdqu %xmm0,0x5(%rdi) - 4352f4: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 4352f8: c3 retq - 4352f9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 435300: 8b 56 01 mov 0x1(%rsi),%edx - 435303: 8b 0e mov (%rsi),%ecx - 435305: 89 57 01 mov %edx,0x1(%rdi) - 435308: 89 0f mov %ecx,(%rdi) - 43530a: c3 retq - 43530b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 435310: f2 0f f0 46 74 lddqu 0x74(%rsi),%xmm0 - 435315: f3 0f 7f 47 74 movdqu %xmm0,0x74(%rdi) - 43531a: f2 0f f0 46 64 lddqu 0x64(%rsi),%xmm0 - 43531f: f3 0f 7f 47 64 movdqu %xmm0,0x64(%rdi) - 435324: f2 0f f0 46 54 lddqu 0x54(%rsi),%xmm0 - 435329: f3 0f 7f 47 54 movdqu %xmm0,0x54(%rdi) - 43532e: f2 0f f0 46 44 lddqu 0x44(%rsi),%xmm0 - 435333: f3 0f 7f 47 44 movdqu %xmm0,0x44(%rdi) - 435338: f2 0f f0 46 34 lddqu 0x34(%rsi),%xmm0 - 43533d: f3 0f 7f 47 34 movdqu %xmm0,0x34(%rdi) - 435342: f2 0f f0 46 24 lddqu 0x24(%rsi),%xmm0 - 435347: f3 0f 7f 47 24 movdqu %xmm0,0x24(%rdi) - 43534c: f2 0f f0 46 14 lddqu 0x14(%rsi),%xmm0 - 435351: f3 0f 7f 47 14 movdqu %xmm0,0x14(%rdi) - 435356: f2 0f f0 46 04 lddqu 0x4(%rsi),%xmm0 - 43535b: f2 0f f0 0e lddqu (%rsi),%xmm1 - 43535f: f3 0f 7f 47 04 movdqu %xmm0,0x4(%rdi) - 435364: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 435368: c3 retq - 435369: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 435370: 8b 16 mov (%rsi),%edx - 435372: 89 17 mov %edx,(%rdi) - 435374: c3 retq - 435375: 90 nop - 435376: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43537d: 00 00 00 - 435380: f2 0f f0 46 73 lddqu 0x73(%rsi),%xmm0 - 435385: f3 0f 7f 47 73 movdqu %xmm0,0x73(%rdi) - 43538a: f2 0f f0 46 63 lddqu 0x63(%rsi),%xmm0 - 43538f: f3 0f 7f 47 63 movdqu %xmm0,0x63(%rdi) - 435394: f2 0f f0 46 53 lddqu 0x53(%rsi),%xmm0 - 435399: f3 0f 7f 47 53 movdqu %xmm0,0x53(%rdi) - 43539e: f2 0f f0 46 43 lddqu 0x43(%rsi),%xmm0 - 4353a3: f3 0f 7f 47 43 movdqu %xmm0,0x43(%rdi) - 4353a8: f2 0f f0 46 33 lddqu 0x33(%rsi),%xmm0 - 4353ad: f3 0f 7f 47 33 movdqu %xmm0,0x33(%rdi) - 4353b2: f2 0f f0 46 23 lddqu 0x23(%rsi),%xmm0 - 4353b7: f3 0f 7f 47 23 movdqu %xmm0,0x23(%rdi) - 4353bc: f2 0f f0 46 13 lddqu 0x13(%rsi),%xmm0 - 4353c1: f3 0f 7f 47 13 movdqu %xmm0,0x13(%rdi) - 4353c6: f2 0f f0 46 03 lddqu 0x3(%rsi),%xmm0 - 4353cb: f2 0f f0 0e lddqu (%rsi),%xmm1 - 4353cf: f3 0f 7f 47 03 movdqu %xmm0,0x3(%rdi) - 4353d4: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 4353d8: c3 retq - 4353d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4353e0: 66 8b 56 01 mov 0x1(%rsi),%dx - 4353e4: 66 8b 0e mov (%rsi),%cx - 4353e7: 66 89 57 01 mov %dx,0x1(%rdi) - 4353eb: 66 89 0f mov %cx,(%rdi) - 4353ee: c3 retq - 4353ef: 90 nop - 4353f0: f2 0f f0 46 72 lddqu 0x72(%rsi),%xmm0 - 4353f5: f3 0f 7f 47 72 movdqu %xmm0,0x72(%rdi) - 4353fa: f2 0f f0 46 62 lddqu 0x62(%rsi),%xmm0 - 4353ff: f3 0f 7f 47 62 movdqu %xmm0,0x62(%rdi) - 435404: f2 0f f0 46 52 lddqu 0x52(%rsi),%xmm0 - 435409: f3 0f 7f 47 52 movdqu %xmm0,0x52(%rdi) - 43540e: f2 0f f0 46 42 lddqu 0x42(%rsi),%xmm0 - 435413: f3 0f 7f 47 42 movdqu %xmm0,0x42(%rdi) - 435418: f2 0f f0 46 32 lddqu 0x32(%rsi),%xmm0 - 43541d: f3 0f 7f 47 32 movdqu %xmm0,0x32(%rdi) - 435422: f2 0f f0 46 22 lddqu 0x22(%rsi),%xmm0 - 435427: f3 0f 7f 47 22 movdqu %xmm0,0x22(%rdi) - 43542c: f2 0f f0 46 12 lddqu 0x12(%rsi),%xmm0 - 435431: f3 0f 7f 47 12 movdqu %xmm0,0x12(%rdi) - 435436: f2 0f f0 46 02 lddqu 0x2(%rsi),%xmm0 - 43543b: f2 0f f0 0e lddqu (%rsi),%xmm1 - 43543f: f3 0f 7f 47 02 movdqu %xmm0,0x2(%rdi) - 435444: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 435448: c3 retq - 435449: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 435450: 0f b7 16 movzwl (%rsi),%edx - 435453: 66 89 17 mov %dx,(%rdi) - 435456: c3 retq - 435457: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43545e: 00 00 - 435460: f2 0f f0 46 71 lddqu 0x71(%rsi),%xmm0 - 435465: f3 0f 7f 47 71 movdqu %xmm0,0x71(%rdi) - 43546a: f2 0f f0 46 61 lddqu 0x61(%rsi),%xmm0 - 43546f: f3 0f 7f 47 61 movdqu %xmm0,0x61(%rdi) - 435474: f2 0f f0 46 51 lddqu 0x51(%rsi),%xmm0 - 435479: f3 0f 7f 47 51 movdqu %xmm0,0x51(%rdi) - 43547e: f2 0f f0 46 41 lddqu 0x41(%rsi),%xmm0 - 435483: f3 0f 7f 47 41 movdqu %xmm0,0x41(%rdi) - 435488: f2 0f f0 46 31 lddqu 0x31(%rsi),%xmm0 - 43548d: f3 0f 7f 47 31 movdqu %xmm0,0x31(%rdi) - 435492: f2 0f f0 46 21 lddqu 0x21(%rsi),%xmm0 - 435497: f3 0f 7f 47 21 movdqu %xmm0,0x21(%rdi) - 43549c: f2 0f f0 46 11 lddqu 0x11(%rsi),%xmm0 - 4354a1: f3 0f 7f 47 11 movdqu %xmm0,0x11(%rdi) - 4354a6: f2 0f f0 46 01 lddqu 0x1(%rsi),%xmm0 - 4354ab: f2 0f f0 0e lddqu (%rsi),%xmm1 - 4354af: f3 0f 7f 47 01 movdqu %xmm0,0x1(%rdi) - 4354b4: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 4354b8: c3 retq - 4354b9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4354c0: 0f b6 16 movzbl (%rsi),%edx - 4354c3: 88 17 mov %dl,(%rdi) - 4354c5: c3 retq - 4354c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4354cd: 00 00 00 - -00000000004354d0 <__memmove_chk_avx512_no_vzeroupper>: - 4354d0: 48 39 d1 cmp %rdx,%rcx - 4354d3: 0f 82 d7 d5 00 00 jb 442ab0 <__chk_fail> - 4354d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -00000000004354e0 <__memmove_avx512_no_vzeroupper>: - 4354e0: 48 89 f8 mov %rdi,%rax - 4354e3: 48 8d 0c 16 lea (%rsi,%rdx,1),%rcx - 4354e7: 4c 8d 0c 17 lea (%rdi,%rdx,1),%r9 - 4354eb: 48 81 fa 00 02 00 00 cmp $0x200,%rdx - 4354f2: 0f 87 5d 01 00 00 ja 435655 <__memmove_avx512_no_vzeroupper+0x175> - 4354f8: 48 83 fa 10 cmp $0x10,%rdx - 4354fc: 0f 86 0f 01 00 00 jbe 435611 <__memmove_avx512_no_vzeroupper+0x131> - 435502: 48 81 fa 00 01 00 00 cmp $0x100,%rdx - 435509: 72 6f jb 43557a <__memmove_avx512_no_vzeroupper+0x9a> - 43550b: 62 f1 7c 48 10 06 vmovups (%rsi),%zmm0 - 435511: 62 f1 7c 48 10 4e 01 vmovups 0x40(%rsi),%zmm1 - 435518: 62 f1 7c 48 10 56 02 vmovups 0x80(%rsi),%zmm2 - 43551f: 62 f1 7c 48 10 5e 03 vmovups 0xc0(%rsi),%zmm3 - 435526: 62 f1 7c 48 10 61 fc vmovups -0x100(%rcx),%zmm4 - 43552d: 62 f1 7c 48 10 69 fd vmovups -0xc0(%rcx),%zmm5 - 435534: 62 f1 7c 48 10 71 fe vmovups -0x80(%rcx),%zmm6 - 43553b: 62 f1 7c 48 10 79 ff vmovups -0x40(%rcx),%zmm7 - 435542: 62 f1 7c 48 11 07 vmovups %zmm0,(%rdi) - 435548: 62 f1 7c 48 11 4f 01 vmovups %zmm1,0x40(%rdi) - 43554f: 62 f1 7c 48 11 57 02 vmovups %zmm2,0x80(%rdi) - 435556: 62 f1 7c 48 11 5f 03 vmovups %zmm3,0xc0(%rdi) - 43555d: 62 d1 7c 48 11 61 fc vmovups %zmm4,-0x100(%r9) - 435564: 62 d1 7c 48 11 69 fd vmovups %zmm5,-0xc0(%r9) - 43556b: 62 d1 7c 48 11 71 fe vmovups %zmm6,-0x80(%r9) - 435572: 62 d1 7c 48 11 79 ff vmovups %zmm7,-0x40(%r9) - 435579: c3 retq - 43557a: 80 fa 80 cmp $0x80,%dl - 43557d: 72 37 jb 4355b6 <__memmove_avx512_no_vzeroupper+0xd6> - 43557f: 62 f1 7c 48 10 06 vmovups (%rsi),%zmm0 - 435585: 62 f1 7c 48 10 4e 01 vmovups 0x40(%rsi),%zmm1 - 43558c: 62 f1 7c 48 10 51 fe vmovups -0x80(%rcx),%zmm2 - 435593: 62 f1 7c 48 10 59 ff vmovups -0x40(%rcx),%zmm3 - 43559a: 62 f1 7c 48 11 07 vmovups %zmm0,(%rdi) - 4355a0: 62 f1 7c 48 11 4f 01 vmovups %zmm1,0x40(%rdi) - 4355a7: 62 d1 7c 48 11 51 fe vmovups %zmm2,-0x80(%r9) - 4355ae: 62 d1 7c 48 11 59 ff vmovups %zmm3,-0x40(%r9) - 4355b5: c3 retq - 4355b6: 80 fa 40 cmp $0x40,%dl - 4355b9: 72 29 jb 4355e4 <__memmove_avx512_no_vzeroupper+0x104> - 4355bb: c5 fe 6f 06 vmovdqu (%rsi),%ymm0 - 4355bf: c5 fe 6f 4e 20 vmovdqu 0x20(%rsi),%ymm1 - 4355c4: c5 fe 6f 51 c0 vmovdqu -0x40(%rcx),%ymm2 - 4355c9: c5 fe 6f 59 e0 vmovdqu -0x20(%rcx),%ymm3 - 4355ce: c5 fe 7f 07 vmovdqu %ymm0,(%rdi) - 4355d2: c5 fe 7f 4f 20 vmovdqu %ymm1,0x20(%rdi) - 4355d7: c4 c1 7e 7f 51 c0 vmovdqu %ymm2,-0x40(%r9) - 4355dd: c4 c1 7e 7f 59 e0 vmovdqu %ymm3,-0x20(%r9) - 4355e3: c3 retq - 4355e4: 80 fa 20 cmp $0x20,%dl - 4355e7: 72 14 jb 4355fd <__memmove_avx512_no_vzeroupper+0x11d> - 4355e9: c5 fe 6f 06 vmovdqu (%rsi),%ymm0 - 4355ed: c5 fe 6f 49 e0 vmovdqu -0x20(%rcx),%ymm1 - 4355f2: c5 fe 7f 07 vmovdqu %ymm0,(%rdi) - 4355f6: c4 c1 7e 7f 49 e0 vmovdqu %ymm1,-0x20(%r9) - 4355fc: c3 retq - 4355fd: c5 fa 6f 06 vmovdqu (%rsi),%xmm0 - 435601: c5 fa 6f 49 f0 vmovdqu -0x10(%rcx),%xmm1 - 435606: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) - 43560a: c4 c1 7a 7f 49 f0 vmovdqu %xmm1,-0x10(%r9) - 435610: c3 retq - 435611: 80 fa 08 cmp $0x8,%dl - 435614: 72 0f jb 435625 <__memmove_avx512_no_vzeroupper+0x145> - 435616: 48 8b 36 mov (%rsi),%rsi - 435619: 48 8b 49 f8 mov -0x8(%rcx),%rcx - 43561d: 48 89 37 mov %rsi,(%rdi) - 435620: 49 89 49 f8 mov %rcx,-0x8(%r9) - 435624: c3 retq - 435625: 80 fa 04 cmp $0x4,%dl - 435628: 72 0c jb 435636 <__memmove_avx512_no_vzeroupper+0x156> - 43562a: 8b 36 mov (%rsi),%esi - 43562c: 8b 49 fc mov -0x4(%rcx),%ecx - 43562f: 89 37 mov %esi,(%rdi) - 435631: 41 89 49 fc mov %ecx,-0x4(%r9) - 435635: c3 retq - 435636: 80 fa 02 cmp $0x2,%dl - 435639: 72 10 jb 43564b <__memmove_avx512_no_vzeroupper+0x16b> - 43563b: 66 8b 36 mov (%rsi),%si - 43563e: 66 8b 49 fe mov -0x2(%rcx),%cx - 435642: 66 89 37 mov %si,(%rdi) - 435645: 66 41 89 49 fe mov %cx,-0x2(%r9) - 43564a: c3 retq - 43564b: 80 fa 01 cmp $0x1,%dl - 43564e: 72 04 jb 435654 <__memmove_avx512_no_vzeroupper+0x174> - 435650: 8a 0e mov (%rsi),%cl - 435652: 88 0f mov %cl,(%rdi) - 435654: c3 retq - 435655: 4c 8b 05 54 5a 29 00 mov 0x295a54(%rip),%r8 # 6cb0b0 <__x86_shared_cache_size_half> - 43565c: 4c 39 c2 cmp %r8,%rdx - 43565f: 0f 83 18 04 00 00 jae 435a7d <__memmove_avx512_no_vzeroupper+0x59d> - 435665: 48 81 fa 00 04 00 00 cmp $0x400,%rdx - 43566c: 0f 87 42 01 00 00 ja 4357b4 <__memmove_avx512_no_vzeroupper+0x2d4> - 435672: 0f 18 16 prefetcht1 (%rsi) - 435675: 0f 18 56 40 prefetcht1 0x40(%rsi) - 435679: 0f 18 96 80 00 00 00 prefetcht1 0x80(%rsi) - 435680: 0f 18 96 c0 00 00 00 prefetcht1 0xc0(%rsi) - 435687: 0f 18 96 00 01 00 00 prefetcht1 0x100(%rsi) - 43568e: 0f 18 96 40 01 00 00 prefetcht1 0x140(%rsi) - 435695: 0f 18 96 80 01 00 00 prefetcht1 0x180(%rsi) - 43569c: 0f 18 96 c0 01 00 00 prefetcht1 0x1c0(%rsi) - 4356a3: 0f 18 91 00 fe ff ff prefetcht1 -0x200(%rcx) - 4356aa: 0f 18 91 40 fe ff ff prefetcht1 -0x1c0(%rcx) - 4356b1: 0f 18 91 80 fe ff ff prefetcht1 -0x180(%rcx) - 4356b8: 0f 18 91 c0 fe ff ff prefetcht1 -0x140(%rcx) - 4356bf: 0f 18 91 00 ff ff ff prefetcht1 -0x100(%rcx) - 4356c6: 0f 18 91 40 ff ff ff prefetcht1 -0xc0(%rcx) - 4356cd: 0f 18 51 80 prefetcht1 -0x80(%rcx) - 4356d1: 0f 18 51 c0 prefetcht1 -0x40(%rcx) - 4356d5: 62 f1 7c 48 10 06 vmovups (%rsi),%zmm0 - 4356db: 62 f1 7c 48 10 4e 01 vmovups 0x40(%rsi),%zmm1 - 4356e2: 62 f1 7c 48 10 56 02 vmovups 0x80(%rsi),%zmm2 - 4356e9: 62 f1 7c 48 10 5e 03 vmovups 0xc0(%rsi),%zmm3 - 4356f0: 62 f1 7c 48 10 66 04 vmovups 0x100(%rsi),%zmm4 - 4356f7: 62 f1 7c 48 10 6e 05 vmovups 0x140(%rsi),%zmm5 - 4356fe: 62 f1 7c 48 10 76 06 vmovups 0x180(%rsi),%zmm6 - 435705: 62 f1 7c 48 10 7e 07 vmovups 0x1c0(%rsi),%zmm7 - 43570c: 62 71 7c 48 10 41 f8 vmovups -0x200(%rcx),%zmm8 - 435713: 62 71 7c 48 10 49 f9 vmovups -0x1c0(%rcx),%zmm9 - 43571a: 62 71 7c 48 10 51 fa vmovups -0x180(%rcx),%zmm10 - 435721: 62 71 7c 48 10 59 fb vmovups -0x140(%rcx),%zmm11 - 435728: 62 71 7c 48 10 61 fc vmovups -0x100(%rcx),%zmm12 - 43572f: 62 71 7c 48 10 69 fd vmovups -0xc0(%rcx),%zmm13 - 435736: 62 71 7c 48 10 71 fe vmovups -0x80(%rcx),%zmm14 - 43573d: 62 71 7c 48 10 79 ff vmovups -0x40(%rcx),%zmm15 - 435744: 62 f1 7c 48 11 07 vmovups %zmm0,(%rdi) - 43574a: 62 f1 7c 48 11 4f 01 vmovups %zmm1,0x40(%rdi) - 435751: 62 f1 7c 48 11 57 02 vmovups %zmm2,0x80(%rdi) - 435758: 62 f1 7c 48 11 5f 03 vmovups %zmm3,0xc0(%rdi) - 43575f: 62 f1 7c 48 11 67 04 vmovups %zmm4,0x100(%rdi) - 435766: 62 f1 7c 48 11 6f 05 vmovups %zmm5,0x140(%rdi) - 43576d: 62 f1 7c 48 11 77 06 vmovups %zmm6,0x180(%rdi) - 435774: 62 f1 7c 48 11 7f 07 vmovups %zmm7,0x1c0(%rdi) - 43577b: 62 51 7c 48 11 41 f8 vmovups %zmm8,-0x200(%r9) - 435782: 62 51 7c 48 11 49 f9 vmovups %zmm9,-0x1c0(%r9) - 435789: 62 51 7c 48 11 51 fa vmovups %zmm10,-0x180(%r9) - 435790: 62 51 7c 48 11 59 fb vmovups %zmm11,-0x140(%r9) - 435797: 62 51 7c 48 11 61 fc vmovups %zmm12,-0x100(%r9) - 43579e: 62 51 7c 48 11 69 fd vmovups %zmm13,-0xc0(%r9) - 4357a5: 62 51 7c 48 11 71 fe vmovups %zmm14,-0x80(%r9) - 4357ac: 62 51 7c 48 11 79 ff vmovups %zmm15,-0x40(%r9) - 4357b3: c3 retq - 4357b4: 48 39 f7 cmp %rsi,%rdi - 4357b7: 0f 87 5e 01 00 00 ja 43591b <__memmove_avx512_no_vzeroupper+0x43b> - 4357bd: 49 81 e9 00 02 00 00 sub $0x200,%r9 - 4357c4: 62 71 7c 48 10 41 f8 vmovups -0x200(%rcx),%zmm8 - 4357cb: 62 71 7c 48 10 49 f9 vmovups -0x1c0(%rcx),%zmm9 - 4357d2: 62 71 7c 48 10 51 fa vmovups -0x180(%rcx),%zmm10 - 4357d9: 62 71 7c 48 10 59 fb vmovups -0x140(%rcx),%zmm11 - 4357e0: 62 71 7c 48 10 61 fc vmovups -0x100(%rcx),%zmm12 - 4357e7: 62 71 7c 48 10 69 fd vmovups -0xc0(%rcx),%zmm13 - 4357ee: 62 71 7c 48 10 71 fe vmovups -0x80(%rcx),%zmm14 - 4357f5: 62 71 7c 48 10 79 ff vmovups -0x40(%rcx),%zmm15 - 4357fc: 0f 18 16 prefetcht1 (%rsi) - 4357ff: 0f 18 56 40 prefetcht1 0x40(%rsi) - 435803: 0f 18 96 80 00 00 00 prefetcht1 0x80(%rsi) - 43580a: 0f 18 96 c0 00 00 00 prefetcht1 0xc0(%rsi) - 435811: 0f 18 96 00 01 00 00 prefetcht1 0x100(%rsi) - 435818: 0f 18 96 40 01 00 00 prefetcht1 0x140(%rsi) - 43581f: 0f 18 96 80 01 00 00 prefetcht1 0x180(%rsi) - 435826: 0f 18 96 c0 01 00 00 prefetcht1 0x1c0(%rsi) - 43582d: 62 f1 7c 48 10 06 vmovups (%rsi),%zmm0 - 435833: 62 f1 7c 48 10 4e 01 vmovups 0x40(%rsi),%zmm1 - 43583a: 62 f1 7c 48 10 56 02 vmovups 0x80(%rsi),%zmm2 - 435841: 62 f1 7c 48 10 5e 03 vmovups 0xc0(%rsi),%zmm3 - 435848: 62 f1 7c 48 10 66 04 vmovups 0x100(%rsi),%zmm4 - 43584f: 62 f1 7c 48 10 6e 05 vmovups 0x140(%rsi),%zmm5 - 435856: 62 f1 7c 48 10 76 06 vmovups 0x180(%rsi),%zmm6 - 43585d: 62 f1 7c 48 10 7e 07 vmovups 0x1c0(%rsi),%zmm7 - 435864: 48 81 c6 00 02 00 00 add $0x200,%rsi - 43586b: 0f 18 16 prefetcht1 (%rsi) - 43586e: 0f 18 56 40 prefetcht1 0x40(%rsi) - 435872: 0f 18 96 80 00 00 00 prefetcht1 0x80(%rsi) - 435879: 0f 18 96 c0 00 00 00 prefetcht1 0xc0(%rsi) - 435880: 0f 18 96 00 01 00 00 prefetcht1 0x100(%rsi) - 435887: 0f 18 96 40 01 00 00 prefetcht1 0x140(%rsi) - 43588e: 0f 18 96 80 01 00 00 prefetcht1 0x180(%rsi) - 435895: 0f 18 96 c0 01 00 00 prefetcht1 0x1c0(%rsi) - 43589c: 62 f1 7c 48 11 07 vmovups %zmm0,(%rdi) - 4358a2: 62 f1 7c 48 11 4f 01 vmovups %zmm1,0x40(%rdi) - 4358a9: 62 f1 7c 48 11 57 02 vmovups %zmm2,0x80(%rdi) - 4358b0: 62 f1 7c 48 11 5f 03 vmovups %zmm3,0xc0(%rdi) - 4358b7: 62 f1 7c 48 11 67 04 vmovups %zmm4,0x100(%rdi) - 4358be: 62 f1 7c 48 11 6f 05 vmovups %zmm5,0x140(%rdi) - 4358c5: 62 f1 7c 48 11 77 06 vmovups %zmm6,0x180(%rdi) - 4358cc: 62 f1 7c 48 11 7f 07 vmovups %zmm7,0x1c0(%rdi) - 4358d3: 48 81 c7 00 02 00 00 add $0x200,%rdi - 4358da: 4c 39 cf cmp %r9,%rdi - 4358dd: 0f 82 4a ff ff ff jb 43582d <__memmove_avx512_no_vzeroupper+0x34d> - 4358e3: 62 51 7c 48 11 01 vmovups %zmm8,(%r9) - 4358e9: 62 51 7c 48 11 49 01 vmovups %zmm9,0x40(%r9) - 4358f0: 62 51 7c 48 11 51 02 vmovups %zmm10,0x80(%r9) - 4358f7: 62 51 7c 48 11 59 03 vmovups %zmm11,0xc0(%r9) - 4358fe: 62 51 7c 48 11 61 04 vmovups %zmm12,0x100(%r9) - 435905: 62 51 7c 48 11 69 05 vmovups %zmm13,0x140(%r9) - 43590c: 62 51 7c 48 11 71 06 vmovups %zmm14,0x180(%r9) - 435913: 62 51 7c 48 11 79 07 vmovups %zmm15,0x1c0(%r9) - 43591a: c3 retq - 43591b: 48 81 c7 00 02 00 00 add $0x200,%rdi - 435922: 62 71 7c 48 10 46 07 vmovups 0x1c0(%rsi),%zmm8 - 435929: 62 71 7c 48 10 4e 06 vmovups 0x180(%rsi),%zmm9 - 435930: 62 71 7c 48 10 56 05 vmovups 0x140(%rsi),%zmm10 - 435937: 62 71 7c 48 10 5e 04 vmovups 0x100(%rsi),%zmm11 - 43593e: 62 71 7c 48 10 66 03 vmovups 0xc0(%rsi),%zmm12 - 435945: 62 71 7c 48 10 6e 02 vmovups 0x80(%rsi),%zmm13 - 43594c: 62 71 7c 48 10 76 01 vmovups 0x40(%rsi),%zmm14 - 435953: 62 71 7c 48 10 3e vmovups (%rsi),%zmm15 - 435959: 0f 18 51 c0 prefetcht1 -0x40(%rcx) - 43595d: 0f 18 51 80 prefetcht1 -0x80(%rcx) - 435961: 0f 18 91 40 ff ff ff prefetcht1 -0xc0(%rcx) - 435968: 0f 18 91 00 ff ff ff prefetcht1 -0x100(%rcx) - 43596f: 0f 18 91 c0 fe ff ff prefetcht1 -0x140(%rcx) - 435976: 0f 18 91 80 fe ff ff prefetcht1 -0x180(%rcx) - 43597d: 0f 18 91 40 fe ff ff prefetcht1 -0x1c0(%rcx) - 435984: 0f 18 91 00 fe ff ff prefetcht1 -0x200(%rcx) - 43598b: 62 f1 7c 48 10 41 ff vmovups -0x40(%rcx),%zmm0 - 435992: 62 f1 7c 48 10 49 fe vmovups -0x80(%rcx),%zmm1 - 435999: 62 f1 7c 48 10 51 fd vmovups -0xc0(%rcx),%zmm2 - 4359a0: 62 f1 7c 48 10 59 fc vmovups -0x100(%rcx),%zmm3 - 4359a7: 62 f1 7c 48 10 61 fb vmovups -0x140(%rcx),%zmm4 - 4359ae: 62 f1 7c 48 10 69 fa vmovups -0x180(%rcx),%zmm5 - 4359b5: 62 f1 7c 48 10 71 f9 vmovups -0x1c0(%rcx),%zmm6 - 4359bc: 62 f1 7c 48 10 79 f8 vmovups -0x200(%rcx),%zmm7 - 4359c3: 48 81 e9 00 02 00 00 sub $0x200,%rcx - 4359ca: 0f 18 51 c0 prefetcht1 -0x40(%rcx) - 4359ce: 0f 18 51 80 prefetcht1 -0x80(%rcx) - 4359d2: 0f 18 91 40 ff ff ff prefetcht1 -0xc0(%rcx) - 4359d9: 0f 18 91 00 ff ff ff prefetcht1 -0x100(%rcx) - 4359e0: 0f 18 91 c0 fe ff ff prefetcht1 -0x140(%rcx) - 4359e7: 0f 18 91 80 fe ff ff prefetcht1 -0x180(%rcx) - 4359ee: 0f 18 91 40 fe ff ff prefetcht1 -0x1c0(%rcx) - 4359f5: 0f 18 91 00 fe ff ff prefetcht1 -0x200(%rcx) - 4359fc: 62 d1 7c 48 11 41 ff vmovups %zmm0,-0x40(%r9) - 435a03: 62 d1 7c 48 11 49 fe vmovups %zmm1,-0x80(%r9) - 435a0a: 62 d1 7c 48 11 51 fd vmovups %zmm2,-0xc0(%r9) - 435a11: 62 d1 7c 48 11 59 fc vmovups %zmm3,-0x100(%r9) - 435a18: 62 d1 7c 48 11 61 fb vmovups %zmm4,-0x140(%r9) - 435a1f: 62 d1 7c 48 11 69 fa vmovups %zmm5,-0x180(%r9) - 435a26: 62 d1 7c 48 11 71 f9 vmovups %zmm6,-0x1c0(%r9) - 435a2d: 62 d1 7c 48 11 79 f8 vmovups %zmm7,-0x200(%r9) - 435a34: 49 81 e9 00 02 00 00 sub $0x200,%r9 - 435a3b: 49 39 f9 cmp %rdi,%r9 - 435a3e: 0f 87 47 ff ff ff ja 43598b <__memmove_avx512_no_vzeroupper+0x4ab> - 435a44: 62 71 7c 48 11 47 ff vmovups %zmm8,-0x40(%rdi) - 435a4b: 62 71 7c 48 11 4f fe vmovups %zmm9,-0x80(%rdi) - 435a52: 62 71 7c 48 11 57 fd vmovups %zmm10,-0xc0(%rdi) - 435a59: 62 71 7c 48 11 5f fc vmovups %zmm11,-0x100(%rdi) - 435a60: 62 71 7c 48 11 67 fb vmovups %zmm12,-0x140(%rdi) - 435a67: 62 71 7c 48 11 6f fa vmovups %zmm13,-0x180(%rdi) - 435a6e: 62 71 7c 48 11 77 f9 vmovups %zmm14,-0x1c0(%rdi) - 435a75: 62 71 7c 48 11 7f f8 vmovups %zmm15,-0x200(%rdi) - 435a7c: c3 retq - 435a7d: 48 39 f7 cmp %rsi,%rdi - 435a80: 0f 87 c9 00 00 00 ja 435b4f <__memmove_avx512_no_vzeroupper+0x66f> - 435a86: 62 f1 7c 48 10 26 vmovups (%rsi),%zmm4 - 435a8c: 62 f1 7c 48 10 6e 01 vmovups 0x40(%rsi),%zmm5 - 435a93: 49 89 f8 mov %rdi,%r8 - 435a96: 48 83 e7 80 and $0xffffffffffffff80,%rdi - 435a9a: 48 81 c7 80 00 00 00 add $0x80,%rdi - 435aa1: 49 29 f8 sub %rdi,%r8 - 435aa4: 4c 29 c6 sub %r8,%rsi - 435aa7: 4c 01 c2 add %r8,%rdx - 435aaa: 0f 18 96 00 02 00 00 prefetcht1 0x200(%rsi) - 435ab1: 0f 18 96 40 02 00 00 prefetcht1 0x240(%rsi) - 435ab8: 0f 18 96 80 02 00 00 prefetcht1 0x280(%rsi) - 435abf: 0f 18 96 c0 02 00 00 prefetcht1 0x2c0(%rsi) - 435ac6: 0f 18 96 00 03 00 00 prefetcht1 0x300(%rsi) - 435acd: 0f 18 96 40 03 00 00 prefetcht1 0x340(%rsi) - 435ad4: 0f 18 96 80 03 00 00 prefetcht1 0x380(%rsi) - 435adb: 0f 18 96 c0 03 00 00 prefetcht1 0x3c0(%rsi) - 435ae2: 62 f1 fe 48 6f 06 vmovdqu64 (%rsi),%zmm0 - 435ae8: 62 f1 fe 48 6f 4e 01 vmovdqu64 0x40(%rsi),%zmm1 - 435aef: 62 f1 fe 48 6f 56 02 vmovdqu64 0x80(%rsi),%zmm2 - 435af6: 62 f1 fe 48 6f 5e 03 vmovdqu64 0xc0(%rsi),%zmm3 - 435afd: 62 f1 7d 48 e7 07 vmovntdq %zmm0,(%rdi) - 435b03: 62 f1 7d 48 e7 4f 01 vmovntdq %zmm1,0x40(%rdi) - 435b0a: 62 f1 7d 48 e7 57 02 vmovntdq %zmm2,0x80(%rdi) - 435b11: 62 f1 7d 48 e7 5f 03 vmovntdq %zmm3,0xc0(%rdi) - 435b18: 48 81 ea 00 01 00 00 sub $0x100,%rdx - 435b1f: 48 81 c6 00 01 00 00 add $0x100,%rsi - 435b26: 48 81 c7 00 01 00 00 add $0x100,%rdi - 435b2d: 48 81 fa 00 01 00 00 cmp $0x100,%rdx - 435b34: 0f 87 70 ff ff ff ja 435aaa <__memmove_avx512_no_vzeroupper+0x5ca> - 435b3a: 0f ae f8 sfence - 435b3d: 62 f1 7c 48 11 20 vmovups %zmm4,(%rax) - 435b43: 62 f1 7c 48 11 68 01 vmovups %zmm5,0x40(%rax) - 435b4a: e9 a9 f9 ff ff jmpq 4354f8 <__memmove_avx512_no_vzeroupper+0x18> - 435b4f: 62 f1 7c 48 10 61 fe vmovups -0x80(%rcx),%zmm4 - 435b56: 62 f1 7c 48 10 69 ff vmovups -0x40(%rcx),%zmm5 - 435b5d: 4d 89 c8 mov %r9,%r8 - 435b60: 49 83 e1 80 and $0xffffffffffffff80,%r9 - 435b64: 4d 29 c8 sub %r9,%r8 - 435b67: 4c 29 c1 sub %r8,%rcx - 435b6a: 4c 29 c2 sub %r8,%rdx - 435b6d: 4d 01 c8 add %r9,%r8 - 435b70: 0f 18 91 00 fc ff ff prefetcht1 -0x400(%rcx) - 435b77: 0f 18 91 40 fc ff ff prefetcht1 -0x3c0(%rcx) - 435b7e: 0f 18 91 80 fc ff ff prefetcht1 -0x380(%rcx) - 435b85: 0f 18 91 c0 fc ff ff prefetcht1 -0x340(%rcx) - 435b8c: 0f 18 91 00 fd ff ff prefetcht1 -0x300(%rcx) - 435b93: 0f 18 91 40 fd ff ff prefetcht1 -0x2c0(%rcx) - 435b9a: 0f 18 91 80 fd ff ff prefetcht1 -0x280(%rcx) - 435ba1: 0f 18 91 c0 fd ff ff prefetcht1 -0x240(%rcx) - 435ba8: 62 f1 fe 48 6f 41 fc vmovdqu64 -0x100(%rcx),%zmm0 - 435baf: 62 f1 fe 48 6f 49 fd vmovdqu64 -0xc0(%rcx),%zmm1 - 435bb6: 62 f1 fe 48 6f 51 fe vmovdqu64 -0x80(%rcx),%zmm2 - 435bbd: 62 f1 fe 48 6f 59 ff vmovdqu64 -0x40(%rcx),%zmm3 - 435bc4: 62 d1 7d 48 e7 41 fc vmovntdq %zmm0,-0x100(%r9) - 435bcb: 62 d1 7d 48 e7 49 fd vmovntdq %zmm1,-0xc0(%r9) - 435bd2: 62 d1 7d 48 e7 51 fe vmovntdq %zmm2,-0x80(%r9) - 435bd9: 62 d1 7d 48 e7 59 ff vmovntdq %zmm3,-0x40(%r9) - 435be0: 48 81 ea 00 01 00 00 sub $0x100,%rdx - 435be7: 48 81 e9 00 01 00 00 sub $0x100,%rcx - 435bee: 49 81 e9 00 01 00 00 sub $0x100,%r9 - 435bf5: 48 81 fa 00 01 00 00 cmp $0x100,%rdx - 435bfc: 0f 87 6e ff ff ff ja 435b70 <__memmove_avx512_no_vzeroupper+0x690> - 435c02: 0f ae f8 sfence - 435c05: 62 d1 7c 48 11 60 fe vmovups %zmm4,-0x80(%r8) - 435c0c: 62 d1 7c 48 11 68 ff vmovups %zmm5,-0x40(%r8) - 435c13: e9 e0 f8 ff ff jmpq 4354f8 <__memmove_avx512_no_vzeroupper+0x18> - 435c18: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 435c1f: 00 - -0000000000435c20 <__strcasecmp_ssse3>: - 435c20: 48 c7 c0 b8 ff ff ff mov $0xffffffffffffffb8,%rax - 435c27: 64 48 8b 10 mov %fs:(%rax),%rdx - 435c2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -0000000000435c30 <__strcasecmp_l_ssse3>: - 435c30: 48 8b 02 mov (%rdx),%rax - 435c33: f7 80 78 02 00 00 01 testl $0x1,0x278(%rax) - 435c3a: 00 00 00 - 435c3d: 0f 85 bd 86 00 00 jne 43e300 <__strcasecmp_l_nonascii> - 435c43: 89 f1 mov %esi,%ecx - 435c45: 89 f8 mov %edi,%eax - 435c47: 48 83 e1 3f and $0x3f,%rcx - 435c4b: 48 83 e0 3f and $0x3f,%rax - 435c4f: 66 0f 6f 2d 59 d4 06 movdqa 0x6d459(%rip),%xmm5 # 4a30b0 <__func__.10972+0xf0> - 435c56: 00 - 435c57: 66 0f 6f 35 61 d4 06 movdqa 0x6d461(%rip),%xmm6 # 4a30c0 <__func__.10972+0x100> - 435c5e: 00 - 435c5f: 66 0f 6f 3d 69 d4 06 movdqa 0x6d469(%rip),%xmm7 # 4a30d0 - 435c66: 00 - 435c67: 83 f9 30 cmp $0x30,%ecx - 435c6a: 0f 87 90 00 00 00 ja 435d00 <__strcasecmp_l_ssse3+0xd0> - 435c70: 83 f8 30 cmp $0x30,%eax - 435c73: 0f 87 87 00 00 00 ja 435d00 <__strcasecmp_l_ssse3+0xd0> - 435c79: 66 0f 12 0f movlpd (%rdi),%xmm1 - 435c7d: 66 0f 12 16 movlpd (%rsi),%xmm2 - 435c81: 66 0f 16 4f 08 movhpd 0x8(%rdi),%xmm1 - 435c86: 66 0f 16 56 08 movhpd 0x8(%rsi),%xmm2 - 435c8b: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 435c90: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 435c95: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 435c9a: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 435c9f: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 435ca4: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 435ca9: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 435cae: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 435cb3: 66 45 0f db c1 pand %xmm9,%xmm8 - 435cb8: 66 45 0f db d3 pand %xmm11,%xmm10 - 435cbd: 66 44 0f db c7 pand %xmm7,%xmm8 - 435cc2: 66 44 0f db d7 pand %xmm7,%xmm10 - 435cc7: 66 41 0f eb c8 por %xmm8,%xmm1 - 435ccc: 66 41 0f eb d2 por %xmm10,%xmm2 - 435cd1: 66 0f ef c0 pxor %xmm0,%xmm0 - 435cd5: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 435cd9: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 435cdd: 66 0f f8 c8 psubb %xmm0,%xmm1 - 435ce1: 66 0f d7 d1 pmovmskb %xmm1,%edx - 435ce5: 81 ea ff ff 00 00 sub $0xffff,%edx - 435ceb: 0f 85 3f 20 00 00 jne 437d30 <__strcasecmp_l_ssse3+0x2100> - 435cf1: 48 83 c6 10 add $0x10,%rsi - 435cf5: 48 83 c7 10 add $0x10,%rdi - 435cf9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 435d00: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 435d04: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 435d08: ba ff ff 00 00 mov $0xffff,%edx - 435d0d: 45 31 c0 xor %r8d,%r8d - 435d10: 83 e1 0f and $0xf,%ecx - 435d13: 83 e0 0f and $0xf,%eax - 435d16: 39 c1 cmp %eax,%ecx - 435d18: 74 26 je 435d40 <__strcasecmp_l_ssse3+0x110> - 435d1a: 77 07 ja 435d23 <__strcasecmp_l_ssse3+0xf3> - 435d1c: 41 89 d0 mov %edx,%r8d - 435d1f: 91 xchg %eax,%ecx - 435d20: 48 87 f7 xchg %rsi,%rdi - 435d23: 4c 8d 48 0f lea 0xf(%rax),%r9 - 435d27: 49 29 c9 sub %rcx,%r9 - 435d2a: 4c 8d 15 3f dd 06 00 lea 0x6dd3f(%rip),%r10 # 4a3a70 - 435d31: 4f 63 0c 8a movslq (%r10,%r9,4),%r9 - 435d35: 4f 8d 14 0a lea (%r10,%r9,1),%r10 - 435d39: 41 ff e2 jmpq *%r10 - 435d3c: 0f 1f 40 00 nopl 0x0(%rax) - 435d40: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 435d44: 66 0f ef c0 pxor %xmm0,%xmm0 - 435d48: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 435d4c: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 435d50: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 435d55: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 435d5a: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 435d5f: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 435d64: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 435d69: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 435d6e: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 435d73: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 435d78: 66 45 0f db c1 pand %xmm9,%xmm8 - 435d7d: 66 45 0f db d3 pand %xmm11,%xmm10 - 435d82: 66 44 0f db c7 pand %xmm7,%xmm8 - 435d87: 66 44 0f db d7 pand %xmm7,%xmm10 - 435d8c: 66 41 0f eb c8 por %xmm8,%xmm1 - 435d91: 66 41 0f eb d2 por %xmm10,%xmm2 - 435d96: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 435d9a: 66 0f f8 c8 psubb %xmm0,%xmm1 - 435d9e: 66 44 0f d7 c9 pmovmskb %xmm1,%r9d - 435da3: d3 ea shr %cl,%edx - 435da5: 41 d3 e9 shr %cl,%r9d - 435da8: 44 29 ca sub %r9d,%edx - 435dab: 0f 85 64 1f 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> - 435db1: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 435db8: 49 c7 c1 10 00 00 00 mov $0x10,%r9 - 435dbf: 66 0f ef c0 pxor %xmm0,%xmm0 - 435dc3: 0f 1f 00 nopl (%rax) - 435dc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 435dcd: 00 00 00 - 435dd0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 435dd5: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 435dda: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 435ddf: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 435de4: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 435de9: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 435dee: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 435df3: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 435df8: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 435dfd: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 435e02: 66 45 0f db c1 pand %xmm9,%xmm8 - 435e07: 66 45 0f db d3 pand %xmm11,%xmm10 - 435e0c: 66 44 0f db c7 pand %xmm7,%xmm8 - 435e11: 66 44 0f db d7 pand %xmm7,%xmm10 - 435e16: 66 41 0f eb c8 por %xmm8,%xmm1 - 435e1b: 66 41 0f eb d2 por %xmm10,%xmm2 - 435e20: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 435e24: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 435e28: 66 0f f8 c8 psubb %xmm0,%xmm1 - 435e2c: 66 0f d7 d1 pmovmskb %xmm1,%edx - 435e30: 81 ea ff ff 00 00 sub $0xffff,%edx - 435e36: 0f 85 d4 1e 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 435e3c: 48 83 c1 10 add $0x10,%rcx - 435e40: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 435e45: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 435e4a: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 435e4f: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 435e54: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 435e59: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 435e5e: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 435e63: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 435e68: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 435e6d: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 435e72: 66 45 0f db c1 pand %xmm9,%xmm8 - 435e77: 66 45 0f db d3 pand %xmm11,%xmm10 - 435e7c: 66 44 0f db c7 pand %xmm7,%xmm8 - 435e81: 66 44 0f db d7 pand %xmm7,%xmm10 - 435e86: 66 41 0f eb c8 por %xmm8,%xmm1 - 435e8b: 66 41 0f eb d2 por %xmm10,%xmm2 - 435e90: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 435e94: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 435e98: 66 0f f8 c8 psubb %xmm0,%xmm1 - 435e9c: 66 0f d7 d1 pmovmskb %xmm1,%edx - 435ea0: 81 ea ff ff 00 00 sub $0xffff,%edx - 435ea6: 0f 85 64 1e 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 435eac: 48 83 c1 10 add $0x10,%rcx - 435eb0: e9 1b ff ff ff jmpq 435dd0 <__strcasecmp_l_ssse3+0x1a0> - 435eb5: 90 nop - 435eb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 435ebd: 00 00 00 - 435ec0: 66 0f ef c0 pxor %xmm0,%xmm0 - 435ec4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 435ec8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 435ecc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 435ed0: 66 0f 73 fa 0f pslldq $0xf,%xmm2 - 435ed5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 435eda: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 435edf: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 435ee4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 435ee9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 435eee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 435ef3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 435ef8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 435efd: 66 45 0f db c1 pand %xmm9,%xmm8 - 435f02: 66 45 0f db d3 pand %xmm11,%xmm10 - 435f07: 66 44 0f db c7 pand %xmm7,%xmm8 - 435f0c: 66 44 0f db d7 pand %xmm7,%xmm10 - 435f11: 66 41 0f eb c8 por %xmm8,%xmm1 - 435f16: 66 41 0f eb d2 por %xmm10,%xmm2 - 435f1b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 435f1f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 435f23: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 435f28: d3 ea shr %cl,%edx - 435f2a: 41 d3 e9 shr %cl,%r9d - 435f2d: 44 29 ca sub %r9d,%edx - 435f30: 0f 85 df 1d 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> - 435f36: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 435f3a: 66 0f ef c0 pxor %xmm0,%xmm0 - 435f3e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 435f45: 41 b9 01 00 00 00 mov $0x1,%r9d - 435f4b: 4c 8d 57 01 lea 0x1(%rdi),%r10 - 435f4f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 435f56: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 435f5d: 0f 1f 00 nopl (%rax) - 435f60: 49 83 c2 10 add $0x10,%r10 - 435f64: 0f 8f 16 01 00 00 jg 436080 <__strcasecmp_l_ssse3+0x450> - 435f6a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 435f6f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 435f74: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 435f78: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 - 435f7e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 435f83: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 435f88: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 435f8d: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 435f92: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 435f97: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 435f9c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 435fa1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 435fa6: 66 45 0f db c1 pand %xmm9,%xmm8 - 435fab: 66 45 0f db d3 pand %xmm11,%xmm10 - 435fb0: 66 44 0f db c7 pand %xmm7,%xmm8 - 435fb5: 66 44 0f db d7 pand %xmm7,%xmm10 - 435fba: 66 41 0f eb c8 por %xmm8,%xmm1 - 435fbf: 66 41 0f eb d2 por %xmm10,%xmm2 - 435fc4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 435fc8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 435fcc: 66 0f f8 c8 psubb %xmm0,%xmm1 - 435fd0: 66 0f d7 d1 pmovmskb %xmm1,%edx - 435fd4: 81 ea ff ff 00 00 sub $0xffff,%edx - 435fda: 0f 85 30 1d 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 435fe0: 48 83 c1 10 add $0x10,%rcx - 435fe4: 66 0f 6f dc movdqa %xmm4,%xmm3 - 435fe8: 49 83 c2 10 add $0x10,%r10 - 435fec: 0f 8f 8e 00 00 00 jg 436080 <__strcasecmp_l_ssse3+0x450> - 435ff2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 435ff7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 435ffc: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 436000: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 - 436006: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 43600b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436010: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 436015: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 43601a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 43601f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 436024: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 436029: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 43602e: 66 45 0f db c1 pand %xmm9,%xmm8 - 436033: 66 45 0f db d3 pand %xmm11,%xmm10 - 436038: 66 44 0f db c7 pand %xmm7,%xmm8 - 43603d: 66 44 0f db d7 pand %xmm7,%xmm10 - 436042: 66 41 0f eb c8 por %xmm8,%xmm1 - 436047: 66 41 0f eb d2 por %xmm10,%xmm2 - 43604c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 436050: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 436054: 66 0f f8 c8 psubb %xmm0,%xmm1 - 436058: 66 0f d7 d1 pmovmskb %xmm1,%edx - 43605c: 81 ea ff ff 00 00 sub $0xffff,%edx - 436062: 0f 85 a8 1c 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 436068: 48 83 c1 10 add $0x10,%rcx - 43606c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 436070: e9 eb fe ff ff jmpq 435f60 <__strcasecmp_l_ssse3+0x330> - 436075: 90 nop - 436076: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43607d: 00 00 00 - 436080: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 436084: 66 0f d7 d0 pmovmskb %xmm0,%edx - 436088: f7 c2 fe ff 00 00 test $0xfffe,%edx - 43608e: 75 10 jne 4360a0 <__strcasecmp_l_ssse3+0x470> - 436090: 66 0f ef c0 pxor %xmm0,%xmm0 - 436094: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43609b: e9 ca fe ff ff jmpq 435f6a <__strcasecmp_l_ssse3+0x33a> - 4360a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4360a5: 66 0f 73 d8 01 psrldq $0x1,%xmm0 - 4360aa: 66 0f 73 db 01 psrldq $0x1,%xmm3 - 4360af: e9 fc 1b 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> - 4360b4: 66 90 xchg %ax,%ax - 4360b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4360bd: 00 00 00 - 4360c0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4360c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4360c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4360cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4360d0: 66 0f 73 fa 0e pslldq $0xe,%xmm2 - 4360d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4360da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4360df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4360e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4360e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4360ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4360f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4360f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4360fd: 66 45 0f db c1 pand %xmm9,%xmm8 - 436102: 66 45 0f db d3 pand %xmm11,%xmm10 - 436107: 66 44 0f db c7 pand %xmm7,%xmm8 - 43610c: 66 44 0f db d7 pand %xmm7,%xmm10 - 436111: 66 41 0f eb c8 por %xmm8,%xmm1 - 436116: 66 41 0f eb d2 por %xmm10,%xmm2 - 43611b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 43611f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 436123: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 436128: d3 ea shr %cl,%edx - 43612a: 41 d3 e9 shr %cl,%r9d - 43612d: 44 29 ca sub %r9d,%edx - 436130: 0f 85 df 1b 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> - 436136: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 43613a: 66 0f ef c0 pxor %xmm0,%xmm0 - 43613e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 436145: 41 b9 02 00 00 00 mov $0x2,%r9d - 43614b: 4c 8d 57 02 lea 0x2(%rdi),%r10 - 43614f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 436156: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43615d: 0f 1f 00 nopl (%rax) - 436160: 49 83 c2 10 add $0x10,%r10 - 436164: 0f 8f 16 01 00 00 jg 436280 <__strcasecmp_l_ssse3+0x650> - 43616a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 43616f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 436174: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 436178: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 - 43617e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 436183: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436188: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 43618d: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 436192: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 436197: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 43619c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4361a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4361a6: 66 45 0f db c1 pand %xmm9,%xmm8 - 4361ab: 66 45 0f db d3 pand %xmm11,%xmm10 - 4361b0: 66 44 0f db c7 pand %xmm7,%xmm8 - 4361b5: 66 44 0f db d7 pand %xmm7,%xmm10 - 4361ba: 66 41 0f eb c8 por %xmm8,%xmm1 - 4361bf: 66 41 0f eb d2 por %xmm10,%xmm2 - 4361c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4361c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4361cc: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4361d0: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4361d4: 81 ea ff ff 00 00 sub $0xffff,%edx - 4361da: 0f 85 30 1b 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 4361e0: 48 83 c1 10 add $0x10,%rcx - 4361e4: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4361e8: 49 83 c2 10 add $0x10,%r10 - 4361ec: 0f 8f 8e 00 00 00 jg 436280 <__strcasecmp_l_ssse3+0x650> - 4361f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4361f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4361fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 436200: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 - 436206: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 43620b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436210: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 436215: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 43621a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 43621f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 436224: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 436229: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 43622e: 66 45 0f db c1 pand %xmm9,%xmm8 - 436233: 66 45 0f db d3 pand %xmm11,%xmm10 - 436238: 66 44 0f db c7 pand %xmm7,%xmm8 - 43623d: 66 44 0f db d7 pand %xmm7,%xmm10 - 436242: 66 41 0f eb c8 por %xmm8,%xmm1 - 436247: 66 41 0f eb d2 por %xmm10,%xmm2 - 43624c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 436250: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 436254: 66 0f f8 c8 psubb %xmm0,%xmm1 - 436258: 66 0f d7 d1 pmovmskb %xmm1,%edx - 43625c: 81 ea ff ff 00 00 sub $0xffff,%edx - 436262: 0f 85 a8 1a 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 436268: 48 83 c1 10 add $0x10,%rcx - 43626c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 436270: e9 eb fe ff ff jmpq 436160 <__strcasecmp_l_ssse3+0x530> - 436275: 90 nop - 436276: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43627d: 00 00 00 - 436280: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 436284: 66 0f d7 d0 pmovmskb %xmm0,%edx - 436288: f7 c2 fc ff 00 00 test $0xfffc,%edx - 43628e: 75 10 jne 4362a0 <__strcasecmp_l_ssse3+0x670> - 436290: 66 0f ef c0 pxor %xmm0,%xmm0 - 436294: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43629b: e9 ca fe ff ff jmpq 43616a <__strcasecmp_l_ssse3+0x53a> - 4362a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4362a5: 66 0f 73 d8 02 psrldq $0x2,%xmm0 - 4362aa: 66 0f 73 db 02 psrldq $0x2,%xmm3 - 4362af: e9 fc 19 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> - 4362b4: 66 90 xchg %ax,%ax - 4362b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4362bd: 00 00 00 - 4362c0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4362c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4362c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4362cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4362d0: 66 0f 73 fa 0d pslldq $0xd,%xmm2 - 4362d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4362da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4362df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4362e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4362e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4362ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4362f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4362f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4362fd: 66 45 0f db c1 pand %xmm9,%xmm8 - 436302: 66 45 0f db d3 pand %xmm11,%xmm10 - 436307: 66 44 0f db c7 pand %xmm7,%xmm8 - 43630c: 66 44 0f db d7 pand %xmm7,%xmm10 - 436311: 66 41 0f eb c8 por %xmm8,%xmm1 - 436316: 66 41 0f eb d2 por %xmm10,%xmm2 - 43631b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 43631f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 436323: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 436328: d3 ea shr %cl,%edx - 43632a: 41 d3 e9 shr %cl,%r9d - 43632d: 44 29 ca sub %r9d,%edx - 436330: 0f 85 df 19 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> - 436336: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 43633a: 66 0f ef c0 pxor %xmm0,%xmm0 - 43633e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 436345: 41 b9 03 00 00 00 mov $0x3,%r9d - 43634b: 4c 8d 57 03 lea 0x3(%rdi),%r10 - 43634f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 436356: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43635d: 0f 1f 00 nopl (%rax) - 436360: 49 83 c2 10 add $0x10,%r10 - 436364: 0f 8f 16 01 00 00 jg 436480 <__strcasecmp_l_ssse3+0x850> - 43636a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 43636f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 436374: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 436378: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 - 43637e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 436383: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436388: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 43638d: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 436392: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 436397: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 43639c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4363a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4363a6: 66 45 0f db c1 pand %xmm9,%xmm8 - 4363ab: 66 45 0f db d3 pand %xmm11,%xmm10 - 4363b0: 66 44 0f db c7 pand %xmm7,%xmm8 - 4363b5: 66 44 0f db d7 pand %xmm7,%xmm10 - 4363ba: 66 41 0f eb c8 por %xmm8,%xmm1 - 4363bf: 66 41 0f eb d2 por %xmm10,%xmm2 - 4363c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4363c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4363cc: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4363d0: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4363d4: 81 ea ff ff 00 00 sub $0xffff,%edx - 4363da: 0f 85 30 19 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 4363e0: 48 83 c1 10 add $0x10,%rcx - 4363e4: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4363e8: 49 83 c2 10 add $0x10,%r10 - 4363ec: 0f 8f 8e 00 00 00 jg 436480 <__strcasecmp_l_ssse3+0x850> - 4363f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4363f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4363fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 436400: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 - 436406: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 43640b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436410: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 436415: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 43641a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 43641f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 436424: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 436429: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 43642e: 66 45 0f db c1 pand %xmm9,%xmm8 - 436433: 66 45 0f db d3 pand %xmm11,%xmm10 - 436438: 66 44 0f db c7 pand %xmm7,%xmm8 - 43643d: 66 44 0f db d7 pand %xmm7,%xmm10 - 436442: 66 41 0f eb c8 por %xmm8,%xmm1 - 436447: 66 41 0f eb d2 por %xmm10,%xmm2 - 43644c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 436450: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 436454: 66 0f f8 c8 psubb %xmm0,%xmm1 - 436458: 66 0f d7 d1 pmovmskb %xmm1,%edx - 43645c: 81 ea ff ff 00 00 sub $0xffff,%edx - 436462: 0f 85 a8 18 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 436468: 48 83 c1 10 add $0x10,%rcx - 43646c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 436470: e9 eb fe ff ff jmpq 436360 <__strcasecmp_l_ssse3+0x730> - 436475: 90 nop - 436476: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43647d: 00 00 00 - 436480: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 436484: 66 0f d7 d0 pmovmskb %xmm0,%edx - 436488: f7 c2 f8 ff 00 00 test $0xfff8,%edx - 43648e: 75 10 jne 4364a0 <__strcasecmp_l_ssse3+0x870> - 436490: 66 0f ef c0 pxor %xmm0,%xmm0 - 436494: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43649b: e9 ca fe ff ff jmpq 43636a <__strcasecmp_l_ssse3+0x73a> - 4364a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4364a5: 66 0f 73 d8 03 psrldq $0x3,%xmm0 - 4364aa: 66 0f 73 db 03 psrldq $0x3,%xmm3 - 4364af: e9 fc 17 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> - 4364b4: 66 90 xchg %ax,%ax - 4364b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4364bd: 00 00 00 - 4364c0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4364c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4364c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4364cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4364d0: 66 0f 73 fa 0c pslldq $0xc,%xmm2 - 4364d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4364da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4364df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4364e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4364e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4364ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4364f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4364f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4364fd: 66 45 0f db c1 pand %xmm9,%xmm8 - 436502: 66 45 0f db d3 pand %xmm11,%xmm10 - 436507: 66 44 0f db c7 pand %xmm7,%xmm8 - 43650c: 66 44 0f db d7 pand %xmm7,%xmm10 - 436511: 66 41 0f eb c8 por %xmm8,%xmm1 - 436516: 66 41 0f eb d2 por %xmm10,%xmm2 - 43651b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 43651f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 436523: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 436528: d3 ea shr %cl,%edx - 43652a: 41 d3 e9 shr %cl,%r9d - 43652d: 44 29 ca sub %r9d,%edx - 436530: 0f 85 df 17 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> - 436536: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 43653a: 66 0f ef c0 pxor %xmm0,%xmm0 - 43653e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 436545: 41 b9 04 00 00 00 mov $0x4,%r9d - 43654b: 4c 8d 57 04 lea 0x4(%rdi),%r10 - 43654f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 436556: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43655d: 0f 1f 00 nopl (%rax) - 436560: 49 83 c2 10 add $0x10,%r10 - 436564: 0f 8f 16 01 00 00 jg 436680 <__strcasecmp_l_ssse3+0xa50> - 43656a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 43656f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 436574: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 436578: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 - 43657e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 436583: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436588: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 43658d: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 436592: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 436597: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 43659c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4365a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4365a6: 66 45 0f db c1 pand %xmm9,%xmm8 - 4365ab: 66 45 0f db d3 pand %xmm11,%xmm10 - 4365b0: 66 44 0f db c7 pand %xmm7,%xmm8 - 4365b5: 66 44 0f db d7 pand %xmm7,%xmm10 - 4365ba: 66 41 0f eb c8 por %xmm8,%xmm1 - 4365bf: 66 41 0f eb d2 por %xmm10,%xmm2 - 4365c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4365c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4365cc: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4365d0: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4365d4: 81 ea ff ff 00 00 sub $0xffff,%edx - 4365da: 0f 85 30 17 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 4365e0: 48 83 c1 10 add $0x10,%rcx - 4365e4: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4365e8: 49 83 c2 10 add $0x10,%r10 - 4365ec: 0f 8f 8e 00 00 00 jg 436680 <__strcasecmp_l_ssse3+0xa50> - 4365f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4365f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4365fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 436600: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 - 436606: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 43660b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436610: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 436615: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 43661a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 43661f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 436624: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 436629: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 43662e: 66 45 0f db c1 pand %xmm9,%xmm8 - 436633: 66 45 0f db d3 pand %xmm11,%xmm10 - 436638: 66 44 0f db c7 pand %xmm7,%xmm8 - 43663d: 66 44 0f db d7 pand %xmm7,%xmm10 - 436642: 66 41 0f eb c8 por %xmm8,%xmm1 - 436647: 66 41 0f eb d2 por %xmm10,%xmm2 - 43664c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 436650: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 436654: 66 0f f8 c8 psubb %xmm0,%xmm1 - 436658: 66 0f d7 d1 pmovmskb %xmm1,%edx - 43665c: 81 ea ff ff 00 00 sub $0xffff,%edx - 436662: 0f 85 a8 16 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 436668: 48 83 c1 10 add $0x10,%rcx - 43666c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 436670: e9 eb fe ff ff jmpq 436560 <__strcasecmp_l_ssse3+0x930> - 436675: 90 nop - 436676: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43667d: 00 00 00 - 436680: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 436684: 66 0f d7 d0 pmovmskb %xmm0,%edx - 436688: f7 c2 f0 ff 00 00 test $0xfff0,%edx - 43668e: 75 10 jne 4366a0 <__strcasecmp_l_ssse3+0xa70> - 436690: 66 0f ef c0 pxor %xmm0,%xmm0 - 436694: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43669b: e9 ca fe ff ff jmpq 43656a <__strcasecmp_l_ssse3+0x93a> - 4366a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4366a5: 66 0f 73 d8 04 psrldq $0x4,%xmm0 - 4366aa: 66 0f 73 db 04 psrldq $0x4,%xmm3 - 4366af: e9 fc 15 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> - 4366b4: 66 90 xchg %ax,%ax - 4366b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4366bd: 00 00 00 - 4366c0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4366c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4366c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4366cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4366d0: 66 0f 73 fa 0b pslldq $0xb,%xmm2 - 4366d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4366da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4366df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4366e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4366e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4366ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4366f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4366f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4366fd: 66 45 0f db c1 pand %xmm9,%xmm8 - 436702: 66 45 0f db d3 pand %xmm11,%xmm10 - 436707: 66 44 0f db c7 pand %xmm7,%xmm8 - 43670c: 66 44 0f db d7 pand %xmm7,%xmm10 - 436711: 66 41 0f eb c8 por %xmm8,%xmm1 - 436716: 66 41 0f eb d2 por %xmm10,%xmm2 - 43671b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 43671f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 436723: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 436728: d3 ea shr %cl,%edx - 43672a: 41 d3 e9 shr %cl,%r9d - 43672d: 44 29 ca sub %r9d,%edx - 436730: 0f 85 df 15 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> - 436736: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 43673a: 66 0f ef c0 pxor %xmm0,%xmm0 - 43673e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 436745: 41 b9 05 00 00 00 mov $0x5,%r9d - 43674b: 4c 8d 57 05 lea 0x5(%rdi),%r10 - 43674f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 436756: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43675d: 0f 1f 00 nopl (%rax) - 436760: 49 83 c2 10 add $0x10,%r10 - 436764: 0f 8f 16 01 00 00 jg 436880 <__strcasecmp_l_ssse3+0xc50> - 43676a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 43676f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 436774: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 436778: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 - 43677e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 436783: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436788: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 43678d: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 436792: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 436797: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 43679c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4367a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4367a6: 66 45 0f db c1 pand %xmm9,%xmm8 - 4367ab: 66 45 0f db d3 pand %xmm11,%xmm10 - 4367b0: 66 44 0f db c7 pand %xmm7,%xmm8 - 4367b5: 66 44 0f db d7 pand %xmm7,%xmm10 - 4367ba: 66 41 0f eb c8 por %xmm8,%xmm1 - 4367bf: 66 41 0f eb d2 por %xmm10,%xmm2 - 4367c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4367c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4367cc: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4367d0: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4367d4: 81 ea ff ff 00 00 sub $0xffff,%edx - 4367da: 0f 85 30 15 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 4367e0: 48 83 c1 10 add $0x10,%rcx - 4367e4: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4367e8: 49 83 c2 10 add $0x10,%r10 - 4367ec: 0f 8f 8e 00 00 00 jg 436880 <__strcasecmp_l_ssse3+0xc50> - 4367f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4367f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4367fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 436800: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 - 436806: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 43680b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436810: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 436815: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 43681a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 43681f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 436824: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 436829: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 43682e: 66 45 0f db c1 pand %xmm9,%xmm8 - 436833: 66 45 0f db d3 pand %xmm11,%xmm10 - 436838: 66 44 0f db c7 pand %xmm7,%xmm8 - 43683d: 66 44 0f db d7 pand %xmm7,%xmm10 - 436842: 66 41 0f eb c8 por %xmm8,%xmm1 - 436847: 66 41 0f eb d2 por %xmm10,%xmm2 - 43684c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 436850: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 436854: 66 0f f8 c8 psubb %xmm0,%xmm1 - 436858: 66 0f d7 d1 pmovmskb %xmm1,%edx - 43685c: 81 ea ff ff 00 00 sub $0xffff,%edx - 436862: 0f 85 a8 14 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 436868: 48 83 c1 10 add $0x10,%rcx - 43686c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 436870: e9 eb fe ff ff jmpq 436760 <__strcasecmp_l_ssse3+0xb30> - 436875: 90 nop - 436876: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43687d: 00 00 00 - 436880: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 436884: 66 0f d7 d0 pmovmskb %xmm0,%edx - 436888: f7 c2 e0 ff 00 00 test $0xffe0,%edx - 43688e: 75 10 jne 4368a0 <__strcasecmp_l_ssse3+0xc70> - 436890: 66 0f ef c0 pxor %xmm0,%xmm0 - 436894: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43689b: e9 ca fe ff ff jmpq 43676a <__strcasecmp_l_ssse3+0xb3a> - 4368a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4368a5: 66 0f 73 d8 05 psrldq $0x5,%xmm0 - 4368aa: 66 0f 73 db 05 psrldq $0x5,%xmm3 - 4368af: e9 fc 13 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> - 4368b4: 66 90 xchg %ax,%ax - 4368b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4368bd: 00 00 00 - 4368c0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4368c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4368c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4368cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4368d0: 66 0f 73 fa 0a pslldq $0xa,%xmm2 - 4368d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4368da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4368df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4368e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4368e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4368ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4368f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4368f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4368fd: 66 45 0f db c1 pand %xmm9,%xmm8 - 436902: 66 45 0f db d3 pand %xmm11,%xmm10 - 436907: 66 44 0f db c7 pand %xmm7,%xmm8 - 43690c: 66 44 0f db d7 pand %xmm7,%xmm10 - 436911: 66 41 0f eb c8 por %xmm8,%xmm1 - 436916: 66 41 0f eb d2 por %xmm10,%xmm2 - 43691b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 43691f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 436923: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 436928: d3 ea shr %cl,%edx - 43692a: 41 d3 e9 shr %cl,%r9d - 43692d: 44 29 ca sub %r9d,%edx - 436930: 0f 85 df 13 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> - 436936: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 43693a: 66 0f ef c0 pxor %xmm0,%xmm0 - 43693e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 436945: 41 b9 06 00 00 00 mov $0x6,%r9d - 43694b: 4c 8d 57 06 lea 0x6(%rdi),%r10 - 43694f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 436956: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43695d: 0f 1f 00 nopl (%rax) - 436960: 49 83 c2 10 add $0x10,%r10 - 436964: 0f 8f 16 01 00 00 jg 436a80 <__strcasecmp_l_ssse3+0xe50> - 43696a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 43696f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 436974: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 436978: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 - 43697e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 436983: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436988: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 43698d: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 436992: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 436997: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 43699c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4369a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4369a6: 66 45 0f db c1 pand %xmm9,%xmm8 - 4369ab: 66 45 0f db d3 pand %xmm11,%xmm10 - 4369b0: 66 44 0f db c7 pand %xmm7,%xmm8 - 4369b5: 66 44 0f db d7 pand %xmm7,%xmm10 - 4369ba: 66 41 0f eb c8 por %xmm8,%xmm1 - 4369bf: 66 41 0f eb d2 por %xmm10,%xmm2 - 4369c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4369c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4369cc: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4369d0: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4369d4: 81 ea ff ff 00 00 sub $0xffff,%edx - 4369da: 0f 85 30 13 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 4369e0: 48 83 c1 10 add $0x10,%rcx - 4369e4: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4369e8: 49 83 c2 10 add $0x10,%r10 - 4369ec: 0f 8f 8e 00 00 00 jg 436a80 <__strcasecmp_l_ssse3+0xe50> - 4369f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4369f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4369fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 436a00: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 - 436a06: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 436a0b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436a10: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 436a15: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 436a1a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 436a1f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 436a24: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 436a29: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 436a2e: 66 45 0f db c1 pand %xmm9,%xmm8 - 436a33: 66 45 0f db d3 pand %xmm11,%xmm10 - 436a38: 66 44 0f db c7 pand %xmm7,%xmm8 - 436a3d: 66 44 0f db d7 pand %xmm7,%xmm10 - 436a42: 66 41 0f eb c8 por %xmm8,%xmm1 - 436a47: 66 41 0f eb d2 por %xmm10,%xmm2 - 436a4c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 436a50: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 436a54: 66 0f f8 c8 psubb %xmm0,%xmm1 - 436a58: 66 0f d7 d1 pmovmskb %xmm1,%edx - 436a5c: 81 ea ff ff 00 00 sub $0xffff,%edx - 436a62: 0f 85 a8 12 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 436a68: 48 83 c1 10 add $0x10,%rcx - 436a6c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 436a70: e9 eb fe ff ff jmpq 436960 <__strcasecmp_l_ssse3+0xd30> - 436a75: 90 nop - 436a76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 436a7d: 00 00 00 - 436a80: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 436a84: 66 0f d7 d0 pmovmskb %xmm0,%edx - 436a88: f7 c2 c0 ff 00 00 test $0xffc0,%edx - 436a8e: 75 10 jne 436aa0 <__strcasecmp_l_ssse3+0xe70> - 436a90: 66 0f ef c0 pxor %xmm0,%xmm0 - 436a94: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 436a9b: e9 ca fe ff ff jmpq 43696a <__strcasecmp_l_ssse3+0xd3a> - 436aa0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 436aa5: 66 0f 73 d8 06 psrldq $0x6,%xmm0 - 436aaa: 66 0f 73 db 06 psrldq $0x6,%xmm3 - 436aaf: e9 fc 11 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> - 436ab4: 66 90 xchg %ax,%ax - 436ab6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 436abd: 00 00 00 - 436ac0: 66 0f ef c0 pxor %xmm0,%xmm0 - 436ac4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 436ac8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 436acc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 436ad0: 66 0f 73 fa 09 pslldq $0x9,%xmm2 - 436ad5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 436ada: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436adf: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 436ae4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 436ae9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 436aee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 436af3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 436af8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 436afd: 66 45 0f db c1 pand %xmm9,%xmm8 - 436b02: 66 45 0f db d3 pand %xmm11,%xmm10 - 436b07: 66 44 0f db c7 pand %xmm7,%xmm8 - 436b0c: 66 44 0f db d7 pand %xmm7,%xmm10 - 436b11: 66 41 0f eb c8 por %xmm8,%xmm1 - 436b16: 66 41 0f eb d2 por %xmm10,%xmm2 - 436b1b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 436b1f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 436b23: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 436b28: d3 ea shr %cl,%edx - 436b2a: 41 d3 e9 shr %cl,%r9d - 436b2d: 44 29 ca sub %r9d,%edx - 436b30: 0f 85 df 11 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> - 436b36: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 436b3a: 66 0f ef c0 pxor %xmm0,%xmm0 - 436b3e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 436b45: 41 b9 07 00 00 00 mov $0x7,%r9d - 436b4b: 4c 8d 57 07 lea 0x7(%rdi),%r10 - 436b4f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 436b56: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 436b5d: 0f 1f 00 nopl (%rax) - 436b60: 49 83 c2 10 add $0x10,%r10 - 436b64: 0f 8f 16 01 00 00 jg 436c80 <__strcasecmp_l_ssse3+0x1050> - 436b6a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 436b6f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 436b74: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 436b78: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 - 436b7e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 436b83: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436b88: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 436b8d: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 436b92: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 436b97: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 436b9c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 436ba1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 436ba6: 66 45 0f db c1 pand %xmm9,%xmm8 - 436bab: 66 45 0f db d3 pand %xmm11,%xmm10 - 436bb0: 66 44 0f db c7 pand %xmm7,%xmm8 - 436bb5: 66 44 0f db d7 pand %xmm7,%xmm10 - 436bba: 66 41 0f eb c8 por %xmm8,%xmm1 - 436bbf: 66 41 0f eb d2 por %xmm10,%xmm2 - 436bc4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 436bc8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 436bcc: 66 0f f8 c8 psubb %xmm0,%xmm1 - 436bd0: 66 0f d7 d1 pmovmskb %xmm1,%edx - 436bd4: 81 ea ff ff 00 00 sub $0xffff,%edx - 436bda: 0f 85 30 11 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 436be0: 48 83 c1 10 add $0x10,%rcx - 436be4: 66 0f 6f dc movdqa %xmm4,%xmm3 - 436be8: 49 83 c2 10 add $0x10,%r10 - 436bec: 0f 8f 8e 00 00 00 jg 436c80 <__strcasecmp_l_ssse3+0x1050> - 436bf2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 436bf7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 436bfc: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 436c00: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 - 436c06: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 436c0b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436c10: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 436c15: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 436c1a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 436c1f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 436c24: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 436c29: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 436c2e: 66 45 0f db c1 pand %xmm9,%xmm8 - 436c33: 66 45 0f db d3 pand %xmm11,%xmm10 - 436c38: 66 44 0f db c7 pand %xmm7,%xmm8 - 436c3d: 66 44 0f db d7 pand %xmm7,%xmm10 - 436c42: 66 41 0f eb c8 por %xmm8,%xmm1 - 436c47: 66 41 0f eb d2 por %xmm10,%xmm2 - 436c4c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 436c50: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 436c54: 66 0f f8 c8 psubb %xmm0,%xmm1 - 436c58: 66 0f d7 d1 pmovmskb %xmm1,%edx - 436c5c: 81 ea ff ff 00 00 sub $0xffff,%edx - 436c62: 0f 85 a8 10 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 436c68: 48 83 c1 10 add $0x10,%rcx - 436c6c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 436c70: e9 eb fe ff ff jmpq 436b60 <__strcasecmp_l_ssse3+0xf30> - 436c75: 90 nop - 436c76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 436c7d: 00 00 00 - 436c80: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 436c84: 66 0f d7 d0 pmovmskb %xmm0,%edx - 436c88: f7 c2 80 ff 00 00 test $0xff80,%edx - 436c8e: 75 10 jne 436ca0 <__strcasecmp_l_ssse3+0x1070> - 436c90: 66 0f ef c0 pxor %xmm0,%xmm0 - 436c94: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 436c9b: e9 ca fe ff ff jmpq 436b6a <__strcasecmp_l_ssse3+0xf3a> - 436ca0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 436ca5: 66 0f 73 d8 07 psrldq $0x7,%xmm0 - 436caa: 66 0f 73 db 07 psrldq $0x7,%xmm3 - 436caf: e9 fc 0f 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> - 436cb4: 66 90 xchg %ax,%ax - 436cb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 436cbd: 00 00 00 - 436cc0: 66 0f ef c0 pxor %xmm0,%xmm0 - 436cc4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 436cc8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 436ccc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 436cd0: 66 0f 73 fa 08 pslldq $0x8,%xmm2 - 436cd5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 436cda: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436cdf: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 436ce4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 436ce9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 436cee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 436cf3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 436cf8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 436cfd: 66 45 0f db c1 pand %xmm9,%xmm8 - 436d02: 66 45 0f db d3 pand %xmm11,%xmm10 - 436d07: 66 44 0f db c7 pand %xmm7,%xmm8 - 436d0c: 66 44 0f db d7 pand %xmm7,%xmm10 - 436d11: 66 41 0f eb c8 por %xmm8,%xmm1 - 436d16: 66 41 0f eb d2 por %xmm10,%xmm2 - 436d1b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 436d1f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 436d23: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 436d28: d3 ea shr %cl,%edx - 436d2a: 41 d3 e9 shr %cl,%r9d - 436d2d: 44 29 ca sub %r9d,%edx - 436d30: 0f 85 df 0f 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> - 436d36: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 436d3a: 66 0f ef c0 pxor %xmm0,%xmm0 - 436d3e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 436d45: 41 b9 08 00 00 00 mov $0x8,%r9d - 436d4b: 4c 8d 57 08 lea 0x8(%rdi),%r10 - 436d4f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 436d56: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 436d5d: 0f 1f 00 nopl (%rax) - 436d60: 49 83 c2 10 add $0x10,%r10 - 436d64: 0f 8f 16 01 00 00 jg 436e80 <__strcasecmp_l_ssse3+0x1250> - 436d6a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 436d6f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 436d74: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 436d78: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 - 436d7e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 436d83: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436d88: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 436d8d: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 436d92: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 436d97: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 436d9c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 436da1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 436da6: 66 45 0f db c1 pand %xmm9,%xmm8 - 436dab: 66 45 0f db d3 pand %xmm11,%xmm10 - 436db0: 66 44 0f db c7 pand %xmm7,%xmm8 - 436db5: 66 44 0f db d7 pand %xmm7,%xmm10 - 436dba: 66 41 0f eb c8 por %xmm8,%xmm1 - 436dbf: 66 41 0f eb d2 por %xmm10,%xmm2 - 436dc4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 436dc8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 436dcc: 66 0f f8 c8 psubb %xmm0,%xmm1 - 436dd0: 66 0f d7 d1 pmovmskb %xmm1,%edx - 436dd4: 81 ea ff ff 00 00 sub $0xffff,%edx - 436dda: 0f 85 30 0f 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 436de0: 48 83 c1 10 add $0x10,%rcx - 436de4: 66 0f 6f dc movdqa %xmm4,%xmm3 - 436de8: 49 83 c2 10 add $0x10,%r10 - 436dec: 0f 8f 8e 00 00 00 jg 436e80 <__strcasecmp_l_ssse3+0x1250> - 436df2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 436df7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 436dfc: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 436e00: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 - 436e06: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 436e0b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436e10: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 436e15: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 436e1a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 436e1f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 436e24: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 436e29: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 436e2e: 66 45 0f db c1 pand %xmm9,%xmm8 - 436e33: 66 45 0f db d3 pand %xmm11,%xmm10 - 436e38: 66 44 0f db c7 pand %xmm7,%xmm8 - 436e3d: 66 44 0f db d7 pand %xmm7,%xmm10 - 436e42: 66 41 0f eb c8 por %xmm8,%xmm1 - 436e47: 66 41 0f eb d2 por %xmm10,%xmm2 - 436e4c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 436e50: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 436e54: 66 0f f8 c8 psubb %xmm0,%xmm1 - 436e58: 66 0f d7 d1 pmovmskb %xmm1,%edx - 436e5c: 81 ea ff ff 00 00 sub $0xffff,%edx - 436e62: 0f 85 a8 0e 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 436e68: 48 83 c1 10 add $0x10,%rcx - 436e6c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 436e70: e9 eb fe ff ff jmpq 436d60 <__strcasecmp_l_ssse3+0x1130> - 436e75: 90 nop - 436e76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 436e7d: 00 00 00 - 436e80: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 436e84: 66 0f d7 d0 pmovmskb %xmm0,%edx - 436e88: f7 c2 00 ff 00 00 test $0xff00,%edx - 436e8e: 75 10 jne 436ea0 <__strcasecmp_l_ssse3+0x1270> - 436e90: 66 0f ef c0 pxor %xmm0,%xmm0 - 436e94: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 436e9b: e9 ca fe ff ff jmpq 436d6a <__strcasecmp_l_ssse3+0x113a> - 436ea0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 436ea5: 66 0f 73 d8 08 psrldq $0x8,%xmm0 - 436eaa: 66 0f 73 db 08 psrldq $0x8,%xmm3 - 436eaf: e9 fc 0d 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> - 436eb4: 66 90 xchg %ax,%ax - 436eb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 436ebd: 00 00 00 - 436ec0: 66 0f ef c0 pxor %xmm0,%xmm0 - 436ec4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 436ec8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 436ecc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 436ed0: 66 0f 73 fa 07 pslldq $0x7,%xmm2 - 436ed5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 436eda: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436edf: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 436ee4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 436ee9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 436eee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 436ef3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 436ef8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 436efd: 66 45 0f db c1 pand %xmm9,%xmm8 - 436f02: 66 45 0f db d3 pand %xmm11,%xmm10 - 436f07: 66 44 0f db c7 pand %xmm7,%xmm8 - 436f0c: 66 44 0f db d7 pand %xmm7,%xmm10 - 436f11: 66 41 0f eb c8 por %xmm8,%xmm1 - 436f16: 66 41 0f eb d2 por %xmm10,%xmm2 - 436f1b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 436f1f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 436f23: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 436f28: d3 ea shr %cl,%edx - 436f2a: 41 d3 e9 shr %cl,%r9d - 436f2d: 44 29 ca sub %r9d,%edx - 436f30: 0f 85 df 0d 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> - 436f36: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 436f3a: 66 0f ef c0 pxor %xmm0,%xmm0 - 436f3e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 436f45: 41 b9 09 00 00 00 mov $0x9,%r9d - 436f4b: 4c 8d 57 09 lea 0x9(%rdi),%r10 - 436f4f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 436f56: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 436f5d: 0f 1f 00 nopl (%rax) - 436f60: 49 83 c2 10 add $0x10,%r10 - 436f64: 0f 8f 16 01 00 00 jg 437080 <__strcasecmp_l_ssse3+0x1450> - 436f6a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 436f6f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 436f74: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 436f78: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 - 436f7e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 436f83: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 436f88: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 436f8d: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 436f92: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 436f97: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 436f9c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 436fa1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 436fa6: 66 45 0f db c1 pand %xmm9,%xmm8 - 436fab: 66 45 0f db d3 pand %xmm11,%xmm10 - 436fb0: 66 44 0f db c7 pand %xmm7,%xmm8 - 436fb5: 66 44 0f db d7 pand %xmm7,%xmm10 - 436fba: 66 41 0f eb c8 por %xmm8,%xmm1 - 436fbf: 66 41 0f eb d2 por %xmm10,%xmm2 - 436fc4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 436fc8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 436fcc: 66 0f f8 c8 psubb %xmm0,%xmm1 - 436fd0: 66 0f d7 d1 pmovmskb %xmm1,%edx - 436fd4: 81 ea ff ff 00 00 sub $0xffff,%edx - 436fda: 0f 85 30 0d 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 436fe0: 48 83 c1 10 add $0x10,%rcx - 436fe4: 66 0f 6f dc movdqa %xmm4,%xmm3 - 436fe8: 49 83 c2 10 add $0x10,%r10 - 436fec: 0f 8f 8e 00 00 00 jg 437080 <__strcasecmp_l_ssse3+0x1450> - 436ff2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 436ff7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 436ffc: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 437000: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 - 437006: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 43700b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 437010: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 437015: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 43701a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 43701f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 437024: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 437029: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 43702e: 66 45 0f db c1 pand %xmm9,%xmm8 - 437033: 66 45 0f db d3 pand %xmm11,%xmm10 - 437038: 66 44 0f db c7 pand %xmm7,%xmm8 - 43703d: 66 44 0f db d7 pand %xmm7,%xmm10 - 437042: 66 41 0f eb c8 por %xmm8,%xmm1 - 437047: 66 41 0f eb d2 por %xmm10,%xmm2 - 43704c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 437050: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 437054: 66 0f f8 c8 psubb %xmm0,%xmm1 - 437058: 66 0f d7 d1 pmovmskb %xmm1,%edx - 43705c: 81 ea ff ff 00 00 sub $0xffff,%edx - 437062: 0f 85 a8 0c 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 437068: 48 83 c1 10 add $0x10,%rcx - 43706c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 437070: e9 eb fe ff ff jmpq 436f60 <__strcasecmp_l_ssse3+0x1330> - 437075: 90 nop - 437076: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43707d: 00 00 00 - 437080: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 437084: 66 0f d7 d0 pmovmskb %xmm0,%edx - 437088: f7 c2 00 fe 00 00 test $0xfe00,%edx - 43708e: 75 10 jne 4370a0 <__strcasecmp_l_ssse3+0x1470> - 437090: 66 0f ef c0 pxor %xmm0,%xmm0 - 437094: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43709b: e9 ca fe ff ff jmpq 436f6a <__strcasecmp_l_ssse3+0x133a> - 4370a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4370a5: 66 0f 73 d8 09 psrldq $0x9,%xmm0 - 4370aa: 66 0f 73 db 09 psrldq $0x9,%xmm3 - 4370af: e9 fc 0b 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> - 4370b4: 66 90 xchg %ax,%ax - 4370b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4370bd: 00 00 00 - 4370c0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4370c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4370c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4370cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4370d0: 66 0f 73 fa 06 pslldq $0x6,%xmm2 - 4370d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4370da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4370df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4370e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4370e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4370ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4370f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4370f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4370fd: 66 45 0f db c1 pand %xmm9,%xmm8 - 437102: 66 45 0f db d3 pand %xmm11,%xmm10 - 437107: 66 44 0f db c7 pand %xmm7,%xmm8 - 43710c: 66 44 0f db d7 pand %xmm7,%xmm10 - 437111: 66 41 0f eb c8 por %xmm8,%xmm1 - 437116: 66 41 0f eb d2 por %xmm10,%xmm2 - 43711b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 43711f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 437123: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 437128: d3 ea shr %cl,%edx - 43712a: 41 d3 e9 shr %cl,%r9d - 43712d: 44 29 ca sub %r9d,%edx - 437130: 0f 85 df 0b 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> - 437136: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 43713a: 66 0f ef c0 pxor %xmm0,%xmm0 - 43713e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 437145: 41 b9 0a 00 00 00 mov $0xa,%r9d - 43714b: 4c 8d 57 0a lea 0xa(%rdi),%r10 - 43714f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 437156: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43715d: 0f 1f 00 nopl (%rax) - 437160: 49 83 c2 10 add $0x10,%r10 - 437164: 0f 8f 16 01 00 00 jg 437280 <__strcasecmp_l_ssse3+0x1650> - 43716a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 43716f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 437174: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 437178: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 - 43717e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 437183: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 437188: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 43718d: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 437192: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 437197: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 43719c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4371a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4371a6: 66 45 0f db c1 pand %xmm9,%xmm8 - 4371ab: 66 45 0f db d3 pand %xmm11,%xmm10 - 4371b0: 66 44 0f db c7 pand %xmm7,%xmm8 - 4371b5: 66 44 0f db d7 pand %xmm7,%xmm10 - 4371ba: 66 41 0f eb c8 por %xmm8,%xmm1 - 4371bf: 66 41 0f eb d2 por %xmm10,%xmm2 - 4371c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4371c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4371cc: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4371d0: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4371d4: 81 ea ff ff 00 00 sub $0xffff,%edx - 4371da: 0f 85 30 0b 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 4371e0: 48 83 c1 10 add $0x10,%rcx - 4371e4: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4371e8: 49 83 c2 10 add $0x10,%r10 - 4371ec: 0f 8f 8e 00 00 00 jg 437280 <__strcasecmp_l_ssse3+0x1650> - 4371f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4371f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4371fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 437200: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 - 437206: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 43720b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 437210: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 437215: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 43721a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 43721f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 437224: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 437229: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 43722e: 66 45 0f db c1 pand %xmm9,%xmm8 - 437233: 66 45 0f db d3 pand %xmm11,%xmm10 - 437238: 66 44 0f db c7 pand %xmm7,%xmm8 - 43723d: 66 44 0f db d7 pand %xmm7,%xmm10 - 437242: 66 41 0f eb c8 por %xmm8,%xmm1 - 437247: 66 41 0f eb d2 por %xmm10,%xmm2 - 43724c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 437250: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 437254: 66 0f f8 c8 psubb %xmm0,%xmm1 - 437258: 66 0f d7 d1 pmovmskb %xmm1,%edx - 43725c: 81 ea ff ff 00 00 sub $0xffff,%edx - 437262: 0f 85 a8 0a 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 437268: 48 83 c1 10 add $0x10,%rcx - 43726c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 437270: e9 eb fe ff ff jmpq 437160 <__strcasecmp_l_ssse3+0x1530> - 437275: 90 nop - 437276: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43727d: 00 00 00 - 437280: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 437284: 66 0f d7 d0 pmovmskb %xmm0,%edx - 437288: f7 c2 00 fc 00 00 test $0xfc00,%edx - 43728e: 75 10 jne 4372a0 <__strcasecmp_l_ssse3+0x1670> - 437290: 66 0f ef c0 pxor %xmm0,%xmm0 - 437294: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43729b: e9 ca fe ff ff jmpq 43716a <__strcasecmp_l_ssse3+0x153a> - 4372a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4372a5: 66 0f 73 d8 0a psrldq $0xa,%xmm0 - 4372aa: 66 0f 73 db 0a psrldq $0xa,%xmm3 - 4372af: e9 fc 09 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> - 4372b4: 66 90 xchg %ax,%ax - 4372b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4372bd: 00 00 00 - 4372c0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4372c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4372c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4372cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4372d0: 66 0f 73 fa 05 pslldq $0x5,%xmm2 - 4372d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4372da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4372df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4372e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4372e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4372ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4372f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4372f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4372fd: 66 45 0f db c1 pand %xmm9,%xmm8 - 437302: 66 45 0f db d3 pand %xmm11,%xmm10 - 437307: 66 44 0f db c7 pand %xmm7,%xmm8 - 43730c: 66 44 0f db d7 pand %xmm7,%xmm10 - 437311: 66 41 0f eb c8 por %xmm8,%xmm1 - 437316: 66 41 0f eb d2 por %xmm10,%xmm2 - 43731b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 43731f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 437323: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 437328: d3 ea shr %cl,%edx - 43732a: 41 d3 e9 shr %cl,%r9d - 43732d: 44 29 ca sub %r9d,%edx - 437330: 0f 85 df 09 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> - 437336: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 43733a: 66 0f ef c0 pxor %xmm0,%xmm0 - 43733e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 437345: 41 b9 0b 00 00 00 mov $0xb,%r9d - 43734b: 4c 8d 57 0b lea 0xb(%rdi),%r10 - 43734f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 437356: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43735d: 0f 1f 00 nopl (%rax) - 437360: 49 83 c2 10 add $0x10,%r10 - 437364: 0f 8f 16 01 00 00 jg 437480 <__strcasecmp_l_ssse3+0x1850> - 43736a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 43736f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 437374: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 437378: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 - 43737e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 437383: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 437388: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 43738d: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 437392: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 437397: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 43739c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4373a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4373a6: 66 45 0f db c1 pand %xmm9,%xmm8 - 4373ab: 66 45 0f db d3 pand %xmm11,%xmm10 - 4373b0: 66 44 0f db c7 pand %xmm7,%xmm8 - 4373b5: 66 44 0f db d7 pand %xmm7,%xmm10 - 4373ba: 66 41 0f eb c8 por %xmm8,%xmm1 - 4373bf: 66 41 0f eb d2 por %xmm10,%xmm2 - 4373c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4373c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4373cc: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4373d0: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4373d4: 81 ea ff ff 00 00 sub $0xffff,%edx - 4373da: 0f 85 30 09 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 4373e0: 48 83 c1 10 add $0x10,%rcx - 4373e4: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4373e8: 49 83 c2 10 add $0x10,%r10 - 4373ec: 0f 8f 8e 00 00 00 jg 437480 <__strcasecmp_l_ssse3+0x1850> - 4373f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4373f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4373fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 437400: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 - 437406: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 43740b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 437410: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 437415: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 43741a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 43741f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 437424: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 437429: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 43742e: 66 45 0f db c1 pand %xmm9,%xmm8 - 437433: 66 45 0f db d3 pand %xmm11,%xmm10 - 437438: 66 44 0f db c7 pand %xmm7,%xmm8 - 43743d: 66 44 0f db d7 pand %xmm7,%xmm10 - 437442: 66 41 0f eb c8 por %xmm8,%xmm1 - 437447: 66 41 0f eb d2 por %xmm10,%xmm2 - 43744c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 437450: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 437454: 66 0f f8 c8 psubb %xmm0,%xmm1 - 437458: 66 0f d7 d1 pmovmskb %xmm1,%edx - 43745c: 81 ea ff ff 00 00 sub $0xffff,%edx - 437462: 0f 85 a8 08 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 437468: 48 83 c1 10 add $0x10,%rcx - 43746c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 437470: e9 eb fe ff ff jmpq 437360 <__strcasecmp_l_ssse3+0x1730> - 437475: 90 nop - 437476: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43747d: 00 00 00 - 437480: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 437484: 66 0f d7 d0 pmovmskb %xmm0,%edx - 437488: f7 c2 00 f8 00 00 test $0xf800,%edx - 43748e: 75 10 jne 4374a0 <__strcasecmp_l_ssse3+0x1870> - 437490: 66 0f ef c0 pxor %xmm0,%xmm0 - 437494: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43749b: e9 ca fe ff ff jmpq 43736a <__strcasecmp_l_ssse3+0x173a> - 4374a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4374a5: 66 0f 73 d8 0b psrldq $0xb,%xmm0 - 4374aa: 66 0f 73 db 0b psrldq $0xb,%xmm3 - 4374af: e9 fc 07 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> - 4374b4: 66 90 xchg %ax,%ax - 4374b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4374bd: 00 00 00 - 4374c0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4374c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4374c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4374cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4374d0: 66 0f 73 fa 04 pslldq $0x4,%xmm2 - 4374d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4374da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4374df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4374e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4374e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4374ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4374f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4374f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4374fd: 66 45 0f db c1 pand %xmm9,%xmm8 - 437502: 66 45 0f db d3 pand %xmm11,%xmm10 - 437507: 66 44 0f db c7 pand %xmm7,%xmm8 - 43750c: 66 44 0f db d7 pand %xmm7,%xmm10 - 437511: 66 41 0f eb c8 por %xmm8,%xmm1 - 437516: 66 41 0f eb d2 por %xmm10,%xmm2 - 43751b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 43751f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 437523: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 437528: d3 ea shr %cl,%edx - 43752a: 41 d3 e9 shr %cl,%r9d - 43752d: 44 29 ca sub %r9d,%edx - 437530: 0f 85 df 07 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> - 437536: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 43753a: 66 0f ef c0 pxor %xmm0,%xmm0 - 43753e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 437545: 41 b9 0c 00 00 00 mov $0xc,%r9d - 43754b: 4c 8d 57 0c lea 0xc(%rdi),%r10 - 43754f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 437556: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43755d: 0f 1f 00 nopl (%rax) - 437560: 49 83 c2 10 add $0x10,%r10 - 437564: 0f 8f 16 01 00 00 jg 437680 <__strcasecmp_l_ssse3+0x1a50> - 43756a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 43756f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 437574: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 437578: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 - 43757e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 437583: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 437588: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 43758d: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 437592: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 437597: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 43759c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4375a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4375a6: 66 45 0f db c1 pand %xmm9,%xmm8 - 4375ab: 66 45 0f db d3 pand %xmm11,%xmm10 - 4375b0: 66 44 0f db c7 pand %xmm7,%xmm8 - 4375b5: 66 44 0f db d7 pand %xmm7,%xmm10 - 4375ba: 66 41 0f eb c8 por %xmm8,%xmm1 - 4375bf: 66 41 0f eb d2 por %xmm10,%xmm2 - 4375c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4375c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4375cc: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4375d0: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4375d4: 81 ea ff ff 00 00 sub $0xffff,%edx - 4375da: 0f 85 30 07 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 4375e0: 48 83 c1 10 add $0x10,%rcx - 4375e4: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4375e8: 49 83 c2 10 add $0x10,%r10 - 4375ec: 0f 8f 8e 00 00 00 jg 437680 <__strcasecmp_l_ssse3+0x1a50> - 4375f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4375f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4375fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 437600: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 - 437606: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 43760b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 437610: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 437615: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 43761a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 43761f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 437624: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 437629: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 43762e: 66 45 0f db c1 pand %xmm9,%xmm8 - 437633: 66 45 0f db d3 pand %xmm11,%xmm10 - 437638: 66 44 0f db c7 pand %xmm7,%xmm8 - 43763d: 66 44 0f db d7 pand %xmm7,%xmm10 - 437642: 66 41 0f eb c8 por %xmm8,%xmm1 - 437647: 66 41 0f eb d2 por %xmm10,%xmm2 - 43764c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 437650: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 437654: 66 0f f8 c8 psubb %xmm0,%xmm1 - 437658: 66 0f d7 d1 pmovmskb %xmm1,%edx - 43765c: 81 ea ff ff 00 00 sub $0xffff,%edx - 437662: 0f 85 a8 06 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 437668: 48 83 c1 10 add $0x10,%rcx - 43766c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 437670: e9 eb fe ff ff jmpq 437560 <__strcasecmp_l_ssse3+0x1930> - 437675: 90 nop - 437676: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43767d: 00 00 00 - 437680: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 437684: 66 0f d7 d0 pmovmskb %xmm0,%edx - 437688: f7 c2 00 f0 00 00 test $0xf000,%edx - 43768e: 75 10 jne 4376a0 <__strcasecmp_l_ssse3+0x1a70> - 437690: 66 0f ef c0 pxor %xmm0,%xmm0 - 437694: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43769b: e9 ca fe ff ff jmpq 43756a <__strcasecmp_l_ssse3+0x193a> - 4376a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4376a5: 66 0f 73 d8 0c psrldq $0xc,%xmm0 - 4376aa: 66 0f 73 db 0c psrldq $0xc,%xmm3 - 4376af: e9 fc 05 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> - 4376b4: 66 90 xchg %ax,%ax - 4376b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4376bd: 00 00 00 - 4376c0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4376c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4376c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4376cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4376d0: 66 0f 73 fa 03 pslldq $0x3,%xmm2 - 4376d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4376da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4376df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4376e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4376e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4376ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4376f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4376f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4376fd: 66 45 0f db c1 pand %xmm9,%xmm8 - 437702: 66 45 0f db d3 pand %xmm11,%xmm10 - 437707: 66 44 0f db c7 pand %xmm7,%xmm8 - 43770c: 66 44 0f db d7 pand %xmm7,%xmm10 - 437711: 66 41 0f eb c8 por %xmm8,%xmm1 - 437716: 66 41 0f eb d2 por %xmm10,%xmm2 - 43771b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 43771f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 437723: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 437728: d3 ea shr %cl,%edx - 43772a: 41 d3 e9 shr %cl,%r9d - 43772d: 44 29 ca sub %r9d,%edx - 437730: 0f 85 df 05 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> - 437736: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 43773a: 66 0f ef c0 pxor %xmm0,%xmm0 - 43773e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 437745: 41 b9 0d 00 00 00 mov $0xd,%r9d - 43774b: 4c 8d 57 0d lea 0xd(%rdi),%r10 - 43774f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 437756: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43775d: 0f 1f 00 nopl (%rax) - 437760: 49 83 c2 10 add $0x10,%r10 - 437764: 0f 8f 16 01 00 00 jg 437880 <__strcasecmp_l_ssse3+0x1c50> - 43776a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 43776f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 437774: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 437778: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 - 43777e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 437783: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 437788: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 43778d: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 437792: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 437797: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 43779c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4377a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4377a6: 66 45 0f db c1 pand %xmm9,%xmm8 - 4377ab: 66 45 0f db d3 pand %xmm11,%xmm10 - 4377b0: 66 44 0f db c7 pand %xmm7,%xmm8 - 4377b5: 66 44 0f db d7 pand %xmm7,%xmm10 - 4377ba: 66 41 0f eb c8 por %xmm8,%xmm1 - 4377bf: 66 41 0f eb d2 por %xmm10,%xmm2 - 4377c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4377c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4377cc: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4377d0: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4377d4: 81 ea ff ff 00 00 sub $0xffff,%edx - 4377da: 0f 85 30 05 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 4377e0: 48 83 c1 10 add $0x10,%rcx - 4377e4: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4377e8: 49 83 c2 10 add $0x10,%r10 - 4377ec: 0f 8f 8e 00 00 00 jg 437880 <__strcasecmp_l_ssse3+0x1c50> - 4377f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4377f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4377fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 437800: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 - 437806: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 43780b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 437810: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 437815: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 43781a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 43781f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 437824: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 437829: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 43782e: 66 45 0f db c1 pand %xmm9,%xmm8 - 437833: 66 45 0f db d3 pand %xmm11,%xmm10 - 437838: 66 44 0f db c7 pand %xmm7,%xmm8 - 43783d: 66 44 0f db d7 pand %xmm7,%xmm10 - 437842: 66 41 0f eb c8 por %xmm8,%xmm1 - 437847: 66 41 0f eb d2 por %xmm10,%xmm2 - 43784c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 437850: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 437854: 66 0f f8 c8 psubb %xmm0,%xmm1 - 437858: 66 0f d7 d1 pmovmskb %xmm1,%edx - 43785c: 81 ea ff ff 00 00 sub $0xffff,%edx - 437862: 0f 85 a8 04 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 437868: 48 83 c1 10 add $0x10,%rcx - 43786c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 437870: e9 eb fe ff ff jmpq 437760 <__strcasecmp_l_ssse3+0x1b30> - 437875: 90 nop - 437876: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43787d: 00 00 00 - 437880: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 437884: 66 0f d7 d0 pmovmskb %xmm0,%edx - 437888: f7 c2 00 e0 00 00 test $0xe000,%edx - 43788e: 75 10 jne 4378a0 <__strcasecmp_l_ssse3+0x1c70> - 437890: 66 0f ef c0 pxor %xmm0,%xmm0 - 437894: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43789b: e9 ca fe ff ff jmpq 43776a <__strcasecmp_l_ssse3+0x1b3a> - 4378a0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4378a5: 66 0f 73 d8 0d psrldq $0xd,%xmm0 - 4378aa: 66 0f 73 db 0d psrldq $0xd,%xmm3 - 4378af: e9 fc 03 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> - 4378b4: 66 90 xchg %ax,%ax - 4378b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4378bd: 00 00 00 - 4378c0: 66 0f ef c0 pxor %xmm0,%xmm0 - 4378c4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 4378c8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 4378cc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4378d0: 66 0f 73 fa 02 pslldq $0x2,%xmm2 - 4378d5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 4378da: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 4378df: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 4378e4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 4378e9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 4378ee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 4378f3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4378f8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4378fd: 66 45 0f db c1 pand %xmm9,%xmm8 - 437902: 66 45 0f db d3 pand %xmm11,%xmm10 - 437907: 66 44 0f db c7 pand %xmm7,%xmm8 - 43790c: 66 44 0f db d7 pand %xmm7,%xmm10 - 437911: 66 41 0f eb c8 por %xmm8,%xmm1 - 437916: 66 41 0f eb d2 por %xmm10,%xmm2 - 43791b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 43791f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 437923: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 437928: d3 ea shr %cl,%edx - 43792a: 41 d3 e9 shr %cl,%r9d - 43792d: 44 29 ca sub %r9d,%edx - 437930: 0f 85 df 03 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> - 437936: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 43793a: 66 0f ef c0 pxor %xmm0,%xmm0 - 43793e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 437945: 41 b9 0e 00 00 00 mov $0xe,%r9d - 43794b: 4c 8d 57 0e lea 0xe(%rdi),%r10 - 43794f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 437956: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 43795d: 0f 1f 00 nopl (%rax) - 437960: 49 83 c2 10 add $0x10,%r10 - 437964: 0f 8f 16 01 00 00 jg 437a80 <__strcasecmp_l_ssse3+0x1e50> - 43796a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 43796f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 437974: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 437978: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 - 43797e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 437983: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 437988: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 43798d: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 437992: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 437997: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 43799c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 4379a1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 4379a6: 66 45 0f db c1 pand %xmm9,%xmm8 - 4379ab: 66 45 0f db d3 pand %xmm11,%xmm10 - 4379b0: 66 44 0f db c7 pand %xmm7,%xmm8 - 4379b5: 66 44 0f db d7 pand %xmm7,%xmm10 - 4379ba: 66 41 0f eb c8 por %xmm8,%xmm1 - 4379bf: 66 41 0f eb d2 por %xmm10,%xmm2 - 4379c4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 4379c8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 4379cc: 66 0f f8 c8 psubb %xmm0,%xmm1 - 4379d0: 66 0f d7 d1 pmovmskb %xmm1,%edx - 4379d4: 81 ea ff ff 00 00 sub $0xffff,%edx - 4379da: 0f 85 30 03 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 4379e0: 48 83 c1 10 add $0x10,%rcx - 4379e4: 66 0f 6f dc movdqa %xmm4,%xmm3 - 4379e8: 49 83 c2 10 add $0x10,%r10 - 4379ec: 0f 8f 8e 00 00 00 jg 437a80 <__strcasecmp_l_ssse3+0x1e50> - 4379f2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 4379f7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 4379fc: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 437a00: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 - 437a06: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 437a0b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 437a10: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 437a15: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 437a1a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 437a1f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 437a24: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 437a29: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 437a2e: 66 45 0f db c1 pand %xmm9,%xmm8 - 437a33: 66 45 0f db d3 pand %xmm11,%xmm10 - 437a38: 66 44 0f db c7 pand %xmm7,%xmm8 - 437a3d: 66 44 0f db d7 pand %xmm7,%xmm10 - 437a42: 66 41 0f eb c8 por %xmm8,%xmm1 - 437a47: 66 41 0f eb d2 por %xmm10,%xmm2 - 437a4c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 437a50: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 437a54: 66 0f f8 c8 psubb %xmm0,%xmm1 - 437a58: 66 0f d7 d1 pmovmskb %xmm1,%edx - 437a5c: 81 ea ff ff 00 00 sub $0xffff,%edx - 437a62: 0f 85 a8 02 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 437a68: 48 83 c1 10 add $0x10,%rcx - 437a6c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 437a70: e9 eb fe ff ff jmpq 437960 <__strcasecmp_l_ssse3+0x1d30> - 437a75: 90 nop - 437a76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 437a7d: 00 00 00 - 437a80: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 437a84: 66 0f d7 d0 pmovmskb %xmm0,%edx - 437a88: f7 c2 00 c0 00 00 test $0xc000,%edx - 437a8e: 75 10 jne 437aa0 <__strcasecmp_l_ssse3+0x1e70> - 437a90: 66 0f ef c0 pxor %xmm0,%xmm0 - 437a94: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 437a9b: e9 ca fe ff ff jmpq 43796a <__strcasecmp_l_ssse3+0x1d3a> - 437aa0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 437aa5: 66 0f 73 d8 0e psrldq $0xe,%xmm0 - 437aaa: 66 0f 73 db 0e psrldq $0xe,%xmm3 - 437aaf: e9 fc 01 00 00 jmpq 437cb0 <__strcasecmp_l_ssse3+0x2080> - 437ab4: 66 90 xchg %ax,%ax - 437ab6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 437abd: 00 00 00 - 437ac0: 66 0f ef c0 pxor %xmm0,%xmm0 - 437ac4: 66 0f 6f 17 movdqa (%rdi),%xmm2 - 437ac8: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 437acc: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 437ad0: 66 0f 73 fa 01 pslldq $0x1,%xmm2 - 437ad5: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 437ada: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 437adf: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 437ae4: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 437ae9: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 437aee: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 437af3: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 437af8: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 437afd: 66 45 0f db c1 pand %xmm9,%xmm8 - 437b02: 66 45 0f db d3 pand %xmm11,%xmm10 - 437b07: 66 44 0f db c7 pand %xmm7,%xmm8 - 437b0c: 66 44 0f db d7 pand %xmm7,%xmm10 - 437b11: 66 41 0f eb c8 por %xmm8,%xmm1 - 437b16: 66 41 0f eb d2 por %xmm10,%xmm2 - 437b1b: 66 0f 74 d1 pcmpeqb %xmm1,%xmm2 - 437b1f: 66 0f f8 d0 psubb %xmm0,%xmm2 - 437b23: 66 44 0f d7 ca pmovmskb %xmm2,%r9d - 437b28: d3 ea shr %cl,%edx - 437b2a: 41 d3 e9 shr %cl,%r9d - 437b2d: 44 29 ca sub %r9d,%edx - 437b30: 0f 85 df 01 00 00 jne 437d15 <__strcasecmp_l_ssse3+0x20e5> - 437b36: 66 0f 6f 1f movdqa (%rdi),%xmm3 - 437b3a: 66 0f ef c0 pxor %xmm0,%xmm0 - 437b3e: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 437b45: 41 b9 0f 00 00 00 mov $0xf,%r9d - 437b4b: 4c 8d 57 0f lea 0xf(%rdi),%r10 - 437b4f: 49 81 e2 ff 0f 00 00 and $0xfff,%r10 - 437b56: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 437b5d: 0f 1f 00 nopl (%rax) - 437b60: 49 83 c2 10 add $0x10,%r10 - 437b64: 0f 8f 16 01 00 00 jg 437c80 <__strcasecmp_l_ssse3+0x2050> - 437b6a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 437b6f: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 437b74: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 437b78: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 - 437b7e: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 437b83: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 437b88: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 437b8d: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 437b92: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 437b97: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 437b9c: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 437ba1: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 437ba6: 66 45 0f db c1 pand %xmm9,%xmm8 - 437bab: 66 45 0f db d3 pand %xmm11,%xmm10 - 437bb0: 66 44 0f db c7 pand %xmm7,%xmm8 - 437bb5: 66 44 0f db d7 pand %xmm7,%xmm10 - 437bba: 66 41 0f eb c8 por %xmm8,%xmm1 - 437bbf: 66 41 0f eb d2 por %xmm10,%xmm2 - 437bc4: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 437bc8: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 437bcc: 66 0f f8 c8 psubb %xmm0,%xmm1 - 437bd0: 66 0f d7 d1 pmovmskb %xmm1,%edx - 437bd4: 81 ea ff ff 00 00 sub $0xffff,%edx - 437bda: 0f 85 30 01 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 437be0: 48 83 c1 10 add $0x10,%rcx - 437be4: 66 0f 6f dc movdqa %xmm4,%xmm3 - 437be8: 49 83 c2 10 add $0x10,%r10 - 437bec: 0f 8f 8e 00 00 00 jg 437c80 <__strcasecmp_l_ssse3+0x2050> - 437bf2: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 437bf7: 66 0f 6f 14 0f movdqa (%rdi,%rcx,1),%xmm2 - 437bfc: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 437c00: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 - 437c06: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 437c0b: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 437c10: 66 44 0f 6f d2 movdqa %xmm2,%xmm10 - 437c15: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 437c1a: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 437c1f: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 437c24: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 437c29: 66 44 0f 64 da pcmpgtb %xmm2,%xmm11 - 437c2e: 66 45 0f db c1 pand %xmm9,%xmm8 - 437c33: 66 45 0f db d3 pand %xmm11,%xmm10 - 437c38: 66 44 0f db c7 pand %xmm7,%xmm8 - 437c3d: 66 44 0f db d7 pand %xmm7,%xmm10 - 437c42: 66 41 0f eb c8 por %xmm8,%xmm1 - 437c47: 66 41 0f eb d2 por %xmm10,%xmm2 - 437c4c: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 437c50: 66 0f 74 ca pcmpeqb %xmm2,%xmm1 - 437c54: 66 0f f8 c8 psubb %xmm0,%xmm1 - 437c58: 66 0f d7 d1 pmovmskb %xmm1,%edx - 437c5c: 81 ea ff ff 00 00 sub $0xffff,%edx - 437c62: 0f 85 a8 00 00 00 jne 437d10 <__strcasecmp_l_ssse3+0x20e0> - 437c68: 48 83 c1 10 add $0x10,%rcx - 437c6c: 66 0f 6f dc movdqa %xmm4,%xmm3 - 437c70: e9 eb fe ff ff jmpq 437b60 <__strcasecmp_l_ssse3+0x1f30> - 437c75: 90 nop - 437c76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 437c7d: 00 00 00 - 437c80: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 437c84: 66 0f d7 d0 pmovmskb %xmm0,%edx - 437c88: f7 c2 00 80 00 00 test $0x8000,%edx - 437c8e: 75 10 jne 437ca0 <__strcasecmp_l_ssse3+0x2070> - 437c90: 66 0f ef c0 pxor %xmm0,%xmm0 - 437c94: 49 81 ea 00 10 00 00 sub $0x1000,%r10 - 437c9b: e9 ca fe ff ff jmpq 437b6a <__strcasecmp_l_ssse3+0x1f3a> - 437ca0: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 437ca5: 66 0f 73 db 0f psrldq $0xf,%xmm3 - 437caa: 66 0f 73 d8 0f psrldq $0xf,%xmm0 - 437caf: 90 nop - 437cb0: 66 44 0f 6f c1 movdqa %xmm1,%xmm8 - 437cb5: 66 44 0f 6f ce movdqa %xmm6,%xmm9 - 437cba: 66 44 0f 6f d3 movdqa %xmm3,%xmm10 - 437cbf: 66 44 0f 6f de movdqa %xmm6,%xmm11 - 437cc4: 66 44 0f 64 c5 pcmpgtb %xmm5,%xmm8 - 437cc9: 66 44 0f 64 c9 pcmpgtb %xmm1,%xmm9 - 437cce: 66 44 0f 64 d5 pcmpgtb %xmm5,%xmm10 - 437cd3: 66 44 0f 64 db pcmpgtb %xmm3,%xmm11 - 437cd8: 66 45 0f db c1 pand %xmm9,%xmm8 - 437cdd: 66 45 0f db d3 pand %xmm11,%xmm10 - 437ce2: 66 44 0f db c7 pand %xmm7,%xmm8 - 437ce7: 66 44 0f db d7 pand %xmm7,%xmm10 - 437cec: 66 41 0f eb c8 por %xmm8,%xmm1 - 437cf1: 66 41 0f eb da por %xmm10,%xmm3 - 437cf6: 66 0f 74 cb pcmpeqb %xmm3,%xmm1 - 437cfa: 66 0f f8 c8 psubb %xmm0,%xmm1 - 437cfe: 66 0f d7 d1 pmovmskb %xmm1,%edx - 437d02: f7 d2 not %edx - 437d04: 66 90 xchg %ax,%ax - 437d06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 437d0d: 00 00 00 - 437d10: 49 8d 44 09 f0 lea -0x10(%r9,%rcx,1),%rax - 437d15: 48 8d 3c 07 lea (%rdi,%rax,1),%rdi - 437d19: 48 8d 34 0e lea (%rsi,%rcx,1),%rsi - 437d1d: 45 85 c0 test %r8d,%r8d - 437d20: 74 0e je 437d30 <__strcasecmp_l_ssse3+0x2100> - 437d22: 48 87 f7 xchg %rsi,%rdi - 437d25: 90 nop - 437d26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 437d2d: 00 00 00 - 437d30: 48 0f bc d2 bsf %rdx,%rdx - 437d34: 0f b6 0c 16 movzbl (%rsi,%rdx,1),%ecx - 437d38: 0f b6 04 17 movzbl (%rdi,%rdx,1),%eax - 437d3c: 48 8d 15 fd f7 06 00 lea 0x6f7fd(%rip),%rdx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> - 437d43: 8b 0c 8a mov (%rdx,%rcx,4),%ecx - 437d46: 8b 04 82 mov (%rdx,%rax,4),%eax - 437d49: 29 c8 sub %ecx,%eax - 437d4b: c3 retq - 437d4c: 31 c0 xor %eax,%eax - 437d4e: c3 retq - 437d4f: 90 nop - 437d50: 0f b6 0e movzbl (%rsi),%ecx - 437d53: 0f b6 07 movzbl (%rdi),%eax - 437d56: 48 8d 15 e3 f7 06 00 lea 0x6f7e3(%rip),%rdx # 4a7540 <_nl_C_LC_CTYPE_tolower+0x200> - 437d5d: 8b 0c 8a mov (%rdx,%rcx,4),%ecx - 437d60: 8b 04 82 mov (%rdx,%rax,4),%eax - 437d63: 29 c8 sub %ecx,%eax - 437d65: c3 retq - 437d66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 437d6d: 00 00 00 - -0000000000437d70 <__strcpy_ssse3>: - 437d70: 48 89 f1 mov %rsi,%rcx - 437d73: 48 89 fa mov %rdi,%rdx - 437d76: 80 39 00 cmpb $0x0,(%rcx) - 437d79: 0f 84 91 16 00 00 je 439410 <__strcpy_ssse3+0x16a0> - 437d7f: 80 79 01 00 cmpb $0x0,0x1(%rcx) - 437d83: 0f 84 97 16 00 00 je 439420 <__strcpy_ssse3+0x16b0> - 437d89: 80 79 02 00 cmpb $0x0,0x2(%rcx) - 437d8d: 0f 84 9d 16 00 00 je 439430 <__strcpy_ssse3+0x16c0> - 437d93: 80 79 03 00 cmpb $0x0,0x3(%rcx) - 437d97: 0f 84 a3 16 00 00 je 439440 <__strcpy_ssse3+0x16d0> - 437d9d: 80 79 04 00 cmpb $0x0,0x4(%rcx) - 437da1: 0f 84 a9 16 00 00 je 439450 <__strcpy_ssse3+0x16e0> - 437da7: 80 79 05 00 cmpb $0x0,0x5(%rcx) - 437dab: 0f 84 af 16 00 00 je 439460 <__strcpy_ssse3+0x16f0> - 437db1: 80 79 06 00 cmpb $0x0,0x6(%rcx) - 437db5: 0f 84 b5 16 00 00 je 439470 <__strcpy_ssse3+0x1700> - 437dbb: 80 79 07 00 cmpb $0x0,0x7(%rcx) - 437dbf: 0f 84 db 15 00 00 je 4393a0 <__strcpy_ssse3+0x1630> - 437dc5: 80 79 08 00 cmpb $0x0,0x8(%rcx) - 437dc9: 0f 84 b1 16 00 00 je 439480 <__strcpy_ssse3+0x1710> - 437dcf: 80 79 09 00 cmpb $0x0,0x9(%rcx) - 437dd3: 0f 84 b7 16 00 00 je 439490 <__strcpy_ssse3+0x1720> - 437dd9: 80 79 0a 00 cmpb $0x0,0xa(%rcx) - 437ddd: 0f 84 bd 16 00 00 je 4394a0 <__strcpy_ssse3+0x1730> - 437de3: 80 79 0b 00 cmpb $0x0,0xb(%rcx) - 437de7: 0f 84 c3 16 00 00 je 4394b0 <__strcpy_ssse3+0x1740> - 437ded: 80 79 0c 00 cmpb $0x0,0xc(%rcx) - 437df1: 0f 84 c9 16 00 00 je 4394c0 <__strcpy_ssse3+0x1750> - 437df7: 80 79 0d 00 cmpb $0x0,0xd(%rcx) - 437dfb: 0f 84 df 16 00 00 je 4394e0 <__strcpy_ssse3+0x1770> - 437e01: 80 79 0e 00 cmpb $0x0,0xe(%rcx) - 437e05: 0f 84 f5 16 00 00 je 439500 <__strcpy_ssse3+0x1790> - 437e0b: 80 79 0f 00 cmpb $0x0,0xf(%rcx) - 437e0f: 0f 84 db 15 00 00 je 4393f0 <__strcpy_ssse3+0x1680> - 437e15: 48 8d 71 10 lea 0x10(%rcx),%rsi - 437e19: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 437e1d: 66 0f ef c0 pxor %xmm0,%xmm0 - 437e21: 4c 8b 09 mov (%rcx),%r9 - 437e24: 4c 89 0a mov %r9,(%rdx) - 437e27: 66 0f 74 06 pcmpeqb (%rsi),%xmm0 - 437e2b: 4c 8b 49 08 mov 0x8(%rcx),%r9 - 437e2f: 4c 89 4a 08 mov %r9,0x8(%rdx) - 437e33: 66 0f d7 c0 pmovmskb %xmm0,%eax - 437e37: 48 29 ce sub %rcx,%rsi - 437e3a: 48 85 c0 test %rax,%rax - 437e3d: 0f 85 0d 15 00 00 jne 439350 <__strcpy_ssse3+0x15e0> - 437e43: 48 89 d0 mov %rdx,%rax - 437e46: 48 8d 52 10 lea 0x10(%rdx),%rdx - 437e4a: 48 83 e2 f0 and $0xfffffffffffffff0,%rdx - 437e4e: 48 29 d0 sub %rdx,%rax - 437e51: 48 29 c1 sub %rax,%rcx - 437e54: 48 89 c8 mov %rcx,%rax - 437e57: 48 83 e0 0f and $0xf,%rax - 437e5b: 48 c7 c6 00 00 00 00 mov $0x0,%rsi - 437e62: 0f 84 8e 00 00 00 je 437ef6 <__strcpy_ssse3+0x186> - 437e68: 48 83 f8 08 cmp $0x8,%rax - 437e6c: 73 41 jae 437eaf <__strcpy_ssse3+0x13f> - 437e6e: 48 83 f8 01 cmp $0x1,%rax - 437e72: 0f 84 f8 01 00 00 je 438070 <__strcpy_ssse3+0x300> - 437e78: 48 83 f8 02 cmp $0x2,%rax - 437e7c: 0f 84 2e 03 00 00 je 4381b0 <__strcpy_ssse3+0x440> - 437e82: 48 83 f8 03 cmp $0x3,%rax - 437e86: 0f 84 64 04 00 00 je 4382f0 <__strcpy_ssse3+0x580> - 437e8c: 48 83 f8 04 cmp $0x4,%rax - 437e90: 0f 84 9a 05 00 00 je 438430 <__strcpy_ssse3+0x6c0> - 437e96: 48 83 f8 05 cmp $0x5,%rax - 437e9a: 0f 84 d0 06 00 00 je 438570 <__strcpy_ssse3+0x800> - 437ea0: 48 83 f8 06 cmp $0x6,%rax - 437ea4: 0f 84 06 08 00 00 je 4386b0 <__strcpy_ssse3+0x940> - 437eaa: e9 51 09 00 00 jmpq 438800 <__strcpy_ssse3+0xa90> - 437eaf: 0f 84 9b 0a 00 00 je 438950 <__strcpy_ssse3+0xbe0> - 437eb5: 48 83 f8 09 cmp $0x9,%rax - 437eb9: 0f 84 d1 0b 00 00 je 438a90 <__strcpy_ssse3+0xd20> - 437ebf: 48 83 f8 0a cmp $0xa,%rax - 437ec3: 0f 84 07 0d 00 00 je 438bd0 <__strcpy_ssse3+0xe60> - 437ec9: 48 83 f8 0b cmp $0xb,%rax - 437ecd: 0f 84 3d 0e 00 00 je 438d10 <__strcpy_ssse3+0xfa0> - 437ed3: 48 83 f8 0c cmp $0xc,%rax - 437ed7: 0f 84 73 0f 00 00 je 438e50 <__strcpy_ssse3+0x10e0> - 437edd: 48 83 f8 0d cmp $0xd,%rax - 437ee1: 0f 84 a9 10 00 00 je 438f90 <__strcpy_ssse3+0x1220> - 437ee7: 48 83 f8 0e cmp $0xe,%rax - 437eeb: 0f 84 df 11 00 00 je 4390d0 <__strcpy_ssse3+0x1360> - 437ef1: e9 1a 13 00 00 jmpq 439210 <__strcpy_ssse3+0x14a0> - 437ef6: 0f 28 09 movaps (%rcx),%xmm1 - 437ef9: 0f 28 51 10 movaps 0x10(%rcx),%xmm2 - 437efd: 0f 29 0a movaps %xmm1,(%rdx) - 437f00: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 437f04: 66 0f d7 c0 pmovmskb %xmm0,%eax - 437f08: 48 8d 76 10 lea 0x10(%rsi),%rsi - 437f0c: 48 85 c0 test %rax,%rax - 437f0f: 0f 85 3b 14 00 00 jne 439350 <__strcpy_ssse3+0x15e0> - 437f15: 0f 28 5c 31 10 movaps 0x10(%rcx,%rsi,1),%xmm3 - 437f1a: 0f 29 14 32 movaps %xmm2,(%rdx,%rsi,1) - 437f1e: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 437f22: 66 0f d7 c0 pmovmskb %xmm0,%eax - 437f26: 48 8d 76 10 lea 0x10(%rsi),%rsi - 437f2a: 48 85 c0 test %rax,%rax - 437f2d: 0f 85 1d 14 00 00 jne 439350 <__strcpy_ssse3+0x15e0> - 437f33: 0f 28 64 31 10 movaps 0x10(%rcx,%rsi,1),%xmm4 - 437f38: 0f 29 1c 32 movaps %xmm3,(%rdx,%rsi,1) - 437f3c: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 - 437f40: 66 0f d7 c0 pmovmskb %xmm0,%eax - 437f44: 48 8d 76 10 lea 0x10(%rsi),%rsi - 437f48: 48 85 c0 test %rax,%rax - 437f4b: 0f 85 ff 13 00 00 jne 439350 <__strcpy_ssse3+0x15e0> - 437f51: 0f 28 4c 31 10 movaps 0x10(%rcx,%rsi,1),%xmm1 - 437f56: 0f 29 24 32 movaps %xmm4,(%rdx,%rsi,1) - 437f5a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 437f5e: 66 0f d7 c0 pmovmskb %xmm0,%eax - 437f62: 48 8d 76 10 lea 0x10(%rsi),%rsi - 437f66: 48 85 c0 test %rax,%rax - 437f69: 0f 85 e1 13 00 00 jne 439350 <__strcpy_ssse3+0x15e0> - 437f6f: 0f 28 54 31 10 movaps 0x10(%rcx,%rsi,1),%xmm2 - 437f74: 0f 29 0c 32 movaps %xmm1,(%rdx,%rsi,1) - 437f78: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 437f7c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 437f80: 48 8d 76 10 lea 0x10(%rsi),%rsi - 437f84: 48 85 c0 test %rax,%rax - 437f87: 0f 85 c3 13 00 00 jne 439350 <__strcpy_ssse3+0x15e0> - 437f8d: 0f 28 5c 31 10 movaps 0x10(%rcx,%rsi,1),%xmm3 - 437f92: 0f 29 14 32 movaps %xmm2,(%rdx,%rsi,1) - 437f96: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 437f9a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 437f9e: 48 8d 76 10 lea 0x10(%rsi),%rsi - 437fa2: 48 85 c0 test %rax,%rax - 437fa5: 0f 85 a5 13 00 00 jne 439350 <__strcpy_ssse3+0x15e0> - 437fab: 0f 29 1c 32 movaps %xmm3,(%rdx,%rsi,1) - 437faf: 48 89 c8 mov %rcx,%rax - 437fb2: 48 8d 4c 31 10 lea 0x10(%rcx,%rsi,1),%rcx - 437fb7: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 437fbb: 48 29 c8 sub %rcx,%rax - 437fbe: 48 29 c2 sub %rax,%rdx - 437fc1: 48 c7 c6 c0 ff ff ff mov $0xffffffffffffffc0,%rsi - 437fc8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 437fcf: 00 - 437fd0: 0f 28 11 movaps (%rcx),%xmm2 - 437fd3: 0f 28 e2 movaps %xmm2,%xmm4 - 437fd6: 0f 28 69 10 movaps 0x10(%rcx),%xmm5 - 437fda: 0f 28 59 20 movaps 0x20(%rcx),%xmm3 - 437fde: 0f 28 f3 movaps %xmm3,%xmm6 - 437fe1: 0f 28 79 30 movaps 0x30(%rcx),%xmm7 - 437fe5: 66 0f da d5 pminub %xmm5,%xmm2 - 437fe9: 66 0f da df pminub %xmm7,%xmm3 - 437fed: 66 0f da da pminub %xmm2,%xmm3 - 437ff1: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 - 437ff5: 66 0f d7 c3 pmovmskb %xmm3,%eax - 437ff9: 48 8d 52 40 lea 0x40(%rdx),%rdx - 437ffd: 48 8d 49 40 lea 0x40(%rcx),%rcx - 438001: 48 85 c0 test %rax,%rax - 438004: 75 12 jne 438018 <__strcpy_ssse3+0x2a8> - 438006: 0f 29 62 c0 movaps %xmm4,-0x40(%rdx) - 43800a: 0f 29 6a d0 movaps %xmm5,-0x30(%rdx) - 43800e: 0f 29 72 e0 movaps %xmm6,-0x20(%rdx) - 438012: 0f 29 7a f0 movaps %xmm7,-0x10(%rdx) - 438016: eb b8 jmp 437fd0 <__strcpy_ssse3+0x260> - 438018: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 - 43801c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438020: 48 85 c0 test %rax,%rax - 438023: 0f 85 27 13 00 00 jne 439350 <__strcpy_ssse3+0x15e0> - 438029: 66 0f 74 c5 pcmpeqb %xmm5,%xmm0 - 43802d: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438031: 0f 29 62 c0 movaps %xmm4,-0x40(%rdx) - 438035: 48 85 c0 test %rax,%rax - 438038: 48 8d 76 10 lea 0x10(%rsi),%rsi - 43803c: 0f 85 0e 13 00 00 jne 439350 <__strcpy_ssse3+0x15e0> - 438042: 66 0f 74 c6 pcmpeqb %xmm6,%xmm0 - 438046: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43804a: 0f 29 6a d0 movaps %xmm5,-0x30(%rdx) - 43804e: 48 85 c0 test %rax,%rax - 438051: 48 8d 76 10 lea 0x10(%rsi),%rsi - 438055: 0f 85 f5 12 00 00 jne 439350 <__strcpy_ssse3+0x15e0> - 43805b: 0f 29 72 e0 movaps %xmm6,-0x20(%rdx) - 43805f: 66 0f 74 c7 pcmpeqb %xmm7,%xmm0 - 438063: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438067: 48 8d 76 10 lea 0x10(%rsi),%rsi - 43806b: e9 e0 12 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> - 438070: 0f 28 49 ff movaps -0x1(%rcx),%xmm1 - 438074: 0f 28 51 0f movaps 0xf(%rcx),%xmm2 - 438078: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43807c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438080: 0f 28 da movaps %xmm2,%xmm3 - 438083: 48 85 c0 test %rax,%rax - 438086: 0f 85 0e 01 00 00 jne 43819a <__strcpy_ssse3+0x42a> - 43808c: 66 0f 3a 0f d1 01 palignr $0x1,%xmm1,%xmm2 - 438092: 0f 29 12 movaps %xmm2,(%rdx) - 438095: 0f 28 51 1f movaps 0x1f(%rcx),%xmm2 - 438099: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43809d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4380a1: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4380a5: 48 8d 49 10 lea 0x10(%rcx),%rcx - 4380a9: 0f 28 ca movaps %xmm2,%xmm1 - 4380ac: 48 85 c0 test %rax,%rax - 4380af: 0f 85 e5 00 00 00 jne 43819a <__strcpy_ssse3+0x42a> - 4380b5: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 - 4380bb: 0f 29 12 movaps %xmm2,(%rdx) - 4380be: 0f 28 51 1f movaps 0x1f(%rcx),%xmm2 - 4380c2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4380c6: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4380ca: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4380ce: 48 8d 49 10 lea 0x10(%rcx),%rcx - 4380d2: 0f 28 da movaps %xmm2,%xmm3 - 4380d5: 48 85 c0 test %rax,%rax - 4380d8: 0f 85 bc 00 00 00 jne 43819a <__strcpy_ssse3+0x42a> - 4380de: 66 0f 3a 0f d1 01 palignr $0x1,%xmm1,%xmm2 - 4380e4: 0f 29 12 movaps %xmm2,(%rdx) - 4380e7: 0f 28 51 1f movaps 0x1f(%rcx),%xmm2 - 4380eb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4380ef: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4380f3: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4380f7: 48 8d 49 10 lea 0x10(%rcx),%rcx - 4380fb: 48 85 c0 test %rax,%rax - 4380fe: 0f 85 96 00 00 00 jne 43819a <__strcpy_ssse3+0x42a> - 438104: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 - 43810a: 0f 29 12 movaps %xmm2,(%rdx) - 43810d: 48 8d 49 1f lea 0x1f(%rcx),%rcx - 438111: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438115: 48 89 c8 mov %rcx,%rax - 438118: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43811c: 48 29 c8 sub %rcx,%rax - 43811f: 48 8d 49 f1 lea -0xf(%rcx),%rcx - 438123: 48 29 c2 sub %rax,%rdx - 438126: 0f 28 49 ff movaps -0x1(%rcx),%xmm1 - 43812a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 438130: 0f 28 51 0f movaps 0xf(%rcx),%xmm2 - 438134: 0f 28 59 1f movaps 0x1f(%rcx),%xmm3 - 438138: 0f 28 f3 movaps %xmm3,%xmm6 - 43813b: 0f 28 61 2f movaps 0x2f(%rcx),%xmm4 - 43813f: 0f 28 fc movaps %xmm4,%xmm7 - 438142: 0f 28 69 3f movaps 0x3f(%rcx),%xmm5 - 438146: 66 0f da f2 pminub %xmm2,%xmm6 - 43814a: 66 0f da fd pminub %xmm5,%xmm7 - 43814e: 66 0f da fe pminub %xmm6,%xmm7 - 438152: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 438156: 66 0f d7 c7 pmovmskb %xmm7,%eax - 43815a: 0f 28 fd movaps %xmm5,%xmm7 - 43815d: 66 0f 3a 0f ec 01 palignr $0x1,%xmm4,%xmm5 - 438163: 48 85 c0 test %rax,%rax - 438166: 66 0f 3a 0f e3 01 palignr $0x1,%xmm3,%xmm4 - 43816c: 0f 85 06 ff ff ff jne 438078 <__strcpy_ssse3+0x308> - 438172: 66 0f 3a 0f da 01 palignr $0x1,%xmm2,%xmm3 - 438178: 48 8d 49 40 lea 0x40(%rcx),%rcx - 43817c: 66 0f 3a 0f d1 01 palignr $0x1,%xmm1,%xmm2 - 438182: 0f 28 cf movaps %xmm7,%xmm1 - 438185: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 438189: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 43818d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 438191: 0f 29 12 movaps %xmm2,(%rdx) - 438194: 48 8d 52 40 lea 0x40(%rdx),%rdx - 438198: eb 96 jmp 438130 <__strcpy_ssse3+0x3c0> - 43819a: f3 0f 6f 49 ff movdqu -0x1(%rcx),%xmm1 - 43819f: 48 c7 c6 0f 00 00 00 mov $0xf,%rsi - 4381a6: f3 0f 7f 4a ff movdqu %xmm1,-0x1(%rdx) - 4381ab: e9 a0 11 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> - 4381b0: 0f 28 49 fe movaps -0x2(%rcx),%xmm1 - 4381b4: 0f 28 51 0e movaps 0xe(%rcx),%xmm2 - 4381b8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4381bc: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4381c0: 0f 28 da movaps %xmm2,%xmm3 - 4381c3: 48 85 c0 test %rax,%rax - 4381c6: 0f 85 0e 01 00 00 jne 4382da <__strcpy_ssse3+0x56a> - 4381cc: 66 0f 3a 0f d1 02 palignr $0x2,%xmm1,%xmm2 - 4381d2: 0f 29 12 movaps %xmm2,(%rdx) - 4381d5: 0f 28 51 1e movaps 0x1e(%rcx),%xmm2 - 4381d9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4381dd: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4381e1: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4381e5: 48 8d 49 10 lea 0x10(%rcx),%rcx - 4381e9: 0f 28 ca movaps %xmm2,%xmm1 - 4381ec: 48 85 c0 test %rax,%rax - 4381ef: 0f 85 e5 00 00 00 jne 4382da <__strcpy_ssse3+0x56a> - 4381f5: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 - 4381fb: 0f 29 12 movaps %xmm2,(%rdx) - 4381fe: 0f 28 51 1e movaps 0x1e(%rcx),%xmm2 - 438202: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438206: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43820a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43820e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438212: 0f 28 da movaps %xmm2,%xmm3 - 438215: 48 85 c0 test %rax,%rax - 438218: 0f 85 bc 00 00 00 jne 4382da <__strcpy_ssse3+0x56a> - 43821e: 66 0f 3a 0f d1 02 palignr $0x2,%xmm1,%xmm2 - 438224: 0f 29 12 movaps %xmm2,(%rdx) - 438227: 0f 28 51 1e movaps 0x1e(%rcx),%xmm2 - 43822b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43822f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438233: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438237: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43823b: 48 85 c0 test %rax,%rax - 43823e: 0f 85 96 00 00 00 jne 4382da <__strcpy_ssse3+0x56a> - 438244: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 - 43824a: 0f 29 12 movaps %xmm2,(%rdx) - 43824d: 48 8d 49 1e lea 0x1e(%rcx),%rcx - 438251: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438255: 48 89 c8 mov %rcx,%rax - 438258: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43825c: 48 29 c8 sub %rcx,%rax - 43825f: 48 8d 49 f2 lea -0xe(%rcx),%rcx - 438263: 48 29 c2 sub %rax,%rdx - 438266: 0f 28 49 fe movaps -0x2(%rcx),%xmm1 - 43826a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 438270: 0f 28 51 0e movaps 0xe(%rcx),%xmm2 - 438274: 0f 28 59 1e movaps 0x1e(%rcx),%xmm3 - 438278: 0f 28 f3 movaps %xmm3,%xmm6 - 43827b: 0f 28 61 2e movaps 0x2e(%rcx),%xmm4 - 43827f: 0f 28 fc movaps %xmm4,%xmm7 - 438282: 0f 28 69 3e movaps 0x3e(%rcx),%xmm5 - 438286: 66 0f da f2 pminub %xmm2,%xmm6 - 43828a: 66 0f da fd pminub %xmm5,%xmm7 - 43828e: 66 0f da fe pminub %xmm6,%xmm7 - 438292: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 438296: 66 0f d7 c7 pmovmskb %xmm7,%eax - 43829a: 0f 28 fd movaps %xmm5,%xmm7 - 43829d: 66 0f 3a 0f ec 02 palignr $0x2,%xmm4,%xmm5 - 4382a3: 48 85 c0 test %rax,%rax - 4382a6: 66 0f 3a 0f e3 02 palignr $0x2,%xmm3,%xmm4 - 4382ac: 0f 85 06 ff ff ff jne 4381b8 <__strcpy_ssse3+0x448> - 4382b2: 66 0f 3a 0f da 02 palignr $0x2,%xmm2,%xmm3 - 4382b8: 48 8d 49 40 lea 0x40(%rcx),%rcx - 4382bc: 66 0f 3a 0f d1 02 palignr $0x2,%xmm1,%xmm2 - 4382c2: 0f 28 cf movaps %xmm7,%xmm1 - 4382c5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 4382c9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 4382cd: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 4382d1: 0f 29 12 movaps %xmm2,(%rdx) - 4382d4: 48 8d 52 40 lea 0x40(%rdx),%rdx - 4382d8: eb 96 jmp 438270 <__strcpy_ssse3+0x500> - 4382da: f3 0f 6f 49 fe movdqu -0x2(%rcx),%xmm1 - 4382df: 48 c7 c6 0e 00 00 00 mov $0xe,%rsi - 4382e6: f3 0f 7f 4a fe movdqu %xmm1,-0x2(%rdx) - 4382eb: e9 60 10 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> - 4382f0: 0f 28 49 fd movaps -0x3(%rcx),%xmm1 - 4382f4: 0f 28 51 0d movaps 0xd(%rcx),%xmm2 - 4382f8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4382fc: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438300: 0f 28 da movaps %xmm2,%xmm3 - 438303: 48 85 c0 test %rax,%rax - 438306: 0f 85 0e 01 00 00 jne 43841a <__strcpy_ssse3+0x6aa> - 43830c: 66 0f 3a 0f d1 03 palignr $0x3,%xmm1,%xmm2 - 438312: 0f 29 12 movaps %xmm2,(%rdx) - 438315: 0f 28 51 1d movaps 0x1d(%rcx),%xmm2 - 438319: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43831d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438321: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438325: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438329: 0f 28 ca movaps %xmm2,%xmm1 - 43832c: 48 85 c0 test %rax,%rax - 43832f: 0f 85 e5 00 00 00 jne 43841a <__strcpy_ssse3+0x6aa> - 438335: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 - 43833b: 0f 29 12 movaps %xmm2,(%rdx) - 43833e: 0f 28 51 1d movaps 0x1d(%rcx),%xmm2 - 438342: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438346: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43834a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43834e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438352: 0f 28 da movaps %xmm2,%xmm3 - 438355: 48 85 c0 test %rax,%rax - 438358: 0f 85 bc 00 00 00 jne 43841a <__strcpy_ssse3+0x6aa> - 43835e: 66 0f 3a 0f d1 03 palignr $0x3,%xmm1,%xmm2 - 438364: 0f 29 12 movaps %xmm2,(%rdx) - 438367: 0f 28 51 1d movaps 0x1d(%rcx),%xmm2 - 43836b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43836f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438373: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438377: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43837b: 48 85 c0 test %rax,%rax - 43837e: 0f 85 96 00 00 00 jne 43841a <__strcpy_ssse3+0x6aa> - 438384: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 - 43838a: 0f 29 12 movaps %xmm2,(%rdx) - 43838d: 48 8d 49 1d lea 0x1d(%rcx),%rcx - 438391: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438395: 48 89 c8 mov %rcx,%rax - 438398: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43839c: 48 29 c8 sub %rcx,%rax - 43839f: 48 8d 49 f3 lea -0xd(%rcx),%rcx - 4383a3: 48 29 c2 sub %rax,%rdx - 4383a6: 0f 28 49 fd movaps -0x3(%rcx),%xmm1 - 4383aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4383b0: 0f 28 51 0d movaps 0xd(%rcx),%xmm2 - 4383b4: 0f 28 59 1d movaps 0x1d(%rcx),%xmm3 - 4383b8: 0f 28 f3 movaps %xmm3,%xmm6 - 4383bb: 0f 28 61 2d movaps 0x2d(%rcx),%xmm4 - 4383bf: 0f 28 fc movaps %xmm4,%xmm7 - 4383c2: 0f 28 69 3d movaps 0x3d(%rcx),%xmm5 - 4383c6: 66 0f da f2 pminub %xmm2,%xmm6 - 4383ca: 66 0f da fd pminub %xmm5,%xmm7 - 4383ce: 66 0f da fe pminub %xmm6,%xmm7 - 4383d2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 4383d6: 66 0f d7 c7 pmovmskb %xmm7,%eax - 4383da: 0f 28 fd movaps %xmm5,%xmm7 - 4383dd: 66 0f 3a 0f ec 03 palignr $0x3,%xmm4,%xmm5 - 4383e3: 48 85 c0 test %rax,%rax - 4383e6: 66 0f 3a 0f e3 03 palignr $0x3,%xmm3,%xmm4 - 4383ec: 0f 85 06 ff ff ff jne 4382f8 <__strcpy_ssse3+0x588> - 4383f2: 66 0f 3a 0f da 03 palignr $0x3,%xmm2,%xmm3 - 4383f8: 48 8d 49 40 lea 0x40(%rcx),%rcx - 4383fc: 66 0f 3a 0f d1 03 palignr $0x3,%xmm1,%xmm2 - 438402: 0f 28 cf movaps %xmm7,%xmm1 - 438405: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 438409: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 43840d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 438411: 0f 29 12 movaps %xmm2,(%rdx) - 438414: 48 8d 52 40 lea 0x40(%rdx),%rdx - 438418: eb 96 jmp 4383b0 <__strcpy_ssse3+0x640> - 43841a: f3 0f 6f 49 fd movdqu -0x3(%rcx),%xmm1 - 43841f: 48 c7 c6 0d 00 00 00 mov $0xd,%rsi - 438426: f3 0f 7f 4a fd movdqu %xmm1,-0x3(%rdx) - 43842b: e9 20 0f 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> - 438430: 0f 28 49 fc movaps -0x4(%rcx),%xmm1 - 438434: 0f 28 51 0c movaps 0xc(%rcx),%xmm2 - 438438: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43843c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438440: 0f 28 da movaps %xmm2,%xmm3 - 438443: 48 85 c0 test %rax,%rax - 438446: 0f 85 0e 01 00 00 jne 43855a <__strcpy_ssse3+0x7ea> - 43844c: 66 0f 3a 0f d1 04 palignr $0x4,%xmm1,%xmm2 - 438452: 0f 29 12 movaps %xmm2,(%rdx) - 438455: 0f 28 51 1c movaps 0x1c(%rcx),%xmm2 - 438459: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43845d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438461: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438465: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438469: 0f 28 ca movaps %xmm2,%xmm1 - 43846c: 48 85 c0 test %rax,%rax - 43846f: 0f 85 e5 00 00 00 jne 43855a <__strcpy_ssse3+0x7ea> - 438475: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 - 43847b: 0f 29 12 movaps %xmm2,(%rdx) - 43847e: 0f 28 51 1c movaps 0x1c(%rcx),%xmm2 - 438482: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438486: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43848a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43848e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438492: 0f 28 da movaps %xmm2,%xmm3 - 438495: 48 85 c0 test %rax,%rax - 438498: 0f 85 bc 00 00 00 jne 43855a <__strcpy_ssse3+0x7ea> - 43849e: 66 0f 3a 0f d1 04 palignr $0x4,%xmm1,%xmm2 - 4384a4: 0f 29 12 movaps %xmm2,(%rdx) - 4384a7: 0f 28 51 1c movaps 0x1c(%rcx),%xmm2 - 4384ab: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4384af: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4384b3: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4384b7: 48 8d 49 10 lea 0x10(%rcx),%rcx - 4384bb: 48 85 c0 test %rax,%rax - 4384be: 0f 85 96 00 00 00 jne 43855a <__strcpy_ssse3+0x7ea> - 4384c4: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 - 4384ca: 0f 29 12 movaps %xmm2,(%rdx) - 4384cd: 48 8d 49 1c lea 0x1c(%rcx),%rcx - 4384d1: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4384d5: 48 89 c8 mov %rcx,%rax - 4384d8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 4384dc: 48 29 c8 sub %rcx,%rax - 4384df: 48 8d 49 f4 lea -0xc(%rcx),%rcx - 4384e3: 48 29 c2 sub %rax,%rdx - 4384e6: 0f 28 49 fc movaps -0x4(%rcx),%xmm1 - 4384ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4384f0: 0f 28 51 0c movaps 0xc(%rcx),%xmm2 - 4384f4: 0f 28 59 1c movaps 0x1c(%rcx),%xmm3 - 4384f8: 0f 28 f3 movaps %xmm3,%xmm6 - 4384fb: 0f 28 61 2c movaps 0x2c(%rcx),%xmm4 - 4384ff: 0f 28 fc movaps %xmm4,%xmm7 - 438502: 0f 28 69 3c movaps 0x3c(%rcx),%xmm5 - 438506: 66 0f da f2 pminub %xmm2,%xmm6 - 43850a: 66 0f da fd pminub %xmm5,%xmm7 - 43850e: 66 0f da fe pminub %xmm6,%xmm7 - 438512: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 438516: 66 0f d7 c7 pmovmskb %xmm7,%eax - 43851a: 0f 28 fd movaps %xmm5,%xmm7 - 43851d: 66 0f 3a 0f ec 04 palignr $0x4,%xmm4,%xmm5 - 438523: 48 85 c0 test %rax,%rax - 438526: 66 0f 3a 0f e3 04 palignr $0x4,%xmm3,%xmm4 - 43852c: 0f 85 06 ff ff ff jne 438438 <__strcpy_ssse3+0x6c8> - 438532: 66 0f 3a 0f da 04 palignr $0x4,%xmm2,%xmm3 - 438538: 48 8d 49 40 lea 0x40(%rcx),%rcx - 43853c: 66 0f 3a 0f d1 04 palignr $0x4,%xmm1,%xmm2 - 438542: 0f 28 cf movaps %xmm7,%xmm1 - 438545: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 438549: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 43854d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 438551: 0f 29 12 movaps %xmm2,(%rdx) - 438554: 48 8d 52 40 lea 0x40(%rdx),%rdx - 438558: eb 96 jmp 4384f0 <__strcpy_ssse3+0x780> - 43855a: f3 0f 6f 49 fc movdqu -0x4(%rcx),%xmm1 - 43855f: 48 c7 c6 0c 00 00 00 mov $0xc,%rsi - 438566: f3 0f 7f 4a fc movdqu %xmm1,-0x4(%rdx) - 43856b: e9 e0 0d 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> - 438570: 0f 28 49 fb movaps -0x5(%rcx),%xmm1 - 438574: 0f 28 51 0b movaps 0xb(%rcx),%xmm2 - 438578: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43857c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438580: 0f 28 da movaps %xmm2,%xmm3 - 438583: 48 85 c0 test %rax,%rax - 438586: 0f 85 0e 01 00 00 jne 43869a <__strcpy_ssse3+0x92a> - 43858c: 66 0f 3a 0f d1 05 palignr $0x5,%xmm1,%xmm2 - 438592: 0f 29 12 movaps %xmm2,(%rdx) - 438595: 0f 28 51 1b movaps 0x1b(%rcx),%xmm2 - 438599: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43859d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4385a1: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4385a5: 48 8d 49 10 lea 0x10(%rcx),%rcx - 4385a9: 0f 28 ca movaps %xmm2,%xmm1 - 4385ac: 48 85 c0 test %rax,%rax - 4385af: 0f 85 e5 00 00 00 jne 43869a <__strcpy_ssse3+0x92a> - 4385b5: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 - 4385bb: 0f 29 12 movaps %xmm2,(%rdx) - 4385be: 0f 28 51 1b movaps 0x1b(%rcx),%xmm2 - 4385c2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4385c6: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4385ca: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4385ce: 48 8d 49 10 lea 0x10(%rcx),%rcx - 4385d2: 0f 28 da movaps %xmm2,%xmm3 - 4385d5: 48 85 c0 test %rax,%rax - 4385d8: 0f 85 bc 00 00 00 jne 43869a <__strcpy_ssse3+0x92a> - 4385de: 66 0f 3a 0f d1 05 palignr $0x5,%xmm1,%xmm2 - 4385e4: 0f 29 12 movaps %xmm2,(%rdx) - 4385e7: 0f 28 51 1b movaps 0x1b(%rcx),%xmm2 - 4385eb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4385ef: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4385f3: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4385f7: 48 8d 49 10 lea 0x10(%rcx),%rcx - 4385fb: 48 85 c0 test %rax,%rax - 4385fe: 0f 85 96 00 00 00 jne 43869a <__strcpy_ssse3+0x92a> - 438604: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 - 43860a: 0f 29 12 movaps %xmm2,(%rdx) - 43860d: 48 8d 49 1b lea 0x1b(%rcx),%rcx - 438611: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438615: 48 89 c8 mov %rcx,%rax - 438618: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43861c: 48 29 c8 sub %rcx,%rax - 43861f: 48 8d 49 f5 lea -0xb(%rcx),%rcx - 438623: 48 29 c2 sub %rax,%rdx - 438626: 0f 28 49 fb movaps -0x5(%rcx),%xmm1 - 43862a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 438630: 0f 28 51 0b movaps 0xb(%rcx),%xmm2 - 438634: 0f 28 59 1b movaps 0x1b(%rcx),%xmm3 - 438638: 0f 28 f3 movaps %xmm3,%xmm6 - 43863b: 0f 28 61 2b movaps 0x2b(%rcx),%xmm4 - 43863f: 0f 28 fc movaps %xmm4,%xmm7 - 438642: 0f 28 69 3b movaps 0x3b(%rcx),%xmm5 - 438646: 66 0f da f2 pminub %xmm2,%xmm6 - 43864a: 66 0f da fd pminub %xmm5,%xmm7 - 43864e: 66 0f da fe pminub %xmm6,%xmm7 - 438652: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 438656: 66 0f d7 c7 pmovmskb %xmm7,%eax - 43865a: 0f 28 fd movaps %xmm5,%xmm7 - 43865d: 66 0f 3a 0f ec 05 palignr $0x5,%xmm4,%xmm5 - 438663: 48 85 c0 test %rax,%rax - 438666: 66 0f 3a 0f e3 05 palignr $0x5,%xmm3,%xmm4 - 43866c: 0f 85 06 ff ff ff jne 438578 <__strcpy_ssse3+0x808> - 438672: 66 0f 3a 0f da 05 palignr $0x5,%xmm2,%xmm3 - 438678: 48 8d 49 40 lea 0x40(%rcx),%rcx - 43867c: 66 0f 3a 0f d1 05 palignr $0x5,%xmm1,%xmm2 - 438682: 0f 28 cf movaps %xmm7,%xmm1 - 438685: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 438689: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 43868d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 438691: 0f 29 12 movaps %xmm2,(%rdx) - 438694: 48 8d 52 40 lea 0x40(%rdx),%rdx - 438698: eb 96 jmp 438630 <__strcpy_ssse3+0x8c0> - 43869a: f3 0f 6f 49 fb movdqu -0x5(%rcx),%xmm1 - 43869f: 48 c7 c6 0b 00 00 00 mov $0xb,%rsi - 4386a6: f3 0f 7f 4a fb movdqu %xmm1,-0x5(%rdx) - 4386ab: e9 a0 0c 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> - 4386b0: 0f 28 49 fa movaps -0x6(%rcx),%xmm1 - 4386b4: 0f 28 51 0a movaps 0xa(%rcx),%xmm2 - 4386b8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4386bc: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4386c0: 0f 28 da movaps %xmm2,%xmm3 - 4386c3: 48 85 c0 test %rax,%rax - 4386c6: 0f 85 0e 01 00 00 jne 4387da <__strcpy_ssse3+0xa6a> - 4386cc: 66 0f 3a 0f d1 06 palignr $0x6,%xmm1,%xmm2 - 4386d2: 0f 29 12 movaps %xmm2,(%rdx) - 4386d5: 0f 28 51 1a movaps 0x1a(%rcx),%xmm2 - 4386d9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4386dd: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4386e1: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4386e5: 48 8d 49 10 lea 0x10(%rcx),%rcx - 4386e9: 0f 28 ca movaps %xmm2,%xmm1 - 4386ec: 48 85 c0 test %rax,%rax - 4386ef: 0f 85 e5 00 00 00 jne 4387da <__strcpy_ssse3+0xa6a> - 4386f5: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 - 4386fb: 0f 29 12 movaps %xmm2,(%rdx) - 4386fe: 0f 28 51 1a movaps 0x1a(%rcx),%xmm2 - 438702: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438706: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43870a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43870e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438712: 0f 28 da movaps %xmm2,%xmm3 - 438715: 48 85 c0 test %rax,%rax - 438718: 0f 85 bc 00 00 00 jne 4387da <__strcpy_ssse3+0xa6a> - 43871e: 66 0f 3a 0f d1 06 palignr $0x6,%xmm1,%xmm2 - 438724: 0f 29 12 movaps %xmm2,(%rdx) - 438727: 0f 28 51 1a movaps 0x1a(%rcx),%xmm2 - 43872b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43872f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438733: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438737: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43873b: 48 85 c0 test %rax,%rax - 43873e: 0f 85 96 00 00 00 jne 4387da <__strcpy_ssse3+0xa6a> - 438744: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 - 43874a: 0f 29 12 movaps %xmm2,(%rdx) - 43874d: 48 8d 49 1a lea 0x1a(%rcx),%rcx - 438751: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438755: 48 89 c8 mov %rcx,%rax - 438758: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43875c: 48 29 c8 sub %rcx,%rax - 43875f: 48 8d 49 f6 lea -0xa(%rcx),%rcx - 438763: 48 29 c2 sub %rax,%rdx - 438766: 0f 28 49 fa movaps -0x6(%rcx),%xmm1 - 43876a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 438770: 0f 28 51 0a movaps 0xa(%rcx),%xmm2 - 438774: 0f 28 59 1a movaps 0x1a(%rcx),%xmm3 - 438778: 0f 28 f3 movaps %xmm3,%xmm6 - 43877b: 0f 28 61 2a movaps 0x2a(%rcx),%xmm4 - 43877f: 0f 28 fc movaps %xmm4,%xmm7 - 438782: 0f 28 69 3a movaps 0x3a(%rcx),%xmm5 - 438786: 66 0f da f2 pminub %xmm2,%xmm6 - 43878a: 66 0f da fd pminub %xmm5,%xmm7 - 43878e: 66 0f da fe pminub %xmm6,%xmm7 - 438792: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 438796: 66 0f d7 c7 pmovmskb %xmm7,%eax - 43879a: 0f 28 fd movaps %xmm5,%xmm7 - 43879d: 66 0f 3a 0f ec 06 palignr $0x6,%xmm4,%xmm5 - 4387a3: 48 85 c0 test %rax,%rax - 4387a6: 66 0f 3a 0f e3 06 palignr $0x6,%xmm3,%xmm4 - 4387ac: 0f 85 06 ff ff ff jne 4386b8 <__strcpy_ssse3+0x948> - 4387b2: 66 0f 3a 0f da 06 palignr $0x6,%xmm2,%xmm3 - 4387b8: 48 8d 49 40 lea 0x40(%rcx),%rcx - 4387bc: 66 0f 3a 0f d1 06 palignr $0x6,%xmm1,%xmm2 - 4387c2: 0f 28 cf movaps %xmm7,%xmm1 - 4387c5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 4387c9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 4387cd: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 4387d1: 0f 29 12 movaps %xmm2,(%rdx) - 4387d4: 48 8d 52 40 lea 0x40(%rdx),%rdx - 4387d8: eb 96 jmp 438770 <__strcpy_ssse3+0xa00> - 4387da: 4c 8b 09 mov (%rcx),%r9 - 4387dd: 8b 71 06 mov 0x6(%rcx),%esi - 4387e0: 4c 89 0a mov %r9,(%rdx) - 4387e3: 89 72 06 mov %esi,0x6(%rdx) - 4387e6: 48 c7 c6 0a 00 00 00 mov $0xa,%rsi - 4387ed: e9 5e 0b 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> - 4387f2: 0f 1f 40 00 nopl 0x0(%rax) - 4387f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4387fd: 00 00 00 - 438800: 0f 28 49 f9 movaps -0x7(%rcx),%xmm1 - 438804: 0f 28 51 09 movaps 0x9(%rcx),%xmm2 - 438808: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43880c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438810: 0f 28 da movaps %xmm2,%xmm3 - 438813: 48 85 c0 test %rax,%rax - 438816: 0f 85 0e 01 00 00 jne 43892a <__strcpy_ssse3+0xbba> - 43881c: 66 0f 3a 0f d1 07 palignr $0x7,%xmm1,%xmm2 - 438822: 0f 29 12 movaps %xmm2,(%rdx) - 438825: 0f 28 51 19 movaps 0x19(%rcx),%xmm2 - 438829: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43882d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438831: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438835: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438839: 0f 28 ca movaps %xmm2,%xmm1 - 43883c: 48 85 c0 test %rax,%rax - 43883f: 0f 85 e5 00 00 00 jne 43892a <__strcpy_ssse3+0xbba> - 438845: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 - 43884b: 0f 29 12 movaps %xmm2,(%rdx) - 43884e: 0f 28 51 19 movaps 0x19(%rcx),%xmm2 - 438852: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438856: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43885a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43885e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438862: 0f 28 da movaps %xmm2,%xmm3 - 438865: 48 85 c0 test %rax,%rax - 438868: 0f 85 bc 00 00 00 jne 43892a <__strcpy_ssse3+0xbba> - 43886e: 66 0f 3a 0f d1 07 palignr $0x7,%xmm1,%xmm2 - 438874: 0f 29 12 movaps %xmm2,(%rdx) - 438877: 0f 28 51 19 movaps 0x19(%rcx),%xmm2 - 43887b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43887f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438883: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438887: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43888b: 48 85 c0 test %rax,%rax - 43888e: 0f 85 96 00 00 00 jne 43892a <__strcpy_ssse3+0xbba> - 438894: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 - 43889a: 0f 29 12 movaps %xmm2,(%rdx) - 43889d: 48 8d 49 19 lea 0x19(%rcx),%rcx - 4388a1: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4388a5: 48 89 c8 mov %rcx,%rax - 4388a8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 4388ac: 48 29 c8 sub %rcx,%rax - 4388af: 48 8d 49 f7 lea -0x9(%rcx),%rcx - 4388b3: 48 29 c2 sub %rax,%rdx - 4388b6: 0f 28 49 f9 movaps -0x7(%rcx),%xmm1 - 4388ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4388c0: 0f 28 51 09 movaps 0x9(%rcx),%xmm2 - 4388c4: 0f 28 59 19 movaps 0x19(%rcx),%xmm3 - 4388c8: 0f 28 f3 movaps %xmm3,%xmm6 - 4388cb: 0f 28 61 29 movaps 0x29(%rcx),%xmm4 - 4388cf: 0f 28 fc movaps %xmm4,%xmm7 - 4388d2: 0f 28 69 39 movaps 0x39(%rcx),%xmm5 - 4388d6: 66 0f da f2 pminub %xmm2,%xmm6 - 4388da: 66 0f da fd pminub %xmm5,%xmm7 - 4388de: 66 0f da fe pminub %xmm6,%xmm7 - 4388e2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 4388e6: 66 0f d7 c7 pmovmskb %xmm7,%eax - 4388ea: 0f 28 fd movaps %xmm5,%xmm7 - 4388ed: 66 0f 3a 0f ec 07 palignr $0x7,%xmm4,%xmm5 - 4388f3: 48 85 c0 test %rax,%rax - 4388f6: 66 0f 3a 0f e3 07 palignr $0x7,%xmm3,%xmm4 - 4388fc: 0f 85 06 ff ff ff jne 438808 <__strcpy_ssse3+0xa98> - 438902: 66 0f 3a 0f da 07 palignr $0x7,%xmm2,%xmm3 - 438908: 48 8d 49 40 lea 0x40(%rcx),%rcx - 43890c: 66 0f 3a 0f d1 07 palignr $0x7,%xmm1,%xmm2 - 438912: 0f 28 cf movaps %xmm7,%xmm1 - 438915: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 438919: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 43891d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 438921: 0f 29 12 movaps %xmm2,(%rdx) - 438924: 48 8d 52 40 lea 0x40(%rdx),%rdx - 438928: eb 96 jmp 4388c0 <__strcpy_ssse3+0xb50> - 43892a: 4c 8b 09 mov (%rcx),%r9 - 43892d: 8b 71 05 mov 0x5(%rcx),%esi - 438930: 4c 89 0a mov %r9,(%rdx) - 438933: 89 72 05 mov %esi,0x5(%rdx) - 438936: 48 c7 c6 09 00 00 00 mov $0x9,%rsi - 43893d: e9 0e 0a 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> - 438942: 0f 1f 40 00 nopl 0x0(%rax) - 438946: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43894d: 00 00 00 - 438950: 0f 28 49 f8 movaps -0x8(%rcx),%xmm1 - 438954: 0f 28 51 08 movaps 0x8(%rcx),%xmm2 - 438958: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43895c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438960: 0f 28 da movaps %xmm2,%xmm3 - 438963: 48 85 c0 test %rax,%rax - 438966: 0f 85 0e 01 00 00 jne 438a7a <__strcpy_ssse3+0xd0a> - 43896c: 66 0f 3a 0f d1 08 palignr $0x8,%xmm1,%xmm2 - 438972: 0f 29 12 movaps %xmm2,(%rdx) - 438975: 0f 28 51 18 movaps 0x18(%rcx),%xmm2 - 438979: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43897d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438981: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438985: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438989: 0f 28 ca movaps %xmm2,%xmm1 - 43898c: 48 85 c0 test %rax,%rax - 43898f: 0f 85 e5 00 00 00 jne 438a7a <__strcpy_ssse3+0xd0a> - 438995: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 - 43899b: 0f 29 12 movaps %xmm2,(%rdx) - 43899e: 0f 28 51 18 movaps 0x18(%rcx),%xmm2 - 4389a2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4389a6: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4389aa: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4389ae: 48 8d 49 10 lea 0x10(%rcx),%rcx - 4389b2: 0f 28 da movaps %xmm2,%xmm3 - 4389b5: 48 85 c0 test %rax,%rax - 4389b8: 0f 85 bc 00 00 00 jne 438a7a <__strcpy_ssse3+0xd0a> - 4389be: 66 0f 3a 0f d1 08 palignr $0x8,%xmm1,%xmm2 - 4389c4: 0f 29 12 movaps %xmm2,(%rdx) - 4389c7: 0f 28 51 18 movaps 0x18(%rcx),%xmm2 - 4389cb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4389cf: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4389d3: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4389d7: 48 8d 49 10 lea 0x10(%rcx),%rcx - 4389db: 48 85 c0 test %rax,%rax - 4389de: 0f 85 96 00 00 00 jne 438a7a <__strcpy_ssse3+0xd0a> - 4389e4: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 - 4389ea: 0f 29 12 movaps %xmm2,(%rdx) - 4389ed: 48 8d 49 18 lea 0x18(%rcx),%rcx - 4389f1: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4389f5: 48 89 c8 mov %rcx,%rax - 4389f8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 4389fc: 48 29 c8 sub %rcx,%rax - 4389ff: 48 8d 49 f8 lea -0x8(%rcx),%rcx - 438a03: 48 29 c2 sub %rax,%rdx - 438a06: 0f 28 49 f8 movaps -0x8(%rcx),%xmm1 - 438a0a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 438a10: 0f 28 51 08 movaps 0x8(%rcx),%xmm2 - 438a14: 0f 28 59 18 movaps 0x18(%rcx),%xmm3 - 438a18: 0f 28 f3 movaps %xmm3,%xmm6 - 438a1b: 0f 28 61 28 movaps 0x28(%rcx),%xmm4 - 438a1f: 0f 28 fc movaps %xmm4,%xmm7 - 438a22: 0f 28 69 38 movaps 0x38(%rcx),%xmm5 - 438a26: 66 0f da f2 pminub %xmm2,%xmm6 - 438a2a: 66 0f da fd pminub %xmm5,%xmm7 - 438a2e: 66 0f da fe pminub %xmm6,%xmm7 - 438a32: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 438a36: 66 0f d7 c7 pmovmskb %xmm7,%eax - 438a3a: 0f 28 fd movaps %xmm5,%xmm7 - 438a3d: 66 0f 3a 0f ec 08 palignr $0x8,%xmm4,%xmm5 - 438a43: 48 85 c0 test %rax,%rax - 438a46: 66 0f 3a 0f e3 08 palignr $0x8,%xmm3,%xmm4 - 438a4c: 0f 85 06 ff ff ff jne 438958 <__strcpy_ssse3+0xbe8> - 438a52: 66 0f 3a 0f da 08 palignr $0x8,%xmm2,%xmm3 - 438a58: 48 8d 49 40 lea 0x40(%rcx),%rcx - 438a5c: 66 0f 3a 0f d1 08 palignr $0x8,%xmm1,%xmm2 - 438a62: 0f 28 cf movaps %xmm7,%xmm1 - 438a65: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 438a69: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 438a6d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 438a71: 0f 29 12 movaps %xmm2,(%rdx) - 438a74: 48 8d 52 40 lea 0x40(%rdx),%rdx - 438a78: eb 96 jmp 438a10 <__strcpy_ssse3+0xca0> - 438a7a: 4c 8b 09 mov (%rcx),%r9 - 438a7d: 48 c7 c6 08 00 00 00 mov $0x8,%rsi - 438a84: 4c 89 0a mov %r9,(%rdx) - 438a87: e9 c4 08 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> - 438a8c: 0f 1f 40 00 nopl 0x0(%rax) - 438a90: 0f 28 49 f7 movaps -0x9(%rcx),%xmm1 - 438a94: 0f 28 51 07 movaps 0x7(%rcx),%xmm2 - 438a98: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438a9c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438aa0: 0f 28 da movaps %xmm2,%xmm3 - 438aa3: 48 85 c0 test %rax,%rax - 438aa6: 0f 85 0e 01 00 00 jne 438bba <__strcpy_ssse3+0xe4a> - 438aac: 66 0f 3a 0f d1 09 palignr $0x9,%xmm1,%xmm2 - 438ab2: 0f 29 12 movaps %xmm2,(%rdx) - 438ab5: 0f 28 51 17 movaps 0x17(%rcx),%xmm2 - 438ab9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438abd: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438ac1: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438ac5: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438ac9: 0f 28 ca movaps %xmm2,%xmm1 - 438acc: 48 85 c0 test %rax,%rax - 438acf: 0f 85 e5 00 00 00 jne 438bba <__strcpy_ssse3+0xe4a> - 438ad5: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 - 438adb: 0f 29 12 movaps %xmm2,(%rdx) - 438ade: 0f 28 51 17 movaps 0x17(%rcx),%xmm2 - 438ae2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438ae6: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438aea: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438aee: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438af2: 0f 28 da movaps %xmm2,%xmm3 - 438af5: 48 85 c0 test %rax,%rax - 438af8: 0f 85 bc 00 00 00 jne 438bba <__strcpy_ssse3+0xe4a> - 438afe: 66 0f 3a 0f d1 09 palignr $0x9,%xmm1,%xmm2 - 438b04: 0f 29 12 movaps %xmm2,(%rdx) - 438b07: 0f 28 51 17 movaps 0x17(%rcx),%xmm2 - 438b0b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438b0f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438b13: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438b17: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438b1b: 48 85 c0 test %rax,%rax - 438b1e: 0f 85 96 00 00 00 jne 438bba <__strcpy_ssse3+0xe4a> - 438b24: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 - 438b2a: 0f 29 12 movaps %xmm2,(%rdx) - 438b2d: 48 8d 49 17 lea 0x17(%rcx),%rcx - 438b31: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438b35: 48 89 c8 mov %rcx,%rax - 438b38: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 438b3c: 48 29 c8 sub %rcx,%rax - 438b3f: 48 8d 49 f9 lea -0x7(%rcx),%rcx - 438b43: 48 29 c2 sub %rax,%rdx - 438b46: 0f 28 49 f7 movaps -0x9(%rcx),%xmm1 - 438b4a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 438b50: 0f 28 51 07 movaps 0x7(%rcx),%xmm2 - 438b54: 0f 28 59 17 movaps 0x17(%rcx),%xmm3 - 438b58: 0f 28 f3 movaps %xmm3,%xmm6 - 438b5b: 0f 28 61 27 movaps 0x27(%rcx),%xmm4 - 438b5f: 0f 28 fc movaps %xmm4,%xmm7 - 438b62: 0f 28 69 37 movaps 0x37(%rcx),%xmm5 - 438b66: 66 0f da f2 pminub %xmm2,%xmm6 - 438b6a: 66 0f da fd pminub %xmm5,%xmm7 - 438b6e: 66 0f da fe pminub %xmm6,%xmm7 - 438b72: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 438b76: 66 0f d7 c7 pmovmskb %xmm7,%eax - 438b7a: 0f 28 fd movaps %xmm5,%xmm7 - 438b7d: 66 0f 3a 0f ec 09 palignr $0x9,%xmm4,%xmm5 - 438b83: 48 85 c0 test %rax,%rax - 438b86: 66 0f 3a 0f e3 09 palignr $0x9,%xmm3,%xmm4 - 438b8c: 0f 85 06 ff ff ff jne 438a98 <__strcpy_ssse3+0xd28> - 438b92: 66 0f 3a 0f da 09 palignr $0x9,%xmm2,%xmm3 - 438b98: 48 8d 49 40 lea 0x40(%rcx),%rcx - 438b9c: 66 0f 3a 0f d1 09 palignr $0x9,%xmm1,%xmm2 - 438ba2: 0f 28 cf movaps %xmm7,%xmm1 - 438ba5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 438ba9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 438bad: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 438bb1: 0f 29 12 movaps %xmm2,(%rdx) - 438bb4: 48 8d 52 40 lea 0x40(%rdx),%rdx - 438bb8: eb 96 jmp 438b50 <__strcpy_ssse3+0xde0> - 438bba: 4c 8b 49 ff mov -0x1(%rcx),%r9 - 438bbe: 48 c7 c6 07 00 00 00 mov $0x7,%rsi - 438bc5: 4c 89 4a ff mov %r9,-0x1(%rdx) - 438bc9: e9 82 07 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> - 438bce: 66 90 xchg %ax,%ax - 438bd0: 0f 28 49 f6 movaps -0xa(%rcx),%xmm1 - 438bd4: 0f 28 51 06 movaps 0x6(%rcx),%xmm2 - 438bd8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438bdc: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438be0: 0f 28 da movaps %xmm2,%xmm3 - 438be3: 48 85 c0 test %rax,%rax - 438be6: 0f 85 0e 01 00 00 jne 438cfa <__strcpy_ssse3+0xf8a> - 438bec: 66 0f 3a 0f d1 0a palignr $0xa,%xmm1,%xmm2 - 438bf2: 0f 29 12 movaps %xmm2,(%rdx) - 438bf5: 0f 28 51 16 movaps 0x16(%rcx),%xmm2 - 438bf9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438bfd: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438c01: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438c05: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438c09: 0f 28 ca movaps %xmm2,%xmm1 - 438c0c: 48 85 c0 test %rax,%rax - 438c0f: 0f 85 e5 00 00 00 jne 438cfa <__strcpy_ssse3+0xf8a> - 438c15: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 - 438c1b: 0f 29 12 movaps %xmm2,(%rdx) - 438c1e: 0f 28 51 16 movaps 0x16(%rcx),%xmm2 - 438c22: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438c26: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438c2a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438c2e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438c32: 0f 28 da movaps %xmm2,%xmm3 - 438c35: 48 85 c0 test %rax,%rax - 438c38: 0f 85 bc 00 00 00 jne 438cfa <__strcpy_ssse3+0xf8a> - 438c3e: 66 0f 3a 0f d1 0a palignr $0xa,%xmm1,%xmm2 - 438c44: 0f 29 12 movaps %xmm2,(%rdx) - 438c47: 0f 28 51 16 movaps 0x16(%rcx),%xmm2 - 438c4b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438c4f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438c53: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438c57: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438c5b: 48 85 c0 test %rax,%rax - 438c5e: 0f 85 96 00 00 00 jne 438cfa <__strcpy_ssse3+0xf8a> - 438c64: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 - 438c6a: 0f 29 12 movaps %xmm2,(%rdx) - 438c6d: 48 8d 49 16 lea 0x16(%rcx),%rcx - 438c71: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438c75: 48 89 c8 mov %rcx,%rax - 438c78: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 438c7c: 48 29 c8 sub %rcx,%rax - 438c7f: 48 8d 49 fa lea -0x6(%rcx),%rcx - 438c83: 48 29 c2 sub %rax,%rdx - 438c86: 0f 28 49 f6 movaps -0xa(%rcx),%xmm1 - 438c8a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 438c90: 0f 28 51 06 movaps 0x6(%rcx),%xmm2 - 438c94: 0f 28 59 16 movaps 0x16(%rcx),%xmm3 - 438c98: 0f 28 f3 movaps %xmm3,%xmm6 - 438c9b: 0f 28 61 26 movaps 0x26(%rcx),%xmm4 - 438c9f: 0f 28 fc movaps %xmm4,%xmm7 - 438ca2: 0f 28 69 36 movaps 0x36(%rcx),%xmm5 - 438ca6: 66 0f da f2 pminub %xmm2,%xmm6 - 438caa: 66 0f da fd pminub %xmm5,%xmm7 - 438cae: 66 0f da fe pminub %xmm6,%xmm7 - 438cb2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 438cb6: 66 0f d7 c7 pmovmskb %xmm7,%eax - 438cba: 0f 28 fd movaps %xmm5,%xmm7 - 438cbd: 66 0f 3a 0f ec 0a palignr $0xa,%xmm4,%xmm5 - 438cc3: 48 85 c0 test %rax,%rax - 438cc6: 66 0f 3a 0f e3 0a palignr $0xa,%xmm3,%xmm4 - 438ccc: 0f 85 06 ff ff ff jne 438bd8 <__strcpy_ssse3+0xe68> - 438cd2: 66 0f 3a 0f da 0a palignr $0xa,%xmm2,%xmm3 - 438cd8: 48 8d 49 40 lea 0x40(%rcx),%rcx - 438cdc: 66 0f 3a 0f d1 0a palignr $0xa,%xmm1,%xmm2 - 438ce2: 0f 28 cf movaps %xmm7,%xmm1 - 438ce5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 438ce9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 438ced: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 438cf1: 0f 29 12 movaps %xmm2,(%rdx) - 438cf4: 48 8d 52 40 lea 0x40(%rdx),%rdx - 438cf8: eb 96 jmp 438c90 <__strcpy_ssse3+0xf20> - 438cfa: 4c 8b 49 fe mov -0x2(%rcx),%r9 - 438cfe: 48 c7 c6 06 00 00 00 mov $0x6,%rsi - 438d05: 4c 89 4a fe mov %r9,-0x2(%rdx) - 438d09: e9 42 06 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> - 438d0e: 66 90 xchg %ax,%ax - 438d10: 0f 28 49 f5 movaps -0xb(%rcx),%xmm1 - 438d14: 0f 28 51 05 movaps 0x5(%rcx),%xmm2 - 438d18: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438d1c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438d20: 0f 28 da movaps %xmm2,%xmm3 - 438d23: 48 85 c0 test %rax,%rax - 438d26: 0f 85 0e 01 00 00 jne 438e3a <__strcpy_ssse3+0x10ca> - 438d2c: 66 0f 3a 0f d1 0b palignr $0xb,%xmm1,%xmm2 - 438d32: 0f 29 12 movaps %xmm2,(%rdx) - 438d35: 0f 28 51 15 movaps 0x15(%rcx),%xmm2 - 438d39: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438d3d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438d41: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438d45: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438d49: 0f 28 ca movaps %xmm2,%xmm1 - 438d4c: 48 85 c0 test %rax,%rax - 438d4f: 0f 85 e5 00 00 00 jne 438e3a <__strcpy_ssse3+0x10ca> - 438d55: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 - 438d5b: 0f 29 12 movaps %xmm2,(%rdx) - 438d5e: 0f 28 51 15 movaps 0x15(%rcx),%xmm2 - 438d62: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438d66: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438d6a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438d6e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438d72: 0f 28 da movaps %xmm2,%xmm3 - 438d75: 48 85 c0 test %rax,%rax - 438d78: 0f 85 bc 00 00 00 jne 438e3a <__strcpy_ssse3+0x10ca> - 438d7e: 66 0f 3a 0f d1 0b palignr $0xb,%xmm1,%xmm2 - 438d84: 0f 29 12 movaps %xmm2,(%rdx) - 438d87: 0f 28 51 15 movaps 0x15(%rcx),%xmm2 - 438d8b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438d8f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438d93: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438d97: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438d9b: 48 85 c0 test %rax,%rax - 438d9e: 0f 85 96 00 00 00 jne 438e3a <__strcpy_ssse3+0x10ca> - 438da4: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 - 438daa: 0f 29 12 movaps %xmm2,(%rdx) - 438dad: 48 8d 49 15 lea 0x15(%rcx),%rcx - 438db1: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438db5: 48 89 c8 mov %rcx,%rax - 438db8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 438dbc: 48 29 c8 sub %rcx,%rax - 438dbf: 48 8d 49 fb lea -0x5(%rcx),%rcx - 438dc3: 48 29 c2 sub %rax,%rdx - 438dc6: 0f 28 49 f5 movaps -0xb(%rcx),%xmm1 - 438dca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 438dd0: 0f 28 51 05 movaps 0x5(%rcx),%xmm2 - 438dd4: 0f 28 59 15 movaps 0x15(%rcx),%xmm3 - 438dd8: 0f 28 f3 movaps %xmm3,%xmm6 - 438ddb: 0f 28 61 25 movaps 0x25(%rcx),%xmm4 - 438ddf: 0f 28 fc movaps %xmm4,%xmm7 - 438de2: 0f 28 69 35 movaps 0x35(%rcx),%xmm5 - 438de6: 66 0f da f2 pminub %xmm2,%xmm6 - 438dea: 66 0f da fd pminub %xmm5,%xmm7 - 438dee: 66 0f da fe pminub %xmm6,%xmm7 - 438df2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 438df6: 66 0f d7 c7 pmovmskb %xmm7,%eax - 438dfa: 0f 28 fd movaps %xmm5,%xmm7 - 438dfd: 66 0f 3a 0f ec 0b palignr $0xb,%xmm4,%xmm5 - 438e03: 48 85 c0 test %rax,%rax - 438e06: 66 0f 3a 0f e3 0b palignr $0xb,%xmm3,%xmm4 - 438e0c: 0f 85 06 ff ff ff jne 438d18 <__strcpy_ssse3+0xfa8> - 438e12: 66 0f 3a 0f da 0b palignr $0xb,%xmm2,%xmm3 - 438e18: 48 8d 49 40 lea 0x40(%rcx),%rcx - 438e1c: 66 0f 3a 0f d1 0b palignr $0xb,%xmm1,%xmm2 - 438e22: 0f 28 cf movaps %xmm7,%xmm1 - 438e25: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 438e29: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 438e2d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 438e31: 0f 29 12 movaps %xmm2,(%rdx) - 438e34: 48 8d 52 40 lea 0x40(%rdx),%rdx - 438e38: eb 96 jmp 438dd0 <__strcpy_ssse3+0x1060> - 438e3a: 4c 8b 49 fd mov -0x3(%rcx),%r9 - 438e3e: 48 c7 c6 05 00 00 00 mov $0x5,%rsi - 438e45: 4c 89 4a fd mov %r9,-0x3(%rdx) - 438e49: e9 02 05 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> - 438e4e: 66 90 xchg %ax,%ax - 438e50: 0f 28 49 f4 movaps -0xc(%rcx),%xmm1 - 438e54: 0f 28 51 04 movaps 0x4(%rcx),%xmm2 - 438e58: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438e5c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438e60: 0f 28 da movaps %xmm2,%xmm3 - 438e63: 48 85 c0 test %rax,%rax - 438e66: 0f 85 0e 01 00 00 jne 438f7a <__strcpy_ssse3+0x120a> - 438e6c: 66 0f 3a 0f d1 0c palignr $0xc,%xmm1,%xmm2 - 438e72: 0f 29 12 movaps %xmm2,(%rdx) - 438e75: 0f 28 51 14 movaps 0x14(%rcx),%xmm2 - 438e79: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438e7d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438e81: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438e85: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438e89: 0f 28 ca movaps %xmm2,%xmm1 - 438e8c: 48 85 c0 test %rax,%rax - 438e8f: 0f 85 e5 00 00 00 jne 438f7a <__strcpy_ssse3+0x120a> - 438e95: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 - 438e9b: 0f 29 12 movaps %xmm2,(%rdx) - 438e9e: 0f 28 51 14 movaps 0x14(%rcx),%xmm2 - 438ea2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438ea6: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438eaa: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438eae: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438eb2: 0f 28 da movaps %xmm2,%xmm3 - 438eb5: 48 85 c0 test %rax,%rax - 438eb8: 0f 85 bc 00 00 00 jne 438f7a <__strcpy_ssse3+0x120a> - 438ebe: 66 0f 3a 0f d1 0c palignr $0xc,%xmm1,%xmm2 - 438ec4: 0f 29 12 movaps %xmm2,(%rdx) - 438ec7: 0f 28 51 14 movaps 0x14(%rcx),%xmm2 - 438ecb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438ecf: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438ed3: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438ed7: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438edb: 48 85 c0 test %rax,%rax - 438ede: 0f 85 96 00 00 00 jne 438f7a <__strcpy_ssse3+0x120a> - 438ee4: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 - 438eea: 0f 29 12 movaps %xmm2,(%rdx) - 438eed: 48 8d 49 14 lea 0x14(%rcx),%rcx - 438ef1: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438ef5: 48 89 c8 mov %rcx,%rax - 438ef8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 438efc: 48 29 c8 sub %rcx,%rax - 438eff: 48 8d 49 fc lea -0x4(%rcx),%rcx - 438f03: 48 29 c2 sub %rax,%rdx - 438f06: 0f 28 49 f4 movaps -0xc(%rcx),%xmm1 - 438f0a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 438f10: 0f 28 51 04 movaps 0x4(%rcx),%xmm2 - 438f14: 0f 28 59 14 movaps 0x14(%rcx),%xmm3 - 438f18: 0f 28 f3 movaps %xmm3,%xmm6 - 438f1b: 0f 28 61 24 movaps 0x24(%rcx),%xmm4 - 438f1f: 0f 28 fc movaps %xmm4,%xmm7 - 438f22: 0f 28 69 34 movaps 0x34(%rcx),%xmm5 - 438f26: 66 0f da f2 pminub %xmm2,%xmm6 - 438f2a: 66 0f da fd pminub %xmm5,%xmm7 - 438f2e: 66 0f da fe pminub %xmm6,%xmm7 - 438f32: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 438f36: 66 0f d7 c7 pmovmskb %xmm7,%eax - 438f3a: 0f 28 fd movaps %xmm5,%xmm7 - 438f3d: 66 0f 3a 0f ec 0c palignr $0xc,%xmm4,%xmm5 - 438f43: 48 85 c0 test %rax,%rax - 438f46: 66 0f 3a 0f e3 0c palignr $0xc,%xmm3,%xmm4 - 438f4c: 0f 85 06 ff ff ff jne 438e58 <__strcpy_ssse3+0x10e8> - 438f52: 66 0f 3a 0f da 0c palignr $0xc,%xmm2,%xmm3 - 438f58: 48 8d 49 40 lea 0x40(%rcx),%rcx - 438f5c: 66 0f 3a 0f d1 0c palignr $0xc,%xmm1,%xmm2 - 438f62: 0f 28 cf movaps %xmm7,%xmm1 - 438f65: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 438f69: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 438f6d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 438f71: 0f 29 12 movaps %xmm2,(%rdx) - 438f74: 48 8d 52 40 lea 0x40(%rdx),%rdx - 438f78: eb 96 jmp 438f10 <__strcpy_ssse3+0x11a0> - 438f7a: 44 8b 09 mov (%rcx),%r9d - 438f7d: 48 c7 c6 04 00 00 00 mov $0x4,%rsi - 438f84: 44 89 0a mov %r9d,(%rdx) - 438f87: e9 c4 03 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> - 438f8c: 0f 1f 40 00 nopl 0x0(%rax) - 438f90: 0f 28 49 f3 movaps -0xd(%rcx),%xmm1 - 438f94: 0f 28 51 03 movaps 0x3(%rcx),%xmm2 - 438f98: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438f9c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438fa0: 0f 28 da movaps %xmm2,%xmm3 - 438fa3: 48 85 c0 test %rax,%rax - 438fa6: 0f 85 0e 01 00 00 jne 4390ba <__strcpy_ssse3+0x134a> - 438fac: 66 0f 3a 0f d1 0d palignr $0xd,%xmm1,%xmm2 - 438fb2: 0f 29 12 movaps %xmm2,(%rdx) - 438fb5: 0f 28 51 13 movaps 0x13(%rcx),%xmm2 - 438fb9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438fbd: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438fc1: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438fc5: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438fc9: 0f 28 ca movaps %xmm2,%xmm1 - 438fcc: 48 85 c0 test %rax,%rax - 438fcf: 0f 85 e5 00 00 00 jne 4390ba <__strcpy_ssse3+0x134a> - 438fd5: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 - 438fdb: 0f 29 12 movaps %xmm2,(%rdx) - 438fde: 0f 28 51 13 movaps 0x13(%rcx),%xmm2 - 438fe2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 438fe6: 48 8d 52 10 lea 0x10(%rdx),%rdx - 438fea: 66 0f d7 c0 pmovmskb %xmm0,%eax - 438fee: 48 8d 49 10 lea 0x10(%rcx),%rcx - 438ff2: 0f 28 da movaps %xmm2,%xmm3 - 438ff5: 48 85 c0 test %rax,%rax - 438ff8: 0f 85 bc 00 00 00 jne 4390ba <__strcpy_ssse3+0x134a> - 438ffe: 66 0f 3a 0f d1 0d palignr $0xd,%xmm1,%xmm2 - 439004: 0f 29 12 movaps %xmm2,(%rdx) - 439007: 0f 28 51 13 movaps 0x13(%rcx),%xmm2 - 43900b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43900f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439013: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439017: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43901b: 48 85 c0 test %rax,%rax - 43901e: 0f 85 96 00 00 00 jne 4390ba <__strcpy_ssse3+0x134a> - 439024: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 - 43902a: 0f 29 12 movaps %xmm2,(%rdx) - 43902d: 48 8d 49 13 lea 0x13(%rcx),%rcx - 439031: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439035: 48 89 c8 mov %rcx,%rax - 439038: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43903c: 48 29 c8 sub %rcx,%rax - 43903f: 48 8d 49 fd lea -0x3(%rcx),%rcx - 439043: 48 29 c2 sub %rax,%rdx - 439046: 0f 28 49 f3 movaps -0xd(%rcx),%xmm1 - 43904a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 439050: 0f 28 51 03 movaps 0x3(%rcx),%xmm2 - 439054: 0f 28 59 13 movaps 0x13(%rcx),%xmm3 - 439058: 0f 28 f3 movaps %xmm3,%xmm6 - 43905b: 0f 28 61 23 movaps 0x23(%rcx),%xmm4 - 43905f: 0f 28 fc movaps %xmm4,%xmm7 - 439062: 0f 28 69 33 movaps 0x33(%rcx),%xmm5 - 439066: 66 0f da f2 pminub %xmm2,%xmm6 - 43906a: 66 0f da fd pminub %xmm5,%xmm7 - 43906e: 66 0f da fe pminub %xmm6,%xmm7 - 439072: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 439076: 66 0f d7 c7 pmovmskb %xmm7,%eax - 43907a: 0f 28 fd movaps %xmm5,%xmm7 - 43907d: 66 0f 3a 0f ec 0d palignr $0xd,%xmm4,%xmm5 - 439083: 48 85 c0 test %rax,%rax - 439086: 66 0f 3a 0f e3 0d palignr $0xd,%xmm3,%xmm4 - 43908c: 0f 85 06 ff ff ff jne 438f98 <__strcpy_ssse3+0x1228> - 439092: 66 0f 3a 0f da 0d palignr $0xd,%xmm2,%xmm3 - 439098: 48 8d 49 40 lea 0x40(%rcx),%rcx - 43909c: 66 0f 3a 0f d1 0d palignr $0xd,%xmm1,%xmm2 - 4390a2: 0f 28 cf movaps %xmm7,%xmm1 - 4390a5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 4390a9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 4390ad: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 4390b1: 0f 29 12 movaps %xmm2,(%rdx) - 4390b4: 48 8d 52 40 lea 0x40(%rdx),%rdx - 4390b8: eb 96 jmp 439050 <__strcpy_ssse3+0x12e0> - 4390ba: 44 8b 49 ff mov -0x1(%rcx),%r9d - 4390be: 48 c7 c6 03 00 00 00 mov $0x3,%rsi - 4390c5: 44 89 4a ff mov %r9d,-0x1(%rdx) - 4390c9: e9 82 02 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> - 4390ce: 66 90 xchg %ax,%ax - 4390d0: 0f 28 49 f2 movaps -0xe(%rcx),%xmm1 - 4390d4: 0f 28 51 02 movaps 0x2(%rcx),%xmm2 - 4390d8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4390dc: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4390e0: 0f 28 da movaps %xmm2,%xmm3 - 4390e3: 48 85 c0 test %rax,%rax - 4390e6: 0f 85 0e 01 00 00 jne 4391fa <__strcpy_ssse3+0x148a> - 4390ec: 66 0f 3a 0f d1 0e palignr $0xe,%xmm1,%xmm2 - 4390f2: 0f 29 12 movaps %xmm2,(%rdx) - 4390f5: 0f 28 51 12 movaps 0x12(%rcx),%xmm2 - 4390f9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4390fd: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439101: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439105: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439109: 0f 28 ca movaps %xmm2,%xmm1 - 43910c: 48 85 c0 test %rax,%rax - 43910f: 0f 85 e5 00 00 00 jne 4391fa <__strcpy_ssse3+0x148a> - 439115: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 - 43911b: 0f 29 12 movaps %xmm2,(%rdx) - 43911e: 0f 28 51 12 movaps 0x12(%rcx),%xmm2 - 439122: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439126: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43912a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43912e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439132: 0f 28 da movaps %xmm2,%xmm3 - 439135: 48 85 c0 test %rax,%rax - 439138: 0f 85 bc 00 00 00 jne 4391fa <__strcpy_ssse3+0x148a> - 43913e: 66 0f 3a 0f d1 0e palignr $0xe,%xmm1,%xmm2 - 439144: 0f 29 12 movaps %xmm2,(%rdx) - 439147: 0f 28 51 12 movaps 0x12(%rcx),%xmm2 - 43914b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43914f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439153: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439157: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43915b: 48 85 c0 test %rax,%rax - 43915e: 0f 85 96 00 00 00 jne 4391fa <__strcpy_ssse3+0x148a> - 439164: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 - 43916a: 0f 29 12 movaps %xmm2,(%rdx) - 43916d: 48 8d 49 12 lea 0x12(%rcx),%rcx - 439171: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439175: 48 89 c8 mov %rcx,%rax - 439178: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43917c: 48 29 c8 sub %rcx,%rax - 43917f: 48 8d 49 fe lea -0x2(%rcx),%rcx - 439183: 48 29 c2 sub %rax,%rdx - 439186: 0f 28 49 f2 movaps -0xe(%rcx),%xmm1 - 43918a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 439190: 0f 28 51 02 movaps 0x2(%rcx),%xmm2 - 439194: 0f 28 59 12 movaps 0x12(%rcx),%xmm3 - 439198: 0f 28 f3 movaps %xmm3,%xmm6 - 43919b: 0f 28 61 22 movaps 0x22(%rcx),%xmm4 - 43919f: 0f 28 fc movaps %xmm4,%xmm7 - 4391a2: 0f 28 69 32 movaps 0x32(%rcx),%xmm5 - 4391a6: 66 0f da f2 pminub %xmm2,%xmm6 - 4391aa: 66 0f da fd pminub %xmm5,%xmm7 - 4391ae: 66 0f da fe pminub %xmm6,%xmm7 - 4391b2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 4391b6: 66 0f d7 c7 pmovmskb %xmm7,%eax - 4391ba: 0f 28 fd movaps %xmm5,%xmm7 - 4391bd: 66 0f 3a 0f ec 0e palignr $0xe,%xmm4,%xmm5 - 4391c3: 48 85 c0 test %rax,%rax - 4391c6: 66 0f 3a 0f e3 0e palignr $0xe,%xmm3,%xmm4 - 4391cc: 0f 85 06 ff ff ff jne 4390d8 <__strcpy_ssse3+0x1368> - 4391d2: 66 0f 3a 0f da 0e palignr $0xe,%xmm2,%xmm3 - 4391d8: 48 8d 49 40 lea 0x40(%rcx),%rcx - 4391dc: 66 0f 3a 0f d1 0e palignr $0xe,%xmm1,%xmm2 - 4391e2: 0f 28 cf movaps %xmm7,%xmm1 - 4391e5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 4391e9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 4391ed: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 4391f1: 0f 29 12 movaps %xmm2,(%rdx) - 4391f4: 48 8d 52 40 lea 0x40(%rdx),%rdx - 4391f8: eb 96 jmp 439190 <__strcpy_ssse3+0x1420> - 4391fa: 44 8b 49 fe mov -0x2(%rcx),%r9d - 4391fe: 48 c7 c6 02 00 00 00 mov $0x2,%rsi - 439205: 44 89 4a fe mov %r9d,-0x2(%rdx) - 439209: e9 42 01 00 00 jmpq 439350 <__strcpy_ssse3+0x15e0> - 43920e: 66 90 xchg %ax,%ax - 439210: 0f 28 49 f1 movaps -0xf(%rcx),%xmm1 - 439214: 0f 28 51 01 movaps 0x1(%rcx),%xmm2 - 439218: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43921c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439220: 0f 28 da movaps %xmm2,%xmm3 - 439223: 48 85 c0 test %rax,%rax - 439226: 0f 85 0e 01 00 00 jne 43933a <__strcpy_ssse3+0x15ca> - 43922c: 66 0f 3a 0f d1 0f palignr $0xf,%xmm1,%xmm2 - 439232: 0f 29 12 movaps %xmm2,(%rdx) - 439235: 0f 28 51 11 movaps 0x11(%rcx),%xmm2 - 439239: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43923d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439241: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439245: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439249: 0f 28 ca movaps %xmm2,%xmm1 - 43924c: 48 85 c0 test %rax,%rax - 43924f: 0f 85 e5 00 00 00 jne 43933a <__strcpy_ssse3+0x15ca> - 439255: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 - 43925b: 0f 29 12 movaps %xmm2,(%rdx) - 43925e: 0f 28 51 11 movaps 0x11(%rcx),%xmm2 - 439262: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439266: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43926a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43926e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439272: 0f 28 da movaps %xmm2,%xmm3 - 439275: 48 85 c0 test %rax,%rax - 439278: 0f 85 bc 00 00 00 jne 43933a <__strcpy_ssse3+0x15ca> - 43927e: 66 0f 3a 0f d1 0f palignr $0xf,%xmm1,%xmm2 - 439284: 0f 29 12 movaps %xmm2,(%rdx) - 439287: 0f 28 51 11 movaps 0x11(%rcx),%xmm2 - 43928b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43928f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439293: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439297: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43929b: 48 85 c0 test %rax,%rax - 43929e: 0f 85 96 00 00 00 jne 43933a <__strcpy_ssse3+0x15ca> - 4392a4: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 - 4392aa: 0f 29 12 movaps %xmm2,(%rdx) - 4392ad: 48 8d 49 11 lea 0x11(%rcx),%rcx - 4392b1: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4392b5: 48 89 c8 mov %rcx,%rax - 4392b8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 4392bc: 48 29 c8 sub %rcx,%rax - 4392bf: 48 8d 49 ff lea -0x1(%rcx),%rcx - 4392c3: 48 29 c2 sub %rax,%rdx - 4392c6: 0f 28 49 f1 movaps -0xf(%rcx),%xmm1 - 4392ca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4392d0: 0f 28 51 01 movaps 0x1(%rcx),%xmm2 - 4392d4: 0f 28 59 11 movaps 0x11(%rcx),%xmm3 - 4392d8: 0f 28 f3 movaps %xmm3,%xmm6 - 4392db: 0f 28 61 21 movaps 0x21(%rcx),%xmm4 - 4392df: 0f 28 fc movaps %xmm4,%xmm7 - 4392e2: 0f 28 69 31 movaps 0x31(%rcx),%xmm5 - 4392e6: 66 0f da f2 pminub %xmm2,%xmm6 - 4392ea: 66 0f da fd pminub %xmm5,%xmm7 - 4392ee: 66 0f da fe pminub %xmm6,%xmm7 - 4392f2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 4392f6: 66 0f d7 c7 pmovmskb %xmm7,%eax - 4392fa: 0f 28 fd movaps %xmm5,%xmm7 - 4392fd: 66 0f 3a 0f ec 0f palignr $0xf,%xmm4,%xmm5 - 439303: 48 85 c0 test %rax,%rax - 439306: 66 0f 3a 0f e3 0f palignr $0xf,%xmm3,%xmm4 - 43930c: 0f 85 06 ff ff ff jne 439218 <__strcpy_ssse3+0x14a8> - 439312: 66 0f 3a 0f da 0f palignr $0xf,%xmm2,%xmm3 - 439318: 48 8d 49 40 lea 0x40(%rcx),%rcx - 43931c: 66 0f 3a 0f d1 0f palignr $0xf,%xmm1,%xmm2 - 439322: 0f 28 cf movaps %xmm7,%xmm1 - 439325: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 439329: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 43932d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 439331: 0f 29 12 movaps %xmm2,(%rdx) - 439334: 48 8d 52 40 lea 0x40(%rdx),%rdx - 439338: eb 96 jmp 4392d0 <__strcpy_ssse3+0x1560> - 43933a: 44 8b 49 fd mov -0x3(%rcx),%r9d - 43933e: 48 c7 c6 01 00 00 00 mov $0x1,%rsi - 439345: 44 89 4a fd mov %r9d,-0x3(%rdx) - 439349: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 439350: 48 01 f2 add %rsi,%rdx - 439353: 48 01 f1 add %rsi,%rcx - 439356: 84 c0 test %al,%al - 439358: 74 56 je 4393b0 <__strcpy_ssse3+0x1640> - 43935a: a8 01 test $0x1,%al - 43935c: 0f 85 ae 00 00 00 jne 439410 <__strcpy_ssse3+0x16a0> - 439362: a8 02 test $0x2,%al - 439364: 0f 85 b6 00 00 00 jne 439420 <__strcpy_ssse3+0x16b0> - 43936a: a8 04 test $0x4,%al - 43936c: 0f 85 be 00 00 00 jne 439430 <__strcpy_ssse3+0x16c0> - 439372: a8 08 test $0x8,%al - 439374: 0f 85 c6 00 00 00 jne 439440 <__strcpy_ssse3+0x16d0> - 43937a: a8 10 test $0x10,%al - 43937c: 0f 85 ce 00 00 00 jne 439450 <__strcpy_ssse3+0x16e0> - 439382: a8 20 test $0x20,%al - 439384: 0f 85 d6 00 00 00 jne 439460 <__strcpy_ssse3+0x16f0> - 43938a: a8 40 test $0x40,%al - 43938c: 0f 85 de 00 00 00 jne 439470 <__strcpy_ssse3+0x1700> - 439392: 0f 1f 40 00 nopl 0x0(%rax) - 439396: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43939d: 00 00 00 - 4393a0: 48 8b 01 mov (%rcx),%rax - 4393a3: 48 89 02 mov %rax,(%rdx) - 4393a6: 48 89 f8 mov %rdi,%rax - 4393a9: c3 retq - 4393aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4393b0: f6 c4 01 test $0x1,%ah - 4393b3: 0f 85 c7 00 00 00 jne 439480 <__strcpy_ssse3+0x1710> - 4393b9: f6 c4 02 test $0x2,%ah - 4393bc: 0f 85 ce 00 00 00 jne 439490 <__strcpy_ssse3+0x1720> - 4393c2: f6 c4 04 test $0x4,%ah - 4393c5: 0f 85 d5 00 00 00 jne 4394a0 <__strcpy_ssse3+0x1730> - 4393cb: f6 c4 08 test $0x8,%ah - 4393ce: 0f 85 dc 00 00 00 jne 4394b0 <__strcpy_ssse3+0x1740> - 4393d4: f6 c4 10 test $0x10,%ah - 4393d7: 0f 85 e3 00 00 00 jne 4394c0 <__strcpy_ssse3+0x1750> - 4393dd: f6 c4 20 test $0x20,%ah - 4393e0: 0f 85 fa 00 00 00 jne 4394e0 <__strcpy_ssse3+0x1770> - 4393e6: f6 c4 40 test $0x40,%ah - 4393e9: 0f 85 11 01 00 00 jne 439500 <__strcpy_ssse3+0x1790> - 4393ef: 90 nop - 4393f0: 48 8b 01 mov (%rcx),%rax - 4393f3: 48 89 02 mov %rax,(%rdx) - 4393f6: 48 8b 41 08 mov 0x8(%rcx),%rax - 4393fa: 48 89 42 08 mov %rax,0x8(%rdx) - 4393fe: 48 89 f8 mov %rdi,%rax - 439401: c3 retq - 439402: 0f 1f 40 00 nopl 0x0(%rax) - 439406: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43940d: 00 00 00 - 439410: 8a 01 mov (%rcx),%al - 439412: 88 02 mov %al,(%rdx) - 439414: 48 89 f8 mov %rdi,%rax - 439417: c3 retq - 439418: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43941f: 00 - 439420: 66 8b 01 mov (%rcx),%ax - 439423: 66 89 02 mov %ax,(%rdx) - 439426: 48 89 f8 mov %rdi,%rax - 439429: c3 retq - 43942a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 439430: 66 8b 01 mov (%rcx),%ax - 439433: 66 89 02 mov %ax,(%rdx) - 439436: 8a 41 02 mov 0x2(%rcx),%al - 439439: 88 42 02 mov %al,0x2(%rdx) - 43943c: 48 89 f8 mov %rdi,%rax - 43943f: c3 retq - 439440: 8b 01 mov (%rcx),%eax - 439442: 89 02 mov %eax,(%rdx) - 439444: 48 89 f8 mov %rdi,%rax - 439447: c3 retq - 439448: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43944f: 00 - 439450: 8b 01 mov (%rcx),%eax - 439452: 89 02 mov %eax,(%rdx) - 439454: 8a 41 04 mov 0x4(%rcx),%al - 439457: 88 42 04 mov %al,0x4(%rdx) - 43945a: 48 89 f8 mov %rdi,%rax - 43945d: c3 retq - 43945e: 66 90 xchg %ax,%ax - 439460: 8b 01 mov (%rcx),%eax - 439462: 89 02 mov %eax,(%rdx) - 439464: 66 8b 41 04 mov 0x4(%rcx),%ax - 439468: 66 89 42 04 mov %ax,0x4(%rdx) - 43946c: 48 89 f8 mov %rdi,%rax - 43946f: c3 retq - 439470: 8b 01 mov (%rcx),%eax - 439472: 89 02 mov %eax,(%rdx) - 439474: 8b 41 03 mov 0x3(%rcx),%eax - 439477: 89 42 03 mov %eax,0x3(%rdx) - 43947a: 48 89 f8 mov %rdi,%rax - 43947d: c3 retq - 43947e: 66 90 xchg %ax,%ax - 439480: 48 8b 01 mov (%rcx),%rax - 439483: 48 89 02 mov %rax,(%rdx) - 439486: 8b 41 05 mov 0x5(%rcx),%eax - 439489: 89 42 05 mov %eax,0x5(%rdx) - 43948c: 48 89 f8 mov %rdi,%rax - 43948f: c3 retq - 439490: 48 8b 01 mov (%rcx),%rax - 439493: 48 89 02 mov %rax,(%rdx) - 439496: 8b 41 06 mov 0x6(%rcx),%eax - 439499: 89 42 06 mov %eax,0x6(%rdx) - 43949c: 48 89 f8 mov %rdi,%rax - 43949f: c3 retq - 4394a0: 48 8b 01 mov (%rcx),%rax - 4394a3: 48 89 02 mov %rax,(%rdx) - 4394a6: 8b 41 07 mov 0x7(%rcx),%eax - 4394a9: 89 42 07 mov %eax,0x7(%rdx) - 4394ac: 48 89 f8 mov %rdi,%rax - 4394af: c3 retq - 4394b0: 48 8b 01 mov (%rcx),%rax - 4394b3: 48 89 02 mov %rax,(%rdx) - 4394b6: 8b 41 08 mov 0x8(%rcx),%eax - 4394b9: 89 42 08 mov %eax,0x8(%rdx) - 4394bc: 48 89 f8 mov %rdi,%rax - 4394bf: c3 retq - 4394c0: 48 8b 01 mov (%rcx),%rax - 4394c3: 48 89 02 mov %rax,(%rdx) - 4394c6: 48 8b 41 05 mov 0x5(%rcx),%rax - 4394ca: 48 89 42 05 mov %rax,0x5(%rdx) - 4394ce: 48 89 f8 mov %rdi,%rax - 4394d1: c3 retq - 4394d2: 0f 1f 40 00 nopl 0x0(%rax) - 4394d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4394dd: 00 00 00 - 4394e0: 48 8b 01 mov (%rcx),%rax - 4394e3: 48 89 02 mov %rax,(%rdx) - 4394e6: 48 8b 41 06 mov 0x6(%rcx),%rax - 4394ea: 48 89 42 06 mov %rax,0x6(%rdx) - 4394ee: 48 89 f8 mov %rdi,%rax - 4394f1: c3 retq - 4394f2: 0f 1f 40 00 nopl 0x0(%rax) - 4394f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4394fd: 00 00 00 - 439500: 48 8b 01 mov (%rcx),%rax - 439503: 48 89 02 mov %rax,(%rdx) - 439506: 48 8b 41 07 mov 0x7(%rcx),%rax - 43950a: 48 89 42 07 mov %rax,0x7(%rdx) - 43950e: 48 89 f8 mov %rdi,%rax - 439511: c3 retq - 439512: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 439519: 00 00 00 - 43951c: 0f 1f 40 00 nopl 0x0(%rax) - -0000000000439520 <__stpcpy_ssse3>: - 439520: 48 89 f1 mov %rsi,%rcx - 439523: 48 89 fa mov %rdi,%rdx - 439526: 80 39 00 cmpb $0x0,(%rcx) - 439529: 0f 84 91 16 00 00 je 43abc0 <__stpcpy_ssse3+0x16a0> - 43952f: 80 79 01 00 cmpb $0x0,0x1(%rcx) - 439533: 0f 84 97 16 00 00 je 43abd0 <__stpcpy_ssse3+0x16b0> - 439539: 80 79 02 00 cmpb $0x0,0x2(%rcx) - 43953d: 0f 84 9d 16 00 00 je 43abe0 <__stpcpy_ssse3+0x16c0> - 439543: 80 79 03 00 cmpb $0x0,0x3(%rcx) - 439547: 0f 84 b3 16 00 00 je 43ac00 <__stpcpy_ssse3+0x16e0> - 43954d: 80 79 04 00 cmpb $0x0,0x4(%rcx) - 439551: 0f 84 b9 16 00 00 je 43ac10 <__stpcpy_ssse3+0x16f0> - 439557: 80 79 05 00 cmpb $0x0,0x5(%rcx) - 43955b: 0f 84 bf 16 00 00 je 43ac20 <__stpcpy_ssse3+0x1700> - 439561: 80 79 06 00 cmpb $0x0,0x6(%rcx) - 439565: 0f 84 d5 16 00 00 je 43ac40 <__stpcpy_ssse3+0x1720> - 43956b: 80 79 07 00 cmpb $0x0,0x7(%rcx) - 43956f: 0f 84 db 15 00 00 je 43ab50 <__stpcpy_ssse3+0x1630> - 439575: 80 79 08 00 cmpb $0x0,0x8(%rcx) - 439579: 0f 84 d1 16 00 00 je 43ac50 <__stpcpy_ssse3+0x1730> - 43957f: 80 79 09 00 cmpb $0x0,0x9(%rcx) - 439583: 0f 84 e7 16 00 00 je 43ac70 <__stpcpy_ssse3+0x1750> - 439589: 80 79 0a 00 cmpb $0x0,0xa(%rcx) - 43958d: 0f 84 fd 16 00 00 je 43ac90 <__stpcpy_ssse3+0x1770> - 439593: 80 79 0b 00 cmpb $0x0,0xb(%rcx) - 439597: 0f 84 13 17 00 00 je 43acb0 <__stpcpy_ssse3+0x1790> - 43959d: 80 79 0c 00 cmpb $0x0,0xc(%rcx) - 4395a1: 0f 84 29 17 00 00 je 43acd0 <__stpcpy_ssse3+0x17b0> - 4395a7: 80 79 0d 00 cmpb $0x0,0xd(%rcx) - 4395ab: 0f 84 3f 17 00 00 je 43acf0 <__stpcpy_ssse3+0x17d0> - 4395b1: 80 79 0e 00 cmpb $0x0,0xe(%rcx) - 4395b5: 0f 84 55 17 00 00 je 43ad10 <__stpcpy_ssse3+0x17f0> - 4395bb: 80 79 0f 00 cmpb $0x0,0xf(%rcx) - 4395bf: 0f 84 db 15 00 00 je 43aba0 <__stpcpy_ssse3+0x1680> - 4395c5: 48 8d 71 10 lea 0x10(%rcx),%rsi - 4395c9: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 4395cd: 66 0f ef c0 pxor %xmm0,%xmm0 - 4395d1: 4c 8b 09 mov (%rcx),%r9 - 4395d4: 4c 89 0a mov %r9,(%rdx) - 4395d7: 66 0f 74 06 pcmpeqb (%rsi),%xmm0 - 4395db: 4c 8b 49 08 mov 0x8(%rcx),%r9 - 4395df: 4c 89 4a 08 mov %r9,0x8(%rdx) - 4395e3: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4395e7: 48 29 ce sub %rcx,%rsi - 4395ea: 48 85 c0 test %rax,%rax - 4395ed: 0f 85 0d 15 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> - 4395f3: 48 89 d0 mov %rdx,%rax - 4395f6: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4395fa: 48 83 e2 f0 and $0xfffffffffffffff0,%rdx - 4395fe: 48 29 d0 sub %rdx,%rax - 439601: 48 29 c1 sub %rax,%rcx - 439604: 48 89 c8 mov %rcx,%rax - 439607: 48 83 e0 0f and $0xf,%rax - 43960b: 48 c7 c6 00 00 00 00 mov $0x0,%rsi - 439612: 0f 84 8e 00 00 00 je 4396a6 <__stpcpy_ssse3+0x186> - 439618: 48 83 f8 08 cmp $0x8,%rax - 43961c: 73 41 jae 43965f <__stpcpy_ssse3+0x13f> - 43961e: 48 83 f8 01 cmp $0x1,%rax - 439622: 0f 84 f8 01 00 00 je 439820 <__stpcpy_ssse3+0x300> - 439628: 48 83 f8 02 cmp $0x2,%rax - 43962c: 0f 84 2e 03 00 00 je 439960 <__stpcpy_ssse3+0x440> - 439632: 48 83 f8 03 cmp $0x3,%rax - 439636: 0f 84 64 04 00 00 je 439aa0 <__stpcpy_ssse3+0x580> - 43963c: 48 83 f8 04 cmp $0x4,%rax - 439640: 0f 84 9a 05 00 00 je 439be0 <__stpcpy_ssse3+0x6c0> - 439646: 48 83 f8 05 cmp $0x5,%rax - 43964a: 0f 84 d0 06 00 00 je 439d20 <__stpcpy_ssse3+0x800> - 439650: 48 83 f8 06 cmp $0x6,%rax - 439654: 0f 84 06 08 00 00 je 439e60 <__stpcpy_ssse3+0x940> - 43965a: e9 51 09 00 00 jmpq 439fb0 <__stpcpy_ssse3+0xa90> - 43965f: 0f 84 9b 0a 00 00 je 43a100 <__stpcpy_ssse3+0xbe0> - 439665: 48 83 f8 09 cmp $0x9,%rax - 439669: 0f 84 d1 0b 00 00 je 43a240 <__stpcpy_ssse3+0xd20> - 43966f: 48 83 f8 0a cmp $0xa,%rax - 439673: 0f 84 07 0d 00 00 je 43a380 <__stpcpy_ssse3+0xe60> - 439679: 48 83 f8 0b cmp $0xb,%rax - 43967d: 0f 84 3d 0e 00 00 je 43a4c0 <__stpcpy_ssse3+0xfa0> - 439683: 48 83 f8 0c cmp $0xc,%rax - 439687: 0f 84 73 0f 00 00 je 43a600 <__stpcpy_ssse3+0x10e0> - 43968d: 48 83 f8 0d cmp $0xd,%rax - 439691: 0f 84 a9 10 00 00 je 43a740 <__stpcpy_ssse3+0x1220> - 439697: 48 83 f8 0e cmp $0xe,%rax - 43969b: 0f 84 df 11 00 00 je 43a880 <__stpcpy_ssse3+0x1360> - 4396a1: e9 1a 13 00 00 jmpq 43a9c0 <__stpcpy_ssse3+0x14a0> - 4396a6: 0f 28 09 movaps (%rcx),%xmm1 - 4396a9: 0f 28 51 10 movaps 0x10(%rcx),%xmm2 - 4396ad: 0f 29 0a movaps %xmm1,(%rdx) - 4396b0: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4396b4: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4396b8: 48 8d 76 10 lea 0x10(%rsi),%rsi - 4396bc: 48 85 c0 test %rax,%rax - 4396bf: 0f 85 3b 14 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> - 4396c5: 0f 28 5c 31 10 movaps 0x10(%rcx,%rsi,1),%xmm3 - 4396ca: 0f 29 14 32 movaps %xmm2,(%rdx,%rsi,1) - 4396ce: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 4396d2: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4396d6: 48 8d 76 10 lea 0x10(%rsi),%rsi - 4396da: 48 85 c0 test %rax,%rax - 4396dd: 0f 85 1d 14 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> - 4396e3: 0f 28 64 31 10 movaps 0x10(%rcx,%rsi,1),%xmm4 - 4396e8: 0f 29 1c 32 movaps %xmm3,(%rdx,%rsi,1) - 4396ec: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 - 4396f0: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4396f4: 48 8d 76 10 lea 0x10(%rsi),%rsi - 4396f8: 48 85 c0 test %rax,%rax - 4396fb: 0f 85 ff 13 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> - 439701: 0f 28 4c 31 10 movaps 0x10(%rcx,%rsi,1),%xmm1 - 439706: 0f 29 24 32 movaps %xmm4,(%rdx,%rsi,1) - 43970a: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 43970e: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439712: 48 8d 76 10 lea 0x10(%rsi),%rsi - 439716: 48 85 c0 test %rax,%rax - 439719: 0f 85 e1 13 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> - 43971f: 0f 28 54 31 10 movaps 0x10(%rcx,%rsi,1),%xmm2 - 439724: 0f 29 0c 32 movaps %xmm1,(%rdx,%rsi,1) - 439728: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43972c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439730: 48 8d 76 10 lea 0x10(%rsi),%rsi - 439734: 48 85 c0 test %rax,%rax - 439737: 0f 85 c3 13 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> - 43973d: 0f 28 5c 31 10 movaps 0x10(%rcx,%rsi,1),%xmm3 - 439742: 0f 29 14 32 movaps %xmm2,(%rdx,%rsi,1) - 439746: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 43974a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43974e: 48 8d 76 10 lea 0x10(%rsi),%rsi - 439752: 48 85 c0 test %rax,%rax - 439755: 0f 85 a5 13 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> - 43975b: 0f 29 1c 32 movaps %xmm3,(%rdx,%rsi,1) - 43975f: 48 89 c8 mov %rcx,%rax - 439762: 48 8d 4c 31 10 lea 0x10(%rcx,%rsi,1),%rcx - 439767: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43976b: 48 29 c8 sub %rcx,%rax - 43976e: 48 29 c2 sub %rax,%rdx - 439771: 48 c7 c6 c0 ff ff ff mov $0xffffffffffffffc0,%rsi - 439778: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43977f: 00 - 439780: 0f 28 11 movaps (%rcx),%xmm2 - 439783: 0f 28 e2 movaps %xmm2,%xmm4 - 439786: 0f 28 69 10 movaps 0x10(%rcx),%xmm5 - 43978a: 0f 28 59 20 movaps 0x20(%rcx),%xmm3 - 43978e: 0f 28 f3 movaps %xmm3,%xmm6 - 439791: 0f 28 79 30 movaps 0x30(%rcx),%xmm7 - 439795: 66 0f da d5 pminub %xmm5,%xmm2 - 439799: 66 0f da df pminub %xmm7,%xmm3 - 43979d: 66 0f da da pminub %xmm2,%xmm3 - 4397a1: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 - 4397a5: 66 0f d7 c3 pmovmskb %xmm3,%eax - 4397a9: 48 8d 52 40 lea 0x40(%rdx),%rdx - 4397ad: 48 8d 49 40 lea 0x40(%rcx),%rcx - 4397b1: 48 85 c0 test %rax,%rax - 4397b4: 75 12 jne 4397c8 <__stpcpy_ssse3+0x2a8> - 4397b6: 0f 29 62 c0 movaps %xmm4,-0x40(%rdx) - 4397ba: 0f 29 6a d0 movaps %xmm5,-0x30(%rdx) - 4397be: 0f 29 72 e0 movaps %xmm6,-0x20(%rdx) - 4397c2: 0f 29 7a f0 movaps %xmm7,-0x10(%rdx) - 4397c6: eb b8 jmp 439780 <__stpcpy_ssse3+0x260> - 4397c8: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 - 4397cc: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4397d0: 48 85 c0 test %rax,%rax - 4397d3: 0f 85 27 13 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> - 4397d9: 66 0f 74 c5 pcmpeqb %xmm5,%xmm0 - 4397dd: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4397e1: 0f 29 62 c0 movaps %xmm4,-0x40(%rdx) - 4397e5: 48 85 c0 test %rax,%rax - 4397e8: 48 8d 76 10 lea 0x10(%rsi),%rsi - 4397ec: 0f 85 0e 13 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> - 4397f2: 66 0f 74 c6 pcmpeqb %xmm6,%xmm0 - 4397f6: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4397fa: 0f 29 6a d0 movaps %xmm5,-0x30(%rdx) - 4397fe: 48 85 c0 test %rax,%rax - 439801: 48 8d 76 10 lea 0x10(%rsi),%rsi - 439805: 0f 85 f5 12 00 00 jne 43ab00 <__stpcpy_ssse3+0x15e0> - 43980b: 0f 29 72 e0 movaps %xmm6,-0x20(%rdx) - 43980f: 66 0f 74 c7 pcmpeqb %xmm7,%xmm0 - 439813: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439817: 48 8d 76 10 lea 0x10(%rsi),%rsi - 43981b: e9 e0 12 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> - 439820: 0f 28 49 ff movaps -0x1(%rcx),%xmm1 - 439824: 0f 28 51 0f movaps 0xf(%rcx),%xmm2 - 439828: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43982c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439830: 0f 28 da movaps %xmm2,%xmm3 - 439833: 48 85 c0 test %rax,%rax - 439836: 0f 85 0e 01 00 00 jne 43994a <__stpcpy_ssse3+0x42a> - 43983c: 66 0f 3a 0f d1 01 palignr $0x1,%xmm1,%xmm2 - 439842: 0f 29 12 movaps %xmm2,(%rdx) - 439845: 0f 28 51 1f movaps 0x1f(%rcx),%xmm2 - 439849: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43984d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439851: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439855: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439859: 0f 28 ca movaps %xmm2,%xmm1 - 43985c: 48 85 c0 test %rax,%rax - 43985f: 0f 85 e5 00 00 00 jne 43994a <__stpcpy_ssse3+0x42a> - 439865: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 - 43986b: 0f 29 12 movaps %xmm2,(%rdx) - 43986e: 0f 28 51 1f movaps 0x1f(%rcx),%xmm2 - 439872: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439876: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43987a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43987e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439882: 0f 28 da movaps %xmm2,%xmm3 - 439885: 48 85 c0 test %rax,%rax - 439888: 0f 85 bc 00 00 00 jne 43994a <__stpcpy_ssse3+0x42a> - 43988e: 66 0f 3a 0f d1 01 palignr $0x1,%xmm1,%xmm2 - 439894: 0f 29 12 movaps %xmm2,(%rdx) - 439897: 0f 28 51 1f movaps 0x1f(%rcx),%xmm2 - 43989b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43989f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4398a3: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4398a7: 48 8d 49 10 lea 0x10(%rcx),%rcx - 4398ab: 48 85 c0 test %rax,%rax - 4398ae: 0f 85 96 00 00 00 jne 43994a <__stpcpy_ssse3+0x42a> - 4398b4: 66 0f 3a 0f d3 01 palignr $0x1,%xmm3,%xmm2 - 4398ba: 0f 29 12 movaps %xmm2,(%rdx) - 4398bd: 48 8d 49 1f lea 0x1f(%rcx),%rcx - 4398c1: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4398c5: 48 89 c8 mov %rcx,%rax - 4398c8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 4398cc: 48 29 c8 sub %rcx,%rax - 4398cf: 48 8d 49 f1 lea -0xf(%rcx),%rcx - 4398d3: 48 29 c2 sub %rax,%rdx - 4398d6: 0f 28 49 ff movaps -0x1(%rcx),%xmm1 - 4398da: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4398e0: 0f 28 51 0f movaps 0xf(%rcx),%xmm2 - 4398e4: 0f 28 59 1f movaps 0x1f(%rcx),%xmm3 - 4398e8: 0f 28 f3 movaps %xmm3,%xmm6 - 4398eb: 0f 28 61 2f movaps 0x2f(%rcx),%xmm4 - 4398ef: 0f 28 fc movaps %xmm4,%xmm7 - 4398f2: 0f 28 69 3f movaps 0x3f(%rcx),%xmm5 - 4398f6: 66 0f da f2 pminub %xmm2,%xmm6 - 4398fa: 66 0f da fd pminub %xmm5,%xmm7 - 4398fe: 66 0f da fe pminub %xmm6,%xmm7 - 439902: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 439906: 66 0f d7 c7 pmovmskb %xmm7,%eax - 43990a: 0f 28 fd movaps %xmm5,%xmm7 - 43990d: 66 0f 3a 0f ec 01 palignr $0x1,%xmm4,%xmm5 - 439913: 48 85 c0 test %rax,%rax - 439916: 66 0f 3a 0f e3 01 palignr $0x1,%xmm3,%xmm4 - 43991c: 0f 85 06 ff ff ff jne 439828 <__stpcpy_ssse3+0x308> - 439922: 66 0f 3a 0f da 01 palignr $0x1,%xmm2,%xmm3 - 439928: 48 8d 49 40 lea 0x40(%rcx),%rcx - 43992c: 66 0f 3a 0f d1 01 palignr $0x1,%xmm1,%xmm2 - 439932: 0f 28 cf movaps %xmm7,%xmm1 - 439935: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 439939: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 43993d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 439941: 0f 29 12 movaps %xmm2,(%rdx) - 439944: 48 8d 52 40 lea 0x40(%rdx),%rdx - 439948: eb 96 jmp 4398e0 <__stpcpy_ssse3+0x3c0> - 43994a: f3 0f 6f 49 ff movdqu -0x1(%rcx),%xmm1 - 43994f: 48 c7 c6 0f 00 00 00 mov $0xf,%rsi - 439956: f3 0f 7f 4a ff movdqu %xmm1,-0x1(%rdx) - 43995b: e9 a0 11 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> - 439960: 0f 28 49 fe movaps -0x2(%rcx),%xmm1 - 439964: 0f 28 51 0e movaps 0xe(%rcx),%xmm2 - 439968: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43996c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439970: 0f 28 da movaps %xmm2,%xmm3 - 439973: 48 85 c0 test %rax,%rax - 439976: 0f 85 0e 01 00 00 jne 439a8a <__stpcpy_ssse3+0x56a> - 43997c: 66 0f 3a 0f d1 02 palignr $0x2,%xmm1,%xmm2 - 439982: 0f 29 12 movaps %xmm2,(%rdx) - 439985: 0f 28 51 1e movaps 0x1e(%rcx),%xmm2 - 439989: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43998d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439991: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439995: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439999: 0f 28 ca movaps %xmm2,%xmm1 - 43999c: 48 85 c0 test %rax,%rax - 43999f: 0f 85 e5 00 00 00 jne 439a8a <__stpcpy_ssse3+0x56a> - 4399a5: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 - 4399ab: 0f 29 12 movaps %xmm2,(%rdx) - 4399ae: 0f 28 51 1e movaps 0x1e(%rcx),%xmm2 - 4399b2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4399b6: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4399ba: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4399be: 48 8d 49 10 lea 0x10(%rcx),%rcx - 4399c2: 0f 28 da movaps %xmm2,%xmm3 - 4399c5: 48 85 c0 test %rax,%rax - 4399c8: 0f 85 bc 00 00 00 jne 439a8a <__stpcpy_ssse3+0x56a> - 4399ce: 66 0f 3a 0f d1 02 palignr $0x2,%xmm1,%xmm2 - 4399d4: 0f 29 12 movaps %xmm2,(%rdx) - 4399d7: 0f 28 51 1e movaps 0x1e(%rcx),%xmm2 - 4399db: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 4399df: 48 8d 52 10 lea 0x10(%rdx),%rdx - 4399e3: 66 0f d7 c0 pmovmskb %xmm0,%eax - 4399e7: 48 8d 49 10 lea 0x10(%rcx),%rcx - 4399eb: 48 85 c0 test %rax,%rax - 4399ee: 0f 85 96 00 00 00 jne 439a8a <__stpcpy_ssse3+0x56a> - 4399f4: 66 0f 3a 0f d3 02 palignr $0x2,%xmm3,%xmm2 - 4399fa: 0f 29 12 movaps %xmm2,(%rdx) - 4399fd: 48 8d 49 1e lea 0x1e(%rcx),%rcx - 439a01: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439a05: 48 89 c8 mov %rcx,%rax - 439a08: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 439a0c: 48 29 c8 sub %rcx,%rax - 439a0f: 48 8d 49 f2 lea -0xe(%rcx),%rcx - 439a13: 48 29 c2 sub %rax,%rdx - 439a16: 0f 28 49 fe movaps -0x2(%rcx),%xmm1 - 439a1a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 439a20: 0f 28 51 0e movaps 0xe(%rcx),%xmm2 - 439a24: 0f 28 59 1e movaps 0x1e(%rcx),%xmm3 - 439a28: 0f 28 f3 movaps %xmm3,%xmm6 - 439a2b: 0f 28 61 2e movaps 0x2e(%rcx),%xmm4 - 439a2f: 0f 28 fc movaps %xmm4,%xmm7 - 439a32: 0f 28 69 3e movaps 0x3e(%rcx),%xmm5 - 439a36: 66 0f da f2 pminub %xmm2,%xmm6 - 439a3a: 66 0f da fd pminub %xmm5,%xmm7 - 439a3e: 66 0f da fe pminub %xmm6,%xmm7 - 439a42: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 439a46: 66 0f d7 c7 pmovmskb %xmm7,%eax - 439a4a: 0f 28 fd movaps %xmm5,%xmm7 - 439a4d: 66 0f 3a 0f ec 02 palignr $0x2,%xmm4,%xmm5 - 439a53: 48 85 c0 test %rax,%rax - 439a56: 66 0f 3a 0f e3 02 palignr $0x2,%xmm3,%xmm4 - 439a5c: 0f 85 06 ff ff ff jne 439968 <__stpcpy_ssse3+0x448> - 439a62: 66 0f 3a 0f da 02 palignr $0x2,%xmm2,%xmm3 - 439a68: 48 8d 49 40 lea 0x40(%rcx),%rcx - 439a6c: 66 0f 3a 0f d1 02 palignr $0x2,%xmm1,%xmm2 - 439a72: 0f 28 cf movaps %xmm7,%xmm1 - 439a75: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 439a79: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 439a7d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 439a81: 0f 29 12 movaps %xmm2,(%rdx) - 439a84: 48 8d 52 40 lea 0x40(%rdx),%rdx - 439a88: eb 96 jmp 439a20 <__stpcpy_ssse3+0x500> - 439a8a: f3 0f 6f 49 fe movdqu -0x2(%rcx),%xmm1 - 439a8f: 48 c7 c6 0e 00 00 00 mov $0xe,%rsi - 439a96: f3 0f 7f 4a fe movdqu %xmm1,-0x2(%rdx) - 439a9b: e9 60 10 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> - 439aa0: 0f 28 49 fd movaps -0x3(%rcx),%xmm1 - 439aa4: 0f 28 51 0d movaps 0xd(%rcx),%xmm2 - 439aa8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439aac: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439ab0: 0f 28 da movaps %xmm2,%xmm3 - 439ab3: 48 85 c0 test %rax,%rax - 439ab6: 0f 85 0e 01 00 00 jne 439bca <__stpcpy_ssse3+0x6aa> - 439abc: 66 0f 3a 0f d1 03 palignr $0x3,%xmm1,%xmm2 - 439ac2: 0f 29 12 movaps %xmm2,(%rdx) - 439ac5: 0f 28 51 1d movaps 0x1d(%rcx),%xmm2 - 439ac9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439acd: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439ad1: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439ad5: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439ad9: 0f 28 ca movaps %xmm2,%xmm1 - 439adc: 48 85 c0 test %rax,%rax - 439adf: 0f 85 e5 00 00 00 jne 439bca <__stpcpy_ssse3+0x6aa> - 439ae5: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 - 439aeb: 0f 29 12 movaps %xmm2,(%rdx) - 439aee: 0f 28 51 1d movaps 0x1d(%rcx),%xmm2 - 439af2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439af6: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439afa: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439afe: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439b02: 0f 28 da movaps %xmm2,%xmm3 - 439b05: 48 85 c0 test %rax,%rax - 439b08: 0f 85 bc 00 00 00 jne 439bca <__stpcpy_ssse3+0x6aa> - 439b0e: 66 0f 3a 0f d1 03 palignr $0x3,%xmm1,%xmm2 - 439b14: 0f 29 12 movaps %xmm2,(%rdx) - 439b17: 0f 28 51 1d movaps 0x1d(%rcx),%xmm2 - 439b1b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439b1f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439b23: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439b27: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439b2b: 48 85 c0 test %rax,%rax - 439b2e: 0f 85 96 00 00 00 jne 439bca <__stpcpy_ssse3+0x6aa> - 439b34: 66 0f 3a 0f d3 03 palignr $0x3,%xmm3,%xmm2 - 439b3a: 0f 29 12 movaps %xmm2,(%rdx) - 439b3d: 48 8d 49 1d lea 0x1d(%rcx),%rcx - 439b41: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439b45: 48 89 c8 mov %rcx,%rax - 439b48: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 439b4c: 48 29 c8 sub %rcx,%rax - 439b4f: 48 8d 49 f3 lea -0xd(%rcx),%rcx - 439b53: 48 29 c2 sub %rax,%rdx - 439b56: 0f 28 49 fd movaps -0x3(%rcx),%xmm1 - 439b5a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 439b60: 0f 28 51 0d movaps 0xd(%rcx),%xmm2 - 439b64: 0f 28 59 1d movaps 0x1d(%rcx),%xmm3 - 439b68: 0f 28 f3 movaps %xmm3,%xmm6 - 439b6b: 0f 28 61 2d movaps 0x2d(%rcx),%xmm4 - 439b6f: 0f 28 fc movaps %xmm4,%xmm7 - 439b72: 0f 28 69 3d movaps 0x3d(%rcx),%xmm5 - 439b76: 66 0f da f2 pminub %xmm2,%xmm6 - 439b7a: 66 0f da fd pminub %xmm5,%xmm7 - 439b7e: 66 0f da fe pminub %xmm6,%xmm7 - 439b82: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 439b86: 66 0f d7 c7 pmovmskb %xmm7,%eax - 439b8a: 0f 28 fd movaps %xmm5,%xmm7 - 439b8d: 66 0f 3a 0f ec 03 palignr $0x3,%xmm4,%xmm5 - 439b93: 48 85 c0 test %rax,%rax - 439b96: 66 0f 3a 0f e3 03 palignr $0x3,%xmm3,%xmm4 - 439b9c: 0f 85 06 ff ff ff jne 439aa8 <__stpcpy_ssse3+0x588> - 439ba2: 66 0f 3a 0f da 03 palignr $0x3,%xmm2,%xmm3 - 439ba8: 48 8d 49 40 lea 0x40(%rcx),%rcx - 439bac: 66 0f 3a 0f d1 03 palignr $0x3,%xmm1,%xmm2 - 439bb2: 0f 28 cf movaps %xmm7,%xmm1 - 439bb5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 439bb9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 439bbd: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 439bc1: 0f 29 12 movaps %xmm2,(%rdx) - 439bc4: 48 8d 52 40 lea 0x40(%rdx),%rdx - 439bc8: eb 96 jmp 439b60 <__stpcpy_ssse3+0x640> - 439bca: f3 0f 6f 49 fd movdqu -0x3(%rcx),%xmm1 - 439bcf: 48 c7 c6 0d 00 00 00 mov $0xd,%rsi - 439bd6: f3 0f 7f 4a fd movdqu %xmm1,-0x3(%rdx) - 439bdb: e9 20 0f 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> - 439be0: 0f 28 49 fc movaps -0x4(%rcx),%xmm1 - 439be4: 0f 28 51 0c movaps 0xc(%rcx),%xmm2 - 439be8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439bec: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439bf0: 0f 28 da movaps %xmm2,%xmm3 - 439bf3: 48 85 c0 test %rax,%rax - 439bf6: 0f 85 0e 01 00 00 jne 439d0a <__stpcpy_ssse3+0x7ea> - 439bfc: 66 0f 3a 0f d1 04 palignr $0x4,%xmm1,%xmm2 - 439c02: 0f 29 12 movaps %xmm2,(%rdx) - 439c05: 0f 28 51 1c movaps 0x1c(%rcx),%xmm2 - 439c09: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439c0d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439c11: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439c15: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439c19: 0f 28 ca movaps %xmm2,%xmm1 - 439c1c: 48 85 c0 test %rax,%rax - 439c1f: 0f 85 e5 00 00 00 jne 439d0a <__stpcpy_ssse3+0x7ea> - 439c25: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 - 439c2b: 0f 29 12 movaps %xmm2,(%rdx) - 439c2e: 0f 28 51 1c movaps 0x1c(%rcx),%xmm2 - 439c32: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439c36: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439c3a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439c3e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439c42: 0f 28 da movaps %xmm2,%xmm3 - 439c45: 48 85 c0 test %rax,%rax - 439c48: 0f 85 bc 00 00 00 jne 439d0a <__stpcpy_ssse3+0x7ea> - 439c4e: 66 0f 3a 0f d1 04 palignr $0x4,%xmm1,%xmm2 - 439c54: 0f 29 12 movaps %xmm2,(%rdx) - 439c57: 0f 28 51 1c movaps 0x1c(%rcx),%xmm2 - 439c5b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439c5f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439c63: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439c67: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439c6b: 48 85 c0 test %rax,%rax - 439c6e: 0f 85 96 00 00 00 jne 439d0a <__stpcpy_ssse3+0x7ea> - 439c74: 66 0f 3a 0f d3 04 palignr $0x4,%xmm3,%xmm2 - 439c7a: 0f 29 12 movaps %xmm2,(%rdx) - 439c7d: 48 8d 49 1c lea 0x1c(%rcx),%rcx - 439c81: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439c85: 48 89 c8 mov %rcx,%rax - 439c88: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 439c8c: 48 29 c8 sub %rcx,%rax - 439c8f: 48 8d 49 f4 lea -0xc(%rcx),%rcx - 439c93: 48 29 c2 sub %rax,%rdx - 439c96: 0f 28 49 fc movaps -0x4(%rcx),%xmm1 - 439c9a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 439ca0: 0f 28 51 0c movaps 0xc(%rcx),%xmm2 - 439ca4: 0f 28 59 1c movaps 0x1c(%rcx),%xmm3 - 439ca8: 0f 28 f3 movaps %xmm3,%xmm6 - 439cab: 0f 28 61 2c movaps 0x2c(%rcx),%xmm4 - 439caf: 0f 28 fc movaps %xmm4,%xmm7 - 439cb2: 0f 28 69 3c movaps 0x3c(%rcx),%xmm5 - 439cb6: 66 0f da f2 pminub %xmm2,%xmm6 - 439cba: 66 0f da fd pminub %xmm5,%xmm7 - 439cbe: 66 0f da fe pminub %xmm6,%xmm7 - 439cc2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 439cc6: 66 0f d7 c7 pmovmskb %xmm7,%eax - 439cca: 0f 28 fd movaps %xmm5,%xmm7 - 439ccd: 66 0f 3a 0f ec 04 palignr $0x4,%xmm4,%xmm5 - 439cd3: 48 85 c0 test %rax,%rax - 439cd6: 66 0f 3a 0f e3 04 palignr $0x4,%xmm3,%xmm4 - 439cdc: 0f 85 06 ff ff ff jne 439be8 <__stpcpy_ssse3+0x6c8> - 439ce2: 66 0f 3a 0f da 04 palignr $0x4,%xmm2,%xmm3 - 439ce8: 48 8d 49 40 lea 0x40(%rcx),%rcx - 439cec: 66 0f 3a 0f d1 04 palignr $0x4,%xmm1,%xmm2 - 439cf2: 0f 28 cf movaps %xmm7,%xmm1 - 439cf5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 439cf9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 439cfd: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 439d01: 0f 29 12 movaps %xmm2,(%rdx) - 439d04: 48 8d 52 40 lea 0x40(%rdx),%rdx - 439d08: eb 96 jmp 439ca0 <__stpcpy_ssse3+0x780> - 439d0a: f3 0f 6f 49 fc movdqu -0x4(%rcx),%xmm1 - 439d0f: 48 c7 c6 0c 00 00 00 mov $0xc,%rsi - 439d16: f3 0f 7f 4a fc movdqu %xmm1,-0x4(%rdx) - 439d1b: e9 e0 0d 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> - 439d20: 0f 28 49 fb movaps -0x5(%rcx),%xmm1 - 439d24: 0f 28 51 0b movaps 0xb(%rcx),%xmm2 - 439d28: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439d2c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439d30: 0f 28 da movaps %xmm2,%xmm3 - 439d33: 48 85 c0 test %rax,%rax - 439d36: 0f 85 0e 01 00 00 jne 439e4a <__stpcpy_ssse3+0x92a> - 439d3c: 66 0f 3a 0f d1 05 palignr $0x5,%xmm1,%xmm2 - 439d42: 0f 29 12 movaps %xmm2,(%rdx) - 439d45: 0f 28 51 1b movaps 0x1b(%rcx),%xmm2 - 439d49: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439d4d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439d51: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439d55: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439d59: 0f 28 ca movaps %xmm2,%xmm1 - 439d5c: 48 85 c0 test %rax,%rax - 439d5f: 0f 85 e5 00 00 00 jne 439e4a <__stpcpy_ssse3+0x92a> - 439d65: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 - 439d6b: 0f 29 12 movaps %xmm2,(%rdx) - 439d6e: 0f 28 51 1b movaps 0x1b(%rcx),%xmm2 - 439d72: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439d76: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439d7a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439d7e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439d82: 0f 28 da movaps %xmm2,%xmm3 - 439d85: 48 85 c0 test %rax,%rax - 439d88: 0f 85 bc 00 00 00 jne 439e4a <__stpcpy_ssse3+0x92a> - 439d8e: 66 0f 3a 0f d1 05 palignr $0x5,%xmm1,%xmm2 - 439d94: 0f 29 12 movaps %xmm2,(%rdx) - 439d97: 0f 28 51 1b movaps 0x1b(%rcx),%xmm2 - 439d9b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439d9f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439da3: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439da7: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439dab: 48 85 c0 test %rax,%rax - 439dae: 0f 85 96 00 00 00 jne 439e4a <__stpcpy_ssse3+0x92a> - 439db4: 66 0f 3a 0f d3 05 palignr $0x5,%xmm3,%xmm2 - 439dba: 0f 29 12 movaps %xmm2,(%rdx) - 439dbd: 48 8d 49 1b lea 0x1b(%rcx),%rcx - 439dc1: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439dc5: 48 89 c8 mov %rcx,%rax - 439dc8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 439dcc: 48 29 c8 sub %rcx,%rax - 439dcf: 48 8d 49 f5 lea -0xb(%rcx),%rcx - 439dd3: 48 29 c2 sub %rax,%rdx - 439dd6: 0f 28 49 fb movaps -0x5(%rcx),%xmm1 - 439dda: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 439de0: 0f 28 51 0b movaps 0xb(%rcx),%xmm2 - 439de4: 0f 28 59 1b movaps 0x1b(%rcx),%xmm3 - 439de8: 0f 28 f3 movaps %xmm3,%xmm6 - 439deb: 0f 28 61 2b movaps 0x2b(%rcx),%xmm4 - 439def: 0f 28 fc movaps %xmm4,%xmm7 - 439df2: 0f 28 69 3b movaps 0x3b(%rcx),%xmm5 - 439df6: 66 0f da f2 pminub %xmm2,%xmm6 - 439dfa: 66 0f da fd pminub %xmm5,%xmm7 - 439dfe: 66 0f da fe pminub %xmm6,%xmm7 - 439e02: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 439e06: 66 0f d7 c7 pmovmskb %xmm7,%eax - 439e0a: 0f 28 fd movaps %xmm5,%xmm7 - 439e0d: 66 0f 3a 0f ec 05 palignr $0x5,%xmm4,%xmm5 - 439e13: 48 85 c0 test %rax,%rax - 439e16: 66 0f 3a 0f e3 05 palignr $0x5,%xmm3,%xmm4 - 439e1c: 0f 85 06 ff ff ff jne 439d28 <__stpcpy_ssse3+0x808> - 439e22: 66 0f 3a 0f da 05 palignr $0x5,%xmm2,%xmm3 - 439e28: 48 8d 49 40 lea 0x40(%rcx),%rcx - 439e2c: 66 0f 3a 0f d1 05 palignr $0x5,%xmm1,%xmm2 - 439e32: 0f 28 cf movaps %xmm7,%xmm1 - 439e35: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 439e39: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 439e3d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 439e41: 0f 29 12 movaps %xmm2,(%rdx) - 439e44: 48 8d 52 40 lea 0x40(%rdx),%rdx - 439e48: eb 96 jmp 439de0 <__stpcpy_ssse3+0x8c0> - 439e4a: f3 0f 6f 49 fb movdqu -0x5(%rcx),%xmm1 - 439e4f: 48 c7 c6 0b 00 00 00 mov $0xb,%rsi - 439e56: f3 0f 7f 4a fb movdqu %xmm1,-0x5(%rdx) - 439e5b: e9 a0 0c 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> - 439e60: 0f 28 49 fa movaps -0x6(%rcx),%xmm1 - 439e64: 0f 28 51 0a movaps 0xa(%rcx),%xmm2 - 439e68: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439e6c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439e70: 0f 28 da movaps %xmm2,%xmm3 - 439e73: 48 85 c0 test %rax,%rax - 439e76: 0f 85 0e 01 00 00 jne 439f8a <__stpcpy_ssse3+0xa6a> - 439e7c: 66 0f 3a 0f d1 06 palignr $0x6,%xmm1,%xmm2 - 439e82: 0f 29 12 movaps %xmm2,(%rdx) - 439e85: 0f 28 51 1a movaps 0x1a(%rcx),%xmm2 - 439e89: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439e8d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439e91: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439e95: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439e99: 0f 28 ca movaps %xmm2,%xmm1 - 439e9c: 48 85 c0 test %rax,%rax - 439e9f: 0f 85 e5 00 00 00 jne 439f8a <__stpcpy_ssse3+0xa6a> - 439ea5: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 - 439eab: 0f 29 12 movaps %xmm2,(%rdx) - 439eae: 0f 28 51 1a movaps 0x1a(%rcx),%xmm2 - 439eb2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439eb6: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439eba: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439ebe: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439ec2: 0f 28 da movaps %xmm2,%xmm3 - 439ec5: 48 85 c0 test %rax,%rax - 439ec8: 0f 85 bc 00 00 00 jne 439f8a <__stpcpy_ssse3+0xa6a> - 439ece: 66 0f 3a 0f d1 06 palignr $0x6,%xmm1,%xmm2 - 439ed4: 0f 29 12 movaps %xmm2,(%rdx) - 439ed7: 0f 28 51 1a movaps 0x1a(%rcx),%xmm2 - 439edb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439edf: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439ee3: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439ee7: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439eeb: 48 85 c0 test %rax,%rax - 439eee: 0f 85 96 00 00 00 jne 439f8a <__stpcpy_ssse3+0xa6a> - 439ef4: 66 0f 3a 0f d3 06 palignr $0x6,%xmm3,%xmm2 - 439efa: 0f 29 12 movaps %xmm2,(%rdx) - 439efd: 48 8d 49 1a lea 0x1a(%rcx),%rcx - 439f01: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439f05: 48 89 c8 mov %rcx,%rax - 439f08: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 439f0c: 48 29 c8 sub %rcx,%rax - 439f0f: 48 8d 49 f6 lea -0xa(%rcx),%rcx - 439f13: 48 29 c2 sub %rax,%rdx - 439f16: 0f 28 49 fa movaps -0x6(%rcx),%xmm1 - 439f1a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 439f20: 0f 28 51 0a movaps 0xa(%rcx),%xmm2 - 439f24: 0f 28 59 1a movaps 0x1a(%rcx),%xmm3 - 439f28: 0f 28 f3 movaps %xmm3,%xmm6 - 439f2b: 0f 28 61 2a movaps 0x2a(%rcx),%xmm4 - 439f2f: 0f 28 fc movaps %xmm4,%xmm7 - 439f32: 0f 28 69 3a movaps 0x3a(%rcx),%xmm5 - 439f36: 66 0f da f2 pminub %xmm2,%xmm6 - 439f3a: 66 0f da fd pminub %xmm5,%xmm7 - 439f3e: 66 0f da fe pminub %xmm6,%xmm7 - 439f42: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 439f46: 66 0f d7 c7 pmovmskb %xmm7,%eax - 439f4a: 0f 28 fd movaps %xmm5,%xmm7 - 439f4d: 66 0f 3a 0f ec 06 palignr $0x6,%xmm4,%xmm5 - 439f53: 48 85 c0 test %rax,%rax - 439f56: 66 0f 3a 0f e3 06 palignr $0x6,%xmm3,%xmm4 - 439f5c: 0f 85 06 ff ff ff jne 439e68 <__stpcpy_ssse3+0x948> - 439f62: 66 0f 3a 0f da 06 palignr $0x6,%xmm2,%xmm3 - 439f68: 48 8d 49 40 lea 0x40(%rcx),%rcx - 439f6c: 66 0f 3a 0f d1 06 palignr $0x6,%xmm1,%xmm2 - 439f72: 0f 28 cf movaps %xmm7,%xmm1 - 439f75: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 439f79: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 439f7d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 439f81: 0f 29 12 movaps %xmm2,(%rdx) - 439f84: 48 8d 52 40 lea 0x40(%rdx),%rdx - 439f88: eb 96 jmp 439f20 <__stpcpy_ssse3+0xa00> - 439f8a: 4c 8b 09 mov (%rcx),%r9 - 439f8d: 8b 71 06 mov 0x6(%rcx),%esi - 439f90: 4c 89 0a mov %r9,(%rdx) - 439f93: 89 72 06 mov %esi,0x6(%rdx) - 439f96: 48 c7 c6 0a 00 00 00 mov $0xa,%rsi - 439f9d: e9 5e 0b 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> - 439fa2: 0f 1f 40 00 nopl 0x0(%rax) - 439fa6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 439fad: 00 00 00 - 439fb0: 0f 28 49 f9 movaps -0x7(%rcx),%xmm1 - 439fb4: 0f 28 51 09 movaps 0x9(%rcx),%xmm2 - 439fb8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439fbc: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439fc0: 0f 28 da movaps %xmm2,%xmm3 - 439fc3: 48 85 c0 test %rax,%rax - 439fc6: 0f 85 0e 01 00 00 jne 43a0da <__stpcpy_ssse3+0xbba> - 439fcc: 66 0f 3a 0f d1 07 palignr $0x7,%xmm1,%xmm2 - 439fd2: 0f 29 12 movaps %xmm2,(%rdx) - 439fd5: 0f 28 51 19 movaps 0x19(%rcx),%xmm2 - 439fd9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 439fdd: 48 8d 52 10 lea 0x10(%rdx),%rdx - 439fe1: 66 0f d7 c0 pmovmskb %xmm0,%eax - 439fe5: 48 8d 49 10 lea 0x10(%rcx),%rcx - 439fe9: 0f 28 ca movaps %xmm2,%xmm1 - 439fec: 48 85 c0 test %rax,%rax - 439fef: 0f 85 e5 00 00 00 jne 43a0da <__stpcpy_ssse3+0xbba> - 439ff5: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 - 439ffb: 0f 29 12 movaps %xmm2,(%rdx) - 439ffe: 0f 28 51 19 movaps 0x19(%rcx),%xmm2 - 43a002: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a006: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a00a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a00e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a012: 0f 28 da movaps %xmm2,%xmm3 - 43a015: 48 85 c0 test %rax,%rax - 43a018: 0f 85 bc 00 00 00 jne 43a0da <__stpcpy_ssse3+0xbba> - 43a01e: 66 0f 3a 0f d1 07 palignr $0x7,%xmm1,%xmm2 - 43a024: 0f 29 12 movaps %xmm2,(%rdx) - 43a027: 0f 28 51 19 movaps 0x19(%rcx),%xmm2 - 43a02b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a02f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a033: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a037: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a03b: 48 85 c0 test %rax,%rax - 43a03e: 0f 85 96 00 00 00 jne 43a0da <__stpcpy_ssse3+0xbba> - 43a044: 66 0f 3a 0f d3 07 palignr $0x7,%xmm3,%xmm2 - 43a04a: 0f 29 12 movaps %xmm2,(%rdx) - 43a04d: 48 8d 49 19 lea 0x19(%rcx),%rcx - 43a051: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a055: 48 89 c8 mov %rcx,%rax - 43a058: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43a05c: 48 29 c8 sub %rcx,%rax - 43a05f: 48 8d 49 f7 lea -0x9(%rcx),%rcx - 43a063: 48 29 c2 sub %rax,%rdx - 43a066: 0f 28 49 f9 movaps -0x7(%rcx),%xmm1 - 43a06a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43a070: 0f 28 51 09 movaps 0x9(%rcx),%xmm2 - 43a074: 0f 28 59 19 movaps 0x19(%rcx),%xmm3 - 43a078: 0f 28 f3 movaps %xmm3,%xmm6 - 43a07b: 0f 28 61 29 movaps 0x29(%rcx),%xmm4 - 43a07f: 0f 28 fc movaps %xmm4,%xmm7 - 43a082: 0f 28 69 39 movaps 0x39(%rcx),%xmm5 - 43a086: 66 0f da f2 pminub %xmm2,%xmm6 - 43a08a: 66 0f da fd pminub %xmm5,%xmm7 - 43a08e: 66 0f da fe pminub %xmm6,%xmm7 - 43a092: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 43a096: 66 0f d7 c7 pmovmskb %xmm7,%eax - 43a09a: 0f 28 fd movaps %xmm5,%xmm7 - 43a09d: 66 0f 3a 0f ec 07 palignr $0x7,%xmm4,%xmm5 - 43a0a3: 48 85 c0 test %rax,%rax - 43a0a6: 66 0f 3a 0f e3 07 palignr $0x7,%xmm3,%xmm4 - 43a0ac: 0f 85 06 ff ff ff jne 439fb8 <__stpcpy_ssse3+0xa98> - 43a0b2: 66 0f 3a 0f da 07 palignr $0x7,%xmm2,%xmm3 - 43a0b8: 48 8d 49 40 lea 0x40(%rcx),%rcx - 43a0bc: 66 0f 3a 0f d1 07 palignr $0x7,%xmm1,%xmm2 - 43a0c2: 0f 28 cf movaps %xmm7,%xmm1 - 43a0c5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 43a0c9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 43a0cd: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 43a0d1: 0f 29 12 movaps %xmm2,(%rdx) - 43a0d4: 48 8d 52 40 lea 0x40(%rdx),%rdx - 43a0d8: eb 96 jmp 43a070 <__stpcpy_ssse3+0xb50> - 43a0da: 4c 8b 09 mov (%rcx),%r9 - 43a0dd: 8b 71 05 mov 0x5(%rcx),%esi - 43a0e0: 4c 89 0a mov %r9,(%rdx) - 43a0e3: 89 72 05 mov %esi,0x5(%rdx) - 43a0e6: 48 c7 c6 09 00 00 00 mov $0x9,%rsi - 43a0ed: e9 0e 0a 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> - 43a0f2: 0f 1f 40 00 nopl 0x0(%rax) - 43a0f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43a0fd: 00 00 00 - 43a100: 0f 28 49 f8 movaps -0x8(%rcx),%xmm1 - 43a104: 0f 28 51 08 movaps 0x8(%rcx),%xmm2 - 43a108: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a10c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a110: 0f 28 da movaps %xmm2,%xmm3 - 43a113: 48 85 c0 test %rax,%rax - 43a116: 0f 85 0e 01 00 00 jne 43a22a <__stpcpy_ssse3+0xd0a> - 43a11c: 66 0f 3a 0f d1 08 palignr $0x8,%xmm1,%xmm2 - 43a122: 0f 29 12 movaps %xmm2,(%rdx) - 43a125: 0f 28 51 18 movaps 0x18(%rcx),%xmm2 - 43a129: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a12d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a131: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a135: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a139: 0f 28 ca movaps %xmm2,%xmm1 - 43a13c: 48 85 c0 test %rax,%rax - 43a13f: 0f 85 e5 00 00 00 jne 43a22a <__stpcpy_ssse3+0xd0a> - 43a145: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 - 43a14b: 0f 29 12 movaps %xmm2,(%rdx) - 43a14e: 0f 28 51 18 movaps 0x18(%rcx),%xmm2 - 43a152: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a156: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a15a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a15e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a162: 0f 28 da movaps %xmm2,%xmm3 - 43a165: 48 85 c0 test %rax,%rax - 43a168: 0f 85 bc 00 00 00 jne 43a22a <__stpcpy_ssse3+0xd0a> - 43a16e: 66 0f 3a 0f d1 08 palignr $0x8,%xmm1,%xmm2 - 43a174: 0f 29 12 movaps %xmm2,(%rdx) - 43a177: 0f 28 51 18 movaps 0x18(%rcx),%xmm2 - 43a17b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a17f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a183: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a187: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a18b: 48 85 c0 test %rax,%rax - 43a18e: 0f 85 96 00 00 00 jne 43a22a <__stpcpy_ssse3+0xd0a> - 43a194: 66 0f 3a 0f d3 08 palignr $0x8,%xmm3,%xmm2 - 43a19a: 0f 29 12 movaps %xmm2,(%rdx) - 43a19d: 48 8d 49 18 lea 0x18(%rcx),%rcx - 43a1a1: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a1a5: 48 89 c8 mov %rcx,%rax - 43a1a8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43a1ac: 48 29 c8 sub %rcx,%rax - 43a1af: 48 8d 49 f8 lea -0x8(%rcx),%rcx - 43a1b3: 48 29 c2 sub %rax,%rdx - 43a1b6: 0f 28 49 f8 movaps -0x8(%rcx),%xmm1 - 43a1ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43a1c0: 0f 28 51 08 movaps 0x8(%rcx),%xmm2 - 43a1c4: 0f 28 59 18 movaps 0x18(%rcx),%xmm3 - 43a1c8: 0f 28 f3 movaps %xmm3,%xmm6 - 43a1cb: 0f 28 61 28 movaps 0x28(%rcx),%xmm4 - 43a1cf: 0f 28 fc movaps %xmm4,%xmm7 - 43a1d2: 0f 28 69 38 movaps 0x38(%rcx),%xmm5 - 43a1d6: 66 0f da f2 pminub %xmm2,%xmm6 - 43a1da: 66 0f da fd pminub %xmm5,%xmm7 - 43a1de: 66 0f da fe pminub %xmm6,%xmm7 - 43a1e2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 43a1e6: 66 0f d7 c7 pmovmskb %xmm7,%eax - 43a1ea: 0f 28 fd movaps %xmm5,%xmm7 - 43a1ed: 66 0f 3a 0f ec 08 palignr $0x8,%xmm4,%xmm5 - 43a1f3: 48 85 c0 test %rax,%rax - 43a1f6: 66 0f 3a 0f e3 08 palignr $0x8,%xmm3,%xmm4 - 43a1fc: 0f 85 06 ff ff ff jne 43a108 <__stpcpy_ssse3+0xbe8> - 43a202: 66 0f 3a 0f da 08 palignr $0x8,%xmm2,%xmm3 - 43a208: 48 8d 49 40 lea 0x40(%rcx),%rcx - 43a20c: 66 0f 3a 0f d1 08 palignr $0x8,%xmm1,%xmm2 - 43a212: 0f 28 cf movaps %xmm7,%xmm1 - 43a215: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 43a219: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 43a21d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 43a221: 0f 29 12 movaps %xmm2,(%rdx) - 43a224: 48 8d 52 40 lea 0x40(%rdx),%rdx - 43a228: eb 96 jmp 43a1c0 <__stpcpy_ssse3+0xca0> - 43a22a: 4c 8b 09 mov (%rcx),%r9 - 43a22d: 48 c7 c6 08 00 00 00 mov $0x8,%rsi - 43a234: 4c 89 0a mov %r9,(%rdx) - 43a237: e9 c4 08 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> - 43a23c: 0f 1f 40 00 nopl 0x0(%rax) - 43a240: 0f 28 49 f7 movaps -0x9(%rcx),%xmm1 - 43a244: 0f 28 51 07 movaps 0x7(%rcx),%xmm2 - 43a248: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a24c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a250: 0f 28 da movaps %xmm2,%xmm3 - 43a253: 48 85 c0 test %rax,%rax - 43a256: 0f 85 0e 01 00 00 jne 43a36a <__stpcpy_ssse3+0xe4a> - 43a25c: 66 0f 3a 0f d1 09 palignr $0x9,%xmm1,%xmm2 - 43a262: 0f 29 12 movaps %xmm2,(%rdx) - 43a265: 0f 28 51 17 movaps 0x17(%rcx),%xmm2 - 43a269: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a26d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a271: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a275: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a279: 0f 28 ca movaps %xmm2,%xmm1 - 43a27c: 48 85 c0 test %rax,%rax - 43a27f: 0f 85 e5 00 00 00 jne 43a36a <__stpcpy_ssse3+0xe4a> - 43a285: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 - 43a28b: 0f 29 12 movaps %xmm2,(%rdx) - 43a28e: 0f 28 51 17 movaps 0x17(%rcx),%xmm2 - 43a292: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a296: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a29a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a29e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a2a2: 0f 28 da movaps %xmm2,%xmm3 - 43a2a5: 48 85 c0 test %rax,%rax - 43a2a8: 0f 85 bc 00 00 00 jne 43a36a <__stpcpy_ssse3+0xe4a> - 43a2ae: 66 0f 3a 0f d1 09 palignr $0x9,%xmm1,%xmm2 - 43a2b4: 0f 29 12 movaps %xmm2,(%rdx) - 43a2b7: 0f 28 51 17 movaps 0x17(%rcx),%xmm2 - 43a2bb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a2bf: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a2c3: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a2c7: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a2cb: 48 85 c0 test %rax,%rax - 43a2ce: 0f 85 96 00 00 00 jne 43a36a <__stpcpy_ssse3+0xe4a> - 43a2d4: 66 0f 3a 0f d3 09 palignr $0x9,%xmm3,%xmm2 - 43a2da: 0f 29 12 movaps %xmm2,(%rdx) - 43a2dd: 48 8d 49 17 lea 0x17(%rcx),%rcx - 43a2e1: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a2e5: 48 89 c8 mov %rcx,%rax - 43a2e8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43a2ec: 48 29 c8 sub %rcx,%rax - 43a2ef: 48 8d 49 f9 lea -0x7(%rcx),%rcx - 43a2f3: 48 29 c2 sub %rax,%rdx - 43a2f6: 0f 28 49 f7 movaps -0x9(%rcx),%xmm1 - 43a2fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43a300: 0f 28 51 07 movaps 0x7(%rcx),%xmm2 - 43a304: 0f 28 59 17 movaps 0x17(%rcx),%xmm3 - 43a308: 0f 28 f3 movaps %xmm3,%xmm6 - 43a30b: 0f 28 61 27 movaps 0x27(%rcx),%xmm4 - 43a30f: 0f 28 fc movaps %xmm4,%xmm7 - 43a312: 0f 28 69 37 movaps 0x37(%rcx),%xmm5 - 43a316: 66 0f da f2 pminub %xmm2,%xmm6 - 43a31a: 66 0f da fd pminub %xmm5,%xmm7 - 43a31e: 66 0f da fe pminub %xmm6,%xmm7 - 43a322: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 43a326: 66 0f d7 c7 pmovmskb %xmm7,%eax - 43a32a: 0f 28 fd movaps %xmm5,%xmm7 - 43a32d: 66 0f 3a 0f ec 09 palignr $0x9,%xmm4,%xmm5 - 43a333: 48 85 c0 test %rax,%rax - 43a336: 66 0f 3a 0f e3 09 palignr $0x9,%xmm3,%xmm4 - 43a33c: 0f 85 06 ff ff ff jne 43a248 <__stpcpy_ssse3+0xd28> - 43a342: 66 0f 3a 0f da 09 palignr $0x9,%xmm2,%xmm3 - 43a348: 48 8d 49 40 lea 0x40(%rcx),%rcx - 43a34c: 66 0f 3a 0f d1 09 palignr $0x9,%xmm1,%xmm2 - 43a352: 0f 28 cf movaps %xmm7,%xmm1 - 43a355: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 43a359: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 43a35d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 43a361: 0f 29 12 movaps %xmm2,(%rdx) - 43a364: 48 8d 52 40 lea 0x40(%rdx),%rdx - 43a368: eb 96 jmp 43a300 <__stpcpy_ssse3+0xde0> - 43a36a: 4c 8b 49 ff mov -0x1(%rcx),%r9 - 43a36e: 48 c7 c6 07 00 00 00 mov $0x7,%rsi - 43a375: 4c 89 4a ff mov %r9,-0x1(%rdx) - 43a379: e9 82 07 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> - 43a37e: 66 90 xchg %ax,%ax - 43a380: 0f 28 49 f6 movaps -0xa(%rcx),%xmm1 - 43a384: 0f 28 51 06 movaps 0x6(%rcx),%xmm2 - 43a388: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a38c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a390: 0f 28 da movaps %xmm2,%xmm3 - 43a393: 48 85 c0 test %rax,%rax - 43a396: 0f 85 0e 01 00 00 jne 43a4aa <__stpcpy_ssse3+0xf8a> - 43a39c: 66 0f 3a 0f d1 0a palignr $0xa,%xmm1,%xmm2 - 43a3a2: 0f 29 12 movaps %xmm2,(%rdx) - 43a3a5: 0f 28 51 16 movaps 0x16(%rcx),%xmm2 - 43a3a9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a3ad: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a3b1: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a3b5: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a3b9: 0f 28 ca movaps %xmm2,%xmm1 - 43a3bc: 48 85 c0 test %rax,%rax - 43a3bf: 0f 85 e5 00 00 00 jne 43a4aa <__stpcpy_ssse3+0xf8a> - 43a3c5: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 - 43a3cb: 0f 29 12 movaps %xmm2,(%rdx) - 43a3ce: 0f 28 51 16 movaps 0x16(%rcx),%xmm2 - 43a3d2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a3d6: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a3da: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a3de: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a3e2: 0f 28 da movaps %xmm2,%xmm3 - 43a3e5: 48 85 c0 test %rax,%rax - 43a3e8: 0f 85 bc 00 00 00 jne 43a4aa <__stpcpy_ssse3+0xf8a> - 43a3ee: 66 0f 3a 0f d1 0a palignr $0xa,%xmm1,%xmm2 - 43a3f4: 0f 29 12 movaps %xmm2,(%rdx) - 43a3f7: 0f 28 51 16 movaps 0x16(%rcx),%xmm2 - 43a3fb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a3ff: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a403: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a407: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a40b: 48 85 c0 test %rax,%rax - 43a40e: 0f 85 96 00 00 00 jne 43a4aa <__stpcpy_ssse3+0xf8a> - 43a414: 66 0f 3a 0f d3 0a palignr $0xa,%xmm3,%xmm2 - 43a41a: 0f 29 12 movaps %xmm2,(%rdx) - 43a41d: 48 8d 49 16 lea 0x16(%rcx),%rcx - 43a421: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a425: 48 89 c8 mov %rcx,%rax - 43a428: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43a42c: 48 29 c8 sub %rcx,%rax - 43a42f: 48 8d 49 fa lea -0x6(%rcx),%rcx - 43a433: 48 29 c2 sub %rax,%rdx - 43a436: 0f 28 49 f6 movaps -0xa(%rcx),%xmm1 - 43a43a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43a440: 0f 28 51 06 movaps 0x6(%rcx),%xmm2 - 43a444: 0f 28 59 16 movaps 0x16(%rcx),%xmm3 - 43a448: 0f 28 f3 movaps %xmm3,%xmm6 - 43a44b: 0f 28 61 26 movaps 0x26(%rcx),%xmm4 - 43a44f: 0f 28 fc movaps %xmm4,%xmm7 - 43a452: 0f 28 69 36 movaps 0x36(%rcx),%xmm5 - 43a456: 66 0f da f2 pminub %xmm2,%xmm6 - 43a45a: 66 0f da fd pminub %xmm5,%xmm7 - 43a45e: 66 0f da fe pminub %xmm6,%xmm7 - 43a462: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 43a466: 66 0f d7 c7 pmovmskb %xmm7,%eax - 43a46a: 0f 28 fd movaps %xmm5,%xmm7 - 43a46d: 66 0f 3a 0f ec 0a palignr $0xa,%xmm4,%xmm5 - 43a473: 48 85 c0 test %rax,%rax - 43a476: 66 0f 3a 0f e3 0a palignr $0xa,%xmm3,%xmm4 - 43a47c: 0f 85 06 ff ff ff jne 43a388 <__stpcpy_ssse3+0xe68> - 43a482: 66 0f 3a 0f da 0a palignr $0xa,%xmm2,%xmm3 - 43a488: 48 8d 49 40 lea 0x40(%rcx),%rcx - 43a48c: 66 0f 3a 0f d1 0a palignr $0xa,%xmm1,%xmm2 - 43a492: 0f 28 cf movaps %xmm7,%xmm1 - 43a495: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 43a499: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 43a49d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 43a4a1: 0f 29 12 movaps %xmm2,(%rdx) - 43a4a4: 48 8d 52 40 lea 0x40(%rdx),%rdx - 43a4a8: eb 96 jmp 43a440 <__stpcpy_ssse3+0xf20> - 43a4aa: 4c 8b 49 fe mov -0x2(%rcx),%r9 - 43a4ae: 48 c7 c6 06 00 00 00 mov $0x6,%rsi - 43a4b5: 4c 89 4a fe mov %r9,-0x2(%rdx) - 43a4b9: e9 42 06 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> - 43a4be: 66 90 xchg %ax,%ax - 43a4c0: 0f 28 49 f5 movaps -0xb(%rcx),%xmm1 - 43a4c4: 0f 28 51 05 movaps 0x5(%rcx),%xmm2 - 43a4c8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a4cc: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a4d0: 0f 28 da movaps %xmm2,%xmm3 - 43a4d3: 48 85 c0 test %rax,%rax - 43a4d6: 0f 85 0e 01 00 00 jne 43a5ea <__stpcpy_ssse3+0x10ca> - 43a4dc: 66 0f 3a 0f d1 0b palignr $0xb,%xmm1,%xmm2 - 43a4e2: 0f 29 12 movaps %xmm2,(%rdx) - 43a4e5: 0f 28 51 15 movaps 0x15(%rcx),%xmm2 - 43a4e9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a4ed: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a4f1: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a4f5: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a4f9: 0f 28 ca movaps %xmm2,%xmm1 - 43a4fc: 48 85 c0 test %rax,%rax - 43a4ff: 0f 85 e5 00 00 00 jne 43a5ea <__stpcpy_ssse3+0x10ca> - 43a505: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 - 43a50b: 0f 29 12 movaps %xmm2,(%rdx) - 43a50e: 0f 28 51 15 movaps 0x15(%rcx),%xmm2 - 43a512: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a516: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a51a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a51e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a522: 0f 28 da movaps %xmm2,%xmm3 - 43a525: 48 85 c0 test %rax,%rax - 43a528: 0f 85 bc 00 00 00 jne 43a5ea <__stpcpy_ssse3+0x10ca> - 43a52e: 66 0f 3a 0f d1 0b palignr $0xb,%xmm1,%xmm2 - 43a534: 0f 29 12 movaps %xmm2,(%rdx) - 43a537: 0f 28 51 15 movaps 0x15(%rcx),%xmm2 - 43a53b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a53f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a543: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a547: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a54b: 48 85 c0 test %rax,%rax - 43a54e: 0f 85 96 00 00 00 jne 43a5ea <__stpcpy_ssse3+0x10ca> - 43a554: 66 0f 3a 0f d3 0b palignr $0xb,%xmm3,%xmm2 - 43a55a: 0f 29 12 movaps %xmm2,(%rdx) - 43a55d: 48 8d 49 15 lea 0x15(%rcx),%rcx - 43a561: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a565: 48 89 c8 mov %rcx,%rax - 43a568: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43a56c: 48 29 c8 sub %rcx,%rax - 43a56f: 48 8d 49 fb lea -0x5(%rcx),%rcx - 43a573: 48 29 c2 sub %rax,%rdx - 43a576: 0f 28 49 f5 movaps -0xb(%rcx),%xmm1 - 43a57a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43a580: 0f 28 51 05 movaps 0x5(%rcx),%xmm2 - 43a584: 0f 28 59 15 movaps 0x15(%rcx),%xmm3 - 43a588: 0f 28 f3 movaps %xmm3,%xmm6 - 43a58b: 0f 28 61 25 movaps 0x25(%rcx),%xmm4 - 43a58f: 0f 28 fc movaps %xmm4,%xmm7 - 43a592: 0f 28 69 35 movaps 0x35(%rcx),%xmm5 - 43a596: 66 0f da f2 pminub %xmm2,%xmm6 - 43a59a: 66 0f da fd pminub %xmm5,%xmm7 - 43a59e: 66 0f da fe pminub %xmm6,%xmm7 - 43a5a2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 43a5a6: 66 0f d7 c7 pmovmskb %xmm7,%eax - 43a5aa: 0f 28 fd movaps %xmm5,%xmm7 - 43a5ad: 66 0f 3a 0f ec 0b palignr $0xb,%xmm4,%xmm5 - 43a5b3: 48 85 c0 test %rax,%rax - 43a5b6: 66 0f 3a 0f e3 0b palignr $0xb,%xmm3,%xmm4 - 43a5bc: 0f 85 06 ff ff ff jne 43a4c8 <__stpcpy_ssse3+0xfa8> - 43a5c2: 66 0f 3a 0f da 0b palignr $0xb,%xmm2,%xmm3 - 43a5c8: 48 8d 49 40 lea 0x40(%rcx),%rcx - 43a5cc: 66 0f 3a 0f d1 0b palignr $0xb,%xmm1,%xmm2 - 43a5d2: 0f 28 cf movaps %xmm7,%xmm1 - 43a5d5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 43a5d9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 43a5dd: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 43a5e1: 0f 29 12 movaps %xmm2,(%rdx) - 43a5e4: 48 8d 52 40 lea 0x40(%rdx),%rdx - 43a5e8: eb 96 jmp 43a580 <__stpcpy_ssse3+0x1060> - 43a5ea: 4c 8b 49 fd mov -0x3(%rcx),%r9 - 43a5ee: 48 c7 c6 05 00 00 00 mov $0x5,%rsi - 43a5f5: 4c 89 4a fd mov %r9,-0x3(%rdx) - 43a5f9: e9 02 05 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> - 43a5fe: 66 90 xchg %ax,%ax - 43a600: 0f 28 49 f4 movaps -0xc(%rcx),%xmm1 - 43a604: 0f 28 51 04 movaps 0x4(%rcx),%xmm2 - 43a608: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a60c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a610: 0f 28 da movaps %xmm2,%xmm3 - 43a613: 48 85 c0 test %rax,%rax - 43a616: 0f 85 0e 01 00 00 jne 43a72a <__stpcpy_ssse3+0x120a> - 43a61c: 66 0f 3a 0f d1 0c palignr $0xc,%xmm1,%xmm2 - 43a622: 0f 29 12 movaps %xmm2,(%rdx) - 43a625: 0f 28 51 14 movaps 0x14(%rcx),%xmm2 - 43a629: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a62d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a631: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a635: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a639: 0f 28 ca movaps %xmm2,%xmm1 - 43a63c: 48 85 c0 test %rax,%rax - 43a63f: 0f 85 e5 00 00 00 jne 43a72a <__stpcpy_ssse3+0x120a> - 43a645: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 - 43a64b: 0f 29 12 movaps %xmm2,(%rdx) - 43a64e: 0f 28 51 14 movaps 0x14(%rcx),%xmm2 - 43a652: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a656: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a65a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a65e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a662: 0f 28 da movaps %xmm2,%xmm3 - 43a665: 48 85 c0 test %rax,%rax - 43a668: 0f 85 bc 00 00 00 jne 43a72a <__stpcpy_ssse3+0x120a> - 43a66e: 66 0f 3a 0f d1 0c palignr $0xc,%xmm1,%xmm2 - 43a674: 0f 29 12 movaps %xmm2,(%rdx) - 43a677: 0f 28 51 14 movaps 0x14(%rcx),%xmm2 - 43a67b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a67f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a683: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a687: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a68b: 48 85 c0 test %rax,%rax - 43a68e: 0f 85 96 00 00 00 jne 43a72a <__stpcpy_ssse3+0x120a> - 43a694: 66 0f 3a 0f d3 0c palignr $0xc,%xmm3,%xmm2 - 43a69a: 0f 29 12 movaps %xmm2,(%rdx) - 43a69d: 48 8d 49 14 lea 0x14(%rcx),%rcx - 43a6a1: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a6a5: 48 89 c8 mov %rcx,%rax - 43a6a8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43a6ac: 48 29 c8 sub %rcx,%rax - 43a6af: 48 8d 49 fc lea -0x4(%rcx),%rcx - 43a6b3: 48 29 c2 sub %rax,%rdx - 43a6b6: 0f 28 49 f4 movaps -0xc(%rcx),%xmm1 - 43a6ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43a6c0: 0f 28 51 04 movaps 0x4(%rcx),%xmm2 - 43a6c4: 0f 28 59 14 movaps 0x14(%rcx),%xmm3 - 43a6c8: 0f 28 f3 movaps %xmm3,%xmm6 - 43a6cb: 0f 28 61 24 movaps 0x24(%rcx),%xmm4 - 43a6cf: 0f 28 fc movaps %xmm4,%xmm7 - 43a6d2: 0f 28 69 34 movaps 0x34(%rcx),%xmm5 - 43a6d6: 66 0f da f2 pminub %xmm2,%xmm6 - 43a6da: 66 0f da fd pminub %xmm5,%xmm7 - 43a6de: 66 0f da fe pminub %xmm6,%xmm7 - 43a6e2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 43a6e6: 66 0f d7 c7 pmovmskb %xmm7,%eax - 43a6ea: 0f 28 fd movaps %xmm5,%xmm7 - 43a6ed: 66 0f 3a 0f ec 0c palignr $0xc,%xmm4,%xmm5 - 43a6f3: 48 85 c0 test %rax,%rax - 43a6f6: 66 0f 3a 0f e3 0c palignr $0xc,%xmm3,%xmm4 - 43a6fc: 0f 85 06 ff ff ff jne 43a608 <__stpcpy_ssse3+0x10e8> - 43a702: 66 0f 3a 0f da 0c palignr $0xc,%xmm2,%xmm3 - 43a708: 48 8d 49 40 lea 0x40(%rcx),%rcx - 43a70c: 66 0f 3a 0f d1 0c palignr $0xc,%xmm1,%xmm2 - 43a712: 0f 28 cf movaps %xmm7,%xmm1 - 43a715: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 43a719: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 43a71d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 43a721: 0f 29 12 movaps %xmm2,(%rdx) - 43a724: 48 8d 52 40 lea 0x40(%rdx),%rdx - 43a728: eb 96 jmp 43a6c0 <__stpcpy_ssse3+0x11a0> - 43a72a: 44 8b 09 mov (%rcx),%r9d - 43a72d: 48 c7 c6 04 00 00 00 mov $0x4,%rsi - 43a734: 44 89 0a mov %r9d,(%rdx) - 43a737: e9 c4 03 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> - 43a73c: 0f 1f 40 00 nopl 0x0(%rax) - 43a740: 0f 28 49 f3 movaps -0xd(%rcx),%xmm1 - 43a744: 0f 28 51 03 movaps 0x3(%rcx),%xmm2 - 43a748: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a74c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a750: 0f 28 da movaps %xmm2,%xmm3 - 43a753: 48 85 c0 test %rax,%rax - 43a756: 0f 85 0e 01 00 00 jne 43a86a <__stpcpy_ssse3+0x134a> - 43a75c: 66 0f 3a 0f d1 0d palignr $0xd,%xmm1,%xmm2 - 43a762: 0f 29 12 movaps %xmm2,(%rdx) - 43a765: 0f 28 51 13 movaps 0x13(%rcx),%xmm2 - 43a769: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a76d: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a771: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a775: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a779: 0f 28 ca movaps %xmm2,%xmm1 - 43a77c: 48 85 c0 test %rax,%rax - 43a77f: 0f 85 e5 00 00 00 jne 43a86a <__stpcpy_ssse3+0x134a> - 43a785: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 - 43a78b: 0f 29 12 movaps %xmm2,(%rdx) - 43a78e: 0f 28 51 13 movaps 0x13(%rcx),%xmm2 - 43a792: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a796: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a79a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a79e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a7a2: 0f 28 da movaps %xmm2,%xmm3 - 43a7a5: 48 85 c0 test %rax,%rax - 43a7a8: 0f 85 bc 00 00 00 jne 43a86a <__stpcpy_ssse3+0x134a> - 43a7ae: 66 0f 3a 0f d1 0d palignr $0xd,%xmm1,%xmm2 - 43a7b4: 0f 29 12 movaps %xmm2,(%rdx) - 43a7b7: 0f 28 51 13 movaps 0x13(%rcx),%xmm2 - 43a7bb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a7bf: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a7c3: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a7c7: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a7cb: 48 85 c0 test %rax,%rax - 43a7ce: 0f 85 96 00 00 00 jne 43a86a <__stpcpy_ssse3+0x134a> - 43a7d4: 66 0f 3a 0f d3 0d palignr $0xd,%xmm3,%xmm2 - 43a7da: 0f 29 12 movaps %xmm2,(%rdx) - 43a7dd: 48 8d 49 13 lea 0x13(%rcx),%rcx - 43a7e1: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a7e5: 48 89 c8 mov %rcx,%rax - 43a7e8: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43a7ec: 48 29 c8 sub %rcx,%rax - 43a7ef: 48 8d 49 fd lea -0x3(%rcx),%rcx - 43a7f3: 48 29 c2 sub %rax,%rdx - 43a7f6: 0f 28 49 f3 movaps -0xd(%rcx),%xmm1 - 43a7fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43a800: 0f 28 51 03 movaps 0x3(%rcx),%xmm2 - 43a804: 0f 28 59 13 movaps 0x13(%rcx),%xmm3 - 43a808: 0f 28 f3 movaps %xmm3,%xmm6 - 43a80b: 0f 28 61 23 movaps 0x23(%rcx),%xmm4 - 43a80f: 0f 28 fc movaps %xmm4,%xmm7 - 43a812: 0f 28 69 33 movaps 0x33(%rcx),%xmm5 - 43a816: 66 0f da f2 pminub %xmm2,%xmm6 - 43a81a: 66 0f da fd pminub %xmm5,%xmm7 - 43a81e: 66 0f da fe pminub %xmm6,%xmm7 - 43a822: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 43a826: 66 0f d7 c7 pmovmskb %xmm7,%eax - 43a82a: 0f 28 fd movaps %xmm5,%xmm7 - 43a82d: 66 0f 3a 0f ec 0d palignr $0xd,%xmm4,%xmm5 - 43a833: 48 85 c0 test %rax,%rax - 43a836: 66 0f 3a 0f e3 0d palignr $0xd,%xmm3,%xmm4 - 43a83c: 0f 85 06 ff ff ff jne 43a748 <__stpcpy_ssse3+0x1228> - 43a842: 66 0f 3a 0f da 0d palignr $0xd,%xmm2,%xmm3 - 43a848: 48 8d 49 40 lea 0x40(%rcx),%rcx - 43a84c: 66 0f 3a 0f d1 0d palignr $0xd,%xmm1,%xmm2 - 43a852: 0f 28 cf movaps %xmm7,%xmm1 - 43a855: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 43a859: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 43a85d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 43a861: 0f 29 12 movaps %xmm2,(%rdx) - 43a864: 48 8d 52 40 lea 0x40(%rdx),%rdx - 43a868: eb 96 jmp 43a800 <__stpcpy_ssse3+0x12e0> - 43a86a: 44 8b 49 ff mov -0x1(%rcx),%r9d - 43a86e: 48 c7 c6 03 00 00 00 mov $0x3,%rsi - 43a875: 44 89 4a ff mov %r9d,-0x1(%rdx) - 43a879: e9 82 02 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> - 43a87e: 66 90 xchg %ax,%ax - 43a880: 0f 28 49 f2 movaps -0xe(%rcx),%xmm1 - 43a884: 0f 28 51 02 movaps 0x2(%rcx),%xmm2 - 43a888: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a88c: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a890: 0f 28 da movaps %xmm2,%xmm3 - 43a893: 48 85 c0 test %rax,%rax - 43a896: 0f 85 0e 01 00 00 jne 43a9aa <__stpcpy_ssse3+0x148a> - 43a89c: 66 0f 3a 0f d1 0e palignr $0xe,%xmm1,%xmm2 - 43a8a2: 0f 29 12 movaps %xmm2,(%rdx) - 43a8a5: 0f 28 51 12 movaps 0x12(%rcx),%xmm2 - 43a8a9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a8ad: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a8b1: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a8b5: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a8b9: 0f 28 ca movaps %xmm2,%xmm1 - 43a8bc: 48 85 c0 test %rax,%rax - 43a8bf: 0f 85 e5 00 00 00 jne 43a9aa <__stpcpy_ssse3+0x148a> - 43a8c5: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 - 43a8cb: 0f 29 12 movaps %xmm2,(%rdx) - 43a8ce: 0f 28 51 12 movaps 0x12(%rcx),%xmm2 - 43a8d2: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a8d6: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a8da: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a8de: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a8e2: 0f 28 da movaps %xmm2,%xmm3 - 43a8e5: 48 85 c0 test %rax,%rax - 43a8e8: 0f 85 bc 00 00 00 jne 43a9aa <__stpcpy_ssse3+0x148a> - 43a8ee: 66 0f 3a 0f d1 0e palignr $0xe,%xmm1,%xmm2 - 43a8f4: 0f 29 12 movaps %xmm2,(%rdx) - 43a8f7: 0f 28 51 12 movaps 0x12(%rcx),%xmm2 - 43a8fb: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a8ff: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a903: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a907: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a90b: 48 85 c0 test %rax,%rax - 43a90e: 0f 85 96 00 00 00 jne 43a9aa <__stpcpy_ssse3+0x148a> - 43a914: 66 0f 3a 0f d3 0e palignr $0xe,%xmm3,%xmm2 - 43a91a: 0f 29 12 movaps %xmm2,(%rdx) - 43a91d: 48 8d 49 12 lea 0x12(%rcx),%rcx - 43a921: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a925: 48 89 c8 mov %rcx,%rax - 43a928: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43a92c: 48 29 c8 sub %rcx,%rax - 43a92f: 48 8d 49 fe lea -0x2(%rcx),%rcx - 43a933: 48 29 c2 sub %rax,%rdx - 43a936: 0f 28 49 f2 movaps -0xe(%rcx),%xmm1 - 43a93a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43a940: 0f 28 51 02 movaps 0x2(%rcx),%xmm2 - 43a944: 0f 28 59 12 movaps 0x12(%rcx),%xmm3 - 43a948: 0f 28 f3 movaps %xmm3,%xmm6 - 43a94b: 0f 28 61 22 movaps 0x22(%rcx),%xmm4 - 43a94f: 0f 28 fc movaps %xmm4,%xmm7 - 43a952: 0f 28 69 32 movaps 0x32(%rcx),%xmm5 - 43a956: 66 0f da f2 pminub %xmm2,%xmm6 - 43a95a: 66 0f da fd pminub %xmm5,%xmm7 - 43a95e: 66 0f da fe pminub %xmm6,%xmm7 - 43a962: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 43a966: 66 0f d7 c7 pmovmskb %xmm7,%eax - 43a96a: 0f 28 fd movaps %xmm5,%xmm7 - 43a96d: 66 0f 3a 0f ec 0e palignr $0xe,%xmm4,%xmm5 - 43a973: 48 85 c0 test %rax,%rax - 43a976: 66 0f 3a 0f e3 0e palignr $0xe,%xmm3,%xmm4 - 43a97c: 0f 85 06 ff ff ff jne 43a888 <__stpcpy_ssse3+0x1368> - 43a982: 66 0f 3a 0f da 0e palignr $0xe,%xmm2,%xmm3 - 43a988: 48 8d 49 40 lea 0x40(%rcx),%rcx - 43a98c: 66 0f 3a 0f d1 0e palignr $0xe,%xmm1,%xmm2 - 43a992: 0f 28 cf movaps %xmm7,%xmm1 - 43a995: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 43a999: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 43a99d: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 43a9a1: 0f 29 12 movaps %xmm2,(%rdx) - 43a9a4: 48 8d 52 40 lea 0x40(%rdx),%rdx - 43a9a8: eb 96 jmp 43a940 <__stpcpy_ssse3+0x1420> - 43a9aa: 44 8b 49 fe mov -0x2(%rcx),%r9d - 43a9ae: 48 c7 c6 02 00 00 00 mov $0x2,%rsi - 43a9b5: 44 89 4a fe mov %r9d,-0x2(%rdx) - 43a9b9: e9 42 01 00 00 jmpq 43ab00 <__stpcpy_ssse3+0x15e0> - 43a9be: 66 90 xchg %ax,%ax - 43a9c0: 0f 28 49 f1 movaps -0xf(%rcx),%xmm1 - 43a9c4: 0f 28 51 01 movaps 0x1(%rcx),%xmm2 - 43a9c8: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a9cc: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a9d0: 0f 28 da movaps %xmm2,%xmm3 - 43a9d3: 48 85 c0 test %rax,%rax - 43a9d6: 0f 85 0e 01 00 00 jne 43aaea <__stpcpy_ssse3+0x15ca> - 43a9dc: 66 0f 3a 0f d1 0f palignr $0xf,%xmm1,%xmm2 - 43a9e2: 0f 29 12 movaps %xmm2,(%rdx) - 43a9e5: 0f 28 51 11 movaps 0x11(%rcx),%xmm2 - 43a9e9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43a9ed: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43a9f1: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43a9f5: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43a9f9: 0f 28 ca movaps %xmm2,%xmm1 - 43a9fc: 48 85 c0 test %rax,%rax - 43a9ff: 0f 85 e5 00 00 00 jne 43aaea <__stpcpy_ssse3+0x15ca> - 43aa05: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 - 43aa0b: 0f 29 12 movaps %xmm2,(%rdx) - 43aa0e: 0f 28 51 11 movaps 0x11(%rcx),%xmm2 - 43aa12: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43aa16: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43aa1a: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43aa1e: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43aa22: 0f 28 da movaps %xmm2,%xmm3 - 43aa25: 48 85 c0 test %rax,%rax - 43aa28: 0f 85 bc 00 00 00 jne 43aaea <__stpcpy_ssse3+0x15ca> - 43aa2e: 66 0f 3a 0f d1 0f palignr $0xf,%xmm1,%xmm2 - 43aa34: 0f 29 12 movaps %xmm2,(%rdx) - 43aa37: 0f 28 51 11 movaps 0x11(%rcx),%xmm2 - 43aa3b: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43aa3f: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43aa43: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43aa47: 48 8d 49 10 lea 0x10(%rcx),%rcx - 43aa4b: 48 85 c0 test %rax,%rax - 43aa4e: 0f 85 96 00 00 00 jne 43aaea <__stpcpy_ssse3+0x15ca> - 43aa54: 66 0f 3a 0f d3 0f palignr $0xf,%xmm3,%xmm2 - 43aa5a: 0f 29 12 movaps %xmm2,(%rdx) - 43aa5d: 48 8d 49 11 lea 0x11(%rcx),%rcx - 43aa61: 48 8d 52 10 lea 0x10(%rdx),%rdx - 43aa65: 48 89 c8 mov %rcx,%rax - 43aa68: 48 83 e1 c0 and $0xffffffffffffffc0,%rcx - 43aa6c: 48 29 c8 sub %rcx,%rax - 43aa6f: 48 8d 49 ff lea -0x1(%rcx),%rcx - 43aa73: 48 29 c2 sub %rax,%rdx - 43aa76: 0f 28 49 f1 movaps -0xf(%rcx),%xmm1 - 43aa7a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43aa80: 0f 28 51 01 movaps 0x1(%rcx),%xmm2 - 43aa84: 0f 28 59 11 movaps 0x11(%rcx),%xmm3 - 43aa88: 0f 28 f3 movaps %xmm3,%xmm6 - 43aa8b: 0f 28 61 21 movaps 0x21(%rcx),%xmm4 - 43aa8f: 0f 28 fc movaps %xmm4,%xmm7 - 43aa92: 0f 28 69 31 movaps 0x31(%rcx),%xmm5 - 43aa96: 66 0f da f2 pminub %xmm2,%xmm6 - 43aa9a: 66 0f da fd pminub %xmm5,%xmm7 - 43aa9e: 66 0f da fe pminub %xmm6,%xmm7 - 43aaa2: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 43aaa6: 66 0f d7 c7 pmovmskb %xmm7,%eax - 43aaaa: 0f 28 fd movaps %xmm5,%xmm7 - 43aaad: 66 0f 3a 0f ec 0f palignr $0xf,%xmm4,%xmm5 - 43aab3: 48 85 c0 test %rax,%rax - 43aab6: 66 0f 3a 0f e3 0f palignr $0xf,%xmm3,%xmm4 - 43aabc: 0f 85 06 ff ff ff jne 43a9c8 <__stpcpy_ssse3+0x14a8> - 43aac2: 66 0f 3a 0f da 0f palignr $0xf,%xmm2,%xmm3 - 43aac8: 48 8d 49 40 lea 0x40(%rcx),%rcx - 43aacc: 66 0f 3a 0f d1 0f palignr $0xf,%xmm1,%xmm2 - 43aad2: 0f 28 cf movaps %xmm7,%xmm1 - 43aad5: 0f 29 6a 30 movaps %xmm5,0x30(%rdx) - 43aad9: 0f 29 62 20 movaps %xmm4,0x20(%rdx) - 43aadd: 0f 29 5a 10 movaps %xmm3,0x10(%rdx) - 43aae1: 0f 29 12 movaps %xmm2,(%rdx) - 43aae4: 48 8d 52 40 lea 0x40(%rdx),%rdx - 43aae8: eb 96 jmp 43aa80 <__stpcpy_ssse3+0x1560> - 43aaea: 44 8b 49 fd mov -0x3(%rcx),%r9d - 43aaee: 48 c7 c6 01 00 00 00 mov $0x1,%rsi - 43aaf5: 44 89 4a fd mov %r9d,-0x3(%rdx) - 43aaf9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43ab00: 48 01 f2 add %rsi,%rdx - 43ab03: 48 01 f1 add %rsi,%rcx - 43ab06: 84 c0 test %al,%al - 43ab08: 74 56 je 43ab60 <__stpcpy_ssse3+0x1640> - 43ab0a: a8 01 test $0x1,%al - 43ab0c: 0f 85 ae 00 00 00 jne 43abc0 <__stpcpy_ssse3+0x16a0> - 43ab12: a8 02 test $0x2,%al - 43ab14: 0f 85 b6 00 00 00 jne 43abd0 <__stpcpy_ssse3+0x16b0> - 43ab1a: a8 04 test $0x4,%al - 43ab1c: 0f 85 be 00 00 00 jne 43abe0 <__stpcpy_ssse3+0x16c0> - 43ab22: a8 08 test $0x8,%al - 43ab24: 0f 85 d6 00 00 00 jne 43ac00 <__stpcpy_ssse3+0x16e0> - 43ab2a: a8 10 test $0x10,%al - 43ab2c: 0f 85 de 00 00 00 jne 43ac10 <__stpcpy_ssse3+0x16f0> - 43ab32: a8 20 test $0x20,%al - 43ab34: 0f 85 e6 00 00 00 jne 43ac20 <__stpcpy_ssse3+0x1700> - 43ab3a: a8 40 test $0x40,%al - 43ab3c: 0f 85 fe 00 00 00 jne 43ac40 <__stpcpy_ssse3+0x1720> - 43ab42: 0f 1f 40 00 nopl 0x0(%rax) - 43ab46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43ab4d: 00 00 00 - 43ab50: 48 8b 01 mov (%rcx),%rax - 43ab53: 48 89 02 mov %rax,(%rdx) - 43ab56: 48 8d 42 07 lea 0x7(%rdx),%rax - 43ab5a: c3 retq - 43ab5b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43ab60: f6 c4 01 test $0x1,%ah - 43ab63: 0f 85 e7 00 00 00 jne 43ac50 <__stpcpy_ssse3+0x1730> - 43ab69: f6 c4 02 test $0x2,%ah - 43ab6c: 0f 85 fe 00 00 00 jne 43ac70 <__stpcpy_ssse3+0x1750> - 43ab72: f6 c4 04 test $0x4,%ah - 43ab75: 0f 85 15 01 00 00 jne 43ac90 <__stpcpy_ssse3+0x1770> - 43ab7b: f6 c4 08 test $0x8,%ah - 43ab7e: 0f 85 2c 01 00 00 jne 43acb0 <__stpcpy_ssse3+0x1790> - 43ab84: f6 c4 10 test $0x10,%ah - 43ab87: 0f 85 43 01 00 00 jne 43acd0 <__stpcpy_ssse3+0x17b0> - 43ab8d: f6 c4 20 test $0x20,%ah - 43ab90: 0f 85 5a 01 00 00 jne 43acf0 <__stpcpy_ssse3+0x17d0> - 43ab96: f6 c4 40 test $0x40,%ah - 43ab99: 0f 85 71 01 00 00 jne 43ad10 <__stpcpy_ssse3+0x17f0> - 43ab9f: 90 nop - 43aba0: 48 8b 01 mov (%rcx),%rax - 43aba3: 48 89 02 mov %rax,(%rdx) - 43aba6: 48 8b 41 08 mov 0x8(%rcx),%rax - 43abaa: 48 89 42 08 mov %rax,0x8(%rdx) - 43abae: 48 8d 42 0f lea 0xf(%rdx),%rax - 43abb2: c3 retq - 43abb3: 0f 1f 00 nopl (%rax) - 43abb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43abbd: 00 00 00 - 43abc0: 8a 01 mov (%rcx),%al - 43abc2: 88 02 mov %al,(%rdx) - 43abc4: 48 8d 02 lea (%rdx),%rax - 43abc7: c3 retq - 43abc8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43abcf: 00 - 43abd0: 66 8b 01 mov (%rcx),%ax - 43abd3: 66 89 02 mov %ax,(%rdx) - 43abd6: 48 8d 42 01 lea 0x1(%rdx),%rax - 43abda: c3 retq - 43abdb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43abe0: 66 8b 01 mov (%rcx),%ax - 43abe3: 66 89 02 mov %ax,(%rdx) - 43abe6: 8a 41 02 mov 0x2(%rcx),%al - 43abe9: 88 42 02 mov %al,0x2(%rdx) - 43abec: 48 8d 42 02 lea 0x2(%rdx),%rax - 43abf0: c3 retq - 43abf1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43abf6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43abfd: 00 00 00 - 43ac00: 8b 01 mov (%rcx),%eax - 43ac02: 89 02 mov %eax,(%rdx) - 43ac04: 48 8d 42 03 lea 0x3(%rdx),%rax - 43ac08: c3 retq - 43ac09: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43ac10: 8b 01 mov (%rcx),%eax - 43ac12: 89 02 mov %eax,(%rdx) - 43ac14: 8a 41 04 mov 0x4(%rcx),%al - 43ac17: 88 42 04 mov %al,0x4(%rdx) - 43ac1a: 48 8d 42 04 lea 0x4(%rdx),%rax - 43ac1e: c3 retq - 43ac1f: 90 nop - 43ac20: 8b 01 mov (%rcx),%eax - 43ac22: 89 02 mov %eax,(%rdx) - 43ac24: 66 8b 41 04 mov 0x4(%rcx),%ax - 43ac28: 66 89 42 04 mov %ax,0x4(%rdx) - 43ac2c: 48 8d 42 05 lea 0x5(%rdx),%rax - 43ac30: c3 retq - 43ac31: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43ac36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43ac3d: 00 00 00 - 43ac40: 8b 01 mov (%rcx),%eax - 43ac42: 89 02 mov %eax,(%rdx) - 43ac44: 8b 41 03 mov 0x3(%rcx),%eax - 43ac47: 89 42 03 mov %eax,0x3(%rdx) - 43ac4a: 48 8d 42 06 lea 0x6(%rdx),%rax - 43ac4e: c3 retq - 43ac4f: 90 nop - 43ac50: 48 8b 01 mov (%rcx),%rax - 43ac53: 48 89 02 mov %rax,(%rdx) - 43ac56: 8b 41 05 mov 0x5(%rcx),%eax - 43ac59: 89 42 05 mov %eax,0x5(%rdx) - 43ac5c: 48 8d 42 08 lea 0x8(%rdx),%rax - 43ac60: c3 retq - 43ac61: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43ac66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43ac6d: 00 00 00 - 43ac70: 48 8b 01 mov (%rcx),%rax - 43ac73: 48 89 02 mov %rax,(%rdx) - 43ac76: 8b 41 06 mov 0x6(%rcx),%eax - 43ac79: 89 42 06 mov %eax,0x6(%rdx) - 43ac7c: 48 8d 42 09 lea 0x9(%rdx),%rax - 43ac80: c3 retq - 43ac81: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43ac86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43ac8d: 00 00 00 - 43ac90: 48 8b 01 mov (%rcx),%rax - 43ac93: 48 89 02 mov %rax,(%rdx) - 43ac96: 8b 41 07 mov 0x7(%rcx),%eax - 43ac99: 89 42 07 mov %eax,0x7(%rdx) - 43ac9c: 48 8d 42 0a lea 0xa(%rdx),%rax - 43aca0: c3 retq - 43aca1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43aca6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43acad: 00 00 00 - 43acb0: 48 8b 01 mov (%rcx),%rax - 43acb3: 48 89 02 mov %rax,(%rdx) - 43acb6: 8b 41 08 mov 0x8(%rcx),%eax - 43acb9: 89 42 08 mov %eax,0x8(%rdx) - 43acbc: 48 8d 42 0b lea 0xb(%rdx),%rax - 43acc0: c3 retq - 43acc1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43acc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43accd: 00 00 00 - 43acd0: 48 8b 01 mov (%rcx),%rax - 43acd3: 48 89 02 mov %rax,(%rdx) - 43acd6: 48 8b 41 05 mov 0x5(%rcx),%rax - 43acda: 48 89 42 05 mov %rax,0x5(%rdx) - 43acde: 48 8d 42 0c lea 0xc(%rdx),%rax - 43ace2: c3 retq - 43ace3: 0f 1f 00 nopl (%rax) - 43ace6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43aced: 00 00 00 - 43acf0: 48 8b 01 mov (%rcx),%rax - 43acf3: 48 89 02 mov %rax,(%rdx) - 43acf6: 48 8b 41 06 mov 0x6(%rcx),%rax - 43acfa: 48 89 42 06 mov %rax,0x6(%rdx) - 43acfe: 48 8d 42 0d lea 0xd(%rdx),%rax - 43ad02: c3 retq - 43ad03: 0f 1f 00 nopl (%rax) - 43ad06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43ad0d: 00 00 00 - 43ad10: 48 8b 01 mov (%rcx),%rax - 43ad13: 48 89 02 mov %rax,(%rdx) - 43ad16: 48 8b 41 07 mov 0x7(%rcx),%rax - 43ad1a: 48 89 42 07 mov %rax,0x7(%rdx) - 43ad1e: 48 8d 42 0e lea 0xe(%rdx),%rax - 43ad22: c3 retq - 43ad23: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43ad2a: 00 00 00 - 43ad2d: 0f 1f 00 nopl (%rax) - -000000000043ad30 <__strcpy_sse2_unaligned>: - 43ad30: 48 89 f1 mov %rsi,%rcx - 43ad33: 48 89 f8 mov %rdi,%rax - 43ad36: 48 83 e1 3f and $0x3f,%rcx - 43ad3a: 48 83 f9 20 cmp $0x20,%rcx - 43ad3e: 0f 86 0f 02 00 00 jbe 43af53 <__strcpy_sse2_unaligned+0x223> - 43ad44: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 43ad48: 48 83 e1 0f and $0xf,%rcx - 43ad4c: 66 0f ef c0 pxor %xmm0,%xmm0 - 43ad50: 66 0f ef c9 pxor %xmm1,%xmm1 - 43ad54: 66 0f 74 0e pcmpeqb (%rsi),%xmm1 - 43ad58: 66 0f d7 d1 pmovmskb %xmm1,%edx - 43ad5c: 48 d3 ea shr %cl,%rdx - 43ad5f: 48 85 d2 test %rdx,%rdx - 43ad62: 0f 85 48 02 00 00 jne 43afb0 <__strcpy_sse2_unaligned+0x280> - 43ad68: 66 0f 74 46 10 pcmpeqb 0x10(%rsi),%xmm0 - 43ad6d: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43ad71: 48 85 d2 test %rdx,%rdx - 43ad74: 0f 85 76 02 00 00 jne 43aff0 <__strcpy_sse2_unaligned+0x2c0> - 43ad7a: f3 0f 6f 0c 0e movdqu (%rsi,%rcx,1),%xmm1 - 43ad7f: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 43ad83: 0f 1f 00 nopl (%rax) - 43ad86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43ad8d: 00 00 00 - 43ad90: 48 29 cf sub %rcx,%rdi - 43ad93: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 43ad9a: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 43ad9f: 0f 28 54 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm2 - 43ada4: f3 0f 7f 0c 0f movdqu %xmm1,(%rdi,%rcx,1) - 43ada9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43adad: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43adb1: 48 83 c1 10 add $0x10,%rcx - 43adb5: 48 85 d2 test %rdx,%rdx - 43adb8: 0f 85 d2 01 00 00 jne 43af90 <__strcpy_sse2_unaligned+0x260> - 43adbe: 0f 28 5c 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm3 - 43adc3: f3 0f 7f 14 0f movdqu %xmm2,(%rdi,%rcx,1) - 43adc8: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 43adcc: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43add0: 48 83 c1 10 add $0x10,%rcx - 43add4: 48 85 d2 test %rdx,%rdx - 43add7: 0f 85 b3 01 00 00 jne 43af90 <__strcpy_sse2_unaligned+0x260> - 43addd: 0f 28 64 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm4 - 43ade2: f3 0f 7f 1c 0f movdqu %xmm3,(%rdi,%rcx,1) - 43ade7: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 - 43adeb: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43adef: 48 83 c1 10 add $0x10,%rcx - 43adf3: 48 85 d2 test %rdx,%rdx - 43adf6: 0f 85 94 01 00 00 jne 43af90 <__strcpy_sse2_unaligned+0x260> - 43adfc: 0f 28 4c 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm1 - 43ae01: f3 0f 7f 24 0f movdqu %xmm4,(%rdi,%rcx,1) - 43ae06: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 43ae0a: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43ae0e: 48 83 c1 10 add $0x10,%rcx - 43ae12: 48 85 d2 test %rdx,%rdx - 43ae15: 0f 85 75 01 00 00 jne 43af90 <__strcpy_sse2_unaligned+0x260> - 43ae1b: 0f 28 54 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm2 - 43ae20: f3 0f 7f 0c 0f movdqu %xmm1,(%rdi,%rcx,1) - 43ae25: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43ae29: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43ae2d: 48 83 c1 10 add $0x10,%rcx - 43ae31: 48 85 d2 test %rdx,%rdx - 43ae34: 0f 85 56 01 00 00 jne 43af90 <__strcpy_sse2_unaligned+0x260> - 43ae3a: 0f 28 5c 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm3 - 43ae3f: f3 0f 7f 14 0f movdqu %xmm2,(%rdi,%rcx,1) - 43ae44: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 43ae48: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43ae4c: 48 83 c1 10 add $0x10,%rcx - 43ae50: 48 85 d2 test %rdx,%rdx - 43ae53: 0f 85 37 01 00 00 jne 43af90 <__strcpy_sse2_unaligned+0x260> - 43ae59: f3 0f 7f 1c 0f movdqu %xmm3,(%rdi,%rcx,1) - 43ae5e: 48 89 f2 mov %rsi,%rdx - 43ae61: 48 8d 74 0e 10 lea 0x10(%rsi,%rcx,1),%rsi - 43ae66: 48 83 e6 c0 and $0xffffffffffffffc0,%rsi - 43ae6a: 48 29 f2 sub %rsi,%rdx - 43ae6d: 48 29 d7 sub %rdx,%rdi - 43ae70: 0f 28 16 movaps (%rsi),%xmm2 - 43ae73: 0f 28 e2 movaps %xmm2,%xmm4 - 43ae76: 0f 28 6e 10 movaps 0x10(%rsi),%xmm5 - 43ae7a: 0f 28 5e 20 movaps 0x20(%rsi),%xmm3 - 43ae7e: 0f 28 f3 movaps %xmm3,%xmm6 - 43ae81: 0f 28 7e 30 movaps 0x30(%rsi),%xmm7 - 43ae85: 66 0f da d5 pminub %xmm5,%xmm2 - 43ae89: 66 0f da df pminub %xmm7,%xmm3 - 43ae8d: 66 0f da da pminub %xmm2,%xmm3 - 43ae91: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 - 43ae95: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43ae99: 48 85 d2 test %rdx,%rdx - 43ae9c: 75 4b jne 43aee9 <__strcpy_sse2_unaligned+0x1b9> - 43ae9e: 48 83 c7 40 add $0x40,%rdi - 43aea2: 48 83 c6 40 add $0x40,%rsi - 43aea6: f3 0f 7f 67 c0 movdqu %xmm4,-0x40(%rdi) - 43aeab: 0f 28 16 movaps (%rsi),%xmm2 - 43aeae: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 43aeb2: f3 0f 7f 6f d0 movdqu %xmm5,-0x30(%rdi) - 43aeb7: 0f 28 6e 10 movaps 0x10(%rsi),%xmm5 - 43aebb: 66 0f da d5 pminub %xmm5,%xmm2 - 43aebf: 0f 28 5e 20 movaps 0x20(%rsi),%xmm3 - 43aec3: f3 0f 7f 77 e0 movdqu %xmm6,-0x20(%rdi) - 43aec8: 0f 28 f3 movaps %xmm3,%xmm6 - 43aecb: f3 0f 7f 7f f0 movdqu %xmm7,-0x10(%rdi) - 43aed0: 0f 28 7e 30 movaps 0x30(%rsi),%xmm7 - 43aed4: 66 0f da df pminub %xmm7,%xmm3 - 43aed8: 66 0f da da pminub %xmm2,%xmm3 - 43aedc: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 - 43aee0: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43aee4: 48 85 d2 test %rdx,%rdx - 43aee7: 74 b5 je 43ae9e <__strcpy_sse2_unaligned+0x16e> - 43aee9: 66 0f ef c9 pxor %xmm1,%xmm1 - 43aeed: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 - 43aef1: 66 0f 74 cd pcmpeqb %xmm5,%xmm1 - 43aef5: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43aef9: 66 0f d7 c9 pmovmskb %xmm1,%ecx - 43aefd: 48 85 d2 test %rdx,%rdx - 43af00: 0f 85 0a 01 00 00 jne 43b010 <__strcpy_sse2_unaligned+0x2e0> - 43af06: 48 85 c9 test %rcx,%rcx - 43af09: 0f 85 21 01 00 00 jne 43b030 <__strcpy_sse2_unaligned+0x300> - 43af0f: 66 0f 74 c6 pcmpeqb %xmm6,%xmm0 - 43af13: 66 0f 74 cf pcmpeqb %xmm7,%xmm1 - 43af17: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43af1b: 66 0f d7 c9 pmovmskb %xmm1,%ecx - 43af1f: 48 85 d2 test %rdx,%rdx - 43af22: 0f 85 38 01 00 00 jne 43b060 <__strcpy_sse2_unaligned+0x330> - 43af28: 48 0f bc d1 bsf %rcx,%rdx - 43af2c: f3 0f 7f 27 movdqu %xmm4,(%rdi) - 43af30: f3 0f 7f 6f 10 movdqu %xmm5,0x10(%rdi) - 43af35: f3 0f 7f 77 20 movdqu %xmm6,0x20(%rdi) - 43af3a: 48 83 c6 30 add $0x30,%rsi - 43af3e: 48 83 c7 30 add $0x30,%rdi - 43af42: 4c 8d 1d 67 8b 06 00 lea 0x68b67(%rip),%r11 # 4a3ab0 - 43af49: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 43af4d: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx - 43af51: ff e1 jmpq *%rcx - 43af53: 66 0f ef c0 pxor %xmm0,%xmm0 - 43af57: f3 0f 6f 0e movdqu (%rsi),%xmm1 - 43af5b: f3 0f 6f 56 10 movdqu 0x10(%rsi),%xmm2 - 43af60: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 43af64: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43af68: 48 85 d2 test %rdx,%rdx - 43af6b: 75 6b jne 43afd8 <__strcpy_sse2_unaligned+0x2a8> - 43af6d: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43af71: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 43af75: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43af79: 48 85 d2 test %rdx,%rdx - 43af7c: 75 52 jne 43afd0 <__strcpy_sse2_unaligned+0x2a0> - 43af7e: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 43af82: 48 83 e1 0f and $0xf,%rcx - 43af86: e9 05 fe ff ff jmpq 43ad90 <__strcpy_sse2_unaligned+0x60> - 43af8b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43af90: 48 01 cf add %rcx,%rdi - 43af93: 48 01 ce add %rcx,%rsi - 43af96: 48 0f bc d2 bsf %rdx,%rdx - 43af9a: 4c 8d 1d 0f 8b 06 00 lea 0x68b0f(%rip),%r11 # 4a3ab0 - 43afa1: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 43afa5: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx - 43afa9: ff e1 jmpq *%rcx - 43afab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43afb0: 48 01 ce add %rcx,%rsi - 43afb3: 48 0f bc d2 bsf %rdx,%rdx - 43afb7: 4c 8d 1d f2 8a 06 00 lea 0x68af2(%rip),%r11 # 4a3ab0 - 43afbe: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 43afc2: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx - 43afc6: ff e1 jmpq *%rcx - 43afc8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43afcf: 00 - 43afd0: 48 83 c6 10 add $0x10,%rsi - 43afd4: 48 83 c7 10 add $0x10,%rdi - 43afd8: 48 0f bc d2 bsf %rdx,%rdx - 43afdc: 4c 8d 1d cd 8a 06 00 lea 0x68acd(%rip),%r11 # 4a3ab0 - 43afe3: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 43afe7: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx - 43afeb: ff e1 jmpq *%rcx - 43afed: 0f 1f 00 nopl (%rax) - 43aff0: 48 0f bc d2 bsf %rdx,%rdx - 43aff4: 48 01 ce add %rcx,%rsi - 43aff7: 48 83 c2 10 add $0x10,%rdx - 43affb: 48 29 ca sub %rcx,%rdx - 43affe: 4c 8d 1d ab 8a 06 00 lea 0x68aab(%rip),%r11 # 4a3ab0 - 43b005: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 43b009: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx - 43b00d: ff e1 jmpq *%rcx - 43b00f: 90 nop - 43b010: 48 0f bc d2 bsf %rdx,%rdx - 43b014: 4c 8d 1d 95 8a 06 00 lea 0x68a95(%rip),%r11 # 4a3ab0 - 43b01b: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 43b01f: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx - 43b023: ff e1 jmpq *%rcx - 43b025: 90 nop - 43b026: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b02d: 00 00 00 - 43b030: 48 0f bc d1 bsf %rcx,%rdx - 43b034: f3 0f 7f 27 movdqu %xmm4,(%rdi) - 43b038: 48 83 c6 10 add $0x10,%rsi - 43b03c: 48 83 c7 10 add $0x10,%rdi - 43b040: 4c 8d 1d 69 8a 06 00 lea 0x68a69(%rip),%r11 # 4a3ab0 - 43b047: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 43b04b: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx - 43b04f: ff e1 jmpq *%rcx - 43b051: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43b056: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b05d: 00 00 00 - 43b060: 48 0f bc d2 bsf %rdx,%rdx - 43b064: f3 0f 7f 27 movdqu %xmm4,(%rdi) - 43b068: f3 0f 7f 6f 10 movdqu %xmm5,0x10(%rdi) - 43b06d: 48 83 c6 20 add $0x20,%rsi - 43b071: 48 83 c7 20 add $0x20,%rdi - 43b075: 4c 8d 1d 34 8a 06 00 lea 0x68a34(%rip),%r11 # 4a3ab0 - 43b07c: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 43b080: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx - 43b084: ff e1 jmpq *%rcx - 43b086: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b08d: 00 00 00 - 43b090: 88 37 mov %dh,(%rdi) - 43b092: c3 retq - 43b093: 0f 1f 00 nopl (%rax) - 43b096: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b09d: 00 00 00 - 43b0a0: 66 8b 16 mov (%rsi),%dx - 43b0a3: 66 89 17 mov %dx,(%rdi) - 43b0a6: c3 retq - 43b0a7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43b0ae: 00 00 - 43b0b0: 66 8b 0e mov (%rsi),%cx - 43b0b3: 66 89 0f mov %cx,(%rdi) - 43b0b6: 88 77 02 mov %dh,0x2(%rdi) - 43b0b9: c3 retq - 43b0ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43b0c0: 8b 16 mov (%rsi),%edx - 43b0c2: 89 17 mov %edx,(%rdi) - 43b0c4: c3 retq - 43b0c5: 90 nop - 43b0c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b0cd: 00 00 00 - 43b0d0: 8b 0e mov (%rsi),%ecx - 43b0d2: 88 77 04 mov %dh,0x4(%rdi) - 43b0d5: 89 0f mov %ecx,(%rdi) - 43b0d7: c3 retq - 43b0d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43b0df: 00 - 43b0e0: 8b 0e mov (%rsi),%ecx - 43b0e2: 66 8b 56 04 mov 0x4(%rsi),%dx - 43b0e6: 89 0f mov %ecx,(%rdi) - 43b0e8: 66 89 57 04 mov %dx,0x4(%rdi) - 43b0ec: c3 retq - 43b0ed: 0f 1f 00 nopl (%rax) - 43b0f0: 8b 0e mov (%rsi),%ecx - 43b0f2: 8b 56 03 mov 0x3(%rsi),%edx - 43b0f5: 89 0f mov %ecx,(%rdi) - 43b0f7: 89 57 03 mov %edx,0x3(%rdi) - 43b0fa: c3 retq - 43b0fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43b100: 48 8b 16 mov (%rsi),%rdx - 43b103: 48 89 17 mov %rdx,(%rdi) - 43b106: c3 retq - 43b107: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43b10e: 00 00 - 43b110: 48 8b 0e mov (%rsi),%rcx - 43b113: 88 77 08 mov %dh,0x8(%rdi) - 43b116: 48 89 0f mov %rcx,(%rdi) - 43b119: c3 retq - 43b11a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43b120: 48 8b 0e mov (%rsi),%rcx - 43b123: 66 8b 56 08 mov 0x8(%rsi),%dx - 43b127: 48 89 0f mov %rcx,(%rdi) - 43b12a: 66 89 57 08 mov %dx,0x8(%rdi) - 43b12e: c3 retq - 43b12f: 90 nop - 43b130: 48 8b 0e mov (%rsi),%rcx - 43b133: 8b 56 07 mov 0x7(%rsi),%edx - 43b136: 48 89 0f mov %rcx,(%rdi) - 43b139: 89 57 07 mov %edx,0x7(%rdi) - 43b13c: c3 retq - 43b13d: 0f 1f 00 nopl (%rax) - 43b140: 48 8b 0e mov (%rsi),%rcx - 43b143: 8b 56 08 mov 0x8(%rsi),%edx - 43b146: 48 89 0f mov %rcx,(%rdi) - 43b149: 89 57 08 mov %edx,0x8(%rdi) - 43b14c: c3 retq - 43b14d: 0f 1f 00 nopl (%rax) - 43b150: 48 8b 0e mov (%rsi),%rcx - 43b153: 48 8b 56 05 mov 0x5(%rsi),%rdx - 43b157: 48 89 0f mov %rcx,(%rdi) - 43b15a: 48 89 57 05 mov %rdx,0x5(%rdi) - 43b15e: c3 retq - 43b15f: 90 nop - 43b160: 48 8b 0e mov (%rsi),%rcx - 43b163: 48 8b 56 06 mov 0x6(%rsi),%rdx - 43b167: 48 89 0f mov %rcx,(%rdi) - 43b16a: 48 89 57 06 mov %rdx,0x6(%rdi) - 43b16e: c3 retq - 43b16f: 90 nop - 43b170: 48 8b 0e mov (%rsi),%rcx - 43b173: 48 8b 56 07 mov 0x7(%rsi),%rdx - 43b177: 48 89 0f mov %rcx,(%rdi) - 43b17a: 48 89 57 07 mov %rdx,0x7(%rdi) - 43b17e: c3 retq - 43b17f: 90 nop - 43b180: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b184: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b188: c3 retq - 43b189: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43b190: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b194: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b198: 88 77 10 mov %dh,0x10(%rdi) - 43b19b: c3 retq - 43b19c: 0f 1f 40 00 nopl 0x0(%rax) - 43b1a0: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b1a4: 66 8b 4e 10 mov 0x10(%rsi),%cx - 43b1a8: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b1ac: 66 89 4f 10 mov %cx,0x10(%rdi) - 43b1b0: c3 retq - 43b1b1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43b1b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b1bd: 00 00 00 - 43b1c0: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b1c4: 8b 4e 0f mov 0xf(%rsi),%ecx - 43b1c7: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b1cb: 89 4f 0f mov %ecx,0xf(%rdi) - 43b1ce: c3 retq - 43b1cf: 90 nop - 43b1d0: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b1d4: 8b 4e 10 mov 0x10(%rsi),%ecx - 43b1d7: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b1db: 89 4f 10 mov %ecx,0x10(%rdi) - 43b1de: c3 retq - 43b1df: 90 nop - 43b1e0: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b1e4: 8b 4e 10 mov 0x10(%rsi),%ecx - 43b1e7: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b1eb: 89 4f 10 mov %ecx,0x10(%rdi) - 43b1ee: 88 77 14 mov %dh,0x14(%rdi) - 43b1f1: c3 retq - 43b1f2: 0f 1f 40 00 nopl 0x0(%rax) - 43b1f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b1fd: 00 00 00 - 43b200: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b204: 48 8b 4e 0e mov 0xe(%rsi),%rcx - 43b208: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b20c: 48 89 4f 0e mov %rcx,0xe(%rdi) - 43b210: c3 retq - 43b211: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43b216: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b21d: 00 00 00 - 43b220: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b224: 48 8b 4e 0f mov 0xf(%rsi),%rcx - 43b228: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b22c: 48 89 4f 0f mov %rcx,0xf(%rdi) - 43b230: c3 retq - 43b231: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43b236: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b23d: 00 00 00 - 43b240: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b244: 48 8b 4e 10 mov 0x10(%rsi),%rcx - 43b248: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b24c: 48 89 4f 10 mov %rcx,0x10(%rdi) - 43b250: c3 retq - 43b251: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43b256: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b25d: 00 00 00 - 43b260: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b264: 48 8b 4e 10 mov 0x10(%rsi),%rcx - 43b268: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b26c: 48 89 4f 10 mov %rcx,0x10(%rdi) - 43b270: 88 77 18 mov %dh,0x18(%rdi) - 43b273: c3 retq - 43b274: 66 90 xchg %ax,%ax - 43b276: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b27d: 00 00 00 - 43b280: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b284: 48 8b 56 10 mov 0x10(%rsi),%rdx - 43b288: 66 8b 4e 18 mov 0x18(%rsi),%cx - 43b28c: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b290: 48 89 57 10 mov %rdx,0x10(%rdi) - 43b294: 66 89 4f 18 mov %cx,0x18(%rdi) - 43b298: c3 retq - 43b299: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43b2a0: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b2a4: 48 8b 56 10 mov 0x10(%rsi),%rdx - 43b2a8: 8b 4e 17 mov 0x17(%rsi),%ecx - 43b2ab: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b2af: 48 89 57 10 mov %rdx,0x10(%rdi) - 43b2b3: 89 4f 17 mov %ecx,0x17(%rdi) - 43b2b6: c3 retq - 43b2b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43b2be: 00 00 - 43b2c0: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b2c4: 48 8b 56 10 mov 0x10(%rsi),%rdx - 43b2c8: 8b 4e 18 mov 0x18(%rsi),%ecx - 43b2cb: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b2cf: 48 89 57 10 mov %rdx,0x10(%rdi) - 43b2d3: 89 4f 18 mov %ecx,0x18(%rdi) - 43b2d6: c3 retq - 43b2d7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43b2de: 00 00 - 43b2e0: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b2e4: f3 0f 6f 56 0d movdqu 0xd(%rsi),%xmm2 - 43b2e9: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b2ed: f3 0f 7f 57 0d movdqu %xmm2,0xd(%rdi) - 43b2f2: c3 retq - 43b2f3: 0f 1f 00 nopl (%rax) - 43b2f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b2fd: 00 00 00 - 43b300: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b304: f3 0f 6f 56 0e movdqu 0xe(%rsi),%xmm2 - 43b309: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b30d: f3 0f 7f 57 0e movdqu %xmm2,0xe(%rdi) - 43b312: c3 retq - 43b313: 0f 1f 00 nopl (%rax) - 43b316: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b31d: 00 00 00 - 43b320: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b324: f3 0f 6f 56 0f movdqu 0xf(%rsi),%xmm2 - 43b329: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b32d: f3 0f 7f 57 0f movdqu %xmm2,0xf(%rdi) - 43b332: c3 retq - 43b333: 0f 1f 00 nopl (%rax) - 43b336: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b33d: 00 00 00 - 43b340: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b344: f3 0f 6f 56 10 movdqu 0x10(%rsi),%xmm2 - 43b349: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b34d: f3 0f 7f 57 10 movdqu %xmm2,0x10(%rdi) - 43b352: c3 retq - 43b353: 0f 1f 00 nopl (%rax) - 43b356: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b35d: 00 00 00 - -000000000043b360 <__stpcpy_sse2_unaligned>: - 43b360: 48 89 f1 mov %rsi,%rcx - 43b363: 48 83 e1 3f and $0x3f,%rcx - 43b367: 48 83 f9 20 cmp $0x20,%rcx - 43b36b: 0f 86 02 02 00 00 jbe 43b573 <__stpcpy_sse2_unaligned+0x213> - 43b371: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 43b375: 48 83 e1 0f and $0xf,%rcx - 43b379: 66 0f ef c0 pxor %xmm0,%xmm0 - 43b37d: 66 0f ef c9 pxor %xmm1,%xmm1 - 43b381: 66 0f 74 0e pcmpeqb (%rsi),%xmm1 - 43b385: 66 0f d7 d1 pmovmskb %xmm1,%edx - 43b389: 48 d3 ea shr %cl,%rdx - 43b38c: 48 85 d2 test %rdx,%rdx - 43b38f: 0f 85 3b 02 00 00 jne 43b5d0 <__stpcpy_sse2_unaligned+0x270> - 43b395: 66 0f 74 46 10 pcmpeqb 0x10(%rsi),%xmm0 - 43b39a: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43b39e: 48 85 d2 test %rdx,%rdx - 43b3a1: 0f 85 69 02 00 00 jne 43b610 <__stpcpy_sse2_unaligned+0x2b0> - 43b3a7: f3 0f 6f 0c 0e movdqu (%rsi,%rcx,1),%xmm1 - 43b3ac: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 43b3b0: 48 29 cf sub %rcx,%rdi - 43b3b3: 48 c7 c1 10 00 00 00 mov $0x10,%rcx - 43b3ba: 66 0f 6f 0c 0e movdqa (%rsi,%rcx,1),%xmm1 - 43b3bf: 0f 28 54 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm2 - 43b3c4: f3 0f 7f 0c 0f movdqu %xmm1,(%rdi,%rcx,1) - 43b3c9: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43b3cd: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43b3d1: 48 83 c1 10 add $0x10,%rcx - 43b3d5: 48 85 d2 test %rdx,%rdx - 43b3d8: 0f 85 d2 01 00 00 jne 43b5b0 <__stpcpy_sse2_unaligned+0x250> - 43b3de: 0f 28 5c 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm3 - 43b3e3: f3 0f 7f 14 0f movdqu %xmm2,(%rdi,%rcx,1) - 43b3e8: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 43b3ec: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43b3f0: 48 83 c1 10 add $0x10,%rcx - 43b3f4: 48 85 d2 test %rdx,%rdx - 43b3f7: 0f 85 b3 01 00 00 jne 43b5b0 <__stpcpy_sse2_unaligned+0x250> - 43b3fd: 0f 28 64 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm4 - 43b402: f3 0f 7f 1c 0f movdqu %xmm3,(%rdi,%rcx,1) - 43b407: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 - 43b40b: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43b40f: 48 83 c1 10 add $0x10,%rcx - 43b413: 48 85 d2 test %rdx,%rdx - 43b416: 0f 85 94 01 00 00 jne 43b5b0 <__stpcpy_sse2_unaligned+0x250> - 43b41c: 0f 28 4c 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm1 - 43b421: f3 0f 7f 24 0f movdqu %xmm4,(%rdi,%rcx,1) - 43b426: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 43b42a: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43b42e: 48 83 c1 10 add $0x10,%rcx - 43b432: 48 85 d2 test %rdx,%rdx - 43b435: 0f 85 75 01 00 00 jne 43b5b0 <__stpcpy_sse2_unaligned+0x250> - 43b43b: 0f 28 54 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm2 - 43b440: f3 0f 7f 0c 0f movdqu %xmm1,(%rdi,%rcx,1) - 43b445: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43b449: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43b44d: 48 83 c1 10 add $0x10,%rcx - 43b451: 48 85 d2 test %rdx,%rdx - 43b454: 0f 85 56 01 00 00 jne 43b5b0 <__stpcpy_sse2_unaligned+0x250> - 43b45a: 0f 28 5c 0e 10 movaps 0x10(%rsi,%rcx,1),%xmm3 - 43b45f: f3 0f 7f 14 0f movdqu %xmm2,(%rdi,%rcx,1) - 43b464: 66 0f 74 c3 pcmpeqb %xmm3,%xmm0 - 43b468: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43b46c: 48 83 c1 10 add $0x10,%rcx - 43b470: 48 85 d2 test %rdx,%rdx - 43b473: 0f 85 37 01 00 00 jne 43b5b0 <__stpcpy_sse2_unaligned+0x250> - 43b479: f3 0f 7f 1c 0f movdqu %xmm3,(%rdi,%rcx,1) - 43b47e: 48 89 f2 mov %rsi,%rdx - 43b481: 48 8d 74 0e 10 lea 0x10(%rsi,%rcx,1),%rsi - 43b486: 48 83 e6 c0 and $0xffffffffffffffc0,%rsi - 43b48a: 48 29 f2 sub %rsi,%rdx - 43b48d: 48 29 d7 sub %rdx,%rdi - 43b490: 0f 28 16 movaps (%rsi),%xmm2 - 43b493: 0f 28 e2 movaps %xmm2,%xmm4 - 43b496: 0f 28 6e 10 movaps 0x10(%rsi),%xmm5 - 43b49a: 0f 28 5e 20 movaps 0x20(%rsi),%xmm3 - 43b49e: 0f 28 f3 movaps %xmm3,%xmm6 - 43b4a1: 0f 28 7e 30 movaps 0x30(%rsi),%xmm7 - 43b4a5: 66 0f da d5 pminub %xmm5,%xmm2 - 43b4a9: 66 0f da df pminub %xmm7,%xmm3 - 43b4ad: 66 0f da da pminub %xmm2,%xmm3 - 43b4b1: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 - 43b4b5: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43b4b9: 48 85 d2 test %rdx,%rdx - 43b4bc: 75 4b jne 43b509 <__stpcpy_sse2_unaligned+0x1a9> - 43b4be: 48 83 c7 40 add $0x40,%rdi - 43b4c2: 48 83 c6 40 add $0x40,%rsi - 43b4c6: f3 0f 7f 67 c0 movdqu %xmm4,-0x40(%rdi) - 43b4cb: 0f 28 16 movaps (%rsi),%xmm2 - 43b4ce: 66 0f 6f e2 movdqa %xmm2,%xmm4 - 43b4d2: f3 0f 7f 6f d0 movdqu %xmm5,-0x30(%rdi) - 43b4d7: 0f 28 6e 10 movaps 0x10(%rsi),%xmm5 - 43b4db: 66 0f da d5 pminub %xmm5,%xmm2 - 43b4df: 0f 28 5e 20 movaps 0x20(%rsi),%xmm3 - 43b4e3: f3 0f 7f 77 e0 movdqu %xmm6,-0x20(%rdi) - 43b4e8: 0f 28 f3 movaps %xmm3,%xmm6 - 43b4eb: f3 0f 7f 7f f0 movdqu %xmm7,-0x10(%rdi) - 43b4f0: 0f 28 7e 30 movaps 0x30(%rsi),%xmm7 - 43b4f4: 66 0f da df pminub %xmm7,%xmm3 - 43b4f8: 66 0f da da pminub %xmm2,%xmm3 - 43b4fc: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 - 43b500: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43b504: 48 85 d2 test %rdx,%rdx - 43b507: 74 b5 je 43b4be <__stpcpy_sse2_unaligned+0x15e> - 43b509: 66 0f ef c9 pxor %xmm1,%xmm1 - 43b50d: 66 0f 74 c4 pcmpeqb %xmm4,%xmm0 - 43b511: 66 0f 74 cd pcmpeqb %xmm5,%xmm1 - 43b515: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43b519: 66 0f d7 c9 pmovmskb %xmm1,%ecx - 43b51d: 48 85 d2 test %rdx,%rdx - 43b520: 0f 85 0a 01 00 00 jne 43b630 <__stpcpy_sse2_unaligned+0x2d0> - 43b526: 48 85 c9 test %rcx,%rcx - 43b529: 0f 85 21 01 00 00 jne 43b650 <__stpcpy_sse2_unaligned+0x2f0> - 43b52f: 66 0f 74 c6 pcmpeqb %xmm6,%xmm0 - 43b533: 66 0f 74 cf pcmpeqb %xmm7,%xmm1 - 43b537: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43b53b: 66 0f d7 c9 pmovmskb %xmm1,%ecx - 43b53f: 48 85 d2 test %rdx,%rdx - 43b542: 0f 85 38 01 00 00 jne 43b680 <__stpcpy_sse2_unaligned+0x320> - 43b548: 48 0f bc d1 bsf %rcx,%rdx - 43b54c: f3 0f 7f 27 movdqu %xmm4,(%rdi) - 43b550: f3 0f 7f 6f 10 movdqu %xmm5,0x10(%rdi) - 43b555: f3 0f 7f 77 20 movdqu %xmm6,0x20(%rdi) - 43b55a: 48 83 c6 30 add $0x30,%rsi - 43b55e: 48 83 c7 30 add $0x30,%rdi - 43b562: 4c 8d 1d c7 85 06 00 lea 0x685c7(%rip),%r11 # 4a3b30 - 43b569: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 43b56d: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx - 43b571: ff e1 jmpq *%rcx - 43b573: 66 0f ef c0 pxor %xmm0,%xmm0 - 43b577: f3 0f 6f 0e movdqu (%rsi),%xmm1 - 43b57b: f3 0f 6f 56 10 movdqu 0x10(%rsi),%xmm2 - 43b580: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 43b584: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43b588: 48 85 d2 test %rdx,%rdx - 43b58b: 75 6b jne 43b5f8 <__stpcpy_sse2_unaligned+0x298> - 43b58d: 66 0f 74 c2 pcmpeqb %xmm2,%xmm0 - 43b591: f3 0f 7f 0f movdqu %xmm1,(%rdi) - 43b595: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43b599: 48 85 d2 test %rdx,%rdx - 43b59c: 75 52 jne 43b5f0 <__stpcpy_sse2_unaligned+0x290> - 43b59e: 48 83 e6 f0 and $0xfffffffffffffff0,%rsi - 43b5a2: 48 83 e1 0f and $0xf,%rcx - 43b5a6: e9 05 fe ff ff jmpq 43b3b0 <__stpcpy_sse2_unaligned+0x50> - 43b5ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43b5b0: 48 01 cf add %rcx,%rdi - 43b5b3: 48 01 ce add %rcx,%rsi - 43b5b6: 48 0f bc d2 bsf %rdx,%rdx - 43b5ba: 4c 8d 1d 6f 85 06 00 lea 0x6856f(%rip),%r11 # 4a3b30 - 43b5c1: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 43b5c5: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx - 43b5c9: ff e1 jmpq *%rcx - 43b5cb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43b5d0: 48 01 ce add %rcx,%rsi - 43b5d3: 48 0f bc d2 bsf %rdx,%rdx - 43b5d7: 4c 8d 1d 52 85 06 00 lea 0x68552(%rip),%r11 # 4a3b30 - 43b5de: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 43b5e2: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx - 43b5e6: ff e1 jmpq *%rcx - 43b5e8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43b5ef: 00 - 43b5f0: 48 83 c6 10 add $0x10,%rsi - 43b5f4: 48 83 c7 10 add $0x10,%rdi - 43b5f8: 48 0f bc d2 bsf %rdx,%rdx - 43b5fc: 4c 8d 1d 2d 85 06 00 lea 0x6852d(%rip),%r11 # 4a3b30 - 43b603: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 43b607: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx - 43b60b: ff e1 jmpq *%rcx - 43b60d: 0f 1f 00 nopl (%rax) - 43b610: 48 0f bc d2 bsf %rdx,%rdx - 43b614: 48 01 ce add %rcx,%rsi - 43b617: 48 83 c2 10 add $0x10,%rdx - 43b61b: 48 29 ca sub %rcx,%rdx - 43b61e: 4c 8d 1d 0b 85 06 00 lea 0x6850b(%rip),%r11 # 4a3b30 - 43b625: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 43b629: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx - 43b62d: ff e1 jmpq *%rcx - 43b62f: 90 nop - 43b630: 48 0f bc d2 bsf %rdx,%rdx - 43b634: 4c 8d 1d f5 84 06 00 lea 0x684f5(%rip),%r11 # 4a3b30 - 43b63b: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 43b63f: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx - 43b643: ff e1 jmpq *%rcx - 43b645: 90 nop - 43b646: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b64d: 00 00 00 - 43b650: 48 0f bc d1 bsf %rcx,%rdx - 43b654: f3 0f 7f 27 movdqu %xmm4,(%rdi) - 43b658: 48 83 c6 10 add $0x10,%rsi - 43b65c: 48 83 c7 10 add $0x10,%rdi - 43b660: 4c 8d 1d c9 84 06 00 lea 0x684c9(%rip),%r11 # 4a3b30 - 43b667: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 43b66b: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx - 43b66f: ff e1 jmpq *%rcx - 43b671: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43b676: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b67d: 00 00 00 - 43b680: 48 0f bc d2 bsf %rdx,%rdx - 43b684: f3 0f 7f 27 movdqu %xmm4,(%rdi) - 43b688: f3 0f 7f 6f 10 movdqu %xmm5,0x10(%rdi) - 43b68d: 48 83 c6 20 add $0x20,%rsi - 43b691: 48 83 c7 20 add $0x20,%rdi - 43b695: 4c 8d 1d 94 84 06 00 lea 0x68494(%rip),%r11 # 4a3b30 - 43b69c: 49 63 0c 93 movslq (%r11,%rdx,4),%rcx - 43b6a0: 49 8d 0c 0b lea (%r11,%rcx,1),%rcx - 43b6a4: ff e1 jmpq *%rcx - 43b6a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b6ad: 00 00 00 - 43b6b0: 88 37 mov %dh,(%rdi) - 43b6b2: 48 8d 07 lea (%rdi),%rax - 43b6b5: c3 retq - 43b6b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b6bd: 00 00 00 - 43b6c0: 66 8b 16 mov (%rsi),%dx - 43b6c3: 66 89 17 mov %dx,(%rdi) - 43b6c6: 48 8d 47 01 lea 0x1(%rdi),%rax - 43b6ca: c3 retq - 43b6cb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43b6d0: 66 8b 0e mov (%rsi),%cx - 43b6d3: 66 89 0f mov %cx,(%rdi) - 43b6d6: 88 77 02 mov %dh,0x2(%rdi) - 43b6d9: 48 8d 47 02 lea 0x2(%rdi),%rax - 43b6dd: c3 retq - 43b6de: 66 90 xchg %ax,%ax - 43b6e0: 8b 16 mov (%rsi),%edx - 43b6e2: 89 17 mov %edx,(%rdi) - 43b6e4: 48 8d 47 03 lea 0x3(%rdi),%rax - 43b6e8: c3 retq - 43b6e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43b6f0: 8b 0e mov (%rsi),%ecx - 43b6f2: 88 77 04 mov %dh,0x4(%rdi) - 43b6f5: 89 0f mov %ecx,(%rdi) - 43b6f7: 48 8d 47 04 lea 0x4(%rdi),%rax - 43b6fb: c3 retq - 43b6fc: 0f 1f 40 00 nopl 0x0(%rax) - 43b700: 8b 0e mov (%rsi),%ecx - 43b702: 66 8b 56 04 mov 0x4(%rsi),%dx - 43b706: 89 0f mov %ecx,(%rdi) - 43b708: 66 89 57 04 mov %dx,0x4(%rdi) - 43b70c: 48 8d 47 05 lea 0x5(%rdi),%rax - 43b710: c3 retq - 43b711: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43b716: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b71d: 00 00 00 - 43b720: 8b 0e mov (%rsi),%ecx - 43b722: 8b 56 03 mov 0x3(%rsi),%edx - 43b725: 89 0f mov %ecx,(%rdi) - 43b727: 89 57 03 mov %edx,0x3(%rdi) - 43b72a: 48 8d 47 06 lea 0x6(%rdi),%rax - 43b72e: c3 retq - 43b72f: 90 nop - 43b730: 48 8b 16 mov (%rsi),%rdx - 43b733: 48 89 17 mov %rdx,(%rdi) - 43b736: 48 8d 47 07 lea 0x7(%rdi),%rax - 43b73a: c3 retq - 43b73b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43b740: 48 8b 0e mov (%rsi),%rcx - 43b743: 88 77 08 mov %dh,0x8(%rdi) - 43b746: 48 89 0f mov %rcx,(%rdi) - 43b749: 48 8d 47 08 lea 0x8(%rdi),%rax - 43b74d: c3 retq - 43b74e: 66 90 xchg %ax,%ax - 43b750: 48 8b 0e mov (%rsi),%rcx - 43b753: 66 8b 56 08 mov 0x8(%rsi),%dx - 43b757: 48 89 0f mov %rcx,(%rdi) - 43b75a: 66 89 57 08 mov %dx,0x8(%rdi) - 43b75e: 48 8d 47 09 lea 0x9(%rdi),%rax - 43b762: c3 retq - 43b763: 0f 1f 00 nopl (%rax) - 43b766: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b76d: 00 00 00 - 43b770: 48 8b 0e mov (%rsi),%rcx - 43b773: 8b 56 07 mov 0x7(%rsi),%edx - 43b776: 48 89 0f mov %rcx,(%rdi) - 43b779: 89 57 07 mov %edx,0x7(%rdi) - 43b77c: 48 8d 47 0a lea 0xa(%rdi),%rax - 43b780: c3 retq - 43b781: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43b786: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b78d: 00 00 00 - 43b790: 48 8b 0e mov (%rsi),%rcx - 43b793: 8b 56 08 mov 0x8(%rsi),%edx - 43b796: 48 89 0f mov %rcx,(%rdi) - 43b799: 89 57 08 mov %edx,0x8(%rdi) - 43b79c: 48 8d 47 0b lea 0xb(%rdi),%rax - 43b7a0: c3 retq - 43b7a1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43b7a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b7ad: 00 00 00 - 43b7b0: 48 8b 0e mov (%rsi),%rcx - 43b7b3: 48 8b 56 05 mov 0x5(%rsi),%rdx - 43b7b7: 48 89 0f mov %rcx,(%rdi) - 43b7ba: 48 89 57 05 mov %rdx,0x5(%rdi) - 43b7be: 48 8d 47 0c lea 0xc(%rdi),%rax - 43b7c2: c3 retq - 43b7c3: 0f 1f 00 nopl (%rax) - 43b7c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b7cd: 00 00 00 - 43b7d0: 48 8b 0e mov (%rsi),%rcx - 43b7d3: 48 8b 56 06 mov 0x6(%rsi),%rdx - 43b7d7: 48 89 0f mov %rcx,(%rdi) - 43b7da: 48 89 57 06 mov %rdx,0x6(%rdi) - 43b7de: 48 8d 47 0d lea 0xd(%rdi),%rax - 43b7e2: c3 retq - 43b7e3: 0f 1f 00 nopl (%rax) - 43b7e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b7ed: 00 00 00 - 43b7f0: 48 8b 0e mov (%rsi),%rcx - 43b7f3: 48 8b 56 07 mov 0x7(%rsi),%rdx - 43b7f7: 48 89 0f mov %rcx,(%rdi) - 43b7fa: 48 89 57 07 mov %rdx,0x7(%rdi) - 43b7fe: 48 8d 47 0e lea 0xe(%rdi),%rax - 43b802: c3 retq - 43b803: 0f 1f 00 nopl (%rax) - 43b806: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b80d: 00 00 00 - 43b810: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b814: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b818: 48 8d 47 0f lea 0xf(%rdi),%rax - 43b81c: c3 retq - 43b81d: 0f 1f 00 nopl (%rax) - 43b820: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b824: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b828: 88 77 10 mov %dh,0x10(%rdi) - 43b82b: 48 8d 47 10 lea 0x10(%rdi),%rax - 43b82f: c3 retq - 43b830: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b834: 66 8b 4e 10 mov 0x10(%rsi),%cx - 43b838: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b83c: 66 89 4f 10 mov %cx,0x10(%rdi) - 43b840: 48 8d 47 11 lea 0x11(%rdi),%rax - 43b844: c3 retq - 43b845: 90 nop - 43b846: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b84d: 00 00 00 - 43b850: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b854: 8b 4e 0f mov 0xf(%rsi),%ecx - 43b857: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b85b: 89 4f 0f mov %ecx,0xf(%rdi) - 43b85e: 48 8d 47 12 lea 0x12(%rdi),%rax - 43b862: c3 retq - 43b863: 0f 1f 00 nopl (%rax) - 43b866: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b86d: 00 00 00 - 43b870: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b874: 8b 4e 10 mov 0x10(%rsi),%ecx - 43b877: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b87b: 89 4f 10 mov %ecx,0x10(%rdi) - 43b87e: 48 8d 47 13 lea 0x13(%rdi),%rax - 43b882: c3 retq - 43b883: 0f 1f 00 nopl (%rax) - 43b886: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b88d: 00 00 00 - 43b890: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b894: 8b 4e 10 mov 0x10(%rsi),%ecx - 43b897: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b89b: 89 4f 10 mov %ecx,0x10(%rdi) - 43b89e: 88 77 14 mov %dh,0x14(%rdi) - 43b8a1: 48 8d 47 14 lea 0x14(%rdi),%rax - 43b8a5: c3 retq - 43b8a6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b8ad: 00 00 00 - 43b8b0: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b8b4: 48 8b 4e 0e mov 0xe(%rsi),%rcx - 43b8b8: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b8bc: 48 89 4f 0e mov %rcx,0xe(%rdi) - 43b8c0: 48 8d 47 15 lea 0x15(%rdi),%rax - 43b8c4: c3 retq - 43b8c5: 90 nop - 43b8c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b8cd: 00 00 00 - 43b8d0: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b8d4: 48 8b 4e 0f mov 0xf(%rsi),%rcx - 43b8d8: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b8dc: 48 89 4f 0f mov %rcx,0xf(%rdi) - 43b8e0: 48 8d 47 16 lea 0x16(%rdi),%rax - 43b8e4: c3 retq - 43b8e5: 90 nop - 43b8e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b8ed: 00 00 00 - 43b8f0: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b8f4: 48 8b 4e 10 mov 0x10(%rsi),%rcx - 43b8f8: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b8fc: 48 89 4f 10 mov %rcx,0x10(%rdi) - 43b900: 48 8d 47 17 lea 0x17(%rdi),%rax - 43b904: c3 retq - 43b905: 90 nop - 43b906: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43b90d: 00 00 00 - 43b910: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b914: 48 8b 4e 10 mov 0x10(%rsi),%rcx - 43b918: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b91c: 48 89 4f 10 mov %rcx,0x10(%rdi) - 43b920: 88 77 18 mov %dh,0x18(%rdi) - 43b923: 48 8d 47 18 lea 0x18(%rdi),%rax - 43b927: c3 retq - 43b928: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43b92f: 00 - 43b930: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b934: 48 8b 56 10 mov 0x10(%rsi),%rdx - 43b938: 66 8b 4e 18 mov 0x18(%rsi),%cx - 43b93c: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b940: 48 89 57 10 mov %rdx,0x10(%rdi) - 43b944: 66 89 4f 18 mov %cx,0x18(%rdi) - 43b948: 48 8d 47 19 lea 0x19(%rdi),%rax - 43b94c: c3 retq - 43b94d: 0f 1f 00 nopl (%rax) - 43b950: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b954: 48 8b 56 10 mov 0x10(%rsi),%rdx - 43b958: 8b 4e 17 mov 0x17(%rsi),%ecx - 43b95b: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b95f: 48 89 57 10 mov %rdx,0x10(%rdi) - 43b963: 89 4f 17 mov %ecx,0x17(%rdi) - 43b966: 48 8d 47 1a lea 0x1a(%rdi),%rax - 43b96a: c3 retq - 43b96b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43b970: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b974: 48 8b 56 10 mov 0x10(%rsi),%rdx - 43b978: 8b 4e 18 mov 0x18(%rsi),%ecx - 43b97b: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b97f: 48 89 57 10 mov %rdx,0x10(%rdi) - 43b983: 89 4f 18 mov %ecx,0x18(%rdi) - 43b986: 48 8d 47 1b lea 0x1b(%rdi),%rax - 43b98a: c3 retq - 43b98b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43b990: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b994: f3 0f 6f 56 0d movdqu 0xd(%rsi),%xmm2 - 43b999: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b99d: f3 0f 7f 57 0d movdqu %xmm2,0xd(%rdi) - 43b9a2: 48 8d 47 1c lea 0x1c(%rdi),%rax - 43b9a6: c3 retq - 43b9a7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43b9ae: 00 00 - 43b9b0: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b9b4: f3 0f 6f 56 0e movdqu 0xe(%rsi),%xmm2 - 43b9b9: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b9bd: f3 0f 7f 57 0e movdqu %xmm2,0xe(%rdi) - 43b9c2: 48 8d 47 1d lea 0x1d(%rdi),%rax - 43b9c6: c3 retq - 43b9c7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43b9ce: 00 00 - 43b9d0: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b9d4: f3 0f 6f 56 0f movdqu 0xf(%rsi),%xmm2 - 43b9d9: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b9dd: f3 0f 7f 57 0f movdqu %xmm2,0xf(%rdi) - 43b9e2: 48 8d 47 1e lea 0x1e(%rdi),%rax - 43b9e6: c3 retq - 43b9e7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43b9ee: 00 00 - 43b9f0: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43b9f4: f3 0f 6f 56 10 movdqu 0x10(%rsi),%xmm2 - 43b9f9: f3 0f 7f 07 movdqu %xmm0,(%rdi) - 43b9fd: f3 0f 7f 57 10 movdqu %xmm2,0x10(%rdi) - 43ba02: 48 8d 47 1f lea 0x1f(%rdi),%rax - 43ba06: c3 retq - 43ba07: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43ba0e: 00 00 - -000000000043ba10 <__strchr_sse2_no_bsf>: - 43ba10: 66 0f 6e ce movd %esi,%xmm1 - 43ba14: 48 89 f9 mov %rdi,%rcx - 43ba17: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 - 43ba1b: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 43ba1f: 66 0f ef d2 pxor %xmm2,%xmm2 - 43ba23: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 - 43ba27: 83 ce ff or $0xffffffff,%esi - 43ba2a: 66 0f 6f 07 movdqa (%rdi),%xmm0 - 43ba2e: 66 0f 70 c9 00 pshufd $0x0,%xmm1,%xmm1 - 43ba33: 48 29 f9 sub %rdi,%rcx - 43ba36: 66 0f 6f d8 movdqa %xmm0,%xmm3 - 43ba3a: 48 8d 7f 10 lea 0x10(%rdi),%rdi - 43ba3e: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 43ba42: 66 0f 74 da pcmpeqb %xmm2,%xmm3 - 43ba46: d3 e6 shl %cl,%esi - 43ba48: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43ba4c: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43ba50: 21 f0 and %esi,%eax - 43ba52: 21 f2 and %esi,%edx - 43ba54: 85 c0 test %eax,%eax - 43ba56: 75 3c jne 43ba94 <__strchr_sse2_no_bsf+0x84> - 43ba58: 85 d2 test %edx,%edx - 43ba5a: 75 34 jne 43ba90 <__strchr_sse2_no_bsf+0x80> - 43ba5c: 66 0f 6f 07 movdqa (%rdi),%xmm0 - 43ba60: 48 8d 7f 10 lea 0x10(%rdi),%rdi - 43ba64: 66 0f 6f d8 movdqa %xmm0,%xmm3 - 43ba68: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 43ba6c: 66 0f 74 da pcmpeqb %xmm2,%xmm3 - 43ba70: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43ba74: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43ba78: 09 c2 or %eax,%edx - 43ba7a: 74 e0 je 43ba5c <__strchr_sse2_no_bsf+0x4c> - 43ba7c: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43ba80: 85 c0 test %eax,%eax - 43ba82: 75 10 jne 43ba94 <__strchr_sse2_no_bsf+0x84> - 43ba84: 66 90 xchg %ax,%ax - 43ba86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43ba8d: 00 00 00 - 43ba90: 48 31 c0 xor %rax,%rax - 43ba93: c3 retq - 43ba94: 48 8d 7f f0 lea -0x10(%rdi),%rdi - 43ba98: 85 d2 test %edx,%edx - 43ba9a: 0f 84 10 01 00 00 je 43bbb0 <__strchr_sse2_no_bsf+0x1a0> - 43baa0: 84 c0 test %al,%al - 43baa2: 74 6c je 43bb10 <__strchr_sse2_no_bsf+0x100> - 43baa4: 88 c1 mov %al,%cl - 43baa6: 80 e1 0f and $0xf,%cl - 43baa9: 75 35 jne 43bae0 <__strchr_sse2_no_bsf+0xd0> - 43baab: 88 d5 mov %dl,%ch - 43baad: 80 e5 0f and $0xf,%ch - 43bab0: 75 de jne 43ba90 <__strchr_sse2_no_bsf+0x80> - 43bab2: a8 10 test $0x10,%al - 43bab4: 0f 85 d6 01 00 00 jne 43bc90 <__strchr_sse2_no_bsf+0x280> - 43baba: f6 c2 10 test $0x10,%dl - 43babd: 75 d1 jne 43ba90 <__strchr_sse2_no_bsf+0x80> - 43babf: a8 20 test $0x20,%al - 43bac1: 0f 85 d9 01 00 00 jne 43bca0 <__strchr_sse2_no_bsf+0x290> - 43bac7: f6 c2 20 test $0x20,%dl - 43baca: 75 c4 jne 43ba90 <__strchr_sse2_no_bsf+0x80> - 43bacc: a8 40 test $0x40,%al - 43bace: 0f 85 dc 01 00 00 jne 43bcb0 <__strchr_sse2_no_bsf+0x2a0> - 43bad4: f6 c2 40 test $0x40,%dl - 43bad7: 75 b7 jne 43ba90 <__strchr_sse2_no_bsf+0x80> - 43bad9: 48 8d 47 07 lea 0x7(%rdi),%rax - 43badd: c3 retq - 43bade: 66 90 xchg %ax,%ax - 43bae0: a8 01 test $0x1,%al - 43bae2: 0f 85 68 01 00 00 jne 43bc50 <__strchr_sse2_no_bsf+0x240> - 43bae8: f6 c2 01 test $0x1,%dl - 43baeb: 75 a3 jne 43ba90 <__strchr_sse2_no_bsf+0x80> - 43baed: a8 02 test $0x2,%al - 43baef: 0f 85 6b 01 00 00 jne 43bc60 <__strchr_sse2_no_bsf+0x250> - 43baf5: f6 c2 02 test $0x2,%dl - 43baf8: 75 96 jne 43ba90 <__strchr_sse2_no_bsf+0x80> - 43bafa: a8 04 test $0x4,%al - 43bafc: 0f 85 6e 01 00 00 jne 43bc70 <__strchr_sse2_no_bsf+0x260> - 43bb02: f6 c2 04 test $0x4,%dl - 43bb05: 75 89 jne 43ba90 <__strchr_sse2_no_bsf+0x80> - 43bb07: 48 8d 47 03 lea 0x3(%rdi),%rax - 43bb0b: c3 retq - 43bb0c: 0f 1f 40 00 nopl 0x0(%rax) - 43bb10: 84 d2 test %dl,%dl - 43bb12: 0f 85 78 ff ff ff jne 43ba90 <__strchr_sse2_no_bsf+0x80> - 43bb18: 88 e1 mov %ah,%cl - 43bb1a: 80 e1 0f and $0xf,%cl - 43bb1d: 75 51 jne 43bb70 <__strchr_sse2_no_bsf+0x160> - 43bb1f: 88 f5 mov %dh,%ch - 43bb21: 80 e5 0f and $0xf,%ch - 43bb24: 0f 85 66 ff ff ff jne 43ba90 <__strchr_sse2_no_bsf+0x80> - 43bb2a: f6 c4 10 test $0x10,%ah - 43bb2d: 0f 85 cd 01 00 00 jne 43bd00 <__strchr_sse2_no_bsf+0x2f0> - 43bb33: f6 c6 10 test $0x10,%dh - 43bb36: 0f 85 54 ff ff ff jne 43ba90 <__strchr_sse2_no_bsf+0x80> - 43bb3c: f6 c4 20 test $0x20,%ah - 43bb3f: 0f 85 cb 01 00 00 jne 43bd10 <__strchr_sse2_no_bsf+0x300> - 43bb45: f6 c6 20 test $0x20,%dh - 43bb48: 0f 85 42 ff ff ff jne 43ba90 <__strchr_sse2_no_bsf+0x80> - 43bb4e: f6 c4 40 test $0x40,%ah - 43bb51: 0f 85 c9 01 00 00 jne 43bd20 <__strchr_sse2_no_bsf+0x310> - 43bb57: f6 c6 40 test $0x40,%dh - 43bb5a: 0f 85 30 ff ff ff jne 43ba90 <__strchr_sse2_no_bsf+0x80> - 43bb60: 48 8d 47 0f lea 0xf(%rdi),%rax - 43bb64: c3 retq - 43bb65: 90 nop - 43bb66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bb6d: 00 00 00 - 43bb70: f6 c4 01 test $0x1,%ah - 43bb73: 0f 85 47 01 00 00 jne 43bcc0 <__strchr_sse2_no_bsf+0x2b0> - 43bb79: f6 c6 01 test $0x1,%dh - 43bb7c: 0f 85 0e ff ff ff jne 43ba90 <__strchr_sse2_no_bsf+0x80> - 43bb82: f6 c4 02 test $0x2,%ah - 43bb85: 0f 85 45 01 00 00 jne 43bcd0 <__strchr_sse2_no_bsf+0x2c0> - 43bb8b: f6 c6 02 test $0x2,%dh - 43bb8e: 0f 85 fc fe ff ff jne 43ba90 <__strchr_sse2_no_bsf+0x80> - 43bb94: f6 c4 04 test $0x4,%ah - 43bb97: 0f 85 43 01 00 00 jne 43bce0 <__strchr_sse2_no_bsf+0x2d0> - 43bb9d: f6 c6 04 test $0x4,%dh - 43bba0: 0f 85 ea fe ff ff jne 43ba90 <__strchr_sse2_no_bsf+0x80> - 43bba6: 48 8d 47 0b lea 0xb(%rdi),%rax - 43bbaa: c3 retq - 43bbab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43bbb0: 84 c0 test %al,%al - 43bbb2: 74 4c je 43bc00 <__strchr_sse2_no_bsf+0x1f0> - 43bbb4: a8 01 test $0x1,%al - 43bbb6: 0f 85 94 00 00 00 jne 43bc50 <__strchr_sse2_no_bsf+0x240> - 43bbbc: a8 02 test $0x2,%al - 43bbbe: 0f 85 9c 00 00 00 jne 43bc60 <__strchr_sse2_no_bsf+0x250> - 43bbc4: a8 04 test $0x4,%al - 43bbc6: 0f 85 a4 00 00 00 jne 43bc70 <__strchr_sse2_no_bsf+0x260> - 43bbcc: a8 08 test $0x8,%al - 43bbce: 0f 85 ac 00 00 00 jne 43bc80 <__strchr_sse2_no_bsf+0x270> - 43bbd4: a8 10 test $0x10,%al - 43bbd6: 0f 85 b4 00 00 00 jne 43bc90 <__strchr_sse2_no_bsf+0x280> - 43bbdc: a8 20 test $0x20,%al - 43bbde: 0f 85 bc 00 00 00 jne 43bca0 <__strchr_sse2_no_bsf+0x290> - 43bbe4: a8 40 test $0x40,%al - 43bbe6: 0f 85 c4 00 00 00 jne 43bcb0 <__strchr_sse2_no_bsf+0x2a0> - 43bbec: 48 8d 47 07 lea 0x7(%rdi),%rax - 43bbf0: c3 retq - 43bbf1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43bbf6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bbfd: 00 00 00 - 43bc00: f6 c4 01 test $0x1,%ah - 43bc03: 0f 85 b7 00 00 00 jne 43bcc0 <__strchr_sse2_no_bsf+0x2b0> - 43bc09: f6 c4 02 test $0x2,%ah - 43bc0c: 0f 85 be 00 00 00 jne 43bcd0 <__strchr_sse2_no_bsf+0x2c0> - 43bc12: f6 c4 04 test $0x4,%ah - 43bc15: 0f 85 c5 00 00 00 jne 43bce0 <__strchr_sse2_no_bsf+0x2d0> - 43bc1b: f6 c4 08 test $0x8,%ah - 43bc1e: 0f 85 cc 00 00 00 jne 43bcf0 <__strchr_sse2_no_bsf+0x2e0> - 43bc24: f6 c4 10 test $0x10,%ah - 43bc27: 0f 85 d3 00 00 00 jne 43bd00 <__strchr_sse2_no_bsf+0x2f0> - 43bc2d: f6 c4 20 test $0x20,%ah - 43bc30: 0f 85 da 00 00 00 jne 43bd10 <__strchr_sse2_no_bsf+0x300> - 43bc36: f6 c4 40 test $0x40,%ah - 43bc39: 0f 85 e1 00 00 00 jne 43bd20 <__strchr_sse2_no_bsf+0x310> - 43bc3f: 48 8d 47 0f lea 0xf(%rdi),%rax - 43bc43: c3 retq - 43bc44: 66 90 xchg %ax,%ax - 43bc46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bc4d: 00 00 00 - 43bc50: 48 8d 07 lea (%rdi),%rax - 43bc53: c3 retq - 43bc54: 66 90 xchg %ax,%ax - 43bc56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bc5d: 00 00 00 - 43bc60: 48 8d 47 01 lea 0x1(%rdi),%rax - 43bc64: c3 retq - 43bc65: 90 nop - 43bc66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bc6d: 00 00 00 - 43bc70: 48 8d 47 02 lea 0x2(%rdi),%rax - 43bc74: c3 retq - 43bc75: 90 nop - 43bc76: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bc7d: 00 00 00 - 43bc80: 48 8d 47 03 lea 0x3(%rdi),%rax - 43bc84: c3 retq - 43bc85: 90 nop - 43bc86: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bc8d: 00 00 00 - 43bc90: 48 8d 47 04 lea 0x4(%rdi),%rax - 43bc94: c3 retq - 43bc95: 90 nop - 43bc96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bc9d: 00 00 00 - 43bca0: 48 8d 47 05 lea 0x5(%rdi),%rax - 43bca4: c3 retq - 43bca5: 90 nop - 43bca6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bcad: 00 00 00 - 43bcb0: 48 8d 47 06 lea 0x6(%rdi),%rax - 43bcb4: c3 retq - 43bcb5: 90 nop - 43bcb6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bcbd: 00 00 00 - 43bcc0: 48 8d 47 08 lea 0x8(%rdi),%rax - 43bcc4: c3 retq - 43bcc5: 90 nop - 43bcc6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bccd: 00 00 00 - 43bcd0: 48 8d 47 09 lea 0x9(%rdi),%rax - 43bcd4: c3 retq - 43bcd5: 90 nop - 43bcd6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bcdd: 00 00 00 - 43bce0: 48 8d 47 0a lea 0xa(%rdi),%rax - 43bce4: c3 retq - 43bce5: 90 nop - 43bce6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bced: 00 00 00 - 43bcf0: 48 8d 47 0b lea 0xb(%rdi),%rax - 43bcf4: c3 retq - 43bcf5: 90 nop - 43bcf6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bcfd: 00 00 00 - 43bd00: 48 8d 47 0c lea 0xc(%rdi),%rax - 43bd04: c3 retq - 43bd05: 90 nop - 43bd06: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bd0d: 00 00 00 - 43bd10: 48 8d 47 0d lea 0xd(%rdi),%rax - 43bd14: c3 retq - 43bd15: 90 nop - 43bd16: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bd1d: 00 00 00 - 43bd20: 48 8d 47 0e lea 0xe(%rdi),%rax - 43bd24: c3 retq - 43bd25: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43bd2c: 00 00 00 - 43bd2f: 90 nop - -000000000043bd30 <__memcmp_ssse3>: - 43bd30: 48 89 d1 mov %rdx,%rcx - 43bd33: 48 89 fa mov %rdi,%rdx - 43bd36: 48 83 f9 30 cmp $0x30,%rcx - 43bd3a: 73 14 jae 43bd50 <__memcmp_ssse3+0x20> - 43bd3c: 48 01 ce add %rcx,%rsi - 43bd3f: 48 01 cf add %rcx,%rdi - 43bd42: e9 b9 12 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43bd47: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43bd4e: 00 00 - 43bd50: f3 0f 6f 1f movdqu (%rdi),%xmm3 - 43bd54: f3 0f 6f 06 movdqu (%rsi),%xmm0 - 43bd58: 66 0f 74 d8 pcmpeqb %xmm0,%xmm3 - 43bd5c: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43bd60: 48 8d 7f 10 lea 0x10(%rdi),%rdi - 43bd64: 48 8d 76 10 lea 0x10(%rsi),%rsi - 43bd68: 81 ea ff ff 00 00 sub $0xffff,%edx - 43bd6e: 0f 85 98 11 00 00 jne 43cf0c <__memcmp_ssse3+0x11dc> - 43bd74: 89 fa mov %edi,%edx - 43bd76: 83 e2 0f and $0xf,%edx - 43bd79: 48 31 d7 xor %rdx,%rdi - 43bd7c: 48 29 d6 sub %rdx,%rsi - 43bd7f: 48 01 d1 add %rdx,%rcx - 43bd82: 89 f2 mov %esi,%edx - 43bd84: 83 e2 0f and $0xf,%edx - 43bd87: 0f 84 93 00 00 00 je 43be20 <__memcmp_ssse3+0xf0> - 43bd8d: 48 31 d6 xor %rdx,%rsi - 43bd90: 83 fa 08 cmp $0x8,%edx - 43bd93: 73 47 jae 43bddc <__memcmp_ssse3+0xac> - 43bd95: 83 fa 00 cmp $0x0,%edx - 43bd98: 0f 84 82 00 00 00 je 43be20 <__memcmp_ssse3+0xf0> - 43bd9e: 83 fa 01 cmp $0x1,%edx - 43bda1: 0f 84 59 01 00 00 je 43bf00 <__memcmp_ssse3+0x1d0> - 43bda7: 83 fa 02 cmp $0x2,%edx - 43bdaa: 0f 84 60 02 00 00 je 43c010 <__memcmp_ssse3+0x2e0> - 43bdb0: 83 fa 03 cmp $0x3,%edx - 43bdb3: 0f 84 67 03 00 00 je 43c120 <__memcmp_ssse3+0x3f0> - 43bdb9: 83 fa 04 cmp $0x4,%edx - 43bdbc: 0f 84 6e 04 00 00 je 43c230 <__memcmp_ssse3+0x500> - 43bdc2: 83 fa 05 cmp $0x5,%edx - 43bdc5: 0f 84 75 05 00 00 je 43c340 <__memcmp_ssse3+0x610> - 43bdcb: 83 fa 06 cmp $0x6,%edx - 43bdce: 0f 84 7c 06 00 00 je 43c450 <__memcmp_ssse3+0x720> - 43bdd4: e9 87 07 00 00 jmpq 43c560 <__memcmp_ssse3+0x830> - 43bdd9: 0f 1f 00 nopl (%rax) - 43bddc: 83 fa 08 cmp $0x8,%edx - 43bddf: 0f 84 8b 08 00 00 je 43c670 <__memcmp_ssse3+0x940> - 43bde5: 83 fa 09 cmp $0x9,%edx - 43bde8: 0f 84 92 09 00 00 je 43c780 <__memcmp_ssse3+0xa50> - 43bdee: 83 fa 0a cmp $0xa,%edx - 43bdf1: 0f 84 99 0a 00 00 je 43c890 <__memcmp_ssse3+0xb60> - 43bdf7: 83 fa 0b cmp $0xb,%edx - 43bdfa: 0f 84 a0 0b 00 00 je 43c9a0 <__memcmp_ssse3+0xc70> - 43be00: 83 fa 0c cmp $0xc,%edx - 43be03: 0f 84 a7 0c 00 00 je 43cab0 <__memcmp_ssse3+0xd80> - 43be09: 83 fa 0d cmp $0xd,%edx - 43be0c: 0f 84 ae 0d 00 00 je 43cbc0 <__memcmp_ssse3+0xe90> - 43be12: 83 fa 0e cmp $0xe,%edx - 43be15: 0f 84 b5 0e 00 00 je 43ccd0 <__memcmp_ssse3+0xfa0> - 43be1b: e9 c0 0f 00 00 jmpq 43cde0 <__memcmp_ssse3+0x10b0> - 43be20: 48 83 f9 50 cmp $0x50,%rcx - 43be24: 48 8d 49 d0 lea -0x30(%rcx),%rcx - 43be28: 73 46 jae 43be70 <__memcmp_ssse3+0x140> - 43be2a: 31 c0 xor %eax,%eax - 43be2c: 66 0f 6f 0e movdqa (%rsi),%xmm1 - 43be30: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 43be34: 66 0f 6f 56 10 movdqa 0x10(%rsi),%xmm2 - 43be39: 66 0f 74 57 10 pcmpeqb 0x10(%rdi),%xmm2 - 43be3e: 66 0f db d1 pand %xmm1,%xmm2 - 43be42: 66 0f d7 d2 pmovmskb %xmm2,%edx - 43be46: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43be4a: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43be4e: 81 ea ff ff 00 00 sub $0xffff,%edx - 43be54: 0f 85 96 10 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43be5a: 48 01 ce add %rcx,%rsi - 43be5d: 48 01 cf add %rcx,%rdi - 43be60: e9 9b 11 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43be65: 90 nop - 43be66: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43be6d: 00 00 00 - 43be70: 66 0f 6f 06 movdqa (%rsi),%xmm0 - 43be74: 31 c0 xor %eax,%eax - 43be76: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 43be7a: 48 83 e9 20 sub $0x20,%rcx - 43be7e: 66 0f 6f 56 10 movdqa 0x10(%rsi),%xmm2 - 43be83: 66 0f 74 57 10 pcmpeqb 0x10(%rdi),%xmm2 - 43be88: 66 0f db d0 pand %xmm0,%xmm2 - 43be8c: 48 83 e9 20 sub $0x20,%rcx - 43be90: 66 0f d7 d2 pmovmskb %xmm2,%edx - 43be94: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43be98: 66 0f 6f 46 20 movdqa 0x20(%rsi),%xmm0 - 43be9d: 66 0f 6f 56 30 movdqa 0x30(%rsi),%xmm2 - 43bea2: 81 da ff ff 00 00 sbb $0xffff,%edx - 43bea8: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 - 43bead: 66 0f 74 57 30 pcmpeqb 0x30(%rdi),%xmm2 - 43beb2: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43beb6: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43beba: 74 cc je 43be88 <__memcmp_ssse3+0x158> - 43bebc: 66 0f db d0 pand %xmm0,%xmm2 - 43bec0: 48 83 f9 00 cmp $0x0,%rcx - 43bec4: 7d 06 jge 43becc <__memcmp_ssse3+0x19c> - 43bec6: ff c2 inc %edx - 43bec8: 48 83 c1 20 add $0x20,%rcx - 43becc: 85 d2 test %edx,%edx - 43bece: 0f 85 1c 10 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43bed4: 66 0f d7 d2 pmovmskb %xmm2,%edx - 43bed8: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43bedc: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43bee0: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43bee4: 81 ea ff ff 00 00 sub $0xffff,%edx - 43beea: 0f 85 00 10 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43bef0: 48 01 ce add %rcx,%rsi - 43bef3: 48 01 cf add %rcx,%rdi - 43bef6: e9 05 11 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43befb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43bf00: 48 83 f9 50 cmp $0x50,%rcx - 43bf04: 48 8d 49 d0 lea -0x30(%rcx),%rcx - 43bf08: 89 d0 mov %edx,%eax - 43bf0a: 73 54 jae 43bf60 <__memcmp_ssse3+0x230> - 43bf0c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 43bf11: 66 0f 6f d1 movdqa %xmm1,%xmm2 - 43bf15: 66 0f 3a 0f 0e 01 palignr $0x1,(%rsi),%xmm1 - 43bf1b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 43bf1f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43bf24: 66 0f 3a 0f da 01 palignr $0x1,%xmm2,%xmm3 - 43bf2a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43bf2f: 66 0f db d9 pand %xmm1,%xmm3 - 43bf33: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43bf37: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43bf3b: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43bf3f: 81 ea ff ff 00 00 sub $0xffff,%edx - 43bf45: 0f 85 a5 0f 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43bf4b: 48 83 c6 01 add $0x1,%rsi - 43bf4f: 48 01 ce add %rcx,%rsi - 43bf52: 48 01 cf add %rcx,%rdi - 43bf55: e9 a6 10 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43bf5a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43bf60: 48 83 e9 20 sub $0x20,%rcx - 43bf64: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 - 43bf69: 66 0f 3a 0f 06 01 palignr $0x1,(%rsi),%xmm0 - 43bf6f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 43bf73: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43bf78: 66 0f 3a 0f 5e 10 01 palignr $0x1,0x10(%rsi),%xmm3 - 43bf7f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43bf84: 66 0f db d8 pand %xmm0,%xmm3 - 43bf88: 48 83 e9 20 sub $0x20,%rcx - 43bf8c: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43bf90: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43bf94: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 - 43bf99: 66 0f 3a 0f 5e 30 01 palignr $0x1,0x30(%rsi),%xmm3 - 43bfa0: 81 da ff ff 00 00 sbb $0xffff,%edx - 43bfa6: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 - 43bfab: 66 0f 3a 0f 46 20 01 palignr $0x1,0x20(%rsi),%xmm0 - 43bfb2: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 - 43bfb7: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43bfbb: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 - 43bfc0: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43bfc4: 74 be je 43bf84 <__memcmp_ssse3+0x254> - 43bfc6: 66 0f db d8 pand %xmm0,%xmm3 - 43bfca: 48 83 f9 00 cmp $0x0,%rcx - 43bfce: 7d 06 jge 43bfd6 <__memcmp_ssse3+0x2a6> - 43bfd0: ff c2 inc %edx - 43bfd2: 48 83 c1 20 add $0x20,%rcx - 43bfd6: 85 d2 test %edx,%edx - 43bfd8: 0f 85 12 0f 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43bfde: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43bfe2: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43bfe6: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43bfea: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43bfee: 81 ea ff ff 00 00 sub $0xffff,%edx - 43bff4: 0f 85 f6 0e 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43bffa: 48 8d 76 01 lea 0x1(%rsi),%rsi - 43bffe: 48 01 ce add %rcx,%rsi - 43c001: 48 01 cf add %rcx,%rdi - 43c004: e9 f7 0f 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c009: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43c010: 48 83 f9 50 cmp $0x50,%rcx - 43c014: 48 8d 49 d0 lea -0x30(%rcx),%rcx - 43c018: 89 d0 mov %edx,%eax - 43c01a: 73 54 jae 43c070 <__memcmp_ssse3+0x340> - 43c01c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 43c021: 66 0f 6f d1 movdqa %xmm1,%xmm2 - 43c025: 66 0f 3a 0f 0e 02 palignr $0x2,(%rsi),%xmm1 - 43c02b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 43c02f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c034: 66 0f 3a 0f da 02 palignr $0x2,%xmm2,%xmm3 - 43c03a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c03f: 66 0f db d9 pand %xmm1,%xmm3 - 43c043: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c047: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c04b: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c04f: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c055: 0f 85 95 0e 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c05b: 48 83 c6 02 add $0x2,%rsi - 43c05f: 48 01 ce add %rcx,%rsi - 43c062: 48 01 cf add %rcx,%rdi - 43c065: e9 96 0f 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c06a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43c070: 48 83 e9 20 sub $0x20,%rcx - 43c074: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 - 43c079: 66 0f 3a 0f 06 02 palignr $0x2,(%rsi),%xmm0 - 43c07f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 43c083: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c088: 66 0f 3a 0f 5e 10 02 palignr $0x2,0x10(%rsi),%xmm3 - 43c08f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c094: 66 0f db d8 pand %xmm0,%xmm3 - 43c098: 48 83 e9 20 sub $0x20,%rcx - 43c09c: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c0a0: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c0a4: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 - 43c0a9: 66 0f 3a 0f 5e 30 02 palignr $0x2,0x30(%rsi),%xmm3 - 43c0b0: 81 da ff ff 00 00 sbb $0xffff,%edx - 43c0b6: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 - 43c0bb: 66 0f 3a 0f 46 20 02 palignr $0x2,0x20(%rsi),%xmm0 - 43c0c2: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 - 43c0c7: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c0cb: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 - 43c0d0: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c0d4: 74 be je 43c094 <__memcmp_ssse3+0x364> - 43c0d6: 66 0f db d8 pand %xmm0,%xmm3 - 43c0da: 48 83 f9 00 cmp $0x0,%rcx - 43c0de: 7d 06 jge 43c0e6 <__memcmp_ssse3+0x3b6> - 43c0e0: ff c2 inc %edx - 43c0e2: 48 83 c1 20 add $0x20,%rcx - 43c0e6: 85 d2 test %edx,%edx - 43c0e8: 0f 85 02 0e 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c0ee: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c0f2: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c0f6: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c0fa: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c0fe: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c104: 0f 85 e6 0d 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c10a: 48 8d 76 02 lea 0x2(%rsi),%rsi - 43c10e: 48 01 ce add %rcx,%rsi - 43c111: 48 01 cf add %rcx,%rdi - 43c114: e9 e7 0e 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c119: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43c120: 48 83 f9 50 cmp $0x50,%rcx - 43c124: 48 8d 49 d0 lea -0x30(%rcx),%rcx - 43c128: 89 d0 mov %edx,%eax - 43c12a: 73 54 jae 43c180 <__memcmp_ssse3+0x450> - 43c12c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 43c131: 66 0f 6f d1 movdqa %xmm1,%xmm2 - 43c135: 66 0f 3a 0f 0e 03 palignr $0x3,(%rsi),%xmm1 - 43c13b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 43c13f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c144: 66 0f 3a 0f da 03 palignr $0x3,%xmm2,%xmm3 - 43c14a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c14f: 66 0f db d9 pand %xmm1,%xmm3 - 43c153: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c157: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c15b: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c15f: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c165: 0f 85 85 0d 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c16b: 48 83 c6 03 add $0x3,%rsi - 43c16f: 48 01 ce add %rcx,%rsi - 43c172: 48 01 cf add %rcx,%rdi - 43c175: e9 86 0e 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c17a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43c180: 48 83 e9 20 sub $0x20,%rcx - 43c184: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 - 43c189: 66 0f 3a 0f 06 03 palignr $0x3,(%rsi),%xmm0 - 43c18f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 43c193: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c198: 66 0f 3a 0f 5e 10 03 palignr $0x3,0x10(%rsi),%xmm3 - 43c19f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c1a4: 66 0f db d8 pand %xmm0,%xmm3 - 43c1a8: 48 83 e9 20 sub $0x20,%rcx - 43c1ac: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c1b0: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c1b4: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 - 43c1b9: 66 0f 3a 0f 5e 30 03 palignr $0x3,0x30(%rsi),%xmm3 - 43c1c0: 81 da ff ff 00 00 sbb $0xffff,%edx - 43c1c6: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 - 43c1cb: 66 0f 3a 0f 46 20 03 palignr $0x3,0x20(%rsi),%xmm0 - 43c1d2: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 - 43c1d7: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c1db: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 - 43c1e0: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c1e4: 74 be je 43c1a4 <__memcmp_ssse3+0x474> - 43c1e6: 66 0f db d8 pand %xmm0,%xmm3 - 43c1ea: 48 83 f9 00 cmp $0x0,%rcx - 43c1ee: 7d 06 jge 43c1f6 <__memcmp_ssse3+0x4c6> - 43c1f0: ff c2 inc %edx - 43c1f2: 48 83 c1 20 add $0x20,%rcx - 43c1f6: 85 d2 test %edx,%edx - 43c1f8: 0f 85 f2 0c 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c1fe: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c202: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c206: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c20a: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c20e: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c214: 0f 85 d6 0c 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c21a: 48 8d 76 03 lea 0x3(%rsi),%rsi - 43c21e: 48 01 ce add %rcx,%rsi - 43c221: 48 01 cf add %rcx,%rdi - 43c224: e9 d7 0d 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c229: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43c230: 48 83 f9 50 cmp $0x50,%rcx - 43c234: 48 8d 49 d0 lea -0x30(%rcx),%rcx - 43c238: 89 d0 mov %edx,%eax - 43c23a: 73 54 jae 43c290 <__memcmp_ssse3+0x560> - 43c23c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 43c241: 66 0f 6f d1 movdqa %xmm1,%xmm2 - 43c245: 66 0f 3a 0f 0e 04 palignr $0x4,(%rsi),%xmm1 - 43c24b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 43c24f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c254: 66 0f 3a 0f da 04 palignr $0x4,%xmm2,%xmm3 - 43c25a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c25f: 66 0f db d9 pand %xmm1,%xmm3 - 43c263: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c267: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c26b: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c26f: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c275: 0f 85 75 0c 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c27b: 48 83 c6 04 add $0x4,%rsi - 43c27f: 48 01 ce add %rcx,%rsi - 43c282: 48 01 cf add %rcx,%rdi - 43c285: e9 76 0d 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c28a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43c290: 48 83 e9 20 sub $0x20,%rcx - 43c294: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 - 43c299: 66 0f 3a 0f 06 04 palignr $0x4,(%rsi),%xmm0 - 43c29f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 43c2a3: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c2a8: 66 0f 3a 0f 5e 10 04 palignr $0x4,0x10(%rsi),%xmm3 - 43c2af: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c2b4: 66 0f db d8 pand %xmm0,%xmm3 - 43c2b8: 48 83 e9 20 sub $0x20,%rcx - 43c2bc: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c2c0: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c2c4: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 - 43c2c9: 66 0f 3a 0f 5e 30 04 palignr $0x4,0x30(%rsi),%xmm3 - 43c2d0: 81 da ff ff 00 00 sbb $0xffff,%edx - 43c2d6: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 - 43c2db: 66 0f 3a 0f 46 20 04 palignr $0x4,0x20(%rsi),%xmm0 - 43c2e2: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 - 43c2e7: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c2eb: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 - 43c2f0: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c2f4: 74 be je 43c2b4 <__memcmp_ssse3+0x584> - 43c2f6: 66 0f db d8 pand %xmm0,%xmm3 - 43c2fa: 48 83 f9 00 cmp $0x0,%rcx - 43c2fe: 7d 06 jge 43c306 <__memcmp_ssse3+0x5d6> - 43c300: ff c2 inc %edx - 43c302: 48 83 c1 20 add $0x20,%rcx - 43c306: 85 d2 test %edx,%edx - 43c308: 0f 85 e2 0b 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c30e: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c312: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c316: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c31a: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c31e: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c324: 0f 85 c6 0b 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c32a: 48 8d 76 04 lea 0x4(%rsi),%rsi - 43c32e: 48 01 ce add %rcx,%rsi - 43c331: 48 01 cf add %rcx,%rdi - 43c334: e9 c7 0c 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c339: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43c340: 48 83 f9 50 cmp $0x50,%rcx - 43c344: 48 8d 49 d0 lea -0x30(%rcx),%rcx - 43c348: 89 d0 mov %edx,%eax - 43c34a: 73 54 jae 43c3a0 <__memcmp_ssse3+0x670> - 43c34c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 43c351: 66 0f 6f d1 movdqa %xmm1,%xmm2 - 43c355: 66 0f 3a 0f 0e 05 palignr $0x5,(%rsi),%xmm1 - 43c35b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 43c35f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c364: 66 0f 3a 0f da 05 palignr $0x5,%xmm2,%xmm3 - 43c36a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c36f: 66 0f db d9 pand %xmm1,%xmm3 - 43c373: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c377: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c37b: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c37f: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c385: 0f 85 65 0b 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c38b: 48 83 c6 05 add $0x5,%rsi - 43c38f: 48 01 ce add %rcx,%rsi - 43c392: 48 01 cf add %rcx,%rdi - 43c395: e9 66 0c 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c39a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43c3a0: 48 83 e9 20 sub $0x20,%rcx - 43c3a4: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 - 43c3a9: 66 0f 3a 0f 06 05 palignr $0x5,(%rsi),%xmm0 - 43c3af: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 43c3b3: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c3b8: 66 0f 3a 0f 5e 10 05 palignr $0x5,0x10(%rsi),%xmm3 - 43c3bf: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c3c4: 66 0f db d8 pand %xmm0,%xmm3 - 43c3c8: 48 83 e9 20 sub $0x20,%rcx - 43c3cc: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c3d0: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c3d4: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 - 43c3d9: 66 0f 3a 0f 5e 30 05 palignr $0x5,0x30(%rsi),%xmm3 - 43c3e0: 81 da ff ff 00 00 sbb $0xffff,%edx - 43c3e6: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 - 43c3eb: 66 0f 3a 0f 46 20 05 palignr $0x5,0x20(%rsi),%xmm0 - 43c3f2: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 - 43c3f7: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c3fb: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 - 43c400: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c404: 74 be je 43c3c4 <__memcmp_ssse3+0x694> - 43c406: 66 0f db d8 pand %xmm0,%xmm3 - 43c40a: 48 83 f9 00 cmp $0x0,%rcx - 43c40e: 7d 06 jge 43c416 <__memcmp_ssse3+0x6e6> - 43c410: ff c2 inc %edx - 43c412: 48 83 c1 20 add $0x20,%rcx - 43c416: 85 d2 test %edx,%edx - 43c418: 0f 85 d2 0a 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c41e: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c422: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c426: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c42a: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c42e: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c434: 0f 85 b6 0a 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c43a: 48 8d 76 05 lea 0x5(%rsi),%rsi - 43c43e: 48 01 ce add %rcx,%rsi - 43c441: 48 01 cf add %rcx,%rdi - 43c444: e9 b7 0b 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c449: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43c450: 48 83 f9 50 cmp $0x50,%rcx - 43c454: 48 8d 49 d0 lea -0x30(%rcx),%rcx - 43c458: 89 d0 mov %edx,%eax - 43c45a: 73 54 jae 43c4b0 <__memcmp_ssse3+0x780> - 43c45c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 43c461: 66 0f 6f d1 movdqa %xmm1,%xmm2 - 43c465: 66 0f 3a 0f 0e 06 palignr $0x6,(%rsi),%xmm1 - 43c46b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 43c46f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c474: 66 0f 3a 0f da 06 palignr $0x6,%xmm2,%xmm3 - 43c47a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c47f: 66 0f db d9 pand %xmm1,%xmm3 - 43c483: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c487: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c48b: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c48f: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c495: 0f 85 55 0a 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c49b: 48 83 c6 06 add $0x6,%rsi - 43c49f: 48 01 ce add %rcx,%rsi - 43c4a2: 48 01 cf add %rcx,%rdi - 43c4a5: e9 56 0b 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c4aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43c4b0: 48 83 e9 20 sub $0x20,%rcx - 43c4b4: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 - 43c4b9: 66 0f 3a 0f 06 06 palignr $0x6,(%rsi),%xmm0 - 43c4bf: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 43c4c3: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c4c8: 66 0f 3a 0f 5e 10 06 palignr $0x6,0x10(%rsi),%xmm3 - 43c4cf: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c4d4: 66 0f db d8 pand %xmm0,%xmm3 - 43c4d8: 48 83 e9 20 sub $0x20,%rcx - 43c4dc: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c4e0: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c4e4: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 - 43c4e9: 66 0f 3a 0f 5e 30 06 palignr $0x6,0x30(%rsi),%xmm3 - 43c4f0: 81 da ff ff 00 00 sbb $0xffff,%edx - 43c4f6: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 - 43c4fb: 66 0f 3a 0f 46 20 06 palignr $0x6,0x20(%rsi),%xmm0 - 43c502: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 - 43c507: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c50b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 - 43c510: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c514: 74 be je 43c4d4 <__memcmp_ssse3+0x7a4> - 43c516: 66 0f db d8 pand %xmm0,%xmm3 - 43c51a: 48 83 f9 00 cmp $0x0,%rcx - 43c51e: 7d 06 jge 43c526 <__memcmp_ssse3+0x7f6> - 43c520: ff c2 inc %edx - 43c522: 48 83 c1 20 add $0x20,%rcx - 43c526: 85 d2 test %edx,%edx - 43c528: 0f 85 c2 09 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c52e: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c532: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c536: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c53a: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c53e: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c544: 0f 85 a6 09 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c54a: 48 8d 76 06 lea 0x6(%rsi),%rsi - 43c54e: 48 01 ce add %rcx,%rsi - 43c551: 48 01 cf add %rcx,%rdi - 43c554: e9 a7 0a 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c559: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43c560: 48 83 f9 50 cmp $0x50,%rcx - 43c564: 48 8d 49 d0 lea -0x30(%rcx),%rcx - 43c568: 89 d0 mov %edx,%eax - 43c56a: 73 54 jae 43c5c0 <__memcmp_ssse3+0x890> - 43c56c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 43c571: 66 0f 6f d1 movdqa %xmm1,%xmm2 - 43c575: 66 0f 3a 0f 0e 07 palignr $0x7,(%rsi),%xmm1 - 43c57b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 43c57f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c584: 66 0f 3a 0f da 07 palignr $0x7,%xmm2,%xmm3 - 43c58a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c58f: 66 0f db d9 pand %xmm1,%xmm3 - 43c593: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c597: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c59b: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c59f: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c5a5: 0f 85 45 09 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c5ab: 48 83 c6 07 add $0x7,%rsi - 43c5af: 48 01 ce add %rcx,%rsi - 43c5b2: 48 01 cf add %rcx,%rdi - 43c5b5: e9 46 0a 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c5ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43c5c0: 48 83 e9 20 sub $0x20,%rcx - 43c5c4: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 - 43c5c9: 66 0f 3a 0f 06 07 palignr $0x7,(%rsi),%xmm0 - 43c5cf: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 43c5d3: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c5d8: 66 0f 3a 0f 5e 10 07 palignr $0x7,0x10(%rsi),%xmm3 - 43c5df: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c5e4: 66 0f db d8 pand %xmm0,%xmm3 - 43c5e8: 48 83 e9 20 sub $0x20,%rcx - 43c5ec: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c5f0: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c5f4: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 - 43c5f9: 66 0f 3a 0f 5e 30 07 palignr $0x7,0x30(%rsi),%xmm3 - 43c600: 81 da ff ff 00 00 sbb $0xffff,%edx - 43c606: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 - 43c60b: 66 0f 3a 0f 46 20 07 palignr $0x7,0x20(%rsi),%xmm0 - 43c612: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 - 43c617: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c61b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 - 43c620: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c624: 74 be je 43c5e4 <__memcmp_ssse3+0x8b4> - 43c626: 66 0f db d8 pand %xmm0,%xmm3 - 43c62a: 48 83 f9 00 cmp $0x0,%rcx - 43c62e: 7d 06 jge 43c636 <__memcmp_ssse3+0x906> - 43c630: ff c2 inc %edx - 43c632: 48 83 c1 20 add $0x20,%rcx - 43c636: 85 d2 test %edx,%edx - 43c638: 0f 85 b2 08 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c63e: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c642: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c646: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c64a: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c64e: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c654: 0f 85 96 08 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c65a: 48 8d 76 07 lea 0x7(%rsi),%rsi - 43c65e: 48 01 ce add %rcx,%rsi - 43c661: 48 01 cf add %rcx,%rdi - 43c664: e9 97 09 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c669: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43c670: 48 83 f9 50 cmp $0x50,%rcx - 43c674: 48 8d 49 d0 lea -0x30(%rcx),%rcx - 43c678: 89 d0 mov %edx,%eax - 43c67a: 73 54 jae 43c6d0 <__memcmp_ssse3+0x9a0> - 43c67c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 43c681: 66 0f 6f d1 movdqa %xmm1,%xmm2 - 43c685: 66 0f 3a 0f 0e 08 palignr $0x8,(%rsi),%xmm1 - 43c68b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 43c68f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c694: 66 0f 3a 0f da 08 palignr $0x8,%xmm2,%xmm3 - 43c69a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c69f: 66 0f db d9 pand %xmm1,%xmm3 - 43c6a3: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c6a7: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c6ab: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c6af: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c6b5: 0f 85 35 08 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c6bb: 48 83 c6 08 add $0x8,%rsi - 43c6bf: 48 01 ce add %rcx,%rsi - 43c6c2: 48 01 cf add %rcx,%rdi - 43c6c5: e9 36 09 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c6ca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43c6d0: 48 83 e9 20 sub $0x20,%rcx - 43c6d4: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 - 43c6d9: 66 0f 3a 0f 06 08 palignr $0x8,(%rsi),%xmm0 - 43c6df: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 43c6e3: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c6e8: 66 0f 3a 0f 5e 10 08 palignr $0x8,0x10(%rsi),%xmm3 - 43c6ef: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c6f4: 66 0f db d8 pand %xmm0,%xmm3 - 43c6f8: 48 83 e9 20 sub $0x20,%rcx - 43c6fc: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c700: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c704: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 - 43c709: 66 0f 3a 0f 5e 30 08 palignr $0x8,0x30(%rsi),%xmm3 - 43c710: 81 da ff ff 00 00 sbb $0xffff,%edx - 43c716: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 - 43c71b: 66 0f 3a 0f 46 20 08 palignr $0x8,0x20(%rsi),%xmm0 - 43c722: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 - 43c727: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c72b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 - 43c730: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c734: 74 be je 43c6f4 <__memcmp_ssse3+0x9c4> - 43c736: 66 0f db d8 pand %xmm0,%xmm3 - 43c73a: 48 83 f9 00 cmp $0x0,%rcx - 43c73e: 7d 06 jge 43c746 <__memcmp_ssse3+0xa16> - 43c740: ff c2 inc %edx - 43c742: 48 83 c1 20 add $0x20,%rcx - 43c746: 85 d2 test %edx,%edx - 43c748: 0f 85 a2 07 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c74e: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c752: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c756: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c75a: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c75e: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c764: 0f 85 86 07 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c76a: 48 8d 76 08 lea 0x8(%rsi),%rsi - 43c76e: 48 01 ce add %rcx,%rsi - 43c771: 48 01 cf add %rcx,%rdi - 43c774: e9 87 08 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c779: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43c780: 48 83 f9 50 cmp $0x50,%rcx - 43c784: 48 8d 49 d0 lea -0x30(%rcx),%rcx - 43c788: 89 d0 mov %edx,%eax - 43c78a: 73 54 jae 43c7e0 <__memcmp_ssse3+0xab0> - 43c78c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 43c791: 66 0f 6f d1 movdqa %xmm1,%xmm2 - 43c795: 66 0f 3a 0f 0e 09 palignr $0x9,(%rsi),%xmm1 - 43c79b: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 43c79f: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c7a4: 66 0f 3a 0f da 09 palignr $0x9,%xmm2,%xmm3 - 43c7aa: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c7af: 66 0f db d9 pand %xmm1,%xmm3 - 43c7b3: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c7b7: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c7bb: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c7bf: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c7c5: 0f 85 25 07 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c7cb: 48 83 c6 09 add $0x9,%rsi - 43c7cf: 48 01 ce add %rcx,%rsi - 43c7d2: 48 01 cf add %rcx,%rdi - 43c7d5: e9 26 08 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c7da: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43c7e0: 48 83 e9 20 sub $0x20,%rcx - 43c7e4: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 - 43c7e9: 66 0f 3a 0f 06 09 palignr $0x9,(%rsi),%xmm0 - 43c7ef: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 43c7f3: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c7f8: 66 0f 3a 0f 5e 10 09 palignr $0x9,0x10(%rsi),%xmm3 - 43c7ff: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c804: 66 0f db d8 pand %xmm0,%xmm3 - 43c808: 48 83 e9 20 sub $0x20,%rcx - 43c80c: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c810: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c814: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 - 43c819: 66 0f 3a 0f 5e 30 09 palignr $0x9,0x30(%rsi),%xmm3 - 43c820: 81 da ff ff 00 00 sbb $0xffff,%edx - 43c826: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 - 43c82b: 66 0f 3a 0f 46 20 09 palignr $0x9,0x20(%rsi),%xmm0 - 43c832: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 - 43c837: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c83b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 - 43c840: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c844: 74 be je 43c804 <__memcmp_ssse3+0xad4> - 43c846: 66 0f db d8 pand %xmm0,%xmm3 - 43c84a: 48 83 f9 00 cmp $0x0,%rcx - 43c84e: 7d 06 jge 43c856 <__memcmp_ssse3+0xb26> - 43c850: ff c2 inc %edx - 43c852: 48 83 c1 20 add $0x20,%rcx - 43c856: 85 d2 test %edx,%edx - 43c858: 0f 85 92 06 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c85e: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c862: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c866: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c86a: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c86e: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c874: 0f 85 76 06 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c87a: 48 8d 76 09 lea 0x9(%rsi),%rsi - 43c87e: 48 01 ce add %rcx,%rsi - 43c881: 48 01 cf add %rcx,%rdi - 43c884: e9 77 07 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c889: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43c890: 48 83 f9 50 cmp $0x50,%rcx - 43c894: 48 8d 49 d0 lea -0x30(%rcx),%rcx - 43c898: 89 d0 mov %edx,%eax - 43c89a: 73 54 jae 43c8f0 <__memcmp_ssse3+0xbc0> - 43c89c: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 43c8a1: 66 0f 6f d1 movdqa %xmm1,%xmm2 - 43c8a5: 66 0f 3a 0f 0e 0a palignr $0xa,(%rsi),%xmm1 - 43c8ab: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 43c8af: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c8b4: 66 0f 3a 0f da 0a palignr $0xa,%xmm2,%xmm3 - 43c8ba: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c8bf: 66 0f db d9 pand %xmm1,%xmm3 - 43c8c3: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c8c7: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c8cb: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c8cf: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c8d5: 0f 85 15 06 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c8db: 48 83 c6 0a add $0xa,%rsi - 43c8df: 48 01 ce add %rcx,%rsi - 43c8e2: 48 01 cf add %rcx,%rdi - 43c8e5: e9 16 07 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c8ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43c8f0: 48 83 e9 20 sub $0x20,%rcx - 43c8f4: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 - 43c8f9: 66 0f 3a 0f 06 0a palignr $0xa,(%rsi),%xmm0 - 43c8ff: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 43c903: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c908: 66 0f 3a 0f 5e 10 0a palignr $0xa,0x10(%rsi),%xmm3 - 43c90f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c914: 66 0f db d8 pand %xmm0,%xmm3 - 43c918: 48 83 e9 20 sub $0x20,%rcx - 43c91c: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c920: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c924: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 - 43c929: 66 0f 3a 0f 5e 30 0a palignr $0xa,0x30(%rsi),%xmm3 - 43c930: 81 da ff ff 00 00 sbb $0xffff,%edx - 43c936: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 - 43c93b: 66 0f 3a 0f 46 20 0a palignr $0xa,0x20(%rsi),%xmm0 - 43c942: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 - 43c947: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c94b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 - 43c950: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c954: 74 be je 43c914 <__memcmp_ssse3+0xbe4> - 43c956: 66 0f db d8 pand %xmm0,%xmm3 - 43c95a: 48 83 f9 00 cmp $0x0,%rcx - 43c95e: 7d 06 jge 43c966 <__memcmp_ssse3+0xc36> - 43c960: ff c2 inc %edx - 43c962: 48 83 c1 20 add $0x20,%rcx - 43c966: 85 d2 test %edx,%edx - 43c968: 0f 85 82 05 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c96e: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c972: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43c976: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c97a: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c97e: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c984: 0f 85 66 05 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c98a: 48 8d 76 0a lea 0xa(%rsi),%rsi - 43c98e: 48 01 ce add %rcx,%rsi - 43c991: 48 01 cf add %rcx,%rdi - 43c994: e9 67 06 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c999: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43c9a0: 48 83 f9 50 cmp $0x50,%rcx - 43c9a4: 48 8d 49 d0 lea -0x30(%rcx),%rcx - 43c9a8: 89 d0 mov %edx,%eax - 43c9aa: 73 54 jae 43ca00 <__memcmp_ssse3+0xcd0> - 43c9ac: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 43c9b1: 66 0f 6f d1 movdqa %xmm1,%xmm2 - 43c9b5: 66 0f 3a 0f 0e 0b palignr $0xb,(%rsi),%xmm1 - 43c9bb: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 43c9bf: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43c9c4: 66 0f 3a 0f da 0b palignr $0xb,%xmm2,%xmm3 - 43c9ca: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43c9cf: 66 0f db d9 pand %xmm1,%xmm3 - 43c9d3: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43c9d7: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43c9db: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43c9df: 81 ea ff ff 00 00 sub $0xffff,%edx - 43c9e5: 0f 85 05 05 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43c9eb: 48 83 c6 0b add $0xb,%rsi - 43c9ef: 48 01 ce add %rcx,%rsi - 43c9f2: 48 01 cf add %rcx,%rdi - 43c9f5: e9 06 06 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43c9fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43ca00: 48 83 e9 20 sub $0x20,%rcx - 43ca04: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 - 43ca09: 66 0f 3a 0f 06 0b palignr $0xb,(%rsi),%xmm0 - 43ca0f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 43ca13: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43ca18: 66 0f 3a 0f 5e 10 0b palignr $0xb,0x10(%rsi),%xmm3 - 43ca1f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43ca24: 66 0f db d8 pand %xmm0,%xmm3 - 43ca28: 48 83 e9 20 sub $0x20,%rcx - 43ca2c: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43ca30: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43ca34: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 - 43ca39: 66 0f 3a 0f 5e 30 0b palignr $0xb,0x30(%rsi),%xmm3 - 43ca40: 81 da ff ff 00 00 sbb $0xffff,%edx - 43ca46: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 - 43ca4b: 66 0f 3a 0f 46 20 0b palignr $0xb,0x20(%rsi),%xmm0 - 43ca52: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 - 43ca57: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43ca5b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 - 43ca60: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43ca64: 74 be je 43ca24 <__memcmp_ssse3+0xcf4> - 43ca66: 66 0f db d8 pand %xmm0,%xmm3 - 43ca6a: 48 83 f9 00 cmp $0x0,%rcx - 43ca6e: 7d 06 jge 43ca76 <__memcmp_ssse3+0xd46> - 43ca70: ff c2 inc %edx - 43ca72: 48 83 c1 20 add $0x20,%rcx - 43ca76: 85 d2 test %edx,%edx - 43ca78: 0f 85 72 04 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43ca7e: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43ca82: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43ca86: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43ca8a: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43ca8e: 81 ea ff ff 00 00 sub $0xffff,%edx - 43ca94: 0f 85 56 04 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43ca9a: 48 8d 76 0b lea 0xb(%rsi),%rsi - 43ca9e: 48 01 ce add %rcx,%rsi - 43caa1: 48 01 cf add %rcx,%rdi - 43caa4: e9 57 05 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43caa9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43cab0: 48 83 f9 50 cmp $0x50,%rcx - 43cab4: 48 8d 49 d0 lea -0x30(%rcx),%rcx - 43cab8: 89 d0 mov %edx,%eax - 43caba: 73 54 jae 43cb10 <__memcmp_ssse3+0xde0> - 43cabc: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 43cac1: 66 0f 6f d1 movdqa %xmm1,%xmm2 - 43cac5: 66 0f 3a 0f 0e 0c palignr $0xc,(%rsi),%xmm1 - 43cacb: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 43cacf: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43cad4: 66 0f 3a 0f da 0c palignr $0xc,%xmm2,%xmm3 - 43cada: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43cadf: 66 0f db d9 pand %xmm1,%xmm3 - 43cae3: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43cae7: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43caeb: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43caef: 81 ea ff ff 00 00 sub $0xffff,%edx - 43caf5: 0f 85 f5 03 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43cafb: 48 83 c6 0c add $0xc,%rsi - 43caff: 48 01 ce add %rcx,%rsi - 43cb02: 48 01 cf add %rcx,%rdi - 43cb05: e9 f6 04 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43cb0a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43cb10: 48 83 e9 20 sub $0x20,%rcx - 43cb14: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 - 43cb19: 66 0f 3a 0f 06 0c palignr $0xc,(%rsi),%xmm0 - 43cb1f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 43cb23: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43cb28: 66 0f 3a 0f 5e 10 0c palignr $0xc,0x10(%rsi),%xmm3 - 43cb2f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43cb34: 66 0f db d8 pand %xmm0,%xmm3 - 43cb38: 48 83 e9 20 sub $0x20,%rcx - 43cb3c: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43cb40: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43cb44: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 - 43cb49: 66 0f 3a 0f 5e 30 0c palignr $0xc,0x30(%rsi),%xmm3 - 43cb50: 81 da ff ff 00 00 sbb $0xffff,%edx - 43cb56: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 - 43cb5b: 66 0f 3a 0f 46 20 0c palignr $0xc,0x20(%rsi),%xmm0 - 43cb62: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 - 43cb67: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43cb6b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 - 43cb70: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43cb74: 74 be je 43cb34 <__memcmp_ssse3+0xe04> - 43cb76: 66 0f db d8 pand %xmm0,%xmm3 - 43cb7a: 48 83 f9 00 cmp $0x0,%rcx - 43cb7e: 7d 06 jge 43cb86 <__memcmp_ssse3+0xe56> - 43cb80: ff c2 inc %edx - 43cb82: 48 83 c1 20 add $0x20,%rcx - 43cb86: 85 d2 test %edx,%edx - 43cb88: 0f 85 62 03 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43cb8e: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43cb92: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43cb96: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43cb9a: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43cb9e: 81 ea ff ff 00 00 sub $0xffff,%edx - 43cba4: 0f 85 46 03 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43cbaa: 48 8d 76 0c lea 0xc(%rsi),%rsi - 43cbae: 48 01 ce add %rcx,%rsi - 43cbb1: 48 01 cf add %rcx,%rdi - 43cbb4: e9 47 04 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43cbb9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43cbc0: 48 83 f9 50 cmp $0x50,%rcx - 43cbc4: 48 8d 49 d0 lea -0x30(%rcx),%rcx - 43cbc8: 89 d0 mov %edx,%eax - 43cbca: 73 54 jae 43cc20 <__memcmp_ssse3+0xef0> - 43cbcc: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 43cbd1: 66 0f 6f d1 movdqa %xmm1,%xmm2 - 43cbd5: 66 0f 3a 0f 0e 0d palignr $0xd,(%rsi),%xmm1 - 43cbdb: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 43cbdf: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43cbe4: 66 0f 3a 0f da 0d palignr $0xd,%xmm2,%xmm3 - 43cbea: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43cbef: 66 0f db d9 pand %xmm1,%xmm3 - 43cbf3: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43cbf7: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43cbfb: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43cbff: 81 ea ff ff 00 00 sub $0xffff,%edx - 43cc05: 0f 85 e5 02 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43cc0b: 48 83 c6 0d add $0xd,%rsi - 43cc0f: 48 01 ce add %rcx,%rsi - 43cc12: 48 01 cf add %rcx,%rdi - 43cc15: e9 e6 03 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43cc1a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43cc20: 48 83 e9 20 sub $0x20,%rcx - 43cc24: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 - 43cc29: 66 0f 3a 0f 06 0d palignr $0xd,(%rsi),%xmm0 - 43cc2f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 43cc33: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43cc38: 66 0f 3a 0f 5e 10 0d palignr $0xd,0x10(%rsi),%xmm3 - 43cc3f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43cc44: 66 0f db d8 pand %xmm0,%xmm3 - 43cc48: 48 83 e9 20 sub $0x20,%rcx - 43cc4c: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43cc50: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43cc54: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 - 43cc59: 66 0f 3a 0f 5e 30 0d palignr $0xd,0x30(%rsi),%xmm3 - 43cc60: 81 da ff ff 00 00 sbb $0xffff,%edx - 43cc66: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 - 43cc6b: 66 0f 3a 0f 46 20 0d palignr $0xd,0x20(%rsi),%xmm0 - 43cc72: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 - 43cc77: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43cc7b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 - 43cc80: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43cc84: 74 be je 43cc44 <__memcmp_ssse3+0xf14> - 43cc86: 66 0f db d8 pand %xmm0,%xmm3 - 43cc8a: 48 83 f9 00 cmp $0x0,%rcx - 43cc8e: 7d 06 jge 43cc96 <__memcmp_ssse3+0xf66> - 43cc90: ff c2 inc %edx - 43cc92: 48 83 c1 20 add $0x20,%rcx - 43cc96: 85 d2 test %edx,%edx - 43cc98: 0f 85 52 02 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43cc9e: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43cca2: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43cca6: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43ccaa: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43ccae: 81 ea ff ff 00 00 sub $0xffff,%edx - 43ccb4: 0f 85 36 02 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43ccba: 48 8d 76 0d lea 0xd(%rsi),%rsi - 43ccbe: 48 01 ce add %rcx,%rsi - 43ccc1: 48 01 cf add %rcx,%rdi - 43ccc4: e9 37 03 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43ccc9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43ccd0: 48 83 f9 50 cmp $0x50,%rcx - 43ccd4: 48 8d 49 d0 lea -0x30(%rcx),%rcx - 43ccd8: 89 d0 mov %edx,%eax - 43ccda: 73 54 jae 43cd30 <__memcmp_ssse3+0x1000> - 43ccdc: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 43cce1: 66 0f 6f d1 movdqa %xmm1,%xmm2 - 43cce5: 66 0f 3a 0f 0e 0e palignr $0xe,(%rsi),%xmm1 - 43cceb: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 43ccef: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43ccf4: 66 0f 3a 0f da 0e palignr $0xe,%xmm2,%xmm3 - 43ccfa: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43ccff: 66 0f db d9 pand %xmm1,%xmm3 - 43cd03: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43cd07: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43cd0b: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43cd0f: 81 ea ff ff 00 00 sub $0xffff,%edx - 43cd15: 0f 85 d5 01 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43cd1b: 48 83 c6 0e add $0xe,%rsi - 43cd1f: 48 01 ce add %rcx,%rsi - 43cd22: 48 01 cf add %rcx,%rdi - 43cd25: e9 d6 02 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43cd2a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43cd30: 48 83 e9 20 sub $0x20,%rcx - 43cd34: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 - 43cd39: 66 0f 3a 0f 06 0e palignr $0xe,(%rsi),%xmm0 - 43cd3f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 43cd43: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43cd48: 66 0f 3a 0f 5e 10 0e palignr $0xe,0x10(%rsi),%xmm3 - 43cd4f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43cd54: 66 0f db d8 pand %xmm0,%xmm3 - 43cd58: 48 83 e9 20 sub $0x20,%rcx - 43cd5c: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43cd60: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43cd64: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 - 43cd69: 66 0f 3a 0f 5e 30 0e palignr $0xe,0x30(%rsi),%xmm3 - 43cd70: 81 da ff ff 00 00 sbb $0xffff,%edx - 43cd76: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 - 43cd7b: 66 0f 3a 0f 46 20 0e palignr $0xe,0x20(%rsi),%xmm0 - 43cd82: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 - 43cd87: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43cd8b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 - 43cd90: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43cd94: 74 be je 43cd54 <__memcmp_ssse3+0x1024> - 43cd96: 66 0f db d8 pand %xmm0,%xmm3 - 43cd9a: 48 83 f9 00 cmp $0x0,%rcx - 43cd9e: 7d 06 jge 43cda6 <__memcmp_ssse3+0x1076> - 43cda0: ff c2 inc %edx - 43cda2: 48 83 c1 20 add $0x20,%rcx - 43cda6: 85 d2 test %edx,%edx - 43cda8: 0f 85 42 01 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43cdae: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43cdb2: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43cdb6: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43cdba: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43cdbe: 81 ea ff ff 00 00 sub $0xffff,%edx - 43cdc4: 0f 85 26 01 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43cdca: 48 8d 76 0e lea 0xe(%rsi),%rsi - 43cdce: 48 01 ce add %rcx,%rsi - 43cdd1: 48 01 cf add %rcx,%rdi - 43cdd4: e9 27 02 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43cdd9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43cde0: 48 83 f9 50 cmp $0x50,%rcx - 43cde4: 48 8d 49 d0 lea -0x30(%rcx),%rcx - 43cde8: 89 d0 mov %edx,%eax - 43cdea: 73 54 jae 43ce40 <__memcmp_ssse3+0x1110> - 43cdec: 66 0f 6f 4e 10 movdqa 0x10(%rsi),%xmm1 - 43cdf1: 66 0f 6f d1 movdqa %xmm1,%xmm2 - 43cdf5: 66 0f 3a 0f 0e 0f palignr $0xf,(%rsi),%xmm1 - 43cdfb: 66 0f 74 0f pcmpeqb (%rdi),%xmm1 - 43cdff: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43ce04: 66 0f 3a 0f da 0f palignr $0xf,%xmm2,%xmm3 - 43ce0a: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43ce0f: 66 0f db d9 pand %xmm1,%xmm3 - 43ce13: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43ce17: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43ce1b: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43ce1f: 81 ea ff ff 00 00 sub $0xffff,%edx - 43ce25: 0f 85 c5 00 00 00 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43ce2b: 48 83 c6 0f add $0xf,%rsi - 43ce2f: 48 01 ce add %rcx,%rsi - 43ce32: 48 01 cf add %rcx,%rdi - 43ce35: e9 c6 01 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43ce3a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43ce40: 48 83 e9 20 sub $0x20,%rcx - 43ce44: 66 0f 6f 46 10 movdqa 0x10(%rsi),%xmm0 - 43ce49: 66 0f 3a 0f 06 0f palignr $0xf,(%rsi),%xmm0 - 43ce4f: 66 0f 74 07 pcmpeqb (%rdi),%xmm0 - 43ce53: 66 0f 6f 5e 20 movdqa 0x20(%rsi),%xmm3 - 43ce58: 66 0f 3a 0f 5e 10 0f palignr $0xf,0x10(%rsi),%xmm3 - 43ce5f: 66 0f 74 5f 10 pcmpeqb 0x10(%rdi),%xmm3 - 43ce64: 66 0f db d8 pand %xmm0,%xmm3 - 43ce68: 48 83 e9 20 sub $0x20,%rcx - 43ce6c: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43ce70: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43ce74: 66 0f 6f 5e 40 movdqa 0x40(%rsi),%xmm3 - 43ce79: 66 0f 3a 0f 5e 30 0f palignr $0xf,0x30(%rsi),%xmm3 - 43ce80: 81 da ff ff 00 00 sbb $0xffff,%edx - 43ce86: 66 0f 6f 46 30 movdqa 0x30(%rsi),%xmm0 - 43ce8b: 66 0f 3a 0f 46 20 0f palignr $0xf,0x20(%rsi),%xmm0 - 43ce92: 66 0f 74 47 20 pcmpeqb 0x20(%rdi),%xmm0 - 43ce97: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43ce9b: 66 0f 74 5f 30 pcmpeqb 0x30(%rdi),%xmm3 - 43cea0: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43cea4: 74 be je 43ce64 <__memcmp_ssse3+0x1134> - 43cea6: 66 0f db d8 pand %xmm0,%xmm3 - 43ceaa: 48 83 f9 00 cmp $0x0,%rcx - 43ceae: 7d 06 jge 43ceb6 <__memcmp_ssse3+0x1186> - 43ceb0: ff c2 inc %edx - 43ceb2: 48 83 c1 20 add $0x20,%rcx - 43ceb6: 85 d2 test %edx,%edx - 43ceb8: 75 36 jne 43cef0 <__memcmp_ssse3+0x11c0> - 43ceba: 66 0f d7 d3 pmovmskb %xmm3,%edx - 43cebe: 66 0f 6f c8 movdqa %xmm0,%xmm1 - 43cec2: 48 8d 7f 20 lea 0x20(%rdi),%rdi - 43cec6: 48 8d 76 20 lea 0x20(%rsi),%rsi - 43ceca: 81 ea ff ff 00 00 sub $0xffff,%edx - 43ced0: 75 1e jne 43cef0 <__memcmp_ssse3+0x11c0> - 43ced2: 48 8d 76 0f lea 0xf(%rsi),%rsi - 43ced6: 48 01 ce add %rcx,%rsi - 43ced9: 48 01 cf add %rcx,%rdi - 43cedc: e9 1f 01 00 00 jmpq 43d000 <__memcmp_ssse3+0x12d0> - 43cee1: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43cee6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43ceed: 00 00 00 - 43cef0: 66 44 0f d7 c1 pmovmskb %xmm1,%r8d - 43cef5: 41 81 e8 ff ff 00 00 sub $0xffff,%r8d - 43cefc: 74 0b je 43cf09 <__memcmp_ssse3+0x11d9> - 43cefe: 48 8d 76 f0 lea -0x10(%rsi),%rsi - 43cf02: 48 8d 7f f0 lea -0x10(%rdi),%rdi - 43cf06: 44 89 c2 mov %r8d,%edx - 43cf09: 48 01 c6 add %rax,%rsi - 43cf0c: 84 d2 test %dl,%dl - 43cf0e: 0f 84 ac 00 00 00 je 43cfc0 <__memcmp_ssse3+0x1290> - 43cf14: f6 c2 01 test $0x1,%dl - 43cf17: 75 37 jne 43cf50 <__memcmp_ssse3+0x1220> - 43cf19: f6 c2 02 test $0x2,%dl - 43cf1c: 75 42 jne 43cf60 <__memcmp_ssse3+0x1230> - 43cf1e: f6 c2 04 test $0x4,%dl - 43cf21: 75 4d jne 43cf70 <__memcmp_ssse3+0x1240> - 43cf23: f6 c2 08 test $0x8,%dl - 43cf26: 75 58 jne 43cf80 <__memcmp_ssse3+0x1250> - 43cf28: f6 c2 10 test $0x10,%dl - 43cf2b: 75 63 jne 43cf90 <__memcmp_ssse3+0x1260> - 43cf2d: f6 c2 20 test $0x20,%dl - 43cf30: 75 6e jne 43cfa0 <__memcmp_ssse3+0x1270> - 43cf32: f6 c2 40 test $0x40,%dl - 43cf35: 75 79 jne 43cfb0 <__memcmp_ssse3+0x1280> - 43cf37: 0f b6 47 f7 movzbl -0x9(%rdi),%eax - 43cf3b: 0f b6 56 f7 movzbl -0x9(%rsi),%edx - 43cf3f: 29 d0 sub %edx,%eax - 43cf41: c3 retq - 43cf42: 0f 1f 40 00 nopl 0x0(%rax) - 43cf46: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43cf4d: 00 00 00 - 43cf50: 0f b6 47 f0 movzbl -0x10(%rdi),%eax - 43cf54: 0f b6 56 f0 movzbl -0x10(%rsi),%edx - 43cf58: 29 d0 sub %edx,%eax - 43cf5a: c3 retq - 43cf5b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43cf60: 0f b6 47 f1 movzbl -0xf(%rdi),%eax - 43cf64: 0f b6 56 f1 movzbl -0xf(%rsi),%edx - 43cf68: 29 d0 sub %edx,%eax - 43cf6a: c3 retq - 43cf6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43cf70: 0f b6 47 f2 movzbl -0xe(%rdi),%eax - 43cf74: 0f b6 56 f2 movzbl -0xe(%rsi),%edx - 43cf78: 29 d0 sub %edx,%eax - 43cf7a: c3 retq - 43cf7b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43cf80: 0f b6 47 f3 movzbl -0xd(%rdi),%eax - 43cf84: 0f b6 56 f3 movzbl -0xd(%rsi),%edx - 43cf88: 29 d0 sub %edx,%eax - 43cf8a: c3 retq - 43cf8b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43cf90: 0f b6 47 f4 movzbl -0xc(%rdi),%eax - 43cf94: 0f b6 56 f4 movzbl -0xc(%rsi),%edx - 43cf98: 29 d0 sub %edx,%eax - 43cf9a: c3 retq - 43cf9b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43cfa0: 0f b6 47 f5 movzbl -0xb(%rdi),%eax - 43cfa4: 0f b6 56 f5 movzbl -0xb(%rsi),%edx - 43cfa8: 29 d0 sub %edx,%eax - 43cfaa: c3 retq - 43cfab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43cfb0: 0f b6 47 f6 movzbl -0xa(%rdi),%eax - 43cfb4: 0f b6 56 f6 movzbl -0xa(%rsi),%edx - 43cfb8: 29 d0 sub %edx,%eax - 43cfba: c3 retq - 43cfbb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43cfc0: 48 8d 7f 08 lea 0x8(%rdi),%rdi - 43cfc4: 48 8d 76 08 lea 0x8(%rsi),%rsi - 43cfc8: f6 c6 01 test $0x1,%dh - 43cfcb: 75 83 jne 43cf50 <__memcmp_ssse3+0x1220> - 43cfcd: f6 c6 02 test $0x2,%dh - 43cfd0: 75 8e jne 43cf60 <__memcmp_ssse3+0x1230> - 43cfd2: f6 c6 04 test $0x4,%dh - 43cfd5: 75 99 jne 43cf70 <__memcmp_ssse3+0x1240> - 43cfd7: f6 c6 08 test $0x8,%dh - 43cfda: 75 a4 jne 43cf80 <__memcmp_ssse3+0x1250> - 43cfdc: f6 c6 10 test $0x10,%dh - 43cfdf: 75 af jne 43cf90 <__memcmp_ssse3+0x1260> - 43cfe1: f6 c6 20 test $0x20,%dh - 43cfe4: 75 ba jne 43cfa0 <__memcmp_ssse3+0x1270> - 43cfe6: f6 c6 40 test $0x40,%dh - 43cfe9: 75 c5 jne 43cfb0 <__memcmp_ssse3+0x1280> - 43cfeb: 0f b6 47 f7 movzbl -0x9(%rdi),%eax - 43cfef: 0f b6 56 f7 movzbl -0x9(%rsi),%edx - 43cff3: 29 d0 sub %edx,%eax - 43cff5: c3 retq - 43cff6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43cffd: 00 00 00 - 43d000: 83 f9 08 cmp $0x8,%ecx - 43d003: 73 4b jae 43d050 <__memcmp_ssse3+0x1320> - 43d005: 83 f9 00 cmp $0x0,%ecx - 43d008: 0f 84 5c 02 00 00 je 43d26a <__memcmp_ssse3+0x153a> - 43d00e: 83 f9 01 cmp $0x1,%ecx - 43d011: 0f 84 f3 02 00 00 je 43d30a <__memcmp_ssse3+0x15da> - 43d017: 83 f9 02 cmp $0x2,%ecx - 43d01a: 0f 84 9a 03 00 00 je 43d3ba <__memcmp_ssse3+0x168a> - 43d020: 83 f9 03 cmp $0x3,%ecx - 43d023: 0f 84 29 04 00 00 je 43d452 <__memcmp_ssse3+0x1722> - 43d029: 83 f9 04 cmp $0x4,%ecx - 43d02c: 0f 84 2a 02 00 00 je 43d25c <__memcmp_ssse3+0x152c> - 43d032: 83 f9 05 cmp $0x5,%ecx - 43d035: 0f 84 c1 02 00 00 je 43d2fc <__memcmp_ssse3+0x15cc> - 43d03b: 83 f9 06 cmp $0x6,%ecx - 43d03e: 0f 84 68 03 00 00 je 43d3ac <__memcmp_ssse3+0x167c> - 43d044: e9 ff 03 00 00 jmpq 43d448 <__memcmp_ssse3+0x1718> - 43d049: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43d050: 83 f9 10 cmp $0x10,%ecx - 43d053: 73 4b jae 43d0a0 <__memcmp_ssse3+0x1370> - 43d055: 83 f9 08 cmp $0x8,%ecx - 43d058: 0f 84 f0 01 00 00 je 43d24e <__memcmp_ssse3+0x151e> - 43d05e: 83 f9 09 cmp $0x9,%ecx - 43d061: 0f 84 87 02 00 00 je 43d2ee <__memcmp_ssse3+0x15be> - 43d067: 83 f9 0a cmp $0xa,%ecx - 43d06a: 0f 84 2e 03 00 00 je 43d39e <__memcmp_ssse3+0x166e> - 43d070: 83 f9 0b cmp $0xb,%ecx - 43d073: 0f 84 c5 03 00 00 je 43d43e <__memcmp_ssse3+0x170e> - 43d079: 83 f9 0c cmp $0xc,%ecx - 43d07c: 0f 84 be 01 00 00 je 43d240 <__memcmp_ssse3+0x1510> - 43d082: 83 f9 0d cmp $0xd,%ecx - 43d085: 0f 84 55 02 00 00 je 43d2e0 <__memcmp_ssse3+0x15b0> - 43d08b: 83 f9 0e cmp $0xe,%ecx - 43d08e: 0f 84 fc 02 00 00 je 43d390 <__memcmp_ssse3+0x1660> - 43d094: e9 9b 03 00 00 jmpq 43d434 <__memcmp_ssse3+0x1704> - 43d099: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43d0a0: 83 f9 18 cmp $0x18,%ecx - 43d0a3: 73 4b jae 43d0f0 <__memcmp_ssse3+0x13c0> - 43d0a5: 83 f9 10 cmp $0x10,%ecx - 43d0a8: 0f 84 84 01 00 00 je 43d232 <__memcmp_ssse3+0x1502> - 43d0ae: 83 f9 11 cmp $0x11,%ecx - 43d0b1: 0f 84 1b 02 00 00 je 43d2d2 <__memcmp_ssse3+0x15a2> - 43d0b7: 83 f9 12 cmp $0x12,%ecx - 43d0ba: 0f 84 c2 02 00 00 je 43d382 <__memcmp_ssse3+0x1652> - 43d0c0: 83 f9 13 cmp $0x13,%ecx - 43d0c3: 0f 84 61 03 00 00 je 43d42a <__memcmp_ssse3+0x16fa> - 43d0c9: 83 f9 14 cmp $0x14,%ecx - 43d0cc: 0f 84 52 01 00 00 je 43d224 <__memcmp_ssse3+0x14f4> - 43d0d2: 83 f9 15 cmp $0x15,%ecx - 43d0d5: 0f 84 e9 01 00 00 je 43d2c4 <__memcmp_ssse3+0x1594> - 43d0db: 83 f9 16 cmp $0x16,%ecx - 43d0de: 0f 84 90 02 00 00 je 43d374 <__memcmp_ssse3+0x1644> - 43d0e4: e9 37 03 00 00 jmpq 43d420 <__memcmp_ssse3+0x16f0> - 43d0e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43d0f0: 83 f9 20 cmp $0x20,%ecx - 43d0f3: 73 4b jae 43d140 <__memcmp_ssse3+0x1410> - 43d0f5: 83 f9 18 cmp $0x18,%ecx - 43d0f8: 0f 84 18 01 00 00 je 43d216 <__memcmp_ssse3+0x14e6> - 43d0fe: 83 f9 19 cmp $0x19,%ecx - 43d101: 0f 84 af 01 00 00 je 43d2b6 <__memcmp_ssse3+0x1586> - 43d107: 83 f9 1a cmp $0x1a,%ecx - 43d10a: 0f 84 56 02 00 00 je 43d366 <__memcmp_ssse3+0x1636> - 43d110: 83 f9 1b cmp $0x1b,%ecx - 43d113: 0f 84 fd 02 00 00 je 43d416 <__memcmp_ssse3+0x16e6> - 43d119: 83 f9 1c cmp $0x1c,%ecx - 43d11c: 0f 84 e6 00 00 00 je 43d208 <__memcmp_ssse3+0x14d8> - 43d122: 83 f9 1d cmp $0x1d,%ecx - 43d125: 0f 84 7d 01 00 00 je 43d2a8 <__memcmp_ssse3+0x1578> - 43d12b: 83 f9 1e cmp $0x1e,%ecx - 43d12e: 0f 84 24 02 00 00 je 43d358 <__memcmp_ssse3+0x1628> - 43d134: e9 d3 02 00 00 jmpq 43d40c <__memcmp_ssse3+0x16dc> - 43d139: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43d140: 83 f9 28 cmp $0x28,%ecx - 43d143: 73 4b jae 43d190 <__memcmp_ssse3+0x1460> - 43d145: 83 f9 20 cmp $0x20,%ecx - 43d148: 0f 84 ac 00 00 00 je 43d1fa <__memcmp_ssse3+0x14ca> - 43d14e: 83 f9 21 cmp $0x21,%ecx - 43d151: 0f 84 43 01 00 00 je 43d29a <__memcmp_ssse3+0x156a> - 43d157: 83 f9 22 cmp $0x22,%ecx - 43d15a: 0f 84 ea 01 00 00 je 43d34a <__memcmp_ssse3+0x161a> - 43d160: 83 f9 23 cmp $0x23,%ecx - 43d163: 0f 84 99 02 00 00 je 43d402 <__memcmp_ssse3+0x16d2> - 43d169: 83 f9 24 cmp $0x24,%ecx - 43d16c: 74 7e je 43d1ec <__memcmp_ssse3+0x14bc> - 43d16e: 83 f9 25 cmp $0x25,%ecx - 43d171: 0f 84 15 01 00 00 je 43d28c <__memcmp_ssse3+0x155c> - 43d177: 83 f9 26 cmp $0x26,%ecx - 43d17a: 0f 84 bc 01 00 00 je 43d33c <__memcmp_ssse3+0x160c> - 43d180: e9 73 02 00 00 jmpq 43d3f8 <__memcmp_ssse3+0x16c8> - 43d185: 90 nop - 43d186: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43d18d: 00 00 00 - 43d190: 83 f9 28 cmp $0x28,%ecx - 43d193: 74 49 je 43d1de <__memcmp_ssse3+0x14ae> - 43d195: 83 f9 29 cmp $0x29,%ecx - 43d198: 0f 84 e0 00 00 00 je 43d27e <__memcmp_ssse3+0x154e> - 43d19e: 83 f9 2a cmp $0x2a,%ecx - 43d1a1: 0f 84 87 01 00 00 je 43d32e <__memcmp_ssse3+0x15fe> - 43d1a7: 83 f9 2b cmp $0x2b,%ecx - 43d1aa: 0f 84 3e 02 00 00 je 43d3ee <__memcmp_ssse3+0x16be> - 43d1b0: 83 f9 2c cmp $0x2c,%ecx - 43d1b3: 74 1b je 43d1d0 <__memcmp_ssse3+0x14a0> - 43d1b5: 83 f9 2d cmp $0x2d,%ecx - 43d1b8: 0f 84 b2 00 00 00 je 43d270 <__memcmp_ssse3+0x1540> - 43d1be: 83 f9 2e cmp $0x2e,%ecx - 43d1c1: 0f 84 59 01 00 00 je 43d320 <__memcmp_ssse3+0x15f0> - 43d1c7: e9 14 02 00 00 jmpq 43d3e0 <__memcmp_ssse3+0x16b0> - 43d1cc: 0f 1f 40 00 nopl 0x0(%rax) - 43d1d0: 8b 47 d4 mov -0x2c(%rdi),%eax - 43d1d3: 8b 4e d4 mov -0x2c(%rsi),%ecx - 43d1d6: 39 c8 cmp %ecx,%eax - 43d1d8: 0f 85 92 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d1de: 8b 47 d8 mov -0x28(%rdi),%eax - 43d1e1: 8b 4e d8 mov -0x28(%rsi),%ecx - 43d1e4: 39 c8 cmp %ecx,%eax - 43d1e6: 0f 85 84 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d1ec: 8b 47 dc mov -0x24(%rdi),%eax - 43d1ef: 8b 4e dc mov -0x24(%rsi),%ecx - 43d1f2: 39 c8 cmp %ecx,%eax - 43d1f4: 0f 85 76 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d1fa: 8b 47 e0 mov -0x20(%rdi),%eax - 43d1fd: 8b 4e e0 mov -0x20(%rsi),%ecx - 43d200: 39 c8 cmp %ecx,%eax - 43d202: 0f 85 68 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d208: 8b 47 e4 mov -0x1c(%rdi),%eax - 43d20b: 8b 4e e4 mov -0x1c(%rsi),%ecx - 43d20e: 39 c8 cmp %ecx,%eax - 43d210: 0f 85 5a 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d216: 8b 47 e8 mov -0x18(%rdi),%eax - 43d219: 8b 4e e8 mov -0x18(%rsi),%ecx - 43d21c: 39 c8 cmp %ecx,%eax - 43d21e: 0f 85 4c 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d224: 8b 47 ec mov -0x14(%rdi),%eax - 43d227: 8b 4e ec mov -0x14(%rsi),%ecx - 43d22a: 39 c8 cmp %ecx,%eax - 43d22c: 0f 85 3e 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d232: 8b 47 f0 mov -0x10(%rdi),%eax - 43d235: 8b 4e f0 mov -0x10(%rsi),%ecx - 43d238: 39 c8 cmp %ecx,%eax - 43d23a: 0f 85 30 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d240: 8b 47 f4 mov -0xc(%rdi),%eax - 43d243: 8b 4e f4 mov -0xc(%rsi),%ecx - 43d246: 39 c8 cmp %ecx,%eax - 43d248: 0f 85 22 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d24e: 8b 47 f8 mov -0x8(%rdi),%eax - 43d251: 8b 4e f8 mov -0x8(%rsi),%ecx - 43d254: 39 c8 cmp %ecx,%eax - 43d256: 0f 85 14 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d25c: 8b 47 fc mov -0x4(%rdi),%eax - 43d25f: 8b 4e fc mov -0x4(%rsi),%ecx - 43d262: 39 c8 cmp %ecx,%eax - 43d264: 0f 85 06 02 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d26a: 31 c0 xor %eax,%eax - 43d26c: c3 retq - 43d26d: 0f 1f 00 nopl (%rax) - 43d270: 8b 47 d3 mov -0x2d(%rdi),%eax - 43d273: 8b 4e d3 mov -0x2d(%rsi),%ecx - 43d276: 39 c8 cmp %ecx,%eax - 43d278: 0f 85 f2 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d27e: 8b 47 d7 mov -0x29(%rdi),%eax - 43d281: 8b 4e d7 mov -0x29(%rsi),%ecx - 43d284: 39 c8 cmp %ecx,%eax - 43d286: 0f 85 e4 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d28c: 8b 47 db mov -0x25(%rdi),%eax - 43d28f: 8b 4e db mov -0x25(%rsi),%ecx - 43d292: 39 c8 cmp %ecx,%eax - 43d294: 0f 85 d6 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d29a: 8b 47 df mov -0x21(%rdi),%eax - 43d29d: 8b 4e df mov -0x21(%rsi),%ecx - 43d2a0: 39 c8 cmp %ecx,%eax - 43d2a2: 0f 85 c8 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d2a8: 8b 47 e3 mov -0x1d(%rdi),%eax - 43d2ab: 8b 4e e3 mov -0x1d(%rsi),%ecx - 43d2ae: 39 c8 cmp %ecx,%eax - 43d2b0: 0f 85 ba 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d2b6: 8b 47 e7 mov -0x19(%rdi),%eax - 43d2b9: 8b 4e e7 mov -0x19(%rsi),%ecx - 43d2bc: 39 c8 cmp %ecx,%eax - 43d2be: 0f 85 ac 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d2c4: 8b 47 eb mov -0x15(%rdi),%eax - 43d2c7: 8b 4e eb mov -0x15(%rsi),%ecx - 43d2ca: 39 c8 cmp %ecx,%eax - 43d2cc: 0f 85 9e 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d2d2: 8b 47 ef mov -0x11(%rdi),%eax - 43d2d5: 8b 4e ef mov -0x11(%rsi),%ecx - 43d2d8: 39 c8 cmp %ecx,%eax - 43d2da: 0f 85 90 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d2e0: 8b 47 f3 mov -0xd(%rdi),%eax - 43d2e3: 8b 4e f3 mov -0xd(%rsi),%ecx - 43d2e6: 39 c8 cmp %ecx,%eax - 43d2e8: 0f 85 82 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d2ee: 8b 47 f7 mov -0x9(%rdi),%eax - 43d2f1: 8b 4e f7 mov -0x9(%rsi),%ecx - 43d2f4: 39 c8 cmp %ecx,%eax - 43d2f6: 0f 85 74 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d2fc: 8b 47 fb mov -0x5(%rdi),%eax - 43d2ff: 8b 4e fb mov -0x5(%rsi),%ecx - 43d302: 39 c8 cmp %ecx,%eax - 43d304: 0f 85 66 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d30a: 0f b6 47 ff movzbl -0x1(%rdi),%eax - 43d30e: 3a 46 ff cmp -0x1(%rsi),%al - 43d311: 0f 85 6e 01 00 00 jne 43d485 <__memcmp_ssse3+0x1755> - 43d317: 31 c0 xor %eax,%eax - 43d319: c3 retq - 43d31a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43d320: 8b 47 d2 mov -0x2e(%rdi),%eax - 43d323: 8b 4e d2 mov -0x2e(%rsi),%ecx - 43d326: 39 c8 cmp %ecx,%eax - 43d328: 0f 85 42 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d32e: 8b 47 d6 mov -0x2a(%rdi),%eax - 43d331: 8b 4e d6 mov -0x2a(%rsi),%ecx - 43d334: 39 c8 cmp %ecx,%eax - 43d336: 0f 85 34 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d33c: 8b 47 da mov -0x26(%rdi),%eax - 43d33f: 8b 4e da mov -0x26(%rsi),%ecx - 43d342: 39 c8 cmp %ecx,%eax - 43d344: 0f 85 26 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d34a: 8b 47 de mov -0x22(%rdi),%eax - 43d34d: 8b 4e de mov -0x22(%rsi),%ecx - 43d350: 39 c8 cmp %ecx,%eax - 43d352: 0f 85 18 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d358: 8b 47 e2 mov -0x1e(%rdi),%eax - 43d35b: 8b 4e e2 mov -0x1e(%rsi),%ecx - 43d35e: 39 c8 cmp %ecx,%eax - 43d360: 0f 85 0a 01 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d366: 8b 47 e6 mov -0x1a(%rdi),%eax - 43d369: 8b 4e e6 mov -0x1a(%rsi),%ecx - 43d36c: 39 c8 cmp %ecx,%eax - 43d36e: 0f 85 fc 00 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d374: 8b 47 ea mov -0x16(%rdi),%eax - 43d377: 8b 4e ea mov -0x16(%rsi),%ecx - 43d37a: 39 c8 cmp %ecx,%eax - 43d37c: 0f 85 ee 00 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d382: 8b 47 ee mov -0x12(%rdi),%eax - 43d385: 8b 4e ee mov -0x12(%rsi),%ecx - 43d388: 39 c8 cmp %ecx,%eax - 43d38a: 0f 85 e0 00 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d390: 8b 47 f2 mov -0xe(%rdi),%eax - 43d393: 8b 4e f2 mov -0xe(%rsi),%ecx - 43d396: 39 c8 cmp %ecx,%eax - 43d398: 0f 85 d2 00 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d39e: 8b 47 f6 mov -0xa(%rdi),%eax - 43d3a1: 8b 4e f6 mov -0xa(%rsi),%ecx - 43d3a4: 39 c8 cmp %ecx,%eax - 43d3a6: 0f 85 c4 00 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d3ac: 8b 47 fa mov -0x6(%rdi),%eax - 43d3af: 8b 4e fa mov -0x6(%rsi),%ecx - 43d3b2: 39 c8 cmp %ecx,%eax - 43d3b4: 0f 85 b6 00 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d3ba: 0f b7 47 fe movzwl -0x2(%rdi),%eax - 43d3be: 0f b7 4e fe movzwl -0x2(%rsi),%ecx - 43d3c2: 38 c8 cmp %cl,%al - 43d3c4: 0f 85 bb 00 00 00 jne 43d485 <__memcmp_ssse3+0x1755> - 43d3ca: 39 c8 cmp %ecx,%eax - 43d3cc: 0f 85 b3 00 00 00 jne 43d485 <__memcmp_ssse3+0x1755> - 43d3d2: 31 c0 xor %eax,%eax - 43d3d4: c3 retq - 43d3d5: 90 nop - 43d3d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43d3dd: 00 00 00 - 43d3e0: 8b 47 d1 mov -0x2f(%rdi),%eax - 43d3e3: 8b 4e d1 mov -0x2f(%rsi),%ecx - 43d3e6: 39 c8 cmp %ecx,%eax - 43d3e8: 0f 85 82 00 00 00 jne 43d470 <__memcmp_ssse3+0x1740> - 43d3ee: 8b 47 d5 mov -0x2b(%rdi),%eax - 43d3f1: 8b 4e d5 mov -0x2b(%rsi),%ecx - 43d3f4: 39 c8 cmp %ecx,%eax - 43d3f6: 75 78 jne 43d470 <__memcmp_ssse3+0x1740> - 43d3f8: 8b 47 d9 mov -0x27(%rdi),%eax - 43d3fb: 8b 4e d9 mov -0x27(%rsi),%ecx - 43d3fe: 39 c8 cmp %ecx,%eax - 43d400: 75 6e jne 43d470 <__memcmp_ssse3+0x1740> - 43d402: 8b 47 dd mov -0x23(%rdi),%eax - 43d405: 8b 4e dd mov -0x23(%rsi),%ecx - 43d408: 39 c8 cmp %ecx,%eax - 43d40a: 75 64 jne 43d470 <__memcmp_ssse3+0x1740> - 43d40c: 8b 47 e1 mov -0x1f(%rdi),%eax - 43d40f: 8b 4e e1 mov -0x1f(%rsi),%ecx - 43d412: 39 c8 cmp %ecx,%eax - 43d414: 75 5a jne 43d470 <__memcmp_ssse3+0x1740> - 43d416: 8b 47 e5 mov -0x1b(%rdi),%eax - 43d419: 8b 4e e5 mov -0x1b(%rsi),%ecx - 43d41c: 39 c8 cmp %ecx,%eax - 43d41e: 75 50 jne 43d470 <__memcmp_ssse3+0x1740> - 43d420: 8b 47 e9 mov -0x17(%rdi),%eax - 43d423: 8b 4e e9 mov -0x17(%rsi),%ecx - 43d426: 39 c8 cmp %ecx,%eax - 43d428: 75 46 jne 43d470 <__memcmp_ssse3+0x1740> - 43d42a: 8b 47 ed mov -0x13(%rdi),%eax - 43d42d: 8b 4e ed mov -0x13(%rsi),%ecx - 43d430: 39 c8 cmp %ecx,%eax - 43d432: 75 3c jne 43d470 <__memcmp_ssse3+0x1740> - 43d434: 8b 47 f1 mov -0xf(%rdi),%eax - 43d437: 8b 4e f1 mov -0xf(%rsi),%ecx - 43d43a: 39 c8 cmp %ecx,%eax - 43d43c: 75 32 jne 43d470 <__memcmp_ssse3+0x1740> - 43d43e: 8b 47 f5 mov -0xb(%rdi),%eax - 43d441: 8b 4e f5 mov -0xb(%rsi),%ecx - 43d444: 39 c8 cmp %ecx,%eax - 43d446: 75 28 jne 43d470 <__memcmp_ssse3+0x1740> - 43d448: 8b 47 f9 mov -0x7(%rdi),%eax - 43d44b: 8b 4e f9 mov -0x7(%rsi),%ecx - 43d44e: 39 c8 cmp %ecx,%eax - 43d450: 75 1e jne 43d470 <__memcmp_ssse3+0x1740> - 43d452: 0f b7 47 fd movzwl -0x3(%rdi),%eax - 43d456: 0f b7 4e fd movzwl -0x3(%rsi),%ecx - 43d45a: 38 c8 cmp %cl,%al - 43d45c: 75 27 jne 43d485 <__memcmp_ssse3+0x1755> - 43d45e: 39 c8 cmp %ecx,%eax - 43d460: 75 23 jne 43d485 <__memcmp_ssse3+0x1755> - 43d462: 0f b6 47 ff movzbl -0x1(%rdi),%eax - 43d466: 3a 46 ff cmp -0x1(%rsi),%al - 43d469: 75 1a jne 43d485 <__memcmp_ssse3+0x1755> - 43d46b: 31 c0 xor %eax,%eax - 43d46d: c3 retq - 43d46e: 66 90 xchg %ax,%ax - 43d470: 38 c8 cmp %cl,%al - 43d472: 75 11 jne 43d485 <__memcmp_ssse3+0x1755> - 43d474: 66 39 c8 cmp %cx,%ax - 43d477: 75 0c jne 43d485 <__memcmp_ssse3+0x1755> - 43d479: c1 e8 10 shr $0x10,%eax - 43d47c: c1 e9 10 shr $0x10,%ecx - 43d47f: 38 c8 cmp %cl,%al - 43d481: 75 02 jne 43d485 <__memcmp_ssse3+0x1755> - 43d483: 39 c8 cmp %ecx,%eax - 43d485: 19 c0 sbb %eax,%eax - 43d487: 83 d8 ff sbb $0xffffffff,%eax - 43d48a: c3 retq - 43d48b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43d490: 31 c0 xor %eax,%eax - 43d492: c3 retq - 43d493: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43d49a: 00 00 00 - 43d49d: 0f 1f 00 nopl (%rax) - -000000000043d4a0 <__strstr_sse2_unaligned>: - 43d4a0: 0f b6 06 movzbl (%rsi),%eax - 43d4a3: 84 c0 test %al,%al - 43d4a5: 0f 84 9c 01 00 00 je 43d647 <__strstr_sse2_unaligned+0x1a7> - 43d4ab: 0f b6 56 01 movzbl 0x1(%rsi),%edx - 43d4af: 84 d2 test %dl,%dl - 43d4b1: 0f 84 b9 00 00 00 je 43d570 <__strstr_sse2_unaligned+0xd0> - 43d4b7: 66 0f 6e c8 movd %eax,%xmm1 - 43d4bb: 66 0f 6e d2 movd %edx,%xmm2 - 43d4bf: 48 89 f8 mov %rdi,%rax - 43d4c2: 25 ff 0f 00 00 and $0xfff,%eax - 43d4c7: 66 0f 60 c9 punpcklbw %xmm1,%xmm1 - 43d4cb: 48 3d bf 0f 00 00 cmp $0xfbf,%rax - 43d4d1: 66 0f 60 d2 punpcklbw %xmm2,%xmm2 - 43d4d5: 66 0f 61 c9 punpcklwd %xmm1,%xmm1 - 43d4d9: 66 0f 61 d2 punpcklwd %xmm2,%xmm2 - 43d4dd: 66 0f 70 c9 00 pshufd $0x0,%xmm1,%xmm1 - 43d4e2: 66 0f 70 d2 00 pshufd $0x0,%xmm2,%xmm2 - 43d4e7: 0f 87 03 03 00 00 ja 43d7f0 <__strstr_sse2_unaligned+0x350> - 43d4ed: f3 0f 6f 1f movdqu (%rdi),%xmm3 - 43d4f1: 66 0f ef ed pxor %xmm5,%xmm5 - 43d4f5: f3 0f 6f 67 01 movdqu 0x1(%rdi),%xmm4 - 43d4fa: 66 0f 6f f3 movdqa %xmm3,%xmm6 - 43d4fe: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 43d502: 66 0f 74 e2 pcmpeqb %xmm2,%xmm4 - 43d506: f3 0f 6f 47 10 movdqu 0x10(%rdi),%xmm0 - 43d50b: 66 0f 74 f5 pcmpeqb %xmm5,%xmm6 - 43d50f: 66 0f da dc pminub %xmm4,%xmm3 - 43d513: 66 0f 6f e3 movdqa %xmm3,%xmm4 - 43d517: f3 0f 6f 5f 11 movdqu 0x11(%rdi),%xmm3 - 43d51c: 66 0f 74 e8 pcmpeqb %xmm0,%xmm5 - 43d520: 66 0f 74 da pcmpeqb %xmm2,%xmm3 - 43d524: 66 0f eb e6 por %xmm6,%xmm4 - 43d528: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 43d52c: 66 0f da c3 pminub %xmm3,%xmm0 - 43d530: 66 0f eb c5 por %xmm5,%xmm0 - 43d534: 66 44 0f d7 c4 pmovmskb %xmm4,%r8d - 43d539: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43d53d: 48 c1 e0 10 shl $0x10,%rax - 43d541: 49 09 c0 or %rax,%r8 - 43d544: 74 6a je 43d5b0 <__strstr_sse2_unaligned+0x110> - 43d546: 49 0f bc c0 bsf %r8,%rax - 43d54a: 48 01 f8 add %rdi,%rax - 43d54d: 80 38 00 cmpb $0x0,(%rax) - 43d550: 74 42 je 43d594 <__strstr_sse2_unaligned+0xf4> - 43d552: 0f b6 56 02 movzbl 0x2(%rsi),%edx - 43d556: 84 d2 test %dl,%dl - 43d558: 74 39 je 43d593 <__strstr_sse2_unaligned+0xf3> - 43d55a: 3a 50 02 cmp 0x2(%rax),%dl - 43d55d: 75 41 jne 43d5a0 <__strstr_sse2_unaligned+0x100> - 43d55f: 31 d2 xor %edx,%edx - 43d561: eb 27 jmp 43d58a <__strstr_sse2_unaligned+0xea> - 43d563: 0f 1f 00 nopl (%rax) - 43d566: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43d56d: 00 00 00 - 43d570: 0f b6 f0 movzbl %al,%esi - 43d573: e9 38 3b fe ff jmpq 4210b0 <__GI_strchr> - 43d578: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43d57f: 00 - 43d580: 48 83 c2 01 add $0x1,%rdx - 43d584: 3a 4c 10 02 cmp 0x2(%rax,%rdx,1),%cl - 43d588: 75 16 jne 43d5a0 <__strstr_sse2_unaligned+0x100> - 43d58a: 0f b6 4c 16 03 movzbl 0x3(%rsi,%rdx,1),%ecx - 43d58f: 84 c9 test %cl,%cl - 43d591: 75 ed jne 43d580 <__strstr_sse2_unaligned+0xe0> - 43d593: c3 retq - 43d594: 31 c0 xor %eax,%eax - 43d596: c3 retq - 43d597: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43d59e: 00 00 - 43d5a0: 49 8d 40 ff lea -0x1(%r8),%rax - 43d5a4: 49 21 c0 and %rax,%r8 - 43d5a7: 75 9d jne 43d546 <__strstr_sse2_unaligned+0xa6> - 43d5a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43d5b0: f3 0f 6f 5f 20 movdqu 0x20(%rdi),%xmm3 - 43d5b5: 66 0f ef ed pxor %xmm5,%xmm5 - 43d5b9: f3 0f 6f 67 21 movdqu 0x21(%rdi),%xmm4 - 43d5be: 66 0f 6f f3 movdqa %xmm3,%xmm6 - 43d5c2: 66 0f 74 d9 pcmpeqb %xmm1,%xmm3 - 43d5c6: 66 0f 74 e2 pcmpeqb %xmm2,%xmm4 - 43d5ca: f3 0f 6f 47 30 movdqu 0x30(%rdi),%xmm0 - 43d5cf: 66 0f 74 f5 pcmpeqb %xmm5,%xmm6 - 43d5d3: 66 0f da dc pminub %xmm4,%xmm3 - 43d5d7: 66 0f 6f e3 movdqa %xmm3,%xmm4 - 43d5db: f3 0f 6f 5f 31 movdqu 0x31(%rdi),%xmm3 - 43d5e0: 66 0f 74 e8 pcmpeqb %xmm0,%xmm5 - 43d5e4: 66 0f 74 da pcmpeqb %xmm2,%xmm3 - 43d5e8: 66 0f eb e6 por %xmm6,%xmm4 - 43d5ec: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 43d5f0: 66 0f da c3 pminub %xmm3,%xmm0 - 43d5f4: 66 0f eb c5 por %xmm5,%xmm0 - 43d5f8: 66 0f d7 c4 pmovmskb %xmm4,%eax - 43d5fc: 48 c1 e0 20 shl $0x20,%rax - 43d600: 66 44 0f d7 c0 pmovmskb %xmm0,%r8d - 43d605: 49 c1 e0 30 shl $0x30,%r8 - 43d609: 49 09 c0 or %rax,%r8 - 43d60c: 74 4b je 43d659 <__strstr_sse2_unaligned+0x1b9> - 43d60e: 49 0f bc c0 bsf %r8,%rax - 43d612: 48 01 f8 add %rdi,%rax - 43d615: 80 38 00 cmpb $0x0,(%rax) - 43d618: 74 2a je 43d644 <__strstr_sse2_unaligned+0x1a4> - 43d61a: 0f b6 56 02 movzbl 0x2(%rsi),%edx - 43d61e: 84 d2 test %dl,%dl - 43d620: 74 21 je 43d643 <__strstr_sse2_unaligned+0x1a3> - 43d622: 3a 50 02 cmp 0x2(%rax),%dl - 43d625: 75 29 jne 43d650 <__strstr_sse2_unaligned+0x1b0> - 43d627: 31 d2 xor %edx,%edx - 43d629: eb 0f jmp 43d63a <__strstr_sse2_unaligned+0x19a> - 43d62b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43d630: 48 83 c2 01 add $0x1,%rdx - 43d634: 3a 4c 10 02 cmp 0x2(%rax,%rdx,1),%cl - 43d638: 75 16 jne 43d650 <__strstr_sse2_unaligned+0x1b0> - 43d63a: 0f b6 4c 16 03 movzbl 0x3(%rsi,%rdx,1),%ecx - 43d63f: 84 c9 test %cl,%cl - 43d641: 75 ed jne 43d630 <__strstr_sse2_unaligned+0x190> - 43d643: c3 retq - 43d644: 31 c0 xor %eax,%eax - 43d646: c3 retq - 43d647: 48 89 f8 mov %rdi,%rax - 43d64a: c3 retq - 43d64b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43d650: 49 8d 40 ff lea -0x1(%r8),%rax - 43d654: 49 21 c0 and %rax,%r8 - 43d657: 75 b5 jne 43d60e <__strstr_sse2_unaligned+0x16e> - 43d659: 49 c7 c3 00 fe ff ff mov $0xfffffffffffffe00,%r11 - 43d660: 49 89 f9 mov %rdi,%r9 - 43d663: 66 0f ef ff pxor %xmm7,%xmm7 - 43d667: 48 83 e7 c0 and $0xffffffffffffffc0,%rdi - 43d66b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43d670: 66 0f 6f 5f 40 movdqa 0x40(%rdi),%xmm3 - 43d675: f3 0f 6f 77 3f movdqu 0x3f(%rdi),%xmm6 - 43d67a: 66 0f 6f c3 movdqa %xmm3,%xmm0 - 43d67e: 66 0f ef da pxor %xmm2,%xmm3 - 43d682: 66 0f ef f1 pxor %xmm1,%xmm6 - 43d686: 66 44 0f 6f 57 50 movdqa 0x50(%rdi),%xmm10 - 43d68c: 66 0f eb f3 por %xmm3,%xmm6 - 43d690: 66 41 0f da c2 pminub %xmm10,%xmm0 - 43d695: f3 0f 6f 5f 4f movdqu 0x4f(%rdi),%xmm3 - 43d69a: 66 44 0f ef d2 pxor %xmm2,%xmm10 - 43d69f: 66 0f ef d9 pxor %xmm1,%xmm3 - 43d6a3: 66 44 0f 6f 4f 60 movdqa 0x60(%rdi),%xmm9 - 43d6a9: 66 41 0f eb da por %xmm10,%xmm3 - 43d6ae: 66 41 0f da c1 pminub %xmm9,%xmm0 - 43d6b3: 66 44 0f ef ca pxor %xmm2,%xmm9 - 43d6b8: 66 44 0f 6f 47 70 movdqa 0x70(%rdi),%xmm8 - 43d6be: 48 83 c7 40 add $0x40,%rdi - 43d6c2: 66 0f da de pminub %xmm6,%xmm3 - 43d6c6: f3 0f 6f 67 1f movdqu 0x1f(%rdi),%xmm4 - 43d6cb: 66 41 0f da c0 pminub %xmm8,%xmm0 - 43d6d0: 66 44 0f ef c2 pxor %xmm2,%xmm8 - 43d6d5: 66 0f ef e1 pxor %xmm1,%xmm4 - 43d6d9: 66 41 0f eb e1 por %xmm9,%xmm4 - 43d6de: 66 0f da dc pminub %xmm4,%xmm3 - 43d6e2: f3 0f 6f 6f 2f movdqu 0x2f(%rdi),%xmm5 - 43d6e7: 66 0f ef e9 pxor %xmm1,%xmm5 - 43d6eb: 66 41 0f eb e8 por %xmm8,%xmm5 - 43d6f0: 66 0f da dd pminub %xmm5,%xmm3 - 43d6f4: 66 0f da c3 pminub %xmm3,%xmm0 - 43d6f8: 66 0f 74 c7 pcmpeqb %xmm7,%xmm0 - 43d6fc: 66 0f d7 c0 pmovmskb %xmm0,%eax - 43d700: 85 c0 test %eax,%eax - 43d702: 0f 84 68 ff ff ff je 43d670 <__strstr_sse2_unaligned+0x1d0> - 43d708: 66 0f da 37 pminub (%rdi),%xmm6 - 43d70c: 66 0f da 67 20 pminub 0x20(%rdi),%xmm4 - 43d711: 66 0f da 6f 30 pminub 0x30(%rdi),%xmm5 - 43d716: 66 0f 74 f7 pcmpeqb %xmm7,%xmm6 - 43d71a: 66 0f 74 ef pcmpeqb %xmm7,%xmm5 - 43d71e: 66 0f d7 d6 pmovmskb %xmm6,%edx - 43d722: 66 44 0f 6f 47 10 movdqa 0x10(%rdi),%xmm8 - 43d728: 66 0f 74 e7 pcmpeqb %xmm7,%xmm4 - 43d72c: f3 0f 6f 47 0f movdqu 0xf(%rdi),%xmm0 - 43d731: 66 44 0f d7 c5 pmovmskb %xmm5,%r8d - 43d736: 66 41 0f 6f d8 movdqa %xmm8,%xmm3 - 43d73b: 66 0f d7 cc pmovmskb %xmm4,%ecx - 43d73f: 66 0f 74 c1 pcmpeqb %xmm1,%xmm0 - 43d743: 66 0f 74 da pcmpeqb %xmm2,%xmm3 - 43d747: 48 c1 e1 20 shl $0x20,%rcx - 43d74b: 66 44 0f 74 c7 pcmpeqb %xmm7,%xmm8 - 43d750: 49 c1 e0 30 shl $0x30,%r8 - 43d754: 66 0f da d8 pminub %xmm0,%xmm3 - 43d758: 48 09 ca or %rcx,%rdx - 43d75b: 66 44 0f eb c3 por %xmm3,%xmm8 - 43d760: 49 09 d0 or %rdx,%r8 - 43d763: 66 41 0f d7 c0 pmovmskb %xmm8,%eax - 43d768: 48 c1 e0 10 shl $0x10,%rax - 43d76c: 49 09 c0 or %rax,%r8 - 43d76f: 0f 84 fb fe ff ff je 43d670 <__strstr_sse2_unaligned+0x1d0> - 43d775: 49 0f bc c8 bsf %r8,%rcx - 43d779: 48 01 f9 add %rdi,%rcx - 43d77c: 80 39 00 cmpb $0x0,(%rcx) - 43d77f: 0f 84 ab 01 00 00 je 43d930 <__strstr_sse2_unaligned+0x490> - 43d785: 31 c0 xor %eax,%eax - 43d787: 0f b6 56 02 movzbl 0x2(%rsi),%edx - 43d78b: 84 d2 test %dl,%dl - 43d78d: 74 24 je 43d7b3 <__strstr_sse2_unaligned+0x313> - 43d78f: 3a 51 01 cmp 0x1(%rcx),%dl - 43d792: 75 2c jne 43d7c0 <__strstr_sse2_unaligned+0x320> - 43d794: eb 14 jmp 43d7aa <__strstr_sse2_unaligned+0x30a> - 43d796: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43d79d: 00 00 00 - 43d7a0: 48 83 c0 01 add $0x1,%rax - 43d7a4: 3a 54 01 01 cmp 0x1(%rcx,%rax,1),%dl - 43d7a8: 75 16 jne 43d7c0 <__strstr_sse2_unaligned+0x320> - 43d7aa: 0f b6 54 06 03 movzbl 0x3(%rsi,%rax,1),%edx - 43d7af: 84 d2 test %dl,%dl - 43d7b1: 75 ed jne 43d7a0 <__strstr_sse2_unaligned+0x300> - 43d7b3: 48 8d 41 ff lea -0x1(%rcx),%rax - 43d7b7: c3 retq - 43d7b8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43d7bf: 00 - 43d7c0: 49 01 c3 add %rax,%r11 - 43d7c3: 48 89 f8 mov %rdi,%rax - 43d7c6: 4c 29 c8 sub %r9,%rax - 43d7c9: 4c 39 d8 cmp %r11,%rax - 43d7cc: 7c 12 jl 43d7e0 <__strstr_sse2_unaligned+0x340> - 43d7ce: 49 8d 40 ff lea -0x1(%r8),%rax - 43d7d2: 49 21 c0 and %rax,%r8 - 43d7d5: 75 9e jne 43d775 <__strstr_sse2_unaligned+0x2d5> - 43d7d7: e9 94 fe ff ff jmpq 43d670 <__strstr_sse2_unaligned+0x1d0> - 43d7dc: 0f 1f 40 00 nopl 0x0(%rax) - 43d7e0: 48 89 ff mov %rdi,%rdi - 43d7e3: e9 68 7d fe ff jmpq 425550 <__strstr_sse2> - 43d7e8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43d7ef: 00 - 43d7f0: 48 89 f8 mov %rdi,%rax - 43d7f3: 66 0f ef c0 pxor %xmm0,%xmm0 - 43d7f7: 48 83 e0 c0 and $0xffffffffffffffc0,%rax - 43d7fb: 66 0f 6f 18 movdqa (%rax),%xmm3 - 43d7ff: f3 0f 6f 60 ff movdqu -0x1(%rax),%xmm4 - 43d804: 66 44 0f 6f c3 movdqa %xmm3,%xmm8 - 43d809: 66 0f 6f 68 10 movdqa 0x10(%rax),%xmm5 - 43d80e: 66 0f 74 e1 pcmpeqb %xmm1,%xmm4 - 43d812: 66 44 0f 74 c0 pcmpeqb %xmm0,%xmm8 - 43d817: 66 0f 74 da pcmpeqb %xmm2,%xmm3 - 43d81b: 66 0f 6f fd movdqa %xmm5,%xmm7 - 43d81f: 66 0f da dc pminub %xmm4,%xmm3 - 43d823: f3 0f 6f 60 0f movdqu 0xf(%rax),%xmm4 - 43d828: 66 0f 74 f8 pcmpeqb %xmm0,%xmm7 - 43d82c: 66 44 0f eb c3 por %xmm3,%xmm8 - 43d831: 66 0f 6f dd movdqa %xmm5,%xmm3 - 43d835: 66 0f 6f 68 20 movdqa 0x20(%rax),%xmm5 - 43d83a: 66 0f 74 e1 pcmpeqb %xmm1,%xmm4 - 43d83e: 66 0f 74 da pcmpeqb %xmm2,%xmm3 - 43d842: 66 0f 6f f5 movdqa %xmm5,%xmm6 - 43d846: 66 41 0f d7 c8 pmovmskb %xmm8,%ecx - 43d84b: 66 0f da dc pminub %xmm4,%xmm3 - 43d84f: f3 0f 6f 60 1f movdqu 0x1f(%rax),%xmm4 - 43d854: 66 0f eb fb por %xmm3,%xmm7 - 43d858: 66 0f 6f dd movdqa %xmm5,%xmm3 - 43d85c: 66 0f 74 f0 pcmpeqb %xmm0,%xmm6 - 43d860: 66 0f 6f 68 30 movdqa 0x30(%rax),%xmm5 - 43d865: 66 0f 74 e1 pcmpeqb %xmm1,%xmm4 - 43d869: 66 44 0f d7 c7 pmovmskb %xmm7,%r8d - 43d86e: 66 0f 74 da pcmpeqb %xmm2,%xmm3 - 43d872: 66 0f 74 c5 pcmpeqb %xmm5,%xmm0 - 43d876: 66 0f da dc pminub %xmm4,%xmm3 - 43d87a: f3 0f 6f 60 2f movdqu 0x2f(%rax),%xmm4 - 43d87f: 66 0f eb f3 por %xmm3,%xmm6 - 43d883: 66 0f 6f dd movdqa %xmm5,%xmm3 - 43d887: 49 c1 e0 10 shl $0x10,%r8 - 43d88b: 66 0f 74 e1 pcmpeqb %xmm1,%xmm4 - 43d88f: 66 0f 74 da pcmpeqb %xmm2,%xmm3 - 43d893: 66 44 0f d7 d6 pmovmskb %xmm6,%r10d - 43d898: 66 0f da dc pminub %xmm4,%xmm3 - 43d89c: 66 0f eb c3 por %xmm3,%xmm0 - 43d8a0: 49 c1 e2 20 shl $0x20,%r10 - 43d8a4: 4d 09 d0 or %r10,%r8 - 43d8a7: 49 09 c8 or %rcx,%r8 - 43d8aa: 89 f9 mov %edi,%ecx - 43d8ac: 66 0f d7 d0 pmovmskb %xmm0,%edx - 43d8b0: 29 c1 sub %eax,%ecx - 43d8b2: 48 c1 e2 30 shl $0x30,%rdx - 43d8b6: 49 09 d0 or %rdx,%r8 - 43d8b9: 49 d3 e8 shr %cl,%r8 - 43d8bc: 0f 84 97 fd ff ff je 43d659 <__strstr_sse2_unaligned+0x1b9> - 43d8c2: 49 0f bc c0 bsf %r8,%rax - 43d8c6: 48 01 f8 add %rdi,%rax - 43d8c9: 80 38 00 cmpb $0x0,(%rax) - 43d8cc: 74 62 je 43d930 <__strstr_sse2_unaligned+0x490> - 43d8ce: 48 39 c7 cmp %rax,%rdi - 43d8d1: 74 3d je 43d910 <__strstr_sse2_unaligned+0x470> - 43d8d3: 0f b6 56 02 movzbl 0x2(%rsi),%edx - 43d8d7: 84 d2 test %dl,%dl - 43d8d9: 74 28 je 43d903 <__strstr_sse2_unaligned+0x463> - 43d8db: 3a 50 01 cmp 0x1(%rax),%dl - 43d8de: 75 30 jne 43d910 <__strstr_sse2_unaligned+0x470> - 43d8e0: 31 d2 xor %edx,%edx - 43d8e2: eb 16 jmp 43d8fa <__strstr_sse2_unaligned+0x45a> - 43d8e4: 66 90 xchg %ax,%ax - 43d8e6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43d8ed: 00 00 00 - 43d8f0: 48 83 c2 01 add $0x1,%rdx - 43d8f4: 3a 4c 10 01 cmp 0x1(%rax,%rdx,1),%cl - 43d8f8: 75 16 jne 43d910 <__strstr_sse2_unaligned+0x470> - 43d8fa: 0f b6 4c 16 03 movzbl 0x3(%rsi,%rdx,1),%ecx - 43d8ff: 84 c9 test %cl,%cl - 43d901: 75 ed jne 43d8f0 <__strstr_sse2_unaligned+0x450> - 43d903: 48 83 e8 01 sub $0x1,%rax - 43d907: c3 retq - 43d908: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43d90f: 00 - 43d910: 49 8d 40 ff lea -0x1(%r8),%rax - 43d914: 49 21 c0 and %rax,%r8 - 43d917: 75 a9 jne 43d8c2 <__strstr_sse2_unaligned+0x422> - 43d919: e9 3b fd ff ff jmpq 43d659 <__strstr_sse2_unaligned+0x1b9> - 43d91e: 66 90 xchg %ax,%ax - 43d920: f3 c3 repz retq - 43d922: 0f 1f 40 00 nopl 0x0(%rax) - 43d926: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43d92d: 00 00 00 - 43d930: 31 c0 xor %eax,%eax - 43d932: c3 retq - 43d933: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43d93a: 00 00 00 - 43d93d: 0f 1f 00 nopl (%rax) - -000000000043d940 <__memset_avx2>: - 43d940: c5 f9 ef c0 vpxor %xmm0,%xmm0,%xmm0 - 43d944: c5 f9 6e ce vmovd %esi,%xmm1 - 43d948: 48 8d 34 17 lea (%rdi,%rdx,1),%rsi - 43d94c: 48 89 f8 mov %rdi,%rax - 43d94f: c4 e2 71 00 c0 vpshufb %xmm0,%xmm1,%xmm0 - 43d954: 48 83 fa 10 cmp $0x10,%rdx - 43d958: 0f 82 c2 00 00 00 jb 43da20 <__memset_avx2+0xe0> - 43d95e: 48 81 fa 00 01 00 00 cmp $0x100,%rdx - 43d965: 0f 83 f5 00 00 00 jae 43da60 <__memset_avx2+0x120> - 43d96b: 80 fa 80 cmp $0x80,%dl - 43d96e: 72 50 jb 43d9c0 <__memset_avx2+0x80> - 43d970: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) - 43d974: c5 fa 7f 47 10 vmovdqu %xmm0,0x10(%rdi) - 43d979: c5 fa 7f 47 20 vmovdqu %xmm0,0x20(%rdi) - 43d97e: c5 fa 7f 47 30 vmovdqu %xmm0,0x30(%rdi) - 43d983: c5 fa 7f 47 40 vmovdqu %xmm0,0x40(%rdi) - 43d988: c5 fa 7f 47 50 vmovdqu %xmm0,0x50(%rdi) - 43d98d: c5 fa 7f 47 60 vmovdqu %xmm0,0x60(%rdi) - 43d992: c5 fa 7f 47 70 vmovdqu %xmm0,0x70(%rdi) - 43d997: c5 fa 7f 46 80 vmovdqu %xmm0,-0x80(%rsi) - 43d99c: c5 fa 7f 46 90 vmovdqu %xmm0,-0x70(%rsi) - 43d9a1: c5 fa 7f 46 a0 vmovdqu %xmm0,-0x60(%rsi) - 43d9a6: c5 fa 7f 46 b0 vmovdqu %xmm0,-0x50(%rsi) - 43d9ab: c5 fa 7f 46 c0 vmovdqu %xmm0,-0x40(%rsi) - 43d9b0: c5 fa 7f 46 d0 vmovdqu %xmm0,-0x30(%rsi) - 43d9b5: c5 fa 7f 46 e0 vmovdqu %xmm0,-0x20(%rsi) - 43d9ba: c5 fa 7f 46 f0 vmovdqu %xmm0,-0x10(%rsi) - 43d9bf: c3 retq - 43d9c0: 80 fa 40 cmp $0x40,%dl - 43d9c3: 72 2b jb 43d9f0 <__memset_avx2+0xb0> - 43d9c5: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) - 43d9c9: c5 fa 7f 47 10 vmovdqu %xmm0,0x10(%rdi) - 43d9ce: c5 fa 7f 47 20 vmovdqu %xmm0,0x20(%rdi) - 43d9d3: c5 fa 7f 47 30 vmovdqu %xmm0,0x30(%rdi) - 43d9d8: c5 fa 7f 46 c0 vmovdqu %xmm0,-0x40(%rsi) - 43d9dd: c5 fa 7f 46 d0 vmovdqu %xmm0,-0x30(%rsi) - 43d9e2: c5 fa 7f 46 e0 vmovdqu %xmm0,-0x20(%rsi) - 43d9e7: c5 fa 7f 46 f0 vmovdqu %xmm0,-0x10(%rsi) - 43d9ec: c3 retq - 43d9ed: 0f 1f 00 nopl (%rax) - 43d9f0: 80 fa 20 cmp $0x20,%dl - 43d9f3: 72 1b jb 43da10 <__memset_avx2+0xd0> - 43d9f5: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) - 43d9f9: c5 fa 7f 47 10 vmovdqu %xmm0,0x10(%rdi) - 43d9fe: c5 fa 7f 46 e0 vmovdqu %xmm0,-0x20(%rsi) - 43da03: c5 fa 7f 46 f0 vmovdqu %xmm0,-0x10(%rsi) - 43da08: c3 retq - 43da09: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43da10: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) - 43da14: c5 fa 7f 46 f0 vmovdqu %xmm0,-0x10(%rsi) - 43da19: c3 retq - 43da1a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43da20: 80 fa 08 cmp $0x8,%dl - 43da23: 72 0b jb 43da30 <__memset_avx2+0xf0> - 43da25: c5 f9 d6 07 vmovq %xmm0,(%rdi) - 43da29: c5 f9 d6 46 f8 vmovq %xmm0,-0x8(%rsi) - 43da2e: c3 retq - 43da2f: 90 nop - 43da30: c5 f9 7e c1 vmovd %xmm0,%ecx - 43da34: 80 fa 04 cmp $0x4,%dl - 43da37: 72 07 jb 43da40 <__memset_avx2+0x100> - 43da39: 89 0f mov %ecx,(%rdi) - 43da3b: 89 4e fc mov %ecx,-0x4(%rsi) - 43da3e: c3 retq - 43da3f: 90 nop - 43da40: 80 fa 02 cmp $0x2,%dl - 43da43: 72 0b jb 43da50 <__memset_avx2+0x110> - 43da45: 66 89 0f mov %cx,(%rdi) - 43da48: 66 89 4e fe mov %cx,-0x2(%rsi) - 43da4c: c3 retq - 43da4d: 0f 1f 00 nopl (%rax) - 43da50: 80 fa 01 cmp $0x1,%dl - 43da53: 72 02 jb 43da57 <__memset_avx2+0x117> - 43da55: 88 0f mov %cl,(%rdi) - 43da57: c3 retq - 43da58: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43da5f: 00 - 43da60: c4 e3 7d 38 c0 01 vinserti128 $0x1,%xmm0,%ymm0,%ymm0 - 43da66: 48 83 e7 e0 and $0xffffffffffffffe0,%rdi - 43da6a: 48 83 c7 20 add $0x20,%rdi - 43da6e: c5 fe 7f 00 vmovdqu %ymm0,(%rax) - 43da72: 48 29 f8 sub %rdi,%rax - 43da75: 48 8d 4c 10 80 lea -0x80(%rax,%rdx,1),%rcx - 43da7a: 48 81 f9 00 10 00 00 cmp $0x1000,%rcx - 43da81: 77 3d ja 43dac0 <__memset_avx2+0x180> - 43da83: c5 fd 7f 07 vmovdqa %ymm0,(%rdi) - 43da87: c5 fd 7f 47 20 vmovdqa %ymm0,0x20(%rdi) - 43da8c: c5 fd 7f 47 40 vmovdqa %ymm0,0x40(%rdi) - 43da91: c5 fd 7f 47 60 vmovdqa %ymm0,0x60(%rdi) - 43da96: 48 83 ef 80 sub $0xffffffffffffff80,%rdi - 43da9a: 83 c1 80 add $0xffffff80,%ecx - 43da9d: 72 e4 jb 43da83 <__memset_avx2+0x143> - 43da9f: 48 89 f0 mov %rsi,%rax - 43daa2: c5 fe 7f 46 80 vmovdqu %ymm0,-0x80(%rsi) - 43daa7: c5 fe 7f 46 a0 vmovdqu %ymm0,-0x60(%rsi) - 43daac: c5 fe 7f 46 c0 vmovdqu %ymm0,-0x40(%rsi) - 43dab1: c5 fe 7f 46 e0 vmovdqu %ymm0,-0x20(%rsi) - 43dab6: 48 29 d0 sub %rdx,%rax - 43dab9: c5 f8 77 vzeroupper - 43dabc: c3 retq - 43dabd: 0f 1f 00 nopl (%rax) - 43dac0: 48 83 e9 80 sub $0xffffffffffffff80,%rcx - 43dac4: c5 f9 7e c0 vmovd %xmm0,%eax - 43dac8: f3 aa rep stos %al,%es:(%rdi) - 43daca: 48 89 f0 mov %rsi,%rax - 43dacd: 48 29 d0 sub %rdx,%rax - 43dad0: c5 f8 77 vzeroupper - 43dad3: c3 retq - 43dad4: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43dadb: 00 00 00 - 43dade: 66 90 xchg %ax,%ax - -000000000043dae0 <__memset_avx512_no_vzeroupper>: - 43dae0: c5 f9 ef c0 vpxor %xmm0,%xmm0,%xmm0 - 43dae4: c5 f9 6e ce vmovd %esi,%xmm1 - 43dae8: 48 8d 34 17 lea (%rdi,%rdx,1),%rsi - 43daec: 48 89 f8 mov %rdi,%rax - 43daef: c4 e2 71 00 c0 vpshufb %xmm0,%xmm1,%xmm0 - 43daf4: 48 83 fa 10 cmp $0x10,%rdx - 43daf8: 0f 82 a1 00 00 00 jb 43db9f <__memset_avx512_no_vzeroupper+0xbf> - 43dafe: 48 81 fa 00 02 00 00 cmp $0x200,%rdx - 43db05: 62 f2 7d 48 18 d0 vbroadcastss %xmm0,%zmm2 - 43db0b: 0f 87 c1 00 00 00 ja 43dbd2 <__memset_avx512_no_vzeroupper+0xf2> - 43db11: 48 81 fa 00 01 00 00 cmp $0x100,%rdx - 43db18: 72 38 jb 43db52 <__memset_avx512_no_vzeroupper+0x72> - 43db1a: 62 f1 7c 48 11 17 vmovups %zmm2,(%rdi) - 43db20: 62 f1 7c 48 11 57 01 vmovups %zmm2,0x40(%rdi) - 43db27: 62 f1 7c 48 11 57 02 vmovups %zmm2,0x80(%rdi) - 43db2e: 62 f1 7c 48 11 57 03 vmovups %zmm2,0xc0(%rdi) - 43db35: 62 f1 7c 48 11 56 fc vmovups %zmm2,-0x100(%rsi) - 43db3c: 62 f1 7c 48 11 56 fd vmovups %zmm2,-0xc0(%rsi) - 43db43: 62 f1 7c 48 11 56 fe vmovups %zmm2,-0x80(%rsi) - 43db4a: 62 f1 7c 48 11 56 ff vmovups %zmm2,-0x40(%rsi) - 43db51: c3 retq - 43db52: 80 fa 80 cmp $0x80,%dl - 43db55: 72 1c jb 43db73 <__memset_avx512_no_vzeroupper+0x93> - 43db57: 62 f1 7c 48 11 17 vmovups %zmm2,(%rdi) - 43db5d: 62 f1 7c 48 11 57 01 vmovups %zmm2,0x40(%rdi) - 43db64: 62 f1 7c 48 11 56 fe vmovups %zmm2,-0x80(%rsi) - 43db6b: 62 f1 7c 48 11 56 ff vmovups %zmm2,-0x40(%rsi) - 43db72: c3 retq - 43db73: 80 fa 40 cmp $0x40,%dl - 43db76: 72 0e jb 43db86 <__memset_avx512_no_vzeroupper+0xa6> - 43db78: 62 f1 7c 48 11 17 vmovups %zmm2,(%rdi) - 43db7e: 62 f1 7c 48 11 56 ff vmovups %zmm2,-0x40(%rsi) - 43db85: c3 retq - 43db86: 80 fa 20 cmp $0x20,%dl - 43db89: 72 0a jb 43db95 <__memset_avx512_no_vzeroupper+0xb5> - 43db8b: c5 fe 7f 17 vmovdqu %ymm2,(%rdi) - 43db8f: c5 fe 7f 56 e0 vmovdqu %ymm2,-0x20(%rsi) - 43db94: c3 retq - 43db95: c5 fa 7f 07 vmovdqu %xmm0,(%rdi) - 43db99: c5 fa 7f 46 f0 vmovdqu %xmm0,-0x10(%rsi) - 43db9e: c3 retq - 43db9f: 80 fa 08 cmp $0x8,%dl - 43dba2: 72 0a jb 43dbae <__memset_avx512_no_vzeroupper+0xce> - 43dba4: c5 f9 d6 07 vmovq %xmm0,(%rdi) - 43dba8: c5 f9 d6 46 f8 vmovq %xmm0,-0x8(%rsi) - 43dbad: c3 retq - 43dbae: c5 f9 7e c1 vmovd %xmm0,%ecx - 43dbb2: 80 fa 04 cmp $0x4,%dl - 43dbb5: 72 06 jb 43dbbd <__memset_avx512_no_vzeroupper+0xdd> - 43dbb7: 89 0f mov %ecx,(%rdi) - 43dbb9: 89 4e fc mov %ecx,-0x4(%rsi) - 43dbbc: c3 retq - 43dbbd: 80 fa 02 cmp $0x2,%dl - 43dbc0: 72 08 jb 43dbca <__memset_avx512_no_vzeroupper+0xea> - 43dbc2: 66 89 0f mov %cx,(%rdi) - 43dbc5: 66 89 4e fe mov %cx,-0x2(%rsi) - 43dbc9: c3 retq - 43dbca: 80 fa 01 cmp $0x1,%dl - 43dbcd: 72 02 jb 43dbd1 <__memset_avx512_no_vzeroupper+0xf1> - 43dbcf: 88 0f mov %cl,(%rdi) - 43dbd1: c3 retq - 43dbd2: 48 8b 0d d7 d4 28 00 mov 0x28d4d7(%rip),%rcx # 6cb0b0 <__x86_shared_cache_size_half> - 43dbd9: 48 39 ca cmp %rcx,%rdx - 43dbdc: 0f 87 d1 00 00 00 ja 43dcb3 <__memset_avx512_no_vzeroupper+0x1d3> - 43dbe2: 48 81 fa 00 04 00 00 cmp $0x400,%rdx - 43dbe9: 77 70 ja 43dc5b <__memset_avx512_no_vzeroupper+0x17b> - 43dbeb: 62 f1 7c 48 11 17 vmovups %zmm2,(%rdi) - 43dbf1: 62 f1 7c 48 11 57 01 vmovups %zmm2,0x40(%rdi) - 43dbf8: 62 f1 7c 48 11 57 02 vmovups %zmm2,0x80(%rdi) - 43dbff: 62 f1 7c 48 11 57 03 vmovups %zmm2,0xc0(%rdi) - 43dc06: 62 f1 7c 48 11 57 04 vmovups %zmm2,0x100(%rdi) - 43dc0d: 62 f1 7c 48 11 57 05 vmovups %zmm2,0x140(%rdi) - 43dc14: 62 f1 7c 48 11 57 06 vmovups %zmm2,0x180(%rdi) - 43dc1b: 62 f1 7c 48 11 57 07 vmovups %zmm2,0x1c0(%rdi) - 43dc22: 62 f1 7c 48 11 56 f8 vmovups %zmm2,-0x200(%rsi) - 43dc29: 62 f1 7c 48 11 56 f9 vmovups %zmm2,-0x1c0(%rsi) - 43dc30: 62 f1 7c 48 11 56 fa vmovups %zmm2,-0x180(%rsi) - 43dc37: 62 f1 7c 48 11 56 fb vmovups %zmm2,-0x140(%rsi) - 43dc3e: 62 f1 7c 48 11 56 fc vmovups %zmm2,-0x100(%rsi) - 43dc45: 62 f1 7c 48 11 56 fd vmovups %zmm2,-0xc0(%rsi) - 43dc4c: 62 f1 7c 48 11 56 fe vmovups %zmm2,-0x80(%rsi) - 43dc53: 62 f1 7c 48 11 56 ff vmovups %zmm2,-0x40(%rsi) - 43dc5a: c3 retq - 43dc5b: 48 81 ee 00 01 00 00 sub $0x100,%rsi - 43dc62: 62 f1 7c 48 11 10 vmovups %zmm2,(%rax) - 43dc68: 48 83 e7 c0 and $0xffffffffffffffc0,%rdi - 43dc6c: 48 83 c7 40 add $0x40,%rdi - 43dc70: 62 f1 7c 48 29 17 vmovaps %zmm2,(%rdi) - 43dc76: 62 f1 7c 48 29 57 01 vmovaps %zmm2,0x40(%rdi) - 43dc7d: 62 f1 7c 48 29 57 02 vmovaps %zmm2,0x80(%rdi) - 43dc84: 62 f1 7c 48 29 57 03 vmovaps %zmm2,0xc0(%rdi) - 43dc8b: 48 81 c7 00 01 00 00 add $0x100,%rdi - 43dc92: 48 39 f7 cmp %rsi,%rdi - 43dc95: 72 d9 jb 43dc70 <__memset_avx512_no_vzeroupper+0x190> - 43dc97: 62 f1 7c 48 11 16 vmovups %zmm2,(%rsi) - 43dc9d: 62 f1 7c 48 11 56 01 vmovups %zmm2,0x40(%rsi) - 43dca4: 62 f1 7c 48 11 56 02 vmovups %zmm2,0x80(%rsi) - 43dcab: 62 f1 7c 48 11 56 03 vmovups %zmm2,0xc0(%rsi) - 43dcb2: c3 retq - 43dcb3: 48 83 e7 80 and $0xffffffffffffff80,%rdi - 43dcb7: 48 81 c7 80 00 00 00 add $0x80,%rdi - 43dcbe: 62 f1 7c 48 11 10 vmovups %zmm2,(%rax) - 43dcc4: 62 f1 7c 48 11 50 01 vmovups %zmm2,0x40(%rax) - 43dccb: 48 81 ee 00 02 00 00 sub $0x200,%rsi - 43dcd2: 62 f1 7d 48 e7 17 vmovntdq %zmm2,(%rdi) - 43dcd8: 62 f1 7d 48 e7 57 01 vmovntdq %zmm2,0x40(%rdi) - 43dcdf: 62 f1 7d 48 e7 57 02 vmovntdq %zmm2,0x80(%rdi) - 43dce6: 62 f1 7d 48 e7 57 03 vmovntdq %zmm2,0xc0(%rdi) - 43dced: 62 f1 7d 48 e7 57 04 vmovntdq %zmm2,0x100(%rdi) - 43dcf4: 62 f1 7d 48 e7 57 05 vmovntdq %zmm2,0x140(%rdi) - 43dcfb: 62 f1 7d 48 e7 57 06 vmovntdq %zmm2,0x180(%rdi) - 43dd02: 62 f1 7d 48 e7 57 07 vmovntdq %zmm2,0x1c0(%rdi) - 43dd09: 48 81 c7 00 02 00 00 add $0x200,%rdi - 43dd10: 48 39 f7 cmp %rsi,%rdi - 43dd13: 72 bd jb 43dcd2 <__memset_avx512_no_vzeroupper+0x1f2> - 43dd15: 0f ae f8 sfence - 43dd18: 62 f1 7c 48 11 16 vmovups %zmm2,(%rsi) - 43dd1e: 62 f1 7c 48 11 56 01 vmovups %zmm2,0x40(%rsi) - 43dd25: 62 f1 7c 48 11 56 02 vmovups %zmm2,0x80(%rsi) - 43dd2c: 62 f1 7c 48 11 56 03 vmovups %zmm2,0xc0(%rsi) - 43dd33: 62 f1 7c 48 11 56 04 vmovups %zmm2,0x100(%rsi) - 43dd3a: 62 f1 7c 48 11 56 05 vmovups %zmm2,0x140(%rsi) - 43dd41: 62 f1 7c 48 11 56 06 vmovups %zmm2,0x180(%rsi) - 43dd48: 62 f1 7c 48 11 56 07 vmovups %zmm2,0x1c0(%rsi) - 43dd4f: c3 retq - -000000000043dd50 : - 43dd50: 85 f6 test %esi,%esi - 43dd52: 0f 88 16 02 00 00 js 43df6e - 43dd58: 44 8d 87 47 ff ff ff lea -0xb9(%rdi),%r8d - 43dd5f: 41 55 push %r13 - 43dd61: 41 54 push %r12 - 43dd63: 55 push %rbp - 43dd64: 53 push %rbx - 43dd65: 48 89 d3 mov %rdx,%rbx - 43dd68: 44 89 c0 mov %r8d,%eax - 43dd6b: ba 56 55 55 55 mov $0x55555556,%edx - 43dd70: 41 c1 f8 1f sar $0x1f,%r8d - 43dd74: f7 ea imul %edx - 43dd76: 48 83 ec 08 sub $0x8,%rsp - 43dd7a: 44 29 c2 sub %r8d,%edx - 43dd7d: 85 f6 test %esi,%esi - 43dd7f: 44 8d 1c 52 lea (%rdx,%rdx,2),%r11d - 43dd83: 0f 84 b8 00 00 00 je 43de41 - 43dd89: 83 3d 28 e9 28 00 0f cmpl $0xf,0x28e928(%rip) # 6cc6b8 <_dl_x86_cpu_features+0x38> - 43dd90: 40 0f 94 c5 sete %bpl - 43dd94: 83 3d 21 e9 28 00 06 cmpl $0x6,0x28e921(%rip) # 6cc6bc <_dl_x86_cpu_features+0x3c> - 43dd9b: 0f 94 c0 sete %al - 43dd9e: 21 c5 and %eax,%ebp - 43dda0: 40 0f b6 c6 movzbl %sil,%eax - 43dda4: 83 f8 40 cmp $0x40,%eax - 43dda7: 0f 84 b3 00 00 00 je 43de60 - 43ddad: 3d ff 00 00 00 cmp $0xff,%eax - 43ddb2: 0f 84 bd 00 00 00 je 43de75 - 43ddb8: 83 f8 49 cmp $0x49,%eax - 43ddbb: 75 14 jne 43ddd1 - 43ddbd: 41 83 fb 09 cmp $0x9,%r11d - 43ddc1: 75 0e jne 43ddd1 - 43ddc3: 40 84 ed test %bpl,%bpl - 43ddc6: 74 09 je 43ddd1 - 43ddc8: 83 ef 03 sub $0x3,%edi - 43ddcb: 41 bb 06 00 00 00 mov $0x6,%r11d - 43ddd1: 41 89 f1 mov %esi,%r9d - 43ddd4: 31 d2 xor %edx,%edx - 43ddd6: 41 ba 44 00 00 00 mov $0x44,%r10d - 43dddc: 0f 1f 40 00 nopl 0x0(%rax) - 43dde0: 49 8d 04 12 lea (%r10,%rdx,1),%rax - 43dde4: 48 d1 e8 shr %rax - 43dde7: 44 3a 0c c5 60 3d 4a cmp 0x4a3d60(,%rax,8),%r9b - 43ddee: 00 - 43ddef: 4c 8d 04 c5 60 3d 4a lea 0x4a3d60(,%rax,8),%r8 - 43ddf6: 00 - 43ddf7: 74 29 je 43de22 - 43ddf9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43de00: 73 4e jae 43de50 - 43de02: 48 39 d0 cmp %rdx,%rax - 43de05: 49 89 c2 mov %rax,%r10 - 43de08: 76 2c jbe 43de36 - 43de0a: 48 01 d0 add %rdx,%rax - 43de0d: 48 d1 e8 shr %rax - 43de10: 44 3a 0c c5 60 3d 4a cmp 0x4a3d60(,%rax,8),%r9b - 43de17: 00 - 43de18: 4c 8d 04 c5 60 3d 4a lea 0x4a3d60(,%rax,8),%r8 - 43de1f: 00 - 43de20: 75 de jne 43de00 - 43de22: 41 0f b6 50 03 movzbl 0x3(%r8),%edx - 43de27: 41 39 d3 cmp %edx,%r11d - 43de2a: 89 d0 mov %edx,%eax - 43de2c: 0f 84 3f 01 00 00 je 43df71 - 43de32: 3c 06 cmp $0x6,%al - 43de34: 74 3a je 43de70 - 43de36: c1 ee 08 shr $0x8,%esi - 43de39: 85 f6 test %esi,%esi - 43de3b: 0f 85 5f ff ff ff jne 43dda0 - 43de41: 31 c0 xor %eax,%eax - 43de43: 48 83 c4 08 add $0x8,%rsp - 43de47: 5b pop %rbx - 43de48: 5d pop %rbp - 43de49: 41 5c pop %r12 - 43de4b: 41 5d pop %r13 - 43de4d: c3 retq - 43de4e: 66 90 xchg %ax,%ax - 43de50: 48 8d 50 01 lea 0x1(%rax),%rdx - 43de54: 4c 39 d2 cmp %r10,%rdx - 43de57: 72 87 jb 43dde0 - 43de59: eb db jmp 43de36 - 43de5b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43de60: 41 83 fb 09 cmp $0x9,%r11d - 43de64: c6 01 01 movb $0x1,(%rcx) - 43de67: 75 cd jne 43de36 - 43de69: eb d6 jmp 43de41 - 43de6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43de70: c6 03 01 movb $0x1,(%rbx) - 43de73: eb c1 jmp 43de36 - 43de75: 31 c9 xor %ecx,%ecx - 43de77: b8 04 00 00 00 mov $0x4,%eax - 43de7c: 0f a2 cpuid - 43de7e: 89 c6 mov %eax,%esi - 43de80: 83 e6 1f and $0x1f,%esi - 43de83: 74 bc je 43de41 - 43de85: c1 e8 05 shr $0x5,%eax - 43de88: 83 e0 07 and $0x7,%eax - 43de8b: 83 f8 01 cmp $0x1,%eax - 43de8e: 0f 94 c2 sete %dl - 43de91: 41 83 fb 03 cmp $0x3,%r11d - 43de95: 41 0f 94 c1 sete %r9b - 43de99: 83 fe 01 cmp $0x1,%esi - 43de9c: 41 0f 94 c0 sete %r8b - 43dea0: 45 84 c8 test %r9b,%r8b - 43dea3: 74 08 je 43dead - 43dea5: 84 d2 test %dl,%dl - 43dea7: 0f 85 8e 00 00 00 jne 43df3b - 43dead: 45 85 db test %r11d,%r11d - 43deb0: 41 0f 94 c2 sete %r10b - 43deb4: 83 fe 02 cmp $0x2,%esi - 43deb7: 40 0f 94 c6 sete %sil - 43debb: 44 84 d6 test %r10b,%sil - 43debe: 74 04 je 43dec4 - 43dec0: 84 d2 test %dl,%dl - 43dec2: 75 77 jne 43df3b - 43dec4: 41 83 fb 06 cmp $0x6,%r11d - 43dec8: 41 b8 04 00 00 00 mov $0x4,%r8d - 43dece: 40 0f 94 c5 sete %bpl - 43ded2: 31 f6 xor %esi,%esi - 43ded4: 0f 1f 40 00 nopl 0x0(%rax) - 43ded8: 83 f8 02 cmp $0x2,%eax - 43dedb: 75 05 jne 43dee2 - 43dedd: 40 84 ed test %bpl,%bpl - 43dee0: 75 59 jne 43df3b - 43dee2: 83 f8 03 cmp $0x3,%eax - 43dee5: 75 06 jne 43deed - 43dee7: 41 83 fb 09 cmp $0x9,%r11d - 43deeb: 74 4e je 43df3b - 43deed: 83 f8 04 cmp $0x4,%eax - 43def0: 75 06 jne 43def8 - 43def2: 41 83 fb 0c cmp $0xc,%r11d - 43def6: 74 43 je 43df3b - 43def8: 83 c6 01 add $0x1,%esi - 43defb: 44 89 c0 mov %r8d,%eax - 43defe: 89 f1 mov %esi,%ecx - 43df00: 0f a2 cpuid - 43df02: 89 c2 mov %eax,%edx - 43df04: 83 e2 1f and $0x1f,%edx - 43df07: 0f 84 34 ff ff ff je 43de41 - 43df0d: c1 e8 05 shr $0x5,%eax - 43df10: 83 e0 07 and $0x7,%eax - 43df13: 83 f8 01 cmp $0x1,%eax - 43df16: 41 0f 94 c4 sete %r12b - 43df1a: 83 fa 01 cmp $0x1,%edx - 43df1d: 41 0f 94 c5 sete %r13b - 43df21: 45 84 cd test %r9b,%r13b - 43df24: 74 05 je 43df2b - 43df26: 45 84 e4 test %r12b,%r12b - 43df29: 75 10 jne 43df3b - 43df2b: 83 fa 02 cmp $0x2,%edx - 43df2e: 0f 94 c2 sete %dl - 43df31: 44 84 d2 test %r10b,%dl - 43df34: 74 a2 je 43ded8 - 43df36: 45 84 e4 test %r12b,%r12b - 43df39: 74 9d je 43ded8 - 43df3b: 8d 87 47 ff ff ff lea -0xb9(%rdi),%eax - 43df41: 44 29 d8 sub %r11d,%eax - 43df44: 74 59 je 43df9f - 43df46: 83 f8 01 cmp $0x1,%eax - 43df49: 0f 84 82 00 00 00 je 43dfd1 - 43df4f: 83 f8 02 cmp $0x2,%eax - 43df52: 0f 85 a9 00 00 00 jne 43e001 - 43df58: 89 d8 mov %ebx,%eax - 43df5a: 48 83 c4 08 add $0x8,%rsp - 43df5e: 25 ff 0f 00 00 and $0xfff,%eax - 43df63: 5b pop %rbx - 43df64: 48 83 c0 01 add $0x1,%rax - 43df68: 5d pop %rbp - 43df69: 41 5c pop %r12 - 43df6b: 41 5d pop %r13 - 43df6d: c3 retq - 43df6e: 31 c0 xor %eax,%eax - 43df70: c3 retq - 43df71: 8d 87 47 ff ff ff lea -0xb9(%rdi),%eax - 43df77: 44 29 d8 sub %r11d,%eax - 43df7a: 74 14 je 43df90 - 43df7c: 83 f8 01 cmp $0x1,%eax - 43df7f: 74 5d je 43dfde - 43df81: 83 f8 02 cmp $0x2,%eax - 43df84: 75 62 jne 43dfe8 - 43df86: 41 0f b6 40 02 movzbl 0x2(%r8),%eax - 43df8b: e9 b3 fe ff ff jmpq 43de43 - 43df90: 41 8b 40 04 mov 0x4(%r8),%eax - 43df94: 48 83 c4 08 add $0x8,%rsp - 43df98: 5b pop %rbx - 43df99: 5d pop %rbp - 43df9a: 41 5c pop %r12 - 43df9c: 41 5d pop %r13 - 43df9e: c3 retq - 43df9f: 89 d8 mov %ebx,%eax - 43dfa1: 83 c1 01 add $0x1,%ecx - 43dfa4: c1 e8 16 shr $0x16,%eax - 43dfa7: 8d 50 01 lea 0x1(%rax),%edx - 43dfaa: 89 d8 mov %ebx,%eax - 43dfac: 25 ff 0f 00 00 and $0xfff,%eax - 43dfb1: 83 c0 01 add $0x1,%eax - 43dfb4: 0f af c2 imul %edx,%eax - 43dfb7: 0f af c1 imul %ecx,%eax - 43dfba: 89 c2 mov %eax,%edx - 43dfbc: 89 d8 mov %ebx,%eax - 43dfbe: c1 e8 0c shr $0xc,%eax - 43dfc1: 25 ff 03 00 00 and $0x3ff,%eax - 43dfc6: 83 c0 01 add $0x1,%eax - 43dfc9: 0f af c2 imul %edx,%eax - 43dfcc: e9 72 fe ff ff jmpq 43de43 - 43dfd1: 89 d8 mov %ebx,%eax - 43dfd3: c1 e8 16 shr $0x16,%eax - 43dfd6: 83 c0 01 add $0x1,%eax - 43dfd9: e9 65 fe ff ff jmpq 43de43 - 43dfde: 41 0f b6 40 01 movzbl 0x1(%r8),%eax - 43dfe3: e9 5b fe ff ff jmpq 43de43 - 43dfe8: b9 90 3f 4a 00 mov $0x4a3f90,%ecx - 43dfed: ba f1 00 00 00 mov $0xf1,%edx - 43dff2: be b0 3b 4a 00 mov $0x4a3bb0,%esi - 43dff7: bf ce 3b 4a 00 mov $0x4a3bce,%edi - 43dffc: e8 3f 37 fc ff callq 401740 <__assert_fail> - 43e001: b9 90 3f 4a 00 mov $0x4a3f90,%ecx - 43e006: ba c1 00 00 00 mov $0xc1,%edx - 43e00b: be b0 3b 4a 00 mov $0x4a3bb0,%esi - 43e010: bf ce 3b 4a 00 mov $0x4a3bce,%edi - 43e015: e8 26 37 fc ff callq 401740 <__assert_fail> - 43e01a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -000000000043e020 : - 43e020: 83 fe 01 cmp $0x1,%esi - 43e023: 0f 86 f7 00 00 00 jbe 43e120 - 43e029: 41 57 push %r15 - 43e02b: 41 56 push %r14 - 43e02d: 41 bf 01 00 00 00 mov $0x1,%r15d - 43e033: 41 55 push %r13 - 43e035: 41 54 push %r12 - 43e037: 41 bc 01 00 00 00 mov $0x1,%r12d - 43e03d: 55 push %rbp - 43e03e: 53 push %rbx - 43e03f: 89 fd mov %edi,%ebp - 43e041: 48 83 ec 18 sub $0x18,%rsp - 43e045: c6 44 24 0e 00 movb $0x0,0xe(%rsp) - 43e04a: c6 44 24 0f 00 movb $0x0,0xf(%rsp) - 43e04f: eb 78 jmp 43e0c9 - 43e051: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43e058: 48 8d 4c 24 0e lea 0xe(%rsp),%rcx - 43e05d: 48 8d 54 24 0f lea 0xf(%rsp),%rdx - 43e062: 89 ef mov %ebp,%edi - 43e064: e8 e7 fc ff ff callq 43dd50 - 43e069: 48 85 c0 test %rax,%rax - 43e06c: 0f 85 97 00 00 00 jne 43e109 - 43e072: 48 8d 4c 24 0e lea 0xe(%rsp),%rcx - 43e077: 48 8d 54 24 0f lea 0xf(%rsp),%rdx - 43e07c: 89 de mov %ebx,%esi - 43e07e: 89 ef mov %ebp,%edi - 43e080: e8 cb fc ff ff callq 43dd50 - 43e085: 48 85 c0 test %rax,%rax - 43e088: 75 7f jne 43e109 - 43e08a: 48 8d 4c 24 0e lea 0xe(%rsp),%rcx - 43e08f: 48 8d 54 24 0f lea 0xf(%rsp),%rdx - 43e094: 44 89 ee mov %r13d,%esi - 43e097: 89 ef mov %ebp,%edi - 43e099: e8 b2 fc ff ff callq 43dd50 - 43e09e: 48 85 c0 test %rax,%rax - 43e0a1: 75 66 jne 43e109 - 43e0a3: 48 8d 4c 24 0e lea 0xe(%rsp),%rcx - 43e0a8: 48 8d 54 24 0f lea 0xf(%rsp),%rdx - 43e0ad: 44 89 f6 mov %r14d,%esi - 43e0b0: 89 ef mov %ebp,%edi - 43e0b2: e8 99 fc ff ff callq 43dd50 - 43e0b7: 48 85 c0 test %rax,%rax - 43e0ba: 75 4d jne 43e109 - 43e0bc: 45 39 e7 cmp %r12d,%r15d - 43e0bf: 41 8d 44 24 01 lea 0x1(%r12),%eax - 43e0c4: 76 2a jbe 43e0f0 - 43e0c6: 41 89 c4 mov %eax,%r12d - 43e0c9: b8 02 00 00 00 mov $0x2,%eax - 43e0ce: 0f a2 cpuid - 43e0d0: 41 83 fc 01 cmp $0x1,%r12d - 43e0d4: 41 89 d6 mov %edx,%r14d - 43e0d7: 41 89 cd mov %ecx,%r13d - 43e0da: 89 c6 mov %eax,%esi - 43e0dc: 0f 85 76 ff ff ff jne 43e058 - 43e0e2: 44 0f b6 f8 movzbl %al,%r15d - 43e0e6: 40 80 e6 00 and $0x0,%sil - 43e0ea: e9 69 ff ff ff jmpq 43e058 - 43e0ef: 90 nop - 43e0f0: 81 ed bf 00 00 00 sub $0xbf,%ebp - 43e0f6: 83 fd 05 cmp $0x5,%ebp - 43e0f9: 77 2d ja 43e128 - 43e0fb: 80 7c 24 0e 00 cmpb $0x0,0xe(%rsp) - 43e100: 74 26 je 43e128 - 43e102: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 43e109: 48 83 c4 18 add $0x18,%rsp - 43e10d: 5b pop %rbx - 43e10e: 5d pop %rbp - 43e10f: 41 5c pop %r12 - 43e111: 41 5d pop %r13 - 43e113: 41 5e pop %r14 - 43e115: 41 5f pop %r15 - 43e117: c3 retq - 43e118: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43e11f: 00 - 43e120: 31 c0 xor %eax,%eax - 43e122: c3 retq - 43e123: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43e128: 48 83 c4 18 add $0x18,%rsp - 43e12c: 31 c0 xor %eax,%eax - 43e12e: 5b pop %rbx - 43e12f: 5d pop %rbp - 43e130: 41 5c pop %r12 - 43e132: 41 5d pop %r13 - 43e134: 41 5e pop %r14 - 43e136: 41 5f pop %r15 - 43e138: c3 retq - 43e139: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -000000000043e140 : - 43e140: 53 push %rbx - 43e141: b8 00 00 00 80 mov $0x80000000,%eax - 43e146: 0f a2 cpuid - 43e148: 81 ff c4 00 00 00 cmp $0xc4,%edi - 43e14e: 7f 40 jg 43e190 - 43e150: 31 d2 xor %edx,%edx - 43e152: 81 ff be 00 00 00 cmp $0xbe,%edi - 43e158: 0f 9f c2 setg %dl - 43e15b: 81 ea fb ff ff 7f sub $0x7ffffffb,%edx - 43e161: 39 c2 cmp %eax,%edx - 43e163: 77 2b ja 43e190 - 43e165: 89 d0 mov %edx,%eax - 43e167: 0f a2 cpuid - 43e169: 81 ff bb 00 00 00 cmp $0xbb,%edi - 43e16f: 7e 27 jle 43e198 - 43e171: 81 ef bc 00 00 00 sub $0xbc,%edi - 43e177: 83 ff 08 cmp $0x8,%edi - 43e17a: 0f 87 30 01 00 00 ja 43e2b0 - 43e180: ff 24 fd 00 3c 4a 00 jmpq *0x4a3c00(,%rdi,8) - 43e187: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43e18e: 00 00 - 43e190: 31 c0 xor %eax,%eax - 43e192: 5b pop %rbx - 43e193: c3 retq - 43e194: 0f 1f 40 00 nopl 0x0(%rax) - 43e198: 83 c7 03 add $0x3,%edi - 43e19b: 89 d1 mov %edx,%ecx - 43e19d: eb d2 jmp 43e171 - 43e19f: 90 nop - 43e1a0: 31 c0 xor %eax,%eax - 43e1a2: f6 c5 f0 test $0xf0,%ch - 43e1a5: 74 eb je 43e192 - 43e1a7: 0f b6 c1 movzbl %cl,%eax - 43e1aa: 5b pop %rbx - 43e1ab: c3 retq - 43e1ac: 0f 1f 40 00 nopl 0x0(%rax) - 43e1b0: 31 c0 xor %eax,%eax - 43e1b2: f6 c5 f0 test $0xf0,%ch - 43e1b5: 74 db je 43e192 - 43e1b7: 89 c8 mov %ecx,%eax - 43e1b9: c1 e8 06 shr $0x6,%eax - 43e1bc: 25 00 fc ff 03 and $0x3fffc00,%eax - 43e1c1: 5b pop %rbx - 43e1c2: c3 retq - 43e1c3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43e1c8: 31 c0 xor %eax,%eax - 43e1ca: f6 c6 f0 test $0xf0,%dh - 43e1cd: 74 c3 je 43e192 - 43e1cf: 0f b6 c2 movzbl %dl,%eax - 43e1d2: 5b pop %rbx - 43e1d3: c3 retq - 43e1d4: 0f 1f 40 00 nopl 0x0(%rax) - 43e1d8: 89 c8 mov %ecx,%eax - 43e1da: c1 e8 0e shr $0xe,%eax - 43e1dd: 25 00 fc 03 00 and $0x3fc00,%eax - 43e1e2: 5b pop %rbx - 43e1e3: c3 retq - 43e1e4: 0f 1f 40 00 nopl 0x0(%rax) - 43e1e8: c1 e9 10 shr $0x10,%ecx - 43e1eb: 0f b6 c1 movzbl %cl,%eax - 43e1ee: 3d ff 00 00 00 cmp $0xff,%eax - 43e1f3: 75 9d jne 43e192 - 43e1f5: 8d 04 8d 00 00 00 00 lea 0x0(,%rcx,4),%eax - 43e1fc: 5b pop %rbx - 43e1fd: 25 00 fc 03 00 and $0x3fc00,%eax - 43e202: c3 retq - 43e203: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43e208: 89 ca mov %ecx,%edx - 43e20a: c1 ea 0c shr $0xc,%edx - 43e20d: 83 e2 0f and $0xf,%edx - 43e210: ff 24 d5 48 3c 4a 00 jmpq *0x4a3c48(,%rdx,8) - 43e217: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43e21e: 00 00 - 43e220: 31 c0 xor %eax,%eax - 43e222: f6 c6 f0 test $0xf0,%dh - 43e225: 0f 84 67 ff ff ff je 43e192 - 43e22b: 48 8d 04 12 lea (%rdx,%rdx,1),%rax - 43e22f: 5b pop %rbx - 43e230: 25 00 00 f8 7f and $0x7ff80000,%eax - 43e235: c3 retq - 43e236: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43e23d: 00 00 00 - 43e240: 89 d0 mov %edx,%eax - 43e242: c1 e8 0c shr $0xc,%eax - 43e245: 83 e0 0f and $0xf,%eax - 43e248: ff 24 c5 c8 3c 4a 00 jmpq *0x4a3cc8(,%rax,8) - 43e24f: b8 08 00 00 00 mov $0x8,%eax - 43e254: 5b pop %rbx - 43e255: c3 retq - 43e256: b8 80 00 00 00 mov $0x80,%eax - 43e25b: 5b pop %rbx - 43e25c: c3 retq - 43e25d: b8 60 00 00 00 mov $0x60,%eax - 43e262: 5b pop %rbx - 43e263: c3 retq - 43e264: b8 40 00 00 00 mov $0x40,%eax - 43e269: 5b pop %rbx - 43e26a: c3 retq - 43e26b: b8 30 00 00 00 mov $0x30,%eax - 43e270: 5b pop %rbx - 43e271: c3 retq - 43e272: b8 20 00 00 00 mov $0x20,%eax - 43e277: 5b pop %rbx - 43e278: c3 retq - 43e279: b8 10 00 00 00 mov $0x10,%eax - 43e27e: 5b pop %rbx - 43e27f: c3 retq - 43e280: 89 ca mov %ecx,%edx - 43e282: 0f b6 c9 movzbl %cl,%ecx - 43e285: c1 ea 06 shr $0x6,%edx - 43e288: 89 d0 mov %edx,%eax - 43e28a: 31 d2 xor %edx,%edx - 43e28c: 25 00 fc ff 03 and $0x3fffc00,%eax - 43e291: f7 f1 div %ecx - 43e293: 5b pop %rbx - 43e294: 89 c0 mov %eax,%eax - 43e296: c3 retq - 43e297: 48 89 d0 mov %rdx,%rax - 43e29a: 5b pop %rbx - 43e29b: c3 retq - 43e29c: 89 d0 mov %edx,%eax - 43e29e: 0f b6 ca movzbl %dl,%ecx - 43e2a1: 31 d2 xor %edx,%edx - 43e2a3: 25 00 00 fc 3f and $0x3ffc0000,%eax - 43e2a8: 01 c0 add %eax,%eax - 43e2aa: f7 f1 div %ecx - 43e2ac: 5b pop %rbx - 43e2ad: 89 c0 mov %eax,%eax - 43e2af: c3 retq - 43e2b0: b9 80 3f 4a 00 mov $0x4a3f80,%ecx - 43e2b5: ba b0 01 00 00 mov $0x1b0,%edx - 43e2ba: be b0 3b 4a 00 mov $0x4a3bb0,%esi - 43e2bf: bf da 3b 4a 00 mov $0x4a3bda,%edi - 43e2c4: e8 77 34 fc ff callq 401740 <__assert_fail> - 43e2c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -000000000043e2d0 <__cache_sysconf>: - 43e2d0: 8b 05 aa e3 28 00 mov 0x28e3aa(%rip),%eax # 6cc680 <_dl_x86_cpu_features> - 43e2d6: 83 f8 01 cmp $0x1,%eax - 43e2d9: 74 15 je 43e2f0 <__cache_sysconf+0x20> - 43e2db: 83 f8 02 cmp $0x2,%eax - 43e2de: 74 08 je 43e2e8 <__cache_sysconf+0x18> - 43e2e0: 31 c0 xor %eax,%eax - 43e2e2: c3 retq - 43e2e3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43e2e8: e9 53 fe ff ff jmpq 43e140 - 43e2ed: 0f 1f 00 nopl (%rax) - 43e2f0: 8b 35 8e e3 28 00 mov 0x28e38e(%rip),%esi # 6cc684 <_dl_x86_cpu_features+0x4> - 43e2f6: e9 25 fd ff ff jmpq 43e020 - 43e2fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -000000000043e300 <__strcasecmp_l_nonascii>: - 43e300: 48 39 f7 cmp %rsi,%rdi - 43e303: 74 33 je 43e338 <__strcasecmp_l_nonascii+0x38> - 43e305: 48 8b 52 70 mov 0x70(%rdx),%rdx - 43e309: eb 0e jmp 43e319 <__strcasecmp_l_nonascii+0x19> - 43e30b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43e310: 48 83 c7 01 add $0x1,%rdi - 43e314: 45 84 c0 test %r8b,%r8b - 43e317: 74 1f je 43e338 <__strcasecmp_l_nonascii+0x38> - 43e319: 48 83 c6 01 add $0x1,%rsi - 43e31d: 0f b6 07 movzbl (%rdi),%eax - 43e320: 0f b6 4e ff movzbl -0x1(%rsi),%ecx - 43e324: 49 89 c0 mov %rax,%r8 - 43e327: 8b 04 82 mov (%rdx,%rax,4),%eax - 43e32a: 2b 04 8a sub (%rdx,%rcx,4),%eax - 43e32d: 74 e1 je 43e310 <__strcasecmp_l_nonascii+0x10> - 43e32f: f3 c3 repz retq - 43e331: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43e338: 31 c0 xor %eax,%eax - 43e33a: c3 retq - 43e33b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -000000000043e340 <__wmempcpy>: - 43e340: 48 c1 e2 02 shl $0x2,%rdx - 43e344: e9 77 82 fe ff jmpq 4265c0 <__mempcpy> - 43e349: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -000000000043e350 <_nl_cleanup_ctype>: - 43e350: 53 push %rbx - 43e351: 48 8b 5f 28 mov 0x28(%rdi),%rbx - 43e355: 48 85 db test %rbx,%rbx - 43e358: 74 36 je 43e390 <_nl_cleanup_ctype+0x40> - 43e35a: 48 c7 47 28 00 00 00 movq $0x0,0x28(%rdi) - 43e361: 00 - 43e362: 48 c7 47 20 00 00 00 movq $0x0,0x20(%rdi) - 43e369: 00 - 43e36a: 48 8b 73 18 mov 0x18(%rbx),%rsi - 43e36e: 48 8b 7b 10 mov 0x10(%rbx),%rdi - 43e372: e8 79 75 00 00 callq 4458f0 <__gconv_close_transform> - 43e377: 48 8b 3b mov (%rbx),%rdi - 43e37a: 48 8b 73 08 mov 0x8(%rbx),%rsi - 43e37e: e8 6d 75 00 00 callq 4458f0 <__gconv_close_transform> - 43e383: 48 89 df mov %rbx,%rdi - 43e386: 5b pop %rbx - 43e387: e9 24 fa fd ff jmpq 41ddb0 <__cfree> - 43e38c: 0f 1f 40 00 nopl 0x0(%rax) - 43e390: 5b pop %rbx - 43e391: c3 retq - 43e392: 0f 1f 40 00 nopl 0x0(%rax) - 43e396: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43e39d: 00 00 00 - -000000000043e3a0 <__wcsmbs_getfct>: - 43e3a0: 53 push %rbx - 43e3a1: 48 89 d3 mov %rdx,%rbx - 43e3a4: 45 31 c0 xor %r8d,%r8d - 43e3a7: 48 83 ec 10 sub $0x10,%rsp - 43e3ab: 48 8d 54 24 08 lea 0x8(%rsp),%rdx - 43e3b0: 48 89 e1 mov %rsp,%rcx - 43e3b3: e8 58 72 00 00 callq 445610 <__gconv_find_transform> - 43e3b8: 85 c0 test %eax,%eax - 43e3ba: 75 34 jne 43e3f0 <__wcsmbs_getfct+0x50> - 43e3bc: 48 8b 34 24 mov (%rsp),%rsi - 43e3c0: 48 83 fe 01 cmp $0x1,%rsi - 43e3c4: 76 1a jbe 43e3e0 <__wcsmbs_getfct+0x40> - 43e3c6: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi - 43e3cb: e8 20 75 00 00 callq 4458f0 <__gconv_close_transform> - 43e3d0: 48 83 c4 10 add $0x10,%rsp - 43e3d4: 31 c0 xor %eax,%eax - 43e3d6: 5b pop %rbx - 43e3d7: c3 retq - 43e3d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43e3df: 00 - 43e3e0: 48 89 33 mov %rsi,(%rbx) - 43e3e3: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 43e3e8: 48 83 c4 10 add $0x10,%rsp - 43e3ec: 5b pop %rbx - 43e3ed: c3 retq - 43e3ee: 66 90 xchg %ax,%ax - 43e3f0: 48 83 c4 10 add $0x10,%rsp - 43e3f4: 31 c0 xor %eax,%eax - 43e3f6: 5b pop %rbx - 43e3f7: c3 retq - 43e3f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43e3ff: 00 - -000000000043e400 <__wcsmbs_load_conv>: - 43e400: 55 push %rbp - 43e401: b8 00 00 00 00 mov $0x0,%eax - 43e406: 48 89 e5 mov %rsp,%rbp - 43e409: 41 55 push %r13 - 43e40b: 41 54 push %r12 - 43e40d: 53 push %rbx - 43e40e: 48 89 fb mov %rdi,%rbx - 43e411: 48 83 ec 18 sub $0x18,%rsp - 43e415: 48 85 c0 test %rax,%rax - 43e418: 74 07 je 43e421 <__wcsmbs_load_conv+0x21> - 43e41a: bf 20 c7 6c 00 mov $0x6cc720,%edi - 43e41f: ff d0 callq *%rax - 43e421: 48 83 7b 28 00 cmpq $0x0,0x28(%rbx) - 43e426: 74 20 je 43e448 <__wcsmbs_load_conv+0x48> - 43e428: b8 00 00 00 00 mov $0x0,%eax - 43e42d: 48 85 c0 test %rax,%rax - 43e430: 74 07 je 43e439 <__wcsmbs_load_conv+0x39> - 43e432: bf 20 c7 6c 00 mov $0x6cc720,%edi - 43e437: ff d0 callq *%rax - 43e439: 48 8d 65 e8 lea -0x18(%rbp),%rsp - 43e43d: 5b pop %rbx - 43e43e: 41 5c pop %r12 - 43e440: 41 5d pop %r13 - 43e442: 5d pop %rbp - 43e443: c3 retq - 43e444: 0f 1f 40 00 nopl 0x0(%rax) - 43e448: be 20 00 00 00 mov $0x20,%esi - 43e44d: bf 01 00 00 00 mov $0x1,%edi - 43e452: e8 69 01 fe ff callq 41e5c0 <__calloc> - 43e457: 48 85 c0 test %rax,%rax - 43e45a: 49 89 c4 mov %rax,%r12 - 43e45d: 0f 84 5d 01 00 00 je 43e5c0 <__wcsmbs_load_conv+0x1c0> - 43e463: 8b 73 34 mov 0x34(%rbx),%esi - 43e466: 4c 8b 83 b0 00 00 00 mov 0xb0(%rbx),%r8 - 43e46d: 83 fe 01 cmp $0x1,%esi - 43e470: 4c 89 c0 mov %r8,%rax - 43e473: 48 19 ff sbb %rdi,%rdi - 43e476: 48 83 e7 f8 and $0xfffffffffffffff8,%rdi - 43e47a: 48 83 c7 0b add $0xb,%rdi - 43e47e: 83 fe 01 cmp $0x1,%esi - 43e481: 48 19 d2 sbb %rdx,%rdx - 43e484: 45 31 c9 xor %r9d,%r9d - 43e487: 48 f7 d2 not %rdx - 43e48a: 83 e2 08 and $0x8,%edx - 43e48d: eb 11 jmp 43e4a0 <__wcsmbs_load_conv+0xa0> - 43e48f: 90 nop - 43e490: 48 83 c0 01 add $0x1,%rax - 43e494: 80 f9 2f cmp $0x2f,%cl - 43e497: 0f 94 c1 sete %cl - 43e49a: 0f b6 c9 movzbl %cl,%ecx - 43e49d: 49 01 c9 add %rcx,%r9 - 43e4a0: 0f b6 08 movzbl (%rax),%ecx - 43e4a3: 84 c9 test %cl,%cl - 43e4a5: 75 e9 jne 43e490 <__wcsmbs_load_conv+0x90> - 43e4a7: 4c 29 c0 sub %r8,%rax - 43e4aa: 49 0f be 08 movsbq (%r8),%rcx - 43e4ae: 48 8d 44 07 1e lea 0x1e(%rdi,%rax,1),%rax - 43e4b3: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 43e4b7: 48 29 c4 sub %rax,%rsp - 43e4ba: 4c 8d 6c 24 0f lea 0xf(%rsp),%r13 - 43e4bf: 49 83 e5 f0 and $0xfffffffffffffff0,%r13 - 43e4c3: 84 c9 test %cl,%cl - 43e4c5: 0f 84 6c 01 00 00 je 43e637 <__wcsmbs_load_conv+0x237> - 43e4cb: 48 8b 3d 26 42 07 00 mov 0x74226(%rip),%rdi # 4b26f8 <_nl_C_locobj+0x78> - 43e4d2: 4c 89 e8 mov %r13,%rax - 43e4d5: 0f 1f 00 nopl (%rax) - 43e4d8: 8b 0c 8f mov (%rdi,%rcx,4),%ecx - 43e4db: 48 83 c0 01 add $0x1,%rax - 43e4df: 49 83 c0 01 add $0x1,%r8 - 43e4e3: 88 48 ff mov %cl,-0x1(%rax) - 43e4e6: 49 0f be 08 movsbq (%r8),%rcx - 43e4ea: 84 c9 test %cl,%cl - 43e4ec: 75 ea jne 43e4d8 <__wcsmbs_load_conv+0xd8> - 43e4ee: 49 83 f9 01 cmp $0x1,%r9 - 43e4f2: 0f 86 d8 00 00 00 jbe 43e5d0 <__wcsmbs_load_conv+0x1d0> - 43e4f8: 48 8d 4d d0 lea -0x30(%rbp),%rcx - 43e4fc: 48 8d 55 d8 lea -0x28(%rbp),%rdx - 43e500: 45 31 c0 xor %r8d,%r8d - 43e503: c6 00 00 movb $0x0,(%rax) - 43e506: 4c 89 ee mov %r13,%rsi - 43e509: bf 6d 52 4a 00 mov $0x4a526d,%edi - 43e50e: e8 fd 70 00 00 callq 445610 <__gconv_find_transform> - 43e513: 85 c0 test %eax,%eax - 43e515: 0f 85 06 01 00 00 jne 43e621 <__wcsmbs_load_conv+0x221> - 43e51b: 48 8b 75 d0 mov -0x30(%rbp),%rsi - 43e51f: 48 83 fe 01 cmp $0x1,%rsi - 43e523: 76 2b jbe 43e550 <__wcsmbs_load_conv+0x150> - 43e525: 48 8b 7d d8 mov -0x28(%rbp),%rdi - 43e529: e8 c2 73 00 00 callq 4458f0 <__gconv_close_transform> - 43e52e: 49 83 7c 24 10 00 cmpq $0x0,0x10(%r12) - 43e534: 49 c7 04 24 00 00 00 movq $0x0,(%r12) - 43e53b: 00 - 43e53c: 74 7a je 43e5b8 <__wcsmbs_load_conv+0x1b8> - 43e53e: 4c 89 63 28 mov %r12,0x28(%rbx) - 43e542: 48 c7 43 20 50 e3 43 movq $0x43e350,0x20(%rbx) - 43e549: 00 - 43e54a: e9 d9 fe ff ff jmpq 43e428 <__wcsmbs_load_conv+0x28> - 43e54f: 90 nop - 43e550: 48 8b 45 d8 mov -0x28(%rbp),%rax - 43e554: 49 89 74 24 08 mov %rsi,0x8(%r12) - 43e559: 48 85 c0 test %rax,%rax - 43e55c: 49 89 04 24 mov %rax,(%r12) - 43e560: 0f 84 c3 00 00 00 je 43e629 <__wcsmbs_load_conv+0x229> - 43e566: 48 8d 4d d0 lea -0x30(%rbp),%rcx - 43e56a: 48 8d 55 d8 lea -0x28(%rbp),%rdx - 43e56e: 45 31 c0 xor %r8d,%r8d - 43e571: be 6d 52 4a 00 mov $0x4a526d,%esi - 43e576: 4c 89 ef mov %r13,%rdi - 43e579: e8 92 70 00 00 callq 445610 <__gconv_find_transform> - 43e57e: 85 c0 test %eax,%eax - 43e580: 0f 85 b9 00 00 00 jne 43e63f <__wcsmbs_load_conv+0x23f> - 43e586: 48 8b 75 d0 mov -0x30(%rbp),%rsi - 43e58a: 48 83 fe 01 cmp $0x1,%rsi - 43e58e: 76 58 jbe 43e5e8 <__wcsmbs_load_conv+0x1e8> - 43e590: 48 8b 7d d8 mov -0x28(%rbp),%rdi - 43e594: e8 57 73 00 00 callq 4458f0 <__gconv_close_transform> - 43e599: 31 c0 xor %eax,%eax - 43e59b: 48 85 c0 test %rax,%rax - 43e59e: 49 89 44 24 10 mov %rax,0x10(%r12) - 43e5a3: 75 99 jne 43e53e <__wcsmbs_load_conv+0x13e> - 43e5a5: 49 8b 3c 24 mov (%r12),%rdi - 43e5a9: 48 85 ff test %rdi,%rdi - 43e5ac: 74 0a je 43e5b8 <__wcsmbs_load_conv+0x1b8> - 43e5ae: 49 8b 74 24 08 mov 0x8(%r12),%rsi - 43e5b3: e8 38 73 00 00 callq 4458f0 <__gconv_close_transform> - 43e5b8: 4c 89 e7 mov %r12,%rdi - 43e5bb: e8 f0 f7 fd ff callq 41ddb0 <__cfree> - 43e5c0: 48 c7 43 28 c0 3f 4a movq $0x4a3fc0,0x28(%rbx) - 43e5c7: 00 - 43e5c8: e9 5b fe ff ff jmpq 43e428 <__wcsmbs_load_conv+0x28> - 43e5cd: 0f 1f 00 nopl (%rax) - 43e5d0: 4d 85 c9 test %r9,%r9 - 43e5d3: c6 00 2f movb $0x2f,(%rax) - 43e5d6: 74 1b je 43e5f3 <__wcsmbs_load_conv+0x1f3> - 43e5d8: 48 83 c0 01 add $0x1,%rax - 43e5dc: e9 17 ff ff ff jmpq 43e4f8 <__wcsmbs_load_conv+0xf8> - 43e5e1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43e5e8: 49 89 74 24 18 mov %rsi,0x18(%r12) - 43e5ed: 48 8b 45 d8 mov -0x28(%rbp),%rax - 43e5f1: eb a8 jmp 43e59b <__wcsmbs_load_conv+0x19b> - 43e5f3: c6 40 01 2f movb $0x2f,0x1(%rax) - 43e5f7: 48 83 c0 02 add $0x2,%rax - 43e5fb: 48 85 d2 test %rdx,%rdx - 43e5fe: 0f 84 f4 fe ff ff je 43e4f8 <__wcsmbs_load_conv+0xf8> - 43e604: 85 f6 test %esi,%esi - 43e606: b9 25 67 4b 00 mov $0x4b6725,%ecx - 43e60b: be b1 3f 4a 00 mov $0x4a3fb1,%esi - 43e610: 48 0f 44 f1 cmove %rcx,%rsi - 43e614: 48 89 c7 mov %rax,%rdi - 43e617: e8 a4 7f fe ff callq 4265c0 <__mempcpy> - 43e61c: e9 d7 fe ff ff jmpq 43e4f8 <__wcsmbs_load_conv+0xf8> - 43e621: 49 c7 04 24 00 00 00 movq $0x0,(%r12) - 43e628: 00 - 43e629: 49 83 7c 24 10 00 cmpq $0x0,0x10(%r12) - 43e62f: 0f 85 09 ff ff ff jne 43e53e <__wcsmbs_load_conv+0x13e> - 43e635: eb 81 jmp 43e5b8 <__wcsmbs_load_conv+0x1b8> - 43e637: 4c 89 e8 mov %r13,%rax - 43e63a: e9 af fe ff ff jmpq 43e4ee <__wcsmbs_load_conv+0xee> - 43e63f: 31 c0 xor %eax,%eax - 43e641: e9 55 ff ff ff jmpq 43e59b <__wcsmbs_load_conv+0x19b> - 43e646: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43e64d: 00 00 00 - -000000000043e650 <__wcsmbs_clone_conv>: - 43e650: 55 push %rbp - 43e651: 53 push %rbx - 43e652: 48 89 fb mov %rdi,%rbx - 43e655: 48 83 ec 08 sub $0x8,%rsp - 43e659: 48 c7 c0 b0 ff ff ff mov $0xffffffffffffffb0,%rax - 43e660: 64 48 8b 00 mov %fs:(%rax),%rax - 43e664: 48 8b 28 mov (%rax),%rbp - 43e667: 48 8b 45 28 mov 0x28(%rbp),%rax - 43e66b: 48 85 c0 test %rax,%rax - 43e66e: 74 40 je 43e6b0 <__wcsmbs_clone_conv+0x60> - 43e670: 48 8b 10 mov (%rax),%rdx - 43e673: 48 89 13 mov %rdx,(%rbx) - 43e676: 48 8b 48 08 mov 0x8(%rax),%rcx - 43e67a: 48 83 3a 00 cmpq $0x0,(%rdx) - 43e67e: 48 89 4b 08 mov %rcx,0x8(%rbx) - 43e682: 48 8b 48 10 mov 0x10(%rax),%rcx - 43e686: 48 89 4b 10 mov %rcx,0x10(%rbx) - 43e68a: 48 8b 40 18 mov 0x18(%rax),%rax - 43e68e: 48 89 43 18 mov %rax,0x18(%rbx) - 43e692: 74 04 je 43e698 <__wcsmbs_clone_conv+0x48> - 43e694: 83 42 10 01 addl $0x1,0x10(%rdx) - 43e698: 48 8b 43 10 mov 0x10(%rbx),%rax - 43e69c: 48 83 38 00 cmpq $0x0,(%rax) - 43e6a0: 74 04 je 43e6a6 <__wcsmbs_clone_conv+0x56> - 43e6a2: 83 40 10 01 addl $0x1,0x10(%rax) - 43e6a6: 48 83 c4 08 add $0x8,%rsp - 43e6aa: 5b pop %rbx - 43e6ab: 5d pop %rbp - 43e6ac: c3 retq - 43e6ad: 0f 1f 00 nopl (%rax) - 43e6b0: 48 81 fd e0 69 4a 00 cmp $0x4a69e0,%rbp - 43e6b7: b8 c0 3f 4a 00 mov $0x4a3fc0,%eax - 43e6bc: 74 b2 je 43e670 <__wcsmbs_clone_conv+0x20> - 43e6be: 48 89 ef mov %rbp,%rdi - 43e6c1: e8 3a fd ff ff callq 43e400 <__wcsmbs_load_conv> - 43e6c6: 48 8b 45 28 mov 0x28(%rbp),%rax - 43e6ca: eb a4 jmp 43e670 <__wcsmbs_clone_conv+0x20> - 43e6cc: 0f 1f 40 00 nopl 0x0(%rax) - -000000000043e6d0 <__wcsmbs_named_conv>: - 43e6d0: 55 push %rbp - 43e6d1: 53 push %rbx - 43e6d2: 45 31 c0 xor %r8d,%r8d - 43e6d5: 48 89 fb mov %rdi,%rbx - 43e6d8: bf 6d 52 4a 00 mov $0x4a526d,%edi - 43e6dd: 48 89 f5 mov %rsi,%rbp - 43e6e0: 48 83 ec 18 sub $0x18,%rsp - 43e6e4: 48 8d 54 24 08 lea 0x8(%rsp),%rdx - 43e6e9: 48 89 e1 mov %rsp,%rcx - 43e6ec: e8 1f 6f 00 00 callq 445610 <__gconv_find_transform> - 43e6f1: 85 c0 test %eax,%eax - 43e6f3: 0f 85 a7 00 00 00 jne 43e7a0 <__wcsmbs_named_conv+0xd0> - 43e6f9: 48 8b 34 24 mov (%rsp),%rsi - 43e6fd: 48 83 fe 01 cmp $0x1,%rsi - 43e701: 76 1d jbe 43e720 <__wcsmbs_named_conv+0x50> - 43e703: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi - 43e708: e8 e3 71 00 00 callq 4458f0 <__gconv_close_transform> - 43e70d: 48 c7 03 00 00 00 00 movq $0x0,(%rbx) - 43e714: b8 01 00 00 00 mov $0x1,%eax - 43e719: 48 83 c4 18 add $0x18,%rsp - 43e71d: 5b pop %rbx - 43e71e: 5d pop %rbp - 43e71f: c3 retq - 43e720: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 43e725: 48 89 73 08 mov %rsi,0x8(%rbx) - 43e729: 48 85 c0 test %rax,%rax - 43e72c: 48 89 03 mov %rax,(%rbx) - 43e72f: 74 76 je 43e7a7 <__wcsmbs_named_conv+0xd7> - 43e731: 48 8d 54 24 08 lea 0x8(%rsp),%rdx - 43e736: 45 31 c0 xor %r8d,%r8d - 43e739: 48 89 e1 mov %rsp,%rcx - 43e73c: be 6d 52 4a 00 mov $0x4a526d,%esi - 43e741: 48 89 ef mov %rbp,%rdi - 43e744: e8 c7 6e 00 00 callq 445610 <__gconv_find_transform> - 43e749: 85 c0 test %eax,%eax - 43e74b: 75 6b jne 43e7b8 <__wcsmbs_named_conv+0xe8> - 43e74d: 48 8b 34 24 mov (%rsp),%rsi - 43e751: 48 83 fe 01 cmp $0x1,%rsi - 43e755: 76 29 jbe 43e780 <__wcsmbs_named_conv+0xb0> - 43e757: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi - 43e75c: e8 8f 71 00 00 callq 4458f0 <__gconv_close_transform> - 43e761: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) - 43e768: 00 - 43e769: 48 8b 73 08 mov 0x8(%rbx),%rsi - 43e76d: 48 8b 3b mov (%rbx),%rdi - 43e770: e8 7b 71 00 00 callq 4458f0 <__gconv_close_transform> - 43e775: b8 01 00 00 00 mov $0x1,%eax - 43e77a: eb 9d jmp 43e719 <__wcsmbs_named_conv+0x49> - 43e77c: 0f 1f 40 00 nopl 0x0(%rax) - 43e780: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 43e785: 48 89 73 18 mov %rsi,0x18(%rbx) - 43e789: 48 85 d2 test %rdx,%rdx - 43e78c: 48 89 53 10 mov %rdx,0x10(%rbx) - 43e790: 74 d7 je 43e769 <__wcsmbs_named_conv+0x99> - 43e792: 48 83 c4 18 add $0x18,%rsp - 43e796: 5b pop %rbx - 43e797: 5d pop %rbp - 43e798: c3 retq - 43e799: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43e7a0: 48 c7 03 00 00 00 00 movq $0x0,(%rbx) - 43e7a7: 48 83 c4 18 add $0x18,%rsp - 43e7ab: b8 01 00 00 00 mov $0x1,%eax - 43e7b0: 5b pop %rbx - 43e7b1: 5d pop %rbp - 43e7b2: c3 retq - 43e7b3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43e7b8: 48 c7 43 10 00 00 00 movq $0x0,0x10(%rbx) - 43e7bf: 00 - 43e7c0: eb a7 jmp 43e769 <__wcsmbs_named_conv+0x99> - 43e7c2: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43e7c9: 00 00 00 - 43e7cc: 0f 1f 40 00 nopl 0x0(%rax) - -000000000043e7d0 <_exit>: - 43e7d0: 48 63 d7 movslq %edi,%rdx - 43e7d3: 49 c7 c1 d0 ff ff ff mov $0xffffffffffffffd0,%r9 - 43e7da: 41 b8 e7 00 00 00 mov $0xe7,%r8d - 43e7e0: be 3c 00 00 00 mov $0x3c,%esi - 43e7e5: eb 19 jmp 43e800 <_exit+0x30> - 43e7e7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43e7ee: 00 00 - 43e7f0: 48 89 d7 mov %rdx,%rdi - 43e7f3: 89 f0 mov %esi,%eax - 43e7f5: 0f 05 syscall - 43e7f7: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 43e7fd: 77 21 ja 43e820 <_exit+0x50> - 43e7ff: f4 hlt - 43e800: 48 89 d7 mov %rdx,%rdi - 43e803: 44 89 c0 mov %r8d,%eax - 43e806: 0f 05 syscall - 43e808: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 43e80e: 76 e0 jbe 43e7f0 <_exit+0x20> - 43e810: f7 d8 neg %eax - 43e812: 64 41 89 01 mov %eax,%fs:(%r9) - 43e816: eb d8 jmp 43e7f0 <_exit+0x20> - 43e818: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43e81f: 00 - 43e820: f7 d8 neg %eax - 43e822: 64 41 89 01 mov %eax,%fs:(%r9) - 43e826: eb d7 jmp 43e7ff <_exit+0x2f> - 43e828: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43e82f: 00 - -000000000043e830 <__sysconf_check_spec>: - 43e830: 55 push %rbp - 43e831: 48 89 e5 mov %rsp,%rbp - 43e834: 41 57 push %r15 - 43e836: 41 56 push %r14 - 43e838: 41 55 push %r13 - 43e83a: 41 54 push %r12 - 43e83c: 49 89 fd mov %rdi,%r13 - 43e83f: 53 push %rbx - 43e840: bf d9 40 4a 00 mov $0x4a40d9,%edi - 43e845: 48 81 ec 98 00 00 00 sub $0x98,%rsp - 43e84c: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 43e853: 64 44 8b 20 mov %fs:(%rax),%r12d - 43e857: e8 44 31 01 00 callq 4519a0 <__libc_secure_getenv> - 43e85c: 48 85 c0 test %rax,%rax - 43e85f: 0f 84 9b 00 00 00 je 43e900 <__sysconf_check_spec+0xd0> - 43e865: 48 89 c7 mov %rax,%rdi - 43e868: 49 89 c7 mov %rax,%r15 - 43e86b: e8 e0 4d fe ff callq 423650 - 43e870: 48 89 c3 mov %rax,%rbx - 43e873: 4c 89 ef mov %r13,%rdi - 43e876: e8 d5 4d fe ff callq 423650 - 43e87b: 49 89 c6 mov %rax,%r14 - 43e87e: 48 8d 44 03 1a lea 0x1a(%rbx,%rax,1),%rax - 43e883: 48 89 da mov %rbx,%rdx - 43e886: 4c 89 fe mov %r15,%rsi - 43e889: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 43e88d: 48 29 c4 sub %rax,%rsp - 43e890: 48 89 e7 mov %rsp,%rdi - 43e893: e8 28 7d fe ff callq 4265c0 <__mempcpy> - 43e898: ba 36 5f 00 00 mov $0x5f36,%edx - 43e89d: 48 b9 2f 50 4f 53 49 movabs $0x565f5849534f502f,%rcx - 43e8a4: 58 5f 56 - 43e8a7: 48 8d 78 0a lea 0xa(%rax),%rdi - 43e8ab: 66 89 50 08 mov %dx,0x8(%rax) - 43e8af: 49 8d 56 01 lea 0x1(%r14),%rdx - 43e8b3: 48 89 08 mov %rcx,(%rax) - 43e8b6: 4c 89 ee mov %r13,%rsi - 43e8b9: e8 62 d7 fe ff callq 42c020 - 43e8be: 48 8d 95 40 ff ff ff lea -0xc0(%rbp),%rdx - 43e8c5: 48 89 e6 mov %rsp,%rsi - 43e8c8: bf 01 00 00 00 mov $0x1,%edi - 43e8cd: e8 ae 07 00 00 callq 43f080 <__xstat> - 43e8d2: 48 c7 c1 d0 ff ff ff mov $0xffffffffffffffd0,%rcx - 43e8d9: 48 98 cltq - 43e8db: 48 c1 f8 3f sar $0x3f,%rax - 43e8df: 48 83 c8 01 or $0x1,%rax - 43e8e3: 64 44 89 21 mov %r12d,%fs:(%rcx) - 43e8e7: 48 8d 65 d8 lea -0x28(%rbp),%rsp - 43e8eb: 5b pop %rbx - 43e8ec: 41 5c pop %r12 - 43e8ee: 41 5d pop %r13 - 43e8f0: 41 5e pop %r14 - 43e8f2: 41 5f pop %r15 - 43e8f4: 5d pop %rbp - 43e8f5: c3 retq - 43e8f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43e8fd: 00 00 00 - 43e900: bb 10 00 00 00 mov $0x10,%ebx - 43e905: 41 bf c8 40 4a 00 mov $0x4a40c8,%r15d - 43e90b: e9 63 ff ff ff jmpq 43e873 <__sysconf_check_spec+0x43> - -000000000043e910 <__sysconf>: - 43e910: 55 push %rbp - 43e911: 53 push %rbx - 43e912: 89 fb mov %edi,%ebx - 43e914: 8d 83 47 ff ff ff lea -0xb9(%rbx),%eax - 43e91a: 48 83 ec 38 sub $0x38,%rsp - 43e91e: 83 f8 0e cmp $0xe,%eax - 43e921: 0f 86 19 01 00 00 jbe 43ea40 <__sysconf+0x130> - 43e927: 83 fb 22 cmp $0x22,%ebx - 43e92a: 0f 84 80 01 00 00 je 43eab0 <__sysconf+0x1a0> - 43e930: 0f 8f ba 00 00 00 jg 43e9f0 <__sysconf+0xe0> - 43e936: 85 db test %ebx,%ebx - 43e938: 0f 84 12 01 00 00 je 43ea50 <__sysconf+0x140> - 43e93e: 83 fb 03 cmp $0x3,%ebx - 43e941: bf 00 41 4a 00 mov $0x4a4100,%edi - 43e946: 0f 85 8c 00 00 00 jne 43e9d8 <__sysconf+0xc8> - 43e94c: 31 f6 xor %esi,%esi - 43e94e: b8 02 00 00 00 mov $0x2,%eax - 43e953: 0f 05 syscall - 43e955: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 43e95b: 0f 87 b7 06 00 00 ja 43f018 <__sysconf+0x708> - 43e961: 83 f8 ff cmp $0xffffffff,%eax - 43e964: 74 72 je 43e9d8 <__sysconf+0xc8> - 43e966: 48 8d 6c 24 10 lea 0x10(%rsp),%rbp - 43e96b: 4c 63 c0 movslq %eax,%r8 - 43e96e: 45 31 c9 xor %r9d,%r9d - 43e971: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43e978: ba 1f 00 00 00 mov $0x1f,%edx - 43e97d: 48 89 ee mov %rbp,%rsi - 43e980: 4c 89 c7 mov %r8,%rdi - 43e983: 44 89 c8 mov %r9d,%eax - 43e986: 0f 05 syscall - 43e988: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 43e98e: 0f 87 f4 00 00 00 ja 43ea88 <__sysconf+0x178> - 43e994: 48 89 c2 mov %rax,%rdx - 43e997: 4c 89 c7 mov %r8,%rdi - 43e99a: b8 03 00 00 00 mov $0x3,%eax - 43e99f: 0f 05 syscall - 43e9a1: 48 85 d2 test %rdx,%rdx - 43e9a4: 7e 32 jle 43e9d8 <__sysconf+0xc8> - 43e9a6: 48 8d 74 24 08 lea 0x8(%rsp),%rsi - 43e9ab: c6 44 14 10 00 movb $0x0,0x10(%rsp,%rdx,1) - 43e9b0: 48 89 ef mov %rbp,%rdi - 43e9b3: ba 0a 00 00 00 mov $0xa,%edx - 43e9b8: e8 13 30 01 00 callq 4519d0 <__strtol> - 43e9bd: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 43e9c2: 48 39 ea cmp %rbp,%rdx - 43e9c5: 74 11 je 43e9d8 <__sysconf+0xc8> - 43e9c7: 0f b6 12 movzbl (%rdx),%edx - 43e9ca: 84 d2 test %dl,%dl - 43e9cc: 74 61 je 43ea2f <__sysconf+0x11f> - 43e9ce: 80 fa 0a cmp $0xa,%dl - 43e9d1: 74 5c je 43ea2f <__sysconf+0x11f> - 43e9d3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43e9d8: 81 fb f6 00 00 00 cmp $0xf6,%ebx - 43e9de: 0f 87 17 06 00 00 ja 43effb <__sysconf+0x6eb> - 43e9e4: ff 24 dd 38 41 4a 00 jmpq *0x4a4138(,%rbx,8) - 43e9eb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43e9f0: 81 fb 8a 00 00 00 cmp $0x8a,%ebx - 43e9f6: 7c e0 jl 43e9d8 <__sysconf+0xc8> - 43e9f8: 81 fb 8b 00 00 00 cmp $0x8b,%ebx - 43e9fe: b8 69 10 03 00 mov $0x31069,%eax - 43ea03: 7e 2a jle 43ea2f <__sysconf+0x11f> - 43ea05: 81 fb 95 00 00 00 cmp $0x95,%ebx - 43ea0b: 75 cb jne 43e9d8 <__sysconf+0xc8> - 43ea0d: 48 8d 74 24 10 lea 0x10(%rsp),%rsi - 43ea12: bf 01 00 00 00 mov $0x1,%edi - 43ea17: b8 e5 00 00 00 mov $0xe5,%eax - 43ea1c: 0f 05 syscall - 43ea1e: 3d 01 f0 ff ff cmp $0xfffff001,%eax - 43ea23: 48 19 c0 sbb %rax,%rax - 43ea26: 25 6a 10 03 00 and $0x3106a,%eax - 43ea2b: 48 83 e8 01 sub $0x1,%rax - 43ea2f: 48 83 c4 38 add $0x38,%rsp - 43ea33: 5b pop %rbx - 43ea34: 5d pop %rbp - 43ea35: c3 retq - 43ea36: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43ea3d: 00 00 00 - 43ea40: 89 df mov %ebx,%edi - 43ea42: e8 89 f8 ff ff callq 43e2d0 <__cache_sysconf> - 43ea47: 48 83 c4 38 add $0x38,%rsp - 43ea4b: 5b pop %rbx - 43ea4c: 5d pop %rbp - 43ea4d: c3 retq - 43ea4e: 66 90 xchg %ax,%ax - 43ea50: 48 8d 74 24 10 lea 0x10(%rsp),%rsi - 43ea55: bf 03 00 00 00 mov $0x3,%edi - 43ea5a: e8 71 10 00 00 callq 43fad0 <__getrlimit> - 43ea5f: 89 c2 mov %eax,%edx - 43ea61: b8 00 00 02 00 mov $0x20000,%eax - 43ea66: 85 d2 test %edx,%edx - 43ea68: 75 c5 jne 43ea2f <__sysconf+0x11f> - 43ea6a: 48 8b 54 24 10 mov 0x10(%rsp),%rdx - 43ea6f: 48 89 d1 mov %rdx,%rcx - 43ea72: 48 c1 e9 02 shr $0x2,%rcx - 43ea76: 48 81 fa 00 00 08 00 cmp $0x80000,%rdx - 43ea7d: 48 0f 43 c1 cmovae %rcx,%rax - 43ea81: eb ac jmp 43ea2f <__sysconf+0x11f> - 43ea83: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43ea88: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 43ea8f: f7 d8 neg %eax - 43ea91: 83 f8 04 cmp $0x4,%eax - 43ea94: 64 89 02 mov %eax,%fs:(%rdx) - 43ea97: 0f 84 db fe ff ff je 43e978 <__sysconf+0x68> - 43ea9d: 48 c7 c2 ff ff ff ff mov $0xffffffffffffffff,%rdx - 43eaa4: e9 ee fe ff ff jmpq 43e997 <__sysconf+0x87> - 43eaa9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43eab0: 48 8d 74 24 10 lea 0x10(%rsp),%rsi - 43eab5: bf 0b 00 00 00 mov $0xb,%edi - 43eaba: e8 11 10 00 00 callq 43fad0 <__getrlimit> - 43eabf: 85 c0 test %eax,%eax - 43eac1: 75 0d jne 43ead0 <__sysconf+0x1c0> - 43eac3: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 43eac8: e9 62 ff ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eacd: 0f 1f 00 nopl (%rax) - 43ead0: bf e5 40 4a 00 mov $0x4a40e5,%edi - 43ead5: e9 72 fe ff ff jmpq 43e94c <__sysconf+0x3c> - 43eada: b8 ff ff ff 7f mov $0x7fffffff,%eax - 43eadf: e9 4b ff ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eae4: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 43eaeb: e9 3f ff ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eaf0: e8 5b 05 00 00 callq 43f050 <__get_child_max> - 43eaf5: e9 35 ff ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eafa: e8 c1 39 00 00 callq 4424c0 <__getclktck> - 43eaff: 48 98 cltq - 43eb01: e9 29 ff ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eb06: b8 00 00 01 00 mov $0x10000,%eax - 43eb0b: e9 1f ff ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eb10: e8 ab 10 00 00 callq 43fbc0 <__getdtablesize> - 43eb15: 48 98 cltq - 43eb17: e9 13 ff ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eb1c: b8 10 00 00 00 mov $0x10,%eax - 43eb21: e9 09 ff ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eb26: e8 b5 90 02 00 callq 467be0 <__tzname_max> - 43eb2b: 48 89 c2 mov %rax,%rdx - 43eb2e: b8 06 00 00 00 mov $0x6,%eax - 43eb33: 48 83 fa 06 cmp $0x6,%rdx - 43eb37: 0f 8e f2 fe ff ff jle 43ea2f <__sysconf+0x11f> - 43eb3d: e8 9e 90 02 00 callq 467be0 <__tzname_max> - 43eb42: e9 e8 fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eb47: b8 01 00 00 00 mov $0x1,%eax - 43eb4c: e9 de fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eb51: b8 01 00 00 00 mov $0x1,%eax - 43eb56: e9 d4 fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eb5b: b8 69 10 03 00 mov $0x31069,%eax - 43eb60: e9 ca fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eb65: b8 69 10 03 00 mov $0x31069,%eax - 43eb6a: e9 c0 fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eb6f: b8 69 10 03 00 mov $0x31069,%eax - 43eb74: e9 b6 fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eb79: b8 69 10 03 00 mov $0x31069,%eax - 43eb7e: e9 ac fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eb83: b8 69 10 03 00 mov $0x31069,%eax - 43eb88: e9 a2 fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eb8d: b8 69 10 03 00 mov $0x31069,%eax - 43eb92: e9 98 fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eb97: b8 69 10 03 00 mov $0x31069,%eax - 43eb9c: e9 8e fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eba1: b8 69 10 03 00 mov $0x31069,%eax - 43eba6: e9 84 fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ebab: b8 69 10 03 00 mov $0x31069,%eax - 43ebb0: e9 7a fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ebb5: b8 69 10 03 00 mov $0x31069,%eax - 43ebba: e9 70 fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ebbf: b8 69 10 03 00 mov $0x31069,%eax - 43ebc4: e9 66 fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ebc9: b8 69 10 03 00 mov $0x31069,%eax - 43ebce: e9 5c fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ebd3: b8 69 10 03 00 mov $0x31069,%eax - 43ebd8: e9 52 fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ebdd: b8 69 10 03 00 mov $0x31069,%eax - 43ebe2: e9 48 fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ebe7: bf 29 41 4a 00 mov $0x4a4129,%edi - 43ebec: e8 3f fc ff ff callq 43e830 <__sysconf_check_spec> - 43ebf1: e9 39 fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ebf6: b8 01 00 00 00 mov $0x1,%eax - 43ebfb: e9 2f fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ec00: b8 14 00 00 00 mov $0x14,%eax - 43ec05: e9 25 fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ec0a: b8 ff ff ff 7f mov $0x7fffffff,%eax - 43ec0f: e9 1b fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ec14: b8 01 00 00 00 mov $0x1,%eax - 43ec19: e9 11 fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ec1e: b8 00 80 00 00 mov $0x8000,%eax - 43ec23: e9 07 fe ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ec28: b8 69 10 03 00 mov $0x31069,%eax - 43ec2d: e9 fd fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ec32: e8 59 0f 00 00 callq 43fb90 <__getpagesize> - 43ec37: 48 98 cltq - 43ec39: e9 f1 fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ec3e: b8 20 00 00 00 mov $0x20,%eax - 43ec43: e9 e7 fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ec48: bf 29 41 4a 00 mov $0x4a4129,%edi - 43ec4d: e8 de fb ff ff callq 43e830 <__sysconf_check_spec> - 43ec52: e9 d8 fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ec57: b8 ff ff ff 7f mov $0x7fffffff,%eax - 43ec5c: e9 ce fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ec61: bf 1d 41 4a 00 mov $0x4a411d,%edi - 43ec66: e8 c5 fb ff ff callq 43e830 <__sysconf_check_spec> - 43ec6b: e9 bf fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ec70: b8 69 10 03 00 mov $0x31069,%eax - 43ec75: e9 b5 fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ec7a: b8 63 00 00 00 mov $0x63,%eax - 43ec7f: e9 ab fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ec84: b8 00 08 00 00 mov $0x800,%eax - 43ec89: e9 a1 fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ec8e: b8 63 00 00 00 mov $0x63,%eax - 43ec93: e9 97 fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ec98: b8 e8 03 00 00 mov $0x3e8,%eax - 43ec9d: e9 8d fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eca2: b8 ff 00 00 00 mov $0xff,%eax - 43eca7: e9 83 fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ecac: b8 20 00 00 00 mov $0x20,%eax - 43ecb1: e9 79 fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ecb6: b8 00 08 00 00 mov $0x800,%eax - 43ecbb: e9 6f fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ecc0: b8 ff 7f 00 00 mov $0x7fff,%eax - 43ecc5: e9 65 fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ecca: b8 00 08 00 00 mov $0x800,%eax - 43eccf: e9 5b fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ecd4: b8 69 10 03 00 mov $0x31069,%eax - 43ecd9: e9 51 fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ecde: b8 69 10 03 00 mov $0x31069,%eax - 43ece3: e9 47 fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ece8: b8 69 10 03 00 mov $0x31069,%eax - 43eced: e9 3d fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ecf2: b8 69 10 03 00 mov $0x31069,%eax - 43ecf7: e9 33 fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ecfc: b8 69 10 03 00 mov $0x31069,%eax - 43ed01: e9 29 fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ed06: b8 69 10 03 00 mov $0x31069,%eax - 43ed0b: e9 1f fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ed10: b8 69 10 03 00 mov $0x31069,%eax - 43ed15: e9 15 fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ed1a: b8 69 10 03 00 mov $0x31069,%eax - 43ed1f: e9 0b fd ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ed24: bf 1d 41 4a 00 mov $0x4a411d,%edi - 43ed29: e8 02 fb ff ff callq 43e830 <__sysconf_check_spec> - 43ed2e: e9 fc fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ed33: b8 01 00 00 00 mov $0x1,%eax - 43ed38: e9 f2 fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ed3d: b8 69 10 03 00 mov $0x31069,%eax - 43ed42: e9 e8 fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ed47: b8 01 00 00 00 mov $0x1,%eax - 43ed4c: e9 de fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ed51: b8 01 00 00 00 mov $0x1,%eax - 43ed56: e9 d4 fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ed5b: b8 40 00 00 00 mov $0x40,%eax - 43ed60: e9 ca fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ed65: b8 00 04 00 00 mov $0x400,%eax - 43ed6a: e9 c0 fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ed6f: b8 69 10 03 00 mov $0x31069,%eax - 43ed74: e9 b6 fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ed79: b8 01 00 00 00 mov $0x1,%eax - 43ed7e: e9 ac fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ed83: bf 29 41 4a 00 mov $0x4a4129,%edi - 43ed88: e8 a3 fa ff ff callq 43e830 <__sysconf_check_spec> - 43ed8d: e9 9d fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ed92: bf 1d 41 4a 00 mov $0x4a411d,%edi - 43ed97: e8 94 fa ff ff callq 43e830 <__sysconf_check_spec> - 43ed9c: e9 8e fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eda1: b8 69 10 03 00 mov $0x31069,%eax - 43eda6: e9 84 fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43edab: b8 01 00 00 00 mov $0x1,%eax - 43edb0: e9 7a fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43edb5: b8 69 10 03 00 mov $0x31069,%eax - 43edba: e9 70 fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43edbf: b8 69 10 03 00 mov $0x31069,%eax - 43edc4: e9 66 fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43edc9: b8 00 04 00 00 mov $0x400,%eax - 43edce: e9 5c fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43edd3: b8 00 04 00 00 mov $0x400,%eax - 43edd8: e9 52 fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eddd: b8 00 01 00 00 mov $0x100,%eax - 43ede2: e9 48 fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ede7: b8 20 00 00 00 mov $0x20,%eax - 43edec: e9 3e fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43edf1: b8 04 00 00 00 mov $0x4,%eax - 43edf6: e9 34 fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43edfb: b8 00 04 00 00 mov $0x400,%eax - 43ee00: e9 2a fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ee05: b8 00 40 00 00 mov $0x4000,%eax - 43ee0a: e9 20 fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ee0f: b8 69 10 03 00 mov $0x31069,%eax - 43ee14: e9 16 fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ee19: b8 69 10 03 00 mov $0x31069,%eax - 43ee1e: e9 0c fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ee23: b8 69 10 03 00 mov $0x31069,%eax - 43ee28: e9 02 fc ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ee2d: b8 69 10 03 00 mov $0x31069,%eax - 43ee32: e9 f8 fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ee37: b8 69 10 03 00 mov $0x31069,%eax - 43ee3c: e9 ee fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ee41: b8 69 10 03 00 mov $0x31069,%eax - 43ee46: e9 e4 fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ee4b: b8 69 10 03 00 mov $0x31069,%eax - 43ee50: e9 da fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ee55: e8 e6 34 00 00 callq 442340 <__get_nprocs_conf> - 43ee5a: 48 98 cltq - 43ee5c: e9 ce fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ee61: e8 da 31 00 00 callq 442040 <__get_nprocs> - 43ee66: 48 98 cltq - 43ee68: e9 c2 fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ee6d: e8 6e 35 00 00 callq 4423e0 <__get_phys_pages> - 43ee72: e9 b8 fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ee77: e8 d4 35 00 00 callq 442450 <__get_avphys_pages> - 43ee7c: e9 ae fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ee81: b8 ff ff ff 7f mov $0x7fffffff,%eax - 43ee86: e9 a4 fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ee8b: b8 00 20 00 00 mov $0x2000,%eax - 43ee90: e9 9a fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ee95: b8 bc 02 00 00 mov $0x2bc,%eax - 43ee9a: e9 90 fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ee9f: b8 04 00 00 00 mov $0x4,%eax - 43eea4: e9 86 fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eea9: b8 01 00 00 00 mov $0x1,%eax - 43eeae: e9 7c fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eeb3: b8 01 00 00 00 mov $0x1,%eax - 43eeb8: e9 72 fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eebd: b8 01 00 00 00 mov $0x1,%eax - 43eec2: e9 68 fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eec7: b8 01 00 00 00 mov $0x1,%eax - 43eecc: e9 5e fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eed1: b8 69 10 03 00 mov $0x31069,%eax - 43eed6: e9 54 fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eedb: b8 69 10 03 00 mov $0x31069,%eax - 43eee0: e9 4a fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eee5: b8 01 00 00 00 mov $0x1,%eax - 43eeea: e9 40 fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eeef: b8 01 00 00 00 mov $0x1,%eax - 43eef4: e9 36 fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eef9: b8 01 00 00 00 mov $0x1,%eax - 43eefe: e9 2c fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ef03: b8 01 00 00 00 mov $0x1,%eax - 43ef08: e9 22 fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ef0d: b8 08 00 00 00 mov $0x8,%eax - 43ef12: e9 18 fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ef17: b8 7f 00 00 00 mov $0x7f,%eax - 43ef1c: e9 0e fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ef21: 48 c7 c0 80 ff ff ff mov $0xffffffffffffff80,%rax - 43ef28: e9 02 fb ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ef2d: b8 ff ff ff 7f mov $0x7fffffff,%eax - 43ef32: e9 f8 fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ef37: 48 c7 c0 00 00 00 80 mov $0xffffffff80000000,%rax - 43ef3e: e9 ec fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ef43: b8 40 00 00 00 mov $0x40,%eax - 43ef48: e9 e2 fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ef4d: b8 20 00 00 00 mov $0x20,%eax - 43ef52: e9 d8 fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ef57: b8 10 00 00 00 mov $0x10,%eax - 43ef5c: e9 ce fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ef61: b8 14 00 00 00 mov $0x14,%eax - 43ef66: e9 c4 fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ef6b: b8 ff 7f 00 00 mov $0x7fff,%eax - 43ef70: e9 ba fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ef75: b8 7f 00 00 00 mov $0x7f,%eax - 43ef7a: e9 b0 fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ef7f: 48 c7 c0 80 ff ff ff mov $0xffffffffffffff80,%rax - 43ef86: e9 a4 fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ef8b: b8 ff 7f 00 00 mov $0x7fff,%eax - 43ef90: e9 9a fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43ef95: 48 c7 c0 00 80 ff ff mov $0xffffffffffff8000,%rax - 43ef9c: e9 8e fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43efa1: b8 ff 00 00 00 mov $0xff,%eax - 43efa6: e9 84 fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43efab: b8 ff ff ff ff mov $0xffffffff,%eax - 43efb0: e9 7a fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43efb5: b8 69 10 03 00 mov $0x31069,%eax - 43efba: e9 70 fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43efbf: b8 ff ff 00 00 mov $0xffff,%eax - 43efc4: e9 66 fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43efc9: b8 00 10 00 00 mov $0x1000,%eax - 43efce: e9 5c fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43efd3: b8 00 08 00 00 mov $0x800,%eax - 43efd8: e9 52 fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43efdd: b8 ff ff ff 7f mov $0x7fffffff,%eax - 43efe2: e9 48 fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43efe7: b8 ff ff ff 7f mov $0x7fffffff,%eax - 43efec: e9 3e fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43eff1: b8 ff ff ff 7f mov $0x7fffffff,%eax - 43eff6: e9 34 fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43effb: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 43f002: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) - 43f009: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 43f010: e9 1a fa ff ff jmpq 43ea2f <__sysconf+0x11f> - 43f015: 0f 1f 00 nopl (%rax) - 43f018: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 43f01f: f7 d8 neg %eax - 43f021: 64 89 02 mov %eax,%fs:(%rdx) - 43f024: e9 af f9 ff ff jmpq 43e9d8 <__sysconf+0xc8> - 43f029: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - -000000000043f030 <__sched_yield>: - 43f030: b8 18 00 00 00 mov $0x18,%eax - 43f035: 0f 05 syscall - 43f037: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax - 43f03d: 0f 83 0d 51 00 00 jae 444150 <__syscall_error> - 43f043: c3 retq - 43f044: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43f04b: 00 00 00 - 43f04e: 66 90 xchg %ax,%ax - -000000000043f050 <__get_child_max>: - 43f050: 48 83 ec 18 sub $0x18,%rsp - 43f054: bf 06 00 00 00 mov $0x6,%edi - 43f059: 48 89 e6 mov %rsp,%rsi - 43f05c: e8 6f 0a 00 00 callq 43fad0 <__getrlimit> - 43f061: 85 c0 test %eax,%eax - 43f063: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 43f06a: 48 0f 44 04 24 cmove (%rsp),%rax - 43f06f: 48 83 c4 18 add $0x18,%rsp - 43f073: c3 retq - 43f074: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43f07b: 00 00 00 - 43f07e: 66 90 xchg %ax,%ax - -000000000043f080 <__xstat>: - 43f080: 83 ff 01 cmp $0x1,%edi - 43f083: 48 89 f0 mov %rsi,%rax - 43f086: 77 30 ja 43f0b8 <__xstat+0x38> - 43f088: 48 89 c7 mov %rax,%rdi - 43f08b: 48 89 d6 mov %rdx,%rsi - 43f08e: b8 04 00 00 00 mov $0x4,%eax - 43f093: 0f 05 syscall - 43f095: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 43f09b: 77 03 ja 43f0a0 <__xstat+0x20> - 43f09d: f3 c3 repz retq - 43f09f: 90 nop - 43f0a0: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 43f0a7: f7 d8 neg %eax - 43f0a9: 64 89 02 mov %eax,%fs:(%rdx) - 43f0ac: b8 ff ff ff ff mov $0xffffffff,%eax - 43f0b1: c3 retq - 43f0b2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43f0b8: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 43f0bf: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) - 43f0c6: b8 ff ff ff ff mov $0xffffffff,%eax - 43f0cb: c3 retq - 43f0cc: 0f 1f 40 00 nopl 0x0(%rax) - -000000000043f0d0 <__fxstat>: - 43f0d0: 83 ff 01 cmp $0x1,%edi - 43f0d3: 89 f0 mov %esi,%eax - 43f0d5: 77 31 ja 43f108 <__fxstat+0x38> - 43f0d7: 48 63 f8 movslq %eax,%rdi - 43f0da: 48 89 d6 mov %rdx,%rsi - 43f0dd: b8 05 00 00 00 mov $0x5,%eax - 43f0e2: 0f 05 syscall - 43f0e4: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 43f0ea: 77 04 ja 43f0f0 <__fxstat+0x20> - 43f0ec: f3 c3 repz retq - 43f0ee: 66 90 xchg %ax,%ax - 43f0f0: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 43f0f7: f7 d8 neg %eax - 43f0f9: 64 89 02 mov %eax,%fs:(%rdx) - 43f0fc: b8 ff ff ff ff mov $0xffffffff,%eax - 43f101: c3 retq - 43f102: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43f108: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 43f10f: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) - 43f116: b8 ff ff ff ff mov $0xffffffff,%eax - 43f11b: c3 retq - 43f11c: 0f 1f 40 00 nopl 0x0(%rax) - -000000000043f120 <__libc_open>: - 43f120: 83 3d 95 e0 28 00 00 cmpl $0x0,0x28e095(%rip) # 6cd1bc <__libc_multiple_threads> - 43f127: 75 14 jne 43f13d <__open_nocancel+0x14> - -000000000043f129 <__open_nocancel>: - 43f129: b8 02 00 00 00 mov $0x2,%eax - 43f12e: 0f 05 syscall - 43f130: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax - 43f136: 0f 83 14 50 00 00 jae 444150 <__syscall_error> - 43f13c: c3 retq - 43f13d: 48 83 ec 08 sub $0x8,%rsp - 43f141: e8 da 34 00 00 callq 442620 <__libc_enable_asynccancel> - 43f146: 48 89 04 24 mov %rax,(%rsp) - 43f14a: b8 02 00 00 00 mov $0x2,%eax - 43f14f: 0f 05 syscall - 43f151: 48 8b 3c 24 mov (%rsp),%rdi - 43f155: 48 89 c2 mov %rax,%rdx - 43f158: e8 23 35 00 00 callq 442680 <__libc_disable_asynccancel> - 43f15d: 48 89 d0 mov %rdx,%rax - 43f160: 48 83 c4 08 add $0x8,%rsp - 43f164: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax - 43f16a: 0f 83 e0 4f 00 00 jae 444150 <__syscall_error> - 43f170: c3 retq - 43f171: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43f178: 00 00 00 - 43f17b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -000000000043f180 <__libc_read>: - 43f180: 83 3d 35 e0 28 00 00 cmpl $0x0,0x28e035(%rip) # 6cd1bc <__libc_multiple_threads> - 43f187: 75 14 jne 43f19d <__read_nocancel+0x14> - -000000000043f189 <__read_nocancel>: - 43f189: b8 00 00 00 00 mov $0x0,%eax - 43f18e: 0f 05 syscall - 43f190: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax - 43f196: 0f 83 b4 4f 00 00 jae 444150 <__syscall_error> - 43f19c: c3 retq - 43f19d: 48 83 ec 08 sub $0x8,%rsp - 43f1a1: e8 7a 34 00 00 callq 442620 <__libc_enable_asynccancel> - 43f1a6: 48 89 04 24 mov %rax,(%rsp) - 43f1aa: b8 00 00 00 00 mov $0x0,%eax - 43f1af: 0f 05 syscall - 43f1b1: 48 8b 3c 24 mov (%rsp),%rdi - 43f1b5: 48 89 c2 mov %rax,%rdx - 43f1b8: e8 c3 34 00 00 callq 442680 <__libc_disable_asynccancel> - 43f1bd: 48 89 d0 mov %rdx,%rax - 43f1c0: 48 83 c4 08 add $0x8,%rsp - 43f1c4: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax - 43f1ca: 0f 83 80 4f 00 00 jae 444150 <__syscall_error> - 43f1d0: c3 retq - 43f1d1: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43f1d8: 00 00 00 - 43f1db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -000000000043f1e0 <__libc_write>: - 43f1e0: 83 3d d5 df 28 00 00 cmpl $0x0,0x28dfd5(%rip) # 6cd1bc <__libc_multiple_threads> - 43f1e7: 75 14 jne 43f1fd <__write_nocancel+0x14> - -000000000043f1e9 <__write_nocancel>: - 43f1e9: b8 01 00 00 00 mov $0x1,%eax - 43f1ee: 0f 05 syscall - 43f1f0: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax - 43f1f6: 0f 83 54 4f 00 00 jae 444150 <__syscall_error> - 43f1fc: c3 retq - 43f1fd: 48 83 ec 08 sub $0x8,%rsp - 43f201: e8 1a 34 00 00 callq 442620 <__libc_enable_asynccancel> - 43f206: 48 89 04 24 mov %rax,(%rsp) - 43f20a: b8 01 00 00 00 mov $0x1,%eax - 43f20f: 0f 05 syscall - 43f211: 48 8b 3c 24 mov (%rsp),%rdi - 43f215: 48 89 c2 mov %rax,%rdx - 43f218: e8 63 34 00 00 callq 442680 <__libc_disable_asynccancel> - 43f21d: 48 89 d0 mov %rdx,%rax - 43f220: 48 83 c4 08 add $0x8,%rsp - 43f224: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax - 43f22a: 0f 83 20 4f 00 00 jae 444150 <__syscall_error> - 43f230: c3 retq - 43f231: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43f238: 00 00 00 - 43f23b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -000000000043f240 <__fcntl_nocancel>: - 43f240: 48 8d 44 24 08 lea 0x8(%rsp),%rax - 43f245: 83 fe 09 cmp $0x9,%esi - 43f248: 48 89 54 24 d8 mov %rdx,-0x28(%rsp) - 43f24d: c7 44 24 b0 10 00 00 movl $0x10,-0x50(%rsp) - 43f254: 00 - 43f255: 48 89 44 24 b8 mov %rax,-0x48(%rsp) - 43f25a: 48 8d 44 24 c8 lea -0x38(%rsp),%rax - 43f25f: 48 89 44 24 c0 mov %rax,-0x40(%rsp) - 43f264: 74 1a je 43f280 <__fcntl_nocancel+0x40> - 43f266: 48 63 f6 movslq %esi,%rsi - 43f269: 48 63 ff movslq %edi,%rdi - 43f26c: b8 48 00 00 00 mov $0x48,%eax - 43f271: 0f 05 syscall - 43f273: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 43f279: 77 35 ja 43f2b0 <__fcntl_nocancel+0x70> - 43f27b: f3 c3 repz retq - 43f27d: 0f 1f 00 nopl (%rax) - 43f280: 48 8d 54 24 a8 lea -0x58(%rsp),%rdx - 43f285: be 10 00 00 00 mov $0x10,%esi - 43f28a: 48 63 ff movslq %edi,%rdi - 43f28d: b8 48 00 00 00 mov $0x48,%eax - 43f292: 0f 05 syscall - 43f294: 3d 00 f0 ff ff cmp $0xfffff000,%eax - 43f299: 77 15 ja 43f2b0 <__fcntl_nocancel+0x70> - 43f29b: 8b 44 24 ac mov -0x54(%rsp),%eax - 43f29f: 89 c2 mov %eax,%edx - 43f2a1: f7 da neg %edx - 43f2a3: 83 7c 24 a8 02 cmpl $0x2,-0x58(%rsp) - 43f2a8: 0f 44 c2 cmove %edx,%eax - 43f2ab: c3 retq - 43f2ac: 0f 1f 40 00 nopl 0x0(%rax) - 43f2b0: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 43f2b7: f7 d8 neg %eax - 43f2b9: 64 89 02 mov %eax,%fs:(%rdx) - 43f2bc: b8 ff ff ff ff mov $0xffffffff,%eax - 43f2c1: c3 retq - 43f2c2: 0f 1f 40 00 nopl 0x0(%rax) - 43f2c6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43f2cd: 00 00 00 - -000000000043f2d0 <__libc_fcntl>: - 43f2d0: 53 push %rbx - 43f2d1: 48 83 ec 60 sub $0x60,%rsp - 43f2d5: 48 8d 44 24 70 lea 0x70(%rsp),%rax - 43f2da: 48 89 54 24 40 mov %rdx,0x40(%rsp) - 43f2df: c7 44 24 18 10 00 00 movl $0x10,0x18(%rsp) - 43f2e6: 00 - 43f2e7: 48 89 44 24 20 mov %rax,0x20(%rsp) - 43f2ec: 48 8d 44 24 30 lea 0x30(%rsp),%rax - 43f2f1: 48 89 44 24 28 mov %rax,0x28(%rsp) - 43f2f6: 8b 05 c0 de 28 00 mov 0x28dec0(%rip),%eax # 6cd1bc <__libc_multiple_threads> - 43f2fc: 85 c0 test %eax,%eax - 43f2fe: 74 05 je 43f305 <__libc_fcntl+0x35> - 43f300: 83 fe 07 cmp $0x7,%esi - 43f303: 74 73 je 43f378 <__libc_fcntl+0xa8> - 43f305: 83 fe 09 cmp $0x9,%esi - 43f308: 74 1e je 43f328 <__libc_fcntl+0x58> - 43f30a: 48 63 f6 movslq %esi,%rsi - 43f30d: 48 63 ff movslq %edi,%rdi - 43f310: b8 48 00 00 00 mov $0x48,%eax - 43f315: 0f 05 syscall - 43f317: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 43f31d: 77 41 ja 43f360 <__libc_fcntl+0x90> - 43f31f: 48 83 c4 60 add $0x60,%rsp - 43f323: 5b pop %rbx - 43f324: c3 retq - 43f325: 0f 1f 00 nopl (%rax) - 43f328: 48 8d 54 24 10 lea 0x10(%rsp),%rdx - 43f32d: be 10 00 00 00 mov $0x10,%esi - 43f332: 48 63 ff movslq %edi,%rdi - 43f335: b8 48 00 00 00 mov $0x48,%eax - 43f33a: 0f 05 syscall - 43f33c: 3d 00 f0 ff ff cmp $0xfffff000,%eax - 43f341: 77 1d ja 43f360 <__libc_fcntl+0x90> - 43f343: 8b 44 24 14 mov 0x14(%rsp),%eax - 43f347: 89 c2 mov %eax,%edx - 43f349: f7 da neg %edx - 43f34b: 83 7c 24 10 02 cmpl $0x2,0x10(%rsp) - 43f350: 0f 44 c2 cmove %edx,%eax - 43f353: 48 83 c4 60 add $0x60,%rsp - 43f357: 5b pop %rbx - 43f358: c3 retq - 43f359: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43f360: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 43f367: f7 d8 neg %eax - 43f369: 64 89 02 mov %eax,%fs:(%rdx) - 43f36c: b8 ff ff ff ff mov $0xffffffff,%eax - 43f371: eb ac jmp 43f31f <__libc_fcntl+0x4f> - 43f373: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43f378: 89 fb mov %edi,%ebx - 43f37a: 48 89 54 24 08 mov %rdx,0x8(%rsp) - 43f37f: e8 9c 32 00 00 callq 442620 <__libc_enable_asynccancel> - 43f384: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 43f389: 41 89 c0 mov %eax,%r8d - 43f38c: be 07 00 00 00 mov $0x7,%esi - 43f391: 48 63 fb movslq %ebx,%rdi - 43f394: b8 48 00 00 00 mov $0x48,%eax - 43f399: 0f 05 syscall - 43f39b: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 43f3a1: 77 15 ja 43f3b8 <__libc_fcntl+0xe8> - 43f3a3: 44 89 c7 mov %r8d,%edi - 43f3a6: 89 44 24 08 mov %eax,0x8(%rsp) - 43f3aa: e8 d1 32 00 00 callq 442680 <__libc_disable_asynccancel> - 43f3af: 8b 44 24 08 mov 0x8(%rsp),%eax - 43f3b3: e9 67 ff ff ff jmpq 43f31f <__libc_fcntl+0x4f> - 43f3b8: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 43f3bf: f7 d8 neg %eax - 43f3c1: 64 89 02 mov %eax,%fs:(%rdx) - 43f3c4: b8 ff ff ff ff mov $0xffffffff,%eax - 43f3c9: eb d8 jmp 43f3a3 <__libc_fcntl+0xd3> - 43f3cb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -000000000043f3d0 <__getcwd>: - 43f3d0: 41 57 push %r15 - 43f3d2: 41 56 push %r14 - 43f3d4: 49 89 f6 mov %rsi,%r14 - 43f3d7: 41 55 push %r13 - 43f3d9: 41 54 push %r12 - 43f3db: 55 push %rbp - 43f3dc: 53 push %rbx - 43f3dd: 48 89 fb mov %rdi,%rbx - 43f3e0: 48 81 ec f8 00 00 00 sub $0xf8,%rsp - 43f3e7: 48 85 f6 test %rsi,%rsi - 43f3ea: 75 5c jne 43f448 <__getcwd+0x78> - 43f3ec: 48 85 ff test %rdi,%rdi - 43f3ef: 0f 85 2b 04 00 00 jne 43f820 <__getcwd+0x450> - 43f3f5: e8 96 07 00 00 callq 43fb90 <__getpagesize> - 43f3fa: be 00 10 00 00 mov $0x1000,%esi - 43f3ff: 3d 00 10 00 00 cmp $0x1000,%eax - 43f404: 0f 4d f0 cmovge %eax,%esi - 43f407: 48 63 f6 movslq %esi,%rsi - 43f40a: 48 89 f7 mov %rsi,%rdi - 43f40d: 48 89 74 24 10 mov %rsi,0x10(%rsp) - 43f412: e8 f9 e5 fd ff callq 41da10 <__libc_malloc> - 43f417: 48 85 c0 test %rax,%rax - 43f41a: 48 89 44 24 08 mov %rax,0x8(%rsp) - 43f41f: 48 8b 74 24 10 mov 0x10(%rsp),%rsi - 43f424: 75 2c jne 43f452 <__getcwd+0x82> - 43f426: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43f42d: 00 00 00 - 43f430: 31 c0 xor %eax,%eax - 43f432: 48 81 c4 f8 00 00 00 add $0xf8,%rsp - 43f439: 5b pop %rbx - 43f43a: 5d pop %rbp - 43f43b: 41 5c pop %r12 - 43f43d: 41 5d pop %r13 - 43f43f: 41 5e pop %r14 - 43f441: 41 5f pop %r15 - 43f443: c3 retq - 43f444: 0f 1f 40 00 nopl 0x0(%rax) - 43f448: 48 85 ff test %rdi,%rdi - 43f44b: 74 bd je 43f40a <__getcwd+0x3a> - 43f44d: 48 89 7c 24 08 mov %rdi,0x8(%rsp) - 43f452: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi - 43f457: b8 4f 00 00 00 mov $0x4f,%eax - 43f45c: 0f 05 syscall - 43f45e: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 43f464: 0f 87 9d 04 00 00 ja 43f907 <__getcwd+0x537> - 43f46a: 83 f8 00 cmp $0x0,%eax - 43f46d: 0f 8e 3d 04 00 00 jle 43f8b0 <__getcwd+0x4e0> - 43f473: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 43f478: 80 3a 2f cmpb $0x2f,(%rdx) - 43f47b: 0f 84 b7 03 00 00 je 43f838 <__getcwd+0x468> - 43f481: 48 c7 c5 d0 ff ff ff mov $0xffffffffffffffd0,%rbp - 43f488: 48 85 db test %rbx,%rbx - 43f48b: 0f 94 44 24 43 sete 0x43(%rsp) - 43f490: 4d 85 f6 test %r14,%r14 - 43f493: 0f b6 44 24 43 movzbl 0x43(%rsp),%eax - 43f498: 75 08 jne 43f4a2 <__getcwd+0xd2> - 43f49a: 84 c0 test %al,%al - 43f49c: 0f 85 c6 03 00 00 jne 43f868 <__getcwd+0x498> - 43f4a2: 4d 85 f6 test %r14,%r14 - 43f4a5: 0f 84 45 04 00 00 je 43f8f0 <__getcwd+0x520> - 43f4ab: 64 8b 45 00 mov %fs:0x0(%rbp),%eax - 43f4af: 4c 89 74 24 28 mov %r14,0x28(%rsp) - 43f4b4: 89 44 24 44 mov %eax,0x44(%rsp) - 43f4b8: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 43f4bd: 48 89 44 24 20 mov %rax,0x20(%rsp) - 43f4c2: 48 89 c3 mov %rax,%rbx - 43f4c5: 48 03 5c 24 28 add 0x28(%rsp),%rbx - 43f4ca: 48 8d 54 24 60 lea 0x60(%rsp),%rdx - 43f4cf: be f1 48 4a 00 mov $0x4a48f1,%esi - 43f4d4: bf 01 00 00 00 mov $0x1,%edi - 43f4d9: 48 8d 43 ff lea -0x1(%rbx),%rax - 43f4dd: c6 43 ff 00 movb $0x0,-0x1(%rbx) - 43f4e1: 48 89 44 24 38 mov %rax,0x38(%rsp) - 43f4e6: e8 55 b4 02 00 callq 46a940 <__lxstat> - 43f4eb: 85 c0 test %eax,%eax - 43f4ed: 0f 88 23 04 00 00 js 43f916 <__getcwd+0x546> - 43f4f3: 48 8b 44 24 68 mov 0x68(%rsp),%rax - 43f4f8: 48 8d 54 24 60 lea 0x60(%rsp),%rdx - 43f4fd: be ae 48 4b 00 mov $0x4b48ae,%esi - 43f502: bf 01 00 00 00 mov $0x1,%edi - 43f507: 4c 8b 7c 24 60 mov 0x60(%rsp),%r15 - 43f50c: 49 89 c5 mov %rax,%r13 - 43f50f: 48 89 44 24 18 mov %rax,0x18(%rsp) - 43f514: e8 27 b4 02 00 callq 46a940 <__lxstat> - 43f519: 85 c0 test %eax,%eax - 43f51b: 0f 88 f5 03 00 00 js 43f916 <__getcwd+0x546> - 43f521: 48 8b 44 24 60 mov 0x60(%rsp),%rax - 43f526: 48 89 c1 mov %rax,%rcx - 43f529: 48 89 44 24 48 mov %rax,0x48(%rsp) - 43f52e: 48 8b 44 24 68 mov 0x68(%rsp),%rax - 43f533: 48 89 c2 mov %rax,%rdx - 43f536: 48 89 44 24 50 mov %rax,0x50(%rsp) - 43f53b: 49 39 d5 cmp %rdx,%r13 - 43f53e: 75 09 jne 43f549 <__getcwd+0x179> - 43f540: 49 39 cf cmp %rcx,%r15 - 43f543: 0f 84 00 04 00 00 je 43f949 <__getcwd+0x579> - 43f549: ba 00 00 08 00 mov $0x80000,%edx - 43f54e: be f0 48 4a 00 mov $0x4a48f0,%esi - 43f553: 48 c7 c7 9c ff ff ff mov $0xffffffffffffff9c,%rdi - 43f55a: b8 01 01 00 00 mov $0x101,%eax - 43f55f: 0f 05 syscall - 43f561: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 43f567: 0f 87 44 04 00 00 ja 43f9b1 <__getcwd+0x5e1> - 43f56d: 85 c0 test %eax,%eax - 43f56f: 89 44 24 10 mov %eax,0x10(%rsp) - 43f573: 0f 88 19 05 00 00 js 43fa92 <__getcwd+0x6c2> - 43f579: 45 31 e4 xor %r12d,%r12d - 43f57c: 4c 89 74 24 30 mov %r14,0x30(%rsp) - 43f581: 89 c6 mov %eax,%esi - 43f583: 48 8d 54 24 60 lea 0x60(%rsp),%rdx - 43f588: bf 01 00 00 00 mov $0x1,%edi - 43f58d: e8 3e fb ff ff callq 43f0d0 <__fxstat> - 43f592: 85 c0 test %eax,%eax - 43f594: 0f 88 75 04 00 00 js 43fa0f <__getcwd+0x63f> - 43f59a: 4d 85 e4 test %r12,%r12 - 43f59d: 74 10 je 43f5af <__getcwd+0x1df> - 43f59f: 4c 89 e7 mov %r12,%rdi - 43f5a2: e8 09 b0 02 00 callq 46a5b0 <__closedir> - 43f5a7: 85 c0 test %eax,%eax - 43f5a9: 0f 85 50 04 00 00 jne 43f9ff <__getcwd+0x62f> - 43f5af: 48 8b 44 24 68 mov 0x68(%rsp),%rax - 43f5b4: 8b 7c 24 10 mov 0x10(%rsp),%edi - 43f5b8: 4c 8b 74 24 60 mov 0x60(%rsp),%r14 - 43f5bd: 48 89 44 24 58 mov %rax,0x58(%rsp) - 43f5c2: e8 79 b2 02 00 callq 46a840 <__fdopendir> - 43f5c7: 48 85 c0 test %rax,%rax - 43f5ca: 49 89 c4 mov %rax,%r12 - 43f5cd: 75 2d jne 43f5fc <__getcwd+0x22c> - 43f5cf: e9 2b 04 00 00 jmpq 43f9ff <__getcwd+0x62f> - 43f5d4: 0f 1f 40 00 nopl 0x0(%rax) - 43f5d8: f6 40 12 fb testb $0xfb,0x12(%rax) - 43f5dc: 75 24 jne 43f602 <__getcwd+0x232> - 43f5de: 80 78 13 2e cmpb $0x2e,0x13(%rax) - 43f5e2: 0f 84 b0 01 00 00 je 43f798 <__getcwd+0x3c8> - 43f5e8: 4d 39 f7 cmp %r14,%r15 - 43f5eb: 75 53 jne 43f640 <__getcwd+0x270> - 43f5ed: 45 84 ed test %r13b,%r13b - 43f5f0: 74 4e je 43f640 <__getcwd+0x270> - 43f5f2: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx - 43f5f7: 48 3b 08 cmp (%rax),%rcx - 43f5fa: 74 44 je 43f640 <__getcwd+0x270> - 43f5fc: 41 bd 01 00 00 00 mov $0x1,%r13d - 43f602: 4c 89 e7 mov %r12,%rdi - 43f605: 64 c7 45 00 00 00 00 movl $0x0,%fs:0x0(%rbp) - 43f60c: 00 - 43f60d: e8 fe af 02 00 callq 46a610 <__readdir> - 43f612: 48 85 c0 test %rax,%rax - 43f615: 75 c1 jne 43f5d8 <__getcwd+0x208> - 43f617: 64 8b 45 00 mov %fs:0x0(%rbp),%eax - 43f61b: 85 c0 test %eax,%eax - 43f61d: 0f 85 82 03 00 00 jne 43f9a5 <__getcwd+0x5d5> - 43f623: 45 84 ed test %r13b,%r13b - 43f626: 0f 84 8c 01 00 00 je 43f7b8 <__getcwd+0x3e8> - 43f62c: 4c 89 e7 mov %r12,%rdi - 43f62f: 45 31 ed xor %r13d,%r13d - 43f632: e8 d9 b0 02 00 callq 46a710 <__rewinddir> - 43f637: eb c9 jmp 43f602 <__getcwd+0x232> - 43f639: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43f640: 48 8d 58 13 lea 0x13(%rax),%rbx - 43f644: 8b 74 24 10 mov 0x10(%rsp),%esi - 43f648: 48 8d 4c 24 60 lea 0x60(%rsp),%rcx - 43f64d: 41 b8 00 01 00 00 mov $0x100,%r8d - 43f653: bf 01 00 00 00 mov $0x1,%edi - 43f658: 48 89 da mov %rbx,%rdx - 43f65b: e8 30 b3 02 00 callq 46a990 <__GI___fxstatat64> - 43f660: 85 c0 test %eax,%eax - 43f662: 78 9e js 43f602 <__getcwd+0x232> - 43f664: 8b 44 24 78 mov 0x78(%rsp),%eax - 43f668: 25 00 f0 00 00 and $0xf000,%eax - 43f66d: 3d 00 40 00 00 cmp $0x4000,%eax - 43f672: 75 8e jne 43f602 <__getcwd+0x232> - 43f674: 4c 3b 7c 24 60 cmp 0x60(%rsp),%r15 - 43f679: 75 87 jne 43f602 <__getcwd+0x232> - 43f67b: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 43f680: 48 3b 44 24 68 cmp 0x68(%rsp),%rax - 43f685: 0f 85 77 ff ff ff jne 43f602 <__getcwd+0x232> - 43f68b: 48 89 df mov %rbx,%rdi - 43f68e: e8 bd 3f fe ff callq 423650 - 43f693: 4c 8b 44 24 38 mov 0x38(%rsp),%r8 - 43f698: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi - 43f69d: 49 89 c7 mov %rax,%r15 - 43f6a0: 49 29 f8 sub %rdi,%r8 - 43f6a3: 4d 39 c7 cmp %r8,%r15 - 43f6a6: 4c 89 44 24 18 mov %r8,0x18(%rsp) - 43f6ab: 72 64 jb 43f711 <__getcwd+0x341> - 43f6ad: 48 83 7c 24 30 00 cmpq $0x0,0x30(%rsp) - 43f6b3: 0f 85 fd 03 00 00 jne 43fab6 <__getcwd+0x6e6> - 43f6b9: 48 8b 44 24 28 mov 0x28(%rsp),%rax - 43f6be: 49 39 c7 cmp %rax,%r15 - 43f6c1: 49 0f 43 c7 cmovae %r15,%rax - 43f6c5: 49 89 c5 mov %rax,%r13 - 43f6c8: 4d 01 ed add %r13,%r13 - 43f6cb: 4c 89 ee mov %r13,%rsi - 43f6ce: e8 9d e8 fd ff callq 41df70 <__libc_realloc> - 43f6d3: 48 85 c0 test %rax,%rax - 43f6d6: 4c 8b 44 24 18 mov 0x18(%rsp),%r8 - 43f6db: 0f 84 c7 03 00 00 je 43faa8 <__getcwd+0x6d8> - 43f6e1: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 43f6e6: 48 03 54 24 28 add 0x28(%rsp),%rdx - 43f6eb: 4c 89 ef mov %r13,%rdi - 43f6ee: 48 2b 54 24 38 sub 0x38(%rsp),%rdx - 43f6f3: 4a 8d 34 00 lea (%rax,%r8,1),%rsi - 43f6f7: 48 89 44 24 08 mov %rax,0x8(%rsp) - 43f6fc: 48 29 d7 sub %rdx,%rdi - 43f6ff: 48 01 c7 add %rax,%rdi - 43f702: e8 19 c9 fe ff callq 42c020 - 43f707: 4c 89 6c 24 28 mov %r13,0x28(%rsp) - 43f70c: 48 89 44 24 38 mov %rax,0x38(%rsp) - 43f711: 48 8b 4c 24 38 mov 0x38(%rsp),%rcx - 43f716: 4c 89 fa mov %r15,%rdx - 43f719: 48 89 de mov %rbx,%rsi - 43f71c: 4c 29 f9 sub %r15,%rcx - 43f71f: 48 89 cf mov %rcx,%rdi - 43f722: e8 f9 c8 fe ff callq 42c020 - 43f727: 4c 39 74 24 48 cmp %r14,0x48(%rsp) - 43f72c: 48 89 c1 mov %rax,%rcx - 43f72f: 48 8d 40 ff lea -0x1(%rax),%rax - 43f733: c6 41 ff 2f movb $0x2f,-0x1(%rcx) - 43f737: 48 89 44 24 38 mov %rax,0x38(%rsp) - 43f73c: 75 10 jne 43f74e <__getcwd+0x37e> - 43f73e: 48 8b 54 24 58 mov 0x58(%rsp),%rdx - 43f743: 48 39 54 24 50 cmp %rdx,0x50(%rsp) - 43f748: 0f 84 dc 01 00 00 je 43f92a <__getcwd+0x55a> - 43f74e: ba 00 00 08 00 mov $0x80000,%edx - 43f753: be f0 48 4a 00 mov $0x4a48f0,%esi - 43f758: 48 63 7c 24 10 movslq 0x10(%rsp),%rdi - 43f75d: b8 01 01 00 00 mov $0x101,%eax - 43f762: 0f 05 syscall - 43f764: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 43f76a: 0f 87 05 03 00 00 ja 43fa75 <__getcwd+0x6a5> - 43f770: 85 c0 test %eax,%eax - 43f772: 89 44 24 10 mov %eax,0x10(%rsp) - 43f776: 0f 88 e8 02 00 00 js 43fa64 <__getcwd+0x694> - 43f77c: 48 8b 44 24 58 mov 0x58(%rsp),%rax - 43f781: 4d 89 f7 mov %r14,%r15 - 43f784: 8b 74 24 10 mov 0x10(%rsp),%esi - 43f788: 48 89 44 24 18 mov %rax,0x18(%rsp) - 43f78d: e9 f1 fd ff ff jmpq 43f583 <__getcwd+0x1b3> - 43f792: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43f798: 80 78 14 00 cmpb $0x0,0x14(%rax) - 43f79c: 0f 84 60 fe ff ff je 43f602 <__getcwd+0x232> - 43f7a2: 66 83 78 14 2e cmpw $0x2e,0x14(%rax) - 43f7a7: 0f 85 3b fe ff ff jne 43f5e8 <__getcwd+0x218> - 43f7ad: e9 50 fe ff ff jmpq 43f602 <__getcwd+0x232> - 43f7b2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 43f7b8: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 - 43f7bd: 64 c7 45 00 02 00 00 movl $0x2,%fs:0x0(%rbp) - 43f7c4: 00 - 43f7c5: bb 02 00 00 00 mov $0x2,%ebx - 43f7ca: 45 31 ed xor %r13d,%r13d - 43f7cd: 4c 89 e7 mov %r12,%rdi - 43f7d0: e8 db ad 02 00 callq 46a5b0 <__closedir> - 43f7d5: 45 84 ed test %r13b,%r13b - 43f7d8: 74 0c je 43f7e6 <__getcwd+0x416> - 43f7da: 48 63 7c 24 10 movslq 0x10(%rsp),%rdi - 43f7df: b8 03 00 00 00 mov $0x3,%eax - 43f7e4: 0f 05 syscall - 43f7e6: 48 83 7c 24 20 00 cmpq $0x0,0x20(%rsp) - 43f7ec: 0f 84 fe 01 00 00 je 43f9f0 <__getcwd+0x620> - 43f7f2: 64 89 5d 00 mov %ebx,%fs:0x0(%rbp) - 43f7f6: 4d 85 f6 test %r14,%r14 - 43f7f9: 0f 84 31 fc ff ff je 43f430 <__getcwd+0x60> - 43f7ff: 80 7c 24 43 00 cmpb $0x0,0x43(%rsp) - 43f804: 0f 84 26 fc ff ff je 43f430 <__getcwd+0x60> - 43f80a: 48 8b 7c 24 20 mov 0x20(%rsp),%rdi - 43f80f: e8 9c e5 fd ff callq 41ddb0 <__cfree> - 43f814: e9 17 fc ff ff jmpq 43f430 <__getcwd+0x60> - 43f819: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43f820: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 43f827: 64 c7 00 16 00 00 00 movl $0x16,%fs:(%rax) - 43f82e: 31 c0 xor %eax,%eax - 43f830: e9 fd fb ff ff jmpq 43f432 <__getcwd+0x62> - 43f835: 0f 1f 00 nopl (%rax) - 43f838: 48 85 db test %rbx,%rbx - 43f83b: 75 13 jne 43f850 <__getcwd+0x480> - 43f83d: 4d 85 f6 test %r14,%r14 - 43f840: 75 0e jne 43f850 <__getcwd+0x480> - 43f842: 48 89 d7 mov %rdx,%rdi - 43f845: 48 63 f0 movslq %eax,%rsi - 43f848: e8 23 e7 fd ff callq 41df70 <__libc_realloc> - 43f84d: 48 89 c3 mov %rax,%rbx - 43f850: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 43f855: 48 85 db test %rbx,%rbx - 43f858: 48 0f 45 c3 cmovne %rbx,%rax - 43f85c: e9 d1 fb ff ff jmpq 43f432 <__getcwd+0x62> - 43f861: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43f868: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi - 43f86d: e8 3e e5 fd ff callq 41ddb0 <__cfree> - 43f872: 64 8b 45 00 mov %fs:0x0(%rbp),%eax - 43f876: bf 01 10 00 00 mov $0x1001,%edi - 43f87b: 89 44 24 44 mov %eax,0x44(%rsp) - 43f87f: e8 8c e1 fd ff callq 41da10 <__libc_malloc> - 43f884: 48 85 c0 test %rax,%rax - 43f887: 48 89 44 24 08 mov %rax,0x8(%rsp) - 43f88c: 0f 84 9e 01 00 00 je 43fa30 <__getcwd+0x660> - 43f892: 48 c7 44 24 28 01 10 movq $0x1001,0x28(%rsp) - 43f899: 00 00 - 43f89b: 48 c7 44 24 20 00 00 movq $0x0,0x20(%rsp) - 43f8a2: 00 00 - 43f8a4: 48 89 c3 mov %rax,%rbx - 43f8a7: e9 19 fc ff ff jmpq 43f4c5 <__getcwd+0xf5> - 43f8ac: 0f 1f 40 00 nopl 0x0(%rax) - 43f8b0: 0f 84 cb fb ff ff je 43f481 <__getcwd+0xb1> - 43f8b6: 48 c7 c5 d0 ff ff ff mov $0xffffffffffffffd0,%rbp - 43f8bd: 64 8b 45 00 mov %fs:0x0(%rbp),%eax - 43f8c1: 83 f8 24 cmp $0x24,%eax - 43f8c4: 0f 84 be fb ff ff je 43f488 <__getcwd+0xb8> - 43f8ca: 83 f8 22 cmp $0x22,%eax - 43f8cd: 0f 84 eb 00 00 00 je 43f9be <__getcwd+0x5ee> - 43f8d3: 48 85 db test %rbx,%rbx - 43f8d6: 0f 85 54 fb ff ff jne 43f430 <__getcwd+0x60> - 43f8dc: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi - 43f8e1: e8 ca e4 fd ff callq 41ddb0 <__cfree> - 43f8e6: 31 c0 xor %eax,%eax - 43f8e8: e9 45 fb ff ff jmpq 43f432 <__getcwd+0x62> - 43f8ed: 0f 1f 00 nopl (%rax) - 43f8f0: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 43f8f5: 64 c7 45 00 16 00 00 movl $0x16,%fs:0x0(%rbp) - 43f8fc: 00 - 43f8fd: 48 89 44 24 20 mov %rax,0x20(%rsp) - 43f902: e9 ef fe ff ff jmpq 43f7f6 <__getcwd+0x426> - 43f907: 48 c7 c5 d0 ff ff ff mov $0xffffffffffffffd0,%rbp - 43f90e: f7 d8 neg %eax - 43f910: 64 89 45 00 mov %eax,%fs:0x0(%rbp) - 43f914: eb ab jmp 43f8c1 <__getcwd+0x4f1> - 43f916: c7 44 24 10 9c ff ff movl $0xffffff9c,0x10(%rsp) - 43f91d: ff - 43f91e: 45 31 ed xor %r13d,%r13d - 43f921: 64 8b 5d 00 mov %fs:0x0(%rbp),%ebx - 43f925: e9 ab fe ff ff jmpq 43f7d5 <__getcwd+0x405> - 43f92a: 4c 89 e7 mov %r12,%rdi - 43f92d: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 - 43f932: e8 79 ac 02 00 callq 46a5b0 <__closedir> - 43f937: 85 c0 test %eax,%eax - 43f939: 0f 85 61 01 00 00 jne 43faa0 <__getcwd+0x6d0> - 43f93f: 48 8b 5c 24 08 mov 0x8(%rsp),%rbx - 43f944: 48 03 5c 24 28 add 0x28(%rsp),%rbx - 43f949: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 43f94e: 48 8b 54 24 28 mov 0x28(%rsp),%rdx - 43f953: 48 8d 44 10 ff lea -0x1(%rax,%rdx,1),%rax - 43f958: 48 3b 44 24 38 cmp 0x38(%rsp),%rax - 43f95d: 0f 84 f2 00 00 00 je 43fa55 <__getcwd+0x685> - 43f963: 48 8b 44 24 38 mov 0x38(%rsp),%rax - 43f968: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi - 43f96d: 48 29 c3 sub %rax,%rbx - 43f970: 48 89 c6 mov %rax,%rsi - 43f973: 48 89 da mov %rbx,%rdx - 43f976: e8 85 09 fc ff callq 400300 <__rela_iplt_end+0x38> - 43f97b: 4d 85 f6 test %r14,%r14 - 43f97e: 0f 84 ba 00 00 00 je 43fa3e <__getcwd+0x66e> - 43f984: 8b 54 24 44 mov 0x44(%rsp),%edx - 43f988: 48 8b 44 24 20 mov 0x20(%rsp),%rax - 43f98d: 64 89 55 00 mov %edx,%fs:0x0(%rbp) - 43f991: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 43f996: 48 85 c0 test %rax,%rax - 43f999: 48 0f 45 d0 cmovne %rax,%rdx - 43f99d: 48 89 d0 mov %rdx,%rax - 43f9a0: e9 8d fa ff ff jmpq 43f432 <__getcwd+0x62> - 43f9a5: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 - 43f9aa: 89 c3 mov %eax,%ebx - 43f9ac: e9 19 fe ff ff jmpq 43f7ca <__getcwd+0x3fa> - 43f9b1: 89 c3 mov %eax,%ebx - 43f9b3: f7 db neg %ebx - 43f9b5: 64 89 5d 00 mov %ebx,%fs:0x0(%rbp) - 43f9b9: e9 28 fe ff ff jmpq 43f7e6 <__getcwd+0x416> - 43f9be: 48 85 db test %rbx,%rbx - 43f9c1: 0f 85 0c ff ff ff jne 43f8d3 <__getcwd+0x503> - 43f9c7: 4d 85 f6 test %r14,%r14 - 43f9ca: 0f 85 03 ff ff ff jne 43f8d3 <__getcwd+0x503> - 43f9d0: b9 50 49 4a 00 mov $0x4a4950,%ecx - 43f9d5: ba 79 00 00 00 mov $0x79,%edx - 43f9da: be f8 48 4a 00 mov $0x4a48f8,%esi - 43f9df: bf 20 49 4a 00 mov $0x4a4920,%edi - 43f9e4: e8 57 1d fc ff callq 401740 <__assert_fail> - 43f9e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 43f9f0: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi - 43f9f5: e8 b6 e3 fd ff callq 41ddb0 <__cfree> - 43f9fa: e9 f3 fd ff ff jmpq 43f7f2 <__getcwd+0x422> - 43f9ff: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 - 43fa04: 41 bd 01 00 00 00 mov $0x1,%r13d - 43fa0a: e9 12 ff ff ff jmpq 43f921 <__getcwd+0x551> - 43fa0f: 4d 85 e4 test %r12,%r12 - 43fa12: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 - 43fa17: 64 8b 5d 00 mov %fs:0x0(%rbp),%ebx - 43fa1b: 0f 84 b9 fd ff ff je 43f7da <__getcwd+0x40a> - 43fa21: 41 bd 01 00 00 00 mov $0x1,%r13d - 43fa27: e9 a1 fd ff ff jmpq 43f7cd <__getcwd+0x3fd> - 43fa2c: 0f 1f 40 00 nopl 0x0(%rax) - 43fa30: 48 c7 44 24 20 00 00 movq $0x0,0x20(%rsp) - 43fa37: 00 00 - 43fa39: e9 b8 fd ff ff jmpq 43f7f6 <__getcwd+0x426> - 43fa3e: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi - 43fa43: 48 89 de mov %rbx,%rsi - 43fa46: e8 25 e5 fd ff callq 41df70 <__libc_realloc> - 43fa4b: 48 89 44 24 20 mov %rax,0x20(%rsp) - 43fa50: e9 2f ff ff ff jmpq 43f984 <__getcwd+0x5b4> - 43fa55: 48 83 6c 24 38 01 subq $0x1,0x38(%rsp) - 43fa5b: c6 40 ff 2f movb $0x2f,-0x1(%rax) - 43fa5f: e9 ff fe ff ff jmpq 43f963 <__getcwd+0x593> - 43fa64: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 - 43fa69: 64 8b 5d 00 mov %fs:0x0(%rbp),%ebx - 43fa6d: 45 31 ed xor %r13d,%r13d - 43fa70: e9 58 fd ff ff jmpq 43f7cd <__getcwd+0x3fd> - 43fa75: 89 c3 mov %eax,%ebx - 43fa77: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 - 43fa7c: c7 44 24 10 ff ff ff movl $0xffffffff,0x10(%rsp) - 43fa83: ff - 43fa84: f7 db neg %ebx - 43fa86: 45 31 ed xor %r13d,%r13d - 43fa89: 64 89 5d 00 mov %ebx,%fs:0x0(%rbp) - 43fa8d: e9 3b fd ff ff jmpq 43f7cd <__getcwd+0x3fd> - 43fa92: 64 8b 5d 00 mov %fs:0x0(%rbp),%ebx - 43fa96: e9 4b fd ff ff jmpq 43f7e6 <__getcwd+0x416> - 43fa9b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43faa0: 45 31 ed xor %r13d,%r13d - 43faa3: e9 79 fe ff ff jmpq 43f921 <__getcwd+0x551> - 43faa8: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 - 43faad: 64 8b 5d 00 mov %fs:0x0(%rbp),%ebx - 43fab1: e9 14 fd ff ff jmpq 43f7ca <__getcwd+0x3fa> - 43fab6: 4c 8b 74 24 30 mov 0x30(%rsp),%r14 - 43fabb: 64 c7 45 00 22 00 00 movl $0x22,%fs:0x0(%rbp) - 43fac2: 00 - 43fac3: bb 22 00 00 00 mov $0x22,%ebx - 43fac8: e9 fd fc ff ff jmpq 43f7ca <__getcwd+0x3fa> - 43facd: 0f 1f 00 nopl (%rax) - -000000000043fad0 <__getrlimit>: - 43fad0: b8 61 00 00 00 mov $0x61,%eax - 43fad5: 0f 05 syscall - 43fad7: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax - 43fadd: 0f 83 6d 46 00 00 jae 444150 <__syscall_error> - 43fae3: c3 retq - 43fae4: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43faeb: 00 00 00 - 43faee: 66 90 xchg %ax,%ax - -000000000043faf0 <__sbrk>: - 43faf0: 55 push %rbp - 43faf1: 53 push %rbx - 43faf2: 48 89 fd mov %rdi,%rbp - 43faf5: 48 83 ec 08 sub $0x8,%rsp - 43faf9: 48 8b 1d 70 ce 28 00 mov 0x28ce70(%rip),%rbx # 6cc970 <__curbrk> - 43fb00: 48 85 db test %rbx,%rbx - 43fb03: 74 43 je 43fb48 <__sbrk+0x58> - 43fb05: 8b 05 f5 bb 28 00 mov 0x28bbf5(%rip),%eax # 6cb700 <__libc_multiple_libcs> - 43fb0b: 85 c0 test %eax,%eax - 43fb0d: 75 39 jne 43fb48 <__sbrk+0x58> - 43fb0f: 48 83 fd 00 cmp $0x0,%rbp - 43fb13: 74 24 je 43fb39 <__sbrk+0x49> - 43fb15: 7e 69 jle 43fb80 <__sbrk+0x90> - 43fb17: 48 89 d8 mov %rbx,%rax - 43fb1a: 48 01 e8 add %rbp,%rax - 43fb1d: 0f 92 c0 setb %al - 43fb20: 84 c0 test %al,%al - 43fb22: 74 3c je 43fb60 <__sbrk+0x70> - 43fb24: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 43fb2b: 64 c7 00 0c 00 00 00 movl $0xc,%fs:(%rax) - 43fb32: 48 c7 c3 ff ff ff ff mov $0xffffffffffffffff,%rbx - 43fb39: 48 83 c4 08 add $0x8,%rsp - 43fb3d: 48 89 d8 mov %rbx,%rax - 43fb40: 5b pop %rbx - 43fb41: 5d pop %rbp - 43fb42: c3 retq - 43fb43: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 43fb48: 31 ff xor %edi,%edi - 43fb4a: e8 f1 af 02 00 callq 46ab40 <__brk> - 43fb4f: 85 c0 test %eax,%eax - 43fb51: 48 8b 1d 18 ce 28 00 mov 0x28ce18(%rip),%rbx # 6cc970 <__curbrk> - 43fb58: 79 b5 jns 43fb0f <__sbrk+0x1f> - 43fb5a: eb d6 jmp 43fb32 <__sbrk+0x42> - 43fb5c: 0f 1f 40 00 nopl 0x0(%rax) - 43fb60: 48 8d 3c 2b lea (%rbx,%rbp,1),%rdi - 43fb64: e8 d7 af 02 00 callq 46ab40 <__brk> - 43fb69: 85 c0 test %eax,%eax - 43fb6b: 78 c5 js 43fb32 <__sbrk+0x42> - 43fb6d: 48 83 c4 08 add $0x8,%rsp - 43fb71: 48 89 d8 mov %rbx,%rax - 43fb74: 5b pop %rbx - 43fb75: 5d pop %rbp - 43fb76: c3 retq - 43fb77: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 43fb7e: 00 00 - 43fb80: 48 89 e8 mov %rbp,%rax - 43fb83: 48 f7 d8 neg %rax - 43fb86: 48 39 c3 cmp %rax,%rbx - 43fb89: 0f 92 c0 setb %al - 43fb8c: eb 92 jmp 43fb20 <__sbrk+0x30> - 43fb8e: 66 90 xchg %ax,%ax - -000000000043fb90 <__getpagesize>: - 43fb90: 48 8b 05 e9 b5 28 00 mov 0x28b5e9(%rip),%rax # 6cb180 <_dl_pagesize> - 43fb97: 48 85 c0 test %rax,%rax - 43fb9a: 74 02 je 43fb9e <__getpagesize+0xe> - 43fb9c: f3 c3 repz retq - 43fb9e: 50 push %rax - 43fb9f: b9 90 49 4a 00 mov $0x4a4990,%ecx - 43fba4: ba 1c 00 00 00 mov $0x1c,%edx - 43fba9: be 60 49 4a 00 mov $0x4a4960,%esi - 43fbae: bf 9e 49 4a 00 mov $0x4a499e,%edi - 43fbb3: e8 88 1b fc ff callq 401740 <__assert_fail> - 43fbb8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43fbbf: 00 - -000000000043fbc0 <__getdtablesize>: - 43fbc0: 48 83 ec 18 sub $0x18,%rsp - 43fbc4: bf 07 00 00 00 mov $0x7,%edi - 43fbc9: 48 89 e6 mov %rsp,%rsi - 43fbcc: e8 ff fe ff ff callq 43fad0 <__getrlimit> - 43fbd1: ba 00 01 00 00 mov $0x100,%edx - 43fbd6: 85 c0 test %eax,%eax - 43fbd8: 0f 49 14 24 cmovns (%rsp),%edx - 43fbdc: 48 83 c4 18 add $0x18,%rsp - 43fbe0: 89 d0 mov %edx,%eax - 43fbe2: c3 retq - 43fbe3: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43fbea: 00 00 00 - 43fbed: 0f 1f 00 nopl (%rax) - -000000000043fbf0 <__mmap>: - 43fbf0: 48 85 ff test %rdi,%rdi - 43fbf3: 41 57 push %r15 - 43fbf5: 4d 89 cf mov %r9,%r15 - 43fbf8: 41 56 push %r14 - 43fbfa: 41 89 ce mov %ecx,%r14d - 43fbfd: 41 55 push %r13 - 43fbff: 49 89 f5 mov %rsi,%r13 - 43fc02: 41 54 push %r12 - 43fc04: 49 89 fc mov %rdi,%r12 - 43fc07: 55 push %rbp - 43fc08: 53 push %rbx - 43fc09: 74 35 je 43fc40 <__mmap+0x50> - 43fc0b: 49 63 e8 movslq %r8d,%rbp - 43fc0e: 48 63 da movslq %edx,%rbx - 43fc11: 4d 89 f9 mov %r15,%r9 - 43fc14: 49 89 e8 mov %rbp,%r8 - 43fc17: 4d 63 d6 movslq %r14d,%r10 - 43fc1a: 48 89 da mov %rbx,%rdx - 43fc1d: 4c 89 ee mov %r13,%rsi - 43fc20: 4c 89 e7 mov %r12,%rdi - 43fc23: b8 09 00 00 00 mov $0x9,%eax - 43fc28: 0f 05 syscall - 43fc2a: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 43fc30: 77 4e ja 43fc80 <__mmap+0x90> - 43fc32: 5b pop %rbx - 43fc33: 5d pop %rbp - 43fc34: 41 5c pop %r12 - 43fc36: 41 5d pop %r13 - 43fc38: 41 5e pop %r14 - 43fc3a: 41 5f pop %r15 - 43fc3c: c3 retq - 43fc3d: 0f 1f 00 nopl (%rax) - 43fc40: f6 c2 04 test $0x4,%dl - 43fc43: 74 c6 je 43fc0b <__mmap+0x1b> - 43fc45: f6 05 76 ca 28 00 01 testb $0x1,0x28ca76(%rip) # 6cc6c2 <_dl_x86_cpu_features+0x42> - 43fc4c: 49 63 e8 movslq %r8d,%rbp - 43fc4f: 48 63 da movslq %edx,%rbx - 43fc52: 74 bd je 43fc11 <__mmap+0x21> - 43fc54: 41 89 ca mov %ecx,%r10d - 43fc57: 49 89 e8 mov %rbp,%r8 - 43fc5a: 48 89 da mov %rbx,%rdx - 43fc5d: 41 83 ca 40 or $0x40,%r10d - 43fc61: 31 ff xor %edi,%edi - 43fc63: b8 09 00 00 00 mov $0x9,%eax - 43fc68: 4d 63 d2 movslq %r10d,%r10 - 43fc6b: 0f 05 syscall - 43fc6d: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 43fc73: 77 20 ja 43fc95 <__mmap+0xa5> - 43fc75: 48 83 f8 ff cmp $0xffffffffffffffff,%rax - 43fc79: 75 b7 jne 43fc32 <__mmap+0x42> - 43fc7b: eb 94 jmp 43fc11 <__mmap+0x21> - 43fc7d: 0f 1f 00 nopl (%rax) - 43fc80: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 43fc87: f7 d8 neg %eax - 43fc89: 64 89 02 mov %eax,%fs:(%rdx) - 43fc8c: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 43fc93: eb 9d jmp 43fc32 <__mmap+0x42> - 43fc95: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 43fc9c: f7 d8 neg %eax - 43fc9e: 64 89 02 mov %eax,%fs:(%rdx) - 43fca1: e9 6b ff ff ff jmpq 43fc11 <__mmap+0x21> - 43fca6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43fcad: 00 00 00 - -000000000043fcb0 <__munmap>: - 43fcb0: b8 0b 00 00 00 mov $0xb,%eax - 43fcb5: 0f 05 syscall - 43fcb7: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax - 43fcbd: 0f 83 8d 44 00 00 jae 444150 <__syscall_error> - 43fcc3: c3 retq - 43fcc4: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43fccb: 00 00 00 - 43fcce: 66 90 xchg %ax,%ax - -000000000043fcd0 <__mprotect>: - 43fcd0: b8 0a 00 00 00 mov $0xa,%eax - 43fcd5: 0f 05 syscall - 43fcd7: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax - 43fcdd: 0f 83 6d 44 00 00 jae 444150 <__syscall_error> - 43fce3: c3 retq - 43fce4: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43fceb: 00 00 00 - 43fcee: 66 90 xchg %ax,%ax - -000000000043fcf0 <__madvise>: - 43fcf0: b8 1c 00 00 00 mov $0x1c,%eax - 43fcf5: 0f 05 syscall - 43fcf7: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax - 43fcfd: 0f 83 4d 44 00 00 jae 444150 <__syscall_error> - 43fd03: c3 retq - 43fd04: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43fd0b: 00 00 00 - 43fd0e: 66 90 xchg %ax,%ax - -000000000043fd10 : - 43fd10: 41 54 push %r12 - 43fd12: 55 push %rbp - 43fd13: 48 89 f0 mov %rsi,%rax - 43fd16: 53 push %rbx - 43fd17: 48 83 7f 08 00 cmpq $0x0,0x8(%rdi) - 43fd1c: 74 62 je 43fd80 - 43fd1e: 48 89 fb mov %rdi,%rbx - 43fd21: 31 f6 xor %esi,%esi - 43fd23: 41 89 d4 mov %edx,%r12d - 43fd26: 48 89 c5 mov %rax,%rbp - 43fd29: ff d0 callq *%rax - 43fd2b: 48 8b 7b 08 mov 0x8(%rbx),%rdi - 43fd2f: 48 85 ff test %rdi,%rdi - 43fd32: 74 0d je 43fd41 - 43fd34: 41 8d 54 24 01 lea 0x1(%r12),%edx - 43fd39: 48 89 ee mov %rbp,%rsi - 43fd3c: e8 cf ff ff ff callq 43fd10 - 43fd41: 48 89 df mov %rbx,%rdi - 43fd44: 44 89 e2 mov %r12d,%edx - 43fd47: be 01 00 00 00 mov $0x1,%esi - 43fd4c: ff d5 callq *%rbp - 43fd4e: 48 8b 7b 10 mov 0x10(%rbx),%rdi - 43fd52: 48 85 ff test %rdi,%rdi - 43fd55: 74 0d je 43fd64 - 43fd57: 41 8d 54 24 01 lea 0x1(%r12),%edx - 43fd5c: 48 89 ee mov %rbp,%rsi - 43fd5f: e8 ac ff ff ff callq 43fd10 - 43fd64: 44 89 e2 mov %r12d,%edx - 43fd67: 48 89 df mov %rbx,%rdi - 43fd6a: 48 89 e8 mov %rbp,%rax - 43fd6d: 5b pop %rbx - 43fd6e: 5d pop %rbp - 43fd6f: 41 5c pop %r12 - 43fd71: be 02 00 00 00 mov $0x2,%esi - 43fd76: ff e0 jmpq *%rax - 43fd78: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 43fd7f: 00 - 43fd80: 48 83 7f 10 00 cmpq $0x0,0x10(%rdi) - 43fd85: 75 97 jne 43fd1e - 43fd87: 5b pop %rbx - 43fd88: 5d pop %rbp - 43fd89: 41 5c pop %r12 - 43fd8b: be 03 00 00 00 mov $0x3,%esi - 43fd90: ff e0 jmpq *%rax - 43fd92: 0f 1f 40 00 nopl 0x0(%rax) - 43fd96: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 43fd9d: 00 00 00 - -000000000043fda0 : - 43fda0: 41 57 push %r15 - 43fda2: 41 56 push %r14 - 43fda4: 41 55 push %r13 - 43fda6: 41 54 push %r12 - 43fda8: 49 89 fc mov %rdi,%r12 - 43fdab: 55 push %rbp - 43fdac: 53 push %rbx - 43fdad: 48 89 f3 mov %rsi,%rbx - 43fdb0: 48 83 ec 18 sub $0x18,%rsp - 43fdb4: 48 8b 6f 08 mov 0x8(%rdi),%rbp - 43fdb8: 48 85 ed test %rbp,%rbp - 43fdbb: 0f 84 0b 02 00 00 je 43ffcc - 43fdc1: 4c 8b 6d 08 mov 0x8(%rbp),%r13 - 43fdc5: 4d 85 ed test %r13,%r13 - 43fdc8: 0f 84 c9 00 00 00 je 43fe97 - 43fdce: 4d 8b 75 08 mov 0x8(%r13),%r14 - 43fdd2: 4d 85 f6 test %r14,%r14 - 43fdd5: 74 2c je 43fe03 - 43fdd7: 49 8b 7e 08 mov 0x8(%r14),%rdi - 43fddb: 48 85 ff test %rdi,%rdi - 43fdde: 74 05 je 43fde5 - 43fde0: e8 bb ff ff ff callq 43fda0 - 43fde5: 49 8b 7e 10 mov 0x10(%r14),%rdi - 43fde9: 48 85 ff test %rdi,%rdi - 43fdec: 74 08 je 43fdf6 - 43fdee: 48 89 de mov %rbx,%rsi - 43fdf1: e8 aa ff ff ff callq 43fda0 - 43fdf6: 49 8b 3e mov (%r14),%rdi - 43fdf9: ff d3 callq *%rbx - 43fdfb: 4c 89 f7 mov %r14,%rdi - 43fdfe: e8 ad df fd ff callq 41ddb0 <__cfree> - 43fe03: 4d 8b 75 10 mov 0x10(%r13),%r14 - 43fe07: 4d 85 f6 test %r14,%r14 - 43fe0a: 74 7d je 43fe89 - 43fe0c: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 43fe10: 4d 85 ff test %r15,%r15 - 43fe13: 74 2f je 43fe44 - 43fe15: 49 8b 7f 08 mov 0x8(%r15),%rdi - 43fe19: 48 85 ff test %rdi,%rdi - 43fe1c: 74 08 je 43fe26 - 43fe1e: 48 89 de mov %rbx,%rsi - 43fe21: e8 7a ff ff ff callq 43fda0 - 43fe26: 49 8b 7f 10 mov 0x10(%r15),%rdi - 43fe2a: 48 85 ff test %rdi,%rdi - 43fe2d: 74 08 je 43fe37 - 43fe2f: 48 89 de mov %rbx,%rsi - 43fe32: e8 69 ff ff ff callq 43fda0 - 43fe37: 49 8b 3f mov (%r15),%rdi - 43fe3a: ff d3 callq *%rbx - 43fe3c: 4c 89 ff mov %r15,%rdi - 43fe3f: e8 6c df fd ff callq 41ddb0 <__cfree> - 43fe44: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 43fe48: 4d 85 ff test %r15,%r15 - 43fe4b: 74 2f je 43fe7c - 43fe4d: 49 8b 7f 08 mov 0x8(%r15),%rdi - 43fe51: 48 85 ff test %rdi,%rdi - 43fe54: 74 08 je 43fe5e - 43fe56: 48 89 de mov %rbx,%rsi - 43fe59: e8 42 ff ff ff callq 43fda0 - 43fe5e: 49 8b 7f 10 mov 0x10(%r15),%rdi - 43fe62: 48 85 ff test %rdi,%rdi - 43fe65: 74 08 je 43fe6f - 43fe67: 48 89 de mov %rbx,%rsi - 43fe6a: e8 31 ff ff ff callq 43fda0 - 43fe6f: 49 8b 3f mov (%r15),%rdi - 43fe72: ff d3 callq *%rbx - 43fe74: 4c 89 ff mov %r15,%rdi - 43fe77: e8 34 df fd ff callq 41ddb0 <__cfree> - 43fe7c: 49 8b 3e mov (%r14),%rdi - 43fe7f: ff d3 callq *%rbx - 43fe81: 4c 89 f7 mov %r14,%rdi - 43fe84: e8 27 df fd ff callq 41ddb0 <__cfree> - 43fe89: 49 8b 7d 00 mov 0x0(%r13),%rdi - 43fe8d: ff d3 callq *%rbx - 43fe8f: 4c 89 ef mov %r13,%rdi - 43fe92: e8 19 df fd ff callq 41ddb0 <__cfree> - 43fe97: 4c 8b 6d 10 mov 0x10(%rbp),%r13 - 43fe9b: 4d 85 ed test %r13,%r13 - 43fe9e: 0f 84 1a 01 00 00 je 43ffbe - 43fea4: 4d 8b 75 08 mov 0x8(%r13),%r14 - 43fea8: 4d 85 f6 test %r14,%r14 - 43feab: 74 7d je 43ff2a - 43fead: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 43feb1: 4d 85 ff test %r15,%r15 - 43feb4: 74 2f je 43fee5 - 43feb6: 49 8b 7f 08 mov 0x8(%r15),%rdi - 43feba: 48 85 ff test %rdi,%rdi - 43febd: 74 08 je 43fec7 - 43febf: 48 89 de mov %rbx,%rsi - 43fec2: e8 d9 fe ff ff callq 43fda0 - 43fec7: 49 8b 7f 10 mov 0x10(%r15),%rdi - 43fecb: 48 85 ff test %rdi,%rdi - 43fece: 74 08 je 43fed8 - 43fed0: 48 89 de mov %rbx,%rsi - 43fed3: e8 c8 fe ff ff callq 43fda0 - 43fed8: 49 8b 3f mov (%r15),%rdi - 43fedb: ff d3 callq *%rbx - 43fedd: 4c 89 ff mov %r15,%rdi - 43fee0: e8 cb de fd ff callq 41ddb0 <__cfree> - 43fee5: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 43fee9: 4d 85 ff test %r15,%r15 - 43feec: 74 2f je 43ff1d - 43feee: 49 8b 7f 08 mov 0x8(%r15),%rdi - 43fef2: 48 85 ff test %rdi,%rdi - 43fef5: 74 08 je 43feff - 43fef7: 48 89 de mov %rbx,%rsi - 43fefa: e8 a1 fe ff ff callq 43fda0 - 43feff: 49 8b 7f 10 mov 0x10(%r15),%rdi - 43ff03: 48 85 ff test %rdi,%rdi - 43ff06: 74 08 je 43ff10 - 43ff08: 48 89 de mov %rbx,%rsi - 43ff0b: e8 90 fe ff ff callq 43fda0 - 43ff10: 49 8b 3f mov (%r15),%rdi - 43ff13: ff d3 callq *%rbx - 43ff15: 4c 89 ff mov %r15,%rdi - 43ff18: e8 93 de fd ff callq 41ddb0 <__cfree> - 43ff1d: 49 8b 3e mov (%r14),%rdi - 43ff20: ff d3 callq *%rbx - 43ff22: 4c 89 f7 mov %r14,%rdi - 43ff25: e8 86 de fd ff callq 41ddb0 <__cfree> - 43ff2a: 4d 8b 75 10 mov 0x10(%r13),%r14 - 43ff2e: 4d 85 f6 test %r14,%r14 - 43ff31: 74 7d je 43ffb0 - 43ff33: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 43ff37: 4d 85 ff test %r15,%r15 - 43ff3a: 74 2f je 43ff6b - 43ff3c: 49 8b 7f 08 mov 0x8(%r15),%rdi - 43ff40: 48 85 ff test %rdi,%rdi - 43ff43: 74 08 je 43ff4d - 43ff45: 48 89 de mov %rbx,%rsi - 43ff48: e8 53 fe ff ff callq 43fda0 - 43ff4d: 49 8b 7f 10 mov 0x10(%r15),%rdi - 43ff51: 48 85 ff test %rdi,%rdi - 43ff54: 74 08 je 43ff5e - 43ff56: 48 89 de mov %rbx,%rsi - 43ff59: e8 42 fe ff ff callq 43fda0 - 43ff5e: 49 8b 3f mov (%r15),%rdi - 43ff61: ff d3 callq *%rbx - 43ff63: 4c 89 ff mov %r15,%rdi - 43ff66: e8 45 de fd ff callq 41ddb0 <__cfree> - 43ff6b: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 43ff6f: 4d 85 ff test %r15,%r15 - 43ff72: 74 2f je 43ffa3 - 43ff74: 49 8b 7f 08 mov 0x8(%r15),%rdi - 43ff78: 48 85 ff test %rdi,%rdi - 43ff7b: 74 08 je 43ff85 - 43ff7d: 48 89 de mov %rbx,%rsi - 43ff80: e8 1b fe ff ff callq 43fda0 - 43ff85: 49 8b 7f 10 mov 0x10(%r15),%rdi - 43ff89: 48 85 ff test %rdi,%rdi - 43ff8c: 74 08 je 43ff96 - 43ff8e: 48 89 de mov %rbx,%rsi - 43ff91: e8 0a fe ff ff callq 43fda0 - 43ff96: 49 8b 3f mov (%r15),%rdi - 43ff99: ff d3 callq *%rbx - 43ff9b: 4c 89 ff mov %r15,%rdi - 43ff9e: e8 0d de fd ff callq 41ddb0 <__cfree> - 43ffa3: 49 8b 3e mov (%r14),%rdi - 43ffa6: ff d3 callq *%rbx - 43ffa8: 4c 89 f7 mov %r14,%rdi - 43ffab: e8 00 de fd ff callq 41ddb0 <__cfree> - 43ffb0: 49 8b 7d 00 mov 0x0(%r13),%rdi - 43ffb4: ff d3 callq *%rbx - 43ffb6: 4c 89 ef mov %r13,%rdi - 43ffb9: e8 f2 dd fd ff callq 41ddb0 <__cfree> - 43ffbe: 48 8b 7d 00 mov 0x0(%rbp),%rdi - 43ffc2: ff d3 callq *%rbx - 43ffc4: 48 89 ef mov %rbp,%rdi - 43ffc7: e8 e4 dd fd ff callq 41ddb0 <__cfree> - 43ffcc: 49 8b 6c 24 10 mov 0x10(%r12),%rbp - 43ffd1: 48 85 ed test %rbp,%rbp - 43ffd4: 0f 84 a5 02 00 00 je 44027f - 43ffda: 4c 8b 6d 08 mov 0x8(%rbp),%r13 - 43ffde: 4d 85 ed test %r13,%r13 - 43ffe1: 0f 84 1a 01 00 00 je 440101 - 43ffe7: 4d 8b 75 08 mov 0x8(%r13),%r14 - 43ffeb: 4d 85 f6 test %r14,%r14 - 43ffee: 74 7d je 44006d - 43fff0: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 43fff4: 4d 85 ff test %r15,%r15 - 43fff7: 74 2f je 440028 - 43fff9: 49 8b 7f 08 mov 0x8(%r15),%rdi - 43fffd: 48 85 ff test %rdi,%rdi - 440000: 74 08 je 44000a - 440002: 48 89 de mov %rbx,%rsi - 440005: e8 96 fd ff ff callq 43fda0 - 44000a: 49 8b 7f 10 mov 0x10(%r15),%rdi - 44000e: 48 85 ff test %rdi,%rdi - 440011: 74 08 je 44001b - 440013: 48 89 de mov %rbx,%rsi - 440016: e8 85 fd ff ff callq 43fda0 - 44001b: 49 8b 3f mov (%r15),%rdi - 44001e: ff d3 callq *%rbx - 440020: 4c 89 ff mov %r15,%rdi - 440023: e8 88 dd fd ff callq 41ddb0 <__cfree> - 440028: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 44002c: 4d 85 ff test %r15,%r15 - 44002f: 74 2f je 440060 - 440031: 49 8b 7f 08 mov 0x8(%r15),%rdi - 440035: 48 85 ff test %rdi,%rdi - 440038: 74 08 je 440042 - 44003a: 48 89 de mov %rbx,%rsi - 44003d: e8 5e fd ff ff callq 43fda0 - 440042: 49 8b 7f 10 mov 0x10(%r15),%rdi - 440046: 48 85 ff test %rdi,%rdi - 440049: 74 08 je 440053 - 44004b: 48 89 de mov %rbx,%rsi - 44004e: e8 4d fd ff ff callq 43fda0 - 440053: 49 8b 3f mov (%r15),%rdi - 440056: ff d3 callq *%rbx - 440058: 4c 89 ff mov %r15,%rdi - 44005b: e8 50 dd fd ff callq 41ddb0 <__cfree> - 440060: 49 8b 3e mov (%r14),%rdi - 440063: ff d3 callq *%rbx - 440065: 4c 89 f7 mov %r14,%rdi - 440068: e8 43 dd fd ff callq 41ddb0 <__cfree> - 44006d: 4d 8b 75 10 mov 0x10(%r13),%r14 - 440071: 4d 85 f6 test %r14,%r14 - 440074: 74 7d je 4400f3 - 440076: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 44007a: 4d 85 ff test %r15,%r15 - 44007d: 74 2f je 4400ae - 44007f: 49 8b 7f 08 mov 0x8(%r15),%rdi - 440083: 48 85 ff test %rdi,%rdi - 440086: 74 08 je 440090 - 440088: 48 89 de mov %rbx,%rsi - 44008b: e8 10 fd ff ff callq 43fda0 - 440090: 49 8b 7f 10 mov 0x10(%r15),%rdi - 440094: 48 85 ff test %rdi,%rdi - 440097: 74 08 je 4400a1 - 440099: 48 89 de mov %rbx,%rsi - 44009c: e8 ff fc ff ff callq 43fda0 - 4400a1: 49 8b 3f mov (%r15),%rdi - 4400a4: ff d3 callq *%rbx - 4400a6: 4c 89 ff mov %r15,%rdi - 4400a9: e8 02 dd fd ff callq 41ddb0 <__cfree> - 4400ae: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 4400b2: 4d 85 ff test %r15,%r15 - 4400b5: 74 2f je 4400e6 - 4400b7: 49 8b 7f 08 mov 0x8(%r15),%rdi - 4400bb: 48 85 ff test %rdi,%rdi - 4400be: 74 08 je 4400c8 - 4400c0: 48 89 de mov %rbx,%rsi - 4400c3: e8 d8 fc ff ff callq 43fda0 - 4400c8: 49 8b 7f 10 mov 0x10(%r15),%rdi - 4400cc: 48 85 ff test %rdi,%rdi - 4400cf: 74 08 je 4400d9 - 4400d1: 48 89 de mov %rbx,%rsi - 4400d4: e8 c7 fc ff ff callq 43fda0 - 4400d9: 49 8b 3f mov (%r15),%rdi - 4400dc: ff d3 callq *%rbx - 4400de: 4c 89 ff mov %r15,%rdi - 4400e1: e8 ca dc fd ff callq 41ddb0 <__cfree> - 4400e6: 49 8b 3e mov (%r14),%rdi - 4400e9: ff d3 callq *%rbx - 4400eb: 4c 89 f7 mov %r14,%rdi - 4400ee: e8 bd dc fd ff callq 41ddb0 <__cfree> - 4400f3: 49 8b 7d 00 mov 0x0(%r13),%rdi - 4400f7: ff d3 callq *%rbx - 4400f9: 4c 89 ef mov %r13,%rdi - 4400fc: e8 af dc fd ff callq 41ddb0 <__cfree> - 440101: 4c 8b 6d 10 mov 0x10(%rbp),%r13 - 440105: 4d 85 ed test %r13,%r13 - 440108: 0f 84 63 01 00 00 je 440271 - 44010e: 4d 8b 75 08 mov 0x8(%r13),%r14 - 440112: 4d 85 f6 test %r14,%r14 - 440115: 74 7d je 440194 - 440117: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 44011b: 4d 85 ff test %r15,%r15 - 44011e: 74 2f je 44014f - 440120: 49 8b 7f 08 mov 0x8(%r15),%rdi - 440124: 48 85 ff test %rdi,%rdi - 440127: 74 08 je 440131 - 440129: 48 89 de mov %rbx,%rsi - 44012c: e8 6f fc ff ff callq 43fda0 - 440131: 49 8b 7f 10 mov 0x10(%r15),%rdi - 440135: 48 85 ff test %rdi,%rdi - 440138: 74 08 je 440142 - 44013a: 48 89 de mov %rbx,%rsi - 44013d: e8 5e fc ff ff callq 43fda0 - 440142: 49 8b 3f mov (%r15),%rdi - 440145: ff d3 callq *%rbx - 440147: 4c 89 ff mov %r15,%rdi - 44014a: e8 61 dc fd ff callq 41ddb0 <__cfree> - 44014f: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 440153: 4d 85 ff test %r15,%r15 - 440156: 74 2f je 440187 - 440158: 49 8b 7f 08 mov 0x8(%r15),%rdi - 44015c: 48 85 ff test %rdi,%rdi - 44015f: 74 08 je 440169 - 440161: 48 89 de mov %rbx,%rsi - 440164: e8 37 fc ff ff callq 43fda0 - 440169: 49 8b 7f 10 mov 0x10(%r15),%rdi - 44016d: 48 85 ff test %rdi,%rdi - 440170: 74 08 je 44017a - 440172: 48 89 de mov %rbx,%rsi - 440175: e8 26 fc ff ff callq 43fda0 - 44017a: 49 8b 3f mov (%r15),%rdi - 44017d: ff d3 callq *%rbx - 44017f: 4c 89 ff mov %r15,%rdi - 440182: e8 29 dc fd ff callq 41ddb0 <__cfree> - 440187: 49 8b 3e mov (%r14),%rdi - 44018a: ff d3 callq *%rbx - 44018c: 4c 89 f7 mov %r14,%rdi - 44018f: e8 1c dc fd ff callq 41ddb0 <__cfree> - 440194: 4d 8b 75 10 mov 0x10(%r13),%r14 - 440198: 4d 85 f6 test %r14,%r14 - 44019b: 0f 84 c2 00 00 00 je 440263 - 4401a1: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 4401a5: 4d 85 ff test %r15,%r15 - 4401a8: 74 2f je 4401d9 - 4401aa: 49 8b 7f 08 mov 0x8(%r15),%rdi - 4401ae: 48 85 ff test %rdi,%rdi - 4401b1: 74 08 je 4401bb - 4401b3: 48 89 de mov %rbx,%rsi - 4401b6: e8 e5 fb ff ff callq 43fda0 - 4401bb: 49 8b 7f 10 mov 0x10(%r15),%rdi - 4401bf: 48 85 ff test %rdi,%rdi - 4401c2: 74 08 je 4401cc - 4401c4: 48 89 de mov %rbx,%rsi - 4401c7: e8 d4 fb ff ff callq 43fda0 - 4401cc: 49 8b 3f mov (%r15),%rdi - 4401cf: ff d3 callq *%rbx - 4401d1: 4c 89 ff mov %r15,%rdi - 4401d4: e8 d7 db fd ff callq 41ddb0 <__cfree> - 4401d9: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 4401dd: 4d 85 ff test %r15,%r15 - 4401e0: 74 74 je 440256 - 4401e2: 49 8b 7f 08 mov 0x8(%r15),%rdi - 4401e6: 48 85 ff test %rdi,%rdi - 4401e9: 74 08 je 4401f3 - 4401eb: 48 89 de mov %rbx,%rsi - 4401ee: e8 ad fb ff ff callq 43fda0 - 4401f3: 49 8b 47 10 mov 0x10(%r15),%rax - 4401f7: 48 85 c0 test %rax,%rax - 4401fa: 74 4d je 440249 - 4401fc: 48 8b 78 08 mov 0x8(%rax),%rdi - 440200: 48 85 ff test %rdi,%rdi - 440203: 74 12 je 440217 - 440205: 48 89 de mov %rbx,%rsi - 440208: 48 89 44 24 08 mov %rax,0x8(%rsp) - 44020d: e8 8e fb ff ff callq 43fda0 - 440212: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 440217: 48 8b 78 10 mov 0x10(%rax),%rdi - 44021b: 48 85 ff test %rdi,%rdi - 44021e: 74 12 je 440232 - 440220: 48 89 de mov %rbx,%rsi - 440223: 48 89 44 24 08 mov %rax,0x8(%rsp) - 440228: e8 73 fb ff ff callq 43fda0 - 44022d: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 440232: 48 8b 38 mov (%rax),%rdi - 440235: 48 89 44 24 08 mov %rax,0x8(%rsp) - 44023a: ff d3 callq *%rbx - 44023c: 48 8b 44 24 08 mov 0x8(%rsp),%rax - 440241: 48 89 c7 mov %rax,%rdi - 440244: e8 67 db fd ff callq 41ddb0 <__cfree> - 440249: 49 8b 3f mov (%r15),%rdi - 44024c: ff d3 callq *%rbx - 44024e: 4c 89 ff mov %r15,%rdi - 440251: e8 5a db fd ff callq 41ddb0 <__cfree> - 440256: 49 8b 3e mov (%r14),%rdi - 440259: ff d3 callq *%rbx - 44025b: 4c 89 f7 mov %r14,%rdi - 44025e: e8 4d db fd ff callq 41ddb0 <__cfree> - 440263: 49 8b 7d 00 mov 0x0(%r13),%rdi - 440267: ff d3 callq *%rbx - 440269: 4c 89 ef mov %r13,%rdi - 44026c: e8 3f db fd ff callq 41ddb0 <__cfree> - 440271: 48 8b 7d 00 mov 0x0(%rbp),%rdi - 440275: ff d3 callq *%rbx - 440277: 48 89 ef mov %rbp,%rdi - 44027a: e8 31 db fd ff callq 41ddb0 <__cfree> - 44027f: 49 8b 3c 24 mov (%r12),%rdi - 440283: ff d3 callq *%rbx - 440285: 48 83 c4 18 add $0x18,%rsp - 440289: 4c 89 e7 mov %r12,%rdi - 44028c: 5b pop %rbx - 44028d: 5d pop %rbp - 44028e: 41 5c pop %r12 - 440290: 41 5d pop %r13 - 440292: 41 5e pop %r14 - 440294: 41 5f pop %r15 - 440296: e9 15 db fd ff jmpq 41ddb0 <__cfree> - 44029b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - -00000000004402a0 <__tsearch>: - 4402a0: 41 57 push %r15 - 4402a2: 41 56 push %r14 - 4402a4: 41 55 push %r13 - 4402a6: 41 54 push %r12 - 4402a8: 55 push %rbp - 4402a9: 53 push %rbx - 4402aa: 48 83 ec 28 sub $0x28,%rsp - 4402ae: 48 85 f6 test %rsi,%rsi - 4402b1: 48 89 7c 24 10 mov %rdi,0x10(%rsp) - 4402b6: 48 89 54 24 18 mov %rdx,0x18(%rsp) - 4402bb: 0f 84 12 03 00 00 je 4405d3 <__tsearch+0x333> - 4402c1: 48 8b 06 mov (%rsi),%rax - 4402c4: 49 89 f4 mov %rsi,%r12 - 4402c7: 48 85 c0 test %rax,%rax - 4402ca: 0f 84 60 02 00 00 je 440530 <__tsearch+0x290> - 4402d0: 80 60 18 fe andb $0xfe,0x18(%rax) - 4402d4: c7 44 24 08 00 00 00 movl $0x0,0x8(%rsp) - 4402db: 00 - 4402dc: 45 31 f6 xor %r14d,%r14d - 4402df: 48 8b 1e mov (%rsi),%rbx - 4402e2: 31 ed xor %ebp,%ebp - 4402e4: 45 31 ed xor %r13d,%r13d - 4402e7: eb 29 jmp 440312 <__tsearch+0x72> - 4402e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4402f0: 48 8d 53 10 lea 0x10(%rbx),%rdx - 4402f4: 48 8b 5b 10 mov 0x10(%rbx),%rbx - 4402f8: 4c 89 ed mov %r13,%rbp - 4402fb: 44 89 74 24 08 mov %r14d,0x8(%rsp) - 440300: 48 85 db test %rbx,%rbx - 440303: 0f 84 f9 00 00 00 je 440402 <__tsearch+0x162> - 440309: 4d 89 e5 mov %r12,%r13 - 44030c: 45 89 fe mov %r15d,%r14d - 44030f: 49 89 d4 mov %rdx,%r12 - 440312: 48 85 db test %rbx,%rbx - 440315: 0f 84 15 02 00 00 je 440530 <__tsearch+0x290> - 44031b: 48 8b 33 mov (%rbx),%rsi - 44031e: 48 8b 7c 24 10 mov 0x10(%rsp),%rdi - 440323: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 440328: ff d0 callq *%rax - 44032a: 85 c0 test %eax,%eax - 44032c: 41 89 c7 mov %eax,%r15d - 44032f: 0f 84 3b 02 00 00 je 440570 <__tsearch+0x2d0> - 440335: 49 8b 04 24 mov (%r12),%rax - 440339: 48 8b 50 10 mov 0x10(%rax),%rdx - 44033d: 48 85 d2 test %rdx,%rdx - 440340: 0f 84 9a 00 00 00 je 4403e0 <__tsearch+0x140> - 440346: 48 8b 70 08 mov 0x8(%rax),%rsi - 44034a: 48 85 f6 test %rsi,%rsi - 44034d: 0f 84 8d 00 00 00 je 4403e0 <__tsearch+0x140> - 440353: f6 42 18 01 testb $0x1,0x18(%rdx) - 440357: 0f 84 83 00 00 00 je 4403e0 <__tsearch+0x140> - 44035d: f6 46 18 01 testb $0x1,0x18(%rsi) - 440361: 74 7d je 4403e0 <__tsearch+0x140> - 440363: 80 48 18 01 orb $0x1,0x18(%rax) - 440367: 80 62 18 fe andb $0xfe,0x18(%rdx) - 44036b: 48 8b 50 08 mov 0x8(%rax),%rdx - 44036f: 48 85 d2 test %rdx,%rdx - 440372: 74 04 je 440378 <__tsearch+0xd8> - 440374: 80 62 18 fe andb $0xfe,0x18(%rdx) - 440378: 4d 85 ed test %r13,%r13 - 44037b: 74 63 je 4403e0 <__tsearch+0x140> - 44037d: 49 8b 55 00 mov 0x0(%r13),%rdx - 440381: 0f b6 72 18 movzbl 0x18(%rdx),%esi - 440385: 40 f6 c6 01 test $0x1,%sil - 440389: 74 55 je 4403e0 <__tsearch+0x140> - 44038b: 8b 4c 24 08 mov 0x8(%rsp),%ecx - 44038f: 45 85 f6 test %r14d,%r14d - 440392: 48 8b 7d 00 mov 0x0(%rbp),%rdi - 440396: 41 0f 9f c3 setg %r11b - 44039a: 85 c9 test %ecx,%ecx - 44039c: 41 0f 9f c2 setg %r10b - 4403a0: 45 38 d3 cmp %r10b,%r11b - 4403a3: 0f 84 37 01 00 00 je 4404e0 <__tsearch+0x240> - 4403a9: 83 ce 01 or $0x1,%esi - 4403ac: 40 88 72 18 mov %sil,0x18(%rdx) - 4403b0: 80 4f 18 01 orb $0x1,0x18(%rdi) - 4403b4: 80 60 18 fe andb $0xfe,0x18(%rax) - 4403b8: 45 85 f6 test %r14d,%r14d - 4403bb: 0f 88 4f 01 00 00 js 440510 <__tsearch+0x270> - 4403c1: 48 8b 70 08 mov 0x8(%rax),%rsi - 4403c5: 48 89 72 10 mov %rsi,0x10(%rdx) - 4403c9: 48 89 50 08 mov %rdx,0x8(%rax) - 4403cd: 48 8b 50 10 mov 0x10(%rax),%rdx - 4403d1: 48 89 57 08 mov %rdx,0x8(%rdi) - 4403d5: 48 89 78 10 mov %rdi,0x10(%rax) - 4403d9: 48 89 45 00 mov %rax,0x0(%rbp) - 4403dd: 0f 1f 00 nopl (%rax) - 4403e0: 45 85 ff test %r15d,%r15d - 4403e3: 0f 89 07 ff ff ff jns 4402f0 <__tsearch+0x50> - 4403e9: 48 8d 53 08 lea 0x8(%rbx),%rdx - 4403ed: 48 8b 5b 08 mov 0x8(%rbx),%rbx - 4403f1: 4c 89 ed mov %r13,%rbp - 4403f4: 44 89 74 24 08 mov %r14d,0x8(%rsp) - 4403f9: 48 85 db test %rbx,%rbx - 4403fc: 0f 85 07 ff ff ff jne 440309 <__tsearch+0x69> - 440402: bf 20 00 00 00 mov $0x20,%edi - 440407: 48 89 54 24 08 mov %rdx,0x8(%rsp) - 44040c: e8 ff d5 fd ff callq 41da10 <__libc_malloc> - 440411: 48 85 c0 test %rax,%rax - 440414: 48 89 c6 mov %rax,%rsi - 440417: 0f 84 b6 01 00 00 je 4405d3 <__tsearch+0x333> - 44041d: 48 8b 54 24 08 mov 0x8(%rsp),%rdx - 440422: 48 89 02 mov %rax,(%rdx) - 440425: 48 8b 44 24 10 mov 0x10(%rsp),%rax - 44042a: 80 4e 18 01 orb $0x1,0x18(%rsi) - 44042e: 49 39 d4 cmp %rdx,%r12 - 440431: 48 c7 46 10 00 00 00 movq $0x0,0x10(%rsi) - 440438: 00 - 440439: 48 c7 46 08 00 00 00 movq $0x0,0x8(%rsi) - 440440: 00 - 440441: 48 89 06 mov %rax,(%rsi) - 440444: 0f 84 a1 01 00 00 je 4405eb <__tsearch+0x34b> - 44044a: 48 8b 12 mov (%rdx),%rdx - 44044d: 48 8b 42 10 mov 0x10(%rdx),%rax - 440451: 80 4a 18 01 orb $0x1,0x18(%rdx) - 440455: 48 85 c0 test %rax,%rax - 440458: 74 04 je 44045e <__tsearch+0x1be> - 44045a: 80 60 18 fe andb $0xfe,0x18(%rax) - 44045e: 48 8b 42 08 mov 0x8(%rdx),%rax - 440462: 48 85 c0 test %rax,%rax - 440465: 74 04 je 44046b <__tsearch+0x1cb> - 440467: 80 60 18 fe andb $0xfe,0x18(%rax) - 44046b: 49 8b 0c 24 mov (%r12),%rcx - 44046f: 48 89 f0 mov %rsi,%rax - 440472: 0f b6 79 18 movzbl 0x18(%rcx),%edi - 440476: 40 f6 c7 01 test $0x1,%dil - 44047a: 74 53 je 4404cf <__tsearch+0x22f> - 44047c: 45 85 ff test %r15d,%r15d - 44047f: 4d 8b 55 00 mov 0x0(%r13),%r10 - 440483: 41 0f 9f c3 setg %r11b - 440487: 45 85 f6 test %r14d,%r14d - 44048a: 41 0f 9f c1 setg %r9b - 44048e: 45 38 cb cmp %r9b,%r11b - 440491: 0f 84 eb 00 00 00 je 440582 <__tsearch+0x2e2> - 440497: 83 cf 01 or $0x1,%edi - 44049a: 40 88 79 18 mov %dil,0x18(%rcx) - 44049e: 41 80 4a 18 01 orb $0x1,0x18(%r10) - 4404a3: 80 62 18 fe andb $0xfe,0x18(%rdx) - 4404a7: 45 85 ff test %r15d,%r15d - 4404aa: 0f 88 06 01 00 00 js 4405b6 <__tsearch+0x316> - 4404b0: 48 8b 42 08 mov 0x8(%rdx),%rax - 4404b4: 48 89 41 10 mov %rax,0x10(%rcx) - 4404b8: 48 8b 42 10 mov 0x10(%rdx),%rax - 4404bc: 48 89 4a 08 mov %rcx,0x8(%rdx) - 4404c0: 49 89 42 08 mov %rax,0x8(%r10) - 4404c4: 4c 89 52 10 mov %r10,0x10(%rdx) - 4404c8: 49 89 55 00 mov %rdx,0x0(%r13) - 4404cc: 48 89 f0 mov %rsi,%rax - 4404cf: 48 83 c4 28 add $0x28,%rsp - 4404d3: 5b pop %rbx - 4404d4: 5d pop %rbp - 4404d5: 41 5c pop %r12 - 4404d7: 41 5d pop %r13 - 4404d9: 41 5e pop %r14 - 4404db: 41 5f pop %r15 - 4404dd: c3 retq - 4404de: 66 90 xchg %ax,%ax - 4404e0: 48 89 55 00 mov %rdx,0x0(%rbp) - 4404e4: 80 62 18 fe andb $0xfe,0x18(%rdx) - 4404e8: 80 4f 18 01 orb $0x1,0x18(%rdi) - 4404ec: 45 85 f6 test %r14d,%r14d - 4404ef: 0f 88 b0 00 00 00 js 4405a5 <__tsearch+0x305> - 4404f5: 48 8b 42 08 mov 0x8(%rdx),%rax - 4404f9: 48 89 47 10 mov %rax,0x10(%rdi) - 4404fd: 48 89 7a 08 mov %rdi,0x8(%rdx) - 440501: e9 da fe ff ff jmpq 4403e0 <__tsearch+0x140> - 440506: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 44050d: 00 00 00 - 440510: 48 8b 70 10 mov 0x10(%rax),%rsi - 440514: 48 89 72 08 mov %rsi,0x8(%rdx) - 440518: 48 89 50 10 mov %rdx,0x10(%rax) - 44051c: 48 8b 50 08 mov 0x8(%rax),%rdx - 440520: 48 89 57 10 mov %rdx,0x10(%rdi) - 440524: 48 89 78 08 mov %rdi,0x8(%rax) - 440528: e9 ac fe ff ff jmpq 4403d9 <__tsearch+0x139> - 44052d: 0f 1f 00 nopl (%rax) - 440530: bf 20 00 00 00 mov $0x20,%edi - 440535: e8 d6 d4 fd ff callq 41da10 <__libc_malloc> - 44053a: 48 85 c0 test %rax,%rax - 44053d: 74 90 je 4404cf <__tsearch+0x22f> - 44053f: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx - 440544: 49 89 04 24 mov %rax,(%r12) - 440548: 80 48 18 01 orb $0x1,0x18(%rax) - 44054c: 48 c7 40 10 00 00 00 movq $0x0,0x10(%rax) - 440553: 00 - 440554: 48 c7 40 08 00 00 00 movq $0x0,0x8(%rax) - 44055b: 00 - 44055c: 48 89 08 mov %rcx,(%rax) - 44055f: 48 83 c4 28 add $0x28,%rsp - 440563: 5b pop %rbx - 440564: 5d pop %rbp - 440565: 41 5c pop %r12 - 440567: 41 5d pop %r13 - 440569: 41 5e pop %r14 - 44056b: 41 5f pop %r15 - 44056d: c3 retq - 44056e: 66 90 xchg %ax,%ax - 440570: 48 83 c4 28 add $0x28,%rsp - 440574: 48 89 d8 mov %rbx,%rax - 440577: 5b pop %rbx - 440578: 5d pop %rbp - 440579: 41 5c pop %r12 - 44057b: 41 5d pop %r13 - 44057d: 41 5e pop %r14 - 44057f: 41 5f pop %r15 - 440581: c3 retq - 440582: 49 89 4d 00 mov %rcx,0x0(%r13) - 440586: 80 61 18 fe andb $0xfe,0x18(%rcx) - 44058a: 41 80 4a 18 01 orb $0x1,0x18(%r10) - 44058f: 45 85 ff test %r15d,%r15d - 440592: 78 46 js 4405da <__tsearch+0x33a> - 440594: 48 8b 51 08 mov 0x8(%rcx),%rdx - 440598: 49 89 52 10 mov %rdx,0x10(%r10) - 44059c: 4c 89 51 08 mov %r10,0x8(%rcx) - 4405a0: e9 2a ff ff ff jmpq 4404cf <__tsearch+0x22f> - 4405a5: 48 8b 42 10 mov 0x10(%rdx),%rax - 4405a9: 48 89 47 08 mov %rax,0x8(%rdi) - 4405ad: 48 89 7a 10 mov %rdi,0x10(%rdx) - 4405b1: e9 2a fe ff ff jmpq 4403e0 <__tsearch+0x140> - 4405b6: 48 8b 42 10 mov 0x10(%rdx),%rax - 4405ba: 48 89 41 08 mov %rax,0x8(%rcx) - 4405be: 48 8b 42 08 mov 0x8(%rdx),%rax - 4405c2: 48 89 4a 10 mov %rcx,0x10(%rdx) - 4405c6: 49 89 42 10 mov %rax,0x10(%r10) - 4405ca: 4c 89 52 08 mov %r10,0x8(%rdx) - 4405ce: e9 f5 fe ff ff jmpq 4404c8 <__tsearch+0x228> - 4405d3: 31 c0 xor %eax,%eax - 4405d5: e9 f5 fe ff ff jmpq 4404cf <__tsearch+0x22f> - 4405da: 48 8b 51 10 mov 0x10(%rcx),%rdx - 4405de: 49 89 52 08 mov %rdx,0x8(%r10) - 4405e2: 4c 89 51 10 mov %r10,0x10(%rcx) - 4405e6: e9 e4 fe ff ff jmpq 4404cf <__tsearch+0x22f> - 4405eb: 48 89 f0 mov %rsi,%rax - 4405ee: e9 dc fe ff ff jmpq 4404cf <__tsearch+0x22f> - 4405f3: 0f 1f 00 nopl (%rax) - 4405f6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 4405fd: 00 00 00 - -0000000000440600 <__tfind>: - 440600: 48 85 f6 test %rsi,%rsi - 440603: 74 4b je 440650 <__tfind+0x50> - 440605: 41 54 push %r12 - 440607: 49 89 fc mov %rdi,%r12 - 44060a: 55 push %rbp - 44060b: 48 89 d5 mov %rdx,%rbp - 44060e: 53 push %rbx - 44060f: eb 21 jmp 440632 <__tfind+0x32> - 440611: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 440618: 48 8b 33 mov (%rbx),%rsi - 44061b: 4c 89 e7 mov %r12,%rdi - 44061e: ff d5 callq *%rbp - 440620: 85 c0 test %eax,%eax - 440622: 74 24 je 440648 <__tfind+0x48> - 440624: 48 8d 73 08 lea 0x8(%rbx),%rsi - 440628: 48 83 c3 10 add $0x10,%rbx - 44062c: 85 c0 test %eax,%eax - 44062e: 48 0f 49 f3 cmovns %rbx,%rsi - 440632: 48 8b 1e mov (%rsi),%rbx - 440635: 48 85 db test %rbx,%rbx - 440638: 75 de jne 440618 <__tfind+0x18> - 44063a: 5b pop %rbx - 44063b: 31 c0 xor %eax,%eax - 44063d: 5d pop %rbp - 44063e: 41 5c pop %r12 - 440640: c3 retq - 440641: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 440648: 48 89 d8 mov %rbx,%rax - 44064b: 5b pop %rbx - 44064c: 5d pop %rbp - 44064d: 41 5c pop %r12 - 44064f: c3 retq - 440650: 31 c0 xor %eax,%eax - 440652: c3 retq - 440653: 0f 1f 00 nopl (%rax) - 440656: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 44065d: 00 00 00 - -0000000000440660 <__tdelete>: - 440660: 55 push %rbp - 440661: 48 89 e5 mov %rsp,%rbp - 440664: 41 57 push %r15 - 440666: 41 56 push %r14 - 440668: 41 55 push %r13 - 44066a: 41 54 push %r12 - 44066c: 53 push %rbx - 44066d: 48 83 ec 28 sub $0x28,%rsp - 440671: 48 89 7d c0 mov %rdi,-0x40(%rbp) - 440675: 48 89 55 b8 mov %rdx,-0x48(%rbp) - 440679: 48 81 ec 50 01 00 00 sub $0x150,%rsp - 440680: 4c 8d 64 24 0f lea 0xf(%rsp),%r12 - 440685: 49 83 e4 f0 and $0xfffffffffffffff0,%r12 - 440689: 48 85 f6 test %rsi,%rsi - 44068c: 74 78 je 440706 <__tdelete+0xa6> - 44068e: 4c 8b 06 mov (%rsi),%r8 - 440691: 49 89 f6 mov %rsi,%r14 - 440694: 4d 85 c0 test %r8,%r8 - 440697: 74 6d je 440706 <__tdelete+0xa6> - 440699: 4d 89 c7 mov %r8,%r15 - 44069c: 31 db xor %ebx,%ebx - 44069e: c7 45 cc 28 00 00 00 movl $0x28,-0x34(%rbp) - 4406a5: 4c 89 c0 mov %r8,%rax - 4406a8: eb 17 jmp 4406c1 <__tdelete+0x61> - 4406aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4406b0: 49 8b 47 10 mov 0x10(%r15),%rax - 4406b4: 48 83 c3 01 add $0x1,%rbx - 4406b8: 4d 8d 77 10 lea 0x10(%r15),%r14 - 4406bc: 48 85 c0 test %rax,%rax - 4406bf: 74 45 je 440706 <__tdelete+0xa6> - 4406c1: 48 8b 30 mov (%rax),%rsi - 4406c4: 48 8b 7d c0 mov -0x40(%rbp),%rdi - 4406c8: 41 89 dd mov %ebx,%r13d - 4406cb: 48 8b 45 b8 mov -0x48(%rbp),%rax - 4406cf: ff d0 callq *%rax - 4406d1: 85 c0 test %eax,%eax - 4406d3: 41 89 c1 mov %eax,%r9d - 4406d6: 0f 84 84 00 00 00 je 440760 <__tdelete+0x100> - 4406dc: 39 5d cc cmp %ebx,-0x34(%rbp) - 4406df: 74 3f je 440720 <__tdelete+0xc0> - 4406e1: 4c 8d 2c dd 00 00 00 lea 0x0(,%rbx,8),%r13 - 4406e8: 00 - 4406e9: 45 85 c9 test %r9d,%r9d - 4406ec: 4f 89 34 2c mov %r14,(%r12,%r13,1) - 4406f0: 4d 8b 3e mov (%r14),%r15 - 4406f3: 79 bb jns 4406b0 <__tdelete+0x50> - 4406f5: 49 8b 47 08 mov 0x8(%r15),%rax - 4406f9: 48 83 c3 01 add $0x1,%rbx - 4406fd: 4d 8d 77 08 lea 0x8(%r15),%r14 - 440701: 48 85 c0 test %rax,%rax - 440704: 75 bb jne 4406c1 <__tdelete+0x61> - 440706: 48 8d 65 d8 lea -0x28(%rbp),%rsp - 44070a: 31 c0 xor %eax,%eax - 44070c: 5b pop %rbx - 44070d: 41 5c pop %r12 - 44070f: 41 5d pop %r13 - 440711: 41 5e pop %r14 - 440713: 41 5f pop %r15 - 440715: 5d pop %rbp - 440716: c3 retq - 440717: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 44071e: 00 00 - 440720: 83 45 cc 14 addl $0x14,-0x34(%rbp) - 440724: 4c 8d 2c dd 00 00 00 lea 0x0(,%rbx,8),%r13 - 44072b: 00 - 44072c: 4c 89 e6 mov %r12,%rsi - 44072f: 48 63 45 cc movslq -0x34(%rbp),%rax - 440733: 44 89 4d b0 mov %r9d,-0x50(%rbp) - 440737: 4c 89 ea mov %r13,%rdx - 44073a: 48 8d 04 c5 1e 00 00 lea 0x1e(,%rax,8),%rax - 440741: 00 - 440742: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 440746: 48 29 c4 sub %rax,%rsp - 440749: 48 8d 7c 24 0f lea 0xf(%rsp),%rdi - 44074e: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 440752: e8 c9 b8 fe ff callq 42c020 - 440757: 44 8b 4d b0 mov -0x50(%rbp),%r9d - 44075b: 49 89 c4 mov %rax,%r12 - 44075e: eb 89 jmp 4406e9 <__tdelete+0x89> - 440760: 4d 8b 06 mov (%r14),%r8 - 440763: 49 8b 70 08 mov 0x8(%r8),%rsi - 440767: 49 8b 58 10 mov 0x10(%r8),%rbx - 44076b: 48 85 f6 test %rsi,%rsi - 44076e: 0f 84 94 00 00 00 je 440808 <__tdelete+0x1a8> - 440774: 48 85 db test %rbx,%rbx - 440777: 0f 84 8b 00 00 00 je 440808 <__tdelete+0x1a8> - 44077d: 49 63 c5 movslq %r13d,%rax - 440780: 4d 8d 48 10 lea 0x10(%r8),%r9 - 440784: 48 8d 0c c5 00 00 00 lea 0x0(,%rax,8),%rcx - 44078b: 00 - 44078c: eb 28 jmp 4407b6 <__tdelete+0x156> - 44078e: 66 90 xchg %ax,%ax - 440790: 48 8b 43 08 mov 0x8(%rbx),%rax - 440794: 41 83 c5 01 add $0x1,%r13d - 440798: 4d 89 34 0c mov %r14,(%r12,%rcx,1) - 44079c: 48 83 c1 08 add $0x8,%rcx - 4407a0: 48 85 c0 test %rax,%rax - 4407a3: 0f 84 2f 02 00 00 je 4409d8 <__tdelete+0x378> - 4407a9: 48 8d 53 08 lea 0x8(%rbx),%rdx - 4407ad: 4d 89 ce mov %r9,%r14 - 4407b0: 48 89 c3 mov %rax,%rbx - 4407b3: 49 89 d1 mov %rdx,%r9 - 4407b6: 44 39 6d cc cmp %r13d,-0x34(%rbp) - 4407ba: 75 d4 jne 440790 <__tdelete+0x130> - 4407bc: 83 45 cc 14 addl $0x14,-0x34(%rbp) - 4407c0: 48 89 ca mov %rcx,%rdx - 4407c3: 4c 89 e6 mov %r12,%rsi - 4407c6: 48 63 45 cc movslq -0x34(%rbp),%rax - 4407ca: 4c 89 45 b0 mov %r8,-0x50(%rbp) - 4407ce: 4c 89 4d b8 mov %r9,-0x48(%rbp) - 4407d2: 48 89 4d c0 mov %rcx,-0x40(%rbp) - 4407d6: 48 8d 04 c5 1e 00 00 lea 0x1e(,%rax,8),%rax - 4407dd: 00 - 4407de: 48 83 e0 f0 and $0xfffffffffffffff0,%rax - 4407e2: 48 29 c4 sub %rax,%rsp - 4407e5: 48 8d 7c 24 0f lea 0xf(%rsp),%rdi - 4407ea: 48 83 e7 f0 and $0xfffffffffffffff0,%rdi - 4407ee: e8 2d b8 fe ff callq 42c020 - 4407f3: 4c 8b 45 b0 mov -0x50(%rbp),%r8 - 4407f7: 49 89 c4 mov %rax,%r12 - 4407fa: 4c 8b 4d b8 mov -0x48(%rbp),%r9 - 4407fe: 48 8b 4d c0 mov -0x40(%rbp),%rcx - 440802: eb 8c jmp 440790 <__tdelete+0x130> - 440804: 0f 1f 40 00 nopl 0x0(%rax) - 440808: 48 85 f6 test %rsi,%rsi - 44080b: 48 0f 44 f3 cmove %rbx,%rsi - 44080f: 45 85 ed test %r13d,%r13d - 440812: 0f 85 69 02 00 00 jne 440a81 <__tdelete+0x421> - 440818: 49 89 36 mov %rsi,(%r14) - 44081b: 4c 89 c3 mov %r8,%rbx - 44081e: 49 39 d8 cmp %rbx,%r8 - 440821: 74 06 je 440829 <__tdelete+0x1c9> - 440823: 48 8b 03 mov (%rbx),%rax - 440826: 49 89 00 mov %rax,(%r8) - 440829: f6 43 18 01 testb $0x1,0x18(%rbx) - 44082d: 0f 85 b6 00 00 00 jne 4408e9 <__tdelete+0x289> - 440833: 45 85 ed test %r13d,%r13d - 440836: 0f 84 56 02 00 00 je 440a92 <__tdelete+0x432> - 44083c: 48 85 f6 test %rsi,%rsi - 44083f: 74 0a je 44084b <__tdelete+0x1eb> - 440841: f6 46 18 01 testb $0x1,0x18(%rsi) - 440845: 0f 85 7d 01 00 00 jne 4409c8 <__tdelete+0x368> - 44084b: 4d 63 cd movslq %r13d,%r9 - 44084e: 4b 8b 7c cc f8 mov -0x8(%r12,%r9,8),%rdi - 440853: 48 8b 17 mov (%rdi),%rdx - 440856: 48 8b 42 08 mov 0x8(%rdx),%rax - 44085a: 48 39 f0 cmp %rsi,%rax - 44085d: 0f 84 ed 00 00 00 je 440950 <__tdelete+0x2f0> - 440863: 0f b6 48 18 movzbl 0x18(%rax),%ecx - 440867: f6 c1 01 test $0x1,%cl - 44086a: 74 29 je 440895 <__tdelete+0x235> - 44086c: 83 e1 fe and $0xfffffffe,%ecx - 44086f: 41 83 c5 01 add $0x1,%r13d - 440873: 88 48 18 mov %cl,0x18(%rax) - 440876: 80 4a 18 01 orb $0x1,0x18(%rdx) - 44087a: 48 8b 48 10 mov 0x10(%rax),%rcx - 44087e: 48 89 4a 08 mov %rcx,0x8(%rdx) - 440882: 48 89 50 10 mov %rdx,0x10(%rax) - 440886: 48 89 07 mov %rax,(%rdi) - 440889: 48 8d 78 10 lea 0x10(%rax),%rdi - 44088d: 48 8b 42 08 mov 0x8(%rdx),%rax - 440891: 4b 89 3c cc mov %rdi,(%r12,%r9,8) - 440895: 48 8b 48 10 mov 0x10(%rax),%rcx - 440899: 48 85 c9 test %rcx,%rcx - 44089c: 74 6a je 440908 <__tdelete+0x2a8> - 44089e: f6 41 18 01 testb $0x1,0x18(%rcx) - 4408a2: 74 64 je 440908 <__tdelete+0x2a8> - 4408a4: 48 8b 70 08 mov 0x8(%rax),%rsi - 4408a8: 48 85 f6 test %rsi,%rsi - 4408ab: 74 06 je 4408b3 <__tdelete+0x253> - 4408ad: f6 46 18 01 testb $0x1,0x18(%rsi) - 4408b1: 75 6c jne 44091f <__tdelete+0x2bf> - 4408b3: 0f b6 72 18 movzbl 0x18(%rdx),%esi - 4408b7: 44 0f b6 49 18 movzbl 0x18(%rcx),%r9d - 4408bc: 83 e6 01 and $0x1,%esi - 4408bf: 41 83 e1 fe and $0xfffffffe,%r9d - 4408c3: 44 09 ce or %r9d,%esi - 4408c6: 40 88 71 18 mov %sil,0x18(%rcx) - 4408ca: 48 8b 71 10 mov 0x10(%rcx),%rsi - 4408ce: 48 89 72 08 mov %rsi,0x8(%rdx) - 4408d2: 48 8b 71 08 mov 0x8(%rcx),%rsi - 4408d6: 48 89 70 10 mov %rsi,0x10(%rax) - 4408da: 48 89 41 08 mov %rax,0x8(%rcx) - 4408de: 48 89 51 10 mov %rdx,0x10(%rcx) - 4408e2: 48 89 0f mov %rcx,(%rdi) - 4408e5: 80 62 18 fe andb $0xfe,0x18(%rdx) - 4408e9: 48 89 df mov %rbx,%rdi - 4408ec: e8 bf d4 fd ff callq 41ddb0 <__cfree> - 4408f1: 48 8d 65 d8 lea -0x28(%rbp),%rsp - 4408f5: 4c 89 f8 mov %r15,%rax - 4408f8: 5b pop %rbx - 4408f9: 41 5c pop %r12 - 4408fb: 41 5d pop %r13 - 4408fd: 41 5e pop %r14 - 4408ff: 41 5f pop %r15 - 440901: 5d pop %rbp - 440902: c3 retq - 440903: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 440908: 48 8b 70 08 mov 0x8(%rax),%rsi - 44090c: 48 85 f6 test %rsi,%rsi - 44090f: 0f 84 9b 00 00 00 je 4409b0 <__tdelete+0x350> - 440915: f6 46 18 01 testb $0x1,0x18(%rsi) - 440919: 0f 84 91 00 00 00 je 4409b0 <__tdelete+0x350> - 44091f: 44 0f b6 4a 18 movzbl 0x18(%rdx),%r9d - 440924: 44 0f b6 50 18 movzbl 0x18(%rax),%r10d - 440929: 41 83 e1 01 and $0x1,%r9d - 44092d: 41 83 e2 fe and $0xfffffffe,%r10d - 440931: 45 09 d1 or %r10d,%r9d - 440934: 44 88 48 18 mov %r9b,0x18(%rax) - 440938: 80 62 18 fe andb $0xfe,0x18(%rdx) - 44093c: 80 66 18 fe andb $0xfe,0x18(%rsi) - 440940: 48 89 4a 08 mov %rcx,0x8(%rdx) - 440944: 48 89 50 10 mov %rdx,0x10(%rax) - 440948: 48 89 07 mov %rax,(%rdi) - 44094b: eb 9c jmp 4408e9 <__tdelete+0x289> - 44094d: 0f 1f 00 nopl (%rax) - 440950: 48 8b 42 10 mov 0x10(%rdx),%rax - 440954: 0f b6 48 18 movzbl 0x18(%rax),%ecx - 440958: f6 c1 01 test $0x1,%cl - 44095b: 74 29 je 440986 <__tdelete+0x326> - 44095d: 83 e1 fe and $0xfffffffe,%ecx - 440960: 41 83 c5 01 add $0x1,%r13d - 440964: 88 48 18 mov %cl,0x18(%rax) - 440967: 80 4a 18 01 orb $0x1,0x18(%rdx) - 44096b: 48 8b 48 08 mov 0x8(%rax),%rcx - 44096f: 48 89 4a 10 mov %rcx,0x10(%rdx) - 440973: 48 89 50 08 mov %rdx,0x8(%rax) - 440977: 48 89 07 mov %rax,(%rdi) - 44097a: 48 8d 78 08 lea 0x8(%rax),%rdi - 44097e: 48 8b 42 10 mov 0x10(%rdx),%rax - 440982: 4b 89 3c cc mov %rdi,(%r12,%r9,8) - 440986: 48 8b 48 08 mov 0x8(%rax),%rcx - 44098a: 48 85 c9 test %rcx,%rcx - 44098d: 74 06 je 440995 <__tdelete+0x335> - 44098f: f6 41 18 01 testb $0x1,0x18(%rcx) - 440993: 75 6b jne 440a00 <__tdelete+0x3a0> - 440995: 48 8b 70 10 mov 0x10(%rax),%rsi - 440999: 48 85 f6 test %rsi,%rsi - 44099c: 74 12 je 4409b0 <__tdelete+0x350> - 44099e: f6 46 18 01 testb $0x1,0x18(%rsi) - 4409a2: 0f 85 a8 00 00 00 jne 440a50 <__tdelete+0x3f0> - 4409a8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 4409af: 00 - 4409b0: 80 48 18 01 orb $0x1,0x18(%rax) - 4409b4: 41 83 ed 01 sub $0x1,%r13d - 4409b8: 48 89 d6 mov %rdx,%rsi - 4409bb: 0f 85 7b fe ff ff jne 44083c <__tdelete+0x1dc> - 4409c1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4409c8: 80 66 18 fe andb $0xfe,0x18(%rsi) - 4409cc: e9 18 ff ff ff jmpq 4408e9 <__tdelete+0x289> - 4409d1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 4409d8: 48 8b 73 10 mov 0x10(%rbx),%rsi - 4409dc: 49 63 c5 movslq %r13d,%rax - 4409df: 49 8b 44 c4 f8 mov -0x8(%r12,%rax,8),%rax - 4409e4: 48 8b 00 mov (%rax),%rax - 4409e7: 48 39 58 10 cmp %rbx,0x10(%rax) - 4409eb: 0f 84 98 00 00 00 je 440a89 <__tdelete+0x429> - 4409f1: 48 89 70 08 mov %rsi,0x8(%rax) - 4409f5: e9 24 fe ff ff jmpq 44081e <__tdelete+0x1be> - 4409fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 440a00: 48 8b 70 10 mov 0x10(%rax),%rsi - 440a04: 48 85 f6 test %rsi,%rsi - 440a07: 74 06 je 440a0f <__tdelete+0x3af> - 440a09: f6 46 18 01 testb $0x1,0x18(%rsi) - 440a0d: 75 41 jne 440a50 <__tdelete+0x3f0> - 440a0f: 0f b6 72 18 movzbl 0x18(%rdx),%esi - 440a13: 44 0f b6 49 18 movzbl 0x18(%rcx),%r9d - 440a18: 83 e6 01 and $0x1,%esi - 440a1b: 41 83 e1 fe and $0xfffffffe,%r9d - 440a1f: 44 09 ce or %r9d,%esi - 440a22: 40 88 71 18 mov %sil,0x18(%rcx) - 440a26: 48 8b 71 08 mov 0x8(%rcx),%rsi - 440a2a: 48 89 72 10 mov %rsi,0x10(%rdx) - 440a2e: 48 8b 71 10 mov 0x10(%rcx),%rsi - 440a32: 48 89 70 08 mov %rsi,0x8(%rax) - 440a36: 48 89 41 10 mov %rax,0x10(%rcx) - 440a3a: 48 89 51 08 mov %rdx,0x8(%rcx) - 440a3e: 48 89 0f mov %rcx,(%rdi) - 440a41: 80 62 18 fe andb $0xfe,0x18(%rdx) - 440a45: e9 9f fe ff ff jmpq 4408e9 <__tdelete+0x289> - 440a4a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 440a50: 44 0f b6 4a 18 movzbl 0x18(%rdx),%r9d - 440a55: 44 0f b6 50 18 movzbl 0x18(%rax),%r10d - 440a5a: 41 83 e1 01 and $0x1,%r9d - 440a5e: 41 83 e2 fe and $0xfffffffe,%r10d - 440a62: 45 09 d1 or %r10d,%r9d - 440a65: 44 88 48 18 mov %r9b,0x18(%rax) - 440a69: 80 62 18 fe andb $0xfe,0x18(%rdx) - 440a6d: 80 66 18 fe andb $0xfe,0x18(%rsi) - 440a71: 48 89 4a 10 mov %rcx,0x10(%rdx) - 440a75: 48 89 50 08 mov %rdx,0x8(%rax) - 440a79: 48 89 07 mov %rax,(%rdi) - 440a7c: e9 68 fe ff ff jmpq 4408e9 <__tdelete+0x289> - 440a81: 4c 89 c3 mov %r8,%rbx - 440a84: e9 53 ff ff ff jmpq 4409dc <__tdelete+0x37c> - 440a89: 48 89 70 10 mov %rsi,0x10(%rax) - 440a8d: e9 8c fd ff ff jmpq 44081e <__tdelete+0x1be> - 440a92: 48 85 f6 test %rsi,%rsi - 440a95: 0f 85 2d ff ff ff jne 4409c8 <__tdelete+0x368> - 440a9b: e9 49 fe ff ff jmpq 4408e9 <__tdelete+0x289> - -0000000000440aa0 <__twalk>: - 440aa0: 41 57 push %r15 - 440aa2: 41 56 push %r14 - 440aa4: 41 55 push %r13 - 440aa6: 41 54 push %r12 - 440aa8: 55 push %rbp - 440aa9: 53 push %rbx - 440aaa: 48 83 ec 08 sub $0x8,%rsp - 440aae: 48 85 ff test %rdi,%rdi - 440ab1: 0f 84 91 0a 00 00 je 441548 <__twalk+0xaa8> - 440ab7: 48 85 f6 test %rsi,%rsi - 440aba: 48 89 f0 mov %rsi,%rax - 440abd: 0f 84 85 0a 00 00 je 441548 <__twalk+0xaa8> - 440ac3: 48 83 7f 08 00 cmpq $0x0,0x8(%rdi) - 440ac8: 0f 84 d2 0a 00 00 je 4415a0 <__twalk+0xb00> - 440ace: 48 89 fd mov %rdi,%rbp - 440ad1: 31 d2 xor %edx,%edx - 440ad3: 31 f6 xor %esi,%esi - 440ad5: 48 89 c3 mov %rax,%rbx - 440ad8: ff d0 callq *%rax - 440ada: 4c 8b 65 08 mov 0x8(%rbp),%r12 - 440ade: 4d 85 e4 test %r12,%r12 - 440ae1: 0f 84 14 05 00 00 je 440ffb <__twalk+0x55b> - 440ae7: 49 83 7c 24 08 00 cmpq $0x0,0x8(%r12) - 440aed: ba 01 00 00 00 mov $0x1,%edx - 440af2: 0f 84 88 0a 00 00 je 441580 <__twalk+0xae0> - 440af8: 31 f6 xor %esi,%esi - 440afa: 4c 89 e7 mov %r12,%rdi - 440afd: ff d3 callq *%rbx - 440aff: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 - 440b04: 4d 85 ed test %r13,%r13 - 440b07: 0f 84 61 02 00 00 je 440d6e <__twalk+0x2ce> - 440b0d: 49 83 7d 08 00 cmpq $0x0,0x8(%r13) - 440b12: ba 02 00 00 00 mov $0x2,%edx - 440b17: 0f 84 db 0a 00 00 je 4415f8 <__twalk+0xb58> - 440b1d: 31 f6 xor %esi,%esi - 440b1f: 4c 89 ef mov %r13,%rdi - 440b22: ff d3 callq *%rbx - 440b24: 4d 8b 75 08 mov 0x8(%r13),%r14 - 440b28: 4d 85 f6 test %r14,%r14 - 440b2b: 0f 84 09 01 00 00 je 440c3a <__twalk+0x19a> - 440b31: 49 83 7e 08 00 cmpq $0x0,0x8(%r14) - 440b36: ba 03 00 00 00 mov $0x3,%edx - 440b3b: 0f 84 f7 0a 00 00 je 441638 <__twalk+0xb98> - 440b41: 31 f6 xor %esi,%esi - 440b43: 4c 89 f7 mov %r14,%rdi - 440b46: ff d3 callq *%rbx - 440b48: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 440b4c: 4d 85 ff test %r15,%r15 - 440b4f: 74 61 je 440bb2 <__twalk+0x112> - 440b51: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) - 440b56: ba 04 00 00 00 mov $0x4,%edx - 440b5b: 0f 84 17 0d 00 00 je 441878 <__twalk+0xdd8> - 440b61: 31 f6 xor %esi,%esi - 440b63: 4c 89 ff mov %r15,%rdi - 440b66: ff d3 callq *%rbx - 440b68: 49 8b 7f 08 mov 0x8(%r15),%rdi - 440b6c: 48 85 ff test %rdi,%rdi - 440b6f: 74 0d je 440b7e <__twalk+0xde> - 440b71: ba 05 00 00 00 mov $0x5,%edx - 440b76: 48 89 de mov %rbx,%rsi - 440b79: e8 92 f1 ff ff callq 43fd10 - 440b7e: 4c 89 ff mov %r15,%rdi - 440b81: ba 04 00 00 00 mov $0x4,%edx - 440b86: be 01 00 00 00 mov $0x1,%esi - 440b8b: ff d3 callq *%rbx - 440b8d: 49 8b 7f 10 mov 0x10(%r15),%rdi - 440b91: 48 85 ff test %rdi,%rdi - 440b94: 74 0d je 440ba3 <__twalk+0x103> - 440b96: ba 05 00 00 00 mov $0x5,%edx - 440b9b: 48 89 de mov %rbx,%rsi - 440b9e: e8 6d f1 ff ff callq 43fd10 - 440ba3: ba 04 00 00 00 mov $0x4,%edx - 440ba8: be 02 00 00 00 mov $0x2,%esi - 440bad: 4c 89 ff mov %r15,%rdi - 440bb0: ff d3 callq *%rbx - 440bb2: ba 03 00 00 00 mov $0x3,%edx - 440bb7: be 01 00 00 00 mov $0x1,%esi - 440bbc: 4c 89 f7 mov %r14,%rdi - 440bbf: ff d3 callq *%rbx - 440bc1: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 440bc5: 4d 85 ff test %r15,%r15 - 440bc8: 74 61 je 440c2b <__twalk+0x18b> - 440bca: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) - 440bcf: ba 04 00 00 00 mov $0x4,%edx - 440bd4: 0f 84 fe 0c 00 00 je 4418d8 <__twalk+0xe38> - 440bda: 31 f6 xor %esi,%esi - 440bdc: 4c 89 ff mov %r15,%rdi - 440bdf: ff d3 callq *%rbx - 440be1: 49 8b 7f 08 mov 0x8(%r15),%rdi - 440be5: 48 85 ff test %rdi,%rdi - 440be8: 74 0d je 440bf7 <__twalk+0x157> - 440bea: ba 05 00 00 00 mov $0x5,%edx - 440bef: 48 89 de mov %rbx,%rsi - 440bf2: e8 19 f1 ff ff callq 43fd10 - 440bf7: 4c 89 ff mov %r15,%rdi - 440bfa: ba 04 00 00 00 mov $0x4,%edx - 440bff: be 01 00 00 00 mov $0x1,%esi - 440c04: ff d3 callq *%rbx - 440c06: 49 8b 7f 10 mov 0x10(%r15),%rdi - 440c0a: 48 85 ff test %rdi,%rdi - 440c0d: 74 0d je 440c1c <__twalk+0x17c> - 440c0f: ba 05 00 00 00 mov $0x5,%edx - 440c14: 48 89 de mov %rbx,%rsi - 440c17: e8 f4 f0 ff ff callq 43fd10 - 440c1c: ba 04 00 00 00 mov $0x4,%edx - 440c21: be 02 00 00 00 mov $0x2,%esi - 440c26: 4c 89 ff mov %r15,%rdi - 440c29: ff d3 callq *%rbx - 440c2b: ba 03 00 00 00 mov $0x3,%edx - 440c30: be 02 00 00 00 mov $0x2,%esi - 440c35: 4c 89 f7 mov %r14,%rdi - 440c38: ff d3 callq *%rbx - 440c3a: ba 02 00 00 00 mov $0x2,%edx - 440c3f: be 01 00 00 00 mov $0x1,%esi - 440c44: 4c 89 ef mov %r13,%rdi - 440c47: ff d3 callq *%rbx - 440c49: 4d 8b 75 10 mov 0x10(%r13),%r14 - 440c4d: 4d 85 f6 test %r14,%r14 - 440c50: 0f 84 09 01 00 00 je 440d5f <__twalk+0x2bf> - 440c56: 49 83 7e 08 00 cmpq $0x0,0x8(%r14) - 440c5b: ba 03 00 00 00 mov $0x3,%edx - 440c60: 0f 84 32 0a 00 00 je 441698 <__twalk+0xbf8> - 440c66: 31 f6 xor %esi,%esi - 440c68: 4c 89 f7 mov %r14,%rdi - 440c6b: ff d3 callq *%rbx - 440c6d: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 440c71: 4d 85 ff test %r15,%r15 - 440c74: 74 61 je 440cd7 <__twalk+0x237> - 440c76: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) - 440c7b: ba 04 00 00 00 mov $0x4,%edx - 440c80: 0f 84 92 0c 00 00 je 441918 <__twalk+0xe78> - 440c86: 31 f6 xor %esi,%esi - 440c88: 4c 89 ff mov %r15,%rdi - 440c8b: ff d3 callq *%rbx - 440c8d: 49 8b 7f 08 mov 0x8(%r15),%rdi - 440c91: 48 85 ff test %rdi,%rdi - 440c94: 74 0d je 440ca3 <__twalk+0x203> - 440c96: ba 05 00 00 00 mov $0x5,%edx - 440c9b: 48 89 de mov %rbx,%rsi - 440c9e: e8 6d f0 ff ff callq 43fd10 - 440ca3: 4c 89 ff mov %r15,%rdi - 440ca6: ba 04 00 00 00 mov $0x4,%edx - 440cab: be 01 00 00 00 mov $0x1,%esi - 440cb0: ff d3 callq *%rbx - 440cb2: 49 8b 7f 10 mov 0x10(%r15),%rdi - 440cb6: 48 85 ff test %rdi,%rdi - 440cb9: 74 0d je 440cc8 <__twalk+0x228> - 440cbb: ba 05 00 00 00 mov $0x5,%edx - 440cc0: 48 89 de mov %rbx,%rsi - 440cc3: e8 48 f0 ff ff callq 43fd10 - 440cc8: ba 04 00 00 00 mov $0x4,%edx - 440ccd: be 02 00 00 00 mov $0x2,%esi - 440cd2: 4c 89 ff mov %r15,%rdi - 440cd5: ff d3 callq *%rbx - 440cd7: ba 03 00 00 00 mov $0x3,%edx - 440cdc: be 01 00 00 00 mov $0x1,%esi - 440ce1: 4c 89 f7 mov %r14,%rdi - 440ce4: ff d3 callq *%rbx - 440ce6: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 440cea: 4d 85 ff test %r15,%r15 - 440ced: 74 61 je 440d50 <__twalk+0x2b0> - 440cef: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) - 440cf4: ba 04 00 00 00 mov $0x4,%edx - 440cf9: 0f 84 f9 0b 00 00 je 4418f8 <__twalk+0xe58> - 440cff: 31 f6 xor %esi,%esi - 440d01: 4c 89 ff mov %r15,%rdi - 440d04: ff d3 callq *%rbx - 440d06: 49 8b 7f 08 mov 0x8(%r15),%rdi - 440d0a: 48 85 ff test %rdi,%rdi - 440d0d: 74 0d je 440d1c <__twalk+0x27c> - 440d0f: ba 05 00 00 00 mov $0x5,%edx - 440d14: 48 89 de mov %rbx,%rsi - 440d17: e8 f4 ef ff ff callq 43fd10 - 440d1c: 4c 89 ff mov %r15,%rdi - 440d1f: ba 04 00 00 00 mov $0x4,%edx - 440d24: be 01 00 00 00 mov $0x1,%esi - 440d29: ff d3 callq *%rbx - 440d2b: 49 8b 7f 10 mov 0x10(%r15),%rdi - 440d2f: 48 85 ff test %rdi,%rdi - 440d32: 74 0d je 440d41 <__twalk+0x2a1> - 440d34: ba 05 00 00 00 mov $0x5,%edx - 440d39: 48 89 de mov %rbx,%rsi - 440d3c: e8 cf ef ff ff callq 43fd10 - 440d41: ba 04 00 00 00 mov $0x4,%edx - 440d46: be 02 00 00 00 mov $0x2,%esi - 440d4b: 4c 89 ff mov %r15,%rdi - 440d4e: ff d3 callq *%rbx - 440d50: ba 03 00 00 00 mov $0x3,%edx - 440d55: be 02 00 00 00 mov $0x2,%esi - 440d5a: 4c 89 f7 mov %r14,%rdi - 440d5d: ff d3 callq *%rbx - 440d5f: ba 02 00 00 00 mov $0x2,%edx - 440d64: be 02 00 00 00 mov $0x2,%esi - 440d69: 4c 89 ef mov %r13,%rdi - 440d6c: ff d3 callq *%rbx - 440d6e: ba 01 00 00 00 mov $0x1,%edx - 440d73: be 01 00 00 00 mov $0x1,%esi - 440d78: 4c 89 e7 mov %r12,%rdi - 440d7b: ff d3 callq *%rbx - 440d7d: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 - 440d82: 4d 85 ed test %r13,%r13 - 440d85: 0f 84 61 02 00 00 je 440fec <__twalk+0x54c> - 440d8b: 49 83 7d 08 00 cmpq $0x0,0x8(%r13) - 440d90: ba 02 00 00 00 mov $0x2,%edx - 440d95: 0f 84 1d 08 00 00 je 4415b8 <__twalk+0xb18> - 440d9b: 31 f6 xor %esi,%esi - 440d9d: 4c 89 ef mov %r13,%rdi - 440da0: ff d3 callq *%rbx - 440da2: 4d 8b 75 08 mov 0x8(%r13),%r14 - 440da6: 4d 85 f6 test %r14,%r14 - 440da9: 0f 84 09 01 00 00 je 440eb8 <__twalk+0x418> - 440daf: 49 83 7e 08 00 cmpq $0x0,0x8(%r14) - 440db4: ba 03 00 00 00 mov $0x3,%edx - 440db9: 0f 84 b9 08 00 00 je 441678 <__twalk+0xbd8> - 440dbf: 31 f6 xor %esi,%esi - 440dc1: 4c 89 f7 mov %r14,%rdi - 440dc4: ff d3 callq *%rbx - 440dc6: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 440dca: 4d 85 ff test %r15,%r15 - 440dcd: 74 61 je 440e30 <__twalk+0x390> - 440dcf: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) - 440dd4: ba 04 00 00 00 mov $0x4,%edx - 440dd9: 0f 84 d9 0a 00 00 je 4418b8 <__twalk+0xe18> - 440ddf: 31 f6 xor %esi,%esi - 440de1: 4c 89 ff mov %r15,%rdi - 440de4: ff d3 callq *%rbx - 440de6: 49 8b 7f 08 mov 0x8(%r15),%rdi - 440dea: 48 85 ff test %rdi,%rdi - 440ded: 74 0d je 440dfc <__twalk+0x35c> - 440def: ba 05 00 00 00 mov $0x5,%edx - 440df4: 48 89 de mov %rbx,%rsi - 440df7: e8 14 ef ff ff callq 43fd10 - 440dfc: 4c 89 ff mov %r15,%rdi - 440dff: ba 04 00 00 00 mov $0x4,%edx - 440e04: be 01 00 00 00 mov $0x1,%esi - 440e09: ff d3 callq *%rbx - 440e0b: 49 8b 7f 10 mov 0x10(%r15),%rdi - 440e0f: 48 85 ff test %rdi,%rdi - 440e12: 74 0d je 440e21 <__twalk+0x381> - 440e14: ba 05 00 00 00 mov $0x5,%edx - 440e19: 48 89 de mov %rbx,%rsi - 440e1c: e8 ef ee ff ff callq 43fd10 - 440e21: ba 04 00 00 00 mov $0x4,%edx - 440e26: be 02 00 00 00 mov $0x2,%esi - 440e2b: 4c 89 ff mov %r15,%rdi - 440e2e: ff d3 callq *%rbx - 440e30: ba 03 00 00 00 mov $0x3,%edx - 440e35: be 01 00 00 00 mov $0x1,%esi - 440e3a: 4c 89 f7 mov %r14,%rdi - 440e3d: ff d3 callq *%rbx - 440e3f: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 440e43: 4d 85 ff test %r15,%r15 - 440e46: 74 61 je 440ea9 <__twalk+0x409> - 440e48: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) - 440e4d: ba 04 00 00 00 mov $0x4,%edx - 440e52: 0f 84 40 0a 00 00 je 441898 <__twalk+0xdf8> - 440e58: 31 f6 xor %esi,%esi - 440e5a: 4c 89 ff mov %r15,%rdi - 440e5d: ff d3 callq *%rbx - 440e5f: 49 8b 7f 08 mov 0x8(%r15),%rdi - 440e63: 48 85 ff test %rdi,%rdi - 440e66: 74 0d je 440e75 <__twalk+0x3d5> - 440e68: ba 05 00 00 00 mov $0x5,%edx - 440e6d: 48 89 de mov %rbx,%rsi - 440e70: e8 9b ee ff ff callq 43fd10 - 440e75: 4c 89 ff mov %r15,%rdi - 440e78: ba 04 00 00 00 mov $0x4,%edx - 440e7d: be 01 00 00 00 mov $0x1,%esi - 440e82: ff d3 callq *%rbx - 440e84: 49 8b 7f 10 mov 0x10(%r15),%rdi - 440e88: 48 85 ff test %rdi,%rdi - 440e8b: 74 0d je 440e9a <__twalk+0x3fa> - 440e8d: ba 05 00 00 00 mov $0x5,%edx - 440e92: 48 89 de mov %rbx,%rsi - 440e95: e8 76 ee ff ff callq 43fd10 - 440e9a: ba 04 00 00 00 mov $0x4,%edx - 440e9f: be 02 00 00 00 mov $0x2,%esi - 440ea4: 4c 89 ff mov %r15,%rdi - 440ea7: ff d3 callq *%rbx - 440ea9: ba 03 00 00 00 mov $0x3,%edx - 440eae: be 02 00 00 00 mov $0x2,%esi - 440eb3: 4c 89 f7 mov %r14,%rdi - 440eb6: ff d3 callq *%rbx - 440eb8: ba 02 00 00 00 mov $0x2,%edx - 440ebd: be 01 00 00 00 mov $0x1,%esi - 440ec2: 4c 89 ef mov %r13,%rdi - 440ec5: ff d3 callq *%rbx - 440ec7: 4d 8b 75 10 mov 0x10(%r13),%r14 - 440ecb: 4d 85 f6 test %r14,%r14 - 440ece: 0f 84 09 01 00 00 je 440fdd <__twalk+0x53d> - 440ed4: 49 83 7e 08 00 cmpq $0x0,0x8(%r14) - 440ed9: ba 03 00 00 00 mov $0x3,%edx - 440ede: 0f 84 74 07 00 00 je 441658 <__twalk+0xbb8> - 440ee4: 31 f6 xor %esi,%esi - 440ee6: 4c 89 f7 mov %r14,%rdi - 440ee9: ff d3 callq *%rbx - 440eeb: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 440eef: 4d 85 ff test %r15,%r15 - 440ef2: 74 61 je 440f55 <__twalk+0x4b5> - 440ef4: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) - 440ef9: ba 04 00 00 00 mov $0x4,%edx - 440efe: 0f 84 54 09 00 00 je 441858 <__twalk+0xdb8> - 440f04: 31 f6 xor %esi,%esi - 440f06: 4c 89 ff mov %r15,%rdi - 440f09: ff d3 callq *%rbx - 440f0b: 49 8b 7f 08 mov 0x8(%r15),%rdi - 440f0f: 48 85 ff test %rdi,%rdi - 440f12: 74 0d je 440f21 <__twalk+0x481> - 440f14: ba 05 00 00 00 mov $0x5,%edx - 440f19: 48 89 de mov %rbx,%rsi - 440f1c: e8 ef ed ff ff callq 43fd10 - 440f21: 4c 89 ff mov %r15,%rdi - 440f24: ba 04 00 00 00 mov $0x4,%edx - 440f29: be 01 00 00 00 mov $0x1,%esi - 440f2e: ff d3 callq *%rbx - 440f30: 49 8b 7f 10 mov 0x10(%r15),%rdi - 440f34: 48 85 ff test %rdi,%rdi - 440f37: 74 0d je 440f46 <__twalk+0x4a6> - 440f39: ba 05 00 00 00 mov $0x5,%edx - 440f3e: 48 89 de mov %rbx,%rsi - 440f41: e8 ca ed ff ff callq 43fd10 - 440f46: ba 04 00 00 00 mov $0x4,%edx - 440f4b: be 02 00 00 00 mov $0x2,%esi - 440f50: 4c 89 ff mov %r15,%rdi - 440f53: ff d3 callq *%rbx - 440f55: ba 03 00 00 00 mov $0x3,%edx - 440f5a: be 01 00 00 00 mov $0x1,%esi - 440f5f: 4c 89 f7 mov %r14,%rdi - 440f62: ff d3 callq *%rbx - 440f64: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 440f68: 4d 85 ff test %r15,%r15 - 440f6b: 74 61 je 440fce <__twalk+0x52e> - 440f6d: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) - 440f72: ba 04 00 00 00 mov $0x4,%edx - 440f77: 0f 84 bb 08 00 00 je 441838 <__twalk+0xd98> - 440f7d: 31 f6 xor %esi,%esi - 440f7f: 4c 89 ff mov %r15,%rdi - 440f82: ff d3 callq *%rbx - 440f84: 49 8b 7f 08 mov 0x8(%r15),%rdi - 440f88: 48 85 ff test %rdi,%rdi - 440f8b: 74 0d je 440f9a <__twalk+0x4fa> - 440f8d: ba 05 00 00 00 mov $0x5,%edx - 440f92: 48 89 de mov %rbx,%rsi - 440f95: e8 76 ed ff ff callq 43fd10 - 440f9a: 4c 89 ff mov %r15,%rdi - 440f9d: ba 04 00 00 00 mov $0x4,%edx - 440fa2: be 01 00 00 00 mov $0x1,%esi - 440fa7: ff d3 callq *%rbx - 440fa9: 49 8b 7f 10 mov 0x10(%r15),%rdi - 440fad: 48 85 ff test %rdi,%rdi - 440fb0: 74 0d je 440fbf <__twalk+0x51f> - 440fb2: ba 05 00 00 00 mov $0x5,%edx - 440fb7: 48 89 de mov %rbx,%rsi - 440fba: e8 51 ed ff ff callq 43fd10 - 440fbf: ba 04 00 00 00 mov $0x4,%edx - 440fc4: be 02 00 00 00 mov $0x2,%esi - 440fc9: 4c 89 ff mov %r15,%rdi - 440fcc: ff d3 callq *%rbx - 440fce: ba 03 00 00 00 mov $0x3,%edx - 440fd3: be 02 00 00 00 mov $0x2,%esi - 440fd8: 4c 89 f7 mov %r14,%rdi - 440fdb: ff d3 callq *%rbx - 440fdd: ba 02 00 00 00 mov $0x2,%edx - 440fe2: be 02 00 00 00 mov $0x2,%esi - 440fe7: 4c 89 ef mov %r13,%rdi - 440fea: ff d3 callq *%rbx - 440fec: ba 01 00 00 00 mov $0x1,%edx - 440ff1: be 02 00 00 00 mov $0x2,%esi - 440ff6: 4c 89 e7 mov %r12,%rdi - 440ff9: ff d3 callq *%rbx - 440ffb: 31 d2 xor %edx,%edx - 440ffd: be 01 00 00 00 mov $0x1,%esi - 441002: 48 89 ef mov %rbp,%rdi - 441005: ff d3 callq *%rbx - 441007: 4c 8b 65 10 mov 0x10(%rbp),%r12 - 44100b: 4d 85 e4 test %r12,%r12 - 44100e: 0f 84 14 05 00 00 je 441528 <__twalk+0xa88> - 441014: 49 83 7c 24 08 00 cmpq $0x0,0x8(%r12) - 44101a: ba 01 00 00 00 mov $0x1,%edx - 44101f: 0f 84 3b 05 00 00 je 441560 <__twalk+0xac0> - 441025: 31 f6 xor %esi,%esi - 441027: 4c 89 e7 mov %r12,%rdi - 44102a: ff d3 callq *%rbx - 44102c: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 - 441031: 4d 85 ed test %r13,%r13 - 441034: 0f 84 61 02 00 00 je 44129b <__twalk+0x7fb> - 44103a: 49 83 7d 08 00 cmpq $0x0,0x8(%r13) - 44103f: ba 02 00 00 00 mov $0x2,%edx - 441044: 0f 84 8e 05 00 00 je 4415d8 <__twalk+0xb38> - 44104a: 31 f6 xor %esi,%esi - 44104c: 4c 89 ef mov %r13,%rdi - 44104f: ff d3 callq *%rbx - 441051: 4d 8b 75 08 mov 0x8(%r13),%r14 - 441055: 4d 85 f6 test %r14,%r14 - 441058: 0f 84 09 01 00 00 je 441167 <__twalk+0x6c7> - 44105e: 49 83 7e 08 00 cmpq $0x0,0x8(%r14) - 441063: ba 03 00 00 00 mov $0x3,%edx - 441068: 0f 84 aa 06 00 00 je 441718 <__twalk+0xc78> - 44106e: 31 f6 xor %esi,%esi - 441070: 4c 89 f7 mov %r14,%rdi - 441073: ff d3 callq *%rbx - 441075: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 441079: 4d 85 ff test %r15,%r15 - 44107c: 74 61 je 4410df <__twalk+0x63f> - 44107e: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) - 441083: ba 04 00 00 00 mov $0x4,%edx - 441088: 0f 84 ca 06 00 00 je 441758 <__twalk+0xcb8> - 44108e: 31 f6 xor %esi,%esi - 441090: 4c 89 ff mov %r15,%rdi - 441093: ff d3 callq *%rbx - 441095: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441099: 48 85 ff test %rdi,%rdi - 44109c: 74 0d je 4410ab <__twalk+0x60b> - 44109e: ba 05 00 00 00 mov $0x5,%edx - 4410a3: 48 89 de mov %rbx,%rsi - 4410a6: e8 65 ec ff ff callq 43fd10 - 4410ab: 4c 89 ff mov %r15,%rdi - 4410ae: ba 04 00 00 00 mov $0x4,%edx - 4410b3: be 01 00 00 00 mov $0x1,%esi - 4410b8: ff d3 callq *%rbx - 4410ba: 49 8b 7f 10 mov 0x10(%r15),%rdi - 4410be: 48 85 ff test %rdi,%rdi - 4410c1: 74 0d je 4410d0 <__twalk+0x630> - 4410c3: ba 05 00 00 00 mov $0x5,%edx - 4410c8: 48 89 de mov %rbx,%rsi - 4410cb: e8 40 ec ff ff callq 43fd10 - 4410d0: ba 04 00 00 00 mov $0x4,%edx - 4410d5: be 02 00 00 00 mov $0x2,%esi - 4410da: 4c 89 ff mov %r15,%rdi - 4410dd: ff d3 callq *%rbx - 4410df: ba 03 00 00 00 mov $0x3,%edx - 4410e4: be 01 00 00 00 mov $0x1,%esi - 4410e9: 4c 89 f7 mov %r14,%rdi - 4410ec: ff d3 callq *%rbx - 4410ee: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 4410f2: 4d 85 ff test %r15,%r15 - 4410f5: 74 61 je 441158 <__twalk+0x6b8> - 4410f7: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) - 4410fc: ba 04 00 00 00 mov $0x4,%edx - 441101: 0f 84 31 06 00 00 je 441738 <__twalk+0xc98> - 441107: 31 f6 xor %esi,%esi - 441109: 4c 89 ff mov %r15,%rdi - 44110c: ff d3 callq *%rbx - 44110e: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441112: 48 85 ff test %rdi,%rdi - 441115: 74 0d je 441124 <__twalk+0x684> - 441117: ba 05 00 00 00 mov $0x5,%edx - 44111c: 48 89 de mov %rbx,%rsi - 44111f: e8 ec eb ff ff callq 43fd10 - 441124: 4c 89 ff mov %r15,%rdi - 441127: ba 04 00 00 00 mov $0x4,%edx - 44112c: be 01 00 00 00 mov $0x1,%esi - 441131: ff d3 callq *%rbx - 441133: 49 8b 7f 10 mov 0x10(%r15),%rdi - 441137: 48 85 ff test %rdi,%rdi - 44113a: 74 0d je 441149 <__twalk+0x6a9> - 44113c: ba 05 00 00 00 mov $0x5,%edx - 441141: 48 89 de mov %rbx,%rsi - 441144: e8 c7 eb ff ff callq 43fd10 - 441149: ba 04 00 00 00 mov $0x4,%edx - 44114e: be 02 00 00 00 mov $0x2,%esi - 441153: 4c 89 ff mov %r15,%rdi - 441156: ff d3 callq *%rbx - 441158: ba 03 00 00 00 mov $0x3,%edx - 44115d: be 02 00 00 00 mov $0x2,%esi - 441162: 4c 89 f7 mov %r14,%rdi - 441165: ff d3 callq *%rbx - 441167: ba 02 00 00 00 mov $0x2,%edx - 44116c: be 01 00 00 00 mov $0x1,%esi - 441171: 4c 89 ef mov %r13,%rdi - 441174: ff d3 callq *%rbx - 441176: 4d 8b 75 10 mov 0x10(%r13),%r14 - 44117a: 4d 85 f6 test %r14,%r14 - 44117d: 0f 84 09 01 00 00 je 44128c <__twalk+0x7ec> - 441183: 49 83 7e 08 00 cmpq $0x0,0x8(%r14) - 441188: ba 03 00 00 00 mov $0x3,%edx - 44118d: 0f 84 65 05 00 00 je 4416f8 <__twalk+0xc58> - 441193: 31 f6 xor %esi,%esi - 441195: 4c 89 f7 mov %r14,%rdi - 441198: ff d3 callq *%rbx - 44119a: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 44119e: 4d 85 ff test %r15,%r15 - 4411a1: 74 61 je 441204 <__twalk+0x764> - 4411a3: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) - 4411a8: ba 04 00 00 00 mov $0x4,%edx - 4411ad: 0f 84 65 06 00 00 je 441818 <__twalk+0xd78> - 4411b3: 31 f6 xor %esi,%esi - 4411b5: 4c 89 ff mov %r15,%rdi - 4411b8: ff d3 callq *%rbx - 4411ba: 49 8b 7f 08 mov 0x8(%r15),%rdi - 4411be: 48 85 ff test %rdi,%rdi - 4411c1: 74 0d je 4411d0 <__twalk+0x730> - 4411c3: ba 05 00 00 00 mov $0x5,%edx - 4411c8: 48 89 de mov %rbx,%rsi - 4411cb: e8 40 eb ff ff callq 43fd10 - 4411d0: 4c 89 ff mov %r15,%rdi - 4411d3: ba 04 00 00 00 mov $0x4,%edx - 4411d8: be 01 00 00 00 mov $0x1,%esi - 4411dd: ff d3 callq *%rbx - 4411df: 49 8b 7f 10 mov 0x10(%r15),%rdi - 4411e3: 48 85 ff test %rdi,%rdi - 4411e6: 74 0d je 4411f5 <__twalk+0x755> - 4411e8: ba 05 00 00 00 mov $0x5,%edx - 4411ed: 48 89 de mov %rbx,%rsi - 4411f0: e8 1b eb ff ff callq 43fd10 - 4411f5: ba 04 00 00 00 mov $0x4,%edx - 4411fa: be 02 00 00 00 mov $0x2,%esi - 4411ff: 4c 89 ff mov %r15,%rdi - 441202: ff d3 callq *%rbx - 441204: ba 03 00 00 00 mov $0x3,%edx - 441209: be 01 00 00 00 mov $0x1,%esi - 44120e: 4c 89 f7 mov %r14,%rdi - 441211: ff d3 callq *%rbx - 441213: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 441217: 4d 85 ff test %r15,%r15 - 44121a: 74 61 je 44127d <__twalk+0x7dd> - 44121c: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) - 441221: ba 04 00 00 00 mov $0x4,%edx - 441226: 0f 84 cc 05 00 00 je 4417f8 <__twalk+0xd58> - 44122c: 31 f6 xor %esi,%esi - 44122e: 4c 89 ff mov %r15,%rdi - 441231: ff d3 callq *%rbx - 441233: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441237: 48 85 ff test %rdi,%rdi - 44123a: 74 0d je 441249 <__twalk+0x7a9> - 44123c: ba 05 00 00 00 mov $0x5,%edx - 441241: 48 89 de mov %rbx,%rsi - 441244: e8 c7 ea ff ff callq 43fd10 - 441249: 4c 89 ff mov %r15,%rdi - 44124c: ba 04 00 00 00 mov $0x4,%edx - 441251: be 01 00 00 00 mov $0x1,%esi - 441256: ff d3 callq *%rbx - 441258: 49 8b 7f 10 mov 0x10(%r15),%rdi - 44125c: 48 85 ff test %rdi,%rdi - 44125f: 74 0d je 44126e <__twalk+0x7ce> - 441261: ba 05 00 00 00 mov $0x5,%edx - 441266: 48 89 de mov %rbx,%rsi - 441269: e8 a2 ea ff ff callq 43fd10 - 44126e: ba 04 00 00 00 mov $0x4,%edx - 441273: be 02 00 00 00 mov $0x2,%esi - 441278: 4c 89 ff mov %r15,%rdi - 44127b: ff d3 callq *%rbx - 44127d: ba 03 00 00 00 mov $0x3,%edx - 441282: be 02 00 00 00 mov $0x2,%esi - 441287: 4c 89 f7 mov %r14,%rdi - 44128a: ff d3 callq *%rbx - 44128c: ba 02 00 00 00 mov $0x2,%edx - 441291: be 02 00 00 00 mov $0x2,%esi - 441296: 4c 89 ef mov %r13,%rdi - 441299: ff d3 callq *%rbx - 44129b: ba 01 00 00 00 mov $0x1,%edx - 4412a0: be 01 00 00 00 mov $0x1,%esi - 4412a5: 4c 89 e7 mov %r12,%rdi - 4412a8: ff d3 callq *%rbx - 4412aa: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 - 4412af: 4d 85 ed test %r13,%r13 - 4412b2: 0f 84 61 02 00 00 je 441519 <__twalk+0xa79> - 4412b8: 49 83 7d 08 00 cmpq $0x0,0x8(%r13) - 4412bd: ba 02 00 00 00 mov $0x2,%edx - 4412c2: 0f 84 50 03 00 00 je 441618 <__twalk+0xb78> - 4412c8: 31 f6 xor %esi,%esi - 4412ca: 4c 89 ef mov %r13,%rdi - 4412cd: ff d3 callq *%rbx - 4412cf: 4d 8b 75 08 mov 0x8(%r13),%r14 - 4412d3: 4d 85 f6 test %r14,%r14 - 4412d6: 0f 84 09 01 00 00 je 4413e5 <__twalk+0x945> - 4412dc: 49 83 7e 08 00 cmpq $0x0,0x8(%r14) - 4412e1: ba 03 00 00 00 mov $0x3,%edx - 4412e6: 0f 84 ec 03 00 00 je 4416d8 <__twalk+0xc38> - 4412ec: 31 f6 xor %esi,%esi - 4412ee: 4c 89 f7 mov %r14,%rdi - 4412f1: ff d3 callq *%rbx - 4412f3: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 4412f7: 4d 85 ff test %r15,%r15 - 4412fa: 74 61 je 44135d <__twalk+0x8bd> - 4412fc: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) - 441301: ba 04 00 00 00 mov $0x4,%edx - 441306: 0f 84 cc 04 00 00 je 4417d8 <__twalk+0xd38> - 44130c: 31 f6 xor %esi,%esi - 44130e: 4c 89 ff mov %r15,%rdi - 441311: ff d3 callq *%rbx - 441313: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441317: 48 85 ff test %rdi,%rdi - 44131a: 74 0d je 441329 <__twalk+0x889> - 44131c: ba 05 00 00 00 mov $0x5,%edx - 441321: 48 89 de mov %rbx,%rsi - 441324: e8 e7 e9 ff ff callq 43fd10 - 441329: 4c 89 ff mov %r15,%rdi - 44132c: ba 04 00 00 00 mov $0x4,%edx - 441331: be 01 00 00 00 mov $0x1,%esi - 441336: ff d3 callq *%rbx - 441338: 49 8b 7f 10 mov 0x10(%r15),%rdi - 44133c: 48 85 ff test %rdi,%rdi - 44133f: 74 0d je 44134e <__twalk+0x8ae> - 441341: ba 05 00 00 00 mov $0x5,%edx - 441346: 48 89 de mov %rbx,%rsi - 441349: e8 c2 e9 ff ff callq 43fd10 - 44134e: ba 04 00 00 00 mov $0x4,%edx - 441353: be 02 00 00 00 mov $0x2,%esi - 441358: 4c 89 ff mov %r15,%rdi - 44135b: ff d3 callq *%rbx - 44135d: ba 03 00 00 00 mov $0x3,%edx - 441362: be 01 00 00 00 mov $0x1,%esi - 441367: 4c 89 f7 mov %r14,%rdi - 44136a: ff d3 callq *%rbx - 44136c: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 441370: 4d 85 ff test %r15,%r15 - 441373: 74 61 je 4413d6 <__twalk+0x936> - 441375: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) - 44137a: ba 04 00 00 00 mov $0x4,%edx - 44137f: 0f 84 33 04 00 00 je 4417b8 <__twalk+0xd18> - 441385: 31 f6 xor %esi,%esi - 441387: 4c 89 ff mov %r15,%rdi - 44138a: ff d3 callq *%rbx - 44138c: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441390: 48 85 ff test %rdi,%rdi - 441393: 74 0d je 4413a2 <__twalk+0x902> - 441395: ba 05 00 00 00 mov $0x5,%edx - 44139a: 48 89 de mov %rbx,%rsi - 44139d: e8 6e e9 ff ff callq 43fd10 - 4413a2: 4c 89 ff mov %r15,%rdi - 4413a5: ba 04 00 00 00 mov $0x4,%edx - 4413aa: be 01 00 00 00 mov $0x1,%esi - 4413af: ff d3 callq *%rbx - 4413b1: 49 8b 7f 10 mov 0x10(%r15),%rdi - 4413b5: 48 85 ff test %rdi,%rdi - 4413b8: 74 0d je 4413c7 <__twalk+0x927> - 4413ba: ba 05 00 00 00 mov $0x5,%edx - 4413bf: 48 89 de mov %rbx,%rsi - 4413c2: e8 49 e9 ff ff callq 43fd10 - 4413c7: ba 04 00 00 00 mov $0x4,%edx - 4413cc: be 02 00 00 00 mov $0x2,%esi - 4413d1: 4c 89 ff mov %r15,%rdi - 4413d4: ff d3 callq *%rbx - 4413d6: ba 03 00 00 00 mov $0x3,%edx - 4413db: be 02 00 00 00 mov $0x2,%esi - 4413e0: 4c 89 f7 mov %r14,%rdi - 4413e3: ff d3 callq *%rbx - 4413e5: ba 02 00 00 00 mov $0x2,%edx - 4413ea: be 01 00 00 00 mov $0x1,%esi - 4413ef: 4c 89 ef mov %r13,%rdi - 4413f2: ff d3 callq *%rbx - 4413f4: 4d 8b 75 10 mov 0x10(%r13),%r14 - 4413f8: 4d 85 f6 test %r14,%r14 - 4413fb: 0f 84 09 01 00 00 je 44150a <__twalk+0xa6a> - 441401: 49 83 7e 08 00 cmpq $0x0,0x8(%r14) - 441406: ba 03 00 00 00 mov $0x3,%edx - 44140b: 0f 84 a7 02 00 00 je 4416b8 <__twalk+0xc18> - 441411: 31 f6 xor %esi,%esi - 441413: 4c 89 f7 mov %r14,%rdi - 441416: ff d3 callq *%rbx - 441418: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 44141c: 4d 85 ff test %r15,%r15 - 44141f: 74 61 je 441482 <__twalk+0x9e2> - 441421: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) - 441426: ba 04 00 00 00 mov $0x4,%edx - 44142b: 0f 84 67 03 00 00 je 441798 <__twalk+0xcf8> - 441431: 31 f6 xor %esi,%esi - 441433: 4c 89 ff mov %r15,%rdi - 441436: ff d3 callq *%rbx - 441438: 49 8b 7f 08 mov 0x8(%r15),%rdi - 44143c: 48 85 ff test %rdi,%rdi - 44143f: 74 0d je 44144e <__twalk+0x9ae> - 441441: ba 05 00 00 00 mov $0x5,%edx - 441446: 48 89 de mov %rbx,%rsi - 441449: e8 c2 e8 ff ff callq 43fd10 - 44144e: 4c 89 ff mov %r15,%rdi - 441451: ba 04 00 00 00 mov $0x4,%edx - 441456: be 01 00 00 00 mov $0x1,%esi - 44145b: ff d3 callq *%rbx - 44145d: 49 8b 7f 10 mov 0x10(%r15),%rdi - 441461: 48 85 ff test %rdi,%rdi - 441464: 74 0d je 441473 <__twalk+0x9d3> - 441466: ba 05 00 00 00 mov $0x5,%edx - 44146b: 48 89 de mov %rbx,%rsi - 44146e: e8 9d e8 ff ff callq 43fd10 - 441473: ba 04 00 00 00 mov $0x4,%edx - 441478: be 02 00 00 00 mov $0x2,%esi - 44147d: 4c 89 ff mov %r15,%rdi - 441480: ff d3 callq *%rbx - 441482: ba 03 00 00 00 mov $0x3,%edx - 441487: be 01 00 00 00 mov $0x1,%esi - 44148c: 4c 89 f7 mov %r14,%rdi - 44148f: ff d3 callq *%rbx - 441491: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 441495: 4d 85 ff test %r15,%r15 - 441498: 74 61 je 4414fb <__twalk+0xa5b> - 44149a: 49 83 7f 08 00 cmpq $0x0,0x8(%r15) - 44149f: ba 04 00 00 00 mov $0x4,%edx - 4414a4: 0f 84 ce 02 00 00 je 441778 <__twalk+0xcd8> - 4414aa: 31 f6 xor %esi,%esi - 4414ac: 4c 89 ff mov %r15,%rdi - 4414af: ff d3 callq *%rbx - 4414b1: 49 8b 7f 08 mov 0x8(%r15),%rdi - 4414b5: 48 85 ff test %rdi,%rdi - 4414b8: 74 0d je 4414c7 <__twalk+0xa27> - 4414ba: ba 05 00 00 00 mov $0x5,%edx - 4414bf: 48 89 de mov %rbx,%rsi - 4414c2: e8 49 e8 ff ff callq 43fd10 - 4414c7: 4c 89 ff mov %r15,%rdi - 4414ca: ba 04 00 00 00 mov $0x4,%edx - 4414cf: be 01 00 00 00 mov $0x1,%esi - 4414d4: ff d3 callq *%rbx - 4414d6: 49 8b 7f 10 mov 0x10(%r15),%rdi - 4414da: 48 85 ff test %rdi,%rdi - 4414dd: 74 0d je 4414ec <__twalk+0xa4c> - 4414df: ba 05 00 00 00 mov $0x5,%edx - 4414e4: 48 89 de mov %rbx,%rsi - 4414e7: e8 24 e8 ff ff callq 43fd10 - 4414ec: ba 04 00 00 00 mov $0x4,%edx - 4414f1: be 02 00 00 00 mov $0x2,%esi - 4414f6: 4c 89 ff mov %r15,%rdi - 4414f9: ff d3 callq *%rbx - 4414fb: ba 03 00 00 00 mov $0x3,%edx - 441500: be 02 00 00 00 mov $0x2,%esi - 441505: 4c 89 f7 mov %r14,%rdi - 441508: ff d3 callq *%rbx - 44150a: ba 02 00 00 00 mov $0x2,%edx - 44150f: be 02 00 00 00 mov $0x2,%esi - 441514: 4c 89 ef mov %r13,%rdi - 441517: ff d3 callq *%rbx - 441519: ba 01 00 00 00 mov $0x1,%edx - 44151e: be 02 00 00 00 mov $0x2,%esi - 441523: 4c 89 e7 mov %r12,%rdi - 441526: ff d3 callq *%rbx - 441528: 31 d2 xor %edx,%edx - 44152a: be 02 00 00 00 mov $0x2,%esi - 44152f: 48 89 ef mov %rbp,%rdi - 441532: 48 89 d8 mov %rbx,%rax - 441535: 48 83 c4 08 add $0x8,%rsp - 441539: 5b pop %rbx - 44153a: 5d pop %rbp - 44153b: 41 5c pop %r12 - 44153d: 41 5d pop %r13 - 44153f: 41 5e pop %r14 - 441541: 41 5f pop %r15 - 441543: ff e0 jmpq *%rax - 441545: 0f 1f 00 nopl (%rax) - 441548: 48 83 c4 08 add $0x8,%rsp - 44154c: 5b pop %rbx - 44154d: 5d pop %rbp - 44154e: 41 5c pop %r12 - 441550: 41 5d pop %r13 - 441552: 41 5e pop %r14 - 441554: 41 5f pop %r15 - 441556: c3 retq - 441557: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) - 44155e: 00 00 - 441560: 49 83 7c 24 10 00 cmpq $0x0,0x10(%r12) - 441566: 0f 85 b9 fa ff ff jne 441025 <__twalk+0x585> - 44156c: be 03 00 00 00 mov $0x3,%esi - 441571: 4c 89 e7 mov %r12,%rdi - 441574: ff d3 callq *%rbx - 441576: eb b0 jmp 441528 <__twalk+0xa88> - 441578: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) - 44157f: 00 - 441580: 49 83 7c 24 10 00 cmpq $0x0,0x10(%r12) - 441586: 0f 85 6c f5 ff ff jne 440af8 <__twalk+0x58> - 44158c: be 03 00 00 00 mov $0x3,%esi - 441591: 4c 89 e7 mov %r12,%rdi - 441594: ff d3 callq *%rbx - 441596: e9 60 fa ff ff jmpq 440ffb <__twalk+0x55b> - 44159b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4415a0: 31 d2 xor %edx,%edx - 4415a2: 48 83 7f 10 00 cmpq $0x0,0x10(%rdi) - 4415a7: be 03 00 00 00 mov $0x3,%esi - 4415ac: 0f 85 1c f5 ff ff jne 440ace <__twalk+0x2e> - 4415b2: eb 81 jmp 441535 <__twalk+0xa95> - 4415b4: 0f 1f 40 00 nopl 0x0(%rax) - 4415b8: 49 83 7d 10 00 cmpq $0x0,0x10(%r13) - 4415bd: 0f 85 d8 f7 ff ff jne 440d9b <__twalk+0x2fb> - 4415c3: be 03 00 00 00 mov $0x3,%esi - 4415c8: 4c 89 ef mov %r13,%rdi - 4415cb: ff d3 callq *%rbx - 4415cd: e9 1a fa ff ff jmpq 440fec <__twalk+0x54c> - 4415d2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4415d8: 49 83 7d 10 00 cmpq $0x0,0x10(%r13) - 4415dd: 0f 85 67 fa ff ff jne 44104a <__twalk+0x5aa> - 4415e3: be 03 00 00 00 mov $0x3,%esi - 4415e8: 4c 89 ef mov %r13,%rdi - 4415eb: ff d3 callq *%rbx - 4415ed: e9 a9 fc ff ff jmpq 44129b <__twalk+0x7fb> - 4415f2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4415f8: 49 83 7d 10 00 cmpq $0x0,0x10(%r13) - 4415fd: 0f 85 1a f5 ff ff jne 440b1d <__twalk+0x7d> - 441603: be 03 00 00 00 mov $0x3,%esi - 441608: 4c 89 ef mov %r13,%rdi - 44160b: ff d3 callq *%rbx - 44160d: e9 5c f7 ff ff jmpq 440d6e <__twalk+0x2ce> - 441612: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441618: 49 83 7d 10 00 cmpq $0x0,0x10(%r13) - 44161d: 0f 85 a5 fc ff ff jne 4412c8 <__twalk+0x828> - 441623: be 03 00 00 00 mov $0x3,%esi - 441628: 4c 89 ef mov %r13,%rdi - 44162b: ff d3 callq *%rbx - 44162d: e9 e7 fe ff ff jmpq 441519 <__twalk+0xa79> - 441632: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441638: 49 83 7e 10 00 cmpq $0x0,0x10(%r14) - 44163d: 0f 85 fe f4 ff ff jne 440b41 <__twalk+0xa1> - 441643: be 03 00 00 00 mov $0x3,%esi - 441648: 4c 89 f7 mov %r14,%rdi - 44164b: ff d3 callq *%rbx - 44164d: e9 e8 f5 ff ff jmpq 440c3a <__twalk+0x19a> - 441652: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441658: 49 83 7e 10 00 cmpq $0x0,0x10(%r14) - 44165d: 0f 85 81 f8 ff ff jne 440ee4 <__twalk+0x444> - 441663: be 03 00 00 00 mov $0x3,%esi - 441668: 4c 89 f7 mov %r14,%rdi - 44166b: ff d3 callq *%rbx - 44166d: e9 6b f9 ff ff jmpq 440fdd <__twalk+0x53d> - 441672: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441678: 49 83 7e 10 00 cmpq $0x0,0x10(%r14) - 44167d: 0f 85 3c f7 ff ff jne 440dbf <__twalk+0x31f> - 441683: be 03 00 00 00 mov $0x3,%esi - 441688: 4c 89 f7 mov %r14,%rdi - 44168b: ff d3 callq *%rbx - 44168d: e9 26 f8 ff ff jmpq 440eb8 <__twalk+0x418> - 441692: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441698: 49 83 7e 10 00 cmpq $0x0,0x10(%r14) - 44169d: 0f 85 c3 f5 ff ff jne 440c66 <__twalk+0x1c6> - 4416a3: be 03 00 00 00 mov $0x3,%esi - 4416a8: 4c 89 f7 mov %r14,%rdi - 4416ab: ff d3 callq *%rbx - 4416ad: e9 ad f6 ff ff jmpq 440d5f <__twalk+0x2bf> - 4416b2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4416b8: 49 83 7e 10 00 cmpq $0x0,0x10(%r14) - 4416bd: 0f 85 4e fd ff ff jne 441411 <__twalk+0x971> - 4416c3: be 03 00 00 00 mov $0x3,%esi - 4416c8: 4c 89 f7 mov %r14,%rdi - 4416cb: ff d3 callq *%rbx - 4416cd: e9 38 fe ff ff jmpq 44150a <__twalk+0xa6a> - 4416d2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4416d8: 49 83 7e 10 00 cmpq $0x0,0x10(%r14) - 4416dd: 0f 85 09 fc ff ff jne 4412ec <__twalk+0x84c> - 4416e3: be 03 00 00 00 mov $0x3,%esi - 4416e8: 4c 89 f7 mov %r14,%rdi - 4416eb: ff d3 callq *%rbx - 4416ed: e9 f3 fc ff ff jmpq 4413e5 <__twalk+0x945> - 4416f2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4416f8: 49 83 7e 10 00 cmpq $0x0,0x10(%r14) - 4416fd: 0f 85 90 fa ff ff jne 441193 <__twalk+0x6f3> - 441703: be 03 00 00 00 mov $0x3,%esi - 441708: 4c 89 f7 mov %r14,%rdi - 44170b: ff d3 callq *%rbx - 44170d: e9 7a fb ff ff jmpq 44128c <__twalk+0x7ec> - 441712: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441718: 49 83 7e 10 00 cmpq $0x0,0x10(%r14) - 44171d: 0f 85 4b f9 ff ff jne 44106e <__twalk+0x5ce> - 441723: be 03 00 00 00 mov $0x3,%esi - 441728: 4c 89 f7 mov %r14,%rdi - 44172b: ff d3 callq *%rbx - 44172d: e9 35 fa ff ff jmpq 441167 <__twalk+0x6c7> - 441732: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441738: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) - 44173d: 0f 85 c4 f9 ff ff jne 441107 <__twalk+0x667> - 441743: be 03 00 00 00 mov $0x3,%esi - 441748: 4c 89 ff mov %r15,%rdi - 44174b: ff d3 callq *%rbx - 44174d: e9 06 fa ff ff jmpq 441158 <__twalk+0x6b8> - 441752: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441758: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) - 44175d: 0f 85 2b f9 ff ff jne 44108e <__twalk+0x5ee> - 441763: be 03 00 00 00 mov $0x3,%esi - 441768: 4c 89 ff mov %r15,%rdi - 44176b: ff d3 callq *%rbx - 44176d: e9 6d f9 ff ff jmpq 4410df <__twalk+0x63f> - 441772: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441778: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) - 44177d: 0f 85 27 fd ff ff jne 4414aa <__twalk+0xa0a> - 441783: be 03 00 00 00 mov $0x3,%esi - 441788: 4c 89 ff mov %r15,%rdi - 44178b: ff d3 callq *%rbx - 44178d: e9 69 fd ff ff jmpq 4414fb <__twalk+0xa5b> - 441792: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441798: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) - 44179d: 0f 85 8e fc ff ff jne 441431 <__twalk+0x991> - 4417a3: be 03 00 00 00 mov $0x3,%esi - 4417a8: 4c 89 ff mov %r15,%rdi - 4417ab: ff d3 callq *%rbx - 4417ad: e9 d0 fc ff ff jmpq 441482 <__twalk+0x9e2> - 4417b2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4417b8: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) - 4417bd: 0f 85 c2 fb ff ff jne 441385 <__twalk+0x8e5> - 4417c3: be 03 00 00 00 mov $0x3,%esi - 4417c8: 4c 89 ff mov %r15,%rdi - 4417cb: ff d3 callq *%rbx - 4417cd: e9 04 fc ff ff jmpq 4413d6 <__twalk+0x936> - 4417d2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4417d8: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) - 4417dd: 0f 85 29 fb ff ff jne 44130c <__twalk+0x86c> - 4417e3: be 03 00 00 00 mov $0x3,%esi - 4417e8: 4c 89 ff mov %r15,%rdi - 4417eb: ff d3 callq *%rbx - 4417ed: e9 6b fb ff ff jmpq 44135d <__twalk+0x8bd> - 4417f2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4417f8: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) - 4417fd: 0f 85 29 fa ff ff jne 44122c <__twalk+0x78c> - 441803: be 03 00 00 00 mov $0x3,%esi - 441808: 4c 89 ff mov %r15,%rdi - 44180b: ff d3 callq *%rbx - 44180d: e9 6b fa ff ff jmpq 44127d <__twalk+0x7dd> - 441812: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441818: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) - 44181d: 0f 85 90 f9 ff ff jne 4411b3 <__twalk+0x713> - 441823: be 03 00 00 00 mov $0x3,%esi - 441828: 4c 89 ff mov %r15,%rdi - 44182b: ff d3 callq *%rbx - 44182d: e9 d2 f9 ff ff jmpq 441204 <__twalk+0x764> - 441832: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441838: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) - 44183d: 0f 85 3a f7 ff ff jne 440f7d <__twalk+0x4dd> - 441843: be 03 00 00 00 mov $0x3,%esi - 441848: 4c 89 ff mov %r15,%rdi - 44184b: ff d3 callq *%rbx - 44184d: e9 7c f7 ff ff jmpq 440fce <__twalk+0x52e> - 441852: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441858: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) - 44185d: 0f 85 a1 f6 ff ff jne 440f04 <__twalk+0x464> - 441863: be 03 00 00 00 mov $0x3,%esi - 441868: 4c 89 ff mov %r15,%rdi - 44186b: ff d3 callq *%rbx - 44186d: e9 e3 f6 ff ff jmpq 440f55 <__twalk+0x4b5> - 441872: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441878: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) - 44187d: 0f 85 de f2 ff ff jne 440b61 <__twalk+0xc1> - 441883: be 03 00 00 00 mov $0x3,%esi - 441888: 4c 89 ff mov %r15,%rdi - 44188b: ff d3 callq *%rbx - 44188d: e9 20 f3 ff ff jmpq 440bb2 <__twalk+0x112> - 441892: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441898: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) - 44189d: 0f 85 b5 f5 ff ff jne 440e58 <__twalk+0x3b8> - 4418a3: be 03 00 00 00 mov $0x3,%esi - 4418a8: 4c 89 ff mov %r15,%rdi - 4418ab: ff d3 callq *%rbx - 4418ad: e9 f7 f5 ff ff jmpq 440ea9 <__twalk+0x409> - 4418b2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4418b8: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) - 4418bd: 0f 85 1c f5 ff ff jne 440ddf <__twalk+0x33f> - 4418c3: be 03 00 00 00 mov $0x3,%esi - 4418c8: 4c 89 ff mov %r15,%rdi - 4418cb: ff d3 callq *%rbx - 4418cd: e9 5e f5 ff ff jmpq 440e30 <__twalk+0x390> - 4418d2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4418d8: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) - 4418dd: 0f 85 f7 f2 ff ff jne 440bda <__twalk+0x13a> - 4418e3: be 03 00 00 00 mov $0x3,%esi - 4418e8: 4c 89 ff mov %r15,%rdi - 4418eb: ff d3 callq *%rbx - 4418ed: e9 39 f3 ff ff jmpq 440c2b <__twalk+0x18b> - 4418f2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 4418f8: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) - 4418fd: 0f 85 fc f3 ff ff jne 440cff <__twalk+0x25f> - 441903: be 03 00 00 00 mov $0x3,%esi - 441908: 4c 89 ff mov %r15,%rdi - 44190b: ff d3 callq *%rbx - 44190d: e9 3e f4 ff ff jmpq 440d50 <__twalk+0x2b0> - 441912: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441918: 49 83 7f 10 00 cmpq $0x0,0x10(%r15) - 44191d: 0f 85 63 f3 ff ff jne 440c86 <__twalk+0x1e6> - 441923: be 03 00 00 00 mov $0x3,%esi - 441928: 4c 89 ff mov %r15,%rdi - 44192b: ff d3 callq *%rbx - 44192d: e9 a5 f3 ff ff jmpq 440cd7 <__twalk+0x237> - 441932: 0f 1f 40 00 nopl 0x0(%rax) - 441936: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) - 44193d: 00 00 00 - -0000000000441940 <__tdestroy>: - 441940: 48 85 ff test %rdi,%rdi - 441943: 0f 84 df 04 00 00 je 441e28 <__tdestroy+0x4e8> - 441949: 41 57 push %r15 - 44194b: 41 56 push %r14 - 44194d: 41 55 push %r13 - 44194f: 41 54 push %r12 - 441951: 55 push %rbp - 441952: 53 push %rbx - 441953: 48 89 fd mov %rdi,%rbp - 441956: 48 89 f3 mov %rsi,%rbx - 441959: 48 83 ec 08 sub $0x8,%rsp - 44195d: 4c 8b 67 08 mov 0x8(%rdi),%r12 - 441961: 4d 85 e4 test %r12,%r12 - 441964: 0f 84 5b 02 00 00 je 441bc5 <__tdestroy+0x285> - 44196a: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 - 44196f: 4d 85 ed test %r13,%r13 - 441972: 0f 84 17 01 00 00 je 441a8f <__tdestroy+0x14f> - 441978: 4d 8b 75 08 mov 0x8(%r13),%r14 - 44197c: 4d 85 f6 test %r14,%r14 - 44197f: 74 7a je 4419fb <__tdestroy+0xbb> - 441981: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 441985: 4d 85 ff test %r15,%r15 - 441988: 74 2c je 4419b6 <__tdestroy+0x76> - 44198a: 49 8b 7f 08 mov 0x8(%r15),%rdi - 44198e: 48 85 ff test %rdi,%rdi - 441991: 74 05 je 441998 <__tdestroy+0x58> - 441993: e8 08 e4 ff ff callq 43fda0 - 441998: 49 8b 7f 10 mov 0x10(%r15),%rdi - 44199c: 48 85 ff test %rdi,%rdi - 44199f: 74 08 je 4419a9 <__tdestroy+0x69> - 4419a1: 48 89 de mov %rbx,%rsi - 4419a4: e8 f7 e3 ff ff callq 43fda0 - 4419a9: 49 8b 3f mov (%r15),%rdi - 4419ac: ff d3 callq *%rbx - 4419ae: 4c 89 ff mov %r15,%rdi - 4419b1: e8 fa c3 fd ff callq 41ddb0 <__cfree> - 4419b6: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 4419ba: 4d 85 ff test %r15,%r15 - 4419bd: 74 2f je 4419ee <__tdestroy+0xae> - 4419bf: 49 8b 7f 08 mov 0x8(%r15),%rdi - 4419c3: 48 85 ff test %rdi,%rdi - 4419c6: 74 08 je 4419d0 <__tdestroy+0x90> - 4419c8: 48 89 de mov %rbx,%rsi - 4419cb: e8 d0 e3 ff ff callq 43fda0 - 4419d0: 49 8b 7f 10 mov 0x10(%r15),%rdi - 4419d4: 48 85 ff test %rdi,%rdi - 4419d7: 74 08 je 4419e1 <__tdestroy+0xa1> - 4419d9: 48 89 de mov %rbx,%rsi - 4419dc: e8 bf e3 ff ff callq 43fda0 - 4419e1: 49 8b 3f mov (%r15),%rdi - 4419e4: ff d3 callq *%rbx - 4419e6: 4c 89 ff mov %r15,%rdi - 4419e9: e8 c2 c3 fd ff callq 41ddb0 <__cfree> - 4419ee: 49 8b 3e mov (%r14),%rdi - 4419f1: ff d3 callq *%rbx - 4419f3: 4c 89 f7 mov %r14,%rdi - 4419f6: e8 b5 c3 fd ff callq 41ddb0 <__cfree> - 4419fb: 4d 8b 75 10 mov 0x10(%r13),%r14 - 4419ff: 4d 85 f6 test %r14,%r14 - 441a02: 74 7d je 441a81 <__tdestroy+0x141> - 441a04: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 441a08: 4d 85 ff test %r15,%r15 - 441a0b: 74 2f je 441a3c <__tdestroy+0xfc> - 441a0d: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441a11: 48 85 ff test %rdi,%rdi - 441a14: 74 08 je 441a1e <__tdestroy+0xde> - 441a16: 48 89 de mov %rbx,%rsi - 441a19: e8 82 e3 ff ff callq 43fda0 - 441a1e: 49 8b 7f 10 mov 0x10(%r15),%rdi - 441a22: 48 85 ff test %rdi,%rdi - 441a25: 74 08 je 441a2f <__tdestroy+0xef> - 441a27: 48 89 de mov %rbx,%rsi - 441a2a: e8 71 e3 ff ff callq 43fda0 - 441a2f: 49 8b 3f mov (%r15),%rdi - 441a32: ff d3 callq *%rbx - 441a34: 4c 89 ff mov %r15,%rdi - 441a37: e8 74 c3 fd ff callq 41ddb0 <__cfree> - 441a3c: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 441a40: 4d 85 ff test %r15,%r15 - 441a43: 74 2f je 441a74 <__tdestroy+0x134> - 441a45: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441a49: 48 85 ff test %rdi,%rdi - 441a4c: 74 08 je 441a56 <__tdestroy+0x116> - 441a4e: 48 89 de mov %rbx,%rsi - 441a51: e8 4a e3 ff ff callq 43fda0 - 441a56: 49 8b 7f 10 mov 0x10(%r15),%rdi - 441a5a: 48 85 ff test %rdi,%rdi - 441a5d: 74 08 je 441a67 <__tdestroy+0x127> - 441a5f: 48 89 de mov %rbx,%rsi - 441a62: e8 39 e3 ff ff callq 43fda0 - 441a67: 49 8b 3f mov (%r15),%rdi - 441a6a: ff d3 callq *%rbx - 441a6c: 4c 89 ff mov %r15,%rdi - 441a6f: e8 3c c3 fd ff callq 41ddb0 <__cfree> - 441a74: 49 8b 3e mov (%r14),%rdi - 441a77: ff d3 callq *%rbx - 441a79: 4c 89 f7 mov %r14,%rdi - 441a7c: e8 2f c3 fd ff callq 41ddb0 <__cfree> - 441a81: 49 8b 7d 00 mov 0x0(%r13),%rdi - 441a85: ff d3 callq *%rbx - 441a87: 4c 89 ef mov %r13,%rdi - 441a8a: e8 21 c3 fd ff callq 41ddb0 <__cfree> - 441a8f: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 - 441a94: 4d 85 ed test %r13,%r13 - 441a97: 0f 84 1a 01 00 00 je 441bb7 <__tdestroy+0x277> - 441a9d: 4d 8b 75 08 mov 0x8(%r13),%r14 - 441aa1: 4d 85 f6 test %r14,%r14 - 441aa4: 74 7d je 441b23 <__tdestroy+0x1e3> - 441aa6: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 441aaa: 4d 85 ff test %r15,%r15 - 441aad: 74 2f je 441ade <__tdestroy+0x19e> - 441aaf: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441ab3: 48 85 ff test %rdi,%rdi - 441ab6: 74 08 je 441ac0 <__tdestroy+0x180> - 441ab8: 48 89 de mov %rbx,%rsi - 441abb: e8 e0 e2 ff ff callq 43fda0 - 441ac0: 49 8b 7f 10 mov 0x10(%r15),%rdi - 441ac4: 48 85 ff test %rdi,%rdi - 441ac7: 74 08 je 441ad1 <__tdestroy+0x191> - 441ac9: 48 89 de mov %rbx,%rsi - 441acc: e8 cf e2 ff ff callq 43fda0 - 441ad1: 49 8b 3f mov (%r15),%rdi - 441ad4: ff d3 callq *%rbx - 441ad6: 4c 89 ff mov %r15,%rdi - 441ad9: e8 d2 c2 fd ff callq 41ddb0 <__cfree> - 441ade: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 441ae2: 4d 85 ff test %r15,%r15 - 441ae5: 74 2f je 441b16 <__tdestroy+0x1d6> - 441ae7: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441aeb: 48 85 ff test %rdi,%rdi - 441aee: 74 08 je 441af8 <__tdestroy+0x1b8> - 441af0: 48 89 de mov %rbx,%rsi - 441af3: e8 a8 e2 ff ff callq 43fda0 - 441af8: 49 8b 7f 10 mov 0x10(%r15),%rdi - 441afc: 48 85 ff test %rdi,%rdi - 441aff: 74 08 je 441b09 <__tdestroy+0x1c9> - 441b01: 48 89 de mov %rbx,%rsi - 441b04: e8 97 e2 ff ff callq 43fda0 - 441b09: 49 8b 3f mov (%r15),%rdi - 441b0c: ff d3 callq *%rbx - 441b0e: 4c 89 ff mov %r15,%rdi - 441b11: e8 9a c2 fd ff callq 41ddb0 <__cfree> - 441b16: 49 8b 3e mov (%r14),%rdi - 441b19: ff d3 callq *%rbx - 441b1b: 4c 89 f7 mov %r14,%rdi - 441b1e: e8 8d c2 fd ff callq 41ddb0 <__cfree> - 441b23: 4d 8b 75 10 mov 0x10(%r13),%r14 - 441b27: 4d 85 f6 test %r14,%r14 - 441b2a: 74 7d je 441ba9 <__tdestroy+0x269> - 441b2c: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 441b30: 4d 85 ff test %r15,%r15 - 441b33: 74 2f je 441b64 <__tdestroy+0x224> - 441b35: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441b39: 48 85 ff test %rdi,%rdi - 441b3c: 74 08 je 441b46 <__tdestroy+0x206> - 441b3e: 48 89 de mov %rbx,%rsi - 441b41: e8 5a e2 ff ff callq 43fda0 - 441b46: 49 8b 7f 10 mov 0x10(%r15),%rdi - 441b4a: 48 85 ff test %rdi,%rdi - 441b4d: 74 08 je 441b57 <__tdestroy+0x217> - 441b4f: 48 89 de mov %rbx,%rsi - 441b52: e8 49 e2 ff ff callq 43fda0 - 441b57: 49 8b 3f mov (%r15),%rdi - 441b5a: ff d3 callq *%rbx - 441b5c: 4c 89 ff mov %r15,%rdi - 441b5f: e8 4c c2 fd ff callq 41ddb0 <__cfree> - 441b64: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 441b68: 4d 85 ff test %r15,%r15 - 441b6b: 74 2f je 441b9c <__tdestroy+0x25c> - 441b6d: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441b71: 48 85 ff test %rdi,%rdi - 441b74: 74 08 je 441b7e <__tdestroy+0x23e> - 441b76: 48 89 de mov %rbx,%rsi - 441b79: e8 22 e2 ff ff callq 43fda0 - 441b7e: 49 8b 7f 10 mov 0x10(%r15),%rdi - 441b82: 48 85 ff test %rdi,%rdi - 441b85: 74 08 je 441b8f <__tdestroy+0x24f> - 441b87: 48 89 de mov %rbx,%rsi - 441b8a: e8 11 e2 ff ff callq 43fda0 - 441b8f: 49 8b 3f mov (%r15),%rdi - 441b92: ff d3 callq *%rbx - 441b94: 4c 89 ff mov %r15,%rdi - 441b97: e8 14 c2 fd ff callq 41ddb0 <__cfree> - 441b9c: 49 8b 3e mov (%r14),%rdi - 441b9f: ff d3 callq *%rbx - 441ba1: 4c 89 f7 mov %r14,%rdi - 441ba4: e8 07 c2 fd ff callq 41ddb0 <__cfree> - 441ba9: 49 8b 7d 00 mov 0x0(%r13),%rdi - 441bad: ff d3 callq *%rbx - 441baf: 4c 89 ef mov %r13,%rdi - 441bb2: e8 f9 c1 fd ff callq 41ddb0 <__cfree> - 441bb7: 49 8b 3c 24 mov (%r12),%rdi - 441bbb: ff d3 callq *%rbx - 441bbd: 4c 89 e7 mov %r12,%rdi - 441bc0: e8 eb c1 fd ff callq 41ddb0 <__cfree> - 441bc5: 4c 8b 65 10 mov 0x10(%rbp),%r12 - 441bc9: 4d 85 e4 test %r12,%r12 - 441bcc: 0f 84 37 02 00 00 je 441e09 <__tdestroy+0x4c9> - 441bd2: 4d 8b 6c 24 08 mov 0x8(%r12),%r13 - 441bd7: 4d 85 ed test %r13,%r13 - 441bda: 0f 84 1a 01 00 00 je 441cfa <__tdestroy+0x3ba> - 441be0: 4d 8b 75 08 mov 0x8(%r13),%r14 - 441be4: 4d 85 f6 test %r14,%r14 - 441be7: 74 7d je 441c66 <__tdestroy+0x326> - 441be9: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 441bed: 4d 85 ff test %r15,%r15 - 441bf0: 74 2f je 441c21 <__tdestroy+0x2e1> - 441bf2: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441bf6: 48 85 ff test %rdi,%rdi - 441bf9: 74 08 je 441c03 <__tdestroy+0x2c3> - 441bfb: 48 89 de mov %rbx,%rsi - 441bfe: e8 9d e1 ff ff callq 43fda0 - 441c03: 49 8b 7f 10 mov 0x10(%r15),%rdi - 441c07: 48 85 ff test %rdi,%rdi - 441c0a: 74 08 je 441c14 <__tdestroy+0x2d4> - 441c0c: 48 89 de mov %rbx,%rsi - 441c0f: e8 8c e1 ff ff callq 43fda0 - 441c14: 49 8b 3f mov (%r15),%rdi - 441c17: ff d3 callq *%rbx - 441c19: 4c 89 ff mov %r15,%rdi - 441c1c: e8 8f c1 fd ff callq 41ddb0 <__cfree> - 441c21: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 441c25: 4d 85 ff test %r15,%r15 - 441c28: 74 2f je 441c59 <__tdestroy+0x319> - 441c2a: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441c2e: 48 85 ff test %rdi,%rdi - 441c31: 74 08 je 441c3b <__tdestroy+0x2fb> - 441c33: 48 89 de mov %rbx,%rsi - 441c36: e8 65 e1 ff ff callq 43fda0 - 441c3b: 49 8b 7f 10 mov 0x10(%r15),%rdi - 441c3f: 48 85 ff test %rdi,%rdi - 441c42: 74 08 je 441c4c <__tdestroy+0x30c> - 441c44: 48 89 de mov %rbx,%rsi - 441c47: e8 54 e1 ff ff callq 43fda0 - 441c4c: 49 8b 3f mov (%r15),%rdi - 441c4f: ff d3 callq *%rbx - 441c51: 4c 89 ff mov %r15,%rdi - 441c54: e8 57 c1 fd ff callq 41ddb0 <__cfree> - 441c59: 49 8b 3e mov (%r14),%rdi - 441c5c: ff d3 callq *%rbx - 441c5e: 4c 89 f7 mov %r14,%rdi - 441c61: e8 4a c1 fd ff callq 41ddb0 <__cfree> - 441c66: 4d 8b 75 10 mov 0x10(%r13),%r14 - 441c6a: 4d 85 f6 test %r14,%r14 - 441c6d: 74 7d je 441cec <__tdestroy+0x3ac> - 441c6f: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 441c73: 4d 85 ff test %r15,%r15 - 441c76: 74 2f je 441ca7 <__tdestroy+0x367> - 441c78: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441c7c: 48 85 ff test %rdi,%rdi - 441c7f: 74 08 je 441c89 <__tdestroy+0x349> - 441c81: 48 89 de mov %rbx,%rsi - 441c84: e8 17 e1 ff ff callq 43fda0 - 441c89: 49 8b 7f 10 mov 0x10(%r15),%rdi - 441c8d: 48 85 ff test %rdi,%rdi - 441c90: 74 08 je 441c9a <__tdestroy+0x35a> - 441c92: 48 89 de mov %rbx,%rsi - 441c95: e8 06 e1 ff ff callq 43fda0 - 441c9a: 49 8b 3f mov (%r15),%rdi - 441c9d: ff d3 callq *%rbx - 441c9f: 4c 89 ff mov %r15,%rdi - 441ca2: e8 09 c1 fd ff callq 41ddb0 <__cfree> - 441ca7: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 441cab: 4d 85 ff test %r15,%r15 - 441cae: 74 2f je 441cdf <__tdestroy+0x39f> - 441cb0: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441cb4: 48 85 ff test %rdi,%rdi - 441cb7: 74 08 je 441cc1 <__tdestroy+0x381> - 441cb9: 48 89 de mov %rbx,%rsi - 441cbc: e8 df e0 ff ff callq 43fda0 - 441cc1: 49 8b 7f 10 mov 0x10(%r15),%rdi - 441cc5: 48 85 ff test %rdi,%rdi - 441cc8: 74 08 je 441cd2 <__tdestroy+0x392> - 441cca: 48 89 de mov %rbx,%rsi - 441ccd: e8 ce e0 ff ff callq 43fda0 - 441cd2: 49 8b 3f mov (%r15),%rdi - 441cd5: ff d3 callq *%rbx - 441cd7: 4c 89 ff mov %r15,%rdi - 441cda: e8 d1 c0 fd ff callq 41ddb0 <__cfree> - 441cdf: 49 8b 3e mov (%r14),%rdi - 441ce2: ff d3 callq *%rbx - 441ce4: 4c 89 f7 mov %r14,%rdi - 441ce7: e8 c4 c0 fd ff callq 41ddb0 <__cfree> - 441cec: 49 8b 7d 00 mov 0x0(%r13),%rdi - 441cf0: ff d3 callq *%rbx - 441cf2: 4c 89 ef mov %r13,%rdi - 441cf5: e8 b6 c0 fd ff callq 41ddb0 <__cfree> - 441cfa: 4d 8b 6c 24 10 mov 0x10(%r12),%r13 - 441cff: 4d 85 ed test %r13,%r13 - 441d02: 0f 84 f3 00 00 00 je 441dfb <__tdestroy+0x4bb> - 441d08: 4d 8b 75 08 mov 0x8(%r13),%r14 - 441d0c: 4d 85 f6 test %r14,%r14 - 441d0f: 74 7d je 441d8e <__tdestroy+0x44e> - 441d11: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 441d15: 4d 85 ff test %r15,%r15 - 441d18: 74 2f je 441d49 <__tdestroy+0x409> - 441d1a: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441d1e: 48 85 ff test %rdi,%rdi - 441d21: 74 08 je 441d2b <__tdestroy+0x3eb> - 441d23: 48 89 de mov %rbx,%rsi - 441d26: e8 75 e0 ff ff callq 43fda0 - 441d2b: 49 8b 7f 10 mov 0x10(%r15),%rdi - 441d2f: 48 85 ff test %rdi,%rdi - 441d32: 74 08 je 441d3c <__tdestroy+0x3fc> - 441d34: 48 89 de mov %rbx,%rsi - 441d37: e8 64 e0 ff ff callq 43fda0 - 441d3c: 49 8b 3f mov (%r15),%rdi - 441d3f: ff d3 callq *%rbx - 441d41: 4c 89 ff mov %r15,%rdi - 441d44: e8 67 c0 fd ff callq 41ddb0 <__cfree> - 441d49: 4d 8b 7e 10 mov 0x10(%r14),%r15 - 441d4d: 4d 85 ff test %r15,%r15 - 441d50: 74 2f je 441d81 <__tdestroy+0x441> - 441d52: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441d56: 48 85 ff test %rdi,%rdi - 441d59: 74 08 je 441d63 <__tdestroy+0x423> - 441d5b: 48 89 de mov %rbx,%rsi - 441d5e: e8 3d e0 ff ff callq 43fda0 - 441d63: 49 8b 7f 10 mov 0x10(%r15),%rdi - 441d67: 48 85 ff test %rdi,%rdi - 441d6a: 74 08 je 441d74 <__tdestroy+0x434> - 441d6c: 48 89 de mov %rbx,%rsi - 441d6f: e8 2c e0 ff ff callq 43fda0 - 441d74: 49 8b 3f mov (%r15),%rdi - 441d77: ff d3 callq *%rbx - 441d79: 4c 89 ff mov %r15,%rdi - 441d7c: e8 2f c0 fd ff callq 41ddb0 <__cfree> - 441d81: 49 8b 3e mov (%r14),%rdi - 441d84: ff d3 callq *%rbx - 441d86: 4c 89 f7 mov %r14,%rdi - 441d89: e8 22 c0 fd ff callq 41ddb0 <__cfree> - 441d8e: 4d 8b 75 10 mov 0x10(%r13),%r14 - 441d92: 4d 85 f6 test %r14,%r14 - 441d95: 74 56 je 441ded <__tdestroy+0x4ad> - 441d97: 4d 8b 7e 08 mov 0x8(%r14),%r15 - 441d9b: 4d 85 ff test %r15,%r15 - 441d9e: 74 2f je 441dcf <__tdestroy+0x48f> - 441da0: 49 8b 7f 08 mov 0x8(%r15),%rdi - 441da4: 48 85 ff test %rdi,%rdi - 441da7: 74 08 je 441db1 <__tdestroy+0x471> - 441da9: 48 89 de mov %rbx,%rsi - 441dac: e8 ef df ff ff callq 43fda0 - 441db1: 49 8b 7f 10 mov 0x10(%r15),%rdi - 441db5: 48 85 ff test %rdi,%rdi - 441db8: 74 08 je 441dc2 <__tdestroy+0x482> - 441dba: 48 89 de mov %rbx,%rsi - 441dbd: e8 de df ff ff callq 43fda0 - 441dc2: 49 8b 3f mov (%r15),%rdi - 441dc5: ff d3 callq *%rbx - 441dc7: 4c 89 ff mov %r15,%rdi - 441dca: e8 e1 bf fd ff callq 41ddb0 <__cfree> - 441dcf: 49 8b 7e 10 mov 0x10(%r14),%rdi - 441dd3: 48 85 ff test %rdi,%rdi - 441dd6: 74 08 je 441de0 <__tdestroy+0x4a0> - 441dd8: 48 89 de mov %rbx,%rsi - 441ddb: e8 c0 df ff ff callq 43fda0 - 441de0: 49 8b 3e mov (%r14),%rdi - 441de3: ff d3 callq *%rbx - 441de5: 4c 89 f7 mov %r14,%rdi - 441de8: e8 c3 bf fd ff callq 41ddb0 <__cfree> - 441ded: 49 8b 7d 00 mov 0x0(%r13),%rdi - 441df1: ff d3 callq *%rbx - 441df3: 4c 89 ef mov %r13,%rdi - 441df6: e8 b5 bf fd ff callq 41ddb0 <__cfree> - 441dfb: 49 8b 3c 24 mov (%r12),%rdi - 441dff: ff d3 callq *%rbx - 441e01: 4c 89 e7 mov %r12,%rdi - 441e04: e8 a7 bf fd ff callq 41ddb0 <__cfree> - 441e09: 48 8b 7d 00 mov 0x0(%rbp),%rdi - 441e0d: ff d3 callq *%rbx - 441e0f: 48 83 c4 08 add $0x8,%rsp - 441e13: 48 89 ef mov %rbp,%rdi - 441e16: 5b pop %rbx - 441e17: 5d pop %rbp - 441e18: 41 5c pop %r12 - 441e1a: 41 5d pop %r13 - 441e1c: 41 5e pop %r14 - 441e1e: 41 5f pop %r15 - 441e20: e9 8b bf fd ff jmpq 41ddb0 <__cfree> - 441e25: 0f 1f 00 nopl (%rax) - 441e28: f3 c3 repz retq - 441e2a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - -0000000000441e30 : - 441e30: 41 57 push %r15 - 441e32: 41 56 push %r14 - 441e34: 49 89 d7 mov %rdx,%r15 - 441e37: 41 55 push %r13 - 441e39: 41 54 push %r12 - 441e3b: 4d 89 c6 mov %r8,%r14 - 441e3e: 55 push %rbp - 441e3f: 53 push %rbx - 441e40: 48 89 cb mov %rcx,%rbx - 441e43: 48 83 ec 18 sub $0x18,%rsp - 441e47: 48 8b 29 mov (%rcx),%rbp - 441e4a: 4c 8b 22 mov (%rdx),%r12 - 441e4d: 89 7c 24 08 mov %edi,0x8(%rsp) - 441e51: 48 89 34 24 mov %rsi,(%rsp) - 441e55: be 0a 00 00 00 mov $0xa,%esi - 441e5a: 49 89 ed mov %rbp,%r13 - 441e5d: 4c 89 e7 mov %r12,%rdi - 441e60: 4d 29 e5 sub %r12,%r13 - 441e63: 4c 89 ea mov %r13,%rdx - 441e66: e8 d5 3c fe ff callq 425b40 <__memchr> - 441e6b: 48 85 c0 test %rax,%rax - 441e6e: 74 30 je 441ea0 - 441e70: 48 83 c0 01 add $0x1,%rax - 441e74: 49 89 07 mov %rax,(%r15) - 441e77: 48 8b 13 mov (%rbx),%rdx - 441e7a: 48 39 d0 cmp %rdx,%rax - 441e7d: 0f 87 95 01 00 00 ja 442018 - 441e83: 49 39 d4 cmp %rdx,%r12 - 441e86: 74 30 je 441eb8 - 441e88: 4c 89 e0 mov %r12,%rax - 441e8b: 48 83 c4 18 add $0x18,%rsp - 441e8f: 5b pop %rbx - 441e90: 5d pop %rbp - 441e91: 41 5c pop %r12 - 441e93: 41 5d pop %r13 - 441e95: 41 5e pop %r14 - 441e97: 41 5f pop %r15 - 441e99: c3 retq - 441e9a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) - 441ea0: 4c 3b 24 24 cmp (%rsp),%r12 - 441ea4: 74 05 je 441eab - 441ea6: 4c 39 f5 cmp %r14,%rbp - 441ea9: 74 11 je 441ebc - 441eab: 48 8d 45 ff lea -0x1(%rbp),%rax - 441eaf: eb bf jmp 441e70 - 441eb1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 441eb8: 31 c0 xor %eax,%eax - 441eba: eb cf jmp 441e8b - 441ebc: 4c 8b 34 24 mov (%rsp),%r14 - 441ec0: 4c 89 ea mov %r13,%rdx - 441ec3: 4c 89 e6 mov %r12,%rsi - 441ec6: 45 31 e4 xor %r12d,%r12d - 441ec9: 4c 89 f7 mov %r14,%rdi - 441ecc: e8 2f e4 fb ff callq 400300 <__rela_iplt_end+0x38> - 441ed1: 4c 89 f0 mov %r14,%rax - 441ed4: 49 2b 07 sub (%r15),%rax - 441ed7: 48 89 ea mov %rbp,%rdx - 441eda: 48 01 03 add %rax,(%rbx) - 441edd: 48 63 44 24 08 movslq 0x8(%rsp),%rax - 441ee2: 4d 89 37 mov %r14,(%r15) - 441ee5: 48 8b 33 mov (%rbx),%rsi - 441ee8: 48 89 44 24 08 mov %rax,0x8(%rsp) - 441eed: 48 89 c7 mov %rax,%rdi - 441ef0: 48 29 f2 sub %rsi,%rdx - 441ef3: 44 89 e0 mov %r12d,%eax - 441ef6: 0f 05 syscall - 441ef8: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 441efe: 76 13 jbe 441f13 - 441f00: 48 c7 c2 d0 ff ff ff mov $0xffffffffffffffd0,%rdx - 441f07: f7 d8 neg %eax - 441f09: 64 89 02 mov %eax,%fs:(%rdx) - 441f0c: 31 c0 xor %eax,%eax - 441f0e: e9 78 ff ff ff jmpq 441e8b - 441f13: 48 85 c0 test %rax,%rax - 441f16: 78 a0 js 441eb8 - 441f18: 48 03 03 add (%rbx),%rax - 441f1b: be 0a 00 00 00 mov $0xa,%esi - 441f20: 48 89 03 mov %rax,(%rbx) - 441f23: 4d 8b 37 mov (%r15),%r14 - 441f26: 48 89 c2 mov %rax,%rdx - 441f29: 49 89 c5 mov %rax,%r13 - 441f2c: 4c 29 f2 sub %r14,%rdx - 441f2f: 4c 89 f7 mov %r14,%rdi - 441f32: e8 09 3c fe ff callq 425b40 <__memchr> - 441f37: 48 85 c0 test %rax,%rax - 441f3a: 0f 85 c5 00 00 00 jne 442005 - 441f40: 4c 39 ed cmp %r13,%rbp - 441f43: 0f 85 e8 00 00 00 jne 442031 - 441f49: 48 8b 0c 24 mov (%rsp),%rcx - 441f4d: 48 89 e8 mov %rbp,%rax - 441f50: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi - 441f55: 48 29 c8 sub %rcx,%rax - 441f58: 4c 8d 34 40 lea (%rax,%rax,2),%r14 - 441f5c: 49 8d 46 03 lea 0x3(%r14),%rax - 441f60: 4d 85 f6 test %r14,%r14 - 441f63: 4c 0f 48 f0 cmovs %rax,%r14 - 441f67: 48 89 e8 mov %rbp,%rax - 441f6a: 49 c1 fe 02 sar $0x2,%r14 - 441f6e: 49 01 ce add %rcx,%r14 - 441f71: 4c 29 f0 sub %r14,%rax - 441f74: 4c 89 33 mov %r14,(%rbx) - 441f77: 4c 89 f6 mov %r14,%rsi - 441f7a: 48 89 04 24 mov %rax,(%rsp) - 441f7e: 48 89 c2 mov %rax,%rdx - 441f81: 44 89 e0 mov %r12d,%eax - 441f84: 0f 05 syscall - 441f86: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 441f8c: 49 89 c5 mov %rax,%r13 - 441f8f: 76 42 jbe 441fd3 - 441f91: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) - 441f98: 48 c7 c0 d0 ff ff ff mov $0xffffffffffffffd0,%rax - 441f9f: 44 89 e9 mov %r13d,%ecx - 441fa2: f7 d9 neg %ecx - 441fa4: 64 89 08 mov %ecx,%fs:(%rax) - 441fa7: 31 c0 xor %eax,%eax - 441fa9: e9 dd fe ff ff jmpq 441e8b - 441fae: 66 90 xchg %ax,%ax - 441fb0: 48 39 cd cmp %rcx,%rbp - 441fb3: 75 58 jne 44200d - 441fb5: 4c 89 33 mov %r14,(%rbx) - 441fb8: 48 8b 14 24 mov (%rsp),%rdx - 441fbc: 4c 89 f6 mov %r14,%rsi - 441fbf: 48 8b 7c 24 08 mov 0x8(%rsp),%rdi - 441fc4: 31 c0 xor %eax,%eax - 441fc6: 0f 05 syscall - 441fc8: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax - 441fce: 49 89 c5 mov %rax,%r13 - 441fd1: 77 c5 ja 441f98 - 441fd3: 4d 85 ed test %r13,%r13 - 441fd6: 0f 88 dc fe ff ff js 441eb8 - 441fdc: 4c 8b 23 mov (%rbx),%r12 - 441fdf: 4c 89 ea mov %r13,%rdx - 441fe2: be 0a 00 00 00 mov $0xa,%esi - 441fe7: 4c 89 e7 mov %r12,%rdi - 441fea: e8 51 3b fe ff callq 425b40 <__memchr> - 441fef: 41 c6 04 24 0a movb $0xa,(%r12) - 441ff4: 4c 89 e9 mov %r13,%rcx - 441ff7: 48 03 0b add (%rbx),%rcx - 441ffa: 48 85 c0 test %rax,%rax - 441ffd: 48 89 0b mov %rcx,(%rbx) - 442000: 74 ae je 441fb0 - 442002: 4d 8b 37 mov (%r15),%r14 - 442005: 4d 89 f4 mov %r14,%r12 - 442008: e9 63 fe ff ff jmpq 441e70 - 44200d: 48 89 cd mov %rcx,%rbp - 442010: 4d 8b 27 mov (%r15),%r12 - 442013: e9 93 fe ff ff jmpq 441eab - 442018: b9 08 4a 4a 00 mov $0x4a4a08,%ecx - 44201d: ba 77 00 00 00 mov $0x77,%edx - 442022: be b8 49 4a 00 mov $0x4a49b8,%esi - 442027: bf 12 4a 4a 00 mov $0x4a4a12,%edi - 44202c: e8 0f f7 fb ff callq 401740 <__assert_fail> - 442031: 4c 89 ed mov %r13,%rbp - 442034: 4d 89 f4 mov %r14,%r12 - 442037: e9 6f fe ff ff jmpq 441eab - 44203c: 0f 1f 40 00 nopl 0x0(%rax) - -0000000000442040 <__get_nprocs>: - 442040: 55 push %rbp - 442041: 31 ff xor %edi,%edi - 442043: 48 89 e5 mov %rsp,%rbp - 442046: 41 57 push %r15 - 442048: 41 56 push %r14 - 44204a: 41 55 push %r13 - 44204c: 41 54 push %r12 - 44204e: 53 push %rbx - 44204f: 48 83 ec 48 sub $0x48,%rsp - 442053: e8 68 4f 02 00 callq 466fc0
  • ma$_JGzlLK3R#^m^H`Jl38 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 IwHvBN>0O<)0YZTDd^$J{=Oms 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

    v=?;%J$i# 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

    F8n65S@tm~wtDR(v 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

    cQ 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 z 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

    w^|E`W2G~uZYOgrf_Yd5AwNuh>{?dtrBTdsC*&o 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 z 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�C#>s%X?hoWZ0Fyv`=k4zFK!z)J*o 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

    3_){!0jDZ##tzn<9y}ORW1w>P32P(+YV5t=u@C z3BES!*-JybvX+c0(HTXv>7JQ=;tCw_3Rb?MVi)+ueh%^{X7|IOwTKUobXLG>}|78I~)slSJ_hw>u`No zXC+qi0q1=SisG*kRf%{qZKpT0;cROa$i<2zw(p5LbJx2!-bwf^ z9U?v=#DBD!C~H7HHI|{8dH&KI1LE~rMM2H?Kh)ASz_+32;1g}`#h*ii?HVp)D9B3E zg5RjRtQ<0Yx^A3(0;8}siqr@dSu)BRS;%%P%=LuirqJ^9qIz|@_X?bjl>np#XV5c+ zyz0v@N>pe3zA7Rw$k6g{@nNcI*&KeN1PRN&MWY?~;P)=H{9l;xrlyB4D^&5esKvPc zLdg!=+9skoY6)Q}496)*S-pL9{x7^U4tdCypHdgW<8g zUA0HM**XIYM7`?l8C0H!r$*2SRI+FBUJr})P|Cx;y7j=b%u3x!alP51H%F-3@Mkg# z#*(p%480B0PIjCBaH<|Q^RUP)d+4xYs0#5^DnO<&xI?Nb!|ape3@HWg{gCa|!r-VA zWK(@+AQKUFGNtAxwV(djPG$=~&O_zo+0OH3(a40mo@VcRtu@tyOu7pvOzG}jlXRX@ z)O#Nhp+GIM+x8%LIUCQSK#`LwQ&nlNAD+ChHyFak&i+)XmD*%FHogq@gO|=ecgUY$ z<>}t?V~H{#hF;_)A@ynDd+RKx{kjZ|8l~*~ZFZHs@d~ z?3i#nS$c^3(jq3Wcv;n7fz0=PK z*zRmRUYzDj)AU=t)zyshUVW$ur7hHbof)4Zw0PsANNO-ocKUhM8**NDuPakGGG@v& z%LD}44j-pyDq#))w7PX&zi8uFniy3lE(P7nOS@N|q$Nc5j0KS-LEu$0yQ;y3Ak<9%UYqdj$h9=8tG#PfJm8f&1n#ow|m%m7C5g*h75I zf?7D*gR2qV{G`BlsWag><-m|>eB`~e3bHx|tLipDE%-!V*$Df(nLJPaF?Pn>-}3f7 zuXR7Ryps`|bDuPAr_DpW=ibz{WENYgCm=i~V!$5yel&CBr~<=LSP4TVV1r?oN%=P# zvz_xhg}_|(D|*CB?-uKzyUkGM?~j8r6C51%I6FQ5HIhqyB5-LDzL;PIUXSc*o6g9I zR-r=z(e(48ciVYnBTabpU^^c~ooCkb40Q|E?DufLYI-{M!FSyzf}H`Y@6$X)VCZcD z1VOYWwt(t6`RKGR(uOVMv3Ou0c0<%*mDz5l6F#C&`;;+L72(z9ZBSNwBwz@!rM3-} zYg?9Pz^kfS8MPH=*Yq6*H^U6B_h;{(1#P!Q%modv&G-peTTi$EXC0nnsJh)4b?ih? zM1V9SPF5+EHlvKDy}>1(H%!S&K286Dn4aYI(4TFiZ_~hvp9tUvgj}4k(RLp4K=1!N zqsmu3;i1XadrTFky|kGwf2OiH_H%T7u$4NS;y&KAfKy-N5%!c_4kM>=aZvz+<4uS_ zH^1h5Px3{*so7}K%}Teb`ZhyB*-7RzuMf>$AFiek=9Y5YblmQS;7zr;KZg-{AK%5| zbvIu@&&SHMFMpLh8+PiRb}zWFL#91moYzBLIv!g2zsaBY2V@lUtCg*>Z4@Z zm&`lKw41zAl4)~l;eU~7aU9?VcSr4iS*HCM6k-j_`SC3~%d;&<%d;(cdG_L>`0MrQ zI}m3NpWg6dBykVoY)d5FfH)f-hNl4X?9+m{k!MF9BhQ`^N{{|`^6W%Uo>hdmNX5EH zptZ9++vX0g&C9cxP41--0_L;231ThiFAVwrAlK@gYN(}KCwcac9ilyBIYfnH4DIr4G(C4&)X^P;ZSL?m>`cC( ziKf$aiI~TawV4lZ-oD3mj~LaH9bor+{V3{ub6GT9zdqYvY(a8yr~5`a%f+A3pMN74 zi)VOr;mO4pGBU}<1XDUjE(XBvMHe4HB9ugoU@ZAKDslHg>cBp3Mi*Lc=H!25v>PB*sR=Z>S zk^P+9X`JUeH~SiVG+)2ik0&6%%6s!=^`EPGs37-BxCz#vb;3Nc^THI8)G?1YROzGNE2{G@m za+o7qHm8(YQfKl8#i^cPxOF8&2=cq-k1Oo#aOc}pAz>F8;}2NFc;&6nqnWD2kh+Wl18LY&I<^=?zFadn3-i-1v6=NG)F=rZ_ z@g+*&(7mH*n)AS407CB19v|=vJn*RU{zLw9y(?VgL41=C-p7C|FI%Zepj?C#2qpE# zGcWORfL*0}Zs1Pg;FCEn}S{9c#M2NUmGA!oux1GAfeeTRL(8@E)+73AB_0|S|DAvf2^ zH-S4t%%jZz91kPT<^Y7l#Bje%8Rbh!lU2r#wItDt!6vp9a^p{GDRklPYA|nYy$_~7dcenbdPmq6b!Qq-7LW`q4T5($&1mn`Or!RK|VTQ=q}T1ICVBY zZ;&045CGbgwNm5gWn)_GtdClb<>3-C=j&Ru*IKDl;nF?|cVd}7ugt#3xg@jyWBO~;-|Xd# zSp34Qly1@O-U1WNOb@tAEwjj&Tf2Uay(7=iGqbSseCj^_`Jpx<(F0WG2j5(ll2B_M z>yf;}3GH^wx`O{oi4Ps4qgFG&U_&&pnn!$HO1S2REG~MmGk4W$aWg)2tLWdIp=a9; z^LJ(2k+wS{&prA{+YiCAg3yXe{arqwpkR9LG&8QKv%#)t#&zCydU4e{4@M@+rtj7bX*xFH_Vq#_3g- zTkJ1!q2+H%z2k_!CxM33WmyHH!{t5pear)s)gbQS+h#OzrG+H^4&O6vudx^7}3=?8|G`ZmRI z-M+N=@h;ph%}8|!<$)$@dc4RaG0zk{j$y*{;ZIEW`d}r03D?^j9MuJx0LxIZ)9fVv z!RHP~75@~3tG)+M{gpbHcy=J)5F3IktCx|`zr_2su@jIEn%&d29r8_Lus533^NBn$9aYI=nGO4-ody<%>`s7o)>3Dt^AnE zglYJM7aA#JZ!i&1|2>(5a9XMsOUnF;yR9F zv9gvxT+0g%dc-U;gJ_GhgiM7u_rIHwnf-DW80K&%FyN*&`B}UyiHR%BnOs=87R;#g zh}gH=wUTg8X_JPdn>U^vC;L~iFXsVGPWF5=2oIy3gvlC9);`0!%BEnXX4 z<}W=DwfV?D=}mNP6t2r9y=$(plU!IlpBih)WJ zXPGX;tjIdbEstSZG2*xLa-{HXmRN!n`@=Wefv-m^nsi)W=VeRPqYS5}#7GT6XM7Dnx3sPI{>xKG`p z@7C64|3Kx?{bJ3fD6L9}ogRO)r`+9K94)-HSlZnQ*#T7I%kdo=TI76Bm+!)7c{MH$ z+&*@1QlxRTKw_E)+>?s^MH({y81&`^t23KjyWMWPwLo9yFVI~>t(R#4EYA4iWCa5y|0_; z0}+zXc_@&+|ev z|DA7pGw=56Y9Jo(7 z{i{uxYeWvGQwEQXTCuV8U&Y4kiX(0v0Y&We?BVIrCAhN%-C^AiY0Qn!YLXf0Vm`H; zHW(1!iZs}pG_%x$f>95g*=@X*|41}5GobxWG!?n)vQP0Z#U$QY98M2Pww{H`T#K%T zH!f(7E0lM>pz+{X&Y@c=ovY%2OOt;d1^1*Igiv@v1x74tV8F4R@|j6~K)>V&)u5BN zl)w>cSG*c}#7~R^b`g}@mF1Li51zxkGpLMQ@>pT>E?g$kPk~(QFVv>n3u=MZEcrqm zN4&*YKlwwQ60Q0q_Io|{Z2ZBI5wTzS`aXwG!_Ipv=F%aVAeq85wgMb2k#oUU|MmQi z*Mlt_2Q=#da5lAHT?~)n*63vdM1;BV+Om3ezig_Do_#{9gKFrH)rc zG5)YLdPfwdyHkYqjOC|g2Wb6f+gkCAk=753nJelb=&K z-T$$5P#ERC^HZ9#uws?GQ>XA^HxLSA{}ux&OeI$G$F!+9KS*5MX+zJ6F=?k44+rh6 zluZ3LH?bh&AGYQ<>q*Ws^S3J%*lYqO$I9s^TaErWa8=VCUCFmhVRPpNj$vFpbinjk zc3Xn#sxdt1)(-E43?830oo4pT%+hJP?%M7Bg@25Pty!sQfW5t_X4xB}+rPbNtZwCx z$Zzldf)JlzU)5xAq}u)L>taWwbX-znIXOFvN!;5giYw&8mzHdRFG4Lv<=zws{Mm{5 zc^1l^8Lh@^GTzTxGG3V5OL)&fv$vW;;*Fxy11m=Gn?2KH!jWIXguZY>`QT^;Xp47b zXr;=z>wa8i9><_A*8cMsoP*SfQcyf zyTA@M?WRT3XI;GaEJf0ZpOm}PpZEGS2gRY%o9e4?FE5MlkvWXz5?34cb;4eKqy|QZRI;m4yv#Qp__e7nkZ-Zq57krBzeU)k7A`fn-2< z2%WW^S*7j^oV<%x531gIRzZuWaF;b;ryFz*84z~kC4;d6ev?LOt%q6ydyUF{z_dkJ zmBcnn*O4NCV+F(4%C<(YhGw|F;XL4IJNQTM=dMjGeMGYc#yob><9Sw6p$mEB0#1S- zS;@`bBOd0l@}ZoW^d7tFkzG8UkyUbJ$Q%KnrP!>9vxy5q+aeXKBbmFuh@fpZe{8%s zBV4u>&GdU-_|Y(guLjmc*r}Oj_RBDKbnFGtRha0k%NcM?%Q)bRX#4AzoC#NME*zRup5V47J z*bahUd?r7Vvp(l1;&4o~$e?g-fmt(zG;7MuvSFE1oXVJSoxW}{M}#j!_!ffvnLP3Q zHl8s~JC>*ct%Sl{fEbi?B-WcTqsGKawU#K+<}b^^PO931aUxBF@3SV%4P zT%T=xWwO0^GKN;DvR^cFYXDx*XE5*OFJ9K>_qYG z-zb~k&r!U*GEIbc*tRwNwjP-Hwa{tjLojA3)39KM*#SVuEKZXCPTkK~MW@_{^8qge zoZnq5;DFW1@39=1CaNHdI|;0AbvDiCjC!JB^0meCR5;hY7wOqf|G2!7 zlA2zo@UZR7(>P~h=4y2xy9RDCfNz#RDlu(7ReECDeyL@fhab>{^^IR(oQySD#>x2j zGrYVk$y0AR& zfCav&nRELeGV^WLfQzU_9jM%}V(;Y33pmg4M!n;TmZ7`{nRosE_{c#J=!L%Oh_h*A#YQSaRtYvg zhewRawF~9&uRqyZ!X4WFer$O7ruetzRDTEE%>@^cLLN1|jUkuR5p*p)e09uKbeKz+ z3GyVanEP2NCh2OY$%{Xe{V!(KtX~j8zF(lFPA=3DhWb#UUNM^?u`-jWG!sy zcke$-#`g}G`Qq`fJX* zM8|609(2#}s^VI9D|wk#o6Jzdo8VwLtu?U)i1~szKk5$Wmwqkbs?$kUaXyX_4AJq{ zGP(IjGM8;>4VKXj{j;6;;?Q#i6bd~rx}ziOxo{d^UY-Bn=l=FI$aCHorM!yWW@kq2 zx6}2Djf)eA5OFTs5^=gk(nUl@EL6*pz)Ku@ELP1?hdY9tQKfd^Zyc;I7>tEKh(%M^ z)z%)yR}{*?cb^~XRG0>K7AzI5%~Y! z-=y;wok^AWDB0F*VLN;gOF>w=c7Dx7Ub4~6@SwtIq!y+?MD@ca^1Jl zkU^#;l(^Mc0y-$lN;Q) zqx;6k196UvA#cCy-gd2VgH1gEeuVa#Vu5&bB)wpBS<9!WqTxsr`)j z`bZ>w=Wv}y>X*G1^Ln0-DIS|7kjsT{^e`P4#N7|SWYgQM^!6 zbcl;R_Xfx8K%$I|sN;UrVG$&b;(CcygeyY-9Q8udq!u8dDv0!*ViV9`y5czZT}bBG9s}iK&7ZvO_6FCnx6j^;{Oi<% zBV!F@BGQ!q$R1k6$=2!0viHIcXL#N*#Lo9_*RNCFs7@xtq?Npf!i@_x^IaMjN~2`& zy47xNEG9V>9@pBq6I!7an%V6VlZLMD&u%sH&%5sHYL?Y#Z*VC6!I;Nz*wA3q%%m4I zHfk1x}gBo{h7feH_XWT06NmIIU zYP!2=qc5x^4{S1?F`ULMM1@5XU3HJrq*C#WA-tCL)7505X6&oY59Iwi~^6n z!Yo_n@sOJ;>;RQdzE3@9@&Ry#hb4IO!$*P-V=>y>_$uFl z`|CwFhW??MQo{roy=47u8`^1Kp>?F~VLhSU>`*$Q9i&!wP7XNuMubO^c-3@qJ@lD= zu6(#gD_k~u$^C+a(MxV7<$e$q&ev4qz|f(WoX=Ayy(DTqiCjPhsFvLV?({u|C0NNW zRIEGJR)Y;X6+Ck%qBiH=u#7SUqnxdjd?I1)YkkC+W0x5%V5LM6f|U~R zmHTmTQ?{=W=vPXbSMD1o*GlOwQt_2icfn@|(r#HZmk8-i3k468cj}QFa>!Y_gq;$q7J57D??3@0c{_;}f1Vgo)3369m#v0vX#$v{h-KlPX zF|UpBIKP|O?M-p&KKkXGN_r9@ckz3dbS#|vsWkA~{?hnWm zU1tfYD7BI(0h*7e7K>k|-k@~07jHZ}f!Pp3)?<3X1h?mPG=Z`iagrYTqIAxDR)~Hf zT{LQJJCF5QV3)RGqp=Ph#Rju1UMywdUB=aj+jk_v7kb@yWk#OyB{h<;Wr&&7Z5FDp+zk01l`J1FS@0oNV^0=*NwVOC z_7^{Ef3Za`s(JCH_?Y`-!sI3>q(n}gCgJiU%NI^4x2)9P!Gm!64umtEpX6fuy$aA* zPk_F}GJidM!?4&voBk|0-O6wPWYh^$1se-p<^Q0kY+B`-$cOFf6AN@j zWG((`quJQCR?-*lh74#orI92eX?u;*t7esT!RRupEJLu?zyZ^2{H>5P36;mP)2KV? zpKJZK6NebbqkJzL>Rk-RO8u80;e4Ju&$r`pX2l;*u|FQ~z^^x+YL$)QezAt(pj`p9 zXn?!BG@S2Ykn@Lwa(L`;p7H9>ELKN4&{H&U2^X7yo2gyA$1$`588qG$B0tq-mfJot#JP8#-TpW zS?#v|FXr9_KC0^K`%g$lf}$rV*l4}P8Z4<=gQ7A8G=md412dSaDBi6oUaD^?%m7v{ z!I?l#kE3aoN?UzOt+uq)N?R`hH6+{u-Ws7^v5Kg8##D{gLhwTV-`_rGl7K$%U4G-Yr8+}!GLFH z_>^Gpm4kEjKd4HxdM2=XK;`Ul{RIKr{Vo{568g_Dz=wN)2O5lw=0bXgJw6hOudV1$ZH>uaa!)eQTR2lk0@wX)8nrZzD zq$#A`=_)|92R@#l-X__fdgYzL-4y%;hx7MwEHit4_r&AS}o zG(1iHgUVa~o(?lr3^sX@*?FHNl`XA`_=d;T#vN~Hw+!x3aaX>r+C#F%?NRsglIW_xC~7$?c|EC)fJM5yaO_6Ib%l;#z0*f^BLc z{M`KYQ*l;>=^dQ2)?2Ns9RfE)gHq7us6y3%kiFths;-9FMy>$MbjyDJnB?I+_apI_ z0e|Jr_1S9Oj1p(tOWVG=?|HnhXgZG_xsCxhUjq}ns%jD&?`q`I_^Sydj);(rNTz{I zHSV?SuX3|=t~!G(LYIcaZ1?_(7Cy&e8<@J7)2wfmwvg$@7wO=Ve#;%*yU2(T>ZJ;8p)Sp+I9&O+1?pu-yPZlBX9zlP zaNUpfx)}wV50RAdU_BDAD7QCz_EDWuk=&OZDiCNtUa>)KCBKCbnYh{+^NNgKGmsnt zKk9|X`BJ8_FgyPK39}Llzh^D_lr_PkYGX;p52pQx7`sHtLm66 zSlhqyF{i?LIv)D{eGo!&7~@Tot=EE+0ynFGJeK(F3$a#!3#?s^R2!_!33SbQ4$g2V zVN{A2Ye1-Emassg?qIYzfb#wZmy#8=QKofrjq^g>@uxn{dHHg!UDlb86j6|(ohss- zMXEXu@0o8PUtp>nv5X*{I7$yh25=)$Ne$*y%z-byq2T;PcHmk&`%s0za^5+RiSwcW z7JvWr>W+#o(>ty{b>OP<9x=ptZIxEr-8IffQMxi&hj$j#o=6&V*kb5xe!sMln|M@K zfT=M3f(TU?w|K=m8~u>^AH6SH9<+%8Lq^U!1cp0Was&FnokMR-(JsKT3E9E(O%$mZ zwk+A=z>>SJ>@P6)61GceeqRQRHu~^Q5toa{E*mS4DzoXucH(oq%l4;$#X^NqNqc>_ zwnl~YKw%^**R5MagnaBcQ1=Xl&k=ef7XF*H@EVAr^p6X;zi|*(GW?RLQ_eF8{g4?Y z&t>MAu1i1>G{1{!(?y&h;Lj@Vz-4BewsIip-V}Fvp(Dd=XEKYvz_=;ONr|%ue(o7` z-z;*pN`Xa_shN2=0?9O@d`{-hK#OCv&MOyJ*nlXO9mg@~Q`IY)u54_#TVoD7oAypr^tbvjdp?FuM(f)l z&4jZKH@Jzy-Lw>n7hPXb+VRaEe8iWEoOzzigeD5#j)h-C#C)2S{x_rG-X!AIusGJG zUXHnQ0qBSd^ua`LQ=1{_Q8VXezO^_m6!`nVDh~()Gb?kb;Z`Ie$&Lodm2OolG`^%>j5((%e&eK2BRV-G&eeA~wbT>1zF zn7wKU@#L~TMmcy_`GA_z?%%=ulAMm7jj_tta?ctfkx}&!U-45!Lf%IISu0yfE4J$Y zZbows+VqUP&Ag=R_+%*Rqvjn_EAsjWy)^&v5B|TnJDyNd+iesdh)JdI@~SLDBIb8; zo_K(m)v?Fw3i{*bRP&FRn2kNk_H%hGdv0qPn|sG0I3`N(=5DH-{=tZq+2IZ=Bke}W zWr_SF?XH-$MPaHod+Dv5;C6>n&!SE~e8+%JIdFK|Zq1czjf|93t(GPUzQ{!x>?Qgk zRo+R(nrKPcYEw(2O!wuQ>B)I|5)cBEs(a~aX`X!gG|nw<)Bs=NfE*CgxRa-yJtKAg zu_q199(J>#qmon+=nCSQa9-;ZFBrT3;`BDQpMKDSh>NEA>iF<3JoBgC#@&E@Y`qA! zFP?#vo^Q8y^@Ftx=qUcSvxCn*ZxXci?~zHhd4kF%xkcEH^+G-eBl*3xHiLJD&q5v4+mA z<|eaT7(`$jXPtMh7l`+{Sh$UbIa2TDKF1Iwt$8lBm03`Vaa*Z6I10rI5m`VVKJQuI zwmT0z>`q=Dbx*^?m3v-U+`SZ$E>07=VmtrMgQ2)FHa%!9L_@Xptf)@W*g6^#osEmm zJ~Q)%o^?fEXS1#*Q(Y|_+WK-k{O{DQri%;~Z6^^=O(QFwYKtS?cb2miB%B9J&CjDH z{KVQ8DY0{F1Vo4Tz?p+;$O&zr@A1l9PP|aZix^o+(IqG!$7gJ!g z*i0NVs+8zTIU|?ipY*ed!kyZN3+vVz>QB^sd1k*p%CqV1b z6=+62a%xXRGr32D37RcSLxp8yBAPctBi%z@s{W5#_dT#JhS$J*1c3@&TNGLn^;$h~9X+1S}0^o``*j%=J1)#l6 z<~WlG%gCY+mcP$QoIX6uo!VOf0*14C)LmY=ATy_lc4dsUgV6#h&TSXwoOhKQ@I zqlA`^A`<|wkYFVfi9wl7DNm!Wznrp7{Eu*&IHom0f%@5`@G4HLAi4j}no<@flF(Cq zJ7l#h;jhbG!22MGLc+8egKg!vG6m{{YZ5pdDtE`w-t!$LQzfkW`kQ<*T@rWq8{R@4 z$9tk$E%ScQiMWoo zX}sI;G>MXl*XeD@8&6~W zv>M+z$P|7+g(xA^#hgiWW{(?vpU+O4PQwkJ;}2Wo1$K>s1-~LntPji$sD3_K{QSk( z9@@(3;G6LYJw-X6S$EV|^C+EP?O+0p0CTQJG<=he!<>Xi7p4xVGlua6Mr$e+@(&$8 zTmnD=!N%(fYLSt0d^_7t}}W=OdLlM6lxo{u>Q*yrQ`X5Pxk zKn?mKsIUx-=nCY~j0$ISKM?z|t=P&m7-q*Vso%14F(=Z>e1F3_#-+Oe)(1PYY?)N&i^>sh2C4DhZpM3!(q;mZ}UE*H& z+2a{^FFJ}R-w}FagSm2^1h@=veqyHcGS)EX)3LlH++%#WGz$izg;sPcB+nmzYANGi zCP;N_{5q4=Eb%HB4SGx{&UuIM$guk#lpkqHexwPGyX8GYP0E4G_DVk_|1ZmhG*KDm;{k4FMQRGP~ zJ|SJR+eXe!NU->Bt#?*eclV{2<=%w#c}xo>_c%qMn7QAR(z8zMdGTqSs9x@QR$ru9 z*%QvkxphD<;{HT*WyfkLOB-3Fo}_)sNUf7crk^A{l*s{;EIWC@-*4|)mEN()P^Hw1 z5qHrBij6Y#)LNLPDu0wcr0O}u`R$O*J4Lw&DeLsx5&DqJ{p#e|G50J~ipEK!$Sj=i z-~I)%5_5k@+3)s{TbnFtz%a$@F}Jf_}e2+ z6vlgN+XKe46?9OF?~c#P?52vSKMXXTIc6mjOqwRr&Z6|{)Q{vb7$A66#oPG2tz1^e zT!RT-5|I!!>oXIqGI7_(Q&ZPOC*E4ZC6rSbb5{vCJ_8eTZZkAq;g<|-t;|#Ohj!Ef zZ~hoZyMQ_+U1qnW7V6vy z-$PWL&lKy)WcOtHt+tKPWV*7=2cR}Z7N}MKH`X0PuOn;jLN)4hQ?BWvyDtIm7XFE2 zk@|vC->Bk`u(qc2&Tj5w!XM7upBuGs@h7PdbCZ?o&)-}Mi0^V2Y0DO=K?%w(aR)hf zN~lcKFZYMVQBX4qQJNZc7D+lB&qhiMTin<{yYeGk@3KEHGIC^RQ2~8}nl(DN8L_dm zNat|;!Q1Y*%T@U|BzuNOfQ;JyN0ZyMMS_a|YfbHnWrCX)wGX%1VqhxwMKGV|CnlZa zBMbp)xO9{n29@_;RbVJ9Rc_H;l!Ivm^}ZyLD_SR%B&7#MG0Rz7V%oaslJ2d699!Dlz5aY{XPGFuVkp%y zeZKm-^P;YKa9XYSmNfs2Zt-<104#P!InI}P9}km;2h38o=_g>3F>XK(U@YXkaa>K& zbEL(ZDx?^QV>ompMml4dovoWj0XzFxqkbIUV?Z`N+q|7I(!1_2Vnk>wR!DUwJ&=L5 zr5ng3EVCZ5G8DZ)K6N?JQY8(ZKDxXdkyHW;%@^xMdbe}c)HYv+$I2_c*r zRk&T4O$t@1c_Aq>#2x-T^eT32R@qRK22jtXwy6Y1hol;^&@sU0ZxB|pO{;26)rYW@ z^*L3Xz1LlnSmG@#xTx=z4wKt`kxx<)p95dWdCb&WDGISHADP@z!Ss>h;=V1AU!@^I6P! z|H|~pZ=?>5W&c#i7q}YfES}>NbQqr0V( zhiMzTb0{k7#RsoH(EPA*%A7fZ>ddf{GxC`Npg8Hvse|K%aTw?0owUfiy<0oGh!KIE zkJE;)4a{5D7eFj!9uZB+|829P)lorvCGiVD)k^_0~sHcmckS~CZQFP6Z(0M+044*h( zt*Qo-AiVbo>h7a*xI`>p>111r(Agtx|2uhMwYJ>C4}Ji~bhFFOOvT+rBbE910%=aO z-iz)WruT6B^b6uxe-*akSzNM_9k%u0dO3)2$FT};Q+u|v|5z&ZtsRR~gM2OJV&nC` zjz-zBI9Clh^KNY3T0{l%_nS?OwQo=lLy~&Nu*CE?KL)Q!W5}4a{WtT%7(R3Rj^X?N zlQEq26~-`+O7mkF5{$w0wugS|t$XOayVUrsk`RW#=in4o2!)^{;#^|RD|;=I!OZW+aT zQa)A6;JzuJDW$Y;%I8WM*f(XjQcC)!bmuMxnKTQ%t6SK$1x=a>xTWn7I$+HRKF_A2YxobH!ne`9p!%ZLx>Z~(;4~lR{Lvnu&Y2DP(E|asSOrO7*zNutr z>Od8h6a9XIJUyU127gWIPdHqD0yfHwxu{l*Com)` z%%E9+mqN=1p^UKUH^Qdy-I8VaDCD2u7Z#B~C>+*FIZx_V;QWX1-}E=`ejkgD_haeZ zL#@n(RmE$fH9A6snp#5&VqIt+O&uYSz=c zkFhc>JQ<Bujt~}$_xO46u{r3@Pj899i8Q4*)uzfL!Bn9|m+;I4{W67#fS! zB{+^XFtDO65%+YClp-^%(K@^62}v`q13cTWgI&D4%0R&!cD*A!K~>`9Oht(%3}Z>x z&*7hUW6m8FrF^*HGPYHYa9^_?84vp|AAkF#->~X-N&f)srPD*LMIVrJY8EDgyWty*(>2e= zXC3^H$^ z>%gm0yXXw~&VJOdn_AN#4hIouB)9?fJxL{`k9P}&S!cqz7#`9W&EXw~8F6O|{y||} zI}XaPOReJ$Ytd$b6&Ld9uA%5X_(*8b&pj#TKDw38TaOOxi+M~jBDzTp)+1x{`1Lzs z&!{_n^cufEo<-k~YF4Cek?=tOVvhL==Egt^jLwP2QR7Z7F-U=nj5v6~$+-tD8hX$| zhIgRFZtp-YsKAAW7{@1z9srk=O{9$ZMqE4}*{@v{poZ=BV*~kXt z?*rFnQaQwTMjXPZ{1Ps*dD{7!cCN1?uC?+7X53sxG3g_fv&d$12>ob*cpwo0cBFP> zIITw+Tu_!?zZMX(VI;8ZwrR6+?$*rYPN5OMAI1aH_FN4!>GRR1zq*X=mn$WgmY?CB zA@58jr!xSO%lIe~6=rcs3U1i$L4SHp>Qv1Mt;V_qP6M6Bt~jpk2&eYlA_WB>4T1I&fhz+49b8HW(-&{{ZIsID!b zh!E$M?J;L8@kaYCWe3jHGAPVW{qkp+moJvTaPRW{a%Bb>8G|@l{o2biMW(#kp#gyN zFF*htH8-bR3DVF)o4)DOOXgF)yym|cSHgV>i-f4YIL)UfDs_)w+8B3ls5AS+?Yzd^ zNu{wcTL*XQ)|uyXWPUNg0q@-3$OdN|pKDMvFnBTRVB%9!3a>yDu}uN2=-=?(+zB@2 z9x#I{z+0)At|{$c8%GN(^DSjrt}F`e9V;q|IS4WZWxSC(X;FsUi|7&f_>$*(+Qyca ziy0CdwVSWGf!wMJ9)(=U*DT51YF?{he520$oF~15uzJ$IgS53Te5R&!|7)JEB)`gH)pCfuv3Xy@vb(P_)w4Se$QA7rBZw=wrElcsgCyJF^u;oVJiPA~f;uZ^%%if$!u;Jq}t zFMnaKUZYbiJ+l^b=(cc|oU@zqIyQMFna)C|4PPbi6cQ`S+12{Skw#%PR9)9ySZ)23 zYnR=jYU>e1a+kvYL`G#yLstC)Di`M_il#lo-|HsT+;28xDdN&fo~#u5%gA_jKuW zRNG207Fqo|`zQ{{yJJP8A!gH9vm?E~y{d_{8eW2Dawilw`EHfxmNCLRDl|ltHv<34 zT`{z3G+eH5BTh}JasLXZ$n|e21Btq3JW2TKP18tp z`E}%8e3+tg_3~j?a9l9Bl{w!pDt$dYeUT4~4%mRvy0FK}d>b6uiw%RLf(Og*o<2jB z=fZ-^>^y@O@L4Q_fRZuv$@Jg*>uW3)*QgKd$!(3~E9+dDz6!T>w@}z{ThqV;aa*+) za;@k3S`xjSOn!gq%g@Yb!=oup1#C@1WdCs~Ex2aJG0+i`&5hvMNk ztwsAmMtk`f_~$_LA?}`}se)_aoU?cuRrg_BUJ0J|o@(EVJ-IM~cKoJfS)Ts%y5A#_LXc=gZtkxCn{nUH1^Y$+h8 z(k$GAZ@7tsFYpb^OkxHE4>YWEtIg&aYMcFq3#i<&#)H8gv(ro`dibG>sO&%IhlCXY zKXe_H@4*lKxy07>ER$W*I#5G9_wKrG*dm>eZ_m~Ygg_T zIuS69FX%u6MS`Tg;}!Eg*!y4Bw&9=l%{hD{@3wn3M<^Jd_U`sv6A9vmrB`faF6h)7 zQU+>bk#M#P)Zy;a4r8Z(glFeFT9K1x2O1wZ(uZdgU$Y89wtrHh8W@{lkO!RpQ5zh= z@iP?zU_wbRv)#M|(!B>heGe}vz7E(TVjAV?hkJLa0PehMymrrkGauz${er*GoI?{q zfQ!^tHjmt2F|Z3pjdP9kwYP0otr!jhzNyz#v6V!*r1t|kwC_K!PA({ zvkn*mQyOd?w)->DkK9yk9sgMkcYKu^uB3(lUCw1L&}S&4^%@B(qrC62NKP`7We&XJ z$>qm+@5wS7NbWtpIPE!w#@Tz?KIqE#_=||>Z8M=)4EC|p&!!^`dk@U?hyA>IW`_MG zmH6>n{_9FQsANU?#ayQLXNzpE))Dw}{&=tc6LlKr%@sBWmOf0lFJC_$rdA)z_}KA= z*_Zn2XTpcd{un7NT@QWZ=R*-vEpCe+9qP{`Vp8;?QVrlVBGW`8TAayYxXKd2GUt{~ znGT_vi84BYsl;?{-U{CtukTE4gM$3>UM;y64nIv8m(uCD+aUhYdbCcQrT=Mzm8s+f zxg4^yWpSjt3Fme0RXYyN@6WhMLfX52WIQ~V%pVJn(}dfC2drr#*PO;#828x<#Y;e1m) zSF8OZ?qL?jL56LErfEl5*TelV4MUz?*VT`^G zMMhsTNH4lwh%d0Vu8TZ&k+6tvSfG!;@}`tveNaZ}3_84I_z zcJ>@&;%pe{4Q8*A)8@R~E@u7a*%_xOAJ;@0AQ6A<&D(?^vEeV^X-bkiTxWriOn&x^ z!sL7vLDW6{NoDG24*Kt=;H&%0dA&Fk!B>C{VC*fN=X>jqGB?I)lNWs;xKclmB>C2| zo!;i!WOGTYd+5J1pnj&OE((CCo*Zhr?66@aKzc+r}%5M@Xb{Qh4|2Kd^TCo=_?rmLrw%|QY~IQG}&EDeklSjnQX!h7vPXk zvVskgZ1<5zqSPi_36uTYeG5|`P%YlsPp1%1r(28UJju@9Tt|mioWY+c>o$rJ4U1EB zuZYiX&62E*euY-3^+;k#Byez;s*B27YfVGcNi5sET~Lcp+3q|%N3_hrf!em>xN{U* zPw*X+mV0mfF;H=;S&9^BdDKlXCp8URzts`lL2H_v8nx|=#FBtrSOH#XoHODys`QV5 zamVl_n8*+TLZw0a&G;Ki)WxQ}Y`bVRa1sJ{9H!7cAeNnlSF6-A`~ds-LCbt6CR;~8 zui(^AeFmy|A~DW%f%*O^(vnJTK%snD#{s^a?S1<6&%)$r{CY&4H$X`|64t+x+#Yk! z^N7*6m2$E4`=#DrC~HB)unt$y`u+EA@zJL{T>e+Qx5@iEP(1Y z&2+9IlE$HHwzk}eQm7g%iG^E|<1i$_4Zlcnl(}_p^z5P=X|EM*xRDFr_1JF`IKFzv z`a5Qii55J{g zA}E$>w9#5p^a&O&3!_h{Ss}UM?=iJy!PYD%cJxs!Pweg$xl=SRKJSTHdoFh=#NIjd)>;)`a$i+)5pLva`$M&gJqx z$T5!j;8Mz8W?Dfu;fX&wNw)o{gQ!>BoBGg*8Ir@HxHI<|efJ01k~>BGL?bX+`7o6= zPvU9S_xR)8@>W+LYj)p$y6HZ?NaG3T-CWK)|Bg5utDjfYJQ3S^G>xKLyNAT;*|Xd- z)Pan4v28^mL0o~{WxD%;_ePOah*6Hl+u8GaCREUb?3|MeyhXn=vz0vG1Y04@Bbrcf z6p|80QEMqB#S1`07-Z|qjbHLzVMWoy{X(NTt$&_Z8=BC z%QdvW11WP`LHQ-n3saz=;~C=9rmpn6jPlT26qqd3`ywl}W3A{CWOU;Y!!H`T`$*je zT`N~x@8LJ-8QVROvo0fj@%-BJBIo)hGLKP&>xZ$rh)l07_m4o;Hro7GZ>+t)vg0rT^6tS+~Jw$Uvs*%>PN<JVoV zH-_%|Q)^?&RjxmiWiMZ)d4a~`Vp@MLm*&+q-9zj&-GZg61q7g`uZna(CzB)Q4^1wqF_jzF)n-P~=VG$-FYuq@yo3%Dw&m*KMSe=x|B!70Yw;T?QmEr`yNg7o@KzPxYw&{PJcx>mEP)Cy2gXhK3=_m=pAZa*N+) zq#G9KXxllyjATK&k7q+Rqm1cTo}Z3qA8z3Ys&-f*n-$SGd*;3h>p+7G{;8`F=ZQPW zf#p+^`Ke#dkDpS!~MM$P*Co z?nrvA&!e zG0t+614j={mhknx%*IsCZ*U|H+Rh8HDNoy#ubEIYQp$K}f3+u7u)FqGYw8JQ$H>O~ zaG{Xnd(g-7ihjnX5J2%^<+G<4Ks3oYvxSS+J-9N2frX>1tjyg82gesi9xEr?=x;?< zXs}jhGU=ngz0!X>2E*(c>53^ZWXIPmTq+7Q=!*0Ov>$i|I!^=5$8Q9nX zyvPbzfg${DE=IjRpW&T!n?wWn%(EK44~RJ3YQ7M#OzG0SGyWw!0(yiyXC8()T65Q2 zu6DBLj_l^zO@!*t8@jsJ*FVXp@2szXik|_w(OP5vej46vWzM6A5f)mv(R<`j;7=hu z`0B#INw*yLVmU?kE-2K{en}(NZQ^G&v%~1`itMt>b#6?#9Az zX=i>y_~w2sO@xO zPJeYG>Y|9zT9}jM3$1Djj_ntDtcs>{7b?klYR@XZqbgeMqO<%eY&Q%FIg9V2KL(4O ztnWhaaf3fzi=1&!@jtufleDEXmr{#yk~a>p-eHg~H=gE3r@+(MR{f`6=(_Y;`*ht# zip(uZlcvpZVeu@!wy-^1LPw$vcdI|K^tMi71(wx~nvI7r#2f0F?vXcoFK=g}rK3Jb*BdBL^1q%WgCw+U@NtBIXi7NaN^-ZFF`Y$%I3N;Q%z&->dK&5rt;;Z2omtT z-L{T?bVFsAP{teoh=h%^huh9JXT9N~oi*Ou51YgTw82y%_>MUvDpE%WB{>dH;()@= zp$dB3)SLYS30%Z^Nzn<|wBJRs^05{+a?aaN2J6_@*UPkMa~!7Kuu41RNbQi-az14z zPqiwM)moKtymVBe6=hZ4RZ&NMR^`1Fjpq0MilyfFp^D|^_wkAre(h}D0nI1!QdweH z8h6aX>Fh?-jsjJ*qP&gmPiJa=2WlbeOPMznnHIx&i3Br>KJ)W`u)mrWcgzbv{IC1_ zhy-o_Re%3?fL3tDl*H#&dLdf+1&9vr)5EEK_%-pvaA|=j`!H-GJLiSSuPq0 z4@?}9Q}gFI_abyHw_w}CJs7^I?lRd^o+%(E!)cfK!MF4Lg_4GEGKq%1tX#@!h%}W! z^A(nmod%Bx5-qgmPS-s}==q;2M~j!2^f3i(Xyu`nl7r^z(pW}Gb$2jc+w z0}4NvdO>P?)v&o6?Cg2PaSY;q<(^rLg59$n@Ar16QOr}_nEg>0C`jSIC-hJ0JIni> z6MDlu8dd6QXjEv|ZDOtVe=^8{;oGbmQTBe4tt@&5q`E^4ZFVO<& zPXl-USWo+`>4RS;(v5rgeahpGnQ1b-=Kbt9{(hwobECrHy+dPblH`=7PLy8zBN~b3NAGsM~(69)dyg~Rq8!>pI_~vaeS;uAmQj} zWg=RE9CfBbaCSE8C1_IieCVs+Y;IY$h_4A8Z?QmR9HVW)J-OM@0C6E`f?~Jn+kjfSLp5+Rt%<<4b@8PZf7FOQPS$Yc?2&Aj0xY0 zhQoM)TAT&W>juUvTXcl%IM}S4coE9H>2>G_{o7h3^-s>p997|p?=dfvO6^fYPN!*W zk)*(ch%(ws;TPl9*iU3^W@M@7LM_@9mZ5t+p08}T$-fvqACB#l!kM*keDl@2rudR! z;+fsXa{a*T-8@#w;n%I3B?YE>b982mh=DhwTqB0Ds-jo@-kZ_f#f1fGitfn`4P3?{ z)`^8*ux>ty#^Z$qA2I+!OK!%91pZ3EEqrF`K6*ugR?GfOfxlY*%98OOMsjW7AmMt8 zSvPDPaZYEZ3wxTe7)fR5Kw7mI>}q@lJ68AFPCGmK0DPSYSOzoxW|-;p2O!CM?-(!w zU?PY1jnXlI?nmh0;+S(ufnC|bDPQxhAe?~FTk-@!q;=ejWo4dv^0GzxN`IuHnd=nO zV8-wskn+dSqJ{b4W|#)^p{wUZnFjY#&xcQXKGf>Ns-6!!dp>ljs^9X#3`4?QAivL@ z`Ti#lSKpiKG-?Eci~&igw_^^@a8Cg8-ZxiuVG`NLJ`B@J6O8K9T7u{p3_M_9-&M+T(uWM=PJQ)Pf0mR3*UH}-}F+ZgW86f@TS3#fF5*#>t|1f`< zzZBGt`zG|A+G=Qu#@g!t=d1io)tSA_@6pCzn~IYM89#hlKqO0hi|D5IB zox7CbBL7jeEhIkYVyp1kIdN=EhGQswW+(Rur5)eE9uU88bvNOoi-^IaSax2g7v^(K=DpOw{COJMQV>6OXzS#m1P_R1(e{EuMJ|q9 z61g-tkj#DeTiacvg$c4He~3-Xz@egUaXEDeEr7VBjucw@-oV^qmL>CSMOXKkuThcC z8K;7DXBbk15#edt1;5s_-^$9M5=$47Uz};2=omTpsN#cX+{?sE2=*Bs{*N!BJjOM@ zQg1rSUOG9qpQDlnM%c`Ukf# zdQ~UH+xy`iW}f^DgA#;2*=ePSCQdUG?q8&=n4=e6x;)PnBNV;k&J|n1{FTxl_m@tq z7Q!R#ES(0PnxEv4ag=PQLub*ULhn$ViTCbzO!P{5sXAxXNsy5yf=NIG{;3q(*=~i# z6m+5%aUCv8rV`JvqVAK6l9woSVExxvV5p`gzl|-tJ>|K&(SuJ&9iCfDai34lUO@7i zy3xgi8Ehiec{#nSFqJbBGjGxD!ARF7=Qo|8GEPlF$ED&&Z1?aV3U07WSL)vCt`EqH zzAM^BUTtqNTlWKP=D8 zKt5lP8k{NokX37(r<_)Q9Iz4glwIEQKke!9Gxn6tz(&m64`}*}HLs`>LDsOEC-byw zEPuQTY=AXB@sFR1sk##TENy|X2nTrw|BNNr;>(;^9Z`Dg9{)X&NzC&m8l*~h4WD%& zCoOOY*DlVSb%Yb@c&4#?$h%tWLOW3KFxDsIcKON@C*Ja6y6t~Uy=`Pq9luz$gsJn2 z^8*TfLU{t#;g=0$;}fh-ZaTD}dq|_9Os{*hsl^oDD|VefUnl3TQU~z#!=~m(KYfwC z_04lwot5s8W6#yP;YfBi5>WL8V!QrG{@w|;kAneT^qEd$Xhm(dnGY^XOv>*A_t*YnwGiZ?QJ`c zk8W1OVTro~TLXXh%SuznrZ<%C2<^-aE$A1`{;06Q_`!$fvYpb0f$gbNQNQVkn1I~XsiADzqEPRCZ15U?J{Q4YZb?1Ex|ESeus@`4 zswznBFPhECj-wuX%8K?YAP|oOm*zi+Ks+P@QS_8K-{j@Xz5x4kiRT;0$gLZ3I6V1iT|5~81Wp&wBh{PlW&JPY=K{W;{d*WK)R>;syS6N6QlmUq z+1bTEQ0DBzv(1mW%UrSiY;=K~OSts9p$<~Agc7Au=c)#I(xC$IZ0>UOE}Hn(;ynsb zS>elZqJh1Iswqg#<3ewl;R{7~(@R+zru!mQ{d@XavvhBnFm&<@`BqF5f^Jg$ zVwAXuFZ#C5dIc+%?wLH=Bv&)Sxl46W`NCW%B%i?ITYyFiQ?|Vy4_|&0&BO7Y^aa5Q%g^S2Tj? z7SJER9*NTX)N^%jJ$?DZ-S9)RIOg>_wA!Bdf`Thc6zj2<<6F>gg++dU)qAR8L2nHZdUxB-2p2?dZxZ+mZ5swjM6$*ktU|CF4HOH=<4AYEy%HBJVkg{nA+*;Dz)V z^BbimeKrTJRa@17l}Yi#EQg<(j)FXo{lNl%|so&(ZIYv9%sy|6xVL-z-_RcR>&j>rJaZ4L88^u1e0iz*T zwlF;Zu(QR_XnonveZnAw8@_WeRTXpI@#j80!S^Ma z2wDvdMSExfm0e?&@KeO_HSt}!dxT(=<}1gA1zyt+{}Xtny$7z)saa~QTR%sCA3*x; zo|PRuZ-RUA=cocc+K&?oocQvoGL3R;md3(u7J<;!a{|gmpJDKIO`1v}suX~XTmfzg zJAqr24F(I@2l^b&h6&l^+xQWg^LatMvMcUPYN7i`8V9cf5Y$(*%scUcE~pV7(CkBj zVFMjFyC0cj&c(DOSJR54B#nv*+0j#n?~v6&Monm|LW?_oel)tnihyah+3Aw z%xI&U%dcGxKu5aMs=S-?9BG-V>;7p=6eAY(prO1!2%+$rJDw(nP6w|n0d^2I+J`i`Vo zDDo~vv^_osYIYpp<6A6@d)!x(%VOD!D;QMqYr=2rUKh+}bWCo)czCO|P}be??BIXU zkAm@S#oP6}Bh+;xy(6pInCOf^;p}{1rBmSFyeqi@G1pjmJ{tWgc@@7|c8|p9Zh{{1 zgn<(iZB~wZ$x`F*%kLL>wroOn#8hx?p786AKd^N^YE)}BupWvh<~A|Gb#pgBu5M_O zEBjC(-2vrsI}UP({)PF4l^H6Kg`c<5SE*U|s>Zy%ueK5MArTE7dCBN<|jvla|`<3WI53LdrS@A(CZK zm}TBw$SZ&Vnu^L4pd-`h7zE2b2=sT6iO z)fq!T_T}Tw_xI(K`PGIDE?f1#?E(ZJ>Hb)H6=O<*JcIZZXoJ1ms-LHPjr<{>uR1iF z_PqhHtiICF35{k;YFt%9x@)#b$Qb9dX&m;w1#eOuk3T?kG-psrGJTfaL3<8%oUPM4 z{^sCZgj7m8btZ#V|7+%9#lePC?v)66rLW-Vucn3J7vxq_?~c%7%s{GB7X|b(xxeU& z?~kUGC?kv|*h{yw7+kwd7DG=-v&_KpK<3bg<46tbL17EXLVf2#T7DvrYj`(?7+9<@@E z#MJfNkToS~FR$m9{VqFoZ7K9+!8DTDf-~3BOVws%B&Nb@`W5;f-#gw3=pD*C@RMD+ zG2~q_?JCfE6uocun2A;Y(scahabRdZ)b@M`$=~Xa`Opi)zUNOJK9>jvxLL%XM=e!X zH>7^U?!5$_rp2IOw!w%&LR*b6#5ZHZdH@a}3f97|(U4RZ7l@l`TcDn)3Hp=77m^(GR2zx%nXI2Fb^454J9!-BwqY{O zM8a#Wg=g_lH@c`GHAFSqZa>##gh+-vt%-zUTTM0nG{nc_?t&KT;5O0^`&Hv2gktHA zq)j|6o}zU_oin4RzOSo3cad5Rcg`=$PGcW4JaR$gHyaXOdu3(%?ppiAp z*4Ny_WPjRL(&Lu5%qs!ok{a{=~nIMC+I`F|=zl_sKWJkT( z7jVkN+p?164Ld@UQGDPOAqD-ITW=!0FrlZgvmy+vFQ;FLqPgG%^V|AvQT?W9b~^Hj zVEq!hE7Co`Pb?9CD2<>2A+=DN>i!=3buOTIwd6Mi;^a zr!Tp;8zJ49twz}&D;zs~3A?T2^Z*AH^Xp$i{I{ksG3qMR?S?RNf2I`q)Ssy;QG+>6 zzMR_la!oxJOFv;wZB}Lq&`!8n?Yg)EHBz`3VUp^1Bje`TDAnh{ ztIS5YZJ`K<-sRkAkUc%-=&Q{n{zJ!b*AOoemfQ*2cCo}rWbYO;V=Y=u#fk7!#OH_@ z%Rb+e?@Ew?({#u2J>yru4~#p5y8_s0WWWy($%D*bf#0{{;oZpr>1H1Wn8=Lio4HTU z6m~VmT^dr%eL@ovb9|puiam7-5Nwdg?V1MfPULZD`rngx`h(SmRkNWXaSw@g368Ur z&8-6j3CzNIZbkRV+WW?K6oxwNQfcs!Yayn2kG7&|iR*(fj z?DTxaw+TV*jLJ+$iC^AXEvK;Q(L15(ov9DgtFi6bR+I;F;U^Kt;780^ER0EH&5w_; zR^}lpHVjxU!V~nMFt=U(HKglr4Ax%|o)*OSAJ#E-E}V~KB=2qftec%$m=%LF&^h)= zk{aE_y+|nV_ODH7b}7OgurX@87UVNY5 zV02Fg=OetIzCp;>aec0e2x9}i?2%ILYkZk{-Y=RAgRgC2Dc|v;w7zCJEJcmU8G&VX zZfNo02A%P#tPv!zTgBbuTJvP3m&Wa;8rFVrI6Q^%Y74e9(B9tW2cVcZn~Cpk_s3mr zYYmCX=XL$O37CE0O*=w)=PqH-Xar)A$#Ob?=Cpa4RF*z|@dVfo*r_t? zzzyF8&pfsq9NWr>yrn14L*A`^igruyW}bJ1(l9R7ctK-zDTb1Fy~#0m zWd1zM4H1qylV!M~iQ|h7n)RM%lgCd_VR2;e*&E^4Y*uZyezKaxg<{A%jPyv|6B7Is zSPj47FD1(KS$FFp?=w~$Da(3O-X%q&-^Q;3HrBv~EYcaz0E%m^7R^F{8qX|g;?TOh zAUVu-L$%ip75sw(>sa2b%x3^19zH%aRWBzpN;8#;*p&Ime_IxCrrsN@&&J%#@cVRV zsQ`ExUC4=o0^TaE=v9sE_AKWYUSK&tO`o`UfAU&dh0G0W@ro!Yt``NjR!o?^voLHY z_6b^=p~scW31ztxgq~NE2^2;Pn)^;vZLEcJMGM&LxVvLrvDQw9)s7vzSQv^dzr_xJ zl;oOz|It)nhd(4Xi(3ZQQ4}Pwr{^K@i37)KB%{Fh1m0 zG?9^1S3sr$s+E(##+`I8)UUj5?mY#mLv1&7-ZjD@mbTnx*#NH2%+=MIRs+7Yn=1$V$u9g-zs@&K-S(O({mHXa` zIzVex-e1vZejln>YJML#s@zkpuV;)%j)z+++8HztcT{M%;o+`|P9CoK@N;{9w4%uT z#w&`=@3|Er^Luf{KIZqzivH&J`ic_so2(dMe&Pzz9RZ-WQpD7?e<6C>h1>_eL_pblmiWcP`Wctrkk>3Z!+AF?G5y5-!BKKEl z2?Rx$Rf_mfTYE)}BAS`Ki#$|O-CG0%pokCPwO2$aqB-2V$m11ty+wRn$s^{WdBi+4 zkC=z%5%W+VG2?h};kfeAjYmj>qb#t^GwT8mxhyF{F?|&2e$&p*7>VgjiA-qX*bGYi!=G{13xW?H|#qI!#ngnR}E5P|OX zx$pfF`m^=_F8Z_XbLdA4?-`2PPzn%KO zs{dAVf2;Z6-t!T+of#eTvUYpjt^wKc?bagc?DA|aTFwIzquQmmv3eVI+AT< z)D`Us_|1 zu4^jW*93awJ@%7(-d`G3dwWOd39jOa<9sAieJsu( z+&%f5{NQ1X^oPkYAvC(+_0p7uJi&7!(OayvD5)v!ngN75e@&Yn@@ zd>VP~)7X?XP7OLw#nllvxpqV(ykq7CM3V6D+lZgKL78j9JLjBnMz;9W2(HCiJC2ML zuK8loaO&xqN5l(_y0L;`a;*O5jZZ{zeB=uNcg}r6QXDk9eJh&CWx92)V@xo{p)f*F zom%7qZplw0o(X~L&rJ^n1+jG1nRQ!TT;nVSTp%z2&*spN@~>_n_NT6>0~ z{u~~0o{ePBEcCmDSj_tgf*X4F4E<_ZFsAL~p#{bnRVa6!;IrJy)T%kTs|h4N$n%yN zkC*asXCIBef{`@P>pFYD276~ay`H=0X`=EjZJ7p(dT!U*r;R>_z!-9s}mvme4p(8r4leF*EY z@B`XeiR1Qy=7-2EEr;tD%3Rp0@8pY|zYUB#LpP9Lu;u^yuW8QGTe}k3nI#?Hs?{UMR@^cW-!=lE&Lr{xjXH!d+CR68gb=S^K^97+^4PE z>dE2qQrPuH{Ozrb>9Q7HNY(&{uSSX|Y2JgJy>5JfrO+ZZvyS^YN&P2iu&h^)N)qp# z)-4B7Hag1S!Mr{3U{va9D=np-ptW6y`B2d^c<>K__rJu0Y2ZO>S?YGYo`q{i&vGTc z-p@_lCGC-$fN?KQ+`yZUn!Byr<_R@}E}fuOeAJAt9TBbpH810HESn602d{fq_UY7_ zeAv5Fe+ZEC9+ZF7o2Jx~pf`=`O@FuME|4_S(~~^C-4S~3Y(wkL0X_z?t;|*lP2EeH z)NXtwH+V*>-g2Z2r~*|~?BXpu{YIx$>2{qVv(z^4xfRN~hqsogjm*C&$7!r5QI5ov z-4n9K^9{;`Q%$pm<`(jWc@*9Fb|gCwx*@d^lU`$VF*(p}sGHssFc z8Te`hx!26l?mNLB8uycgq5^cxuV!`Lk+JW$4TOLd57sQIlBuRwa2*Mj=NXmy7?Ly(vXA+)bodgG zevtU_k{&x4o^7{CWe)9;xUbHC%~yi;Tvfe%9G^*SlsMi@(JtX-8miSXqc)T+X4}M+ z-g>0AxaHmA43`0o^mIpcsK}~csP4Nz^Mfbx=J?-jrU^-;Z5Rfa%^QR@oe#v zM(L@>wWTl=$FLS_Gxydy?OjIAu);R)!}(@K$ijTsg%>bDW{T%h>;y0^ zEHaLfk7g|dcx$}n+8DFpcaY1@!kHr!LyGt!=*Kwi3aj9kGoeg6Ko6fE!8%b_0eSe# ze&yuJcx>sz^$;VW)gx%A<<_&ys&M2FFVcxD3 zeY*2G@_s6x5@wm6YPXFmGf2=@T=6_~UY>N=ZS-4G|F7GAPrAi#`gwcKOTxz$jcQC{0b%1X4YXWsE5ry(iMFvr2iHv7Pd#Yb{-)YS zIc7o`4&IxFybcYN_@<`;!@t9So;hwV=7uJDkbVyi10$jc!> zAuZ{x{WuFTo9yeD^_pMb|Kui_?;1}yvtyWUp;-eJ;HjVQ|2!e>TiK$@TNCpPo!7e4 zmWM_mj#A>;5vx&&Hn!7-N(*Zd%~2vdo6tPh7jy}ILHEl$F+q~gX{;;2DA?RnaH?!O zi2cIPSPP{JWfxs65uSEpoK;{;6m$MzH5{wv(H7<~u)9ghSE6E6VHWUR~8RnSuxDI?cXXdyvOA-TCm0Ys0@?G z(u<=F?|0K~Tf@|LCuv&JN_?)GC0=gt{5N)i#x1dD?|f5|fC3b=!yciW*2gP7<4Ees zStTiJ!l>fYW)9HU?84j(j6+2@jJ(o$Syr`Ep2xO z-_5G=&S6{C3%P-oWC&PVCV;)Vd=0ocJ8u9Qxy+Y6Db4=*MX{Z`@arKLCVVjKo1s9N zY=&<}Q!*P*uA(h8Jy~0Nc`Q3(A0=HL%Z}d1J9;LTHrmW%ZTkr7xi_`_X0Lye3ARfT zZYkC`=v@N48Wc}kt%Wx*f${9c2YgQ4!P!&d*gNdpLj1JwYx8GtDCn}&@0E}*nIe*M zZ0CnDXI;!`kE67`^KIcd4!>sgPYnT?XW}pWy+Q>xNxxE%DBLjPEkY~D4r!n09QQi- z856?D*6cpcNU#j_Kv2LH^&aCLzLCaYzt#1Elp8PH5OZ2)9F?eS$A0T|O>eyLxmdbg zDBtnN-Zdw`S{V6kvKF_*0v{Zet1-pMT||+D*-@VCV(77O`^*{f>|sJE4)(9x>0H0r zM-%!r@DmPh;a47;uXL^?wzD(l;73ue8sFixJa4F-J*z8T`8vuc=@0VpvOCGHta3tR zhyRv(FXkvd{A@_sFcFX%m=|;;{M1C{=ENZz&;mB`B&OpQ?7N%* z5!t|%A|&@7Fp>@`c-_g)$C}~Y;@od2obKv315WS&^LYcw{iYunchBph2pMNm z)BMtoAI9)E?O1D4C&t}<;_gJhvKDd|O+SF#%BgBgIz}a|`xsq+Q{b#F_V2h$56<*U zyhK^$_0;_Ih@pQJfJPr2caAhg>1o^<*TwU5>TBFNtCQzfDCotV^C`G~D-CT`1vA!~ zvOz%#`Hgn=*<4vyJ`}#;Ljg^wxb=XbP)avSsL6CCC;P>|ka(aM5+y)FnfZTyXUDAA zW;`MTiIF}e{0e&^p`0*4^Se66Caed1NKoLc-t(Ui55Jt?p%UeLz~cen!31br)ByOL zaV0zo9wk&&%Cq263Oty{_2o2YDiAy<8FZggd%~lyyc-|g=Oj3hz|zIiT}NUQ z)?y>*lWL=No3O(;v9mIt8Z3icvNJ6#0_VI(v`t`(i%EFl#O#Ro$WTBy%Xj11D@v?e zpECI`X_}ZF{Rt)nB^}@HUBBpF0+x3r@)*SRr=onuI6f&`BK#Q|ex@uO>aN0Bo6R{Z z1$mxC8Q{2G#lCd|=d`x`ek&)3a&*5-=0P#%8*AHb{hWAJLLknXTc4nz{`)XNe-QH5N8pB4;%-kB3 zSqn!<65w<)gwa?poz9LGv&OAM?O%)~NA`mwMvQDbUqg_K;@d{M5>GK(i)^AFK;w$A zLu;|0dtVnP9KuhT8nJ#*e2@&ntwF_{JXX{Ev$Jxsa2Jv-tYFWBRLV&`DqE;-T>?}F z<7OnMn*!ErY8i9XlyF|c^MvtHamn&Hw%FPhS8=8!_5jb=I_=`#CXV>;7u>}v!RUr# zF;n=8oh7`0dtf3v_z-sfSeEF{;nhUknmH7IeQXbSZ`NLwUQezw*?8KR{y@ukTvzfR zHsachTnMv`6k4|`@XmNx3$b%v7Q>3%Wu)}Xf91zaBKqo$W}Xw-5r+_p&WI^>nL?yR zr)DYD!{XE|={OeuEIV;*hKlgK{WW){(vegOu7D4*!q*a&pIf*5Oc>FL}ZIv9a!_WEsF1 zVy65wh><7J(}_;}b%p-02W?i75|b2t zz0@vT6C1QiNu?x>cP@UtEMlleoK_3{>JxY)81$Tmn_g2q`#*vf;)7P3N{K*$_(R1&oBAm(9Fs59-qe^=ZR$7vi%Y z#K+if+0H@4t`Y4aa))S7EIVy?B0F#&EwMc58SIlDES36_o)4$z68{fzZvrP(aV`FL z&!VFucT`j~s6!kg6I>WYGb5}>~5Hwn^qDf@x45h zJYzzB(S$4@puh~v3}{5a4aEgT;a*#D+=fMEe&2KI_A;nR-uu1(=g&u{?^3tw)Ty)8 zsZ*!w5d&rCvMUUz$XY2RDk5h&D6DN2Jmnr5y6sT9eUP_ie)NKj2j@4*Zr!I$+9g&W z@C4$&i(enh{428J^OLN*H^7!?3b&nRVoVV$MrJ0x7r4afMOqTkIkF|^KUnM6JMp`- z-Gm_i@X=C+EQc@0f?4+#3h?YzMr%!^$h6aO;4~!?;zl1N zSA~d3iYw-vPIv}$!Y?>RyW*v=?v{-kI>sEU(BYm4oW2th|9}wHBSboL;vDC?wERhB z%vj%hC;8(}VrdYwZ=jfc{MJcZDx&Gi`|gkQQ<)+3wOW2H9|v7SPLdl4Jr4wx?pC(0 z3Ov?5d)5CeGat#?0@>|!W!nN216vQZ?k0aWGrm5rigSx6rni~loskSy3p0ub+So*4 zJ+O*qDmGcEyJ%5}$(l7o+Rp1TLrs#QHEuDPc{SjlE;RORV3$c_DcUR+M9qpa8~eOW zQr1d%_ZL)J395|K?vE(rpe|9VAKv7~>N_AT1k{kBxW}nWDsrd=&uY#v7zK0oVF$Sz+2jd3Viz2ucEOQI!Mt4%CFhM7 z3$}wsl5aX?WC;s@LLZs!DoUiIK@unKcmFz(UJ1I)+1<=LMX_auOVUI_m#kUO$Ycfg z1gbWBa*@3!s@Ivp=&~uEqfqS8d#vZXSL0Cl)*aO(D?73DYK<|*>z zG<||r7WW}zQ;{Eprr~GdZ!fC>$?)rpzpgk9&8wv;Z}wf z#`P|yCk1`&^C;3uav2#O{T81AU!B4{N{Z+Gud3?9aGKL+jiGT>^c{&^UL!!v5l)aE z)x3lc^pn7x2uC>BeRNo`JQJOsOLay5W694IwYxNb>vK4#d#kqF8=QWJyNTs9lojD& zqTfCf{r0wWO2HDh0Ygq|q*xQhMwWC@Y(Ii`@H~A{ zv0+PpL9uNzicQpQPKTk`)-V>L*bdNZYgDiOmX|qu%;>lM#@_fu^xL!MOrN^so5A>x zVwqb}ZAk08Z$+qzf_RFCMrNv28msKzbxG!WR)B*ai#l_f0`AfYzE+T2T%zDe4@I`Y zCd3~4?Nj&PdCw!(^4HYm(2f(z@P(WfSft#bz=~L=nj^MynhiE8(rC<^o>U=)m9s-M z+NpqNz!H7(+BevOo(xoBJH{f8V_U&Ql2~j!03lqI_6mRJF!`KH@XL6{FKTCqLO98nG@~g;&SO z&tAP%eqLht!c(~_niZ8^?)KOrYX~}oyl>g zdIPz=R8FaEB?70dSV8SYL5Xl(h33nYofQl2N5+!RsH_XHP7+bo7ha_rw9I~Vk2~^O zTF0q}@W4L6V8GP}N515{Yb)Ioq;p8WDm0VOg=nWL>z*5-WrKA=;y_qDCkM5n{q85% z@EuC2N|X{w!+oVxR&C9`iEkCa-F^oPEgo#c< zk*JllHxdLp``s$(l<1^0buOggrpM%U(m~d&uz|UF` zg=L-B2kZHEPBhc!oLKM!kwwi)+s+W|)ghAHmib}Fo$q@;0-&!T$CXz}M|zOs5JQf- zh+gU5E!^UhqmrUGo!W}mr^ZFWuj%-Gv(QY{Il$Z zO~<{AqpiYTcZ4k1G>HAN!DSKsNmt*DeTJK{8#-A`$MG(n-S9Kqgg4+pjXk-?FT+ir z4Kb(RlUkzeneD&R#{L2wjTslo9FHfSIeCnn$arrNZ9`sQwrVZg9=NGGmcbH}32)|` zJVO`n;;DV%g7)xOsP-=h6F7X3=^ZiwC0GTKQ zkwe<`9i@s~q8+FoqHN$PlRui>S`}Mwt9Gr$;pz`sU5>SC#kzegT-`Z&K=+;2W1W-J zt(m)nt!$-c(Kc4?Mr@0tVL3LlH(SPlGJa5Tl?30dkMA-&eCgnwk^bwDSU6YW-=GVa zWglF?ahlvODWS@mbzccTA+Gkp9VJpK`|E-^IET3XEx?|l&i_x&zY(d6BB~VcS`~B7 z3Q@@X_L4PJdDGWrvJ}W2&ND|1$i^ zS1#O($-wCCl$4(GN_sTE|Hb4Z@7Rj~N7$3IkGJmmS87vIl~^wD`|g7SRUn-V8dEvc z=@2=jrkS@a+qZ6{-ANsCRzSdne+&PPAco~53S+SvnIt=rX)ufG7bXtEpGjVYCYy9+R zCMf}q230Z zS-}6g0{)v%@iF#g_;>Fpbj7q}rEjAC?3~GSXg^^W4XULn&aw~ZY7o1ZWVU=v;D_#Z9#yI8)IrrzDvH9RtZ~Bnzd3Auf1aQ@2S3(s=7Dk8n#j%gXf&L z^MnBb_e2_1dAgdzq~-C5GGG|0hrDvpe`P-sI4|w3#M1uJZ{o)YP)9!HI}HM7 z-+bOZXBvQX#dmO83AS|w-kP+Cqh&%eD?b}Z2><#UWaWJfxg1-U%K5D3XjmeSDpq`x z=9u0tz(4b))K54XqveRJT8dzsv#6( zpE~95^piXZR$4+FjeA^DT@^;6dvm(gDPKb=9gLM+NFB*_C3g8AxbgnXhg6o5>I3do zWdhr@zJ(5QEQ$LzPUJ7|W7PIm)b{A+OA*t}^l?Bbc5j7On}=5rKIJUZzDNc!v3DZQ zMSaD`!0;S*06xs{oJ(mDnrHHx8}xYPRkdBtc^`d^;Js~1kGXg~Eg^@ld`ykwa1D=% zUtdf%W zn_b?AYb$+i9&h=cpXi+T+3}G2S(oNXUC&GP_1uaoYE&u_$vC*r)-ou;e0xs$&v*~>-oua3iy^#gC}6Huo9~qChcW){T`y5F zqbN~Y+X!`2ZYS3@X>h*v(|mj@zMuF}1TrlJ%s`@-*H2$HAiOtGus3%FS)lq^XoG;r zbYoUIzE(=1tVoK{;vi7XpB`FlT85 z!0;Y*adbgviWSORf59YgavrbXYoLTlRUk|%S1$ac1Wsb=^dfEvC#x%IhM=pt^lHsO zsEVy>2jU}nK_GDv;cHdS&A9RuIVy1obbY@2p0gba#NvAKE+o$4Db+sD_a*Tynss6_HFbnA$G;Q}@z`_bb8ZxlVb#;GBKs*M;!bs-jMJ zO$s~L1>#3f;_!%o{koopEv)7p#n&qX;N87tkWc63C-J2gOdv5sS1%J8y<#(6Tq%Ou ztD1rk`<7YMB5e&q?E^_AwBy%uQZeKaYC9FPE_H(`>)#@7uMV1YS{;XR5lhFFis4_|N-UG}{`{b)k+4G77 z;=usZe$r|=1pc9xzDxgnFixW-hrRgF)bkE~@uBF_oo8(*x&Hj^r+VLo;c|Q>ArhZP zcY6{mVPHSVRJ)mZ@S#*MO*Bg+B4a>sggCyiW->RHNGL(f-Ws){*(N3kZJ&a<&w=q} z(q*2HN8>1_`+Byee6*IBtLSdraTq!q=`lGq_t4PG5tj8c)y<sUD*R^x6-ZylR0+T$!6*O6fC=K|c+VQD_yCBaHO~^fCMgkH zG|NhS89V#NrQqfzfr-&7U`z+V~IEuqix&Cto~A>Mo|TtSavN!g$9Ox z8jKv*D*J}YSvF3SFC*12cCi zspE5v%-nw`H^&+n&ifo1cb zz23M?y+84!$8x~ONQs&6_651l!Hp8Lh8&J8`~CmN}d%VMzA zwnpujLnN$CVD)Y(U{~b?Y$w=-t@in>`7@;x;PUAN+p3EoRQ7rYLU@+>8J_7iGl$KI z>p6JVdMu?l1%HwIiS|_2ff$PsKi;*0>(QvfmhIG(+%r_B0+mB)g5N3fYu)`iZ)E=p z;4V8UoxPMd!+60gJ6=736FwttdrOE8WjyKn%&ov@ucmiZyWg?5fRna;r8TP{Vo0NA zHBa1=YF61BL-uCSTFoiBTDVU3ADVTzf#hk{z#di{V~|Bx$PG~H+Dic0# z|KmUw2qOaT7tcD|7x|xUjD6Aq9?(ALU`YqpiDSW``g* z)YV!lxbCpo%=;-w-qRDwp_l)a%u)k_F`Ph3VOUS0-2vNZLD7suq$o9RO&+LH~| zJaIB!&`{TIrRF2CMDVhHlwQU)&g`*HO7RxsdIDQ`?}N3h#aCC4)d@h|%U0@hdM~8< ziTrY$%G6U2AsOdR?vxZ8?OoXcq2PP6Uq3MfeG;aoVWFArQZ6)ee_+kwMB%-LHgB{) z8Id{loG=7DEVTR8kY*QbvUfx$uH`rmIj^~Xoq*f+&Pfe*FT{T@v>_fC8M2M~`-I+y zx?f<_tkf1%FVJ`L$^bjIdThLcOZ%^4)K2_s^;^91$1>vJ>x?)*(HekK`)lvckFTB~ zc3*3x<`enwT|Shd{<4u4c8ai_Y@p9m#e|(2ye$G zlYw3N${Mv%#O#bOVG1i%t1|=mLIhVs1o|B>kVa&n>{1XfGZG$*#(^@8F`ts$GYk&F zV1|lT_1`EbK?a|!>4XUFmvme`#&v_0x);)kOk5`?0Ff^JfmPtKjtJ4)tg&*D`73dZ1jl zn(M(HIrvD4YU+nw2#@f^N_z8*6Y1kv`qm;ks==DuE;3~mlxn4Jrl1m(w^2AOy`G>t zEAoJ0!xOVrL-ZTyQ2i#qUVj$2A``bDlBdY_m`blw9tgM%NRHKc7|6LE^D!HW*c=(VO?tkOnj)J%RdgEJpfRx7SpV(G?O+sr|DQ!7BVsiY zrx@N&tS{OVq^_q7k-~pVJfcW_2N`j_m0qA2V*~JmazQGcuMk4so$_9t55UpvP0=1O zgthBQ*UI6fiLfqR5`P!5St`m#`ey}HrVWi6=EFSElC3gypLFbSs*5*F70E?brq%&-dI3>$CEu)nGq)(c?O3KKpX z-NX8-eXoc8)$gCMzp8TfSM@(_e^t_>|7ZKFuGs#n5ClZz&s5*|nv%U-wZ_?h&-fah zGrnqb#@E-SIMqx+kj{s!YTx5Hh3cu|LSdB(LCL)Guhq@G5xSh>?)(U%6wjSnT~n;o zfd6HytDjh1eX7yJ)hMm1zh`to3~T}ZUo*P!sEQ`;X>=_pGP+iY(RFoo*hiJ z4c2{Y)q-iLd){RCz=7N1!G!77oV_JBs1jd8%k|Y^F}hA@4DJlEIW19rps^)EN{#mJ zi!#;cgqDlI5AA+EIW|F~8O9mzg#;ytgh@SX46JRuR`BY^R)>v& z^+(^p5)&nFV4X_8CRO)SA+A09QuFG+WmbiPYa((`Z>Z+E$i(}qU!l2h>7?pv9RiPi*DtZKJ`qIx0}HE| z`o-Lu;=a}CW4OwhTl9@-3%Ou#v!OH8br z<#7=>hDqIVIdHC!_vqlMViZZczHKE6FlSqd3BxstZf&v}cQ#q!-4dFax2@ic*1wSWqmfIA zlSqI@oI??&ro`+?)G$bD$Xi!ataMmR0I{y*q^|?4t0B^1v95xmhV#~yDAzBsu3n+0 z9@f>#VonsStJ%fY)jQTtn#H!-CRpjfrvXO9wi++LUMz20F~7c=6{?}WZ8gPPC-5Sk zXJDRKsgnS#c5|4nUCq*H_PiMB5s7xA->uY>v#iumWk1k%?3bKbg_Yu-xQn_7-?tjK z8#~3zSyi#%8*H#nER?tQn<5piw$guARAE;APA+n7h{>vR5ciq)=uk%96-=t1`6ksA zF{$1Xlj=fmlbSnks!1gv9cWTD1G;ZgP05*5Q`{d>dk$S1X+uJF15%~&A{ZF4?8EEb9ir#YMnqtf{ooWm2>6w?AGMA z2b1fnTJ$>N++|uq&3pOJ8#Y5d)m%H z*5Wye7&fB$J<|K)Ls@S}0xS&3WJeGpE9{&&S6 z>Y62lHX%WDcenc=uz6EvSV#61;a5J&CK(k^GC9ewtRu_sM1I+h<(-8uM(#iMe;s~V zX7TdT!`1dr%;sk8iNfe($Kd2E!+|cAPuNaZ z%1mBQ!CYR)rJbpg2Q_Q*5vb8jL*FKjlQyfoQJZ7f?1oBTytHT>kKxz!<`xw>R?1~< zjXf}glj)`=_3YbeIpK!%hCmV}9ct96k8*e*rrtC5xC-9sAnMScTuzU3^!-$>MU35@qRHDMTz)G1$DGC~P0n>} zow;GY5mD)>QX@NKIk=81wpnwconAab$h&Z#m3oygIhA!Zk4X~Aic)r9?vPf3BoD(D zm#mHvyNtXKYbx`fiL;f^IpU)K04)A_^i8EKPwP?XvYX%+XR**Ly6P(AOf1tlKav@D zPb8C=6Up3u|I&@?FQW5_C2qs_fKd*c!a7Nxz!Xb%f%{BmPHSiNdoYKT2~LwbjGC>C z-Q#a|au8I7iR>h<&S2ZVoPldGYC}&nOTO`7a(z{cKJt{jlG{Fy$Qu8hR{9hw{Zi;( zI@5<<@)mcMhk^qFtZODXb?yU5MdxkrOF~-dh+3dA%UDw6?4R^W;7D0 zaeA?C>yS|m`1!5m7fIgO+5yM%89CDg^?QBPZ^)zLHVmkUJto&fA05R#MCyINZ zJL&_Dz{*^NONrYZ?5$Yi4wFaCnPb34u*rT{HL#<+kX3nBGn6LX$^*uW(qH-6rFdx>hM!K53FGJ3XH7-FGGf zx|5M>lAR6ht`79kl#jBl${KO>ARe&0Q?}VzBM93^q*;H|mYMMdPb{1cpBr-bmV-DM zQx4=36mjaD_f8)4*UEZ=ez$@?^=}6B&wbFx0}&^0)qxWqNCp4Tg4d*g|0}NCGX?JC zc|YEt0~nlZCjfdn4+}sGj6J|Uh@=*zR@v5x_%+G5AXT>wyb9duUxD-J%wg5aH>s0p ztgCzwHIg{sO^ji_T{(W8X3>0r-C*7Zp0VX>r6?8>-e?uA!a24g)r}_TG-8L-54B4< zT<`n*=5@N%XNvvHb@_47orEz*<)v-X`Pk3+XH2{2O1X@jGe$;K|B&fiS4dtadw-KV zJKgQOIChP*L|I~$ols>(UrDfY@fTA3uM}^-{T_hkvBE)=*xrn$=2d# zkzF~>RyvGqQ?H8Wsza+0{&G|ZW^M}@F6%y+uBTg}DI#!@4^Bo@UD%ncvd&o~4cY66 znQ2UKw(o95oROB8$B=Wg*{g^hLzqdpqb8aax2x9D{C%kK@sks-$fE(QH3*?1nrl?^&6~NuQ2{$ra{zwz~ps z*S9CO4bOyoch_vOSBGpX2j%Q<13*&GVMd`SHOCz7ku~cYsut`xiv+viM(0fAIFN`Z zaMb)O9gh0Wo3hS4DPndXVT!yeJ(j&UwyJt}Usm{`&(}D+xsr0VtcNn%bQwKUd~EYh zw{_5-ZZkk3ZLP^Sn;LCGdbSf8V5_mB5owr8mmr|mTaTgEP9m|%WP32@{L#Q`hC4L_;BaO{4whsLZfUQDXa@W<%!K8|!&FNA|zU-0cYgi3wk%{@Fyf(RLea*e^M6 zJoR0Y8PZ1jgtsXmB12?4hnvdSVPwhh`)8cGfBL4J>}ei3`l;zm)IN!$OyvU@S3Vy> zgvf|+O=tb8=~En~-b*sWM#vG-ezo(YS{#<)8rFC>y9=l|Onw_jpNH5B=hx?TA=Au! zBSeC+#`+!BU4rBA&__q}6TgOzWas(#8g>ai8G(zB1Izqg%u}FjvbLdTKCB^_@iAp+ zT9P;ZIjp|8p-lmP@(8Io-M+32KbdiEu(2cevF&bCwV03$b8QVvO}nvqLyq_Auh-hF(|^Cw~0{ zYzaoPE3qr$puaJ6FlR7c_=U4aRC?<^K}c|pTwjUw)nwLA10Qg{rZ30~MzOa>JX6>< z5ofuY&r)?g*+t3nWQExcZl2maH71UgK90T6UO)a|BySV*7)8&1HSRW=JC8f8T5l9( zbl$^3$n>3Zo9J7t{?R(Rikpv{5To#CScIKKR_Zr=C$@d0-cK91NN7A_s~Kk{XUpqk zD;6lqGBf(bnQwM>6V!_DH>d6+_FNfWSwE|1-F2E^($`srR=JZZy zTQxNn{FCpXg7EhQyN$~aTT>lab`Qy}&8(h<#*L!5HyXwLHv6T${(O>yXK4A6FI0oA z;{nI8m0+hAcgO|u8ZfI90SW}tTXGnl08(`#XQf`|Mbw!snNu0?_~Bs^;K_mI={9+h zT{(#xsG5-`(&BcQ?RBb-&M|9ilvAmYt^Q~<_h zo%_fRikUHrISXWrWcz(&sEP(FT`EIuUaJyJeYz(%e3DMe4BvbizU{*#b{T|yAg4!P zRACMaE{XR}{!SEgFnhep4f_RhYD6XLgVDvmlP3KR=QMGv_aj<~+Mn09c9>Zaee!N3 z-AJQzuxLy@l;LU0U^<8p5PX4W5Nk_{Yz+#~-HXzOy?wD3vG;n{ z!br5bbb+={v~P0%!B%=S;B^g`bmig!qpEen zS|UDV2Zq#PJysTB_a--)UJVr3#t6{PI`yg-vX!?^!Uf%zZ_=&m$+6ORbK{gmogX(d zh9N(N`Q5Bq^}9__DI(n^yC_ zL#>qT196VN`2!|in-lN`8Ew|EVPWzdwoG~nSSaVOM(DgK`h?%d<#$p?*?@k0Ocw(y zu!sZR)s!wExwduEY*T_w&SqO0DRGDCc0Cfx=~jmoGx?6}2K|;i$%R#}M>6|4x39F)_i2klhz#?wGR%!pha~#L%Oa)Uu1IdPh8-FoRU#8Xx;&8!3M`Hlg zqD9H_wbLy*9+;U!=yop&E7J9i+O64TGR|6)^X-ag>G4`w;xEPyu*E95$GlD9Q}CTA;O1_InZ-xkf1 z6p&T)+z4vC@ddmtKs?oOoBb8G(fiA)11oyiMxEKkzMaqdRMhtK!8|=~44h;?2cyx6 z2OA*On6om%564ja8CdYkB(9g8EPa^)$B#l`S47+1FKy)UjedR3EK&EkILx`?1P7Cx zH$E_G*0m&VbJ!~XQ04?FCOlRr?OpCT20i<%*bm7bdFOJ+H%Hhhb{YW4Kkruh)m3i4 zE8}vGEHadeyKyz1w(eNwHoP zegQixCxc^lRQ>^sX6F^C5&JZ`AGgqaP{Kaf{33uj|C8^I$2&=Ktc8e>a|q6h*w-~n zyt`yLCDSSMQ~R1H*qO97f^i*Y-;Q{r?442O;>Vo8?wwkJTda@zYu1JB+n*p0iWnX+q{u!b`?1}BH@f#POm=1-c}Q<{cOsvem5b13;l z^(%c>4X?LVa)Vdx_>y-;tp5ocC@3cCUHnsJmQ-I%obd8~x!W$lfF z8lS+U-P&mHiP_`kkf-y0GA_^O{{O|SLDALhgV9tx>u)7+@w z2UK})KsUbAuDQGzgh{3VX^Ue3d#bN>x- z#~?ECzWNI%&tc1`zi?z|W(w>%V?CUO&sKNxG%d7R-Vlgo?M9Z5%3J@$W=AlbJp=ww z6GCPk2j@>-xnUt&SZ-J#>olNfp>F$6JwO#-EDJiFIWu4%gw`UW(CzEy%OMbDYsCoc zXcVUf+XwKSO2bem<)f12saYrX;P8lSC`TU+_}*LNXGH271|~kJ-()2nnzT3AEkba~ z=1Trz=$GwA8urC`BqQ+bGh78SI6ay2`X*kPS|9J_k5zgK zj~%|T9~Q7BwU-=PWu;OG8OZGrcGAF79Avjd8Ek7f^RM_03q1gO`?_`RqT^t&A>c1e z3~2o|tzr9yCCXnCW)2Os3ULX4tyTWY3?qm9X7^6Mk{1xi>o66F8V|cEZ-q0{h35t* z{!rkthn&VI!kGxCKQ%3x_VY&jDHh&dkCMjInVILXU&GIaE{&h)KH+a@C0hSnA{!pm z#L;Jn#A}*KzWxmK*g|jb$6NHYj125H$Ngnr0~724TfsgoFvXl}n&FTLu(meYUpGu* z&6-BtrlU`JeZiizYiPnT*kt?;RWfoLk6yw#X-|j|E0zYqv%Y@5#Oe3GwKyrxxdj#R z$;oZITl5CqqlacwMZBy0^Bu@yD}9>)>B!1>vWm82r6)(6(d>MCr!>7eoVlqxe#D%x z%}Jbnp5yqf#?18YL?=ZT@Rg7f$(I^9nW(gTWAgWgdKisx{S8l8v!~10JJ-$kdLzAk ze$RimsjK{UX+OS_5RJT4|MV{~l{0vWsy$YvtT1hjTZsM~F%kXw+-0gi{XST!I4!7s z;rE*{%gK%FLNKO`sdd*tksM2b0VXi|JjY{J`Y-ZMR-5s{ufr{N2*Y?k!x)2lu6Ex# zMr6u0_ajq=T&<@*^^{hu-i|gR#_*TOnb~%`m=8m%KTLEMiIn5_gmG0%Ba&Y1&@|+YuL^RT4g!QN}mNmNGGNU!3&*99cHIW(9!Fj7?8>W3D{n|I$Bw!T!k3$-R%lKv5?$IOpc7rtpDoF5`ETSndy2 zE&xW!I{Wb`nTi+Co&Kq6CYE<(NMy<3Uj-=NWe5H`ef$Z|UYW=8+qpo(V@`3WH(^M&D#4H)hxzcoPtGLH^DW9m*5p>D;H7ek@>zIudSUMV86%JWR zKSuz_j30>iES5>kcfXQ&WM4L z(x#S>b1XJG5q2fb7r^bUiDQ|9obre2K**>53z&;UtuP7y<(#di)M)p+IO0Nwtd;5x z`u3GNEf3YN30uRrg`A6eVSe1}uRMh9?QB1DLOjDmPCqoKvaVX-3-CUGO7ikOtJLz9pJh=$NdV-7n*R=E>LDw3X2K`zFN z{gR`V#hf7(Y$USMt+YF5=>#E?Z2)D6VV%(Ae>Okp05snLE1g3|o(F2-iO~eX#Xd*W{UR2AadpAvk5GTaU@^ z{7(DwUe2WzVS8kSW>G)JxuQ%jF0XVh?Si)!cQW3S2=g7z40L^xDI{wP(fcU6nz!T+_2C+^o*RoS|Tzp zDFc3CqYB&$n=*-bp(p{D@sRoca{P;$&=8CAt^kK&opf+%BuHw^9iK&$ zZ+#ZA&;I<`YCzZ#t?7!aSpCVstM6I$$v|wx=`s84mwAPWjGK95WcLoaO75$*W8Zyn?v2@(R4>O;Vj`ReszIVe9Z|q1<;z}^V zH&eJ&Fw;~0D?2@hD|g>Lg2B@UZLMZ4!A{@Dv&fQZ*G>H4jgzJYCfjp=&4Z5geE%a9 z$o*Wlr+*_4SZHcb%Mqs2++|6>k^7N@U{c!U4ufMLnp(3zM%|5$s#qdB0-WW-i^7&_(^4)L?DKi{}jRx+ufvosdBT6 z_XEYE26%PZ94ZOpDm|7HKQu*I8=&hRX?#H?zS&pA_RJ?|?vq@P)~v=d8LksI3oVfQ z(F_;YvS1{`6$u3TcrhBu%`bAW+zc!Nh@KiM=NCOH#bsnSxga~j4SsE8`ZlQrHCxLu z8&+x^b<+j+Q~}>PJoA#E{pA(gs4WNZr5s1^UCj9N{_Q35{^17dAgC-8B5Vj6&eTbr z{?N!w`C)0>Z8=n?nEFz-CUld@G}fPlDI46o&ma>W_)i??#oh*^^8?=-H?QYqn8WqU)KO>mZr$l;487p>Ry`0v+Y6`78fI z4$D=&`qpoX*@r*QvuULvo$=X6ujMX23K{vcXeKtNGn#ZOjXf#~*g1O^uOn^mmt-y{ zz;xIQ`{)D@Z1&!~S%%6zDJH2*NXP2+iPo>ftMToM$z(po{d0CB<(T3I15x5v>K_)M zrVWuL$8C|_i{uW!mCD%2Ox8jJft!z&3qZAIy~SVsR5JTCZ3=GJ)_}_P`6Ns zk9zmMgJmk_<2o_a3H8DH8A4X?zI@kA!DR!1!@Z$Lu|EEwgq()YB*rUM1p|vTv!8KG z%RcM&?vi$wh>YbQ88OyOKQY?2i<$p67QuIS(R0v4y+JVG?bVNYgLjPsWfU1bOT0)4 z`{-AnW^DM9v_Wqkq@Fm!Af#u(jTq)>BngzOJmGx`(g8-;Wm@TH-OBkZ`aZ3`>&r%< z=doruA9~lPh@BLdOu`O-fa+yRwqE(+=!x7i2_4Ii=1h~M7WEy(ev;Flvm`sMS@S9A z94_&uqyURaal2ENR3gv1(F{3CACuh!R{AcA#hjzhqJUF=Hh)9Tk@XwRG`_yPf(O>D zhk+pGly?&Vicsn+g>;^st<1qUwEQ(*PP>zyHnU4=Ce|MLVBRa4lpHodEYd(c*lD$u zFQQP`8L)vLHcWmT&7AsuvV43jX_bhNCtv-qWc?p6CNbjF$F~lBVjYz&q0+H>b!Yx&Wg*u@< zM6~E_enwQtZ+4q+=M>xb>cSwG+RS(FC$0}cE|QaYviT~-GIRK0?O24{7J0%|M_P7E z2FfUHr>DxpOnRZrFp{lRJZaU*29|T0bBg&uLiExT%q8rUmUI}->{j3rUOoc|JM>PZ zb%<>u3$R)KGJwj(1$iq5HM-k0eMQAe=|;r4DZ<8r22HYw9}uN7L!hu4$$ulDFX7Hg zwF!Wkn<;)dxsxAz;AASCqwlN^kEcWMGox-HIQG|pfbgYUiX##b}9Vw~xj>~Pi z%W`qi@?b&kK}Y(2|FR?9FaP;_girf7(q&4->_wG4Vf(GMST-o8j=)K}pqao`D}4_F zEs_}#3^ji?fZ_y+0e=aYK{ZO(L)K#SesoG#I25e1(y{|Sl>D4B2Q#ygkge#@iz=;T z1zE0z7NXFXwU{usc4DwwYt3;^2UUti?EH>B47^^9edbd*t@Ma&Im^b$3~{U^dYpu80=OBo9bJecFa zp`JS+pHf-$v#vk%_J^>x%RT3_$LPayrLQ82LyVTYhrWvShA}AJq{}6T^i3|80RTrA zfi1$MWCWdg@=R9Attbb-KmW?!?q~-=-h#FRT*o?jPFGOe9eK7)ndS;@$R1}VJn!Bv z#2a?>y><5tM#_xG$F#-jKqFx>%(29=Cu144*A%dQcn;fUki;KqEgnMreEPq~83Re49nQce}2i2RZ%wuQN$?sX!5(QN$xx3 z=F^y9*&j@vBbuLx$4o4;(OO)RnX2#iA2OZE)?E3*&PX+IW3`p4XK)>@wj=#6PlZ}K z^j@y)Hj^94Ot_roA_3@*-?2${o$07{Pl8cjX4s5q(6M`pTS3lK5kGtKdvv*gl`MxN zr$vB?@QSh8%B9yp&kFz`wg@s7xFXA7f04=vwhNI9$PVd?_=i}=?;py9t6v)Sb!*ma zO8A(u7fFvqx^$#FxsrciOHhT-P*l{eXPo~LzS8T}+_oCqY^{eulcrf52uibm9d^1k z`(8l8^+XomshGn4Jji-zm6iMmVSBzxTI?*d#%!#KLnWrhoHilE7W9$fX!T2DE{P;{PQB*`tT+*f{q|nP6#%p zNU-F6ONg>Hk{J^Ww>-Rumsa{__*Xi$+^3acgREI8sMl{FZ~r>VQM{EOXP$wEv}!7X zCpmR0LR4^YEP?#PX-TM@y?i6(vuCRxtRO8URIga1JJUskvq_E&O`BO=KBjp`Rs2+$ z{694*#7^Yoo-)G8`3OJ#6cXQKNSbX!e%Zux2o)zIZP95FZz8yCAIu$y8HL_jtl&?w zS@9G9a#Q9)ArsPdQU2Wl%-^I2x6hcp!X;y@+2O0el(qOR=4SF{cz5;N?gplUNhO4! zH_ouKP=%tGuclb3@3C{%Aid0U0M#D{YjH!+UX^@vck{k6R_Z%P1p>pSv6jlO#u$$i z#c03mi^L_e&$m4-gY(^pI4godG*!fUsLe`BKpOClptV8P><5oEFbZ%jn`EA#fvp*;_eNi6c-2-EI3~XDD<7g?tL~Bt;{9BdpyS_E}q;S&Y#&Y#EYK zN`ISsREQ8_f#ZESh+(vFPY+4)D{g&?^L{Gr%hWf$^G3RwRAZ#9G5r=SzW_WW*d!xE ziz566ofOT7kmhP3SA?UdL5rNLMVLq%Mi6y4%C_m&I}T4i+DRd1)lzkV4#!ACdD8+H zjIk&tt`@x&aW2O+8IEa^nvV<$*{}Mv5>4(3y6=zP+YM}q>vkLY*`Jym1sVBJW_Tce zM$CCw;j~|iIwYR1+0T5I&ECwC6zX_ycjpW0potSkSyr7?yrE#{Nr#IJGzo=#23&!9 zwtK7ozHx+(Ku%q!-|8yHxc4doK#1B9^1eucNZieNA~Es@lBf!C+R#hQd%r&YNME}f zA?hs#;ZWU^(_HLevE;rP?`?n3{B#+YEQx)PU4`@_{j-`-MFS3Z1>C1b?d|qf02gZ( zszAF^GP^R(urp(kJTcSxr3`LrnMVk{sM*Kmo=?|nXufi<@okc>BEX6%2 zD;MN__RU>epIgaIaCMF{1p(Av;$-w2{3&nq7VrjJ>8)H53FypK%fVFE=0jj>c?IAb zXZHZ0Juo=epq2b>P0yx;_H&#QCl|Vo52TM{_=>5?VRw-^^@NZxmtjULy&7kUK^r29 z=b~<$c>*grcLp@`%m~)Pgi0n%Exb4MCy0)p&N9z8lgp(}5{SNWBpu8&Zd4=aVnif2 zn}%wO*4?l25{WFBw6&S2{Q^W%r8>U|C}BGVvtuCx(q*IIQt^|h8~z3_J+2SI}lZmauIgsx!{Q% zuvYrTYo*=se4pHV2BsnOk7K=b?i6{_R)G&vp@4x)d^sXg_casjGVn?0V4Pq>>5L(zDo-6PEzN_7n0j6?71?wR(b{Bcdh9U-mjyu8jmvfT{wxm zxeDh#;2bd-ILWJ}Gi0_9+4{=Ny+t-MjnEW4qb7ppiAu6d#15LdSLfo^$TkfPQF-ZJ z`8VI4tPo$5)b~^g2U)3zKG0bm<6z|RF(kQZuQV*4noz70 z&f%_@^U_(%EZ&)3QN&8ijC94QVR@^ z<*_|c?~AZ~nLfy90po0d9px0eNF8*z|r3^=c> z)VYX1`R-8$XV__pm#oESHl(`Zn;M$;UlV`IT72>ThPn@KUN!A0%nO0dTHHpAYJ1s1 z!Ma0l&Sw9bS30up@6BQ;a>K8Zlt~_gkAQfT*UD~>C?$$qkSq>Ukyb^ceKEIxceDu; zS2065GuGwnb3CO+2Oi_pv6m?(^Mm}_D7h~hZ>eCoS{zElB4klF3K|N;a}(u?m_&LhQHFwr=jsIh*Q^DZpnf?kkX(da{diqoOjv zNX0fe!>jR0Lx)BukRzbLpsN5!88jqAmY0xeuvau>-{JP38M2cF>0d4(GsDu-b+5GGP`y^dhfkS@^&zLZpn5V4Vxx8G|a$u599YuRXv;!OSU490f3GAAlBepZi>-tjMAG14)6uqf+y-xW$7Us5!AEAb+o z=AoIY1py1jnNZ>l?(v+k1^;0x6_A|PnFi*aaImLeTjPK-T$c#j?rmMq?8DEQ>T z)|%DCen=&nQTly)70O&F#`g4|Hmk=5W1yZYti{@`(7BD+tgq63dTU6va@ZQRx_S8? z01Q~^2YU0pwYaQ0RNu}P^Yr6mxo^I$I*5bi`f7OM7jy?dpU7bXGsA51A-g^CSKp$d z$^>gj@Z)aCh^Mn{=G#4 z8b>CW3C$#Xu!vF}AXx3b^F)fM@HDdze@q! z(m3*HXCYo)i-Ie>)3L1L4qZa$oT6)i07-aq1np zTF3N2r=EOH)kS_iZ{J%=iU!j_D)SISkTM%cZrgi!kPBNG(fa{5#({JzE*I}oUgQyx zJmzE&T9B^;k>Y|8UGMx$R`sp8yboX+_k>}1>ngW1LGj~v-~=BcZ}Dzr4Db6e8;?Cn z5aWN(G*QG3Zaqimu;k?;$3e~6w;MrW(d}=@i!6^<_`eq+Lkc74bx^tpSgf>w_xm>lGGX8?j0?O+dLCsH zJYOd>l)miuMRnNTWu+$4%O29YWeA59_{!W^d$&<{fe4b^<=E2LJgb7<&k%*i$9AZd zUdj!&op7=mbid=CmX~mknqL9(??laiq?%o5Cp{n7?Ri2F7xm_* zxuWK8Kh;SeJHEg$e+dM#hjQBwvB#;Zon7766#-^`6)4s+@6iSzLQADH)^ClA%erD};v z5yZ)*?nU$gbyTKB?biS_rw=ZLX6e6BaIAitmF%P@3?nR}Xw4pB5?1&G^YKcET123( z_7bLjt9ecXHpKv9KNTLH##1jdGSj+N}M3|(Ppwn~G!(T9R z`g;Gx)4X6jcP9(zb0GbkU)NCRG+YUhYAjN93AXnym1xVx)O+!9D2E8JF(+)`2h06S=7e%`ro_1U;}vchB$8LvA$91S5S^;k zI9d&=)f%k#e+a?kr%tI(p=4+Id|-<> z$HEQb;Eb@Z5pCk?<;|56-M*-ko7%4Aqb?cL=?aYz)pl0d%Qvl2E2QC##qWcpk1A90q=PX zGx&9ajHw*aKnhGQy(5@9V0tCpK@0HI^~Z2m6_+O^ zO70~o+1;{es!))6i<`M}9@qjLnOnQ<1ZoK@k??rzWX+yf$JJR{}z-`nZtjxQScJ)Aagu=C4KgrA; zOm)me$Z^R9B{|>yeBcJlnyhy)PEK~qauDHGB>o-8o6I%t`wx;tul{whw-WEhYKVc` zhy8raNs=5}&Ns+y5{t=B$2YLmBnfg05V#KyB`^}71lMwAjNReht55VTGe6%^6}5kI z+7=*+CO;ny`Wa=WCW0FVTf6RP*Uik1Sx1K%P2g{|-yhJ-@0U3MrB!nOf%Yo)4N+q! z4`guZ|BRJ>fwpkmi3>1+g%kBinHQ>9FpSQaMR6h^R7l0?-= zle8=V#S1S6`3#DG-!(#OWqwC_t^r7TQmbgQ{_!iAXIRe#n znUpluzn|cYLN|uVuO^`uCvBiWlIaw5|gMDDU zgNo$yM*DNBtWQtik(mNmKhbO!hWBJx^5es3nih2xCF1lWa8yTr@loOWcdYdH=@JXC zY+d6V_tZr0%#eiaPqOFAd{pf}B5n-+$yfolv407tO8=Wo$Jl=!k}dM7)A?43a=6aY za)CQHEf?%Rf1<%YNt1RJOq61LA1wIZ92IBer_(N14WBNPn#igZsV9wOFrp-jdE zX+$%C`lQOBpbq}_8k#niBD%hFY zD4Z~dA!@Xr$@VWsF9n9?&>P}(@$~J`GvBMBo0~50)9G?n#c$DcxlYKXc__nBo*Rba zg*Wo?Q!-uN>5e?X48wf|4#PTi%KB_2*pZ9 zz%NGL%HVgw@=@q&_Q4&kQ$PvmPYom~T1eYiA_+s0?Y)y+pqM z7B7$kU-*RD*!3w4#w0T5UX-31{xi&mCrb#*UkPBt2R9~kiS%fL!It+HFf(vdd4X)* zvW?O9P(9r#?4B6{x})>=o(+fq%0A@FCF26a_vMxHo$&@pqgLuDQ@8P;t2zv~=%Nc8 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%0DXCD&JAAQ@*QQuY6CrLHWLNqw)jgCgq39&B~9I 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%0Ddoce;AF>}g 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 literal 0 HcmV?d00001 diff --git a/semantics/common/library/common-c-library-stdio.k b/semantics/common/library/common-c-library-stdio.k index d952cc8fa..53d2c18af 100644 --- a/semantics/common/library/common-c-library-stdio.k +++ b/semantics/common/library/common-c-library-stdio.k @@ -123,35 +123,35 @@ module COMMON-C-LIBRARY-STDIO syntax KItem ::= getFD(FilePointer) rule (.K => getValidFD(FDPtr)) ~> getFD(FDPtr::FilePointer) - requires notBool isNull(FDPtr) + requires notBool isNullFDPtr(FDPtr) rule invalidLibCValue ~> getFD(_) => "" rule FD:FD ~> getFD(_) => FD rule getFD(FDPtr::FilePointer) => error(outOfBoundsMemoryAccess) - requires isNull(FDPtr) + requires isNullFDPtr(FDPtr) syntax KItem ::= setFD(FilePointer, Int) rule setFD(FDPtr::FilePointer, FD::Int) => setValidFD(FDPtr, FD) - requires notBool isNull(FDPtr) + requires notBool isNullFDPtr(FDPtr) rule setFD(FDPtr::FilePointer, _::Int) => error(outOfBoundsMemoryAccess) - requires isNull(FDPtr) + requires isNullFDPtr(FDPtr) syntax KItem ::= getFPos(FPosPointer) rule (.K => getValidFPos(PosPtr)) ~> getFPos(PosPtr::FPosPointer) - requires notBool isNull(PosPtr) + requires notBool isNullFPosPtr(PosPtr) rule invalidLibCValue ~> getFPos(_) => fpos("", 0) rule FPos:FPos ~> getFPos(_) => FPos rule getFPos(PosPtr::FPosPointer) => error(outOfBoundsMemoryAccess) - requires isNull(PosPtr) + requires isNullFPosPtr(PosPtr) syntax KItem ::= setFPos(FPosPointer, String, Int) rule setFPos(PosPtr::FPosPointer, Path::String, Pos::Int) => setValidFPos(PosPtr, Path, Pos) - requires notBool isNull(PosPtr) + requires notBool isNullFPosPtr(PosPtr) rule setFPos(PosPtr::FPosPointer, _::String, _::Int) => error(outOfBoundsMemoryAccess) - requires isNull(PosPtr) + requires isNullFPosPtr(PosPtr) syntax Bool ::= isReadWritable(String) [function] rule isReadWritable("r+") => true @@ -198,10 +198,10 @@ module COMMON-C-LIBRARY-STDIO [structural] rule stdio_fflush(FDPtr::FilePointer) => fflush(getFD(FDPtr)) - requires notBool isNull(FDPtr) + requires notBool isNullFDPtr(FDPtr) [structural] rule stdio_fflush(FDPtr::FilePointer) => flushAll ~> success - requires isNull(FDPtr) + requires isNullFDPtr(FDPtr) [structural] syntax KItem ::= fsetpos(K, K) [seqstrict(1,2)] @@ -441,10 +441,10 @@ module COMMON-C-LIBRARY-STDIO [structural] rule stdio_fclose(FDPtr::FilePointer) => fclose(getFD(FDPtr), FDPtr) - requires notBool isNull(FDPtr) + requires notBool isNullFDPtr(FDPtr) [structural] rule stdio_fclose(FDPtr::FilePointer) => eof - requires isNull(FDPtr) + requires isNullFDPtr(FDPtr) [structural] syntax KItem ::= fclose(K, FilePointer) [strict(1)] @@ -473,10 +473,10 @@ module COMMON-C-LIBRARY-STDIO FDPtr::FilePointer) => freopen(Filename, Mode, FDPtr, getFD(FDPtr)) - requires notBool isNull(FDPtr) + requires notBool isNullFDPtr(FDPtr) [structural] rule stdio_freopen( _, _, FDPtr::FilePointer) => nullFilePointer - requires isNull(FDPtr) + requires isNullFDPtr(FDPtr) [structural] syntax KItem ::= freopen(StringPointer, StringPointer, FilePointer, K) @@ -486,7 +486,7 @@ module COMMON-C-LIBRARY-STDIO => fclose'(FD) ~> discard ~> fopen(FDPtr, readString(Filename), readString(Mode)) - requires notBool isNull(Filename) + requires notBool isNullStrPtr(Filename) [structural] rule freopen(Filename::StringPointer, Mode::StringPointer, @@ -495,7 +495,7 @@ module COMMON-C-LIBRARY-STDIO ... FD Filename':String - requires isNull(Filename) + requires isNullStrPtr(Filename) [structural] syntax KItem ::= fopen(FilePointer, K, K) [seqstrict(2,3)] @@ -537,23 +537,23 @@ module COMMON-C-LIBRARY-STDIO => trapStrBuf(StrPtr, bufSiz) ~> setbuf(getFD(FDPtr), fullBuf, bufSiz) ~> discard - requires notBool isNull(StrPtr) + requires notBool isNullStrPtr(StrPtr) [structural] rule stdio_setbuf(FDPtr::FilePointer, StrPtr::StringPointer) => setbuf(getFD(FDPtr), noBuf, bufSiz) ~> discard - requires isNull(StrPtr) + requires isNullStrPtr(StrPtr) [structural] rule stdio_setbuffer(FDPtr::FilePointer, StrPtr::StringPointer, Sz::Int) => trapStrBuf(StrPtr, Sz) ~> setbuf(getFD(FDPtr), fullBuf, Sz) ~> discard - requires notBool isNull(StrPtr) + requires notBool isNullStrPtr(StrPtr) [structural] rule stdio_setbuffer(FDPtr::FilePointer, StrPtr::StringPointer, Sz::Int) => setbuf(getFD(FDPtr), noBuf, Sz) ~> discard - requires isNull(StrPtr) + requires isNullStrPtr(StrPtr) [structural] rule stdio_setvbuf(FDPtr::FilePointer, StrPtr::StringPointer, 0, Sz::Int) @@ -576,12 +576,12 @@ module COMMON-C-LIBRARY-STDIO syntax KItem ::= trapBuf(BufferPointer, Int) rule trapBuf(BufPtr::BufferPointer, Sz::Int) => writeTrapBytes(BufPtr, Sz) - requires notBool isNull(BufPtr) andBool Sz >Int 0 + requires notBool isNullBufPtr(BufPtr) andBool Sz >Int 0 rule trapBuf(_, _) => .K syntax KItem ::= trapStrBuf(StringPointer, Int) rule trapStrBuf(StrPtr::StringPointer, Sz::Int) => writeTrapBytes(StrPtr, Sz) - requires notBool isNull(StrPtr) andBool Sz >Int 0 + requires notBool isNullStrPtr(StrPtr) andBool Sz >Int 0 rule trapStrBuf(_, _) => .K syntax KItem ::= setbuf(K, BufMode, Int) [strict(1)] diff --git a/semantics/common/library/common-c-library.k b/semantics/common/library/common-c-library.k index 2aba40b28..3875055eb 100644 --- a/semantics/common/library/common-c-library.k +++ b/semantics/common/library/common-c-library.k @@ -41,10 +41,10 @@ module COMMON-C-LIBRARY-OPAQUE-SYNTAX imports STRING // The following functions check for null. - syntax Bool ::= isNull(FilePointer) [function, klabel(isNullFDPtr)] - syntax Bool ::= isNull(FPosPointer) [function, klabel(isNullFPosPtr)] - syntax Bool ::= isNull(StringPointer) [function, klabel(isNullStrPtr)] - syntax Bool ::= isNull(BufferPointer) [function, klabel(isNullBufPtr)] + syntax Bool ::= isNullFDPtr(FilePointer) [function] + syntax Bool ::= isNullFPosPtr(FPosPointer) [function] + syntax Bool ::= isNullStrPtr(StringPointer) [function] + syntax Bool ::= isNullBufPtr(BufferPointer) [function] // The following functions should perform appropriate pointer arithmetic. syntax StringPointer ::= StringPointer "+chars" Int [function] diff --git a/semantics/immediateInstructions/adcb_al_imm8.k b/semantics/immediateInstructions/adcb_al_imm8.k index 28521ea90..d1db6c394 100644 --- a/semantics/immediateInstructions/adcb_al_imm8.k +++ b/semantics/immediateInstructions/adcb_al_imm8.k @@ -5,26 +5,27 @@ module ADCB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (adcb Imm8:Imm, %al, .Operands) => . + execinstr (adcb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9)) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/adcb_r8_imm8.k b/semantics/immediateInstructions/adcb_r8_imm8.k index 0eeaf0432..f65368f92 100644 --- a/semantics/immediateInstructions/adcb_r8_imm8.k +++ b/semantics/immediateInstructions/adcb_r8_imm8.k @@ -5,26 +5,27 @@ module ADCB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (adcb Imm8:Imm, R2:R8, .Operands) => . + execinstr (adcb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/adcb_rh_imm8.k b/semantics/immediateInstructions/adcb_rh_imm8.k index a025b0120..f8b919377 100644 --- a/semantics/immediateInstructions/adcb_rh_imm8.k +++ b/semantics/immediateInstructions/adcb_rh_imm8.k @@ -5,26 +5,27 @@ module ADCB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (adcb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (adcb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/adcl_eax_imm32.k b/semantics/immediateInstructions/adcl_eax_imm32.k index b117c8ec5..86f4bcd28 100644 --- a/semantics/immediateInstructions/adcl_eax_imm32.k +++ b/semantics/immediateInstructions/adcl_eax_imm32.k @@ -5,26 +5,27 @@ module ADCL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (adcl Imm32:Imm, %eax, .Operands) => . + execinstr (adcl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33)) +"RAX" |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/adcl_r32_imm32.k b/semantics/immediateInstructions/adcl_r32_imm32.k index 14427f729..c9255bd51 100644 --- a/semantics/immediateInstructions/adcl_r32_imm32.k +++ b/semantics/immediateInstructions/adcl_r32_imm32.k @@ -5,26 +5,27 @@ module ADCL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (adcl Imm32:Imm, R2:R32, .Operands) => . + execinstr (adcl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/adcl_r32_imm8.k b/semantics/immediateInstructions/adcl_r32_imm8.k index 5e6491637..c499ab214 100644 --- a/semantics/immediateInstructions/adcl_r32_imm8.k +++ b/semantics/immediateInstructions/adcl_r32_imm8.k @@ -5,26 +5,27 @@ module ADCL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (adcl Imm8:Imm, R2:R32, .Operands) => . + execinstr (adcl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/adcq_r64_imm32.k b/semantics/immediateInstructions/adcq_r64_imm32.k index 26791db3c..03716b33c 100644 --- a/semantics/immediateInstructions/adcq_r64_imm32.k +++ b/semantics/immediateInstructions/adcq_r64_imm32.k @@ -5,26 +5,27 @@ module ADCQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (adcq Imm32:Imm, R2:R64, .Operands) => . + execinstr (adcq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) +convToRegKeys(R2) |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/adcq_r64_imm8.k b/semantics/immediateInstructions/adcq_r64_imm8.k index e7163a91a..75584ef82 100644 --- a/semantics/immediateInstructions/adcq_r64_imm8.k +++ b/semantics/immediateInstructions/adcq_r64_imm8.k @@ -5,26 +5,27 @@ module ADCQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (adcq Imm8:Imm, R2:R64, .Operands) => . + execinstr (adcq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) +convToRegKeys(R2) |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/adcq_rax_imm32.k b/semantics/immediateInstructions/adcq_rax_imm32.k index 606ca2b44..b289e48e7 100644 --- a/semantics/immediateInstructions/adcq_rax_imm32.k +++ b/semantics/immediateInstructions/adcq_rax_imm32.k @@ -5,26 +5,27 @@ module ADCQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (adcq Imm32:Imm, %rax, .Operands) => . + execinstr (adcq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65) +"RAX" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/adcw_ax_imm16.k b/semantics/immediateInstructions/adcw_ax_imm16.k index a0769e94b..5afbf0b28 100644 --- a/semantics/immediateInstructions/adcw_ax_imm16.k +++ b/semantics/immediateInstructions/adcw_ax_imm16.k @@ -5,26 +5,27 @@ module ADCW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (adcw Imm16:Imm, %ax, .Operands) => . + execinstr (adcw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17)) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/adcw_r16_imm16.k b/semantics/immediateInstructions/adcw_r16_imm16.k index 4b27cbf13..0af492233 100644 --- a/semantics/immediateInstructions/adcw_r16_imm16.k +++ b/semantics/immediateInstructions/adcw_r16_imm16.k @@ -5,26 +5,27 @@ module ADCW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (adcw Imm16:Imm, R2:R16, .Operands) => . + execinstr (adcw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/adcw_r16_imm8.k b/semantics/immediateInstructions/adcw_r16_imm8.k index 15a937d48..78e8a17b6 100644 --- a/semantics/immediateInstructions/adcw_r16_imm8.k +++ b/semantics/immediateInstructions/adcw_r16_imm8.k @@ -5,26 +5,27 @@ module ADCW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (adcw Imm8:Imm, R2:R16, .Operands) => . + execinstr (adcw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/addb_al_imm8.k b/semantics/immediateInstructions/addb_al_imm8.k index 98c0a035b..1c5345128 100644 --- a/semantics/immediateInstructions/addb_al_imm8.k +++ b/semantics/immediateInstructions/addb_al_imm8.k @@ -5,26 +5,27 @@ module ADDB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (addb Imm8:Imm, %al, .Operands) => . + execinstr (addb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9)) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/addb_r8_imm8.k b/semantics/immediateInstructions/addb_r8_imm8.k index 5dc756dbc..d20c14542 100644 --- a/semantics/immediateInstructions/addb_r8_imm8.k +++ b/semantics/immediateInstructions/addb_r8_imm8.k @@ -5,26 +5,27 @@ module ADDB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (addb Imm8:Imm, R2:R8, .Operands) => . + execinstr (addb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/addb_rh_imm8.k b/semantics/immediateInstructions/addb_rh_imm8.k index df381909c..61d7e62bc 100644 --- a/semantics/immediateInstructions/addb_rh_imm8.k +++ b/semantics/immediateInstructions/addb_rh_imm8.k @@ -5,26 +5,27 @@ module ADDB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (addb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (addb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/addl_eax_imm32.k b/semantics/immediateInstructions/addl_eax_imm32.k index 92f764010..9a9fdcc44 100644 --- a/semantics/immediateInstructions/addl_eax_imm32.k +++ b/semantics/immediateInstructions/addl_eax_imm32.k @@ -5,26 +5,27 @@ module ADDL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (addl Imm32:Imm, %eax, .Operands) => . + execinstr (addl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33)) +"RAX" |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/addl_r32_imm32.k b/semantics/immediateInstructions/addl_r32_imm32.k index 7856f4492..082cee38a 100644 --- a/semantics/immediateInstructions/addl_r32_imm32.k +++ b/semantics/immediateInstructions/addl_r32_imm32.k @@ -5,26 +5,27 @@ module ADDL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (addl Imm32:Imm, R2:R32, .Operands) => . + execinstr (addl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/addl_r32_imm8.k b/semantics/immediateInstructions/addl_r32_imm8.k index ea74935d9..5bbbebbbf 100644 --- a/semantics/immediateInstructions/addl_r32_imm8.k +++ b/semantics/immediateInstructions/addl_r32_imm8.k @@ -5,26 +5,27 @@ module ADDL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (addl Imm8:Imm, R2:R32, .Operands) => . + execinstr (addl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/addq_r64_imm32.k b/semantics/immediateInstructions/addq_r64_imm32.k index 4b5e64bfd..b70848610 100644 --- a/semantics/immediateInstructions/addq_r64_imm32.k +++ b/semantics/immediateInstructions/addq_r64_imm32.k @@ -5,26 +5,27 @@ module ADDQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (addq Imm32:Imm, R2:R64, .Operands) => . + execinstr (addq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) +convToRegKeys(R2) |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/addq_r64_imm8.k b/semantics/immediateInstructions/addq_r64_imm8.k index 6face7fbc..ee3e1fd81 100644 --- a/semantics/immediateInstructions/addq_r64_imm8.k +++ b/semantics/immediateInstructions/addq_r64_imm8.k @@ -5,26 +5,27 @@ module ADDQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (addq Imm8:Imm, R2:R64, .Operands) => . + execinstr (addq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) +convToRegKeys(R2) |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/addq_rax_imm32.k b/semantics/immediateInstructions/addq_rax_imm32.k index 6366ad150..dd4acff82 100644 --- a/semantics/immediateInstructions/addq_rax_imm32.k +++ b/semantics/immediateInstructions/addq_rax_imm32.k @@ -5,26 +5,27 @@ module ADDQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (addq Imm32:Imm, %rax, .Operands) => . + execinstr (addq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65) +"RAX" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/addw_ax_imm16.k b/semantics/immediateInstructions/addw_ax_imm16.k index ca187db86..4c5d171dc 100644 --- a/semantics/immediateInstructions/addw_ax_imm16.k +++ b/semantics/immediateInstructions/addw_ax_imm16.k @@ -5,26 +5,27 @@ module ADDW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (addw Imm16:Imm, %ax, .Operands) => . + execinstr (addw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17)) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/addw_r16_imm16.k b/semantics/immediateInstructions/addw_r16_imm16.k index f053830ea..fa58fed71 100644 --- a/semantics/immediateInstructions/addw_r16_imm16.k +++ b/semantics/immediateInstructions/addw_r16_imm16.k @@ -5,26 +5,27 @@ module ADDW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (addw Imm16:Imm, R2:R16, .Operands) => . + execinstr (addw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/addw_r16_imm8.k b/semantics/immediateInstructions/addw_r16_imm8.k index b88f7bb9b..7fa5d5e06 100644 --- a/semantics/immediateInstructions/addw_r16_imm8.k +++ b/semantics/immediateInstructions/addw_r16_imm8.k @@ -5,26 +5,27 @@ module ADDW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (addw Imm8:Imm, R2:R16, .Operands) => . + execinstr (addw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/andb_al_imm8.k b/semantics/immediateInstructions/andb_al_imm8.k index 3767e3011..fd3ad2eaa 100644 --- a/semantics/immediateInstructions/andb_al_imm8.k +++ b/semantics/immediateInstructions/andb_al_imm8.k @@ -5,26 +5,27 @@ module ANDB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (andb Imm8:Imm, %al, .Operands) => . + execinstr (andb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8))) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), Imm8)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/andb_r8_imm8.k b/semantics/immediateInstructions/andb_r8_imm8.k index 7e490cbd1..c7a0b6542 100644 --- a/semantics/immediateInstructions/andb_r8_imm8.k +++ b/semantics/immediateInstructions/andb_r8_imm8.k @@ -5,26 +5,27 @@ module ANDB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (andb Imm8:Imm, R2:R8, .Operands) => . + execinstr (andb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), andMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), andMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), Imm8)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/andb_rh_imm8.k b/semantics/immediateInstructions/andb_rh_imm8.k index 849ae23ba..d2312eaa2 100644 --- a/semantics/immediateInstructions/andb_rh_imm8.k +++ b/semantics/immediateInstructions/andb_rh_imm8.k @@ -5,26 +5,27 @@ module ANDB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (andb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (andb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), andMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), handleImmediateWithSignExtend(Imm8, 8, 8))), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), andMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), Imm8)), extractMInt( getParentValue(R2, RSMap), 56, 64)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 55, 56), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 54, 55), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 53, 54), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 52, 53), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 51, 52), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 50, 51), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 49, 50), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 55, 56), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 54, 55), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 53, 54), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 52, 53), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 51, 52), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 50, 51), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 49, 50), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/andl_eax_imm32.k b/semantics/immediateInstructions/andl_eax_imm32.k index 6575f6520..575bc8deb 100644 --- a/semantics/immediateInstructions/andl_eax_imm32.k +++ b/semantics/immediateInstructions/andl_eax_imm32.k @@ -5,26 +5,27 @@ module ANDL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (andl Imm32:Imm, %eax, .Operands) => . + execinstr (andl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32))) +"RAX" |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), Imm32)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/andl_r32_imm32.k b/semantics/immediateInstructions/andl_r32_imm32.k index e8689d3ce..9357a7cb6 100644 --- a/semantics/immediateInstructions/andl_r32_imm32.k +++ b/semantics/immediateInstructions/andl_r32_imm32.k @@ -5,26 +5,27 @@ module ANDL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (andl Imm32:Imm, R2:R32, .Operands) => . + execinstr (andl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), Imm32)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/andl_r32_imm8.k b/semantics/immediateInstructions/andl_r32_imm8.k index 126b2ae1f..0ba6528e3 100644 --- a/semantics/immediateInstructions/andl_r32_imm8.k +++ b/semantics/immediateInstructions/andl_r32_imm8.k @@ -5,26 +5,27 @@ module ANDL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (andl Imm8:Imm, R2:R32, .Operands) => . + execinstr (andl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(Imm8)))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(Imm8))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/andq_r64_imm32.k b/semantics/immediateInstructions/andq_r64_imm32.k index a366e4f75..bcabce0fd 100644 --- a/semantics/immediateInstructions/andq_r64_imm32.k +++ b/semantics/immediateInstructions/andq_r64_imm32.k @@ -5,26 +5,27 @@ module ANDQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (andq Imm32:Imm, R2:R64, .Operands) => . + execinstr (andq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) +convToRegKeys(R2) |-> andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm32))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/andq_r64_imm8.k b/semantics/immediateInstructions/andq_r64_imm8.k index aeb6a0d69..17c477e89 100644 --- a/semantics/immediateInstructions/andq_r64_imm8.k +++ b/semantics/immediateInstructions/andq_r64_imm8.k @@ -5,26 +5,27 @@ module ANDQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (andq Imm8:Imm, R2:R64, .Operands) => . + execinstr (andq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R2) |-> andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm8))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm8))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/andq_rax_imm32.k b/semantics/immediateInstructions/andq_rax_imm32.k index 004e0ca3a..03856141e 100644 --- a/semantics/immediateInstructions/andq_rax_imm32.k +++ b/semantics/immediateInstructions/andq_rax_imm32.k @@ -5,26 +5,27 @@ module ANDQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (andq Imm32:Imm, %rax, .Operands) => . + execinstr (andq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> andMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) +"RAX" |-> andMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(Imm32))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/andw_ax_imm16.k b/semantics/immediateInstructions/andw_ax_imm16.k index 57abcd076..23e3b7981 100644 --- a/semantics/immediateInstructions/andw_ax_imm16.k +++ b/semantics/immediateInstructions/andw_ax_imm16.k @@ -5,26 +5,27 @@ module ANDW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (andw Imm16:Imm, %ax, .Operands) => . + execinstr (andw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16))) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), Imm16)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/andw_r16_imm16.k b/semantics/immediateInstructions/andw_r16_imm16.k index e84db6e52..932520799 100644 --- a/semantics/immediateInstructions/andw_r16_imm16.k +++ b/semantics/immediateInstructions/andw_r16_imm16.k @@ -5,26 +5,27 @@ module ANDW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (andw Imm16:Imm, R2:R16, .Operands) => . + execinstr (andw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), Imm16)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/andw_r16_imm8.k b/semantics/immediateInstructions/andw_r16_imm8.k index 5438e4046..291b09534 100644 --- a/semantics/immediateInstructions/andw_r16_imm8.k +++ b/semantics/immediateInstructions/andw_r16_imm8.k @@ -5,26 +5,27 @@ module ANDW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (andw Imm8:Imm, R2:R16, .Operands) => . + execinstr (andw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(Imm8)))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(Imm8))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/blendpd_xmm_xmm_imm8.k b/semantics/immediateInstructions/blendpd_xmm_xmm_imm8.k index e9ebce867..718ab1618 100644 --- a/semantics/immediateInstructions/blendpd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/blendpd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module BLENDPD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (blendpd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (blendpd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/blendps_xmm_xmm_imm8.k b/semantics/immediateInstructions/blendps_xmm_xmm_imm8.k index cbc2a8235..190d4481b 100644 --- a/semantics/immediateInstructions/blendps_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/blendps_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module BLENDPS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (blendps Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (blendps Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btcl_r32_imm8.k b/semantics/immediateInstructions/btcl_r32_imm8.k index 7994b200a..33479f647 100644 --- a/semantics/immediateInstructions/btcl_r32_imm8.k +++ b/semantics/immediateInstructions/btcl_r32_imm8.k @@ -5,13 +5,13 @@ module BTCL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (btcl Imm8:Imm, R2:R32, .Operands) => . + execinstr (btcl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), shiftLeftMInt( mi(32, 1), uvalueMInt(mi(32, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))))))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), shiftLeftMInt( mi(32, 1), uvalueMInt(mi(32, svalueMInt(andMInt( Imm8, mi(8, 31)))))))) -"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(mi(32, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))))), 31, 32) +"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(mi(32, svalueMInt(andMInt( Imm8, mi(8, 31)))))), 31, 32) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParen ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btcq_r64_imm8.k b/semantics/immediateInstructions/btcq_r64_imm8.k index 6c7a97b5e..ac7ac1d96 100644 --- a/semantics/immediateInstructions/btcq_r64_imm8.k +++ b/semantics/immediateInstructions/btcq_r64_imm8.k @@ -5,13 +5,13 @@ module BTCQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (btcq Imm8:Imm, R2:R64, .Operands) => . + execinstr (btcq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> xorMInt( getParentValue(R2, RSMap), shiftLeftMInt( mi(64, 1), uvalueMInt(mi(64, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))))) +convToRegKeys(R2) |-> xorMInt( getParentValue(R2, RSMap), shiftLeftMInt( mi(64, 1), uvalueMInt(mi(64, svalueMInt(andMInt( Imm8, mi(8, 63))))))) -"CF" |-> extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(mi(64, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))))), 63, 64) +"CF" |-> extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(mi(64, svalueMInt(andMInt( Imm8, mi(8, 63)))))), 63, 64) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> xorMInt( getParentValue(R2, RSMap), shiftLeftMInt( mi(64, ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btcw_r16_imm8.k b/semantics/immediateInstructions/btcw_r16_imm8.k index b817247be..433f69826 100644 --- a/semantics/immediateInstructions/btcw_r16_imm8.k +++ b/semantics/immediateInstructions/btcw_r16_imm8.k @@ -5,13 +5,13 @@ module BTCW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (btcw Imm8:Imm, R2:R16, .Operands) => . + execinstr (btcw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), shiftLeftMInt( mi(16, 1), uvalueMInt(mi(16, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)))))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), shiftLeftMInt( mi(16, 1), uvalueMInt(mi(16, svalueMInt(andMInt( Imm8, mi(8, 15)))))))) -"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(mi(16, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)))))), 15, 16) +"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(mi(16, svalueMInt(andMInt( Imm8, mi(8, 15)))))), 15, 16) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0 ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btl_r32_imm8.k b/semantics/immediateInstructions/btl_r32_imm8.k index 5b3ef7855..f93177366 100644 --- a/semantics/immediateInstructions/btl_r32_imm8.k +++ b/semantics/immediateInstructions/btl_r32_imm8.k @@ -5,11 +5,11 @@ module BTL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (btl Imm8:Imm, R2:R32, .Operands) => . + execinstr (btl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(mi(32, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))))), 31, 32) +"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(mi(32, svalueMInt(andMInt( Imm8, mi(8, 31)))))), 31, 32) "PF" |-> (undefMInt) @@ -21,6 +21,7 @@ RSMap:Map => updateMap(RSMap, ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btq_r64_imm8.k b/semantics/immediateInstructions/btq_r64_imm8.k index 490d355c5..3faba1fc7 100644 --- a/semantics/immediateInstructions/btq_r64_imm8.k +++ b/semantics/immediateInstructions/btq_r64_imm8.k @@ -5,11 +5,11 @@ module BTQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (btq Imm8:Imm, R2:R64, .Operands) => . + execinstr (btq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(mi(64, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))))), 63, 64) +"CF" |-> extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(mi(64, svalueMInt(andMInt( Imm8, mi(8, 63)))))), 63, 64) "PF" |-> (undefMInt) @@ -21,6 +21,7 @@ RSMap:Map => updateMap(RSMap, ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btrl_r32_imm8.k b/semantics/immediateInstructions/btrl_r32_imm8.k index ef24cd754..18d7fc3f1 100644 --- a/semantics/immediateInstructions/btrl_r32_imm8.k +++ b/semantics/immediateInstructions/btrl_r32_imm8.k @@ -5,13 +5,13 @@ module BTRL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (btrl Imm8:Imm, R2:R32, .Operands) => . + execinstr (btrl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), negMInt( shiftLeftMInt( mi(32, 1), uvalueMInt(mi(32, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))))))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), negMInt( shiftLeftMInt( mi(32, 1), uvalueMInt(mi(32, svalueMInt(andMInt( Imm8, mi(8, 31))))))))) -"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(mi(32, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))))), 31, 32) +"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(mi(32, svalueMInt(andMInt( Imm8, mi(8, 31)))))), 31, 32) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParen ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btrq_r64_imm8.k b/semantics/immediateInstructions/btrq_r64_imm8.k index 155df1033..7553de254 100644 --- a/semantics/immediateInstructions/btrq_r64_imm8.k +++ b/semantics/immediateInstructions/btrq_r64_imm8.k @@ -5,13 +5,13 @@ module BTRQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (btrq Imm8:Imm, R2:R64, .Operands) => . + execinstr (btrq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> andMInt( getParentValue(R2, RSMap), negMInt( shiftLeftMInt( mi(64, 1), uvalueMInt(mi(64, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))))))) +convToRegKeys(R2) |-> andMInt( getParentValue(R2, RSMap), negMInt( shiftLeftMInt( mi(64, 1), uvalueMInt(mi(64, svalueMInt(andMInt( Imm8, mi(8, 63)))))))) -"CF" |-> extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(mi(64, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))))), 63, 64) +"CF" |-> extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(mi(64, svalueMInt(andMInt( Imm8, mi(8, 63)))))), 63, 64) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> andMInt( getParentValue(R2, RSMap), negMInt( shiftLeftMInt ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btrw_r16_imm8.k b/semantics/immediateInstructions/btrw_r16_imm8.k index 5452e91bf..5c940cb10 100644 --- a/semantics/immediateInstructions/btrw_r16_imm8.k +++ b/semantics/immediateInstructions/btrw_r16_imm8.k @@ -5,13 +5,13 @@ module BTRW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (btrw Imm8:Imm, R2:R16, .Operands) => . + execinstr (btrw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), negMInt( shiftLeftMInt( mi(16, 1), uvalueMInt(mi(16, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15))))))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), negMInt( shiftLeftMInt( mi(16, 1), uvalueMInt(mi(16, svalueMInt(andMInt( Imm8, mi(8, 15))))))))) -"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(mi(16, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)))))), 15, 16) +"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(mi(16, svalueMInt(andMInt( Imm8, mi(8, 15)))))), 15, 16) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0 ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btsl_r32_imm8.k b/semantics/immediateInstructions/btsl_r32_imm8.k index 837d27cc6..021453338 100644 --- a/semantics/immediateInstructions/btsl_r32_imm8.k +++ b/semantics/immediateInstructions/btsl_r32_imm8.k @@ -5,13 +5,13 @@ module BTSL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (btsl Imm8:Imm, R2:R32, .Operands) => . + execinstr (btsl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), shiftLeftMInt( mi(32, 1), uvalueMInt(mi(32, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))))))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), shiftLeftMInt( mi(32, 1), uvalueMInt(mi(32, svalueMInt(andMInt( Imm8, mi(8, 31)))))))) -"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(mi(32, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))))), 31, 32) +"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(mi(32, svalueMInt(andMInt( Imm8, mi(8, 31)))))), 31, 32) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParent ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btsq_r64_imm8.k b/semantics/immediateInstructions/btsq_r64_imm8.k index 8a9cf93b1..025a173f9 100644 --- a/semantics/immediateInstructions/btsq_r64_imm8.k +++ b/semantics/immediateInstructions/btsq_r64_imm8.k @@ -5,13 +5,13 @@ module BTSQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (btsq Imm8:Imm, R2:R64, .Operands) => . + execinstr (btsq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> orMInt( getParentValue(R2, RSMap), shiftLeftMInt( mi(64, 1), uvalueMInt(mi(64, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))))) +convToRegKeys(R2) |-> orMInt( getParentValue(R2, RSMap), shiftLeftMInt( mi(64, 1), uvalueMInt(mi(64, svalueMInt(andMInt( Imm8, mi(8, 63))))))) -"CF" |-> extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(mi(64, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))))), 63, 64) +"CF" |-> extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(mi(64, svalueMInt(andMInt( Imm8, mi(8, 63)))))), 63, 64) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> orMInt( getParentValue(R2, RSMap), shiftLeftMInt( mi(64, 1 ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btsw_r16_imm8.k b/semantics/immediateInstructions/btsw_r16_imm8.k index b8795b147..ea2a84a37 100644 --- a/semantics/immediateInstructions/btsw_r16_imm8.k +++ b/semantics/immediateInstructions/btsw_r16_imm8.k @@ -5,13 +5,13 @@ module BTSW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (btsw Imm8:Imm, R2:R16, .Operands) => . + execinstr (btsw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), shiftLeftMInt( mi(16, 1), uvalueMInt(mi(16, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)))))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), shiftLeftMInt( mi(16, 1), uvalueMInt(mi(16, svalueMInt(andMInt( Imm8, mi(8, 15)))))))) -"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(mi(16, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)))))), 15, 16) +"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(mi(16, svalueMInt(andMInt( Imm8, mi(8, 15)))))), 15, 16) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0 ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btw_r16_imm8.k b/semantics/immediateInstructions/btw_r16_imm8.k index bd817430c..836f1d9e8 100644 --- a/semantics/immediateInstructions/btw_r16_imm8.k +++ b/semantics/immediateInstructions/btw_r16_imm8.k @@ -5,11 +5,11 @@ module BTW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (btw Imm8:Imm, R2:R16, .Operands) => . + execinstr (btw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(mi(16, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)))))), 15, 16) +"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(mi(16, svalueMInt(andMInt( Imm8, mi(8, 15)))))), 15, 16) "PF" |-> (undefMInt) @@ -21,6 +21,7 @@ RSMap:Map => updateMap(RSMap, ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpb_al_imm8.k b/semantics/immediateInstructions/cmpb_al_imm8.k index 45332095a..cb9434fd3 100644 --- a/semantics/immediateInstructions/cmpb_al_imm8.k +++ b/semantics/immediateInstructions/cmpb_al_imm8.k @@ -5,24 +5,25 @@ module CMPB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpb Imm8:Imm, %al, .Operands) => . + execinstr (cmpb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpb_r8_imm8.k b/semantics/immediateInstructions/cmpb_r8_imm8.k index 7d9b2a57c..b2ecbead1 100644 --- a/semantics/immediateInstructions/cmpb_r8_imm8.k +++ b/semantics/immediateInstructions/cmpb_r8_imm8.k @@ -5,24 +5,25 @@ module CMPB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpb Imm8:Imm, R2:R8, .Operands) => . + execinstr (cmpb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpb_rh_imm8.k b/semantics/immediateInstructions/cmpb_rh_imm8.k index 7746acbe6..a7ddaa8b2 100644 --- a/semantics/immediateInstructions/cmpb_rh_imm8.k +++ b/semantics/immediateInstructions/cmpb_rh_imm8.k @@ -5,24 +5,25 @@ module CMPB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (cmpb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpl_eax_imm32.k b/semantics/immediateInstructions/cmpl_eax_imm32.k index d9732c928..769fe7ea1 100644 --- a/semantics/immediateInstructions/cmpl_eax_imm32.k +++ b/semantics/immediateInstructions/cmpl_eax_imm32.k @@ -5,24 +5,25 @@ module CMPL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (cmpl Imm32:Imm, %eax, .Operands) => . + execinstr (cmpl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/cmpl_r32_imm32.k b/semantics/immediateInstructions/cmpl_r32_imm32.k index 089410bf1..d135eaf95 100644 --- a/semantics/immediateInstructions/cmpl_r32_imm32.k +++ b/semantics/immediateInstructions/cmpl_r32_imm32.k @@ -5,24 +5,25 @@ module CMPL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (cmpl Imm32:Imm, R2:R32, .Operands) => . + execinstr (cmpl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/cmpl_r32_imm8.k b/semantics/immediateInstructions/cmpl_r32_imm8.k index 553221e9d..fbe8ce041 100644 --- a/semantics/immediateInstructions/cmpl_r32_imm8.k +++ b/semantics/immediateInstructions/cmpl_r32_imm8.k @@ -5,24 +5,25 @@ module CMPL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpl Imm8:Imm, R2:R32, .Operands) => . + execinstr (cmpl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmppd_xmm_xmm_imm8.k b/semantics/immediateInstructions/cmppd_xmm_xmm_imm8.k index c5e3ef429..ebad58d81 100644 --- a/semantics/immediateInstructions/cmppd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/cmppd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module CMPPD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (cmppd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (cmppd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpps_xmm_xmm_imm8.k b/semantics/immediateInstructions/cmpps_xmm_xmm_imm8.k index 6daefaaac..58e1b5815 100644 --- a/semantics/immediateInstructions/cmpps_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/cmpps_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module CMPPS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpps Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (cmpps Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpq_r64_imm32.k b/semantics/immediateInstructions/cmpq_r64_imm32.k index 098d0d7b1..e9fdeae98 100644 --- a/semantics/immediateInstructions/cmpq_r64_imm32.k +++ b/semantics/immediateInstructions/cmpq_r64_imm32.k @@ -5,24 +5,25 @@ module CMPQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (cmpq Imm32:Imm, R2:R64, .Operands) => . + execinstr (cmpq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/cmpq_r64_imm8.k b/semantics/immediateInstructions/cmpq_r64_imm8.k index 31afa9136..45c1feb53 100644 --- a/semantics/immediateInstructions/cmpq_r64_imm8.k +++ b/semantics/immediateInstructions/cmpq_r64_imm8.k @@ -5,24 +5,25 @@ module CMPQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpq Imm8:Imm, R2:R64, .Operands) => . + execinstr (cmpq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpq_rax_imm32.k b/semantics/immediateInstructions/cmpq_rax_imm32.k index c40b120a6..6235d4060 100644 --- a/semantics/immediateInstructions/cmpq_rax_imm32.k +++ b/semantics/immediateInstructions/cmpq_rax_imm32.k @@ -5,24 +5,25 @@ module CMPQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (cmpq Imm32:Imm, %rax, .Operands) => . + execinstr (cmpq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/cmpsd_xmm_xmm_imm8.k b/semantics/immediateInstructions/cmpsd_xmm_xmm_imm8.k index 67f323431..989ff62a4 100644 --- a/semantics/immediateInstructions/cmpsd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/cmpsd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module CMPSD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpsd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (cmpsd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 192), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 192), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpss_xmm_xmm_imm8.k b/semantics/immediateInstructions/cmpss_xmm_xmm_imm8.k index 5921b29ba..361511237 100644 --- a/semantics/immediateInstructions/cmpss_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/cmpss_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module CMPSS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpss Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (cmpss Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 224), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 224), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpw_ax_imm16.k b/semantics/immediateInstructions/cmpw_ax_imm16.k index 68c4909ad..bf10107bd 100644 --- a/semantics/immediateInstructions/cmpw_ax_imm16.k +++ b/semantics/immediateInstructions/cmpw_ax_imm16.k @@ -5,24 +5,25 @@ module CMPW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (cmpw Imm16:Imm, %ax, .Operands) => . + execinstr (cmpw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/cmpw_r16_imm16.k b/semantics/immediateInstructions/cmpw_r16_imm16.k index d237acdb4..b2e151a7d 100644 --- a/semantics/immediateInstructions/cmpw_r16_imm16.k +++ b/semantics/immediateInstructions/cmpw_r16_imm16.k @@ -5,24 +5,25 @@ module CMPW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (cmpw Imm16:Imm, R2:R16, .Operands) => . + execinstr (cmpw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/cmpw_r16_imm8.k b/semantics/immediateInstructions/cmpw_r16_imm8.k index 6fce01d8b..b70c61ae8 100644 --- a/semantics/immediateInstructions/cmpw_r16_imm8.k +++ b/semantics/immediateInstructions/cmpw_r16_imm8.k @@ -5,24 +5,25 @@ module CMPW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpw Imm8:Imm, R2:R16, .Operands) => . + execinstr (cmpw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/dppd_xmm_xmm_imm8.k b/semantics/immediateInstructions/dppd_xmm_xmm_imm8.k index b1fe5b276..d2b684705 100644 --- a/semantics/immediateInstructions/dppd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/dppd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module DPPD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (dppd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (dppd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/dpps_xmm_xmm_imm8.k b/semantics/immediateInstructions/dpps_xmm_xmm_imm8.k index 400d5ae00..860c595e9 100644 --- a/semantics/immediateInstructions/dpps_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/dpps_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module DPPS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (dpps Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (dpps Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/extractps_r32_xmm_imm8.k b/semantics/immediateInstructions/extractps_r32_xmm_imm8.k index 4a9873a3a..48f94246d 100644 --- a/semantics/immediateInstructions/extractps_r32_xmm_imm8.k +++ b/semantics/immediateInstructions/extractps_r32_xmm_imm8.k @@ -5,14 +5,15 @@ module EXTRACTPS-R32-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (extractps Imm8:Imm, R2:Xmm, R3:R32, .Operands) => . + execinstr (extractps Imm8:MInt, R2:Xmm, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/extractps_r64_xmm_imm8.k b/semantics/immediateInstructions/extractps_r64_xmm_imm8.k index 8748b1321..438a0467f 100644 --- a/semantics/immediateInstructions/extractps_r64_xmm_imm8.k +++ b/semantics/immediateInstructions/extractps_r64_xmm_imm8.k @@ -5,14 +5,15 @@ module EXTRACTPS-R64-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (extractps Imm8:Imm, R2:Xmm, R3:R64, .Operands) => . + execinstr (extractps Imm8:MInt, R2:Xmm, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/imull_r32_r32_imm32.k b/semantics/immediateInstructions/imull_r32_r32_imm32.k index 57702c445..67c1829d9 100644 --- a/semantics/immediateInstructions/imull_r32_r32_imm32.k +++ b/semantics/immediateInstructions/imull_r32_r32_imm32.k @@ -5,13 +5,13 @@ module IMULL-R32-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (imull Imm32:Imm, R2:R32, R3:R32, .Operands) => . + execinstr (imull Imm32:MInt, R2:R32, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 32, 64)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm32))), 32, 64)) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm32))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm32))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -21,10 +21,11 @@ convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, s "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm32))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm32))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/imull_r32_r32_imm8.k b/semantics/immediateInstructions/imull_r32_r32_imm8.k index fb6071837..0c581bb88 100644 --- a/semantics/immediateInstructions/imull_r32_r32_imm8.k +++ b/semantics/immediateInstructions/imull_r32_r32_imm8.k @@ -5,13 +5,13 @@ module IMULL-R32-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (imull Imm8:Imm, R2:R32, R3:R32, .Operands) => . + execinstr (imull Imm8:MInt, R2:R32, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 32, 64)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm8))), 32, 64)) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm8))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm8))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -21,10 +21,11 @@ convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, s "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm8))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm8))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/imulq_r64_r64_imm32.k b/semantics/immediateInstructions/imulq_r64_r64_imm32.k index f88104746..0e2abacb7 100644 --- a/semantics/immediateInstructions/imulq_r64_r64_imm32.k +++ b/semantics/immediateInstructions/imulq_r64_r64_imm32.k @@ -5,13 +5,13 @@ module IMULQ-R64-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (imulq Imm32:Imm, R2:R64, R3:R64, .Operands) => . + execinstr (imulq Imm32:MInt, R2:R64, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 64, 128) +convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm32))), 64, 128) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm32))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm32))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -21,10 +21,11 @@ convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2 "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm32))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm32))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/imulq_r64_r64_imm8.k b/semantics/immediateInstructions/imulq_r64_r64_imm8.k index 09f92931c..231eef2cd 100644 --- a/semantics/immediateInstructions/imulq_r64_r64_imm8.k +++ b/semantics/immediateInstructions/imulq_r64_r64_imm8.k @@ -5,13 +5,13 @@ module IMULQ-R64-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (imulq Imm8:Imm, R2:R64, R3:R64, .Operands) => . + execinstr (imulq Imm8:MInt, R2:R64, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 64, 128) +convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm8))), 64, 128) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm8))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm8))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -21,10 +21,11 @@ convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2 "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm8))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm8))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/imulw_r16_r16_imm16.k b/semantics/immediateInstructions/imulw_r16_r16_imm16.k index 5a83cb2cf..3815f7edc 100644 --- a/semantics/immediateInstructions/imulw_r16_r16_imm16.k +++ b/semantics/immediateInstructions/imulw_r16_r16_imm16.k @@ -5,13 +5,13 @@ module IMULW-R16-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (imulw Imm16:Imm, R2:R16, R3:R16, .Operands) => . + execinstr (imulw Imm16:MInt, R2:R16, R3:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 48), extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), 16, 32)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 48), extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm16))), 16, 32)) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm16))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm16))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -21,10 +21,11 @@ convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0 "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm16))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm16))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/imulw_r16_r16_imm8.k b/semantics/immediateInstructions/imulw_r16_r16_imm8.k index 24b0d6d3b..a7c5657ce 100644 --- a/semantics/immediateInstructions/imulw_r16_r16_imm8.k +++ b/semantics/immediateInstructions/imulw_r16_r16_imm8.k @@ -5,13 +5,13 @@ module IMULW-R16-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (imulw Imm8:Imm, R2:R16, R3:R16, .Operands) => . + execinstr (imulw Imm8:MInt, R2:R16, R3:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 48), extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 16, 32)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 48), extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm8))), 16, 32)) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm8))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm8))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -21,10 +21,11 @@ convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0 "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm8))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm8))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/insertps_xmm_xmm_imm8.k b/semantics/immediateInstructions/insertps_xmm_xmm_imm8.k index 257c1c32b..9dfedb717 100644 --- a/semantics/immediateInstructions/insertps_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/insertps_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module INSERTPS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (insertps Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (insertps Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #fi) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 160, 192) #fi) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #fi) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 160, 192) #fi) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/movb_r8_imm8.k b/semantics/immediateInstructions/movb_r8_imm8.k index f5f3fca11..b7ab26b3b 100644 --- a/semantics/immediateInstructions/movb_r8_imm8.k +++ b/semantics/immediateInstructions/movb_r8_imm8.k @@ -5,14 +5,15 @@ module MOVB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (movb Imm8:Imm, R2:R8, .Operands) => . + execinstr (movb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), handleImmediateWithSignExtend(Imm8, 8, 8)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), Imm8) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/movb_rh_imm8.k b/semantics/immediateInstructions/movb_rh_imm8.k index f4592e2b2..f8da98827 100644 --- a/semantics/immediateInstructions/movb_rh_imm8.k +++ b/semantics/immediateInstructions/movb_rh_imm8.k @@ -5,14 +5,15 @@ module MOVB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (movb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (movb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), handleImmediateWithSignExtend(Imm8, 8, 8)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), Imm8), extractMInt( getParentValue(R2, RSMap), 56, 64)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/movl_r32_imm32.k b/semantics/immediateInstructions/movl_r32_imm32.k index 6555f7f5a..0fed3fbb9 100644 --- a/semantics/immediateInstructions/movl_r32_imm32.k +++ b/semantics/immediateInstructions/movl_r32_imm32.k @@ -5,14 +5,15 @@ module MOVL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (movl Imm32:Imm, R2:R32, .Operands) => . + execinstr (movl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), Imm32) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/movq_r64_imm32.k b/semantics/immediateInstructions/movq_r64_imm32.k index 73f896b97..12a2bed0f 100644 --- a/semantics/immediateInstructions/movq_r64_imm32.k +++ b/semantics/immediateInstructions/movq_r64_imm32.k @@ -5,14 +5,15 @@ module MOVQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (movq Imm32:Imm, R2:R64, .Operands) => . + execinstr (movq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))) +convToRegKeys(R2) |-> mi(64, svalueMInt(Imm32)) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/movq_r64_imm64.k b/semantics/immediateInstructions/movq_r64_imm64.k index cc4a8e719..7f2cdfeb6 100644 --- a/semantics/immediateInstructions/movq_r64_imm64.k +++ b/semantics/immediateInstructions/movq_r64_imm64.k @@ -5,14 +5,15 @@ module MOVQ-R64-IMM64 imports X86-CONFIGURATION rule - execinstr (movq Imm64:Imm, R2:R64, .Operands) => . + execinstr (movq Imm64:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> handleImmediateWithSignExtend(Imm64, 64, 64) +convToRegKeys(R2) |-> Imm64 ) + requires bitwidthMInt(Imm64) ==Int 64 endmodule diff --git a/semantics/immediateInstructions/movw_r16_imm16.k b/semantics/immediateInstructions/movw_r16_imm16.k index d7cec4199..a6a1ff2dc 100644 --- a/semantics/immediateInstructions/movw_r16_imm16.k +++ b/semantics/immediateInstructions/movw_r16_imm16.k @@ -5,14 +5,15 @@ module MOVW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (movw Imm16:Imm, R2:R16, .Operands) => . + execinstr (movw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), handleImmediateWithSignExtend(Imm16, 16, 16)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), Imm16) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/mpsadbw_xmm_xmm_imm8.k b/semantics/immediateInstructions/mpsadbw_xmm_xmm_imm8.k index 78725d1de..da0f7af7e 100644 --- a/semantics/immediateInstructions/mpsadbw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/mpsadbw_xmm_xmm_imm8.k @@ -4,43 +4,44 @@ module MPSADBW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (mpsadbw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => + execinstr (mpsadbw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => execinstr (mpsadbw selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 7 , 0 ), + extractMInt(Imm8, 6, 8), 7 , 0 ), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 15, 8 ), + extractMInt(Imm8, 6, 8), 15, 8 ), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 23, 16), + extractMInt(Imm8, 6, 8), 23, 16), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 31, 24), + extractMInt(Imm8, 6, 8), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 7 , 0), + extractMInt(Imm8, 5, 6), 7 , 0), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 15, 8), + extractMInt(Imm8, 5, 6), 15, 8), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 23, 16), + extractMInt(Imm8, 5, 6), 23, 16), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 31, 24), + extractMInt(Imm8, 5, 6), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 39, 32), + extractMInt(Imm8, 5, 6), 39, 32), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 47, 40), + extractMInt(Imm8, 5, 6), 47, 40), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 55, 48), + extractMInt(Imm8, 5, 6), 55, 48), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 63, 56), + extractMInt(Imm8, 5, 6), 63, 56), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 71, 64), + extractMInt(Imm8, 5, 6), 71, 64), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 79, 72), + extractMInt(Imm8, 5, 6), 79, 72), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 87, 80), + extractMInt(Imm8, 5, 6), 87, 80), R3:Xmm, .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (mpsadbw diff --git a/semantics/immediateInstructions/orb_al_imm8.k b/semantics/immediateInstructions/orb_al_imm8.k index 3f6603153..c0010c1f5 100644 --- a/semantics/immediateInstructions/orb_al_imm8.k +++ b/semantics/immediateInstructions/orb_al_imm8.k @@ -5,26 +5,27 @@ module ORB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (orb Imm8:Imm, %al, .Operands) => . + execinstr (orb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8))) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), Imm8)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/orb_r8_imm8.k b/semantics/immediateInstructions/orb_r8_imm8.k index 37563bc7a..189af7d4b 100644 --- a/semantics/immediateInstructions/orb_r8_imm8.k +++ b/semantics/immediateInstructions/orb_r8_imm8.k @@ -5,26 +5,27 @@ module ORB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (orb Imm8:Imm, R2:R8, .Operands) => . + execinstr (orb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), orMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), orMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), Imm8)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/orb_rh_imm8.k b/semantics/immediateInstructions/orb_rh_imm8.k index 627755af4..2a7e7d6d8 100644 --- a/semantics/immediateInstructions/orb_rh_imm8.k +++ b/semantics/immediateInstructions/orb_rh_imm8.k @@ -5,26 +5,27 @@ module ORB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (orb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (orb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), orMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), handleImmediateWithSignExtend(Imm8, 8, 8))), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), orMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), Imm8)), extractMInt( getParentValue(R2, RSMap), 56, 64)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 55, 56), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 54, 55), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 53, 54), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 52, 53), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 51, 52), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 50, 51), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 49, 50), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 55, 56), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 54, 55), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 53, 54), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 52, 53), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 51, 52), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 50, 51), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 49, 50), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/orl_eax_imm32.k b/semantics/immediateInstructions/orl_eax_imm32.k index d6f2b62e9..3eb01bf70 100644 --- a/semantics/immediateInstructions/orl_eax_imm32.k +++ b/semantics/immediateInstructions/orl_eax_imm32.k @@ -5,26 +5,27 @@ module ORL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (orl Imm32:Imm, %eax, .Operands) => . + execinstr (orl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32))) +"RAX" |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), Imm32)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/orl_r32_imm32.k b/semantics/immediateInstructions/orl_r32_imm32.k index c087060b6..37bf020a2 100644 --- a/semantics/immediateInstructions/orl_r32_imm32.k +++ b/semantics/immediateInstructions/orl_r32_imm32.k @@ -5,26 +5,27 @@ module ORL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (orl Imm32:Imm, R2:R32, .Operands) => . + execinstr (orl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), Imm32)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/orl_r32_imm8.k b/semantics/immediateInstructions/orl_r32_imm8.k index a06966384..51c069103 100644 --- a/semantics/immediateInstructions/orl_r32_imm8.k +++ b/semantics/immediateInstructions/orl_r32_imm8.k @@ -5,26 +5,27 @@ module ORL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (orl Imm8:Imm, R2:R32, .Operands) => . + execinstr (orl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(Imm8)))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(Imm8))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/orq_r64_imm32.k b/semantics/immediateInstructions/orq_r64_imm32.k index 127bcf860..e5418cf62 100644 --- a/semantics/immediateInstructions/orq_r64_imm32.k +++ b/semantics/immediateInstructions/orq_r64_imm32.k @@ -5,26 +5,27 @@ module ORQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (orq Imm32:Imm, R2:R64, .Operands) => . + execinstr (orq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> orMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) +convToRegKeys(R2) |-> orMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm32))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/orq_r64_imm8.k b/semantics/immediateInstructions/orq_r64_imm8.k index 2aa63623d..c086017f2 100644 --- a/semantics/immediateInstructions/orq_r64_imm8.k +++ b/semantics/immediateInstructions/orq_r64_imm8.k @@ -5,26 +5,27 @@ module ORQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (orq Imm8:Imm, R2:R64, .Operands) => . + execinstr (orq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> orMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R2) |-> orMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm8))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm8))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/orq_rax_imm32.k b/semantics/immediateInstructions/orq_rax_imm32.k index 3dc8c82bb..e8759e7d4 100644 --- a/semantics/immediateInstructions/orq_rax_imm32.k +++ b/semantics/immediateInstructions/orq_rax_imm32.k @@ -5,26 +5,27 @@ module ORQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (orq Imm32:Imm, %rax, .Operands) => . + execinstr (orq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> orMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) +"RAX" |-> orMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(Imm32))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/orw_ax_imm16.k b/semantics/immediateInstructions/orw_ax_imm16.k index 9be5a55b0..1b93b5fcd 100644 --- a/semantics/immediateInstructions/orw_ax_imm16.k +++ b/semantics/immediateInstructions/orw_ax_imm16.k @@ -5,26 +5,27 @@ module ORW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (orw Imm16:Imm, %ax, .Operands) => . + execinstr (orw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), orMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16))) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), orMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), Imm16)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/orw_r16_imm16.k b/semantics/immediateInstructions/orw_r16_imm16.k index 69c0d0b5c..415add486 100644 --- a/semantics/immediateInstructions/orw_r16_imm16.k +++ b/semantics/immediateInstructions/orw_r16_imm16.k @@ -5,26 +5,27 @@ module ORW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (orw Imm16:Imm, R2:R16, .Operands) => . + execinstr (orw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), Imm16)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/orw_r16_imm8.k b/semantics/immediateInstructions/orw_r16_imm8.k index 6ce996862..5c16b7b30 100644 --- a/semantics/immediateInstructions/orw_r16_imm8.k +++ b/semantics/immediateInstructions/orw_r16_imm8.k @@ -5,26 +5,27 @@ module ORW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (orw Imm8:Imm, R2:R16, .Operands) => . + execinstr (orw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(Imm8)))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(Imm8))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/palignr_xmm_xmm_imm8.k b/semantics/immediateInstructions/palignr_xmm_xmm_imm8.k index b28b23207..471323eac 100644 --- a/semantics/immediateInstructions/palignr_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/palignr_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module PALIGNR-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (palignr Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (palignr Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), extractMInt( getParentValue(R2, RSMap), 128, 256)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), uvalueMInt(mi(256, 3))))), 128, 256)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), extractMInt( getParentValue(R2, RSMap), 128, 256)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), Imm8), uvalueMInt(mi(256, 3))))), 128, 256)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pblendw_xmm_xmm_imm8.k b/semantics/immediateInstructions/pblendw_xmm_xmm_imm8.k index f4bdb29d0..a6b216eb6 100644 --- a/semantics/immediateInstructions/pblendw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pblendw_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module PBLENDW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pblendw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (pblendw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( getParentValue(R2, RSMap), 128, 144) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( getParentValue(R2, RSMap), 144, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( getParentValue(R2, RSMap), 160, 176) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( getParentValue(R2, RSMap), 176, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( getParentValue(R2, RSMap), 192, 208) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( getParentValue(R2, RSMap), 208, 224) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( getParentValue(R2, RSMap), 224, 240) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( getParentValue(R2, RSMap), 240, 256) #fi))))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( getParentValue(R2, RSMap), 128, 144) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( getParentValue(R2, RSMap), 144, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( getParentValue(R2, RSMap), 160, 176) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( getParentValue(R2, RSMap), 176, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( getParentValue(R2, RSMap), 192, 208) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( getParentValue(R2, RSMap), 208, 224) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( getParentValue(R2, RSMap), 224, 240) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( getParentValue(R2, RSMap), 240, 256) #fi))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pclmulqdq_xmm_xmm_imm8.k b/semantics/immediateInstructions/pclmulqdq_xmm_xmm_imm8.k index 300dac9b0..0853b148d 100644 --- a/semantics/immediateInstructions/pclmulqdq_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pclmulqdq_xmm_xmm_imm8.k @@ -49,15 +49,14 @@ module PCLMULQDQ-XMM-XMM-IMM8 TEMP2←SRC2 [127:64]; */ rule - execinstr (pclmulqdq Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => + execinstr (pclmulqdq Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => execinstr(pclmulqdq - selectSlice(getRegisterValue(R3, RSMap), handleImmediateWithSignExtend(Imm8, - 8, 8), 7, 64, 0), - selectSlice(getRegisterValue(R2, RSMap), handleImmediateWithSignExtend(Imm8, - 8, 8), 3, 64, 0), R3 + selectSlice(getRegisterValue(R3, RSMap), Imm8, 7, 64, 0), + selectSlice(getRegisterValue(R2, RSMap), Imm8, 3, 64, 0), R3 , .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (pclmulqdq TEMP1:MInt, TEMP2:MInt, R3:Xmm, .Operands) => diff --git a/semantics/immediateInstructions/pcmpestri_xmm_xmm_imm8.k b/semantics/immediateInstructions/pcmpestri_xmm_xmm_imm8.k index f5240fa90..e7f4be1ca 100644 --- a/semantics/immediateInstructions/pcmpestri_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pcmpestri_xmm_xmm_imm8.k @@ -6,16 +6,17 @@ module PCMPESTRI-XMM-XMM-IMM8 // Find Limit Index rule - execinstr (pcmpestri Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (pcmpestri Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (pcmpestri - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, getRegisterValue(Xmm2, RSMap), getRegisterValue(Xmm1, RSMap), - findLimitIndexE(getRegisterValue(Xmm2, RSMap), getRegisterValue(%rdx, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexE(getRegisterValue(Xmm2, RSMap), getRegisterValue(%rdx, RSMap), Imm8), + findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // pcmpestri 8'1 , 128'0 , 128'0 , 8'1 , 8'1 , 8'8 , 1'0 , 8'1 , .Operands diff --git a/semantics/immediateInstructions/pcmpestrm_xmm_xmm_imm8.k b/semantics/immediateInstructions/pcmpestrm_xmm_xmm_imm8.k index b3ece31d9..71661068d 100644 --- a/semantics/immediateInstructions/pcmpestrm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pcmpestrm_xmm_xmm_imm8.k @@ -6,16 +6,17 @@ module PCMPESTRM-XMM-XMM-IMM8 // Find Limit Index rule - execinstr (pcmpestrm Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (pcmpestrm Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (pcmpestrm - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, getRegisterValue(Xmm2, RSMap), getRegisterValue(Xmm1, RSMap), - findLimitIndexE(getRegisterValue(Xmm2, RSMap), getRegisterValue(%rdx, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexE(getRegisterValue(Xmm2, RSMap), getRegisterValue(%rdx, RSMap), Imm8), + findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/immediateInstructions/pcmpistri_xmm_xmm_imm8.k b/semantics/immediateInstructions/pcmpistri_xmm_xmm_imm8.k index ef5b1777b..5e8630969 100644 --- a/semantics/immediateInstructions/pcmpistri_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pcmpistri_xmm_xmm_imm8.k @@ -6,16 +6,17 @@ module PCMPISTRI-XMM-XMM-IMM8 // Find Limit Index rule - execinstr (pcmpistri Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (pcmpistri Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (pcmpistri - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, getRegisterValue(Xmm2, RSMap), getRegisterValue(Xmm1, RSMap), - findLimitIndexI(getRegisterValue(Xmm2, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexI(getRegisterValue(Xmm1, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexI(getRegisterValue(Xmm2, RSMap), Imm8), + findLimitIndexI(getRegisterValue(Xmm1, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/immediateInstructions/pcmpistrm_xmm_xmm_imm8.k b/semantics/immediateInstructions/pcmpistrm_xmm_xmm_imm8.k index 83616c053..5f54ea863 100644 --- a/semantics/immediateInstructions/pcmpistrm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pcmpistrm_xmm_xmm_imm8.k @@ -6,16 +6,17 @@ module PCMPISTRM-XMM-XMM-IMM8 // Find Limit Index rule - execinstr (pcmpistrm Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (pcmpistrm Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (pcmpistrm - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, getRegisterValue(Xmm2, RSMap), getRegisterValue(Xmm1, RSMap), - findLimitIndexI(getRegisterValue(Xmm2, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexI(getRegisterValue(Xmm1, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexI(getRegisterValue(Xmm2, RSMap), Imm8), + findLimitIndexI(getRegisterValue(Xmm1, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/immediateInstructions/pextrb_r32_xmm_imm8.k b/semantics/immediateInstructions/pextrb_r32_xmm_imm8.k index fcc0aac02..1e4e7e063 100644 --- a/semantics/immediateInstructions/pextrb_r32_xmm_imm8.k +++ b/semantics/immediateInstructions/pextrb_r32_xmm_imm8.k @@ -5,14 +5,15 @@ module PEXTRB-R32-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pextrb Imm8:Imm, R2:Xmm, R3:R32, .Operands) => . + execinstr (pextrb Imm8:MInt, R2:Xmm, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(56, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(56, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pextrb_r64_xmm_imm8.k b/semantics/immediateInstructions/pextrb_r64_xmm_imm8.k index c5a5d0f72..884104a0b 100644 --- a/semantics/immediateInstructions/pextrb_r64_xmm_imm8.k +++ b/semantics/immediateInstructions/pextrb_r64_xmm_imm8.k @@ -5,14 +5,15 @@ module PEXTRB-R64-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pextrb Imm8:Imm, R2:Xmm, R3:R64, .Operands) => . + execinstr (pextrb Imm8:MInt, R2:Xmm, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(56, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(56, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pextrd_r32_xmm_imm8.k b/semantics/immediateInstructions/pextrd_r32_xmm_imm8.k index d955bd640..95448d3b5 100644 --- a/semantics/immediateInstructions/pextrd_r32_xmm_imm8.k +++ b/semantics/immediateInstructions/pextrd_r32_xmm_imm8.k @@ -5,14 +5,15 @@ module PEXTRD-R32-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pextrd Imm8:Imm, R2:Xmm, R3:R32, .Operands) => . + execinstr (pextrd Imm8:MInt, R2:Xmm, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pextrq_r64_xmm_imm8.k b/semantics/immediateInstructions/pextrq_r64_xmm_imm8.k index 93a1a246b..9e2f02047 100644 --- a/semantics/immediateInstructions/pextrq_r64_xmm_imm8.k +++ b/semantics/immediateInstructions/pextrq_r64_xmm_imm8.k @@ -5,14 +5,15 @@ module PEXTRQ-R64-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pextrq Imm8:Imm, R2:Xmm, R3:R64, .Operands) => . + execinstr (pextrq Imm8:MInt, R2:Xmm, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))), 64, 128) +convToRegKeys(R3) |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))), 64, 128) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pextrw_r32_xmm_imm8.k b/semantics/immediateInstructions/pextrw_r32_xmm_imm8.k index 47edbf2b0..a8af52190 100644 --- a/semantics/immediateInstructions/pextrw_r32_xmm_imm8.k +++ b/semantics/immediateInstructions/pextrw_r32_xmm_imm8.k @@ -5,14 +5,15 @@ module PEXTRW-R32-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pextrw Imm8:Imm, R2:Xmm, R3:R32, .Operands) => . + execinstr (pextrw Imm8:MInt, R2:Xmm, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(48, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(48, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pextrw_r64_xmm_imm8.k b/semantics/immediateInstructions/pextrw_r64_xmm_imm8.k index 7d1b9d840..b4ad0a368 100644 --- a/semantics/immediateInstructions/pextrw_r64_xmm_imm8.k +++ b/semantics/immediateInstructions/pextrw_r64_xmm_imm8.k @@ -5,14 +5,15 @@ module PEXTRW-R64-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pextrw Imm8:Imm, R2:Xmm, R3:R64, .Operands) => . + execinstr (pextrw Imm8:MInt, R2:Xmm, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(48, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(48, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pinsrb_xmm_r32_imm8.k b/semantics/immediateInstructions/pinsrb_xmm_r32_imm8.k index bda1687b8..53c3ef516 100644 --- a/semantics/immediateInstructions/pinsrb_xmm_r32_imm8.k +++ b/semantics/immediateInstructions/pinsrb_xmm_r32_imm8.k @@ -5,14 +5,15 @@ module PINSRB-XMM-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (pinsrb Imm8:Imm, R2:R32, R3:Xmm, .Operands) => . + execinstr (pinsrb Imm8:MInt, R2:R32, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3)))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pinsrd_xmm_r32_imm8.k b/semantics/immediateInstructions/pinsrd_xmm_r32_imm8.k index 8a3be75ba..30f9332e3 100644 --- a/semantics/immediateInstructions/pinsrd_xmm_r32_imm8.k +++ b/semantics/immediateInstructions/pinsrd_xmm_r32_imm8.k @@ -5,14 +5,15 @@ module PINSRD-XMM-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (pinsrd Imm8:Imm, R2:R32, R3:Xmm, .Operands) => . + execinstr (pinsrd Imm8:MInt, R2:R32, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5)))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pinsrq_xmm_r64_imm8.k b/semantics/immediateInstructions/pinsrq_xmm_r64_imm8.k index 2d4809e9f..a29d34cb3 100644 --- a/semantics/immediateInstructions/pinsrq_xmm_r64_imm8.k +++ b/semantics/immediateInstructions/pinsrq_xmm_r64_imm8.k @@ -5,13 +5,14 @@ module PINSRQ-XMM-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (pinsrq Imm8:Imm, R2:R64, R3:Xmm .Operands) => . + execinstr (pinsrq Imm8:MInt, R2:R64, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(64, 0), getParentValue(R2, RSMap)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))), shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6)))))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(64, 0), getParentValue(R2, RSMap)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))), shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pinsrw_xmm_r32_imm8.k b/semantics/immediateInstructions/pinsrw_xmm_r32_imm8.k index 272fdcb42..ca70f970d 100644 --- a/semantics/immediateInstructions/pinsrw_xmm_r32_imm8.k +++ b/semantics/immediateInstructions/pinsrw_xmm_r32_imm8.k @@ -5,14 +5,15 @@ module PINSRW-XMM-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (pinsrw Imm8:Imm, R2:R32, R3:Xmm, .Operands) => . + execinstr (pinsrw Imm8:MInt, R2:R32, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4)))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pshufd_xmm_xmm_imm8.k b/semantics/immediateInstructions/pshufd_xmm_xmm_imm8.k index a554cd2b7..43d1089c6 100644 --- a/semantics/immediateInstructions/pshufd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pshufd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module PSHUFD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pshufd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (pshufd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pshufhw_xmm_xmm_imm8.k b/semantics/immediateInstructions/pshufhw_xmm_xmm_imm8.k index 978de61d5..3e0456fe3 100644 --- a/semantics/immediateInstructions/pshufhw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pshufhw_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module PSHUFHW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pshufhw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (pshufhw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 4))))), 48, 64), extractMInt( getParentValue(R2, RSMap), 192, 256)))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 4))))), 48, 64), extractMInt( getParentValue(R2, RSMap), 192, 256)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pshuflw_xmm_xmm_imm8.k b/semantics/immediateInstructions/pshuflw_xmm_xmm_imm8.k index 8c53a8222..09abf1203 100644 --- a/semantics/immediateInstructions/pshuflw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pshuflw_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module PSHUFLW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pshuflw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (pshuflw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 4))))), 112, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 4))))), 112, 128)))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 4))))), 112, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 4))))), 112, 128)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pslld_xmm_imm8.k b/semantics/immediateInstructions/pslld_xmm_imm8.k index 2bde9c34b..1195b4be7 100644 --- a/semantics/immediateInstructions/pslld_xmm_imm8.k +++ b/semantics/immediateInstructions/pslld_xmm_imm8.k @@ -5,14 +5,15 @@ module PSLLD-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pslld Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (pslld Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(128, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))) #fi)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(128, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), Imm8)))))) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pslldq_xmm_imm8.k b/semantics/immediateInstructions/pslldq_xmm_imm8.k index 6f44cfd8f..c365871eb 100644 --- a/semantics/immediateInstructions/pslldq_xmm_imm8.k +++ b/semantics/immediateInstructions/pslldq_xmm_imm8.k @@ -5,14 +5,15 @@ module PSLLDQ-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pslldq Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (pslldq Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), uvalueMInt(mi(128, 3)))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( Imm8, mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), Imm8) #fi), uvalueMInt(mi(128, 3)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/psllq_xmm_imm8.k b/semantics/immediateInstructions/psllq_xmm_imm8.k index ae6725194..9dce7d6cf 100644 --- a/semantics/immediateInstructions/psllq_xmm_imm8.k +++ b/semantics/immediateInstructions/psllq_xmm_imm8.k @@ -5,14 +5,15 @@ module PSLLQ-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (psllq Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (psllq Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)) #then mi(128, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))) #fi)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)) #then mi(128, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), Imm8)))) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/psllw_xmm_imm8.k b/semantics/immediateInstructions/psllw_xmm_imm8.k index b233d1eff..dc461e5e1 100644 --- a/semantics/immediateInstructions/psllw_xmm_imm8.k +++ b/semantics/immediateInstructions/psllw_xmm_imm8.k @@ -5,14 +5,15 @@ module PSLLW-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (psllw Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (psllw Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(128, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))))))) #fi)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(128, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), Imm8)))))))))) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/psrad_xmm_imm8.k b/semantics/immediateInstructions/psrad_xmm_imm8.k index d90474807..3f1defe46 100644 --- a/semantics/immediateInstructions/psrad_xmm_imm8.k +++ b/semantics/immediateInstructions/psrad_xmm_imm8.k @@ -5,14 +5,15 @@ module PSRAD-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (psrad Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (psrad Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/psraw_xmm_imm8.k b/semantics/immediateInstructions/psraw_xmm_imm8.k index 679082020..f9529c0ed 100644 --- a/semantics/immediateInstructions/psraw_xmm_imm8.k +++ b/semantics/immediateInstructions/psraw_xmm_imm8.k @@ -5,14 +5,15 @@ module PSRAW-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (psraw Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (psraw Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))))))))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/psrld_xmm_imm8.k b/semantics/immediateInstructions/psrld_xmm_imm8.k index 776ad7486..3580b50ed 100644 --- a/semantics/immediateInstructions/psrld_xmm_imm8.k +++ b/semantics/immediateInstructions/psrld_xmm_imm8.k @@ -5,14 +5,15 @@ module PSRLD-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (psrld Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (psrld Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(128, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))) #fi)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(128, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), Imm8)))))) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/psrldq_xmm_imm8.k b/semantics/immediateInstructions/psrldq_xmm_imm8.k index 9bcb50167..f08003628 100644 --- a/semantics/immediateInstructions/psrldq_xmm_imm8.k +++ b/semantics/immediateInstructions/psrldq_xmm_imm8.k @@ -5,14 +5,15 @@ module PSRLDQ-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (psrldq Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (psrldq Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), uvalueMInt(mi(128, 3)))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( Imm8, mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), Imm8) #fi), uvalueMInt(mi(128, 3)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/psrlq_xmm_imm8.k b/semantics/immediateInstructions/psrlq_xmm_imm8.k index 978a3fccf..023b4a50e 100644 --- a/semantics/immediateInstructions/psrlq_xmm_imm8.k +++ b/semantics/immediateInstructions/psrlq_xmm_imm8.k @@ -5,14 +5,15 @@ module PSRLQ-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (psrlq Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (psrlq Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)) #then mi(128, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))) #fi)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)) #then mi(128, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), Imm8)))) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/psrlw_xmm_imm8.k b/semantics/immediateInstructions/psrlw_xmm_imm8.k index 6886c12b8..67ccc89a2 100644 --- a/semantics/immediateInstructions/psrlw_xmm_imm8.k +++ b/semantics/immediateInstructions/psrlw_xmm_imm8.k @@ -5,14 +5,15 @@ module PSRLW-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (psrlw Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (psrlw Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(128, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))))))) #fi)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(128, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), Imm8)))))))))) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pushq_imm32.k b/semantics/immediateInstructions/pushq_imm32.k index 143e8b115..08b4e40fd 100644 --- a/semantics/immediateInstructions/pushq_imm32.k +++ b/semantics/immediateInstructions/pushq_imm32.k @@ -11,12 +11,13 @@ module PUSHQ-IMM32 imports X86-CONFIGURATION rule - execinstr (pushq Imm32:Imm, .Operands) => + execinstr (pushq Imm32:MInt, .Operands) => storeToMemory( - handleImmediateWithSignExtend(Imm32, 32, 64), + signExtend(Imm32, 64), subMInt(getRegisterValue(%rsp, RSMap), mi(64, 8)), 64) ~> decRSPInBytes(8) ... RSMap + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/rclb_r8_imm8.k b/semantics/immediateInstructions/rclb_r8_imm8.k index 5913211ac..aeefc7462 100644 --- a/semantics/immediateInstructions/rclb_r8_imm8.k +++ b/semantics/immediateInstructions/rclb_r8_imm8.k @@ -5,18 +5,19 @@ module RCLB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (rclb Imm8:Imm, R2:R8, .Operands) => . + execinstr (rclb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 9)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 9)) -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rclb_rh_imm8.k b/semantics/immediateInstructions/rclb_rh_imm8.k index b2c83cd3a..e7e153a83 100644 --- a/semantics/immediateInstructions/rclb_rh_imm8.k +++ b/semantics/immediateInstructions/rclb_rh_imm8.k @@ -5,18 +5,19 @@ module RCLB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (rclb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (rclb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rcll_r32_imm8.k b/semantics/immediateInstructions/rcll_r32_imm8.k index 55e61300a..3101cb06a 100644 --- a/semantics/immediateInstructions/rcll_r32_imm8.k +++ b/semantics/immediateInstructions/rcll_r32_imm8.k @@ -5,18 +5,19 @@ module RCLL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (rcll Imm8:Imm, R2:R32, .Operands) => . + execinstr (rcll Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 1, 33)) -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rclq_r64_imm8.k b/semantics/immediateInstructions/rclq_r64_imm8.k index 6db2c8413..13acfe879 100644 --- a/semantics/immediateInstructions/rclq_r64_imm8.k +++ b/semantics/immediateInstructions/rclq_r64_imm8.k @@ -5,18 +5,19 @@ module RCLQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (rclq Imm8:Imm, R2:R64, .Operands) => . + execinstr (rclq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 1, 65) +convToRegKeys(R2) |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 1, 65) -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rclw_r16_imm8.k b/semantics/immediateInstructions/rclw_r16_imm8.k index 9e404c89b..e95041838 100644 --- a/semantics/immediateInstructions/rclw_r16_imm8.k +++ b/semantics/immediateInstructions/rclw_r16_imm8.k @@ -5,18 +5,19 @@ module RCLW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (rclw Imm8:Imm, R2:R16, .Operands) => . + execinstr (rclw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 1, 17)) -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rcrb_r8_imm8.k b/semantics/immediateInstructions/rcrb_r8_imm8.k index 1c33bd062..8e92aec8e 100644 --- a/semantics/immediateInstructions/rcrb_r8_imm8.k +++ b/semantics/immediateInstructions/rcrb_r8_imm8.k @@ -5,18 +5,19 @@ module RCRB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (rcrb Imm8:Imm, R2:R8, .Operands) => . + execinstr (rcrb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 9)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 9)) -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rcrb_rh_imm8.k b/semantics/immediateInstructions/rcrb_rh_imm8.k index a85daf27c..e72b8197c 100644 --- a/semantics/immediateInstructions/rcrb_rh_imm8.k +++ b/semantics/immediateInstructions/rcrb_rh_imm8.k @@ -5,18 +5,19 @@ module RCRB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (rcrb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (rcrb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rcrl_r32_imm8.k b/semantics/immediateInstructions/rcrl_r32_imm8.k index 9679a672b..f97273ee8 100644 --- a/semantics/immediateInstructions/rcrl_r32_imm8.k +++ b/semantics/immediateInstructions/rcrl_r32_imm8.k @@ -5,18 +5,19 @@ module RCRL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (rcrl Imm8:Imm, R2:R32, .Operands) => . + execinstr (rcrl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 1, 33)) -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rcrq_r64_imm8.k b/semantics/immediateInstructions/rcrq_r64_imm8.k index 07b09df9a..432f62fde 100644 --- a/semantics/immediateInstructions/rcrq_r64_imm8.k +++ b/semantics/immediateInstructions/rcrq_r64_imm8.k @@ -5,18 +5,19 @@ module RCRQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (rcrq Imm8:Imm, R2:R64, .Operands) => . + execinstr (rcrq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 1, 65) +convToRegKeys(R2) |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 1, 65) -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rcrw_r16_imm8.k b/semantics/immediateInstructions/rcrw_r16_imm8.k index f55eb46d2..b245ac699 100644 --- a/semantics/immediateInstructions/rcrw_r16_imm8.k +++ b/semantics/immediateInstructions/rcrw_r16_imm8.k @@ -5,18 +5,19 @@ module RCRW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (rcrw Imm8:Imm, R2:R16, .Operands) => . + execinstr (rcrw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 1, 17)) -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rolb_r8_imm8.k b/semantics/immediateInstructions/rolb_r8_imm8.k index a7f9e8fef..d697829d7 100644 --- a/semantics/immediateInstructions/rolb_r8_imm8.k +++ b/semantics/immediateInstructions/rolb_r8_imm8.k @@ -5,18 +5,19 @@ module ROLB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (rolb Imm8:Imm, R2:R8, .Operands) => . + execinstr (rolb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), rol( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), rol( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( Imm8, mi(8, 31)))) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 7, 8), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( Imm8, mi(8, 31))), 7, 8), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 7, 8), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( Imm8, mi(8, 31))), 7, 8), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rolb_rh_imm8.k b/semantics/immediateInstructions/rolb_rh_imm8.k index 8c0a498c8..ccbadbef3 100644 --- a/semantics/immediateInstructions/rolb_rh_imm8.k +++ b/semantics/immediateInstructions/rolb_rh_imm8.k @@ -5,18 +5,19 @@ module ROLB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (rolb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (rolb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), rol( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), rol( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( Imm8, mi(8, 31)))), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 7, 8), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( Imm8, mi(8, 31))), 7, 8), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 7, 8), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( Imm8, mi(8, 31))), 7, 8), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/roll_r32_imm8.k b/semantics/immediateInstructions/roll_r32_imm8.k index c296aea97..8fef9cbdf 100644 --- a/semantics/immediateInstructions/roll_r32_imm8.k +++ b/semantics/immediateInstructions/roll_r32_imm8.k @@ -5,18 +5,19 @@ module ROLL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (roll Imm8:Imm, R2:R32, .Operands) => . + execinstr (roll Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), rol( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), rol( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31))))) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 31, 32), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 31, 32), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 31, 32), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 31, 32), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rolq_r64_imm8.k b/semantics/immediateInstructions/rolq_r64_imm8.k index 429dd98c4..2017e2538 100644 --- a/semantics/immediateInstructions/rolq_r64_imm8.k +++ b/semantics/immediateInstructions/rolq_r64_imm8.k @@ -5,18 +5,19 @@ module ROLQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (rolq Imm8:Imm, R2:R64, .Operands) => . + execinstr (rolq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> rol( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))) +convToRegKeys(R2) |-> rol( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( rol( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 63, 64), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( rol( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 63, 64), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 63, 64), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 63, 64), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rolw_r16_imm8.k b/semantics/immediateInstructions/rolw_r16_imm8.k index 609fe7062..7a26343f5 100644 --- a/semantics/immediateInstructions/rolw_r16_imm8.k +++ b/semantics/immediateInstructions/rolw_r16_imm8.k @@ -5,18 +5,19 @@ module ROLW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (rolw Imm8:Imm, R2:R16, .Operands) => . + execinstr (rolw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), rol( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), rol( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31))))) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 15, 16), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 15, 16), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 15, 16), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 15, 16), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rorb_r8_imm8.k b/semantics/immediateInstructions/rorb_r8_imm8.k index ccb445c16..6b68e25b3 100644 --- a/semantics/immediateInstructions/rorb_r8_imm8.k +++ b/semantics/immediateInstructions/rorb_r8_imm8.k @@ -5,18 +5,19 @@ module RORB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (rorb Imm8:Imm, R2:R8, .Operands) => . + execinstr (rorb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), ror( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), ror( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( Imm8, mi(8, 31)))) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( Imm8, mi(8, 31))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rorb_rh_imm8.k b/semantics/immediateInstructions/rorb_rh_imm8.k index 82fccc58e..052e5e515 100644 --- a/semantics/immediateInstructions/rorb_rh_imm8.k +++ b/semantics/immediateInstructions/rorb_rh_imm8.k @@ -5,18 +5,19 @@ module RORB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (rorb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (rorb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), ror( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), ror( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( Imm8, mi(8, 31)))), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( Imm8, mi(8, 31))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rorl_r32_imm8.k b/semantics/immediateInstructions/rorl_r32_imm8.k index 357200c7b..5cc890f4e 100644 --- a/semantics/immediateInstructions/rorl_r32_imm8.k +++ b/semantics/immediateInstructions/rorl_r32_imm8.k @@ -5,18 +5,19 @@ module RORL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (rorl Imm8:Imm, R2:R32, .Operands) => . + execinstr (rorl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), ror( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), ror( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31))))) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rorq_r64_imm8.k b/semantics/immediateInstructions/rorq_r64_imm8.k index da211c3f5..562b26a64 100644 --- a/semantics/immediateInstructions/rorq_r64_imm8.k +++ b/semantics/immediateInstructions/rorq_r64_imm8.k @@ -5,18 +5,19 @@ module RORQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (rorq Imm8:Imm, R2:R64, .Operands) => . + execinstr (rorq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> ror( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))) +convToRegKeys(R2) |-> ror( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( ror( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( ror( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rorw_r16_imm8.k b/semantics/immediateInstructions/rorw_r16_imm8.k index d1236b28a..fd8e8c85f 100644 --- a/semantics/immediateInstructions/rorw_r16_imm8.k +++ b/semantics/immediateInstructions/rorw_r16_imm8.k @@ -5,18 +5,19 @@ module RORW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (rorw Imm8:Imm, R2:R16, .Operands) => . + execinstr (rorw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), ror( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), ror( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31))))) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rorxl_r32_r32_imm8.k b/semantics/immediateInstructions/rorxl_r32_r32_imm8.k index bfe177a88..b76598261 100644 --- a/semantics/immediateInstructions/rorxl_r32_r32_imm8.k +++ b/semantics/immediateInstructions/rorxl_r32_r32_imm8.k @@ -5,17 +5,18 @@ module RORXL-R32-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (rorx Imm8:Imm, R2:R32, R3:R32, .Operands) => execinstr (rorxl Imm8:Imm, R2:R32, R3:R32, .Operands) + execinstr (rorx Imm8:MInt, R2:R32, R3:R32, .Operands) => execinstr (rorxl Imm8:MInt, R2:R32, R3:R32, .Operands) ... rule - execinstr (rorxl Imm8:Imm, R2:R32, R3:R32, .Operands) => . + execinstr (rorxl Imm8:MInt, R2:R32, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), orMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(andMInt( concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(32, 31)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(subMInt( mi(32, 32), andMInt( concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(32, 31))))))) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), orMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(andMInt( concatenateMInt( mi(24, 0), Imm8), mi(32, 31)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(subMInt( mi(32, 32), andMInt( concatenateMInt( mi(24, 0), Imm8), mi(32, 31))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rorxq_r64_r64_imm8.k b/semantics/immediateInstructions/rorxq_r64_r64_imm8.k index 9fd93462f..8f983cc46 100644 --- a/semantics/immediateInstructions/rorxq_r64_r64_imm8.k +++ b/semantics/immediateInstructions/rorxq_r64_r64_imm8.k @@ -5,18 +5,19 @@ module RORXQ-R64-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (rorx Imm8:Imm, R2:R64, R3:R64, .Operands) => execinstr (rorxq Imm8:Imm, R2:R64, R3:R64, .Operands) + execinstr (rorx Imm8:MInt, R2:R64, R3:R64, .Operands) => execinstr (rorxq Imm8:MInt, R2:R64, R3:R64, .Operands) ... rule - execinstr (rorxq Imm8:Imm, R2:R64, R3:R64, .Operands) => . + execinstr (rorxq Imm8:MInt, R2:R64, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> orMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(andMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)))), shiftLeftMInt( getParentValue(R2, RSMap), uvalueMInt(subMInt( mi(64, 64), andMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)))))) +convToRegKeys(R3) |-> orMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(andMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)))), shiftLeftMInt( getParentValue(R2, RSMap), uvalueMInt(subMInt( mi(64, 64), andMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/roundpd_xmm_xmm_imm8.k b/semantics/immediateInstructions/roundpd_xmm_xmm_imm8.k index 3d905be1e..64d633062 100644 --- a/semantics/immediateInstructions/roundpd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/roundpd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module ROUNDPD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (roundpd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (roundpd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 128, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 128, 192), Imm8), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/roundps_xmm_xmm_imm8.k b/semantics/immediateInstructions/roundps_xmm_xmm_imm8.k index 01122c836..2b65954aa 100644 --- a/semantics/immediateInstructions/roundps_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/roundps_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module ROUNDPS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (roundps Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (roundps Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/roundsd_xmm_xmm_imm8.k b/semantics/immediateInstructions/roundsd_xmm_xmm_imm8.k index ac19aef92..b9a39369a 100644 --- a/semantics/immediateInstructions/roundsd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/roundsd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module ROUNDSD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (roundsd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (roundsd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 192), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 192), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/roundss_xmm_xmm_imm8.k b/semantics/immediateInstructions/roundss_xmm_xmm_imm8.k index 1b4627a59..c9cb2ebcd 100644 --- a/semantics/immediateInstructions/roundss_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/roundss_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module ROUNDSS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (roundss Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (roundss Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 224), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 224), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/salb_r8_imm8.k b/semantics/immediateInstructions/salb_r8_imm8.k index eb1b8d658..731d7b207 100644 --- a/semantics/immediateInstructions/salb_r8_imm8.k +++ b/semantics/immediateInstructions/salb_r8_imm8.k @@ -5,26 +5,27 @@ module SALB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (salb Imm8:Imm, R2:R8, .Operands) => . + execinstr (salb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/salb_rh_imm8.k b/semantics/immediateInstructions/salb_rh_imm8.k index 18f26de8b..481c601af 100644 --- a/semantics/immediateInstructions/salb_rh_imm8.k +++ b/semantics/immediateInstructions/salb_rh_imm8.k @@ -5,26 +5,27 @@ module SALB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (salb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (salb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sall_r32_imm8.k b/semantics/immediateInstructions/sall_r32_imm8.k index bd70d5bca..fc371c96a 100644 --- a/semantics/immediateInstructions/sall_r32_imm8.k +++ b/semantics/immediateInstructions/sall_r32_imm8.k @@ -5,26 +5,27 @@ module SALL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (sall Imm8:Imm, R2:R32, .Operands) => . + execinstr (sall Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 33)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/salq_r64_imm8.k b/semantics/immediateInstructions/salq_r64_imm8.k index a97ab3904..b6a9da66f 100644 --- a/semantics/immediateInstructions/salq_r64_imm8.k +++ b/semantics/immediateInstructions/salq_r64_imm8.k @@ -5,26 +5,27 @@ module SALQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (salq Imm8:Imm, R2:R64, .Operands) => . + execinstr (salq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 65) +convToRegKeys(R2) |-> extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 65) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 57, 58), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 57, 58), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 65), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 65), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/salw_r16_imm8.k b/semantics/immediateInstructions/salw_r16_imm8.k index daf6db4bc..3b91e6f6c 100644 --- a/semantics/immediateInstructions/salw_r16_imm8.k +++ b/semantics/immediateInstructions/salw_r16_imm8.k @@ -5,26 +5,27 @@ module SALW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (salw Imm8:Imm, R2:R16, .Operands) => . + execinstr (salw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 17)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 9, 10), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 9, 10), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 17), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 17), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sarb_r8_imm8.k b/semantics/immediateInstructions/sarb_r8_imm8.k index aaa4f3119..33b127101 100644 --- a/semantics/immediateInstructions/sarb_r8_imm8.k +++ b/semantics/immediateInstructions/sarb_r8_imm8.k @@ -5,26 +5,27 @@ module SARB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (sarb Imm8:Imm, R2:R8, .Operands) => . + execinstr (sarb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8)) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sarb_rh_imm8.k b/semantics/immediateInstructions/sarb_rh_imm8.k index a2bbb2422..484dbfa75 100644 --- a/semantics/immediateInstructions/sarb_rh_imm8.k +++ b/semantics/immediateInstructions/sarb_rh_imm8.k @@ -5,26 +5,27 @@ module SARB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (sarb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (sarb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sarl_r32_imm8.k b/semantics/immediateInstructions/sarl_r32_imm8.k index 3c8ca235a..1d500a865 100644 --- a/semantics/immediateInstructions/sarl_r32_imm8.k +++ b/semantics/immediateInstructions/sarl_r32_imm8.k @@ -5,26 +5,27 @@ module SARL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (sarl Imm8:Imm, R2:R32, .Operands) => . + execinstr (sarl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 32)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 32)) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 32, 33), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 32, 33), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sarq_r64_imm8.k b/semantics/immediateInstructions/sarq_r64_imm8.k index abe87b6c5..c1ddcbc44 100644 --- a/semantics/immediateInstructions/sarq_r64_imm8.k +++ b/semantics/immediateInstructions/sarq_r64_imm8.k @@ -5,26 +5,27 @@ module SARQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (sarq Imm8:Imm, R2:R64, .Operands) => . + execinstr (sarq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 64) +convToRegKeys(R2) |-> extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 64) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 64, 65), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 64, 65), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 63, 64), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 57, 58), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 56, 57), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 63, 64), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 57, 58), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 56, 57), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 64), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 64), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sarw_r16_imm8.k b/semantics/immediateInstructions/sarw_r16_imm8.k index b95200220..47c91a2eb 100644 --- a/semantics/immediateInstructions/sarw_r16_imm8.k +++ b/semantics/immediateInstructions/sarw_r16_imm8.k @@ -5,26 +5,27 @@ module SARW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (sarw Imm8:Imm, R2:R16, .Operands) => . + execinstr (sarw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 16)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 16)) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 16, 17), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 16, 17), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 15, 16), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 9, 10), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 15, 16), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 9, 10), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 16), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 16), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sbbb_al_imm8.k b/semantics/immediateInstructions/sbbb_al_imm8.k index b284f3086..7aa8d8a4a 100644 --- a/semantics/immediateInstructions/sbbb_al_imm8.k +++ b/semantics/immediateInstructions/sbbb_al_imm8.k @@ -5,26 +5,27 @@ module SBBB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (sbbb Imm8:Imm, %al, .Operands) => . + execinstr (sbbb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9)) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sbbb_r8_imm8.k b/semantics/immediateInstructions/sbbb_r8_imm8.k index da7c9cc6f..02f1b4a23 100644 --- a/semantics/immediateInstructions/sbbb_r8_imm8.k +++ b/semantics/immediateInstructions/sbbb_r8_imm8.k @@ -5,26 +5,27 @@ module SBBB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (sbbb Imm8:Imm, R2:R8, .Operands) => . + execinstr (sbbb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sbbb_rh_imm8.k b/semantics/immediateInstructions/sbbb_rh_imm8.k index aa2791741..cf51a6ad0 100644 --- a/semantics/immediateInstructions/sbbb_rh_imm8.k +++ b/semantics/immediateInstructions/sbbb_rh_imm8.k @@ -5,26 +5,27 @@ module SBBB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (sbbb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (sbbb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sbbl_eax_imm32.k b/semantics/immediateInstructions/sbbl_eax_imm32.k index 144e8571d..2f8281dcb 100644 --- a/semantics/immediateInstructions/sbbl_eax_imm32.k +++ b/semantics/immediateInstructions/sbbl_eax_imm32.k @@ -5,26 +5,27 @@ module SBBL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (sbbl Imm32:Imm, %eax, .Operands) => . + execinstr (sbbl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33)) +"RAX" |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/sbbl_r32_imm32.k b/semantics/immediateInstructions/sbbl_r32_imm32.k index 4cea53199..c84bf62d0 100644 --- a/semantics/immediateInstructions/sbbl_r32_imm32.k +++ b/semantics/immediateInstructions/sbbl_r32_imm32.k @@ -5,26 +5,27 @@ module SBBL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (sbbl Imm32:Imm, R2:R32, .Operands) => . + execinstr (sbbl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/sbbl_r32_imm8.k b/semantics/immediateInstructions/sbbl_r32_imm8.k index b87231fa8..0dbacb0a0 100644 --- a/semantics/immediateInstructions/sbbl_r32_imm8.k +++ b/semantics/immediateInstructions/sbbl_r32_imm8.k @@ -5,26 +5,27 @@ module SBBL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (sbbl Imm8:Imm, R2:R32, .Operands) => . + execinstr (sbbl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sbbq_r64_imm32.k b/semantics/immediateInstructions/sbbq_r64_imm32.k index 1bdf5cf0a..7ff40a0a7 100644 --- a/semantics/immediateInstructions/sbbq_r64_imm32.k +++ b/semantics/immediateInstructions/sbbq_r64_imm32.k @@ -5,26 +5,27 @@ module SBBQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (sbbq Imm32:Imm, R2:R64, .Operands) => . + execinstr (sbbq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) +convToRegKeys(R2) |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/sbbq_r64_imm8.k b/semantics/immediateInstructions/sbbq_r64_imm8.k index a6e618e39..4d44c0e40 100644 --- a/semantics/immediateInstructions/sbbq_r64_imm8.k +++ b/semantics/immediateInstructions/sbbq_r64_imm8.k @@ -5,26 +5,27 @@ module SBBQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (sbbq Imm8:Imm, R2:R64, .Operands) => . + execinstr (sbbq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) +convToRegKeys(R2) |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sbbq_rax_imm32.k b/semantics/immediateInstructions/sbbq_rax_imm32.k index 5f33798ee..9568a36fb 100644 --- a/semantics/immediateInstructions/sbbq_rax_imm32.k +++ b/semantics/immediateInstructions/sbbq_rax_imm32.k @@ -5,26 +5,27 @@ module SBBQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (sbbq Imm32:Imm, %rax, .Operands) => . + execinstr (sbbq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65) +"RAX" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/sbbw_ax_imm16.k b/semantics/immediateInstructions/sbbw_ax_imm16.k index a8c2c5bd3..758b25a49 100644 --- a/semantics/immediateInstructions/sbbw_ax_imm16.k +++ b/semantics/immediateInstructions/sbbw_ax_imm16.k @@ -5,26 +5,27 @@ module SBBW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (sbbw Imm16:Imm, %ax, .Operands) => . + execinstr (sbbw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17)) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/sbbw_r16_imm16.k b/semantics/immediateInstructions/sbbw_r16_imm16.k index 251a054d1..6d0ae3c6d 100644 --- a/semantics/immediateInstructions/sbbw_r16_imm16.k +++ b/semantics/immediateInstructions/sbbw_r16_imm16.k @@ -5,26 +5,27 @@ module SBBW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (sbbw Imm16:Imm, R2:R16, .Operands) => . + execinstr (sbbw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/sbbw_r16_imm8.k b/semantics/immediateInstructions/sbbw_r16_imm8.k index 0c9f975b2..3aeb7dd7d 100644 --- a/semantics/immediateInstructions/sbbw_r16_imm8.k +++ b/semantics/immediateInstructions/sbbw_r16_imm8.k @@ -5,26 +5,27 @@ module SBBW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (sbbw Imm8:Imm, R2:R16, .Operands) => . + execinstr (sbbw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shlb_r8_imm8.k b/semantics/immediateInstructions/shlb_r8_imm8.k index 0174e9636..4040f4247 100644 --- a/semantics/immediateInstructions/shlb_r8_imm8.k +++ b/semantics/immediateInstructions/shlb_r8_imm8.k @@ -5,26 +5,27 @@ module SHLB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (shlb Imm8:Imm, R2:R8, .Operands) => . + execinstr (shlb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shlb_rh_imm8.k b/semantics/immediateInstructions/shlb_rh_imm8.k index bfd30eb44..3e65a2faa 100644 --- a/semantics/immediateInstructions/shlb_rh_imm8.k +++ b/semantics/immediateInstructions/shlb_rh_imm8.k @@ -5,26 +5,27 @@ module SHLB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (shlb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (shlb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shldl_r32_r32_imm8.k b/semantics/immediateInstructions/shldl_r32_r32_imm8.k index 4671643c0..9bcbd4c3d 100644 --- a/semantics/immediateInstructions/shldl_r32_r32_imm8.k +++ b/semantics/immediateInstructions/shldl_r32_r32_imm8.k @@ -5,11 +5,12 @@ module SHLDL-R32-R32 imports X86-CONFIGURATION rule - execinstr (shldl Imm8:Imm, R2:R32, R1:R32, .Operands) => + execinstr (shldl Imm8:MInt, R2:R32, R1:R32, .Operands) => execinstr (shldl R1, getRegisterValue(R1, RSMap), getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 32), .Operands) + shiftCountMask(Imm8, 32), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shldl R, MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => diff --git a/semantics/immediateInstructions/shldq_r64_r64_imm8.k b/semantics/immediateInstructions/shldq_r64_r64_imm8.k index d0ec22d65..c37d6046e 100644 --- a/semantics/immediateInstructions/shldq_r64_r64_imm8.k +++ b/semantics/immediateInstructions/shldq_r64_r64_imm8.k @@ -5,11 +5,12 @@ module SHLDQ-R64-R64 imports X86-CONFIGURATION rule - execinstr (shldq Imm8:Imm, R2:R64, R1:R64, .Operands) => + execinstr (shldq Imm8:MInt, R2:R64, R1:R64, .Operands) => execinstr (shldq R1, getRegisterValue(R1, RSMap), getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 64), .Operands) + shiftCountMask(Imm8, 64), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shldq R, MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/immediateInstructions/shldw_r16_r16_imm8.k b/semantics/immediateInstructions/shldw_r16_r16_imm8.k index 184331886..a0ec3d9eb 100644 --- a/semantics/immediateInstructions/shldw_r16_r16_imm8.k +++ b/semantics/immediateInstructions/shldw_r16_r16_imm8.k @@ -5,11 +5,12 @@ module SHLDW-R16-R16 imports X86-CONFIGURATION rule - execinstr (shldw Imm8:Imm, R2:R16, R1:R16, .Operands) => + execinstr (shldw Imm8:MInt, R2:R16, R1:R16, .Operands) => execinstr (shldw R1, getRegisterValue(R1, RSMap), getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 32), .Operands) + shiftCountMask(Imm8, 32), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shldw R, MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/immediateInstructions/shll_r32_imm8.k b/semantics/immediateInstructions/shll_r32_imm8.k index 4e7ca5115..96e44fdec 100644 --- a/semantics/immediateInstructions/shll_r32_imm8.k +++ b/semantics/immediateInstructions/shll_r32_imm8.k @@ -5,26 +5,27 @@ module SHLL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (shll Imm8:Imm, R2:R32, .Operands) => . + execinstr (shll Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 33)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shlq_r64_imm8.k b/semantics/immediateInstructions/shlq_r64_imm8.k index b48fe11d4..97e23d1e6 100644 --- a/semantics/immediateInstructions/shlq_r64_imm8.k +++ b/semantics/immediateInstructions/shlq_r64_imm8.k @@ -5,26 +5,27 @@ module SHLQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (shlq Imm8:Imm, R2:R64, .Operands) => . + execinstr (shlq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 65) +convToRegKeys(R2) |-> extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 65) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 57, 58), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 57, 58), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 65), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 65), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shlw_r16_imm8.k b/semantics/immediateInstructions/shlw_r16_imm8.k index 55df900af..26db433cf 100644 --- a/semantics/immediateInstructions/shlw_r16_imm8.k +++ b/semantics/immediateInstructions/shlw_r16_imm8.k @@ -5,26 +5,27 @@ module SHLW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (shlw Imm8:Imm, R2:R16, .Operands) => . + execinstr (shlw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 17)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 9, 10), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 9, 10), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 17), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 17), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shrb_r8_imm8.k b/semantics/immediateInstructions/shrb_r8_imm8.k index 3b8d8c479..107f7f7fb 100644 --- a/semantics/immediateInstructions/shrb_r8_imm8.k +++ b/semantics/immediateInstructions/shrb_r8_imm8.k @@ -5,26 +5,27 @@ module SHRB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (shrb Imm8:Imm, R2:R8, .Operands) => . + execinstr (shrb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shrb_rh_imm8.k b/semantics/immediateInstructions/shrb_rh_imm8.k index 2a21f3d61..b71d3a547 100644 --- a/semantics/immediateInstructions/shrb_rh_imm8.k +++ b/semantics/immediateInstructions/shrb_rh_imm8.k @@ -5,26 +5,27 @@ module SHRB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (shrb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (shrb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shrdl_r32_r32_imm8.k b/semantics/immediateInstructions/shrdl_r32_r32_imm8.k index b005bfa99..69ffe4181 100644 --- a/semantics/immediateInstructions/shrdl_r32_r32_imm8.k +++ b/semantics/immediateInstructions/shrdl_r32_r32_imm8.k @@ -5,11 +5,12 @@ module SHRDL-R32-R32 imports X86-CONFIGURATION rule - execinstr (shrdl Imm8:Imm, R2:R32, R1:R32, .Operands) => + execinstr (shrdl Imm8:MInt, R2:R32, R1:R32, .Operands) => execinstr (shrdl R1, getRegisterValue(R1, RSMap), getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 32), .Operands) + shiftCountMask(Imm8, 32), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shrdl R, MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => diff --git a/semantics/immediateInstructions/shrdq_r64_r64_imm8.k b/semantics/immediateInstructions/shrdq_r64_r64_imm8.k index b3758651a..8186aa980 100644 --- a/semantics/immediateInstructions/shrdq_r64_r64_imm8.k +++ b/semantics/immediateInstructions/shrdq_r64_r64_imm8.k @@ -5,11 +5,12 @@ module SHLDQ-R64-R64 imports X86-CONFIGURATION rule - execinstr (shrdq Imm8:Imm, R2:R64, R1:R64, .Operands) => + execinstr (shrdq Imm8:MInt, R2:R64, R1:R64, .Operands) => execinstr (shrdq R1, getRegisterValue(R1, RSMap), getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 64), .Operands) + shiftCountMask(Imm8, 64), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shrdq R, MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/immediateInstructions/shrdw_r16_r16_imm8.k b/semantics/immediateInstructions/shrdw_r16_r16_imm8.k index 85326f59b..bf4ba14cb 100644 --- a/semantics/immediateInstructions/shrdw_r16_r16_imm8.k +++ b/semantics/immediateInstructions/shrdw_r16_r16_imm8.k @@ -5,11 +5,12 @@ module SHLDW-R16-R16 imports X86-CONFIGURATION rule - execinstr (shrdw Imm8:Imm, R2:R16, R1:R16, .Operands) => + execinstr (shrdw Imm8:MInt, R2:R16, R1:R16, .Operands) => execinstr (shrdw R1, getRegisterValue(R1, RSMap), getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 32), .Operands) + shiftCountMask(Imm8, 32), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shrdw R, MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/immediateInstructions/shrl_r32_imm8.k b/semantics/immediateInstructions/shrl_r32_imm8.k index 09e799d00..db234d059 100644 --- a/semantics/immediateInstructions/shrl_r32_imm8.k +++ b/semantics/immediateInstructions/shrl_r32_imm8.k @@ -5,26 +5,27 @@ module SHRL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (shrl Imm8:Imm, R2:R32, .Operands) => . + execinstr (shrl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 32)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 32)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 32, 33), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 32, 33), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shrq_r64_imm8.k b/semantics/immediateInstructions/shrq_r64_imm8.k index 4333f654e..b8fc04b9b 100644 --- a/semantics/immediateInstructions/shrq_r64_imm8.k +++ b/semantics/immediateInstructions/shrq_r64_imm8.k @@ -5,26 +5,27 @@ module SHRQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (shrq Imm8:Imm, R2:R64, .Operands) => . + execinstr (shrq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 64) +convToRegKeys(R2) |-> extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 64) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 64, 65), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 64, 65), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 63, 64), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 57, 58), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 56, 57), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 63, 64), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 57, 58), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 56, 57), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 64), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 64), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shrw_r16_imm8.k b/semantics/immediateInstructions/shrw_r16_imm8.k index 6770d033b..44c8c50a9 100644 --- a/semantics/immediateInstructions/shrw_r16_imm8.k +++ b/semantics/immediateInstructions/shrw_r16_imm8.k @@ -5,26 +5,27 @@ module SHRW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (shrw Imm8:Imm, R2:R16, .Operands) => . + execinstr (shrw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 16)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 16)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 16, 17), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 16, 17), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 15, 16), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 9, 10), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 15, 16), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 9, 10), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 16), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 16), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shufpd_xmm_xmm_imm8.k b/semantics/immediateInstructions/shufpd_xmm_xmm_imm8.k index c86790412..cd66af7db 100644 --- a/semantics/immediateInstructions/shufpd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/shufpd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module SHUFPD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (shufpd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (shufpd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shufps_xmm_xmm_imm8.k b/semantics/immediateInstructions/shufps_xmm_xmm_imm8.k index 5c6a1c7f4..5db83df0e 100644 --- a/semantics/immediateInstructions/shufps_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/shufps_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module SHUFPS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (shufps Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (shufps Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/subb_al_imm8.k b/semantics/immediateInstructions/subb_al_imm8.k index 618562cae..a8b857ea8 100644 --- a/semantics/immediateInstructions/subb_al_imm8.k +++ b/semantics/immediateInstructions/subb_al_imm8.k @@ -5,26 +5,27 @@ module SUBB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (subb Imm8:Imm, %al, .Operands) => . + execinstr (subb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9)) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/subb_r8_imm8.k b/semantics/immediateInstructions/subb_r8_imm8.k index 387d456f2..a43a7548d 100644 --- a/semantics/immediateInstructions/subb_r8_imm8.k +++ b/semantics/immediateInstructions/subb_r8_imm8.k @@ -5,26 +5,27 @@ module SUBB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (subb Imm8:Imm, R2:R8, .Operands) => . + execinstr (subb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/subb_rh_imm8.k b/semantics/immediateInstructions/subb_rh_imm8.k index e543de998..7c245cf10 100644 --- a/semantics/immediateInstructions/subb_rh_imm8.k +++ b/semantics/immediateInstructions/subb_rh_imm8.k @@ -5,26 +5,27 @@ module SUBB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (subb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (subb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/subl_eax_imm32.k b/semantics/immediateInstructions/subl_eax_imm32.k index 29cd97b6a..c0ff3bfaf 100644 --- a/semantics/immediateInstructions/subl_eax_imm32.k +++ b/semantics/immediateInstructions/subl_eax_imm32.k @@ -5,26 +5,27 @@ module SUBL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (subl Imm32:Imm, %eax, .Operands) => . + execinstr (subl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33)) +"RAX" |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/subl_r32_imm32.k b/semantics/immediateInstructions/subl_r32_imm32.k index 0755bbf2d..33b4699d9 100644 --- a/semantics/immediateInstructions/subl_r32_imm32.k +++ b/semantics/immediateInstructions/subl_r32_imm32.k @@ -5,26 +5,27 @@ module SUBL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (subl Imm32:Imm, R2:R32, .Operands) => . + execinstr (subl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/subl_r32_imm8.k b/semantics/immediateInstructions/subl_r32_imm8.k index 8bc784fb6..c211b17c1 100644 --- a/semantics/immediateInstructions/subl_r32_imm8.k +++ b/semantics/immediateInstructions/subl_r32_imm8.k @@ -5,26 +5,27 @@ module SUBL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (subl Imm8:Imm, R2:R32, .Operands) => . + execinstr (subl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/subq_r64_imm32.k b/semantics/immediateInstructions/subq_r64_imm32.k index 431209925..61eab8859 100644 --- a/semantics/immediateInstructions/subq_r64_imm32.k +++ b/semantics/immediateInstructions/subq_r64_imm32.k @@ -5,26 +5,27 @@ module SUBQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (subq Imm32:Imm, R2:R64, .Operands) => . + execinstr (subq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) +convToRegKeys(R2) |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/subq_r64_imm8.k b/semantics/immediateInstructions/subq_r64_imm8.k index 43dc68abb..7e7143bb6 100644 --- a/semantics/immediateInstructions/subq_r64_imm8.k +++ b/semantics/immediateInstructions/subq_r64_imm8.k @@ -5,26 +5,27 @@ module SUBQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (subq Imm8:Imm, R2:R64, .Operands) => . + execinstr (subq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) +convToRegKeys(R2) |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/subq_rax_imm32.k b/semantics/immediateInstructions/subq_rax_imm32.k index 55b2eea31..fcb689e44 100644 --- a/semantics/immediateInstructions/subq_rax_imm32.k +++ b/semantics/immediateInstructions/subq_rax_imm32.k @@ -5,26 +5,27 @@ module SUBQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (subq Imm32:Imm, %rax, .Operands) => . + execinstr (subq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65) +"RAX" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/subw_ax_imm16.k b/semantics/immediateInstructions/subw_ax_imm16.k index b06af6178..30e03aec1 100644 --- a/semantics/immediateInstructions/subw_ax_imm16.k +++ b/semantics/immediateInstructions/subw_ax_imm16.k @@ -5,26 +5,27 @@ module SUBW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (subw Imm16:Imm, %ax, .Operands) => . + execinstr (subw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17)) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/subw_r16_imm16.k b/semantics/immediateInstructions/subw_r16_imm16.k index adf372649..c7dcc5abe 100644 --- a/semantics/immediateInstructions/subw_r16_imm16.k +++ b/semantics/immediateInstructions/subw_r16_imm16.k @@ -5,26 +5,27 @@ module SUBW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (subw Imm16:Imm, R2:R16, .Operands) => . + execinstr (subw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/subw_r16_imm8.k b/semantics/immediateInstructions/subw_r16_imm8.k index bcb7196b4..db1f91929 100644 --- a/semantics/immediateInstructions/subw_r16_imm8.k +++ b/semantics/immediateInstructions/subw_r16_imm8.k @@ -5,26 +5,27 @@ module SUBW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (subw Imm8:Imm, R2:R16, .Operands) => . + execinstr (subw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/testb_al_imm8.k b/semantics/immediateInstructions/testb_al_imm8.k index 00b0709b1..99ddee5e5 100644 --- a/semantics/immediateInstructions/testb_al_imm8.k +++ b/semantics/immediateInstructions/testb_al_imm8.k @@ -5,24 +5,25 @@ module TESTB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (testb Imm8:Imm, %al, .Operands) => . + execinstr (testb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/testb_r8_imm8.k b/semantics/immediateInstructions/testb_r8_imm8.k index 2917ddb10..46ea4daed 100644 --- a/semantics/immediateInstructions/testb_r8_imm8.k +++ b/semantics/immediateInstructions/testb_r8_imm8.k @@ -5,24 +5,25 @@ module TESTB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (testb Imm8:Imm, R2:R8, .Operands) => . + execinstr (testb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/testb_rh_imm8.k b/semantics/immediateInstructions/testb_rh_imm8.k index d2535cf3d..fe652acf1 100644 --- a/semantics/immediateInstructions/testb_rh_imm8.k +++ b/semantics/immediateInstructions/testb_rh_imm8.k @@ -5,24 +5,25 @@ module TESTB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (testb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (testb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 55, 56), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 54, 55), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 53, 54), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 52, 53), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 51, 52), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 50, 51), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 49, 50), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 55, 56), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 54, 55), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 53, 54), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 52, 53), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 51, 52), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 50, 51), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 49, 50), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/testl_eax_imm32.k b/semantics/immediateInstructions/testl_eax_imm32.k index c74ce0f0b..ab7b1c10b 100644 --- a/semantics/immediateInstructions/testl_eax_imm32.k +++ b/semantics/immediateInstructions/testl_eax_imm32.k @@ -5,24 +5,25 @@ module TESTL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (testl Imm32:Imm, %eax, .Operands) => . + execinstr (testl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/testl_r32_imm32.k b/semantics/immediateInstructions/testl_r32_imm32.k index af624c5f6..4f2510169 100644 --- a/semantics/immediateInstructions/testl_r32_imm32.k +++ b/semantics/immediateInstructions/testl_r32_imm32.k @@ -5,24 +5,25 @@ module TESTL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (testl Imm32:Imm, R2:R32, .Operands) => . + execinstr (testl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/testq_r64_imm32.k b/semantics/immediateInstructions/testq_r64_imm32.k index 0bae894e7..63c1b68be 100644 --- a/semantics/immediateInstructions/testq_r64_imm32.k +++ b/semantics/immediateInstructions/testq_r64_imm32.k @@ -5,24 +5,25 @@ module TESTQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (testq Imm32:Imm, R2:R64, .Operands) => . + execinstr (testq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/testq_rax_imm32.k b/semantics/immediateInstructions/testq_rax_imm32.k index f470eeba8..bd2c6c983 100644 --- a/semantics/immediateInstructions/testq_rax_imm32.k +++ b/semantics/immediateInstructions/testq_rax_imm32.k @@ -5,24 +5,25 @@ module TESTQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (testq Imm32:Imm, %rax, .Operands) => . + execinstr (testq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/testw_ax_imm16.k b/semantics/immediateInstructions/testw_ax_imm16.k index b1976b2ce..18d1030ff 100644 --- a/semantics/immediateInstructions/testw_ax_imm16.k +++ b/semantics/immediateInstructions/testw_ax_imm16.k @@ -5,24 +5,25 @@ module TESTW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (testw Imm16:Imm, %ax, .Operands) => . + execinstr (testw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/testw_r16_imm16.k b/semantics/immediateInstructions/testw_r16_imm16.k index b7ced050b..f1c729743 100644 --- a/semantics/immediateInstructions/testw_r16_imm16.k +++ b/semantics/immediateInstructions/testw_r16_imm16.k @@ -5,24 +5,25 @@ module TESTW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (testw Imm16:Imm, R2:R16, .Operands) => . + execinstr (testw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/vblendpd_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vblendpd_xmm_xmm_xmm_imm8.k index 3ee018fd2..6fedd58aa 100644 --- a/semantics/immediateInstructions/vblendpd_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vblendpd_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VBLENDPD-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vblendpd Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vblendpd Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vblendpd_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vblendpd_ymm_ymm_ymm_imm8.k index 2b4f0530f..41d9e07f4 100644 --- a/semantics/immediateInstructions/vblendpd_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vblendpd_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VBLENDPD-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vblendpd Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vblendpd Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 128) #else extractMInt( getParentValue(R2, RSMap), 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi)))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 128) #else extractMInt( getParentValue(R2, RSMap), 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vblendps_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vblendps_xmm_xmm_xmm_imm8.k index f8ca5b094..efd6ef5d6 100644 --- a/semantics/immediateInstructions/vblendps_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vblendps_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VBLENDPS-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vblendps Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vblendps Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vblendps_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vblendps_ymm_ymm_ymm_imm8.k index b1879648f..800b2246c 100644 --- a/semantics/immediateInstructions/vblendps_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vblendps_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VBLENDPS-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vblendps Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vblendps Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 96) #else extractMInt( getParentValue(R2, RSMap), 64, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 128) #else extractMInt( getParentValue(R2, RSMap), 96, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi)))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 96) #else extractMInt( getParentValue(R2, RSMap), 64, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 128) #else extractMInt( getParentValue(R2, RSMap), 96, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vcmppd_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vcmppd_xmm_xmm_xmm_imm8.k index 96ee895b5..a5fa7aef6 100644 --- a/semantics/immediateInstructions/vcmppd_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vcmppd_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VCMPPD-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vcmppd Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vcmppd Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vcmppd_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vcmppd_ymm_ymm_ymm_imm8.k index cad4e5ef0..fe4085da0 100644 --- a/semantics/immediateInstructions/vcmppd_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vcmppd_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VCMPPD-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vcmppd Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vcmppd Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 0, 64), extractMInt( getParentValue(R2, RSMap), 0, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 64, 128), extractMInt( getParentValue(R2, RSMap), 64, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi)))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 0, 64), extractMInt( getParentValue(R2, RSMap), 0, 64), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 64, 128), extractMInt( getParentValue(R2, RSMap), 64, 128), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vcmpps_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vcmpps_xmm_xmm_xmm_imm8.k index fa90167e3..c91209c6d 100644 --- a/semantics/immediateInstructions/vcmpps_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vcmpps_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VCMPPS-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vcmpps Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vcmpps Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vcmpps_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vcmpps_ymm_ymm_ymm_imm8.k index e08fe406c..0e602f16e 100644 --- a/semantics/immediateInstructions/vcmpps_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vcmpps_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VCMPPS-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vcmpps Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vcmpps Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi)))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vcmpsd_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vcmpsd_xmm_xmm_xmm_imm8.k index 49e9c555f..e0d0e21c1 100644 --- a/semantics/immediateInstructions/vcmpsd_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vcmpsd_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VCMPSD-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vcmpsd Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vcmpsd Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 192), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 192), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vcmpss_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vcmpss_xmm_xmm_xmm_imm8.k index 687eb73a4..a5980ae2c 100644 --- a/semantics/immediateInstructions/vcmpss_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vcmpss_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VCMPSS-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vcmpss Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vcmpss Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 224), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 224), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vcvtps2ph_xmm_xmm_imm8.k b/semantics/immediateInstructions/vcvtps2ph_xmm_xmm_imm8.k index 4fea4a289..d67bd86eb 100644 --- a/semantics/immediateInstructions/vcvtps2ph_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vcvtps2ph_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VCVTPS2PH-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vcvtps2ph Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vcvtps2ph Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(192, 0), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(192, 0), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vcvtps2ph_xmm_ymm_imm8.k b/semantics/immediateInstructions/vcvtps2ph_xmm_ymm_imm8.k index 8634980c7..1260fd796 100644 --- a/semantics/immediateInstructions/vcvtps2ph_xmm_ymm_imm8.k +++ b/semantics/immediateInstructions/vcvtps2ph_xmm_ymm_imm8.k @@ -5,14 +5,15 @@ module VCVTPS2PH-XMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vcvtps2ph Imm8:Imm, R2:Ymm, R3:Xmm, .Operands) => . + execinstr (vcvtps2ph Imm8:MInt, R2:Ymm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)))))))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 0, 32), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 32, 64), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 64, 96), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 96, 128), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 128, 160), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 160, 192), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 192, 224), Imm8), cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 224, 256), Imm8))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vdppd_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vdppd_xmm_xmm_xmm_imm8.k index 7643dd596..2bdf3f065 100644 --- a/semantics/immediateInstructions/vdppd_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vdppd_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VDPPD-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vdppd Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vdppd Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vdpps_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vdpps_xmm_xmm_xmm_imm8.k index 84d86ff46..eae75de42 100644 --- a/semantics/immediateInstructions/vdpps_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vdpps_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VDPPS-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vdpps Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vdpps Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vdpps_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vdpps_ymm_ymm_ymm_imm8.k index cf31908f8..c75495cc8 100644 --- a/semantics/immediateInstructions/vdpps_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vdpps_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VDPPS-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vdpps Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vdpps Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vextractf128_xmm_ymm_imm8.k b/semantics/immediateInstructions/vextractf128_xmm_ymm_imm8.k index ee009d9cc..ca0a85a25 100644 --- a/semantics/immediateInstructions/vextractf128_xmm_ymm_imm8.k +++ b/semantics/immediateInstructions/vextractf128_xmm_ymm_imm8.k @@ -5,14 +5,15 @@ module VEXTRACTF128-XMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vextractf128 Imm8:Imm, R2:Ymm, R3:Xmm, .Operands) => . + execinstr (vextractf128 Imm8:MInt, R2:Ymm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else extractMInt( getParentValue(R3, RSMap), 0, 128) #fi)) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else extractMInt( getParentValue(R3, RSMap), 0, 128) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vextracti128_xmm_ymm_imm8.k b/semantics/immediateInstructions/vextracti128_xmm_ymm_imm8.k index e2413f804..423412316 100644 --- a/semantics/immediateInstructions/vextracti128_xmm_ymm_imm8.k +++ b/semantics/immediateInstructions/vextracti128_xmm_ymm_imm8.k @@ -5,14 +5,15 @@ module VEXTRACTI128-XMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vextracti128 Imm8:Imm, R2:Ymm, R3:Xmm, .Operands) => . + execinstr (vextracti128 Imm8:MInt, R2:Ymm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else extractMInt( getParentValue(R3, RSMap), 0, 128) #fi)) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else extractMInt( getParentValue(R3, RSMap), 0, 128) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vextractps_r32_xmm_imm8.k b/semantics/immediateInstructions/vextractps_r32_xmm_imm8.k index 33b73fa68..c2449f05c 100644 --- a/semantics/immediateInstructions/vextractps_r32_xmm_imm8.k +++ b/semantics/immediateInstructions/vextractps_r32_xmm_imm8.k @@ -5,14 +5,15 @@ module VEXTRACTPS-R32-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vextractps Imm8:Imm, R2:Xmm, R3:R32, .Operands) => . + execinstr (vextractps Imm8:MInt, R2:Xmm, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vinsertf128_ymm_ymm_xmm_imm8.k b/semantics/immediateInstructions/vinsertf128_ymm_ymm_xmm_imm8.k index f5b7f8f85..9974c3c3d 100644 --- a/semantics/immediateInstructions/vinsertf128_ymm_ymm_xmm_imm8.k +++ b/semantics/immediateInstructions/vinsertf128_ymm_ymm_xmm_imm8.k @@ -5,14 +5,15 @@ module VINSERTF128-YMM-YMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vinsertf128 Imm8:Imm, R2:Xmm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vinsertf128 Imm8:MInt, R2:Xmm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( getParentValue(R2, RSMap), 128, 256)) #else concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), extractMInt( getParentValue(R3, RSMap), 128, 256)) #fi) +convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( getParentValue(R2, RSMap), 128, 256)) #else concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), extractMInt( getParentValue(R3, RSMap), 128, 256)) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vinserti128_ymm_ymm_xmm_imm8.k b/semantics/immediateInstructions/vinserti128_ymm_ymm_xmm_imm8.k index f036b5da0..5164dbda5 100644 --- a/semantics/immediateInstructions/vinserti128_ymm_ymm_xmm_imm8.k +++ b/semantics/immediateInstructions/vinserti128_ymm_ymm_xmm_imm8.k @@ -5,14 +5,15 @@ module VINSERTI128-YMM-YMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vinserti128 Imm8:Imm, R2:Xmm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vinserti128 Imm8:MInt, R2:Xmm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( getParentValue(R2, RSMap), 128, 256)) #else concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), extractMInt( getParentValue(R3, RSMap), 128, 256)) #fi) +convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( getParentValue(R2, RSMap), 128, 256)) #else concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), extractMInt( getParentValue(R3, RSMap), 128, 256)) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vinsertps_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vinsertps_xmm_xmm_xmm_imm8.k index c21683704..59d10863a 100644 --- a/semantics/immediateInstructions/vinsertps_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vinsertps_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VINSERTPS-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vinsertps Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vinsertps Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #fi) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 160, 192) #fi) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #fi) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 160, 192) #fi) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vmpsadbw_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vmpsadbw_xmm_xmm_xmm_imm8.k index 46056ab72..23adeda1e 100644 --- a/semantics/immediateInstructions/vmpsadbw_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vmpsadbw_xmm_xmm_xmm_imm8.k @@ -4,43 +4,44 @@ module VMPSADBW-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vmpsadbw Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vmpsadbw Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => execinstr (vmpsadbw selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 7 , 0 ), + extractMInt(Imm8, 6, 8), 7 , 0 ), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 15, 8 ), + extractMInt(Imm8, 6, 8), 15, 8 ), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 23, 16), + extractMInt(Imm8, 6, 8), 23, 16), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 31, 24), + extractMInt(Imm8, 6, 8), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 7 , 0), + extractMInt(Imm8, 5, 6), 7 , 0), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 15, 8), + extractMInt(Imm8, 5, 6), 15, 8), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 23, 16), + extractMInt(Imm8, 5, 6), 23, 16), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 31, 24), + extractMInt(Imm8, 5, 6), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 39, 32), + extractMInt(Imm8, 5, 6), 39, 32), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 47, 40), + extractMInt(Imm8, 5, 6), 47, 40), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 55, 48), + extractMInt(Imm8, 5, 6), 55, 48), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 63, 56), + extractMInt(Imm8, 5, 6), 63, 56), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 71, 64), + extractMInt(Imm8, 5, 6), 71, 64), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 79, 72), + extractMInt(Imm8, 5, 6), 79, 72), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 87, 80), + extractMInt(Imm8, 5, 6), 87, 80), R4:Xmm, .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (vmpsadbw diff --git a/semantics/immediateInstructions/vmpsadbw_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vmpsadbw_ymm_ymm_ymm_imm8.k index 18783c715..4939338ef 100644 --- a/semantics/immediateInstructions/vmpsadbw_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vmpsadbw_ymm_ymm_ymm_imm8.k @@ -5,93 +5,94 @@ module VMPSADBW-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vmpsadbw Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vmpsadbw Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => execinstr (vmpsadbw //Low slices selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 7 , 0 ), + extractMInt(Imm8, 6, 8), 7 , 0 ), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 15, 8 ), + extractMInt(Imm8, 6, 8), 15, 8 ), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 23, 16), + extractMInt(Imm8, 6, 8), 23, 16), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 31, 24), + extractMInt(Imm8, 6, 8), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 7 , 0), + extractMInt(Imm8, 5, 6), 7 , 0), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 15, 8), + extractMInt(Imm8, 5, 6), 15, 8), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 23, 16), + extractMInt(Imm8, 5, 6), 23, 16), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 31, 24), + extractMInt(Imm8, 5, 6), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 39, 32), + extractMInt(Imm8, 5, 6), 39, 32), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 47, 40), + extractMInt(Imm8, 5, 6), 47, 40), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 55, 48), + extractMInt(Imm8, 5, 6), 55, 48), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 63, 56), + extractMInt(Imm8, 5, 6), 63, 56), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 71, 64), + extractMInt(Imm8, 5, 6), 71, 64), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 79, 72), + extractMInt(Imm8, 5, 6), 79, 72), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 87, 80), + extractMInt(Imm8, 5, 6), 87, 80), //High slices selectSliceMPSAD( getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 3, 5), 7 +Int + extractMInt(Imm8, 3, 5), 7 +Int 128, 0 +Int 128), selectSliceMPSAD( getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 3, 5), 15+Int + extractMInt(Imm8, 3, 5), 15+Int 128, 8 +Int 128), selectSliceMPSAD( getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 3, 5), 23+Int + extractMInt(Imm8, 3, 5), 23+Int 128, 16+Int 128), selectSliceMPSAD( getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 3, 5), 31+Int + extractMInt(Imm8, 3, 5), 31+Int 128, 24+Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 7 + extractMInt(Imm8, 2, 3), 7 +Int 128, 0 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 15 + extractMInt(Imm8, 2, 3), 15 +Int 128, 8 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 23 + extractMInt(Imm8, 2, 3), 23 +Int 128, 16 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 31 + extractMInt(Imm8, 2, 3), 31 +Int 128, 24 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 39 + extractMInt(Imm8, 2, 3), 39 +Int 128, 32 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 47 + extractMInt(Imm8, 2, 3), 47 +Int 128, 40 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 55 + extractMInt(Imm8, 2, 3), 55 +Int 128, 48 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 63 + extractMInt(Imm8, 2, 3), 63 +Int 128, 56 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 71 + extractMInt(Imm8, 2, 3), 71 +Int 128, 64 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 79 + extractMInt(Imm8, 2, 3), 79 +Int 128, 72 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 87 + extractMInt(Imm8, 2, 3), 87 +Int 128, 80 +Int 128), R4:Ymm, .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule diff --git a/semantics/immediateInstructions/vpalignr_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpalignr_xmm_xmm_xmm_imm8.k index f11895469..9e104f62b 100644 --- a/semantics/immediateInstructions/vpalignr_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpalignr_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPALIGNR-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpalignr Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vpalignr Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), extractMInt( getParentValue(R2, RSMap), 128, 256)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), uvalueMInt(mi(256, 3))))), 128, 256)) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), extractMInt( getParentValue(R2, RSMap), 128, 256)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), Imm8), uvalueMInt(mi(256, 3))))), 128, 256)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpalignr_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpalignr_ymm_ymm_ymm_imm8.k index f07e6a747..5bbc52a69 100644 --- a/semantics/immediateInstructions/vpalignr_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpalignr_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPALIGNR-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpalignr Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vpalignr Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( getParentValue(R2, RSMap), 0, 128)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), uvalueMInt(mi(256, 3))))), 128, 256), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), extractMInt( getParentValue(R2, RSMap), 128, 256)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), uvalueMInt(mi(256, 3))))), 128, 256)) +convToRegKeys(R4) |-> concatenateMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( getParentValue(R2, RSMap), 0, 128)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), Imm8), uvalueMInt(mi(256, 3))))), 128, 256), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), extractMInt( getParentValue(R2, RSMap), 128, 256)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), Imm8), uvalueMInt(mi(256, 3))))), 128, 256)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpblendd_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpblendd_xmm_xmm_xmm_imm8.k index 43916d914..0a41f0c2b 100644 --- a/semantics/immediateInstructions/vpblendd_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpblendd_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPBLENDD-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpblendd Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vpblendd Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpblendd_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpblendd_ymm_ymm_ymm_imm8.k index 1d2114725..a126c731d 100644 --- a/semantics/immediateInstructions/vpblendd_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpblendd_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPBLENDD-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpblendd Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vpblendd Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 96) #else extractMInt( getParentValue(R2, RSMap), 64, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 128) #else extractMInt( getParentValue(R2, RSMap), 96, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi)))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 96) #else extractMInt( getParentValue(R2, RSMap), 64, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 128) #else extractMInt( getParentValue(R2, RSMap), 96, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpblendw_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpblendw_xmm_xmm_xmm_imm8.k index b57e01ea0..5f7d8143f 100644 --- a/semantics/immediateInstructions/vpblendw_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpblendw_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPBLENDW-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpblendw Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vpblendw Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( getParentValue(R2, RSMap), 128, 144) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( getParentValue(R2, RSMap), 144, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( getParentValue(R2, RSMap), 160, 176) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( getParentValue(R2, RSMap), 176, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( getParentValue(R2, RSMap), 192, 208) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( getParentValue(R2, RSMap), 208, 224) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( getParentValue(R2, RSMap), 224, 240) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( getParentValue(R2, RSMap), 240, 256) #fi))))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( getParentValue(R2, RSMap), 128, 144) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( getParentValue(R2, RSMap), 144, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( getParentValue(R2, RSMap), 160, 176) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( getParentValue(R2, RSMap), 176, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( getParentValue(R2, RSMap), 192, 208) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( getParentValue(R2, RSMap), 208, 224) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( getParentValue(R2, RSMap), 224, 240) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( getParentValue(R2, RSMap), 240, 256) #fi))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpblendw_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpblendw_ymm_ymm_ymm_imm8.k index f92d32b14..e706ad81c 100644 --- a/semantics/immediateInstructions/vpblendw_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpblendw_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPBLENDW-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpblendw Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vpblendw Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 16) #else extractMInt( getParentValue(R2, RSMap), 0, 16) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 16, 32) #else extractMInt( getParentValue(R2, RSMap), 16, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 48) #else extractMInt( getParentValue(R2, RSMap), 32, 48) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 48, 64) #else extractMInt( getParentValue(R2, RSMap), 48, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 80) #else extractMInt( getParentValue(R2, RSMap), 64, 80) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 80, 96) #else extractMInt( getParentValue(R2, RSMap), 80, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 112) #else extractMInt( getParentValue(R2, RSMap), 96, 112) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 112, 128) #else extractMInt( getParentValue(R2, RSMap), 112, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( getParentValue(R2, RSMap), 128, 144) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( getParentValue(R2, RSMap), 144, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( getParentValue(R2, RSMap), 160, 176) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( getParentValue(R2, RSMap), 176, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( getParentValue(R2, RSMap), 192, 208) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( getParentValue(R2, RSMap), 208, 224) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( getParentValue(R2, RSMap), 224, 240) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( getParentValue(R2, RSMap), 240, 256) #fi)))))))))))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 16) #else extractMInt( getParentValue(R2, RSMap), 0, 16) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 16, 32) #else extractMInt( getParentValue(R2, RSMap), 16, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 48) #else extractMInt( getParentValue(R2, RSMap), 32, 48) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 48, 64) #else extractMInt( getParentValue(R2, RSMap), 48, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 80) #else extractMInt( getParentValue(R2, RSMap), 64, 80) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 80, 96) #else extractMInt( getParentValue(R2, RSMap), 80, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 112) #else extractMInt( getParentValue(R2, RSMap), 96, 112) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 112, 128) #else extractMInt( getParentValue(R2, RSMap), 112, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( getParentValue(R2, RSMap), 128, 144) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( getParentValue(R2, RSMap), 144, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( getParentValue(R2, RSMap), 160, 176) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( getParentValue(R2, RSMap), 176, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( getParentValue(R2, RSMap), 192, 208) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( getParentValue(R2, RSMap), 208, 224) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( getParentValue(R2, RSMap), 224, 240) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( getParentValue(R2, RSMap), 240, 256) #fi)))))))))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpclmulqdq_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpclmulqdq_xmm_xmm_xmm_imm8.k index 87678aeda..5f21aeeea 100644 --- a/semantics/immediateInstructions/vpclmulqdq_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpclmulqdq_xmm_xmm_xmm_imm8.k @@ -18,15 +18,14 @@ module VPCLMULQDQ-XMM-XMM-XMM-IMM8 TEMP2←SRC2 [127:64]; */ rule - execinstr (vpclmulqdq Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpclmulqdq Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => execinstr(vpclmulqdq - selectSlice(getRegisterValue(R3, RSMap), handleImmediateWithSignExtend(Imm8, - 8, 8), 7, 64, 0), - selectSlice(getRegisterValue(R2, RSMap), handleImmediateWithSignExtend(Imm8, - 8, 8), 3, 64, 0), R4 + selectSlice(getRegisterValue(R3, RSMap), Imm8, 7, 64, 0), + selectSlice(getRegisterValue(R2, RSMap), Imm8, 3, 64, 0), R4 , .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (vpclmulqdq TEMP1:MInt, TEMP2:MInt, R4:Xmm, .Operands) => diff --git a/semantics/immediateInstructions/vpcmpestri_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpcmpestri_xmm_xmm_imm8.k index ecd631f0b..4efbc5984 100644 --- a/semantics/immediateInstructions/vpcmpestri_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpcmpestri_xmm_xmm_imm8.k @@ -6,16 +6,17 @@ module VPCMPESTRI-XMM-XMM-IMM8 // Find Limit Index rule - execinstr (vpcmpestri Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (vpcmpestri Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (vpcmpestri - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, getRegisterValue(Xmm2, RSMap), getRegisterValue(Xmm1, RSMap), - findLimitIndexE(getRegisterValue(Xmm2, RSMap), getRegisterValue(%rdx, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexE(getRegisterValue(Xmm2, RSMap), getRegisterValue(%rdx, RSMap), Imm8), + findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/immediateInstructions/vpcmpestrm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpcmpestrm_xmm_xmm_imm8.k index 49ea51ba3..dbc5620db 100644 --- a/semantics/immediateInstructions/vpcmpestrm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpcmpestrm_xmm_xmm_imm8.k @@ -6,16 +6,17 @@ module VPCMPESTRM-XMM-XMM-IMM8 // Find Limit Index rule - execinstr (vpcmpestrm Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (vpcmpestrm Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (vpcmpestrm - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, getRegisterValue(Xmm2, RSMap), getRegisterValue(Xmm1, RSMap), - findLimitIndexE(getRegisterValue(Xmm2, RSMap), getRegisterValue(%rdx, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexE(getRegisterValue(Xmm2, RSMap), getRegisterValue(%rdx, RSMap), Imm8), + findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/immediateInstructions/vpcmpistri_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpcmpistri_xmm_xmm_imm8.k index 01874f9fc..9adee87ad 100644 --- a/semantics/immediateInstructions/vpcmpistri_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpcmpistri_xmm_xmm_imm8.k @@ -6,16 +6,17 @@ module VPCMPISTRI-XMM-XMM-IMM8 // Find Limit Index rule - execinstr (vpcmpistri Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (vpcmpistri Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (vpcmpistri - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, getRegisterValue(Xmm2, RSMap), getRegisterValue(Xmm1, RSMap), - findLimitIndexI(getRegisterValue(Xmm2, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexI(getRegisterValue(Xmm1, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexI(getRegisterValue(Xmm2, RSMap), Imm8), + findLimitIndexI(getRegisterValue(Xmm1, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/immediateInstructions/vpcmpistrm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpcmpistrm_xmm_xmm_imm8.k index bb05a5a7d..fcfb65b8e 100644 --- a/semantics/immediateInstructions/vpcmpistrm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpcmpistrm_xmm_xmm_imm8.k @@ -6,16 +6,17 @@ module VPCMPISTRM-XMM-XMM-IMM8 // Find Limit Index rule - execinstr (vpcmpistrm Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (vpcmpistrm Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (vpcmpistrm - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, getRegisterValue(Xmm2, RSMap), getRegisterValue(Xmm1, RSMap), - findLimitIndexI(getRegisterValue(Xmm2, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexI(getRegisterValue(Xmm1, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexI(getRegisterValue(Xmm2, RSMap), Imm8), + findLimitIndexI(getRegisterValue(Xmm1, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/immediateInstructions/vperm2f128_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vperm2f128_ymm_ymm_ymm_imm8.k index 4c940b72c..1d22f5046 100644 --- a/semantics/immediateInstructions/vperm2f128_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vperm2f128_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPERM2F128-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vperm2f128 Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vperm2f128 Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi)) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi), mi(128, 0)) #else concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi)) #fi) #fi) +convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi)) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi), mi(128, 0)) #else concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi)) #fi) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vperm2i128_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vperm2i128_ymm_ymm_ymm_imm8.k index b9a4907eb..40fd4a6c3 100644 --- a/semantics/immediateInstructions/vperm2i128_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vperm2i128_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPERM2I128-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vperm2i128 Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vperm2i128 Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi)) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi), mi(128, 0)) #else concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi)) #fi) #fi) +convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi)) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi), mi(128, 0)) #else concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi)) #fi) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpermilpd_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpermilpd_xmm_xmm_imm8.k index c441f5301..e0fb6fd6f 100644 --- a/semantics/immediateInstructions/vpermilpd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpermilpd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPERMILPD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpermilpd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpermilpd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpermilpd_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpermilpd_ymm_ymm_imm8.k index 07ca15d3e..6651aa31b 100644 --- a/semantics/immediateInstructions/vpermilpd_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpermilpd_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPERMILPD-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpermilpd Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpermilpd Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 64, 128) #else extractMInt( getParentValue(R2, RSMap), 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 64, 128) #else extractMInt( getParentValue(R2, RSMap), 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi)))) +convToRegKeys(R3) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 64, 128) #else extractMInt( getParentValue(R2, RSMap), 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 64, 128) #else extractMInt( getParentValue(R2, RSMap), 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpermilps_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpermilps_xmm_xmm_imm8.k index 727ac08e7..5a164c79d 100644 --- a/semantics/immediateInstructions/vpermilps_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpermilps_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPERMILPS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpermilps Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpermilps Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpermilps_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpermilps_ymm_ymm_imm8.k index 8b3adeadc..3abae2dcc 100644 --- a/semantics/immediateInstructions/vpermilps_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpermilps_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPERMILPS-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpermilps Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpermilps Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi)))))))) +convToRegKeys(R3) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpermpd_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpermpd_ymm_ymm_imm8.k index b5e96219c..606dcc5c5 100644 --- a/semantics/immediateInstructions/vpermpd_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpermpd_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPERMPD-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpermpd Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpermpd Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 6))))), 192, 256), extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 6))))), 192, 256)))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 6))))), 192, 256), extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 6))))), 192, 256)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpermq_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpermq_ymm_ymm_imm8.k index 3fe351a2a..1232ef014 100644 --- a/semantics/immediateInstructions/vpermq_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpermq_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPERMQ-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpermq Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpermq Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 6))))), 192, 256), extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 6))))), 192, 256)))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 6))))), 192, 256), extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 6))))), 192, 256)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpextrb_r32_xmm_imm8.k b/semantics/immediateInstructions/vpextrb_r32_xmm_imm8.k index 35ecc3140..0524d2b45 100644 --- a/semantics/immediateInstructions/vpextrb_r32_xmm_imm8.k +++ b/semantics/immediateInstructions/vpextrb_r32_xmm_imm8.k @@ -5,14 +5,15 @@ module VPEXTRB-R32-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpextrb Imm8:Imm, R2:Xmm, R3:R32, .Operands) => . + execinstr (vpextrb Imm8:MInt, R2:Xmm, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(56, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(56, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpextrb_r64_xmm_imm8.k b/semantics/immediateInstructions/vpextrb_r64_xmm_imm8.k index a2ca89da4..40228395e 100644 --- a/semantics/immediateInstructions/vpextrb_r64_xmm_imm8.k +++ b/semantics/immediateInstructions/vpextrb_r64_xmm_imm8.k @@ -5,14 +5,15 @@ module VPEXTRB-R64-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpextrb Imm8:Imm, R2:Xmm, R3:R64, .Operands) => . + execinstr (vpextrb Imm8:MInt, R2:Xmm, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(56, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(56, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpextrd_r32_xmm_imm8.k b/semantics/immediateInstructions/vpextrd_r32_xmm_imm8.k index f0fda9e43..a81b794de 100644 --- a/semantics/immediateInstructions/vpextrd_r32_xmm_imm8.k +++ b/semantics/immediateInstructions/vpextrd_r32_xmm_imm8.k @@ -5,14 +5,15 @@ module VPEXTRD-R32-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpextrd Imm8:Imm, R2:Xmm, R3:R32, .Operands) => . + execinstr (vpextrd Imm8:MInt, R2:Xmm, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpextrq_r64_xmm_imm8.k b/semantics/immediateInstructions/vpextrq_r64_xmm_imm8.k index ce49e9beb..5c4b560c7 100644 --- a/semantics/immediateInstructions/vpextrq_r64_xmm_imm8.k +++ b/semantics/immediateInstructions/vpextrq_r64_xmm_imm8.k @@ -5,14 +5,15 @@ module VPEXTRQ-R64-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpextrq Imm8:Imm, R2:Xmm, R3:R64, .Operands) => . + execinstr (vpextrq Imm8:MInt, R2:Xmm, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))), 64, 128) +convToRegKeys(R3) |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))), 64, 128) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpextrw_r32_xmm_imm8.k b/semantics/immediateInstructions/vpextrw_r32_xmm_imm8.k index 259dfa487..63146196c 100644 --- a/semantics/immediateInstructions/vpextrw_r32_xmm_imm8.k +++ b/semantics/immediateInstructions/vpextrw_r32_xmm_imm8.k @@ -5,14 +5,15 @@ module VPEXTRW-R32-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpextrw Imm8:Imm, R2:Xmm, R3:R32, .Operands) => . + execinstr (vpextrw Imm8:MInt, R2:Xmm, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(48, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(48, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpextrw_r64_xmm_imm8.k b/semantics/immediateInstructions/vpextrw_r64_xmm_imm8.k index 5440cfd4e..e657e5e58 100644 --- a/semantics/immediateInstructions/vpextrw_r64_xmm_imm8.k +++ b/semantics/immediateInstructions/vpextrw_r64_xmm_imm8.k @@ -5,14 +5,15 @@ module VPEXTRW-R64-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpextrw Imm8:Imm, R2:Xmm, R3:R64, .Operands) => . + execinstr (vpextrw Imm8:MInt, R2:Xmm, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(48, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(48, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpinsrb_xmm_xmm_r32_imm8.k b/semantics/immediateInstructions/vpinsrb_xmm_xmm_r32_imm8.k index d26e5998c..e721c9609 100644 --- a/semantics/immediateInstructions/vpinsrb_xmm_xmm_r32_imm8.k +++ b/semantics/immediateInstructions/vpinsrb_xmm_xmm_r32_imm8.k @@ -5,14 +5,15 @@ module VPINSRB-XMM-XMM-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (vpinsrb Imm8:Imm, R2:R32, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vpinsrb Imm8:MInt, R2:R32, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3)))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpinsrd_xmm_xmm_r32_imm8.k b/semantics/immediateInstructions/vpinsrd_xmm_xmm_r32_imm8.k index 3f23f16c6..418d8fc0b 100644 --- a/semantics/immediateInstructions/vpinsrd_xmm_xmm_r32_imm8.k +++ b/semantics/immediateInstructions/vpinsrd_xmm_xmm_r32_imm8.k @@ -5,14 +5,15 @@ module VPINSRD-XMM-XMM-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (vpinsrd Imm8:Imm, R2:R32, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vpinsrd Imm8:MInt, R2:R32, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5)))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpinsrq_xmm_xmm_r64_imm8.k b/semantics/immediateInstructions/vpinsrq_xmm_xmm_r64_imm8.k index f3960b7c0..46fc1dc36 100644 --- a/semantics/immediateInstructions/vpinsrq_xmm_xmm_r64_imm8.k +++ b/semantics/immediateInstructions/vpinsrq_xmm_xmm_r64_imm8.k @@ -5,14 +5,15 @@ module VPINSRQ-XMM-XMM-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (vpinsrq Imm8:Imm, R2:R64, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vpinsrq Imm8:MInt, R2:R64, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(64, 0), getParentValue(R2, RSMap)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))), shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6)))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(64, 0), getParentValue(R2, RSMap)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))), shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpinsrw_xmm_xmm_r32_imm8.k b/semantics/immediateInstructions/vpinsrw_xmm_xmm_r32_imm8.k index 31194b38f..c6cf508d8 100644 --- a/semantics/immediateInstructions/vpinsrw_xmm_xmm_r32_imm8.k +++ b/semantics/immediateInstructions/vpinsrw_xmm_xmm_r32_imm8.k @@ -5,14 +5,15 @@ module VPINSRW-XMM-XMM-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (vpinsrw Imm8:Imm, R2:R32, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vpinsrw Imm8:MInt, R2:R32, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4)))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpshufd_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpshufd_xmm_xmm_imm8.k index 3472952e6..50fceb521 100644 --- a/semantics/immediateInstructions/vpshufd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpshufd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSHUFD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpshufd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpshufd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpshufd_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpshufd_ymm_ymm_imm8.k index be4fe86ec..e04937d7d 100644 --- a/semantics/immediateInstructions/vpshufd_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpshufd_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSHUFD-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpshufd Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpshufd Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpshufhw_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpshufhw_xmm_xmm_imm8.k index d5fab0cf4..abe2a617d 100644 --- a/semantics/immediateInstructions/vpshufhw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpshufhw_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSHUFHW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpshufhw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpshufhw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 4))))), 48, 64), extractMInt( getParentValue(R2, RSMap), 192, 256)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 4))))), 48, 64), extractMInt( getParentValue(R2, RSMap), 192, 256)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpshufhw_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpshufhw_ymm_ymm_imm8.k index d6e51ede8..d07b65afd 100644 --- a/semantics/immediateInstructions/vpshufhw_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpshufhw_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSHUFHW-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpshufhw Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpshufhw Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( getParentValue(R2, RSMap), 64, 128), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 4))))), 176, 192), extractMInt( getParentValue(R2, RSMap), 192, 256)))))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( getParentValue(R2, RSMap), 64, 128), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 4))))), 176, 192), extractMInt( getParentValue(R2, RSMap), 192, 256)))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpshuflw_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpshuflw_xmm_xmm_imm8.k index 01bbf9e9e..3f9d64295 100644 --- a/semantics/immediateInstructions/vpshuflw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpshuflw_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSHUFLW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpshuflw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpshuflw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 4))))), 112, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 4))))), 112, 128)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 4))))), 112, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 4))))), 112, 128)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpshuflw_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpshuflw_ymm_ymm_imm8.k index 399ccf9e8..94c3b26da 100644 --- a/semantics/immediateInstructions/vpshuflw_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpshuflw_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSHUFLW-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpshuflw Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpshuflw Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 64), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 4))))), 240, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 4))))), 240, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 4))))), 240, 256), extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 4))))), 240, 256)))))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 64), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 4))))), 240, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 4))))), 240, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 4))))), 240, 256), extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 4))))), 240, 256)))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpslld_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpslld_xmm_xmm_imm8.k index 0416825d9..4f658a82d 100644 --- a/semantics/immediateInstructions/vpslld_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpslld_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSLLD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpslld Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpslld Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpslld_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpslld_ymm_ymm_imm8.k index 5b56fa543..97f28fe8f 100644 --- a/semantics/immediateInstructions/vpslld_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpslld_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSLLD-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpslld Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpslld Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(256, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 0, 32), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 64, 96), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 96, 128), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(256, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 0, 32), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 64, 96), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 96, 128), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), Imm8)))))))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpslldq_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpslldq_xmm_xmm_imm8.k index 1e838d7c9..81cadc725 100644 --- a/semantics/immediateInstructions/vpslldq_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpslldq_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSLLDQ-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpslldq Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpslldq Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), uvalueMInt(mi(128, 3)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( Imm8, mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), Imm8) #fi), uvalueMInt(mi(128, 3)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpslldq_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpslldq_ymm_ymm_imm8.k index e0009cadf..a43d3df54 100644 --- a/semantics/immediateInstructions/vpslldq_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpslldq_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSLLDQ-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpslldq Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpslldq Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), uvalueMInt(mi(128, 3))))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), uvalueMInt(mi(128, 3)))))) +convToRegKeys(R3) |-> concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( Imm8, mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), Imm8) #fi), uvalueMInt(mi(128, 3))))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( Imm8, mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), Imm8) #fi), uvalueMInt(mi(128, 3)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsllq_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpsllq_xmm_xmm_imm8.k index e68b60273..d9e9e3493 100644 --- a/semantics/immediateInstructions/vpsllq_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpsllq_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSLLQ-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsllq Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpsllq Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsllq_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpsllq_ymm_ymm_imm8.k index 286cd7035..44c5bda6f 100644 --- a/semantics/immediateInstructions/vpsllq_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpsllq_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSLLQ-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsllq Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpsllq Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)) #then mi(256, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 0, 64), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 64, 128), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)) #then mi(256, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 0, 64), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 64, 128), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), Imm8)))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsllw_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpsllw_xmm_xmm_imm8.k index 0b59f484b..50ec2c8de 100644 --- a/semantics/immediateInstructions/vpsllw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpsllw_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSLLW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsllw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpsllw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))))))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))))))))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsllw_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpsllw_ymm_ymm_imm8.k index 3fb79d024..437973add 100644 --- a/semantics/immediateInstructions/vpsllw_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpsllw_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSLLW-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsllw Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpsllw Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(256, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 0, 16), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 16, 32), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 32, 48), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 64, 80), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 80, 96), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 96, 112), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 112, 128), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))))))))))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(256, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 0, 16), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 16, 32), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 32, 48), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 64, 80), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 80, 96), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 96, 112), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 112, 128), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), Imm8)))))))))))))))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrad_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpsrad_xmm_xmm_imm8.k index f0a77bc5d..1d2635672 100644 --- a/semantics/immediateInstructions/vpsrad_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpsrad_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSRAD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrad Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpsrad Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrad_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpsrad_ymm_ymm_imm8.k index 7b635e65b..f99b84776 100644 --- a/semantics/immediateInstructions/vpsrad_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpsrad_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSRAD-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrad Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpsrad Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 0, 32), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 64, 96), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 96, 128), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi)))))))))) +convToRegKeys(R3) |-> concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 0, 32), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 64, 96), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 96, 128), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi)))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsraw_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpsraw_xmm_xmm_imm8.k index 045c6f45b..7f20cbf0d 100644 --- a/semantics/immediateInstructions/vpsraw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpsraw_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSRAW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsraw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpsraw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))))))))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsraw_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpsraw_ymm_ymm_imm8.k index 175af874e..0e7743c82 100644 --- a/semantics/immediateInstructions/vpsraw_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpsraw_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSRAW-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsraw Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpsraw Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 0, 16), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 16, 32), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 32, 48), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 64, 80), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 80, 96), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 96, 112), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 112, 128), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi)))))))))))))))))) +convToRegKeys(R3) |-> concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 0, 16), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 16, 32), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 32, 48), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 64, 80), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 80, 96), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 96, 112), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 112, 128), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi)))))))))))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrld_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpsrld_xmm_xmm_imm8.k index 15da742b1..2a39b8f50 100644 --- a/semantics/immediateInstructions/vpsrld_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpsrld_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSRLD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrld Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpsrld Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrld_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpsrld_ymm_ymm_imm8.k index 72a349d0f..978b933b9 100644 --- a/semantics/immediateInstructions/vpsrld_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpsrld_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSRLD-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrld Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpsrld Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(256, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 32), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 64, 96), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 96, 128), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(256, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 32), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 64, 96), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 96, 128), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), Imm8)))))))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrldq_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpsrldq_xmm_xmm_imm8.k index 4fff94a26..694d609ba 100644 --- a/semantics/immediateInstructions/vpsrldq_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpsrldq_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSRLDQ-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrldq Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpsrldq Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), uvalueMInt(mi(128, 3)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( Imm8, mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), Imm8) #fi), uvalueMInt(mi(128, 3)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrldq_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpsrldq_ymm_ymm_imm8.k index 1c84a8358..5b96863c9 100644 --- a/semantics/immediateInstructions/vpsrldq_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpsrldq_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSRLDQ-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrldq Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpsrldq Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), uvalueMInt(mi(128, 3))))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), uvalueMInt(mi(128, 3)))))) +convToRegKeys(R3) |-> concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( Imm8, mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), Imm8) #fi), uvalueMInt(mi(128, 3))))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( Imm8, mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), Imm8) #fi), uvalueMInt(mi(128, 3)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrlq_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpsrlq_xmm_xmm_imm8.k index a9f028f37..e939ba5fb 100644 --- a/semantics/immediateInstructions/vpsrlq_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpsrlq_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSRLQ-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrlq Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpsrlq Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrlq_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpsrlq_ymm_ymm_imm8.k index dc8e3143c..e17bbf1b4 100644 --- a/semantics/immediateInstructions/vpsrlq_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpsrlq_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSRLQ-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrlq Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpsrlq Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)) #then mi(256, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 64), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 64, 128), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)) #then mi(256, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 64), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 64, 128), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), Imm8)))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrlw_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpsrlw_xmm_xmm_imm8.k index feaac5ed6..fdfc88fc9 100644 --- a/semantics/immediateInstructions/vpsrlw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpsrlw_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSRLW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrlw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpsrlw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))))))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))))))))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrlw_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpsrlw_ymm_ymm_imm8.k index 468b8c297..895e2511d 100644 --- a/semantics/immediateInstructions/vpsrlw_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpsrlw_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSRLW-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrlw Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpsrlw Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(256, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 16), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 16, 32), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 48), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 64, 80), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 80, 96), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 96, 112), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 112, 128), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))))))))))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(256, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 16), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 16, 32), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 48), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 64, 80), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 80, 96), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 96, 112), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 112, 128), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), Imm8)))))))))))))))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vroundpd_xmm_xmm_imm8.k b/semantics/immediateInstructions/vroundpd_xmm_xmm_imm8.k index 050188897..db640f24d 100644 --- a/semantics/immediateInstructions/vroundpd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vroundpd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VROUNDPD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vroundpd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vroundpd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 128, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 128, 192), Imm8), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vroundpd_ymm_ymm_imm8.k b/semantics/immediateInstructions/vroundpd_ymm_ymm_imm8.k index 482e8f7d6..12b0c8742 100644 --- a/semantics/immediateInstructions/vroundpd_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vroundpd_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VROUNDPD-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vroundpd Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vroundpd Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 0, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 64, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 128, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8))))) +convToRegKeys(R3) |-> concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 0, 64), Imm8), concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 64, 128), Imm8), concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 128, 192), Imm8), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vroundps_xmm_xmm_imm8.k b/semantics/immediateInstructions/vroundps_xmm_xmm_imm8.k index 42d2190ce..9d699c753 100644 --- a/semantics/immediateInstructions/vroundps_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vroundps_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VROUNDPS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vroundps Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vroundps Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vroundps_ymm_ymm_imm8.k b/semantics/immediateInstructions/vroundps_ymm_ymm_imm8.k index 72063c856..368824159 100644 --- a/semantics/immediateInstructions/vroundps_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vroundps_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VROUNDPS-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vroundps Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vroundps Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8))))))))) +convToRegKeys(R3) |-> concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 0, 32), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 32, 64), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 64, 96), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 96, 128), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vroundsd_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vroundsd_xmm_xmm_xmm_imm8.k index 7d492fc1b..57adaac82 100644 --- a/semantics/immediateInstructions/vroundsd_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vroundsd_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VROUNDSD-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vroundsd Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vroundsd Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 192), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 192), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vroundss_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vroundss_xmm_xmm_xmm_imm8.k index a6db9c2ce..ebbc20f6a 100644 --- a/semantics/immediateInstructions/vroundss_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vroundss_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VROUNDSS-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vroundss Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vroundss Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 224), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 224), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vshufpd_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vshufpd_xmm_xmm_xmm_imm8.k index 329f78599..997df08cc 100644 --- a/semantics/immediateInstructions/vshufpd_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vshufpd_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VSHUFPD-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vshufpd Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vshufpd Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vshufpd_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vshufpd_ymm_ymm_ymm_imm8.k index 1ce14cee5..3460a1480 100644 --- a/semantics/immediateInstructions/vshufpd_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vshufpd_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VSHUFPD-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vshufpd Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vshufpd Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 0, 64) #else extractMInt( getParentValue(R2, RSMap), 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 64) #else extractMInt( getParentValue(R3, RSMap), 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi)))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 0, 64) #else extractMInt( getParentValue(R2, RSMap), 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 64) #else extractMInt( getParentValue(R3, RSMap), 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vshufps_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vshufps_xmm_xmm_xmm_imm8.k index 3a944fb06..ca649b4cd 100644 --- a/semantics/immediateInstructions/vshufps_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vshufps_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VSHUFPS-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vshufps Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vshufps Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vshufps_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vshufps_ymm_ymm_ymm_imm8.k index 30a23256e..38a41a71d 100644 --- a/semantics/immediateInstructions/vshufps_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vshufps_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VSHUFPS-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vshufps Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vshufps Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 0, 32) #else extractMInt( getParentValue(R2, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 0, 32) #else extractMInt( getParentValue(R2, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R3, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R3, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R3, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R3, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi)))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 0, 32) #else extractMInt( getParentValue(R2, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 0, 32) #else extractMInt( getParentValue(R2, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R3, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R3, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R3, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R3, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/xorb_al_imm8.k b/semantics/immediateInstructions/xorb_al_imm8.k index 0af254597..1018d6075 100644 --- a/semantics/immediateInstructions/xorb_al_imm8.k +++ b/semantics/immediateInstructions/xorb_al_imm8.k @@ -5,26 +5,27 @@ module XORB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (xorb Imm8:Imm, %al, .Operands) => . + execinstr (xorb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8))) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), Imm8)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/xorb_r8_imm8.k b/semantics/immediateInstructions/xorb_r8_imm8.k index ec7753259..eae9a2526 100644 --- a/semantics/immediateInstructions/xorb_r8_imm8.k +++ b/semantics/immediateInstructions/xorb_r8_imm8.k @@ -5,26 +5,27 @@ module XORB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (xorb Imm8:Imm, R2:R8, .Operands) => . + execinstr (xorb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), Imm8)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/xorb_rh_imm8.k b/semantics/immediateInstructions/xorb_rh_imm8.k index a9a3ea477..19c5fe0e3 100644 --- a/semantics/immediateInstructions/xorb_rh_imm8.k +++ b/semantics/immediateInstructions/xorb_rh_imm8.k @@ -5,26 +5,27 @@ module XORB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (xorb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (xorb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), handleImmediateWithSignExtend(Imm8, 8, 8))), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), Imm8)), extractMInt( getParentValue(R2, RSMap), 56, 64)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 55, 56), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 54, 55), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 53, 54), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 52, 53), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 51, 52), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 50, 51), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 49, 50), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 55, 56), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 54, 55), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 53, 54), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 52, 53), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 51, 52), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 50, 51), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 49, 50), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/xorl_eax_imm32.k b/semantics/immediateInstructions/xorl_eax_imm32.k index dc84f2486..1feaf1add 100644 --- a/semantics/immediateInstructions/xorl_eax_imm32.k +++ b/semantics/immediateInstructions/xorl_eax_imm32.k @@ -5,26 +5,27 @@ module XORL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (xorl Imm32:Imm, %eax, .Operands) => . + execinstr (xorl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32))) +"RAX" |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), Imm32)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/xorl_r32_imm32.k b/semantics/immediateInstructions/xorl_r32_imm32.k index 8e127eefa..f279404c0 100644 --- a/semantics/immediateInstructions/xorl_r32_imm32.k +++ b/semantics/immediateInstructions/xorl_r32_imm32.k @@ -5,26 +5,27 @@ module XORL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (xorl Imm32:Imm, R2:R32, .Operands) => . + execinstr (xorl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), Imm32)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/xorl_r32_imm8.k b/semantics/immediateInstructions/xorl_r32_imm8.k index aa2031d02..5cf1b3a09 100644 --- a/semantics/immediateInstructions/xorl_r32_imm8.k +++ b/semantics/immediateInstructions/xorl_r32_imm8.k @@ -5,26 +5,27 @@ module XORL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (xorl Imm8:Imm, R2:R32, .Operands) => . + execinstr (xorl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(Imm8)))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(Imm8))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/xorq_r64_imm32.k b/semantics/immediateInstructions/xorq_r64_imm32.k index f70089ca8..f9e3547b8 100644 --- a/semantics/immediateInstructions/xorq_r64_imm32.k +++ b/semantics/immediateInstructions/xorq_r64_imm32.k @@ -5,26 +5,27 @@ module XORQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (xorq Imm32:Imm, R2:R64, .Operands) => . + execinstr (xorq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> xorMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) +convToRegKeys(R2) |-> xorMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm32))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/xorq_r64_imm8.k b/semantics/immediateInstructions/xorq_r64_imm8.k index 62f739c12..63a2c5565 100644 --- a/semantics/immediateInstructions/xorq_r64_imm8.k +++ b/semantics/immediateInstructions/xorq_r64_imm8.k @@ -5,26 +5,27 @@ module XORQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (xorq Imm8:Imm, R2:R64, .Operands) => . + execinstr (xorq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> xorMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R2) |-> xorMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm8))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm8))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/xorq_rax_imm32.k b/semantics/immediateInstructions/xorq_rax_imm32.k index 3a645ba0b..48229bb94 100644 --- a/semantics/immediateInstructions/xorq_rax_imm32.k +++ b/semantics/immediateInstructions/xorq_rax_imm32.k @@ -5,26 +5,27 @@ module XORQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (xorq Imm32:Imm, %rax, .Operands) => . + execinstr (xorq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> xorMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) +"RAX" |-> xorMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(Imm32))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/xorw_ax_imm16.k b/semantics/immediateInstructions/xorw_ax_imm16.k index c5e109e8d..054d767ef 100644 --- a/semantics/immediateInstructions/xorw_ax_imm16.k +++ b/semantics/immediateInstructions/xorw_ax_imm16.k @@ -5,26 +5,27 @@ module XORW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (xorw Imm16:Imm, %ax, .Operands) => . + execinstr (xorw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16))) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), Imm16)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/xorw_r16_imm16.k b/semantics/immediateInstructions/xorw_r16_imm16.k index fcd512cc9..b66317629 100644 --- a/semantics/immediateInstructions/xorw_r16_imm16.k +++ b/semantics/immediateInstructions/xorw_r16_imm16.k @@ -5,26 +5,27 @@ module XORW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (xorw Imm16:Imm, R2:R16, .Operands) => . + execinstr (xorw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), Imm16)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/xorw_r16_imm8.k b/semantics/immediateInstructions/xorw_r16_imm8.k index 2c9571a15..010dad89a 100644 --- a/semantics/immediateInstructions/xorw_r16_imm8.k +++ b/semantics/immediateInstructions/xorw_r16_imm8.k @@ -5,26 +5,27 @@ module XORW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (xorw Imm8:Imm, R2:R16, .Operands) => . + execinstr (xorw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(Imm8)))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(Imm8))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/adcb_m8_imm8.k b/semantics/memoryInstructions/adcb_m8_imm8.k index 5e7da5cb1..aeb2b1e6a 100644 --- a/semantics/memoryInstructions/adcb_m8_imm8.k +++ b/semantics/memoryInstructions/adcb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADCB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(adcb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(adcb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (adcb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (adcb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (adcb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (adcb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (adcb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 9), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 9), MemOff, 8 ) @@ -25,17 +26,18 @@ module ADCB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/adcl_m32_imm32.k b/semantics/memoryInstructions/adcl_m32_imm32.k index aba9f1336..59969d39c 100644 --- a/semantics/memoryInstructions/adcl_m32_imm32.k +++ b/semantics/memoryInstructions/adcl_m32_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADCL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(adcl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(adcl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (adcl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (adcl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (adcl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (adcl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (adcl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module ADCL-M32-IMM32 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/adcl_m32_imm8.k b/semantics/memoryInstructions/adcl_m32_imm8.k index df520b7c7..75b1baffd 100644 --- a/semantics/memoryInstructions/adcl_m32_imm8.k +++ b/semantics/memoryInstructions/adcl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADCL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(adcl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(adcl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (adcl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (adcl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (adcl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (adcl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (adcl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module ADCL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/adcq_m64_imm32.k b/semantics/memoryInstructions/adcq_m64_imm32.k index a9231fbd6..4114ab313 100644 --- a/semantics/memoryInstructions/adcq_m64_imm32.k +++ b/semantics/memoryInstructions/adcq_m64_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADCQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(adcq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(adcq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (adcq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (adcq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (adcq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (adcq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (adcq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module ADCQ-M64-IMM32 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/adcq_m64_imm8.k b/semantics/memoryInstructions/adcq_m64_imm8.k index 19d1c3614..ebe1b2d1b 100644 --- a/semantics/memoryInstructions/adcq_m64_imm8.k +++ b/semantics/memoryInstructions/adcq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADCQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(adcq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(adcq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (adcq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (adcq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (adcq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (adcq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (adcq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module ADCQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/adcw_m16_imm16.k b/semantics/memoryInstructions/adcw_m16_imm16.k index 7d42ab352..06bb87e88 100644 --- a/semantics/memoryInstructions/adcw_m16_imm16.k +++ b/semantics/memoryInstructions/adcw_m16_imm16.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADCW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(adcw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(adcw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (adcw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (adcw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (adcw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (adcw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (adcw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module ADCW-M16-IMM16 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/adcw_m16_imm8.k b/semantics/memoryInstructions/adcw_m16_imm8.k index b665e40e5..619f4a481 100644 --- a/semantics/memoryInstructions/adcw_m16_imm8.k +++ b/semantics/memoryInstructions/adcw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADCW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(adcw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(adcw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (adcw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (adcw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (adcw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (adcw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (adcw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module ADCW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/addb_m8_imm8.k b/semantics/memoryInstructions/addb_m8_imm8.k index 95b1b0027..34879efa5 100644 --- a/semantics/memoryInstructions/addb_m8_imm8.k +++ b/semantics/memoryInstructions/addb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADDB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(addb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(addb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (addb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (addb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (addb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (addb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (addb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 1, 9), + extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 1, 9), MemOff, 8 ) @@ -25,17 +26,18 @@ module ADDB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/addl_m32_imm32.k b/semantics/memoryInstructions/addl_m32_imm32.k index 028c9ad0d..52363d96b 100644 --- a/semantics/memoryInstructions/addl_m32_imm32.k +++ b/semantics/memoryInstructions/addl_m32_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADDL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(addl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(addl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (addl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (addl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (addl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (addl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (addl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), + extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module ADDL-M32-IMM32 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/addl_m32_imm8.k b/semantics/memoryInstructions/addl_m32_imm8.k index aecf5b636..0ef6c6e3b 100644 --- a/semantics/memoryInstructions/addl_m32_imm8.k +++ b/semantics/memoryInstructions/addl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADDL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(addl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(addl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (addl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (addl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (addl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (addl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (addl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 1, 33), + extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module ADDL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/addq_m64_imm32.k b/semantics/memoryInstructions/addq_m64_imm32.k index 88d7d7eca..bb7500194 100644 --- a/semantics/memoryInstructions/addq_m64_imm32.k +++ b/semantics/memoryInstructions/addq_m64_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADDQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(addq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(addq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (addq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (addq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (addq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (addq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (addq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 1, 65), + extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module ADDQ-M64-IMM32 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/addq_m64_imm8.k b/semantics/memoryInstructions/addq_m64_imm8.k index 878771cb0..71c47e1ad 100644 --- a/semantics/memoryInstructions/addq_m64_imm8.k +++ b/semantics/memoryInstructions/addq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADDQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(addq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(addq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (addq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (addq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (addq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (addq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (addq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 1, 65), + extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module ADDQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/addw_m16_imm16.k b/semantics/memoryInstructions/addw_m16_imm16.k index c25bfea41..a9f6efd35 100644 --- a/semantics/memoryInstructions/addw_m16_imm16.k +++ b/semantics/memoryInstructions/addw_m16_imm16.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADDW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(addw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(addw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (addw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (addw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (addw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (addw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (addw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), + extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module ADDW-M16-IMM16 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/addw_m16_imm8.k b/semantics/memoryInstructions/addw_m16_imm8.k index b4e762107..f794ce67e 100644 --- a/semantics/memoryInstructions/addw_m16_imm8.k +++ b/semantics/memoryInstructions/addw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADDW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(addw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(addw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (addw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (addw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (addw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (addw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (addw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 1, 17), + extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module ADDW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/andb_m8_imm8.k b/semantics/memoryInstructions/andb_m8_imm8.k index 4d8477121..773d06975 100644 --- a/semantics/memoryInstructions/andb_m8_imm8.k +++ b/semantics/memoryInstructions/andb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ANDB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(andb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(andb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (andb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (andb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (andb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (andb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (andb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem8, handleImmediateWithSignExtend(Imm8, 8, 8)), + andMInt( Mem8, Imm8), MemOff, 8 ) @@ -27,15 +28,16 @@ module ANDB-M8-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem8, 7, 8), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem8, 6, 7), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 5, 6), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 4, 5), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 3, 4), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 2, 3), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 1, 2), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem8, 7, 8), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem8, 6, 7), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 5, 6), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 4, 5), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 3, 4), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 2, 3), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 1, 2), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 0, 1), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem8, handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem8, Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem8, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem8, 0, 1), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/andl_m32_imm32.k b/semantics/memoryInstructions/andl_m32_imm32.k index 3db2f3670..43bb2a437 100644 --- a/semantics/memoryInstructions/andl_m32_imm32.k +++ b/semantics/memoryInstructions/andl_m32_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ANDL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(andl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(andl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (andl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (andl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (andl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (andl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (andl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem32, handleImmediateWithSignExtend(Imm32, 32, 32)), + andMInt( Mem32, Imm32), MemOff, 32 ) @@ -27,15 +28,16 @@ module ANDL-M32-IMM32 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem32, 31, 32), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem32, 30, 31), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 29, 30), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 28, 29), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 27, 28), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 26, 27), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 25, 26), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 24, 25), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem32, 31, 32), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem32, 30, 31), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 29, 30), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 28, 29), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 27, 28), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 26, 27), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 25, 26), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 24, 25), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem32, handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem32, Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem32, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem32, 0, 1), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/andl_m32_imm8.k b/semantics/memoryInstructions/andl_m32_imm8.k index 7456a323c..74bff59dd 100644 --- a/semantics/memoryInstructions/andl_m32_imm8.k +++ b/semantics/memoryInstructions/andl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ANDL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(andl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(andl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (andl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (andl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (andl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (andl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (andl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem32, mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + andMInt( Mem32, mi(32, svalueMInt(Imm8))), MemOff, 32 ) @@ -27,15 +28,16 @@ module ANDL-M32-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem32, 31, 32), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem32, 30, 31), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 29, 30), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 28, 29), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 27, 28), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 26, 27), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 25, 26), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 24, 25), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem32, 31, 32), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem32, 30, 31), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 29, 30), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 28, 29), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 27, 28), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 26, 27), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 25, 26), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 24, 25), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem32, mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem32, mi(32, svalueMInt(Imm8))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem32, 0, 1), extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem32, 0, 1), extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/andq_m64_imm32.k b/semantics/memoryInstructions/andq_m64_imm32.k index 9cde4fc91..363c9d58f 100644 --- a/semantics/memoryInstructions/andq_m64_imm32.k +++ b/semantics/memoryInstructions/andq_m64_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ANDQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(andq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(andq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (andq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (andq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (andq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (andq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (andq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), + andMInt( Mem64, mi(64, svalueMInt(Imm32))), MemOff, 64 ) @@ -27,15 +28,16 @@ module ANDQ-M64-IMM32 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem64, 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem64, 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem64, 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem64, 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem64, mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/andq_m64_imm8.k b/semantics/memoryInstructions/andq_m64_imm8.k index b6a7c05d6..f1ce252b8 100644 --- a/semantics/memoryInstructions/andq_m64_imm8.k +++ b/semantics/memoryInstructions/andq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ANDQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(andq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(andq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (andq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (andq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (andq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (andq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (andq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + andMInt( Mem64, mi(64, svalueMInt(Imm8))), MemOff, 64 ) @@ -27,15 +28,16 @@ module ANDQ-M64-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem64, 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem64, 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem64, 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem64, 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem64, mi(64, svalueMInt(Imm8))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/andw_m16_imm16.k b/semantics/memoryInstructions/andw_m16_imm16.k index 8de6251f8..c752696e8 100644 --- a/semantics/memoryInstructions/andw_m16_imm16.k +++ b/semantics/memoryInstructions/andw_m16_imm16.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ANDW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(andw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(andw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (andw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (andw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (andw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (andw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (andw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem16, handleImmediateWithSignExtend(Imm16, 16, 16)), + andMInt( Mem16, Imm16), MemOff, 16 ) @@ -27,15 +28,16 @@ module ANDW-M16-IMM16 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem16, 15, 16), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem16, 14, 15), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 13, 14), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 12, 13), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 11, 12), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 10, 11), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 9, 10), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 8, 9), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem16, 15, 16), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem16, 14, 15), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 13, 14), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 12, 13), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 11, 12), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 10, 11), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 9, 10), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 8, 9), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem16, handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem16, Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem16, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem16, 0, 1), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/andw_m16_imm8.k b/semantics/memoryInstructions/andw_m16_imm8.k index 21ab10b69..7306f6154 100644 --- a/semantics/memoryInstructions/andw_m16_imm8.k +++ b/semantics/memoryInstructions/andw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ANDW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(andw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(andw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (andw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (andw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (andw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (andw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (andw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem16, mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + andMInt( Mem16, mi(16, svalueMInt(Imm8))), MemOff, 16 ) @@ -27,15 +28,16 @@ module ANDW-M16-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem16, 15, 16), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem16, 14, 15), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 13, 14), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 12, 13), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 11, 12), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 10, 11), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 9, 10), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 8, 9), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem16, 15, 16), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem16, 14, 15), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 13, 14), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 12, 13), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 11, 12), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 10, 11), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 9, 10), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 8, 9), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem16, mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem16, mi(16, svalueMInt(Imm8))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem16, 0, 1), extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem16, 0, 1), extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/blendpd_xmm_m128_imm8.k b/semantics/memoryInstructions/blendpd_xmm_m128_imm8.k index 2b4e3e551..7bfcbde9f 100644 --- a/semantics/memoryInstructions/blendpd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/blendpd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module BLENDPD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(blendpd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(blendpd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (blendpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (blendpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (blendpd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (blendpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (blendpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( Mem128, 0, 64) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( Mem128, 64, 128) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( Mem128, 0, 64) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( Mem128, 64, 128) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/blendps_xmm_m128_imm8.k b/semantics/memoryInstructions/blendps_xmm_m128_imm8.k index 18406df58..0b92507e1 100644 --- a/semantics/memoryInstructions/blendps_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/blendps_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module BLENDPS-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(blendps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(blendps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (blendps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (blendps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (blendps Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (blendps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (blendps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem128, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem128, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem128, 64, 96) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem128, 96, 128) #fi))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem128, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem128, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem128, 64, 96) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem128, 96, 128) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btcl_m32_imm8.k b/semantics/memoryInstructions/btcl_m32_imm8.k index 9b1e17548..db820437a 100644 --- a/semantics/memoryInstructions/btcl_m32_imm8.k +++ b/semantics/memoryInstructions/btcl_m32_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTCL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(btcl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btcl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btcl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 3)))), 8) ~> + execinstr (btcl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 3)))), 8) ~> execinstr (btcl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btcl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btcl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7)))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 3)))), + xorMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7)))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 3)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTCL-M32-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btcq_m64_imm8.k b/semantics/memoryInstructions/btcq_m64_imm8.k index 0c16168e9..c8074422c 100644 --- a/semantics/memoryInstructions/btcq_m64_imm8.k +++ b/semantics/memoryInstructions/btcq_m64_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTCQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(btcq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btcq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btcq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 7)))), 8) ~> + execinstr (btcq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 7)))), 8) ~> execinstr (btcq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btcq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btcq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7)))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 7)))), + xorMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7)))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 7)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTCQ-M64-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btcw_m16_imm8.k b/semantics/memoryInstructions/btcw_m16_imm8.k index 83d7d4257..610a98bce 100644 --- a/semantics/memoryInstructions/btcw_m16_imm8.k +++ b/semantics/memoryInstructions/btcw_m16_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTCW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(btcw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btcw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btcw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 1)))), 8) ~> + execinstr (btcw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 1)))), 8) ~> execinstr (btcw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btcw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btcw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7)))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 1)))), + xorMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7)))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 1)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTCW-M16-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btl_m32_imm8.k b/semantics/memoryInstructions/btl_m32_imm8.k index 5bc2facb9..788990aaf 100644 --- a/semantics/memoryInstructions/btl_m32_imm8.k +++ b/semantics/memoryInstructions/btl_m32_imm8.k @@ -4,22 +4,23 @@ requires "x86-configuration.k" module BTL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(btl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 3)))), 8) ~> + execinstr (btl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 3)))), 8) ~> execinstr (btl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -30,4 +31,5 @@ module BTL-M32-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btq_m64_imm8.k b/semantics/memoryInstructions/btq_m64_imm8.k index aa5f03472..6e5a81d94 100644 --- a/semantics/memoryInstructions/btq_m64_imm8.k +++ b/semantics/memoryInstructions/btq_m64_imm8.k @@ -4,22 +4,23 @@ requires "x86-configuration.k" module BTQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(btq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 7)))), 8) ~> + execinstr (btq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 7)))), 8) ~> execinstr (btq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -30,4 +31,5 @@ module BTQ-M64-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btrl_m32_imm8.k b/semantics/memoryInstructions/btrl_m32_imm8.k index b83a0c4b7..4a0d298bd 100644 --- a/semantics/memoryInstructions/btrl_m32_imm8.k +++ b/semantics/memoryInstructions/btrl_m32_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTRL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(btrl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btrl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btrl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 3)))), 8) ~> + execinstr (btrl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 3)))), 8) ~> execinstr (btrl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btrl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btrl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem8, negMInt( shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 3)))), + andMInt( Mem8, negMInt( shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 3)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTRL-M32-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btrq_m64_imm8.k b/semantics/memoryInstructions/btrq_m64_imm8.k index 28c7f669d..4bebaff18 100644 --- a/semantics/memoryInstructions/btrq_m64_imm8.k +++ b/semantics/memoryInstructions/btrq_m64_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTRQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(btrq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btrq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 7)))), 8) ~> + execinstr (btrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 7)))), 8) ~> execinstr (btrq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem8, negMInt( shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 7)))), + andMInt( Mem8, negMInt( shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 7)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTRQ-M64-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btrw_m16_imm8.k b/semantics/memoryInstructions/btrw_m16_imm8.k index 3b46b7ec3..35772e165 100644 --- a/semantics/memoryInstructions/btrw_m16_imm8.k +++ b/semantics/memoryInstructions/btrw_m16_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTRW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(btrw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btrw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 1)))), 8) ~> + execinstr (btrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 1)))), 8) ~> execinstr (btrw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem8, negMInt( shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 1)))), + andMInt( Mem8, negMInt( shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 1)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTRW-M16-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btsl_m32_imm8.k b/semantics/memoryInstructions/btsl_m32_imm8.k index f4456f003..e0589bc22 100644 --- a/semantics/memoryInstructions/btsl_m32_imm8.k +++ b/semantics/memoryInstructions/btsl_m32_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTSL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(btsl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btsl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btsl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 3)))), 8) ~> + execinstr (btsl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 3)))), 8) ~> execinstr (btsl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btsl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btsl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7)))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 3)))), + orMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7)))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 3)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTSL-M32-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btsq_m64_imm8.k b/semantics/memoryInstructions/btsq_m64_imm8.k index 8fc078d34..cb01a0318 100644 --- a/semantics/memoryInstructions/btsq_m64_imm8.k +++ b/semantics/memoryInstructions/btsq_m64_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTSQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(btsq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btsq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btsq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 7)))), 8) ~> + execinstr (btsq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 7)))), 8) ~> execinstr (btsq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btsq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btsq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7)))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 7)))), + orMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7)))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 7)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTSQ-M64-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btsw_m16_imm8.k b/semantics/memoryInstructions/btsw_m16_imm8.k index 47add1981..f8ba9e111 100644 --- a/semantics/memoryInstructions/btsw_m16_imm8.k +++ b/semantics/memoryInstructions/btsw_m16_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTSW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(btsw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btsw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btsw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 1)))), 8) ~> + execinstr (btsw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 1)))), 8) ~> execinstr (btsw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btsw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btsw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7)))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 1)))), + orMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7)))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 1)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTSW-M16-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btw_m16_imm8.k b/semantics/memoryInstructions/btw_m16_imm8.k index 7323d7516..c870485a3 100644 --- a/semantics/memoryInstructions/btw_m16_imm8.k +++ b/semantics/memoryInstructions/btw_m16_imm8.k @@ -4,22 +4,23 @@ requires "x86-configuration.k" module BTW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(btw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 1)))), 8) ~> + execinstr (btw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 1)))), 8) ~> execinstr (btw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -30,4 +31,5 @@ module BTW-M16-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/cmpb_m8_imm8.k b/semantics/memoryInstructions/cmpb_m8_imm8.k index 7cd42a343..09fc6df54 100644 --- a/semantics/memoryInstructions/cmpb_m8_imm8.k +++ b/semantics/memoryInstructions/cmpb_m8_imm8.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module CMPB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(cmpb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(cmpb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (cmpb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (cmpb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (cmpb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (cmpb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (cmpb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/cmpl_m32_imm32.k b/semantics/memoryInstructions/cmpl_m32_imm32.k index a52295de7..309f2eb41 100644 --- a/semantics/memoryInstructions/cmpl_m32_imm32.k +++ b/semantics/memoryInstructions/cmpl_m32_imm32.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module CMPL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(cmpl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(cmpl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (cmpl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (cmpl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (cmpl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (cmpl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (cmpl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/cmpl_m32_imm8.k b/semantics/memoryInstructions/cmpl_m32_imm8.k index ad19aac8c..8541f59b0 100644 --- a/semantics/memoryInstructions/cmpl_m32_imm8.k +++ b/semantics/memoryInstructions/cmpl_m32_imm8.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module CMPL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(cmpl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(cmpl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (cmpl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (cmpl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (cmpl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (cmpl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (cmpl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/cmppd_xmm_m128_imm8.k b/semantics/memoryInstructions/cmppd_xmm_m128_imm8.k index bffc625cb..29759e606 100644 --- a/semantics/memoryInstructions/cmppd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/cmppd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module CMPPD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(cmppd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(cmppd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (cmppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (cmppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (cmppd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (cmppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (cmppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/cmpps_xmm_m128_imm8.k b/semantics/memoryInstructions/cmpps_xmm_m128_imm8.k index d80631593..80103aeb9 100644 --- a/semantics/memoryInstructions/cmpps_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/cmpps_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module CMPPS-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(cmpps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(cmpps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (cmpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (cmpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (cmpps Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (cmpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (cmpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/cmpq_m64_imm32.k b/semantics/memoryInstructions/cmpq_m64_imm32.k index 7b4346fc7..a68829089 100644 --- a/semantics/memoryInstructions/cmpq_m64_imm32.k +++ b/semantics/memoryInstructions/cmpq_m64_imm32.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module CMPQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(cmpq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(cmpq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (cmpq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (cmpq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (cmpq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (cmpq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (cmpq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/cmpq_m64_imm8.k b/semantics/memoryInstructions/cmpq_m64_imm8.k index 6e800adb5..0c49b2505 100644 --- a/semantics/memoryInstructions/cmpq_m64_imm8.k +++ b/semantics/memoryInstructions/cmpq_m64_imm8.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module CMPQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(cmpq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(cmpq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (cmpq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (cmpq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (cmpq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (cmpq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (cmpq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/cmpsd_xmm_m64_imm8.k b/semantics/memoryInstructions/cmpsd_xmm_m64_imm8.k index f30bf9a63..1cf993429 100644 --- a/semantics/memoryInstructions/cmpsd_xmm_m64_imm8.k +++ b/semantics/memoryInstructions/cmpsd_xmm_m64_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module CMPSD-XMM-M64-IMM8 imports X86-CONFIGURATION - context execinstr(cmpsd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(cmpsd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (cmpsd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (cmpsd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (cmpsd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (cmpsd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (cmpsd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 192), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), Mem64, handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 192), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), Mem64, Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/cmpss_xmm_m32_imm8.k b/semantics/memoryInstructions/cmpss_xmm_m32_imm8.k index ef8caec79..028025abf 100644 --- a/semantics/memoryInstructions/cmpss_xmm_m32_imm8.k +++ b/semantics/memoryInstructions/cmpss_xmm_m32_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module CMPSS-XMM-M32-IMM8 imports X86-CONFIGURATION - context execinstr(cmpss:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(cmpss:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (cmpss:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (cmpss:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (cmpss Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (cmpss:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (cmpss:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 224), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), Mem32, handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 224), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), Mem32, Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/cmpw_m16_imm16.k b/semantics/memoryInstructions/cmpw_m16_imm16.k index d6dc438b0..a0e749569 100644 --- a/semantics/memoryInstructions/cmpw_m16_imm16.k +++ b/semantics/memoryInstructions/cmpw_m16_imm16.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module CMPW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(cmpw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(cmpw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (cmpw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (cmpw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (cmpw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (cmpw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (cmpw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/cmpw_m16_imm8.k b/semantics/memoryInstructions/cmpw_m16_imm8.k index 4290ec3f9..a75df6a77 100644 --- a/semantics/memoryInstructions/cmpw_m16_imm8.k +++ b/semantics/memoryInstructions/cmpw_m16_imm8.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module CMPW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(cmpw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(cmpw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (cmpw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (cmpw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (cmpw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (cmpw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (cmpw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/dppd_xmm_m128_imm8.k b/semantics/memoryInstructions/dppd_xmm_m128_imm8.k index 7be89118c..97cb12f44 100644 --- a/semantics/memoryInstructions/dppd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/dppd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module DPPD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(dppd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(dppd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (dppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (dppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (dppd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (dppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (dppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/dpps_xmm_m128_imm8.k b/semantics/memoryInstructions/dpps_xmm_m128_imm8.k index 98bc51dbb..adb5c4c7e 100644 --- a/semantics/memoryInstructions/dpps_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/dpps_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module DPPS-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(dpps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(dpps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (dpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (dpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (dpps Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (dpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (dpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/extractps_m32_xmm_imm8.k b/semantics/memoryInstructions/extractps_m32_xmm_imm8.k index 0a8278596..699f00c6e 100644 --- a/semantics/memoryInstructions/extractps_m32_xmm_imm8.k +++ b/semantics/memoryInstructions/extractps_m32_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module EXTRACTPS-M32-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(extractps:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(extractps:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (extractps:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (extractps:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (extractps Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (extractps:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (extractps:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), MemOff, 32 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/imull_r32_m32_imm32.k b/semantics/memoryInstructions/imull_r32_m32_imm32.k index 294774e3b..867105d6c 100644 --- a/semantics/memoryInstructions/imull_r32_m32_imm32.k +++ b/semantics/memoryInstructions/imull_r32_m32_imm32.k @@ -4,24 +4,25 @@ requires "x86-configuration.k" module IMULL-R32-M32-IMM32 imports X86-CONFIGURATION - context execinstr(imull:Opcode Imm32:Imm, HOLE:Mem, R3:R32, .Operands) [result(MemOffset)] + context execinstr(imull:Opcode Imm32:MInt, HOLE:Mem, R3:R32, .Operands) [result(MemOffset)] rule - execinstr (imull:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => + execinstr (imull:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (imull Imm32, memOffset( MemOff), R3, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (imull:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (imull:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 32, 64)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm32))), 32, 64)) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm32))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm32))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -31,7 +32,8 @@ convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, s "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm32))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm32))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/imull_r32_m32_imm8.k b/semantics/memoryInstructions/imull_r32_m32_imm8.k index d20b7193e..555aae15b 100644 --- a/semantics/memoryInstructions/imull_r32_m32_imm8.k +++ b/semantics/memoryInstructions/imull_r32_m32_imm8.k @@ -4,24 +4,25 @@ requires "x86-configuration.k" module IMULL-R32-M32-IMM8 imports X86-CONFIGURATION - context execinstr(imull:Opcode Imm8:Imm, HOLE:Mem, R3:R32, .Operands) [result(MemOffset)] + context execinstr(imull:Opcode Imm8:MInt, HOLE:Mem, R3:R32, .Operands) [result(MemOffset)] rule - execinstr (imull:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => + execinstr (imull:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (imull Imm8, memOffset( MemOff), R3, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (imull:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (imull:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 32, 64)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm8))), 32, 64)) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm8))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm8))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -31,7 +32,8 @@ convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, s "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm8))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm8))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/imulq_r64_m64_imm32.k b/semantics/memoryInstructions/imulq_r64_m64_imm32.k index 85f0420d1..f21476843 100644 --- a/semantics/memoryInstructions/imulq_r64_m64_imm32.k +++ b/semantics/memoryInstructions/imulq_r64_m64_imm32.k @@ -4,24 +4,25 @@ requires "x86-configuration.k" module IMULQ-R64-M64-IMM32 imports X86-CONFIGURATION - context execinstr(imulq:Opcode Imm32:Imm, HOLE:Mem, R3:R64, .Operands) [result(MemOffset)] + context execinstr(imulq:Opcode Imm32:MInt, HOLE:Mem, R3:R64, .Operands) [result(MemOffset)] rule - execinstr (imulq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => + execinstr (imulq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (imulq Imm32, memOffset( MemOff), R3, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (imulq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (imulq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 64, 128) +convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm32))), 64, 128) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm32))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm32))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -31,7 +32,8 @@ convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm32))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm32))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/imulq_r64_m64_imm8.k b/semantics/memoryInstructions/imulq_r64_m64_imm8.k index bb77f0b52..8877ae2d1 100644 --- a/semantics/memoryInstructions/imulq_r64_m64_imm8.k +++ b/semantics/memoryInstructions/imulq_r64_m64_imm8.k @@ -4,24 +4,25 @@ requires "x86-configuration.k" module IMULQ-R64-M64-IMM8 imports X86-CONFIGURATION - context execinstr(imulq:Opcode Imm8:Imm, HOLE:Mem, R3:R64, .Operands) [result(MemOffset)] + context execinstr(imulq:Opcode Imm8:MInt, HOLE:Mem, R3:R64, .Operands) [result(MemOffset)] rule - execinstr (imulq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => + execinstr (imulq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (imulq Imm8, memOffset( MemOff), R3, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (imulq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (imulq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 64, 128) +convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm8))), 64, 128) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm8))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm8))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -31,7 +32,8 @@ convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm8))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm8))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/imulw_r16_m16_imm16.k b/semantics/memoryInstructions/imulw_r16_m16_imm16.k index c129cfdfa..d0442984c 100644 --- a/semantics/memoryInstructions/imulw_r16_m16_imm16.k +++ b/semantics/memoryInstructions/imulw_r16_m16_imm16.k @@ -4,24 +4,25 @@ requires "x86-configuration.k" module IMULW-R16-M16-IMM16 imports X86-CONFIGURATION - context execinstr(imulw:Opcode Imm16:Imm, HOLE:Mem, R3:R16, .Operands) [result(MemOffset)] + context execinstr(imulw:Opcode Imm16:MInt, HOLE:Mem, R3:R16, .Operands) [result(MemOffset)] rule - execinstr (imulw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, R3:R16, .Operands) => + execinstr (imulw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, R3:R16, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (imulw Imm16, memOffset( MemOff), R3, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (imulw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, R3:R16, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (imulw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, R3:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 48), extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), 16, 32)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 48), extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm16))), 16, 32)) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm16))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm16))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -31,7 +32,8 @@ convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0 "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm16))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm16))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/imulw_r16_m16_imm8.k b/semantics/memoryInstructions/imulw_r16_m16_imm8.k index b9081447b..991155d3d 100644 --- a/semantics/memoryInstructions/imulw_r16_m16_imm8.k +++ b/semantics/memoryInstructions/imulw_r16_m16_imm8.k @@ -4,24 +4,25 @@ requires "x86-configuration.k" module IMULW-R16-M16-IMM8 imports X86-CONFIGURATION - context execinstr(imulw:Opcode Imm8:Imm, HOLE:Mem, R3:R16, .Operands) [result(MemOffset)] + context execinstr(imulw:Opcode Imm8:MInt, HOLE:Mem, R3:R16, .Operands) [result(MemOffset)] rule - execinstr (imulw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R16, .Operands) => + execinstr (imulw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R16, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (imulw Imm8, memOffset( MemOff), R3, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (imulw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R16, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (imulw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 48), extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 16, 32)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 48), extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm8))), 16, 32)) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm8))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm8))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -31,7 +32,8 @@ convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0 "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm8))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm8))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/insertps_xmm_m32_imm8.k b/semantics/memoryInstructions/insertps_xmm_m32_imm8.k index f6861f6a5..a8f37f333 100644 --- a/semantics/memoryInstructions/insertps_xmm_m32_imm8.k +++ b/semantics/memoryInstructions/insertps_xmm_m32_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module INSERTPS-XMM-M32-IMM8 imports X86-CONFIGURATION - context execinstr(insertps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(insertps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (insertps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (insertps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (insertps Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (insertps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (insertps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else Mem32 #fi) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 160, 192) #fi) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else Mem32 #fi) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 160, 192) #fi) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/movb_m8_imm8.k b/semantics/memoryInstructions/movb_m8_imm8.k index c20f4a528..3117cf52f 100644 --- a/semantics/memoryInstructions/movb_m8_imm8.k +++ b/semantics/memoryInstructions/movb_m8_imm8.k @@ -4,17 +4,18 @@ requires "x86-configuration.k" module MOVB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(movb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(movb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (movb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (movb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, MemOff, 8 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/movl_m32_imm32.k b/semantics/memoryInstructions/movl_m32_imm32.k index b92e8ce16..617a1b1b0 100644 --- a/semantics/memoryInstructions/movl_m32_imm32.k +++ b/semantics/memoryInstructions/movl_m32_imm32.k @@ -4,17 +4,18 @@ requires "x86-configuration.k" module MOVL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(movl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(movl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (movl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (movl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - handleImmediateWithSignExtend(Imm32, 32, 32), + Imm32, MemOff, 32 ) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/movq_m64_imm32.k b/semantics/memoryInstructions/movq_m64_imm32.k index a7327cfbe..3cfb363fa 100644 --- a/semantics/memoryInstructions/movq_m64_imm32.k +++ b/semantics/memoryInstructions/movq_m64_imm32.k @@ -4,17 +4,18 @@ requires "x86-configuration.k" module MOVQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(movq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(movq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (movq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (movq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), + mi(64, svalueMInt(Imm32)), MemOff, 64 ) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/movw_m16_imm16.k b/semantics/memoryInstructions/movw_m16_imm16.k index b27741cec..ef60688ab 100644 --- a/semantics/memoryInstructions/movw_m16_imm16.k +++ b/semantics/memoryInstructions/movw_m16_imm16.k @@ -4,17 +4,18 @@ requires "x86-configuration.k" module MOVW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(movw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(movw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (movw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (movw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - handleImmediateWithSignExtend(Imm16, 16, 16), + Imm16, MemOff, 16 ) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/mpsadbw_xmm_m128_imm8.k b/semantics/memoryInstructions/mpsadbw_xmm_m128_imm8.k index 371a5ad43..c9368664f 100644 --- a/semantics/memoryInstructions/mpsadbw_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/mpsadbw_xmm_m128_imm8.k @@ -15,43 +15,44 @@ module MPSADBW-XMM-M128-IMM8 rule memLoadValue(MemVal:MInt):MemLoadValue ~> - execinstr (mpsadbw Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (mpsadbw Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => execinstr (mpsadbw selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 7 , 0 ), + extractMInt(Imm8, 6, 8), 7 , 0 ), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 15, 8 ), + extractMInt(Imm8, 6, 8), 15, 8 ), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 23, 16), + extractMInt(Imm8, 6, 8), 23, 16), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 31, 24), + extractMInt(Imm8, 6, 8), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 7 , 0), + extractMInt(Imm8, 5, 6), 7 , 0), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 15, 8), + extractMInt(Imm8, 5, 6), 15, 8), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 23, 16), + extractMInt(Imm8, 5, 6), 23, 16), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 31, 24), + extractMInt(Imm8, 5, 6), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 39, 32), + extractMInt(Imm8, 5, 6), 39, 32), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 47, 40), + extractMInt(Imm8, 5, 6), 47, 40), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 55, 48), + extractMInt(Imm8, 5, 6), 55, 48), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 63, 56), + extractMInt(Imm8, 5, 6), 63, 56), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 71, 64), + extractMInt(Imm8, 5, 6), 71, 64), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 79, 72), + extractMInt(Imm8, 5, 6), 79, 72), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 87, 80), + extractMInt(Imm8, 5, 6), 87, 80), R3:Xmm, .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (mpsadbw diff --git a/semantics/memoryInstructions/orb_m8_imm8.k b/semantics/memoryInstructions/orb_m8_imm8.k index b4ca5efcd..5ba532294 100644 --- a/semantics/memoryInstructions/orb_m8_imm8.k +++ b/semantics/memoryInstructions/orb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ORB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(orb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(orb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (orb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (orb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (orb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (orb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (orb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem8, handleImmediateWithSignExtend(Imm8, 8, 8)), + orMInt( Mem8, Imm8), MemOff, 8 ) @@ -27,15 +28,16 @@ module ORB-M8-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem8, 7, 8), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem8, 6, 7), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 5, 6), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 4, 5), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 3, 4), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 2, 3), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 1, 2), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem8, 7, 8), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem8, 6, 7), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 5, 6), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 4, 5), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 3, 4), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 2, 3), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 1, 2), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 0, 1), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( Mem8, handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( Mem8, Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( Mem8, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> orMInt( extractMInt( Mem8, 0, 1), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/orl_m32_imm32.k b/semantics/memoryInstructions/orl_m32_imm32.k index ea98dc7d6..3ecaaea14 100644 --- a/semantics/memoryInstructions/orl_m32_imm32.k +++ b/semantics/memoryInstructions/orl_m32_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ORL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(orl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(orl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (orl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (orl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (orl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (orl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (orl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem32, handleImmediateWithSignExtend(Imm32, 32, 32)), + orMInt( Mem32, Imm32), MemOff, 32 ) @@ -27,15 +28,16 @@ module ORL-M32-IMM32 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem32, 31, 32), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem32, 30, 31), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 29, 30), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 28, 29), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 27, 28), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 26, 27), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 25, 26), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 24, 25), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem32, 31, 32), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem32, 30, 31), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 29, 30), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 28, 29), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 27, 28), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 26, 27), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 25, 26), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 24, 25), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( Mem32, handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( Mem32, Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( Mem32, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> orMInt( extractMInt( Mem32, 0, 1), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/orl_m32_imm8.k b/semantics/memoryInstructions/orl_m32_imm8.k index 04524a8c5..6340e5e0a 100644 --- a/semantics/memoryInstructions/orl_m32_imm8.k +++ b/semantics/memoryInstructions/orl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ORL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(orl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(orl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (orl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (orl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (orl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (orl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (orl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem32, mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + orMInt( Mem32, mi(32, svalueMInt(Imm8))), MemOff, 32 ) @@ -27,15 +28,16 @@ module ORL-M32-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem32, 31, 32), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem32, 30, 31), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 29, 30), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 28, 29), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 27, 28), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 26, 27), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 25, 26), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 24, 25), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem32, 31, 32), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem32, 30, 31), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 29, 30), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 28, 29), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 27, 28), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 26, 27), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 25, 26), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 24, 25), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( Mem32, mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( Mem32, mi(32, svalueMInt(Imm8))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( Mem32, 0, 1), extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> orMInt( extractMInt( Mem32, 0, 1), extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/orq_m64_imm32.k b/semantics/memoryInstructions/orq_m64_imm32.k index eccfb584b..7bd639dc6 100644 --- a/semantics/memoryInstructions/orq_m64_imm32.k +++ b/semantics/memoryInstructions/orq_m64_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ORQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(orq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(orq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (orq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (orq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (orq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (orq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (orq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), + orMInt( Mem64, mi(64, svalueMInt(Imm32))), MemOff, 64 ) @@ -27,15 +28,16 @@ module ORQ-M64-IMM32 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem64, 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem64, 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem64, 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem64, 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( Mem64, mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> orMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/orq_m64_imm8.k b/semantics/memoryInstructions/orq_m64_imm8.k index af93c42cb..0b8480302 100644 --- a/semantics/memoryInstructions/orq_m64_imm8.k +++ b/semantics/memoryInstructions/orq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ORQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(orq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(orq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (orq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (orq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (orq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (orq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (orq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + orMInt( Mem64, mi(64, svalueMInt(Imm8))), MemOff, 64 ) @@ -27,15 +28,16 @@ module ORQ-M64-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem64, 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem64, 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem64, 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem64, 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( Mem64, mi(64, svalueMInt(Imm8))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> orMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/orw_m16_imm16.k b/semantics/memoryInstructions/orw_m16_imm16.k index 4a1e8e32c..4968ddc8f 100644 --- a/semantics/memoryInstructions/orw_m16_imm16.k +++ b/semantics/memoryInstructions/orw_m16_imm16.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ORW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(orw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(orw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (orw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (orw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (orw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (orw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (orw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem16, handleImmediateWithSignExtend(Imm16, 16, 16)), + orMInt( Mem16, Imm16), MemOff, 16 ) @@ -27,15 +28,16 @@ module ORW-M16-IMM16 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem16, 15, 16), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem16, 14, 15), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 13, 14), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 12, 13), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 11, 12), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 10, 11), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 9, 10), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 8, 9), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem16, 15, 16), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem16, 14, 15), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 13, 14), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 12, 13), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 11, 12), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 10, 11), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 9, 10), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 8, 9), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( Mem16, handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( Mem16, Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( Mem16, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> orMInt( extractMInt( Mem16, 0, 1), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/orw_m16_imm8.k b/semantics/memoryInstructions/orw_m16_imm8.k index 3c5ace79a..0bfc5cc92 100644 --- a/semantics/memoryInstructions/orw_m16_imm8.k +++ b/semantics/memoryInstructions/orw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ORW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(orw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(orw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (orw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (orw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (orw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (orw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (orw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem16, mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + orMInt( Mem16, mi(16, svalueMInt(Imm8))), MemOff, 16 ) @@ -27,15 +28,16 @@ module ORW-M16-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem16, 15, 16), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem16, 14, 15), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 13, 14), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 12, 13), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 11, 12), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 10, 11), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 9, 10), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 8, 9), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem16, 15, 16), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem16, 14, 15), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 13, 14), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 12, 13), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 11, 12), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 10, 11), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 9, 10), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 8, 9), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( Mem16, mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( Mem16, mi(16, svalueMInt(Imm8))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( Mem16, 0, 1), extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> orMInt( extractMInt( Mem16, 0, 1), extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/palignr_xmm_m128_imm8.k b/semantics/memoryInstructions/palignr_xmm_m128_imm8.k index c7c367b4d..4a180da4e 100644 --- a/semantics/memoryInstructions/palignr_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/palignr_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PALIGNR-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(palignr:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(palignr:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (palignr:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (palignr:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (palignr Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (palignr:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (palignr:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), Mem128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), uvalueMInt(mi(256, 3))))), 128, 256)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), Mem128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), Imm8), uvalueMInt(mi(256, 3))))), 128, 256)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pblendw_xmm_m128_imm8.k b/semantics/memoryInstructions/pblendw_xmm_m128_imm8.k index 43af6e40d..aa6593bf9 100644 --- a/semantics/memoryInstructions/pblendw_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pblendw_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PBLENDW-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(pblendw:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(pblendw:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pblendw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pblendw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (pblendw Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pblendw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pblendw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( Mem128, 0, 16) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( Mem128, 16, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( Mem128, 32, 48) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( Mem128, 48, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( Mem128, 64, 80) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( Mem128, 80, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( Mem128, 96, 112) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( Mem128, 112, 128) #fi))))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( Mem128, 0, 16) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( Mem128, 16, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( Mem128, 32, 48) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( Mem128, 48, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( Mem128, 64, 80) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( Mem128, 80, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( Mem128, 96, 112) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( Mem128, 112, 128) #fi))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pclmulqdq_xmm_m128_imm8.k b/semantics/memoryInstructions/pclmulqdq_xmm_m128_imm8.k index 99509379b..d7e6dd713 100644 --- a/semantics/memoryInstructions/pclmulqdq_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pclmulqdq_xmm_m128_imm8.k @@ -59,15 +59,14 @@ module PCLMULQDQ-XMM-M128-IMM8 */ rule memLoadValue(MemVal:MInt):MemLoadValue ~> - execinstr (pclmulqdq Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pclmulqdq Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => execinstr(pclmulqdq - selectSlice(getRegisterValue(R3, RSMap), handleImmediateWithSignExtend(Imm8, - 8, 8), 7, 64, 0), - selectSlice(MemVal, handleImmediateWithSignExtend(Imm8, - 8, 8), 3, 64, 0), R3 + selectSlice(getRegisterValue(R3, RSMap), Imm8, 7, 64, 0), + selectSlice(MemVal, Imm8, 3, 64, 0), R3 , .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (pclmulqdq TEMP1:MInt, TEMP2:MInt, R3:Xmm, .Operands) => diff --git a/semantics/memoryInstructions/pcmpestri_xmm_m128_imm8.k b/semantics/memoryInstructions/pcmpestri_xmm_m128_imm8.k index 61a510c17..45b1025e5 100644 --- a/semantics/memoryInstructions/pcmpestri_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pcmpestri_xmm_m128_imm8.k @@ -4,27 +4,28 @@ requires "x86-configuration.k" module PCMPESTRI-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(pcmpestri:Opcode Imm8:Imm, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] + context execinstr(pcmpestri:Opcode Imm8:MInt, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pcmpestri:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => + execinstr (pcmpestri:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (pcmpestri Imm8, memOffset( MemOff), Xmm1, .Operands) ... - + requires bitwidthMInt(Imm8) ==Int 8 // Find Limit Index rule memLoadValue(Mem128:MInt):MemLoadValue ~> - execinstr (pcmpestri Imm8:Imm, memOffset( MemOff), Xmm1:Xmm, .Operands) => + execinstr (pcmpestri Imm8:MInt, memOffset( MemOff), Xmm1:Xmm, .Operands) => execinstr (pcmpestri - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, Mem128, getRegisterValue(Xmm1, RSMap), - findLimitIndexE(Mem128, getRegisterValue(%rdx, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexE(Mem128, getRegisterValue(%rdx, RSMap), Imm8), + findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/memoryInstructions/pcmpestrm_xmm_m128_imm8.k b/semantics/memoryInstructions/pcmpestrm_xmm_m128_imm8.k index 958a11c68..767460a26 100644 --- a/semantics/memoryInstructions/pcmpestrm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pcmpestrm_xmm_m128_imm8.k @@ -4,26 +4,27 @@ requires "x86-configuration.k" module PCMPESTRM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(pcmpestrm:Opcode Imm8:Imm, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] + context execinstr(pcmpestrm:Opcode Imm8:MInt, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pcmpestrm:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => + execinstr (pcmpestrm:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (pcmpestrm Imm8, memOffset( MemOff), Xmm1, .Operands) ... - + requires bitwidthMInt(Imm8) ==Int 8 // Find Limit Index rule memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pcmpestrm Imm8, memOffset( MemOff), Xmm1, .Operands) => execinstr (pcmpestrm - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, Mem128, getRegisterValue(Xmm1, RSMap), - findLimitIndexE(Mem128, getRegisterValue(%rdx, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexE(Mem128, getRegisterValue(%rdx, RSMap), Imm8), + findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/memoryInstructions/pcmpistri_xmm_m128_imm8.k b/semantics/memoryInstructions/pcmpistri_xmm_m128_imm8.k index 5a15c9732..39b1d8978 100644 --- a/semantics/memoryInstructions/pcmpistri_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pcmpistri_xmm_m128_imm8.k @@ -4,27 +4,28 @@ requires "x86-configuration.k" module PCMPISTRI-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(pcmpistri:Opcode Imm8:Imm, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] + context execinstr(pcmpistri:Opcode Imm8:MInt, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pcmpistri:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => + execinstr (pcmpistri:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (pcmpistri Imm8, memOffset( MemOff), Xmm1, .Operands) ... - + requires bitwidthMInt(Imm8) ==Int 8 // Find Limit Index rule memLoadValue(Mem128:MInt):MemLoadValue ~> - execinstr (pcmpistri Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (pcmpistri Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (pcmpistri - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, Mem128, getRegisterValue(Xmm1, RSMap), - findLimitIndexI(Mem128, handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexI(getRegisterValue(Xmm1, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexI(Mem128, Imm8), + findLimitIndexI(getRegisterValue(Xmm1, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/memoryInstructions/pcmpistrm_xmm_m128_imm8.k b/semantics/memoryInstructions/pcmpistrm_xmm_m128_imm8.k index 62bca883f..6dd931b04 100644 --- a/semantics/memoryInstructions/pcmpistrm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pcmpistrm_xmm_m128_imm8.k @@ -4,26 +4,28 @@ requires "x86-configuration.k" module PCMPISTRM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(pcmpistrm:Opcode Imm8:Imm, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] + context execinstr(pcmpistrm:Opcode Imm8:MInt, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pcmpistrm:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => + execinstr (pcmpistrm:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (pcmpistrm Imm8, memOffset( MemOff), Xmm1, .Operands) ... + requires bitwidthMInt(Imm8) ==Int 8 // Find Limit Index rule memLoadValue(Mem128:MInt):MemLoadValue ~> - execinstr (pcmpistrm Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (pcmpistrm Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (pcmpistrm - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, Mem128, getRegisterValue(Xmm1, RSMap), - findLimitIndexI(Mem128, handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexI(getRegisterValue(Xmm1, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexI(Mem128, Imm8), + findLimitIndexI(getRegisterValue(Xmm1, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/memoryInstructions/pextrb_m8_xmm_imm8.k b/semantics/memoryInstructions/pextrb_m8_xmm_imm8.k index d7ab2d23b..b73966a0d 100644 --- a/semantics/memoryInstructions/pextrb_m8_xmm_imm8.k +++ b/semantics/memoryInstructions/pextrb_m8_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module PEXTRB-M8-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(pextrb:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(pextrb:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (pextrb:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (pextrb:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (pextrb Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (pextrb:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (pextrb:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128), MemOff, 8 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pextrd_m32_xmm_imm8.k b/semantics/memoryInstructions/pextrd_m32_xmm_imm8.k index f5407af77..7f06e8236 100644 --- a/semantics/memoryInstructions/pextrd_m32_xmm_imm8.k +++ b/semantics/memoryInstructions/pextrd_m32_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module PEXTRD-M32-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(pextrd:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(pextrd:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (pextrd:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (pextrd:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (pextrd Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (pextrd:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (pextrd:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), MemOff, 32 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pextrq_m64_xmm_imm8.k b/semantics/memoryInstructions/pextrq_m64_xmm_imm8.k index 0d61dfb30..5aa3bbb84 100644 --- a/semantics/memoryInstructions/pextrq_m64_xmm_imm8.k +++ b/semantics/memoryInstructions/pextrq_m64_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module PEXTRQ-M64-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(pextrq:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(pextrq:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (pextrq:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (pextrq:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (pextrq Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (pextrq:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (pextrq:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))), 64, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))), 64, 128), MemOff, 64 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pextrw_m16_xmm_imm8.k b/semantics/memoryInstructions/pextrw_m16_xmm_imm8.k index f95eff99d..9935ae96a 100644 --- a/semantics/memoryInstructions/pextrw_m16_xmm_imm8.k +++ b/semantics/memoryInstructions/pextrw_m16_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module PEXTRW-M16-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(pextrw:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(pextrw:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (pextrw:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (pextrw:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (pextrw Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (pextrw:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (pextrw:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128), MemOff, 16 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pinsrb_xmm_m8_imm8.k b/semantics/memoryInstructions/pinsrb_xmm_m8_imm8.k index 042e06a78..49e837687 100644 --- a/semantics/memoryInstructions/pinsrb_xmm_m8_imm8.k +++ b/semantics/memoryInstructions/pinsrb_xmm_m8_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PINSRB-XMM-M8-IMM8 imports X86-CONFIGURATION - context execinstr(pinsrb:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(pinsrb:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pinsrb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pinsrb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (pinsrb Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (pinsrb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (pinsrb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(120, 0), Mem8), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3)))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(120, 0), Mem8), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pinsrd_xmm_m32_imm8.k b/semantics/memoryInstructions/pinsrd_xmm_m32_imm8.k index 56522bc13..0516c0b31 100644 --- a/semantics/memoryInstructions/pinsrd_xmm_m32_imm8.k +++ b/semantics/memoryInstructions/pinsrd_xmm_m32_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PINSRD-XMM-M32-IMM8 imports X86-CONFIGURATION - context execinstr(pinsrd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(pinsrd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pinsrd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pinsrd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (pinsrd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (pinsrd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (pinsrd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), Mem32), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5)))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), Mem32), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pinsrq_xmm_m64_imm8.k b/semantics/memoryInstructions/pinsrq_xmm_m64_imm8.k index edfe63203..7b9bc6903 100644 --- a/semantics/memoryInstructions/pinsrq_xmm_m64_imm8.k +++ b/semantics/memoryInstructions/pinsrq_xmm_m64_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PINSRQ-XMM-M64-IMM8 imports X86-CONFIGURATION - context execinstr(pinsrq:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(pinsrq:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pinsrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pinsrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (pinsrq Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (pinsrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (pinsrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(64, 0), Mem64), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))), shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6)))))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(64, 0), Mem64), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))), shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pinsrw_xmm_m16_imm8.k b/semantics/memoryInstructions/pinsrw_xmm_m16_imm8.k index 5bed131d4..7ae87cb30 100644 --- a/semantics/memoryInstructions/pinsrw_xmm_m16_imm8.k +++ b/semantics/memoryInstructions/pinsrw_xmm_m16_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PINSRW-XMM-M16-IMM8 imports X86-CONFIGURATION - context execinstr(pinsrw:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(pinsrw:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pinsrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pinsrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (pinsrw Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (pinsrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (pinsrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(112, 0), Mem16), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4)))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(112, 0), Mem16), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pshufd_xmm_m128_imm8.k b/semantics/memoryInstructions/pshufd_xmm_m128_imm8.k index f0842f0ea..3a8776d47 100644 --- a/semantics/memoryInstructions/pshufd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pshufd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PSHUFD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(pshufd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(pshufd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pshufd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pshufd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (pshufd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pshufd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pshufd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pshufhw_xmm_m128_imm8.k b/semantics/memoryInstructions/pshufhw_xmm_m128_imm8.k index 21db89b0b..ac5963cc5 100644 --- a/semantics/memoryInstructions/pshufhw_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pshufhw_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PSHUFHW-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(pshufhw:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(pshufhw:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pshufhw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pshufhw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (pshufhw Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pshufhw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pshufhw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 4))))), 48, 64), extractMInt( Mem128, 64, 128)))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 4))))), 48, 64), extractMInt( Mem128, 64, 128)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pshuflw_xmm_m128_imm8.k b/semantics/memoryInstructions/pshuflw_xmm_m128_imm8.k index 40071f4bf..916bf22a1 100644 --- a/semantics/memoryInstructions/pshuflw_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pshuflw_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PSHUFLW-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(pshuflw:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(pshuflw:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pshuflw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pshuflw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (pshuflw Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pshuflw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pshuflw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( Mem128, 0, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 4))))), 112, 128), extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 4))))), 112, 128)))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( Mem128, 0, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 4))))), 112, 128), extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 4))))), 112, 128)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rclb_m8_imm8.k b/semantics/memoryInstructions/rclb_m8_imm8.k index 1e9c4b1a0..212f87c6f 100644 --- a/semantics/memoryInstructions/rclb_m8_imm8.k +++ b/semantics/memoryInstructions/rclb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RCLB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(rclb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rclb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rclb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rclb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (rclb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (rclb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (rclb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 9), + extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 9), MemOff, 8 ) @@ -25,9 +26,10 @@ module RCLB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rcll_m32_imm8.k b/semantics/memoryInstructions/rcll_m32_imm8.k index 1820d2099..e0da5ed9c 100644 --- a/semantics/memoryInstructions/rcll_m32_imm8.k +++ b/semantics/memoryInstructions/rcll_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RCLL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(rcll:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rcll:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rcll:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rcll:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (rcll Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (rcll:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (rcll:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 1, 33), + extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 1, 33), MemOff, 32 ) @@ -25,9 +26,10 @@ module RCLL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rclq_m64_imm8.k b/semantics/memoryInstructions/rclq_m64_imm8.k index 8f5625314..cf3443d73 100644 --- a/semantics/memoryInstructions/rclq_m64_imm8.k +++ b/semantics/memoryInstructions/rclq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RCLQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(rclq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rclq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rclq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rclq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (rclq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rclq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rclq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 1, 65), + extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 1, 65), MemOff, 64 ) @@ -25,9 +26,10 @@ module RCLQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rclw_m16_imm8.k b/semantics/memoryInstructions/rclw_m16_imm8.k index bd9fdc138..db3ea085e 100644 --- a/semantics/memoryInstructions/rclw_m16_imm8.k +++ b/semantics/memoryInstructions/rclw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RCLW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(rclw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rclw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rclw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rclw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (rclw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (rclw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (rclw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 1, 17), + extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 1, 17), MemOff, 16 ) @@ -25,9 +26,10 @@ module RCLW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rcrb_m8_imm8.k b/semantics/memoryInstructions/rcrb_m8_imm8.k index 56168eaba..6b37b602b 100644 --- a/semantics/memoryInstructions/rcrb_m8_imm8.k +++ b/semantics/memoryInstructions/rcrb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RCRB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(rcrb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rcrb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rcrb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rcrb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (rcrb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (rcrb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (rcrb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 9), + extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 9), MemOff, 8 ) @@ -25,9 +26,10 @@ module RCRB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rcrl_m32_imm8.k b/semantics/memoryInstructions/rcrl_m32_imm8.k index eb957b2fb..aa3cd6441 100644 --- a/semantics/memoryInstructions/rcrl_m32_imm8.k +++ b/semantics/memoryInstructions/rcrl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RCRL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(rcrl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rcrl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rcrl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rcrl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (rcrl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (rcrl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (rcrl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 1, 33), + extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 1, 33), MemOff, 32 ) @@ -25,9 +26,10 @@ module RCRL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rcrq_m64_imm8.k b/semantics/memoryInstructions/rcrq_m64_imm8.k index e4ff5d706..4b542beb5 100644 --- a/semantics/memoryInstructions/rcrq_m64_imm8.k +++ b/semantics/memoryInstructions/rcrq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RCRQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(rcrq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rcrq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rcrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rcrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (rcrq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rcrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rcrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 1, 65), + extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 1, 65), MemOff, 64 ) @@ -25,9 +26,10 @@ module RCRQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rcrw_m16_imm8.k b/semantics/memoryInstructions/rcrw_m16_imm8.k index d580ecd02..ba4cc16fe 100644 --- a/semantics/memoryInstructions/rcrw_m16_imm8.k +++ b/semantics/memoryInstructions/rcrw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RCRW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(rcrw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rcrw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rcrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rcrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (rcrw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (rcrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (rcrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 1, 17), + extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 1, 17), MemOff, 16 ) @@ -25,9 +26,10 @@ module RCRW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rolb_m8_imm8.k b/semantics/memoryInstructions/rolb_m8_imm8.k index 115587aac..c825e8e4a 100644 --- a/semantics/memoryInstructions/rolb_m8_imm8.k +++ b/semantics/memoryInstructions/rolb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ROLB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(rolb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rolb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rolb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rolb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (rolb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (rolb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (rolb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - rol( Mem8, andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), + rol( Mem8, andMInt( Imm8, mi(8, 31))), MemOff, 8 ) @@ -25,9 +26,10 @@ module ROLB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( Mem8, andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 7, 8), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( Mem8, andMInt( Imm8, mi(8, 31))), 7, 8), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( Mem8, andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem8, andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 7, 8), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( Mem8, andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem8, andMInt( Imm8, mi(8, 31))), 7, 8), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/roll_m32_imm8.k b/semantics/memoryInstructions/roll_m32_imm8.k index 0e57abfb6..fe67f00e8 100644 --- a/semantics/memoryInstructions/roll_m32_imm8.k +++ b/semantics/memoryInstructions/roll_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ROLL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(roll:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(roll:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (roll:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (roll:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (roll Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (roll:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (roll:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - rol( Mem32, concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), + rol( Mem32, concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), MemOff, 32 ) @@ -25,9 +26,10 @@ module ROLL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( Mem32, concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 31, 32), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( Mem32, concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 31, 32), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( Mem32, concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem32, concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 31, 32), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( Mem32, concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem32, concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 31, 32), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rolq_m64_imm8.k b/semantics/memoryInstructions/rolq_m64_imm8.k index cc2e55f91..116062163 100644 --- a/semantics/memoryInstructions/rolq_m64_imm8.k +++ b/semantics/memoryInstructions/rolq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ROLQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(rolq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rolq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rolq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rolq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (rolq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rolq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rolq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - rol( Mem64, concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), + rol( Mem64, concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), MemOff, 64 ) @@ -25,9 +26,10 @@ module ROLQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( rol( Mem64, concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 63, 64), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( rol( Mem64, concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 63, 64), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( Mem64, concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem64, concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 63, 64), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( Mem64, concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem64, concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 63, 64), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rolw_m16_imm8.k b/semantics/memoryInstructions/rolw_m16_imm8.k index 7e03695af..83ebb9836 100644 --- a/semantics/memoryInstructions/rolw_m16_imm8.k +++ b/semantics/memoryInstructions/rolw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ROLW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(rolw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rolw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rolw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rolw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (rolw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (rolw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (rolw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - rol( Mem16, concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), + rol( Mem16, concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), MemOff, 16 ) @@ -25,9 +26,10 @@ module ROLW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( Mem16, concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 15, 16), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( Mem16, concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 15, 16), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( Mem16, concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem16, concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 15, 16), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( Mem16, concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem16, concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 15, 16), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rorb_m8_imm8.k b/semantics/memoryInstructions/rorb_m8_imm8.k index e22fbf7e7..80e919c13 100644 --- a/semantics/memoryInstructions/rorb_m8_imm8.k +++ b/semantics/memoryInstructions/rorb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RORB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(rorb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rorb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rorb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rorb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (rorb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (rorb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (rorb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - ror( Mem8, andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), + ror( Mem8, andMInt( Imm8, mi(8, 31))), MemOff, 8 ) @@ -25,9 +26,10 @@ module RORB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( Mem8, andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( Mem8, andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( Mem8, andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( Mem8, andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( Mem8, andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( Mem8, andMInt( Imm8, mi(8, 31))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rorl_m32_imm8.k b/semantics/memoryInstructions/rorl_m32_imm8.k index 8499c1983..50ef81eeb 100644 --- a/semantics/memoryInstructions/rorl_m32_imm8.k +++ b/semantics/memoryInstructions/rorl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RORL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(rorl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rorl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rorl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rorl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (rorl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (rorl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (rorl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - ror( Mem32, concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), + ror( Mem32, concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), MemOff, 32 ) @@ -25,9 +26,10 @@ module RORL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( Mem32, concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( Mem32, concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( Mem32, concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( Mem32, concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( Mem32, concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( Mem32, concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rorq_m64_imm8.k b/semantics/memoryInstructions/rorq_m64_imm8.k index 8999aa369..d89905778 100644 --- a/semantics/memoryInstructions/rorq_m64_imm8.k +++ b/semantics/memoryInstructions/rorq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RORQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(rorq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rorq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rorq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rorq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (rorq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rorq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rorq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - ror( Mem64, concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), + ror( Mem64, concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), MemOff, 64 ) @@ -25,9 +26,10 @@ module RORQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( ror( Mem64, concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( ror( Mem64, concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( Mem64, concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( Mem64, concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( Mem64, concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( Mem64, concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rorw_m16_imm8.k b/semantics/memoryInstructions/rorw_m16_imm8.k index 24b01f49f..b68cd20d0 100644 --- a/semantics/memoryInstructions/rorw_m16_imm8.k +++ b/semantics/memoryInstructions/rorw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RORW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(rorw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rorw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rorw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rorw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (rorw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (rorw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (rorw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - ror( Mem16, concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), + ror( Mem16, concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), MemOff, 16 ) @@ -25,9 +26,10 @@ module RORW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( Mem16, concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( Mem16, concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( Mem16, concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( Mem16, concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( Mem16, concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( Mem16, concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rorxl_r32_m32_imm8.k b/semantics/memoryInstructions/rorxl_r32_m32_imm8.k index 403e4c689..93b6be969 100644 --- a/semantics/memoryInstructions/rorxl_r32_m32_imm8.k +++ b/semantics/memoryInstructions/rorxl_r32_m32_imm8.k @@ -5,24 +5,26 @@ module RORXL-R32-M32-IMM8 imports X86-CONFIGURATION rule - execinstr (rorx:Opcode Imm8:Imm, M:Mem, R3:R32, .Operands) => execinstr (rorxl:Opcode Imm8:Imm, M:Mem, R3:R32, .Operands) + execinstr (rorx:Opcode Imm8:MInt, M:Mem, R3:R32, .Operands) => execinstr (rorxl:Opcode Imm8:MInt, M:Mem, R3:R32, .Operands) ... - context execinstr(rorxl:Opcode Imm8:Imm, HOLE:Mem, R3:R32, .Operands) [result(MemOffset)] + context execinstr(rorxl:Opcode Imm8:MInt, HOLE:Mem, R3:R32, .Operands) [result(MemOffset)] rule - execinstr (rorxl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => + execinstr (rorxl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (rorxl Imm8, memOffset( MemOff), R3, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (rorxl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (rorxl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), orMInt( lshrMInt( Mem32, uvalueMInt(andMInt( concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(32, 31)))), shiftLeftMInt( Mem32, uvalueMInt(subMInt( mi(32, 32), andMInt( concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(32, 31))))))) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), orMInt( lshrMInt( Mem32, uvalueMInt(andMInt( concatenateMInt( mi(24, 0), Imm8), mi(32, 31)))), shiftLeftMInt( Mem32, uvalueMInt(subMInt( mi(32, 32), andMInt( concatenateMInt( mi(24, 0), Imm8), mi(32, 31))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rorxq_r64_m64_imm8.k b/semantics/memoryInstructions/rorxq_r64_m64_imm8.k index 4c6ff662d..66e54a499 100644 --- a/semantics/memoryInstructions/rorxq_r64_m64_imm8.k +++ b/semantics/memoryInstructions/rorxq_r64_m64_imm8.k @@ -5,24 +5,26 @@ module RORXQ-R64-M64-IMM8 imports X86-CONFIGURATION rule - execinstr (rorx:Opcode Imm8:Imm, M:Mem, R3:R64, .Operands) => execinstr (rorxq:Opcode Imm8:Imm, M:Mem, R3:R64, .Operands) + execinstr (rorx:Opcode Imm8:MInt, M:Mem, R3:R64, .Operands) => execinstr (rorxq:Opcode Imm8:MInt, M:Mem, R3:R64, .Operands) ... - context execinstr(rorxq:Opcode Imm8:Imm, HOLE:Mem, R3:R64, .Operands) [result(MemOffset)] + context execinstr(rorxq:Opcode Imm8:MInt, HOLE:Mem, R3:R64, .Operands) [result(MemOffset)] rule - execinstr (rorxq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => + execinstr (rorxq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (rorxq Imm8, memOffset( MemOff), R3, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rorxq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rorxq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> orMInt( lshrMInt( Mem64, uvalueMInt(andMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)))), shiftLeftMInt( Mem64, uvalueMInt(subMInt( mi(64, 64), andMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)))))) +convToRegKeys(R3) |-> orMInt( lshrMInt( Mem64, uvalueMInt(andMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)))), shiftLeftMInt( Mem64, uvalueMInt(subMInt( mi(64, 64), andMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/roundpd_xmm_m128_imm8.k b/semantics/memoryInstructions/roundpd_xmm_m128_imm8.k index ae8284b22..2b1e60e30 100644 --- a/semantics/memoryInstructions/roundpd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/roundpd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module ROUNDPD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(roundpd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(roundpd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (roundpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (roundpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (roundpd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (roundpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (roundpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem128, 0, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_double_to_int64_rm(extractMInt( Mem128, 64, 128), handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem128, 0, 64), Imm8), cvt_double_to_int64_rm(extractMInt( Mem128, 64, 128), Imm8))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/roundps_xmm_m128_imm8.k b/semantics/memoryInstructions/roundps_xmm_m128_imm8.k index 53aba7948..1eafb838e 100644 --- a/semantics/memoryInstructions/roundps_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/roundps_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module ROUNDPS-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(roundps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(roundps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (roundps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (roundps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (roundps Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (roundps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (roundps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_int32_rm(extractMInt( Mem128, 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 0, 32), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 32, 64), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 64, 96), Imm8), cvt_single_to_int32_rm(extractMInt( Mem128, 96, 128), Imm8))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/roundsd_xmm_m64_imm8.k b/semantics/memoryInstructions/roundsd_xmm_m64_imm8.k index 8cc87cd6b..7e64db1ec 100644 --- a/semantics/memoryInstructions/roundsd_xmm_m64_imm8.k +++ b/semantics/memoryInstructions/roundsd_xmm_m64_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module ROUNDSD-XMM-M64-IMM8 imports X86-CONFIGURATION - context execinstr(roundsd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(roundsd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (roundsd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (roundsd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (roundsd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (roundsd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (roundsd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 192), cvt_double_to_int64_rm(Mem64, handleImmediateWithSignExtend(Imm8, 8, 8))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 192), cvt_double_to_int64_rm(Mem64, Imm8)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/roundss_xmm_m32_imm8.k b/semantics/memoryInstructions/roundss_xmm_m32_imm8.k index 40c5a4a58..87aa38cd2 100644 --- a/semantics/memoryInstructions/roundss_xmm_m32_imm8.k +++ b/semantics/memoryInstructions/roundss_xmm_m32_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module ROUNDSS-XMM-M32-IMM8 imports X86-CONFIGURATION - context execinstr(roundss:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(roundss:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (roundss:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (roundss:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (roundss Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (roundss:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (roundss:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 224), cvt_single_to_int32_rm(Mem32, handleImmediateWithSignExtend(Imm8, 8, 8))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 224), cvt_single_to_int32_rm(Mem32, Imm8)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/salb_m8_imm8.k b/semantics/memoryInstructions/salb_m8_imm8.k index 80244bebe..3f2288643 100644 --- a/semantics/memoryInstructions/salb_m8_imm8.k +++ b/semantics/memoryInstructions/salb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SALB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(salb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(salb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (salb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (salb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (salb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (salb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (salb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9), + extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9), MemOff, 8 ) @@ -25,17 +26,18 @@ module SALB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sall_m32_imm8.k b/semantics/memoryInstructions/sall_m32_imm8.k index e0db794b1..429a7ea76 100644 --- a/semantics/memoryInstructions/sall_m32_imm8.k +++ b/semantics/memoryInstructions/sall_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SALL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(sall:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sall:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sall:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sall:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (sall Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (sall:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (sall:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 33), + extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module SALL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/salq_m64_imm8.k b/semantics/memoryInstructions/salq_m64_imm8.k index 91a19ad89..055316671 100644 --- a/semantics/memoryInstructions/salq_m64_imm8.k +++ b/semantics/memoryInstructions/salq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SALQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(salq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(salq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (salq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (salq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (salq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (salq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (salq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 65), + extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module SALQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 57, 58), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 57, 58), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 65), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 65), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/salw_m16_imm8.k b/semantics/memoryInstructions/salw_m16_imm8.k index c83bfe219..496297d94 100644 --- a/semantics/memoryInstructions/salw_m16_imm8.k +++ b/semantics/memoryInstructions/salw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SALW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(salw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(salw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (salw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (salw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (salw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (salw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (salw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 17), + extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module SALW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 9, 10), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 9, 10), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 17), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 17), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sarb_m8_imm8.k b/semantics/memoryInstructions/sarb_m8_imm8.k index 59d97e5a7..5442d340f 100644 --- a/semantics/memoryInstructions/sarb_m8_imm8.k +++ b/semantics/memoryInstructions/sarb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SARB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(sarb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sarb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sarb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sarb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (sarb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (sarb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (sarb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8), + extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8), MemOff, 8 ) @@ -25,17 +26,18 @@ module SARB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sarl_m32_imm8.k b/semantics/memoryInstructions/sarl_m32_imm8.k index c73573a2f..bbbdd9d10 100644 --- a/semantics/memoryInstructions/sarl_m32_imm8.k +++ b/semantics/memoryInstructions/sarl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SARL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(sarl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sarl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sarl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sarl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (sarl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (sarl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (sarl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 32), + extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 32), MemOff, 32 ) @@ -25,17 +26,18 @@ module SARL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 32, 33), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 32, 33), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sarq_m64_imm8.k b/semantics/memoryInstructions/sarq_m64_imm8.k index 74a84be29..16befd942 100644 --- a/semantics/memoryInstructions/sarq_m64_imm8.k +++ b/semantics/memoryInstructions/sarq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SARQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(sarq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sarq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sarq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sarq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (sarq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (sarq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (sarq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 64), + extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 64), MemOff, 64 ) @@ -25,17 +26,18 @@ module SARQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 64, 65), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 64, 65), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 63, 64), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 57, 58), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 56, 57), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 63, 64), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 57, 58), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 56, 57), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 64), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 64), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sarw_m16_imm8.k b/semantics/memoryInstructions/sarw_m16_imm8.k index 26983a601..12f5232da 100644 --- a/semantics/memoryInstructions/sarw_m16_imm8.k +++ b/semantics/memoryInstructions/sarw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SARW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(sarw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sarw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sarw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sarw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (sarw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (sarw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (sarw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 16), + extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 16), MemOff, 16 ) @@ -25,17 +26,18 @@ module SARW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 16, 17), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 16, 17), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 15, 16), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 9, 10), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 15, 16), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 9, 10), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 16), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 16), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sbbb_m8_imm8.k b/semantics/memoryInstructions/sbbb_m8_imm8.k index a468e8290..cc891bd13 100644 --- a/semantics/memoryInstructions/sbbb_m8_imm8.k +++ b/semantics/memoryInstructions/sbbb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SBBB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(sbbb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sbbb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sbbb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sbbb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (sbbb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (sbbb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (sbbb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 9), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 9), MemOff, 8 ) @@ -25,17 +26,18 @@ module SBBB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sbbl_m32_imm32.k b/semantics/memoryInstructions/sbbl_m32_imm32.k index 1ba0b6a37..876dc9a29 100644 --- a/semantics/memoryInstructions/sbbl_m32_imm32.k +++ b/semantics/memoryInstructions/sbbl_m32_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SBBL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(sbbl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sbbl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sbbl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sbbl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (sbbl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (sbbl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (sbbl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module SBBL-M32-IMM32 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/sbbl_m32_imm8.k b/semantics/memoryInstructions/sbbl_m32_imm8.k index 27e5f5e99..3c6ce1174 100644 --- a/semantics/memoryInstructions/sbbl_m32_imm8.k +++ b/semantics/memoryInstructions/sbbl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SBBL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(sbbl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sbbl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sbbl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sbbl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (sbbl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (sbbl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (sbbl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module SBBL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sbbq_m64_imm32.k b/semantics/memoryInstructions/sbbq_m64_imm32.k index 411fc3817..b46c2d453 100644 --- a/semantics/memoryInstructions/sbbq_m64_imm32.k +++ b/semantics/memoryInstructions/sbbq_m64_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SBBQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(sbbq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sbbq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sbbq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sbbq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (sbbq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (sbbq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (sbbq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module SBBQ-M64-IMM32 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/sbbq_m64_imm8.k b/semantics/memoryInstructions/sbbq_m64_imm8.k index 3e298d180..23649dcf3 100644 --- a/semantics/memoryInstructions/sbbq_m64_imm8.k +++ b/semantics/memoryInstructions/sbbq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SBBQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(sbbq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sbbq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sbbq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sbbq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (sbbq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (sbbq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (sbbq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module SBBQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sbbw_m16_imm16.k b/semantics/memoryInstructions/sbbw_m16_imm16.k index ae798b603..0b9c92500 100644 --- a/semantics/memoryInstructions/sbbw_m16_imm16.k +++ b/semantics/memoryInstructions/sbbw_m16_imm16.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SBBW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(sbbw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sbbw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sbbw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sbbw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (sbbw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (sbbw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (sbbw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module SBBW-M16-IMM16 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/sbbw_m16_imm8.k b/semantics/memoryInstructions/sbbw_m16_imm8.k index e9c12872c..0676dff77 100644 --- a/semantics/memoryInstructions/sbbw_m16_imm8.k +++ b/semantics/memoryInstructions/sbbw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SBBW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(sbbw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sbbw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sbbw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sbbw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (sbbw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (sbbw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (sbbw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module SBBW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shlb_m8_imm8.k b/semantics/memoryInstructions/shlb_m8_imm8.k index 740e7baee..91cb93dda 100644 --- a/semantics/memoryInstructions/shlb_m8_imm8.k +++ b/semantics/memoryInstructions/shlb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SHLB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(shlb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(shlb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shlb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shlb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (shlb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (shlb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (shlb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9), + extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9), MemOff, 8 ) @@ -25,17 +26,18 @@ module SHLB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shldl_m32_r32_imm8.k b/semantics/memoryInstructions/shldl_m32_r32_imm8.k index 1bbfba3b8..a0c66fe5f 100644 --- a/semantics/memoryInstructions/shldl_m32_r32_imm8.k +++ b/semantics/memoryInstructions/shldl_m32_r32_imm8.k @@ -4,21 +4,23 @@ requires "x86-configuration.k" module SHLDL-M32-R32-IMM8 imports X86-CONFIGURATION - context execinstr (shldl Imm8:Imm, R2:R32, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr (shldl Imm8:MInt, R2:R32, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shldl Imm8:Imm, R2:R32, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shldl Imm8:MInt, R2:R32, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> - execinstr (shldl Imm8:Imm, R2, memOffset( MemOff), .Operands) + execinstr (shldl Imm8:MInt, R2, memOffset( MemOff), .Operands) ... + requires bitwidthMInt(Imm8) ==Int 8 rule memLoadValue(Mem32:MInt):MemLoadValue ~> - execinstr (shldl Imm8:Imm, R2:R32, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shldl Imm8:MInt, R2:R32, memOffset( MemOff:MInt):MemOffset, .Operands) => execinstr (shldl memOffset( MemOff), Mem32, getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 32), .Operands) + shiftCountMask(Imm8, 32), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shldl memOffset( MemOff), MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/memoryInstructions/shldq_m64_r64_imm8.k b/semantics/memoryInstructions/shldq_m64_r64_imm8.k index df6839aed..447ebf1df 100644 --- a/semantics/memoryInstructions/shldq_m64_r64_imm8.k +++ b/semantics/memoryInstructions/shldq_m64_r64_imm8.k @@ -4,21 +4,23 @@ requires "x86-configuration.k" module SHLDQ-M64-R64-CL imports X86-CONFIGURATION - context execinstr (shldq Imm8:Imm, R2:R64, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr (shldq Imm8:MInt, R2:R64, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shldq Imm8:Imm, R2:R64, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shldq Imm8:MInt, R2:R64, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> - execinstr (shldq Imm8:Imm, R2, memOffset( MemOff), .Operands) + execinstr (shldq Imm8:MInt, R2, memOffset( MemOff), .Operands) ... + requires bitwidthMInt(Imm8) ==Int 8 rule memLoadValue(Mem64:MInt):MemLoadValue ~> - execinstr (shldq Imm8:Imm, R2:R64, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shldq Imm8:MInt, R2:R64, memOffset( MemOff:MInt):MemOffset, .Operands) => execinstr (shldq memOffset( MemOff), Mem64, getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 64), .Operands) + shiftCountMask(Imm8, 64), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shldq memOffset( MemOff), MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/memoryInstructions/shldw_m16_r16_imm8.k b/semantics/memoryInstructions/shldw_m16_r16_imm8.k index 2506c083d..4ba4a6f2e 100644 --- a/semantics/memoryInstructions/shldw_m16_r16_imm8.k +++ b/semantics/memoryInstructions/shldw_m16_r16_imm8.k @@ -4,21 +4,23 @@ requires "x86-configuration.k" module SHLDW-M16-R16-CL imports X86-CONFIGURATION - context execinstr (shldw Imm8:Imm, R2:R16, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr (shldw Imm8:MInt, R2:R16, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shldw Imm8:Imm, R2:R16, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shldw Imm8:MInt, R2:R16, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> - execinstr (shldw Imm8:Imm, R2, memOffset( MemOff), .Operands) + execinstr (shldw Imm8:MInt, R2, memOffset( MemOff), .Operands) ... + requires bitwidthMInt(Imm8) ==Int 8 rule memLoadValue(Mem16:MInt):MemLoadValue ~> - execinstr (shldw Imm8:Imm, R2:R16, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shldw Imm8:MInt, R2:R16, memOffset( MemOff:MInt):MemOffset, .Operands) => execinstr (shldw memOffset( MemOff), Mem16, getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 32), .Operands) + shiftCountMask(Imm8, 32), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shldw memOffset( MemOff), MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/memoryInstructions/shll_m32_imm8.k b/semantics/memoryInstructions/shll_m32_imm8.k index a5b988a0b..ea987184f 100644 --- a/semantics/memoryInstructions/shll_m32_imm8.k +++ b/semantics/memoryInstructions/shll_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SHLL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(shll:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(shll:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shll:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shll:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (shll Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (shll:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (shll:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 33), + extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module SHLL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shlq_m64_imm8.k b/semantics/memoryInstructions/shlq_m64_imm8.k index 7a96d38c0..62330d61f 100644 --- a/semantics/memoryInstructions/shlq_m64_imm8.k +++ b/semantics/memoryInstructions/shlq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SHLQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(shlq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(shlq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shlq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shlq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (shlq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (shlq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (shlq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 65), + extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module SHLQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 57, 58), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 57, 58), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 65), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 65), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shlw_m16_imm8.k b/semantics/memoryInstructions/shlw_m16_imm8.k index 3fcaebaf3..71db36930 100644 --- a/semantics/memoryInstructions/shlw_m16_imm8.k +++ b/semantics/memoryInstructions/shlw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SHLW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(shlw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(shlw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shlw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shlw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (shlw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (shlw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (shlw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 17), + extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module SHLW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 9, 10), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 9, 10), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 17), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 17), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shrb_m8_imm8.k b/semantics/memoryInstructions/shrb_m8_imm8.k index 58f665a42..b6b5b4ebb 100644 --- a/semantics/memoryInstructions/shrb_m8_imm8.k +++ b/semantics/memoryInstructions/shrb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SHRB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(shrb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(shrb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shrb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (shrb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (shrb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (shrb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8), + extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8), MemOff, 8 ) @@ -25,17 +26,18 @@ module SHRB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shrdl_m32_r32_imm8.k b/semantics/memoryInstructions/shrdl_m32_r32_imm8.k index 8ca298761..5fc70efe8 100644 --- a/semantics/memoryInstructions/shrdl_m32_r32_imm8.k +++ b/semantics/memoryInstructions/shrdl_m32_r32_imm8.k @@ -4,21 +4,23 @@ requires "x86-configuration.k" module SHLDL-M32-R32-CL imports X86-CONFIGURATION - context execinstr (shrdl Imm8:Imm, R2:R32, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr (shrdl Imm8:MInt, R2:R32, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shrdl Imm8:Imm, R2:R32, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrdl Imm8:MInt, R2:R32, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> - execinstr (shrdl Imm8:Imm, R2, memOffset( MemOff), .Operands) + execinstr (shrdl Imm8:MInt, R2, memOffset( MemOff), .Operands) ... + requires bitwidthMInt(Imm8) ==Int 8 rule memLoadValue(Mem32:MInt):MemLoadValue ~> - execinstr (shrdl Imm8:Imm, R2:R32, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrdl Imm8:MInt, R2:R32, memOffset( MemOff:MInt):MemOffset, .Operands) => execinstr (shrdl memOffset( MemOff), Mem32, getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 32), .Operands) + shiftCountMask(Imm8, 32), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shrdl memOffset( MemOff), MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/memoryInstructions/shrdq_m64_r64_imm8.k b/semantics/memoryInstructions/shrdq_m64_r64_imm8.k index 2959c8819..2cb4686ca 100644 --- a/semantics/memoryInstructions/shrdq_m64_r64_imm8.k +++ b/semantics/memoryInstructions/shrdq_m64_r64_imm8.k @@ -4,21 +4,23 @@ requires "x86-configuration.k" module SHRDQ-M64-R64-CL imports X86-CONFIGURATION - context execinstr (shrdq Imm8:Imm, R2:R64, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr (shrdq Imm8:MInt, R2:R64, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shrdq Imm8:Imm, R2:R64, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrdq Imm8:MInt, R2:R64, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> - execinstr (shrdq Imm8:Imm, R2, memOffset( MemOff), .Operands) + execinstr (shrdq Imm8:MInt, R2, memOffset( MemOff), .Operands) ... + requires bitwidthMInt(Imm8) ==Int 8 rule memLoadValue(Mem64:MInt):MemLoadValue ~> - execinstr (shrdq Imm8:Imm, R2:R64, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrdq Imm8:MInt, R2:R64, memOffset( MemOff:MInt):MemOffset, .Operands) => execinstr (shrdq memOffset( MemOff), Mem64, getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 64), .Operands) + shiftCountMask(Imm8, 64), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shrdq memOffset( MemOff), MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/memoryInstructions/shrdw_m16_r16_imm8.k b/semantics/memoryInstructions/shrdw_m16_r16_imm8.k index 53c6df4b2..dca5679cf 100644 --- a/semantics/memoryInstructions/shrdw_m16_r16_imm8.k +++ b/semantics/memoryInstructions/shrdw_m16_r16_imm8.k @@ -4,21 +4,23 @@ requires "x86-configuration.k" module SHLDW-M16-R16-CL imports X86-CONFIGURATION - context execinstr (shrdw Imm8:Imm, R2:R16, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr (shrdw Imm8:MInt, R2:R16, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shrdw Imm8:Imm, R2:R16, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrdw Imm8:MInt, R2:R16, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> - execinstr (shrdw Imm8:Imm, R2, memOffset( MemOff), .Operands) + execinstr (shrdw Imm8:MInt, R2, memOffset( MemOff), .Operands) ... + requires bitwidthMInt(Imm8) ==Int 8 rule memLoadValue(Mem16:MInt):MemLoadValue ~> - execinstr (shrdw Imm8:Imm, R2:R16, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrdw Imm8:MInt, R2:R16, memOffset( MemOff:MInt):MemOffset, .Operands) => execinstr (shrdw memOffset( MemOff), Mem16, getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 32), .Operands) + shiftCountMask(Imm8, 32), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shrdw memOffset( MemOff), MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/memoryInstructions/shrl_m32_imm8.k b/semantics/memoryInstructions/shrl_m32_imm8.k index 971f379f2..b45c71d28 100644 --- a/semantics/memoryInstructions/shrl_m32_imm8.k +++ b/semantics/memoryInstructions/shrl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SHRL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(shrl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(shrl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shrl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (shrl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (shrl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (shrl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 32), + extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 32), MemOff, 32 ) @@ -25,17 +26,18 @@ module SHRL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 32, 33), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 32, 33), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shrq_m64_imm8.k b/semantics/memoryInstructions/shrq_m64_imm8.k index 476766193..24ad06c3a 100644 --- a/semantics/memoryInstructions/shrq_m64_imm8.k +++ b/semantics/memoryInstructions/shrq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SHRQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(shrq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(shrq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (shrq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (shrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (shrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 64), + extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 64), MemOff, 64 ) @@ -25,17 +26,18 @@ module SHRQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 64, 65), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 64, 65), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 63, 64), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 57, 58), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 56, 57), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 63, 64), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 57, 58), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 56, 57), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 64), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 64), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shrw_m16_imm8.k b/semantics/memoryInstructions/shrw_m16_imm8.k index a86573f61..04927fdac 100644 --- a/semantics/memoryInstructions/shrw_m16_imm8.k +++ b/semantics/memoryInstructions/shrw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SHRW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(shrw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(shrw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (shrw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (shrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (shrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 16), + extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 16), MemOff, 16 ) @@ -25,17 +26,18 @@ module SHRW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 16, 17), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 16, 17), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 15, 16), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 9, 10), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 15, 16), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 9, 10), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 16), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 16), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shufpd_xmm_m128_imm8.k b/semantics/memoryInstructions/shufpd_xmm_m128_imm8.k index 464bcd45f..761fdce69 100644 --- a/semantics/memoryInstructions/shufpd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/shufpd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module SHUFPD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(shufpd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(shufpd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (shufpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (shufpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (shufpd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (shufpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (shufpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( Mem128, 0, 64) #else extractMInt( Mem128, 64, 128) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( Mem128, 0, 64) #else extractMInt( Mem128, 64, 128) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shufps_xmm_m128_imm8.k b/semantics/memoryInstructions/shufps_xmm_m128_imm8.k index 97946c5ec..c51379b39 100644 --- a/semantics/memoryInstructions/shufps_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/shufps_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module SHUFPS-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(shufps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(shufps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (shufps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (shufps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (shufps Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (shufps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (shufps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( Mem128, 0, 32) #else extractMInt( Mem128, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( Mem128, 0, 32) #else extractMInt( Mem128, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( Mem128, 0, 32) #else extractMInt( Mem128, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( Mem128, 0, 32) #else extractMInt( Mem128, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/subb_m8_imm8.k b/semantics/memoryInstructions/subb_m8_imm8.k index d20f17076..a33f9a8b6 100644 --- a/semantics/memoryInstructions/subb_m8_imm8.k +++ b/semantics/memoryInstructions/subb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SUBB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(subb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(subb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (subb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (subb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (subb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (subb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (subb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 9), + extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 9), MemOff, 8 ) @@ -25,17 +26,18 @@ module SUBB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/subl_m32_imm32.k b/semantics/memoryInstructions/subl_m32_imm32.k index 8a939714d..0c9d0d0c1 100644 --- a/semantics/memoryInstructions/subl_m32_imm32.k +++ b/semantics/memoryInstructions/subl_m32_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SUBL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(subl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(subl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (subl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (subl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (subl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (subl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (subl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), + extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module SUBL-M32-IMM32 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/subl_m32_imm8.k b/semantics/memoryInstructions/subl_m32_imm8.k index f59e7d68a..31ff4f755 100644 --- a/semantics/memoryInstructions/subl_m32_imm8.k +++ b/semantics/memoryInstructions/subl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SUBL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(subl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(subl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (subl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (subl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (subl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (subl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (subl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), + extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module SUBL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/subq_m64_imm32.k b/semantics/memoryInstructions/subq_m64_imm32.k index 426fb7c3c..358e84cf9 100644 --- a/semantics/memoryInstructions/subq_m64_imm32.k +++ b/semantics/memoryInstructions/subq_m64_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SUBQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(subq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(subq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (subq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (subq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (subq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (subq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (subq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), + extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module SUBQ-M64-IMM32 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/subq_m64_imm8.k b/semantics/memoryInstructions/subq_m64_imm8.k index 60c284973..e890fec12 100644 --- a/semantics/memoryInstructions/subq_m64_imm8.k +++ b/semantics/memoryInstructions/subq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SUBQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(subq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(subq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (subq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (subq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (subq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (subq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (subq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), + extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module SUBQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/subw_m16_imm16.k b/semantics/memoryInstructions/subw_m16_imm16.k index fe95e04b7..f2c0ed3da 100644 --- a/semantics/memoryInstructions/subw_m16_imm16.k +++ b/semantics/memoryInstructions/subw_m16_imm16.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SUBW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(subw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(subw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (subw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (subw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (subw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (subw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (subw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), + extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module SUBW-M16-IMM16 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/subw_m16_imm8.k b/semantics/memoryInstructions/subw_m16_imm8.k index 67a007e25..b791b6e34 100644 --- a/semantics/memoryInstructions/subw_m16_imm8.k +++ b/semantics/memoryInstructions/subw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SUBW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(subw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(subw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (subw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (subw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (subw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (subw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (subw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), + extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module SUBW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/testb_m8_imm8.k b/semantics/memoryInstructions/testb_m8_imm8.k index 9ebbc5ec5..57fe23957 100644 --- a/semantics/memoryInstructions/testb_m8_imm8.k +++ b/semantics/memoryInstructions/testb_m8_imm8.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module TESTB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(testb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(testb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (testb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (testb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (testb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (testb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (testb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem8, 7, 8), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem8, 6, 7), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 5, 6), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 4, 5), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 3, 4), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 2, 3), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 1, 2), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem8, 7, 8), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem8, 6, 7), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 5, 6), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 4, 5), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 3, 4), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 2, 3), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 1, 2), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 0, 1), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem8, handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem8, Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem8, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem8, 0, 1), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/testl_m32_imm32.k b/semantics/memoryInstructions/testl_m32_imm32.k index f3584f5f9..c99574ca6 100644 --- a/semantics/memoryInstructions/testl_m32_imm32.k +++ b/semantics/memoryInstructions/testl_m32_imm32.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module TESTL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(testl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(testl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (testl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (testl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (testl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (testl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (testl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem32, 31, 32), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem32, 30, 31), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 29, 30), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 28, 29), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 27, 28), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 26, 27), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 25, 26), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 24, 25), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem32, 31, 32), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem32, 30, 31), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 29, 30), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 28, 29), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 27, 28), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 26, 27), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 25, 26), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 24, 25), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem32, handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem32, Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem32, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem32, 0, 1), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/testq_m64_imm32.k b/semantics/memoryInstructions/testq_m64_imm32.k index 5058291c1..6f173a07d 100644 --- a/semantics/memoryInstructions/testq_m64_imm32.k +++ b/semantics/memoryInstructions/testq_m64_imm32.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module TESTQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(testq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(testq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (testq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (testq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (testq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (testq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (testq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem64, 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem64, 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem64, 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem64, 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem64, mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/testw_m16_imm16.k b/semantics/memoryInstructions/testw_m16_imm16.k index 03e992232..a901cfbcd 100644 --- a/semantics/memoryInstructions/testw_m16_imm16.k +++ b/semantics/memoryInstructions/testw_m16_imm16.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module TESTW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(testw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(testw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (testw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (testw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (testw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (testw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (testw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem16, 15, 16), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem16, 14, 15), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 13, 14), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 12, 13), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 11, 12), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 10, 11), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 9, 10), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 8, 9), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem16, 15, 16), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem16, 14, 15), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 13, 14), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 12, 13), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 11, 12), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 10, 11), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 9, 10), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 8, 9), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem16, handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem16, Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem16, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem16, 0, 1), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/vblendpd_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vblendpd_xmm_xmm_m128_imm8.k index ed8791ad7..4283994a4 100644 --- a/semantics/memoryInstructions/vblendpd_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vblendpd_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VBLENDPD-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vblendpd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vblendpd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vblendpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vblendpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vblendpd Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vblendpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vblendpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( Mem128, 0, 64) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( Mem128, 64, 128) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( Mem128, 0, 64) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( Mem128, 64, 128) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vblendpd_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vblendpd_ymm_ymm_m256_imm8.k index e889d3d3d..242024e71 100644 --- a/semantics/memoryInstructions/vblendpd_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vblendpd_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VBLENDPD-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vblendpd:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vblendpd:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vblendpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vblendpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vblendpd Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vblendpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vblendpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 64) #else extractMInt( Mem256, 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 128) #else extractMInt( Mem256, 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( Mem256, 128, 192) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( Mem256, 192, 256) #fi)))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 64) #else extractMInt( Mem256, 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 128) #else extractMInt( Mem256, 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( Mem256, 128, 192) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( Mem256, 192, 256) #fi)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vblendps_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vblendps_xmm_xmm_m128_imm8.k index d1f1ab93a..47def516b 100644 --- a/semantics/memoryInstructions/vblendps_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vblendps_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VBLENDPS-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vblendps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vblendps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vblendps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vblendps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vblendps Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vblendps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vblendps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem128, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem128, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem128, 64, 96) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem128, 96, 128) #fi))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem128, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem128, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem128, 64, 96) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem128, 96, 128) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vblendps_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vblendps_ymm_ymm_m256_imm8.k index d386aeb48..b346a3093 100644 --- a/semantics/memoryInstructions/vblendps_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vblendps_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VBLENDPS-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vblendps:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vblendps:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vblendps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vblendps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vblendps Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vblendps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vblendps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( Mem256, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( Mem256, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 96) #else extractMInt( Mem256, 64, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 128) #else extractMInt( Mem256, 96, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem256, 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem256, 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem256, 192, 224) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem256, 224, 256) #fi)))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( Mem256, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( Mem256, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 96) #else extractMInt( Mem256, 64, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 128) #else extractMInt( Mem256, 96, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem256, 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem256, 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem256, 192, 224) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem256, 224, 256) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vcmppd_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vcmppd_xmm_xmm_m128_imm8.k index 8d785b0de..bea305dd9 100644 --- a/semantics/memoryInstructions/vcmppd_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vcmppd_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VCMPPD-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vcmppd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vcmppd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vcmppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vcmppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vcmppd Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vcmppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vcmppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vcmppd_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vcmppd_ymm_ymm_m256_imm8.k index 8366dc03d..c31681d35 100644 --- a/semantics/memoryInstructions/vcmppd_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vcmppd_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VCMPPD-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vcmppd:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vcmppd:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vcmppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vcmppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vcmppd Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vcmppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vcmppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 0, 64), extractMInt( Mem256, 0, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 64, 128), extractMInt( Mem256, 64, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem256, 128, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem256, 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi)))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 0, 64), extractMInt( Mem256, 0, 64), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 64, 128), extractMInt( Mem256, 64, 128), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem256, 128, 192), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem256, 192, 256), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vcmpps_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vcmpps_xmm_xmm_m128_imm8.k index cc4f2e0c1..c88249a4e 100644 --- a/semantics/memoryInstructions/vcmpps_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vcmpps_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VCMPPS-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vcmpps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vcmpps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vcmpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vcmpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vcmpps Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vcmpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vcmpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vcmpps_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vcmpps_ymm_ymm_m256_imm8.k index 3d32d8c9c..7f735164b 100644 --- a/semantics/memoryInstructions/vcmpps_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vcmpps_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VCMPPS-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vcmpps:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vcmpps:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vcmpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vcmpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vcmpps Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vcmpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vcmpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi)))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vcmpsd_xmm_xmm_m64_imm8.k b/semantics/memoryInstructions/vcmpsd_xmm_xmm_m64_imm8.k index 674c8a278..878e37b39 100644 --- a/semantics/memoryInstructions/vcmpsd_xmm_xmm_m64_imm8.k +++ b/semantics/memoryInstructions/vcmpsd_xmm_xmm_m64_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VCMPSD-XMM-XMM-M64-IMM8 imports X86-CONFIGURATION - context execinstr(vcmpsd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vcmpsd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vcmpsd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vcmpsd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (vcmpsd Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vcmpsd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vcmpsd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 192), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), Mem64, handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 192), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), Mem64, Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vcmpss_xmm_xmm_m32_imm8.k b/semantics/memoryInstructions/vcmpss_xmm_xmm_m32_imm8.k index fee669aa4..5722e531c 100644 --- a/semantics/memoryInstructions/vcmpss_xmm_xmm_m32_imm8.k +++ b/semantics/memoryInstructions/vcmpss_xmm_xmm_m32_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VCMPSS-XMM-XMM-M32-IMM8 imports X86-CONFIGURATION - context execinstr(vcmpss:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vcmpss:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vcmpss:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vcmpss:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (vcmpss Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vcmpss:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vcmpss:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 224), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), Mem32, handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 224), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), Mem32, Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vcvtps2ph_m128_ymm_imm8.k b/semantics/memoryInstructions/vcvtps2ph_m128_ymm_imm8.k index 6f287ad40..4d80b2d96 100644 --- a/semantics/memoryInstructions/vcvtps2ph_m128_ymm_imm8.k +++ b/semantics/memoryInstructions/vcvtps2ph_m128_ymm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VCVTPS2PH-M128-YMM-IMM8 imports X86-CONFIGURATION - context execinstr(vcvtps2ph:Opcode Imm8:Imm, R2:Ymm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vcvtps2ph:Opcode Imm8:MInt, R2:Ymm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vcvtps2ph:Opcode Imm8:Imm, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vcvtps2ph:Opcode Imm8:MInt, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vcvtps2ph Imm8, R2:Ymm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vcvtps2ph:Opcode Imm8:Imm, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vcvtps2ph:Opcode Imm8:MInt, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8))))))))), + concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 0, 32), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 32, 64), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 64, 96), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 96, 128), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8)))))))), MemOff, 128 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vcvtps2ph_m64_xmm_imm8.k b/semantics/memoryInstructions/vcvtps2ph_m64_xmm_imm8.k index 34710e494..6e9b8503b 100644 --- a/semantics/memoryInstructions/vcvtps2ph_m64_xmm_imm8.k +++ b/semantics/memoryInstructions/vcvtps2ph_m64_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VCVTPS2PH-M64-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(vcvtps2ph:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vcvtps2ph:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vcvtps2ph:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vcvtps2ph:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (vcvtps2ph Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vcvtps2ph:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vcvtps2ph:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8))))), + concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8)))), MemOff, 64 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vdppd_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vdppd_xmm_xmm_m128_imm8.k index 3083d42da..ee49b48a4 100644 --- a/semantics/memoryInstructions/vdppd_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vdppd_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VDPPD-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vdppd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vdppd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vdppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vdppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vdppd Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vdppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vdppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vdpps_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vdpps_xmm_xmm_m128_imm8.k index dec7b45d3..0558c9571 100644 --- a/semantics/memoryInstructions/vdpps_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vdpps_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VDPPS-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vdpps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vdpps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vdpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vdpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vdpps Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vdpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vdpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vdpps_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vdpps_ymm_ymm_m256_imm8.k index 6df7c4137..58a41a41b 100644 --- a/semantics/memoryInstructions/vdpps_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vdpps_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VDPPS-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vdpps:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vdpps:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vdpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vdpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vdpps Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vdpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vdpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vextractf128_m128_ymm_imm8.k b/semantics/memoryInstructions/vextractf128_m128_ymm_imm8.k index 270679406..d1fb6becd 100644 --- a/semantics/memoryInstructions/vextractf128_m128_ymm_imm8.k +++ b/semantics/memoryInstructions/vextractf128_m128_ymm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VEXTRACTF128-M128-YMM-IMM8 imports X86-CONFIGURATION - context execinstr(vextractf128:Opcode Imm8:Imm, R2:Ymm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vextractf128:Opcode Imm8:MInt, R2:Ymm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vextractf128:Opcode Imm8:Imm, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vextractf128:Opcode Imm8:MInt, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vextractf128 Imm8, R2:Ymm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vextractf128:Opcode Imm8:Imm, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vextractf128:Opcode Imm8:MInt, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi), + (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi), MemOff, 128 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vextracti128_m128_ymm_imm8.k b/semantics/memoryInstructions/vextracti128_m128_ymm_imm8.k index edc4a4c40..56d8cf7c0 100644 --- a/semantics/memoryInstructions/vextracti128_m128_ymm_imm8.k +++ b/semantics/memoryInstructions/vextracti128_m128_ymm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VEXTRACTI128-M128-YMM-IMM8 imports X86-CONFIGURATION - context execinstr(vextracti128:Opcode Imm8:Imm, R2:Ymm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vextracti128:Opcode Imm8:MInt, R2:Ymm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vextracti128:Opcode Imm8:Imm, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vextracti128:Opcode Imm8:MInt, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vextracti128 Imm8, R2:Ymm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vextracti128:Opcode Imm8:Imm, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vextracti128:Opcode Imm8:MInt, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi), + (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi), MemOff, 128 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vextractps_m32_xmm_imm8.k b/semantics/memoryInstructions/vextractps_m32_xmm_imm8.k index 0e7977b47..fadb3b7b6 100644 --- a/semantics/memoryInstructions/vextractps_m32_xmm_imm8.k +++ b/semantics/memoryInstructions/vextractps_m32_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VEXTRACTPS-M32-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(vextractps:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vextractps:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vextractps:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vextractps:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (vextractps Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vextractps:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vextractps:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), MemOff, 32 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vinsertf128_ymm_ymm_m128_imm8.k b/semantics/memoryInstructions/vinsertf128_ymm_ymm_m128_imm8.k index d07b6a84e..97acdb03b 100644 --- a/semantics/memoryInstructions/vinsertf128_ymm_ymm_m128_imm8.k +++ b/semantics/memoryInstructions/vinsertf128_ymm_ymm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VINSERTF128-YMM-YMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vinsertf128:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vinsertf128:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vinsertf128:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vinsertf128:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vinsertf128 Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vinsertf128:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vinsertf128:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), Mem128) #else concatenateMInt( Mem128, extractMInt( getParentValue(R3, RSMap), 128, 256)) #fi) +convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), Mem128) #else concatenateMInt( Mem128, extractMInt( getParentValue(R3, RSMap), 128, 256)) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vinserti128_ymm_ymm_m128_imm8.k b/semantics/memoryInstructions/vinserti128_ymm_ymm_m128_imm8.k index a978ac780..a7aef1819 100644 --- a/semantics/memoryInstructions/vinserti128_ymm_ymm_m128_imm8.k +++ b/semantics/memoryInstructions/vinserti128_ymm_ymm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VINSERTI128-YMM-YMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vinserti128:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vinserti128:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vinserti128:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vinserti128:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vinserti128 Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vinserti128:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vinserti128:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), Mem128) #else concatenateMInt( Mem128, extractMInt( getParentValue(R3, RSMap), 128, 256)) #fi) +convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), Mem128) #else concatenateMInt( Mem128, extractMInt( getParentValue(R3, RSMap), 128, 256)) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vinsertps_xmm_xmm_m32_imm8.k b/semantics/memoryInstructions/vinsertps_xmm_xmm_m32_imm8.k index 9f9673cd7..543d56dda 100644 --- a/semantics/memoryInstructions/vinsertps_xmm_xmm_m32_imm8.k +++ b/semantics/memoryInstructions/vinsertps_xmm_xmm_m32_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VINSERTPS-XMM-XMM-M32-IMM8 imports X86-CONFIGURATION - context execinstr(vinsertps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vinsertps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vinsertps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vinsertps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (vinsertps Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vinsertps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vinsertps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else Mem32 #fi) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 160, 192) #fi) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else Mem32 #fi) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 160, 192) #fi) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vmpsadbw_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vmpsadbw_xmm_xmm_m128_imm8.k index 2f4425bda..30a167788 100644 --- a/semantics/memoryInstructions/vmpsadbw_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vmpsadbw_xmm_xmm_m128_imm8.k @@ -13,43 +13,44 @@ module VMPSADBW-XMM-XMM-M128-IMM8 rule memLoadValue(MemVal:MInt):MemLoadValue ~> - execinstr (vmpsadbw Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vmpsadbw Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => execinstr (vmpsadbw selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 7 , 0 ), + extractMInt(Imm8, 6, 8), 7 , 0 ), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 15, 8 ), + extractMInt(Imm8, 6, 8), 15, 8 ), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 23, 16), + extractMInt(Imm8, 6, 8), 23, 16), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 31, 24), + extractMInt(Imm8, 6, 8), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 7 , 0), + extractMInt(Imm8, 5, 6), 7 , 0), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 15, 8), + extractMInt(Imm8, 5, 6), 15, 8), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 23, 16), + extractMInt(Imm8, 5, 6), 23, 16), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 31, 24), + extractMInt(Imm8, 5, 6), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 39, 32), + extractMInt(Imm8, 5, 6), 39, 32), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 47, 40), + extractMInt(Imm8, 5, 6), 47, 40), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 55, 48), + extractMInt(Imm8, 5, 6), 55, 48), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 63, 56), + extractMInt(Imm8, 5, 6), 63, 56), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 71, 64), + extractMInt(Imm8, 5, 6), 71, 64), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 79, 72), + extractMInt(Imm8, 5, 6), 79, 72), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 87, 80), + extractMInt(Imm8, 5, 6), 87, 80), R3:Xmm, .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (vmpsadbw diff --git a/semantics/memoryInstructions/vmpsadbw_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vmpsadbw_ymm_ymm_m256_imm8.k index 6f5ecf59f..e196b0265 100644 --- a/semantics/memoryInstructions/vmpsadbw_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vmpsadbw_ymm_ymm_m256_imm8.k @@ -14,93 +14,94 @@ module VMPSADBW-YMM-YMM-M256-IMM8 rule memLoadValue(MemVal:MInt):MemLoadValue ~> - execinstr (vmpsadbw Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vmpsadbw Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => execinstr (vmpsadbw //Low slices selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 7 , 0 ), + extractMInt(Imm8, 6, 8), 7 , 0 ), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 15, 8 ), + extractMInt(Imm8, 6, 8), 15, 8 ), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 23, 16), + extractMInt(Imm8, 6, 8), 23, 16), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 31, 24), + extractMInt(Imm8, 6, 8), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 7 , 0), + extractMInt(Imm8, 5, 6), 7 , 0), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 15, 8), + extractMInt(Imm8, 5, 6), 15, 8), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 23, 16), + extractMInt(Imm8, 5, 6), 23, 16), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 31, 24), + extractMInt(Imm8, 5, 6), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 39, 32), + extractMInt(Imm8, 5, 6), 39, 32), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 47, 40), + extractMInt(Imm8, 5, 6), 47, 40), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 55, 48), + extractMInt(Imm8, 5, 6), 55, 48), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 63, 56), + extractMInt(Imm8, 5, 6), 63, 56), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 71, 64), + extractMInt(Imm8, 5, 6), 71, 64), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 79, 72), + extractMInt(Imm8, 5, 6), 79, 72), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 87, 80), + extractMInt(Imm8, 5, 6), 87, 80), //High slices selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 3, 5), 7 +Int + extractMInt(Imm8, 3, 5), 7 +Int 128, 0 +Int 128), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 3, 5), 15+Int + extractMInt(Imm8, 3, 5), 15+Int 128, 8 +Int 128), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 3, 5), 23+Int + extractMInt(Imm8, 3, 5), 23+Int 128, 16+Int 128), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 3, 5), 31+Int + extractMInt(Imm8, 3, 5), 31+Int 128, 24+Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 7 + extractMInt(Imm8, 2, 3), 7 +Int 128, 0 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 15 + extractMInt(Imm8, 2, 3), 15 +Int 128, 8 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 23 + extractMInt(Imm8, 2, 3), 23 +Int 128, 16 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 31 + extractMInt(Imm8, 2, 3), 31 +Int 128, 24 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 39 + extractMInt(Imm8, 2, 3), 39 +Int 128, 32 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 47 + extractMInt(Imm8, 2, 3), 47 +Int 128, 40 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 55 + extractMInt(Imm8, 2, 3), 55 +Int 128, 48 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 63 + extractMInt(Imm8, 2, 3), 63 +Int 128, 56 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 71 + extractMInt(Imm8, 2, 3), 71 +Int 128, 64 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 79 + extractMInt(Imm8, 2, 3), 79 +Int 128, 72 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 87 + extractMInt(Imm8, 2, 3), 87 +Int 128, 80 +Int 128), R4:Ymm, .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule diff --git a/semantics/memoryInstructions/vpalignr_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vpalignr_xmm_xmm_m128_imm8.k index 673f8b7c3..cd2fab0fa 100644 --- a/semantics/memoryInstructions/vpalignr_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpalignr_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPALIGNR-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpalignr:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpalignr:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpalignr:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpalignr:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpalignr Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpalignr:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpalignr:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), Mem128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), uvalueMInt(mi(256, 3))))), 128, 256)) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), Mem128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), Imm8), uvalueMInt(mi(256, 3))))), 128, 256)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpalignr_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vpalignr_ymm_ymm_m256_imm8.k index d0fef964e..b3a5c2aff 100644 --- a/semantics/memoryInstructions/vpalignr_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpalignr_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPALIGNR-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpalignr:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpalignr:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpalignr:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vpalignr:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpalignr Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpalignr:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpalignr:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( Mem256, 0, 128)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), uvalueMInt(mi(256, 3))))), 128, 256), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), extractMInt( Mem256, 128, 256)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), uvalueMInt(mi(256, 3))))), 128, 256)) +convToRegKeys(R4) |-> concatenateMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( Mem256, 0, 128)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), Imm8), uvalueMInt(mi(256, 3))))), 128, 256), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), extractMInt( Mem256, 128, 256)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), Imm8), uvalueMInt(mi(256, 3))))), 128, 256)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpblendd_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vpblendd_xmm_xmm_m128_imm8.k index 0c3aba64f..25d243aca 100644 --- a/semantics/memoryInstructions/vpblendd_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpblendd_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPBLENDD-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpblendd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpblendd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpblendd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpblendd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpblendd Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpblendd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpblendd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem128, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem128, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem128, 64, 96) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem128, 96, 128) #fi))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem128, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem128, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem128, 64, 96) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem128, 96, 128) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpblendd_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vpblendd_ymm_ymm_m256_imm8.k index 277454262..d1088492b 100644 --- a/semantics/memoryInstructions/vpblendd_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpblendd_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPBLENDD-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpblendd:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpblendd:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpblendd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vpblendd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpblendd Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpblendd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpblendd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( Mem256, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( Mem256, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 96) #else extractMInt( Mem256, 64, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 128) #else extractMInt( Mem256, 96, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem256, 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem256, 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem256, 192, 224) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem256, 224, 256) #fi)))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( Mem256, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( Mem256, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 96) #else extractMInt( Mem256, 64, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 128) #else extractMInt( Mem256, 96, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem256, 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem256, 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem256, 192, 224) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem256, 224, 256) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpblendw_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vpblendw_xmm_xmm_m128_imm8.k index b32352650..d076858e6 100644 --- a/semantics/memoryInstructions/vpblendw_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpblendw_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPBLENDW-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpblendw:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpblendw:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpblendw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpblendw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpblendw Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpblendw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpblendw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( Mem128, 0, 16) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( Mem128, 16, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( Mem128, 32, 48) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( Mem128, 48, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( Mem128, 64, 80) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( Mem128, 80, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( Mem128, 96, 112) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( Mem128, 112, 128) #fi))))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( Mem128, 0, 16) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( Mem128, 16, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( Mem128, 32, 48) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( Mem128, 48, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( Mem128, 64, 80) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( Mem128, 80, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( Mem128, 96, 112) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( Mem128, 112, 128) #fi))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpblendw_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vpblendw_ymm_ymm_m256_imm8.k index 194bee6b5..06c48df3d 100644 --- a/semantics/memoryInstructions/vpblendw_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpblendw_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPBLENDW-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpblendw:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpblendw:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpblendw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vpblendw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpblendw Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpblendw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpblendw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 16) #else extractMInt( Mem256, 0, 16) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 16, 32) #else extractMInt( Mem256, 16, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 48) #else extractMInt( Mem256, 32, 48) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 48, 64) #else extractMInt( Mem256, 48, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 80) #else extractMInt( Mem256, 64, 80) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 80, 96) #else extractMInt( Mem256, 80, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 112) #else extractMInt( Mem256, 96, 112) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 112, 128) #else extractMInt( Mem256, 112, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( Mem256, 128, 144) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( Mem256, 144, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( Mem256, 160, 176) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( Mem256, 176, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( Mem256, 192, 208) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( Mem256, 208, 224) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( Mem256, 224, 240) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( Mem256, 240, 256) #fi)))))))))))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 16) #else extractMInt( Mem256, 0, 16) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 16, 32) #else extractMInt( Mem256, 16, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 48) #else extractMInt( Mem256, 32, 48) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 48, 64) #else extractMInt( Mem256, 48, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 80) #else extractMInt( Mem256, 64, 80) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 80, 96) #else extractMInt( Mem256, 80, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 112) #else extractMInt( Mem256, 96, 112) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 112, 128) #else extractMInt( Mem256, 112, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( Mem256, 128, 144) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( Mem256, 144, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( Mem256, 160, 176) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( Mem256, 176, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( Mem256, 192, 208) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( Mem256, 208, 224) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( Mem256, 224, 240) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( Mem256, 240, 256) #fi)))))))))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpclmulqdq_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vpclmulqdq_xmm_xmm_m128_imm8.k index 743703713..4e8bec553 100644 --- a/semantics/memoryInstructions/vpclmulqdq_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpclmulqdq_xmm_xmm_m128_imm8.k @@ -25,15 +25,14 @@ module VPCLMULQDQ-XMM-XMM-M128-IMM8 */ rule memLoadValue(MemVal:MInt):MemLoadValue ~> - execinstr (vpclmulqdq Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpclmulqdq Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => execinstr(vpclmulqdq - selectSlice(getRegisterValue(R3, RSMap), handleImmediateWithSignExtend(Imm8, - 8, 8), 7, 64, 0), - selectSlice(MemVal, handleImmediateWithSignExtend(Imm8, - 8, 8), 3, 64, 0), R4 + selectSlice(getRegisterValue(R3, RSMap), Imm8, 7, 64, 0), + selectSlice(MemVal, Imm8, 3, 64, 0), R4 , .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (vpclmulqdq TEMP1:MInt, TEMP2:MInt, R4:Xmm, .Operands) => diff --git a/semantics/memoryInstructions/vpcmpestri_xmm_m128_imm8.k b/semantics/memoryInstructions/vpcmpestri_xmm_m128_imm8.k index e04fd30e8..f878aa16a 100644 --- a/semantics/memoryInstructions/vpcmpestri_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpcmpestri_xmm_m128_imm8.k @@ -4,27 +4,28 @@ requires "x86-configuration.k" module VPCMPESTRI-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpcmpestri:Opcode Imm8:Imm, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpcmpestri:Opcode Imm8:MInt, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpcmpestri:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => + execinstr (vpcmpestri:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpcmpestri Imm8, memOffset( MemOff), Xmm1, .Operands) ... - + requires bitwidthMInt(Imm8) ==Int 8 // Find Limit Index rule memLoadValue(Mem128:MInt):MemLoadValue ~> - execinstr (vpcmpestri Imm8:Imm, memOffset( MemOff), Xmm1:Xmm, .Operands) => + execinstr (vpcmpestri Imm8:MInt, memOffset( MemOff), Xmm1:Xmm, .Operands) => execinstr (vpcmpestri - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, Mem128, getRegisterValue(Xmm1, RSMap), - findLimitIndexE(Mem128, getRegisterValue(%rdx, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexE(Mem128, getRegisterValue(%rdx, RSMap), Imm8), + findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/memoryInstructions/vpcmpestrm_xmm_m128_imm8.k b/semantics/memoryInstructions/vpcmpestrm_xmm_m128_imm8.k index 94bf1d1a2..9c5f2e32e 100644 --- a/semantics/memoryInstructions/vpcmpestrm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpcmpestrm_xmm_m128_imm8.k @@ -4,26 +4,27 @@ requires "x86-configuration.k" module VPCMPESTRM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpcmpestrm:Opcode Imm8:Imm, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpcmpestrm:Opcode Imm8:MInt, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpcmpestrm:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => + execinstr (vpcmpestrm:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpcmpestrm Imm8, memOffset( MemOff), Xmm1, .Operands) ... - + requires bitwidthMInt(Imm8) ==Int 8 // Find Limit Index rule memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpcmpestrm Imm8, memOffset( MemOff), Xmm1, .Operands) => execinstr (vpcmpestrm - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, Mem128, getRegisterValue(Xmm1, RSMap), - findLimitIndexE(Mem128, getRegisterValue(%rdx, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexE(Mem128, getRegisterValue(%rdx, RSMap), Imm8), + findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/memoryInstructions/vpcmpistri_xmm_m128_imm8.k b/semantics/memoryInstructions/vpcmpistri_xmm_m128_imm8.k index e511e15cf..44e726ab5 100644 --- a/semantics/memoryInstructions/vpcmpistri_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpcmpistri_xmm_m128_imm8.k @@ -4,27 +4,28 @@ requires "x86-configuration.k" module VPCMPISTRI-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpcmpistri:Opcode Imm8:Imm, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpcmpistri:Opcode Imm8:MInt, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpcmpistri:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => + execinstr (vpcmpistri:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpcmpistri Imm8, memOffset( MemOff), Xmm1, .Operands) ... - + requires bitwidthMInt(Imm8) ==Int 8 // Find Limit Index rule memLoadValue(Mem128:MInt):MemLoadValue ~> - execinstr (vpcmpistri Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (vpcmpistri Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (vpcmpistri - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, Mem128, getRegisterValue(Xmm1, RSMap), - findLimitIndexI(Mem128, handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexI(getRegisterValue(Xmm1, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexI(Mem128, Imm8), + findLimitIndexI(getRegisterValue(Xmm1, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/memoryInstructions/vpcmpistrm_xmm_m128_imm8.k b/semantics/memoryInstructions/vpcmpistrm_xmm_m128_imm8.k index f13f75e4e..c65044991 100644 --- a/semantics/memoryInstructions/vpcmpistrm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpcmpistrm_xmm_m128_imm8.k @@ -4,26 +4,28 @@ requires "x86-configuration.k" module VPCMPISTRM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpcmpistrm:Opcode Imm8:Imm, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpcmpistrm:Opcode Imm8:MInt, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpcmpistrm:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => + execinstr (vpcmpistrm:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpcmpistrm Imm8, memOffset( MemOff), Xmm1, .Operands) ... + requires bitwidthMInt(Imm8) ==Int 8 // Find Limit Index rule memLoadValue(Mem128:MInt):MemLoadValue ~> - execinstr (vpcmpistrm Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (vpcmpistrm Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (vpcmpistrm - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, Mem128, getRegisterValue(Xmm1, RSMap), - findLimitIndexI(Mem128, handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexI(getRegisterValue(Xmm1, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexI(Mem128, Imm8), + findLimitIndexI(getRegisterValue(Xmm1, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/memoryInstructions/vperm2f128_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vperm2f128_ymm_ymm_m256_imm8.k index e432ac1f1..c3ba655fe 100644 --- a/semantics/memoryInstructions/vperm2f128_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vperm2f128_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPERM2F128-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vperm2f128:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vperm2f128:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vperm2f128:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vperm2f128:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vperm2f128 Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vperm2f128:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vperm2f128:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi)) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi), mi(128, 0)) #else concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi)) #fi) #fi) +convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi)) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi), mi(128, 0)) #else concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi)) #fi) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vperm2i128_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vperm2i128_ymm_ymm_m256_imm8.k index 91bbba777..f9daa10d9 100644 --- a/semantics/memoryInstructions/vperm2i128_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vperm2i128_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPERM2I128-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vperm2i128:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vperm2i128:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vperm2i128:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vperm2i128:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vperm2i128 Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vperm2i128:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vperm2i128:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi)) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi), mi(128, 0)) #else concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi)) #fi) #fi) +convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi)) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi), mi(128, 0)) #else concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi)) #fi) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpermilpd_xmm_m128_imm8.k b/semantics/memoryInstructions/vpermilpd_xmm_m128_imm8.k index 1cfdec4dc..38e7c5e5d 100644 --- a/semantics/memoryInstructions/vpermilpd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpermilpd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPERMILPD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpermilpd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpermilpd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpermilpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (vpermilpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpermilpd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpermilpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpermilpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( Mem128, 64, 128) #else extractMInt( Mem128, 0, 64) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( Mem128, 64, 128) #else extractMInt( Mem128, 0, 64) #fi))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( Mem128, 64, 128) #else extractMInt( Mem128, 0, 64) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( Mem128, 64, 128) #else extractMInt( Mem128, 0, 64) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpermilpd_ymm_m256_imm8.k b/semantics/memoryInstructions/vpermilpd_ymm_m256_imm8.k index 2c2e6d0a5..e22576e01 100644 --- a/semantics/memoryInstructions/vpermilpd_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpermilpd_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPERMILPD-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpermilpd:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpermilpd:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpermilpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vpermilpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpermilpd Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpermilpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpermilpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( Mem256, 64, 128) #else extractMInt( Mem256, 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( Mem256, 64, 128) #else extractMInt( Mem256, 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( Mem256, 192, 256) #else extractMInt( Mem256, 128, 192) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( Mem256, 192, 256) #else extractMInt( Mem256, 128, 192) #fi)))) +convToRegKeys(R3) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( Mem256, 64, 128) #else extractMInt( Mem256, 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( Mem256, 64, 128) #else extractMInt( Mem256, 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( Mem256, 192, 256) #else extractMInt( Mem256, 128, 192) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( Mem256, 192, 256) #else extractMInt( Mem256, 128, 192) #fi)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpermilps_xmm_m128_imm8.k b/semantics/memoryInstructions/vpermilps_xmm_m128_imm8.k index 31d3585ea..c02fd7fbf 100644 --- a/semantics/memoryInstructions/vpermilps_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpermilps_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPERMILPS-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpermilps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpermilps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpermilps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (vpermilps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpermilps Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpermilps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpermilps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( Mem128, 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( Mem128, 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( Mem128, 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( Mem128, 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 0)) #then extractMInt( Mem128, 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 1)) #then extractMInt( Mem128, 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 2)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 0, 32) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( Mem128, 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( Mem128, 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 0, 32) #fi) #fi) #fi))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( Mem128, 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( Mem128, 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( Mem128, 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( Mem128, 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 0)) #then extractMInt( Mem128, 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 1)) #then extractMInt( Mem128, 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 2)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 0, 32) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( Mem128, 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( Mem128, 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 0, 32) #fi) #fi) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpermilps_ymm_m256_imm8.k b/semantics/memoryInstructions/vpermilps_ymm_m256_imm8.k index d8ed154f1..72f36a69e 100644 --- a/semantics/memoryInstructions/vpermilps_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpermilps_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPERMILPS-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpermilps:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpermilps:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpermilps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vpermilps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpermilps Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpermilps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpermilps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( Mem256, 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( Mem256, 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( Mem256, 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( Mem256, 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 0)) #then extractMInt( Mem256, 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 1)) #then extractMInt( Mem256, 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 2)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( Mem256, 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( Mem256, 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( Mem256, 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( Mem256, 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( Mem256, 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( Mem256, 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 0)) #then extractMInt( Mem256, 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 1)) #then extractMInt( Mem256, 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 2)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 128, 160) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( Mem256, 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( Mem256, 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 128, 160) #fi) #fi) #fi)))))))) +convToRegKeys(R3) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( Mem256, 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( Mem256, 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( Mem256, 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( Mem256, 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 0)) #then extractMInt( Mem256, 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 1)) #then extractMInt( Mem256, 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 2)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( Mem256, 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( Mem256, 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( Mem256, 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( Mem256, 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( Mem256, 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( Mem256, 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 0)) #then extractMInt( Mem256, 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 1)) #then extractMInt( Mem256, 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 2)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 128, 160) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( Mem256, 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( Mem256, 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 128, 160) #fi) #fi) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpermpd_ymm_m256_imm8.k b/semantics/memoryInstructions/vpermpd_ymm_m256_imm8.k index d2d475cfc..8f7b7aba0 100644 --- a/semantics/memoryInstructions/vpermpd_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpermpd_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPERMPD-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpermpd:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpermpd:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpermpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vpermpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpermpd Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpermpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpermpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 6))))), 192, 256), extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 6))))), 192, 256)))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 6))))), 192, 256), extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 6))))), 192, 256)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpermq_ymm_m256_imm8.k b/semantics/memoryInstructions/vpermq_ymm_m256_imm8.k index 2c1a26624..f3a50a7c3 100644 --- a/semantics/memoryInstructions/vpermq_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpermq_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPERMQ-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpermq:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpermq:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpermq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vpermq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpermq Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpermq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpermq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 6))))), 192, 256), extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 6))))), 192, 256)))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 6))))), 192, 256), extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 6))))), 192, 256)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpextrb_m8_xmm_imm8.k b/semantics/memoryInstructions/vpextrb_m8_xmm_imm8.k index 7e2f2350a..625b55a01 100644 --- a/semantics/memoryInstructions/vpextrb_m8_xmm_imm8.k +++ b/semantics/memoryInstructions/vpextrb_m8_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VPEXTRB-M8-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(vpextrb:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vpextrb:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vpextrb:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vpextrb:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (vpextrb Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (vpextrb:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (vpextrb:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128), MemOff, 8 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpextrd_m32_xmm_imm8.k b/semantics/memoryInstructions/vpextrd_m32_xmm_imm8.k index eda4b47f8..b1396072c 100644 --- a/semantics/memoryInstructions/vpextrd_m32_xmm_imm8.k +++ b/semantics/memoryInstructions/vpextrd_m32_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VPEXTRD-M32-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(vpextrd:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vpextrd:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vpextrd:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vpextrd:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (vpextrd Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vpextrd:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vpextrd:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), MemOff, 32 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpextrq_m64_xmm_imm8.k b/semantics/memoryInstructions/vpextrq_m64_xmm_imm8.k index 69be5d404..2a21f97c0 100644 --- a/semantics/memoryInstructions/vpextrq_m64_xmm_imm8.k +++ b/semantics/memoryInstructions/vpextrq_m64_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VPEXTRQ-M64-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(vpextrq:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vpextrq:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vpextrq:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vpextrq:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (vpextrq Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vpextrq:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vpextrq:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))), 64, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))), 64, 128), MemOff, 64 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpextrw_m16_xmm_imm8.k b/semantics/memoryInstructions/vpextrw_m16_xmm_imm8.k index 1f11f47b0..3106f1c26 100644 --- a/semantics/memoryInstructions/vpextrw_m16_xmm_imm8.k +++ b/semantics/memoryInstructions/vpextrw_m16_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VPEXTRW-M16-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(vpextrw:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vpextrw:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vpextrw:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vpextrw:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (vpextrw Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (vpextrw:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (vpextrw:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128), MemOff, 16 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpinsrb_xmm_xmm_m8_imm8.k b/semantics/memoryInstructions/vpinsrb_xmm_xmm_m8_imm8.k index 538f03f1d..01a8938e8 100644 --- a/semantics/memoryInstructions/vpinsrb_xmm_xmm_m8_imm8.k +++ b/semantics/memoryInstructions/vpinsrb_xmm_xmm_m8_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPINSRB-XMM-XMM-M8-IMM8 imports X86-CONFIGURATION - context execinstr(vpinsrb:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpinsrb:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpinsrb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpinsrb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (vpinsrb Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (vpinsrb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (vpinsrb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(120, 0), Mem8), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3)))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(120, 0), Mem8), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpinsrd_xmm_xmm_m32_imm8.k b/semantics/memoryInstructions/vpinsrd_xmm_xmm_m32_imm8.k index ba1b77448..0ad1d3051 100644 --- a/semantics/memoryInstructions/vpinsrd_xmm_xmm_m32_imm8.k +++ b/semantics/memoryInstructions/vpinsrd_xmm_xmm_m32_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPINSRD-XMM-XMM-M32-IMM8 imports X86-CONFIGURATION - context execinstr(vpinsrd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpinsrd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpinsrd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpinsrd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (vpinsrd Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vpinsrd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vpinsrd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), Mem32), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5)))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), Mem32), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpinsrq_xmm_xmm_m64_imm8.k b/semantics/memoryInstructions/vpinsrq_xmm_xmm_m64_imm8.k index 369b02406..7d24dc328 100644 --- a/semantics/memoryInstructions/vpinsrq_xmm_xmm_m64_imm8.k +++ b/semantics/memoryInstructions/vpinsrq_xmm_xmm_m64_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPINSRQ-XMM-XMM-M64-IMM8 imports X86-CONFIGURATION - context execinstr(vpinsrq:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpinsrq:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpinsrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpinsrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (vpinsrq Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vpinsrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vpinsrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(64, 0), Mem64), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))), shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6)))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(64, 0), Mem64), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))), shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpinsrw_xmm_xmm_m16_imm8.k b/semantics/memoryInstructions/vpinsrw_xmm_xmm_m16_imm8.k index ce6b30e3f..29df94768 100644 --- a/semantics/memoryInstructions/vpinsrw_xmm_xmm_m16_imm8.k +++ b/semantics/memoryInstructions/vpinsrw_xmm_xmm_m16_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPINSRW-XMM-XMM-M16-IMM8 imports X86-CONFIGURATION - context execinstr(vpinsrw:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpinsrw:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpinsrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpinsrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (vpinsrw Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (vpinsrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (vpinsrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(112, 0), Mem16), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4)))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(112, 0), Mem16), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpshufd_xmm_m128_imm8.k b/semantics/memoryInstructions/vpshufd_xmm_m128_imm8.k index 87d0d7b6e..74ba9c1c1 100644 --- a/semantics/memoryInstructions/vpshufd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpshufd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPSHUFD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpshufd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpshufd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpshufd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (vpshufd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpshufd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpshufd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpshufd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpshufd_ymm_m256_imm8.k b/semantics/memoryInstructions/vpshufd_ymm_m256_imm8.k index 0b6b17c78..d6a40a98b 100644 --- a/semantics/memoryInstructions/vpshufd_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpshufd_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPSHUFD-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpshufd:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpshufd:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpshufd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vpshufd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpshufd Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpshufd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpshufd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( extractMInt( Mem256, 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( extractMInt( Mem256, 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpshufhw_xmm_m128_imm8.k b/semantics/memoryInstructions/vpshufhw_xmm_m128_imm8.k index eeb489202..957e825b1 100644 --- a/semantics/memoryInstructions/vpshufhw_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpshufhw_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPSHUFHW-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpshufhw:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpshufhw:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpshufhw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (vpshufhw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpshufhw Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpshufhw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpshufhw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 4))))), 48, 64), extractMInt( Mem128, 64, 128)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 4))))), 48, 64), extractMInt( Mem128, 64, 128)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpshufhw_ymm_m256_imm8.k b/semantics/memoryInstructions/vpshufhw_ymm_m256_imm8.k index a9b0def71..bbb390a6d 100644 --- a/semantics/memoryInstructions/vpshufhw_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpshufhw_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPSHUFHW-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpshufhw:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpshufhw:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpshufhw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vpshufhw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpshufhw Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpshufhw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpshufhw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( Mem256, 64, 128), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 4))))), 176, 192), extractMInt( Mem256, 192, 256)))))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( Mem256, 64, 128), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 4))))), 176, 192), extractMInt( Mem256, 192, 256)))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpshuflw_xmm_m128_imm8.k b/semantics/memoryInstructions/vpshuflw_xmm_m128_imm8.k index 4ea5e1628..e9ad30418 100644 --- a/semantics/memoryInstructions/vpshuflw_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpshuflw_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPSHUFLW-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpshuflw:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpshuflw:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpshuflw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (vpshuflw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpshuflw Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpshuflw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpshuflw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( Mem128, 0, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 4))))), 112, 128), extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 4))))), 112, 128)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( Mem128, 0, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 4))))), 112, 128), extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 4))))), 112, 128)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpshuflw_ymm_m256_imm8.k b/semantics/memoryInstructions/vpshuflw_ymm_m256_imm8.k index c2d6f93cb..da5dd0671 100644 --- a/semantics/memoryInstructions/vpshuflw_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpshuflw_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPSHUFLW-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpshuflw:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpshuflw:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpshuflw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vpshuflw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpshuflw Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpshuflw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpshuflw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( Mem256, 0, 64), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( Mem256, 128, 192), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 4))))), 240, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 4))))), 240, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 4))))), 240, 256), extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 4))))), 240, 256)))))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( Mem256, 0, 64), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( Mem256, 128, 192), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 4))))), 240, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 4))))), 240, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 4))))), 240, 256), extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 4))))), 240, 256)))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vroundpd_xmm_m128_imm8.k b/semantics/memoryInstructions/vroundpd_xmm_m128_imm8.k index 52c15f25c..eff64c13e 100644 --- a/semantics/memoryInstructions/vroundpd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vroundpd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VROUNDPD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vroundpd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(vroundpd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vroundpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (vroundpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vroundpd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vroundpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vroundpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem128, 0, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_double_to_int64_rm(extractMInt( Mem128, 64, 128), handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem128, 0, 64), Imm8), cvt_double_to_int64_rm(extractMInt( Mem128, 64, 128), Imm8))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vroundpd_ymm_m256_imm8.k b/semantics/memoryInstructions/vroundpd_ymm_m256_imm8.k index 0d86ea5fa..29c4f53db 100644 --- a/semantics/memoryInstructions/vroundpd_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vroundpd_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VROUNDPD-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vroundpd:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vroundpd:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vroundpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vroundpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vroundpd Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vroundpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vroundpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem256, 0, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem256, 64, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem256, 128, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_double_to_int64_rm(extractMInt( Mem256, 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8))))) +convToRegKeys(R3) |-> concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem256, 0, 64), Imm8), concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem256, 64, 128), Imm8), concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem256, 128, 192), Imm8), cvt_double_to_int64_rm(extractMInt( Mem256, 192, 256), Imm8)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vroundps_xmm_m128_imm8.k b/semantics/memoryInstructions/vroundps_xmm_m128_imm8.k index 3ffb0eb80..19b62e4dd 100644 --- a/semantics/memoryInstructions/vroundps_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vroundps_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VROUNDPS-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vroundps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(vroundps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vroundps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (vroundps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vroundps Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vroundps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vroundps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_int32_rm(extractMInt( Mem128, 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 0, 32), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 32, 64), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 64, 96), Imm8), cvt_single_to_int32_rm(extractMInt( Mem128, 96, 128), Imm8))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vroundps_ymm_m256_imm8.k b/semantics/memoryInstructions/vroundps_ymm_m256_imm8.k index 653a1dc9f..870448c7c 100644 --- a/semantics/memoryInstructions/vroundps_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vroundps_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VROUNDPS-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vroundps:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vroundps:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vroundps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vroundps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vroundps Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vroundps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vroundps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_int32_rm(extractMInt( Mem256, 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8))))))))) +convToRegKeys(R3) |-> concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 0, 32), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 32, 64), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 64, 96), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 96, 128), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 128, 160), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 160, 192), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 192, 224), Imm8), cvt_single_to_int32_rm(extractMInt( Mem256, 224, 256), Imm8)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vroundsd_xmm_xmm_m64_imm8.k b/semantics/memoryInstructions/vroundsd_xmm_xmm_m64_imm8.k index 2b7aa82fb..b1b98e49a 100644 --- a/semantics/memoryInstructions/vroundsd_xmm_xmm_m64_imm8.k +++ b/semantics/memoryInstructions/vroundsd_xmm_xmm_m64_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VROUNDSD-XMM-XMM-M64-IMM8 imports X86-CONFIGURATION - context execinstr(vroundsd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vroundsd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vroundsd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vroundsd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (vroundsd Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vroundsd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vroundsd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 192), cvt_double_to_int64_rm(Mem64, handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 192), cvt_double_to_int64_rm(Mem64, Imm8))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vroundss_xmm_xmm_m32_imm8.k b/semantics/memoryInstructions/vroundss_xmm_xmm_m32_imm8.k index 250e08378..3d8c7d7cf 100644 --- a/semantics/memoryInstructions/vroundss_xmm_xmm_m32_imm8.k +++ b/semantics/memoryInstructions/vroundss_xmm_xmm_m32_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VROUNDSS-XMM-XMM-M32-IMM8 imports X86-CONFIGURATION - context execinstr(vroundss:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vroundss:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vroundss:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vroundss:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (vroundss Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vroundss:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vroundss:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 224), cvt_single_to_int32_rm(Mem32, handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 224), cvt_single_to_int32_rm(Mem32, Imm8))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vshufpd_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vshufpd_xmm_xmm_m128_imm8.k index 6d9c32ce3..18c4fd73d 100644 --- a/semantics/memoryInstructions/vshufpd_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vshufpd_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VSHUFPD-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vshufpd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vshufpd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vshufpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vshufpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vshufpd Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vshufpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vshufpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( Mem128, 0, 64) #else extractMInt( Mem128, 64, 128) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( Mem128, 0, 64) #else extractMInt( Mem128, 64, 128) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vshufpd_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vshufpd_ymm_ymm_m256_imm8.k index 0743ec2af..e966968a3 100644 --- a/semantics/memoryInstructions/vshufpd_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vshufpd_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VSHUFPD-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vshufpd:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vshufpd:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vshufpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vshufpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vshufpd Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vshufpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vshufpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( Mem256, 0, 64) #else extractMInt( Mem256, 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 64) #else extractMInt( getParentValue(R3, RSMap), 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( Mem256, 128, 192) #else extractMInt( Mem256, 192, 256) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi)))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( Mem256, 0, 64) #else extractMInt( Mem256, 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 64) #else extractMInt( getParentValue(R3, RSMap), 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( Mem256, 128, 192) #else extractMInt( Mem256, 192, 256) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vshufps_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vshufps_xmm_xmm_m128_imm8.k index 18d1e9b47..65694b991 100644 --- a/semantics/memoryInstructions/vshufps_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vshufps_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VSHUFPS-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vshufps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vshufps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vshufps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vshufps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vshufps Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vshufps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vshufps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( Mem128, 0, 32) #else extractMInt( Mem128, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( Mem128, 0, 32) #else extractMInt( Mem128, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( Mem128, 0, 32) #else extractMInt( Mem128, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( Mem128, 0, 32) #else extractMInt( Mem128, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vshufps_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vshufps_ymm_ymm_m256_imm8.k index bf4ea4da0..470be85fa 100644 --- a/semantics/memoryInstructions/vshufps_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vshufps_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VSHUFPS-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vshufps:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vshufps:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vshufps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vshufps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vshufps Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vshufps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vshufps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( Mem256, 0, 32) #else extractMInt( Mem256, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( Mem256, 0, 32) #else extractMInt( Mem256, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R3, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R3, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R3, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R3, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( Mem256, 128, 160) #else extractMInt( Mem256, 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( Mem256, 128, 160) #else extractMInt( Mem256, 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi)))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( Mem256, 0, 32) #else extractMInt( Mem256, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( Mem256, 0, 32) #else extractMInt( Mem256, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R3, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R3, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R3, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R3, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( Mem256, 128, 160) #else extractMInt( Mem256, 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( Mem256, 128, 160) #else extractMInt( Mem256, 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/xorb_m8_imm8.k b/semantics/memoryInstructions/xorb_m8_imm8.k index 1bfc2c39a..a338382b7 100644 --- a/semantics/memoryInstructions/xorb_m8_imm8.k +++ b/semantics/memoryInstructions/xorb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module XORB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(xorb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(xorb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (xorb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (xorb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (xorb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (xorb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (xorb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem8, handleImmediateWithSignExtend(Imm8, 8, 8)), + xorMInt( Mem8, Imm8), MemOff, 8 ) @@ -27,15 +28,16 @@ module XORB-M8-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem8, 7, 8), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem8, 6, 7), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 5, 6), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 4, 5), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 3, 4), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 2, 3), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 1, 2), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem8, 7, 8), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem8, 6, 7), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 5, 6), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 4, 5), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 3, 4), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 2, 3), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 1, 2), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 0, 1), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem8, handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem8, Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( Mem8, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> xorMInt( extractMInt( Mem8, 0, 1), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/xorl_m32_imm32.k b/semantics/memoryInstructions/xorl_m32_imm32.k index db7bfde46..7830673db 100644 --- a/semantics/memoryInstructions/xorl_m32_imm32.k +++ b/semantics/memoryInstructions/xorl_m32_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module XORL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(xorl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(xorl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (xorl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (xorl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (xorl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (xorl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (xorl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem32, handleImmediateWithSignExtend(Imm32, 32, 32)), + xorMInt( Mem32, Imm32), MemOff, 32 ) @@ -27,15 +28,16 @@ module XORL-M32-IMM32 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem32, 31, 32), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem32, 30, 31), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 29, 30), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 28, 29), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 27, 28), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 26, 27), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 25, 26), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 24, 25), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem32, 31, 32), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem32, 30, 31), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 29, 30), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 28, 29), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 27, 28), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 26, 27), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 25, 26), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 24, 25), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem32, handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem32, Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( Mem32, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> xorMInt( extractMInt( Mem32, 0, 1), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/xorl_m32_imm8.k b/semantics/memoryInstructions/xorl_m32_imm8.k index b2a9bea6c..281094860 100644 --- a/semantics/memoryInstructions/xorl_m32_imm8.k +++ b/semantics/memoryInstructions/xorl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module XORL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(xorl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(xorl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (xorl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (xorl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (xorl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (xorl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (xorl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem32, mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + xorMInt( Mem32, mi(32, svalueMInt(Imm8))), MemOff, 32 ) @@ -27,15 +28,16 @@ module XORL-M32-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem32, 31, 32), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem32, 30, 31), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 29, 30), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 28, 29), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 27, 28), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 26, 27), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 25, 26), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 24, 25), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem32, 31, 32), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem32, 30, 31), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 29, 30), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 28, 29), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 27, 28), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 26, 27), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 25, 26), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 24, 25), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem32, mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem32, mi(32, svalueMInt(Imm8))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( Mem32, 0, 1), extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> xorMInt( extractMInt( Mem32, 0, 1), extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/xorq_m64_imm32.k b/semantics/memoryInstructions/xorq_m64_imm32.k index a77c4c11e..05f383ba0 100644 --- a/semantics/memoryInstructions/xorq_m64_imm32.k +++ b/semantics/memoryInstructions/xorq_m64_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module XORQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(xorq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(xorq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (xorq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (xorq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (xorq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (xorq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (xorq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), + xorMInt( Mem64, mi(64, svalueMInt(Imm32))), MemOff, 64 ) @@ -27,15 +28,16 @@ module XORQ-M64-IMM32 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem64, 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem64, 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem64, 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem64, 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem64, mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> xorMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/xorq_m64_imm8.k b/semantics/memoryInstructions/xorq_m64_imm8.k index 1f8e023ad..1727eae5b 100644 --- a/semantics/memoryInstructions/xorq_m64_imm8.k +++ b/semantics/memoryInstructions/xorq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module XORQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(xorq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(xorq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (xorq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (xorq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (xorq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (xorq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (xorq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + xorMInt( Mem64, mi(64, svalueMInt(Imm8))), MemOff, 64 ) @@ -27,15 +28,16 @@ module XORQ-M64-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem64, 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem64, 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem64, 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem64, 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem64, mi(64, svalueMInt(Imm8))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> xorMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/xorw_m16_imm16.k b/semantics/memoryInstructions/xorw_m16_imm16.k index b6c04a45b..6aab46f18 100644 --- a/semantics/memoryInstructions/xorw_m16_imm16.k +++ b/semantics/memoryInstructions/xorw_m16_imm16.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module XORW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(xorw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(xorw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (xorw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (xorw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (xorw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (xorw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (xorw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem16, handleImmediateWithSignExtend(Imm16, 16, 16)), + xorMInt( Mem16, Imm16), MemOff, 16 ) @@ -27,15 +28,16 @@ module XORW-M16-IMM16 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem16, 15, 16), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem16, 14, 15), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 13, 14), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 12, 13), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 11, 12), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 10, 11), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 9, 10), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 8, 9), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem16, 15, 16), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem16, 14, 15), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 13, 14), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 12, 13), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 11, 12), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 10, 11), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 9, 10), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 8, 9), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem16, handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem16, Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( Mem16, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> xorMInt( extractMInt( Mem16, 0, 1), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/xorw_m16_imm8.k b/semantics/memoryInstructions/xorw_m16_imm8.k index e3430d659..daea736e1 100644 --- a/semantics/memoryInstructions/xorw_m16_imm8.k +++ b/semantics/memoryInstructions/xorw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module XORW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(xorw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(xorw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (xorw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (xorw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (xorw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (xorw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (xorw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem16, mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + xorMInt( Mem16, mi(16, svalueMInt(Imm8))), MemOff, 16 ) @@ -27,15 +28,16 @@ module XORW-M16-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem16, 15, 16), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem16, 14, 15), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 13, 14), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 12, 13), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 11, 12), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 10, 11), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 9, 10), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 8, 9), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem16, 15, 16), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem16, 14, 15), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 13, 14), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 12, 13), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 11, 12), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 10, 11), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 9, 10), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 8, 9), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem16, mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem16, mi(16, svalueMInt(Imm8))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( Mem16, 0, 1), extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> xorMInt( extractMInt( Mem16, 0, 1), extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/registerInstructions/pushq_imm32.k b/semantics/registerInstructions/pushq_imm32.k deleted file mode 100644 index 143e8b115..000000000 --- a/semantics/registerInstructions/pushq_imm32.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -/*@ - Push R: - 1. ValTostore = R - 2. *(RSP-8) = ValTostore - 3. RSP = RSP - 8 -*/ -module PUSHQ-IMM32 - imports X86-CONFIGURATION - - rule - execinstr (pushq Imm32:Imm, .Operands) => - storeToMemory( - handleImmediateWithSignExtend(Imm32, 32, 64), - subMInt(getRegisterValue(%rsp, RSMap), mi(64, 8)), - 64) ~> - decRSPInBytes(8) - ... - RSMap -endmodule diff --git a/semantics/registerInstructions/roll_r32_one.k b/semantics/registerInstructions/roll_r32_one.k index 34f3407b6..c2dfc627d 100644 --- a/semantics/registerInstructions/roll_r32_one.k +++ b/semantics/registerInstructions/roll_r32_one.k @@ -1,36 +1,25 @@ // Autogenerated using stratification. requires "x86-configuration.k" -module ROLL-M32-ONE +module ROLL-R32-ONE imports X86-CONFIGURATION - rule - execinstr (roll:Opcode M:Mem, .Operands) => execinstr (roll:Opcode $0x1, M:Mem, .Operands) - ... - context execinstr(roll:Opcode $0x1, HOLE:Mem, .Operands) [result(MemOffset)] - - rule - execinstr (roll:Opcode $0x1, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( MemOff, 32) ~> - execinstr (roll $0x1, memOffset( MemOff), .Operands) - ... - RSMap:Map - rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (roll:Opcode $0x1, memOffset( MemOff:MInt):MemOffset, .Operands) => - - storeToMemory( - rol( Mem32, mi(32, 1)), - MemOff, - 32 - ) - + execinstr (roll $0x1, R2:R32, .Operands) => . ... - RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( rol( Mem32, mi(32, 1)), 31, 32) +RSMap:Map => updateMap(RSMap, +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), rol( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, 1))) + +"CF" |-> extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, 1)), 31, 32) + +"OF" |-> (#ifMInt (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, 1)), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, 1)), 31, 32), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +) -"OF" |-> (#ifMInt (eqMInt( extractMInt( rol( Mem32, mi(32, 1)), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem32, mi(32, 1)), 31, 32), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) - ) + +endmodule + +module ROLL-R32-ONE-SEMANTICS + imports ROLL-R32-ONE endmodule diff --git a/semantics/run-on-elf.py b/semantics/run-on-elf.py index 4d4528aea..067654376 100755 --- a/semantics/run-on-elf.py +++ b/semantics/run-on-elf.py @@ -111,7 +111,7 @@ def inum_file_pair_from_line(line): def get_instructions_from_inums(inums): with open(os.path.join(decoder_directory, "generator", "datafiles", "full-map.txt"), "r") as f: - return list(map(lambda pair: pair[1], filter(lambda pair: pair[0] in inums, map(inum_file_pair_from_line, f.readlines())))) + return list(set(map(lambda pair: pair[1], filter(lambda pair: pair[0] in inums, map(inum_file_pair_from_line, f.readlines()))))) def copy_instructions(full_names): for name in full_names: diff --git a/semantics/systemInstructions/callq_rel32.k b/semantics/systemInstructions/callq_rel32.k index 42e5a159b..abd054b19 100644 --- a/semantics/systemInstructions/callq_rel32.k +++ b/semantics/systemInstructions/callq_rel32.k @@ -13,16 +13,18 @@ module CALLQ-REL32 rule - execinstr (callq Imm32:Imm, .Operands) => + execinstr (callq Imm32:MInt, .Operands) => storeToMemory({RSMap["RIP"]}:>MInt, subMInt(getRegisterValue(%rsp, RSMap), mi(64, 8)), 64) ~> decRSPInBytes(8) ... - RSMap => updateMap(RSMap, ("RIP" |->addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)) )) + RSMap => updateMap(RSMap, ("RIP" |->addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)) )) SymMap - requires notBool HasBuiltinAtAddress(SymMap, addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64))) + requires notBool HasBuiltinAtAddress(SymMap, addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64))) + andBool bitwidthMInt(Imm32) ==Int 32 - rule execinstr (callq Imm32:Imm, .Operands) => execinstr(call GetBuiltinFromAddress(SymMap, addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) ... + rule execinstr (callq Imm32:MInt, .Operands) => execinstr(call GetBuiltinFromAddress(SymMap, addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) ... RSMap SymMap - requires HasBuiltinAtAddress(SymMap, addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64))) + requires HasBuiltinAtAddress(SymMap, addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64))) + andBool bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/systemInstructions/ja_rel32.k b/semantics/systemInstructions/ja_rel32.k index 7edfdbd8f..987f2fc69 100644 --- a/semantics/systemInstructions/ja_rel32.k +++ b/semantics/systemInstructions/ja_rel32.k @@ -4,7 +4,14 @@ module JA-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule execinstr (ja Imm32:Imm, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + rule execinstr (ja Imm32:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) + + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) + + rule execinstr (ja Imm32:MInt, .Operands) => . ... + RSMap + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) endmodule diff --git a/semantics/systemInstructions/ja_rel8.k b/semantics/systemInstructions/ja_rel8.k index 351771832..96bc20187 100644 --- a/semantics/systemInstructions/ja_rel8.k +++ b/semantics/systemInstructions/ja_rel8.k @@ -6,19 +6,20 @@ module JA-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (ja Imm8:Imm, .Operands) => . + execinstr (ja Imm8:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RIP" |-> - addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, - 8, 64)))) + addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) rule - execinstr (ja Imm8:Imm, .Operands) => . + execinstr (ja Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) endmodule diff --git a/semantics/systemInstructions/jae_rel32.k b/semantics/systemInstructions/jae_rel32.k index 8cd55a406..697ee5c2b 100644 --- a/semantics/systemInstructions/jae_rel32.k +++ b/semantics/systemInstructions/jae_rel32.k @@ -6,15 +6,17 @@ module JAE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jae Imm32:Imm, .Operands) => . + execinstr (jae Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) rule - execinstr (jae Imm32:Imm, .Operands) => . + execinstr (jae Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jae_rel8.k b/semantics/systemInstructions/jae_rel8.k index 4b2189dc2..059459b19 100644 --- a/semantics/systemInstructions/jae_rel8.k +++ b/semantics/systemInstructions/jae_rel8.k @@ -6,15 +6,17 @@ module JAE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jae Imm8:Imm, .Operands) => . + execinstr (jae Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) rule - execinstr (jae Imm8:Imm, .Operands) => . + execinstr (jae Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jb_rel32.k b/semantics/systemInstructions/jb_rel32.k index 004b1bd55..d951f3789 100644 --- a/semantics/systemInstructions/jb_rel32.k +++ b/semantics/systemInstructions/jb_rel32.k @@ -6,15 +6,17 @@ module JB-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jb Imm32:Imm, .Operands) => . + execinstr (jb Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) rule - execinstr (jb Imm32:Imm, .Operands) => . + execinstr (jb Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jb_rel8.k b/semantics/systemInstructions/jb_rel8.k index 2054d3e2b..dfb9fd6fe 100644 --- a/semantics/systemInstructions/jb_rel8.k +++ b/semantics/systemInstructions/jb_rel8.k @@ -6,15 +6,17 @@ module JB-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jb Imm8:Imm, .Operands) => . + execinstr (jb Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) rule - execinstr (jb Imm8:Imm, .Operands) => . + execinstr (jb Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jbe_rel32.k b/semantics/systemInstructions/jbe_rel32.k index 2682bbf2c..3f64d6359 100644 --- a/semantics/systemInstructions/jbe_rel32.k +++ b/semantics/systemInstructions/jbe_rel32.k @@ -6,17 +6,19 @@ module JBE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jbe Imm32:Imm, .Operands) => . + execinstr (jbe Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) rule - execinstr (jbe Imm32:Imm, .Operands) => . + execinstr (jbe Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) endmodule diff --git a/semantics/systemInstructions/jbe_rel8.k b/semantics/systemInstructions/jbe_rel8.k index ed8c2ceae..b0c3bb039 100644 --- a/semantics/systemInstructions/jbe_rel8.k +++ b/semantics/systemInstructions/jbe_rel8.k @@ -6,17 +6,19 @@ module JBE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jbe Imm8:Imm, .Operands) => . + execinstr (jbe Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) rule - execinstr (jbe Imm8:Imm, .Operands) => . + execinstr (jbe Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) endmodule diff --git a/semantics/systemInstructions/jc_rel32.k b/semantics/systemInstructions/jc_rel32.k index e33369bbe..d75d1231b 100644 --- a/semantics/systemInstructions/jc_rel32.k +++ b/semantics/systemInstructions/jc_rel32.k @@ -6,15 +6,17 @@ module JC-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jc Imm32:Imm, .Operands) => . + execinstr (jc Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) rule - execinstr (jc Imm32:Imm, .Operands) => . + execinstr (jc Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jc_rel8.k b/semantics/systemInstructions/jc_rel8.k index 656ff31d8..07e2e66a1 100644 --- a/semantics/systemInstructions/jc_rel8.k +++ b/semantics/systemInstructions/jc_rel8.k @@ -6,15 +6,17 @@ module JC-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jc Imm8:Imm, .Operands) => . + execinstr (jc Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) rule - execinstr (jc Imm8:Imm, .Operands) => . + execinstr (jc Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/je_rel32.k b/semantics/systemInstructions/je_rel32.k index 2948258c5..3071bf335 100644 --- a/semantics/systemInstructions/je_rel32.k +++ b/semantics/systemInstructions/je_rel32.k @@ -6,15 +6,17 @@ module JE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (je Imm32:Imm, .Operands) => . + execinstr (je Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) rule - execinstr (je Imm32:Imm, .Operands) => . + execinstr (je Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/je_rel8.k b/semantics/systemInstructions/je_rel8.k index 4d35997ca..204e8355c 100644 --- a/semantics/systemInstructions/je_rel8.k +++ b/semantics/systemInstructions/je_rel8.k @@ -6,15 +6,17 @@ module JE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (je Imm8:Imm, .Operands) => . + execinstr (je Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) rule - execinstr (je Imm8:Imm, .Operands) => . + execinstr (je Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jecxz_rel8.k b/semantics/systemInstructions/jecxz_rel8.k index c6fe21868..60e07b1de 100644 --- a/semantics/systemInstructions/jecxz_rel8.k +++ b/semantics/systemInstructions/jecxz_rel8.k @@ -6,15 +6,17 @@ module JECXZ-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jecxz Imm8:Imm, .Operands) => . + execinstr (jecxz Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt(getRegisterValue(%ecx, RSMap), mi(32, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt(getRegisterValue(%ecx, RSMap), mi(32, 0)) rule - execinstr (jecxz Imm8:Imm, .Operands) => . + execinstr (jecxz Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt(getRegisterValue(%ecx, RSMap), mi(32, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt(getRegisterValue(%ecx, RSMap), mi(32, 0)) endmodule diff --git a/semantics/systemInstructions/jg_rel32.k b/semantics/systemInstructions/jg_rel32.k index 34847e9a4..295492de4 100644 --- a/semantics/systemInstructions/jg_rel32.k +++ b/semantics/systemInstructions/jg_rel32.k @@ -4,19 +4,21 @@ module JG-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jg Imm32:Imm, .Operands) => . + execinstr (jg Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) rule - execinstr (jg Imm32:Imm, .Operands) => . + execinstr (jg Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) orBool - notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jg_rel8.k b/semantics/systemInstructions/jg_rel8.k index 2109d3880..49e48a412 100644 --- a/semantics/systemInstructions/jg_rel8.k +++ b/semantics/systemInstructions/jg_rel8.k @@ -4,19 +4,21 @@ module JG-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jg Imm8:Imm, .Operands) => . + execinstr (jg Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) rule - execinstr (jg Imm8:Imm, .Operands) => . + execinstr (jg Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) orBool - notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jge_rel32.k b/semantics/systemInstructions/jge_rel32.k index 0ef51e517..a5e4ba1bb 100644 --- a/semantics/systemInstructions/jge_rel32.k +++ b/semantics/systemInstructions/jge_rel32.k @@ -4,15 +4,17 @@ module JGE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jge Imm32:Imm, .Operands) => . + execinstr (jge Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) rule - execinstr (jge Imm32:Imm, .Operands) => . + execinstr (jge Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jge_rel8.k b/semantics/systemInstructions/jge_rel8.k index c8743fdc1..751e1bfd5 100644 --- a/semantics/systemInstructions/jge_rel8.k +++ b/semantics/systemInstructions/jge_rel8.k @@ -4,15 +4,17 @@ module JGE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jge Imm8:Imm, .Operands) => . + execinstr (jge Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) rule - execinstr (jge Imm8:Imm, .Operands) => . + execinstr (jge Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jl_rel32.k b/semantics/systemInstructions/jl_rel32.k index 339a7b9ec..407ce8bc6 100644 --- a/semantics/systemInstructions/jl_rel32.k +++ b/semantics/systemInstructions/jl_rel32.k @@ -4,15 +4,17 @@ module JL-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jl Imm32:Imm, .Operands) => . + execinstr (jl Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) rule - execinstr (jl Imm32:Imm, .Operands) => . + execinstr (jl Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jl_rel8.k b/semantics/systemInstructions/jl_rel8.k index 68260efd4..0a1ab84b9 100644 --- a/semantics/systemInstructions/jl_rel8.k +++ b/semantics/systemInstructions/jl_rel8.k @@ -4,15 +4,17 @@ module JL-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jl Imm8:Imm, .Operands) => . + execinstr (jl Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) rule - execinstr (jl Imm8:Imm, .Operands) => . + execinstr (jl Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jle_rel32.k b/semantics/systemInstructions/jle_rel32.k index 0449a5c20..c2f827b94 100644 --- a/semantics/systemInstructions/jle_rel32.k +++ b/semantics/systemInstructions/jle_rel32.k @@ -4,19 +4,21 @@ module JLE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jle Imm32:Imm, .Operands) => . + execinstr (jle Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool - (notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) + (notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt))) rule - execinstr (jle Imm32:Imm, .Operands) => . + execinstr (jle Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jle_rel8.k b/semantics/systemInstructions/jle_rel8.k index c901c2d30..f818684b9 100644 --- a/semantics/systemInstructions/jle_rel8.k +++ b/semantics/systemInstructions/jle_rel8.k @@ -4,19 +4,21 @@ module JLE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jle Imm8:Imm, .Operands) => . + execinstr (jle Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool - (notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) + (notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt))) rule - execinstr (jle Imm8:Imm, .Operands) => . + execinstr (jle Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jmp_rel32.k b/semantics/systemInstructions/jmp_rel32.k index 65e64af0e..20f25aa3c 100644 --- a/semantics/systemInstructions/jmp_rel32.k +++ b/semantics/systemInstructions/jmp_rel32.k @@ -5,9 +5,10 @@ module JMPQ-REL32 imports X86-CONFIGURATION rule - execinstr (jmp Imm32:Imm, .Operands) => . + execinstr (jmp Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/systemInstructions/jmp_rel8.k b/semantics/systemInstructions/jmp_rel8.k index c6b80b5ce..3c940e93e 100644 --- a/semantics/systemInstructions/jmp_rel8.k +++ b/semantics/systemInstructions/jmp_rel8.k @@ -5,9 +5,10 @@ module JMPQ-REL8 imports X86-CONFIGURATION rule - execinstr (jmp Imm8:Imm, .Operands) => . + execinstr (jmp Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/systemInstructions/jna_rel32.k b/semantics/systemInstructions/jna_rel32.k index 54a425921..a2740b9e3 100644 --- a/semantics/systemInstructions/jna_rel32.k +++ b/semantics/systemInstructions/jna_rel32.k @@ -6,17 +6,19 @@ module JNA-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jna Imm32:Imm, .Operands) => . + execinstr (jna Imm32:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RIP" |-> - addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, - 32, 64)))) + addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, + 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1))) rule - execinstr (jna Imm32:Imm, .Operands) => . + execinstr (jna Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1))) endmodule diff --git a/semantics/systemInstructions/jna_rel8.k b/semantics/systemInstructions/jna_rel8.k index 810660cc5..ae854f827 100644 --- a/semantics/systemInstructions/jna_rel8.k +++ b/semantics/systemInstructions/jna_rel8.k @@ -6,17 +6,19 @@ module JNA-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jna Imm8:Imm, .Operands) => . + execinstr (jna Imm8:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RIP" |-> - addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, - 8, 64)))) + addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, + 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1))) rule - execinstr (jna Imm8:Imm, .Operands) => . + execinstr (jna Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1))) endmodule diff --git a/semantics/systemInstructions/jnae_rel32.k b/semantics/systemInstructions/jnae_rel32.k index 9c8d96d54..ac18612a0 100644 --- a/semantics/systemInstructions/jnae_rel32.k +++ b/semantics/systemInstructions/jnae_rel32.k @@ -6,15 +6,17 @@ module JNAE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnae Imm32:Imm, .Operands) => . + execinstr (jnae Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) rule - execinstr (jnae Imm32:Imm, .Operands) => . + execinstr (jnae Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jnae_rel8.k b/semantics/systemInstructions/jnae_rel8.k index 1080e3fd4..9f5afa5dc 100644 --- a/semantics/systemInstructions/jnae_rel8.k +++ b/semantics/systemInstructions/jnae_rel8.k @@ -6,15 +6,17 @@ module JNAE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnae Imm8:Imm, .Operands) => . + execinstr (jnae Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) rule - execinstr (jnae Imm8:Imm, .Operands) => . + execinstr (jnae Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jnb_rel32.k b/semantics/systemInstructions/jnb_rel32.k index 471150ca7..23760c8a5 100644 --- a/semantics/systemInstructions/jnb_rel32.k +++ b/semantics/systemInstructions/jnb_rel32.k @@ -6,15 +6,17 @@ module JNB-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnb Imm32:Imm, .Operands) => . + execinstr (jnb Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) rule - execinstr (jnb Imm32:Imm, .Operands) => . + execinstr (jnb Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jnb_rel8.k b/semantics/systemInstructions/jnb_rel8.k index 215a340da..d831e9646 100644 --- a/semantics/systemInstructions/jnb_rel8.k +++ b/semantics/systemInstructions/jnb_rel8.k @@ -6,15 +6,17 @@ module JNB-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnb Imm8:Imm, .Operands) => . + execinstr (jnb Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) rule - execinstr (jnb Imm8:Imm, .Operands) => . + execinstr (jnb Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jnbe_rel32.k b/semantics/systemInstructions/jnbe_rel32.k index d63320a24..f042a5fbe 100644 --- a/semantics/systemInstructions/jnbe_rel32.k +++ b/semantics/systemInstructions/jnbe_rel32.k @@ -6,18 +6,20 @@ module JNBE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnbe Imm32:Imm, .Operands) => . + execinstr (jnbe Imm32:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RIP" |-> - addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, - 32, 64)))) + addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, + 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) rule - execinstr (jnbe Imm32:Imm, .Operands) => . + execinstr (jnbe Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) endmodule diff --git a/semantics/systemInstructions/jnbe_rel8.k b/semantics/systemInstructions/jnbe_rel8.k index 5790a0235..ea4ef54ac 100644 --- a/semantics/systemInstructions/jnbe_rel8.k +++ b/semantics/systemInstructions/jnbe_rel8.k @@ -6,18 +6,20 @@ module JNBE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnbe Imm8:Imm, .Operands) => . + execinstr (jnbe Imm8:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RIP" |-> - addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, - 8, 64)))) + addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, + 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) rule - execinstr (jnbe Imm8:Imm, .Operands) => . + execinstr (jnbe Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) endmodule diff --git a/semantics/systemInstructions/jnc_rel32.k b/semantics/systemInstructions/jnc_rel32.k index c83c6ce85..4c86fa2f7 100644 --- a/semantics/systemInstructions/jnc_rel32.k +++ b/semantics/systemInstructions/jnc_rel32.k @@ -6,15 +6,17 @@ module JNC-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnc Imm32:Imm, .Operands) => . + execinstr (jnc Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) rule - execinstr (jnc Imm32:Imm, .Operands) => . + execinstr (jnc Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jnc_rel8.k b/semantics/systemInstructions/jnc_rel8.k index 409270d14..348665660 100644 --- a/semantics/systemInstructions/jnc_rel8.k +++ b/semantics/systemInstructions/jnc_rel8.k @@ -6,15 +6,17 @@ module JNC-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnc Imm8:Imm, .Operands) => . + execinstr (jnc Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) rule - execinstr (jnc Imm8:Imm, .Operands) => . + execinstr (jnc Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jne_rel32.k b/semantics/systemInstructions/jne_rel32.k index df758fe3b..3ef4d9f48 100644 --- a/semantics/systemInstructions/jne_rel32.k +++ b/semantics/systemInstructions/jne_rel32.k @@ -6,15 +6,17 @@ module JNE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jne Imm32:Imm, .Operands) => . + execinstr (jne Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) rule - execinstr (jne Imm32:Imm, .Operands) => . + execinstr (jne Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jne_rel8.k b/semantics/systemInstructions/jne_rel8.k index d6fbd8aca..d442a86c0 100644 --- a/semantics/systemInstructions/jne_rel8.k +++ b/semantics/systemInstructions/jne_rel8.k @@ -6,15 +6,17 @@ module JNE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jne Imm8:Imm, .Operands) => . + execinstr (jne Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) rule - execinstr (jne Imm8:Imm, .Operands) => . + execinstr (jne Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jng_rel32.k b/semantics/systemInstructions/jng_rel32.k index 8706aaf5e..4f9fafeda 100644 --- a/semantics/systemInstructions/jng_rel32.k +++ b/semantics/systemInstructions/jng_rel32.k @@ -6,15 +6,17 @@ module JNG-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jng Imm32:Imm, .Operands) => . + execinstr (jng Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) rule - execinstr (jng Imm32:Imm, .Operands) => . + execinstr (jng Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jng_rel8.k b/semantics/systemInstructions/jng_rel8.k index b15e8f7c0..d8b505c01 100644 --- a/semantics/systemInstructions/jng_rel8.k +++ b/semantics/systemInstructions/jng_rel8.k @@ -6,15 +6,17 @@ module JNG-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jng Imm8:Imm, .Operands) => . + execinstr (jng Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) rule - execinstr (jng Imm8:Imm, .Operands) => . + execinstr (jng Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jnge_rel32.k b/semantics/systemInstructions/jnge_rel32.k index a49f5d310..a04ced00d 100644 --- a/semantics/systemInstructions/jnge_rel32.k +++ b/semantics/systemInstructions/jnge_rel32.k @@ -6,15 +6,17 @@ module JNGE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnge Imm32:Imm, .Operands) => . + execinstr (jnge Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) rule - execinstr (jnge Imm32:Imm, .Operands) => . + execinstr (jnge Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jnge_rel8.k b/semantics/systemInstructions/jnge_rel8.k index e6cafc657..adf16426e 100644 --- a/semantics/systemInstructions/jnge_rel8.k +++ b/semantics/systemInstructions/jnge_rel8.k @@ -6,15 +6,17 @@ module JNGE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnge Imm8:Imm, .Operands) => . + execinstr (jnge Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) rule - execinstr (jnge Imm8:Imm, .Operands) => . + execinstr (jnge Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jnl_rel32.k b/semantics/systemInstructions/jnl_rel32.k index 0777ad103..440ddf0ea 100644 --- a/semantics/systemInstructions/jnl_rel32.k +++ b/semantics/systemInstructions/jnl_rel32.k @@ -6,15 +6,17 @@ module JNL-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnl Imm32:Imm, .Operands) => . + execinstr (jnl Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) rule - execinstr (jnl Imm32:Imm, .Operands) => . + execinstr (jnl Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jnl_rel8.k b/semantics/systemInstructions/jnl_rel8.k index 0db8374fb..50f56302d 100644 --- a/semantics/systemInstructions/jnl_rel8.k +++ b/semantics/systemInstructions/jnl_rel8.k @@ -6,15 +6,17 @@ module JNL-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnl Imm8:Imm, .Operands) => . + execinstr (jnl Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) rule - execinstr (jnl Imm8:Imm, .Operands) => . + execinstr (jnl Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jnle_rel32.k b/semantics/systemInstructions/jnle_rel32.k index 038a3e6a5..e772fc77a 100644 --- a/semantics/systemInstructions/jnle_rel32.k +++ b/semantics/systemInstructions/jnle_rel32.k @@ -6,15 +6,17 @@ module JNLE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnle Imm32:Imm, .Operands) => . + execinstr (jnle Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) rule - execinstr (jnle Imm32:Imm, .Operands) => . + execinstr (jnle Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (notBool eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jnle_rel8.k b/semantics/systemInstructions/jnle_rel8.k index 188425453..44fd34677 100644 --- a/semantics/systemInstructions/jnle_rel8.k +++ b/semantics/systemInstructions/jnle_rel8.k @@ -6,15 +6,17 @@ module JNLE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnle Imm8:Imm, .Operands) => . + execinstr (jnle Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) rule - execinstr (jnle Imm8:Imm, .Operands) => . + execinstr (jnle Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (notBool eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jno_rel32.k b/semantics/systemInstructions/jno_rel32.k index 52ca31290..593c31f33 100644 --- a/semantics/systemInstructions/jno_rel32.k +++ b/semantics/systemInstructions/jno_rel32.k @@ -6,15 +6,17 @@ module JNO-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jno Imm32:Imm, .Operands) => . + execinstr (jno Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) rule - execinstr (jno Imm32:Imm, .Operands) => . + execinstr (jno Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jno_rel8.k b/semantics/systemInstructions/jno_rel8.k index dbb1e0ce8..8741ffeef 100644 --- a/semantics/systemInstructions/jno_rel8.k +++ b/semantics/systemInstructions/jno_rel8.k @@ -6,15 +6,17 @@ module JNO-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jno Imm8:Imm, .Operands) => . + execinstr (jno Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) rule - execinstr (jno Imm8:Imm, .Operands) => . + execinstr (jno Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jnp_rel32.k b/semantics/systemInstructions/jnp_rel32.k index c44e8957b..68adf18c3 100644 --- a/semantics/systemInstructions/jnp_rel32.k +++ b/semantics/systemInstructions/jnp_rel32.k @@ -6,15 +6,17 @@ module JNP-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnp Imm32:Imm, .Operands) => . + execinstr (jnp Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) rule - execinstr (jnp Imm32:Imm, .Operands) => . + execinstr (jnp Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jnp_rel8.k b/semantics/systemInstructions/jnp_rel8.k index 0a0509c8b..9a54f70a8 100644 --- a/semantics/systemInstructions/jnp_rel8.k +++ b/semantics/systemInstructions/jnp_rel8.k @@ -6,15 +6,17 @@ module JNP-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnp Imm8:Imm, .Operands) => . + execinstr (jnp Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) rule - execinstr (jnp Imm8:Imm, .Operands) => . + execinstr (jnp Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jns_rel32.k b/semantics/systemInstructions/jns_rel32.k index e0f6b0b25..7e2a9b089 100644 --- a/semantics/systemInstructions/jns_rel32.k +++ b/semantics/systemInstructions/jns_rel32.k @@ -6,15 +6,17 @@ module JNS-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jns Imm32:Imm, .Operands) => . + execinstr (jns Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) rule - execinstr (jns Imm32:Imm, .Operands) => . + execinstr (jns Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jns_rel8.k b/semantics/systemInstructions/jns_rel8.k index ee3a25cdc..25353444d 100644 --- a/semantics/systemInstructions/jns_rel8.k +++ b/semantics/systemInstructions/jns_rel8.k @@ -6,15 +6,17 @@ module JNS-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jns Imm8:Imm, .Operands) => . + execinstr (jns Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) rule - execinstr (jns Imm8:Imm, .Operands) => . + execinstr (jns Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jnz_rel32.k b/semantics/systemInstructions/jnz_rel32.k index c4758b651..25380d73a 100644 --- a/semantics/systemInstructions/jnz_rel32.k +++ b/semantics/systemInstructions/jnz_rel32.k @@ -6,15 +6,17 @@ module JNZ-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnz Imm32:Imm, .Operands) => . + execinstr (jnz Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) rule - execinstr (jnz Imm32:Imm, .Operands) => . + execinstr (jnz Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jnz_rel8.k b/semantics/systemInstructions/jnz_rel8.k index 841e64a95..beeb4f24b 100644 --- a/semantics/systemInstructions/jnz_rel8.k +++ b/semantics/systemInstructions/jnz_rel8.k @@ -6,15 +6,17 @@ module JNZ-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnz Imm8:Imm, .Operands) => . + execinstr (jnz Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) rule - execinstr (jnz Imm8:Imm, .Operands) => . + execinstr (jnz Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jo_rel32.k b/semantics/systemInstructions/jo_rel32.k index 86a412670..fe453c6f6 100644 --- a/semantics/systemInstructions/jo_rel32.k +++ b/semantics/systemInstructions/jo_rel32.k @@ -6,15 +6,17 @@ module JO-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jo Imm32:Imm, .Operands) => . + execinstr (jo Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) rule - execinstr (jo Imm32:Imm, .Operands) => . + execinstr (jo Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jo_rel8.k b/semantics/systemInstructions/jo_rel8.k index 739212785..4affc1844 100644 --- a/semantics/systemInstructions/jo_rel8.k +++ b/semantics/systemInstructions/jo_rel8.k @@ -6,15 +6,17 @@ module JO-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jo Imm8:Imm, .Operands) => . + execinstr (jo Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) rule - execinstr (jo Imm8:Imm, .Operands) => . + execinstr (jo Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jp_rel32.k b/semantics/systemInstructions/jp_rel32.k index 8733bf2df..ad9524a68 100644 --- a/semantics/systemInstructions/jp_rel32.k +++ b/semantics/systemInstructions/jp_rel32.k @@ -6,15 +6,17 @@ module JP-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jp Imm32:Imm, .Operands) => . + execinstr (jp Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) rule - execinstr (jp Imm32:Imm, .Operands) => . + execinstr (jp Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jp_rel8.k b/semantics/systemInstructions/jp_rel8.k index f96cfcf61..1bcddf0b4 100644 --- a/semantics/systemInstructions/jp_rel8.k +++ b/semantics/systemInstructions/jp_rel8.k @@ -6,15 +6,17 @@ module JP-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jp Imm8:Imm, .Operands) => . + execinstr (jp Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) rule - execinstr (jp Imm8:Imm, .Operands) => . + execinstr (jp Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jpe_rel32.k b/semantics/systemInstructions/jpe_rel32.k index 6508fdad4..31522376b 100644 --- a/semantics/systemInstructions/jpe_rel32.k +++ b/semantics/systemInstructions/jpe_rel32.k @@ -6,15 +6,17 @@ module JPE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jpe Imm32:Imm, .Operands) => . + execinstr (jpe Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) rule - execinstr (jpe Imm32:Imm, .Operands) => . + execinstr (jpe Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jpe_rel8.k b/semantics/systemInstructions/jpe_rel8.k index d812fa336..ef6bb2dbc 100644 --- a/semantics/systemInstructions/jpe_rel8.k +++ b/semantics/systemInstructions/jpe_rel8.k @@ -6,15 +6,17 @@ module JPE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jpe Imm8:Imm, .Operands) => . + execinstr (jpe Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) rule - execinstr (jpe Imm8:Imm, .Operands) => . + execinstr (jpe Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jpo_rel32.k b/semantics/systemInstructions/jpo_rel32.k index 1c2b4518f..ee70f0267 100644 --- a/semantics/systemInstructions/jpo_rel32.k +++ b/semantics/systemInstructions/jpo_rel32.k @@ -6,15 +6,17 @@ module JPO-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jpo Imm32:Imm, .Operands) => . + execinstr (jpo Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) rule - execinstr (jpo Imm32:Imm, .Operands) => . + execinstr (jpo Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jpo_rel8.k b/semantics/systemInstructions/jpo_rel8.k index 3cafc614b..45a4d5ca6 100644 --- a/semantics/systemInstructions/jpo_rel8.k +++ b/semantics/systemInstructions/jpo_rel8.k @@ -6,15 +6,17 @@ module JPO-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jpo Imm8:Imm, .Operands) => . + execinstr (jpo Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) rule - execinstr (jpo Imm8:Imm, .Operands) => . + execinstr (jpo Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jrcxz_rel8.k b/semantics/systemInstructions/jrcxz_rel8.k index a95d4d5e6..6c5be105f 100644 --- a/semantics/systemInstructions/jrcxz_rel8.k +++ b/semantics/systemInstructions/jrcxz_rel8.k @@ -6,15 +6,17 @@ module JRCXZ-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jrcxz Imm8:Imm, .Operands) => . + execinstr (jrcxz Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) rule - execinstr (jrcxz Imm8:Imm, .Operands) => . + execinstr (jrcxz Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) endmodule diff --git a/semantics/systemInstructions/js_rel32.k b/semantics/systemInstructions/js_rel32.k index 1de9d7f0a..50b6dcf19 100644 --- a/semantics/systemInstructions/js_rel32.k +++ b/semantics/systemInstructions/js_rel32.k @@ -6,15 +6,17 @@ module JS-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (js Imm32:Imm, .Operands) => . + execinstr (js Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) rule - execinstr (js Imm32:Imm, .Operands) => . + execinstr (js Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/js_rel8.k b/semantics/systemInstructions/js_rel8.k index 4f4c10f99..4d1431c76 100644 --- a/semantics/systemInstructions/js_rel8.k +++ b/semantics/systemInstructions/js_rel8.k @@ -6,15 +6,17 @@ module JS-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (js Imm8:Imm, .Operands) => . + execinstr (js Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) rule - execinstr (js Imm8:Imm, .Operands) => . + execinstr (js Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jz_rel32.k b/semantics/systemInstructions/jz_rel32.k index 2b9b564ca..788921fe5 100644 --- a/semantics/systemInstructions/jz_rel32.k +++ b/semantics/systemInstructions/jz_rel32.k @@ -6,15 +6,17 @@ module JZ-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jz Imm32:Imm, .Operands) => . + execinstr (jz Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) rule - execinstr (jz Imm32:Imm, .Operands) => . + execinstr (jz Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jz_rel8.k b/semantics/systemInstructions/jz_rel8.k index 2e216103a..a57a3d65a 100644 --- a/semantics/systemInstructions/jz_rel8.k +++ b/semantics/systemInstructions/jz_rel8.k @@ -6,15 +6,17 @@ module JZ-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jz Imm8:Imm, .Operands) => . + execinstr (jz Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) rule - execinstr (jz Imm8:Imm, .Operands) => . + execinstr (jz Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/leaveq.k b/semantics/systemInstructions/leaveq.k index 8f32b5676..e68fc30f2 100644 --- a/semantics/systemInstructions/leaveq.k +++ b/semantics/systemInstructions/leaveq.k @@ -5,7 +5,7 @@ module RETQ imports X86-CONFIGURATION rule - execinstr (leave .Operands) => + execinstr (leaveq .Operands) => execinstr(movq %rbp, %rsp, .Operands) ~> execinstr(popq %rbp, .Operands) ... diff --git a/semantics/systemInstructions/loop_rel8.k b/semantics/systemInstructions/loop_rel8.k index afacd9541..e490e63f1 100644 --- a/semantics/systemInstructions/loop_rel8.k +++ b/semantics/systemInstructions/loop_rel8.k @@ -6,27 +6,30 @@ module LOOP-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (loop Imm8:Imm, .Operands) => execinstr (loop Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) + execinstr (loop Imm8:MInt, .Operands) => execinstr (loop Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule - execinstr (loop Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loop Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, - ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64))) + ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64))) ("RCX" |-> Count) ) - requires notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) rule - execinstr (loop Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loop Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RCX" |-> Count) ) - requires eqMInt(Count, mi(bitwidthMInt(Count), 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt(Count, mi(bitwidthMInt(Count), 0)) endmodule diff --git a/semantics/systemInstructions/loope_rel8.k b/semantics/systemInstructions/loope_rel8.k index d904ef8a0..140a98d9d 100644 --- a/semantics/systemInstructions/loope_rel8.k +++ b/semantics/systemInstructions/loope_rel8.k @@ -6,29 +6,32 @@ module LOOPE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (loope Imm8:Imm, .Operands) => execinstr (loope Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) + execinstr (loope Imm8:MInt, .Operands) => execinstr (loope Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule - execinstr (loope Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loope Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, - ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64))) + ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64))) ("RCX" |-> Count) ) - requires notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) + andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) rule - execinstr (loope Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loope Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RCX" |-> Count) ) - requires eqMInt(Count, mi(bitwidthMInt(Count), 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt(Count, mi(bitwidthMInt(Count), 0)) + orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) endmodule diff --git a/semantics/systemInstructions/loopne_rel8.k b/semantics/systemInstructions/loopne_rel8.k index df3a61da7..a6cde7c73 100644 --- a/semantics/systemInstructions/loopne_rel8.k +++ b/semantics/systemInstructions/loopne_rel8.k @@ -6,29 +6,32 @@ module LOOPNE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (loopne Imm8:Imm, .Operands) => execinstr (loope Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) + execinstr (loopne Imm8:MInt, .Operands) => execinstr (loope Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule - execinstr (loopne Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loopne Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, - ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64))) + ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64))) ("RCX" |-> Count) ) - requires notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) + andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) rule - execinstr (loopne Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loopne Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RCX" |-> Count) ) - requires eqMInt(Count, mi(bitwidthMInt(Count), 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt(Count, mi(bitwidthMInt(Count), 0)) + orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) endmodule diff --git a/semantics/systemInstructions/loopnz_rel8.k b/semantics/systemInstructions/loopnz_rel8.k index c37403c96..bf1b354b7 100644 --- a/semantics/systemInstructions/loopnz_rel8.k +++ b/semantics/systemInstructions/loopnz_rel8.k @@ -6,29 +6,32 @@ module LOOPNE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (loopnz Imm8:Imm, .Operands) => execinstr (loopnz Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) + execinstr (loopnz Imm8:MInt, .Operands) => execinstr (loopnz Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule - execinstr (loopnz Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loopnz Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, - ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64))) + ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64))) ("RCX" |-> Count) ) - requires notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + ( notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) + andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) rule - execinstr (loopnz Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loopnz Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RCX" |-> Count) ) - requires eqMInt(Count, mi(bitwidthMInt(Count), 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + ( eqMInt(Count, mi(bitwidthMInt(Count), 0)) + orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) endmodule diff --git a/semantics/systemInstructions/loopz_rel8.k b/semantics/systemInstructions/loopz_rel8.k index 444e23955..cfa525dd6 100644 --- a/semantics/systemInstructions/loopz_rel8.k +++ b/semantics/systemInstructions/loopz_rel8.k @@ -6,29 +6,32 @@ module LOOPE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (loopz Imm8:Imm, .Operands) => execinstr (loopz Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) + execinstr (loopz Imm8:MInt, .Operands) => execinstr (loopz Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule - execinstr (loopz Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loopz Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, - ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64))) + ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64))) ("RCX" |-> Count) ) - requires notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + ( notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) + andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) rule - execinstr (loopz Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loopz Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RCX" |-> Count) ) - requires eqMInt(Count, mi(bitwidthMInt(Count), 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + ( eqMInt(Count, mi(bitwidthMInt(Count), 0)) + orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) endmodule diff --git a/semantics/test.c b/semantics/test.c index 6fe0ec8c0..08cf56f3c 100644 --- a/semantics/test.c +++ b/semantics/test.c @@ -1,13 +1,13 @@ #include #include -size_t fib(const int n) { +int fib(const int n) { if (n == 0) { return 0; } else if (n == 1) { return 1; } else { - size_t nums[n + 1]; + int nums[n + 1]; nums[0] = 0; nums[1] = 1; for (int i = 2; i <= n; ++i) { @@ -21,6 +21,6 @@ const int elems[] = {0, 1, 5, 10, 20, 40}; int main() { for (int i = 0; i < sizeof(elems) / sizeof(int); ++i) { - printf("%d: %lu\n", elems[i], fib(elems[i])); + printf("%d: %d\n", elems[i], fib(elems[i])); } } diff --git a/semantics/x86-abstract-semantics.k b/semantics/x86-abstract-semantics.k index 1c971d96f..79a6ce5d7 100644 --- a/semantics/x86-abstract-semantics.k +++ b/semantics/x86-abstract-semantics.k @@ -29,7 +29,8 @@ module X86-ABSTRACT-SEMANTICS instrcution. */ - // (%r64) + rule Address(A) => mi(64, A) ... + rule (R1:R64):Mem => 0 (R1:R64) ... rule I:Int (R1:R64):Mem => memOffset( addMInt(mi(64, I), getRegisterValue(R1, RSMap))) ... RSMap @@ -283,16 +284,21 @@ module X86-ABSTRACT-SEMANTICS setRegisterValue(MI, convSubRegsToRegs(R)) ... + + syntax MInt ::= KItemToMInt(KItem) [function] + rule KItemToMInt(MI:MInt) => MI + + /*@ Getting the registers values according to the register variants. */ - rule getRegisterValue(R:R8, RSMap) => extractMask({RSMap[convToRegKeys(R)]}:>MInt, 8, 0) - rule getRegisterValue(R:R16, RSMap) => extractMask({RSMap[convToRegKeys(R)]}:>MInt, 16, 0) - rule getRegisterValue(R:R32, RSMap) => extractMask({RSMap[convToRegKeys(R)]}:>MInt, 32, 0) - rule getRegisterValue(R:R64, RSMap) => {RSMap[convToRegKeys(R)]}:>MInt - rule getRegisterValue(R:Rh, RSMap) => extractMask({RSMap[convToRegKeys(R)]}:>MInt, 8, 8) - rule getRegisterValue(X:Xmm, RSMap) => extractMask({RSMap[convToRegKeys(X)]}:>MInt, 128, 0) - rule getRegisterValue(Y:Ymm, RSMap) => {RSMap[convToRegKeys(Y)]}:>MInt + rule getRegisterValue(R:R8, RSMap) => extractMask(KItemToMInt(RSMap[convToRegKeys(R)]), 8, 0) + rule getRegisterValue(R:R16, RSMap) => extractMask(KItemToMInt(RSMap[convToRegKeys(R)]), 16, 0) + rule getRegisterValue(R:R32, RSMap) => extractMask(KItemToMInt(RSMap[convToRegKeys(R)]), 32, 0) + rule getRegisterValue(R:R64, RSMap) => KItemToMInt(RSMap[convToRegKeys(R)]) + rule getRegisterValue(R:Rh, RSMap) => extractMask(KItemToMInt(RSMap[convToRegKeys(R)]), 8, 8) + rule getRegisterValue(X:Xmm, RSMap) => extractMask(KItemToMInt(RSMap[convToRegKeys(X)]), 128, 0) + rule getRegisterValue(Y:Ymm, RSMap) => KItemToMInt(RSMap[convToRegKeys(Y)]) /* rule getRegisterValue(M:Mm, RSMap) => {RSMap[convToRegKeys(M)]}:>MInt */ @@ -348,13 +354,13 @@ module X86-ABSTRACT-SEMANTICS rule decRSPInBytes(I:Int) => . ... RSMap:Map => updateMap( RSMap, - "RSP" |-> subMInt({RSMap["RSP"]}:>MInt, mi(64, I))) + "RSP" |-> subMInt(KItemToMInt(RSMap["RSP"]), mi(64, I))) rule incRSPInBytes(I:Int) => . ... RSMap:Map => updateMap( RSMap, - "RSP" |-> addMInt({RSMap["RSP"]}:>MInt, mi(64, I))) + "RSP" |-> addMInt(KItemToMInt(RSMap["RSP"]), mi(64, I))) /*@ @@ -519,12 +525,15 @@ module X86-ABSTRACT-SEMANTICS #ifMInt absInt(svalueMInt(Length)) >Int 16 #then mi(8, 16) #else mi(8, absInt(svalueMInt(Length))) #fi requires eqMInt(extractMInt(Imm8, 7, 8), mi(1, 0)) // Interpret as 16 bytes + syntax Int ::= KItemToInt(KItem) [function] + rule KItemToInt(I:Int) => I + /*@ findLimitIndexI */ rule findLimitIndexI(Value:MInt, Imm8:MInt) => findLimitIndexIHelper(Value, - {#ifInt eqMInt(extractMInt(Imm8, 7, 8), mi(1, 1)) #then 16 #else 8 #fi}:>Int, - {#ifInt eqMInt(extractMInt(Imm8, 7, 8), mi(1, 1)) #then 8 #else 16 #fi}:>Int, + KItemToInt(#ifInt eqMInt(extractMInt(Imm8, 7, 8), mi(1, 1)) #then 16 #else 8 #fi), + KItemToInt(#ifInt eqMInt(extractMInt(Imm8, 7, 8), mi(1, 1)) #then 8 #else 16 #fi}), 0) rule findLimitIndexIHelper(Value:MInt, BitLength:Int, NumElems:Int, Count:Int) => mi(8, Count) @@ -583,8 +592,8 @@ module X86-ABSTRACT-SEMANTICS rule compareEqual(Count2:Int, Count1:Int, Value2:MInt, Value1:MInt, Limit2:MInt, Limit1:MInt, NumElems:Int, SOrU:MInt) => compareEqualSignedOrUnsigned( - extractMask(Value2, {#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count2 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi}:>Int), - extractMask(Value1, {#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count1 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi}:>Int), + extractMask(Value2, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count2 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi)), + extractMask(Value1, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count1 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi)), SOrU ) requires Count1 compareEqualSignedOrUnsigned( - extractMask(Value2, {#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Index *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi}:>Int), - extractMask(Value1, {#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Index *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi}:>Int), + extractMask(Value2, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Index *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi)), + extractMask(Value1, KItemToINt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Index *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi)), SOrU ) requires // If both of the data are valid @@ -689,13 +698,13 @@ module X86-ABSTRACT-SEMANTICS rule compareRange(Count2:Int, Count1:Int, Value2:MInt, Value1:MInt, Limit2:MInt, Limit1:MInt, NumElems:Int, SOrU:MInt) => andMInt( compareGESignedOrUnsigned( - extractMask(Value2, {#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count2 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi}:>Int), - extractMask(Value1, {#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count1 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi}:>Int), + extractMask(Value2, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count2 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi)), + extractMask(Value1, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count1 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi)), SOrU ), compareLESignedOrUnsigned( - extractMask(Value2, {#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count2 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi}:>Int), - extractMask(Value1, {#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count1 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi}:>Int), + extractMask(Value2, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count2 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi)), + extractMask(Value1, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count1 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi)), SOrU )) @@ -749,8 +758,8 @@ module X86-ABSTRACT-SEMANTICS rule compareEqualOrdered(Count2:Int, Count1:Int, Value2:MInt, Value1:MInt, Limit2:MInt, Limit1:MInt, NumElems:Int, SOrU:MInt) => compareEqualSignedOrUnsigned( - extractMask(Value2, {#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count2 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi}:>Int), - extractMask(Value1, {#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count1 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi}:>Int), + extractMask(Value2, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count2 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi})), + extractMask(Value1, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count1 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi})), SOrU ) @@ -816,9 +825,9 @@ module X86-ABSTRACT-SEMANTICS rule expandMaskHelper(IntRes2:MInt, NumElems:Int, Count:Int) => #ifMInt eqMInt(extractMask(IntRes2, 1, Count), mi(1, 0)) #then - {#ifMInt NumElems ==Int 8 #then mi(16, 0) #else mi(8, 0) #fi}:>MInt + KItemToMInt(#ifMInt NumElems ==Int 8 #then mi(16, 0) #else mi(8, 0) #fi) #else - {#ifMInt NumElems ==Int 8 #then mi(16, -1) #else mi(8, -1) #fi}:>MInt + KItemToMInt(#ifMInt NumElems ==Int 8 #then mi(16, -1) #else mi(8, -1) #fi) #fi requires Count ==Int (NumElems -Int 1) @@ -828,9 +837,9 @@ module X86-ABSTRACT-SEMANTICS expandMaskHelper(IntRes2, NumElems, Count +Int 1), #ifMInt eqMInt(extractMask(IntRes2, 1, Count), mi(1, 0)) #then - {#ifMInt NumElems ==Int 8 #then mi(16, 0) #else mi(8, 0) #fi}:>MInt + KItemToMInt(#ifMInt NumElems ==Int 8 #then mi(16, 0) #else mi(8, 0) #fi) #else - {#ifMInt NumElems ==Int 8 #then mi(16, -1) #else mi(8, -1) #fi}:>MInt + KItemToMInt(#ifMInt NumElems ==Int 8 #then mi(16, -1) #else mi(8, -1) #fi) #fi ) requires Count =/=Int (NumElems -Int 1) diff --git a/semantics/x86-syntax.k b/semantics/x86-syntax.k index f8ed51a99..3d7d6ec93 100644 --- a/semantics/x86-syntax.k +++ b/semantics/x86-syntax.k @@ -133,6 +133,7 @@ module X86-SYNTAX | "(" R64 "," R64 ")" | Offset "(" R64 "," R64 "," Scale ")" | Offset "(" R64 "," R64 ")" + | Address(Int) //------------------------------------ //| Offset /* This solution would cause about a million problems with Mem matching incorrectly. I'll find a better way later (maybe wrap all Mems with some label). From 4eaeb6a9b7a331af3637722ffedd60a93f27cf55 Mon Sep 17 00:00:00 2001 From: andrew_miranti Date: Tue, 12 Mar 2019 11:31:40 -0500 Subject: [PATCH 13/15] Update to how relative jumps work, now consistent with disassembly format --- semantics/a.out | Bin 912816 -> 984800 bytes semantics/memoryInstructions/bsfl_r32_m32.k | 2 +- .../memoryInstructions/rep_movsq_m64_m64.k | 23 ++++++++++++ semantics/registerInstructions/bsfl_r32_r32.k | 2 +- semantics/registerInstructions/nop.k | 8 ++++ semantics/registerInstructions/sall_r32_cl.k | 2 +- semantics/registerInstructions/shrl_r32_cl.k | 2 +- semantics/systemInstructions/callq_m64.k | 6 +-- semantics/systemInstructions/callq_r64.k | 2 +- semantics/systemInstructions/callq_rel32.k | 12 +++--- semantics/systemInstructions/ja_rel32.k | 13 +++---- semantics/systemInstructions/ja_rel8.k | 25 ------------- semantics/systemInstructions/jae_rel32.k | 17 +++------ semantics/systemInstructions/jae_rel8.k | 22 ----------- semantics/systemInstructions/jb_rel32.k | 17 +++------ semantics/systemInstructions/jb_rel8.k | 22 ----------- semantics/systemInstructions/jbe_rel32.k | 19 +++------- semantics/systemInstructions/jbe_rel8.k | 24 ------------ semantics/systemInstructions/jc_rel32.k | 17 +++------ semantics/systemInstructions/jc_rel8.k | 22 ----------- semantics/systemInstructions/je_rel32.k | 20 +++------- semantics/systemInstructions/je_rel8.k | 22 ----------- semantics/systemInstructions/jecxz_rel8.k | 19 +++------- semantics/systemInstructions/jg_rel32.k | 23 +++--------- semantics/systemInstructions/jg_rel8.k | 24 ------------ semantics/systemInstructions/jge_rel32.k | 19 +++------- semantics/systemInstructions/jge_rel8.k | 20 ---------- semantics/systemInstructions/jl_rel32.k | 19 +++------- semantics/systemInstructions/jl_rel8.k | 20 ---------- semantics/systemInstructions/jle_rel32.k | 23 +++--------- semantics/systemInstructions/jle_rel8.k | 24 ------------ semantics/systemInstructions/jmp_rel32.k | 9 +---- semantics/systemInstructions/jmp_rel8.k | 14 ------- semantics/systemInstructions/jna_rel32.k | 19 +++------- semantics/systemInstructions/jna_rel8.k | 24 ------------ semantics/systemInstructions/jnae_rel32.k | 19 +++------- semantics/systemInstructions/jnae_rel8.k | 22 ----------- semantics/systemInstructions/jnb_rel32.k | 19 +++------- semantics/systemInstructions/jnb_rel8.k | 22 ----------- semantics/systemInstructions/jnbe_rel32.k | 22 +++-------- semantics/systemInstructions/jnbe_rel8.k | 25 ------------- semantics/systemInstructions/jnc_rel32.k | 19 +++------- semantics/systemInstructions/jnc_rel8.k | 22 ----------- semantics/systemInstructions/jne_rel32.k | 19 +++------- semantics/systemInstructions/jne_rel8.k | 22 ----------- semantics/systemInstructions/jng_rel32.k | 19 +++------- semantics/systemInstructions/jng_rel8.k | 22 ----------- semantics/systemInstructions/jnge_rel32.k | 19 +++------- semantics/systemInstructions/jnge_rel8.k | 22 ----------- semantics/systemInstructions/jnl_rel32.k | 19 +++------- semantics/systemInstructions/jnl_rel8.k | 22 ----------- semantics/systemInstructions/jnle_rel32.k | 19 +++------- semantics/systemInstructions/jnle_rel8.k | 22 ----------- semantics/systemInstructions/jno_rel32.k | 19 +++------- semantics/systemInstructions/jno_rel8.k | 22 ----------- semantics/systemInstructions/jnp_rel32.k | 19 +++------- semantics/systemInstructions/jnp_rel8.k | 22 ----------- semantics/systemInstructions/jns_rel32.k | 19 +++------- semantics/systemInstructions/jns_rel8.k | 22 ----------- semantics/systemInstructions/jnz_rel32.k | 19 +++------- semantics/systemInstructions/jnz_rel8.k | 22 ----------- semantics/systemInstructions/jo_rel32.k | 19 +++------- semantics/systemInstructions/jo_rel8.k | 22 ----------- semantics/systemInstructions/jp_rel32.k | 19 +++------- semantics/systemInstructions/jp_rel8.k | 22 ----------- semantics/systemInstructions/jpe_rel32.k | 19 +++------- semantics/systemInstructions/jpe_rel8.k | 22 ----------- semantics/systemInstructions/jpo_rel32.k | 19 +++------- semantics/systemInstructions/jpo_rel8.k | 22 ----------- semantics/systemInstructions/jrcxz_rel8.k | 19 +++------- semantics/systemInstructions/js_rel32.k | 19 +++------- semantics/systemInstructions/js_rel8.k | 22 ----------- semantics/systemInstructions/jz_rel32.k | 19 +++------- semantics/systemInstructions/loop_rel8.k | 31 ++++------------ semantics/systemInstructions/loope_rel8.k | 33 ++++------------- semantics/systemInstructions/loopne_rel8.k | 33 ++++------------- semantics/systemInstructions/loopnz_rel8.k | 35 ++++-------------- semantics/systemInstructions/loopz_rel8.k | 33 ++++------------- semantics/test.c | 34 ++++++----------- semantics/x86-abstract-semantics.k | 31 +++++++++------- semantics/x86-configuration.k | 1 + semantics/x86-fetch-execute.k | 9 ++++- semantics/x86-syntax.k | 4 +- 83 files changed, 307 insertions(+), 1275 deletions(-) create mode 100644 semantics/memoryInstructions/rep_movsq_m64_m64.k delete mode 100644 semantics/systemInstructions/ja_rel8.k delete mode 100644 semantics/systemInstructions/jae_rel8.k delete mode 100644 semantics/systemInstructions/jb_rel8.k delete mode 100644 semantics/systemInstructions/jbe_rel8.k delete mode 100644 semantics/systemInstructions/jc_rel8.k delete mode 100644 semantics/systemInstructions/je_rel8.k delete mode 100644 semantics/systemInstructions/jg_rel8.k delete mode 100644 semantics/systemInstructions/jge_rel8.k delete mode 100644 semantics/systemInstructions/jl_rel8.k delete mode 100644 semantics/systemInstructions/jle_rel8.k delete mode 100644 semantics/systemInstructions/jmp_rel8.k delete mode 100644 semantics/systemInstructions/jna_rel8.k delete mode 100644 semantics/systemInstructions/jnae_rel8.k delete mode 100644 semantics/systemInstructions/jnb_rel8.k delete mode 100644 semantics/systemInstructions/jnbe_rel8.k delete mode 100644 semantics/systemInstructions/jnc_rel8.k delete mode 100644 semantics/systemInstructions/jne_rel8.k delete mode 100644 semantics/systemInstructions/jng_rel8.k delete mode 100644 semantics/systemInstructions/jnge_rel8.k delete mode 100644 semantics/systemInstructions/jnl_rel8.k delete mode 100644 semantics/systemInstructions/jnle_rel8.k delete mode 100644 semantics/systemInstructions/jno_rel8.k delete mode 100644 semantics/systemInstructions/jnp_rel8.k delete mode 100644 semantics/systemInstructions/jns_rel8.k delete mode 100644 semantics/systemInstructions/jnz_rel8.k delete mode 100644 semantics/systemInstructions/jo_rel8.k delete mode 100644 semantics/systemInstructions/jp_rel8.k delete mode 100644 semantics/systemInstructions/jpe_rel8.k delete mode 100644 semantics/systemInstructions/jpo_rel8.k delete mode 100644 semantics/systemInstructions/js_rel8.k diff --git a/semantics/a.out b/semantics/a.out index e6531ce61e20dde0d4a5563c02db386c1c7de269..d617bc57b57c7fdce8c0ab2e60962e5394c9d41b 100755 GIT binary patch delta 244659 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

    gQ9d)_}XY$#H1p%P^mZXuaoKs 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%0Di#2esaFALEIsWu< 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­*h{K6jSXPjs`4UWY}X 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 z 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 qdm=i9p$7YP;|#~BYZX8Z+fY6lGf delta 174447 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 updateMap(RSMap, ... RSMap:Map => updateMap(RSMap, - convToRegKeys(R2) |-> mi(32, scanForward(Mem32, 31, 32)) + convToRegKeys(R2) |-> mi(64, scanForward(Mem32, 31, 32)) "ZF" |-> mi(1,0) "SF" |-> (undefMInt) "CF" |-> (undefMInt) diff --git a/semantics/memoryInstructions/rep_movsq_m64_m64.k b/semantics/memoryInstructions/rep_movsq_m64_m64.k new file mode 100644 index 000000000..23c5c3801 --- /dev/null +++ b/semantics/memoryInstructions/rep_movsq_m64_m64.k @@ -0,0 +1,23 @@ +requires "x86-configuration.k" + +module MOVSQ + imports X86-CONFIGURATION + + rule execinstr (rep movsq M1:Mem, M2:Mem, .Operands) => . ... + RSMap + requires eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) + + rule + execinstr (rep movsq M1:Mem, M2:Mem, .Operands) => + loadFromMemory( getRegisterValue(%rsi, RSMap), 64) ~> + execinstr (movsq .Operands) ~> + setRegisterValue(subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), %rcx) ~> + execinstr(rep movsq M1, M2, .Operands) + ... + RSMap:Map + requires notBool eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) + + + + + endmodule diff --git a/semantics/registerInstructions/bsfl_r32_r32.k b/semantics/registerInstructions/bsfl_r32_r32.k index 0579f6118..5e577775e 100644 --- a/semantics/registerInstructions/bsfl_r32_r32.k +++ b/semantics/registerInstructions/bsfl_r32_r32.k @@ -26,7 +26,7 @@ RSMap:Map => updateMap(RSMap, ... RSMap:Map => updateMap(RSMap, - convToRegKeys(R2) |-> mi(32, scanForward(getRegisterValue(R1, RSMap), 31, 32)) + convToRegKeys(R2) |-> mi(64, scanForward(getRegisterValue(R1, RSMap), 31, 32)) "ZF" |-> mi(1,0) "SF" |-> (undefMInt) "CF" |-> (undefMInt) diff --git a/semantics/registerInstructions/nop.k b/semantics/registerInstructions/nop.k index cbd764db0..650f2dfd2 100644 --- a/semantics/registerInstructions/nop.k +++ b/semantics/registerInstructions/nop.k @@ -7,6 +7,14 @@ module NOP rule execinstr (nop .Operands) => . ... + + //TODO: Temporary + rule + execinstr (nopw Operands) => . + ... + rule + execinstr (nopl Operands) => . + ... endmodule module NOP-SEMANTICS diff --git a/semantics/registerInstructions/sall_r32_cl.k b/semantics/registerInstructions/sall_r32_cl.k index 8faacfc37..c8fc5085f 100644 --- a/semantics/registerInstructions/sall_r32_cl.k +++ b/semantics/registerInstructions/sall_r32_cl.k @@ -15,7 +15,7 @@ convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( shiftLeftMInt( co "PF" |-> (#ifMInt (((notBool eqMInt( andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31)), mi(8, 0))))) #then undefMInt #else getFlag("AF", RSMap) #fi) "ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) diff --git a/semantics/registerInstructions/shrl_r32_cl.k b/semantics/registerInstructions/shrl_r32_cl.k index ea8b1d652..6bfb4c755 100644 --- a/semantics/registerInstructions/shrl_r32_cl.k +++ b/semantics/registerInstructions/shrl_r32_cl.k @@ -15,7 +15,7 @@ convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( concate "PF" |-> (#ifMInt (((notBool eqMInt( andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (notBool eqMInt( andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31)), mi(8, 0))) #then undefMInt #else getFlag("AF", RSMap) #fi) "ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( extractMInt( getParentValue(%rcx, RSMap), 56, 64), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) diff --git a/semantics/systemInstructions/callq_m64.k b/semantics/systemInstructions/callq_m64.k index 6ba6d46b3..d26d755cf 100644 --- a/semantics/systemInstructions/callq_m64.k +++ b/semantics/systemInstructions/callq_m64.k @@ -4,15 +4,15 @@ requires "x86-configuration.k" module CALLQ-M64 imports X86-CONFIGURATION - context execinstr(call:Opcode (HOLE:Mem, .Operands):Operands) [result(MemOffset)] + context execinstr(callq:Opcode (HOLE:Mem, .Operands):Operands) [result(MemOffset)] rule - execinstr (call memOffset(MemOff:MInt):MemOffset, .Operands) => + execinstr (callq memOffset(MemOff:MInt):MemOffset, .Operands) => loadFromMemory(MemOff, 64) ~> execinstr (call memOffset ( MemOff ), .Operands) ... rule - memLoadValue(MemVal:MInt):MemLoadValue ~> execinstr (call memOffset(MemOff:MInt):MemOffset, .Operands) => + memLoadValue(MemVal:MInt):MemLoadValue ~> execinstr (callq memOffset(MemOff:MInt):MemOffset, .Operands) => storeToMemory({RSMap["RIP"]}:>MInt, subMInt(getRegisterValue(%rsp, RSMap), mi(64, 8)), 64) ~> decRSPInBytes(8) ... diff --git a/semantics/systemInstructions/callq_r64.k b/semantics/systemInstructions/callq_r64.k index 25096ded9..2a92c7c1d 100644 --- a/semantics/systemInstructions/callq_r64.k +++ b/semantics/systemInstructions/callq_r64.k @@ -6,7 +6,7 @@ module CALLQ-R64 imports X86-CONFIGURATION rule - execinstr (call R1:R64, .Operands) => + execinstr (callq R1:R64, .Operands) => storeToMemory({RSMap["RIP"]}:>MInt, subMInt(getRegisterValue(%rsp, RSMap), mi(64, 8)), 64) ~> decRSPInBytes(8) ... diff --git a/semantics/systemInstructions/callq_rel32.k b/semantics/systemInstructions/callq_rel32.k index abd054b19..44b406e69 100644 --- a/semantics/systemInstructions/callq_rel32.k +++ b/semantics/systemInstructions/callq_rel32.k @@ -13,18 +13,16 @@ module CALLQ-REL32 rule - execinstr (callq Imm32:MInt, .Operands) => + execinstr (callq Imm64:MInt, .Operands) => storeToMemory({RSMap["RIP"]}:>MInt, subMInt(getRegisterValue(%rsp, RSMap), mi(64, 8)), 64) ~> decRSPInBytes(8) ... - RSMap => updateMap(RSMap, ("RIP" |->addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)) )) + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) SymMap - requires notBool HasBuiltinAtAddress(SymMap, addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64))) - andBool bitwidthMInt(Imm32) ==Int 32 + requires notBool HasBuiltinAtAddress(SymMap, Imm64) - rule execinstr (callq Imm32:MInt, .Operands) => execinstr(call GetBuiltinFromAddress(SymMap, addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) ... + rule execinstr (callq Imm64:MInt, .Operands) => execinstr(call GetBuiltinFromAddress(SymMap, Imm64)) ... RSMap SymMap - requires HasBuiltinAtAddress(SymMap, addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64))) - andBool bitwidthMInt(Imm32) ==Int 32 + requires HasBuiltinAtAddress(SymMap, Imm64) endmodule diff --git a/semantics/systemInstructions/ja_rel32.k b/semantics/systemInstructions/ja_rel32.k index 987f2fc69..7d827abcf 100644 --- a/semantics/systemInstructions/ja_rel32.k +++ b/semantics/systemInstructions/ja_rel32.k @@ -4,14 +4,11 @@ module JA-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule execinstr (ja Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) + rule execinstr (ja Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) - requires bitwidthMInt(Imm32) ==Int 32 andBool - (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) - - rule execinstr (ja Imm32:MInt, .Operands) => . ... + rule execinstr (ja _:MInt, .Operands) => . ... RSMap - requires bitwidthMInt(Imm32) ==Int 32 andBool - (eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) + requires (eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) endmodule diff --git a/semantics/systemInstructions/ja_rel8.k b/semantics/systemInstructions/ja_rel8.k deleted file mode 100644 index 96bc20187..000000000 --- a/semantics/systemInstructions/ja_rel8.k +++ /dev/null @@ -1,25 +0,0 @@ -requires "x86-configuration.k" - - -module JA-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (ja Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> - addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) - - rule - execinstr (ja Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - (eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) -endmodule diff --git a/semantics/systemInstructions/jae_rel32.k b/semantics/systemInstructions/jae_rel32.k index 697ee5c2b..89c6fe05c 100644 --- a/semantics/systemInstructions/jae_rel32.k +++ b/semantics/systemInstructions/jae_rel32.k @@ -5,18 +5,11 @@ module JAE-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jae Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + rule execinstr (jae Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - rule - execinstr (jae Imm32:MInt, .Operands) => . - ... + rule execinstr (jae Imm32:MInt, .Operands) => . ... RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jae_rel8.k b/semantics/systemInstructions/jae_rel8.k deleted file mode 100644 index 059459b19..000000000 --- a/semantics/systemInstructions/jae_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JAE-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jae Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jae Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/jb_rel32.k b/semantics/systemInstructions/jb_rel32.k index d951f3789..7157f91fb 100644 --- a/semantics/systemInstructions/jb_rel32.k +++ b/semantics/systemInstructions/jb_rel32.k @@ -5,18 +5,11 @@ module JB-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jb Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + rule execinstr (jb Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - rule - execinstr (jb Imm32:MInt, .Operands) => . - ... + rule execinstr (jb _:MInt, .Operands) => . ... RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jb_rel8.k b/semantics/systemInstructions/jb_rel8.k deleted file mode 100644 index dfb9fd6fe..000000000 --- a/semantics/systemInstructions/jb_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JB-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jb Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - - rule - execinstr (jb Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jbe_rel32.k b/semantics/systemInstructions/jbe_rel32.k index 3f64d6359..36583767b 100644 --- a/semantics/systemInstructions/jbe_rel32.k +++ b/semantics/systemInstructions/jbe_rel32.k @@ -5,20 +5,11 @@ module JBE-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jbe Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - (eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) + rule execinstr (jbe Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires (eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) - rule - execinstr (jbe Imm32:MInt, .Operands) => . - ... + rule execinstr (jbe Imm32:MInt, .Operands) => . ... RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) + requires (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) endmodule diff --git a/semantics/systemInstructions/jbe_rel8.k b/semantics/systemInstructions/jbe_rel8.k deleted file mode 100644 index b0c3bb039..000000000 --- a/semantics/systemInstructions/jbe_rel8.k +++ /dev/null @@ -1,24 +0,0 @@ -requires "x86-configuration.k" - - -module JBE-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jbe Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - (eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) - - rule - execinstr (jbe Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) -endmodule diff --git a/semantics/systemInstructions/jc_rel32.k b/semantics/systemInstructions/jc_rel32.k index d75d1231b..f4f165f51 100644 --- a/semantics/systemInstructions/jc_rel32.k +++ b/semantics/systemInstructions/jc_rel32.k @@ -5,18 +5,11 @@ module JC-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jc Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + rule execinstr (jc Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - rule - execinstr (jc Imm32:MInt, .Operands) => . - ... + rule execinstr (jc _:MInt, .Operands) => . ... RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jc_rel8.k b/semantics/systemInstructions/jc_rel8.k deleted file mode 100644 index 07e2e66a1..000000000 --- a/semantics/systemInstructions/jc_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JC-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jc Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - - rule - execinstr (jc Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/je_rel32.k b/semantics/systemInstructions/je_rel32.k index 3071bf335..17a5d4795 100644 --- a/semantics/systemInstructions/je_rel32.k +++ b/semantics/systemInstructions/je_rel32.k @@ -1,22 +1,14 @@ requires "x86-configuration.k" - module JE-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (je Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + rule execinstr (je Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) - rule - execinstr (je Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + rule execinstr (je _:MInt, .Operands) => . ... + RSMap + requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/je_rel8.k b/semantics/systemInstructions/je_rel8.k deleted file mode 100644 index 204e8355c..000000000 --- a/semantics/systemInstructions/je_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JE-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (je Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) - - rule - execinstr (je Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/jecxz_rel8.k b/semantics/systemInstructions/jecxz_rel8.k index 60e07b1de..9fc175d08 100644 --- a/semantics/systemInstructions/jecxz_rel8.k +++ b/semantics/systemInstructions/jecxz_rel8.k @@ -5,18 +5,11 @@ module JECXZ-REL8 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jecxz Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt(getRegisterValue(%ecx, RSMap), mi(32, 0)) + rule execinstr (jecxz Imm8:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt(getRegisterValue(%ecx, RSMap), mi(32, 0)) - rule - execinstr (jecxz Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - notBool eqMInt(getRegisterValue(%ecx, RSMap), mi(32, 0)) + rule execinstr (jecxz _:MInt, .Operands) => . ... + RSMap + requires notBool eqMInt(getRegisterValue(%ecx, RSMap), mi(32, 0)) endmodule diff --git a/semantics/systemInstructions/jg_rel32.k b/semantics/systemInstructions/jg_rel32.k index 295492de4..bd80b1778 100644 --- a/semantics/systemInstructions/jg_rel32.k +++ b/semantics/systemInstructions/jg_rel32.k @@ -3,22 +3,11 @@ module JG-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jg Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) + rule execinstr (jg Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) - rule - execinstr (jg Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - orBool - notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) + rule execinstr (jg _:MInt, .Operands) => . ... + RSMap + requires (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jg_rel8.k b/semantics/systemInstructions/jg_rel8.k deleted file mode 100644 index 49e48a412..000000000 --- a/semantics/systemInstructions/jg_rel8.k +++ /dev/null @@ -1,24 +0,0 @@ -requires "x86-configuration.k" -module JG-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jg Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) - - rule - execinstr (jg Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - orBool - notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) -endmodule diff --git a/semantics/systemInstructions/jge_rel32.k b/semantics/systemInstructions/jge_rel32.k index a5e4ba1bb..1c34105ae 100644 --- a/semantics/systemInstructions/jge_rel32.k +++ b/semantics/systemInstructions/jge_rel32.k @@ -3,18 +3,11 @@ module JGE-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jge Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + rule execinstr (jge Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) - rule - execinstr (jge Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + rule execinstr (jge _:MInt, .Operands) => . ... + RSMap + requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jge_rel8.k b/semantics/systemInstructions/jge_rel8.k deleted file mode 100644 index 751e1bfd5..000000000 --- a/semantics/systemInstructions/jge_rel8.k +++ /dev/null @@ -1,20 +0,0 @@ -requires "x86-configuration.k" -module JGE-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jge Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) - - rule - execinstr (jge Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) -endmodule diff --git a/semantics/systemInstructions/jl_rel32.k b/semantics/systemInstructions/jl_rel32.k index 407ce8bc6..5c5ee6691 100644 --- a/semantics/systemInstructions/jl_rel32.k +++ b/semantics/systemInstructions/jl_rel32.k @@ -3,18 +3,11 @@ module JL-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jl Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + rule execinstr (jl Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) - rule - execinstr (jl Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + rule execinstr (jl _:MInt, .Operands) => . ... + RSMap + requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jl_rel8.k b/semantics/systemInstructions/jl_rel8.k deleted file mode 100644 index 0a1ab84b9..000000000 --- a/semantics/systemInstructions/jl_rel8.k +++ /dev/null @@ -1,20 +0,0 @@ -requires "x86-configuration.k" -module JL-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jl Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) - - rule - execinstr (jl Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) -endmodule diff --git a/semantics/systemInstructions/jle_rel32.k b/semantics/systemInstructions/jle_rel32.k index c2f827b94..7f1d406c1 100644 --- a/semantics/systemInstructions/jle_rel32.k +++ b/semantics/systemInstructions/jle_rel32.k @@ -3,22 +3,11 @@ module JLE-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jle Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) - orBool - (notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt))) + rule execinstr (jle Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool (notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt))) - rule - execinstr (jle Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) - andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) + rule execinstr (jle _:MInt, .Operands) => . ... + RSMap + requires (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jle_rel8.k b/semantics/systemInstructions/jle_rel8.k deleted file mode 100644 index f818684b9..000000000 --- a/semantics/systemInstructions/jle_rel8.k +++ /dev/null @@ -1,24 +0,0 @@ -requires "x86-configuration.k" -module JLE-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jle Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) - orBool - (notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt))) - - rule - execinstr (jle Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) - andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) -endmodule diff --git a/semantics/systemInstructions/jmp_rel32.k b/semantics/systemInstructions/jmp_rel32.k index 20f25aa3c..fa4fa185b 100644 --- a/semantics/systemInstructions/jmp_rel32.k +++ b/semantics/systemInstructions/jmp_rel32.k @@ -4,11 +4,6 @@ requires "x86-configuration.k" module JMPQ-REL32 imports X86-CONFIGURATION - rule - execinstr (jmp Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 - + rule execinstr (jmp Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) endmodule diff --git a/semantics/systemInstructions/jmp_rel8.k b/semantics/systemInstructions/jmp_rel8.k deleted file mode 100644 index 3c940e93e..000000000 --- a/semantics/systemInstructions/jmp_rel8.k +++ /dev/null @@ -1,14 +0,0 @@ -requires "x86-configuration.k" - - -module JMPQ-REL8 - imports X86-CONFIGURATION - - rule - execinstr (jmp Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 - -endmodule diff --git a/semantics/systemInstructions/jna_rel32.k b/semantics/systemInstructions/jna_rel32.k index a2740b9e3..5c362222e 100644 --- a/semantics/systemInstructions/jna_rel32.k +++ b/semantics/systemInstructions/jna_rel32.k @@ -5,20 +5,11 @@ module JNA-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jna Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> - addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, - 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1))) + rule execinstr (jna Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1))) - rule - execinstr (jna Imm32:MInt, .Operands) => . - ... + rule execinstr (jna _:MInt, .Operands) => . ... RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1))) + requires (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1))) endmodule diff --git a/semantics/systemInstructions/jna_rel8.k b/semantics/systemInstructions/jna_rel8.k deleted file mode 100644 index ae854f827..000000000 --- a/semantics/systemInstructions/jna_rel8.k +++ /dev/null @@ -1,24 +0,0 @@ -requires "x86-configuration.k" - - -module JNA-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jna Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> - addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, - 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1))) - - rule - execinstr (jna Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1))) -endmodule diff --git a/semantics/systemInstructions/jnae_rel32.k b/semantics/systemInstructions/jnae_rel32.k index ac18612a0..eaf7decd5 100644 --- a/semantics/systemInstructions/jnae_rel32.k +++ b/semantics/systemInstructions/jnae_rel32.k @@ -5,18 +5,11 @@ module JNAE-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jnae Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + rule execinstr (jnae Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - rule - execinstr (jnae Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + rule execinstr (jnae _:MInt, .Operands) => . ... + RSMap + requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jnae_rel8.k b/semantics/systemInstructions/jnae_rel8.k deleted file mode 100644 index 9f5afa5dc..000000000 --- a/semantics/systemInstructions/jnae_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JNAE-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnae Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - - rule - execinstr (jnae Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/jnb_rel32.k b/semantics/systemInstructions/jnb_rel32.k index 23760c8a5..2cc8d92d3 100644 --- a/semantics/systemInstructions/jnb_rel32.k +++ b/semantics/systemInstructions/jnb_rel32.k @@ -5,18 +5,11 @@ module JNB-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jnb Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + rule execinstr (jnb Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - rule - execinstr (jnb Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + rule execinstr (jnb _:MInt, .Operands) => . ... + RSMap + requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jnb_rel8.k b/semantics/systemInstructions/jnb_rel8.k deleted file mode 100644 index d831e9646..000000000 --- a/semantics/systemInstructions/jnb_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JNB-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnb Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jnb Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/jnbe_rel32.k b/semantics/systemInstructions/jnbe_rel32.k index f042a5fbe..ceabcb423 100644 --- a/semantics/systemInstructions/jnbe_rel32.k +++ b/semantics/systemInstructions/jnbe_rel32.k @@ -5,21 +5,11 @@ module JNBE-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jnbe Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> - addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, - 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) + rule execinstr (jnbe Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) - rule - execinstr (jnbe Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - (notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) + rule execinstr (jnbe _:MInt, .Operands) => . ... + RSMap + requires (notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) endmodule diff --git a/semantics/systemInstructions/jnbe_rel8.k b/semantics/systemInstructions/jnbe_rel8.k deleted file mode 100644 index ea4ef54ac..000000000 --- a/semantics/systemInstructions/jnbe_rel8.k +++ /dev/null @@ -1,25 +0,0 @@ -requires "x86-configuration.k" - - -module JNBE-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnbe Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> - addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, - 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) - - rule - execinstr (jnbe Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - (notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) -endmodule diff --git a/semantics/systemInstructions/jnc_rel32.k b/semantics/systemInstructions/jnc_rel32.k index 4c86fa2f7..5251269be 100644 --- a/semantics/systemInstructions/jnc_rel32.k +++ b/semantics/systemInstructions/jnc_rel32.k @@ -5,18 +5,11 @@ module JNC-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jnc Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + rule execinstr (jnc Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - rule - execinstr (jnc Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + rule execinstr (jnc _:MInt, .Operands) => . ... + RSMap + requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jnc_rel8.k b/semantics/systemInstructions/jnc_rel8.k deleted file mode 100644 index 348665660..000000000 --- a/semantics/systemInstructions/jnc_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JNC-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnc Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jnc Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/jne_rel32.k b/semantics/systemInstructions/jne_rel32.k index 3ef4d9f48..4e0ec43fb 100644 --- a/semantics/systemInstructions/jne_rel32.k +++ b/semantics/systemInstructions/jne_rel32.k @@ -5,18 +5,11 @@ module JNE-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jne Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + rule execinstr (jne Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - rule - execinstr (jne Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + rule execinstr (jne _:MInt, .Operands) => . ... + RSMap + requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jne_rel8.k b/semantics/systemInstructions/jne_rel8.k deleted file mode 100644 index d442a86c0..000000000 --- a/semantics/systemInstructions/jne_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JNE-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jne Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jne Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jng_rel32.k b/semantics/systemInstructions/jng_rel32.k index 4f9fafeda..f69efec29 100644 --- a/semantics/systemInstructions/jng_rel32.k +++ b/semantics/systemInstructions/jng_rel32.k @@ -5,18 +5,11 @@ module JNG-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jng Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) + rule execinstr (jng Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) - rule - execinstr (jng Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) + rule execinstr (jng _:MInt, .Operands) => . ... + RSMap + requires (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jng_rel8.k b/semantics/systemInstructions/jng_rel8.k deleted file mode 100644 index d8b505c01..000000000 --- a/semantics/systemInstructions/jng_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JNG-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jng Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) - - rule - execinstr (jng Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) -endmodule diff --git a/semantics/systemInstructions/jnge_rel32.k b/semantics/systemInstructions/jnge_rel32.k index a04ced00d..9cf5623f2 100644 --- a/semantics/systemInstructions/jnge_rel32.k +++ b/semantics/systemInstructions/jnge_rel32.k @@ -5,18 +5,11 @@ module JNGE-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jnge Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + rule execinstr (jnge Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) - rule - execinstr (jnge Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + rule execinstr (jnge _:MInt, .Operands) => . ... + RSMap + requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jnge_rel8.k b/semantics/systemInstructions/jnge_rel8.k deleted file mode 100644 index adf16426e..000000000 --- a/semantics/systemInstructions/jnge_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JNGE-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnge Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) - - rule - execinstr (jnge Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) -endmodule diff --git a/semantics/systemInstructions/jnl_rel32.k b/semantics/systemInstructions/jnl_rel32.k index 440ddf0ea..e277a5d4e 100644 --- a/semantics/systemInstructions/jnl_rel32.k +++ b/semantics/systemInstructions/jnl_rel32.k @@ -5,18 +5,11 @@ module JNL-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jnl Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + rule execinstr (jnl Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) - rule - execinstr (jnl Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + rule execinstr (jnl _:MInt, .Operands) => . ... + RSMap + requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jnl_rel8.k b/semantics/systemInstructions/jnl_rel8.k deleted file mode 100644 index 50f56302d..000000000 --- a/semantics/systemInstructions/jnl_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JNL-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnl Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) - - rule - execinstr (jnl Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) -endmodule diff --git a/semantics/systemInstructions/jnle_rel32.k b/semantics/systemInstructions/jnle_rel32.k index e772fc77a..9e2101d3d 100644 --- a/semantics/systemInstructions/jnle_rel32.k +++ b/semantics/systemInstructions/jnle_rel32.k @@ -5,18 +5,11 @@ module JNLE-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jnle Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - (eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) + rule execinstr (jnle Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires (eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) - rule - execinstr (jnle Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - (notBool eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) + rule execinstr (jnle _:MInt, .Operands) => . ... + RSMap + requires (notBool eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jnle_rel8.k b/semantics/systemInstructions/jnle_rel8.k deleted file mode 100644 index 44fd34677..000000000 --- a/semantics/systemInstructions/jnle_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JNLE-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnle Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - (eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) - - rule - execinstr (jnle Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - (notBool eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) -endmodule diff --git a/semantics/systemInstructions/jno_rel32.k b/semantics/systemInstructions/jno_rel32.k index 593c31f33..a93c313ee 100644 --- a/semantics/systemInstructions/jno_rel32.k +++ b/semantics/systemInstructions/jno_rel32.k @@ -5,18 +5,11 @@ module JNO-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jno Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) + rule execinstr (jno Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) - rule - execinstr (jno Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) + rule execinstr (jno _:MInt, .Operands) => . ... + RSMap + requires notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jno_rel8.k b/semantics/systemInstructions/jno_rel8.k deleted file mode 100644 index 8741ffeef..000000000 --- a/semantics/systemInstructions/jno_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JNO-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jno Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jno Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jnp_rel32.k b/semantics/systemInstructions/jnp_rel32.k index 68adf18c3..49f5264c0 100644 --- a/semantics/systemInstructions/jnp_rel32.k +++ b/semantics/systemInstructions/jnp_rel32.k @@ -5,18 +5,11 @@ module JNP-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jnp Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + rule execinstr (jnp Imm64, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) - rule - execinstr (jnp Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + rule execinstr (jnp _:MInt, .Operands) => . ... + RSMap + requires notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jnp_rel8.k b/semantics/systemInstructions/jnp_rel8.k deleted file mode 100644 index 9a54f70a8..000000000 --- a/semantics/systemInstructions/jnp_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JNP-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnp Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jnp Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jns_rel32.k b/semantics/systemInstructions/jns_rel32.k index 7e2a9b089..43a956cc1 100644 --- a/semantics/systemInstructions/jns_rel32.k +++ b/semantics/systemInstructions/jns_rel32.k @@ -5,18 +5,11 @@ module JNS-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jns Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) + rule execinstr (jns Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) - rule - execinstr (jns Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) + rule execinstr (jns _:MInt, .Operands) => . ... + RSMap + requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jns_rel8.k b/semantics/systemInstructions/jns_rel8.k deleted file mode 100644 index 25353444d..000000000 --- a/semantics/systemInstructions/jns_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JNS-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jns Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jns Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/jnz_rel32.k b/semantics/systemInstructions/jnz_rel32.k index 25380d73a..d43a42410 100644 --- a/semantics/systemInstructions/jnz_rel32.k +++ b/semantics/systemInstructions/jnz_rel32.k @@ -5,18 +5,11 @@ module JNZ-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jnz Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + rule execinstr (jnz Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - rule - execinstr (jnz Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + rule execinstr (jnz _:MInt, .Operands) => . ... + RSMap + requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jnz_rel8.k b/semantics/systemInstructions/jnz_rel8.k deleted file mode 100644 index beeb4f24b..000000000 --- a/semantics/systemInstructions/jnz_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JNZ-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jnz Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jnz Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jo_rel32.k b/semantics/systemInstructions/jo_rel32.k index fe453c6f6..cfc8304c8 100644 --- a/semantics/systemInstructions/jo_rel32.k +++ b/semantics/systemInstructions/jo_rel32.k @@ -5,18 +5,11 @@ module JO-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jo Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) + rule execinstr (jo Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) - rule - execinstr (jo Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) + rule execinstr (jo _:MInt, .Operands) => . ... + RSMap + requires notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jo_rel8.k b/semantics/systemInstructions/jo_rel8.k deleted file mode 100644 index 4affc1844..000000000 --- a/semantics/systemInstructions/jo_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JO-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jo Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) - - rule - execinstr (jo Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) -endmodule diff --git a/semantics/systemInstructions/jp_rel32.k b/semantics/systemInstructions/jp_rel32.k index ad9524a68..f8574a048 100644 --- a/semantics/systemInstructions/jp_rel32.k +++ b/semantics/systemInstructions/jp_rel32.k @@ -5,18 +5,11 @@ module JP-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jp Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) + rule execinstr (jp Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) - rule - execinstr (jp Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + rule execinstr (jp _:MInt, .Operands) => . ... + RSMap + requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jp_rel8.k b/semantics/systemInstructions/jp_rel8.k deleted file mode 100644 index 1bcddf0b4..000000000 --- a/semantics/systemInstructions/jp_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JP-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jp Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) - - rule - execinstr (jp Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jpe_rel32.k b/semantics/systemInstructions/jpe_rel32.k index 31522376b..87ebae5e6 100644 --- a/semantics/systemInstructions/jpe_rel32.k +++ b/semantics/systemInstructions/jpe_rel32.k @@ -5,18 +5,11 @@ module JPE-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jpe Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) + rule execinstr (jpe Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) - rule - execinstr (jpe Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + rule execinstr (jpe Imm32:MInt, .Operands) => . ... + RSMap + requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jpe_rel8.k b/semantics/systemInstructions/jpe_rel8.k deleted file mode 100644 index ef6bb2dbc..000000000 --- a/semantics/systemInstructions/jpe_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JPE-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jpe Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) - - rule - execinstr (jpe Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jpo_rel32.k b/semantics/systemInstructions/jpo_rel32.k index ee70f0267..2794b1fd3 100644 --- a/semantics/systemInstructions/jpo_rel32.k +++ b/semantics/systemInstructions/jpo_rel32.k @@ -5,18 +5,11 @@ module JPO-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jpo Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + rule execinstr (jpo Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) - rule - execinstr (jpo Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + rule execinstr (jpo _:MInt, .Operands) => . ... + RSMap + requires notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jpo_rel8.k b/semantics/systemInstructions/jpo_rel8.k deleted file mode 100644 index 45a4d5ca6..000000000 --- a/semantics/systemInstructions/jpo_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JPO-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jpo Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) - - rule - execinstr (jpo Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jrcxz_rel8.k b/semantics/systemInstructions/jrcxz_rel8.k index 6c5be105f..691588fae 100644 --- a/semantics/systemInstructions/jrcxz_rel8.k +++ b/semantics/systemInstructions/jrcxz_rel8.k @@ -5,18 +5,11 @@ module JRCXZ-REL8 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jrcxz Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) + rule execinstr (jrcxz Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) - rule - execinstr (jrcxz Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - notBool eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) + rule execinstr (jrcxz _:MInt, .Operands) => . ... + RSMap + requires notBool eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) endmodule diff --git a/semantics/systemInstructions/js_rel32.k b/semantics/systemInstructions/js_rel32.k index 50b6dcf19..395962e59 100644 --- a/semantics/systemInstructions/js_rel32.k +++ b/semantics/systemInstructions/js_rel32.k @@ -5,18 +5,11 @@ module JS-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (js Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) + rule execinstr (js Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) - rule - execinstr (js Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) + rule execinstr (js _:MInt, .Operands) => . ... + RSMap + requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/js_rel8.k b/semantics/systemInstructions/js_rel8.k deleted file mode 100644 index 4d1431c76..000000000 --- a/semantics/systemInstructions/js_rel8.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -module JS-REL8 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (js Imm8:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) - - rule - execinstr (js Imm8:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) -endmodule diff --git a/semantics/systemInstructions/jz_rel32.k b/semantics/systemInstructions/jz_rel32.k index 788921fe5..f33362be5 100644 --- a/semantics/systemInstructions/jz_rel32.k +++ b/semantics/systemInstructions/jz_rel32.k @@ -5,18 +5,11 @@ module JZ-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (jz Imm32:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - - requires bitwidthMInt(Imm32) ==Int 32 andBool - eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + rule execinstr (jz Imm64:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64)) + requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) - rule - execinstr (jz Imm32:MInt, .Operands) => . - ... - RSMap:Map - requires bitwidthMInt(Imm32) ==Int 32 andBool - notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + rule execinstr (jz _:MInt, .Operands) => . ... + RSMap + requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/loop_rel8.k b/semantics/systemInstructions/loop_rel8.k index e490e63f1..0e184a5c6 100644 --- a/semantics/systemInstructions/loop_rel8.k +++ b/semantics/systemInstructions/loop_rel8.k @@ -5,31 +5,14 @@ module LOOP-REL8 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (loop Imm8:MInt, .Operands) => execinstr (loop Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) - ... + rule execinstr (loop Imm64:MInt, .Operands) => execinstr (loop Imm64, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) ... RSMap - requires bitwidthMInt(Imm8) ==Int 8 - rule - execinstr (loop Imm8:MInt, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64))) - ("RCX" |-> Count) - ) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - - rule - execinstr (loop Imm8:MInt, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RCX" |-> Count) - ) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - eqMInt(Count, mi(bitwidthMInt(Count), 0)) + rule execinstr (loop Imm64:MInt, Count:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64) ("RCX" |-> Count)) + requires notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) + rule execinstr (loop Imm64:MInt, Count:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RCX" |-> Count)) + requires eqMInt(Count, mi(bitwidthMInt(Count), 0)) endmodule diff --git a/semantics/systemInstructions/loope_rel8.k b/semantics/systemInstructions/loope_rel8.k index 140a98d9d..be83ec3ab 100644 --- a/semantics/systemInstructions/loope_rel8.k +++ b/semantics/systemInstructions/loope_rel8.k @@ -5,33 +5,14 @@ module LOOPE-REL8 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (loope Imm8:MInt, .Operands) => execinstr (loope Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) - ... + rule execinstr (loope Imm64:MInt, .Operands) => execinstr (loope Imm64, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) ... RSMap - requires bitwidthMInt(Imm8) ==Int 8 - rule - execinstr (loope Imm8:MInt, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64))) - ("RCX" |-> Count) - ) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - (notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) - - rule - execinstr (loope Imm8:MInt, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RCX" |-> Count) - ) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - (eqMInt(Count, mi(bitwidthMInt(Count), 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) + rule execinstr (loope Imm64:MInt, Count:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64) ("RCX" |-> Count)) + requires (notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) + rule execinstr (loope Imm8:MInt, Count:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RCX" |-> Count)) + requires (eqMInt(Count, mi(bitwidthMInt(Count), 0)) orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) endmodule diff --git a/semantics/systemInstructions/loopne_rel8.k b/semantics/systemInstructions/loopne_rel8.k index a6cde7c73..46b889237 100644 --- a/semantics/systemInstructions/loopne_rel8.k +++ b/semantics/systemInstructions/loopne_rel8.k @@ -5,33 +5,14 @@ module LOOPNE-REL8 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (loopne Imm8:MInt, .Operands) => execinstr (loope Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) - ... + rule execinstr (loopne Imm64:MInt, .Operands) => execinstr (loope Imm64, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) ... RSMap - requires bitwidthMInt(Imm8) ==Int 8 - rule - execinstr (loopne Imm8:MInt, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64))) - ("RCX" |-> Count) - ) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - (notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) - - rule - execinstr (loopne Imm8:MInt, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RCX" |-> Count) - ) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - (eqMInt(Count, mi(bitwidthMInt(Count), 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) + rule execinstr (loopne Imm64:MInt, Count:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64) ("RCX" |-> Count)) + requires (notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) + rule execinstr (loopne Imm64:MInt, Count:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RCX" |-> Count)) + requires (eqMInt(Count, mi(bitwidthMInt(Count), 0)) orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) endmodule diff --git a/semantics/systemInstructions/loopnz_rel8.k b/semantics/systemInstructions/loopnz_rel8.k index bf1b354b7..17203acb3 100644 --- a/semantics/systemInstructions/loopnz_rel8.k +++ b/semantics/systemInstructions/loopnz_rel8.k @@ -5,33 +5,14 @@ module LOOPNE-REL8 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (loopnz Imm8:MInt, .Operands) => execinstr (loopnz Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) - ... - RSMap - requires bitwidthMInt(Imm8) ==Int 8 + rule execinstr (loopnz Imm64:MInt, .Operands) => execinstr (loopnz Imm64, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) ... + RSMap - rule - execinstr (loopnz Imm8:MInt, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64))) - ("RCX" |-> Count) - ) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - ( notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) - - rule - execinstr (loopnz Imm8:MInt, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RCX" |-> Count) - ) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - ( eqMInt(Count, mi(bitwidthMInt(Count), 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) + rule execinstr (loopnz Imm64:MInt, Count:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64) ("RCX" |-> Count)) + requires (notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) + rule execinstr (loopnz Imm64:MInt, Count:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RCX" |-> Count)) + requires (eqMInt(Count, mi(bitwidthMInt(Count), 0)) orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) endmodule diff --git a/semantics/systemInstructions/loopz_rel8.k b/semantics/systemInstructions/loopz_rel8.k index cfa525dd6..3f2dfb1ed 100644 --- a/semantics/systemInstructions/loopz_rel8.k +++ b/semantics/systemInstructions/loopz_rel8.k @@ -5,33 +5,14 @@ module LOOPE-REL8 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule - execinstr (loopz Imm8:MInt, .Operands) => execinstr (loopz Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) - ... + rule execinstr (loopz Imm64:MInt, .Operands) => execinstr (loopz Imm64, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) ... RSMap - requires bitwidthMInt(Imm8) ==Int 8 - rule - execinstr (loopz Imm8:MInt, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64))) - ("RCX" |-> Count) - ) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - ( notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) - - rule - execinstr (loopz Imm8:MInt, Count:MInt, .Operands) => . - ... - RSMap => updateMap(RSMap, - ("RCX" |-> Count) - ) - - requires bitwidthMInt(Imm8) ==Int 8 andBool - ( eqMInt(Count, mi(bitwidthMInt(Count), 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) + rule execinstr (loopz Imm64:MInt, Count:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> Imm64) ("RCX" |-> Count)) + requires (notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) + rule execinstr (loopz Imm64:MInt, Count:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RCX" |-> Count)) + requires (eqMInt(Count, mi(bitwidthMInt(Count), 0)) orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) endmodule diff --git a/semantics/test.c b/semantics/test.c index 08cf56f3c..755705369 100644 --- a/semantics/test.c +++ b/semantics/test.c @@ -1,26 +1,16 @@ #include +#include #include -int fib(const int n) { - if (n == 0) { - return 0; - } else if (n == 1) { - return 1; - } else { - int nums[n + 1]; - nums[0] = 0; - nums[1] = 1; - for (int i = 2; i <= n; ++i) { - nums[i] = nums[i - 1] + nums[i - 2]; - } - return nums[n]; - } -} - -const int elems[] = {0, 1, 5, 10, 20, 40}; - -int main() { - for (int i = 0; i < sizeof(elems) / sizeof(int); ++i) { - printf("%d: %d\n", elems[i], fib(elems[i])); - } +int main () { + const char * str = "The quick brown fox jumped over the lazy dog"; + const int len = strlen(str); + const char * space = " "; + char buf[len + 1]; + char * sptr = buf; + strncpy(buf, str, len); + while (sptr != NULL) { + puts(strsep(&sptr, space)); + } + return 0; } diff --git a/semantics/x86-abstract-semantics.k b/semantics/x86-abstract-semantics.k index 79a6ce5d7..08ea1e82c 100644 --- a/semantics/x86-abstract-semantics.k +++ b/semantics/x86-abstract-semantics.k @@ -35,6 +35,11 @@ module X86-ABSTRACT-SEMANTICS rule I:Int (R1:R64):Mem => memOffset( addMInt(mi(64, I), getRegisterValue(R1, RSMap))) ... RSMap + rule (R:Rip):Mem => 0 (R) ... + + rule I:Int (R:Rip) => memOffset(addMInt(mi(64, I), getRegisterValue(R, RSMap))) ... + RSMap + // (, %r64) rule (, R2:R64):Mem => 0 (, R2, 1) ... rule I:Int (, R2:R64):Mem => I (, R2, 1) ... @@ -296,12 +301,10 @@ module X86-ABSTRACT-SEMANTICS rule getRegisterValue(R:R16, RSMap) => extractMask(KItemToMInt(RSMap[convToRegKeys(R)]), 16, 0) rule getRegisterValue(R:R32, RSMap) => extractMask(KItemToMInt(RSMap[convToRegKeys(R)]), 32, 0) rule getRegisterValue(R:R64, RSMap) => KItemToMInt(RSMap[convToRegKeys(R)]) + rule getRegisterValue(R:Rip, RSMap) => KItemToMInt(RSMap["RIP"]) rule getRegisterValue(R:Rh, RSMap) => extractMask(KItemToMInt(RSMap[convToRegKeys(R)]), 8, 8) rule getRegisterValue(X:Xmm, RSMap) => extractMask(KItemToMInt(RSMap[convToRegKeys(X)]), 128, 0) rule getRegisterValue(Y:Ymm, RSMap) => KItemToMInt(RSMap[convToRegKeys(Y)]) -/* - rule getRegisterValue(M:Mm, RSMap) => {RSMap[convToRegKeys(M)]}:>MInt -*/ rule getParentValue(R:Register, RSMap) => getRegisterValue(convSubRegsToRegs(R), RSMap) /*@ @@ -533,7 +536,7 @@ module X86-ABSTRACT-SEMANTICS */ rule findLimitIndexI(Value:MInt, Imm8:MInt) => findLimitIndexIHelper(Value, KItemToInt(#ifInt eqMInt(extractMInt(Imm8, 7, 8), mi(1, 1)) #then 16 #else 8 #fi), - KItemToInt(#ifInt eqMInt(extractMInt(Imm8, 7, 8), mi(1, 1)) #then 8 #else 16 #fi}), + KItemToInt(#ifInt eqMInt(extractMInt(Imm8, 7, 8), mi(1, 1)) #then 8 #else 16 #fi), 0) rule findLimitIndexIHelper(Value:MInt, BitLength:Int, NumElems:Int, Count:Int) => mi(8, Count) @@ -592,8 +595,8 @@ module X86-ABSTRACT-SEMANTICS rule compareEqual(Count2:Int, Count1:Int, Value2:MInt, Value1:MInt, Limit2:MInt, Limit1:MInt, NumElems:Int, SOrU:MInt) => compareEqualSignedOrUnsigned( - extractMask(Value2, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count2 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi)), - extractMask(Value1, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count1 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi)), + extractMask(Value2, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi), Count2 *Int #if NumElems ==Int 8 #then 16 #else 8 #fi), + extractMask(Value1, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi), Count1 *Int #if NumElems ==Int 8 #then 16 #else 8 #fi), SOrU ) requires Count1 compareEqualSignedOrUnsigned( - extractMask(Value2, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Index *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi)), - extractMask(Value1, KItemToINt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Index *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi)), + extractMask(Value2, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi), Index *Int #if NumElems ==Int 8 #then 16 #else 8 #fi), + extractMask(Value1, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi), Index *Int #if NumElems ==Int 8 #then 16 #else 8 #fi), SOrU ) requires // If both of the data are valid @@ -698,13 +701,13 @@ module X86-ABSTRACT-SEMANTICS rule compareRange(Count2:Int, Count1:Int, Value2:MInt, Value1:MInt, Limit2:MInt, Limit1:MInt, NumElems:Int, SOrU:MInt) => andMInt( compareGESignedOrUnsigned( - extractMask(Value2, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count2 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi)), - extractMask(Value1, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count1 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi)), + extractMask(Value2, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi), Count2 *Int #if NumElems ==Int 8 #then 16 #else 8 #fi), + extractMask(Value1, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi), Count1 *Int #if NumElems ==Int 8 #then 16 #else 8 #fi), SOrU ), compareLESignedOrUnsigned( - extractMask(Value2, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count2 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi)), - extractMask(Value1, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count1 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi)), + extractMask(Value2, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi), Count2 *Int #if NumElems ==Int 8 #then 16 #else 8 #fi), + extractMask(Value1, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi), Count1 *Int #if NumElems ==Int 8 #then 16 #else 8 #fi), SOrU )) @@ -758,8 +761,8 @@ module X86-ABSTRACT-SEMANTICS rule compareEqualOrdered(Count2:Int, Count1:Int, Value2:MInt, Value1:MInt, Limit2:MInt, Limit1:MInt, NumElems:Int, SOrU:MInt) => compareEqualSignedOrUnsigned( - extractMask(Value2, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count2 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi})), - extractMask(Value1, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi}:>Int, Count1 *Int {#if NumElems ==Int 8 #then 16 #else 8 #fi})), + extractMask(Value2, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi), Count2 *Int #if NumElems ==Int 8 #then 16 #else 8 #fi), + extractMask(Value1, KItemToInt(#ifInt NumElems ==Int 8 #then 16 #else 8 #fi), Count1 *Int #if NumElems ==Int 8 #then 16 #else 8 #fi), SOrU ) diff --git a/semantics/x86-configuration.k b/semantics/x86-configuration.k index 615f796ef..6263b892f 100644 --- a/semantics/x86-configuration.k +++ b/semantics/x86-configuration.k @@ -107,4 +107,5 @@ module X86-CONFIGURATION + .List // For debugging, similar to regstatequeue endmodule diff --git a/semantics/x86-fetch-execute.k b/semantics/x86-fetch-execute.k index b0f7a5d3b..da03886b1 100644 --- a/semantics/x86-fetch-execute.k +++ b/semantics/x86-fetch-execute.k @@ -38,11 +38,16 @@ module X86-FETCH-EXECUTE rule memLoadValue(MI:MInt) ~> loadInstructionBytesFromMemoryAux(Ip, Is, I) => loadInstructionBytesFromMemoryAux(addMInt(Ip, mi(logicalAddressWidth, 1)), uvalueMInt(MI) Is, I +Int 1) [owise] rule loadInstructionBytesFromMemoryAux(_, Is, maxInstructionLength) => reverseInts(Is) + syntax K ::= IncrementRIP(Int) + rule invokeDecoder(I:Int, Is:Ints) => Decode(I, Is) - rule DecodedInstruction(Len:Int, _, I:Instruction, _) => execinstr(I) ... - RSMap => RSMap["RIP" <- addMInt({RSMap["RIP"]}:>MInt, mi(logicalAddressWidth, Len))] + rule DecodedInstruction(Len:Int, _, I:Instruction, _) => IncrementRIP(Len) ~> execinstr(I) ... + ... .List => ListItem(I) + rule IncrementRIP(Len) => . ... + RSMap => RSMap["RIP" <- addMInt({RSMap["RIP"]}:>MInt, mi(logicalAddressWidth, Len))] + syntax KItem ::= "exit_0" syntax KItem ::= "illegal_halt" diff --git a/semantics/x86-syntax.k b/semantics/x86-syntax.k index 3d7d6ec93..f98d2b767 100644 --- a/semantics/x86-syntax.k +++ b/semantics/x86-syntax.k @@ -86,8 +86,8 @@ module X86-SYNTAX * Adding Int and Float as operands helps in * testing float-conversion directly. */ - | Int - | Float +// | Int +// | Float /*@ * execinstr(Opcode (R:Operand .Operands):Operands) * are sometimes writen as From b7571492dff9facc04f1f56cf53e8c779dfe2d3b Mon Sep 17 00:00:00 2001 From: andrew_miranti Date: Thu, 14 Mar 2019 12:37:16 -0500 Subject: [PATCH 14/15] Use 0 rather than undefMInt for uninitialized memory --- semantics/x86-memory.k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/semantics/x86-memory.k b/semantics/x86-memory.k index a6ac14fde..fada1b854 100644 --- a/semantics/x86-memory.k +++ b/semantics/x86-memory.k @@ -154,7 +154,7 @@ module X86-MEMORY rule findValueInROM(A, ListItem(StringSegment(Start, End, S)) L) => findValueInROM(A, L) requires uvalueMInt(A) =Int End - rule findValueInROM(A, .List) => undefMInt + rule findValueInROM(A, .List) => 0 rule loadFromMemory(Addr, 8) => memLoadValue(findValueInMemory(Addr, MemMap, ROMList)) ... MemMap => MemMap[Addr <- findValueInMemory(Addr, MemMap, ROMList)] From 859a0291fef0c9c541be31caee0ffcdeeb7fd847 Mon Sep 17 00:00:00 2001 From: andrew_miranti Date: Fri, 5 Apr 2019 13:35:36 -0500 Subject: [PATCH 15/15] Ran most of the gcc torture tests. Have now lost the results for the jobs 601 to 1465 twice. --- .gitignore | 2 + semantics/a.out | Bin 984800 -> 0 bytes semantics/crashed_files.txt | 51 + semantics/immediateInstructions/pushq_imm8.k | 23 + semantics/reran_files.txt | 42655 ++++++++++++++++ semantics/run-on-elf.py | 62 +- semantics/test.c | 10 +- semantics/tests-to-rerun.txt | 38 + semantics/x86-configuration.k | 2 + semantics/x86-fetch-execute.k | 25 +- semantics/x86-memory.k | 4 +- .../job_101_600/bin/20010224-1-0.asm | 368 - .../job_101_600/bin/20010325-1-0.asm | 293 - .../job_101_600/bin/20010329-1-0.asm | 293 - .../job_101_600/bin/20010403-1-0.asm | 338 - .../job_101_600/bin/20010409-1-0.asm | 402 - .../job_101_600/bin/20010422-1-0.asm | 296 - .../job_101_600/bin/20010518-1-0.asm | 331 - .../job_101_600/bin/20010518-2-0.asm | 320 - .../job_101_600/bin/20010520-1-0.asm | 286 - .../job_101_600/bin/20010604-1-0.asm | 328 - .../job_101_600/bin/20010605-1-0.asm | 305 - .../job_101_600/bin/20010605-2-0.asm | 430 - .../job_101_600/bin/20010711-1-0.asm | 290 - .../job_101_600/bin/20010717-1-0.asm | 298 - .../job_101_600/bin/20010723-1-0.asm | 299 - .../job_101_600/bin/20010904-1-0.asm | 276 - .../job_101_600/bin/20010904-2-0.asm | 276 - .../job_101_600/bin/20010910-1-0.asm | 368 - .../job_101_600/bin/20010915-1-0.asm | 513 - .../job_101_600/bin/20010924-1-0.asm | 369 - .../job_101_600/bin/20010925-1-0.asm | 308 - .../job_101_600/bin/20011008-3-0.asm | 407 - .../job_101_600/bin/20011019-1-0.asm | 295 - .../job_101_600/bin/20011024-1-0.asm | 309 - .../job_101_600/bin/20011109-1-0.asm | 377 - .../job_101_600/bin/20011109-2-0.asm | 303 - .../job_101_600/bin/20011113-1-0.asm | 396 - .../job_101_600/bin/20011114-1-0.asm | 294 - .../job_101_600/bin/20011115-1-0.asm | 275 - .../job_101_600/bin/20011121-1-0.asm | 291 - .../job_101_600/bin/20011126-1-0.asm | 296 - .../job_101_600/bin/20011126-2-0.asm | 337 - .../job_101_600/bin/20011128-1-0.asm | 286 - .../job_101_600/bin/20011217-1-0.asm | 299 - .../job_101_600/bin/20011219-1-0.asm | 360 - .../job_101_600/bin/20011223-1-0.asm | 277 - .../job_101_600/bin/20020103-1-0.asm | 307 - .../job_101_600/bin/20020107-1-0.asm | 311 - .../job_101_600/bin/20020108-1-0.asm | 3194 -- .../job_101_600/bin/20020118-1-0.asm | 360 - .../job_101_600/bin/20020127-1-0.asm | 298 - .../job_101_600/bin/20020129-1-0.asm | 347 - .../job_101_600/bin/20020201-1-0.asm | 448 - .../job_101_600/bin/20020206-1-0.asm | 331 - .../job_101_600/bin/20020206-2-0.asm | 320 - .../job_101_600/bin/20020213-1-0.asm | 317 - .../job_101_600/bin/20020215-1-0.asm | 319 - .../job_101_600/bin/20020216-1-0.asm | 295 - .../job_101_600/bin/20020219-1-0.asm | 297 - .../job_101_600/bin/20020225-1-0.asm | 295 - .../job_101_600/bin/20020225-2-0.asm | 293 - .../job_101_600/bin/20020226-1-0.asm | 586 - .../job_101_600/bin/20020227-1-0.asm | 345 - .../job_101_600/bin/20020307-1-0.asm | 768 - .../job_101_600/bin/20020314-1-0.asm | 399 - .../job_101_600/bin/20020320-1-0.asm | 321 - .../job_101_600/bin/20020321-1-0.asm | 316 - .../job_101_600/bin/20020328-1-0.asm | 313 - .../job_101_600/bin/20020402-1-0.asm | 360 - .../job_101_600/bin/20020402-2-0.asm | 471 - .../job_101_600/bin/20020402-3-0.asm | 378 - .../job_101_600/bin/20020404-1-0.asm | 405 - .../job_101_600/bin/20020406-1-0.asm | 630 - .../job_101_600/bin/20020411-1-0.asm | 351 - .../job_101_600/bin/20020412-1-0.asm | 571 - .../job_101_600/bin/20020413-1-0.asm | 378 - .../job_101_600/bin/20020418-1-0.asm | 311 - .../job_101_600/bin/20020423-1-0.asm | 325 - .../job_101_600/bin/20020503-1-0.asm | 346 - .../job_101_600/bin/20020506-1-0.asm | 792 - .../job_101_600/bin/20020508-1-0.asm | 586 - .../job_101_600/bin/20020508-2-0.asm | 618 - .../job_101_600/bin/20020508-3-0.asm | 618 - .../job_101_600/bin/20020510-1-0.asm | 434 - .../job_101_600/bin/20020529-1-0.asm | 392 - .../job_101_600/bin/20020611-1-0.asm | 319 - .../job_101_600/bin/20020614-1-0.asm | 316 - .../job_101_600/bin/20020615-1-0.asm | 430 - .../job_101_600/bin/20020619-1-0.asm | 309 - .../job_101_600/bin/20020716-1-0.asm | 317 - .../job_101_600/bin/20020720-1-0.asm | 312 - .../job_101_600/bin/20020805-1-0.asm | 305 - .../job_101_600/bin/20020810-1-0.asm | 334 - .../job_101_600/bin/20020819-1-0.asm | 312 - .../job_101_600/bin/20020904-1-0.asm | 295 - .../job_101_600/bin/20020911-1-0.asm | 294 - .../job_101_600/bin/20020916-1-0.asm | 299 - .../job_101_600/bin/20020920-1-0.asm | 320 - .../job_101_600/bin/20021010-1-0.asm | 290 - .../job_101_600/bin/20021010-2-0.asm | 337 - .../job_101_600/bin/20021011-1-0.asm | 331 - .../job_101_600/bin/20021015-1-0.asm | 341 - .../job_101_600/bin/20021024-1-0.asm | 348 - .../job_101_600/bin/20021111-1-0.asm | 318 - .../job_101_600/bin/20021113-1-0.asm | 302 - .../job_101_600/bin/20021118-1-0.asm | 321 - .../job_101_600/bin/20021118-2-0.asm | 463 - .../job_101_600/bin/20021118-3-0.asm | 297 - .../job_101_600/bin/20021119-1-0.asm | 302 - .../job_101_600/bin/20021120-1-0.asm | 1663 - .../job_101_600/bin/20021120-2-0.asm | 311 - .../job_101_600/bin/20021120-3-0.asm | 306 - .../job_101_600/bin/20021127-1-0.asm | 296 - .../job_101_600/bin/20021204-1-0.asm | 317 - .../job_101_600/bin/20021219-1-0.asm | 325 - .../job_101_600/bin/20030105-1-0.asm | 318 - .../job_101_600/bin/20030109-1-0.asm | 287 - .../job_101_600/bin/20030117-1-0.asm | 333 - .../job_101_600/bin/20030120-1-0.asm | 348 - .../job_101_600/bin/20030120-2-0.asm | 303 - .../job_101_600/bin/20030125-1-0.asm | 348 - .../job_101_600/bin/20030128-1-0.asm | 295 - .../job_101_600/bin/20030203-1-0.asm | 309 - .../job_101_600/bin/20030209-1-0.asm | 303 - .../job_101_600/bin/20030216-1-0.asm | 282 - .../job_101_600/bin/20030218-1-0.asm | 303 - .../job_101_600/bin/20030221-1-0.asm | 315 - .../job_101_600/bin/20030222-1-0.asm | 310 - .../job_101_600/bin/20030224-2-0.asm | 298 - .../job_101_600/bin/20030307-1-0.asm | 320 - .../job_101_600/bin/20030313-1-0.asm | 461 - .../job_101_600/bin/20030316-1-0.asm | 277 - .../job_101_600/bin/20030323-1-0.asm | 5744 --- .../job_101_600/bin/20030330-1-0.asm | 293 - .../job_101_600/bin/20030401-1-0.asm | 317 - .../job_101_600/bin/20030403-1-0.asm | 282 - .../job_101_600/bin/20030404-1-0.asm | 295 - .../job_101_600/bin/20030408-1-0.asm | 517 - .../job_101_600/bin/20030501-1-0.asm | 300 - .../job_101_600/bin/20030606-1-0.asm | 351 - .../job_101_600/bin/20030613-1-0.asm | 380 - .../job_101_600/bin/20030626-1-0.asm | 284 - .../job_101_600/bin/20030626-2-0.asm | 310 - .../job_101_600/bin/20030714-1-0.asm | 487 - .../job_101_600/bin/20030715-1-0.asm | 341 - .../job_101_600/bin/20030717-1-0.asm | 403 - .../job_101_600/bin/20030718-1-0.asm | 284 - .../job_101_600/bin/20030811-1-0.asm | 347 - .../job_101_600/bin/20030821-1-0.asm | 292 - .../job_101_600/bin/20030828-1-0.asm | 297 - .../job_101_600/bin/20030828-2-0.asm | 297 - .../job_101_600/bin/20030903-1-0.asm | 314 - .../job_101_600/bin/20030909-1-0.asm | 318 - .../job_101_600/bin/20030910-1-0.asm | 298 - .../job_101_600/bin/20030913-1-0.asm | 314 - .../job_101_600/bin/20030914-1-0.asm | 346 - .../job_101_600/bin/20030914-2-0.asm | 330 - .../job_101_600/bin/20030916-1-0.asm | 338 - .../job_101_600/bin/20030920-1-0.asm | 303 - .../job_101_600/bin/20030928-1-0.asm | 418 - .../job_101_600/bin/20031003-1-0.asm | 302 - .../job_101_600/bin/20031010-1-0.asm | 325 - .../job_101_600/bin/20031011-1-0.asm | 333 - .../job_101_600/bin/20031012-1-0.asm | 310 - .../job_101_600/bin/20031020-1-0.asm | 293 - .../job_101_600/bin/20031201-1-0.asm | 417 - .../job_101_600/bin/20031204-1-0.asm | 383 - .../job_101_600/bin/20031211-1-0.asm | 299 - .../job_101_600/bin/20031211-2-0.asm | 299 - .../job_101_600/bin/20031214-1-0.asm | 328 - .../job_101_600/bin/20031215-1-0.asm | 356 - .../job_101_600/bin/20031216-1-0.asm | 304 - .../job_101_600/bin/20040208-1-0.asm | 301 - .../job_101_600/bin/20040218-1-0.asm | 350 - .../job_101_600/bin/20040223-1-0.asm | 304 - .../job_101_600/bin/20040302-1-0.asm | 328 - .../job_101_600/bin/20040307-1-0.asm | 310 - .../job_101_600/bin/20040308-1-0.asm | 376 - .../job_101_600/bin/20040309-1-0.asm | 325 - .../job_101_600/bin/20040311-1-0.asm | 391 - .../job_101_600/bin/20040313-1-0.asm | 304 - .../job_101_600/bin/20040319-1-0.asm | 302 - .../job_101_600/bin/20040331-1-0.asm | 299 - .../job_101_600/bin/20040409-1-0.asm | 465 - .../job_101_600/bin/20040409-1w-0.asm | 371 - .../job_101_600/bin/20040409-2-0.asm | 619 - .../job_101_600/bin/20040409-2w-0.asm | 451 - .../job_101_600/bin/20040409-3-0.asm | 471 - .../job_101_600/bin/20040409-3w-0.asm | 375 - .../job_101_600/bin/20040411-1-0.asm | 332 - .../job_101_600/bin/20040423-1-0.asm | 350 - .../job_101_600/bin/20040520-1-0.asm | 309 - .../job_101_600/bin/20040625-1-0.asm | 306 - .../job_101_600/bin/20040629-1-0.asm | 5339 -- .../job_101_600/bin/20040703-1-0.asm | 607 - .../job_101_600/bin/20040704-1-0.asm | 279 - .../job_101_600/bin/20040705-1-0.asm | 5339 -- .../job_101_600/bin/20040705-2-0.asm | 5339 -- .../job_101_600/bin/20040706-1-0.asm | 287 - .../job_101_600/bin/20040707-1-0.asm | 289 - .../job_101_600/bin/20040709-1-0.asm | 9022 ---- .../job_101_600/bin/20040709-2-0.asm | 10851 ---- .../job_101_600/bin/20040709-3-0.asm | 9494 ---- .../job_101_600/bin/20040805-1-0.asm | 332 - .../job_101_600/bin/20040811-1-0.asm | 359 - .../job_101_600/bin/20040820-1-0.asm | 314 - .../job_101_600/bin/20040823-1-0.asm | 295 - .../job_101_600/bin/20040831-1-0.asm | 316 - .../job_101_600/bin/20040917-1-0.asm | 301 - .../job_101_600/bin/20041011-1-0.asm | 2025 - .../job_101_600/bin/20041019-1-0.asm | 367 - .../job_101_600/bin/20041112-1-0.asm | 320 - .../job_101_600/bin/20041113-1-0.asm | 422 - .../job_101_600/bin/20041114-1-0.asm | 303 - .../job_101_600/bin/20041124-1-0.asm | 313 - .../job_101_600/bin/20041126-1-0.asm | 357 - .../job_101_600/bin/20041201-1-0.asm | 320 - .../job_101_600/bin/20041210-1-0.asm | 294 - .../job_101_600/bin/20041212-1-0.asm | 287 - .../job_101_600/bin/20041213-2-0.asm | 309 - .../job_101_600/bin/20041214-1-0.asm | 471 - .../job_101_600/bin/20041218-1-0.asm | 476 - .../job_101_600/bin/20041218-2-0.asm | 305 - .../job_101_600/bin/20050104-1-0.asm | 302 - .../job_101_600/bin/20050106-1-0.asm | 291 - .../job_101_600/bin/20050107-1-0.asm | 310 - .../job_101_600/bin/20050111-1-0.asm | 335 - .../job_101_600/bin/20050119-1-0.asm | 313 - .../job_101_600/bin/20050119-2-0.asm | 319 - .../job_101_600/bin/20050121-1-0.asm | 979 - .../job_101_600/bin/20050124-1-0.asm | 355 - .../job_101_600/bin/20050125-1-0.asm | 340 - .../job_101_600/bin/20050131-1-0.asm | 291 - .../job_101_600/bin/20050203-1-0.asm | 313 - .../job_101_600/bin/20050215-1-0.asm | 290 - .../job_101_600/bin/20050218-1-0.asm | 403 - .../job_101_600/bin/20050224-1-0.asm | 355 - .../job_101_600/bin/20050316-1-0.asm | 387 - .../job_101_600/bin/20050316-2-0.asm | 381 - .../job_101_600/bin/20050316-3-0.asm | 335 - .../job_101_600/bin/20050410-1-0.asm | 295 - .../job_101_600/bin/20050502-1-0.asm | 520 - .../job_101_600/bin/20050502-2-0.asm | 368 - .../job_101_600/bin/20050604-1-0.asm | 379 - .../job_101_600/bin/20050607-1-0.asm | 281 - .../job_101_600/bin/20050613-1-0.asm | 332 - .../job_101_600/bin/20050713-1-0.asm | 454 - .../job_101_600/bin/20050826-1-0.asm | 339 - .../job_101_600/bin/20050826-2-0.asm | 450 - .../job_101_600/bin/20050929-1-0.asm | 331 - .../job_101_600/bin/20051012-1-0.asm | 300 - .../job_101_600/bin/20051021-1-0.asm | 319 - .../job_101_600/bin/20051104-1-0.asm | 296 - .../job_101_600/bin/20051110-1-0.asm | 325 - .../job_101_600/bin/20051110-2-0.asm | 328 - .../job_101_600/bin/20051113-1-0.asm | 377 - .../job_101_600/bin/20051215-1-0.asm | 322 - .../job_101_600/bin/20060102-1-0.asm | 309 - .../job_101_600/bin/20060110-1-0.asm | 303 - .../job_101_600/bin/20060110-2-0.asm | 311 - .../job_101_600/bin/20060127-1-0.asm | 299 - .../job_101_600/bin/20060412-1-0.asm | 307 - .../job_101_600/bin/20060420-1-0.asm | 662 - .../job_101_600/bin/20060905-1-0.asm | 325 - .../job_101_600/bin/20060910-1-0.asm | 342 - .../job_101_600/bin/20060929-1-0.asm | 416 - .../job_101_600/bin/20060930-1-0.asm | 332 - .../job_101_600/bin/20060930-2-0.asm | 314 - .../job_101_600/bin/20061031-1-0.asm | 326 - .../job_101_600/bin/20061101-1-0.asm | 323 - .../job_101_600/bin/20061101-2-0.asm | 324 - .../job_101_600/bin/20061220-1-0.asm | 455 - .../job_101_600/bin/20070201-1-0.asm | 307 - .../job_101_600/bin/20070212-1-0.asm | 320 - .../job_101_600/bin/20070212-2-0.asm | 305 - .../job_101_600/bin/20070212-3-0.asm | 335 - .../job_101_600/bin/20070424-1-0.asm | 316 - .../job_101_600/bin/20070517-1-0.asm | 326 - .../job_101_600/bin/20070614-1-0.asm | 381 - .../job_101_600/bin/20070623-1-0.asm | 545 - .../job_101_600/bin/20070724-1-0.asm | 288 - .../job_101_600/bin/20070824-1-0.asm | 325 - .../job_101_600/bin/20070919-1-0.asm | 502 - .../job_101_600/bin/20071011-1-0.asm | 311 - .../job_101_600/bin/20071018-1-0.asm | 324 - .../job_101_600/bin/20071029-1-0.asm | 410 - .../job_101_600/bin/20071030-1-0.asm | 359 - .../job_101_600/bin/20071108-1-0.asm | 370 - .../job_101_600/bin/20071120-1-0.asm | 404 - .../job_101_600/bin/20071202-1-0.asm | 421 - .../job_101_600/bin/20071205-1-0.asm | 298 - .../job_101_600/bin/20071210-1-0.asm | 449 - .../job_101_600/bin/20071211-1-0.asm | 298 - .../job_101_600/bin/20071213-1-0.asm | 529 - .../job_101_600/bin/20071216-1-0.asm | 325 - .../job_101_600/bin/20071219-1-0.asm | 483 - .../job_101_600/bin/20071220-1-0.asm | 331 - .../job_101_600/bin/20071220-2-0.asm | 328 - .../job_101_600/bin/20080117-1-0.asm | 306 - .../job_101_600/bin/20080122-1-0.asm | 367 - .../job_101_600/bin/20080222-1-0.asm | 302 - .../job_101_600/bin/20080408-1-0.asm | 289 - .../job_101_600/bin/20080424-1-0.asm | 345 - .../job_101_600/bin/20080502-1-0.asm | 314 - .../job_101_600/bin/20080506-1-0.asm | 301 - .../job_101_600/bin/20080506-2-0.asm | 317 - .../job_101_600/bin/20080519-1-0.asm | 397 - .../job_101_600/bin/20080522-1-0.asm | 353 - .../job_101_600/bin/20080529-1-0.asm | 300 - .../job_101_600/bin/20080604-1-0.asm | 332 - .../job_101_600/bin/20080719-1-0.asm | 364 - .../job_101_600/bin/20080813-1-0.asm | 313 - .../job_101_600/bin/20081103-1-0.asm | 322 - .../job_101_600/bin/20081112-1-0.asm | 294 - .../job_101_600/bin/20081117-1-0.asm | 305 - .../job_101_600/bin/20081218-1-0.asm | 346 - .../job_101_600/bin/20090113-1-0.asm | 432 - .../job_101_600/bin/20090113-2-0.asm | 591 - .../job_101_600/bin/20090113-3-0.asm | 544 - .../job_101_600/bin/20090207-1-0.asm | 309 - .../job_101_600/bin/20090219-1-0.asm | 322 - .../job_101_600/bin/20090527-1-0.asm | 319 - .../job_101_600/bin/20090623-1-0.asm | 307 - .../job_101_600/bin/20090711-1-0.asm | 298 - .../job_101_600/bin/20090814-1-0.asm | 311 - .../job_101_600/bin/20091229-1-0.asm | 297 - .../job_101_600/bin/20100209-1-0.asm | 292 - .../job_101_600/bin/20100316-1-0.asm | 303 - .../job_101_600/bin/20100416-1-0.asm | 352 - .../job_101_600/bin/20100430-1-0.asm | 361 - .../job_101_600/bin/20100708-1-0.asm | 330 - .../job_101_600/bin/20100805-1-0.asm | 302 - .../job_101_600/bin/20100827-1-0.asm | 310 - .../job_101_600/bin/20101011-1-0.asm | 290 - .../job_101_600/bin/20101013-1-0.asm | 342 - .../job_101_600/bin/20101025-1-0.asm | 318 - .../job_101_600/bin/20110418-1-0.asm | 342 - .../job_101_600/bin/20111208-1-0.asm | 386 - .../job_101_600/bin/20111212-1-0.asm | 322 - .../job_101_600/bin/20111227-1-0.asm | 322 - .../job_101_600/bin/20120105-1-0.asm | 317 - .../job_101_600/bin/20120111-1-0.asm | 295 - .../job_101_600/bin/20120207-1-0.asm | 311 - .../job_101_600/bin/20120427-1-0.asm | 401 - .../job_101_600/bin/20120427-2-0.asm | 403 - .../job_101_600/bin/20120615-1-0.asm | 299 - .../job_101_600/bin/20120808-1-0.asm | 360 - .../job_101_600/bin/20120817-1-0.asm | 300 - .../job_101_600/bin/20120919-1-0.asm | 378 - .../job_101_600/bin/20121108-1-0.asm | 395 - .../job_101_600/bin/20131127-1-0.asm | 348 - .../job_101_600/bin/20140212-1-0.asm | 360 - .../job_101_600/bin/20140212-2-0.asm | 303 - .../job_101_600/bin/20140326-1-0.asm | 297 - .../job_101_600/bin/20140425-1-0.asm | 309 - .../job_101_600/bin/20140622-1-0.asm | 336 - .../job_101_600/bin/20140828-1-0.asm | 324 - .../job_101_600/bin/20141022-1-0.asm | 333 - .../job_101_600/bin/20141107-1-0.asm | 348 - .../job_101_600/bin/20141125-1-0.asm | 305 - .../job_101_600/bin/20150611-1-0.asm | 320 - .../job_101_600/bin/20170111-1-0.asm | 325 - .../job_101_600/bin/20170401-1-0.asm | 356 - .../job_101_600/bin/20170401-2-0.asm | 319 - .../job_101_600/bin/20170419-1-0.asm | 302 - .../job_101_600/bin/20171008-1-0.asm | 325 - .../job_101_600/bin/20180112-1-0.asm | 319 - .../job_101_600/bin/20180131-1-0.asm | 308 - .../job_101_600/bin/20180226-1-0.asm | 338 - .../job_101_600/bin/900409-1-0.asm | 371 - .../job_101_600/bin/920202-1-0.asm | 296 - .../job_101_600/bin/920302-1-0.asm | 373 - .../job_101_600/bin/920409-1-0.asm | 291 - .../job_101_600/bin/920410-1-0.asm | 280 - .../job_101_600/bin/920411-1-0.asm | 344 - .../job_101_600/bin/920415-1-0.asm | 292 - .../job_101_600/bin/920428-1-0.asm | 321 - .../job_101_600/bin/920428-2-0.asm | 367 - .../job_101_600/bin/920429-1-0.asm | 316 - .../job_101_600/bin/920501-1-0.asm | 304 - .../job_101_600/bin/920501-2-0.asm | 493 - .../job_101_600/bin/920501-3-0.asm | 344 - .../job_101_600/bin/920501-4-0.asm | 316 - .../job_101_600/bin/920501-5-0.asm | 323 - .../job_101_600/bin/920501-6-0.asm | 454 - .../job_101_600/bin/920501-7-0.asm | 347 - .../job_101_600/bin/920501-8-0.asm | 581 - .../job_101_600/bin/920501-9-0.asm | 418 - .../job_101_600/bin/920506-1-0.asm | 305 - .../job_101_600/bin/920520-1-0.asm | 330 - .../job_101_600/bin/920603-1-0.asm | 297 - .../job_101_600/bin/920604-1-0.asm | 291 - .../job_101_600/bin/920612-1-0.asm | 293 - .../job_101_600/bin/920612-2-0.asm | 307 - .../job_101_600/bin/920618-1-0.asm | 275 - .../job_101_600/bin/920625-1-0.asm | 504 - .../job_101_600/bin/920710-1-0.asm | 275 - .../job_101_600/bin/920711-1-0.asm | 292 - .../job_101_600/bin/920721-1-0.asm | 296 - .../job_101_600/bin/920721-2-0.asm | 316 - .../job_101_600/bin/920721-3-0.asm | 353 - .../job_101_600/bin/920721-4-0.asm | 377 - .../job_101_600/bin/920726-1-0.asm | 506 - .../job_101_600/bin/920728-1-0.asm | 328 - .../job_101_600/bin/920730-1-0.asm | 331 - .../job_101_600/bin/920731-1-0.asm | 303 - .../job_101_600/bin/920810-1-0.asm | 337 - .../job_101_600/bin/920812-1-0.asm | 296 - .../job_101_600/bin/920829-1-0.asm | 292 - .../job_101_600/bin/920908-1-0.asm | 369 - .../job_101_600/bin/920908-2-0.asm | 309 - .../job_101_600/bin/920909-1-0.asm | 330 - .../job_101_600/bin/920922-1-0.asm | 309 - .../job_101_600/bin/920929-1-0.asm | 336 - .../job_101_600/bin/921006-1-0.asm | 275 - .../job_101_600/bin/921007-1-0.asm | 275 - .../job_101_600/bin/921013-1-0.asm | 376 - .../job_101_600/bin/921016-1-0.asm | 294 - .../job_101_600/bin/921017-1-0.asm | 357 - .../job_101_600/bin/921019-1-0.asm | 289 - .../job_101_600/bin/921019-2-0.asm | 298 - .../job_101_600/bin/921029-1-0.asm | 401 - .../job_101_600/bin/921104-1-0.asm | 277 - .../job_101_600/bin/921110-1-0.asm | 280 - .../job_101_600/bin/921112-1-0.asm | 308 - .../job_101_600/bin/921113-1-0.asm | 431 - .../job_101_600/bin/921117-1-0.asm | 316 - .../job_101_600/bin/921123-1-0.asm | 303 - .../job_101_600/bin/921123-2-0.asm | 307 - .../job_101_600/bin/921124-1-0.asm | 354 - .../job_101_600/bin/921202-1-0.asm | 388 - .../job_101_600/bin/921202-2-0.asm | 291 - .../job_101_600/bin/921204-1-0.asm | 319 - .../job_101_600/bin/921207-1-0.asm | 289 - .../job_101_600/bin/921208-1-0.asm | 321 - .../job_101_600/bin/921208-2-0.asm | 343 - .../job_101_600/bin/921215-1-0.asm | 352 - .../job_101_600/bin/921218-1-0.asm | 289 - .../job_101_600/bin/921218-2-0.asm | 294 - .../job_101_600/bin/930106-1-0.asm | 335 - .../job_101_600/bin/930111-1-0.asm | 349 - .../job_101_600/bin/930123-1-0.asm | 314 - .../job_101_600/bin/930126-1-0.asm | 306 - .../job_101_600/bin/930208-1-0.asm | 312 - .../job_101_600/bin/930406-1-0.asm | 295 - .../job_101_600/bin/930408-1-0.asm | 297 - .../job_101_600/bin/930429-1-0.asm | 306 - .../job_101_600/bin/930429-2-0.asm | 301 - .../job_101_600/bin/930513-1-0.asm | 308 - .../job_101_600/bin/930513-2-0.asm | 327 - .../job_101_600/bin/930518-1-0.asm | 323 - .../job_101_600/bin/930526-1-0.asm | 312 - .../job_101_600/bin/930527-1-0.asm | 294 - .../job_101_600/bin/930529-1-0.asm | 546 - .../job_101_600/bin/930603-1-0.asm | 377 - .../job_101_600/bin/930603-2-0.asm | 325 - .../job_101_600/bin/930603-3-0.asm | 332 - .../job_101_600/bin/930608-1-0.asm | 296 - .../job_101_600/bin/930614-1-0.asm | 331 - .../job_101_600/bin/930614-2-0.asm | 372 - .../job_101_600/bin/930621-1-0.asm | 298 - .../job_101_600/bin/930622-1-0.asm | 329 - .../job_101_600/bin/930622-2-0.asm | 320 - .../job_101_600/bin/930628-1-0.asm | 412 - .../job_101_600/bin/930630-1-0.asm | 299 - .../job_101_600/bin/930702-1-0.asm | 311 - .../job_101_600/bin/930713-1-0.asm | 300 - .../job_101_600/bin/930718-1-0.asm | 326 - .../job_101_600/bin/930719-1-0.asm | 307 - .../job_101_600/bin/930725-1-0.asm | 316 - .../job_101_600/bin/930818-1-0.asm | 308 - .../job_101_600/bin/930916-1-0.asm | 295 - .../job_101_600/bin/930921-1-0.asm | 309 - .../job_101_600/bin/930929-1-0.asm | 342 - .../job_101_600/bin/930930-1-0.asm | 333 - .../job_101_600/bin/930930-2-0.asm | 332 - .../job_101_600/bin/931002-1-0.asm | 341 - .../job_101_600/bin/931004-1-0.asm | 321 - .../job_101_600/bin/931004-10-0.asm | 396 - .../job_101_600/bin/931004-11-0.asm | 367 - .../job_101_600/bin/931004-12-0.asm | 419 - .../job_101_600/bin/931004-13-0.asm | 375 - .../job_101_600/bin/931004-14-0.asm | 418 - .../job_101_600/bin/931004-2-0.asm | 384 - .../job_101_600/bin/931004-3-0.asm | 321 - .../job_101_600/bin/931004-4-0.asm | 385 - .../job_101_600/bin/931004-5-0.asm | 339 - .../job_101_600/bin/931004-6-0.asm | 396 - .../job_101_600/bin/931004-7-0.asm | 321 - .../job_101_600/bin/931004-8-0.asm | 385 - .../job_101_600/bin/931004-9-0.asm | 339 - .../job_101_600/bin/931005-1-0.asm | 297 - .../job_101_600/bin/931009-1-0.asm | 336 - .../job_101_600/bin/931012-1-0.asm | 299 - .../job_101_600/bin/931017-1-0.asm | 358 - .../job_101_600/bin/931018-1-0.asm | 302 - .../job_101_600/bin/931031-1-0.asm | 302 - .../job_101_600/bin/931102-1-0.asm | 305 - .../job_101_600/bin/931102-2-0.asm | 305 - .../job_101_600/bin/931110-1-0.asm | 289 - .../job_101_600/bin/931110-2-0.asm | 295 - .../job_101_600/bin/931208-1-0.asm | 294 - .../job_101_600/bin/931228-1-0.asm | 294 - .../job_101_600/bin/940115-1-0.asm | 295 - .../job_101_600/bin/940122-1-0.asm | 320 - .../job_101_600/bin/941014-1-0.asm | 295 - .../job_101_600/bin/941014-2-0.asm | 320 - .../job_101_600/bin/941015-1-0.asm | 330 - .../job_101_600/bin/941021-1-0.asm | 311 - .../job_101_600/bin/941025-1-0.asm | 299 - .../job_101_600/cmd_worklist.txt | 1000 +- .../job_101_600/src/library/mini_stdlib.h | 18 +- .../job_1_100/bin/20000112-1-0.asm | 332 - .../job_1_100/bin/20000113-1-0.asm | 387 - .../job_1_100/bin/20000121-1-0.asm | 314 - .../job_1_100/bin/20000205-1-0.asm | 306 - .../job_1_100/bin/20000217-1-0.asm | 311 - .../job_1_100/bin/20000223-1-0.asm | 375 - .../job_1_100/bin/20000224-1-0.asm | 308 - .../job_1_100/bin/20000225-1-0.asm | 291 - .../job_1_100/bin/20000227-1-0.asm | 302 - .../job_1_100/bin/20000313-1-0.asm | 324 - .../job_1_100/bin/20000314-1-0.asm | 301 - .../job_1_100/bin/20000314-2-0.asm | 289 - .../job_1_100/bin/20000314-3-0.asm | 329 - .../job_1_100/bin/20000402-1-0.asm | 304 - .../job_1_100/bin/20000403-1-0.asm | 325 - .../job_1_100/bin/20000412-1-0.asm | 301 - .../job_1_100/bin/20000412-2-0.asm | 317 - .../job_1_100/bin/20000412-3-0.asm | 347 - .../job_1_100/bin/20000412-4-0.asm | 348 - .../job_1_100/bin/20000412-5-0.asm | 290 - .../job_1_100/bin/20000412-6-0.asm | 318 - .../job_1_100/bin/20000419-1-0.asm | 323 - .../job_1_100/bin/20000422-1-0.asm | 368 - .../job_1_100/bin/20000503-1-0.asm | 295 - .../job_1_100/bin/20000511-1-0.asm | 591 - .../job_1_100/bin/20000519-1-0.asm | 367 - .../job_1_100/bin/20000519-2-0.asm | 285 - .../job_1_100/bin/20000523-1-0.asm | 302 - .../job_1_100/bin/20000528-1-0.asm | 285 - .../job_1_100/bin/20000603-1-0.asm | 328 - .../job_1_100/bin/20000605-1-0.asm | 359 - .../job_1_100/bin/20000605-2-0.asm | 316 - .../job_1_100/bin/20000605-3-0.asm | 299 - .../job_1_100/bin/20000622-1-0.asm | 331 - .../job_1_100/bin/20000703-1-0.asm | 373 - .../job_1_100/bin/20000706-1-0.asm | 355 - .../job_1_100/bin/20000706-2-0.asm | 357 - .../job_1_100/bin/20000706-3-0.asm | 323 - .../job_1_100/bin/20000706-4-0.asm | 312 - .../job_1_100/bin/20000706-5-0.asm | 330 - .../job_1_100/bin/20000707-1-0.asm | 320 - .../job_1_100/bin/20000715-1-0.asm | 518 - .../job_1_100/bin/20000715-2-0.asm | 292 - .../job_1_100/bin/20000717-1-0.asm | 327 - .../job_1_100/bin/20000717-2-0.asm | 290 - .../job_1_100/bin/20000717-3-0.asm | 314 - .../job_1_100/bin/20000717-4-0.asm | 299 - .../job_1_100/bin/20000717-5-0.asm | 341 - .../job_1_100/bin/20000722-1-0.asm | 319 - .../job_1_100/bin/20000726-1-0.asm | 320 - .../job_1_100/bin/20000731-1-0.asm | 325 - .../job_1_100/bin/20000731-2-0.asm | 291 - .../job_1_100/bin/20000801-1-0.asm | 343 - .../job_1_100/bin/20000801-2-0.asm | 332 - .../job_1_100/bin/20000801-3-0.asm | 283 - .../job_1_100/bin/20000801-4-0.asm | 307 - .../job_1_100/bin/20000808-1-0.asm | 385 - .../job_1_100/bin/20000815-1-0.asm | 390 - .../job_1_100/bin/20000818-1-0.asm | 354 - .../job_1_100/bin/20000819-1-0.asm | 318 - .../job_1_100/bin/20000822-1-0.asm | 349 - .../job_1_100/bin/20000910-1-0.asm | 339 - .../job_1_100/bin/20000910-2-0.asm | 334 - .../job_1_100/bin/20000914-1-0.asm | 310 - .../job_1_100/bin/20000917-1-0.asm | 338 - .../job_1_100/bin/20001009-1-0.asm | 300 - .../job_1_100/bin/20001009-2-0.asm | 303 - .../job_1_100/bin/20001011-1-0.asm | 301 - .../job_1_100/bin/20001013-1-0.asm | 315 - .../job_1_100/bin/20001017-1-0.asm | 332 - .../job_1_100/bin/20001017-2-0.asm | 323 - .../job_1_100/bin/20001024-1-0.asm | 333 - .../job_1_100/bin/20001026-1-0.asm | 377 - .../job_1_100/bin/20001027-1-0.asm | 294 - .../job_1_100/bin/20001031-1-0.asm | 336 - .../job_1_100/bin/20001101-0.asm | 346 - .../job_1_100/bin/20001108-1-0.asm | 317 - .../job_1_100/bin/20001111-1-0.asm | 340 - .../job_1_100/bin/20001112-1-0.asm | 285 - .../job_1_100/bin/20001121-1-0.asm | 298 - .../job_1_100/bin/20001124-1-0.asm | 398 - .../job_1_100/bin/20001130-1-0.asm | 322 - .../job_1_100/bin/20001130-2-0.asm | 338 - .../job_1_100/bin/20001203-1-0.asm | 295 - .../job_1_100/bin/20001203-2-0.asm | 467 - .../job_1_100/bin/20001221-1-0.asm | 278 - .../job_1_100/bin/20001228-1-0.asm | 320 - .../job_1_100/bin/20001229-1-0.asm | 319 - .../job_1_100/bin/20010106-1-0.asm | 330 - .../job_1_100/bin/20010114-1-0.asm | 287 - .../job_1_100/bin/20010116-1-0.asm | 330 - .../job_1_100/bin/20010118-1-0.asm | 397 - .../job_1_100/bin/20010119-1-0.asm | 287 - .../job_1_100/bin/20010122-1-0.asm | 767 - .../job_1_100/bin/20010123-1-0.asm | 308 - .../job_1_100/bin/20010129-1-0.asm | 451 - .../job_1_100/bin/20010206-1-0.asm | 288 - .../job_1_100/bin/20010209-1-0.asm | 337 - .../job_1_100/bin/20010221-1-0.asm | 295 - .../job_1_100/bin/20010222-1-0.asm | 301 - .../gcc.c-torture/job_1_100/cmd_worklist.txt | 200 +- .../job_1_100/src/library/mini_stdlib.h | 18 +- .../job_601_1465/bin/941031-1-0.asm | 424 - .../job_601_1465/bin/941101-1-0.asm | 416 - .../job_601_1465/bin/941110-1-0.asm | 411 - .../job_601_1465/bin/941202-1-0.asm | 438 - .../job_601_1465/bin/950221-1-0.asm | 466 - .../job_601_1465/bin/950322-1-0.asm | 429 - .../job_601_1465/bin/950426-1-0.asm | 443 - .../job_601_1465/bin/950426-2-0.asm | 411 - .../job_601_1465/bin/950503-1-0.asm | 397 - .../job_601_1465/bin/950511-1-0.asm | 405 - .../job_601_1465/bin/950512-1-0.asm | 444 - .../job_601_1465/bin/950605-1-0.asm | 401 - .../job_601_1465/bin/950607-1-0.asm | 386 - .../job_601_1465/bin/950607-2-0.asm | 459 - .../job_601_1465/bin/950612-1-0.asm | 532 - .../job_601_1465/bin/950621-1-0.asm | 420 - .../job_601_1465/bin/950628-1-0.asm | 508 - .../job_601_1465/bin/950704-1-0.asm | 483 - .../job_601_1465/bin/950706-1-0.asm | 417 - .../job_601_1465/bin/950710-1-0.asm | 433 - .../job_601_1465/bin/950714-1-0.asm | 425 - .../job_601_1465/bin/950809-1-0.asm | 451 - .../job_601_1465/bin/950906-1-0.asm | 415 - .../job_601_1465/bin/950915-1-0.asm | 408 - .../job_601_1465/bin/950929-1-0.asm | 432 - .../job_601_1465/bin/951003-1-0.asm | 424 - .../job_601_1465/bin/951115-1-0.asm | 415 - .../job_601_1465/bin/951204-1-0.asm | 415 - .../job_601_1465/bin/960116-1-0.asm | 423 - .../job_601_1465/bin/960117-1-0.asm | 432 - .../job_601_1465/bin/960209-1-0.asm | 475 - .../job_601_1465/bin/960215-1-0.asm | 499 - .../job_601_1465/bin/960218-1-0.asm | 425 - .../job_601_1465/bin/960219-1-0.asm | 399 - .../job_601_1465/bin/960301-1-0.asm | 418 - .../job_601_1465/bin/960302-1-0.asm | 477 - .../job_601_1465/bin/960311-1-0.asm | 489 - .../job_601_1465/bin/960311-2-0.asm | 489 - .../job_601_1465/bin/960311-3-0.asm | 491 - .../job_601_1465/bin/960312-1-0.asm | 453 - .../job_601_1465/bin/960317-1-0.asm | 424 - .../job_601_1465/bin/960321-1-0.asm | 406 - .../job_601_1465/bin/960326-1-0.asm | 399 - .../job_601_1465/bin/960327-1-0.asm | 431 - .../job_601_1465/bin/960402-1-0.asm | 408 - .../job_601_1465/bin/960405-1-0.asm | 403 - .../job_601_1465/bin/960416-1-0.asm | 571 - .../job_601_1465/bin/960419-1-0.asm | 406 - .../job_601_1465/bin/960419-2-0.asm | 407 - .../job_601_1465/bin/960512-1-0.asm | 441 - .../job_601_1465/bin/960513-1-0.asm | 448 - .../job_601_1465/bin/960521-1-0.asm | 447 - .../job_601_1465/bin/960608-1-0.asm | 451 - .../job_601_1465/bin/960801-1-0.asm | 422 - .../job_601_1465/bin/960802-1-0.asm | 442 - .../job_601_1465/bin/960830-1-0.asm | 384 - .../job_601_1465/bin/960909-1-0.asm | 431 - .../job_601_1465/bin/961004-1-0.asm | 409 - .../job_601_1465/bin/961017-1-0.asm | 390 - .../job_601_1465/bin/961017-2-0.asm | 396 - .../job_601_1465/bin/961026-1-0.asm | 415 - .../job_601_1465/bin/961112-1-0.asm | 408 - .../job_601_1465/bin/961122-1-0.asm | 432 - .../job_601_1465/bin/961122-2-0.asm | 408 - .../job_601_1465/bin/961125-1-0.asm | 460 - .../job_601_1465/bin/961206-1-0.asm | 464 - .../job_601_1465/bin/961213-1-0.asm | 441 - .../job_601_1465/bin/961223-1-0.asm | 427 - .../job_601_1465/bin/970214-1-0.asm | 384 - .../job_601_1465/bin/970214-2-0.asm | 384 - .../job_601_1465/bin/970217-1-0.asm | 407 - .../job_601_1465/bin/970923-1-0.asm | 429 - .../job_601_1465/bin/980205-0.asm | 470 - .../job_601_1465/bin/980223-0.asm | 474 - .../job_601_1465/bin/980424-1-0.asm | 416 - .../job_601_1465/bin/980505-1-0.asm | 409 - .../job_601_1465/bin/980505-2-0.asm | 406 - .../job_601_1465/bin/980506-1-0.asm | 405 - .../job_601_1465/bin/980506-2-0.asm | 424 - .../job_601_1465/bin/980506-3-0.asm | 418 - .../job_601_1465/bin/980526-1-0.asm | 446 - .../job_601_1465/bin/980526-2-0.asm | 541 - .../job_601_1465/bin/980526-3-0.asm | 434 - .../job_601_1465/bin/980602-1-0.asm | 396 - .../job_601_1465/bin/980602-2-0.asm | 400 - .../job_601_1465/bin/980604-1-0.asm | 427 - .../job_601_1465/bin/980605-1-0.asm | 517 - .../job_601_1465/bin/980608-1-0.asm | 594 - .../job_601_1465/bin/980612-1-0.asm | 421 - .../job_601_1465/bin/980617-1-0.asm | 411 - .../job_601_1465/bin/980618-1-0.asm | 407 - .../job_601_1465/bin/980701-1-0.asm | 430 - .../job_601_1465/bin/980707-1-0.asm | 487 - .../job_601_1465/bin/980709-1-0.asm | 421 - .../job_601_1465/bin/980716-1-0.asm | 469 - .../job_601_1465/bin/980929-1-0.asm | 416 - .../job_601_1465/bin/981001-1-0.asm | 473 - .../job_601_1465/bin/981019-1-0.asm | 458 - .../job_601_1465/bin/981130-1-0.asm | 419 - .../job_601_1465/bin/981206-1-0.asm | 406 - .../job_601_1465/bin/990106-1-0.asm | 417 - .../job_601_1465/bin/990106-2-0.asm | 420 - .../job_601_1465/bin/990117-1-0.asm | 420 - .../job_601_1465/bin/990127-1-0.asm | 459 - .../job_601_1465/bin/990127-2-0.asm | 440 - .../job_601_1465/bin/990128-1-0.asm | 479 - .../job_601_1465/bin/990130-1-0.asm | 415 - .../job_601_1465/bin/990208-1-0.asm | 441 - .../job_601_1465/bin/990211-1-0.asm | 494 - .../job_601_1465/bin/990222-1-0.asm | 420 - .../job_601_1465/bin/990324-1-0.asm | 404 - .../job_601_1465/bin/990326-1-0.asm | 1969 - .../job_601_1465/bin/990404-1-0.asm | 432 - .../job_601_1465/bin/990413-2-0.asm | 0 .../job_601_1465/bin/990513-1-0.asm | 442 - .../job_601_1465/bin/990524-1-0.asm | 449 - .../job_601_1465/bin/990525-1-0.asm | 424 - .../job_601_1465/bin/990525-2-0.asm | 447 - .../job_601_1465/bin/990527-1-0.asm | 425 - .../job_601_1465/bin/990531-1-0.asm | 407 - .../job_601_1465/bin/990604-1-0.asm | 411 - .../job_601_1465/bin/990628-1-0.asm | 470 - .../job_601_1465/bin/990804-1-0.asm | 420 - .../job_601_1465/bin/990811-1-0.asm | 465 - .../job_601_1465/bin/990826-0-0.asm | 385 - .../job_601_1465/bin/990827-1-0.asm | 425 - .../job_601_1465/bin/990829-1-0.asm | 434 - .../job_601_1465/bin/990923-1-0.asm | 414 - .../job_601_1465/bin/991014-1-0.asm | 430 - .../job_601_1465/bin/991016-1-0.asm | 498 - .../job_601_1465/bin/991019-1-0.asm | 429 - .../job_601_1465/bin/991023-1-0.asm | 412 - .../job_601_1465/bin/991030-1-0.asm | 404 - .../job_601_1465/bin/991112-1-0.asm | 430 - .../job_601_1465/bin/991118-1-0.asm | 580 - .../job_601_1465/bin/991201-1-0.asm | 463 - .../job_601_1465/bin/991202-1-0.asm | 401 - .../job_601_1465/bin/991202-2-0.asm | 403 - .../job_601_1465/bin/991202-3-0.asm | 424 - .../job_601_1465/bin/991216-1-0.asm | 693 - .../job_601_1465/bin/991216-2-0.asm | 572 - .../job_601_1465/bin/991216-4-0.asm | 411 - .../job_601_1465/bin/991221-1-0.asm | 387 - .../job_601_1465/bin/991227-1-0.asm | 421 - .../job_601_1465/bin/991228-1-0.asm | 426 - .../job_601_1465/bin/alias-1-0.asm | 414 - .../job_601_1465/bin/alias-2-0.asm | 406 - .../job_601_1465/bin/alias-3-0.asm | 405 - .../job_601_1465/bin/alias-4-0.asm | 418 - .../job_601_1465/bin/align-1-0.asm | 385 - .../job_601_1465/bin/align-2-0.asm | 715 - .../job_601_1465/bin/align-3-0.asm | 392 - .../job_601_1465/bin/align-nest-0.asm | 522 - .../job_601_1465/bin/alloca-1-0.asm | 423 - .../job_601_1465/bin/anon-1-0.asm | 396 - .../job_601_1465/bin/arith-1-0.asm | 478 - .../job_601_1465/bin/arith-rand-0.asm | 760 - .../job_601_1465/bin/arith-rand-ll-0.asm | 770 - .../job_601_1465/bin/ashldi-1-0.asm | 777 - .../job_601_1465/bin/ashrdi-1-0.asm | 882 - .../job_601_1465/bin/bcp-1-0.asm | 620 - .../job_601_1465/bin/bf-layout-1-0.asm | 386 - .../job_601_1465/bin/bf-pack-1-0.asm | 419 - .../job_601_1465/bin/bf-sign-1-0.asm | 412 - .../job_601_1465/bin/bf-sign-2-0.asm | 431 - .../job_601_1465/bin/bf64-1-0.asm | 484 - .../job_601_1465/bin/bitfld-1-0.asm | 470 - .../job_601_1465/bin/bitfld-2-0.asm | 384 - .../job_601_1465/bin/bitfld-3-0.asm | 872 - .../job_601_1465/bin/bitfld-4-0.asm | 404 - .../job_601_1465/bin/bitfld-5-0.asm | 458 - .../job_601_1465/bin/bitfld-6-0.asm | 391 - .../job_601_1465/bin/bitfld-7-0.asm | 391 - .../job_601_1465/bin/bswap-1-0.asm | 504 - .../job_601_1465/bin/bswap-2-0.asm | 659 - .../job_601_1465/bin/built-in-setjmp-0.asm | 485 - .../job_601_1465/bin/builtin-bitops-1-0.asm | 2158 - .../job_601_1465/bin/builtin-constant-0.asm | 402 - .../job_601_1465/bin/builtin-prefetch-1-0.asm | 469 - .../job_601_1465/bin/builtin-prefetch-2-0.asm | 625 - .../job_601_1465/bin/builtin-prefetch-3-0.asm | 569 - .../job_601_1465/bin/builtin-prefetch-4-0.asm | 987 - .../job_601_1465/bin/builtin-prefetch-5-0.asm | 465 - .../job_601_1465/bin/builtin-prefetch-6-0.asm | 451 - .../bin/builtin-types-compatible-p-0.asm | 387 - .../job_601_1465/bin/call-trap-1-0.asm | 399 - .../gcc.c-torture/job_601_1465/bin/cbrt-0.asm | 604 - .../job_601_1465/bin/cmpdi-1-0.asm | 1372 - .../job_601_1465/bin/cmpsf-1-0.asm | 993 - .../job_601_1465/bin/cmpsi-1-0.asm | 441 - .../job_601_1465/bin/cmpsi-2-0.asm | 1362 - .../job_601_1465/bin/comp-goto-1-0.asm | 665 - .../job_601_1465/bin/comp-goto-2-0.asm | 461 - .../job_601_1465/bin/compare-1-0.asm | 652 - .../job_601_1465/bin/compare-2-0.asm | 412 - .../job_601_1465/bin/compare-3-0.asm | 562 - .../job_601_1465/bin/complex-1-0.asm | 499 - .../job_601_1465/bin/complex-2-0.asm | 522 - .../job_601_1465/bin/complex-3-0.asm | 424 - .../job_601_1465/bin/complex-4-0.asm | 384 - .../job_601_1465/bin/complex-5-0.asm | 513 - .../job_601_1465/bin/complex-6-0.asm | 813 - .../job_601_1465/bin/complex-7-0.asm | 964 - .../job_601_1465/bin/compndlit-1-0.asm | 423 - .../job_601_1465/bin/const-addr-expr-1-0.asm | 424 - .../job_601_1465/bin/conversion-0.asm | 2156 - .../job_601_1465/bin/cvt-1-0.asm | 475 - .../job_601_1465/bin/dbra-1-0.asm | 579 - .../job_601_1465/bin/divcmp-1-0.asm | 1265 - .../job_601_1465/bin/divcmp-2-0.asm | 601 - .../job_601_1465/bin/divcmp-3-0.asm | 597 - .../job_601_1465/bin/divcmp-4-0.asm | 873 - .../job_601_1465/bin/divcmp-5-0.asm | 413 - .../job_601_1465/bin/divconst-1-0.asm | 432 - .../job_601_1465/bin/divconst-2-0.asm | 470 - .../job_601_1465/bin/divconst-3-0.asm | 411 - .../job_601_1465/bin/divmod-1-0.asm | 570 - .../job_601_1465/bin/doloop-1-0.asm | 399 - .../job_601_1465/bin/doloop-2-0.asm | 399 - .../job_601_1465/bin/eeprof-1-0.asm | 755 - .../job_601_1465/bin/enum-1-0.asm | 434 - .../job_601_1465/bin/enum-2-0.asm | 396 - .../job_601_1465/bin/enum-3-0.asm | 399 - .../job_601_1465/bin/extzvsi-0.asm | 418 - .../job_601_1465/bin/ffs-1-0.asm | 398 - .../job_601_1465/bin/ffs-2-0.asm | 427 - .../job_601_1465/bin/float-floor-0.asm | 415 - .../job_601_1465/bin/floatunsisf-1-0.asm | 422 - .../job_601_1465/bin/fprintf-1-0.asm | 557 - .../job_601_1465/bin/fprintf-chk-1-0.asm | 750 - .../job_601_1465/bin/frame-address-0.asm | 510 - .../job_601_1465/bin/func-ptr-1-0.asm | 416 - .../job_601_1465/bin/gofast-0.asm | 1225 - .../bin/ifcvt-onecmpl-abs-1-0.asm | 403 - .../job_601_1465/bin/index-1-0.asm | 444 - .../job_601_1465/bin/inst-check-0.asm | 403 - .../job_601_1465/bin/int-compare-0.asm | 803 - .../job_601_1465/bin/ipa-sra-1-0.asm | 413 - .../job_601_1465/bin/ipa-sra-2-0.asm | 422 - .../job_601_1465/bin/longlong-0.asm | 445 - .../job_601_1465/bin/loop-1-0.asm | 416 - .../job_601_1465/bin/loop-10-0.asm | 418 - .../job_601_1465/bin/loop-11-0.asm | 420 - .../job_601_1465/bin/loop-12-0.asm | 431 - .../job_601_1465/bin/loop-13-0.asm | 479 - .../job_601_1465/bin/loop-14-0.asm | 420 - .../job_601_1465/bin/loop-15-0.asm | 514 - .../job_601_1465/bin/loop-2-0.asm | 421 - .../job_601_1465/bin/loop-2b-0.asm | 426 - .../job_601_1465/bin/loop-2c-0.asm | 449 - .../job_601_1465/bin/loop-2d-0.asm | 434 - .../job_601_1465/bin/loop-2e-0.asm | 437 - .../job_601_1465/bin/loop-2f-0.asm | 425 - .../job_601_1465/bin/loop-2g-0.asm | 425 - .../job_601_1465/bin/loop-3-0.asm | 434 - .../job_601_1465/bin/loop-3b-0.asm | 428 - .../job_601_1465/bin/loop-3c-0.asm | 436 - .../job_601_1465/bin/loop-4-0.asm | 406 - .../job_601_1465/bin/loop-4b-0.asm | 404 - .../job_601_1465/bin/loop-5-0.asm | 471 - .../job_601_1465/bin/loop-6-0.asm | 409 - .../job_601_1465/bin/loop-7-0.asm | 419 - .../job_601_1465/bin/loop-8-0.asm | 453 - .../job_601_1465/bin/loop-9-0.asm | 410 - .../job_601_1465/bin/loop-ivopts-1-0.asm | 475 - .../job_601_1465/bin/loop-ivopts-2-0.asm | 481 - .../job_601_1465/bin/lshrdi-1-0.asm | 777 - .../job_601_1465/bin/lto-tbaa-1-0.asm | 451 - .../job_601_1465/bin/mayalias-1-0.asm | 399 - .../job_601_1465/bin/mayalias-2-0.asm | 412 - .../job_601_1465/bin/mayalias-3-0.asm | 426 - .../job_601_1465/bin/medce-1-0.asm | 419 - .../job_601_1465/bin/memcpy-1-0.asm | 514 - .../job_601_1465/bin/memcpy-2-0.asm | 509 - .../job_601_1465/bin/memcpy-bi-0.asm | 1376 - .../job_601_1465/bin/memset-1-0.asm | 608 - .../job_601_1465/bin/memset-2-0.asm | 1547 - .../job_601_1465/bin/memset-3-0.asm | 973 - .../job_601_1465/bin/memset-4-0.asm | 439 - .../job_601_1465/bin/mod-1-0.asm | 406 - .../bin/mode-dependent-address-0.asm | 615 - .../job_601_1465/bin/multdi-1-0.asm | 406 - .../job_601_1465/bin/multi-ix-0.asm | 1110 - .../job_601_1465/bin/nest-align-1-0.asm | 457 - .../job_601_1465/bin/nest-stdar-1-0.asm | 470 - .../job_601_1465/bin/nestfunc-1-0.asm | 454 - .../job_601_1465/bin/nestfunc-2-0.asm | 499 - .../job_601_1465/bin/nestfunc-3-0.asm | 546 - .../job_601_1465/bin/nestfunc-4-0.asm | 428 - .../job_601_1465/bin/nestfunc-5-0.asm | 469 - .../job_601_1465/bin/nestfunc-6-0.asm | 430 - .../job_601_1465/bin/nestfunc-7-0.asm | 466 - .../job_601_1465/bin/p18298-0.asm | 424 - .../job_601_1465/bin/packed-1-0.asm | 406 - .../job_601_1465/bin/packed-2-0.asm | 387 - .../job_601_1465/bin/pending-4-0.asm | 438 - .../job_601_1465/bin/postmod-1-0.asm | 680 - .../job_601_1465/bin/pr15262-0.asm | 468 - .../job_601_1465/bin/pr15262-1-0.asm | 450 - .../job_601_1465/bin/pr15262-2-0.asm | 441 - .../job_601_1465/bin/pr15296-0.asm | 543 - .../job_601_1465/bin/pr16790-1-0.asm | 445 - .../job_601_1465/bin/pr17078-1-0.asm | 418 - .../job_601_1465/bin/pr17133-0.asm | 431 - .../job_601_1465/bin/pr17252-0.asm | 396 - .../job_601_1465/bin/pr17377-0.asm | 462 - .../job_601_1465/bin/pr19005-0.asm | 470 - .../job_601_1465/bin/pr19449-0.asm | 412 - .../job_601_1465/bin/pr19515-0.asm | 400 - .../job_601_1465/bin/pr19606-0.asm | 429 - .../job_601_1465/bin/pr19687-0.asm | 410 - .../job_601_1465/bin/pr19689-0.asm | 412 - .../job_601_1465/bin/pr20100-1-0.asm | 510 - .../job_601_1465/bin/pr20187-1-0.asm | 421 - .../job_601_1465/bin/pr20466-1-0.asm | 457 - .../job_601_1465/bin/pr20527-1-0.asm | 456 - .../job_601_1465/bin/pr20601-1-0.asm | 621 - .../job_601_1465/bin/pr20621-1-0.asm | 420 - .../job_601_1465/bin/pr21173-0.asm | 429 - .../job_601_1465/bin/pr21331-0.asm | 415 - .../job_601_1465/bin/pr21964-1-0.asm | 415 - .../job_601_1465/bin/pr22061-1-0.asm | 461 - .../job_601_1465/bin/pr22061-2-0.asm | 402 - .../job_601_1465/bin/pr22061-3-0.asm | 447 - .../job_601_1465/bin/pr22061-4-0.asm | 521 - .../job_601_1465/bin/pr22098-1-0.asm | 414 - .../job_601_1465/bin/pr22098-2-0.asm | 408 - .../job_601_1465/bin/pr22098-3-0.asm | 427 - .../job_601_1465/bin/pr22141-1-0.asm | 585 - .../job_601_1465/bin/pr22141-2-0.asm | 585 - .../job_601_1465/bin/pr22348-0.asm | 411 - .../job_601_1465/bin/pr22429-0.asm | 407 - .../job_601_1465/bin/pr22493-1-0.asm | 407 - .../job_601_1465/bin/pr22630-0.asm | 414 - .../job_601_1465/bin/pr23047-0.asm | 406 - .../job_601_1465/bin/pr23135-0.asm | 922 - .../job_601_1465/bin/pr23324-0.asm | 770 - .../job_601_1465/bin/pr23467-0.asm | 391 - .../job_601_1465/bin/pr23604-0.asm | 414 - .../job_601_1465/bin/pr23941-0.asm | 406 - .../job_601_1465/bin/pr24135-0.asm | 482 - .../job_601_1465/bin/pr24141-0.asm | 433 - .../job_601_1465/bin/pr24142-0.asm | 415 - .../job_601_1465/bin/pr24716-0.asm | 473 - .../job_601_1465/bin/pr24851-0.asm | 406 - .../job_601_1465/bin/pr25125-0.asm | 408 - .../job_601_1465/bin/pr25737-0.asm | 405 - .../job_601_1465/bin/pr27073-0.asm | 479 - .../job_601_1465/bin/pr27260-0.asm | 455 - .../job_601_1465/bin/pr27285-0.asm | 485 - .../job_601_1465/bin/pr27364-0.asm | 411 - .../job_601_1465/bin/pr27671-1-0.asm | 404 - .../job_601_1465/bin/pr28289-0.asm | 427 - .../job_601_1465/bin/pr28403-0.asm | 443 - .../job_601_1465/bin/pr28651-0.asm | 410 - .../job_601_1465/bin/pr28778-0.asm | 435 - .../job_601_1465/bin/pr28865-0.asm | 433 - .../job_601_1465/bin/pr28982a-0.asm | 809 - .../job_601_1465/bin/pr28982b-0.asm | 843 - .../job_601_1465/bin/pr29006-0.asm | 412 - .../job_601_1465/bin/pr29156-0.asm | 420 - .../job_601_1465/bin/pr29695-1-0.asm | 518 - .../job_601_1465/bin/pr29695-2-0.asm | 525 - .../job_601_1465/bin/pr29797-1-0.asm | 405 - .../job_601_1465/bin/pr29797-2-0.asm | 405 - .../job_601_1465/bin/pr29798-0.asm | 427 - .../job_601_1465/bin/pr30185-0.asm | 447 - .../job_601_1465/bin/pr30778-0.asm | 416 - .../job_601_1465/bin/pr31072-0.asm | 395 - .../job_601_1465/bin/pr31136-0.asm | 417 - .../job_601_1465/bin/pr31169-0.asm | 468 - .../job_601_1465/bin/pr31448-0.asm | 470 - .../job_601_1465/bin/pr31448-2-0.asm | 475 - .../job_601_1465/bin/pr31605-0.asm | 407 - .../job_601_1465/bin/pr32244-1-0.asm | 411 - .../job_601_1465/bin/pr32500-0.asm | 433 - .../job_601_1465/bin/pr33142-0.asm | 427 - .../job_601_1465/bin/pr33382-0.asm | 407 - .../job_601_1465/bin/pr33631-0.asm | 392 - .../job_601_1465/bin/pr33669-0.asm | 467 - .../job_601_1465/bin/pr33779-1-0.asm | 408 - .../job_601_1465/bin/pr33779-2-0.asm | 405 - .../job_601_1465/bin/pr33870-0.asm | 580 - .../job_601_1465/bin/pr33870-1-0.asm | 593 - .../job_601_1465/bin/pr33992-0.asm | 447 - .../job_601_1465/bin/pr34070-1-0.asm | 404 - .../job_601_1465/bin/pr34070-2-0.asm | 406 - .../job_601_1465/bin/pr34099-0.asm | 408 - .../job_601_1465/bin/pr34099-2-0.asm | 482 - .../job_601_1465/bin/pr34130-0.asm | 412 - .../job_601_1465/bin/pr34154-0.asm | 413 - .../job_601_1465/bin/pr34176-0.asm | 459 - .../job_601_1465/bin/pr34415-0.asm | 455 - .../job_601_1465/bin/pr34456-0.asm | 458 - .../job_601_1465/bin/pr34768-1-0.asm | 431 - .../job_601_1465/bin/pr34768-2-0.asm | 434 - .../job_601_1465/bin/pr34971-0.asm | 426 - .../job_601_1465/bin/pr34982-0.asm | 400 - .../job_601_1465/bin/pr35163-0.asm | 395 - .../job_601_1465/bin/pr35231-0.asm | 408 - .../job_601_1465/bin/pr35390-0.asm | 401 - .../job_601_1465/bin/pr35456-0.asm | 429 - .../job_601_1465/bin/pr35472-0.asm | 470 - .../job_601_1465/bin/pr35800-0.asm | 635 - .../job_601_1465/bin/pr36034-1-0.asm | 638 - .../job_601_1465/bin/pr36034-2-0.asm | 637 - .../job_601_1465/bin/pr36038-0.asm | 490 - .../job_601_1465/bin/pr36077-0.asm | 399 - .../job_601_1465/bin/pr36093-0.asm | 422 - .../job_601_1465/bin/pr36321-0.asm | 448 - .../job_601_1465/bin/pr36339-0.asm | 443 - .../job_601_1465/bin/pr36343-0.asm | 454 - .../job_601_1465/bin/pr36691-0.asm | 409 - .../job_601_1465/bin/pr36765-0.asm | 412 - .../job_601_1465/bin/pr37102-0.asm | 434 - .../job_601_1465/bin/pr37125-0.asm | 428 - .../job_601_1465/bin/pr37573-0.asm | 626 - .../job_601_1465/bin/pr37780-0.asm | 502 - .../job_601_1465/bin/pr37882-0.asm | 402 - .../job_601_1465/bin/pr37924-0.asm | 465 - .../job_601_1465/bin/pr37931-0.asm | 424 - .../job_601_1465/bin/pr38048-1-0.asm | 426 - .../job_601_1465/bin/pr38048-2-0.asm | 442 - .../job_601_1465/bin/pr38051-0.asm | 925 - .../job_601_1465/bin/pr38051-0.asm.asm | 0 .../job_601_1465/bin/pr38151-0.asm | 498 - .../job_601_1465/bin/pr38212-0.asm | 433 - .../job_601_1465/bin/pr38236-0.asm | 431 - .../job_601_1465/bin/pr38422-0.asm | 418 - .../job_601_1465/bin/pr38533-0.asm | 1610 - .../job_601_1465/bin/pr38819-0.asm | 431 - .../job_601_1465/bin/pr38969-0.asm | 471 - .../job_601_1465/bin/pr39100-0.asm | 511 - .../job_601_1465/bin/pr39120-0.asm | 426 - .../job_601_1465/bin/pr39228-0.asm | 461 - .../job_601_1465/bin/pr39233-0.asm | 416 - .../job_601_1465/bin/pr39240-0.asm | 577 - .../job_601_1465/bin/pr39339-0.asm | 557 - .../job_601_1465/bin/pr39501-0.asm | 971 - .../job_601_1465/bin/pr40022-0.asm | 476 - .../job_601_1465/bin/pr40057-0.asm | 445 - .../job_601_1465/bin/pr40386-0.asm | 727 - .../job_601_1465/bin/pr40404-0.asm | 395 - .../job_601_1465/bin/pr40493-0.asm | 438 - .../job_601_1465/bin/pr40579-0.asm | 424 - .../job_601_1465/bin/pr40657-0.asm | 424 - .../job_601_1465/bin/pr40668-0.asm | 464 - .../job_601_1465/bin/pr40747-0.asm | 443 - .../job_601_1465/bin/pr41239-0.asm | 533 - .../job_601_1465/bin/pr41317-0.asm | 412 - .../job_601_1465/bin/pr41395-1-0.asm | 418 - .../job_601_1465/bin/pr41395-2-0.asm | 418 - .../job_601_1465/bin/pr41463-0.asm | 421 - .../job_601_1465/bin/pr41750-0.asm | 466 - .../job_601_1465/bin/pr41917-0.asm | 411 - .../job_601_1465/bin/pr41919-0.asm | 479 - .../job_601_1465/bin/pr41935-0.asm | 489 - .../job_601_1465/bin/pr42006-0.asm | 459 - .../job_601_1465/bin/pr42142-0.asm | 435 - .../job_601_1465/bin/pr42154-0.asm | 421 - .../job_601_1465/bin/pr42231-0.asm | 470 - .../job_601_1465/bin/pr42248-0.asm | 461 - .../job_601_1465/bin/pr42269-2-0.asm | 405 - .../job_601_1465/bin/pr42512-0.asm | 407 - .../job_601_1465/bin/pr42544-0.asm | 386 - .../job_601_1465/bin/pr42570-0.asm | 386 - .../job_601_1465/bin/pr42614-0.asm | 475 - .../job_601_1465/bin/pr42691-0.asm | 487 - .../job_601_1465/bin/pr42721-0.asm | 421 - .../job_601_1465/bin/pr42833-0.asm | 619 - .../job_601_1465/bin/pr43008-0.asm | 417 - .../job_601_1465/bin/pr43220-0.asm | 530 - .../job_601_1465/bin/pr43236-0.asm | 449 - .../job_601_1465/bin/pr43269-0.asm | 419 - .../job_601_1465/bin/pr43385-0.asm | 556 - .../job_601_1465/bin/pr43438-0.asm | 431 - .../job_601_1465/bin/pr43560-0.asm | 430 - .../job_601_1465/bin/pr43629-0.asm | 401 - .../job_601_1465/bin/pr43783-0.asm | 420 - .../job_601_1465/bin/pr43784-0.asm | 472 - .../job_601_1465/bin/pr43835-0.asm | 455 - .../job_601_1465/bin/pr43987-0.asm | 419 - .../job_601_1465/bin/pr44164-0.asm | 408 - .../job_601_1465/bin/pr44202-1-0.asm | 447 - .../job_601_1465/bin/pr44468-0.asm | 450 - .../job_601_1465/bin/pr44555-0.asm | 406 - .../job_601_1465/bin/pr44575-0.asm | 525 - .../job_601_1465/bin/pr44683-0.asm | 450 - .../job_601_1465/bin/pr44828-0.asm | 415 - .../job_601_1465/bin/pr44852-0.asm | 459 - .../job_601_1465/bin/pr44858-0.asm | 440 - .../job_601_1465/bin/pr44942-0.asm | 720 - .../job_601_1465/bin/pr45034-0.asm | 485 - .../job_601_1465/bin/pr45070-0.asm | 467 - .../job_601_1465/bin/pr45262-0.asm | 461 - .../job_601_1465/bin/pr45695-0.asm | 447 - .../job_601_1465/bin/pr46019-0.asm | 407 - .../job_601_1465/bin/pr46309-0.asm | 443 - .../job_601_1465/bin/pr46316-0.asm | 405 - .../job_601_1465/bin/pr46909-1-0.asm | 430 - .../job_601_1465/bin/pr46909-2-0.asm | 439 - .../job_601_1465/bin/pr47148-0.asm | 466 - .../job_601_1465/bin/pr47155-0.asm | 412 - .../job_601_1465/bin/pr47237-0.asm | 476 - .../job_601_1465/bin/pr47299-0.asm | 403 - .../job_601_1465/bin/pr47337-0.asm | 606 - .../job_601_1465/bin/pr47538-0.asm | 809 - .../job_601_1465/bin/pr47925-0.asm | 434 - .../job_601_1465/bin/pr48197-0.asm | 392 - .../job_601_1465/bin/pr48571-1-0.asm | 436 - .../job_601_1465/bin/pr48717-0.asm | 427 - .../job_601_1465/bin/pr48809-0.asm | 717 - .../job_601_1465/bin/pr48814-1-0.asm | 427 - .../job_601_1465/bin/pr48814-2-0.asm | 427 - .../job_601_1465/bin/pr48973-1-0.asm | 422 - .../job_601_1465/bin/pr48973-2-0.asm | 409 - .../job_601_1465/bin/pr49039-0.asm | 429 - .../job_601_1465/bin/pr49073-0.asm | 427 - .../job_601_1465/bin/pr49123-0.asm | 408 - .../job_601_1465/bin/pr49161-0.asm | 454 - .../job_601_1465/bin/pr49186-0.asm | 405 - .../job_601_1465/bin/pr49218-0.asm | 408 - .../job_601_1465/bin/pr49279-0.asm | 447 - .../job_601_1465/bin/pr49281-0.asm | 435 - .../job_601_1465/bin/pr49390-0.asm | 614 - .../job_601_1465/bin/pr49419-0.asm | 519 - .../job_601_1465/bin/pr49644-0.asm | 501 - .../job_601_1465/bin/pr49712-0.asm | 452 - .../job_601_1465/bin/pr49768-0.asm | 395 - .../job_601_1465/bin/pr49886-0.asm | 698 - .../job_601_1465/bin/pr50865-0.asm | 419 - .../job_601_1465/bin/pr51023-0.asm | 403 - .../job_601_1465/bin/pr51323-0.asm | 468 - .../job_601_1465/bin/pr51447-0.asm | 433 - .../job_601_1465/bin/pr51466-0.asm | 487 - .../job_601_1465/bin/pr51581-1-0.asm | 986 - .../job_601_1465/bin/pr51581-2-0.asm | 1152 - .../job_601_1465/bin/pr51877-0.asm | 594 - .../job_601_1465/bin/pr51933-0.asm | 527 - .../job_601_1465/bin/pr52129-0.asm | 467 - .../job_601_1465/bin/pr52209-0.asm | 398 - .../job_601_1465/bin/pr52286-0.asm | 397 - .../job_601_1465/bin/pr52760-0.asm | 526 - .../job_601_1465/bin/pr52979-1-0.asm | 478 - .../job_601_1465/bin/pr52979-2-0.asm | 478 - .../job_601_1465/bin/pr53084-0.asm | 419 - .../job_601_1465/bin/pr53160-0.asm | 463 - .../job_601_1465/bin/pr53465-0.asm | 435 - .../job_601_1465/bin/pr53645-0.asm | 3518 -- .../job_601_1465/bin/pr53645-2-0.asm | 6325 --- .../job_601_1465/bin/pr53688-0.asm | 433 - .../job_601_1465/bin/pr54471-0.asm | 461 - .../job_601_1465/bin/pr54937-0.asm | 414 - .../job_601_1465/bin/pr54985-0.asm | 447 - .../job_601_1465/bin/pr55137-0.asm | 442 - .../job_601_1465/bin/pr55750-0.asm | 444 - .../job_601_1465/bin/pr55875-0.asm | 414 - .../job_601_1465/bin/pr56051-0.asm | 472 - .../job_601_1465/bin/pr56205-0.asm | 783 - .../job_601_1465/bin/pr56250-0.asm | 399 - .../job_601_1465/bin/pr56799-0.asm | 446 - .../job_601_1465/bin/pr56837-0.asm | 433 - .../job_601_1465/bin/pr56866-0.asm | 536 - .../job_601_1465/bin/pr56899-0.asm | 461 - .../job_601_1465/bin/pr56962-0.asm | 491 - .../job_601_1465/bin/pr56982-0.asm | 458 - .../job_601_1465/bin/pr57124-0.asm | 433 - .../job_601_1465/bin/pr57130-0.asm | 445 - .../job_601_1465/bin/pr57131-0.asm | 412 - .../job_601_1465/bin/pr57144-0.asm | 410 - .../job_601_1465/bin/pr57281-0.asm | 443 - .../job_601_1465/bin/pr57321-0.asm | 441 - .../job_601_1465/bin/pr57344-1-0.asm | 425 - .../job_601_1465/bin/pr57344-2-0.asm | 429 - .../job_601_1465/bin/pr57344-3-0.asm | 435 - .../job_601_1465/bin/pr57344-4-0.asm | 443 - .../job_601_1465/bin/pr57568-0.asm | 412 - .../job_601_1465/bin/pr57829-0.asm | 438 - .../job_601_1465/bin/pr57860-0.asm | 459 - .../job_601_1465/bin/pr57861-0.asm | 469 - .../job_601_1465/bin/pr57875-0.asm | 428 - .../job_601_1465/bin/pr57876-0.asm | 454 - .../job_601_1465/bin/pr57877-0.asm | 448 - .../job_601_1465/bin/pr58209-0.asm | 459 - .../job_601_1465/bin/pr58277-1-0.asm | 767 - .../job_601_1465/bin/pr58277-2-0.asm | 877 - .../job_601_1465/bin/pr58364-0.asm | 422 - .../job_601_1465/bin/pr58365-0.asm | 459 - .../job_601_1465/bin/pr58385-0.asm | 416 - .../job_601_1465/bin/pr58387-0.asm | 405 - .../job_601_1465/bin/pr58419-0.asm | 487 - .../job_601_1465/bin/pr58431-0.asm | 461 - .../job_601_1465/bin/pr58564-0.asm | 399 - .../job_601_1465/bin/pr58570-0.asm | 430 - .../job_601_1465/bin/pr58574-0.asm | 3788 -- .../job_601_1465/bin/pr58640-0.asm | 464 - .../job_601_1465/bin/pr58640-2-0.asm | 463 - .../job_601_1465/bin/pr58662-0.asm | 445 - .../job_601_1465/bin/pr58726-0.asm | 429 - .../job_601_1465/bin/pr58831-0.asm | 493 - .../job_601_1465/bin/pr58943-0.asm | 410 - .../job_601_1465/bin/pr58984-0.asm | 540 - .../job_601_1465/bin/pr59014-0.asm | 425 - .../job_601_1465/bin/pr59014-2-0.asm | 435 - .../job_601_1465/bin/pr59101-0.asm | 409 - .../job_601_1465/bin/pr59221-0.asm | 432 - .../job_601_1465/bin/pr59229-0.asm | 478 - .../job_601_1465/bin/pr59358-0.asm | 502 - .../job_601_1465/bin/pr59387-0.asm | 427 - .../job_601_1465/bin/pr59388-0.asm | 398 - .../job_601_1465/bin/pr59413-0.asm | 412 - .../job_601_1465/bin/pr59643-0.asm | 592 - .../job_601_1465/bin/pr59747-0.asm | 426 - .../job_601_1465/bin/pr60003-0.asm | 455 - .../job_601_1465/bin/pr60017-0.asm | 434 - .../job_601_1465/bin/pr60062-0.asm | 445 - .../job_601_1465/bin/pr60072-0.asm | 400 - .../job_601_1465/bin/pr60454-0.asm | 415 - .../job_601_1465/bin/pr60822-0.asm | 413 - .../job_601_1465/bin/pr60960-0.asm | 539 - .../job_601_1465/bin/pr61306-1-0.asm | 412 - .../job_601_1465/bin/pr61306-2-0.asm | 413 - .../job_601_1465/bin/pr61306-3-0.asm | 405 - .../job_601_1465/bin/pr61375-0.asm | 445 - .../job_601_1465/bin/pr61517-0.asm | 414 - .../job_601_1465/bin/pr61673-0.asm | 507 - .../job_601_1465/bin/pr61682-0.asm | 423 - .../job_601_1465/bin/pr61725-0.asm | 404 - .../job_601_1465/bin/pr62151-0.asm | 475 - .../job_601_1465/bin/pr63209-0.asm | 477 - .../job_601_1465/bin/pr63302-0.asm | 545 - .../job_601_1465/bin/pr63641-0.asm | 616 - .../job_601_1465/bin/pr63659-0.asm | 461 - .../job_601_1465/bin/pr63843-0.asm | 444 - .../job_601_1465/bin/pr64006-0.asm | 460 - .../job_601_1465/bin/pr64255-0.asm | 444 - .../job_601_1465/bin/pr64260-0.asm | 434 - .../job_601_1465/bin/pr64682-0.asm | 439 - .../job_601_1465/bin/pr64718-0.asm | 420 - .../job_601_1465/bin/pr64756-0.asm | 438 - .../job_601_1465/bin/pr64957-0.asm | 436 - .../job_601_1465/bin/pr64979-0.asm | 555 - .../job_601_1465/bin/pr65053-1-0.asm | 418 - .../job_601_1465/bin/pr65053-2-0.asm | 414 - .../job_601_1465/bin/pr65170-0.asm | 434 - .../job_601_1465/bin/pr65215-1-0.asm | 439 - .../job_601_1465/bin/pr65215-2-0.asm | 460 - .../job_601_1465/bin/pr65215-3-0.asm | 482 - .../job_601_1465/bin/pr65215-4-0.asm | 450 - .../job_601_1465/bin/pr65215-5-0.asm | 473 - .../job_601_1465/bin/pr65216-0.asm | 434 - .../job_601_1465/bin/pr65369-0.asm | 560 - .../job_601_1465/bin/pr65401-0.asm | 549 - .../job_601_1465/bin/pr65418-1-0.asm | 443 - .../job_601_1465/bin/pr65418-2-0.asm | 448 - .../job_601_1465/bin/pr65427-0.asm | 505 - .../job_601_1465/bin/pr65648-0.asm | 478 - .../job_601_1465/bin/pr65956-0.asm | 581 - .../job_601_1465/bin/pr66187-0.asm | 422 - .../job_601_1465/bin/pr66233-0.asm | 422 - .../job_601_1465/bin/pr66556-0.asm | 501 - .../job_601_1465/bin/pr66757-0.asm | 398 - .../job_601_1465/bin/pr66940-0.asm | 415 - .../job_601_1465/bin/pr67037-0.asm | 507 - .../job_601_1465/bin/pr67226-0.asm | 455 - .../job_601_1465/bin/pr67714-0.asm | 424 - .../job_601_1465/bin/pr67781-0.asm | 412 - .../job_601_1465/bin/pr67929_1-0.asm | 407 - .../job_601_1465/bin/pr68143_1-0.asm | 422 - .../job_601_1465/bin/pr68185-0.asm | 456 - .../job_601_1465/bin/pr68249-0.asm | 504 - .../job_601_1465/bin/pr68250-0.asm | 522 - .../job_601_1465/bin/pr68321-0.asm | 474 - .../job_601_1465/bin/pr68328-0.asm | 464 - .../job_601_1465/bin/pr68376-1-0.asm | 431 - .../job_601_1465/bin/pr68376-2-0.asm | 625 - .../job_601_1465/bin/pr68381-0.asm | 244 - .../job_601_1465/bin/pr68390-0.asm | 209 - .../job_601_1465/bin/pr68506-0.asm | 574 - .../job_601_1465/bin/pr68532-0.asm | 460 - .../job_601_1465/bin/pr68624-0.asm | 470 - .../job_601_1465/bin/pr68648-0.asm | 413 - .../job_601_1465/bin/pr68841-0.asm | 455 - .../job_601_1465/bin/pr68911-0.asm | 445 - .../job_601_1465/bin/pr69097-1-0.asm | 414 - .../job_601_1465/bin/pr69097-2-0.asm | 442 - .../job_601_1465/bin/pr69320-1-0.asm | 434 - .../job_601_1465/bin/pr69320-2-0.asm | 452 - .../job_601_1465/bin/pr69320-3-0.asm | 429 - .../job_601_1465/bin/pr69320-4-0.asm | 457 - .../job_601_1465/bin/pr69403-0.asm | 412 - .../job_601_1465/bin/pr69447-0.asm | 454 - .../job_601_1465/bin/pr69691-0.asm | 793 - .../job_601_1465/bin/pr70005-0.asm | 498 - .../job_601_1465/bin/pr70127-0.asm | 435 - .../job_601_1465/bin/pr70222-1-0.asm | 441 - .../job_601_1465/bin/pr70222-2-0.asm | 413 - .../job_601_1465/bin/pr70429-0.asm | 407 - .../job_601_1465/bin/pr70460-0.asm | 430 - .../job_601_1465/bin/pr70566-0.asm | 465 - .../job_601_1465/bin/pr70586-0.asm | 482 - .../job_601_1465/bin/pr70602-0.asm | 659 - .../job_601_1465/bin/pr70903-0.asm | 468 - .../job_601_1465/bin/pr71083-0.asm | 457 - .../job_601_1465/bin/pr71335-0.asm | 402 - .../job_601_1465/bin/pr71494-0.asm | 0 .../job_601_1465/bin/pr71550-0.asm | 437 - .../job_601_1465/bin/pr71554-0.asm | 446 - .../job_601_1465/bin/pr71626-1-0.asm | 415 - .../job_601_1465/bin/pr71626-2-0.asm | 416 - .../job_601_1465/bin/pr71631-0.asm | 485 - .../job_601_1465/bin/pr71700-0.asm | 407 - .../job_601_1465/bin/pr7284-1-0.asm | 0 .../job_601_1465/bin/pr77718-0.asm | 423 - .../job_601_1465/bin/pr77766-0.asm | 466 - .../job_601_1465/bin/pr77767-0.asm | 423 - .../job_601_1465/bin/pr78170-0.asm | 445 - .../job_601_1465/bin/pr78378-0.asm | 410 - .../job_601_1465/bin/pr78436-0.asm | 405 - .../job_601_1465/bin/pr78438-0.asm | 412 - .../job_601_1465/bin/pr78477-0.asm | 430 - .../job_601_1465/bin/pr78559-0.asm | 445 - .../job_601_1465/bin/pr78586-0.asm | 409 - .../job_601_1465/bin/pr78617-0.asm | 489 - .../job_601_1465/bin/pr78622-0.asm | 437 - .../job_601_1465/bin/pr78675-0.asm | 456 - .../job_601_1465/bin/pr78720-0.asm | 465 - .../job_601_1465/bin/pr78726-0.asm | 422 - .../job_601_1465/bin/pr78791-0.asm | 424 - .../job_601_1465/bin/pr78856-0.asm | 443 - .../job_601_1465/bin/pr79043-0.asm | 405 - .../job_601_1465/bin/pr79121-0.asm | 455 - .../job_601_1465/bin/pr79286-0.asm | 416 - .../job_601_1465/bin/pr79327-0.asm | 463 - .../job_601_1465/bin/pr79327-0.asm.asm | 0 .../job_601_1465/bin/pr79354-0.asm | 449 - .../job_601_1465/bin/pr79388-0.asm | 426 - .../job_601_1465/bin/pr79450-0.asm | 435 - .../job_601_1465/bin/pr79737-1-0.asm | 465 - .../job_601_1465/bin/pr79737-2-0.asm | 603 - .../job_601_1465/bin/pr80153-0.asm | 500 - .../job_601_1465/bin/pr80421-0.asm | 1037 - .../job_601_1465/bin/pr80501-0.asm | 421 - .../job_601_1465/bin/pr80692-0.asm | 408 - .../job_601_1465/bin/pr81281-0.asm | 451 - .../job_601_1465/bin/pr81423-0.asm | 439 - .../job_601_1465/bin/pr81503-0.asm | 432 - .../job_601_1465/bin/pr81555-0.asm | 446 - .../job_601_1465/bin/pr81556-0.asm | 455 - .../job_601_1465/bin/pr81588-0.asm | 482 - .../job_601_1465/bin/pr81913-0.asm | 419 - .../job_601_1465/bin/pr82192-0.asm | 419 - .../job_601_1465/bin/pr82210-0.asm | 343 - .../job_601_1465/bin/pr82387-0.asm | 496 - .../job_601_1465/bin/pr82388-0.asm | 427 - .../job_601_1465/bin/pr82524-0.asm | 515 - .../job_601_1465/bin/pr82954-0.asm | 466 - .../job_601_1465/bin/pr83269-0.asm | 402 - .../job_601_1465/bin/pr83298-0.asm | 411 - .../job_601_1465/bin/pr83362-0.asm | 440 - .../job_601_1465/bin/pr83383-0.asm | 458 - .../job_601_1465/bin/pr83477-0.asm | 436 - .../job_601_1465/bin/pr84169-0.asm | 458 - .../job_601_1465/bin/pr84339-0.asm | 448 - .../job_601_1465/bin/pr84478-0.asm | 2219 - .../job_601_1465/bin/pr84524-0.asm | 478 - .../job_601_1465/bin/pr84748-0.asm | 473 - .../job_601_1465/bin/pr85095-0.asm | 574 - .../job_601_1465/bin/pr85156-0.asm | 424 - .../job_601_1465/bin/pr85169-0.asm | 518 - .../job_601_1465/bin/pr85331-0.asm | 445 - .../job_601_1465/bin/pr85529-1-0.asm | 464 - .../job_601_1465/bin/pr85529-2-0.asm | 426 - .../job_601_1465/bin/printf-1-0.asm | 510 - .../job_601_1465/bin/printf-chk-1-0.asm | 703 - .../job_601_1465/bin/pta-field-1-0.asm | 428 - .../job_601_1465/bin/pta-field-2-0.asm | 430 - .../job_601_1465/bin/ptr-arith-1-0.asm | 414 - .../job_601_1465/bin/pure-1-0.asm | 617 - .../job_601_1465/bin/pushpop_macro-0.asm | 385 - .../job_601_1465/bin/regstack-1-0.asm | 569 - .../job_601_1465/bin/restrict-1-0.asm | 440 - .../job_601_1465/bin/scal-to-vec1-0.asm | 1923 - .../job_601_1465/bin/scal-to-vec2-0.asm | 933 - .../job_601_1465/bin/scal-to-vec3-0.asm | 947 - .../job_601_1465/bin/scope-1-0.asm | 405 - .../job_601_1465/bin/shiftdi-0.asm | 431 - .../job_601_1465/bin/shiftopt-1-0.asm | 414 - .../job_601_1465/bin/simd-1-0.asm | 588 - .../job_601_1465/bin/simd-2-0.asm | 673 - .../job_601_1465/bin/simd-4-0.asm | 425 - .../job_601_1465/bin/simd-5-0.asm | 596 - .../job_601_1465/bin/simd-6-0.asm | 507 - .../job_601_1465/bin/stdarg-1-0.asm | 1176 - .../job_601_1465/bin/stdarg-2-0.asm | 1291 - .../job_601_1465/bin/stdarg-3-0.asm | 1326 - .../job_601_1465/bin/stdarg-4-0.asm | 1369 - .../job_601_1465/bin/stkalign-0.asm | 508 - .../job_601_1465/bin/strcmp-1-0.asm | 655 - .../job_601_1465/bin/strcpy-1-0.asm | 520 - .../job_601_1465/bin/strcpy-2-0.asm | 435 - .../job_601_1465/bin/strct-pack-1-0.asm | 427 - .../job_601_1465/bin/strct-pack-2-0.asm | 396 - .../job_601_1465/bin/strct-pack-3-0.asm | 435 - .../job_601_1465/bin/strct-pack-4-0.asm | 412 - .../job_601_1465/bin/strct-stdarg-1-0.asm | 559 - .../job_601_1465/bin/strct-varg-1-0.asm | 516 - .../job_601_1465/bin/string-opt-17-0.asm | 477 - .../job_601_1465/bin/string-opt-18-0.asm | 498 - .../job_601_1465/bin/string-opt-5-0.asm | 886 - .../job_601_1465/bin/strlen-1-0.asm | 452 - .../job_601_1465/bin/strncmp-1-0.asm | 711 - .../job_601_1465/bin/struct-aliasing-1-0.asm | 423 - .../job_601_1465/bin/struct-cpy-1-0.asm | 426 - .../job_601_1465/bin/struct-ini-1-0.asm | 404 - .../job_601_1465/bin/struct-ini-2-0.asm | 409 - .../job_601_1465/bin/struct-ini-3-0.asm | 407 - .../job_601_1465/bin/struct-ini-4-0.asm | 397 - .../job_601_1465/bin/struct-ret-1-0.asm | 585 - .../job_601_1465/bin/struct-ret-2-0.asm | 412 - .../job_601_1465/bin/switch-1-0.asm | 451 - .../job_601_1465/bin/tstdi-1-0.asm | 720 - .../job_601_1465/bin/unroll-1-0.asm | 430 - .../job_601_1465/bin/usmul-0.asm | 466 - .../job_601_1465/bin/va-arg-1-0.asm | 501 - .../job_601_1465/bin/va-arg-10-0.asm | 1615 - .../job_601_1465/bin/va-arg-11-0.asm | 471 - .../job_601_1465/bin/va-arg-12-0.asm | 555 - .../job_601_1465/bin/va-arg-13-0.asm | 482 - .../job_601_1465/bin/va-arg-14-0.asm | 640 - .../job_601_1465/bin/va-arg-15-0.asm | 541 - .../job_601_1465/bin/va-arg-16-0.asm | 732 - .../job_601_1465/bin/va-arg-17-0.asm | 707 - .../job_601_1465/bin/va-arg-18-0.asm | 528 - .../job_601_1465/bin/va-arg-19-0.asm | 629 - .../job_601_1465/bin/va-arg-2-0.asm | 2091 - .../job_601_1465/bin/va-arg-20-0.asm | 469 - .../job_601_1465/bin/va-arg-21-0.asm | 471 - .../job_601_1465/bin/va-arg-22-0.asm | 1546 - .../job_601_1465/bin/va-arg-23-0.asm | 465 - .../job_601_1465/bin/va-arg-24-0.asm | 1426 - .../job_601_1465/bin/va-arg-26-0.asm | 481 - .../job_601_1465/bin/va-arg-4-0.asm | 517 - .../job_601_1465/bin/va-arg-5-0.asm | 705 - .../job_601_1465/bin/va-arg-6-0.asm | 647 - .../job_601_1465/bin/va-arg-7-0.asm | 535 - .../job_601_1465/bin/va-arg-8-0.asm | 482 - .../job_601_1465/bin/va-arg-9-0.asm | 1563 - .../job_601_1465/bin/va-arg-pack-1-0.asm | 1119 - .../job_601_1465/bin/va-arg-trap-1-0.asm | 425 - .../job_601_1465/bin/vfprintf-1-0.asm | 747 - .../job_601_1465/bin/vfprintf-chk-1-0.asm | 978 - .../job_601_1465/bin/vla-dealloc-1-0.asm | 468 - .../job_601_1465/bin/vprintf-1-0.asm | 721 - .../job_601_1465/bin/vprintf-chk-1-0.asm | 933 - .../job_601_1465/bin/vrp-1-0.asm | 413 - .../job_601_1465/bin/vrp-2-0.asm | 416 - .../job_601_1465/bin/vrp-3-0.asm | 418 - .../job_601_1465/bin/vrp-4-0.asm | 413 - .../job_601_1465/bin/vrp-5-0.asm | 418 - .../job_601_1465/bin/vrp-6-0.asm | 441 - .../job_601_1465/bin/vrp-7-0.asm | 414 - .../job_601_1465/bin/wchar_t-1-0.asm | 412 - .../job_601_1465/bin/widechar-1-0.asm | 384 - .../job_601_1465/bin/widechar-2-0.asm | 416 - .../job_601_1465/bin/zero-struct-1-0.asm | 424 - .../job_601_1465/bin/zero-struct-2-0.asm | 403 - .../job_601_1465/bin/zerolen-1-0.asm | 412 - .../job_601_1465/bin/zerolen-2-0.asm | 385 - .../job_601_1465/cmd_worklist.txt | 1734 +- .../job_601_1465/src/library/mini_stdlib.h | 18 +- 1486 files changed, 44335 insertions(+), 706485 deletions(-) delete mode 100755 semantics/a.out create mode 100644 semantics/crashed_files.txt create mode 100644 semantics/reran_files.txt create mode 100644 semantics/tests-to-rerun.txt delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010224-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010325-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010329-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010403-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010409-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010422-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010518-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010518-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010520-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010604-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010605-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010605-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010711-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010717-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010723-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010904-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010904-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010910-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010915-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010924-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20010925-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20011008-3-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20011019-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20011024-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20011109-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20011109-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20011113-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20011114-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20011115-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20011121-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20011126-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20011126-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20011128-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20011217-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20011219-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20011223-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020103-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020107-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020108-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020118-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020127-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020129-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020201-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020206-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020206-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020213-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020215-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020216-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020219-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020225-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020225-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020226-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020227-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020307-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020314-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020320-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020321-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020328-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020402-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020402-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020402-3-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020404-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020406-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020411-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020412-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020413-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020418-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020423-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020503-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020506-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020508-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020508-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020508-3-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020510-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020529-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020611-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020614-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020615-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020619-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020716-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020720-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020805-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020810-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020819-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020904-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020911-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020916-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20020920-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021010-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021010-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021011-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021015-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021024-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021111-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021113-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021118-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021118-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021118-3-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021119-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021120-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021120-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021120-3-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021127-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021204-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20021219-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030105-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030109-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030117-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030120-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030120-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030125-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030128-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030203-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030209-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030216-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030218-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030221-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030222-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030224-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030307-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030313-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030316-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030323-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030330-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030401-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030403-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030404-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030408-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030501-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030606-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030613-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030626-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030626-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030714-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030715-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030717-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030718-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030811-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030821-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030828-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030828-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030903-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030909-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030910-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030913-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030914-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030914-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030916-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030920-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20030928-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20031003-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20031010-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20031011-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20031012-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20031020-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20031201-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20031204-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20031211-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20031211-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20031214-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20031215-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20031216-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040208-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040218-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040223-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040302-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040307-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040308-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040309-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040311-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040313-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040319-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040331-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040409-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040409-1w-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040409-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040409-2w-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040409-3-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040409-3w-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040411-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040423-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040520-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040625-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040629-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040703-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040704-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040705-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040705-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040706-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040707-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040709-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040709-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040709-3-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040805-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040811-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040820-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040823-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040831-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20040917-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20041011-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20041019-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20041112-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20041113-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20041114-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20041124-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20041126-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20041201-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20041210-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20041212-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20041213-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20041214-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20041218-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20041218-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050104-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050106-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050107-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050111-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050119-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050119-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050121-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050124-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050125-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050131-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050203-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050215-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050218-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050224-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050316-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050316-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050316-3-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050410-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050502-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050502-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050604-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050607-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050613-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050713-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050826-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050826-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20050929-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20051012-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20051021-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20051104-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20051110-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20051110-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20051113-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20051215-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20060102-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20060110-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20060110-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20060127-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20060412-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20060420-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20060905-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20060910-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20060929-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20060930-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20060930-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20061031-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20061101-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20061101-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20061220-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20070201-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20070212-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20070212-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20070212-3-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20070424-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20070517-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20070614-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20070623-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20070724-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20070824-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20070919-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20071011-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20071018-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20071029-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20071030-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20071108-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20071120-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20071202-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20071205-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20071210-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20071211-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20071213-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20071216-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20071219-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20071220-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20071220-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20080117-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20080122-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20080222-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20080408-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20080424-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20080502-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20080506-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20080506-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20080519-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20080522-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20080529-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20080604-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20080719-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20080813-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20081103-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20081112-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20081117-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20081218-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20090113-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20090113-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20090113-3-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20090207-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20090219-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20090527-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20090623-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20090711-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20090814-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20091229-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20100209-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20100316-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20100416-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20100430-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20100708-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20100805-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20100827-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20101011-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20101013-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20101025-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20110418-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20111208-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20111212-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20111227-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20120105-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20120111-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20120207-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20120427-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20120427-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20120615-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20120808-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20120817-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20120919-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20121108-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20131127-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20140212-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20140212-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20140326-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20140425-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20140622-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20140828-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20141022-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20141107-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20141125-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20150611-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20170111-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20170401-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20170401-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20170419-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20171008-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20180112-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20180131-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/20180226-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/900409-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920202-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920302-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920409-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920410-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920411-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920415-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920428-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920428-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920429-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920501-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920501-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920501-3-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920501-4-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920501-5-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920501-6-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920501-7-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920501-8-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920501-9-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920506-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920520-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920603-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920604-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920612-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920612-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920618-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920625-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920710-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920711-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920721-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920721-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920721-3-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920721-4-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920726-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920728-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920730-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920731-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920810-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920812-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920829-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920908-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920908-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920909-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920922-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/920929-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921006-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921007-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921013-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921016-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921017-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921019-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921019-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921029-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921104-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921110-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921112-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921113-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921117-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921123-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921123-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921124-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921202-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921202-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921204-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921207-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921208-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921208-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921215-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921218-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/921218-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930106-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930111-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930123-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930126-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930208-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930406-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930408-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930429-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930429-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930513-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930513-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930518-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930526-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930527-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930529-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930603-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930603-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930603-3-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930608-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930614-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930614-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930621-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930622-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930622-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930628-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930630-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930702-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930713-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930718-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930719-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930725-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930818-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930916-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930921-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930929-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930930-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/930930-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931002-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931004-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931004-10-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931004-11-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931004-12-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931004-13-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931004-14-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931004-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931004-3-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931004-4-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931004-5-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931004-6-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931004-7-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931004-8-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931004-9-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931005-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931009-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931012-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931017-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931018-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931031-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931102-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931102-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931110-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931110-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931208-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/931228-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/940115-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/940122-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/941014-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/941014-2-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/941015-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/941021-1-0.asm delete mode 100644 tests/gcc.c-torture/job_101_600/bin/941025-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000112-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000113-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000121-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000205-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000217-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000223-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000224-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000225-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000227-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000313-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000314-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000314-2-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000314-3-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000402-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000403-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000412-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000412-2-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000412-3-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000412-4-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000412-5-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000412-6-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000419-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000422-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000503-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000511-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000519-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000519-2-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000523-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000528-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000603-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000605-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000605-2-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000605-3-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000622-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000703-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000706-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000706-2-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000706-3-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000706-4-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000706-5-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000707-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000715-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000715-2-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000717-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000717-2-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000717-3-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000717-4-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000717-5-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000722-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000726-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000731-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000731-2-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000801-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000801-2-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000801-3-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000801-4-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000808-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000815-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000818-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000819-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000822-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000910-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000910-2-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000914-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20000917-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001009-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001009-2-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001011-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001013-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001017-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001017-2-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001024-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001026-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001027-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001031-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001101-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001108-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001111-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001112-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001121-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001124-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001130-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001130-2-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001203-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001203-2-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001221-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001228-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20001229-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20010106-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20010114-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20010116-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20010118-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20010119-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20010122-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20010123-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20010129-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20010206-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20010209-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20010221-1-0.asm delete mode 100644 tests/gcc.c-torture/job_1_100/bin/20010222-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/941031-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/941101-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/941110-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/941202-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950221-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950322-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950426-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950426-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950503-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950511-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950512-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950605-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950607-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950607-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950612-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950621-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950628-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950704-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950706-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950710-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950714-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950809-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950906-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950915-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/950929-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/951003-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/951115-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/951204-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960116-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960117-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960209-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960215-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960218-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960219-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960301-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960302-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960311-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960311-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960311-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960312-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960317-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960321-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960326-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960327-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960402-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960405-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960416-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960419-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960419-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960512-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960513-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960521-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960608-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960801-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960802-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960830-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/960909-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/961004-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/961017-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/961017-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/961026-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/961112-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/961122-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/961122-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/961125-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/961206-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/961213-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/961223-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/970214-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/970214-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/970217-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/970923-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980205-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980223-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980424-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980505-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980505-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980506-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980506-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980506-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980526-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980526-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980526-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980602-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980602-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980604-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980605-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980608-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980612-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980617-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980618-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980701-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980707-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980709-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980716-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/980929-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/981001-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/981019-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/981130-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/981206-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990106-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990106-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990117-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990127-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990127-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990128-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990130-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990208-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990211-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990222-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990324-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990326-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990404-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990413-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990513-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990524-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990525-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990525-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990527-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990531-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990604-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990628-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990804-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990811-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990826-0-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990827-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990829-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/990923-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991014-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991016-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991019-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991023-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991030-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991112-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991118-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991201-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991202-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991202-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991202-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991216-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991216-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991216-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991221-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991227-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/991228-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/alias-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/alias-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/alias-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/alias-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/align-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/align-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/align-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/align-nest-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/alloca-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/anon-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/arith-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/arith-rand-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/arith-rand-ll-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/ashldi-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/ashrdi-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/bcp-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/bf-layout-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/bf-pack-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/bf-sign-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/bf-sign-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/bf64-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/bitfld-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/bitfld-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/bitfld-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/bitfld-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/bitfld-5-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/bitfld-6-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/bitfld-7-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/bswap-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/bswap-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/built-in-setjmp-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/builtin-bitops-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/builtin-constant-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/builtin-prefetch-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/builtin-prefetch-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/builtin-prefetch-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/builtin-prefetch-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/builtin-prefetch-5-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/builtin-prefetch-6-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/builtin-types-compatible-p-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/call-trap-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/cbrt-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/cmpdi-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/cmpsf-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/cmpsi-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/cmpsi-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/comp-goto-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/comp-goto-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/compare-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/compare-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/compare-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/complex-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/complex-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/complex-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/complex-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/complex-5-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/complex-6-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/complex-7-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/compndlit-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/const-addr-expr-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/conversion-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/cvt-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/dbra-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/divcmp-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/divcmp-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/divcmp-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/divcmp-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/divcmp-5-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/divconst-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/divconst-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/divconst-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/divmod-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/doloop-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/doloop-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/eeprof-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/enum-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/enum-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/enum-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/extzvsi-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/ffs-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/ffs-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/float-floor-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/floatunsisf-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/fprintf-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/fprintf-chk-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/frame-address-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/func-ptr-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/gofast-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/ifcvt-onecmpl-abs-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/index-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/inst-check-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/int-compare-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/ipa-sra-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/ipa-sra-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/longlong-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-10-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-11-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-12-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-13-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-14-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-15-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-2b-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-2c-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-2d-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-2e-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-2f-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-2g-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-3b-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-3c-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-4b-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-5-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-6-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-7-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-8-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-9-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-ivopts-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/loop-ivopts-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/lshrdi-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/lto-tbaa-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/mayalias-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/mayalias-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/mayalias-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/medce-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/memcpy-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/memcpy-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/memcpy-bi-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/memset-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/memset-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/memset-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/memset-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/mod-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/mode-dependent-address-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/multdi-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/multi-ix-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/nest-align-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/nest-stdar-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/nestfunc-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/nestfunc-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/nestfunc-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/nestfunc-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/nestfunc-5-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/nestfunc-6-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/nestfunc-7-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/p18298-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/packed-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/packed-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pending-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/postmod-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr15262-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr15262-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr15262-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr15296-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr16790-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr17078-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr17133-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr17252-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr17377-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr19005-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr19449-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr19515-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr19606-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr19687-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr19689-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr20100-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr20187-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr20466-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr20527-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr20601-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr20621-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr21173-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr21331-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr21964-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr22061-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr22061-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr22061-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr22061-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr22098-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr22098-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr22098-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr22141-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr22141-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr22348-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr22429-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr22493-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr22630-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr23047-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr23135-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr23324-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr23467-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr23604-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr23941-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr24135-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr24141-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr24142-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr24716-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr24851-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr25125-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr25737-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr27073-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr27260-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr27285-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr27364-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr27671-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr28289-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr28403-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr28651-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr28778-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr28865-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr28982a-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr28982b-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr29006-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr29156-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr29695-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr29695-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr29797-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr29797-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr29798-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr30185-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr30778-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr31072-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr31136-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr31169-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr31448-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr31448-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr31605-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr32244-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr32500-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr33142-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr33382-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr33631-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr33669-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr33779-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr33779-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr33870-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr33870-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr33992-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr34070-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr34070-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr34099-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr34099-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr34130-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr34154-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr34176-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr34415-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr34456-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr34768-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr34768-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr34971-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr34982-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr35163-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr35231-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr35390-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr35456-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr35472-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr35800-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr36034-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr36034-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr36038-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr36077-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr36093-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr36321-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr36339-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr36343-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr36691-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr36765-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr37102-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr37125-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr37573-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr37780-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr37882-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr37924-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr37931-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr38048-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr38048-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr38051-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr38051-0.asm.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr38151-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr38212-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr38236-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr38422-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr38533-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr38819-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr38969-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr39100-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr39120-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr39228-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr39233-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr39240-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr39339-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr39501-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr40022-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr40057-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr40386-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr40404-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr40493-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr40579-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr40657-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr40668-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr40747-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr41239-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr41317-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr41395-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr41395-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr41463-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr41750-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr41917-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr41919-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr41935-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr42006-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr42142-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr42154-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr42231-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr42248-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr42269-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr42512-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr42544-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr42570-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr42614-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr42691-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr42721-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr42833-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr43008-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr43220-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr43236-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr43269-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr43385-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr43438-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr43560-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr43629-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr43783-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr43784-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr43835-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr43987-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr44164-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr44202-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr44468-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr44555-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr44575-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr44683-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr44828-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr44852-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr44858-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr44942-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr45034-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr45070-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr45262-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr45695-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr46019-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr46309-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr46316-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr46909-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr46909-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr47148-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr47155-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr47237-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr47299-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr47337-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr47538-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr47925-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr48197-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr48571-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr48717-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr48809-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr48814-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr48814-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr48973-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr48973-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr49039-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr49073-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr49123-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr49161-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr49186-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr49218-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr49279-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr49281-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr49390-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr49419-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr49644-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr49712-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr49768-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr49886-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr50865-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr51023-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr51323-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr51447-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr51466-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr51581-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr51581-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr51877-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr51933-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr52129-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr52209-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr52286-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr52760-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr52979-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr52979-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr53084-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr53160-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr53465-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr53645-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr53645-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr53688-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr54471-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr54937-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr54985-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr55137-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr55750-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr55875-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr56051-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr56205-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr56250-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr56799-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr56837-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr56866-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr56899-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr56962-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr56982-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57124-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57130-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57131-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57144-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57281-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57321-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57344-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57344-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57344-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57344-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57568-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57829-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57860-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57861-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57875-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57876-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr57877-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58209-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58277-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58277-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58364-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58365-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58385-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58387-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58419-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58431-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58564-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58570-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58574-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58640-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58640-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58662-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58726-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58831-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58943-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr58984-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr59014-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr59014-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr59101-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr59221-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr59229-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr59358-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr59387-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr59388-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr59413-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr59643-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr59747-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr60003-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr60017-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr60062-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr60072-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr60454-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr60822-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr60960-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr61306-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr61306-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr61306-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr61375-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr61517-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr61673-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr61682-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr61725-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr62151-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr63209-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr63302-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr63641-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr63659-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr63843-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr64006-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr64255-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr64260-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr64682-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr64718-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr64756-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr64957-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr64979-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr65053-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr65053-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr65170-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr65215-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr65215-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr65215-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr65215-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr65215-5-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr65216-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr65369-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr65401-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr65418-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr65418-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr65427-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr65648-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr65956-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr66187-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr66233-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr66556-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr66757-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr66940-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr67037-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr67226-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr67714-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr67781-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr67929_1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr68143_1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr68185-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr68249-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr68250-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr68321-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr68328-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr68376-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr68376-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr68381-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr68390-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr68506-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr68532-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr68624-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr68648-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr68841-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr68911-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr69097-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr69097-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr69320-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr69320-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr69320-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr69320-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr69403-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr69447-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr69691-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr70005-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr70127-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr70222-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr70222-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr70429-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr70460-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr70566-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr70586-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr70602-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr70903-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr71083-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr71335-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr71494-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr71550-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr71554-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr71626-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr71626-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr71631-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr71700-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr7284-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr77718-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr77766-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr77767-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr78170-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr78378-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr78436-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr78438-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr78477-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr78559-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr78586-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr78617-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr78622-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr78675-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr78720-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr78726-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr78791-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr78856-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr79043-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr79121-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr79286-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr79327-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr79327-0.asm.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr79354-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr79388-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr79450-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr79737-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr79737-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr80153-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr80421-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr80501-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr80692-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr81281-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr81423-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr81503-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr81555-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr81556-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr81588-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr81913-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr82192-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr82210-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr82387-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr82388-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr82524-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr82954-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr83269-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr83298-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr83362-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr83383-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr83477-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr84169-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr84339-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr84478-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr84524-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr84748-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr85095-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr85156-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr85169-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr85331-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr85529-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pr85529-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/printf-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/printf-chk-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pta-field-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pta-field-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/ptr-arith-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pure-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/pushpop_macro-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/regstack-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/restrict-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/scal-to-vec1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/scal-to-vec2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/scal-to-vec3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/scope-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/shiftdi-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/shiftopt-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/simd-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/simd-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/simd-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/simd-5-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/simd-6-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/stdarg-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/stdarg-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/stdarg-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/stdarg-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/stkalign-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/strcmp-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/strcpy-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/strcpy-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/strct-pack-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/strct-pack-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/strct-pack-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/strct-pack-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/strct-stdarg-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/strct-varg-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/string-opt-17-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/string-opt-18-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/string-opt-5-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/strlen-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/strncmp-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/struct-aliasing-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/struct-cpy-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/struct-ini-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/struct-ini-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/struct-ini-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/struct-ini-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/struct-ret-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/struct-ret-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/switch-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/tstdi-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/unroll-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/usmul-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-10-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-11-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-12-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-13-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-14-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-15-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-16-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-17-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-18-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-19-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-20-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-21-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-22-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-23-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-24-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-26-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-5-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-6-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-7-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-8-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-9-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-pack-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/va-arg-trap-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/vfprintf-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/vfprintf-chk-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/vla-dealloc-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/vprintf-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/vprintf-chk-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/vrp-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/vrp-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/vrp-3-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/vrp-4-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/vrp-5-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/vrp-6-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/vrp-7-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/wchar_t-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/widechar-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/widechar-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/zero-struct-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/zero-struct-2-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/zerolen-1-0.asm delete mode 100644 tests/gcc.c-torture/job_601_1465/bin/zerolen-2-0.asm diff --git a/.gitignore b/.gitignore index cc59d2fb0..3a03e38b7 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ *.swo semantics/underTestInstructions/* semantics/x86-instructions-semantics.k +bin/ +a.out diff --git a/semantics/a.out b/semantics/a.out deleted file mode 100755 index d617bc57b57c7fdce8c0ab2e60962e5394c9d41b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 984800 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

    Ac$q2`5onJdGRpBFZ&{CVLD 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 Ko_GKH?f+k(Lm4&z diff --git a/semantics/out.txt b/semantics/out.txt deleted file mode 100644 index 1eac0e415..000000000 --- a/semantics/out.txt +++ /dev/null @@ -1,33 +0,0 @@ -Entry(0x4009ae); -NamedSymbol(putchar, NotPresentInFile); -NamedSymbol(getchar, NotPresentInFile); -NamedSymbol(printf, 0x40f4b0); -NamedSymbol(fprintf, 0x45c5f0); -NamedSymbol(sprintf, NotPresentInFile); -NamedSymbol(snprintf, NotPresentInFile); -NamedSymbol(scanf, NotPresentInFile); -NamedSymbol(fscanf, NotPresentInFile); -NamedSymbol(__isoc99_fscanf, NotPresentInFile); -NamedSymbol(sscanf, 0x47a6a0); -NamedSymbol(_IO_putc, NotPresentInFile); -NamedSymbol(fputc, NotPresentInFile); -NamedSymbol(fopen, 0x40fc00); -NamedSymbol(freopen, NotPresentInFile); -NamedSymbol(fclose, 0x40f730); -NamedSymbol(fflush, 0x40f990); -NamedSymbol(fwrite, 0x462fd0); -NamedSymbol(fread, NotPresentInFile); -NamedSymbol(fputs, 0x462de0); -NamedSymbol(puts, NotPresentInFile); -NamedSymbol(feof, NotPresentInFile); -NamedSymbol(fgetc, NotPresentInFile); -NamedSymbol(getc, NotPresentInFile); -NamedSymbol(fgets, NotPresentInFile); -NamedSymbol(gets, NotPresentInFile); -NamedSymbol(fseek, 0x47a7d0); -NamedSymbol(rewind, NotPresentInFile); -NamedSymbol(malloc, 0x41dc60); -NamedSymbol(free, 0x41e000); -NamedSymbol(sqrt, NotPresentInFile); -Load(0x400000, 0x7f454c4602010103000000000000000002003e000100000090084000000000004000000000000000f8e40d000000000000000000400038000600400021001e000100000005000000000000000000000000004000000000000000400000000000af930c0000000000af930c000000000000002000000000000100000006000000b89e0c0000000000b89e6c0000000000b89e6c0000000000981c0000000000005035000000000000000020000000000004000000040000009001000000000000900140000000000090014000000000004400000000000000440000000000000004000000000000000700000004000000b89e0c0000000000b89e6c0000000000b89e6c000000000020000000000000005000000000000000080000000000000051e574640600000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000052e5746404000000b89e0c0000000000b89e6c0000000000b89e6c0000000000480100000000000048010000000000000100000000000000040000001000000001000000474e550000000000020000000600000020000000040000001400000003000000474e5500d684c4519fbb06905469469b8b27b30a145dd2470000000060a06c00000000002500000000000000e01242000000000058a06c00000000002500000000000000a01949000000000050a06c00000000002500000000000000201542000000000048a06c00000000002500000000000000b06642000000000040a06c00000000002500000000000000806d42000000000038a06c00000000002500000000000000e06042000000000030a06c00000000002500000000000000705d42000000000028a06c00000000002500000000000000706c42000000000020a06c000000000025000000000000006b6642000000000018a06c0000000000250000000000000040374200000000004883ec08488b051d9d2c004885c07405e823fdbfff4883c408c30000000000000000000000000000ff25229d2c006800000000e900000000ff251a9d2c006800000000e900000000ff25129d2c006800000000e900000000ff250a9d2c006800000000e900000000ff25029d2c006800000000e900000000ff25fa9c2c006800000000e900000000ff25f29c2c006800000000e900000000ff25ea9c2c006800000000e900000000ff25e29c2c006800000000e900000000ff25da9c2c006800000000e900000000ffcf0f8e3a0100004084f60f84310100005553be4000000089d54881ec080600004889e7e80726040083f8024189c00f8e040100004863ddba1d000000be081e4a004889dfb8010000000f05483d00f0ffff760c48c7c2d0fffffff7d8648902418d70ff488d7c240889eae820260400ba1d000000be261e4a004889dfb8010000000f05483d00f0ffff760c48c7c2d0fffffff7d864890231f6bf441e4a00b8020000000f05483d00f0ffff761048c7c2d0fffffff7d86489024883c8ff4c63c031ed41ba01000000ba00040000488db424000200004c89c789e80f05483d00f0ffff4989c1761a48c7c0d0ffffff41f7d9644489084c89c7b8030000000f05eb374885c07eef4c89ca488db424000200004889df4489d00f05483d00f0ffff761048c7c2d0fffffff7d86489024883c8ff4939c17492ebbd4881c4080600005b5dc350b968304a00ba75020000bee8214a00bfc0254a00e8836b010050b9c0534a00baea000000be58534a00bf63534a00e8e9130000488b07beffffff7f0fb60083e830488b17488d4a0148890f0fb64a0183e93083f909772585c078e63dcccccc0c7f156bd00a89f029c801d139c2b8ffffffff0f4ec1ebca83c8ffebc5c3488b0f41b8ffffff7f8b014883c10483e8308b118d72d083fe09772a85c078203dcccccc0c7f166bd00a4489c029f001d639c2b8ffffffff0f4ec6eb0383c8ff4883c104ebcc48890fc350bf02000000bed85d4b0031c0e8f3370700bf7f000000e869e40300660f1f840000000000488b0531c42c004885c07411bfbcc64b00b90e0000004889c6f3a67501c34889c7e91ada0100662e0f1f8400000000008b058ac02c004154555383f801740e83f8020f84070100005b5d415cc38b3571c02c00bfbc000000e853dc03008b3561c02c00bfc20000004989c4e840dc03004885c04889c5bf030000000f8e2c020000448b053cc02c004183f8037e39448b0d63c02c00448b1560c02c0031c9be04000000eb160f1f0089c24489d9c1ea0583e20739d70f8444010000448d590189f00fa2a81f75e10fb61500c02c004885ed7e1185d2740d4889e889d1489948f7f94889c54d85e47e2c4c89e04c892505aa2c004180e40048d1f84c892507aa2c00488905f8a92c004c89e048d1f8488905fba92c004885ed0f8e2affffff4889e848892db0a92c004080e50048d1f848892db2a92c00488905a3a92c004889e848d1f85b488905a5a92c005d415cc3bfbc000000e877dc0300bfbf0000004989c4e86adc0300bfc20000004889c5e85ddc03004889c7b8000000800fa24885ff89c67e253d070000807745b8010000000fa281e20000001089c6740ac1eb100fb6cb85c975424801fd81fe000000800f862fffffffb8010000800fa280e5017434c7052dca2c00ffffffffe914ffffffb8080000800fa2c1e90c89c6b80100000083e10fd3e089c14889f8489948f7f94889c7ebb185d20f89e7feffffebc2c1e80eba0100000025ff03000089c60f84bafeffff4183f80a7e4331d241bb0b000000448d42014489d889d10fa20fb6db81e1f00f000085db742385c9741f81f9000200004489c275d90fbdc68d480183c8ff83eb01d3e0f7d021d889c64183f9068d56010f94c183ff020f94c084c10f8459feffff83fa020f8650feffff418d4ac983f9260f8743feffffb80100000048d3e048b901004800490000004885c8b8020000000f45d0e921feffff8b3511be2c00bfbf000000e8f3d90300bf020000004889c5e9b7fdffff660f1f44000031ed4989d15e4889e24883e4f0505449c7c07017400048c7c1e016400048c7c7ae094000e8d7050000f4660f1f440000b857bb6c0055482d50bb6c004883f80e4889e5761bb8000000004885c074115dbf50bb6c00ffe0660f1f8400000000005dc30f1f4000662e0f1f840000000000be50bb6c00554881ee50bb6c0048c1fe034889e54889f048c1e83f4801c648d1fe7415b8000000004885c0740b5dbf50bb6c00ffe00f1f005dc3660f1f440000803d19b22c00007522554889e5e86effffffb880e349004885c07407bfe0e34b00ffd05dc605f5b12c0001f3c30f1f0055b850e149004885c04889e5740fbe80bb6c00bfe0e34b00e8c3d70900bff89e6c0048833f0075085de962ffffff6690b8000000004885c074eeffd0ebea554889e54883ec30c745ec050000008b45ec489848c1e0024889c7e892d20100488945f0c745d400000000eb1d8b45d44898488d148500000000488b45f04801c28b45d489028345d4018b45d43b45ec7cdb8b45ec489848c1e0024889c7e84fd20100488945f8c745d800000000eb1d8b45d84898488d148500000000488b45f84801c28b45d889028345d8018b45d83b45ec7cdbc745dc00000000eb2b8b45dc4898488d148500000000488b45f04801d08b0089c6bf04114a00b800000000e83dea00008345dc018b45dc3b45ec7ccdc745e000000000eb2b8b45e04898488d148500000000488b45f84801d08b0089c6bf04114a00b800000000e801ea00008345e0018b45e03b45ec7ccd488b45f04889c7e839d501008b45ec489848c1e0034889c7e888d10100488945f0c745e400000000eb278b45e44898488d148500000000488b45f0488d0c028b55e489d0c1e00201d001c089018345e4018b45ec01c03b45e47fcfc745e800000000eb2b8b45e84898488d148500000000488b45f04801d08b0089c6bf04114a00b800000000e86ae900008345e8018b45e83b45ec7ccd488b45f04889c7e8a2d40100488b45f84889c7e896d40100b800000000c9c3662e0f1f8400000000000f1f44000041564155b8000000004154554989cc534d89c54d89ce4881ec900000004885c048897c24188974240c48895424100f842d0100008b0d46f4bfff31c085c94889d10f94c0890536ab2c00486344240c488d7cc108488b8424c000000048893d5dba2c00488905a6932c00660f1f4400004883c70848837ff80075f5e8f021040048833d40c62c0000754fb8000040004885c0744566833d1af4ffff387419b9c0114a00baaf000000be08114a00bf38114a00e8b90c0000488b05e2f3ffff480500004000488905fdc52c000fb705e6f3ffff48890527c62c008b05a1aa2c0085c0744cb8d8014000483dc8024000737b833d69f5ffff25488b2d5af5ffffbbd801400075200f1f00ff53104883c318488945004881fbc8024000734f837b0825488b2b74e3bf90114a00e8310e0100e83c35040085c00f884c0100008b15dec52c0085d20f85030100008905d0c52c003d1f0602007f8cbf1c114a00e8ff0d010031c04889d1e9d9feffffe8e0090000488b1589922c00488b0230c0644889042528000000488b42086448890425300000004d85f6740c31d231f64c89f7e87de00000488b1516b92c00488b7424108b7c240ce8c83504004d85ed740c31d231f64c89efe857e00000833d48922c00000f85bc0000004d85e47413488b15deb82c00488b7424108b7c240c41ffd431ff31f6e809200400488d7c2420e89fcf000085c0755564488b042500030000488944246864488b0425f80200004889442470488d442420644889042500030000488b158ab82c00488b7424108b7c240c488b442418ffd089c7e8d3dd000039c20f86fbfeffffe9f0feffffe821f2bffff0ff0d1af2bfff0f94c084c0740431c0ebd5ba3c000000662e0f1f84000000000031ff89d00f05ebf8bf68114a00e8ce0c0100e859040000e93affffff0f1f40004989d1534989c8b8010000000fa2891560b82c0089c2891d50b82c00c1ea08890d4bb82c0089053db82c0083e20f891789c2c1ea0483e20f891689c2c1ea0c81e2f0000000418911833f0f751289c2c1ea140fb6d283c20f8917418b11011683e00f4189005bc3660f1f8400000000004155415431c055534889d54989cc4189f34989fa4883ec280fa281fb47656e758905ceb72c00c744241000000000400f94c681f96e74656cc7442414000000000f94c0c7442418000000004084c6740c81fa696e65490f846d01000081fb41757468400f94c681f963414d440f94c04084c6740c81fa656e74690f8494010000448b2d79b72c008b7c2414be030000008b056eb72c00f6c401740a810d8bb72c0000400000f6c480740a810d7cb72c0000800000833d39b72c00067e21b80700000031c90fa289053cb72c00891d3ab72c00890d38b72c00891536b72c0041f7c500000008740f31c90f01d089c283e20683fa06746f83fe01742f8b4424104883ec08893d23b72c00ff7424588935ddb62c004c89e14889ea4489de4c89d7890503b72c00e8c6fbffff837c24100675ca83ff3f0f847a01000083ff3c0f840b0200008d47bb83f8010f863d01000083ff3d0f854e010000837c2418040f8634010000eb9641f7c5000000107407830dbbb62c00408b1591b62c00f6c220740a810da6b62c00000c000025e00000003de00000000f848c0100004181e500100000740a810d83b62c0080000000f6056eb62c00010f843cffffff810d6cb62c0000010000e92dffffff488d4c2418488d54241c488d742414488d7c24104c894c24084c890424e8a5fdffff837c241006448b2d09b62c004c8b04244c8b4c24080f84ba000000be010000008b7c2414e97cfeffff488d4c2418488d54241c488d742414488d7c24104c894c24084c890424e85afdffffb8000000804c8b04244c8b4c24080fa23d00000080761fb8010000800fa28905beb52c00891dbcb52c00890dbab52c008915b8b52c00837c2410158b7c24140f8493000000be02000000448b2d79b52c00e904feffff837c2418010f8764feffff81256bb52c00eff7ffffe955feffff83ff4774e183ff560f8547feffff837c24180276dce93bfeffff8b44241c0344241483f82f894424140f879700000083f82e0f83df00000083f81f0f87b600000083f81e0f83cd00000083f81a0f84c400000083f81c0f85ae000000830d27b52c0004e9f8feffff8d47a083f81f0f8761ffffff830d0fb52c0010e955fffffff7c2000001000f8468feffff81e2000002008b05f2b42c00751e80cc108905e7b42c00e94cfeffff837c2418030f863effffffe99dfdffff80cc308905c9b42c00e92efeffff83f84d7462765683f85a745b83f85d745683f857752e8b05a8b42c000d000002000d30020000890598b42c00e969feffff83f8260f845cffffff83f82c741283f825740d41f7c5000000100f8449feffff830d6cb42c0033e93dfeffff83f837740583f84a75dd8b0557b42c00ebb20f1f4400004881ec9800000031ff31c0be01000000e89be2030083f8ff743c31c0be01000000bf01000000e885e2030083f8ff0f848f00000031c0be01000000bf02000000e86be2030083f8ff0f84e50000004881c498000000c349c7c0d0ffffff644183380975b631d2be01000200bfd3114a00b8020000000f05483d00f0ffff0f872001000085c0753931f64889e2bf01000000e81ae0030085c075268b4424182500f000003d00200000751648817c2428070100000f8461ffffff0f1f8000000000f4ebfd49c7c0d0ffffff64418338090f855fffffff31d2be00000200bfdd114a00b8020000000f05483d00f0ffff0f87c200000083f80175374889e2be01000000bf01000000e8a5df030085c075218b4424182500f000003d00200000751148817c2428030100000f8406ffffff6690f4ebfd49c7c0d0ffffff64418338090f8509ffffff31d2be00000200bfdd114a00b8020000000f05483d00f0ffff774e83f802753b4889e2be02000000bf01000000e839df030085c075258b4424182500f000003d00200000751548817c2428030100000f84b4feffff660f1f440000f4ebfdf7d864418900e912fffffff7d864418900ebeaf7d864418900e96fffffff662e0f1f8400000000000f1f440000415741564155415455534889f34883ec18488b15f0bd2c004885d27453488b051cbe2c00488d0cc50000000048c1e0064829c84801d04839c2720eeb330f1f004883c2384839c27327833a0775f24c8b7230488b6a284c8b62204c8b6a104c39f3490f42deeb14660f1f8400000000004531f64531ed4531e431ed4889e8480305cb8b2c0031d24801df488d4418ff48f7f3480fafc34801c74989c7e85fe80300488d7418ff4889d848c7058cb82c003e00000048f7d84c8b0dc29c2c004889f14821c14d85f674774a8d4435ff31d24c89ff49f7f6490fafc64829c74801cf4c89ee498981400400004c89e248890c2448893d68b82c004c894c2408c60564b82c0001e827ad0200488b0c24bf02100000b89e0000004a8d343948c7460890cd6c00488936488976100f0585c07420bfe8114a00e866050100660f1f4400004c89ff4889e84829ef4801cfeb9266904c8b4c24084d85f648c7051da62c004000000048c705c2b72c000100000048c705c7bb2c00c0bb6c004d89b1300400004989a9280400004d89a9180400004d89a12004000049c78148040000010000004c890d01a62c0075674889e8ba01000000480fafc2488b15948a2c0048c70591bb2c0001000000488d54103f4889054db72c00b8400000004883e2c04881c2000900004883fb40480f42d84889155e8a2c0048891d2fb72c004883c4185b5d415c415d415e415fc30f1f8400000000004a8d4435ff31d249f7f64c89f2eb9290488b05298a2c0048c7054ea52c004000000048c705f3b62c000100000048c705f8ba2c00c0bb6c0048c705cdb62c000009000048c705cab62c004000000048053f09000048c705e9ba2c00010000004883e0c0480500090000488905d0892c0031c0c30f1f00662e0f1f840000000000be40000000bf00090000e961fdffff90415641bed89e6c0041554981eed89e6c0041545549c1fe035331db4d85f689fd4989f44989d574200f1f8400000000004c89ea4c89e689efff14ddd89e6c004883c3014c39f375e841bee89e6c0031db4981eed89e6c0049c1fe03e888ebffff4d85f6741b0f1f004c89ea4c89e689efff14ddd89e6c004883c3014c39f375e85b5d415c415d415ec30f1f800000000053bbf89e6c004881ebe89e6c0048c1fb034885db7417662e0f1f840000000000ff14dde09e6c004883eb0175f35be94df90900662e0f1f8400000000000f1f0041564155b8000000004154554989f6534889fd4989d44189cd4c89c34883ec104885c0740931f6bf01000000ffd0488b3dfb982c00be65694b00b8af544b004885db4889f24889c1480f44ce480f45d34589e9803f004d89e0480f44c6488d7424045641564889ee51524889fa4889c131c0488d7c2428e824dd00004883c42085c00f8893000000488b542408bed9c64b0031ff31c0e895dd0000488b3de68e2c00e839e10000488b0522992c008b7424044531c931ff41b8ffffffffb922000000ba0300000001c6f7d821c6897424044863f6e8b7e503004883f8ff4889c3742a8b442404488b742408488d7b048903e84aeaffff4889df48873d70a82c004885ff74078b37e844e60300488b7c2408e83ac70100e8e5c40000ba12000000be50124a00bf02000000e851db0300ebe50f1f440000662e0f1f840000000000415541544989cd55534889f54889fb4189d4be20124a00ba05000000bf9c284b004883ec08e8160000004d89e84489e14889ea4889de4889c7e882feffff66904189d14531c031c931d2e9e11300009055534889fd4889f34883ec0848837e2000745d488d763848837d20007442488d7d38e8f9e9ffff85c07527488b33488b7d00e8e9e9ffff85c07517488b7310488b7d10e8d8e9ffff85c075068b45082b43084883c4085b5dc30f1f8000000000488b7d38ebbc662e0f1f840000000000488b7638eba1662e0f1f84000000000041574156415541544989f455534889fb4883ec088b0383f8010f84f90000000f8ed300000083f802745683f8030f85ad0000004c8b6b08418b6d0083fd010f842c0200000f8e1601000083fd020f844502000083fd030f8574010000498b7d084c89e6e898ffffff4883f80119c0f7d083c00248984d8b6cc508ebbb0f1f4000488b6b088b450083f8010f84b80200000f8eea00000083f8020f844102000083f8037524488b7d084c89e6e850ffffff4883f80119c0f7d083c0024898488b6cc508ebc00f1f40008b430483f80f0f84a80200004531ed83f80e0f850801000031c94883c4084889c85b5d415c415d415e415fc30f1f400085c075e48b43044c89e185c074dc83f80175d5488b4b08ebd10f1f8000000000488b5b088b0383f8010f84010200007e7f83f8020f84ee00000083f8030f85d5000000488b7b084c89e6e8b9feffff4883f80119c0f7d083c0024898488b5cc308ebc10f1f44000085ed756c418b450485c00f843002000083f801755b498b4d08e906010000669085c00f8540ffffff8b450485c00f840502000083f8010f852cffffff4c8b6d08e9b90100000f1f0085c075648b430485c00f84d101000083f801755431c948837b08000f94c1e917ffffff0f1f440000bd020000004863ed488b5ceb08e932feffff660f1f440000488b7b104c89e6e80cfeffff8b4b044889c583e90383f90a0f87dafeffffff24cd68124a000f1f00b901000000e9c8feffff660f1f440000488b7b084c89e6e8d4fdffff8b4b044889c583f90f0f848501000083f90e0f851c0400004885c0b9010000000f8490feffff488b7b104c89e6e8a2fdffff31c94885c00f94c1e977feffff0f1f440000498b7d084c89e6e884fdffff31c94885c00f94c14883f90119edf7d583c502e941ffffff0f1f4000498b7d084c89e6e85cfdffff4989c6418b450483f80f0f841c01000083f80e0f85eb0100004d85f60f840fffffff498b7d104c89e6e82efdffff31c94885c00f95c1eba80f1f4000488b7d084c89e6e814fdffff8b4d044989c683f90f0f84b500000083f90e0f857c0200004531ed4885c07452488b7d104c89e64531ede8e5fcffff4885c0410f95c5eb3a0f1f4000488b7b084c89e6e8ccfcffff31c94885c00f95c1e9a1fdffff0f1f8000000000488b7d084c89e64531ede8a9fcffff4885c0410f94c58b4b0483f90f0f842601000083f90e0f8575feffff4d85ed0f8464fdffff488b7b10ebaa660f1f44000031c94d85e40f94c1e94dfdffff0f1f004d89e5ebc10f1f004c89e1e9dcfeffff0f1f8400000000004885c041bd0100000075a3e94cffffff31c94885c00f8517fdffffe982feffff4d85f6bd010000000f85f7fdffffe9e3feffff31c94c39e80f95c1e9f2fcffff31c94c39e80f94c1e9e5fcffff31c94c39e80f96c1e9d8fcffff31c94c39e80f93c1e9cbfcffff31c94c39e80f92c1e9befcffff31c94c39e80f97c1e9b1fcffff4c89e94829c1e9a6fcffff4a8d0c28e99dfcffff4885c0750abf08000000e81cbf00004c89e831d248f7f54889d1e97efcffff4885c0750abf08000000e8fdbe00004c89e831d248f7f54889c1e95ffcffff4889c1490fafcde953fcffff904d85edb9010000000f8544fcffffe9d9feffff0f1f440000498b7d104c89e6e84cfbffff4889c5418b450483e80383f80a0f8709fdffffff24c5c0124a0031c94939ee0f94c1e9a9fdffff31c94939ee0f93c1e99cfdffff31c94939ee0f96c1e98ffdffff31c94939ee0f97c1e982fdffff31c94939ee0f92c1e975fdffff4c89f14829e9e96afdffff498d0c2ee961fdffff4885ed750abf08000000e83ebe00004c89f031d248f7f54889d1e942fdffff4885ed750abf08000000e81fbe00004c89f031d248f7f54889c1e923fdffff4c89f1480fafcde917fdffff31c94939ee0f95c1e90afdffff660f1f440000488b7d104c89e6e874faffff8b4d044989c783e90383f90a0f872afbffffff24cd18134a004531ed4939c6410f94c5e9aafdffff4531ed4939c6410f93c5e99bfdffff4531ed4939c6410f96c5e98cfdffff4531ed4939c6410f97c5e97dfdffff4531ed4939c6410f92c5e96efdffff4929c64d89f5e963fdffff4d8d2c06e95afdffff4885c0750abf08000000e85dbd00004c89f031d249f7f74989d5e93bfdffff4885c0750abf08000000e83ebd00004c89f031d249f7f74989c5e91cfdffff4c0faff04d89f5e910fdffff4531ed4939c6410f95c5e901fdffff0f1f00488b7b104c89e6e894f9ffff8b4b044989c483e90383f90a0f8792fbffffff24cd70134a0031c94839c50f94c1e950faffff31c94839c50f92c1e943faffff31c94839c50f97c1e936faffff31c94839c50f96c1e929faffff31c94839c50f93c1e91cfaffff31c94839c50f95c1e90ffaffff31c94801c50f94c1e902faffff4885c0750abf08000000e881bc000031d24889e831c949f7f44885d20f94c1e9def9ffff4885c0750abf08000000e85dbc000031d24889e831c949f7f44885c00f94c1e9baf9ffff480fafe831c94885ed0f94c1e9a9f9ffff0f1f8000000000554889f84889e54157415641554154534881ec880000004c898560ffffff448b47084889bd70ffffff4889b558ffffff488955a0898d68ffffff4585c00f8edd030000488b58104885db0f840c01000048837b60008b43288945a80f849f0200004c8b75a04c89f7e8331702004c89f74989c7898578ffffffe862bb00008b7b5831d289c6448b7368f7f7448d47fe89f04189d531d241f7f0488b4360488945984489f84189ff48894580448d62014489e04529e729f88945904489f84589e74989dc4489eb4189c5eb7d0f1f440000488b4d98448b1481410fca4585d2747c4183ea01443955a80f8682000000418b7c2418498b44243085ff0f84e00100004a8d3cd08b070fc8398578ffffff77278b4704498b34240fc889c0488b7da04801c64c895588e835e1ffff85c04c8b55880f848a0a00008b4590428d343b01d84439eb0f42c689c34585f689d87581488b5598448b14824585d2758431c0488d65d85b415c415d415e415f5dc30f1f004489d02b45a8488b55804489558848c1e0044903442448483b1073ab488b7008488b7da0e8c7e0ffff85c0759a448b55884c89e38b45a84d89d64939c60f83f50100008b4b184c8b3b488b433885c90f843b0200004a8d14f08b42040fc889c04c01f8488945a08b028b9568ffffff0fc883c00185d2488945980f84e6010000488b8558ffffff4885c00f84f7020000488b40104885c0488945900f84e6020000b8000000004885c07409488dbb80000000ffd04c8b6b784d85ed0f8417020000488b53704b8d446d0048895d884c8b65904c89eb4c8d7cc2e8eb110f1f40004983ef184885db0f84e7010000498b3f4c89e64883eb01e8f4dfffff85c075e0b800000000488b5d884d89fc4885c0488945887415488dbb80000000e86fdcbfff4d85e40f84c301000049837c2408ff0f8430010000498b4424104885c00f84ed0200004883f8ff0f84d70200004a8b04f04885c00f845f030000488d7808488b0048897da048894598e9f7000000904a8d04d08b9578ffffff3b100f8745feffff498b34248b4004e91dfeffff66908b45a84531ff4989c5488945904889d84c89eb4989c5eb310f1f8400000000004e8d343b488b7da049d1ee438b74f40448037598e827dfffff85c0785b85c00f84f30000004d8d7e014939df0f830afeffff418b7518498b45004d8b653085f64889459874ba4d8d341f488b7da049d1ee438b74f4040fce89f648037598e8dddeffff85c079b64d39f74c89f372d7e9c8fdffff0f1f40004d39f74c89f37280e9b7fdffff0f1f004c89f14829c14889c848c1e00448034350488b4808488b0048894da0488945988b9568ffffff85d20f851afeffff488b8560ffffff488b7d98488938488b45a0488d65d85b415c415d415e415f5dc3660f1f8400000000004a8d04f08b50048b0083c001498d3c174889459848897da0ebae660f1f440000e8cb130000488b8570ffffffe912fcffff0f1f80000000004c89eb488b4590e966fdffff488b5d88b8000000004531e44885c0488945880f8528feffffb8000000004885c07409488dbb80000000ffd0488b43784885c0488945800f84cd0600004889c1488b437048899d68ffffff4c8b7d904889cb4889c748898578ffffff488d0449488d54c7e84989d5eb0f66904983ed184885db0f84f3020000498b7d004c89fe4883eb014d89ece890ddffff85c075dc488b9d68ffffff48837d88000f84b4fdffff488dbb80000000e80edabfffe9a3fdffff8b05239a2c004c8b2d149a2c0085c00f84730200004d85ed4c896d900f85f8fcffff48c7c0b0ffffff64488b00488b00488b80b000000048894590e9dafcffff488b034889df488905fc992c00e8b7b9010048c705dc992c000000000048c705c9992c0000000000833d56ab2c0000740bf0ff0dc9992c00750aeb22ff0dbf992c00741a488d3db6992c004881ec80000000e8c20104004881c48000000048c7c0ffffffffe9bdfbffffbe01000000833d0fab2c0000740cf00fb13581992c00750beb230fb13576992c00741a488d3d6d992c004881ec80000000e8490104004881c48000000049837c2410000f8488050000833dcbaa2c0000740bf0ff0d3e992c00750aeb22ff0d34992c00741a488d3d2b992c004881ec80000000e8370104004881c480000000498b442410e98afcffffbe01000000833d86aa2c0000740cf00fb135f8982c00750beb230fb135ed982c00741a488d3de4982c004881ec80000000e8c00004004881c480000000488b45a04531ed4c8975a8488b0daf982c004c8b7d984589ee488945b8488b05a5982c004883c008488945c0eb610f1f004585f60f849f0000004183c601488b1d94982c004169cef00f00004889df4c63e94c89ee4c892d65982c00e8f8b901004885c00f8466feffff498d4df848890564982c00488d50084883c01048890d3d982c00488945c04889153a982c004883f907769c4c89fa480355b8498b7c24084c8d4408f84c8d4dc8488d4dc0488d75b8e8a2200400a9fbffffff0f844603000083f8050f8502030000488b45a0488945b8e959ffffff90bff00f000048c705d8972c00f00f0000e80bb401004885c00f84ebfdffff488b15db972c00b9e80f0000488905cf972c0041be01000000488910e95dffffffbfc8134a00e807c100004885c04989c474098038000f85640300004c8b2d77972c00c70575972c0001000000e95cfdffff488b9d68ffffff488b8578ffffff4885c00f846d030000488b7d80488d747f034889c748c1e603e8e4b801004989c44d85e40f840d020000488b7d904c896370e85b0f02004885c04989c50f84f4010000488b4580488bbd70ffffff4c8d45c8488bb558ffffff31c9ba65694b00488d04404d8d24c44d892c2449c7442408ffffffffe8c8f7ffff4889c748c7c0ffffffff4839c70f8413f9ffff4885ff0f84cd010000bed7134a00e8c2d9ffff4885c00f84ba0100000fb65008488d7008f6c2df0f848b03000083ea0980fa01ba000000007713eb1f660f1f84000000000083e90980f901760e4883c2010fb64c1008f6c1df75ea488d421f4883e0f04829c44c8d44240f4983e0f04c89c74c8945804c894590e8463e020031ffc60000488b4d804c89e84c8b4590eb140f1f40004883c00180fa2f0f94c20fb6d24801d70fb61084d275e94c29e8490fbe55004883c0294883e0f04829c4488d44240f4883e0f084d24989c174214c8b1d17ff0a004c89ee418b14934883c0014883c6018850ff480fbe1684d275e94883ff010f8619020000c6000031ff4c89c0eb11904883c00180fa2f0f94c20fb6d24801d70fb61084d275e94c29c04883c0214883e0f04829c4490fbe00488d74240f4883e6f084c00f84800200004c8b05a7fe0a004889f2418b04804883c2014883c1018842ff480fbe0184c075e94883ff010f86eb010000c60200498d542408b9010000004c89cfe8e618040085c0745383f8ff744548837d8800740c488dbb80000000e81ad5bfff4c89efe812b5010031c0e969f7ffff48837d88000f8495fbffff488dbb80000000e8f4d4bfff48c7c0ffffffffe946f7ffff49c7442408ffffffff49c7442410000000004883437801e9a7faffff833d81a62c0000740bf0ff0df4942c00750aeb22ff0dea942c00741a488d3de1942c004881ec80000000e8edfc03004881c480000000e9edf6ffff488b05ba942c00488b55c04c8b75a84829c24883ea08488910498b5424104a8904f2488b4dc04829c848030589942c004889c24883e0f883e20748890578942c004801ca48891576942c00833dfba52c0000740bf0ff0d6e942c00750aeb22ff0d64942c00741a488d3d5b942c004881ec80000000e867fc03004881c480000000498b4424104a8b04f0e9cdf7ffff4889c7e89a0c02004c8d78014c89ffe84eb001004885c04989c5740e4c89fa4c89e64889c7e8489602004c892de9932c00e96dfcffff488b4580488d7c400348c1e703e81ab001004989c4e991fcffff488b437048898578ffffffe960fcffff4885ff488d5001c6002f745f4889d0e9d3fdffff8b7da8037b40be08000000e88ebb01004885c049894424100f85d7faffff49c7442410ffffffffe94cfaffff66904885ff488d4201c6022f750dc642012f4883c202e9fcfdffff4889c2e9f4fdffff4c89e3e9dbf5ffff488d7802c640012fba08000000bef1414a004c898d78ffffff4c89458048894d90e8213b0200488b4d904c8b45804c8b8d78ffffffe942fdffff31d2e99cfcffff4889f2e999fdffff0f1f4000662e0f1f840000000000554889e54157415641554154534881ecb80000004885f64889bd60ffffff4889b570ffffff48899548ffffff898d58ffffff4c898550ffffff44898d5cffffff0f849a0800004183f90c0f87460300004183f9060f843c03000048c7c0d0ffffffbb000000004885db648b0089853cffffff0f8465040000bf20c76c00ffd3bfe0bf6c00ffd34883bd60ffffff000f8491050000488b8570ffffff48c745b000000000488945c8488b8560ffffff488945908b855cffffff89c7894598e89ec704004889c74889c3e8b30a0200488d50014883c01f4889de4883e0f04829c4488d7c240f4883e7f0e86394020048898530ffffff488945a0bf60c06c00e8ded1bfff488d7d90ba40194000be48c06c00e81bda030048898540ffffffb8000000004885c07407bf60c06c00ffd0488b8540ffffff4885c07412488b008b0d46a32c003948180f8402040000488b1d2ea32c004885db0f846a0200004c8ba560ffffffeb160f1f40000f8855020000488b1b4885db0f844b020000488d73184c89e7e8bad4ffff85c075de488b430880382f48898578ffffff0f848d0000004889c741bd02100000e8d40902004c8d7801eb22660f1f44000048c7c0d0ffffff648338220f85a20100004c89e848d1e84d8d6c05204b8d443d1e4c89ee4883e0f04829c448c7c0d0ffffff4c8d64240f4983e4f064c700000000004c89e7e8fec603004885c074b131f64c89e7e8ef9c0200488bb578ffffff488d7801c6002fe8acd3ffff4c89a578ffffff8bbd5cffffff4863c7440fb6a0f8614a00e81fc604004989c54981c420624a008038430f8581010000807801000f85770100004c8bbd60ffffff4c89ffe8130902004c89e74989c648898520ffffffe801090200498d4406234c89e64883e0f04829c4488d44240f4883e0f04889c748898568ffffffe84ad3ffffb92f000000488d78014c89f26689084c89fee8333802004c89efc7002e6d6f00e8b50802004883c01f4883e0f04829c44c8d64240f4983e4f090410fb645003c3a0f847301000084c00f850b01000041c604244341c64424010041807c2401007463bfe9134a00b9060000004c89e6f3a67452488b9568ffffff488bbd78ffffff4889d94c89e6e82e0600004885c04989c774a6488b9570ffffff4c8d4588b9010000004889de4889c7e88bf0ffff4885c00f84120100004883f8ff4889c10f852f020000b8000000004885c07411bfe0bf6c00ffd0bf20c76c00e85acfbfff48c7c0d0ffffff8b8d3cffffff6489084883bd50ffffff0174548bbd58ffffff4c8bad48ffffff85ff7443488d65d84c89e85b415c415d415e415f5dc331db48c78578fffffff0134a00e956feffffbfe0134a00e891b800004885c00f8476feffff8038004c0f45e8e96afeffff4c8bad70ffffffebb40f1f004c89e2eb070f1f003c3a74144883c2014983c5018842ff410fb6450084c075e8c602008b154f6e2c0085d2741bbe2f0000004c89e7e826d2ffff4885c00f859dfeffff0f1f440000410fb604243c430f85b3feffffe9a6feffff660f1f4400004983c501e977feffff0f1f8000000000498b7f204885ff0f8463feffff4531f64c89ad28ffffff4589f54d89e64c8ba570ffffffeb28662e0f1f8400000000004885c00f85e60000004183c5014963c5498b7cc7204885ff0f84580100004c8d4588b9010000004c89e24889dee80eefffff4883f8ff75c8e98efeffff4883bd60ffffff000f843a010000488b8560ffffff488975c848c745b000000000488945908b855cffffff89c7894598e84ec304004889c74889c3e863060200488d50014883c01f4889de4883e0f04829c4488d7c240f4883e7f0e81390020048898530ffffff488945a0e9b5fbffff8bb558ffffff85f60f851d0300004c8b6828b8000000004885c07411bfe0bf6c00ffd0bf20c76c00e866cdbfff48c7c0d0ffffff8b8d3cffffff648908e922feffff4d63d54889c14f8b7cd7204883bd40ffffff000f84f6000000488b9d40ffffff8b15d39e2c00488b038950184c897820488b03488b558848894828488b034889503048c7c0d0ffffff8b9d3cffffff6489188b8558ffffff85c00f85f9020000b8000000004989cd4885c00f84b1fdffffbfe0bf6c00ffd0bf20c76c00e8cfccbfffe99bfdffff4c8bad28ffffff4d89f4e9bbfcffff488b054c6d2c00488b8d70ffffff48c745b00000000048898560ffffff488945908b855cffffff48894dc889c7894598e806c204004889c74989c4e81b050200488d50014883c01f4c89e64883e0f04829c4488d7c240f4883e7f0e8cb8e02004885db48898530ffffff488945a00f855ffaffffe964faffff488bbd70ffffff48898d78ffffffe8cf0402004c8ba530ffffff488b8d78ffffff488d5801418b14244983c4048d82fffefefef7d221d0258080808074e789c248898d78ffffff4c8bb520ffffffc1ea10a9808000000f44c2498d54240289c14c0f44e200c14983dc034c2ba530ffffff4b8d7c343a4801dfe824a801004885c0488b8d78ffffff0f84a5feffff488bb570ffffff488d78384889da48898d68ffffff48898578ffffffe8a3330200488bb560ffffff4889c34c89f04883c0014889df4989c54889c2e8e48d02004e8d0c2b488bb530ffffff498d5424014c89cfe8cc8d02004c8b8578ffffff4989c18b855cffffff488b8d68ffffff418940088b05e39c2c004989184d8948104d8978204989482841894018488b458849894030b8000000004885c074234c898570ffffff48898d78ffffffbf60c06c00ffd04c8b8570ffffff488b8d78ffffff4c89c7ba40194000be48c06c0048898d70ffffff4c898578ffffffe8c3cf03004889c3b8000000004c8b8578ffffff4885c0488b8d70ffffff74234c898570ffffff48898d78ffffffbf60c06c00ffd04c8b8570ffffff488b8d78ffffff4885db74094c3b030f8478fdffff4c89c748898d78ffffffe878aa0100488b8d78ffffffe95dfdffff0f1f4000488b58304c8b6828488b4020488bb550ffffff4c8b6010498bbc24b8000000e804e4ffff493b8424c00000000f83b5fcffff4c89ef4989c44c01ebeb1b0f1f0031f64983ec01e83d960200488d78014839df0f838ffcffff4d85e475e34989fde982fcffff0f1f004531ede9c9faffff4d8b6710488bb550ffffff48898d78ffffff488b5d88498bbc24b8000000e895e3ffff493b8424c0000000488b8d78ffffff0f83cffcffff4889cf4989c44801cb4989cd4d85e4741c31f64983ec01e8c4950200488d78014839df72e74c89e9e9a2fcffff4889f9e99afcffff662e0f1f8400000000009041574156b800000000415541544989f555534889fd4989d64989cc4883ec484885c07407bfa0c06c00ffd04889ef41bf00000000e8e70102004883ec08488d50014531c96a00415631c96a006a004d89e86a004889eebfd8c06c00e8b01d00004883c4304d85ff4889c37408bfa0c06c0041ffd74885db0f84930000008b730885f67e7448837b10004889d874124883c4485b5d415c415d415e415fc30f1f00488b7b204885ff74e531edeb1a0f1f0048837f1000752983c5014863c5488b7cc3204885ff74198b4f0885c97fe24c89e6e89a0100004863c5488b7cc320ebd04883c4484889d85b5d415c415d415e415fc3660f1f4400004c89e64889dfe86d010000e97cffffff0f1f8400000000004c89efe8381b00004885c0488944240874144889c7e8a60002004885c04989c50f842b0100004c8d4c24384c8d442430488d4c2428488d542420488d7424184c89efe88923000083f8ff89c30f84ff000000b8000000004885c07407bfa0c06c00ffd04889efe8a50002004883ec08488d50014889ee6a01415689d9ff742438ff742458bfd8c06c00ff7424584c8b4c24584c8b442448e8641c00004883c4304d85ff4889c5740abfa0c06c00e8bec7bfff4885ed74228b550885d20f8e7f00000048837d1000743548837c24080074084c89efe897a7010083e3014889e80f8499feffff488b7c243848896c2408e87ca70100488b442408e980feffff488b7d204885ff74c24531f6eb1c0f1f400048837f100075b24183c6014963c6488b7cc5204885ff74a18b470885c07fe14c89e6e8290000004963c6488b7cc520ebcf4c89e64889efe814000000e971ffffff31c0e926feffff0f1f840000000000554989f064488b1425100000004889e54157415641554154534889fb4881ec38010000483b15ce872c007446be0100000031c0833d92982c0000740cf00fb135ac872c00750beb230fb135a1872c00741a488d3d98872c004881ec80000000e8ccee03004881c48000000048891586872c008b057c872c00448b630883c0014585e489056c872c00754b488b3b4d89c6c74308ffffffff48c74310000000004885ff742ab90200000031f689c80f05483d00f0ffff4989c4767e48c7c0d0ffffff41f7dc644489208b0526872c00c743080100000083e80185c0890514872c00754148c7050b872c0000000000833dd8972c0000740bf0ff0df3862c00750aeb22ff0de9862c00741a488d3de0862c004881ec80000000e844ee03004881c480000000488d65d85b415c415d415e415f5dc3660f1f44000083f8ff7424488d9540ffffff89c6bf01000000e8e0b8030085c0741c4d63e44c89e7b8030000000f058b058d862c00e962ffffff0f1f40004c8bad70ffffff4983fd2f76d74531c931ff4589e0b902000000ba010000004c89eee8b9c303004883f8ff4989c70f84b10100004963fcb8030000000f05418b073dde1204950f95c23d950412de889520ffffff741a84d274164c89ee4c89ffe83bc40300eb8a660f1f840000000000c7851cffffff01000000bfc8000000e87ca101004885c048898528ffffff0f845dffffff0fb69520ffffff8b8d1cffffff488943104c89384c89681048c740200000000089480884d2895018418b47040f84bd0100000fc83dffff01000f874b020000418b4f08488bb528ffffff458b57140fc9894e28418b4f0c410fca0fc989c94c01f948894e30418b4f10448956580fc989c94c01f94183fa0248894e380f86b3010000418b4f180fc989c94c01f96685c089566848894e60742a4885c90f84e801000080bd20ffffff00418b47240f84020200000fc885c08985e0feffff0f859b030000488b8528ffffffc740400000000048c74048000000004889c148c7405000000000b80000000048c741700000000048c74178000000004885c0740e488db98000000031f6e800c4bfff4c8d8530ffffff31c9ba65694b004c89f64889dfe8e7e4ffff4883f8ff0f845f010000488b8d28ffffff4889c7488d91c0000000488db1b8000000e8c09f0000e90cfeffff4c89efe813a001004885c04989c70f84ebfdffff4d63e44989c14d89e84531d24c89c24c89ce4c89e74489d00f05483d00f0ffff765748c7c2d0fffffff7d883f8046489020f85b7fdffff4d85c075d04c89e7b8030000000f05418b1781fade1204950f95c081fa950412de888520ffffff0f84e50a000084c00f84dd0a00004c89ffe833a30100e97ffdffff4885c00f8e6cfdffff4901c14929c0ebad3dffff01000f8790000000418b4f08488bb528ffffff458b5714894e28418b4f0c4c01f948894e30418b4f10448956584c01f94183fa0248894e387609418b4f18e955feffff6685c048c74660000000008956680f847afeffff488b7e20e8baa201008b851cffffff85c074244c89ee4c89ffe8a5c10300488bbd28ffffffe899a2010048c7431000000000e9ddfcffff4c89ffe884a20100ebdd31ffebbfb8000000004885c00f84e60500004c8bb528ffffff498dbe80000000e85dc2bfff498b7e20eb9885c08985e0feffff0f8400feffff418b471c418b772089c18985e8feffff488d04c51e0000004c01fe48c1e80448c1e0044829c4488d44240f4883e0f085c948898500ffffff0f84b3050000448995f8feffff48899d08ffffff4883c6044531c031ff41bb1d144a0049bc0110822001000000448b95e8feffff440fb68d20ffffff4c89ad10ffffff488b9d00ffffffeb578b168b46fc0fca0fc889d24c01fa85c00f84e300000083e801803c02000f85d60000000fb6023c50743c3c490f857f080000807a0100b800000000490f44c383c7014a8904034883c6084983c0084139fa0f86f40400004584c975a48b168b46fc4c01faeba831c0807a015275d1807a024975cb0fb64a03448d69a84180fd2077bd4d0fa3ec73b7440fb66a044180fd380f84b10500004180fd310f845305000031c04180fd330f8511090000807a0532758c807a0600758680f9640f84f208000080f9690f84df08000080f96f0f84cc08000080f9750f84b908000080f9780f84a608000080f9580f85bd070000b8e55c4b00e946ffffff488b8528ffffff4c8bad10ffffff488b9d08ffffff488b7820e9effdffff418b471c418b77200fc80fce89c18985e8feffff89c0488d04c51e00000089f64c01fe48c1e80448c1e0044829c4488d44240f4883e0f085c948898500ffffff0f855dfeffff418b47280fc889c04c01f8488985f0feffff418b472c0fc889c04c01f84589d24c89b5b0feffff488985d8feffff4c8ba500ffffff4a8d049500000000448bb5e8feffff48c78508ffffff00000000488985b8feffff488985c0feffffc78510ffffff000000004c89add0feffff4c89bdf8feffff48899dc8feffff4531ed80bd20ffffff000f84ce0200004d85ed0f845f070000488b85d8feffff488b8d08ffffff8b04880fc889c2480395f8feffff837a08ff0f84070300004c8d7a0431dbeb250f1f4400004439f00f83f802000089c0498b3cc44885ff7453e827f801004983c7084801c3418b070fc889c04801c3418b47040fc883f8ff75cb4a899ced30ffffff4983c5014983fd020f856cffffff488b8538ffffff48038530ffffff838510ffffff01480185c0feffff48838508ffffff01488b8508ffffff3985e0feffff0f8732ffffff83bd10ffffff004c8badd0feffff4c8bbdf8feffff488b9dc8feffff4c8bb5b0feffff0f84acfaffff8b8510ffffff8d3c0048c1e7044803bdc0feffffe83c9b01004885c048898520ffffff0f84420200008b8510ffffff488b8d20ffffff488b9528ffffff4c8b8db8feffff4c8b95f0feffffc785f8feffff000000004c89adc8feffff48899dc0feffff48c1e00448894a204c89b5b8feffff4801c14801c848898dd0feffff488985e8feffff4901c1488b85d8feffff48898508ffffff8b85e0feffff498d0482488985d8feffff4c3b95d8feffff0f84b7030000488b8528ffffff488b8d00ffffff31d2488bb508ffffff448b58184585db0f845a03000085d20f84db0400008b060fc889c04c01f8837808ff0f851903000083c20183fa0275d48b85f8feffff488b8d20ffffff4531c048c1e0044801c1480385d0feffff48898de0feffff488985f0feffff4585db0f84a10200004585c00f8419050000488b8508ffffff4c8bb5f0feffff8b180fcb89db4c01fb448b23410fcc4589e44d01fc837b08ff0f840e0500004d894e084c89b5b0feffff4883c30444898518ffffff4c8995a8feffff4589deeb518b4b04410fcd0fc94585ed0f851a01000083f9ff0f843c010000488b8500ffffff89c94883c308488b34c831c04883c9ff4889f7f2ae4c89cf4889c848f7d04c8d68ff4c89eae8917f02004989c14d01e94585f6448b2b75a78b4b04ebaa4d85ed0f84b6040000488b85d8feffff488b8d08ffffff8b1488480395f8feffff837a08ff74414c8d7a0431dbeb250f1f80000000004139c67634498b3cc44885ff0f848dfdffffe861f501004983c7084801c3418b074801c3418b470483f8ff75d3e93bfdffff31dbe934fdffff4c8badd0feffff4c8bbdf8feffff488b9dc8feffff488b8528ffffff488b7820e9bbf9ffff80bd20ffffff00448b95f8feffff4c8bad10ffffff488b9d08ffffff0f85f0fbffff418b47284c01f8488985f0feffff418b472ce9f3fbffff4589ed4c89e64c89cf4c89ea898da4feffff4d01ece8977e02004989c18b8da4feffff4d01e9e9bbfeffff4c8bb5b0feffff4c89c8448b8518ffffff4c8b95a8feffff492b46084989064183c0014183f8020f85b60000008385f8feffff014983c20448838508ffffff04e984fdffff807a05360f8541faffff807a06000f85e202000080f9640f84cf02000080f9690f84bc02000080f96f0f84a902000080f9750f849602000080f9780f848302000080f9580f856e020000b8e55c4b00e9f7f9ffff807a05000f85edf9ffff80f9640f84b402000080f9690f84a102000080f96f0f848e02000080f9750f847b02000080f9780f849a02000080f9580f8524020000b8e55c4b00e9adf9ffff488b8528ffffff448b5818e956fdffff4585c00f84e9010000488b8508ffffff4c8bb5f0feffff8b184c01fb448b234d01fc837b08ff0f8569fdffff8b43044989064d896608e9f1feffff4883c004eb1189ff48833cf9000f84f3feffff4883c0088b78040fcf83ffff75e5e9c1fcffff85d20f84790100008b064c01f8837808ff0f84aafcffff4883c004eb0f48833cf9000f84b8feffff4883c0088b780483ffff75e9e988fcffff8b8df8feffff398d10ffffff4c8badc8feffff488b9dc0feffff4c8bb5b8feffff0f8549010000488bb528ffffff31c08b4e58eb1d837e6800488b56608b148274020fca488bbde8feffff8914874883c00139c177df4989d8488b9d28ffffff4531c94d89cc4d89f14d89ee488b8d20ffffff4c89e04c898d00ffffff48c1e0044c898508ffffff4589e5488b7c0108e8d49600008b7b5831d289c14c8b8508ffffff4c8b8d00fffffff7f7448d57fe89c889d631d241f7f24189fa8d420189c14129c229f9eb0e8d140e8d3c064439d60f42d789d6488bbde8feffff89f2488d1497448b1a4585db75dd8b43284983c4014439a510ffffff418d44050189020f8766ffffff488b8528ffffff8b8d10ffffff4d89f54c89c34d89ce894840488b8d20ffffff48897860c740680000000048894848488b8dd0feffff488948504889c1e919f5ffff418b02e981feffff418b02e91ffbffff418b1a4c8bb5e0feffff4c01fb448b234d01fce918feffffe8c496000031c0e987f7ffffb89a4c4a00e97df7ffffb862684b00e973f7ffffb8744c4a00e969f7ffffb8f7544a00e95ff7ffffb883d64b00e955f7ffff31c0e94ef7ffffb862684b00e944f7ffffb8744c4a00e93af7ffffb8f7544a00e930f7ffffb883d64b00e926f7ffffb89a4c4a00e91cf7ffff418b1a4c8bb5e0feffff0fcb89db4c01fb448b23410fcc4589e44d01fce9e8faffff8b43040fc889c0e980fdffff488b85f0feffff488b8d08ffffff8b0488e99cf8ffffc7851cffffff00000000e929f3ffff488b85f0feffff488b8d08ffffff8b1488e945fbffffb89a4c4a00e9a9f6ffffb862684b00e99ff6ffffb8744c4a00e995f6ffffb8f7544a00e98bf6ffffb883d64b00e981f6ffff4180fd367554807a05340f8571f6ffff807a06000f8567f6ffff80f9640f841306000080f9690f840006000080f96f0f84ed05000080f9750f84da05000080f9780f848500000080f9580f859efeffffb81a144a00e927f6ffff4180fd4c0f84a30100004180fd460f84f80000004180fd4d0f84900000004180fd500f85fff5ffff807a05540f85f5f5ffff807a06520f85ebf5ffff807a07000f85e1f5ffff80f964745980f969744a80f96f743b80f975742c80f978741d80f9580f852cfeffffb81a144a00e9b5f5ffffb811144a00e9abf5ffffb811144a00e9a1f5ffffb817144a00e997f5ffffb822144a00e98df5ffffb81f144a00e983f5ffffb814144a00e979f5ffff807a05410f856ff5ffff807a06580f8565f5ffff807a07000f855bf5ffff80f9640f84df04000080f9690f84cc04000080f96f0f84b904000080f9750f84a604000080f9780f844b01000080f9580f8592fdffffb81a144a00e91bf5ffff807a05410f8511f5ffff807a06530f8507f5ffff807a07540f85fdf4ffff440fb66a084180fd380f84830300004180fd310f84350300004180fd330f84d70200004180fd360f85d0f4ffff31c0807a09340f85c4f4ffff807a0a000f85baf4ffff80f9640f84a402000080f9690f849102000080f96f0f847e02000080f9750f846b02000080f9780f845802000080f9580f85f1fcffffb81a144a00e97af4ffff807a05450f8570f4ffff807a06410f8566f4ffff807a07530f855cf4ffff807a08540f8552f4ffff440fb66a094180fd380f84340100004180fd310f84e60000004180fd330f84880000004180fd360f8525f4ffff31c0807a0a340f8519f4ffff807a0b000f850ff4ffff80f964745980f969744a80f96f743b80f975742c80f978741d80f9580f855afcffffb81a144a00e9e3f3ffffb811144a00e9d9f3ffffb811144a00e9cff3ffffb817144a00e9c5f3ffffb822144a00e9bbf3ffffb81f144a00e9b1f3ffffb814144a00e9a7f3ffff807a0a320f859df3ffff807a0b000f855701000080f9640f844401000080f9690f843101000080f96f0f841e01000080f9750f840b01000080f9780f84f800000080f9580f85cafbffffb8e55c4b00e953f3ffff807a0a360f8549f3ffff807a0b000f85ca00000080f9640f84b700000080f969746c80f96f745d80f975746c80f978744980f9580f8586fbffffb8e55c4b00e90ff3ffff807a0a000f8505f3ffff80f964747780f969746880f96f745980f975744a80f978743b80f9580f8550fbffffb8e55c4b00e9d9f2ffffb89a4c4a00e9cff2ffffb8744c4a00e9c5f2ffffb8f7544a00e9bbf2ffffb862684b00e9b1f2ffffb89a4c4a00e9a7f2ffffb862684b00e99df2ffffb8744c4a00e993f2ffffb8f7544a00e989f2ffffb883d64b00e97ff2ffffb883d64b00e975f2ffff31c0e96ef2ffffb89a4c4a00e964f2ffffb862684b00e95af2ffffb8744c4a00e950f2ffffb8f7544a00e946f2ffffb883d64b00e93cf2ffff31c0e935f2ffffb811144a00e92bf2ffffb817144a00e921f2ffffb822144a00e917f2ffffb81f144a00e90df2ffffb814144a00e903f2ffff807a09320f85f9f1ffff807a0a000f855701000080f9640f844401000080f9690f843101000080f96f0f841e01000080f9750f840b01000080f9780f84f800000080f9580f8526faffffb81a144a00e9aff1ffff807a09360f85a5f1ffff807a0a000f85ca00000080f9640f84b700000080f969746c80f96f745d80f975746c80f978744980f9580f85e2f9ffffb81a144a00e96bf1ffff807a09000f8561f1ffff80f964747780f969746880f96f745980f975744a80f978743b80f9580f85acf9ffffb8e55c4b00e935f1ffffb811144a00e92bf1ffffb822144a00e921f1ffffb81f144a00e917f1ffffb817144a00e90df1ffffb89a4c4a00e903f1ffffb862684b00e9f9f0ffffb8744c4a00e9eff0ffffb8f7544a00e9e5f0ffffb883d64b00e9dbf0ffffb814144a00e9d1f0ffff31c0e9caf0ffffb811144a00e9c0f0ffffb817144a00e9b6f0ffffb822144a00e9acf0ffffb81f144a00e9a2f0ffffb814144a00e998f0ffff31c0e991f0ffffb817144a00e987f0ffffb822144a00e97df0ffffb81f144a00e973f0ffffb814144a00e969f0ffffb817144a00e95ff0ffffb822144a00e955f0ffffb81f144a00e94bf0ffffb814144a00e941f0ffff0f1f8000000000488b36488b3fbac0284b00e9f0b4ffff554863d64889fe488d422c4889e541574156415541544883e0f0534881ecd80100004829c4488d5c240f4883e3f04889dfe88a190200ba0e000000be40144a004889c7e878190200be25144a004889dfe85bad00004885c00f840d0400004989c78b0089c280ce80a8104189170f85f003000048c78518feffff000000006690488dbd40feffff4c89fabe90010000e81ccc00004885c00f84ff010000488dbd40feffffbe0a000000e882b4ffff4989c648c7c0f0ffffff0fb68d40feffff64488b004889caf644480120488d8d40feffff74150f1f40004883c1010fb631f6447001204889f275ef84d20f849c01000080fa230f84930100000fb65101488d590184d27519e9150200000f1f4400004883c3010fb61384d20f8401020000f64450012074ea4889da4883c3010fb67201c60200f6447001204889f2741366904883c3010fb633f6447001204889f275ef84d20f84340100000fb65301488d730184d27516eb2e660f1f8400000000004883c6010fb61684d2741a0fb6faf64478012074eb80fa0a0f857d020000c60600c646010a4c8b2514712c00488b3505712c004939f40f83670200004889cf48898d28feffffe895e80100488d50014889df48899538feffffe882e80100488b9538feffff4c8b1de4702c004c8d5001488b8d28feffff4a8d041a48898538feffff4c01d04889c748898530feffff488b05b2702c004839c70f87210100004c8b0d7a832c00488b3d6b832c004d89e54889ce4c899520feffff49c1e5044c898d28feffff4983c4014901fd4b8d3c19e8db710200488bbd38feffff4c8b8d28feffff4889de4c8b9520feffff498945004c01cf4c89d2e8b471020048838518feffff0149894508488b8530feffff4c89252a702c0048890533702c004d85f6746c41f607100f84e4fdffff4c89ffe83ca6000031c04883bd18feffff007424488b35f96f2c00488b3dca822c00b9404e4000ba10000000e863980000488b8518feffff488d65d85b415c415d415e415f5dc30f1f440000488dbd40feffffbe0a000000e837b2ffff4885c07594488dbd40feffff4c89fabe90010000e89ec900004885c075d1e976ffffff0f1f400066f70000200f8515feffffe95dffffff4a8d3412bf000400004c8b2d50822c004c899d00feffff48898d08feffff4881fe000400004c899510feffff48899520feffff480f42f74c89ef4c8d04064c89c64c898528feffffe8f38f01004885c00f8416ffffff4939c5488b3df8812c004c8b8528feffff488b9520feffff4c8b9510feffff488b8d08feffff4c8b9d00feffff74404d85e4743b4889c64d89e14c29ee49c1e1044889b528feffff4901f94889fef30f7e8d28feffff660f6cc9f30f6f064883c610660fd4c10f1146f04c39ce75eb48890594812c004c8905b56e2c004989c1e912feffffc60600e982fdffff4885f6743e4c8d2c3648c1e605488b3d61812c0048898d38feffffe83d8f01004885c00f8460feffff48890545812c004c892d5e6e2c00488b8d38feffffe956fdffffbe4006000041bd64000000ebbd4c89ffe875a40000488d65d831c05b415c415d415e415f5dc30f1f400041574156be010000004155415431c055534889fb4883ec08833dcd7e2c0000740cf00fb1351f6e2c00750beb230fb135146e2c00741a488d3d0b6e2c004881ec80000000e807d503004881c48000000048833dc86d2c00000f84510100004c8b3dcb6d2c004d85ff74544c8b3597802c004531edeb19662e0f1f8400000000000f84220100004c8d6d014d39ef762f4b8d6c3d00bac0284b004889df48d1ed4989ec49c1e4044d01f4498b3424e8beafffff85c079ca4989ef4d39ef77d1488b0d5b6d2c000fb60184c074694889cf31f60f1f80000000003c3a488d510175174889d7488d52010fb642ff3c3a74f14889f9be0100000084c00f849d000000488d7701eb0a0f1f003c3a74114889d60fb6064889f1488d560184c075eb4839fe775d84c04889f7be0100000075aa48890deb6c2c0031d2833dae7d2c0000740bf0ff0d016d2c00750aeb22ff0df76c2c00741a488d3dee6c2c004881ec80000000e81ad403004881c4800000004883c4084889d05b5d415c415d415e415fc34889359a6c2c004829fee8f2f9ffff4885c00f8427ffffffe9c2feffff4084f67494eb8b0f1f440000498b542408eb8848c705666c2c0029144a00e99ffeffff90415741564d89ce415541544189cc55534889d34883c3024883ec4848897c24084c89c748897424284889542418894c24344c8904244c894c2410e8d1e301004183e4044c8bbc24980000004989c50f845c0400004c89f7e8b4e30100488d68018b4424344901dd4531f683e002894424207411488bbc2480000000e890e301004c8d70018b4424344c01ed31db83e001894424387411488bbc2488000000e86de30100488d58018b4424344c01f54531ed83e0088944243c7411488bbc2490000000e849e301004c8d68014c89ffe83de30100488d3c2b4989c64c01ef4801c7e8eb8601004885c04989c50f84a3040000488b5c2418488b7424284889c74889dae8da6c02004885db74254c89ed66904889efe8f8e201004829c34883eb01740f4801e8488d6801c6003aebe30f1f00488b442418488b3424498d7c050041c64405ff2fe837adffff4585e40f85ce0300008b74242085f60f85a00300008b4c243885c90f857b0300008b54243c85d20f8556030000488d7801498d5601c6002f4c89fee8576c0200488b442408488b004885c048894424200f84fc0300004989c431ed0f1f4000498b3c244885ff74154c89eee817adffff85c00f8478030000780d4c89e54d8b6424184d85e475d88b8424a000000085c00f8457030000488b4424184531e44c8b7424284885c04889c30f847c0300000f1f8400000000004c89f74983c401e804e201004829c34d8d7406014883eb0175e68b44243489c2255555000081e2aaaaffffd1fa01c289d081e23333000025ccccffffc1f80201d089c2c1fa0401d0250f0f000089c1c1f90801c1b801000000d3e04863f848c1e7044c0fafe7498d7c2428e8608501004885c04989c40f8426030000488b5c24184c8b7424284c89284531ed0f1f40004c89f74983c501e874e101004829c34d8d7406014883eb0175e64983fd01b8010000000f84fe0100004885ed418944240849c7442410000000000f8483020000488b451849894424184c896518488b4424184885c00f847f0200004c8b6c24284889c331ed0f1f004c89ef4883c501e80ce101004829c34d8d6c05014883eb0175e6448b6c243431c04883fd010f94c04129c54585ed0f88c40000008b442434488b4c241831edf7d089442420488b4424284c8d3408eb160f1f8400000000004183ed014183fdff0f849a00000044856c242075eb48837c24180074e3488b5c2428660f1f4400004889df4883c501e88ce001004883ec08488d50014489e96a0141574889deffb424a8000000ffb424a8000000ffb424a80000004c8b4c24404c8b442430488b7c2438e841fcffff4883c4304939de498944ec18768331f64889dfe8b9730200488d58014c39f30f836cffffff4885db758fe962ffffff669031ed660f1f440000bf4e144a00b90b0000004c89fef3a60f85870000008b5c243485db787f4189dd41f7d54589ee4989ed4c89fdeb12662e0f1f84000000000083eb0183fbff74594485f375f34883ec0889d94d8d7d016a0155ba1b000000ffb424a8000000ffb424a8000000be5a144a00ffb424a80000004c8b4c244083eb014c8b442430488b7c2438e880fbffff4883c43083fbff4b8944ec204d89fd75a74c89ed49c744ec20000000004c89e04883c4485b5d415c415d415e415fc39031ede9a9fbffff8b44243483e00383f8030f94c00fb6c0e9edfdffff488bb42490000000488d7801c60040e8a0a9ffffe991fcffff488bb42488000000488d7801c6002ee887a9ffffe96cfcffff488bb42480000000488d7801c6002ee86ea9ffffe947fcffff660f1f840000000000488b742410488d7801c6005fe84fa9ffffe91cfcffff4531e44c89efe82f8601004883c4484c89e05b5d415c415d415e415fc3488b4424204989442418488b4424084c8920e973fdffff448b6c2434e9affdffffbf28000000e8528201004885c04989c4741c4d892c24b801000000e925fdffff31c0e905ffffff31ede92efcffff4c89efe8c685010031c0e9effeffff0f1f440000662e0f1f840000000000415541544989f555534889fb4883ec084885f60f84e4000000488b2db8ce0a004c8d24374889fa41b80100000031ff31f60f1f80000000000fb60af6444d00084889c8740e83e8304883c70183f80a440f43c64883c2014c39e275dc4585c0756f4883c701e8a68101004885c074514989c0488b3567ce0a004889dfeb1666908b148e4983c001418850ff4883c7014939fc74280fb60ff6444d01044889ca75df0fb6c983e93083f90977df4883c7014188104983c0014939fc75d841c600004883c4085b5d415c415dc30f1f4400004883c704e8378101004885c074e24d85edc70069736f004c8d400374cf488b2de4cd0a004e8d242be975ffffffbf04000000e8098101004885c075d2ebb2669041564155415455534883ec2048c7020000000048c7010000000049c7000000000049c7010000000048893e0fb607a8bf0f84aa0100003c5f0f84a20100003c2e0f849a0100004889fbeb1f0f1f4400004080fe5f74204080fe400f84100100004080fe2e0f84060100004883c3010fb6334084f675da4839df0f84610100004080fe5f0f85ec000000488d4301c603004889010fb6730140f6c6bf7510eb14904883c0010fb63040f6c6bf74064080fe2e75ed4080fe2e4889c341bd06000000bd040000000f85bc0000000f1f440000488d7b01c603004989380fb6730140f6c6bf0f845a0100004989fceb060f1f004989dc41f6442401bf498d5c240175f04839df4c890c240f84400100004889de4c8944241848894c24104829fe4889542408e8c9fdffff4c8b0c244885c04989c64989010f841b0100004c8b4424184889c6498b384c890424e8b2a6ffff85c04c8b0424488b542408488b4c24100f84ac00000083cd03410fb6742401eb18904839df746b31ed4080fe2e41bd020000000f8449ffffff4080fe40743b488b014885c0740b89ea83e2fb8038000f44ea498b1089e84885d2740b89e983e1fd803a000f44c14883c4205b5d415c415d415ec3660f1f440000488d4301c6030048890289e883c808807b01000f45e8ebad31f64c8944241048894c24084889142431ede8c96e0200488b14244889c30fb630488b4c24084c8b442410e977ffffff4c89f74c8944241048894c2408488914244489ede877820100410fb6742401488b1424488b4c24084c8b442410e945ffffff4489ed4889fbe93affffff4489ede932ffffffb8ffffffffe956ffffff904885ff0f84af060000415741564155415455534889fb4883ec088b0783f802745683f803742283f801747b4883c4084889df5b5d415c415d415e415fe9ff8101000f1f8000000000488b6f184885ed74268b450083f8020f846c03000083f8030f845a03000083f8010f84630300004889efe8c9810100488b6b104885ed74268b450083f8020f845d01000083f8030f844b01000083f8010f847b0100004889efe89a810100488b6b084885ed0f8478ffffff8b450083f802744b83f8030f84cc03000083f801746d4889efe86f810100e955ffffff662e0f1f840000000000498b7c2418e816ffffff498b7c2410e80cffffff498b7c2408e802ffffff4c89e7e83a8101004c8b65104d85e47427418b042483f8020f843602000083f8030f842302000083f8010f84550200004c89e7e80a8101004c8b65084d85e4748a418b042483f802742283f803741383f80174494c89e7e8e6800100e96affffff90498b7c2418e896feffff4d8b6c24104d85ed7427418b450083f8020f84b803000083f8030f84a603000083f8010f84af0300004c89efe8a58001004d8b6c24084d85ed74ad418b450083f8020f84b700000083f8030f84a500000083f8010f84d40000004c89efe8748001004c89e7e86c800100e9f0feffff0f1f8000000000488b7d18e817feffff4c8b65104d85e47427418b042483f8020f845b04000083f8030f844804000083f8010f84530400004c89e7e8278001004c8b65084d85e40f8478feffff418b042483f8020f84a700000083f8030f849400000083f8010f84c60000004c89e7e8f37f01004889efe8eb7f0100e94cfeffff660f1f440000498b7d18e897fdffff4d8b75104d85f67426418b0683f8020f84bb01000083f8030f84a901000083f8010f84b20100004c89f7e8a87f01004d8b75084d85f60f841fffffff418b0683f8020f842002000083f8030f840e02000083f8010f84170200004c89f7e8757f0100e9f4feffff498b7c2418e826fdffff4d8b6c24104d85ed7427418b450083f8020f848801000083f8030f847601000083f8010f847f0100004c89efe8357f01004d8b6c24084d85ed0f842cffffff418b450083f8020f847302000083f8030f846102000083f8010f846a0200004c89efe8007f0100e900ffffff0f1f00498b7c2418e8aefcffff4d8b6c24104d85ed7427418b450083f8020f84f000000083f8030f84de00000083f8010f84e70000004c89efe8bd7e01004d8b6c24084d85ed0f849dfdffff418b450083f8020f845b02000083f8030f844902000083f8010f84520200004c89efe8887e0100e971fdffff0f1f00488b7d18e837fcffff488b7d10e82efcffff4c8b65084d85e40f8490fcffff418b042483f802742283f803741383f80174224c89e7e8467e0100e970fcffff90498b7c2418e8f6fbffff498b7c2410e8ecfbffff498b7c2408e8e2fbffff4c89e7e81a7e0100e944fcffff0f1f440000498b7e18e8c7fbffff498b7e10e8befbffff498b7e08e8b5fbffffe940feffff498b7d18e8a7fbffff498b7d10e89efbffff498b7d08e895fbffffe90bffffff498b7d18e887fbffff498b7d10e87efbffff498b7d08e875fbffffe973feffff4c8b65184d85e40f8469fcffff418b042483f8020f8440fcffff83f8030f842dfcffff83f8010f8542fcffffe933fcffff0f1f8000000000498b7e18e82ffbffff498b7e10e826fbffff4d8b7e084d85ff0f84dcfdffff418b0783f802742a83f803741c83f80174294c89ffe83f7d0100e9bdfdffff662e0f1f840000000000498b7f18e8e7faffff498b7f10e8defaffff498b7f08e8d5faffffebcc0f1f00498b7d18e8c7faffff498b7d10e8befaffff4d8b75084d85f60f8444fcffff418b0683f802742283f803741483f80174214c89f7e8d77c0100e925fcffff6690498b7e18e887faffff498b7e10e87efaffff498b7e08e875faffffebd40f1f00498b7d18e867faffff498b7d10e85efaffff4d8b75084d85f60f8489fdffff418b0683f802742283f803741483f80174214c89f7e8777c0100e96afdffff6690498b7e18e827faffff498b7e10e81efaffff498b7e08e815faffffebd40f1f00498b7d18e807faffff498b7d10e8fef9ffff4d8b75084d85f60f84a1fdffff418b0683f802742283f803741483f80174214c89f7e8177c0100e982fdffff6690498b7e18e8c7f9ffff498b7e10e8bef9ffff498b7e08e8b5f9ffffebd40f1f00498b7c2418e8a6f9ffff498b7c2410e89cf9ffff4d8b6c24084d85ed0f849ffbffff418b450083f802742683f803741883f80174254c89efe8b37b0100e97ffbffff660f1f440000498b7d18e85ff9ffff498b7d10e856f9ffff498b7d08e84df9ffffebd00f1f00f3c3660f1f440000415741564989f64155415455534883ec18488b5e084885db743e488b2e4885ed74364189fcbf20000000e8b17701004885c07424c700020000004489600448895810488968084883c4185b5d415c415d415e415fc30f1f0031edeb280f1f400083f8030f842703000083f80174574889dfe80a7b01004883ed084883fdf00f84ec0c0000498b5c2e084885db74e88b0383f80275cb4c8b63104d85e47427418b042483f8020f847602000083f8030f847c0c000083f8010f84950200004c89e7e8bb7a01004c8b63084d85e474a0418b042483f802744a83f803741483f80174714c89e7e8977a0100eb830f1f4400004d8b6c24184d85ed7427418b450083f8020f84680a000083f8030f84300a000083f8010f84850a00004c89efe85f7a01004d8b6c24104d85ed7427418b450083f8020f840704000083f8030f84cf03000083f8010f84240400004c89efe82e7a01004d8b6c24084d85ed7485418b450083f8020f84c800000083f8030f840e0b000083f8010f84e50000004c89efe8fd790100e959ffffff488b781848890424e8abf7ffff488b0424488b781048890424e89af7ffff488b0424488b780848890424e889f7ffff488b04244889c7e8bd790100498b47104885c04889042474268b0083f8020f849d20000083f8030f848720000083f8010f84bd200000488b3c24e88a790100498b47084885c04889042474268b0083f8020f849f14000083f8030f848914000083f8010f84bf140000488b3c24e8577901004c89ffe84f7901004d8b7d104d85ff7426418b0783f8020f84f810000083f8030f84c110000083f8010f84120500004c89ffe8207901004d8b7d084d85ff0f840effffff418b0783f8020f848a01000083f8030f844e01000083f8010f84ab0100004c89ffe8ed780100e9e3feffff498b7f18e89ff6ffff498b7f10e896f6ffff498b7f08e88df6ffff4c89ffe8c57801004d8b7d104d85ff7426418b0783f8020f846720000083f8030f845520000083f8010f845e2000004c89ffe8967801004d8b7d084d85ff7426418b0783f8020f84aa15000083f8030f849815000083f8010f84c61500004c89ffe8677801004c89efe85f7801004d8b6c24104d85ed7427418b450083f8020f842713000083f8030f84ef12000083f8010f84780600004c89efe82e7801004d8b6c24084d85ed0f845dfdffff418b450083f8020f843201000083f8030f84fa00000083f8010f844f0100004c89efe8f9770100e931fdffff0f1f40004c8b63184d85e40f84f8fcffff418b042483f8020f844709000083f8030f840d09000083f8010f84730200004c89e7e8bc770100e9ccfcffff0f1f8000000000498b47184885c04889042474268b0083f8020f844513000083f8030f842f13000083f8010f8465130000488b3c24e87d770100498b47104885c04889042474268b0083f8020f84870a000083f8030f844c0a000083f8010f84a70a0000488b3c24e84a770100498b47084885c00f8448feffff8b1083fa020f84f80c000083fa030f84b90c000083fa010f84710200004889c7e818770100e91efeffff0f1f004d8b7d184d85ff7426418b0783f8020f845416000083f8030f844216000083f8010f84701600004c89ffe8e17601004d8b7d104d85ff7426418b0783f8020f84fa0e000083f8030f84c30e000083f8010f841b0f00004c89ffe8b27601004d8b7d084d85ff0f84a4feffff418b0783f8020f840711000083f8030f84d010000083f8010f84110400004c89ffe87f760100e979feffff662e0f1f8400000000004d8b7d184d85ff7426418b0783f8020f84f413000083f8030f84e213000083f8010f84101400004c89ffe8417601004d8b7d104d85ff7426418b0783f8020f84620c000083f8030f842b0c000083f8010f84830c00004c89ffe8127601004d8b7d084d85ff0f84cffbffff418b0783f8020f84470d000083f8030f84100d000083f8010f84bb0200004c89ffe8df750100e9a4fbffff498b7f18e891f3ffff498b7f10e888f3ffff498b7f08e87ff3ffff4c89ffe8b77501004d8b7d104d85ff7426418b0783f8020f84101d000083f8030f84fe1c000083f8010f84071d00004c89ffe8887501004d8b7d084d85ff7426418b0783f8020f847c13000083f8030f846a13000083f8010f84981300004c89ffe8597501004c89efe8517501004d8b6c24084d85ed0f847ffdffff418b450083f8020f84e503000083f8030f84ad03000083f8010f84020400004c89efe81c750100e953fdffff0f1f8000000000488b7a18488944240848891424e8bef2ffff488b442408488b1424488b7a10488944240848891424e8a3f2ffff488b442408488b1424488b7a08488944240848891424e888f2ffff488b1424488b4424084889d748890424e8b3740100488b0424488b780848890424e862f2ffff488b0424e979fdffff660f1f840000000000488b0424488b7818e843f2ffff488b0424488b40104885c074258b1083fa020f84fc1c000083fa030f84e01c000083fa010f84fd1c00004889c7e851740100488b0424488b40084885c074258b1083fa020f848c14000083fa030f847014000083fa010f848d1400004889c7e81f740100488b3c24e816740100498b47084885c0488904240f84ddfaffff8b0083f8020f84dc08000083f8030f84a108000083f8010f84fc080000488b3c24e8df730100e9b2faffff488b78184889442408e88cf1ffff488b442408488b78104889442408e879f1ffff488b442408488b78084889442408e866f1ffff488b4424084889c7e899730100488b0424488b40104885c074258b1083fa020f84d41b000083fa030f84b81b000083fa010f84d51b00004889c7e867730100488b0424488b40084885c074258b1083fa020f842214000083fa030f840614000083fa010f84231400004889c7e835730100488b3c24e82c730100498b47084885c0488904240f8434fdffff8b0083f8020f841207000083f8030f84d706000083f8010f8432070000488b3c24e8f5720100e909fdffff488b0424488b7818e8a3f0ffff488b0424488b40104885c074258b1083fa020f84161c000083fa030f84fa1b000083fa010f84171c00004889c7e8b1720100488b0424488b40084885c074258b1083fa020f846c12000083fa030f845012000083fa010f846d1200004889c7e87f720100488b3c24e876720100498b47084885c0488904240f84defbffff8b0083f8020f849404000083f8030f845904000083f8010f84b4040000488b3c24e83f720100e9b3fbffff662e0f1f840000000000498b7f18e8e7efffff498b47104885c074258b1083fa020f84d81b000083fa030f84be1b000083fa010f84d71b00004889c7e8f9710100498b47084885c04889042474268b0083f8020f842e14000083f8030f841814000083f8010f844e140000488b3c24e8c67101004c89ffe8be7101004d8b7d084d85ff0f847bf9ffff418b0783f8020f84f30a000083f8030f84bc0a000083f8010f84140b00004c89ffe88b710100e950f9ffff660f1f4400004d8b7d184d85ff7426418b0783f8020f845b22000083f8030f844922000083f8010f84522200004c89ffe8517101004d8b7d104d85ff7426418b0783f8020f84b50f000083f8030f84a30f000083f8010f84d10f00004c89ffe8227101004d8b7d084d85ff0f84f1fbffff418b0783f802745683f8030f841421000083f80174764c89ffe8f7700100e9cefbffff488b781848890424e8a5eeffff488b0424488b781048890424e894eeffff488b0424488b780848890424e883eeffff488b04244889c7e8b7700100498b47104885c074258b1083fa020f841b16000083fa030f840116000083fa010f841a1600004889c7e889700100498b47084885c0488904240f8479ffffff8b0083f8020f849a0c000083f8030f84840c000083f8010f84ba0c0000488b3c24e8527001004c89ffe84a700100e921fbffff0f1f4400004d8b7d184d85ff7426418b0783f8020f847320000083f8030f846120000083f8010f846a2000004c89ffe8117001004d8b7d104d85ff7426418b0783f8020f84e50e000083f8030f84d30e000083f8010f84010f00004c89ffe8e26f01004d8b7d084d85ff0f846ef5ffff418b0783f802745683f8030f847c20000083f80174764c89ffe8b76f0100e94bf5ffff488b781848890424e865edffff488b0424488b781048890424e854edffff488b0424488b780848890424e843edffff488b04244889c7e8776f0100498b47104885c074258b1083fa020f849d15000083fa030f848315000083fa010f849c1500004889c7e8496f0100498b47084885c0488904240f8479ffffff8b0083f8020f84da0b000083f8030f84c40b000083f8010f84fa0b0000488b3c24e8126f01004c89ffe80a6f0100e99ef4ffff0f1f4400004d8b7d184d85ff0f84a4f5ffff418b0783f8020f842af5ffff83f8030f843e20000083f8010f844bf5ffff4c89ffe8cd6e0100e979f5ffff0f1f8400000000004d8b6c24184d85ed7427418b450083f8020f84f212000083f8030f84e012000083f8010f840f1300004c89efe88f6e01004d8b6c24104d85ed0f8430f9ffff418b450083f8020f84bdf8ffff83f8030f84ab20000083f8010f84daf8ffff4c89efe85a6e0100e904f9ffff0f1f4400004d8b6c24184d85ed0f84e3f5ffff418b450083f8020f8470f5ffff83f8030f843420000083f8010f848df5ffff4c89efe81b6e0100e9b7f5ffff660f1f4400004883c41831c05b5d415c415d415e415fc30f1f8000000000488b0424488b40184885c074258b1083fa020f846320000083fa030f844720000083fa010f84642000004889c7e8c66d0100488b0424488b40104885c074258b1083fa020f84010f000083fa030f84e50e000083fa010f84020f00004889c7e8946d0100488b0424488b40084885c00f843bfbffff8b1083fa02742f83fa03741783fa0174384889c7e86a6d0100e91dfbffff0f1f440000488b78184889442408e812ebffff488b442408488b78104889442408e8ffeaffff488b442408488b78084889442408e8eceaffff488b4424084889c7e81f6d0100e9d2faffff662e0f1f840000000000488b0424488b40184885c074258b1083fa020f84cb21000083fa030f84af21000083fa010f84cc2100004889c7e8de6c0100488b0424488b40104885c074258b1083fa020f84590d000083fa030f843d0d000083fa010f845a0d00004889c7e8ac6c0100488b0424488b40084885c00f8448f5ffff8b1083fa02742f83fa03741783fa0174384889c7e8826c0100e92af5ffff0f1f440000488b78184889442408e82aeaffff488b442408488b78104889442408e817eaffff488b442408488b78084889442408e804eaffff488b4424084889c7e8376c0100e9dff4ffff6690488b0424488b40184885c074258b1083fa020f84ad20000083fa030f849120000083fa010f84ae2000004889c7e8fe6b0100488b0424488b40104885c074258b1083fa020f84f90c000083fa030f84dd0c000083fa010f84fa0c00004889c7e8cc6b0100488b0424488b40084885c00f84bdf8ffff8b1083fa02742f83fa03741783fa0174384889c7e8a26b0100e99ff8ffff0f1f440000488b78184889442408e84ae9ffff488b442408488b78104889442408e837e9ffff488b442408488b78084889442408e824e9ffff488b4424084889c7e8576b0100e954f8ffff6690488b0424488b40184885c074258b1083fa020f84c922000083fa030f84ad22000083fa010f84ca2200004889c7e81e6b0100488b0424488b40104885c074258b1083fa020f84990c000083fa030f847d0c000083fa010f849a0c00004889c7e8ec6a0100488b0424488b40084885c00f84f3f6ffff8b1083fa02742f83fa03741783fa0174384889c7e8c26a0100e9d5f6ffff0f1f440000488b78184889442408e86ae8ffff488b442408488b78104889442408e857e8ffff488b442408488b78084889442408e844e8ffff488b4424084889c7e8776a0100e98af6ffff6690488b50184885d2742d8b0a83f9020f84270f000083f9030f84030f000083f9010f84300f00004889d748890424e83e6a0100488b0424488b50104885d20f847ef5ffff8b0a83f9020f842df5ffff83f9030f8409f5ffff83f9010f8436f5ffff4889d748890424e8046a0100488b0424e94cf5ffff0f1f00498b47184885c074258b1083fa020f845823000083fa030f843e23000083fa010f84572300004889c7e8ca690100498b47104885c04889042474268b0083f8020f847f0c000083f8030f84690c000083f8010f849f0c0000488b3c24e897690100498b47084885c0488904240f846cf3ffff8b0083f802742c83f803741a83f8017454488b3c24e86c690100e94df3ffff0f1f8000000000488b0424488b7818e813e7ffff488b0424488b40104885c074258b1083fa020f844812000083fa030f842c12000083fa010f84491200004889c7e821690100488b0424488b40084885c0749f8b1083fa020f841c09000083fa030f840009000083fa010f841d0900004889c7e8ef680100488b3c24e8e6680100e9c7f2ffff90498b47184885c074258b1083fa020f84e30d000083fa030f84c90d000083fa010f84e20d00004889c7e8b2680100498b47104885c0488904240f8475f5ffff8b0083f8020f84fdf4ffff83f8030f84dd20000083f8010f841df5ffff488b3c24e87b680100e94af5ffff660f1f440000498b47184885c074258b1083fa020f84f70e000083fa030f84dd0e000083fa010f84f60e00004889c7e842680100498b47104885c0488904240f841bf4ffff8b0083f8020f84a3f3ffff83f8030f848df3ffff83f8010f84c3f3ffff488b3c24e80b680100e9f0f3ffff660f1f440000498b47184885c074258b1083fa020f840822000083fa030f84ee21000083fa010f84072200004889c7e8d2670100498b47104885c04889042474268b0083f8020f84870b000083f8030f84710b000083f8010f84a70b0000488b3c24e89f670100498b47084885c0488904240f84d4f0ffff8b0083f802742c83f803741a83f8017454488b3c24e874670100e9b5f0ffff0f1f8000000000488b0424488b7818e81be5ffff488b0424488b40104885c074258b1083fa020f84cc10000083fa030f84b010000083fa010f84cd1000004889c7e829670100488b0424488b40084885c0749f8b1083fa020f842409000083fa030f840809000083fa010f84250900004889c7e8f7660100488b3c24e8ee660100e92ff0ffff660f1f840000000000498b47184885c074258b1083fa020f84a822000083fa030f848e22000083fa010f84a72200004889c7e8b2660100498b47104885c04889042474268b0083f8020f84e709000083f8030f84d109000083f8010f84070a0000488b3c24e87f660100498b47084885c0488904240f84dbf4ffff8b0083f802742c83f803741a83f8017454488b3c24e854660100e9bcf4ffff0f1f8000000000488b0424488b7818e8fbe3ffff488b0424488b40104885c074258b1083fa020f84f20e000083fa030f84d60e000083fa010f84f30e00004889c7e809660100488b0424488b40084885c0749f8b1083fa020f84c407000083fa030f84a807000083fa010f84c50700004889c7e8d7650100488b3c24e8ce650100e936f4ffff660f1f840000000000498b47184885c074258b1083fa020f84850b000083fa030f846b0b000083fa010f84840b00004889c7e892650100498b47104885c0488904240f840bf3ffff8b0083f8020f8493f2ffff83f8030f847df2ffff83f8010f84b3f2ffff488b3c24e85b650100e9e0f2ffff660f1f4400004d8b7d184d85ff7426418b0783f8020f843b0d000083f8030f84290d000083f8010f84320d00004c89ffe8216501004d8b7d104d85ff0f8456f3ffff418b0783f8020f84e1f2ffff83f8030f84cff2ffff83f8010f84fdf2ffff4c89ffe8ee640100e92bf3ffff660f1f840000000000488b0424488b7818e893e2ffff488b0424488b40104885c074258b1083fa020f840c1b000083fa030f84f01a000083fa010f840d1b00004889c7e8a1640100488b0424488b40084885c00f8430ebffff8b1083fa020f846910000083fa030f844d10000083fa010f846a1000004889c7e86b640100e906ebffff660f1f440000488b0424488b7818e813e2ffff488b0424488b40104885c074258b1083fa020f840a1c000083fa030f84ee1b000083fa010f840b1c00004889c7e821640100488b0424488b40084885c00f848aecffff8b1083fa020f84a310000083fa030f848710000083fa010f84a41000004889c7e8eb630100e960ecffff660f1f440000488b0424488b7818e893e1ffff488b0424488b40104885c074258b1083fa020f846617000083fa030f844a17000083fa010f84671700004889c7e8a1630100488b0424488b40084885c00f8435f3ffff8b1083fa020f84e50f000083fa030f84c90f000083fa010f84e60f00004889c7e86b630100e90bf3ffff660f1f440000488b0424488b7818e813e1ffff488b0424488b40104885c074258b1083fa020f84a816000083fa030f848c16000083fa010f84a91600004889c7e821630100488b0424488b40084885c00f84f5f3ffff8b1083fa020f84270f000083fa030f840b0f000083fa010f84280f00004889c7e8eb620100e9cbf3ffff660f1f440000498b7f18e897e0ffff498b47104885c074258b1083fa020f84bf1d000083fa030f84a51d000083fa010f84be1d00004889c7e8a9620100498b47084885c00f842deaffff8b1083fa020f845011000083fa030f843611000083fa010f844f1100004889c7e877620100e903eaffff6690498b7f18e827e0ffff498b47104885c074258b1083fa020f84e71a000083fa030f84cd1a000083fa010f84e61a00004889c7e839620100498b47084885c00f84e3ebffff8b1083fa020f845c0f000083fa030f84420f000083fa010f845b0f00004889c7e807620100e9b9ebffff6690498b7f18e8b7dfffff498b47104885c074258b1083fa020f844f1d000083fa030f84351d000083fa010f844e1d00004889c7e8c9610100498b47084885c00f845becffff8b1083fa020f844d0f000083fa030f84330f000083fa010f844c0f00004889c7e897610100e931ecffff6690498b7f18e847dfffff498b47104885c074258b1083fa020f84171d000083fa030f84fd1c000083fa010f84161d00004889c7e859610100498b47084885c00f8422f0ffff8b1083fa020f841b0e000083fa030f84010e000083fa010f841a0e00004889c7e827610100e9f8efffff6690498b7f18e8d7deffff498b47104885c074258b1083fa020f843f1a000083fa030f84251a000083fa010f843e1a00004889c7e8e9600100498b47084885c00f84f2f0ffff8b1083fa020f84ce0e000083fa030f84b40e000083fa010f84cd0e00004889c7e8b7600100e9c8f0ffff6690498b7f18e867deffff498b47104885c074258b1083fa020f849719000083fa030f847d19000083fa010f84961900004889c7e879600100498b47084885c00f8483e9ffff8b1083fa020f84bf0e000083fa030f84a50e000083fa010f84be0e00004889c7e847600100e959e9ffff6690488b78184889442408e8f2ddffff488b442408488b78104889442408e8dfddffff488b442408488b78084889442408e8ccddffff488b442408e97bedffff6690488b78184889442408e8b2ddffff488b442408488b78104889442408e89fddffff488b442408488b78084889442408e88cddffff488b442408e9cbf6ffff6690488b78184889442408e872ddffff488b442408488b78104889442408e85fddffff488b442408488b78084889442408e84cddffff488b442408e95bebffff6690488b78184889442408e832ddffff488b442408488b78104889442408e81fddffff488b442408488b78084889442408e80cddffff488b442408e98ef2ffff6690488b78184889442408e8f2dcffff488b442408488b78104889442408e8dfdcffff488b442408488b78084889442408e8ccdcffff488b442408e9c5ebffff6690488b78184889442408e8b2dcffff488b442408488b78104889442408e89fdcffff488b442408488b78084889442408e88cdcffff488b442408e9eef2ffff6690488b78184889442408e872dcffff488b442408488b78104889442408e85fdcffff488b442408488b78084889442408e84cdcffff488b442408e9e6f0ffff6690488b78184889442408e832dcffff488b442408488b78104889442408e81fdcffff488b442408488b78084889442408e80cdcffff488b442408e94ef3ffff6690488b78184889442408e8f2dbffff488b442408488b78104889442408e8dfdbffff488b442408488b78084889442408e8ccdbffff488b442408e923f8ffff6690488b78184889442408e8b2dbffff488b442408488b78104889442408e89fdbffff488b442408488b78084889442408e88cdbffff488b442408e9c3f6ffff6690488b0424488b7818e873dbffff488b0424488b40104885c074258b1083fa020f843f08000083fa030f842308000083fa010f84400800004889c7e8815d0100488b0424488b40084885c00f84a1ebffff8b1083fa020f84410d000083fa030f84250d000083fa010f84420d00004889c7e84b5d0100e977ebffff660f1f440000488b0424488b7818e8f3daffff488b0424488b40104885c074258b1083fa020f844307000083fa030f842707000083fa010f84440700004889c7e8015d0100488b0424488b40084885c00f8450f3ffff8b1083fa020f84450c000083fa030f84290c000083fa010f84460c00004889c7e8cb5c0100e926f3ffff660f1f440000488b0424488b7818e873daffff488b0424488b40104885c074258b1083fa020f847d07000083fa030f846107000083fa010f847e0700004889c7e8815c0100488b0424488b40084885c00f84e8f5ffff8b1083fa020f84870b000083fa030f846b0b000083fa010f84880b00004889c7e84b5c0100e9bef5ffff660f1f440000488b0424488b7818e8f3d9ffff488b0424488b40104885c074258b1083fa020f848106000083fa030f846506000083fa010f84820600004889c7e8015c0100488b0424488b40084885c00f8448f4ffff8b1083fa020f84830b000083fa030f84670b000083fa010f84840b00004889c7e8cb5b0100e91ef4ffff660f1f440000498b7d18e877d9ffff4d8b7d104d85ff7426418b0783f8020f841e07000083f8030f840c07000083f8010f84150700004c89ffe8885b01004d8b7d084d85ff0f84e4ecffff418b0783f8020f84070d000083f8030f84f50c000083f8010f84fe0c00004c89ffe8555b0100e9b9ecffff488b7a18488944240848891424e8fed8ffff488b442408488b1424488b7a10488944240848891424e8e3d8ffff488b442408488b1424488b7a08488944240848891424e8c8d8ffff488b442408488b1424e9b0f0ffff488b781848890424e8add8ffff488b0424488b781048890424e89cd8ffff488b0424488b50084885d20f8411f2ffff8b0a83f9020f84c310000083f9030f849f10000083f9010f84cc1000004889d748890424e8a25a0100488b0424e9dff1ffff488b781848890424e84cd8ffff488b0424488b781048890424e83bd8ffff488b0424488b50084885d20f84d9e9ffff8b0a83f9020f844c11000083f9030f842811000083f9010f84551100004889d748890424e8415a0100488b0424e9a7e9ffff488b781848890424e8ebd7ffff488b0424488b781048890424e8dad7ffff488b0424488b50084885d20f846ff4ffff8b0a83f9020f849510000083f9030f847110000083f9010f849e1000004889d748890424e8e0590100488b0424e93df4ffff488b781848890424e88ad7ffff488b0424488b781048890424e879d7ffff488b0424488b50084885d20f8457eaffff8b0a83f9020f84bc0c000083f9030f84980c000083f9010f84c50c00004889d748890424e87f590100488b0424e925eaffff488b781848890424e829d7ffff488b0424488b781048890424e818d7ffff488b0424488b50084885d20f84fdf0ffff8b0a83f9020f84e90e000083f9030f84c50e000083f9010f84f20e00004889d748890424e81e590100488b0424e9cbf0ffff488b0424488b7818e8c8d6ffff488b0424488b40104885c074258b1083fa020f849604000083fa030f847a04000083fa010f84970400004889c7e8d6580100488b0424488b40084885c00f8432dfffff8b1083fa020f84210e000083fa030f84050e000083fa010f84220e00004889c7e8a0580100e908dfffff498b7f18e852d6ffff498b7f10e849d6ffff498b47084885c00f84ece2ffff8b1083fa020f843513000083fa030f841b13000083fa010f84341300004889c7e857580100e9c2e2ffff498b7f18e809d6ffff498b7f10e800d6ffff498b47084885c00f8495dfffff8b1083fa020f845c13000083fa030f844213000083fa010f845b1300004889c7e80e580100e96bdfffff498b7f18e8c0d5ffff498b7f10e8b7d5ffff498b47084885c00f84c1f2ffff8b1083fa020f84ab10000083fa030f849110000083fa010f84aa1000004889c7e8c5570100e997f2ffff488b78184889442408e872d5ffff488b442408488b78104889442408e85fd5ffff488b442408488b78084889442408e84cd5ffff488b442408e913e4ffff488b78184889442408e834d5ffff488b442408488b78104889442408e821d5ffff488b442408488b78084889442408e80ed5ffff488b442408e9ebe2ffff488b78184889442408e8f6d4ffff488b442408488b78104889442408e8e3d4ffff488b442408488b78084889442408e8d0d4ffff488b442408e9f5f0ffff488b78184889442408e8b8d4ffff488b442408488b78104889442408e8a5d4ffff488b442408488b78084889442408e892d4ffff488b442408e99fedffff488b78184889442408e87ad4ffff488b442408488b78104889442408e867d4ffff488b442408488b78084889442408e854d4ffff488b442408e9d1e3ffff488b78184889442408e83cd4ffff488b442408488b78104889442408e829d4ffff488b442408488b78084889442408e816d4ffff488b442408e91befffff488b781848890424e8ffd3ffff488b0424488b781048890424e8eed3ffff488b0424488b50084885d20f841ce4ffff8b0a83f9020f843a01000083f9030f841601000083f9010f84430100004889d748890424e8f4550100488b0424e9eae3ffff488b78184889442408e89dd3ffff488b442408488b78104889442408e88ad3ffff488b442408488b78084889442408e877d3ffff488b442408e9a4f8ffff488b78184889442408e85fd3ffff488b442408488b78104889442408e84cd3ffff488b442408488b78084889442408e839d3ffff488b442408e966f9ffff488b78184889442408e821d3ffff488b442408488b78104889442408e80ed3ffff488b442408488b78084889442408e8fbd2ffff488b442408e9a8f7ffff488b78184889442408e8e3d2ffff488b442408488b78104889442408e8d0d2ffff488b442408488b78084889442408e8bdd2ffff488b442408e96af8ffff488b7a18488944240848891424e8a1d2ffff488b442408488b1424488b7a10488944240848891424e886d2ffff488b442408488b1424488b7a08488944240848891424e86bd2ffff488b1424488b4424084889d748890424e896540100488b0424e98ce2ffff498b7f18e844d2ffff498b7f10e83bd2ffff498b7f08e832d2ffffe9ddf8ffff488b78184889442408e81fd2ffff488b442408488b78104889442408e80cd2ffff488b442408488b78084889442408e8f9d1ffff488b442408e951fbffff488b78184889442408e8e1d1ffff488b442408488b78104889442408e8ced1ffff488b442408488b78084889442408e8bbd1ffff488b442408e97eefffff488b78184889442408e8a3d1ffff488b442408488b78104889442408e890d1ffff488b442408488b78084889442408e87dd1ffff488b442408e9c0f0ffff488b78184889442408e865d1ffff488b442408488b78104889442408e852d1ffff488b442408488b78084889442408e83fd1ffff488b442408e902f0ffff488b78184889442408e827d1ffff488b442408488b78104889442408e814d1ffff488b442408488b78084889442408e801d1ffff488b442408e944efffff488b781848890424e8ead0ffff488b0424488b781048890424e8d9d0ffff488b0424488b50084885d20f84d9f1ffff8b0a83f9020f84400a000083f9030f841c0a000083f9010f84490a00004889d748890424e8df520100488b0424e9a7f1ffff488b781848890424e889d0ffff488b0424488b781048890424e878d0ffff488b0424488b50084885d20f8498f0ffff8b0a83f9020f84b10a000083f9030f848d0a000083f9010f84ba0a00004889d748890424e87e520100488b0424e966f0ffff488b781848890424e828d0ffff488b0424488b781048890424e817d0ffff488b0424488b50084885d20f84a7f0ffff8b0a83f9020f840405000083f9030f84e004000083f9010f840d0500004889d748890424e81d520100488b0424e975f0ffff488b781848890424e8c7cfffff488b0424488b781048890424e8b6cfffff488b0424488b50084885d20f8426f1ffff8b0a83f9020f84cb05000083f9030f84a705000083f9010f84d40500004889d748890424e8bc510100488b0424e9f4f0ffff488b781848890424e866cfffff488b0424488b781048890424e855cfffff488b0424488b50084885d20f8435f1ffff8b0a83f9020f849206000083f9030f846e06000083f9010f849b0600004889d748890424e85b510100488b0424e903f1ffff488b781848890424e805cfffff488b0424488b781048890424e8f4ceffff488b0424488b50084885d20f84a4eeffff8b0a83f9020f845f05000083f9030f843b05000083f9010f84680500004889d748890424e8fa500100488b0424e972eeffff488b78184889442408e8a3ceffff488b442408488b78104889442408e890ceffff488b442408488b78084889442408e87dceffff488b442408e960f4ffff488b78184889442408e865ceffff488b442408488b78104889442408e852ceffff488b442408488b78084889442408e83fceffff488b442408e9a2f3ffff488b78184889442408e827ceffff488b442408488b78104889442408e814ceffff488b442408488b78084889442408e801ceffff488b442408e964f4ffff488b78184889442408e8e9cdffff488b442408488b78104889442408e8d6cdffff488b442408488b78084889442408e8c3cdffff488b442408e9a6f2ffff660f1f840000000000498b47184885c00f842cdfffff8b1083fa020f84f7deffff83fa030f84dddeffff83fa010f8507dfffffe9f1deffff498b7f18e878cdffff498b7f10e86fcdffff498b47084885c00f8489dfffff8b1083fa02742883fa03741283fa01742f4889c7e8894f0100e96bdfffff488b781848890424e837cdffff488b0424488b781048890424e826cdffff488b0424488b780848890424e815cdffff488b0424ebbe0f1f8000000000498b47184885c00f84c4dfffff8b1083fa020f848fdfffff83fa030f8475dfffff83fa010f859fdfffffe989dfffff498b7f18e8d0ccffff498b7f10e8c7ccffff498b47084885c00f84a1ddffff8b1083fa02742883fa03741283fa01742f4889c7e8e14e0100e983ddffff488b781848890424e88fccffff488b0424488b781048890424e87eccffff488b0424488b780848890424e86dccffff488b0424ebbe0f1f8000000000498b47184885c00f84d6d4ffff8b1083fa020f84a1d4ffff83fa030f8487d4ffff83fa010f85b1d4ffffe99bd4ffff498b7f18e828ccffff498b7f10e81fccffff498b47084885c00f84f5f2ffff8b1083fa02742883fa03741283fa01742f4889c7e8394e0100e9d7f2ffff488b781848890424e8e7cbffff488b0424488b781048890424e8d6cbffff488b0424488b780848890424e8c5cbffff488b0424ebbe0f1f80000000004d8b7d184d85ff0f8426d5ffff418b0783f8020f8400d5ffff83f8030f84eed4ffff83f8010f8500d5ffffe9f2d4ffff0f1f8400000000004d8b7d184d85ff0f84fcd7ffff418b0783f8020f84d6d7ffff83f8030f84c4d7ffff83f8010f85d6d7ffffe9c8d7ffff488b78184889442408e842cbffff488b442408488b78104889442408e82fcbffff488b442408488b78084889442408e81ccbffff488b442408e984dfffff488b7a18488944240848891424e800cbffff488b442408488b1424488b7a10488944240848891424e8e5caffff488b442408488b1424488b7a08488944240848891424e8cacaffff488b442408488b1424e9d3faffff488b7a18488944240848891424e8aacaffff488b442408488b1424488b7a10488944240848891424e88fcaffff488b442408488b1424488b7a08488944240848891424e874caffff488b442408488b1424e91bf3ffff488b78184889442408e858caffff488b442408488b78104889442408e845caffff488b442408488b78084889442408e832caffff488b442408e93fe9ffff488b78184889442408e81acaffff488b442408488b78104889442408e807caffff488b442408488b78084889442408e8f4c9ffff488b442408e981e8ffff488b7a18488944240848891424e8d8c9ffff488b442408488b1424488b7a10488944240848891424e8bdc9ffff488b442408488b1424488b7a08488944240848891424e8a2c9ffff488b442408488b1424e90cfaffff488b7a18488944240848891424e882c9ffff488b442408488b1424488b7a10488944240848891424e867c9ffff488b442408488b1424488b7a08488944240848891424e84cc9ffff488b442408488b1424e978faffff488b78184889442408e830c9ffff488b442408488b78104889442408e81dc9ffff488b442408488b78084889442408e80ac9ffff488b442408e93adfffff488b78184889442408e8f2c8ffff488b442408488b78104889442408e8dfc8ffff488b442408488b78084889442408e8ccc8ffff488b442408e91cdeffff488b7a18488944240848891424e8b0c8ffff488b442408488b1424488b7a10488944240848891424e895c8ffff488b442408488b1424488b7a08488944240848891424e87ac8ffff488b442408488b1424e945f9ffff488b78184889442408e85ec8ffff488b442408488b78104889442408e84bc8ffff488b442408488b78084889442408e838c8ffff488b442408e9c6f1ffff488b7a18488944240848891424e81cc8ffff488b442408488b1424488b7a10488944240848891424e801c8ffff488b442408488b1424488b7a08488944240848891424e8e6c7ffff488b442408488b1424e9eef0ffff488b7a18488944240848891424e8c6c7ffff488b442408488b1424488b7a10488944240848891424e8abc7ffff488b442408488b1424488b7a08488944240848891424e890c7ffff488b442408488b1424e914efffff488b78184889442408e874c7ffff488b442408488b78104889442408e861c7ffff488b442408488b78084889442408e84ec7ffff488b442408e9dbe4ffff488b7a18488944240848891424e832c7ffff488b442408488b1424488b7a10488944240848891424e817c7ffff488b442408488b1424488b7a08488944240848891424e8fcc6ffff488b442408488b1424e942efffff488b7a18488944240848891424e8dcc6ffff488b442408488b1424488b7a10488944240848891424e8c1c6ffff488b442408488b1424488b7a08488944240848891424e8a6c6ffff488b442408488b1424e98beeffff488b7a18488944240848891424e886c6ffff488b442408488b1424488b7a10488944240848891424e86bc6ffff488b442408488b1424488b7a08488944240848891424e850c6ffff488b442408488b1424e997f5ffff488b78184889442408e834c6ffff488b442408488b78104889442408e821c6ffff488b442408488b78084889442408e80ec6ffff488b442408e91eddffff488b78184889442408e8f6c5ffff488b442408488b78104889442408e8e3c5ffff488b442408488b78084889442408e8d0c5ffff488b442408e9dde3ffff488b7a18488944240848891424e8b4c5ffff488b442408488b1424488b7a10488944240848891424e899c5ffff488b442408488b1424488b7a08488944240848891424e87ec5ffff488b442408488b1424e926f5ffff488b0424488b40184885c00f8406d4ffff8b1083fa020f84cdd3ffff83fa030f84b1d3ffff83fa010f85e1d3ffffe9c9d3ffff488b781848890424e830c5ffff488b0424488b781048890424e81fc5ffff488b0424488b780848890424e80ec5ffff488b0424e904e5ffff488b781848890424e8f8c4ffff488b0424488b781048890424e8e7c4ffff488b0424488b780848890424e8d6c4ffff488b0424e940efffff488b781848890424e8c0c4ffff488b0424488b781048890424e8afc4ffff488b0424488b780848890424e89ec4ffff488b0424e954e6ffff488b781848890424e888c4ffff488b0424488b781048890424e877c4ffff488b0424488b780848890424e866c4ffff488b0424e9ace5ffff488b781848890424e850c4ffff488b0424488b781048890424e83fc4ffff488b0424488b50084885d20f849cdcffff8b0a83f902743a83f903741a83f901744b4889d748890424e851460100488b0424e976dcffff488b7a18488944240848891424e8f6c3ffff488b442408488b1424488b7a10488944240848891424e8dbc3ffff488b442408488b1424488b7a08488944240848891424e8c0c3ffff488b442408488b1424eb98488b781848890424e8a8c3ffff488b0424488b781048890424e897c3ffff488b0424488b50084885d20f84ecddffff8b0a83f902743a83f903741a83f901744b4889d748890424e8a9450100488b0424e9c6ddffff488b7a18488944240848891424e84ec3ffff488b442408488b1424488b7a10488944240848891424e833c3ffff488b442408488b1424488b7a08488944240848891424e818c3ffff488b442408488b1424eb98488b781848890424e800c3ffff488b0424488b781048890424e8efc2ffff488b0424488b780848890424e8dec2ffff488b0424e9b6ecffff488b781848890424e8c8c2ffff488b0424488b781048890424e8b7c2ffff488b0424488b780848890424e8a6c2ffff488b0424e92ce2ffff488b781848890424e890c2ffff488b0424488b781048890424e87fc2ffff488b0424488b780848890424e86ec2ffff488b0424e98fecffff488b781848890424e858c2ffff488b0424488b781048890424e847c2ffff488b0424488b780848890424e836c2ffff488b0424e99ce2ffff488b781848890424e820c2ffff488b0424488b781048890424e80fc2ffff488b0424488b780848890424e8fec1ffff488b0424e9d4e2ffff488b781848890424e8e8c1ffff488b0424488b781048890424e8d7c1ffff488b0424488b780848890424e8c6c1ffff488b0424e943ddffff0f1f00662e0f1f84000000000041574156415541544c63e75553418d5c24ff4883ec1885db0f88853700004c63eb4989d789dd4a833cea004a8d04ed00000000488d4c02f889d8750feb7266904883e9084883790800746583e80183f8ff75edbf20000000893424e8f03f01004885c04989c68b34247445418976044a8d34e50000000089db488d14dd08000000458926488d7e084829d64829d74c01fe4c01f7e8c72502004883c4184c89f05b5d415c415d415e415fc30f1f4400004f8d24efeb30662e0f1f84000000000083f8030f84f702000083f80174584889dfe81a43010083ed014983ec0883fdff0f848a0a0000498b1c244885db74e78b0383f80275ca4c8b6b104d85ed7427418b450083f8020f843509000083f8030f841b0a000083f8010f84630200004c89efe8ca4201004c8b6b084d85ed749f418b450083f802744783f803741383f801746c4c89efe8a6420100eb820f1f40004d8b75184d85f67426418b0683f8020f84ca0d000083f8030f84920d000083f8010f84e70d00004c89f7e8714201004d8b75104d85f67426418b0683f8020f848b04000083f8030f845304000083f8010f84a80400004c89f7e8424201004d8b75084d85f6748b418b0683f8020f842f06000083f8030f84b408000083f8010f84c80000004c89f7e813420100e960ffffff660f1f440000488b0424488b7818e8bbbfffff488b0424488b40104885c074258b1083fa020f849322000083fa030f847722000083fa010f84942200004889c7e8c9410100488b0424488b40084885c074258b1083fa020f846c19000083fa030f845019000083fa010f846d1900004889c7e897410100488b3c24e88e410100498b47084885c04889042474268b0083f8020f849810000083f8030f845d10000083f8010f84b8100000488b3c24e85b4101004c89ffe8534101004d8b7e084d85ff0f842bffffff418b0783f8020f844502000083f8030f840902000083f8010f84660200004c89ffe820410100e900ffffff0f1f00498b7f18e8cfbeffff498b47104885c074258b1083fa020f846322000083fa030f844922000083fa010f84622200004889c7e8e1400100498b47084885c04889042474268b0083f8020f84641b000083f8030f844e1b000083f8010f84841b0000488b3c24e8ae4001004c89ffe8a64001004d8b7e084d85ff7426418b0783f8020f84cf12000083f8030f849812000083f8010f84f01200004c89ffe8774001004c89f7e86f4001004d8b75084d85f60f8490fdffff418b0683f8020f84c504000083f8030f848d04000083f8010f84e20400004c89f7e83c400100e965fdffff0f1f80000000004c8b6b184d85ed0f8429fdffff418b450083f8020f841507000083f8030f84dd06000083f8010f84960000004c89efe8fc3f0100e9fdfcffff498b7f18e8aebdffff498b7f10e8a5bdffff498b7f08e89cbdffff4c89ffe8d43f01004d8b7e104d85ff7426418b0783f8020f84191f000083f8030f84071f000083f8010f84101f00004c89ffe8a53f01004d8b7e084d85ff7426418b0783f8020f841615000083f8030f840415000083f8010f84321500004c89ffe8763f01004c89f7e86e3f01004d8b75084d85f60f845dffffff418b0683f8020f845409000083f8030f841c09000083f8010f84710900004c89f7e83b3f01004c89efe8333f0100e934fcffff660f1f440000498b47184885c04889042474268b0083f8020f844412000083f8030f842e12000083f8010f8464120000488b3c24e8f53e0100498b47104885c04889042474268b0083f8020f843f0c000083f8030f84040c000083f8010f845f0c0000488b3c24e8c23e0100498b47084885c00f848dfdffff8b1083fa020f847806000083fa030f843906000083fa0174754889c7e8943e0100e967fdffff0f1f8000000000488b7a18488944240848891424e836bcffff488b442408488b1424488b7a10488944240848891424e81bbcffff488b442408488b1424488b7a08488944240848891424e800bcffff488b1424488b4424084889d748890424e82b3e0100488b0424488b780848890424e8dabbffff488b04244889c7e80e3e0100e9e1fcffff660f1f8400000000004d8b7e184d85ff7426418b0783f8020f842915000083f8030f841715000083f8010f84451500004c89ffe8d13d01004d8b7e104d85ff7426418b0783f8020f84ba0d000083f8030f84830d000083f8010f84db0d00004c89ffe8a23d01004d8b7e084d85ff0f844bfbffff418b0783f8020f84a706000083f8030f847006000083f8010f84910000004c89ffe86f3d0100e920fbffff662e0f1f840000000000488b0424488b7818e813bbffff488b0424488b40104885c074258b1083fa020f846f1d000083fa030f84531d000083fa010f84701d00004889c7e8213d0100488b0424488b40084885c074258b1083fa020f847616000083fa030f845a16000083fa010f84771600004889c7e8ef3c0100488b3c24e8e63c0100498b47084885c0488904240f845effffff8b0083f8020f844c09000083f8030f841109000083f8010f846c090000488b3c24e8af3c01004c89ffe8a73c0100e958faffff488b781848890424e855baffff488b0424488b781048890424e844baffff488b0424488b780848890424e833baffff488b04244889c7e8673c0100498b47104885c074258b1083fa020f842619000083fa030f840c19000083fa010f84251900004889c7e8393c0100498b47084885c04889042474268b0083f8020f84cf0f000083f8030f84b90f000083f8010f84ef0f0000488b3c24e8063c01004c89ffe8fe3b01004d8b7e104d85ff0f849efaffff418b0783f8020f842304000083f8030f84ec03000083f8010f8445faffff4c89ffe8cb3b0100e973faffff660f1f4400004d8b7e184d85ff7426418b0783f8020f840d12000083f8030f84fb11000083f8010f84291200004c89ffe8913b01004d8b7e104d85ff7426418b0783f8020f849a0c000083f8030f84630c000083f8010f84bb0c00004c89ffe8623b01004d8b7e084d85ff0f8411fbffff418b0783f8020f84f703000083f8030f84c003000083f8010f84bb0000004c89ffe82f3b0100e9e6faffff488b78184889442408e8dcb8ffff488b442408488b78104889442408e8c9b8ffff488b442408488b78084889442408e8b6b8ffff488b4424084889c7e8e93a0100488b0424488b40104885c074258b1083fa020f84c71a000083fa030f84ab1a000083fa010f84c81a00004889c7e8b73a0100488b0424488b40084885c074258b1083fa020f844a14000083fa030f842e14000083fa010f844b1400004889c7e8853a0100488b3c24e87c3a0100498b47084885c0488904240f8434ffffff8b0083f8020f84a208000083f8030f846708000083f8010f84c2080000488b3c24e8453a01004c89ffe83d3a0100e9f4f9ffff498b7f18e8efb7ffff498b7f10e8e6b7ffff498b7f08e8ddb7ffff4c89ffe8153a01004d8b7e104d85ff7426418b0783f8020f841119000083f8030f84ff18000083f8010f84081900004c89ffe8e63901004d8b7e084d85ff7426418b0783f8020f84c50f000083f8030f84b30f000083f8010f84e10f00004c89ffe8b73901004c89f7e8af3901004d8b75104d85f60f8433f9ffff418b0683f8020f842503000083f8030f84ed02000083f8010f84def8ffff4c89f7e87c390100e908f9ffff0f1f80000000004d8b7e184d85ff0f8465fdffff418b0783f8020f84f0fcffff83f8030f847e21000083f8010f840cfdffff4c89ffe83d390100e93afdffff0f1f8400000000004d8b75184d85f67426418b0683f8020f842015000083f8030f840e15000083f8010f843d1500004c89f7e8013901004d8b75104d85f60f8486f9ffff418b0683f8020f8414f9ffff83f8030f848f22000083f8010f8431f9ffff4c89f7e8ce380100e95bf9ffff660f1f8400000000004d8b75184d85f60f8404ffffff418b0683f8020f8492feffff83f8030f841622000083f8010f84affeffff4c89f7e88d380100e9d9feffff0f1f84000000000031c04883c4185b5d415c415d415e415fc30f1f8000000000488b50184885d2742d8b0a83f9020f84db14000083f9030f84b714000083f9010f84e41400004889d748890424e836380100488b0424488b50104885d20f84fef9ffff8b0a83f9020f84adf9ffff83f9030f8489f9ffff83f9010f84b6f9ffff4889d748890424e8fc370100488b0424e9ccf9ffff0f1f00498b47184885c074258b1083fa020f841015000083fa030f84f614000083fa010f840f1500004889c7e8c2370100498b47104885c0488904240f8423f6ffff8b0083f8020f84abf5ffff83f8030f8495f5ffff83f8010f84cbf5ffff488b3c24e88b370100e9f8f5ffff660f1f440000498b47184885c074258b1083fa020f842416000083fa030f840a16000083fa010f84231600004889c7e852370100498b47104885c0488904240f84c5fcffff8b0083f8020f844dfcffff83f8030f84ed28000083f8010f846dfcffff488b3c24e81b370100e99afcffff660f1f440000498b47184885c074258b1083fa020f845315000083fa030f843915000083fa010f84521500004889c7e8e2360100498b47104885c0488904240f84ebf9ffff8b0083f8020f8473f9ffff83f8030f845df9ffff83f8010f8493f9ffff488b3c24e8ab360100e9c0f9ffff660f1f4400004d8b7e184d85ff7426418b0783f8020f842e16000083f8030f841c16000083f8010f84251600004c89ffe8713601004d8b7e104d85ff0f84bef5ffff418b0783f8020f8449f5ffff83f8030f8437f5ffff83f8010f8465f5ffff4c89ffe83e360100e993f5ffff660f1f8400000000004d8b7e184d85ff7426418b0783f8020f84ab1d000083f8030f84991d000083f8010f84a21d00004c89ffe8013601004d8b7e104d85ff7426418b0783f8020f84bc0c000083f8030f84aa0c000083f8010f84d80c00004c89ffe8d23501004d8b7e084d85ff0f8482f6ffff418b0783f802745683f8030f84b41d000083f80174764c89ffe8a7350100e95ff6ffff488b781848890424e855b3ffff488b0424488b781048890424e844b3ffff488b0424488b780848890424e833b3ffff488b04244889c7e867350100498b47104885c074258b1083fa020f84e812000083fa030f84ce12000083fa010f84e71200004889c7e839350100498b47084885c0488904240f8479ffffff8b0083f8020f84bf09000083f8030f84a909000083f8010f84df090000488b3c24e8023501004c89ffe8fa340100e9b2f5ffff0f1f4400004d8b7e184d85ff7426418b0783f8020f84731d000083f8030f84611d000083f8010f846a1d00004c89ffe8c13401004d8b7e104d85ff7426418b0783f8020f84c409000083f8030f84b209000083f8010f84e00900004c89ffe8923401004d8b7e084d85ff0f840cf2ffff418b0783f802745683f8030f84d41c000083f80174764c89ffe867340100e9e9f1ffff488b781848890424e815b2ffff488b0424488b781048890424e804b2ffff488b0424488b780848890424e8f3b1ffff488b04244889c7e827340100498b47104885c074258b1083fa020f840912000083fa030f84ef11000083fa010f84081200004889c7e8f9330100498b47084885c0488904240f8479ffffff8b0083f8020f840508000083f8030f84ef07000083f8010f8425080000488b3c24e8c23301004c89ffe8ba330100e93cf1ffff0f1f440000488b0424488b40184885c074258b1083fa020f848122000083fa030f846522000083fa010f84822200004889c7e87e330100488b0424488b40104885c074258b1083fa020f844f0d000083fa030f84330d000083fa010f84500d00004889c7e84c330100488b0424488b40084885c00f8483f6ffff8b1083fa02742f83fa03741783fa0174384889c7e822330100e965f6ffff0f1f440000488b78184889442408e8cab0ffff488b442408488b78104889442408e8b7b0ffff488b442408488b78084889442408e8a4b0ffff488b4424084889c7e8d7320100e91af6ffff6690488b0424488b40184885c074258b1083fa020f84391f000083fa030f841d1f000083fa010f843a1f00004889c7e89e320100488b0424488b40104885c074258b1083fa020f84b50b000083fa030f84990b000083fa010f84b60b00004889c7e86c320100488b0424488b40084885c00f8490f3ffff8b1083fa02742f83fa03741783fa0174384889c7e842320100e972f3ffff0f1f440000488b78184889442408e8eaafffff488b442408488b78104889442408e8d7afffff488b442408488b78084889442408e8c4afffff488b4424084889c7e8f7310100e927f3ffff6690488b0424488b40184885c074258b1083fa020f841b1e000083fa030f84ff1d000083fa010f841c1e00004889c7e8be310100488b0424488b40104885c074258b1083fa020f84970a000083fa030f847b0a000083fa010f84980a00004889c7e88c310100488b0424488b40084885c00f842df7ffff8b1083fa02742f83fa03741783fa0174384889c7e862310100e90ff7ffff0f1f440000488b78184889442408e80aafffff488b442408488b78104889442408e8f7aeffff488b442408488b78084889442408e8e4aeffff488b4424084889c7e817310100e9c4f6ffff6690488b0424488b40184885c074258b1083fa020f842b1c000083fa030f840f1c000083fa010f842c1c00004889c7e8de300100488b0424488b40104885c074258b1083fa020f847909000083fa030f845d09000083fa010f847a0900004889c7e8ac300100488b0424488b40084885c00f8437efffff8b1083fa02742f83fa03741783fa0174384889c7e882300100e919efffff0f1f440000488b78184889442408e82aaeffff488b442408488b78104889442408e817aeffff488b442408488b78084889442408e804aeffff488b4424084889c7e837300100e9ceeeffff6690498b47184885c074258b1083fa020f842022000083fa030f840622000083fa010f841f2200004889c7e802300100498b47104885c04889042474268b0083f8020f84ff0a000083f8030f84e90a000083f8010f841f0b0000488b3c24e8cf2f0100498b47084885c0488904240f8414f2ffff8b0083f802742c83f803741a83f8017454488b3c24e8a42f0100e9f5f1ffff0f1f8000000000488b0424488b7818e84badffff488b0424488b40104885c074258b1083fa020f84e50f000083fa030f84c90f000083fa010f84e60f00004889c7e8592f0100488b0424488b40084885c0749f8b1083fa020f843a07000083fa030f841e07000083fa010f843b0700004889c7e8272f0100488b3c24e81e2f0100e96ff1ffff660f1f840000000000498b47184885c074258b1083fa020f84a821000083fa030f848e21000083fa010f84a72100004889c7e8e22e0100498b47104885c04889042474268b0083f8020f84eb08000083f8030f84d508000083f8010f840b090000488b3c24e8af2e0100498b47084885c0488904240f8434f3ffff8b0083f802742c83f803741a83f8017454488b3c24e8842e0100e915f3ffff0f1f8000000000488b0424488b7818e82bacffff488b0424488b40104885c074258b1083fa020f847f0f000083fa030f84630f000083fa010f84800f00004889c7e8392e0100488b0424488b40084885c0749f8b1083fa020f849606000083fa030f847a06000083fa010f84970600004889c7e8072e0100488b3c24e8fe2d0100e98ff2ffff660f1f840000000000498b47184885c074258b1083fa020f84c51e000083fa030f84ab1e000083fa010f84c41e00004889c7e8c22d0100498b47104885c04889042474268b0083f8020f843909000083f8030f842309000083f8010f8459090000488b3c24e88f2d0100498b47084885c0488904240f84ffecffff8b0083f802742c83f803741a83f8017454488b3c24e8642d0100e9e0ecffff0f1f8000000000488b0424488b7818e80babffff488b0424488b40104885c074258b1083fa020f84210e000083fa030f84050e000083fa010f84220e00004889c7e8192d0100488b0424488b40084885c0749f8b1083fa020f843805000083fa030f841c05000083fa010f84390500004889c7e8e72c0100488b3c24e8de2c0100e95aecffff488b0424488b7818e88caaffff488b0424488b40104885c074258b1083fa020f84b918000083fa030f849d18000083fa010f84ba1800004889c7e89a2c0100488b0424488b40084885c00f848bedffff8b1083fa020f84c70f000083fa030f84ab0f000083fa010f84c80f00004889c7e8642c0100e961edffff488b0424488b7818e812aaffff488b0424488b40104885c074258b1083fa020f842f17000083fa030f841317000083fa010f84301700004889c7e8202c0100488b0424488b40084885c00f8400f0ffff8b1083fa020f84c90f000083fa030f84ad0f000083fa010f84ca0f00004889c7e8ea2b0100e9d6efffff488b0424488b7818e898a9ffff488b0424488b40104885c074258b1083fa020f84d518000083fa030f84b918000083fa010f84d61800004889c7e8a62b0100488b0424488b40084885c00f84caf7ffff8b1083fa020f848d0f000083fa030f84710f000083fa010f848e0f00004889c7e8702b0100e9a0f7ffff488b0424488b7818e81ea9ffff488b0424488b40104885c074258b1083fa020f849918000083fa030f847d18000083fa010f849a1800004889c7e82c2b0100488b0424488b40084885c00f8410f6ffff8b1083fa020f84970e000083fa030f847b0e000083fa010f84980e00004889c7e8f62a0100e9e6f5ffff498b7f18e8a8a8ffff498b47104885c074258b1083fa020f84851b000083fa030f846b1b000083fa010f84841b00004889c7e8ba2a0100498b47084885c00f8413f6ffff8b1083fa020f840410000083fa030f84ea0f000083fa010f84031000004889c7e8882a0100e9e9f5ffff498b7f18e83aa8ffff498b47104885c074258b1083fa020f84a71a000083fa030f848d1a000083fa010f84a61a00004889c7e84c2a0100498b47084885c00f84c1eaffff8b1083fa020f84350f000083fa030f841b0f000083fa010f84340f00004889c7e81a2a0100e997eaffff498b7f18e8cca7ffff498b47104885c074258b1083fa020f84141d000083fa030f84fa1c000083fa010f84131d00004889c7e8de290100498b47084885c00f8412f0ffff8b1083fa020f84050e000083fa030f84eb0d000083fa010f84040e00004889c7e8ac290100e9e8efffff498b7f18e85ea7ffff498b47104885c074258b1083fa020f846e1c000083fa030f84541c000083fa010f846d1c00004889c7e870290100498b47084885c00f84caedffff8b1083fa020f841b0f000083fa030f84010f000083fa010f841a0f00004889c7e83e290100e9a0edffff498b7f18e8f0a6ffff498b47104885c074258b1083fa020f842519000083fa030f840b19000083fa010f84241900004889c7e802290100498b47084885c00f841bf3ffff8b1083fa020f848a0d000083fa030f84700d000083fa010f84890d00004889c7e8d0280100e9f1f2ffff498b7f18e882a6ffff498b47104885c074258b1083fa020f842719000083fa030f840d19000083fa010f84261900004889c7e894280100498b47084885c0488904240f84aaeaffff8b0083f8020f84cd19000083f8030f84b719000083f8010f84ba0e0000488b3c24e85d280100e97feaffff488b78184889442408e80aa6ffff488b442408488b78104889442408e8f7a5ffff488b442408488b78084889442408e8e4a5ffff488b442408e97be6ffff488b78184889442408e8cca5ffff488b442408488b78104889442408e8b9a5ffff488b442408488b78084889442408e8a6a5ffff488b442408e9adf8ffff488b78184889442408e88ea5ffff488b442408488b78104889442408e87ba5ffff488b442408488b78084889442408e868a5ffff488b442408e9affaffff488b78184889442408e850a5ffff488b442408488b78104889442408e83da5ffff488b442408488b78084889442408e82aa5ffff488b442408e951f9ffff488b78184889442408e812a5ffff488b442408488b78104889442408e8ffa4ffff488b442408488b78084889442408e8eca4ffff488b442408e96ef6ffff488b78184889442408e8d4a4ffff488b442408488b78104889442408e8c1a4ffff488b442408488b78084889442408e8aea4ffff488b442408e950f5ffff488b78184889442408e896a4ffff488b442408488b78104889442408e883a4ffff488b442408488b78084889442408e870a4ffff488b442408e932f4ffff488b78184889442408e858a4ffff488b442408488b78104889442408e845a4ffff488b442408488b78084889442408e832a4ffff488b442408e971e9ffff488b78184889442408e81aa4ffff488b442408488b78104889442408e807a4ffff488b442408488b78084889442408e8f4a3ffff488b442408e99debffff488b78184889442408e8dca3ffff488b442408488b78104889442408e8c9a3ffff488b442408488b78084889442408e8b6a3ffff488b442408e998f2ffff488b0424488b7818e89fa3ffff488b0424488b40104885c074258b1083fa020f84d007000083fa030f84b407000083fa010f84d10700004889c7e8ad250100488b0424488b40084885c00f84e4f6ffff8b1083fa020f84ed0c000083fa030f84d10c000083fa010f84ee0c00004889c7e877250100e9baf6ffff488b0424488b7818e825a3ffff488b0424488b40104885c074258b1083fa020f84fa07000083fa030f84de07000083fa010f84fb0700004889c7e833250100488b0424488b40084885c00f846be4ffff8b1083fa020f84b90b000083fa030f849d0b000083fa010f84ba0b00004889c7e8fd240100e941e4ffff488b0424488b7818e8aba2ffff488b0424488b40104885c074258b1083fa020f849e06000083fa030f848206000083fa010f849f0600004889c7e8b9240100488b0424488b40084885c00f84d0f4ffff8b1083fa020f847d0b000083fa030f84610b000083fa010f847e0b00004889c7e883240100e9a6f4ffff488b0424488b7818e831a2ffff488b0424488b40104885c074258b1083fa020f844407000083fa030f842807000083fa010f84450700004889c7e83f240100488b0424488b40084885c00f8496f6ffff8b1083fa020f84410b000083fa030f84250b000083fa010f84420b00004889c7e809240100e96cf6ffff498b7e18e8bba1ffff4d8b7e104d85ff7426418b0783f8020f840507000083f8030f84f306000083f8010f84fc0600004c89ffe8cc2301004d8b7e084d85ff0f84b6eaffff418b0783f8020f84bd0c000083f8030f84ab0c000083f8010f84b40c00004c89ffe899230100e98beaffff488b7a18488944240848891424e842a1ffff488b442408488b1424488b7a10488944240848891424e827a1ffff488b442408488b1424488b7a08488944240848891424e80ca1ffff488b442408488b1424e9fceaffff488b781848890424e8f1a0ffff488b0424488b781048890424e8e0a0ffff488b0424488b50084885d20f84cee6ffff8b0a83f9020f843312000083f9030f840f12000083f9010f843c1200004889d748890424e8e6220100488b0424e99ce6ffff488b781848890424e890a0ffff488b0424488b781048890424e87fa0ffff488b0424488b50084885d20f84e4eaffff8b0a83f9020f84e810000083f9030f84c410000083f9010f84f11000004889d748890424e885220100488b0424e9b2eaffff488b781848890424e82fa0ffff488b0424488b781048890424e81ea0ffff488b0424488b50084885d20f840cedffff8b0a83f9020f84930c000083f9030f846f0c000083f9010f849c0c00004889d748890424e824220100488b0424e9daecffff488b781848890424e8ce9fffff488b0424488b781048890424e8bd9fffff488b0424488b50084885d20f84ebedffff8b0a83f9020f847c10000083f9030f845810000083f9010f84851000004889d748890424e8c3210100488b0424e9b9edffff488b781848890424e86d9fffff488b0424488b781048890424e85c9fffff488b0424488b50084885d20f84a1eaffff8b0a83f9020f84f90c000083f9030f84d50c000083f9010f84020d00004889d748890424e862210100488b0424e96feaffff488b781848890424e80c9fffff488b0424488b781048890424e8fb9effff488b0424488b50084885d20f84d0e9ffff8b0a83f9020f840e0f000083f9030f84ea0e000083f9010f84170f00004889d748890424e801210100488b0424e99ee9ffff498b7f18e8af9effff498b7f10e8a69effff498b47084885c00f84ebe6ffff8b1083fa020f84ef11000083fa030f84d511000083fa010f84ee1100004889c7e8b4200100e9c1e6ffff498b7f18e8669effff498b7f10e85d9effff498b47084885c00f84e3e0ffff8b1083fa020f845610000083fa030f843c10000083fa010f84551000004889c7e86b200100e9b9e0ffff498b7f18e81d9effff498b7f10e8149effff498b47084885c00f84cee9ffff8b1083fa020f84d511000083fa030f84bb11000083fa010f84d41100004889c7e822200100e9a4e9ffff488b78184889442408e8cf9dffff488b442408488b78104889442408e8bc9dffff488b442408488b78084889442408e8a99dffff488b442408e920e5ffff488b78184889442408e8919dffff488b442408488b78104889442408e87e9dffff488b442408488b78084889442408e86b9dffff488b442408e978e2ffff488b78184889442408e8539dffff488b442408488b78104889442408e8409dffff488b442408488b78084889442408e82d9dffff488b442408e902f0ffff488b78184889442408e8159dffff488b442408488b78104889442408e8029dffff488b442408488b78084889442408e8ef9cffff488b442408e954ddffff488b78184889442408e8d79cffff488b442408488b78104889442408e8c49cffff488b442408488b78084889442408e8b19cffff488b442408e9c6f1ffff488b78184889442408e8999cffff488b442408488b78104889442408e8869cffff488b442408488b78084889442408e8739cffff488b442408e968f0ffff488b781848890424e85c9cffff488b0424488b781048890424e84b9cffff488b0424488b50084885d20f8491ddffff8b0a83f9020f84be00000083f9030f849a00000083f9010f84c70000004889d748890424e8511e0100488b0424e95fddffff488b78184889442408e8fa9bffff488b442408488b78104889442408e8e79bffff488b442408488b78084889442408e8d49bffff488b442408e949f9ffff488b78184889442408e8bc9bffff488b442408488b78104889442408e8a99bffff488b442408488b78084889442408e8969bffff488b442408e917f8ffff488b7a18488944240848891424e87a9bffff488b442408488b1424488b7a10488944240848891424e85f9bffff488b442408488b1424488b7a08488944240848891424e8449bffff488b1424488b4424084889d748890424e86f1d0100488b0424e97ddcffff488b78184889442408e8189bffff488b442408488b78104889442408e8059bffff488b442408488b78084889442408e8f29affff488b442408e9edf7ffff488b78184889442408e8da9affff488b442408488b78104889442408e8c79affff488b442408488b78084889442408e8b49affff488b442408e9a3f8ffff498b7f18e8a19affff498b7f10e8989affff498b7f08e88f9affffe9f6f8ffff488b78184889442408e87c9affff488b442408488b78104889442408e8699affff488b442408488b78084889442408e8569affff488b442408e920f0ffff488b78184889442408e83e9affff488b442408488b78104889442408e82b9affff488b442408488b78084889442408e8189affff488b442408e950f1ffff488b78184889442408e8009affff488b442408488b78104889442408e8ed99ffff488b442408488b78084889442408e8da99ffff488b442408e91ef0ffff488b78184889442408e8c299ffff488b442408488b78104889442408e8af99ffff488b442408488b78084889442408e89c99ffff488b442408e95af0ffff488b781848890424e88599ffff488b0424488b781048890424e87499ffff488b0424488b50084885d20f84eff1ffff8b0a83f9020f841d0b000083f9030f84f90a000083f9010f84260b00004889d748890424e87a1b0100488b0424e9bdf1ffff488b781848890424e82499ffff488b0424488b781048890424e81399ffff488b0424488b50084885d20f846af2ffff8b0a83f9020f84de05000083f9030f84ba05000083f9010f84e70500004889d748890424e8191b0100488b0424e938f2ffff488b781848890424e8c398ffff488b0424488b781048890424e8b298ffff488b0424488b50084885d20f84bff0ffff8b0a83f9020f84d104000083f9030f84ad04000083f9010f84da0400004889d748890424e8b81a0100488b0424e98df0ffff488b781848890424e86298ffff488b0424488b781048890424e85198ffff488b0424488b50084885d20f84f0efffff8b0a83f9020f843c07000083f9030f841807000083f9010f84450700004889d748890424e8571a0100488b0424e9beefffff488b781848890424e80198ffff488b0424488b781048890424e8f097ffff488b0424488b50084885d20f84d9f0ffff8b0a83f9020f84ad07000083f9030f848907000083f9010f84b60700004889d748890424e8f6190100488b0424e9a7f0ffff488b78184889442408e89f97ffff488b442408488b78104889442408e88c97ffff488b442408488b78084889442408e87997ffff488b4424084889c7e8ac190100488b0424488b40084885c00f8435f1ffff8b1083fa020f845705000083fa030f843b05000083fa010f84580500004889c7e876190100e90bf1ffff488b78184889442408e82397ffff488b442408488b78104889442408e81097ffff488b442408488b78084889442408e8fd96ffff488b442408e92ef4ffff488b78184889442408e8e596ffff488b442408488b78104889442408e8d296ffff488b442408488b78084889442408e8bf96ffff488b442408e96af4ffff488b78184889442408e8a796ffff488b442408488b78104889442408e89496ffff488b442408488b78084889442408e88196ffff488b442408e9a6f4ffff488b78184889442408e86996ffff488b442408488b78104889442408e85696ffff488b442408488b78084889442408e84396ffff488b442408e9faf2ffff498b7f18e83096ffff498b7f10e82796ffff498b47084885c00f8451e2ffff8b1083fa02742883fa03741283fa01742f4889c7e841180100e933e2ffff488b781848890424e8ef95ffff488b0424488b781048890424e8de95ffff488b0424488b780848890424e8cd95ffff488b0424ebbe0f1f8000000000498b47184885c00f848ce2ffff8b1083fa020f8457e2ffff83fa030f843de2ffff83fa010f8567e2ffffe951e2ffff90498b47184885c00f845cdbffff8b1083fa020f8427dbffff83fa030f840ddbffff83fa010f8537dbffffe921dbffff90498b47184885c00f846ce3ffff8b1083fa020f8437e3ffff83fa030f841de3ffff83fa010f8547e3ffffe931e3ffff498b7f18e82895ffff498b7f10e81f95ffff498b47084885c00f8489e2ffff8b1083fa02742883fa03741283fa01742f4889c7e839170100e96be2ffff488b781848890424e8e794ffff488b0424488b781048890424e8d694ffff488b0424488b780848890424e8c594ffff488b0424ebbe498b7f18e8b694ffff498b7f10e8ad94ffff498b47084885c00f843ff3ffff8b1083fa02742883fa03741283fa01742f4889c7e8c7160100e921f3ffff488b781848890424e87594ffff488b0424488b781048890424e86494ffff488b0424488b780848890424e85394ffff488b0424ebbe0f1f4400004d8b7e184d85ff0f8466dcffff418b0783f8020f8440dcffff83f8030f842edcffff83f8010f8540dcffffe932dcffff0f1f8400000000004d8b7e184d85ff0f846fd6ffff418b0783f8020f8449d6ffff83f8030f8437d6ffff83f8010f8549d6ffffe93bd6ffff488b7a18488944240848891424e8ce93ffff488b442408488b1424488b7a10488944240848891424e8b393ffff488b442408488b1424488b7a08488944240848891424e89893ffff488b442408488b1424e906fbffff488b7a18488944240848891424e87893ffff488b442408488b1424488b7a10488944240848891424e85d93ffff488b442408488b1424488b7a08488944240848891424e84293ffff488b442408488b1424e944f3ffff488b7a18488944240848891424e82293ffff488b442408488b1424488b7a10488944240848891424e80793ffff488b442408488b1424488b7a08488944240848891424e8ec92ffff488b442408488b1424e9f9f9ffff488b78184889442408e8d092ffff488b442408488b78104889442408e8bd92ffff488b442408488b78084889442408e8aa92ffff488b442408e9b8e8ffff488b78184889442408e89292ffff488b442408488b78104889442408e87f92ffff488b442408488b78084889442408e86c92ffff488b442408e9bce3ffff488b7a18488944240848891424e85092ffff488b442408488b1424488b7a10488944240848891424e83592ffff488b442408488b1424488b7a08488944240848891424e81a92ffff488b442408488b1424e9def2ffff488b78184889442408e8fe91ffff488b442408488b78104889442408e8eb91ffff488b442408488b78084889442408e8d891ffff488b442408e990faffff488b78184889442408e8c091ffff488b442408488b78104889442408e8ad91ffff488b442408488b78084889442408e89a91ffff488b442408e92ee7ffff488b78184889442408e88291ffff488b442408488b78104889442408e86f91ffff488b442408488b78084889442408e85c91ffff488b442408e9cce1ffff488b78184889442408e84491ffff488b442408488b78104889442408e83191ffff488b442408488b78084889442408e81e91ffff488b442408e9aee0ffff488b7a18488944240848891424e80291ffff488b442408488b1424488b7a10488944240848891424e8e790ffff488b442408488b1424488b7a08488944240848891424e8cc90ffff488b442408488b1424e99bf8ffff488b78184889442408e8b090ffff488b442408488b78104889442408e89d90ffff488b442408488b78084889442408e88a90ffff488b442408e912e7ffff488b78184889442408e87290ffff488b442408488b78104889442408e85f90ffff488b442408488b78084889442408e84c90ffff488b442408e94ee7ffff488b7a18488944240848891424e83090ffff488b442408488b1424488b7a10488944240848891424e81590ffff488b442408488b1424488b7a08488944240848891424e8fa8fffff488b442408488b1424e92af8ffff488b7a18488944240848891424e8da8fffff488b442408488b1424488b7a10488944240848891424e8bf8fffff488b442408488b1424488b7a08488944240848891424e8a48fffff488b442408488b1424e9c9f0ffff488b7a18488944240848891424e8848fffff488b442408488b1424488b7a10488944240848891424e8698fffff488b442408488b1424488b7a08488944240848891424e84e8fffff488b442408488b1424e9efeeffff488b7a18488944240848891424e82e8fffff488b442408488b1424488b7a10488944240848891424e8138fffff488b442408488b1424488b7a08488944240848891424e8f88effff488b442408488b1424e95befffff488b78184889442408e8dc8effff488b442408488b78104889442408e8c98effff488b442408488b78084889442408e8b68effff488b442408e966ddffff488b7a18488944240848891424e89a8effff488b442408488b1424488b7a10488944240848891424e87f8effff488b442408488b1424488b7a08488944240848891424e8648effff488b442408488b1424e9a4edffff488b7a18488944240848891424e8448effff488b442408488b1424488b7a10488944240848891424e8298effff488b442408488b1424488b7a08488944240848891424e80e8effff488b442408488b1424e9baf4ffff488b781848890424e8f38dffff488b0424488b781048890424e8e28dffff488b0424488b780848890424e8d18dffff488b0424e995efffff488b781848890424e8bb8dffff488b0424488b781048890424e8aa8dffff488b0424488b780848890424e8998dffff488b0424e9c6e6ffff488b781848890424e8838dffff488b0424488b781048890424e8728dffff488b0424488b780848890424e8618dffff488b0424e944e5ffff488b781848890424e84b8dffff488b0424488b781048890424e83a8dffff488b0424488b780848890424e8298dffff488b0424e9c4e6ffff488b781848890424e8138dffff488b0424488b781048890424e8028dffff488b0424488b780848890424e8f18cffff488b0424e966e4ffff488b781848890424e8db8cffff488b0424488b781048890424e8ca8cffff488b0424488b780848890424e8b98cffff488b0424e926e1ffff488b781848890424e8a38cffff488b0424488b781048890424e8928cffff488b0424488b780848890424e8818cffff488b0424e9fcedffff488b0424488b7818e86b8cffff488b0424488b40104885c00f84eef4ffff8b1083fa020f84b5f4ffff83fa030f8499f4ffff83fa010f85c9f4ffffe9b1f4ffff488b781848890424e82b8cffff488b0424488b781048890424e81a8cffff488b0424488b780848890424e8098cffff488b0424e916eeffff488b0424488b40184885c00f8446d3ffff8b1083fa020f840dd3ffff83fa030f84f1d2ffff83fa010f8521d3ffffe909d3ffff488b781848890424e8c08bffff488b0424488b781048890424e8af8bffff488b0424488b50084885d20f84d4ddffff8b0a83f902743a83f903741a83f901744b4889d748890424e8c10d0100488b0424e9aeddffff488b7a18488944240848891424e8668bffff488b442408488b1424488b7a10488944240848891424e84b8bffff488b442408488b1424488b7a08488944240848891424e8308bffff488b442408488b1424eb98488b781848890424e8188bffff488b0424488b781048890424e8078bffff488b0424488b780848890424e8f68affff488b0424e943deffff488b781848890424e8e08affff488b0424488b781048890424e8cf8affff488b0424488b780848890424e8be8affff488b0424e97de3ffff488b781848890424e8a88affff488b0424488b781048890424e8978affff488b0424488b50084885d20f84e0e2ffff8b0a83f902743a83f903741a83f901744b4889d748890424e8a90c0100488b0424e9bae2ffff488b7a18488944240848891424e84e8affff488b442408488b1424488b7a10488944240848891424e8338affff488b442408488b1424488b7a08488944240848891424e8188affff488b442408488b1424eb98bf20000000893424e8a00801004885c08b34240f84b4d3ffff448920897004e9abd3ffff660f1f840000000000415741564531c0415541544589c55553bdc800000041bcfeffffff4881ec28080000488d9c24e00100004c8d74245048897c2418c744240c0000000048891c244c89f1488d442d006645892e488d5401fe4939d60f82c40000004929ce49d1fe4881fd0f270000498d5e010f870e070000483d10270000bd1027000048894c2410480f46e8488d44ad00488d7c0007e8ec0701004885c04989c7488b4c24100f84da0600004c8d341b4889ce4889c748c1e3034c89f2e8d5ed01004d8d146f488b3424488d442d004889da4c89d74889442420e8b8ed0100488b4c24104989c2488d4424504839c174104889cf4c891424e82a0b01004c8b1424488d442d004f8d7437fe498d5c1af8498d4407fe4939c60f837f0600004c8914244c89f94183fd090f84640600004d63c5410fbe8060194a0083f8f6743f4183fcfe0f842e0200004585e40f8ebc0100004181fc06010000be020000000f8e930100008d140683fa3677124863d20fbebae0184a0039fe0f84b9010000410fb6b080194a0085f64889f274324863f6bf010000000fb686a0194a0029c74989c780fa0d4863c7488b04c30f8794030000ff24d580144a000f1f8000000000837c240c037521e9540100000f1f40004c39f174534983ee02490fbf064883eb080fbe8060194a0083f8f674e383c00183f83677db489880b8e0184a000175d0440fb6a820194a004585ed74c3488b4424284883c308c744240c03000000488903e9b00000006690bb01000000488d4424504939c674084c89f7e8e90901004881c42808000089d85b5d415c415d415e415fc30f1f440000488b03488b53f0488d7424308b7bf848894c241048895424304889442438e82d8effff4a8d3cfd000000004b8d143f488b4c2410beffffffff41b80200000048f7df48f7da4801df4901d648894708410fbf06488d5f0889c201f083f83677134898660fbeb0e0184a006639f20f845b0200004d63c0450fbea87b194a004983c602e96cfdffff498d7902488b7424184585e448893e7e1f0f1f8400000000004963d40fb6b2c0194a00e95efeffff488b7424184c890e31f64531e4e94cfeffff0f1f80000000004183fc000f8e0902000041bcfeffffffe9b3feffff0f1f00440fb6aa20194a004585ed0f84c80100008b44240c41bcfeffffff83f80183d0ff4883c3088944240c488b442428488903e968ffffff662e0f1f840000000000488b7424184c8b0e410fb61184d2748480fa09740b80fa207520660f1f4400004983c101410fb61184d20f845fffffff80fa2074eb80fa0974e680fa7c498d7901440fbee20f87c00100000fb6d2ff24d5f0144a00488b134885d20f8460010000488b7424184a8d3cfd0000000041b80100000048f7df488956084b8d143fbef6ffffff48f7dae999feffff488b53f0488b73e0bf03000000488b0348894c24104889542438488d5424304889742430be100000004889442440e801c4ffffe93ffeffff488b03488b53f0488d74243048894c2410bf0f00000048895424304889442438e915feffff488b03488b53f0488d74243048894c2410bf0e00000048895424304889442438e9f0fdffff488b43f84a8d3cfd000000004b8d143fbeffffffff41b80200000048f7df48f7dae9f1fdffff488b03488d542430be02000000bf0100000048894c24104889442430e86bc3ffffe9a9fdffff31d231ffbe0100000048894c2410e853c3ffff4885c0488b4c24100f84b8020000488b1348895008eb8e31d231f631ff48894c2410e82cc3ffffe96afdffff488b430831f641b8f0ffffff31d231ffe977fdffff440fb6a820194a00e9a3fdffff0f85affcffff4989cebb01000000e9e7fcffff440fb686b0194a004a8d3cfd000000004d01ff4c89fa48f7df48f7da4183e8104963f00fbeb657194a00e928fdffff410fbe51014139d40f845cfdffffbe0100000041bc00010000488b54241848893ae9cafbffff48ba00000000ffffffff4823542428be0900000041bc050100004883ca054889542428ebce418079013d0f8518fdffff48ba00000000ffffffff4823542428498d7902be0600000041bc020100004883ca0d4889542428eb9a418079013d0f84d001000048ba00000000ffffffff4823542428be0700000041bc030100004883ca094889542428e967ffffff418079013dbe0100000041bc000100000f8551ffffff48ba00000000ffffffff4823542428498d7902be0600000041bc020100004883ca0c4889542428e925ffffff418079013d0f848701000048ba00000000ffffffff4823542428be0700000041bc030100004883ca084889542428e9f2feffff410fbe5101418d7424d04863f6448d4ad04180f909771f83ea30488d34b64883c7014863d2488d34720fbe17448d4ad04180f90976e1488974242841bc06010000be0b000000e9a7feffff48ba00000000ffffffff4823542428be0900000041bc050100004883ca044889542428e97ffeffff48ba00000000ffffffff4823542428be0800000041bc040100004883ca064889542428e957feffff48ba00000000ffffffff4823542428be0900000041bc050100004883ca034889542428e92ffeffff48ba00000000ffffffff4823542428be0800000041bc040100004883ca074889542428e907feffff4989cebb02000000e999faffff4989ce31dbe98ffaffff4d89febb01000000e982faffff4a8d3cfd000000004d01ffbeffffffff4c89fa41b80200000048f7df48f7dae9cefaffff48ba00000000ffffffff4823542428498d7902be0700000041bc030100004883ca0b4889542428e993fdffff48ba00000000ffffffff4823542428498d7902be0700000041bc030100004883ca0a4889542428e967fdffff904155415455534889f54889d34883ec284885ff0f849f0000004989fdbec71a4a00e8fa26ffffbecf1a4a004989c44c89efe8ea26ffff4d85e4747d4885c074784c8d68090fb6400984c0746c48c7c2f0ffffff64488b0aeb140f1f80000000004983c501410fb6450084c0744b0fb6d0f64451012075e983e8303c09773a488d742408ba0a0000004c89efe8701100004c396c24087421488d7c24104983c4074889034c89642410e833f7ffff85c074210f1f800000000048c74500e01a4a0048c703020000004883c4285b5d415c415dc3488b44241848894500ebea0f1f0031c0660f1f4400000fb61784d2742748c1e0044883c7014801d04889c281e2000000f074e34831d048c1ea184831d00fb61784d275d9f3c30f1f84000000000031f6e959190400660f1f840000000000648b0c25d4020000648b0425d00200004863f085f67531b8ba0000000f0589c164890425d00200004863f04863d7b8ea0000004863f90f05483d00f0ffff7720f3c3660f1f44000085c97fdf89caf7da81e1ffffff7f0f44d689d1ebce0f1f0048c7c2d0fffffff7d8648902b8ffffffffc3662e0f1f8400000000000f1f40004881ec2801000064488b142510000000483b1571e32b007446be0100000031c0833de5f32b0000740cf00fb1354fe32b00750beb230fb13544e32b00741a488d3d3be32b004881ec80000000e81f4a03004881c48000000048891529e32b008b052be32b00830518e32b000185c0744383f801747783f8020f848e00000083f8030f844201000083f8040f840502000083f8050f841a02000083f8060f843402000083f8070f842c0200000f1f440000f4ebfd31c0b9100000004889e7f348ab31d24889e6bf01000000c705bce22b000100000048c7042420000000e8ff1a04008b05a9e22b0083f801758931ffc70598e22b0002000000e8a37d00008b058de22b0083f8020f8572ffffff832d71e22b0001c70573e22b0000000000754148c7055ee22b0000000000833ddbf22b0000740bf0ff0d46e22b00750aeb22ff0d3ce22b00741a488d3d33e22b004881ec80000000e8474903004881c480000000bf06000000e816feffff64488b142510000000483b150ee22b007446be0100000031c0833d82f22b0000740cf00fb135ece12b00750beb230fb135e1e12b00741a488d3dd8e12b004881ec80000000e8bc4803004881c480000000488915c6e12b008305bbe12b0001488db4248000000031c0b91300000031d2c705ace12b00040000004889f7f348ab48c7842488000000ffffffffbf0600000048c74610ffffffff48c74618ffffffff48c74620ffffffff48c74628ffffffff48c74630ffffffff48c74638ffffffff48c74640ffffffff48c74648ffffffff48c74650ffffffff48c74658ffffffff48c74660ffffffff48c74668ffffffff48c74670ffffffff48c74678ffffffff48c78680000000ffffffffc784240801000000000000e82a1904008b0504e12b0083f8040f85fbfdffffc705f1e02b0005000000e8ec3500008b05e6e02b0083f8050f85e6fdffffbf06000000c705cee02b0006000000e8b9fcffff8b05c3e02b0083f8060f85ccfdfffff4bf7f000000c705aae02b0008000000e8850903000f1f440000415741564889f8415541544989d4555349d1ec4d89e74889d54883ec584c29e54c0faf3f48897c2418488974242848895424484901f74983fc01760b4c89e24889c7e8b9ffffff4883fd017610488b7c24184889ea4c89fee8a3ffffff488b442418488b38488b58204c8b701048897c2410488b7818488b400848897c24084883f8010f84df0200000f82610200004883f80274734883f8030f85290300004885ed0f84910300004d85e44c8b6c24287532e982030000660f1f840000000000498b074883ed014983c7084889034883c3084d85e40f84850100004885ed0f847c010000488b542408498b37498b7d0041ffd685c07fc9498b45004983ec014983c508ebc60f1f00488b742410b8080000004c8b6c24284c897424304829f04c896c24204989f64889442438b8100000004989ed4829f04d85e44c89fd48894424400f84090100000f1f8400000000004d85ed0f84f8000000488b5424084889ee488b7c2420488b4424304e8d3c33ffd085c00f8e470100004889e84983ed014c01f54c39fb0f83b9000000488b7c2438488b742440498d57074c01ff498d0c374829fa48c1ea034883c2014839c8488d4810400f93c64839cb0f93c14008ce0f84da0000004883fa180f86d00000004889c148c1e13c48c1e93f4839d1480f47ca4885c90f84f5000000488b304c8d48084889334829ca48c1e1034531db488d72fe4801c84801cb31c948d1ee4883c6014c8d1436660f6f04084983c3010f11040b4883c1104939f372ea4a8d04d5000000004801c74901c14939d27406498b014889074d85e44c89fb0f85fffeffff4c89ed4c8b6c24200f1f80000000004d85e40f85df000000488b542448488b442418488b7c24284829ea488b7020480faf5424104883c4585b5d415c415d415e415fe938df01000f1f8400000000004883c008488b50f84883c3084939df488953f877ebeb8e660f1f840000000000488b7c24204983ec014889f84c01f748897c2420e9aafeffff0f1f80000000004989c14889dfe90affffff0f1f4400004d85e44c8b6c24287520e961ffffff90418b074883ed014983c70489034883c3044d85e40f8446ffffff4885ed0f843dffffff488b5424084c89fe4c89ef41ffd685c07fcb418b45004983ec014983c504ebc80f1f4400004c89e24c89ee4889df480faf542410e874de0100e908ffffff0f1f80000000004885ed0f84c80000004d85e44c8b6c24287529e9b9000000498b074883ed014983c7084889034883c3084d85e40f84c5feffff4885ed0f84bcfeffff488b5424084c89fe4c89ef41ffd685c07fca498b45004983ec014983c508ebc70f1f40004c8b6c24284d85e40f848afeffff4885ed0f8481feffff488b5424084c89fe4c89ef41ffd685c0488b5424107e2a4c89fe4889df4883ed01e86b8301004c037c24104d85e44889c375c4e949feffff660f1f8400000000004c89ee4889df4983ec01e8418301004c036c24104889c3eb944c8b6c2428e91dfeffff0f1f00662e0f1f840000000000554889e541574156415541544989fe534989cf4889d34989f54883ec684883fa20488975880f87f50200004c0fafea4981fdff0300000f86f80200008b151edc2b0085d20f84960300004863f24c89e831d248f7f6483b05fcdb2b000f87fe02000048c7c0d0ffffff4c89ef4c89459864448b20e8f7f6000048c7c1d0ffffff4885c048898578ffffff4c8b4598644489210f84c8020000488945c04889c64883fb2048895da048c745a8040000004c897db04c8945b80f86cb020000488b45884c8d0cc5000000004e8d240e4b8d040c4939c4488945800f8394030000498d4c24084c8d58074c89e248c1e23c4929cb48c1ea3f49c1eb03498d7b014839fa480f47d74883ff0a0f87290300004889fa4883fa014d893424498d041e0f84a900000049894424084801d84883fa02498d4c24100f849200000049894424104801d84883fa03498d4c2418747f49894424184801d84883fa04498d4c2420746c49894424204801d84883fa05498d4c2428745949894424284801d84883fa06498d4c2430744649894424304801d84883fa07498d4c2438743349894424384801d84883fa08498d4c2440742049894424404801d84883fa0a498d4c2448750d498d4c245049894424484801d84839d774724829d74c8d47fe49d1e84983c0014939d34f8d140074584c8d1c034889459848035588f30f7e45984c895d984c8d1c1b0f1645984c895d98488d34d631d2f30f7e4d98660f6cc94883c2014883c6100f2946f0660fd4c14c39c272eb4889da4a8d0cd1490fafd24801d04c39d774034889014c89ce480375c0488b458848c745a00800000048c745a8030000004883f8010f86e3010000488d7da04889c2e83cf9ffff48c7459000000000488b45904c8975980f1f40004d8b3cc44c8b6d984d39ef745d488b7d804c89ee4889dae8dcda01004c89ef488b7590eb060f1f004989c74c89f831d249893cf44c29f04c89fe48f7f34889da4989c5e8b0da01004b8d14ec4c89ee4c89ff488b02483b459875cd488b75804c893a4889dae88eda0100488345900148015d98488b4590483945887583488bbd78ffffffe8fff70000488d65d85b415c415d415e415f5dc349c1e5044901d54981fdff0300000f8708fdffff4983c51e48c78578ffffff000000004983e5f04c29ec488d74240f4883e6f0488975c0e943fdffff0f1f4000488b75884c89f94889da4c89f7e86e110400488d65d85b415c415d415e415f5dc30f1f80000000004889d84c09f0a80375204883fb040f84de0000004883fb080f84b5000000a807750848c745a802000000488b45884883f8010f8645ffffff488d7da04889c24c89f6e8e1f7ffff488bbd78ffffffe835f70000e931ffffffbf550000004c894598e8820203004883f8ff48baffffffffffffff1f4c8b4598740f488d50034885c0480f49d048c1fa024c8945984889153cd82b00bf1e000000e84a0203004c8b459889c289052ed82b00e913fcffff4885d20f85d1fcffff4c89e14c89f0e986fdffff48837d88000f851efeffffe9aafeffff41f6c6070f8541ffffff48c745a801000000e940ffffff4c89e6e9d0fdffff48c745a800000000e92bffffff660f1f8400000000004531c0e968fbffff0f1f840000000000415741564155415455534889fb4883ec08e8fa4e0100488b2d93dc2b004885ed0f84b20000004989c50fb60384c00f84a4000000807b01007546488b5d0080cc3d4885db7517eb1e0f1f8400000000004883c508488b5d004885db7409663b0375ee4883c3024883c4084889d85b5d415c415d415e415fc30f1f840000000000440fb7234c8d7b02488b5d004d8d75fe4885db7518ebcf660f1f8400000000004883c508488b5d004885db74b966443b2375ed488d7b024c89f24c89fee8ee4f010085c075da42803c2b3d75d34a8d5c2b01eb920f1f400031dbeb8a0f1f400041554154b80000000055534889f589fb4189d44883ec084885c07405e86f15bfff4c8b6d004d85ed7456660f1f440000498b45084889c248c1e2054885c0498d4c15f0742a4883e80149894508488b114883fa030f84a60000004883fa0474784883fa02744a4883e9204885c075d6498b45004885c0488945000f859d0000004584e47420b898e34b00483da0e34b0073134889c5ff55004883c5084881fda0e34b0072f089dfe804ff02000f1f400048c1e00589df4c01e8488b5018488b702048c1ca11644833142530000000ffd2e95bffffff0f1f0048c1e00589de4c01e8488b5018488b782048c1ca11644833142530000000ffd2e933ffffff0f1f0048c1e005498b44051848c1c811644833042530000000ffd0e913ffffff4c89efe86bf40000e9f7feffff660f1f4400004883ec08ba01000000bea0a06c00e8bdfeffff662e0f1f8400000000000f1f005553be010000004889fb31c04883ec08833de5e52b0000740cf00fb1358fd92b00750beb230fb13584d92b00741a488d3d7bd92b004881ec80000000e81f3c03004881c480000000488b2b31ff4885ed4889e80f84100100000f1f8000000000488b48084885c9743e488d51ff4889d648c1e60548837c301000754748c1e105488d4c08d0eb1b660f1f8400000000004883e920488d72ff488379200075314889f24885d275e9488b1048c74008000000004889c74885d20f849d0000004889d0eb9d4889ca662e0f1f8400000000004883fa2074634889d14883c20148c1e10548895008488d74081048c70601000000488305f7e42b0001833dfce42b0000740bf0ff0da7d82b00750aeb22ff0d9dd82b00741a488d3d94d82b004881ec80000000e8683b03004881c4800000004883c4084889f05b5dc34885ff4889f8751abe10040000bf01000000e800fb00004885c0742d488928488903488d701048c7400801000000eb81b9581b4a00ba64000000be401b4a00bf4d1b4a00e8ae2bffff31f6e970ffffff0f1f80000000004154554989f4534889fb4889cf4889d5e85bfeffff4885c0742a4889df4c896010488968186448333c253000000048c1c7114889780848c7000400000031c05b5d415cc3b8ffffffffebf40f1f4400004154554989f4534889fbbfa0a06c004889d5e809feffff4885c0742a4889df4c896010488968186448333c253000000048c1c7114889780848c7000400000031c05b5d415cc3b8ffffffffebf40f1f0048c7c0b8ffffff644c8b00e92000000048c7c0b8ffffff31c9644c8b00e90e000000662e0f1f8400000000000f1f4000415741564989f7415541544989fe55534883ec2885c97416498b7008488b4e500fb60183e8013c7d0f86f200000031c931ed83fa010f84c500000083fa240f87bc000000490fbe06498b70684d89f4f6444601204889c3741a0f1f80000000004983c401490fbe0424f6444601204889c375ed84db0f84bd00000080fb2d0f841003000080fb2bc7442414000000000f845a03000080fb300f84dd00000085d20f85e10000004885c948890c240f84730300004889efe8c54901004885c04989c574780fb67d00488b0c244038df0f850e02000031d2eb180f1f840000000000410fb6341440387415000f85f20100004883c2014839d075e7eb400f1f44000048c7c0d0ffffff64c7001600000031c04883c4285b5d415c415d415e415fc390488b6e48807d00000f8504ffffffe9fbfeffff0f1f4400004d89f44d85ff0f84ba0200004c89e04c29f04883f8017e17490fbe5424ff488b05bb390a00833c90580f846e0200004d89374883c42831c05b5d415c415d415e415fc3f7c2efffffff0f842402000083fa0a0f8416ffffff8d4afe4531ed31c04863c94c39e0488b3ccd002a4b0048893c240fb6b9c0294b0040887c2413748384db0f847bffffff4d8d45ff4c8b153d390a004c8b1d46390a004863ca4c89e74c896424184c894424084c8b04244531c931f64989cc66908d4bd080f9090f86aa0000004d85ed0f848f000000385d000f858600000031c9881c24eb0d0f1f000fb61c0f385c0d00756e4883c1014939cd75ed488b5c2408488d0c1f0f1f4000488d79010fb659014839f8740484db75a74c8b6424184939fc0f84e4feffff4d85ff740349893f4585c90f841701000048c7c0d0ffffff64c700220000004883c42848c7c0ffffffff5b5d415c415d415e415fc30f1f40000fb61c240fb6db41f6445a010474aa418b0c9b83e9370fb6d939d37d9c4939f0720e3a4c241376184939f075130f1f004889f941b901000000e96affffff6690490faff40fb6c94801ce4889f9e956ffffff84db0f84340100004c8b0517380a004c8b0d20380a004c89e60f1f4400008d53d080fa097625403a3e755331d2eb130f1f8000000000440fb61c1644385c1500753c4883c2014839d075eb4883c6010fb61e84db75c84889ea4c89e7e80d010000410fb61c24b908000000ba0a000000e941feffff660f1f8400000000000fb6db41f64458010474cd41833c99407fc64883c6010fb61e84db7583ebb98b5424144889f048f7d885d2480f44c6e97cfdffff410fb65c2401c7442414010000004983c401e9eafcffff490fbe742401488b0560370a00833cb058744785d20f85c1fdffffb906000000ba08000000e9befdffff41807c24fe300f8586fdffff4983ec0131c04d8927e921fdffff410fb65c24014983c401e997fcffff31c0e90bfdffff410fb65c2402b90e0000004983c402ba10000000e975fdffff4c89e6e912ffffffb908000000ba0a000000e95efdffff90662e0f1f8400000000004989c831c9e9b6fbffff660f1f440000415741564155415455534883ec184885c948894c24080f84fd0000004889fd4889d7488934244889d3e802460100488b34244839ee0f86ad0000004c8d78ff488d55ff4c8d4eff4c39cd0f87c9000000440fb6134e8d1c3eeb17660f1f4400004983e9014983eb014939d10f84a8000000453853ff75e90fb6430184c0742b413843fe75db488d43024c89d9eb146690440fb641fd4883c0014883e9014438c775be0fb6384084ff75e64c39cd776a488b4424084889f14c29c9480fbe004989c583c00148984839c174604c890c247e094b8d44290148890424483b2c24488b34240f825bffffff4839f54889f0480f43c54883c4185b5d415c415d415e415fc30f1f80000000004983e9014983eb014c39ca0f85d70000004883c4184889f05b5d415c415d415e415fc34d8d61ff4c8b7424084c8924240f1f840000000000410fb6460184c074084983c6014c0fbee84180fd7f0f84850000004584ed0f887c0000004c39e577b04f8d1c394d89e14584d2742c453a53ff488d43014c89df7418eb3c0f1f4000440fb647fe4883c0014883ef014438c175260fb60884c975e74d29cc4c39cd7727490fbec54939c40f8524ffffff4d8d61ffeb840f1f40004983e9014983eb014c39ca75a34929d44d39e50f8c01ffffffe93bffffff66904c39e50f8730ffffff4f8d1c394d89e14584d27438453853ff488d43014c89df7424e901ffffff660f1f840000000000440fb647fe4883c0014883ef014438c10f85e2feffff0fb60884c975e34c39cd7684e9e2feffff660f1f8400000000004881ecd800000084c04889742428488954243048894c24384c894424404c894c244874370f294424500f294c24600f295424700f299c24800000000f29a424900000000f29ac24a00000000f29b424b00000000f29bc24c0000000488d8424e00000004889fe488d542408488b3d1eb22b004889442410488d442420c744240808000000c744240c300000004889442418e8da5504004881c4d8000000c366904881ecd800000084c0488954243048894c24384c894424404c894c244874370f294424500f294c24600f295424700f299c24800000000f29a424900000000f29ac24a00000000f29b424b00000000f29bc24c0000000488d8424e0000000488d5424084889442410488d442420c744240810000000c744240c300000004889442418e8191f00004881c4d8000000c390554889e541554154534989fc4989f54881ecd800000084c048899540ffffff48898d48ffffff4c898550ffffff4c898d58ffffff74260f298560ffffff0f298d70ffffff0f2955800f295d900f2965a00f296db00f2975c00f297dd04d85e4488d45104c0f4425edb02b0048898520ffffff488d8530ffffffc78518ffffff10000000c7851cffffff3000000048898528ffffff418b8424c000000085c07e704c89ef4889e3e8154201004883c001488d1485120000004883e2f04829d44885c04889e67428410fbe4d0084c9785e31d2eb0f0f1f440000410fbe4c150084c9784b890c964883c2014839d075ea488d9518ffffff4c89e7e803fd04004889dc488d65e85b415c415d5dc30f1f440000488d9518ffffff4c89ee4c89e7e81e540400488d65e85b415c415d5dc3b9881b4a00ba2c000000be651b4a00bf701b4a00e8ca21ffff662e0f1f840000000000415455538b074889fbf6c4200f85fe00000089c281e2008000000f84fc000000c1e01ac1f81f85d289c50f8471010000488b83d800000031f64889dfff50108b83c000000085c00f8ea30100004c8ba398000000be0100000031c0833d2ada2b0000740cf00fb13534db2b00750beb230fb13529db2b00741a488d3d20db2b004881ec80000000e8643003004881c480000000498b7c2448e8435f0300498bbc2488000000e8365f0300833ddbd92b0000740bf0ff0de6da2b00750aeb22ff0ddcda2b00741a488d3dd3da2b004881ec80000000e8473003004881c480000000483b1d31af2b00741a483b1d20af2b007411483b1d0faf2b0074084889dfe8cde7000089e85b5d415cc3660f1f440000e85b4e00008b03f6c480755a488b9388000000644c8b0425100000004c3b42087440be0100000031c0833d4cd92b00007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e8922f03004881c480000000488b93880000008b034c8942088342040189c281e200800000f6c4200f8499feffff4889dfe8713c00008b1389c581e20080000085d20f858ffeffff488b9388000000836a04010f857efeffff48c7420800000000833dcbd82b00007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8432f03004881c480000000e947feffff0f1f800000000048837b48000f84e5feffff4889dfe84d530000e9d8feffff4889c6f70300800000753f488b9388000000836a0401753248c7420800000000833d5dd82b00007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8d52e03004881c4800000004889f7e836ce0800660f1f4400004885ff0f84d7000000538b074889fa250080000075594c8b8788000000644c8b0c25100000004d3b4808743ebe01000000833df4d72b00007409f0410fb1307508eb1c410fb1307416498d384881ec80000000e8382e03004881c4800000004c8b82880000004d8948084183400401488b82d80000004889d34889d7ff506031d285c00f95c2f7daf70300800000740889d05bc30f1f4000488bb388000000836e040175eb48c7460800000000833d78d72b00007407f0ff0e7506eb1aff0e7416488d3e4881ec80000000e8f02d03004881c48000000089d05bc30f1f440000e9ab6400004889c6f70300800000753f488b9388000000836a0401753248c7420800000000833d20d72b00007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8982d03004881c4800000004889f7e8f9cc0800660f1f840000000000f64774014889f87430f60708742b8b97c0000000b9e01b4a0085d2bae01e4a00480f4fd1488997d8000000488b97a000000048898a30010000f3c30f1f440000415541544189d555534889fdbf280200004989f44883ec08e833e100004885c00f84b2000000488d90e0000000488d88f00000004889c331f64889c741b8601d4a004889908800000031d2e8b05b00004889df48c783d800000060204a00e80d3700004489e94c89e24889ee4889dfe82c3b00004885c07463f64374017405f6030875144883c4084889d85b5d415c415dc3660f1f4400008b83c0000000bae01b4a0085c0b8e01e4a00480f4fc2488983d8000000488b83a0000000488990300100004883c4084889d85b5d415c415dc30f1f800000000031dbeba84889dfe8ac4a00004889df31dbe802e40000eb944154554889fd53bf280200004989f4e84ce000004885c00f84a3000000488d90e0000000488d88f00000004889c331f64889c741b8601d4a004889908800000031d2e8c95a00004889df48c783d800000060204a00e826360000b9010000004c89e24889ee4889dfe8433a00004885c07452f64374017405f60308750b4889d85b5d415cc30f1f008b83c0000000bae01b4a0085c0b8e01e4a00480f4fc2488983d8000000488b83a0000000488990300100004889d85b5d415cc30f1f44000031dbebb94889dfe8d44900004889df31dbe82ae30000eba50f1f8400000000004154554189f4534889fb4883ec10488baf980000004889efff552085c00f9fc24138d4733b488b5308482b53184863c8488bb3a00000004889d0489948f7f948c1e00248014608488b460848890631c04883c4105b5d415cc30f1f8000000000488b43184889442408488b83a0000000488b505848895060488b83a0000000488b4b08488b5318488d7808488d705857ff70384889ef4c8b48104c8d442418ff551883f8025a59741783f80174bb488bb3a0000000eb90660f1f840000000000830b20b8ffffffffeb86660f1f4400008b07a8040f8596040000488b87a0000000488b10483b50080f8262030000415741564155415455534889fb4883ec28488b5708483b57104c8ba7980000000f827c030000488b47384889471048894708488947184885c00f848b040000488943304889432848894320488b83a000000048837830000f8445040000f703020200000f84a9000000488b2d02a92b008b550089d025008000000f85920300004c8b8588000000644c8b0c25100000004d3b48080f84c4040000be01000000833d48d32b00007409f0410fb1307508eb1c410fb1307416498d384881ec80000000e88c2903004881c480000000488b3d9ea82b004c8b85880000008b174d89480881e288020000418340040181fa800200000f842f030000f74500008000007511488b9588000000836a04010f84150400004889df4c8d6c241031ede8214d0000488b83a00000004c8b7310488b503048891048895010488950084889502848895020488950180f1f00488b5340488b83d80000004c89f64889df4c29f2ff50704883f8000f8ef7000000488b8b90000000480143104883f9ff740a4801c148898b90000000488b93a00000004885ed488b4a5848894a60488b7b08488b4b1048897b180f8538010000488b83a0000000488d5008488d705852ff70384889fa4c8b48084c89e74c8d44241841ff5424185a59488b4c240831ed4889ce488b93a000000048897308488b7a3048397a080f857402000083f8020f847401000083f8010f855e0300004885ed753d4c8b73184c39f60f8780000000488b6b104829f54883fd0f0f87480100004889ea4c89efe86cc201004c8973104c897308e907ffffff0f1f80000000004889c84c29e875784883fd100f84170100004c8b7318ebd40f85da0100004885ed0f85d10100008b0348c78390000000ffffffff83c8108903b8ffffffff4883c4285b5d415c415d415e415fc30f1f004c8b7b104c89f74929f74c89fae88602ffff4c8b7310488b43184d29fe488943084c897310e986feffff660f1f4400004829c54889ce4c89ef4889eae85702ffffe972ffffff669041b8100000004d8d742d004889fe4929e84939c04c89f7490f46c04889c24989c7e83a670100488b93a00000004c01fd4c89e7488d4a08488d725851ff72384889c14c8b4a084c89ea4c8d44241841ff5424184885ed5e5f0f8493feffff488b4c2408be000000004889ca4c29f2480f48d64889d648037308e97dfeffff66908b02c30f1f44000083f8020f858801000048c7c0d0ffffff64c70054000000830b204883c4285bb8ffffffff5d415c415d415e415fc3662e0f1f8400000000004889542410488b505848895060488b87a0000000488b4f10488b57084c8b4830488d7808488d70584c89084c89481057ff70384c89e74c8d44242041ff542418488b5308488b74242048895318488b93a0000000488973084158488b0a483b4a0841590f835fffffff8b01e976feffff81e28802000081fa800200000f85eefcffff4889ef488b87d8000000beffffffffff5018e9bdfcffff0f1f8000000000830b204885ed0f848401000048c7c0d0ffffff64c70054000000b8ffffffffe922feffff0f1f4000488b028b004883c4285b5d415c415d415e415fc30f1f400083c820890748c7c0d0ffffff64c70009000000b8ffffffffc30f1f8000000000488b78404885ff740be882dd00008123fffeffff4889dfe864460500e99afbffff0f1f8000000000488b7b484885ff740be85add00008123fffeffff4889dfe89c4d0000488b4338488943104889430848894318e944fbffff488b5310488b7b384829f2e82700ffff488b43384889c2482b5308488943184801531048894308e90ffbffff48c7420800000000833db8ce2b00007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8302503004881c480000000e9b4fbffff4889efe97bfbffffb9c01b4a00ba35010000be931b4a00bf9e1b4a00e8a315fffff74500008000004889c6753f488b9588000000836a0401753248c7420800000000833d47ce2b00007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8bf2403004881c4800000004889f7e820c4080083c8ffe9aefcffff0f1f840000000000415741564989ff4155415455534881ecb800000085c90f84a4020000488b87a00000004889f389d5488b700848397010743e488b4820488b50184531e44839d176464c89ffe8f645050085c0baffffffff0f84410300004881c4b80000004889d05b5d415c415d415e415fc30f1f4000488b5018488b48204839ca75bd41bc010000000f1f44000041f7070008000075b148837830000f84b403000083fd010f84bb01000083fd020f85c2000000498b87d8000000488d7424204c89ffff909000000085c00f84850000000f1f4400004c89ffe868610000498b87d800000089ea4889de4c89ffff908000000048c7c2ffffffff4839d00f845affffff498b5738418327ef49898790000000498957184989570849895710498957284989572049895730498b97a0000000488b4a3048894a1048890a48894a0848894a2048894a1848894a284889c2e909ffffff66908b4424382500f000003d008000000f856cffffff48035c245031ed0f1f440000498b87900000004883f8ff0f842702000049837f1800418b177425f6c6017520498b4f384889ce492b77104801c64839de7f0d4839c30f8cac0300000f1f400083e2040f8517ffffff498b5738498b47404989dd4889d64829c64829d0ba000000004821de4929f54939c5498b87d80000000f8fd80100004c89ffff90800000004885c04989c60f888b0100004d85ed0f84ce010000498b87d80000004585e4498b77384c89ea488b40707507498b57404829f24c89ffffd04939c54989c44889c20f8ea40100004883f8ff4c89ebbd010000000f8486feffff4829c3bd01000000e979feffff660f1f8400000000004d8baf980000004c89ef41ff552085c00f8e6a030000498b8fa00000004898488b5108482b1148c1fa02480fafc24829c3498b4710492b47084829c3498b87900000004883f8ff0f8423feffff4801c331ede9cafeffff660f1f840000000000488b87a000000048837830000f84060300008b174c8b6020488b68184189d54181e5001000004939ec76094585ed0f851c02000080e6010f84b3010000488b7808483938726e4c8b7040488b40504c8974240848890424498b9f980000004889dfff53204939ec0f87a301000085c00f8e3b030000488b142448984c29f248c1fa02480fafd0498b4710492b470848f7da4889d34829c3498b87900000004883f8ff0f84e00200004801c34889da0f89e3fcffff48c7c0d0ffffff64c70016000000660f1f44000048c7c2ffffffffe9c3fcffff0f1f4000498b87a0000000e9edfcffff0f1f4000418b1783e2040f851cfdffffe900feffff0f1f80000000004889de4c89ffff90800000004885c04989c678b431d24531ed4531e4498b4738be010000004c89ff49894718498947284801c249894720498947304901c5498b87a0000000498957104d896f08488b50304889501048891048895008488950204889501848895028e803f5ffff85c00f859bfcffff4d01e6418327ef4889da4d89b790000000e90cfcffff0f1f440000488b78104885ff740ce8f2d70000418127fffeffff4c89ffe833480000498b4738498947284989472049894730498947184989470849894710498b87a0000000488b50304889502048895018488950284889501048891048895008e9ecfbffff488b78104c8b30488b400848897c240848890424e94efeffff0f1f800000000085c00f8ee0010000498b97a00000004898488b5a20482b5a1848c1fb02480fafd84889dd4585ed498b5728744b492b5720488d1c2ae94dfeffff660f1f440000488b87d800000031f6ba02000000ff90800000004883f8ff0f845afeffff49898790000000418b17498b87a0000000e9b0fdffff0f1f4000492b5710488d1c2ae902feffff0f1f004889d849894f1849894f284829f049894f2049894f304801c831f64c89ff49894708498b87a0000000488b50304889501048891048895008488950204889501848895028e88ff3ffff85c00f8527fbffff498bb790000000418327ef4885f67812498b87d800000031d24c89ffff90800000004889dae984faffff0f1f44000031dbe978fdffff90498b87a00000004c89ef488b50604c8b004c2b401048895058498b87a0000000498b4f10498b571849c1f802488d705841ff5530498b4f184863d0488d041149894708498b87a0000000488b3048897008498b47104829c84829d04829c3e959fcffff0f1f440000498b87d800000031f6ba010000004c89ffff90800000004883f8ff0f841ffdffffe9fafcffff6690498b87a00000004d89f04c2b442408498b4f10498b57184889df488d742420488b406049c1f8024889442420ff5330498b4f10492b4f184863d04889d34829cbe9a2fcffff0f1f004d8bb7a0000000498b4e204d8b66184889cd48894c24084c29e54889efe8d6d100004c8964242048894424184989c2498b46604c01d54d89d14c89e24889df4889442410488d4424185055488b4c24184c895424104c8d442430488d742420ff53085a85c0594c8b14247515488b6c24184c89d74c29d5e81cd50000e9bbfdffff4c89d7e80fd50000baffffffffe90cf9ffff0f1f4400008b07a8040f85f6000000488b87a0000000488b10483b50080f82a200000055534889fb4883ec18488b5708483b5710488baf980000000f838c000000488378300048895424080f84d4000000488b505848895060488b83a0000000488b4b10488b53084c8b4830488d7808488d70584c89084c89481057ff70384889ef4c8d442418ff5518488b44241848894308488b83a0000000595e488b10483b5008725048c7c0d0ffffff64c70054000000830b20b8ffffffff4883c4185b5dc30f1f008b02c30f1f440000e8b324000089c2b8ffffffff39c274de488b5308488b83a0000000e954ffffff0f1f8400000000008b024883c4185b5dc30f1f800000000083c820890748c7c0d0ffffff64c70009000000b8ffffffffc30f1f8000000000488b78404885ff740be8d2d300008123fffeffff4889dfe8b43c0500488b83a0000000e904ffffff0f1f840000000000534889fbe8b722000083f8ff75025bc3488b83a00000004889df5b488b8030010000488b4020ffe00f1f840000000000415741564155415455534889fb4883ec384885d20f84460100004c8b4f284c394f304989f7488b87980000004989d4488b772048894424080f845e0100004889f5e9a7000000662e0f1f8400000000004c8d6c2420488d4424304d89e94c89ed488bbba00000004c894c24184b8d0ca74c89fa488d7758488d7c24185750488b4424184c8d4424204889c7ff50084189c64889ee4889df585a488b5424184c29eae8fa26000083f8ff0f8499000000488b5424104889d04c29f84889c648c1fe024929f44585f674104183fe0175414883c0034883f80676374d85e40f847e0000004c8b4b28488b6b204989d74c89c84989ed4829e84883f80f0f8650ffffff488b4340e957ffffff0f1f8000000000488b93a000000031c04d85e40f95c0f7d8f70302020000488b4a3048894a1048890a48894a0848894a2048894a187504488b4a3848894a284883c4385b5d415c415d415e415fc3660f1f840000000000488b93a00000008b03488b4a30250202000048894a1048890a48894a0848894a2048894a1874b948894a284883c43831c05b5d415c415d415e415fc34939f10f8499feffff4c89ca4829f2e8f025000083f8ff74934c8b4b28488b7320e97cfeffff0f1f4000662e0f1f8400000000008b17f6c208741948c7c0d0ffffff83ca20891764c70009000000b8ffffffffc3555389f54889fb4883ec08f6c608756f488b8fa000000048837918000f84be010000488b01488b71384839f00f848e01000048897128488b7108488941204889411848893148897110488b73084889732848897320488b734048897330488b7310488973084889731889d681ce0008000081e202020000893374044889412883fdff747c488b83a0000000488b4820483b48380f849f000000488d51044889502089298b0bf6c102743e8b8bc000000085c90f8ec8000000488b70184889df4829f248c1fa02e845fdffff83f8ff0f94c084c0741d4883c408b8ffffffff5b5dc30f1f800000000080e502740583fd0a74b84883c40889e85b5dc30f1f4400008bbbc000000085ff0f8e92000000488b83a00000004889df488b7018488b50204883c4085b5d4829f248c1fa02e9defcffff660f1f4400008bb3c000000085f60f8ec7000000488b70184889df4829f14889ca48c1fa02e8b4fcffff83f8ff0f94c084c00f856bffffff488b83a0000000488b4820e91fffffff660f1f440000488b7320488b53284889df4829f2e81d24000083f8ff0f94c0e933ffffff6690488b7320488b53284883c4084889df5b5d4829f2e9f72300000f1f8000000000488b47384889470848894710488b413048890148894108e956feffff0f1f4000e89b380500488b8ba000000048837b2000488b413048894110488901488941087429488b71388b13e925feffff488b7320488b53284889df4829f2e89023000083f8ff0f94c0e937ffffff4889dfe8ad3f0000488b4338488b8ba00000004889430848894310488b01ebb70f1f44000041545553488b87a00000004889fb488b5020488b70184839f2763c8b87c000000085c00f8ea70000004829f248c1fa02e88bfbffff85c00f95c084c074125bb8ffffffff5d415cc30f1f840000000000488b83a0000000488b28482b680848c1fd024885ed751948c78390000000ffffffff31c05b5d415cc30f1f80000000004c8ba3980000004c89e741ff54242085c07e7d4863f0480faff5488b83d8000000ba010000004889dfff90800000004883f8ff743b488b83a0000000488b1048895008488b430848894310eb9a0f1f00488b7720488b57284829f2e88022000085c00f95c0e950ffffff660f1f44000048c7c0d0ffffff6483381d0f853dffffffe961ffffff662e0f1f840000000000488b83a00000004989e84c89e7488b506048895058488b83a0000000488b4b10488b5318488d705841ff542430488b53184898488d0c02482b531048894b08488d3402e942ffffff0f1f8400000000004885d20f84df01000041574156415541544989fd55534889f54989d44883ec28418b45004c8bb7a000000025000a0000498b5e28498b7e203d000a00000f84cd0100004829fb4531ff48c1fb024885db0f849a0100004939dc490f46dc4883fb140f87f9010000488d55108d43ff4839d7488d571089c1400f93c64839d50f93c24008d60f840602000083fb0c0f86fd0100004989e84183e00f49c1e80249f7d84183e0034139d8440f47c34585c00f84cb0100008b55004183f801488d77044c8d55048d4bfe891774288b55044183f803488d77084c8d55088d4bfd89570475118b5508488d770c4c8d550c8d4bfc89570889da8944241c4429c24589c08954241483ea0449c1e002c1ea024e8d5c050083c201448d0c950000000044894c24184e8d0c074531c04c894c2408488b4424084531c966430f6f04034183c101420f1104004983c0104139d172e8448b5c24188b44241c4489da4429d948c1e2024801d64901d244395c2414741c418b1285c989167413418b520483f9018956047407418b5208895608488d0485040000004801c74801c549897e204c89e04829d84889c3754c4585ff7423498b85a0000000488b5020488b70184839f2740f4829f24c89ef48c1fa02e891f8ffff4883c4284c89e04829d85b5d415c415d415e415fc30f1f400031c0c30f1f4400004c89e34889da4889ee4c89efe8df2d05004829c3eba1662e0f1f840000000000498b5e384531ff4829fb48c1fb024839da0f8726feffff488d14964839d60f8319feffff837afc0a488d42fc750beb784883e80483380a746f4839c572f24531ffe9f7fdffff662e0f1f8400000000004889ee4889da488d6c9d00e800d1020049894620e923ffffff0f1f80000000004989ea4889fee968feffff0f1f44000089c631d24883c6010f1f8400000000008b4c9500890c974883c2014839f275f0e9d5feffff0f1f004829e841bf0100000048c1f802488d5801e97ffdffff6690415541544989fc5553bf640000004889f54989d54881ecf8000000e850c700004885c00f84170100004889c34531c031c9baffffffffbe008000004889e748c784248800000000000000e8d14100004889d94889deba640000004889e748c78424d800000040214a00e8325900004c89ea4889ee4889e7832424fe48c78424e000000060dc410048c78424e800000000e04100e89835040085c089c30f888e000000488b442420488b6c2428488b5424304829c54829c24c8d6d0148d1ea4939d5722d488b7c24384c89eee800cc00004885c049890424744cc604280089d84881c4f80000005b5d415c415dc30f1f004c89efe878c600004885c04989042474c24c8b6c24384889ea4889c74c89eee86cac01004c89efe8f4c90000498b04244885c075b4488b44243849890424eba9488b7c2438e8d6c9000089d8eba16690b8ffffffffeb98660f1f840000000000e9fb2d0000662e0f1f8400000000009055bf541e4a004889e541574156488d451041554154534883ec5848894590488d45a0488955b048894db84c8945c04c894dc8c745881000000048894598e85e0504004885c074098038000f8526010000be02090000bf671e4a00b8020000000f05483d00f0ffff0f872b01000083f8ff4189c50f84fd0000004c63e08b458883f82f0f87ff00000089c24803559883c0088945884c8b324c89f7e8b12101004883ec304989c041b914000000488d44240f4883ec20488d5c240f4883e0f04883e3f04c89304c89400848c74010000000004c89334c894308ba010000004889de4c89e74489c80f054883f8fc74ea4c8b3d3b9a2b004939c0b922000000410f94c4ba030000004531c931ff4b8d043849f7df4183c8ff4921c74c89fee8cfe602004883f8ff4989c67436488b5308488b33488d7804448938e8835001004c89f7c6000048873d86a92b004885ff74118b37e85ae70200662e0f1f840000000000410fb6f44489eabf01000000e8cfebfeffe8eac5ffff41bc0200000041bd02000000e9f5feffff488b5590488d420848894590e9fcfeffff48c7c2d0fffffff7d841bc0200000041bd02000000648902e9c7feffff90662e0f1f840000000000554889e541574156488d451041554154534189ffbf541e4a004889f34883ec6848894590488d45a0488955b048894db84c8945c04c894dc8c745881000000048894598e8980304004885c074098038000f8581010000be02090000bf671e4a00b8020000000f05483d00f0ffff0f875801000083f8ff89857cffffff0f8455010000440fb62b4531e44531f64584ed0f845f0100000f1f004489ea4889d8eb15488d7801be25000000e872b501000fb61084d2740b80fa2575e68078017375e04180fd25743a4889c64889d94829de4889c34883ec30458d542401488d54240f4883e2f048890a488972084c897210440fb62b4584ed74484589d44989d6eb98807b017375c08b458883f82f0f87ee00000089c24803559883c008894588488b0a4883c3024889cf48898d70ffffffe85c1f0100488b8d70ffffff4889c6eb924d63c24963d44c89c048c1e20448c1e0044883c0104829c431c04c8d6c240f4983e5f04c01eaeb170f1f840000000000498b0e498b76084883ea104d8b7610488d1c304939d548890a488972084889d875de4c63b57cffffff41b914000000904c89c24c89ee4c89f74489c80f054883f8fc4989c474e94585ff7555488d65d85b415c415d415e415f5dc348c7c2d0fffffff7d8648902440fb62b4531e44531f6c7857cffffff020000004584ed0f85a4feffff4585ff74c331f6e9b3000000488b5590488d420848894590e90dffffff488b0558972b004531c931ff41b8ffffffffb922000000ba0300000044899578ffffff4c8d1c0348f7d84921c34c89de4d89dee8e7e302004883f8ff48898570ffffff7454448b9578ffffff4489304d8d75084883c004418d52ff48c1e2044d8d6c1518498b76f8498b164889c74983c610e8784d01004d39ee75e8c60000488bbd70ffffff48873d72a62b004885ff74078b37e846e4020031f64c39e3400f94c68b957cffffff4489ffe8bfe8feffe8dac2ffff662e0f1f8400000000004889fa4883ec08bed9c64b00bf0100000031c0e858fbffff0f1f84000000000085f60f8e8800000083fe01415455534889fb746c8b024889d583ee0141b801000000b90a0000004189c483e0df89024863d64889fe4889ef4183e420e81f1b05004885c08b5500751731db4109d44889d8448965005b5d415cc3660f1f440000f6c220740d48c7c1d0ffffff6483390b75d7c60403008b5500ebd00f1f440000c607004889f8ebcd0f1f84000000000031c0c3662e0f1f8400000000000f1f00488b87d8000000534889fbff90800000004885c0780a488983900000005bc39048c7c0ffffffff5bc30f1f800000000048637f70b8030000000f05483d00f0ffff761148c7c2d0fffffff7d8648902b8fffffffff3c3662e0f1f840000000000534889fbe8373800004885c0741f488b43384889433048894328488943204889431848894308488943104889d85bc390488b87a0000000534889fb48c787d800000060204a0048c78030010000601d4a00e8ea3700004885c07425488b43384889433048894328488943204889431848894308488943104889d85bc30f1f4000488b93a000000048c783d8000000a01f4a0048c78230010000a01c4a005bc3908b07a8040f8516020000488b5708483b57100f826801000055534889fb4883ec0848837f38000f84b4010000a9020200000f84d9000000488b2d628a2b008b550089d025008000000f853a0100004c8b8588000000644c8b0c25100000004d3b48080f84a8010000be01000000833da8b42b00007409f0410fb1307508eb1c410fb1307416498d384881ec80000000e8ec0a03004881c480000000488b3dfe892b004c8b85880000008b174d89480881e288020000418340040181fa800200000f84d7000000f74500008000007541488b9588000000836a0401753448c7420800000000833d31b42b00007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8a90a03004881c48000000066904889dfe8582e0000488b7338488b53404889df488b83d80000004829f2488973084889731848897310488973304889732848897320ff50704883f8007e6a488b9390000000480143104883faff740a4801c248899390000000488b43080fb6004883c4085b5dc3660f1f8400000000000fb602c30f1f400081e28802000081fa800200000f8576ffffff4889ef488b87d8000000beffffffffff5018e915ffffff0f1f80000000008b03754c83c810890348c78390000000ffffffff4883c408b8ffffffff5b5dc30f1f840000000000488b7f484885ff740be872c100008123fffeffff4889dfe8b43100008b03e929feffff0f1f44000083c820ebb20f1f004889efe997feffff0f1f84000000000083c820890748c7c0d0ffffff64c70009000000b8ffffffffc3f74500008000004889c6753f488b9588000000836a0401753248c7420800000000833dbbb22b00007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8330903004881c4800000004889f7e894a808000f1f400041564155415455534889fb4881ec9000000085c90f84d6020000488b4710483947184889f54189d40f84ca000000488b5728488b47204531ed4839c20f86ce0000004889dfe8962c000085c00f850603000048837b38000f84ca0000004183fc010f84090100004183fc020f85bf010000488b83d80000004889e64889dfff909000000085c00f84840100004889dfe82c460000488b83d80000004889ee48c7c5ffffffff4489e24889dfff90800000004839e87429488b53388323ef4889c5488983900000004889531848895308488953104889532848895320488953304881c4900000004889e85b5d415c415d415ec3660f1f440000488b4720488b57284839d00f852dffffff41bd0100000090f703000800000f8526ffffff48837b38000f8536ffffff488b7b184885ff740be89bbf00008123fffeffff4889dfe8dd2f0000488b43384183fc014889432848894320488943304889431848894308488943100f85fefeffff0f1f8000000000488b4310482b4308488bb3900000004829c54883feff0f8400ffffff4801f50f88ae0100004531e448837b18008b030f849e000000f6c4010f8595000000488b53384889d1482b4b104801f14839e90f8f7e0000004839f57d794889ef83e0ef488953184829cf48895328488953204889f94889533089034801d14885f648894b080f88e7feffff488b83d800000031d24889dfff9080000000e9d0feffff908b4424182500f000003d008000000f8568feffff48036c24304531e40f1f4000488bb3900000004883feff0f8557ffffff8b03a8040f8541feffff488b5338488b43404989ec4889d64829c64829d0ba000000004821ee4929f44939c4488b83d80000000f8fee0000004889dfff90800000004885c04989c60f88c90000004d85e40f84e4000000488b83d80000004585ed488b73384c89e2488b40707507488b53404829f24889dfffd04939c44889c10f8ebc0000004883f8ff4c89e541bc010000000f84b2fdffff4829c541bc01000000e9a4fdffff0f1f84000000000048837f38000f841d0100004c8b6f284c8b67208b2f81e5001000004d39e5760885ed0f85c0000000488b83900000004d39e50f8798000000488b6b08482b6b104883f8ff0f84f60000004801c50f899cfdffff48c7c0d0ffffff64c700160000000f1f800000000048c7c5ffffffffe97bfdffff0f1f40004889ee4889dfff90800000004885c04989c678dc31c94531e431c0488b53384c01f08323ef488983900000004901d44801d1488953184c89630848894b10488953284889532048895330e928fdffff660f1f84000000000085ed488b6b287440482b6b20e95fffffff0f1f8000000000488b87d800000031f6ba02000000ff90800000004883f8ff0f8462ffffff48898390000000e91dffffff660f1f440000482b6b10e91fffffff0f1f8000000000488b879000000031ede90affffff662e0f1f840000000000488b83d800000031f6ba010000004889dfff90800000004883f8ff0f8407ffffffe9e4feffff662e0f1f840000000000534889fb488b7f38488b73404829fee85cdb020048c743400000000048c7433800000000b80300000048637b700f05483d00f0ffff761148c7c2d0fffffff7d8648902b8ffffffff5bc3660f1f4400008b7f70e9980303000f1f84000000000053488b77084889fb483b77107432482b77388b7f7031d2e874030300488b7308482b73384839f07527488b43184889b390000000488943084889431031c05bc3482b7738ebe3662e0f1f840000000000830b20b8ffffffff5bc3660f1f440000415541544989d455534889f54889fb4881ec98000000488b87d80000004889e6ff909000000085c075108b4424182500f000003d0080000074568b83c0000000ba60204a0085c0b8601d4a00480f4ec2488983d8000000488b83a000000048c78030010000601d4a00488b83d80000004c89e24889ee4889dfff50404881c4980000005b5d415c415dc3660f1f440000488b7424304885f674a0488b83900000004883f8ff74054839c67c8e448b43704531c931ffb901000000ba01000000e82cd902004883f8ff4989c50f8469ffffff488b7424308b7b7031d2e850020300488b7424304839f074184c89efe8bed9020048c78390000000ffffffffe938ffffff498d54050031c94c89ee4889dfe88c2a0000488b8390000000ba000000004c896b184883f8ff480f44c28b93c00000004c01e848894308488b4424304901c54889839000000085d2b8a01c4a00baa01f4a004c896b10480f4ec2488983d8000000488b83a000000048c78030010000a01c4a00e9effeffff660f1f4400004889f28b7770bf01000000e940cd02004885d241564989fe4155415455530f8e930000004889f54989d44889d341bd010000000f1f44000041f6467402745149637e704889da4889ee4489e80f05483d00f0ffff764948c7c2d0fffffff7d864890241830e204c89e04829d8498b96900000004885d2780a4801c2498996900000005b5d415c415d415ec30f1f440000418b7e704889da4889eee8c1cd02004885c078be4829c34801c54885db7f894c89e04829d8ebb531c0ebb10f1f440000415741564989d7415541544989f655534889fd4989f44881ec980000004c8b6f08488b5f104c29eb4839d30f8380010000f707000100000f8593010000488b85d80000004889e64889efff909000000085c075148b4424182500f000003d008000000f8488000000488b7d38488b75404829fee8f8d702008b85c0000000ba60204a0048c745400000000048c745380000000048c74518000000004c89f648c745080000000048c74510000000004889ef85c0b8601d4a00480f4ec24d29f44c89fa488985d8000000488b85a000000048c78030010000601d4a00488b85d8000000ff50404c01e0e9cf0000000f1f00488b5c24304885db0f846affffffe84dd60200488b7d384863c84889ce488d540bff48f7de4989f84821f24889f849f7d04c0345404c01c14821ce4839f20f82010100000f87210100004801fb48895d404989dd488b5510482b55084c89ee488b8d900000004829c648897d184829d14839f14889ca48898d900000000f8dae0000004801fa8b7d704c896d104889550831d2e868ff0200488b5540482b55384839d00f84f3000000834d00204c8b6d08488b5d104c29eb4c39fb7304834d00104885db754a4c89e04c29f04881c4980000005b5d415c415d415e415fc366904889da4c89ee4c89f7e8a23f01004889ef4929df4989c4e8342300004c8b6d08488b5d104c29eb4939df0f873dfeffff4c39fb4c89e74c89ee490f47df4889da4c01ebe8683f010048895d084989c4eb954d85ff4c896d084c896d10748831dbe978ffffff4801d74829d6e830d60200488b7d384889fb48035c24304889f848895d404989dde9e9feffff31c0b901000000e8a9fe02004883f8ff0f84f7fdffff4889c348035c2430488945384889c748895d404989dde9b8feffff48898590000000e905ffffff0f1f840000000000415641554989f64154554989d55348837f38004889fb0f84a40100004d85ed4d89ec0f84c80000000f1f840000000000488b7308488b6b104829f54c39e50f83c40000004885ed0f8523010000f703000100000f8507010000488b53384885d20f84ba000000488b4b404829d14939cc0f821a0100004883f97f4889531848895308488953104889532848895320488953300f86b80000004c89e031d248f7f14c89e04829d04889c2488b83d80000004c89f64889dfff50704883f8000f8eed000000488b93900000004901c64929c44883faff740a4801d0488983900000004d85e40f8547ffffff0f1f80000000004531e44c89e85b4c29e05d415c415d415ec3660f1f4400004c89e24c89f7e82d9801004c016308ebd70f1f800000000048c743180000000048c743080000000048c743100000000048c743280000000048c743200000000048c74330000000004c89e2e951ffffff0f1f8400000000004889dfe818210000e973ffffff0f1f004c89f74889ea4929ece8623d010048016b084989c6e9c3feffff660f1f4400004889dfe84822000083f8ff0f853fffffff4c89e85b4c29e05d415c415d415ec3752f830b10e939ffffff660f1f440000488b7f484885ff740be802b500008123fffeffff4889dfe844250000e93bfeffff830b20e90affffff0f1f800000000055534889fb4883ec0885c90f848700000083fa014889f5746f83fa02750b488b4740482b47384801c54885ed0f8896000000488b83d800000031d24889ee4889dfff90800000004885c00f888f000000488b4b40488b53384889ce488953184829d64839f57e5148894b0848894b108323ef488983900000004889e84883c4085b5dc30f1f440000488b4708482b47184801c5eb940f1f00488b5710482b5708488b87900000004883c4085b5d4829d0c30f1f80000000004801ea4889530848895310ebaa0f1f0048c7c0d0ffffff64c7001600000048c7c0ffffffffeb9d48c7c0ffffffffeb940f1f840000000000f6477402743248637f7031c00f05483d00f0ffff761a48c7c2d0fffffff7d864890248c7c0ffffffffc3660f1f440000f3c3660f1f4400008b7f70e980c7020031c04885d20f848400000041574156415541544989f555534989d44889fb4883ec088b0725000a00003d000a00000f84bc000000488b5730488b7f284839fa76574829fa4531f64885d20f84f00000004939d44c89ee490f46d44889d5e85e3b0100488943284c89e04901ed4829e84889c54901ee0f85120200004c89e04829e84883c4085b5d415c415d415e415ff3c30f1f8000000000488b83d8000000beffffffff4889df4c89e5ff501883f8ff74c9488b4b40482b4b3831d24883f97f0f87ad0000004989ee4929d60f85ae0000004885ed74a44b8d7435004889ea4889dfe8e92300004829c5eb8f0f1f4000488b7f28488b53404829fa4939d40f8740ffffff4a8d0c264839ce73258079ff0a488d41ff7516e9e40000000f1f40004883e80180380a0f84d30000004939c575ee4531f6e916ffffff660f1f440000488b83d8000000beffffffff4889dfff501889c231c083faff0f8422ffffff488b4b40482b4b384c89e54d89e64883f97f760d4889e831d248f7f1e946fffffff703001000000f849400000048c78390000000ffffffff488b83d80000004c89f24c89ee4889dfff50784989c70fb783800000004d85ff74096685c00f85ae0000008b93c0000000488b433885d248894318488943084889431048894328488943207e7b488b43404c29fd4d39f7488943300f83dafeffffe97efeffff0f1f004c29e841be010000004c89e54883c0014889c20f8537feffffe954feffff6690488b4310488b73204839f00f8466ffffff4829c6488b83d8000000ba010000004889dfff90800000004883f8ff0f8428feffff48898390000000e938fffffff703020200000f857dffffffe974ffffff8d78ff4489fa4c89eee8422d000083c00166898380000000e935ffffff488b83d800000083ceff4889dfff501883c0010f850cfeffff4885ed0f85ccfdffff48c7c0ffffffffe9c6fdffff0f1f44000055534889fb4881ec98000000488b87d80000004889e6ff909000000085c075108b4424182500f000003d0080000074508b83c0000000ba60204a0085c0b8601d4a00480f4ec2488983d8000000488b83a000000048c78030010000601d4a00488b83d80000004889dfff50204881c4980000005b5dc3662e0f1f840000000000488b7424304885f674a6488b83900000004883f8ff74054839c67c94448b43704531c931ffb901000000ba01000000e87cce02004883f8ff4889c50f846fffffff488b7424308b7b7031d2e8a0f70200488b7424304839f074184889efe80ecf020048c78390000000ffffffffe93effffff488d54050031c94889ee4889dfe8dc1f0000488b8390000000ba0000000048896b184883f8ff480f44c28b93c00000004801e848894308488b4424304801c54889839000000085d2b8a01c4a00baa01f4a0048896b10480f4ec2488983d8000000488b83a000000048c78030010000a01c4a00e9f5feffff660f1f440000488b4708483b471073060fb600c3669055534889fb4881ec98000000488b87d80000004889e6ff909000000085c075148b4424182500f000003d008000000f8484000000488b7b38488b73404829fee82cce02008b83c0000000ba60204a0048c743400000000048c743380000000048c74318000000004889df48c743080000000048c743100000000085c0b8601d4a00480f4ec2488983d8000000488b83a000000048c78030010000601d4a00488b83d8000000ff50204881c4980000005b5dc3660f1f440000488b6c24304885ed0f846effffffe885cc0200488b7b3848984889c6488d5405ff48f7de4889f94821f24989f848f7d148034b404801c84821c64839f20f828d0000000f87aa0000004801fd48896b40488b5310482b53084889ee488b83900000004c29c648897b184829d04839f0488983900000007d404801c731d248896b1048897b088b7b70e8abf50200488b5340482b53384839d00f8486000000830b20488b4308483b431073150fb6004881c4980000005b5dc348896b0848896b10830b10b8ffffffffe923ffffff0f1f004801d74829d6e8ddcc0200488b7b384889fd48036c24304989f848896b40e95dffffff31c0b901000000e859f502004883f8ff0f8473feffff4889c548036c2430488943384989c04889c748896b40e92cffffff48898390000000e971ffffff0f1f840000000000555348c7c5ffffffff4889fb4883ec08810f0c2400004889af90000000e89e160000896b704883c4085b5dc30f1f400055534889fb4889f74863f24883ec18f6437402746b4863d1b8020000000f05483d00f0ffff89c5774785ed784f8b134489c04181e004100000250c100000896b7081e2f3efffff09d04181f8041000008903744c4889dfe8341600004889d84883c4185b5dc3662e0f1f84000000000048c7c2d0fffffff7d864890231c0ebdf89ca31c0448944240ce832c00200448b44240c89c5eb92660f1f840000000000488b83d800000031f6ba020000004889dfff90800000004883f8ff759748c7c2d0ffffff64833a1d748a4863fdb8030000000f05483d00f0ffff76a0f7d864890231c0e977ffffff0f1f840000000000837f70ff755a8b074154b9030000005548c7c5d0ffffffba01000000538977704889fb83e0f331f648c78790000000ffffffff83c84064448b65008907488b87d8000000ff50484883f8ff741b64448965004889d85b5d415cc3660f1f44000031c0c30f1f44000031c064837d001d74dcebe20f1f00662e0f1f84000000000031c04885d27509c30f1f840000000000415541544989f455534889d54889fb4883ec08f707001000000f85a1000000488b4710488b77204839f0742a4829c6488b87d8000000ba01000000ff90800000004889c2b8ffffffff4883faff746248899390000000488b83d80000004889ea4c89e64889dfff50784989c50fb783800000004d85ed74056685c075638b93c0000000488b433885d248894318488943084889431048894328488943207e31488b43404889433031c04c39ed0f95c0f7d84883c4085b5d415c415dc30f1f400048c78790000000ffffffffeb890f1f00f7030202000075cbebc5660f1f4400008d78ff4489ea4c89e6e8f226000083c00166898380000000e980ffffff0f1f008b477083f8ff0f84fe0000004154554531e4538b074889fb25080800003d000800000f84080100004889df31ede88e300000f64374200f84d40000008b83c000000085c07e5a488b83a0000000488378400074084889dfe8e414050031c931d231f64889dfe846050500488b83a000000048c740100000000048c7000000000048c740080000000048c740200000000048c740180000000048c740280000000031c931d231f64889dfe8121a000048c743180000000048c74308000000004889df48c743100000000048c743280000000048c743200000000048c7433000000000e88a10000085ed4489e0c7030c24adfbc74370ffffffff48c78390000000ffffffff0f45c55b5d415cf3c30f1f4000488b83d80000004889dfff908800000089c5e915ffffff660f1f8400000000008b97c000000085d27e26488b87a0000000488b7018488b50204829f248c1fa02e8fbd5ffff4189c4e9cbfeffff0f1f00488b7720488b57284829f2e880fdffff4189c4e9b0feffff0f1f840000000000415741564155415455534883ec28837f70ff75540fb6023c720f84510500003c77745d3c610f842505000048c7c0d0ffffff64c700160000004883c42831c05b5d415c415d415e415fc348c7c5d0ffffff4889df64448b6500e822feffff64448965000f1f44000031c04883c4285b5d415c415d415e415fc30f1f800000000041b804000000b80100000041ba40020000440fb64a014c8d62014180f9630f84bb0500000f8fee0300004180f92b0f84c30500004180f96274164584c94989d40f842a0100004989d40f1f8000000000440fb64a024c8d5a024180f9630f84ae0500000f8f070400004180f92b0f84a70500004180f9620f84120500004584c90f84ea000000662e0f1f840000000000440fb64a034c8d5a034180f9630f849f0500000f8ff70300004180f92b0f847b0500004180f9620f84f90400004584c90f84aa000000662e0f1f840000000000440fb64a044c8d5a044180f9630f84850500000f8f170400004180f92b0f84610500004180f9620f84c50400004584c9746e660f1f440000440fb64a054c8d5a054180f9630f847c0500000f8f0f0400004180f92b0f84580500004180f9620f84990400004584c97436660f1f4400004c8d4a060fb6520680fa630f84880500000f8f0904000080fa2b0f846505000080fa624d0f44e1660f1f8400000000004489d24189c9b9b601000009c24889fbe8fbf9ffff4885c04889c50f8457feffff498d7c2401be701e4a00e850cafeff4885c04989c50f84f40300004c8d7805be2c0000004c89ffe8439501004c29f8488d78034989c6e864a300004885c04989c40f84f2fdffff4c89f24c89fe4889c7e8fa2e0100c60000450fb604244584c00f84080500004c8b1dfaef09004c8b3503f009004d89e14c89e04531ff49ba0740000000000800eb26660f1f4400004180f82f0f84260200004983c101450fb6014584c07454660f1f840000000000490fbef8418d48d4ba01000000410fb7347b66c1ee0383e60180f93377104c89d248d3ea83e2014883f20183e2014038f277ad418b14be4983c1014883c0018850ff450fb6014584c075b54183ff017f174585ff488d5001c6002f0f8556040000488d4201c6022fc6000041807c2402007522488b0d4eef090031c00f1f4000490fbe5405058b1491418814044883c00184d275eb4c89e64889e7e810af020085c00f85b80300004c89e7e8e0a5000048837c2408010f852b04000048837c2418010f8506040000488b83a0000000be20484b00b918000000488b500848c7405800000000488910488b501848895020488b83a000000048c7406000000000488b83a0000000488d5068488993980000004889d7488b1424f348a548c780a800000001000000c780cc00000000000000488990b0000000c780d000000001000000c780c800000001000000488b8da000000048c780e800000001000000c7800c01000000000000c7801001000001000000c7800801000009000000488d5158488990d8000000488b542410488990f0000000488b8da0000000488d515848899018010000488b83a0000000488b8030010000488983d8000000c785c0000000010000004883c4285b4889e85d415c415d415e415fc30f1f004180f96d0f84c90100004180f9780f84aa0100004180f9650f8510fcffff4181ca00000800834f74404989d4e907fcffff0f1f80000000004183c7014183ff030f844afeffffc6002f4883c001e9c0fdffff660f1f4400004180f96d0f848e0100004180f9780f84070100004180f9650f8502fcffff4181ca00000800834f7440e9f2fbffff66904180f96d0f84a10100004180f9780f84fe0000004180f9650f8512fcffff4181ca00000800834f7440e902fcffff669041b804100000b80100000041ba40040000e92bfbffff662e0f1f84000000000041b80800000031c04531d2e911fbffff4180f96d0f84670100004180f9780f84aa0000004180f9650f85eafbffff4181ca00000800834f7440e9dafbffff66904180f96d0f84400100004180f9780f84860000004180f9650f85f2fbffff4181ca00000800834f7440e9e2fbffff669080fa6d0f847901000080fa780f847901000080fa650f85f5fbffff4181ca00000800834f7440e9e5fbffff4180ca804d89dce9f9faffff660f1f8400000000004883c4284889e85b5d415c415d415e415fc34180ca804d89dce912fbffff4180ca804d89dce93efbffff4180ca804d89dce96afbffff4180ca80e971faffff834f74024989d4e965faffff834f74014989d4e959faffff4181e000100000b802000000e948faffff834f7401e97ffaffff834f7402e976faffff4181e0001000004d89dcb802000000e962faffff4181e0001000004d89dcb802000000e98efaffff834f7402e985faffff834f7401e97cfaffff4181e0001000004d89dcb802000000e9a0faffff834f7402e997faffff834f7401e98efaffff834f7401e9bdfaffff4181e0001000004d89dcb802000000e9a9faffff834f7402e9a0faffff4889dfe858f7ffff4c89e7e820a2000048c7c0d0ffffff64c7001600000031c0e925f9ffff4181e0001000004d89ccb802000000e997faffff834f7402e98efaffff834f7401e985faffff4180ca804d89cce979faffff4889d0e9a9fbffff498d54240141c604242fe993fbffffb9b01e4a00ba80010000be941b4a00bf8c1e4a00e899dafeffb9b01e4a00ba7f010000be941b4a00bf761e4a00e880dafeff53837f70ff4889fb742a8b87c000000085c07e4c488b87a0000000488b7018488b50204829f248c1fa02e8e1cdfffff60340740c4889df31f65be9b119000090488b83d80000004889dfff90880000004889df31f65be9951900000f1f440000488b7720488b57284829f2e840f5ffffebbd0f1f4000662e0f1f8400000000008b0ff6c1080f8595010000f6c50841545589f5534889fb744f488b77204885f60f849a010000488b572883fdff0f844d010000483953400f84fb000000488d42014889432840882a8b03a8020f8586000000f6c402740583fd0a747c400fb6c55b5d415cc30f1f0048837f20000f844d010000488b5708f6c5010f8580000000488b43404839d00f8403010000488b73108bbbc00000004889433089c880cc08488973084889731848895328488953204889d685ff89030f8f6dffffff81e1020200000f8461ffffff48895330e958ffffff660f1f440000488b7320488b53284889df4829f2e845f4ffff83f8ff0f8568ffffffb8ffffffffe962ffffff66904c8b63104889df4929d4e8810c0000488b53188b0b4889d0482b43384c39e0490f47c44829c24889531848895308e94dffffff0f1f4400008b83c000000085c00f8e9a000000488b83a00000004889df488b7018488b50204829f248c1fa02e82cccffff83f8ff0f94c084c00f8582ffffff488b5328e9c2feffff0f1f4400004889df4829f25b5d415ce9a1f3ffff90488b5338488953104889d6e9f1feffff48c7c0d0ffffff83c920890f64c70009000000b8ffffffffc30f1f80000000004889dfe8980f0000488b53388b0b488953184889530848895310e998feffff904829f24889dfe845f3ffff83f8ff0f94c0e974ffffff662e0f1f84000000000053488b57284889fb488b77204839f2762e8b87c000000085c07e6d488b87a0000000488b7018488b50204829f248c1fa02e85acbffff85c00f95c084c0756e488b7308482b7310751748c78390000000ffffffff31c05bc30f1f840000000000488b83d8000000ba010000004889dfff90800000004883f8ff7425488b430848894310ebc40f1f004829f2e8a0f2ffff85c00f95c0eba4660f1f84000000000048c7c0d0ffffff6483381d749cb8ffffffff5bc3662e0f1f840000000000669041574156415541544989f455534989fd4889f54883ec284c8b4718488b47604d29c44885c00f84360100004c89e34889c10f1f800000000048637910488b094839fb480f4fdf4885c975ed498b75584d8b7d484c89e24829da4989f64d29fe4c39f2774c4929d64885db0f880b0100004885d20f85c70000004d01fe4c89e64885c04d89755074130f1f840000000000297010488b004885c075f531c04883c4285b5d415c415d415e415fc30f1f4000488d42644c89442418488974241048895424084889c748890424e8e19900004885c00f840b0100004885db488b542408488b7424104c8b4424180f88b30000004c8d7064498d341848894424084c89f7e8bb7f01004c8b4c24084c89ff4c894c2408e8399d00004c8b4c24084c8b3c244889ee498b4560492b75184d01cf4d894d484d897d58e944ffffff0f1f4400004b8d3c37498d3418e8737f01004889ee4d037548492b7518498b4560e91effffff488b77584c8b7f484989f64d29fe4d85e40f8901ffffff4c89e34b8d3c374889da4801de48f7dae8c3bffeff498b75184c89f74889ea4829df49037d484829f2eba54c8d70644889da4801de48f7da4c8944241048894424084c89f7e89e2401004c8b4424104c89e24889c74c89c6e88b2401004d8b7d484c8b4c2408e927ffffffb8ffffffffe9b0feffff0f1f00488b05e9812b004885c07447f70000800000753f488b9088000000836a0401753248c7420800000000833dec8d2b00007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e864e402004881c480000000832daa812b0001754148c705a1812b0000000000833dae8d2b0000740bf0ff0d89812b00750aeb22ff0d7f812b00741a488d3d76812b004881ec80000000e81ae402004881c480000000f3c390415541544531e455534883ec08488b1d6c5c2b008b2d3e812b004885db7547e9bc0100000f1f4000488b83d8000000beffffffff4889dfff501883f8ff8b1515812b000f848f01000039d548c705fa802b00000000007441488b1d215c2b0089d54885db743e8b8bc000000048891ddd802b0085c90f8e45010000488b83a0000000488b701848397020779c48c705b9802b000000000089ea488b5b6889d54885db75c2488b1dd55b2b004885db0f842c010000644c8b2c2510000000e995000000660f1f440000488b83880000004c896808c7400401000000803d67802b0000752b8b03a801752583c8018903488b054b802b0048891d44802b00488983a8000000488b4338488983b0000000488b83d800000031d231f64889dfff50588b83c000000085c07e0e31c931d231f64889dfe869f5040083fd020f85b0000000c783c0000000ffffffff488b5b684885db0f8489000000f6030275e48b93c000000085d274da31ed488b93880000004885d20f8462ffffff4c3b6a080f84c600000031c0b901000000833dec8b2b00007406f00fb10aeb030fb10a85c00f8425ffffff83c501e895ac020083fd020f8426ffffffebb2662e0f1f840000000000488b4320483943280f875afeffffe9b9feffff0f1f4400004189c4e969feffff4883c4084489e05b5d415c415dc36690488b93880000004885d20f8440ffffff836a04010f8536ffffff48c7420800000000833d638b2b00007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8dbe102004881c480000000e9fffeffff0f1f800000000083420401e989feffff0f1f440000662e0f1f840000000000f607800f84da0100005553bd000000004889fb4883ec284885ed0f842802000031d2bea04341004889e7e831b9beff64488b142510000000483b15c97e2b007446be0100000031c0833dcd8a2b0000740cf00fb135a77e2b00750beb230fb1359c7e2b00741a488d3d937e2b004881ec80000000e807e102004881c480000000488915817e2b008b338b15757e2b0048891d5a7e2b0089f083c201250080000089155e7e2b000f857c010000488b9388000000644c8b0425100000004c3b4208743cbe01000000833d4e8a2b00007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e894e002004881c480000000488b93880000004c8942088b33488b3d19592b008342040189f025008000004885ff74364839fb0f8460010000488b4f684885c974244839cb7516e9640100000f1f4400004839d30f841f0100004889d1488b51684885d275eb4080e67f85c089330f85bf000000488bb3880000008b460483e80185c08946048b15917d2b00747383ea0148c7056d7d2b000000000085d28915797d2b00754148c705707d2b0000000000833d7d892b0000740bf0ff0d587d2b00750aeb22ff0d4e7d2b00741a488d3d457d2b004881ec80000000e8e9df02004881c4800000004885ed740a31f64889e7e883b7beff4883c4285b5df3c30f1f0048c7460800000000833d25892b00007407f0ff0e7506eb1aff0e7416488d3e4881ec80000000e89ddf02004881c4800000008b15e47c2b00e950ffffff0f1f00488b3df1572b004885ff0f85dffeffff4080e67f8933e932ffffff0f1f44000048c70424a043410048c744240800000000e9d1fdffff66904883c168488b53688305897c2b0001488911e9d6feffff660f1f840000000000488b536883056d7c2b00014889158e572b00e9b6feffff488d4f68ebc70f1f008b07a8800f85ab0100005553bd000000000c804889fb4883ec284885ed89070f84bb01000031d2bea04341004889e7e88cb6beff64488b142510000000483b15247c2b007446be0100000031c0833d28882b0000740cf00fb135027c2b00750beb230fb135f77b2b00741a488d3dee7b2b004881ec80000000e862de02004881c480000000488915dc7b2b008b0b8b15d07b2b0048891db57b2b0089c883c20125008000008915b97b2b000f850f0100004c8b838800000064488b142510000000493b50087440be01000000833da9872b00007409f0410fb1307508eb1c410fb1307416498d384881ec80000000e8eddd02004881c4800000004c8b83880000008b0b49895008488b0572562b00418340040183053e7b2b000180e58048891d5c562b00488943680f8506010000418b400483e80185c0418940048b15237b2b000f84b900000083ea0148c705fb7a2b000000000085d28915077b2b00754148c705fe7a2b0000000000833d0b872b0000740bf0ff0de67a2b00750aeb22ff0ddc7a2b00741a488d3dd37a2b004881ec80000000e877dd02004881c4800000004885ed740a31f64889e7e811b5beff4883c4285b5df3c3660f1f840000000000488b05b9552b0083058a7a2b000148891dab552b0048894368e969ffffff669048c70424a043410048c744240800000000e93efeffff662e0f1f84000000000049c7400800000000833d6d862b00007408f041ff087507eb1b41ff087416498d384881ec80000000e8e3dc02004881c4800000008b152a7a2b00e908ffffff90488b57604889f0482b47184885d2741348634a10488b124839c8480f4fc14885d275edf3c390662e0f1f840000000000488b4710488b57588127fffeffff4889571048894758488b5718488b4748488957484889471848894708c30f1f440000488b5710488b4758488b4f48810f0001000048895758488b57184889471048894f184889574848894708c30f1f440000488b4728483b4720534889fb77428b13f6c601752b48394310488b4b3848894b1873044889431080e6f7488943084889433048894320891331c05bc30f1f4000488b4b5048894b18ebdd660f1f440000488b87d8000000beffffffffff501883f8ff74d6488b4328eba4660f1f440000538b074889fbf6c401744580e4fe8907488b475848894710488b4348488b7f184889431848894308e85393000048c743480000000048c743580000000048c74350000000005bc3660f1f840000000000488b7f48ebd2662e0f1f8400000000008b87c000000085c0750ac787c0000000ffffffff488b87d8000000488b4018ffe00f1f440000662e0f1f840000000000538b87c000000085c07555c787c0000000ffffffff8b074889fbf6c4080f8585000000488b5708488b77104839f2726df6c401753b48837b60000f84e00000004889dfe858f4ffff85c07519488b83d80000004889df5b488b4020ffe00f1f0083f8ff74b0b8ffffffff5bc30f1f4000488b4b58488b534880e4fe48897358488b731889034839d148894b104889531848897348488953084889ce76980fb6025bc3660f1f440000488b5728483b5720774ef6c4017531488b7310488b4b384839d648894b187307488953104889d680e4f74889530848895330488953208903e946ffffff0f1f00488b4b50488b731048894b18ebd9662e0f1f840000000000488b87d8000000beffffffffff501883f8ff0f844dffffff8b03488b5328eb92488b7b484885ff0f841ffffffff6c401741c80e4fe48897b088903488b435848894310488b431848897b184889c7e89d91000048c743480000000048c743580000000048c7435000000000e9dcfeffff538b87c000000085c07555c787c0000000ffffffff8b074889fbf6c4080f85dd000000488b5708488b77104839f20f82bc000000f6c401753748837b600074644889dfe8e8f2ffff85c07519488b83d80000004889df5b488b4028ffe00f1f0083f8ff74b0b8ffffffff5bc30f1f4000488b4b58488b534880e4fe48897358488b731889034839d148894b104889531848897348775a48837b6000488953084889ce759c488b7b484885ff749ff6c401741c80e4fe48897b088903488b435848894310488b431848897b184889c7e8ad90000048c743480000000048c743580000000048c7435000000000e95cffffff488d4201488943080fb6025bc30f1f00488b5728483b57207746f6c4017531488b7310488b4b384839d648894b187307488953104889d680e4f74889530848895330488953208903e9eefeffff0f1f00488b4b50488b731048894b18ebd96690488b87d8000000beffffffffff501883f8ff0f84fdfeffff8b03488b5328eb9a534889fb4883ec20488b7f388b034885ff7404a80174214889534089c283c80183e2fe85c9488973380f45c289034883c4205bc30f1f4000894c241c48895424104889742408e8c58f00008b038b4c241c488b542410488b742408ebba0f1f0048837f38007409c30f1f840000000000415455538b074889fba802740a8b97c000000085d27e49488b83d80000004889dfff506883f8ff74075b5d415cc36690488b7b384c8da384000000488dab830000008b034885ff7404a801742383c80148896b384c8963408903ebcd0f1f40004c8da784000000488daf83000000ebdde82b8f00008b03ebd40f1f8000000000b8ffffffffc3662e0f1f840000000000488b87d8000000534889fbff502083f8ff740f488b4308488d5001488953080fb6005bc36690662e0f1f8400000000004885d20f84b7000000415641554989f64154554989fc534989d54889d50f1f00498b7c2428498b5c24304839df73364829fb4839dd480f46dd4883fb1477514885db741e31c0410fb614068814074883c0014839c375ef4801df4901de49897c24284829dd4885ed743e498b8424d8000000410fb6364c89e7498d5e01ff501883f8ff74234883ed014989deeb9266904c89f64889da4901dee8521601004989442428ebbd0f1f004c89e85b4829e85d415c415d415ec3660f1f84000000000031c0c30f1f00662e0f1f840000000000488b87d8000000488b4040ffe00f1f00415641554989d641544989f45553488b4f084889fb488b77104989d50f1f40004839ce764a4829ce4939f6490f46f64883fe144889f50f87440100004885f6742b8d76ff31c04889f24883c6010fb63c0141883c044883c0014839f075ef4883c2014901d44801ca488953084929ee4d85f60f84b10000008b83c000000085c00f859a000000c783c0000000ffffffff8b03f6c4080f85a5000000488b4b08488b73104839ce0f8774fffffff6c4017431488b5358488b4b4880e4fe48897358488b731889034839ca4889531048894b184889734848894b084889d60f873effffff48837b60000f84b30000004889dfe8bbeeffff85c07530488b83d80000004889dfff502083f8ff741e488b4b08488b7310e908ffffff0f1f84000000000083f8ff0f8467ffffff4c89e85b4c29f05d415c415d415ec30f1f840000000000488b4b28483b4b200f87ca000000f6c4010f8499000000488b5350488b73104889531880e4f748894b0848894b3048894b208903e92affffff0f1f80000000004889f24c89e74889cee88214010048016b084989c4e9d2feffff660f1f440000488b7b484885ff0f844cfffffff6c401741c80e4fe48897b088903488b435848894310488b431848897b184889c7e82d8c000048c743480000000048c743580000000048c7435000000000e909ffffff488b7310488b53384839ce488953180f835effffff48894b104889cee952ffffff0f1f8000000000488b83d8000000beffffffff4889dfff501883f8ff0f84f6feffff8b03488b4b28e910ffffff66904154554989f453488b87d80000004889fb4889d5ff506083f8ff0f84a00000008b134d85e489d074674885ed7462488b7b3883e0fd4c01e589034885ff740583e201746d83c8014c89633848896b40890348c74330000000004889d848c743280000000048c743200000000048c743100000000048c743080000000048c74318000000005b5d415cc30f1f8000000000488b7b3883c802488dab8400000089034c8da3830000004885ff749883e2017593e80a8b00008b03eb8a660f1f44000031c0ebc06690662e0f1f840000000000488b87d800000089d131d2488b4048ffe00f1f440000662e0f1f840000000000415455534889fbbf00200000e81f8700004889c5b8ffffffff4885ed7429488b7b384c8da5002000008b134885ff7405f6c201741b83e2fe48896b384c8963408913b8010000005b5d415cc30f1f4000e87b8a00008b13ebdc0f1f800000000031c081ce0000adfbc747740000000066898780000000488b8788000000893748c747380000000048c747400000000048c74718000000004885c048c747080000000048c747100000000048c747200000000048c747280000000048c747300000000048c747680000000048c747480000000048c747500000000048c747580000000048c74760000000007415c70000000000c740040000000048c7400800000000c787c0000000ffffffff48c787a0000000ffffffff48c787a800000000000000c30f1f4000662e0f1f84000000000031c081ce0000adfbc747740000000066898780000000488b8788000000893748c747380000000048c747400000000048c74718000000004885c048c747080000000048c747100000000048c747200000000048c747280000000048c747300000000048c747680000000048c747480000000048c747500000000048c747580000000048c74760000000007415c70000000000c740040000000048c7400800000000f3c30f1f00662e0f1f84000000000031c081ce0000adfbc747740000000066898780000000488b8788000000893748c747380000000048c747400000000048c74718000000004885c048c747080000000048c747100000000048c747200000000048c747280000000048c747300000000048c747680000000048c747480000000048c747500000000048c747580000000048c74760000000007415c70000000000c740040000000048c740080000000085d28997c0000000787548898fa000000048c741300000000048c741380000000048c741100000000048c7010000000048c741080000000048c741180000000048c741200000000048c741280000000048c741400000000048c741480000000048c74150000000004c89813001000048c787a800000000000000c30f1f400048c787a0000000ffffffff48c787a800000000000000c3660f1f84000000000031c0c30f1f00662e0f1f84000000000055534889fb4883ec28488b7f384885ff7409f603010f84fd010000488b43604885c074140f1f400048c7400800000000488b004885c075f0488b7b484885ff740de85a87000048c7434800000000f60380750d4883c4285b5dc3660f1f440000bd000000004885ed0f846202000031d2bea04341004889e7e823a7beff64488b142510000000483b15bb6c2b007446be0100000031c0833dbf782b0000740cf00fb135996c2b00750beb230fb1358e6c2b00741a488d3d856c2b004881ec80000000e8f9ce02004881c480000000488915736c2b008b338b15676c2b0048891d4c6c2b0089f083c20125008000008915506c2b000f843e010000488b3d5f472b004885ff0f84f30100004839fb0f84d3010000488b4f684885c974294839cb751be9e2010000662e0f1f8400000000004839d30f84770100004889d1488b51684885d275eb4080e67f85c08933754c488bb3880000008b460483e80185c08946048b15dd6b2b00753848c7460800000000833de4772b00007407f0ff0e7506eb1aff0e7416488d3e4881ec80000000e85cce02004881c4800000008b15a36b2b0083ea0148c705816b2b000000000085d289158d6b2b00754148c705846b2b0000000000833d91772b0000740bf0ff0d6c6b2b00750aeb22ff0d626b2b00741a488d3d596b2b004881ec80000000e8fdcd02004881c4800000004885ed0f8450feffff4889e731f6e893a5beff4883c4285b5dc30f1f4000e88385000048c743400000000048c7433800000000e9e9fdffff660f1f440000488b9388000000644c8b0425100000004c3b4208743cbe01000000833d02772b00007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e848cd02004881c480000000488b93880000004c8942088b33488b3dcd452b008342040189f025008000004885ff0f8563feffffe999feffff0f1f40004883c168488b53688305796a2b0001488911e97efeffff660f1f84000000000048c70424a043410048c744240800000000e997fdffff488b53688305476a2b000148891568452b00e948feffff4080e67f8933e999feffff488d4f68eba6669048c7c0ffffffffc30f1f84000000000053488b57084889fb483b5718760c0fb642ff400fb6ce39c8741e488b83d80000004889dfff503083f8ff74038323ef5bc30f1f80000000004883ea0148895708ebea0f1f4000662e0f1f840000000000488b4708483b4718534889fb7612488d50ff488957080fb640ff8323ef5bc390488b87d8000000beffffffffff503083f8ff75e65bc3662e0f1f8400000000004c63c24901f04c39c67323418078ff0a498d48ff7513eb200f1f8400000000004883e90180390a740f4839ce75f28d043ac3660f1f4400004929c8418d40ffc3415741564189fe4155415455534883ec2885ff0f8417020000b8000000004531ed4885c0410f95c50f848202000031d2bea04341004889e7e873a3beff64488b142510000000483b150b692b007446be0100000031c0833d0f752b0000740cf00fb135e9682b00750beb230fb135de682b00741a488d3dd5682b004881ec80000000e849cb02004881c480000000488915c3682b008b05b9682b00488b1dce432b00448b3d9f682b0083c0014885db89059f682b000f840b02000031ed644c8b242510000000eb1b0f1f840000000000488b1d99432b004189c74885db0f84140100004585f648891d53682b0074568b032500800000754d488b93880000004c3b6208743cbe01000000833d5b742b00007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e8a1ca02004881c480000000488b93880000004c896208834204018b83c000000085c00f8efd000000488b83a0000000488b481848394820761d488b83d8000000beffffffff4889dfff501883f8ffb8ffffffff0f44e84585f6744af703008000007542488b9388000000836a0401753548c7420800000000833dc2732b00007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e83aca02004881c4800000000f1f008b0572672b0048c7055f672b00000000004139c70f85e6feffff488b5b684885db0f85ecfeffff4585f68b0554672b00740d83e80185c0890547672b0074594585ed740a31f64889e7e892a1beff4883c42889e85b5d415c415d415e415fc390488b1d39422b004531ed448b3d07672b004885db0f8571feffff31edebd06690488b4320483943280f8706ffffffe91effffff0f1f44000048c705e5662b0000000000833df2722b0000740bf0ff0dcd662b00750aeb22ff0dc3662b00741a488d3dba662b004881ec80000000e85ec902004881c480000000e961ffffff669048c70424a043410048c744240800000000e977fdffff31ede935ffffff0f1f004156415541545541bc00000000534883ec204d85e40f844502000031d2bea04341004889e7e8b6a0beff64488b142510000000483b154e662b007446be0100000031c0833d52722b0000740cf00fb1352c662b00750beb230fb13521662b00741a488d3d18662b004881ec80000000e88cc802004881c48000000048891506662b008b05fc652b00488b1d11412b0031ed448b2de0652b0083c0014885db8905e0652b000f842e010000644c8b342510000000eb160f1f00488b1de1402b004885db0f840a0100004189c58b0348891d9c652b002500800000754d488b93880000004c3b7208743cbe01000000833da8712b00007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e8eec702004881c480000000488b93880000004c897208834204018b83c000000085c00f8e12010000488b83a0000000488b481848394820761d488b83d8000000beffffffff4889dfff501883f8ffb8ffffffff0f44e8f70300800000753f488b9388000000836a0401753248c7420800000000833d14712b00007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e88cc702004881c4800000008b05c7642b0048c705b4642b00000000004439e80f85f3feffff488b5b684885db0f85f6feffff8b05ac642b0083e80185c08905a1642b00754148c70598642b0000000000833da5702b0000740bf0ff0d80642b00750aeb22ff0d76642b00741a488d3d6d642b004881ec80000000e811c702004881c4800000004d85e4740a31f64889e7e8ab9ebeff4883c42089e85b5d415c415d415ec30f1f4000488b4320483943280f87f1feffffe909ffffff0f1f44000048c70424a043410048c744240800000000e9b4fdffff662e0f1f840000000000415541545553bd000000004883ec284885ed0f843802000031d2bea04341004889e7e8399ebeff64488b142510000000483b15d1632b007446be0100000031c0833dd56f2b0000740cf00fb135af632b00750beb230fb135a4632b00741a488d3d9b632b004881ec80000000e80fc602004881c48000000048891589632b008b057f632b00488b1d943e2b00448b2565632b0083c0014885db890565632b000f843a0100004489e0644c8b2c2510000000e9d7000000662e0f1f840000000000488b93880000004c3b6a08743ebe0100000089c8833d416f2b00007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e887c502004881c480000000488b93880000004c896a08834204018b0325080200003d000200000f8491000000f70300800000753f488b9388000000836a0401753248c7420800000000833dd76e2b00007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e84fc502004881c4800000008b058a622b004139c448c70574622b00000000007452488b1d9b3d2b004189c44885db744c8b1348891d5a622b0089d181e1008000000f841cffffff81e20802000081fa0002000075bc488b83d8000000beffffffff4889dfff5018e958ffffff0f1f8000000000488b5b684885db75b48b0525622b0083e80185c089051a622b00754148c70511622b0000000000833d1e6e2b0000740bf0ff0df9612b00750aeb22ff0def612b00741a488d3de6612b004881ec80000000e88ac402004881c4800000004885ed740a31f64889e7e8249cbeff4883c4285b5d415c415dc3660f1f84000000000048c70424a043410048c744240800000000e9c1fdffff662e0f1f84000000000055534889fd4889f34883ec088b0648897708f6c4087531488b5308f6c40189d0751e2b4318894510488b43604889450048896b604883c4085b5dc30f1f4400002b4310ebe00f1f00488b4e28483b4e20773ef6c4017529483b4b10488b5338488953184889ca760448894b1080e4f748894b0848894b3048894b208903eb9c90488b5350488953184889caebdf0f1f00488b86d80000004889dfbeffffffffff501883f8ff8b030f846affffff488b4b28eb9f0f1f00662e0f1f840000000000488b4708488b50604885d2741b4839d7750eeb160f1f40004839c774114889c2488b024885c075f0f3c3488d5060488b07488902c390662e0f1f8400000000008b47102b4610c3660f1f840000000000488b47084885c07420f70000010000488b5008750b2b50188b471029d0c366902b50108b471029d0c3b8ffffffffc390488b5608b8ffffffff4839fa753d486346108b0a85c07848f6c501743380e5fe488b7258890a488b4a1048897210488b721848894a58488b4a484889724848894a184801c84889420831c0f3c30f1f00488b4a18ebec662e0f1f840000000000f6c501752b488b721080cd01488b7a48890a488b4a5848897258488b721848894a1048897a1848897248ebb60f1f4000488b4a10ebac662e0f1f84000000000048837f60004889f8740848c7476000000000488b78484885ff74458b1053f6c601741c80e6fe488978088910488b505848895010488b5018488978184889d74889c3e8c979000048c743480000000048c743580000000048c74350000000005bf3c30f1f4000662e0f1f84000000000041574156415541544189f455534889fb4883ec08488b6f084c8b7718448b2f4c39f5762c41f7c500010000747b488d45ff48894308448865ff410fb6c44883c4085b5d415c415d415e415fc30f1f400041f7c5000100000f84830000004c8b6b104d29f54b8d7c2d00e8927500004885c04989c70f84d00000004a8d2c284c89ea4c89f64889ef4901ede8815b01004c89f7e8097900004c897b184c896b1048896b50eb880f1f000fb645ff39f0746848837f480074714889ee4889dfe88edaffff85c00f8580000000488b4b08448b2b488b6b58488b4348eb150f1f440000488b43484885c0743f4889e9488b6b58488b53104181cd0001000048896b1044892b4889431848894b4848895358e91affffff0f1f4400004883ed0148896f08e914ffffff0f1f00bf80000000e8ce7400004885c07413488d90800000004889e9488953504889d5eba6b8ffffffffe9e9feffff6690662e0f1f84000000000048c7c0ffffffffc30f1f840000000000b8ffffffffc3662e0f1f84000000000048c7c0ffffffffc30f1f84000000000031c0c30f1f00662e0f1f840000000000b8ffffffffc3662e0f1f840000000000f3c30f1f4000662e0f1f840000000000488b0599382b00c30f1f84000000000031c0c30f1f00662e0f1f840000000000488b4768c390662e0f1f8400000000004889f8c36690662e0f1f84000000000064488b142510000000483b15385d2b007446be0100000031c0833d3c692b0000740cf00fb135165d2b00750beb230fb1350b5d2b00741a488d3d025d2b004881ec80000000e876bf02004881c480000000488915f05c2b008305e55c2b0001c3832ddd5c2b0001754148c705d45c2b0000000000833de1682b0000740bf0ff0dbc5c2b00750aeb22ff0db25c2b00741a488d3da95c2b004881ec80000000e84dbf02004881c480000000f3c30f1f4000c705865c2b0000000000c705805c2b000000000048c705795c2b0000000000c3488b4728488b4f104839c87607488947104889c18b1781e2000c000081fa000c00007414488b47084839c873230fb600c30f1f8000000000488b57308127fff7ffff4889470848895728ebdc0f1f4000b8ffffffffc3662e0f1f8400000000008b0ff6c108741131c083feff0f95c0f7d8c3660f1f440000415789c841564155415425000c000055534883ec083d000400000f8408010000488b57284c8b67384c8b6f4089f54889d6482b772031c04889fb4d29e583fdff0f94c04c01e84839c60f82aa00000083e1010f85f00000004f8d742d644d39f50f87e20000004c89f7ff93e00000004885c04989c70f84cd0000004d85e4741f4c89ea4c89e64889c7e83a5801004c89e7ff93e800000048c74338000000004b8d3c2f4c89f231f64c29eae8f898feff4b8d1437b9010000004c89fe4889dfe884e5ffff4c89f84c897b204c29e0480143184c89f84c29e0480143084c89f84c29e0480143104889c248035328488b4340488953284889433083fdff740f488d42014889432840882a488b53284839531089e87304488953104883c4085b5d415c415d415e415fc3488b5708488b471080cd08890f4889572848894708e9e2feffff660f1f440000b8ffffffffebca660f1f840000000000415741564155415455534883ec284c8b7738488b47404c29f04839f00f8dfe000000448b3f4183e701741d41bf010000004883c4284489f85b5d415c415d415e415fc30f1f440000488b47204889fb4c8b67308954241c4889f54889442408488d466448894424104889c7ff93e00000004885c04989c574b24d85f67424488b5340482b53384c89f64889c7e8df5601004c89f7ff93e800000048c7433800000000488b542410b9010000004c89ee4889df4c2b6424084c01eae831e4ffff8b54241c4c89e84c29f085d27563480143184c89e84c896b204c29f0480143084c89e84c29f0480143104c89e84c29f0480143284c39e5488b4340488943307c634889ea4b8d7c250031f64c29e2e83e97feffe91affffff660f1f8400000000004531ffe909ffffff0f1f840000000000480143204c89e84c896b184c29f0480143284c89e84c29f0480143304c89e84c29f0480143084c39e5488b4340488943107d9db930214a00bae0000000be08214a00bf11214a00e874acfeff0f1f4000415541544189d555534989f44889fb4883ec1885c90f85850000008b07f6c404745ef6c4080f84b5000000488b6f2848396f10480f436f10482b6f184183fd010f8412010000498d042c4183fd024c0f44e04d85e40f882a0100004939ec0f8f0c0100004c89e048034320488943284883c4184c89e05b5d415c415dc30f1f00a8080f85a8000000488b4328482b43204883c4185b5d415c415dc30f1f440000488b6f2848396f10480f436f10488b47184829c5f6c101754083e10248c7c0ffffffff85c90f8571ffffff4883c4185b5d415c415dc3662e0f1f840000000000488b6f2848396f10b901000000480f436f10488b47184829c54183fd017449498d142c4183fd024c0f44e24d85e478754939ec0f8f7f0000004a8d14204801e883e102488943104c89e048895308eb93488b4308482b43184883c4185b5d415c415dc30f1f440000488b53084829c24901d4ebb70f1f4000488b4328482b43204901c4e9eafeffff0f1f84000000000031d24c89e64889dfe803fdffff85c00f84dffeffff48c7c0ffffffffe9fffeffff0f1f8000000000ba010000004c89e64889df894c240ce8d4fcffff85c075d5488b43188b4c240ce95cffffff0f1f00f60708740583feff7506e911f8ffff90b8ffffffffc3662e0f1f840000000000534889fb488b7f384885ff740bf603017506ff93e800000048c74338000000004889df31f65be9d5e9ffff0f1f440000415541544989cd55534989f44889fb4883ec084885d2755831f64c89e7e86e5d01004889c531c94889ea4c89e64889dfe82be1ffff4d85ed4c8963204c8963184c89630874424c896b2848896b304c896b1048c783e0000000000000004883c4085b5d415c415dc30f1f8400000000004801f248c7c5ffffffff4839d6480f42eaeba20f1f4400004c8963284c89633048896b10ebbc662e0f1f840000000000415541544989cd5553bbffffffff4889fd4989f44883ec0885d20f48d34863d24885d2755331f64c89e7e8c15c01004889c331c94889da4c89e64889efe87ee0ffff4d85ed4c8965204c8965184c896508743d4c896d2848895d304c896d1048c785e0000000000000004883c4085b5d415c415dc30f1f004801f248c7c3ffffffff4839d6480f42daeba70f1f4400004c8965284c89653048895d10ebc16690415485d25553bbffffffff4889fd0f48d34989f44863d24885d2754c31f64c89e7e82a5c01004889c34889da4c89e64889ef31c9e8e7dfffff834d00084c8965204c8965184c8965084c8965284c89653048895d1048c785e0000000000000005b5d415cc30f1f004801f248c7c3ffffffff4839d6480f42daebae0f1f440000488b472848394710480f434710482b4718c3662e0f1f8400000000000f1f40004883ec104189d1488b1562402b0041bb65694b0041baaf544b004885c94989f04889c84c89de490f45f2490f44c3803a004c89d9575650be60254a00490f45ca31ff31c0e82785ffff488b3d78362b004883c420e8c788ffffe8e26cffff66904801fe4154488b05a4402b004881feff7f000055530f86f50000004881fe000000040f87f8000000488b3d11552b00488d6c06ff48f7d84821c54885ff746e4531c931d241b8ffffffffb922400000be00000004e8178d02004883f8ff4889c348c705d5542b00000000007440a9ffffff03752cba030000004889ee4889dfe8cc8d020085c00f85fc00000048896b1048896b18904889d85b5d415cc30f1f00be000000044889c7e8838d02004531c931d231ff41b8ffffffffb922400000be00000008e8a78c02004883f8ff0f8485000000488d98ffffff034881e3000000fc4989dc4929c47557488dbb0000000448893d49542b00be000000044c29e6e82c8d0200e96bffffff0f1f8000000000be00800000e90effffff660f1f4400004881ff00000004be000000040f86f6feffff31c0e95fffffff0f1f80000000004889c74c89e6e8e58c0200488dbb00000004eba30f1f40004531c931d231ff4189c0b922400000be00000004e8ff8b02004883f8ff4889c374b8a9ffffff030f84effeffff0f1f00be000000044889dfe89b8c020031c0e9fcfeffff0f1f40004155415455534883ec08488b5708488b05fb3e2b00488b2f4989d54983e5f883e2020f84c50000004e8d642d00488d50ff4c85e20f859a000000488d5c280748f7d84801f34821c34939dc746f4829ef31c0b9010000004889da4c89e6e8ceb402004883f8ff7468488d3c2840f6c70f0f85a9000000483b2f0f85870000004889d84829e84883c802488947084889d84c29e84829e8f0480fc105c9342b004c29e34801c3488b05c4342b004839c3760bf0480fb11db6342b0075e94889f84883c4085b5d415c415dc3660f1f44000031c0ebebb9a8304a00ba340b0000be08224a00bf88254a00e813fdffffb9a8304a00ba330b0000be08224a00bf11224a00e8fafcffffb9a8304a00ba470b0000be08224a00bf41224a00e8e1fcffffb9a8304a00ba450b0000be08224a00bf26224a00e8c8fcffff0f1f8400000000004883ec08488b156d522b0049c7c1d8ffffff4885d2644d8b010f8405010000be0100000031c0833ddf5d2b0000740cf00fb13549522b00750beb230fb1353e522b00741a488d3d35522b004881ec80000000e819b402004881c480000000488b1513522b004885d274474883ba7808000000488b8270080000488905f8512b000f85a60000004d85c048c7827808000001000000741b498b80780800004885c00f849f0000004883e80149898078080000833d545d2b0000740bf0ff0dbf512b00750aeb22ff0db5512b00741a488d3dac512b004881ec80000000e8c0b302004881c4800000004885d2743890be0100000031c0833d115d2b00007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e857b302004881c480000000644989114889d04883c408c3b978304a00bad4020000bee8214a00bf5a224a00e87bfbffffe8d98ffeff660f1f440000415641554154554989f45389fb4889d74883ec204885c974048349040489d883e00583f8050f84a5000000f6c301752083e3020f85b00000004883c4205b5d415c415d415ec3662e0f1f840000000000488d74241031c9ba10000000c644241000e89aab03004839e04889c576254889c24889c7be300000004829e24c8d70ff4829d7e8c88dfeff488d4424ff4c29f04801c5488b05265d2b00ba78224a004989e84c89e1bee8254a00488b004885c0480f45d083e30231c089dfe850a2ffff4883c4205b5d415c415d415ec30f1f0083e3024c89e2be7ccc4b0089df31c0e82ca2ffffe950ffffffe8c267ffff6690488b064156415541545553488b68084883e5f8488d45df4839f87612488b1d6d3b2b004829f848f7db4821c3751231c05b5d415c415d415ec30f1f80000000004989f431ff4989d5ff15523a2b004989c64889e8490304244939c675d14889df48f7dfff15373a2b00488b05804f2b004885c0752d31ffff15233a2b00904885c074ab4929c674a6498b04244c29f54d2975004883cd0148896808b801000000eb8effd0ebcf662e0f1f84000000000055534889fd4889f34883ec08488b054d4f2b004885c07517488b0501312b004885c00f8400020000488905314f2b00488b1592302b004883e8014839d00f8350020000488b150e4f2b004885d20f842b0200004889d1be01000000eb330f1f00833db55a2b00007406f00fb132eb030fb13285c00f8495000000488b05d74e2b00488b92680800004839c24889c1741a8b420483e00474c8488b92680800004889c84889c14839c275e64839c30f84130200004889c2eb180f1f840000000000488b92680800004839c20f8488010000f642040475ea4839d374e590be0100000031c0833d325a2b00007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e878b002004881c48000000049c7c0d8ffffffbe0100000031c0644d8b08833df4592b0000740cf00fb1355e4e2b00750beb230fb135534e2b00741a488d3d4a4e2b004881ec80000000e82eb002004881c4800000004d85c9741b498b81780800004885c00f84ff0300004883e80149898178080000488b0d084e2b004885c974414883b978080000000f85ad0300004839d17522e9510100000f1f004883b878080000000f85920300004839c20f84b10000004889c1488b81700800004885c075da4883827808000001833d47592b0000740bf0ff0db24d2b00750aeb22ff0da84d2b00741a488d3d9f4d2b004881ec80000000e8b3af02004881c48000000090488b826808000064498910488905414d2b004883c4084889d05b5dc30f1f8000000000488b15992e2b00483915e22e2b000f83fafdffffe8afa9020085c00f8e89000000c1e0034898e9d5fdffff0f1f4400004883c40831d24889d05b5dc30f1f40004881c170080000488b8070080000488901e948ffffff48c705cf4c2b0000a86c00ba00a86c00e9c0fdffff488d4a014889d064833c2518000000007401f0480fb10d1a2e2b004839d07448488b150e2e2b00488b059f4c2b00e970fdffff488b8368080000e9e1fdffff48c705834c2b0010000000488b15e42d2b00b810000000e948fdffff4889d0b928c66c00e974ffffff488b35062e2b00488dbdc0080000e822f7ffff4885c04989c00f8458020000498d5020498d4078498d88680800004989100f1f400048894018488940104883c0104839c875ef4881fa00a86c000f840b020000418b402483c80283c8014c89c649c780980800000100000041894024498b4010498d88b0080000480105fc4b2b0083e60f498980a8080000498980a008000074074829f14883c1104c01c0498948784829c84883c801488941089048c7c0d8ffffff41b9010000004531d241c74020000000004489ce64488b18644889104489d0833d46572b0000740cf00fb135a04b2b00750beb230fb135954b2b00741a488d3d8c4b2b004881ec80000000e880ad02004881c480000000488b05ba352b0049898088080000488915ac352b00833df9562b0000740bf0ff0d544b2b00750aeb22ff0d4a4b2b00741a488d3d414b2b004881ec80000000e865ad02004881c4800000004489ce4489d0833dbd562b0000740cf00fb135274b2b00750beb230fb1351c4b2b00741a488d3d134b2b004881ec80000000e8f7ac02004881c4800000004885db741b488b83780800004885c00f84c80000004883e80148898378080000833d65562b0000740bf0ff0dd04a2b00750aeb22ff0dc64a2b00741a488d3dbd4a2b004881ec80000000e8d1ac02004881c480000000be0100000031c0833d28562b00007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e86eac02004881c4800000004885d20f85f5fcffff64833c2518000000007401f048ff0d932b2b0031d2e9dbfcffff0f1f4000b9c0314a00baee020000bee8214a00bf82224a00e877f4ffff48c705344a2b0080000000418b4024e9e8fdffffe8c188feff488b358f2b2b00bfc0080000e8adf4ffff4885c04989c00f858bfdffffeb910f1f440000662e0f1f840000000000904881ff00a86c000f848a0000004889fa833d64552b00007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8dcab02004881c4800000008b05832b2b0083e004754abe01000000833d2a552b0000740cf00fb135642b2b00750beb230fb135592b2b00741a488d3d502b2b004881ec80000000e864ab02004881c480000000b800a86c00c30f1f800000000031c0c30f1f440000534889f3833dd9542b0000740bf0ff0d142b2b00750aeb22ff0d0a2b2b00741a488d3d012b2b004881ec80000000e845ab02004881c480000000e899f6ffff4885c074025bc34889dfbe00a86c005be974f9ffff0f1f400041564155415455534883ec20488b3d152b2b00488b1d36342b004881ff58a86c000f8415010000488b4708a80275114889c24883e2f84883fa1f0f87d00000008b058e2a2b008b2df4292b0083c80489057f2a2b0089e883e00583f8050f846d01000040f6c5010f85e300000083e5020f858d01000031ffff15e2322b004989c54889c54183e50f7576488b05e7292b00488d53ff498d440520488d4c05004801c34821ca4829d34889dfff15af322b004885c04989c40f842e010000488b05ec472b004885c07402ffd04c2b25ee292b004c01ed31c048892d4a2a2b004901dc4c29eb4883cb014c892561322b0048895d084883c4205b5d415c415d415ec3b8100000004c29e84989c5e97affffffa8010f8428ffffff8b05b6292b00a802751a488b0d27322b0048030d90292b004801fa4839ca0f850affffff4883c42031c05b5d415c415d415ec30f1f440000488d74241031c9ba10000000c644241000e86aa203004839e04989c476254889c24889c7be300000004829e24c8d70ff4829d7e89884feff488d4424ff4c29f04901c4488b05f6532b0089efba78224a004d89e0b99b224a00bee8254a00488b004885c0480f45d083e70231c0e81e99ffffe9affeffff660f1f84000000000089efba9b224a00be7ccc4b0083e70231c0e8fa98ffffe98bfeffff48c7c0d0ffffff64c7000c000000b8ffffffffe9f0feffffe8785effff0f1f8400000000004155415455534883ec28488b47084889c64883e6f8a8020f8409010000488b074889fa4801c64829c7488b0510322b004889f94809f14883e8014885c87529f0ff0d42282b004889f048f7d8f048010544282b00e8677f02004883c4285b5d415c415dc30f1f40008b1dc2272b0089d883e00583f8050f848f000000f6c301750f83e30274d3e8e55dffff0f1f440000488d7a10488d74241031c9ba10000000c644241000e816a103004839e04889c576254889c24889c7be300000004829e24c8d68ff4829d7e84483feff488d4424ff4c29e84801c5488b05a2522b00ba78224a004989e8b910264a00bee8254a00488b004885c0480f45d083e30231c089dfe8ca97ffffe94effffff83e302ba10264a00be7ccc4b0089df31c0e8af97ffffe933ffffffb9b8304a00ba0f0b0000be08224a00bf11224a00e8f1efffff9048833db0452b00000f8426070000415741564989fe4155415455534883ec6864833c2518000000007401f0834f0401488d4750488d7424404c8d57584c8d5f084889442408b8010000004829f04889442410660f1f44000031db49871b4885db0f84710100004c891c244d89d7e9a6000000660f1f440000488b45084d01ec4883e0f8483b4405000f85220200004c8b6d10488b4518493b6d180f85a0010000483b68100f859601000048817d08ff030000498945184c8968107614488b45204885c00f85070400000f1f8000000000498b46684981fcff03000049895e6848895818761048c743200000000048c74328000000004c89e24c897b18488943104883ca014d85c9488953084e8924234c89cb0f84b8000000488b43084c8b4b104989c44983e4fa4a8d2c234c8b6d084983e5f8a8017559488b034829c34901c4488b43084883e0f8483b04030f85260100004c8b5b10488b4318493b5b180f859c000000483b58100f859200000048817b08ff030000498943184c8958107610488b43204885c00f85030300000f1f00493b6e58741a42f6442d08010f84d6feffff48836508fee924ffffff0f1f40004d01ec4983cc014d85c94c89630849895e584c89cb0f854dffffff0f1f4400004c8b1c244d89fa4983c308498d43f848394424080f856efeffff4883c4685b5d415c415d415e415fc30f1f80000000004d85f6448b1de6242b00740541834e04044489d883e00583f8050f847f04000041f6c3010f85960100004183e3020f845cffffffe8f75affff0f1f80000000008b3daa242b0041834e040489f883e00583f8050f846c0400004189fd4183e50283e7010f85af0000004585ed0f845efeffffebc00f1f40004d85f6448b1d6e242b00740541834e04044489d883e00583f8050f845004000041f6c3010f856e0200004183e3020f84a6feffffeb866690448b1d39242b0041834e04044489d883e00583f8050f844304000041f6c3010f850b03000041f6c3020f8555ffffff4c8b6d10488b451849396d180f85dffdffff483b68100f84affdffff4489df41834e04044189fd4183e50283e7010f8456ffffff0f1f440000488d74245031c94889efba100000004c894c2418c644245000e84a9d03004889c5488d4424404c8b4c24184839c5763c488b442410488d4dff4889efbe300000004c894c242048894c2418488d14084829d7e8617ffeff488b4c2418488d44243f4c8b4c24204829c84801c5488b05b54e2b00ba78224a004989e8b9d5224a00bee8254a004489ef4c894c2418488b004885c0480f45d031c0e8da93ffff4c8b4c2418e910fdffff488d74245031c9ba100000004889df44895c24204c894c2418c644245000e89d9c03004989c0488d4424404c8b4c2418448b5c24204939c07650488b442410498d48ff4c89c7be3000000044895c24304c894c242848894c24204c89442418488d14084829d7e8a57efeff488b4c2420488d44243f4c8b442418448b5c24304c8b4c24284829c84901c0488b05ef4d2b004489dfba78224a00b9d5224a00bee8254a004c894c2418488b004885c0480f45d083e70231c0e81493ffff4c8b4c2418e90afdffff662e0f1f840000000000483b58280f85dd020000488b5328483b5a200f85cf02000049837b20000f8403030000488b532848895028488b532848894220e9c8fcffff0f1f840000000000483b68280f8506030000488b5528483b6a200f85f802000049837d20000f8427030000488b552848895028488b552848894220e9c8fbffff0f1f840000000000488d74245031c9ba100000004889df44895c24204c894c2418c644245000e84d9b03004989c0488d4424404c8b4c2418448b5c24204939c07650488b442410498d48ff4c89c7be3000000044895c24304c894c242848894c24204c89442418488d14084829d7e8557dfeff488b4c2420488d44243f4c8b442418448b5c24304c8b4c24284829c84901c0488b059f4c2b004489dfba78224a00b9b8224a00bee8254a004c894c2418488b004885c0480f45d083e70231c0e8c491ffff4c8b4c2418e97cfbffff662e0f1f840000000000488d74245031c9ba100000004889ef44895c24204c894c2418c644245000e87d9a03004989c5488d4424404c8b4c2418448b5c24204939c57646488b442410498d4dff4c89efbe3000000044895c24284c894c242048894c2418488d14084829d7e88a7cfeff488b4c2418488d44243f448b5c24284c8b4c24204829c84901c5488b05d94b2b004489dfba78224a004d89e8b9b8224a00bee8254a004c894c2418488b004885c0480f45d083e70231c0e8fb90ffff4c8b4c2418e9eff9ffff4489dfbad5224a00be7ccc4b0083e70231c04c894c2418e8d590ffff4c8b4c2418e9cbfaffff83e702bad5224a00be7ccc4b0031c04c894c2418e8b290ffff4c8b4c2418e9e8f9ffff4489dfbab8224a00be7ccc4b0083e70231c04c894c2418e88c90ffff4c8b4c2418e944faffff4489dfbab8224a00be7ccc4b0083e70231c04c894c2418e86690ffff4c8b4c2418e95af9ffff488d4f58488d97480800004889c8660f1f44000048894018488940104883c0104839c275ef4881ff00a86c000f84930200008b470483c80283c80148894f58894704c34d85f6448b056f1f2b00740541834e04044489c283e20583fa050f848502000041f6c0010f85a30000004183e0020f8589faffff49837b20000f85fdfcffff4839c30f845002000049894320488b432849894328488b43204c895828488b43284c895820e9b0f9ffff448b1d091f2b0041834e04044489da83e20583fa050f846202000041f6c3010f852a0100004183e3020f8525faffff49837d20000f85d9fcffff4839c50f842d02000049894520488b452849894528488b45204c896828488b45284c896820e98cf8ffff488d74245031c9ba100000004889df44894424284c895c24204c894c2418c644245000e8149803004889c1488d4424404c8b4c24184c8b5c2420448b4424284839c1765a488b4424104c8d51ff4889cfbe30000000448944243c4c895c24304c894c24284c895424204a8d141048894c24184829d7e8127afeff4c8b542420488d44243f488b4c2418448b44243c4c8b5c24304c8b4c24284c29d04801c1488b0557492b004489c7ba78224a004989c8bee8254a00b930264a004c895c24204c894c2418488b004885c0480f45d031c083e702e8748effff488b43204c8b4c24184c8b5c2420e979fbffff488d74245031c9ba100000004889ef44895c24204c894c2418c644245000e82e9703004989c0488d4424404c8b4c2418448b5c24204939c07650488b442410498d48ff4c89c7be3000000044895c24304c894c242848894c24204c89442418488d14084829d7e83679feff488b4c2420488d44243f4c8b442418448b5c24304c8b4c24284829c84901c0488b0580482b004489dfba78224a00b930264a00bee8254a004c894c2418488b004885c0480f45d031c083e702e8a58dffff488b45204c8b4c2418e9effaffff48c705b43b2b00800000008b057a1d2b00e95dfdffff4d895b284d895b20e974f7ffff4489c731c0ba30264a0083e702be7ccc4b004c895c24204c894c2418e8538dffff488b43204c8b4c24184c8b5c2420e958faffff4d896d284d896d20e973f6ffff4489df31c0ba30264a0083e702be7ccc4b004c894c2418e8178dffff488b45204c8b4c2418e961faffff660f1f8400000000004154554989f453488b47584889fb4885c00f84f4000000488b6808488d7b084c8d43584531d24531c94889e94883e1f8488b074885c074200f1f840000000000488b5008488b40104183c2014883e2f84901d14885c075e84883c7084c39c775cf4c8d9b480800004c01c9bf01000000498b40184939c0741e0f1f8000000000488b5008488b401883c7014883e2f84801d14939c075e94983c0104d39c375d0488b9380080000418b44241c450154240841017c240401d041014c24204101142429c845014c24184881fb00a86c00418944241c74055b5d415cc38b05d71b2b0083e5f85b418944240c488b05d71b2b004189442410488b05db1b2b0041896c24245d4189442414415cc3e860f4ffff488b4358e9fefeffff0f1f80000000004885ff0f841b040000415741564989f841554154be01000000555331c04883ec38833d64452b0000740cf00fb1359e1b2b00750beb230fb135931b2b00741a488d3d8a1b2b004881ec80000000e89e9b02004881c48000000041f6c00f0f8535040000498d58f0498b40f84889df4889d948c1e90b48c1ef034889c231cf4883e2f8b9020000004080ff010f44f9a8020f849a030000488b05b3242b00488d48ff4c89c04821c8488d70f048f7c6efffffff7434488d70ff4881fefe1f00007727488d70c048f7c6bfffffff741a488db000ffffff48f7c6fffeffff0f855e060000660f1f440000498b40f883e0034883f8020f859f030000498b40f04889de4829c64801d04809f04885c80f85860300004883ea01400fb6ff488d34130fb6064839f84889c1743f4885c00f8466030000488d48104839ca731be9580300004885c00f844f030000488d48104839d10f87420300004829c2488d34130fb6064839f84889c175d8f7d14885db880e0f84230300004d8b60f841f6c4020f85550200004c89e54883e5f84889e848f7d84839c30f87e7040000f6c30f0f85de0400004883fd1f0f866405000041f6c4080f855a050000483b2d4b382b000f86a5030000488b055e1a2b004c8d342b448b2dff192b004839c30f849406000041f6c5020f84af060000498b4608a8010f84c20600004989c74983e7f84883f8100f864e0600004c3b3d44222b000f83410600008b35ec372b0085f60f85b00600004183e4010f858e000000498b40f04829c34801c5488b43084883e0f8483b04030f851a0700004c8b6310488b4318493b5c24180f858b060000483b58100f858106000048817b08ff03000049894424184c8960107642488b43204885c07439483b58280f85920a0000488b5328483b5a200f85840a000049837c2420000f844c0a0000488b532848895028488b5328488942200f1f4400004c3b3569192b000f84b805000043f6443e08010f8597040000498b46084883e0f8493b04060f85f80600004d8b6610498b46184d3b7424180f852a0600004c3b70100f852006000049817e08ff03000049894424184c896010760d498b46204885c00f853b0800004c01fd488b050e192b00448b2da3182b0041bc88264a004881781858a86c000f85cd0200004881fdff0300004889431048c7431858a86c00761048c743200000000048c743280000000048891dc7182b00488958184889e84883c8014889430848892c2b4881fdffff00000f86af020000f6053c182b00010f8423050000488b0583182b00488b40084883e0f8483b05bc172b000f8286020000488b3db7172b00ba80b06c00be58a86c00e8f0e5ffffe96b0200000f1f00833dad412b0000740bf0ff0de8172b00750aeb22ff0dde172b00741a488d3dd5172b004881ec80000000e8199802004881c4800000004889dfe8faeeffff4883c4385b5d415c415d415e415ff3c3662e0f1f8400000000008b0d9e172b0083e102751c488b357e172b004839f3725148033502202b004c8d0c134939f173414883fa1f763ba808753741f64410f801742fa8010f858f000000498b40f0a80f751f85c94889d90f84a40200004829c1488b49084883e1f84839c8746c0f1f4000833ded402b0000740bf0ff0d28172b00750aeb22ff0d1e172b00741a488d3d15172b004881ec80000000e8599702004881c4800000008b1d6c162b00830df9162b000489d883e00583f8050f84d7040000f6c3010f858002000083e3020f841bffffffe8804cffff4883c207400fb6ff488d34130fb6064839f84889c10f844dfcffff4885c00f8474ffffff488d48104839ca7321e966ffffff660f1f4400004885c00f8457ffffff488d48104839d10f874affffff4829c2488d34130fb6064839f84889c175d8e903fcffff0f1f00498b4428f84883f8100f86a10200004883e0f8483b05ce1e2b000f83900200008b3576342b0085f60f85c802000064833c2518000000007401f083252b162b00fec1ed04beffffffff8d45fe488b14c508a86c004889c5488d0cc508a86c004839d37507eb3766904889c24885d274098b4208c1e8048d70fe4989104889d064833c2518000000007401f0480fb1194839d00f84300200004839c375cb448b2dc8152b0041bcb0264a008b2d28152b004183cd0444892db1152b0089e883e00583f8050f84c701000040f6c501755983e5020f85bbfeffff833d453f2b0000740bf0ff0d80152b00750aeb22ff0d76152b00741a488d3d6d152b004881ec80000000e8b19502004881c480000000e99bfdffff0f1f440000448b2d4d152b0041bcf2224a00eb8390488d7b104c8d6c2410488d74242031c9ba10000000c644242000e8218e03004c39e84889c376254889c24889c7be300000004c29ea4c8d70ff4829d7e84f70feff488d44240f4c29f04801c3488b05ad3f2b0089efba78224a004989d84c89e1bee8254a00488b004885c0480f45d083e70231c0e8d784ffffe932ffffff6690448b2dbd142b0041bc0a234a00e9f0feffff660f1f4400004829c1483b0d8e142b000f834ffdffffe95bfdffff0f1f00488db000fcffff48f7c6fffbffff0f8494f9ffff483d001000000f8488f9ffffe933fdffff0f1f0049836608fee9b1fbffff4c8d642410488d74242031c9ba100000004c89c7c644242000e8408d03004c39e04889c576254889c24889c7be300000004c29e24c8d68ff4829d7e86e6ffeff488d44240f4c29e84801c5488b05cc3e2b00ba78224a004989e8b9f2224a00bee8254a00488b004885c0480f45d083e30231c089dfe8f483ffffe925fcffff0f1f800000000089ef4c89e2be7ccc4b0083e70231c0e8d483ffffe92ffeffff0f1f8000000000448b2db5132b0041bc60264a00e9e8fdffff660f1f44000039f50f8408feffff4885d2448b2d92132b0041bc1f234a000f84f2fdffffe9bffdffff41bc40274a00e9b4fdffff488d55f04c89c7e8b66efeff4989c0e924fdffff41bcd8264a00e995fdffff4c01fd4889e84883c8014889430848891d96132b00e9edfaffff488b50084883e2f84801d04939c60f823df9ffff41bcf8264a00e95cfdffff41bc18274a00e951fdffffbf00a86c00e885ebffffe9cefaffff488d55f04c89c7e8446efeff4989c0e93cf9ffff448b0d55122b00830de2122b00044489c883e00583f8050f84d203000041f6c1010f85310100004183e1020f84a3f9ffffe9e1fbffff660f1f440000448b2d19122b00830da6122b00044489e883e00583f8050f847a03000041f6c5010f858c0100004183e5020f84cff9ffffe9a5fbffff662e0f1f840000000000448b0dd9112b004183cd0444892d62122b004489c883e00583f8050f84bb03000041f6c1010f850902000041f6c1020f8566fbffff4c8b6310488b431849395c24180f8563ffffff483b58100f84b1f8ffff44892d1b122b00e943ffffff669083e302baf2224a00be7ccc4b0089df31c0e80a82ffffe93bfaffff448b2d5e112b008b15ec112b004489e883ca0483e0058915dd112b0083f8050f845803000041f6c5010f852102000041f6c5020f85e7faffff4d8b6610498b46184d3b7424180f8520ffffff4c3b70100f84cff8ffff89159d112b00e901ffffff4c8d642410488d74242031c9ba100000004889df44890c24c644242000e8728a03004c39e04989c5448b0c2476344c89ea488d40ff4c89ef4c29e2be3000000044894c24084829d748890424e8936cfeff488d44240f482b0424448b4c24084901c5488b05eb3b2b004489cfba78224a004d89e8b9d5224a00bee8254a00488b004885c0480f45d083e70231c0e81281ffffe9e5f7ffff4c8d442410488d74242031c9ba100000004c89f7c6442420004c890424e8db8903004c8b04244989c44c39c076254889c24889c7be300000004c29c24c8d70ff4829d7e8056cfeff488d44240f4c29f04901c4488b05633b2b004489efba78224a004d89e0b9d5224a00bee8254a00488b004885c0480f45d083e70231c0e88a80ffffe9c5f7ffff4c3b70280f8537020000498b56284c3b72200f852902000049837c2420000f84f5010000498b562848895028498b562848894220e98cf7ffff4c8d642410488d74242031c9ba100000004889df44890c24c644242000e81a8903004c39e04989c5448b0c2476344c89ea488d40ff4c89ef4c29e2be3000000044894c24084829d748890424e83b6bfeff488d44240f482b0424448b4c24084901c5488b05933a2b004489cfba78224a004d89e8b9b8224a00bee8254a00488b004885c0480f45d083e70231c0e8ba7fffffe91bf6ffff4c8d642410488d74242031c9ba100000004c89f7c644242000e8878803004c39e04989c076344c89c24c89c7488d40ff4c29e2be300000004c894424084829d748890424e8ac6afeff488d44240f482b04244c8b4424084901c0488b05043a2b004489efba78224a00b9b8224a00bee8254a00488b004885c0480f45d083e70231c0e82e7fffffe92cf6ffff4489efbad5224a00be7ccc4b0083e70231c0e8127fffffe94df6ffff4489cfbad5224a00be7ccc4b0083e70231c0e8f67effffe9c9f5ffff4839c30f84c50000004989442420488b43284989442428488b43204c896028488b43284c896020e99df5ffff8b3d1f0e2b00b900a86c004889dabe30264a00e89ddbffff488b4320e95bf5ffff4489cfbab8224a00be7ccc4b0083e70231c0e88d7effffe9eef4ffff4489efbab8224a00be7ccc4b0083e70231c0e8717effffe96ff5ffff4939c674534989442420498b46284989442428498b46204c896028498b46284c896020e984f5ffff8b3d9e0d2b00b900a86c004c89f2be30264a00e81cdbffff498b4620e9b6fdffff4d896424284d89642420e9ecf4ffff4d896424284d89642420e945f5ffff0f1f440000415741564155415455534889fd4889f34883ec58488b4608895424044989c44983e4f84c89e248f7da4839d60f874e05000040f6c60f0f85440500004983fc1f0f86d2050000a8080f85ca0500004c3b25d32b2b000f87050100004a8d1426488b42084883f8100f86a30700004883e0f8483b87800800000f83920700008b35a02b2b004c8d431085f60f85500a000064833c2518000000007401f0836504fe41c1ec04418d4424fe488b54c5084989c4488d74c5084839d374518b7c240485ffbfffffffff410f95c1eb070f1f40004889c24885d20f95c14420c974098b7a08c1ef0483ef02488953104889d064833c2518000000007401f0480fb11e4839d00f84590600004839c375c44c89c741bdb0264a000f1f004885ed448b253e0c2b007404834d04044489e083e00583f8050f84b906000041f6c4010f854f0400004183e4020f85990800004883c4585b5d415c415d415e415fc3660f1f440000a8020f85e80500008b44240485c00f84ac030000488b47584e8d2c264839c60f84b11200004531c9c744242800000000f64504020f84d6090000498b4508a8010f84ea0900004989c74983e7f84883f8100f86390800004c3bbd800800000f832c0800008b355a2a2b0085f60f85c9090000f64308010f858c000000488b034829c34901c4488b43084883e0f8483b04030f85540a0000488b4310488b5318483b58180f85b0090000483b5a100f85a609000048817b08ff03000048895018488942107643488b53204885d2743a483b5a280f85c3100000488b4b28483b59200f85b510000048837820000f84ff100000488b432848894228488b4328488950200f1f80000000004c396d580f84e608000043f6443d08010f8562050000498b45084883e0f8493b4405000f850f0a0000498b4510498b55184c3968180f85130700004c8b42104d39e80f850607000049817808ff03000048895018488942100f87fa0500004d01fc488b4568488d5558483b50180f85150900004981fcff0300004889431048895318761048c743200000000048c743280000000048895d68488958184c89e04883c801488943084e8924234981fcffff00000f86a0030000f64504010f84de0500004881fd00a86c000f84dd0800004c8b65584c89e74881e7000000fc483b2f0f85cf100000488b05430a2b004c8b2d14142b004889442408488d47204939c40f85c20200004c8b7f08498b4f10488d51f0498d041783e00f4829c24c01fa48837a08010f85aa0e0000488d5c2430be010000004989d64829de4889742410e9d90000000f1f4000be000000044d89f4e83361020041f6460801755c4d2b26498b4424084883e0f8493b04040f85a60300004d8b742410498b4424184d3b66180f85220300004c3b60100f851803000049817c2408ff030000498946184c8970107615498b4424204885c00f85df0600000f1f8000000000498d041c498d55ff4885d00f85a40e00004c89fa490357104839d00f857b0e0000498d47204883cb014c89655849895c24084939c40f85dd010000498b57084c89ff488b4a104c8d71f04a8d043283e00f4929c64901d649837e08010f85ba0d00004989d74d2b36498b56084889d64883e6f84801f04c8d48104883c00f4883f83e0f877b0d000083e2014c89cb750349031e488d43ff483dfeffff030f87e00d00004889d84829c8488d9000000004488b4424084a8d4428204839c20f824d010000488b47104829858008000048290513272b0090488d8700000004483905fc262b000f85a6feffff48c705eb262b0000000000e996feffff660f1f440000be01000000833d80322b00007409f00fb175007508eb1d0fb175007417488d7d004881ec80000000e8c38802004881c480000000488b45584e8d2c234839c30f84e305000041b901000000c744242801000000e918fcffff0f1f840000000000488d7b1041bdf2224a00e989fbffff90488d6c2430488d74244031c9ba10000000c644244000e8458103004839e84889c376254889c24889c7be300000004829ea4c8d70ff4829d7e87363feff488d44242f4c29f04801c3488b05d1322b004489e7ba78224a004989d84c89e9bee8254a00488b004885c0480f45d083e70231c0e8fa77ffff4883c4585b5d415c415d415e415fc30f1f00488d7b1041bd0a234a00e9f1faffff660f1f840000000000498b5c24084989ff4883e3f848391d4d072b00777b4889d84883e8217872488b4c24084839c173684829c849f7dd4921c5745d4d8b77104d29ee4983fe1f7e508b35da062b0085f60f881e0b00000f95c084c04b8d3c370f85e40a0000ba040000004c89eee8965e02004d897710904c292d62252b004c29eb4c29ad800800004883cb0149895c24080f1f80000000008b54240485d20f857ffaffff8b44242885c00f842c0d0000833dcd302b00007408f0ff4d007507eb1cff4d007417488d7d004881ec80000000e8428702004881c480000000e941faffff660f1f4400008b3d4a062b00834d040489f883e00583f8050f84d30400004189fe4183e60283e7010f85100300004585f60f84dffcffffe99e020000662e0f1f8400000000004889f7e8d8ddffffe9eef9ffff0f1f004439e70f84e2f9ffff84c90f84daf9ffff4c89c741bd1f234a00e999f9ffff90448b15d9052b00834d04044489d083e00583f8050f846605000041f6c2010f857101000041f6c2020f85360200004d8b742410498b4424184d3b66180f855efcffff4c3b60100f842cfcffff4489d7834d0404e950ffffff0f1f84000000000049836508fee9dffaffff660f1f4400004489e74c89eabe7ccc4b0083e70231c0e8fb75ffffe941f9ffff660f1f440000448b4424044585c00f8592000000be010000008b442404833d7e2f2b00007409f00fb175007508eb1d0fb175007417488d7d004881ec80000000e8c18502004881c480000000488b42084883f8100f86d40200004883e0f8483b85800800000f83c3020000833d302f2b00007408f0ff4d007507eb1cff4d007417488d7d004881ec80000000e8a58502004881c480000000e9d7f7ffff660f1f840000000000488d7b1041bd60264a00e959f8ffff90498b50204885d20f84f9f9ffff4c3942280f85cd0a0000498b48284c3941200f85bf0a000048837820000f848a0a0000498b402848894228498b402848895020e9c1f9ffff0f1f004889efe860ddffffe915faffff488d74244031c9ba100000004c89e74489542418c644244000e8bd7d03004989c6488d442430448b5424184939c6763c488b442410498d4eff4c89f7be30000000448954242048894c2418488d14084829d7e8d45ffeff488b4c2418488d44242f448b5424204829c84901c6488b05282f2b004489d7ba78224a004d89f0b9b8224a00bee8254a00488b004885c0480f45d083e70231c0e84f74ffffe924faffff448b15a3032b00834d04044489d083e00583f8050f847a07000041f6c2010f85620400004183e2020f84e2f8ffffe8b739ffff0f1f800000000041bd40274a00448b5424044585d20f85480a00004584c90f843f0a0000833d982d2b00007408f0ff4d007507eb1cff4d007417488d7d004881ec80000000e80d8402004881c480000000488d7b10e9d5f6ffff0f1f440000488d74244031c9ba100000004c89e7c644244000e88f7c03004989c0488d4424304939c0763c488b442410498d48ff4c89c7be300000004c8944241848894c2420488d14084829d7e8ab5efeff488b4c2420488d44242f4c8b4424184829c84901c0488b05ff2d2b00ba78224a00b9d5224a00bee8254a004489f7488b004885c0480f45d031c0e82c73ffffe947f9ffff0f1f8000000000498d5424f04c89c7e8535efeff4989c0e99bf5ffff0f1f004c3b60280f851a020000498b5424284c3b62200f850b02000049837e20000f8434020000498b54242848895028498b54242848894220e9edf8ffff0f1f44000041bd60264a00e9cafeffff0f1f44000041bdd8264a00e9bafeffff0f1f4400004d01fc4c89e04883c8014889430848895d58e9a4f7ffff90488b50084883e2f84801d04939c50f8216f6ffff41bdf8264a00e967feffff9041bd18274a00e95bfeffff498d5424f0488d7b1044884c2408e8925dfeff440fb64c2408e919f6ffff448b15a0012b00834d04044489d083e00583f8050f845005000041f6c2010f85a00100004183e2020f8481f6ffffe9f8fdffff0f1f400041bd88264a00e9fbfdffff83e702bad5224a00be7ccc4b0031c0e8f171ffffe90cf8ffff488b052d022b00488b40084883e0f8483b0566012b000f8290faffff488b3d61012b00ba80b06c00be58a86c00e89acfffffe975faffff448b150e012b00834d04044489d083e00583f8050f84f005000041f6c2010f858902000041f6c2020f856bfdffff488b4310488b5318483b58180f8552ffffff483b5a100f847ef5ffff834d0404e935ffffff6690448b15b9002b00834d04044489d083e00583f8050f84c205000041f6c2010f85f302000041f6c2020f8516fdffff498b4510498b55184c3968180f85fafcffff4c8b42104d39c50f84c3f5ffff834d0404e9dafcffff662e0f1f8400000000004489d7bab8224a00be7ccc4b0083e70231c0e8e970ffffe9bef6ffff448b153d002b00834d04044489d283e20583fa050f84f905000041f6c2010f85360300004183e2020f84c7fdffffe995fcffff904939c40f849505000049894620498b44242849894628498b4424204c897028498b4424284c897020e9a3f6ffff4c8d5c2430488d74244031c9ba100000004889df44884c241844895424104c895c2408c644244000e8467903004c8b5c24084989c0448b542410440fb64c24184c39d8763d4c89c24c89c7488d40ff4c29dabe300000004c894424084829d74989c6e85c5bfeff488d44242f4c8b442408440fb64c2418448b5424104c29f04901c0488b05aa2a2b004489d7ba78224a00b9d5224a00bee8254a0044884c2408488b004885c0480f45d083e70231c0e8cf6fffff440fb64c2408e92cf4ffff4c8d5c2430488d74244031c9ba100000004c89ef44884c241844895424104c895c2408c644244000e8877803004c8b5c24084989c0448b542410440fb64c24184c39d8763a4889c24889c7be300000004c29da4c8d68ff48894424084829d7e8a05afeff488d44242f4c8b442408440fb64c2418448b5424104c29e84901c0488b05ee292b004489d7ba78224a00b9d5224a00bee8254a0044884c2408488b004885c0480f45d083e70231c0e8136fffff440fb64c2408e9cef3ffff4c8d5c2430488d74244031c9ba100000004889df44884c241844895424104c895c2408c644244000e8cb7703004c8b5c24084989c0448b542410440fb64c24184c39d8763d4c89c24c89c7488d40ff4c29dabe300000004c894424084829d74989c6e8e159feff488d44242f4c8b442408440fb64c2418448b5424104c29f04901c0488b052f292b004489d7ba78224a00b9b8224a00bee8254a0044884c2408488b004885c0480f45d083e70231c0e8546effff440fb64c2408e940f2ffff4c8d5c2430488d74244031c9ba100000004c89ef44884c241844895424104c895c2408c644244000e80c7703004c8b5c24084989c0448b542410440fb64c24184c39d8763d4c89c24c89c7488d40ff4c29dabe300000004c894424084829d74989c6e82259feff488d44242f4c8b442408440fb64c2418448b5424104c29f04901c0488b0570282b004489d7ba78224a00b9b8224a00bee8254a0044884c2408488b004885c0480f45d083e70231c0e8956dffff440fb64c2408e91bf2ffff488d74244031c9ba100000004c89e74489542418c644244000e85c7603004989c0488d442430448b5424184939c07646488b442410498d48ff4c89c7be30000000448954242c4c8944241848894c2420488d14084829d7e86e58feff488b4c2420488d44242f4c8b442418448b54242c4829c84901c0488b05bd272b004489d7ba78224a00b930264a00bee8254a00488b004885c0480f45d031c083e702e8e76cffff498b442420e9eef9ffff4489d7bad5224a00be7ccc4b0083e70231c044884c2408e8c16cffff440fb64c2408e91ef1ffff4489d7bad5224a00be7ccc4b0083e70231c044884c2408e89a6cffff440fb64c2408e955f1ffff4531c931d241b8ffffffffb9320000004c89eee8a75202004883f8ff0f842df5ffff4d897718e9fef4ffff448b05e5f32a004585c0448905a3fb2a007564be00000800bf40284a00b8020000000f05483d00f0ffff0f872702000085c078434c63c8ba01000000488d7424304c89cf4489c00f05483d00f0ffff0f87f10100004885c07e0c4531c0807c243032410f94c044890547fb2a004c89cfb8030000000f058b0d37fb2a0085c90f95c0e95ef4ffffb9c8304a00ba37020000bee8214a00bf68274a00e824c4ffffb9c8304a00ba34020000bee8214a00bf4f234a00e80bc4ffff4489d7bab8224a00be7ccc4b0083e70231c044884c2408e88f6bffff440fb64c2408e97befffff4489d7bab8224a00be7ccc4b0083e70231c044884c2408e8686bffff440fb64c2408e9eeefffffb9c8304a00ba3a020000bee8214a00bf98274a00e8a4c3ffffb9c8304a00ba48020000bee8214a00bf08284a00e88bc3ffffb9c8304a00ba47020000bee8214a00bfc8274a00e872c3ffff4d8976284d897620e925f1ffff8b3d5ffa2a004889da4889e9be30264a0044884c24104889442408e8d5c7ffff488b5320440fb64c2410488b442408e917efffff4489d731c0ba30264a0083e702be7ccc4b00e8ba6affff498b442420e9c1f7ffff4839d30f84f900000048895020488b532848895028488b532048894228488b532848894220e9eeeeffff4939d00f84dc00000048895020498b502848895028498b502048894228498b502848894220e922efffff8b3db6f92a004c89c24889e9be30264a0044884c241848894424104c89442408e827c7ffff4c8b442408440fb64c2418488b442410498b5020e903f5ffff48c7c2d0fffffff7d8648902e90ffeffff48c7c2d0fffffff7d8648902e90ffeffffb9d8304a00bafe0f0000be08224a00bf6b234a00e843c2ffffb9d8304a00baf80f0000be08224a00bf3c234a00e82ac2ffff488d7e1041bdd8264a00448b2519f92a00e9d8ecffff488d7b10ebee4889402848894020e909eeffff4889402848894020e95aeeffff0f1f4000415741564155415455534889fd4883ec584885f64c8b3de5022b000f84bf02000048393d08f92a004889f30f868f010000c644240800488d43584d8d742f07488904244c89f848f7d84921c64c897424184c8b6b58498b45084989c44983e4f84d85e44f8d542500410f95c34c3b2c240f851a0100004584db0f85110100004c8d45204d39c40f83b70700004881fb00a86c000f84f70200004889ea4d89ee4c29e24981e6000000fc4883c2204885d20f8e42010000488b0543022b004d8b4e10488d4c02ff48f7d84821c84a8d0c084881f9000000040f871b010000498b7e184839f90f87a60100004c89f04c89ea4d89c64989c049894810904889c84c01c14c29c84801058d162b004c29e94889c64803b3800800004883c9014889b38008000049894d084839b38808000073074889b388080000488b42084883e0f84939c60f87580300004829e831c94881fb00a86c000f95c1488d342a4883cd0148c1e1024883c8014883c2104809e94889735848894af8488946084883c4584889d05b5d415c415d415e415fc30f1f40004983fc1f7611a801740d498d47ff4985c20f84d8feffffb9e8304a00ba5a090000be08224a00bfa0284a00e830c0ffff8b0586f72a0039057cf72a000f8d5ffeffff4d8d643f074c89f848f7d84921c44c39e70f829e060000c644240801e943feffff0f1f440000488b3529f72a00488d7d404c89442410e843c0ffff4885c04c8b4424100f849d020000488b4810488d502048010d6e152b004983ec204c89f74889184983e4f048897808488953584889ce4803b3800800004883e9204883c9014983fc1f4d89c64889b38008000048894828498d442410498d4c050048c74108010000000f87ec0100004889c74883cf0149897d08488901e998feffff904889ceba030000004c894424104829fe4c01f74c894c242848894c2420e8ee4d020085c04c8b4424100f8539ffffff488b4c24204c89f04c8b4c24284d89c6488b53584989c048894818e917feffff904d8d643f074d89fa49f7da4d21d44c39e70f83b70100004531c931ff41b8ffffffffb922000000ba030000004c89e6e8ac4c02004883f8ff0f8490010000488d5010f6c20f0f85860500004c89e14883c90248894808b901000000f00fc10d05f62a0083c1018b0504f62a0039c17e0af00fb10df8f52a0075ec4d89e2f04c0fc115f2f52a004d01e2488b05f0f52a004939c20f8601fefffff04c0fb115def52a000f84f2fdffffebdf660f1f440000f605edf52a0002488b058af52a004d89c6488d5405200f8434010000498d47ff49f7df4c897c24084801c2488904244c21fa4885d24989d70f8e490100004889d7488954241044885c24204c89542418ff152afe2a00488b5424104989c0904885c04c8b542418440fb65c24200f8472040000488b0556132b004885c00f853d030000ba0100000031c048833d4ef52a00000f84080300004c89fe480335cefd2a004d39c2488935c4fd2a000f855e01000084d20f84560100004d01fc488b1584f52a004983cc014d896508e9c6fcffff0f1f80000000004bc7442508110000004983cc0548c70110000000ba010000004c89ee4d8965084889dfe800e7ffff488bb380080000488b5358e987fcffff48c7c0d0ffffff64c7000c00000031d2e9c5fcffff0f1f00807c2408000f850d020000488b4424184839c54989c40f82f6030000c644240801e973fbffff6690498d47ff4c29e249f7df4c897c24084801c2488904244c21fa4885d24989d70f8fc9feffff488b04244c01e04801d048234424084989c74981ffffff0f004c897c2410770f48c74424100000100041bf00001000483b6c24100f837e010000488b7424104531c941b8ffffffff31ffb922000000ba0300000044885c24204c89542418e8584a02004883f8ff4989c00f8448010000830d08f42a00024885c04c8b542418440fb65c24200f842d010000488b4424104c01c00f94c2e97afeffff8b15def32a00f6c2020f85390100004d39c276094584db0f85b90100004d85e474104c89c04c29d04801c64889352efc2a004c89c283e20f0f8462010000b8100000004829d0498d3c0048897c24104c01e0488b0c244c8b542408498d14074c01c24801d14829d04921ca498d0c024885c94989cf0f88410200004889cf48890c24ff15e8fb2a004885c0488b0c240f8401020000488b1524112b00488b35bdfb2a004885d24c8b4424100f85bb0100004c29c04801ce4c89057af32a004901c74c89c24983cf014d85e44d8978084889358afb2a000f84abfaffff4983ec204983e4f04c89e04883c8014983fc1f498945084bc7442508110000004bc7442518110000000f867cfaffffba010000004c89eebf00a86c00e8d3e4ffff488b353cfb2a00488b150df32a00e957faffff4d89c6488bb380080000488b5358e944faffff0f1f4400004c89c183e10f0f85000200004531ff4885c00f8551ffffff4c89042431ffff1504fb2a004c8b04244c894424104885c0488b35e1fa2a0074a34c8b44241031c94531ffe921ffffff4c890539f22a00e9ecfcffff0f1f40004c8944241031c0e9a3feffff0f1f400044885c24204c894424184c89542410ffd04c8b5424104c8b442418440fb65c2420e99dfcffff83ca044c8d6c2430488d7424408915fbf12a0031c9ba100000004c89c7c644244000e8e36a03004c39e84989c476254889c24889c7be300000004c29ea4c8d78ff4829d7e8114dfeff488d44242f4c29f84901c4488b056f1c2b00ba78224a00bee8254a004d89e0b988294a00bf02000000488b004885c0480f45d031c0e89761ffff488b3500fa2a00488b15d1f12a00e91bf9ffff48894424104c8944240848890c24ffd2488b35ddf92a00488b0c244c8b442408488b442410e91bfeffff31ffff15d2f92a00e9d2feffffb9e8304a00ba5d090000be08224a00bf48294a00e894b9ffffb9e8304a00ba390a0000be08224a00bf72234a00e87bb9fffff60508f12a00020f8483fcffffe990fcffff4531c94183c8ff31ffb922000000ba030000004c89e6e81e4702004883f8ff0f8572faffffe938f9ffffb9e8304a00ba24090000be08224a00bf60284a00e826b9ffff4531c94183c8ff31ffb922000000ba030000004889c6e8db4602004883f8ff0f852ffaffffe9e0fbffffb9e8304a00ba590a0000be08224a00bfb0294a00e8e3b8ffff0f1f004883febf0f87630800004889f0415741564883c0174155415455534889c54883e5f04889fb4881ec980000004883f820b820000000480f42e84885ff48897424080f843a080000483b2d5a0e2b00777089efc1ef048d47fe488b4cc308488d34c34889c7488d56084885c974534c8b41104889c864833c2518000000007401f04c0fb146084839c84989c7752ee964020000660f1f440000498b4f104c89f864833c2518000000007401f0480fb10a4c39f80f843e0200004989c74d85ff75d84881fdff030000775a89e8c1e8048904248d4400fe488d44c360488d48084c8b79084883e8084c39f874704d85ff7463498b57184c3b7a100f851309000049834c2f08014881fb00a86c0048895108488942100f84ef01000049834f0804e9e50100004989ec49c1ec064983fc300f860c0700004989ec49c1ec094983fc140f877b070000418d44245b890424f643040175084889dfe895c7ffff4889e94889e84889ef48c1e90c48c1e80648c1ef0948894c244883c16e4889442430894c24544889e983c03048c1e90f48897c24408944243c83c75b48894c245889e883c177c1e804897c2450894c2468488d7c24704889e948c1e91289442438b80100000048894c24604829f883c17c4c8d6358894c246c488944242841bf10270000eb4e0f1f800000000089f1c1e9048d4409fe4898488d44c360488b78084c8d40f889c8ba01000000c1f805d3e24898099483580800004183ef014d89451849897d104c896f184d8968100f84940300004c8b6b704d39e50f8487030000498b75084d8b75184883fe100f8652010000483bb3800800000f87450100004883e6f84881fdff03000077094d39e60f848f0100004839f54c8973704d8966100f84a60400004881feff0300000f8659ffffff4889f048c1e8064883f8300f87900000008d48308d44005e4898488d44c360488d78f8488d5008488b40084839c70f84e50100004c8b42084883ce01498b5008f6c2040f85f10900004839d67373488b502849894520498955284c896a204c896828e90affffff418b4708c1e80483e80239c70f85260600008b05960b2b00498d4f1085c00f85710100004881c4980000004889c85b5d415c415d415e415fc3904889f048c1e8094883f8140f87970000008d485b8d8400b4000000e957ffffff488b5008f6c2047418e9840900006690488b4020488b5008f6c2040f85870600004839d672ea0f8464010000488b5028498945204889c7498955284c896828498b55284c896a204c8b4718e960feffff448b0d39ec2a00834b04044489c883e00583f8050f849304000041f6c1010f852c0100004183e1020f848dfeffffe9840500000f1f4400004889f048c1e80c4883f80a0f87d70000008d486e8d8400da000000e9affeffff0f1f8400000000004c3b6b600f8567feffff488d45204839c60f865afeffff4889f2498d442d004829ea4881faff0300004889436848894370488943604c8960104c896018761048c740200000000048c740280000000031c94881fb00a86c000f95c14883cd0148c1e1024809e949894d084889d14883c9014889480848891410498d4d108b05210a2b0085c00f848ffeffff488b54240834ff4889cf89c6e82447feff4889c1e976feffff0f1f40004d896d284d896d204989f8e948fdffff0f1f8400000000004889f048c1e80f4883f8040f87d20000008d48778d8400ec000000e9c7fdffff488b7810e9aefeffff0f1f8000000000488db42480000000498d7d1031c9ba1000000044894c2410c684248000000000e85b6403004989c0488d442470448b4c24104939c07646488b442428498d48ff4c89c7be3000000044894c24244c8944241048894c2418488d14084829d7e86d46feff488b4c2418488d44246f4c8b442410448b4c24244829c84901c0488b05bc152b004489cfba78224a00bee8254a00b982234a00488b004885c0480f45d083e70231c0e8e65affff498b7508e9b8fcffff4889f048c1e8124883f8020f879f0100008d487c8d8400f6000000e9e4fcffff4881fdff0300000f87920100008b04248d480101c0488d54c35889cfc1ef0589f88bb48358080000b801000000d3e039f0774085c07512eb3a0f1f40004883c21001c00f84dc05000085f074f04c8b7a184c39fa0f854f03000089c101c04883c210f7d121ce89f939f089b48b5808000076c08d470183f803773d89c28bb4935808000085f60f859c0200008d470283f804742489c28bb4935808000085f60f858302000083ff01740e8bb36408000085f60f85e5020000488b5358488d4d20488b42084883e0f84839c80f830c050000f64304010f85e20400004889dfe84ac2ffff8b4424384881fdff0300008904240f861ffbffff48837c2430308b44243c8904240f860cfbffff48837c2440148b4424508904240f86f9faffff48837c24480a8b4424548904240f86e6faffff48837c2458048b4424688904240f86d3faffff48837c24600241be7e000000440f4674246c44893424e9b8faffff0f1f800000000049834c2d08014881fb00a86c00740549834d08048b0562072b00498d4d1085c00f84ccfbffffe938fdffffb8fa000000b97e000000e945fbffff8b04248d4400fe488d44c360488b5008488d48084883e8084839c20f844dfeffff483b6a080f8743feffff4c8b7a28eb044d8b7f28498b57084989d64983e6f84c39f577ec4c3b79080f84da040000498b4f104c89f0483b5108750a4889d04989cf4883e0f84c89f74829ef4939040748893c240f85260600004d8b6f10498b47184d3b7d180f85c00400004c3b78100f85b604000049817f08ff030000498945184c896810760d498b47204885c00f850606000048833c241f0f87380400004b834c3708014881fb00a86c000f85e4f8ffffe9cefaffff660f1f440000418d442430890424e900f9ffff4489cfbe7ccc4b00ba82234a0083e70231c0e81c58ffff498b7508e9eef9ffff48c7c0d0ffffff31c964c7000c0000004889c8c331f64889efe865eeffff4885c00f84860000008b150a062b004889c185d20f8475faffff89d6488b5424084889c74080f6ffe80843feff4889c1e95afaffff4989ec49c1ec0c4983fc0a76544989ec49c1ec0f4983fc040f8743020000418d442477890424e962f8ffff89c289c7c1e20683ea0289d0488d54c358b801000000e906fdffff89ef4c89e2be7ccc4b0083e70231c0e86657ffff31c9e9f9f9ffff418d44246e890424e91ff8ffff41bcf0294a008b2da6e62a00834b040489e883e00583f80574be40f6c5010f85ca00000083e50274c3e8c41cffff0f1f4000babe000000bf03000000eb89498b47084883e0f84839c50f87340400004d8d2c074889c74829ef493b450048893c240f856c020000498b4710498b57184c3b78180f859a0100004c8b72104d39f70f858d01000049817e08ff0300004889501848894210760d498b56204885d20f85f703000048833c241f0f87c400000049834d08014881fb00a86c000f8529f7ffffe913f9ffff0f1f00b9f8304a00baef0d0000be08224a00bfc02a4a00e8cfaeffff41bc182a4a00e918ffffff4c8d6c2470488db42480000000498d7f1031c9ba10000000c684248000000000e82f5f03004c39e84889c376254889c24889c7be300000004c29ea4c8d70ff4829d7e85d41feff488d44246f4c29f04801c3488b05bb102b00ba78224a0089ef4c89e14989d8bee8254a00488b004885c0480f45d083e70231c0e8e555ffff31c9e978f8ffff488b53684c3962180f85f3010000498d042f4881fdff0300004c89601848895010488943684889421877044889436048813c24ff030000761048c740200000000048c740280000000031d24881fb00a86c00488b3c240f95c24883cd0148c1e2024809ea498957084889fa4883ca01488950084889fa48893c10e9e7f7ffff4889e848c1e812448d607c4883f802b87e000000410f46c4890424e90cf6ffff8b1599e42a00834b040489d083e00583f8050f843d0200004189d64183e60283e2010f85920100004585f60f8461feffffe9e0fdffff660f1f8400000000004889de4889efe865ebffff4885c00f8500fdffff31c9e97ff7ffff0f1f4400004829e831c94881fb00a86c000f95c1488d342a4883cd0148c1e1024883c8014809e94889735848894a0848894608488d4a108b05cc022b0085c00f843af7ffffe9a6f8ffff0f1f00b9f8304a00ba770e0000be08224a00bf9e234a00e8dfacffff448b0dd8e32a00834b04044489c883e00583f8050f84e202000041f6c1010f853002000041f6c1020f8528fdffff498b4710498b57184c3b78180f8592fdffff4c8b72104d39f70f8466fdffff4489ca834b0404e9fffeffff488b5368498d042f4c396218753048813c24ff0300004c8960184889501048894368488942180f8665feffffe950feffff498b47084883e0f8e930fbffff41bc482a4a00e991fcffff41bc702a4a00e986fcffff8b3d2ce32a004889d94c89fabed5224a00e8acb0ffffe94efbffffb9f8304a00badf0d0000be08224a00bf982a4a00e8feabffffb9f8304a00baeb0d0000be08224a00bfc02a4a00e8e5abffff4c8d5c2470488db4248000000031c9ba100000004c89ffc6842480000000004c895c2410e84c5c03004c8b5c24104989c04c39d876364c89c24c89c7488d40ff4c29dabe300000004c894424184829d74889442410e86b3efeff488d44246f482b4424104c8b4424184901c0488b05c20d2b00ba78224a00b9d5224a00bee8254a004489f7488b004885c0480f45d031c0e8ef52ffffe93dfcffff89d7be7ccc4b00bad5224a0083e70231c0e8d452ffffe922fcffffb9f8304a00ba8a0e0000be08224a00bfe82a4a00e816abffff4c3972280f856b010000498b4e284c3971200f855d01000048837820000f842c010000498b462848894228498b462848895020e9d1fbffff8b3dd8e12a004889d94c89fabeb8224a00e858afffffe9bff9ffff4c3b78280f8574010000498b57284c3b7a200f856601000049837d20000f8435010000498b572848895028498b572848894220e9c2f9ffff4c8d742470488db4248000000031c9ba100000004c89ff44894c2410c684248000000000e8f25a03004c39f04989c0448b4c241076404c89c24c89c7488d40ff4c29f2be3000000044894c24244829d74c894424184889442410e80c3dfeff488d44246f482b4424104c8b442418448b4c24244901c0488b055e0c2b004489cfba78224a00b9b8224a00bee8254a00488b004885c0480f45d083e70231c0e88851ffffe998faffff4489cfbab8224a00be7ccc4b0083e70231c0e86c51ffffe97cfaffff4c39f2744a48895020498b562848895028498b562048894228498b562848894220e994faffff8b3d9be02a004c89f24889d9be30264a004889442410e816aeffff498b5620488b442410e97afeffff4889402848894020e95efaffff4939c7744049894520498b472849894528498b47204c896828498b47284c896820e97cf8ffff8b3d3fe02a004889d94c89fabe30264a00e8bfadffff498b4720e97bfeffff4d896d284d896d20e950f8ffff660f1f8400000000004883fabf0f87a60100004883c217415641554154554889d54883e5f0b8200000004883fa20480f42e8534989f5488d7435204889fbe8f6efffff4885c04889c10f84aa01000031d2488d70f049f7f54885d20f84c80000004a8d4429ff4c89ea48f7da4821d04883e8104889c24e8d24284829f24883fa1f4c0f47e0488b41f84c89e24829f24989c64983e6f84929d683e0020f85ef0000004881fb00a86c000f84220100004c89f04883c80549894424084b834c340801b804000000488b79f883e7074809f84889df4809c2488951f8ba01000000e8d5d1ffff4c39f50f8713010000498d4c241031d24889c849f7f54885d20f85fd000000498b5424084989cd4889d183e1027429660f1f4400004c89e85b5d415c415d415ec30f1f40004989f44989cd498b5424084889d183e10275dd488d75204883e2f84839f276d04829eabf040000004881fb00a86c00480f45cf498d342c4883ca014809ca4889df48895608498b54240883e2074809d5ba0100000049896c2408e831d1ffffeb8f0f1f8000000000480351f04983ce02498d4424104d89742408498914245b5d415c415d415ec3660f1f84000000000048c7c0d0ffffff64c7000c00000031c0c30f1f80000000004c89f74883cf0149897c24084b834c340801488b79f883e707e9defeffff662e0f1f84000000000031c0e91cffffffb908314a00ba6f110000be08224a00bf182b4a00e800a7ffff4883ffff0f842601000053be010000004889fb31c0833d30082b0000740cf00fb1356ade2a00750beb230fb1355fde2a00741a488d3d56de2a004881ec80000000e86a5e02004881c480000000e86eb3ffff4531c085c07811488d7301bf00a86c00e8b9edffff4989c0833ddb072b0000740bf0ff0d16de2a00750aeb22ff0d0cde2a00741a488d3d03de2a004881ec80000000e8475e02004881c4800000004d85c00f849f000000498d40f04989c148c1e80b49c1e9034131c1b8020000004180f901440f44c8498b40f8410fb6f94889c24883e2f8488d4af04883ea08a802b8ff000000480f44ca4883e9014839cb732d0f1f4400004889ca4829da4881faff000000480f47d0488d72ff4839fa480f44d6418814084829d14839cb72d845880c184c89c05bc30f1f800000000048c7c0d0ffffff64c7000c00000031c0c30f1f800000000031c05bc30f1f400055534889f34883ec084883ff100f868d0100004883ff1f0f87330100004883febf0f87a1010000bd20000000be0100000031c0833dc2062b0000740cf00fb135fcdc2a00750beb230fb135f1dc2a00741a488d3de8dc2a004881ec80000000e8fc5c02004881c480000000e800b2ffff4531c085c07814488d53014889eebf00a86c00e818fcffff4989c0833d6a062b0000740bf0ff0da5dc2a00750aeb22ff0d9bdc2a00741a488d3d92dc2a004881ec80000000e8d65c02004881c4800000004d85c00f8416010000498d40f04989c148c1e80b49c1e9034131c1b8020000004180f901440f44c8498b40f8410fb6f94889c24883e2f8488d4af04883ea08a802b8ff000000480f44ca4883e9014839cb732c0f1f40004889ca4829da4881faff000000480f47d0488d72ff4839fa480f44d6418814084829d14839cb72d845880c184c89c04883c4085b5dc3669048b800000000000000804839c7775148c7c0dfffffff4829f84839c6775a488d47ff4885f874704883ff20bd200000000f84a6feffff662e0f1f8400000000004801ed4839ef77f8e98ffeffff0f1f004883c4084889df31f65b5de900fdffff48c7c0d0ffffff64c7001600000031c0e982ffffff0f1f0048c7c0d0ffffff64c7000c00000031c0e96affffff0f1f0031c0e960ffffff4889fde93dfeffff9041574156415541544989cd55534889fd4889f34883ec48488b4e084883f9100f8603020000488b87800800004839d00f869b0200004989cc4183e4020f85770600004c8d3c16498b77084889f74883e7f84839f80f86160300004883fe100f860c0300004c39ea72474889d04c29e84883f81f0f870702000083e107b8040000004881fd00a86c004c0f45e04809d14c09e148894b0848834c130801488d43104883c4485b5d415c415d415e415fc3904c3b7d580f843e030000498d043ff64008010f85980000004c8d0c3a4d39cd0f878b000000483b380f85860300004d8b7710498b47184d3b7e180f85d00200004c3b78100f85c602000049817f08ff030000498946184c8970107644498b47204885c0743b4c3b78280f854d050000498b57284c3b7a200f853f05000049837e20000f845b050000498b572848895028498b5728488942200f1f840000000000488b4b084c89cae90dffffff0f1f4000498d75f14889ef48891424e870e9ffff4885c04989c60f84ef000000488d40f0488b14244939c70f840b0200004883ea084889d048c1e80383f8020f864a05000083f8090f87d6010000488b531083f804498916488b531849895608488b532049895610763a488b532883f80649895618488b5330498956207625488b533883f80949895628488b5340498956307510488b434849894638488b4350498946404889de4889efba01000000e850cbffff4883c4484c89f05b5d415c415d415e415fc3660f1f4400004885ed488d7e10448b258ad82a0041bda7234a000f859f000000660f1f4400004489e283e20583fa050f84f101000041f6c4010f858f0000004183e4020f85830100004883c44831c05b5d415c415d415e415fc30f1f400083e1074881fd00a86c004a8d342b0f84240100004983cd0441bc040000004c09e948894b084889c1ba010000004883c9014889ef4c09e148894e0848834c060801e89acaffffe9d1fdffff0f1f44000041bda7234a00448b25e3d72a00488d7b10834d0404e95effffff660f1f440000488d6c2420488d74243031c9ba10000000c644243000e8455103004839e84889c376254889c24889c7be300000004829ea4c8d70ff4829d7e87333feff488d44241f4c29f04801c3488b05d1022b00ba78224a004489e74989d84c89e9bee8254a00488b004885c0480f45d031c083e702e8fa47ffff31c0e933fdffff0f1f0041bdc3234a00e95bffffff0f1f440000488d73104c89f7e834f20000e96ffeffff0f1f8000000000498b46f84883e0f84801c24939d50f8726030000488b4b08e9b4fcffff0f1f004c09e9e9e1feffff448b15f9d62a00834d04044489d083e00583f8050f844a02000041f6c2010f85d30000004183e2020f8462fdffffe80d0dffff0f1f440000498d45204801d74839c70f8258fdffff83e107b8040000004881fd00a86c004889ca4c0f45e04a8d042b4c09ea4c29ef4c09e24883cf01488953084889455848897808488d4310e95cfcffff0f1f40004489e731c04c89ea83e702be7ccc4b00e80347ffff31c0e93cfcffff448b1555d62a00834d04044489d083e00583f8050f84ca01000041f6c2010f85e200000041f6c2020f855cffffff4d8b7710498b47184d3b7e180f8540ffffff4c3b78100f844cfcffff834d0404e923ffffff4c8d742420488d74243031c94c89ffba1000000044895424084c890c24c644243000e8724f03004c39f04989c74c8b0c24448b542408763e4c89fa488d40ff4c89ff4c29f2be3000000044895424104829d74c894c240848890424e88931feff488d44241f482b0424448b5424104c8b4c24084901c7488b05dc002b004489d7ba78224a004d89f8b9d5224a00bee8254a004c890c24488b004885c0480f45d083e70231c0e8ff45ffff4c8b0c24e9e6fbffff4c8d742420488d74243031c9ba100000004c89ff44895424084c890c24c644243000e8bf4e03004c39f04989c04c8b0c24448b54240876484c89c24c89c7488d40ff4c29f2be30000000448954241c4829d74c894c24104c8944240848890424e8d130feff488d44241f482b04244c8b442408448b54241c4c8b4c24104901c0488b051f002b004489d7ba78224a00b9b8224a00bee8254a004c890c24488b004885c0480f45d083e70231c0e84545ffff4c8b0c24e9bafaffff4489d7bad5224a00be7ccc4b0083e70231c04c890c24e82145ffff4c8b0c24e908fbffff4489d7bab8224a00be7ccc4b0083e70231c04c890c24e8fd44ffff4c8b0c24e972faffff8b3d4ed42a004889e94c89fabe30264a004c890c24e8caa1ffff498b47204c8b0c24e99afaffff4939c7746c49894620498b472849894628498b47204c897028498b47284c897020e997faffffb998304a00baa3100000be08224a00bfe0234a00e8ee9cffffb998304a00ba0f110000be08224a00bf602b4a00e8d59cffffb998304a00baeb100000be08224a00bff9234a00e8bc9cffff4d8976284d897620e93ffaffff0f1f440000662e0f1f840000000000415741564155415455534883ec484883feff0f84980400004885ff4889fd4889f30f84490500004885f60f84b0040000be0100000031c0833daefd2a0000740cf00fb135e8d32a00750beb230fb135ddd32a00741a488d3dd4d32a004881ec80000000e8e85302004881c48000000040f6c50f0f8537010000488d7df0488b45f84889fe4889f948c1e90b48c1ee034889c231ce4883e2f8b9020000004080fe010f44f1a8020f84d4020000488b05fddc2a00488d48ff4889e84821c84c8d40f049f7c0efffffff74364c8d40ff4981f8fe1f000077294c8d40c049f7c0bfffffff741c4c8d8000ffffff49f7c0fffeffff0f85900000000f1f840000000000488b45f84531ed83e0034883f8020f859f000000488b45f04989f84929c04801d04c09c04885c80f85860000004883ea01400fb6f64c8d0417410fb6004839f04889c174344885c07469488d48104839ca7313eb5e0f1f004885c07453488d48104839d1774a4829c24c8d0417410fb6004839f04889c175dff7d14c894424184989fd418808eb2b4c8d8000fcffff49f7c0fffbffff0f8464ffffff483d001000000f8458ffffff0f1f8400000000004531ed833d32fc2a0000740bf0ff0d6dd22a00750aeb22ff0d63d22a00741a488d3d5ad22a004881ec80000000e89e5202004881c4800000004d85ed0f84060400004d8b75084c8d4b014c894c24084983e6f84983f9bf0f87a30200004c8d7b1841bc20000000be010000004d89e24c89fa4883e2f04983ff204c0f43d231c0833db5fb2a0000740cf00fb135efd12a00750beb230fb135e4d12a00741a488d3ddbd12a004881ec80000000e8ef5102004881c48000000041f64508020f85dd0100004889542408e8e3a6ffff85c00f884b020000488b5424084983ff204c89e14c89eebf00a86c00480f43ca4c89f2e83bf6ffff4889c54885ed0f841f020000833d34fb2a0000740bf0ff0d6fd12a00750aeb22ff0d65d12a00741a488d3d5cd12a004881ec80000000e8a05102004881c4800000004885ed0f8490020000488d45f0beff0000004989c048c1e80b49c1e8034131c0b8020000004180f801440f44c0488b45f8410fb6f84889c24883e2f8488d4af04883ea08a802480f44ca4883e9014839cb732e660f1f4400004889ca4829da4881faff000000480f47d6488d42ff4839fa480f44d088540d004829d14839cb72d84488441d004889e84883c4485b5d415c415d415e415fc3908b0daed02a0083e1020f84f10000004883fa1f0f8617feffffa8080f850ffefffff6441708010f8404feffffa801752e488b45f0a80f0f85f4fdffff85c94889f90f84c00100004829c1488b49084531ed4883e1f84839c80f85d5fdffff4883c207400fb6f64c8d0417410fb6004839c64889c10f847ffdffff4885c00f84adfdffff488d48104839ca7322e99ffdffff0f1f80000000004885c00f848ffdffff488d48104839d10f8782fdffff4829c24c8d0417410fb6004839c64889c175d7e933fdffff662e0f1f8400000000004c89d64c89ef4c89542410e8409affff4885c04c8b5424104c8b4c24080f8429010000488d6810e92cfeffff0f1f40004c8b0599cf2a004c39c70f8220fdffff4c030519d82a004c8d0c174d39c10f82ebfeffffe907fdffff0f1f800000000048c7c0d0ffffff64c7000c0000004883c44831c05b5d415c415d415e415fc390488b44241831edf610e9d3fdffff669031f6e879b3ffff31c0e982feffff4c8d6c2420488d74243031c94889efba10000000c644243000e8244803004c39e84889c576254889c24889c7be300000004c29ea4c8d70ff4829d7e8522afeff488d44241f4c29f04801c5488b05b0f92a00ba78224a004489e74989e8b906244a00bee8254a00488b004885c0480f45d083e70231c0e8d73effff0f1f800000000031f64889dfe826f0ffffe9f1fdffff9031c0e9e9fdffff4829c1483b0d8fce2a000f8333feffffe914fcffff498d46f84939c20f8608fdffff4c894c2408e8ada3ffff85c00f8815ffffff4c8b4c2408bf00a86c004c89cee8f3ddffff4885c04989c70f84f7feffff498d56f04889ee4889c74c89fde8b5e800004c89efe87da5ffffe9b9fcffff448b25a1cd2a00830d2ece2a00044489e083e00583f805741f41f6c4010f85d3feffff4183e4020f844bffffffe8b603ffff660f1f4400004489e7ba06244a00be7ccc4b0083e70231c0e8f93dffffe924ffffff0f1f40008b053ecd2a0085c00f8e94000000be0100000031c0833d80f72a0000740cf00fb135daeb2a00750beb230fb135cfeb2a00741a488d3dc6eb2a004881ec80000000e8ba4d02004881c480000000ba00a86c0041b9010000004531c00f1f4400004489ce4489c0833d2ff72a00007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e8754d02004881c480000000488b92680800004881fa00a86c0075bef3c36690662e0f1f8400000000008b058ecc2a0085c07e76ba00a86c0090833dd5f62a00007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e84d4d02004881c480000000488b92680800004881fa00a86c0075c6833d9bf62a0000740bf0ff0df6ea2a00750aeb22ff0decea2a00741a488d3de3ea2a004881ec80000000e8074d02004881c480000000f3c30f1f4000662e0f1f8400000000008b05fecb2a0085c00f8e8500000048c7c0d8ffffffc705b1ea2a000000000064488b084885c9740b48c781780800000100000048c7058aea2a000000000031f631d2b800a86c00660f1f8400000000004839c8c70000000000741a4889907008000048c78078080000000000004889c2be01000000488b8068080000483d00a86c0075cc4084f6750cc7052dea2a0000000000f3c34889152cea2a00ebeb66908b0502ea2a0085c0753ec705f8e92a000100000048c70569cb2a0070c9410048c705bee92a00308c410048c7054bcb2a00d0d3410048c70538cb2a00c0ca4100c30f1f8000000000c705b6e92a0000000000c30f1f00662e0f1f84000000000055534883ec08488b051bcb2a004885c00f854201000048c7c0d8ffffff4889fd64488b184885db740c8b430483e0040f8493000000e81697ffff4885c04889c30f84ba0000004889ee4889dfe8dfdaffff4885c04889c20f84cb000000833df8f42a00007407f0ff0b7506eb1aff0b7416488d3b4881ec80000000e8704b02004881c4800000004885d20f84d8000000488b42f8a802751fa804b900a86c00740d488d42f04825000000fc488b084839d90f85b80000004889d04883c4085b5dc30f1f8000000000be01000000833d88f42a00007408f00fb1337507eb1b0fb1337416488d3b4881ec80000000e8ce4a02004881c480000000e948ffffff669031f64889efe83699ffff4889ee4889c74889c3e818daffff4885c04889c275254885db74200f1f00904889df4889eee8ac9effff4889ee4889c74889c3e8eed9ffff4889c24885db0f850fffffffe934ffffff0f1f440000488b7424184883c4085b5dffe00f1f0031c0e94bffffffb988304a00ba6f0b0000be08224a00bf982b4a00e88892ffff0f1f84000000000053bfa8080000e865feffff4885c00f84f50100004889c3be0100000031c0833da7f32a0000740cf00fb135e1c92a00750beb230fb135d6c92a00741a488d3dcdc92a004881ec80000000e8e14902004881c480000000bf00a86c00e830a2ffff488b0501ca2a0048c70341454c44ba58a86c0048c743080400000048c7431000000000488d4b3848c743180000000048c743280000000048894320eb1f0f1f00488971f8488b72184889314883c2104883c1104881fa48b06c007424488b72104839f275db48c7010000000048c741f800000000ebd5662e0f1f840000000000488b0519c92a0048898320080000488b059bd12a00898328080000488b05aec82a0048898330080000488b05a8c82a00488983380800008b05bfc82a00898340080000488b0596c82a00488983480800008b0549c82a00898350080000488b0554d12a0048c7836008000000000000488983580800008b057cc82a008983680800008b0578c82a0089836c080000488b0573c82a0048898370080000488b056dc82a00488983780800008b058ce62a00898380080000488b05abe62a0048898388080000488b051dc82a0048898390080000488b0517c82a0048898398080000488b05b1c72a00488983a0080000833df7f12a0000740bf0ff0d32c82a00750aeb22ff0d28c82a00741a488d3d1fc82a004881ec80000000e8634802004881c4800000004889d85bc331c05bc30f1f004155415455534883ec28488b05d7e52a004885c00f85c60000004885ff7428488b47f8488d77f0a802752da804bf00a86c00740c4889f04825000000fc488b3831d2e8c9b9ffff4883c4285b5d415c415dc3660f1f4400008b1576c72a0085d2752e483b0547c72a007625483d00000002771d4883e0f8488d14004889052ec72a0048891517c72a0090eb080f1f40004883e0f8488b4ff04889f2488d3401488b05dad02a004829ca4889d14809f14883e8014885c87540f0ff0d09c72a004889f048f7d8f04801050bc72a004889d7e82b1e02004883c4285b5d415c415dc3488b742448ffd04883c4285b5d415c415dc3660f1f4400008b1d72c62a0089d883e00583f8050f848b000000f6c301750f83e3020f842dffffffe891fcfeff90488d74241031c9ba10000000c644241000e8ca3f03004839e04889c576254889c24889c7be300000004829e24c8d68ff4829d7e8f821feff488d4424ff4c29e84801c5488b0556f12a00ba78224a004989e8b910264a00bee8254a00488b004885c0480f45d083e30231c089dfe87e36ffffe9b0feffff83e302ba10264a00be7ccc4b0089df31c0e86336ffffe995feffff0f1f4000662e0f1f84000000000041574156415541544989f555534889fb4883ec38488b05a5c52a004885c00f85040200004885f675094885ff0f856e0200004885db0f8415030000488b43f84c8d73f04989c74889c14983e7f883e102747e4c89f848f7d84939c60f873f03000041f6c60f0f85350300004531e44983fdbf0f87c8010000498d45174889c24883e2f04883f820b820000000480f42d04885c90f84970000004889d64c89f74889542408e80790ffff4885c0488d6810488b5424080f849d0100004883c4384889e85b5d415c415d415e415fc30f1f00a8040f84280100004c89f04825000000fc4c8b204c89f848f7d84939c6770a41f6c60f0f8475ffffff4d85e48b2daec42a00740641834c24040489e883e00583f8050f849802000040f6c5010f85a601000083e5020f85a202000031edeb8c90be0100000031c0833dbeee2a0000740af0410fb134247509eb1e410fb134247417498d3c244881ec80000000e8ff4402004881c4800000004889d14c89f64c89fa4c89e7e877e9ffff4889c5833d79ee2a00007409f041ff0c247508eb1d41ff0c247417498d3c244881ec80000000e8ec4402004881c4800000004885ed0f84ac010000488b45f8a8020f85fbfeffffa804ba00a86c00740d488d45f04825000000fc488b104c39e20f84dcfeffffb958304a00bae90b0000be08224a00bf002c4a00e8b88cffff0f1f8400000000004c89f848f7d84939c60f87a100000041f6c60f0f859700000041bc00a86c00e94afeffff0f1f4000488b542468ffd04889c5e984feffff660f1f84000000000048c7c0d0ffffff31ed64c7000c000000e966feffff0f1f00498d47f84889dd4839c20f8653feffff4c89efe830f8ffff4885c04889c30f84affeffff498d57f04889ee4889c74889dde822de00004c89f7e8ea9affffe920feffff0f1f440000e89bfbffff31ede90ffeffff0f1f40008b2dfac22a0041bc00a86c00e943feffff0f1f80000000004c8d642410488d74242031c94889dfba10000000c644242000e85a3c03004c39e04889c376254889c24889c7be300000004c29e24c8d68ff4829d7e8881efeff488d44240f4c29e84801c3488b05e6ed2a0089efba78224a004989d8b906244a00bee8254a00488b004885c0480f45d083e70231c0e80e33ffff31ede972fdffff0f1f80000000004c89efe848f7ffff4889c5e95bfdffff904c89ef31ede835f7ffff4885c04989c50f8444fdffff498d57f84889de4889c74c89ede827dd000031d24c89f64c89e7e8bab4ffffe920fdffff0f1f4400008b2d0ac22a00e95ffdffff0f1f44000089efba06244a00be7ccc4b0083e70231c031ede88832ffffe9eefcffffe81ef8feff0f1f4000662e0f1f840000000000488b05d1c12a0041544885c05553488b5424180f85ef0100004883ff100f86d50100004883ff1f0f87e30000004883febf0f87f1010000bb2000000048c7c0d8ffffff4989f464488b284885ed0f84150100008b450483e0040f8509010000be01000000833db1eb2a00007409f00fb175007508eb1d0fb175007417488d7d004881ec80000000e8f44102004881c4800000004c89e24889de4889efe81fe1ffff4885c04889c20f84fb000000833d68eb2a00007408f0ff4d007507eb1cff4d007417488d7d004881ec80000000e8dd4102004881c4800000004885d20f845d010000488b42f8a8027516a804b900a86c000f85e80000004839e90f85460100004889d05b5d415cc30f1f800000000048b800000000000000804839c70f87ed00000048c7c0dfffffff4829f84839c60f87f2000000488d47ff4885f80f841d0100004883ff20bb200000000f84eafeffff660f1f4400004801db4839df77f8e9d7feffff0f1f00e8a38cffff4885c04889c50f851affffff4a8d7c232031f6e87b8fffff4c89e24889de4889c74889c5e82ae0ffff4885c04889c2752a4885ed74250f1f440000904889ef4c89e6e8ec94ffff4c89e24889de4889c74889c5e8fbdfffff4889c24885ed0f85dcfeffffe904ffffff662e0f1f840000000000488d42f04825000000fc488b08e906ffffff660f1f4400005b5d415c4889f7e9bcf4ffff0f1f40005b5d415cffe0669048c7c0d0ffffff64c7001600000031c0e9dffeffff0f1f0048c7c0d0ffffff64c7000c00000031c0e9c7feffff0f1f0031c0e9bdfeffffb948304a00ba3c0c0000be08224a00bf602c4a00e87088ffff4889fbe9d4fdffff0f1f84000000000041554889fa415455534889fd4809f2b8ffffffff4883ec08480fafee4839c2761f4885f6741a31d24889e848f7f64839c70f85a9020000660f1f840000000000488b0531bf2a004885c00f857002000048c7c0d8ffffff64488b184885db740c8b430483e0040f84d4000000e82f8bffff4885c04889c30f847b0200004c8b6b584d8b65084983e4f84881fb00a86c000f849a0100004c89e84889ee4889df4825000000fc480340184c29e84939c44c0f42e0e8c8ceffff4885c04989c00f848c010000498b40f8a8027516a804ba00a86c000f85b70100004839da0f85550200004885db7433833dbee82a00007407f0ff0b7506eb1aff0b7416488d3b4881ec80000000e8363f02004881c4800000004d85c00f84bd010000498b50f8f6c202745d8b15fbdc2a004c89c085d20f85740100004883c4085b5d415c415dc390be01000000833d60e82a00007408f00fb1337507eb1b0fb1337416488d3b4881ec80000000e8a63e02004881c480000000e907ffffff662e0f1f8400000000008b059edc2a004883e2f885c07510498d40f04939c575074c39e2490f47d44883ea084889d148c1e9034883f9020f869d0100004883f9090f87ee0000004883f90449c7000000000049c740080000000049c74010000000004c89c00f8653ffffff4883f90649c740180000000049c74020000000000f8639ffffff4883f90949c740280000000049c74030000000000f851fffffff49c740380000000049c7404000000000e90affffff660f1f4400004889eebf00a86c00e843cdffff4885c04989c00f857bfeffff0f1f8000000000904889df4889eee8d491ffff4889ee4889c34889c7e816cdffff4885db4989c00f8571feffffe996feffff0f1f440000a8040f84af0000004531e44531ed6690498d40f04825000000fc488b10e937feffff660f1f4400004889ea31f64c89c74883c4085b5d415c415de98118feff90488b7424284889efffd031f64885c04889ea4889c775d931c0e956feffff669048c7c0d0ffffff64c7000c00000031c0e93ffeffff0f1f0031f64889efe88e8bffff4885c04889c30f856ffdffff31ff4889eee868ccffff4885c04989c074b7488b40f8a8020f8454ffffff4531e44531ede9e3fdffffb938304a00baa80c0000be08224a00bfb82c4a00e81085ffffb938304a00bad30c0000be08224a00bf21244a00e8f784ffff0f1f80000000004155415455534883ec284885ff745a833d76da2a0001488d4ff07464488b47f8a802751c4883e0f8f64407f801743a4883e8084883c4285b5d415c415dc366904883e0f84883c4284883e8105b5d415c415dc383e302ba102d4a00be7ccc4b0089df31c0e8272cffff4883c42831c05b5d415c415dc3662e0f1f8400000000004c8b4ff84989c84889c848c1e80b49c1e8034131c0b8020000004180f8014d89ca4c89ca440f44c04183e2024883e2f84983fa014819c083e008488d4402ff0fb65407f04438c20f8477ffffff84d2742c488d72104839f0730feb210f1f4000488d72104839c677144829d00fb614014438c20f844bffffff84d275e34d85d28b1deaba2a00751d4183e1040f84be0000004881e1000000fc488b014885c074048348040489d883e00583f8050f8420fffffff6c301751883e3020f8428ffffffe8eaf0feff662e0f1f840000000000488d74241031c9ba10000000c644241000e81a3403004839e04889c576254889c24889c7be300000004829e24c8d68ff4829d7e84816feff488d4424ff4c29e84801c5488b05a6e52a00ba78224a004989e8b9102d4a00bee8254a00488b004885c0480f45d083e30231c089dfe8ce2affff31c0e96afeffff0f1f8000000000b800a86c00e947ffffff660f1f44000055534863ee89fb4883ec088b05f3b92a0085c00f88b7010000be0100000031c0833d35e42a0000740cf00fb1356fba2a00750beb230fb13564ba2a00741a488d3d5bba2a004881ec80000000e86f3a02004881c480000000bf00a86c00e8be92ffff9083c30883fb090f87ba000000ff24dd18314a00662e0f1f84000000000031d281fda000000077379085edb8100000007408488d45084883e0f048890535d82a00ba01000000eb17660f1f44000085ed7e7590ba0100000048892d9fb92a00833d94e32a0000740bf0ff0dcfb92a00750aeb22ff0dc5b92a00741a488d3dbcb92a004881ec80000000e8003a02004881c4800000004883c40889d05b5dc385ed7e2590ba0100000048892d47b92a00ebae0f1f44000090c70551b92a0001000000892d43b92a00ba01000000eb9131d281fd000000020f8783ffffff90c7052bb92a000100000048892d00b92a00ba01000000e967ffffff660f1f44000090c70509b92a000100000048892dd6b82a00ba01000000e945ffffff0f1f400090c705e9b82a000100000048892daeb82a00ba01000000e925ffffff0f1f400090ba01000000892d28d72a00e910ffffff0f1f800000000090ba01000000892d4cb82a00e9f8feffff0f1f8000000000e80b000000e93ffeffff660f1f4400004155415455534883ec084c8b25efd62a0048c7c0d8ffffffc70502b82a00000000004d85e46448c70000a86c000f849b0000004531edeb0c0f1f8400000000004983c408498b1c244885db7473803b4d75ee807b014175e8807b024c75e2807b034c75dc807b044f75d6807b054375d0807b065f75ca4889dd4983c4084883c507743d0fb6530784d274b931c080fa3d74b2660f1f4400004883c0010fb654030784d2749f80fa3d75ee4883e8064883f8097790ff24c568314a000f1f4400004d85ed7409410fbe450084c0752a488b05dbd52a004885c07402ffd0c7053eb72a00010000004883c4085b5d415c415dc30f1f80000000008d70d0bffbffffffe81bfdffff8b1525b72a0085d274bf8b05b3d52a0085c00f84ac010000c705a1d52a0000000000eba58b0d29af2a0085c90f850dffffffba0f000000be5f244a004889efe8a712feff85c00f84d4010000ba0f000000be6f244a004889efe88d12feff85c00f85d9feffff488d7b1731f6ba0a000000e8652b0300bffdffffff89c6e899fcffffe9b8feffff0f1f40008b35c2ae2a0085f60f85a6feffffba0a000000be54244a004889efe84012feff85c00f858cfeffff488d7b1231f6ba0a000000e8182b0300bff9ffffff89c6e84cfcffffe96bfeffff8b3d79ae2a0085ff0f855dfeffffba09000000be40244a004889efe8f711feff85c00f8445010000ba09000000be4a244a004889efe8dd11feff85c00f8529feffff488d7b1131f6ba0a000000e8b52a0300bff8ffffff89c6e8e9fbffffe908feffff0f1f4000448b0511ae2a004585c00f85f4fdffffba08000000be2e244a004889efe88e11feff85c00f849a000000ba08000000be37244a004889efe87411feff85c00f85c0fdffff488d7b1031f6ba0a000000e84c2a0300bffaffffff89c6e880fbffffe99ffdffff0f1f00ba06000000bef9514a004889ef4883c30ee83211feff85c04c0f44ebe97bfdffffc705f9d32a000100000048c7056ab52a0070c9410048c705bfd32a00308c410048c7054cb52a00d0d3410048c70539b52a00c0ca4100e9cafdffff488d7b1031f6ba0a000000e8cc290300bffeffffff89c6e800fbffffe91ffdffff488d7b1731f6ba0a000000e8ab290300bfffffffff89c6e8dffaffffe9fefcffff488d7b1131f6ba0a000000e88a290300bffcffffff89c6e8befaffffe9ddfcffff660f1f84000000000055534889fd4883ec088b05a5b42a0048c705beb42a000000000085c00f884601000031c04885c00f855001000048c7c0d8ffffff64488b184885db740c8b430483e0040f848f000000e8b280ffff4885c04889c30f84b60000004889ee4889dfe87bc4ffff4885c04889c20f84c7000000833d94de2a00007407f0ff0b7506eb1aff0b7416488d3b4881ec80000000e80c3502004881c4800000004885d20f84ec000000488b42f8a802751fa804b900a86c00740d488d42f04825000000fc488b084839d90f85cc0000004889d04883c4085b5dc30f1f00be01000000833d28de2a00007408f00fb1337507eb1b0fb1337416488d3b4881ec80000000e86e3402004881c480000000e94cffffff669031f64889efe8d682ffff4889ee4889c74889c3e8b8c3ffff4885c04889c275254885db74200f1f00904889df4889eee84c88ffff4889ee4889c74889c3e88ec3ffff4889c24885db0f8513ffffffe938ffffff0f1f440000e823fbffff488b0564b32a004885c00f84b0feffff488b7424184883c4084889ef5b5dffe00f1f0031c0e937ffffffb988304a00ba6f0b0000be08224a00bf982b4a00e8107cffff41574156415541544989f555534889fb4883ec388b05eab22a0048c70503b32a000000000048c705f0b22a000000000085c00f881802000031c04885c00f85250200004d85ed75094885db0f858f0200004885db0f841e030000488b43f84c8d73f04989c74889c14983e7f883e102747f4c89f848f7d84939c60f875003000041f6c60f0f85460300004531e44983fdbf0f87e9010000498d45174889c24883e2f04883f820b820000000480f42d04885c90f84980000004889d64c89f74889542408e8487dffff4885c0488d6810488b5424080f84be0100004883c4384889e85b5d415c415d415e415fc30f1f4000a8040f84280100004c89f04825000000fc4c8b204c89f848f7d84939c6770a41f6c60f0f8474ffffff4d85e48b2deeb12a00740641834c24040489e883e00583f8050f84a802000040f6c5010f85ae01000083e5020f85b202000031edeb8b90be0100000031c0833dfedb2a0000740af0410fb134247509eb1e410fb134247417498d3c244881ec80000000e83f3202004881c4800000004889d14c89f64c89fa4c89e7e8b7d6ffff4889c5833db9db2a00007409f041ff0c247508eb1d41ff0c247417498d3c244881ec80000000e82c3202004881c4800000004885ed0f84bc010000488b45f8a8020f85fafeffffa804ba00a86c00740d488d45f04825000000fc488b104c39e20f84dbfeffffb958304a00bae90b0000be08224a00bf002c4a00e8f879ffff0f1f8400000000004c89f848f7d84939c6771041f6c60f41bc00a86c000f8452feffff8b2dcfb02a0041bc00a86c00e9d8feffff0f1f4000e88bf8ffff488b05c4b02a004885c00f84defdffff0f1f00488b5424684c89ee4889dfffd04889c5e95dfeffff0f1f0048c7c0d0ffffff31ed64c7000c000000e945feffff0f1f00498d47f84889dd4839c20f8632feffff4c89efe850e5ffff4885c04889c30f848ffeffff498d57f04889ee4889c74889dde842cb00004c89f7e80a88ffffe9fffdffff0f1f4400004889df31ede8b6e8ffffe9ebfdffff904c8d642410488d74242031c94889dfba10000000c644242000e8922903004c39e04889c376254889c24889c7be300000004c29e24c8d68ff4829d7e8c00bfeff488d44240f4c29e84801c3488b051edb2a0089efba78224a004989d8b906244a00bee8254a00488b004885c0480f45d083e70231c0e84620ffff31ede969fdffff0f1f80000000004c89efe880e4ffff4889c5e952fdffff0f1f840000000000904c89ef31ede865e4ffff4885c04989c50f8433fdffff498d57f84889de4889c74c89ede857ca000031d24c89f64c89e7e8eaa1ffffe90ffdffff0f1f4400008b2d3aaf2a00e94ffdffff0f1f44000089efba06244a00be7ccc4b0083e70231c031ede8b81fffffe9ddfcffffe84ee5feff0f1f4000662e0f1f8400000000004154554989f4534883ec108b05e3ae2a0048c705ecae2a000000000085c00f88f4010000488b05ddae2a00488b5424284885c00f85070200004883ff100f86ed0100004883ff1f0f87e30000004983fcbf0f8711020000bb2000000048c7c0d8ffffff64488b284885ed0f84180100008b450483e0040f850c010000be01000000833dc4d82a00007409f00fb175007508eb1d0fb175007417488d7d004881ec80000000e8072f02004881c4800000004c89e24889de4889efe832ceffff4885c04889c20f84fe000000833d7bd82a00007408f0ff4d007507eb1cff4d007417488d7d004881ec80000000e8f02e02004881c4800000004885d20f8480010000488b42f8a8027516a804b900a86c000f85eb0000004839e90f85690100004889d04883c4105b5d415cc3660f1f44000048b800000000000000804839c70f870d01000048c7c0dfffffff4829f84939c40f8712010000488d47ff4885f80f843d0100004883ff20bb200000000f84eafeffff660f1f4400004801db4839df77f8e9d7feffff0f1f00e8b379ffff4885c04889c50f8517ffffff4a8d7c232031f6e88b7cffff4c89e24889de4889c74889c5e83acdffff4885c04889c2752a4885ed74250f1f440000904889ef4c89e6e8fc81ffff4c89e24889de4889c74889c5e80bcdffff4889c24885ed0f85d9feffffe901ffffff662e0f1f840000000000488d42f04825000000fc488b08e903ffffff660f1f44000048897c2408e8aef4ffff488b7c2408e9f8fdffff0f1f40004883c4104c89e75b5d415ce9b0e1ffff4883c4104c89e65b5d415cffe00f1f0048c7c0d0ffffff64c7001600000031c0e9bcfeffff0f1f0048c7c0d0ffffff64c7000c00000031c0e9a4feffff0f1f0031c0e99afeffffb948304a00ba3c0c0000be08224a00bf602c4a00e86075ffff4889fbe9b4fdffff0f1f840000000000448b053dac2a00534889fbc705d3ca2a00010000004585c00f88df04000048813b41454c440f85e404000048f7430800ffffff0f8fdd040000be0100000031c0833d55d62a0000740cf00fb1358fac2a00750beb230fb13584ac2a00741a488d3d7bac2a004881ec80000000e88f2c02004881c48000000064833c2518000000007401f0830d59ac2a000148837b08030f8f0d01000048c70577ca2a0040000000ba08a86c0031c0b90a0000004889d7c7057eb42a0000000000c70578b42a0000000000f348abc7056fb42a0000000000c70569b42a0000000000488d5338b90100000041b80100000041b97e000000488b432048c70541ac2a000000000048890532ac2a00b858a86c00eb500f1f004883f93f0f87b6000000488b3a48897818488970104489c748894618488b7018d3e7488946104889ce48c1ee05093cb558b06c004883c1014883c0104883c2104881f9800000000f846b010000488b72f84885f60f84a600000048837b08027f9f488b3a488940184889401048c7461858a86c004c8b15bdab2a004c8957104c8b15b2ab2a0049897a18488935a7ab2a00eba1488b9388080000b8100000004885d27408488d42084883e0f048890555c92a00e9d9feffff0f1f8400000000004c8b56084c89d748c1ef064883ff30774f4883c7304839cf488b3a75874c8b5f084d89da49c1ea064983fa3077624983c2304939ca0f8569ffffffe90dffffff48833a000f85030300004889401848894010e91dffffff660f1f8400000000004c89d748c1ef094883ff14770b4883c75beba20f1f4400004c89d748c1ef0c4883ff0a77234883c76eeb8a0f1f4400004d89da49c1ea094983fa1477234983c25beb8f0f1f4400004c89d748c1ef0f4883ff04772b4883c777e957ffffff66904d89da49c1ea0c4983fa0a0f879f0100004983c26ee958ffffff660f1f44000049c1ea12498d7a7c4983fa02490f47f9e920ffffff0f1f00488b4b084883f9027f43488b056faa2a00483d58a86c0074340f1f8000000000488b50084883e2f84881faff030000761048c740200000000048c7402800000000488b4010483d58a86c0075d3488b83200800004885c9488905aaa92a00486383280800004889052cb22a00488b83300800004889053ea92a00488b833808000048890538a92a008b8340080000890550a92a00488b834808000048890526a92a008b83500800008905daa82a00488b8358080000488905e4b12a008b8368080000890518a92a008b836c080000890514a92a00488b83700800004889050ea92a00488b837808000048890508a92a007e4c8bbb8008000085ff0f85a30000008b051ec72a0085c00f85ec0000004883f9037e2a488b8390080000488905aea82a00488b8398080000488905a8a82a00488b83a008000048890542a82a00833d8fd22a0000740bf0ff0dcaa82a00750aeb22ff0dc0a82a00741a488d3db7a82a004881ec80000000e8fb2802004881c48000000031c05bc34d89da49c1ea0f4983fa0477094983c277e9acfdffff49c1eb124d8d537c4983fb024d0f47d1e997fdffff8b357bc62a0085f60f855dffffff8b1569c62a0085d20f854fffffffc7055bc62a000100000048c705cca72a0070c9410048c70521c62a00308c410048c705aea72a00d0d3410048c7059ba72a00c0ca4100e914ffffff48c7059ba72a000000000048c705f0c52a000000000048c7057da72a000000000048c7056aa72a0000000000c705f4c52a0000000000e9d9feffffe81eefffff48813b41454c440f841cfbffffb8ffffffff5bc3b8feffffff5bc3b9e0314a00ba45020000be7f244a00bf87244a00e81a70ffff662e0f1f8400000000008b05fea62a0041544989fc555385c00f882b020000488b05fca62a00488b5424184885c0488b3df5b02a000f85e70100004883ff100f86cd0100004883ff1f0f87db0000004983fcbf0f8701020000bb2000000048c7c0d8ffffff64488b284885ed0f84100100008b450483e0040f8504010000be01000000833ddcd02a00007409f00fb175007508eb1d0fb175007417488d7d004881ec80000000e81f2702004881c4800000004c89e24889de4889efe84ac6ffff4885c04889c20f84f6000000833d93d02a00007408f0ff4d007507eb1cff4d007417488d7d004881ec80000000e8082702004881c4800000004885d20f8470010000488b42f8a8027516a804b900a86c000f85e30000004839e90f85590100004889d05b5d415cc3669048b800000000000000804839c70f87f500000048c7c0dfffffff4829f84939c40f870a010000488d47ff4885f80f84350100004883ff20bb200000000f84f2feffff660f1f4400004801db4839df77f8e9dffeffff0f1f00e8d371ffff4885c04889c50f851fffffff4a8d7c232031f6e8ab74ffff4c89e24889de4889c74889c5e85ac5ffff4885c04889c2752a4885ed74250f1f440000904889ef4c89e6e81c7affff4c89e24889de4889c74889c5e82bc5ffff4889c24885ed0f85e1feffffe909ffffff662e0f1f840000000000488d42f04825000000fc488b08e90bffffff660f1f4400005b4c89e75d415ce9ecd9ffff0f1f40005b4c89e65d415cffe00f1f800000000048c7c0d0ffffff64c7001600000031c0e9dcfeffff0f1f00e89becffffe9cbfdffff660f1f44000048c7c0d0ffffff64c7000c00000031c0e9b4feffff0f1f0031c0e9aafeffffb948304a00ba3c0c0000be08224a00bf602c4a00e8886dffff4889fbe9c4fdffff415455534883ec108b0566a42a0085c00f887a020000488b0573ae2a0048c7c6dfffffff488b5424284889f34c8d40ff4889c148f7d94e8d24074921cc488d0c004829cb4839df0f874b010000488b0d34a42a004885c90f85030200004883f8100f86e10100004883f81f0f87df0000004983fcbf0f871d010000bb2000000048c7c0d8ffffff64488b284885ed0f84240100008b450483e0040f8518010000be01000000833d20ce2a00007409f00fb175007508eb1d0fb175007417488d7d004881ec80000000e8632402004881c4800000004c89e24889de4889efe88ec3ffff4885c04889c20f840a010000833dd7cd2a00007408f0ff4d007507eb1cff4d007417488d7d004881ec80000000e84c2402004881c4800000004885d20f8464010000488b42f8a8027516a804b900a86c000f85f70000004839cd0f856a0100004889d04883c4105b5d415cc3669048ba00000000000000804839d00f870d0100004829c64939f4772d4c85c00f84300100004883f820bb200000000f84fdfeffff0f1f4400004801db4839d877f8e9ebfeffff0f1f0048c7c0d0ffffff64c7000c0000004883c41031c05b5d415cc30f1f8000000000e8036fffff4885c04889c50f850bffffff498d7c1c2031f6e8db71ffff4c89e24889de4889c74889c5e88ac2ffff4885c04889c2752a4885ed74250f1f440000904889ef4c89e6e84c77ffff4c89e24889de4889c74889c5e85bc2ffff4889c24885ed0f85cdfeffffe9f5feffff662e0f1f840000000000488d42f04825000000fc488b08e9f7feffff660f1f4400004883c4104c89e75b5d415ce918d7ffff0f1f8400000000004883c4104c89e64889c75b5d415cffe148c7c0d0ffffff64c7001600000031c0e9c0feffff0f1f0031c0e9b6feffff9048897c2408e8b6e9ffff488b7c2408e972fdffff4889c3e9d4fdffffb948304a00ba3c0c0000be08224a00bf602c4a00e8bb6affff90662e0f1f840000000000415741564155415455534883ec288b0590a12a0048897c241885c00f884002000048c744240800a86c00c744241400000000be0100000031c0488b542408833db7cb2a00007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e8fd2102004881c4800000004531dbf6420404745f44095c2414488b542408833d78cb2a00007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8f02102004881c480000000488b8268080000483d00a86c0048894424080f8573ffffff8b4424144883c4285b5d415c415d415e415fc3488b7c2408e8e479ffff488b0dddaa2a004881f9ff0300000f87d300000089c8c1e804894424104c8d71ff488b4424084531dbbd010000004c8d692f4d89f74c8d605849f7d7eb1b660f1f440000396c24107e1483c5014983c41081fd80000000747583fd0175e6498b5c24184939dc7515ebe0662e0f1f840000000000488b5b184939dc74cd488b73084883e6f84c39ee76ea4a8d3c2b488d43304c21ff4839c70f82b3000000488d04334839c70f838d0000004889f84829d84829c64939f673bb4c21feba04000000e8def7010041bb01000000eba631c048817c240800a86c000f84d10000004109c3e9b0feffff4989cc49c1ec064983fc30770e418d44243089442410e91bffffff4989cc49c1ec094983fc14761b4989cc49c1ec0c4983fc0a774e418d44246e89442410e9f3feffff418d44245b89442410e9e5feffffb95a254a00baaa110000be08224a00bf782d4a00e88368ffffb95a254a00baa9110000be08224a00bf402d4a00e86a68ffff4989cc49c1ec0f4983fc047718418d44247789442410e998feffffe81ae7ffffe9b6fdffff4889c848c1e812448d607c4883f802b87e000000410f46c489442410e96dfeffff488b7c2418ba80b06c00be58a86c0044895c2410e88b6dffff448b5c2410e90cffffff904154554989fc534883ec308b05e39e2a0085c00f88ef00000048c704240000000048c744240800000000bb00a86c0048c74424100000000048c744241800000000bd0100000048c7442420000000009089ee31c0833df1c82a00007408f00fb1337507eb1b0fb1337416488d3b4881ec80000000e8371f02004881c4800000004889e64889dfe81582ffff833dbac82a00007407f0ff0b7506eb1aff0b7416488d3b4881ec80000000e8321f02004881c480000000488b9b680800004881fb00a86c00758b488b042449890424488b4424084989442408488b4424104989442410488b4424184989442418488b44242049894424204883c4304c89e05b5d415cc30f1f8000000000e8c3e5ffffe907ffffff0f1f4000662e0f1f840000000000415741564155415455534883ec388b05c09d2a004c8b252d9e2a0085c04589e50f88ba010000488b057b9d2a00bb00a86c0031ed41be01000000448b78744489fa83ca02895074eb0a0f1f800000000083c50148c704240000000048c7442408000000004489f648c74424100000000048c74424180000000031c048c744242000000000833da1c72a00007408f00fb1337507eb1b0fb1337416488d3b4881ec80000000e8e71d02004881c4800000004889e64889dfe8c580ffff488b3de69c2a0089eabe9e244a0031c0e890bb03008b1424488b3dce9c2a00bea9244a0031c0e87abb03008b54241c488b3db79c2a00bec2244a0031c0e863bb03004403242444036c241c833d1fc72a00007407f0ff0b7506eb1aff0b7416488d3b4881ec80000000e8971d02004881c480000000488b9b680800004881fb00a86c000f850cffffff488b0d5d9c2a00ba14000000be01000000bfdb244a00e8e1240400488b3d429c2a004489e2bea9244a0031c0e8ebba0300488b3d2c9c2a004489eabec2244a0031c0e8d5ba03008b15af9c2a00488b3d109c2a00bef0244a0031c0e8bcba0300488b15a59c2a00488b3df69b2a00be09254a0031c0e8a2ba0300488b05e39b2a00440978744883c4385b5d415c415d415e415fc30f1f840000000000e8cbe3ffffe93cfeffff660f1f440000415741564155415455534889fb4881ec981100008b0dca9b2a0085c90f88550400004889debf23254a00e831220400488d8424b801000048c744241000a86c0048c74424200000000048c74424180000000048c74424500000000031d248c74424480000000048c74424300000000048c74424400000000048c74424280000000048c74424380000000048894424688d4201be39254a004889df8944246431c0e8cbb90300be0100000031c0488b542410833d84c52a00007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e8ca1b02004881c4800000004c8b4c2468488d7a08488d4c24784531c04531e40f1f8000000000488b074885c00f84fa020000488b700831d24883e6f86690488b40104883c2014885c075f34889f04901d0488931480fafc2488951104901c4488d46f1488941f8480faf114883c1204883c708488951e84939c975aa488b4424104c8d9424b00100004c8d9c24901100004c894424584531f64531c04c8d4858660f1f440000498b5110660fefd2660f6f0d182508004885d2410f290a410f2952100f84560200004939d10f844d020000498b4218498b6a1031c9498b32488d7801eb0d662e0f1f8400000000004889c7488b4208488b52104801c54839c6480f47f04839c1480f42c84939d1488d470175db48897424084885fff30f7e44240848894c24080f1644240848896c2408410f2902f30f7e44240848897c24080f16442408410f2942100f84cf0100004d89c74983c2204901fe4983c1104d037af04d39d34d89f80f8539ffffff488b742410833df1c32a00007407f0ff0e7506eb1aff0e7416488d3e4881ec80000000e8691a02004881c480000000488b7424584c01642430488dac248800000048017424284531ed4c017424384c017c2440660f1f4400004983fd0a4c8b4d0074204d85c9741b488b4df0488b55e8bea02d4a004c8b45f84889df31c0e8aeb703004983c5014883c5204981fd8900000075c54c8b8c24c80100004d85c90f8538010000488b6c24104d89f94d89f04c89e1be282e4a004889df488b8580080000488b958808000048014424484801542450525031c0488b542468e850b703004881fd00a86c00585a0f8419010000488b4558bed02e4a004889df4889c5488944240831c04881e5000000fc488b4d18488b5510e817b70300488b75104801742418488b751848017424204889debf51254a00e8e81e0400488b4424108b542464488b8068080000483d00a86c0048894424100f85f6fcffff8b05a9982a00ff7424204889dfff742420ff742460be182f4a00ff742460ff359b982a00504c8b4c247031c04c8b442468488b4c2460488b542458e897b603004881c4c811000031c05b5d415c415d415e415fc30f1f0049c7020000000031ffe923feffff48c741100000000048c7010000000031d248c741f800000000e91dfdffff4c8b8424c0010000488b8c24b8010000bee82d4a00488b9424b00100004889df31c0e82db60300e99cfeffff488b15b1a02a00bed02e4a004889df31c04889d1e80fb60300488b0598a02a0048014424184801442420e9f4feffffe844dfffffe9a1fbffff0f1f440000662e0f1f84000000000040f6c607b8160000007405c30f1f40004889f048c1e803488d48ff4885c10f857c0100004885f60f8473010000415541544889f055534889fd4889d34883ec08488b0d21972a004885c9488b5424280f85510100004883fe100f86b90100004883fe1f0f865101000048ba00000000000000804839d60f87c801000048c7c2dfffffff4829f24839d30f87c8010000488d56ff4885f20f84e70100004883fe2041bc2000000074100f1f8400000000004d01e44c39e077f848c7c0d8ffffff644c8b284d85ed0f8403010000418b450483e0040f85f6000000be01000000833dc7c02a0000740af0410fb175007509eb1e410fb175007417498d7d004881ec80000000e8081702004881c4800000004889da4c89e64c89efe833b6ffff4885c04889c20f84f9000000833d7cc02a00007409f041ff4d007508eb1d41ff4d007417498d7d004881ec80000000e8ef1602004881c4800000004885d27456488b42f8a802751fa804b900a86c00740d488d42f04825000000fc488b084c39e90f85e60000004889d04889450031c04883c4085b5d415c415dc30f1f840000000000b816000000c34889de4889c7ffd14885c075d4b80c000000ebd34883fbbf0f879300000041bc20000000e9e9feffffe8cc61ffff4885c04989c50f852fffffff498d7c1c2031f6e8a464ffff4889da4c89e64889c74989c5e853b5ffff4885c04889c275054d85ed75184d85ed0f8516ffffffe940ffffff4889dfe830caffffeb8c904c89ef4889dee8026affff4889da4c89e64889c74989c5e811b5ffff4889c2ebc648c7c0d0ffffff64c70016000000e95cffffff48c7c0d0ffffff64c7000c000000e949ffffffb948304a00ba3c0c0000be08224a00bf602c4a00e8dd5dffff4989f4e92dfeffff0f1f44000085ff740cb816000000c3660f1f4400004889f7e9c8f8ffff0f1f8400000000004883ec08e877ea0100ba000000004883f8ff480f44c24883c408c30f1f440000488d0519000000f705cfb32a00040000007407488d0566a90100c30f1f440000660f6ece89f825ff0f0000660f60c93dc00f0000660f61c9660f70c9000f8f5d010000f30f6f07660fefdb660f6fe0660f74c1660f74e3660febc4660fd7c085c074150fbcc0ba00000000488d0407403830480f45c2c390f30f6f4710660f6fe0660f74c1660f74e3660febc4660fd7c8f30f6f4720660f6fe0660f74c148c1e110660f74e3660febc4660fd7c0f30f6f4730660f74d848c1e020660f74c14809c8660febc3660fd7c848c1e1304809c84885c00f85a6000000660f1f440000660feff64883e7c04883c740660f6f2f660f6f5710660f6f5f20660fefe9660f6f6730660fefd1660fefd9660fda2f660fefe1660fda5710660fda5f20660fdaea660fda6730660fdaeb660fdaec660f74ee660fd7c585c074ae660f6f2f660f6fc5660f74e9660f74c6660febe8660f74d6660f74de660f74e6660fd7cd660fd7c248c1e01066440fd7c3660fd7d449c1e0204c09c04809c848c1e2304809d0480fbcc0ba00000000488d0407403830480f45c2c390662e0f1f8400000000004889fa660fefd24883e2c0660f6fc1660f6f1a660f6fe3660f74d9660f74e2660febdc66440fd7c3660f6f5a10660f6fe3660f74d9660f74e2660febdc660fd7c3660f6f5a20660f6fe3660f74d948c1e010660f74e2660febdc66440fd7cb660f6f5a30660f74d349c1e120660f74c34c09c84c09c0660febc2660fd7c848c1e1304809c889f928d148d3e84885c00f854bffffffe9a0feffff660f1f440000488d0579cd0000f7058fb12a0010000000751a488d0506bb0000f7054cb12a00000200007507488d0503000000c3669089f189f84883e13f4883e03f83f930773f83f830773a660f120f660f1216660f164f08660f165608660fefc0660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85c81300004883c6104883c7104883e6f04883e7f0baffff00004531c083e10f83e00f39c1742677074189d0914887f74c8d480f4929c94c8d159f1c08004f630c8a4f8d140a41ffe20f1f4000660f6f0e660fefc0660f74c1660f740f660ff8c866440fd7c9d3ea41d3e94429ca0f853e13000048c7c11000000049c7c110000000660fefc00f1f8000000000660f6f0c0e660f6f140f660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85fa1200004883c110660f6f0c0e660f6f140f660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85d01200004883c110ebaa662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0f660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8595120000660f6f1f660fefc048c7c11000000041b9010000004c8d57014981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db01660f73fa0f660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f851e1200004883c110660f6fdc4983c2107f50660f6f0c0e660f6f140f660f6fe2660f73db01660f73fa0f660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85d81100004883c110660f6fdce96bffffff90662e0f1f840000000000660f74c3660fd7d0f7c2feff00007510660fefc04981ea00100000e94affffff660f6f0c0e660f73d801660f73db01e97c1100006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0e660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8555110000660f6f1f660fefc048c7c11000000041b9020000004c8d57024981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db02660f73fa0e660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85de1000004883c110660f6fdc4983c2107f50660f6f0c0e660f6f140f660f6fe2660f73db02660f73fa0e660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85981000004883c110660f6fdce96bffffff90662e0f1f840000000000660f74c3660fd7d0f7c2fcff00007510660fefc04981ea00100000e94affffff660f6f0c0e660f73d802660f73db02e93c1000006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0d660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8515100000660f6f1f660fefc048c7c11000000041b9030000004c8d57034981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db03660f73fa0d660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f859e0f00004883c110660f6fdc4983c2107f50660f6f0c0e660f6f140f660f6fe2660f73db03660f73fa0d660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85580f00004883c110660f6fdce96bffffff90662e0f1f840000000000660f74c3660fd7d0f7c2f8ff00007510660fefc04981ea00100000e94affffff660f6f0c0e660f73d803660f73db03e9fc0e00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0c660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85d50e0000660f6f1f660fefc048c7c11000000041b9040000004c8d57044981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db04660f73fa0c660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f855e0e00004883c110660f6fdc4983c2107f50660f6f0c0e660f6f140f660f6fe2660f73db04660f73fa0c660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85180e00004883c110660f6fdce96bffffff90662e0f1f840000000000660f74c3660fd7d0f7c2f0ff00007510660fefc04981ea00100000e94affffff660f6f0c0e660f73d804660f73db04e9bc0d00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0b660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85950d0000660f6f1f660fefc048c7c11000000041b9050000004c8d57054981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db05660f73fa0b660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f851e0d00004883c110660f6fdc4983c2107f50660f6f0c0e660f6f140f660f6fe2660f73db05660f73fa0b660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85d80c00004883c110660f6fdce96bffffff90662e0f1f840000000000660f74c3660fd7d0f7c2e0ff00007510660fefc04981ea00100000e94affffff660f6f0c0e660f73d805660f73db05e97c0c00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0a660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85550c0000660f6f1f660fefc048c7c11000000041b9060000004c8d57064981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db06660f73fa0a660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85de0b00004883c110660f6fdc4983c2107f50660f6f0c0e660f6f140f660f6fe2660f73db06660f73fa0a660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85980b00004883c110660f6fdce96bffffff90662e0f1f840000000000660f74c3660fd7d0f7c2c0ff00007510660fefc04981ea00100000e94affffff660f6f0c0e660f73d806660f73db06e93c0b00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa09660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85150b0000660f6f1f660fefc048c7c11000000041b9070000004c8d57074981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db07660f73fa09660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f859e0a00004883c110660f6fdc4983c2107f50660f6f0c0e660f6f140f660f6fe2660f73db07660f73fa09660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85580a00004883c110660f6fdce96bffffff90662e0f1f840000000000660f74c3660fd7d0f7c280ff00007510660fefc04981ea00100000e94affffff660f6f0c0e660f73d807660f73db07e9fc0900006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa08660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85d5090000660f6f1f660fefc048c7c11000000041b9080000004c8d57084981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db08660f73fa08660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f855e0900004883c110660f6fdc4983c2107f50660f6f0c0e660f6f140f660f6fe2660f73db08660f73fa08660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85180900004883c110660f6fdce96bffffff90662e0f1f840000000000660f74c3660fd7d0f7c200ff00007510660fefc04981ea00100000e94affffff660f6f0c0e660f73d808660f73db08e9bc0800006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa07660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8595080000660f6f1f660fefc048c7c11000000041b9090000004c8d57094981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db09660f73fa07660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f851e0800004883c110660f6fdc4983c2107f50660f6f0c0e660f6f140f660f6fe2660f73db09660f73fa07660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85d80700004883c110660f6fdce96bffffff90662e0f1f840000000000660f74c3660fd7d0f7c200fe00007510660fefc04981ea00100000e94affffff660f6f0c0e660f73d809660f73db09e97c0700006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa06660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8555070000660f6f1f660fefc048c7c11000000041b90a0000004c8d570a4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db0a660f73fa06660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85de0600004883c110660f6fdc4983c2107f50660f6f0c0e660f6f140f660f6fe2660f73db0a660f73fa06660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85980600004883c110660f6fdce96bffffff90662e0f1f840000000000660f74c3660fd7d0f7c200fc00007510660fefc04981ea00100000e94affffff660f6f0c0e660f73d80a660f73db0ae93c0600006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa05660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8515060000660f6f1f660fefc048c7c11000000041b90b0000004c8d570b4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db0b660f73fa05660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f859e0500004883c110660f6fdc4983c2107f50660f6f0c0e660f6f140f660f6fe2660f73db0b660f73fa05660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85580500004883c110660f6fdce96bffffff90662e0f1f840000000000660f74c3660fd7d0f7c200f800007510660fefc04981ea00100000e94affffff660f6f0c0e660f73d80b660f73db0be9fc0400006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa04660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85d5040000660f6f1f660fefc048c7c11000000041b90c0000004c8d570c4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db0c660f73fa04660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f855e0400004883c110660f6fdc4983c2107f50660f6f0c0e660f6f140f660f6fe2660f73db0c660f73fa04660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85180400004883c110660f6fdce96bffffff90662e0f1f840000000000660f74c3660fd7d0f7c200f000007510660fefc04981ea00100000e94affffff660f6f0c0e660f73d80c660f73db0ce9bc0300006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa03660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8595030000660f6f1f660fefc048c7c11000000041b90d0000004c8d570d4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db0d660f73fa03660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f851e0300004883c110660f6fdc4983c2107f50660f6f0c0e660f6f140f660f6fe2660f73db0d660f73fa03660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85d80200004883c110660f6fdce96bffffff90662e0f1f840000000000660f74c3660fd7d0f7c200e000007510660fefc04981ea00100000e94affffff660f6f0c0e660f73d80d660f73db0de97c0200006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa02660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8555020000660f6f1f660fefc048c7c11000000041b90e0000004c8d570e4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db0e660f73fa02660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85de0100004883c110660f6fdc4983c2107f50660f6f0c0e660f6f140f660f6fe2660f73db0e660f73fa02660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85980100004883c110660f6fdce96bffffff90662e0f1f840000000000660f74c3660fd7d0f7c200c000007510660fefc04981ea00100000e94affffff660f6f0c0e660f73d80e660f73db0ee93c0100006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa01660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8515010000660f6f1f660fefc048c7c11000000041b90f0000004c8d570f4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db0f660f73fa01660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f859e0000004883c110660f6fdc4983c2107f50660f6f0c0e660f6f140f660f6fe2660f73db0f660f73fa01660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff0000755c4883c110660f6fdce96fffffff0f1f440000662e0f1f840000000000660f74c3660fd7d0f7c2008000007510660fefc04981ea00100000e94affffff660f6f0c0e660f73db0f660f73d80f90660f74cb660ff8c8660fd7d1f7d26690498d4409f0488d3c07488d340e4585c0740e4887f790662e0f1f840000000000480fbcd20fb60c160fb6041729c8c331c0c30f1f4000662e0f1f8400000000000fb60e0fb60729c8c30f1f800000000089f189f84883e13f4883e03f83f930773f83f830773af30f6f0ff30f6f16660fefc0660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85420d00004883c6104883c710662e0f1f8400000000004883e6f04883e7f0baffff00004531c083e10f83e00f660fefc039c1743277074189d0914887f7660f6f17660f6f0e4c8d480f4929c94c8d15130808004f630c8a660f74c14f8d140a41ffe20f1f4000660f6f0e660f74c1660f740f660ff8c866440fd7c9d3ea41d3e94429ca0f85a80c000048c7c11000000049c7c1100000004889ca6690662e0f1f840000000000660f6f0417660f3a6304161a488d5210761e660f6f0417660f3a6304161a488d5210760cebda662e0f1f8400000000000f83790c0000488d4c0af00fb6040f0fb6140e29d0c3662e0f1f840000000000660f73fa0f660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f851b0c0000660f6f1f48c7c11000000041b9010000004c8d57014981e2ff0f00004981ea001000004889ca662e0f1f8400000000004983c2107f4a660f6f0417660f3a0f4417f001660f3a6304161a0f86b00b00004883c2104983c2107f26660f6f0417660f3a0f4417f001660f3a6304161a0f868c0b00004883c210ebb6660f1f4400004981ea00100000660f6f4417f0660f73d801660f3a63c03a83f90e7799e94b0b00000f1f4000662e0f1f840000000000660f73fa0e660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f854b0b0000660f6f1f48c7c11000000041b9020000004c8d57024981e2ff0f00004981ea001000004889ca662e0f1f8400000000004983c2107f4a660f6f0417660f3a0f4417f002660f3a6304161a0f86e00a00004883c2104983c2107f26660f6f0417660f3a0f4417f002660f3a6304161a0f86bc0a00004883c210ebb6660f1f4400004981ea00100000660f6f4417f0660f73d802660f3a63c03a83f90d7799e97b0a00000f1f4000662e0f1f840000000000660f73fa0d660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f857b0a0000660f6f1f48c7c11000000041b9030000004c8d57034981e2ff0f00004981ea001000004889ca4983c2107f44660f6f0417660f3a0f4417f003660f3a6304161a0f861a0a00004883c2104983c2107f20660f6f0417660f3a0f4417f003660f3a6304161a0f86f60900004883c210ebb64981ea00100000660f6f4417f0660f73d803660f3a63c03a83f90c779fe9bb0900000f1f4000662e0f1f840000000000660f73fa0c660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85bb090000660f6f1f48c7c11000000041b9040000004c8d57044981e2ff0f00004981ea001000004889ca662e0f1f8400000000004983c2107f4a660f6f0417660f3a0f4417f004660f3a6304161a0f86500900004883c2104983c2107f26660f6f0417660f3a0f4417f004660f3a6304161a0f862c0900004883c210ebb6660f1f4400004981ea00100000660f6f4417f0660f73d804660f3a63c03a83f90b7799e9eb0800000f1f4000662e0f1f840000000000660f73fa0b660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85eb080000660f6f1f48c7c11000000041b9050000004c8d57054981e2ff0f00004981ea001000004889ca662e0f1f8400000000004983c2107f4a660f6f0417660f3a0f4417f005660f3a6304161a0f86800800004883c2104983c2107f26660f6f0417660f3a0f4417f005660f3a6304161a0f865c0800004883c210ebb6660f1f4400004981ea00100000660f6f4417f0660f73d805660f3a63c03a83f90a7799e91b0800000f1f4000662e0f1f840000000000660f73fa0a660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f851b080000660f6f1f48c7c11000000041b9060000004c8d57064981e2ff0f00004981ea001000004889ca662e0f1f8400000000004983c2107f4a660f6f0417660f3a0f4417f006660f3a6304161a0f86b00700004883c2104983c2107f26660f6f0417660f3a0f4417f006660f3a6304161a0f868c0700004883c210ebb6660f1f4400004981ea00100000660f6f4417f0660f73d806660f3a63c03a83f9097799e94b0700000f1f4000662e0f1f840000000000660f73fa09660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f854b070000660f6f1f48c7c11000000041b9070000004c8d57074981e2ff0f00004981ea001000004889ca662e0f1f8400000000004983c2107f4a660f6f0417660f3a0f4417f007660f3a6304161a0f86e00600004883c2104983c2107f26660f6f0417660f3a0f4417f007660f3a6304161a0f86bc0600004883c210ebb6660f1f4400004981ea00100000660f6f4417f0660f73d807660f3a63c03a83f9087799e97b0600000f1f4000662e0f1f840000000000660f73fa08660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f857b060000660f6f1f48c7c11000000041b9080000004c8d57084981e2ff0f00004981ea001000004889ca662e0f1f8400000000004983c2107f4a660f6f0417660f3a0f4417f008660f3a6304161a0f86100600004883c2104983c2107f26660f6f0417660f3a0f4417f008660f3a6304161a0f86ec0500004883c210ebb6660f1f4400004981ea00100000660f6f4417f0660f73d808660f3a63c03a83f9077799e9ab0500000f1f4000662e0f1f840000000000660f73fa07660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85ab050000660f6f1f48c7c11000000041b9090000004c8d57094981e2ff0f00004981ea001000004889ca662e0f1f8400000000004983c2107f4a660f6f0417660f3a0f4417f009660f3a6304161a0f86400500004883c2104983c2107f26660f6f0417660f3a0f4417f009660f3a6304161a0f861c0500004883c210ebb6660f1f4400004981ea00100000660f6f4417f0660f73d809660f3a63c03a83f9067799e9db0400000f1f4000662e0f1f840000000000660f73fa06660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85db040000660f6f1f48c7c11000000041b90a0000004c8d570a4981e2ff0f00004981ea001000004889ca662e0f1f8400000000004983c2107f4a660f6f0417660f3a0f4417f00a660f3a6304161a0f86700400004883c2104983c2107f26660f6f0417660f3a0f4417f00a660f3a6304161a0f864c0400004883c210ebb6660f1f4400004981ea00100000660f6f4417f0660f73d80a660f3a63c03a83f9057799e90b0400000f1f4000662e0f1f840000000000660f73fa05660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f850b040000660f6f1f48c7c11000000041b90b0000004c8d570b4981e2ff0f00004981ea001000004889ca662e0f1f8400000000004983c2107f4a660f6f0417660f3a0f4417f00b660f3a6304161a0f86a00300004883c2104983c2107f26660f6f0417660f3a0f4417f00b660f3a6304161a0f867c0300004883c210ebb6660f1f4400004981ea00100000660f6f4417f0660f73d80b660f3a63c03a83f9047799e93b0300000f1f4000662e0f1f840000000000660f73fa04660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f853b030000660f6f1f48c7c11000000041b90c0000004c8d570c4981e2ff0f00004981ea001000004889ca662e0f1f8400000000004983c2107f4a660f6f0417660f3a0f4417f00c660f3a6304161a0f86d00200004883c2104983c2107f26660f6f0417660f3a0f4417f00c660f3a6304161a0f86ac0200004883c210ebb6660f1f4400004981ea00100000660f6f4417f0660f73d80c660f3a63c03a83f9037799e96b0200000f1f4000662e0f1f840000000000660f73fa03660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f856b020000660f6f1f48c7c11000000041b90d0000004c8d570d4981e2ff0f00004981ea001000004889ca662e0f1f8400000000004983c2107f4a660f6f0417660f3a0f4417f00d660f3a6304161a0f86000200004883c2104983c2107f26660f6f0417660f3a0f4417f00d660f3a6304161a0f86dc0100004883c210ebb6660f1f4400004981ea00100000660f6f4417f0660f73d80d660f3a63c03a83f9027799e99b0100000f1f4000662e0f1f840000000000660f73fa02660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f859b010000660f6f1f48c7c11000000041b90e0000004c8d570e4981e2ff0f00004981ea001000004889ca662e0f1f8400000000004983c2107f4a660f6f0417660f3a0f4417f00e660f3a6304161a0f86300100004883c2104983c2107f26660f6f0417660f3a0f4417f00e660f3a6304161a0f860c0100004883c210ebb6660f1f4400004981ea00100000660f6f4417f0660f73d80e660f3a63c03a83f9017799e9cb0000000f1f4000662e0f1f840000000000660f73fa01660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85cb000000660f6f1f48c7c11000000041b90f0000004c8d570f4981e2ff0f00004981ea001000004889ca662e0f1f8400000000004983c2107f4a660f6f0417660f3a0f4417f00f660f3a6304161a76644883c2104983c2107f2a660f6f0417660f3a0f4417f00f660f3a6304161a76444883c210ebbe0f1f4000662e0f1f8400000000004981ea00100000660f6f4417f0660f73d80f660f3a63c03a83f9007799660f3a6304161a6690662e0f1f840000000000733d4801ca4a8d7c0ff00fb604170fb614164585c074019229d0c3488d3c07488d340e4585c074084887f70f1f440000480fbcd20fb60c160fb6041729c8c331c0c30f1f4000662e0f1f8400000000000fb60e0fb60729c8c30f1f8000000000488d0539780100f7056f8f2a0010000000751a488d0516000000f7052c8f2a00000200007407488d0553480100c366904889f183e1074889fa741bf7d983c1088a0684c088020f84bc00000048ffc648ffc2ffc975ea49b8fffefefefefefefe488b064883c6084989c14d01c10f837d0000004931c14d09c149ffc175724889024883c208488b064883c6084989c14d01c1735c4931c14d09c149ffc175514889024883c208488b064883c6084989c14d01c1733b4931c14d09c149ffc175304889024883c208488b064883c6084989c14d01c1731a4931c14d09c149ffc1750f4889024883c208e973ffffff0f1f00880284c0741248ffc2882284e4740948ffc248c1e810ebe84889f8c30f1f400055534889fd4883ec08e842000000488d58014889dfe8f6a3ffff4885c074194883c4084889da4889ee5b5d4889c7e9ed8900000f1f4400004883c40831c05b5dc3662e0f1f8400000000000f1f440000660fefc0660fefc9660fefd2660fefdb4889f84889f94881e1ff0f00004881f9cf0f0000776af30f6f20660f74e0660fd7d485d274040fbcc2c34883e0f0660f744810660f745020660f745830660fd7d166440fd7c2660fd7cb48c1e21048c1e1104c09c148c1e1204809ca4889f94831c14883e0c048d3fa4885d20f847e000000480fbcc2c3660f1f8400000000004883e0c0660f7400660f744810660f745020660f745830660fd7f0660fd7d166440fd7c2660fd7cb48c1e21048c1e1104809f24c09c148c1e1204809ca4889f94831c14883e0c048d3fa4885d27411480fbcc2c36690662e0f1f840000000000660fefc9660fefd2660fefdb0f1f4000660f6f4040660fda4050660fda4060660fda4070660f74c3660fd7d085d275304883e880660f6f00660fda4010660fda4020660fda4030660f74c3660fd7d085d27511ebbb90662e0f1f8400000000004883c040660fefc0660f7400660f744810660f745020660f745830660fd7f0660fd7d166440fd7c2660fd7cb48c1e21048c1e1104809f24c09c148c1e1204809ca480fbcd24801d04829f8c30f1f40004885d20f842b1800004883fa010f842d1800004989d389f189f84883e13f4883e03f83f930774983f8307744660f120f660f1216660f164f08660f165608660fefc0660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85c21700004983eb100f86cc1700004883c6104883c7104883e6f04883e7f0baffff00004531c083e10f83e00f39c1742677074189d0914887f74c8d480f4929c94c8d15cff707004f630c8a4f8d140a41ffe20f1f4000660f6f0e660fefc0660f74c1660f740f660ff8c866440fd7c9d3ea41d3e94429ca0f852e1700004e8d4c19f04d39cb0f824f1700004d85c90f84461700004d89cb48c7c11000000049c7c110000000660fefc00f1f00662e0f1f840000000000660f6f0c0e660f6f140f660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ca1600004983eb100f86f41600004883c110660f6f0c0e660f6f140f660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85961600004983eb100f86c01600004883c110eb96660f1f440000660fefc0660f6f17660f6f0e660f74c1660f73fa0f660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8555160000660f6f1f4e8d4c19f04d39cb0f82721600004d85c90f84691600004d89cb660fefc048c7c11000000041b9010000004c8d57014981e2ff0f00004981ea001000000f1f440000662e0f1f8400000000004983c2100f8fa6000000660f6f0c0e660f6f140f660f6fe2660f73db01660f73fa0f660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85be1500004983eb100f86e81500004883c110660f6fdc4983c2107f56660f6f0c0e660f6f140f660f6fe2660f73db01660f73fa0f660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f856e1500004983eb100f86981500004883c110660f6fdce957ffffff0f1f8000000000660f74c3660fd7d0f7c2feff000075204983fb0f761a660fefc04981ea00100000e934ffffff662e0f1f840000000000660f6f0c0e660f73d801660f73db01e9fc1400006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0e660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85d5140000660f6f1f4e8d4c19f04d39cb0f82f21400004d85c90f84e91400004d89cb660fefc048c7c11000000041b9020000004c8d57024981e2ff0f00004981ea001000000f1f440000662e0f1f8400000000004983c2100f8fa6000000660f6f0c0e660f6f140f660f6fe2660f73db02660f73fa0e660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f853e1400004983eb100f86681400004883c110660f6fdc4983c2107f56660f6f0c0e660f6f140f660f6fe2660f73db02660f73fa0e660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ee1300004983eb100f86181400004883c110660f6fdce957ffffff0f1f8000000000660f74c3660fd7d0f7c2fcff000075204983fb0e761a660fefc04981ea00100000e934ffffff662e0f1f840000000000660f6f0c0e660f73d802660f73db02e97c1300006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0d660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8555130000660f6f1f4e8d4c19f04d39cb0f82721300004d85c90f84691300004d89cb660fefc048c7c11000000041b9030000004c8d57034981e2ff0f00004981ea001000000f1f440000662e0f1f8400000000004983c2100f8fa6000000660f6f0c0e660f6f140f660f6fe2660f73db03660f73fa0d660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85be1200004983eb100f86e81200004883c110660f6fdc4983c2107f56660f6f0c0e660f6f140f660f6fe2660f73db03660f73fa0d660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f856e1200004983eb100f86981200004883c110660f6fdce957ffffff0f1f8000000000660f74c3660fd7d0f7c2f8ff000075204983fb0d761a660fefc04981ea00100000e934ffffff662e0f1f840000000000660f6f0c0e660f73d803660f73db03e9fc1100006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0c660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85d5110000660f6f1f4e8d4c19f04d39cb0f82f21100004d85c90f84e91100004d89cb660fefc048c7c11000000041b9040000004c8d57044981e2ff0f00004981ea001000000f1f440000662e0f1f8400000000004983c2100f8fa6000000660f6f0c0e660f6f140f660f6fe2660f73db04660f73fa0c660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f853e1100004983eb100f86681100004883c110660f6fdc4983c2107f56660f6f0c0e660f6f140f660f6fe2660f73db04660f73fa0c660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ee1000004983eb100f86181100004883c110660f6fdce957ffffff0f1f8000000000660f74c3660fd7d0f7c2f0ff000075204983fb0c761a660fefc04981ea00100000e934ffffff662e0f1f840000000000660f6f0c0e660f73d804660f73db04e97c1000006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0b660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8555100000660f6f1f4e8d4c19f04d39cb0f82721000004d85c90f84691000004d89cb660fefc048c7c11000000041b9050000004c8d57054981e2ff0f00004981ea001000000f1f440000662e0f1f8400000000004983c2100f8fa6000000660f6f0c0e660f6f140f660f6fe2660f73db05660f73fa0b660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85be0f00004983eb100f86e80f00004883c110660f6fdc4983c2107f56660f6f0c0e660f6f140f660f6fe2660f73db05660f73fa0b660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f856e0f00004983eb100f86980f00004883c110660f6fdce957ffffff0f1f8000000000660f74c3660fd7d0f7c2e0ff000075204983fb0b761a660fefc04981ea00100000e934ffffff662e0f1f840000000000660f6f0c0e660f73d805660f73db05e9fc0e00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0a660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85d50e0000660f6f1f4e8d4c19f04d39cb0f82f20e00004d85c90f84e90e00004d89cb660fefc048c7c11000000041b9060000004c8d57064981e2ff0f00004981ea001000000f1f440000662e0f1f8400000000004983c2100f8fa6000000660f6f0c0e660f6f140f660f6fe2660f73db06660f73fa0a660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f853e0e00004983eb100f86680e00004883c110660f6fdc4983c2107f56660f6f0c0e660f6f140f660f6fe2660f73db06660f73fa0a660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ee0d00004983eb100f86180e00004883c110660f6fdce957ffffff0f1f8000000000660f74c3660fd7d0f7c2c0ff000075204983fb0a761a660fefc04981ea00100000e934ffffff662e0f1f840000000000660f6f0c0e660f73d806660f73db06e97c0d00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa09660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85550d0000660f6f1f4e8d4c19f04d39cb0f82720d00004d85c90f84690d00004d89cb660fefc048c7c11000000041b9070000004c8d57074981e2ff0f00004981ea001000000f1f440000662e0f1f8400000000004983c2100f8fa6000000660f6f0c0e660f6f140f660f6fe2660f73db07660f73fa09660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85be0c00004983eb100f86e80c00004883c110660f6fdc4983c2107f56660f6f0c0e660f6f140f660f6fe2660f73db07660f73fa09660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f856e0c00004983eb100f86980c00004883c110660f6fdce957ffffff0f1f8000000000660f74c3660fd7d0f7c280ff000075204983fb09761a660fefc04981ea00100000e934ffffff662e0f1f840000000000660f6f0c0e660f73d807660f73db07e9fc0b00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa08660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85d50b0000660f6f1f4e8d4c19f04d39cb0f82f20b00004d85c90f84e90b00004d89cb660fefc048c7c11000000041b9080000004c8d57084981e2ff0f00004981ea001000000f1f440000662e0f1f8400000000004983c2100f8fa6000000660f6f0c0e660f6f140f660f6fe2660f73db08660f73fa08660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f853e0b00004983eb100f86680b00004883c110660f6fdc4983c2107f56660f6f0c0e660f6f140f660f6fe2660f73db08660f73fa08660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ee0a00004983eb100f86180b00004883c110660f6fdce957ffffff0f1f8000000000660f74c3660fd7d0f7c200ff000075204983fb08761a660fefc04981ea00100000e934ffffff662e0f1f840000000000660f6f0c0e660f73d808660f73db08e97c0a00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa07660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85550a0000660f6f1f4e8d4c19f04d39cb0f82720a00004d85c90f84690a00004d89cb660fefc048c7c11000000041b9090000004c8d57094981e2ff0f00004981ea001000000f1f440000662e0f1f8400000000004983c2100f8fa6000000660f6f0c0e660f6f140f660f6fe2660f73db09660f73fa07660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85be0900004983eb100f86e80900004883c110660f6fdc4983c2107f56660f6f0c0e660f6f140f660f6fe2660f73db09660f73fa07660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f856e0900004983eb100f86980900004883c110660f6fdce957ffffff0f1f8000000000660f74c3660fd7d0f7c200fe000075204983fb07761a660fefc04981ea00100000e934ffffff662e0f1f840000000000660f6f0c0e660f73d809660f73db09e9fc0800006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa06660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85d5080000660f6f1f4e8d4c19f04d39cb0f82f20800004d85c90f84e90800004d89cb660fefc048c7c11000000041b90a0000004c8d570a4981e2ff0f00004981ea001000000f1f440000662e0f1f8400000000004983c2100f8fa6000000660f6f0c0e660f6f140f660f6fe2660f73db0a660f73fa06660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f853e0800004983eb100f86680800004883c110660f6fdc4983c2107f56660f6f0c0e660f6f140f660f6fe2660f73db0a660f73fa06660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ee0700004983eb100f86180800004883c110660f6fdce957ffffff0f1f8000000000660f74c3660fd7d0f7c200fc000075204983fb06761a660fefc04981ea00100000e934ffffff662e0f1f840000000000660f6f0c0e660f73d80a660f73db0ae97c0700006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa05660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8555070000660f6f1f4e8d4c19f04d39cb0f82720700004d85c90f84690700004d89cb660fefc048c7c11000000041b90b0000004c8d570b4981e2ff0f00004981ea001000000f1f440000662e0f1f8400000000004983c2100f8fa6000000660f6f0c0e660f6f140f660f6fe2660f73db0b660f73fa05660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85be0600004983eb100f86e80600004883c110660f6fdc4983c2107f56660f6f0c0e660f6f140f660f6fe2660f73db0b660f73fa05660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f856e0600004983eb100f86980600004883c110660f6fdce957ffffff0f1f8000000000660f74c3660fd7d0f7c200f8000075204983fb05761a660fefc04981ea00100000e934ffffff662e0f1f840000000000660f6f0c0e660f73d80b660f73db0be9fc0500006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa04660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85d5050000660f6f1f4e8d4c19f04d39cb0f82f20500004d85c90f84e90500004d89cb660fefc048c7c11000000041b90c0000004c8d570c4981e2ff0f00004981ea001000000f1f440000662e0f1f8400000000004983c2100f8fa6000000660f6f0c0e660f6f140f660f6fe2660f73db0c660f73fa04660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f853e0500004983eb100f86680500004883c110660f6fdc4983c2107f56660f6f0c0e660f6f140f660f6fe2660f73db0c660f73fa04660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ee0400004983eb100f86180500004883c110660f6fdce957ffffff0f1f8000000000660f74c3660fd7d0f7c200f0000075204983fb04761a660fefc04981ea00100000e934ffffff662e0f1f840000000000660f6f0c0e660f73d80c660f73db0ce97c0400006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa03660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8555040000660f6f1f4e8d4c19f04d39cb0f82720400004d85c90f84690400004d89cb660fefc048c7c11000000041b90d0000004c8d570d4981e2ff0f00004981ea001000000f1f440000662e0f1f8400000000004983c2100f8fa6000000660f6f0c0e660f6f140f660f6fe2660f73db0d660f73fa03660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85be0300004983eb100f86e80300004883c110660f6fdc4983c2107f56660f6f0c0e660f6f140f660f6fe2660f73db0d660f73fa03660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f856e0300004983eb100f86980300004883c110660f6fdce957ffffff0f1f8000000000660f74c3660fd7d0f7c200e0000075204983fb03761a660fefc04981ea00100000e934ffffff662e0f1f840000000000660f6f0c0e660f73d80d660f73db0de9fc0200006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa02660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85d5020000660f6f1f4e8d4c19f04d39cb0f82f20200004d85c90f84e90200004d89cb660fefc048c7c11000000041b90e0000004c8d570e4981e2ff0f00004981ea001000000f1f440000662e0f1f8400000000004983c2100f8fa6000000660f6f0c0e660f6f140f660f6fe2660f73db0e660f73fa02660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f853e0200004983eb100f86680200004883c110660f6fdc4983c2107f56660f6f0c0e660f6f140f660f6fe2660f73db0e660f73fa02660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ee0100004983eb100f86180200004883c110660f6fdce957ffffff0f1f8000000000660f74c3660fd7d0f7c200c0000075204983fb02761a660fefc04981ea00100000e934ffffff662e0f1f840000000000660f6f0c0e660f73d80e660f73db0ee97c0100006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa01660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8555010000660f6f1f4e8d4c19f04d39cb0f82720100004d85c90f84690100004d89cb660fefc048c7c11000000041b90f0000004c8d570f4981e2ff0f00004981ea001000000f1f440000662e0f1f8400000000004983c2100f8fa6000000660f6f0c0e660f6f140f660f6fe2660f73db0f660f73fa01660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85be0000004983eb100f86e80000004883c110660f6fdc4983c2107f56660f6f0c0e660f6f140f660f6fe2660f73db0f660f73fa01660febd3660f74c1660f74ca660ff8c8660fd7d181eaffff000075724983eb100f869c0000004883c110660f6fdce95bffffff90662e0f1f840000000000660f74c3660fd7d0f7c20080000075204983fb01761a660fefc04981ea00100000e934ffffff662e0f1f840000000000660f6f0c0e660f73db0f660f73d80f90660f74cb660ff8c8660fd7d1f7d26690498d4409f0488d3c07488d340e4585c0740e4887f790662e0f1f840000000000480fbcd24929d3760b0fb60c160fb6041729c8c331c0c3660f1f8400000000000fb60e0fb60729c8c30f1f800000000041574156415541544989fd55534889d54889f34989ccbf010000004881ec58080000ba0100000031c948c7c6ffffffff488d040a4939c4762c4c8d443500450fb6141044385405000f838a0200004889c1ba010000004889c7488d040a4829f74939c477d448c744240801000000ba0100000031c949c7c0ffffffff0f1f4000488d040a4939c476314e8d4c0500450fb61c1144385c05000f86520200004889c1ba010000004c29c148894c24084889c1488d040a4939c477cf498d40014883c6014839f04889442410730a48897c240848897424104c89642418488d442450488d942450080000f30f7e442418660f6cc0660f1f4400000f29004883c0104839d075f44d85e4498d4424ff4889ea741d0f1f80000000000fb60a4883c201488944cc504883e8014883f8ff75ea488b442408488b5424104889ef488d740500e85baffdff85c00f850b020000488b4c24104d8d7c24ffb8010000004531c048896c24204531f64c89642418488d71ff4889cf4829c848f7df48894424404c89e048897424284801ee48897c24484989f148897424384c89e6482b7424084901f94c89fd4889df4d89c74c89cb4889742430eb220f1f40004d85f6740b483b442408480f424424304901c74531f6488b4424184c89e74d8d240731f64c89e24829fa4c01efe8160900004d85e40f84d70200004885c00f85ce020000430fb64425ff488b44c4504885c075ac488b442410488b7424204939c6490f43c6488d1406498d34074839e8498d7c350073370fb6324038370f85d50000004889c648f7de4801f24801feeb140f1f80000000000fb60c06380c020f85b30000004883c0014839e872ea488b442428498d34074c01ee4c3b7424100f8373020000488b4424380fb60038060f8563020000488b4424284803742448eb180f1f8000000000488d50ff0fb64c3201380c0375084889d04939c675ea4983c6014939c60f87370200004c037c24084c8b742430e9fcfeffff660f1f440000744e4889cebf010000004883c101ba01000000e940fdffff744e4989c848c7442408010000004883c101ba01000000e974fdffff0f1f4000488b7c24404531f64e8d043f4e8d3c00e9a9feffff0f1f004839fa0f84af0100004883c201e9f6fcffff660f1f440000483b5424080f84830100004883c201e92cfdffff0f1f4000488b7424104c89e041bb01000000498d4c24ff4c896424084829f04839f0480f42c64929f34531ff4883c0014889442438488d46ff4889c74889442430488d44350048f7de4801fd4889df4989c648894424184c89e84901f64d89fd48897424204c897424284889cb4989ec4d89de4989c7eb0a0f1f40004901c54889ef488b44240831f6498d6c05004889ea4829fa4c01ffe8100700004885c00f85d10000004885ed0f84c8000000410fb6442fff488b44c4504885c075be488b442410498d5405004c01fa4839d8732f488b7424180fb636403832757f4803542420488b4c2428eb0d0f1f000fb63c0240383c0175664883c0014839d872ed488b442430498d7405004c01fe4883f8ff7426410fb604243806755131c0eb140f1f440000410fb65404ff4883e8013a140675394939c675ec4c89f84d89ef4a8d04384881c4580800005b5d415c415d415e415fc30f1f8400000000004f8d042e4e8d2c00e916ffffff0f1f004c036c2438e909ffffff31c0ebc848895424084889c1ba01000000e9a0fbffff4889d74889c1ba01000000e940fbffff488b442410e9bcfdffff4b8d443d00eb950f1f440000662e0f1f840000000000415741564155415455534883ec580fb61784d20f84930500000fb60e84c90f84bc0000004889f34989f841b901000000eb0d660f1f4400000fb60b84c9741d4983c0014883c30138ca410fb6100f94c04121c184d275e1803b00756c4584c9757f4989dc4889fd488d7f014929f40fbe36e86aabfdff4885c04989c7744a4983fc0174464a8d7c25004c29e34989f84929c04839f8b8010000004c0f47c04983fc1f76544883c4584c89e14889da4c89ff4c89c65b5d415c415d415e415fe92dfaffff0f1f44000031c04883c4585b5d415c415d415e415fc30f1f80000000004883c4584889f85b5d415c415d415e415fc3660f1f44000041be01000000ba0100000031f648c7c1ffffffff0f1f4000488d04324939c47629488d3c0b0fb63c1740383c030f83f50100004889c6ba010000004989c6488d04324929ce4939c477d741bb01000000ba0100000031f648c7c7ffffffff662e0f1f840000000000488d04324939c4762a4c8d0c3b450fb61411443814030f86c40100004889c6ba010000004989c3488d04324929fb4939c477d64883c7014883c1014839cf72064d89de4889f94a8d34334889ca4889df4c8944241048894c2408e8d1a9fdff85c0488b4c24084c8b4424100f85d1010000488d41ff4c89e74531ed4c29f731ed4c89742438488944241848897c24304801d84889cf4989c2488944242848f7dfb8010000004d89ee4901fa4829c848897c24404d89e548894424204989ec4c89c748895c24104c89d50f1f80000000004b8d5c250031f64889da4829fa4c01ffe8ab0300004885c00f857afeffff4885db0f8471feffff488b442408488b4c24104939c6490f43c64a8d34204939c5488d1401498d3c3776360fb60f380a0f85dc0000004889c648f7de4801f24801feeb14660f1f4400000fb63c0640383c020f85ba0000004883c0014939c577e9488b442418498d34044c01fe4c3b7424080f839d020000488b7c24280fb60e380f0f858d0200004803742440eb150f1f00488d50ff0fb64c3201384c050075084889d04939c675e94d8d4e014939c10f87b60200004c036424384c8b7424304889dfe91affffff662e0f1f84000000000074564889f141be010000004883c601ba01000000e9d7fdffff0f1f8000000000744e4889f741bb010000004883c601ba01000000e907feffff0f1f8000000000488b4c24204531f64e8d1c214e8d2418eb9c660f1f4400004c39f20f84ae0100004883c201e986fdffff660f1f4400004c39da0f84a60100004883c201e9befdffff4c8d5101498d040f488d2c0b4d39d048894424180f82b10100004c89e0440fb64d0041be010000004829c848894c2438488b5424184839c84c89542420480f42c14929ce4883c0014889442440488d41ff4889c748894424484a8d04134801fb4889cf4c89f148f7df4989c54d89fe48897c24304901fd4989df48894424284c89c74489cbeb120f1f800000000084c00f8490fcffff4889ea0fb602488d6a0138c375ea482b6c24184c8b5424204d39d4488d45ff76350fb672014c8d4202488b5424284038324c89d275674c03442430eb100f1f00410fb67410fe41387415ff75504883c2014939d477ea488b742448488d2c304c01f54883feff742d0fb6750031d2413a37741de99f000000450fb64417ff4883ea010fb67415004138f00f85870000004839d175e34c01f0e9f5fbffff4084f60f84eafbffff488d2c014801d54d8d042c31f648894c24104c89c24c894424084829fa4c01f7e8ed0000004c8b4424084d85c00f84b7fbffff4885c00f85aefbffff48036c24384c89c7488b4c24104c01f5e909ffffff4989d64889c6ba01000000e9d1fbffff4989d34889c6ba01000000e911fcffff4084f60f8470fbffff488b742440488d2c06eb82488b442408e98afdffff4889c84b8d3c0731f64c29c04c8954241048894c2408488d5001e8640000004889c231c04885d20f8530fbffff4c8b542410488b4c24084d89d0e910feffff4889f341b901000000e99dfaffff4b8d0427e907fbffff0f1f00662e0f1f840000000000f60549692a0010baa0574200b8f0d64300480f44c2c3662e0f1f84000000000066480f6ece4889f9660f60c94885d20f842b030000660f60c94883e13f660f70c9004883f9307748f30f6f07660f74c1660fd7c085c00f85c40200004883ea100f86fa0200004883c7104883e10f4883e7f04801ca4883ea400f86c1010000eb5f0f1f440000662e0f1f8400000000004883e10f4883e7f0660f6f07660f74c1660fd7c0d3f885c074160fbcc04829c20f86aa0200004801f84801c8c30f1f004801ca4883ea100f86930200004883c7104883ea400f86650100000f1f440000660f6f07660f74c1660fd7c085c00f85fc010000660f6f5710660f74d1660fd7c285c00f85f7010000660f6f5f20660f74d9660fd7c385c00f85f2010000660f6f6730660f74e14883c740660fd7c485c00f85a901000048f7c73f00000074704883ea400f86f6000000660f6f07660f74c1660fd7c085c00f8592010000660f6f5710660f74d1660fd7c285c00f858d010000660f6f5f20660f74d9660fd7c385c00f8588010000660f6f5f30660f74d9660fd7c34883c74085c00f853f0100004889f94883e7c04883e13f4801ca904883ea400f8686000000660f6f07660f6f5710660f6f5f20660f6f6730660f74c1660f74d1660f74d9660f74e1660fded8660fdee2660fdee3660fd7c44883c74085c074bb4883ef40660fd7c085c00f85eb000000660fd7c285c00f85ef000000660f6f5f20660f74d9660f744f30660fd7c385c00f85e5000000660fd7c10fbcc0488d440730c30f1f8400000000004883c2207e6a660f6f07660f74c1660fd7c085c00f8596000000660f6f5710660f74d1660fd7c285c00f8591000000660f6f5f20660f74d9660fd7c385c00f85bc0000004883ea100f8ed2000000660f744f30660fd7c185c00f85b10000004831c0c30f1f00662e0f1f8400000000004883c220660f6f07660f74c1660fd7c085c0755c4883ea100f8692000000660f744f10660fd7c185c075554831c0c3900fbcc0488d4438f0c30f1f80000000000fbcc04801f8c3660f1f8400000000000fbcc0488d443810c30f1f80000000000fbcc0488d443820c30f1f80000000000fbcc04829c276384801f8c30f1f40000fbcc04829c27628488d440710c366900fbcc04829c27618488d440720c366900fbcc04829c27608488d440730c366904831c0c3662e0f1f8400000000006690f705a6652a00000200007508488d051d000000c3f70592652a00000008007408488d0549840000c3488d05715e0100c34885d20f84f70000004883fa010f8ebd0000004829fe4989d24983fa200f8de000000049f7c201000000741d0fb6070fb614374983ea010f84990000004883c70129d00f858f00000049f7c20200000074150fb7070fb714374983ea02747a4883c70239d0757249f7c20400000074138b078b14374983ea04745e4883c70439d0755649f7c2080000007416488b07488b14374983ea0874404883c7084839d07537f30f6f0ff30f6f0437660f74c8660fd7d131c081eaffff000074430fbcca488d0c0f0fb6010fb6140eeb090f1f000fb6070fb61629d0c34839d074224989c34929d3490fbccb48c1f90348c1e10348d3f80fb6c048d3fa0fb6d229d0c39031c0c34989d34901fb4989f84983e00f7425f30f6f0ff30f6f0437660f74c8660fd7d181eaffff00000f856101000049f7d84a8d7c071048f7c60f0000000f845f01000048f7c710000000741df30f6f0437660f7407660fd7d081eaffff00000f852a0100004883c7104d89da4983e2e04c39d70f8d0301000048f7c720000000743af30f6f0437660f7407660fd7d081eaffff00000f85f40000004883c710f30f6f0437660f7407660fd7d081eaffff00000f85d70000004883c7104d89da4983e2c04c39d77d71f30f6f0437660f7407660fd7d081eaffff00000f85ae0000004883c710f30f6f0437660f7407660fd7d081eaffff00000f85910000004883c710f30f6f0437660f7407660fd7d081eaffff000075784883c710f30f6f0437660f7407660fd7d081eaffff0000755f4883c7104939fa758f4d89da4983e2e04c39d77d37f30f6f0437660f7407660fd7d081eaffff000075354883c710f30f6f0437660f7407660fd7d081eaffff0000751c4883c7104939fa75c94929fb0f847afeffff4d89dae995fdffff66900fbcca0fb6040f4801fe0fb6140ee933feffff4d89da4983e2e04c39d77dce48f7c710000000741e660f6f0437660f7407660fd7d081eaffff000075c34883c7104939fa74a74d89da4983e2c048f7c7200000007436660f6f0437660f7407660fd7d081eaffff000075954883c710660f6f0437660f7407660fd7d081eaffff00000f8578ffffff4883c7104939fa0f8415ffffff660f6f0437660f7407660fd7d081eaffff00000f8552ffffff4883c710660f6f0437660f7407660fd7d081eaffff00000f8535ffffff4883c710660f6f0437660f7407660fd7d081eaffff00000f8518ffffff4883c710660f6f0437660f7407660fd7d081eaffff00000f85fbfeffff4883c7104939fa75874d89da4983e2e04c39d70f8dcffeffff660f6f0437660f7407660fd7d081eaffff00000f85c9feffff4883c710660f6f0437660f7407660fd7d081eaffff00000f85acfeffff4883c7104c39d775c14929fb0f840afdffff4d89dae925fcffff669041554889f8415455534829f04989fc4883ec084839d00f82990000004883fa0f4889fb4989f5765e4889f948f7d983e1074829ca4885c94889d5741b31c00fb61406418814044883c0014839c175ef4c8d2c0e498d1c0c4889ea4c89ee4889df48c1ea0341f6c5070f84dc000000e88d6200004889e84889ea4883e0f883e2074901c54801c34929dd4885d2488d0c134889df7412410fb6443d004883c7018847ff4839cf75ee4883c4084c89e05b5d415c415dc34801d64883fa0f488d2c17765f4889e94889d34989f583e1074829cb4885c9741b4889ea4929cd4829f24883ee010fb6064c39ee88043275f14829cd4889da4c89ee4889ef48c1ea0341f6c5077450e8a76400004889d84c89ee4883e0f84829c64829c583e3074889da74864889f04889ef4829d04829f74883ee010fb6164839c688143775f14883c4084c89e05b5d415c415dc3e881600000e91fffffffe8d7620000ebae8b154f602a0089d025001002003d00100200742af6c608b8202743007525f60501602a0002b810654200741783e202b8102c4300baa0fb4200480f44c2c3b830574300f3c3488d0569000000f705ff5f2a00000400007426488d05c6740100f705ec5f2a00001000007413f705e05f2a00000002007407488d0547760100c3660f1f4400004889f84889f2660fefc0eb380f1f40004889c8660f6ec6660f60c0660f61c0660f70c000eb1e662e0f1f840000000000660f6ec64889f8660f60c0660f61c0660f70c0004883fa4077364883fa100f868a0000004883fa20f30f7f07f30f7f4417f0770cf3c3662e0f1f840000000000f30f7f4710f30f7f4417e0c30f1f4000488d4f40f30f7f074883e1c0f30f7f4417f0f30f7f4710f30f7f4417e0f30f7f4720f30f7f4417d0f30f7f4730f30f7f4417c04801fa4883e2c04839d174a590660f7f01660f7f4110660f7f4120660f7f41304883c1404839ca75e4f3c366480f7ec1f6c2187522f6c2047516f6c2017402880ff6c2020f8467ffffff66894c10fec3890f894c17fcc348890f48894c17f8c3662e0f1f8400000000000f1f004883fa20737af6c201740b0fb60e880f48ffc648ffc7f6c202740e0fb70e66890f4883c6024883c702f6c204740c8b0e890f4883c6044883c704f6c2087411488b0e48890f4883c6084883c7080f1f0081e2f000000074230f1f840000000000488b0e4c8b460848890f4c89470883ea10488d7610488d7f1075e54889f8c39089f183e1077429488d5411f883e908900fb6068807ffc1488d7601488d7f0175ef0f1f440000662e0f1f8400000000004881fa00040000777789d1c1e9057460ffc9488b064c8b46084c8b4e104c8b56184889074c8947084c894f104c895718488d7620488d7f207436ffc9488b064c8b46084c8b4e104c8b56184889074c8947084c894f104c895718488d7620488d7f2075ac6690662e0f1f84000000000083e21f0f85ddfeffff4889f8c30f1f004c8b1d89472a004939d34c0f47da4c89d94983e3f848c1e9037405f348a566904c29da48f7c2f8ffffff751483e2070f85a1feffff4889f8c30f1f80000000004c8b0529472a004939d04c0f47c24c89c14983e0c048c1e9060f84ab0100004c897424f84c896c24f04c896424e848895c24e0833dfe672a00000f84c000000048ffc9488b06488b5e084c8b4e104c8b56184c8b5e204c8b66284c8b6e304c8b76380f188e800300000f188ec003000048890748895f084c894f104c8957184c895f204c8967284c896f304c897738488d7640488d7f400f841901000048ffc9488b06488b5e084c8b4e104c8b56184c8b5e204c8b66284c8b6e304c8b763848890748895f084c894f104c8957184c895f204c8967284c896f304c8977380f0d8f400300000f0d8f80030000488d7640488d7f400f8546ffffffe9b70000009048ffc9488b06488b5e084c8b4e104c8b56184c8b5e204c8b66284c8b6e304c8b76380f188e800300000f188ec003000048890748895f084c894f104c8957184c895f204c8967284c896f304c897738488d7640488d7f40745d48ffc9488b06488b5e084c8b4e104c8b56184c8b5e204c8b66284c8b6e304c8b76380f188f400300000f188f8003000048890748895f084c894f104c8957184c895f204c8967284c896f304c897738488d7640488d7f400f854affffff488b5c24e04c8b6424e84c8b6c24f04c8b7424f84c29c248f7c2c0ffffff751a83e23f0f85b7fcffff4889f8c30f1f00662e0f1f8400000000004889d148c1e9070f84d80000004c897424f84c896c24f04c896424e80f1f40000f1886000300000f18864003000048ffc9488b064c8b46084c8b4e104c8b56184c8b5e204c8b66284c8b6e304c8b7638480fc3074c0fc347084c0fc34f104c0fc357184c0fc35f204c0fc367284c0fc36f304c0fc37738488b46404c8b46484c8b4e504c8b56584c8b5e604c8b66684c8b6e704c8b7678480fc347404c0fc347484c0fc34f504c0fc357584c0fc35f604c0fc367684c0fc36f704c0fc37778488db680000000488dbf800000000f854dffffff0faef84c8b6424e84c8b6c24f04c8b7424f883e27f0f85b8fbffff4889f8c3662e0f1f8400000000000f1f4000488d0539490100f7053f5a2a0010000000751a488d0516000000f705fc592a00000200007407488d05d32a0100c366904889f183e1074889fa741bf7d983c1088a0684c088020f84bc00000048ffc648ffc2ffc975ea49b8fffefefefefefefe488b064883c6084989c14d01c10f837d0000004931c14d09c149ffc175724889024883c208488b064883c6084989c14d01c1735c4931c14d09c149ffc175514889024883c208488b064883c6084989c14d01c1733b4931c14d09c149ffc175304889024883c208488b064883c6084989c14d01c1731a4931c14d09c149ffc1750f4889024883c208e973ffffff0f1f00880284c0741248ffc2882284e4740948ffc248c1e810ebe84889d0c30f1f4000f70536592a00000200007513488d05cd220000f705f3582a0000001000751a488d05daf00000f705e0582a00000200007507488d0567000000c3660f1f440000488d05393e0000f705ef582a00400000007539f705e3582a00000200007513488d056a220000f705a0582a0000001000751a488d0577f00000f7058d582a00000200007507488d0504000000c30f1f0048c7c0b8ffffff64488b100f1f440000488b02f78078020000010000000f851d77010089f189f84883e13f4883e03f660f6f2da9c40700660f6f35b1c40700660f6f3db9c4070083f9300f879000000083f8300f8787000000660f120f660f1216660f164f08660f16560866440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660fefc0660f74c1660f74ca660ff8c8660fd7d181eaffff00000f852f2100004883c6104883c7100f1f80000000004883e6f04883e7f0baffff00004531c083e10f83e00f39c1742677074189d0914887f74c8d480f4929c94c8d158fc407004f630c8a4f8d140a41ffe20f1f4000660f6f0e660fefc0660f74c1660f6f1766440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74ca660ff8c866440fd7c9d3ea41d3e94429ca0f855420000048c7c11000000049c7c110000000660fefc00f1f00662e0f1f840000000000660f6f0c0e660f6f140f66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85c41f00004883c110660f6f0c0e660f6f140f66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85541f00004883c110e91bffffff90662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0f66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85cf1e0000660f6f1f660fefc048c7c11000000041b9010000004c8d57014981e2ff0f00004981ea001000000f1f004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f73db01660f73fa0f660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85181e00004883c110660f6fdc4983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db01660f73fa0f660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85881d00004883c110660f6fdce9dbfeffff90662e0f1f840000000000660f74c3660fd7d0f7c2feff00007510660fefc04981ea00100000e9bafeffff660f6f0c0e660f73d801660f73db01e9dc1c00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0e66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85bf1c0000660f6f1f660fefc048c7c11000000041b9020000004c8d57024981e2ff0f00004981ea001000000f1f004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f73db02660f73fa0e660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85081c00004883c110660f6fdc4983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db02660f73fa0e660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85781b00004883c110660f6fdce9dbfeffff90662e0f1f840000000000660f74c3660fd7d0f7c2fcff00007510660fefc04981ea00100000e9bafeffff660f6f0c0e660f73d802660f73db02e9cc1a00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0d66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85af1a0000660f6f1f660fefc048c7c11000000041b9030000004c8d57034981e2ff0f00004981ea001000000f1f004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f73db03660f73fa0d660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85f81900004883c110660f6fdc4983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db03660f73fa0d660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85681900004883c110660f6fdce9dbfeffff90662e0f1f840000000000660f74c3660fd7d0f7c2f8ff00007510660fefc04981ea00100000e9bafeffff660f6f0c0e660f73d803660f73db03e9bc1800006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0c66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f859f180000660f6f1f660fefc048c7c11000000041b9040000004c8d57044981e2ff0f00004981ea001000000f1f004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f73db04660f73fa0c660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85e81700004883c110660f6fdc4983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db04660f73fa0c660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85581700004883c110660f6fdce9dbfeffff90662e0f1f840000000000660f74c3660fd7d0f7c2f0ff00007510660fefc04981ea00100000e9bafeffff660f6f0c0e660f73d804660f73db04e9ac1600006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0b66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f858f160000660f6f1f660fefc048c7c11000000041b9050000004c8d57054981e2ff0f00004981ea001000000f1f004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f73db05660f73fa0b660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85d81500004883c110660f6fdc4983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db05660f73fa0b660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85481500004883c110660f6fdce9dbfeffff90662e0f1f840000000000660f74c3660fd7d0f7c2e0ff00007510660fefc04981ea00100000e9bafeffff660f6f0c0e660f73d805660f73db05e99c1400006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0a66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f857f140000660f6f1f660fefc048c7c11000000041b9060000004c8d57064981e2ff0f00004981ea001000000f1f004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f73db06660f73fa0a660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85c81300004883c110660f6fdc4983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db06660f73fa0a660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85381300004883c110660f6fdce9dbfeffff90662e0f1f840000000000660f74c3660fd7d0f7c2c0ff00007510660fefc04981ea00100000e9bafeffff660f6f0c0e660f73d806660f73db06e98c1200006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0966440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f856f120000660f6f1f660fefc048c7c11000000041b9070000004c8d57074981e2ff0f00004981ea001000000f1f004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f73db07660f73fa09660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85b81100004883c110660f6fdc4983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db07660f73fa09660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85281100004883c110660f6fdce9dbfeffff90662e0f1f840000000000660f74c3660fd7d0f7c280ff00007510660fefc04981ea00100000e9bafeffff660f6f0c0e660f73d807660f73db07e97c1000006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0866440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f855f100000660f6f1f660fefc048c7c11000000041b9080000004c8d57084981e2ff0f00004981ea001000000f1f004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f73db08660f73fa08660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a80f00004883c110660f6fdc4983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db08660f73fa08660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85180f00004883c110660f6fdce9dbfeffff90662e0f1f840000000000660f74c3660fd7d0f7c200ff00007510660fefc04981ea00100000e9bafeffff660f6f0c0e660f73d808660f73db08e96c0e00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0766440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f854f0e0000660f6f1f660fefc048c7c11000000041b9090000004c8d57094981e2ff0f00004981ea001000000f1f004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f73db09660f73fa07660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85980d00004883c110660f6fdc4983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db09660f73fa07660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85080d00004883c110660f6fdce9dbfeffff90662e0f1f840000000000660f74c3660fd7d0f7c200fe00007510660fefc04981ea00100000e9bafeffff660f6f0c0e660f73d809660f73db09e95c0c00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0666440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f853f0c0000660f6f1f660fefc048c7c11000000041b90a0000004c8d570a4981e2ff0f00004981ea001000000f1f004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f73db0a660f73fa06660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85880b00004883c110660f6fdc4983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db0a660f73fa06660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85f80a00004883c110660f6fdce9dbfeffff90662e0f1f840000000000660f74c3660fd7d0f7c200fc00007510660fefc04981ea00100000e9bafeffff660f6f0c0e660f73d80a660f73db0ae94c0a00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0566440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f852f0a0000660f6f1f660fefc048c7c11000000041b90b0000004c8d570b4981e2ff0f00004981ea001000000f1f004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f73db0b660f73fa05660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85780900004883c110660f6fdc4983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db0b660f73fa05660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85e80800004883c110660f6fdce9dbfeffff90662e0f1f840000000000660f74c3660fd7d0f7c200f800007510660fefc04981ea00100000e9bafeffff660f6f0c0e660f73d80b660f73db0be93c0800006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0466440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f851f080000660f6f1f660fefc048c7c11000000041b90c0000004c8d570c4981e2ff0f00004981ea001000000f1f004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f73db0c660f73fa04660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85680700004883c110660f6fdc4983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db0c660f73fa04660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85d80600004883c110660f6fdce9dbfeffff90662e0f1f840000000000660f74c3660fd7d0f7c200f000007510660fefc04981ea00100000e9bafeffff660f6f0c0e660f73d80c660f73db0ce92c0600006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f850f060000660f6f1f660fefc048c7c11000000041b90d0000004c8d570d4981e2ff0f00004981ea001000000f1f004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f73db0d660f73fa03660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85580500004883c110660f6fdc4983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db0d660f73fa03660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85c80400004883c110660f6fdce9dbfeffff90662e0f1f840000000000660f74c3660fd7d0f7c200e000007510660fefc04981ea00100000e9bafeffff660f6f0c0e660f73d80d660f73db0de91c0400006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0266440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85ff030000660f6f1f660fefc048c7c11000000041b90e0000004c8d570e4981e2ff0f00004981ea001000000f1f004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f73db0e660f73fa02660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85480300004883c110660f6fdc4983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db0e660f73fa02660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85b80200004883c110660f6fdce9dbfeffff90662e0f1f840000000000660f74c3660fd7d0f7c200c000007510660fefc04981ea00100000e9bafeffff660f6f0c0e660f73d80e660f73db0ee90c0200006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0166440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85ef010000660f6f1f660fefc048c7c11000000041b90f0000004c8d570f4981e2ff0f00004981ea001000000f1f004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f73db0f660f73fa01660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85380100004883c110660f6fdc4983c2100f8f96000000660f6f0c0e660f6f140f660f6fe2660f73db0f660f73fa01660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a80000004883c110660f6fdce9dbfeffff90662e0f1f840000000000660f74c3660fd7d0f7c2008000007510660fefc04981ea00100000e9bafeffff660f6f0c0e660f73db0f660f73d80f9066440f6fc166440f6fce66440f6fd366440f6fde66440f64c566440f64c966440f64d566440f64db66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febda660f74cb660ff8c8660fd7d1f7d26690662e0f1f840000000000498d4409f0488d3c07488d340e4585c0740e4887f790662e0f1f840000000000480fbcd20fb60c160fb60417488d155de707008b0c8a8b048229c8c331c0c3900fb60e0fb607488d1543e707008b0c8a8b048229c8c3662e0f1f84000000000048c7c0b8ffffff64488b100f1f440000488b02f78078020000010000000f85dd54010089f189f84883e13f4883e03f660f6f2569a20700660f6f2d71a20700660f6f3579a2070083f9300f878000000083f830777bf30f6f0ff30f6f16660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660fefc0660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85b11a00004883c6104883c710660f1f8400000000004883e6f04883e7f0baffff00004531c083e10f83e00f660fefc039c1743277074189d0914887f7660f6f17660f6f0e4c8d480f4929c94c8d15d3a107004f630c8a660f74c14f8d140a41ffe20f1f4000660f6f0e660f74c1660f6f17660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74ca660ff8c866440fd7c9d3ea41d3e94429ca0f85cf19000048c7c11000000049c7c1100000004889ca660f1f440000660f6f0417660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a488d52107668660f6f0417660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a488d52107610e94bffffff90662e0f1f8400000000000f8326190000488d4c0af00fb6040f0fb6140e488d0db6e407008b04818b149129d0c30f1f00662e0f1f840000000000660f73fa0f660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8566180000660f6f1f48c7c11000000041b9010000004c8d57014981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fd6000000660f6f0417660f3a0f4417f001660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86a61700004883c2104983c2107f6c660f6f0417660f3a0f4417f001660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f863c1700004883c210e923ffffff0f1f004981ea00100000660f6f4417f0660f73d801660f3a63c03a83f90e0f8709ffffffe9bb160000662e0f1f840000000000660f73fa0e660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85c6160000660f6f1f48c7c11000000041b9020000004c8d57024981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fd6000000660f6f0417660f3a0f4417f002660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86061600004883c2104983c2107f6c660f6f0417660f3a0f4417f002660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f869c1500004883c210e923ffffff0f1f004981ea00100000660f6f4417f0660f73d802660f3a63c03a83f90d0f8709ffffffe91b150000662e0f1f840000000000660f73fa0d660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8526150000660f6f1f48c7c11000000041b9030000004c8d57034981e2ff0f00004981ea001000004889ca4983c2100f8fde000000660f6f0417660f3a0f4417f003660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f866e1400004883c2104983c2107f74660f6f0417660f3a0f4417f003660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86041400004883c210e923ffffff90662e0f1f8400000000004981ea00100000660f6f4417f0660f73d803660f3a63c03a83f90c0f8701ffffffe97b130000662e0f1f840000000000660f73fa0c660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8586130000660f6f1f48c7c11000000041b9040000004c8d57044981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fd6000000660f6f0417660f3a0f4417f004660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86c61200004883c2104983c2107f6c660f6f0417660f3a0f4417f004660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f865c1200004883c210e923ffffff0f1f004981ea00100000660f6f4417f0660f73d804660f3a63c03a83f90b0f8709ffffffe9db110000662e0f1f840000000000660f73fa0b660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85e6110000660f6f1f48c7c11000000041b9050000004c8d57054981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fd6000000660f6f0417660f3a0f4417f005660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86261100004883c2104983c2107f6c660f6f0417660f3a0f4417f005660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86bc1000004883c210e923ffffff0f1f004981ea00100000660f6f4417f0660f73d805660f3a63c03a83f90a0f8709ffffffe93b100000662e0f1f840000000000660f73fa0a660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8546100000660f6f1f48c7c11000000041b9060000004c8d57064981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fd6000000660f6f0417660f3a0f4417f006660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86860f00004883c2104983c2107f6c660f6f0417660f3a0f4417f006660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f861c0f00004883c210e923ffffff0f1f004981ea00100000660f6f4417f0660f73d806660f3a63c03a83f9090f8709ffffffe99b0e0000662e0f1f840000000000660f73fa09660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85a60e0000660f6f1f48c7c11000000041b9070000004c8d57074981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fd6000000660f6f0417660f3a0f4417f007660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86e60d00004883c2104983c2107f6c660f6f0417660f3a0f4417f007660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f867c0d00004883c210e923ffffff0f1f004981ea00100000660f6f4417f0660f73d807660f3a63c03a83f9080f8709ffffffe9fb0c0000662e0f1f840000000000660f73fa08660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85060d0000660f6f1f48c7c11000000041b9080000004c8d57084981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fd6000000660f6f0417660f3a0f4417f008660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86460c00004883c2104983c2107f6c660f6f0417660f3a0f4417f008660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86dc0b00004883c210e923ffffff0f1f004981ea00100000660f6f4417f0660f73d808660f3a63c03a83f9070f8709ffffffe95b0b0000662e0f1f840000000000660f73fa07660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85660b0000660f6f1f48c7c11000000041b9090000004c8d57094981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fd6000000660f6f0417660f3a0f4417f009660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86a60a00004883c2104983c2107f6c660f6f0417660f3a0f4417f009660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f863c0a00004883c210e923ffffff0f1f004981ea00100000660f6f4417f0660f73d809660f3a63c03a83f9060f8709ffffffe9bb090000662e0f1f840000000000660f73fa06660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85c6090000660f6f1f48c7c11000000041b90a0000004c8d570a4981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fd6000000660f6f0417660f3a0f4417f00a660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86060900004883c2104983c2107f6c660f6f0417660f3a0f4417f00a660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f869c0800004883c210e923ffffff0f1f004981ea00100000660f6f4417f0660f73d80a660f3a63c03a83f9050f8709ffffffe91b080000662e0f1f840000000000660f73fa05660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8526080000660f6f1f48c7c11000000041b90b0000004c8d570b4981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fd6000000660f6f0417660f3a0f4417f00b660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86660700004883c2104983c2107f6c660f6f0417660f3a0f4417f00b660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86fc0600004883c210e923ffffff0f1f004981ea00100000660f6f4417f0660f73d80b660f3a63c03a83f9040f8709ffffffe97b060000662e0f1f840000000000660f73fa04660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8586060000660f6f1f48c7c11000000041b90c0000004c8d570c4981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fd6000000660f6f0417660f3a0f4417f00c660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86c60500004883c2104983c2107f6c660f6f0417660f3a0f4417f00c660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f865c0500004883c210e923ffffff0f1f004981ea00100000660f6f4417f0660f73d80c660f3a63c03a83f9030f8709ffffffe9db040000662e0f1f840000000000660f73fa03660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85e6040000660f6f1f48c7c11000000041b90d0000004c8d570d4981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fd6000000660f6f0417660f3a0f4417f00d660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86260400004883c2104983c2107f6c660f6f0417660f3a0f4417f00d660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86bc0300004883c210e923ffffff0f1f004981ea00100000660f6f4417f0660f73d80d660f3a63c03a83f9020f8709ffffffe93b030000662e0f1f840000000000660f73fa02660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8546030000660f6f1f48c7c11000000041b90e0000004c8d570e4981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fd6000000660f6f0417660f3a0f4417f00e660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86860200004883c2104983c2107f6c660f6f0417660f3a0f4417f00e660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f861c0200004883c210e923ffffff0f1f004981ea00100000660f6f4417f0660f73d80e660f3a63c03a83f9010f8709ffffffe99b010000662e0f1f840000000000660f73fa01660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85a6010000660f6f1f48c7c11000000041b90f0000004c8d570f4981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fd6000000660f6f0417660f3a0f4417f00f660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86e60000004883c2104983c2107f6c660f6f0417660f3a0f4417f00f660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f867c0000004883c210e923ffffff0f1f004981ea00100000660f6f4417f0660f73d80f660f3a63c03a83f9000f8709ffffff660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a6690735a4801ca4a8d7c0ff00fb604170fb614164585c0740192488d0de1cb07008b14918b048129d0c3488d3c07488d340e4585c0740b4887f70f1f840000000000480fbcd20fb60c160fb60417488d15adcb07008b0c8a8b048229c8c331c0c3900fb60e0fb607488d1593cb07008b0c8a8b048229c8c3662e0f1f84000000000048c7c0b8ffffff64488b100f1f440000488b02f78078020000010000000f852d39010089f189f84883e13f4883e03fc5f96f25b9860700c5f96f2de1860700c5f96f35c986070083f930776483f830775fc5fa6f0fc5fa6f16c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5f9efc0c5f974c1c5f174cac5f1f8c8c5f9d7d181eaffff00000f858e1500004883c6104883c710660f1f4400004883e6f04883e7f0baffff00004531c083e10f83e00fc5f9efc039c1743277074189d0914887f7c5f96f17c5f96f0e4c8d480f4929c94c8d15838607004f630c8ac5f974c14f8d140a41ffe20f1f4000c5f96f0ec5f974c1c5f96f17c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5f174cac5f1f8c8c579d7c9d3ea41d3e94429ca0f85c914000048c7c11000000049c7c1100000004889cac5f96f0417c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a488d52107641c5f96f0417c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a488d52107602eb800f8366140000488d4c0af00fb6040f0fb6140e488d0d86c907008b04818b149129d0c30f1f00662e0f1f840000000000c5e973fa0fc5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f85c0130000c5f96f1f48c7c11000000041b9010000004c8d57014981e2ff0f00004981ea001000004889ca66904983c2100f8fa6000000c5f96f0417c4e3790f4417f001c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f861f1300004883c2104983c2107f55c5f96f0417c4e3790f4417f001c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86ce1200004883c210e955ffffff0f1f4400004981ea00100000c5f96f4417f0c5f973d801c4e37963c03a83f90e0f8739ffffffe95b120000662e0f1f840000000000c5e973fa0ec5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8570120000c5f96f1f48c7c11000000041b9020000004c8d57024981e2ff0f00004981ea001000004889ca66904983c2100f8fa6000000c5f96f0417c4e3790f4417f002c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86cf1100004883c2104983c2107f55c5f96f0417c4e3790f4417f002c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f867e1100004883c210e955ffffff0f1f4400004981ea00100000c5f96f4417f0c5f973d802c4e37963c03a83f90d0f8739ffffffe90b110000662e0f1f840000000000c5e973fa0dc5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8520110000c5f96f1f48c7c11000000041b9030000004c8d57034981e2ff0f00004981ea001000004889ca4983c2100f8fa8000000c5f96f0417c4e3790f4417f003c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86811000004883c2104983c2107f57c5f96f0417c4e3790f4417f003c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86301000004883c210e955ffffff0f1f80000000004981ea00100000c5f96f4417f0c5f973d803c4e37963c03a83f90c0f8737ffffffe9bb0f0000662e0f1f840000000000c5e973fa0cc5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f85d00f0000c5f96f1f48c7c11000000041b9040000004c8d57044981e2ff0f00004981ea001000004889ca66904983c2100f8fa6000000c5f96f0417c4e3790f4417f004c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f862f0f00004883c2104983c2107f55c5f96f0417c4e3790f4417f004c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86de0e00004883c210e955ffffff0f1f4400004981ea00100000c5f96f4417f0c5f973d804c4e37963c03a83f90b0f8739ffffffe96b0e0000662e0f1f840000000000c5e973fa0bc5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f85800e0000c5f96f1f48c7c11000000041b9050000004c8d57054981e2ff0f00004981ea001000004889ca66904983c2100f8fa6000000c5f96f0417c4e3790f4417f005c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86df0d00004883c2104983c2107f55c5f96f0417c4e3790f4417f005c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f868e0d00004883c210e955ffffff0f1f4400004981ea00100000c5f96f4417f0c5f973d805c4e37963c03a83f90a0f8739ffffffe91b0d0000662e0f1f840000000000c5e973fa0ac5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f85300d0000c5f96f1f48c7c11000000041b9060000004c8d57064981e2ff0f00004981ea001000004889ca66904983c2100f8fa6000000c5f96f0417c4e3790f4417f006c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f868f0c00004883c2104983c2107f55c5f96f0417c4e3790f4417f006c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f863e0c00004883c210e955ffffff0f1f4400004981ea00100000c5f96f4417f0c5f973d806c4e37963c03a83f9090f8739ffffffe9cb0b0000662e0f1f840000000000c5e973fa09c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f85e00b0000c5f96f1f48c7c11000000041b9070000004c8d57074981e2ff0f00004981ea001000004889ca66904983c2100f8fa6000000c5f96f0417c4e3790f4417f007c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f863f0b00004883c2104983c2107f55c5f96f0417c4e3790f4417f007c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86ee0a00004883c210e955ffffff0f1f4400004981ea00100000c5f96f4417f0c5f973d807c4e37963c03a83f9080f8739ffffffe97b0a0000662e0f1f840000000000c5e973fa08c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f85900a0000c5f96f1f48c7c11000000041b9080000004c8d57084981e2ff0f00004981ea001000004889ca66904983c2100f8fa6000000c5f96f0417c4e3790f4417f008c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86ef0900004883c2104983c2107f55c5f96f0417c4e3790f4417f008c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f869e0900004883c210e955ffffff0f1f4400004981ea00100000c5f96f4417f0c5f973d808c4e37963c03a83f9070f8739ffffffe92b090000662e0f1f840000000000c5e973fa07c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8540090000c5f96f1f48c7c11000000041b9090000004c8d57094981e2ff0f00004981ea001000004889ca66904983c2100f8fa6000000c5f96f0417c4e3790f4417f009c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f869f0800004883c2104983c2107f55c5f96f0417c4e3790f4417f009c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f864e0800004883c210e955ffffff0f1f4400004981ea00100000c5f96f4417f0c5f973d809c4e37963c03a83f9060f8739ffffffe9db070000662e0f1f840000000000c5e973fa06c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f85f0070000c5f96f1f48c7c11000000041b90a0000004c8d570a4981e2ff0f00004981ea001000004889ca66904983c2100f8fa6000000c5f96f0417c4e3790f4417f00ac5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f864f0700004883c2104983c2107f55c5f96f0417c4e3790f4417f00ac5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86fe0600004883c210e955ffffff0f1f4400004981ea00100000c5f96f4417f0c5f973d80ac4e37963c03a83f9050f8739ffffffe98b060000662e0f1f840000000000c5e973fa05c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f85a0060000c5f96f1f48c7c11000000041b90b0000004c8d570b4981e2ff0f00004981ea001000004889ca66904983c2100f8fa6000000c5f96f0417c4e3790f4417f00bc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86ff0500004883c2104983c2107f55c5f96f0417c4e3790f4417f00bc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86ae0500004883c210e955ffffff0f1f4400004981ea00100000c5f96f4417f0c5f973d80bc4e37963c03a83f9040f8739ffffffe93b050000662e0f1f840000000000c5e973fa04c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8550050000c5f96f1f48c7c11000000041b90c0000004c8d570c4981e2ff0f00004981ea001000004889ca66904983c2100f8fa6000000c5f96f0417c4e3790f4417f00cc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86af0400004883c2104983c2107f55c5f96f0417c4e3790f4417f00cc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f865e0400004883c210e955ffffff0f1f4400004981ea00100000c5f96f4417f0c5f973d80cc4e37963c03a83f9030f8739ffffffe9eb030000662e0f1f840000000000c5e973fa03c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8500040000c5f96f1f48c7c11000000041b90d0000004c8d570d4981e2ff0f00004981ea001000004889ca66904983c2100f8fa6000000c5f96f0417c4e3790f4417f00dc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f865f0300004883c2104983c2107f55c5f96f0417c4e3790f4417f00dc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f860e0300004883c210e955ffffff0f1f4400004981ea00100000c5f96f4417f0c5f973d80dc4e37963c03a83f9020f8739ffffffe99b020000662e0f1f840000000000c5e973fa02c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f85b0020000c5f96f1f48c7c11000000041b90e0000004c8d570e4981e2ff0f00004981ea001000004889ca66904983c2100f8fa6000000c5f96f0417c4e3790f4417f00ec5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f860f0200004883c2104983c2107f55c5f96f0417c4e3790f4417f00ec5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86be0100004883c210e955ffffff0f1f4400004981ea00100000c5f96f4417f0c5f973d80ec4e37963c03a83f9010f8739ffffffe94b010000662e0f1f840000000000c5e973fa01c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8560010000c5f96f1f48c7c11000000041b90f0000004c8d570f4981e2ff0f00004981ea001000004889ca66904983c2100f8fa6000000c5f96f0417c4e3790f4417f00fc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86bf0000004883c2104983c2107f55c5f96f0417c4e3790f4417f00fc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a76724883c210e959ffffff660f1f8400000000004981ea00100000c5f96f4417f0c5f973d80fc4e37963c03a83f9000f8739ffffffc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a90662e0f1f840000000000735a4801ca4a8d7c0ff00fb604170fb614164585c0740192488d0d71b507008b14918b048129d0c3488d3c07488d340e4585c0740b4887f70f1f840000000000480fbcd20fb60c160fb60417488d153db507008b0c8a8b048229c8c331c0c3900fb60e0fb607488d1523b507008b0c8a8b048229c8c3662e0f1f8400000000004883fa204889f87377f6c201740b0fb60e880f48ffc648ffc7f6c20274120fb70e66890f4883c6024883c7020f1f4000f6c204740c8b0e890f4883c6044883c704f6c208740e488b0e48890f4883c6084883c70881e2f0000000741f0f1f4000488b0e4c8b460848890f4c89470883ea10488d7610488d7f1075e5f3c30f1f0048894424f889f183e1077434488d5411f883e9086690662e0f1f8400000000000fb6068807ffc1488d7601488d7f0175ef0f1f440000662e0f1f8400000000004881fa00040000777789d1c1e9057460ffc9488b064c8b46084c8b4e104c8b56184889074c8947084c894f104c895718488d7620488d7f207436ffc9488b064c8b46084c8b4e104c8b56184889074c8947084c894f104c895718488d7620488d7f2075ac6690662e0f1f84000000000083e21f488b4424f80f85cbfefffff3c34c8b1d19ed29004939d34c0f47da4c89d94983e3f848c1e9037405f348a566904c29da48f7c2f8ffffff751483e207488b4424f80f858ffefffff3c30f1f40004c8b05b9ec29004939d04c0f47c24c89c14983e0c048c1e9060f84ab0100004c897424f04c896c24e84c896424e048895c24d8833d8e0d2a00000f84c000000048ffc9488b06488b5e084c8b4e104c8b56184c8b5e204c8b66284c8b6e304c8b76380f188e800300000f188ec003000048890748895f084c894f104c8957184c895f204c8967284c896f304c897738488d7640488d7f400f841901000048ffc9488b06488b5e084c8b4e104c8b56184c8b5e204c8b66284c8b6e304c8b763848890748895f084c894f104c8957184c895f204c8967284c896f304c8977380f0d8f400300000f0d8f80030000488d7640488d7f400f8546ffffffe9b70000009048ffc9488b06488b5e084c8b4e104c8b56184c8b5e204c8b66284c8b6e304c8b76380f188e800300000f188ec003000048890748895f084c894f104c8957184c895f204c8967284c896f304c897738488d7640488d7f40745d48ffc9488b06488b5e084c8b4e104c8b56184c8b5e204c8b66284c8b6e304c8b76380f188f400300000f188f8003000048890748895f084c894f104c8957184c895f204c8967284c896f304c897738488d7640488d7f400f854affffff488b5c24d84c8b6424e04c8b6c24e84c8b7424f04c29c248f7c2c0ffffff751a83e23f488b4424f80f85a5fcfffff3c3662e0f1f8400000000004889d148c1e9070f84d80000004c897424f04c896c24e84c896424e00f1f40000f1886000300000f18864003000048ffc9488b064c8b46084c8b4e104c8b56184c8b5e204c8b66284c8b6e304c8b7638480fc3074c0fc347084c0fc34f104c0fc357184c0fc35f204c0fc367284c0fc36f304c0fc37738488b46404c8b46484c8b4e504c8b56584c8b5e604c8b66684c8b6e704c8b7678480fc347404c0fc347484c0fc34f504c0fc357584c0fc35f604c0fc367684c0fc36f704c0fc37778488db680000000488dbf800000000f854dffffff0faef84c8b6424e04c8b6c24e84c8b7424f083e27f488b4424f80f85a6fbfffff3c3662e0f1f840000000000904889d083e007ff24c5f0334a000f1f00488b064883ef184883ee10488b4e184883c20248894718660f1f840000000000488b462048894f20488b4e2848894728488b463048894f30488b4e384883c740488947f84883ea080f84ca0000004883c640488b0648890f488b4e0848894708488b461048894f10488b4e1848894718ebae660f1f4400004885d20f849a000000488b064883ef08ebce660f1f4400004883ea01488b0e747f4883c608ebb390488b064883c2064883ee304883ef38eb870f1f8000000000488b0e4883c2054883ee284883ef30e964ffffff0f1f4000488b064883c2044883ee204883ef28e944ffffff0f1f4000488b0e4883c2034883ee184883ef20e924ffffff0f1f4000488b0e4883c2014883ee084883ef10e94cffffff0f1f400048890ff3c30f1f0089f04889d141b84000000083e00783e1034883e6f8c1e003534129c04883f9020f84e20000004883f90374544883f901741e4885d274424c8b0e488b5e084883ef084883c608e99b0000000f1f4400004883ea014c8b164c8b4e080f85bf0000000f1f800000000089c149d3ea4489c149d3e14d09d14c890f5bc30f1f440000488b1e4c8b5e084883c2014883ef1089c14d89d94c8b561048d3eb4489c149d3e14c09cb48895f1089c14c89d34c8b4e1849d3eb4489c14883c72048d3e34909db4c895ff84883ea04749d4883c62089c14d89cb488b1e49d3ea4489c149d3e34d09da4c891789c14989da4c8b5e0849d3e94489c149d3e24d09d14c894f08eb8e0f1f80000000004c8b1e4c8b56084883c2024883ee084883ef18eb8b0f1f004883c610eba9662e0f1f8400000000004889d083e007ff24c530344a000f1f004c8d46d0488b76f84883ef284889f84883c2024c89c14c8b4920488970206690488b71184c8948184c8b491048897010488b71084c8948084883ea084d8b084889374c8d41c0488d78c00f8410010000498b70384c89c14889f84c894f384c8b493048897030488b71284c8948284c8b492048897020eba80f1f8400000000004885d20f84db0000004c8d46c04883ef38488b76f84889f84c89c1ebc10f1f004883ef404883ea014c8b4ef80f84ae0000004c8d46b8eb980f1f840000000000488d4ef0488d47f8488b76f84883c2064989c84889c7e95dffffff0f1f4400004c8d46e84883ef104c8b4ef84883c2054889f84c89c1e935ffffff0f1f4400004c8d46e04883ef18488b76f84883c2044889f84c89c1e90dffffff0f1f4400004c8d46d84883ef204c8b4ef84883c2034889f84c89c1e9e5feffff0f1f4400004c8d46c84883ef304c8b4ef84883c2014889f84c89c1e90bffffff0f1f4400004c894f38f3c3662e0f1f84000000000089f04889d141bb4000000083e00783e1034883e6f8c1e0034154554129c34883f902530f84070100004883f90374614883f90174234885d27448488d6ee04c8d57e84c8b264c8b4ef84c89d74889eee9b90000000f1f40004883ea014c8d57e04c8b064c8b66f80f85e30000000f1f0089c149d3ec4489d949d3e04d09e04d8942185b5d415cc3660f1f840000000000488d6ee84c8d57f04c8b0e488b5ef84883c2014889ee4c89d789c14989dc4c8b460849d3ec4489d949d3e14d09e14c894f084989f189c14c89c64c8b650048d3ee4489d9498d69e048d3e34889d94809f14883ea0449890a4c8d57e0748289c14c89e34c8b4d1848d3eb4489d94889ee49d3e04c89d74909d84d89421889c14d89c8488b5e1049d3e84489d949d3e44d09c44c896710eb810f1f8400000000004c8d4ef04883ef08488b1e4989fa4c8b46f84883c2024c89cde977ffffff6690488d6ed8eb98662e0f1f84000000000066480f6ece4889f9660f60c9660f60c94883e13f660f70c9004883f9307721f30f6f07660f74c1660fd7c085c00f859d0100004883c7104883e7f0eb430f1f004883e10f4883e7f0660f6f07660f74c1660fd7c0d3f885c074160fbcc04801f84801c8c36690662e0f1f8400000000004883c7106690662e0f1f840000000000660f6f07660f74c1660fd7c085c00f853c010000660f6f5710660f74d1660fd7c285c00f8537010000660f6f5f20660f74d9660fd7c385c00f8532010000660f6f6730660f74e14883c740660fd7c485c00f85e900000048f7c73f0000007460660f6f07660f74c1660fd7c085c00f85dc000000660f6f5710660f74d1660fd7c285c00f85d7000000660f6f5f20660f74d9660fd7c385c00f85d2000000660f6f5f30660f74d9660fd7c34883c74085c00f85890000004883e7c00f1f440000660f6f07660f6f5710660f6f5f20660f6f6730660f74c1660f74d1660f74d9660f74e1660fded8660fdee2660fdee3660fd7c44883c74085c074c54883ef40660fd7c085c07549660fd7c285c07551660f6f5f20660f74d9660f744f30660fd7c385c0754b660fd7c10fbcc0488d440730c30f1f4000662e0f1f8400000000000fbcc0488d4438f0c30f1f80000000000fbcc04801f8c3660f1f8400000000000fbcc0488d443810c30f1f80000000000fbcc0488d443820c30f1f80000000004831c0c3662e0f1f8400000000006690660f6ece89f825ff0f0000660f60c93dc00f0000660f61c9660f70c9000f8f4d010000f30f6f07660fefdb660f6fe0660f74c1660f74e3660febc4660fd7c085c0740d0fbcc0488d0407c30f1f440000f30f6f4710660f6fe0660f74c1660f74e3660febc4660fd7c8f30f6f4720660f6fe0660f74c148c1e110660f74e3660febc4660fd7c0f30f6f4730660f74d848c1e020660f74c14809c8660febc3660fd7c848c1e1304809c84885c00f85ae0000000f1f4000662e0f1f840000000000660feff64883e7c04883c740660f6f2f660f6f5710660f6f5f20660fefe9660f6f6730660fefd1660fefd9660fda2f660fefe1660fda5710660fda5f20660fdaea660fda6730660fdaeb660fdaec660f74ee660fd7c585c074ae660f6f2f660f6fc5660f74e9660f74c6660febe8660f74d6660f74de660f74e6660fd7cd660fd7c248c1e01066440fd7c3660fd7d449c1e0204c09c04809c848c1e2304809d0480fbcc0488d0407c30f1f80000000004889fa660fefd24883e2c0660f6fc1660f6f1a660f6fe3660f74d9660f74e2660febdc66440fd7c3660f6f5a10660f6fe3660f74d9660f74e2660febdc660fd7c3660f6f5a20660f6fe3660f74d948c1e010660f74e2660febdc66440fd7cb660f6f5a30660f74d349c1e120660f74c34c09c84c09c0660febc2660fd7c848c1e1304809c889f928d148d3e84885c00f855bffffffe9a8feffff660f1f44000089f189f84883e13f4883e03f83f930773f83f830773a660f120f660f1216660f164f08660f165608660fefc0660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85e81100004883c6104883c7104883e6f04883e7f0baffff00004531c083e10f83e00f39c1742677074189d0914887f74c8d480f4929c94c8d15af6307004f630c8a4f8d140a41ffe20f1f4000660f6f0e660fefc0660f74c1660f740f660ff8c866440fd7c9d3ea41d3e94429ca0f855e11000048c7c11000000049c7c110000000660fefc00f1f8000000000660f6f0c0e660f6f140f660f74c1660f74ca660ff8c8660fd7d181eaffff00000f851a1100004883c110660f6f0c0e660f6f140f660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85f01000004883c110ebaa662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0f660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85b5100000660f6f1f660fefc048c7c11000000041b9010000004c8d57014981e2ff0f00004981ea00100000660f1f8400000000004983c2107f7a660f6f0c0e660f6f140f660f6fe2660f3a0fd301660f74c1660f74ca660ff8c8660fd7d181eaffff00000f854a1000004883c110660f6fdc4983c2107f3c660f6f0c0e660f6f140f660f6fe2660f3a0fd301660f74c1660f74ca660ff8c8660fd7d181eaffff00000f850c1000004883c110660f6fdceb826690660f74c3660fd7d0f7c2feff00007510660fefc04981ea00100000e966ffffff660f6f0c0e660f73d801660f73db01e9bc0f00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0e660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85950f0000660f6f1f660fefc048c7c11000000041b9020000004c8d57024981e2ff0f00004981ea00100000660f1f8400000000004983c2107f7a660f6f0c0e660f6f140f660f6fe2660f3a0fd302660f74c1660f74ca660ff8c8660fd7d181eaffff00000f852a0f00004883c110660f6fdc4983c2107f3c660f6f0c0e660f6f140f660f6fe2660f3a0fd302660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ec0e00004883c110660f6fdceb826690660f74c3660fd7d0f7c2fcff00007510660fefc04981ea00100000e966ffffff660f6f0c0e660f73d802660f73db02e99c0e00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0d660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85750e0000660f6f1f660fefc048c7c11000000041b9030000004c8d57034981e2ff0f00004981ea00100000660f1f8400000000004983c2107f7a660f6f0c0e660f6f140f660f6fe2660f3a0fd303660f74c1660f74ca660ff8c8660fd7d181eaffff00000f850a0e00004883c110660f6fdc4983c2107f3c660f6f0c0e660f6f140f660f6fe2660f3a0fd303660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85cc0d00004883c110660f6fdceb826690660f74c3660fd7d0f7c2f8ff00007510660fefc04981ea00100000e966ffffff660f6f0c0e660f73d803660f73db03e97c0d00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0c660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85550d0000660f6f1f660fefc048c7c11000000041b9040000004c8d57044981e2ff0f00004981ea00100000660f1f8400000000004983c2107f7a660f6f0c0e660f6f140f660f6fe2660f3a0fd304660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ea0c00004883c110660f6fdc4983c2107f3c660f6f0c0e660f6f140f660f6fe2660f3a0fd304660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ac0c00004883c110660f6fdceb826690660f74c3660fd7d0f7c2f0ff00007510660fefc04981ea00100000e966ffffff660f6f0c0e660f73d804660f73db04e95c0c00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0b660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85350c0000660f6f1f660fefc048c7c11000000041b9050000004c8d57054981e2ff0f00004981ea00100000660f1f8400000000004983c2107f7a660f6f0c0e660f6f140f660f6fe2660f3a0fd305660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ca0b00004883c110660f6fdc4983c2107f3c660f6f0c0e660f6f140f660f6fe2660f3a0fd305660f74c1660f74ca660ff8c8660fd7d181eaffff00000f858c0b00004883c110660f6fdceb826690660f74c3660fd7d0f7c2e0ff00007510660fefc04981ea00100000e966ffffff660f6f0c0e660f73d805660f73db05e93c0b00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0a660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85150b0000660f6f1f660fefc048c7c11000000041b9060000004c8d57064981e2ff0f00004981ea00100000660f1f8400000000004983c2107f7a660f6f0c0e660f6f140f660f6fe2660f3a0fd306660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85aa0a00004883c110660f6fdc4983c2107f3c660f6f0c0e660f6f140f660f6fe2660f3a0fd306660f74c1660f74ca660ff8c8660fd7d181eaffff00000f856c0a00004883c110660f6fdceb826690660f74c3660fd7d0f7c2c0ff00007510660fefc04981ea00100000e966ffffff660f6f0c0e660f73d806660f73db06e91c0a00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa09660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85f5090000660f6f1f660fefc048c7c11000000041b9070000004c8d57074981e2ff0f00004981ea00100000660f1f8400000000004983c2107f7a660f6f0c0e660f6f140f660f6fe2660f3a0fd307660f74c1660f74ca660ff8c8660fd7d181eaffff00000f858a0900004883c110660f6fdc4983c2107f3c660f6f0c0e660f6f140f660f6fe2660f3a0fd307660f74c1660f74ca660ff8c8660fd7d181eaffff00000f854c0900004883c110660f6fdceb826690660f74c3660fd7d0f7c280ff00007510660fefc04981ea00100000e966ffffff660f6f0c0e660f73d807660f73db07e9fc0800006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa08660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85d5080000660f6f1f660fefc048c7c11000000041b9080000004c8d57084981e2ff0f00004981ea00100000660f1f8400000000004983c2107f7a660f6f0c0e660f6f140f660f6fe2660f3a0fd308660f74c1660f74ca660ff8c8660fd7d181eaffff00000f856a0800004883c110660f6fdc4983c2107f3c660f6f0c0e660f6f140f660f6fe2660f3a0fd308660f74c1660f74ca660ff8c8660fd7d181eaffff00000f852c0800004883c110660f6fdceb826690660f74c3660fd7d0f7c200ff00007510660fefc04981ea00100000e966ffffff660f6f0c0e660f73d808660f73db08e9dc0700006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa07660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85b5070000660f6f1f660fefc048c7c11000000041b9090000004c8d57094981e2ff0f00004981ea00100000660f1f8400000000004983c2107f7a660f6f0c0e660f6f140f660f6fe2660f3a0fd309660f74c1660f74ca660ff8c8660fd7d181eaffff00000f854a0700004883c110660f6fdc4983c2107f3c660f6f0c0e660f6f140f660f6fe2660f3a0fd309660f74c1660f74ca660ff8c8660fd7d181eaffff00000f850c0700004883c110660f6fdceb826690660f74c3660fd7d0f7c200fe00007510660fefc04981ea00100000e966ffffff660f6f0c0e660f73d809660f73db09e9bc0600006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa06660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8595060000660f6f1f660fefc048c7c11000000041b90a0000004c8d570a4981e2ff0f00004981ea00100000660f1f8400000000004983c2107f7a660f6f0c0e660f6f140f660f6fe2660f3a0fd30a660f74c1660f74ca660ff8c8660fd7d181eaffff00000f852a0600004883c110660f6fdc4983c2107f3c660f6f0c0e660f6f140f660f6fe2660f3a0fd30a660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ec0500004883c110660f6fdceb826690660f74c3660fd7d0f7c200fc00007510660fefc04981ea00100000e966ffffff660f6f0c0e660f73d80a660f73db0ae99c0500006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa05660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8575050000660f6f1f660fefc048c7c11000000041b90b0000004c8d570b4981e2ff0f00004981ea00100000660f1f8400000000004983c2107f7a660f6f0c0e660f6f140f660f6fe2660f3a0fd30b660f74c1660f74ca660ff8c8660fd7d181eaffff00000f850a0500004883c110660f6fdc4983c2107f3c660f6f0c0e660f6f140f660f6fe2660f3a0fd30b660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85cc0400004883c110660f6fdceb826690660f74c3660fd7d0f7c200f800007510660fefc04981ea00100000e966ffffff660f6f0c0e660f73d80b660f73db0be97c0400006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa04660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8555040000660f6f1f660fefc048c7c11000000041b90c0000004c8d570c4981e2ff0f00004981ea00100000660f1f8400000000004983c2107f7a660f6f0c0e660f6f140f660f6fe2660f3a0fd30c660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ea0300004883c110660f6fdc4983c2107f3c660f6f0c0e660f6f140f660f6fe2660f3a0fd30c660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ac0300004883c110660f6fdceb826690660f74c3660fd7d0f7c200f000007510660fefc04981ea00100000e966ffffff660f6f0c0e660f73d80c660f73db0ce95c0300006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa03660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8535030000660f6f1f660fefc048c7c11000000041b90d0000004c8d570d4981e2ff0f00004981ea00100000660f1f8400000000004983c2107f7a660f6f0c0e660f6f140f660f6fe2660f3a0fd30d660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ca0200004883c110660f6fdc4983c2107f3c660f6f0c0e660f6f140f660f6fe2660f3a0fd30d660f74c1660f74ca660ff8c8660fd7d181eaffff00000f858c0200004883c110660f6fdceb826690660f74c3660fd7d0f7c200e000007510660fefc04981ea00100000e966ffffff660f6f0c0e660f73d80d660f73db0de93c0200006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa02660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f8515020000660f6f1f660fefc048c7c11000000041b90e0000004c8d570e4981e2ff0f00004981ea00100000660f1f8400000000004983c2107f7a660f6f0c0e660f6f140f660f6fe2660f3a0fd30e660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85aa0100004883c110660f6fdc4983c2107f3c660f6f0c0e660f6f140f660f6fe2660f3a0fd30e660f74c1660f74ca660ff8c8660fd7d181eaffff00000f856c0100004883c110660f6fdceb826690660f74c3660fd7d0f7c200c000007510660fefc04981ea00100000e966ffffff660f6f0c0e660f73d80e660f73db0ee91c0100006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa01660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85f5000000660f6f1f660fefc048c7c11000000041b90f0000004c8d570f4981e2ff0f00004981ea00100000660f1f8400000000004983c2107f7a660f6f0c0e660f6f140f660f6fe2660f3a0fd30f660f74c1660f74ca660ff8c8660fd7d181eaffff00000f858a0000004883c110660f6fdc4983c2107f3c660f6f0c0e660f6f140f660f6fe2660f3a0fd30f660f74c1660f74ca660ff8c8660fd7d181eaffff000075504883c110660f6fdceb86660f1f440000660f74c3660fd7d0f7c2008000007510660fefc04981ea00100000e966ffffff660f6f0c0e660f73db0f660f73d80f90660f74cb660ff8c8660fd7d1f7d26690498d4409f0488d3c07488d340e4585c0740e4887f790662e0f1f840000000000480fbcd20fb60c160fb6041729c8c331c0c30f1f4000662e0f1f8400000000000fb60e0fb60729c8c30f1f800000000089f831d2660fefff09f025ff0f00003dc00f00000f8f78020000f30f6f0ff30f6f06660f74c1660fdac1660fefc9660f74c1660fd7c04885c07415480fbcd00fb604170fb6141629d0c3660f1f440000f30f6f7710f30f6f5e10f30f6f6f20660f74def30f6f5620660fdade660f74d9f30f6f6730660f74d5660fd7d3f30f6f4630660fdad5660f74d1660f74c4660fd7c248c1e210660fdac4660f74c148c1e0204809d0660fd7c84889ca48c1e2304809d07586488d5740b90010000066450fefc94883e2c04829fa488d04174801f24889d681e6ff0f00004829f148c1e9064889ceeb12662e0f1f8400000000004883c0404883c2404885f6488d76ff0f84bb000000f30f6f02f30f6f4a10660f6f10660f6f5810660f74c2f30f6f6a20660f74cb660fdac2f30f6f7230660fdacb660f6f5020660fdac1660f6f5830660f74ea660f74f3660fdaea660fdaf3660fdac5660fdac6660f74c7660fd7c885c9748d660f74eff30f6f02660f74cf660f6f10660f74c2660fdac2660f74f7660f74c7660fd7c966440fd7c5660fd7f848c1e11049c1e020660fd7f64c09c14809f948c1e6304809f1480fbcc90fb604080fb6140a29d0c30f1f8400000000004d31d24989d14983e13f4d29ca66420f6f041266420f6f4c1210f3420f6f1410f3420f6f5c1010660f74c266420f6f6c1220660f74cb660fdac266420f6f741230660fdacbf3420f6f541020f3420f6f5c1030660f74ea660f74f3660fdaea660fdaf3660f74c7660f74cf660f74ef660f74f7660fd7c966440fd7c5660fd7f848c1e11049c1e020660fd7f64c09c74809cf48c1e6304809f74c89c948c7c63f00000048d3ef4885ff0f8496feffff480fbccf0fb604080fb6140a29d0c3669038c8751c4883c2014883fa400f8423feffff0fb604170fb60c1684c075e231c029c8c3662e0f1f8400000000000f1f00660fefc04883fa4f77364883fa0174204801d64801d74c8d1d434f070049630c934c01d9ffe10f0b0f1f8400000000000fb6070fb60e29c8c30f1f8000000000f30f6f0ef30f6f17660fefd1660f3817c20f83560b00004889f14883e6f04883c6104829f14829cf4801ca48f7c70f0000000f84080500004881fa800000000f87b20000004883ea40f30f6f17660fef16660f3817c20f83110b0000f30f6f5710660fef5610660f3817c20f83f40a0000f30f6f5720660fef5620660f3817c20f83d70a0000f30f6f5730660fef5630660f3817c20f83b80a00004883fa207236f30f6f5740660fef5640660f3817c20f83930a0000f30f6f5750660fef5650660f3817c20f83740a00004883ea204883c7204883c6204883c7404883c6404801d64801d74c8d1d344e070049630c934c01d9ffe10f0b4881fa000200000f872c0300004881fa000100000f87170100004881ea80000000f30f6f17660fef16660f3817c20f83420a0000f30f6f5710660fef5610660f3817c20f83250a0000f30f6f5720660fef5620660f3817c20f83080a0000f30f6f5730660fef5630660f3817c20f83e9090000f30f6f5740660fef5640660f3817c20f83ca090000f30f6f5750660fef5650660f3817c20f83ab090000f30f6f5760660fef5660660f3817c20f838c090000f30f6f5770660fef5670660f3817c20f83670900004881c6800000004881c7800000004883fa400f836ffeffff4883fa207234f30f6f17660fef16660f3817c20f837e090000f30f6f5710660fef5610660f3817c20f83610900004883ea204883c7204883c6204801d64801d74c8d1d034d070049630c934c01d9ffe10f0b4881ea00010000f30f6f17660fef16660f3817c20f832b090000f30f6f5710660fef5610660f3817c20f830e090000f30f6f5720660fef5620660f3817c20f83f1080000f30f6f5730660fef5630660f3817c20f83d2080000f30f6f5740660fef5640660f3817c20f83b3080000f30f6f5750660fef5650660f3817c20f8394080000f30f6f5760660fef5660660f3817c20f8375080000f30f6f5770660fef5670660f3817c20f8350080000f30f6f9780000000660fef9680000000660f3817c20f8325080000f30f6f9790000000660fef9690000000660f3817c20f83fa070000f30f6f97a0000000660fef96a0000000660f3817c20f83cf070000f30f6f97b0000000660fef96b0000000660f3817c20f83a1070000f30f6f97c0000000660fef96c0000000660f3817c20f8373070000f30f6f97d0000000660fef96d0000000660f3817c20f8345070000f30f6f97e0000000660fef96e0000000660f3817c20f8317070000f30f6f97f0000000660fef96f0000000660f3817c20f83e90600004881c6000100004881c7000100004881fa800000000f8349fdffff4883fa400f8373fcffff4883fa207234f30f6f17660fef16660f3817c20f8382070000f30f6f5710660fef5610660f3817c20f83650700004883ea204883c7204883c6204801d64801d74c8d1d074b070049630c934c01d9ffe10f0b6690662e0f1f8400000000004c8b0509c729004d89c149d1e84d01c84c39c277764883ea400f1f8000000000f30f6f17660fef16660f6fcaf30f6f5f10660fef5e10660febcbf30f6f6720660fef6620660febccf30f6f6f30660fef6e30660febcd660f3817c10f83bf0500004883c6404883c7404883ea4073b14883c2404801d64801d74c8d1d704a070049630c934c01d9ffe10f0b4883ea40900f1887c00100000f1886c0010000f30f6f17660fef16660f6fcaf30f6f5f10660fef5e10660febcbf30f6f6720660fef6620660febccf30f6f6f30660fef6e30660febcd660f3817c10f83410500004883c6404883c7404883ea4073a34883c2404801d64801d74c8d1df249070049630c934c01d9ffe10f0b0f1f80000000004881fa800000000f87b30000004883ea40660f6f17660fef16660f3817c20f8309060000660f6f5710660fef5610660f3817c20f83ec050000660f6f5720660fef5620660f3817c20f83cf050000660f6f5730660fef5630660f3817c20f83b00500004883fa207236660f6f5740660fef5640660f3817c20f838b050000660f6f5750660fef5650660f3817c20f836c0500004883ea204883c7204883c6204883c7404883c6404801d64801d74c8d1d2c49070049630c934c01d9ffe10f0b904881fa000200000f87330300004881fa000100000f87260100004881ea80000000660f6f17660fef16660f3817c20f8339050000660f6f5710660fef5610660f3817c20f831c050000660f6f5720660fef5620660f3817c20f83ff040000660f6f5730660fef5630660f3817c20f83e0040000660f6f5740660fef5640660f3817c20f83c1040000660f6f5750660fef5650660f3817c20f83a2040000660f6f5760660fef5660660f3817c20f8383040000660f6f5770660fef5670660f3817c20f835e0400004881c6800000004881c7800000004883fa400f836efeffff4883fa207234f30f6f17660fef16660f3817c20f8375040000f30f6f5710660fef5610660f3817c20f83580400004883ea204883c7204883c6204801d64801d74c8d1dfa47070049630c934c01d9ffe10f0b0f1f440000662e0f1f8400000000004881ea00010000660f6f17660fef16660f3817c20f8313040000660f6f5710660fef5610660f3817c20f83f6030000660f6f5720660fef5620660f3817c20f83d9030000660f6f5730660fef5630660f3817c20f83ba030000660f6f5740660fef5640660f3817c20f839b030000660f6f5750660fef5650660f3817c20f837c030000660f6f5760660fef5660660f3817c20f835d030000660f6f5770660fef5670660f3817c20f8338030000660f6f9780000000660fef9680000000660f3817c20f830d030000660f6f9790000000660fef9690000000660f3817c20f83e2020000660f6f97a0000000660fef96a0000000660f3817c20f83b7020000660f6f97b0000000660fef96b0000000660f3817c20f8389020000660f6f97c0000000660fef96c0000000660f3817c20f835b020000660f6f97d0000000660fef96d0000000660f3817c20f832d020000660f6f97e0000000660fef96e0000000660f3817c20f83ff010000660f6f97f0000000660fef96f0000000660f3817c20f83d10100004881c6000100004881c7000100004881fa800000000f833afdffff4883fa400f8363fcffff4883fa207234660f6f17660fef16660f3817c20f836a020000660f6f5710660fef5610660f3817c20f834d0200004883ea204883c7204883c6204801d64801d74c8d1def45070049630c934c01d9ffe10f0b0f1f40004c8b05f9c129004d89c149d1e84d01c84c39c277764883ea400f1f8000000000660f6f17660fef16660f6fca660f6f5f10660fef5e10660febcb660f6f6720660fef6620660febcc660f6f6f30660fef6e30660febcd660f3817c10f83af0000004883c6404883c7404883ea4073b14883c2404801d64801d74c8d1d6045070049630c934c01d9ffe10f0b4883ea40900f1887c00100000f1886c0010000660f6f17660fef16660f6fca660f6f5f10660fef5e10660febcb660f6f6720660fef6620660febcc660f6f6f30660fef6e30660febcd660f3817c173354883c6404883c7404883ea4073a74883c2404801d64801d74c8d1de644070049630c934c01d9ffe10f0b90662e0f1f8400000000004883c7104883c610660f3817c20f83120100004883c7104883c610660f3817c30f83ff0000004883c7104883c610660f3817c40f83ec0000004883c7104883c610e9df0000004881c7000100004881c600010000e9cc0000004881c7f00000004881c6f0000000e9b90000004881c7e00000004881c6e0000000e9a60000004881c7d00000004881c6d0000000e9930000004881c7c00000004881c6c0000000e9800000004881c7b00000004881c6b0000000eb704881c7a00000004881c6a0000000eb604881c7900000004881c690000000eb504881c7800000004881c680000000eb404883c7704883c670eb364883c7604883c660eb2c4883c7504883c650eb224883c7404883c640eb184883c7104883c6104883c7104883c6104883c7104883c610488b47f0488b4ef04839c10f853d0a0000488b47f8488b4ef84839c10f852c0a000031c0c3660f1f440000488b47f4488b4ef44839c10f85120a00008b4efc8b47fc39c10f85100a000031c0c30f1f4000662e0f1f840000000000f30f6f4fbff30f6f56bfb2bf660fefd1660f3817c20f83bd090000f30f6f4fcff30f6f56cfb2cf660fefd1660f3817c20f83a2090000f30f6f4fdff30f6f56dfb2df660fefd1660f3817c20f8387090000488b47ef488b4eef4839c10f8591090000488b47f7488b4ef74839c10f85800900000fb647ff0fb656ff29d0c36690488b47f3488b4ef34839c10f8562090000488b47f8488b4ef84839c10f855109000031c0c390662e0f1f8400000000008b47fb8b4efb39c10f85410900000fb647ff0fb656ff29d0c30f1f8000000000f30f6f4fbef30f6f56beb2be660fefd1660f3817c20f83ed080000f30f6f4fcef30f6f56ceb2ce660fefd1660f3817c20f83d2080000f30f6f4fdef30f6f56deb2de660fefd1660f3817c20f83b7080000488b47ee488b4eee4839c10f85c1080000488b47f6488b4ef64839c10f85b00800000fb747fe0fb74efe38c80f85cd08000025ffff000081e1ffff000029c8c30f1f440000662e0f1f840000000000488b47f2488b4ef24839c10f8572080000488b47f8488b4ef84839c10f856108000031c0c390662e0f1f8400000000008b47fa8b4efa39c10f85510800000fb74efe0fb747fe38c80f856208000025ffff000081e1ffff000029c8c30f1f4000f30f6f57bdf30f6f4ebdb2bd660fefd1660f3817c20f83ed070000f30f6f57cdf30f6f4ecdb2cd660fefd1660f3817c20f83d2070000f30f6f4eddf30f6f57ddb2dd660fefd1660f3817c20f83b7070000488b47ed488b4eed4839c10f85c1070000488b47f5488b4ef54839c10f85b00700008b47fc8b4efc39c10f85ae07000031c0c36690662e0f1f840000000000488b47f1488b4ef14839c10f8582070000488b47f8488b4ef84839c10f857107000031c0c390662e0f1f8400000000008b47f98b4ef939c10f85610700008b47fc8b4efc39c10f855307000031c0c3900fb747fd0fb74efd39c10f854a0700000fb647ff0fb64eff29c8c30f1f440000f30f6f57bcf30f6f4ebcb2bc660fefd1660f3817c20f83ed060000f30f6f57ccf30f6f4eccb2cc660fefd1660f3817c20f83d2060000f30f6f57dcf30f6f4edcb2dc660fefd1660f3817c20f83b7060000f30f6f57ecf30f6f4eecb2ec660fefd1660f3817c20f839c0600008b4efc8b47fc39c10f85b506000031c0c30f1f00f30f6f4ebbf30f6f57bbb2bb660fefd1660f3817c20f836d060000f30f6f4ecbf30f6f57cbb2cb660fefd1660f3817c20f8352060000f30f6f4edbf30f6f57dbb2db660fefd1660f3817c20f8337060000f30f6f4eebf30f6f57ebb2eb660fefd1660f3817c20f831c060000488b47f8488b4ef84839c10f852606000031c0c3f30f6f4ebaf30f6f57bab2ba660fefd1660f3817c20f83ed050000f30f6f4ecaf30f6f57cab2ca660fefd1660f3817c20f83d2050000f30f6f4edaf30f6f57dab2da660fefd1660f3817c20f83b7050000f30f6f4eeaf30f6f57eab2ea660fefd1660f3817c20f839c050000488b47f8488b4ef84839c10f85a605000031c0c3f30f6f4eb9f30f6f57b9b2b9660fefd1660f3817c20f836d050000f30f6f57c9f30f6f4ec9b2c9660fefd1660f3817c20f8352050000f30f6f57d9f30f6f4ed9b2d9660fefd1660f3817c20f8337050000f30f6f57e9f30f6f4ee9b2e9660fefd1660f3817c20f831c050000488b47f8488b4ef84839c10f852605000031c0c3f30f6f4eb8f30f6f57b8b2b8660fefd1660f3817c20f83ed040000f30f6f57c8f30f6f4ec8b2c8660fefd1660f3817c20f83d2040000f30f6f57d8f30f6f4ed8b2d8660fefd1660f3817c20f83b7040000f30f6f57e8f30f6f4ee8b2e8660fefd1660f3817c20f839c040000488b4ef8488b47f84839c10f85a604000031c0c3f30f6f4eb7f30f6f57b7b2b7660fefd1660f3817c20f836d040000f30f6f57c7f30f6f4ec7b2c7660fefd1660f3817c20f8352040000f30f6f57d7f30f6f4ed7b2d7660fefd1660f3817c20f8337040000f30f6f57e7f30f6f4ee7b2e7660fefd1660f3817c20f831c040000488b47f7488b4ef74839c10f85260400000fb647ff0fb64eff29c8c30f1f840000000000f30f6f4eb6f30f6f57b6b2b6660fefd1660f3817c20f83dd030000f30f6f57c6f30f6f4ec6b2c6660fefd1660f3817c20f83c2030000f30f6f57d6f30f6f4ed6b2d6660fefd1660f3817c20f83a7030000f30f6f57e6f30f6f4ee6b2e6660fefd1660f3817c20f838c030000488b47f6488b4ef64839c10f85960300000fb747fe0fb74efee9a0030000660f1f440000f30f6f4eb5f30f6f57b5b2b5660fefd1660f3817c20f834d030000f30f6f57c5f30f6f4ec5b2c5660fefd1660f3817c20f8332030000f30f6f57d5f30f6f4ed5b2d5660fefd1660f3817c20f8317030000f30f6f57e5f30f6f4ee5b2e5660fefd1660f3817c20f83fc020000488b47f5488b4ef54839c10f85060300008b47fc8b4efc39c10f850403000031c0c36690f30f6f4eb4f30f6f57b4b2b4660fefd1660f3817c20f83bd020000f30f6f57c4f30f6f4ec4b2c4660fefd1660f3817c20f83a2020000f30f6f57d4f30f6f4ed4b2d4660fefd1660f3817c20f8387020000f30f6f57e4f30f6f4ee4b2e4660fefd1660f3817c20f836c020000488b47f4488b4ef44839c10f85760200008b4efc8b47fc39c10f857402000031c0c36690f30f6f4eb3f30f6f57b3b2b3660fefd1660f3817c20f832d020000f30f6f57c3f30f6f4ec3b2c3660fefd1660f3817c20f8312020000f30f6f57d3f30f6f4ed3b2d3660fefd1660f3817c20f83f7010000f30f6f57e3f30f6f4ee3b2e3660fefd1660f3817c20f83dc010000488b47f3488b4ef34839c10f85e6010000488b47f8488b4ef84839c10f85d501000031c0c30f1f440000662e0f1f840000000000f30f6f4eb2f30f6f57b2b2b2660fefd1660f3817c20f838d010000f30f6f57c2f30f6f4ec2b2c2660fefd1660f3817c20f8372010000f30f6f57d2f30f6f4ed2b2d2660fefd1660f3817c20f8357010000f30f6f57e2f30f6f4ee2b2e2660fefd1660f3817c20f833c010000488b47f2488b4ef24839c10f8546010000488b47f8488b4ef84839c10f853501000031c0c30f1f440000662e0f1f840000000000f30f6f4eb1f30f6f57b1b2b1660fefd1660f3817c20f83ed000000f30f6f57c1f30f6f4ec1b2c1660fefd1660f3817c20f83d2000000f30f6f57d1f30f6f4ed1b2d1660fefd1660f3817c20f83b7000000f30f6f57e1f30f6f4ee1b2e1660fefd1660f3817c20f839c000000488b47f1488b4ef14839c10f85a6000000488b47f8488b4ef84839c10f859500000031c0c30f1f440000662e0f1f840000000000f30f6f57c0f30f6f4ec0b2c0660fefd1660f3817c27351f30f6f57d0f30f6f4ed0b2d0660fefd1660f3817c2733af30f6f57e0f30f6f4ee0b2e0660fefd1660f3817c27323488b47f0488b4ef04839c17531488b47f8488b4ef84839c1752431c0c3660f1f440000480fbed2488b0c16488b04174839c1750a488b4c1608488b44170839c1750848c1e92048c1e8206639c87506c1e910c1e81038c8751225ffff000081e1ffff000029c8c30f1f400025ff00000081e1ff00000029c8c366904839d10f82673101000f1f80000000004889f84839f7720e0f847a1a00004883fa4f7602eb7a4883fa4f4c8d1d2f3a0700771d4d630c934801d64801d74d01d941ffe10f0b90662e0f1f840000000000f30f6f064889f94883e7f04883c7104989c84829f94801ca4829ce488b0daeb429004839ca4989f10f87922700004983e10f747c488b0db5b429004c8d1d0e3b07004f630c8b4f8d0c0b41ffe10f0b90f30f6f4416f04801d64c8d4417f04801d74889f94883e10f4831cf4829ca4829ce488b0d58b429004839ca4989f10f87fc2800004983e10f0f8442020000488b0d5bb429004c8d1df43a07004f630c8b4f8d0c0b41ffe10f0b0f1f80000000004883ea10660f6f0e4883c610660f7f0f4883c7104881fa80000000f3410f7f00774e4883fa40722a0f28260f284e100f2856200f285e300f29270f294f100f2957200f295f304883ea404883c6404883c7404801d64801d74c8d1d0139070049631493498d1413ffe20f0b0f1f440000483b15c9b32900488d52800f83af000000660f6f260f284e100f2856200f285e30660f7f270f294f100f2957200f295f304881ea800000000f2866400f286e500f2876600f287e70488db6800000000f2967400f296f500f2977600f297f70488dbf8000000073a94883fac0488d92800000007c32660f6f264883ea40660f6f4e10660f7f27660f7f4f10660f6f6620660f6f4e304883c640660f7f6720660f7f4f304883c7404801d64801d74c8d1d3c38070049631493498d1413ffe20f0b0f188ec00100000f188e80020000660f6f06660f6f4e10660f6f5620660f6f5e30660f6f6640660f6f6e50660f6f7660660f6f7e70488db6800000004881ea80000000660f7f07660f7f4f10660f7f5720660f7f5f30660f7f6740660f7f6f50660f7f7760660f7f7f70488dbf80000000738d4883fac0488d92800000007c32660f6f064883ea40660f6f4e10660f7f07660f7f4f10660f6f4620660f6f4e304883c640660f7f4720660f7f4f304883c7404883fa20721e660f6f064883ea20660f6f4e104883c620660f7f07660f7f4f104883c7204801d74801d64c8d1d4d37070049631493498d1413ffe20f0b904883ea10660f6f4ef04883ee10660f7f4ff04883ef104881fa80000000f3410f7f00774c4883fa40722c0f2846f00f284ee00f2856d00f285ec00f2947f00f294fe00f2957d00f295fc04883ea404883ee404883ef404c8d1de336070049631493498d1413ffe20f0b0f1f8000000000483b15a9b12900488d52800f83af000000660f6f46f00f284ee00f2856d00f285ec0660f7f47f00f294fe00f2957d00f295fc04881ea800000000f2866b00f286ea00f2876900f287e80488d76800f2967b00f296fa00f2977900f297f80488d7f8073ad4883fac0488d92800000007c34660f6f46f04883ea40660f6f4ee0660f7f47f0660f7f4fe0660f6f46d0660f6f4ec04883ee40660f7f47d0660f7f4fc04883ef404c8d1d2436070049631493498d1413ffe20f0b0f1f8400000000000f188e40feffff0f188e80fdffff660f6f46f0660f6f4ee0660f6f56d0660f6f5ec0660f6f66b0660f6f6ea0660f6f7690660f6f7e80488d76804881ea80000000660f7f47f0660f7f4fe0660f7f57d0660f7f5fc0660f7f67b0660f7f6fa0660f7f7790660f7f7f80488d7f8073914883fac0488d92800000007c34660f6f46f04883ea40660f6f4ee0660f7f47f0660f7f4fe0660f6f46d0660f6f4ec04883ee40660f7f47d0660f7f4fc04883ef404883fa207220660f6f46f04883ea20660f6f4ee04883ee20660f7f47f0660f7f4fe04883ef204c8d1d3335070049631493498d1413ffe20f0b0f1f80000000004d8d89270000004839ca0f284eff72074d8d89f9ffffff488d52c041ffe10f0b0f1886c00100004883ea400f28560f0f285e1f0f28662f0f286e3f660f6ff5660f3a0fec01488d7640660f3a0fe301660f3a0fda01488d7f40660f3a0fd101660f6fce660f7f57c00f295fd0720d0f2967e00f296ff041ffe10f0b0f2967e0488d52400f296ff04801d7f3410f7f004801d64c8d1d8734070049631493498d1413ffe20f0b90662e0f1f8400000000004d8d89270000004839ca0f284eff72074d8d89f9ffffff488d52c041ffe10f0b0f188640feffff0f2856ef4883ea400f285edf0f2866cf0f286ebf488d76c0660f3a0fca01660f3a0fd301660f3a0fdc01660f3a0fe5010f294ff00f28cd0f2957e0488d7fc00f295f1072080f292741ffe10f0b0f2927488d5240f3410f7f004c8d1de933070049631493498d1413ffe20f0b0f1f00662e0f1f8400000000004d8d89270000004839ca0f284efe72074d8d89f9ffffff488d52c041ffe10f0b0f1886c00100004883ea400f28560e0f285e1e0f28662e0f286e3e660f6ff5660f3a0fec02488d7640660f3a0fe302660f3a0fda02488d7f40660f3a0fd102660f6fce660f7f57c00f295fd0720d0f2967e00f296ff041ffe10f0b0f2967e0488d52400f296ff04801d7f3410f7f004801d64c8d1d3733070049631493498d1413ffe20f0b90662e0f1f8400000000004d8d89270000004839ca0f284efe72074d8d89f9ffffff488d52c041ffe10f0b0f188640feffff0f2856ee4883ea400f285ede0f2866ce0f286ebe488d76c0660f3a0fca02660f3a0fd302660f3a0fdc02660f3a0fe5020f294ff00f28cd0f2957e0488d7fc00f295f1072080f292741ffe10f0b0f2927488d5240f3410f7f004c8d1d9932070049631493498d1413ffe20f0b0f1f00662e0f1f8400000000004d8d89270000004839ca0f284efd72074d8d89f9ffffff488d52c041ffe10f0b0f1886c00100004883ea400f28560d0f285e1d0f28662d0f286e3d660f6ff5660f3a0fec03488d7640660f3a0fe303660f3a0fda03488d7f40660f3a0fd103660f6fce660f7f57c00f295fd0720d0f2967e00f296ff041ffe10f0b0f2967e0488d52400f296ff04801d7f3410f7f004801d64c8d1de731070049631493498d1413ffe20f0b90662e0f1f8400000000004d8d89270000004839ca0f284efd72074d8d89f9ffffff488d52c041ffe10f0b0f188640feffff0f2856ed4883ea400f285edd0f2866cd0f286ebd488d76c0660f3a0fca03660f3a0fd303660f3a0fdc03660f3a0fe5030f294ff00f28cd0f2957e0488d7fc00f295f1072080f292741ffe10f0b0f2927488d5240f3410f7f004c8d1d4931070049631493498d1413ffe20f0b0f1f00662e0f1f8400000000004d8d89270000004839ca0f284efc72074d8d89f9ffffff488d52c041ffe10f0b0f1886c00100004883ea400f28560c0f285e1c0f28662c0f286e3c660f6ff5660f3a0fec04488d7640660f3a0fe304660f3a0fda04488d7f40660f3a0fd104660f6fce660f7f57c00f295fd0720d0f2967e00f296ff041ffe10f0b0f2967e0488d52400f296ff04801d7f3410f7f004801d64c8d1d9730070049631493498d1413ffe20f0b90662e0f1f8400000000004d8d89270000004839ca0f284efc72074d8d89f9ffffff488d52c041ffe10f0b0f188640feffff0f2856ec4883ea400f285edc0f2866cc0f286ebc488d76c0660f3a0fca04660f3a0fd304660f3a0fdc04660f3a0fe5040f294ff00f28cd0f2957e0488d7fc00f295f1072080f292741ffe10f0b0f2927488d5240f3410f7f004c8d1df92f070049631493498d1413ffe20f0b0f1f00662e0f1f8400000000004d8d89270000004839ca0f284efb72074d8d89f9ffffff488d52c041ffe10f0b0f1886c00100004883ea400f28560b0f285e1b0f28662b0f286e3b660f6ff5660f3a0fec05488d7640660f3a0fe305660f3a0fda05488d7f40660f3a0fd105660f6fce660f7f57c00f295fd0720d0f2967e00f296ff041ffe10f0b0f2967e0488d52400f296ff04801d7f3410f7f004801d64c8d1d472f070049631493498d1413ffe20f0b90662e0f1f8400000000004d8d89270000004839ca0f284efb72074d8d89f9ffffff488d52c041ffe10f0b0f188640feffff0f2856eb4883ea400f285edb0f2866cb0f286ebb488d76c0660f3a0fca05660f3a0fd305660f3a0fdc05660f3a0fe5050f294ff00f28cd0f2957e0488d7fc00f295f1072080f292741ffe10f0b0f2927488d5240f3410f7f004c8d1da92e070049631493498d1413ffe20f0b0f1f00662e0f1f8400000000004d8d89270000004839ca0f284efa72074d8d89f9ffffff488d52c041ffe10f0b0f1886c00100004883ea400f28560a0f285e1a0f28662a0f286e3a660f6ff5660f3a0fec06488d7640660f3a0fe306660f3a0fda06488d7f40660f3a0fd106660f6fce660f7f57c00f295fd0720d0f2967e00f296ff041ffe10f0b0f2967e0488d52400f296ff04801d7f3410f7f004801d64c8d1df72d070049631493498d1413ffe20f0b90662e0f1f8400000000004d8d89270000004839ca0f284efa72074d8d89f9ffffff488d52c041ffe10f0b0f188640feffff0f2856ea4883ea400f285eda0f2866ca0f286eba488d76c0660f3a0fca06660f3a0fd306660f3a0fdc06660f3a0fe5060f294ff00f28cd0f2957e0488d7fc00f295f1072080f292741ffe10f0b0f2927488d5240f3410f7f004c8d1d592d070049631493498d1413ffe20f0b0f1f00662e0f1f8400000000004d8d89270000004839ca0f284ef972074d8d89f9ffffff488d52c041ffe10f0b0f1886c00100004883ea400f2856090f285e190f2866290f286e39660f6ff5660f3a0fec07488d7640660f3a0fe307660f3a0fda07488d7f40660f3a0fd107660f6fce660f7f57c00f295fd0720d0f2967e00f296ff041ffe10f0b0f2967e0488d52400f296ff04801d7f3410f7f004801d64c8d1da72c070049631493498d1413ffe20f0b90662e0f1f8400000000004d8d89270000004839ca0f284ef972074d8d89f9ffffff488d52c041ffe10f0b0f188640feffff0f2856e94883ea400f285ed90f2866c90f286eb9488d76c0660f3a0fca07660f3a0fd307660f3a0fdc07660f3a0fe5070f294ff00f28cd0f2957e0488d7fc00f295f1072080f292741ffe10f0b0f2927488d5240f3410f7f004c8d1d092c070049631493498d1413ffe20f0b0f1f00662e0f1f8400000000004d8d89250000004839ca0f284ef872074d8d89f9ffffff488d52c041ffe10f1886c00100004883ea400f2856080f285e180f2866280f286e38660f6ff5660f3a0fec08488d7640660f3a0fe308660f3a0fda08488d7f40660f3a0fd108660f6fce660f7f57c00f295fd072140f2967e00f296ff041ffe10f0b0f1f8000000000488d52400f2967e04801d60f296ff04801d7f3410f7f004c8d1d522b070049631493498d1413ffe20f0b660f1f4400004d8d89270000004839ca0f284ef872074d8d89f9ffffff488d52c041ffe10f0b0f188640feffff0f2856e84883ea400f285ed80f2866c80f286eb8488d76c0660f3a0fca08660f3a0fd308660f3a0fdc08660f3a0fe5080f294ff00f28cd0f2957e0488d7fc00f295f1072080f292741ffe10f0b0f2927488d5240f3410f7f004c8d1db92a070049631493498d1413ffe20f0b0f1f00662e0f1f8400000000004d8d89270000004839ca0f284ef772074d8d89f9ffffff488d52c041ffe10f0b0f1886c00100004883ea400f2856070f285e170f2866270f286e37660f6ff5660f3a0fec09488d7640660f3a0fe309660f3a0fda09488d7f40660f3a0fd109660f6fce660f7f57c00f295fd0720d0f2967e00f296ff041ffe10f0b0f2967e0488d52400f296ff04801d7f3410f7f004801d64c8d1d072a070049631493498d1413ffe20f0b90662e0f1f8400000000004d8d89270000004839ca0f284ef772074d8d89f9ffffff488d52c041ffe10f0b0f188640feffff0f2856e74883ea400f285ed70f2866c70f286eb7488d76c0660f3a0fca09660f3a0fd309660f3a0fdc09660f3a0fe5090f294ff00f28cd0f2957e0488d7fc00f295f1072080f292741ffe10f0b0f2927488d5240f3410f7f004c8d1d6929070049631493498d1413ffe20f0b0f1f00662e0f1f8400000000004d8d89270000004839ca0f284ef672074d8d89f9ffffff488d52c041ffe10f0b0f1886c00100004883ea400f2856060f285e160f2866260f286e36660f6ff5660f3a0fec0a488d7640660f3a0fe30a660f3a0fda0a488d7f40660f3a0fd10a660f6fce660f7f57c00f295fd0720d0f2967e00f296ff041ffe10f0b0f2967e0488d52400f296ff04801d7f3410f7f004801d64c8d1db728070049631493498d1413ffe20f0b90662e0f1f8400000000004d8d89270000004839ca0f284ef672074d8d89f9ffffff488d52c041ffe10f0b0f188640feffff0f2856e64883ea400f285ed60f2866c60f286eb6488d76c0660f3a0fca0a660f3a0fd30a660f3a0fdc0a660f3a0fe50a0f294ff00f28cd0f2957e0488d7fc00f295f1072080f292741ffe10f0b0f2927488d5240f3410f7f004c8d1d1928070049631493498d1413ffe20f0b0f1f00662e0f1f8400000000004d8d89270000004839ca0f284ef572074d8d89f9ffffff488d52c041ffe10f0b0f1886c00100004883ea400f2856050f285e150f2866250f286e35660f6ff5660f3a0fec0b488d7640660f3a0fe30b660f3a0fda0b488d7f40660f3a0fd10b660f6fce660f7f57c00f295fd0720d0f2967e00f296ff041ffe10f0b0f2967e0488d52400f296ff04801d7f3410f7f004801d64c8d1d6727070049631493498d1413ffe20f0b90662e0f1f8400000000004d8d89270000004839ca0f284ef572074d8d89f9ffffff488d52c041ffe10f0b0f188640feffff0f2856e54883ea400f285ed50f2866c50f286eb5488d76c0660f3a0fca0b660f3a0fd30b660f3a0fdc0b660f3a0fe50b0f294ff00f28cd0f2957e0488d7fc00f295f1072080f292741ffe10f0b0f2927488d5240f3410f7f004c8d1dc926070049631493498d1413ffe20f0b0f1f00662e0f1f8400000000004d8d89270000004839ca0f284ef472074d8d89f9ffffff488d52c041ffe10f0b0f1886c00100004883ea400f2856040f285e140f2866240f286e34660f6ff5660f3a0fec0c488d7640660f3a0fe30c660f3a0fda0c488d7f40660f3a0fd10c660f6fce660f7f57c00f295fd0720d0f2967e00f296ff041ffe10f0b0f2967e0488d52400f296ff04801d7f3410f7f004801d64c8d1d1726070049631493498d1413ffe20f0b90662e0f1f8400000000004d8d89270000004839ca0f284ef472074d8d89f9ffffff488d52c041ffe10f0b0f188640feffff0f2856e44883ea400f285ed40f2866c40f286eb4488d76c0660f3a0fca0c660f3a0fd30c660f3a0fdc0c660f3a0fe50c0f294ff00f28cd0f2957e0488d7fc00f295f1072080f292741ffe10f0b0f2927488d5240f3410f7f004c8d1d7925070049631493498d1413ffe20f0b0f1f00662e0f1f8400000000004d8d89270000004839ca0f284ef372074d8d89f9ffffff488d52c041ffe10f0b0f1886c00100004883ea400f2856030f285e130f2866230f286e33660f6ff5660f3a0fec0d488d7640660f3a0fe30d660f3a0fda0d488d7f40660f3a0fd10d660f6fce660f7f57c00f295fd0720d0f2967e00f296ff041ffe10f0b0f2967e0488d52400f296ff04801d7f3410f7f004801d64c8d1dc724070049631493498d1413ffe20f0b90662e0f1f8400000000004d8d89270000004839ca0f284ef372074d8d89f9ffffff488d52c041ffe10f0b0f188640feffff0f2856e34883ea400f285ed30f2866c30f286eb3488d76c0660f3a0fca0d660f3a0fd30d660f3a0fdc0d660f3a0fe50d0f294ff00f28cd0f2957e0488d7fc00f295f1072080f292741ffe10f0b0f2927488d5240f3410f7f004c8d1d2924070049631493498d1413ffe20f0b0f1f00662e0f1f8400000000004d8d89270000004839ca0f284ef272074d8d89f9ffffff488d52c041ffe10f0b0f1886c00100004883ea400f2856020f285e120f2866220f286e32660f6ff5660f3a0fec0e488d7640660f3a0fe30e660f3a0fda0e488d7f40660f3a0fd10e660f6fce660f7f57c00f295fd0720d0f2967e00f296ff041ffe10f0b0f2967e0488d52400f296ff04801d7f3410f7f004801d64c8d1d7723070049631493498d1413ffe20f0b90662e0f1f8400000000004d8d89270000004839ca0f284ef272074d8d89f9ffffff488d52c041ffe10f0b0f188640feffff0f2856e24883ea400f285ed20f2866c20f286eb2488d76c0660f3a0fca0e660f3a0fd30e660f3a0fdc0e660f3a0fe50e0f294ff00f28cd0f2957e0488d7fc00f295f1072080f292741ffe10f0b0f2927488d5240f3410f7f004c8d1dd922070049631493498d1413ffe20f0b0f1f00662e0f1f8400000000004d8d89270000004839ca0f284ef172074d8d89f9ffffff488d52c041ffe10f0b0f1886c00100004883ea400f2856010f285e110f2866210f286e31660f6ff5660f3a0fec0f488d7640660f3a0fe30f660f3a0fda0f488d7f40660f3a0fd10f660f6fce660f7f57c00f295fd0720d0f2967e00f296ff041ffe10f0b0f2967e0488d52400f296ff04801d7f3410f7f004801d64c8d1d2722070049631493498d1413ffe20f0b90662e0f1f8400000000004d8d89270000004839ca0f284ef172074d8d89f9ffffff488d52c041ffe10f0b0f188640feffff0f2856e14883ea400f285ed10f2866c10f286eb1488d76c0660f3a0fca0f660f3a0fd30f660f3a0fdc0f660f3a0fe50f0f294ff00f28cd0f2957e0488d7fc00f295f1072080f292741ffe10f0b0f2927488d5240f3410f7f004c8d1d8921070049631493498d1413ffe20f0b0f1f00662e0f1f840000000000f30f6f46b8f30f6f4ec84c8b46d84c8b4ee04c8b56e84c8b5ef0488b4ef8f30f7f47b8f30f7f4fc84c8947d84c894fe04c8957e84c895ff048894ff8c30f1f00f30f6f46c0488b4ed04c8b46d84c8b4ee04c8b56e84c8b5ef0488b56f8f30f7f47c048894fd04c8947d84c894fe04c8957e84c895ff0488957f8c30f1f440000f30f6f46c84c8b46d84c8b4ee04c8b56e84c8b5ef0488b4ef8f30f7f47c84c8947d84c894fe04c8957e84c895ff048894ff8c30f1f00662e0f1f840000000000488b4ed04c8b46d84c8b4ee04c8b56e84c8b5ef0488b56f848894fd04c8947d84c894fe04c8957e84c895ff0488957f8c30f1f440000662e0f1f8400000000004c8b46d84c8b4ee04c8b56e84c8b5ef0488b56f84c8947d84c894fe04c8957e84c895ff0488957f8c30f1f80000000004c8b4ee04c8b56e84c8b5ef0488b56f84c894fe04c8957e84c895ff0488957f8c30f1f440000662e0f1f8400000000004c8b56e84c8b5ef0488b56f84c8957e84c895ff0488957f8c30f1f80000000004c8b5ef0488b56f84c895ff0488957f8c30f1f440000662e0f1f840000000000488b56f8488957f8c30f1f8000000000f30f6f46b7f30f6f4ec7488b4ed74c8b4edf4c8b56e74c8b5eef4c8b46f78b56fcf30f7f47b7f30f7f4fc748894fd74c894fdf4c8957e74c895fef4c8947f78957fcc30f1f00662e0f1f840000000000f30f6f46bff30f6f4ecf4c8b4edf4c8b56e74c8b5eef488b4ef78b56fcf30f7f47bff30f7f4fcf4c894fdf4c8957e74c895fef48894ff78957fcc30f1f440000f30f6f46c74c8b46d74c8b4edf4c8b56e74c8b5eef488b4ef78b56fcf30f7f47c74c8947d74c894fdf4c8957e74c895fef48894ff78957fcc30f1f8000000000f30f6f46cf4c8b4edf4c8b56e74c8b5eef488b4ef78b56fcf30f7f47cf4c894fdf4c8957e74c895fef48894ff78957fcc30f1f440000662e0f1f8400000000004c8b46d74c8b4edf4c8b56e74c8b5eef488b4ef78a56ff4c8947d74c894fdf4c8957e74c895fef48894ff78857ffc3904c8b4edf4c8b56e74c8b5eef488b4ef78a56ff4c894fdf4c8957e74c895fef48894ff78857ffc3660f1f8400000000004c8b56e74c8b5eef488b4ef78a56ff4c8957e74c895fef48894ff78857ffc3904c8b5eef488b4ef78b56fc4c895fef48894ff78957fcc3660f1f840000000000488b4ef78b56fc48894ff78957fcc3908a56ff8857ffc3660f1f840000000000f30f6f46b6f30f6f4ec64c8b46d64c8b4ede4c8b56e64c8b5eee488b4ef68b56fcf30f7f47b6f30f7f4fc64c8947d64c894fde4c8957e64c895fee48894ff68957fcc30f1f00662e0f1f840000000000f30f6f46bef30f6f4ece4c8b46d64c8b4ede4c8b56e64c8b5eee488b4ef68b56fcf30f7f47bef30f7f4fce4c8947d64c894fde4c8957e64c895fee48894ff68957fcc30f1f00662e0f1f840000000000f30f6f4ec64c8b46d64c8b4ede4c8b56e64c8b5eee488b4ef68b56fcf30f7f4fc64c8947d64c894fde4c8957e64c895fee48894ff68957fcc30f1f8000000000f30f6f46ce4c8b4ede4c8b56e64c8b5eee488b4ef68b56fcf30f7f47ce4c894fde4c8957e64c895fee48894ff68957fcc30f1f440000662e0f1f8400000000004c8b46d64c8b4ede4c8b56e64c8b5eee488b4ef68b56fc4c8947d64c894fde4c8957e64c895fee48894ff68957fcc3904c8b4ede4c8b56e64c8b5eee488b4ef68b56fc4c894fde4c8957e64c895fee48894ff68957fcc3660f1f8400000000004c8b56e64c8b5eee488b4ef68b56fc4c8957e64c895fee48894ff68957fcc3904c8b5eee488b4ef68b56fc4c895fee48894ff68957fcc3660f1f840000000000488b4ef68b56fc48894ff68957fcc390668b56fe668957fec30f1f8000000000f30f6f46b5f30f6f4ec54c8b46d54c8b4edd4c8b56e54c8b5eed488b4ef58b56fcf30f7f47b5f30f7f4fc54c8947d54c894fdd4c8957e54c895fed48894ff58957fcc30f1f00662e0f1f840000000000f30f6f46bdf30f6f4ec54c8b46d54c8b4edd4c8b56e54c8b5eed488b4ef58b56fcf30f7f47bdf30f7f4fc54c8947d54c894fdd4c8957e54c895fed48894ff58957fcc30f1f00662e0f1f840000000000f30f6f46c54c8b46d54c8b4edd4c8b56e54c8b5eed488b4ef58b56fcf30f7f47c54c8947d54c894fdd4c8957e54c895fed48894ff58957fcc30f1f8000000000f30f6f46cd4c8b4edd4c8b56e54c8b5eed488b4ef58b56fcf30f7f47cd4c894fdd4c8957e54c895fed48894ff58957fcc30f1f440000662e0f1f8400000000004c8b46d54c8b4edd4c8b56e54c8b5eed488b4ef58b56fc4c8947d54c894fdd4c8957e54c895fed48894ff58957fcc3904c8b4edd4c8b56e54c8b5eed488b4ef58b56fc4c894fdd4c8957e54c895fed48894ff58957fcc3660f1f8400000000004c8b56e54c8b5eed488b4ef58b56fc4c8957e54c895fed48894ff58957fcc3904c8b5eed488b4ef58b56fc4c895fed48894ff58957fcc3660f1f840000000000488b4ef58b56fc48894ff58957fcc390668b56fd668b4efe668957fd66894ffec30f1f440000662e0f1f840000000000f30f6f46b4f30f6f4ec44c8b46d44c8b4edc4c8b56e44c8b5eec488b4ef48b56fcf30f7f47b4f30f7f4fc44c8947d44c894fdc4c8957e44c895fec48894ff48957fcc30f1f00662e0f1f840000000000f30f6f46bcf30f6f4ecc4c8b4edc4c8b56e44c8b5eec488b4ef48b56fcf30f7f47bcf30f7f4fcc4c894fdc4c8957e44c895fec48894ff48957fcc30f1f440000f30f6f46c44c8b46d44c8b4edc4c8b56e44c8b5eec488b4ef48b56fcf30f7f47c44c8947d44c894fdc4c8957e44c895fec48894ff48957fcc30f1f8000000000f30f6f46cc4c8b4edc4c8b56e44c8b5eec488b4ef48b56fcf30f7f47cc4c894fdc4c8957e44c895fec48894ff48957fcc30f1f440000662e0f1f8400000000004c8b46d44c8b4edc4c8b56e44c8b5eec488b4ef48b56fc4c8947d44c894fdc4c8957e44c895fec48894ff48957fcc3904c8b4edc4c8b56e44c8b5eec488b4ef48b56fc4c894fdc4c8957e44c895fec48894ff48957fcc3660f1f8400000000004c8b56e44c8b5eec488b4ef48b56fc4c8957e44c895fec48894ff48957fcc3904c8b5eec488b4ef48b56fc4c895fec48894ff48957fcc3660f1f840000000000488b4ef48b56fc48894ff48957fcc3908b56fc8957fcc3660f1f840000000000f30f6f46b3f30f6f4ec34c8b46d34c8b4edb4c8b56e34c8b5eeb488b4ef3488b56f8f30f7f47b3f30f7f4fc34c8947d34c894fdb4c8957e34c895feb48894ff3488957f8c390662e0f1f840000000000f30f6f46bbf30f6f4ecb4c8b4edb4c8b56e34c8b5eeb488b4ef3488b56f8f30f7f47bbf30f7f4fcb4c894fdb4c8957e34c895feb48894ff3488957f8c30f1f00f30f6f46c34c8b46d34c8b4edb4c8b56e34c8b5eeb488b4ef3488b56f8f30f7f47c34c8947d34c894fdb4c8957e34c895feb48894ff3488957f8c30f1f440000f30f6f46cb4c8b46d34c8b4edb4c8b56e34c8b5eeb488b4ef3488b56f8f30f7f47cb4c894fdb4c8957e34c895feb48894ff3488957f8c3660f1f8400000000004c8b46d34c8b4edb4c8b56e34c8b5eeb488b4ef3488b56f84c8947d34c894fdb4c8957e34c895feb48894ff3488957f8c30f1f440000662e0f1f8400000000004c8b4edb4c8b56e34c8b5eeb488b4ef3488b56f84c894fdb4c8957e34c895feb48894ff3488957f8c30f1f80000000004c8b56e34c8b5eeb488b4ef3488b56f84c8957e34c895feb48894ff3488957f8c30f1f440000662e0f1f8400000000004c8b5eeb488b4ef3488b56f84c895feb48894ff3488957f8c30f1f8000000000488b4ef3488b56f848894ff3488957f8c30f1f440000662e0f1f8400000000008b56fb8b4efc8957fb894ffcc30f1f00f30f6f46b2f30f6f4ec24c8b46d24c8b4eda4c8b56e24c8b5eea488b4ef2488b56f8f30f7f47b2f30f7f4fc24c8947d24c894fda4c8957e24c895fea48894ff2488957f8c390662e0f1f840000000000f30f6f46baf30f6f4eca4c8b4eda4c8b56e24c8b5eea488b4ef2488b56f8f30f7f47baf30f7f4fca4c894fda4c8957e24c895fea48894ff2488957f8c30f1f00f30f6f46c24c8b46d24c8b4eda4c8b56e24c8b5eea488b4ef2488b56f8f30f7f47c24c8947d24c894fda4c8957e24c895fea48894ff2488957f8c30f1f440000f30f6f46ca4c8b4eda4c8b56e24c8b5eea488b4ef2488b56f8f30f7f47ca4c894fda4c8957e24c895fea48894ff2488957f8c30f1f00662e0f1f8400000000004c8b46d24c8b4eda4c8b56e24c8b5eea488b4ef2488b56f84c8947d24c894fda4c8957e24c895fea48894ff2488957f8c30f1f440000662e0f1f8400000000004c8b4eda4c8b56e24c8b5eea488b4ef2488b56f84c894fda4c8957e24c895fea48894ff2488957f8c30f1f80000000004c8b56e24c8b5eea488b4ef2488b56f84c8957e24c895fea48894ff2488957f8c30f1f440000662e0f1f8400000000004c8b5eea488b4ef2488b56f84c895fea48894ff2488957f8c30f1f8000000000488b4ef2488b56f848894ff2488957f8c30f1f440000662e0f1f8400000000008b56fa8b4efc8957fa894ffcc30f1f00f30f6f46b1f30f6f4ec14c8b46d14c8b4ed94c8b56e14c8b5ee9488b4ef1488b56f8f30f7f47b1f30f7f4fc14c8947d14c894fd94c8957e14c895fe948894ff1488957f8c390662e0f1f840000000000f30f6f46b9f30f6f4ec94c8b4ed94c8b56e14c8b5ee9488b4ef1488b56f8f30f7f47b9f30f7f4fc94c894fd94c8957e14c895fe948894ff1488957f8c30f1f00f30f6f46c14c8b46d14c8b4ed94c8b56e14c8b5ee9488b4ef1488b56f8f30f7f47c14c8947d14c894fd94c8957e14c895fe948894ff1488957f8c30f1f440000f30f6f46c94c8b4ed94c8b56e14c8b5ee9488b4ef1488b56f8f30f7f47c94c894fd94c8957e14c895fe948894ff1488957f8c30f1f00662e0f1f8400000000004c8b46d14c8b4ed94c8b56e14c8b5ee9488b4ef1488b56f84c8947d14c894fd94c8957e14c895fe948894ff1488957f8c30f1f440000662e0f1f8400000000004c8b4ed94c8b56e14c8b5ee9488b4ef1488b56f84c894fd94c8957e14c895fe948894ff1488957f8c30f1f80000000004c8b56e14c8b5ee9488b4ef1488b56f84c8957e14c895fe948894ff1488957f8c30f1f440000662e0f1f8400000000004c8b5ee9488b4ef1488b56f84c895fe948894ff1488957f8c30f1f8000000000488b4ef1488b56f848894ff1488957f8c30f1f440000662e0f1f8400000000008b56f98b4efc8957f9894ffcc30f1f00f30f6f0e488d7610f3410f7f00660fe70f488d7f10488d9270ffffff4989f14929f94939d1730d48c1e1024839ca0f82cc000000f30f6f06f30f6f4e10f30f6f5620f30f6f5e30f30f6f6640f30f6f6e50f30f6f7660f30f6f7e70488db6800000004881ea80000000660fe707660fe74f10660fe75720660fe75f30660fe76740660fe76f50660fe77760660fe77f70488dbf80000000739b4883fac0488d92800000007c32f30f6f06f30f6f4e10f30f6f5620f30f6f5e30488d7640660fe707660fe74f10660fe75720660fe75f30488d7f404883ea404801d64801d70faef84c8d1d6811070049631493498d1413ffe20f0b6690662e0f1f8400000000000f188ec00100000f188e00020000f30f6f06f30f6f4e10f30f6f5620f30f6f5e30f30f6f6640f30f6f6e50f30f6f7660f30f6f7e70488db6800000004881ea800000000f29070f294f100f2957200f295f300f2967400f296f500f2977600f297f70488dbf8000000073954883fac0488d92800000007c2ef30f6f06f30f6f4e10f30f6f5620f30f6f5e30488d76400f29070f294f100f2957200f295f30488d7f404883ea404801d64801d74c8d1d9d10070049631493498d1413ffe20f0b90f30f6f4ef0488d76f0f3410f7f00660f7f4ff0488d7ff0488d9270ffffff4989f94929f14939d173094939c90f82be000000f30f6f46f0f30f6f4ee0f30f6f56d0f30f6f5ec0f30f6f66b0f30f6f6ea0f30f6f7690f30f6f7e80488d76804881ea80000000660fe747f0660fe74fe0660fe757d0660fe75fc0660fe767b0660fe76fa0660fe77790660fe77f80488d7f80739f4883fac0488d92800000007c34f30f6f46f0f30f6f4ee0f30f6f56d0f30f6f5ec0488d76c0660fe747f0660fe74fe0660fe757d0660fe75fc0488d7fc04883ea400faef84c8d1db20f070049631493498d1413ffe20f0b660f1f4400000f188e40feffff0f188e00fefffff30f6f46f0f30f6f4ee0f30f6f56d0f30f6f5ec0f30f6f66b0f30f6f6ea0f30f6f7690f30f6f7e80488d76804881ea800000000f2947f00f294fe00f2957d00f295fc00f2967b00f296fa00f2977900f297f80488d7f8073994883fac0488d92800000007c30f30f6f46f0f30f6f4ee0f30f6f56d0f30f6f5ec0488d76c00f2947f00f294fe00f2957d00f295fc0488d7fc04883ea404c8d1df50e070049631493498d1413ffe20f0b660f1f8400000000004839d10f82e70501000f1f80000000004889f84881fa000100000f83c001000080fa100f826701000080fa800f82ae000000c5fa6f06488d0c16c5fa6f4e10c5fa6f5620c5fa6f5e30c5fa6f6640c5fa6f6e50c5fa6f7660c5fa6f7e70c57a6f4180c57a6f4990c57a6f51a0c57a6f59b0c57a6f61c0c57a6f69d0c57a6f71e0c57a6f79f0488d1417c5fa7f07c5fa7f4f10c5fa7f5720c5fa7f5f30c5fa7f6740c5fa7f6f50c5fa7f7760c5fa7f7f70c57a7f4280c57a7f4a90c57a7f52a0c57a7f5ab0c57a7f62c0c57a7f6ad0c57a7f72e0c57a7f7af0c30f1f800000000080fa40725bc5fa6f06488d0c16c5fa6f4e10c5fa6f5620488d1417c5fa6f5e30c5fa6f61c0c5fa6f69d0c5fa6f71e0c5fa6f79f0c5fa7f07c5fa7f4f10c5fa7f5720c5fa7f5f30c5fa7f62c0c5fa7f6ad0c5fa7f72e0c5fa7f7af0c30f1f400080fa20722bc5fa6f06c5fa6f4e10c5fa6f7416e0c5fa6f7c16f0c5fa7f07c5fa7f4f10c5fa7f7417e0c5fa7f7c17f0c3c5fa6f06c5fa6f7c16f0c5fa7f07c5fa7f7c17f0c390662e0f1f84000000000080fa08721b488b4c16f8488b3648893748894c17f8c3662e0f1f84000000000080fa04720d8b4c16fc8b368937894c17fcc380fa017611668b4c16fe668b3666893766894c17fec372048a0e880fc3904889f94829f14839d10f82c10100004881fa000800000f83c40000004989c0488d0c164989fac5fa6f6980c5fa6f719048c7c0800000004883e7e04883c720c5fa6f79a0c57a6f41b04989fb4d29d3c57a6f49c0c57a6f51d04c29dac57a6f59e0c57a6f61f0c5fe6f264c01de29c2c5fe6f06c5fe6f4e20c5fe6f5640c5fe6f5e604801c6c5fd7f07c5fd7f4f20c5fd7f5740c5fd7f5f604801c729c273d001c24801fac4c17e7f22c5f877c5fa7f6a80c5fa7f7290c5fa7f7aa0c57a7f42b0c57a7f4ac0c57a7f52d0c57a7f5ae0c57a7f62f04c89c0c30f1f840000000000488b0dd986290048c1e1034839ca73104889d14889d1f3a4c30f1f8000000000488d0c16c5fe6f26c5fa6f6c1680c5fa6f7190c5fa6f79a0c57a6f41b0c57a6f49c0c57a6f51d0c57a6f59e0c57a6f61f04989f84883e7e04883c7204989fa4d29c24c29d24c01d6488d0c174883c2800f1886c00100000f188680020000c5fe6f06c5fe6f4e20c5fe6f5640c5fe6f5e604883ee80c5fde707c5fde74f20c5fde75740c5fde75f604883ef804883c28072be0faef8c4c17e7f20c5f877c5fa7f6980c5fa7f7190c5fa7f79a0c57a7f41b0c57a7f49c0c57a7f51d0c57a7f59e0c57a7f61f0c3662e0f1f840000000000488b0de985290048c1e103c5fa6f2ec5fa6f76104801d7c5fa6f7e20c57a6f46304c8d57e04989fbc57a6f4e40c57a6f56504983e31fc57a6f5e60c57a6f66704c31df4801d6c5fe6f66e04c29de4c29da4839ca776a4883c280c5fe6f46e0c5fe6f4ec0c5fe6f56a0c5fe6f5e80488d7680c5fd7f47e0c5fd7f4fc0c5fd7f57a0c5fd7f5f80488d7f804883c28072cac4c17e7f22c5f877c5fa7f28c5fa7f7010c5fa7f7820c57a7f4030c57a7f4840c57a7f5050c57a7f5860c57a7f6070c34883c2800f188640feffff0f188680fdffffc5fe6f46e0c5fe6f4ec0c5fe6f56a0c5fe6f5e80488d7680c5fde747e0c5fde74fc0c5fde757a0c5fde75f80488d7f804883c28072bc0faef8c4c17e7f22c5f877c5fa7f28c5fa7f7010c5fa7f7820c57a7f4030c57a7f4840c57a7f5050c57a7f5860c57a7f6070c30f1f4400004839d10f82f70001000f1f80000000004889f84839f772260f84702400004881fa900000000f83950000004c8d1d7e0b070049631493498d1413ffe20f0b4881fa9000000073194801d64801d74c8d1d9c0d070049631493498d1413ffe20f0bf30f6f064989f84883e7f04883c7104989f94d29c14c29ca4c01ce4989f14983e10f0f8498000000488b0d398429004839ca0f83281800004c8d1d910f07004881ea800000004f630c8b4d01d941ffe10f0b0f1f4000662e0f1f840000000000488b0d0184290048d1e14839ca0f879d1900004801d74801d6f30f6f46f04c8d47f04989f94983e10f4c31cf4c29ce4c29ca4989f14983e10f0f84c10000004c8d1d6a0f07004881ea800000004f630c8b4d01d941ffe10f0b0f1f80000000004989d149c1e9084901d14c3b0d9f8329000f83891700004881ea800000006690660f6f0e660f7f0f0f2856100f2957100f285e200f295f200f2866300f2967300f284e400f294f400f2856500f2957500f285e600f295f600f2866700f2967704881ea80000000488db680000000488dbf8000000073a9f3410f7f004881c2800000004801d64801d74c8d1d400c070049631493498d1413ffe20f0b0f1f40004881ea800000000f284ef00f294ff00f2856e00f2957e00f285ed00f295fd00f2866c00f2967c00f286eb00f296fb00f286ea00f296fa00f286e900f296f900f286e800f296f804881ea80000000488d7f80488d768073aff3410f7f004881c2800000004829d74829d64c8d1d7f09070049631493498d1413ffe20f0b0f1f004881ea800000000f284eff0f28560f0f285e1f0f28662f0f286e3f0f28764f0f287e5f440f28466f440f284e7f488db68000000066450f3a0fc801440f294f7066440f3a0fc701440f294760660f3a0ffe010f297f50660f3a0ff5010f297740660f3a0fec010f296f30660f3a0fe3010f296720660f3a0fda010f295f10660f3a0fd1010f2917488dbf800000000f836cfffffff3410f7f004881c2800000004801d74801d64c8d1d030b070049631493498d1413ffe20f0b0f1f80000000000f284eff0f2856ef660f3a0fca010f294ff00f285edf660f3a0fd3010f2957e00f2866cf660f3a0fdc010f295fd00f286ebf660f3a0fe5010f2967c00f2876af660f3a0fee010f296fb00f287e9f660f3a0ff7010f2977a0440f28468f66410f3a0ff8010f297f90440f288e7fffffff66450f3a0fc101440f2947804881ea80000000488d7f80488d76800f836ffffffff3410f7f004881c2800000004829d74829d64c8d1d0608070049631493498d1413ffe20f0b662e0f1f8400000000004881ea800000000f284efe0f28560e0f285e1e0f28662e0f286e3e0f28764e0f287e5e440f28466e440f284e7e488db68000000066450f3a0fc802440f294f7066440f3a0fc702440f294760660f3a0ffe020f297f50660f3a0ff5020f297740660f3a0fec020f296f30660f3a0fe3020f296720660f3a0fda020f295f10660f3a0fd1020f2917488dbf800000000f836cfffffff3410f7f004881c2800000004801d74801d64c8d1d8309070049631493498d1413ffe20f0b0f1f80000000000f284efe0f2856ee660f3a0fca020f294ff00f285ede660f3a0fd3020f2957e00f2866ce660f3a0fdc020f295fd00f286ebe660f3a0fe5020f2967c00f2876ae660f3a0fee020f296fb00f287e9e660f3a0ff7020f2977a0440f28468e66410f3a0ff8020f297f90440f288e7effffff66450f3a0fc102440f2947804881ea80000000488d7f80488d76800f836ffffffff3410f7f004881c2800000004829d74829d64c8d1d8606070049631493498d1413ffe20f0b662e0f1f8400000000004881ea800000000f284efd0f28560d0f285e1d0f28662d0f286e3d0f28764d0f287e5d440f28466d440f284e7d488db68000000066450f3a0fc803440f294f7066440f3a0fc703440f294760660f3a0ffe030f297f50660f3a0ff5030f297740660f3a0fec030f296f30660f3a0fe3030f296720660f3a0fda030f295f10660f3a0fd1030f2917488dbf800000000f836cfffffff3410f7f004881c2800000004801d74801d64c8d1d0308070049631493498d1413ffe20f0b0f1f80000000000f284efd0f2856ed660f3a0fca030f294ff00f285edd660f3a0fd3030f2957e00f2866cd660f3a0fdc030f295fd00f286ebd660f3a0fe5030f2967c00f2876ad660f3a0fee030f296fb00f287e9d660f3a0ff7030f2977a0440f28468d66410f3a0ff8030f297f90440f288e7dffffff66450f3a0fc103440f2947804881ea80000000488d7f80488d76800f836ffffffff3410f7f004881c2800000004829d74829d64c8d1d0605070049631493498d1413ffe20f0b662e0f1f8400000000004881ea800000000f284efc0f28560c0f285e1c0f28662c0f286e3c0f28764c0f287e5c440f28466c440f284e7c488db68000000066450f3a0fc804440f294f7066440f3a0fc704440f294760660f3a0ffe040f297f50660f3a0ff5040f297740660f3a0fec040f296f30660f3a0fe3040f296720660f3a0fda040f295f10660f3a0fd1040f2917488dbf800000000f836cfffffff3410f7f004881c2800000004801d74801d64c8d1d8306070049631493498d1413ffe20f0b0f1f80000000000f284efc0f2856ec660f3a0fca040f294ff00f285edc660f3a0fd3040f2957e00f2866cc660f3a0fdc040f295fd00f286ebc660f3a0fe5040f2967c00f2876ac660f3a0fee040f296fb00f287e9c660f3a0ff7040f2977a0440f28468c66410f3a0ff8040f297f90440f288e7cffffff66450f3a0fc104440f2947804881ea80000000488d7f80488d76800f836ffffffff3410f7f004881c2800000004829d74829d64c8d1d8603070049631493498d1413ffe20f0b662e0f1f8400000000004881ea800000000f284efb0f28560b0f285e1b0f28662b0f286e3b0f28764b0f287e5b440f28466b440f284e7b488db68000000066450f3a0fc805440f294f7066440f3a0fc705440f294760660f3a0ffe050f297f50660f3a0ff5050f297740660f3a0fec050f296f30660f3a0fe3050f296720660f3a0fda050f295f10660f3a0fd1050f2917488dbf800000000f836cfffffff3410f7f004881c2800000004801d74801d64c8d1d0305070049631493498d1413ffe20f0b0f1f80000000000f284efb0f2856eb660f3a0fca050f294ff00f285edb660f3a0fd3050f2957e00f2866cb660f3a0fdc050f295fd00f286ebb660f3a0fe5050f2967c00f2876ab660f3a0fee050f296fb00f287e9b660f3a0ff7050f2977a0440f28468b66410f3a0ff8050f297f90440f288e7bffffff66450f3a0fc105440f2947804881ea80000000488d7f80488d76800f836ffffffff3410f7f004881c2800000004829d74829d64c8d1d0602070049631493498d1413ffe20f0b662e0f1f8400000000004881ea800000000f284efa0f28560a0f285e1a0f28662a0f286e3a0f28764a0f287e5a440f28466a440f284e7a488db68000000066450f3a0fc806440f294f7066440f3a0fc706440f294760660f3a0ffe060f297f50660f3a0ff5060f297740660f3a0fec060f296f30660f3a0fe3060f296720660f3a0fda060f295f10660f3a0fd1060f2917488dbf800000000f836cfffffff3410f7f004881c2800000004801d74801d64c8d1d8303070049631493498d1413ffe20f0b0f1f80000000000f284efa0f2856ea660f3a0fca060f294ff00f285eda660f3a0fd3060f2957e00f2866ca660f3a0fdc060f295fd00f286eba660f3a0fe5060f2967c00f2876aa660f3a0fee060f296fb00f287e9a660f3a0ff7060f2977a0440f28468a66410f3a0ff8060f297f90440f288e7affffff66450f3a0fc106440f2947804881ea80000000488d7f80488d76800f836ffffffff3410f7f004881c2800000004829d74829d64c8d1d8600070049631493498d1413ffe20f0b662e0f1f8400000000004881ea800000000f284ef90f2856090f285e190f2866290f286e390f2876490f287e59440f284669440f284e79488db68000000066450f3a0fc807440f294f7066440f3a0fc707440f294760660f3a0ffe070f297f50660f3a0ff5070f297740660f3a0fec070f296f30660f3a0fe3070f296720660f3a0fda070f295f10660f3a0fd1070f2917488dbf800000000f836cfffffff3410f7f004881c2800000004801d74801d64c8d1d0302070049631493498d1413ffe20f0b0f1f80000000000f284ef90f2856e9660f3a0fca070f294ff00f285ed9660f3a0fd3070f2957e00f2866c9660f3a0fdc070f295fd00f286eb9660f3a0fe5070f2967c00f2876a9660f3a0fee070f296fb00f287e99660f3a0ff7070f2977a0440f28468966410f3a0ff8070f297f90440f288e79ffffff66450f3a0fc107440f2947804881ea80000000488d7f80488d76800f836ffffffff3410f7f004881c2800000004829d74829d64c8d1d06ff060049631493498d1413ffe20f0b662e0f1f8400000000004881ea800000000f284ef80f2856080f285e180f2866280f286e380f2876480f287e58440f284668440f284e78488db68000000066450f3a0fc808440f294f7066440f3a0fc708440f294760660f3a0ffe080f297f50660f3a0ff5080f297740660f3a0fec080f296f30660f3a0fe3080f296720660f3a0fda080f295f10660f3a0fd1080f2917488dbf800000000f836cfffffff3410f7f004881c2800000004801d74801d64c8d1d8300070049631493498d1413ffe20f0b0f1f80000000000f284ef80f2856e8660f3a0fca080f294ff00f285ed8660f3a0fd3080f2957e00f2866c8660f3a0fdc080f295fd00f286eb8660f3a0fe5080f2967c00f2876a8660f3a0fee080f296fb00f287e98660f3a0ff7080f2977a0440f28468866410f3a0ff8080f297f90440f288e78ffffff66450f3a0fc108440f2947804881ea80000000488d7f80488d76800f836ffffffff3410f7f004881c2800000004829d74829d64c8d1d86fd060049631493498d1413ffe20f0b662e0f1f8400000000004881ea800000000f284ef70f2856070f285e170f2866270f286e370f2876470f287e57440f284667440f284e77488db68000000066450f3a0fc809440f294f7066440f3a0fc709440f294760660f3a0ffe090f297f50660f3a0ff5090f297740660f3a0fec090f296f30660f3a0fe3090f296720660f3a0fda090f295f10660f3a0fd1090f2917488dbf800000000f836cfffffff3410f7f004881c2800000004801d74801d64c8d1d03ff060049631493498d1413ffe20f0b0f1f80000000000f284ef70f2856e7660f3a0fca090f294ff00f285ed7660f3a0fd3090f2957e00f2866c7660f3a0fdc090f295fd00f286eb7660f3a0fe5090f2967c00f2876a7660f3a0fee090f296fb00f287e97660f3a0ff7090f2977a0440f28468766410f3a0ff8090f297f90440f288e77ffffff66450f3a0fc109440f2947804881ea80000000488d7f80488d76800f836ffffffff3410f7f004881c2800000004829d74829d64c8d1d06fc060049631493498d1413ffe20f0b662e0f1f8400000000004881ea800000000f284ef60f2856060f285e160f2866260f286e360f2876460f287e56440f284666440f284e76488db68000000066450f3a0fc80a440f294f7066440f3a0fc70a440f294760660f3a0ffe0a0f297f50660f3a0ff50a0f297740660f3a0fec0a0f296f30660f3a0fe30a0f296720660f3a0fda0a0f295f10660f3a0fd10a0f2917488dbf800000000f836cfffffff3410f7f004881c2800000004801d74801d64c8d1d83fd060049631493498d1413ffe20f0b0f1f80000000000f284ef60f2856e6660f3a0fca0a0f294ff00f285ed6660f3a0fd30a0f2957e00f2866c6660f3a0fdc0a0f295fd00f286eb6660f3a0fe50a0f2967c00f2876a6660f3a0fee0a0f296fb00f287e96660f3a0ff70a0f2977a0440f28468666410f3a0ff80a0f297f90440f288e76ffffff66450f3a0fc10a440f2947804881ea80000000488d7f80488d76800f836ffffffff3410f7f004881c2800000004829d74829d64c8d1d86fa060049631493498d1413ffe20f0b662e0f1f8400000000004881ea800000000f284ef50f2856050f285e150f2866250f286e350f2876450f287e55440f284665440f284e75488db68000000066450f3a0fc80b440f294f7066440f3a0fc70b440f294760660f3a0ffe0b0f297f50660f3a0ff50b0f297740660f3a0fec0b0f296f30660f3a0fe30b0f296720660f3a0fda0b0f295f10660f3a0fd10b0f2917488dbf800000000f836cfffffff3410f7f004881c2800000004801d74801d64c8d1d03fc060049631493498d1413ffe20f0b0f1f80000000000f284ef50f2856e5660f3a0fca0b0f294ff00f285ed5660f3a0fd30b0f2957e00f2866c5660f3a0fdc0b0f295fd00f286eb5660f3a0fe50b0f2967c00f2876a5660f3a0fee0b0f296fb00f287e95660f3a0ff70b0f2977a0440f28468566410f3a0ff80b0f297f90440f288e75ffffff66450f3a0fc10b440f2947804881ea80000000488d7f80488d76800f836ffffffff3410f7f004881c2800000004829d74829d64c8d1d06f9060049631493498d1413ffe20f0b662e0f1f8400000000004881ea80000000660f6f4ef40f2856040f285e140f2866240f286e340f2876440f287e54440f284664440f284e74488db68000000066450f3a0fc80c440f294f7066440f3a0fc70c440f294760660f3a0ffe0c0f297f50660f3a0ff50c0f297740660f3a0fec0c0f296f30660f3a0fe30c0f296720660f3a0fda0c0f295f10660f3a0fd10c0f2917488dbf800000000f836bfffffff3410f7f004881c2800000004801d74801d64c8d1d82fa060049631493498d1413ffe20f0b660f1f4400000f284ef40f2856e4660f3a0fca0c0f294ff00f285ed4660f3a0fd30c0f2957e00f2866c4660f3a0fdc0c0f295fd00f286eb4660f3a0fe50c0f2967c00f2876a4660f3a0fee0c0f296fb00f287e94660f3a0ff70c0f2977a0440f28468466410f3a0ff80c0f297f90440f288e74ffffff66450f3a0fc10c440f2947804881ea80000000488d7f80488d76800f836ffffffff3410f7f004881c2800000004829d74829d64c8d1d86f7060049631493498d1413ffe20f0b662e0f1f8400000000004881ea800000000f284ef30f2856030f285e130f2866230f286e330f2876430f287e53440f284663440f284e73488db68000000066450f3a0fc80d440f294f7066440f3a0fc70d440f294760660f3a0ffe0d0f297f50660f3a0ff50d0f297740660f3a0fec0d0f296f30660f3a0fe30d0f296720660f3a0fda0d0f295f10660f3a0fd10d0f2917488dbf800000000f836cfffffff3410f7f004881c2800000004801d74801d64c8d1d03f9060049631493498d1413ffe20f0b0f1f80000000000f284ef30f2856e3660f3a0fca0d0f294ff00f285ed3660f3a0fd30d0f2957e00f2866c3660f3a0fdc0d0f295fd00f286eb3660f3a0fe50d0f2967c00f2876a3660f3a0fee0d0f296fb00f287e93660f3a0ff70d0f2977a0440f28468366410f3a0ff80d0f297f90440f288e73ffffff66450f3a0fc10d440f2947804881ea80000000488d7f80488d76800f836ffffffff3410f7f004881c2800000004829d74829d64c8d1d06f6060049631493498d1413ffe20f0b662e0f1f8400000000004881ea800000000f284ef20f2856020f285e120f2866220f286e320f2876420f287e52440f284662440f284e72488db68000000066450f3a0fc80e440f294f7066440f3a0fc70e440f294760660f3a0ffe0e0f297f50660f3a0ff50e0f297740660f3a0fec0e0f296f30660f3a0fe30e0f296720660f3a0fda0e0f295f10660f3a0fd10e0f2917488dbf800000000f836cfffffff3410f7f004881c2800000004801d74801d64c8d1d83f7060049631493498d1413ffe20f0b0f1f80000000000f284ef20f2856e2660f3a0fca0e0f294ff00f285ed2660f3a0fd30e0f2957e00f2866c2660f3a0fdc0e0f295fd00f286eb2660f3a0fe50e0f2967c00f2876a2660f3a0fee0e0f296fb00f287e92660f3a0ff70e0f2977a0440f28468266410f3a0ff80e0f297f90440f288e72ffffff66450f3a0fc10e440f2947804881ea80000000488d7f80488d76800f836ffffffff3410f7f004881c2800000004829d74829d64c8d1d86f4060049631493498d1413ffe20f0b662e0f1f8400000000004881ea800000000f284ef10f2856010f285e110f2866210f286e310f2876410f287e51440f284661440f284e71488db68000000066450f3a0fc80f440f294f7066440f3a0fc70f440f294760660f3a0ffe0f0f297f50660f3a0ff50f0f297740660f3a0fec0f0f296f30660f3a0fe30f0f296720660f3a0fda0f0f295f10660f3a0fd10f0f2917488dbf800000000f836cfffffff3410f7f004881c2800000004801d74801d64c8d1d03f6060049631493498d1413ffe20f0b0f1f80000000000f284ef10f2856e1660f3a0fca0f0f294ff00f285ed1660f3a0fd30f0f2957e00f2866c1660f3a0fdc0f0f295fd00f286eb1660f3a0fe50f0f2967c00f2876a1660f3a0fee0f0f296fb00f287e91660f3a0ff70f0f2977a0440f28468166410f3a0ff80f0f297f90440f288e71ffffff66450f3a0fc10f440f2947804881ea80000000488d7f80488d76800f836ffffffff3410f7f004881c2800000004829d74829d64c8d1d06f3060049631493498d1413ffe20f0b662e0f1f840000000000f30f6f0ef3410f7f00660f7f0f4883ea104883c6104883c710488b0dd06b29004989f14929f94939d173094939c90f86c10000004839ca77034889d14829ca4881fa001000000f86a60000004989c949c1e1034c39ca76064801ca4831c94881ea800000004881ea800000000f188e000200000f188e00030000f30f6f06f30f6f4e10f30f6f5620f30f6f5e30f30f6f6640f30f6f6e50f30f6f7660f30f6f7e700faee8660fe707660fe74f10660fe75720660fe75f30660fe76740660fe76f50660fe77760660fe77f70488db680000000488dbf80000000738a0faef84881f9800000000f82960000004881c2800000004801ca4881ea800000000f1886c00100000f1886800200000f1887c00100000f1887800200004881ea80000000f30f6f06f30f6f4e10f30f6f5620f30f6f5e30f30f6f6640f30f6f6e50f30f6f7660f30f6f7e70660f7f07660f7f4f10660f7f5720660f7f5f30660f7f6740660f7f6f50660f7f7760660f7f7f70488db680000000488dbf800000000f837bffffff4881c2800000004801d64801d74c8d1d9bf3060049631493498d1413ffe20f0b0f1f440000662e0f1f8400000000004801d64801d7f30f6f46f04c8d47f04989f94883e7f04929f94c29ce4c29ca488b0d1a6a29004989f94929f14939d173094939c90f86bf0000004839ca77034889d14829ca4881fa001000000f86a40000004989c949c1e1034c39ca76064801ca4831c94881ea800000004881ea800000000f188e00feffff0f188e00fdfffff30f6f4ef0f30f6f56e0f30f6f5ed0f30f6f66c0f30f6f6eb0f30f6f76a0f30f6f7e90f3440f6f46800faee8660fe74ff0660fe757e0660fe75fd0660fe767c0660fe76fb0660fe777a0660fe77f9066440fe74780488d7680488d7f80738c0faef84881f9800000000f82900000004881c2800000004801ca4881ea800000000f188640feffff0f188680fdffff0f188740feffff0f188780fdffff4881ea80000000f30f6f4ef0f30f6f56e0f30f6f5ed0f30f6f66c0f30f6f6eb0f30f6f76a0f30f6f7e90f3440f6f4680660f7f4ff0660f7f57e0660f7f5fd0660f7f67c0660f7f6fb0660f7f77a0660f7f7f9066440f7f4780488d7680488d7f807381f3410f7f004881c2800000004829d64829d74c8d1da8ef060049631493498d1413ffe20f0b6690662e0f1f840000000000f20ff04680f30f7f4780f20ff04690f30f7f4790f20ff046a0f30f7f47a0f20ff046b0f30f7f47b0f20ff046c0f30f7f47c0f20ff046d0f30f7f47d0f20ff046e0f30f7f47e0f20ff046f0f30f7f47f0c30f1f440000662e0f1f840000000000f20ff08671fffffff30f7f8771fffffff20ff04681f30f7f4781f20ff04691f30f7f4791f20ff046a1f30f7f47a1f20ff046b1f30f7f47b1f20ff046c1f30f7f47c1f20ff046d1f30f7f47d1f20ff046e1f20ff04ef0f30f7f47e1f30f7f4ff0c30f1f440000662e0f1f840000000000488b56f1488b4ef8488957f148894ff8c30f1f440000662e0f1f840000000000f20ff08672fffffff30f7f8772fffffff20ff04682f30f7f4782f20ff04692f30f7f4792f20ff046a2f30f7f47a2f20ff046b2f30f7f47b2f20ff046c2f30f7f47c2f20ff046d2f30f7f47d2f20ff046e2f20ff04ef0f30f7f47e2f30f7f4ff0c30f1f440000662e0f1f840000000000488b56f2488b4ef8488957f248894ff8c30f1f440000662e0f1f840000000000f20ff08673fffffff30f7f8773fffffff20ff04683f30f7f4783f20ff04693f30f7f4793f20ff046a3f30f7f47a3f20ff046b3f30f7f47b3f20ff046c3f30f7f47c3f20ff046d3f30f7f47d3f20ff046e3f20ff04ef0f30f7f47e3f30f7f4ff0c30f1f440000662e0f1f840000000000488b56f3488b4ef8488957f348894ff8c30f1f440000662e0f1f840000000000f20ff08674fffffff30f7f8774fffffff20ff04684f30f7f4784f20ff04694f30f7f4794f20ff046a4f30f7f47a4f20ff046b4f30f7f47b4f20ff046c4f30f7f47c4f20ff046d4f30f7f47d4f20ff046e4f20ff04ef0f30f7f47e4f30f7f4ff0c30f1f440000662e0f1f840000000000488b56f48b4efc488957f4894ffcc390f20ff08675fffffff30f7f8775fffffff20ff04685f30f7f4785f20ff04695f30f7f4795f20ff046a5f30f7f47a5f20ff046b5f30f7f47b5f20ff046c5f30f7f47c5f20ff046d5f30f7f47d5f20ff046e5f20ff04ef0f30f7f47e5f30f7f4ff0c30f1f440000662e0f1f840000000000488b56f58b4efc488957f5894ffcc390f20ff08676fffffff30f7f8776fffffff20ff04686f30f7f4786f20ff04696f30f7f4796f20ff046a6f30f7f47a6f20ff046b6f30f7f47b6f20ff046c6f30f7f47c6f20ff046d6f30f7f47d6f20ff046e6f20ff04ef0f30f7f47e6f30f7f4ff0c30f1f440000662e0f1f840000000000488b56f68b4efc488957f6894ffcc390f20ff08677fffffff30f7f8777fffffff20ff04687f30f7f4787f20ff04697f30f7f4797f20ff046a7f30f7f47a7f20ff046b7f30f7f47b7f20ff046c7f30f7f47c7f20ff046d7f30f7f47d7f20ff046e7f20ff04ef0f30f7f47e7f30f7f4ff0c30f1f440000662e0f1f840000000000488b56f78b4efc488957f7894ffcc390f20ff08678fffffff30f7f8778fffffff20ff04688f30f7f4788f20ff04698f30f7f4798f20ff046a8f30f7f47a8f20ff046b8f30f7f47b8f20ff046c8f30f7f47c8f20ff046d8f30f7f47d8f20ff046e8f20ff04ef0f30f7f47e8f30f7f4ff0c30f1f440000662e0f1f840000000000488b56f8488957f8c30f1f8000000000f20ff08679fffffff30f7f8779fffffff20ff04689f30f7f4789f20ff04699f30f7f4799f20ff046a9f30f7f47a9f20ff046b9f30f7f47b9f20ff046c9f30f7f47c9f20ff046d9f30f7f47d9f20ff046e9f20ff04ef0f30f7f47e9f30f7f4ff0c30f1f440000662e0f1f8400000000008b56f98b4efc8957f9894ffcc30f1f00f20ff0867afffffff30f7f877afffffff20ff0468af30f7f478af20ff0469af30f7f479af20ff046aaf30f7f47aaf20ff046baf30f7f47baf20ff046caf30f7f47caf20ff046daf30f7f47daf20ff046eaf20ff04ef0f30f7f47eaf30f7f4ff0c30f1f440000662e0f1f8400000000008b56fa8b4efc8957fa894ffcc30f1f00f20ff0867bfffffff30f7f877bfffffff20ff0468bf30f7f478bf20ff0469bf30f7f479bf20ff046abf30f7f47abf20ff046bbf30f7f47bbf20ff046cbf30f7f47cbf20ff046dbf30f7f47dbf20ff046ebf20ff04ef0f30f7f47ebf30f7f4ff0c30f1f440000662e0f1f8400000000008b56fb8b4efc8957fb894ffcc30f1f00f20ff0867cfffffff30f7f877cfffffff20ff0468cf30f7f478cf20ff0469cf30f7f479cf20ff046acf30f7f47acf20ff046bcf30f7f47bcf20ff046ccf30f7f47ccf20ff046dcf30f7f47dcf20ff046ecf20ff04ef0f30f7f47ecf30f7f4ff0c30f1f440000662e0f1f8400000000008b56fc8957fcc3660f1f840000000000f20ff0867dfffffff30f7f877dfffffff20ff0468df30f7f478df20ff0469df30f7f479df20ff046adf30f7f47adf20ff046bdf30f7f47bdf20ff046cdf30f7f47cdf20ff046ddf30f7f47ddf20ff046edf20ff04ef0f30f7f47edf30f7f4ff0c30f1f440000662e0f1f840000000000668b56fd668b4efe668957fd66894ffec30f1f440000662e0f1f840000000000f20ff0867efffffff30f7f877efffffff20ff0468ef30f7f478ef20ff0469ef30f7f479ef20ff046aef30f7f47aef20ff046bef30f7f47bef20ff046cef30f7f47cef20ff046def30f7f47def20ff046eef20ff04ef0f30f7f47eef30f7f4ff0c30f1f440000662e0f1f8400000000000fb756fe668957fec30f1f8000000000f20ff0867ffffffff30f7f877ffffffff20ff0468ff30f7f478ff20ff0469ff30f7f479ff20ff046aff30f7f47aff20ff046bff30f7f47bff20ff046cff30f7f47cff20ff046dff30f7f47dff20ff046eff20ff04ef0f30f7f47eff30f7f4ff0c30f1f440000662e0f1f8400000000000fb656ff8857ffc30f1f840000000000f20ff04670f30f7f4770f20ff04660f30f7f4760f20ff04650f30f7f4750f20ff04640f30f7f4740f20ff04630f30f7f4730f20ff04620f30f7f4720f20ff04610f30f7f4710f20ff006f30f7f07c390f20ff0467ff30f7f477ff20ff0466ff30f7f476ff20ff0465ff30f7f475ff20ff0464ff30f7f474ff20ff0463ff30f7f473ff20ff0462ff30f7f472ff20ff0461ff30f7f471ff20ff0460ff20ff00ef30f7f470ff30f7f0fc30f1f8000000000488b5607488b0e4889570748890fc390f20ff0467ef30f7f477ef20ff0466ef30f7f476ef20ff0465ef30f7f475ef20ff0464ef30f7f474ef20ff0463ef30f7f473ef20ff0462ef30f7f472ef20ff0461ef30f7f471ef20ff0460ef20ff00ef30f7f470ef30f7f0fc30f1f8000000000488b5606488b0e4889570648890fc390f20ff0467df30f7f477df20ff0466df30f7f476df20ff0465df30f7f475df20ff0464df30f7f474df20ff0463df30f7f473df20ff0462df30f7f472df20ff0461df30f7f471df20ff0460df20ff00ef30f7f470df30f7f0fc30f1f8000000000488b5605488b0e4889570548890fc390f20ff0467cf30f7f477cf20ff0466cf30f7f476cf20ff0465cf30f7f475cf20ff0464cf30f7f474cf20ff0463cf30f7f473cf20ff0462cf30f7f472cf20ff0461cf30f7f471cf20ff0460cf20ff00ef30f7f470cf30f7f0fc30f1f8000000000488b5604488b0e4889570448890fc390f20ff0467bf30f7f477bf20ff0466bf30f7f476bf20ff0465bf30f7f475bf20ff0464bf30f7f474bf20ff0463bf30f7f473bf20ff0462bf30f7f472bf20ff0461bf30f7f471bf20ff0460bf20ff00ef30f7f470bf30f7f0fc30f1f8000000000488b5603488b0e4889570348890fc390f20ff0467af30f7f477af20ff0466af30f7f476af20ff0465af30f7f475af20ff0464af30f7f474af20ff0463af30f7f473af20ff0462af30f7f472af20ff0461af30f7f471af20ff0460af20ff00ef30f7f470af30f7f0fc30f1f8000000000488b5602488b0e4889570248890fc390f20ff04679f30f7f4779f20ff04669f30f7f4769f20ff04659f30f7f4759f20ff04649f30f7f4749f20ff04639f30f7f4739f20ff04629f30f7f4729f20ff04619f30f7f4719f20ff04609f20ff00ef30f7f4709f30f7f0fc30f1f8000000000488b5601488b0e4889570148890fc390f20ff04678f30f7f4778f20ff04668f30f7f4768f20ff04658f30f7f4758f20ff04648f30f7f4748f20ff04638f30f7f4738f20ff04628f30f7f4728f20ff04618f30f7f4718f20ff04608f20ff00ef30f7f4708f30f7f0fc30f1f8000000000488b16488917c3660f1f840000000000f20ff04677f30f7f4777f20ff04667f30f7f4767f20ff04657f30f7f4757f20ff04647f30f7f4747f20ff04637f30f7f4737f20ff04627f30f7f4727f20ff04617f30f7f4717f20ff04607f20ff00ef30f7f4707f30f7f0fc30f1f80000000008b56038b0e895703890fc30f1f440000f20ff04676f30f7f4776f20ff04666f30f7f4766f20ff04656f30f7f4756f20ff04646f30f7f4746f20ff04636f30f7f4736f20ff04626f30f7f4726f20ff04616f30f7f4716f20ff04606f20ff00ef30f7f4706f30f7f0fc30f1f80000000008b56028b0e895702890fc30f1f440000f20ff04675f30f7f4775f20ff04665f30f7f4765f20ff04655f30f7f4755f20ff04645f30f7f4745f20ff04635f30f7f4735f20ff04625f30f7f4725f20ff04615f30f7f4715f20ff04605f20ff00ef30f7f4705f30f7f0fc30f1f80000000008b56018b0e895701890fc30f1f440000f20ff04674f30f7f4774f20ff04664f30f7f4764f20ff04654f30f7f4754f20ff04644f30f7f4744f20ff04634f30f7f4734f20ff04624f30f7f4724f20ff04614f30f7f4714f20ff04604f20ff00ef30f7f4704f30f7f0fc30f1f80000000008b168917c390662e0f1f840000000000f20ff04673f30f7f4773f20ff04663f30f7f4763f20ff04653f30f7f4753f20ff04643f30f7f4743f20ff04633f30f7f4733f20ff04623f30f7f4723f20ff04613f30f7f4713f20ff04603f20ff00ef30f7f4703f30f7f0fc30f1f8000000000668b5601668b0e6689570166890fc390f20ff04672f30f7f4772f20ff04662f30f7f4762f20ff04652f30f7f4752f20ff04642f30f7f4742f20ff04632f30f7f4732f20ff04622f30f7f4722f20ff04612f30f7f4712f20ff04602f20ff00ef30f7f4702f30f7f0fc30f1f80000000000fb716668917c3660f1f840000000000f20ff04671f30f7f4771f20ff04661f30f7f4761f20ff04651f30f7f4751f20ff04641f30f7f4741f20ff04631f30f7f4731f20ff04621f30f7f4721f20ff04611f30f7f4711f20ff04601f20ff00ef30f7f4701f30f7f0fc30f1f80000000000fb6168817c3662e0f1f8400000000004839d10f82d7d500000f1f80000000004889f8488d0c164c8d0c174881fa000200000f875d0100004883fa100f860f0100004881fa00010000726f62f17c48100662f17c48104e0162f17c4810560262f17c48105e0362f17c481061fc62f17c481069fd62f17c481071fe62f17c481079ff62f17c48110762f17c48114f0162f17c4811570262f17c48115f0362d17c481161fc62d17c481169fd62d17c481171fe62d17c481179ffc380fa80723762f17c48100662f17c48104e0162f17c481051fe62f17c481059ff62f17c48110762f17c48114f0162d17c481151fe62d17c481159ffc380fa407229c5fe6f06c5fe6f4e20c5fe6f51c0c5fe6f59e0c5fe7f07c5fe7f4f20c4c17e7f51c0c4c17e7f59e0c380fa207214c5fe6f06c5fe6f49e0c5fe7f07c4c17e7f49e0c3c5fa6f06c5fa6f49f0c5fa7f07c4c17a7f49f0c380fa08720f488b36488b49f8488937498949f8c380fa04720c8b368b49fc8937418949fcc380fa027210668b36668b49fe66893766418949fec380fa0172048a0e880fc34c8b05045829004c39c20f83180400004881fa000400000f87420100000f18160f1856400f1896800000000f1896c00000000f1896000100000f1896400100000f1896800100000f1896c00100000f189100feffff0f189140feffff0f189180feffff0f1891c0feffff0f189100ffffff0f189140ffffff0f1851800f1851c062f17c48100662f17c48104e0162f17c4810560262f17c48105e0362f17c4810660462f17c48106e0562f17c4810760662f17c48107e0762717c481041f862717c481049f962717c481051fa62717c481059fb62717c481061fc62717c481069fd62717c481071fe62717c481079ff62f17c48110762f17c48114f0162f17c4811570262f17c48115f0362f17c4811670462f17c48116f0562f17c4811770662f17c48117f0762517c481141f862517c481149f962517c481151fa62517c481159fb62517c481161fc62517c481169fd62517c481171fe62517c481179ffc34839f70f875e0100004981e90002000062717c481041f862717c481049f962717c481051fa62717c481059fb62717c481061fc62717c481069fd62717c481071fe62717c481079ff0f18160f1856400f1896800000000f1896c00000000f1896000100000f1896400100000f1896800100000f1896c001000062f17c48100662f17c48104e0162f17c4810560262f17c48105e0362f17c4810660462f17c48106e0562f17c4810760662f17c48107e074881c6000200000f18160f1856400f1896800000000f1896c00000000f1896000100000f1896400100000f1896800100000f1896c001000062f17c48110762f17c48114f0162f17c4811570262f17c48115f0362f17c4811670462f17c48116f0562f17c4811770662f17c48117f074881c7000200004c39cf0f824affffff62517c48110162517c4811490162517c4811510262517c4811590362517c4811610462517c4811690562517c4811710662517c48117907c34881c70002000062717c4810460762717c48104e0662717c4810560562717c48105e0462717c4810660362717c48106e0262717c4810760162717c48103e0f1851c00f1851800f189140ffffff0f189100ffffff0f1891c0feffff0f189180feffff0f189140feffff0f189100feffff62f17c481041ff62f17c481049fe62f17c481051fd62f17c481059fc62f17c481061fb62f17c481069fa62f17c481071f962f17c481079f84881e9000200000f1851c00f1851800f189140ffffff0f189100ffffff0f1891c0feffff0f189180feffff0f189140feffff0f189100feffff62d17c481141ff62d17c481149fe62d17c481151fd62d17c481159fc62d17c481161fb62d17c481169fa62d17c481171f962d17c481179f84981e9000200004939f90f8747ffffff62717c481147ff62717c48114ffe62717c481157fd62717c48115ffc62717c481167fb62717c48116ffa62717c481177f962717c48117ff8c34839f70f87c900000062f17c48102662f17c48106e014989f84883e7804881c7800000004929f84c29c64c01c20f1896000200000f1896400200000f1896800200000f1896c00200000f1896000300000f1896400300000f1896800300000f1896c003000062f1fe486f0662f1fe486f4e0162f1fe486f560262f1fe486f5e0362f17d48e70762f17d48e74f0162f17d48e7570262f17d48e75f034881ea000100004881c6000100004881c7000100004881fa000100000f8770ffffff0faef862f17c48112062f17c48116801e9a9f9ffff62f17c481061fe62f17c481069ff4d89c84983e1804d29c84c29c14c29c24d01c80f189100fcffff0f189140fcffff0f189180fcffff0f1891c0fcffff0f189100fdffff0f189140fdffff0f189180fdffff0f1891c0fdffff62f1fe486f41fc62f1fe486f49fd62f1fe486f51fe62f1fe486f59ff62d17d48e741fc62d17d48e749fd62d17d48e751fe62d17d48e759ff4881ea000100004881e9000100004981e9000100004881fa000100000f876effffff0faef862d17c481160fe62d17c481168ffe9e0f8ffff0f1f84000000000048c7c0b8ffffff64488b100f1f440000488b02f78078020000010000000f85bd86000089f189f84883e13f4883e03f660f6f2d49d40600660f6f3551d40600660f6f3d59d4060083f9300f879000000083f8300f8787000000660f120f660f1216660f164f08660f16560866440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660fefc0660f74c1660f74ca660ff8c8660fd7d181eaffff00000f853f2000004883c6104883c7100f1f80000000004883e6f04883e7f0baffff00004531c083e10f83e00f39c1742677074189d0914887f74c8d480f4929c94c8d152fdd06004f630c8a4f8d140a41ffe20f1f4000660f6f0e660fefc0660f74c1660f6f1766440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74ca660ff8c866440fd7c9d3ea41d3e94429ca0f85641f000048c7c11000000049c7c110000000660fefc00f1f00662e0f1f840000000000660f6f0c0e660f6f140f66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85d41e00004883c110660f6f0c0e660f6f140f66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85641e00004883c110e91bffffff90662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0f66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df1d0000660f6f1f660fefc048c7c11000000041b9010000004c8d57014981e2ff0f00004981ea001000000f1f004983c2100f8f16010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30166440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85301d00004883c110660f6fdc4983c2100f8f8e000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30166440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a81c00004883c110660f6fdce9ebfeffff90662e0f1f840000000000660f74c3660fd7d0f7c2feff00007510660fefc04981ea00100000e9cafeffff660f6f0c0e660f73d801660f73db01e9fc1b00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0e66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df1b0000660f6f1f660fefc048c7c11000000041b9020000004c8d57024981e2ff0f00004981ea001000000f1f004983c2100f8f16010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30266440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85301b00004883c110660f6fdc4983c2100f8f8e000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30266440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a81a00004883c110660f6fdce9ebfeffff90662e0f1f840000000000660f74c3660fd7d0f7c2fcff00007510660fefc04981ea00100000e9cafeffff660f6f0c0e660f73d802660f73db02e9fc1900006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0d66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df190000660f6f1f660fefc048c7c11000000041b9030000004c8d57034981e2ff0f00004981ea001000000f1f004983c2100f8f16010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85301900004883c110660f6fdc4983c2100f8f8e000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a81800004883c110660f6fdce9ebfeffff90662e0f1f840000000000660f74c3660fd7d0f7c2f8ff00007510660fefc04981ea00100000e9cafeffff660f6f0c0e660f73d803660f73db03e9fc1700006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0c66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df170000660f6f1f660fefc048c7c11000000041b9040000004c8d57044981e2ff0f00004981ea001000000f1f004983c2100f8f16010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30466440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85301700004883c110660f6fdc4983c2100f8f8e000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30466440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a81600004883c110660f6fdce9ebfeffff90662e0f1f840000000000660f74c3660fd7d0f7c2f0ff00007510660fefc04981ea00100000e9cafeffff660f6f0c0e660f73d804660f73db04e9fc1500006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0b66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df150000660f6f1f660fefc048c7c11000000041b9050000004c8d57054981e2ff0f00004981ea001000000f1f004983c2100f8f16010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30566440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85301500004883c110660f6fdc4983c2100f8f8e000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30566440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a81400004883c110660f6fdce9ebfeffff90662e0f1f840000000000660f74c3660fd7d0f7c2e0ff00007510660fefc04981ea00100000e9cafeffff660f6f0c0e660f73d805660f73db05e9fc1300006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0a66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df130000660f6f1f660fefc048c7c11000000041b9060000004c8d57064981e2ff0f00004981ea001000000f1f004983c2100f8f16010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30666440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85301300004883c110660f6fdc4983c2100f8f8e000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30666440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a81200004883c110660f6fdce9ebfeffff90662e0f1f840000000000660f74c3660fd7d0f7c2c0ff00007510660fefc04981ea00100000e9cafeffff660f6f0c0e660f73d806660f73db06e9fc1100006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0966440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df110000660f6f1f660fefc048c7c11000000041b9070000004c8d57074981e2ff0f00004981ea001000000f1f004983c2100f8f16010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30766440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85301100004883c110660f6fdc4983c2100f8f8e000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30766440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a81000004883c110660f6fdce9ebfeffff90662e0f1f840000000000660f74c3660fd7d0f7c280ff00007510660fefc04981ea00100000e9cafeffff660f6f0c0e660f73d807660f73db07e9fc0f00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0866440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df0f0000660f6f1f660fefc048c7c11000000041b9080000004c8d57084981e2ff0f00004981ea001000000f1f004983c2100f8f16010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30866440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85300f00004883c110660f6fdc4983c2100f8f8e000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30866440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a80e00004883c110660f6fdce9ebfeffff90662e0f1f840000000000660f74c3660fd7d0f7c200ff00007510660fefc04981ea00100000e9cafeffff660f6f0c0e660f73d808660f73db08e9fc0d00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0766440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df0d0000660f6f1f660fefc048c7c11000000041b9090000004c8d57094981e2ff0f00004981ea001000000f1f004983c2100f8f16010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30966440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85300d00004883c110660f6fdc4983c2100f8f8e000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30966440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a80c00004883c110660f6fdce9ebfeffff90662e0f1f840000000000660f74c3660fd7d0f7c200fe00007510660fefc04981ea00100000e9cafeffff660f6f0c0e660f73d809660f73db09e9fc0b00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0666440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df0b0000660f6f1f660fefc048c7c11000000041b90a0000004c8d570a4981e2ff0f00004981ea001000000f1f004983c2100f8f16010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30a66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85300b00004883c110660f6fdc4983c2100f8f8e000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30a66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a80a00004883c110660f6fdce9ebfeffff90662e0f1f840000000000660f74c3660fd7d0f7c200fc00007510660fefc04981ea00100000e9cafeffff660f6f0c0e660f73d80a660f73db0ae9fc0900006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0566440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df090000660f6f1f660fefc048c7c11000000041b90b0000004c8d570b4981e2ff0f00004981ea001000000f1f004983c2100f8f16010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30b66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85300900004883c110660f6fdc4983c2100f8f8e000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30b66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a80800004883c110660f6fdce9ebfeffff90662e0f1f840000000000660f74c3660fd7d0f7c200f800007510660fefc04981ea00100000e9cafeffff660f6f0c0e660f73d80b660f73db0be9fc0700006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0466440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df070000660f6f1f660fefc048c7c11000000041b90c0000004c8d570c4981e2ff0f00004981ea001000000f1f004983c2100f8f16010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30c66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85300700004883c110660f6fdc4983c2100f8f8e000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30c66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a80600004883c110660f6fdce9ebfeffff90662e0f1f840000000000660f74c3660fd7d0f7c200f000007510660fefc04981ea00100000e9cafeffff660f6f0c0e660f73d80c660f73db0ce9fc0500006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df050000660f6f1f660fefc048c7c11000000041b90d0000004c8d570d4981e2ff0f00004981ea001000000f1f004983c2100f8f16010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30d66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85300500004883c110660f6fdc4983c2100f8f8e000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30d66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a80400004883c110660f6fdce9ebfeffff90662e0f1f840000000000660f74c3660fd7d0f7c200e000007510660fefc04981ea00100000e9cafeffff660f6f0c0e660f73d80d660f73db0de9fc0300006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0266440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df030000660f6f1f660fefc048c7c11000000041b90e0000004c8d570e4981e2ff0f00004981ea001000000f1f004983c2100f8f16010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30e66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85300300004883c110660f6fdc4983c2100f8f8e000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30e66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a80200004883c110660f6fdce9ebfeffff90662e0f1f840000000000660f74c3660fd7d0f7c200c000007510660fefc04981ea00100000e9cafeffff660f6f0c0e660f73d80e660f73db0ee9fc0100006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0166440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df010000660f6f1f660fefc048c7c11000000041b90f0000004c8d570f4981e2ff0f00004981ea001000000f1f004983c2100f8f16010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30f66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85300100004883c110660f6fdc4983c2100f8f8e000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30f66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a80000004883c110660f6fdce9ebfeffff90662e0f1f840000000000660f74c3660fd7d0f7c2008000007510660fefc04981ea00100000e9cafeffff660f6f0c0e660f73db0f660f73d80f9066440f6fc166440f6fce66440f6fd366440f6fde66440f64c566440f64c966440f64d566440f64db66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febda660f74cb660ff8c8660fd7d1f7d26690662e0f1f840000000000498d4409f0488d3c07488d340e4585c0740e4887f790662e0f1f840000000000480fbcd20fb60c160fb60417488d15edf706008b0c8a8b048229c8c331c0c3900fb60e0fb607488d15d3f706008b0c8a8b048229c8c3662e0f1f8400000000004889f14889fa8039000f8491160000807901000f8497160000807902000f849d160000807903000f84a3160000807904000f84a9160000807905000f84af160000807906000f84b5160000807907000f84db150000807908000f84b1160000807909000f84b716000080790a000f84bd16000080790b000f84c316000080790c000f84c916000080790d000f84df16000080790e000f84f516000080790f000f84db150000488d71104883e6f0660fefc04c8b094c890a660f74064c8b49084c894a08660fd7c04829ce4885c00f850d1500004889d0488d52104883e2f04829d04829c14889c84883e00f48c7c6000000000f848e0000004883f80873414883f8010f84f80100004883f8020f842e0300004883f8030f84640400004883f8040f849a0500004883f8050f84d00600004883f8060f8406080000e9510900000f849b0a00004883f8090f84d10b00004883f80a0f84070d00004883f80b0f843d0e00004883f80c0f84730f00004883f80d0f84a91000004883f80e0f84df110000e91a1300000f28090f2851100f290a660f74c2660fd7c0488d76104885c00f853b1400000f285c31100f291432660f74c3660fd7c0488d76104885c00f851d1400000f286431100f291c32660f74c4660fd7c0488d76104885c00f85ff1300000f284c31100f292432660f74c1660fd7c0488d76104885c00f85e11300000f285431100f290c32660f74c2660fd7c0488d76104885c00f85c31300000f285c31100f291432660f74c3660fd7c0488d76104885c00f85a51300000f291c324889c8488d4c31104883e1c04829c84829c248c7c6c0ffffff0f1f8400000000000f28110f28e20f2869100f2859200f28f30f287930660fdad5660fdadf660fdada660f74d8660fd7c3488d5240488d49404885c075120f2962c00f296ad00f2972e00f297af0ebb8660f74c4660fd7c04885c00f8527130000660f74c5660fd7c00f2962c04885c0488d76100f850e130000660f74c6660fd7c00f296ad04885c0488d76100f85f51200000f2972e0660f74c7660fd7c0488d7610e9e01200000f2849ff0f28510f660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1010f29120f28511f660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3010f29120f28511f660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1010f29120f28511f660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3010f2912488d491f488d52104889c84883e1c04829c8488d49f14829c20f2849ff660f1f4400000f28510f0f28591f0f28f30f28612f0f28fc0f28693f660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec014885c0660f3a0fe3010f8506ffffff660f3a0fda01488d4940660f3a0fd1010f28cf0f296a300f2962200f295a100f2912488d5240eb96f30f6f49ff48c7c60f000000f30f7f4affe9a01100000f2849fe0f28510e660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1020f29120f28511e660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3020f29120f28511e660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1020f29120f28511e660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3020f2912488d491e488d52104889c84883e1c04829c8488d49f24829c20f2849fe660f1f4400000f28510e0f28591e0f28f30f28612e0f28fc0f28693e660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec024885c0660f3a0fe3020f8506ffffff660f3a0fda02488d4940660f3a0fd1020f28cf0f296a300f2962200f295a100f2912488d5240eb96f30f6f49fe48c7c60e000000f30f7f4afee9601000000f2849fd0f28510d660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1030f29120f28511d660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3030f29120f28511d660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1030f29120f28511d660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3030f2912488d491d488d52104889c84883e1c04829c8488d49f34829c20f2849fd660f1f4400000f28510d0f28591d0f28f30f28612d0f28fc0f28693d660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec034885c0660f3a0fe3030f8506ffffff660f3a0fda03488d4940660f3a0fd1030f28cf0f296a300f2962200f295a100f2912488d5240eb96f30f6f49fd48c7c60d000000f30f7f4afde9200f00000f2849fc0f28510c660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1040f29120f28511c660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3040f29120f28511c660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1040f29120f28511c660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3040f2912488d491c488d52104889c84883e1c04829c8488d49f44829c20f2849fc660f1f4400000f28510c0f28591c0f28f30f28612c0f28fc0f28693c660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec044885c0660f3a0fe3040f8506ffffff660f3a0fda04488d4940660f3a0fd1040f28cf0f296a300f2962200f295a100f2912488d5240eb96f30f6f49fc48c7c60c000000f30f7f4afce9e00d00000f2849fb0f28510b660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1050f29120f28511b660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3050f29120f28511b660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1050f29120f28511b660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3050f2912488d491b488d52104889c84883e1c04829c8488d49f54829c20f2849fb660f1f4400000f28510b0f28591b0f28f30f28612b0f28fc0f28693b660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec054885c0660f3a0fe3050f8506ffffff660f3a0fda05488d4940660f3a0fd1050f28cf0f296a300f2962200f295a100f2912488d5240eb96f30f6f49fb48c7c60b000000f30f7f4afbe9a00c00000f2849fa0f28510a660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1060f29120f28511a660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3060f29120f28511a660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1060f29120f28511a660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3060f2912488d491a488d52104889c84883e1c04829c8488d49f64829c20f2849fa660f1f4400000f28510a0f28591a0f28f30f28612a0f28fc0f28693a660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec064885c0660f3a0fe3060f8506ffffff660f3a0fda06488d4940660f3a0fd1060f28cf0f296a300f2962200f295a100f2912488d5240eb964c8b098b71064c890a89720648c7c60a000000e95e0b00000f1f4000662e0f1f8400000000000f2849f90f285109660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1070f29120f285119660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3070f29120f285119660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1070f29120f285119660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3070f2912488d4919488d52104889c84883e1c04829c8488d49f74829c20f2849f9660f1f4400000f2851090f2859190f28f30f2861290f28fc0f286939660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec074885c0660f3a0fe3070f8506ffffff660f3a0fda07488d4940660f3a0fd1070f28cf0f296a300f2962200f295a100f2912488d5240eb964c8b098b71054c890a89720548c7c609000000e90e0a00000f1f4000662e0f1f8400000000000f2849f80f285108660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1080f29120f285118660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3080f29120f285118660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1080f29120f285118660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3080f2912488d4918488d52104889c84883e1c04829c8488d49f84829c20f2849f8660f1f4400000f2851080f2859180f28f30f2861280f28fc0f286938660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec084885c0660f3a0fe3080f8506ffffff660f3a0fda08488d4940660f3a0fd1080f28cf0f296a300f2962200f295a100f2912488d5240eb964c8b0948c7c6080000004c890ae9c40800000f1f40000f2849f70f285107660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1090f29120f285117660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3090f29120f285117660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1090f29120f285117660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3090f2912488d4917488d52104889c84883e1c04829c8488d49f94829c20f2849f7660f1f4400000f2851070f2859170f28f30f2861270f28fc0f286937660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec094885c0660f3a0fe3090f8506ffffff660f3a0fda09488d4940660f3a0fd1090f28cf0f296a300f2962200f295a100f2912488d5240eb964c8b49ff48c7c6070000004c894affe98207000066900f2849f60f285106660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd10a0f29120f285116660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd30a0f29120f285116660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd10a0f29120f285116660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd30a0f2912488d4916488d52104889c84883e1c04829c8488d49fa4829c20f2849f6660f1f4400000f2851060f2859160f28f30f2861260f28fc0f286936660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec0a4885c0660f3a0fe30a0f8506ffffff660f3a0fda0a488d4940660f3a0fd10a0f28cf0f296a300f2962200f295a100f2912488d5240eb964c8b49fe48c7c6060000004c894afee94206000066900f2849f50f285105660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd10b0f29120f285115660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd30b0f29120f285115660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd10b0f29120f285115660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd30b0f2912488d4915488d52104889c84883e1c04829c8488d49fb4829c20f2849f5660f1f4400000f2851050f2859150f28f30f2861250f28fc0f286935660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec0b4885c0660f3a0fe30b0f8506ffffff660f3a0fda0b488d4940660f3a0fd10b0f28cf0f296a300f2962200f295a100f2912488d5240eb964c8b49fd48c7c6050000004c894afde90205000066900f2849f40f285104660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd10c0f29120f285114660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd30c0f29120f285114660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd10c0f29120f285114660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd30c0f2912488d4914488d52104889c84883e1c04829c8488d49fc4829c20f2849f4660f1f4400000f2851040f2859140f28f30f2861240f28fc0f286934660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec0c4885c0660f3a0fe30c0f8506ffffff660f3a0fda0c488d4940660f3a0fd10c0f28cf0f296a300f2962200f295a100f2912488d5240eb96448b0948c7c60400000044890ae9c40300000f1f40000f2849f30f285103660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd10d0f29120f285113660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd30d0f29120f285113660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd10d0f29120f285113660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd30d0f2912488d4913488d52104889c84883e1c04829c8488d49fd4829c20f2849f3660f1f4400000f2851030f2859130f28f30f2861230f28fc0f286933660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec0d4885c0660f3a0fe30d0f8506ffffff660f3a0fda0d488d4940660f3a0fd10d0f28cf0f296a300f2962200f295a100f2912488d5240eb96448b49ff48c7c60300000044894affe98202000066900f2849f20f285102660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd10e0f29120f285112660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd30e0f29120f285112660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd10e0f29120f285112660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd30e0f2912488d4912488d52104889c84883e1c04829c8488d49fe4829c20f2849f2660f1f4400000f2851020f2859120f28f30f2861220f28fc0f286932660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec0e4885c0660f3a0fe30e0f8506ffffff660f3a0fda0e488d4940660f3a0fd10e0f28cf0f296a300f2962200f295a100f2912488d5240eb96448b49fe48c7c60200000044894afee94201000066900f2849f10f285101660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd10f0f29120f285111660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd30f0f29120f285111660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd10f0f29120f285111660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd30f0f2912488d4911488d52104889c84883e1c04829c8488d49ff4829c20f2849f1660f1f4400000f2851010f2859110f28f30f2861210f28fc0f286931660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec0f4885c0660f3a0fe30f0f8506ffffff660f3a0fda0f488d4940660f3a0fd10f0f28cf0f296a300f2962200f295a100f2912488d5240eb96448b49fd48c7c60100000044894afd0f1f80000000004801f24801f184c07456a8010f85ae000000a8020f85b6000000a8040f85be000000a8080f85c6000000a8100f85ce000000a8200f85d6000000a8400f85de0000000f1f4000662e0f1f840000000000488b014889024889f8c3660f1f440000f6c4010f85c7000000f6c4020f85ce000000f6c4040f85d5000000f6c4080f85dc000000f6c4100f85e3000000f6c4200f85fa000000f6c4400f851101000090488b01488902488b4108488942084889f8c30f1f4000662e0f1f8400000000008a0188024889f8c30f1f840000000000668b016689024889f8c3660f1f440000668b016689028a41028842024889f8c38b0189024889f8c30f1f8400000000008b0189028a41048842044889f8c366908b018902668b4104668942044889f8c38b0189028b41038942034889f8c36690488b014889028b41058942054889f8c3488b014889028b41068942064889f8c3488b014889028b41078942074889f8c3488b014889028b41088942084889f8c3488b01488902488b4105488942054889f8c30f1f4000662e0f1f840000000000488b01488902488b4106488942064889f8c30f1f4000662e0f1f840000000000488b01488902488b4107488942074889f8c3662e0f1f8400000000000f1f40004889f14889fa8039000f8491160000807901000f8497160000807902000f849d160000807903000f84b3160000807904000f84b9160000807905000f84bf160000807906000f84d5160000807907000f84db150000807908000f84d1160000807909000f84e716000080790a000f84fd16000080790b000f841317000080790c000f842917000080790d000f843f17000080790e000f845517000080790f000f84db150000488d71104883e6f0660fefc04c8b094c890a660f74064c8b49084c894a08660fd7c04829ce4885c00f850d1500004889d0488d52104883e2f04829d04829c14889c84883e00f48c7c6000000000f848e0000004883f80873414883f8010f84f80100004883f8020f842e0300004883f8030f84640400004883f8040f849a0500004883f8050f84d00600004883f8060f8406080000e9510900000f849b0a00004883f8090f84d10b00004883f80a0f84070d00004883f80b0f843d0e00004883f80c0f84730f00004883f80d0f84a91000004883f80e0f84df110000e91a1300000f28090f2851100f290a660f74c2660fd7c0488d76104885c00f853b1400000f285c31100f291432660f74c3660fd7c0488d76104885c00f851d1400000f286431100f291c32660f74c4660fd7c0488d76104885c00f85ff1300000f284c31100f292432660f74c1660fd7c0488d76104885c00f85e11300000f285431100f290c32660f74c2660fd7c0488d76104885c00f85c31300000f285c31100f291432660f74c3660fd7c0488d76104885c00f85a51300000f291c324889c8488d4c31104883e1c04829c84829c248c7c6c0ffffff0f1f8400000000000f28110f28e20f2869100f2859200f28f30f287930660fdad5660fdadf660fdada660f74d8660fd7c3488d5240488d49404885c075120f2962c00f296ad00f2972e00f297af0ebb8660f74c4660fd7c04885c00f8527130000660f74c5660fd7c00f2962c04885c0488d76100f850e130000660f74c6660fd7c00f296ad04885c0488d76100f85f51200000f2972e0660f74c7660fd7c0488d7610e9e01200000f2849ff0f28510f660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1010f29120f28511f660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3010f29120f28511f660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1010f29120f28511f660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3010f2912488d491f488d52104889c84883e1c04829c8488d49f14829c20f2849ff660f1f4400000f28510f0f28591f0f28f30f28612f0f28fc0f28693f660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec014885c0660f3a0fe3010f8506ffffff660f3a0fda01488d4940660f3a0fd1010f28cf0f296a300f2962200f295a100f2912488d5240eb96f30f6f49ff48c7c60f000000f30f7f4affe9a01100000f2849fe0f28510e660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1020f29120f28511e660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3020f29120f28511e660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1020f29120f28511e660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3020f2912488d491e488d52104889c84883e1c04829c8488d49f24829c20f2849fe660f1f4400000f28510e0f28591e0f28f30f28612e0f28fc0f28693e660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec024885c0660f3a0fe3020f8506ffffff660f3a0fda02488d4940660f3a0fd1020f28cf0f296a300f2962200f295a100f2912488d5240eb96f30f6f49fe48c7c60e000000f30f7f4afee9601000000f2849fd0f28510d660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1030f29120f28511d660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3030f29120f28511d660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1030f29120f28511d660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3030f2912488d491d488d52104889c84883e1c04829c8488d49f34829c20f2849fd660f1f4400000f28510d0f28591d0f28f30f28612d0f28fc0f28693d660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec034885c0660f3a0fe3030f8506ffffff660f3a0fda03488d4940660f3a0fd1030f28cf0f296a300f2962200f295a100f2912488d5240eb96f30f6f49fd48c7c60d000000f30f7f4afde9200f00000f2849fc0f28510c660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1040f29120f28511c660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3040f29120f28511c660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1040f29120f28511c660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3040f2912488d491c488d52104889c84883e1c04829c8488d49f44829c20f2849fc660f1f4400000f28510c0f28591c0f28f30f28612c0f28fc0f28693c660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec044885c0660f3a0fe3040f8506ffffff660f3a0fda04488d4940660f3a0fd1040f28cf0f296a300f2962200f295a100f2912488d5240eb96f30f6f49fc48c7c60c000000f30f7f4afce9e00d00000f2849fb0f28510b660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1050f29120f28511b660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3050f29120f28511b660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1050f29120f28511b660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3050f2912488d491b488d52104889c84883e1c04829c8488d49f54829c20f2849fb660f1f4400000f28510b0f28591b0f28f30f28612b0f28fc0f28693b660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec054885c0660f3a0fe3050f8506ffffff660f3a0fda05488d4940660f3a0fd1050f28cf0f296a300f2962200f295a100f2912488d5240eb96f30f6f49fb48c7c60b000000f30f7f4afbe9a00c00000f2849fa0f28510a660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1060f29120f28511a660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3060f29120f28511a660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1060f29120f28511a660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3060f2912488d491a488d52104889c84883e1c04829c8488d49f64829c20f2849fa660f1f4400000f28510a0f28591a0f28f30f28612a0f28fc0f28693a660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec064885c0660f3a0fe3060f8506ffffff660f3a0fda06488d4940660f3a0fd1060f28cf0f296a300f2962200f295a100f2912488d5240eb964c8b098b71064c890a89720648c7c60a000000e95e0b00000f1f4000662e0f1f8400000000000f2849f90f285109660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1070f29120f285119660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3070f29120f285119660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1070f29120f285119660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3070f2912488d4919488d52104889c84883e1c04829c8488d49f74829c20f2849f9660f1f4400000f2851090f2859190f28f30f2861290f28fc0f286939660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec074885c0660f3a0fe3070f8506ffffff660f3a0fda07488d4940660f3a0fd1070f28cf0f296a300f2962200f295a100f2912488d5240eb964c8b098b71054c890a89720548c7c609000000e90e0a00000f1f4000662e0f1f8400000000000f2849f80f285108660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1080f29120f285118660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3080f29120f285118660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1080f29120f285118660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3080f2912488d4918488d52104889c84883e1c04829c8488d49f84829c20f2849f8660f1f4400000f2851080f2859180f28f30f2861280f28fc0f286938660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec084885c0660f3a0fe3080f8506ffffff660f3a0fda08488d4940660f3a0fd1080f28cf0f296a300f2962200f295a100f2912488d5240eb964c8b0948c7c6080000004c890ae9c40800000f1f40000f2849f70f285107660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd1090f29120f285117660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd3090f29120f285117660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd1090f29120f285117660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd3090f2912488d4917488d52104889c84883e1c04829c8488d49f94829c20f2849f7660f1f4400000f2851070f2859170f28f30f2861270f28fc0f286937660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec094885c0660f3a0fe3090f8506ffffff660f3a0fda09488d4940660f3a0fd1090f28cf0f296a300f2962200f295a100f2912488d5240eb964c8b49ff48c7c6070000004c894affe98207000066900f2849f60f285106660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd10a0f29120f285116660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd30a0f29120f285116660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd10a0f29120f285116660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd30a0f2912488d4916488d52104889c84883e1c04829c8488d49fa4829c20f2849f6660f1f4400000f2851060f2859160f28f30f2861260f28fc0f286936660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec0a4885c0660f3a0fe30a0f8506ffffff660f3a0fda0a488d4940660f3a0fd10a0f28cf0f296a300f2962200f295a100f2912488d5240eb964c8b49fe48c7c6060000004c894afee94206000066900f2849f50f285105660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd10b0f29120f285115660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd30b0f29120f285115660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd10b0f29120f285115660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd30b0f2912488d4915488d52104889c84883e1c04829c8488d49fb4829c20f2849f5660f1f4400000f2851050f2859150f28f30f2861250f28fc0f286935660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec0b4885c0660f3a0fe30b0f8506ffffff660f3a0fda0b488d4940660f3a0fd10b0f28cf0f296a300f2962200f295a100f2912488d5240eb964c8b49fd48c7c6050000004c894afde90205000066900f2849f40f285104660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd10c0f29120f285114660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd30c0f29120f285114660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd10c0f29120f285114660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd30c0f2912488d4914488d52104889c84883e1c04829c8488d49fc4829c20f2849f4660f1f4400000f2851040f2859140f28f30f2861240f28fc0f286934660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec0c4885c0660f3a0fe30c0f8506ffffff660f3a0fda0c488d4940660f3a0fd10c0f28cf0f296a300f2962200f295a100f2912488d5240eb96448b0948c7c60400000044890ae9c40300000f1f40000f2849f30f285103660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd10d0f29120f285113660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd30d0f29120f285113660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd10d0f29120f285113660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd30d0f2912488d4913488d52104889c84883e1c04829c8488d49fd4829c20f2849f3660f1f4400000f2851030f2859130f28f30f2861230f28fc0f286933660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec0d4885c0660f3a0fe30d0f8506ffffff660f3a0fda0d488d4940660f3a0fd10d0f28cf0f296a300f2962200f295a100f2912488d5240eb96448b49ff48c7c60300000044894affe98202000066900f2849f20f285102660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd10e0f29120f285112660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd30e0f29120f285112660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd10e0f29120f285112660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd30e0f2912488d4912488d52104889c84883e1c04829c8488d49fe4829c20f2849f2660f1f4400000f2851020f2859120f28f30f2861220f28fc0f286932660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec0e4885c0660f3a0fe30e0f8506ffffff660f3a0fda0e488d4940660f3a0fd10e0f28cf0f296a300f2962200f295a100f2912488d5240eb96448b49fe48c7c60200000044894afee94201000066900f2849f10f285101660f74c2660fd7c00f28da4885c00f850e010000660f3a0fd10f0f29120f285111660f74c2488d5210660fd7c0488d49100f28ca4885c00f85e5000000660f3a0fd30f0f29120f285111660f74c2488d5210660fd7c0488d49100f28da4885c00f85bc000000660f3a0fd10f0f29120f285111660f74c2488d5210660fd7c0488d49104885c00f8596000000660f3a0fd30f0f2912488d4911488d52104889c84883e1c04829c8488d49ff4829c20f2849f1660f1f4400000f2851010f2859110f28f30f2861210f28fc0f286931660fdaf2660fdafd660fdafe660f74f8660fd7c70f28fd660f3a0fec0f4885c0660f3a0fe30f0f8506ffffff660f3a0fda0f488d4940660f3a0fd10f0f28cf0f296a300f2962200f295a100f2912488d5240eb96448b49fd48c7c60100000044894afd0f1f80000000004801f24801f184c07456a8010f85ae000000a8020f85b6000000a8040f85be000000a8080f85d6000000a8100f85de000000a8200f85e6000000a8400f85fe0000000f1f4000662e0f1f840000000000488b01488902488d4207c30f1f440000f6c4010f85e7000000f6c4020f85fe000000f6c4040f8515010000f6c4080f852c010000f6c4100f8543010000f6c4200f855a010000f6c4400f857101000090488b01488902488b410848894208488d420fc30f1f00662e0f1f8400000000008a018802488d02c30f1f840000000000668b01668902488d4201c30f1f440000668b016689028a4102884202488d4202c30f1f440000662e0f1f8400000000008b018902488d4203c30f1f80000000008b0189028a4104884204488d4204c3908b018902668b410466894204488d4205c30f1f440000662e0f1f8400000000008b0189028b4103894203488d4206c390488b014889028b4105894205488d4208c30f1f440000662e0f1f840000000000488b014889028b4106894206488d4209c30f1f440000662e0f1f840000000000488b014889028b4107894207488d420ac30f1f440000662e0f1f840000000000488b014889028b4108894208488d420bc30f1f440000662e0f1f840000000000488b01488902488b410548894205488d420cc30f1f00662e0f1f840000000000488b01488902488b410648894206488d420dc30f1f00662e0f1f840000000000488b01488902488b410748894207488d420ec3662e0f1f8400000000000f1f004889f14889f84883e13f4883f9200f860f0200004883e6f04883e10f660fefc0660fefc9660f740e660fd7d148d3ea4885d20f8548020000660f744610660fd7d04885d20f8576020000f30f6f0c0ef30f7f0f0f1f00662e0f1f8400000000004829cf48c7c110000000660f6f0c0e0f28540e10f30f7f0c0f660f74c2660fd7d04883c1104885d20f85d20100000f285c0e10f30f7f140f660f74c3660fd7d04883c1104885d20f85b30100000f28640e10f30f7f1c0f660f74c4660fd7d04883c1104885d20f85940100000f284c0e10f30f7f240f660f74c1660fd7d04883c1104885d20f85750100000f28540e10f30f7f0c0f660f74c2660fd7d04883c1104885d20f85560100000f285c0e10f30f7f140f660f74c3660fd7d04883c1104885d20f8537010000f30f7f1c0f4889f2488d740e104883e6c04829f24829d70f28160f28e20f286e100f285e200f28f30f287e30660fdad5660fdadf660fdada660f74d8660fd7d34885d2754b4883c7404883c640f30f7f67c00f2816660f6fe2f30f7f6fd00f286e10660fdad50f285e20f30f7f77e00f28f3f30f7f7ff00f287e30660fdadf660fdada660f74d8660fd7d34885d274b5660fefc9660f74c4660f74cd660fd7d0660fd7c94885d20f850a0100004885c90f8521010000660f74c6660f74cf660fd7d0660fd7c94885d20f8538010000480fbcd1f30f7f27f30f7f6f10f30f7f77204883c6304883c7304c8d1d578b060049630c93498d0c0bffe1660fefc0f30f6f0ef30f6f5610660f74c1660fd7d04885d2756b660f74c2f30f7f0f660fd7d04885d275524883e6f04883e10fe905feffff0f1f4400004801cf4801ce480fbcd24c8d1dff8a060049630c93498d0c0bffe10f1f4400004801ce480fbcd24c8d1de28a060049630c93498d0c0bffe10f1f8400000000004883c6104883c710480fbcd24c8d1dbd8a060049630c93498d0c0bffe10f1f00480fbcd24801ce4883c2104829ca4c8d1d9b8a060049630c93498d0c0bffe190480fbcd24c8d1d858a060049630c93498d0c0bffe190662e0f1f840000000000480fbcd1f30f7f274883c6104883c7104c8d1d598a060049630c93498d0c0bffe10f1f440000662e0f1f840000000000480fbcd2f30f7f27f30f7f6f104883c6204883c7204c8d1d248a060049630c93498d0c0bffe1662e0f1f8400000000008837c30f1f00662e0f1f840000000000668b16668917c3660f1f840000000000668b0e66890f887702c3660f1f4400008b168917c390662e0f1f8400000000008b0e887704890fc30f1f8400000000008b0e668b5604890f66895704c30f1f008b0e8b5603890f895703c30f1f440000488b16488917c3660f1f840000000000488b0e88770848890fc3660f1f440000488b0e668b560848890f66895708c390488b0e8b560748890f895707c30f1f00488b0e8b560848890f895708c30f1f00488b0e488b560548890f48895705c390488b0e488b560648890f48895706c390488b0e488b560748890f48895707c390f30f6f06f30f7f07c30f1f8000000000f30f6f06f30f7f07887710c30f1f4000f30f6f06668b4e10f30f7f0766894f10c30f1f440000662e0f1f840000000000f30f6f068b4e0ff30f7f07894f0fc390f30f6f068b4e10f30f7f07894f10c390f30f6f068b4e10f30f7f07894f10887714c30f1f4000662e0f1f840000000000f30f6f06488b4e0ef30f7f0748894f0ec30f1f440000662e0f1f840000000000f30f6f06488b4e0ff30f7f0748894f0fc30f1f440000662e0f1f840000000000f30f6f06488b4e10f30f7f0748894f10c30f1f440000662e0f1f840000000000f30f6f06488b4e10f30f7f0748894f10887718c36690662e0f1f840000000000f30f6f06488b5610668b4e18f30f7f074889571066894f18c30f1f8000000000f30f6f06488b56108b4e17f30f7f0748895710894f17c3660f1f840000000000f30f6f06488b56108b4e18f30f7f0748895710894f18c3660f1f840000000000f30f6f06f30f6f560df30f7f07f30f7f570dc30f1f00662e0f1f840000000000f30f6f06f30f6f560ef30f7f07f30f7f570ec30f1f00662e0f1f840000000000f30f6f06f30f6f560ff30f7f07f30f7f570fc30f1f00662e0f1f840000000000f30f6f06f30f6f5610f30f7f07f30f7f5710c30f1f00662e0f1f8400000000004889f14883e13f4883f9200f86020200004883e6f04883e10f660fefc0660fefc9660f740e660fd7d148d3ea4885d20f853b020000660f744610660fd7d04885d20f8569020000f30f6f0c0ef30f7f0f4829cf48c7c110000000660f6f0c0e0f28540e10f30f7f0c0f660f74c2660fd7d04883c1104885d20f85d20100000f285c0e10f30f7f140f660f74c3660fd7d04883c1104885d20f85b30100000f28640e10f30f7f1c0f660f74c4660fd7d04883c1104885d20f85940100000f284c0e10f30f7f240f660f74c1660fd7d04883c1104885d20f85750100000f28540e10f30f7f0c0f660f74c2660fd7d04883c1104885d20f85560100000f285c0e10f30f7f140f660f74c3660fd7d04883c1104885d20f8537010000f30f7f1c0f4889f2488d740e104883e6c04829f24829d70f28160f28e20f286e100f285e200f28f30f287e30660fdad5660fdadf660fdada660f74d8660fd7d34885d2754b4883c7404883c640f30f7f67c00f2816660f6fe2f30f7f6fd00f286e10660fdad50f285e20f30f7f77e00f28f3f30f7f7ff00f287e30660fdadf660fdada660f74d8660fd7d34885d274b5660fefc9660f74c4660f74cd660fd7d0660fd7c94885d20f850a0100004885c90f8521010000660f74c6660f74cf660fd7d0660fd7c94885d20f8538010000480fbcd1f30f7f27f30f7f6f10f30f7f77204883c6304883c7304c8d1db785060049630c93498d0c0bffe1660fefc0f30f6f0ef30f6f5610660f74c1660fd7d04885d2756b660f74c2f30f7f0f660fd7d04885d275524883e6f04883e10fe905feffff0f1f4400004801cf4801ce480fbcd24c8d1d5f85060049630c93498d0c0bffe10f1f4400004801ce480fbcd24c8d1d4285060049630c93498d0c0bffe10f1f8400000000004883c6104883c710480fbcd24c8d1d1d85060049630c93498d0c0bffe10f1f00480fbcd24801ce4883c2104829ca4c8d1dfb84060049630c93498d0c0bffe190480fbcd24c8d1de584060049630c93498d0c0bffe190662e0f1f840000000000480fbcd1f30f7f274883c6104883c7104c8d1db984060049630c93498d0c0bffe10f1f440000662e0f1f840000000000480fbcd2f30f7f27f30f7f6f104883c6204883c7204c8d1d8484060049630c93498d0c0bffe1662e0f1f8400000000008837488d07c3662e0f1f840000000000668b16668917488d4701c30f1f440000668b0e66890f887702488d4702c366908b168917488d4703c30f1f80000000008b0e887704890f488d4704c30f1f40008b0e668b5604890f66895704488d4705c30f1f440000662e0f1f8400000000008b0e8b5603890f895703488d4706c390488b16488917488d4707c30f1f440000488b0e88770848890f488d4708c36690488b0e668b560848890f66895708488d4709c30f1f00662e0f1f840000000000488b0e8b560748890f895707488d470ac30f1f440000662e0f1f840000000000488b0e8b560848890f895708488d470bc30f1f440000662e0f1f840000000000488b0e488b560548890f48895705488d470cc30f1f00662e0f1f840000000000488b0e488b560648890f48895706488d470dc30f1f00662e0f1f840000000000488b0e488b560748890f48895707488d470ec30f1f00662e0f1f840000000000f30f6f06f30f7f07488d470fc30f1f00f30f6f06f30f7f07887710488d4710c3f30f6f06668b4e10f30f7f0766894f10488d4711c390662e0f1f840000000000f30f6f068b4e0ff30f7f07894f0f488d4712c30f1f00662e0f1f840000000000f30f6f068b4e10f30f7f07894f10488d4713c30f1f00662e0f1f840000000000f30f6f068b4e10f30f7f07894f10887714488d4714c3662e0f1f840000000000f30f6f06488b4e0ef30f7f0748894f0e488d4715c390662e0f1f840000000000f30f6f06488b4e0ff30f7f0748894f0f488d4716c390662e0f1f840000000000f30f6f06488b4e10f30f7f0748894f10488d4717c390662e0f1f840000000000f30f6f06488b4e10f30f7f0748894f10887718488d4718c30f1f840000000000f30f6f06488b5610668b4e18f30f7f074889571066894f18488d4719c30f1f00f30f6f06488b56108b4e17f30f7f0748895710894f17488d471ac30f1f440000f30f6f06488b56108b4e18f30f7f0748895710894f18488d471bc30f1f440000f30f6f06f30f6f560df30f7f07f30f7f570d488d471cc3660f1f840000000000f30f6f06f30f6f560ef30f7f07f30f7f570e488d471dc3660f1f840000000000f30f6f06f30f6f560ff30f7f07f30f7f570f488d471ec3660f1f840000000000f30f6f06f30f6f5610f30f7f07f30f7f5710488d471fc3660f1f840000000000660f6ece4889f9660f60c94883e7f0660fefd2660f60c983ceff660f6f07660f70c9004829f9660f6fd8488d7f10660f74c1660f74dad3e6660fd7c0660fd7d321f021f285c0753c85d27534660f6f07488d7f10660f6fd8660f74c1660f74da660fd7c0660fd7d309c274e0660fd7d385c075106690662e0f1f8400000000004831c0c3488d7ff085d20f841001000084c0746c88c180e10f753588d580e50f75dea8100f85d6010000f6c21075d1a8200f85d9010000f6c22075c4a8400f85dc010000f6c24075b7488d4707c36690a8010f8568010000f6c20175a3a8020f856b010000f6c2027596a8040f856e010000f6c2047589488d4703c30f1f400084d20f8578ffffff88e180e10f755188f580e50f0f8566fffffff6c4100f85cd010000f6c6100f8554fffffff6c4200f85cb010000f6c6200f8542fffffff6c4400f85c9010000f6c6400f8530ffffff488d470fc390662e0f1f840000000000f6c4010f8547010000f6c6010f850efffffff6c4020f8545010000f6c6020f85fcfefffff6c4040f8543010000f6c6040f85eafeffff488d470bc30f1f44000084c0744ca8010f8594000000a8020f859c000000a8040f85a4000000a8080f85ac000000a8100f85b4000000a8200f85bc000000a8400f85c4000000488d4707c30f1f440000662e0f1f840000000000f6c4010f85b7000000f6c4020f85be000000f6c4040f85c5000000f6c4080f85cc000000f6c4100f85d3000000f6c4200f85da000000f6c4400f85e1000000488d470fc36690662e0f1f840000000000488d07c36690662e0f1f840000000000488d4701c390662e0f1f840000000000488d4702c390662e0f1f840000000000488d4703c390662e0f1f840000000000488d4704c390662e0f1f840000000000488d4705c390662e0f1f840000000000488d4706c390662e0f1f840000000000488d4708c390662e0f1f840000000000488d4709c390662e0f1f840000000000488d470ac390662e0f1f840000000000488d470bc390662e0f1f840000000000488d470cc390662e0f1f840000000000488d470dc390662e0f1f840000000000488d470ec3662e0f1f840000000000904889d14889fa4883f93073144801ce4801cfe9b9120000660f1f840000000000f30f6f1ff30f6f06660f74d8660fd7d3488d7f10488d761081eaffff00000f859811000089fa83e20f4831d74829d64801d189f283e20f0f84930000004831d683fa08734783fa000f848200000083fa010f845901000083fa020f846002000083fa030f846703000083fa040f846e04000083fa050f847505000083fa060f847c060000e9870700000f1f0083fa080f848b08000083fa090f849209000083fa0a0f84990a000083fa0b0f84a00b000083fa0c0f84a70c000083fa0d0f84ae0d000083fa0e0f84b50e0000e9c00f00004883f950488d49d0734631c0660f6f0e660f740f660f6f5610660f745710660fdbd1660fd7d2488d7f20488d762081eaffff00000f85961000004801ce4801cfe99b11000090662e0f1f840000000000660f6f0631c0660f74074883e920660f6f5610660f745710660fdbd04883e920660fd7d2660f6fc8660f6f4620660f6f563081daffff0000660f744720660f745730488d7f20488d762074cc660fdbd04883f9007d06ffc24883c12085d20f851c100000660fd7d2660f6fc8488d7f20488d762081eaffff00000f85001000004801ce4801cfe9051100000f1f4400004883f950488d49d089d07354660f6f4e10660f6fd1660f3a0f0e01660f740f660f6f5e20660f3a0fda01660f745f10660fdbd9660fd7d3488d7f20488d762081eaffff00000f85a50f00004883c6014801ce4801cfe9a6100000660f1f4400004883e920660f6f4610660f3a0f0601660f7407660f6f5e20660f3a0f5e1001660f745f10660fdbd84883e920660fd7d3660f6fc8660f6f5e40660f3a0f5e300181daffff0000660f6f4630660f3a0f462001660f744720488d7620660f745f30488d7f2074be660fdbd84883f9007d06ffc24883c12085d20f85120f0000660fd7d3660f6fc8488d7f20488d762081eaffff00000f85f60e0000488d76014801ce4801cfe9f70f00000f1f80000000004883f950488d49d089d07354660f6f4e10660f6fd1660f3a0f0e02660f740f660f6f5e20660f3a0fda02660f745f10660fdbd9660fd7d3488d7f20488d762081eaffff00000f85950e00004883c6024801ce4801cfe9960f0000660f1f4400004883e920660f6f4610660f3a0f0602660f7407660f6f5e20660f3a0f5e1002660f745f10660fdbd84883e920660fd7d3660f6fc8660f6f5e40660f3a0f5e300281daffff0000660f6f4630660f3a0f462002660f744720488d7620660f745f30488d7f2074be660fdbd84883f9007d06ffc24883c12085d20f85020e0000660fd7d3660f6fc8488d7f20488d762081eaffff00000f85e60d0000488d76024801ce4801cfe9e70e00000f1f80000000004883f950488d49d089d07354660f6f4e10660f6fd1660f3a0f0e03660f740f660f6f5e20660f3a0fda03660f745f10660fdbd9660fd7d3488d7f20488d762081eaffff00000f85850d00004883c6034801ce4801cfe9860e0000660f1f4400004883e920660f6f4610660f3a0f0603660f7407660f6f5e20660f3a0f5e1003660f745f10660fdbd84883e920660fd7d3660f6fc8660f6f5e40660f3a0f5e300381daffff0000660f6f4630660f3a0f462003660f744720488d7620660f745f30488d7f2074be660fdbd84883f9007d06ffc24883c12085d20f85f20c0000660fd7d3660f6fc8488d7f20488d762081eaffff00000f85d60c0000488d76034801ce4801cfe9d70d00000f1f80000000004883f950488d49d089d07354660f6f4e10660f6fd1660f3a0f0e04660f740f660f6f5e20660f3a0fda04660f745f10660fdbd9660fd7d3488d7f20488d762081eaffff00000f85750c00004883c6044801ce4801cfe9760d0000660f1f4400004883e920660f6f4610660f3a0f0604660f7407660f6f5e20660f3a0f5e1004660f745f10660fdbd84883e920660fd7d3660f6fc8660f6f5e40660f3a0f5e300481daffff0000660f6f4630660f3a0f462004660f744720488d7620660f745f30488d7f2074be660fdbd84883f9007d06ffc24883c12085d20f85e20b0000660fd7d3660f6fc8488d7f20488d762081eaffff00000f85c60b0000488d76044801ce4801cfe9c70c00000f1f80000000004883f950488d49d089d07354660f6f4e10660f6fd1660f3a0f0e05660f740f660f6f5e20660f3a0fda05660f745f10660fdbd9660fd7d3488d7f20488d762081eaffff00000f85650b00004883c6054801ce4801cfe9660c0000660f1f4400004883e920660f6f4610660f3a0f0605660f7407660f6f5e20660f3a0f5e1005660f745f10660fdbd84883e920660fd7d3660f6fc8660f6f5e40660f3a0f5e300581daffff0000660f6f4630660f3a0f462005660f744720488d7620660f745f30488d7f2074be660fdbd84883f9007d06ffc24883c12085d20f85d20a0000660fd7d3660f6fc8488d7f20488d762081eaffff00000f85b60a0000488d76054801ce4801cfe9b70b00000f1f80000000004883f950488d49d089d07354660f6f4e10660f6fd1660f3a0f0e06660f740f660f6f5e20660f3a0fda06660f745f10660fdbd9660fd7d3488d7f20488d762081eaffff00000f85550a00004883c6064801ce4801cfe9560b0000660f1f4400004883e920660f6f4610660f3a0f0606660f7407660f6f5e20660f3a0f5e1006660f745f10660fdbd84883e920660fd7d3660f6fc8660f6f5e40660f3a0f5e300681daffff0000660f6f4630660f3a0f462006660f744720488d7620660f745f30488d7f2074be660fdbd84883f9007d06ffc24883c12085d20f85c2090000660fd7d3660f6fc8488d7f20488d762081eaffff00000f85a6090000488d76064801ce4801cfe9a70a00000f1f80000000004883f950488d49d089d07354660f6f4e10660f6fd1660f3a0f0e07660f740f660f6f5e20660f3a0fda07660f745f10660fdbd9660fd7d3488d7f20488d762081eaffff00000f85450900004883c6074801ce4801cfe9460a0000660f1f4400004883e920660f6f4610660f3a0f0607660f7407660f6f5e20660f3a0f5e1007660f745f10660fdbd84883e920660fd7d3660f6fc8660f6f5e40660f3a0f5e300781daffff0000660f6f4630660f3a0f462007660f744720488d7620660f745f30488d7f2074be660fdbd84883f9007d06ffc24883c12085d20f85b2080000660fd7d3660f6fc8488d7f20488d762081eaffff00000f8596080000488d76074801ce4801cfe9970900000f1f80000000004883f950488d49d089d07354660f6f4e10660f6fd1660f3a0f0e08660f740f660f6f5e20660f3a0fda08660f745f10660fdbd9660fd7d3488d7f20488d762081eaffff00000f85350800004883c6084801ce4801cfe936090000660f1f4400004883e920660f6f4610660f3a0f0608660f7407660f6f5e20660f3a0f5e1008660f745f10660fdbd84883e920660fd7d3660f6fc8660f6f5e40660f3a0f5e300881daffff0000660f6f4630660f3a0f462008660f744720488d7620660f745f30488d7f2074be660fdbd84883f9007d06ffc24883c12085d20f85a2070000660fd7d3660f6fc8488d7f20488d762081eaffff00000f8586070000488d76084801ce4801cfe9870800000f1f80000000004883f950488d49d089d07354660f6f4e10660f6fd1660f3a0f0e09660f740f660f6f5e20660f3a0fda09660f745f10660fdbd9660fd7d3488d7f20488d762081eaffff00000f85250700004883c6094801ce4801cfe926080000660f1f4400004883e920660f6f4610660f3a0f0609660f7407660f6f5e20660f3a0f5e1009660f745f10660fdbd84883e920660fd7d3660f6fc8660f6f5e40660f3a0f5e300981daffff0000660f6f4630660f3a0f462009660f744720488d7620660f745f30488d7f2074be660fdbd84883f9007d06ffc24883c12085d20f8592060000660fd7d3660f6fc8488d7f20488d762081eaffff00000f8576060000488d76094801ce4801cfe9770700000f1f80000000004883f950488d49d089d07354660f6f4e10660f6fd1660f3a0f0e0a660f740f660f6f5e20660f3a0fda0a660f745f10660fdbd9660fd7d3488d7f20488d762081eaffff00000f85150600004883c60a4801ce4801cfe916070000660f1f4400004883e920660f6f4610660f3a0f060a660f7407660f6f5e20660f3a0f5e100a660f745f10660fdbd84883e920660fd7d3660f6fc8660f6f5e40660f3a0f5e300a81daffff0000660f6f4630660f3a0f46200a660f744720488d7620660f745f30488d7f2074be660fdbd84883f9007d06ffc24883c12085d20f8582050000660fd7d3660f6fc8488d7f20488d762081eaffff00000f8566050000488d760a4801ce4801cfe9670600000f1f80000000004883f950488d49d089d07354660f6f4e10660f6fd1660f3a0f0e0b660f740f660f6f5e20660f3a0fda0b660f745f10660fdbd9660fd7d3488d7f20488d762081eaffff00000f85050500004883c60b4801ce4801cfe906060000660f1f4400004883e920660f6f4610660f3a0f060b660f7407660f6f5e20660f3a0f5e100b660f745f10660fdbd84883e920660fd7d3660f6fc8660f6f5e40660f3a0f5e300b81daffff0000660f6f4630660f3a0f46200b660f744720488d7620660f745f30488d7f2074be660fdbd84883f9007d06ffc24883c12085d20f8572040000660fd7d3660f6fc8488d7f20488d762081eaffff00000f8556040000488d760b4801ce4801cfe9570500000f1f80000000004883f950488d49d089d07354660f6f4e10660f6fd1660f3a0f0e0c660f740f660f6f5e20660f3a0fda0c660f745f10660fdbd9660fd7d3488d7f20488d762081eaffff00000f85f50300004883c60c4801ce4801cfe9f6040000660f1f4400004883e920660f6f4610660f3a0f060c660f7407660f6f5e20660f3a0f5e100c660f745f10660fdbd84883e920660fd7d3660f6fc8660f6f5e40660f3a0f5e300c81daffff0000660f6f4630660f3a0f46200c660f744720488d7620660f745f30488d7f2074be660fdbd84883f9007d06ffc24883c12085d20f8562030000660fd7d3660f6fc8488d7f20488d762081eaffff00000f8546030000488d760c4801ce4801cfe9470400000f1f80000000004883f950488d49d089d07354660f6f4e10660f6fd1660f3a0f0e0d660f740f660f6f5e20660f3a0fda0d660f745f10660fdbd9660fd7d3488d7f20488d762081eaffff00000f85e50200004883c60d4801ce4801cfe9e6030000660f1f4400004883e920660f6f4610660f3a0f060d660f7407660f6f5e20660f3a0f5e100d660f745f10660fdbd84883e920660fd7d3660f6fc8660f6f5e40660f3a0f5e300d81daffff0000660f6f4630660f3a0f46200d660f744720488d7620660f745f30488d7f2074be660fdbd84883f9007d06ffc24883c12085d20f8552020000660fd7d3660f6fc8488d7f20488d762081eaffff00000f8536020000488d760d4801ce4801cfe9370300000f1f80000000004883f950488d49d089d07354660f6f4e10660f6fd1660f3a0f0e0e660f740f660f6f5e20660f3a0fda0e660f745f10660fdbd9660fd7d3488d7f20488d762081eaffff00000f85d50100004883c60e4801ce4801cfe9d6020000660f1f4400004883e920660f6f4610660f3a0f060e660f7407660f6f5e20660f3a0f5e100e660f745f10660fdbd84883e920660fd7d3660f6fc8660f6f5e40660f3a0f5e300e81daffff0000660f6f4630660f3a0f46200e660f744720488d7620660f745f30488d7f2074be660fdbd84883f9007d06ffc24883c12085d20f8542010000660fd7d3660f6fc8488d7f20488d762081eaffff00000f8526010000488d760e4801ce4801cfe9270200000f1f80000000004883f950488d49d089d07354660f6f4e10660f6fd1660f3a0f0e0f660f740f660f6f5e20660f3a0fda0f660f745f10660fdbd9660fd7d3488d7f20488d762081eaffff00000f85c50000004883c60f4801ce4801cfe9c6010000660f1f4400004883e920660f6f4610660f3a0f060f660f7407660f6f5e20660f3a0f5e100f660f745f10660fdbd84883e920660fd7d3660f6fc8660f6f5e40660f3a0f5e300f81daffff0000660f6f4630660f3a0f46200f660f744720488d7620660f745f30488d7f2074be660fdbd84883f9007d06ffc24883c12085d27536660fd7d3660f6fc8488d7f20488d762081eaffff0000751e488d760f4801ce4801cfe91f0100000f1f440000662e0f1f84000000000066440fd7c14181e8ffff0000740b488d76f0488d7ff04489c24801c684d20f84ac000000f6c2017537f6c2027542f6c204754df6c2087558f6c2107563f6c220756ef6c24075790fb647f70fb656f729d0c30f1f4000662e0f1f8400000000000fb647f00fb656f029d0c30f1f4400000fb647f10fb656f129d0c30f1f4400000fb647f20fb656f229d0c30f1f4400000fb647f30fb656f329d0c30f1f4400000fb647f40fb656f429d0c30f1f4400000fb647f50fb656f529d0c30f1f4400000fb647f60fb656f629d0c30f1f440000488d7f08488d7608f6c6017583f6c602758ef6c6047599f6c60875a4f6c61075aff6c62075baf6c64075c50fb647f70fb656f729d0c3662e0f1f84000000000083f908734b83f9000f845c02000083f9010f84f302000083f9020f849a03000083f9030f842904000083f9040f842a02000083f9050f84c102000083f9060f8468030000e9ff0300000f1f800000000083f910734b83f9080f84f001000083f9090f848702000083f90a0f842e03000083f90b0f84c503000083f90c0f84be01000083f90d0f845502000083f90e0f84fc020000e99b0300000f1f800000000083f918734b83f9100f848401000083f9110f841b02000083f9120f84c202000083f9130f846103000083f9140f845201000083f9150f84e901000083f9160f8490020000e9370300000f1f800000000083f920734b83f9180f841801000083f9190f84af01000083f91a0f845602000083f91b0f84fd02000083f91c0f84e600000083f91d0f847d01000083f91e0f8424020000e9d30200000f1f800000000083f928734b83f9200f84ac00000083f9210f844301000083f9220f84ea01000083f9230f849902000083f924747e83f9250f841501000083f9260f84bc010000e97302000090662e0f1f84000000000083f928744983f9290f84e000000083f92a0f848701000083f92b0f843e02000083f92c741b83f92d0f84b200000083f92e0f8459010000e9140200000f1f40008b47d48b4ed439c80f85920200008b47d88b4ed839c80f85840200008b47dc8b4edc39c80f85760200008b47e08b4ee039c80f85680200008b47e48b4ee439c80f855a0200008b47e88b4ee839c80f854c0200008b47ec8b4eec39c80f853e0200008b47f08b4ef039c80f85300200008b47f48b4ef439c80f85220200008b47f88b4ef839c80f85140200008b47fc8b4efc39c80f850602000031c0c30f1f008b47d38b4ed339c80f85f20100008b47d78b4ed739c80f85e40100008b47db8b4edb39c80f85d60100008b47df8b4edf39c80f85c80100008b47e38b4ee339c80f85ba0100008b47e78b4ee739c80f85ac0100008b47eb8b4eeb39c80f859e0100008b47ef8b4eef39c80f85900100008b47f38b4ef339c80f85820100008b47f78b4ef739c80f85740100008b47fb8b4efb39c80f85660100000fb647ff3a46ff0f856e01000031c0c3660f1f4400008b47d28b4ed239c80f85420100008b47d68b4ed639c80f85340100008b47da8b4eda39c80f85260100008b47de8b4ede39c80f85180100008b47e28b4ee239c80f850a0100008b47e68b4ee639c80f85fc0000008b47ea8b4eea39c80f85ee0000008b47ee8b4eee39c80f85e00000008b47f28b4ef239c80f85d20000008b47f68b4ef639c80f85c40000008b47fa8b4efa39c80f85b60000000fb747fe0fb74efe38c80f85bb00000039c80f85b300000031c0c390662e0f1f8400000000008b47d18b4ed139c80f85820000008b47d58b4ed539c875788b47d98b4ed939c8756e8b47dd8b4edd39c875648b47e18b4ee139c8755a8b47e58b4ee539c875508b47e98b4ee939c875468b47ed8b4eed39c8753c8b47f18b4ef139c875328b47f58b4ef539c875288b47f98b4ef939c8751e0fb747fd0fb74efd38c8752739c875230fb647ff3a46ff751a31c0c3669038c875116639c8750cc1e810c1e91038c8750239c819c083d8ffc30f1f44000031c0c3662e0f1f8400000000000f1f000fb60684c00f849c0100000fb6560184d20f84b9000000660f6ec8660f6ed24889f825ff0f0000660f60c9483dbf0f0000660f60d2660f61c9660f61d2660f70c900660f70d2000f8703030000f30f6f1f660fefedf30f6f6701660f6ff3660f74d9660f74e2f30f6f4710660f74f5660fdadc660f6fe3f30f6f5f11660f74e8660f74da660febe6660f74c1660fdac3660febc566440fd7c4660fd7c048c1e0104909c0746a490fbcc04801f880380074420fb6560284d274393a5002754131d2eb270f1f00662e0f1f8400000000000fb6f0e9383bfeff0f1f8400000000004883c2013a4c100275160fb64c160384c975edc331c0c3660f1f840000000000498d40ff4921c0759d0f1f8000000000f30f6f5f20660fefedf30f6f6721660f6ff3660f74d9660f74e2f30f6f4730660f74f5660fdadc660f6fe3f30f6f5f31660f74e8660f74da660febe6660f74c1660fdac3660febc5660fd7c448c1e02066440fd7c049c1e0304909c0744b490fbcc04801f8803800742a0fb6560284d274213a5002752931d2eb0f0f1f4400004883c2013a4c100275160fb64c160384c975edc331c0c34889f8c30f1f440000498d40ff4921c075b549c7c300feffff4989f9660fefff4883e7c00f1f440000660f6f5f40f30f6f773f660f6fc3660fefda660feff166440f6f5750660febf366410fdac2f30f6f5f4f66440fefd2660fefd966440f6f4f6066410febda66410fdac166440fefca66440f6f47704883c740660fdadef30f6f671f66410fdac066440fefc2660fefe166410febe1660fdadcf30f6f6f2f660fefe966410febe8660fdadd660fdac3660f74c7660fd7c085c00f8468ffffff660fda37660fda6720660fda6f30660f74f7660f74ef660fd7d666440f6f4710660f74e7f30f6f470f66440fd7c566410f6fd8660fd7cc660f74c1660f74da48c1e12066440f74c749c1e030660fdad84809ca66440febc34909d066410fd7c048c1e0104909c00f84fbfeffff490fbcc84801f98039000f84ab01000031c00fb6560284d274243a5101752ceb14662e0f1f8400000000004883c0013a54010175160fb654060384d275ed488d41ffc30f1f8400000000004901c34889f84c29c84c39d87c12498d40ff4921c0759ee994feffff0f1f40004889ffe9687dfeff0f1f8400000000004889f8660fefc04883e0c0660f6f18f30f6f60ff66440f6fc3660f6f6810660f74e166440f74c0660f74da660f6ffd660fdadcf30f6f600f660f74f866440febc3660f6fdd660f6f6820660f74e1660f74da660f6ff566410fd7c8660fdadcf30f6f601f660febfb660f6fdd660f74f0660f6f6830660f74e166440fd7c7660f74da660f74c5660fdadcf30f6f602f660febf3660f6fdd49c1e010660f74e1660f74da66440fd7d6660fdadc660febc349c1e2204d09d04909c889f9660fd7d029c148c1e2304909d049d3e80f8497fdffff490fbcc04801f880380074624839c7743d0fb6560284d274283a5001753031d2eb166690662e0f1f8400000000004883c2013a4c100175160fb64c160384c975ed4883e801c30f1f840000000000498d40ff4921c075a9e93bfdffff6690f3c30f1f4000662e0f1f84000000000031c0c3662e0f1f8400000000000f1f00c5f9efc0c5f96ece488d34174889f8c4e27100c04883fa100f82c20000004881fa000100000f83f500000080fa807250c5fa7f07c5fa7f4710c5fa7f4720c5fa7f4730c5fa7f4740c5fa7f4750c5fa7f4760c5fa7f4770c5fa7f4680c5fa7f4690c5fa7f46a0c5fa7f46b0c5fa7f46c0c5fa7f46d0c5fa7f46e0c5fa7f46f0c380fa40722bc5fa7f07c5fa7f4710c5fa7f4720c5fa7f4730c5fa7f46c0c5fa7f46d0c5fa7f46e0c5fa7f46f0c30f1f0080fa20721bc5fa7f07c5fa7f4710c5fa7f46e0c5fa7f46f0c30f1f8000000000c5fa7f07c5fa7f46f0c3660f1f44000080fa08720bc5f9d607c5f9d646f8c390c5f97ec180fa047207890f894efcc39080fa02720b66890f66894efec30f1f0080fa017202880fc30f1f840000000000c4e37d38c0014883e7e04883c720c5fe7f004829f8488d4c10804881f900100000773dc5fd7f07c5fd7f4720c5fd7f4740c5fd7f47604883ef8083c18072e44889f0c5fe7f4680c5fe7f46a0c5fe7f46c0c5fe7f46e04829d0c5f877c30f1f004883e980c5f97ec0f3aa4889f04829d0c5f877c3662e0f1f8400000000006690c5f9efc0c5f96ece488d34174889f8c4e27100c04883fa100f82a10000004881fa0002000062f27d4818d00f87c10000004881fa00010000723862f17c48111762f17c4811570162f17c4811570262f17c4811570362f17c481156fc62f17c481156fd62f17c481156fe62f17c481156ffc380fa80721c62f17c48111762f17c4811570162f17c481156fe62f17c481156ffc380fa40720e62f17c48111762f17c481156ffc380fa20720ac5fe7f17c5fe7f56e0c3c5fa7f07c5fa7f46f0c380fa08720ac5f9d607c5f9d646f8c3c5f97ec180fa047206890f894efcc380fa02720866890f66894efec380fa017202880fc3488b0d87d228004839ca0f87d10000004881fa00040000777062f17c48111762f17c4811570162f17c4811570262f17c4811570362f17c4811570462f17c4811570562f17c4811570662f17c4811570762f17c481156f862f17c481156f962f17c481156fa62f17c481156fb62f17c481156fc62f17c481156fd62f17c481156fe62f17c481156ffc34881ee0001000062f17c4811104883e7c04883c74062f17c48291762f17c4829570162f17c4829570262f17c482957034881c7000100004839f772d962f17c48111662f17c4811560162f17c4811560262f17c48115603c34883e7804881c78000000062f17c48111062f17c481150014881ee0002000062f17d48e71762f17d48e7570162f17d48e7570262f17d48e7570362f17d48e7570462f17d48e7570562f17d48e7570662f17d48e757074881c7000200004839f772bd0faef862f17c48111662f17c4811560162f17c4811560262f17c4811560362f17c4811560462f17c4811560562f17c4811560662f17c48115607c385f60f8816020000448d8747ffffff4155415455534889d34489c0ba5655555541c1f81ff7ea4883ec084429c285f6448d1c520f84b8000000833dd8e628000f400f94c5833dd1e62800060f94c021c5400fb6c683f8400f84b30000003dff0000000f84bd00000083f84975144183fb09750e4084ed740983ef0341bb060000004189f131d241ba440000000f1f4000498d041248d1e8443a0cc5a03f4a004c8d04c5a03f4a0074290f1f8000000000734e4839d04989c2762c4801d048d1e8443a0cc5a03f4a004c8d04c5a03f4a0075de410fb650034139d389d00f843f0100003c06743ac1ee0885f60f855fffffff31c04883c4085b5d415c415dc36690488d50014c39d27287ebdb0f1f4400004183fb09c6010175cdebd60f1f440000c60301ebc131c9b8040000000fa289c683e61f74bcc1e80583e00783f8010f94c24183fb03410f94c183fe01410f94c04584c8740884d20f858e0000004585db410f94c283fe02400f94c64484d6740484d275774183fb0641b804000000400f94c531f60f1f400083f80275054084ed755983f80375064183fb09744e83f80475064183fb0c744383c6014489c089f10fa289c283e21f0f8434ffffffc1e80583e00783f801410f94c483fa01410f94c54584cd74054584e4751083fa020f94c24484d274a24584e4749d8d8747ffffff4429d8745983f8010f848200000083f8020f85a900000089d84883c40825ff0f00005b4883c0015d415c415dc331c0c38d8747ffffff4429d8741483f801745d83f8027562410fb64002e9b3feffff418b40044883c4085b5d415c415dc389d883c101c1e8168d500189d825ff0f000083c0010fafc20fafc189c289d8c1e80c25ff03000083c0010fafc2e972feffff89d8c1e81683c001e965feffff410fb64001e95bfeffffb9d0414a00baf1000000bef03d4a00bf0e3e4a00e89f36fcffb9d0414a00bac1000000bef03d4a00bf0e3e4a00e88636fcff660f1f44000083fe010f86f70000004157415641bf010000004155415441bc01000000555389fd4883ec18c644240e00c644240f00eb780f1f8000000000488d4c240e488d54240f89efe8e7fcffff4885c00f8597000000488d4c240e488d54240f89de89efe8cbfcffff4885c0757f488d4c240e488d54240f4489ee89efe8b2fcffff4885c07566488d4c240e488d54240f4489f689efe899fcffff4885c0754d4539e7418d442401762a4189c4b8020000000fa24183fc014189d64189cd89c60f8576ffffff440fb6f84080e600e969ffffff9081edbf00000083fd05772d807c240e00742648c7c0ffffffff4883c4185b5d415c415d415e415fc30f1f84000000000031c0c30f1f4400004883c41831c05b5d415c415d415e415fc30f1f800000000053b8000000800fa281ffc40000007f4031d281ffbe0000000f9fc281eafbffff7f39c2772b89d00fa281ffbb0000007e2781efbc00000083ff080f8730010000ff24fd403e4a00660f1f84000000000031c05bc30f1f400083c70389d1ebd29031c0f6c5f074eb0fb6c15bc30f1f400031c0f6c5f074db89c8c1e8062500fcff035bc30f1f44000031c0f6c6f074c30fb6c25bc30f1f400089c8c1e80e2500fc03005bc30f1f4000c1e9100fb6c13dff000000759d8d048d000000005b2500fc0300c30f1f44000089cac1ea0c83e20fff24d5883e4a00660f1f84000000000031c0f6c6f00f8467ffffff488d04125b250000f87fc3662e0f1f84000000000089d0c1e80c83e00fff24c5083f4a00b8080000005bc3b8800000005bc3b8600000005bc3b8400000005bc3b8300000005bc3b8200000005bc3b8100000005bc389ca0fb6c9c1ea0689d031d22500fcff03f7f15b89c0c34889d05bc389d00fb6ca31d2250000fc3f01c0f7f15b89c0c3b9c0414a00bab0010000bef03d4a00bf1a3e4a00e8d733fcff0f1f80000000008b055ae1280083f801741583f802740831c0c30f1f440000e953feffff0f1f008b353ee12800e925fdffff0f1f4400004839f77433488b5270eb0e0f1f4400004883c7014584c0741f4883c6010fb6070fb64eff4989c08b04822b048a74e1f3c30f1f800000000031c0c30f1f44000048c1e202e97782feff0f1f800000000053488b5f284885db743648c747280000000048c7472000000000488b7318488b7b10e879750000488b3b488b7308e86d7500004889df5be924fafdff0f1f40005bc30f1f4000662e0f1f840000000000534889d34531c04883ec10488d5424084889e1e85872000085c07534488b34244883fe01761a488b7c2408e8207500004883c41031c05bc30f1f840000000000488933488b4424084883c4105bc366904883c41031c05bc30f1f84000000000055b8000000004889e541554154534889fb4883ec184885c07407bf20c76c00ffd048837b28007420b8000000004885c07407bf20c76c00ffd0488d65e85b415c415d5dc30f1f4000be20000000bf01000000e86901feff4885c04989c40f845d0100008b73344c8b83b000000083fe014c89c04819ff4883e7f84883c70b83fe014819d24531c948f7d283e208eb11904883c00180f92f0f94c10fb6c94901c90fb60884c975e94c29c0490fbe08488d44071e4883e0f04829c44c8d6c240f4983e5f084c90f846c010000488b3d164207004c89e80f1f008b0c8f4883c0014983c0018848ff490fbe0884c975ea4983f9010f86d8000000488d4dd0488d55d84531c0c600004c89eebfad544a00e8fd70000085c00f8506010000488b75d04883fe01762b488b7dd8e8c273000049837c24100049c7042400000000747a4c89632848c74320a0e54300e9d9feffff90488b45d849897424084885c0498904240f84c3000000488d4dd0488d55d84531c0bead544a004c89efe89270000085c00f85b9000000488b75d04883fe017658488b7dd8e85773000031c04885c049894424107599498b3c244885ff740a498b742408e8387300004c89e7e8f0f7fdff48c7432800424a00e95bfeffff0f1f004d85c9c6002f741b4883c001e917ffffff0f1f80000000004989742418488b45d8eba8c640012f4883c0024885d20f84f4feffff85f6b965694b00bef1414a00480f44f14889c7e8a47ffeffe9d7feffff49c704240000000049837c2410000f8509ffffffeb814c89e8e9affeffff31c0e955ffffff662e0f1f84000000000055534889fb4883ec0848c7c0b0ffffff64488b00488b28488b45284885c07440488b10488913488b480848833a0048894b08488b481048894b10488b401848894318740483421001488b4310488338007404834010014883c4085b5dc30f1f004881fd206c4a00b800424a0074b24889efe83afdffff488b4528eba40f1f400055534531c04889fbbfad544a004889f54883ec18488d5424084889e1e81f6f000085c00f85a7000000488b34244883fe01761d488b7c2408e8e371000048c70300000000b8010000004883c4185b5dc3488b442408488973084885c04889037476488d5424084531c04889e1bead544a004889efe8c76e000085c0756b488b34244883fe017629488b7c2408e88f71000048c7431000000000488b7308488b3be87b710000b801000000eb9d0f1f4000488b542408488973184885d24889531074d74883c4185b5dc30f1f800000000048c703000000004883c418b8010000005b5dc30f1f44000048c7431000000000eba7662e0f1f8400000000000f1f40004863d749c7c1d0ffffff41b8e7000000be3c000000eb19660f1f8400000000004889d789f00f05483d00f0ffff7721f44889d74489c00f05483d00f0ffff76e0f7d864418901ebd80f1f840000000000f7d864418901ebd70f1f840000000000554889e541574156415541544989fd53bf19434a004881ec9800000048c7c0d0ffffff64448b20e8443101004885c00f849b0000004889c74989c7e8e04dfeff4889c34c89efe8d54dfeff4989c6488d44031a4889da4c89fe4883e0f04829c44889e7e8287dfeffba365f000048b92f504f5349585f56488d780a66895008498d56014889084c89eee862d7feff488d9540ffffff4889e6bf01000000e8ae07000048c7c1d0ffffff489848c1f83f4883c80164448921488d65d85b415c415d415e415f5dc3662e0f1f840000000000bb1000000041bf08434a00e963ffffff555389fb8d8347ffffff4883ec3883f80e0f861901000083fb220f84800100000f8fba00000085db0f841201000083fb03bf40434a000f858c00000031f6b8020000000f05483d00f0ffff0f87b706000083f8ff7472488d6c24104c63c04531c90f1f8000000000ba1f0000004889ee4c89c74489c80f05483d00f0ffff0f87f40000004889c24c89c7b8030000000f054885d27e32488d742408c6441410004889efba0a000000e813300100488b5424084839ea74110fb61284d2746180fa0a745c0f1f44000081fbf60000000f8717060000ff24dd78434a000f1f44000081fb8a0000007ce081fb8b000000b8691003007e2a81fb9500000075cb488d742410bf01000000b8e50000000f053d01f0ffff4819c0256a1003004883e8014883c4385b5dc3662e0f1f84000000000089dfe889f8ffff4883c4385b5dc36690488d742410bf03000000e87110000089c2b80000020085d275c5488b5424104889d148c1e9024881fa00000800480f43c1ebac0f1f44000048c7c2d0fffffff7d883f8046489020f84dbfeffff48c7c2ffffffffe9eefeffff0f1f8000000000488d742410bf0b000000e81110000085c0750d488b442410e962ffffff0f1f00bf25434a00e972feffffb8ffffff7fe94bffffff48c7c0ffffffffe93fffffffe85b050000e935ffffffe8c13900004898e929ffffffb800000100e91fffffffe8ab1000004898e913ffffffb810000000e909ffffffe8b59002004889c2b8060000004883fa060f8ef2feffffe89e900200e9e8feffffb801000000e9defeffffb801000000e9d4feffffb869100300e9cafeffffb869100300e9c0feffffb869100300e9b6feffffb869100300e9acfeffffb869100300e9a2feffffb869100300e998feffffb869100300e98efeffffb869100300e984feffffb869100300e97afeffffb869100300e970feffffb869100300e966feffffb869100300e95cfeffffb869100300e952feffffb869100300e948feffffbf69434a00e83ffcffffe939feffffb801000000e92ffeffffb814000000e925feffffb8ffffff7fe91bfeffffb801000000e911feffffb800800000e907feffffb869100300e9fdfdffffe8590f00004898e9f1fdffffb820000000e9e7fdffffbf69434a00e8defbffffe9d8fdffffb8ffffff7fe9cefdffffbf5d434a00e8c5fbffffe9bffdffffb869100300e9b5fdffffb863000000e9abfdffffb800080000e9a1fdffffb863000000e997fdffffb8e8030000e98dfdffffb8ff000000e983fdffffb820000000e979fdffffb800080000e96ffdffffb8ff7f0000e965fdffffb800080000e95bfdffffb869100300e951fdffffb869100300e947fdffffb869100300e93dfdffffb869100300e933fdffffb869100300e929fdffffb869100300e91ffdffffb869100300e915fdffffb869100300e90bfdffffbf5d434a00e802fbffffe9fcfcffffb801000000e9f2fcffffb869100300e9e8fcffffb801000000e9defcffffb801000000e9d4fcffffb840000000e9cafcffffb800040000e9c0fcffffb869100300e9b6fcffffb801000000e9acfcffffbf69434a00e8a3faffffe99dfcffffbf5d434a00e894faffffe98efcffffb869100300e984fcffffb801000000e97afcffffb869100300e970fcffffb869100300e966fcffffb800040000e95cfcffffb800040000e952fcffffb800010000e948fcffffb820000000e93efcffffb804000000e934fcffffb800040000e92afcffffb800400000e920fcffffb869100300e916fcffffb869100300e90cfcffffb869100300e902fcffffb869100300e9f8fbffffb869100300e9eefbffffb869100300e9e4fbffffb869100300e9dafbffffe8e63400004898e9cefbffffe8da3100004898e9c2fbffffe86e350000e9b8fbffffe8d4350000e9aefbffffb8ffffff7fe9a4fbffffb800200000e99afbffffb8bc020000e990fbffffb804000000e986fbffffb801000000e97cfbffffb801000000e972fbffffb801000000e968fbffffb801000000e95efbffffb869100300e954fbffffb869100300e94afbffffb801000000e940fbffffb801000000e936fbffffb801000000e92cfbffffb801000000e922fbffffb808000000e918fbffffb87f000000e90efbffff48c7c080ffffffe902fbffffb8ffffff7fe9f8faffff48c7c000000080e9ecfaffffb840000000e9e2faffffb820000000e9d8faffffb810000000e9cefaffffb814000000e9c4faffffb8ff7f0000e9bafaffffb87f000000e9b0faffff48c7c080ffffffe9a4faffffb8ff7f0000e99afaffff48c7c00080ffffe98efaffffb8ff000000e984faffffb8ffffffffe97afaffffb869100300e970faffffb8ffff0000e966faffffb800100000e95cfaffffb800080000e952faffffb8ffffff7fe948faffffb8ffffff7fe93efaffffb8ffffff7fe934faffff48c7c0d0ffffff64c7001600000048c7c0ffffffffe91afaffff0f1f0048c7c2d0fffffff7d8648902e9aff9ffff0f1f8000000000b8180000000f05483d01f0ffff0f830d510000c3662e0f1f84000000000066904883ec18bf060000004889e6e86f0a000085c048c7c0ffffffff480f4404244883c418c3662e0f1f840000000000669083ff014889f077304889c74889d6b8040000000f05483d00f0ffff7703f3c39048c7c2d0fffffff7d8648902b8ffffffffc3660f1f44000048c7c0d0ffffff64c70016000000b8ffffffffc30f1f400083ff0189f077314863f84889d6b8050000000f05483d00f0ffff7704f3c3669048c7c2d0fffffff7d8648902b8ffffffffc3660f1f44000048c7c0d0ffffff64c70016000000b8ffffffffc30f1f4000833d45de2800007514b8020000000f05483d01f0ffff0f8314500000c34883ec08e8da34000048890424b8020000000f05488b3c244889c2e8233500004889d04883c408483d01f0ffff0f83e04f0000c3662e0f1f8400000000000f1f440000833de5dd2800007514b8000000000f05483d01f0ffff0f83b44f0000c34883ec08e87a34000048890424b8000000000f05488b3c244889c2e8c33400004889d04883c408483d01f0ffff0f83804f0000c3662e0f1f8400000000000f1f440000833d85dd2800007514b8010000000f05483d01f0ffff0f83544f0000c34883ec08e81a34000048890424b8010000000f05488b3c244889c2e8633400004889d04883c408483d01f0ffff0f83204f0000c3662e0f1f8400000000000f1f440000488d44240883fe0948895424d8c74424b01000000048894424b8488d4424c848894424c0741a4863f64863ffb8480000000f05483d00f0ffff7735f3c30f1f00488d5424a8be100000004863ffb8480000000f053d00f0ffff77158b4424ac89c2f7da837c24a8020f44c2c30f1f400048c7c2d0fffffff7d8648902b8ffffffffc30f1f4000662e0f1f840000000000534883ec60488d4424704889542440c7442418100000004889442420488d44243048894424288b0570dc280085c0740583fe07747383fe09741e4863f64863ffb8480000000f05483d00f0ffff77414883c4605bc30f1f00488d542410be100000004863ffb8480000000f053d00f0ffff771d8b44241489c2f7da837c2410020f44c24883c4605bc30f1f800000000048c7c2d0fffffff7d8648902b8ffffffffebac0f1f44000089fb4889542408e89c320000488b5424084189c0be070000004863fbb8480000000f05483d00f0ffff77154489c789442408e8d13200008b442408e967ffffff48c7c2d0fffffff7d8648902b8ffffffffebd80f1f440000415741564989f64155415455534889fb4881ecf80000004885f6755c4885ff0f852b040000e896070000be001000003d001000000f4df04863f64889f74889742410e8f9e5fdff4885c04889442408488b742410752c662e0f1f84000000000031c04881c4f80000005b5d415c415d415e415fc30f1f40004885ff74bd48897c2408488b7c2408b84f0000000f05483d00f0ffff0f879d04000083f8000f8e3d040000488b542408803a2f0f84b703000048c7c5d0ffffff4885db0f944424434d85f60fb6442443750884c00f85c60300004d85f60f8445040000648b45004c8974242889442444488b44240848894424204889c348035c2428488d542460be314b4a00bf01000000488d43ffc643ff004889442438e855b4020085c00f8823040000488b442468488d542460beee4a4b00bf010000004c8b7c24604989c54889442418e827b4020085c00f88f5030000488b4424604889c14889442448488b4424684889c248894424504939d575094939cf0f8400040000ba00000800be304b4a0048c7c79cffffffb8010100000f05483d00f0ffff0f874404000085c0894424100f88190500004531e44c8974243089c6488d542460bf01000000e83efbffff85c00f88750400004d85e474104c89e7e809b0020085c00f8550040000488b4424688b7c24104c8b7424604889442458e879b202004885c04989c4752de92b0400000f1f4000f64012fb75248078132e0f84b00100004d39f775534584ed744e488b4c2418483b08744441bd010000004c89e764c7450000000000e8feaf02004885c075c1648b450085c00f85820300004584ed0f848c0100004c89e74531ede8d9b00200ebc90f1f8000000000488d58138b742410488d4c246041b800010000bf010000004889dae830b3020085c0789e8b4424782500f000003d00400000758e4c3b7c24607587488b442418483b4424680f8577ffffff4889dfe8bd3ffeff4c8b442438488b7c24084989c74929f84d39c74c89442418726448837c2430000f85fd030000488b4424284939c7490f43c74989c54d01ed4c89eee89de8fdff4885c04c8b4424180f84c7030000488b54240848035424284c89ef482b5424384a8d340048894424084829d74801c7e819c9feff4c896c24284889442438488b4c24384c89fa4889de4c29f94889cfe8f9c8feff4c397424484889c1488d40ffc641ff2f48894424387510488b54245848395424500f84dc010000ba00000800be304b4a0048637c2410b8010100000f05483d00f0ffff0f870503000085c0894424100f88e8020000488b4424584d89f78b7424104889442418e9f1fdffff660f1f440000807814000f8460feffff668378142e0f853bfeffffe950feffff660f1f4400004c8b74243064c7450002000000bb020000004531ed4c89e7e8dbad02004584ed740c48637c2410b8030000000f0548837c2420000f84fe01000064895d004d85f60f8431fcffff807c2443000f8426fcffff488b7c2420e89ce5fdffe917fcffff0f1f800000000048c7c0d0ffffff64c7001600000031c0e9fdfbffff0f1f004885db75134d85f6750e4889d74863f0e823e7fdff4889c3488b4424084885db480f45c3e9d1fbffff0f1f8000000000488b7c2408e83ee5fdff648b4500bf0110000089442444e88ce1fdff4885c048894424080f849e01000048c74424280110000048c7442420000000004889c3e919fcffff0f1f40000f84cbfbffff48c7c5d0ffffff648b450083f8240f84befbffff83f8220f84eb0000004885db0f8554fbffff488b7c2408e8cae4fdff31c0e945fbffff0f1f00488b44240864c74500160000004889442420e9effeffff48c7c5d0fffffff7d864894500ebabc74424109cffffff4531ed648b5d00e9abfeffff4c89e74c8b742430e879ac020085c00f8561010000488b5c240848035c2428488b442408488b542428488d4410ff483b4424380f84f2000000488b442438488b7c24084829c34889c64889dae83507fcff4d85f60f84ba0000008b542444488b44242064895500488b5424084885c0480f45d04889d0e98dfaffff4c8b74243089c3e919feffff89c3f7db64895d00e928feffff4885db0f850cffffff4d85f60f8503ffffffb9904b4a00ba79000000be384b4a00bf604b4a00e8b71cfcff0f1f8000000000488b7c2408e8b6e3fdffe9f3fdffff4c8b74243041bd01000000e912ffffff4d85e44c8b742430648b5d000f84b9fdffff41bd01000000e9a1fdffff0f1f400048c744242000000000e9b8fdffff488b7c24084889dee825e5fdff4889442420e92fffffff48836c243801c640ff2fe9fffeffff4c8b742430648b5d004531ede958fdffff89c34c8b742430c7442410fffffffff7db4531ed64895d00e93bfdffff648b5d00e94bfdffff0f1f4400004531ede979feffff4c8b742430648b5d00e914fdffff4c8b74243064c7450022000000bb22000000e9fdfcffff0f1f00b8610000000f05483d01f0ffff0f836d460000c3662e0f1f840000000000669055534889fd4883ec08488b1d20cc28004885db74438b05a5b9280085c075394883fd0074247e694889d84801e80f92c084c0743c48c7c0d0ffffff64c7000c00000048c7c3ffffffff4883c4084889d85b5dc30f1f44000031ffe8f1af020085c0488b1dc8cb280079b5ebd60f1f4000488d3c2be8d7af020085c078c54883c4084889d85b5dc3660f1f8400000000004889e848f7d84839c30f92c0eb926690488b0599b328004885c07402f3c350b9d04b4a00ba1c000000bea04b4a00bfde4b4a00e8e81afcff0f1f8400000000004883ec18bf070000004889e6e8fffeffffba0001000085c00f4914244883c41889d0c3662e0f1f8400000000000f1f004885ff41574d89cf41564189ce41554989f541544989fc555374354963e84863da4d89f94989e84d63d64889da4c89ee4c89e7b8090000000f05483d00f0ffff774e5b5d415c415d415e415fc30f1f00f6c20474c6f60526c82800014963e84863da74bd4189ca4989e84889da4183ca4031ffb8090000004d63d20f05483d00f0ffff77204883f8ff75b7eb940f1f0048c7c2d0fffffff7d864890248c7c0ffffffffeb9d48c7c2d0fffffff7d8648902e96bffffff662e0f1f840000000000b80b0000000f05483d01f0ffff0f838d440000c3662e0f1f8400000000006690b80a0000000f05483d01f0ffff0f836d440000c3662e0f1f8400000000006690b81c0000000f05483d01f0ffff0f834d440000c3662e0f1f84000000000066904154554889f05348837f080074624889fb31f64189d44889c5ffd0488b7b084885ff740d418d5424014889eee8cfffffff4889df4489e2be01000000ffd5488b7b104885ff740d418d5424014889eee8acffffff4489e24889df4889e85b5d415cbe02000000ffe00f1f84000000000048837f100075975b5d415cbe03000000ffe00f1f4000662e0f1f84000000000041574156415541544989fc55534889f34883ec18488b6f084885ed0f840b0200004c8b6d084d85ed0f84c90000004d8b75084d85f6742c498b7e084885ff7405e8bbffffff498b7e104885ff74084889dee8aaffffff498b3effd34c89f7e8addffdff4d8b75104d85f6747d4d8b7e084d85ff742f498b7f084885ff74084889dee87affffff498b7f104885ff74084889dee869ffffff498b3fffd34c89ffe86cdffdff4d8b7e104d85ff742f498b7f084885ff74084889dee842ffffff498b7f104885ff74084889dee831ffffff498b3fffd34c89ffe834dffdff498b3effd34c89f7e827dffdff498b7d00ffd34c89efe819dffdff4c8b6d104d85ed0f841a0100004d8b75084d85f6747d4d8b7e084d85ff742f498b7f084885ff74084889dee8d9feffff498b7f104885ff74084889dee8c8feffff498b3fffd34c89ffe8cbdefdff4d8b7e104d85ff742f498b7f084885ff74084889dee8a1feffff498b7f104885ff74084889dee890feffff498b3fffd34c89ffe893defdff498b3effd34c89f7e886defdff4d8b75104d85f6747d4d8b7e084d85ff742f498b7f084885ff74084889dee853feffff498b7f104885ff74084889dee842feffff498b3fffd34c89ffe845defdff4d8b7e104d85ff742f498b7f084885ff74084889dee81bfeffff498b7f104885ff74084889dee80afeffff498b3fffd34c89ffe80ddefdff498b3effd34c89f7e800defdff498b7d00ffd34c89efe8f2ddfdff488b7d00ffd34889efe8e4ddfdff498b6c24104885ed0f84a50200004c8b6d084d85ed0f841a0100004d8b75084d85f6747d4d8b7e084d85ff742f498b7f084885ff74084889dee896fdffff498b7f104885ff74084889dee885fdffff498b3fffd34c89ffe888ddfdff4d8b7e104d85ff742f498b7f084885ff74084889dee85efdffff498b7f104885ff74084889dee84dfdffff498b3fffd34c89ffe850ddfdff498b3effd34c89f7e843ddfdff4d8b75104d85f6747d4d8b7e084d85ff742f498b7f084885ff74084889dee810fdffff498b7f104885ff74084889dee8fffcffff498b3fffd34c89ffe802ddfdff4d8b7e104d85ff742f498b7f084885ff74084889dee8d8fcffff498b7f104885ff74084889dee8c7fcffff498b3fffd34c89ffe8cadcfdff498b3effd34c89f7e8bddcfdff498b7d00ffd34c89efe8afdcfdff4c8b6d104d85ed0f84630100004d8b75084d85f6747d4d8b7e084d85ff742f498b7f084885ff74084889dee86ffcffff498b7f104885ff74084889dee85efcffff498b3fffd34c89ffe861dcfdff4d8b7e104d85ff742f498b7f084885ff74084889dee837fcffff498b7f104885ff74084889dee826fcffff498b3fffd34c89ffe829dcfdff498b3effd34c89f7e81cdcfdff4d8b75104d85f60f84c20000004d8b7e084d85ff742f498b7f084885ff74084889dee8e5fbffff498b7f104885ff74084889dee8d4fbffff498b3fffd34c89ffe8d7dbfdff4d8b7e104d85ff7474498b7f084885ff74084889dee8adfbffff498b47104885c0744d488b78084885ff74124889de4889442408e88efbffff488b442408488b78104885ff74124889de4889442408e873fbffff488b442408488b384889442408ffd3488b4424084889c7e867dbfdff498b3fffd34c89ffe85adbfdff498b3effd34c89f7e84ddbfdff498b7d00ffd34c89efe83fdbfdff488b7d00ffd34889efe831dbfdff498b3c24ffd34883c4184c89e75b5d415c415d415e415fe915dbfdff0f1f440000415741564155415455534883ec284885f648897c241048895424180f8412030000488b064989f44885c00f8460020000806018fec7442408000000004531f6488b1e31ed4531edeb290f1f8000000000488d5310488b5b104c89ed44897424084885db0f84f90000004d89e54589fe4989d44885db0f8415020000488b33488b7c2410488b442418ffd085c04189c70f843b020000498b0424488b50104885d20f849a000000488b70084885f60f848d000000f64218010f8483000000f6461801747d80481801806218fe488b50084885d27404806218fe4d85ed7463498b55000fb6721840f6c60174558b4c24084585f6488b7d00410f9fc385c9410f9fc24538d30f843701000083ce0140887218804f1801806018fe4585f60f884f010000488b70084889721048895008488b50104889570848897810488945000f1f004585ff0f8907ffffff488d5308488b5b084c89ed44897424084885db0f8507ffffffbf200000004889542408e8ffd5fdff4885c04889c60f84b6010000488b542408488902488b442410804e18014939d448c746100000000048c74608000000004889060f84a1010000488b12488b4210804a18014885c07404806018fe488b42084885c07404806018fe498b0c244889f00fb6791840f6c70174534585ff4d8b5500410f9fc34585f6410f9fc14538cb0f84eb00000083cf014088791841804a1801806218fe4585ff0f8806010000488b420848894110488b421048894a08498942084c895210498955004889f04883c4285b5d415c415d415e415fc3669048895500806218fe804f18014585f60f88b0000000488b42084889471048897a08e9dafeffff662e0f1f840000000000488b70104889720848895010488b50084889571048897808e9acfeffff0f1f00bf20000000e8d6d4fdff4885c07490488b4c2410498904248048180148c740100000000048c74008000000004889084883c4285b5d415c415d415e415fc366904883c4284889d85b5d415c415d415e415fc349894d00806118fe41804a18014585ff7846488b5108498952104c895108e92affffff488b42104889470848897a10e92afeffff488b421048894108488b420848894a10498942104c895208e9f5feffff31c0e9f5feffff488b5110498952084c895110e9e4feffff4889f0e9dcfeffff0f1f00662e0f1f8400000000004885f6744b41544989fc554889d553eb210f1f8000000000488b334c89e7ffd585c07424488d73084883c31085c0480f49f3488b1e4885db75de5b31c05d415cc30f1f80000000004889d85b5d415cc331c0c30f1f00662e0f1f840000000000554889e54157415641554154534883ec2848897dc0488955b84881ec500100004c8d64240f4983e4f04885f674784c8b064989f64d85c0746d4d89c731dbc745cc280000004c89c0eb17660f1f440000498b47104883c3014d8d77104885c07445488b30488b7dc04189dd488b45b8ffd085c04189c10f8484000000395dcc743f4c8d2cdd000000004585c94f89342c4d8b3e79bb498b47084883c3014d8d77084885c075bb488d65d831c05b415c415d415e415f5dc3660f1f8400000000008345cc144c8d2cdd000000004c89e6486345cc44894db04c89ea488d04c51e0000004883e0f04829c4488d7c240f4883e7f0e8c9b8feff448b4db04989c4eb894d8b06498b7008498b58104885f60f84940000004885db0f848b0000004963c54d8d4810488d0cc500000000eb286690488b43084183c5014d89340c4883c1084885c00f842f020000488d53084d89ce4889c34989d144396dcc75d48345cc144889ca4c89e6486345cc4c8945b04c894db848894dc0488d04c51e0000004883e0f04829c4488d7c240f4883e7f0e82db8feff4c8b45b04989c44c8b4db8488b4dc0eb8c0f1f40004885f6480f44f34585ed0f85690200004989364c89c34939d87406488b03498900f64318010f85b60000004585ed0f84560200004885f6740af64618010f857d0100004d63cd4b8b7cccf8488b17488b42084839f00f84ed0000000fb64818f6c101742983e1fe4183c501884818804a1801488b481048894a0848895010488907488d7810488b42084b893ccc488b48104885c9746af64118017464488b70084885f67406f6461801756c0fb67218440fb6491883e6014183e1fe4409ce40887118488b711048897208488b710848897010488941084889511048890f806218fe4889dfe8bfd4fdff488d65d84c89f85b415c415d415e415f5dc30f1f440000488b70084885f60f849b000000f64618010f8491000000440fb64a18440fb650184183e1014183e2fe4509d144884818806218fe806618fe48894a0848895010488907eb9c0f1f00488b42100fb64818f6c101742983e1fe4183c501884818804a1801488b480848894a1048895008488907488d7808488b42104b893ccc488b48084885c97406f6411801756b488b70104885f67412f64618010f85a80000000f1f840000000000804818014183ed014889d60f857bfeffff0f1f8000000000806618fee918ffffff0f1f8000000000488b73104963c5498b44c4f8488b00483958100f849800000048897008e924feffff660f1f440000488b70104885f67406f646180175410fb67218440fb6491883e6014183e1fe4409ce40887118488b710848897210488b711048897008488941104889510848890f806218fee99ffeffff660f1f440000440fb64a18440fb650184183e1014183e2fe4509d144884818806218fe806618fe48894a1048895008488907e968feffff4c89c3e953ffffff48897010e98cfdffff4885f60f852dffffffe949feffff415741564155415455534883ec084885ff0f84910a00004885f64889f00f84850a000048837f08000f84d20a00004889fd31d231f64889c3ffd04c8b65084d85e40f841405000049837c240800ba010000000f84880a000031f64c89e7ffd34d8b6c24084d85ed0f846102000049837d0800ba020000000f84db0a000031f64c89efffd34d8b75084d85f60f840901000049837e0800ba030000000f84f70a000031f64c89f7ffd34d8b7e084d85ff746149837f0800ba040000000f84170d000031f64c89ffffd3498b7f084885ff740dba050000004889dee892f1ffff4c89ffba04000000be01000000ffd3498b7f104885ff740dba050000004889dee86df1ffffba04000000be020000004c89ffffd3ba03000000be010000004c89f7ffd34d8b7e104d85ff746149837f0800ba040000000f84fe0c000031f64c89ffffd3498b7f084885ff740dba050000004889dee819f1ffff4c89ffba04000000be01000000ffd3498b7f104885ff740dba050000004889dee8f4f0ffffba04000000be020000004c89ffffd3ba03000000be020000004c89f7ffd3ba02000000be010000004c89efffd34d8b75104d85f60f840901000049837e0800ba030000000f84320a000031f64c89f7ffd34d8b7e084d85ff746149837f0800ba040000000f84920c000031f64c89ffffd3498b7f084885ff740dba050000004889dee86df0ffff4c89ffba04000000be01000000ffd3498b7f104885ff740dba050000004889dee848f0ffffba04000000be020000004c89ffffd3ba03000000be010000004c89f7ffd34d8b7e104d85ff746149837f0800ba040000000f84f90b000031f64c89ffffd3498b7f084885ff740dba050000004889dee8f4efffff4c89ffba04000000be01000000ffd3498b7f104885ff740dba050000004889dee8cfefffffba04000000be020000004c89ffffd3ba03000000be020000004c89f7ffd3ba02000000be020000004c89efffd3ba01000000be010000004c89e7ffd34d8b6c24104d85ed0f846102000049837d0800ba020000000f841d08000031f64c89efffd34d8b75084d85f60f840901000049837e0800ba030000000f84b908000031f64c89f7ffd34d8b7e084d85ff746149837f0800ba040000000f84d90a000031f64c89ffffd3498b7f084885ff740dba050000004889dee814efffff4c89ffba04000000be01000000ffd3498b7f104885ff740dba050000004889dee8efeeffffba04000000be020000004c89ffffd3ba03000000be010000004c89f7ffd34d8b7e104d85ff746149837f0800ba040000000f84400a000031f64c89ffffd3498b7f084885ff740dba050000004889dee89beeffff4c89ffba04000000be01000000ffd3498b7f104885ff740dba050000004889dee876eeffffba04000000be020000004c89ffffd3ba03000000be020000004c89f7ffd3ba02000000be010000004c89efffd34d8b75104d85f60f840901000049837e0800ba030000000f847407000031f64c89f7ffd34d8b7e084d85ff746149837f0800ba040000000f845409000031f64c89ffffd3498b7f084885ff740dba050000004889dee8efedffff4c89ffba04000000be01000000ffd3498b7f104885ff740dba050000004889dee8caedffffba04000000be020000004c89ffffd3ba03000000be010000004c89f7ffd34d8b7e104d85ff746149837f0800ba040000000f84bb08000031f64c89ffffd3498b7f084885ff740dba050000004889dee876edffff4c89ffba04000000be01000000ffd3498b7f104885ff740dba050000004889dee851edffffba04000000be020000004c89ffffd3ba03000000be020000004c89f7ffd3ba02000000be020000004c89efffd3ba01000000be020000004c89e7ffd331d2be010000004889efffd34c8b65104d85e40f841405000049837c240800ba010000000f843b05000031f64c89e7ffd34d8b6c24084d85ed0f846102000049837d0800ba020000000f848e05000031f64c89efffd34d8b75084d85f60f840901000049837e0800ba030000000f84aa06000031f64c89f7ffd34d8b7e084d85ff746149837f0800ba040000000f84ca06000031f64c89ffffd3498b7f084885ff740dba050000004889dee865ecffff4c89ffba04000000be01000000ffd3498b7f104885ff740dba050000004889dee840ecffffba04000000be020000004c89ffffd3ba03000000be010000004c89f7ffd34d8b7e104d85ff746149837f0800ba040000000f843106000031f64c89ffffd3498b7f084885ff740dba050000004889dee8ecebffff4c89ffba04000000be01000000ffd3498b7f104885ff740dba050000004889dee8c7ebffffba04000000be020000004c89ffffd3ba03000000be020000004c89f7ffd3ba02000000be010000004c89efffd34d8b75104d85f60f840901000049837e0800ba030000000f846505000031f64c89f7ffd34d8b7e084d85ff746149837f0800ba040000000f846506000031f64c89ffffd3498b7f084885ff740dba050000004889dee840ebffff4c89ffba04000000be01000000ffd3498b7f104885ff740dba050000004889dee81bebffffba04000000be020000004c89ffffd3ba03000000be010000004c89f7ffd34d8b7e104d85ff746149837f0800ba040000000f84cc05000031f64c89ffffd3498b7f084885ff740dba050000004889dee8c7eaffff4c89ffba04000000be01000000ffd3498b7f104885ff740dba050000004889dee8a2eaffffba04000000be020000004c89ffffd3ba03000000be020000004c89f7ffd3ba02000000be020000004c89efffd3ba01000000be010000004c89e7ffd34d8b6c24104d85ed0f846102000049837d0800ba020000000f845003000031f64c89efffd34d8b75084d85f60f840901000049837e0800ba030000000f84ec03000031f64c89f7ffd34d8b7e084d85ff746149837f0800ba040000000f84cc04000031f64c89ffffd3498b7f084885ff740dba050000004889dee8e7e9ffff4c89ffba04000000be01000000ffd3498b7f104885ff740dba050000004889dee8c2e9ffffba04000000be020000004c89ffffd3ba03000000be010000004c89f7ffd34d8b7e104d85ff746149837f0800ba040000000f843304000031f64c89ffffd3498b7f084885ff740dba050000004889dee86ee9ffff4c89ffba04000000be01000000ffd3498b7f104885ff740dba050000004889dee849e9ffffba04000000be020000004c89ffffd3ba03000000be020000004c89f7ffd3ba02000000be010000004c89efffd34d8b75104d85f60f840901000049837e0800ba030000000f84a702000031f64c89f7ffd34d8b7e084d85ff746149837f0800ba040000000f846703000031f64c89ffffd3498b7f084885ff740dba050000004889dee8c2e8ffff4c89ffba04000000be01000000ffd3498b7f104885ff740dba050000004889dee89de8ffffba04000000be020000004c89ffffd3ba03000000be010000004c89f7ffd34d8b7e104d85ff746149837f0800ba040000000f84ce02000031f64c89ffffd3498b7f084885ff740dba050000004889dee849e8ffff4c89ffba04000000be01000000ffd3498b7f104885ff740dba050000004889dee824e8ffffba04000000be020000004c89ffffd3ba03000000be020000004c89f7ffd3ba02000000be020000004c89efffd3ba01000000be020000004c89e7ffd331d2be020000004889ef4889d84883c4085b5d415c415d415e415fffe00f1f004883c4085b5d415c415d415e415fc3660f1f84000000000049837c2410000f85b9faffffbe030000004c89e7ffd3ebb00f1f84000000000049837c2410000f856cf5ffffbe030000004c89e7ffd3e960faffff0f1f44000031d248837f1000be030000000f851cf5ffffeb810f1f400049837d10000f85d8f7ffffbe030000004c89efffd3e91afaffff660f1f44000049837d10000f8567faffffbe030000004c89efffd3e9a9fcffff660f1f44000049837d10000f851af5ffffbe030000004c89efffd3e95cf7ffff660f1f44000049837d10000f85a5fcffffbe030000004c89efffd3e9e7feffff660f1f44000049837e10000f85fef4ffffbe030000004c89f7ffd3e9e8f5ffff660f1f44000049837e10000f8581f8ffffbe030000004c89f7ffd3e96bf9ffff660f1f44000049837e10000f853cf7ffffbe030000004c89f7ffd3e926f8ffff660f1f44000049837e10000f85c3f5ffffbe030000004c89f7ffd3e9adf6ffff660f1f44000049837e10000f854efdffffbe030000004c89f7ffd3e938feffff660f1f44000049837e10000f8509fcffffbe030000004c89f7ffd3e9f3fcffff660f1f44000049837e10000f8590faffffbe030000004c89f7ffd3e97afbffff660f1f44000049837e10000f854bf9ffffbe030000004c89f7ffd3e935faffff660f1f44000049837f10000f85c4f9ffffbe030000004c89ffffd3e906faffff660f1f44000049837f10000f852bf9ffffbe030000004c89ffffd3e96df9ffff660f1f44000049837f10000f8527fdffffbe030000004c89ffffd3e969fdffff660f1f44000049837f10000f858efcffffbe030000004c89ffffd3e9d0fcffff660f1f44000049837f10000f85c2fbffffbe030000004c89ffffd3e904fcffff660f1f44000049837f10000f8529fbffffbe030000004c89ffffd3e96bfbffff660f1f44000049837f10000f8529faffffbe030000004c89ffffd3e96bfaffff660f1f44000049837f10000f8590f9ffffbe030000004c89ffffd3e9d2f9ffff660f1f44000049837f10000f853af7ffffbe030000004c89ffffd3e97cf7ffff660f1f44000049837f10000f85a1f6ffffbe030000004c89ffffd3e9e3f6ffff660f1f44000049837f10000f85def2ffffbe030000004c89ffffd3e920f3ffff660f1f44000049837f10000f85b5f5ffffbe030000004c89ffffd3e9f7f5ffff660f1f44000049837f10000f851cf5ffffbe030000004c89ffffd3e95ef5ffff660f1f44000049837f10000f85f7f2ffffbe030000004c89ffffd3e939f3ffff660f1f44000049837f10000f85fcf3ffffbe030000004c89ffffd3e93ef4ffff660f1f44000049837f10000f8563f3ffffbe030000004c89ffffd3e9a5f3ffff0f1f4000662e0f1f8400000000004885ff0f84df040000415741564155415455534889fd4889f34883ec084c8b67084d85e40f845b0200004d8b6c24084d85ed0f84170100004d8b75084d85f6747a4d8b7e084d85ff742c498b7f084885ff7405e808e4ffff498b7f104885ff74084889dee8f7e3ffff498b3fffd34c89ffe8fac3fdff4d8b7e104d85ff742f498b7f084885ff74084889dee8d0e3ffff498b7f104885ff74084889dee8bfe3ffff498b3fffd34c89ffe8c2c3fdff498b3effd34c89f7e8b5c3fdff4d8b75104d85f6747d4d8b7e084d85ff742f498b7f084885ff74084889dee882e3ffff498b7f104885ff74084889dee871e3ffff498b3fffd34c89ffe874c3fdff4d8b7e104d85ff742f498b7f084885ff74084889dee84ae3ffff498b7f104885ff74084889dee839e3ffff498b3fffd34c89ffe83cc3fdff498b3effd34c89f7e82fc3fdff498b7d00ffd34c89efe821c3fdff4d8b6c24104d85ed0f841a0100004d8b75084d85f6747d4d8b7e084d85ff742f498b7f084885ff74084889dee8e0e2ffff498b7f104885ff74084889dee8cfe2ffff498b3fffd34c89ffe8d2c2fdff4d8b7e104d85ff742f498b7f084885ff74084889dee8a8e2ffff498b7f104885ff74084889dee897e2ffff498b3fffd34c89ffe89ac2fdff498b3effd34c89f7e88dc2fdff4d8b75104d85f6747d4d8b7e084d85ff742f498b7f084885ff74084889dee85ae2ffff498b7f104885ff74084889dee849e2ffff498b3fffd34c89ffe84cc2fdff4d8b7e104d85ff742f498b7f084885ff74084889dee822e2ffff498b7f104885ff74084889dee811e2ffff498b3fffd34c89ffe814c2fdff498b3effd34c89f7e807c2fdff498b7d00ffd34c89efe8f9c1fdff498b3c24ffd34c89e7e8ebc1fdff4c8b65104d85e40f84370200004d8b6c24084d85ed0f841a0100004d8b75084d85f6747d4d8b7e084d85ff742f498b7f084885ff74084889dee89de1ffff498b7f104885ff74084889dee88ce1ffff498b3fffd34c89ffe88fc1fdff4d8b7e104d85ff742f498b7f084885ff74084889dee865e1ffff498b7f104885ff74084889dee854e1ffff498b3fffd34c89ffe857c1fdff498b3effd34c89f7e84ac1fdff4d8b75104d85f6747d4d8b7e084d85ff742f498b7f084885ff74084889dee817e1ffff498b7f104885ff74084889dee806e1ffff498b3fffd34c89ffe809c1fdff4d8b7e104d85ff742f498b7f084885ff74084889dee8dfe0ffff498b7f104885ff74084889dee8cee0ffff498b3fffd34c89ffe8d1c0fdff498b3effd34c89f7e8c4c0fdff498b7d00ffd34c89efe8b6c0fdff4d8b6c24104d85ed0f84f30000004d8b75084d85f6747d4d8b7e084d85ff742f498b7f084885ff74084889dee875e0ffff498b7f104885ff74084889dee864e0ffff498b3fffd34c89ffe867c0fdff4d8b7e104d85ff742f498b7f084885ff74084889dee83de0ffff498b7f104885ff74084889dee82ce0ffff498b3fffd34c89ffe82fc0fdff498b3effd34c89f7e822c0fdff4d8b75104d85f674564d8b7e084d85ff742f498b7f084885ff74084889dee8efdfffff498b7f104885ff74084889dee8dedfffff498b3fffd34c89ffe8e1bffdff498b7e104885ff74084889dee8c0dfffff498b3effd34c89f7e8c3bffdff498b7d00ffd34c89efe8b5bffdff498b3c24ffd34c89e7e8a7bffdff488b7d00ffd34883c4084889ef5b5d415c415d415e415fe98bbffdff0f1f00f3c3660f1f440000415741564989d7415541544d89c655534889cb4883ec18488b294c8b22897c240848893424be0a0000004989ed4c89e74d29e54c89eae8d53cfeff4885c074304883c001498907488b134839d00f87950100004939d474304c89e04883c4185b5d415c415d415e415fc3660f1f4400004c3b242474054c39f57411488d45ffebbf0f1f800000000031c0ebcf4c8b34244c89ea4c89e64531e44c89f7e8dfe1fbff4c89f0492b074889ea48010348634424084d8937488b3348894424084889c74829f24489e00f05483d00f0ffff761348c7c2d0fffffff7d864890231c0e978ffffff4885c078a0480303be0a0000004889034d8b374889c24989c54c29f24c89f7e8093cfeff4885c00f85c50000004c39ed0f85e8000000488b0c244889e8488b7c24084829c84c8d3440498d46034d85f64c0f48f04889e849c1fe024901ce4c29f04c89334c89f6488904244889c24489e00f05483d00f0ffff4989c576420f1f800000000048c7c0d0ffffff4489e9f7d964890831c0e9ddfeffff66904839cd75584c8933488b14244c89f6488b7c240831c00f05483d00f0ffff4989c577c54d85ed0f88dcfeffff4c8b234c89eabe0a0000004c89e7e8513bfeff41c604240a4c89e948030b4885c048890b74ae4d8b374d89f4e963feffff4889cd4d8b27e993feffffb9484c4a00ba77000000bef84b4a00bf524c4a00e86ff6fbff4c89ed4d89f4e96ffeffff0f1f40005531ff4889e54157415641554154534883ec48e8684f02004889c7488945a0488b0592a328004839c70f8423020000bf00200000bb02000000e81205000083f801be00000800bf284c4a004d19e44981e400e2ffff498d8424102000004981c4002000004829c489d84c8d6c240f4983e5f04d01ec4c8965b84c8965c00f05483d00f0ffff488945a80f87c600000083f8ff0f84c90000004c8d75b84c8d7dc04d89e04c89ee89c731db4c89f24c89f9e83bfdffff4885c04989c674670f1f00488d75c8ba0a0000004c89f7e89fcafcff4989c7488b45c84939c60f84070200004989c64c89f841803e2d0f8437010000488b55c083c3014429fb01c34c39f2762248c7c0f0ffffff64488b080f1f00490fbe06f64441012074a54983c6014c39f275ec48637da8b8030000000f0585db7e2e891d0f8d2800488b45a048890574a22800488d65d889d85b415c415d415e415f5dc348c7c2d0fffffff7d8648902bb020000004c8965b84c8965c0be00000800bf5d4c4a0089d80f05483d00f0ffff488945980f86e300000048c7c2d0fffffff7d8648902bb02000000be00000800bf684c4a0089d80f05483d00f0ffff488945980f871501000083f8ff89c78945a80f842601000031db4c8d7dc04c8d75b8eb260f1f00bf764c4a004889c6b909000000f3a68b7da80f97c00f92c229d00fbec083f80183d3004d89e04c89f94c89f24c89eee8e4fbffff4885c075c748637d98b8030000000f05e912ffffff0f1f80000000004983c601488d75c8ba0a0000004c89f7e833c9fcff488b55c84939d60f849e0000004989d6e99ffeffff8b05f08b280085c00f88cffdffff488d65d85b415c415d415e415f5dc383f8ff89c78945a80f841bffffff31db4c8d7dc04c8d75b8eb2c0f1f8000000000bf944c4a00b9030000004889c6f3a60f856cffffff0fbe40038b7da883e83083f80a83d3004d89e04c89f94c89f24c89eee82afbffff4885c075c5e941ffffff89c248c7c0d0ffffffbb01000000f7da648910e94bfeffff31dbe935feffffbb01000000e93afeffff0f1f8000000000415455bf804c4a00534883ec10e8de7f02004885c0747d4889c54531e40f1f004889efe8a88202004885c074538078120475ed488d7013bf944c4a00b903000000f3a675db488d5816488d742408ba0a0000004889dfe815c8fcff4883f8ff74bf488b4424084839c374b58038014889ef4183d400e8568202004885c075ae904889efe8e88102004489e04883c4105b5d415cc3e867fcffffebf00f1f44000055534883ec784889e7e882010000e89dd7ffff4863d08b5c2468488b6c24204883fa01761b83fb01770ceb140f1f40004883fa01760ad1eb48d1ea83fb0177f089d8480fafc54883fa0176100f1f400048d1ea48d1e84883fa0175f44883c4785b5dc30f1f00662e0f1f84000000000055534883ec784889e7e812010000e82dd7ffff4863d08b5c2468488b6c24284883fa01761b83fb01770ceb140f1f40004883fa01760ad1eb48d1ea83fb0177f089d8480fafc54883fa0176100f1f400048d1ea48d1e84883fa0175f44883c4785b5dc3662e0f1f8400000000000f1f008b054aab2800ba6400000085c00f44c2c3662e0f1f8400000000000f1f4400004885f6744055534883ec08488b2e4885ed742c4889f34889efbe2f000000e8ed300200488d50014885c0480f45ea48892d7b892800488b03488905798928004883c4085b5df3c3660f1f840000000000b8080000000f05483d01f0ffff0f830d1c0000c3662e0f1f84000000000066904989cab8190000000f05483d01f0ffff0f83ea1b0000c3660f1f840000000000b8630000000f05483d01f0ffff0f83cd1b0000c3662e0f1f840000000000669064488b04259806000048c1e802ba000001004883e801483dffff0000771964488b14259806000048c1ea02b8000004004885d2480f44d031c04839fa0f93c0c34152524d31d2ba02000000be8000000039d0750890b8ca0000000f0589d0870785c075f05a415ac30f1f8400000000005652c70700000000be81000000ba01000000b8ca0000000f055a5ec30f1f4000648b0425080300004189c34183cb024139c37417f064440fb11c250803000075e74183e3bb4183fb0a7401c34883ec086448c7042530060000fffffffff064830c25080300001064488b3c2500030000e83bd7bbfff4662e0f1f840000000000f7c7020000007527648b0425080300004189c34183e3fdf064440fb11c250803000075ec4489d883e00c83f8047401c364488b3c2500000000b8ca0000004d31d24881c708030000be800000000f05648b042508030000ebce0f1f8000000000554889e541554154534889f34883ec084863561083faff7437488b064989fc4c8d2cd0e8589a05004c89e749894500e8cc9905008b531085d27e11488b0b4863f2488b3cf148397cf1f874244889430883c2013b5314895310741b4883c40831c05b415c415d5dc30f1f840000000000483b430875d64883c408b8050000005b415c415d5dc3662e0f1f840000000000554889e54883ec2085f648897de048c745e800000000c745f0ffffffff8975f47e33488d75e0bf30294400e8909f05008b45f083f8017e18488b55e04863c848837ccaf80183d800c9c3660f1f44000083f8ff75f331c0c9c30f1f800000000085f60f8e49020000415741568d46ff415541544189d75553488d44c7084889fb4881ec180100004c8d74245048894424084c89742410e9bc0100000f1f440000488b7c24604885ff0f84c5010000803f000f84bc0100004889bc2480000000e81c0efeff488b7c247048898424880000004885ff0f84de01000048c7842490000000a44c4a0048c78424980000000100000041bd090000004889bc24a000000041bc08000000bd07000000e8d00dfeff48898424a8000000488b44247841b80600000048c74424200500000048c744241804000000ba03000000488b3b4839c70f824a0100004829c7b9984c4a004889d0488d742460ba1000000048c1e0044c8944242848898c048000000031c948c784048800000003000000e8c1f50000488b542418488d4c24604c8b4424284829c148c1e2044889841480000000488b44242048898c148800000048c1e00448c78404800000007a604b0048c784048800000001000000662e0f1f840000000000488b3b488b7424104c89c048c1e00431c9ba1000000048c7840480000000a04c4a0048c78404880000000300000048c1e504e839f500004c89f1488db4248000000049c1e4044829c14489ea4489ff4889842c8000000048898c2c880000004883c3084ac7842480000000ca544b004ac784248800000002000000e8e081020048395c24087449488b3b488d542438488d74246031c9e84512000085c00f852dfeffff41bd0300000041bc02000000bd010000004531c0e944ffffff0f1f40004829f8b99c4c4a004889c7e9aefeffff4881c4180100005b5d415c415d415e415ff3c30f1f440000488b442438488b004885c0745348c7842490000000a44c4a0048c78424980000000100000041bd08000000488944247841bc07000000bd0600000041b80500000048c74424200400000048c744241803000000ba02000000e925feffff0f1f0041bd0400000041bc03000000bd0200000041b801000000e99cfeffff662e0f1f84000000000066904883ec08bfa64c4a00e80200000066904154554889fd53bfbf4c4a00b9050000004889ee41bc78224a00f3a60f97c00f92c229d00fbec083f80119db83c30290488b0579a528004889eabec54c4a0089df488b084885c9490f44cc31c0e8aeeafcffebdc662e0f1f8400000000006690f3c30f1f4000662e0f1f8400000000004885f6b8c0d16c00740e488d04f648c1e004480528b26c00488378080074394885ff742cc70001000000488d14f64889782048c1e204488b92c0b16c0048c74010702d440048895008c3660f1f440000f3c3660f1f4400004885ffc7000100000075c7488b3df6a32800ebbe0f1f4000488b0748893d26a428004885c00f84e1010000488b0d6698280041574531db4156488b35509828004531ff415541544531ed555331ed8b156c7128004c8b0d4d8328004531c048894c24c80fb70d3283280048897424d8488b351aa42800448b350ba428004c8b25eca32800488b1d1da428004c8b15bea3280066894c24e848897424e08b0d36a42800488b35ff702800895424ecc64424ff0031d2c64424fe00c64424fd00894c24f848897424f031c9c64424fc00c64424eb0031f6c64424ea00c64424d700660f1f8400000000004883e8034883f81e7726ff24c5e04c4a000f1f8000000000488b4708c64424fc0148894424e0662e0f1f8400000000004883c710488b074885c075c44584c00f85140200004584ff74074489354fa328004584ed74074c89252ba328004084ed740748891d57a328004584db74074c8915f3a22800807c24d700740c488b4424c848890528972800807c24ea00740c488b4424d84889050d972800807c24eb00740c0fb74424e866890506822800807c24fc00740c488b4424e0488905e7a22800807c24fd00740a8b4424ec890506702800807c24fe00740a8b4424f889050da32800807c24ff00740c488b4424f0488905ca6f280083fa0f751f85f6c705e9a22800010000000f95c285c90f95c009d00fb6c08905be6f28005b5d415c415d415e415ff3c3662e0f1f840000000000488b4708c64424ea0148894424d8e9edfeffff0f1f440000488b4708c64424ff0148894424f0e9d5feffff0f1f4400008b4708c64424fe01baffffffffc74424f801000000c64424fd01894424ece9adfeffff0f1f4400000fb74708c64424eb0166894424e8e995feffff0f1f440000448b770841bf01000000e981feffff90488b4708c64424d70148894424c8e96dfeffff0f1f4400004c8b570841bb01000000e959feffff660f1f840000000000334f0883ca08e945feffff0f1f440000334f0883ca04e935feffff0f1f44000033770883ca02e925feffff0f1f440000488b5f08bd01000000e912feffff66904c8b670841bd01000000e901feffff9033770883ca01e9f5fdffff0f1f440000488b47084885c04c0f45c8b801000000440f45c0e9d7fdffff4c890d60802800e9e0fdffff90662e0f1f8400000000004155415455534883ec18e8d115030048890552842800488b05fba02800488905ac832800488b0525a12800668905ae8328000f3148c1e22089c0bf4c514a004809d048890597a02800e812b8fcffba65694b004885c0480f44c28038000f95c048833dd0a02800000fb6c08905d7a028000f845e040000be65694b004531c94531c031c9ba010000004889f7e86fdc02004885c04889c30f8438040000488b3d94a0280031c90fb777384889f848034720488983a00200004883c0104885f66689b3b00200007527eb50660f1f44000083fa010f849706000083fa070f84d30b00004883c1014883c0384839f1742b8b50f083fa0275d9488b104883c1014883c03848895310488b50e048c1ea044839f1668993b202000075d54889bb40030000482b3b4801bb480300004801bb500300004889fa4889f94803531048893b4885d2488953100f84e3020000488b02488d7b404885c00f848400000041b8ffffff6f41bbfffdff6f41bcfffeff6f49bd00faff7f0300000048bda0f1ff7f0300000041ba3100000041b921000070eb194c89ce4829c64889f0488914c74883c210488b024885c074374883f82176ea4c89c64829c64883fe0f76d58d3400d1fe83fefc0f86370600004489d029f0488914c74883c210488b024885c075cb66904885c90f84a0010000488b43604885c00f84ef0800004889cf48037808488b1041b87000000048c74360009f6c00b86000000041b93000000041ba2000000041bb10000000488915a46b2800ba5000000048893da06b2800bf40000000488b73584885f60f84840800004c8b26498dab009f6c004d89a3009f6c004989cb4c035e084c895d0848896b58488b73684885f60f8443080000488b2e4d8d9a009f6c004989aa009f6c004989ca4c0356084d8953084c895b68488b73704885f60f84050800004c8b1e4d8d91009f6c004d8999009f6c004989cb4c035e084d8999089f6c004c895370488b73784885f60f84c70700004c8b164c8d8f009f6c004c8997009f6c004889cf48037e08498979084c894b78488bb3f80000004885f60f848c0700004c8b0e488dba009f6c004c898a009f6c004889ca48035608488957084889bbf8000000488b93c80100004885d20f8451070000488b3a488db0009f6c004889b8009f6c004889c848034208488946084889b3c8010000488b83980200004885c07423488b30498d90009f6c004989b0009f6c0048034808498988089f6c0048899398020000488b83e00000004885c0740b48837808070f852e09000048837b78007412488b838800000048837808180f856a090000488b93300100004885d27428488b4208a8028983d80300007407488993c0000000a8047407488993f0000000a8080f853b050000488b83700100004885c07421f605c89c280040488b700889f089b3d40300000f8553060000a8010f85f60400004883bb2801000000740b48c783b8000000000000004889dfe869d70200488b8388030000488d5328808b1403000004c783cc03000001000000c7400801000000488910488b83b00000004885c07450488b5368488b680848036a084889efe8f302feff4c8d60014c89e7e8a7a6fdff4885c00f84760800004c8b6b384c89e24889ee4889c7e89c8cfeff4889c1498945008b05179c280085c0740448894b0831f64889dfe88dd7020048c705b27b28000100000048891d339c2800bf98514a00bb65694b00e87cb3fcff4889c7e844ab0200488b05759c2800bfa8514a00488905419c2800e85cb3fcff4885c0bfb4514a00480f44c38038000f94c00fb6c08905e19b2800e83cb3fcff4885c0bfc0514a00480f44c38038000f95c00fb6c08905a99b2800e81cb3fcff4885c0bfd0514a00480f44c38038000f94c00fb6c08905d59b2800e8fcb2fcff4885c04889054a9b28008b15f46828007405803800751783fa0119c0f7d083e0094805d84d4a00488905269b280085d20f8516030000488b05579b28004885c07410803800750b48c705429b28000000000031c00fa281fb47656e7589058e8f2800400f94c681f96e74656c0f94c021f081fa696e6549400f94c64020c60f85b203000081fb41757468400f94c681f963414d440f94c021f081fa656e7469400f94c64020c60f85f1030000448b05498f28004531d231ff4531c941bb030000008b15398f2800f6c601740a810d568f28000040000080e680740a810d478f280000800000833d048f2800067e21b80700000031c90fa28905078f2800891d058f2800890d038f28008915018f280041f7c0000000080f85b00100004084f60f85c7020000893dfd8e2800bf00524a0044890ded8e280044891dae8e2800e8b9b1fcff4885c04889c3744641bc1000000031ed4531ed488d74240831c931d24889dfe8f5b5fcff483dfe0000007722488b5424084839da74184983fd020f85d10000004809c54885ed7406892d7b9a2800488b3dfc9928004885ff740ce86a00feff488905b3992800488b0d049a28004885c97444488b35309a28004885f6743831d2813951e57464488d41387521e9000200000f1f8400000000004889c14883c0388178c851e574640f84e40100004883c2014839f275e34883c4185b5d415c415dc30f1f84000000000048833b00488b10750348891348035018483b9348030000720748899348030000f640f4010f8448f9ffff483b93500300000f823bf9ffff48899350030000e92ff9ffff0f1f4400000fb6324080fe2e74094084f60f852bffffff4489e148d3e04809c54084f60f840effffff4183ec084983c501488d5a014183fcf80f85c8feffffe9f3feffff660f1f8400000000004c89de4829c64883fe0b0f86f00000004c89e64829c64883fe0a0f877df9ffff48f7d8488d04c74a891428e96df9ffff31c90f01d089c283e20683fa060f853dfeffff41f7c0000000107407830d3d8d2800408b15138d2800f6c220740a810d288d2800000c000025e00000003de00000000f84390300004181e000100000740a810d058d280080000000f605f08c2800010f84e8fdffff810dee8c280000010000e9d9fdffff660f1f840000000000bb20504a000f1f004889dfe810e0000031f64889dfe82692feff488d58014881fb4c514a0072e131f6bfe2514a00e82d72020085c00f84affcffffbff2514a00e8dbdf0000e9a0fcffff660f1f44000048f7d8488d04c748891428e98df8ffff488b837001000048898300010000e9f7faffff0f1f44000048899300010000e9b9faffff0f1f40008b41048905ff7628004883c4185b5d415c415dc30f1f400083ff3f0f844902000083ff3c0f847b02000083ff45742783ff46742283ff3d0f85720300004183fa040f870afdffff8125e38b2800eff7ffffe9fbfcffff4183fa010f87f1fcffffebe5b8010000000fa24189c18915ba8b280089c741c1e90889c2c1ef04c1ea0c4183e10f83e70f81e2f00000004183f90f891d8d8b2800890d8b8b280089057d8b28000f842d01000083e00f4183f9064189c20f84fb01000031f641bb010000004189c8e924fcffffb8010000000fa24189c189c74189c841c1e908c1ef04891d3f8b28004183e10f83e70f890d368b28004183f90f8915308b280089051e8b28000f84f500000083e00f4189c2b8000000800fa23d000000800f870d01000031f641bb02000000e9c0fbffff81e616f7ffff0f84a1f9ffff31c0bf78524a00e8930003008b83d4030000e98af9ffff4989c0e9caf8ffff4989c04889d0e98cf8ffff4989c04889d04889fae94bf8ffff4989c04889d04889fa4c89cfe90df8ffff4989c04889d04889fa4c89cf4d89d1e9c9f7ffff4989c04889d04889fa4c89cf4d89d14d89dae985f7ffff41b860000000b850000000ba40000000bf3000000041b92000000041ba100000004531dbe92ff7ffff4189c183e00f01d741c1e9144189c231f6450fb6c941bb010000004189c84183c10fe9f0faffff4189c189c283e00f41c1e914c1ea0c4189c281e2f0000000450fb6c9b80000008001d74183c10f0fa23d00000080761fb8010000800fa28905068a2800891d048a2800890d028a28008915008a28004183f9150f84f200000031f641bb02000000448b05c3892800e983faffff4183fa020f86d3fdffffe9d8fafffff7c2000001000f84bbfcffff81e2000002008b05c78928000f85d800000080cc108905b8892800e99bfcffff4183fa030f8698fdffffe99dfaffff01d78d47e683f8437768ff24c5f04d4a008b058d8928004189c80d000002000d3002000041bb01000000890574892800e904faffff8b05698928004189c8ebdf830d5d8928000441bb01000000448b0520892800e9e0f9ffff448b0514892800830d3d8928003341bb01000000e9c7f9ffff448b05fb88280041bb0100000041f7c0000000100f84adf9ffffebd2660f1f4400008d47a083f81f0f8702ffffff830dfd8828001031f641bb02000000448b05be882800e97ef9ffff80cc308905e0882800e9c3fbffffb9b8524a00ba3d000000be54514a00bf61514a00e8f2dafbffb9d0524a00ba79000000be76514a00bf18524a00e8d9dafbff83ff470f849efcffff4183fa020f878ff9ffff83ff560f847cfcffffe981f9ffffbf02000000be89514a0031c0e857ff0200bf7f000000e8cdabffffb9d0524a00ba81000000be76514a00bf40524a00e884dafbff0f1f400041574156b800000000415541544989f455534889fd4889d34883ec184885c048890c247407bf40b16c00ffd04889efe86c0d03004885c00f848e010000488b5008488b88400300004989142449894c2408803a000f8442020000488b50704883b898020000004c8b5a08488b5068488b7208488b90900000004889742408448b7a080f84470100008b90ec02000085d20f8426020000488bb00003000083ea014531ed4c8d7496040f1f8400000000008b0e85c90f84a6000000488bb80803000089ca488d3c97eb260f1f80000000004c8b4a104d85c9755d4c39c5746066904883c70483c101f647fc01757389ca488d1452498d14d3440fb74a06664585c9750748837a080074d7440fb642044183e00f4180f80674c84c8b52084d89d04c03004c39c572b9664585c975a34c39c5740c4c8b4a104d01c84c39c573a24d85ed74064d3b55087697443b3a4c0f47ea4883c70483c101f647fc0174900f1f004883c6044939f60f8543ffffff4885db7403488903488b1c244885db74034c892b4d85ed0f84f6000000418b5500bb0100000048035424084989542410498b55084803104989542418b8000000004885c07407bf40b16c00ffd04883c41889d85b5d415c415d415e415fc331dbebda488b50604885d2740f488b52088b5204488d1452498d34d34531ed4939f37216e979ffffff0f1f40004983c3184939f30f8368ffffff410fb64b0489cac0ea0483ea0180fa0177e183e10f80f90674d96641837b0600498b530875324885d274c84889d14803084839cd72bd740c498b7b104801f94839cd73af4d85ed74064939550873a4453b3b4d0f47ebeb9b4889d14803084839cd7290498b7b104885ff75d04839cd7582ebd10f1f84000000000049c74424100000000049c744241800000000bb01000000e90dfffffff68014030000030f85b1fdffff488b15685e2800488b1249891424e99efdffff4531ede9a9feffff6690662e0f1f8400000000000fb787b0020000482b37488d14c50000000048c1e0064829d04883e838eb05904883e8384883f8c874264889c2480397a0020000833a0175e74889f1482b4a10483b4a2873dab801000000c30f1f400031c0c3662e0f1f8400000000000f1f008b050a91280085c07406c30f1f44000053e8aa69020089c3e89369020039c3ba01000000740a8915cc5d28005bc36690e8ab69020089c3e89469020031d239c30f95c2ebe1662e0f1f8400000000009055534881ecd8010000488d7c2440e82d69020085c0488dbc24c20000000f858d0000004531c031c00fbe0f8d51d080fa09775c0fbe5701488d770183e9308d7ad04080ff097720660f1f8400000000008d0c894883c6018d4c4ad00fbe168d7ad04080ff0976e9c1e0084183c001488d7e0109c880fa2e75104183f80375a94881c4d80100005b5dc34183f80374f0b9030000004881c4d80100004429c1c1e103d3e05b5dc3662e0f1f84000000000031f631c0bfe5524a00e8c2b0ffff85c089c57837ba400000004889e689c7e80db1ffff89ef4889c3e8936902004885db7e194883fb3fb83f0000004889e7480f4fd8c6041c00e928ffffffb8ffffffffe97affffff662e0f1f84000000000090b80000000041544989d44885c0554889f55389fb744a8b05e4bcbbff85c07540c705d673280001000000891d888f280048892d898f28004c892502832800e85dfeffffe8e8edffff4c89e24889ee89dfe8dbe3ffff5b5d415ce9a2b2000066900fb73d41772800c7058f73280000000000663b3dfc6d280074b0e8e1b20000eba90f1f440000662e0f1f8400000000004883ec08e8179afcff0f1f800000000048f7d864890425d0ffffff4883c8ffc3554889e541574156415541544989f653be2f0000004889fb4883ec4848895590894db0e8a8bffbff4885c00f84b3020000488d7801be2f0000004531e4e88ebffbff4885c0c645b800740a807801000f8514020000be2f0000004c89f7e86ebffbff4885c0741d488d7801be2f000000e85bbffbff4885c0740a807801000f85eb020000803b2f755c807b012f7556807b0200755048c7c0b0ffffff64488b00488b00488bb0b00000004889f7488975a8e83af4fdff488d4821488b75a84889c24883e1f04829cc488d5c240f4883e3f04889dfe88723feffb92f2f0000c640020066890841803e2f755e41807e012f755741807e0200755048c7c0b0ffffff64488b00488b00488bb0b00000004889f7488975a8e8d6f3fdff488d4821488b75a84889c24883e1f04829cc4c8d74240f4983e6f04c89f7e82323feffba2f2f0000c6400200668910448b45b0488d4dc8488d55c04c89f64889df4531ffe84d13000085c089459c741e488b45904c89388b459c488d65d85b415c415d415e415f5dc30f1f440000488b5dc8488d145b48c1e204488d7a10488955b0e80f97fdff4885c04989c70f84240300004c8b75c0488b55b0488d781031f64889184c897008e8d9bdfbff4885db749e807db8000f85c8010000498d57384c8d6bff4531c031f6eb600f1f00448962e8488955b043694c0654e01f00004c8945a04863c94889cf48894da8e8a496fdff488b55b04885c0488b75b8488942d80f8429020000488b4da84c8b45a04883c6014883c2304801c14983c06848894ab04839de0f8425ffffff4939f5488952f8488975b875964b8d446d004183cc0148c1e0044589640720e901ffffff4c8d60014889de4c89e24829da488d421f4883e0f04829c4488d7c240f4883e7f0c6041700e82d7cfeff4c89e74889c3e852f2fdff488d50014883c01f4c89e64883e0f04829c4488d7c240f4883e7f0e8027cfeff4989c70fb6003c2c75140f1f8400000000004983c701410fb6073c2c74f484c04d8d6f01751bc645b8004531e4e965fdffff3c2c498d55010f84040200004989d5410fb6450084c075e8c645b8004531e490bac0284b00bef1414a004c89ffe86ebcfbff85c00f856e010000c645b801eb044983c501410fb645003c2c74f384c00f8410fdffff498d4501eb150f1f44000080fa2c488d70010f84630100004889f00fb61084d275e94d89ef4989c5eba1488d50014c89f64c29f2488d421f4883e0f04829c4488d7c240f4883e7f0c6041700e82a7bfeff4989c6e9e6fcffff498d4f3848c745b8000000004531edeb2290488b55a84983c5014883c130488345b8684801c2488951b04939dd0f8399fdffff488b45b8488949f8bac0284b00bead544a0048894db0498b7c0618e89fbbfbff85c0488b4db075044183cc08488b5dc8488d43ff4c39e80f8644feffff4c8b75c0488b45b8448961e848894db04169540654e01f00004863d24889d7488955a8e87a94fdff488b4db04885c0488941d80f8569ffffff4c89ee49c7c4d0ffffff4885f664458b2c2474304c8d34764889f349c1e6044d01fe0f1f8000000000498b7ee04983ee30e8d397fdff4883eb0175ed488b5dc84c8b75c04c89ffe8bd97fdffeb4c0f1f00bac0284b00be00534a004c89ffe8e6bafbff85c0b802000000440f44e0e97afeffff660f1f440000c600004889f04d89ef4989c5e93ffeffff49c7c4d0ffffff4c8b75c064458b2c244889de4c89f74531ffe8a11200006445892c24c7459c03000000e96afcffff41c64500004989d5e9fbfdffff0f1f004883ffff0f8436010000415741564989ff415541544d89ce55534989d44889f54883ec28488b0748894c24184883e8014d85c948894424100f84b90100004885c949c701000000000f8482010000488b11488b442410488d044048c1e0044c01f8488950104c894018498b470848833800488b5828740d48c1cb116448331c25300000004885ed0f84c30000004c8b6d004d85ed0f84b6000000488b4424184885c00f8436010000488338000f842c010000498d47104889442408eb1f0f1f00488b55004c39ea743d498b4f08486349484801d14939cc722d4989d54889dfe8dc3b0300498b7f084531c06a004c89e16a004889ea488b7424184d89f1ffd383f8045a5974ba488b74241848833e000f84c2000000488b5c2410488d145b48c1e204498b54171048891689c24883c42889d05b5d415c415d415e415fc30f1f00ba0800000089d0c30f1f8400000000004889dfe8683b0300488b442410498b7f08498d77104d89f1488d044048c1e0044c01f848837810016a0019c04531c031c9f7d031d283c00250ffd385c05e5f7524498d4f2431d2660f1f840000000000c701000000004883c2014883c130483954241073eb48837c24180089c20f8543ffffffe964ffffff0f1f84000000000031d2e97afeffff89c2e94effffffb950534a00ba4a000000be07534a00bf28534a00e839cefbffb950534a00ba2c000000be07534a00bf0f534a00e820cefbff415541545553488d5f404889fd4883ec084c8b67084c8b2f0f1f840000000000f643e00174224889efe80295fdff4883c4084c89ee4c89e75b5d415c415de92d1000000f1f440000488b7bd04885ff740be8da94fdfff643e00175ca4883c330ebbe662e0f1f8400000000000f1f4000488b36488b3fe915b8fbff0f1f44000055534889f54889fb4883ec08488b36488b3fe8f9b7fbff85c07515488b7508488b7b084883c4085b5de9e2b7fbff66904883c4085b5dc3660f1f840000000000554889f04889e54157415641554154534881ec980000004885f64889bd78ffffff480f44c74885c94889758848899550ffffff48898d58ffffff4c898548ffffff4c894d800f8482090000488d7db0ba504b4400bed8c66c0048894db0488945b848c745c00000000048c745c800000000e84abcffff4885c00f84cf000000488b10488b9d48ffffff4c8b6a104c892b488b004c8b7818488b45804c89384b8d047f4d8d67ff498d0487498d5cc598eb73e88a8800004885c04889030f84f9090000488b5018488953284c8b70204c897338488b402848c7433000000000488943404d85f6743549c1ce11644c333425300000004c89f7e8f43803004889df41ffd6488b43304885c0741164483304253000000048c1c011488943304883eb684983ec014983fcff0f849a0800008b43108d500185c089531075e1488b7b084885ff0f8569ffffff4c8b7338eb944883ec40488b8d58ffffff488d44240f4883e0f04889cf4889084989c748898570ffffffe899ebfdff4883ec4049894708488b8550ffffff488d5c240f41c747140000000041c747100000000049c747180000000049c74720000000004883e3f049c74728000000004889c7488903e84eebfdff48894308488d4328c7431400000000c743100000000048c743180000000048c743200000000048c743280000000049895f2848898568ffffff4531f64531edc74590ffffff7fc745a0ffffff7f4c8975980f1f44000044396da07c420f8462030000488b1d0d8528004885db74304d8b27eb0c0f1f00488b5b304885db741f488b334c89e7e884b5fbff85c0745f79e6488b5b204885db75e60f1f4400004d8b7f284d85ff0f8433030000458b6f14eba50f1f44000045396e140f8f8e0100000f847201000044396da00f8f9b010000750e8b4d908b45a839c10f4ec1894590488b5b284885db74b5458b6f144c8b630841803c242d756641807c240100755e48837d88000f849d020000458b77104403731444036b104c8b6588448975a8488b45984885c00f84520100004989c6eb120f1f4400004d8b76284d85f60f843b010000498b364c89e7e8c0b4fbff85c075e4e95fffffff0f1f8000000000458b7710440373144c89e7488bb578ffffff44036b10448975a8e891b4fbff85c0749e488b45884885c0740f4889c64c89e7e879b4fbff85c0748644396da07f120f853bffffff8b4da8394d900f8e2fffffff4c8bb570ffffff660f1f440000498b364c89e7e845b4fbff85c00f84f50000004d8b76284d85f675e44883ec404c89e7488d54240f4883e2f04c892248899560ffffffe855e9fdff488b9560ffffff488942088b45a844896a1448895a184c897a2048c7422800000000894210488b8568ffffff488910488d422848898568ffffffe9a8feffff8b45a8413946100f8e81feffff660f1f84000000000044396da08b45a849895e184d897e2045896e14418946100f8e65feffff8b45a844896da0894590e966feffff0f1f40004883ec404c89e7488d54240f4883e2f04989d64c8922e8b5e8fdff498946088b45a845896e1449895e184d897e2041894610488b45984c89759849894628e905feffff0f1f440000453b6e147c1a0f850efeffff8b45a8413b46100f8d01feffff0f1f8000000000488bbd70ffffff49895e184d897e20660f1f840000000000488b47184885c07430488b57208b70108b4814488b42184885c074170f1f4000488b5220037010034814488b42184885c075ed897714894f10488b7f284885ff75be488b45984885c00f8493fdffff8b7da0448b4590eb1a0f1f84000000000075074439c1440f4cc1488b40284885c0742c488b7018488b48208b51140356108b4910034e1439d78950148948107ed0488b40284189c889d74885c075d4897da044894590e938fdffff458b77104403731444036b104c8ba578ffffff448975a8e95bfdffff8b4590413947100f8c91fcffff4d8b7f284d85ff0f85cdfcffff4c8b75984d85f60f84bd040000498b46284885c07410418b5e143958140f8d850200004989c6488b8558ffffff4885c0480f448550ffffff488945a0498b46204885c00f849a0300004531ffeb0566904d89ef488b40204d8d6f014885c075f04b8d446d00498d7c850048c1e703e8bd8afdff4885c04889c30f8477030000488b45804d85ed4c89280f841f0500004b8d047f48c745900000000048c7459800000000498d04874c8d24c34c89f84d89f74989c6eb7d662e0f1f840000000000498b4720488b004989442418488b45804c39280f84b00100004b8d446d00498d448500488b44c3184989442420498b471841c74424100100000049c744246000000000488b7818803f2f0f84e00000004c89e6e8481700004983ec684d85f64d8b7f20498d46ff4d89f50f849b0200004989c64d85f67588488b7da0e8dfe5fdff4885c048894598488943180f857affffff4d89f731c94983c7014c8b658048895da84b8d147f4189cd498d1497498b04244c8d34d34c89fbeb530f1f440000418b4e108d51ff85d24189561075374d8b7e404d85ff741e49c1cf11644c333c25300000004c89ffe8a33203004c89f741ffd7498b3ee8d5830000498b042449c706000000004983c6684883c3014839c30f83e7000000498b3e4885ff75a149837e400074e0e8d2b1fbff0f1f440000e8ab8100004885c00f8454ffffff488b084989042449894c2408488b481849894c2428488b4820488b402849c7442430000000004885c949894c243849894424400f84e1feffff4889c848c1c8116448330425300000004889c7488945a8e8fd3103004c89e7488b45a8ffd085c00f859b020000498b4424304885c00f84a6feffff64483304253000000048c1c0114989442430e98ffeffff498b3fe88fe4fdff4885c04889459049894424200f854afeffffe9aafeffff0f8578fdffff418b5e103958104c0f4cf0e968fdffff488b5da844896da04531e44889df31dbe8fd8bfdff488b7d98e8f48bfdff488b7d90e8eb8bfdff488b45808b4da048c70000000000488b8548ffffff85c948c700000000000f8415010000488b4588894d904885c0480f448578ffffff4989c6488b8558ffffff4885c04889c6480f44b550ffffff4889f748897598e831e4fdff4c89f74c8d78014c8975a8e821e4fdff4883c001498d7c0720488945a0e8cf87fdff8b4d904885c04989c64189cd744a488d7820488b75984c89fa488938e85e13feff488b55a0488b75a84889c7e8ae6dfeff49895e1049894608ba504b44004d896618bed8c66c004c89f7e810b0ffff4885c00f8439010000488d65d84489e85b415c415d415e415f5dc3488b45804c8b20488b8548ffffff31c9488918e926ffffff31ffe84687fdff4885c04889c30f85a5010000488b458031db4531e4b90300000048c70000000000488b8548ffffff48c70000000000e9ebfeffffb901000000e9e1feffff4531edeb8c488d7db0488955b0bed8c66c00ba504b4400488945b848c745c00000000048c745c800000000e8c8b2ffff4885c00f857ef6ffff4883ec40488b8d50ffffff488d44240f4883e0f04889cf4889c348890848898570ffffffe8e6e2fdff488943084889d8c74314000000004883c028c743100000000048c743180000000048c743200000000048c74328000000004989df48898568ffffffe991f7ffff488b8548ffffff31db4531e4b90100000048c70000000000488b458048c70000000000e917feffff4c89f7e8d689fdffe9bafeffff4d8d7dfe89c14b8d047f498d048748c744c34000000000e93cfcffff4983c401836b10014b8d0464498d0484498d5cc500eb41836b100175334c8b6b404d85ed741e49c1cd11644c332c25300000004c89efe8fa2e03004889df41ffd5488b3be82c80000048c703000000004883c3684983c4014d39e77618488b3b4885ff75b248837b400074e4e95afcffff0f1f400041bd01000000e91efeffff488b45804531e448c70000000000e924feffff4531e4e91cfeffff662e0f1f840000000000488b05d17b2800c30f1f840000000000488b05d17b2800c30f1f84000000000055534889fb4883ec08488b3f4885ff743f836b10017532488b6b404885ed741d48c1cd116448332c25300000004889efe83b2e03004889dfffd5488b3be86e7f000048c703000000004883c4085b5dc348837b400074f2e881adfbff0f1f4000415455b800000000534889f54889fb4883ec204885c00f84a4000000be80644400bfd0c66c00ffd0488d54240c4889ee4889dfe8e874000085c075148b44240c4883c4205b5d415cc30f1f8000000000488d7c2410ba404b4400bed8d26c0048896c2410e877b0ffff4885c0747a488b004c8b60084d85e44c0f44e5488d7c2410ba404b4400bed8d26c0048895c2410e84bb0ffff4885c07446488b00488b78084885ff480f44fb4c89e6e840abfbff4883c4205b5d415cc30f1f80000000008b059a6e280085c00f855affffffe83d0c0000830d866e280002e949ffffff904889dfebc30f1f004989eceb8f0f1f0041574156b800000000415541544989ce55534889fd4889f34989d44589c54883ec284885c00f84f5010000be80644400bfd0c66c00ffd0be0100000031c0833d1779280000740cf00fb135217a2800750beb230fb135167a2800741a488d3d0d7a28004881ec80000000e851cfffff4881c4800000004c89e24589e84c89f14889de4889efe85675000083f80289c2744f833dc478280000740bf0ff0dcf792800750aeb22ff0dc5792800741a488d3dbc7928004881ec80000000e830cfffff4881c48000000089d04883c4285b5d415c415d415e415fc30f1f84000000000048833d80792800000f8452010000488d7c2410ba404b4400bed8d26c0048895c2410e8e9aeffff4885c00f84b0010000488b00488b40084889442408488d7c2410ba404b4400bed8d26c0048896c2410e8bbaeffff4885c00f8492010000488b004c8b78084183e50174604889de4889efe8aaa9fbff85c00f84220100004d85ff74134889de4c89ffe892a9fbff85c00f840a0100004c8b6c24084d85ed742b4c89ee4889efe875a9fbff85c00f84ed0000004d85ff74134c89ee4c89ffe85da9fbff85c00f84d5000000488b4c24084889da4d89f14d89e04c89fe4889efe86cf1ffff89c2833d8f77280000740bf0ff0d9a782800750aeb22ff0d90782800741a488d3d877828004881ec80000000e8fbcdffff4881c48000000085d289d00f85c3feffff31c049833c24000f94c04883c4285b5d415c415d415e415fc3908b054a6c280085c00f8509feffffe8ed090000830d366c280002e9f8fdffff90833d1577280000740bf0ff0d20782800750aeb22ff0d16782800741a488d3d0d7828004881ec80000000e881cdffff4881c480000000b801000000e949feffff833dd576280000740bf0ff0de0772800750aeb22ff0dd6772800741a488d3dcd7728004881ec80000000e841cdffff4881c480000000b8ffffffffe909feffff48c744240800000000e94efeffff66904531ffe96dfeffff0f1f840000000000415631c041554989fd41544989f455be0100000053833d6076280000740cf00fb1356a772800750beb230fb1355f772800741a488d3d567728004881ec80000000e89accffff4881c4800000004b8d04644d89e6498d0484498d5cc598eb4190836b10017532488b6b404885ed741d48c1cd116448332c25300000004889efe8bc2903004889dfffd5488b3be8ef7a000048c703000000004983ee014883eb684d85f6741b488b3b4885ff75b348837b400074e4e8f4a8fbff0f1f80000000004c89e64c89efe815780000833daa75280000740bf0ff0db5762800750aeb22ff0dab762800741a488d3da27628004881ec80000000e816ccffff4881c48000000031c05b5d415c415d415ec30f1f4000415641554189f541544989fc55bdc8d26c0053eb240f1f004d8b3424488b334c89f7e8e9a6fbff85c07430488d6b204883c33085c0480f49eb488b5d004885db75d64c8965005b5d415c415d415ec390488b334c89f7e8b5a6fbff85c07512488b7308498b7c2408e8a3a6fbff85c0740f488d6b28488b5b284885db75d2ebc28b431041394424107c2174154585ed74b55b4c89e75d415c415d415ee90f83fdff8b431441394424147de1488b43204889df4989442420488b43304989442430488b432849894424284c8965005b5d415c415d415ee9d682fdff660f1f440000554889e541574156415541544989f7534989d54889fb4883ec58480fbe07488b35d3cb0600f6444601200f84f90200004883c301480fbe03f6444601204989c275ee4584d2488b3dbccb06004889da7511eb210f1f440000f64446012075294c89d28b04874c8d52018802480fbe420184c075e4488d65d85b415c415d415e415f5dc30f1f440000490fbe420141c602004c8d62024d89e2f6444601200f849f0200000f1f4400004983c201490fbe02f6444601204889c275ee84d2480fbec24d89e67512ebad660f1f840000000000f64446012075198b04874983c6014983c201418846ff490fbe0284c075e2eb84498d460141c60600488945b80f1f40004983c201490fbe12f6445601204889d075ee84d24c8b5db87515eb270f1f4000480fbed0f6445601200f85b90100004983c3014983c201418843ff410fb60284c075dd4d8d530141c60300c745b001000000410fb6460184c00f8415ffffff3c2fb8000000004c0f44e84c89d0482b45b84883f803488945900f8eb2010000498d7afcba04000000be34554a00894da04c8955a8e867a4fbff83f8014c8b55a88b4da04d19db49f7d34183e30383f8014519f641f7d64183e6034c89e04889df894d9c4829d84c895da04c8955a84889c648894588e816f70100488d501f4889de4883e2f04829d44889c2488d7c240f4883e7f0c6040700e84363feff488d7dc0ba404b4400bed8d26c00488945c0e80ca9ffff4885c04c8b55a84c8b5da08b4d9c0f854cfeffff4929dabf01000000894da04b8d7415384c01dee8a088fdff4885c00f842bfeffff488d7838488b55884889de488945a8488938e88008feff4c8b55a8488b55b84c89e64889c7498942084c29e2e86608feff4c8b55a88b4db04d85ed41894a108b4da04989421841894a1474164c89ea4c89fe4889c74c8955b0e83908feff4c8b55b0488b5590488b75b84889c74c8955b0e82108feff4585f64c8b55b07407c740ff2e736f00be010000004c89d7e844fcffffe993fdffff0f1f8000000000488d75c041c603004c89d7ba0a000000894d9c4c895da04c8955a8e8e8bb00004c8b55a84c3955c08945b04c8b5da08b4d9c742f85c07e2b4d8d5301e929feffff4989c2e911fdffff41bb0300000041be03000000e978feffff0fb65202e96ffdffffc745b001000000ebcc6690662e0f1f84000000000055be0100000031c04889e54157415641554154534883ec28833d0d71280000740cf00fb1352b662800750beb230fb13520662800741a488d3d176628004881ec80000000e847c7ffff4881c48000000048833d08722800007445833dcb70280000740bf0ff0dea652800750aeb22ff0de0652800741a488d3dd76528004881ec80000000e837c7ffff4881c480000000488d65d85b415c415d415e415f5dc3488b1daa7128004885db0f84ba0200004889dfe859d7fdff488d503f4889de4c8d78214883e2f04829d44889c2488d4c240f4883e1f04889cf4989cde8a006feffba01000000be96604b004889c7e88e06feffba20000000be80594a004889c7e87c06feff31f631ffe88394ffff4885c04889c30f84100200004889c7e8efd6fdff488945c84883c001488945c0be3a0000004c89efe8b6a1fbff4885c04989c60f841102000041bc0100000031d2eb034989c64883c20131c0498d7e014939d6be3a0000000f95c04101c4e880a1fbff4885c04c89f275d8418d4424ff4c8b75c0418d5424014963f448984863d24c0faff048c1e2044801f2488975b84c01fa4a8d3c32e8277afdff4885c0488945c00f8499010000488b75b848c7059370280000000000410fb655004883c60148c1e60480fa3a488d3c3075130f1f4400004983c501410fb6550080fa3a74f284d24d8d7d017529b940554a00baf4010000bed5534a00bfee534a00e851b6fbff903c3a498d77010f84220100004989f7410fb60784c075e94c8b75c04531e4669080fa2f49893e741c4885db0f848a010000488b55c84889dee83305feff488d7801c6002f4c89eee824a0fbff8078ff2f4889c274074883c001c6022f4889c2492b16483b15df6f2800498956087607488915d26f2800c60000410fb6174183c401488d78014d89fd80fa3a75110f1f004983c501410fb6550080fa3a74f284d274434d8d7d01eb130f1f8400000000003c3a498d770174184989f7410fb60784c075ed4983c610e954ffffff0f1f400041c607004983c610410fb655004989f7e93bffffff4c8b75c04d63e449c1e4044c89f04c01e048c7000000000048c74008000000004889df4c8935416f2800e84c7cfdffe931fdffff48c745c00100000048c745c800000000e9effdffff41c607004989f7410fb65500e9d8feffff41be60594a00ebbe4531f6be01000000ba20000000e92dfeffff4883ec3048b82f7573722f6c696248c745c001000000488d4c240f48c745c80000000041bf200000004883e1f048890148b82f7838365f36342d4989cd4889410848b86c696e75782d676e4889411048b8752f67636f6e760048894118e962fdffffb940554a00bafa010000bed5534a00bfe2534a00e87cb4fbff6690662e0f1f840000000000554889e54157415641554154534883ec5848c7c0d0ffffff648b0089458ce8cd65000085c00f8480020000488b053e6e28004885c00f84ba040000488b0848c745a0100000004c8b3d5bc406004885c948894da80f845b010000660f1f440000488b4008488b75a84889c2488945984883c02c4883e0f04829c4488d5c240f4883e3f04889dfe80503feffba0e000000be48594a004889c7e8f302feff4889dfbe25144a00e8d696fcff4885c04889c348c745b80000000048c745c0000000000f84c90000008b0080cc80a81089030f85a90000000f1f00488d75c0488d7db84889d9ba0a000000e833cc01004885c04989c50f88850000004c8b65b8be230000004c89e7e8f69dfbff4885c00f8485020000c60000eb0c0f1f8400000000004983c401490fbe342441f64477012075ef4c39e0743e4084f674394d89e5eb0c490fbec641f644470120750e4983c501450fb675004584f675e64c89e84c29e04883f8050f84a60100004883f8060f845c0100008b03a8100f845affffff488b7db8e8f979fdff4889dfe82191fcff488b4da04889c8480305d36c28004883c11048894da0488b184885db48895da80f85abfeffffbb20b76c0041bcc0b96c00488b03488d7dc0ba404b4400bed8d26c00488945c0e8f6a1ffff4885c00f84f70200004883c3384939dc75d4bb60554a000f1f800000000031f64889dfe89e65feff4c8d600131f64c89e7e89065feff4c8b3d316c28004c8d70014989c54d85ff741e498b374889dfe8b29cfbff85c0746b0f88780100004d8b7f304d85ff75e24c89f24829da488d7a10488955a8e88c75fdff4885c04989c7488b55a8743d498d7f104889de4929dce8815bfeff4989074c01e0ba404b440049894708bed8d26c004c89ffe8e59dffff4885c074054c3b3874084c89ffe8e378fdff41807d01004c89f30f854dffffff8b4d8c48c7c0d0ffffff648908488d65d85b415c415d415e415f5dc3660f1f840000000000ba06000000be01544a004c89e7e8ce9bfbff85c00f858afeffff8b0d705f2800488b55984c89ef488b75a88d410189055c5f2800e8a7f5ffff8b03e966feffffba05000000befb534a004c89e7e88e9bfbff85c00f854afeffff490fbec641f644470120741e662e0f1f8400000000004983c501490fbe450041f6444701204989c675ec4584f64c89ea7517e913feffff0f1f800000000041f64447012075494889ca488b3d3ec10600488d4a018b04878841ff480fbe420184c075dbe9e2fdffff660f1f4400004b8d542cff803a0a0f857efdffffc60200e976fdffff66904d8b7f20e965feffffc60100480fbe4901488d42024889459041f6444f01200f84140100000f1f004883c001480fbe1041f6445701204889d675ed4c8b75904084f6480fbed67510e977fdffff0f1f0041f644570120751e488b0da9c006004983c6014883c0018b1491418856ff480fbe1084d275da4c3975900f8444fdffff41c606004c8b250d6a28004d85e47420498b34244c89efe8949afbff85c00f8420fdffff787a4d8b6424304d85e475e0498d56014c29ea488d7a1048895580e86c73fdff4885c04989c6488b55800f84f0fcffff498d7e104c89eee86059feff488b5590498906bed8d26c004c89f74c29ea4801d0ba404b440049894608e8bd9bffff4885c074094c3b300f84b3fcffff4c89f7e8b776fdff8b03e9a6fcffff4d8b642420e961ffffff31f64889dfe8ecf2ffffe9fafcffff0fb672024989c6e9fafeffffe816f7ffff488b056f692800e935fbffff662e0f1f8400000000004889fa4889f0bf18544a00b9100000004889d6f3a60f8405010000bf28544a00b9100000004889d6f3a60f8460010000bf42544a00b9120000004889d6f3a60f845b010000bf54544a00b9120000004889d6f3a60f8456010000bf76544a00b9100000004889d6f3a60f8451010000bf86544a00b9100000004889d6f3a60f844c010000bfa6544a00b9100000004889d6f3a60f8447010000bfb6544a00b9100000004889d6f3a60f8442010000bfd7544a00b9110000004889d6f3a60f843d010000bfe8544a00b9110000004889d6f3a60f8438010000bf06554a00b9170000004889d6f3a60f8433010000bf1d554a00b9170000004889d6f3a60f842e0100004883ec08b9e0594a00ba47000000bea0594a00bfb0594a00e841aefbff9031d248c1e20548c740380000000048c7404000000000488b8a085a4a0048c7000000000048c7400800000000c740580000000048894828488b8a105a4a00488948300fbe8a185a4a008948480fbe8a195a4a0089484c0fbe8a1a5a4a004881c2005a4a000fbe521b894850895054c390ba01000000eb8b660f1f840000000000ba02000000e978ffffff660f1f440000ba03000000e968ffffff660f1f440000ba04000000e958ffffff660f1f440000ba05000000e948ffffff660f1f440000ba06000000e938ffffff660f1f440000ba07000000e928ffffff660f1f440000ba08000000e918ffffff660f1f440000ba09000000e908ffffff660f1f440000ba0a000000e9f8feffff660f1f440000ba0b000000e9e8feffff660f1f440000400fb6c64084f6baffffffff0f48c2c341574156488d4768415541544531ff55534989d54889f34989ca4d89c34883ec48f64610014889442418488d46304c894c2428448ba424800000004889442420751b48837f68004c8bbf90000000740d49c1cf11644c333c25300000004585e4742f4d85db0f857b030000488b432048c7000000000031c0f64310010f84ae0200004883c4485b5d415c415d415e415fc34d85db0f84d4020000498b3b448b8424880000004c8b73084585c00f84b6000000488b43208b084189c84183e0070f84a30000004d85db0f85df020000498b75004963d04c39d60f83b40200004183f8037f5c4c8d4e014c8d42014d894d000fb6364088741004498b75004939f20f868a0200004983f80474354c8d4e014883c2024d894d000fb6364288740004498b75004939f20f86660200004883fa03750e488d5601498955000fb6168850070fb650074883c7048857fc0fb650068857fd0fb650058857fe0fb650048857ff8320f80f1f440000498b75004c89f04c89d14829f84829f14839c8480f4ec8488d41034885c9480f48c848c1f9024885c90f847d01000031c00f1f80000000008b14860fca8914874883c0014839c175ef48c1e1024c8d240f4801ce4c39d6498975000f8427010000498d5424044939d619c083c0014939d619ed83e5fe83c5074d85db0f851601000083431401f64310010f858f0100004939fc777b8b94248800000085d20f846a01000084c00f8462010000498b45004c89d24829c24883fa030f8f9e01000031d24939c2762190488d7001488b4b20498975000fb60088441104498b45004883c2014939c277e0488b4b208b0183e0f809c2b80700000089114883c4485b5d415c415d415e415fc30f1f8000000000488b034c89ff4c895c24104c895424084889442438e80e1703008b8424880000004531c04c89e1506a004c8b4c2438488b742430488d542448488b7c242841ffd75983f8045e4c8b5424084c8b5c24107452488b5424384939d474074929d44d29650085c00f85fc000000488b3be97dfeffff0f1f44000031c04d85dbbd040000000f84eafeffff4d89234883c44889e85b5d415c415d415e415fc34989fce9a0feffff83fd0574c283fd070f94c0e9d1feffff0f1f40004c89ffe8681603008b8424880000004531c031c931d25041544c8b4c2438488b742430488b7c242841ffd74159415a4883c4485b5d415c415d415e415fc3488b3be927fdffff4883c44889e85b5d415c415d415e415fc34c8923e96efeffff4c89c24883fa030f87a4fdffff83e1f809ca8910b807000000e9d5fcffffb9c05f4a00ba2f020000be805b4a00bf945b4a00e84aa9fbffb9c05f4a00ba09030000be805b4a00bfa85b4a00e831a9fbff89c5e93bffffffb9c05f4a00ba9f010000be805b4a00bf945b4a00e811a9fbff9041574156488d4768415541544989d655534531e44889f54989ca4d89c74883ec488b56104d89cd48890424488d46308b9c2480000000f6c2014889442408751b48837f68004c8ba790000000740d49c1cc11644c3324253000000085db74714d85ff0f8599040000488b452048c7000000000031c0f645100174154883c4485b5d415c415d415e415fc3660f1f4400004c89e7e8081503008b8424880000004d89e94531c031c931d25053488b742418488b7c241041ffd4415841594883c4485b5d415c415d415e415fc30f1f4400004d85ff0f8496030000498b0f488b45088bbc24880000004c8d5c24304d85ed48c7442430000000004889442418b8000000004c0f44d885ff0f84c2000000488b75208b1e89df83e7070f84b10000004d85ff0f8512040000498b064c63cf4939c20f866d03000083ff030f8fb9030000488d78014d8d410149893e0fb6004c894424104288440e04498b064939c20f86900300004983f804743a4c8d4001498d79024d89060fb6004c8b4424104288440604498b064939c20f86190300004883ff037510488d780149893e0fb600884607498b06bf04000000807e04800f860f03000083e2020f852b0300004929f94c01c8498906b806000000e9acfeffff90498b064c896424104c8b6424184c896c24284d89dd4d89fb0f1f8400000000004c89e74d89d04889c64929c04829cf4889cb4c39c7490f4ff84c8d47034885ff490f48f848c1ff024885ff0f84d301000083e2020f850601000031d24d85ed7526e9d9000000662e0f1f8400000000004883c20189034883c6044883c3044839d70f849d0100008b060fc885c079e149893631c041bf060000004d85db0f85c501000083451401f64510010f85c70100004839cb0f87de0000004489ff8b94248800000085d2745384c0744f498b064c89d24829c24883fa030f8f6b02000031d24939c27628662e0f1f840000000000488d7001488b4d204989360fb60088441104498b064883c2014939c277e2488b4d208b0183e0f809c2891189f8e989fdffff660f1f4400004883c20189034883c6044883c3044839d70f84e50000008b060fc885c079e14889cb31c041bf06000000e943ffffff660f1f8400000000004d85ed0f843f01000031f6eb160f1f0089134883c3044883c6014839f70f849d0000008b14b00fca85d279e44983450001ebe30f1f440000488b7c2410488b45004c895c24204c895424184889442438e81b1203008b8c24880000004531c0516a004889d94c8b4c2438488b742418488d542448488b7c2410488b442420ffd05983f8045e4c8b5424184c8b5c2420745f488b5424384839da74064829d349291e85c00f855a010000488b4d008b5510498b06e908feffff0f1f840000000000488d34b84939f24989367466488d53044939d419c083c0014939d44519ff4183e7fe4183c707e94ffeffff0f1f4400004183ff0574b34489ff83ff070f94c0e959feffff0f1f40004489f849891be938fcffff0f1f4400004c8b6c242848895d004489ff488b54243049015500e92bfeffff31c041bf04000000e9fbfdffff488b4d00e964fcffff31d2eb1b0f1f40004883c20189034883c6044883c3044839d70f845dffffff8b060fc885c079e1e973feffff4c89cf4883ff030f87f8fcffff83e3f8b80700000009df893ee9b9fbffff0fb646074883c1048841fc0fb646068841fd0fb646058841fe0fb646048841ff8b1e498b0683e3f88b5510891ee9dffcffff4c89c7ebae4c89cfe9a8fcffffb9a05f4a00ba9f010000be805b4a00bf945b4a00e8f6a3fbffb9a05f4a00ba09030000be805b4a00bfa85b4a00e8dda3fbff89c7e9effeffffb9a05f4a00ba2f020000be805b4a00bf945b4a00e8bda3fbff0f1f00662e0f1f84000000000041574156488d4768415541544989cf55534989d44889f34883ec48f64610014889442418488d46304c8904244c894c2428448bac2480000000488944242048c744241000000000752548837f6800488b87900000004889442410741248c1c81164483304253000000048894424104585ed743548833c24000f85a5030000488b432048c7000000000031c0f64310010f84bb0200004883c4485b5d415c415d415e415fc30f1f400048833c24000f84e5020000488b04244c8b308bbc24880000004c8b6b0885ff0f84bb000000488b43208b1089d783e7070f84aa00000048833c24000f85fb0200004d8b04244863f74d39f80f83d002000083ff037f5d498d78014c8d4e0149893c24410fb63840887c3004498b3c244939ff0f86a60200004983f90474354c8d47014883c6024d8904240fb63f42887c0804498b3c244939ff0f86820200004883fe03750e488d5701498914240fb6178850070fb650044983c604418856fc0fb65005418856fd0fb65006418856fe0fb65007418856ff8320f8660f1f4400004c89f84c896c24084d89e74c89ed4d89f44989c60f1f4000498b374889e84c89f24c29e04c89e74829f24839d0480f4ed0488d42034885d2480f48d04883e2fc488d0416498907e8fcf0fdff4d3b374989c50f8420010000488d50044839d519c083c0014839d519ed83e5fe83c50748833c24000f851001000083431401f64310010f85a80100004d39ec727b4d89fc4d89f78b94248800000085d20f847601000084c00f846e010000498b04244c89fa4829c24883fa030f8fb701000031d24939c77620488d7001488b4b20498934240fb60088441104498b04244883c2014939c777e0488b4b208b0183e0f809c2b80700000089114883c4485b5d415c415d415e415fc366904c8b642410488b034c89e74889442438e89b0d03008b8424880000004531c04c89e9506a004c8b4c2438488b742430488d542448488b7c242841ffd483f804595e745d488b5424384c39ea74064929d54d292f85c00f852b0100004c8b23488b6c2408e9a8feffff0f1f84000000000031c048833c2400bd040000000f84f0feffff488b04244c89284883c44889e85b5d415c415d415e415fc3660f1f44000083fd0574b64d89fc4d89f783fd070f94c0e9d5feffff662e0f1f840000000000488b5c24104889dfe8e30c03008b8424880000004531c031c931d25041554c8b4c2438488b742430488b7c2428ffd3415841594883c4485b5d415c415d415e415fc3660f1f4400004c8b33e91afdffff4883c44889e85b5d415c415d415e415fc30f1f80000000004d89fc4c892b4d89f7e955feffff4c89ce4883fe030f8788fdffff83e2f809f28910b807000000e9b1fcffffb9605f4a00ba2f020000be805b4a00bf945b4a00e8b39ffbffb9605f4a00ba09030000be805b4a00bfa85b4a00e89a9ffbff4d89fc89c54d89f7e918ffffffb9605f4a00ba9f010000be805b4a00bf945b4a00e8749ffbff0f1f400041574156488d4768415541544989ca55534531e44889f54989d74d89c64883ec488b4e104d89cd48890424488d46308b9c2480000000f6c1014889442408751b48837f68004c8ba790000000740d49c1cc11644c3324253000000085db74714d85f60f8565040000488b452048c7000000000031c0f645100174154883c4485b5d415c415d415e415fc3660f1f4400004c89e7e8680b03008b8424880000004d89e94531c031c931d25053488b742418488b7c241041ffd4415841594883c4485b5d415c415d415e415fc30f1f4400004d85f60f8499030000498b16488b45088bbc24880000004c8d5c24304d85ed48c7442430000000004889442410b8000000004c0f44d885ff0f84aa000000488b75208b3e4189f94183e1070f84970000004d85f60f85bc030000498b074d63c14939c20f86450300004183f9037f594c8d4801498d58014d890f0fb6004288440604498b074939c20f861d0300004883fb0474344c8d48014983c0024d890f0fb60088441e04498b074939c20f86fc0200004983f80375104c8d40014d89070fb600884607498b07807e07800f86f902000083e1020f8515030000b806000000e9c6feffff0f1f00498b074c896c24284d89dd4d89f34c8b7424104c896424184d89d40f1f4400004c89f64c89e74889d34829c74829d64839fe480f4ff7488d7e034885f6480f48f748c1fe024885f60f84ae01000083e1020f85e900000031ff4d85ed7521e9cc0000000f1f4400004883c701890b4883c0044883c3044839fe0f847d0100008b0885c979e34889d331c0c7442410060000004d85db0f85ce01000083451401f64510010f85cc0100004839d30f87c60000004d89e28b94248800000085d2744984c07445498b074c89d24829c24883fa030f8f9502000031d24939c2761e488d7001488b4d204989370fb60088441104498b074883c2014939c277e2488b4d208b0183e0f809c289118b442410e9b1fdffff660f1f4400004883c701890b4883c0044883c3044839fe0f84cd0000008b0885c979e3e94bffffff660f1f4400004d85ed0f844601000031c9eb160f1f00893b4883c3044883c1014839ce0f84950000008b3c8885ff79e64983450001ebe50f1f8000000000488b7c2418488b45004c895c24204889442438e8b80803008b9424880000004531c04889d9526a004c8b4c2438488b742418488d542448488b7c2410488b442428ffd05983f8045e4c8b5c24207469488b5424384839da74064829d349291f85c00f8581010000488b55008b4d10498b07e932feffff662e0f1f840000000000488d04b04939c449890774564883c0044939c4723b488d43044939c60f832d01000031c0c744241005000000e969feffff0f1f8000000000837c24100574a84d89e2837c2410070f94c0e96efeffff90b801000000c744241007000000e938feffff31c0c744241004000000e929feffff49891b8b442410e94efcffff4c8b6c242848895d004d89e2488b54243049015500e926feffff31ffeb1c0f1f4400004883c701890b4883c0044883c3044839fe0f844dffffff8b0885c979e3e9cbfdffff488b5500e961fcffff4989d84983f8030f8710fdffff83e7f8b8070000004109f8448906e9e0fbffff0fb646044883c2048842fc0fb646058842fd0fb646068842fe0fb646078842ff8b3e498b0783e7f88b4d10893ee9eefcffffb9205f4a00ba9f010000be805b4a00bf945b4a00e88a9afbffb9205f4a00ba2f020000be805b4a00bf945b4a00e8719afbffb980604a00ba92020000bebc5b4a00bfcb5b4a00e8589afbff4d89e289442410e9cefeffffb9205f4a00ba09030000be805b4a00bfa85b4a00e8339afbff0f1f0041574156488d4768415541544989cc55534531ed4889f54989d74d89c24883ec488b4e104889442408488d46304c890c248b9c2480000000f6c1014889442410751b48837f68004c8baf90000000740d49c1cd11644c332c253000000085db74674d85d20f85d2020000488b45204531f648c70000000000f645100174124883c4484489f05b5d415c415d415e415fc34c89efe8280603008b8424880000004531c031c931d250534c8b4c2410488b742420488b7c241841ffd55e4189c65febbd0f1f80000000004d85d20f8462020000498b3a48833c24004c8b5d08488d542430b8000000004c896c241848c7442430000000004d89dd480f45c24989c390498b174939d40f8419020000488d47044939c50f82af01000083e1020f84460100004d85db7471488d4a014889fb41be04000000eb25662e0f1f84000000000089334889c34939cc7464488d43044883c1014939c50f82750100000fb671ff4889ca4084f679d94983030141be06000000ebd20f1f4400004883c2018948fc4939d40f8468010000488d48044939cd0f826b0100004889c80fb60a488d58fc84c979d50f1f44000041be060000004d85d24989170f854e01000083451401f64510010f85480100004839df0f83adfeffff488b7c2418488b45004c895424284c895c24204889442438e8d20403008bbc24880000004531c04889d9576a004c8b4c2410488b742420488d542448488b7c2418488b442428ffd05a83f804594c8b5c24204c8b5424280f84b2000000488b5424384839da74154829d3488d53034885db480f48da48c1fb0249291f85c00f8500010000488b7d008b4d10e99ffeffff0f1f80000000004d85db751beb49904883c2018948fc4939d47474488d48044939cd727b4889c80fb60a488d58fc84c979dde910ffffff0f1f8400000000004883c2018948fc4939d47444488d48044939cd724b4889c80fb60a488d58fc84c979dde9e0feffff4889fb0f1f44000041be05000000e9d3feffff0f1f4400004183fe050f8594fdffffe966ffffff904889c341be04000000e9b0feffff66904889c3ebcb0f1f0049891ae96efdffff488b342448895d00488b442430480106e959fdffff4889fb41be04000000e97bfeffff488b7d00e998fdffffb9e05e4a00ba9f010000be805b4a00bf945b4a00e8db96fbff4189c6e921fdffff0f1f00415741564889f8415541544989d255534889f54889fe4989cc4883ec78448b751048897c24284883c7684c89042448897c2418488d7d304c894c241041f6c6018b9c24b000000048c74424080000000048897c2420752548837e6800488b80900000004889442408741248c1c811644833042530000000488944240885db747848833c24000f854f060000488b452048c7000000000031c0f645100174124883c4785b5d415c415d415e415fc30f1f004c8b7c24084c89ffe8a30203008b8424b80000004531c031c931d250534c8b4c2420488b742430488b7c242841ffd75d415c4883c4785b5d415c415d415e415fc30f1f800000000048833c24000f84aa030000488b04244c8b1848837c2410008b9c24b8000000488d542458b8000000004c8b7d0848c744245800000000480f45c285db48894424300f85b4020000498b024489f24d89de4c8b5c24300f1f0083e20248894424604c89742468895424304c89f341bd04000000660f1f4400004939c4746b488d48044939cc0f82ce0100004939df0f86d50100008b1083fa7f0f868a000000c1ea0781fa001c00000f84a30000004d85db0f8412010000f64510080f85a00000008b74243085f60f84fc0000004883c0044983030141bd060000004939c4488944246075990f1f400048833c24004989020f85a802000083451401f64510010f85830100004939de0f82cb0000004585ed0f85820100004c8b75008b5510498b02e933ffffff0f1f00488d4b0148894c24688813488b442460488b5c24684883c0044889442460e92dffffff0f1f44000048894c24604889c8e91bffffff0f1f004883ec084d89e04889ee4153488b7c2438498b124c8d4c2478488d4c24704c895c24504c89542448e8eb3f00004189c55f4183fd064158488b442460488b5c24684c8b5424384c8b5c24400f840fffffff4183fd050f85bdfeffffe928ffffff0f1f84000000000041bd06000000e915ffffff0f1f4400004c8b742408488b45004c895424384c895c24304c89f74889442468e8700003008b8424b80000004531c04889d9506a004c8b4c2420488b742430488d542478488b7c242841ffd65a83f804594c8b5c24304c8b5424387448488b5424684839da0f846f0100004829d34189c548c1e30249291ae9bdfeffff0f1f84000000000041bd07000000e985feffff0f1f44000041bd05000000e975feffff0f1f4400004183fd050f858bfeffffe98ffeffff488b74241048895d00488b4424584801068b8424b800000085c074504183fd07754a498b024c89e24829c24883fa030f8f5803000031d24939c476230f1f440000488d7001488b4d204989320fb60088441104498b024883c2014939c477e2488b4d208b0183e0f809c289114489e8e9abfcffff488b5d208b3389f083e0070f843bfdffff48833c24000f852f030000498b1283f8044c895c246848895424600f87000300000fb64b0448984883f801884c245074240fb64b054883f802884c245174160fb64b064883f803884c245274080fb64b07884c24534889d14829c14883c1044939cc734e4939d44d8922761c4801c34883c2014883c30148895424600fb642ff8843034939d475e7b807000000e908fcffff488b04244889184489e8e9f9fbffff4189c5e958fdffff4c8b5d00e954fcffff4d39fb0f83f3000000488d7a01488d480148897c2460440fb6024939fc44884404500f86090100004883f9030f87ff0000004c8d4202488d78024c89442460440fb64a014d39c444884c0c50761c4883ff037716488d4a03bf0400000048894c24600fb64a02884c24538b4c24504c8d6c24504c896c246083f97f0f8685000000c1e90781f9001c00000f84a900000048837c2430000f847e01000041f6c6084c89e90f859b0000004183e6027412488b4424304883c10448894c2460488300014c39e90f84500100008b3389f083e0074c29e94839c10f8e600100004829c183e6f84c8b5c24684889c8490302448b75104989028933e990fbffffb805000000e9e2faffff498d4301488944246841880b488b442460488d48044c39e948894c246075a5448b7510498b02e95bfbffff4889cfe931ffffff498d4d0448894c2460eb8d498d443d004c895424484c895c24404883ec084889ee4889442440ff7424384989c0488b7c2438488d4c24704c8d4c2478e8403c0000415983f806415a488b4c24604c8b5c24404c8b5424480f8413ffffff4c39e90f852bffffff83f8070f8544010000488d410448394424380f841c0100008b13488b4424384829c889d183e2f883e1074889c64829ce4863ca4901324839c80f8edc0000004883f8040f87b900000009d08903488b4424384c39e80f86dcfdffff4c29e831d24883c2010fb64c144f4839c2884c130375eee9c0fdffff0f1f4000b806000000e9c4f9ffffb9a05e4a00ba9f010000be805b4a00bf945b4a00e8dd8ffbffb960604a00babe010000bee15b4a00bf505c4a00e8c48ffbffb9a05e4a00ba09030000be805b4a00bfa85b4a00e8ab8ffbffb960604a00ba80010000bee15b4a00bf205c4a00e8928ffbffb9a05e4a00ba2f020000be805b4a00bf945b4a00e8798ffbffb960604a00badb010000bee15b4a00bfc85c4a00e8608ffbffb960604a00bada010000bee15b4a00bfa05c4a00e8478ffbffb960604a00bad0010000bee15b4a00bf785c4a00e82e8ffbff85c00f8431feffffe9eff8ffff90415741564889f8415541544989f655534889cd4881ec98000000448b5e1048897c24404883c768488954244848897c2430488d7e304c8944240841f6c3014c894c24288b9c24d000000048897c243848c74424100000000075284889c7488b809000000048837f68004889442410741248c1c811644833042530000000488944241085db746d48837c2408000f85ae0b0000498b462048c7000000000031c041f6461001741a4881c4980000005b5d415c415d415e415fc30f1f8400000000004c8b7c24104c89ffe8e3fa02008b8424d80000004531c031c931d250534c8b4c2438488b742448488b7c244041ffd75e5febb348837c2408000f8466070000488b4424084c8b1048837c2428008b8c24d8000000488d542468b8000000004d8b6e0848c744246800000000480f45c285c948894424180f84c1000000498b5e208b0383e0070f84b200000048837c2408000f851b0b0000488b7c244883f8044c89942488000000488b1748899424800000000f87e10a00000fb64b0448984883f801884c247074240fb64b054883f802884c247174160fb64b064883f803884c247274080fb64b07884c24734889d14829c14883c1044839cd0f83ae060000488b7c24484839d548892f76274883c2014801d84883c50148899424800000000fb64aff4883c2014883c0018848034839d575e4b807000000e9a9feffff488b4424484c8b204489d84c8b5c24480f1f0083e0024c89a424800000004c89942488000000894424204c89d34c89e041bf04000000eb2d0f1f00488d43014889842488000000880b488b842480000000488b9c24880000004883c00448898424800000004839c50f8435010000488d50044839d50f82180400004939dd0f86a70300008b0883f97f76b085c90f88c8000000f7c100f8ffff0f8404040000f7c10000ffff0f8408040000f7c10000e0ff0f840c04000089ce81e6000000fc83fe0119d283e2fc83ea0483fe014819f64883c606488d3c334939fd0f824a03000089c8881389ca83e03f4801b42488000000c1ea0683c8804883fe02884433ff744d83e23f83ca80885433fe89cac1ea0c4883fe03743883e23f83ca80885433fd89cac1ea124883fe04742383e23f83ca80885433fc89cac1ea184883fe05740e83e23fc1e91e83ca8088530189ca0813e9f3feffff0f1f44000048837c2418000f841c03000041f64610087575448b4424204585c00f8407030000488b7c24184883c00441bf060000004889842480000000488307014839c50f85cefeffff0f1f0048837c2408004989030f85a6040000418346140141f64610010f85990300004939da0f82880000004585ff0f85970300004d8b16418b46104d8b23e930feffff4c895424584883ec084989e8ff742420488b7c24504c89f6498b134c8d8c2498000000488d8c24900000004c895c2460e8ab3600004189c741594183ff06415a488b842480000000488b9c24880000004c8b5c24504c8b5424580f842bffffff4183ff050f8518feffffe951ffffff90488b7c2410498b064c895c24504c895424584889442470e844f702008bbc24d80000004531c04889d9576a004c8b4c2438488b742448488d942480000000488b7c2440488b442420ffd08944243083f8045e5f4c8b5c24500f84580100004c8b7c24704939df0f845c0100004c8b542458418b5e10b8040000004d89234c89a424800000004c8994248800000083e3024c89d6eb2d0f1f00488d56014889942488000000880e488bbc24800000004c8d67044c89a42480000000488bb424880000004c39e50f84d4020000498d5424044839d50f822a0100004939f70f8621020000418b0c2483f97f76ad85c90f88f5000000f7c100f8ffff0f84e8020000f7c10000ffff0f84cd020000f7c10000e0ff0f84df02000089cf81e7000000fc83ff0119d283e2fc83ea0483ff014819ff4883c7064c8d043e4d39c70f82c2010000881689ca4801bc248800000083e23f83ca8088543eff89cac1ea064883ff02744d83e23f83ca8088543efe89cac1ea0c4883ff03743883e23f83ca8088543efd89cac1ea124883ff04742383e23f83ca8088543efc89cac1ea184883ff05740e83e23fc1e91e83ca8088560189ca0816e9f0feffff4183ff05b800000000440f44f844897c2420448b7c2420e9a6fdffff660f1f44000041bf05000000e96dfdffff0f1f44000048837c241800741341f64610080f858400000085db0f857d0100004839742470488b4424484c89200f84a3010000b9805e4a00bad7020000be805b4a00bff15b4a00e8a188fbff9041bf06000000e915fdffff0f1f44000041bf07000000e905fdffff0f1f440000bac0ffffffbe02000000e922fcffff90bae0ffffffbe03000000e912fcffff90baf0ffffffbe04000000e902fcffff4c895424584883ec084989e8ff742420498b134c89f6488b7c24504c8d8c2498000000488d8c24900000004c895c2460e8bc3300005a83f806594c8ba424800000004c8b5c24504c8b5424580f841205000083f8050f85e0fdffff488b94248800000048395424704d89230f8526ffffff4939d20f85cffeffff41836e1401e9c5feffff4889f2ebda488b7c242849891e488b4424684801078b8424d800000085c074554183ff07754f488b442448488b104889e84829d04883f8030f8f7004000031c04839d5488b4c2448761e488d7a01498b76204889390fb61288540604488b114883c0014839d577e2498b4e208b1183e2f809d089014489f8e9d6f8ffff488b4424184983c4044c89a4248000000048830001b806000000e923fdffff488b54247049892b4839f20f8566feffff83f8050f8437ffffffb9805e4a00bad8020000be805b4a00bff85c4a00e8fe86fbff660f1f440000bae0ffffffbf03000000e94dfdffffbac0ffffffbf02000000e93efdffffbaf0ffffffbf04000000e92ffdffff488b4424084889184489f8e941f8ffff4d8b16e99af8ffff4d39ea0f83e6000000488d7201488d48014889b424800000000fb63a4839f540887c04700f86280200004883f9030f871e020000488d72024883c0024889b424800000000fb67a014839f540887c0c70761f4883f8037719488d420348898424800000000fb6420288442473b8040000008b4c24704c8d6424704c89a4248000000083f97f0f8787000000498d4201488984248800000041880a488b842480000000488d500431c048899424800000004c39e274448b034c29e289c183e1074839ca0f8ee5020000488b7c24484829ca83e0f84c8b942488000000458b5e104803174889174989d48903e9a9f8ffffb805000000e940f7ffff85c00f8538f7ffff488b442448458b5e104c8b20e986f8ffff85c90f88fe000000f7c100f8ffff0f84e3000000f7c10000ffff0f84c8000000f7c10000e0ff0f84ad00000089ca81e2000000fc83fa0119c083e0fc83e80483fa014819d24883c206498d34124939f5727c41880289c8480194248800000083e03f83c88041884412ff89c8c1e8064883fa02745183e03f83c88041884412fe89c8c1e80c4883fa03743b83e03f83c88041884412fd89c8c1e8124883fa04742583e03f83c88041884412fc89c8c1e8184883fa05740f83e03f83c8804188420189c8c1e81e410802e9bafeffff41bf05000000e970fdffffb8f0ffffffba04000000e961ffffffb8e0ffffffba03000000e952ffffffb8c0ffffffba02000000e943ffffff48837c2418000f840b01000041f6c308753a4183e3024c89e27427488b4424184883c204488994248000000048830001b806000000e95efeffff4889c8e917feffffb806000000e9d5f5ffff44895c24504c895424204883ec08ff7424204d8d3c04488b7c24504c89f64c8d8c2498000000488d8c24900000004d89f8e8b92f0000415b83f8065a488b9424800000004c8b542420448b5c24500f84cd0000004c39e20f85f4fdffff83f8070f852ffeffff488d42044939c70f84950000004c89f84829d08b134889c789d183e2f883e1074829cf4889f9488b7c244848010f4863ca4839c87e534883f804773409d04d39e789030f8673f6ffff4d29e731c04883c0010fb654046f4939c78854030375eee957f6ffff41bf06000000e921fcffffb940604a00badb010000bee15b4a00bfc85c4a00e86083fbffb940604a00bada010000bee15b4a00bfa05c4a00e84783fbffb940604a00bad0010000bee15b4a00bf785c4a00e82e83fbff4183e3020f8421fdffffe99ffeffffb9805e4a00ba09030000be805b4a00bfa85b4a00e80683fbffb940604a00babe010000bee15b4a00bf505c4a00e8ed82fbff488bb42488000000e90bfaffffb9805e4a00ba9f010000be805b4a00bf945b4a00e8c782fbffb940604a00ba80010000bee15b4a00bf205c4a00e8ae82fbffb9805e4a00ba2f020000be805b4a00bf945b4a00e89582fbff0f1f44000041574156488d4768415541544989d655534989f44889cb4883ec684c89442408448b46104889442420488d46304c894c24188bac24a000000048c74424100000000041f6c0014889442428752548837f6800488b87900000004889442410741248c1c811644833042530000000488944241085ed747b48837c2408000f8536100000498b44242048c7000000000031c041f64424100174184883c4685b5d415c415d415e415fc3660f1f840000000000488b5c24104889dfe863ee02008b8424a80000004531c031c931d250554c8b4c2428488b742438488b7c2430ffd3415a415b4883c4685b5d415c415d415e415fc348837c2408000f84f80a0000488b4424084c8b38498b44240848837c2418004c8d542448448b8c24a800000048c74424480000000048890424b8000000004c0f44d04585c90f85840700004d8b2e4c89f04d89d64989c20f1f8400000000004c39eb0f84f4090000498d7f0448393c240f82120a00004183e0024c89ea4c89fdc7442438040000000fb60283f87f89c10f87090100004883c2018945004889fd4839d3741a488d7d0448393c2473d9c7442438050000000f1f84000000000048837c2408004989120f857d09000041834424140141f6442410010f858f0900004939ef0f82060300004d89d68b8424a800000085c00f8493000000837c2438070f8588000000498b3e498b7424204989d80fb6174929f84489068d8a40ffffff89d083f9010f865d0e000081eac200000083fa1d0f877d09000083e01fb90600000041b90002000041ba01000000488d57014839da49891673290f1f4400000fb60ac1e0064883c20149891683e13f09c84839d375e94829df4a8d5417018d0c5201c94509c8d3e04489068946048b442438e910feffff0f1f8400000000002dc200000083f81d0f879200000089c8b90200000083e01f4c8d0c0a4c39cb0f833b010000488d7a014839fb0f86bd0500000fb6420183e0c03c800f85ae050000488d4202eb18660f1f8400000000000fb60f4883c00183e1c080f980750e4889c64889c74829d64839c375e34839fb0f84950800004d85f60f84d10000004585c00f84c80000004801f249830601c744243806000000e965feffff0f1f400089c883e0f03ce00f843303000089c883e0f83cf00f843603000089c883e0fc3cf80f84f904000089c883e0fe3cfc0f84fc040000488d42014839c30f86180500000fb6420183e0c03c800f8509050000488d42024839c30f86060500000fb6420283e0c03c800f85f7040000488d42034839c30f86f40400000fb6420383e0c03c800f85e5040000488d42044839c30f86f10400000fb6420431f683e0c03c80400f94c64883c604e929ffffff0f1f00c744243806000000e9c3fdffff0f1f000fb672014189f34183e3c04180fb800f8584040000c1e00683e63f09f04883f9020f84f30600000fb672024189f34183e3c04180fb800f8567040000c1e00683e63f09f04883f9030f84ae0600000fb672034189f34183e3c04180fb800f854a040000c1e00683e63f09f04883f9040f849b0600000fb672044189f34183e3c04180fb800f853c040000c1e00683e63f09f04883f9060f856a0600000fb672054189f34183e3c04180fb800f857306000083e63fc1e00609f0be060000008d4c89fc4189c341d3eb4585db0f8445feffff8d880028ffff81f9ff0700000f8633feffff4c89cae9b0fcffff0f1f440000488b7c2410498b04244c895424304889442450e828ea02008bbc24a80000004531c04889e9576a004c8b4c2428488b742438488d542460488b7c2430488b442420ffd05e83f8044189c15f4c8b5424300f84390300004c8b4424504939e874704c39eb4d892a418b6c24100f8478070000498d77044939f00f823c07000083e5024c89ff896c2438410fb6450083f87f89c2775c4983c50189074889f74939dd0f8482060000488d77044939f073d94939f84d892a0f85b10100004d39c7751041836c241401662e0f1f8400000000004585c90f85f20a00004d8b3c24458b4424104d8b2ae986fbffff660f1f4400002dc200000083f81d0f87b200000089d0b90200000083e01f4d8d5c0d004c39db0f8372010000498d75014839f30f86e8050000410fb6450183e0c03c800f85d8050000498d4502eb160f1f80000000000fb60e4883c00183e1c080f980750e4889c24889c64c29ea4839c375e34839f30f84fa0000004d85f60f84f10000008b4c243885c90f84e50000004901d549830601e916ffffff660f1f84000000000089c8b90300000083e00fe929fcffff9089c8b90400000083e007e919fcffff9089d083e0f03ce00f840a02000089d083e0f83cf00f847404000089d083e0fc3cf80f847604000089d083e0fe3cfc0f84c8040000498d45014839c30f8666050000410fb6450183e0c03c800f8556050000498d45024839c30f863f050000410fb6450283e0c03c800f852f050000498d45034839c30f86d7030000410fb6450383e0c03c800f85c7030000498d45044839c30f8619050000410fb6450431d283e0c03c800f94c24883c204e906ffffff4939f84d892a0f84c8040000b9605e4a00bad7020000be805b4a00bff15b4a00e82b7bfbff0f1f00410fb6550189d583e5c04080fd800f85bb040000c1e00683e23f09d04883f9020f84e5040000410fb6550289d583e5c04080fd800f858b040000c1e00683e23f09d04883f9030f84b5040000410fb6550389d583e5c04080fd800f851a030000c1e00683e23f09d04883f9040f8471040000410fb6550489d583e5c04080fd800f8553040000c1e00683e23f09d04883f9060f855f040000410fb6550589d583e5c04080fd800f854104000083e23fc1e00609d0ba060000008d4c89fc89c5d3ed85ed0f8415feffff8d880028ffff81f9ff0700000f8603feffff4d89dde92dfdffff0f1f44000089c8b90500000083e003e949faffff9089c8b90600000083e001e939faffff837c2438050f8560f9ffffe93afdffffbe01000000e974faffffbe01000000e973faffffbe02000000e969faffffbe03000000e95ffaffff89d0b90300000083e00fe932fdffffbe04000000e946faffff498b6c24208b4d0089c883e007894424380f8465f8ffff48837c2408000f85af07000089ca498b068b7504c1fa080fb6c94863d20fb6ba93604a0040887c24504883ea014839d1760d89f783e73f83cf8040887c1450c1ee064883fa0177e1498d7f04400874245048393c2448897c24300f82c70200000fb6104c8d690188540c50488d50014839d30f86970000004983fd050f878d0000000fb67001488d51024883fa054288742c500f87b1060000488d70024839f30f86a40600000fb670024c8d69034983fd0540887414507756488d50034839d3764d0fb67003488d51044883fa054288742c500f8771060000488d70044839f30f86640600004c8d69050fb648044983fd05884c14507717488d50054839d3760e0fb6500541bd0600000088542455440fb65c2450488d7c24504183fb7f4489da0f867f020000418db33effffff4901fd83fe1d8974243c0f87070300004489deb90200000083e61f4c8d0c0f4d39cd0f83ad0300004c8d4f014d39cd0f86680500000fb64c245183e1c080f9800f85570500004c8d4f02be010000004c89542430eb12440fb6114983c1014183e2c04180fa80750c4883c6014d39cd4c89c977e24c8b5424304939cd0f84860400004d85d20f84690200004183e0020f845f0200004c8d0c37498302014939f90f844e0200004c897c24308b55004929f983e2074939d10f8e460500004929d1458b4424104c8b7c24304e8d2c084d892ec7450000000000e95df6ffffba03000000e95afbffffbe03000000e9b8f9ffffbe05000000e9aef9ffffbe04000000e9a4f9ffffbe02000000e9adf9ffffbe05000000e9e8f7ffff89d0b90400000083e007e9bbfaffff89d0b90500000083e003e9acfaffff488b4424084889288b442438e94bf5ffff4889da4c89fdc744243804000000e950f6ffff488b7c241849892c244d89d6488b442448480107e964f6ffff4c89ea4c89fdc744243805000000e924f6ffff89d0b90600000083e001e94dfaffffc744243807000000e908f6ffff89c283e2f080fae00f84fa00000089c283e2f880faf00f841c01000089c283e2fc80faf80f843101000083e001b91e00000041b90006000041ba05000000e954f6ffffba01000000e948faffff4d8b3c24e907f5ffffb805000000e990f4ffff4939f84d892a0f8538fbffffb9605e4a00bad8020000be805b4a00bff85c4a00e86376fbffba02000000e90ffaffffba01000000e905faffffba04000000e9fbf9ffffba04000000e9ccfbffffba05000000e9e7f9ffffba05000000e9b8fbffffba03000000e9aefbffffba02000000e9b4fbffff4c8d4f014939f945891f0f8523feffff458b4424104989c5e9a5f4ffff4d39f80f84fdf8ffffe9a4faffff0f1f84000000000083e00fb90c00000041b90003000041ba02000000e976f5ffff4d39f80f857afaffffe93dffffff660f1f84000000000083e007b91200000041b90004000041ba03000000e946f5ffffb806000000e995f3ffff83e003b91800000041b90005000041ba04000000e923f5ffff4489d983e1f080f9e00f84a20100004489d983e1f880f9f00f84a30100004489d983e1fc80f9f80f84b40100004489d983e1fe80f9fc0f8495010000488d57014939d50f86e20200000fb654245183e2c080fa800f85d1020000488d57024939d50f86ba0200000fb654245283e2c080fa800f85a9020000488d57034939d50f86920200000fb654245383e2c080fa800f8581020000488d57044939d50f866a0200000fb654245483e2c080fa800f8559020000be05000000e9adfcffff440fb65c24514489da83e2c080fa800f855802000089f24183e33fc1e2064109d34883f9020f846a0200000fb674245289f283e2c080fa800f852502000089f241c1e30683e23f4109d34883f9030f84370200000fb674245389f283e2c080fa800f85f201000089f241c1e30683e23f4109d34883f9040f84040200000fb674245489f283e2c080fa800f85bf01000089f241c1e30683e23f4109d34883f9060f85d10100000fb674245589f283e2c080fa800f853dffffff89f241c1e306be0600000083e23f4109d38d4c89fc4489dad3ea85d20f84d2fbffff418d930028ffff81faff0700000f86bffbffffe9b4fdffff4489deb90300000083e60fe943fbffff4489deb90400000083e607e933fbffff4489deb90600000083e601e923fbffff4489deb90500000083e603e913fbffff488d4f064939cd0f84b701000048634c24384c89ee4181ebc00000004829fe4889f34829cb4801d84183fb014989068975000f86aa000000837c243c1d776383e21fb90600000041b80002000041b901000000488d47014939c576244889c10fb601c1e2064883c10183e03f09c24939cd75ec4c29ef4a8d440f018d0c4001c94409c6d3e2b807000000897500895504e9f6f0ffffbe010000004c89c9e9cffaffff89d083e0f03ce00f846001000089d083e0f83cf00f843a01000089d083e0fc3cf80f841401000083e201b91e00000041b80006000041b905000000e971ffffffb920604a00bad6010000bee15b4a00bf025c4a00e88872fbffb920604a00babe010000bee15b4a00bf505c4a00e86f72fbff4989d5e9bdf9ffffbe04000000e954faffffbe03000000e94afaffffbe02000000e940faffffbe01000000e936faffffbe05000000e949feffffbe04000000e93ffeffffbe03000000e935feffffbe02000000e93cfeffffb9605e4a00ba05030000be805b4a00bf025c4a00e8fe71fbffb9605e4a00ba2f020000be805b4a00bf945b4a00e8e571fbff4d89d644894c2438e925f1ffffb9605e4a00ba9f010000be805b4a00bf945b4a00e8bf71fbffb920604a00bad0010000bee15b4a00bf785c4a00e8a671fbff83e203b91800000041b80005000041b904000000e95dfeffff83e207b91200000041b80004000041b903000000e944feffff83e20fb90c00000041b80003000041b902000000e92bfeffff90662e0f1f84000000000041574156488d4768415541544531ed55534989d74889f34889cd4d89c24883ec584889442408488d46304c890c24448ba4249000000048894424108b4610a801751b48837f68004c8baf90000000740d49c1cd11644c332c25300000004585e4746e4d85d20f854a050000488b432048c7000000000031c0f643100174124883c4585b5d415c415d415e415fc30f1f004c89efe848dd02008b8424980000004531c031c931d25041544c8b4c2410488b742420488b7c241841ffd55f41584883c4585b5d415c415d415e415fc30f1f004d85d20f8444040000498b1248833c2400488d742438b9000000004c8b5b0848c744243800000000480f45ce8bb4249800000048894c242085f60f8538020000498b374c896c24184d89dd4c8b5c24204889f70f1f4400004839fd0f84c7030000488d4f024839cd0f82d2030000488d72044939f50f82cd030000a80274694d85db0f84c80200004989d441be040000000fb741fe8db8002800006681ffff0777364983030141be060000004839cd0f843b030000488d41024839c50f8256030000498d7424044939f50f82500300004889c1ebbc0f1f00418904244989f4ebcb0f1f80000000004d85db0f840f0200000fb741fe488d79fe4c8d66fc448d8000280000664181f8ff070f879000000041be060000004d85d249893f0f857602000083431401f64310010f85780200004c39e20f829f0000008b84249800000085c0744f4183fe077549498b074889ea4829c24883fa030f8fa903000031d24839c576220f1f4000488d7001488b4b204989370fb60088441104498b074883c2014839c577e2488b4b208b0183e0f809c289114489f0e913feffff0f1f4400004839cd8946fc0f8414020000488d41024839e80f871f020000488d7e044c39ef0f873a0200004889fe4889c1e920ffffff0f1f8000000000488b7c2418488b034c895424284c895c24204889442440e81cdb02008b9424980000004531c04c89e1526a004c8b4c2410488b742420488d542450488b7c2418488b442428ffd05a83f804594c8b5c24204c8b5424287438488b5424404c39e274134929d44c89e248c1ea3f4901d449d1fc4d292785c00f85a9020000488b138b4310498b3fe9f5fdffff0f1f4400004183fe050f85c7feffffebe10f1f4000488b4b208b394189f84183e0070f84b5fdffff4d85d20f85bd0200004183f804498b370f8797020000440fb649044183f80144884c24400f84b3010000440fb6490541bc0200000044884c24414531c94901f14c39cd0f83810100004839f549892f76174c01e14883c6010fb646ff4883c1018841034839f575ecb807000000e9b1fcffff0f1f000fb741fe488d79fe4c8d66fc448d8000280000664181f8ff070f86f1fdffff4839cd8946fc0f8495000000488d41024839c50f82a0000000488d7e044939fd0f82bb0000004889fe4889c1ebb30f1f000fb741fe488d79fe4c8d66fc448d8000280000664181f8ff070f86a1fdffff4839cd8946fc7449488d41024839c57258488d7e044939fd72774889fe4889c1ebbf0f1f80000000004d89224489f0e90bfcffff0f1f440000488b14244c8923488b442438480102e97dfdffff0f1f40004889ef4989f441be04000000e945fdffff0f1f80000000004889cf4989f441be07000000e92dfdffff0f1f80000000004889efe91efdffff0f1f8400000000004889cf4989f441be05000000e905fdffff0f1f80000000004889cfebc10f1f004889cfebe10f1f004989d441be04000000e9e0fcffff662e0f1f8400000000004989d4eb990f1f004989d4ebb9488b13e9b7fbffff4c8d72044d39f3731bb805000000e946fbffff41b90100000041bc01000000e94ffeffff440fb60e46884c2440440fb7642440458d8c2400280000664181f9ff0777324c8b4c24204d85c97439a8027435498301014183f8014963c07f6c4829c683e7f88b43104883c6024989378939e979fbffff4489228b394c89f24189f84183e007ebcfb806000000e9c9faffffb9405e4a00ba9f010000be805b4a00bf945b4a00e8826bfbff4189c6e933fcffffb9405e4a00ba09030000be805b4a00bfa85b4a00e8616bfbffb900604a00babe010000bee15b4a00bf505c4a00e8486bfbffb900604a00ba80010000bee15b4a00bf205c4a00e82f6bfbffb9405e4a00ba2f020000be805b4a00bf945b4a00e8166bfbff660f1f44000041574156488d4768415541544989fb55534989d74889f34989cc4883ec78448b76104889442420488d46304c8904244c894c24188bac24b000000041f6c601488944242848c744241000000000752548837f6800488b87900000004889442410741248c1c811644833042530000000488944241085ed747848833c24000f85a0060000488b432048c7000000000031c0f643100174124883c4785b5d415c415d415e415fc30f1f00488b5c24104889dfe8ebd602008b8424b80000004531c031c931d250554c8b4c2428488b742438488b7c2430ffd3415c415d4883c4785b5d415c415d415e415fc30f1f800000000048833c24000f84de030000488b04244c8b10488b430848837c241800488d5424588bac24b800000048c7442458000000004889442408b800000000480f45c285ed48894424300f8564020000498b074c895c24404d89fb4c8b7c24304489f24d89d6660f1f44000083e20248894424604c897424684189d24c89f541bd040000004939c47472488d48044939cc0f82fd010000488d750248397424080f82fe0100008b1081faffff00000f8688000000c1ea0781fa001c00000f84e10000004d85ff0f84c8000000f64310080f85de0000004585d20f84b50000004883c0044983070141bd060000004939c4488944246075930f1f44000048833c24004989030f855602000083431401f64310010f855f0200004939ee0f82f30000004585ed0f85be0200004c8b338b5310498b03e934ffffff0f1f40008dba0028ffff81ffff070000772a4d85ff74454585d2744048894c2460498307014889c841bd06000000e91affffff660f1f840000000000668955004889c8488974246848894c24604889f5e9f8feffff0f1f800000000041bd06000000e95dffffff0f1f44000048894c24604889c8e9d4feffff0f1f0044895424384883ec084889de4157488b7c24504d89e0498b134c8d4c2478488d4c24704c895c2440e8e31300004189c55e4183fd065f488b442460488b6c24684c8b5c2430448b5424380f84d2feffff4183fd050f8577feffffe9e9feffff904c8b742410488b034c895c24304c89f74889442468e886d402008b8424b80000004531c04889e9506a004c8b4c2428488b742438488d542478488b7c243041ffd65a83f804594c8b5c24307423488b5424684839ea0f84000100004829d54189c54801ed49292be9a1feffff0f1f40004183fd050f8593feffffe997feffff9041bd07000000e95dfeffff0f1f44000041bd05000000e94dfeffff0f1f440000488b6b208b4d0089c883e0070f848afdffff48833c24000f85b1030000498b1783f8044c8954246848895424600f87820300000fb6750448984883f801408874245074270fb675054883f802408874245174180fb675064883f803408874245274090fb6750740887424534889d64829c64883c6044939f40f83c30000004939d44d8927761c4801e84883c2014883c00148895424600fb64aff8848034939d475e7b807000000e94afcffff488b04244889284489e8e93bfcffff4189c5e9aafdffff488b74241848892b4d89df488b4424584801068b8424b800000085c0744b4183fd077545498b074c89e24829c24883fa030f8fed02000031d24939c4761e488d7001488b4b204989370fb60088441104498b074883c2014939c477e2488b4b208b0183e0f809c289114489e8e9c2fbffff4d89dfeb9d4c8b13e921fcffff498d720248397424080f8201010000488d7a014c8d400148897c2460440fb60a4939fc44884c04500f86320100004983f8030f87280100004c8d4a02488d78024c894c2460440fb66a014d39cc46886c0450761d4883ff037717488d7a0348897c24600fb67a0240887c2453bf04000000448b4424504c8d6c24504c896c24604181f8ffff00000f868d00000041c1e8074181f8001c00000f84b700000048837c2430000f84be00000041f6c6080f85be0000004183e6020f84aa0000004c89e8488b742430488d50044889542460488306014c39ea0f848c0000008b4d0089c883e0074c29ea4839c20f8e6b0100004829c283e1f84c8b5424684889d0490307448b7310498907894d00e94efbffffb805000000e99bfaffff418d900028ffff81faff0700007723488b7424304885f674354183e602742f48830601498d55044889542460498d5504eb98664589024889742468498d55044889542460ebe64c89c7e909ffffffb806000000e943faffff498d443d004c895424484c89df4889de488944243841504989c0ff7424384c8d4c2478488d4c24704c895c2450e82b100000415983f806415a488b5424604c8b5c24404c8b5424480f845e0100004c39ea0f8513ffffff83f8070f8538010000488d420448394424380f8410010000488b4424384829d08b55004889c689d183e2f883e1074829ce4863ca4901374839c80f8ecf0000004883f8040f87ac00000009d0894500488b4424384c39e80f863bfdffff4c29e831d24883c2010fb64c144f4839c2884c150375eee91ffdffffb9205e4a00ba9f010000be805b4a00bf945b4a00e8d463fbffb9e05f4a00babe010000bee15b4a00bf505c4a00e8bb63fbffb9e05f4a00ba80010000bee15b4a00bf205c4a00e8a263fbffb9205e4a00ba2f020000be805b4a00bf945b4a00e88963fbffb9205e4a00ba09030000be805b4a00bfa85b4a00e87063fbffb9e05f4a00badb010000bee15b4a00bfc85c4a00e85763fbffb9e05f4a00bada010000bee15b4a00bfa05c4a00e83e63fbffb9e05f4a00bad0010000bee15b4a00bf785c4a00e82563fbff85c00f85a3f8ffff448b7310498b07e940f9ffff4180e6024889d00f84a8fdffffe991fdffff0f1f440000662e0f1f84000000000041574156488d4768415541544531ed55534989d74889f34889cd4d89c24883ec584889442408488d46304c890c24448ba4249000000048894424108b4610a801751b48837f68004c8baf90000000740d49c1cd11644c332c25300000004585e4746e4d85d20f8544050000488b432048c7000000000031c0f643100174124883c4585b5d415c415d415e415fc30f1f004c89efe8e8ce02008b8424980000004531c031c931d25041544c8b4c2410488b742420488b7c241841ffd5415841594883c4585b5d415c415d415e415fc366904d85d20f8434040000498b1248833c24008bbc2498000000488d742438b9000000004c8b5b0848c744243800000000480f45ce85ff4989ce0f8532020000498b374889f74c89de4d89f34d89ee4989f54839fd0f84cf030000488d4f024839cd0f82ca030000488d72044939f50f82c5030000a80274614d85db0f84d00200004989d40fb741fe66c1c8088db8002800006681ffff077730498303014839cd0f843b030000488d41024839c50f8266030000498d7424044939f50f82600300004889c1ebbe0f1f000fb7c0418904244989f4ebc80f1f40004d85db0f84170200000fb741fe4c8d66fc488d79fe66c1c808448d8000280000664181f8ff070f879400000031c0c7442418060000004d85d249893f0f858602000083431401f64310010f85880200004c39e20f829f0000008b94249800000085d2744f84c0744b498b074889ea4829c24883fa030f8fc703000031d24839c57624660f1f440000488d7001488b4b204989370fb60088441104498b074883c2014839c577e2488b4b208b0183e0f809c289118b442418e91afeffff0f1f40000fb7c04839cd8946fc0f8421020000488d41024839c50f8234020000488d7e044939fd0f823f0200004889fe4889c1e915ffffff0f1f4000488b034c89f74c895424284c895c24204889442440e8c6cc02008b8424980000004531c04c89e1506a004c8b4c2410488b742420488d542450488b7c241841ffd65983f8045e4c8b5c24204c8b5424287436488b5424404c39e274134929d44c89e248c1ea3f4901d449d1fc4d292785c00f85ca020000488b138b4310498b3fe9fbfdffff0f1f00837c24180574e8837c2418070f94c0e9c5feffff0f1f4000488b4b208b394189fc4183e4070f84bbfdffff4d85d20f85c00200004183fc04498b370f879a020000440fb641044183fc0144884424400f84b0010000440fb6410541b90200000044884424414531c04901f04c39c50f83790100004839f549892f76174c01c94883c6010fb646ff4883c1018841034839f575ecb807000000e9b9fcffff0f1f000fb741fe4c8d66fc488d79fe66c1c808448d8000280000664181f8ff070f86e9fdffff0fb7c04839cd8946fc0f849e000000488d41024839c50f82b1000000488d7e044939fd0f82bc0000004889fe4889c1ebac0f1f40000fb741fe4c8d66fc488d79fe66c1c808448d8000280000664181f8ff070f8691fdffff0fb7c04839cd8946fc744a488d41024839c57261488d7e044939fd72704889fe4889c1ebb80f1f8400000000004d89228b442418e902fcffff0f1f4000488b34244c8923488b542438480116e96dfdffff0f1f40004889ef4989f431c0c744241804000000e931fdffff0f1f004889efebe90f1f004889cf4989f4b801000000c744241807000000e90efdffff4889cf4989f431c0c744241805000000e9f9fcffff0f1f004889cfebd10f1f004889cfebe10f1f004989d4eba10f1f004989d4ebb90f1f004989d4ebc9488b13e9c7fbffff4c8d42044d39c34c89442418731bb805000000e951fbffff41b80100000041b901000000e952feffff440fb6064688440c40440fb74424406641c1c808458d8800280000664181f9ff07772d4d85f6743fa802743b498306014183fc014963c47f514829c683e7f88b43104883c6024989378939e983fbffff450fb7c04489028b39488b5424184189fc4183e407ebc9b806000000e9cffaffffb9e05d4a00ba9f010000be805b4a00bf945b4a00e8285dfbffb9a05d4a00babe010000bee15b4a00bf505c4a00e80f5dfbff89442418e945fdffffb9e05d4a00ba09030000be805b4a00bfa85b4a00e8ed5cfbffb9a05d4a00ba80010000bee15b4a00bf205c4a00e8d45cfbffb9e05d4a00ba2f020000be805b4a00bf945b4a00e8bb5cfbff90662e0f1f84000000000041574156488d4768415541544989fb55534989d74889f34989cc4883ec78448b76104889442420488d46304c8904244c894c24188bac24b000000041f6c601488944242848c744241000000000752548837f6800488b87900000004889442410741248c1c811644833042530000000488944241085ed747848833c24000f85ca060000488b432048c7000000000031c0f643100174124883c4785b5d415c415d415e415fc30f1f00488b5c24104889dfe88bc802008b8424b80000004531c031c931d250554c8b4c2428488b742438488b7c2430ffd3415c415d4883c4785b5d415c415d415e415fc30f1f800000000048833c24000f8406040000488b04244c8b10488b430848837c241800488d5424588bac24b800000048c7442458000000004889442408b800000000480f45c285ed48894424300f8584020000498b174c895c24384d89fb4c8b7c24304489f04d89d6660f1f44000083e00241bd0400000048895424604189c24c897424684489e84c89f54589d54939d47474488d72044939f40f8217020000488d7d0248397c24080f82180200008b0a81f9ffff00000f8692000000c1e90781f9001c00000f84e30000004d85ff0f84ca000000f64310080f85e00000004585ed0f84b70000004883c20449830701b8060000004939d4488954246075940f1f8400000000004189c50f1f44000048833c24004989130f856e02000083431401f64310010f85770200004939ee0f82e30000004585ed0f85d60200004c8b338b4310498b13e924ffffff0f1f4000448d810028ffff4181f8ff07000077204d85ff743b4585ed74364889742460498307014889f2e914ffffff0f1f44000066c1c9084889f266894d0048897c246848897424604889fde9f2feffff0f1f0041bd06000000e965ffffff0f1f44000048897424604889f2e9d2feffff0f1f004883ec084889de4d89e04157488b7c2448498b134c8d4c2478488d4c24704c895c2440e8800500005e83f8065f4c8b5c24300f84b804000083f8050f8487000000488b542460488b6c2468e97ffeffff0f1f8400000000004c8b742410488b034c895c24304c89f74889442468e826c602008b8424b80000004531c04889e9506a004c8b4c2428488b742438488d542478488b7c243041ffd65a83f804594c8b5c2430743b488b5424684839ea0f84280100004829d54189c54801ed49292be9b1feffff0f1f40004189c5488b542460488b6c2468e976feffff660f1f4400004183fd050f858bfeffffe98ffeffff660f1f84000000000041bd07000000e94dfeffff0f1f44000041bd05000000e93dfeffff0f1f440000488b6b208b4d0089c883e0070f846afdffff48833c24000f85ca030000498b1783f8044c8954246848895424600f87730300000fb6750448984883f801408874245074270fb675054883f802408874245174180fb675064883f803408874245274090fb6750740887424534889d64829c64883c6044939f40f83cb0000004939d44d892776244883c2014801e84983c40148895424600fb64aff4883c2014883c0018848034939d475e7b807000000e922fcffff488b04244889284489e8e913fcffff4189c5e992fdffff488b7c241848892b4d89df488b4424584801078b8424b800000085c0744b4183fd077545498b074c89e24829c24883fa030f8ffe02000031d24939c4761e488d7001488b4b204989370fb60088441104498b074883c2014939c477e2488b4b208b0183e0f809c289114489e8e99afbffff4d89dfeb9d4c8b13e9f9fbffff498d720248397424080f82fe000000488d7a014c8d400148897c2460440fb60a4939fc44884c04500f86340100004983f8030f872a0100004c8d4a02488d78024c894c2460440fb66a014d39cc46886c0450761d4883ff037717488d7a0348897c24600fb67a0240887c2453bf04000000448b4424504c8d6c24504c896c24604181f8ffff00000f868a00000041c1e8074181f8001c00000f84b900000048837c2430000f84c000000041f6c6080f85c00000004183e6020f84ac0000004c89e8488b7c2430488d50044889542460488307014c39ea0f848e0000008b4d0089c883e0074c29ea4839c20f8e860100004829c249031783e1f84c8b542468448b7310498917894d00e929fbffffb805000000e976faffff418d900028ffff81faff0700007723488b7c24304885ff743a4183e602743448830701498d55044889542460498d5504eb9b6641c1c808664589024889742468498d55044889542460ebe14c89c7e907ffffffb806000000e919faffff498d443d004c895424484c89df4889de488944243841504989c0ff7424384c8d4c2478488d4c24704c895c2450e8a1010000415983f806415a488b5424604c8b5c24404c8b5424480f846d0100004c39ea0f8511ffffff83f8070f8547010000488d420448394424380f841f010000488b4424384829d08b55004889c789d183e2f883e1074829cf4863ca49013f4839c80f8ede0000004883f8040f87bb00000009d0894500488b4424384c39e80f8639fdffff4c29e831d24883c2010fb64c144f4839c2884c150375eee91dfdffffb9605d4a00ba9f010000be805b4a00bf945b4a00e84a55fbffb9205d4a00ba80010000bee15b4a00bf205c4a00e83155fbffb9205d4a00babe010000bee15b4a00bf505c4a00e81855fbff488b542460488b6c2468e921faffffb9605d4a00ba2f020000be805b4a00bf945b4a00e8f054fbffb9605d4a00ba09030000be805b4a00bfa85b4a00e8d754fbffb9205d4a00badb010000bee15b4a00bfc85c4a00e8be54fbffb9205d4a00bada010000bee15b4a00bfa05c4a00e8a554fbffb9205d4a00bad0010000bee15b4a00bf785c4a00e88c54fbff85c00f856af8ffff448b7310498b17e907f9ffff4180e6024889d00f8497fdffffe980fdffff660f1f440000415741564889f8415541544d89c355534881ec88000000488338004c8b782848893c24488b39488974240848894c24404c894c243048897c241074134c89f848c1c8116448330425300000004989c748c7c0b0ffffff644c8b00498b308b86280200004885c048894424180f8427010000488b7c24104889f84883c0044939c30f823c010000488b86300200004c8b96480200004c8bae380200004c897c244848c7442420000000004889442438488b86400200004d89d74889442450488b442418480344242031ed488b7c243848d1e848894424288b04874989c4418b548500488b442410eb2a0f1f84000000000083c501428d542500418b54950085d20f840d0100004883c0044939c30f86b5000000391074da31c085ed0f85ee00000048034424104939c30f86ca000000428d5425008b0041394495000f82b8000000488b442428488b4c2420488944241848394c24180f8763ffffff48c7c0b0ffffff4c8b7c2448644c8b00498b308b866002000085c00f84e2020000488b7c2440488b8e680200004c8b17418b3ae976010000660f1f4400008b866002000085c0743c4c8b542410498d52044939d30f834a0100004c395c2410750cb804000000eb0a4c39df74f4b8070000004881c4880000005b5d415c415d415e415fc38bbe5002000085ff0f85cd010000b806000000ebd90f1f440000488b4424284883c00148894424204889c1e941ffffff85d275b5488b442450488b7c24284c896c245844896424644d89fd4c8b642448896c24608b04b84c895c2468418b14874c8b7c243089c50f1f0085d2498d7485000f849f000000498d44850431db0f1f40004989c64883c004448b50fc4883c3014585d275ec498b074c89e748897424704889442478e867be02006a006a004531c9488b742418488b7c24104c89f14c8d842488000000488d94248000000041ffd483f806415841590f855d0100008d441d01418b5485004889c585d20f8577ffffff48634424604d89ef448b6424644c8b6c24584c8b5c24684889c548c1e002e92cfeffff4989f631dbe976ffffff488b8e68020000418b3a85c07e1e83e801488d4440034c8d0c810f1f8400000000008b0139f80f86c60000008b965002000085d20f84b4feffff488b9e5802000048895c2470498b008ba850020000488b4424304c89ff488b004889442478e88ebd02006a006a00488d0cab488b742418488b7c24104531c9488d9424800000004c8d84248800000041ffd789c2b80600000083fa06595e0f8430feffff83fa040f8402010000488b442478488b7c243048890789d0e913feffff488b7c2410488b9e580200004889f848895c24704883c0044939c30f839d0000004c39df0f95c00fb6c08d444004e9e0fdffff0f1f4000397904721389fb31d229c389d8f7710885d20f84800000004883c10c4c39c90f850bffffffe910ffffff83f8048b6c2460741b83f8050f84a0fdffff488b542478488b4c2430488911e98efdffff488b7c24404863c548c1e002480107488b8424c00000004883000131c0ebcf8b865002000085c00f8481fdffff488b9e5802000048895c2470498b008ba850020000e9c8feffff0f1f00488b4424404983c2044c8910488b8424c00000004883000131c0e925fdffff488b8424c000000031d248830001488b44244048830004e9e2feffff662e0f1f8400000000000f1f00554889e541574156415541544989f5534989fe4889d34883ec08e8216ffdff4c89ef4989c7e8166ffdff4c8d60014c89fa4c89f64b8d443c0f4883e0f04829c44889e7e8689efdff4c89e24c89ee4889c7e8baf8fdff4889e7e8120b00004885c04889030f847e000000488b50184c8b6020488b402848c743080000000048c743300000000048c7436000000000488953284c8963384889434031c04d85e4743549c1cc11644c332425300000004c89e7e86abb02004889df41ffd4488b53304885d2741164483314253000000048c1c21148895330488d65d85b415c415d415e415f5dc30f1f00488d65d8b8010000005b415c415d415e415f5dc30f1f4000488b0591fc2700c30f1f84000000000041554154bf9a604a0055534881ec98000000e8091ffcff4885c04889054f0828000f8531010000b90200000031d231f6bfa8604a0089c80f05483d00f0ffff4889c30f87c800000083f8ff4189c40f84040100004889e289c6bf01000000e84d28ffff85c00f886a010000488b7424304883fe0f0f865b0100004531c931ff4189d8b901000000ba01000000488935edfb2700e83833ffff4883f8ff488905e5fb27000f84c70000004863fbb8030000000f05488b3dcefb2700813f24030120756e0fb74704488b15b3fb27004839d0735e0fb74f064839ca76550fb747086685c0744c488d04814839c272430fb7470a4839c2763a0fb74f0c31c04839ca722f4881c4980000005b5d415c415dc39048c7c2d0fffffff7dbb8ffffffff64891a4881c4980000005b5d415c415dc3908b0542fb270085c00f84ba000000e84d14fdffc7052bfb27000000000048c70530fb2700000000004881c498000000b8ffffffff5b5d415c415dc30f1f4400004c8b2d09fb27004c89efe87110fdff4885c0488905fffa2700744a31edeb17904c8b2de9fa27004801c54c39ed7371488b05e2fa27004c89ea488d34284489e74829eae8a827ffff4883f8ff75d2488b3dc3fa2700e8c613fdff48c705b3fa2700000000004863fbb8030000000f054881c498000000b8ffffffff5b5d415c415dc3660f1f440000488b3581fa2700e88c32ffffe944ffffff0f1f8000000000c7055efa270001000000e98afeffff90415741564155415455534883ec384c8b3553fa27004d85f60f8481010000410fb746044889542420488974241848897c2408450fb766064889442410e80f10fcff450fb76e0831d289c58b3d10fa270041f7f5418d75fe89e889d331d2f7f6410fb7460429c78d6a01897c2428eb2d900fb7c63944242876164803742410488b7c24084c01f6e84536fbff85c0745101eb89d84429e84139dd0f46d889d8498d14844d8d3c16410fb7376685f675c1488b7c2408488b742418e81236fbff488b7c2420890731c04883c4385b5d415c415d415e415fc3662e0f1f840000000000410fb74702488b7c24184c8b3d77f92700668944242e450fb76f04450fb76706e84b0ffcff410fb75f0831d289c1f7f38d73fe89c88b0d45f9270089d531d2f7f68d420189442410410fb7470429c1894c2428eb300f1f000fb7f03974242876170fb7f0488b7c24184c01ee4c01fee87c35fbff85c07425036c241089e829d839eb0f46e889e8498d14844d8d3417410fb7066685c075c0e932ffffff410fb756020fb74c242e488b7c242029d1890f4883c4385b5d415c415d415e415fc3b8ffffffffe91effffff0f1f80000000004157415641ba020000004155415455534883ec684c8b3d9df827004d85ff0f84cd000000410fb7470448897c24204889f7410fb76f0648895424384889742418448944245048894c24304889442410410fb7470a6689442454e8420efcff450fb76f0831d289c341f7f5418d75fe89d84589ee4989ed4c89fd4189d431d2f7f6488b0529f827004889c74889442428410fb747048d5a0189fa29c289542408eb360f1f80000000000fb7c63944240876164803742410488b7c24184801eee85d34fbff85c074414101dc4489e04429f04539e6440f46e04489e04d8d7c85004901ef410fb7376685f675bd41ba010000004883c4684489d05b5d415c415d415e415fc30f1f4400004d89fe4989ef410fb7460266894424564889442440488d44400348c1e0024889c748894424480fb7450a4801f8483b44242877af488b1d75f72700488b7c24200fb743040fb76b064889442418e8460dfcff440fb7630831d289c64c8b3546f727004c897c24284989ef41f7f4418d7c24fe89f04489e54c8974245889d131d2f7f74189cc8d42014489f24989de894424080fb7430429c24189d5eb350f1f000fb7f04139f576190fb7f04803742418488b7c24204c01f6e85b33fbff85c0742944036424084489e029e84439e5440f46e04489e0498d1487498d1c160fb7036685c075bbe9f9feffff0fb76b024c8b7c24284189c24c8b742458410fb7570a488d446d034989ec48c1e0024801c24c39f20f87cbfeffff0fb75c24544c01fb48396c2440488d4403f44889442408750bf6442450010f857f0300004c8b742410488b4424484d01fe48837c2440004c8d6c03f40f85610100004885ed7410488b44240866837808000f8474feffff0fb74424564489542410664409e00f8460feffffbfd0000000e88b0bfdff4885c04889c3448b5424100f84cb020000488b44243848837c244000488918488b44243048c700000000000f84a4020000410fb74500410fb77d0648c74320ad544a00c743100100000048c743600000000044895424104c01f04c01f748894318803f000f84aa020000410fb775084889da4c01f6e811f8ffff85c04189c4448b5424100f8594000000488b7c2430488b0748894424104883c0014889074885ed0f84b5fdffff89c54898488b7c2408488d1440488d0490488d14c30fb70748c74218ad544a00c742100100000048c74260000000004c01f0488942204889f80fb77f024c01f7803f000f84f70100000fb740044489542408498d3406e889f7ffff85c04189c4448b5424080f84f401000085ed74084889dfe81d85ffff4889dfe8050efdff4589e2e92efdffff4885ed0f844f010000410fb7450a6685c00f847f010000410fb7570c4c8d7c02ff4c033dcdf42700410fb7076685c07522e9600100000f1f8000000000488d04404d8d7c4702410fb7076685c00f84430100000fb7d083ea014863d2488d1452410fb75457024839ea75d2488b7c2430488d14404489542410488907488d3c9048c1e703e8d409fdff4989c0488b442438448b5424104d85c04c89000f840c010000410fb745004531c94c896c242066448964245444895424184d89f44d89c54c894424284c01f04d89fe4989ef48894424104489cdeb260fb770064c89ea4c01e6e876f6ffff85c0757e410fb70683c5014983c56839c50f8d0d010000488b442410498945184863c5488d0440498d04460fb75002488d14520fb7149341c745100100000049c7456000000000498d3c1449897d2048897c24100fb778044c01e7803f0075910fb778064c89ee4c01e7e83796ffffeb936641837d04000f8550fdffffe9bffbffff4c8b442428448b5424184d89e64c8b6c2420440fb76424544c89fd4c89c74489542410e86c0cfdff448b5424106641837d04000f8486fbffffe9fdfcffff31c0e9c2fdffff41ba03000000e975fbffff488b4424084889d644895424100fb74004498d3c06e8ba95ffff448b542410488b44243048830001e948fbffff410fb77d084889de4c01f7e89795ffff448b542410e95cfdffff41baffffffffe923fbffff448b542418e919fbffff0f1f84000000000048833dd0f22700007406e9d10bfdff90f3c3662e0f1f8400000000000f1f4000488b36488b3fe9152ffbff0f1f44000085f653740b83fe0374065bc30f1f4000488b1f483b1d96f227008b430874318d500283fa0277e383e80183f8fd89430875d8488b7b104885ff74cfe810b2020048c74310000000005bc3660f1f44000085c07e0883e8018943085bc3b930614a00baad000000bedc604a00bfe7604a00e82b44fbff90662e0f1f84000000000041554154ba40d444005553be08c76c004883ec1848897c2408488d7c2408e85d33ffff4885c00f8404010000488b184885db0f84630100008b430883f8fe0f8dc400000048837b10000f857b010000488b3bbe01000080e864b202004885c0488943100f8432010000be0e614a004889c7e8cab102004885c0488943180f8428010000488b7b10be14614a00e8afb10200488b7b1048894320be1f614a00e89db1020048894328488b431864483304253000000048c1c01148894318488b43204885c0741164483304253000000048c1c01148894320488b43284885c0741164483304253000000048c1c01148894328c74308010000004883c4184889d85b5d415c415dc30f1f0048837b100074108d500185c0b8010000000f4fc28943084883c4184889d85b5d415c415dc30f1f004c8b6c24084c89efe89362fdff488d78314989c4e84706fdff4885c04889c54889c37447488d7830498d5424014c89eee83becfdffc74508fdffffff48894500ba40d4440048c7451000000000be08c76c004889efe8962effff4885c00f85a5feffff4889efe89509fdff4883c41831db4889d85b5d415c415dc3488b3d86f02700be50d4440048891d72f0270031dbe85b36ffffe955ffffffb950614a00ba73000000bedc604a00bff8604a00e83d42fbff0f1f00662e0f1f84000000000048893d39f02700488b3d3af02700be50d44400e91836ffff0f1f84000000000041574156415541544531e4555331dbbd0100000041bd010000004883ec2883ff06897c241448897424087513e9ce0000000f1f80000000004983c40183c5018d45ff83f80674f1394424140f84630200004e8b34e540ba6c004c89f7e85f61fdff4989c7410fb68424e8614a00488d5c03024c01fb4585ed7422488b442408488b304c39f60f84750100004c89f74531ede8ea2bfbff85c0410f94c583fd0d75974585ed0f84ba000000488b442408bebd4a4b00488b284889efe8c12bfbff85c00f8449010000bee9134a004889efbbbd4a4b00e8a72bfbff85c00f859f0100004883c4284889d85b5d415c415d415e415fc30f1f4400004983c40183c5014983fc0674f34c8b7424084b8b0ce64889cf48894c2418e8a560fdff4989c7410fb68424e8614a00488d5c03024c01fb4585ed7422498b36488b4c24184839f10f842b0100004889cf4531ede8302bfbff85c0410f94c583fd0d759d4585ed0f8546ffffff4889dfe81404fdff4885c04889c30f843501000031ed837c2414064889c741bd010000000f849a00000041bc010000004531edeb0f0f1f80000000004983c5014183c401418d4424ff83f80674ee394424140f84050100004a8b2ced40ba6c00410fb6b5f8614a004881c620624a00e8582afbff488d7801c6003d4889eee8492afbff4183fc0d488d7801c6003b75acc60000e9e5feffff0f1f400041bd01000000e991feffff0f1f440000bbbd4a4b00e9c7feffff660f1f4400004883c5014183c5014883fd0674f2488b4424080fb6b5f8614a004c8b24e84881c620624a00e8e629fbff488d7801c6003d4c89e6e8d729fbff4183fd0d488d7801c6003b75baeb8c0f1f84000000000041bd01000000e9dbfeffff0f1f440000498d5f014889dfe8f402fdff4885c0741c4883c4284889da4889ee5b5d415c415d415e415f4889c7e9e3e8fdff31dbe92dfeffff488b4424084c8b30e998fdffff488b442408488b28e9f6feffff669083ff0c0f87d70100004885f60f84e601000041574156b800000000415541544989f4555389fd4881ec080100004885c07407bf20c76c00ffd04c63f54c89e74d8d6e104a8b1cedc0b96c004889dee85d29fbff85c07531b8000000004885c0740fbf20c76c00ffd04a8b1cedc0b96c004889d84881c4080100005b5d415c415d415e415fc30f1f00bf63614a0048c74424100000000048c744241800000000e83c0ffcff4885c074098038000f855601000083fd060f84950100004e8b2cf5c0624a004c89a424900000004d85ed0f84bc040000488b742418488b7c2410488d8c249000000089eae8630700004885c04889c30f847d040000837830ff7407c74030ffffffff488bbc24900000004881ffbd4a4b007416e8845dfdff4885c048898424900000000f8449040000488db4249000000089efe8f4fbffff4885c04889c50f84180400004d85ed74174a8b04f580614a004a891cf5c0b96c004885c07402ffd0488b9c24900000004a8b3cf540ba6c004839fb74164881ffbd4a4b007405e8c904fdff4a891cf540ba6c00488b3d2adf27004839fd74154881ffbd4a4b007405e8a704fdff48892d10df2700830541f6270001b8000000004885c07407bf20c76c00ffd0488b7c2410e87e04fdff488b842490000000e994feffff9048c7c0d0ffffff64c7001600000031c0c30f1f80000000004863ff488b04fd40ba6c00c30f1f4000488d4c2418488d542410be3a0000004889c7e88187010085c00f8449010000b8000000004885c00f843efeffffbf20c76c00e81124bbff31c0e92dfeffff662e0f1f840000000000be3b0000004c89e74c896424204c896424284c896424304c896424384c896424404c896424484c896424584c896424604c896424684c896424704c896424784c89a42480000000e83427fbff4885c00f84fb0000004c89e7e8f35bfdff4885c048894424080f84d60300004889c36690be3d0000004889dfe80327fbff4885c04889c50f847f0300004829d84883f8080f845a0100004883f80a0f84c00100004883f8070f8516020000ba07000000be4b624a004889dfe87426fbff85c00f846d040000ba07000000be68624a004889dfe85a26fbff85c00f845d0400006690b8000000004885c0740ebf20c76c00ffd00f1f8000000000488b7c2408e8fe02fdff48c7c0d0ffffff64c7001600000031c0e90cfdffff660f1f840000000000488d742418488d7c2410b93a000000ba40644a00e8e786010085c00f8596feffffe91cfdffff662e0f1f8400000000004c8d74242048c744240800000000bb0c00000041bc0d0000000f1f80000000004863eb488b742418488b7c2410498d0cee89dae8780400004885c0488984ec900000000f8457020000837830ff7407c74030ffffffff4c8b7cec204981ffbd4a4b0074204c8b2ced40ba6c004c89ff4c89eee89925fbff85c00f85810100004c896cec2085db8d43ff0f8e7e02000083f8060f847b0300004189dc89c3eb8190ba08000000be2b624a004889dfe82e25fbff85c00f8420030000ba08000000be5f624a004889dfe81425fbff85c00f85bcfeffffb8070000000f1f8000000000488d7d01be3b00000048897cc420e83d25fbff4885c00f84bc010000c60000488d5801e918feffff0f1f840000000000ba0a000000be40624a004889dfe8be24fbff85c00f84d5020000ba0a000000be20624a004889dfe8a424fbff85c00f84b1020000ba0a000000be70624a004889dfe88a24fbff85c00f8532feffffb809000000e978ffffff0f1f8400000000004883f80b0f85ab020000ba0b000000be34624a004889dfe85424fbff85c00f8475020000ba0b000000be53624a004889dfe83a24fbff85c00f85e2fdffffb805000000e928ffffff0f1f840000000000488bbc24900000004881ffbd4a4b007405e8da00fdff48c784249000000000000000e930fcffff660f1f8400000000004c89e731dbe974fbffff660f1f4400004c89ffe8f858fdff4885c0488944ec200f856efeffff662e0f1f84000000000085db0f88f00000004183fc0d743c418d5c2401eb0a0f1f004183c40183c3014183fc0674f34963c4488b7cc4204881ffbd4a4b00740f483b3cc540ba6c007405e84b00fdff83fb0d75ce4531ed0f1f00b8000000004885c07407bf20c76c00ffd0488b7c2410e82500fdff488b7c2408e81b00fdff4c89e8e936faffff0f1f0048817cec20bd4a4b000f8571ffffffe9d0fdffff0f1f4000ba0100000031c04c8d742420eb11662e0f1f8400000000004883c00183c2014883f80674f34d3b24c60f84a9fcffff83fa0d75e4e91dfdffffb8000000004885c00f84d4f9ffffbf20c76c00ffd031c0e9c6f9ffff85c04189dc0f8916ffffff4c89f6bf06000000e86bf6ffff4885c04989c50f84f7feffff41bcc0b96c0041bf0100000031edeb130f1f80000000004883c5014183c7014983c4084883fd0674ee48833cedc0624a0000488b84ec90000000741349890424488b04ed80614a004885c07402ffd0498b1cee498bbc24800000004839fb74164881ffbd4a4b007405e811fffcff49899c24800000004183ff0d759b488b3d6cd927004939fd74154881ffbd4a4b007405e8e9fefcff4c892d52d92700830583f0270001e996feffff31c0e9fffcffffb802000000e9f5fcffffb808000000e9ebfcffffb803000000e9e1fcffffb801000000e9d7fcffffb804000000e9cdfcffffb80500000041bc0600000089c3e9fbfbffff4883f80c7524ba0c000000be7b624a004889dfe8a321fbff85c00f854bfbffffb80a000000e991fcffff4883f80e7524ba0e000000be88624a004889dfe87921fbff85c00f8521fbffffb80b000000e967fcffff4883f8110f850dfbffffba11000000be97624a004889dfe84b21fbff85c00f85f3faffffb80c000000e939fcffff660f1f840000000000554889e541574156415541544989ce534989fc89d34883ec584c8b39488975984c897da041803f000f8482000000bebd4a4b004c89ff4c63ebe82221fbff85c07414bee9134a004c89ff4c63ebe80e21fbff85c075224a8b04edc0634a0049c706bd4a4b00488d65d85b415c415d415e415f5dc30f1f40004c89ffe82056fdff483dff0000004989c50f869100000048c7c0d0ffffff64c7001600000031c0488d65d85b415c415d415e415f5dc36690bf28634a00e8d606fcff4885c0488945a0740580380075484c63eb410fb6bdf8614a004881c720624a00e8b106fcff4885c0488945a074058038007523bf2f634a00e89906fcff4885c0488945a00f8452ffffff8038000f8449ffffff0f1f004989c7e916ffffff0f1f840000000000b904000000ba60634a004889c64c89ffe82b7c01004885c00f8551ffffff4983fd020f8498050000761641803f2e0f84de05000043807c2ffd2f0f84b50500004c89eabe2f0000004c89ffe8207afdff4885c0740a41803f2f0f8510ffffff488b7da04d85e449893e0f84d1030000e83c6ffbff4989c7488945a04d85ff0f84190400004c89ffe8f454fdff488d50014883c01f4c89fe4883e0f04829c4488d7c240f4883e7f0e8a4defdff4c8d4dc84c8d45c0488d4db8488d55b0488d75a84889c7e87877fbff83f8ff4189c30f84a9feffff4c63eb4883ec084c8b4db8450fb6b5f8614a004a8d04ed00d36c004c8b45a8488b55986a004489d94c89e64889c744895d94488945884981c620624a004156ff75b0ff75c8ff75c0e84f70fbff4883c4304885c04989c7448b5d940f84110400004183e3010f85e1020000418b570885d20f84bd0200004d8b67104d85e40f8451030000488b5dc04885db0f84130200004a6304ad80634a004d8b6cc4404d85ed0f84b90400004c89efe8fd53fdff4883c021410fb675004883e0f04829c4488d44240f4883e0f04084f64989c00f84040400004c8b1d594406004c8b25624406004889c74531f649ba0740000000000800eb280f1f8400000000004080fe2f0f840e0200004983c501410fb675004084f674520f1f8400000000004c0fbece8d4ed4b801000000430fb7144b66c1ea0383e20180f93377104c89d048d3e883e0014883f00183e00138d077af438b048c4983c5014883c7018847ff410fb675004084f675b64183fe017f174585f6488d4701c6072f0f8540030000488d7801c6002fc607004889df4c894598e81a53fdff4883c021440fb60b4c8b45984883e0f04829c4488d7c240f4883e7f04584c90f84150300004c8b35764306004989fa31f649bd0740000000000800eb1d0f1f4400004180f92f0f84160100004883c301440fb60b4584c9744c904d0fbed9418d49d4b801000000430fb7145e66c1ea0383e20180f93377104c89e848d3e883e0014883f00183e00138d077b6438b049c4883c3014983c201418842ff440fb60b4584c975b583fe017f1785f6498d420141c6022f0f85780200004c8d5001c6002f41c602004c89c066904883c001480fbe50ff418b149484d28850ff75ec4889f8660f1f8400000000004883c001480fbe50ff418b149484d28850ff75ec4c89c6e8e470ffff85c00f8509fcffff4d8b671049833c24000f848b010000488b7db04885ff0f84a0000000bac0284b00bef1414a00e8811cfbff85c0498b47107507c74034010000008b503083fafd0f878bfbffff83c201895030e980fbffff0f1f0083c60183fe030f8453ffffff41c6022f4983c201e9d1feffff0f1f80000000004183c6014183fe030f8461feffffc6072f4883c701e9d8fdffff660f1f44000089de4c89ffe8be040000e934fdffff660f1f840000000000488b7dc8e8b7f8fcffe911fdffff6690498b4710e975ffffff0f1f80000000004c89f689dfe8760800004885c00f85f2faffff498b3ee8556bfbff4885c0488945a0742b488d75a089dfe8510800004885c00f85cdfaffff4c8b7da048c745981000000041bc40644a00e9ecfbffff48c745981000000041bc40644a004d8b3e4c897da0e9dbfbffff498b7f204885ff7526e976010000660f1f84000000000048837f100075294183c4014963c4498b7cc7204885ff741b8b470885c075e189dee8ea0300004963c4498b7cc720ebd04963c449897f204d8b7cc7204d85ff0f8478faffff4d8b6710e94afcffff498b3fbe2f000000e8057001008078fe2f488d78ff740d0f1f004883ef01807fff2f75f64829f84889c6e8f36b010049890424e93dfeffff4883ec084c8b4db84c8b45a8488b5598488b7d884489d96a0141564c89e6ff75b0ff75c8ff75c0e8fe6bfbff4883c4304885c04989c7448b5d940f85affbffff31c0e9f2f9ffff0f1f004889c7e9bffcffff4989c2e987fdffff488d4701c6072fe974fdffff4c8b2565400600488d400141c6002fe990fcffff41803f2e0f8576faffff41807f012e0f849af9ffffba02000000be2f0000004c89ffe88974fdff4885c00f857ff9ffffe96afaffff43807c2ffe2e0f853ffaffff43807c2fff2e0f8533faffffe95df9ffff41807f012e0f8517faffff41807f022f0f850cfaffffe942f9ffff31c0e9bffeffffb930644a00ba1f010000be34634a00bf41634a00e8832ffbff0f1f00836e30017542837e1802742d4863ff488b04fd00d36c00483b7010740d0f1f00488b4018483b701075f6c740080000000048c74010000000004889f7e9cf0500000f1f8000000000f3c3660f1f440000415741564155415455534883ec084883fa070f861801000083ff038b0eb817100520741389f841b820070920351511032085ff410f44c039c80f85f1000000448b6e044c63f74e3b2cf5806a4a000f82dc0000004a8d04ad080000004839c20f86cb00000089fb4a8d3ced400000004989d44889f5e826f2fcff4889c731c04885ff0f84b80000004d85ed48896f084c89671048c747280000000048c7472000000000c7473000000000c747340000000044896f380f84530100008b45084939c44889c1726231d20f1f84000000000083fb0c0f870701000089deff24f580644a00660f1f4400004883fa04773a66904a8b34f500654a00833c96050f84f60000004801e8488944d7404883c2014939d50f84f70000008b4495084939c44889c173ad0f1f440000e813f5fcff0f1f0048c7c0d0ffffff64c7001600000031c04883c4085b5d415c415d415e415fc3904883fa0c769aebd00f1f8400000000004883fa06768aebc00f1f8400000000004883fa020f8676ffffffebac0f1f40004883fa0f0f8666ffffffeb9c0f1f40004883fa2d0f8656ffffffeb8c0f1f40004883fa120f8646ffffffe979ffffff904883fa6e0f8636ffffffe969ffffff904883fa050f8626ffffffe959ffffff904883fa010f8616ffffffe949ffffff9085db75324883fa470f8714ffffffe9fdfeffff0f1f44000083e1030f8527ffffff8b4405008944d740e9fcfeffff4889f8e92affffffb9f06a4a00ba8d000000be50644a00bf5d644a00e8012dfbff90554889e5415741564155415441bf02000000534189f44889fbbe000008004489f84881eca8000000c747080100000048c7471000000000488b3f0f05483d00f0ffff4989c6762148c7c0d0ffffff41f7de64448930488d65d85b415c415d415e415f5dc30f1f400085c04c63e878e6488d9540ffffff89c6bf01000000e8ae06ffff85c00f88a60000008b8558ffffff2500f000003d004000000f84b000000048c7c0d0ffffff488bb570ffffff4531c931ff4589e8b902000000ba0100000064448b30e88711ffff4883f8ff4989c70f848a0100004963fd41be0100000041bd01000000b8030000000f054d85ff0f8460ffffff488b9570ffffff4c89fe4489e7e8c9fcffff4885c00f843001000048c700000000004489701848894310488d65d85b415c415d415e415f5dc366904963feb8030000000f05488d65d85b415c415d415e415f5dc30f1f80000000004963feb8030000000f05488b334889f74889b530ffffffe8444bfdff4963d4488bb530ffffff0fb6bae8614a00440fb6b2f8614a004889c24088bd38ffffff488d7c38244981c620624a004883e7f04829fc4c8d6c240f4983e5f04c89efe86d7afdffba05000000be72644a004889c7e85b7afdff0fb68d38ffffff4c89f64889c7488d5101e8457afdffbe000008004c89ef4489f80f05483d00f0ffff4989c7761d48c7c0d0ffffff41f7df64448938e94ffeffff662e0f1f84000000000085c04c63e80f883afeffff488d9540ffffffbf0100000089c6e80205ffff85c04963ff0f8967feffffe9f5feffff66904183fd010f850bfeffff488bb570ffffff4c89ffe8b710ffffe9f7fdffff669048c7c0d0ffffff6483382674174963fd41be0100000041bd010000004531ffe961feffff4c8b8d70ffffff4c89cf4c898d38ffffffe8d6edfcff4885c04989c74c8b8d38ffffff0f84c90000004d85c94963fd0f8ea70000004889c64c89ca4c89ef31c00f05483d00f0ffff77334885c04889c27e524d89fa4531c00f1f40004929d14901c24d85c97e724c89ca4c89d64c89ef4489c00f05483d00f0ffff761f48c7c1d0fffffff7d84c89ff648901e8fbf0fcff4c89efe916feffff0f1f004885c04889c27fb84c89ff48899538ffffffe8d9f0fcff488b9538ffffff4c89ef4885d20f85e9fdffff48c7c0d0ffffff64c70016000000e9d6fdffff4c89ef48c7c0d0ffffff4531ed644489304531f6e96ffdffff4963fd4531f64531ede961fdffff6690662e0f1f84000000000053488b47204889fb4885c07402ffd08b431885c0743a83f801741d83f8027408488b3be858f0fcff4889df5be94ff0fcff0f1f8000000000488b7310488b7b08e83b0fffff8b4318ebd1660f1f440000488b7b08e827f0fcff8b4318ebbd6690554889e541574156415541544989f5534881ec0801000089bddcfeffffbf1e000000488b1ee856fbfeff4c8b354fd727004d85f6745a4d8b7e084939df751aeb270f1f80000000004d8b364d85f674404d8b7e084c39fb740f4c89fe4889dfe81c13fbff85c075e04c63a5dcfeffff4d897d004b8b44e610488d65d85b415c415d415e415f5dc3660f1f840000000000be2e0000004889dfe80313fbff4885c0740af64001bf0f856702000048833d94d72700000f84260300004c8b356fd727004d85f60f84260200004889dfe8ee47fdff4885c089c274184889d94801d8900fb631c1c2094883c10101f24839c175ef418b4e1085d24189d0b8ffffffff4c0f44c085c90f84e50100004189ca4c89c031d249f7f283e9024c89c04889d631d248f7f1418b4608488985d0feffff4889c14c8d4a014f8d1c494e8d249d00000000488d04764a8d140e488d0c814d8d3c0eeb170f1f40004d01e74939d2498d04110f86990100004889c2418b770485f60f8479010000418b074c39c075d94c01f64889df4c8985e0feffff488995e8feffff4c898df0feffff4c8995f8feffffe8da11fbff85c04c8b95f8feffff4c8b8df0feffff488b95e8feffff4c8b85e0feffff7592418b470885c00f841e0100008b1564d62700483b15f1d527004989d10f8516030000488d9d00ffffff498d740604ba010000004889d9eb0b83c2014883c1104883c60883fa0774f08b068b7e04448d04384539c10f82d00000004c01f083fa0d48890189f84889410875cdbf78000000e845eafcff4885c04989c70f84a9000000498b7d00e82046fdff4885c0498947080f8492020000488b051cd52700498d4f104c893d11d5270041bc010000004531f6498907eb130f1f004183c6014183c4014883c3104883c1084183fe0674ea488b5308488b334489f748898df8feffffe834f7ffff488b8df8feffff4885c04889017415498b5708c7401802000000c74030ffffffff4889104183fc0d75aa4c63a5dcfeffff498b4708498945004b8b44e710e989fdffff90488d65d831c05b415c415d415e415f5dc34c29d2488b8dd0feffff4889d6e92ffeffff4c8d7001be400000004c89f7e82cdbfdff4989c74c89f7488985f8feffff4d29f74c89fee83467fbff4885c04989c474ac4c89fa4c89f64889c7e80e47fdff85c0750743803c3c0074764c89e7e85b45fdff488bbdf8feffff4989c7e84c45fdff4c89f24c8d40014889de4829da498d04174c8985f0feffff498d44001e4883e0f04829c44c8d74240f4983e6f04c89f74c89f3e88474fdff4c89fa4c89e64889c7e87674fdff4c8b85f0feffff488bb5f8feffff4889c74c89c2e8bdcefdff4c89e7e845ecfcffe9ccfcffffb90200000048c70558d4270010c86c00be00000800bfa06b4a0089c80f05483d00f0ffff4989c70f87a700000085c00f88dbfeffffba80c76c0089c6bf01000000e81afffeff83f8ff0f84a50000004c8b259ad327004531c931ff4589f8b902000000ba010000004c89e6e8100affff4883f8ff4989c6747b8b4010488d1440418b4608488d0490418b5624488d1452488d0cd2418b5620488d148a4839d0480f4cc2418b5618410356144839d0480f4cc24939c472324963ffb8030000000f054c893588d327004489258dd32700e916fcffff48c7c2d0ffffff41f7df31c06444893ae9affbffff4c89e64c89f7e84c0affff4963ffb8030000000f05488d65d831c05b415c415d415e415f5dc34c89ffe829ebfcff31c0e97afbffffb9806b4a00ba37010000be106b4a00bf386b4a00e8f923fbff660f1f840000000000488b15b9c4270048c7c6b8ffffff488b4240488d880001000048890d08c52700488b4258480500020000488905ffc42700488b52484881c2000200006448813ec0b96c00488915edc427007403f3c39048c7c6f0ffffff6448890e48c7c1e8ffffff6448891148c7c2e0ffffff64488902c3662e0f1f8400000000000f1f400048c7c0b8ffffff4863ff64488b00488b84f880000000c3660f1f84000000000048c7c0f0ffffff644803042500000000c30f1f440000662e0f1f84000000000048c7c0e8ffffff644803042500000000c30f1f440000662e0f1f84000000000048c7c0e0ffffff644803042500000000c30f1f440000662e0f1f84000000000048c7c0b0ffffff48c7c1f0ffffff64488b00488b10488b52404881c20001000064488911488b1048c7c1e8ffffff488b52484881c20002000064488911488b0048c7c2e0ffffff488b405848050002000064488902c3662e0f1f840000000000d97c24fe0fb74424fe6681e73f0f6625c0f009c766897c24fed96c24fec3669048891f4889e864483304253000000048c1c011488947084c8967104c896f184c8977204c897f28488d54240864483314253000000048c1c21148895730488b04249064483304253000000048c1c01148894738e9080000000f1f84000000000031c085f6534889fb7415488d574831f631ffe89902000085c00f94c00fb6c089434031c05bc3662e0f1f840000000000900f1f440000662e0f1f84000000000048c7c00f0000000f050f1f80000000004881ecd00000004885f64989d00f84cd010000488b4e08488b0648894c24a0488b4e10488944248848894c24a8488b4e1848894c24b0488b4e2048894c24b8488b4e2848894c24c0488b4e3048894c24c8488b4e3848894c24d0488b4e4048894c24d8488b4e4848894c24e0488b4e5048894c24e8488b4e5848894c24f0488b4e6048894c24f8488b4e6848890c24488b4e7048894c2408488b4e7848894c2410488b96800000008b868800000048c744249820f7440048895424180d000000044d85c0489848894424900f8450010000488d542428488d742488b90d00000041ba080000004863ff89c80f05483d00f0ffff4889c20f870c0100004d85c00f84d300000085c00f88cb000000488b4c2440488b54242849894808488b4c244849891049894810488b4c245049894818488b4c245849894820488b4c246049894828488b4c246849894830488b4c247049894838488b4c247849894840488b8c248000000049894848488b8c248800000049894850488b8c249000000049894858488b8c249800000049894860488b8c24a000000049894868488b8c24a800000049894870488b8c24b000000049894878488b8c24b8000000488b5424304989888000000041899088000000488b542438498990900000004881c4d0000000c34885d27413488d54242831f6e9eafeffff0f1f800000000031d231f6e9dafeffff0f1f800000000048c7c0d0fffffff7da648910b8ffffffff4881c4d0000000c331d2e9aefeffff0f1f8400000000008d47e083f8017608e9c3fdffff0f1f0048c7c0d0ffffff64c70016000000b8ffffffffc3662e0f1f840000000000669041ba080000004863ffb80e0000000f05483d00f0ffff7708f3c3660f1f44000048c7c2d0fffffff7d8648902b8ffffffffc3662e0f1f8400000000000f1f40004885f60f841f060000415741564889f041554154488d34950000000055534989cf4889d34881ec680400004883f8044c8944241048897c245048897424480f86e60500004883e8014989d64d89c5480fafc248c74424600000000048c74424680000000049f7de48895424084989c4488b4424504901c44889442420488d4424704c896424584c896424284889442440488d42ff4889442418488b742420488b44242831d2488b5c24084829f048f7f34c89ea48d1e8480fafc34c8d24064889c34c89e741ffd785c00f88711500004c89ea4c89e6488b7c242841ffd785c00f888c0b0000488b442428488b6c242048036c24084a8d1c300f1f8400000000004c89ea4c89e64889ef41ffd785c0790be9ab0a00000f1f004c01f34c89ea4889de4c89e741ffd785c078ed4839dd0f83740a0000488d45104839c3488d43100f93c24839c50f93c008c20f84ae0a0000488b7c24084883ff130f869f0a00004889e948f7d983e10f4839f9480f47cf4885c90f84780a00000fb675000fb6034883f901488d5501884500408833488d4301488b7424180f84ec0100000fb675010fb643014883f902488d550288450140887301488d4302488d77fe0f84c70100000fb675020fb643024883f903488d550388450240887302488d4303488d77fd0f84a20100000fb675030fb643034883f904488d550488450340887303488d4304488d77fc0f847d0100000fb675040fb643044883f905488d550588450440887304488d4305488d77fb0f84580100000fb675050fb643054883f906488d550688450540887305488d4306488d77fa0f84330100000fb675060fb643064883f907488d550788450640887306488d4307488d77f90f840e0100000fb675070fb643074883f908488d550888450740887307488d4308488d77f80f84e90000000fb675080fb643084883f909488d550988450840887308488d4309488d77f70f84c40000000fb675090fb643094883f90a488d550a88450940887309488d430a488d77f60f849f0000000fb6750a0fb6430a4883f90b488d550b88450a4088730a488d430b488d77f5747e0fb6750b0fb6430b4883f90c488d550c88450b4088730b488d430c488d77f4745d0fb6750c0fb6430c4883f90d488d550d88450c4088730c488d430d488d77f3743c0fb6750d0fb6430d4883f90f488d550e88450d4088730d488d430e488d77f2751b0fb6750e0fb6430e488d550f88450e4088730e488d430f488d77f14c8b5c24084c8b4c24184929cb4929c9498d7bf048c1ef044883c7014989f849c1e0044983f90e76614c8d540d0048894424384801d94531c94c89542430488b4424304531d266420f6f04084983c201f3420f6f0c09420f290c08420f1104094983c1104939fa72dd488b442438488b7c24084c29c64c01c24c01c04d39c3488d4c3d000f84730100000fb60a0fb6384883fe0140883a88080f84a90700000fb64a010fb678014883fe0240887a018848010f84900700000fb64a020fb678024883fe0340887a028848020f84770700000fb64a030fb678034883fe0440887a038848030f845e0700000fb64a040fb678044883fe0540887a048848040f84450700000fb64a050fb678054883fe0640887a058848050f842c0700000fb64a060fb678064883fe0740887a068848060f84130700000fb64a070fb678074883fe0840887a078848070f84fa0600000fb64a080fb678084883fe0940887a088848080f84e10600000fb64a090fb678094883fe0a40887a098848090f84c80600000fb64a0a0fb6780a4883fe0b40887a0a88480a0f84af0600000fb64a0b0fb6780b4883fe0c40887a0b88480b0f84960600000fb64a0c0fb6780c4883fe0d40887a0c88480c0f847d0600000fb64a0d0fb6780d4883fe0e40887a0d88480d0f84640600000fb64a0e0fb6700e4088720e88480e488b442408488d4c05004c39e50f84550600004c39e34c0f44e54889cd4c01f34839dd0f865cfbffff4889d8482b442420488b7424484839c60f8276060000488b44242848896c24204829e84839c67220488b442440488b70f04883e8104889742420488b700848894424404889742428488d44246048394424400f879dfaffff488b442458488b5c24084c8b6c24484889442408488b442450eb324881c4680400005b5d415c415d415e415ff3c34c8d60ff488d42ff4989f54c0fafe248894424184889f84901fc4c89642408488b7424084901c5488d2c184989c64c39ee4c0f42ee4d89ec4989ed4939ec0f829504000048896c2420488b6c24100f1f8400000000004c89f64c89ef4889ea41ffd785c04d0f48f54901dd4d39ec73e6488b7c2450488b6c24204939fe4889f80f84530400004883c0104889fe4939c6498d46100f93c24839c70f93c008c20f841a1500004883fb130f861015000048f7de83e60f4839de480f47f34885f60f84231500000fb607410fb60e498d56014188064889f8880f4883c0014883fe01488b4c24180f84280200000fb64701410fb64e01498d5602418846014889f8884f014883c0024883fe02488d4bfe0f84ff0100000fb64702410fb64e02498d5603418846024889f8884f024883c0034883fe03488d4bfd0f84d60100000fb64703410fb64e03498d5604418846034889f8884f034883c0044883fe04488d4bfc0f84ad0100000fb64704410fb64e04498d5605418846044889f8884f044883c0054883fe05488d4bfb0f84840100000fb64705410fb64e05498d5606418846054889f8884f054883c0064883fe06488d4bfa0f845b0100000fb64706410fb64e06498d5607418846064889f8884f064883c0074883fe07488d4bf90f84320100000fb64707410fb64e07498d5608418846074889f8884f074883c0084883fe08488d4bf80f84090100000fb64708410fb64e08498d5609418846084889f8884f084883c0094883fe09488d4bf70f84e00000000fb64709410fb64e09498d560a418846094889f8884f094883c00a4883fe0a488d4bf60f84b70000000fb6470a410fb64e0a498d560b4188460a4889f8884f0a4883c00b4883fe0b488d4bf50f848e0000000fb6470b410fb64e0b498d560c4188460b4889f8884f0b4883c00c4883fe0c488d4bf474690fb6470c410fb64e0c498d560d4188460c4889f8884f0c4883c00d4883fe0d488d4bf374440fb6470d410fb64e0d498d560e4188460d4889f8884f0d4883c00e4883fe0f488d4bf2751f410fb64e0e0fb6470e498d560f4188460e4889f8884f0e488d4bf14883c00f4989da488b7c24184929f24d8d5af04829f749c1eb044983c3014d89d849c1e0044883ff0e76404901f6480374245031ff4531c9f3410f6f043e4983c101660f6f0c3e410f110c3e0f29043e4883c7104d39cb77df4c29c14c01c24c01c04d39d00f845f0100000fb6320fb6384883f90140883a4088300f84490100000fb672010fb678014883f90240887a01408870010f842f0100000fb672020fb678024883f90340887a02408870020f84150100000fb672030fb678034883f90440887a03408870030f84fb0000000fb672040fb678044883f90540887a04408870040f84e10000000fb672050fb678054883f90640887a05408870050f84c70000000fb672060fb678064883f90740887a06408870060f84ad0000000fb672070fb678074883f90840887a07408870070f84930000000fb672080fb678084883f90940887a0840887008747d0fb672090fb678094883f90a40887a094088700974670fb6720a0fb6780a4883f90b40887a0a4088700a74510fb6720b0fb6780b4883f90c40887a0b4088700b743b0fb6720c0fb6780c4883f90d40887a0c4088700c74250fb6720d0fb6780d4883f90e40887a0d4088700d740f0fb64a0e0fb6700e4088720e88480e4c8b6c24184989de49f7de4901ed0f1f80000000004801dd483b6c24080f87f1faffff4e8d643500eb060f1f004d01f4488b5424104c89e64889ef41ffd785c078eb498d341c4e8d1c2b4839f5744a4c39dd4c89df77424d89e90f1f004939f1440fb6174c89c80f82b70f00004889faeb060f1f004889c80fb608880a4a8d0c304829da4839ce76ec4883ef014983e9014488104c39ef75c44d89dde974ffffff0f1f40000f85edf9ffff488b4424084a8d5c35004801c5e9e4f9ffff48036c2408e936f5ffff660f1f440000488b4424084c39e5488d4c05000f85abf9ffff4989dce9aaf9ffff0f1f4400004889fe4889d84889eae98af7ffff488b4424084889da488d4c05004889e866900fb6300fb63a4883c0014883c2014839c1408878ff408872ff75e5e955f9ffff488b5424284829ea48395424480f83da0e00004839d0488b4424400f8ef20e0000488b742420488958084883c01048896c2420488970f04889442440e97bf9ffff488b4c2408488b442420488d6b10488b7c24284883f9130f974424304801e8440fb65c24304839c7488d47100f93c24939c40f93c008c20f84cd0e00004584db0f84c40e00004c89e64989cb48f7de83e60f4839ce480f47f14885f60f848f0e00000fb607410fb60c24498d542401418804244889f8880f4883c0014883fe01488b4c24180f847c020000410fb64c24010fb64701498d54240241884424014889f8884f014c89d94883c0024883e9024883fe020f844d020000410fb64c24020fb64702498d54240341884424024889f8884f024c89d94883c0034883e9034883fe030f841e020000410fb64c24030fb64703498d54240441884424034889f8884f034c89d94883c0044883e9044883fe040f84ef010000410fb64c24040fb64704498d54240541884424044889f8884f044c89d94883c0054883e9054883fe050f84c0010000410fb64c24050fb64705498d54240641884424054889f8884f054c89d94883c0064883e9064883fe060f8491010000410fb64c24060fb64706498d54240741884424064889f8884f064c89d94883c0074883e9074883fe070f8462010000410fb64c24070fb64707498d54240841884424074889f8884f074c89d94883c0084883e9084883fe080f8433010000410fb64c24080fb64708498d54240941884424084889f8884f084c89d94883c0094883e9094883fe090f8404010000410fb64c24090fb64709498d54240a41884424094889f8884f094c89d94883c00a4883e90a4883fe0a0f84d5000000410fb64c240a0fb6470a498d54240b418844240a4889f8884f0a4c89d94883c00b4883e90b4883fe0b0f84a6000000410fb64c240b0fb6470b498d54240c418844240b4889f8884f0b4c89d94883c00c4883e90c4883fe0c747b410fb64c240c0fb6470c498d54240d418844240c4889f8884f0c4c89d94883c00d4883e90d4883fe0d7450410fb64c240d0fb6470d498d54240e418844240d4889f8884f0d4c89d94883c00e4883e90e4883fe0f7525410fb64c240e0fb6470e498d54240f418844240e4889f8884f0e4c89d94883c00f4883e90f4c8b5c24084929f3498d7bf048c1ef044883c70148897c243848c1e7044989f8488b7c24184829f74883ff0e76484c8d0c3348037424284c034c242031ff4531d266410f6f04394983c201f30f6f0c3e410f290c390f11043e4883c7104c3b54243872dd4c29c14c01c24c01c04d39c30f845f0100000fb6320fb6384883f90140883a4088300f84490100000fb672010fb678014883f90240887a01408870010f842f0100000fb672020fb678024883f90340887a02408870020f84150100000fb672030fb678034883f90440887a03408870030f84fb0000000fb672040fb678044883f90540887a04408870040f84e10000000fb672050fb678054883f90640887a05408870050f84c70000000fb672060fb678064883f90740887a06408870060f84ad0000000fb672070fb678074883f90840887a07408870070f84930000000fb672080fb678084883f90940887a0840887008747d0fb672090fb678094883f90a40887a094088700974670fb6720a0fb6780a4883f90b40887a0a4088700a74510fb6720b0fb6780b4883f90c40887a0b4088700b743b0fb6720c0fb6780c4883f90d40887a0c4088700c74250fb6720d0fb6780d4883f90e40887a0d4088700d740f0fb64a0e0fb6700e4088720e88480e4c89ea488b7424204c89e741ffd785c00f8982efffff488b7c24204889f84883c0104939c40f93c24885ed0f9ec008c20f849d0a0000807c2430000f84920a00004c8b4424084c89e648f7de83e60f4c39c6490f47f04885f60f842f0a00000fb607410fb60c24498d542401418804244889f8880f4883c0014883fe01488b4c24180f847c020000410fb64c24010fb64701498d54240241884424014889f8884f014c89c14883c0024883e9024883fe020f844d020000410fb64c24020fb64702498d54240341884424024889f8884f024c89c14883c0034883e9034883fe030f841e020000410fb64c24030fb64703498d54240441884424034889f8884f034c89c14883c0044883e9044883fe040f84ef010000410fb64c24040fb64704498d54240541884424044889f8884f044c89c14883c0054883e9054883fe050f84c0010000410fb64c24050fb64705498d54240641884424054889f8884f054c89c14883c0064883e9064883fe060f8491010000410fb64c24060fb64706498d54240741884424064889f8884f064c89c14883c0074883e9074883fe070f8462010000410fb64c24070fb64707498d54240841884424074889f8884f074c89c14883c0084883e9084883fe080f8433010000410fb64c24080fb64708498d54240941884424084889f8884f084c89c14883c0094883e9094883fe090f8404010000410fb64c24090fb64709498d54240a41884424094889f8884f094c89c14883c00a4883e90a4883fe0a0f84d5000000410fb64c240a0fb6470a498d54240b418844240a4889f8884f0a4c89c14883c00b4883e90b4883fe0b0f84a6000000410fb64c240b0fb6470b498d54240c418844240b4889f8884f0b4c89c14883c00c4883e90c4883fe0c747b410fb64c240c0fb6470c498d54240d418844240c4889f8884f0c4c89c14883c00d4883e90d4883fe0d7450410fb64c240d0fb6470d498d54240e418844240d4889f8884f0d4c89c14883c00e4883e90e4883fe0f7525410fb64c240e0fb6470e498d54240f418844240e4889f8884f0e4c89c14883c00f4883e90f4c8b5c2408488b7c24184929f34829f7498d6bf048c1ed044883c5014989e949c1e1044883ff0e764a488d3c33488b5c24204531c04531d24801df4801de66420f6f04074983c201f3420f6f0c06420f290c07420f1104064983c0104939ea72dd4c29c94c01ca4c01c84d39cb0f8421ecffff0fb6320fb6384883f90140883a4088300f840becffff0fb672010fb678014883f90240887a01408870010f84f1ebffff0fb672020fb678024883f90340887a02408870020f84d7ebffff0fb672030fb678034883f90440887a03408870030f84bdebffff0fb672040fb678044883f90540887a04408870040f84a3ebffff0fb672050fb678054883f90640887a05408870050f8489ebffff0fb672060fb678064883f90740887a06408870060f846febffff0fb672070fb678074883f90840887a07408870070f8455ebffff0fb672080fb678084883f90940887a08408870080f843bebffff0fb672090fb678094883f90a40887a09408870090f8421ebffff0fb6720a0fb6780a4883f90b40887a0a4088700a0f8407ebffff0fb6720b0fb6780b4883f90c40887a0b4088700b0f84edeaffff0fb6720c0fb6780c4883f90d40887a0c4088700c0f84d3eaffff0fb6720d0fb6780d4883f90e40887a0d4088700d0f84b9eaffff0fb64a0e0fb6700e4088720e88480ee9a5eaffff488b7c2420488d43104885c04889f80f9ec24883c0104939c40f93c008c20f84470500004c8b4424084983f8130f86380500004c89e648f7de83e60f4c39c6490f47f04885f60f84e10400000fb607410fb60c24498d542401418804244889f8880f4883c0014883fe01488b4c24180f847c020000410fb64c24010fb64701498d54240241884424014889f8884f014c89c14883c0024883e9024883fe020f844d020000410fb64c24020fb64702498d54240341884424024889f8884f024c89c14883c0034883e9034883fe030f841e020000410fb64c24030fb64703498d54240441884424034889f8884f034c89c14883c0044883e9044883fe040f84ef010000410fb64c24040fb64704498d54240541884424044889f8884f044c89c14883c0054883e9054883fe050f84c0010000410fb64c24050fb64705498d54240641884424054889f8884f054c89c14883c0064883e9064883fe060f8491010000410fb64c24060fb64706498d54240741884424064889f8884f064c89c14883c0074883e9074883fe070f8462010000410fb64c24070fb64707498d54240841884424074889f8884f074c89c14883c0084883e9084883fe080f8433010000410fb64c24080fb64708498d54240941884424084889f8884f084c89c14883c0094883e9094883fe090f8404010000410fb64c24090fb64709498d54240a41884424094889f8884f094c89c14883c00a4883e90a4883fe0a0f84d5000000410fb64c240a0fb6470a498d54240b418844240a4889f8884f0a4c89c14883c00b4883e90b4883fe0b0f84a6000000410fb64c240b0fb6470b498d54240c418844240b4889f8884f0b4c89c14883c00c4883e90c4883fe0c747b410fb64c240c0fb6470c498d54240d418844240c4889f8884f0c4c89c14883c00d4883e90d4883fe0d7450410fb64c240d0fb6470d498d54240e418844240d4889f8884f0d4c89c14883c00e4883e90e4883fe0f7525410fb64c240e0fb6470e498d54240f418844240e4889f8884f0e4c89c14883c00f4883e90f4c8b5c2408488b7c24184929f34829f7498d6bf048c1ed044883c5014989e849c1e0044883ff0e7647488b7c24204c8d0c334531d24901f94801fe31ff66410f6f04394983c201f30f6f0c3e410f290c390f11043e4883c7104939ea72df4c29c14c01c24c01c04d39c30f842ee7ffff0fb6320fb6384883f90140883a4088300f8418e7ffff0fb672010fb678014883f90240887a01408870010f84fee6ffff0fb672020fb678024883f90340887a02408870020f84e4e6ffff0fb672030fb678034883f90440887a03408870030f84cae6ffff0fb672040fb678044883f90540887a04408870040f84b0e6ffff0fb672050fb678054883f90640887a05408870050f8496e6ffff0fb672060fb678064883f90740887a06408870060f847ce6ffff0fb672070fb678074883f90840887a07408870070f8462e6ffff0fb672080fb678084883f90940887a08408870080f8448e6ffff0fb672090fb678094883f90a40887a09408870090f842ee6ffff0fb6720a0fb6780a4883f90b40887a0a4088700a0f8414e6ffff0fb6720b0fb6780b4883f90c40887a0b4088700b0f84fae5ffff0fb6720c0fb6780c4883f90d40887a0c4088700c0f84e0e5ffff0fb6720d0fb6780d4883f90e40887a0d4088700d0f84c6e5ffff0fb64a0e0fb6700e4088720e88480ee9b2e5ffff48895c2428e9c5eaffff4889f84883ef014983e9014c39ef4488100f8522f0ffffe959f0ffff488b7424284889284883c01048895c2428488970f84889442440e98aeaffff4889f84c89e2e90bf4ffff4889f84c89c14c89e2e9b6fdffff488b442408488b542428498d3c044c89e00fb6080fb6324883c0014883c2014839c7408870ff884aff75e6e9a2f5ffff488b442408488b542420498d3c044c89e00fb6080fb6324883c0014883c2014839c7408870ff884aff75e6e9f4e4ffff4889f84c89c14c89e2e968f8ffff488b442450498d341e410fb6160fb6084983c6014883c0014939f641884eff8850ff75e5e9f1eeffff4889f84c89f24889d9e91dedffff488b442408488b542420498d0c044c89e00fb6300fb63a4883c0014883c2014839c1408878ff408872ff75e5e994e4ffff662e0f1f8400000000000f1f440000554889e541574156415541544989d6534883ec3848897dc8488975b0488955c0894dbce84822fdff4d85f64889c30f8444020000be0100000031c0833d4abb270000740cf00fb135c4b12700750beb230fb135b9b12700741a488d3db0b127004881ec80000000e88411ffff4881c4800000004c8b3d96af27004d85ff0f84e50100004d8b2f4d85ed0f84d90100004531e4eb070f1f40004d89f4488b75c84889da4c89efe86623fdff85c0750841807c1d003d747b4983c7084d8b2f4d8d7424014d85ed75d14a8d34e5180000004c8b2d2ab127004c89efe8b2cafcff4885c04889c10f84a4010000488b351faf27004939f54e8d2cf500000000740e4c89ea4889c7e837abfdff4889c14e8d3c2948890de9b0270049c707000000004ac744f1080000000048890de2ae27004d8b2f4d85ed74528b45bc85c0754b833d48ba270000740bf0ff0dc3b02700750aeb22ff0db9b02700741a488d3db0b027004881ec80000000e8b410ffff4881c48000000031c0488d65d85b415c415d415e415f5dc30f1f400048837dc0007409488b45c0498907eba5488b45a8488d4c18014881f9001000000f8720010000488d411e488b75c84889da48894dc04883e0f04829c44c8d74240f4983e6f04c89f7e80b50fdffba01000000be4a4c4b004889c7e8f94ffdff488b55a8488b75b04889c7e8e94ffdffba60034000be38c86c004c89f7e817f0feff4885c0488b4dc07410488b004885c0488945c00f856dffffff4889cf48894dc8e802c4fcff4885c0488945c0488b4dc874534889c74889ca4c89f6e8f7a9fdff488b7dc0ba60034000be38c86c00e864ecfeffe92effffff0f1f8000000000be100000004531f6e95afeffff0f1f00488b7db0e8ef1ffdff4883c001488945a8e9a6fdffff833df7b8270000740bf0ff0d72af2700750aeb22ff0d68af2700741a488d3d5faf27004881ec80000000e8630fffff4881c480000000b8ffffffffe9a7feffff4889cf48894dc0e8d60effff85c0488b4dc00f85c8feffff4889cfe842c3fcff4885c0488945c07497488b75c84889da4889c74889c3e8d74efdffba01000000be4a4c4b004889c7e8c54efdff488b55a8488b75b04889c7e8b54efdffba60034000be38c86c004889dfe8e3eefeff4885c00f8403ffffff488b184885db0f84f7feffff488b7dc0e875c6fcff48895dc0e92bfeffff6690662e0f1f8400000000004885ff415455537437803f0074324889f5be3d0000004189d44889fbe8bfe9faff4885c0751a4489e14889ee4889df5b5d415c31d2e956fcffff660f1f44000048c7c0d0ffffff64c70016000000b8ffffffff5b5d415cc30f1f8400000000004155415455534883ec084885ff0f840d010000803f000f8404010000be3d0000004989fce857e9faff4885c00f85ee0000004c89e7e8661efdffbe010000004989c531c0833d71b7270000740cf00fb135ebad2700750beb230fb135e0ad2700741a488d3dd7ad27004881ec80000000e8ab0dffff4881c480000000488b2dbdab27004885ed742f488b5d004885db74264c89ea4c89e64889dfe8a11ffdff85c0750742803c2b3d74564883c508488b5d004885db75da833dfeb6270000740bf0ff0d79ad2700750aeb22ff0d6fad2700741a488d3d66ad27004881ec80000000e86a0dffff4881c4800000004883c40831c05b5d415c415dc3660f1f4400004889e80f1f440000488b50084883c008488950f84885d275efe96affffff669048c7c0d0ffffff64c700160000004883c408b8ffffffff5b5d415c415dc366904883ec08be0100000031c0833d6ab6270000740cf00fb135e4ac2700750beb230fb135d9ac2700741a488d3dd0ac27004881ec80000000e8a40cffff4881c480000000488b3db6aa270048393d9fac270075154885ff7410e863c4fcff48c70588ac27000000000048c7058daa270000000000833d02b6270000740bf0ff0d7dac2700750aeb22ff0d73ac2700741a488d3d6aac27004881ec80000000e86e0cffff4881c48000000031c04883c408c38b05a283270085c07506e991cdfbff9031c0c3662e0f1f8400000000000f1f0048c7c0b8ffffff644c8b00e92000000048c7c0b8ffffff31c9644c8b00e90e000000662e0f1f8400000000000f1f4000415741564989f7415541544989fe55534883ec2885c97416498b7008488b4e500fb60183e8013c7d0f86f200000031c931ed83fa010f84c500000083fa240f87bc000000490fbe06498b70684d89f4f6444601204889c3741a0f1f80000000004983c401490fbe0424f6444601204889c375ed84db0f84bd00000080fb2d0f843703000080fb2bc7442414000000000f84b503000080fb300f84dd00000085d20f85e10000004885c948890c240f84d80300004889efe8a51bfdff4885c04989c574780fb67d00488b0c244038df0f853f02000031d2eb180f1f840000000000410fb6341440387415000f85230200004883c2014839d075e7eb400f1f44000048c7c0d0ffffff64c7001600000031c04883c4285b5d415c415d415e415fc390488b6e48807d00000f8504ffffffe9fbfeffff0f1f4400004d89f44d85ff0f84150300004c89e04c29f04883f8017e17490fbe5424ff488b059b0b0600833c90580f84c10200004d89374883c42831c05b5d415c415d415e415fc3f7c2efffffff0f846d02000083fa0a0f8416ffffff8d42fe48984c8b0cc5002a4b000fb680c0294b00884424134531ed4531c04d39e0748884db74844863ca4c89e74c8964241848890c244c8b1d1b0b0600498d4dff488b05200b06004c8b24244531d231f648894c2408662e0f1f8400000000008d4bd080f9090f86a90000004d85ed0f848f000000385d000f858600000031c9881c24eb0d0f1f000fb61c0f385c0d00756e4883c1014939cd75ed488b5c2408488d0c1f0f1f4000488d79010fb659014939f8740484db75a74c8b6424184939fc0f84e4feffff4d85ff740349893f4585d2757e8b54241485d20f846201000048b800000000000000804839c60f875e0100004889f048f7d8e982feffff66900fb61c240fb6db41f6445b010474aa8b0c9883e9370fb6d939d37d9d4c39ce770f3a4c241376194c39ce75140f1f40004889f941ba01000000e96affffff6690490faff40fb6c94801ce4889f9e956ffffff48c7c0d0ffffff48be000000000000008064c700220000008b44241485c048b8ffffffffffffff7f480f45c6e9fdfdffff84db0f84680100004c8b05c60906004c8b0dcf0906004c89e60f1f40008d53d080fa09762540383e755b31d2eb130f1f8000000000440fb61c1644385c150075444883c2014839d075eb4883c6010fb61e84db75c84889ea4c89e7e8bdd2fbff410fb61c244989c0c64424130549b99999999999999919ba0a000000e91afeffff0f1f40000fb6db41f64458010474c541833c99407fbe4883c6010fb61e84db0f8577ffffffebad410fb65c2401c7442414010000004983c401e9c3fcffff48b8ffffffffffffff7f4839c6766148c7c2d0ffffff64c70222000000e91cfdffff490fbe742401488b05f7080600833cb058745985d20f8578fdffffc64424130749b9ffffffffffffff1fba08000000e980fdffff41807c24fe300f8533fdffff4983ec0131c04d8927e9cefcffff4889f0e9c6fcffff410fb65c24014983c401e93cfcffff31c0e9b0fcffff410fb65c2402c64424130f4983c40249b9ffffffffffffff0fba10000000e925fdffff4c89e6e9ddfeffffc64424130549b99999999999999919ba0a000000e904fdffff6690662e0f1f8400000000004989c831c9e946fbffff660f1f44000085c9b8602b4b0041b8202b4b004c0f45c083fa0a747a83fa10743583fa0889d1744e660f1f4400004889f831d24883ee0148f7f1410fb614104885c04889c7881675e54889f0c3660f1f8400000000004889f848c1ef044883ee0183e00f4885ff410fb60400880675e6ebd70f1f40004889f848c1ef034883ee0183e0074885ff410fb60400880675e6ebb70f1f400048b9cdcccccccccccccc660f1f4400004889f84883ee0148f7e148c1ea03488d04924801c04829c74885d2410fb604384889d7880675d94889f0c30f1f44000053b8602b4b0041b9202b4b004989f04883ec2085c94c0f45c883fa0a0f84be00000083fa100f848d00000083fa0889d1488d7424207459660f1f8400000000004889f831d24883ee0148f7f1410fb614114885c04889c7881675e5488d4424204839c6731d488d4601488d5c24214c89c74829c34889dae824a0fdff4989c04901d84883c4204c89c05bc30f1f440000488d7424200f1f004889f848c1ef034883ee0183e0074885ff410fb60401880675e6eba70f1f4000488d7424200f1f004889f848c1ef044883ee0183e00f4885ff410fb60401880675e6e97cffffff90488d74242048b9cdcccccccccccccc904889f84883ee0148f7e148c1ea03488d04924801c04829c74885d2410fb604394889d7880675d9e93fffffff0f1f400041554154555389f54889fb4883ec08488b4f28488b77204889ca4829f285d2752748394b307669488d410148894328408829400fb6c54883c4085b5d415c415dc30f1f8000000000488bbfe00000004c63e24c89e2488b87d8000000ff50384989c5488d40ff4883f8fd7744488b7b204c89e24c29ea4a8d342fe891dffaff488b4b284c29e948394b3048894b2877974883c408400fb6f54889df5b5d415c415de94a29fcff662e0f1f840000000000b8ffffffffe97cffffff660f1f440000554889e541574156415541544989d7534989fc4889cf4989ce4883ec18488975c8e8ca14fdff410fbe1f4889c14c89e08d53ff80fa7d7618488d65d85b415c415d415e415f5dc3660f1f840000000000488b55c84c89e648894dc04983c7014c29e2488d421e4883e0f04829c44c8d6c240f4983e5f04c89efe8e243fdff4939c50f83b0000000488b4dc0488b75c84c63d1660f1f4400004883e8010fb61083eb01488d7eff8856ff75754939c5735a4f8d041689ce662e0f1f840000000000450fb648ff83ee014883ef014983e80185f644880f7fe9410fbe1f80fb7f741884db781484db74484983c7010f1f40004889feeba30f1f004883e8010fb6104883ef014939c5881772ee488d65d84889f85b415c415d415e415f5dc30f1f40004939c572cbebe3660f1f840000000000410fbe5fffebb9488b45c8e9f8feffff554889e541574156415541544989fd53bf842b4b004989d64889f34883ec68e83c890100bf2e0000004989c44889c6e8bc8901004c89e6bf2c0000004189c7e8ac8901004d85e4898578ffffff7453488d5580488d7d904489fe48c7458000000000e8394401004883f8ff8b8d78ffffff0f84e1010000c644059000488d5580488d7db089ce48c7458000000000e80d4401004883f8ff0f84c9010000c64405b0004c29eb4881fb001000004889da76204889df48899d70ffffffe83002ffff85c0898578ffffff4889da0f8400010000488d421ec78578ffffff010000004883e0f04829c4488d5c240f4883e3f04c89ee4889df4d89f7e82342fdff4989c54983ed014c39eb0f8792000000410fbe45008d50d080fa090f86f20000004d85e40f84d900000089c283e2fd80fa2c0f85cb0000003c2e488d75b0488d4590480f44f04889f28b0a4883c2048d81fffefefef7d121c8258080808074e989c1c1e910a9808000000f44c1488d4a0289c7480f44d14000c74883da034829f24929d74885d20f8476ffffff4c89ff4983ed01e8ea9bfdff4c39eb0f866effffff8b9578ffffff4c89f885d275164889df4c89bd78ffffffe855b9fcff488b8578ffffff488d65d85b415c415d415e415f5dc34889df48899d70ffffffe890b5fcff4885c04889c3488b9570ffffff0f85fcfeffff4c89e8ebca0f1f840000000000418847ff4983ef01e9f3feffff0f1f0048c7c2b0ffffff83e807489864488b12488b124c8b74c2404c89f7e88011fdff4929c74885c0488d48ff0f84c0feffff410fb6040e4188040f4883e9014883f9ff75ede9a8feffffbe2e00000066897590e916feffffb92c00000066894db0e92efeffff6690662e0f1f840000000000554889e541574156488d85c0fbffff41554154534883c0104881ece804000048837d30ff4889bd70fbffff4889b5f8faffff899518fbffff4c898578fbffff44898d80fbffff4c8b7d18488985c0fbffff48c785c8fbffff0004000048c78598fbffff000000000f848c14000041803f000f84c0190000488d85c0fbffff31db4531f648c78588fbffff0e0000004c8d6810660f1f4400004b8d04f6488d8d98fbffff4889de4c89ff4983c6014d8d64c5004c89e2e876f600004d8b7c24204801c341803f0074484c39b588fbffff75c7488dbdc0fbffffe8532b010084c00f847b08000048b88fe3388ee3388ee34c8badc0fbffff48f7a5c8fbffff48c1ea0648899588fbffffeb8e660f1f44000048399d98fbffff480f439d98fbffff4881fb555555050f871e0800004c8d245b49c1e4034981fc001000004d89e776104c89e7e828fffeff85c00f84d80600004983c71e48c78508fbffff000000004983e7f04c29fc488d44240f4883e0f048898588fbffff488b8570fbffff4989dc488d149d0000000049c1e4044c03a588fbffff8b40744c89a568fbffff4901d489c64c89e7898560fbffffc1e61dc1fe1fe82adafaff4d85f60f84701500004531c04d89ef4c89ad60fbffff48899d58fbffff4d89e5488b9d68fbffff4d89f44d89c6eb280f1f0049634730418b5734418954850049634730418b57408914834983c6014983c7484d39e674614963472c83f8ff740941c7448500000000004963472883f8ff740941c744850000000000498b77384885f674c64883fe0174a849635730496347084983c6014c8b1525aa27004c89ff4983c74848c1e202488d0c134c01ea41ff14c24d39e6759f488b9d58fbffff4d89e64d89ec4c8bad60fbffff4885db0f84d6000000488b9588fbffff488b8d78fbffff4531ff0f1f40004b6304bc83f8057f5783f8030f8d4f04000083f8010f8f6504000085c00f895d04000083f8ff0f852c040000488b8570fbfffff64074040f85b3040000b9c0344b00ba64070000be962b4b00bfc02b4b00e88aeefaff662e0f1f8400000000003d000100000f84f60300000f8e2f0400003d000200000f84e50300003d000400000f84f90300003d070100000f85c6030000488b41084883c00f4883e0f0488d701048897108db28db3a660f1f4400004983c7014883c2104939df0f823fffffff486345104c39f048898578fbffff0f8361030000488b45204c89b510fbffff488b9d70fbffff448bb580fbffff4805e803000048898500fbffff488b8578fbffff488d04c04d8d7cc500488d85b0fbffff4883c00c488985f0faffff0f1f00410fb6470c458b4f084d632744888d68fbffff89c24189c04189c5c0ea0341d0e841c0ed0289d789c24183e00183e701c0ea044183e50189bd40fbffff89d789c283e701c0ea0589bd44fbffff89d789c283e701c0ea0689bd60fbffff89d789c283e701c0ea0789bd48fbffff0fb6fa410fb6570d89bd20fbffff89d7c0ea0383e20140d0ef889528fbffff4963572c83e7014088bd58fbffff418b7f1083faff89bd1cfbffff0f848b040000488bbd88fbffff48c1e2048b141785d20f88a504000041895704899580fbffff4963472883f8ff741b488bb588fbffff48c1e0044c6324064585e40f88620400004589278b8580fbffff4439e0410f4cc43dc80300000f8ebf03000083c0203d001000004863d00f8ed60300004889d744898d30fbffff44888550fbffff48899570fbffffe879fbfeff85c0488b9570fbffff440fb68550fbffff448b8d30fbffff0f859b0300004889d744898d30fbffff44888550fbffffe8c5affcff4885c048898570fbffff440fb68550fbffff448b8d30fbffff0f84bd1100004439a580fbffff0f8d590400004963c44883c02048038570fbffff48898550fbffff488b0585a627004885c00f84d40200004c0fbe9d68fbffff4a8b04d84885c00f84bf020000498b7f38488d14fd1e0000004883e2f04829d4488d54240f4883e2f04885ff744a4489a530fbffff458b573031f64c8ba588fbffff31c90f1f840000000000428d041148c1e0044c01e0488904f28d71014839f74889f177e6488b0507a627004c63a530fbffff4a8b04d844898d2cfbffff44888530fbffff4c89fe4889dfffd083f8fe440fb68530fbffff448b8d2cfbffff0f842602000085c00f88010a00004181fefeffff7f0f87e91c0000baffffff7f4429f239d00f87381400004101c6488b8570fbffff4885c074084889c7e82ab2fcff4585f60f88a01c0000498b7718498b57204889df488b83d80000004829f2ff5038498b5720492b57184839d00f856f100000baffffff7f4429f24863d24839d00f8f4d10000048838578fbffff014101c64983c748488b8578fbffff483b8510fbffff0f82f1fcffff4489b580fbffff4883bd08fbffff000f848602000048c78570fbffff00000000e9530900000f1f4000f6c4080f84af0000008b0183f82f776889c64803711083c0088901488b06488902e932fcffff66908b0183f82f775989c64803711083c00889018b068902e915fcffff0f1f44000083f8077fb38b41043daf000000775189c64803711083c010894104f20f1006f20f1102e9e8fbffff0f1f840000000000488b7108488d460848894108eb956690488b7108488d460848894108eba46690bfe02b4b00e8d6ebfbff660f1f440000488b7108488d460848894108ebad6690488b35c9a427004885f60f840002000048c1e00348837c06c0000f84f0010000488bbd68fbffff48899560fbffff48898d78fbffff4a6334bf4883c61e4883e6f04829f44889ce488d7c240f4883e7f048893a4c8b0576a4270041ff5400c0488b8d78fbffff488b9560fbffffe92efbffff660f1f4400004c89e7e8c0acfcff4885c048898508fbffff0f842001000048898588fbffffe92af9ffff0f1f4000418d41e03c5a0f8704060000450fbed1450fb6c00fb69558fbffff418d42e0450fb6ed48980fb68060344b00ff24c5a02c4b000f1f440000488b8500fbffff48c78570fbffff0000000048898550fbffffe9c6fcffff662e0f1f8400000000004883c21e4883e2f04829d4488d44240f4883e0f04439a580fbffff0f8dcf0000004963d44883c2204801d048c78570fbffff0000000048898550fbffffe97afcffff660f1f440000418b4704898580fbffffe986fbffff660f1f84000000000041c707ffffffff49c7c4ffffffffe98efbffff0f1f440000f7da83c820c78560fbffff01000000418957044188470c899580fbffffe943fbffff48c7c0d0ffffff64c7004b0000000f1f840000000000c78580fbffffffffffff488bbdc0fbffff488d85c0fbffff4883c0104839c77405e80aaffcff8b8580fbffff488d65d85b415c415d415e415f5dc30f1f44000048639580fbffff4883c220e928ffffff48638580fbffff4883c020e99efbffffd9eedb3ae987f9ffff4585ed0f846b0e000048c7c0b0ffffff4889a568fbffff488d95b0fbffff488b8d88fbffff64488b00488b008b80a800000048c785b0fbffff000000004883c00f48c1e80448c1e0044829c4496347304889e74889a558fbffff48c1e0048b3401e8f13701004883f8ff4989c50f84fa160000448ba580fbffff448b8560fbffff4129c44585e40f9f8580fbffff4585c00fb68580fbffff754f84c0744b4d63c4be200000004889df4c89c24c898550fbffffe87f0401004c8b8550fbffff4939c00f85a51600004181fefeffff7f0f87ee180000b8ffffff7f4429f04139c40f87791600004501e64585f60f8886180000488b83d80000004c89ea488bb558fbffff4889dfff50384939c50f855b160000b8ffffff7f4429f048984939c50f873a1600008bbd60fbffff4501ee85ff744680bd80fbffff00743d4d63ecbe200000004889df4c89eae8e90301004939c50f85161600004181fefeffff7f0f875f180000b8ffffff7f4429f04139c40f87ea1500004501e6488ba568fbffffe905fbffff488b4328483b43300f83fd110000488d500148895328c600254181feffffff7f0f84c00400004183c601e9d6faffffc78558fbffff0a0000004963473048c1e0044585ed0f84af0a0000488b8d88fbffffc78548fbffff00000000c78544fbffff00000000c78530fbffff000000004c8b2c014585e40f88650a00000f85640900004d85ed0f855b09000083bd58fbffff08410f94c54422ad40fbffff0f84ca0b0000488b8550fbffffb901000000c6852cfbffff204531e44531ed4c8d58ffc640ff308bbd60fbffff4929ccb8000000004c0f48e04589e185ff0f8562070000448b8580fbffff898d60fbffff4129c84529e04584ed4589c4741983bd58fbffff1075108bb540fbffff418d40fe85f6440f45e08b8530fbffff0b8544fbffff0b8548fbffff83f8014183d4ff80bd2cfbffff200f841f0d00008b9530fbffff85d20f84ef090000488b4328483b43300f83d40f0000488d500148895328c6002d4181feffffff7f0f84770300004183c6014584ed746a83bd58fbffff1075618b8540fbffff85c07457488b4328483b43300f83ea120000488d500148895328c600304181feffffff7f0f8435030000488b4328483b43300f837a1200000fb6bd68fbffff488d5001488953284088384181fefeffff7f0f84080300004183c6024501cc4585e47e594d63ecbe300000004889df4c89ea48898d68fbffff4c899d80fbffffe8a80101004939c50f85d20200004181fefeffff7f0f87cf000000b8ffffff7f4429f04139c40f87080d0000488b8d68fbffff4c8b9d80fbffff4501e64585f60f88c1150000488b83d80000004889ca48898d80fbffff4c89de4889dfff5038488b8d80fbffff4839c10f8570020000b8ffffff7f4429f048984839c80f8cb10c00004403b560fbffffe970f8ffffc78558fbffff08000000e995fdffffc78558fbffff10000000e986fdffff49634730488d95a0fbffff4c89fe4889df48c1e00448038588fbffff488985a0fbffffe8386e000085c00f88030200004181fefeffff7f0f8602f8ffffb9c0344b00bae6070000be962b4b00bf082c4b00e82ae3faff662e0f1f840000000000498b7738488d04f51e0000004883e0f04829c4488d7c240f4883e7f04885f67429458b47304c8b8d88fbffff31c931d2418d041048c1e0044c01c8488904cf8d4a014839ce4889ca77e6488b4328483b43300f837e0e0000488d500148895328c60025410fb6470ca8080f85710a000041bd0200000041bc0100000084c07921488b4328483b43300f83fa110000488d500148895328c60027410fb6470c4589eca8400f84430c0000488b4328483b43300f8351110000488d500148895328c6002b410fb6470c4183c401a820741d488b4328483b43300f836b110000488d500148895328c6002d4183c40141837f10300f84a90e000041f6470d08741d488b4328483b43300f831c110000488d500148895328c600494183c401418b470485c00f85f10d000041833fff0f84e80b0000488b4328483b43300f83a00f0000488d500148895328c6002e4181fcffffff7f0f847c00000049633f488bb5f0faffff31c9ba0a0000004183c401e8bfe9ffff4989c5488b85f0faffff4939c50f83950b00004489b580fbffff4989c6eb20488d480148894b2888104181fcffffff7f74304183c4014d39f50f84620b00004983c501488b4328483b4330410fb655ff72cd0fb6f24889dfe84215fcff83f8ff75c74883bd08fbffff00c78580fbffffffffffff740c488bbd08fbffffe83da8fcff488bbd70fbffff4885ff0f8407f9ffffe828a8fcffe9fdf8ffff49634730488d95b0fbffff4c89fe4889df48c1e00448038588fbffff488985b0fbffffe85b6e000085c00f8993fdffffeb949049634730488bb588fbffff48c1e0044c8b2c064d85ed0f84de09000041ba78000000c68568fbffff78c78520fbffff00000000c78540fbffff01000000c78558fbffff10000000c78530fbffff00000000e9cafafffff64374040f845f020000448ba518fbffff4585e40f84180f0000448b9d18fbffff4585db0f893f020000bf602c4b00e846e2fbff660f1f440000488b75208b7d28bae803000044898d68fbffff4531ede8e51b0100448b8d68fbffff4989c04d85c00f84720b00004180f9530f844f0900004183e5010f85450900004183fcff0f847a0a00004963f44c89c74c898558fbffffe8221d01004c8b8558fbffff4989c44189c5c78568fbffff000000008b8580fbffff4429e8898550fbffff0f88950800008b8d60fbffff0f958580fbffff0fb68580fbffff85c9756684c074624c638d50fbffffbe200000004889df4c898548fbffff4c89ca4c898d58fbffffe805fd00004c8b8d58fbffff4939c10f8528feffff4181fefeffff7f0f87741100008b8d50fbffffbfffffff7f4429f739f90f87590800004c8b8548fbffff4101ce4585f60f8800110000488b83d80000004c89e24c89c64c898558fbffff4889dfff50384939c40f85cffdffffb8ffffff7f4429f048984939c40f87100800008b9560fbffff4501ee4c8b8558fbffff85d2745b80bd80fbffff007452448bad50fbffffbe200000004889df4c898580fbffff4d63e54c89e2e84bfc00004939c40f8575fdffff4181fefeffff7f0f87c1100000b8ffffff7f4429f04139c50f87ab0700004c8b8580fbffff4501ee8b8568fbffff85c00f845ef3ffff4c89c7e894a5fcffe951f3ffff49634730488b8d88fbffff48c1e0044c8b0401e93cfeffff4963473048c1e0044585ed0f845c060000488bbd88fbffff4c8b2c074c89e8c78558fbffff0a00000048c1e83f48898530fbffff4c89e848c1f83f4931c54929c5e961f8ffff4963473048c1e0044585ed0f850006000085d20f84c30a0000488b8d88fbffff488b0401448830e9c7f2ffff0f1f4400008b8530fbffff85c00f8421030000488b4328483b43300f8375080000488d500148895328c6002d4181feffffff7f0f846ffcffff83ad80fbffff014183c6014584ed747383bd58fbffff10756a448bad40fbffff4585ed745e488b4328483b43300f83a90a0000488d500148895328c600304181feffffff7f0f8424fcffff488b4328483b43300f833a0a00000fb6bd68fbffff488d5001488953284088384181fefeffff7f0f84f7fbffff83ad80fbffff024183c6028b8580fbffff4589e24101cc4189cd4429e04585c94189c40f8fdb0200004585f60f88ec0e0000488b83d80000004889ca48898d80fbffff4c89de4889dfff5038488b8d80fbffff4839c10f859bfbffffb8ffffff7f4429f048984839c80f8cdc0500004501ee4585e40f8e9bf1ffff4d63ecbe200000004889df4c89eae836fa00004939c50f8560fbffff4181fefeffff7f0f875df9ffffb8ffffff7f4429f04439e00f82960500004501e6e959f1ffff48c7c0c8ffffff64488b00488b00488b5848488b4050488945300fb60048895d3884c074083c7f0f8547ebffff48c7453000000000e93aebffffc6852cfbffff2031c980bd68fbffff588b9558fbffff488bb550fbffff4c89ef4489951cfbffff0f94c1e82ee4ffff48837d30004989c3448b951cfbffff7434448b8520fbffff4585c07428488b4d38488b55304889c7488bb550fbffff44899520fbffffe8a3e6ffff448b9520fbffff4989c383bd58fbffff0a752c80bd28fbffff007423488bb550fbffff4c89df44899520fbffff4889f2e8aee7ffff448b9520fbffff4989c3488bbd50fbffff4889f94c29d94d85ed410f95c54c39e10f9dc04420e80f8412f6ffff83bd58fbffff08410f94c54422ad40fbffff0f8488030000498d43ff4889f941c643ff304829c14989c3e9e3f5ffff0fb6851cfbffff41bc0100000088852cfbffffe9f4feffff85d20f85840100004585c00f85b0060000488b8d88fbffffc78548fbffff00000000c78544fbffff00000000c78530fbffff00000000448b2c01e93bf5ffff8b8548fbffff85c00f858c0100008b8544fbffff85c00f841ff6ffff488b4328483b43300f83b90a0000488d500148895328c60020e9f0f5ffff8b8548fbffff85c00f85340100008b8544fbffff85c00f84f4fcffff488b4328483b43300f83590a0000488d500148895328c60020e9befcffff48c7c0d0ffffff64c7004b0000004883bd08fbffff000f844bf2ffff48c78570fbffff00000000c78580fbffffffffffffe918f9ffff4885db0f8553ebffffe999efffff0f1f004d63c1be300000004889df4c89c24c898580fbffff44899558fbffff48898d60fbffff4c899d68fbffffe891f700004c8b8580fbffff4939c00f85b4f8ffff4181fefeffff7f0f87b1f6ffff448b9558fbffffb8ffffff7f4429f04439d00f82e30200004501d6488b8d60fbffff4c8b9d68fbffffe9abfcffff4c8b9d50fbffff31c9c6852cfbffff204531e4e93ff4ffff488b8d88fbffffc78548fbffff00000000c78544fbffff00000000c78530fbffff00000000440fb62c01e9bff3ffff488b4328483b43300f83e9060000488d500148895328c6002be998fbffff488b4328483b43300f8333070000488d500148895328c6002be972f4ffff448bad80fbffff448b9560fbffff4183ed014585ed410f9fc44585d275504584e4744b4963cdbe200000004889df4889ca48898d80fbffffe886f60000488b8d80fbffff4839c10f85a9f7ffff4181fefeffff7f0f87f50a0000b8ffffff7f4429f04139c50f87df0100004501ee49634730488bb588fbffff48c1e0048b1406488b4328483b43300f833d080000488d480148894b2888104181feffffff7f0f8451f7ffff448b8d60fbffff4183c6014585c90f845cedffff4584e40f8453edffff4d63e5be200000004889df4c89e2e8eef500004939c40f8518f7ffff4181fefeffff7f0f87640a0000b8ffffff7f4429f04139c50f874e0100004501eee911edffff488b4328483b43300f8379070000488d500148895328c60023410fb6470c41bd0300000041bc02000000e96cf5ffff488b8d88fbffff4963d6488b0401488910e9ccecffff85d20f8494040000488b8d88fbffff4c0fbe2c01e996f9ffff4189c5e96af2ffff4585e40f8e4f0300004d63c4be200000004889df4c89c24c898580fbffff44898d28fbffff48898d20fbffff4489952cfbffff4c899d50fbffffe81af500004c8b8580fbffff4939c00f853df6ffff4181fefeffff7f4c8b9d50fbffff448b952cfbffff488b8d20fbffff448b8d28fbffff0f871ef4ffffb8ffffff7f4429f04139c4775b4501e64531e4e951f2ffff488d85c0fbffff4531ff4531f631db4c8d6810e901e7ffff4585f60f88e9080000488b83d80000004c89e24c89c64889dfff50384939c40f85bff5ffffb8ffffff7f4429f048984939c40f86b2feffff48c7c0d0ffffff64c7004b000000e999f5ffff4183fc04b80500000041b8902b4b00440f4ee04180f9530f85c5f6ffff4585e44c8985b0fbffff48c785a0fbffff000000000f88ed0600004181fc001000004d63ec0f8eee0000004c89efe886e5feff85c00f85de0000004c89efe8f699fcff4885c04989c00f842df5ffffc78568fbffff01000000488d8da0fbffff488db5b0fbffff4c89c74c89ea4c898558fbffffe8002901004883f8ff4989c44c8b8558fbffff0f84eff4ffff4589e5e959f6ffffa8100f84d7f3ffff488b4328483b43300f830f070000488d500148895328c60020e9b0f3ffff448bb580fbffff418b470885c07429488b5328483b53300f8301070000488d4a0148894b2888024181fcffffff7f0f848df4ffff4183c4014181fefeffff7f0f87bc070000b8ffffff7f4429f04139c40f8629f9ffffe9bafeffff0f1f00498d451ec78568fbffff000000004883e0f04829c4488d44240f4883e0f04989c0e91affffff4c89c74c898558fbffffe82bf5fcffc78568fbffff000000004989c44189c54c8b8558fbffffe984f5ffff4489a544fbffff48898d48fbffffbe2d00000044899550fbffff4c899d60fbffff4889dfe82609fcff83f8ff4c8b9d60fbffff448b9550fbffff488b8d48fbffff448b8d44fbffff0f8548f7ffffe9bff3ffff0f1f400044898d44fbffff48898d48fbffffbe2d00000044899550fbffff4c899d80fbffff4889dfe8cf08fcff83f8ff4c8b9d80fbffff448b9550fbffff488b8d48fbffff448b8d44fbffff0f85e9efffffe968f3ffff0f1f4400004183fcff0f84440200004183fc050f8f3a0200004531edc78568fbffff000000004531e441b865694b00e9a6f4ffff4531e4e981efffff488bb588fbffffc78548fbffff00000000c78544fbffff00000000c78530fbffff00000000440fb72c06e98aeeffffbe250000004889dfe82d08fcff83f8ff0f8577f1ffffe9e2f2ffff0f1f8000000000be250000004889dfe80b08fcff83f8ff0f85f8edffffe9c0f2ffff0f1f440000488bb5f0faffff31c94863f8ba0a000000e802dcffff4989c5488b85f0faffff4939c50f83e6f1ffff4489b580fbffff4989c6eb270f1f00488d480148894b2888104181fcffffff7f0f846cf2ffff4183c4014d39f50f84df0300004983c501488b4328483b4330410fb655ff72c90fb6f24889dfe87e07fcff83f8ff75c3e937f2ffff0f1f4000488b4328483b43300f83a2040000488d500148895328c600304183c401e935f1ffff4585c00f8563030000488bb588fbffff4c632c06e9faf4ffff4585c00f855b030000488bb588fbffff488b0406448930e9fbe7ffff410fb6f24889df44898d58fbffff48898d60fbffff4c899d68fbffffe8f806fcff83f8ff4c8b9d68fbffff488b8d60fbffff448b8d58fbffff0f8599f5ffffe998f1ffff0f1f440000be300000004889df44898d48fbffff48898d50fbffff44899558fbffff4c899d60fbffffe8a706fcff83f8ff4c8b9d60fbffff448b9558fbffff488b8d50fbffff448b8d48fbffff0f8514f5ffffe940f1ffff0f1f4400004489a544fbffff48898d48fbffffbe2b00000044899550fbffff4c899d60fbffffe924fdffff41bd06000000c78568fbffff0000000041bc0600000041b8b62b4b00e966f2ffffbe2e0000004889dfe82406fcff83f8ff0f8555f0ffffe9d9f0ffff660f1f44000044898d44fbffff48898d48fbffffbe2b00000044899550fbffff4c899d80fbffffe913fdffff410fb6f24889df44898d58fbffff48898d68fbffff4c899d80fbffffe8c905fcff83f8ff4c8b9d80fbffff488b8d68fbffff448b8d58fbffff0f8559edffffe969f0ffff660f1f440000be300000004889df44898d48fbffff48898d50fbffff44899558fbffff4c899d80fbffffe87705fcff83f8ff4c8b9d80fbffff448b9558fbffff488b8d50fbffff448b8d48fbffff0f85d3ecffffe910f0ffff0f1f4400004c8ba5f8faffff899568fbffff44898580fbffff4c89e7e8ecf0fcff488d70014c89e7e8706701008b9568fbffff898518fbffff448b8580fbffffe9a8f0ffffbe2b0000004889dfe8fb04fcff83f8ff0f85a4eeffffe9b0efffff0f1f440000be490000004889dfe8db04fcff83f8ff0f85d9eeffffe990efffff0f1f440000be2d0000004889dfe8bb04fcff83f8ff0f858aeeffffe970efffff0f1f440000be230000004889dfe89b04fcff83f8ff0f857cf8ffffe950efffff0f1f440000be270000004889dfe87b04fcff83f8ff0f85fbedffffe930efffff0f1f4400000fb6f24889dfe85d04fcff83f8ff0f85b9f7ffffe912efffff0f1f800000000048c7c0d0ffffff64c7004b000000488ba568fbffffe9f1eeffff4489a544fbffff48898d48fbffffbe2000000044899550fbffff4c899d60fbffffe9dafaffff44898d44fbffff48898d48fbffffbe2000000044899550fbffff4c899d80fbffffe90bfbffff488bbd88fbffff4c0fbf2c07e996f1ffff488bbd88fbffff488b040766448930e99fe4ffff448bb580fbffffe9c8edffff488d8da0fbffff488db5b0fbffff31d231ff4c898568fbffffe8532201004883f8ff4989c40f8449eeffff8bb5a0fbffff4c8b8568fbffff85f60f85f70000004c8d68014c8985b0fbffff4981fd001000000f86b90000004c89efe851defeff85c00f85a90000004c89efe8c192fcff4885c04989c00f84f8edffffc78568fbffff01000000488d8da0fbffff488db5b0fbffff4c89c74c89ea4c898558fbffffe8cb2101004c8b8558fbffffe9d3f8ffffbe200000004889dfe8f202fcff83f8ff0f859becffffe9a7edffff0f1f40000fb6f04889dfe8d502fcff83f8ff0f85f5f8ffffe98aedffff0f1f8000000000be300000004889dfe8b302fcff83f8ff0f8553fbffffe968edffff0f1f440000498d451ec78568fbffff000000004883e0f04829c4488d44240f4883e0f04989c0e94fffffffb9c0344b00bae7070000be962b4b00bfa12b4b00e871cefaffb9c0344b00ba0e080000be962b4b00bf382c4b00e858cefaffb9c0344b00badf070000be962b4b00bf082c4b00e83fcefaffb9c0344b00bae7070000be962b4b00bf382c4b00e826cefaffb9c0344b00bae6070000be962b4b00bf382c4b00e80dcefaffb9c0344b00ba02080000be962b4b00bf082c4b00e8f4cdfaffb9c0344b00bae7070000be962b4b00bf082c4b00e8dbcdfaff90662e0f1f840000000000554889e54157415641554154534881ec2805000048c7c0d0ffffff648b0089855cfbffff8b87c000000085c00f85ee000000c787c0000000ffffffff8b0ff6c1080f85e10200004885f60f84f5020000f6c1024989d54989f44889fb0f8566010000488b02be250000004c89e7898d50fbffff4531ff488985a8fbffff488b4208488985b0fbffff488b4210488985b8fbffffe87882fdff8b8d50fbffff4989c648898568fbffff80e5800f847f000000488b83d80000004c89f14c89e64c29e14889df4889ca48898d50fbffffff5038488b8d50fbffff41b9ffffffff4839c10f8479010000f703008000007511488b9388000000836a04010f84e00000004585ff0f85120100004489c8488d65d85b415c415d415e415f5dc30f1f44000083f8ff0f8413ffffffb8ffffffffebdcb8000000004531ff4885c0410f95c70f84fb000000488dbdc0fbffff4889dabe501e4600e887b3bafff703008000000f854cffffff488b9388000000644c8b0425100000004c3b4208743ebe0100000031c0833d13852700007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e859dbfeff4881c480000000488b93880000004c89420883420401e9effeffff660f1f440000e893290000488d65d85b415c415d415e415f5dc30f1f400048c7420800000000833dad842700007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e825dbfeff4881c4800000004585ff0f84eefeffff488dbdc0fbffff31f644898d5cfbffffe8b0b2baff448b8d5cfbffffe9cdfeffff0f1f400048c785c0fbffff501e460048899dc8fbffffe90effffff660f1f8400000000004881f9ffffff7f7e1748c7c0d0ffffff64c7004b000000e96bfeffff0f1f4000488b9568fbffff4189c9803a000f8454feffff48833dad852700000f84bc000000488d85e0fbffffc78558fbffff00000000c7853cfbffff0000000048c78550fbffffffffffff48c78548fbffff0000000048898540fbffff8b855cfbffffffb548fbffff4c8d85a8fbffffffb550fbffff8b9558fbffff4c89e94c89e64889df508b853cfbffffffb540fbffff415650e83ad9ffff4883c4304189c1e9c5fdffff660f1f44000048c7c0d0ffffff83c920890f64c70009000000b8ffffffffe9c7fdffff48c7c0d0ffffff64c70016000000b8ffffffffe9affdffff48833deb842700000f8536ffffff48833d5d85270000488d85e0fbffffc78558fbffff00000000c7853cfbffff0000000048c78550fbffffffffffff48c78548fbffff0000000048898540fbffff0f8528ffffff488d420148898568fbffff440fbe5201b8a5724500418d52e080fa5a7718410fbec283e82048980fb68060344b00488b04c5a0324b00488bb540fbffffc685f0faffff204531c0c785c8faffff00000000c78528fbffffffffffffc78530fbffff00000000c785d0faffff000000004881c6e8030000c78520fbffff00000000c785e8faffff00000000c78510fbffff00000000c785e0faffff00000000c785f8faffff00000000c78508fbffff00000000c78500fbffff00000000c78538fbffff000000004889b518fbffffffe048c7c0b0ffffff418b55004889a520fbffff64488b00488b008b80a800000048c78590fbffff000000004883c00f48c1e80448c1e0044829c483fa2f4889a518fbffff0f871103000089d04903451083c208418955008b30488bbd18fbffff488d9590fbffff4c898528fbffff44898d10fbffffe8771901004883f8ff4989c34c8b8528fbffff0f84950200008b8530fbffff448b8d10fbffff4429d885c0898530fbffff0f9f8528fbffff83bd08fbffff000fb6b528fbffff0f85810000004084f6747c4c63d0be200000004889df4c89d24c8985f0faffff4c899510fbffff44898df8faffff4c899d00fbffffe8dce500004c8b9510fbffff4c8b85f0faffff4939c20f8517020000448b8df8faffff4181f9feffff7f0f8713220000b8ffffff7f4c8b9d00fbffff4429c8398530fbffff0f87da01000044038d30fbffff4585c90f8821020000488b83d80000004c8985f8faffff4c89da4c899d10fbffff44898d00fbffff4889df488bb518fbffffff50384c8b9d10fbffff4c8b85f8faffff4939c30f8595010000448b8d00fbffffb9ffffff7f89c84429c848984939c30f876b0100004501d983bd08fbffff00898d00fbffff747c80bd28fbffff0074734c639530fbffffbe200000004889df4c898510fbffff44898d18fbffff4c89d24c899528fbffffe8e0e400004c8b9528fbffff4c8b8510fbffff4939c20f851b010000448b8d18fbffff4181f9feffff7f0f87172100008b8d00fbffff4429c9398d30fbffff0f87e400000044038d30fbffff488ba520fbffff83853cfbffff014d85c074164c89c744898d30fbffffe8078efcff448b8d30fbffff488b8568fbffffbe2500000044898d28fbffff488d48014889cf48898d68fbffff48898d30fbffffe8037cfdff448b8d28fbffff48898568fbffff488b8d30fbffff4585c90f88960000004829c84889ce48898d30fbffff4889c2488b83d800000044898d28fbffff4889dfff5038488b9568fbffff488b8d30fbffff4889d64829ce4839f0754e448b8d28fbffffb9ffffff7f4429c94863c94839c80f8f810000004101c1803a000f8522fcffffe953f9ffff48c7c0d0ffffff64c7004b000000488ba520fbffff4d85c074084c89c7e82a8dfcff41b9ffffffffe926f9ffffb9e0344b00ba7f060000be962b4b00bf382c4b00e8f6c5faff498b4508488d500849895508e9ebfcffffb9e0344b00ba60060000be962b4b00bf382c4b00e8ccc5faff48c7c0d0ffffff64c7004b000000eba2488b8568fbffff488d500148899568fbffff440fbe5001418d42e03c5a0f874e1f0000410fbec2c78520fbffff0100000083e82048980fb68060344b00488b04c5a02d4b00ffe0488b8568fbffff488d500148899568fbffff440fbe5001418d42e03c5a0f87071f0000410fbec2c78520fbffff01000000c78510fbffff0100000083e82048980fb68060344b00488b04c5a02e4b00ffe0488b8568fbffff488d500148899568fbffff440fbe5001418d42e03c5a0f87b61e0000410fbec2c78520fbffff01000000c78510fbffff0000000083e82048980fb68060344b00488b04c5a02e4b00ffe0ebad488b4328483b43300f834d0c0000488d500148895328c600254181f9ffffff7f0f8484feffff4183c101e990fdffff83bd20fbffff00418b55000f84e80b000083fa2f0f87ce0b000089d04903451083c20841895500488b004889c648c1ee3f4885c04889b5d0faffff0f889d0c0000488985e8faffffc78510fbffff0a0000008b8528fbffff85c00f88320600004883bde8faffff000f852d05000085c00f852505000083bd10fbffff080f94c0228538fbffff888528fbffff488b8518fbffff0f84ec040000488d70ffc640ff30c685f0faffff204531dbc68528fbffff004889b520fbffff488b8518fbffff482b8520fbffff4929c34889c648898518fbffffb800000000490f49c383bd08fbffff004889c2488985e0faffff8985e8faffff0f85f50100008b8530fbffff29f029d080bd28fbffff00898530fbffff742083bd10fbffff10751789c683e80283bd38fbffff0089c20f44d6899530fbffff8b85d0faffff0b8500fbffff0b85f8faffff83f801839530fbffffff80bdf0faffff200f846307000083bdd0faffff000f84f1030000488b4328483b43300f8386060000488d500148895328c6002d4181f9ffffff7f0f84ecfcffff4183c10180bd28fbffff00746283bd10fbffff10755983bd38fbffff007450488b4328483b43300f83bd060000488d500148895328c600304181f9ffffff7f0f84a7fcffff488b4328483b43300f8361060000488d5001488953284488104181f9feffff7f0f8481fcffff4183c1028b8d30fbffff038de8faffff85c97e724c63d1be300000004889df4c89d24c898508fbffff4c899530fbffff44898d10fbffff898d28fbffffe8e6df00004c8b9530fbffff4c8b8508fbffff4939c20f8528fcffff448b8d10fbffff4181f9feffff7f0f878f0700008b8d28fbffffb8ffffff7f4429c839c10f87660700004101c94585c90f88d0060000488b83d80000004c898528fbffff4889df488bb520fbffff44898d30fbffff488b9518fbffffff5038488bb518fbffff4c8b8528fbffff4839c60f85b2fbffff448b8d30fbffffb8ffffff7f4429c848984839c60f8f0007000044038d18fbffffe9a1faffff83bdd0faffff000f8433020000488b4328483b43300f83ad040000488d500148895328c6002d4181f9ffffff7f0f8459fbffff83ad30fbffff014183c10180bd28fbffff00746983bd10fbffff10756083bd38fbffff007457488b4328483b43300f831b040000488d500148895328c600304181f9ffffff7f0f840dfbffff488b4328483b43300f83bf030000488d5001488953284488104181f9feffff7f0f84e7faffff83ad30fbffff024183c102488b85e0faffff8bb530fbffff89c1038518fbffff29c683bde8faffff0089b530fbffff7e764c6395e8faffffbe300000004889df4c898508fbffff898d00fbffff44898d10fbffff4c89d24c899528fbffffe82bde00004c8b9528fbffff4c8b8508fbffff4939c20f856dfaffff448b8d10fbffff4181f9feffff7f0f87d40500008b8d00fbffffb8ffffff7f4429c839c80f82ab0500004101c94585c94c898510fbffff44898d28fbffff0f8807050000488b83d8000000488bb520fbffff4889df488b9518fbffffff5038488bb518fbffff4c8b8510fbffff4839c60f85f7f9ffff448b8d28fbffffb9ffffff7f89c84429c848984839c60f8f430500008b8530fbffff44038d18fbffff898d10fbffff85c00f8ed5f8ffff4c63d0be200000004889df4c89d24c898518fbffff4c899528fbffff44898d20fbffffe83fdd00004c8b9528fbffff4c8b8518fbffff4939c20f8581f9ffff448b8d20fbffff4181f9feffff7f0f87e80400008b8d10fbffff4429c93b8d30fbffff0f82c004000044038d30fbffffe961f8ffff83bdf8faffff000f84f2040000488b4328483b43300f83c5040000488d500148895328c6002be9bbfdffff83bdf8faffff000f8450070000488b4328483b43300f8323070000488d500148895328c6002be9fdfbffff48898520fbffffc685f0faffff204531dbe91efbffffc685f0faffff204180fa588b9510fbffff488bb518fbffff488bbde8faffff0f94c14c8985b0faffff0fb6c944898db8faffff448895c0faffffe8d8c6ffff83bde0faffff0048898520fbffff440fb695c0faffff448b8db8faffff4c8b85b0faffff7410488b9550fbffff4885d20f859100000083bd10fbffff0a750d83bdc8faffff000f85c80000004883bde8faffff004c639d28fbffff488b8518fbffff488bb520fbffff0f958528fbffff0fb69528fbffff4829f04939c30f9ec020d00f8457faffff83bd10fbffff080f94c2229538fbffff889528fbffff0f84a2060000488d46ffc646ff3048898520fbffffe927faffffc78528fbffff01000000e901ffffff488b8d48fbffff488bb518fbffff4889c74c8985b8faffff44898dc0faffff448895e0faffffe896c8ffff4c8b85b8faffff48898520fbffff448b8dc0faffff440fb695e0faffffe922ffffff488bb518fbffff488bbd20fbffff4c8985c0faffff44898dc8faffff448895e0faffff4889f2e889c9ffff4c8b85c0faffff48898520fbffff448b8dc8faffff440fb695e0faffffe9ebfeffff410fb6f24889df4c898510fbffff44898d28fbffffe83df1fbff83c001448b8d28fbffff4c8b8510fbffff0f851bfcffffe90af7ffffbe300000004889df4c898508fbffff44898d10fbffff44889528fbffffe8fff0fbff83c001440fb69528fbffff448b8d10fbffff4c8b8508fbffff0f85affbffffe9c4f6ffff4c8985f8faffff44898d00fbffffbe2d00000044889508fbffff4889dfe8b9f0fbff83c001440fb69508fbffff448b8d00fbffff4c8b85f8faffff0f851dfbffffe97ef6ffff4c8985f8faffff44898d00fbffffbe2d00000044889508fbffff4889dfe873f0fbff83c001440fb69508fbffff448b8d00fbffff4c8b85f8faffff0f8544f9ffffe938f6ffff410fb6f24889df4c898510fbffff44898d28fbffffe835f0fbff83c001448b8d28fbffff4c8b8510fbffff0f8579f9ffffe902f6ffffbe300000004889df4c898508fbffff44898d10fbffff44889528fbffffe8f7effbff83c001440fb69528fbffff448b8d10fbffff4c8b8508fbffff0f850df9ffffe9bcf5ffff8b8530fbffff85c00f8ea50000004863c8be200000004889df4889ca4c8985c8faffff48898d08fbffff44898de0faffff448895f0faffffe826d90000488b8d08fbffff4c8b85c8faffff4839c10f8568f5ffff448b8de0faffff440fb695f0faffff4181f9feffff7f0f87c7000000b8ffffff7f4429c8398530fbffff0f87a000000044038d30fbffffc78530fbffff00000000e903f8ffffb9e0344b00ba5f060000be962b4b00bf382c4b00e830bbfaffc78530fbffff00000000e9dbf7ffff4585c94c898520fbffff44898d28fbffff0f8825f5ffff488b83d80000004c89d24c899530fbffff4c89de4889dfff50384c8b9530fbffff4c8b8520fbffff4939c20f85b2f4ffff448b8d28fbffffb8ffffff7f4429c848984939c20f8600f9ffff48c7c0d0ffffff64c7004b000000e985f4ffffb9e0344b00ba5f060000be962b4b00bf082c4b00e893bafaff4c8985f8faffff44898d00fbffffbe2b00000044889508fbffffe9a3fdffff83bd00fbffff000f84f2f8ffff488b4328483b43300f830f170000488d500148895328c60020e9bcf8ffff83bd08fbffff000fb6b5f0faffffb8300000000f44f0488b8568fbffff4088b5f0faffff488d500148899568fbffff440fbe5001418d42e03c5a0f87be130000410fbec283e82048980fb68060344b00ff24c5a0324b00c78510fbffff0800000083bd20fbffff00418b5500744383fa2f0f87060c000089d04903451083c20841895500488b00c785f8faffff00000000c78500fbffff00000000c785d0faffff00000000488985e8faffffe948f5ffff83bdd0faffff000f842814000083fa2f0f870e14000089d04903451083c208418955000fb600c785f8faffff00000000c78500fbffff00000000c785d0faffff00000000488985e8faffffe9f8f4ffff488b8568fbffff488d500148899568fbffff440fbe5001418d42e03c5a0f87da120000410fbec2c78500fbffff0100000083e82048980fb68060344b00488b04c5a0324b00ffe0488b8568fbffff488d500148899568fbffff440fbe5001418d42e03c5a0f8793120000410fbec2c785f8faffff0100000083e82048980fb68060344b00488b04c5a0324b00ffe0498b4508488d500849895508e92ef4ffff83bdd0faffff00746f83fa2f775c89d04903451083c20841895500480fbe00e90df4ffffc78510fbffff0a000000e98efeffffbe250000004889df4c898528fbffff44898d30fbffffe84becfbff83c001448b8d30fbffff4c8b8528fbffff0f858cf3ffffe918f2ffff498b4508488d500849895508eba383bde8faffff000f858700000083fa2f777489d04903451083c20841895500486300e992f3ffff4c8985f8faffff44898d00fbffffbe2b00000044889508fbffffe960fbffff83bd00fbffff000f84cff4ffff488b4328483b4330735d488d500148895328c60020e9a4f4ffff48f7d8c78510fbffff0a000000488985e8faffffe95bf3ffff498b4508488d500849895508eb8b83fa2f774089d04903451083c20841895500480fbf00e90af3ffff888528fbffffe98ef3ffff4c8985f8faffff44898d00fbffffbe2000000044889508fbffffe9cdfaffff498b4508488d500849895508ebbf418b550083fa2f0f875306000089d04903451083c20841895500488b004885c00f84fb000000488985e8faffff41ba78000000c785e0faffff00000000c78538fbffff01000000c78510fbffff10000000c785d0faffff00000000e99af2fffff6437404740983bd58fbffff00742d83bd20fbffff00418b5500747783fa2f776489d04903451083c20841895500488b004963d1488910e99cefffff4c898528fbffff44898d30fbffff31c04883c9ff4c89e7f2ae4c89e74889ce48f7d6e8c74c010085c0898558fbffff448b8d30fbffff4c8b8528fbffff7994bf602c4b00e855b8fbff498b4508488d500849895508eb9b83bdd0faffff000f84060b000083fa2f0f87ec0a000089d04903451083c20841895500488b00448808e917efffff8bb528fbffffb805000000c78520fbffff0000000089c241bb902b4b0083fe040f4fd6899528fbffff83bd20fbffff000f85930200004180fa530f84890200008b8528fbffff83f8ff0f84560200004c89df4863f04c898510fbffff44898d18fbffff4c899d20fbffffe8eaf200004c8b9d20fbffff448b8d18fbffff4989c24c8b8510fbffffc78528fbffff000000008b8530fbffff44899518fbffff4429d0898530fbffff0f885bfaffff0f958520fbffff83bd08fbffff000fb68520fbffff0f859600000084c00f848e00000048638d30fbffffbe200000004889df4c8985e8faffff44898df0faffff4c8995f8faffff4c899d00fbffff4889ca48898d10fbffffe89fd20000488b8d10fbffff4c8b85e8faffff4839c10f85e1eeffff448b8df0faffff4181f9feffff7f0f87d60e0000b8ffffff7f4c8b9d00fbffff4c8b95f8faffff4429c8398530fbffff0f8713faffff44038d30fbffff4585c94c8985f0faffff44898df8faffff0f88cfeeffff488b83d80000004c89d24c899500fbffff4c89de4c899d10fbffff4889dfff50384c8b9500fbffff4c8b85f0faffff4939c20f8555eeffff448b8df8faffffb8ffffff7f4c8b9d10fbffff4429c848984939c20f879cf9ffff44038d18fbffff83bd08fbffff000f848d00000080bd20fbffff000f848000000048638d30fbffffbe200000004889df4c898508fbffff44898d10fbffff4c899d18fbffff4889ca48898d20fbffffe887d10000488b8d20fbffff4c8b8508fbffff4839c10f85c9edffff448b8d10fbffff4181f9feffff7f0f87be0d0000b8ffffff7f4c8b9d18fbffff4429c8398530fbffff0f8702f9ffff44038d30fbffff83bd28fbffff000f849becffff4c89df4c898528fbffff44898d30fbffffe8a77afcff448b8d30fbffff4c8b8528fbffffe972ecffff31c04883c9ff4c89dff2aec78528fbffff000000004889c848f7d04c8d50ffe9c8fdffff8b8528fbffff4c899d90fbffff48c78580fbffff0000000085c00f88b70000003d001000004863d07e3a4889d74c898518fbffff44898d20fbffff48899528fbffffe809c2feff85c0488b9528fbffff448b8d20fbffff4c8b8518fbffff0f8423020000488d421ec78528fbffff000000004883e0f04829c4488d44240f4883e0f04989c3488d8d80fbffff488db590fbffff4c89df4c898510fbffff44898d18fbffff4c899d20fbffffe8600501004883f8ff4989c24c8b9d20fbffff448b8d18fbffff4c8b8510fbffff0f85f6fcffffe962ecffff488d8d80fbffff488db590fbffff31d231ff4c898518fbffff44898d20fbffff4c899d28fbffffe80d0501004883f8ff4989c24c8b8518fbffff0f8422ecffff83bd80fbffff004c8b9d28fbffff448b8d20fbffff0f85d0000000488d50014c899d90fbffff4881fa0010000076484889d74c898510fbffff44898d18fbffff48899528fbffff48898520fbffffe8e6c0feff85c0488b9528fbffff4c8b9520fbffff448b8d18fbffff4c8b8510fbffff0f848d000000488d421ec78528fbffff000000004883e0f04829c4488d44240f4883e0f04989c3488d8d80fbffff488db590fbffff4c89df4c898500fbffff44898d10fbffff4c899518fbffff4c899d20fbffffe82f0401004c8b9d20fbffff4c8b9518fbffff448b8d10fbffff4c8b8500fbffffe9c6fbffffb9e0344b00ba60060000be962b4b00bfa12b4b00e845b1faff4889d74c898528fbffff44898d10fbffff4c899518fbffff48899520fbffffe89174fcff4885c04989c34c8b8528fbffff0f84e7eaffffc78528fbffff01000000488b9520fbffff4c8b9518fbffff448b8d10fbffffe939ffffff498b4508488d500849895508e9a9f9ffff4889d74c898528fbffff44898d18fbffff48899520fbffffe82c74fcff4885c04989c34c8b8528fbffff0f8482eaffffc78528fbffff01000000488b9520fbffff448b8d18fbffffe9b1fdffff488dbd90fbffff31c0b9050000000fb69520fbffff8bb510fbfffff3ab8b8528fbffff0fb68de8faffff44899598fbffffc1e202898590fbffff8b8530fbffff01c909f1898594fbffff0fb68538fbffff09d10fb69500fbffffc1e00309c10fb68508fbffffc1e20409d10fb695f8faffffc1e00509c10fb685e0faffffc1e20609cac1e00709d088859cfbffff0fb685c8faffffc1e00385f688859dfbffff0fb685f0faffff8985a0fbffff0f848e010000498b45084883c00f4883e0f0488d501049895508db28dbbd80fbffff488d8580fbffff488d9570fbffff488db590fbffff4889df4c898528fbffff44898d30fbffff48898570fbffffe86b3a000085c04c8b8528fbffff0f8855e9ffff448b8d30fbffff4181f9feffff7f0f87bcf4ffffbaffffff7f4429ca39d00f8799f4ffff4101c1e93ee8ffff488dbd90fbffff31c0b9050000000fb69520fbffff8bb510fbfffff3ab8b8528fbffff0fb68de8faffff44899598fbffffc1e202898590fbffff8b8530fbffff01c909f1898594fbffff0fb68538fbffff09d10fb69500fbffffc1e00309c10fb68508fbffffc1e20409d10fb695f8faffffc1e00509c10fb685e0faffffc1e20609cac1e00709d085f688859cfbffff0fb685f0faffff8985a0fbffff0f848c000000498b45084883c00f4883e0f0488d501049895508db28dbbd80fbffff488d8580fbffff488d9578fbffff488db590fbffff4889df4c898528fbffff44898d30fbffff48898578fbffffe8cf3b000085c04c8b8528fbffff0f89d4feffffe924e8ffff418b550481faaf000000774889d04903451083c21041895504f20f1000f20f118580fbffffe964feffff418b550481faaf000000772c89d04903451083c21041895504f20f1000f20f118580fbffffe966ffffff498b4508488d500849895508ebb7498b4508488d500849895508ebd3c78510fbffff10000000e9e4f3ffff498b4508488d500849895508e9f6f3ffff488bb540fbffff8bbd5cfbffffbae80300004c898500fbffff44898d10fbffff44889518fbffffe83fe90000440fb69518fbffff448b8d10fbffff4989c34c8b8500fbffffc78520fbffff000000004d85db0f8563f7ffff8b8528fbffffc78528fbffff0000000083f8ff0f849201000083f8050f8f890100004531d241bb65694b00e99bf7ffff83bd20fbffff000f85d6e3ffff8b8d30fbffff83e90185c90f9f8530fbffff83bd08fbffff000fb68530fbffff757684c074724c63d1be200000004889df4c89d24c898510fbffff4c899528fbffff44898d18fbffff898d20fbffffe852ca00004c8b9528fbffff4c8b8510fbffff4939c20f8594e6ffff448b8d18fbffff8b8d20fbffff4181f9feffff7f0f8783060000b8ffffff7f4429c839c10f87d2f1ffff4101c9418b550083fa2f0f871b01000089d04903451083c20841895500488b5328483b53308b000f83bd000000488d72014889732888024181f9ffffff7f0f8426e6ffff4183c10183bd08fbffff000f842ae5ffff80bd30fbffff000f841de5ffff4c63d1be200000004889df4c89d24c898518fbffff4c899530fbffff44898d20fbffff898d28fbffffe881c900004c8b9530fbffff4c8b8518fbffff4939c20f85c3e5ffff448b8d20fbffff4181f9feffff7f0f87b80500008b8d28fbffffb8ffffff7f4429c839c10f8701f1ffff4101c9e9a6e4ffff41ba0600000041bbb62b4b00e90ff6ffff0fb6f04889df4c898518fbffff44898d20fbffff898d28fbffffe878dffbff83c0018b8d28fbffff448b8d20fbffff4c8b8518fbffff0f8511ffffffe93fe5ffff498b4508488d500849895508e9e1feffff498b4508488d500849895508e910f5ffff83bde8faffff000f856507000083fa2f0f874b07000089d04903451083c20841895500488b00448908e904e4ffff488dbd68fbffff4c8985b8faffff44898dc0faffffe81397faff3ddeffff7f898530fbffff448b8dc0faffff4c8b85b8faffff0f871ef0ffff8b8530fbffff3dc70300007e684863d04883c2204881fa00100000763a4889d74c8985b8faffff44898dc0faffff48899518fbffffe893b9feff85c0488b9518fbffff448b8dc0faffff4c8b85b8faffff0f84b8000000488d421e4883e0f04829c4488d44240f4883e0f04801d048898518fbffff488b8568fbffff440fbe104180fa240f840e010000418d42e03c5a0f87fc030000410fbec283e82048980fb68060344b00ff24c5a0314b00488b9568fbffff488d420148898568fbffff0fb642013c2a0f84bd01000083e830c78528fbffff0000000083f8090f86db000000488b8568fbffff440fbe10418d42e03c5a0f879a030000410fbec283e82048980fb68060344b00ff24c5a0304b004889d744898dc0faffff48899518fbffffe8286dfcff4885c04989c0488b9518fbffff448b8dc0faffff0f8484e3ffff498d041048898518fbffffe926ffffff488dbd90fbffff4c8985c0faffff44898d30fbffffe88b95faff83f8ff448b8d30fbffff4c8b85c0faffff0f849eeeffff85c00f8432020000488b8590fbffff8038240f85220200004d85c00f8445deffff4c89c744898d30fbffffe83d70fcff448b8d30fbffffe92adeffff488dbd68fbffff4c8985b8faffff44898dc0faffffe81e95faff898528fbffff83c001448b8dc0faffff4c8b85b8faffff0f842beeffff8b8528fbffff398530fbffff0f8ddcfeffff3dc80300000f8ed1feffff3ddeffff7f0f8f03eeffff48639528fbffff4883c2204881fa0010000076364889d74c8985b8faffff44898dc0faffff48899518fbffffe881b7feff85c0488b9518fbffff448b8dc0faffff4c8b85b8faffff746d488d421e4883e0f04829c4488d44240f4883e0f04801d048898518fbffffe959feffff488d420248898568fbffff48898590fbffff0fb6420283e83083f809767b418b550083fa2f7663498b4508488d5008498955088b00beffffffff85c00f49f089b528fbffffe921ffffff4889d744898dc0faffff48899518fbffffe8656bfcff4885c04989c0488b9518fbffff448b8dc0faffff0f84c1e1ffff498d041048898518fbffffe9cffdffff89d083c2084903451041895500eb9a488dbd90fbffff4c8985c0faffff44898d28fbffffe8b993faff83f8ff448b8d28fbffff4c8b85c0faffff0f84ccecffff85c00f844cffffff488b8590fbffff8038240f853cffffffe929feffff418b550083fa2f0f873201000089d04903451083c208418955004c8b18e9e0f9ffff488b8568fbffff488d500148899568fbffff48899590fbffff0fb6400183e83083f8090f8695fdffff418b550083fa2f0f8689020000498b4508488d5008498955088b0085c0898530fbffff7917f79d30fbffffc685f0faffff20c78508fbffff0100000081bd30fbffffdeffff7f0f8f18ecffff8b8530fbffff3dc70300007e684863d04883c2204881fa00100000763a4889d74c8985b8faffff44898dc0faffff48899518fbffffe88db5feff85c0488b9518fbffff448b8dc0faffff4c8b85b8faffff0f84b3010000488d421e4883e0f04829c4488d44240f4883e0f04801d048898518fbffff488b8568fbffff440fbe10418d42e03c5a0f8604fcffff4584d20f85fdfcffff48c7c0d0ffffff64c70016000000e908e0ffff498b4508488d500849895508e9cafeffffb9e0344b00ba60060000be962b4b00bf082c4b00e805a6faff488b8568fbffff488d500148899568fbffff440fbe5001418d42e03c5a779b410fbec2c685f0faffff20c78508fbffff0100000083e82048980fb68060344b00488b04c5a0324b00ffe0488b8568fbffff488d500148899568fbffff440fbe5001418d42e03c5a0f874dffffff410fbec2c78538fbffff0100000083e82048980fb68060344b00488b04c5a0324b00ffe0498b4508488d500849895508e9eeebffff83bde8faffff000f853c02000083fa2f0f87f201000089d04903451083c208418955008b00c785f8faffff00000000c78500fbffff00000000c785d0faffff00000000488985e8faffffe9c4e0ffff488b8568fbffff488d500148899568fbffff440fbe5001418d42e03c5a0f87a6feffff410fbec2c785c8faffff0100000083e82048980fb68060344b00488b04c5a0324b00ffe04889d744898dc0faffff48899518fbffffe82768fcff4885c04989c0488b9518fbffff448b8dc0faffff0f8483deffff498d041048898518fbffffe92bfeffff89d083c2084903451041895500e971fdffff488b8568fbffff488d500148899568fbffff440fbe5001418d42e03c5a0f870dfeffff410fbec2c785e8faffff0100000083e82048980fb68060344b00488b04c5a02f4b00ffe0488b8568fbffff488d500148899568fbffff440fbe5001418d42e03c5a0f87c6fdffff410fbec2c785d0faffff01000000c785e8faffff0000000083e82048980fb68060344b00488b04c5a02e4b00ffe0498b4508488d500849895508e9b1f8ffff83fa2f0f879e00000089d04903451083c20841895500488b0066448908e99edcffff4883bd50fbffffff0f84c7000000488b8568fbffff488d500148899568fbffff440fbe5001418d42e03c5a0f8734fdffff410fbec2c785e0faffff0100000083e82048980fb68060344b00488b04c5a0324b00ffe0498b4508488d500849895508e90afeffff4c8985f8faffff44898d00fbffffbe2000000044889508fbffffe95ae6ffff498b4508488d500849895508e95effffff83fa2f777d89d04903451083c208418955000fb700c785f8faffff00000000c78500fbffff00000000c785d0faffff00000000488985e8faffffe98bdeffff48c7c0c8ffffff64488b00488b00488b7048488b40504889c20fb6004889b548fbffff84c0742a3c7f7426803e00be00000000480f45f24889b550fbffffe9f6feffff498b4508488d500849895508eb8248c78550fbffff00000000e9d8feffff662e0f1f8400000000004155415455534881ec282100008b8fc000000085c90f854d010000c787c0000000ffffffff488d8424200100004889bc24000100004889fb41bd00000000c78424e0000000ffffffffc74424200480adfb48894424484889442440488d84242021000048c78424a80000000000000048c78424f8000000a0334b0048894424508b4774488d7c242089842494000000e80cd4ffff4d85ed4189c40f84280100004889dabe501e46004889e7e8d088baff8b0325008000007556488b9388000000644c8b0425100000004c3b4208743cbe01000000833d615a2700007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e8a7b0feff4881c480000000488b93880000004c89420883420401488b742440488b6c24484829f585ed7e1b488b83d80000004863d54889dfff503839c5b8ffffffff440f45e0f70300800000743d4d85ed740a31f64889e7e82e88baff4489e04881c4282100005b5d415c415dc30f1f440000b8ffffffff39c10f84b0feffffebde660f1f840000000000488b9388000000836a040175b648c7420800000000833da0592700007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e818b0feff4881c480000000eb820f1f800000000048c70424501e460048895c2408e9d6feffff660f1f44000055534883ec088b0785c0740a837f04660f840a0100004c8b4f284889fb4d85c90f84ca000000488b57184939d17e41488b7f10bd30000000b90a0000004889fee82b1c02004885c07414488b5318488b4b10488d720148897318488904d14883c40889e85b5dc3660f1f8400000000004889d1488b7f30488b53104c8b432031f6e87a110200488b5318482b5328488b4b30488904d1488b5328488b294885d2488953187431488b7b10488d4aff48837cd7f8007415e9850000000f1f440000488d49ff48833ccf0075754885c94889ca48894b1875e948c743180100000083c5304883c40889e85b5dc30f1f440000488b7f10488b5318b90a000000488d5cd7f84889fe4883ea01488b2be85f1b02004889034883c40883c53089e85b5dc38b4708bd300000008d50ff85c08957080f8ee0feffff4883c40889e85b5dc39083c530e9f0feffff0f1f840000000000554889e541574156415541544989fd53bf842b4b004989d64889f34883ec68e87c340100bf2e0000004989c44889c6e8fc3401004c89e6bf2c0000004189c7e8ec3401004d85e4898578ffffff7453488d5580488d7d904489fe48c7458000000000e879ef00004883f8ff8b8d78ffffff0f84eb010000c644059000488d5580488d7db089ce48c7458000000000e84def00004883f8ff0f84d3010000c64405b0004c29eb4881fb001000004889da0f8763010000488d421ec78578ffffff010000004883e0f04829c4488d5c240f4883e3f04c89ee4889df4d89f7e87fedfcff4989c50f1f40004983ed014c39eb0f8792000000410fbe45008d50d080fa090f86ca0000004d85e40f84b100000089c283e2fd80fa2c0f85a30000003c2e488d75b0488d4590480f44f04889f28b0a4883c2048d81fffefefef7d121c8258080808074e989c1c1e910a9808000000f44c1488d4a0289c7480f44d14000c74883da034829f24929d74885d20f8476ffffff4c89ff4983ed01e84247fdff4c39eb0f866effffff8b9578ffffff4c89f885d275164889df4c89bd78ffffffe8ad64fcff488b8578ffffff488d65d85b415c415d415e415f5dc30f1f8000000000418847ff4983ef01e91bffffff0f1f0048c7c2b0ffffff83e807489864488b12488b124c8b74c2404c89f7e800bdfcff4929c74885c0488d48ff0f84e8feffff410fb6040e4188040f4883e9014883f9ff75ede9d0feffff4889df48899d70ffffffe809acfeff85c0898578ffffff4889da0f857dfeffff4889df48899d70ffffffe86960fcff4885c04889c3488b9570ffffff0f8579feffff4c89e8e948ffffffbe2e00000066897590e90cfeffffb92c00000066894db0e924feffff6690554889e541574156415541544989d4534889fb4881ec180100000fb6420d4889b548ffffffc7856cffffff00000000c745900000000089c2c0ea0283e20183e0010fb6fa89bd50ffffff0f85c0000000488b7e08488b77404889b520ffffff8b775889b530ffffff410fb674240c4084f60f88c105000048c78558ffffff00000000c7852cffffff0000000048c78518ffffff0000000040f6c601488b010f844c010000db28d9e5dfe0dbe80f8a5e0a000089c280e6450fb6d683fa050f84cd070000488d45904c8dad70ffffff488d8d6cffffff4883ec10be01000000488d50084c89ef48898508ffffffdb3c24e8cc2802004189c641c1e606488945a8415a4183ee3f415be9450100000f1f4000488b7e204989f3488b7750803e004889b520ffffff750f498b7308488b76404889b520ffffff8bb79801000085f689b530ffffff7514488bb548ffffff488b76088b765889b530ffffff410fb674240c4084f60f890effffff488b7f604889bd58ffffff0fb63f4088bd40ffffff83ef014080ff7d0f87ecfeffff8bbd50ffffff85ff0f84af08000084c0488b8548ffffff0f85580a0000488b40088b406089852cffffff8bbd2cffffff85ff750884d20f85b0feffff8b852cffffff85c00f85b7feffffc7852cfffffffeffffff48c78518ffffff00000000e9a8feffff90f20f1000660f2ec00f8ac2080000f20f100d3ab70500660f54c8660f2e0d3eb705000f8738040000488d45904c8dad70ffffff488d8d6cffffffbe01000000488d50084c89ef48898508ffffffe8de2602004189c6488945a841c1e6064183ee348b4d9848c745b80000000089cac1fa1f89d631ce29d683c63fc1fe0683c6044863f6488d14f51e00000048c1ea0448c1e2044829d4488d7c240f4829d4488d74240f4829d4488d54240f4883e7f04883e6f048897da04883e2f083f902488975c0488955b00f8f9409000085c90f882d1800004401f14889c24c89eee8ae0f0200488b55a8488d4a0148894da8488b4da0488904d1c7459800000000418b44240449635424088985dcfeffff48c7c0e0ffffff4989d564488b008b04903c658985d8feffff0f84f411000080bdd8feffff660f84c3140000418b042485c089c10f8839170000b8010000000f45c18985d0feffff448b45904585c00f8438120000837d98040f8f38140000c7459466000000c785f4feffff000000008b8dd0feffff41bd6600000089c82b85f4feffff898538ffffff4863c14883c005488985e8feffff31c041f644240c088985f0feffff0f458538ffffff898528ffffff488b8558ffffff4885c00f84a11600000fb600ba01000000c785e0feffff00000000888540ffffff83e8013c7d0f861b130000480195e8feffff488b8de8feffff48b8fcffffffffffff3f4839c10f872d1d000048638538ffffff4839c10f821d1d00004c8d348d080000004981fe001000000f87f31b00004983c61ec785d4feffff010000004983e6f04c29f4488d44240f4883e0f048898500ffffff8b7d904883c008488985f8feffff85ff740a4183fd660f84f61800008bb5f4feffff85f60f8e1c1d00008b85f4feffff4c8bbdf8feffff48899d40ffffff448d70ff488b8500ffffff4c89fb4c8bbd08ffffff4e8d6cb00c662e0f1f8400000000004883c3044c89ffe874f7ffff4c39eb8943fc75ec488b85f8feffff8b8df4feffff488b9d40ffffff4a8d44b004898de4feffff41f644240c08750e8b8d28ffffff85c90f8e7f1a00008b8d30ffffff4c8d7804c785f0feffff0100000089088b8528ffffff4531f64c89a5c0feffff448ba5f0feffffc78510ffffff0000000048899dc8feffff898540ffffff4489f04d89fe4189c7662e0f1f8400000000008b8540ffffff4139c74189c57c184439bd38ffffff0f8e0b09000048837da8010f8ef20800008b45904183c70185c0740a837d94660f84650b00004c8b4db84d85c90f8498080000488b55a84939d10f8e03080000488b7da0bb0100000041bd30000000b90a0000004889fee8df1202004885c07414488b55a8488d4a0148894da8488b4da0488904d145892e4983c6044585e40f85ae07000084db0f84a60700008b9d28ffffff838538ffffff0185db0f8e49ffffff838510ffffff018b8510ffffff01d8898540ffffff8b8540ffffff4139c74189c50f8d30ffffffe943ffffff0f1f440000488b7f504889bd58ffffffe92cfbffff0f1f840000000000660f50c083e00148c7c2f0ffffff49634c240841b838354b0041be02354b0089856cffffff64488b120fb7144ab908354b006681e20001baf6344b004c0f45c14c0f45f285c0458b6c24040f846f0100004183ed044585ed0f9f8558ffffff83e6200fb68558ffffff0f858c20000084c00f84842000008b8550ffffff4d63fd4c898558ffffff4c89fabe200000004889df85c00f8546030000e851b300004c8b8558ffffff4c39f80f85b20200008b856cffffff4589efc68558ffffff0185c00f84690400008b8550ffffff85c00f843b040000488b83a00000004885c00f845b040000488b5020483b50280f834d040000488d720448897020c7022d0000000f1f80000000004183c7018b8550ffffff85c00f85ae010000488b4328483b4330410fb6360f8324020000488d500148895328408830488b432848394330410fb676010f862e020000488d500148895328408830488b4328483b4330410fb676020f8330020000488d5001488953284088304183c70341f644240c200f84b501000080bd58ffffff000f84a80100004d63e5be200000004889df4c89e2e84db200004c39e00f85b5010000438d042f488d65d85b415c415d415e415f5dc39040f6c6500f84860000004183ed044585ed0f9f8558ffffff40f6c6200fb68558ffffff750884c00f858afeffff4531ff40f6c6400f8486000000448b9d50ffffff4585db0f843e020000488b83a00000004885c00f84ae030000488b5020483b50280f83a0030000488d720448897020c7022b000000e9cdfeffff0f1f440000ddd82500020000e9bbfdffff0f1f40004183ed034585ed0f9f8558ffffff40f6c6200fb68558ffffff758284c00f8504feffffe975ffffff0f1f84000000000083e6100f8483feffff448b9550ffffff4585d20f8447030000488b83a00000004885c0740e488b5020483b50280f826b0400004c898548ffffffbe20000000e9880200000f1f40004d8d700c4c89a550ffffff4d89f44d89c6488b83a00000004983c604418b76fc4885c00f84bf000000488b5020483b50280f83b1000000488d7a0483feff4889782089320f94c084c0754e4183c7014d39e675bd4c8ba550ffffff41f644240c20740d80bd58ffffff000f8590000000488d65d84489f85b415c415d415e415f5dc3660f1f4400004889dfe808c7fbff83f8ff0f85d6fdffff488d65d8b8ffffffff5b415c415d415e415f5dc30f1f004889dfe8e0c6fbff83f8ff74dc488b4328483b4330410fb676020f82d0fdffff4889dfe8c0c6fbff83f8ff0f85cafdffffebb60f1f4400004889dfe8a8b7000083f8ff0f94c0e94cffffff0f1f4400004d63e5be200000004889df4c89e2e8d5b00000e9c3fdffffe8cbb000004c8b8558ffffffe9b5fcffff0f1f800000000084c0488b8548ffffff0f8591010000488b4008488b404848898518ffffff4889c7803f00b800000000480f458558ffffff803f0148898558ffffff19c0f7d083e0fe89852cffffffe902f6ffff0f1f00488b4328483b43300f8303080000488d500148895328c6002be9a2fcffff662e0f1f84000000000048c7c2f0ffffff49634c2408660f50c041b828354b0041befe344b0083e00164488b1289856cffffff0fb7144ab918354b006681e20001bafa344b004c0f45c14c0f45f2e98bfbffff0f1f8000000000ddd848c7c2f0ffffff49634c2408250002000041b818354b0041befa344b0089856cffffff64488b120fb7144ab928354b006681e20001bafe344b004c0f44c14c0f44f2e93bfbffff0f1f8000000000488b4328483b43307356488d500148895328c6002de9defbffff660f1f440000410fb674240ce9b5fcffff0f1f4400004c898548ffffffbe2d0000004889dfe80cb600004c8b8548ffffff83f8ff0f94c084c00f849ffbffffe9f3fdffff66904c898548ffffffbe2d0000004889dfe8dcc4fbff83f8ff4c8b8548ffffff0f94c0ebce0f1f440000488b4020488b405848898518ffffff4889c7e96afeffff90488b40208b80a001000089852cffffffe9a0f5ffff0f1f004c898548ffffffbe2b000000e973ffffff0f1f8000000000488b4328483b43300f8343010000488d500148895328c60020e90afbffff6690468d043141f6c03f0f85210e00004989c14983e9010f8980080000418d703f4585c04489c20f48d6c1fa064863d24801d0488945a84885d27e1b488b7da048c1e20331f6898d40ffffffe8817afaff8b8d40ffffff41bd0c0000004531f6488b55b84489e841bf787e4b004589f5c78540ffffff000000004189c6eb4f0f1f00498b07498b5708488b7dc0488d34c5c07e4b00488955c848c1e203e85039fdff488b55c8483955a80f8f320400000f840d040000488b55b84183ee014981ff407d4b000f84740400008b4d984983ef18418b47104401e883e80139c87fda4885d2749d498b4708498b0f488b75b0488b7dc0488d0ccdc87e4b004c8d40ffe84d070200498b5708480355b84885c00f841c0400004883ea01488955c8eb86488d720448897020c70220000000e9d7f9ffff4c898548ffffffbe20000000e93afeffff660f1f44000041bc01000000e9adf7ffff0f1f4400004889d14c8b45b0488b55a0488b7dc031f6e872000200488b55a8482b55b8488b4dc0488904d1488b55b84c8b294885d2488955a87435488b7da0488d42ff48837cd7f8007419e9e50200000f1f440000488d40ff48833cc7000f85d10200004885c04889c2488945a875e54183c53048c745a8010000004183fd300f94c3e9aff7ffff0f1f440000488b7da0488b55a8b90a000000488d5cd7f84889fe4883ea014c8b2be84f0a02004889034183c5304183fd300f94c3e976f7ffff0f1f4000488b45a0488338000f8500f7ffff4489f84d89f7488b9dc8feffff458b47fc443b8530ffffff4189c64c8ba5c0feffff0f8410070000488bbd08ffffff44898538ffffffe87fedffff83f830448b8538ffffff0f84f903000083f835b9010000000f84eb030000d97d800fb755806681e2000c6681fa00040f84730900000f86730600006681fa00088bb540ffffff0f84a00a00006681fa000c0f85900a00000f1f8400000000004539ee7f18eb1d660f1f8400000000004183ee014983ef044539ee740a41837ffc3074ec4489f685f6751a41f644240c0875128b8d30ffffff41394ffc498d47fc4c0f44f84883bd58ffffff00743e8b8de4feffff398df4feffff448badf4feffff0f8481060000488b8558ffffffc785e0feffff000000000fb600888540ffffff83e8013c7d0f861a0600008b459483f8660f8488000000448b6d904585ed0f841108000080bdd8feffff678b7598750983fe040f8448170000498d7f08418907b82d00000083fe09418947040f8ef7070000b90a0000000f1f80000000008d0c8901c939f17ef741b8676666669089c8c1f91f4883c70441f7e889f0c1fa0229ca89d199f7f983c03083f90a89d68947fc7fdb89559883c6304c8d7f0489378b856cffffff410fb654240c85c07505f6c250740783addcfeffff014d89fd4c2badf8feffff8bbddcfeffff4c89e948c1f90229cf83e22089bd58ffffff0f859c02000085ff418b7424100f8e8f02000083fe300f8486020000448b9d50ffffff4585db0f84c81000004c63f74889df4c89f2e857aa00004c39f00f84e61200008b9dd4feffff85db0f85f1f8ffff488bbd00ffffffe80453fcffe9e0f8ffff0f1f80000000004183c5304183fd300f94c3e9ccf4ffff0f1f8400000000008b4598bb0100000041bd300000008d50ff85c08955980f8fcef4ffffe97af4ffff488b75c0488b7da0e8d2fc010085c0488b55c80f88dafbffff660f1f440000488b75c0488b7db0488955b848c1e203e8fb34fdff488b55b8488b45b0480fbd44d0f889d1c1e106448d897fffffff4489f14883f03f4129c1b801000000d3e04589cd098540ffffffe98afbffff66904883ea02488955c8e967fbffff8b8540ffffff4885d28945980f8e4ef1ffff488b7db04c8b374d85f60f85e91300004c8b45a0498338000f85b51300004c8d4f08b801000000eb1d0f1f840000000000498b0cc04883c0014d8d49084885c90f85de070000498b094c63e84c8d34c5000000004c89ce4885c974d5480fbd44d7f84883f03f85c04189c70f84eb0700004f8b0430f3480fbcc989c84d85c0740c31c0f3490fbcc039c10f4ec141b8400000004529f84585ed0f85af0d00004439c00f8c701200004d63fd4183c5014489c14c29fa4d63ed44898540ffffffe82d010200488b7da0488b55a8448b8540ffffff4c296db84a8d34374c29fa4489c1e80b010200488b55a8488b4da04889d04c29ea4c29f848837cc1f800480f44c2488945a8e944f0ffff4c898548ffffffbe2b000000e912f9ffff488b7da84883ff010f848c0b000048837db800b9010000000f85f7fbffff4885ff4889fa742a488b75a048837cfef8007418e9defbffff0f1f800000000048837cd6f8000f85560d00004883ea0175ee31c9e9befbffff4531f685c00f8429040000448b9550ffffff4585d20f84940b0000488b83a00000004885c00f84f00e0000488b5020483b50280f83e20e0000488d4a0448894820c7022d000000410fb644240c4183c601a820755141837c24103075498b8558ffffff85c07e3f8bbd50ffffff85ff0f844a1200004863c8be300000004889df4889ca48898d40ffffffe860a70000488b8d40ffffff4839c80f8502fdffff4403b558ffffff8bb550ffffff85f60f85c9090000410fb644240d41bd0100000083e008888510ffffff7411488b8548ffffff488b00448ba8a8000000488bbd20ffffffe877a8fcff48898548ffffff488b8518ffffff4885c00f84501100004889c7e858a8fcff4889c148898540ffffff486385e0feffff480fafc14c0fafade8feffff488b8d48ffffff4a8d5429028b8dd4feffff4801d085c948898538ffffff0f85510d00004889c7e8cf4bfcff4885c04989c50f8453fcffff488b8df8feffff4c89e84939cf0f86840a00004489b510ffffff48899d08ffffff4889cb448bb530ffffff4c89ad30ffffff4d89fd4d89e7448ba52cffffffeb1e66904139d40f842705000088104883c0014883c3044939dd0f86120a00008b134439f275dd488b9548ffffff488bb520ffffff4889c7e8f7d6fcffebd4418d503f4585c0410f49d04e8b84cd70ffffffc1fa064863f24c01ce4c8904f7e96bf7ffff4963042489559485c0898528ffffff0f88550c00004883c008488985e8feffff8b8528ffffffc785f0feffff01000000c785d0feffffffffff7fc785f4feffff01000000898538ffffffe951eeffff6685d20f853004000083f8347e124183e0010f85fb02000084c90f85f30200008bb540ffffffe986f9ffff8b45983985d0feffff0f8efb01000083c001c74594660000008985f4feffffe9bfedffff458b47f8e9e7f8ffff488b8558ffffff31f6eb23660f1f4400004883c0010fb61083c60129f980fa7f741384d2780f84d20f84d70d00000fbe3839f977dc89b5e0feffff448bade4feffff8b95e0feffff85d20f8496f9ffff488bbdf8feffff4489e84c63f24c89fa488d34874c01f0488d0c85000000004829f2488d3c0f48c1fa0248898d40ffffffe813d50000488b85f8feffff488b8d40ffffff448b952cffffff488d7408fc488b8d58ffffff4989c00fbe394989c9660f1f8400000000004489e94889f029f90f1f840000000000418d55ff4883e8044989d5418b14904439e989500475e98d47ff48f7d8488d0486488d70f8448950fc410fb641013c7f741684c0781284c0743e4983c1010fbef84189cd39f977a84c89c00f1f4400008d51ff4883ee044839f04889d18b149089560472eb488985f8feffff4f8d3cb7e9a8f8ffff0f1f00410fb601ebc08b8df4feffff488b8558ffffff31f6eb1e904883c0010fb61083c60129f980fa7f741384d2780f84d20f841c0a00000fbe3839f977dc8d560189b5e0feffff4863d2e99eecffff410fb644240ca8400f8411070000448b8d50ffffff4585c90f84ac0b0000488b83a00000004885c00f84890c0000488b5020483b50280f837b0c0000488d4a0448894820c7022b000000e9c4fbffff8b85d0feffff4183ed02c785f4feffff0100000044896d9483e801898538ffffff48984883c008488985e8feffffe9ceebffff418907498d7f088b7598b82b000000e9fcf7ffff498d7f0c41c7470830000000e93cf8ffff418b0424c745946600000085c0898528ffffff4863d00f88f30a0000448b4d904585c90f85980700004863459841bd66000000c785f0feffff01000000c785d0feffffffffff7f8d4801488d440202488985e8feffff8b8528ffffff898df4feffff898538ffffffe957ebffff448b856cffffff4585c00f8416fdffff83f8340f8e05fdffff4585f64c89f87e71418b57fc8bb530ffffff498d47fcb90000000039f27526e9a1060000662e0f1f840000000000c700300000004883e8048b1083c10139f20f848006000083fa3974e48bb510ffffff85f67e108bbd28ffffff8d7437ff39cf440f44ee83c2018910399530ffffff74084489eee925f6ffff8b8d30ffffff3948fc488d50fc488b8df8feffff480f44c2488d50fc4839d1772e8b40fc83f8397417e9370700000f1f80000000008b0283f8390f8525070000c702300000004883ea044839d176e6837d94660f84b30b0000837d9001488b8500ffffffc740083100000019c083e00283e8010145987507c74590000000008b85e4feffff8b8dd0feffff4489ee4401f039c10f8d8cf5ffff29c84863d04129c648c1e2024929d7e978f5ffffe8e347fbff448b8d6cffffff4585c90f8563f5ffff83f8340f8fbcfeffff84c90f8452f5ffffe9affeffff480fbd44d7f84883f03f85c04189c7742731c0f3480fbcc1e94cf8ffff488b9540ffffff488bb518ffffff4889c7e8ead1fcffe9c4faffff4c29ea4885d27e254a8d0c3731c00f1f8000000000488b14c1488914c7488b55b84883c0014c29ea4839c27fe8488955b8488b55a84c29ea4885d27e204d01c631c00f1f00498b14c6498914c0488b55a84883c0014c29ea4839c27fe8488955a8e98ce8ffffc785e0feffff00000000e97ae9ffffc785d0feffff06000000e9c6e8ffff4489c24c89eec1fa1fc1ea1a418d0c1083e13f29d1418d503f4585c0410f49d0c1fa064863d2488d3cd74889c2e8cff701008b4d984101ce418d563f4585f6410f49d6c1fa064863d24889d6480375a84885c0488975a80f84a9f1ffff488d7e0148897da8488b7da0488904f7e994f1ffff4489f14889c24c89eee881f70100488b55a8448b7d9841bd787e4b0048899d38ffffffc78540ffffff000000004c89a510ffffff488d4a0141f7df48894da8488b4da0488904d1b80c000000c745900100000044897d9889c3660f1f4400004983ed1845397d140f8f52010000498b4508488b55a8498b4d004883e8014839c20f8d74010000488d34cdc87e4b00488b7dc0488b4da04989d04889c2e80ef901004c8b4da84c89ca490355084885c00f84380100004883ea01488955c8488b75c0488d3cd5000000004889d04c29c8448b7d984c8d70014c8d443ef84489f0490fbd08c1e0064883f13f4189ce4189cc41f7d64101c6418d47034139c60f8414010000418d47024139c60f8faf000000b80100000089d94529f7d3e0098540ffffff4489e04429f84585ff44897d98440f48e0488b064885c00f85a0070000488d4608b9010000004531c9eb0866904c89d14189f94c8b004989c64883c008418d79014c8d1ccd000000004c8d51014d85c074db4183fc3f0f8489040000b93f000000f34d0fbcc04429e14139c80f8dbe0700004d63e14a8d741ef84c29e2488b7da0e8f7f60100488b45c8448b7d984c29e0488945a80f1f84000000000083eb010f84ab0300004585ff0f8f8efeffff488b9d38ffffff4c8ba510ffffff8b8540ffffff894598e90fe6ffff4883ea02488955c8e9c3feffff488b75a0488b7dc0488d0ccdc87e4b004989c0e89df70100e98afeffff83f93c0f8f1c060000b93c000000b80a00000048c74580000000004429e148d3e0418d4f02488945884139ce0f8ec7feffff4939000f82befeffff0f8567ffffff488b45804839443ef00f8358ffffffe9a4feffff0f1f00488b8500ffffff8b8d30ffffff836d9801c785e4feffff00000000c74008300000004c8d781089480ce981e7ffff41f644240d08740b31d231f631ffe8dfdfffff4c89e94983c50348c1f9024983fd060f860d040000488b83d8000000488bb5f8feffff4531ed488b40384889ca48898d48ffffff4889dfffd0488b8d48ffffff4101ce4839c80f85c5f2ffff448bbdd4feffff4585ff0f841f06000041f644240c200f84bf0700008b8558ffffff85c00f8eb1070000448bad50ffffff4585ed0f8407070000418b7424104c63e84889df4c89eae8c69c00004889c28b8558ffffff4401f04c39ea0f8563f2ffffe9ace9ffff488b55a048833a000f95c1e96bf0ffffa8100f84f6f4ffff448b8550ffffff4585c00f84cc050000488b83a00000004885c0740e488b5020483b50280f82b7060000be200000004889dfe80da3000083f8ff0f94c084c00f8501f2ffffe9a2f4ffff662e0f1f840000000000488b4328483b43300f8398050000488d500148895328c6002de97af4ffff410fb64f0d4c8bad30ffffff4d89fc488b9d08ffffff448bb510ffffff83e108888d10ffffff80bd10ffffff000f85330300004c29e84d89ef4883f8144889c10f8e56030000488b83d80000004c89fe488b4038e994feffff8bbd10ffffff85ff7e15398d28ffffff0f94c280fa0183d7ff89bd10ffffff80bdd8feffff670f8497060000448bad28ffffff8b104403ad10ffffffe963f9ffff8b9538ffffff85d27e1948837da8010f8f6ce5ffff488b55a048833a000f855ee5ffff4989c7c785f0feffff01000000e962e5ffff488d420241bd66000000c785f0feffff01000000c785d0feffffffffff7fc785f4feffff01000000488985e8feffff8b8528ffffff898538ffffffe9c3e3ffff4439c00f8d51f2ffff458d7dff4983ee084489c14a8d343744898540ffffff4d63ff4c29fae879f30100e947f2ffff4c89f7e88c8bfeff85c08985d4feffff0f85f7e3ffff4c89f7e8f63ffcff4885c048898500ffffff0f8504e4ffffe962e9ffff9083c0018902e989f8ffffb901000000e96beeffff4585ff488b9d38ffffff4c8ba510ffffff0f8e55fcffff488b55a8488b75a0b90a000000488b7dc0e80ff80100488b55a8488b75c031c0b904000000488955c8f3480fbc06837d98040f4e4d9839c80f8d7c030000b840000000488b7da029c889c1e8b5f101004885c07414488b55c8488d4a0148894dc8488b4da0488904d1488b45c8838d40ffffff01488945a8e9d8fbffff4863ff4829fa4885d27e254c8b45a0488d0cce31c00f1f00488b14c1498914c0488b55c84883c0014829fa4839c27fe8488955a8e97ffbffff48c7c0d0ffffff64c70022000000b8ffffffffe9b7e6ffff8d41ff31d2f7f701f08d50018985e0feffff4863d2e980e2ffff4c63b558ffffff4889df4c89f2e8cb980000e92fefffff48c785e8feffff0e000000c78528ffffff06000000e99cf3ffff488b85f8feffffc785e4feffff00000000e939e3ffff4883c01e4883e0f04829c44c8d6c240f4983e5f0e9aaf2ffff4885c90f84480200004989cd4c8bbdf8feffffeb26488d4a0483feff4889482089320f94c084c00f85c2eeffff4183c6014983ed010f8416020000488b83a00000004983c704418b77fc4885c0740a488b5020483b502872bc4889dfe88c9f000083f8ff0f94c0ebbcbe2d0000004889dfe8779f000083f8ff0f94c0e965fcffff488b8d38ffffff4889c64c89ef4c01e94889ca48898d48ffffffe81ddbffff488b8d48ffffff4989c74829c14883f9140f8faafcffff4885c90f846afbffff4c89a548ffffff4589f44989de4889cbeb18488d72014989762888024183c4014883eb010f84fd0000004983c701498b5628493b5630410fb647ff72d50fb6f04c89f7e8e5adfbff83f8ff75cf8b95d4feffff85d20f85d3e6ffff488bbd00ffffff898558ffffffe8e040fcff8b8558ffffffe905e5ffffba06000000c78528ffffff06000000e9f9f4ffff488b4328483b43300f8333030000488d500148895328c6002be92bf0ffff488d7580b94000000048b800000000000000a04429e1ba02000000488945804889f748c7458800000000e824ef0100448b7d98418d47024139c60f8e3d010000418d47034139c60f8536f9ffff488b55c8488b75c0488b4588488d3cd5000000004c8d443ef8e9a2f9ffff8b856cffffff448bb558ffffffe96aefffff4c89f34589e64c8ba548ffffffe931faffff8d41ff31d2f7f701f08985e0feffffe922f2ffff4183fc3f0f8430030000b93f000000f3480fbcc031ff4429e139c10f8f8d0000004c63e74c29e2e994f8ffffbe2b0000004889dfe8a79d000083f8ff0f94c0e995faffff4531ede9d1f9ffff4c89efe8ac3ffcff488bbd00ffffffe8a03ffcffe9c8f9ffff488b7da0e852ef0100e9a1fcffff4c89f6eba9488b4328483b43300f8312020000488d500148895328c60020e9f2eeffffbe2d0000004889dfe83dacfbff83f8ff0f94c0e92bfaffff488b7da0418d4c2401e8f4ed0100488b4dc8448b7d98488d5101488b4da0488955a8488944d1f8e906f8ffff488b55c8488b75c0e94af7ffff4889fe4489f9e8beed0100488b7da0488b55a84489f94889fee8abed01004885c00f840fdeffff488b55a8488d4a0148894da8488b4da0488904d1e9f6ddffff8b8dd0feffff398de4feffff488b8500ffffff0f8470010000488d4804c74004310000008385e4feffff0148898df8feffffe93cf4ffff4c63ad58ffffff418b7424104889df4c89eae8fb9400004889c2e9f0f8ffff488d4a0448894820c70220000000e9f8edffff31c048c78540ffffff00000000e9bbeeffff480fbd44d7f84883f03f85c04189c70f8466ddffff498b084889fe4531ede93ff4ffff0f1f00480fbd44d7f84883f03f85c04189c70f8440ddffff4c89f14c8b45a04889fe4531ed4531f6e94eecffff660f1f4400004489f0e930e2ffff48638d58ffffffbe300000004889df4889ca48898d40ffffffe852940000488b8d40ffffffe9adedffff837d94660f855ff9ffff41f644240c080f8453f9ffff488b8d00ffffff488d510c4839c20f853ff9ffff488b8d00ffffff837908300f841e010000448bad28ffffff8b510c4403ad10ffffffe990f2ffff0f1f440000be2b0000004889dfe853aafbff83f8ff0f94c0e941f8ffffbe200000004889dfe83baafbff83f8ff0f94c0e929f8ffff41f644240c088b8d30ffffffc70031000000894804750731c04585f67e1a486385e4feffff488b8d00ffffffc744810830000000418d4601448bb5e4feffff496354240883459801c785e4feffff010000004101c648c7c0f0ffffff64488b000fb70450662500016683f80119c083e02083c045894594488b8500ffffff488985f8feffffe960f2ffff31ff31c9e9e8f9ffff4c8bb5f8feffffba06000000be48354b004c89f7e814c400004c89f08b8d30ffffff4883c0084939c741894e0473314983c714e9e6e8ffff4531ffe9c4dfffff488b8d00ffffff8bbd10ffffff8b510c8b8d28ffffff448d6c39ffe968f1ffff4c89fabe300000004983c7104829c2488b85f8feffff48c1fa02488d7818e8cac30000e996e8ffff0f1f44000048c7c1b8ffffff4889f064488b314889d14889c2e947d8ffff0f1f80000000000fb6064531c08d50ff31c080fa7d7622eb2a660f1f4400004883c6010fb6164183c00129cf80fa7f740f84d2780b84d2740e0fbe0e39cf77df4489c0f3c366908d47ff31d2f7f14401c0c30f1f44000081ffff0000000f87ec000000415431c0554989d4534889f589fbbe01000000833d562d270000740cf00fb135d4232700750beb230fb135c9232700741a488d3dc02327004881ec80000000e89083feff4881c480000000488b05ca2e27004885c0745d4863fb4531c048892cf8488b05342f27004c8924f8833dfd2c270000740bf0ff0d7c232700750aeb22ff0d72232700741a488d3d692327004881ec80000000e86983feff4881c4800000005b4489c05d415cc3662e0f1f840000000000be10000000bf00010000e80143fcff4885c0488905cf2e270041b8ffffffff74974805000800004889053a2e2700e970ffffff0f1f44000048c7c0d0ffffff64c70016000000b8ffffffffc30f1f400081ffff0000000f87ec000000415431c0554989d4534889f589fbbe01000000833d462c270000740cf00fb135c4222700750beb230fb135b9222700741a488d3db02227004881ec80000000e88082feff4881c480000000488b05ba2d27004885c0745d4863fb4531c048892cf8488b05242e27004c8924f8833ded2b270000740bf0ff0d6c222700750aeb22ff0d62222700741a488d3d592227004881ec80000000e85982feff4881c4800000005b4489c05d415cc3662e0f1f840000000000be10000000bf00010000e8f141fcff4885c0488905bf2d270041b8ffffffff74974805000800004889052a2d2700e970ffffff0f1f44000048c7c0d0ffffff64c70016000000b8ffffffffc30f1f400041574156415541544989f555534889fb4881ec480100008b068b6e04894424080fb6460d4189c641c0ee024183e601a8010f854101000048c7c0c8ffffff64488b00488b004c8b40408b4058890424418038000f84c41a00008b0c2485c90f84b91a0000410fb6750c488b0240f6c6010f852a010000f20f1000660f2ec0f20f114424700f8a2e100000f20f100d7e8e0500660f54c8660f2e0d828e05000f86b402000048c7c0f0ffffff4963550841b838354b0041bc02354b0064488b000fb70450ba08354b0066250001b8f6344b004c0f45c24c0f45e0660f50c883e10185c90f851f01000040f6c6500f84960800008d45fc85c08904240f9fc040f6c6204189c7750884c00f850210000031ed40f6c6400f84160c00004585f60f847d0c0000488b83a00000004885c0740e488b5020483b50280f82bb0f00004c89442408be2b0000004889dfe8319600004c8b44240883f8ff0f94c084c00f843e010000660f1f440000b8ffffffffe9d1010000660f1f44000048c7c0c0ffffff64488b00488b004c8b40508b8098010000890424e9b7feffff0f1f840000000000db28dbe80f8ad60e0000d9e5dfe089c280e6450fb6d683fa050f8511050000ddd848c7c2f0ffffff49634d0841b838354b0041bc02354b0064488b120fb7144ab908354b006681e20001baf6344b004c0f45c14c0f45e289c181e10002000085c90f84e1feffff83ed0485ed410f9fc783e6200f851d1900004584ff0f84141900004c63fd4585f64c89442408890c244c89fabe200000004889df0f856f070000e8ca8d00004c8b4424088b0c244c39f80f8511ffffff85c9892c2441bf010000000f84100b00004585f60f849f0a0000488b83a00000004885c00f840f0b0000488b5020483b50280f83010b0000488d4a0448894820c7022d0000000f1f0083c5014585f60f85bc090000488b4328483b4330410fb634240f8331090000488d500148895328408830488b432848394330410fb67424010f8637090000488d500148895328408830488b4328483b4330410fb67424020f833d090000488d5001448d65034889532840883041f6450c200f84430900004584ff0f843a0900004c632c24be200000004889df4c89eae8dc8c00004c39e80f852bfeffff8b04244401e04881c4480100005b5d415c415d415e415fc30f1f00660f50c0448b4c2474418b7508b960b54b004c8da4244001000083e001894424108b4424704181e1ffff0f0049c1e1204909c10f94c083fe414c894c24280fb6c089442418b8c0b44b00480f44c84c89c80f1f80000000004889c248c1e8044983ec0483e20f4885c08b14914189142475e64c8dbc24a0000000488b7c242831c983fe41ba100000004c89442430498d77200f94c1e8ae76ffff4889442420488d84240c0100004c8b4424304939c40f8681010000498d5424fc498d7424f04889d74829c74889f84883c00348c1e802488d48014989c14889f083e00f48c1e8024839c8480f47c14883f9060f87b60f00004889c84883f80141c74424fc30000000745c4883f802498d5424f841c74424f83000000074484883f803498d5424f441c74424f43000000074344883f8044889f241c74424f03000000074224883f806498d5424ec41c74424ec30000000750e498d5424e841c74424e8300000004839c80f84880000004889cf4d89cb4829c74929c3488d77fc48c1ee024883c6014983fb024c8d14b500000000763348f7d0660f6f058e8a05004d8d5c84f431c04883c0014983eb10410f2943104839f072ee4c89d048f7d84939fa488d1482742f488d84240c010000488d72fcc742fc300000004839f07317488d72f8c742f8300000004839f07307c742f430000000488b7c24204889cabe300000004c894c24404c8944243848894c24304829cfe88357faff4c8b4c2440488b4c24304c8b4424384c89c848f7d948f7d048014424204d8d248c0fb744247689c26681e2f07f6683fa0119ff66c1e80483c73125ff07000040887c24300f85810a0000488b7c2428bafe0300004883ff0119c983c1014885ff894c24400f45c28b54241885d20f852808000083bc243c010000300f85c4130000488d9424400100004c8dbc24c000000066904883ea044983ef01837afc3074f24c2b7c24208b7c240883ffff4c897c24380f84931100004863d74c39fa0f8d7f04000085ff0f8e62130000488b7c24200fbe4c17ff8d71bf0fbe14174080fe050f87d711000083e9378d72bf4080fe050f87b211000083ea37f6c207bf0100000075158b7c24088d770131ff4863f64839742438400f9fc7d9bc24800000000fb7b424800000006681e6000c6681fe00040f84a51300000f86170300006681fe00080f84721300006681fe000c0f84ef030000e88a30fbff662e0f1f840000000000dbbc248000000025000200004c8dbc24a0000000ba100000004c8da424400100008944241031c0498d77204c894424284c8b8c24800000004d85c94c89cf4c894c24200f94c031c941837d0841894424180f94c1e87773ffff41837d08414c8b4c24204889c14c8b442428b860b54b00bac0b44b00480f45d04c89c84889c648c1e8044983ec0483e60f4885c08b34b24189342475e6498d47104839c148894424200f86281300004c8d51ff4889cfbe300000004c894c24484c894424404c89d0482b44242048894c24384c895424284c895424504c8d58014c29df4c89da4c895c2430e83755faff498d7424f04c8b5c2430488b4c24384c8b4424404c8b4c24484889f083e00f48c1e8024c39d8490f47c34983fb06490f46c34885c00f844c1000004883f801498d5424fc41c74424fc300000004c8b54245074704883f8024c8d51fe498d5424f841c74424f83000000074584883f8034c8d51fd498d5424f441c74424f43000000074404883f8044c8d51fc4889f241c74424f030000000742a4883f8064c8d51fb498d5424ec41c74424ec3000000075124c8d51fa498d5424e841c74424e8300000004c39d80f849e0000004c89df4829c7488d77fc48897c243848c1ee024883c601488d3cb50000000048897c2430488b7c2428482b7c24204829c74883ff02763c48f7d0660f6f05b8860500498d7c84f431c04883c0014883ef100f2947104839f072ef488b7c24304889f84929fa48f7d8483b7c2438488d1482742b498d4710498d72ffc742fc300000004839f073174983ea02c742f8300000004c39d07307c742f430000000488b442420c6442430304883e801482b4424284801c14c89d848f7d84d8d2484488d41014983c40448894424200fb784248800000025ff7f00000f853c0d00004983f901ba0140000019ff83c7014d85c9897c24400f45c2e953fcffff0f1f800000000083ed0385ed410f9fc740f6c62075094584ff0f8582f8ffff892c2431ede966f7ffff660f1f440000e81b8700008b0c244c8b442408e98cf8ffff6685f60f85f6fcffff83fa070f8edc00000009f983e1010f84d10000008b74240883ee010f8893000000488b7c24204863d6488d0c170fb6394080ff390f84720f000049c7c2e0ffffff4c0fbecf644d8b1a43833c8b650f8e6c0f00004c8d4aff89f64989d34929f34c8b7c2420894424184929c9eb320f1f80000000004883ea014c01c9410fb63c174c01f94080ff390f841a0f000064498b02480fbef7833cb0650f8e1c0f00004c39dac6013041c704943000000075c58b442418807c2430390f846f10000048c7c1e0ffffff480fbe54243064488b094889d7833c91650f8f2010000083c70140887c24304c63f8488d74246531c9ba0a0000004c89ff4c89442418e8d46fffff4c8b442418488d8c2494000000488944242848becdcccccccccccccc0f1f8400000000004c89f84883e90448f7e648c1ea03488d04924801c04929c74885d2428b04bd60b54b004989d7890175d6448b5c2410450fb67d0cba040000004585db750c31d241f6c7500f95c283c203488d442465482b44242883ed0229c548894424488b44240801c229d585c00f8e220800004585f6b801000000751c4c89c748894c24504c89442418e8c686fcff488b4c24504c8b44241829c54183e720896c24180f852c02000041837d10300f84210200008b44241885c00f8e150200004585f648894c24584c894424500f850206000048636c2418be200000004889df4889eae83d840000488b4c24584c8b4424504839e80f8582f5ffff8b6c2418e9d3010000904889dfe8889afbff83f8ff0f8467f5ffff488b432848394330410fb67424010f87c9f6ffff4889dfe8639afbff83f8ff0f8442f5ffff488b4328483b4330410fb67424020f82c3f6ffff4889dfe83e9afbff83f8ff0f841df5ffff41f6450c20448d65030f85bdf6ffff4489e0e9e1f6ffff660f1f440000448d75034589f444897424084989de89eb4c89c5498b86a00000004883c5048b75fc4885c07469488b5020483b5028735f488d7a0483feff4889782089320f94c084c00f85b7f4ffff83c3014439e375c341f6450c204c89f34589e6448b6424080f84b90000004584ff0f84b00000004c632c24be200000004889df4c89eae8e4830000e943f6ffff0f1f80000000004c89f7e8808a000083f8ff0f94c0eba10f1f840000000000488b4328483b43300f83f2020000488d500148895328c6002de972f5ffff669083e6100f846af5ffff4585f60f8416030000488b83a00000004885c00f84a6040000488b5020483b50280f8398040000488d4a0448894820c70220000000e92df5ffff0f1f440000410fb6750ce98ef3ffff660f1f4400004489f0e9b3f5ffff4c89442408be2d000000e9a8f3ffff90488b4328483b43300f8352070000488d500148895328c6002be9e2f4ffff669031ed448b5424104585d274644585f60f848b030000488b83a00000004885c00f849b090000488b5020483b50280f838d090000488d720448897020c7022d000000eb7d0f1f440000837c2408ff48c7442438000000000f8594fcffffc744240800000000e987fcffff0f1f8000000000410fb6450ca8400f85e3020000a81074424585f60f840b0b0000488b83a00000004885c00f841d0c0000488b5020483b50280f830f0c0000488d720448897020c70220000000662e0f1f84000000000083c5014585f60f8474040000488b83a00000004885c00f84f4040000488b5020483b50280f83e6040000488d720448897020c70230000000418b7d088d7717488b5020483b50280f830b050000488d7a0483feff4889782089320f94c084c00f8583f2ffff83c50241f6450c20754c41837d103075458b44241885c07e3d4585f60f84bc0a00004c63f8be300000004889df4c89fa48894c24504c89442410e8ac8100004c8b442410488b4c24504c39f80f8531f2ffff036c24180fbe7424304585f689f20f840f040000488b83a00000004885c00f84bd040000488b5020483b50280f83af040000488d7a0483feff4889782089320f94c084c00f85e7f1ffff448b4c2408448d7d014585c90f8ead0400004585f60f85740200004c89c748894c24104c890424e89382fcff4885c04c8b0424488b4c24100f84580600004489fd4d89c448890c244989c7eb1a6690488d480148894b2840883083c5014983ef010f84280600004983c401488b4328483b4330410fb67424ff72d44889dfe87c96fbff83f8ff75d2e95af1ffff66904c89442408be2d0000004889dfe85e96fbff83f8ff4c8b4424080f94c0e928f1ffff660f1f4400003dfe0300000f8e3d0100002dff030000c744244000000000e97ff5ffff0f1f00488b4328483b43300f837c010000488d500148895328c60020e92af2ffff662e0f1f84000000000048c7c0f0ffffff4963550864488b00f6445001010f840601000041b818354b0041bcfa344b00d9e5dfe0ddd8e946f1ffff0f1f800000000048c7c0f0ffffff4963550841b818354b0041bcfa344b0064488b000fb70450ba28354b0066250001b8fe344b004c0f44c24c0f44e0e9e7efffff660f1f440000488d4a0448894820c7022b000000e995f1ffff0f1f4400008b2c24e90af1ffff0f1f8400000000004585f60f84cf060000488b83a00000004885c00f8408080000488b5020483b50280f83fa070000488d720448897020c7022b000000e926fdffff660f1f440000488b4328483b43300f83a7070000488d500148895328c6002de902fdffff6690baff030000c74424400100000029c289d0e93ef4ffff662e0f1f84000000000041b828354b0041bcfe344b00d9e5dfe0ddd8e940f0ffff660f1f8400000000004863e8be200000004889df4889eae8fd7e00004c8b442450488b4c2458e9fbf9ffff4c89442408be20000000e929feffff0f1f80000000004c89442408be20000000e940efffff660f1f840000000000488b83a00000004885c00f84c0000000488b5020483b50280f83b2000000488d7204488970208b042483f8ff89020f94c084c00f851fefffff8b7c2408448d7d0285ff0f8eb70200004863442408488b7c24384889fd4839f848890424480f4ee84885ed0f848e08000048894c2408eb2d0f1f8000000000488d7a0483feff4889782089320f94c084c00f85c8eeffff4183c7014883ed010f84e3050000488b83a00000004983c404418b7424fc4885c0740a488b5020483b502872bb4889dfe8ab84000083f8ff0f94c0ebbb0f1f008b34244889df48894c2410e89084000083f8ff488b4c24100f94c0e941ffffff488b4328483b43300f830a040000488d500148895328c60030418b450883c017488b5328483b53300f8322040000488d720183c50248897328880241f6450c20751341837d1030750c8b44241885c00f8f6e0600000fbe542430488b4328483b43300f83600400000fb67c2430488d500148895328408838e904fcffff0f1f0041f6c7080f84fcf7ffffe9cff7ffff90be300000004889df48894c24504c89442410e8d983000083f8ff4c8b442410488b4c24500f84aeedffff418b45088d7017488b83a00000004885c00f85eefaffff0f1f80000000004889df48894c24504c89442410e89683000083f8ff4c8b442410488b4c24500f94c0e9defaffff904885c00f8544f0ffff4c89e2e9b0f0ffff0f1f80000000004889df48894c24304c89442410e85683000083f8ff4c8b442410488b4c24300f94c0e93afbffff9041f6450c080f8548fbffff418b45084585f68d700f0f85bc000000488b4328483b43300f83880500008b7c2440488d50014889532840883083ff0119c083e0fe83c02d83ff0119d283e2fe83c22d488b4b28483b4b300f8374050000488d5101488953288801488b6c24484183c7024c8b6424284885ed7520e9020200006690488d5001488953284088304183c7014883ed010f84e70100004983c401488b4328483b4330410fb67424ff72d34889dfe88b91fbff83f8ff75d1e969ecffff904c89442408be2b000000e90bfbffff90418b45088d700f488b83a00000004885c00f84b1030000488b5020483b50280f83a3030000488d7a0483feff4889782089320f94c084c00f851becffff8b7c244083ff0119c083e0fe83c02d83ff0119f683e6fe83c62d4585f689f20f841cffffff488b83a00000004885c00f8471030000488b7820483b78280f8363030000488d77044183c702488970208917488b4424484885c00f84140100004889c54989cceb2a0f1f4000488d4a0483feff4889482089320f94c084c00f8598ebffff4183c7014883ed010f84e2000000488b83a00000004983c404418b7424fc4885c0740a488b5020483b502872bb4889dfe87b81000083f8ff0f94c0ebbb0f1f00488b0c244189ef8b54240885d20f8e4804000048636c2408488b4424384989c44839c54c0f4ee54d85e40f841a02000048896c240848890c244489fd4989df488b5c2420eb22662e0f1f840000000000488d780149897f2840883083c5014983ec010f84d30100004883c301498b4728493b47300fb673ff72d64c89ffe8ee8ffbff83f8ff75d4e9cceaffff0f1f40003d014000000f8e170200002d02400000c744244000000000e917efffff0f1f0041f6450c204489f80f8475ecffff8b442418418b751085c00f8ee203000083fe300f84d90300004585f60f849b0300004863e84889df4889eae8d27900004839e80f8561eaffff8b4424184401f8e930ecffff0f1f440000be300000004889df48894c24504c89442410e8518ffbff83f8ff4c8b442410488b4c24500f8426eaffff418b450883c017e9d2fbffff66900fb6f04889df48894c24504c89442410e81b8ffbff83f8ff4c8b442410488b4c24500f94c0e963f7ffff660f1f44000048894c24504c89442410be2d0000004889dfe8e97f00004c8b442410488b4c245083f8ff0f94c084c00f84d1f6ffffe9b4e9ffff0f1f400044897c2408e9eef2ffff660f1f4400000fb6f24889df48894c24304c89442410e8a38efbff83f8ff4c8b442410488b4c24300f94c0e987f7ffff660f1f440000488b4328483b43300f8351020000488d500148895328c6002be96af6ffff8d729f4080fe050f878701000083ea57e93ceeffff8d719f4080fe050f878301000083e957e917eeffff4c89e24989cae93bf0ffff4c89fb488b0c244189ef488b6c2408482b6c24384885ed0f8e030200004889eabe300000004889df48890c24e894770000488b0c244839e80f85dfe8ffff4101c7e9bafbffff488b4c2408488b2c24482b6c24384885ed0f8e68fcffff4889eabe300000004889df48890c24e814780000488b0c24ebbeba02400000c74424400100000029c289d0e9fcecffff4889df48890c24e89c7e000083f8ff488b0c240f94c0e952fcffff4889df48890c24e8817e000083f8ff488b0c240f845ce8ffff4183c702e989fcffff48894c24504c89442410be2d0000004889dfe8548dfbff83f8ff4c8b442410488b4c24500f94c0e966feffff48894c24504c89442410be2b000000e93afeffff488b4328483b43300f8349010000488d500148895328c60020e90df5ffff8b442418418b750841893494408831e929f1ffff8b44241883c7014183049401408839e915f1ffff0fbe4c2430488b7c2420e999ecffff83ea30e9b5ecffff4983c720e953ecffff83e930e994ecffff4c637c2418be300000004889df48894c24504c894424104c89fae82e760000488b4c24504c8b442410e93df5ffff400fb6f64889df48890c24e87f8cfbff83f8ff488b0c240f94c0e935fbffff89d64889dfe8668cfbff83f8ff0f8583faffffe940e7ffff8b4c241085c90f857cf0ffff83fa070f8fa2efffff85ff0f846bf0ffffe995efffff8b74241085f675e2e959f0ffff48894c24504c89442410be2b000000e9b9feffff418b45088d700fe9e4f9ffff48894c24504c89442410be20000000e904fdffff48636c24184889df4889eae875750000e95efcffff0fb60188442430e998eeffff48894c24504c89442410be20000000e964feffff4489f8e97be8ffff448b7c24404585ff743e83e804c644243031c74424400100000085c00f8fc6effffff7d8c744244000000000e9b7efffff410fb67d0840887c2430e9a8efffff4889c5e98afdffff83c004c644243031e993efffffb9d0354b00ba9e000000be88354b00bfa8354b00e85a57faff892c2431ede928e7ffff4155415455534889fb4883ec088b0783e8013dfe0000007612e92a01000066903dff0000000f871d0100004883c3048b0385c075eb8b0d6d0627008d51f083fa070f86530100004889fdbe01000000833dc60f270000740cf00fb1354c062700750beb230fb13541062700741a488d3d380627004881ec80000000e80066feff4881c4800000004c8b2d421127004d85ed0f84cf0000004829eb488d7b10e81d1afcff4885c04989c40f84e10000000fb645008b0def0527004889da488d7504498d7c240c48c1fa02498b44c500498904248d41018905cd052700b801000000d3e04189442408e8e4a400000fb65500488b05d91027004c8924d0418b542408833d150f270000740bf0ff0d9c052700750aeb22ff0d92052700741a488d3d890527004881ec80000000e88165feff4881c4800000004883c40889d05b5d415c415dc30f1f44000048c7c0d0ffffff64c70016000000b8ffffffff4883c4085b5d415c415dc3be08000000bfff000000e8fb24fcff4885c0488905511027004989c50f850fffffff0f1f840000000000baffffffffe966ffffff48c7c0d0ffffff64c7001c000000b8ffffffffebac9041564155415455488b2f53488b050e1027000fb655004c8b0cd04d85c90f84a60000000fb65d014c8d5d014531f64531e44531ed4189da660f1f8400000000004584d2498d490c7476418b410c85c0747339d875454c89daeb13660f1f440000448b014585c0741a4139c0752d4883c2010fb6024883c10484c075e48b0185c075184889d04963cc4829e84839c87e0a458b69084189c44989d64d8b094d85c9759e4585edb801000000740a6644096e0e31c04c89375b5d415c415d415ec34c89daebb84c89daebb95bb8010000005d415c415d415ec3660f1f840000000000415541545553488b1f488b05300f27008b134c8b0cd04d85c90f849a000000448b53044c8d5b044531ed31ed4531e4904585d2498d510c7476418b410c85c074734439d075464c89d8eb120f1f440000448b024585c074194439c1752f4883c0048b084883c20485c975e58b1285d2751b4889c24863cd4829da48c1fa024839ca7e09458b610889d54989c54d8b094d85c9759c4585e4b801000000740a664409660e31c04c892f5b5d415c415dc34c89d8ebb74c89d8ebb85bb8010000005d415c415dc3662e0f1f8400000000009053be010000004889fb31c0833daa0c270000740cf00fb13534032700750beb230fb13529032700741a488d3d200327004881ec80000000e8e462feff4881c480000000488b05a60e27004885c074618b1557f5260081fa0001000074738d4a01890d46f526004863ca48895cc8c0833d470c270000740bf0ff0dd2022700750aeb22ff0dc8022700741a488d3dbf0227004881ec80000000e8b362feff4881c48000000089d05bc30f1f840000000000be08000000bff8000000e85122fcff4885c0488905270e2700758483caffeb9e48c7c0d0ffffffbaffffffff64c7001c000000eb89662e0f1f840000000000904881ecd800000084c0488954243048894c24384c894424404c894c244874370f294424500f294c24600f295424700f299c24800000000f29a424900000000f29ac24a00000000f29b424b00000000f29bc24c0000000488d8424e0000000488d5424084889442410488d442420c744240810000000c744240c300000004889442418e8a984ffff4881c4d8000000c390415541544989fc555389f54883ec08488b8fa0000000488b7118488b51204829f248c1fa0285d2753f488b4120483b4128731d488d500448895120892889e84883c4085b5d415c415dc3660f1f4400004883c40889ee4c89e75b5d415c415de9fc7600000f1f4000488bbf180200004863da4889da488b87d8000000ff50384885c07444baffffffff4839d0743a498b9424a00000004c8d2c85000000004829c3488b7a184889da4a8d342fe84fa00000498b8c24a00000004c296920e967ffffff660f1f440000b8ffffffffe96dffffff0f1f4000662e0f1f840000000000554889f84889e54157415641554154534883ec080fbe1a448d43ff4180f87d760f488d65d85b415c415d415e415f5dc34989f44c8d72014889fe4c89e24189cf4829fa488d421e4883e0f04829c44c8d6c240f4983e5f04c89efe851a0fcff4939c54889c20f837c0000000f1f4400004883ea048b3283eb01498d4424fc41897424fc754b4939d5739745897c24f8410fbe1e498d4424f880fb7f741b84db781784db743b4983c6010f1f80000000004989c4ebbb0f1f004883ea048b0a4883e8044939d5890872efe953ffffff66904939d572dbe947ffffff660f1f440000410fbe5effebc94c89e0e932ffffff90554889e541574156415541544989ff53bf842b4b004989f44883ec28488955c0e8dbe50000bf2e0000004889c34889c6488945c8e857e600004889debf2c0000004189c5e847e600004c89e289c34c29fa4881fa00100000761b4889d7488955b8e82a5ffeff85c04189c4488b55b80f84bb000000488d421e41bc010000004883e0f04829c44c8d44240f4983e0f04d89c64c89fe4c89f7e8239ffcff48c7c2b0ffffff64488b32488b55c04883ea0448837dc8007518eb4d0f1f800000000083f92e89d9410f44cd890a4883ea044883e8044c8d7a044939c60f87980000008b088d79d083ff09767689cf83e7fd83ff2c74cc890aebd30f1f840000000000890a4883ea044883e8044c8d7a044939c677658b088d79d083ff0977e3488b3e83c1034863c98b4ccf40890aebd466904889d7488955b8e8d412fcff4885c04989c6488b55b80f8546ffffff4c89f8488d65d85b415c415d415e415f5dc36690488b3e83c1034863c98b4ccf40890ae957ffffff0f1f40004585e44c89f875cf4c89f74c897dc8e82416fcff488b45c8488d65d85b415c415d415e415f5dc390554889e541574156488d85c0fbffff41554154534883c0104881ecf804000048837d30ff4889bd60fbffff4889b5f8faffff899504fbffff4c898550fbffff44898d58fbffff4c8b7d18488985c0fbffff48c785c8fbffff0004000048c78578fbffff000000000f84ef190000418b0785c00f84e2230000488d85c0fbffff4531f631db48c78568fbffff0e0000004c8d68100f1f4400004b8d04f6488d8d78fbffff4889de4c89ff4983c6014d8d64c5004c89e2e8465b00004d8b7c24204801c3418b0785c074474c39b568fbffff75c6488dbdc0fbffffe8d288000084c00f842a0b000048b88fe3388ee3388ee34c8badc0fbffff48f7a5c8fbffff48c1ea0648899568fbffffeb8d0f1f44000048399d78fbffff480f439d78fbffff4881fb555555050f87ce0a00004c8d245b49c1e4034981fc001000004d89e776104c89e7e8a85cfeff85c00f84e80600004983c71e48c78508fbffff000000004983e7f04c29fc488d44240f4883e0f048898568fbffff488b8560fbffff4989dc488d149d0000000049c1e4044c03a568fbffff8b40744c89a548fbffff4901d489c64c89e7898540fbffffc1e61dc1fe1fe8aa37faff4d85f60f84c01b00004531c04d89ef4c89ad40fbffff48899d38fbffff4d89e5488b9d48fbffff4d89f44d89c6eb280f1f0049634730418b5734418954850049634730418b57408914834983c6014983c7484d39e674614963472c83f8ff740941c7448500000000004963472883f8ff740941c744850000000000498b77384885f674c64883fe0174a849635730496347084983c6014c8b15a50727004c89ff4983c74848c1e202488d0c134c01ea41ff14c24d39e6759f488b9d38fbffff4d89e64d89ec4c8bad40fbffff4885db0f84d6000000488b9568fbffff488b8d50fbffff4531ff0f1f40004b6304bc83f8057f5783f8030f8d5f04000083f8010f8f7504000085c00f896d04000083f8ff0f853c040000488b8560fbfffff64074040f85c3040000b9c0344b00ba64070000be962b4b00bfc02b4b00e80a4cfaff662e0f1f8400000000003d000100000f84060400000f8e3f0400003d000200000f84f50300003d000400000f84090400003d070100000f85d6030000488b41084883c00f4883e0f0488d701048897108db28db3a660f1f4400004983c7014883c2104939df0f823fffffff486345104c39f048898548fbffff0f8372030000488b45204c89b510fbffff448bb558fbffff4805a00f0000488985f0faffff488b8548fbffff488d04c04d8d7cc500488d8590fbffff4883c030488985e0faffff662e0f1f840000000000410fb6470c418b770889b550fbffff89c289c74189c0c0ea0540c0ef034189c189d3410fb6570d83e7014088bd1cfbffff89c74189c440c0ef0741c0e80441c0e9064088bd28fbffff89c741c0ec024189d5c0ea0340d0ef83e20183e70141d0ed889518fbffff4963572c83e3014088bd24fbffff418b7f104183e0014183e1014183e5014183e401899d38fbffff49631f83faff89bd20fbffff0f8447070000488b8d68fbffff48c1e2048b141185d20f886107000041895704899558fbffff4963472883f8ff741a488b9d68fbffff48c1e00448631c0385db0f881f07000041891f8b8558fbffff39d80f4cc33dc80300000f8e4e0600008d50204863d248c1e2024881fa001000000f868f0600004889d744888d00fbffff44888530fbffff48899540fbffffe80259feff85c0488b9540fbffff440fb68530fbffff440fb68d00fbffff0f85530600004889d744888d00fbffff44888530fbffffe84d0dfcff4885c048898540fbffff440fb68530fbffff440fb68d00fbffff0f8414180000399d58fbffff0f8d190700004863c3488d04858000000048038540fbffff48898530fbffff8bb550fbffff81feff0000000f8fe6020000488b05f70327004885c00f84d60200004c63de4a8b04d84885c00f84c6020000498b7f38488d14fd1e0000004883e2f04829d4488d54240f4883e2f04885ff7441899d00fbffff458b573031f6488b9d68fbffff31c9428d041148c1e0044801d8488904f28d71014839f74889f177e6488b058703270048639d00fbffff4a8b04d844888decfaffff44888500fbffff4c89fe488bbd60fbffffffd083f8fe440fb68500fbffff440fb68decfaffff0f843102000085c00f88900400004181fefeffff7f0f87c9220000baffffff7f4429f239d00f87490700004101c6488b8540fbffff4885c074084889c7e8a50ffcff4585f60f881d230000488bbd60fbffff498b7718498b5720488b87d80000004829f248c1fa02ff5038498b5720492b571848c1fa024839d00f85ae160000baffffff7f4429f24863d24839d00f8f8c16000048838548fbffff014101c64983c748488b8548fbffff48398510fbffff0f87e0fcffff4489b558fbffff4883bd08fbffff000f842505000048c78540fbffff00000000e9d60300000f1f00f6c4080f84af0000008b0183f82f776889c64803711083c0088901488b06488902e922fcffff66908b0183f82f775989c64803711083c00889018b068902e905fcffff0f1f44000083f8077fb38b41043daf000000775189c64803711083c010894104f20f1006f20f1102e9d8fbffff0f1f840000000000488b7108488d460848894108eb956690488b7108488d460848894108eba46690bfe02b4b00e84649fbff660f1f440000488b7108488d460848894108ebad6690488b35390227004885f60f84ac04000048c1e00348837c06c0000f849c040000488bb548fbffff48899540fbffff48898d50fbffff4a6334be4883c61e4883e6f04829f44889ce488d7c240f4883e7f048893a4c8b05e601270041ff5400c0488b8d50fbffff488b9540fbffffe91efbffff660f1f4400004c89e7e8300afcff4885c048898508fbffff0f84c003000048898568fbffffe91af9ffff0f1f40008b8550fbffff83e82083f85a0f86be020000498b7738488d04f51e0000004883e0f04829c4488d7c240f4883e7f04885f6742f458b47304c8b8d68fbffff31c931d2660f1f440000428d040248c1e0044c01c8488904cf8d4a014839ce4889ca77e6488b8560fbffff488b80a00000004885c00f84270f0000488b5020488b48284839ca0f83160f0000488d720448897020c70225000000410fb6570cf6c2080f85410f000084d2bb01000000792a41bc02000000488b5020483b50280f83c7180000488d4a0448894820c70227000000410fb6570c4489e3f6c2400f84d71a0000488b8560fbffff488b80a00000004885c00f84771c0000488b5020483b50280f83691c0000488d4a0448894820c7022b000000410fb6570c83c30183e2207436488b8560fbffff488b80a00000004885c00f840e1c0000488b5020483b50280f83001c0000488d4a0448894820c7022d00000083c30141837f10300f842d1c000041f6470d087436488b8560fbffff488b80a00000004885c00f844a1c0000488b5020483b50280f833c1c0000488d4a0448894820c7024900000083c30149634f0485c90f84d9180000488d8590fbffff4c8d6030660f1f84000000000048b8cdcccccccccccccc4983ec0448f7e148c1ea03488d04924801c04829c14885d28b048d60b54b004889d14189042475ce488b85e0faffff4939c40f83831800004489b558fbffff4989c54c8bb560fbffffeb260f1f00488d7a0483feff488978208932744081fbffffff7f743883c3014d39ec0f8343180000498b86a00000004983c404418b7424fc4885c0740a488b5020483b502872be4c89f7e82e69000083f8ff75c04883bd08fbffff00c78558fbffffffffffff740c488bbd08fbffffe8290bfcff488bbd40fbffff4885ff0f8423010000e8140bfcffe9190100000f1f8000000000488b85f0faffff48c78540fbffff0000000048898530fbffffe942faffff662e0f1f8400000000000fb680e03d4b00450fb6c0450fb6c90fb69524fbffff450fb6ed450fb6e4440fb69d20fbffffff24c520364b000f1f004883c21e4883e2f04829d4488d44240f4883e0f0399d58fbffff0f8dd00000004863d3488d1495800000004801d048c78540fbffff0000000048898530fbffffe9c3f9ffff0f1f00418b4704898558fbffffe9caf8ffff660f1f84000000000041c707ffffffff48c7c3ffffffffe9d1f8ffff0f1f440000f7da83c820c78538fbffff01000000418957044188470c899558fbffffe987f8ffff48c7c0d0ffffff64c7004b0000000f1f840000000000c78558fbffffffffffff488bbdc0fbffff488d85c0fbffff4883c0104839c77405e8da09fcff8b8558fbffff488d65d85b415c415d415e415f5dc30f1f44000048639558fbffff488d149580000000e927ffffff0f1f400048638558fbffff488d048580000000e9def8ffffd9eedb3ae9cbf6ffff4585e40f84a21300008b9d58fbffff448b8538fbffff83eb0185db410f9fc44585c075454584e47440488bbd60fbffff4c63ebbe200000004c89eae87b6000004939c50f85f9fdffff4181fefeffff7f0f87e81c0000b8ffffff7f4429f039c30f87b20000004101de49634730488bb568fbffff48c1e0048b3406488b8560fbffff488b80a00000004885c00f8400110000488b5020483b50280f83f2100000488d4a0483feff4889482089320f848ffdffff4181feffffff7f0f8482fdffff8bbd38fbffff4183c60185ff0f8400f9ffff4584e40f84f7f8ffff488bbd60fbffff4c63e3be200000004c89e2e8c95f00004939c40f8547fdffff4181fefeffff7f0f87361c0000b8ffffff7f4429f039c30f86b70c000048c7c0d0ffffff64c7004b000000e917fdffff488b8560fbffff488b80a00000004885c0740e488b5020483b50280f8222130000488bbd60fbffffbe25000000e80e66000083f8ff0f84dcfcffff4181feffffff7f0f84cffcffff4183c601e956f8ffff4585e40f85c80000004585ed0f853d18000085d20f843e1a000049634730488bb568fbffffc78524fbffff0800000048c1e00485db440fb72c060fb6851cfbffff898520fbffff0fb68528fbffff0f892601000083bd50fbffff580f8499100000bb010000004531c94531c04531d248837d3000b960b54b00400f95c621c68b8524fbffff83f80a0f84c10c000083f8100f84441b000083f8080f847d1000004863bd24fbffff4c8ba530fbffff4c89e8660f1f44000031d24983ec0448f7f78b14914885c04189142475ebe9c60c000049634730488bbd68fbffff48c1e00485db4c8b2c070fb6851cfbffff898520fbffff0fb68528fbffff0f88cc0f00004d85ed0f854d13000085db0f85451300004531c9c78524fbffff080000004531c04531d2eb6e4585e40f85bf0000004585ed0f85b717000085d20f84f618000049634730488bbd68fbffffc78524fbffff0a00000048c1e00485db440fb72c070fb6851cfbffff898520fbffff0fb68528fbffff0f88710d00004d85ed0f857e19000085db0f85761900004531c94531c04531d283bd24fbffff080f8552140000f68520fbffff010f8445140000488b8530fbffff8b8d50fbffffba040000004531edc78524fbffff0800000041bb200000004c8d60fcc740fc30000000898d1cfbffffb801000000e97f02000049634730488bbd68fbffff48c1e00485db4c8b2c070fb6851cfbffff898520fbffff0fb68528fbffff0f88020b00004d85ed0f850512000085db0f85fd1100004531c9c78524fbffff0a0000004531c04531d2e94effffff49634730488bbd60fbffff488d9580fbffff4c89fe48c1e00448038568fbffff48898580fbffffe86dc9ffff85c00f884cfaffff4181fefeffff7f0f86bcf5ffffb9c0344b00bae6070000be962b4b00bf082c4b00e85f3efaff0f1f80000000004585e40f858a0000004585ed0f85ce16000085d20f84fe17000049634730488b8d68fbffffc78524fbffff1000000048c1e00485db440fb72c010fb6851cfbffff898520fbffff0fb68528fbffff0f897ffeffff83bd50fbffff580f8559fdffff48837d3000400f95c64022b528fbffffc7851cfbffff58000000bb01000000b9c0b44b004531c94531d24531c0e9e700000049634730488bb568fbffff48c1e00485db4c8b2c060fb6851cfbffff898520fbffff0fb68528fbffff0f88260d00000f85121100004d85ed0f85091100004531c9c78524fbffff100000004531c04531d2e904feffff49634730488bbd60fbffff488d9590fbffff4c89fe48c1e00448038568fbffff48898590fbffffe8b3caffff85c00f89b6feffffe9fdf8ffff660f1f44000049634730488bb568fbffff48c1e0044c8b2c064d85ed0f84ab15000085dbc7851cfbffff780000000f880115000031f6b960b54b00c78550fbffff780000004531d2c78520fbffff0100000041bb200000004c8ba530fbffff4c89e80f1f40004889c248c1e8044983ec0483e20f4885c08b14914189142475e6c78524fbffff100000004084f60f854c090000488b9530fbffff4c29e24889d048c1f8024d85ed74354839d87c3083bd24fbffff087527f68520fbffff01741e488b9530fbffff498d4424fc41c74424fc300000004989c44829c20f1f004889d048c1f8024829c34889c748898528fbffffb800000000480f48d88b8538fbffff899d30fbffff85c00f85a70500008b8d58fbffff29f929d94d85ed89cb741683bd24fbffff10750df68520fbffff018d41fe0f45d84489d04409c84409c083f80183d3ff4180fb200f84770a00004585d20f84ad070000488b8560fbffff488b80a00000004885c00f842f0b0000488b5020483b50280f83210b0000488d720448897020c7022d0000004181feffffff7f0f8465f7ffff4183c6014d85ed0f84b700000083bd24fbffff100f85aa000000f68520fbffff010f849d000000488b8560fbffff488b80a00000004885c07411488b7820488b70284839f70f82c90d0000488bbd60fbffffbe30000000e83260000083f8ff0f8400f7ffff4181feffffff7f0f84f3f6ffff488b8560fbffff488b80a00000004885c00f8465110000488b5020488b70284839f20f8354110000488d7204488970208b8550fbffff83f8ff89020f84b2f6ffff4181fefeffff7f0f84a5f6ffff4183c602039d30fbffff85db7e40488bbd60fbffff4c63ebbe300000004c89eae8f95800004939c50f8577f6ffff4181fefeffff7f0f872bfcffffb8ffffff7f4429f039c30f8730f9ffff4101de4585f60f8831150000488bbd60fbffff488b9d28fbffff4c89e6488b87d80000004889daff50384839c30f8527f6ffffb8ffffff7f4429f048984839c30f8ea1050000e9e5f8ffff0f1f840000000000488b8560fbfffff6407404742b448b9d04fbffff4585db0f8424130000448b9504fbffff4585d2790fbf602c4b00e8fd3bfbff0f1f44000049634730488b9d68fbffff48c1e0044585e4488b04030f85d40b00004585ed0f8422120000448830e932f1ffff488b75208b7d28baa00f00004531e4e8777500004989c54d85ed0f84ab0f00004183e4010f85d207000083bd50fbffff530f84c507000083fbff4c89ad90fbffff0f84541100004863f34c89efe8b97600004989c448b8ffffffffffffff3f4939c40f8710f8ffff4a8d1ca5000000004881fb001000000f87640b00004883c31ec78550fbffff000000004883e3f04829dc4c8d6c240f4983e5f0488d8d80fbffff488db590fbffff4c89e24c89ef48c78580fbffff00000000e8ac8b00004883f8ff4989c40f84d6f4ffff89c38b8558fbffff29d8898558fbffff0f88e00900008bb538fbffff0f958530fbffff0fb68530fbffff85f6755c84c074584c638558fbffff488bbd60fbffffbe200000004c89c24c898528fbffffe8fb5600004c8b8528fbffff4939c00f8572f4ffff4181fefeffff7f0f87611300008bbd58fbffffb8ffffff7f4429f039c70f8725f7ffff4101fe4585f60f88cb120000488b8d60fbffff4c89e24c89ee488b81d80000004889cfff50384939c40f8520f4ffff41b8ffffff7f4489c044898528fbffff4429f048984939c40f87d8f6ffff8b8d38fbffff4101de85c9745380bd30fbffff00744a448ba558fbffff488bbd60fbffffbe200000004963dc4889dae8475600004839c30f85c5f3ffff4181fefeffff7f0f87b4120000448b8528fbffff4529f04539c40f877bf6ffff4501e68b9550fbffff85d20f8424efffff4c89efe8d5fefbffe917efffff4963473048c1e0044585e40f85e80900004585ed0f84cd0f0000488bb568fbffff4c0fbe2c064c89e848c1e83f4d85ed4989c20f88f70d00000fb6851cfbffff85db898520fbffff0fb68528fbffff0f88180b00004d85ed751285dbc78524fbffff0a0000000f84e9f7ffff83bd50fbffff5841bb20000000c78524fbffff0a0000000f85a7f6ffff48837d3000b9c0b44b00400f95c64022b528fbffffe96d0300000f1f44000049634730488b8d68fbffff48c1e0044c8b2c01e93cfdffff488bbd60fbffffbe25000000e8df5b000083f8ff0f84adf2ffff410fb6570cf6c2080f8498090000488b8560fbffff488b80a00000004885c00f84390d0000488b7020488b48284839ce0f83280d0000488d5604bb0200000048895020c70623000000410fb6570c84d20f89c9f0ffff41bc03000000e99af0ffff0f1f4400004585d20f840b020000488b8560fbffff488b80a00000004885c00f8498050000488b4820483b48280f838a050000488d710448897020c7012d0000004181feffffff7f0f84fef1ffff83ad58fbffff014183c6014d85ed0f84cc00000083bd24fbffff100f85bf000000f68520fbffff010f84b2000000488b8560fbffff488b80a00000004885c07411488b7020488b48284839ce0f8285080000488bbd60fbffffbe3000000048899538fbffffe8bd5a000083f8ff488b9538fbffff0f8484f1ffff4181feffffff7f0f8477f1ffff488b8560fbffff488b80a00000004885c00f84b50b0000488b7820488b48284839cf0f83a40b0000488d4f04488948208b8550fbffff83f8ff89070f8436f1ffff4181fefeffff7f0f8429f1ffff83ad58fbffff024183c6028b8558fbffff48c1fa024189d801d34989d529d889c38b8530fbffff85c00f8fb90200004585f60f88d40f0000488b8d60fbffff4c89ea4c89e6488b81d80000004889cfff50384939c50f85cef0ffff41bcffffff7f4489e04429f048984c39e80f8c8df3ffff4501ee85db0f8e3cecffff488bbd60fbffff4c63ebbe200000004c89eae80e5300004939c50f858cf0ffff4181fefeffff7f0f8740f6ffff4529f44139dc0f8249f3ffff4101dee9fbebffff48c7c0c8ffffff64488b00488b008b5860488b4050488945300fb600895d3884c074083c7f0f85e6e5ffff48c7453000000000e9d9e5ffff4585c90f84c8040000488b8560fbffff488b80a00000004885c0740e488b4820483b48280f82a506000048899538fbffffbe2b000000e9750300004585c90f84ce040000488b8560fbffff488b80a00000004885c0740e488b5020483b50280f8257060000488bbd60fbffffbe2b000000e8e658000083f8ff0f8542f8ffffe9afefffff0f1f84000000000048837d3000bb01000000400f95c64022b528fbffff83bd50fbffff580f84cc010000b960b54b004531c94531d24531c04c8ba530fbffff4c89ef660f1f44000048b8cdcccccccccccccc4983ec0448f7e748c1ea03488d04924801c04829c74885d28b04b94889d74189042475d2c78524fbffff0a0000008b8550fbffff4084f689851cfbffff74528b4d38488b55304c89e7488bb530fbffff44889debfaffff448985ecfaffff44899500fbffff44898d28fbffffe895e1ffff440fb69debfaffff448b85ecfaffff4989c4448b9500fbffff448b8d28fbffff83bd24fbffff0a0f8555f6ffff80bd18fbffff000f8448f6ffff488b8530fbffff4c89e744889decfaffff44898500fbffff44899518fbffff44898d28fbffff4889c24889c6e81ae2ffff488b9530fbffff4989c4c78524fbffff0a000000440fb69decfaffff448b8500fbffff448b9518fbffff448b8d28fbffff4829c24889d048c1f802e9e8f5ffff48638d30fbffff488bbd60fbffffbe3000000044898550fbffff4889ca48898d58fbffffe891500000488b8d58fbffff4839c10f8508eeffff4181fefeffff7f0f87bcf3ffff448b8550fbffffb8ffffff7f4429f04439c00f82b9f0ffff4501c6e9e1fcffff83bd50fbffff580f8569f1ffff48837d3000bb01000000400f95c64022b528fbffffb9c0b44b004531c94531d24531c0e92ffeffff83fbff0f84e60400004863f34c89efe8fb860000c78550fbffff000000004989c489c3e9aaf8ffff48c7c0d0ffffff64c7004b0000004883bd08fbffff000f84abeeffff48c78540fbffff00000000c78558fbffffffffffffe95cedffff4885db0f8503e5ffffe95ae9ffff0f1f0085db0f8eb1030000488bbd60fbffff4863cbbe200000004889ca48898d58fbffff44898500fbffff44899518fbffff44898d38fbffffe8754f0000488b8d58fbffff4839c10f85ececffff4181fefeffff7f448b8d38fbffff448b9518fbffff448b8500fbffff0f878bf2ffffb8ffffff7f4429f039c30f8790efffff4101de31dbe902f5ffff488bbd60fbffffe8cd55000083f8ff0f850cefffffe996ecffff0f1f800000000048899538fbffffbe2d000000488bbd60fbffffe8a055000083f8ff488b9538fbffff0f855cfaffffe962ecffff0f1f00488bbd60fbffffbe2d000000e87755000083f8ff0f85d3f4ffffe940ecffff660f1f84000000000048837d30008b8550fbffff400f95c64022b528fbffff83f8580f846af2ffff89851cfbffffbb01000000b960b54b004531c94531d24531c0e955f3ffff48837d3000bb01000000400f95c64022b528fbffff83bd50fbffff587425b960b54b004531c94531d24531c0eb2348837d3000bb01000000400f95c64022b528fbffffb9c0b44b004531c94531d24531c04c8ba530fbffff4c89e80f1f8400000000004889c248c1e8034983ec0483e2074885c08b14914189142475e68b8550fbffffc78524fbffff0800000089851cfbffffe9eff2ffff4585c00f8466f9ffff488b8560fbffff488b80a00000004885c00f846b080000488b4820483b48280f835d080000488d710448897020c70120000000e916f9ffff4585c00f84b7f3ffff488b8560fbffff488b80a00000004885c00f84e7070000488b5020483b50280f83d9070000488d720448897020c70220000000e96ef3ffff4585f60f885f090000488bbd60fbffff4c89e24c89ee488b87d8000000ff50384939c40f85b7eaffffb8ffffff7f4429f048984939c40f8631faffffe975edffff0f1f8400000000008b9d58fbffff448b8d38fbffff83eb0185db410f9fc44585c975454584e47440488bbd60fbffff4c63ebbe200000004c89eae8d94c00004939c50f8557eaffff4181fefeffff7f0f8746090000b8ffffff7f4429f039c30f8710edffff4101de49634730488b8d68fbffff48c1e0040fb63c01e8787d0000488bbd60fbffff488b97a00000004885d20f8490060000488b4a20483b4a280f8382060000488d710483f8ff4889722089010f8558ecffffe9e2e9ffff0f1f004963d6488910e964e5ffff488d4a0448894820c70225000000e9e5ecffff4889dfe8e23cfeff85c00f858cf4ffff4889dfe852f1fbff4885c04989c50f849de9ffffc78550fbffff01000000e987f4ffff488bb568fbffff4c8b2c06e91df6ffff31dbe9c9f1ffff488d720448897020c7022b000000e9f2f1ffff488d710448897020c7012b000000e946f7ffff488d57044181feffffff7f48895020c707300000000f8562f2ffffe931e9ffff662e0f1f840000000000488d7e044181feffffff7f48897820c706300000000f85b4f7ffffe907e9ffff41bc02000000bb0100000084d20f8966e7ffff488b8560fbffff488b80a00000004885c00f852be7ffff488bbd60fbffffbe27000000e8f551000083f8ff0f852de7ffffe9bee8ffff0f1f80000000004c89efe8c8780000c78550fbffff000000004989c489c3e9c7f3ffff83bd50fbffff580f842f07000041bb200000004531c9c78524fbffff0a0000004531c04531d2e919ecffff83bd50fbffff580f84c206000041bb200000004531c9c78524fbffff080000004531c04531d2e9eeebffff83bd50fbffff580f844006000041bb200000004531c9c78524fbffff100000004531c04531d2e9c3ebffff48837d3000bb01000000b960b54b00400f95c64022b528fbffff83bd50fbffff580f857cf8ffffb9c0b44b00e972f8ffff448bb558fbffff41833fff0f848a010000488b8560fbffff488b80a00000004885c00f84ca030000488b5020483b50280f83bc030000488d4a0448894820c7022e00000081fbffffff7f0f8499e7ffff488d8590fbffff49630f83c3014c8d60309048b8cdcccccccccccccc4983ec0448f7e148c1ea03488d04924801c04829c14885d28b048d60b54b004889d14189042475ce488b85e0faffff4939c40f83f70000004489b558fbffff4989c54c8bb560fbffffeb2e0f1f00488d7a0483feff4889782089320f841ce7ffff81fbffffff7f0f8410e7ffff83c3014d39ec0f83af000000498b86a00000004983c404418b7424fc4885c0740a488b5020483b502872b64c89f7e80650000083f8ff75bce9d3e6ffff8b8550fbffff4c8ba530fbffff31d24531ed41bb2000000089851cfbffff31c0e955eefffff6c2100f845be5ffff488b8560fbffff488b80a00000004885c00f842c040000488b5020483b50280f831e040000488d4a0448894820c70220000000e91be5ffff488d85c0fbffff4531ff31db4531f64c8d6810e9dedcffff448bb558fbffff418b770885f67447488b8560fbffff488b80a00000004885c00f840a040000488b5020483b50280f83fc030000488d4a0483feff4889482089320f840ee6ffff81fbffffff7f0f8402e6ffff83c3014181fefeffff7f0f86b8e8ffffb9c0344b00ba02080000be962b4b00bf082c4b00e8122afaff669083fbff0f846f02000083fb050f8f6602000031dbc78550fbffff000000004531e441bd04364b00e9d7f0ffff8bb51cfbffff488bbd60fbffff48899550fbffffe8bb4e000083f8ff488b9550fbffff0f854cf4ffffe97de5ffff660f1f4400008bb51cfbffff488bbd60fbffffe88e4e000083f8ff0f85aaeeffffe957e5ffff49f7dde901f2ffff488bbd60fbffffbe23000000e8674e000083f8ff0f8435e5ffff410fb6570c41bc03000000bb02000000e924fcffff488bbd60fbffffbe2d000000e8384e000083f8ff0f85f4e3ffffe901e5ffff662e0f1f840000000000488bbd60fbffffbe2b000000e80f4e000083f8ff0f858be3ffffe9d8e4ffff90488b8560fbffff488b80a00000004885c00f84c9010000488b5020483b50280f83bb010000488d4a0448894820c7023000000083c301e998e3ffff488bbd60fbffffbe49000000e8b44d000083f8ff0f85b8e3ffffe97de4ffff660f1f440000c78524fbffff0800000049634730488bb568fbffff48c1e004440fb62c060fb6851cfbffff85db898520fbffff0fb68528fbffff0f89f1e8ffffbb0100000083bd50fbffff580f85cbe7ffff48837d3000b9c0b44b00400f95c64531c94531c021c64531d2e9c6e7ffff660f1f4400004c89efe8e847fcff4989c4e9aaeeffff488bbd60fbffffbe2e000000e80f4d000083f8ff0f8538fcffffe9d8e3ffff90c78524fbffff0a000000e95bffffffbb0100000031f6b960b54b00c78550fbffff780000004531d2c78520fbffff01000000e9fbeaffff85d20f8559010000488b8d68fbffff4c632c01e927f0ffff85d20f8552010000448930e908dfffff89c6e89a4c000083f8ff0f85d9e5ffffe963e3ffff0f1f4000bb06000000c78550fbffff0000000041bc0600000041bd403e4b00e96beeffffc78524fbffff10000000e9c3feffff83fb04b80500000041bdf0354b000f4ed8e97df5ffff488bbd60fbffffbe20000000e8324c000083f8ff0f858eebffffe9fbe2ffff0f1f4000488bbd60fbffffbe30000000e80f4c000083f8ff0f8539feffffe9d8e2ffff9048899538fbffffbe20000000e943f6ffff488b9df8faffff899558fbffff4889dfe8ca720000488d3485040000004889dfe81abd00008b9558fbffff898504fbffffe9a6ecffffc78524fbffff0a00000049634730488bb568fbffff48c1e004448b2c06e915feffffc78524fbffff08000000ebdc488bbd60fbffffbe20000000e87a4b000083f8ff0f85f6e0ffffe943e2ffff0f1f4000488bb568fbffff4c0fbf2c06e9cdeeffff66448930e9b5ddffff488bbd60fbffffe8424b000083f8ff0f8502fcffffe90be2ffff0f1f4000c78524fbffff10000000e972ffffff48837d3000c7851cfbffff58000000b9c0b44b0041bb20000000400f95c64531c94022b528fbffff4531d24531c0e920e9ffff41bb20000000e982fdffffb9c0344b00badf070000be962b4b00bf082c4b00e8da25faff48837d3000b9c0b44b0041bb20000000400f95c64531c94022b528fbffff4531d24531c0e9cff5ffffb9c0344b00bae7070000be962b4b00bf382c4b00e89825faff48837d3000b9c0b44b0041bb20000000400f95c64531c94022b528fbffff4531d24531c0e9bff1ffffb9c0344b00ba0e080000be962b4b00bf382c4b00e85625faffb9c0344b00bae6070000be962b4b00bf382c4b00e83d25faffb9c0344b00bae7070000be962b4b00bf082c4b00e82425faff8b8550fbffff89851cfbffffe935e8ffff0f1f00554889e541574156415541544989fe534889f3be010000004989d44881ecb810000048c7c0d0ffffff648b008985a8efffffe8a95d000083f8010f852e020000418b06a8080f85050300004885db0f840c020000be010000004c89f7e87f5d000083f8010f8504020000458b3e41f6c7020f8549010000498b0424be250000004889df488985f8efffff498b44240848898500f0ffff498b44241048898508f0ffffe8397a00004181e7008000004989c5488985b8efffffc785acefffff000000000f858e000000b80000000031c94885c00f95c1898dacefffff0f845f010000488dbd10f0ffff4c89f2be501e4600e82b0bbaff41f706008000007558498b9688000000644c8b0425100000004c3b4208743ebe0100000031c0833dbadc2600007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e80033feff4881c480000000498b96880000004c894208834204014c89e84889de4c89f74829d8488985a0efffff4989c7498b86d800000049c1ff024c89faff50384939c741b9ffffffff0f84fc00000041f70600800000750d498b9688000000836a0401743e8b85acefffff85c07570488d65d84489c85b415c415d415e415f5dc366904c89e24889de4c89f7e8a2260000488d65d85b415c415d415e415f5dc30f1f0048c7420800000000833deddb2600007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e86532feff4881c4800000008b85acefffff85c07490488dbd10f0ffff31f644898dacefffffe8ef09baff448b8dacefffffe96fffffff0f1f0048c78510f0ffff501e46004c89b518f0ffffe9a7feffff660f1f84000000000048c7c0d0ffffff64c70016000000488d65d8b8ffffffff5b415c415d415e415f5dc3660f1f44000048b8ffffffff01000000483985a0efffff7e1548c7c0d0ffffff64c7004b000000e9defeffff6690488b95b8efffff4589f98b0a85c90f84c8feffff48833dbcdc2600000f849c000000c78598efffff00000000c78594efffff0000000048c785a0efffffffffffffc7859cefffff000000008b859cefffff8b9598efffff4c8d85f8efffff4c89e14889de4c89f7508b85a8efffffffb5a0efffff50488d8530f0ffff508b8594efffff415550e8d5d2ffff4883c4304189c1e945feffff660f1f84000000000083c82041890648c7c0d0ffffff64c70009000000b8ffffffffe960feffff48833d1adc2600000f8556ffffff48833d8cdc260000c78598efffff00000000c78594efffff0000000048c785a0efffffffffffffc7859cefffff000000000f8548ffffff448b5a04488d4204488985b8efffffb840fb4500418d53e083fa5a770f0fb682e03d4b00488b04c5203c4b00c78554efffff20000000c78538efffff000000004c8d55d0c78580efffffffffffffc78588efffff000000004531ffc78540efffff00000000c78570efffff00000000c78578efffff00000000c78590efffff00000000c78548efffff00000000c78558efffff00000000c78568efffff00000000c78560efffff00000000c78550efffff00000000ffe08b8d88efffff83e90185c90f9f8588efffff83bd68efffff000fb68588efffff756884c074644c63d9be200000004c89f74c89da4c899d80efffff44898d70efffff898d78efffffe8993e00004c8b9d80efffff4939c30f85b0020000448b8d70efffff4181f9feffff7f0f87a30400008b8d78efffffb8ffffff7f4429c839c10f87230400004101c9418b142483fa2f0f873e04000089d0490344241083c208418914248b30498b86a00000004885c0740e488b5020483b50280f82fc0300004c89f744898d78efffff898d80efffffe8c044000083c0018b8d80efffff448b8d78efffff0f84210200004181f9ffffff7f0f84140200004183c10183bd68efffff00746d80bd88efffff0074644c63d9be200000004c89f74c89da4c899d88efffff44898d78efffff898d80efffffe8b03d00004c8b9d88efffff4939c30f85c7010000448b8d78efffff4181f9feffff7f0f87ba0300008b8d80efffffb8ffffff7f4429c839c10f873a0300004101c9838594efffff014d85ff74164c89ff44898d88efffffe828e6fbff448b8d88efffff488b85b8efffffbe2500000044898d88efffff4c8d78044c89ff4c89bdb8efffffe8bb740000448b8d88efffff488985b8efffff4585c90f88290300004c29f844898d88efffff4c89fe48c1f8024c89f74889c2498b86d8000000ff5038488b95b8efffff4889d14c29f948c1f9024839c80f850d010000448b8d88efffffb9ffffff7f4429c94863c94839c80f8fc00200004101c1833a000f8515fdffffe9e9faffff488dbdb8efffff4c899528efffff44898d30efffffe8b40afaff3ddeffff1f898588efffff448b8d30efffff4c8b9528efffff0f873802000048638588efffff3dc70300007e55488d1485800000004881fa00100000762c4889d744898d28efffff48899530efffffe8ef2cfeff85c0488b9530efffff448b8d28efffff0f84681f0000488d421e4883e0f04829c4488d44240f4883e0f04c8d1410488b85b8efffff448b184183fb240f844d1c0000418d43e083f85a0f86510800004585db0f85371c000048c7c0d0ffffff64c700160000004d85ff74084c89ffe89ce4fbff41b9ffffffffe9fdf9ffff83bd70efffff000f85cefcffff8b8588efffff83e80185c0898588efffff0f9f8580efffff83bd68efffff000fb68d80efffff756084c9745c4863c8be200000004c89f74889ca48898d78efffff44898d70efffffe8673b0000488b8d78efffff4839c17582448b8d70efffff4181f9feffff7f0f8775010000b8ffffff7f4429c8398588efffff0f87f700000044038d88efffff418b142483fa2f0f872818000089d0490344241083c208418914240fb63844898d78efffffe8e26b0000498b96a0000000448b8d78efffff4885d2740e488b4a20483b4a280f82fd17000089c64c89f744898d78efffffe88041000083c001448b8d78efffff0f84e7feffff4181f9ffffff7f0f84dafeffff4183c10183bd68efffff000f842ffdffff80bd80efffff000f8422fdffff48638d88efffffbe200000004c89f744898d78efffff4889ca48898d80efffffe8703a0000488b8d80efffff4839c10f8587feffff448b8d78efffff4181f9feffff7f777eb8ffffff7f4429c8398588efffff0f86130d000048c7c0d0ffffff64c7004b000000e950feffff488d7a0448897820893283c6010f851cfcffffe938feffff498b442408488d50084989542408e9bdfbffff48c7c0d0ffffff64c7004b000000e91ffeffffb908364b00ba7f060000be962b4b00bf382c4b00e8921bfaffb908364b00ba60060000be962b4b00bf082c4b00e8791bfaff418b142483fa2f0f87631a000089d0490344241083c20841891424488b0048898578efffff4883bd78efffff000f84ad03000083bd70efffff000f85600300004183fb530f84560300008b8d80efffff488b8578efffff83f9ff488985e0efffff0f84100300004863f14889c744898d80efffffe830580000448b8d80efffff4889c248b8ffffffffffffff3f4839c20f87e7feffff488d0c95000000004881f900100000763a4889cf44898d70efffff48899578efffff48898d80efffffe8a529feff85c0488b8d80efffff488b9578efffff448b8d70efffff0f844c190000488d411ec78580efffff000000004883e0f04829c4488d44240f4883e0f048898578efffff488bbd78efffff488d8dd0efffff488db5e0efffff44898d70efffff48c785d0efffff00000000e8d76c00004883f8ff4989c3448b8d70efffff0f849afcffff8b8588efffff44899d90efffff4429d8898588efffff0f88b50100000f958570efffff83bd68efffff000fb68570efffff757684c0747248638d88efffffbe200000004c89f744898d54efffff4c899d58efffff4889ca48898d60efffffe810380000488b8d60efffff4839c10f8527fcffff448b8d54efffff4181f9feffff7f0f871afeffffb8ffffff7f4c8b9d58efffff4429c8398588efffff0f8795fdffff44038d88efffff4585c944898d58efffff0f88ff000000498b86d80000004c89da4c899d60efffff488bb578efffff4c89f7ff50384c8b9d60efffff4939c30f85b3fbffff448b8d58efffff41b8ffffff7f4489c04429c848984939c30f8732fdffff44038d90efffff83bd68efffff0044898560efffff747080bd70efffff00746748638d88efffffbe200000004c89f744898d90efffff4889ca48898d70efffffe829370000488b8d70efffff4839c10f8540fbffff448b8d90efffff4181f9feffff7f0f8733fdffff448b8560efffff4529c844398588efffff0f87b2fcffff44038d88efffff83bd80efffff000f8467f9ffff488bbd78efffff44898d88efffffe897dffbff448b8d88efffffe948f9ffffb908364b00ba60060000be962b4b00bf382c4b00e86218faff4585c978e2498b86d80000004c89da4c899d88efffff44898d80efffff488bb578efffff4c89f7ff50384c8b9d88efffff4939c30f858ffaffff448b8d80efffffb8ffffff7f4429c848984939c30f8712fcffff44038d90efffffe9cff8ffff488bbd78efffff31c04883c9fff2ae4889c848f7d0488d50ffe9eefcffff48c78578effffff0354b0083bd80efffffff0f84d61600004863b580efffff488bbd78efffff44898d70efffffe8e26c0000c78580efffff000000004989c3448b8d70efffffe966fdffff8b8580efffffc78580efffff0000000083f8ff0f842b14000083f8050f8f221400004531db48c78578efffff04364b00e931fdffff488b85b8efffff448b5804488d5004488995b8efffff418d43e083f85a0f8791f9ffff0fb680e03d4b00c78570efffff01000000488b04c520374b00ffe083bd68efffff00b8300000000f458554efffff898554efffff488b85b8efffff448b5804488d5004488995b8efffff418d43e083f85a0f873af9ffff0fb680e03d4b00ff24c5203c4b004883bda0efffffff0f84db160000488b85b8efffff448b5804488d5004488995b8efffff418d43e083f85a0f87fbf8ffff0fb680e03d4b00c78548efffff01000000488b04c5203c4b00ffe0488b85b8efffff448b5804488d5004488995b8efffff418d43e083f85a0f87bdf8ffff0fb680e03d4b00c78538efffff01000000488b04c5203c4b00ffe0488b85b8efffff488d50048b4004488995b8efffff488995e0efffff83e83083f8090f8671140000418b142483fa2f0f8675160000498b442408488d500849895424088b0085c0898588efffff791af79d88efffffc78554efffff20000000c78568efffff0100000081bd88efffffdeffff1f0f8fddf9ffff48638588efffff3dc70300007e55488d1485800000004881fa00100000762c4889d744898d28efffff48899530efffffe89424feff85c0488b9530efffff448b8d28efffff0f84f9150000488d421e4883e0f04829c4488d44240f4883e0f04c8d1410488b85b8efffff448b18418d43e083f85a0f87aff7ffff0fb680e03d4b00ff24c5203b4b00c78590efffff0800000083bd70efffff00418b14240f845707000083fa2f0f87150c000089d0490344241083c20841891424488b00c78558efffff000000004531c0c78560efffff0000000048898578efffff83bd80efffff000f88030700000f850e0600004883bd78efffff000f850006000083bd90efffff080f852909000083bd50efffff000f841c090000498d42fc41c742fc30000000c78554efffff20000000c78580efffff0000000048898570efffff488b8d70efffff48638580efffff4c89d24829ca48c1fa024839d07f2e4883bd78efffff00742483bd90efffff08751b83bd50efffff007412c741fc300000004883e90448898d70efffff4c2b9570efffff4c899540efffff49c1fa024c29d04c899548efffff4889c1b800000000480f49c183bd68efffff004889c148898538efffff898580efffff0f856a0200008b8588efffff4429d029c84883bd78efffff00898588efffff742083bd90efffff10751789c183e80283bd50efffff0089c20f44d1899588efffff8b8560efffff4409c00b8558efffff83f801839588efffffff83bd54efffff200f84ac0900004585c00f8447060000498b86a00000004885c0740e488b5020483b50280f828408000044898d60efffff44899d68efffffbe2d0000004c89f7e85d38000083c001448b9d68efffff448b8d60efffff0f84bdf5ffff4181f9ffffff7f0f84b0f5ffff4183c1014883bd78efffff000f84c000000083bd90efffff100f85b300000083bd50efffff000f84a6000000498b86a00000004885c0740e488b5020483b50280f8288050000be300000004c89f744898d90efffff44899d78efffffe8d837000083c001448b9d78efffff448b8d90efffff0f8438f5ffff4181f9ffffff7f0f842bf5ffff498b86a00000004885c0740e488b5020483b50280f82150500004489de4c89f744898d78efffffe88837000083c001448b8d78efffff0f84eff4ffff4181f9feffff7f0f84e2f4ffff4183c1028b8d88efffff038d80efffff85c97e644c63d9be300000004c89f74c89da4c899d88efffff44898d78efffff898d80efffffe8803000004c8b9d88efffff4939c30f8597f4ffff448b8d78efffff4181f9feffff7f0f87d30500008b8d80efffffb8ffffff7f4429c839c10f870af6ffff4101c94585c90f88b6080000498b86d800000044898d88efffff4c89f7488b9548efffff488bb570efffffff5038488b8d48efffff4839c10f852ff4ffff448b8d88efffffb8ffffff7f4429c848984839c10f8fb2f5ffff44038d48efffffe96ff2ffff4585c00f84c7040000498b86a00000004885c0740e488b5020483b50280f824f05000044898d60efffff44899d68efffffbe2d0000004c89f7e85436000083c001448b9d68efffff448b8d60efffff0f84b4f3ffff4181f9ffffff7f0f84a7f3ffff83ad88efffff014183c1014883bd78efffff000f84c700000083bd90efffff100f85ba00000083bd50efffff000f84ad000000498b86a00000004885c0740e488b5020483b50280f826c050000be300000004c89f744898d90efffff44899d78efffffe8c835000083c001448b9d78efffff448b8d90efffff0f8428f3ffff4181f9ffffff7f0f841bf3ffff498b86a00000004885c0740e488b5020483b50280f82d90400004489de4c89f744898d78efffffe87835000083c001448b8d78efffff0f84dff2ffff4181f9feffff7f0f84d2f2ffff83ad88efffff024183c102488b8d40efffff488b8538efffff8b9588efffff48c1f9024189c001c829c283bd80efffff00899588efffff7e794c639d80efffffbe300000004c89f748898d68efffff44898590efffff44898d78efffff4c89da4c899d80efffffe83f2e00004c8b9d80efffff4939c30f8556f2ffff448b8d78efffff4181f9feffff7f0f8792030000448b8590efffffb8ffffff7f488b8d68efffff4429c84439c00f82c0f3ffff4501c14585c944898d78efffff0f8865060000498b86d80000004889ca48898d80efffff488bb570efffff4c89f7ff5038488b8d80efffff4839c10f85e2f1ffff448b8d78efffff41bbffffff7f4489d84429c848984839c80f8c61f3ffff8b8588efffff4101c944899d70efffff85c00f8e12f0ffff4863c8be200000004c89f74889ca48898d80efffff44898d78efffffe8642d0000488b8d80efffff4839c10f857bf1ffff448b8d78efffff4181f9feffff7f0f87b7020000448b9d70efffff4529cb443b9d88efffff0f82edf2ffff44038d88efffffe9aaefffffc78554efffff200000004183fb58b8c0b44b00b960b54b00480f44c88b8590efffff83f80a0f846504000083f8100f84b803000083f8080f847a0400004863b590efffff488b8578efffff4c89d731d24883ef0448f7f68b14914885c0891775ed83bd48efffff004889bd70efffff740e4883bda0efffff000f85b103000083bd90efffff0a0f85b5f9ffff83bd38efffff000f84a8f9ffff488bbd70efffff4c89d24c89d644898d30efffff44899d38efffff44898540efffff4c899548efffffe876bdffff4c8b9548efffff48898570efffff448b8540efffff448b9d38efffff448b8d30efffffe952f9ffffc78580efffff01000000e90cffffff83bd40efffff000f84c801000083fa2f0f87ac01000089d0490344241083c208418914240fb600c78558efffff000000004531c0c78560efffff0000000048898578efffffe997f8ffff488d4a044889482044891a4183c3010f85f8faffffe9e2efffff488d4a044181f9ffffff7f48894820c702300000000f85a8faffffe9c2efffff83bd58efffff007432498b86a00000004885c0740e488b5020483b50280f82d203000044898d60efffff44899d68efffffbe2b000000e9abf9ffff83bd60efffff000f84cef9ffff498b86a00000004885c0740a488b5020483b5028721844898d60efffff44899d68efffffbe20000000e970f9ffff488d4a0448894820c70220000000e97cf9ffff83bd58efffff007432498b86a00000004885c0740e488b5020483b50280f824801000044898d60efffff44899d68efffffbe2b000000e92bfbffff83bd60efffff000f8455fbffff498b86a00000004885c0740a488b5020483b5028721844898d60efffff44899d68efffffbe20000000e9f0faffff488d4a0448894820c70220000000e9fcfaffffb908364b00ba5f060000be962b4b00bf082c4b00e8300cfaff488d4a0448894820c7022d000000e9d0faffff498b442408488d50084989542408e94ffeffff83bd78efffff000f85bc00000083fa2f0f87a000000089d0490344241083c208418914248b00c78558efffff000000004531c0c78560efffff0000000048898578efffffe9c3f6ffff488d4a044889482044891a4183c3010f8534fbffffe90eeeffff4c899570efffffc78554efffff20000000c78580efffff00000000e9ebf6ffff488d4a044181f9ffffff7f48894820c702300000000f85c4faffffe9ceedffff488d4a0448894820c7022b000000e907faffff498b442408488d50084989542408e95bffffff83fa2f0f870d02000089d0490344241083c208418914240fb700c78558efffff000000004531c0c78560efffff0000000048898578efffffe906f6ffff488d4a0448894820c7022d000000e99bf7ffff488b9578efffff4c89d04889d648c1ea044883e80483e60f4885d28b34b1893075e84883bda0efffff0048898570efffff0f841ef6ffff83bd48efffff000f8411f6ffff8b8d9cefffff488b95a0efffff4c89d6488bbd70efffff44898d28efffff44899d30efffff44898540efffff4c899548efffffe8e5b8ffff448b8d28efffff48898570efffff448b9d30efffff448b8540efffff4c8b9548efffffe9effbffff488b8578efffff4c89d7be0a00000031d24883ef0448f7f68b14914885c0891775ede9aafbffff488b9578efffff4c89d04889d648c1ea034883e80483e6074885d28b34b1893075e8e930ffffff8b8588efffff85c00f8e9e0000004863c8be200000004c89f74889ca48898d68efffff44898d38efffff44899d40efffff44898554efffffe802280000488b8d68efffff4839c10f8519ecffff448b8d38efffff448b8554efffff448b9d40efffff4181f9feffff7f0f8747fdffffb8ffffff7f4429c8398588efffff0f8780edffff44038d88efffffc78588efffff00000000e9bbf5ffff488d4a0448894820c7022b000000e9fdf5ffffc78588efffff00000000e999f5ffffb908364b00ba5f060000be962b4b00bf382c4b00e82b09faff498b442408488d50084989542408e9eefdffff498b442408488d50084989542408e9e6f3ffffc78590efffff10000000e9aff3ffff488dbde0efffff31c0b9050000000fb69570efffff8bb590effffff3ab8b8580efffff0fb68d78efffff44899de8efffffc1e2028985e0efffff8b8588efffff01c909f18985e4efffff0fb68550efffff09d10fb69560efffffc1e00309c10fb68568efffffc1e20409d10fb69558efffffc1e00509c10fb68548efffffc1e20609cac1e00709d08885ecefffff0fb68538efffffc1e00383c80485f68885edefffff8b8554efffff8985f0efffff0f847c010000498b4424084883c00f4883e0f0488d50104989542408db28dbbdd0efffff488d85d0efffff488d95c0efffff488db5e0efffff4c89f744898d88efffff488985c0efffffe8d892ffff85c00f8857eaffff448b8d88efffff4181f9feffff7f0f8793fbffffbaffffff7f4429ca39d00f87d0ebffff4101c1e991e8ffff488dbde0efffff31c0b9050000000fb69570efffff8bb590effffff3ab8b8580efffff0fb68d78efffff44899de8efffffc685edefffff04c1e2028985e0efffff8b8588efffff01c909f18985e4efffff0fb68550efffff09d10fb69560efffffc1e00309c10fb68568efffffc1e20409d10fb69558efffffc1e00509c10fb68548efffffc1e20609cac1e00709d085f68885ecefffff8b8554efffff8985f0efffff0f8483000000498b4424084883c00f4883e0f0488d50104989542408db28dbbdd0efffff488d85d0efffff488d95c8efffff488db5e0efffff4c89f744898d88efffff488985c8efffffe84294ffff85c00f89dafeffffe92ce9ffff418b54240481faaf000000774d89d0490344241083c2104189542404f20f1000f20f1185d0efffffe975feffff418b54240481faaf000000773089d0490344241083c2104189542404f20f1000f20f1185d0efffffe96effffff498b442408488d50084989542408ebb2498b442408488d50084989542408ebcf418b142483fa2f0f872b01000089d0490344241083c20841891424488b004885c00f84ea00000048898578efffff41bb78000000c78548efffff00000000c78550efffff01000000c78590efffff100000004531c0e9f3f0ffff41f6467404740983bd98efffff00742e83bd70efffff00418b1424746b83fa2f775689d0490344241083c20841891424488b004963d1488910e980e6ffff4889df44898d88efffffe884510000488d3485040000004889dfe8d49b000085c0898598efffff448b8d88efffff79a2bf602c4b00e86907fbff498b442408488d50084989542408eba883bd40efffff000f84e300000083fa2f0f87c700000089d0490344241083c20841891424488b00448808e907e6ffff83bd80efffff040f8f49edffff48c78578effffff0354b00c78580efffff05000000e947edffff498b442408488d50084989542408e9d0feffff8bbda8efffff488db530f0ffffbaa00f000044898d60efffff44899d90efffffe88b400000c78570efffff0000000048898578efffff448b9d90efffff448b8d60efffffe963e9ffff498b442408488d50084989542408e9d3e7ffff488d710448897220890183c0010f8511e8ffffe9f3e6ffff498b442408488d50084989542408e934ffffff83bd78efffff000f85e201000083fa2f0f87c601000089d0490344241083c20841891424488b00448908e917e5ffff488b85b8efffff448b5804488d5004488995b8efffff418d43e083f85a0f8777e6ffff0fb680e03d4b00c78570efffff01000000c78590efffff00000000488b04c520384b00ffe0498b86a00000004885c0740a488b5020483b5028723abe250000004c89f744898d88efffffe8c828000083c001448b8d88efffff0f842fe6ffff4181f9ffffff7f0f8422e6ffff4183c101e97fe4ffff488d4a0448894820c70225000000ebdae953ffffff488b85b8efffff448b5804488d5004488995b8efffff418d43e083f85a0f87cae5ffff0fb680e03d4b00c78570efffff01000000c78590efffff01000000488b04c520384b00ffe041bb0600000048c78578efffff403e4b00e90ce9ffff83bd70efffff00418b1424747383fa2f775e89d0490344241083c20841891424488b004889c148c1e93f4885c04989c8782548898578efffffc78590efffff0a000000e9f9edffffc78590efffff0a000000e9a1edffff48f7d8c78590efffff0a00000048898578efffffe9d1edffff498b442408488d50084989542408eba083bd40efffff00745b83fa2f774689d0490344241083c20841891424480fbe00eb81498b442408488d50084989542408e935feffff83fa2f774e89d0490344241083c20841891424488b0066448908e938e3ffff498b442408488d50084989542408ebb883bd78efffff00753b83fa2f772689d0490344241083c20841891424486300e91bffffff498b442408488d50084989542408ebb0498b442408488d50084989542408ebd883fa2f0f870802000089d0490344241083c20841891424480fbf00e9dbfeffff488b85b8efffff448b5804488d5004488995b8efffff418d43e083f85a0f8724e4ffff0fb680e03d4b00c78560efffff01000000488b04c5203c4b00ffe0488dbde0efffff4c899530efffff44898d88efffffe800eef9ff83f8ff448b8d88efffff4c8b9530efffff0f848ce5ffff85c00f8456ebffff488b85e0efffff8338240f8546ebffff4d85ff0f8452dfffff4c89ff44898d88efffffe868c8fbff448b8d88efffffe937dfffff4889cf44898d90efffff48899570efffffe8a6c4fbff4885c048898578efffff0f848de3ffffc78580efffff01000000488b9570efffff448b8d90efffffe996e6ffff498b442408488d50084989542408e998e5ffff488bbd78efffff44898d70efffffe8c34c0000c78580efffff000000004989c3448b8d70efffffe997e6ffff488b85b8efffff448b5804488d5004488995b8efffff418d43e083f85a0f87f7e2ffff0fb680e03d4b00c78554efffff20000000c78568efffff01000000488b04c5203c4b00ffe0488b85b8efffff448b5804488d5004488995b8efffff418d43e083f85a0f87afe2ffff0fb680e03d4b00c78550efffff01000000488b04c5203c4b00ffe0488b85b8efffff448b5804488d5004488995b8efffff418d43e083f85a0f8771e2ffff0fb680e03d4b00c78558efffff01000000488b04c5203c4b00ffe0498b442408488d50084989542408e9f3fdffff48c7c0c8ffffff64488b00488b008b4860488b4050488985a0efffff0fb600898d9cefffff84c00f94c23c7f0f94c008c2750885c90f85eae8ffff48c785a0efffff00000000e9dae8ffff89d083c208490344241041891424e986e9ffff4889d744898d28efffff48899530efffffe8efc2fbff4885c04989c7488b9530efffff448b8d28efffff0f84d9e1ffff4d8d1417e9e6e9ffff488b85b8efffff448b5804488d5004488995b8efffff418d43e083f85a0f8789e1ffff0fb680e03d4b00c78578efffff01000000488b04c520394b00ffe0488b85b8efffff448b5804488d5004488995b8efffff418d43e083f85a0f874be1ffff0fb680e03d4b00c78540efffff01000000c78578efffff00000000488b04c520384b00ffe0488b95b8efffff488d4204488985b8efffff8b420483f82a0f842c01000083e830c78580efffff0000000083f809765e488b85b8efffff448b18418d43e083f85a0f87dfe0ffff0fb680e03d4b00ff24c5203a4b004889d744898d28efffff48899530efffffe8dbc1fbff4885c04989c7488b9530efffff448b8d28efffff0f84c5e0ffff4d8d1417e977e0ffff488dbdb8efffff4c899528efffff44898d30efffffe88feaf9ff898580efffff83c001448b8d30efffff4c8b9528efffff0f8415e2ffff8b8580efffff398588efffff0f8d59ffffff3dc80300000f8e4effffff3ddeffff1f0f8fede1ffff48638580efffff488d1485800000004881fa0010000076284889d744898d28efffff48899530efffffe8ab0cfeff85c0488b9530efffff448b8d28efffff7468488d421e4883e0f04829c4488d44240f4883e0f04c8d1410e9e6feffff488d4208488985b8efffff488985e0efffff8b420883e83083f8097677418b142483fa2f765e498b442408488d500849895424088b00b9ffffffff85c00f49c8898d80efffffe930ffffff4889d744898d28efffff48899530efffffe89bc0fbff4885c04989c7488b9530efffff448b8d28efffff0f8485dfffff4d8d1417e962feffff89d083c208490344241041891424eba0488dbde0efffff4c899530efffff44898d80efffffe83fe9f9ff83f8ff448b8d80efffff4c8b9530efffff0f84cbe0ffff85c00f8450ffffff488b85e0efffff8338240f8540ffffffe93afbffff662e0f1f840000000000415541544989d555534889f5be010000004889fb41bcffffffff4881ec58820000e84a35000083f8010f8553010000488d842400010000488d7c24204c89ea4889ee41bd0000000048899c243802000048898424c0000000488d842450020000c78424e000000001000000c74424200480adfb48c78424a80000000000000048898424200100004889842418010000488d84245082000048c78424f8000000203d4b0048898424280100008b437489842494000000e8d6d6ffff4d85ed4189c40f841a0100004889dabe501e46004889e7e8dae2b9ff8b0325008000007556488b9388000000644c8b0425100000004c3b4208743cbe01000000833d6bb42600007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e8b10afeff4881c480000000488b93880000004c89420883420401488b8424c0000000488b7018488b68204829f548c1fd0285ed7e1b488b83d80000004863d54889dfff503839c5b8ffffffff440f45e0f7030080000074254d85ed740a31f64889e7e82ee2b9ff4881c4588200004489e05b5d415c415dc30f1f440000488b9388000000836a040175ce48c7420800000000833db8b32600007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8300afeff4881c480000000eb9a0f1f800000000048c70424501e460048895c2408e9e4feffff662e0f1f8400000000000f1f4000488b9788000000836a0401753248c7420800000000833d50b32600007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8c809feff4881c480000000f3c3662e0f1f8400000000000f1f4400004154554889f5534889d3488d570141bbffffff7f4883ec100fb6430d80630c074889542408c74330ffffffff4989d0c743102000000083e0f288430d0fb6770189f083ee3083fe097639660f1f44000083e8203c2977790fb6c0ff24c5603e4b000f1f80000000008d34b64589d84129c001f601f04439c6beffffffff0f4ef04d89c84d8d48014c894c2408410fb640014189c283e83083f8090f878802000085f678dc81fecccccc0c7ebcbeffffffffebcd0f1f440000804b0d080f1f40004883c20148895424080fb60284c07580f6430c207407c7431020000000c7432cffffffffc74304000000000fb6023c2a0f847a02000083e8304531e4be0100000083f809488d7a0141b8ffffff7f0f86f6000000c74328ffffffffc703ffffffff803a2e0f848602000031c080630dfd80630cf86689430e488b0591b326004885c074240fb60a48833cc800741a488d7c24084889dee855a3ffff85c00f841d010000488b542408488d4a0148894c24080fb60283e84c3c2e0f87810400000fb6c0ff24c5b03f4b000f1f8000000000c7431030000000e924ffffff0f1f4000804b0c20e917ffffff0f1f8000000000804b0c40e907ffffff0f1f8000000000804b0c80e9f7feffff0f1f8000000000804b0c08e9e7feffff0f1f8000000000804b0c10e9d7feffff0f1f80000000008d04804489c229f201c001c639d0b8ffffffff0f4ec64883c70148897c24080fb6374889fa83ee3083fe090f87bf01000085c078e13dcccccc0c7ec4b8ffffffffebd30f1f440000804b0c04488d420248894424080fb60148833d78b2260000c74340ffffffff0fb6d089530875318d42bf48c743380100000083f8370f879d030000ff24c528414b00660f1f440000488b4c2408488d4101ebb50f1f440000488b0db1b22600488b04c14885c074bf488d4b40488d5334be010000004889dfffd04863c885c048894b380f885f030000837b30ff8b5308750e4885c90f85ac0100000f1f44000085d27524488b4424084883e80148894320488943184883c4104c89e05b5d415cc30f1f8000000000488b7c2408be2500000048897b18e87dacfcff488943204883c4104c89e05b5d415cc30f1f44000085f674344180fa24752e498d500283feff488954240874128d46ff89433089f0483901480f4301488901410fb64002e9f4fcffff0f1f400048895424080fb64701e9e2fcffff6690488d7a0148897c24080fb6420183e83083f8090f8677010000896b2c48897c24084889fa4883c501be0200000041bc01000000e96cfdffff0f1f840000000000488d7a0148897c24080fb642013c2a0f846b02000083e83083f8090f86d5010000c703000000004889fae94bfdffff9083f8ff0f84b0010000894304be010000004531e4e91bfdffff0f1f8000000000804b0c04807a016c0f852efeffff488d4a02804b0c01488d4101e921feffff90807a01680f844e020000804b0c02488d4202e909feffff660f1f8400000000000fb6430c83e0013c0119c030c00507010000894334837b30ff0f8579feffffeb190f1f8000000000c743340100000090837b30ff0f8586feffffb901000000896b304901cce94efeffff660f1f440000c7433405000000ebd70f1f8000000000c7433403000000ebc70f1f8000000000c7433400080000ebb70f1f8000000000c7433404000000eba70f1f80000000000fb6430ca8040f8590010000a8020f844c020000c7433400040000e965ffffffc7433402000000e974ffffff0f1f400089c64889fa41baffffff7feb1c0f1f008d14b64489d629c601d201d039f2beffffffff0f4ef04c89c24c8d42014c894424080fb642014189c183e83083f809771785f678e181fecccccc0c7ec3beffffffffebd20f1f40004180f9240f8527feffff85f60f841ffeffff83feff0f8416feffff89f0483901448d46ff480f43014883c2024585c04489432c48895424084889010f88f0fdffffbe010000004531e4e96efbffff488d7202bfffffff7feb200f1f80000000008d048089fa29ca01c001c139d0b8ffffffff0f4ec14883c60148897424080fb60e4889f283e93083f909777885c078e53dcccccc0c7ec9b8ffffffffebd7662e0f1f8400000000004889c84889d1e935fcffff0f1f44000048c7433800000000e9bbfcffff0f1f008b5308e937fcffff0f1f8400000000004c8d42024c894424080fb6420283e83083f8097644896b284c894424084c89c24989f44883c501e9cefaffff83f8ff0f84c5faffff8903e9befaffffc7433400020000e9ddfdffff488d4a02804b0d02488d4203e9b7fbffff89c74c89c241bbffffff7feb23662e0f1f8400000000008d14bf4489df29c701d201d039fabfffffffff0f4ef84c89ca4c8d4a014c894c24080fb642014189c283e83083f809771385ff78e181ffcccccc0c7ec3bfffffffffebd285ff0f8459ffffff4180fa240f854fffffff83ffff0f8446ffffff89f8483901448d4fff480f43014883c2024585c944894b2848895424084889010f8905faffffe91bffffff660f1f44000031c0f6430d020f95c0894334e914fdffff662e0f1f8400000000000f1f4400004154554889f5534889d3488d57044883ec100fb6430d80630c07c74330ffffffffc7431020000000488954240883e0f683c80488430d448b5704418d72d04489d083fe090f86be020000488b7c240831f60f1f800000000083e82083f8290f878c000000ff24c5e8424b000f1f440000804b0d080f1f40004883c2048b02be010000004889d785c075ce4889542408eb680f1f8000000000c7431030000000ebd70f1f8000000000804b0c20ebca6690804b0c40ebc2662e0f1f840000000000804b0c80ebb2662e0f1f840000000000804b0c08eba2662e0f1f840000000000804b0c10eb92662e0f1f8400000000004084f60f8508060000f6430c207407c7431020000000c7432cffffffffc74304000000008b0283f82a0f84b102000083e8304531e4be0100000083f809488d7a0441b8ffffff7f0f868d000000c74328ffffffffc703ffffffff833a2e0f844d02000080630dfd31c080630cf8488b0d1cac26006689430e4885c974268b3248833cf1004889f0741c488d7c24084889dee8ba9cffff85c00f8442010000488b5424088b028d70b4488d4a0483fe2e48894c24087762ff24f538444b000f1f008d04804489c229f201c001c639d0b8ffffffff0f4ec64883c7048b374889fa83ee3083fe090f877502000085c078e73dcccccc0c7ecab8ffffffffebd90f1f00837a04680f84a4040000804b0c02488d4a088b42040f1f0048833d68ab26000048894c2408894308c74340ffffffff747f3dff0000007f78488b0dc9ab26004863d04c8b04d14d85c07465488d5334488d4b40be010000004889df41ffd04863d085c048895338783f837b30ff8b4308750e4885d20f85440200000f1f44000085c0756c488b4424084883e80448894320488943184883c4104c89e05b5d415cc30f1f80000000008b43080f1f4400008d50bf48c743380100000083fa370f8744030000ff24d5b0454b000f1f440000804b0c04488d4a088b4204e938ffffff488b442408488d48048b00e928ffffff488b7c2408be2500000048897b18e8dd450000488943204883c4104c89e05b5d415cc30f1f44000089f04889d741bbffffff7feb1d0f1f008d04804489df29f701c001c639f8b8ffffffff480f4ec64c89cf448b47044c8d4f04418d70d083fe09771585c078e83dcccccc0c7ecab8ffffffffebda0f1f004183f824753285c0742e488d570883f8ff488954240874104839018d70ff480f43018973304889018b4708e9c2fcffff0f1f84000000000048895424084489d0e9adfcffff0f1f008b4204488d7a0448897c240883f82a0f845302000083e83083f8090f86e7010000c703000000004889fae984fdffff908b42044c8d420441baffffff7f4c894424084c89c283e83083f809763d896b2c4c894424084c89c24883c501be0200000041bc01000000e931fdffff0f1f40008d04804489d229f201c001c639d0b8ffffffff480f4ec64c89ca8b7a044c8d4a048d77d083fe090f872301000085c078e63dcccccc0c7ec8b8ffffffffebd89083f8ff48897c24080f843d010000894304be010000004531e4e9cffcffff6690804b0c04488d4a088b420483f86c0f8584fdffff804b0c014883c1048b41fce974fdffff0f1f4000c743340500000090837b30ff0f8536feffffba01000000896b304901d4e9b6fdffff660f1f4400000fb6530c83e20180fa0119d230d281c207010000895334837b30ff0f858ffdffffebc70f1f440000c7433402000000ebaf0f1f8000000000c7433403000000eb9f0f1f8000000000c7433404000000eb8f0f1f80000000000fb6530cf6c2040f856d01000083e2020f84c2010000c7433400040000eba0660f1f840000000000c7433401000000e954ffffff0f1f4000c7433400080000e944ffffff0f1f400083ff240f8584feffff85c00f847cfeffff83f8ff0f8473feffff4839018d70ff480f43014883c20885f689732c48895424084889010f8852feffffbe010000004531e4e995fbffff488d7208bfffffff7feb1e0f1f4400008d048089fa29ca01c001c139d0b8ffffffff0f4ec14883c6048b0e4889f283e93083f9090f879b00000085c078e73dcccccc0c7ecbb8ffffffffebd90f1f400048c7433800000000e96bfcffff0f1f008b42084c8d420841bbffffff7f4c894424084c89c283e83083f8097635896b284c894424084c89c24989f44883c501e917fbffff0f1f40008d04804489da29fa01c001c739d0b8ffffffff480f4ec74c89d2448b4a044c8d5204418d79d083ff09774385c078e83dcccccc0c7ecab8ffffffffebda83f8ff48897424080f84c8faffff8903e9c1faffffc7433400020000e939feffff804b0d02488d4a0c8b4208e95afbffff4183f9240f856dffffff85c00f8465ffffff83f8ff0f845cffffff4839018d78ff480f43014883c20885ff897b2848895424084889010f8969faffffe936ffffff9031d2f6430d020f95c2895334e9d6fdffff48897c2408e9eef9ffff0f1f4400004154554889fd534881ec900000008b477085c07833488b87d80000004889e6ff909000000085c0781f8b4424182500f000003d00200000744f488b5c24384885db7f0a0f1f440000bb002000004889dfe80baffbff4889c6b8ffffffff4885f67416488d141eb9010000004889efe87d22fbffb8010000004881c4900000005b5d415cc30f1f4000488b4424284889c248c1e82048c1ea082500f0ffff81e2ff0f000009d02d8800000083f8077711814d0000020000eb810f1f84000000000048c7c3d0ffffff8b7d7064448b23e8ed7e000085c06444892375d4e959ffffff4154554889fd534889f3e8b10afcff4989c48b0325008000007556488b9388000000644c8b0425100000004c3b4208743cbe01000000833d9fa32600007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e8e5f9fdff4881c480000000488b93880000004c894208834204018b83c000000085c0753dc783c0000000ffffffff488b83d80000004c89e24889ee4889dfff50384939c4ba01000000751bf7030080000074205b89d05d415cc30f1f800000000083f8ff74c8f70300800000baffffffff75e0488bb388000000836e040175d348c7460800000000833df6a22600007407f0ff0e7506eb1aff0e7416488d3e4881ec80000000e86ef9fdff4881c4800000005b89d05d415cc34889c6f70300800000753f488b9388000000836a0401753248c7420800000000833da5a22600007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e81df9fdff4881c4800000004889f7e87e980300662e0f1f8400000000000f1f400055534889fd4883ec08488b47384885c07456488b55404829c2f645000174084883c20348c1ea02488d1c95000000004889dfe8d9acfbff4889c6b8ffffffff4885f67416488d141eb9010000004889efe83b0b0000b8010000004883c4085b5dc30f1f8000000000e843fdffff488b4538eb9f662e0f1f8400000000000f1f0041564155415455534889f3480fafda4885db0f84f00000008b014989fc4989f24989c9250080000075594c8b818800000064488b2c2510000000493b6808743ebe01000000833da0a12600007409f0410fb1307508eb1c410fb1307416498d384881ec80000000e8e4f7fdff4881c4800000004d8b8188000000498968084183400401418b81c00000004c89cd4989d54d89d64c89e685c0742683f8ff742c4531c041f701008000000f84b10000004c89c031d25b49f7f65d415c415d415ec341c781c0000000ffffffff488b85d80000004889da4889efff50384883f8ff4989c0400f94c6f745000080000074294c39c374054084f674b65b4c89e85d415c415d415ec30f1f005b31c05d415c415d415ec30f1f440000488b9588000000836a040175ca48c7420800000000833db8a02600007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e830f7fdff4881c480000000eb960f1f8000000000498b9188000000836a04010f853effffff31f6ebb04889c6f7450000800000753f488b9588000000836a0401753248c7420800000000833d4fa02600007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8c7f6fdff4881c4800000004889f7e8289603000f1f840000000000415741564155415455534883ec284885ff0f84890200004885f60f84800200008954241c8b114889cb48897424084989fc89d025008000000f85b20000004c8b8188000000644c8b0c25100000004d3b48087440be01000000833dbc9f2600007409f0410fb1307508eb1c410fb1307416498d384881ec80000000e800f6fdff4881c4800000004c8b83880000008b134d8948084183400401f6c220747248c7c5ffffffff80e6807552488b9388000000836a0401754548c7420800000000833d569f2600007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8cef5fdff4881c480000000eb110f1f44000083e220741b48c7c5ffffffff4883c4284889e85b5d415c415d415e415fc3669049833c2400740b488b442408488338007523488b442408bf7800000048c70078000000e888a9fbff4885c0498904240f843b0100004c8b43084c8b73104d29c64d85f60f8e170100004531ffeb7666904801d2498b3c244839d0480f43d04889d64889542410e8a5aefbff4885c0488b5424100f84f7000000488b4c2408498904244c8b43084889114a8d3c384c89f24c89c6e8288ffcff4c0173084d85ed0f85a30000004889dfe8b319fbff83f8ff0f84920000004c8b43084c8b73104989ef4d29c68b74241c4c89c74c89f24c89442410e8082afcff4885c04989c54c8b442410740a4889c14c29c14c8d710148b8ffffffffffffff7f4c29f84939c67d27488b7424084b8d2c37488d4501488b164839d00f8736ffffff498b0424e966ffffff0f1f44000048c7c0d0ffffff48c7c5ffffffff8b1364c7004b000000e951feffff0f1f4000498b0424c60428008b13e93efeffff660f1f8400000000004889dfe8f818fbff83f8ff75130f1f008b13e917feffff660f1f8400000000004c8b43084c8b73104d29c6e9b9feffff48c7c0d0ffffff48c7c5ffffffff64c70016000000e942feffff4889c6f70300800000753f488b9388000000836a0401753248c7420800000000833d3b9d2600007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8b3f3fdff4881c4800000004889f7e8149303000f1f4000415741564989ff415541544989d555534189cc4883ec284d85c9488974240844894424144c894c2418740741c70100000000418b87c000000085c00f84370100004d85ed0f8456010000488b6c2408eb410f1f80000000004c39eb4489e64c89f7490f43dd4889dae87328fcff4885c04989c0757b4889ef4889da4c89f64929dd4801dde8378dfcff49015f084d85ed743e4d8b7708498b5f104c29f34885db7fb64c89ffe82619fbff83f8ff0f848d0000004139c40f84a00000004983ed018845004883c5014d85ed75c60f1f40004889e8482b4424084883c4285b5d415c415d415e415fc3660f1f8400000000004989c48b4424144889eb4d29f4482b5c240885c0780b4983c00183f8014983dcff4c89e24c89f64889ef4c89442408e89c8cfcff4c8b4424084a8d04234d8947084883c4285b5d415c415d415e415fc348837c2418007488488b4c241889014889e8482b442408e97cffffff837c2414007e25488d5d01448865004889d8482b442408e960ffffff41c787c0000000ffffffffe9b9feffff4889eb74de4489e64c89ffe83825fbffebd1660f1f44000031c0e931ffffff660f1f8400000000004531c9e948feffff0f1f8400000000004155415441bd10334a0055534989fc4883ec1883fe20742983fe3041bd70474b00741e400fb6f648b801010101010101014989e5480faff048893424488974240831ed83fa0f89d37f0eeb3c0f1f400083eb1083fb0f7e30498b8424d8000000ba100000004c89ee4c89e7ff50384801c54883f81074d94883c4184889e85b5d415c415dc30f1f0085db7eeb498b8424d80000004863d34c89ee4c89e7ff50384883c4184801c55b4889e85d415c415dc3662e0f1f8400000000000f1f4400004155415441bdc0474b0055534989fc4883ec5883fe20743383fe3041bd80474b0074288974240c4c8d6c2410660f6e4c240c660f70c1000f294424400f294424300f294424200f2944241031ed83fa0f89d37f14eb42662e0f1f84000000000083eb1083fb0f7e30498b8424d8000000ba100000004c89ee4c89e7ff50384801c54883f81074d94883c4584889e85b5d415c415dc30f1f0085db7eeb498b8424d80000004863d34c89ee4c89e7ff50384883c4584801c55b4889e85d415c415dc3662e0f1f8400000000000f1f440000415741564989f7415541544989fd55534889d54989d44883ec28488b0e488b074c8b41104c29c548c1fd024885c00f84470100004889eb660f1f84000000000048635010488b004839d3480f4fda4885c075ed488b7150488b79404889ea4829da4989f14929f949c1f9024c39ca77504929d14885db0f881d0100004885d20f85cb0000004e8d348d000000004889ea4c01f748897948498b45004885c0740b295010488b004885c075f531c04883c4285b5d415c415d415e415fc30f1f4000488d04959001000048897424184c8944241048895424084889c748890424e87da3fbff4885c04989c60f841d0100004885db488b5424084c8b442410488b7424180f88d2000000498d3498488db890010000e8592e0000498b07488b7840e8dda6fbff498b074c89e24c8970404c0334244c897050498b0f41be90010000482b5110488b794048c1fa02e941ffffff904e8d348d00000000498d34984c01f7e80c2e0000498b0f4c89e2482b5110488b794048c1fa02e915ffffff488b7150488b79404989f14929f949c1f9024885ed0f89effeffff4889eb4e8d348d00000000488d349e4889da48f7da4c890c244c01f7e8c92d0000498b074c8b0c244c89e2488b7010488b40404929d94829f24a8d3c8848c1fa02eb86488d349e4889da488db89001000048f7da4c89442408e89cabfdff4c8b4424084889ea4889c74c89c6e889abfdffe90bffffffb8ffffffffe997feffff662e0f1f840000000000488b97a00000004889f0482b4210488b576048c1f8024885d274180f1f44000048634a10488b124839c8480f4fc14885d275edf3c390662e0f1f840000000000488b87a00000008127fffeffff488b5008488b485048895050488b504048894808488b48104889104889501048894840c30f1f440000662e0f1f840000000000488b87a0000000810f00010000488b4808488b5050488b704048894850488b4810488950084889104889701048894840c30f1f440000662e0f1f840000000000534889fb4883ec204c8b87a00000008b4374498b78304885ff7404a80874214989503889c283c80883e2f785c9498970300f45c28943744883c4205bc30f1f00894c241c48895424104889742408e8cda4fbff4c8b83a00000008b43748b4c241c488b542410488b742408ebb20f1f00415741564189f6415541544989fc55534883ec18488b9fa0000000448b2f488b2b4c8b7b104889da4c39fd766341f7c5000100000f85d6000000488b4f080fbe41ff39f00f848601000048837b40000f843b010000498db424a0000000498d7c24604889eae846fcffff85c00f84fe0000004883c418b8ffffffff5b5d415c415d415e415fc3662e0f1f84000000000041f7c5000100000f8493000000488b6b084c29fd4889eb48c1fb024c8d2cdd000000004c89efe855a0fbff4885c074b24801c54889da4c89fe4889ef4889442408e84a2b0000498b8424a0000000488b7810e8c9a3fbff488b4c2408498b9c24a00000004901cd48894b1048892b4c896b0848896b48662e0f1f840000000000488d45fc488903448975fc4489f04883c4185b5d415c415d415e415fc30f1f00488b42404885c07457488b4b50488b73084181cd0001000045892c2448896b404889431048890b48894b0848897350488b2a4889d3eba9660f1f840000000000498b9424a0000000458b2c244889d3488b2a488b4240ebb10f1f840000000000bf000200004889542408e8719ffbff4885c00f84cafeffff488b542408488d88000200004889424048894a5048894a48498b9424a0000000e96cffffff0f1f004883e90148894f08e941ffffff0f1f0053488b97a00000004889fb488b7a304885ff7406f64374087446488b43604885c074150f1f44000048c7400800000000488b004885c075f048837b48007411488b7a40e888a2fbff48c74348000000004889df5be91709fbff0f1f8000000000e86ba2fbff488b93a000000048c742380000000048c7423000000000eb9c6690488b87d8000000534889fbff5020baffffffff39d07413488b93a0000000488b02488d480448890a8b1089d05bc36690555389f54889fb4883ec088b87c000000085c0750abe01000000e8c1130000488b83d800000089ee4889df488b40184883c4085b5dffe0660f1f8400000000008b97c000000085d20f8892000000534889fb0f84980000008b0b488b83a0000000f6c5080f85b6000000488b30488b50084839d60f8296000000f6c501743080e5fe488b7050488b7810890b48895050488b504048897008488978404839d6488950100f87270100004889104889f248837b60000f84ae000000488db3a0000000488d7b60e856f9ffff85c07535488b83d80000004889df5b488b4028ffe090b8ffffffffc3662e0f1f840000000000be01000000e8e612000083f8010f840d010000b8ffffffff5bc3660f1f440000488d56044889108b065bc30f1f440000488b5020483b50180f87b2000000f6c501741d488b70484889701080e5f74889104889502848895018890be91affffff48395008488b70304889701073dd48895008ebd70f1f4000488b78404885ff0f8459fffffff6c501742380e5fe890b488b485048895050488b50104889384889781048894808488950404889d7e87ea0fbff488b83a000000048c740400000000048c740500000000048c7404800000000e908ffffff662e0f1f840000000000488d4a044889088b025bc30f1f440000488b8030010000beffffffff4889dfff501883f8ff0f8408ffffff488b83a00000008b0b488b5020e921ffffff0f1f008b83c000000085c00f853afeffffbe010000004889dfe8b5110000e928feffff8b97c000000085d27866534889fb74708b0b488b83a0000000f6c5080f85b6000000488b30488b50084839d60f829e000000f6c501756948837b60000f84e6000000488db3a0000000488d7b60e89ef7ffff85c0753d488b83d80000004889df5b488b4020ffe0660f1f840000000000b8ffffffffc3662e0f1f840000000000be01000000e82611000083f8010f842d010000b8ffffffff5bc3660f1f440000488b7850488b704080e5fe890b48895050488b50104839f74889780848897010488930488950404889fa0f8667ffffff8b065bc30f1f4000488b5020483b50180f87aa000000f6c5017425488b70484889701080e5f74889104889502848895018890be91affffff0f1f84000000000048395008488b70304889701073d548895008ebcf0f1f400048837b48000f8423fffffff6c5010f84a400000080e5fe488b7810890b488b485048895050488b5040488978404889480848895010488910e88b9efbff488b83a000000048c740400000000048c740500000000048c7404800000000e9cdfeffff0f1f8000000000488b8030010000beffffffff4889dfff501883f8ff0f84e8feffff488b83a00000008b0b488b5020e929ffffff0f1f008b83c000000085c00f8542feffffbe010000004889dfe8d50f0000e930feffff488b7840e977ffffff0f1f80000000004157415631c04155415455534883ec184885d248895424080f842a0200004989fd4989f44889d5eb6d0f1f80000000004883fd144889e80f87e301000031db4885ed0f85180200000f1f8400000000004829dd4885ed0f84e4010000418b85c00000004c8d61048b1985c0750dbe010000004c89efe8460f0000498b85d800000089de4c89efff501883f8ff0f84ae0100004883ed014d8bb5a00000004c89e1498b7e20498b56284829fa48c1fa024885d24889d07e9c4839d54889d30f826dffffff4883fa140f8f56010000498d542410488d70ff4839d7488d57100f93c14939d40f93c208d10f84920100004883f80c0f86880100004c89e283e20f48c1ea0248f7da83e2034839c2480f47d04885d20f8458010000418b0c244883fa014c8d4f044d8d442404488d70fe890f7430418b4c24044883fa034c8d4f084d8d442408488d70fd894f047515418b4c24084c8d4f0c4d8d44240c488d70fc894f084989c34929d348c1e2024d8d3c144801fa498d4bfc66410f6f0748c1e9024883c1010f11024883f9024c8d148d0000000066410f6f47100f11421074124883f90366410f6f47200f114220755266904a8d1495000000004c29d64901d04901d14d39d37421418b104885f64189117416418b50044883fe01418951047408418b50084189510848c1e002498d0c044801f849894620e955feffff0f1f44000066410f6f47304883f9050f11423075a066410f6f47400f114240eb940f1f40004889eb4889da4c89e6e862a1fdff498d0c9c49894620e915feffff0f1f440000488b4424084829e84883c4185b5d415c415d415e415fc3660f1f8400000000004889ebe965feffff0f1f8400000000004989f94d89e0e9e6feffff0f1f440000488d34850000000031d2660f1f440000418b0c14890c174883c2044839f275f0e942ffffff90662e0f1f84000000000041574156488d87a0000000415541544989f555534889fd4989d64883ec284889442408488d476048895424184889442410488b85a0000000488b30488b58084829f348c1fb024885db4889da7e254939de0f83c90000004983fe144c89f20f87fc01000031db4d85f60f85b1020000904929de4d85f60f84840000008b95c000000085d2787a0f84140200008b4d00f6c5080f8548020000488b30488b50084839d60f82e8010000f6c5017431488b7850488b704080e5fe894d0048895050488b50104839f74889780848897010488930488950404889fa0f87b201000048837d60000f8447020000488b742408488b7c2410e858f2ffff85c00f8489020000488b4424184883c4285b5d4c29f0415c415d415e415fc3660f1f8400000000004883fb140f8f39010000498d7d10448d42ff89d14839fe488d7e10410f93c14939fd400f93c74108f90f846102000083fa0c0f86580200004889f283e20f48c1ea0248f7da83e20339ca480f47d185d20f842a0200008b3e83fa014d8d4d044c8d6604448d41fe41897d00742b8b7e0483fa034d8d4d084c8d6608448d41fd41897d0475138b7e084d8d4d0c4c8d660c448d41fc41897d0889cf4531d24531db29d748c1e202893c2483ef04c1ef0283c701448d3cbd0000000044897c24044c8d3c164c01ea66430f6f04174183c301420f1104124983c2104439df77e88b5424044889d748c1e2024901d14901d44129f8393c240f84fd000000418b14244585c04189110f84ed000000418b5424044183f801418951040f84da000000418b54240883e90141895108488d148d040000004801d64901d5488930e910feffff4c89f34889da4c89efe8729efdff4989c5488b85a0000000488d149d00000000480110e9e8fdffff0f1f8400000000008b0683f8ff0f8596fdffffe960feffffbe010000004889efe8630a000083f8010f854afeffff8b85c000000085c0750dbe010000004889efe8430a00008b4d00488b85a0000000f6c5080f84b8fdffff488b5020483b50180f8712010000f6c5010f84e9000000488b70484889701080e5f74889104889502848895018894d00e983fdffff0f1f0083e901e92affffff4c89f3e902feffff0f1f84000000000048837d48007452f6c5010f84f000000080e5fe488b7810894d00488b485048895050488b5040488978404889480848895010488910e8e697fbff488b85a000000048c740400000000048c740500000000048c7404800000000488b85d80000004889efff5020e9f7feffff0f1f4400004989f44d89e9e90dfeffff0f1f44000083e90131d24189c84983c0010f1f40008b3c9641897c95004883c2014c39c275efe974feffff662e0f1f84000000000048395008488b7030488970100f830dffffff48895008e904ffffff0f1f440000488b8030010000beffffffff4889efff501883f8ff0f84e5fcffff488b85a00000008b4d00488b5020e9c0feffff6690488b7840e92cffffff0f1f8000000000488b87a000000048837830007402c39041545553f607024889fb74248b57744c8da02c010000488da82801000083ca08488968304c8960388953745b5d415cc3488b8030010000ff506883f8ff75ec488b83a00000008b5374488b78304c8da02c010000488da8280100004885ff74bdf6c20875b8e89696fbff488b83a00000008b5374eba7662e0f1f840000000000415455534889fbbf00200000e8cf92fbff4889c5b8ffffffff4885ed7432488b8ba00000004c8da5008000008b5374488b79304885ff7405f6c208741b83e2f7488969304c896138b8010000008953745b5d415cc30f1f00e82396fbff488b8ba00000008b5374ebd40f1f8000000000488b87a0000000534889fb488b5020483b501877438b0bf6c501752c48395008488b70304889701073044889500880e5f74889104889502848895018890b31c05bc3660f1f440000488b704848897010ebdc660f1f440000488b8030010000beffffffffff501883f8ff74d4488b83a0000000488b5020eb9c0f1f8000000000538b074889fbf6c401745580e4fe8907488b87a0000000488b5008488b4850488b781048895050488b5040488948084889784048895010488910e85195fbff488b83a000000048c740400000000048c740500000000048c74048000000005bc3488b87a0000000488b7840ebcd0f1f0053488b8fa00000004889fb89f0488b11483b511076053972fc741d488b93d800000089c64889dfff523083f8ff74038323ef5bc30f1f40004883ea04488911ebe90f1f440000662e0f1f840000000000488b87a0000000534889fb488b10483b5010761c488d4afc4889088b42fc83f8ff74038323ef5bc30f1f840000000000488b87d8000000beffffffffff5030ebdd0f1f440000662e0f1f8400000000004863c24c8d04864c39c67322418378fc0a498d48fc7512eb1f0f1f80000000004883e90483390a740f4839ce72f28d043ac3660f1f4400004929c849c1f802418d40ffc36690662e0f1f84000000000055534889fd4889f34883ec088b0648897708488b96a0000000f6c408753af6c401488b027522482b421048c1e802894510488b43604889450048896b604883c4085b5dc30f1f4000482b420848c1e802ebdc660f1f440000488b721848397220773ef6c4017529488b4a3048894a10488b4a20483b4a08760448894a0880e4f748890a48894a2848894a188903eb8f90488b4a4848894a10488b4a20ebdf6690488b8230010000beffffffff4889dfff501883f8ff488b93a00000008b0375a2e959ffffff90662e0f1f840000000000488b47084885c07435f70000010000488b80a0000000488b107515482b50108b471048c1ea0229d0c30f1f8000000000482b50088b471048c1ea0229d0c3b8ffffffffc36690662e0f1f840000000000488b5608b8ffffffff4839fa754748634e108b0285c97858f6c401744380e4fe8902488b82a0000000488b5008488b70504889505048897008488b5040488b70104889104889501048897040488d148a48891031c0f3c3660f1f840000000000488b82a0000000488b5010ebdf0f1f00f6c401753b80cc018902488b82a0000000488b7008488b5050488b784048897050488b7010488950084889781048891048897040eba6662e0f1f840000000000488b82a0000000488b5008eb8f0f1f0048837f60004889f8740848c74760000000004883784800745f538b10f6c601745f80e6fe8910488b90a0000000488b4a08488b7250488b7a1048894a50488b4a404889720848897a4048894a1048890a4889c3e8f891fbff488b83a000000048c740400000000048c740500000000048c74048000000005bf3c3660f1f440000488b90a0000000488b7a40ebc30f1f00488b57488b425885c0750d8b4a483b4a4c0f44c1c30f1f00b8ffffffffc3669031c0c30f1f00662e0f1f840000000000488b47488b404cc30f1f840000000000415641554989ce4154554d89c5534889fd4883ec104c8b67484c894f50488b4424404889777048895424084889475849833c2400498b5c2428740d48c1cb116448331c25300000004889dfe8b03601006a006a004531c04c89f1488d75504c89e7488d5424184c8d4c2410ffd3488b54241883f80449895500488b542458488b4d5048890a5a5974437e3d83f805742083f807741b4883c410b8020000005b5d415c415d415ec3660f1f8400000000004883c410b8010000005b5d415c415d415ec3660f1f44000085c075c94883c41031c05b5d415c415d415ec30f1f440000415541544d89c555534889fd4883ec184c8ba7880000004889979000000048898f980000004889b7b000000049833c2400498b5c2428740d48c1cb116448331c25300000004889dfe8d33501006a006a0131c931d24531c0488db5900000004c8d4c24184c89e7ffd3488b959000000083f804498955005a5974397e3383f805741e83f80774194883c418b8020000005b5d415c415dc3660f1f8400000000004883c418b8010000005b5d415c415dc385c075d34883c41831c05b5d415c415dc30f1f440000662e0f1f840000000000415641554989ce4154554d89c5534889fd4883ec104c8ba7880000004c898f90000000488b4424404889b7b000000048895424084889879800000049833c2400498b5c2428740d48c1cb116448331c25300000004889dfe8f43401006a006a004531c04c89f1488db5900000004c89e7488d5424184c8d4c2410ffd3488b54241883f80449895500488b542458488b8d9000000048890a5a5974417e3b83f805741e83f80774194883c410b8020000005b5d415c415d415ec30f1f80000000004883c410b8010000005b5d415c415d415ec3660f1f44000085c075cb4883c41031c05b5d415c415d415ec30f1f4400005549c1e002498d40124889e541574156415541544883e0f0534989fc4989d64989cd4883ec184c8b7f48488977704829c4488955c04901e0488967504c89475849833f00498b5f28740d48c1cb116448331c25300000004889dfe8013401006a00498d7424506a004c8d4dc84c89e9488d55c04c89ff4531c0ffd3488b45c0488d65d85b4c29f0415c415d415e415f5dc30f1f440000662e0f1f8400000000004155415455534889fd4883ec2885f60f88730100008b87c0000000410f95c4450fb6e485c00f854c01000085f60f8444010000488b9fa0000000488b43084c8d6b684c89af9800000048c7435800000000488903488b431848894320488b87a00000004889e748c7406000000000e86d96fdff48837c2408010f852501000048837c2418010f853201000031c0b9180000004c89eff348ab488b042448c783a800000001000000c783d000000001000000c783c80000000100000048c743703050460048c74378604f4600488983b0000000488b85a000000048c783e800000001000000c7831001000001000000c783080100000900000048c78380000000804e46004883c05848c78388000000404e460048c78390000000604e4600488983d8000000488b44241048c783980000002051460048c783a0000000704e4600488983f0000000488b85a00000004883c05848898318010000488b85a0000000488b80300100004489a5c0000000488985d80000004489e04883c4285b5d415c415dc3660f1f4400008b87c000000041bcffffffff85c075df4489a5c00000004489e0ebd3b910484b00ba7d000000be00484b00bf761e4a00e873c5f9ffb910484b00ba7e000000be00484b00bf8c1e4a00e85ac5f9ff662e0f1f840000000000415641554c8d7710415455534c8b274889fb4c8b6f084d39f44b8d6c2d0074584939ed772b4889ee4c89e7e8f08dfbff4885c04889c1746548890b48896b08b8010000005b5d415c415d415ec30f1f0048c7c0d0ffffff64c7000c0000004c89e7e8fa8bfbff4c893348c743080004000031c0ebcf0f1f004889efe84088fbff4889c131c04885c974ba4889cf4c89ea4c89e6e8386efcff4889c1eb9b4c8b23ebbc662e0f1f8400000000000f1f400055534889fd4883ec08e8c2010000488d78014889c3e8f687fbff4885c07421c60418004883c4084889da4889ee4889c75b5de9e96dfcff660f1f8400000000004883c40831c05b5dc30f1f800000000041574156415541544989d455534863df4889f54883ec2885db78453b1df77105000f8dc9000000488b34dd80c24b004885f60f84b8000000ba05000000bf9c284b00e849c4f9ff4883c4285b5d415c415d415e415fc3662e0f1f840000000000ba05000000bee0484b00bf9c284b00e81cc4f9ff4889c7f7db4989c7e87fe3fbff488d7424144989c54863fb31c9ba0a000000c644241400e8c3cbfeff4d39e54c89e24c89fe490f46d54889ef4889c3e8bb12fcff4d39e54989e673144983c501488d7801c6002d4d39e50f82810000004d85e4740642c64425ff004883c4284889e85b5d415c415d415e415fc36690ba05000000bee0484b00bf9c284b00e88cc3f9ff4889c74989c74989e6e8eee2fbff488d7424144989c531c94889dfba0a000000c644241400e832cbfeff4d39e54c89e24889ef490f46d54c89fe4889c3e82a12fcff4d39e54889c70f837fffffff498d56154c89e14889de4c29e94829da4839d1480f46d1e8626cfcffe95effffff662e0f1f8400000000000f1f004885f675044831c0c34801fe4989f24983e2c04989f3660fefc0660fefc9660fefd2660fefdb4889f84889f94881e1ff0f00004881f9cf0f000077744883e0f0660f7400660f744810660f745020660f745830660fd7f0660fd7d166440fd7c2660fd7cb48c1e21048c1e1104809f24c09c148c1e1204809ca4889f94831c14c89de4829c64883e0c048f7c6c0ffffff0f847d00000048d3fa4885d20f849e000000480fbcc2c3660f1f8400000000004883e0c0660f7400660f744810660f745020660f745830660fd7f0660fd7d166440fd7c2660fd7cb48c1e21048c1e1104809f24c09c148c1e1204809ca4889f94831c14c89de4829c64883e0c048f7c6c0ffffff740d48d3fa4885d27422480fbcc2c3480fabf248d3fa4885d27411480fbcc2c36690662e0f1f840000000000660fefc9660fefd2660fefdb0f1f40004883c0404939c27427660f6f00660fda4010660fda4020660fda4030660f74c3660fd7d085d27568ebd6660f1f4400004939c3743d660fefc0660f7400660f744810660f745020660f745830660fd7f0660fd7d166440fd7c2660fd7cb48c1e21048c1e1104809f24c09c148c1e1204809ca4c0fabda480fbcd24801d04829f8c30f1f440000662e0f1f840000000000660fefc0660f7400660f744810660f745020660f745830660fd7f0660fd7d166440fd7c2660fd7cb48c1e21048c1e1104809f24c09c148c1e1204809ca480fbcd24801d04829f8c30f1f840000000000660f6ece4889f825ff0f0000660f60c9483dc00f0000660f61c9660f70c9000f87fb010000f30f6f07660fefd2660f6fd8660f74c1660f74da660fd7c8660fd7d34885d2741a488d42ff4831d04821c80f84ba010000480fbdc04801f8c36690f30f6f6710660f6fecf30f6f5f20660f74e1660f74eaf30f6f4730660fd7d5660f6feb660f74d9660f74ea660f74d048c1e21066440fd7c3660fd7c5660fd7f249c1e02048c1e020660f74c14809d04889f2660fd7f448c1e23048c1e6104c09c64809ce660fd7c848c1e1304809ce4809d0741c488d48ff4831c14821ce0f842c010000480fbdf6488d0437c30f1f004885f64889f90f84040100004883c740660fefff4883e7c0eb15660f1f4400004885d2480f45f2480f45cf4883c740660f6f5f20660feff6660f6f5730660f6fc3660f6f6710660fdac2660f6f2f660fdac4660fdac5660f74c7660fd7c0660f6fc5660f74c166440fd7c8660f6fc4660f74c1660fd7d0660f6fc3660f74c148c1e21066440fd7d0660f6fc2660f74c149c1e2204c09d266440fd7c04c09ca49c1e0304c09c285c00f8472ffffff660f74e6660f74de660f74ee660fd7c466440fd7d3660f74d666440fd7cd49c1e22048c1e01066440fd7c24c09d04c09c849c1e0304c09c04c8d40ff4931c04c21c2480f45cf480f45f2480fbdf6488d0431c30f1f440000662e0f1f840000000000be0100000031c9e9f0feffff0f1f400031c0c30f1f00662e0f1f8400000000004889f8660fefc04883e0c0f30f6f28660f6ff5f30f6f6010660f74e9660f74f0f30f6f5820660fd7f6660f6ff4f30f6f5030660f74e1660f74f0660fd7d6660f6ff3660f74d9660f74f0660f74c248c1e21066440fd7cb66440fd7c6660fd7c849c1e12049c1e020660f74d14c09c248c1e13066440fd7c54809f2660fd7f44809ca660fd7ca48c1e61048c1e1304c09ce4c09c64809ce89f929c148d3ea48d3ee4885d20f8426feffff488d42ff4831d04821c60f8436ffffff480fbdc64801f8c3662e0f1f8400000000000f1f4000415741564989d7415541544989cd55534889fd4989f4bf01000000ba010000004881ec2808000031c948c7c6ffffffff488d040a4939c5762a4d8d0417410fb61c3041381c070f83340200004889c1ba010000004889c7488d040a4829f74939c577d641be01000000ba0100000031c949c7c0ffffffff660f1f840000000000488d040a4939c5762a4f8d0c07410fb61c1141381c070f86040200004889c1ba010000004989c6488d040a4d29c64939c577d64d8d50014883c6014939f273064989fe4989f24c892c24488d442420488d942420080000f30f7e0424660f6cc00f29004883c0104839d075f44d85ed0f842b030000498d5dff4c89fa4889d8900fb60a4883c201488944cc204883e8014883f8ff75ea4b8d34374c89d24c89ff4c891424e8d7a6f9ff85c04c8b14240f85cb010000498d42ff4c89ee4d29ec4c29f631ff4531c04889c14c01f8488934244989c148894424104c89d6b80100000048f7de4989cd4c29d048897424184901f14889442408eb220f1f80000000004c39f073084885ff480f4504244901c031ff4d39c40f82cd0000004e8d5c0500410fb6041b488b44c4204885c075d14939fa4889f8490f43c24a8d3400498d14074801ee4839d873360fb60a380e0f85ec0000004889c148f7d94801ca4801f1eb14660f1f4400000fb63401403834020f85ca0000004883c0014839d872e94b8d4c05004801e94939fa0f86f8010000488b4424100fb6314038300f85e70100004c89e848034c2418eb170f1f440000488d50ff0fb6740a014138340175084889d04839c775e94883c7014839c70f87c40100004d01f0488b3c244d39c40f8337ffffff0f1f400031c04881c4280800005b5d415c415d415e415fc30f1f4000744e4889cebf010000004883c101ba01000000e998fdffff0f1f84000000000074464989c841be010000004883c101ba01000000e9c7fdffff0f1f80000000004c03442408e9c3feffff660f1f4400004839fa0f840f0100004883c201e94efdffff660f1f4400004c39f20f84070100004883c201e986fdffff660f1f4400004c89e84d8d72ff4f8d1c174c29d0be010000004c39d04b8d3c374d89d7490f42c249f7df4531c04883c0014f8d0c3b4c29d6488904244d29ec0f1f80000000004a8d4405000fb61418488b54d4204885d20f858c0000004b8d0c024801e94939da73290fb6114138134c89d275724c01f9eb100f1f440000440fb62c1145382c11755d4883c2014839da72ec4f8d2c064901ed4983feff0f84cdfeffff410fb64d00380f752331d20f1f8400000000004839d60f84b1feffff0fb64c17ff4883ea01413a4c150074e74c0304244d39c40f836affffffe98dfeffff0f1f4400004901f04901d0ebe54889d74889c1ba01000000e938fcffff4989d64889c1ba01000000e978fcffff4c89d04883c7014839c70f863cfeffff4c89d8e94afeffff48c7c3ffffffffe9eafcffff0f1f40004885c90f84670200004839f10f87cf0300004883f91f0f878602000041574156415541544989f455534889fd4889cb4883ec280fb63248895424084c89e2e8edfdfbff4885c04989c50f84ce0100004883fb010f84c60100004829e84929c431c04c39e30f87b5010000488b4c240841be01000000ba0100000031f648c7c5ffffffff0f1f440000488d04324839c37629488d3c290fb63c1740383c010f838d0100004889c6ba010000004989c6488d04324929ee4839c377d741b901000000ba0100000031f648c7c7ffffffff6690488d04324839c3762a4c8d0439450fb63c1044383c010f86640100004889c6ba010000004989c1488d04324929f94839c377d64883c7014883c5014839ef72064d89ce4889fd4a8d34314889cf4889ea48894c2408e8a6a2f9ff85c0488b4c24080f85700100004c8d5dff4889d84531c04c29f04531c94929dc4e8d3c1948894424104889e848f7d848894424184d8d1407b8010000004829e84889442408904939e94889e8490f43c14a8d3c00488d14014c01ef4839c376350fb6324038370f85fa0100004889c648f7de4801f24801feeb120f1f40000fb63c0640383c020f85da0100004883c0014839c377e94b8d34034c01ee4939e90f830a020000410fb60738060f85fe0100004c89d84803742418eb150f1f00488d50ff0fb67c320141383c0275084889d04939c175e94983c1014939c10f87d80100004c8b4c24104d01f04d39c40f8353ffffff31c04883c4285b5d415c415d415e415fc3669074464889f541be010000004883c601ba01000000e93ffeffff0f1f8000000000743e4889f741b9010000004883c601ba01000000e967feffff0f1f80000000004889f8c30f1f40004c39f20f84380100004883c201e9fefdffff660f1f4400004c39ca0f84300100004883c201e92efeffffe929f9ffff4889d84c8d5d014c8d75ff4829e84889ee41b9010000004839e84e8d3c19440fb61429480f42c548f7de498d7c2d004883c00148897424084c01f148894424104929e931c04c01fe4929dceb150f1f40004883c7014883c0014939c40f8214ffffff443a1775ea4c39db76334c8d47020fb67f014c89da41383f757d4c03442408eb13660f1f440000420fb67c02fe40387c32ff75634883c2014839d377ea4d8d04064d01e84983feff74210fb639413838755731d2eb10900fb67c11ff4883ea01413a3c1075434939d175ec4883c4284c01e85b5d415c415d415e415fc3662e0f1f8400000000004c034424084531c94901c0e974feffff4c01c84801d0488d3c284c01efe94effffff4803442410ebed4989d64889c6ba01000000e9bffcffff4989d14889c6ba01000000e9f7fcffff4889e8e91efeffff31c0c34b8d440500e931feffff6690415641554189f64154554989cc534889d54889fbe837d5fbff4c8d68014983fd010f86890000004c89efe8e178fbff4889c748894500b80c0000004885ff74584889f9eb120f1f004488014883c1014883c30184d27429440fbe034539f04489c275e54839f976408079ff00743ac601004883c3014883c10184d275da0f1f004d85ed750de8267cfbff48c74500000000004d892c2431c05b5d415c415d415ec30f1f80000000004983ed01eba1669048c745000000000031c049c70424000000005b5d415c415d415ec30f1f440000415641554989fe4154554889d7534889f54889d34189cde864d4fbff4c8d600131c04983fc01766e4c89e648037500498b3ee8697dfbff4889c2498906b80c0000004885d2744f48035500eb160f1f0040883a0fb6334883c2014883c3014084f6742d0fbe3b4439ef89fe75e3493b16762e807aff007428c602000fb6334883c2014883c3014084f675d80f1f4400004c01650031c05b5d415c415d415ec3904983ec01ebb4662e0f1f840000000000833f000f8417020000837f04000f841d020000837f08000f8423020000837f0c000f8429020000837f10000f842f020000837f14000f8435020000837f18000f843b020000837f1c000f8441020000660fefc0488d4720488d4f104883e0f0660f7600660fd7d0660fefc985d2488d40100f8559010000660f7608660fd7d1660fefd285d2488d40100f8541010000660f7610660fd7d2660fefdb85d2488d40100f8529010000660f7618660fd7d385d2488d40100f8515010000660f7600660fd7d085d2488d40100f8501010000660f7608660fd7d185d2488d40100f85ed000000660f7610660fd7d285d2488d40100f85d9000000660f7618660fd7d385d2488d40100f85c5000000660f7600660fd7d085d2488d40100f85b1000000660f7608660fd7d185d2488d40100f859d000000660f7610660fd7d285d2488d40100f8589000000660f7618660fd7d385d2488d401075794883e0c00f1f4400000f28000f2848100f2850200f287030660fdac1660fdad6660fdad0660f76d3660fd7d285d2488d404074d5660f7658c0660fd7d385d2488d49307534660f76d9660fd7d385d2488d49f07524660f7658e0660fd7d385d2488d49f07513660f76de660fd7d385d2488d49f07503eb91904829c848c1e80284d2741588d180e10f741ec30f1f00662e0f1f84000000000088f580e50f74194883c002c30f1f40004883c001c390662e0f1f8400000000004883c003c390662e0f1f8400000000004831c0c36690662e0f1f84000000000048c7c001000000c30f1f84000000000048c7c002000000c30f1f84000000000048c7c003000000c30f1f84000000000048c7c004000000c30f1f84000000000048c7c005000000c30f1f84000000000048c7c006000000c30f1f84000000000048c7c007000000c30f1f84000000000048c1e202e9f75afcff0f1f800000000048c1e202e9779bf9ff0f1f80000000004883fa034889f87664897424f44c8d4afc31c9660f6e4c24f449c1e902660f70c1004983c101662e0f1f8400000000004989c84883c10149c1e0044c39c9420f11040072eb49c1e10483e2034901c14885d274174883fa01418931740e4883fa0341897104750441897108f3c34989f9ebdd662e0f1f8400000000000f1f40008d87800000003d7f010000777b83ffff7476f7c780ffffff89f874674154555389fb4883ec5048c7c0b0ffffff64488b004c8b20498b6c24284885ed0f840e01000048837d0801488b45004c8b6030753f4d85e4743a48833800740d49c1cc11644c332425300000004c89e7e8ff1c01000fb6f3488b7d0041ffd44883c4505b5d415cf3c30f1f00b8ffffffffc36690488d44240b48c744244800000000885c240bc744243400000000c7442438010000004889442410488d44240cc7442430010000004889442420488d4424104889442428488d4424484889442440488b450048833800488b5828740d48c1cb116448331c25300000004889dfe8701c0100488b4424106a014531c06a00488b7d00488d5424204c8d4c2428488d742430488d4801ffd389c28d40fc5983f8015e760d85d2b8ffffffff0f853dffffff8b44240ce934ffffff660f1f8400000000004981fc206c4a00bd00424a000f84e0feffff4c89e7e8d67cfdff498b6c2428e9cefeffff662e0f1f8400000000006690415455b858c86c00534889fd4883ec604885d2480f44d04885ff8974240cc744244400000000c744244801000000c74424400100000048895424500f848f01000048c7c0b0ffffff48896c243064488b10488b028b80a80000004801e84889442438488b1a4c8b63284d85e40f8436010000498b44241048833800488b5828740d48c1cb116448331c2530000000448b44240c4585c00f85940000004889dfe84c1b0100498b7c24106a014531c06a0131c931d24c8d4c2420488d742440ffd3a9fbffffff5e5f0f84a300000085c08d50fc742483fa03761fb9a0494b00ba65000000beef484b00bf00494b00e86eaef9ff660f1f44000085c00f849000000083fa010f868700000048c7c0d0ffffff64c700540000004883c46048c7c0ffffffff5b5d415cc3660f1f840000000000488d44240c4889df4889442418e8ae1a0100488b442418498b7c24104531c06a016a00488d48044c8d4c2420488d542428488d742440ffd35a59e95effffff90488b542430488d4a0148894c2430c60200e947ffffff662e0f1f840000000000488b4424304883c4605b4829e85d415cc30f1f80000000004881fb206c4a0041bc00424a000f84b7feffff4889dfe8fd7afdff4c8b6328e9a6feffff0f1f4000c744240c00000000488d6c2420e95ffeffff662e0f1f8400000000000f1f4000b860c86c004885c9480f44c848c7c0b8ffffff644c8b00e9440300000f1f400041574156b868c86c00415541544989fe55534989f54889d54881ec580100004885c9480f44c848c7c0b0ffffffc74424340000000048894c2440c744243801000000c74424300100000064488b00488b18488b43284885c00f84b20100004c8b601049833c2400498b5c2428740d48c1cb116448331c25300000004d85f60f84dc0000004d8b7d004889ee4c01f54c89ffe8ea0100004889df48896c24284c897424204d8d7c8704e8331901006a016a004531c04c89f94c89ea4c89e74c8d4c2460488d742430ffd3488b542430595e4889d54c29f5a9fbffffff745385c00f95c283e80483f8010f97c183f803760884d20f853b01000084c9741984d2741548c7c0d0ffffff48c7c5ffffffff64c700540000004881c4580100004889e85b5d415c415d415e415fc3660f1f440000807aff0075a74939d60f8426010000488b5424408b1285d20f85fe00000049c74500000000004883ed01eb810f1f4000498b6d004c8d6c24504889efe8bff7ffff4c8d748504488b44244048896c241031ed488b00488964244048890424488d84245001000048894424280f1f4400004889df4c896c2420e8331801006a016a004531c04c89f14c89e7488d5424204c8d4c2428488d742430ffd3488b5424305f41584889d14c29e94801cd83f80574bfa9fbffffff0f85f1feffff807aff000f8460ffffffb9184a4b00ba5e000000beaa494b00bfb6494b00e841abf9ff904881fb206c4a00b800424a000f843cfeffff4889dfe88678fdff488b4328e92bfeffffb9184a4b00ba86000000beaa494b00bf00494b00e804abf9ffb9184a4b00ba7b000000beaa494b00bfd0494b00e8ebaaf9ffb9184a4b00ba7a000000beaa494b00bff0494b00e8d2aaf9ff66904885f60f84810000008b0785c0747b4883fe017478448b5f044585db746f4883fe02746fba02000000eb490f1f4400004883fe03488d42017446448b4497044585c0743c4883ee04488d420274328b4c970885c974324883fe01488d42037420448b54970c4585d274164883c2044883fe027409448b0c974585c975b34889d0f3c3660f1f440000f3c331c0c3b801000000c3b802000000c30f1f80000000008b174889f839d67511eb130f1f4400004883c0048b1039f2740485d275f2f3c3415741564155415455534881ec78010000498b18488974241048897c24084889d6c744245400000000c744245801000000488b4328c74424500100000048894c24604885c00f84850100004c8b2049833c2400498b5c2428740d48c1cb116448331c253000000048837c240800488b442410488b280f8485010000488b4424084885f648896c24704889442440488d04b048894424480f841c0200004c8d6c24704c8d7c24304c8d742440eb220f1f004839cd75678079ff007461488b7424484889cd4c29c648c1fe024885f6744d4889efe869e6ffff488d6c05014889dfe8bc1501006a014531c06a004889e94c89ea4c89f64c89e74d89f9ffd383f8045e5f400f95c783f807488b4c24700f95c24c8b4424404020fa749689d74c89c2482b542408488b5c241048890b48c1fa02a9fbffffff4889d50f8582000000418b48fc85c975234885d20f8493010000488b5424608b1285d20f859d01000048c703000000004883ed0185c00f95c221d74084ff740c8d48fb83f9020f879301000089c183e1fd83f905741e84d2741a83f804741548c7c0d0ffffff48c7c5ffffffff64c700540000004881c4780100004889e85b5d415c415d415e415fc36690ba01000000eba9660f1f8400000000004881fb206c4a00b800424a000f8469feffff4889df4889542418e88175fdff488b4328488b742418e94efeffff0f1f004889ef48896c24384c8d6c2470e8aec7fbff488d4405014c8d7c24304c8d74244031ed4889442408488b442460488b004889442420488d4424204889442460488d84247001000048894424480f1f40004889df4c896c2440e8431401006a016a004d89f9488b4c24184531c04c89f6488d5424484c89e7ffd3488b4c24504159415a4889ca4c29ea48c1fa024801d583f80574bc89c283e2fb750d448b41fc4585c075254883ed0185d2400f95c785c00f95c2e9b8feffffba01000000b80500000031ede9acfeffffb9704a4b00ba5e000000be244a4b00bf404a4b00e82ea7f9ffb9704a4b00ba8d000000be244a4b00bf324a4b00e815a7f9ffb9704a4b00ba8e000000be244a4b00bfd0494b00e8fca6f9ffb9704a4b00ba99000000be244a4b00bf00494b00e8e3a6f9ff0f1f00b8c90000000f05c30f1f84000000000083fa18b8180000000f46c2ba3b00000069c0100e000083ff3b0f47fa01f883fe3b0f47f26bf63c01f0c3660f1f44000083feff4155415455530f84310200003b77280f841802000031c981feb20700007e3a8d8e4ef8ffff8d46ff69c96d01000089c2c1fa028d8c1114feffffba1f85eb51f7ea89d0c1fa07c1f80529c18d4c110f4863c94869c9805101008b470883f8010f84e60100000f82a201000083f8020f85a70100004531c940f6c603753a89f0ba1f85eb514189f0f7ea41c1f81f41b90100000089d0c1f8054429c06bc06439c67515c1fa074531c94429c269c29001000039c6410f94c14963d10fb7470c4189f54c8d0c124901d14a8d148a4c63c04189c34901d0baabaaaa2a470fb78c007ec74b004d89ca4d69c9805101004901c98d480989c8f7ead1ea8d0452ba1f85eb51c1e00229c183c101664183fb034183dd004489e84489ebf7eac1fb1f6bc91a4189d389d5ba6766666641c1fb0583e90289c84589dcc1f91ff7ea4129dc456be464c1fa024529e529ca418d441501418d55034585ed4589ec440f48e289ea4129db41c1fc02c1fa074501db29da4401e001d0ba932449924429d889c1f7ea89c8c1f81f01cac1fa0229c28d04d50000000029d029c185c98d410789ca0fb74f100f48d029d10fb7570e8d410785c90f48c883fa017641470fb7840080c74b008d41074529d04139c07e2d448d14d5000000004129d2468d5411f94489d1eb130f1f4400008d50074439c20f8dac00000089d04439d075ed4863c94869c1805101004a8d0c08eb130f1f4400000fb747104869c0805101004801c1482b4f18486347148977284801c148894f205b5d415c415dc3660f1f8400000000008b470831c983f8010f851afeffff0fb7471089c283e80148984869c0805101004801c16683fa3b76b540f6c60375af89f0ba1f85eb514189f0f7ea41c1f81f89d0c1f8054429c06bc06439c674224881c180510100eb87660f1f84000000000089c1e954ffffff660f1f840000000000c1fa074429c269c29001000039c60f855affffffebc8662e0f1f840000000000415741564155415455534883ec184c8b27410fb6142489d083e0df83e8413c1977234c89e30f1f004883c3010fb60383e0df83e8413c1976ef4989de4d29e64983fe02776180fa3c74164883c41831c05b5d415c415d415e415fc30f1f4400004983c4014c89e2eb0b0f1f80000000004883c2010fb60a89c883e0df83e8413c1976ed8d41d5a8fd74e68d41d03c0976df4989d64d29e64983fe0276ad80f93e75a8488d5a01488b2dcb522600897424044989fd4885ed750ae9a000000066904889c5488b45084939c6771a4c29f04c89f24c89e74c8d7c05104c89fee82e8df9ff85c0744c488b45004885c075d1498d7e11e84866fbff4885c00f8449ffffff4c8d781048c700000000004c8970084c89f24c89e648894424084c89ffe82d4cfcff488b4c240842c64431100048894d004c637424044b8d047648c1e0044c89b8a0c86c0049895d004883c4185bb8010000005d415c415d415e415fc3498d7e11e8d965fbff4885c04889c50f84d7feffff4c8d7d1048c74500000000004c8975084c89f24c89e64c89ffe8bf4bfcff42c64435100048892dda512600eb92415541544989fc555331ed4883ec18488b0780382c400f94c54801c50fb645003c4a0f84400100000fbed083ea3083fa0977654863de488d045b48c1e004c780a8c86c0000000000488d742408ba0a0000004889efe8e676faff488b5424084839d57424483d6d010000771c488d0c5b48c1e10483b9a8c86c000175734885c0756e660f1f44000031c04883c4185b5d415c415dc30f1f003c4d0f84b001000084c075e44863de488d045b48c1e0044805a0c86c00483da0c86c00c74008020000000f841802000041b80b00000041b9010000004531d2664489400c664489480e4889ea6644895010eb140f1f440000488d0c5b48c1e104668981b0c86c000fb60a80f92f778148b8010000000090000048d3e883e0014883f00183e0010f8564ffffff80f92f7477488d045b48c1e004c780b4c86c00201c0000488d045b48c1e004c780c8c86c00ffffffff498914244883c4185bb8010000005d415c415dc30f1f80000000004863de4883c501488d045b48c1e004c780a8c86c00010000000fbe450083e83083f8090f86b7feffffe9f2feffff662e0f1f8400000000000fb66a014084ed0f84ddfeffff31c04080fd2dc7442408000000000f94c031c9be8d4a4b0066894c2406488d4c24084c8d6c020131d2b802000000668944240266895424044989c9514c89ef488d44240e5031c0488d5424124c8d442414e8dd2d0100486354241831c05e5f0fb74c2402488d345b4c01ea4080fd2d0f95c048c1e6048d4400ff69f9100e00000fb74c24046bc93c01f90fb77c240601f90fafc18986b4c86c00e9effeffff0f1f40004863de4c8d4c2408be7e4a4b00488d045b4889ef48c1e004488d88aec86c00488d90acc86c004c8d80b0c86c00c780a8c86c00020000004c8da8a0c86c0031c0e84b2d010083f8030f85eafdffff410fb7450c83e8016683f80b0f87d8fdffff410fb7450e83e8016683f8040f87c6fdffff6641837d10060f87bafdffff48635424084801eae924feffff0f1f44000031d241bb0300000041bd0200000066895010664489580c4889ea664489680ee9fbfdffff6690662e0f1f840000000000415641554154554989fc53e8c0befbff488b1db14e26004889c54885db750ceb7c0f1f80000000004889c3488b43084839c5771e4829e84889ea4c89e74c8d6c03104c89eee81689f9ff85c00f8485000000488b034885c075ce488d7d11e82d62fbff4885c04989c674784c8d681048c70000000000488968084889ea4c89e64c89efe81848fcff41c6442e10004c89e84c89335b5d415c415d415ec3488d7811e8ea61fbff4885c04889c374354c8d6b1048c7030000000048896b084889ea4c89e64c89efe8d547fcffc6442b100048891df14d26005b4c89e85d415c415d415ec331c0ebad660f1f84000000000041554154baa0c86c00555331c0b90c00000031f64883ec2848897c24084889d7f348ab488d7c240848c705dd4d260065694b0048c705a24d260065694b00e81dfaffff84c00f8425010000488b6c24080fbe450084c00f849c0100008d50d581e2fd0000000f84bd01000083e83048c7c3ffffffff83f8090f877a0100004c8d64241c4531c04531c96644894424186644894c241a31c048896c2408c744241c000000004d89e141544c89e1be8d4a4b004889ef4c8d6c242241554c8d442428488d542426e8162b010085c0415a415b0f8e6a0100000fb75424160fb77424180fb77c241ae876f6ffff486354241c89c0480fafc34801d5488905f94c260048896c2408807d00007526488b3dcf4c2600488905104d260031d248f7d848893dec4c26004889fbeb6b0f1f8000000000488d7c2408be01000000e821f9ffff84c00f8511010000488d7c240831f6e8adfaffff84c07419488d7c2408be01000000e89afaffff662e0f1f840000000000488b05814c260031d2483905a84c2600488b3d594c2600488b1d824c26000f95c248f7d889152e4c260048893d4f3e2600488905184c260048891d493e2600e82cbcfbff4889df4889c5e821bcfbff488b15f25626004839d5771d4839d07607488905e15626004883c4285b5d415c415dc3660f1f44000048892dc95626004889eaebd70f1f4000488b15f94b26004889d048f7d84839151c4c2600488b3dcd4b2600488b1df64b26000f95c20fb6d2e96fffffff0f1f0031db4883c5013c2d0f94c3488d5c1bffe941feffff0f1f0048c705ad4b26000000000031c031d2ebb40f1f8000000000488b6c240848c7c3ffffffff0fb645008d50d581e2fd000000751031db4883c5013c2d0f94c3488d5c1bff31d231c948896c2408668954241866894c241abe8d4a4b00c744241c0000000041544889ef415531c04d89e14c89e14c8d442428488d542426e81f29010085c05e5f0f8e8c0000000fb75424160fb77424180fb77c241ae881f4ffff89c1480fafcb486344241c48890d374b26004801c548896c24080fb6450084c074123c2c0f853efeffff807d01000f8534feffff488b15de4a2600488b35ef4a2600488b3db84a2600e8631d00008b058d55260085c00f840cfeffff488b3d8e4a2600e8f961fbff48c7057e4a260000000000e980feffff488b059a4a2600488d88100e0000e97bffffff660f1f4400005553be0100000031c04883ec08833d7853260000740cf00fb135b24a2600750beb230fb135a74a2600741a488d3d9e4a26004881ec80000000e8b2a9fdff4881c4800000008b15114a260085d27449833d3653260000740bf0ff0d714a2600750aeb22ff0d674a2600741a488d3d5e4a26004881ec80000000e8a2a9fdff4881c480000000488b05bc5426004883c4085b5dc30f1f440000bfb84a4b00c705b549260001000000e8b46afaffba9f4a4b004885c04889c3480f44da0fb60384c00f842a0100003c3a0f8527010000488b2d8b4926004883c3014885ed0f844e0100004885db0f84350100004889ee4889dfe83a84f9ff85c00f8451ffffff4889ef48c705644926000000000048c7058949260000000000e8b460fbff4889dfe8fcb8fbff31d231f64889df4889052e492600e8990e00008b051354260085c00f850affffff803b007415bf9f4a4b00b90f0000004889def3a60f85b100000031c048833ddf53260002baa0c86c00b90c0000004889d7c705d848260000000000f348ab48c705c24826000000000048c70507492600bb4a4b0048c705cc482600bb4a4b0048c70511492600ffffffff48c705d6482600ffffffff48c705bb3a2600bb4a4b0048c705b83a2600bb4a4b000f8779feffff48c7056753260003000000e969feffff662e0f1f840000000000bbae4a4b00488b2d644826004885ed0f85e6feffffe9f4feffff660f1f4400004889dfe878faffffe932feffff0f1f00bb9f4a4b00e9d4feffff660f1f4400004885db480f44dae9c2feffff0f1f4000448b461441574189d341564155415455418d886c0700005383f9ff0f84070600003b0d314826000f84a30200004531c981f9b20700007e4b458d50ba458d886e0700004489c0ba1f85eb514569d26d010000056b070000440f49c841c1f902f7ea478d8c0a14feffff89d0c1fa07c1f8054129c1458d4c110f4d63c94d69c9805101008b05af47260083f8010f84c60100000f82e804000083f8020f857006000031dbf6c103753789c8ba1f85eb514189caf7ea41c1fa1fbb0100000089d0c1f8054429d06bc06439c17513c1fa0731db4429d269c29001000039c10f94c34863d30fb72d53472600458da06b070000488d041241ba1f85eb514801d0488d04824c63edbaabaaaa2a4901c5430fb7842d7ec74b004989c64869c0805101004c01c8448d4d0948894424f84489c8f7ead1ea8d0452c1e0024129c14183c1016683fd02440f47e14489e04589e741f7ea41c1ff1f456bc91a89d54189d2ba67666666c1fd054183e9024489c889eb41c1f91ff7ea4429fb6bdb64c1fa024129dc4429ca418d441401418d5424034585e44489e30f48da41c1fa074429fdc1fb024529fa01ed01c3ba932449924101da4129ea4489d0f7ea4489d0c1f81f4401d2c1fa0229c28d04d50000000029d04489d229c28d420785d20f48d00fb7055e46260029d08d500785c00f48c20fb7154b46260083fa010f863f000000470fb78c2d80c74b008d58074529f14439cb7d2b448d14d5000000004129d2468d5410f94489d0eb110f1f008d53074439ca0f8d7c04000089d34439d375ed4c63c84d69c9805101004c034c24f8e9420300004531c9660f1f4400000fb705e145260089c283e80148984869c0805101004901c16683fa3b0f8617030000f6c1030f850e03000089c8ba1f85eb514189caf7ea41c1fa1f89d0c1f8054429d06bc06439c10f842a0400004981c1805101004c2b0d9445260048630589452600890d974526004901c14c890d854526000f1f4400003b0db24526000f844102000081f9b20700000f8ed0020000458d50ba458d886e0700004489c0ba1f85eb514569d26d010000056b070000440f49c841c1f902f7ea478d8c0a14feffff89d0c1fa07c1f8054129c18b053e452600458d4c110f4d63c94d69c98051010083f8010f84880200000f822803000083f8020f85ae01000031dbf6c103753789c8ba1f85eb514189caf7ea41c1fa1fbb0100000089d0c1f8054429d06bc06439c17513c1fa0731db4429d269c29001000039c10f94c34863d3440fb73dd24426004181c06b070000488d04124801d0488d04824d63d74489fd4183c709baabaaaa2a4901c2430fb784127ec74b004889c34869c0805101004901c14489f8f7ead1ea8d0452c1e0024129c74183c7016683fd02bd1f85eb51440f47c14489c04589c5f7ed41c1fd1f4189d489d5ba6766666641c1fc054589e64529ee456bf6644529f04589c6456bc71a4183e8024489c041c1f81ff7eac1fa024429c24585f6418d441601418d5603440f48f2c1fd074529ec41c1fe024429ed4501e44401f0ba9324499201e84429e089c5f7ea89e8c1f81f01eac1fa0229c28d04d50000000029d089ea29c28d420785d20f48d00fb705e143260029d04189c48d40074585e4440f48e00fb705c943260083f8010f8644000000430fb7941280c74b00418d6c240729da39ea7e30448d04c5000000004129c0478d4404f94589c4eb16660f1f8400000000008d450739d00f8dd501000089c54439c575ee4963c44869c0805101004901c14c2b0d7243260048630567432600890d754326004901c14c890d634326004585db744f488b0527432600488b15504326004839d00f8f570100004839f80f9ec04839d70f9cc20fb6d221d08946204898488b14c5b0ba6c0048895630488d14004801d048c1e004488b80b8c86c00488946285b5d415c415d415e415fc34531c9900fb705b94226004869c0805101004901c14c2b0db0422600486315a5422600890db34226004901d183f9ff4c890d9e4226000f8518fdffff4531c98b05a742260083f8010f8578fdffff0fb7059f42260089c283e80148984869c0805101004901c16683fa3b0f8613fffffff6c1030f850affffff89c8ba1f85eb514189c8f7ea41c1f81f89d0c1f8054429c06bc06439c10f84d80000004981c180510100e9dbfeffff0f1f40008b050a42260083f8010f8418fcffff0f823fffffff83f8020f84c3000000486305f7412600890d054226004531c9482b05eb412600488905ec412600e952ffffff0f1f80000000000fb705f94126004869c0805101004901c1e979feffff662e0f1f8400000000004839f80f9ec14839d70f9cc009c80fb6c0e9a4feffff662e0f1f84000000000089d8e984fbffff660f1f8400000000004189ece92afeffff0f1f840000000000c1fa074429d269c29001000039c10f85c9fbffffe9bdfbffff0f1f8000000000c1fa074429c269c29001000039c10f85fbfdffffe90fffffff4531c9e990f9ffff4c2b0d3041260048630525412600890d334126004c01c848890521412600e99cfbffff6690662e0f1f8400000000005553be0100000031c04883ec08833df849260000740cf00fb13532412600750beb230fb13527412600741a488d3d1e4126004881ec80000000e832a0fdff4881c480000000bfb84a4b00c7058840260001000000e88761faff4885c00f84ce0100004889c30fb60084c00f84600100003c3a0f855d010000488b2d614026004883c3014885ed0f84bc0100004885db0f84c40100004889ee4889dfe8107bf9ff85c00f84500100000f1f8400000000004889ef48c705324026000000000048c7055740260000000000e88257fbff4889dfe8caaffbff31d231f64889df488905fc3f2600e8670500008b05e14a260085c00f8597000000803b007415bf9f4a4b00b90f0000004889def3a60f850f01000031c048833dad4a260002baa0c86c00b90c0000004889d7c705a63f260000000000f348ab48c705903f26000000000048c705d53f2600bb4a4b0048c7059a3f2600bb4a4b0048c705df3f2600ffffffff48c705a43f2600ffffffff0f869e000000488b05773f260048890580312600488b05993f26004889057a312600833d7748260000740bf0ff0db23f2600750aeb22ff0da83f2600741a488d3d9f3f26004881ec80000000e8e39efdff4881c4800000004883c4085b5dc30f1f440000bbae4a4b00488b2d043f26004885ed0f84cbfeffff4889ee4889dfe8c079f9ff85c00f85b8feffff8b05d249260085c0758ce96bffffff660f1f84000000000048c705ad49260003000000e952ffffff4889dfe8e8f0ffffebce660f1f440000488b2da93e2600bb9f4a4b00e96ffeffff0f1f80000000004885dbb89f4a4b00480f44d8e957feffffbb9f4a4b00e94dfeffff0f1f00662e0f1f8400000000004885ff0f84bf0300004156415531c04154554189f5534989fc4889d3be010000004883ec10833d7047260000740cf00fb135aa3e2600750beb230fb1359f3e2600741a488d3d963e26004881ec80000000e8aa9dfdff4881c4800000004881faa0d36c000f856e0100004585ed0f8465010000bfb84a4b00c705ea3d260001000000e8e95efaff4885c04889c50f84ed0200000fb60084c00f8552010000bdae4a4b004c8b35c63d26004d85f6740f4c89f64889efe88678f9ff85c074724c89f748c705b43d26000000000048c705d93d260000000000e80455fbff4889efe84cadfbff31d231f64889ef4889057e3d2600e8e90200008b156348260085d2753d807d00000f8415010000bf9f4a4b00b90f0000004889eef3a60f84000100004889efe878efffff0f1f8400000000008b052a48260085c00f8460010000498b3c24488d4c2404488d5424084989d84489eee8d9110000833d3e46260000740bf0ff0d793d2600750aeb22ff0d6f3d2600741a488d3d663d26004881ec80000000e8aa9cfdff4881c4800000004885db0f845a0100004585ed0f8431010000488b7328482b7424084889da4c89e7e87d26010085c00f84350100008b44240401034883c4104889d85b5d415c415d415ec30f1f80000000008b058e3c260085c00f848dfeffffe945ffffff0f1f4400003c3a0f85abfeffff4c8b35713c26004883c5014d85f60f84a40100004885ed0f859afeffffbd9f4a4b00e99ffeffff9031c048833d2e47260002baa0c86c00b90c0000004889d7c705273c260000000000f348ab48c705113c26000000000048c705563c2600bb4a4b0048c7051b3c2600bb4a4b0048c705603c2600ffffffff48c705253c2600ffffffff48c7050a2e2600bb4a4b0048c705072e2600bb4a4b00770b48c705ba4626000300000031f64889da4c89e7e88525010085c0755131db48c744240800000000c744240400000000e990feffff660f1f840000000000c743200000000048c74330bf4a4b0031f648c7432800000000e9b5feffff66904883c41031c05b5d415c415d415ec3908b4314bfa0c86c00498b2c248db06c070000e819e5ffff8b4314bfd0c86c008db06c070000e806e5ffff4585ed7482488b056a3b2600488b15933b26004839d07f564839c50f9dc04839d50f9cc20fb6d221d08943204898488b14c5b0ba6c0048895330488d14004801d048c1e004488b80b8c86c0048894328e932ffffff904c8b35e93a2600bd9f4a4b00e92dfdffff0f1f80000000004839c50f9dc14839d50f9cc009c80fb6c0eba80f1f4400004885edb89f4a4b00480f44e8e9fdfcffff0f1f800000000048c7c0d0ffffff64c7001600000031c0c30f1f800000000041574156415541544989d555534989f44881ec180100004885ff8b2d6045260048c744244800000000c7054d452600000000000f84e70200000fb6074889fb84c0753531ffe8b651fbff488b3da7452600e8aa51fbff48c70597452600000000004881c4180100005b5d415c415d415e415fc30f1f4400008b151a11260085d20f84320200003c2f0f844a020000beec4a4b00e88874f9ff31ff4885c075a6bfc34a4b00e8e75afaff4885c00f8486020000660f1f440000803800ba804b4b00480f44c2488d7c24484889d94889c2bec94a4b0031c0e87566faff488b5c244883f8ff4889df0f8459ffffff85ed7430488d9424800000004889debf01000000e8cb63fdff85c07517488b05503a260048398424880000000f842a0200006690be25144a004889dfe8d36cfaff4885c04889c50f846f0100004889c7e85f180100488d94248000000089c6bf01000000e8cb63fdff85c00f8543010000488b3d9444260041be04000000e89150fbff488b84248000000048c7057644260000000000488905df392600488b842488000000488905c8392600488b8424d8000000814d0000800000488905aa392600488d7c24504889e9ba01000000be2c000000e8fb1a01004883f8010f85d1000000488d7c2450ba04000000becf4a4b00e84d73f9ff85c00f85b5000000448b7c24788b4c24748b5c24648b542470448b5c246c410fcf0fc94d63d7448b7c24680fcb4863c94863db0fca4839d9410fcb4863d2410fcf400f92c64d63db4d63ff4889151b39260048890d043926004c39f94c891dd23826000f92c04008f075524183fe040f8538010000807c2454000f842d0100004d01d7488d04494889ef4901df488d1c92ba0100000041be080000004901df498d04474a8d34d8e84117010085c00f8417ffffff660f1f8400000000004889efe88866faff488b7c2448e993fdffff660f1f4400003c2f0f842cfeffffbfc34a4b00e8c658faff4885c00f85e5fdffffeb630f1f00ba0f000000be9f4a4b00e84972f9ff85c0741aba13000000be804b4b004889dfe83372f9ff85c00f853efdffffbeec4a4b004889dfe80e72f9ff4885c00f8528fdffffe9ccfdffff85edbb9f4a4b000f85c3fdffffe9eefdffff660f1f440000b8804b4b00e982fdffff660f1f440000488b051938260048398424800000000f85c3fdffff488b05f437260048398424d80000000f85aefdffff488b7c2448c705ff41260001000000e87a4efbffe9d6fcffff0f1f4400004189c048b8701cc7711cc7711c4839c20f87fafeffff488d74d2074883e6f84889f048f7d048c1e8044839c10f87defeffff4889c848c1e0044801f04889c748f7d74939fa0f87c5feffff4c01d04883f8f80f87b8feffff4883c0074883e0f84889c7488944240848f7d048c1e8044939c30f8798feffff4c89d848c704240000000048c1e0044183fe084c8d0c384c89c848f7d00f849d03000048894c2418488b0c24448844243f48897424304c895c24284c895424204829c848895424104c39e00f8247feffff4b8d3c214801cfe8fb49fbff4885c0488905894126000f842bfeffff488b742430488b4c2418488b5424104c8b5424204c8b5c2428440fb644243f4801c648c1e1044801f1488d3cd04889358f36260048890d80362600488b4c240848893d8c3626004801c14183fe0848890d463626000f84ba0000004d85e448c7052a36260000000000740b49c1e3044c01d949894d004889e9be040000004889c744884424104c89542408e8bb170100483b05443626000f858efdffff488b3d2f3626004889e94889c2be01000000e897170100488b35203626004c8b542408440fb64424104839f00f855cfdffff4885f60f8492000000488b0df4352600488b3de53526000fb6014839c70f8639fdffff488d41014801f166904839c10f84220200000fb6104883c0014839d777ebe916fdffff49c1e3044b8d34234801ce4d85e4488935693526000f855403000044884424104c895424084889e9be090000004889c7e965ffffff488b15324026004883ee018b04b20fc84898488904f24883ee014883feff75eb4531e448833d56352600000f84bc00000048895c24084d89d54889eb4489c5488d7c24404889d9ba04000000be01000000e8ab1601004883f8040f8574010000488b4308483b43100f838a020000488d5001488953080fb60083f8010f8752010000488b0df03426004c89e248c1e20488441108488b4308483b43100f8363020000488d480148894b080fb6004863c84939cd0f821b010000480315b93426004983c4014c3925b63426008842098b4424400fc848984889020f8760ffffff4189e84889dd488b5c24084d89ea488b3d7d3426004c89d24889e9be010000004c895424084488442418e8f31501004c8b5424084989c44939c20f85c2fbffff440fb64424184531ed4963c648895c241048894424084c89eb4d89e54589c4483b1d143426000f83fb010000488b542408488d7c24404889e9be01000000e89f15010048394424080f8574fbffff4183fe040f84a50100004889d8488b54244048c1e004480305c7332600480fca488910488d7c24404889e9ba04000000be01000000e85a1501004883f8040f8530fbffff8b4424404889da4883c30148c1e2044803158a3326000fc8489848894208e96affffff4889dde905fbffff488b05563e26004183fe04488d0cf00f840ffeffff488b104883c008480fca488950f84839c875ede917feffff488b8424b00000004889ef44884424284c894c242048897424184c8954241048890424e8101301004c8b1c244929c30f88a3faffff488b0d3c332600488b15453326004c8b542410486bc106488d3cd24801f84c01d04c39d80f8779faffff4c89df4c8b1de73226004829c748b855555555555555154939c30f8759faffff496bc30c4839c70f824cfaffff4829c74939ff4889f80f873dfaffff4c29f84889c70f8431faffff488d40ff4839c30f8724faffff4889f84829d84883e8014889c6488904240f840dfaffff4c8b4c2420440fb64424284c89c848f7d04839c6488b7424180f8679fbffffe9e9f9ffff4889dfe8c1b7faffe974fdffff4889df4889542410e8afb7faff488b542410e991fdffff8b4424404889da48c1e204480315233226000fc84898488902e956feffff4c01d949894d00e9a0fcffff4589e0488b5c24104d89ec4589c64531edeb2d488b4508483b45107350488d5001488955080fb6004c89ea48c1e204480315fd31260085c00f95420a4983c5014d39fd75ce488b05ef312600488b15e03126004589f04939c773254983c7014c89f948c1e104c6440afa00ebe94889efe806b7faff83f8ff0f841df9ffffeba84531ed4589c64939dd7429488b4508483b45107340488d480148894d080fb6004c89e948c1e10485c00f95440a0b4983c501ebd2488b05803126004589f04839c3732c4883c3014889d948c1e104c6440afb00ebe94889efe89eb6faff83f8ff0f84b5f8ffff488b1546312600ebb148833d0c312600007429488b4508483b45100f83bc000000488d5001488955080fb60083f80a745248c705e1302600000000004889ef4488042431dbe8fb5efaff440fb604244489c5483b1dfc3026000f83960000004889d84883c30148c1e004480305dc3026000fb6780948033dc9302600e864e1ffffebcf488b0424488b3d8f3026004889e9be010000004488442408488d58ff4889dae82e1201004839c3440fb64424080f857bffffff488b0560302600488b0c244885c0c64408ff000f846dffffff8038000f8564ffffffe954ffffff4889ef4488442408e8abb5faff440fb6442408e937ffffff4189e8488b2d6630260048c705bb2126000000000048c705b821260000000000bb010000004589c74885ed7454488b05343026004883ed010fb6042848c1e00448030511302600440fb670084a833cf5b0ba6c000075d10fb6780948033dee2f2600e889e0ffff4a8904f5b0ba6c0089d84429f0489848833cc5b0ba6c000074a748833d47212600004589f80f849500000048833d3e21260000750e488b052d2126004889052e212600488b059f2f26004a8d0c204889c2eb044883c201803a0075f74889d64829c6483b35c83926007607488935bf392600488d42014839c872d3488b0d872f26004885c9757d488b05632f2600488b00488905412f2600488905422f260031d2483905312f26000f95c248f7d889158d2e26004889057e2e2600e96bf7ffff48833d312f2600017521488b3d182f260044883c24e8afdfffff440fb6042448890583202600e940ffffffb9504b4b00baec010000bed44a4b00bfdd4a4b00e8a57ef9ff488b1de62e26004c8b1def2e26004531d248c705b92e26000000000048c705b62e26000000000031ff4531c931d231f685f67562410fb6440bff48c1e0044801d8807808000f85a10000004c8b0841ba01000000be0100000085d675674883e90175cd4584d274074c890d6e2e26004584c0740748893d5a2e260085d2488b05592e26000f8511ffffff488905442e2600e905ffffff85d2752a410fb6440bff48c1e0044801d8807808007410488b3841b801000000ba01000000eb9cbe01000000eb994584d274074c890d0d2e26004584c0488b05032e26000f84bbfeffff48893dee2d2600e9affeffff85d274bdba01000000e963ffffff90662e0f1f840000000000415741564989f6415541544989d555534989ff4883ec2848890c24e8309dfbff4c89f7488d6801e8249dfbff4c8d6001488d542418bff04a4b004a8d5c25004889dee869f2ffff8b05e337260085c00f848301000048833d932d2600010f8684010000488b7c24184889ea4c89fee84dccfbff4c89e24889c74c89f6e83fccfbff4c8b0d782d2600488b4c241848c705582d260002000000488b3d492d26004d85c948890d372d26000f84830000004c8b24244d89eb488b353b2d26004c8b15e43726004c2b25052d26004531c04c2b1d032d260031d248894c2408eb20669080780a0075354d0124d2660f1f4400004883c201440fb640084c39ca742f0fb6041648c1e0044801f80fb64808880c1680780b0075da4585c075c54d011cd24883c2014c39ca440fb6400875d1488b4c2408488b0424488b35eb3626004801cb4c892f4c892d8e2c260049f7ddc6470900c647080048894710488905702c260040886f19c64718014c893df11d26004c8935f21d26004c892db32b26000f1f008039004889c874260f1f8400000000004883c00180380075f74889c24829ca4839f2760a4889157d3626004889d6488d48014839d972c948c705562c26000000000048c705432c26000000000048c705302c2600000000004883c4285b5d415c415d415e415fc3c7053f362600000000004883c4285b5d415c415d415e415fc341574156415541544989cc55534889d54883ec1885f648897c24080f840a0200004d89c74c8b05d52b260048c7052a1d26000000000048c705271d2600000000004d85c00f84c6020000488b35573626004889f948393e0f8fb30200004a8b7cc6f84839f90f8d8a0400004829cf48ba75fddae5ee221a88498d58ff4889f848f7ea4801fa48c1ff3f48c1fa174829fa4939d00f872702000031d2488d7a01eb1b0f1f8000000000488d041348d1e8483b0cc60f8dd70200004889c34839fb77e7488d43ff48890424488b05282b26000fb64418ff48c1e004480305082b26000fb67809440fb6680848033df02a2600e88bdbffff488b0d042b26004a8904edb0ba6c00488b15ed2a2600488b3dd62a26004839cb7212eb7f0f1f80000000004883c3014839cb736f0fb6041a48c1e0044801f8440fb668084a833cedb0ba6c000075dc0fb6780948033d912a2600e82cdbffff4a8904edb0ba6c00b801000000488b15902a26004429e8489848833cc5b0ba6c00000f8561040000488b0d7d2a26004883c301488b3d5a2a26004839cb72960f1f440000488b05c11b26004885c00f8408040000488b0c24440fb62c0a49c1e5044901fd488b15192a260031c9483915082a26000f95c148f7da4885c0890d61292600488915522926000f84bd02000048833d7c1b2600000f84a3020000410fb6450841894720410fb67d09488b1cc5b0ba6c0048033dd12926004889dee8f963f9ff85c00f8587040000498b450049895f3049894728488b15962926004c8b05872926004889d048c74500000000004c8b4c240848c1e00441c70424000000004883ea01498d4400f0eb194889c64889c14883e8104c29c64c3909488d7aff7e1a4889fa4883faff75e14883c4185b5d415c415d415e415fc36690488b4108488945004c3b0975e24885d20f85f2000000488b41084885c00f8e1a03000041c7042401000000ebc20f1f004c89c04829d04889c2488d40ff483b0cc6488d3cc5000000000f8d480100004883f8090f87ed010000483b4c3ef84889c30f8dcafdffff660f1f8400000000004883eb01483b4cdef87cf5e9b1fdffff4c8b35d9282600488b0dca2826004d85f60f849f02000031c031db807908004889ca752de92e0300000f1f80000000004883c3014c39f30f83020100004889da48c1e2044801ca807a08000f84ee0000004885c075da0fb67a0948033d6f282600e80ad9ffff4c8b3573282600488905e4192600488b0d5d282600ebb30f1f004889c2e903fdffff4c8b5108498d4c30f0488b41084939c20f8ed1feffff488b0941c70424010000004883c1014c39c90f85b9feffff4883c0014939c20f85acfeffff48c1e204b902000000498d0410eb34660f1f440000488b58e04889c6488d5301483950f07525488b5ee883c1014883e810488d5301483956f80f85da0000004883ef014885ff4189c875ca41890c24e958feffff4883c2094939d00f87930000004889c3660f1f8400000000004883c301483b0cde7df6e972fcffff4c39f30f846b0100004989de49c1e604420fb67c310948033d74272600e80fd8ffff48833def18260000488905e01826000f84630100004c03355b2726004d89f5e923fdffff488905cc182600e951fdffff48833d47272600010f85de010000488b3d2a272600e8c5d7ffff4889059e182600e91dfdffff483b0cd60f8dcafbffffe95effffff483b4c3eb00f8d08feffff488d5af531d2e9affbffff45890424e98afdffff488b3dbc2626004c89c34885ff0f84b9fbffffe863d8ffff488d7c240831f64c89fae8e40f010085c0488b1ddb2626000f8496fbffff488b7c2408ba010000004c89fee8e3ddffff488b15842626004c8b05752626004889d748c1e7044c01c7483b3d842626000f85d7fcffff48833d86262600020f8504010000e80bd7ffff488b1d64262600488905dd1726004889dfe8c595fbff488d7c0301e8ebd6ffff488b152c262600488905c51726004c8b0516262600e98afcffff90488b05b1172600488905a2172600e9e5fbffff4531f631dbe992feffff493b4430f80f8fdbfcffffe9a2fcffff488b3d04262600e9affbffff488b0d002626004839cb0f838dfeffff488b35e82526004e8d2c3641807d080075644883c3014889da48c1e2044801f2eb090f1f4400004883c3014839d90f868bfbffff4889d64883c210807af80074e60fb67e0948033d9b252600e836d6ffff4c03359725260048890510172600488b05011726004d89f5e951fbffff4531f6e9f0fdffff4c89eeebc6b9604b4b00bac2020000bed44a4b00bffb4a4b00e81375f9ffb9604b4b00ba20030000bed44a4b00bfdd4a4b00e8fa74f9ffb9604b4b00ba27030000bed44a4b00bf104b4b00e8e174f9ff90803e000f84f70000005553b901010000ba000809004863ff89c84881ec980000000f05483d00f0ffff4889c30f87e600000085db0f882c0100004889e289debf01000000e8c74efdff85c00f88950000008b4424182500f000003d004000007577488b442438483dffff0f007652bf30001000bd00001000e8d337fbff4885c00f84aa0000008918c74004000000004889680848c740100000000048c740180000000048c7402000000000c74028000000004881c4980000005b5dc30f1f4000483d00800000bd00800000480f43e8488d7d30eba30f1f0048c7c0d0ffffff64c700140000004863fbb8030000000f054881c49800000031c05b5dc30f1f400048c7c0d0ffffff64c7000200000031c0c30f1f800000000048c7c2d0fffffff7db31c064891aeb8a0f1f840000000000bf30200000bd00200000e81137fbff4885c00f853effffff48c7c2d0ffffff4863fbb803000000648b320f0531c0648932e94cffffff31c0e945ffffff0f1f00803f000f84f70000005553b902000000be0008090089c84881ec980000000f05483d00f0ffff4889c30f87e900000085db0f882f0100004889e289debf01000000e85a4dfdff85c00f88980000008b4424182500f000003d00400000757a488b442438483dffff0f007655bf30001000bd00001000e86636fbff4885c00f84ad0000008918c74004000000004889680848c740100000000048c740180000000048c7402000000000c74028000000004881c4980000005b5dc30f1f8000000000483d00800000bd00800000480f43e8488d7d30eba00f1f0048c7c0d0ffffff64c700140000004863fbb8030000000f054881c49800000031c05b5dc30f1f400048c7c0d0ffffff64c7000200000031c0c30f1f800000000048c7c2d0fffffff7db31c064891aeb870f1f840000000000bf30200000bd00200000e8a135fbff4885c00f853bffffff48c7c2d0ffffff4863fbb803000000648b320f0531c0648932e949ffffff31c0e942ffffff0f1f004154554189f45389fd4883ec104084f6750c81e2000008000f84820000004885c9bf30800000bb00800000741f488b4138483dffff0f007757483d00800000bb00800000480f43d8488d7b30e81f35fbff4885c0747a8928c74004000000004889580848c740100000000048c740180000000048c7402000000000c74028000000004883c4105b5d415cc30f1f440000bf30001000bb00001000ebb00f1f400031c0ba01000000be0200000048894c2408e87a4dfdff85c0488b4c24080f895bffffff31c0ebbb660f1f840000000000bf30200000bb00200000e89134fbff4885c00f856effffff4584e474d648c7c2d0ffffff4863fdb803000000648b320f0531c0648932e977ffffff0f1f4400004885ff743b538b1fe8f337fbff4863fbb8030000000f05483d00f0ffff77095bc30f1f800000000048c7c2d0fffffff7d8648902b8ffffffff5bc30f1f44000048c7c0d0ffffff64c70016000000b8ffffffffc3662e0f1f840000000000669041554154be01000000555331c04889fb4883ec0849c7c4d0ffffff64458b2c24833d35292600007409f00fb173047508eb1d0fb173047417488d7b044881ec80000000e8787ffdff4881c480000000488b5318488b4310488d6b30eb210f1f00488d7413300fb74e104801ca48833e00488b4e084889531848894b2075334839c272dd488b53088b3b4889eee80f0100004883f8007e11488943104889ee31d2ebc3660f1f44000075426445892c2431f6833da4282600007408f0ff4b047507eb1cff4b047417488d7b044881ec80000000e8197ffdff4881c4800000004883c4084889f05b5d415c415dc36441833c240274b631f6ebb90f1f84000000000053be010000004889fb31c0833d4a282600007409f00fb173047508eb1d0fb173047417488d7b044881ec80000000e88d7efdff4881c4800000008b3b31d231f6e8db7dfdff48c743200000000048c743180000000048c7431000000000c7432800000000833df1272600007408f0ff4b047507eb1cff4b047417488d7b044881ec80000000e8667efdff4881c4800000005bc3662e0f1f8400000000000f1f00415741564863ff41554154b84e00000055534889f34883ec080f05483d00f0ffff77554c8d24064989c54c39e67333900fb76b104c8d73124c89f7e8608efbff440fb67c2bff488d7b13488d50014c89f6e8aa58f9ff44887b124801eb4939dc77ce4883c4084c89e85b5d415c415d415e415fc30f1f400048c7c2d0fffffff7d849c7c5ffffffff648902ebd50f1f005389fe89fbbf010000004881ec900000004889e2e87748fdff85c078598b4424182500f000003d00400000753b31c0be0300000089dfe8554afdff83f8ff743689c283e20383fa01743e4889e189c231f689dfe808fcffff4881c4900000005bc30f1f800000000048c7c0d0ffffff64c700140000004881c49000000031c05bc30f1f800000000048c7c0d0ffffff64c7001600000031c0ebbe660f1f440000b83f0000000f05483d01f0ffff0f835d98fdffc3662e0f1f8400000000006690b8660000000f05c30f1f840000000000b86b0000000f05c30f1f840000000000b8680000000f05c30f1f840000000000b86c0000000f05c30f1f84000000000083ff014889f077304889c74889d6b8060000000f05483d00f0ffff7703f3c39048c7c2d0fffffff7d8648902b8ffffffffc3660f1f44000048c7c0d0ffffff64c70016000000b8ffffffffc30f1f400083ff0189f04889d677364863f84d63d04889cab8060100000f05483d00f0ffff7706f3c30f1f400048c7c2d0fffffff7d8648902b8ffffffffc3660f1f44000048c7c0d0ffffff64c70016000000b8ffffffffc3662e0f1f8400000000006690b8150000000f05483d01f0ffff0f834d97fdffc3662e0f1f8400000000006690833d55252600007514b8030000000f05483d01f0ffff0f832497fdffc34883ec08e8ea7bfdff48890424b8030000000f05488b3c244889c2e8337cfdff4889d04883c408483d01f0ffff0f83f096fdffc3662e0f1f8400000000000f1f4400004883ec484889e6e81400000085c00f94c04883c4480fb6c0c30f1f8000000000534989f04863ffbe01540000b8100000004883ec304889e20f05483d00f0ffff776e85c089c375598b04248b54240c498d7811488d7424114189008b4424044189500c0fb6542410418940048b44240841885010ba1300000041894008250f1000004189403441894038e8c1bafbff48c70000000000c7400800000000c6400c004883c43089d85bc30f1f800000000048c7c2d0fffffff7d8bbffffffff6489024883c43089d85bc30f1f8000000000b90c00000089c80f05483d00f0ffff4889c27714488905c51b260031c04839d77726f3c30f1f400048c7c0d0fffffff7da48c705a41b2600ffffffff64891031c0c3660f1f44000048c7c0d0ffffff64c7000c000000b8ffffffffc30f1f4000833dc5232600007514b8140000000f05483d01f0ffff0f839495fdffc34883ec08e85a7afdff48890424b8140000000f05488b3c244889c2e8a37afdff4889d04883c408483d01f0ffff0f836095fdffc3662e0f1f8400000000000f1f4400004155415455534883ec0848c7c0b0ffffff64488b004c8b28498b9d98000000803b0074544989fc31edeb1d0f1f44000031f64889df4883c501e8921dfcff80780100488d580174304889de4c89e7e8bd54f9ff85c075d9418b85d0000000488d440508498b44c5004883c4085b5d415c415dc30f1f4400004883c40831c05b5d415c415dc3662e0f1f840000000000904885f6743b8b0e89fa89f8d3ea3b5604733083c2058b149685d274268b4e08d3ef89f9234e0c488d0c8e8b141185d2741189c1234e10488d0c8e030411c3669089f8f3c3662e0f1f8400000000006690415641554c8d2c374154554989fc534889f5bf441e4a00be25144a004883ec20e8ab4cfaff4885c00f84520100004889c38b0089c280ce80a810891348c704240000000048c7442408000000007421e9ec0000000f1f40004c01e54829c54885ed0f84d9000000f603100f85d0000000488d7424084889d9ba0a0000004889e7e8eb81ffff4885c00f8eb2000000488b3c24488d742410ba10000000e82f3efaff488b542410483b14244989c60f848d000000488d7a0148897c2410803a2d757f488d742418ba10000000e8003efaff488b542418483b5424107464488d4a0148894c2418803a2075564d39f50f8674ffffff4939c40f836bffffff488d4a0248894c2418807a01727535488d4a0348894c2418807a022d75264d39f472054939c576194d39e60f862bffffff4c39e8723e4c29ed4c01f5e921ffffff31ed904889dfe8b846faff488b3c24e87f2ffbff4885ed753eb8010000004883c4205b5d415c415d415ec30f1f8400000000004c01f54829c5e9e3feffff0f1f44000048c7c0d0ffffff648b0083f80274c783f80d74c2b8ffffffffebc00f1f440000440fb6164180fa7b74664531c9443a12757e4531db4531c94584d274344531c9eb0b660f1f4400004584d274334983c101460fb6140e463a140a74ec4584db744f31c04180fa7d75104883ee014983c1024585c04c89c8754ff3c30f1f44000031c04584db74eaf3c30f1f8000000000440fb65601488d4601443a12755b4584d274224889c641bb01000000eb8f66904584d274bc4180fa2f74b64180fa3a750485c975ac31c0c3420fb6040e84c0740c3c2f74083c3a75ec85c974e84883c7014839fe740f31c085c9748d807efe3a490f44c1c34c89c8c34889c64531c9e95dffffff6690662e0f1f8400000000004885f60f842f010000554889e54154530fb6073c3a0f84250100004883c6204883e6f04829f4488d5c240f4883e3f04889daeb100f1f400088024883c70189c84883c20184c074283c2f0fb64f0175e880f92e0f84b70000004839da76da807aff2f75d489c84883c70184c075da66904839da7409807aff2f4989d474074c8d6201c6022f4929dc4983fc15767aba160000004889debfc0534b00e8d050f9ff85c00f84a90000004983fc19765aba1a0000004889debfd7534b00e8b050f9ff85c00f8489000000ba050000004889debff2534b00e89650f9ff85c074734983fc087616ba090000004889debff8534b00e87a50f9ff85c0745731c0488d65f05b415c5dc30f1f004983fc0476ecebb80fb677024080fe2e74464080fe2f74094084f60f8530ffffff4883c70289f0e910ffffff0f1f400031c0c30f1f4400000fb647014883ee014883c701e9cafeffffb801000000eba40f1f8400000000000fb677034080fe2f74094084f60f85e6feffff4839da7621807aff2f488d42ff750feb200f1f40004883e80180382f74134839d875f24889da4883c70389f0e9a0feffff4889c2ebf00f1f8000000000415741564989cf415541544989d555534189fc4c89c34d89ce4883ec0883feff488b6c2440740789f7e8c2f8ffff4885db7412488bbb380300004883ffff7405e84b2cfbff4889dfe8432cfbff4c89ffe83b2cfbff4885ed740dc7451800000000e89a79fdff904c89f131d24c89ee4489e7e8397f0000660f1f8400000000005531c04889e541574156415541544989ce534889f3be000008004883ec2848897db88955c8e8563ffdff83f8ff4189c40f840f02000048c7c0d0ffffff4531ff41bd4003000064c70000000000488d430848c70300000000488945c0488b45c04c89ea4489e74c29fa4a8d3438e86e3ffdff4885c00f8ee50300004803034883f83f4989c748890376d24983ff3f0f8e3c030000488b7dc0ba08000000be70534b00e8994ef9ff85c00f85410300000fb6431084c00f85a5010000488d7b11ba07000000be79534b00e8724ef9ff85c00f8598010000837b1c010f859003000066837b1a3e0f85390200000fb743188d50fe6683fa010f87810300006683f8020f848403000066837b3e380f85970300000fb77b40488b7328488d04fd000000004989f849c1e0064929c0498d04304d89c54c39f80f8785010000480375c0488975c84889f04901c04c39c00f83f30000004989c5eb2c660f1f840000000000488d14fd000000004889f84983c53848c1e0064829d0480345c84939c50f83c200000041837d000475d64d8b7d204983ff1f76cc49837d300376c5498b7508498d0437483b030f8764020000488b45c04c8d3430eb39662e0f1f840000000000418b16418b46044883c2034883c0034883e2fc4883e0fc488d44020c498d57e04839d00f875f0100004929c74901c6ba10000000be60534b004c89f7e83f4df9ff85c075bb4d85ff0f843a010000410fb64614410fb65618c1e00801d0410fb6561cc1e00801d0418b561085d20f85f10000008b15771c260039d0760885d20f85df000000488d65d84489e05b415c415d415e415f5dc3660f1f840000000000807b0f0375083c020f864dfeffff817b087f454c460f8547020000807b0c020f859b00000066837b1a3e0f859400000031ff807b0d0141b9b84d4b000f84b6000000488b55b86a004531c06a0031c94489e6e8c9fcffff660f1f840000000000498d401e31d24489e74883e0f04829c44c8d7c240f4983e7f04c897dc8e8ae70fdff4c89ea4c89fe4489e7e8f03cfdff4939c50f854f0100000fb77b40488d04fd000000004989f849c1e0064929c0488b45c8e92efeffff0f1f84000000000041c606014489e741bcffffffffe83ef5ffff48c7c0d0ffffff64c70002000000e900ffffff0f1f000fb77b40e90ffeffff0f1f8000000000807b0e0141b9e84d4b000f853affffff0fb6430f3c030f95c284c0740e84d241b9cc4b4b000f851fffffff0fb6431084c074103c020f872201000084d20f851a010000488d7b11ba07000000be79534b00e8924bf9ff31ff41b9014c4b0085c0b81c4c4b004c0f44c8e9dcfeffff662e0f1f84000000000048c7c0d0ffffff41b9944b4b00648b38b8a34b4b0085ff4c0f45c8e9b2feffff488b7dc0ba08000000be80534b00e83d4bf9ff85c00f84a4fcffffe95efeffff498d471e31d24489e74883e0f04829c44c8d44240f4983e0f04d89c6e85f6ffdff4c89fa4c89f64489e7e8a13bfdff4939c70f84a7fdffff48c7c0d0ffffff41b9a34b4b00648b38e945feffff0f1f004c8b3be922fcffff0f1f84000000000031ff41b9204e4b00e925feffff31ff41b9504e4b00e918fefffff745c8000000200f856ffcffff31ff41b9784e4b00e9fefdffff0f1f400031ff41b9a04e4b00e9edfdffff31ff41b9e44b4b00e9e0fdffff31ff41b9b94b4b00e9d3fdffff90554889e54157415641554154534881ec18010000488b014885c048898510ffffff0f8450020000488b05c2e62500480305831026004889b528ffffff4c898d18ffffff4c8985f8feffff48898dd8feffff899524ffffff4889bd30ffffff488d44061e48f7d6c7850cffffff0000000048c785e8feffff000000004889b5f0feffff4883e0f04829c4488d44240f4883e0f04989c689d02500000004898520ffffff488b8510ffffff0f1f8000000000f6058118260001488b180f85d2020000488b5320488b73184c89f7e880aefbff488b1521e625004989c74885d20f84a504000041bc010000004531edeb57669083f9ff0f84970100008b8520ffffff42c744a3240200000041bd0100000085c00f84d10000008b35bce5250085f60f852402000083f9ff0f85ba000000488b15c4e525004939d4498d4424010f83ee0000004989c442837ca3240174e7488b15ace525004c89e04c89ff48c1e004488d4402f0488b5008488b30e8e1adfbff488b9528ffffff488bb530ffffff4889c7e8cbadfbff4c29f0f605a91726000148898538ffffff0f8584010000488b4d208b9524ffffff4c89f7488bb518ffffffe87bf9ffff89c1428b44a32485c00f842cffffff83f8010f95c00fb6c04109c583f9ff0f8454ffffff8b8520ffffff85c00f852fffffff488bbd38ffffff4189cfe8aa21fbff488b8df8feffff4885c04889010f84e7030000488b9538ffffff4c89f64889c7e89507fcff4489f8488d65d85b415c415d415e415f5dc30f1f004585ed741448c7c0d0ffffff648b0083f80d740583f802752e48838510ffffff084409ad0cffffff488b8510ffffff488338000f8547feffff8b8d0cffffff85c90f8419030000488d65d8b8ffffffff5b415c415d415e415f5dc30f1f44000048837d10007425488b4510488b4030488d04c048c1e004488b90c0b16c00b801000000f68215030000087555488b8538ffffff488b8df0feffff488d9540ffffff4c89f6bf010000004c01f0c6040800e82b37fdff85c0754f8b8558ffffff31d22500f000003d004000000f94c283c2013d004000000f94c00fb6c0428954a3244109c5488b15dde32500e914feffff4c89f6bf694c4b0031c0e851800000e968feffff0f1f400031c0ba01000000ebcb0f1f8000000000488d9540ffffff89cebf01000000898d00ffffffe8ff36fdff85c08b8d00ffffff750df68559ffffff080f85acfdffff89cfe821f0ffff48c7c0d0ffffff64c70002000000e99bfdffff488b4308483985e8feffff48898500ffffff0f8416fdffff488b43104889a5e0feffffbf3e4c4b00488985e8feffff488b0528e32500480305e90c26004883c00f4883e0f04829c431c0e89f7f0000488b8510ffffff488b004885c00f8411010000488b8d00ffffff483b48080f8500010000488d4c24014c8bbd10ffffff48899dd0feffff41bd010000004889e34c89b5c8feffff48898d38ffffff90488b5020488b70184889dfe810abfbff488b15b1e225004989c44885d20f84870000004489e84531f64d89fd4189c790498b450042837cb02801745c4c89f04c89e748c1e00448030583e22500488b5008488b30e8c7aafbff4839c30f84ee000000483b8538ffffff0f84d1000000c640ff004585ffb82b4c4b00bfd9c64b00480f44f84889de31c0e8727f0000488b1533e225004531ff4983c6014939d6728f4489f84d89ef4189c54983c708498b074885c07411488b8d00ffffff483b48080f8439ffffff488b9dd0feffff4c8bb5c8feffff4883bde8feffff000f84b4000000488b85e8feffff803800751d488b05a2e12500ba2f4c4b00488b004885c0480f45d0488995e8feffff488b95e8feffff488bb500ffffffbf4c4c4b0031c0e8da7e0000488b8500ffffff488ba5e0feffff488985e8feffffe950fbffff803b2f0f8526ffffff0f1f8000000000c60000e91bffffff4531ede9b9fcffff488b85d8feffff8b500885d27541483da09f6c000f84cdfcffff483dd09f6c000f84c1fcffff48c700ffffffffb8ffffffffe957fcffff488bb500ffffffbf614c4b0031c0e8567e0000e977ffffff488b38e85921fbff488b85d8feffffebae4489ffe8a8edffffe97afcffff0f1f005531c04889e541574156415541544989cf534889f3be000008004883ec2848897db88955c8448945b4e88234fdff83f8ff4189c40f840b02000048c7c0d0ffffff4531ed41be4003000064c70000000000488d430848c70300000000488945c0488b45c04c89f24489e74c29ea4a8d3428e89a34fdff4885c00f8e310400004803034883f83f4989c548890376d24983fd3f0f8e78030000488b7dc0ba08000000be70534b00e8c543f9ff85c00f85850300000fb6431084c00f85a1010000488d7b11ba07000000be79534b00e89e43f9ff85c00f8594010000837b1c010f85dc03000066837b1a3e0f85350200000fb743188d50fe6683fa010f87ce0300006683f8020f84d203000066837b3e380f85eb0300000fb77b40488b7328488d04fd000000004989f849c1e0064929c0498d04304d89c64c39e80f8789010000480375c0488975c84889f04901c04c39c00f83ef0000004989c6eb280f1f440000488d14fd000000004889f84983c63848c1e0064829d0480345c84939c60f83c200000041833e0475d74d8b6e204983fd1f76cd49837e300376c6498b7608498d443500483b030f87b4020000488b45c04c8d3c30eb39662e0f1f840000000000418b17418b47044883c2034883c0034883e2fc4883e0fc488d44020c498d55e04839d00f87a70100004929c54901c7ba10000000be60534b004c89ffe86f42f9ff85c075bb4d85ed0f8482010000410fb64714410fb65718c1e00801d0410fb6571cc1e00801d0418b571085d20f85f10000008b15a711260085d2740839d00f87df000000488d65d84489e05b415c415d415e415f5dc3660f1f840000000000807b0f0375083c020f8651feffff817b087f454c460f85a1020000807b0c020f859b00000066837b1a3e0f85940000004531ed807b0d0141b9b84d4b000f84fd000000807db4000f859b000000488b55b86a004531c06a0031c94489e64489efe8ebf1ffff0f1f00498d401e31d24489e74883e0f04829c44c8d6c240f4983e5f04c896dc8e8d665fdff4c89f24c89ee4489e7e81832fdff4939c60f85970100000fb77b40488d04fd000000004989f849c1e0064929c0488b45c8e92afeffff41c607014489e741bcffffffffe86eeaffff48c7c0d0ffffff64c70002000000e900ffffff0f1f004c8b7db84c894dc84c89ffe88876fbff488d50014883c01f4c89fe4883e0f04829c4488d7c240f4883e7f0e83800fcff4c89ff4889c3e8bd1dfbff48895db84c8b4dc8e91dffffff0fb77b40e9c7fdffff0f1f8000000000807b0e0141b9e84d4b000f85f3feffff0fb6430f3c030f95c284c0740e84d241b9cc4b4b000f85d8feffff0fb6431084c074103c020f873301000084d20f852b010000488d7b11ba07000000be79534b004531ede87740f9ff41b91c4c4b0085c0b8014c4b004c0f45c8e994feffff9048c7c0d0ffffff41b9a34b4b0064448b28b8944b4b004585ed4c0f44c8e971feffff660f1f440000488b7dc0ba08000000be80534b00e82540f9ff85c00f8460fcffffe916feffff0f1f840000000000498d451e31d24489e74883e0f04829c44c8d44240f4983e0f04d89c7e83f64fdff4c89ea4c89fe4489e7e88130fdff4939c50f8457fdffff48c7c0d0ffffff41b9a34b4b0064448b28e9f5fdffff66904c8b2be9d6fbffff0f1f8400000000004531ed41b9204e4b00e9d5fdffff4531ed41b9504e4b00e9c7fdfffff745c8000000200f8521fcffff4531ed41b9784e4b00e9acfdffff660f1f8400000000004531ed41b9a04e4b00e995fdffff4531ed41b9e44b4b00e987fdffff4531ed41b9b94b4b00e979fdffff660f1f440000554889e541574156415541544589cd5389f34d89c44881ec1801000089b524ffffff488b75204889bd38ffffff31ff48899500ffffff48898d30ffffffe84e69fdff488d9540ffffff89debf0100000048898518ffffffe8d42efdff85c00f8811080000488b8548ffffff4c8bbd40ffffff48898508ffffff488b4520488d04c048c1e004488b98c0b16c00488b8508ffffff4885db7515e9c30000000f1f00488b5b184885db0f84b3000000f683150300002075ea4c3bbb9803000075e1483b83a003000075d88bbd24ffffffe89de7ffff488bbd30ffffffe8311bfbff4c8b63384c8bad38ffffff4d85e4754a488bbd38ffffffe8b573fbff488d7819e86c17fbff4885c00f8510100000488bb538ffffffb9cd4c4b0031d2bf0c000000e80b6e00000f1f00498b4424084885c00f841a0600004989c4498b34244c89efe82b3ef9ff85c075df4889d8488d65d85b415c415d415e415f5dc30f1f440000f64510040f85980b0000f605970c2600400f85040a0000488b8518ffffff8b401885c00f84de04000083f8010f85480f0000c68523ffffff004c8b4d20448b45104c89e1488bb538ffffff488bbd30ffffff4489eae8864800004885c04889c30f84aa090000488bbd00ffffff488b4720488983a80200004889f80fb77f186689bde0feffff4889c70fb74040488b7728488d14c5000000004989c4668983b002000049c1e4064929d4498d1434483b170f87c90400004c8d6c3708488d14404889a5f0feffff4d01ec48c1e2044883c21681e2f0ffff004829d4488d54240748c1ea034d39e5488d34d500000000488995e8feffff4889b5f8feffff0f83860b00004c89bdd8feffff4d89ec48c78510ffffff07000000c68528ffffff004531f64989f7eb53660f1f84000000000081fa51e574640f84fc01000081fa52e574640f84c801000083fa070f843f0100000f1f8000000000488d0cc5000000004889c24983c43848c1e2064829ca4c01ea4939d40f83d6010000418b142483fa06742d77ab83fa01743683fa0275c9498b54241048895310498b54242848c1ea04668993b2020000ebae660f1f440000498b542410488993a0020000eb9a6690488b1569ea2500498b7c2430488d4aff4885cf0f8557030000498b7424104d8b4c24084883ef014989f04d29c84985f80f85ea0300004f8d047648f7da4989f34921d34d8d560149c1e0044b8d3c074c891f4989f34d035c242049037424284c01d94c895f104821d14c21ca4983fa0148894f084889771848895720761e488b374b397407d8ba010000000fb6b528ffffff0f45f24088b528ffffff418b4c24044b8d3476ba406251734d89d648c1e60483e107c1e102d3fa83e20f4189543728e9d2feffff662e0f1f840000000000498b5424284885d20f84bafeffff48899328040000498b4424304885c048898330040000498b54241074074883e8014821d048898338040000498b44242048899318040000488983200400000fb6831403000083e0033c010f85b7060000e8ed760000488983480400000fb783b0020000e952feffff662e0f1f840000000000498b44241048898358040000498b442428488983600400000fb783b0020000e924feffff0f1f4000418b7424044889b510ffffffe90ffeffff0f1f80000000004d85f64c8bbdd8feffff0f84290900000fb785e0feffff83f8038985d4feffff0f857d070000488bbde8feffff488bb5f8feffff4b8d4476fd448b8524ffffffb90208000048c1e0044c8b14fd00000000488b440618448b24fd280000004c29d04c8995d8feffff4889c6488985e0feffff4889f84c89d748233dd9ed25004c8b0cc5200000004489e2e81135fdff4883f8ff488983400300004c8b95d8feffff0f8405010000488bbde0feffff488d14384c29d080bd28ffffff00488903488993480300000f8550070000808b15030000404c8b95f8feffff41f6c404740e498b4208480303488983500300004883bba0020000000f84a4070000498b4218498b4a104839c876374c8b03488b35cde725004c01c14901c04889f04c8d5c31ff48f7d84921c34d39d84d0f46d84c39d90f82040600004d39d80f87b70700004983c2304b8d047648c1e004480385f8feffff4939c20f83a7010000498b5208498b02458b62284839c20f866affffff4889d64d8b4a20448b8524ffffff4829c6480303b9120800004489e24c899528ffffff4889c7e80534fdff4883f8ff4c8b9528ffffff0f852effffff41b9a8504b004531e4eb32488b8518ffffffc7401801000000e80663fdff90c68523ffffff01e912fbffff660f1f8400000000004531e441b9b84f4b00488ba5f0feffff80bd23ffffff00ba00000000488b8d30ffffff480f459518ffffff8bb524ffffff4989d8ff75204489e752488b9538ffffffe8a9e8ffff660f1f840000000000498d44241e448bb524ffffff31d24883e0f04829c44489f74c8d6c240fe88e5cfdff4983e5f04c89e24489f74c89eee8cc28fdff4939c40f85190a00000fb783b0020000488d14c5000000004989c449c1e4064929d4e9e1faffff0f1f4400004531e441b9e84f4b00e94bffffff6690488bbd38ffffffe8546dfbff488d78194c8d7001e80711fbff4885c04989c50f8498f9ffff488bb538ffffff488d78184c89f2e8f8f6fbff49c7450800000000498945004889d841c74510000000004d896c2408488d65d85b415c415d415e415f5dc3488b5310488ba5f0feffff4885d20f843b0600004c8b034c01c24885d2488953100f841d060000488b02488d73404885c00f84aa000000bfffffff6f41bbfffdff6f41befffeff6f49bca0f1ff7f0300000041ba3100000041b921000070eb1e0f1f4400004c89c94829c14889c8488914c64883c210488b024885c074634883f82176ea4889f94829c14883f90f76d58d0c00d1f983f9fc760b4489d029c8488914c6ebcd4c89d94829c14883f90b0f874d03000048f7d8488d04c64a891420ebb0c68523ffffff0041b97b4c4b0031db48c7c0d0ffffff64448b20e90cfeffff4d85c07471488b43604885c074044c014008488b43584885c074044c014008488b43684885c074044c014008488b43704885c074044c014008488b43784885c074044c014008488b83f80000004885c074044c014008488b83c80100004885c074044c014008488b83980200004885c074044c014008488b83e00000004885c0740b48837808070f85a007000048837b78007412488b838800000048837808180f8507080000488b93300100004885d27428488b4208a8028983d80300007407488993c0000000a8047407488993f0000000a8080f85c6020000488b83700100004885c00f849b040000f6058304260040488b400889c18983d403000089c20f85ad05000083e1010f859e0200004883bb2801000000740b48c783b80000000000000083e240740e8b4510c1e81f84c00f859b070000488b83a00200004885c00f8493050000480303488983a00200008b0596e32500f7d048238510ffffffa8010f8534040000488b83180400004885c0740a480303488983180400008bbd24ffffffe854deffff85c00f850004000083bdd4feffff020f84ef0200004c8b034c89c0480383a8020000f605c303260040488983a80200000f850e0400004889dfe8863e0000f645100875614883bbc0000000007457488b9380030000488d83b80200004839027444488b83c8020000488918488b8378030000488bb380030000c783d002000001000000488d14c5f8ffffff488d7e08e86034f9ff488b8380030000488d93c8020000488910f683d4030000200f851101000048833d4203260000488b8508ffffff4c89bb98030000488983a00300000f85b7030000488b75204889dfe8933e00004889d8e947f6ffff48833d83022600000f853bf9ffffe85847f9ff85c00f858505000031ffe8297500004885c04889c60f847205000048890648894610bf02100000b89e0000000f0585c00f846e0400004889f2be010000004531e44889d7e8cf75000041b9e8114a00e92dfbffff0f1f400041b9d04e4b00e909fdffff488b5520488bb538ffffff31c0bfd8504b00e8be6c0000488bbd18ffffff8b471885c00f85e5f5ffffc7471801000000e8d05dfdffe9c5faffff4c89f14829c14883f90a0f8760fcffff48f7d848b900faff7f03000000488d04c648891408e946fcffff48891dba022600e9e3feffff41f6c4020f84ec0300004c89da31f64889cf4829ca4c8985d8feffff4c8995e8feffff4c899d28ffffffe84633f9ff4c8b9d28ffffff4c8b95e8feffff4c8b85d8feffffe9b3f9ffff48899300010000e92efdffff488b837001000048898300010000e94ffdfffff74510000000200f8437040000488bbdf8feffff488b85e8feffff4b8d5476fd48c1e204488b04c500000000488b5417184989fa4829c2480303488995e0feffff488983400300004801d00fb69315030000488983480300000fb68528ffffff83e2bf83f00183e001c1e00609d0888315030000e928f9ffff488bbde8feffff4b8d0c7648c1e104488b14fd08000000488bbdf8feffff488b740fd0488d3c104829d631d2e8332efdffe97af8ffff488bbd30ffffffe8020ffbff8bbd24ffffffe857dbffff31c0e92cf4fffff68314030000030f8404fdffffb900534b00ba5a050000bee94c4b00bf00514b00e8ba47f9ff662e0f1f840000000000488b8500ffffff498b4a20488b70284839f10f8744f8ffff0fb740404889cf49037a08498b124c8d04c50000000048c1e0064829d74c29c04801f04839c70f8218f8ffff488d04164829c8488983a0020000e905f8ffff4c89c64531c941b8ffffffff4c29deb9320000004489e24c89df4c899528ffffffe8832cfdff4883f8ff4c8b9528ffffff0f8512f8ffff41b9b24c4b00e979f8ffff4531e441b958504b00e9a2f8ffff8b93d4030000e9b5fbffff83bdd4feffff0375ec4531e441b9284f4b00e987f8ffff8b93d4030000e97efbffff41b9954c4b00e955faffff830dbacd250007488b7d18ff1538df250085c04189c40f84b0fbffff41b9784f4b00e94af8ffff662e0f1f8400000000000fb78bb00200004883ec08488b531041b910000000be10000000bf30514b00516a10b910000000ffb3a00200006a10506a1031c0ffb5e0feffffe8b16900004883c440e9aafbffff488b83b00000004885c00f8439fcffff488b53684c8b63384c8b68084c036a084d85e4750ee921020000660f1f4400004989c4498b34244c89efe88930f9ff85c00f8402fcffff498b4424084885c075df4c89efe8af65fbff488d78194c8d7801e86209fbff4885c04989c60f84ef010000488d78184c89fa4c89eee857effbff49c746080000000049890641c74610000000004d89742408e9abfbffff89c681e616f7ffff0f8445faffffbf78524a0031c0e8f06800008b93d403000089d1e92cfaffff488b8500ffffff0fb74040488d14c50000000048c1e0064829d04889c74989c4e8de08fbff4885c00f84bf0100004c89e24c89ee4889c7e8d7eefbff808b1403000080488983a0020000e928faffff488b05bdf925004883c001488905b2f92500488983480400000fb783b0020000e9d7f2ffff4821c84489e24c899dc8feffff83ca024889c74c8985d8feffff4c8995e8feffff48898d28ffffffe8222bfdff85c0488b8d28ffffff4c8b95e8feffff4c8b85d8feffff4c8b9dc8feffff0f88840000004c89da4889cf31f64829ca4c8985c8feffff4c8995d8feffff4c899de8feffff48898d28ffffffe8022ff9ff488b352bdd2500488b8d28ffffff4489e24889f748f7df4821cfe8b32afdff4c8b9de8feffff4c8b95d8feffff4c8b85c8feffffe950f5ffff4531e441b9784e4b00e9f4f5ffff41bc0c00000041b920504b00e9e3f5ffff41b980504b00e9a1f5ffffb9d0524a00ba79000000be76514a00bf18524a00e82644f9ffb900534b00ba01040000bee94c4b00bf014d4b00e80d44f9ff4c89efe8b563fbff488d7819e86c07fbff4885c07514b9cd4c4b0031d24c89eebf0c000000e8135e0000b920534b00baab010000bee94c4b00bff34c4b00e8ca43f9ff41b9a34b4b00e943f7ffffb9d0524a00ba81000000be76514a00bf40524a00e8a643f9ff41b9f84e4b00e91ff7ffff488bbb40030000488bb3480300004829fee89529fdff488b7b388b471085c07505e8850afbff4531e480bb140300000041b9504f4b000f89fff4ffff488bbba00200004c898d28ffffffe85c0afbff4c8b8d28ffffffe9e0f4ffff415741564c8d7701415541544889f855534889fd4189f431db4883ec08448b2dc4c925000f1f40000fb650014c8d780180fa7b0f84f700000080fa4f4c89f90f850201000031f631c0eb090f1f44000084d2745c4883c0010fb614013a90164d4b0074ec4084f60f84e300000080fa7d75764883e9014883c0024585ed753b4885c074644883c301498d3c07be24000000e83a2df9ff4885c0758d4883c4084889d85b5d415c415d415e415fc30f1f004084f675334585ed74ca0fb6140184d2740f80fa2f740a4585e4741c80fa3a75174c39f174a94585e4740d8079fe3a749e0f1f80000000004531c04489e1ba1d4d4b004c89fe4889efe822daffff4885c00f857dffffff4531c04489e1ba264d4b004c89fe4889efe803daffff4885c00f8462ffffffe959ffffff0f1f4400000fb65002488d480280fa4f7537be01000000e900ffffff31c00f1f800000000084d20f8422ffffff80fa2f0f8419ffffff80fa3a75824585e40f850bffffffe974ffffff31c0e9f2feffff0f1f440000415741564531f6415541544989d455534189cd4d89e74889f54883ec38488954241048897c242048897424080fb616eb150f1f800000000084d20f84da0000004989cc4889dd80fa2474354585ed41881424498d4c2401488d5d010fb6550174d780fa3a75d24584f60f85b10100004989cf4889c84c89f94989c7ebc30f1f00448b1de1c72500488d5d01488b7c2408ba164d4b004489e94889de4589d844895c2418e8f8d8ffff4885c04889c20f848c000000448b5c2418488b4424204531f64585db488bb0380300000f85ef000000488d46ff4883f8fd0f86c10000004883fa010f86e70000004801d30fb60384c074244585ed0f94c20f1f80000000003c3a750884d20f84dc0000004883c3010fb60384c075e94c89f94584f60f8533010000c60100488b4424104883c4385b5d415c415d415e415fc3660f1f440000488b7c24084531c0ba1d4d4b004889de4489e9e848d8ffff4885c04889c2488b3593f925000f8566ffffff488b7c24084531c0ba264d4b004489e94889dee81dd8ffff4885c04889c27445be2a4d4b00488d46ff4883f8fd0f8741ffffff66904c89e74889542418e8332af9ff488b5424184889c14801d30fb613e978fefffff6801403000003410f94c6e901ffffff41c6042424498d4c24010fb65501e955feffff0f1f4400004585ed74234c3b7c2410751c0fb6530184d274144883c3014c89f9e96afeffff0f1f8400000000004c89f9ba3a000000e923feffff0f1f004889ce4c89ff8854242f4c29fe48894c241841be00000000e853d8ffff488b4c241884c00fb654242f490f44cf4c0f45f9e91cfeffff4889ce4c89ff48894c24084c29fee827d8ffff488b4c240884c0490f44cfe9aafeffff0f1f8000000000415741564155415455534889f531db4883ec4848897c24384889542408894c241c4c894424304c894c24100f1f440000488b742408488d7c2438e8e1d700004885c04989c70f846303000041803f000f856b0200008b54241c4531ed4531f685d275664c8b257ef825004d85e47512eb6f0f1f80000000004d8b24244d85e4745f4d3b6c242075f0498b7424184c89ea4c89ffe8e828f9ff85c075dc4885db741f4c396500742231c0eb0c0f1f4400004c3964c50074124883c0014839c375f04c8964dd004883c3014c89f7e87f05fbffe95affffff662e0f1f84000000000048837c2410000f84b4020000488b7c2410e8fa5dfbff4883c0014889442420488b0502c52500488d148528000000498d7c150148037c24204889542428e88e01fbff4885c04989c4488b5424280f840f040000488d3c104c89fe4c89ea48897818e81a8dfbff4c3b2d7bee2500c600004d896c242076074c892d6aee250031f641803f2f488b159dc42500400f95c601f64885d20f84f9000000498d44242883e00f48c1e80248f7d883e0034839d0480f47c24883fa060f872c0200004889d04883f80141897424280f84070300004883f802418974242c0f84ed0200004883f80341897424300f84d30200004883f80441897424340f84b90200004883f80641897424380f859f020000418974243c41b8060000004839d074784989d24c8d4aff4929c2498d7afc4929c148c1ef024883c7014983f9024c8d1cbd000000007630897424284d8d4c842831c0660f6e4c2428660f70c1004883c0014983c110410f2941f04839f872ee4d01d84d39d37421498d400143897484284839c27613498d4002438974842c4839c276054389748430488b4424304989442408488b4424104885c00f84f1010000498d7c9529488b5424204889c64c01e7e820e6fbff4989442410488b053cf625004c892535f6250049890424e904feffff0f1f4000be240000004c89ffe80327f9ff4885c00f85040100004c89ffe8c25bfbff4989c64d85f60f8446fdffff4c89f7e8fe5bfbff4885c00f84cefdffff4883f801762c41807c06ff2f488d50ff741ae9af010000660f1f44000041807c16ff2f488d42ff75304889c24883fa0175eb410fb6063c2f751a8b44241c85c00f8588fdffff4d89f741bd01000000e914fdffffba010000008b4c241c4c8d6a0141c604162f4d89f785c90f84f7fcffff4983fd160f85a7010000ba160000004c89f6bfc0534b00e8f825f9ff85c00f8539fdffff4d89f7e9cbfcffff0f1f84000000000048c744242000000000e951fdffff48c744dd00000000004883c4484889e85b5d415c415d415e415fc34885c00f85cefdffff4531c0e921feffffbe010000004889c7e819f8ffff4885c04989c50f84e3feffff4c89ffe8f55afbff4989c4488b842480000000488bb8380300004885ff0f84ba0000004883ffff0f84a9000000e8cb5afbff48833d13f4250014ba14000000480f431506f425004839c2480f43c24883e804490fafc54a8d7c2001e85dfefaff4885c00f84d4fbffff488bbc2480000000b9010000004889c24c89fee80cf9ffff4989c6e965feffff49c744241000000000e91bfeffff41b805000000e961fdffff41b804000000e956fdffff41b803000000e94bfdffff41b802000000e940fdffff41b801000000e935fdffff4889c2e98bfeffff31c0e955ffffff488b4008803800752be882680000488b8c2480000000488d50ff4883fafd4889813803000077d24889c7e8f159fbffe921ffffffb940534b00ba86010000bee94c4b00bf98514b00e8233af9ff4983fd1a7532ba1a0000004c89f6bfd7534b00e84b24f9ff85c00f858cfbffffe94efeffffb9c0514b0031d231f6bf0c000000e81b5400004983fd05751fba050000004c89f6bff2534b00e81324f9ff85c00f8554fbffffe916feffff4983fd090f8545fbffffba090000004c89f6bff8534b00e8ea23f9ff85c00f852bfbffffe9edfdffff0f1f00662e0f1f8400000000004863d2488b44d7404885c00f84e7000000415741564155415455534889fd4883ec08488b5768488b7808488b0517f32500488b5d0848037a084885c00f85ee0000004989cd4989f4e8a358fbff4885c04989c60f84980100000fb60031c94c89f284c00f849f0000000f1f80000000003c3a0f94c04883c2010fb6c04801c10fb60284c075ea488d3ccd10000000e86dfcfaff4885c04989c70f84370100004883ec0831c9ba96604b00554989d94d89e84889c64c89f7e894f9ffff4c89f7e8dcfffaff49833f00585a0f84d00000004d893c2441c744240801000000b8010000004883c4085b5d415c415d415e415fc30f1f800000000048c706ffffffff31c0c3660f1f4400004c89f7e890fffaff49c70424ffffffff4883c40831c05b5d415c415d415e415fc30f1f8000000000448b0501bf25004585c00f8502ffffff440fb6130fb610660f1f8400000000004438d275624584d2746e4989d9eb059084d274644883c0014983c1010fb610450fb6014438c274e84584c0743f0f1f000fb61084d20f84b7feffff4883c00180fa3a75ec0fb61084d275b5e9a2feffff4c89ffe8f8fefaff49c70424ffffffff31c0e92bffffff4589d0ebbc84d2740880fa3a75bb0f1f0048c706ffffffff31c0e90cffffff4c89f7e8c2fefaffb9c0514b0031d231f6bf0c000000e8cf510000b9e8514b00ebeb0f1f84000000000055b9b09f6c00bab89f6c004889e54157415641554154534883ec3848897da8488b356af02500488b3d9bf02500e85e490000bf2800000048890522be2500e8bdfafaff4885c0488905f3bd25000f84610200004989c6488b05fbbd250048bacdcccccccccccccc488945c048c1e002488945b84883c04f48f7e248c1ea05488d1c924889df48c1e705e872fafaff4885c04989060f8446020000488d34dd000000004d89f748837dc0004c8d702848890583f0250048c740083f4d4b0048c740100000000048c74018c0534b00488d5c300848c7402016000000498d46d8c70560bd250000000000488975b041bca0534b0041bdd7534b00488945c8740e488b55b831f64c89f7e8e420f9ff4981fcb8534b00746b488d43f8488b4db04983c7084983c408498946d8498907498b042448c7033f4d4b004901ce48c74308000000004c896b10488943184801cb41807d002f498d4405010f856a01000048837dc0004989c5498d46d8488945c8758f4981fcb8534b00759d0f1f84000000000048837da800488b45c848c70584e625001a00000049c747080000000048c700000000007409488b45a8803800752248c705b7bc2500ffffffff488d65d85b415c415d415e415f5dc30f1f8400000000004889c74889c3e86555fbff488d50014883c01f4889de4883e0f04829c4488d7c240f4883e7f0e815dffbff4889c30fb60084c00f84a40000004889dab9010000000f1f800000000083e83a3c020f92c04883c2010fb6c04801c10fb60284c075e7488d3ccd08000000e8c2f8faff4885c048890528bc25000f84920000004883ec088b0de0bb25004531c96a00ba6b4d4b004889df41b898514a004889c6e8ddf5ffff488b3df6bb2500585a48833f007419c705ecbb250000000000488d65d85b415c415d415e415f5dc3e800fcfaff48c705c5bb2500ffffffffebd5bf10000000eb85b910524b0031d231f6bf0c000000e8f94e0000b9e8524b00baea020000bee94c4b00bf524d4b00e8b034f9ffb9c0514b00ebd2660f1f840000000000415741564155415455534881ecb80300004d85c9894c24080f88c50900004c3b0d3bcd25004c89cd0f83ce0900004b8d04c94989fc4889f34189d64589c548c1e0044c8bb8c0b16c004d85ff7517e9bd0000000f1f4400004d8b7f184d85ff0f84ab000000410fb6871503000089c2c0e805d0ea09d0a80175de4c89fe4889dfe86b59000085c00f859301000041f687150300000175c1498b87b00000004885c074b5498b5768488b70084889df48037208e8591ef9ff85c0759d498b6f384885ed751ce9590700000f1f8000000000488b45084885c00f844b0100004889c5488b75004889dfe8241ef9ff85c075e041808f15030000014c89f84881c4b80300005b5d415c415d415e415fc30f1f004d85e4410f95c7f6058aec250040743a4584ff7435498b4c24084d8b4424308039000f842203000041f7c500000010b830524b00bf58524b00480f44f84889ea4889de31c0e896560000be2f0000004889dfc644244f00e8c41df9ff4885c00f84ac0100004d85e47416be240000004889dfe8a91df9ff4885c00f854a0400004889dfe86852fbff4885c048894424500f84db0000004c8d7c2460488d4c244f41b8010000004489ea4889c74c89fee8acd8ffff83f8ff89c60f84a800000041f7c500000010b8000000004c0f45e0488b055ab925004883ec084589f14d89e04c89fa4889df488944246055488d442468504155488b4c2470e892ddffff4883c420e9e4feffff660f1f8400000000004c89f8e9d3feffff4889dfe82052fbff488d78194c8d6801e8d3f5faff4885c04989c40f84f3050000488d78184c89ea4889dee8c8dbfbff49c7442408000000004989042441c7442410000000004c896508e979feffff488b7c2450e82ff9faff41f7c500000010b8000000004c0f45e08b44240885c00f84a1010000f60505eb2500080f85940100004889dfe84e51fbff4885c04989c20f84ab0600004989e94589e84c89e14489f24889de4889c74889442408e8062700004885c04989c74c8b5424080f847e06000080881503000002808814030000044889c748c7800803000004544b00c780ec020000010000004889eee8172600004c89f8e9dafdffff4889dfe82751fbff4883c001f60574ea25000148894424100f85110500004d85e40f842d0100004983bc2428010000000f841e01000048833d21b82500ff0f84e30100004d85e40f84640500004883ec08b9d09f6c004489ea488d4424574889df506a024154488b7424304c8d8c24800000004c8d442470e8d2d0ffff4883c42083f8ff89c6755c4584ff7457498b8424a80300004d8dbc24a80300004883f8ff0f84890100004885c00f844f0500004883ec084c89f9488d442457506a0441544c8d8c24800000004c8d442470488b7424304489ea4889dfe871d0ffff4883c42089c683feff0f8443010000f60593e92500010f854c04000041f7c500000010b8000000004c0f45e083feff0f845dfeffff4c8d7c2460e9a1fdffff807c244f000f84af030000b9984d4b0031d24889de31ffe8764a0000488b05d7b62500b92f4c4b00488b004885c0480f45c8e9c3fcffff488b05f4c825004d85e448894424180f84d502000031c044887c2437448974242048896c24284189c74c8b7424104c89e5eb5c0f1f8400000000004883ec084c89d94489ea488d4424574c89f64889df506a0441544c8d8c24800000004c8d442470e894cfffff4883c42083f8ff0f852803000048396c24180f94c04109c7488badd80200004885ed0f8440020000488b85180300004c8d9d180300004883f8ff74dc4885c075934c89deb98a4d4b00ba0f0000004889ef4c895c2438e8d9f5ffff84c04c8b5c243874b4e96bffffff0f1f004d85e40f855dfeffff41f7c50000000448c7442450000000000f85e10300008b1583e8250085d20f85640100004889dfe8139000004885c048894424180f844e0100004d85e44c89e0480f4405d7c72500f680d5030000080f85c80000004c8d7c2460488b7c2418488d4c244f4489ea4c89fee8e0c9ffff83f8ff89c60f8404010000488b4424184889442450e934feffff31f64889c7e87cebffff4885c04989c70f84a0fbffff4889dfe8584efbff498bbc243803000048894424104885ff0f84920200004883ffff0f8468020000e8334efbff48833d7be7250014ba14000000480f43156ee725004839c2480f43c24883e8044c0faff8488b442410498d7c0701e8c0f1faff4885c00f840203000031c94889c24889de4c89e7e877ecffffe92afbffff4c8b7c2418ba16000000bec0534b004c89ffe85b18f9ff85c07446ba1a000000bed7534b004c89ffe84518f9ff85c07430ba05000000bef2534b004c89ffe82f18f9ff85c0741aba09000000bef8534b004c89ffe81918f9ff85c00f85d7feffff488b7c2418e8d7f4faff4d85e44c89e00f8416020000f680d503000008beffffffff0f8517fdffff48833d51b42500ffbeffffffff0f8404fdffff4883ec08b9a09f6c004889df488d542457526a404489ea50488b7424304c8d8c24800000004c8d442470e837cdffff4883c42089c6e9cafcffff4489f8448b742420440fb67c243784c0488b6c24280f8528010000488b4c24184885c90f84eafbffff0fb681140300008844242083e0033c020f84d4fbffff488b81180300004c8d91180300004883f8ff0f84bcfbffff4885c00f84fa010000488b4424184d85e44c89d14889df490f45c44883ec08488d542457526a044489ea50488b7424304c8d8c24800000004c8d442470e893ccffff4883c42083f8ff89c60f8522fcffffe966fbffff0f1f800000000048c7c0d0ffffffb9b8524b0031d24889de648b38e8bf46000089c6448b742420488b6c2428e9ecfbffff4889dfe8264cfbff488d7819e8ddeffaff4885c00f858e010000b9cd4c4b0031d24889debf0c000000e8804600004889ea4889debf90524b0031c0e88e4f0000e9d8faffffbffb624b0031c089742410e8794f00008b742410e99bfbffff31c0e996fdffff48833df1b22500ff0f85d9faffffe914fbffff660f1f440000498b4424088038000f85d7000000e80d5a0000488d50ff49898424380300004883fafd77bb4889c7e8834bfbffe94bfdffff4883ec08b9d09f6c00488d442457506a02ff3587c425004c8d8c24800000004c8d442470e9f4faffff488d44ed0048c1e004488b80c0b16c004885c00f84e3fdffffe9ccfdffff0f1f8000000000b9904d4b00ba1d0000004c89fe4c89e7e8dbf1ffff84c00f8414fcffffe98ffaffff660f1f4400008b0dfab1250085c90f8583fdffffe90cfcffff48c744245000000000e918f9ffff4c89d7e83ff2faffb9d04e4b0031d24889debf0c000000e84b450000b940534b00ba86010000bee94c4b00bf98514b00e8022bf9ff4889cf4c89d6b98a4d4b00ba0f0000004c89542420e858f1ffff84c04c8b5424200f8492f9ffffe9dafdffffb920534b00baab010000bee94c4b00bff34c4b00e8bd2af9ffb9d8524b00ba95080000bee94c4b00bf6e4d4b00e8a42af9ffb9d8524b00ba96080000bee94c4b00bf784d4b00e88b2af9ff90662e0f1f840000000000415741564989f7415541544189d455534883ec2884d248893c248854240f0f85cc010000448b6e084889f84983c5014531f649c1e5044d01fd4883b828010000000f84d9020000488b2d12b125004883fdff0f84b30000004584e4756b4489f3eb2e660f1f440000488b70184883ea014c89efe82879fbffc60000c74318000000004c8d680148837d00004489f3747b4883c508488b45f848c1e3044c01fb4183c6014c896b10488b50204883fa0177b74883fa01498d450119d283c22f41885500ebb40f1f4000418b4708498b0fbe020000008d5001eb090f1f800000000089c24883c508488b45f84889f74883782002480f4378208d42014801f948837d000075dc4189570849890f488b0424488b98a80300004883fbff0f84a00000004885db74734584e40f85a20100004489f5eb2c0f1f440000488b70184883ea014c89efe85878fbffc60000c74518000000004c8d680148833b004489f574614883c308488b43f848c1e5044c01fd4183c6014c896d10488b50204883fa0177b84883fa01498d450119d283c22f41885500ebb50f1f440000488db0a8030000b9904d4b00ba1d0000004889c7e83fefffff84c00f85ed0300000f1f8000000000488b0424f680d50300000874434584e4740f418b47084883c00148c1e0044901074883c4285b5d415c415d415e415fc3c746080000000048c706000000004531ed4889f8e922feffff0f1f8000000000488b2d19af25004883fdff74b04584e4747b418b4708498b0fbe020000008d5001eb070f1f44000089c24883c508488b45f84889f74883782002480f4378208d42014801f948837d000075dc4189570849890fe96affffff0f1f840000000000488b70184883ea014c89efe82077fbffc600004183c601c743180000000048837d00004c8d68010f8444ffffff4883c508488b45f84489f348c1e3044c01fb488b50204c896b104883fa0177b34883fa01498d450119d283c22f41885500ebb0418b4708498b0fbe020000008d5001eb090f1f800000000089c24883c308488b43f84889f74883782002480f4378208d42014801f948833b0075dd4189570849890fe9a9feffff660f1f8400000000004989c1bb020000000f1f840000000000498ba9180300004883fdff0f84bf0000004885ed0f8486000000807c240f000f85830100004489f1eb42660f1f440000488b70184883ea014c89ef48894c24184c894c2410e82676fbff4c8b4c2410488b4c2418c60000c74118000000004c8d680148837d00004489f174644883c508488b45f848c1e1044c01f94183c6014c896910488b50204883fa0177a34883fa01498d450119d283c22f41885500ebb4498db1180300004c89cfb98a4d4b00ba0f0000004c894c2410e802edffff84c04c8b4c24100f85c50100000f1f4400004d8b89d80200004d85c90f8520ffffff488b342448837e30000f8528fcffff488b2d2abf25004885ed0f8418fcffff0fb6851403000083e0033c020f8406fcffff4839ee0f84fdfbffff488b9d180300004883fbff0f84ecfbffff4885db0f840b0100004584e40f85bb0000004489f0eb2b488b71184883ea014c89efe81e75fbffc60000c74518000000004c8d680148833b004489f00f84aafbffff4883c308488b4bf848c1e004498d2c074183c601488b51204c896d104883fa0177b34883fa01498d450119d283c22f41885500ebb0660f1f440000418b4708498b0f8d5001eb060f1f400089c24883c508488b45f84889de4883782002480f4370208d42014801f148837d000075dc4d8b89d80200004189570849890f4d85c90f850dfeffffe9e8feffff418b4708498b0fbe020000008d5001eb090f1f800000000089c24883c308488b43f84889f74883782002480f4378208d42014801f948833b0075dd4189570849890fe9d8faffff488db518030000b98a4d4b00ba0f0000004889efe868ebffff84c00f84b7faffff488b9d180300004883fbff0f84a6faffffe9befeffff488b0424488b98a80300004883fbff0f8405fcffffe965fbffff498ba9180300004883fdff0f842ffeffffe974fdffff662e0f1f8400000000004155415455534883ec08410fb641044c8b64244083e00f498379080075083c060f85010100004531d2664183790600410f94c24585c20f85eb00000041b867040000410fa3c00f83db0000004889f04c89cb4189cd4939c14889d54889fe7418418b0148034424384889c7e8a00ef9ff85c00f85af0000004885ed498b842430030000745b4885c00f84ca0000008b542430440fb72c504c89e825ff7f0000488d1440498b8424e0020000488d04d0448b6008443b6508747f8b450c85c075674585e47562664585ed785c4883c4084889d85b5d415c415dc30f1f80000000004885c074e68b5424304489e9c1e11ec1f91f83c1030fb7045089c281e2ff7f000039d17fc66685c0781d488b442450488b4c24508b008d500185c089117508488b4424484889184883c40831c05b5d415c415dc30f1f4000488b7500488b38e8cc0df9ff85c00f856dffffffe97affffff0f1f8000000000488b7d104885ff0f8466ffffff4c89e6e88348000085c00f8456ffffffb958564b00ba80000000be08544b00bfd0544b00e81223f9ff669041574156415541544989f455534881ec88000000458b690848893c24488954244848894c24084c89442428488bac24c00000004c8bbc24d80000008b8424e00000004889f74d8b3148c1ef0683e63f4c8964241048897c24188974242083e002894424444189c4660f1f840000000000498b04ee488b58284c39fb0f84e70000004585e4740df68314030000030f84d5000000f68315030000200f85c8000000f60571db2500080f85e30000008b93ec02000085d20f84ad000000488b4370c74424740000000048c744247800000000488b40084889442438488b4368488b40084889442430488b83f80200004885c00f84f20000008b4c2418238bf0020000488b742410488b04c88b8bf402000048d3ee4889f14889c648d3ee0fb64c242048d3e84821f0a8010f850a060000b8010000004883bc24c800000000742a84c07426488b8424c8000000488b78104885ff74154889dee80547000085c00f85420800000f1f4400004883c5014939ed0f87fbfeffff31db4881c48800000089d85b5d415c415d415e415fc30f1f440000488b5308488b4b30803a00741b488b3424bf20554b0031c0e8b3440000e9fbfeffff660f1f440000488b05e9a72500488b3424ba2f4c4b00bf20554b00488b004885c0480f45d031c0e882440000e9cafeffff0f1f440000488b442448b9ffffffff488b004839c80f842f08000089d131d248f7f1488d049500000000488b9308030000448b14024585d20f840dffffff4c8974245044896424584589d64c89bc24d80000004c896c24604c8b6424384889ac24c0000000448bbc24d00000004c8b6c2430eb1d660f1f840000000000488b8300030000448b34a84585f60f84bb0500004883ec084489f54489f9488d7c247c488d446d00574d8d0cc4488db42488000000565341554156448b842410010000488b9424f8000000488b742438488b7c2430e8b6fbffff4883c4304885c0749d4589f2448b6424584c8b742450488bac24c00000004c8bbc24d80000004989c04c8b6c24600f1f8400000000004883bc24e8000000000f8411030000410fb64004c0e8043c020f84710200003c0a0f84190100003c010f84f30000004585d20f94c0e909feffff660f1f440000488b4424184989df4c8b4424384b8d147f488b5c24484989ec488d04c048c1e004488b8018b26c0048c1e0024839c20f860a0500004489e731d2418b304889f848037424304c8b4c241049f7f74889f84889d131d248f77424208b4424444883c2014889d748c1e70585c00f84120200004889c848c1e0054c01c8eb120f1f004801d14801f84939cf0f8668040000488378080075ea48897008488b74240844892048897010488bb424e800000048897018488b442418ba00000000488d04c048c1e00448838018b26c00014885d274114c890424488db8e0b16c00ffd24c8b0424488b442428488958084c8900bb01000000e94ffdffff0f1f840000000000488b43304c8b6424104889c64889442418b8000000004885c0741e488d3cf64c8944241048c1e7044881c7e0b16c00e8bc05b9ff4c8b442410488b4424184c8d2cc049c1e5044981c5c0b16c00498b45484d8b7d504885c048894424100f844d0500004c89e031d248895c244849f7f7498d47fe4c89fb4c894424384889c748894424204c89e04989d631d248f7f74c89e04883c2014889d54989d748c1e5054989ec4889c54d89f54d01fe49c1e5054c036c2410eb27660f1f84000000000049837d08000f8435feffff4d01e54939de4b8d043e0f83f50000004989c6418b45004839c575d9498b7d08488b3424e85c08f9ff85c075d38b5424444c8b442438488b5c244885d20f845a040000488b442428488958084c8900b8000000004885c0bb010000000f841afcffff488b442418488d3cc048c1e7044881c7e0b16c00e8aa04b9ffe9fcfbffff0f1f4400008b0dfed6250085c90f8484feffff488b442428488338000f8582fdffff4c890048895808e976fdffff0f1f80000000004c29f94889c848c1e0054c01c8eb0c904801d14801f84939cf76e5488378080075ee448920488970084c894010488958180fb6831403000083e0033c020f85effdffff838bd403000008e9e3fdffff904929dee9cefeffff0f1f840000000000f68314030000030f85e2fcffff83bc24e0000000040f85d4fcffff488b53784885d20f84c7fcffff488b83800000004885c00f84b7fcffff488b40084885c00f84aafcffff48beabaaaaaaaaaaaaaa4c8b4a0848f7e64889d048c1e80485c00f848afcffff83e80148895c24584889ac24c0000000488d044049bb80000700100000004c894424684c89cb4489542460498d54c1184889d5eb1931c04883fe060f84200300004883c3184839eb0f8448040000488b4b0889ce4883fe2477db4c89d848d3e883e0014883fe0575ce83c80231f609f083f80275cc48c1e920488b7424384c895c2450488d04498b3cc6488b342448037c2430e87306f9ff85c04c8b5c245075a0448b542460488b5c2458488bac24c00000004585d20f94c0e900faffff0f1f440000488b44241089d131d248f7f1488b83000300008b049085c00f84d8f9ffff488b93080300004c8974245044896424584889ac24c00000004889dd4c89bc24d80000004c896c24604c8d1c824c8b6424384c8b7c24104c8b6c24304d89deeb16660f1f8400000000004983c60483e2010f8502020000418b064889c24c31f848d1e875e54c89f0482b85080300004883ec08488d7c247c5748c1f80289c2488db4248800000089c3488d145256554d8d0cd4415550448b8424100100008b8c2400010000488b9424f8000000488b742438488b7c2430e85ef6ffff4883c4304885c00f85bf020000418b16e979ffffff4c29f9e972fbffff4c8b742450448b642458488bac24c00000004c8bbc24d80000004c8b6c2460837c2474010f85d5f8ffff4c8b4424784d85c00f84c7f8ffff4531d2e981faffff498d7f014c890424e854400000bf200000004889c64989c5e8a4e9faff4885c04989c60f848f020000498d45fe4d85ff4c8b042448894424200f8498000000488b7c241049c1e7054c8904244989c14901ff4889fe4c89fd660f1f840000000000488b7e084885ff7460448b3e31d24c8b56184c8b5e104c89f84d89f849f7f54c89f84889d131d249f7f14883c2014989d749c1e7054889c848c1e0054c01f0eb120f1f80000000004801d14c01f84939cd766d488378080075ee448900488978084c8958104c8950184883c6204839f5758e4c8b0424488b4424184c890424488b7c24104c8d3cc049c1e70441ff9720b26c004d89af10b26c004d89b708b26c0049c78720b26c0000e041004c897424104d89ef4c8b0424e9d8f9ffff0f1f004c29e9e96dffffff4d8b4510498b5d18e999fbffffbbffffffffe9c8f7ffff4889eb4c8b742450448b642458488bac24c00000004c8bbc24d80000004c8b6c2460e978feffffbe04000000e903fdffffbe1f000000bf200000004c890424e83de8faff4885c048894424100f84260100004989454849c745501f00000041bf1f00000049c7456000e0410048c74424201d0000004c8b0424e938f9ffff488b3c2431c00fb6374885f60f84920000000fb6470184c0747848c1e6044801c6488b04240fb6400284c0746548c1e6044801c6488b04240fb6400384c0745248c1e6044801c6488b04240fb6400484c0743f48c1e6044801c6488b0424488d48050fb6400584c0742248c1e6044883c1014801f04889c681e6000000f048c1ee184831c60fb60184c075de81e6ffffff0f89d14889f031d248f7f1488d049500000000488b7c2448488937e92ff7ffff4189da4989c04889eb4c8b742450448b642458488bac24c00000004c8bbc24d80000004c8b6c2460e9e5f7ffff4c8b442468488b5c2458448b542460488bac24c0000000e9d8f7ffffb8000000004885c07419488b442418488d3cc048c1e7044881c7e0b16c00e8d6feb8ffbf02000000be89514a0031c0e8653c0000bf7f000000e8dbe8fcff90662e0f1f840000000000554889e541574156415541544989d5534989f74d89c64881eca80000000fb6174889bd68ffffff48898d50ffffff44898d5cffffff4c8b651884d20f84b10200004889f9b8051500000f1f80000000004889c64883c10148c1e6054801f04801d00fb61184d275e889c048898560ffffffb8ffffffff4d85f648c745800000000048898578ffffff48c7458800000000740df74510faffffff0f85370a0000488b8550ffffff4d85e44c8b080f85ee0100004d85c948c78548ffffff000000000f8400020000488b8548ffffff488b9d50ffffffeb25662e0f1f8400000000004d85e4750885c00f857b0300004883c3084c8b0b31c04d85c9743c8bbd5cffffff8b75104c8d45804157498b4d00488d9578ffffff57488bbd68ffffff415456488bb560ffffff415650e861f3ffff4883c43085c07ea948837d80000f8484010000498b4d004885c9740b0fb6410583e0033c03745a4c8b4d8831db410fb691140300004c89c883e20380fa020f84160200008b88cc03000085c90f84800200008b1521cf2500f7c2040800000f856f010000488b558049895500488d65d85b415c415d415e415f5dc3660f1f44000083bd5cffffff010f8453020000488b8550ffffff48c745900000000048c74598000000004c8b084d85c90f847f02000083bd5cffffff04488b9548ffffff4889c34c89bd48ffffff448b7d100f948540ffffffeb150f1f004883c3084c8b0b4d85c97454498b4d0031d20fb6410483e00f3c01750e80bd40ffffff00b8040000007505b801000000488bb560ffffff488bbd68ffffff4c8d45906a005041544157415652488d9578ffffffe830f2ffff4883c43085c074a048837d90004c8bbd48ffffff0f84e50100004c3b7d980f84db010000498b45004c897d88488945804c89f84989c1bb01000000e9bcfeffff498b014c3b200f84b003000031d266904883c2014c3b24d075f648899548ffffffe900feffff498b45004885c0740b0fb64004c0e8043c0274094d85e40f849e02000049c745000000000031c0e9a9feffff48c78560ffffff05150000e96ffdffff83e2040f8488feffff488b480885dbba35544b0041b93f544b004c8b40304c0f45ca8039000f8402010000498b7708498b5730803e007516488b05f79a2500be2f4c4b00488b004885c0480f45f04883ec08ffb568ffffff31c0bfe0554b00e88a3700004d85f6585a0f84d9000000498b3631c0bfc6544b00e820380000488b4588e90afefffff64510010f84e0fdffff4d39cf0f842604000041f681d4030000080f85c9fdffff498b87c003000048898548ffffff4d8b87b80300004d85c00f84a4020000498b104885d20f849802000031c0eb1b0f1f8400000000008d50014889d0498b14d04885d20f84790200004c39ca75e8488b4588e972fdffffc780cc03000001000000e971fdffff4c3b7d880f84b003000048894d804c897d884d89f9bb01000000e92dfdffff488b05029a2500b92f4c4b00488b004885c0480f45c8e9e3feffff31c0bffb624b00e84a370000488b4588e934fdffff488b4588e92bfeffff4d85f60f848a0600004d85ff0f843e030000498b5f08488b8d68ffffff498b1683f8fe4d8b7e10b865694b0041bc14544b004c0f45e048c7459056544b0048c745a02a544b004889cf48894d98488955a848899568ffffff4c897db84c8965c848c745b05e544b0048c745c074544b00e87332fbff488b9568ffffff4c8d70124889d7e86032fbff4d8d7406154c89ffe85332fbff4d8d7406194c89e74c8d6590e84232fbff498d44061e4c8d75d04883e0f04829c44c8d7c240f4983e7f04c89f8660f1f440000498b34244889c74983c408e880fcf8ff4d39f475eb803b004889de7516488b05e4982500be2f4c4b00488b004885c0480f45f04c89f9ba8e544b0031ffe8ce2d000049c745000000000031c0e91afcfffff60521cb2500010f8555fdffff4d85ff0f8491020000498b5f084d85f60f84420200004d8b26b865694b0041be2a544b004d85e44c0f44e0488b8568ffffff4c8975a04c8965a848c745909f544b004889c748894598e87431fbff4c89f74989c7e86931fbff4d8d7407134c89e74c8d6590e85831fbff498d44061e4d8d7c24204883e0f04829c44c8d74240f4983e6f04c89f0498b34244889c74983c408e89bfbf8ff4d39fc75eb803b004889de7516488b05ff972500be2f4c4b00488b004885c0480f45f04c89f1bab2544b0031ffe8e92c0000e987fcffff48c78548ffffff00000000e95afaffff488b8548ffffff4885c00f845b0100008b08488d500885c9898d60ffffff742f4c3948080f8462fdffff83e9014883c010488d54ca08eb120f1f40004883c0084c3948f80f8442fdffff4839c275ed498b816804000048898540ffffff8b451083e004898558ffffff0f85f6020000b8000000004885c074154c898d48ffffffbf40b16c00ffd04c8b8d48ffffff498b4730488d04c048c1e004488b80c0b16c004885c0750feb120f1f4000488b40184885c074054c39c875f24885c0baffffffff7422498b816804000048398540ffffff0f84b000000031d248398540ffffff0f95c2f7dab8000000004885c07413899560ffffffbf40b16c00ffd08b9560ffffff448b8558ffffff4585c00f859503000083faff488b8d50ffffff0f8569fcffff8b4510488bbd68ffffff4c89fe448b8d5cffffff41544d89f04c89ea50e84ff8ffff5e5fe9e3f9ffffbb65694b00e9bcfcffff4c89f8e9a9f9ffff4d89f9bb01000000e985f9ffffc78560ffffff00000000e9d5feffff41be65694b004d89f4e9c5fdffff418b91d4030000f6c2080f85c7000000410fb6871403000083e0033c02741f83ca08418991d403000031d2e92effffff0f1f4000bb65694b00e969fdffff41f687d40300000875d7418b87c80300003b8560ffffff0f86830000008b9560ffffff498b87c00300004889d14c894cd008498b97c00300008d41018902f60531c82500407452498b4f084d8b47308039007516488b05ab952500b92f4c4b00488b004885c0480f45c8498b7108498b5130803e007516488b0588952500be2f4c4b00488b004885c0480f45f0bfa0554b0031c0e82532000031d2e980feffff85c00f84e300000001c0488d3cc508000000898548ffffff899538ffffff4c898d40ffffffe814d2faff4885c04889c14c8b8d40ffffff8b9538ffffff0f84fefeffff448b9560ffffff4531c04585d2744d448b8560ffffff488d780848898538ffffff498b87c00300004c898d30ffffff4a8d14c500000000488d70084c898540ffffffe8c4b7fbff4c8b8d30ffffff488b8d38ffffff4c8b8540ffffff8b8560ffffff4e894cc10883c0018901498bbfc00300008b8548ffffff49898fc00300004885ff418987c80300000f84cbfeffff4c898d60ffffffe87f3d00004c8b8d60ffffffe9b3feffffbf58000000c78548ffffff0a000000e919ffffff31c0648704251c00000083f802752164488b3c25100000004531d2ba01000000be810000004883c71cb8ca0000000f05b8000000004885c074234c898530ffffff4c898d38ffffffbf40b16c00ffd04c8b8530ffffff4c8b8d38ffffff498b8fb80300004c89c84989c14885c974344c39c1742f488b114885d274274839c20f849900000031d2eb0b660f1f4400004839f074658d72014889f2488b34f14885f675ec498b97c00300004885d20f8476fcffff48399548ffffff0f84a40000008b3a488d4a0885ff89bd60ffffff0f8455fcffff48394208741f8d77ff4883c210488d4cf1084839ca0f843afcffff4883c208483942f875ed488b8068040000e96efcffffb970564b00ba32030000be08544b00bf48554b00e8b10cf9ff488b8068040000e949fcffffb970564b00ba48030000be08544b00bf46544b00e88c0cf9ff64c704251c0000000100000083faff0f85cff8ffff498b8f80030000e95afcffff488b9548ffffff8bbd60ffffff8b0a39f90f86aefbffff4883c20889fe483b04f20f846effffff89fe83c60139f1760d89f7483904fa75f1e958ffffff898d60ffffffe97dfbffff0f1f00488b87980200004885c07454488b48088b118997ec0200008b41088b7104448d40ff4485c07566448987f00200004c8d411001c08b490c4829f2498d04804c8987f802000048898700030000488d0490898ff402000048898708030000c36690488b47604885c07422488b40088b104883c00848898708030000488d04908997ec02000048898700030000f3c350b948564b00bac8030000be08544b00bf18564b00e8790bf9ff660f1f8400000000005553b8000000004889fd4889f34883ec084885c07407bf00b16c00ffd0488d04db48c1e004488b90c0b16c004885d2750aeb6d0f1f4400004889c2488b42184885c075f44889552048896a18488d04db48c1e0048380c8b16c0001488b05c6a32500488985680400004883c001488905b4a32500b8000000004885c074124883c408bf00b16c005b5dffe00f1f4400004883c4085b5dc3660f1f8400000000004889a8c0b16c00eba30f1f8000000000415741564189d7415541544d89ce55534989f44889cd4883ec2848897c24084889f74489442418e8442afbff488d5001488db891040000be010000004989c54889542410e897d9faff4885c00f84bb0200004889c3488b5424104c89e648894328488d8070040000488dbb90040000488983c8020000488d837804000048894338e8bab3fbff488b7c24084901c5488983780400000fb68314030000c78388040000010000000fb60f84c94c0f45ef4183e70383e0fc4109c7f60509c32500014c896b084488bb140300000f844f010000488d83580300004889abd80200004c89733048c7837803000004000000488983800300004b8d04f648c1e004488b80c0b16c004885c00f84d30100004805b80200004885ed488983580300000f84cd010000ba01000000eb09660f1f4400004889c5488b85d80200004885c075f185d20f85e9000000488d93b80200004881c5b802000031c0f6442418087506489848c1e0034889ac035803000084c9488993880300004889d8884c24100f848c000000488b7c24084531e4e8e128fbff0fb64c24104989c5488d400148894424184989c680f92f7533e94b0100000f1f00498d767f4889c74c29eee831e6fcff4885c00f85b000000048c7c0d0ffffff4d89fc4989ee64833822751a498dae800000004c89e74889eee8a3d1faff4885c04989c775bb4c89e749c7c7ffffffffe8cccffaff4c89bb380300004889d84883c4285b5d415c415d415e415fc30f1f00c783cc03000001000000e9a2feffff90488b83580300004881c5b8020000488d93b80200004839c50f841efffffff6442418087473488b8358030000488d93b80200004889836003000031c0e9f3feffff0f1f800000000031f64c89ffe8cef2f8ff8078ff2f4889c77407488d7801c6002f488b542418488b742408e83f57fbffeb080f1f4400004889d08078ff2f488d50ff75f34939d7480f44d0c60200e940ffffff0f1f4000b801000000488d93b8020000e985feffff0f1f80000000004885ed743b31d2e947feffff0f1f40004889dde93fffffff4889c7e830cbfaff4885c04989c7740c4889c7eb8531c0e9fafeffff49c7c7ffffffffe9e4feffff488d93b80200004889d5e926feffff904883bf40040000ff0f84a2000000488bb730040000483b35ecbb25000f878e000000488b0dd7bb2500488b05008f25004829c8483dff08000076754c8b8738040000482d000900004c89c2480397280400004839d072594c29c14801c14829d031d248f7f6480fafc64829c1488b472848898f4004000048890d82bb2500f68014030000047511808f150300000431c0c30f1f80000000004883ec08ff15869f250031c04883c408c30f1f8000000000b8ffffffffc3662e0f1f8400000000004883ec084883bf40040000ff0f8498000000488bb730040000483b3528bb25000f8784000000488b0d13bb2500488b053c8e25004829c8483dff080000766b4c8b8738040000482d000900004c89c2480397280400004839d0724f4c29c14801c14829d031d248f7f6480fafc64829c1488b472848898f4004000048890dbeba2500f68014030000047515808f15030000044883c408c3660f1f8400000000004883c408ff25be9e2500488b7708b988564b0031d231ffe8442000000f1f400053488b972004000064488b042510000000482b8740040000488b9f28040000488bb7180400004829d34889c7e8ff54fbff4889da31f64889c75be931f0f8ff90488bb7580400004803374889fa488b054c9e25004889f74803b26004000048f7d84821c74821f04839c774194829f8534889d34889c6ba01000000e8c0ebfcff85c078035bf3c348c7c0d0ffffff488b7308b9805b4b0031d2648b38e89f1f00000f1f440000662e0f1f8400000000004863d25553488d04d289f34889fd4883ec38488d04424889e7488db400205b4b00e85aeff8ff81fbff000000773289da83e30f488b7508c1ea04c64002004889e183e20f31ff0fb692202b4b0088100fb693202b4b0088500131d2e8301f000089da4883c006c1ea1c0fb692202b4b008850fa89dac1ea1883e20f0fb692202b4b008850fb89dac1ea1483e20f0fb692202b4b008850fc89dac1ea1083e20f0fb692202b4b008850fd89dac1ea0c83e20f0fb692202b4b008850fe89dac1ea0883e20f0fb692202b4b008850ffe95cffffff0f1f4000662e0f1f840000000000f68714030000040f85c6020000554989fb4889e541574156415541544189d4534881ecd800000085c9898d1cffffff4889b540ffffff0f84d40400004589e54183e501f6053ebd2500200f859a0c00004983bbf00000000048c78510ffffff000000000f855a0b0000498b43684489eb83e3014983bbf800000000488b400848898548ffffff744284db743e498b4358488b5008488b42084885c00f85ff0800008b8d1cffffff4c895a088b059fb1250085c90f85a3120000f6c4100f84fe08000048c74210e0694700498b83880200004885c0741384db740f488b5008498b0348c7040280844700488d559031c0b9080000004889d7f348ab498b43784885c00f84090a0000488b4808498b8380000000498bb380010000488b400848894d904885f6488945987408488b7608488975a04c8d04014983bbe000000000743a498bb3f8000000498b7b50488b7608488b7f084c8d0c3e4d39c10f84b00600004585ed75094c39c60f8482080000488975b048897db844896dc84181e40000000248899550ffffff4889d74489a518ffffff4d89dc488b078b57184d8b2c244889c64803770885d24889b568ffffff0f84230100004531f631db4839f04889f7723be9a9000000660f1f8400000000004c89e94803084883fa070f8580030000498b9424e00300004885d20f859f0300004c01294883c0184839c77623488b700889f24883fa2575c74885db4989c675e34989c64889c34883c0184839c777dd4885db744b4c39f377468b8518ffffff85c07415e9b30500000f1f80000000004883c3184c39f37727837b082575f14c8b3b488b43104883c31849030424ffd04c39f34b89443d0076df660f1f44000048838550ffffff20488d7dd0488b8550ffffff4839f80f8574080000448b851cffffff4d89e34585c00f85a90f000041808b14030000044883bd10ffffff000f852b100000498bb3600400004885f60f85c3070000488d65d85b415c415d415e415f5df3c30f1f00498b5424704981fc00000000488b7a084889bd60ffffff488bbd50ffffff488b5710488d1452488d1cd074404d85ed0f84eb0400004839d87332660f1f4400008b50084c89e94803084883fa26740a4883fa080f85041300004c89ea480350104883c0184839c348891177d4498b8424c80100004885c00f84b309000048399d68ffffff488b400848898558ffffff0f8603ffffff4531db48c78520ffffff000000004c899d28ffffff4d89eb0f1f004c8b6b084589ee4983fe250f84d7030000488bbd58ffffff4c89e84d89da48c1e8204c03134983fe08498bb424e00200000fb71447488bbd60ffffff488d04404c8d3cc74c897d800f84ca0300004983fe260f84c00300004d85f60f84d7010000410fb64704c0e80484c00f84970300004d3bbc24f80300000f84190700004983fe070f849f0300004983fe100f8495030000498d46ef4883f801410f96c14983fe240f94c04109c14983fe05410fb6c10f84800300004531c94983fe06410f94c141c1e10281e2ff7f00004109c14d89bc24f8030000488d145245898c24000400004c8d04d64d85c0740f418b400885c0b8000000004c0f44c0418b3f488b8d40ffffff488d55804803bd48ffffff6a004c89e66a014c899d30ffffff4c899538ffffffe82ee8ffff488b558049898424080400004889c64c8b9d30ffffff4c8b9538ffffff4989942410040000595f31c04885d274170fb64a04488b420848030683e10f80f90a0f84290500004983fe250f87ff04000042ff24f5c0584b000f1f80000000004883bf00010000000f841efbffff4531edf60560b82500200f8422fbffffba65694b00498b7308803e000f84ca0a0000bf8d584b0031c04c899d68ffffffe87d2200004c8b9d68ffffffe9f1faffff904883fa240f85a50c000048894108498bb42490020000498b142448035608488911e96efcffff662e0f1f8400000000004889ce492bb424e8030000488d1472488911e94dfcffff660f1f840000000000488b4580488b401048034310498902904883c31848399d68ffffff0f87b7fdffff4d89dd4c8b9d28ffffff4d85db0f848cfcffff488b8520ffffff4939c30f877cfcffff4d89e74c89db4d89ec4989c5eb13660f1f4400004883c3184c39eb0f87e3040000488b430883f82575ea488bbd58ffffff48c1e8204c8b33498bb7e00200000fb70c47488bbd60ffffff488d0440488d14c7488955880fb64204c0e80484c00f84b7030000493b97f80300000f84540d000081e1ff7f000041c7870004000000000000498997f8030000488d04494c8d04c64d85c07410458b5808b8000000004585db4c0f44c08b3a488b8d40ffffff488d55884803bd48ffffff6a004531c96a014c89fee822e6ffff488b558849898708040000498997100400004159415a4885d274170f1f80000000000fb64a0483e10f80f90a0f842c0b0000488b4310490307ffd04b890434e906ffffff660f1f440000488b4580488b401048034310beffffffff4839f04189020f869bfeffffbe10574b00498b442468418b0fba76584b00bf020000004c899d38ffffff48034808488b05ca832500488b004885c0480f45d031c0e8d12100004c8b9d38ffffffe955feffff0f1f4400004883bd28ffffff000f84f202000048899d20ffffffe936feffff660f1f4400004c89e64c89fae945fdffff0f1f440000488b431049030424498902e910feffff4983fe05b8010000000f8580fcffff83c8024531c9e984fcffff660f1f440000498b042448034310488b134a89042a4883c3184939de0f8284faffff837b082575edebdc0f1f40004983bc2438020000000f853dfbffffe901fbffff0f1f40004829f84585ed488945984c8d04080f854af9ffffe93cf9ffff0f1f8000000000488b4d804885c90f84a30b0000488b8640040000488d78014889c24883ff010f86620c0000488b4310480341084829d04989420849c70260844700e950fdffff488b4d804885c90f8443fdffff488b8640040000488d78014889c24883ff010f86640c0000488b4310480341084829d0498902e918fdffff0f1f840000000000488b55804885d20f8403fdffff488b431048034208498902e9f3fcffff0f1f004885f60f84e7fcffff488b8648040000498902e9d8fcffff0f1f840000000000488b4310490304244c899d30ffffff4c899538ffffffffd04c8b9538ffffff4c8b9d30ffffff498902e9a2fcffff66904c8b6d804d85ed0f8493fcffff498b5510493957104889c6490f4657104c89d74c899d38ffffffe8b4a4fbff498b4710493945104c8b9d38ffffff77160f835dfcffff448b2d9eb425004585ed0f844dfcffffbe90574b00e9adfdffff0f1f004c29d0480343104863d04189024839d00f842afcffffbe50574b00e98afdffff490303498983e0030000488d4218498983e8030000e9e7f6ffff660f1f440000a840b9d06f4700b8b0754700480f45c148894210498b83880200004885c00f85f2f6ffffe900f7ffff0f1f80000000004801f848894598e97ef7ffff0f1f400031d24489ee4c89e7e813f5ffff0f1f004c89f8e9c8fcffff0f1f84000000000066837a06000f84ccfaffff8b9518ffffff85d20f85befaffff4c899d08ffffff4889b530ffffff4c899538ffffffffd04c8b9d08ffffff488bb530ffffff4c8b9538ffffffe98dfaffff660f1f44000048899d20ffffff48899d28ffffffe93dfbffff0f1f440000498b8b5804000049030b488b05779225004c899d68ffffff48f7d84801ce4889cf4821c74821f04839c70f840df8ffff4829f8ba010000004889c6e8e8dffcff85c04c8b9d68ffffff0f89eef7ffff48c7c0d0ffffff498b7308b9805b4b0031d2648b38e8bf1300000f1f80000000004d89fce970f7ffff4889c7e98df6ffff0f1f8400000000004531c031c031c9e91af6ffff0f1f40004983fe24763431ffb8040000004983fe0674694139bc2400040000746d4983fe10740a4983fe070f85cef8ffff4531c9b801000000e9f4f8ffff4489e948b8800007001000000048d3e883e0014883f00189c7f7d883e70183c00389f9c1e11fc1f91f83c1054080ff01400f92c74983fe05400fb6ff0f8558080000413b8424000400000f8571f8ffff498b942410040000498bb4240804000048895580e916f9ffff410fb793b0020000498b9ba0020000488d0cd5000000004889d048c1e0064829c84801d84839c30f8379f4ffff4489a560ffffff4889d949beffffffff020000004531ff4489ad68ffffff4d89dceb270f1f440000488d34d5000000004889d04883c33848c1e0064829f04801c84839c30f83930000004c89f04823034883f80175d2488b4b10488b15bf9025004883ec304c8d44240f488d7411ff480373284889d048f7d84889cf4983e0f04821c7ba030000004d89c54821c64829fe49033c2449897008498938e81fdefcff85c00f88d20900008b4b04b8406251734d897d18410fb79424b00200004d89ef83e107c1e102d3f8498b8c24a002000083e00f41894510e94bffffff4d89e34c89bd10ffffff448bad68ffffff448ba560ffffffe97ff3ffff4585edba65694b000f843bf8ffff41bd01000000ba6e584b00e92bf8ffff4531d248399d68ffffff48c78528ffffff000000000f864df5ffff4d89eb4c899530ffffff0f1f004c8b6b084589ee4983fe250f84770200004c89e8488bbd60ffffff4d89da48c1e8204c03134983fe08488d04404c8d3cc74c89bd78ffffff0f847a0200004983fe260f84700200004d85f60f841f010000410fb64704c0e80484c00f84470200004d3bbc24f80300000f845c0600004983fe070f84570200004983fe100f844d020000498d46ef4883f801410f96c14983fe240f94c04409c80fb6c04983fe050f842e0400004531c94983fe06410f94c141c1e102418b3f4109c1488b8d40ffffff4803bd48ffffff45898c2400040000488d9578ffffff4d89bc24f80300006a004c89e66a014531c04c899d38ffffff4c899558ffffffe8b3deffff488b9578ffffff49898424080400004889c64c8b9d38ffffff4c8b9558ffffff4989942410040000595f31c04885d274170fb64a04488b420848030683e10f80f90a0f849d0400004983fe250f877003000042ff24f5f0594b00488b8578ffffff488b4010480343104989020f1f80000000004883c31848399d68ffffff0f877ffeffff4c8b9530ffffff4d89dd4d85d20f84acf3ffff488b8528ffffff4939c20f879cf3ffff4d89e74c89d34989c4eb0e904883c3184c39e30f870bfcffff488b430883f82575ea48c1e820488bb560ffffff4c8b33488d0440488d14c648899570ffffff0fb64204c0e80484c00f84da020000493b97f80300000f84380600008b3a488b8d40ffffff4531c94803bd48ffffff498997f8030000488d9570ffffff41c78700040000000000006a004531c06a014c89fee876ddffff488b9570ffffff4989870804000049899710040000415a415b4885d274180f1f8400000000000fb64a0483e10f80f90a0f849b050000488b4310490307ffd04b89443500e92dffffff0f1f4400004883bd30ffffff000f84e103000048899d28ffffffe9cefeffff660f1f4400004c89fa4c89e6e97bfeffff0f1f440000488b431049030424498902e9a8feffff0f1f840000000000b801000000e9c2fdffff488b05077b2500be2f4c4b00488b004885c0480f45f0e91bf5ffff488b8578ffffff488b401048034310beffffffff4839f04189020f865bfeffffbe10574b00498b442468418b0fba76584b00bf020000004c899d58ffffff48034808488b05aa7a2500488b004885c0480f45d031c0e8b11800004c8b9d58ffffffe915feffff4885f60f840cfeffff488b8648040000498902e9fdfdffff488b8d78ffffff4885c90f84edfdffff488b8640040000488d78014889c24883ff010f86e0040000488b4310480341084829d0498902e9c2fdffff488b9578ffffff4885d20f84b2fdffff488b431048034208498902e9a2fdffff488b8d78ffffff4885c90f8489040000488b8640040000488d78014889c24883ff010f86ca040000488b4310480341084829d04989420849c70260844700e95ffdffff488b4310490304244c899d38ffffff4c899558ffffffffd04c8b9558ffffff4c8b9d38ffffff498902e931fdffff4c8bad78ffffff4d85ed0f8421fdffff498b5510493957104889c6490f4657104c89d74c899d58ffffffe8629cfbff498b4710493945104c8b9d58ffffff77160f83ebfcffff448b2d4cac25004585ed0f84dbfcffffbe90574b00e97bfeffff4c29d0480343104863d04189024839d00f84bbfcffffbe50574b00e95bfeffff31d24489ee4c89e7e824edffff4c89f8e98cfdffff83c8024531c9e9d6fbffffba010000004c89e7e804edffff66837a06000f84c9f4ffff448b8518ffffff4585c00f85b9f4ffff488b52084803104889d0ffd0e9a8f4ffff498b4424504885c00f8449f0ffff498b9424e000000031c9488b4008bf200000004c89a568ffffff48837a08070f94c131d2488d0ccd1000000048f7f14889c6e813c1faff4c8b9d68ffffff4885c0498983280300000f85fbefffff488b056d782500498b4b08ba76584b00bf02000000be38584b00488b004885c0480f45d031c0e861160000bf7f000000e8d7c2fcff0f1f8000000000488b9d10ffffff4d89dc8b5310488b7308488b3be8b7d7fcff85c00f884d030000488b5b184885db75e04d89e3e9a3efffff66837a06000f8458fbffff8b9518ffffff85d20f854afbffff4c899d20ffffff4c899538ffffff4889b558ffffffffd04c8b9d20ffffff4c8b9538ffffff488bb558ffffffe919fbfffff6c4100f843901000048c74210506b4700488b3d24aa25004885ff0f844dedffff4c89de4c899d68ffffffe84416000085c04c8b9d68ffffff0f842fedffff4c891d76aa2500e923edffff48899d28ffffff48899d30ffffffe9e6faffff418bbf0004000085ff0f859df2ffff498b9710040000498b870804000048895588e9f4f2ffff488b43104989420849c70270844700e9ccf1ffff89c8e932f7ffff4983fe24763431c9b8040000004983fe06746641398c2400040000746a4983fe10740a4983fe070f858bf9ffff4531c9b801000000e9b0f9ffff4489e948b8800007001000000048d3e883e0014883f00189c1f7d883e10183c00389cac1e21fc1fa1f83c20580f9010f92c14983fe050fb6c90f851c01000041398424000400000f8531f9ffff498b942410040000498bb4240804000048899578ffffffe9b9f9ffffa840b930714700b8f0764700480f45c148894210e9b6feffff4889f74c899d08ffffff4c899530ffffff4889b538ffffffe8dce8ffff488bb538ffffff488b4d804c8b9d08ffffff4c8b9530ffffff488b9640040000e95cf3ffff4889f74c899d08ffffff4c899530ffffff4889b538ffffffe89ae8ffff488bb538ffffff488b4d804c8b9d08ffffff4c8b9530ffffff488b9640040000e95af3ffff66837a06000f845afaffff448b8d18ffffff4585c90f854afaffff488b52084803104889d0ffd0e939faffff418b870004000085c00f85b9f9ffff498b9710040000498b870804000048899570ffffffe9f3f9ffff89d0e971feffff488b43104989420849c70270844700e9f5f8ffff4889f74c899d20ffffff4c899538ffffff4889b558ffffffe8e8e7ffff488bb558ffffff488b8d78ffffff4c8b9d20ffffff4c8b9538ffffff488b9640040000e9dbfaffff4889f74c899d20ffffff4c899538ffffff4889b558ffffffe8a3e7ffff488bb558ffffff488b8d78ffffff4c8b9d20ffffff4c8b9538ffffff488b9640040000e9f1faffffb9c05b4b00ba05020000bee0574b00bf00584b00e832eef8ff4d89e3b9e8564b0048c7c0d0ffffff498b730831d2648b38e8450800004d89e3b9b8564b00ebe1662e0f1f84000000000090554889e541574156415541544531ff534883ec784885ff4c8b05629b2500410f95c74c2305479b250048897d9848897588488955b048894d904d89c6742831c9ba010000000f1f004c89f048d3e84883c10183e0014901c74889d048d3e048f7d84c85f075e2488b05dba625004885c0488945b80f84440200004c8b88a00200000fb780b00200004885c0488945c80f84290200004531db4c897da84c8975a04d89df4d89ceeb1a0f1f8400000000004983c7014983c6384c397dc80f84f401000041833e0475e8488b45b84d8b6e284c8b004d0346104983fd0c4d89c4498d780c76cc4c8975c04d89c6eb340f1f00418b4424044883c3034883c0034883e3fc4883e0fc488d44030c4901c4498d7c240c4889f84c29f04939c50f867f01000041837c240802418b1c2475c383fb0475beba04000000beda5b4b00e8ffd6f8ff85c0418b44240475ab83f80a76a689c3418b4424104c8b7da831f6bfde5b4b004c8b75a04883eb084d8d6c24184d8d7c0701e8d87fffff85c00f84520100004c89f848c1e0044883c0104829c4488d44240f4883e0f0488945c0488945c8418b442414480905d5992500480905be99250089c1498d441d0031db4939c50f833b0600004c897db84c8975a84189cc4d89ee4989df4989c5eb26660f1f4400004c89fa4c8d7403014983c70148c1e204480355c04d39ee48891a48894208732b498d5e014889dfe8a40bfbff410fb60eba01000000d3e24485e275c44c8d74030148836db8014d39ee72d54c89fb4c8b75a84c8b7db84889d8488d530148c1e0044d85f60f84c800000031c9bf010000000f1f8000000000490fa3ce73364889d84889fa48c1e004480345c848d3e24883c1014931d648c70065694b0048c7400800000000488d4301747f490fa3ce4889c372ca4883c101ebbe660f1f4400004c8b75c04983c7014983c6384c397dc80f850cfeffff4c8b7da84c8b75a031f6bfde5b4b00e8867effff85c00f8544040000bf10000000e894aefaff4885c00f8412040000488b4db048890048c740080000000048c70101000000488d65d85b415c415d415e415f5dc3488d530248c1e004488b4d984885c9741a480345c8488908488b4d88488948084889d04883c20148c1e004480345c84939d748c700f15b4b0048c74008030000000f85ba0400004983ff01488b45c80f84700300004d89f8488b480849c1e0044983ff024a8d7400f04889cf48894db84889c1488b46084889c2488945c04889f8488d4410020f8630030000488d14004a8d7c01f84889c84883c018662e0f1f840000000000488b084883c0104839f8488d540a0175ef4983ff030f843f0300004983ff3f0f8722030000488d8280000000b94300000044897d984429f948d3e84885c00f85030300008b45988d48fd4889d048d3e00fb64d9841b901000000488975804489ce4c89458844894da8d3e6488b4db04c63e689b57cffffff4c89e248c1e2044c8921488d3c10488955b0e831adfaff4885c0488945a0488b55b0448b4da84c8b4588488b75800f849b020000488d3c104983ff02488938488978100f84d20200008b45984c89bd70ffffff41bd010000004c89a568ffffff83e80189c1894588488b45c841d3e144894d804963d9488b084901c04c8945c848894db0488b0e498d77fe488975a84989cf660f1f440000488b55c04c89fe4883eb02e85038fbffba01000000beee4a4b004889c7e83e38fbff4c8b75c84c8b65a8eb0e0f1f40004983ee104983ec01743c4489ea4489e1d3e24863d24885da74e6498b56e8498b76e04889c74983ee10e80238fbffba01000000beee4a4b004889c7e8f037fbff4983ec0175c4488b55b8488b75b04889c7e8da37fbffba010000004889c7beee4a4b00e8c837fbff4885db4889c70f855cffffff4c8bbd70ffffff4c8ba568ffffff0fb64d98488b75a0ba100000004889f048d3e24801f20f1f84000000000048c74008000000004883c0104839d075ef4c8b6dc84c8b4da0bf010000004c89f90f1f80000000004883e9014189f841d3e04d85e44d63c074314c89ca4c89e04883e8014985c07419498b75f84883e8014883c601480172084883c2104985c075e74883c2104885c075d54983ed104885c975b4488b45a0448b857cffffff0fb64d884183e802488d5020b8010000004d63c048d3e04939c074474889d14c89c6eb1a0f1f440000488b79e8480379e04883c110488979f04839c6741b4883ee0140f6c60175e1488b79f04883c110488979f04839c675e54929c049c1e0044c01c28b7580488b5dc0f7de4883c3014863f648c1e604662e0f1f8400000000004889d948030c324883c21048894af04883e80175eb488b4da0488b7590488b4108488906488d65d84889c85b415c415d415e415f5dc344897d98e931fdffff488b5808488b45b0488d7b2148c700020000004c8d6301e885aafaff4885c04989c60f85c1000000b90a5c4b0031d231f6bf0c000000e826010000c7459803000000e9defcffff4983c701ba0100000031db4c89f848c1e0044883c0104829c431c04c8d6c240f4983e5f04c896dc8e9fefaffff488b5dc844894da84c8945b0488b5318488b7310e8c435fbffba01000000beee4a4b004889c7e8b235fbff488b55b8488b334889c7e8a335fbffba01000000beee4a4b004889c7e89135fbff8b4598448b4da84c8b45b083e80189c18945884889d841d3e14c01c044894d80488945c8e9bafdffff488d78204c89600848c74018000000004889da48893848897810488b45c8488b30e84235fbffc6002f488b45b0488b4d9048c70002000000498b46084889014c89f0e9fcfaffffba0100000031c0e936faffffb9305c4b00bab5000000bef55b4b00bf015c4b00e8dce5f8ff662e0f1f840000000000669041574156b8455c4b00415541544989cc55534889f54189ff4989d54881ec180400004885c94c0f44e0ff1589872500488b184885edb865694b00480f44e84885db0f849c0000004889efe83105fbff4c89e74c8d6801e82505fbff4c8d70014b8d7c3500e8d7a8faff4885c074574c8b034c89f24c89e64889c7488904244c89442408e86834fbff4c89ea4889ee4889c7e8ba8efbff4c8b442408488b0c24498900488b4308488908488b4310c60001488b4318488d7b20be01000000448938e8db550000488b0348c70065694b00488b430848c700c05c4b00488b4310c60000ebcd4585ff7564b865694b004889c6807d0000baaf544b0041b965694b00b9985c4b00bf76584b004989e84c0f45ca488b15516b25004d85ed490f45cd488b124885d2480f44d75750564154bf02000000be5b5c4b0031c0e8420900004883c420bf7f000000e8b4b5fcff488d742410ba000400004489ffe82220ffffbeaf544b00eb8b90662e0f1f840000000000415541544989d555534189fc4889f34889cd4883ec08f705489d25007ff7ffff7526488b05c79425004885c0743f4883c4084889ea4889de4489e75b5d415c415dffe00f1f44000048833da094250000b8795c4b0041b86f5c4b00bf7f5c4b004c0f44c031c0e845070000ebb54889e94c89ea4889de4489e7e812feffff6690534881ec40010000488d44244c48897c241848897c24504889742420488974245848894c24304c89442438488954242848895424604889442468ff1588852500488d7c2450488b1831f64889442408488938488d7c247048895c2410e80fc1fdff85c0754b89c3488b7c24384c8b4c243041ffd1488b442408488b4c2410488b742420488b542428488908488b44241848c7000000000048c7060000000089d8c602004881c4400100005bc30f1f4000488b442408488b4c24108b5c244c4889084881c44001000089d85bc30f1f4000415741564989ff415541544989d655534989f54883ec08ff15db842500488b2d7c9325004c8b204889c34c893d6f9325004c89f748c7000000000041ffd54c892348892d589325004883c4085b5d415c415d415e415fc3660f1f840000000000554889e5415741564c8db5c0fbffff41554154534889d34531ff498d460a4531e44189f54881ec4804000089bd94fbffff48898db8fbffff488985b0fbffffb8010000004c29f0488985a8fbffff0fb60384c00f84d00000000f1f80000000004585ed7e3b4585ff0f846a0100004183fc3f0f8fc20400004963c441bdffffffff4183c40148c1e00448c78405d8fbffff0c0000004c89b405d0fbffff0fb6033c250f849a03000084c00f84920300004585ed4889da0f94c13c0a750b84c90f84f60300000f1f004883c2010fb60284c0740c3c2574083c0a75ed84c975e94183fc3f0f8f380400004889d64963cc4829de48c1e1044885f64889b40dd8fbffff740c48899c0dd0fbffff4183c4013c25743d3c0a0f841d0100004889d30fb60384c00f8537ffffff4963d4488db5d0fbffff4863bd94fbffffb8140000000f05488d65d85b415c415d415e415f5dc30fb642013c300f849d010000488d4a0141bb200000003c2a41b9ffffffff0f84580100003c2ebaffffffff0f841a0100003c6c0f84db0000003c5a0f84d30000003c730f84730100000f8fcd0200003c250f85db0000004889cb4963c448c1e00448899c05d0fbffff48c78405d8fbffff010000004183c401488d5301e949ffffff660f1f440000e83391000085c04189c70f886b030000488bb5b0fbffff31c94863f8ba0a000000e8c2e8fdff4c39f0761c488bbda8fbffffbe20000000488d5438ff4829d04889c7e8f1caf8ffc685cafbffff3ac685cbfbffff09e93cfeffff660f1f4400004839d30f8456020000418d4424ff489848c1e00448838405d8fbffff014883c20141bd01000000e9b7feffff0fb64101488d59013c730f849b0000000f8f010100003c250f8428ffffffb9c05d4b00badd000000bece5c4b00bfe75c4b00e815e0f8ff8079012a75e1488bbdb8fbffff8b1783fa2f0f875d02000089d04803471083c20889178b104883c1020fb601e9b5feffff488bbdb8fbffff8b0783f82f0f876c01000089c24803571083c00889070fb64101448b0a4883c101e97bfeffff488d4a020fb6420241bb30000000e95afeffff4889cb488bbdb8fbffff8b0783f82f0f873a01000089c148034f1083c0088907488b394963cc89959cfbffff48c1e10448898da0fbffff4889bc0dd0fbffffe810fffaff4863959cfbffff488b8da0fbffff83faff0f845e0100004839c2480f47d04889940dd8fbffffe94afeffff3c7574083c780f85fbfeffff488bbdb8fbffff8b0783f82f0f874f01000089c24803571083c0088907488b3a4883ec30b80a000000ba100000004c8d54240f44898d98fbffff44889d9cfbffff4983e2f04983c218803b784c89d64c8995a0fbffff0f45d031c9e8d9e6fdff4c638d98fbffff4c8b95a0fbffff440fb69d9cfbffff4c89d24183f9ff7514e9c70000000f1f4400004883e8014488184c89d24829c24939d17fee4963cc4183c40148c1e1044889840dd0fbffff4889940dd8fbffffe987fdffff4889dae995fcffff488b5708488d420848894708e98efeffff488b4f08488d410848894708e9c0feffff3c750f8585000000488bbdb8fbffff8b0783f82f775889c24803571083c00889078b3a4889cbe910ffffff4963c44183c40148c1e00448899405d0fbffff48c78405d8fbffff01000000e99afdffffb80a000000e91afcffff4889840dd8fbffffe9f3fcffff4829c2e948ffffff488b5708488d420848894708eba5488b5708488d420848894708e9abfeffff3c780f8473ffffffe97cfdffff662e0f1f840000000000488b4708488d500848895708e99dfdffffb9c05d4b00ba7d000000bece5c4b00bfd85c4b00e876ddf8ffb9c05d4b00ba70000000bece5c4b00bfd85c4b00e85dddf8ffb9c05d4b00ba67000000bece5c4b00bf085d4b00e844ddf8ff0f1f40004155415431c055534989f4be000008004189d548c7c5ffffffff4881ec98000000e89ab7fcff85c078314889e289c6bf0100000089c3e835b7fcff85c0780e488b7424304885f649893424752348c7c5ffffffff89dfe85570ffff4881c4980000004889e85b5d415c415dc30f1f40004531c94189d8b9020000004489ea31ffe80bc2fcff4889c5ebca660f1f4400004881ecd800000084c04889742428488954243048894c24384c894424404c894c244874370f294424500f294c24600f295424700f299c24800000000f29a424900000000f29ac24a00000000f29b424b00000000f29bc24c0000000488d8424e00000004889fa488d4c2408be010000008b3dc67425004889442410488d442420c744240808000000c744240c300000004889442418e866f9ffff4881c4d8000000c30f1f4000662e0f1f8400000000004881ecd800000084c04889742428488954243048894c24384c894424404c894c244874370f294424500f294c24600f295424700f299c24800000000f29a424900000000f29ac24a00000000f29b424b00000000f29bc24c0000000488d8424e00000004889fa488d4c2408beffffffff8b3d167425004889442410488d442420c744240808000000c744240c300000004889442418e8b6f8ffff4881c4d8000000c30f1f4000662e0f1f8400000000004881ecd800000084c0488954243048894c24384c894424404c894c244874370f294424500f294c24600f295424700f299c24800000000f29a424900000000f29ac24a00000000f29b424b00000000f29bc24c0000000488d8424e0000000488d4c24084889f231f64889442410488d442420c744240810000000c744240c300000004889442418e814f8ffff4881c4d8000000c36690662e0f1f84000000000055534889f34889fd4883ec08488b7608e80bc5f8ff85c0ba01000000742f488b5b384885db7512eb370f1f8000000000488b5b084885db7427488b334889efe8dcc4f8ff85c075e8ba010000004883c40889d05b5dc3662e0f1f8400000000004883c40831d289d05b5dc30f1f440000ba405d4b0041b8b85d4b004c89c04829d048c1f8024889c148c1e93f4801c848d1f8488d0c828b014839c77628eb41904889c84829d048c1f8024889c648c1ee3f4801f048d1f8488d34828b064839f8720e4889f14839d175d6f3c30f1f40004989c8488d56044c39c2759f8b4604c34889ceebee662e0f1f840000000000904883ec08803d4d92250000751b488b052c8e25004883c001488905218e25004883c408c30f1f4000488b05399225004c8b0d0a8e25004883c0014c39c87779488b0d0a9225004d8d410131f6488b39904889c24829f24839fa73354883c20148c1e20448837c110800743d4883c0014c39c076dcb9c05f4b00ba4a000000be4a5f4b00bf105e4b00e833d9f8ff0f1f00488b49084801fe4885c9740c488b39ebaf0f1f80000000004c39c80f866effffff0f1f80000000004983c1014939c1750cc6059091250000e94bffffffb9c05f4b00ba58000000be4a5f4b00bf385e4b00e8dad8f8ff662e0f1f840000000000803d61912500007508488b05408d2500c34c8b054891250031c04d85c0743590498b384885ff7421498d481831d26690488339014819f64883c2014883c1104839fa488d44300175e74d8b40084d85c075cef3c3f3c3662e0f1f840000000000488b0509602500488907488b05d78c2500488906c390662e0f1f84000000000041545553488b1de55f2500488b3db68c25004889dee8e6a4faff4885c07479488d9c1800f7ffff4889c531c0be10000000488d7b084889d948c7030000000048c783f8080000000000004883e7f84829f981c100090000c1e903f348ab488b3d6c8c25004c8d670e4883c710e8ffa6faff4885c0741a4c89204883c010488943084889d85b5d415cc30f1f80000000004889efe8c89efaff31db4889d85b5d415cc30f1f4000662e0f1f8400000000004885ff0f84db020000415741564155415455534883ec28488b4708488b35fe8b250048897c2410483970f048894424080f828e01000048c7442418000000004c8b25ea8f25004531ff488b4424186690498b14244531c94885c0410f94c14939d10f83390100004e8d04084c39c60f82340100004d89ce4c89c94d89c54a8d44300148c1e104498d2c0c4c29c048890424eb160f1f4400004c032c244883c5104939f50f87ff000000488b45184885c00f84a2000000488b5510483b157f8f25000f877f010000488bb0480400004939d74c0f42fa4889f248c1e204480354240848c702ffffffffc6420800488bb840040000488d57014883fa0176504c39ee0f858b010000488b9828040000488b90200400004839d30f82420100004839df0f8252010000488bb018040000488b4424104829d34829f84889c7e88025fbff4889da31f64889c7e8b3c0f8ff498b1424488b35c88a25004983c6014939d60f8233ffffff4c01742418488b4424184839f073344d8b6424084d85e40f85cefeffffb9a05f4b00ba0d020000be4a5f4b00bf535f4b00e805d6f8ff0f1f4400004d89ceebc00f1f00488b4424084c8938488b4424104883c4285b5d415c415d415e415fc34889c1488b05528a25004881f990cd6c00488b69f0488d580e0f84c70000004883c0104889cf48c1e0044883ef104889c6e8769efaff4885c04989c50f84d90000004c8d650249c1e40449895d004829eb4b8d7c25004889da31f648c1e204e8d8bff8ff488b4c2410498d4510488b35e8892500488944240848894108e9f0fdffffb9a05f4b00baed010000be4a5f4b00bf605e4b00e841d5f8ffb9a05f4b00baf8010000be4a5f4b00bfb85e4b00e828d5f8ffb9a05f4b00bafa010000be4a5f4b00bff05e4b00e80fd5f8ffb9a05f4b00baf7010000be4a5f4b00bf985e4b00e8f6d4f8ff4883c01048c1e0044889c7e85698faff4885c04989c5741d4c8d6502be80cd6c004889c749c1e4044c89e2e8467efbffe92fffffffe867c1f8ff31c0c3660f1f8400000000004885ff415455534889fb743c488b3d1d892500be10000000488d6f0e4883c710e8aba3faff4885c00f84a90000004889284883c0104889df488943085b5d415ce9cbfcffff0f1f00488b2d015c2500488b3dd28825004889eee802a1faff4885c04989c47471488dac2800f7ffff4889d8be10000000488d7d084889e948c745000000000048c785f8080000000000004883e7f84829f981c100090000c1e903f348ab488b3d86882500488d5f0e4883c710e819a3faff4885c074134889184883c0104889ef48894508e96dffffff4c89e7e8e99afaff31ffe95effffff6690415641554189f54154554989fc534c8b770831ed498b46f0498d5e10eb2266904883c501807b08007512488b3b4883ffff7409e8a89afaff498b46f04883c3104839c572db4981fe90cd6c007409498d7ef0e8899afaff4584ed750c5b5d415c415d415ec30f1f004c2b25015b25005b5d498dbc2400090000415c415d415ee95c9afaff6690662e0f1f840000000000488b87480400004885c0747164488b0c25080000004c8b014c3b05c18b2500751f48c1e004ba00000000488b04014883f8ff480f44c2c3660f1f840000000000483b41f07337488b35838b25004889c2488b3e4839f872170f1f840000000000488b76084829fa488b3e4839d776f14883c20148c1e2044c3b041673a431c0c341544989fc55488b2d438b250053488b9f48040000eb18660f1f8400000000004829c3488b45084885c074344889c5488b45004839c373e8488b05218b250048c1e3044801eb4c8963184883c001488943105b5d415cc3660f1f8400000000004885db753cbff0030000e8c195faff4885c04889c248894508743f488d701048c7003e00000048c7400800000000b97c0000004889d84889d54889f7f348abeb97b9805f4b00ba95030000be4a5f4b00bf615f4b00e806d2f8ffb9285f4b00be6a5f4b00bf0c0000004883058f8a250001e81aecffff662e0f1f840000000000415455ba0010000053bfd35f4b00b8590000004881ec001000004889e60f053d00f0ffff776a85c07e660fb6142480fa5b745d80fa2f0f851701000083f801742e8d48ff4863d1803c142f751de9c4000000660f1f4400008d59ff4863c3803c042f0f84b800000089d983f90175e9bf02000000e8d794faff4885c04889c5747fb82f00000066894500eb5e0f1f4000488b1db18a25004885db74644889dfe8ecf0faff488d78014989c4e8a094faff4885c04889c574484c89e24889de4889c7e83a20fbff488d55014839c27212eb160f1f80000000004883e8014839c274068078ff2f74f1c600004881c4001000004889e85b5d415cc30f1f80000000004881c40010000048c7c5ffffffff4889e85b5d415cc389cb89c1660f1f44000083c1014863f9e82594faff4885c04889c574cd4863d34889e64889efe8bf1ffbffc600004881c4001000004889e85b5d415cc3b920604b00ba2f000000bef85f4b00bfe25f4b00e874d0f8ff0f1f400055534889fb4883ec08648b04251800000085c07513e86697faff31c04883c4085b5dc30f1f440000488b2da18925004885ed744e488b45004883f8317712488d50014889550048897cc50831c0ebcd90ff152a892500488b45004885c0741c904883e801488b7cc50848894500e80e97faff488b45004885c075e5b801000000eb9abf98010000e85493faff4885c04889053a89250074124889580848c7000100000031c0e972ffffffff15d08825004889dfe8c896faffb801000000e95affffff662e0f1f8400000000000f1f4000488b3529682500488b174889f84889f748f7df4821d7483b152356250075298b156b562500534889c3e8a2b5fcff85c0751e48c70300000000830de0672500015bc3660f1f440000b801000000c3669048c7c0d0ffffff5b648b00c30f1f4000415741564155415455534889fd4883ec18448ba7c00200004585e40f84e4010000488b87b8020000418d5424ff31db488d4cd0080f1f4000488b100fb6921403000083e21080fa010f92c24883c0080fb6d201d34839c875df4c8b6d304f8d74ed0049c1e6044981c6c0b16c00498b4e184d8b7e104885c90f85020100004d85ff0f8485010000418b47088d7c03084b8d5ced0048c1e3044881c3c0b16c0048897b1848c1e703e80492faff4885c00f847f010000418b5708498b374889c748c1e203e8f877fbff498907488b43108b50084585e474644f8d74ed0031db49c1e6044981c6c0b16c000f1f8000000000488b8db802000089d8488b0cc10fb68114030000a810752b83c810f6053787250002448d7a01888114030000498b4610488b0048890cd07537448ba5c00200004489fa83c3014439e372b54b8d44ed0048c1e004488b80d0b16c008950084883c41831c05b5d415c415d415e415fc390488b5130488b7108bff0604b0031c0e81cf1ffffebb3662e0f1f840000000000418b57088d041a4839c10f8342ffffff89df4d8b2748894c24084801cf488d1c3f48c1e704e80691faff4885c00f8489000000488b4c24084c89e64889c7488d14cd00000000e8f576fbff49895e18498907648b04251800000085c0754e4c89e7e86a94faff4b8d44ed00448ba5c002000048c1e004488b80d0b16c008b5008e9cdfeffff31dbe94dfeffffbe10000000bf01000000e8459cfaff4885c04989461074184989c7e95bfeffffff151e862500ebaa48c7431800000000488b4538b92f604b0031d2bf0c000000488b30e81ce7ffff6690662e0f1f84000000000048833d9865250000746755534889fd4883ec08488b1d966525004885db7434904839ab400300007721483bab480300007318f683150300004075254889ee4889dfe8eaf4fcff85c07516488b5b184885db75cd31c0eb13660f1f84000000000048837b3000750d4889d84883c4085b5dc331c0c3b970624b00babc000000be4a604b00bf54604b00e853ccf8ff0f1f00554889e541574156415541544989fd534881ec8800000040f6c6030f844b020000b8000000004189f44889cb4885c04589c74d89ce741548899558ffffffbf40b16c00ffd0488b9558ffffff4883fbff0f84b2000000488d430248a9fdffffff0f85ca000000488b4508488955904c8d4580488d956fffffff488db578ffffff488dbd70ffffffb97050470048895da84c896d8048894598488b45104489658848c745a00000000044897db04c8975b8488945c0e8b7e7ffff89c3e8b03400004883bd78ffffff00757e488b75a831ffe80be0fcff8b401885c00f85a0010000b8000000004885c07407bf40b16c00ffd0488b45a0488d65d85b415c415d415e415f5dc30f1f4000b8000000004885c07407bf40b16c00ffd0b910614b0031d24c89eebf16000000e853e5ffff0f1f00b940614b0031d24c89eebf16000000e83ce5ffff0f1f4000488b7da04885ff74174181e4000000080f8492000000be01000000e8481a0000488b75a831ffe86ddffcff8b501885d20f85ba000000b8000000004885c07407bf40b16c00ffd04c8bad78ffffff4c89efe862eafaff4c8d78014c8bb570ffffff4989c44b8d443d004c39f074464983c41f4c89fa4c89ee4983e4f04c29e44c8d64240f4983e4f04c89e7e8f873fbff80bd6fffffff0075774c89e131d24c89f689dfe890e4ffffc605f182250001e962ffffff4c89f7e8fce9faff498d5404024c89ee488d421e4883e0f04829c44c8d64240f4983e4f04f8d343c4c89e7e8a473fbff4c89b570ffffffeba30f1f00b960624b00bab0020000be4a604b00bf68614b00e8ffc9f8ff0f1f80000000004c89efe80091faff4c8bb570ffffffe975ffffff4889feb962604b0031d2bf16000000e800e4ffffb960624b00bacd020000be4a604b00bf68614b00e8b7c9f8ff0f1f8000000000415641554189f54154554989fe53488b7708488b5730803e007516488b0526502500be2f4c4b00488b004885c0480f45f031c0bf7c604b00e8c3ecffff498b86800300004885c00f84c70000004963d541bc76584b0048833cd000488d2cd5000000000f84970000000f1f800000000031c04489eebf8d604b00e881ecffff498b868003000031db488b14288b420885c074470f1f440000488b1289d8488b04c2488b7008803e007511488b05974f2500488b304885f6490f44f431c0bfd8c64b0083c301e8e6ecffff498b8680030000488b1428395a0877be31c0bffb624b004883c508e8c6ecffff498b86800300004183c50148833c28000f8570ffffff5b5d415c415d415ebffb624b0031c0e9ecebffffbf98604b0031c0e8e0ebffffebde0f1f4000662e0f1f84000000000055be240000004889e54157415641554154534883ec784c8b2f8b470848897d984c89ef894584e8e5b2f8ff4885c00f847006000048833d0461250000488b1d0d612500488b45984989dc4c8b7010753eeb41660f1f4400004c39b34003000077294c39b3480300007620f68315030000400f85480300004c89f64889dfe84ef0fcff85c00f8535030000488b5b184885db75c5488b45984c8b78284983fffe0f843a03000031ff4c89fee861dcfcff488b5d98448b458431c9ba020000004c89ee4c89e74c8b4b284181c800000010e80c93ffff4885c048894590488943200f84ae060000f74584001000000f85ce060000f74584000000400f85b1020000488b45908bb8100300004883b8b8020000008d4f01897dc88988100300000f8589070000448b45844889c331c931d231f64889c74181e008000088e8f17b00008b8bc00200004889d885c9743331db4989c40f1f8000000000498b9424b802000089d8488b04c2488b78284883bfe0020000000f847502000083c30139cb72d9488b459831ff488b7028e882dbfcff48894588c7401800000000e862dbfcff488b459890f605df7f2500020f85500700008b75848b150780250089f0250000000885d289c7898578ffffff0f8533020000488b459031c9662e0f1f840000000000488b5028488b40180fb6921403000083e20480fa010f92c20fb6d24801d14885c075dd488d04cd160000004889a570ffffff31c94883e0f04829c4488b45904989e7660f1f440000488b5028f68214030000047508498904cf4883c101488b40184885c075e24883f90148894db80f86c1010000488d14094889a568ffffff4889cb31f641bd010000004531e4488d42104883e0f04829c44889e74989e6e85db0f8ff4889d84883e801488945a04c89e84d89fd4d89e74989c4660f1f4400004f8d147e4b8b5cfd00410fb70283c001668945b066418902488b45a04939c70f83c00200004889c1498b44cd00488b80b80300004885c00f849b0200000f1f00488b104885d20f848c0200004883c0084839d375eb4889c84b8d74e5004b8d7cfd004c29f84c8955c048894dc8488d14c500000000488945a8e872aff8ff4c8b55c0488b45b8488b4dc8410fb752024c29f849895ccd004839c20f8668020000488b55b84b8d3c6631f64d89e74c29e24983c4014801d2e884aff8ffe93fffffff8b45c085c07405488b459890488b4598488b7d90488b4840488b50388b7030e87b900000f74584000100000f8542030000f605ef7d250040c705ed622500010000000f8588040000488ba570ffffff488d65d85b415c415d415e415f5dc348837b30000f857f050000488b45984989dc4c8b78284983fffe0f85c6fcffff4d8b7c24304c897828e9b8fcffff31d231f6e89a9b0000418b8c24c0020000e975fdffff89f083e00109c789bd78ffffffe9bbfdffff4885c9488d59ff0f847e040000498b3cdf488b4598904883eb01448ba578ffffffeb100f1f840000000000498b3cdf4883eb01488bb78003000031c94489e2e8a7bfffff4883fbff75e1c745c001000000488b4590448ba8c00200004585ed0f84e7feffff4489ea44896db84531ffc645c8004c8db0b80200004989c5eb390f1f400031dba808750e4883b928040000000f85ba010000f605d67c2500020f85a9000000418b95c00200004183c7014139d70f8301010000498b8db80200004489f8488b0cc10fb6811403000089c683e60b4080fe0a75ab488bb180030000488b064885c00f84ea0100004c39f074bb4531e4eb0e660f1f4400004939c64989dc74a8498d5c2401488b04de4885c075ea488b81780300004983c4024c39e00f86c80100004c8d14dd000000004ac704e600000000f605387c250002488b81800300004e8934100f8457ffffff89de4889cfe864f9ffffe948ffffff0f1f80000000004883e9014939cf0f8243fdffff4c3965b80f85b1fdffff4d89ef488ba568ffffff488b5da0e980feffff660f1f440000488b55a84b8d34664b8d3c7e4801d2e8d4acf8ff0fb745b0488b4dc8664189044ee9d2fcffff807dc800448b6db8741b488b05417b25004883c0014885c0488905337b25000f84250200004139d50f8365fdffff4c8b6590eb13660f1f4400004183c5014139d50f834cfdffff498b8c24b80200004489e8488b1cc10fb7831403000066250804663d000475d34883bb280400000074c980a315030000fb4889dfff15c95a2500f68315030000040f85d4020000418b9424c0020000eba24889cf48894db0e84eefffff488b4db0c645c801f68115030000040f8425feffff8b45b8413b85c00200000f8515feffff44897db8c645c801e908feffff488b45984c8b78284983fffe0f8416010000be2f0000004c89efe84dacf8ff4885c00f84240100004531e4e9d1f9ffff488b7d90e863f2ffff85c00f84adfcffffe9bffcffff488b817803000041bc0100000031db4c39e00f8738feffff488db9580300004839fe48897da80f843e0100004883f8034989fb48c745b0040000000f87290100004c8d14dd000000004c89df48898d78ffffff4c89d24c8955a0e8b76afbff488b8d78ffffff4889c64c8b55a0488bb98003000048397da848898180030000741848894da8e89cf0ffff488b4da84c8b55a0488bb180030000488b45b048898178030000e9affdfffff64584040f8513fcffffb950624b00baf4000000be4a604b00bfa3604b00e8cac0f8ff662e0f1f8400000000008388d403000008e926f9ffff48833d6c59250000488b1d755925004c8b70104989dc0f85a6f8ffffe9f2fbffff0f1f0048833d4859250000488b1d51592500488b45984989dc4c8b70100f857ef8ffffe990f8ffff0f1f00bf02000000be18624b00e809e5ffffbf7f000000e87f91fcff488b4590bfa8614b008b8810030000488b5030488b700831c0e881e3ffffe955fbffff488d3c0048c1e0044889b578ffffff48894da048897db04889c7e87d83faff4885c04989c3488b4da0488bb578ffffff0f85a1feffffb9b6604b0031d2be6a5f4b00bf0c000000e810daffffc745c000000000e9bafbfffff605d578250040755bf7458400010000740d488b4590f6801403000010745b488b459831ff488b7028e836d4fcff8b481885c90f84cbfaffffb950624b00ba12010000be4a604b00bfd8614b00e882bff8ff6690488b7d9031f6e8c5f5ffffe9a0f8ffff488b5030488b7008bfa8614b0031c0e8ace2ffffeb8f4889c7e812f0ffffeb9bb950624b00ba32020000be4a604b00bfcf604b00e837bff8ffb970624b00babc000000be4a604b00bf54604b00e81ebff8ff662e0f1f8400000000000f1f400055534889f84829d04889d34889f54883ec08488b164839d0727e488b76084885f60f84d10000004801da0fb6c9e8ceffffff84c00f859e0000004889d848034500488b3d707725004885dbb9000000004889c6488d5701480f44ca4829de48c1e6044801eeeb18660f1f8400000000004883ee104883e80148837e180075694889c24829da4839d172e64883c40831c05b5dc30f1f44000048c1e0044801f0488b50184885d27420483bba48040000756c488b0df876250048c7401800000000488d510148895010488b05c17225004839c70f8469ffffff4883c408b8010000005b5dc30f1f4000488905a1722500ebe70f1f800000000084c975084889f8e93dffffffb910654b00ba3b000000be88624b00bf93624b00e8f3bdf8ffb910654b00ba50000000be88624b00bfa5624b00e8dabdf8ff662e0f1f840000000000554889e54157415641554154534881ec98000000488b47304889bd50ffffff408875a348894598488d04c048c1e004488d88c0b16c004805e0b16c0048898578ffffff48894d904889c8448b70084889a558ffffffc705096e250001000000498d460f4d89f448c1e80448c1e0044829c44889e34829c44a8d04f5160000004989e548c1e80448c1e0044829c4488d44240748c1e803807da3004989c7488d04c500000000488945c8740e488b8550ffffff83a0d4030000f7488b4590488b004885c00f84420a00004a8d0cfd0000000031d20f1f4400008990dc03000048890183c201488b40184883c1084885c075e74139d40f85bc0a00004c89f231f64889dfe829a7f8ff31f64c89f24c89efe81ca7f8ffbeffffffff49ba00000000020000000f1f44000083c6014139f40f865f0100004863c641807c05000075e9488b4dc848baffffffff03000000488b0cc1482391100300004c39d20f84ff000000c604030141c644050001488b81b8030000c781dc030000ffffffff4885c07453488d5008488b40084885c074466690486380dc03000083f8ff742c85c00f88580500004139c40f864f050000803c03007515c6040301488b028b80dc0300008d78ff39f00f4ef74883c208488b024885c075bc4c8b81c00300004d85c00f8444ffffff458b084585c90f8438ffffff31d2eb360f1f40004139c47644803c0300751bc60403018b87dc03000039f07f038d70ff4c8b81c0030000458b0883c2014439ca0f83fefeffff89d0498b7cc008486387dc03000083f8ff74e185c079b7b920654b00bae8000000be88624b00bfb8634b00e876bbf8ff660f1f440000f681d4030000080f85f4feffff488b91500400004885d20f85e4feffff803c03000f85dafeffff83c6014139f40f87a1feffff488b4d98488b7dc84889da4c89f6e8da8700004585e40f844f0200004e8b2cfd00000000488b4598493b45300f8526010000418d4424ff4489a54cffffff4c8b65984531ff4531db48895db0488945a8c645a2004c89fbc745b8ffffffffc745a4000000004489d90f1f440000488b45b0895dc0803c1800410fb685140300000f85ef00000089c283e20380fa020f85a808000041f685d4030000080f859a080000a808746df60598732500020f8522030000498b85100100004885c074364c8b7808498b85200100004d037d00488b500848c1ea0385d2448d72ff74170f1f80000000004489f041ff14c74585f6458d76ff75f0498b95a80000004885d2740a498b450048034208ffd0410fb6851403000041808d150300002083e0108b4db83c018b45c0835da4ff39c10f46c1b9010000008945b848395da80f8417010000488b45c84c8b6cd8084883c3014d3b65300f8415ffffffb920654b00ba04010000be88624b00bfd0624b00e8ccb9f8ff0f1f400083e0033c0275bb4983bdb8020000000f84630200004d8b8d800300004531d2bf01000000498b314885f6747f4d8dbdc8020000498d51084889f04531dbeb1c660f1f8400000000004883c208488b42f841bb010000004885c0742c4c39f874164c3ba078fdffff0f851207000083b824010000ff75d24883c208488b42f84883c7014885c075d44584db0f85830000004d85d2741649c785b80200000000000041c785c002000000000000498b85d80200004885c0741483b8dc030000ff740b49c785d8020000000000008b75b88b45c039c60f46c648395da88945b80f85e9feffff84c9448ba54cffffff488b5db00f8517020000833d63692500020f85dd060000488ba558ffffff488b4590e92ffbffff4883ff034d8d9d580300000f87c20000004d39cb4c89d841b8040000000f84b0000000ba0800000031ffeb2d660f1f8400000000004d85d274124c8914f84d8b8d800300004883c7014531d2498b34114883c2084885f6742a4c39fe740983be24010000ff75ce488934f84d8b8d800300004883c701498b34114883c2084885f675d648c704f800000000498bbd80030000498985800300004939fb0f8436010000884d804c894588e897e7ffff0fb64da285c0b8000000004c8b45880f45c8884da20fb64d804d898578030000e9c5feffff4d8b8578030000884da14c898d60ffffff4c899568ffffff4889b570ffffff4c895d804a8d3cc5000000004c894588e81e7bfaff4885c04c8b45884c8b5d80488bb570ffffff4c8b9568ffffff4c8b8d60ffffff0fb64da10f85f2feffffb9b6604b0031d2be10634b00bf0c000000e89ed1ffff660f1f440000498b75084c89e2bfe3624b0031c0e8a5daffffe9c6fcffff498bbdb80300004885ff0f848dfdffff48837f08000f8405050000ba01000000eb08660f1f44000089c28d720148833cf7004889f075f183c20248c1e2034d8b8d800300004801fa418985c0020000498995b80200004d8d95b8020000498b314885f60f84b4fdffffbf02000000e941fdffffc645a201e9e6feffffb920654b00bacf000000be88624b00bf88634b00e8bbb6f8ff4c8b7d9831ff4c89fee83dcbfcffc74018020000004989c6488945a8e81acbfcff908b4da485c97456488b4590488b78108b470885c07444488b0f8d70ff4889f2488b34f1f68615030000207528e9db0300000f1f840000000000448d42ff4c89c64e8b04c141f68015030000200f84bc03000089f285d275e131c0894708648b04251800000085c00f85e2040000b8000000004885c0740abf00b16c00e8289db8ff8b45b84139c40f86a00400004531edc645b00048c745b8000000004189c64c896dc0660f1f4400004489f0803c03000f85c1010000488b4dc84c8b2cc1410fb6851403000089c283e20380fa020f85fe0400004983bd28040000000f8536020000807da3000f8485000000b8000000004885c07409488bbd78ffffffffd0488b4590488b40484885c0744f488b4d90488b51504885d2744248c1e2054801c2eb100f1f80000000004883c0204839d07429488378080074f04c3b681875ea48c7400800000000c700000000004883c02048836958014839d075d7b8000000004885c0740c488bbd78ffffffe8389cb8ff4c89efe87020000048837d98000f8590030000498b45204885c00f846a030000498b5518832dd54d25000148895018498b55184885d2740448894220498bbde0020000e8f07bfaff498bbd380300004883ffff7405e8de7bfaff498bbdc0030000e8d27bfafff605c36d2500400f851b010000498b7d08e8bc7bfaff498b7d38eb0e660f1f4400004d85ff4c89ff74188b47104c8b7f0885c075ede8987bfaff4d85ff4c89ff75e8498bbdb8030000e8847bfaff498bbd80030000498d85580300004839c77405e86c7bfaff4180bd14030000000f88a3000000498bbd180300004883ffff7405e84c7bfaff498bbda80300004883ffff7405e83a7bfaff4c89efe8327bfaff4183c6014539f40f8725feffffb8000000004c8b6dc04885c0740abf00b16c00e80d9bb8ff807db0007428488b05906c25004883c0014885c0488905826c25000f84fc0200004c392d456825000f8432010000488b4590488338000f84f2010000488b45a8c7401800000000e831c8fcff90e9d9faffff498bbda0020000e8af7afaffe94cffffff498b5530498b7508bf30644b0031c0e8d6d6ffffe9ccfeffff488b350a6c25004885f67428c0e803498bbd4804000031d289c183e101e84ff4ffff84c0750e488b05fc6b2500488905cd672500498b8540040000c645b001488d50014883fa010f867dfdffff488b4db84839c874444885c9743f4889c2492b9528040000488b75c04839f27455488b0d7c6725004839f174524839c80f8454010000483b45c00f863dfdffff488945c0488955b8e930fdffff4889c1492b8d2804000048837dc00048894db87504488945c0c645b001e90efdffff31d2e9dff5ffff488945c0e9fefcffff488b4db8488945c0488955b848890d12672500e9e6fcffff488b45b848890502672500e9befeffff89c28b75a401d639f0746131f631c0eb070f1f4000488b0f4c8b04f141f6801503000020750e39f074074189c14e8904c983c0014883c60139f277d9894708e90dfcffffb920654b00ba6b010000be88624b00bffd624b00e830b2f8ffba10000000b801000000e90ffbffff89d0e9dbfbffffb920654b00baa5000000be88624b00bfc1624b00e801b2f8ffb920654b00ba09010000be88624b00bfe8634b00e8e8b1f8ffc7057662250000000000488d65d85b415c415d415e415f5dc3488b05884a25004883e801483b45980f85f9fdffff488b45984889056f4a2500e9e9fdffff48891513662500e9e7fbffffb920654b00bab0020000be88624b00bf45634b00e885b1f8ffb920654b00baaf020000be88624b00bf32634b00e86cb1f8ffb8000000004885c00f848ffdffff48c745b8000000004531edc645b000e943fdffff8b55a485d27520807da200751a488b05966a25004885c00f8401fbffff488338000f84f7faffffff152d6a25004c8b2d766a25004d85ed0f84e1faffff498b45004885c00f84d4faffff4883e801498b7cc50849894500e8fe77faff498b45004885c075e5e9b4faffffbf02000000be58644b00e881d5ffffbf7f000000e8f781fcffb920654b00ba23020000be88624b00bf18634b00e8aeb0f8ff0f1f4000662e0f1f8400000000008b871003000048b900000000020000008d50ff48b8ffffffff03000000899710030000482387100300004839c87411f60572692500407538f3c3660f1f4400008b05f260250085c07416c705e460250002000000ebd9662e0f1f840000000000400fb6f6e967f2ffff0f1f8000000000488b770831c0bfd8644b00e970d3ffff53f687d4030000084889fb75738b971003000085d20f84a5000000b8000000004885c0746bbf40b16c00ffd08b83100300008d50ff89931003000048b8ffffffff030000004823831003000048b900000000020000004839c8743df605c6682500407574b8000000004885c0741b5bbf40b16c00ffe0662e0f1f840000000000f687140300000874645bc30f1f44000083ea01eba00f1f008b051a60250085c0740ec7050c60250002000000ebad669031f64889dfe896f1ffffeba80f1f4000488b7708b96d634b0031d231ffe87ec9ffff660f1f440000488b7308bfd8644b0031c0e888d2ffffe977ffffffb900654b00ba2b030000be88624b00bf5a634b00e81aaff8ff662e0f1f840000000000534889e34883e4c04881ec80020000488984244002000048898c244802000048899424500200004889b424580200004889bc24600200004c898424680200004c898c247002000062f1fd487f042462f1fd487f4c240162f1fd487f54240262f1fd487f5c240362f1fd487f64240462f1fd487f6c240562f1fd487f74240662f1fd487f7c2407660f1b842400020000660f1b8c2410020000660f1b942420020000660f1b9c2430020000488b7310488b7b08e8b97400004989c3660f1a9c2430020000660f1a942420020000660f1a8c2410020000660f1a8424000200004c8b8c24700200004c8b842468020000488bbc2460020000488bb42458020000488b942450020000488b8c2448020000488b84244002000062f1fd486f042462f1fd486f4c240162f1fd486f54240262f1fd486f5c240362f1fd486f64240462f1fd486f6c240562f1fd486f74240662f1fd486f7c24074889dc488b1c244883c418f241ffe36690662e0f1f8400000000004883ec2048891c2448894424084889e34883e4c04881ec8003000048896318488914244c894424084c894c241048894c2418488974242048897c242848896c2430488d433048894424380f294424400f294c24500f295424600f295c24700f29a424800000000f29ac24900000000f29b424a00000000f29bc24b0000000660f1b8424c0020000660f1b8c24d0020000660f1b9424e0020000660f1b9c24f002000062f1fd487f44240362f1fd487f4c240462f1fd487f54240562f1fd487f5c240662f1fd487f64240762f1fd487f6c240862f1fd487f74240962f1fd487f7c240ac5f97f842400030000c5f97f8c2410030000c5f97f942420030000c5f97f9c2430030000c5f97fa42440030000c5f97fac2450030000c5f97fb42460030000c5f97fbc24700300004889e1488b5330488b7328488b7b204c8d4310e87e7400004989c3488b4308488b14244c8b4424084c8b4c24100f284424400f284c24500f285424600f285c24700f28a424800000000f28ac24900000000f28b424a00000000f28bc24b0000000c4627929842400030000c4c179d7f081feffff0000740bc5f97f8424c0000000eb0e62f1fd486f442403c5f97f442440c4627129842410030000c4c179d7f081feffff0000740bc5f97f8c2400010000eb0e62f1fd486f4c2404c5f97f4c2450c4626929842420030000c4c179d7f081feffff0000740bc5f97f942440010000eb0e62f1fd486f542405c5f97f542460c4626129842430030000c4c179d7f081feffff0000740bc5f97f9c2480010000eb0e62f1fd486f5c2406c5f97f5c2470c4625929842440030000c4c179d7f081feffff0000740bc5f97fa424c0010000eb1162f1fd486f642407c5f97fa42480000000c4625129842450030000c4c179d7f081feffff0000740bc5f97fac2400020000eb1162f1fd486f6c2408c5f97fac2490000000c4624929842460030000c4c179d7f081feffff0000740bc5f97fb42440020000eb1162f1fd486f742409c5f97fb424a0000000c4624129842470030000c4c179d7f081feffff0000740bc5f97fbc2480020000eb1162f1fd486f7c240ac5f97fbc24b0000000660f1a8424c0020000660f1a8c24d0020000660f1a9424e0020000660f1a9c24f00200004c8b53104d85d2f2791e488b4c2418488b742420488b7c24284889dc488b1c244883c430f241ffe3488d73384983c2084983e2f04c89d14c29d44889e748c1e903f348a5488b4f18488b7720488b7f28f241ffd3488b63184881ec100100004889e1488901488951080f2941100f29492062f1fd487f815000000062f1fd487f8990000000c5f97f81f0000000c5f97f8900010000660f1b81d0000000660f1b89e0000000db7930db7940488b5318488b7328488b7b20e8f9730000488b0424488b5424080f284424100f284c2420c4e279299424f0000000c5f9d7f281feffff0000750b62f1fd486f842450000000c4e27129942400010000c5f9d7f281feffff0000750b62f1fd486f8c2490000000660f1a8424d0000000660f1a8c24e0000000db6c2440db6c24304889dc488b1c244883c430f2c30f1f00662e0f1f840000000000534889e34883e4e04881ec80010000488984244001000048898c244801000048899424500100004889b424580100004889bc24600100004c898424680100004c898c2470010000c5fd7f0424c5fd7f4c2420c5fd7f542440c5fd7f5c2460c5fd7fa42480000000c5fd7fac24a0000000c5fd7fb424c0000000c5fd7fbc24e0000000660f1b842400010000660f1b8c2410010000660f1b942420010000660f1b9c2430010000488b7310488b7b08e8cd6e00004989c3660f1a9c2430010000660f1a942420010000660f1a8c2410010000660f1a8424000100004c8b8c24700100004c8b842468010000488bbc2460010000488bb42458010000488b942450010000488b8c2448010000488b842440010000c5fd6f0424c5fd6f4c2420c5fd6f542440c5fd6f5c2460c5fd6fa42480000000c5fd6fac24a0000000c5fd6fb424c0000000c5fd6fbc24e00000004889dc488b1c244883c418f241ffe30f1f40004883ec2048891c2448894424084889e34883e4e04881ec8003000048896318488914244c894424084c894c241048894c2418488974242048897c242848896c2430488d433048894424380f294424400f294c24500f295424600f295c24700f29a424800000000f29ac24900000000f29b424a00000000f29bc24b0000000660f1b8424c0020000660f1b8c24d0020000660f1b9424e0020000660f1b9c24f0020000c5fd7f8424c0000000c5fd7f8c2400010000c5fd7f942440010000c5fd7f9c2480010000c5fd7fa424c0010000c5fd7fac2400020000c5fd7fb42440020000c5fd7fbc2480020000c5f97f842400030000c5f97f8c2410030000c5f97f942420030000c5f97f9c2430030000c5f97fa42440030000c5f97fac2450030000c5f97fb42460030000c5f97fbc24700300004889e1488b5330488b7328488b7b204c8d4310e8966e00004989c3488b4308488b14244c8b4424084c8b4c24100f284424400f284c24500f285424600f285c24700f28a424800000000f28ac24900000000f28b424a00000000f28bc24b0000000c4627929842400030000c4c179d7f081feffff0000740bc5f97f8424c0000000eb0fc5fd6f8424c0000000c5f97f442440c4627129842410030000c4c179d7f081feffff0000740bc5f97f8c2400010000eb0fc5fd6f8c2400010000c5f97f4c2450c4626929842420030000c4c179d7f081feffff0000740bc5f97f942440010000eb0fc5fd6f942440010000c5f97f542460c4626129842430030000c4c179d7f081feffff0000740bc5f97f9c2480010000eb0fc5fd6f9c2480010000c5f97f5c2470c4625929842440030000c4c179d7f081feffff0000740bc5f97fa424c0010000eb12c5fd6fa424c0010000c5f97fa42480000000c4625129842450030000c4c179d7f081feffff0000740bc5f97fac2400020000eb12c5fd6fac2400020000c5f97fac2490000000c4624929842460030000c4c179d7f081feffff0000740bc5f97fb42440020000eb12c5fd6fb42440020000c5f97fb424a0000000c4624129842470030000c4c179d7f081feffff0000740bc5f97fbc2480020000eb12c5fd6fbc2480020000c5f97fbc24b0000000660f1a8424c0020000660f1a8c24d0020000660f1a9424e0020000660f1a9c24f00200004c8b53104d85d2f2791e488b4c2418488b742420488b7c24284889dc488b1c244883c430f241ffe3488d73384983c2084983e2f04c89d14c29d44889e748c1e903f348a5488b4f18488b7720488b7f28f241ffd3488b63184881ec100100004889e1488901488951080f2941100f294920c5fd7f4150c5fd7f8990000000c5f97f81f0000000c5f97f8900010000660f1b81d0000000660f1b89e0000000db7930db7940488b5318488b7328488b7b20e8106e0000488b0424488b5424080f284424100f284c2420c4e279299424f0000000c5f9d7f281feffff00007506c5fd6f442450c4e27129942400010000c5f9d7f281feffff00007509c5fd6f8c2490000000660f1a8424d0000000660f1a8c24e0000000db6c2440db6c24304889dc488b1c244883c430f2c390662e0f1f840000000000534889e34883e4f04881ec0001000048898424c000000048898c24c800000048899424d00000004889b424d80000004889bc24e00000004c898424e80000004c898c24f00000000f2904240f294c24100f295424200f295c24300f296424400f296c24500f297424600f297c2470660f1b842480000000660f1b8c2490000000660f1b9424a0000000660f1b9c24b0000000488b7310488b7b08e8016900004989c3660f1a9c24b0000000660f1a9424a0000000660f1a8c2490000000660f1a8424800000004c8b8c24f00000004c8b8424e8000000488bbc24e0000000488bb424d8000000488b9424d0000000488b8c24c8000000488b8424c00000000f2804240f284c24100f285424200f285c24300f286424400f286c24500f287424600f287c24704889dc488b1c244883c418f241ffe36690662e0f1f8400000000004883ec2048891c2448894424084889e34883e4f04881ec8003000048896318488914244c894424084c894c241048894c2418488974242048897c242848896c2430488d433048894424380f294424400f294c24500f295424600f295c24700f29a424800000000f29ac24900000000f29b424a00000000f29bc24b0000000660f1b8424c0020000660f1b8c24d0020000660f1b9424e0020000660f1b9c24f00200004889e1488b5330488b7328488b7b204c8d4310e8666900004989c3488b4308488b14244c8b4424084c8b4c24100f284424400f284c24500f285424600f285c24700f28a424800000000f28ac24900000000f28b424a00000000f28bc24b0000000660f1a8424c0020000660f1a8c24d0020000660f1a9424e0020000660f1a9c24f00200004c8b53104d85d2f2791e488b4c2418488b742420488b7c24284889dc488b1c244883c430f241ffe3488d73384983c2084983e2f04c89d14c29d44889e748c1e903f348a5488b4f18488b7720488b7f28f241ffd3488b63184881ecf00000004889e1488901488951080f2941100f294920660f1b81d0000000660f1b89e0000000db7930db7940488b5318488b7328488b7b20e8916a0000488b0424488b5424080f284424100f284c2420660f1a8424d0000000660f1a8c24e0000000db6c2440db6c24304889dc488b1c244883c430f2c30f1f80000000000fbe070fbe16662e0f1f84000000000084c00f84b90000008d48d080f9098d4ad00f878900000080f9090f87b0000000448d40d00fbe47018d4ad04c8d57014c8d4e014c89d78d50d080fa09771a6690438d14804883c701448d4450d00fbe078d50d080fa0976e80fbe56018d72d04080fe094c89ce77200f1f8400000000008d0c894883c6018d4c4ad00fbe16448d4ad04180f90976e84439c10f846fffffff4489c029c8c3660f1f84000000000080f909762238d075240fbe47010fbe56014883c7014883c60184c00f8547ffffff0fbec2f7d8c3b8ffffffffc329d0c3b801000000c3662e0f1f840000000000554889e54157415641554154534889fb4883ec48f605fd572500010f851f0600004c8b25984f25004d85e40f842f0200004983fcff0f84bd0000004c8b2d764f25004c8b35674f25004983fdff0f84b50200004b8d0c3431f6bfde5b4b004c29e94989ce48894dc0894dcce8f031ffff4c8b25414f250089459c458b7c24144183ef0178734589fb41d1fb4963c38945c8488d0440418b74c4344139f676594531f6eb360f1f4000448b7dc84183ef014539f77c43438d04374189c341c1eb1f4101c341d1fb4963c38945c8488d0440418b74c4343975cc761e4c01ee4889dfe82bfeffff85c0742779bd448b75c84183c6014539f77dbd488d65d831c05b415c415d415e415f5dc30f1f8000000000488b05794b2500488945a8488b055e4b2500488945a08b45c885c00f8e9d050000448d70ff4963ce488d0449418b74c4343975c07727e9550600000f1f4400004585f67432418d4eff4863c1488d0440418b74c4343975cc761d4189ce418d46014c01ee4889df8945c0e891fdffff85c074cd448b75c0813d07362500030300008b05295725008945b00f8450050000448b45b048c745b800000000488b4da84585c00f850702000048234da048b800000000000000804809c848f7d0488945b0eb120f1f4400004183c6014539f70f8c1b030000443975c84963ce7d2d488d044948894dc0418b74c4343975cc0f86fc0200004c01ee4889dfe801fdffff85c0488b4dc00f85e5020000488d0449498d04c48178300303000075ac8b4838394dcc76a448837db800759d488b4040488545b075934885c074078b7d9c85ff7487498d440d00488945b8e979ffffff90ba01000000be90c96c00bf31654b00e85cbfffff4883f8ff4989c40f840b0400004c8b35284d25004983fe100f86ef030000ba0b000000be54654b004889c7e8ac86f8ff85c00f85f0030000418b44240c4c8925084d2500488d0440488d0485170000004883e0f84d8d2c044883c0304939c64c892dde4c2500721aba14000000be60654b004c89efe86286f8ff85c00f8453fdffff48c705b74c2500ffffffff0f1f8000000000418b44240c4d01e64889c2488d04404d8d6c84104d29ee83ea014c8975b8448975c88955cc0f88c5fdffff4189d341d1fb4963c38945c0488d0440418b7484144139f60f86a7fdffff4531ffeb48662e0f1f8400000000008b45c083e8018945cc443b7dcc0f8f85fdffff8b45cc4401f84189c341c1eb1f4101c341d1fb4963c38945c0488d0440418b7484143975c80f865afdffff4c01ee4889dfe867fbffff85c00f84af01000079ad448b7dc04183c701ebac0f1f0048234da048b800000000000000804809c848f7d0488945a8eb13660f1f4400004183c6014539f70f8c13010000443b75c84963ce7e2d488d044948894dc0418b74c4343b75cc0f83f40000004c01ee4889dfe8f9faffff85c0488b4dc00f85dd000000488d0449498d04c48178300303000075ac8b4838394dcc76a448837db800759d488b7040488575a875938b55b039503c778b4885f6740b8b759c85f60f847bffffff498d440d00488945b8e96dffffff4183c6014539fe0f8f7e030000443b75c84963ce7e2f488d044948894dc0418b44c4343945cc0f865f030000498d7405004889dfe864faffff85c0488b4dc00f8546030000488d0449498d04c48178300303000075aa8b4838394dcc76a2488b7040488575b875988b55b039503c77904885f674078b459c85c07484498d440d00488945b80f1f840000000000f60511532500010f855301000048837db8000f84e0fbffff488b5db84889dfe89cb9faff488d50014883c01f4889de4883e0f04829c4488d4c240f4883e1f04889cfe84943fbff4889c7e821b9faff488d65d85b415c415d415e415f5dc366908b45c085c00f8e3e020000448d70ff4d63fe4b8d047f418b7484143975b87725e9860200000f1f004585f6742e418d7eff4863c7488d0440418b7484143975c876194189fe4c01ee4889df458d7e01e85cf9ffff85c074d04589fe813dd3312500030300000f84f101000048c745b800000000eb110f1f004183c601443b75cc0f8f1affffff443975c04d63fe7d254b8d047f418b7484143975c80f86fffeffff4c01ee4889dfe804f9ffff85c00f85ecfeffff4b8d047f498d04848178100303000075b38b40183945c876ab48837db80075a44c01e8488945b8eb9b0f1f00be31654b00bf42654b0031c0e80fbcffffe9cbf9ffff662e0f1f840000000000488b45b84885c00f848bfaffff4889c6bf694c4b0031c0e8e4bbffffe997feffff4c89f64c89e7e8947efcff48c70529492500ffffffffe95cfaffff4983fe3076dfba14000000be60654b004c89e7e89c82f8ff85c075c94c8925f94825004c8925fa4825004d89e5e985f9ffff813dc0302500030300008b05e2512500448b75c88945b00f85b5faffff0f1f440000488b4da848234da048b800000000000000804809c88b4db048f7d0488945b885c90f8569fdffffeb140f1f80000000004183c6014539f70f8cd1000000443975c84963ce7d2f488d044948894dc0418b44c4343945cc0f86b2000000498d7405004889dfe8b7f7ffff85c0488b4dc00f8599000000488d0449498d04c48178300303000075aa8b4838394dcc76a2488b4040488545b875984885c00f845efdffff8b559c85d27488e952fdffff0f1f00448b75c8e9def9ffff813de52f2500030300004189c60f850ffeffff443b75c04d63fe7e1f496bc70c418b4404143945c8762b498d7405004889dfe830f7ffff85c0751a496bc70c4c01e08178100303000074204183c601443b75cc7ebe48c745b800000000e9f5fcffff448b75c0e9a7fdffff8b40183945c876d84c01e8488945b8e9d8fcffff0f1f840000000000488b3d89472500488d47ff4883f8fd7607c3660f1f4400004883ec08488b355d472500e8c87cfcff48c7055d472500000000004883c408c30f1f840000000000415455534883ec20488b8690020000488b2e4c8b670848036808488b074839c5740e4883c4205b5d415cc30f1f440000b8000000004889fb4885c074114889742408bf40b16c00ffd0488b742408488b034839c5741ab8000000004885c074c2bf40b16c00ffd04883c4205b5d415cc348c703f0844700488b4668418b4c240c488b7808488b4670488d1449488b4008488d04d048894424180fb65004c0ea0484d20f8490000000f64005030f8586000000488b96c80100004885d20f84ae000000488b52080fb7144a81e2ff7f0000488d0c52488b96e00200004c8d04caba00000000458b48084585c94c0f44c28b00488b8e8003000041b9010000006a006a01488d5424284801c7e8f17dffff4889c6488b4424285a594885c0751a498b4424104889430848c70370844700e923ffffff0f1f440000488b9640040000488d7a014889d14883ff017634498b542410480350084889d04829c84889430848c70360844700e9ebfeffff0f1f4400004531c0e977ffffff0f1f8400000000004889f74889742408e8438effff488b742408488b442418488b8e40040000ebac488b074839f07408c30f1f8000000000b8000000004883ec084885c07407bf40b16c00ffd0b8000000004885c07411bf40b16c004883c408ffe0660f1f4400004883c408c390662e0f1f840000000000488b8740030000488bb7480300004889c74829c6e9a77afcff0f1f8000000000488b4008c390662e0f1f840000000000488b400864482b042500000000c366904883ec484889042448897c24084889c74889742410488b7424484c894424184c894c24204c895424284c895c2430488954243848894c2440e893fdffff488b0424488b7c2408488b7424104c8b4424184c8b4c24204c8b5424284c8b5c2430488b542438488b4c24404883c450ff20904883ec484889042448897c24084889c74889742410488d35150000004c894424184c894c24204c895424284c895c2430488954243848894c2440e8c1feffff488b0424488b7c2408488b7424104c8b4424184c8b4c24204c8b5424284c8b5c2430488b542438488b4c24404883c448ff20662e0f1f8400000000000f1f4400004889fe488b3c24e9e47600000f1f400048833d004d25000074164889fe488b3c24e9ca760000662e0f1f840000000000f3c3662e0f1f8400000000000f1f4000534c8b0d084d25004889fb488b57108b770848c7c1feffffff4883ec08448b05e44c2500ff3566402500488b3fe8bec6ffff48894318585a5bc3660f1f44000053488d57184889fb4531c94883ec20488b3748c747180000000048c7042475654b00c744240c01000000c744240885cf630948c744241000000000488b8e80030000488b7f086a006a004c8d442410e80c7bffff488943104883c4305bc3669053488b374889fb48c7471800000000488d5718488b7f086a006a024531c9488d8e880300004531c0e8d37affff48894310585a5bc390662e0f1f840000000000e93be2ffff90662e0f1f8400000000004883ec384989f8b990864700488d54241f488d742428488d7c242048c744242800000000e847aeffff85c0751b48837c242800750b4883c438c3660f1f440000b8010000000f1f00807c241f0074e6488b7c24288944240ce80359faff8b44240c4883c438c3662e0f1f8400000000004883ec48b95086470048897c242048897424284c8d442420488d54240f488d742418488d7c241048c744241800000000e8cbadffff85c0752748837c241800751f488b4424304885c07403488b00488b542438480342084883c448c30f1f4000807c240f00750931c04883c448c36690488b7c2418e87658faff31c0ebeb66904883ec68b9b0854700488b44246848897c24204c8d44242089742428488d542410488d742440488d7c241848c7442440000000004889442430e842adffff85c0757648837c244000756e488b4424384c8d442440488d54240f488d742418488d7c2410b9f085470048c744244883654b0048c7442418000000004889442440e8fcacffff85c0754848837c2418007540488b4424504885c07403488b00488b54245848034208743948c700c0ba6c00eb300f1f8000000000807c241000753931c04883c468c3662e0f1f840000000000807c240f00740a488b7c2418e88f57faff488b7c2438e895260000488b4424384883c468c30f1f00488b7c2440e86e57faffebbb6690662e0f1f8400000000004883ec48b9f085470048897c242048897424284c8d442420488d54240f488d742418488d7c241048c744241800000000e83bacffff85c0752748837c241800751f488b4424304885c07403488b00488b542438480342084883c448c30f1f4000807c240f00750931c04883c448c36690488b7c2418e8e656faff31c0ebeb66904883ec48b9f085470048897c24204c8d442420488d54240f488d742418488d7c241048c744242883654b0048c744241800000000e8b7abffff85c0753348837c241800752b488b4424304885c07403488b00488b54243848034208740748c700c0ba6c004883c448c30f1f8000000000807c240f0074ed488b7c2418e85f56faff4883c448c3662e0f1f84000000000064488b0425000000004805f8ffffffc34c8b47304c8b4f08488b573849c1c811644c3304253000000049c1c911644c330c253000000048c1ca1164483314253000000090488b1f4c8b67104c8b6f184c8b77204c8b7f2889f04c89c44c89cd90ffe2662e0f1f8400000000000f1f40004883ea017914eb300f1f8400000000004883ea014883faff741e488b04d7488b0cd64839c874e94839c119c083e00283e801c30f1f44000031c0c30f1f440000415741564989d24155415455534883ec784983f9010f84320300004983f9020f84290200004d85c90f84be0100004889c848897c243048897424284c29c84889cb4c894c24104c8d34c24a8d04cd000000004c8944241848c744246800000000488d78f8498b6c00f848894424384c8d60f04d8b7c00f04889fe48897c2440498d0436488b08488904244839cd0f866a03000048035c2428488b4424104829c34883eb014989dd0f882b010000488d78ff488d50feb8080000004889fb48897c2448488b7c24384883faff488d14dd00000000480f4cf84889d64829fe4829f848897c24584801d0488d5e1048894424504c89e84d89fd48895c24604d89e74989c4660f1f4400004c396424280f8ff5000000488b4424384983ee08498b04064889442408488b4424404c01f0488904244839cd48c7c3ffffffff7448488b04244889ca488b00488944242048f7f54889c34889d14c89e848f7e3eb120f1f0031f64c39e8400f92c64c29e84829f24839ca7708750f4b3b043e76094883eb014801e973db488b542410488b7424184889d94c89f7e86618000048394424087419488b4c2410488b5424184c89f64c89f74883eb01e8a6720000488b4424304a891ce0488b04244983ec014983fcff488b080f8530ffffff488b4424684883c4785b5d415c415d415e415fc3b8010000004883c47848995b49f7f95d415c415d415e415fc30f1f00488b042448837c244800488b0048894424087826488b442450488b54245848894c2420498d3406488b442460498d3c06e86376f8ff488b4c242049c70600000000e9e3feffff488d6ccaf04d8b48084d8b104531e44c8b4508488b45004d39c10f866d0100004c8d5c0efd4d85db78634c89d348f7db66904c39de7f73488b4df84883ed084d39c174754c89c249f7f14989c54989d04c89d049f7e50f1f40004c39c2770775154839c876104983ed014c29d04883da004d01c873e44829c14919d04e892cdf4889c84983eb014983fbff75a5488945004c8945084883c4785b4c89e05d415c415d415e415fc30f1f0031c94d39c148c7450000000000758b4c01c84989c073214d29d04ac704dfffffffff4c01d14983d0004889c8ebab662e0f1f84000000000031c04d85d24c89d20f95c049c7c5ffffffff4829c24889d8e95bffffff4d8b00488b54caf84531e44939d076734c8d1cf5000000004c01df4883e90278234c8d0ccf660f1f440000498b04ca4883e9014983e90849f7f0498941084883f9ff75e74885f67e25488d4ff84c29df31f64883ef080f1f4400004889f04883e90849f7f0488941084839cf75ed4989124883c4784c89e05b5d415c415d415e415fc34c29c241bc01000000eb8272094939c20f8788feffff4989c341bc010000004d29d34d19c84c89d8e971feffff7221498d51ff4c89c64c89f748894c2408e8adfbffff85c0488b4c24080f8873fcffff488b4c2410488b5424184c89f64c89f7e81b150000488b042448c744246801000000488b08e949fcffff660f1f440000488d7cd7f8488d74d6f889d083e003751e4c8b164c8b5ef831c04c0fa5d04c8b46f0488d7f184883ea04e9a300000083f80273284c8b0e31c04c0fa5c84883ea0272124c8b56f84c8b5ef0488d76f8488d7f10eb7149d3e14c890fc375324c8b064c8b4ef831c04c0fa5c04883ea03720e4c8b56f0488d76f0488d7f08eb3b4d0fa5c84c890749d3e14c894ff8c366904c8b1e4c8b46f831c04c0fa5d84c8b4ef0488d76e84883ea0472410f1f4400004d0fa5c34c8b164c891f4d0fa5c84c8b5ef84c8947f84d0fa5d14c8b46f04c894ff04d0fa5da4c8b4ee84c8957e84883c6e0488d7fe04883ea0473c44d0fa5c34c891f4d0fa5c84c8947f849d3e14c894ff0c3662e0f1f8400000000000f1f0089d083e00375224c8b164c8b5e0831c04c0fadd04c8b4610488d7608488d7fe84883ea04e9a900000083f80273284c8b0e31c04c0fadc84883ea0272124c8b56084c8b5e10488d7610488d7ff0eb7749d3e94c890fc375384c8b064c8b4e0831c04c0fadc04883ea03720e4c8b5610488d7618488d7ff8eb424d0fadc84c890749d3e94c894f08c30f1f8400000000004c8b1e4c8b460831c04c0fadd84c8b4e10488d76204883ea0472410f1f4400004d0fadc34c8b56f84c891f4d0fadc84c8b1e4c8947084d0fadd14c8b46084c894f104d0fadda4c8b4e104c8957184883c620488d7f204883ea0473c44d0fadc34c891f4d0fadc84c89470849d3e94c894f10c3662e0f1f8400000000000f1f00554889e541574156415541544989d5534d89c74883ec484983f81f48897dc0488975c848894db80f8fa300000031c04d85c00f84fb000000488b094883f9010f8603010000e8b6030000488b55c04983ff014e8d34ed000000004a8904ea4c8d62080f8ecb000000488b5db84e8d3cfa4883c308eb2e662e0f1f840000000000488b75c84c89ea4c89e7e8116e00004b8904344983c4084883c3084d39fc0f848f000000488b0b4883f90177d3b80000000075db488b55c84c89e94c89e64c89e7e82a6d0000ebc70f1f8400000000004c89c04889ca4c89f948c1e0044989f44a8d1cfd000000004c8d70104901dc4c29f4488d44240f4883e0f04989c0488945a8e8a9050000488b45c04d89eb4d29fb4d39df4c8d0c180f8eb20100004d85db0f85f9000000488b45c04d01fd4a8b44e8f8488d65d85b415c415d415e415f5dc3660f1f440000741e4885d27e0f488d14d50000000031f6e82271f8ff31c0e9e5feffff0f1f004885d27ef14889f84889f34883c0104839c6488d46100f93c24839c70f93c008c20f843e0200004983fd180f86340200004889f048c1e03c48c1e83f4c39e8490f47c54531d24885c0740c488b1641ba010000004889174c89ef31d231c94829c748c1e003488d77fe4c8d1c03480345c048d1ee4883c6014c8d043666410f6f04134883c1010f1104104883c2104839ce77e94939f84b8d04100f8456ffffff488b5dc8488b14c3488b5dc0488914c331c0e92bfeffff904c8b75a8488b75b84d89d84c89e14c89fa4c895db04c894dc84c89f7e8bffdffff4c8b4dc84c89f24c89f94c89ce4c89cfe89a6b00004c89f24c8b4dc84c8b5db04801da488d7208488b124d8d14194801d0498d7a084839c2498902762566904983eb010f849dfeffff4883c608488b46f84883c7084883c0014885c0488947f874dd4839f70f847bfeffff4983fb010f8e71feffff4a8d14ddf8ffffffe8dd2efbffe95ffeffff0f1f8400000000004c29f44d29fb4c896d90488d44240f4d8d34194d89dd4883e0f0488945c84801d8488945a04883c00848894598eb2b904839f774134883fa017e0d488d14d5f8ffffffe8882efbff4901dc4d89eb4901de4d29fd0f8c960000004c8b45a8488b55b84c89f0488b7dc84829d84c89f94c89e6488945b0e865030000488b45b0488b55c84c89f94889c64889c7e88f6a0000488b4da04c8975b0498d7e08488b7598488b114801d04839c24989064c89fa0f867affffff4883ea01748c0f1f40004883c608488b46f84883c7084883c0014885c0488947f80f8553ffffff4883ea0175dde960ffffff0f1f8400000000004c8b4db04c8b6d90e951fdffff488b4dc0488b75c831c0660f1f840000000000488b14c6488914c14883c0014939c575ef31c0e952fcffff0f1f840000000000534d31d2488b064889d348f7e14989db4c01d04883d20083e303743283fb0274597f4249ffcb7508488907e9e40000004a8d74de084a8d7cdff849f7db4d31d231db4989c14a8b04de4989d0eb664a8d34de4a8d7cdff049f7db4d31d24989c04889d3eb5d4a8d74def84a8d7cdfe849f7db4889c34989d2eb5b4a8d74def04a8d7cdfe049f7db4d31c031db4989c24a8b44de184989d1eb600f1f80000000004e8914df4901c14a8b04de4911d041ba0000000048f7e14e894cdf084901c04811d34a8b44de0848f7e14e8944df104801c34911d24a8b44de1048f7e14a895cdf1841b8000000004c89c34901c24a8b44de184d89c14911d148f7e14983c304789e4e8914df4901c14c11c24e894cdf084c01c24889d05bc30f1f8000000000415741564989cf415541544989f655534989d44889fb4883ec08488b0a4883f9010f86890000004c89fae8b1feffff4a8904fb4883c3084983ff014e8d2cfd00000000bd010000007f25eb4c0f1f40004c89fa4c89f64889dfe8226900004883c5014a89042b4883c3084939ef7429498b0cec4883f90177d7b80000000075de4c89f94c89f24889de4889dfe83f680000ebcb0f1f4400004883c4085b5d415c415d415e415fc3660f1f840000000000741e4d85ff7e0f4a8d14fd0000000031f6e89a6cf8ff31c0e962ffffff0f1f004d85ff7ef1488d47104839c6488d46100f93c24839c70f93c008c20f84810000004983ff18767b4889f048c1e03c48c1e83f4c39f8490f47c731ff4885c0740b488b16bf010000004889134d89f831d231c94929c048c1e003498d70fe4d8d0c064801d848d1ee4883c6014c8d143666410f6f04114883c1010f1104104883c2104839f172e94d39d0498d043a0f8463ffffff498b14c6488914c331c0e9bdfeffff31c00f1f4000498b14c6488914c34883c0014939c775ef31c0e99ffeffff415741564989d6415541544d89c455534889cb4889fd4883ec4883e1014889742408746c4c8d6bff4983fd1f0f8ece0300004c89e9e8c6ffffff4c8b7c24084e8d64ed004b8b0cee4c89ea4c89e74c89fee89a6700004c89ea4c89f64c89e748c1e20448894415004b8b0cef4889da4c01ebe879670000488944dd004883c4485b5d415c415d415e415fc30f1f4400004989df4889f149d1ff4a8d04fd000000004801c148894424184c8d2c02488d04dd000000004889ce48894c241048894424304801f84983ff1f48894424200f8e140300004c89f94c89ea4889c7e81effffff488b742408488b7c24104c89fae8acf1ffff85c04c89f90f88b1030000488b542408488b7424104889efe81f0b0000c744242801000000c7442438000000004c89fa4c89f64c89efe871f1ffff85c0488b4424180f88a40300004801e84c89f94c89f24c89ee4889c74889442410e8db0a00004983ff1f0f8ff9020000488b5424104889ee4c89f94c89e7e8fefcffff4d85ff4a8d343b0f8ebe000000488d14dd100000004a8d34fd00000000488d42f0488d4e104839c10f9ec14839f20f9ec24801e808d10f84820300004983ff180f867803000048c1e03c48c1e83f4c39f8490f47c731c94885c0740f488b54dd00b90100000048895435004c89ff488d14034829c74c01f8488d77fe4c8d54d5004c8d5cc50031d231c048d1ee4883c6014c8d043666410f6f04024883c201410f1104034883c0104839f272e84c39c7498d04084a8d343b7411488d14034c01f8488b54d500488954c500488b7c24204c8d6cf5004c89f94c89ea4889fee8eb64000048894424388b44242885c00f84ca010000488b7c24104889d94c89e24889fee8b7090000488b7424384829c648897424284983ff1f0f8f80010000488b7424084c89f94c89f24c89e7e8cdfbffff488b7c24104889d94c89e24889fee88a64000048034424287414498b55004801d04839c2498945000f87af0100004d85ff0f8e9a000000488d45104939c4498d4424100f93c24839c50f93c008c20f84190200004983ff180f860f0200004c89e048c1e03c48c1e83f4c39f8490f47c731f64885c0740d498b1424be01000000488955004c89ff31d24531db4829c748c1e003488d4ffe4d8d14044801e848d1e94883c1014c8d040966410f6f04124983c3010f1104104883c2104939cb72e94c01c64c39c77409498b04f4488944f500488b542418488b7c24104c89f94c01e24889fee8b46300004885c00f84e7fcffff488b4c2420488b11488d42014839c24889010f86cffcffff4889c84883c008eb23662e0f1f8400000000004883c008488b78f8488d57014885d2488950f80f85a3fcffff4883eb0175e1e998fcffff0f1f40004c89f94c89ea4889c7e87afaffffe9e7fcffff0f1f4400004c89e9e868faffffe92dfcffff0f1f004c8b442430488b7424084c89f94c89f24c89e74d01e0e8d5fbffffe973feffff488b7c24104889d94c89e24889fee8fd62000048034424384889442428e934feffff660f1f440000488b442430488b5424104c89f94889ee4c89e74d8d0404e88cfbffffe906fdffff0f1f80000000004983c5084c89faeb160f1f80000000004983c508498345f8010f8532feffff4883ea0175ebe927feffff660f1f440000488b542410488b7424084889efe86e070000c744242800000000c744243801000000e94afcffff660f1f8400000000004801e84c89f94c89ea4c89f64889c74889442410e8370700008b44243889442428e94ffcffff662e0f1f84000000000031c0660f1f440000498b14c4488954c5004883c0014939c775eee945feffff904a8d343b4c89f94829d9488d7cf50090488b10488914c84883c0084839c775f0e9e8fcffff90662e0f1f840000000000415641554989f64154554989d453488b0e4889fb4883f901767ee8d1f7ffff4a8904e34883c3084983fc014e8d2ce500000000bd010000007f25eb4c0f1f40004c89e24c89f64889dfe8426200004883c5014a89042b4883c3084939ec7429498b0cee4883f90177d7b80000000075de4c89e14c89f24889de4889dfe85f610000ebcb0f1f4400005b5d415c415d415ec30f1f8000000000741e4885d27e0f488d14d50000000031f6e8c265f8ff31c0e96affffff0f1f004885d27ef1488d47104839c6488d46100f93c24839c70f93c008c20f84820000004983fc18767c4889f048c1e03c48c1e83f4c39e0490f47c431ff4885c0740c48c70301000000bf010000004d89e131d231c94929c148c1e003498d71fe4d8d04064801d848d1ee4883c6014c8d143666410f6f04104883c1010f1104104883c2104839f172e94d39d1498d043a0f8462ffffff498b14c6488914c331c0e9c4feffff31c00f1f00498b14c6488914c34883c0014939c475ef31c0e9a7feffff0f1f840000000000415741564989fe415541544989f555534889d34889cd4883ec3883e20174714c8d7bff4983ff1f0f8e7b0300004c89fae8cbffffff4e8d24fd000000004c89fa4c89ee4b8d6c25004d01f44c89e7488b4d00e8b96000004c89fa4c89ee4c89e748c1e20449890416488b4d004889da4c01fbe899600000498904de4883c4385b5d415c415d415e415fc3660f1f4400004989df49d1ff4a8d04fd0000000048894424084c8d2406488d04dd0000000048894424284801f84983ff1f48894424180f8eca0200004c89fa4c89e64889c7e82cffffff4c89fa4c89ee4c89e7e8deeaffff85c04c89f90f883b0300004c89ea4c89e64c89f7e8550400004983ff1f0f8fd30200004c89fa4c89f64889efe86dfdffff4d85ff0f8e6a0300004a8d04fd10000000488d0cdd000000004d85ffba01000000488d70f0488d7910490f4fd74839f7400f9ec74839c80f9ec04008c70f840a0300004883fa180f8600030000498d040e48c1e03c48c1e83f4839d0480f47c231f64885c0740d498b0c0ebe010000004b890cfe4829c2498d4fff41bb00000000488d7afe48d1ef4883c7014d85ff490f4ecb4c8d043f4839c87439488d0c034c01f84d8d1cc631c04d8d24ce31c9660f1f44000066410f6f04044883c101410f1104034883c0104839f972e84c01c64c39c2740f488d04334c01fe498b04c6498904f6498d041f488b7c24184c89f94d8d24c64889fe4c89e2e84e5e0000488b4c24084889ea4889442420498d3c0e4889d94889fe48897c2410e81d030000488b7424204829c64983ff1f48897424200f8f6e0100004c89fa4c89ee4889efe828fcffff488b7c24104889d94889ea4889fee8f55d000048034424207414498b14244801d04839c2498904240f87720100004d85ff0f8e99000000498d46104839c5488d45100f93c24939c60f93c008c20f84950100004983ff180f868b0100004889e848c1e03c48c1e83f4c39f8490f47c731f64885c0740c488b5500be010000004989164c89ff31d24531ed4829c748c1e003488d4ffe4c8d6405004c01f048d1e94883c1014c8d1c0966410f6f04144983c5010f1104104883c2104939cd72e94c01de4c39df7409488b44f500498904f6488b542408488b7c24104c89f94801ea4889fee8205d00004885c00f8432fdffff488b742418488b16488d42014839c24889060f861afdffff4889f54883c508eb15660f1f4400004883c508488345f8010f85fcfcffff4883eb0175ebe9f1fcffff660f1f4400004c89fa4c89e64889c7e8e2faffffe931fdffff0f1f4400004c89fae8d0faffffe980fcffff0f1f00488b4c24284c89fa4c89ee4889ef4801e9e832fcffffe985feffff0f1f440000488b4424284c89fa4c89f64889ef488d4c0500e810fcffffe927fdffff0f1f004983c4084c89faeb170f1f80000000004983c40849834424f8010f856efeffff4883ea0175eae963feffff0f1f4400004c89e24c89ee4c89f7e81a010000e9c0fcffff0f1f44000031c0660f1f440000488b54c500498914c64883c0014939c775eee9c9feffff90498d14364c01f131c00f1f8000000000488b34c1488934c24883c0014939c77fefe971fdffff498d041f488b7c24184c89f94d8d24c64889fe4c89e2e8bf5b0000488b4c24084889ea4889442420498d340e4889d94889f74889742410e88e000000488b7424204829c64889742420e976fdffff6690662e0f1f840000000000554839d64889c84889e574344883f91f7e1e48c1e1044883c1104829cc4889c14c8d44240f4983e0f0e812f4ffffc9c3e87bf2ffffc9c3660f1f8400000000004883f91f4889ca7f07e852f9ffffc9c348c1e2044883c2104829d44889c2488d4c240f4883e1f0e8b4faffffc9c366904d31c04c8b164c8b1a488d74cef8488d54caf8488d7ccff089c848f7d983e003740f4801c183f8027c16741949d1e8eb5349d1e84d89d04d89d9488d4904eb3249d1e8eb6049d1e84d89d04d89d9eb464d19da4c89570889c811c0c30f1f40004c8b44cee84c8b4ccae84d19da4c8954cfe84c8b54cef04c8b5ccaf04d19c84c8944cff04c8b44cef84c8b4ccaf84d19da4c8954cff84c8b14ce4c8b1cca4d19c84c8904cfe3a9488d4904ebb30f1f005355488d1a48f7db488b064c8b17488d7cd7f0488d34d648f7e10fbae30072244c8d18488b44de08488d2a48f7e14883c3020f89900000004c8d00488b04de4c8d0aeb4c4883c3010f898a0000004c8d00488b04de4c8d0a48f7e14c8d18488b44de08488d2aeb490f1f84000000000048f7e14d29c24c8d00488b04de4d11cb4c8954dff84c8b14df4c8d0a4883d50048f7e14d29da4c8d18488b44de084911e84c8914df4c8b54df08488d2a4983d1004883c30278b948f7e14d29c24d11cb4c8957f84883d5004c8b174d29da4811e84c89174883d2004c8b57084929c24c89570889d84811d05d5bc30f1f44000066480f7ec666480f7ec048c1ee3f893166480f7ec148beffffffffffff0f004821c648c1e83048c1e93481e1ff07000081e9ff030000a9f07f0000890a488937752e4885f67449480fbdceb802fcffff4883f13f83e90b29c848d3e64889378902b801000000c3660f1f84000000000048b800000000000010004809c6b801000000488937c3662e0f1f840000000000c70200000000b801000000c30f1f4000db6c2408db7c24e80fb64424f1c0e8070fb6c089010fb74424f06625ff7f0fb7f06685c08d8e01c0ffff890a488b4c24e848890f741a4885c9750e81feff7f00007406c70200000000b801000000c3904885c974ee48b8ffffffffffffff7f4821c84885c04889077426480fbdc84883f13f48d3e0488907b802c0ffff29c88902b801000000c3660f1f84000000000048b80000000000000080488907c70202c0ffffeba4662e0f1f840000000000904881ecd800000084c0488954243048894c24384c894424404c894c244874370f294424500f294c24600f295424700f299c24800000000f29a424900000000f29ac24a00000000f29b424b00000000f29bc24c0000000488d8424e0000000488d5424084889442410488d442420c744240810000000c744240c300000004889442418e8090000004881c4d8000000c3904154554989fc534889d54889f34531c031c9baffffffff4881ecf0000000be008000004889e748c784248800000000000000e8a9aff9ff4c89e64889e731c931d248c78424d800000040214a00e80ec7f9ff4889ea4889de4889e731c9e83e5900004881c4f00000005b5d415cc36690f7070020000074108b477085c07809f3c30f1f800000000048c7c0d0ffffff64c70009000000b8ffffffffc30f1f4000538b074889fb4989f1250080000075594c8b8788000000644c8b1425100000004d3b5008743ebe01000000833dba292500007409f0410fb1307508eb1c410fb1307416498d384881ec80000000e8fe7ffcff4881c4800000004c8b83880000004d8950084183400401b9030000004c89ce4889dfe857d3000031d24883f8ff0f94c2f7daf70300800000740489d05bc3488bb388000000836e040175ef48c7460800000000833d40292500007407f0ff0e7506eb1aff0e7416488d3e4881ec80000000e8b87ffcff4881c48000000089d05bc34889c6f70300800000753f488b9388000000836a0401753248c7420800000000833df2282500007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e86a7ffcff4881c4800000004889f7e8cb1e0200662e0f1f84000000000090538b074889fb25008000007556488b9788000000644c8b0425100000004c3b4208743cbe01000000833d8d282500007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e8d37efcff4881c480000000488b93880000004c8942088342040131c9ba0100000031f64889dfe82cd200004889c28b03f6c40174324883faff0f84a80000008bb3c000000085f67e0ef6c4800f84b50000004889d05bc3488b4b58482b4b484829ca0f1f440000f6c480742b4883faff4889d075e048c7c2d0ffffff48c7c0ffffffff648b0a85c975cb64c702050000005bc30f1f4000488bb388000000836e040175c848c7460800000000833dc0272500007407f0ff0e7506eb1aff0e7416488d3e4881ec80000000e8387efcff4881c4800000004883faff4889d00f8572ffffffeb906690f6c4807589488bb388000000836e04010f8578ffffffeba50f1f840000000000488bb388000000836e04010f853affffffeb8a4889c6f70300800000753f488b9388000000836a0401753248c7420800000000833d32272500007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8aa7dfcff4881c4800000004889f7e80b1d0200662e0f1f8400000000009041545531c0534889f3480fafda4885db750e5b5d415cc3660f1f8400000000004989d44889f54889da4889fe4889cfe8fca6f9ff4839c3740f31d248f7f55b5d415cc30f1f4400004c89e0ebc50f1f00b8000000004885c0742e4883ec08be50ad4700bfc4c96c00e8d354b8ff85c0740b48c7058c1e2500e0c96c004883c408c30f1f800000000048c705751e2500e0c96c00c36690662e0f1f8400000000005553b8000000004883ec184885c048c7442408000000000f8413010000be10ab4700bfc0c96c00ffd0b8000000004885c00f84e90000008b3d271e2500e85e54b8ff4885c04889c30f84d20000008b430485c0743b488b43184885c07421bfbcc64b00b90e0000004889c6f3a674084889c7e82934faff48c7431800000000488b4424084883c4185b5dc30f1f440000488b73184885f674e68b3b488974240885ff0f85d8000000ba05000000bf9c284b00e8196df8ff488b53104989c0b9af544b00b865694b00488d7c2408becac64b00803a00480f44c831c0e81049f9ff83f8ff0f84e7000000488b4318bfbcc64b00b90e0000004889c6f3a60f85de000000488b44240848894318c74304010000004883c4185b5dc30f1f8000000000bbe0c96c00e924ffffff660f1f4400008b052a1d250085c00f85ebfeffffba000000004885d27416be50ad4700bfc4c96c00ffd285c08b05041d2500740b48c705ff1c2500e0c96c0083c8028905ee1c2500e9b2feffff660f1f840000000000e85b040000488b7318ba05000000bf9c284b004889c5e8356cf8ff488b53104989c0b9af544b00b865694b00488d7c24084989e9bed1c64b00803a00480f44c831c0e82948f9ff83f8ff0f8519ffffff488b442408e931ffffff660f1f4400004889c7e8b832faffe915ffffff0f1f0053488b47184889fb4885c07419bfbcc64b00b90e0000004889c6f3a674084889c7e88a32faff4889dfe88232faffb8000000004885c074105b31f68b3d331c2500ffe00f1f4400005bc3660f1f440000b80000000041544989f44885c0554889fd53746cbe10ab4700bfc0c96c00ffd0488b1d011c25004885db0f84a8000000488b7b184885ff7412807b08000f85f500000048c7431800000000488d5308488d7318488d7b104d89e04889e9e80e87ffff8903488b431831d24885c00f94c20f95c08953040fb6c05b5d415cc366908b059a1b2500488b1d9b1b250085c07596ba000000004885d20f84af000000be50ad4700bfc4c96c00ffd285c00f8595000000488b1d6e1b25008b05601b250083c8024885db8905541b25000f855effffff660f1f440000b8000000004885c0741e8b3d3c1b2500e87351b8ff4885c04889c30f8537ffffff0f1f8000000000be20000000bf01000000e86139faff4885c04889c3744cb8000000004885c00f840bffffff4889de8b3df61a2500ffd0e9fbfeffff0f1f00e82331faffe901ffffff660f1f4400008b05d21a250048c705cf1a2500e0c96c00bbe0c96c00e95dffffffbbe0c96c00e9c3feffff0f1f004883ec08bedcc64b00e882d9ffff4885c0740748c700e0ba6c004883c408c39031c931d2e9378ffcff0f1f800000000083f901741383f902b900000000750ce91c8ffcff0f1f40004889d131d2e90e8ffcff662e0f1f8400000000000f1f4000534889fb488b7f08837b100a0f879e0000008b4310ff24c508c74b000f1f400031c04883bf48040000000f8590000000488b53184889025bc30f1f8000000000488b4318488b57304889105bc30f1f00488b43184889385bc30f1f8000000000488b731831d25be9943effff0f1f4000488b7318ba010000005be9813effff90488bb738030000488b7b185be9ef52f8ff0f1f8000000000488b431848c70000000000488b97480400004889105bc390b9e8c64b0031d231f631ffe8f082ffffe87b95ffffe966ffffff660f1f4400004883ec2848897c240889742410bf70af47004889e648890c244889542418e83dfdffff85c00f95c04883c4280fb6c0f7d8c3662e0f1f8400000000000f1f40005348833f007547488b57208b77104889fb488b7f08b865694b004c8b0d1f222500448b051022250081ce000000804885ff480f44f84883ec08ff358115250031c9e8da9bffff48894318585a5bc3b960c74b0031d231f6bf16000000e83f82ffff0f1f440000662e0f1f8400000000004883ec3848893c244889742408bf80b047004889e68954241048894c2420e88dfcffff31d285c07519488b7c2418e8fdd7ffff488b7c2418e8e3fdffff488b5424184889d04883c438c3660f1f44000041545531d25331f689fbe851a3feff4885c0740c5b5d415cc30f1f8000000000488b359922250048c7c5d0ffffff4885f664448b65007415644489650089dfba000400005b5d415ce913a3feffbf00040000e8c92afaff4885c04889055f222500644489650075185b5d415cba05000000be72c74b00bf9c284b00e97067f8ff4889c6ebb8662e0f1f8400000000009055534883ec08488b1f4885db746a0fb6064889fd84c07433807e010074224889dfe86acf00004885c07420c600004883c001488945004889d84883c4085b5dc30fb61338d0742984d2751548c74500000000004883c4084889d85b5dc30f1f00488d7b010fbef0e84451f8ffebb866904889d8ebb60f1f0031c0ebbd0f1f4000415641544989d2555348ba572951cea0c84518488b0f4889c848f7ea4889c848c1f83f48c1fa0d4889d74829c74869c7805101004829c14801ce0f89e30200004883ef014881c68051010078f34889f048ba057cf36ae259d14848f7ea4889f048c1f83f48c1fa0a4829c2418952084869d2100e00004829d648ba89888888888888884889f048f7ea4889f048c1f83f4801f248c1fa054829c24889d1488d04964189520448c1e10648ba25499224499224494829c8488d4f044189024889c848f7ea4889c848c1f83f48d1fa4829c2488d04d5000000004829d04829c14889ca0f880903000041895218b9b207000049b80bd7a3703d0ad7a349b9e733ce026c3ee32ce9610100000f1f80000000004889f84889fb49f7e94889f848c1f83f48c1fa064829c2488d04d2488d340a488d04c2488d04804829c34889d848c1e83f4829c64989f3488d6e024983eb014c89db490f49eb4d89de48c1fb3f48c1fd024889da48c1ea3e498d041383e0034829d048c1e83f4829c54c89d849f7e84c01da4889d048c1fa0848c1f8064829da4829d84c8d24804f8d24a449c1e4024d29e64d89f449c1ec3f4c29e04829c5488d0492488d048048c1e0044929c34889f049c1eb3f4829c84c29da4c8d1cc04801ea4a8d04d84c8d1c804901d3488d51024883e9014889cb4989ce480f49d148c1fb3f4889dd48c1fa0248c1ed3e488d042983e0034829e848c1e83f4829c24889c84889d549f7e84801ca4889d048c1fa0848c1f8064829da4829d84c8d24804f8d24a449c1e4024d29e64d89f449c1ec3f4c29e04829c5488d0492488d048048c1e0044829c148c1e93f4829ca4889f14801ea4929d34c29df4885ff0f889dfeffff4889ceb86d01000083e60375594889c84889cb49f7e848c1fb3f4801ca4889d048c1f8064829d8488d04804c8d1c80b86e01000049c1e3024c39d9752948c1fa084829da4889cb488d0492488d048048c1e0044829c34883fb014819c048f7d048056e0100004839c70f8d2efeffff8d8194f8ffff488d9194f8ffff4189421448984839d0743e48c7c0d0ffffff64c7004b00000031c05b5d415c415ec30f1f80000000004881ee805101004883c7014881fe7f5101007fece91cfdffff0f1f800000000031c04885f641897a1c75564889c848ba0bd7a3703d0ad7a34989c848f7ea49c1f83f4801ca4889d048c1f8064c29c0488d0480488d3480b80100000048c1e6024839f1751c48c1fa084c29c2488d0492488d048048c1e0044839c10f94c00fb6c0488d14004801c2488d0490488d8c0080c74b00b80b0000000fb751164839d77d12b80b0000004883e8010fb714414839d77cf34829d741894210b80100000083c7015b41897a0c5d415c415ec3662e0f1f84000000000083c207e9effcffff0f1f8400000000004889f2be01000000e9c3d3feff0f1f00baa0d36c00be01000000e9b1d3feff415741564989fe415541544989f455534881ec180100008b07458b46104889542448baabaaaa2a8b77044d634e0c8b7f0889442450418b4620894424544489c0f7ea4489c0c1f81fd1fa89d129c18d044989cd4489c1c1e00229c1496346144189c841c1e81f4429c54863ed4801e84889c3488944240831c04989da4183e203753b4889d848ba0bd7a3703d0ad7a348f7ea4889d848c1f83f4801da48c1fa064829c2488d04924c8d1c80b80100000049c1e3024c39db0f84f6060000438d14004101d0488d1400428d0c814801c2488d04904863c94801c80fb7840080c74b0083e80148984c01c84889442418488b442448488b0048894424408b44245085c00f88e306000083f83b48c74424103b000000c74424683b0000000f8edf0600004c8b4c240831c0ba1f85eb51c744243c000000004c897424604c89c948c1f9024d85d20f94c029c18d81db01000089c389442420f7ea89d8c1f81fc1fa0329c28d04928d048029c389d8c1e81f29c289d04189d289542424c1f80289c3894424384863c74889c748894424284863c64889c648894424304c89c84883e846488d14c0488d04d0488b542418488d04804801c28d4419febb060000004429d048984801d0488d0440488d04c7488d14850000000048c1e0064829d04801f0488d14850000000048c1e0064829d08b542440f7da4863d24829d04803442410488944245848898424800000004989c54889442478eb5f4885c90f885405000048befdffffffffffff7f48b8ffffffffffffff7f4839f10f8f6f0500004939cd0f845204000083eb010f84410500008b9424b0000000488944247831c04c8bac248000000048898c248000000085d20f95c08944243c488db42490000000488d7c247841ffd44885c04889c6488b4c24780f84420400004c63461431c0ba1f85eb514489c7c1ff0281c7db01000041f6c0030f94c029c789f84189fbf7ea89f8c1f81fc1fa0329c28d04928d04804129c34489d8c1e81f29c289d0c1fa0229f80344242029d0488b542408034424382b4424244c29c2488d3cd24898488d14fa48637e1c488d14924829fa4803542418488b7c24284801d0488d1440486346084829c7488d04d7488b7c2430488d14850000000048c1e0064829d0486356044829d74801f8488d14850000000048c1e0064829d04863164829d04803442410488d14084839ca400f9dc648c1e83f4038c60f84a0feffff4889d04839c80f85bafeffff8b7424548b8424b00000004c8b74246085f60f944424540fb65c245485c00f94c238da0f84fd01000085c00f88f501000085f641bd702c09000f88e70100004c897424604589eeeb254101ed4183ef0175344d89f4448b74243c4181c6702c09004181fe00c40d100f84de0200004589f5438d2c36448974243c41f7dd41bf020000004d89e64963c54489ea4801c84839c8400f9dc6c1ea1f4038d674ab4889842488000000488db424d0000000488dbc248800000041ffd64885c00f84d80300008b8424f000000085c00f94c238542454740885c00f89b40300004863b424e400000031c0ba1f85eb51488b6c2408488b8c24880000004d89f44c8b74246089f7c1ff0281c7db01000040f6c6030f94c04829f54863b424ec00000029c789f889fbf7ea89f8c1f81fc1fa0329c28d04928d048029c389d8488b5c2428c1e81f29c289d0c1fa0229f80344242029d0488d54ed00034424382b442424488d54d500488d149248984829f248035424184801d0488d144048638424d80000004829c3488d04d3488b5c2430488d14850000000048c1e0064829d048639424d40000004829d34801d8488d14850000000048c1e0064829d048639424d00000004829d04803442410488d14014839d1400f9ec648c1e83f4038c675284885c90f880004000048bafdffffffffffff7f488d41ff4839d148baffffffffffffff7f480f4fd04889542478488db42490000000488d7c247841ffd44885c00f8431030000488b4c2478488b442440482b442458488b5c24484801c84889038b8424900000008b5c245039c374738b74246883f83c0f94c031d285f60f94c221d04863d34801ca29f04839ca89d9400f9dc6c1e91f4038ce0f84930100004863c84801d14839ca0f9ec2c1e81f38c20f847c01000048898c2480000000488db42490000000488dbc248000000041ffd44885c00f8458010000488b8c2480000000488b842490000000498906488b84249800000049894608488b8424a000000049894610488b8424a800000049894618488b8424b000000049894620488b8424b800000049894628488b8424c000000049894630e9ff000000483b8c24800000000f84a0fbffff8b9424b000000085d2781e8b74245485f60f8818010000400f95c685d20f95c24038d60f8477fbffff4c8b742460e9d0feffff4885c94989cf0f84e10000004531f6eb3b4c89f54c89f8488db4249000000048d1fd48d1f8488d7c24784801e84c89f54c21fd83e5014801c548896c247841ffd44885c04c0f45f54c0f44fd4c89fa48c1fa3f4883ca014c01f24939d775b24885c04889c6751d4d85f67418488db424900000004c89742478488d7c247841ffd44889c64885f6488b4c24780f852cfbffff4885c90f89acfaffff48b802000000000000804839c10f8d3f010000488d4101e9eafbffff48c7c1ffffffff4881c4180100004889c85b5d415c415d415e415fc3488d41ffe9c5fbffff83e20331c04883fa010f94c0e9f9f8ffff48b8ffffffffffffff7fe968faffff85d20f95c20fb6d23954243c0f8f5ffaffffe9e3feffff48c744241000000000c744246800000000e921f9ffff4863d88944246848895c2410e910f9ffff488b4c2478e9affbffff4c8ba424880000004d85e40f8417fcffff31d2896c246c4889d5eb414889eb4c89e0488db424d000000048d1fb48d1f8488dbc24880000004801d84889eb4c21e383e3014801c348899c248800000041ffd64885c0480f45eb4c0f44e34c89e148c1f93f4883c9014801e94939cc75ac4885c04889ea8b6c246c0f85a8fbffff4885d20f849ffbffff4889942488000000488db424d0000000488dbc248800000041ffd6e97ffbffff48b80000000000000080e968f9ffff488b6c247831c94531ed4885ed7544e9c0fcffff4c89ea4889e84c89eb4821eb48d1f848d1fa4801c24889d8488db4249000000083e001488d7c2478488d1c0248895c247841ffd44885c04c0f45eb480f44eb4889ea48c1fa3f4883ca014c01ea4839d575ae4885c00f8560fcffff4d85ed0f8457fcffff4c896c2478488db42490000000488d7c247841ffd4e93dfcffff48ba0200000000000080488d41014839d148ba0000000000000080480f4cd0e9fbfbffff415741564989fe4155415455534881ec08010000e89fc7feff418b06458b4610baabaaaa2a418b7604418b7e084d634e0c89442440418b4620894424444489c0f7ea4489c0c1f81fd1fa89d129c18d044989cd4489c1c1e00229c1496346144189c841c1e81f4429c54863ed4801e84889c34889042431c04989da4183e203753b4889d848ba0bd7a3703d0ad7a348f7ea4889d848c1f83f4801da48c1fa064829c2488d04924c8d1c80b80100000049c1e3024c39db0f84cc060000438d14004101d0428d1481488d0c004801c14863d2488d04884801d00fb7840080c74b0083e80148984c01c84889442410488b051409250048894424388b44244085c00f88b806000083f83b48c74424083b000000c74424583b0000000f8eb40600004c8b0c2431c0ba1f85eb514c897424504c89c948c1f9024d85d20f94c031ed29c18d81db01000089c38944241cf7ea89d8c1f81fc1fa0329c28d04928d048029c389d8c1e81f29c289d04189d289542420c1f80289c3894424244863c74889c748894424284863c64889c648894424304c89c84883e846488d14c0488d04d0488b542410488d04804801c28d4419febb060000004429d048984801d0488d0440488d04c7488d14850000000048c1e0064829d04801f0488d14850000000048c1e0064829d08b542438f7da4863d24829d04803442408488944244848894424704989c54889442468eb564885c90f883505000048befdffffffffffff7f48b8ffffffffffffff7f4839f10f8f500500004939cd0f843104000083eb010f842205000048894424688b8424a000000031ed4c8b6c247048894c247085c0400f95c5488db42480000000488d7c2468e8e7f3ffff4885c04889c6488b4c24680f84250400004c63461431c0ba1f85eb514489c7c1ff0281c7db01000041f6c0030f94c029c789f84189fbf7ea89f8c1f81fc1fa0329c28d04928d04804129c34489d8c1e81f29c289d0c1fa0229f80344241c29d0488b1424034424242b4424204c29c2488d3cd24898488d14fa48637e1c488d14924829fa4803542410488b7c24284801d0488d1440486346084829c7488d04d7488b7c2430488d14850000000048c1e0064829d0486356044829d74801f8488d14850000000048c1e0064829d04863164829d04803442408488d14014839ca400f9dc648c1e83f4038c60f84a8feffff4889d04839c80f85c2feffff8b5c24448b8424a00000004c8b74245085db400f94c585c00f94c24038d50f84f101000085db0f88e901000085c041bd702c09000f88db0100004c8974245040886c24444589eeeb1d4501e74183ed0175244181c6702c09004181fe00c40d100f84ca0200004589f7478d243641bd0200000041f7df4963c74489fa4801c84839c8400f9dc6c1ea1f4038d674bb488db424c0000000488d7c24784889442478e846f2ffff4885c00f84d30300008b8424e000000085c00f94c238542444740885c00f89af0300004863b424d400000031c0ba1f85eb51488b2c24448b64241c488b4c24784c8b74245089f7c1ff0281c7db01000040f6c6030f94c04829f529c789f889fbf7ea89f8c1f81fc1fa0329c28d04928d048029c389d8488b5c2428c1e81f29c289d0c1fa0229f84101c4488d44ed004129d448639424dc0000004403642424488d44c500442b642420488d04804829d048034424104d63e44901c448638424c80000004b8d14644829c3488d04d3488b5c2430488d14850000000048c1e0064829d048639424c40000004829d34801d8488d14850000000048c1e0064829d048639424c00000004829d04803442408488d14014839d1400f9ec648c1e83f4038c675284885c90f88f503000048bafdffffffffffff7f488d41ff4839d148baffffffffffffff7f480f4fd0488db42480000000488d7c24684889542468e8e4f0ffff4885c00f8420030000488b4c2468488b442438482b4424488b5c24404801c84889056e0425008b84248000000039c3746c8b74245883f83c0f94c031d285f60f94c221d04863d34801ca29f04839ca89d9400f9dc6c1e91f4038ce0f848e0100004863c84801d14839ca0f9ec2c1e81f38c20f8477010000488db42480000000488d7c247048894c2470e855f0ffff4885c00f8457010000488b4c2470488b842480000000498906488b84248800000049894608488b84249000000049894610488b84249800000049894618488b8424a000000049894620488b8424a800000049894628488b8424b000000049894630e901010000483b4c24700f84c4fbffff8b9424a000000085d2781e8b74244485f60f881d010000400f95c685d20f95c24038d60f849bfbffff4c8b742450e9dbfeffff4885c94989ce0f84e60000004531e4eb3e4d89e74c89f0488db4248000000049d1ff48d1f8488d7c24684c01f84d89e74d21f74183e7014901c74c897c2468e86defffff4885c04d0f45e74d0f44f74c89f248c1fa3f4883ca014c01e24939d675af4885c04889c6751f4d85e4741a488db42480000000488d7c24684c89642468e82befffff4889c64885f6488b4c24680f8544fbffff4885c90f89cbfaffff48b802000000000000804839c10f8d34010000488d4101e901fcffff48c7c1ffffffff4881c4080100004889c85b5d415c415d415e415fc3488d41ffe9dcfbffff83e20331c04883fa010f94c0e923f9ffff48b8ffffffffffffff7fe987faffff85d20f95c20fb6d239ea0f8c80faffffe9e0feffff48c744240800000000c744245800000000e94cf9ffff4863d88944245848895c2408e93bf9ffff488b4c2468e9c8fbffff488b6c24784885ed0f841ffcffff31d2448964245c4989d4eb3d4c89e34889e8488db424c000000048d1fb48d1f8488d7c24784801d84c89e34821eb83e3014801c348895c2478e81eeeffff4885c04c0f45e3480f44eb4889e948c1f93f4883c9014c01e14839cd75b04885c04c89e2448b64245c0f85b2fbffff4885d20f84a9fbffff488db424c0000000488d7c24784889542478e8cfedffffe98dfbffff48b80000000000000080e992f9ffff488b6c246831c94531e44885ed7546e9d1fcffff4c89e24889e84c89e34821eb48d1f848d1fa4801c24889d8488db4248000000083e001488d7c2468488d1c0248895c2468e871edffff4885c04c0f45e3480f44eb4889ea48c1fa3f4883ca014c01e24839d575ac4885c00f856ffcffff4d85e40f8466fcffff488db42480000000488d7c24684c89642468e82aedffffe94afcffff48ba0200000000000080488d41014839d148ba0000000000000080480f4cd0e906fcffff90648b1425d402000083fa0089d07e09f3c30f1f8000000000750c648b0425d002000085c075e9b92700000089c80f0585d275dc64890425d0020000c30f1f4000534889fb488b3f8b4b08488b7318448b430c0fb687140300004c8b4f3083e00384c00fb6d0b8010000000f44d0e88e1affff488943205bc30f1f840000000000415741564889f8415541544883c00855534883ec384889370fb6961403000048897c242883e29f83ca20889614030000488b96b80300004885d20f846d030000488d4a08488b520848894c24184885d27525e956030000660f1f840000000000488344241808488b4c2418488b114885d20f8436030000f682140300006075e0488910488d70080fb6821403000083e09f83c820888214030000488b82b80300004885c00f84fb020000488d4808488b400848894c24204885c07523e9e40200000f1f8000000000488344242008488b442420488b004885c00f84c6020000f680140300006075e04889060fb690140300004c8d7e0883e29f83ca20889014030000488b80b80300004885c00f847b020000488d4808488b400848894c24104885c07523e9640200000f1f8000000000488344241008488b442410488b004885c00f8446020000f680140300006075e04989070fb69014030000498d770883e29f83ca20889014030000488b80b80300004885c00f8423020000488d4808488b40084989f748894c24084885c07515eb9f488344240808488b442408488b004885c0748cf680140300006075e44989070fb69014030000498d770883e29f83ca20889014030000488b80b80300004885c00f84be0100004c8d6008488b40084989f74885c07516eba80f1f80000000004983c408498b04244885c07494f680140300006075ea4989070fb69014030000498d770883e29f83ca20889014030000488b80b80300004885c00f8455010000488d6808488b40084989f74885c07515ebae660f1f4400004883c508488b45004885c0749bf680140300006075ea4989070fb69014030000498d770883e29f83ca20889014030000488b80b80300004885c00f84f5000000488d5808488b40084989f74885c07514ebae660f1f4400004883c308488b034885c0749cf680140300006075eb4989070fb69014030000498d770883e29f83ca20889014030000488b80b80300004885c00f84960000004c8d7008488b40084989f74885c07515ebaf0f1f80000000004983c608498b064885c0749cf680140300006075eb4989070fb69014030000498d7f0883e29f83ca20889014030000488b80b80300004885c0743d488b70084c8d68084989ff4885f67512ebb30f1f004983c508498b75004885f674a3f686140300006075ea4c89ffe89afcffff4d8d3cc7ebdc0f1f40004989ffeb834989f7e923ffffff4989f7e9c3feffff4989f7e963feffff4c89fee933fdffff4989f7e9f4fdffff4989f7e98bfdffff4889f0e9b3fcffff482b4424284883c4385b5d415c48c1f803415d415e415fc390662e0f1f8400000000008d420255488d04404889e5415741564155488d04c51e00000041545348c1e8044881ecc800000044898510ffffff48c1e0044889bd38ffffff898d20ffffff4829c44c8d44240f4983e0f0498d40184d89c741c7000000000049897808498940100fb68714030000888578ffffff83e09f83c82085d28887140300000f84e80e00008d42014989f1b901000000be0100000089854cffffff4189c3488d04498d4e01498b394983c1084c8d1449498d04c04889ce4f8d14d0c70000000000488978084c8950100fb6871403000083e09f83c8204439d988871403000075bd89d24d8b6808488d045248c1e0034c01c048c74590000000004c898550ffffff48898568ffffff48c740100000000048c7c0d0ffffff48c78530ffffff0000000048c78540ffffff000000004c89bd28ffffff648b00898518ffffff48c7c0d0ffffff64c700000000004c89c04983bdb802000000c7000100000048c78578ffffff000000000f842e0b000049837d48000f84fb0a0000498b45684d8b65104c896da0488b400848898570ffffff488945b08b8520ffffff8945a88b8510ffffff8945ac498b04244885c00f84dd0a0000488b8d50ffffff4531ff4889cbeb28488b8d78ffffff4885c9740b4489fa4183c701488904d14983c410498b04244885c00f84fd0100004883f8010f85ae0000004c8bb570ffffff4d03742408be240000004c89f7e8d733f8ff4885c00f855b0200004c8d45a0488d558f488d7590488d7d98b990c947004c8975b8e84065ffff488b4d904885c90f851d040000488b45c0f68014030000600f8570ffffff4883ec30488bb568ffffff83854cffffff01488d54240f4883e2f048894208c7020000000048c7421000000000488956100fb6881403000048899568ffffff83e19f83c920888814030000e920ffffff4883e0fd483dfdffff7f0f8527ffffff4c8bb570ffffff4d03742408be240000004c89f7e81933f8ff4885c00f8558020000f60581012500014c8975b80f85ac0a0000488d7d984c8d45a0488d558f488d7590b990c94700e87564ffff488b7d904885ff0f85660d00004883ec30488b03488bb578ffffff488d54240f4883e2f04885f6488902488b430848894208488b431048894210488b45c0c7030000000048894308740b4489f94183c701488904cef68014030000600f857c080000488953100fb6881403000083854cffffff0183e19f83c920888814030000488b48204885c97408488b701848897118488b70184885f6740448894e20488b4a08488b71204889702048894120488b70204885f674044889461848894818488b8568ffffff4839d84889d3480f44c24983c41048898568ffffff498b04244885c00f8503feffff488bb578ffffff4885f67464418d5f014489f848c704c6000000008d7c1b0148c1e703e8b50afaff4885c04989c40f84ff0b0000488bb578ffffff48c1e303488d78084889da4c8928e89ff0faff418d47024889da4c89e6498d3cc4e88cf0faff41808d16030000014d89a5b8030000488b8550ffffff8b1085d20f85b60700004c8b6808e9defcffff31f64889c7e89903ffff4885c048898560ffffff0f848bfdffff8b056bcd240085c00f85f70b00004c89f7e86366faff498bbd380300004889c14885ff0f845e0100004883ffff0f844d01000048898558ffffffe83a66faff488b8d58ffffff48833d7bff240014ba140000004c89f6480f43156bff24004c89ef4839c2480f43c24883e804480faf8560ffffff488d44011e31c94883e0f04829c4488d54240f4883e2f0e87904ffff8038000f84c60000004989c6e9eafcffff31f64889c7e8de02ffff4885c048898560ffffff0f848efdffff8b05b0cc240085c00f85fd0b00004c89f7e8a865faff498bbd3803000048898558ffffff4885ff0f84b20b00004883ffff0f84a10b0000e88265faff48833dcafe240014ba14000000488bb558ffffff480f4315b6fe24004c89ef4839c2480f43c231c94883e804480faf8560ffffff488d44061e4c89f64883e0f04829c4488d54240f4883e2f0e8c103ffff8038000f85a107000049813c24fdffff7f0f84230b0000f6056bfe2400010f84e2fbffff4c89f6bff8c74b0031c0e89e68ffffe9cefbffff31c0e9bffeffff498b45088038000f85c00a000048898d58ffffffe84973ffff488d50ff49898538030000488b8d58ffffff4883fafd77c84889c748898d58ffffffe8b264faff488b8d58ffffffe973feffff4c8bbd28ffffff898530ffffff4889cf48898d78ffffffe88a64faff488d50014883c01f488b8d78ffffff4883e0f04829c4488d7c240f4889ce4883e7f0e833eefaff4c8b65984889c34c89e7e85464faff488d50014883c01f4c89e64883e0f04829c4488d7c240f4883e7f0e804eefaff807d8f0048894598488b8d78ffffff0f857f0600008bb530ffffffb8ffffffff48895d9089c185f60f45ce898d30ffffff48c7c0d0ffffff64448b184585db75148b8518ffffff85c0740a48c7c1d0ffffff648901488b8538ffffff488b88b80300004885c948898d18ffffff74230fb68014030000888578ffffff83e0033c020f84dd05000048c78518ffffff000000008b854cffffff8d7c000148c1e703e84f07faff4885c04989c60f84b50800008b8d4cffffff448b9520ffffff488bb538ffffff89c883c0014585d2898ec00200004d8d2cc64c89aeb80200000f857007000031c0498b4f088d500149894cc500498b47084c8baeb802000080a0140300009f89d04d8b7f104d85ff75d7f60577fc240008899550ffffff0f85d2050000488b8538ffffff493b45000f85050700004c8bb8c00300004d85ff0f84c60700008b8550ffffff83f8010f8660070000498d4d0883e802498d7cc5104889ca488b324883c2080fb6861403000083e09f83c8204839fa88861403000075e1418b374d8d670885f60f846a07000031c04c89ad78ffffff31db4d89fd4989c7eb0d83c30141395d000f86a600000089d8488d14c500000000498b04c4f680140300006074dc488b8538ffffff48899570ffffff8b80c8030000488d3cc508000000e80d06faff4885c04989c774b3488b9570ffffff488d78084c89e6e802ecfaff418b7500448d4b0189d94439ce0f86dc0600004489c80f1f400089c2498b14d4f6821403000060750a89cf83c101498954ff0883c00139c675e0428d440eff29d889c341890f83c30141395d000f875affffff83bd50ffffff014c89bd28ffffff4c8bad78ffffff0f865d060000498d4d088bb550ffffff4889cab801000000488b0a83c0014883c20880a1140300009f39f072eb8b9d50ffffff4c89ee4c89f7488d04dd000000004889c248898520ffffffe84aebfaff488d141b4889a510ffffff31f641bd02000000488d421048c1e80448c1e0044829c44889e7e8002cf8ff8b8550ffffff41b8010000004d89f1b9010000004589c64989e383e801898540ffffff0f1f440000498d044b498d3cc90fb730488b1f83c6016689308b8540ffffff6689b54cffffff4139c60f83f30000004189c44589e24f8d3cd1498b07488b80b80300004885c00f84c900000090488b104885d20f84bc0000004883c0084839d375eb4589e84529f44c899d58ffffff4b8d34c14a8d14e50000000048898d60ffffff4c898d70ffffff4c898578ffffff4c899568ffffffe8f12af8ff4c8b8578ffffff4c8b9d58ffffff8b8550ffffff49891f4c8b8d70ffffff488b8d60ffffff430fb714434429f039c276688b9550ffffff4b8d3c4331f64c898d70ffffff4c899d78ffffff4589ee4429ea4801d2e8e82af8ff4489e94c8b9d78ffffff4183c5014c8b8d70ffffffe9f6feffff660f1f4400004183ec014539e60f8210ffffff443bad50ffffff745d4589e8eb9d0f1f440000498d3c4b4b8d34434b8d14244c898d60ffffff4c899d70ffffff48898d78ffffffe8322af8ff0fb7854cffffff4c8b9d70ffffff4c8b9568ffffff488b8d78ffffff4c8b8d60ffffff6643890453e97dfeffff488ba510ffffff4d89ce488b8520ffffff49c7040600000000488b8538ffffff808816030000014c89b0b8030000488bb528ffffff4885f67413488bb8c00300004889b0c0030000e8386fffff488b8518ffffff4885c074084889c7e8246fffff8bbd30ffffff85ff0f8584040000488d65d85b415c415d415e415f5dc34889d1eb0b6690483b460874534889f1488b71104885f675ee488b02488903488b420848894308488b421048894310e9c8f5ffff0f1f008b1885db0f8453010000488b40104885c075ed4c8bbd28ffffffc78530ffffff00000000e9c4faffff48895310488bbd68ffffff488b71104839fe488b7610480f44f94889bd68ffffff48897110488b48204885c90f8519f7ffffe91cf7ffff4983bde0010000000f85f7f4ffff4983bdd0010000000f85e9f4ffff4531ffe94ff7ffff0f1f40004983bdb8030000000f85d10400004c39ad38ffffff0f84c4040000410fb785b20200006685c00f84a6f4ffff48c1e00348398530ffffff488bb540ffffff4889b578ffffff0f8387f4ffff4883c00f4883e0f0488d501e81e2f0ff1f004829d4488d54240f4883e2f048899578ffffff4801c24839d60f847304000048898530ffffff488b8578ffffff48898540ffffffe93cf4ffff6690488b8538ffffff4883b8b8020000000f8419faffffb970c94b00baed010000beb4c74b00bfc0c84b00e8f23df8ff66904889cfe8f804faffe974f9ffff48898550ffffffe9ebf6fffff605d8f62400014989c64c8975b80f8454f5ffff498b5508803a007516488b054bc42400ba2f4c4b00488b004885c0480f45d04c89f6bf70c84b0031c0e8e560ffffe921f5ffff488b8538ffffff483b0552d624000f851afaffff8b8550ffffff85c00f840cfaffff83e80131db488d04c50800000048898578ffffff4d8b7c1d004c39bd38ffffff0f84da000000498b87880300004885c0740d448b48084585c90f85c10000004983bfe0010000000f85970200004983bfd0010000000f85890200004c89fe4c89f7e8e8edffff3b8550ffffff4989c489c60f875402000085c0743d498b06498d560880a0140300009f31c0eb2490488b0a80a1140300009f85c07411488b0a4883b9c0000000000f85110200004883c20883c00139c675d64489e04c8d2cc5100000004c89efe81300faff4885c0498987880300000f8475010000488d7810498d55f0448960084c89f6488938e8fce5faff488b8538ffffff4c8ba8b80200004883c308483b9d78ffffff0f8503ffffff488b8538ffffff493b45000f84fbf8ffffb970c94b00ba3e020000beb4c74b00bf40c94b00e8333cf8ff0f1f004889f131d2498b4708f6801503000002740e83a9c002000001eb1a0f1f44000089d683c201498944f500498b47084c8ba9b802000080a0140300009f4d8b7f104d85ff75c0e971f8ffff4989fd31c0c7854cffffff01000000e96ef1ffff458b074d8d67084585c00f85cdf8ffff48c78528ffffff000000008b8550ffffff4c89ee4c89f748c1e0034889c248898520ffffffe818e5faffe9a8fbffff4489cbe94cf9ffff48c78528ffffff00000000e96bf9ffff448bbd50ffffff4c89ee4c89f74489fb488d04dd000000004889c248898520ffffffe8d4e4faff4183ff0148c78528ffffff000000000f8775f9ffffe94ffbffff488b8538ffffffb9a0c84b0031d2bf0c000000488b7008e84e55ffff488b8538ffffffb9e8c84b0031d2bf0c000000488b7008e83255ffff8b8530ffffff488b4d90bf00000000488b759883f8ff0f45f831d2e81255ffff49813c24fdffff7f757c807d8f000f8453f1ffffe8d901faffe949f1ffffb9d0c74b0031d24c89f631ffe8e354ffff0f1f0041808f1503000080e9e2fdffffb970c94b00ba25020000beb4c74b00bfbec74b00e88a3af8ff498b7708b910c94b0031d2bf16000000e8a554ffffb970c94b00baf9000000beb4c74b00bf98514b00e85c3af8ff898530ffffff4c8bbd28ffffff4889f9e95ef5ffff4c89f6b948c84b0031d231ffe86654ffff31c0e95df4ffff498b45088038007534e84168ffff488d50ff498985380300004883fafd77da4889c7e8b859faffe931f4ffff4c89f6b9d0c74b0031d231ffe82254ffffb970c94b00ba2d010000beb4c74b00bf98514b00e8d939f8ff48c78578ffffff00000000e9e3efffff48018530ffffff488b8578ffffff48898540ffffffe9c9efffff662e0f1f8400000000000f1f440000534989fa89f6488d14764883ec10488b4768488b7808498b82f8000000488b40084c8d04d0498b4270498b7008488b40084889f148c1e920488d1449488d14d0498b0248895424084889c349031883fe070f8550010000f64205030f8596000000498b82c80100004885c00f84af000000488b40080fb7044825ff7f0000488d0c40498b82e00200004c8d04c8b800000000458b48084585c94c0f44c0648b04251800000085c0be010000000f858e0000008b02498b8a8003000041b9010000006a00564c89d6488d5424184801c7e82c21ffff4989c0648b04251800000085c0595e757b488b5424084885d274414d85c07444498b00480342080fb6520483e20f80fa0a0f84950000008b15b7f1240085d275034889034883c4105bc366904531c0e975ffffff0f1f84000000000031c0ebd70f1f400031c0ebbb0f1f400064c704251c00000001000000be05000000e95cffffff662e0f1f84000000000031c0648704251c00000083f8020f8572ffffff64488b3c25100000004531d2ba01000000be810000004883c71cb8ca0000000f05e94cffffff0f1f8000000000ffd0e964ffffffb9d0c94b00ba4f000000be84c94b00bf98c94b00e8e037f8ff415541544989fa55534c89c54883ec18488b87280300004885c00f84e001000089f64989d44989f549c1e5054901c5498b5d004885db0f85ff000000498b92f8000000488b47684c8b4208488b7808488d0476498b5270498d04c0488b5208488b48084889c848c1e82083f907488d3440488d14f248895424080f8591010000f64205030f85de000000498b8ac80100004885c90f84f6000000488b49080fb7044125ff7f0000488d0c40498b82e00200004c8d04c8418b700885f64c0f44c3648b04251800000085c0be010000000f850b0100008b02498b8a8003000041b9010000006a00564c89d6488d5424184801c7e8491fffff4989c0648b04251800000085c05a590f8594000000488b5424084885d274174d85c07445498b180fb6420448035a0883e00f3c0a74538b05d5ef240085c0750449895d0048c74500ffffffff4889de4c89e7e8021a00004889d84883c4185b5d415c415dc30f1f400031dbebba0f1f40000fb64204488b5a0849031a83e00f3c0a75b3660f1f440000ffd34889c3eba6660f1f8400000000004531c0e928ffffff0f1f84000000000031c0648704251c00000083f8020f8559ffffff64488b3c25100000004531d2ba01000000be810000004883c71cb8ca0000000f05e933ffffff0f1f800000000064c704251c00000001000000be05000000e9dffeffff662e0f1f84000000000049c700ffffffffe834fcffffe940ffffffb9e0c94b00bacb000000be84c94b00bf98c94b00e8b635f8ff660f1f440000f3c3662e0f1f8400000000000f1f400041564155415455530fb687140300004c8b470883c808888714030000450fb6084584c90f84cf000000488b87a00000004989cd4989d489f54889fb4885c07470f60561ee240002757f488b40084803034c89ea4c89e689efffd0488b93080100004885d2743d488b8318010000488b1b48035a08488b400848c1e80385c0742383e8014c8d74c3080f1f8400000000004c89ea4c89e689efff134883c3084c39f375ed5b5d415c415d415ec30f1f4000488b97080100004885d274e7f605e5ed24000274a10f1f004584c94c89c6743231c0bff2c94b00e81458ffff488b83a00000004885c00f846effffffe958ffffff0f1f8000000000a8030f8529ffffffeba1488b052fbb2400be2f4c4b00488b004885c0480f45f0ebb6660f1f440000415741564989fe415541544989cd555389f54989d44883ec08488b9f400100004c8bbf48010000488b3df2ed24004885ff756c4885db74184d85ff74134d8b7f0849c1ef034585ff756e660f1f440000418b86c00200008d58ffeb070f1f400083eb0183fbff7428498b96b803000089d8488b3cc2f687140300000875e24c89e94c89e289eee855feffffebd30f1f004883c4085b5d415c415d415e415fc3f6871403000008744848c7056ded240000000000e97bfffffff605c9ec2400027536498b06480343084889c3418d47ff4c8d7cc3080f1f40004c89ea4c89e689efff134883c3084939df75ede960ffffffe8ebfdffffebb1498b7608803e007516488b0511ba2400be2f4c4b00488b004885c0480f45f0bf06ca4b0031c0e8ae56ffffeb9d662e0f1f84000000000066904883fe010f84a00100005531c04889e54157415641554154534883ec584885c9488955b0488d14360f94c04889658089c3488975c848897dc0488d4210895dbc31f689db4883e0f0448d7b014829c44889e74989e6e8561df8ffeb310f1f40004489fb48395dc844897dbc4889d90f8424010000488b55c8498d3c5e31f64183c7014829ca4801d2e8231df8ff498d045e0fb730448d6e0166448928488b45c0488d3cd84c8b274d3b64242875b24183bc24dc030000ff74a78b45c88d50ff3955bc739c488b45c04189d24e8d0cd0498b31488b86b80300004885c00f84ce000000660f1f440000488b084885c90f84bc0000004883c0084939cc75eb89d02b45bc488b4dc04589f84c8955904c894d984c8945a04c8945a84a8d34c1488d14c50000000048894588e8321cf8ff488b75b04c8b4d984c8b45a8488b4da04c8b55904885f64d8921742c488d3c1e488b55884c01c64c895598440fb627e8fe1bf8ff488b75b04c8b5598488b4da04c8b45a846882416430fb71446488b45c84829d84839c2764944897dbc4489fbe9e1feffff0f1f440000488b6580488d65d85b415c415d415e415f5df3c30f1f4000488b86c00300004885c0753a83ea013955bc0f82fcfeffffe993feffff0f1f00488b55884b8d3446498d3c5e4c8955a84801d2e8781bf8ff4c8b55a86647892c56e997feffff488d48088b0083e8019083f8ff74b74189c083e8014e3b24c175ef498b8424b80300004885c07513e9dafeffff0f1f4400004883c0084839ce748b488b084885c975efe9bffeffff6690554889e54157415641554154534883ec68488b05b8c924004889c14883e90148894db00f88e1030000488d04c048c1e0044805c0b16c00488945a8eb2f0f1f00b8000000004885c07407bf40b16c00ffd048836db00148816da890000000488b45b04883f8ff0f849e030000b8000000004885c07407bf40b16c00ffd0488b45a88b9078ffffff85d274b589d0488965a031c9488d04c516000000c745bc0000000048c1e80448c1e0044829c4488b45a84989e7488b8070ffffff4885c07511eb41660f1f440000488b40184885c0742f4839402875f139d10f838b03000089ce8988dc03000083801003000001498904f7488b401883c1014885c075d36690894dbc48837db0000f94c03955bc0f95c184c0740884c90f856603000048837db000741084c9740c83ea013955bc0f85680300008b4dbc4889a578ffffff4883f90148894dc00f8484020000488d14090fb6c031f689c38945b8488d421089db448d6b0148c1e80448c1e0044829c44889e7488965c8e8f519f8ffeb340f1f004489eb48395dc044896db84889d90f84ec000000488b55c0488b45c831f64183c5014829ca488d3c584801d2e8bf19f8ff488b45c8498d3cdf4c8b27488d04580fb7304d3b642428448d76016644893075ae4183bc24dc030000ff74a38b45bc448d48ff44394db873964589cb4f8d14df498b0a488b81b80300004885c00f84a40100000f1f4000488b104885d20f84940100004883c0084939d475eb442b4db84489e94c895d80498d34cf4c89558848894d984a8d14cd000000004c894d90e8db18f8ff488b45c8488b4d984c8b55884c8b4d904c8b5d800fb71448488b45c04d89224829d84839c20f867301000044896db84889cbe918ffffff0f1f4000b800000000488ba578ffffff4885c0740abf40b16c00e88515b8ff8b45bc85c00f84940000004531ed0f1f80000000004b8b1cef0fb68314030000a808746683e0f7888314030000488b83100100004885c07474f6053de72400020f857c0000004c8b6008488b83200100004c0323488b500848c1ea0385d2448d72ff7411904489f241ff14d44585f6458d76ff75f0488b83a80000004885c07409488b4008480303ffd083ab10030000014983c50144396dbc0f8776ffffff488b65a0e90efdffff0f1f440000488b83a80000004885c074d1f605bde624000274bf488b7308803e007516488b053bb42400488b30b82f4c4b004885f6480f44f0488b55b031c0bfe3624b00e8d450ffff488b83100100004885c00f8474ffffffe940ffffff0f1f8000000000488b81c00300004885c075654183e90144394db80f8228feffffe9b9fdffff660f1f840000000000b8000000004885c00f85b3feffffe9c3feffff4c8b65c84b8d14094c895d98498d344c498d3c5ce82417f8ff4c8b5d98664789345ce9a7fdffff488d65d85b415c415d415e415f5dc3488d50088b0083e801660f1f44000083f8ff748789c683e8014c3b24f275f0498b8424b80300004885c07518e9d3fdffff660f1f4400004883c0084839d10f8457ffffff488b104885d275ebe9b3fdffffb998ca4b00bab1000000be1dca4b00bf27ca4b00e88d2cf8ffb998ca4b00babb000000be1dca4b00bf38ca4b00e8742cf8ffb998ca4b00babc000000be1dca4b00bf60ca4b00e85b2cf8ff662e0f1f84000000000090554889e541574156415541544189d6534989cf4d89c44883ec68f60537e5240010498b40684889bd78ffffff44898d74ffffff4c8b68080f8533010000498b8424680100004885c00f8472010000488b58084885db0f84e002000049031c2466833b01751e443973080f84b10000008b431085c00f84b60100004801c366833b0174e2c64593000fb73b488d759331c9ba0a00000048c745a0beca4b00488d5da0e8ba33fdff4889c7488945a848c745b0d3ca4b00e8464bfaff4883c0444c8d73184883e0f04829c44c8d6c240f4983e5f04c89e8488b334889c74883c308e88c15f8ff4c39f375ecbb01000000498b742408803e0074584c89e9ba0ecb4b0031ffe8e946ffff488d65d889d85b415c415d415e415f5dc30f1f8400000000008b430c4c89ff8b34034c01eee88f15f8ff85c00f8536ffffff488d65d85b415c415d415e415f5dc30f1f840000000000488b0591b12400be2f4c4b00488b004885c0480f45f0eb900f1f840000000000498b5008498b4830803a007516488b0564b12400ba2f4c4b00488b004885c0480f45d04c8b8578ffffff31c04989f1bf48cb4b004c89fee8f44dffff498b8424680100004885c00f8591feffff0f1f008bb574ffffff85f60f846bffffff488b8578ffffff48c745a090cb4b00488d5da048c745b07a604b004c8d73184889c7488945a8e8074afaff4883c04e4883e0f04829c44c8d6c240f4983e5f04c89e8488b334889c74883c308e85114f8ff4c39f375ec31dbe9c3feffff0f1f4400008b4d1085c90f84860000008b9574ffffff31c085d20f84eefeffff4c8bb578ffffff4c89ff48c745a0e5ca4b004c897da848c745b0f4ca4b0048c745c07a604b004c8975b8e88649faff488d58284c89f74c8d75a0e87649faff488d44031f31db4883e0f04829c44c8d6c240f4983e5f04c89e8498b34de4889c74883c301e8bc13f8ff4883fb0575ea31dbe92dfeffff4c8bb578ffffff4c89ff48c745a0eaca4b004c897da848c745b0f4ca4b0048c745c07a604b004c8975b8e81049faff488d58234c89f74c8d75a0e80049faff488d44031f31db4883e0f04829c44c8d6c240f4983e5f04c89e8660f1f440000498b34de4889c74883c301e84013f8ff4883fb0575eae9aefdffffb9e8cb4b00ba6b000000bea1ca4b00bfaeca4b00e8fc28f8ff6690662e0f1f840000000000488b47684885c00f84c3030000554889e541574156415541544989fc534883ec78488b4008488b9f6801000089558089758448894588488b875801000048899d68ffffff4885c048898560ffffff0f8462030000488b40084803076683380148898578ffffff0f856703000031db4531ed0f1f8000000000448b7004498b4424304c037588488d04c048c1e0044c8bb8c0b16c004d85ff7514e9f200000066904d8b7f184d85ff0f84e30000004c89fe4c89f7e8884dffff85c074e44d89fe8b758085f60f854f010000488b8578ffffff448b78084901c74c89e04189dc4c89f34989c6eb0d662e0f1f8400000000004901c7410fb74704498b7e08418b4f084c8b432848034d88418b17498b763083e002803f000fb7c07517488b3d67ae240041ba2f4c4b00488b3f4885ff490f44fa4883ec08448b4d8450e861fbffff4109c5410fb747065a5925ff7f00004139c4440f42e0418b470c85c07593488b8d78ffffff4489e34d89f48b410c85c00f84c40000004801c148898d78ffffff4889c8e9f1feffff660f1f840000000000418bbc24c002000085ff74644531ff899d74ffffffeb17660f1f8400000000004183c701453bbc24c00200007342498b9424b80200004489f84c89f7488d1cc500000000488b34c2e8634cffff85c074cf498b8424b80200004889d98b9d74ffffff4c8b34084d85f60f85c0feffff90b900cc4b00bae0000000bea1ca4b00bf37cb4b00e8d726f8ff41f68615030000020f84a3feffff488b8d78ffffff8b410c85c00f853cffffff4883bd68ffffff00742d488b8568ffffff488b500849031424eb070f1f40004801c20fb7420425ff7f000039c30f42d88b421085c075e885db4489e8750f488d65d85b415c415d415e415f5dc38d7b01be180000004889fbe87af5f9ff4885c049898424e00200000f84bf010000498b9424c8010000488b8d60ffffff41899c24e8020000488b52084885c94989942430030000747b488b790849033c244c8b45880f1f4400008b4f084801f9eb0b0f1f8400000000004801d10fb7510689d66681e6ff7f440fb7ce4439cb76300fb7f66681e20080448b09488d34760fb7d2488d34f089560c8b510844894e084c01c24889168b57044c01c2488956108b510c85d275b28b570c85d274054801d7eb96488b9d68ffffff4885db744e488b53084c8b458849031424eb070f1f40004801caf6420201752c8b720c0fb74a048b7a088b343281e1ff7f0000488d0c49488d0cc84c01c689790848893148c74110000000008b4a1085c975c4488d65d84489e85b415c415d415e415f5dc331db4531ed4883bd68ffffff000f857afeffff31c0e9a7feffff31c0c3c645a3000fb738488d75a331c9ba0a00000048c745b0beca4b004c8d6db0e80a2dfdff4889c7488945b848c745c023cb4b00e89644faff4883c0464d8d75184883e0f04829c4488d5c240f4883e3f04889d8498b75004889c74983c508e8db0ef8ff4d39f575eb31ff498b742408803e007516488b053bab2400be2f4c4b00488b004885c0480f45f04889d931d2e8ba3effffbf0c000000bbc0cb4b00ebca0f1f4000662e0f1f8400000000004155415455534883ec084885ff74554889fb4189f44189d531edeb0f0f1f4000488b5b1809c54885db742c31c0f683150300000275ea4889df4489ea4489e6e83cfbffff488b5b1885c00f95c00fb6c009c54885db75d44883c40889e85b5d415c415dc331edebef0f1f840000000000554889e54157415641554154534881eca8020000488b1d7ddd24000fb78bb0020000488b83a0020000488d14cd0000000048c1e1064829d14801c14839c80f83c70500004c8b1d45bc240048c7c6ffffffff31ff49b9ffffffff0100000049b801000000010000004d89da4901f349f7daeb0e0f1f4400004883c0384839c176364c89ca4823104c39c275ec488b50104989d44c01da480350284d21d44c21d24c39e6490f47f44839d7480f42fa4883c0384839c177ca4889f14989f8488b03c7058ad4240000000000c70544d42400050000004c8d6407034801c64883e6fc4983e4fc4889353dd424004d89e64929f648bec3f5285c8fc2f5284b8d14764c89351ad4240048c1ea024889d048f7e648c1ea0283fa310f87a3010000c7050dd424003200000048c78550fdffff2003000048c78558fdffffc83e00004c89f048898d80fdffff4c898588fdffff48c1e802c78560fdffff676d6f6ec78564fdffffffff010048c78568fdffff00000000c78570fdffff00000000898590fdffffe8fa8f00004c8b2d6bdb240031d2898594fdffff48b87365636f6e647300668995a4fdffffc785a0fdffff0000000048898598fdffffc685a6fdffff004c89efc685a7fdffff73e8e341faff4c8b3d44db24004889c34c89ffe8d141faff488d4403284c89ee4883e0f04829c4488d5c240f4883e3f04889dfe8210cf8ff488d78014c89fec6002fe8120cf8ff48bf2e70726f66696c65c6400800bab6010000488938be4200020031c04889dfe84dfcfbff83f8ff4189c70f84b9000000488d95b0fdffff89c6bf01000000e8defbfbff85c078168b85c8fdffff2500f000003d008000000f84a400000048c7c0d0ffffff41bd31cc4b004489ff64448b20e8ebb4feff488db540feffffba900100004489e7e8175dfeff4889da4889c14c89eebf0200000031c0e80246ffff488d65d85b415c415d415e415f5dc30f1f0081fa000010000f8645040000c7055ed224000000100048c78550fdffff0000000148c78558fdffff48000014e94cfeffff0f1f800000000048c7c0d0ffffff41bd17cc4b0064448b20e977ffffff66904c8bad58fdffff4c89f048d1e848898548fdffff4901c5488b85e0fdffff4885c074314939c50f84c80000004489ffe82cb4feff488b0dcdd924004889dabe80cc4b00bf0200000031c0e85145ffffe94affffff488b0d25b924004889a540fdffff31f6488d410f4889ca48898d38fdffff4883e0f04829c44889e74889a558fdffffe8c80af8ff488b8d38fdffff31d24489ff48f7d94c21e94889cee8de2efcff4883f8ff7519e9740200000f1f0048c7c0d0ffffff648338040f8567020000488b05b8b82400488bb558fdffff4489ff488d50ff4c21eae852fbfbff4883f8ff74cc4885c00f8834020000488ba540fdffff4531c931ff4589f8b901000000ba030000004c89eee83205fcff4883f8ff48898558fdffff0f84f00100004489ffe839b3feff488b8d58fdffff488b8548fdffff4883bde0fdffff004c8d79404d8d440704498d40044c8905e7d02400488905f0d024000f85dc010000488b8560fdffffc7411400000000488901488b8568fdffff488941088b8570fdffff894110488b8580fdffff48894118488b8588fdffff48894120488b8590fdffff48894128488b8598fdffff48894130488b85a0fdffff4889413841c740fc01000000488bbd50fdffff4803bd48fdffffbe010000004c898540fdffff48898d58fdffffe828eef9ff4885c04889053ed02400488b8d58fdffff4c8b8540fdffff0f842c020000488b9d48fdffff8b1511d02400c70503d0240000000000418b084c8d0c1839d14c890dfbcf24007303418b104885d2891505d02400744f488d1492498d4c90f04983e810660f1f440000488b79088b35c6cf240048c1ef028d5601488d3c788915b5cf240089f248c1e204440fb71f4c01ca48890a4883e9144939c86644895a0866893775c4488b3585cf2400b8000001004929f44c39a548fdffff733431d24c89e048f7b548fdffff4889c1b8010000004881f9ffff000077174881f9ff0000000f86e4000000b80000010031d248f7f14889f2488bb548fdffff89c14c89ffe884890000c7054ecf240001000000e9a3fcffff48c7c1ffffffff4531c031ff4889cee99efaffff41bd4bcc4b0048c7c0d0ffffffe948fcffff48c7c0d0ffffff41bd64cc4b00488ba540fdffffe92ffcffff488db560fdffff4889cfba1400000048898d58fdffff4c898540fdffffe8d407f8ff85c0488b8d58fdffff753b8b411485c07534488d7918488db580fdffffba28000000e8ad07f8ff85c0488b8d58fdffff75144c8b8540fdffff418b40fc83f8010f8420feffff4c89ee4889cfe85303fcffe982fcffff48b8ffffffffffffff004939c4761e49c1ee094c89e031d249f7f631d24889c1b80000000148f7f1e9f9feffff4c89e031d248c1e00848f7b548fdffff31d24889c1b80000000148f7f1e9d7feffff89151dce240089d24889d048c1e20648c1e00448898550fdffff4801d0488d04854800000048898558fdffffe9fbf9ffff4889cf4c89eee8c302fcffbf02000000beb8cc4b0031c0e85241ffffbf7f000000e8c8edfbff0f1f8400000000008b0ddecd240085c90f84c9010000488b15a3cd2400488b0594cd2400b9000000004829d74839c7480f43f94829d64839f00f86a00100008b0d6bcd24004c8b0d8ccd24004889f04154555348d3e8498d1c410fb7034885c00f85820100004c8b1573cd24008b0575cd2400418b1239d00f84b1000000390548cd24000f86a50000004c8b053fcd2400488b0d58cd240041bb01000000eb100f1f8400000000003b051ecd2400737f488d0480488b6c81084489d848c1ed0264833c2518000000007401f00fc105f5cc2400448b250ecd2400894424f4498d2c698b5424f44f8d24a48d42014e8d24a14889c248c1e0044c01c04c8920440fb7650066448960086689550064833c2518000000007401f0ff05cacc24008b05c4cc2400418b1239c20f8579ffffff0fb7036685c00f850d010000b80100000089c264833c2518000000007401f0410fc112895424f88b4c24f8390d6ccc2400767964833c2518000000007401f00fc10553cc2400894424fc8b4424fc488d0c89488b1568cc240083c0016689030fb703488d148a48c1e00448030530cc240048891048893a48897208c742100000000031d26689500864833c2518000000007401f0ff051fcc2400488b1064833c2518000000007401f0ff42105b5d415cf3c30f1f80000000004c8b05e1cb240048c1e004498d1c00488b13488b024839c774ca0fb743086685c0751d488b024839c774b94883c308e94afeffff0f1f4000488b0a4839cf74e348c1e004498d1c000fb74308488b136685c075e4ebcd662e0f1f8400000000000fb71b4c8b057ecb240048c1e3044c01c3eb9c662e0f1f8400000000000f1f004d31c04c8b164c8b1a488d74cef8488d54caf8488d7ccff089c848f7d983e003740f4801c183f8027c16741949d1e8eb5349d1e84d89d04d89d9488d4904eb3249d1e8eb6049d1e84d89d04d89d9eb464d11da4c89570889c811c0c30f1f40004c8b44cee84c8b4ccae84d11da4c8954cfe84c8b54cef04c8b5ccaf04d11c84c8944cff04c8b44cef84c8b4ccaf84d11da4c8954cff84c8b14ce4c8b1cca4d11c84c8904cfe3a9488d4904ebb30f1f005355488d1a48f7db488b064c8b17488d7cd7f0488d34d648f7e10fbae30072244c8d18488b44de08488d2a48f7e14883c3020f89900000004c8d00488b04de4c8d0aeb4c4883c3010f898a0000004c8d00488b04de4c8d0a48f7e14c8d18488b44de08488d2aeb490f1f84000000000048f7e14d01c24c8d00488b04de4d11cb4c8954dff84c8b14df4c8d0a4883d50048f7e14d01da4c8d18488b44de084911e84c8914df4c8b54df08488d2a4983d1004883c30278b948f7e14d01c24d11cb4c8957f84883d5004c8b174d01da4811e84c89174883d2004c8b57084901c24c89570889d84811d05d5bc30f1f44000048833f00744d415541544189f455534889fb488d7f104883ec08488b6ff84c8b2fe81a53feff84c0742e488b43104c29ed4889c2480353184801e848895308488d50014889134488204883c4085b5d415c415df3c30f1f0048c7030000000048c7430800000000ebe00f1f8000000000554889e541574156415541544989fc534889f34881ec9806000048c7c0b8ffffff488995a0f9ffff48898d90f9ffff64488b00488985d8f9ffff488b0048c785c8fbffff0004000048898570f9ffff488d85b0fbffff4883c020488985c0fbffff488b0248898558faffff488b420848898560faffff488b421048898568faffff8b87c000000085c00f852f030000c787c0000000ffffffff418b0424a8040f85b32500004885db0f847b3e0000488bbdd8f9ffff488b5708bf00000000488b7248488b4a40ba00000000803e0048898d78f9ffff480f45d64885ff488995b8f9ffff0f84c1040000488dbd70faffff4c89e2be501e4600e833feb7ff418b042425008000000f84c5020000488d85e0faffff4531f648c78520faffff000000004531c048c785b0f9ffff0000000048c785e0f9ffff000000004805bb00000048c785a8f9ffff0000000048c78598f9ffff00000000c7851cfaffff000000004531edc78518faffff0000000048898568f9ffff4c89b510faffff4d89e70fb60384c00f84110a0000a8804189c40f858f010000488d43014180fc2548898500faffff0f8402030000488b8dd8f9ffff410fb6c4488b4968f6444101200f85e90100004183fdff0f8407050000498b4708493b47100f8308090000488d5001498957080fb6004983c6014585c0743c488bb5d8f9ffff488b4e684863d0f6445101207427498b4708493b47100f835e020000488d50014983c601498957080fb6004863d0f64451012075d9450fb6ec4439e80f84a30800000fb6f04c89ff4d89fcbb020000004c8bb510faffffe85e58f9ff660f1f44000041f70424008000007540498b942488000000836a0401753248c7420800000000833d6dce2400007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8e524fcff4881c480000000b8000000004885c0740e488dbd70faffff31f6e876fcb7ff488bbdc0fbffff488d85b0fbffff4883c0204839c77405e85adcf9ff488b8590f9ffff4885c07402091883bd18faffffff0f84470100004c8bbde0f9ffff8b9d18faffff4d85ff740f498b3fe825dcf9ff49c70700000000488d65d889d85b415c415d415e415f5dc34889df44898508faffffe89e34faff488d9520faffff4889c64889dfe8ec7d000085c0448b8508faffff0f8e780300004183fdff0f84f401000083e8014589c5488d44030148898500faffff4989c4498b4708493b47100f830d020000488d5001498957080fb6004883c3010fb653ff4983c60139d00f85dc0700004c39e375ce4589e84189c5eb0641b801000000488b9d00faffffe9c0fdffff83f8ff0f84d2fcffffbbffffffffe941ffffff498b942488000000644c8b0c25100000004c3b4a08743dbe01000000833df8cc2400007408f00fb1327507eb1b0fb1327416488d3a4881ec80000000e83e23fcff4881c480000000498b9424880000004c894a0883420401e9defcffff4d8b7608660f1f4400004d85f6748a31db49833e0074e90f1f00498b44de10488b38e8dbdaf9ff498b44de104883c30149391e48c7000000000077de4d8b7608ebc84c89ffe83849f9ff83f8ff0f85ab220000448b8d18faffff4c8bb510faffff4d89fcbb010000004585c90f85b8fdffff898518faffffe9adfdffff488b85c0fbffff488985b0fbffff480385c8fbffff488985b8fbffff0fb6430183e83083f8090f87ea00000089c68985e8f9ffff0fb64302488d4b0248898d00faffff8d50d04189c483fa09772d4889ca89f166908d0c894883c2018d4c48d00fb6028d70d04189c483fe0976e748899500faffff898de8f9ffff4180fc240f84390300008b85e8f9ffffc785ecf9ffff00000000c785e8f9ffff0000000089c1e9ff00000048c7c0d0ffffff8bbd1cfaffff4d89fc4c8bb510faffff6489388b8d18faffffbb0100000085c90f85dafcffffc78518faffffffffffffe9cbfcffff4c89ffe81b48f9ff83f8ff0f85edfdffff4c8bb510faffff4d89fcebc148c78570faffff501e46004c89a578faffffe940fbffffc785e8f9ffff0000000031f64883bdb8f9ffff0048ba09000000040000000f8446050000488b8d00faffff0f1f4000440fb621418d4424d93c220f868700000048898d00faffff89b5ecf9ffff410fb6c4c785f0f9ffffffffffff8d50d083fa09773c488b9500faffff31c90f1f008d0c894883c2018d4c48d00fb6028d70d04189c483fe0976e748899500faffff85c9b8ffffffff0f45c18985f0f9ffff488b8500faffff488d5801418d4424b43c2e0f87930500000fb6c0ff24c510cd4b00660f1f440000480fa3c20f836fffffff4883c1014180fc2a741c4180fc49741e89f00c804180fc270f44f0e93effffff660f1f44000083ce08e930ffffff81ce00040000e925ffffff440fb623e9c0faffff48c7c0d0ffffff8b8d1cfaffff4d89fc4c8bb510faffff6489088b9518faffffbb0100000085d20f8557fbffffc78518faffffffffffffe948fbffff488b8500faffff838decf9ffff01440fb660014584e40f84e93700004585c0488d53014488a5f8f9ffff0f8577020000418d4424bd48899500faffff3c2b0f868401000048c7c0d0ffffff48899dc8f9ffff4488a5c0f9ffff8b9d1cfaffff4d89f44c8bb5d8f9ffff648b384889c648898508faffff64c700000000004489e84989f589bdd0f9ffffeb350f1f440000498b4708493b47100f83ba010000488d5001498957080fb600498b76684863d04983c4014801d20fb7141680e620742c83f8ff75cb64418b450083f8040f84a6010000498b766848c7c2feffffffb8ffffffff0fb7141680e62075d44189c58b8dd0f9ffff488b8508faffff4183fdff899d1cfaffff4d89e6488b9dc8f9ffff440fb6a5c0f9ffff6489080f84e00200004d8d46ff410fb6f54c89ff4183ec254c8985d0f9ffffe86452f9ff4180fc530f87445b0000450fb6e44c8b85d0f9ffff42ff24e588ce4b0048838500faffff01e955fdffff488b8500faffff440fb660014180fc680f84670e0000838decf9ffff04e98bfeffff488b8500faffff0fb6400189c283e2f780fa530f845f1300003c730f84571300004585c00f85550300004889da488b9d00faffffb81e000000c685f8f9ffff6148b90100000101080000480fa3c10f83cb0000004183ec434180fc2b0f879f170000450fb6e442ff24e528d14b00488b8500faffff838decf9ffff03440fb66001e905feffff488b8500faffff440fb660014180fc6c0f84a70d0000818decf9ffff00200000e9e0fdffff488b8500faffff440fb660014180fc6c0f846d0d0000838decf9ffff01e9befdffff0f1f004c89ffe84044f9ff83f8ff0f8540feffff64418b5d0089d883f8040f855afeffff448b8518faffff4c8bb510faffff4d89fcbb010000004585c00f85b0f8ffffc78518faffffffffffffe9a1f8ffff48899500faffffe991fdffff4883f8010f85e76e0000488385a8f9ffff044585e4488b8da8f9ffff75308b8508faffff85c07426488b85e0f9ffff488b38488b85b0f9ffff4c8d2c85000000004a8d042f4839c10f84c56e00008b85f0f9ffff85c07e0d83adf0f9ffff010f84e76e0000498b4708493b47100f83536e0000488d5001498957080fb618488bb5d8f9ffff4863c34983c601488b5668f6444201200f84a00900004189dd410fb6f54c89ff4983ee01e83f50f9ff4585e47565f785ecf9ffff00210000488b85a8f9ffff488d5804c70000000000742f4c8ba5e0f9ffff4889de498b3c244829fe4889f048c1f802483985b0f9ffff740ee837d6f9ff4885c0740449890424838518faffff0148899da8f9ffff48c785e0f9ffff000000004531c0e9cff8ffff4c89ff44898508faffffe8be42f9ff83f8ff448b8508faffff0f85e4f6ffff4c8bb510faffff4d89fce9ddfbffff4183ec254180fc530f87fa480000450fb6e442ff24e588d24b00488b8500faffff660f1f440000440fb620418d4c24d980f922761248898500faffff89b5ecf9ffffe9b6faffff480fa3ca73e84883c0014180fc2a740e89f180cd044180fc490f44f1ebc283ce08ebbd0fb6f04c89ff4c8bb510faffff4d89fcbb02000000e81b4ff9ffe9bef6ffff31db4585c04c8bb510faffff4d89fc0f84a9f6ffff8b9d1cfaffff4c8bbdd8f9ffffeb34498b442408493b4424100f83411a0000488d50014989542408440fb6284c89ea4801d2498b47680fb70410f6c4200f84e11b00004183fdff75c648c7c0d0ffffff48c7c2feffffff648918ebd6488b9d00faffffe90cfbffff4889d8c685f8f9ffff61488b9d00faffff48898500faffffe920fbffff488b9500faffff838decf9ffff404d89f0c78508faffff000000004183fdff0f84bd1a000048899500faffff498b4708493b47100f83d21a0000488d500149895708440fb628418d45d54d8d700183e0fd7559488b85b0fbffff488b95b8fbffff4839c20f8472310000488d5001488995b0fbffff4488288bb5f0f9ffff85f60f9fc00fb6c029c6498b4708493b471089b5f0f9ffff0f83d1170000488d500149895708440fb6284d8d70028b8df0f9ffff85c90f84e51700004183fd300f85db17000085c9488b95b8fbffff0f9fc00fb6c029c1488b85b0fbffff898df0f9ffff4839c20f8426350000488d5001488995b0fbffffc60030498b4708493b47100f83a7290000488d500149895708440fb6284983c6018b85f0f9ffff85c07419488bbdd8f9ffff410fb6c5488b5770833c82780f841d4100008b8508faffff85c00f85c3180000c78508faffff080000008b85ecf9ffff8b9df0f9ffff4c89f225800000008985d0f9ffff488d85b0fbffff4883c01048898588f9ffff660f1f4400004183fdff742e85db742a83bd08faffff100f84e1120000418d45d083f8090f874a130000418d45d13b8508faffff0f8edd1200004c8b85b0fbffff899df0f9ffff4989d64d85c00f84535f0000488b85c0fbffff4c89c24829c20f84e81600004883fa010f84d11c00004183fdff7417410fb6f54c89ff4983ee01e8784cf9ff4c8b85b0fbffff4c3985b8fbffff0f840e360000498d4001488985b0fbffff41c60000488b85b0fbffff4885c00f84246000008b8decf9ffff8b9508faffff488db538faffff488bbdc0fbffff89cb81e18000000083e3400f846f170000e8a50cfdff488b8dc0fbffff48398d38faffff0f841f3e00008bb5ecf9ffff4531c040f6c6080f85f0f4ffff85db0f840e1a000083e6010f84ad1a0000448b9de8f9ffff4585db0f85d75e00008b8d58faffff83f92f0f87ea1b000089ca48039568faffff83c108898d58faffff488b12488902838518faffff014531c0e999f4ffff488b9500faffff838decf9ffff404d89f0c78508faffff0a000000e916fdffff48899500faffff8b9decf9ffff89d8a8010f85160500008bb5f0f9ffffb80100000089c289d883feff0f45d683e3088995f0f9ffff0f85be000000f6c4210f84536500008b85e8f9ffff85c00f85b06400008b9558faffff83fa2f0f874366000089d048038568faffff83c208899558faffff488b00488985e0f9ffff4989c44d85e40f844f63000048638df0f9ffffb80004000081f900040000480f4ec14889c7488985b0f9ffffe8a9cbf9ff4885c048898598f9ffff498904240f849e420000488b8510faffff4885c00f8459420000488b004883f820488d50010f8448420000488bb510faffff488b8de0f9ffff48891648894cc6104183fdff0f8484600000498b4708493b47100f8336600000488d500149895708440fb62885db4d8d66010f843e3200008b95f0f9ffff89d083e80283fa01498d5c06027f21eb490f1f8000000000488d5001498957080fb6004983c4014939dc0f840a3f0000498b4708493b471072de4c89ffe8063df9ff83f8ff75dc4189c548c7c0d0ffffff648b0089851cfaffff4d89e6e911faffff48899500faffff8b8decf9ffff4189cc89c84183e4010f84af26000083e008898508faffff0f85b6000000f6c5210f84ff6000008b85e8f9ffff85c00f85666000008b9558faffff83fa2f0f874060000089d048038568faffff83c208899558faffff488b00488985e0f9ffff4883bde0f9ffff000f8402600000bf90010000e841caf9ff488b8de0f9ffff4885c0488985a8f9ffff4889010f84a85f0000488b8510faffff4885c00f84635f0000488b004883f820488d50010f84525f0000488b8d10faffff48c785b0f9ffff64000000488911488b95e0f9ffff488954c110807b015ec685d0f9ffff007512488d4302c685d0f9ffff0148898500faffff8b95f0f9ffffb8ffffff7fbe0001000089c1488d85b0fbffff85d2488d78100f49caba01000000898df0f9ffffe8d46d000084c00f846d510000488b85c0fbffff488d780848c7000000000048c780f8000000000000004883e7f84829f84889c131c081c100010000c1e903f348ab488b8500faffff0fb6003c5d0f84752400003c2d0f846d240000488b9500faffffeb0f0f1f4000488b8dc0fbffffc60401014883c2010fb642ff84c00f843a1800003c5d0f84ad2600003c2d75d90fb6324084f674d14080fe5d74cb0fb64afe4038f177c273cb488bb5c0fbffff0fb6c183c101c6040601380a77ebebb44d89f0c78508faffff10000000e986f9ffff48899500faffff8b85ecf9ffff4189c44183e4080f85ad000000f6c4210f84ac3200008b95e8f9ffff85d20f85703600008b9558faffff83fa2f0f874a36000089d048038568faffff83c208899558faffff488b00488985e0f9ffff4889c34885db0f840e360000bf90010000e855c8f9ff4885c0488985a8f9ffff4889030f8417520000488b8510faffff4885c00f84de4f0000488b004883f820488d50010f84cd4f0000488b8d10faffff488bbde0f9ffff48c785b0f9ffff6400000048891148897cc1104183fdff0f8421250000498b4708493b47100f83d3240000488d500149895708440fb628488bb5d8f9ffff48c785e0faffff000000004963c54983c601488b5668f6444201200f8585f6ffff8b85ecf9ffff4489eb2500210000898508faffff488d8590faffff488985c0f9ffff4585e441bd000000004c0f44ada8f9ffff889d90faffff488bb5c0f9ffff488d8de0faffffba010000004c89efe8206d00004883f8fe0f8589f5ffff498b4708493b47100f8338160000488d5001498957080fb6184983c601889d90faffffebb648899500faffff8b95f0f9ffffb80100000089c183faff0f45ca898df0f9ffff8b8decf9ffff89c883e008898508faffff0f85c2000000f6c5210f84413200008b85e8f9ffff85c00f85854f00008b9558faffff83fa2f0f875f4f000089d048038568faffff83c208899558faffff488b00488985e0f9ffff4889c34885db0f84234f000048638df0f9ffffb80004000081f900040000480f4ec1488d3c8500000000488985b0f9ffffe882c6f9ff4885c0488985a8f9ffff4889030f840e500000488b8510faffff4885c00f84c94f0000488b004883f820488d50010f84b84f0000488bb510faffff488bbde0f9ffff48891648897cc6104183fdff0f84f9320000498b4708493b47100f8305320000488d500149895708440fb6288b85ecf9ffff4c8ba5b0f9ffff4983c60148c785e0faffff000000004489eb25002100008985ecf9ffff486385f0f9ffff48c785f0f9ffff000000008d70ff488985d0f9ffff89b5f8f9ffff8b8508faffff889d90faffff85c0752f448badecf9ffff4585ed7423488b85e0f9ffff4e8d2ca500000000488b384a8d042f483985a8f9ffff0f846d3a0000448b9d08faffff41bd000000004585db4c0f44ada8f9ffff488d8de0faffff488db590faffffba010000004c89efe8166b00004883f8fe0f85bb360000498b4708493b47100f83b9200000488d5001498957080fb6184983c601889d90faffffebb648899500faffff8b85ecf9ffff4531c0a8080f8531edffffa8010f846f2f00008bbde8f9ffff85ff0f85743300008b9558faffff83fa2f0f87e662000089d048038568faffff83c208899558faffff488b004c89304531c0e9ececffff488d5802838decf9ffff03440fb66002e948f0ffff488d5802818decf9ffff01200000440fb66002e930f0ffff488d5802818decf9ffff00020000440fb66002e918f0ffff4183fdff0f84c64a0000498b4708493b47100f83252f0000488d480149894f08440fb628498d4601448bb5f0f9ffff48898508faffff4585f60f8f8a080000418d45d583e0fd0f8572130000448ba5f0f9ffff4183fd2d0f948588f9ffff4585e40f8434560000498b4708493b47100f83d5360000488d480149894f08440fb6288bbdf0f9ffff48838508faffff0148899500faffff85ff0f9fc00fb6c029c789bdf0f9ffff488b95d8f9ffff410fb6c5488b52708b048283f86e0f844229000083f8690f84d22700008b9df0f9ffff85db0f84a52700004183fd300f859b270000488b85b0fbffff483b85b8fbffff0f848f500000488d5001488995b0fbffffc60030498b4708493b47100f833d270000488d500149895708440fb62848838508faffff018b95f0f9ffff85d20f9fc00fb6c029c28995f0f9ffff0f84ef260000488b95d8f9ffff410fb6c5488b5270833c82780f849d4f00008b9df0f9ffffc78580f9ffff6500000041be01000000c685c8f9ffff658bbdecf9ffff4488b5f0f9ffff4589eec685d0f9ffff00c685f8f9ffff004c8ba578f9ffff89f82500080000898554f9ffff488d85b0fbffff4883c01048898560f9ffff89f82580000000898558f9ffffeb564c3badb8fbffff0f84a32d0000498d4501488985b0fbffff4588750085db0f8482560000c685f0f9ffff01498b4708493b47100f83cd0d0000488d500149895708440fb63031c048838508faffff0185db0f9fc029c34c8badb0fbffff4d85ed0f84ef4f0000418d46d083f809769180bdd0f9ffff000f84390d00000fb685c8f9ffff413a45ff0f84dd2d000085db41b8ffffff7f440f4fc380bdf8f9ffff000f859e0e0000410fb604244139c689c60f85bb54000041807c2401004d8d6c24010f84970000004c89a5c0f9ffff4189dc4489c3eb3e488d500149895708440fb630410fb6450048838508faffff0183eb014439f089c60f850d2700004983c50141807d00000f84c632000085db0f84cc1b0000498b4708493b471072b84c89ffe8b433f9ff83f8ff4189c675b448c7c0d0ffffff410fb675004189d84489e34c8ba5c0f9ffff648b0089851cfaffff4084f60f85941b0000410fb634244084f6745b4d89e54c89a5c0f9ffff4c89bd48f9ffff4589c44189df488b9db0fbffff483b9db8fbffff0f84e11a0000488d4301488985b0fbffff4088334983c501410fb675004084f675d04489fb4589e04c8bbd48f9ffff4c8ba5c0f9ffff85db7e034489c3c685f8f9ffff0185db0f84d25400004183feff0f854dfeffff48c7c0d0ffffff8bb51cfaffff4589f5899df0f9ffff6489304c8ba5b0fbffff4d85e40f84943d00008b95ecf9ffff488b85c0fbffff81e2000c000081fa000400000f84b23d00004c89e74c8bb508faffff4829c70f844e3d00004883ff027510448b8d54f9ffff4585c90f85753d00004c39a5b8fbffff0f841d470000498d442401488985b0fbffff41c60424004883bdb0fbffff000f84d5460000f685ecf9ffff028b9decf9ffff0f85512c000089d889da488db538faffff81e280000000a803488bbdc0fbffff0f844c290000e8d76d000089d8a8080f855f0c0000488b95c0fbffff488b8d38faffff4839d10f84d64600008bbde8f9ffff85ff0f85f34600008bb558faffff83fe2f0f87cd46000089f048038568faffff83c60889b558faffff488b0080bd88f9ffff007408660f570593b80300f20f11004839d10f8510f3ffff4c8bb510faffff4d89fcbb02000000e94ae6ffff669041f64774100f859eecffff818decf9ffff000100004189c4e9f6eaffff4d89f0488b9500faffffc78508faffff0a000000e909f0ffff4d89c68b85ecf9ffffa8010f8579f6ffff89c383e3080f85ae000000f6c4210f84ee2e00008bbde8f9ffff85ff0f854d2e00008b9558faffff83fa2f0f87de2f000089d048038568faffff83c208899558faffff488b00488985e0f9ffff4989c44d85e40f847b2c0000bf64000000e8d6bef9ff4885c048898598f9ffff498904240f844c320000488b8510faffff4885c00f8407320000488b004883f820488d50010f84f6310000488bb510faffff48c785b0f9ffff64000000488916488b95e0f9ffff488954c6104183fdff0f84c7360000498b4708493b47100f8379360000488d500149895708440fb628488bbdd8f9ffff4963c54983c601488b5768f6444201200f853b3600008b85ecf9ffff4c8ba5b0f9ffff488b9598f9ffff25002100008985d0f9ffff89d84489eb4189c5eb28488d7001498977080fb618488bb5d8f9ffff4863c34983c601488b7668f6444601200f85d43500004585ed75358b8dd0f9ffff488d4201881a85c90f8453090000488b95e0f9ffff4c89a5f8f9ffff488b3a4889c24a8d34274839f00f847e5000008b85f0f9ffff85c07e0f83e8018985f0f9ffff0f84423a0000498b4708493b47100f8277ffffff4c89ff488995f8f9ffffe89e2ff9ff83f8ff89c3488b95f8f9ffff0f8561ffffff4489e84189dd4c89a5b0f9ffff89c3488b8508faffff48899598f9ffff648b0089851cfaffff4531c085db0f855de5fffff785ecf9ffff00210000488b8598f9ffff488d5801c6000074284c8ba5e0f9ffff4889de498b3c244829fe4839b5b0f9ffff740ee862c2f9ff4885c0740449890424838518faffff0148899d98f9ffff4531c048c785e0f9ffff00000000e9fae4ffff4d89f08b85ecf9ffff488b9500faffffc78508faffff1000000083e0f90d011000008985ecf9ffffe96aedffff4d89f0488b9500faffffc78508faffff08000000e951edffff498b4708493b47100f8316230000488d500149895708440fb6280fb685f8f9ffff4439e80f84b3ebffff410fb6f54c89ff4c8bb510faffff4d89fcbb02000000e86d3bf9ffe910e3ffff0f1f8400000000004d89c6488b9500faffffe9b6f7ffff4d89c6e969f3ffff4d89c6e9f7f4ffff4c8bb510faffff488b8d08faffff4d89fc8b851cfaffff648901448bbd18faffffbb010000004585ff0f85bae2ffffc78518faffffffffffffe9abe2ffff488b9500faffff8b8d1cfaffff4c89b508faffff6489088bbdf0f9ffff85ff7e1741bdffffffff83adf0f9ffff014183fdff0f8565f7ffff448bad18faffff4c8bb510faffff4d89fcbb010000004585ed0f8554e2ffffc78518faffffffffffffe945e2ffff0f1f440000488b8d08faffff8b851cfaffff4d89fc4c8bb510faffff6489018b8518faffffbb0100000085c00f8513e2ffffc78518faffffffffffffe904e2ffff4d89c6e914f6ffff488b9500faffff4d89c6e9d0ebffff488b9500faffff4d89c6e9a6eeffff4d89c6e9beeeffff4d89c6e947f0ffffc78508faffff10000000e9c7ebffff4c8bb510faffff4d89fcbb02000000e9abe1ffff0f1f00488bb5d8f9ffff4963c5488b7668f6444601100f8423edffff4c8ba5b0fbffff4c39a5b8fbffff4489ee0f8463010000498d442401488985b0fbffff4188342431c085db0f9fc029c34183fdff0f847c020000498b4708493b47100f8383020000488d700149897708440fb6284883c201e992ecffff83bd08faffff0a0f85b9ecffff448ba5d0f9ffff4585e40f84a9ecffff4c8ba5b8f9ffff85db41beffffff7f440f4ff3410fb604244439e80f85a0000000899df8f9ffff4889d3eb2290488d480149894f080fb600450fb62c244883c3014183ee014139c50f85ff020000488b85b0fbffff488b8db8fbffff4489ee4839c10f840c010000488d480148898db0fbffff4488284983c40141803c24000f84750100004585f60f8415020000498b4708493b471072954c89ffe8cd2bf9ff83f8ff4189c5759048c7c0d0ffffff4889da8b9df8f9ffff648b0089851cfaffff4c8b85b0fbffff4d85c00f844201000041803c24000f856d4100004489ee85db4d8d60ff440f4ef34c39a5b8fbffff4c89a5b0fbffff4489f30f859dfeffff4d85e44088b5f0f9ffff0f849dfeffff488bbd88f9ffff488995f8f9ffff4c8bb5c0fbffffe86330feff84c0488b95f8f9ffff0fb6b5f0f9ffff0f84ed030000488b85c0fbffff4d89e04d29f04889c74803bdc8fbffff4c01c04889bdb8fbffff488d78014889bdb0fbffff408830e939feffff4885c948898df0f9ffff0f84f2feffff488b85c0fbffff488bbd88f9ffff4488adc8f9ffff488985c0f9ffffe8e82ffeff84c00fb6b5c8f9ffff488b8df0f9ffff0f84cd000000482b8dc0f9ffff488b85c0fbffff4983c4014889c74803bdc8fbffff4801c8488d48014889bdb8fbffff48898db0fbffff44882841803c24000f858bfeffff4c8b85b0fbffff4889da8b9df8f9ffff4d85c00f85ccfeffff48c7c0d0ffffff4c8bb510faffff4d89fc31dbc78518faffffffffffff64c7000c000000e9d9deffff48c7c0d0ffffff8bb51cfaffff648930e924eaffff4c89ff488995f8f9ffffe80d2af9ff83f8ff4189c5488b95f8f9ffff0f8567fdffff48c7c0d0ffffff648b0089851cfaffffe9ede9ffff48c785b0fbffff0000000048c785b8fbffff00000000e9d3fdffff4c8b85b0fbffff8b85f8f9ffff4989de4d85c08985f0f9ffff0f8451ffffff488b85b8f9ffff4c39e00f83f0e9ffff4c89e74829c74929f84183fdff4c8985b0fbffff7410410fb6f54c89ff4983ee01e87536f9ff498d5c24ff48399db8f9ffff73314989dd410fb675004c89ff4983ed01e85336f9ff4c39adb8f9ffff75e6488b85b8f9ffff4c29e04883c0014801c34901c6440fb62b4c8b85b0fbffffe972e9ffff660f1f4400004889da4189c58b9df8f9ffffe963fdffff4c89ff4c8985f8f9ffffe80029f9ff83f8ff4189c54c8b85f8f9ffff0f8519e8ffff48c7c0d0ffffff648b0089851cfaffff8b8508faffff85c00f855e010000f785ecf9ffff000400000f853a060000c78508faffff0a000000e986e8fffff785ecf9ffff001000000f84f105000083bdf0f9ffff040f86e40500004183fd280f85da050000488b85d8f9ffff488b5870498b4708493b47100f8300120000488d500149895708440fb62842833cab6e0f85f7270000498b4708493b47100f836e0f0000488d500149895708440fb628410fb6c5833c83690f8582050000488b85d8f9ffff488b5870498b4708493b47100f83090f0000488d500149895708440fb62842833cab6c0f859f270000498b4708493b47100f83f3020000488d500149895708440fb6284983c6044183fd290f8577270000488b85b0fbffff483b85b8fbffff0f84f7260000488d5001488995b0fbffffc600304c8b85b0fbffffe93ae8ffffe816c7f8ffe98ce8ffff4c89e7e89927f9ff4863d04189c54801d283f8ff0f85b8e5ffff48c7c0d0ffffff48c7c2feffffff648b18e9a2e5ffff83bd08faffff0a0f853ae7ffffe990feffff0f1f800000000048c7c0d0ffffffbbffffffff64c70009000000e9a2dcffff48c785b0fbffff0000000048c785b8fbffff00000000e965faffff448b9d54f9ffff4585db0f84d6000000488b95d8f9ffff4963c6488b4a68f6444101100f84bd0000004c3badb8fbffff0f84a13b0000498d4501c685f0f9ffff01488985b0fbffff45887500e9c6f3ffff4c89ffe8cc26f9ff83f8ff4189c60f852bf2ffff4189c548c7c0d0ffffff899df0f9ffff648b0089851cfaffffe9bff3ffff4889c2e9c6f6ffff4c8bb510faffff4d89fc48c7c1d0ffffffe954f8ffff488b95d8f9ffff4983c601488b4a68e9badaffff4c89ff4c8985f8f9ffffe86126f9ff83f8ff4189c54c8b85f8f9ffff0f8518e5ffff4c8bb510faffff4d89fce918f8ffff80bdf0f9ffff000f84e5f1ffff488bb5d8f9ffff410fb6c60fb695c8f9ffff488b4e703a14810f85c6f1ffff4c3badb8fbffff0f84d7450000498d4501c685d0f9ffff01c685f8f9ffff01488985b0fbffff0fb685c8f9ffff41884500e9cff2ffff31db4183fdff0f8479daffff410fb6f54c89e7e8c532f9ffe968daffffddd8488b85c0fbffff48398538faffff0f85d5e2ffff4c8bb510faffff4d89fcbb02000000e93edaffff41803c24000f846ff2ffff488b85b8f9ffff4885c00f84e64500000fb60884c90f85db450000488b85b8f9ffff440fb6284584ed74554c89a548f9ffff4c89bd40f9ffff4989c44189df488b9db0fbffff483b9db8fbffff0f84b80b0000488d4301488985b0fbffff44882b4983c401450fb62c244584ed75d04489fb4c8ba548f9ffff4c8bbd40f9ffff85db410f4fd8e9f2f1ffff4c89ffe8f824f9ff83f8ff4189c50f8505fdffff4c8bb510faffff4d89fcbb02000000e980d9fffff685ecf9ffff010f84f20000008bbde8f9ffff85ff0f84f0e5ffff488bbda0f9ffff488b17488995e0faffff488b4f0848898de8faffff488b771031ff4889b5f0faffff31f683ade8f9ffff01741a83fa2f0f879900000083c20883ade8f9ffff01bf0100000075e64084ff74068995e0faffff4084f6740748898de8faffff83fa2f0f87bd2d000089d148038df0faffff83c2088995e0faffff488b11e98ce5ffff0f1f440000f685ecf9ffff040f840e150000448b95e8f9ffff4585d20f85492900008b8d58faffff83f92f0f879f29000089ca48039568faffff83c108898d58faffff488b12668902e941e5ffff4883c108be01000000e947fffffff685ecf9ffff040f84010f00008bb5e8f9ffff85f674af488bbda0f9ffff488b17488995e0faffff488b4f0848898de8faffff488b771031ff4889b5f0faffff31f683ade8f9ffff01741a83fa2f0f87ac0e000083c20883ade8f9ffff01bf0100000075e64084ff74068995e0faffff4084f6740748898de8faffff83fa2f0f878027000089d148038df0faffff83c2088995e0faffff488b11e94bffffff662e0f1f8400000000004c89ffe82823f9ff83f8ff89c30f85c0e9ffff48c7c0d0ffffff4c8bb510faffff4d89fcbb0400000064c70054000000e9a3d7ffff4c8bb510faffff4d89fcbb02000000e98fd7ffff48899500faffffc68588f9ffff00e9d5ecffff488b9560faffff488d4a0848898d60faffffe911e4ffff0fb60083e82ba8fd0f8521e3ffff4183fdff4c8bb510faffff4d89fc0f84f3090000410fb6f54c89e7bb02000000e88a2ff9ffe92dd7ffffbfe3cc4b00e84b82feff488bb570f9ffff4885c048898580f9ffff8b9ed80000008d7bff89bd60f9ffff0f843a010000488d8590faffff31c94489adf8f9ffff899d60f9ffffc78508faffff300000004989cd488985c0f9ffff488d8540faffff4c89b5d0f9ffff4c89bdc8f9ffff48898558f9ffff488b8570f9ffff488bb580f9ffff8bbd08faffff4e8ba428e0000000488b85c0f9ffff4e892428e84382feff488bbd58f9ffff488d9530faffff89c648c78530faffff00000000e8d33cfeff4883f8ff4989c60f84304a00004531ff31d285db4c89e77e1a31f64183c701e83f9ffaff4139df488d780175ec4c29e74889fa498d44161f4c89e64983c5084883e0f04829c4488d4c240f4883e1f04889cf48898d88f9ffffe8f53afaff488bb558f9ffff4c89f24889c7e8e33afaff488b8d88f9ffffc60000838508faffff0149898c2dd8faffff4983fd500f8521ffffff448badf8f9ffff4c8bb5d0f9ffff4c8bbdc8f9ffff8b85ecf9ffff4d89fcc78588f9ffff000000004589ef2580000000898554f9ffff488d85b0fbffff4883c01048898558f9ffff4183ffff0f8420140000448badf0f9ffff4585ed0f84101400008bb5f0f9ffffb8ffffff7f4c89b508faffff85f60f4fc631db8985c8f9ffff488d8590faffff488985f8f9ffff904883bd80f9ffff00899dd0f9ffff0f84550500004c8bacdde0faffff8bb588f9ffff488b85f8f9ffff85f64c892cd874414531f64c89ef4c89a5c0f9ffff4589f54989c44189f6660f1f84000000000031f64183c501e8e59dfaff488d78014539ee49893cdc75e84c8ba5c0f9ffff4989fd410fb64d004139cf0f85d605000041807d01004d8d75010f84cf0500008bb5c8f9ffff48899dc0f9ffff488b9d08faffff4189f7eb410f1f840000000000488d480149894c24080fb600410fb6364883c3014183ef0139c689f10f85380400004983c60141803e000f84450400004585ff0f84ee030000498b442408493b44241072bb4c89e7e8a31ff9ff83f8ff75ba4489fe4189c748c7c0d0ffffff48899d08faffff488b9dc0f9ffff648b0089851cfaffff410fb60684c00f847d1e00004d39ee76594183ffff0f85b0030000498d46ff4c39e8488985d0f9ffff763b4989c70f1f4000410fb6374c89e74983ef01e8382cf9ff4d39ef75eb4c89e84c29f04883c001480185d0f9ffff48018508faffff488b85d0f9ffff440fb63831f64c89efe8a69cfaff488b8df8f9ffff4883c001488904d94883c3014883fb0a0f8549feffff8b8588f9ffff4c8bb508faffff4589fd83c001398560f9ffff8985c0f9ffff0f8c7201000048c78508faffff00000000660f1f840000000000488b8508faffff488bb5f8f9ffff488b1cc68985d0f9ffff0fb6134439ea0f8569030000807b01004c8d7b010f84630300008bb5c8f9ffff4189f5eb3a0f1f00488d500149895424080fb600410fb60f4983c6014183ed0139c10f857a0200004983c70141803f000f842e0300004585ed0f8442020000498b442408493b44241072bd4c89e7e8251ef9ff83f8ff75bc4489ee4189c548c7c0d0ffffff648b0089851cfaffff410fb60784c00f84d24900004c39fb73564183fdff0f8504020000498d47ff4839c3488985d0f9ffff73384989c50f1f4000410fb675004c89e74983ed01e8c72af9ff4c39eb75ea4889d84c29f84883c001480185d0f9ffff4901c6488b85d0f9ffff440fb62831f64889dfe8399bfaff488bbd08faffff488b8df8f9ffff4883c001488904f94883c7014883ff0a4889bd08faffff0f85befeffff8385c0f9ffff018b85c0f9ffff398560f9ffff0f8d91feffff4589ef448bad54f9ffff4585ed0f84841000008b85f0f9ffff41b9ffffff7f85c0440f4fc8488b85b8f9ffff4589cd440fb6084889c34539cf0f85900000004589cfeb21488d500149895424080fb600440fb63b4983c6014183ed014139c70f857d040000488b85b0fbffff488b8db8fbffff4489fa4839c10f84eb010000488d480148898db0fbffff4488384883c301803b000f84050300004585ed0f841a040000498b442408493b44241072954c89e7e89e1cf9ff83f8ff75944189c748c7c0d0ffffff648b0089851cfaffff4c8b85b0fbffff4d85c00f84d0020000803b000f85dc4400004489fa8b85f0f9ffff498d58ff48899db0fbffff85c0440f4ee848399db8fbffff0f8432020000488d4301488985b0fbffff881331c04585ed0f9fc04129c54183ffff4489adf0f9ffff0f841d010000498b442408493b4424100f839a010000488d480149894c2408440fb6384983c601e90ffbffff4c39fb4189c50f8348feffff410fb6f54c89e74983ee01e8db28f9ffe9e7fdffff4489ee4189c589c8e9c3fdffff4d39ee48899d08faffff4189c7488b9dc0f9ffff0f869ffcffff410fb6f74c89e74883ad08faffff01e89b28f9ffe937fcffff4489fe48899d08faffff4189c7488b9dc0f9ffff89c8e905fcffff4589fd4989de8b85f0f9ffff85c0440f4ee88b8588f9ffff8985c0f9ffff448bbdd0f9ffff488b9db0fbffff898560f9ffff898588f9ffff4183c7304489fae9e4feffff488b8570f9ffff4c8bacd8e0000000e99ffaffff84d20f8578fdffff448badc8f9ffff8b85f0f9ffff85c0440f4ee88b85c0f9ffffeba348c7c0d0ffffff8b8d1cfaffff648908e903faffff4885c948898dd0f9ffff0f8413feffff488b85c0fbffff488bbd58f9ffff4488bdf8f9ffff48898508faffffe8da1ffeff84c00fb695f8f9ffff488b8dd0f9ffff7479488b85c0fbffff482b8d08faffff4889c64803b5c8fbffff4801c8488d48014889b5b8fbffff48898db0fbffff448838e9abfdffff4c89e7e86b1af9ff83f8ff4189c70f855ffeffff48c7c0d0ffffff648b0089851cfaffffe962f9ffff84c90f8532fbffff4c8bb508faffff448badc8f9ffffe9bafeffff48c785b0fbffff0000000048c785b8fbffff00000000e94cfdffff4885db889508faffff0f84ccfdffff488bbd58f9ffff482b9dc0fbffffe8121ffeff84c00fb69508faffff0f8493040000488b85c0fbffff4889c148038dc8fbffff4801c3488d4301488985b0fbffff48898db8fbffff8813e97dfdffff4c8b85b0fbffff4d85c00f853cfdffff4c8bb510faffff48c7c0d0ffffff31dbc78518faffffffffffff64c7000c000000e928ceffff4885db0f844df4ffff488b85c0fbffff488bbd60f9ffff44898550f9ffff488985c0f9ffffe8761efeff84c0448b8550f9ffff0f84170a0000488bb5c0fbffff4889f0480385c8fbffff488985b8fbffff4889d8482b85c0f9ffff4801f0488d70014889b5b0fbffff448828e9e5f3ffff4c89ffe80719f9ff83f8ff0f858419000083bbfc0300006c4c8bb510faffff4d89fc0f8456190000bb02000000e985cdffff4c89ffe8d518f9ff83f8ff4189c50f858af0ffff83bbfc0300006948c7c1d0ffffff4d89fc4c8bb510faffff648b010f84c22e0000bb02000000e946cdffff660f1f4400004c8b85b0fbffff4489fe4d89e74d85c00f85be1a00004c8bb510faffff4d89fce9d4feffff4189c7e9e5fbffff4885db4088b540f9ffff0f841de5ffff488b85c0fbffff488bbd60f9ffff488985f8f9ffffe8611dfeff84c00fb6b540f9ffff0f84c2120000488bbdc0fbffff4889f8480385c8fbffff488985b8fbffff4889d8482b85f8f9ffff4801f8488d78014889bdb0fbffff408830e9bce4ffff4189d84489e34c8ba5c0f9ffff448b9558f9ffff4585d20f8452f2ffff4d29e5488b85b8f9ffff4d85ed0f8ee4190000410fb634244038307415e940f2ffff0f1f00410fb60c0c38080f8530f2ffff4883c0014889c1482b8db8f9ffff4939cd7fe04939cd0f850bf2ffff0fb6304439f689f10f8509f2ffff807801004c8d6801753ce90a3700006690488d5001498957080fb600410fb6750048838508faffff014183e80139c689f10f85ea3600004983c50141807d00000f84d33600004585c00f84d1370000498b4708493b471072b84c89ff448985c0f9ffffe81917f9ff83f8ff448b85c0f9ffff75a84189c648c7c0d0ffffff410fb64d00648b0089851cfaffffe978f1ffff488b95c0fbffff48838500faffff01c6040201488b8500faffff4889c2e989dbffff4c89ffe8c616f9ff83f8ff4189c50f8551d6ffff48c7c0d0ffffff648b0089851cfaffffe940d6ffff4c89ffe89d16f9ff83f8ff89c30f853fdfffff48c7c0d0ffffff4c8bb510faffff4d89fcbb0400000064c70054000000e918cbffff4c89ffe86816f9ff83f8ff0f855918000083bbfc0300006e48c7c0d0ffffff4d89fc4c8bb510faffff648b100f8557fdffff488bb5d8f9ffff648910488b4e7083b9fc030000690f8541f1ffff648910e939f1ffff83e008898508faffff0f8507dafffff6c5210f84d03f00008b85e8f9ffff85c00f85313f00008b9558faffff83fa2f0f870b3f000089d048038568faffff83c208899558faffff488b00488985e0f9ffff4883bde0f9ffff000f84cd3e0000bf64000000e892a3f9ff488bb5e0f9ffff4885c048898598f9ffff4889060f84733e0000488b8510faffff4885c00f84273e0000488b004883f8200f841a3e0000488d50014889f1488bb510faffff48c785b0f9ffff6400000048891648894cc610e950d9ffff0f1f44000048c785b0fbffff0000000048c785b8fbffff00000000e9fcf8ffff4c89ffe82d15f9ff83f8ff4189c50f8525dbffff4c8bb510faffff4d89fc8b8518faffffbb0100000085c00f85acc9ffffc78518faffffffffffffe99dc9ffff48c7c0d0ffffff8b951cfaffff4d89fc4c8bb510faffff648910ebc24883c108be01000000e934f1fffff785ecf9ffff000200000f85883a00008b8de8f9ffff85c90f85223a00008b8d58faffff83f92f0f87bd19000089ca48039568faffff83c108898d58faffff488b128902e9dcd5ffff66904585e448899500faffff0f84b90200004183fdff0f8476180000498b4708493b47100f8330180000488d5001498d5e0149895708440fb628488d8590faffff4c8ba5b0f9ffff4c89b5c8f9ffff48c78590faffff000000004589ee48c785f8f9ffff00000000488985c0f9ffff8b85ecf9ffff4989dd25002100008985e8f9ffff488b95c0fbffff4963c60fb6bdd0f9ffff403a3c020f84040200008b8508faffff85c0742d83adf0f9ffff010f84883f0000498b4708493b47100f83bf000000488d50014983c50149895708440fb630ebae488b8dc0f9ffff488bbda8f9ffff488db5e0faffffba010000004488b5e0faffffe8274700004883f8fe0f84560100008b9de8f9ffff488385a8f9ffff04488b8da8f9ffff85db0f8429010000488b85e0f9ffff4a8d1ca50000000048c785f8f9ffff00000000488b38488d041f4839c10f855cffffff4a8d34e500000000e869a6f9ff4885c00f84503f0000488b8de0f9ffff4d01e44889014801d8488985a8f9ffffe92affffff0f1f40004c89ffe8f812f9ff83f8ff4189c60f85bb1600004c89eb4189c548c7c0d0ffffff4c8bb5c8f9ffff4c89a5b0f9ffff648b0089851cfaffff4883bdf8f9ffff000f85ad3e00004c39f30f840a160000448b9d08faffff4585db7563448b95e8f9ffff488b85a8f9ffff4585d24c8d6004c70000000000742d4c8bb5e0f9ffff4c89e6498b3e4829fe4889f048c1f802483985b0f9ffff740de8a3a5f9ff4885c07403498906838518faffff014c89a5a8f9ffff48c785e0f9ffff000000004989de4531c0e939c8ffff48c785f8f9ffff00000000e94dfeffff48c7c0b0ffffff488385f8f9ffff01488b95f8f9ffff64488b00488b008b80a80000004839c20f822efeffffb930d54b00ba760a0000beeecc4b00bff8cc4b00e852dcf7ff66904c89eb4589f54c89ff410fb6f54c89a5b0f9ffff4c8bb5c8f9ffff4883eb01e8bc1ef9ffe9effeffff4183fdff0f8445160000498b4708493b47100f83f5150000488d500149895708440fb628488b95c0fbffff4963c50fb68dd0f9ffff4d8d66013a0c020f84101500008b85ecf9ffff4c89b5f8f9ffff4589ee488b9d98f9ffff25002100008985c8f9ffff8b85f0f9ffff83e8014c01e0488985f0f9ffff4c89f84d89e74989c4eb64488b95e0f9ffff488bb5b0f9ffff4889c3488b3a4801fe4839f00f841f0100004c3bbdf0f9ffff0f84b8140000498b442408493b4424107351488d70014989742408440fb630488bb5c0fbffff4963c60fb68dd0f9ffff4983c7013a0c060f8452140000448b8508faffff4585c075b08bbdc8f9ffff488d430144883385ff0f857bffffff4889c3eb964c89e7e8a310f9ff83f8ff4189c675ac4189c54c89e04d89fc4989c748c7c0d0ffffff4c8bb5f8f9ffff48899d98f9ffff648b0089851cfaffff4d39f40f84d51300008bb508faffff85f60f856cd3fffff785ecf9ffff00210000488b8598f9ffff488d5801c6000074264c8bb5e0f9ffff4889de498b3e4829fe4839b5b0f9ffff740de862a3f9ff4885c07403498906838518faffff0148899d98f9ffff4d89e64531c048c785e0f9ffff00000000e9f8c5ffff488b85b0f9ffff4c8d2c00488d5801eb164939dd0f8611360000488b85e0f9ffff4989dd488b384c89eee807a3f9ff4885c074dd488b9db0f9ffff488b95e0f9ffff4c89adb0f9ffff4889024801c3e98dfeffff66904885d20f8493ceffff482b95c0fbffff488d85b0fbffff4c8985f8f9ffff488d78104889d3e89614feff84c04c8b85f8f9ffff0f84a3250000488b85c0fbffff4889c2480395c8fbffff488995b8fbffff488d1418488d4201488985b0fbffff44882ae934ceffff0f1f84000000000048c785b0fbffff0000000048c785b8fbffff00000000e9ebe9fffff785ecf9ffff000200000f856f280000448b8de8f9ffff4585c90f8448faffff488bb5a0f9ffff31ff488b16488995e0faffff488b4e0848898de8faffff488b76104889b5f0faffff31f6eb100f1f84000000000083c208bf0100000083ade8f9ffff010f84df27000083fa2f76e64883c108be01000000ebe34c8bb510faffff4d89fcbb02000000e92fc3ffff48c7c0d0ffffff64c70016000000e98bc4ffffc78580f9ffff65000000c685c8f9ffff6541be0100000089d3e929d9ffff4c89ffe84e0ef9ff83f8ff4189c50f85bbd8ffff48c7c0d0ffffff648b0089851cfaffffe9aed8ffff0f1f440000c78580f9ffff65000000c685c8f9ffff654531f68b9df0f9ffffe9dcd8ffff488b85b0fbffff483b85b8fbffff0f8433260000488d5001488995b0fbffff4488288b85f0f9ffff85c00f8403260000498b4708493b47100f838b050000488d5001498957080fb600488bb5d8f9ffff0fb6d0488b4e70833c916e0f85be2500008b8df0f9ffff85c90f9fc20fb6d229d1488b95b0fbffff483b95b8fbffff898df0f9ffff0f848a260000488d4a0148898db0fbffff88028b9df0f9ffff85db0f845b260000498b4708493b47100f83ed040000488d500149895708440fb628488b95d8f9ffff488b8508faffff488b52704c8d7002410fb6c5833c82660f85272500008b95f0f9ffff85d20f9fc00fb6c029c2488b85b0fbffff483b85b8fbffff8995f0f9ffff0f84e5280000488d5001488995b0fbffff448828448b9df0f9ffff4585db0f85812800004c8ba5b0fbffffe946daffff904189d84489e34c8ba5c0f9ffffe934d9ffff4c8b85b0fbffff4589fd4d89e7c78508faffff0a000000e9eeccffff488b85b0fbffff483b85b8fbffff0f8427160000488d5001488995b0fbffff4488288b95f0f9ffff85d20f84f7150000498b4708493b47100f8312160000488d5001498957080fb600488bb5d8f9ffff0fb6d0488b4e70833c91610f854b1500008bbdf0f9ffff85ff0f9fc20fb6d229d7488b95b0fbffff483b95b8fbffff89bdf0f9ffff0f8449150000488d4a0148898db0fbffff8802448ba5f0f9ffff4585e40f8418150000498b4708493b47100f8332150000488d500149895708440fb628488b8dd8f9ffff4c8bb508faffff410fb6c5488b51704983c602833c826e0f856e110000488b85b0fbffff483b85b8fbffff0f84f5110000488d5001488995b0fbffff4488284c8ba5b0fbffffe903d9ffff4c89ffe8860bf9ff83f8ff4189c50f85e2dcffff4c8bb510faffff4d89fce9edddffff4885d20f84dfcaffff482b95c0fbffff488d85b0fbffff488d78104889d3e86810feff84c00f84610d0000488b85c0fbffff4889c2480395c8fbffff488995b8fbffff488d1418488d4201488985b0fbffffc60230e98ecaffff908b85ecf9ffff25002100008985ecf9ffff0f85b1000000488b9d98f9ffff4d89e68b85f0f9ffff4883c30144886bff29d8038598f9ffff85c00f8eb8dbffff498b4708493b47107312488d500149895708440fb6284983c601ebc64c89ffe8ad0af9ff83f8ff4189c575ea48c7c0d0ffffff41bdffffffff648b0089851cfaffff8b85ecf9ffff85c00f8468dbffff4c8ba5e0f9ffff4889de498b3c244829fe483bb5b0f9ffff0f844adbffffe89e9df9ff4885c00f843cdbffff49890424e933dbffff0f1f4000486385f0f9ffff488b9db0f9ffff4d89e68d48ff4c01e04589ec488985f0f9ffff488b8598f9ffff898d08faffff488b95e0f9ffff48899df8f9ffff488b3a488d0c1f4839c874684c8d68014488208b8508faffff85c07e45498b4708493b4710731c488d480149894f08440fb6204983c60183ad08faffff014c89e8ebaf4c89ffe8c109f9ff83f8ff4189c475e048899db0f9ffff4c89ebe905ffffff48899db0f9ffff4c89eb4589e5e917ffffff488b85f0f9ffff48638d08faffff4c29f04839c3480f4ccb4c8d2c0b4c89eee8b49cf9ff4885c00f84592a0000488b95e0f9ffff4889024801d84c89ebe956ffffff4d85c04c8985f8f9ffff0f84252a0000488d85b0fbffff488b9dc0fbffff488d7810e84f0efeff84c04c8b85f8f9ffff0f84571d0000488b85c0fbffff4929d84889c2480395c8fbffff4c01c0488995b8fbffff488d5001488995b0fbffffc60000488b85b0fbffffe99ac9ffff0f1f840000000000e85b44000089da83e2080f8512e3ffff488b95c0fbffff488b8d38faffff4839d10f84891d00008bb5e8f9ffff85f60f85152100008bb558faffff83fe2f0f87ef20000089f048038568faffff83c60889b558faffff488b0080bd88f9ffff0074070f5705578f0300f30f1100e9afd6ffff660f1f4400004c89ffe86008f9ff83f8ff4189c50f850bfbffff4c8bb510faffff4d89fcbb02000000e9e8bcffff4c89ffe83808f9ff83f8ff0f856ffaffff4c8bb510faffff4d89fcbb02000000e9c3bcffff0f1f008b85e8f9ffff85c00f851a2a00008b9558faffff83fa2f0f87b029000089d048038568faffff83c208899558faffff488b00488985a8f9ffff4883bda8f9ffff000f85b1cdffff4c8bb510faffff4d89fcbb02000000e965bcffff0f1f440000f685ecf9ffff040f84c90e00008bb5e8f9ffff85f60f85310e00008b9558faffff83fa2f0f870b0e000089d048038568faffff83c208899558faffff488b00664489304531c0e96fbdffff0f1f4400004c89ff48899508faffffe85907f9ff83f8ff4189c5488b9508faffff0f852029000048c7c0d0ffffff4c89b508faffff648b0089851cfaffffe93ed9ffff488b85c0fbffff488bbd60f9ffff488985f0f9ffffe8300cfeff84c00f84231e0000488b85c0fbffff4c2badf0f9ffff4889c148038dc8fbffff4c01e848898db8fbffff488d480148898db0fbffff448830e915d2ffff0f1f008b85e8f9ffff85c00f85a30100008b9558faffff83fa2f0f877d01000089d048038568faffff83c208899558faffff488b00488985a8f9ffff4883bda8f9ffff000f8531ceffff4c8bb510faffff4d89fcbb02000000e91dbbffff0f1f440000418d46d583e0fd0f8516d2ffff4c3badb8fbffff0f84541c0000498d4501c685d0f9ffff01488985b0fbffff45887500e92dd3ffff4c89ffe83306f9ff83f8ff4189c50f85f3cdffff4c8bb510faffff4d89fc8b8518faffffbb0100000085c00f85b2baffffc78518faffffffffffffe9a3baffff488bbdc0fbffff89da488db538faffff81e280000000e8c041000089da83e2080f8515e0ffff488b95c0fbffff488b8d38faffff4839d10f848c1a0000448b85e8f9ffff4585c00f85af0f00008bb558faffff83fe2f0f87890f000089f048038568faffff83c60889b558faffff488b0080bd88f9ffff007402d9e0db38e9b9d3ffff0f1f84000000000048c785b0fbffff0000000048c785b8fbffff00000000e917d2ffff48c7c0d0ffffff8b951cfaffff4d89fc4c8bb510faffff648910e919ffffff488b8560faffff488d500848899560faffffe97efeffff488bb5a0f9ffff488b06488985e0faffff488b5608488995e8faffff488b4e1031f648898df0faffff31c983ade8f9ffff01741683f82f775683c00883ade8f9ffff01be0100000075ea4084f674068985e0faffff84c97407488995e8faffff83f82f0f878303000089c2480395f0faffff83c0088985e0faffff488b02488985a8f9ffffe9fefdffff0f1f4400004883c208b901000000eb914c8bb510faffff4d89fcbb02000000e919b9ffff4c8bb510faffff4d89fcbb02000000e905b9ffff488b8560faffff488d500848899560faffffe9b1c9ffff488bb5a0f9ffff488b06488985e0faffff488b5608488995e8faffff488b4e1031f648898df0faffff31c983ade8f9ffff01741683f82f775d83c00883ade8f9ffff01be0100000075ea4084f674068985e0faffff84c97407488995e8faffff83f82f0f87c800000089c2480395f0faffff83c0088985e0faffff488b02488985e0f9ffff4889c3e931c9ffff660f1f8400000000004883c208b901000000eb8a488b8da0f9ffff31f6488b01488985e0faffff488b5108488995e8faffff488b491048898df0faffff31c983ade8f9ffff01741683f82f774c83c00883ade8f9ffff01be0100000075ea4084f674068985e0faffff84c97407488995e8faffff83f82f774289c2480395f0faffff83c0088985e0faffff488b02e931ccffff660f1f4400004883c208b901000000eb9b488b95e8faffff488d4208488985e8faffffe933ffffff488b95e8faffff488d4208488985e8faffffebbc488bbda0f9ffff488b07488985e0faffff488b5708488995e8faffff488b771031ff4889b5f0faffff31f6eb0d0f1f44000083c008bf0100000083ade8f9ffff01741083f82f76ea4883c208be01000000ebe74084ff74068985e0faffff4084f67407488995e8faffff83f82f777789c2480395f0faffff83c0088985e0faffff488b02488985e0f9ffff4989c4e94ed1ffff8bb5e8f9ffff85f675718b9558faffff83fa2f775289d048038568faffff83c208899558faffff488b0048898598f9ffff4883bd98f9ffff000f8578d1ffff4c8bb510faffff4d89fcbb02000000e9acb6ffff488b95e8faffff488d4208488985e8faffffeb87488b8560faffff488d500848899560faffffebac488b8da0f9ffff31ff488b01488985e0faffff488b5108488995e8faffff488b71104889b5f0faffff31f6eb0f0f1f800000000083c008bf0100000083ade8f9ffff01741083f82f76ea4883c208be01000000ebe74084ff74068985e0faffff4084f67407488995e8faffff83f82f774f89c2480395f0faffff83c0088985e0faffff488b0248898598f9ffffe924ffffff488b8560faffff488d500848899560faffffe91dd0ffff488b95e8faffff488d4208488985e8faffffe978fcffff488b95e8faffff488d4208488985e8faffffebaf4189d84489e34c8ba5c0f9ffff410fb63424e975cdffff4189f54c8bb508faffffe96de5ffff4c8bb510faffff4d89fcbb02000000e976b5ffff488dbdb0fbffffbe30000000e89db2ffff4c8b85b0fbffffe940c1ffff4883f8010f85f4000000448b95f8f9ffff488385a8f9ffff044585d20f8ed0000000498b4708493b47107336488d5001498957080fb6184983c601488385f0f9ffff0183adf8f9ffff01e97ac8ffff4c8bb510faffff4d89fc410fb6f5e9b8ddffff4c89ffe84700f9ff83f8ff89c375c64189c548c7c0d0ffffff4c89a5b0f9ffff648b0089851cfaffff448b8d08faffff4585c90f8541bdffff448b85ecf9ffff4585c07431488b9de0f9ffff488bb5a8f9ffff488b3b4829fe4889f048c1f802483985b0f9ffff740de82193f9ff4885c07403488903838518faffff014531c048c785e0f9ffff00000000e9c1b5ffff4c89a5b0f9ffff4189ddeb8d48c7c0d0ffffff4c8bb510faffff4d89fcbb0400000064c70054000000e939b4ffff48c7c1d0ffffff648b01648901bb02000000e922b4ffff0fb6c0833c836c4889c60f8469d7ffff4c8bb510faffff4d89fce9c4dcffff4c89ff48899500faffffe84cfff8ff83f8ff4189c5488b9500faffff0f8515c9ffff4c8bb510faffff4d89fcbb02000000e9cdb3fffff68508faffff0a0f85a7d7ffff8bbdf0f9ffff85ff0f9fc00fb6c029c74183fdff89bdf0f9ffff0f84cb000000498b4708493b47100f838a000000488d500149895708440fb6284983c601c78508faffff10000000e9a1beffff4881ec20010000488bbd10faffffba01000000488d44240f4883e0f048c700000000004889780848898510faffff31c0e9d5cdffff8b85ecf9ffff4c8bb510faffff4d89fc250020000083f80119db83e30285c0b8ffffffff0f448518faffff898518faffffe908b3ffff4c89ffe858fef8ff83f8ff4189c50f856effffff48c7c0d0ffffffc78508faffff10000000648b0089851cfaffffe903beffff48c7c0d0ffffff8b951cfaffffc78508faffff10000000648910e9e4bdffff4189c5e918c1ffff0fb6c0833c836e4889c60f858cfeffff488b85d8f9ffff488b5870e98dd5ffff31c9e947e6ffff48c785b0fbffff0000000048c785b8fbffff00000000e941bdffff4189f5488b85b8f9ffff4839d80f8300f1ffff4889d94829c14929c84183fdff4c8985b0fbffff7410410fb6f54c89ff4983ee01e88b0af9ff4c8d6bff4c39adb8f9ffff73314d89ec410fb634244c89ff4983ec01e86a0af9ff4c39a5b8f9ffff75e6488b85b8f9ffff4829d84883c0014901c54901c6450fb66d004c8b85b0fbffffe98bf0ffff488b8dd0f9ffff482b8df0f9ffff486385f8f9ffff4939cc490f4ec4498d1404488d349500000000488995c8f9ffffe84890f9ff4885c0488b95c8f9ffff741c488bbde0f9ffff4989d44889074c01e8488985a8f9ffffe937c5ffff488b85e0f9ffff498d75044983c401488b38e80990f9ff4885c00f84d5280000488b95e0f9ffff4889024c01e8488985a8f9ffffe9fec4ffff4c8bb510faffff4d89fcbb02000000e93bb1ffff4c8bb510faffff4d89fcbb02000000e927b1ffff4589f54c8bb5f8f9ffff4c89e048899d98f9ffff4d89fc4989c7410fb6f54c89ff4983ec01e85509f9ffe9dfebffff4c89e04589f54d89fc48899d98f9ffff4c8bb5f8f9ffff4989c7e9c0ebffff4983c501e929e8ffff4c89ffe820fcf8ff83f8ff4189c575654c8bb510faffff4d89fc8b8518faffff85c07547bb01000000c78518faffffffffffffe998b0ffff48c7c0d0ffffff8b8d1cfaffff4d89fc4c8bb510faffff648908ebc6488b8de8faffff488d5108488995e8faffffe97bd8ffffbb01000000e95bb0ffff498d5e01e962e7ffff4c89ffe8a2fbf8ff83f8ff4189c50f8503eaffff4c8bb510faffff4d89fc448b8d18faffffbb010000004585c90f851fb0ffffc78518faffffffffffffe910b0ffff48c7c0d0ffffff8b8d1cfaffff4d89fc4c8bb510faffff648908ebc04881ec20010000488b9510faffff488d44240f4883e0f04889500848c70000000000ba0100000048898510faffff31c0e983bdffff8b85ecf9ffff4c8bb510faffff4d89fc250020000083f80119db83e30285c0b8ffffffff0f448518faffff898518faffffe989afffff488b9560faffff488d4a0848898d60faffffe93ee6ffff488bbda0f9ffff488b17488995e0faffff488b4f0848898de8faffff488b771031ff4889b5f0faffff31f683ade8f9ffff010f841ed7ffff83fa2f771d83c20883ade8f9ffff01bf0100000075eae903d7ffff0f1f80000000004883c108be01000000ebc6488b9560faffff488d4a0848898d60faffffe95cd6ffff4c8bb510faffff4d89fcbb02000000e9e2aeffff4489e84c89a5b0f9ffff4189dd48899598f9ffff89c3410fb6f54c89ff4983ee01e81407f9ffe9a9caffff4c89ffe807faf8ff83f8ff4189c50f857fc9ffff4c8bb510faffff4d89fc8b8518faffffbb0100000085c00f8586aeffffc78518faffffffffffffe977aeffff488b8d08faffff8b851cfaffff4d89fc4c8bb510faffff648901ebc2488dbdb0fbffff410fbef5e883abffff4c8ba5b0fbffffe90cc7ffff4c8bb510faffff4d89fcbb02000000e92baeffff488b8560faffff488d500848899560faffffe9f0f1ffff488bb5a0f9ffff488b06488985e0faffff488b5608488995e8faffff488b4e1031f648898df0faffff31c9eb0f0f1f800000000083c008be0100000083ade8f9ffff01741083f82f76ea4883c208b901000000ebe74084f674068985e0faffff84c97407488995e8faffff83f82f775f89c2480395f0faffff83c0088985e0faffff488b02e969f1fffff785ecf9ffff000200000f85e00000008b8de8f9ffff85c975538b9558faffff83fa2f773489d048038568faffff83c208899558faffff488b004489304531c0e99faeffff488b95e8faffff488d4208488985e8faffffeb9f488b8560faffff488d500848899560faffffebca488bbda0f9ffff31f6488b07488985e0faffff488b5708488995e8faffff488b4f1048898df0faffff31c983ade8f9ffff01741683f82f777f83c00883ade8f9ffff01be0100000075ea4084f674068985e0faffff84c97407488995e8faffff83f82f0f87f400000089c2480395f0faffff83c0088985e0faffff488b02e94affffff8b95e8f9ffff85d2754d8b9558faffff83fa2f772e89d048038568faffff83c208899558faffff488b004488304531c0e9bfadffff4883c208b901000000e965ffffff488b8560faffff488d500848899560faffffebd0488b8da0f9ffff31f6488b01488985e0faffff488b5108488995e8faffff488b491048898df0faffff31c983ade8f9ffff01741683f82f776183c00883ade8f9ffff01be0100000075ea4084f674068985e0faffff84c97407488995e8faffff83f82f0f870501000089c2480395f0faffff83c0088985e0faffff488b02e950ffffff488b95e8faffff488d4208488985e8faffffe907ffffff4883c208b901000000eb864c8bb510faffff4d89fcbb02000000e98aabffff4c8bb510faffff4d89fcbb02000000e976abffff488dbdb0fbffff0fbef0e89fa8ffffe9b0eaffff4c89ffe8b2f6f8ff83f8ff4189c50f85c6eaffff4c8bb510faffff4d89fcbb02000000e93aabffff488b8de8faffff488d5108488995e8faffffe93ed2ffff4c8bb510faffff4d89fcbb02000000e90fabffff488dbdb0fbffff410fbef5e837a8ffffe9d2e9ffff4c89ffe84af6f8ff83f8ff0f85e8e9ffff4c8bb510faffff4d89fcbb02000000e9d5aaffff488b95e8faffff488d4208488985e8faffffe9f6feffff488b8560faffff488d70084889b560faffffe972f0ffff488bbda0f9ffff4531c0488b07488985e0faffff488b77084889b5e8faffff488b7f104889bdf0faffff31ff83ade8f9ffff01741783f82f776783c00883ade8f9ffff0141b80100000075e94584c074068985e0faffff4084ff74074889b5e8faffff83f82f0f872906000089c64803b5f0faffff83c0088985e0faffff488b06e9efefffff4489e84c89a5b0f9ffff4189dd48899598f9ffff89c3e9f8c5ffff4883c608bf01000000eb804c8bb510faffff4d89fcbb02000000e9e7a9ffff48c7c0d0ffffff4c8bb510faffff4d89fc31dbc78518faffffffffffff64c7000c000000e9bea9ffff4c8bb510faffff4d89fcbb02000000e9aaa9ffff4939c4740d80bdf8f9ffff000f843cc2ffffbfe3cc4b00e8b654feff4885c048898560f9ffff0f84be0400004183fdff0f84f4070000498b4708493b47100f83bd070000488d500149895708440fb62848838508faffff01488bb560f9ffffbf2e000000e8f954feff488dbd40faffff488b8dc0fbffff48398db0fbffff89c68985bcfaffff48c78540faffff000000004889bd58f9ffff4889fa488bbd68f9ffff0f94c3e8680ffeff4883f8ff0f84f80000004c8ba5b0fbffff488bbd78f9ffffc684059bfbffff00e853def9ff4c89e1482b8dc0fbffff31d24839c8751a488bb568f9ffff488bbd78f9ffffe8efa8f7ff31d285c00f94c209d384db0f84c10000008b85ecf9ffff4c8db5e0faffff4531e4c1e80783e001888540f9ffff888548f9ffff488d8590faffff488985c0f9ffff4983fc0a4963dc0f84a9010000488bb560f9ffff418d7c2430e81054feff488b95c0f9ffff89c64c89f7428904a2488b9558f9ffff48c70200000000e89d0efeff4883f8ff0f846b0300004889da488d4dd04983c40148c1e2044983c6114801d34983fc0b488d1419c6841010fbffff00758de9af010000488bbd78f9ffffe86addf9ff4883f8104c8ba5b0fbffff76114d85e47473488b85c0fbffffe978c0ffff4c89e2482b95c0fbffff4839c20f94c209d3488d500183fa080f8392000000f6c204756c85d20f84fafeffff488b8578f9ffff488bb568f9fffff6c2020fb60088060f84defeffff89d0488b9578f9ffff488b8d68f9ffff0fb75402fe66895401fee9bffeffff48c7c0d0ffffff4c8bb510faffff4d89fc31dbc78518faffffffffffff64c7000c000000e944a7ffff488bb578f9ffff488bbd68f9ffff8b06890789d08b5406fc895407fce975feffff488bb578f9ffff488bbd68f9ffff488b0648890789d0488b4c06f848894c07f8488d85e0faffff488d88c00000004889f84889f74829c84829c701d083e0f883f8080f822dfeffff83e0f831d289d683c2084c8b043739c24c89043172efe912feffff488bb560f9ffffbf2c000000e86752feff488bb5c0f9ffff85c08985b8faffff0f95c0208548f9ffff488b8558f9ffff4c89f78b762848c700000000004889c2e8e30cfeff4883f8ff0f8546feffff80bd48f9ffff007419488bbdb8f9ffffe8d4dbf9ff4883f8104889c20f86e4040000488d85e0faffff448ba5f0f9ffff4805cc00000048898560f9ffff488b95b0fbffff4885d20f845003000080bdd0f9ffff000f84ee0200000fb685c8f9ffff3a42ff0f84810300004585e441beffffff7f488d9de0faffff450f4ff4c785f0f9ffff000000004489a5c0f9ffff0fb63b4439ef0f8598020000807b01004c8d63010f84040400004489f6eb3a488d500149895708440fb628410fb63c2448838508faffff0183ee014439ef89f875524983c40141803c24000f84dc03000085f60f8472040000498b4708493b471072bc4c89ff89b558f9ffffe8c9f0f8ff83f8ff4189c58bb558f9ffff75ac48c7c0d0ffffff648b0089851cfaffff410fb6042484c00f84b20000004939dc76634183fdff7414410fb6f54c89ff4883ad08faffff01e87ffdf8ff4d8d6c24ff4939dd763a4d89e8410fb6304c89ff4c898558f9ffffe85ffdf8ff4c8b8558f9ffff4983e8014c39c375dd4889d84c29e04883c00148018508faffff4901c5450fb66d008385f0f9ffff014883c31148399d60f9ffff0f85e4feffff4183fdff750c4c8ba5b0fbffffe9cffcffff410fb6f54c89ff4883ad08faffff01e8f8fcf8ff4c8ba5b0fbffffe9affcffff448ba5c0f9ffff4189f68b85f0f9ffff4585e4450f4ef483f8090f8fce00000089c3488b95b0fbffff83c330483b95b8fbffff0f84a1000000488d4a0148898db0fbffff881a4589f44585e474864183fdff746a498b4708493b4710733b488d500149895708440fb62831d248838508faffff014585e40f9fc24129d4e9defdffff488bb5e8faffff488d4608488985e8faffffe9d2f9ffff4c89ffe84beff8ff83f8ff4189c575c148c7c0d0ffffff648b0089851cfaffffe916ffffff48c7c0d0ffffff8b951cfaffff4c8ba5b0fbffff648910e9d5fbffff488dbdb0fbffff0fb6f3e8e3a0ffffe958ffffff0fb695f8f9ffff83f20183bdf0f9ffff0b0f856901000084d20f8461010000488b8578f9ffff0fb61084d2742f4889c3488b85b0fbffff483b85b8fbffff0f840c010000488d480148898db0fbffff88104883c3010fb61384d275d4c685f8f9ffff01e9f0feffff4084ff0f8557feffff448ba5c0f9ffffe99ffeffff483b95c0fbffff0f8415fdffff488b85d8f9ffff410fb6cd488b70700fb685c8f9ffff3a048e0f85f6fcffff483b95b8fbffff7449488d4a01c685d0f9ffff01c685f8f9ffff0148898db0fbffff8802e989feffff48c7c0d0ffffff4c8bb510faffff4d89fc31dbc78518faffffffffffff64c7000c000000e9aba2ffff8bb580f9ffff488dbdb0fbffffe8d19fffffc685d0f9ffff01c685f8f9ffff01e93bfeffff418d4dd583e1fd0f8572fcffff483b95b8fbffff742e488d4a01c685d0f9ffff0148898db0fbffff44882ae90bfeffff488dbdb0fbffff0fbef2e87f9fffffe9edfeffff488dbdb0fbffff410fbef5e86a9fffffc685d0f9ffff01e9dbfdffff83bdf0f9ffff0a0f8553fdffff849540f9ffff0f8447fdffff488b85b8f9ffff0fb6104889c384d2742c488b85b0fbffff483b85b8fbffff0f8457010000488d480148898db0fbffff88104883c3010fb61384d275d4c685f8f9ffff00e976fdffff448ba5c0f9ffff4189fde92bfdffff448ba5c0f9ffff4189f6ebec4c89ffe8f9ecf8ff83f8ff4189c50f853bf8ffff48c7c0d0ffffff648b0089851cfaffffe92ef8ffff48c7c0d0ffffff8bb51cfaffff648930e919f8ffff488d85e0faffff488d4a014805aa00000083f908736af6c104754785c90f84f9faffff488b95b8f9fffff6c1020fb61288958afbffff0f84e0faffff89ca488b8db8f9ffff0fb74c11fe66894c10fee9c8faffff4c39e30f82d3fbffffe92bfcffff488bb5b8f9ffff8b1689958afbffff89ca8b4c16fc894c10fce99cfaffff488bbdb8f9ffff488b174889958afbffff89ca488b7417f848897410f8488db5e0faffff4881c6b00000004829f04829c701c883e0f883f8080f825dfaffff83e0f831d289d183c2084c8b040f39c24c89040e72efe942faffff488dbdb0fbffff0fbef2e8ba9dffffe9a2feffff48c7c0d0ffffffe9cdbdffff4c8bb510faffff4d89fc48c785b0fbffff0000000048c785b8fbffff0000000048c7c0d0ffffff31dbc78518faffffffffffff64c7000c000000e932a0ffff48c7c0d0ffffff4c8bb510faffff4d89fc31dbc78518faffffffffffff64c7000c000000e909a0ffff488dbdb0fbffff31f6e8339dffffe9e1b8ffff488dbdb0fbffff410fbef6e81e9dffffc685f0f9ffff01e924b8ffffddd84c8bb510faffff4d89fcbb02000000e9c49fffff488b8560faffff488d70084889b560faffffe92eb9ffff488bbda0f9ffff4531c0488b07488985e0faffff488b77084889b5e8faffff488b7f104889bdf0faffff31ffeb100f1f800000000083c00841b80100000083ade8f9ffff01741083f82f76e94883c608bf01000000ebe74584c074068985e0faffff4084ff74074889b5e8faffff83f82f0f877902000089c64803b5f0faffff83c0088985e0faffff488b06e9a0b8ffff4881ec20010000488b9510faffff488d44240f4883e0f04889500848c70000000000ba0100000048898510faffff31c0e9feafffff4c8bb510faffff4d89fc31dbc78518faffffffffffffe9cc9effff899df0f9ffff4989d6e96bc0ffff4c8bb510faffff4d89fcbb02000000e9aa9effff488dbdb0fbffff410fbef6e8d29bffffc685d0f9ffff01e9d8b6ffff488b95d8f9ffff648901488b52708b92fc03000083fa6c0f8442eaffffe9e2c4ffff48c785b0fbffff0000000048c785b8fbffff00000000e9a5a8ffff4c8bb510faffff4d89fcbb02000000e93d9effff488b8560faffff488d500848899560faffffe99cb0ffff488b8da0f9ffff31f6488b01488985e0faffff488b5108488995e8faffff488b491048898df0faffff31c983ade8f9ffff01741683f82f775583c00883ade8f9ffff01be0100000075ea4084f674068985e0faffff84c97407488995e8faffff83f82f774f89c2480395f0faffff83c0088985e0faffff488b02488985e0f9ffff4889c3e920b0ffff0f1f4400004883c208b901000000eb9248c785b0fbffff0000000048c785b8fbffff00000000e90cb4ffff488b95e8faffff488d4208488985e8faffffebaf4881ec20010000488bb510faffffba01000000488d44240f4883e0f048c700000000004889700848898510faffff31c0e913b0ffff8b85ecf9ffff4c8bb510faffff4d89fc250020000083f80119db83e30285c0b8ffffffff0f448518faffff898518faffffe9f39cffff8b85ecf9ffff4c8bb510faffff4d89fc250020000083f80119db83e30285c0b8ffffffff0f448518faffff898518faffffe9bd9cffff488bb5e8faffff488d4608488985e8faffffe982fdffff4c8bb510faffff4d89fcbb02000000e9929cffff4c8bb510faffff4d89fcbb02000000e97e9cffff4c8bb510faffff4d89fcbb02000000e96a9cffff488dbdb0fbffff410fbef5e89299ffffe9c6d9ffff488b8560faffff488d70084889b560faffffe90cdfffff488bbda0f9ffff4531c0488b07488985e0faffff488b77084889b5e8faffff488b7f104889bdf0faffff31ffeb110f1f84000000000083c00841b80100000083ade8f9ffff01741083f82f76e94883c608bf01000000ebe74584c074068985e0faffff4084ff74074889b5e8faffff83f82f774289c64803b5f0faffff83c0088985e0faffff488b06e981deffff4c8bb510faffff4d89fcbb02000000e99c9bffff488dbdb0fbffff0fbef0e8c598ffffe96fd9ffff488bb5e8faffff488d4608488985e8faffffebbc4084ff74068995e0faffff4084f6740748898de8faffff83fa2f774d89d148038df0faffff83c2088995e0faffff488b11e90dd2ffff448b85e8f9ffff4585c0754f8b8d58faffff83f92f773089ca48039568faffff83c108898d58faffff488b128802e9bda7ffff488b8de8faffff488d5108488995e8faffffebb1488b9560faffff488d4a0848898d60faffffebce488bb5a0f9ffff31ff488b16488995e0faffff488b4e0848898de8faffff488b76104889b5f0faffff31f6eb0e660f1f44000083c208bf0100000083ade8f9ffff01741083fa2f76ea4883c108be01000000ebe74084ff74068995e0faffff4084f6740748898de8faffff83fa2f0f87bd00000089d148038df0faffff83c2088995e0faffff488b11e943ffffff488b85b0fbffff483b85b8fbffff0f84ff000000488d5001488995b0fbffff4488288b85ecf9ffff247f80cc084183fdff8985ecf9ffff0f84c1000000498b4708493b47100f838a000000488d500149895708440fb62848838508faffff018b85f0f9ffff85c07e5183e801c78580f9ffff70000000c685c8f9ffff708985f0f9ffff4531f689c3e9f3afffff488dbdb0fbffffbe30000000e8ef96ffffe969afffff488b8de8faffff488d5108488995e8faffffe93effffffc78580f9ffff70000000c685c8f9ffff704531f689c3e9abafffff4c89ffe8d0e4f8ff83f8ff4189c50f856effffff48c7c0d0ffffff648b0089851cfaffffe961ffffff48c7c0d0ffffff8bb51cfaffff648930e94cffffff488dbdb0fbffff410fbef5e86a96ffffe9fafeffff48c7c0d0ffffff4c8bb510faffff4d89fc31dbc78518faffffffffffff64c7000c000000e90499ffff498b4708493b47100f8346020000488d500149895708440fb628488b85d8f9ffff410fb6d54889d6488b4070833c906974294c89ffe822f1f8ff4c8ba5b0fbffffe98bb1ffff488dbdb0fbffff410fbef5e8e695ffffe914d7ffff8b95f0f9ffff85d20f9fc00fb6c029c2488b85b0fbffff483b85b8fbffff8995f0f9ffff0f845a030000488d5001488995b0fbffff4488288b8df0f9ffff85c90f842a030000498b4708493b47100f83f7020000488d5001498957080fb600488b8dd8f9ffff0fb6d0488b4970833c916e0f85c00200008bbdf0f9ffff31d285ff0f9fc229d7488b95b0fbffff483b95b8fbffff89bdf0f9ffff0f8483020000488d4a0148898db0fbffff8802448b95f0f9ffff4585d20f8452020000498b4708493b47100f831f020000488d5001498957080fb600488bb5d8f9ffff0fb6d0488b4e70833c91690f85e80100008b8df0f9ffff31d285c90f9fc229d1488b95b0fbffff483b95b8fbffff898df0f9ffff0f84ab010000488d4a0148898db0fbffff8802448b8df0f9ffff4585c90f847a010000498b4708493b47100f8347010000488d5001498957080fb600488b8dd8f9ffff0fb6d0488b4970833c91740f85100100008bb5f0f9ffff31d285f60f9fc229d6488b95b0fbffff483b95b8fbffff89b5f0f9ffff0f84d3000000488d4a0148898db0fbffff8802448b85f0f9ffff4585c00f84a2000000498b4708493b47107374488d500149895708440fb628488b95d8f9ffff4c8bb508faffff410fb6c5488b52704983c607833c82790f8460d6ffff4c8bb510faffff4d89fcbb02000000e9b096ffff4c89ffe800e2f8ff83f8ff4189c50f85b2fdffff48c7c0d0ffffff4c8ba5b0fbffff648b0089851cfaffffe94dafffff4c89ffe8d0e1f8ff83f8ff4189c575884c8bb510faffff4d89fcbb02000000e95c96ffff4c8bb510faffff4d89fcbb02000000e94896ffff488dbdb0fbffff0fbef0e87193ffffe926ffffff4c8bb510faffff4d89fcbb02000000e92096ffff4c89ffe870e1f8ff83f8ff0f85b3feffff4c8bb510faffff4d89fcbb02000000e9fb95ffff4c8bb510faffff4d89fcbb02000000e9e795ffff488dbdb0fbffff0fbef0e81093ffffe94efeffff4c8bb510faffff4d89fcbb02000000e9bf95ffff4c89ffe80fe1f8ff83f8ff0f85dbfdffff4c8bb510faffff4d89fcbb02000000e99a95ffff4c8bb510faffff4d89fcbb02000000e98695ffff488dbdb0fbffff0fbef0e8af92ffffe976fdffff4c8bb510faffff4d89fcbb02000000e95e95ffff4c89ffe8aee0f8ff83f8ff0f8503fdffff4c8bb510faffff4d89fcbb02000000e93995ffff4c8bb510faffff4d89fcbb02000000e92595ffff488dbdb0fbffff410fbef5e84d92ffffe99ffcffff4189f6e9f0baffff4189c6e9e0baffff48c7c0d0ffffff4c8bb510faffff4d89fc31dbc78518faffffffffffff64c7000c000000e9d794ffff8bb580f9ffff488dbdb0fbffffe8fd91ffffc685d0f9ffff01c685f8f9ffff01e9fcacffff4c8bb510faffff4d89fcbb02000000e99e94ffff488bb5a0f9ffff31ff488b16488995e0faffff488b4e0848898de8faffff488b76104889b5f0faffff31f683ade8f9ffff010f844fbbffff83fa2f771983c20883ade8f9ffff01bf0100000075eae934bbffff0f1f004883c108be01000000ebca4589f5899df0f9ffff4183fdff0f849facffff410fb6f54c89ff4883ad08faffff01e86eecf8ffe986acffff4d89e5e9d7abffff899df0f9ffff4189f5ebca4f8d0c244c89ce4c898dc8f9ffffe88372f9ff4885c04c8b8dc8f9ffff7451488b8de0f9ffff4a8d14204d89cc488901e94dafffff4c8bb510faffff4d89fce969f3ffff4c8bade0f9ffff4883c3014889de498b7d00e83b72f9ff4885c0744449894500480385f8f9ffffe9e6d4ffff488b85e0f9ffff4983c4014c89e6488b38e81072f9ff4885c07434488bbde0f9ffff488b95f8f9ffff4889074801c2e9deaeffff4c8bb510faffff4d89fc31dbc78518faffffffffffffe93f93fffff785ecf9ffff002000004c8bb510faffff4d89fc0f8528010000488b85e0f9ffff488bb5f8f9ffffbb02000000838518faffff0148c785e0f9ffff00000000488b00c64430ff00e9f392ffff488b8560faffff488d500848899560faffffe94bd6ffff4589f5899df0f9ffffe943abffff8bb5f0f9ffff498d460148898508faffff85f60f8f31b0ffff418d45d583e0fd0f8519bbffff4183fd2d0f948588f9ffffe9b2a7ffff488bbda0f9ffff31f6488b07488985e0faffff488b5708488995e8faffff488b4f1048898df0faffff31c983ade8f9ffff01741683f82f775783c00883ade8f9ffff01be0100000075ea4084f674068985e0faffff84c97407488995e8faffff83f82f774789c2480395f0faffff83c0088985e0faffff488b02488985a8f9ffffe98bd5ffff662e0f1f8400000000004883c208b901000000eb9031dbc78518faffffffffffffe9ec91ffff488b95e8faffff488d4208488985e8faffffebb74c89ffe828ddf8ff83f8ff4189c50f85c29fffff4c8bb510faffff4d89fc8b8518faffffbb0100000085c00f85a791ffffc78518faffffffffffffe99891ffff48c7c0d0ffffff8bbd1cfaffff4d89fc4c8bb510faffff648938ebc24881ec20010000488b8d10faffffba01000000488d44240f4883e0f048c700000000004889480848898510faffff31c0e979a0ffff8b85ecf9ffff4c8bb510faffff4d89fc250020000083f80119db83e30285c0b8ffffffff0f448518faffff898518faffffe91191ffff4c8bb510faffff4d89fcbb02000000e9fd90ffff488b8560faffff488d500848899560faffffe9bb9fffff488b8da0f9ffff31f6488b01488985e0faffff488b5108488995e8faffff488b491048898df0faffff31c9eb099083c008be0100000083ade8f9ffff01741083f82f76ea4883c208b901000000ebe74084f674068985e0faffff84c97407488995e8faffff83f82f776b89c2480395f0faffff83c0088985e0faffff488b02488985e0f9ffffe93a9fffff8b85e8f9ffff85c0757c8b9558faffff83fa2f775d89d048038568faffff83c208899558faffff488b00488985a8f9ffff4883bda8f9ffff007423c78508faffff00000000e9649fffff488b95e8faffff488d4208488985e8faffffeb934c8bb510faffff4d89fcbb02000000e9e98fffff488b8560faffff488d500848899560faffffeba1488bb5a0f9ffff488b06488985e0faffff488b5608488995e8faffff488b4e1031f648898df0faffff31c9eb0883c008be0100000083ade8f9ffff01741083f82f76ea4883c208b901000000ebe74084f674068985e0faffff84c97407488995e8faffff83f82f0f870403000089c2480395f0faffff83c0088985e0faffff488b02488985a8f9ffffe91dffffff4c8bb510faffff4d89fcbb02000000e9338fffff488bbda0f9ffff488b17488995e0faffff488b4f0848898de8faffff488b771031ff4889b5f0faffff31f6eb0e660f1f44000083c208bf0100000083ade8f9ffff010f8477f3ffff83fa2f76e64883c108be01000000ebe38b95e8f9ffff85d20f849bf3ffff488bb5a0f9ffff31ff488b16488995e0faffff488b4e0848898de8faffff488b76104889b5f0faffff31f6eb100f1f84000000000083c208bf0100000083ade8f9ffff010f84f4f3ffff83fa2f76e64883c108be01000000ebe3f785ecf9ffff002000004c8bb510faffff7532488b85e0f9ffff488b8db0f9ffffbb02000000838518faffff0148c785e0f9ffff00000000488b00c64408ff00e92e8effff31dbc78518faffffffffffffe91d8effff488bb5a0f9ffff488b06488985e0faffff488b5608488995e8faffff488b4e1031f648898df0faffff31c9eb100f1f84000000000083c008be0100000083ade8f9ffff01741083f82f76ea4883c208b901000000ebe74084f674068985e0faffff84c97407488995e8faffff83f82f777789c2480395f0faffff83c0088985e0faffff488b02488985e0f9ffff4989c4e9e99affff8b85e8f9ffff85c075718b9558faffff83fa2f775289d048038568faffff83c208899558faffff488b0048898598f9ffff4883bd98f9ffff000f85239bffff4c8bb510faffff4d89fcbb02000000e9358dffff488b95e8faffff488d4208488985e8faffffeb87488b8560faffff488d500848899560faffffebac488bbda0f9ffff31f6488b07488985e0faffff488b5708488995e8faffff488b4f1048898df0faffff31c9eb100f1f84000000000083c008be0100000083ade8f9ffff01741083f82f76ea4883c208b901000000ebe74084f674068985e0faffff84c97407488995e8faffff83f82f774f89c2480395f0faffff83c0088985e0faffff488b0248898598f9ffffe924ffffff488b8560faffff488d500848899560faffffe9b899ffff488b95e8faffff488d4208488985e8faffffe9f7fcffff488b95e8faffff488d4208488985e8faffffebaf4589fd4d89e7e9c5d9ffff448badf8f9ffff4c8bb5d0f9ffff4c8bbdc8f9ffff48c78580f9ffff00000000e946b6ffff4881ec20010000488b9510faffff488b8de0f9ffff488d44240f4883e0f04889500848c70000000000ba0100000048898510faffff31c0e9b1c1ffff8b85ecf9ffff4c8bb510faffff4d89fc250020000083f80119db83e30285c0b8ffffffff0f448518faffff898518faffffe9978bffff4c8bb510faffff4d89fcbb02000000e9838bffff488b8560faffff488d500848899560faffffe9f0c0ffff488bb5a0f9ffff488b06488985e0faffff488b5608488995e8faffff488b4e1031f648898df0faffff31c9eb0f0f1f800000000083c008be0100000083ade8f9ffff01741083f82f76ea4883c208b901000000ebe74084f674068985e0faffff84c97407488995e8faffff83f82f777489c2480395f0faffff83c0088985e0faffff488b02488985e0f9ffffe969c0ffff8b85e8f9ffff85c075718b9558faffff83fa2f775289d048038568faffff83c208899558faffff488b0048898598f9ffff4883bd98f9ffff000f857cfaffff4c8bb510faffff4d89fcbb02000000e9888affff488b95e8faffff488d4208488985e8faffffeb8a488b8560faffff488d500848899560faffffebac488b8da0f9ffff31f6488b01488985e0faffff488b5108488995e8faffff488b491048898df0faffff31c9eb0b0f1f0083c008be0100000083ade8f9ffff01741083f82f76ea4883c208b901000000ebe74084f674068985e0faffff84c97407488995e8faffff83f82f0f87af00000089c2480395f0faffff83c0088985e0faffff488b0248898598f9ffffe925ffffff4c89ffe81fd5f8ff83f8ff89c30f85a591ffff4189c548c7c0d0ffffff648b0089851cfaffffe9bd91ffff48c7c0d0ffffff4c8bb510faffff4d89fcbb0400000064c70054000000e98289ffff488b85b0f9ffff488d34c500000000e80668f9ff4885c0743f488b95e0f9ffff48d1a5b0f9ffff4889024c01e8488985a8f9ffffe90291ffff4189dde95a91ffff488b95e8faffff488d4208488985e8faffffe94cffffff488b85e0f9ffff498d7504488385b0f9ffff01488b38e8a767f9ff4885c00f84c3000000488bbde0f9ffff4889074c01e8488985a8f9ffffe9a690ffff4c89eb4c89a5b0f9ffff4589f54c8bb5c8f9ffffe964c1ffff4189f5e910b9ffff488b8560faffff488d500848899560faffffe9159dffff48c7c0d0ffffff4c8bb510faffff4d89fcbb0400000064c70054000000e99388ffff4c8bb510faffff4d89fc31dbc78518faffffffffffffe97888ffff488b85e0f9ffff488d73044983c401488b38e8f966f9ff4885c0745e488b95e0f9ffff4889024801d8488985a8f9ffffe9c1bffffff785ecf9ffff002000004c8bb510faffff4d89fc7573488b85e0f9ffff838518faffff01bb0200000048c785e0f9ffff00000000488b0042c74428fc00000000e9fe87fffff785ecf9ffff002000004c8bb510faffff4d89fc753f488b85e0f9ffff838518faffff0148c785e0f9ffff00000000488b00c74418fc00000000bb02000000e9ba87ffff31dbc78518faffffffffffffe9a987ffff31dbc78518faffffffffffffe99887ffff31c9e93985ffff660f1f84000000000083fa020f87af000000534889fb4883ec1085c974438b87c000000085c078517437488b87a00000004883784000742983fa010f84960000004889df894c240c8954240848893424e884cefdff8b4c240c8b542408488b3424488b83d80000004889df488b40484883c4105bffe00f1f0048837f480074e183fa017513f70700010000740b488b4310482b43084829c64889df894c240c8954240848893424e83dd0f8ff488b34248b5424088b4c240ceba70f1f800000000048c7c0d0ffffff64c7001600000048c7c0ffffffffc3f707000100000f845effffffe83161f8ff904154554989f45389cd4889fb4883ec108b07250080000075594c8b8788000000644c8b0c25100000004d3b4808743ebe01000000833d01552400007409f0410fb1307508eb1c410fb1307416498d384881ec80000000e845abfbff4881c4800000004c8b83880000004d894808418340040183fa020f87f500000085ed74378b83c000000085c00f88a30000007427488b83a00000004883784000741983fa010f84360100004889df8954240ce83ecdfdff8b54240c488b83d800000089e94c89e64889dfff50484889c6f70300800000740d4883c4104889f05b5d415cc390488b9388000000836a040175e648c7420800000000833d40542400007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e8b8aafbff4881c4800000004883c4104889f05b5d415cc30f1f44000048837b48000f847bffffff83fa017513f70300010000740b488b4310482b43084929c44889df8954240ce8a1cef8ff8b54240ce94effffff0f1f84000000000048c7c0d0ffffff48c7c6ffffffff64c70016000000e941fffffff703008000004889c6753f488b9388000000836a0401753248c7420800000000833d8b532400007407f0ff0a7506eb1aff0a7416488d3a4881ec80000000e803aafbff4881c4800000004889f7e864490100f703000100000f84befeffffe8435ff8ff0f1f00538b7708f7c6f0eeffbf7543488b57184889fb488b3f81ce00000080b865694b004c8b0d28542400448b05195424004885ff480f44f84883ec08ff359047240031c9e8e9cdfeff48894310585a5bc3ba05000000be70d54b00bf9c284b00e85d9af7ff31d24889c131f631ffe83fb4feff0f1f440000662e0f1f8400000000004883ec2848893c2489742408bf707e48004889e64889542418e8922effff31d285c07519488b7c2410e8020affff488b7c2410e8e82fffff488b5424104889d04883c428c3662e0f1f84000000000090e98be9feff90662e0f1f8400000000004883ec084889febf407f4800e83f2effff85c00f95c04883c4080fb6c0f7d8c3534889fb488b5710488b7708488b3fe86c0a0000488943185bc3660f1f44000053b8000000004883ec204885c0488954241048893c2448897424087407bf40b16c00ffd04889e6bf707f4800e8df2dffff85c07523488b5c2418b8000000004885c07407bf40b16c00ffd04883c4204889d85bc30f1f400031dbebde0f1f4000534889fb488b4f18488b5710488b7708488b3fe828090000488943205bc3669053b8000000004883ec504885c048897c24184889742408f30f7e4c241848894c24100f164c24084889542408f30f7e4424080f164424100f294c24200f294424307407bf40b16c00ffd0488d742420bff07f4800e8372dffff85c07523488b5c2440b8000000004885c07407bf40b16c00ffd04883c4504889d85bc30f1f400031dbebde662e0f1f84000000000066904889f04154554809d04889f55348c1e8204889fb480fafea4885c0744b4885f674464889d14889e831d248f7f64839c17436488b3f488d6b104839ef7405e81d5ff9ff48c7c0d0ffffff48892b48c743080004000064c7000c00000031c05b5d415cc30f1f440000483b6b08b80100000076eb488b3b4c8d63104c39e77405e8dc5ef9ff4889efe8345bf9ff4885c0741748890348896b08b8010000005b5d415cc3660f1f4400004c892348c7430800040000eba9662e0f1f840000000000904889fa4989f84881ec00010000b9200000004889e731c0fcf348ab4889f066908a0884c97428880c0c8a4801f6c1ff741d880c0c8a4802f6c1ff7412880c0c8a48034883c004880c0cf6c1ff75d2488d42fc0f1f4000662e0f1f8400000000004883c0048a08380c0c74218a4801380c0c74168a4802380c0c740b8a4803380c0c75dd48ffc048ffc048ffc04881c40001000031d208c9480f44c2c30f1f40004885d2b950ca6c00480f45ca4889f24889fe31ffe9070000000f1f8000000000415641554154554889f5534889fbbe58ca6c004883ec604885ff488d442410c744244400000000c744244801000000c744244001000000480f44d84885c9480f44ce4885ed48894c2450741c4885d2752448c7c0feffffff4883c4605b5d415c415d415ec30f1f004889c3ba01000000bd65694b00488d430448895c2430488944243848c7c0b0ffffff64488b004c8b204d8b7424284d85f60f84110100004801ea48896c24284989d40f82a8000000498b06488338004c8b6828740d49c1cd11644c332c25300000004c89efe88e02ffff6a016a004531c04c89e1498b3e488d5424384c8d4c2430488d74244041ffd585c08d50fc595e742683fa037621b998d54b00ba60000000be87d54b00bf00494b00e8b895f7ff0f1f84000000000085c0744c83fa01764783f8070f841fffffff48c7c0d0ffffff64c700540000004883c46048c7c0ffffffff5b5d415c415d415ec30f1f400049c7c4ffffffff4c39e50f8548ffffffebc8660f1f44000048395c243074298b1385d27523488b4424508b0085c075574883c46031c05b5d415c415d415ec3660f1f840000000000488b4424284829e8e9abfeffff0f1f004981fc206c4a0041be00424a000f84dcfeffff4c89e74889542408e86062fbff4d8b742428488b542408e9c0feffffb998d54b00ba69000000be87d54b00bfd0494b00e8d894f7ff0f1f840000000000488b82a8000000482b05fa4624004889c248c1ea3f4801d08b15e246240048d1f84889c10fb7c048c1e910480fafc2480fafca48c1e8104801c8483b05cf462400730c488b15ce4624006683044201c34155415455534881ecc80000004885ff0f848a01000048833daa462400004889fd4889f34989d54189cc743231d2be00cb6c00bf02000000e8031b010085c00f88ab01000031d2be60ca6c00bf1b000000e89a74fcff85c00f8892010000488d74242048d1ebba60ca6c00bf1b00000048892d5146240048891d424624004c892d334624004489252446240048c744242020844800c78424a80000000000001048c7442428ffffffff48c7442430ffffffff48c7442438ffffffff48c7442440ffffffff48c7442448ffffffff48c7442450ffffffff48c7442458ffffffff48c7442460ffffffff48c7442468ffffffff48c7442470ffffffff48c7442478ffffffff48c7842480000000ffffffff48c7842488000000ffffffff48c7842490000000ffffffff48c7842498000000ffffffff48c78424a0000000ffffffffe8ac73fcff85c00f88a400000048c744241000000000e8a600000089c1b840420f004889e699bf02000000f7f948984889442418488b542418488b4424104889542408ba00cb6c0048890424e8b01901004881c4c80000005b5d415c415dc3669031c048833d1e4524000074e431d2be00cb6c00bf02000000e88319010085c0782f31d2be60ca6c00bf1b00000048c705f044240000000000e81373fcff4881c4c80000005b5d415c415dc30f1f440000b8ffffffffeb99660f1f8400000000008b05ea4b2400c3660f1f840000000000534889fb488b378b4318488b57284531c9488b7f084c8b4310488b8e800300006a0050e8a87afeff488903585a5bc390554889e541574156415541544989fd534889d74889f34989d64989cc4589c74883ec5848c7458800000000e830c5feff4885c0480f4405d52a24004d85ed0f84b40000004983fdff74666a00498d8d880300004157488d55884531c94d89e04c89ee4889dfe8367afeff5a59488b55884885d20f84d90000004885c00f8496000000488b000fb64a044803420883e10f80f90a0f8487000000488d65d85b415c415d415e415f5dc30f1f840000000000483b05592a24004889c77507eb6966904889d7488b97d80200004885d275f150488d8f880300006a00488d55884889c64889df4531c94d89e0e8b279feff5e5fe977ffffff0f1f00648b14251800000085d275554183cf01488b88800300006a004157ebc40f1f0031c0e966ffffff90ffd0e972ffffff4885c00f84380100004c3bb0400300000f822b0100004c3bb0480300000f831e0100004889c7e971ffffff31c0e940ffffff488945a0488d45884183cf0548895da84c8965b044897db8488945c864c704251c000000010000004c8d45a0488d5587488d7598488d7d90b98086480048c7459800000000e8bdacfeff4189c431c0648704251c00000083f8020f8489000000488b5d98488b45a04885db0f84a2feffff4889dfe81eb0f9ff488d50014883c01f4889de4883e0f04829c4488d7c240f4883e7f0e8ce39faff4c8b75904989c54c89f7e8efaff9ff488d50014883c01f4c89f64883e0f04829c4488d7c240f4883e7f0e89f39faff807d87004989c674084889dfe81e57f9ff4c89e931d24c89f64489e7e82eaafeff64488b3c25100000004531d2ba01000000be810000004883c71cb8ca0000000f05e951ffffffb9a8d54b0031d231f631ffe8f8a9feff0f1f8400000000004883ec28440fb60231c04989c948891424c744240c010000004d85c0747a0fb64a01410fb6c084c9746e49c1e0044a8d04010fb64a0284c9745e48c1e0044801c80fb64a0384c9744f48c1e0044801c80fb64a0484c974404c8d42050fb6520548c1e0044801c884d274280f1f44000048c1e0044983c0014801d0410fb6104889c181e1000000f048c1e9184831c884d275dd25ffffff0f4889e14531c04c89ca8944240848c744241000000000e8cdfcffff4883c428c30f1f84000000000041b80200000031c9e9b3fcffff0f1f0048c7c0b8ffffff64488b08e9d007000048c7c0b8ffffff31d264488b08e9be070000662e0f1f8400000000000f1f400048c7c0b8ffffff64488b08e9c039000048c7c0b8ffffff31d264488b08e9ae390000662e0f1f8400000000000f1f400048c7c0b8ffffff64488b08e90068000048c7c0b8ffffff31d264488b08e9ee670000662e0f1f8400000000000f1f4000415741564155415455534883ec1885f648c701000000004c894424084c8b7c24500f8e650200004989cd4889fb89f54989d64531e431c9660f1f840000000000480fbe038d50d080fa0976114d85ff7405413a07744a4c01cb480fbe034b8d14a44883c30183c10183ed014c8d6450d00f840a01000083f91375c5498b55004885d2755c4d892631c949c74500010000004531e4ebaa662e0f1f840000000000410fb6470184c00f84b50100003a430175a4b802000000eb110f1f80000000004883c001385403ff758c410fb6140784d275ed4801c3480fbe03eb810f1f40004c89f648b90000e8890423c78a4c89f74c890c24e84709ffff498b16498b75004c8b0c244e8d04224c39c24d89067648498d4e08eb1f662e0f1f8400000000004883c108488b79f8488d57014885d2488951f875234883ee0175e5ba010000004801c2751a0f1f004531e431c9e9eefeffff660f1f44000031d24801c274e9498b45004883f8090f8f38010000498914c64531e4498345000131c9e9c0feffff488b742408488b164885d27e0eb81300000029c848984839c27e35498b55004863c9488b0ccd20dc4b004885d275484d892649c74500010000004883c4184889d85b5d415c415d415e415fc30f1f40004863c948c706000000004c0faf24d520dc4b004801ca488b0cd520dc4b00498b55004885d274b84c89f64c89f7e83e08ffff498b16498b75004d8d04144c39c24d8906771f31d24801c2749e498b45004883f8097f4d488d480149894d00498914c6eb86498d4e08eb1b660f1f4400004883c108488b79f8488d57014885d2488951f875c04883ee0175e5ba01000000ebb5b8010000004801c3480fbe03e9eafdffffb9f0d94b00baa9010000be5adb4b00bfe1d54b00e8d48bf7ffb9f0d94b00ba60010000be5adb4b00bfd6d54b00e8bb8bf7ffb9f0d94b00ba71010000be5adb4b00bfe1d54b00e8a28bf7ff6690415641554189d54154554989cc534889fd4889f34883ec20d97c241e0fb744241e6625000c663d00040f84610100000f86b3000000663d0008745d663d000c41be000c00000f85a90000004883fb827d534881fb6affffff0f8dc200000048c7c0d0ffffff4585ed64c700220000000f842b010000f30f10058f4c0300f30f5905834c03004883c4205b5d415c415d415ec3660f1f4400004883fb8241be000800007cad4881fb800000000f8ee701000048c7c0d0ffffff4585ed64c70022000000743cf30f1005484c0300f30f59053c4c03004883c4205b5d415c415d415ec30f1f80000000004531f66685c00f8457ffffffe8674ff8ff0f1f8000000000f30f1005084c03004883c4205bf30f59c05d415c415d415ec30f1f8000000000b8010000004489c148c7c282ffffff48d3e04829da4883e8014c85e00f95c00fb6c04109c14883fa1874754883fa010f84db01000089d14889ee4889efba0100000044894c240c4c8b6500e80001ffff488b750049c7c281ffffff448b4c240c4129da89f783e701eb4c660f1f44000041be00040000e9b0feffff0f1f440000f30f1005604b03004883c4205bf30f59c05d415c415d415ec30f1f80000000004c8b650031ff48c745000000000031f641ba170000004c89e24489d148d3ea4989d04183e0014585c975254584c07520b80100000048d3e04883e8014c21e0750f4531c048c7c381ffffffeb400f1f0048c7c0d0fffffff30f1005e94a0300f30f59c064c7002200000048c7c381ffffff4585c9b8010000007518b8010000004489d148d3e04883e8014c21e04885c00f95c083e2014181fe000400000f849d0000007e5b4181fe000800000f84ae0000004181fe000c00000f8575feffff89de4489ea4889efe814890000e943feffff0f1f8000000000488b75004489c14c89e248d3ea4589c24989d089f74183e00183e701e978ffffff0f1f80000000004585f60f852bfeffff4d85c074b14008c774ac4883c601f7c600000001488975000f85d10000004883fb81759281e6000080004883fe0119f683ee7eeb8366904585ed0f8476ffffff84c075c684d20f846affffffebbc660f1f8400000000004585ed0f8556ffffffebde0f1f4400004585c94c89e04489c10f95c248d3e84c8b650089c183e1014181fe000400000f842d0100000f8e950000004181fe000800000f84030100004181fe000c00000f857ffdffff48c7c081ffffffb901000000ba010000004829d84889ee4889ef44894c240c4889c3e8d4fefeff448b4c240c488b75004189da89f783e701e924feffff660f1f4400004883c301b901000000ba010000004889ee4889efe89ffefeff48814d00000080004881fb810000000f84cbfcffffe994feffff0f1f4400004585f60f85fbfcffffa8010f8474ffffff4489e083e00108d00f8466ffffff48c7c081ffffffb901000000ba010000004829d84889ee4889ef44894c240c4889c3e83afefeff498d442401448b4c240ca9000000010f8456ffffff488b75004c89e289d948d3ea4189da4989d089f74183e00183e701e9bffdffff4585ed0f8501ffffff84d2759784c90f84f5feffffeb8d4585ed0f84eafeffffebe70f1f00415741564155415455534881ec4801000085d2488974240848897c241048890c24488b71087412488b4e500fb60183e8013c7d0f869801000031c931db4c8b764048894c24184c89f7e872a6f9ff4885c04889442420488b4c24180f84a6290000488b44241048c7842498000000000000004c8d48ff488b0424488b506866904983c101490fbe01f6444201204989c575ee3c2d0f84620400003c2bc7442418000000000f841c050000410fb63e4084ff0f84bd1100004138fd0f85c8000000b801000000eb18660f1f8400000000004883c001413a5401ff0f85a9000000410fb6140684d275e8410fb6040183e8303c090f8790000000488b04244180fd30488b50700f84e10500004885db0f844416000041b80a0000004180fd300fb6334d89cc745a0f1f004084f60f84ed030000410fb604244038f00f85eb030000b801000000eb19662e0f1f8400000000004883c001453a5404ff0f85c9000000440fb614034584d275e74883e8014c01e04c0fbe68014c8d60014180fd3075a94c89e0ebec0f1f4000418d45d03c090f8664ffffff488b05b5950200428b04a83c690f84050e00003c6e0f847b0e000048837c2408000f852b030000660fefc04881c4480100005b5d415c415d415e415fc3488b5e48803b000f855ffeffffe956feffff4885db4d8d61024d0fbe69020f85c92300004180fd300f85ac2300004d89e131c941b8100000004d89cc0f1f004983c4014d0fbe2c244180fd3074f14489ee660f1f440000418d45d03c090f86a7020000490fbec5448b1c82418d439f3c050f871c0500004531ff4183f8104c89e50f850c050000418d45d03c0976574183f810745a4885db74750fb60384c00f849c0200004038f07565b801000000eb11660f1f4400004883c001403a7405ff754d0fb634034084f675ec4883e8014801e84c0fbe6801488d6801418d45d04489ee3c0977a94983c7014889e8ebe3490fbec58b048283e8613c0577984983c7014889e8ebcc660f1f8400000000004885c974094c39cd0f872004000031f64d85ff400f94c648f7de4084ff742940387d000f85cb02000031c0eb110f1f004883c0013a5405000f85b6020000410fb654060184d275e8488b4424204183f810488d7c05004c0fbe2f4889fd0f8525140000488b04244c89f94829f9488b5070eb290f1f4400004180fd3074154883feff4889e8410f94c14829f84584c9480f45f04883c5014c0fbe6d00418d45d04c8d540d003c0976cf490fbec58b048283e8613c0576c14d85d20f88b0260000488b04244183f810488b4070428b04a80f857b0100003c700f85730100000fb64d0180f92d0f847404000080f92b0f84f4030000488d7d01c7442410000000008d41d03c090f87540100004183f8100f84580f0000448b4c24104585c90f84310e000048b8c2ffffffffffff7f4939c70f87a62200004d8d6f3d4c89e848ba676666666666666648f7ea4c89e848c1f83f48c1fa024829c24989d34c89e848ba67666666666666664c8b8c249800000048f7ea4c89e848c1f83f48c1fa024829c2488d049231d24801c04929c5eb259083e83048984883c7010fb60f4b8d14894c8d0c50ba010000008d41d03c090f87860500004d39cb0f8cb70300000fbec175ce83e83048984c39e87ec984d20f84a80300004c899c2498000000e99b0300000f1f80000000004180fb700f85150300004d39cc0f840c0300004c89e54531ffe972fdffff488b442408488b7c2410660fefc0488938e9c3fcffff4d0fbe6901c7442418010000004983c101e998fbffff48c7c0ffffffffe982fdffff48c7c0ffffffffe943fcffff89c6e9f7fcffff4183f81074083c650f847ffeffff4889ef4d39d77324807dff3075154929ea4883ed01807dff304a8d44150074f14989c24d39d70f87092200004d39d7754c4d85d27447488b9424980000004885d20f88f50d000048837c240800744e488b4424084889384d85d275418b5c2418f30f1005e542030085db0f8510fcffffe907fcffff488994249800000048837c24080075caebd04d0fbe69014983c101e9d6faffff4d89fae9bbfdffff4885f60f848e000000410fb60e410fb67e01eb044983c40141380c2475f64084ff742641387c240175ea31c0eb11660f1f4400004883c001413a54040175d5410fb654060284d275eb4183f8100f84820f00004885f60f88e8230000488b84249800000048ba00000000000000804801c24839f20f82982300004889f2488b7c24204829d04929f24889842498000000488d0c374901cc4183f8100f84010a0000488b8424980000004885c00f88620d00004c89d24c29fa4839c2480f4fd04901d74829d0ba270000004c29fa48898424980000004839d00f8e0a020000448b5c241848c7c0d0ffffff4585db64c700220000000f84a50b0000f30f1005a6410300f30f59059a410300e9d4faffff490fbe4101833c82780f84e9faffff4885db41b80a0000000f8510faffffe9fcfaffff4c89cf4889da4889ee44894424304c894c2428e86a59f8ff4839c54889c74c8b4c2428448b4424300f84c60c00004c39c80f846afaffff4939c40f86f2020000488b4424084885c00f843ffeffff488938e937feffff4084ff74244038f7756f31c0eb10660f1f4400004883c001453a1404755b450fb65406014584d275eb4183f8100f8544fdffff4d39cc0f853bfdffff488b442420490fbe0404448d50d04180fa090f8623fdffff8b048283e8613c050f8615fdffffeb1f488d7d020fb64d02c744241000000000e903fcffff4183f8100f84e1fcffff4183f81074104531ff4180fb654c89e50f845bfaffff4889da4c89e64c89cf44894424204c890c24e87c58f8ff48837c2408000f847bfdffff4c8b0c24448b4424204c39c80f84651d0000488b7c2408488907e95cfdffff488d7d020fb64d02c744241001000000e98cfbffff84d20f85791e00004883feff0f848d0d00008b54241048c7c0d0ffffff85d264c700220000000f853d0a0000448b7424184585f60f841e0e0000f30f1005ee3f0300f30f5905e23f030066904883c7010fb60783e8303c0976f2488b4424084885c00f8403f9ffff488938e9fbf8ffff4883f8d30f8cbe0900004531f64d85ff0f85460f00004d39fa0f86b6200000488b8c2498000000488d412d4883f82d0f87a02000004585f60f8ea30e00004d85ff0f84752000004885c90f856c200000b81900000031d24429f04c89d148984c29f94839c84489f97e084489d04429f848984c01f8c6442428004939c27e084989c2c6442428014489d04c8964243048895c243829c8448974244441bf407d4b008944241029d041bd010000004189c1488d8424a000000031ed4489cb4989c348890424488d8424f00000004d89de48894424084989c4eb2e488d68ff498b074c89e7488d14ed00000000488d34c5c87e4b00e8d426faff4501ed4983c71885db0f84660a00004185dd74ec4431eb4885ed498b470874c1488d50ff498b074989e84c89e14c89f7488d34c5c87e4b00e8f7f4feff498b57084885c0488d6c15ff0f85340900004c89e04883ed014d89f44989c6eba2448b6c24104c898c24980000004585ed0f8412fbffff49f7d94c898c2498000000e902fbffff0f83b90c0000498d4424014889fa4829c24989c1488d4a014c89e248f7da83e20f4839ca480f47d14883f911480f46d14885d20f84a2080000410fb634244531d283ee304080fe0a410f92c24883fa010f8416020000410fb644240183e8303c0a0f92c00fb6c04901c24883fa02498d4424020f84f3010000410fb644240283e8303c0a0f92c00fb6c04901c24883fa03498d4424030f84d0010000410fb644240383e8303c0a0f92c00fb6c04901c24883fa04498d4424040f84ad010000410fb644240483e8303c0a0f92c00fb6c04901c24883fa05498d4424050f848a010000410fb644240583e8303c0a0f92c00fb6c04901c24883fa06498d4424060f8467010000410fb644240683e8303c0a0f92c00fb6c04901c24883fa07498d4424070f8444010000410fb644240783e8303c0a0f92c00fb6c04901c24883fa08498d4424080f8421010000410fb644240883e8303c0a0f92c00fb6c04901c24883fa09498d4424090f84fe000000410fb644240983e8303c0a0f92c00fb6c04901c24883fa0a498d44240a0f84db000000410fb644240a83e8303c0a0f92c00fb6c04901c24883fa0b498d44240b0f84b8000000410fb644240b83e8303c0a0f92c00fb6c04901c24883fa0c498d44240c0f8495000000410fb644240c83e8303c0a0f92c00fb6c04901c24883fa0d498d44240d7476410fb644240d83e8303c0a0f92c00fb6c04901c24883fa0e498d44240e7457410fb644240e83e8303c0a0f92c00fb6c04901c24883fa0f498d44240f7438410fb644240f83e8303c0a0f92c00fb6c04901c24883fa11498d4424107519410fb644241083e8303c0a0f92c00fb6c04901c2498d4424114839d10f84ed0200004829d14989ff488d71f04d29cf4d89f948c1ee044929d14883c6014989f349c1e3044983f90e0f8600010000660fefdb66440f6f0db23b0300660feff64c01e2660fefed4531c9660fefe466440f6f05a73b0300660f6f3daf3b03004983c1014883c210660f6f42f04939f166410ffcc166410fd8c0660f74c6660fdbc766440f6fd8660f68c666440f60de660f6fc866410f6fd366440f69dd660f61cd660f61d5660f69c566440f6fd2660f6ad466440f62d466410fd4da66450f6fd3660fd4da66410f6fd366440f62d4660f6ad466410fd4da660fd4da660f6fd1660f6acc660f62d4660fd4d3660f6fd8660fd4d1660f6fc8660f6adc660f62cc660fd4ca660fd4d90f8251ffffff660f6fc34c01d8660f73d808660fd4d866480f7eda4901d24c39d90f84c10100000fb6088d51d080fa0a0f92c20fb6d24901d2488d50014839d70f86a20100000fb648018d51d080fa0a0f92c20fb6d24901d2488d50024839d70f86820100000fb648028d51d080fa0a0f92c20fb6d24901d2488d50034839d70f86620100000fb648038d51d080fa0a0f92c20fb6d24901d2488d50044839d70f86420100000fb648048d51d080fa0a0f92c20fb6d24901d2488d50054839d70f86220100000fb648058d51d080fa0a0f92c20fb6d24901d2488d50064839d70f86020100000fb648068d51d080fa0a0f92c20fb6d24901d2488d50074839d70f86e20000000fb648078d51d080fa0a0f92c20fb6d24901d2488d50084839d70f86c20000000fb648088d51d080fa0a0f92c20fb6d24901d2488d50094839d70f86a20000000fb648098d51d080fa0a0f92c20fb6d24901d2488d500a4839d70f86820000000fb6480a8d51d080fa0a0f92c20fb6d24901d2488d500b4839d776660fb6480b8d51d080fa0a0f92c20fb6d24901d2488d500c4839d7764a0fb6480c8d51d080fa0a0f92c20fb6d24901d2488d500d4839d7762e0fb6480d8d51d080fa0a0f92c20fb6d24901d2488d500e4839d776120fb6400e83e8303c0a0f92c00fb6c04901c24d89d731f6e910f6ffffb9c0284b00ba03000000be02354b004c89cf4c890c24e8c961f7ff85c00f85e0f1ffff4c8b7c24084d85ff74304c8b0c24b9c0284b00ba05000000be02d64b00498d59034889dfe89861f7ff4c8b0c244983c10885c0490f44d949891f8b6c2418f30f10057b38030085ed0f84a2f1fffff30f10056f380300e995f1ffffb9c0284b00ba03000000befe344b004c89cf4c890c24e84b61f7ff85c00f8562f1ffff4c8b0c24f30f10052f3803004180790328498d59030f84b0060000488b4424084885c00f8449f1ffff488918e941f1ffff488b0424490fbe1424488b78684889d0f64457011075244983c401490fbe1424f6445701104889d074edeb0f660f1f4400004983c401490fbe04243c3074f3440fbec84983c4014183e9304183f9090f870d0200004d63c9428b048d00da4b0085c00f84ef180000b91800000029c149d3e1b91700000029c14c898c24800000004189c8488b8c24980000004885c90f881302000048beffffffffffffff7f4863d04829ce4829d6488d56044883c601480f49d648c1fa024c39fa0f824e16000083e80148984a8d74b8fc4801ce4983ea014889b424980000000f84b50200004c8b1c24488b5c2420eb220f1f8000000000418d48fd4889d04183e80448d3e04909c14983ea010f8480020000490fbe0424f6444701104889c275084901dc490fbe14240fbec24983c40183e83083f809760a498b43708b049083e8574183f8024863d07facb9030000004889d04429c148d3e8418d483d4909c148d3e24983ea014c898c24800000004889d1742841803c24300f85d6040000498d4424014d01d4eb0e4883c0018078ff300f85be0400004939c475ed4531c98b542418488dbc248000000041b83f000000e841e9ffffe98befffff4d85ff0f84b80000004885f60f85211700004c89f848c1e83f84c00f8512170000b8270000004c29f84989c54d85ed0f89b1f1ffff4531db4531ede9c7f1ffff31c0e96deefffff30f1005fd350300f30f59c0e933efffff448b54241848c7c0d0ffffff4585d264c700220000000f8468030000f30f1005cc350300f30f5905c0350300e902efffff448b7c24184585ff0f84f2030000f30f1005a9350300f30f59059d350300e9c0f5ffff488b0c24488b5170448b0c824183e957e9defdffff4883feff0f848712000048b8d8ffffffffffff7f4839c60f87781300004c8d6e27e9fff0ffff4c89e04531d2e98ff9ffff4863f048ba00000000000000804829f248c1fa02e9f7fdffff4c89e04d89f44989c6e96ff6ffff448b5c24104585db0f84d302000048b8daffffffffffff1f4939c70f87ed1300004e8d2cbd95000000e99ff0ffff31c04183f8100f94c04883ed014531c94183f8104c8d5c4001752de9cd0200000f1f4400004c01da4983ef014889d048c1e83f4983ea01410f95c14120c10f84f5f1ffff4883ed010fbe450089c183e83083f80977ee80f93074ca4584c90f84a7f1ffff4889942498000000e99af1ffff0f1f40004c89fa48f7da4839c2480f4cd0e999f2ffff410fb63ee9e3eeffff4c898c24800000008b542418488dbc24800000004531c94531c031c9e844e7ffffe98eedffff4d89e24c3b1424488b5c24384c8b642430448b7424440f84f31200004883ec084c89e7534c8b4c2430488b5424108b7424204c8d8424a8000000488d8c24a0000000e838e4ffff488d45ff480fbd9cc40001000048894424305e5f4883f33f85db0f8489010000488b7c240889d94889ea4889fee826e8feff488b3c24488b94249000000089d94889fee810e8feff4885c00f8458010000488b8c2490000000488d5101488984cca000000048899424900000004d63ee4883fd014c89ac24980000000f84490f00004883fd020f85b30700004883fa01488b8c24f0000000488bb424f80000000f8f650700004c8ba424a00000004c39e60f86890500004585f60f8e01150000bb180000004c8dac24800000004429f3741a89d9ba010000004c89ee4c89efe874e7feff4c8ba424a000000041b83f000000488b84249800000031ed4129d84c89e34531e44d63c04885db488d70ff4889e9410f95c14d85e44c89ef0f95c24109d1440a4c24288b5424184183e101e8c4e5ffffe90eecffff48b8ffffffffffffff1f4839c60f875c140000488b84249800000048ba00000000000000804801c248c1ea024839f20f8208140000488d14b500000000e966f0ffff8b4c2418660fefc085c90f849df2fffff30f100581320300e990f2fffff30f100560320300f30f59c0e99eebffff488b942490000000e9b7feffff4d85ff0f84a20000004885f60f852914000048b8ffffffffffffff1f4939c70f8716140000b8200000004c29f84c8d2c8503000000e9f8fbffff488b04244c8b6868eb234c01da4983ef014983ea014889d0410f95c148c1e83f4120c10f8423efffff4883ed01480fbe4d0041f6444d011074ef80f93074cbe92afdfffff30f1005cc310300f30f59c0e9e3f1fffff30f1005b3310300f30f59c0e9d2f1ffff41b901000000e93ffbffff4883feff746748b8dfffffffffffff1f4839c60f87901300004c8d2cb583000000e91bedffff48837c2408000f8490eeffff31f64531ff4531d2e976eeffff498d7904488db424f0000000ba29000000e8126e0000488b8424f0000000803829488d5001480f44dae922f9ffff41bb0d00000041bd83000000e9e4ecffff4489ee4d89cc41b80a000000e9c0eaffff4c89fa4829faeb224180fd3074134883feff4889e80f94c14829f884c9480f45f04883c5014c0fbe6d00418d45d04c8d5415003c090f87f4ebffffebcb4d85ff0f85f50e000041803c24300f84ea0e0000b80100000048ba56555555555555554829c8488d34804801f64889f048c1fe3f48f7ea4889d089ca4829f0be9700000083c0193d970000000f4fc601c885c00f8f20f1ffffb940da4b00ba59050000be5adb4b00bf5ad64b00e8f96ef7ff660f1f840000000000488d8424a00000004c895424084883ec084c89e74489fe4889442408534889c24c8b4c24304c8d8424a8000000488d8c24a0000000e856e0ffff4989c4488b8424a8000000415841594885c0488bac24900000004c8b5424080f8e10010000488dbc24f000000041bb010000004889ea41bd407d4b004c896424284c895424304989fe48897c2408488b3c244489dd48897c24104c89f74989de4889fb4863cd4885c10f8480000000498b7d084831c84889842498000000498b45004c8d67ff4939d47f6f488b742410488d0cc5c87e4b004d89e04889dfe8f3e5feff4c89e248039424900000004885c04889942490000000750c4883ea014889942490000000488b84249800000001ed4983c5184885c0743d488b4c241048895c24104889cb4863cd4885c1758001ed4983c518e969ffffff488b4c2410488d34c5c87e4b004989d04889df4c89e2e881e5feffeb8c4889d8483b4424084c8b6424284c8b5424304c89f34889d50f8423100000488d7dff89eac1e206480fbd84fca00000004883f03f29c281fa800000004189d60f8f04edffff83fa180f8e400e00008d72e889f183e63fc1f90685f64c63c64863c10f85df0d0000488b8cc4a000000041b83f00000048898c2480000000488d48ff4883bc24a0000000000f85af0d00004883bc24a8000000000f85960d00004883bc24b0000000000f85170d00004883bc24b8000000000f85fe0c00004883bc24c0000000000f85e50c00004883bc24c8000000000f85cc0c00004883bc24d0000000000f85b30c00004883bc24d8000000000f859a0c00004883bc24e00000000119c0f7d083c0094d39fa41b901000000770c48984531c94839c8410f9cc183ea01488b8ccca0000000488dbc24800000004863f28b542418e8c0e0ffffe90ae7ffff0f1f0031db4989c84531ff31ff41b94000000049f7d84889da4839d60f84990000004c89e048f7f64889c54989d24889c848f7e54989c34889d0904c39d07707751b4d85db74164c89da4883ed014829ca4883d8004901f24989d373de4989fc4d29dc4919c24585f64c89d2757c4885ed0f85ce0000004883ac2498000000404183fe184889ac24800000007e8b4c8dac24800000004889d341b83f000000488b8424980000004529f84d63c0e919faffff660f1f8400000000004d89e24901f20f83e70000004c89d24889f84829ca4801c84883d2004585f64989c40f840001000048c7c5ffffffff4183fed97d114889ac24800000004183c640e918ffffff41bf180000004889d34c8dac24800000004529f774824489f9ba010000004c89ee4c89efe8f1e0feffb9400000004889e84429f948d3e84809842480000000e954ffffff4c0fbddd488b9c24980000004589ce4983f33f4963c34529de4829c34183fe184889d848899c24980000000f8e0affffff4889d3418d5318b9400000004889ef41b83f00000029d14129d048d3ef4d63c04889f948898c24800000004c8dac2480000000e91df9ffff31c04885c94889ca0f95c04d89c348c7c5ffffffff4829c24889d0e96dfeffff488b9c24a80000004c8ba424a0000000e922feffff4889d3488b84249800000041b827000000b9ffffff0048c7c5ffffffffeb97488b442420488b7c24084c8d45fe4e8bbcc4f00000004c894424104c8ba4c4f00000004889e84829d0488d34c7488b3c24e853dbfeff85c0488b9424900000004c8b4424107e20488b842490000000488d500148c784c4a00000000000000048899424900000004839d50f8e5d0300004889eb4829d34889d848c1e0064585f60f8e170900004901c54983fd180f8fc70800004883fb010f851509000048c784248000000000000000c74424100000000089d8c1e0064101c685d289d00f8e340100008d72ff4863d24801da4863ce85f6488bbccca00000004889bcd4a00000000f84100100008d50fe4801d94863f285d2488bbcf4a00000004889bccca00000000f84ef0000008d48fd4801de4863d185c9488bbcd4a00000004889bcf4a00000000f84ce0000008d70fc4801da4863ce85f6488bbccca00000004889bcd4a00000000f84ad0000008d70fb4801d94863d685f6488bbcd4a00000004889bccca00000000f848c0000008d70fa4801da4863ce85f6488bbccca00000004889bcd4a0000000746f8d70f94801d94863d685f6488bbcd4a00000004889bccca000000074528d70f84801da4863ce85f6488bbccca00000004889bcd4a000000074358d70f74801d94863d685f6488bbcd4a00000004889bccca0000000741883e80a4801da4898488b84c4a0000000488984d4a0000000488b3c24488d14dd0800000031f64c89442430e8aa52f7ff4183fe1848c784ecf000000000000000488b94eca00000004c8b4424300f8e12080000488b8424980000004c8dac248000000031db85ed4189e90f88480100004863ed4883bceca0000000000f8536010000418d51ff83faff0f845d0700004863ca4883bccca0000000000f854b070000418d51fe83faff0f843e0700004863ca4883bccca0000000000f852c070000418d51fd83faff0f841f0700004863ca4883bccca0000000000f850d070000418d51fc83faff0f84000700004863ca4883bccca0000000000f85ee060000418d51fb83faff0f84e10600004863ca4883bccca0000000000f85cf060000418d51fa83faff0f84c20600004863ca4883bccca0000000000f85b0060000418d51f983faff0f84a30600004863ca4883bccca0000000000f8591060000418d51f883faff0f84840600004863ca4883bccca0000000000f8572060000418d51f783faff0f84650600004863ca4883bccca0000000000f85530600004183e90a4183f9ff74154963d14883bcd4a000000000baffffffff440f44ca41f7d141b83f000000442b44241041c1e91f440a4c2428488d70ff8b5424184183e1014d63c04889d94c89efe8f1daffffe93be1ffff0f856e05000085ed0f8e5d050000448d6dff488b1c244c894424104963c5488d14c5080000004889d94863c548c1e0034829d1488d7c01084829d0488d3403e85850f7ff4c8b44241048c78424a000000000000000488b94eca000000048c784ecf000000000000000c7442410000000008d7dfd488d450144896c247c897c24448d7dfc48894424608d45fe897c24488d7dfb894424384c63c84963c5897c244c8d7dfa4889442468418d45f64589f54d89c6897c24508d7df94898897c24548d7df84889442470897c24588d7df7897c245c8d7df6897c24784939d448c7c3ffffffff744f488b442420488b84c4a0000000488944243049f7f44889c34889d14c89f848f7e3eb120f1f0031f64c39f8400f92c64c29f84829f24839ca770c75134a3b84f4a000000076094883eb014c01e173d7488b542460488b7424084889d9488b3c244c894c2430e8acf0feff483b84eca00000004c8b4c24307426488b3c24488b5424084889e94889fee8e94affff4885c04c8b4c24300f84c90300004883eb01488b4424208b4c247c488b94c4a000000085c9488994eca00000000f8e140100004a8b84cca0000000488b7c2468488984fca00000008b44243885c00f84f30000008b7c24444863cf85ff488b84cca00000004a8984cca00000000f8ed40000008b7c24484863c785ff488bb4c4a00000004889b4cca00000000f8eb500000048634c244c488bb4cca000000085c94889b4c4a00000000f8e980000008b7c24504863c785ff488bb4c4a00000004889b4cca00000007e7d48634c2454488bb4cca000000085c94889b4c4a00000007e648b7c24584863c785ff488bb4c4a00000004889b4cca00000007e4948634c245c488bb4cca000000085c94889b4c4a00000007e308b7c24784863c785ff488bb4c4a00000004889b4cca00000007e15488b7c2470488b8cfca000000048898cc4a00000004585ed48c78424a00000000000000075634885db7475480fbdcb488bb424980000004883f13f4863c189cf4829c64889f04889b42498000000be400000004189f24129ca4183fa180f8e5b02000083c71889f14889da29f9897c24104c8dac248000000048d3ea4889942480000000e949fbffff4183fdd97d4848899c24800000004183c540e995fdffff4883ac2498000000404183fd1848899c24800000000f8e7afdffff4c8dac2480000000488b842498000000e902fbffff0f1f8000000000b8180000004429e88944241074d64c8dac248000000089c1ba010000004189c74c89ee4c89efe8a5d8feffb9400000004889d84429f948d3e84809842480000000eba94883fa01488b8c24a0000000488bbc24f00000000f85850200004839f90f837c02000031ed4531c941b8400000004889ca4c89c848f7f74585f64989d44889d175754885c00f84830000004c0fbdd0488b9c24980000004589c64983f23f4963f24529d64829f34183fe184889de48899c24980000007e5f418d6a18b9400000004889c34c8dac248000000029e948d3e848898424800000004d85e441b83f000000410f95c14129e8440a4c24284883ee01e96ffbffff4183fed97d4848898424800000004183c640e960ffffff4883ac2498000000404183fe1848898424800000000f8e45ffffff4c8dac24800000004889c3488bb42498000000eb9b0f1f8000000000bd180000004889c34c8dac24800000004429f574da89e9ba010000004c89ee4c89efe861d7feffb9400000004889d829e948d3e84809842480000000ebb141bb0300000041bd27000000e9a4deffff498d4424ff4183f810480f45442410e987e2ffff4489ee4d89e131c941b810000000e96adcffff4d89e131c941b810000000e94bdbffffb940da4b00baba060000be5adb4b00bfa3d64b00e82961f7ff4589d5e9e3fdffff448d6dffe9d5faffffb940da4b00ba90060000be5adb4b00bf90d64b00e8ff60f7ffb8180000004429f0894424100f8445f7ffff4c8dac2480000000ba0100000089c14c894424304c89ee4c89efe88ed6feff488b9424900000004c8b442430e914f7ffff4829842498000000c744241000000000e907f7ffffb940da4b00ba6b060000be5adb4b00bf85d64b00e88e60f7ff4189d1e9c4f9ffffb940da4b00baa2030000be5adb4b00bf00d84b00e86d60f7ffb940da4b00ba44050000be5adb4b00bfc8d94b00e85460f7ffb940da4b00ba8e030000be5adb4b00bf88d74b00e83b60f7ff4c898c2498000000e97ae1ffffb940da4b00babd050000be5adb4b00bf6fd64b00e81560f7ff448d6dffe9f1f9ffffb807000000e96cf3ffffb806000000e962f3ffffb805000000e958f3ffffb804000000e94ef3ffffb803000000e944f3ffffb802000000e93af3ffff488b3424488b7c2408488d14ed00000000e83a09faffe9f2ecffffb940da4b00ba6e030000be5adb4b00bfd8d64b00e89c5ff7ffb940da4b00bae1030000be5adb4b00bf08d64b00e8835ff7ffb940da4b00ba45040000be5adb4b00bf10d94b00e86a5ff7ffb801000000e9caf2ffff31c0e9c3f2ffff4983e8014839c70f8eca00000083c101488b9cc4a00000004863f9b940000000488bbcfca000000029f148d3e789f148d3eb4889d94809f948898c24800000004889c1e9f3f1ffff4d39fa0f85340100008d5aff89dac1fa1fc1ea1a8d041383e03f29d083f8170f848700000083f8160f8ed10000004885ed0f8faf0000008d48e94c8dac2480000000b8010000004829e8488b34244889ea498d7cc500e886d5feff488b94249000000048f7da4885d2488984d4800000007f658b5424184863f34531c94531c031c94c89efe8e7d2ffffe931d9ffff488bbcc4a000000089f148d3ef4889c14889bc2480000000e947f1ffff41bc010000004c8dac2480000000488b34244929ec488d14ed000000004b8d7ce500e8be07faff4d85e47e9b48c784248000000000000000eb8db940da4b00ba08050000be5adb4b00bf23d64b00e8125ef7ff41bc01000000b9170000004c8dac248000000029c14c89e0488b34244829e84889ea498d7cc500e8a6d3feff4c2ba424900000004d85e47fa0e936ffffff4c8dac2480000000488b3424488d14ed000000004c895424084c89efe83307faff4c8b542408e973dfffffb940da4b00ba96030000be5adb4b00bfc8d74b00e8905df7ffb940da4b00ba3e050000be5adb4b00bf3ed64b00e8775df7ffb940da4b00ba34050000be5adb4b00bf80d94b00e85e5df7ff488b3c24488d14d5000000004889c64c89542408e8c506faff4c8b542408e9baefffffb940da4b00ba30040000be5adb4b00bf19d64b00e8225df7ffb940da4b00ba18040000be5adb4b00bf88d84b00e8095df7ffb940da4b00ba3a020000be5adb4b00bff2d54b00e8f05cf7ffb940da4b00ba14040000be5adb4b00bf38d84b00e8d75cf7ff4983ed404c89e34531e44c89ac2498000000e96af0ffffb940da4b00ba4f030000be5adb4b00bfb0d64b00e8a75cf7ffb940da4b00ba76030000be5adb4b00bf18d74b00e88e5cf7ffb940da4b00ba82030000be5adb4b00bf50d74b00e8755cf7ff0f1f4400004889d131d2e956d5ffff660f1f440000415741564155415455534883ec1885f648c701000000004c894424084c8b7c24500f8e650200004989cd4889fb89f54989d64531e431c9660f1f840000000000480fbe038d50d080fa0976114d85ff7405413a07744a4c01cb480fbe034b8d14a44883c30183c10183ed014c8d6450d00f840a01000083f91375c5498b55004885d2755c4d892631c949c74500010000004531e4ebaa662e0f1f840000000000410fb6470184c00f84b50100003a430175a4b802000000eb110f1f80000000004883c001385403ff758c410fb6140784d275ed4801c3480fbe03eb810f1f40004c89f648b90000e8890423c78a4c89f74c890c24e847d7feff498b16498b75004c8b0c244e8d04224c39c24d89067648498d4e08eb1f662e0f1f8400000000004883c108488b79f8488d57014885d2488951f875234883ee0175e5ba010000004801c2751a0f1f004531e431c9e9eefeffff660f1f44000031d24801c274e9498b45004883f83a0f8f38010000498914c64531e4498345000131c9e9c0feffff488b742408488b164885d27e0eb81300000029c848984839c27e35498b55004863c9488b0ccd20dc4b004885d275484d892649c74500010000004883c4184889d85b5d415c415d415e415fc30f1f40004863c948c706000000004c0faf24d520dc4b004801ca488b0cd520dc4b00498b55004885d274b84c89f64c89f7e83ed6feff498b16498b75004d8d04144c39c24d8906771f31d24801c2749e498b45004883f83a7f4d488d480149894d00498914c6eb86498d4e08eb1b660f1f4400004883c108488b79f8488d57014885d2488951f875c04883ee0175e5ba01000000ebb5b8010000004801c3480fbe03e9eafdffffb9f0d94b00baa9010000be5adb4b00bfe1d54b00e8d459f7ffb9f0d94b00ba60010000be5adb4b00bfd6d54b00e8bb59f7ffb9f0d94b00ba71010000be5adb4b00bfe1d54b00e8a259f7ff6690415641554189d54154554989cc534889fd4889f34883ec20d97c241e0fb744241e6625000c663d00040f84610100000f86b3000000663d0008745d663d000c41be000c00000f85a90000004881fb02fcffff7d534881fbcdfbffff0f8dbf00000048c7c0d0ffffff4585ed64c700220000000f8428010000f20f1005501b0300f20f5905401b03004883c4205b5d415c415d415ec30f1f004881fb02fcffff41be000800007cad4881fb000400000f8ee401000048c7c0d0ffffff4585ed64c700220000007439f20f1005091b0300f20f5905597502004883c4205b5d415c415d415ec30f1f40004531f66685c00f8457ffffffe8671df8ff0f1f8000000000f20f1005287502004883c4205bf20f59c05d415c415d415ec30f1f8000000000b8010000004489c148c7c202fcffff48d3e04829da4883e8014c85e00f95c00fb6c04109c14883fa3574754883fa010f84eb01000089d14889ee4889efba0100000044894c240c4c8b6500e800cffeff488b750049c7c201fcffff448b4c240c4129da89f783e701eb4c660f1f44000041be00040000e9b0feffff0f1f440000f20f1005201a03004883c4205bf20f59c05d415c415d415ec30f1f80000000004c8b650031ff48c745000000000031f641ba340000004c89e24489d148d3ea4989d04183e0014585c975254584c07520b80100000048d3e04883e8014c21e0750f4531c048c7c301fcffffeb400f1f0048c7c0d0fffffff20f1005a9190300f20f59c064c7002200000048c7c301fcffff4585c9b8010000007518b8010000004489d148d3e04883e8014c21e04885c00f95c083e2014181fe000400000f84b50000007e5b4181fe000800000f84be0000004181fe000c00000f8575feffff89de4489ea4889efe844570000e946feffff0f1f8000000000488b75004489c14c89e248d3ea4589c24989d089f74183e00183e701e978ffffff0f1f80000000004585f60f852bfeffff4d85c074b14008c774ac4883c60148b800000000000020004885c6488975000f85da0000004881fb01fcffff758848b800000000000010004821c64883fe0119f681eefe030000e96cffffff0f1f004585ed0f845effffff84c075ae84d20f8452ffffffeba4904585ed0f8546ffffffebe60f1f4400004585c94c89e04489c10f95c248d3e84c8b650089c183e1014181fe000400000f843d0100000f8e9d0000004181fe000800000f84130100004181fe000c00000f856ffdffff48c7c001fcffffb901000000ba010000004829d84889ee4889ef44894c240c4889c3e8c4ccfeff448b4c240c488b75004189da89f783e701e914feffff660f1f4400004883c301b901000000ba010000004889ee4889efe88fccfeff48b80000000000001000480945004881fb010400000f84b8fcffffe97efeffff0f1f80000000004585f60f85e3fcffffa8010f846cffffff4489e083e00108d00f845effffff48c7c001fcffffba01000000b9010000004829d84889ee4889ef44894c240c4889c3e822ccfeff498d54240148b80000000000002000448b4c240c4885c20f8446ffffff488b75004c89e289d948d3ea4189da4989d089f74183e00183e701e99ffdffff4585ed0f85f1feffff84d2758f84c90f84e5feffffeb854585ed0f84dafeffffebe70f1f00415741564155415455534881ec5804000085d2488974241048897c241848894c2408488b71087412488b4e500fb60183e8013c7d0f869701000031c931db4c8b764048894c24204c89f7e85174f9ff4885c04889442428488b4c24200f843a260000488b44241848c7842488000000000000004c8d48ff488b442408488b50684983c101490fbe01f6444201204989c575ee3c2d0f846a0400003c2bc7442420000000000f842c050000410fb63e4084ff0f84d71100004138fd0f85c8000000b801000000eb18660f1f8400000000004883c001413a5401ff0f85a9000000410fb6140684d275e8410fb6040183e8303c090f8790000000488b4424084180fd30488b50700f84f00500004885db0f845716000041b80a0000004180fd300fb6334d89cc7459662e0f1f8400000000004084f60f84ed030000410fb604244038f00f85eb030000b801000000eb1166904883c001453a5404ff0f85c9000000440fb614034584d275e74883e8014c01e04c0fbe68014c8d60014180fd3075b14c89e0ebec0f1f4000418d45d03c090f8664ffffff488b0595630200428b04a83c690f841d0e00003c6e0f84960e000048837c2410000f8533030000660fefc04881c4580400005b5d415c415d415e415fc3488b5e48803b000f8560feffffe957feffff4885db4d8d61024d0fbe69020f85b12100004180fd300f85942100004d89e131c941b8100000004d89cc0f1f004983c4014d0fbe2c244180fd3074f14489ee660f1f440000418d45d03c090f86af020000490fbec5448b1c82418d439f3c050f872c0500004531ff4183f8104c89e50f851c050000418d45d03c0976574183f810745a4885db74750fb60384c00f84a40200004038f07565b801000000eb11660f1f4400004883c001403a7405ff754d0fb634034084f675ec4883e8014801e84c0fbe6801488d6801418d45d04489ee3c0977a94983c7014889e8ebe3490fbec58b048283e8613c0577984983c7014889e8ebcc660f1f8400000000004885c974094c39cd0f873004000031f64d85ff400f94c648f7de4084ff742940387d000f85db02000031c0eb110f1f004883c0013a5405000f85c6020000410fb654060184d275e8488b4424284183f810488d7c05004c0fbe2f4889fd0f8539140000488b4424084c89f94829f9488b5070eb280f1f40004180fd3074154883feff4889e8410f94c14829f84584c9480f45f04883c5014c0fbe6d00418d45d04c8d540d003c0976cf490fbec58b048283e8613c0576c14d85d20f8845230000488b4424084183f810488b4070428b04a80f85820100003c700f857a0100000fb64d0180f92d0f848504000080f92b0f8403040000488d7d01c7442418000000008d41d03c090f875b0100004183f8100f84730f00008b44241885c00f844c0e000048b897feffffffffff7f4939c70f87a91e00004d8daf680100004c89e848ba676666666666666648f7ea4c89e848c1f83f48c1fa024829c24989d34c89e848ba67666666666666664c8b8c248800000048f7ea4c89e848c1f83f48c1fa024829c2488d049231d24801c04929c5eb2b0f1f800000000083e83048984883c7010fb60f4b8d14894c8d0c50ba010000008d41d03c090f87960500004d39cb0f8cc10300000fbec175ce83e83048984c39e87ec984d20f84b20300004c899c2488000000e9a50300000f1f80000000004180fb700f851d0300004d39cc0f84140300004c89e54531ffe96afdffff488b442410488b7c2418660fefc0488938e9bbfcffff4d0fbe6901c7442420010000004983c101e990fbffff48c7c0ffffffffe97afdffff48c7c0ffffffffe93bfcffff89c6e9effcffff4183f81074083c650f8478feffff4889ef4d39d7732c807dff30751d4929ea0f1f8400000000004883ed01807dff304a8d44150074f14989c24d39d70f87701e00004d39d7754c4d85d27447488b9424880000004885d20f88ff0d000048837c241000744e488b4424104889384d85d275418b442420f20f10058111030085c00f8500fcffffe9f7fbffff488994248800000048837c24100075caebd04d0fbe69014983c101e9c6faffff4d89fae9abfdffff4885f60f848e000000410fb60e410fb67e01eb044983c40141380c2475f64084ff742641387c240175ea31c0eb11660f1f4400004883c001413a54040175d5410fb654060284d275eb4183f8100f84830f00004885f60f886d200000488b84248800000048ba00000000000000804801c24839f20f821d2000004889f2488b7c24284829d04929f24889842488000000488d0c374901cc4183f8100f840e0a0000488b8424880000004885c00f886a0d00004c89d24c29fa4839c2480f4fd04901d74829d0ba350100004c29fa48898424880000004839d00f8e0a020000448b4c242048c7c0d0ffffff4585c964c700220000000f84af0b0000f20f10053a100300f20f59058a6a0200e9c4faffff490fbe4101833c82780f84d9faffff4885db41b80a0000000f8501faffffe9ecfaffff4c89cf4889da4889ee44894424384c894c2430e83a27f8ff4839c54889c74c8b4c2430448b4424380f84ce0c00004c39c80f845afaffff4939c40f86fa020000488b4424104885c00f843ffeffff488938e937feffff4084ff74244038f7756f31c0eb10660f1f4400004883c001453a1404755b450fb65406014584d275eb4183f8100f853cfdffff4d39cc0f8533fdffff488b442428490fbe0404448d50d04180fa090f861bfdffff8b048283e8613c050f860dfdffffeb1f488d7d020fb64d02c744241800000000e9f4fbffff4183f8100f84d9fcffff4183f81074104531ff4180fb654c89e50f844bfaffff4889da4c89e64c89cf44894424284c894c2408e84b26f8ff48837c2410000f847afdffff4c8b4c2408448b4424284c39c80f844d1a0000488b7c2410488907e95afdffff488d7d020fb64d02c744241801000000e97bfbffff84d20f85691a00004883feff0f848c0d0000448b64241848c7c0d0ffffff4585e464c700220000000f85430a00008b5c242085db0f84200e0000f20f1005800e0300f20f5905d06802004883c7010fb60783e8303c0976f2488b4424104885c00f84f3f8ffff488938e9ebf8ffff483dbcfeffff0f8cc60900004531f64d85ff0f85440f00004d39fa0f86381d0000488b8c2488000000488d8144010000483d440100000f871d1d00004585f60f8ea40e00004d85ff0f84f21c00004885c90f85e91c0000b83600000031d24429f04c89d148984c29f94839c84489f97e084489d04429f848984c01f8c6442438004939c27e084989c2c6442438014489d04c8964243048895c244029c8448974244841bf407d4b008944241829d041bd010000004189c1488d84249000000031ed4489cb4989c34889442408488d8424700200004d89de48894424104989c4eb2e488d68ff498b074c89e7488d14ed00000000488d34c5c87e4b00e89cf4f9ff4501ed4983c71885db0f84600a00004185dd74ec4431eb4885ed498b470874c1488d50ff498b074989e84c89e14c89f7488d34c5c87e4b00e8bfc2feff498b57084885c0488d6c15ff0f85380900004c89e04883ed014d89f44989c6eba2448b5c24184c898c24880000004585db0f8402fbffff49f7d94c898c2488000000e9f2faffff0f83b50c0000498d4424014889fa4829c24989c1488d4a014c89e248f7da83e20f4839ca480f47d14883f911480f46d14885d20f84a6080000410fb634244531d283ee304080fe0a410f92c24883fa010f8416020000410fb644240183e8303c0a0f92c00fb6c04901c24883fa02498d4424020f84f3010000410fb644240283e8303c0a0f92c00fb6c04901c24883fa03498d4424030f84d0010000410fb644240383e8303c0a0f92c00fb6c04901c24883fa04498d4424040f84ad010000410fb644240483e8303c0a0f92c00fb6c04901c24883fa05498d4424050f848a010000410fb644240583e8303c0a0f92c00fb6c04901c24883fa06498d4424060f8467010000410fb644240683e8303c0a0f92c00fb6c04901c24883fa07498d4424070f8444010000410fb644240783e8303c0a0f92c00fb6c04901c24883fa08498d4424080f8421010000410fb644240883e8303c0a0f92c00fb6c04901c24883fa09498d4424090f84fe000000410fb644240983e8303c0a0f92c00fb6c04901c24883fa0a498d44240a0f84db000000410fb644240a83e8303c0a0f92c00fb6c04901c24883fa0b498d44240b0f84b8000000410fb644240b83e8303c0a0f92c00fb6c04901c24883fa0c498d44240c0f8495000000410fb644240c83e8303c0a0f92c00fb6c04901c24883fa0d498d44240d7476410fb644240d83e8303c0a0f92c00fb6c04901c24883fa0e498d44240e7457410fb644240e83e8303c0a0f92c00fb6c04901c24883fa0f498d44240f7438410fb644240f83e8303c0a0f92c00fb6c04901c24883fa11498d4424107519410fb644241083e8303c0a0f92c00fb6c04901c2498d4424114839ca0f84ed0200004829d14989ff488d71f04d29cf4d89f948c1ee044929d14883c6014989f349c1e3044983f90e0f8600010000660fefdb66440f6f0d7a090300660feff64c01e2660fefed4531c9660fefe466440f6f056f090300660f6f3d770903004983c1014883c210660f6f42f04939f166410ffcc166410fd8c0660f74c6660fdbc766440f6fd8660f68c666440f60de660f6fc866410f6fd366440f69dd660f61cd660f61d5660f69c566440f6fd2660f6ad466440f62d466410fd4da66450f6fd3660fd4da66410f6fd366440f62d4660f6ad466410fd4da660fd4da660f6fd1660f6acc660f62d4660fd4d3660f6fd8660fd4d1660f6fc8660f6adc660f62cc660fd4ca660fd4d90f8251ffffff660f6fc34c01d8660f73d808660fd4d866480f7eda4901d24939cb0f84c10100000fb6088d51d080fa0a0f92c20fb6d24901d2488d50014839d70f86a20100000fb648018d51d080fa0a0f92c20fb6d24901d2488d50024839d70f86820100000fb648028d51d080fa0a0f92c20fb6d24901d2488d50034839d70f86620100000fb648038d51d080fa0a0f92c20fb6d24901d2488d50044839d70f86420100000fb648048d51d080fa0a0f92c20fb6d24901d2488d50054839d70f86220100000fb648058d51d080fa0a0f92c20fb6d24901d2488d50064839d70f86020100000fb648068d51d080fa0a0f92c20fb6d24901d2488d50074839d70f86e20000000fb648078d51d080fa0a0f92c20fb6d24901d2488d50084839d70f86c20000000fb648088d51d080fa0a0f92c20fb6d24901d2488d50094839d70f86a20000000fb648098d51d080fa0a0f92c20fb6d24901d2488d500a4839d70f86820000000fb6480a8d51d080fa0a0f92c20fb6d24901d2488d500b4839d776660fb6480b8d51d080fa0a0f92c20fb6d24901d2488d500c4839d7764a0fb6480c8d51d080fa0a0f92c20fb6d24901d2488d500d4839d7762e0fb6480d8d51d080fa0a0f92c20fb6d24901d2488d500e4839d776120fb6400e83e8303c0a0f92c00fb6c04901c24d89d731f6e908f6ffffb9c0284b00ba03000000be02354b004c89cf4c894c2408e8902ff7ff85c00f85c7f1ffff4c8b7c24104d85ff74324c8b4c2408b9c0284b00ba05000000be02d64b00498d59034889dfe85e2ff7ff4c8b4c24084983c10885c0490f44d949891f8b442420f20f10051007030085c00f8487f1fffff20f100508070300e97af1ffffb9c0284b00ba03000000befe344b004c89cf4c894c2408e80f2ff7ff85c00f8546f1ffff4c8b4c2408f20f1005ba0603004180790328498d59030f84a7060000488b4424104885c00f842cf1ffff488918e924f1ffff488b442408490fbe1424488b78684889d0f64457011075264983c401490fbe1424f6445701104889d074edeb110f1f8400000000004983c401490fbe04243c3074f3440fbec84983c4014183e9304183f9090f87050200004d63c9428b048dc0da4b0085c00f8464150000b93500000029c149d3e1b93400000029c14c894c24704189c8488b8c24880000004885c90f881202000048beffffffffffffff7f4863d04829ce4829d6488d56044883c601480f49d648c1fa024c39fa0f82a812000083e80148984a8d74b8fc4801ce4983ea014889b424880000000f84ad0200004c8b5c2408488b5c2428eb24660f1f840000000000418d48fd4889d04183e80448d3e04909c14983ea010f8478020000490fbe0424f6444701104889c275084901dc490fbe14240fbec24983c40183e83083f809760a498b43708b049083e8574183f8024863d07facb9030000004889d04429c148d3e8418d483d4909c148d3e24983ea014c894c24704889d1742841803c24300f85cd040000498d4424014d01d4eb0e4883c0018078ff300f85b50400004939c475ed4531c98b542420488d7c247041b83f000000e807e9ffffe971efffff4d85ff0f84b70000004885f60f859b1300004c89f848c1e83f84c00f858c130000b8350100004c29f84989c54d85ed0f8999f1ffff4531db4531ede9aff1ffff31c0e953eefffff20f1005e35e0200f20f59c0e919efffff448b44242048c7c0d0ffffff4585c064c700220000000f8461030000f20f100556040300f20f590546040300e9e8eeffff8b6c242085ed0f84ee030000f20f100535040300f20f590525040300e9b8f5ffff488b4c2408488b5170448b0c824183e957e9e5fdffff4883feff0f84680f000048b8cafeffffffffff7f4839c60f874f1000004c8dae35010000e9e5f0ffff4c89e04531d2e98bf9ffff4863f048ba00000000000000804829f248c1fa02e9f8fdffff4c89e04d89f44989c6e96bf6ffff8b44241885c00f84cc02000048b8f3feffffffffff1f4939c70f874a1000004e8d2cbd32040000e987f0ffff31c04183f8100f94c04883ed014531c94183f8104c8d5c4001752be9c60200000f1f004c01da4983ef014889d048c1e83f4983ea01410f95c14120c10f84edf1ffff4883ed010fbe450089c183e83083f80977ee80f93074ca4584c90f849ff1ffff4889942488000000e992f1ffff0f1f40004c89fa48f7da4839c2480f4cd0e991f2ffff410fb63ee9cbeeffff4c894c24708b542420488d7c24704531c94531c031c9e812e7ffffe97cedffff4d89e24c3b542408488b5c24404c8b642430448b7424480f84560f00004883ec084c89e7534c8b4c2438488b5424188b7424284c8d842498000000488d8c2490000000e805e4ffff488d45ff480fbd9cc48002000048894424405a594883f33f85db0f8489010000488b7c241089d94889ea4889fee8f3b5feff488b7c2408488b94248000000089d94889fee8dcb5feff4885c00f8457010000488b8c2480000000488d5101488984cc9000000048899424800000004d63ee4883fd014c89ac24880000000f842c0c00004883fd020f853d0700004883fa01488b8c2470020000488bb424780200000f8fea0600004c8ba424900000004c39e60f861d0500004585f60f8e82110000bb350000004c8d6c24704429f3741a89d9ba010000004c89ee4c89efe843b5feff4c8ba4249000000041b83f000000488b84248800000031ed4129d84c89e34531e44d63c04885db488d70ff4889e9410f95c14d85e44c89ef0f95c24109d1440a4c24388b5424204183e101e893e5ffffe9fdebffff48b8ffffffffffffff1f4839c60f87e0100000488b84248800000048ba00000000000000804801c248c1ea024839f20f828c100000488d14b500000000e965f0ffff448b6c2420660fefc04585ed0f849af2fffff20f10051a010300e98df2fffff20f1005ed000300f20f59c0e98bebffff488b942480000000e9b8feffff4d85ff0f84a30000004885f60f85ab10000048b8ffffffffffffff1f4939c70f8798100000b8000100004c29f84c8d2c8503000000e9fffbffff488b4424084c8b6868eb234c01da4983ef014983ea014889d0410f95c148c1e83f4120c10f841fefffff4883ed01480fbe4d0041f6444d011074ef80f93074cbe92efdfffff20f1005b85a0200f20f59c0e9dff1fffff20f10053f000300f20f59c0e9cef1ffff41b901000000e948fbffff4883feff746748b8fffeffffffffff1f4839c60f87111000004c8d2cb503040000e909edffff48837c2410000f848ceeffff31f64531ff4531d2e972eeffff498d7904488db42470020000ba29000000e85e3c0000488b842470020000803829488d5001480f44dae92bf9ffff41bb6600000041bd03040000e9d2ecffff4489ee4d89cc41b80a000000e9aceaffff4c89fa4829faeb260f1f40004883feff75134180fd304889e80f95c14829f884c9480f45f04883c5014c0fbe6d00418d45d04c8d5415003c090f87dcebffffebcb4d85ff0f85df0a000041803c24300f84d40a0000b80100000048ba56555555555555554829c8488d34804801f64889f048c1fe3f48f7ea4889d089ca4829f0be3404000083c0363d340400000f4fc601c885c00f8f1ff1ffffb900db4b00ba59050000be5adb4b00bf5ad64b00e8c13cf7ff90488d8424900000004c895424104883ec084c89e74489fe4889442410534889c24c8b4c24384c8d842498000000488d8c2490000000e826e0ffff4989c4488b8424980000005e5f4885c0488bac24800000004c8b5424100f8e0e010000488dbc247002000041bb010000004889ea41bd407d4b004c896424304c895424384989fe48897c2410488b7c24084c89f54989de4489db48897c24184863cb4885c10f8480000000498b7d084831c84889842488000000498b45004c8d67ff4939d47f6f488b742418488d0cc5c87e4b004d89e04889efe8c7b3feff4c89e248039424800000004885c04889942480000000750c4883ea014889942480000000488b84248800000001db4983c5184885c0743d488b4c241848896c24184889cd4863cb4885c1758001db4983c518e969ffffff488b4c2418488d34c5c87e4b004989d04889ef4c89e2e855b3feffeb8c4c89f34989ee4c3b7424104c8b6424304c8b5424384889d50f84ab0c0000488d7dff89e8c1e006480fbd94fc900000004883f23f29d03d000400004189c60f8f09edffff83f8350f8e9c0a00008d70cb89f183e63fc1f90685f64c63c64863d10f85410a0000488b8cd49000000041b83f0000004883ea0148894c24704883bc2490000000000f85140a0000488b74240831c94883c6084883c60883c10148837ef80074f24d39fa41b901000000770d4863c94531c94839d1410f9cc1488b8cd4900000008b54242083e801488d7c24704863f0e8fae0ffffe964e7ffff0f1f44000031db4989c84531ff31ff41b94000000049f7d84889da4839d60f84990000004c89e048f7f64889c54989d24889c848f7e54989c34889d0660f1f8400000000004c39d07707751b4d85db74164c89da4883ed014829ca4883d8004901f24989d373de4989fc4d29dc4919c24585f64c89d275744885ed0f85bd0000004883ac2488000000404183fe3548896c24707e864c8d6c24704889d341b83f000000488b8424880000004529f84d63c0e980faffff0f1f80000000004d89e24901f20f83d80000004c89d24889f84829ca4801c84883d2004585f64989c40f84f100000048c7c5ffffffff4183fef67d0e48896c24704183c640e91bffffff41bf350000004889d34c8d6c24704529f7748a4489f9ba010000004c89ee4c89efe82faffeffb9400000004889e84429f948d3e84809442470e95fffffff4c0fbddd488b9c24880000004589ce4983f33f4963c34529de4829c34183fe354889d848899c24880000000f8e1bffffff4889d3418d5335b9400000004889ef41b83f00000029d14129d048d3ef4d63c04889f948894c24704c8d6c2470e995f9ffff31c04885c94889ca0f95c04d89c348c7c5ffffffff4829c24889d0e984feffff488b9c24980000004c8ba42490000000e931feffff4889d3488b84248800000041b80a00000048b9ffffffffffff1f0048c7c5ffffffffeb98488b442430488b7c24104c8bbcc470020000488d45fe4889442468488b9cc4700200004889e84829d0488d34c7488b7c2408e894a9feff85c0488b9424800000007e20488b842480000000488d500148c784c4900000000000000048899424800000004839d50f8ed50100004989ec4929d44c89e048c1e0064585f60f8e750600004901c54983fd350f8f320600004983fc010f85f408000048c744247000000000c7442418000000004489e0c1e0064101c685d289d00f8eda0000004189d54863d2488d0cd5000000004c01e2488d3cd5080000004c8d14d5f8ffffff488d71f04839f7400f9ec74c39d10f9ec14008cf488b7c24080f846d08000083f8180f8664080000488d0c3783e10f48c1e90339c80f42c885c9741b83e8014863f8488bbcfc900000004889bcd490000000488b7c24084129cd89c9418d55fe48f7d948c1e103d1ea4801ce4c01d183c2014c8d140f4801fe448d1c1231c931ff660f6f040e83c701410f11040a4883e91039fa77eb4429d84539eb741b8d50ff48984c01e04863d2488b94d490000000488994c490000000488b7c24084a8d14e50800000031f6e85021f7ff4183fe3548c784ec7002000000000000488b8cec900000000f8e98070000488b9424880000004c8d6c24704531e485ed89e8782a4863ed4883bcec90000000007414eb1a0f1f40004863c84883bccc9000000000750883e80183f8ff75eaf7d041b83f000000442b4424184189c1488d72ff8b54242041c1e91f440a4c24384c89e14c89ef4d63c04183e101e8bfdcffffe929e3ffff0f856104000085ed448d6dff7e2d4963c5488b4c2408488d14c5080000004863c548c1e003488d78084829d0488d34014829d74801cfe82f20f7ff48c784249000000000000000488b8cec9000000048c784ec7002000000000000c744241800000000488d4501488b74240844896c246448896c24284d89fc48894424508d45fe4889dd4889cb488d04c5080000004889c748894424484963c548c1e0034c8b6c2468488d50084829f84801f04829fa48894424584801f248895424404939dc49c7c7ffffffff7452488b4424304889da488b84c490000000488944246849f7f44989c74889d14889e849f7e7eb120f1f0031f64839e8400f92c64829e84829f24839ca770c75134a3b84ec9000000076094983ef014c01e173d7488b5c2408488b5424504c89f9488b7424104889dfe895c0feff488b7c2428483b84fc900000007420488b5424104889f94889de4889dfe8d31affff4885c00f84ee0200004983ef01488b442430488b9cc490000000488b44242848899cc4900000008b44246485c07e14488b542448488b742458488b7c2440e8d01ef7ff4585f648c78424900000000000000075604d85ff746f490fbdc7488bbc248800000041be400000004883f03f4863d04129c64829d74183fe354889fa4889bc24880000007e488d4035b940000000488b6c24284d89fc4c8d6c247029c1894424184c89f848d3e84889442470e98dfdffff4183fef67d494c897c24704183c640e99efeffff4883ac2488000000404183fe354c897c24700f8e86feffff488b6c24284c8d6c24704d89fc488b942488000000e947fdffff660f1f8400000000004d89fc41bf35000000488b6c24284529f74c8d6c247044897c241874cd4c8d6c24704489f9ba010000004c89ee4c89efe88ba9feffb9400000004c89e04429f948d3e84809442470eba04883fa01488b8c2490000000488bbc24700200000f850d0200004839f90f830402000031ed4531c941b8400000004889ca4c89c848f7f74585f64989d44889d10f85850000004885c00f84900000004c0fbdd0488b9c24880000004589c64983f23f4963f24529d64829f34183fe354889de48899c24880000007e6c418d6a35b9400000004889c34c8d6c247029e948d3e848894424704d85e441b83f0000008b542420410f95c1440a4c24384129e84883ee014d63c04889d94c89ef4183e101e850d9ffffe9badfffff4183fef67d3d48894424704183c640e94fffffff4883ac2488000000404183fe3548894424700f8e37ffffff4c8d6c24704889c3488bb42488000000eb8e0f1f440000bd350000004889c34c8d6c24704429f574df89e9ba010000004c89ee4c89efe844a8feffb9400000004889d829e948d3e84809442470ebb941bb1e00000041bd35010000e9ace1ffff498d4424ff4183f810480f45442418e99fe5ffffb900db4b00ba44050000be5adb4b00bfc8d94b00e83232f7ffb900db4b00ba8e030000be5adb4b00bf88d74b00e81932f7ff4c898c2488000000e98ae5ffffb900db4b00baba060000be5adb4b00bfa3d64b00e8f331f7ffb900db4b00ba90060000be5adb4b00bf90d64b00e8da31f7ffb8350000004429f0894424180f84d7f9ffff4c8d6c2470ba0100000089c14c89ee4c89efe871a7feff488b942480000000e9b3f9ffff4829842488000000c744241800000000e9a7f9ffffb900db4b00babd050000be5adb4b00bf6fd64b00e87631f7ffb900db4b00baa2030000be5adb4b00bf00d84b00e85d31f7ff4489ee4d89e131c941b810000000e982deffff4d89e131c941b810000000e964ddffff488b742408488b7c2410488d14ed00000000e8a3daf9ffe98ef0ffffb900db4b00ba6e030000be5adb4b00bfd8d64b00e80531f7ffb900db4b00bae1030000be5adb4b00bf08d64b00e8ec30f7ffb900db4b00ba45040000be5adb4b00bf10d94b00e8d330f7ff31c9e9fef5ffff4983e8014839d70f8ebb00000083c101488b9cd4900000004863f9b940000000488bbcfc9000000029f148d3e789f148d3eb4889d94809f948894c2470e994f5ffff4d39fa0f851e0100008d58ff89dac1fa1fc1ea1a8d041383e03f29d083f834747c83f8330f8ec10000004885ed0f8f9f0000008d48cc4c8d6c2470b8010000004829e8488b7424084889ea498d7cc500e805a7feff488b94248000000048f7da4885d2488944d4707f5d8b5424204863f34531c94531c031c94c89efe869d6ffffe9d3dcffff488bbcd49000000089f148d3ef48897c2470e9f7f4ffff41bc010000004c8d6c2470488b7424084929ec488d14ed000000004b8d7ce500e848d9f9ff4d85e47ea348c744247000000000eb98b900db4b00ba08050000be5adb4b00bf23d64b00e89f2ff7ff41bc01000000b9340000004c8d6c247029c14c89e0488b7424084829e84889ea498d7cc500e835a5feff4c2ba424800000004d85e47fa5e943ffffff4c8d6c2470488b742408488d14ed000000004c895424104c89efe8c4d8f9ff4c8b542410e936e3ffff448d6dffe93af9ffff488d14d783e8014883ea084863c8488b8ccc9000000048894a0885c075e6e90af8ffffb900db4b00ba6b060000be5adb4b00bf85d64b00e8f52ef7ffb900db4b00ba96030000be5adb4b00bfc8d74b00e8dc2ef7ffb900db4b00ba3e050000be5adb4b00bf3ed64b00e8c32ef7ffb900db4b00ba34050000be5adb4b00bf80d94b00e8aa2ef7ff488b7c2408488d14d5000000004c89f64c89542410e810d8f9ff4c8b542410e931f3ffffb900db4b00ba30040000be5adb4b00bf19d64b00e86d2ef7ffb900db4b00ba18040000be5adb4b00bf88d84b00e8542ef7ffb900db4b00ba3a020000be5adb4b00bff2d54b00e83b2ef7ffb900db4b00ba14040000be5adb4b00bf38d84b00e8222ef7ff4983ed404c89e34531e44c89ac2488000000e97df3ffffb900db4b00ba4f030000be5adb4b00bfb0d64b00e8f22df7ffb900db4b00ba76030000be5adb4b00bf18d74b00e8d92df7ffb900db4b00ba82030000be5adb4b00bf50d74b00e8c02df7ff4889d131d2e9c6d8ffff660f1f440000415741564155415455534883ec1885f648c701000000004c894424084c8b7c24500f8e6d0200004989cd4889fb89f54989d64531e431c9660f1f840000000000480fbe038d50d080fa0976114d85ff7405413a07744a4c01cb480fbe034b8d14a44883c30183c10183ed014c8d6450d00f841201000083f91375c5498b55004885d2755c4d892631c949c74500010000004531e4ebaa662e0f1f840000000000410fb6470184c00f84bd0100003a430175a4b802000000eb110f1f80000000004883c001385403ff758c410fb6140784d275ed4801c3480fbe03eb810f1f40004c89f648b90000e8890423c78a4c89f74c890c24e897a8feff498b16498b75004c8b0c244e8d04224c39c24d89067648498d4e08eb1f662e0f1f8400000000004883c108488b79f8488d57014885d2488951f875234883ee0175e5ba010000004801c2751a0f1f004531e431c9e9eefeffff660f1f44000031d24801c274e9498b4500483d5a0300000f8f3e010000498914c64531e4498345000131c9e9befeffff660f1f440000488b742408488b164885d27e0eb81300000029c848984839c27e35498b55004863c9488b0ccd20dc4b004885d275484d892649c74500010000004883c4184889d85b5d415c415d415e415fc30f1f40004863c948c706000000004c0faf24d520dc4b004801ca488b0cd520dc4b00498b55004885d274b84c89f64c89f7e886a7feff498b16498b75004d8d04144c39c24d8906772131d24801c2749e498b4500483d5a0300007f4b488d480149894d00498914c6eb84498d4e08eb190f1f40004883c108488b79f8488d57014885d2488951f875c04883ee0175e5ba01000000ebb5b8010000004801c3480fbe03e9e2fdffffb9f0d94b00baa9010000be50db4b00bfe1d54b00e81c2bf7ffb9f0d94b00ba60010000be50db4b00bfd6d54b00e8032bf7ffb9f0d94b00ba71010000be50db4b00bfe1d54b00e8ea2af7ff662e0f1f840000000000415641554189d54154554989cc534889fd4889f34883ec20d97c241e0fb744241e6625000c663d00040f84590100000f86b3000000663d0008745d663d000c41be000c00000f85a90000004881fb02c0ffff7d534881fbc2bfffff0f8db700000048c7c0d0ffffff4585ed64c700220000000f8420010000db2d62ed0200db2d4ced02004883c4205b5d415c415d415edec9c30f1f4400004881fb02c0ffff41be000800007cad4881fb004000000f8ecc01000048c7c0d0ffffff4585ed64c700220000007439db2d33ed0200db2d1ded0200dec94883c4205b5d415c415d415ec3660f1f4400004531f66685c00f8457ffffffe8a7eef7ff0f1f8000000000db2deaec02004883c4205b5d415c415d415ed8c8c30f1f00b8010000004489c148c7c202c0ffff48d3e04829da4883e8014c85e00f95c00fb6c04109c14883fa40746d4883fa010f840302000089d14889ee4889efba0100000044894c240c4c8b6500e848a0feff488b750049c7c201c0ffff448b4c240c4129da89f783e701eb44660f1f44000041be00040000e9b8feffff0f1f440000db2d32ec02004883c4205b5d415c415d415ed8c8c30f1f004c8b650031ff48c745000000000031f641ba3f0000004c89e24489d148d3ea4989d04183e0014585c975254584c07520b80100000048d3e04883e8014c21e0750f4531c048c7c301c0ffffeb3e0f1f00db2dcaeb020048c7c0d0ffffff64c70022000000d8c8ddd848c7c301c0ffff4585c9b8010000007518b8010000004489d148d3e04883e8014c21e04885c00f95c083e2014181fe000400000f84cf0000007e4d4181fe000800000f84e00000004181fe000c00000f8587feffff89de4489ea4889efe8d6280000e956feffff90488b75004489c14c89e248d3ea4589c24989d089f74183e00183e701eb8166904585f60f854bfeffff4d85c074bf4008f874ba488d46014839f04889450073404883c301b901000000ba010000004889ee4889efe8d79efeff48b80000000000000080480945004881fb014000000f84c0fdffffe974ffffff0f1f80000000004881fb01c0ffff0f8560ffffff48c1f83ff7d08db002c0ffffe951ffffff66904585ed0f8444ffffff84c0758684d20f8438ffffffe979ffffff660f1f4400004585ed0f8524ffffffebde0f1f4400004585c94c89e04489c10f95c248d3e84c8b650089c183e1014181fe000400000f84c40000007e594181fe000800000f84cc0000004181fe000c00000f8563fdffff48c7c001c0ffffb901000000ba010000004829d84889ee4889ef44894c240c4889c3e8f89dfeff448b4c240c488b75004189da89f783e701e9f8fdffff66904585f60f851bfdffffa80174b44489e083e00108d074aa48c7c001c0ffffb901000000ba010000004829d84889ee4889ef44894c240c4889c3e8a29dfeff4983fcff448b4c240c72a4488b75004c89e289d948d3ea4189da4989d089f74183e00183e701e9dffdffff4585ed0f844fffffff84d275a184c90f8443ffffffeb974585ed0f8538ffffffebe70f1f440000415741564155415455534881ec4836000085d2488974241048897c241848894c2408488b71087412488b4e500fb60183e8013c7d0f868801000031c931db4c8b764048894c24204c89f7e8e145f9ff4885c04889442428488b4c24200f846e220000488b44241848c7442478000000004c8d48ff488b442408488b50680f1f004983c101490fbe01f6444201204989c575ee3c2d0f84550400003c2bc7442420000000000f840a050000410fb63e4084ff0f84831100004138fd0f85c8000000b801000000eb18660f1f8400000000004883c001413a5401ff0f85a9000000410fb6140684d275e8410fb6040183e8303c090f8790000000488b4424084180fd30488b50700f84c20500004885db0f842c1f000041b80a0000004180fd300fb6334d89cc7459662e0f1f8400000000004084f60f84d8030000410fb604244038f00f85d6030000b801000000eb1166904883c001453a5404ff0f85b9000000440fb614034584d275e74883e8014c01e04c0fbe68014c8d60014180fd3075b14c89e0ebec0f1f4000418d45d03c090f8664ffffff488b0525350200428b04a83c690f84e40d00003c6e0f84f70f000048837c2410000f8513030000d9eee91b030000488b5e48803b000f856ffeffffe966feffff4885db4d8d61024d0fbe69020f85c02100004180fd300f85c01e00004d89e131c941b8100000004d89cc66904983c4014d0fbe2c244180fd3074f14489ee660f1f440000418d45d03c090f869f020000490fbec5448b1c82418d439f3c050f870e0500004531ff4183f8104c89e50f85fe040000418d45d03c0976574183f810745a4885db74750fb60384c00f849f0200004038f07565b801000000eb11660f1f4400004883c001403a7405ff754d0fb634034084f675ec4883e8014801e84c0fbe6801488d6801418d45d04489ee3c0977a94983c7014889e8ebe3490fbec58b048283e8613c0577984983c7014889e8ebcc660f1f8400000000004885c974094c39cd0f871204000031f64d85ff400f94c648f7de4084ff742940387d000f85c902000031c0eb110f1f004883c0013a5405000f85b4020000410fb654060184d275e8488b4424284183f810488d7c05004c0fbe2f4889fd0f851e1d0000488b4424084c89f94829f9488b5070eb280f1f40004180fd3074154883feff4889e8410f94c14829f84584c9480f45f04883c5014c0fbe6d00418d45d04c8d540d003c0976cf490fbec58b048283e8613c0576c14d85d20f88721f0000488b4424084183f810488b4070428b04a80f857d0100003c700f85750100000fb64d0180f92d0f846504000080f92b0f84e3030000488d7d01c7442418000000008d41d03c090f87560100004183f8100f849a0f00008b44241885c00f84080e000048b87cecffffffffff7f4939c70f87632000004d8daf831300004c89e848ba676666666666666648f7ea4c89e848c1f83f48c1fa024829c24989d34c89e848ba67666666666666664c8b4c247848f7ea4c89e848c1f83f48c1fa024829c2488d049231d24801c04929c5eb26669083e83048984883c7010fb60f4b8d14894c8d0c50ba010000008d41d03c090f87200400004d39cb0f8ca90300000fbec175ce83e83048984c39e87ec984d20f849a0300004c895c2478e99003000066904180fb700f850d0300004d39cc0f84040300004c89e54531ffe97afdffff488b442410488b7c2418d9ee4889384881c4483600005b5d415c415d415e415fc34d0fbe6901c7442420010000004983c101e9a5fbffff48c7c0ffffffffe97ffdffff48c7c0ffffffffe950fcffff89c6e9f4fcffff4183f81074083c650f847dfeffff4889ef4d39d77329807dff30751a4929ea0f1f4400004883ed01807dff304a8d44150074f14989c24d39d70f87921b00004d39d775424d85d2743d488b5424784885d20f88920d000048837c2410007447488b4424104889384d85d2753a8b44242085c00f841ffcffffd9eed9e0e938ffffff488954247848837c24100075d1ebd74d0fbe69014983c101e9e8faffff4d89fae9bdfdffff4885f60f848a000000410fb60e410fb67e01eb0666904983c40141380c2475f64084ff742641387c240175ea31c0eb11660f1f4400004883c001413a54040175d5410fb654060284d275eb4183f8100f84520f00004885f60f88c11c0000488b44247848ba00000000000000804801c24839f20f82741c00004889f2488b7c24284829d04929f24889442478488d0c374901cc4183f8100f849b090000488b4424784885c00f88370d00004c89d24c29fa4839c2480f4fd04901d74829d0ba451300004c29fa48894424784839d00f8e26020000448b4c242048c7c0d0ffffff4585c964c700220000000f84870b0000db2de0e20200db2dcae20200dec9e910feffff490fbe4101833c82780f84f8faffff4885db41b80a0000000f852ffaffffe90bfbffff4c89cf4889da4889ee44894424384c894c2430e8f8f8f7ff4839c54889c74c8b4c2430448b4424380f84c00c00004939c10f8488faffff4939c40f86ef020000488b4424104885c00f8452feffff488938e94afeffff4084ff74224038f7756d31c0eb0e0f1f40004883c001453a1404755b450fb65406014584d275eb4183f8100f854cfdffff4d39cc0f8543fdffff488b442428490fbe0404448d50d04180fa090f862bfdffff8b048283e8613c050f861dfdffffeb1f488d7d020fb64d02c744241800000000e914fcffff4183f8100f84e9fcffff4183f81074104531ff4180fb654c89e50f846bfaffff4889da4c89e64c89cf44894424284c894c2408e80bf8f7ff48837c2410000f848ffdffff4c8b4c2408448b4424284939c10f842e120000488b7c2410488907e96ffdffff488d7d020fb64d02c744241801000000e99bfbffff84d20f85681800004883feff0f84120d0000448b64241848c7c0d0ffffff4585e464c700220000000f85190a00008b5c242085db0f840b0e0000db2d2ae10200db2d14e10200dec966904883c7010fb60783e8303c0976f2488b4424104885c00f8441fcffff488938e939fcffff448b5c24184c894c24784585db0f847efcffff49f7d94c894c2478e971fcffff483da9ecffff0f8c7e0900004531f64d85ff0f85c40d00004d39fa0f86031b0000488b4c2478488d8157130000483d571300000f87eb1a00004585f60f8e001000004d85ff0f840e1b00004885c90f85051b0000b84100000031d24429f04c89d148984c29f94839c84489f97e084489d04429f848984c01f8c6442430004939c27e084989c2c6442430014489d04c8964243848895c244029c8448974244841bf407d4b008944241829d041bd010000004189c1488d84248000000031ed4489cb4989c34889442408488d8424601b00004d89de48894424104989c4eb2e488d68ff498b074c89e7488d14ed00000000488d34c5c87e4b00e83fc6f9ff4501ed4983c71885db0f84170a00004185dd74ec4431eb4885ed498b470874c1488d50ff498b074989e84c89e14c89f7488d34c5c87e4b00e86294feff498b57084885c0488d6c15ff0f85ef0800004c89e04883ed014d89f44989c6eba20f83f1150000498d4424014889fa4829c24989c1488d4a014c89e248f7da83e20f4839ca480f47d14883f911480f46d14885d20f8483080000410fb634244531d283ee304080fe0a410f92c24883fa010f8416020000410fb644240183e8303c0a0f92c00fb6c04901c24883fa02498d4424020f84f3010000410fb644240283e8303c0a0f92c00fb6c04901c24883fa03498d4424030f84d0010000410fb644240383e8303c0a0f92c00fb6c04901c24883fa04498d4424040f84ad010000410fb644240483e8303c0a0f92c00fb6c04901c24883fa05498d4424050f848a010000410fb644240583e8303c0a0f92c00fb6c04901c24883fa06498d4424060f8467010000410fb644240683e8303c0a0f92c00fb6c04901c24883fa07498d4424070f8444010000410fb644240783e8303c0a0f92c00fb6c04901c24883fa08498d4424080f8421010000410fb644240883e8303c0a0f92c00fb6c04901c24883fa09498d4424090f84fe000000410fb644240983e8303c0a0f92c00fb6c04901c24883fa0a498d44240a0f84db000000410fb644240a83e8303c0a0f92c00fb6c04901c24883fa0b498d44240b0f84b8000000410fb644240b83e8303c0a0f92c00fb6c04901c24883fa0c498d44240c0f8495000000410fb644240c83e8303c0a0f92c00fb6c04901c24883fa0d498d44240d7476410fb644240d83e8303c0a0f92c00fb6c04901c24883fa0e498d44240e7457410fb644240e83e8303c0a0f92c00fb6c04901c24883fa0f498d44240f7438410fb644240f83e8303c0a0f92c00fb6c04901c24883fa11498d4424107519410fb644241083e8303c0a0f92c00fb6c04901c2498d4424114839ca0f84ed0200004829d14989ff488d71f04d29cf4d89f948c1ee044929d14883c6014989f349c1e3044983f90e0f8600010000660fefdb66440f6f0d43db0200660feff64c01e2660fefed4531c9660fefe466440f6f0538db0200660f6f3d40db02004983c1014883c210660f6f42f04939f166410ffcc166410fd8c0660f74c6660fdbc766440f6fd8660f68c666440f60de660f6fc866410f6fd366440f69dd660f61cd660f61d5660f69c566440f6fd2660f6ad466440f62d466410fd4da66450f6fd3660fd4da66410f6fd366440f62d4660f6ad466410fd4da660fd4da660f6fd1660f6acc660f62d4660fd4d3660f6fd8660fd4d1660f6fc8660f6adc660f62cc660fd4ca660fd4d90f8251ffffff660f6fc34c01d8660f73d808660fd4d866480f7eda4901d24939cb0f84c10100000fb6088d51d080fa0a0f92c20fb6d24901d2488d50014839d70f86a20100000fb648018d51d080fa0a0f92c20fb6d24901d2488d50024839d70f86820100000fb648028d51d080fa0a0f92c20fb6d24901d2488d50034839d70f86620100000fb648038d51d080fa0a0f92c20fb6d24901d2488d50044839d70f86420100000fb648048d51d080fa0a0f92c20fb6d24901d2488d50054839d70f86220100000fb648058d51d080fa0a0f92c20fb6d24901d2488d50064839d70f86020100000fb648068d51d080fa0a0f92c20fb6d24901d2488d50074839d70f86e20000000fb648078d51d080fa0a0f92c20fb6d24901d2488d50084839d70f86c20000000fb648088d51d080fa0a0f92c20fb6d24901d2488d50094839d70f86a20000000fb648098d51d080fa0a0f92c20fb6d24901d2488d500a4839d70f86820000000fb6480a8d51d080fa0a0f92c20fb6d24901d2488d500b4839d776660fb6480b8d51d080fa0a0f92c20fb6d24901d2488d500c4839d7764a0fb6480c8d51d080fa0a0f92c20fb6d24901d2488d500d4839d7762e0fb6480d8d51d080fa0a0f92c20fb6d24901d2488d500e4839d776120fb6400e83e8303c0a0f92c00fb6c04901c24d89d731f6e91ff6ffffb9c0284b00ba03000000be02354b004c89cf4c894c2408e85901f7ff85c00f8500f2ffff4c8b7c24104d85ff74324c8b4c2408b9c0284b00ba05000000be02d64b00498d59034889dfe82701f7ff4c8b4c24084983c10885c0490f44d949891f8b44242085c00f840a060000d90507d80200e9dbf4ffff488b442408490fbe1424488b78684889d0f644570110751f4983c401490fbe1424f6445701104889d074edeb0a904983c401490fbe04243c3074f3440fbec84983c4014183e9304183f9090f87490200004d63c9428b048d80db4b0085c00f84e9130000b94000000029c149d3e1b93f00000029c14c894c24604189c8488b4c24784885c90f885902000048beffffffffffffff7f4863d04829ce4829d6488d56044883c601480f49d648c1fa024c39fa0f821613000083e80148984a8d74b8fc4801ce4983ea0148897424780f84ee0200004c8b5c2408488b5c2428eb220f1f8000000000418d48fd4889d04183e80448d3e04909c14983ea010f84bb020000490fbe0424f6444701104889c275084901dc490fbe14240fbec24983c40183e83083f809760a498b43708b049083e8574183f8024863d07facb9030000004889d04429c148d3e8418d483d4909c148d3e24983ea014c894c24604889d1742841803c24300f851b050000498d4424014d01d4eb0e4883c0018078ff300f85030500004939c475ed4531c98b542420488d7c246041b83f000000e8ffe9ffffe937f3ffffb9c0284b00ba03000000befe344b004c89cf4c894c2408e83efff6ff85c00f85e5efffff4c8b4c24084180790328498d59030f84fa060000d90514d60200488b4424104885c00f84ebf2ffff488918e9e3f2ffff4d85ff0f84af0000004885f60f85551100004c89f848c1e83f84c00f8546110000b8451300004c29f84989c54d85ed0f89ddf1ffff4531db4531ede9f3f1ffff31c0e9a7eeffffdb2d49d70200d8c8e98ff2ffff448b44242048c7c0d0ffffff4585c064c700220000000f848a030000db2d10d70200db2dfad60200dec9e960f2ffff8b6c242085ed0f840a040000db2df1d60200db2ddbd60200dec9e9e4f5ffff488b4c2408488b5170448b0c824183e957e9a1fdffff4883feff0f84d90d000048b8baecffffffffff7f4839c60f870d0e00004c8dae45130000e931f1ffff4c89e04531d2e9aef9ffff4863f048ba00000000000000804829f248c1fa02e9b1fdffff4c89e04d89f44989c6e9b4f6ffff31c04183f8100f94c04883ed014531c94183f8104c8d5c4001752be9df0200000f1f004c01da4983ef014889d048c1e83f4983ea01410f95c14120c10f8456f2ffff4883ed010fbe450089c183e83083f80977ee80f93074ca4584c90f840cf2ffff4889542478e902f2ffff0f1f80000000008b44241885c00f842e02000048b8f0efffffffffff1f4939c70f87171000004e8d2cbd3d400000e960f0ffff4c89fa48f7da4839c2480f4cd0e9c4f2ffff4c894c24608b542420488d7c24604531c94531c031c9e8c7e7ffffe9fff0ffff410fb63ee9f7eeffff4d89e24c3b542408488b5c24404c8b642438448b7424480f84fd0f00004883ec084c89e7534c8b4c2438488b5424188b7424284c8d842488000000488d8c2480000000e8a1e4ffff488d45ff480fbd9cc4701b000048894424285a594883f33f85db0f8461010000488b7c241089d94889ea4889fee8df87feff488b7c2408488b54247089d94889fee8cb87feff4885c00f8432010000488b4c2470488d5101488984cc8000000048895424704d63ee4883fd014c896c24780f84da0400004883fd020f85030700004883fa01488b8c24601b0000488bb424681b00000f8fd40600004c8ba424800000004c39e60f867b0500004585f60f8e500e0000b8400000004c8d6c24604429f04189c6741a89c1ba010000004c89ee4c89efe83887feff4c8ba424800000004c89e331ed4531e44885db410f95c14d85e40f95c04109c1440a4c2430488b44247841b83f0000008b5424204529f04889e94d63c04c89ef488d70ff4183e101e84be6ffffe983efffff448b6c2420d9ee4585ed0f8416f3ffffd9e0e90ff3ffff48b8ffffffffffffff1f4839c60f87650d0000488b44247848ba00000000000000804801c248c1ea024839f20f82140d0000488d14b500000000e996f0ffff488b542470e9dafeffff4d85ff0f848e0000004885f60f85b50e000048b8ffffffffffffff1f4939c70f87a20e0000b8001000004c29f84c8d2c8503000000e932fcffffdb2d76d30200d8c8e9dceeffffd905f9d10200e9d1eeffff488b4424084c8b6868eb234c01da4983ef014983ea014889d0410f95c148c1e83f4120c10f846fefffff4883ed01480fbe4d0041f6444d011074ef80f93074cbe915fdffff4883feff0f84d409000048b8ffefffffffffff1f4839c60f87550a00004c8d2cb503400000e991edffffdb2d0fd30200d8c8e9f8f1ffff41b901000000e9fafaffffdb2dd7d20200d8c8e9e0f1ffff488d8424800000004c895424104883ec084c89e74489fe4889442410534889c24c8b4c24384c8d842488000000488d8c2480000000e8f6e1ffff4989c4488b8424880000005e5f4885c0488b6c24704c8b5424100f8e19010000488dbc24601b000041bb010000004889ea41bd407d4b004c896424304c895424384989fe48897c2410488b7c24084489dd48897c24184c89f74989de4889fb4863cd4885c17471498b7d084831c84889442478498b45004c8d67ff4939d47f63488b742418488d0cc5c87e4b004d89e04889dfe8ee86feff4c89e248035424704885c0488954247075094883ea014889542470488b44247801ed4983c5184885c0743d488b4c241848895c24184889cb4863cd4885c1758f01ed4983c518e97cffffff488b4c2418488d34c5c87e4b004989d04889df4c89e2e88886feffeb984889d8483b4424104c8b6424304c8b5424384c89f34889d5751f488b7c2408488d14d5000000004889c64c89542410e8f2b7f9ff4c8b542410488d7dff89e8c1e006480fbd94fc800000004883f23f29d03d004000004189c60f8f65eeffff83f8400f8e8f0900008d70c089f183e63fc1f90685f64c63c64863d10f8534090000488b8cd48000000041b83f0000004883ea0148894c24604883bc2480000000000f8507090000488b74240831c94883c6084883c60883c10148837ef80074f24d39fa41b901000000770d4863c94531c94839d1410f9cc1488b8cd4800000008b54242083e801488d7c24604863f0e8d2e2ffffe90aecffff0f1f440000498d7904488db424601b0000ba29000000e8f20c0000488b8424601b0000803829488d5001480f44dae9def8ffff4d85ff0f85ff07000041803c24300f84f4070000b80100000048ba56555555555555554829c8488d34804801f64889f048c1fe3f48f7ea4889d089ca4829f0be3f40000083c0413d3f4000000f4fc601c885c00f8fc3efffffb9c0db4b00ba59050000be50db4b00bf5ad64b00e8080df7ff0f1f8400000000004883fa01488b8c2480000000488bb424601b00000f859c0a00004839f10f83930a00004531c0bf400000004889ca4c89c048f7f64183fe004889d175224885c07467480fbdd04189fe4883f23f4c63ca4129d64c294c24784889442460ebcc7e53bb400000004889c54989d489d84c8d6c24604429f04189c6742289c1ba010000004c89ee4c89efe83382feff89d94889e84429f148d3e848094424604d85e4410f95c1e9fffaffff4531f641b940000000eb9f48894424604183c640e969ffffff498d4424ff4183f810480f45442418e9beedffff31db4989c831ff41b94000000049f7d84989db4c39de0f84c30000004c89da4c89e048f7f64889c54989d34889c848f7e54989c24889d00f1f004c39d87707751b4d85d274164c89d24883ed014829ca4883d8004901f34989d273de4989fc4d29d44919c34585f675274885edba400000007411480fbdc54589ce4883f03f4863d04129c6482954247848896c2460eb824585f60f8e8000000041bf400000004c89db4c8d6c24604489f84429f04189c60f840bfaffff89c1ba010000004c89ee4c89efe82181feff4489f94889e84429f148d3e84809442460e9e3f9ffff4d89e34901f373414c89d84989fc48c7c5ffffffff4829c84901cc4883d0004585f64989c3758b41be4000000031d248c7c5ffffffffe96bffffff48896c24604183c640e9ebfeffff31c04885c94889ca0f95c04d89c248c7c5ffffffff4829c24889d0e9f2feffff488b9c24880000004c8ba42480000000e9a5feffff488b442418488b7c24104c8bbcc4601b0000488d45fe4889442428488b9cc4601b00004889e84829d0488d34c7488b7c2408e8c67bfeff85c0488b5424707e1a488b442470488d500148c784c4800000000000000048895424704839d50f8edb0100004989ec4929d44c89e048c1e0064585f60f8e360500004901c54983fd400f8fee0400004983fc010f852c05000048c7442460000000004531d24489e0c1e0064101c685d289d00f8edd0000004189d54863d2488d0cd5000000004c01e2488d3cd5080000004c8d1cd5f8ffffff488d71f04839f7400f9ec74c39d90f9ec14008cf488b7c24080f84e106000083f8180f86d8060000488d0c3783e10f48c1e90339c80f42c885c9741b83e8014863f8488bbcfc800000004889bcd480000000488b7c24084589e84129c889c9418d50fe48f7d948c1e103d1ea4801ce4c01d983c2014c8d1c0f4801fe448d2c1231c931ff660f6f040e83c701410f11040b4883e91039fa77eb4429e84539c5741b8d50ff48984c01e04863d2488b94d480000000488994c480000000488b7c24084a8d14e50800000031f64489542438e888f3f6ff4183fe4048c784ec601b000000000000488b8cec80000000448b5424380f8eff0500004c8d6c24604531e485ed89e8782d4863ed4883bcec80000000007417eb1d0f1f80000000004863d04883bcd48000000000750883e80183f8ff75eaf7d041b83f0000008b5424204189c1488b4424784529d041c1e91f440a4c24304d63c04c89e14c89ef488d70ff4183e101e8b4ddffffe9ece6ffff0f852405000085ed448d6dff7e2d4963c5488b4c2408488d14c5080000004863c548c1e003488d78084829d0488d34014829d74801cfe864f2f6ff48c784248000000000000000488b8cec8000000048c784ec601b000000000000488d4501488b7424084c8b64242844896c245c48894424408d45fe488d04c5080000004889c748894424384963c548c1e0034989dd4c89fb488d50084829f84801f04829fa48894424504801f248895424484839cb49c7c7ffffffff744f488b4424184889ca488b84c480000000488944242848f7f34989c74889d14c89e849f7e7eb0f31f64c39e8400f92c64c29e84829f24839ca770c75134a3b84e48000000076094983ef014801d973d7488b542440488b7424104c89f9488b7c2408e8e092feff483b84ec800000007422488b7c2408488b5424104889e94889fee821edfeff4885c00f84100400004983ef01488b442418488b8cc4800000008b44245c85c048898cec800000007e1e488b542438488b742450488b7c244848894c2428e81ef1f6ff488b4c24284183fe0048c78424800000000000000075284d85ff7470490fbdc741be400000004883f03f4863d04129c648295424784c897c2460e9edfeffff7e55bb400000004d89fc4c8d6c24604189da4529f20f84b7fdffff4489d1ba010000004c89ee4c89ef4489542408e85c7cfeff448b54240889d94c89f84429d148d3e84809442460e985fdffff4531f6ba40000000eb9a4c897c24604183c640e988feffff48837c2410000f846ee5ffff31f64531ff4531d2e954e5ffff41bb6606000041bd03400000e9ede3ffff4489ee4d89cc41b80a000000e9c7e1ffff4c89fa4829faeb290f1f80000000004883feff75134180fd304889e80f95c14829f884c9480f45f04883c5014c0fbe6d00418d45d04c8d5415003c090f87f4e2ffffebcb41bbed01000041bd45130000e987e3ffff4c894c2478e98ee7ffff4489ee4d89e131c941b810000000e955e1ffffb9c0db4b00ba82030000be50db4b00bf50d74b00e8a405f7ffb9c0db4b00baa2030000be50db4b00bf00d84b00e88b05f7ffb9c0db4b00bae1030000be50db4b00bf08d64b00e87205f7ffb9c0db4b00ba44050000be50db4b00bfc8d94b00e85905f7ff41ba400000004529f20f8419fbffff4c8d6c24604489d1ba0100000044895424384c89ee4c89efe8ed7afeff488b542470448b542438e9edfaffff48294424784531d2e9e9faffffb9c0db4b00ba6b060000be50db4b00bf85d64b00e8f804f7ff31c9e90bf7ffff4983e8014839d70f8ea600000083c101488b9cd4800000004863f9b940000000488bbcfc8000000029f148d3e789f148d3eb4889d94809f948894c2460e9a1f6ffff4d39fa0f85b40000008d58ff89dac1fa1fc1ea1a8d041383e03f29d083f83f746741bc01000000b93f0000004c8d6c246029c14c89e0488b7424084829e84889ea498d7cc500e8247afeff4c2b6424704d85e47f5d8b5424204863f34531c94531c031c94c89efe863d9ffffe99be2ffff488bbcd48000000089f148d3ef48897c2460e919f6ffff41bc010000004c8d6c2460488b7424084929ec488d14ed000000004b8d7ce500e882adf9ff4d85e47ea348c744246000000000eb984c8d6c2460488b742408488d14ed000000004c895424104c89efe853adf9ff4c8b542410e925e6ffffb9c0db4b00ba18040000be50db4b00bf88d84b00e8b003f7ffb9c0db4b00ba3a020000be50db4b00bff2d54b00e89703f7ffb9c0db4b00ba14040000be50db4b00bf38d84b00e87e03f7ffb9c0db4b00ba4f030000be50db4b00bfb0d64b00e86503f7ffb9c0db4b00ba90060000be50db4b00bf90d64b00e84c03f7ff4983ed404c89e34531e44c896c2478e910f7ffffb9c0db4b00baba060000be50db4b00bfa3d64b00e81f03f7ffb9c0db4b00ba96030000be50db4b00bfc8d74b00e80603f7ff448d6dffe9c9faffff488d14d783e8014883ea084863c8488b8ccc8000000048894a0885c075e6e999f9ffff4d89e131c941b810000000e964ddffffb9c0db4b00ba6e030000be50db4b00bfd8d64b00e8b102f7ffb9c0db4b00ba45040000be50db4b00bf10d94b00e89802f7ffb9c0db4b00ba34050000be50db4b00bf80d94b00e87f02f7ff488b742408488b7c2410488d14ed00000000e8e8abf9ffe9e7efffffb9c0db4b00ba3e050000be50db4b00bf3ed64b00e84a02f7ffb9c0db4b00babd050000be50db4b00bf6fd64b00e83102f7ffb9c0db4b00ba30040000be50db4b00bf19d64b00e81802f7ffb9c0db4b00ba8e030000be50db4b00bf88d74b00e8ff01f7ffb9c0db4b00ba76030000be50db4b00bf18d74b00e8e601f7ff660f1f4400004889d131d2e956dbffff660f1f44000055534889f54889fb4883ec28eb0666904883c3010fb60b89c883e0df83e8413c1976ed8d41d03c0976e680f95f74e138d17418f30f10050dc302004885ed740448895d004883c4285b5dc3488d74241831c931d241b8c0284b00e8a1d6f7ff483b5c241875cd25ffff3f000d0000c07f8944240cf30f1044240cebbf0f1f400055534889f54889fb4883ec28eb0666904883c3010fb60b89c883e0df83e8413c1976ed8d41d03c0976e680f95f74e138d17418f20f100555c302004885ed740448895d004883c4285b5dc3488d74241831c931d241b8c0284b00e821d6f7ff483b5c241875cd48ba00000000ffff070048be000000000000f87f89c14821c2f20f100509c302004809f24809ca4889d148c1e92081e1ffff0f0009c1749d4889542408f20f10442408eb900f1f44000055534889f54889fb4883ec28eb0666904883c3010fb60b89c883e0df83e8413c1976ed8d41d03c0976e680f95f74e138d17416d905dfc102004885ed740448895d004883c4285b5dc3488d74240831c931d241b8c0284b00e873d5f7ff483b5c240875cfd905aec102004889c248c1ea20db7c241081e2ffffff3f894424108b4c241481e1000000c009ca8954241409c274a0db6c2410eba00f1f800000000083c67f488b07c1e21f400fb6f6c1e61725ffff7f0009f209c2895424fcf30f104424fcc3662e0f1f8400000000006690488b3f6681c6ff0348c1e23f81e6ff07000048b800000000ffff0f0048c1e63489f94809f24821f84809ca4809c248895424f8f20f104424f8c3660f1f4400000fb64424f1c1e2076681c6ff3f6681e6ff7f83e07f09c2885424f10fb74424f06625008009c6488b0766897424f0894424e848c1e820894424ecdb6c24e8c390f70516ad2300000200007513488d05dd260000f705d3ac230000001000751a488d054a600000f705c0ac2300000200007507488d0567000000c3660f1f440000488d0569460000f705cfac2300400000007539f705c3ac2300000200007513488d057a260000f70580ac230000001000751a488d05e75f0000f7056dac2300000200007507488d0504000000c30f1f0048c7c0b8ffffff64488b080f1f440000488b01f78078020000010000000f850d8500004885d20f84f52500004883fa010f84fa2500004989d389f189f84883e13f4883e03f660f6f2d73180100660f6f357b180100660f6f3d8318010083f9300f879a00000083f8300f8791000000660f120f660f1216660f164f08660f16560866440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660fefc0660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85192500004983eb100f86302500004883c6104883c7100f1f80000000004883e6f04883e7f0baffff00004531c083e10f83e00f39c1742677074189d0914887f74c8d480f4929c94c8d15dfc102004f630c8a4f8d140a41ffe20f1f4000660f6f0e660fefc0660f74c1660f6f1766440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74ca660ff8c866440fd7c9d3ea41d3e94429ca0f85342400004e8d4c19f04d39cb0f82622400004d85c90f84592400004d89cb48c7c11000000049c7c110000000660fefc00f1f00660f6f0c0e660f6f140f66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85942300004983eb100f86cb2300004883c110660f6f0c0e660f6f140f66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f851a2300004983eb100f86512300004883c110e907ffffff0f1f8000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0f66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f858f220000660f6f1f4e8d4c19f04d39cb0f82b92200004d85c90f84b02200004d89cb660fefc048c7c11000000041b9010000004c8d57014981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f36010000660f6f0c0e660f6f140f660f6fe2660f73db01660f73fa0f660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85b82100004983eb100f86ef2100004883c110660f6fdc4983c2100f8f9c000000660f6f0c0e660f6f140f660f6fe2660f73db01660f73fa0f660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f851e2100004983eb100f86552100004883c110660f6fdce9c7feffff0f1f8000000000660f74c3660fd7d0f7c2feff000075204983fb0f761a660fefc04981ea00100000e9a4feffff662e0f1f840000000000660f6f0c0e660f73d801660f73db01e95c2000006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0e66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f853f200000660f6f1f4e8d4c19f04d39cb0f82692000004d85c90f84602000004d89cb660fefc048c7c11000000041b9020000004c8d57024981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f36010000660f6f0c0e660f6f140f660f6fe2660f73db02660f73fa0e660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85681f00004983eb100f869f1f00004883c110660f6fdc4983c2100f8f9c000000660f6f0c0e660f6f140f660f6fe2660f73db02660f73fa0e660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ce1e00004983eb100f86051f00004883c110660f6fdce9c7feffff0f1f8000000000660f74c3660fd7d0f7c2fcff000075204983fb0e761a660fefc04981ea00100000e9a4feffff662e0f1f840000000000660f6f0c0e660f73d802660f73db02e90c1e00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0d66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85ef1d0000660f6f1f4e8d4c19f04d39cb0f82191e00004d85c90f84101e00004d89cb660fefc048c7c11000000041b9030000004c8d57034981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f36010000660f6f0c0e660f6f140f660f6fe2660f73db03660f73fa0d660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85181d00004983eb100f864f1d00004883c110660f6fdc4983c2100f8f9c000000660f6f0c0e660f6f140f660f6fe2660f73db03660f73fa0d660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f857e1c00004983eb100f86b51c00004883c110660f6fdce9c7feffff0f1f8000000000660f74c3660fd7d0f7c2f8ff000075204983fb0d761a660fefc04981ea00100000e9a4feffff662e0f1f840000000000660f6f0c0e660f73d803660f73db03e9bc1b00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0c66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f859f1b0000660f6f1f4e8d4c19f04d39cb0f82c91b00004d85c90f84c01b00004d89cb660fefc048c7c11000000041b9040000004c8d57044981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f36010000660f6f0c0e660f6f140f660f6fe2660f73db04660f73fa0c660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85c81a00004983eb100f86ff1a00004883c110660f6fdc4983c2100f8f9c000000660f6f0c0e660f6f140f660f6fe2660f73db04660f73fa0c660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f852e1a00004983eb100f86651a00004883c110660f6fdce9c7feffff0f1f8000000000660f74c3660fd7d0f7c2f0ff000075204983fb0c761a660fefc04981ea00100000e9a4feffff662e0f1f840000000000660f6f0c0e660f73d804660f73db04e96c1900006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0b66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f854f190000660f6f1f4e8d4c19f04d39cb0f82791900004d85c90f84701900004d89cb660fefc048c7c11000000041b9050000004c8d57054981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f36010000660f6f0c0e660f6f140f660f6fe2660f73db05660f73fa0b660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85781800004983eb100f86af1800004883c110660f6fdc4983c2100f8f9c000000660f6f0c0e660f6f140f660f6fe2660f73db05660f73fa0b660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85de1700004983eb100f86151800004883c110660f6fdce9c7feffff0f1f8000000000660f74c3660fd7d0f7c2e0ff000075204983fb0b761a660fefc04981ea00100000e9a4feffff662e0f1f840000000000660f6f0c0e660f73d805660f73db05e91c1700006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0a66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85ff160000660f6f1f4e8d4c19f04d39cb0f82291700004d85c90f84201700004d89cb660fefc048c7c11000000041b9060000004c8d57064981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f36010000660f6f0c0e660f6f140f660f6fe2660f73db06660f73fa0a660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85281600004983eb100f865f1600004883c110660f6fdc4983c2100f8f9c000000660f6f0c0e660f6f140f660f6fe2660f73db06660f73fa0a660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f858e1500004983eb100f86c51500004883c110660f6fdce9c7feffff0f1f8000000000660f74c3660fd7d0f7c2c0ff000075204983fb0a761a660fefc04981ea00100000e9a4feffff662e0f1f840000000000660f6f0c0e660f73d806660f73db06e9cc1400006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0966440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85af140000660f6f1f4e8d4c19f04d39cb0f82d91400004d85c90f84d01400004d89cb660fefc048c7c11000000041b9070000004c8d57074981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f36010000660f6f0c0e660f6f140f660f6fe2660f73db07660f73fa09660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85d81300004983eb100f860f1400004883c110660f6fdc4983c2100f8f9c000000660f6f0c0e660f6f140f660f6fe2660f73db07660f73fa09660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f853e1300004983eb100f86751300004883c110660f6fdce9c7feffff0f1f8000000000660f74c3660fd7d0f7c280ff000075204983fb09761a660fefc04981ea00100000e9a4feffff662e0f1f840000000000660f6f0c0e660f73d807660f73db07e97c1200006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0866440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f855f120000660f6f1f4e8d4c19f04d39cb0f82891200004d85c90f84801200004d89cb660fefc048c7c11000000041b9080000004c8d57084981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f36010000660f6f0c0e660f6f140f660f6fe2660f73db08660f73fa08660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85881100004983eb100f86bf1100004883c110660f6fdc4983c2100f8f9c000000660f6f0c0e660f6f140f660f6fe2660f73db08660f73fa08660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ee1000004983eb100f86251100004883c110660f6fdce9c7feffff0f1f8000000000660f74c3660fd7d0f7c200ff000075204983fb08761a660fefc04981ea00100000e9a4feffff662e0f1f840000000000660f6f0c0e660f73d808660f73db08e92c1000006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0766440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f850f100000660f6f1f4e8d4c19f04d39cb0f82391000004d85c90f84301000004d89cb660fefc048c7c11000000041b9090000004c8d57094981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f36010000660f6f0c0e660f6f140f660f6fe2660f73db09660f73fa07660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85380f00004983eb100f866f0f00004883c110660f6fdc4983c2100f8f9c000000660f6f0c0e660f6f140f660f6fe2660f73db09660f73fa07660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f859e0e00004983eb100f86d50e00004883c110660f6fdce9c7feffff0f1f8000000000660f74c3660fd7d0f7c200fe000075204983fb07761a660fefc04981ea00100000e9a4feffff662e0f1f840000000000660f6f0c0e660f73d809660f73db09e9dc0d00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0666440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85bf0d0000660f6f1f4e8d4c19f04d39cb0f82e90d00004d85c90f84e00d00004d89cb660fefc048c7c11000000041b90a0000004c8d570a4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f36010000660f6f0c0e660f6f140f660f6fe2660f73db0a660f73fa06660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85e80c00004983eb100f861f0d00004883c110660f6fdc4983c2100f8f9c000000660f6f0c0e660f6f140f660f6fe2660f73db0a660f73fa06660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f854e0c00004983eb100f86850c00004883c110660f6fdce9c7feffff0f1f8000000000660f74c3660fd7d0f7c200fc000075204983fb06761a660fefc04981ea00100000e9a4feffff662e0f1f840000000000660f6f0c0e660f73d80a660f73db0ae98c0b00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0566440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f856f0b0000660f6f1f4e8d4c19f04d39cb0f82990b00004d85c90f84900b00004d89cb660fefc048c7c11000000041b90b0000004c8d570b4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f36010000660f6f0c0e660f6f140f660f6fe2660f73db0b660f73fa05660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85980a00004983eb100f86cf0a00004883c110660f6fdc4983c2100f8f9c000000660f6f0c0e660f6f140f660f6fe2660f73db0b660f73fa05660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85fe0900004983eb100f86350a00004883c110660f6fdce9c7feffff0f1f8000000000660f74c3660fd7d0f7c200f8000075204983fb05761a660fefc04981ea00100000e9a4feffff662e0f1f840000000000660f6f0c0e660f73d80b660f73db0be93c0900006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0466440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f851f090000660f6f1f4e8d4c19f04d39cb0f82490900004d85c90f84400900004d89cb660fefc048c7c11000000041b90c0000004c8d570c4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f36010000660f6f0c0e660f6f140f660f6fe2660f73db0c660f73fa04660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85480800004983eb100f867f0800004883c110660f6fdc4983c2100f8f9c000000660f6f0c0e660f6f140f660f6fe2660f73db0c660f73fa04660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85ae0700004983eb100f86e50700004883c110660f6fdce9c7feffff0f1f8000000000660f74c3660fd7d0f7c200f0000075204983fb04761a660fefc04981ea00100000e9a4feffff662e0f1f840000000000660f6f0c0e660f73d80c660f73db0ce9ec0600006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85cf060000660f6f1f4e8d4c19f04d39cb0f82f90600004d85c90f84f00600004d89cb660fefc048c7c11000000041b90d0000004c8d570d4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f36010000660f6f0c0e660f6f140f660f6fe2660f73db0d660f73fa03660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85f80500004983eb100f862f0600004883c110660f6fdc4983c2100f8f9c000000660f6f0c0e660f6f140f660f6fe2660f73db0d660f73fa03660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f855e0500004983eb100f86950500004883c110660f6fdce9c7feffff0f1f8000000000660f74c3660fd7d0f7c200e0000075204983fb03761a660fefc04981ea00100000e9a4feffff662e0f1f840000000000660f6f0c0e660f73d80d660f73db0de99c0400006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0266440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f857f040000660f6f1f4e8d4c19f04d39cb0f82a90400004d85c90f84a00400004d89cb660fefc048c7c11000000041b90e0000004c8d570e4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f36010000660f6f0c0e660f6f140f660f6fe2660f73db0e660f73fa02660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a80300004983eb100f86df0300004883c110660f6fdc4983c2100f8f9c000000660f6f0c0e660f6f140f660f6fe2660f73db0e660f73fa02660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f850e0300004983eb100f86450300004883c110660f6fdce9c7feffff0f1f8000000000660f74c3660fd7d0f7c200c0000075204983fb02761a660fefc04981ea00100000e9a4feffff662e0f1f840000000000660f6f0c0e660f73d80e660f73db0ee94c0200006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0166440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f852f020000660f6f1f4e8d4c19f04d39cb0f82590200004d85c90f84500200004d89cb660fefc048c7c11000000041b90f0000004c8d570f4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f36010000660f6f0c0e660f6f140f660f6fe2660f73db0f660f73fa01660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85580100004983eb100f868f0100004883c110660f6fdc4983c2100f8f9c000000660f6f0c0e660f6f140f660f6fe2660f73db0f660f73fa01660febd366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85be0000004983eb100f86f50000004883c110660f6fdce9c7feffff0f1f8000000000660f74c3660fd7d0f7c20080000075204983fb01761a660fefc04981ea00100000e9a4feffff662e0f1f840000000000660f6f0c0e660f73db0f660f73d80f9066440f6fc166440f6fce66440f6fd366440f6fde66440f64c566440f64c966440f64d566440f64db66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febda660f74cb660ff8c8660fd7d1f7d26690662e0f1f840000000000498d4409f0488d3c07488d340e4585c0740e4887f790662e0f1f840000000000480fbcd24929d376180fb60c160fb60417488d15383701008b0c8a8b048229c8c331c0c36690662e0f1f8400000000000fb60e0fb607488d15133701008b0c8a8b048229c8c3662e0f1f84000000000048c7c0b8ffffff64488b080f1f440000488b01f78078020000010000000f85bd5e00004885d20f84751f00004883fa010f847a1f00004989d389f189f84883e13f4883e03f660f6f2523f20000660f6f2d2bf20000660f6f3533f2000083f9300f878a00000083f8300f8781000000f30f6f0ff30f6f16660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660fefc0660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a71e00004983eb100f86be1e00004883c6104883c7100f1f4400004883e6f04883e7f0baffff00004531c083e10f83e00f660fefc039c1743277074189d0914887f7660f6f17660f6f0e4c8d480f4929c94c8d15139b02004f630c8a660f74c14f8d140a41ffe20f1f4000660f6f0e660f74c1660f6f17660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74ca660ff8c866440fd7c9d3ea41d3e94429ca0f85c41d00004e8d4c19f04d39cb0f82ea1d00004d85c90f84e11d00004d89cb48c7c11000000049c7c1100000004889ca6690662e0f1f840000000000660f6f0417660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a488d521076784983eb100f865f1d0000660f6f0417660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a488d521076164983eb100f86fd1c0000e937ffffff0f1f80000000000f83eb1c00004929cb0f86e21c0000488d4c0af00fb6040f0fb6140e488d0d2d3401008b04818b149129d0c30f1f4000660f73fa0f660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f852b1c0000660f6f1f4e8d4c19f04d39cb0f824d1c00004d85c90f84441c00004d89cb48c7c11000000041b9010000004c8d57014981e2ff0f00004981ea001000004889ca0f1f4000662e0f1f8400000000004983c2100f8ff6000000660f6f0417660f3a0f4417f001660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86461b00004983eb100f869d1b00004883c2104983c2100f8f7e000000660f6f0417660f3a0f4417f001660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86ce1a00004983eb100f86251b00004883c210e90bffffff90662e0f1f8400000000004981ea00100000660f6f4417f0660f73d801660f3a63c03a4c39d90f83351a000083f90e0f87e0feffffe9271a000090660f73fa0e660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f854b1a0000660f6f1f4e8d4c19f04d39cb0f826d1a00004d85c90f84641a00004d89cb48c7c11000000041b9020000004c8d57024981e2ff0f00004981ea001000004889ca0f1f4000662e0f1f8400000000004983c2100f8ff6000000660f6f0417660f3a0f4417f002660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86661900004983eb100f86bd1900004883c2104983c2100f8f7e000000660f6f0417660f3a0f4417f002660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86ee1800004983eb100f86451900004883c210e90bffffff90662e0f1f8400000000004981ea00100000660f6f4417f0660f73d802660f3a63c03a4c39d90f835518000083f90d0f87e0feffffe94718000090660f73fa0d660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f856b180000660f6f1f4e8d4c19f04d39cb0f828d1800004d85c90f84841800004d89cb48c7c11000000041b9030000004c8d57034981e2ff0f00004981ea001000004889ca4983c2100f8ff4000000660f6f0417660f3a0f4417f003660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86941700004983eb100f86eb1700004883c2104983c2100f8f7c000000660f6f0417660f3a0f4417f003660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f861c1700004983eb100f86731700004883c210e90bffffff660f1f8400000000004981ea00100000660f6f4417f0660f73d803660f3a63c03a4c39d90f838516000083f90c0f87e2feffffe97716000090660f73fa0c660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f859b160000660f6f1f4e8d4c19f04d39cb0f82bd1600004d85c90f84b41600004d89cb48c7c11000000041b9040000004c8d57044981e2ff0f00004981ea001000004889ca0f1f4000662e0f1f8400000000004983c2100f8ff6000000660f6f0417660f3a0f4417f004660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86b61500004983eb100f860d1600004883c2104983c2100f8f7e000000660f6f0417660f3a0f4417f004660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f863e1500004983eb100f86951500004883c210e90bffffff90662e0f1f8400000000004981ea00100000660f6f4417f0660f73d804660f3a63c03a4c39d90f83a514000083f90b0f87e0feffffe99714000090660f73fa0b660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85bb140000660f6f1f4e8d4c19f04d39cb0f82dd1400004d85c90f84d41400004d89cb48c7c11000000041b9050000004c8d57054981e2ff0f00004981ea001000004889ca0f1f4000662e0f1f8400000000004983c2100f8ff6000000660f6f0417660f3a0f4417f005660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86d61300004983eb100f862d1400004883c2104983c2100f8f7e000000660f6f0417660f3a0f4417f005660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f865e1300004983eb100f86b51300004883c210e90bffffff90662e0f1f8400000000004981ea00100000660f6f4417f0660f73d805660f3a63c03a4c39d90f83c512000083f90a0f87e0feffffe9b712000090660f73fa0a660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85db120000660f6f1f4e8d4c19f04d39cb0f82fd1200004d85c90f84f41200004d89cb48c7c11000000041b9060000004c8d57064981e2ff0f00004981ea001000004889ca0f1f4000662e0f1f8400000000004983c2100f8ff6000000660f6f0417660f3a0f4417f006660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86f61100004983eb100f864d1200004883c2104983c2100f8f7e000000660f6f0417660f3a0f4417f006660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f867e1100004983eb100f86d51100004883c210e90bffffff90662e0f1f8400000000004981ea00100000660f6f4417f0660f73d806660f3a63c03a4c39d90f83e510000083f9090f87e0feffffe9d710000090660f73fa09660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85fb100000660f6f1f4e8d4c19f04d39cb0f821d1100004d85c90f84141100004d89cb48c7c11000000041b9070000004c8d57074981e2ff0f00004981ea001000004889ca0f1f4000662e0f1f8400000000004983c2100f8ff6000000660f6f0417660f3a0f4417f007660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86161000004983eb100f866d1000004883c2104983c2100f8f7e000000660f6f0417660f3a0f4417f007660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f869e0f00004983eb100f86f50f00004883c210e90bffffff90662e0f1f8400000000004981ea00100000660f6f4417f0660f73d807660f3a63c03a4c39d90f83050f000083f9080f87e0feffffe9f70e000090660f73fa08660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f851b0f0000660f6f1f4e8d4c19f04d39cb0f823d0f00004d85c90f84340f00004d89cb48c7c11000000041b9080000004c8d57084981e2ff0f00004981ea001000004889ca0f1f4000662e0f1f8400000000004983c2100f8ff6000000660f6f0417660f3a0f4417f008660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86360e00004983eb100f868d0e00004883c2104983c2100f8f7e000000660f6f0417660f3a0f4417f008660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86be0d00004983eb100f86150e00004883c210e90bffffff90662e0f1f8400000000004981ea00100000660f6f4417f0660f73d808660f3a63c03a4c39d90f83250d000083f9070f87e0feffffe9170d000090660f73fa07660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f853b0d0000660f6f1f4e8d4c19f04d39cb0f825d0d00004d85c90f84540d00004d89cb48c7c11000000041b9090000004c8d57094981e2ff0f00004981ea001000004889ca0f1f4000662e0f1f8400000000004983c2100f8ff6000000660f6f0417660f3a0f4417f009660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86560c00004983eb100f86ad0c00004883c2104983c2100f8f7e000000660f6f0417660f3a0f4417f009660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86de0b00004983eb100f86350c00004883c210e90bffffff90662e0f1f8400000000004981ea00100000660f6f4417f0660f73d809660f3a63c03a4c39d90f83450b000083f9060f87e0feffffe9370b000090660f73fa06660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f855b0b0000660f6f1f4e8d4c19f04d39cb0f827d0b00004d85c90f84740b00004d89cb48c7c11000000041b90a0000004c8d570a4981e2ff0f00004981ea001000004889ca0f1f4000662e0f1f8400000000004983c2100f8ff6000000660f6f0417660f3a0f4417f00a660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86760a00004983eb100f86cd0a00004883c2104983c2100f8f7e000000660f6f0417660f3a0f4417f00a660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86fe0900004983eb100f86550a00004883c210e90bffffff90662e0f1f8400000000004981ea00100000660f6f4417f0660f73d80a660f3a63c03a4c39d90f836509000083f9050f87e0feffffe95709000090660f73fa05660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f857b090000660f6f1f4e8d4c19f04d39cb0f829d0900004d85c90f84940900004d89cb48c7c11000000041b90b0000004c8d570b4981e2ff0f00004981ea001000004889ca0f1f4000662e0f1f8400000000004983c2100f8ff6000000660f6f0417660f3a0f4417f00b660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86960800004983eb100f86ed0800004883c2104983c2100f8f7e000000660f6f0417660f3a0f4417f00b660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f861e0800004983eb100f86750800004883c210e90bffffff90662e0f1f8400000000004981ea00100000660f6f4417f0660f73d80b660f3a63c03a4c39d90f838507000083f9040f87e0feffffe97707000090660f73fa04660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f859b070000660f6f1f4e8d4c19f04d39cb0f82bd0700004d85c90f84b40700004d89cb48c7c11000000041b90c0000004c8d570c4981e2ff0f00004981ea001000004889ca0f1f4000662e0f1f8400000000004983c2100f8ff6000000660f6f0417660f3a0f4417f00c660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86b60600004983eb100f860d0700004883c2104983c2100f8f7e000000660f6f0417660f3a0f4417f00c660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f863e0600004983eb100f86950600004883c210e90bffffff90662e0f1f8400000000004981ea00100000660f6f4417f0660f73d80c660f3a63c03a4c39d90f83a505000083f9030f87e0feffffe99705000090660f73fa03660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85bb050000660f6f1f4e8d4c19f04d39cb0f82dd0500004d85c90f84d40500004d89cb48c7c11000000041b90d0000004c8d570d4981e2ff0f00004981ea001000004889ca0f1f4000662e0f1f8400000000004983c2100f8ff6000000660f6f0417660f3a0f4417f00d660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86d60400004983eb100f862d0500004883c2104983c2100f8f7e000000660f6f0417660f3a0f4417f00d660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f865e0400004983eb100f86b50400004883c210e90bffffff90662e0f1f8400000000004981ea00100000660f6f4417f0660f73d80d660f3a63c03a4c39d90f83c503000083f9020f87e0feffffe9b703000090660f73fa02660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85db030000660f6f1f4e8d4c19f04d39cb0f82fd0300004d85c90f84f40300004d89cb48c7c11000000041b90e0000004c8d570e4981e2ff0f00004981ea001000004889ca0f1f4000662e0f1f8400000000004983c2100f8ff6000000660f6f0417660f3a0f4417f00e660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86f60200004983eb100f864d0300004883c2104983c2100f8f7e000000660f6f0417660f3a0f4417f00e660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f867e0200004983eb100f86d50200004883c210e90bffffff90662e0f1f8400000000004981ea00100000660f6f4417f0660f73d80e660f3a63c03a4c39d90f83e501000083f9010f87e0feffffe9d701000090660f73fa01660f6ff966440f6fc566440f6fca66440f6fd5660f64fc66440f64c166440f64cc66440f64d266410fdbf866450fdbca660fdbfe66440fdbce660febcf66410febd1660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85fb010000660f6f1f4e8d4c19f04d39cb0f821d0200004d85c90f84140200004d89cb48c7c11000000041b90f0000004c8d570f4981e2ff0f00004981ea001000004889ca0f1f4000662e0f1f8400000000004983c2100f8ff6000000660f6f0417660f3a0f4417f00f660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f86160100004983eb100f866d0100004883c2104983c2100f8f7e000000660f6f0417660f3a0f4417f00f660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f869e0000004983eb100f86f50000004883c210e90bffffff90662e0f1f8400000000004981ea00100000660f6f4417f0660f73d80f660f3a63c03a4c39d9730983f9000f87e4feffff660f6f0c16660f6ff866440f6fc566440f6fc966440f6fd5660f64fc66440f64c066440f64cc66440f64d166410fdbf866450fdbca660fdbfe66440fdbce660febc766410febc9660f3a63c11a0f1f00662e0f1f840000000000735f4929cb765a4801ca4a8d7c0ff00fb604170fb614164585c0740192488d0d9c1701008b14918b048129d0c3488d3c07488d340e4585c074064887f70f1f00480fbcd24929d376180fb60c160fb60417488d15681701008b0c8a8b048229c8c331c0c36690662e0f1f8400000000000fb60e0fb607488d15431701008b0c8a8b048229c8c3662e0f1f84000000000048c7c0b8ffffff64488b080f1f440000488b01f78078020000010000000f85ed3e00004885d20f84551900004883fa010f845a1900004989d389f189f84883e13f4883e03fc5f96f2553d20000c5f96f2d7bd20000c5f96f3563d2000083f930776e83f8307769c5fa6f0fc5fa6f16c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5f9efc0c5f974c1c5f174cac5f1f8c8c5f9d7d181eaffff00000f85a81800004983eb100f86bf1800004883c6104883c710660f1f4400004883e6f04883e7f0baffff00004531c083e10f83e00fc5f9efc039c1743277074189d0914887f7c5f96f17c5f96f0e4c8d480f4929c94c8d15a37b02004f630c8ac5f974c14f8d140a41ffe20f1f4000c5f96f0ec5f974c1c5f96f17c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5f174cac5f1f8c8c579d7c9d3ea41d3e94429ca0f85de1700004e8d4c19f04d39cb0f82041800004d85c90f84fb1700004d89cb48c7c11000000049c7c1100000004889ca660f1f440000c5f96f0417c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a488d521076614983eb100f8698170000c5f96f0417c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a488d521076184983eb100f864f170000e969ffffff660f1f8400000000000f833b1700004929cb0f8632170000488d4c0af00fb6040f0fb6140e488d0dcd1401008b04818b149129d0c30f1f4000c5e973fa0fc5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8595160000c5f96f1f4e8d4c19f04d39cb0f82b71600004d85c90f84ae1600004d89cb48c7c11000000041b9010000004c8d57014981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fb6000000c5f96f0417c4e3790f4417f001c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86cf1500004983eb100f86261600004883c2104983c2107f5bc5f96f0417c4e3790f4417f001c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86741500004983eb100f86cb1500004883c210e941ffffff904981ea00100000c5f96f4417f0c5f973d801c4e37963c03a4c39d90f830515000083f90e0f8720ffffffe9f714000090c5e973fa0ec5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8515150000c5f96f1f4e8d4c19f04d39cb0f82371500004d85c90f842e1500004d89cb48c7c11000000041b9020000004c8d57024981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fb6000000c5f96f0417c4e3790f4417f002c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f864f1400004983eb100f86a61400004883c2104983c2107f5bc5f96f0417c4e3790f4417f002c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86f41300004983eb100f864b1400004883c210e941ffffff904981ea00100000c5f96f4417f0c5f973d802c4e37963c03a4c39d90f838513000083f90d0f8720ffffffe97713000090c5e973fa0dc5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8595130000c5f96f1f4e8d4c19f04d39cb0f82b71300004d85c90f84ae1300004d89cb48c7c11000000041b9030000004c8d57034981e2ff0f00004981ea001000004889ca4983c2100f8fbe000000c5f96f0417c4e3790f4417f003c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86d71200004983eb100f862e1300004883c2104983c2107f63c5f96f0417c4e3790f4417f003c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f867c1200004983eb100f86d31200004883c210e941ffffff660f1f8400000000004981ea00100000c5f96f4417f0c5f973d803c4e37963c03a4c39d90f830512000083f90c0f8718ffffffe9f711000090c5e973fa0cc5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8515120000c5f96f1f4e8d4c19f04d39cb0f82371200004d85c90f842e1200004d89cb48c7c11000000041b9040000004c8d57044981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fb6000000c5f96f0417c4e3790f4417f004c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f864f1100004983eb100f86a61100004883c2104983c2107f5bc5f96f0417c4e3790f4417f004c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86f41000004983eb100f864b1100004883c210e941ffffff904981ea00100000c5f96f4417f0c5f973d804c4e37963c03a4c39d90f838510000083f90b0f8720ffffffe97710000090c5e973fa0bc5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8595100000c5f96f1f4e8d4c19f04d39cb0f82b71000004d85c90f84ae1000004d89cb48c7c11000000041b9050000004c8d57054981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fb6000000c5f96f0417c4e3790f4417f005c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86cf0f00004983eb100f86261000004883c2104983c2107f5bc5f96f0417c4e3790f4417f005c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86740f00004983eb100f86cb0f00004883c210e941ffffff904981ea00100000c5f96f4417f0c5f973d805c4e37963c03a4c39d90f83050f000083f90a0f8720ffffffe9f70e000090c5e973fa0ac5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f85150f0000c5f96f1f4e8d4c19f04d39cb0f82370f00004d85c90f842e0f00004d89cb48c7c11000000041b9060000004c8d57064981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fb6000000c5f96f0417c4e3790f4417f006c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f864f0e00004983eb100f86a60e00004883c2104983c2107f5bc5f96f0417c4e3790f4417f006c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86f40d00004983eb100f864b0e00004883c210e941ffffff904981ea00100000c5f96f4417f0c5f973d806c4e37963c03a4c39d90f83850d000083f9090f8720ffffffe9770d000090c5e973fa09c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f85950d0000c5f96f1f4e8d4c19f04d39cb0f82b70d00004d85c90f84ae0d00004d89cb48c7c11000000041b9070000004c8d57074981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fb6000000c5f96f0417c4e3790f4417f007c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86cf0c00004983eb100f86260d00004883c2104983c2107f5bc5f96f0417c4e3790f4417f007c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86740c00004983eb100f86cb0c00004883c210e941ffffff904981ea00100000c5f96f4417f0c5f973d807c4e37963c03a4c39d90f83050c000083f9080f8720ffffffe9f70b000090c5e973fa08c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f85150c0000c5f96f1f4e8d4c19f04d39cb0f82370c00004d85c90f842e0c00004d89cb48c7c11000000041b9080000004c8d57084981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fb6000000c5f96f0417c4e3790f4417f008c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f864f0b00004983eb100f86a60b00004883c2104983c2107f5bc5f96f0417c4e3790f4417f008c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86f40a00004983eb100f864b0b00004883c210e941ffffff904981ea00100000c5f96f4417f0c5f973d808c4e37963c03a4c39d90f83850a000083f9070f8720ffffffe9770a000090c5e973fa07c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f85950a0000c5f96f1f4e8d4c19f04d39cb0f82b70a00004d85c90f84ae0a00004d89cb48c7c11000000041b9090000004c8d57094981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fb6000000c5f96f0417c4e3790f4417f009c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86cf0900004983eb100f86260a00004883c2104983c2107f5bc5f96f0417c4e3790f4417f009c5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86740900004983eb100f86cb0900004883c210e941ffffff904981ea00100000c5f96f4417f0c5f973d809c4e37963c03a4c39d90f830509000083f9060f8720ffffffe9f708000090c5e973fa06c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8515090000c5f96f1f4e8d4c19f04d39cb0f82370900004d85c90f842e0900004d89cb48c7c11000000041b90a0000004c8d570a4981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fb6000000c5f96f0417c4e3790f4417f00ac5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f864f0800004983eb100f86a60800004883c2104983c2107f5bc5f96f0417c4e3790f4417f00ac5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86f40700004983eb100f864b0800004883c210e941ffffff904981ea00100000c5f96f4417f0c5f973d80ac4e37963c03a4c39d90f838507000083f9050f8720ffffffe97707000090c5e973fa05c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8595070000c5f96f1f4e8d4c19f04d39cb0f82b70700004d85c90f84ae0700004d89cb48c7c11000000041b90b0000004c8d570b4981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fb6000000c5f96f0417c4e3790f4417f00bc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86cf0600004983eb100f86260700004883c2104983c2107f5bc5f96f0417c4e3790f4417f00bc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86740600004983eb100f86cb0600004883c210e941ffffff904981ea00100000c5f96f4417f0c5f973d80bc4e37963c03a4c39d90f830506000083f9040f8720ffffffe9f705000090c5e973fa04c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8515060000c5f96f1f4e8d4c19f04d39cb0f82370600004d85c90f842e0600004d89cb48c7c11000000041b90c0000004c8d570c4981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fb6000000c5f96f0417c4e3790f4417f00cc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f864f0500004983eb100f86a60500004883c2104983c2107f5bc5f96f0417c4e3790f4417f00cc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86f40400004983eb100f864b0500004883c210e941ffffff904981ea00100000c5f96f4417f0c5f973d80cc4e37963c03a4c39d90f838504000083f9030f8720ffffffe97704000090c5e973fa03c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8595040000c5f96f1f4e8d4c19f04d39cb0f82b70400004d85c90f84ae0400004d89cb48c7c11000000041b90d0000004c8d570d4981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fb6000000c5f96f0417c4e3790f4417f00dc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86cf0300004983eb100f86260400004883c2104983c2107f5bc5f96f0417c4e3790f4417f00dc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86740300004983eb100f86cb0300004883c210e941ffffff904981ea00100000c5f96f4417f0c5f973d80dc4e37963c03a4c39d90f830503000083f9020f8720ffffffe9f702000090c5e973fa02c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8515030000c5f96f1f4e8d4c19f04d39cb0f82370300004d85c90f842e0300004d89cb48c7c11000000041b90e0000004c8d570e4981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fb6000000c5f96f0417c4e3790f4417f00ec5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f864f0200004983eb100f86a60200004883c2104983c2107f5bc5f96f0417c4e3790f4417f00ec5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86f40100004983eb100f864b0200004883c210e941ffffff904981ea00100000c5f96f4417f0c5f973d80ec4e37963c03a4c39d90f838501000083f9010f8720ffffffe97701000090c5e973fa01c5f164fcc57164c5c56964ccc56964d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc9c5a9ebd2c5e974d1c5e9f8d0c579d7cad3ea41d3e94429ca0f8595010000c5f96f1f4e8d4c19f04d39cb0f82b70100004d85c90f84ae0100004d89cb48c7c11000000041b90f0000004c8d570f4981e2ff0f00004981ea001000004889ca0f1f8400000000004983c2100f8fb6000000c5f96f0417c4e3790f4417f00fc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a0f86cf0000004983eb100f86260100004883c2104983c2107f5bc5f96f0417c4e3790f4417f00fc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a76784983eb100f86cf0000004883c210e945ffffff0f1f4400004981ea00100000c5f96f4417f0c5f973d80fc4e37963c03a4c39d9730983f9000f8724ffffffc5f96f0c16c5f964fcc57964c5c57164ccc57164d5c539dfc7c44129dfd1c539dbc6c529dbd6c5b9ebc0c5a9ebc9c4e37963c11a660f1f440000735f4929cb765a4801ca4a8d7c0ff00fb604170fb614164585c0740192488d0decfd00008b14918b048129d0c3488d3c07488d340e4585c074064887f70f1f00480fbcd24929d376180fb60c160fb60417488d15b8fd00008b0c8a8b048229c8c331c0c36690662e0f1f8400000000000fb60e0fb607488d1593fd00008b0c8a8b048229c8c3662e0f1f84000000000048c7c0b8ffffff64488b080f1f440000488b01f78078020000010000000f853d2500004885d20f84052500004883fa010f840a2500004989d389f189f84883e13f4883e03f660f6f2da3b80000660f6f35abb80000660f6f3db3b8000083f9300f879a00000083f8300f8791000000660f120f660f1216660f164f08660f16560866440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660fefc0660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85292400004983eb100f86402400004883c6104883c7100f1f80000000004883e6f04883e7f0baffff00004531c083e10f83e00f39c1742677074189d0914887f74c8d480f4929c94c8d154f6202004f630c8a4f8d140a41ffe20f1f4000660f6f0e660fefc0660f74c1660f6f1766440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74ca660ff8c866440fd7c9d3ea41d3e94429ca0f85442300004e8d4c19f04d39cb0f82722300004d85c90f84692300004d89cb48c7c11000000049c7c110000000660fefc00f1f00660f6f0c0e660f6f140f66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85a42200004983eb100f86db2200004883c110660f6f0c0e660f6f140f66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f852a2200004983eb100f86612200004883c110e907ffffff0f1f8000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0f66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f859f210000660f6f1f4e8d4c19f04d39cb0f82c92100004d85c90f84c02100004d89cb660fefc048c7c11000000041b9010000004c8d57014981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30166440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85d02000004983eb100f86072100004883c110660f6fdc4983c2100f8f94000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30166440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f853e2000004983eb100f86752000004883c110660f6fdce9d7feffff0f1f8000000000660f74c3660fd7d0f7c2feff000075204983fb0f761a660fefc04981ea00100000e9b4feffff662e0f1f840000000000660f6f0c0e660f73d801660f73db01e97c1f00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0e66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f855f1f0000660f6f1f4e8d4c19f04d39cb0f82891f00004d85c90f84801f00004d89cb660fefc048c7c11000000041b9020000004c8d57024981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30266440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85901e00004983eb100f86c71e00004883c110660f6fdc4983c2100f8f94000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30266440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85fe1d00004983eb100f86351e00004883c110660f6fdce9d7feffff0f1f8000000000660f74c3660fd7d0f7c2fcff000075204983fb0e761a660fefc04981ea00100000e9b4feffff662e0f1f840000000000660f6f0c0e660f73d802660f73db02e93c1d00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0d66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f851f1d0000660f6f1f4e8d4c19f04d39cb0f82491d00004d85c90f84401d00004d89cb660fefc048c7c11000000041b9030000004c8d57034981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85501c00004983eb100f86871c00004883c110660f6fdc4983c2100f8f94000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85be1b00004983eb100f86f51b00004883c110660f6fdce9d7feffff0f1f8000000000660f74c3660fd7d0f7c2f8ff000075204983fb0d761a660fefc04981ea00100000e9b4feffff662e0f1f840000000000660f6f0c0e660f73d803660f73db03e9fc1a00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0c66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df1a0000660f6f1f4e8d4c19f04d39cb0f82091b00004d85c90f84001b00004d89cb660fefc048c7c11000000041b9040000004c8d57044981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30466440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85101a00004983eb100f86471a00004883c110660f6fdc4983c2100f8f94000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30466440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f857e1900004983eb100f86b51900004883c110660f6fdce9d7feffff0f1f8000000000660f74c3660fd7d0f7c2f0ff000075204983fb0c761a660fefc04981ea00100000e9b4feffff662e0f1f840000000000660f6f0c0e660f73d804660f73db04e9bc1800006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0b66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f859f180000660f6f1f4e8d4c19f04d39cb0f82c91800004d85c90f84c01800004d89cb660fefc048c7c11000000041b9050000004c8d57054981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30566440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85d01700004983eb100f86071800004883c110660f6fdc4983c2100f8f94000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30566440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f853e1700004983eb100f86751700004883c110660f6fdce9d7feffff0f1f8000000000660f74c3660fd7d0f7c2e0ff000075204983fb0b761a660fefc04981ea00100000e9b4feffff662e0f1f840000000000660f6f0c0e660f73d805660f73db05e97c1600006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0a66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f855f160000660f6f1f4e8d4c19f04d39cb0f82891600004d85c90f84801600004d89cb660fefc048c7c11000000041b9060000004c8d57064981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30666440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85901500004983eb100f86c71500004883c110660f6fdc4983c2100f8f94000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30666440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85fe1400004983eb100f86351500004883c110660f6fdce9d7feffff0f1f8000000000660f74c3660fd7d0f7c2c0ff000075204983fb0a761a660fefc04981ea00100000e9b4feffff662e0f1f840000000000660f6f0c0e660f73d806660f73db06e93c1400006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0966440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f851f140000660f6f1f4e8d4c19f04d39cb0f82491400004d85c90f84401400004d89cb660fefc048c7c11000000041b9070000004c8d57074981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30766440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85501300004983eb100f86871300004883c110660f6fdc4983c2100f8f94000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30766440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85be1200004983eb100f86f51200004883c110660f6fdce9d7feffff0f1f8000000000660f74c3660fd7d0f7c280ff000075204983fb09761a660fefc04981ea00100000e9b4feffff662e0f1f840000000000660f6f0c0e660f73d807660f73db07e9fc1100006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0866440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df110000660f6f1f4e8d4c19f04d39cb0f82091200004d85c90f84001200004d89cb660fefc048c7c11000000041b9080000004c8d57084981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30866440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85101100004983eb100f86471100004883c110660f6fdc4983c2100f8f94000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30866440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f857e1000004983eb100f86b51000004883c110660f6fdce9d7feffff0f1f8000000000660f74c3660fd7d0f7c200ff000075204983fb08761a660fefc04981ea00100000e9b4feffff662e0f1f840000000000660f6f0c0e660f73d808660f73db08e9bc0f00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0766440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f859f0f0000660f6f1f4e8d4c19f04d39cb0f82c90f00004d85c90f84c00f00004d89cb660fefc048c7c11000000041b9090000004c8d57094981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30966440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85d00e00004983eb100f86070f00004883c110660f6fdc4983c2100f8f94000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30966440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f853e0e00004983eb100f86750e00004883c110660f6fdce9d7feffff0f1f8000000000660f74c3660fd7d0f7c200fe000075204983fb07761a660fefc04981ea00100000e9b4feffff662e0f1f840000000000660f6f0c0e660f73d809660f73db09e97c0d00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0666440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f855f0d0000660f6f1f4e8d4c19f04d39cb0f82890d00004d85c90f84800d00004d89cb660fefc048c7c11000000041b90a0000004c8d570a4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30a66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85900c00004983eb100f86c70c00004883c110660f6fdc4983c2100f8f94000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30a66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85fe0b00004983eb100f86350c00004883c110660f6fdce9d7feffff0f1f8000000000660f74c3660fd7d0f7c200fc000075204983fb06761a660fefc04981ea00100000e9b4feffff662e0f1f840000000000660f6f0c0e660f73d80a660f73db0ae93c0b00006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0566440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f851f0b0000660f6f1f4e8d4c19f04d39cb0f82490b00004d85c90f84400b00004d89cb660fefc048c7c11000000041b90b0000004c8d570b4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30b66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85500a00004983eb100f86870a00004883c110660f6fdc4983c2100f8f94000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30b66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85be0900004983eb100f86f50900004883c110660f6fdce9d7feffff0f1f8000000000660f74c3660fd7d0f7c200f8000075204983fb05761a660fefc04981ea00100000e9b4feffff662e0f1f840000000000660f6f0c0e660f73d80b660f73db0be9fc0800006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0466440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f85df080000660f6f1f4e8d4c19f04d39cb0f82090900004d85c90f84000900004d89cb660fefc048c7c11000000041b90c0000004c8d570c4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30c66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85100800004983eb100f86470800004883c110660f6fdc4983c2100f8f94000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30c66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f857e0700004983eb100f86b50700004883c110660f6fdce9d7feffff0f1f8000000000660f74c3660fd7d0f7c200f0000075204983fb04761a660fefc04981ea00100000e9b4feffff662e0f1f840000000000660f6f0c0e660f73d80c660f73db0ce9bc0600006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0366440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f859f060000660f6f1f4e8d4c19f04d39cb0f82c90600004d85c90f84c00600004d89cb660fefc048c7c11000000041b90d0000004c8d570d4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30d66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85d00500004983eb100f86070600004883c110660f6fdc4983c2100f8f94000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30d66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f853e0500004983eb100f86750500004883c110660f6fdce9d7feffff0f1f8000000000660f74c3660fd7d0f7c200e0000075204983fb03761a660fefc04981ea00100000e9b4feffff662e0f1f840000000000660f6f0c0e660f73d80d660f73db0de97c0400006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0266440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f855f040000660f6f1f4e8d4c19f04d39cb0f82890400004d85c90f84800400004d89cb660fefc048c7c11000000041b90e0000004c8d570e4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30e66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85900300004983eb100f86c70300004883c110660f6fdc4983c2100f8f94000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30e66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85fe0200004983eb100f86350300004883c110660f6fdce9d7feffff0f1f8000000000660f74c3660fd7d0f7c200c0000075204983fb02761a660fefc04981ea00100000e9b4feffff662e0f1f840000000000660f6f0c0e660f73d80e660f73db0ee93c0200006690662e0f1f840000000000660fefc0660f6f17660f6f0e660f74c1660f73fa0166440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74d1660ff8d066440fd7cad3ea41d3e94429ca0f851f020000660f6f1f4e8d4c19f04d39cb0f82490200004d85c90f84400200004d89cb660fefc048c7c11000000041b90f0000004c8d570f4981e2ff0f00004981ea00100000660f1f8400000000004983c2100f8f26010000660f6f0c0e660f6f140f660f6fe2660f3a0fd30f66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85500100004983eb100f86870100004883c110660f6fdc4983c2100f8f94000000660f6f0c0e660f6f140f660f6fe2660f3a0fd30f66440f6fc166440f6fce66440f6fd266440f6fde66440f64c566440f64c966440f64d566440f64da66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febd2660f74c1660f74ca660ff8c8660fd7d181eaffff00000f85be0000004983eb100f86f50000004883c110660f6fdce9d7feffff0f1f8000000000660f74c3660fd7d0f7c20080000075204983fb01761a660fefc04981ea00100000e9b4feffff662e0f1f840000000000660f6f0c0e660f73db0f660f73d80f9066440f6fc166440f6fce66440f6fd366440f6fde66440f64c566440f64c966440f64d566440f64db66450fdbc166450fdbd366440fdbc766440fdbd766410febc866410febda660f74cb660ff8c8660fd7d1f7d26690662e0f1f840000000000498d4409f0488d3c07488d340e4585c0740e4887f790662e0f1f840000000000480fbcd24929d376180fb60c160fb60417488d1558d800008b0c8a8b048229c8c331c0c36690662e0f1f8400000000000fb60e0fb607488d1533d800008b0c8a8b048229c8c3662e0f1f8400000000004839f7743b4885d27436488b4970eb0f4883c7014584c974274883ea0174214883c6010fb607440fb646ff4989c18b0481422b048174d9f3c30f1f800000000031c0c3662e0f1f8400000000000f1f00b8260000000f05483d01f0ffff0f83dda3faffc3662e0f1f84000000000066904883ec084080ff504989ca0f841f01000089f983e10f80f90c0f87090100004c8d05ca3d02000fb6c9496304884901c041ffe00f1f4400004c8b02488d42084d85c0741789f983e17080f910480f45d64901d04084ff79034d8b004d89024883c408c30f1f4400004c0fbf02488d4202ebcd660f1f4400004889d04531c031c94883c001440fb658ff4d89d94183e17f49d3e183c1074d09c84584db78e2eb9f440fb702488d4202eb95660f1f440000448b02488d4204eb860f1f80000000004c6302488d4204e973ffffff0f1f40004889d04531c031c90f1f8400000000004883c001440fb658ff4d89d94183e17f49d3e183c1074d09c84584db78e283f93f0f8738ffffff4183e3400f842effffff49c7c1ffffffff49d3e14d09c8e921ffffff0f1f440000e8b33cf7ff0f1f00488d42074883e0f84c8b00488d40084d89024883c408c3660f1f8400000000004883ec084080ffff742e83e7704080ff20744d762b4080ff4074354080ff5074174080ff307524488b86b00000004883c408c30f1f44000031c04883c408c3904084ff74f34080ff1074ede8403cf7ff488b86b80000004883c408c30f1f4000488b86a80000004883c408c30f1f40004839f748c78120010000000000000f83d7000000554889e541574156415541544989d4534889cb4883ec38488b92c0000000488b814801000048c1ea3f49039424980000004839d00f838f0000004c8d350f3c02004c8d45c84989f54531ff41b9010000000f1f000fb637488d570189f183e1c080f940742780f980747280f9c00f84b90000004080fe2f0f874d08000049630cb64c01f1ffe1660f1f44000083e63f4889d7480fafb3600100004801c64889b3480100004c39ef7320498b9424c0000000488b834801000048c1ea3f49039424980000004839d0728b488d65d85b415c415d415e415f5df3c30f1f0083e63f4889d74531db440fb6d631c9904883c7010fb657ff4889d083e07f48d3e083c1074909c384d278e54c0faf9b580100004080fe11778f49c1e2044901da41c74208010000004d891ae978ffffff83e63f4080fe11400fb6c6771b48c1e0044889d7c744030800000000e957ffffff0f1f80000000004889d7e948ffffff31f631c94889d7660f1f8400000000004883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e54989b424d0000000e910ffffff440fb693700100004c89e64c894da04c8945b8488955a84489d7448955b4e8c5fdffff4c8b45b8448b55b44889c6488b55a84c89c14489d7e85bfcffff4889c7488b45c84c8b45b84c8b4da048898348010000e9b8feffff0fb657014883c702480faf93600100004801d048898348010000e999feffff0fb757014883c703480faf93600100004801d048898348010000e97afeffff8b57014883c705480faf93600100004801d048898348010000e95cfeffff31f631c94889d70f1f4400004883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e54531d231c90f1f8400000000004883c7010fb657ff4889d083e07f48d3e083c1074909c284d278e54c0faf93580100004883fe110f87fbfdffff48c1e604488d0433c74008010000004c8910e9e4fdffff31f631c94889d70f1f4400004883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e54883fe110f87b3fdffff48c1e604c744330800000000e9a2fdffff31f631c94889d70f1f004883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e54883fe110f8773fdffff48c1e604c744330806000000e962fdffff31f631c94889d70f1f004883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e5e97bffffff31f631c94889d7660f1f8400000000004883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e54531d231c94883c7010fb657ff4889d083e07f48d3e083c1074909c284d278e54883fe110f87e3fcffff48c1e604488d0433c74008020000004c8910e9ccfcffff4d85ff0f84ee0400004c89f84d8bbf20010000b9290000004889c74889def348a5488983200100004889d7e99cfcffff488b8320010000b9290000004889df4889c6f348a54c89b8200100004889d74989c7e975fcffff31f631c94889d7660f1f4400004883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e54889b33001000031c931f6662e0f1f8400000000004883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e54889b328010000c7834001000001000000e907fcffff31f631c94889d70f1f8400000000004883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e54889b330010000c7834001000001000000e9c7fbffff31f631c94889d70f1f8400000000004883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e54889b328010000e991fbffff48899338010000c783400100000200000031ff31c90f1f40004883c2010fb672ff4889f083e07f48d3e083c1074809c74084f678e44801d7e954fbffff31ff31c90f1f8400000000004883c2010fb672ff4889f083e07f48d3e083c1074809c74084f678e44883ff11771248c1e704488d043bc740080300000048891031ff31c90f1f8400000000004883c2010fb672ff4889f083e07f48d3e083c1074809c74084f678e44801d7e9e4faffff31f631c90f1f8400000000004883c2010fb67aff4889f883e07f48d3e083c1074809c64084ff78e44889d74531d231c90f1f40004883c7010fb657ff4889d083e07f48d3e083c1074909c284d278e583f93f0f877ffcffff83e2400f8476fcffff4c89c848d3e048f7d84909c2e965fcffff31f631c94889d70f1f004883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e54889b33001000031c931f6662e0f1f8400000000004883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e583f93f771183e240740c4c89c848d3e048f7d84809c6c7834001000001000000480fafb3580100004889b328010000e9e9f9ffff31f631c94889d7662e0f1f8400000000004883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e583f93f77bb83e24074b64c89c848d3e048f7d84809c6eba831f631c9660f1f8400000000004883c2010fb67aff4889f883e07f48d3e083c1074809c64084ff78e44889d74531d231c90f1f40004883c7010fb657ff4889d083e07f48d3e083c1074909c284d278e54c0faf93580100004883fe110f8743f9ffff48c1e604488d0433c74008040000004c8910e92cf9ffff31ff31c94883c2010fb672ff4889f083e07f48d3e083c1074809c74084f678e44883ff11771248c1e704488d043bc740080500000048891031ff31c90f1f8400000000004883c2010fb672ff4889f083e07f48d3e083c1074809c74084f678e44801d7e9c4f8ffff31f631c90f1f8400000000004883c2010fb67aff4889f883e07f48d3e083c1074809c64084ff78e44889d74531d231c90f1f40004883c7010fb657ff4889d083e07f48d3e083c1074909c284d278e54c0faf93580100004883fe110f8763f8ffff48c1e60449f7da488d0433c74008010000004c8910e949f8ffff31f631c94889d7662e0f1f8400000000004883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e54531d231c94883c7010fb657ff4889d083e07f48d3e083c1074909c284d278e583f93f0f879ffeffff83e2400f8496feffff4c89c848d3e048f7d84909c2e985feffffe83d33f7ff4881ec60010000488d44240f4883e0f0e907fbffff0f1f840000000000c605b920230008c605b320230008c605ad20230008c605a720230008c605a120230008c6059b20230008c6059520230008c6058f20230008c6058920230008c6058320230008c6057d20230008c6057720230008c6057120230008c6056b20230008c6056520230008c6055f20230008c6055920230008c30f1f8400000000004989f831c0b9300000004889f7f348ab49c780d00000000000000049c780a000000000000000498b80980000004885c00f84da010000415741564989f641554154498db0a800000055534d89c74883ec38498b90c000000048c1ea3f488d7c10ffe84a3800004885c04989c40f8420020000498b87b80000004d8d4c24044989864801000049634424044929c1498d59094d89cd4889dfe8f48cf8ff41807d0965488d4403010f84b402000041807d08030f877105000031ff31c90f1f4400004883c0010fb670ff4889f283e27f48d3e283c1074809d74084f678e44989be6001000031c931ff660f1f8400000000004883c0010fb670ff4889f283e27f48d3e283c1074809d74084f678e483f93f770983e6400f85660100004989be5801000031c931ff41807d08010f84a00200004883c0010fb670ff4889f283e27f48d3e283c1074809d74084f678e44989be6801000041c68671010000ff0fb61348c74424080000000080fa7a0f8418020000488d7c24284883c30148897c2418eb2280fa52743b80fa50744680fa530f85a501000041c68673010000010fb6134883c30184d2747a80fa4c75d50fb6104883c00141889671010000ebe00f1f4400000fb6104883c00141889670010000ebcb0fb628488d50014c89fe488954241089efe82af4ffff488b542410488b4c24184889c689efe8c6f2ffff488b54242849899650010000eb930f1f840000000000b805000000c3662e0f1f840000000000488b7c24084885ff0f8400020000418b45004c89f14c89fa498d740504e83ef4ffff410fb686700100003cff0f84ee01000083e0073c0274500f86c90000003c030f84cf0100003c040f85c1000000bb18000000eb38662e0f1f84000000000048c7c2ffffffff48d3e24809d7e988feffff498b87980000008038480f84b0010000b805000000eb70bb0c0000004c01e34180be72010000000f842901000031f631c90f1f4400004883c3010fb653ff4889d083e07f48d3e083c1074809c684d278e5410fb6be71010000488d2c334080ffff0f85ff0000004885ed480f44eb418b04244c89f14c89fa4889ef498d740404e869f3ffff31c04883c4385b5d415c415d415e415fc384c00f843fffffffe86b2ff7ff0f1f00488b7c24084885ff0f85e8feffff4883c438b8030000005b5d415c415d415e415fc3660f1f44000041807d0a680f8541fdffff488b10498d5d0b4883c00849899678010000e92afdffff660f1f44000031ed31c90f1f40004883c0010fb670ff4889f283e27f48d3e283c1074809d54084f678e4488d3c2841c68672010000014883c3010fb61348897c2408e9a7fdffff0f1f80000000000fb6104883c00149899668010000e970fdffff0f1f440000410fb6be7101000031ed4080ffff7452440fb6ef4c89fe4489efe809f2ffff488d4c24284889da4889c64489efe8a6f0ffff4889c3488b442428498987a0000000e9cbfeffff4889c7e907ffffffbb10000000e96efeffffbb08000000e964feffff4889dde9aefeffff48bac7c00f0000000f05483950010f853cfeffff498b8790000000488b90a0000000488db09000000041c786400100000100000049c786300100000700000041c746080100000041c746180100000041c74628010000004889d14829d641c74638010000004829c1498936488db08800000049898e28010000488d482841c74648010000004829d641c746580100000041c74668010000004829d149897610488db09800000049898e80000000488d483041c78688000000010000004829d641c786980000000100000041c786a8000000010000004829d149897620488db08000000049898e90000000488d483841c786b8000000010000004829d641c786c80000000100000041c786d8000000010000004829d149897630488d707049898ea0000000488d484041c786e8000000010000004829d64829d149897640488d706849898eb0000000488d48484829d64829d149897650488d707849898ec0000000488d48504829d64829d14989766049898ed0000000488d48584829d149898ee0000000488d48604805a80000004829d041c786f80000000100000041c78608010000010000004829d14989860001000049c786680100001000000049898ef000000041c686730100000131c0e9f5fcffff0f1f40008038080f8515fdffff807801000f850bfdffff4883c002e973faffff6690662e0f1f840000000000415741564155415455534881ec380200004839f748894c24300f83f0070000488d2d2e2d02004c8d05e33002004c8d6424284989f54989d6bb0100000049bf0000000000000040660f1f8400000000000fb6174c8d4f018d42fd4189d33cee0f871b0100000fb6c048634485004801e8ffe0660f1f4400004c8b570189de4883c709660f1f44000083fe3f0f8fef0000008d5e014863f64c8954f4304939fd77af85db0f84d700000083eb014863db488b44dc304881c4380200005b5d415c415d415e415fc3662e0f1f8400000000004c89cfebc70f1f004c63570189de4883c705eba40f1f4000448b570189de4883c705eb940f1f40004c0fbf570189de4883c703eb830f1f00440fb7570189de4883c703e970ffffff0f1f8400000000004c0fbe570189de4883c702e958ffffff440fb6570189de4883c702e948ffffff85db743c8d73ff80fa1f4863c64c8b54c4300f84040500000f864205000080fa230f840005000080fa940f845305000080fa200f841c0500000f1f8000000000e8cb2af7ff0f1f00440fb64f01488d57024c89f64c8944241848895424104489cf44894c240ce815eeffff448b4c240c488b5424104889c64c89e14489cfe8adecffff4c8b5424284889c789de4c8b442418e9b1feffff660f1f84000000000031f631c90f1f40004983c101410fb651ff4889d083e07f48d3e083c1074809c684d278e44c89cf31c031c90f1f4400004883c701440fb64fff4c89ca83e27f48d3e283c1074809d04584c978e383f93f0f860a04000083fe110f8f41ffffff4d85bec0000000488d15a31723004863f64d8b14f60fb614320f84820300004180bc36d800000000751783fa080f84c8010000e8d929f7ff660f1f8400000000004901c289dee9fefdffff660f1f44000031f631c90f1f40004983c101410fb651ff4889d083e07f48d3e083c1074809c684d278e483fe110f8fc3feffff4d85bec0000000488d05251723004863f64d8b14f60fb604300f854403000083f8080f859bfeffff4d8b1289de4c89cfe996fdffff660f1f44000083fb020f8e7ffeffff8d4bff8d53fe8d43fd4863c94863d24898488b7cc430488b74cc304c8b54d4304c8954cc3048897cd4304c89cf488974c430e964fdffff0f1f840000000000448d52d089de4c89cfe93afdffff6690480fbf4701488d7c0703e93dfdffff9085db0f8418feffff83eb01488d57034863c348837cc430000f8492020000480fbf7f014801d7e911fdffff0f1f44000083fb010f8ee7fdffff8d73fe4183eb1a83eb014863db4180fb144863c6488b4cdc304c8b54c4300f87c3fdffff450fb6db4b6304984c01c0ffe0660f1f44000031c031c94c89cf660f1f8400000000004883c701440fb64fff4c89ce83e67f48d3e683c1074809f04584c978e383f93f0f86ea01000083ea7083fa110f8f6efdffff4d85bec0000000488d0dd01523004863d24d8b14d60fb60c110f858f01000083f9080f8546fdffff4d8b124901c2e93efeffff0f1f0083ea5083fa110f8f2cfdffff4d85bec0000000488d058e1523004863d24d8b14d60fb604100f8469feffff4180bc16d8000000000f8566feffff83f8080f845afeffffe8c027f7ff85db0f84e8fcffff83eb014c89cfe9f9fbffff0f1f44000085db0f84d0fcffff8d43ff89de4c89cf48984c8b54c430e9c4fbffff0f1f40004531d231c94c89cf4883c7010fb657ff4889d083e07f48d3e083c1074909c284d278e583f93f89de0f8792fbffff83e2400f8489fbffff48c7c0ffffffff48d3e04909c2e977fbffff0f1f80000000004531d231c94c89cf4883c7010fb657ff4889d083e07f48d3e083c1074909c284d278e589dee946fbffff660f1f4400000fb657018d43ff488d4f0248984839c20f8d22fcffff4829d089de4889cf4c8b54c430e918fbffff83fb010f8e07fcffff8d43fe89de4c89cf48984c8b54c430e9fbfaffff0f1f0083fb010f8ee7fbffff8d53ff8d43fe4c89cf4863d24898488b4cd430488b74c430488974d43048894cc430e9dcfaffff4180bc16d8000000000f85b1fcffff83f9080f8462feffffe87326f7ff0f1f0083fa080f8451feffffe992fbffff66904183e1400f840cfeffff48c7c6ffffffff48d3e64809f0e9fafdffff0f1f40004889d7e984faffff0f1f8400000000004180bc36d8000000000f85b9fcffff83f8080f8553feffffe9a8fcffff0f1f004183e1400f84ecfbffff48c7c2ffffffff48d3e24809d0e9dafbffff49f7da4c89cfe921faffff31d231c94c89cf66904883c701440fb64fff4c89c883e07f48d3e083c1074809c24584c978e34901d2e9f3f9ffff49f7d24c89cfe9e8f9ffff80fa06744f80fa190f85d2faffff4c89d04c89cf48c1f83f4931c24929c2e9c5f9ffff0fb64701488d57023c020f84440100000f86220100003c040f84420100003c080f8597faffff4d8b124889d7e994f9ffff4d8b124c89cfe989f9ffff4929ca4c89cfe97ef9ffff4c89d04c89cf489948f7f94989c2e96bf9ffff4921ca4c89cfe960f9ffff4939ca4c89cf410f9cc2450fb6d2e94df9ffff4939ca4c89cf410f9ec2450fb6d2e93af9ffff4939ca4c89cf410f9fc2450fb6d2e927f9ffff4939ca4c89cf410f9dc2450fb6d2e914f9ffff4939ca4c89cf410f94c2450fb6d2e901f9ffff4931ca4c89cfe9f6f8ffff49d3fa4c89cfe9ebf8ffff49d3ea4c89cfe9e0f8ffff49d3e24c89cfe9d5f8ffff4901ca4c89cfe9caf8ffff4909ca4c89cfe9bff8ffff4c0fafd14c89cfe9b3f8ffff4939ca4c89cf410f95c2450fb6d2e9a0f8ffff4c89d031d24c89cf48f7f14989d2e98df8ffff3c010f857df9ffff450fb6124889d7e979f8ffff4889c8e99df8ffff450fb7124889d7e965f8ffff458b124889d7e95af8ffff6690415741564989ff41554154b91e00000055534881ec38010000488d7c244048897424204c89fe48897c2418f348a5f6842407010000400f84ec00000080bc241f010000000f84de00000041f687c700000040740841c687df00000000488b44242049c74738000000008b804001000083f8010f84b802000083f8020f85cf000000488b44242031f631c9488bb8380100000f1f80000000004883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e5488b5424184801fe31c9e80ef7ffff4989c3488d05f410230048894424284c8d2de81023004d8d97ea000000488b5c24204d89fc4c8d35462802004d899f90000000498dafd80000004c897c24104c895c24084d89ef4d89e54d89d490837b080577588b4308496304864c01f0ffe0660f1f44000048837c2478000f8516ffffff803d8c10230008498b87900000000f84540200000f1f840000000000e8cb22f7ff0f1f00488b44240848030341803f0877eac6450001498945004883c5014883c3104983c5084983c7014939ec758d488b4424204c8b7c241080b873010000000f852e02000048b8ffffffffffffff7f492187c00000004881c4380100005b5d415c415d415e415fc30f1f00488b3b31f631c9660f1f8400000000004883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e5488b4c2408488b5424184801fee8d3f5ffff488b74241048b9000000000000004048858ec00000000f8451ffffffc6450000e948ffffff660f1f440000488b3b31f631c9904883c7010fb657ff4889d083e07f48d3e083c1074809c684d278e5488b4c2408488b5424184801fee873f5ffff41803f080f86fffeffffe9e4feffff0f1f4000488b134863c280bc0418010000007560488b74241048b90000000000000040488b44c44048858ec00000000f84c9feffffe973ffffff662e0f1f840000000000488b742410488b44240848b9000000000000004048030348858ec00000000f8496feffffe940ffffff0f1f800000000083fa110f8f67feffff48be00000000000000404885b42400010000488b54c4407512488b742428803c06080f853ffeffff488b1241803f080f8732feffffc645000149895500e943feffff0f1f440000488b442420488b803001000083f8110f8f0bfefffff684240701000040488d1d6c0e230048984c8b5cc44048895c24280fb61403752283fa080f85e1fdffff4d8b1b488b4424204c039828010000e94efdffff0f1f44000080bc04180100000075e083fa0874d8e88420f7fff68424070100004048894424307408c684241f01000000488d4424304889442478e988fcffff660f1f44000048b80000000000000080490987c0000000e9cdfdffff66904155415431c05553b91e0000004889fb4989f54989d44881ec98010000f348ab488d6c24104889df488b8424b80100004889ee4889839800000048b80000000000000040488983c0000000e850edffff85c0752e48833d1ce22200007432488d35bbecffff488d3d640d2300e81f42b6ff85c0751b803d6b0d2300080f849b000000e8b91ff7ff660f1f840000000000803d490d23000075dcc605470d230008803d400d230008c605320d230008c6052c0d230008c605260d230008c605200d230008c6051a0d230008c605140d230008c6050e0d230008c605090d230008c605030d230008c605fd0c230008c605f70c230008c605f10c230008c605eb0c230008c605e50c230008c605df0c230008c605d90c2300080f8565fffffff683c7000000404c892c247407c683df00000000488963384889ee4889dfc78424500100000100000048c78424400100000700000048c784243801000000000000e8bdfaffff4c89a3980000004881c4980100005b5d415c415dc30f1f84000000000055534889f54889fb4883ec08e88ffaffff488b85680100004889c248c1e204837c150806745283f8117f44f683c700000040488d15270c230048980fb60c02488b14c3751b83f9087525488b12488993980000004883c4085b5dc30f1f44000080bc03d80000000075e383f90874dbe84c1ef7ff0f1f400048c78398000000000000004883c4085b5dc3660f1f440000415541544989fc55534889f34881ec880100004989e5eb440f1f840000000000488b8424500100004885c0742089ee4989d84c89e183ce02498b1424bf01000000ffd083f807746083f808754185ed756a4c89ee4889dfe814ffffff4c89ee4889df31ede827ebffff488b93c0000000488b8b9000000048c1ea3f4829d149394c2418400f94c5c1e50285c074924881c488010000b8020000005b5d415c415dc30f1f80000000004881c488010000b8070000005b5d415c415dc3e8701df7ff41574156415541544989f455534889fd4881ec880100004c8b77104c8b7f184989e5eb5c0f1f40004d89f94d89e04889e9488b5500be0a000000bf0100000041ffd685c07573488b8424500100004885c074224d89e04889e9488b5500be0a000000bf01000000ffd083f80789c3746083f80875444c89ee4c89e7e830feffff4c89ee4c89e7e845eaffff85c089c3740583f805752383fb05758d4d89f94d89e04889e9488b5500be1a000000bf0100000041ffd685c07417b8020000004881c4880100005b5d415c415d415e415fc389d8ebea6690662e0f1f8400000000004883ec18f686c7000000404989f94989f0744d80bedf00000000744431c066904180bc01d800000000498b14c1498b34c075264885d20f95c14180bc00d800000000745484c97450488d0de1092300803c01080f84a7000000e8321cf7ff6690498378380075b5803dc909230008498b809000000075e241f680c70000004048890424740841c680df0000000049896038eb890f1f4400004885f6400f95c74084cf74344839f2742f488d0d800923000fb60c0183f908734ff6c1040f858e00000085c974120fb63ef6c10240883a0f85da0000000f1f004883c0014883f8110f853affffff31c041f681c70000004075464983793800746a4883c418c36690488932ebd30f1f00488b3e48893a89cf4c8b543ef84c89543af8488d7a084883e7f84829fa4829d601cac1ea0389d1f348a5eba40f1f40004180b9df0000000074b04883c418c3660f1f8400000000008b3e89c9893a8b740efc89740afce975ffffff41f680c7000000400fb615c5082300498b403874184180b8df00000000751a83fa080f85cefeffffeb0c0f1f0083fa080f85c0feffff488b00492b8190000000490380d00000004883c418c389c90fb7740efe6689740afee918ffffff4883ec0883fe117f2af687c700000040488d05590823004863f60fb61430488b04f7741c80bc37d800000000751a83fa087412e8981af7ff0f1f84000000000083fa0875ee488b004883c408c30f1f00488b8790000000c30f1f8400000000004883ec0883fe117f2af687c700000040488d05f90723004863f60fb60430742080bc37d800000000752e83f808488b0cf77416e8381af7ff0f1f84000000000083f808488b0cf775ea4889114883c408c30f1f8000000000488914f74883c408c30f1f440000662e0f1f840000000000488b8798000000c30f1f840000000000488b87c000000048c1e83f8906488b8798000000c390662e0f1f8400000000004889b798000000c30f1f840000000000488b87a0000000c30f1f840000000000488b87b8000000c30f1f8400000000004883ec284883ef014889e6e8a01f00004885c0740b488b4424104883c428c39031c0ebf66690662e0f1f840000000000488b87b0000000c30f1f840000000000488b87a8000000c30f1f840000000000555331c04989f8b91e0000004889f54881ec780200004983c0014889e7488d9c24f0000000f348ab4889de48b800000000000000404889e748898424c00000004c89842498000000e863e6ffff85c00f85aa00000083bc2430020000020f849c0000004889de488d8db4000000488d7d204c8d8320010000eb23660f1f44000080fa02742248c707000000004883c6104883c1014883c7084c39c674138b560880fa01881175d9488b16488917ebdd90488b84241802000048894510488b842420020000668985b0000000488b842458020000668985b2000000488b8424d000000048894518488b842468020000488945084881c4780200004889e85b5dc34881c47802000031c05b5dc30f1f440000c30f1f440000662e0f1f840000000000554889e541574156415541544c8db560fcffff5352488d751050488d9d50fdffff4989fd4c89f74c8da540feffff4881ec68030000488b5508e8b2f7ffffb91e0000004889df4c89f6f348a5eb3a669085c07564488b45904885c074204989d84c89e9498b5500be01000000bf01000000ffd083f806744883f808753b4c89e64889dfe8e8f8ffff4c89e64889dfe8fde4ffff83f80575b8b805000000488b5dd84c8b65e04c8b6de84c8b75f04c8b7df8c9c30f1f440000b803000000ebde90488b8510feffff488b95e0fdffffb91e00000049c74510000000004889df4c89f6f348a548c1e83f4889de4c89ef4829c249895518e806f9ffff83f807759e4889de4c89f7e896faffff4c8b85e8fdffff488bbde0fdffff4c89c6e8d0feffff4889c14c89440508488b45c8488d4c0d08488b55d0488b5dd84c8b65e04c8b6de84c8b75f04c8b7df8488b6d004889ccc30f1f440000662e0f1f840000000000554889e541574156415541544989d55352488d9de0fdffff504989f6488d75104989fc4889df4881ece8010000488b5508e85af6ffff4d896c24184c8dadd0feffff488dbdd0feffffb91e0000004889de4d89742410f348a54c89ee4c89e7e8fcf8ffff83f8077416488b5dd84c8b65e04c8b6de84c8b75f04c8b7df8c9c34c89ee4889dfe8b6f9ffff4c8b8568ffffff488bbd60ffffff4c89c6e8f0fdffff4889c14c89440508488b45c8488d4c0d08488b55d0488b5dd84c8b65e04c8b6de84c8b75f04c8b7df8488b6d004889ccc30f1f440000662e0f1f840000000000554889e54157415641554154488d75105352488d9de0fdffff504989fd4c8da5d0feffff4889df4881ece8010000488b5508e879f5ffff49837d1000b91e0000004c89e74889def348a54c89e64c89ef750fe869f7ffff83f807740ce88f15f7ffe81af8ffffebef4c89e64889dfe8edf8ffff488b9568ffffff488bbd60ffffff4889d6e827fdffff4889c14889540508488b45c8488d4c0d08488b55d0488b5dd84c8b65e04c8b6de84c8b75f04c8b7df8488b6d004889ccc3660f1f440000554889e5415741564155415453524889fb504881ece801000048837f100074484c8da5e0fdffff488b5508488d75104c8dadd0feffff4c89e7e8b2f4ffff488dbdd0feffffb91e0000004c89e6f348a54c89ee4889dfe865f7ffff83f8077428e8cb14f7ff0f1f00e893fcffff488b5dd84c8b65e04c8b6de84c8b75f04c8b7df8c9c30f1f4400004c89ee4c89e7e80df8ffff4c8b8568ffffff488bbd60ffffff4c89c6e847fcffff4889c14c89440508488b45c8488d4c0d08488b55d0488b5dd84c8b65e04c8b6de84c8b75f04c8b7df8488b6d004889ccc3660f1f440000488b47084885c0740f4889febf01000000ffe00f1f440000f3c3660f1f440000554889e541574156415541544c8da560fdffff534989f6488d75104989ff4c89e74c8dad50feffff4881ec78020000488b5508e8b8f3ffffeb23660f1f4400004c89f64c89e741ffd785c0752683fb05743e4c89ee4c89e7e813f5ffff4c89ee4c89e7e828e1ffff85c089c374d283f80574cdb8030000004881c4780200005b415c415d415e415f5dc3660f1f440000b805000000ebe1660f1f840000000000488b420848394608488b4a08ba0100000019c048394e080f47c2c30f1f440000415741564989f6415541544589c555538d5c09014989d44883ec284439c348897c24087c44e986000000660f1f4400004863c389dd4d8d3cc44863c9498b17488b7c2408498d1ccc488b3341ffd685c0795e498b17488b034889138d5c2d014989074139dd7e4989e98d6b014139ed7ebf4863c3894c241c488b7c24084883c0014c8d0cc500000000498b14c44f8d7c0cf84c894c2410498b3741ffd685c04c8b4c24108b4c241c781689ddeb8b66904883c4285b5d415c415d415e415fc3904f8d3c0ce970ffffff0f1f8000000000415741564989f6415541544989fd55534889d54c8d62104883ec18488b42084889c1488944240848d1e889c34189cf83eb01781f0f1f400089d94589f84c89e24c89f64c89ef83eb01e8e2feffff83fbff75e58b5c240883eb014863c385db4d8d3cc47e2e0f1f00498b17488b45104189d831c94c89f64c89ef4983ef0848895510498947084c89e2e8a2feffff83eb0175d54883c4185b5d415c415d415e415fc30f1f4000662e0f1f8400000000004883ec084080ffff745683e7074080ff02743d761b4080ff0374254080ff047514b8080000004883c408c30f1f4400004084ff74ece8b611f7ff660f1f440000b8040000004883c408c3660f1f440000b8020000004883c408c3660f1f44000031c04883c408c3660f1f8400000000004883ec084080ffff743c83e7704080ff20743d76134080ff307525488b46104883c408c30f1f40004084ff74194080ff107413e84811f7ff0f1f8400000000004080ff5075ed31c04883c408c30f1f00488b46084883c408c30f1f80000000004883ec084080ffff743c83e7704080ff20743d76134080ff307525488b46104883c408c30f1f40004084ff74194080ff107413e8e810f7ff0f1f8400000000004080ff5075ed31c04883c408c30f1f00488b46084883c408c30f1f80000000004883ec084080ff504989ca0f841f01000089f983e10f80f90c0f87090100004c8d05c61502000fb6c9496304884901c041ffe00f1f4400004c8b02488d42084d85c0741789f983e17080f910480f45d64901d04084ff79034d8b004d89024883c408c30f1f4400004c0fbf02488d4202ebcd660f1f4400004889d04531c031c94883c001440fb658ff4d89d94183e17f49d3e183c1074d09c84584db78e2eb9f440fb702488d4202eb95660f1f440000448b02488d4204eb860f1f80000000004c6302488d4204e973ffffff0f1f40004889d04531c031c90f1f8400000000004883c001440fb658ff4d89d94183e17f49d3e183c1074d09c84584db78e283f93f0f8738ffffff4183e3400f842effffff49c7c1ffffffff49d3e14d09c8e921ffffff0f1f440000e8930ff7ff0f1f00488d42074883e0f84c8b00488d40084d89024883c408c3660f1f840000000000415641554989f54154554989fc534889fe4889d54883ec100fb7472066c1e8030fb6d889dfe8c6fdffff498d55084889e189df4889c64989c6e872feffff410fb77c2420488d5508488d4c24084c89f666c1ef03400fb6ffe853feffff488b44240848390424ba01000000488b74240819c0483934240f47c24883c4105b5d415c415d415ec3662e0f1f8400000000005553488d5f094889fd4883ec184889dfe8bb69f8ff0fb65508488d4c030180fa030f87c1000000807d097a741331c04883c4185b5dc3662e0f1f8400000000004883c1018079ff0078f6660f1f4400004883c1018079ff0078f680fa010f84ad0000000f1f4400004883c1018079ff0078f6488d5d0a662e0f1f8400000000004883c1018079ff0078f60fb6450a488d6c24083c52751ceb400f1f80000000003c4c75894883c3010fb6034883c1013c5274263c5075e90fb639488d510131f64889e94883c30183e77fe851fdffff4889c10fb6033c5275da0fb6014883c4185b5dc30f1f440000803908b8ff0000000f8539ffffff807901000f852fffffff4883c102e91effffff0f1f80000000004883c101e959ffffff0f1f800000000041574156415541544989d455534889fd4889f34889fe4883ec380fb7472066c1e803440fb6e84489efe812fcffff8b1385d20f84380100004989c0488d4424204531ff4889442410488d4424284889442418eb3d0f1f4000488b4308488b53104885c04889442420488954242874114c89e14829c14839d10f82db00000066908b03488d5c03048b0385c00f84df0000004863430485c074e7f6452004742b488d53044829c24c39fa4989d6741c4889d74d89f7e827feffff4889ee0fb6f84189c5e879fbffff4989c04585ed7489488b4c2410450fb6dd488d53084c89c64489df4c8944240844895c2404e80ffcffff488b4c24184489ef4889c283e70f31f6e8fafbffff448b5c24044489dfe8bdfaffff83f80748c7c2ffffffff4c8b44240877138d0cc500000000ba0100000048d3e24883ea01488b4424204885c20f843bffffff488b5424284c89e14829c14839d10f8327ffffff4883c4384889d85b5d415c415d415e415fc30f1f4400004883c43831c05b5d415c415d415e415fc30f1f440000662e0f1f840000000000415741564155415455534883ec588b4a28488b4710488b1f85c90f84900000004883fe2f0f8686000000488b4f20483b0d93e922004c8b47280f848d02000048890d82e922004c8905c3f92200488d0dfcf922004c8d0575fb22000f1f44000048c741d00000000048c741d800000000488949f84883c1304939c875e3488d0d9cf9220048c70509fb22000000000031edc742280000000048c74424080000000048890d70f92200eb1b660f1f4400004883fe190f867202000031ed48c7442408000000000fb77f186685ff0f84fe00000031c94531f64531ff4531e44531c04531edeb250f1f004181f950e574640f84d30000004183f9024c0f44c04883c1014883c0384839cf7446448b084183f90175d54989da4c0350104c8b0a4d39ca77db4d89d34c0358284d39d94d0f42f341bb010000004d0f42fa4d0f42e34883c1014883c0384839cf75bf0f1f4400004d85e4747b4883fe2f76484885ed0f845c01000048837c2408000f8450010000488b4528488b74240848894628488b0594f8220048892d8df822004889452848895d104c896d184c8945204c897d004c8975084d85ed742849035d10803b017437b8010000004883c4585b5d415c415d415e415fc30f1f004989c5e92dffffff4883c45831c05b5d415c415d415e415fc30f1f8000000000440fb663014889d64889d54489e7e815f9ffff488d4c2410488d53044489e74889c6e861f9ffff0fb67b024989c54080ffff740a807b033b0f8410010000488b4508488b742410488d7c2420488b550048c74424400000000048c744242000000000c6442440044889442428488b451048897424384889442430e809fcffff4885c0488945200f843dffffff488d7804486340044829c7e8ccfaffff0fb6d84889ee89dfe87ff8ffff488b7520488d4c241889df488d56084889c6e8c8f8ffff488b44241848894518e9fbfeffff662e0f1f840000000000488b2d51f72200e9c3feffff4c3b053df722000f8566fdffff4c8b1538f722004d85d20f84d1fdffff4c8b0a4c89d54531dbeb0a0f1f40004989eb4889cd488b4d004c8b45084c39c977094d39c80f87d30000004c09c17409488b4d284885c975d64c895c2408e999fdffffb8ffffffffe980feffff440fb6e74889ee4489e7e8cbf7ffff488d4c24184c89ea4889c64489e7e818f8ffff488b5424184885d20f844bfeffffa8030f85b8feffff486308488b7d004801d94839cf0f8230feffff4883ea014c8d2cd049634d004801d94839cf737b4885d20f84d600000031f6eb214e634408084883c1014901d84c39c70f82b80000004889ce4839f20f86b1000000488d0c1648d1e94c8d0ccd000000004e8d2c084d6345004901d84c39c773c04889caebd34939ea488b5d104c8b6d180f84abfdffff488b452848892d15f62200498943284c895528e993fdffff4d6365044901dc4963442404498d7c24044829c7e827f9ffff0fb6f84189c6e80cf6ffff89c0488d4c24204489f7498d54040883e70f31f6e823f7ffff496345004801c34889d848034424204839450073044c89652048895d18e942fdffff4839d6729ce8b707f7ff0f1f8000000000415541544989fc5553488d7e044889d34889f54883ec18486346044829c7e8adf8ffff440fb6e84c89e64489efe8fef5ffff488d55084889e14889c64489efe8acf6ffff48634304488d7b044829c7e87cf8ffff0fb6e84c89e689efe8cff5ffff488d5308488d4c240889ef4889c6e87cf6ffff488b44240848390424ba01000000488b5c240819c048391c240f47c24883c4185b5d415c415dc30f1f4400008b1685d20f8444010000415741564989f7415541544989fd55534531f64531e431c94883ec28488d44241848c74424080000000048890424eb7e660f1f44000066c1e8030fb6c04139c4740541804d2004488b0c24498d57084c89f689efe8edf5ffff89efe8b6f4ffff83f80748c7c2ffffffff77138d0cc500000000ba0100000048d3e24883ea01488b4424184889d94885c27413488344240801493945007604498945004889d9418b074d8d7c0704418b0785c074684963470485c074e9498d5f04410fb6ec4829c34839cb74814889dfe858f7ffff3dff0000004189c474560fb6e84c89ee89efe8a1f4ffff4989c6410fb7452089c26681e2f8076681faf8070f8537ffffff410fb6d4662507f8c1e20309d06641894520e931ffffff488b4424084883c4285b5d415c415d415e415fc30f1f40004883c42848c7c0ffffffff5b5d415c415d415e415fc331c0c30f1f440000662e0f1f84000000000041574156415541544989f455534889fe4889d34889fd4883ec280fb7472066c1e803440fb6f04489f7e802f4ffff8b134989c5488d442418488944240885d20f84e30000004531ffeb38660f1f44000048837b0800741a498b04244885c07411488b5008488d4a014889480848895cd0108b03488d5c03048b0385c00f84a60000004863430485c074e7f64520047430488d53044829c24c39fa74244889d748891424e828f6ffff4889ee0fb6f84189c6e87af3ffff488b14244989c54989d74585f6748b488b4c2408450fb6ce488d53084489cf4c89ee44890c24e80ff4ffff448b0c244489cfe8d3f2ffff83f80748c7c2ffffffff77138d0cc500000000ba0100000048d3e24883ea0148855424180f8540ffffff8b03488d5c03048b0385c00f855affffff4883c4285b5d415c415d415e415fc3660f1f84000000000041574156415541544989f455534889fd4883ec580fb64720a8010f8480000000a8040f85680100000fb7452066a9f8070f85180400004c8b4d184531c04d8b51084d39c276474b8d0c0248d1e9498b44c910488b7008488b78104939f47229e9010100000f1f4000498d140848d1ea498b44d110488b7008488b78104939f40f83eb0000004889d14939c872db31c04883c4585b5d415c415d415e415fc366908b5720c1ea0b89d14885c948894c24100f85ec010000a8020f84a2010000488b5f18488b334885f674434989cdeb14904883c308488b334901c54885f60f84aa0500004889efe875fcffff4883f8ff75dfb8f807000048c745200000000066894520488d053ff12200488945184c3965000f8776ffffff0fb64520a8010f85fdfeffffa8020f8405030000488b5d18488b334885f60f8452ffffff0f1f4400004c89e24889efe865f5ffff4885c00f853bffffff4883c308488b334885f675e0e928ffffff4889ca4c89d10f1f4400004801fe4939f40f8213ffffff4c8d42014989cae9b9feffff0f1f840000000000488b45184c8b700848894424104d85f60f84e7feffff488d4424404531ff48896c24184c896424204889442408488d44243848890424eb230f1f84000000000048034424404839c10f82b90400004c8d7b014d39f70f83a2feffff488b4424104b8d1c3e48d1eb488b6cd81048634504488d7d044829c7e884f3ffff488b742418440fb6e04189c54489e7e8d0f0ffff488b0c24488d55084889c64489e7e87df1ffff488b4c24084489ef31f683e70f4889c2e868f1ffff488b442438488b4c24204839c10f8375ffffff4989deeb82488b7718e8f7faffff4883f8ff48894424100f8479feffff488b4c241089c825ffff1f0089c24839d10f8429040000816520ff07000048837c2410000f846bfeffff488b442410488d1cc5100000004889dfe86900f8ff4885c048894424400f8448feffff48c74008000000004889dfe84b00f8ff4885c04889442448740848c7400800000000f64520020f84ae030000488b5d18488b134885d20f84f3030000488d4424404989c50f1f80000000004883c3084c89ee4889efe8a1fbffff488b134885d275e9488b4424404885c048894424184889442420740f488b4c2410483948080f85aa030000f6452004488d1d6bf9ffff751866f74520f807488d057cedffff488d1d95f1ffff480f44d84c8b6c24484d85ed0f8459030000488b4c2418488b41084885c048894424080f84540300004889c84c8d3da2ee22004c896424284883c01048c70424000000004989c64989c40f1f00488b04244d897cc5104883c0014839442408488904240f8454010000488d0565ee22004939c60f84340100004d89f7eb2b0f1f80000000004d29e74b8d443d004c8b781048c7401000000000488d0535ee22004939c70f8404010000498b7608498b174889efffd385c078cc4983c608eb8e660f1f440000488b75184c89e24889efe871f2ffff4883c4585b5d415c415d415e415fc3488b4d1866c1e8034889ee4189c60fb6c089c7894424104889cbe883eeffff4c8b6b084989c74889d94d85ed0f840dfcffff4489f031db4989ce83e00f4c897c24204c89ed89442418488d4424404889442408488d44243848890424eb1f0f1f400048034424404939c40f8210020000498d5f014839eb0f83c2fbffff4c8d441d00488b0c24488b7424208b7c241049d1e84f8b6cc6104d89c7498d5508e8bfeeffff488b4c24088b7c241831f64889c2e8aceeffff488b4424384939c473a24c89fdebaf0f1f4400004c8d3d21ed22004983c608e990feffff4c8b64242831f631c931c04c8b442408488b542418eb139048897cca104883c1014883c0014939c0741849837cc51000488b7cc21075e149897cf5104883c601ebdf488b442440488b5424484889442418488b44242048894808488b4c241849897508488b420848034108483b4424100f85560100004889de4889efe827ecffff488b4424484889442410488b40084885c048894424080f849a0000004c8b7c244048892c244c89642418498d04c74d8b6f084989c6669048836c240801488b4c24104d85ed488b4424084c8b64c1107518e98900000090498b44ef104885ed4989ed498944ee107476498d6dff4c89e2488b3c24498b74ef10ffd385c07fd8488b4c24084983ee08498d440d024885c94d8924c775a1488b442410488b2c244c8b642418488b400849014708488b4424484889442410488b7c2410e85700f8ff488b442440488b551848891048894518804d2001e98bfaffff660f1f4400004531edeb9b4c896c2410e9e1fbffff4889e8e9f0f9ffff488d442440488b55184889ef4889c6e80df8ffffe96ffcffff8b5520c1e00b81e2ff07000009d0894520e9c8fbffff4c89e8e9b9f9ffff488b5424184889de4889efe8eaeaffffeb814c89ea31f631c9e985feffffe877fdf6ff0f1f800000000048833da0bf220000b8f807000048c746200000000048c706ffffffff48c746080000000048c746100000000048897e1866894620743253488d3da2ec22004889f3e87a1fb6ff488b05c3ec220048891dbcec2200488d3d85ec2200488943285be95b1fb6ff0f1f00488b05a1ec22004889359aec220048894628c30f1f4400004885ff747d448b074585c0747548833d13bf220000b8f807000048c746200000000048c706ffffffff4889560848894e1048897e1866894620743553488d3d1dec22004889f3e8f51eb6ff488b053eec220048891d37ec2200488d3d00ec2200488943285be9d61eb6ff660f1f440000488b0519ec220048893512ec220048894628f3c36690662e0f1f8400000000004885ff74068b0785c07505f3c30f1f00e9dbfeffff90662e0f1f8400000000008b0785c0750af3c30f1f840000000000534889fbbf30000000e8d2faf7ff4889df4889c65be9a6feffff660f1f44000048c7462000000000c646200266814e20f80748833d2ebe22000048c706ffffffff4889560848894e1048897e18743153488d3d49eb22004889f3e8211eb6ff488b056aeb220048891d63eb2200488d3d2ceb2200488943285be9021eb6ff6690488b0549eb220048893542eb220048894628c30f1f00662e0f1f84000000000031c931d2e977ffffff0f1f8000000000534889fbbf30000000e822faf7ff4889df31c931d25b4889c6e952ffffff66904885ff415455530f84e30000008b0785c00f84d90000004c8b257abd22004889fd4d85e4740c488d3da3ea2200e87e1db6ff488b05c7ea22004885c07424483b68187515e9c90000000f1f8000000000483b6b18747a4889d8488b58284885db75ee488b1d8fea22004885db7472488d0583ea2200eb1f660f1f840000000000488b5318483b2a7477488d4328488b5b284885db744af643200175e4483b6b1875e7488b53284889104d85e47411488d3d1bea2200e8f61cb6ff4885db745f4889d85b5d415cc3660f1f8400000000004883c028ebcc662e0f1f8400000000004d85e4743931dbebc50f1f800000000031db4889d85b5d415cc3660f1f440000488b5328488910488b7b18e8a0fcf7ffeb974889c3488d05e4e92200eb84e83dfaf6ff0f1f00662e0f1f840000000000e9cbfeffff90662e0f1f8400000000008b0785c0750af3c30f1f8400000000004883ec08e8a7feffff4883c4084889c7e94bfcf7ff90662e0f1f840000000000415641554989fd4154554889f5534883ec304c8b250fbc22004d85e4740c488d3d3be92200e8161cb6ff488b1d57e922004885db7517e9b50000000f1f440000488b5b284885db0f84a30000004c3b2b72ee4c89ee4889dfe823f5ffff4885c04989c60f84870000004d85e4740c488d3debe82200e8c61bb6ff488b4308f643200448894500488b4310488945080f85410100000fb7432066c1e8030fb6c0440fb6e04889de4489e7e8c2e7ffff498d56084889e14889c64489e7e870e8ffff488b0424488945104c89f04883c4305b5d415c415d415ec3488d35a9e82200904d85f64889532848891e0f8579ffffff488b1d99e822004885db7457488b43284c89ee4889df48890583e82200e86ef4ffff488b156fe822004989c64885d274b7488b0b483b0a760cebad0f1f44000048390a72ab488d7228488b52284885d275ee4d85f64889532848891e74a2e916ffffff4d85e4740c488d3d01e82200e8dc1ab6ff488d3d55ecffff4889e64c892c2448c74424080000000048c74424100000000048c74424180000000048c744242000000000c744242801000000e87d04000085c07843488b4424204885c00f8416ffffff488b54240848895500488b54241048895508488b54241848895510e9f6feffff49634604498d7e044829c7e82be9ffffe9b5feffff31c0e9dafeffff662e0f1f8400000000000f1f4400004883ec084080ffff742689f883e0703c20744d762b3c4074373c5074133c3075274889f74883c408e953deffff0f1f0031c04883c408c3660f1f84000000000084c074ec3c1074e8e8a3f7f6ff0f1f004889f74883c408e9e4ddffff0f1f40004889f74883c408e924deffff0f1f40004883ec084080ff504989ca0f841f01000089f983e10f80f90c0f87090100004c8d05bafc01000fb6c9496304884901c041ffe00f1f4400004c8b02488d42084d85c0741789f983e17080f910480f45d64901d04084ff79034d8b004d89024883c408c30f1f4400004c0fbf02488d4202ebcd660f1f4400004889d04531c031c94883c001440fb658ff4d89d94183e17f49d3e183c1074d09c84584db78e2eb9f440fb702488d4202eb95660f1f440000448b02488d4204eb860f1f80000000004c6302488d4204e973ffffff0f1f40004889d04531c031c90f1f8400000000004883c001440fb658ff4d89d94183e17f49d3e183c1074d09c84584db78e283f93f0f8738ffffff4183e3400f842effffff49c7c1ffffffff49d3e14d09c8e921ffffff0f1f440000e853f6f6ff0f1f00488d42074883e0f84c8b00488d40084d89024883c408c3660f1f84000000000083ff01b8030000007406f3c30f1f400083e6027506b808000000c3415741564c89c7415541544d89c655534883ec684c89042448894c2408e833dcffff4885c04889c30f847101000031c04d85f674084c89f7e828dcffff48894424300fb63b4c8d63014080ffff0f8482010000488b3424400fb6df89dfe8c3fdffff488d4c24384c89e24889c689dfe821feffff4989c4410fb60424498d7424013cff884424580f84a201000031ff31c90f1f40004883c6010fb656ff4889d083e07f48d3e083c1074809c784d278e54801f748897c24480fb6064c8d7e0131ff31c988442459660f1f4400004983c701410fb677ff4889f083e07f48d3e083c1074809c74084f678e34c01ff48897c2450488b3c24e81adbffff4c397c2450488d58ff0f86950000004c8d7424184c8d6c24204c8d6424280f1f40000fb66c245931f689efe8fafcffff4c89fa4c89f189ef4889c6e85afdffff0fb66c24594989c731f689efe8d9fcffff4c89fa4c89e989ef4889c6e839fdffff440fb67c24594889c531f64489ffe8b6fcffff4489ff4c89e14889ea4889c6e815fdffff4989c766904983c70141807fff0078f5488b44241848034424304839c37316b8080000004883c4685b5d415c415d415e415fc3669048034424204839c372204c397c24500f8753ffffffebd3660f1f8400000000004889442438e998feffff488b742428b8080000004885f674b64889f348035c243874a74c8b3424488b54240831f64c89f7e89ad9ffff31d2be010000004c89f7e88bd9ffff4889de4c89f7e820daffffb807000000e975ffffff48c744244800000000e97bfeffff0f1f84000000000041564155b8000000004154554989f4534889fd4883ec404885c07407bf00b16c00ffd04c8b2db6c722008b1db8c722004d85ed7528e996000000660f1f4400004c89e2be400000004889e7ffd585c04189c6757f4d8b6d184d85ed7473498b7d28488b0748890424488b470848c7442438000000004889442408488b87a002000048894424100fb787b00200006689442418488b052fc7220048894424204829d84889442428488b87480400004885c048894424307489e8145bfdff4889442438e97affffff662e0f1f8400000000004531f6b8000000004885c07407bf00b16c00ffd04883c4404489f05b5d415c415d415ec300000000000000000000000053488b1db8e622004885db743c0f1f00488b7b08488b034881fff0134a004889059be622007405e8f4f4f7ff488b7b10e8ebf4f7ff4889dfe8e3f4f7ff488b1d7ce622004885db75c7488b3d68b522004881ff08144a007405e8c2f4f7ff488b3d03d52200be00e04100e84130faff488b3dead4220048c705e7d42200000000004885ff7421662e0f1f840000000000488b1f48891dc6d42200e881f4f7ff4885db4889df75e95bc30f1f800000000055534883ec08488b1d3bd522004885db7509eb2e0f1f40004889eb488b7b104885ff7405e827000000488b3b488b6b18e83bf4f7ff4889dfe833f4f7ff4885ed75d64883c4085b5dc30f1f8000000000415541544989fd55534883ec08488bbfb80000004881ffe01a4a007405e8be71f6ff4531e431ed49837d7800751feb48488b7b084883ffff7405e8b15efaff4883c5014983c41849396d78762b4c89e349035d70488b3be8c4f3f7ff488b7b10488d47ff4883f8fd77c6e8b1f3f7ffebbf0f1f8000000000498b7d70e89ff3f7ffb8000000004885c0740c498dbd80000000e88913b6ff498b7d20e880f3f7ff418b450885c07520498b7d00e86ff3f7ff4883c4084c89ef5b5d415c415de95df3f7ff0f1f440000498b7510498b7d00e84b12faffebda660f1f84000000000053488b1db8d82200c605b9d82200014885db74230f1f4000488bbbb0000000e81cf3f7ff488b9ba80000004885db48891d8bd8220075e15bc30f1f8000000000415541544989fd55534883ec08488b4f18488b57104885c9745c31db0f1f4000488d045b488d2c8348c1e503488d042a8b701085f67e364c8b60404d85e4742d48833800747649c1cc11644c332425300000004c89e7e82598fdff4889ef49037d1041ffd4498b5510498b4d184883c3014839cb72aa4885d2742f488b7a18e87cf2f7ff498b4518488d1440488d0490498b5510488d04c2488b78b8e85ff2f7ff498b7d10e856f2f7ff4883c4084c89ef5b5d415c415de944f2f7ffb9b0534a00bab9000000be58534a00bf80534a00e81b2bf6ff90662e0f1f840000000000415741564155415455534889fb4883ec08488b6f204885ed0f84e70100004c8b65204d85e40f84cd0000004d8b6c24204d85ed0f84f70300004d8b75204d85f67456498b7e204885ff7405e8b0ffffff498b7e304885ff741fe8a2ffffff498b46184d8b7e2880382f741a0f1f4400004d85ff4d89fe7420498b46184d8b7e2880382f75eb4c89f74d89fee890f1f7ff4d85ff75e30f1f004d8b75304d85f60f8487060000498b7e204885ff7405e84dffffff498b7e304885ff7420e83fffffff498b46184d8b7e2880382f741b66904d85ff4d89fe0f8450060000498b46184d8b7e2880382f75e74c89f7e82ff1f7ffebdd0f1f4400004c8b65304d85e40f84eb0000004d8b6c24204d85ed0f849d0300004d8b75204d85f67454498b7e204885ff7405e8d6feffff498b7e304885ff741de8c8feffff498b46184d8b7e2880382f74180f1f004d85ff4d89fe7420498b46184d8b7e2880382f75eb4c89f74d89fee8b8f0f7ff4d85ff75e30f1f004d8b75304d85f60f84df050000498b7e204885ff7405e875feffff498b7e304885ff7428e867feffff498b46184d8b7e2880382f7423662e0f1f8400000000004d85ff4d89fe0f84a0050000498b46184d8b7e2880382f75e74c89f7e84ff0f7ffebdd0f1f4400004889ef4c89e5e83df0f7ff4d85e4741d0f1f840000000000488b45184c8b652880382f74db4d85e44c89e575eb488b6b304885ed0f84ee0000004c8b65204d85e40f84090100004d8b6c24204d85ed0f84630400004d8b75204d85f67452498b7e204885ff7405e8bcfdffff498b7e304885ff741be8aefdffff498b46184d8b7e2880382f7416904d85ff4d89fe7420498b46184d8b7e2880382f75eb4c89f74d89fee8a0eff7ff4d85ff75e30f1f004d8b75304d85f60f8427050000498b7e204885ff7405e85dfdffff498b7e304885ff7420e84ffdffff498b46184d8b7e2880382f741b66904d85ff4d89fe0f84f0040000498b46184d8b7e2880382f75e74c89f7e83feff7ffebdd0f1f4400004889df4889ebe82deff7ff4885ed741d0f1f840000000000488b4318488b6b2880382f74db4885ed4889eb75eb4883c4085b5d415c415d415e415fc30f1f40004c8b65304d85e40f84e70000004d8b6c24204d85ed0f845d0200004d8b75204d85f67454498b7e204885ff7405e8a6fcffff498b7e304885ff741de898fcffff498b46184d8b7e2880382f74180f1f004d85ff4d89fe7420498b46184d8b7e2880382f75eb4c89f74d89fee888eef7ff4d85ff75e30f1f004d8b75304d85f60f846f040000498b7e204885ff7405e845fcffff498b7e304885ff7428e837fcffff498b46184d8b7e2880382f7423662e0f1f8400000000004d85ff4d89fe0f8430040000498b46184d8b7e2880382f75e74c89f7e81feef7ffebdd0f1f4400004889efe810eef7ff4d85e44c89e50f84e4feffff488b45184c8b652880382f75e7ebdd0f1f4400004d8b6c24304d85ed7462498b7d204885ff7405e8b8fbffff498b7d304885ff7417e8aafbffffeb100f1f8400000000004d85f64d89f57434498b45184d8b752880382f75eb4c89efe8a3edf7ffebe1904c89e7e898edf7ff0f1f8400000000004d85ed4d89ec0f845cfcffff498b4424184d8b6c242880382f75e5ebd30f1f004d8b6c24304d85ed0f84ce0000004d8b75204d85f67451498b7e204885ff7405e82bfbffff498b7e304885ff741ae81dfbffff498b46184d8b7e2880382f74154d85ff4d89fe7420498b46184d8b7e2880382f75eb4c89f74d89fee810edf7ff4d85ff75e30f1f004d8b75304d85f60f84c7020000498b7e204885ff7405e8cdfaffff498b7e304885ff7420e8bffaffff498b46184d8b7e2880382f741b66904d85ff4d89fe0f8490020000498b46184d8b7e2880382f75e74c89f7e8afecf7ffebdd0f1f4400004c89e7e8a0ecf7ff4d85ed4d89ec0f8464fcffff498b4424184d8b6c242880382f75e5ebdb0f1f004d8b6c24304d85ed0f84ce0000004d8b75204d85f67451498b7e204885ff7405e83bfaffff498b7e304885ff741ae82dfaffff498b46184d8b7e2880382f74154d85ff4d89fe7420498b46184d8b7e2880382f75eb4c89f74d89fee820ecf7ff4d85ff75e30f1f004d8b75304d85f60f8477010000498b7e204885ff7405e8ddf9ffff498b7e304885ff7420e8cff9ffff498b46184d8b7e2880382f741b66904d85ff4d89fe0f8440010000498b46184d8b7e2880382f75e74c89f7e8bfebf7ffebdd0f1f4400004c89e7e8b0ebf7ff4d85ed4d89ec0f84a0fdffff498b4424184d8b6c242880382f75e5ebdb0f1f004d8b6c24304d85ed7462498b7d204885ff7405e858f9ffff498b7d304885ff7417e84af9ffffeb100f1f8400000000004d85f64d89f57434498b45184d8b752880382f75eb4c89efe843ebf7ffebe1904c89e7e838ebf7ff0f1f8400000000004d85ed4d89ec0f842cfcffff498b4424184d8b6c242880382f75e5ebd30f1f004c89efe808ebf7ff0f1f8400000000004d85f64d89f50f8404fdffff498b45184d8b752880382f75e7ebd50f1f4400004c89efe8d8eaf7ff0f1f8400000000004d85f64d89f50f8454fdffff498b45184d8b752880382f75e7ebd50f1f4400004c89efe8a8eaf7ff0f1f8400000000004d85f64d89f50f84f0feffff498b45184d8b752880382f75e7ebd50f1f4400004c89efe878eaf7ff0f1f8400000000004d85f64d89f50f84d4feffff498b45184d8b752880382f75e7ebd50f1f4400004c89efe848eaf7ff0f1f8400000000004d85f64d89f50f84a0fdffff498b45184d8b752880382f75e7ebd50f1f4400004c89efe818eaf7ff0f1f8400000000004d85f64d89f50f8484fdffff498b45184d8b752880382f75e7ebd50f1f440000415741564155415455534883ec08e8cd090000e868f5ffff488b3da9dc22004885ff740abe00e04100e85225faff488b1d83dc22004885db0f84c7010000488b6b204885ed0f84c50000004c8b65204d85e40f84980300004d8b6c24204d85ed0f84ef0100004d8b75204d85f67449498b7e204885ff7405e853f7ffff498b7e304885ff7412e845f7ffffeb0b0f1f004d85ff4d89fe7420498b46184d8b7e2880382f75eb4c89f74d89fee840e9f7ff4d85ff75e30f1f004d8b75304d85f60f847b010000498b7e204885ff7405e8fdf6ffff498b7e304885ff7418e8eff6ffffeb110f1f4400004d85ff4d89fe0f844c010000498b46184d8b7e2880382f75e74c89f7e8e7e8f7ffebdd0f1f440000488b6b304885ed0f84d30000004c8b65204d85e40f84960400004d8b6c24204d85ed0f84fd0100004d8b75204d85f67447498b7e204885ff7405e881f6ffff498b7e304885ff7410e873f6ffffeb09904d85ff4d89fe7420498b46184d8b7e2880382f75eb4c89f74d89fee870e8f7ff4d85ff75e30f1f004d8b75304d85f60f848b010000498b7e204885ff7405e82df6ffff498b7e304885ff7418e81ff6ffffeb110f1f4400004d85ff4d89fe0f845c010000498b46184d8b7e2880382f75e74c89f7e817e8f7ffebdd0f1f4400004889df4889ebe805e8f7ff4885ed7415488b4318488b6b2880382f74e34885ed4889eb75eb488b3dbcce22004885ff0f84fb0600004883c408be00ed49005b5d415c415d415e415fe95323faff0f1f004c89ef4d89f5e8b5e7f7ff4d85f67415498b45184d8b752880382f74e34d85f64d89f575eb4d8b6c24304d85ed0f84690600004d8b75204d85f6744c498b7e204885ff7405e856f5ffff498b7e304885ff7415e848f5ffffeb0e660f1f4400004d85ff4d89fe7420498b46184d8b7e2880382f75eb4c89f74d89fee840e7f7ff4d85ff75e30f1f004d8b75304d85f60f8433060000498b7e204885ff7405e8fdf4ffff498b7e304885ff7418e8eff4ffffeb110f1f4400004d85ff4d89fe0f8404060000498b46184d8b7e2880382f75e74c89f7e8e7e6f7ffebdd0f1f4400004c89ef4d89f5e8d5e6f7ff4d85f67415498b45184d8b752880382f74e34d85f64d89f575eb4d8b6c24304d85ed0f84290500004d8b75204d85f6744c498b7e204885ff7405e876f4ffff498b7e304885ff7415e868f4ffffeb0e660f1f4400004d85ff4d89fe7420498b46184d8b7e2880382f75eb4c89f74d89fee860e6f7ff4d85ff75e30f1f004d8b75304d85f60f84f3040000498b7e204885ff7405e81df4ffff498b7e304885ff7418e80ff4ffffeb110f1f4400004d85ff4d89fe0f84c4040000498b46184d8b7e2880382f75e74c89f7e807e6f7ffebdd0f1f4400004c8b65304d85e40f84cf0000004d8b6c24204d85ed0f84fa0000004d8b75204d85f6744c498b7e204885ff7405e8aef3ffff498b7e304885ff7415e8a0f3ffffeb0e660f1f4400004d85ff4d89fe7420498b46184d8b7e2880382f75eb4c89f74d89fee898e5f7ff4d85ff75e30f1f004d8b75304d85f60f8483000000498b7e204885ff7405e855f3ffff498b7e304885ff7414e847f3ffffeb0d0f1f4400004d85ff4d89fe7458498b46184d8b7e2880382f75eb4c89f7e843e5f7ffebe1904889efe838e5f7ff0f1f8400000000004d85e44c89e50f8444fcffff488b45184c8b652880382f75e7ebd50f1f4400004c89ef4d89f5e805e5f7ff4d85f67415498b45184d8b752880382f74e34d85f64d89f575eb4d8b6c24304d85ed0f84f90200004d8b75204d85f6744c498b7e204885ff7405e8a6f2ffff498b7e304885ff7415e898f2ffffeb0e660f1f4400004d85ff4d89fe7420498b46184d8b7e2880382f75eb4c89f74d89fee890e4f7ff4d85ff75e30f1f004d8b75304d85f60f84c3020000498b7e204885ff7405e84df2ffff498b7e304885ff7418e83ff2ffffeb110f1f4400004d85ff4d89fe0f8494020000498b46184d8b7e2880382f75e74c89f7e837e4f7ffebdd0f1f4400004c8b65304d85e40f84cf0000004d8b6c24204d85ed0f84fa0000004d8b75204d85f6744c498b7e204885ff7405e8def1ffff498b7e304885ff7415e8d0f1ffffeb0e660f1f4400004d85ff4d89fe7420498b46184d8b7e2880382f75eb4c89f74d89fee8c8e3f7ff4d85ff75e30f1f004d8b75304d85f60f8483000000498b7e204885ff7405e885f1ffff498b7e304885ff7414e877f1ffffeb0d0f1f4400004d85ff4d89fe7458498b46184d8b7e2880382f75eb4c89f7e873e3f7ffebe1904889efe868e3f7ff0f1f8400000000004d85e44c89e50f8454fbffff488b45184c8b652880382f75e7ebd50f1f4400004c89ef4d89f5e835e3f7ff4d85f67415498b45184d8b752880382f74e34d85f64d89f575eb4d8b6c24304d85ed0f84c90000004d8b75204d85f6744c498b7e204885ff7405e8d6f0ffff498b7e304885ff7415e8c8f0ffffeb0e660f1f4400004d85ff4d89fe7420498b46184d8b7e2880382f75eb4c89f74d89fee8c0e2f7ff4d85ff75e30f1f004d8b75304d85f60f8493000000498b7e204885ff7405e87df0ffff498b7e304885ff7414e86ff0ffffeb0d0f1f4400004d85ff4d89fe7468498b46184d8b7e2880382f75eb4c89f7e86be2f7ffebe1660f1f8400000000004c89e7e858e2f7ff0f1f8400000000004d85ed4d89ec0f84f0feffff498b4424184d8b6c242880382f75e5ebd30f1f004c89efe828e2f7ff0f1f8400000000004d85f64d89f574d4498b45184d8b752880382f75ebebd9660f1f8400000000004c89e7e8f8e1f7ff0f1f8400000000004d85ed4d89ec0f84c0fcffff498b4424184d8b6c242880382f75e5ebd30f1f004c89efe8c8e1f7ff0f1f8400000000004d85f64d89f574d4498b45184d8b752880382f75ebebd9660f1f8400000000004c89e7e898e1f7ff0f1f8400000000004d85ed4d89ec0f8454fdffff498b4424184d8b6c242880382f75e5ebd30f1f004c89efe868e1f7ff0f1f8400000000004d85f64d89f574d4498b45184d8b752880382f75ebebd9660f1f8400000000004c89e7e838e1f7ff0f1f8400000000004d85ed4d89ec0f8424fbffff498b4424184d8b6c242880382f75e5ebd30f1f004c89efe808e1f7ff0f1f8400000000004d85f64d89f574d4498b45184d8b752880382f75ebebd9660f1f8400000000004883c4085b5d415c415d415e415fc390488b3db9d322004881ff60594a0074104885ff740be9b6e0f7ff660f1f440000f3c3662e0f1f8400000000000f1f40008b0582c72200488b3d8bc7220085c075174885ff741a488b3573c72200e97efff9ff660f1f440000e973e0f7ff0f1f00f3c3662e0f1f8400000000000f1f4000534889fb488b7f104885ff7405e8ee86fdff4889df5be945e0f7ff0f1f4400004883ec08488b3d3dc72200bea0ff4900e8bb1bfaff48c70528c72200000000004883c408c3662e0f1f840000000000905553b8000000004883ec084885c00f848700000048c7c0f86093ff488b1d06d3220064488b0048813840774b00742b488b3d32ba220048c705a7b9220040774b004881ffbd4a4b007410e8c1dff7ff48c7050eba2200bd4a4b004885db750ceb3a0f1f80000000004889eb488b7b104885ff740e4881ff40774b007405e80eeffaff488b3b488b6b18e882dff7ff4889dfe87adff7ff4885ed75cdb8010000004885c00f849200000048c7c0b0ffffff488b1d59d2220064488b00488138206c4a00743ab800f5440048c705fcb82200206c4a004885c07405e832f4faff488b3d6bb922004881ffbd4a4b007410e81ddff7ff48c70552b92200bd4a4b004885db7508eb360f1f004889eb488b7b104885ff740e4881ff206c4a007405e86eeefaff488b3b488b6b18e8e2def7ff4889dfe8dadef7ff4885ed75cdb8010000004885c00f848a00000048c7c0c0ffffff488b1dd9d1220064488b0048813820664b00742b488b3d05b9220048c7057ab8220020664b004881ffbd4a4b007410e88cdef7ff48c705e1b82200bd4a4b004885db750feb3d662e0f1f8400000000004889eb488b7b104885ff740e4881ff20664b007405e8d6edfaff488b3b488b6b18e84adef7ff4889dfe842def7ff4885ed75cdb8010000004885c00f848200000048c7c0c8ffffff488b1d29d1220064488b00488138e0674b00742b488b3d55b8220048c705cab72200e0674b004881ffbd4a4b007410e8f4ddf7ff48c70531b82200bd4a4b004885db7507eb3566904889eb488b7b104885ff740e4881ffe0674b007405e846edfaff488b3b488b6b18e8baddf7ff4889dfe8b2ddf7ff4885ed75cdb8000000004885c00f848200000048c7c0f86093ff488b1da1d0220064488b00488138406e4b00742b488b3dcdb7220048c70542b72200406e4b004881ffbd4a4b007410e864ddf7ff48c705a9b72200bd4a4b004885db7507eb3566904889eb488b7b104885ff740e4881ff406e4b007405e8b6ecfaff488b3b488b6b18e82addf7ff4889dfe822ddf7ff4885ed75cdb8000000004885c00f848200000048c7c0f86093ff488b1d29d0220064488b00488138a0654b00742b488b3d55b7220048c705cab62200a0654b004881ffbd4a4b007410e8d4dcf7ff48c70531b72200bd4a4b004885db7507eb3566904889eb488b7b104885ff740e4881ffa0654b007405e826ecfaff488b3b488b6b18e89adcf7ff4889dfe892dcf7ff4885ed75cdb8000000004885c00f848200000048c7c0f86093ff488b1da9cf220064488b0048813800724b00742b488b3dd5b6220048c7054ab6220000724b004881ffbd4a4b007410e844dcf7ff48c705b1b62200bd4a4b004885db7507eb3566904889eb488b7b104885ff740e4881ff00724b007405e896ebfaff488b3b488b6b18e80adcf7ff4889dfe802dcf7ff4885ed75cdb8000000004885c00f848200000048c7c0f86093ff488b1d21cf220064488b0048813880724b00742b488b3d4db6220048c705c2b5220080724b004881ffbd4a4b007410e8b4dbf7ff48c70529b62200bd4a4b004885db7507eb3566904889eb488b7b104885ff740e4881ff80724b007405e806ebfaff488b3b488b6b18e87adbf7ff4889dfe872dbf7ff4885ed75cdb8000000004885c00f848200000048c7c0f86093ff488b1d99ce220064488b0048813840734b00742b488b3dc5b5220048c7053ab5220040734b004881ffbd4a4b007410e824dbf7ff48c705a1b52200bd4a4b004885db7507eb3566904889eb488b7b104885ff740e4881ff40734b007405e876eafaff488b3b488b6b18e8eadaf7ff4889dfe8e2daf7ff4885ed75cdb8000000004885c00f848200000048c7c0f86093ff488b1d11ce220064488b0048813800744b00742b488b3d3db5220048c705b2b4220000744b004881ffbd4a4b007410e894daf7ff48c70519b52200bd4a4b004885db7507eb3566904889eb488b7b104885ff740e4881ff00744b007405e8e6e9faff488b3b488b6b18e85adaf7ff4889dfe852daf7ff4885ed75cdb8000000004885c00f848200000048c7c0f86093ff488b1d89cd220064488b0048813880744b00742b488b3db5b4220048c7052ab4220080744b004881ffbd4a4b007410e804daf7ff48c70591b42200bd4a4b004885db7507eb3566904889eb488b7b104885ff740e4881ff80744b007405e856e9faff488b3b488b6b18e8cad9f7ff4889dfe8c2d9f7ff4885ed75cdb8000000004885c00f848200000048c7c0f86093ff488b1d01cd220064488b0048813880764b00742b488b3d2db4220048c705a2b3220080764b004881ffbd4a4b007410e874d9f7ff48c70509b42200bd4a4b004885db7507eb3566904889eb488b7b104885ff740e4881ff80764b007405e8c6e8faff488b3b488b6b18e83ad9f7ff4889dfe832d9f7ff4885ed75cd488b3d96b322004881ffbd4a4b007410e818d9f7ff48c7057db32200bd4a4b004883c4085b5de90200000066904155415455534883ec084c8b254fc022004d85e4746b662e0f1f840000000000498b7c24084d8b2c24bd0100000031dbe8cbd8f7ffeb10660f1f8400000000004883c30183c5014883fb0674f3498b7cdc104885ff7415488b47204885c07407ffd0498b7cdc10e894d8f7ff83fd0d75cf4c89e74d89ece884d8f7ff4d85ed759f488b05a0c0220048c705cdbf2200000000004885c07457483d10c86c00755a8b3576c02200488b3d63c0220048c70570c0220000000000e843f7f9ff488b1d5cc022004885db74260f1f80000000008b730c488b3b488b6b10e821f7f9ff4889df4889ebe816d8f7ff4885ed75e14883c4085b5d415c415dc3b9606b4a00ba17020000be106b4a00bf1e6b4a00e8dd10f6ff662e0f1f8400000000000f1f004883ec08be0100000031c0833d8ac9220000740cf00fb13504c02200750beb230fb135f9bf2200741a488d3df0bf22004881ec80000000e8c41ffaff4881c480000000488b3dd6bd220048393dbfbf220075154885ff7410e883d7f7ff48c705a8bf22000000000048c705adbd220000000000833d22c9220000740bf0ff0d9dbf2200750aeb22ff0d93bf2200741a488d3d8abf22004881ec80000000e88e1ffaff4881c480000000488b3d68bf2200be00e04100e8b612faff48c70553bf2200000000004883c408c3660f1f440000488b0579ca22004885c0744e555331ed4883ec080f1f4000488b3c284885ff741e0f1f8000000000488b1fe8e0d6f7ff4885db4889df75f0488b0541ca22004883c5084881fdf807000075cc4883c4084889c75b5de9b6d6f7fff3c30f1f4000488b3d41bf2200534885ff741a0f1f00488b1f48891d2ebf2200e891d6f7ff4885db4889df75e9488b3d12bf2200e87dd6f7ff48c70502bf2200000000005bc341574156b8010000004155415455534883ec28488b2f4885ed0f84890300004c8b65084889fb4d85e40f84380300004d8b6c24084d85ed0f84e00200004d8b75084d85f60f84830200004d8b7e084d85ff0f8425020000498b4f084885c90f84c8010000488b71084885f60f846d0100004c8b46084d85c00f840a010000498b78084885ff0f849c0000004883c7084c89442418488974241048894c2408e85dffffff84c00f84150300004c8b442418488b4c2408488b742410498b78084c8b0f4d85c9743231c048837f1800488d5728741ce9e80200000f1f8400000000004883c21048837af0000f85d10200004883c0014c39c875e84c89442418488974241048894c2408e864d5f7ff4c8b442418488b742410488b4c240849c74008000000004c8b4608498b384885ff743131c04983781800498d5028741be97f0200000f1f80000000004883c21048837af0000f85690200004883c0014839f875e84c89c7488974241048894c2408e8fed4f7ff488b742410488b4c240848c7460800000000488b7108488b3e4885ff743031c048837e1800488d5628741ae91e020000660f1f4400004883c21048837af0000f85090200004883c0014839f875e84889f748894c2408e8a3d4f7ff488b4c240848c7410800000000498b4f08488b314885f6743231c04883791800488d5128741ce9c80100000f1f8400000000004883c21048837af0000f85b10100004883c0014839f075e84889cfe850d4f7ff49c74708000000004d8b7e08498b0f4885c9743431c049837f1800498d5728741ee97a010000662e0f1f8400000000004883c21048837af0000f85610100004883c0014839c175e84c89ffe800d4f7ff49c74608000000004d8b7508498b0e4885c9743431c049837e1800498d5628741ee92a010000662e0f1f8400000000004883c21048837af0000f85110100004883c0014839c875e84c89f7e8b0d3f7ff49c74508000000004d8b6c2408498b4d004885c9743231c049837d1800498d5528741ce9d80000000f1f8400000000004883c21048837af0000f85c10000004883c0014839c875e84c89efe860d3f7ff49c7442408000000004c8b6508498b0c244885c9742e31c049837c241800498d5424287416e986000000660f1f4400004883c21048837af00075754883c0014839c875ec4c89e7e814d3f7ff48c7450800000000488b2b488b4d004885c9742431c048837d1800488d5528740eeb41904883c21048837af00075354883c0014839c875ec4889efe8d4d2f7ff48c70300000000b8010000004883c4285b5d415c415d415e415fc3660f1f8400000000004883c42831c05b5d415c415d415e415fc30f1f440000662e0f1f8400000000004155415455534883ec08488b3d17c52200483b3de8c42200741a660f1f440000488b1fe868d2f7ff48391dd1c422004889df75ec48833d04a42200000f847d000000488b2d07a422004885ed74636690488b4538488b780848c74008000000004885ff7513eb29660f1f8400000000004885db4889df74188b4710488b5f0885c075ede808d2f7ff4885db4889df75e8f68516030000010f85b301000048c785b803000000000000488b6d184885ed759f48833dafa32200000f85a20100004c8b254ac32200498b5c24084885db0f8451010000488b6b084885ed0f84080100004c8b6d084d85ed0f84b6000000498b45084885c07462488d7808e820fbffff84c00f841d010000498b7d08488b0f4885c9743431c048837f1800488d5728741ee9ff000000662e0f1f8400000000004883c21048837af0000f85e60000004883c0014839c875e8e843d1f7ff49c74508000000004c8b6d08498b4d004885c9742e31c049837d1800498d55287418e9b10000000f1f40004883c21048837af0000f859e0000004883c0014839c875e84c89efe8f8d0f7ff48c7450800000000488b6b08488b4d004885c9742731c048837d1800488d55287411eb690f1f40004883c21048837af000755a4883c0014839c875ec4889efe8b4d0f7ff48c7430800000000498b5c2408488b0b4885c9742331c048837b1800488d5328740deb254883c21048837af000751a4883c0014839c875ec4889dfe874d0f7ff49c744240800000000488b3db4c2220048c705a9c22200000000004883c4085b5d415c415de94ad0f7ff662e0f1f840000000000488bbdb8030000e834d0f7ffe93cfeffff488b05f8a122008b35baa122003970080f8548feffff488b15a2a12200488b3848891048c705d9a1220000000000e8fccff7ffe926feffff0000000000000048c7c0d8ffffff64488b106448c700000000004885d20f84a6000000be0100000031c0833d82c1220000740cf00fb135ecb52200750beb230fb135e1b52200741a488d3dd8b522004881ec80000000e8bc17faff4881c480000000488b82780800004885c0745d4883e8014885c0488982780800007515488b059ab5220048891593b5220048898270080000833d19c1220000740bf0ff0d84b52200750aeb22ff0d7ab52200741a488d3d71b522004881ec80000000e88517faff4881c480000000f3c350b900324a00ba9f030000bee8214a00bff0214a00e8825ff7ff00004883ec084883c408c3000000000000000100020025640a002e2e2f6373752f6c6962632d73746172742e6300464154414c3a206b65726e656c20746f6f206f6c640a0000000000005f5f656864725f73746172742e655f7068656e7473697a65203d3d2073697a656f66202a474c28646c5f706864722900464154414c3a2063616e6e6f742064657465726d696e65206b65726e656c2076657273696f6e0a00756e65787065637465642072656c6f63207479706520696e207374617469632062696e6172790000000000000000000067656e657269635f73746172745f6d61696e002f6465762f66756c6c002f6465762f6e756c6c000063616e6e6f7420736574202566732062617365206164647265737320666f72207468726561642d6c6f63616c2073746f72616765000000002573257325733a25753a2025732573417373657274696f6e2060257327206661696c65642e0a256e0000000000000000556e6578706563746564206572726f722e0a000000000000431e400000000000241e400000000000051e400000000000fc1d400000000000f11d400000000000e41d400000000000d71d400000000000ca1d400000000000bd1d400000000000b01d400000000000a31d400000000000211f400000000000021f400000000000e31e400000000000da1e400000000000cf1e400000000000c21e400000000000b51e400000000000a81e4000000000009b1e4000000000008e1e4000000000002d1f4000000000000220400000000000e31f400000000000c41f400000000000bb1f400000000000b01f400000000000a11f400000000000921f400000000000831f400000000000741f400000000000651f4000000000000e20400000000000e820400000000000c420400000000000a0204000000000009320400000000000452040000000000079204000000000006c204000000000005f204000000000005220400000000000862040000000000045204000000000004f55545055545f4348415253455400636861727365743d004c414e475541474500504f53495800002f7573722f73686172652f6c6f63616c65000000000000006d65737361676573006c78006c64006c75006c580049006c69006c6f00726365002f7573722f73686172652f6c6f63616c650000000000002f6c6f63616c652e616c696173004c435f4d45535341474553002f7573722f73686172652f6c6f63616c652d6c616e677061636b0000000000000000000000001ed94000000000001ed9400000000000a5d7400000000000dcd740000000000014d840000000000039d840000000000030d640000000000030d640000000000030d640000000000030d640000000000084d8400000000000d4d8400000000000aad84000000000005ed8400000000000dfd64000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd9400000000000dfd64000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd940000000000098d94000000000005bd94000000000005bd94000000000005bd940000000000073d94000000000004dd94000000000005bd9400000000000bbd6400000000000bbd64000000000000fdb400000000000e7da4000000000005bd940000000000037db4000000000005bd9400000000000bfda40000000000074da40000000000074da40000000000074da40000000000074da40000000000074da40000000000074da40000000000074da40000000000074da40000000000074da40000000000074da400000000000bbd6400000000000dfd640000000000041da400000000000ffd9400000000000ccd9400000000000bbd64000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd9400000000000bbd64000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000005bd94000000000004dd94000000000000000000000000000010a0b040d0e0809000a0b0c0d0e0f100304050607080909190708090f03040506070809ffff0c030405060708090506070809060708090000000000000000000701020803040f1009121314151617180a0b0c0d0e0f10101a0e0f10110a0b0c0d0e0f100000190a0b0c0d0e0f100c0d0e0f100d0e0f10f6f6ff000000000000f7f7f6f6f70824f60df6f7f7f7f7f7f7f7f61a292d12fe0ef6f724ff0506000000000c0b0000020a0001000000000000000d000405060708090003000000000000020105030303030303020101030000001011121212121212121212121200000002020202020202020202020202020202020202020202020202020202020202020a0202020205020e0f020202020202020202020202020202020c0202020203020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020d020202020202020202020202020402020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020102060708090b706c7572616c3d006e706c7572616c733d0000000000000000020000000d000000201b4a0000000000001b4a00000000000000000000000000000000000100000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006378615f6174657869742e63006c20213d204e554c4c00005f5f6e65775f65786974666e0066787072696e74662e6300697361736369692028666d745b695d2900000000000000005f5f66787072696e7466007766696c656f70732e6300737461747573203d3d205f5f636f64656376745f7061727469616c000000000000005f494f5f7766696c655f756e646572666c6f770000000000000000000000000000000000000000000000000000000000703e410000000000500e410000000000500c410000000000b03d460000000000503b46000000000020124100000000003029410000000000b0034100000000001055410000000000301c410000000000c010410000000000502f460000000000102c410000000000e025410000000000e023410000000000d01b410000000000d0254100000000000068410000000000106841000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000703e410000000000500e410000000000000b410000000000b03d460000000000503b46000000000020124100000000003029410000000000b0034100000000001055410000000000301c410000000000c010410000000000502f460000000000102c410000000000e025410000000000e0234100000000009023410000000000d0254100000000000068410000000000106841000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000703e410000000000500e410000000000b0fd400000000000b03d460000000000503b46000000000020124100000000003029410000000000b0034100000000001055410000000000001c410000000000c010410000000000502f460000000000102c410000000000e025410000000000e023410000000000d01b410000000000d025410000000000006841000000000010684100000000003d3d3d3d3d3d3d204261636b74726163653a203d3d3d3d3d3d3d3d3d0a003d3d3d3d3d3d3d204d656d6f7279206d61703a203d3d3d3d3d3d3d3d0a002f70726f632f73656c662f6d617073004c4942435f464154414c5f5354444552525f002f6465762f747479002c6363733d00666374732e746f77635f6e7374657073203d3d203100666374732e746f6d625f6e7374657073203d3d20310000000000000000000000000000005f494f5f6e65775f66696c655f666f70656e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000703e410000000000f03e410000000000102f410000000000f0504100000000006066410000000000502c4100000000005024410000000000a01b4100000000001055410000000000301c410000000000f040410000000000002d460000000000102c410000000000e025410000000000e023410000000000d01b410000000000d0254100000000000068410000000000106841000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000703e410000000000f03e4100000000008030410000000000f0504100000000006066410000000000502c4100000000009026410000000000202b4100000000001055410000000000301c410000000000f023410000000000002d460000000000102c410000000000e025410000000000e0234100000000009023410000000000d0254100000000000068410000000000106841000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000703e410000000000f03e410000000000a01c410000000000f0504100000000006066410000000000502c4100000000003029410000000000301f4100000000001055410000000000001c410000000000f040410000000000002d460000000000102c410000000000e025410000000000e023410000000000d01b410000000000d025410000000000006841000000000010684100000000007374726f70732e63006f6666736574203e3d206f6c64656e64000000000000000000000000000000656e6c617267655f757365726275660000000000000000000000000000000000606e41000000000090694100000000003069410000000000f050410000000000406e41000000000020514100000000000052410000000000806c4100000000001055410000000000405441000000000050584100000000003055410000000000e067410000000000f067410000000000c0674100000000005058410000000000d067410000000000006841000000000010684100000000006172656e612e6300612d3e61747461636865645f74687265616473203e2030006d616c6c6f632e63006368756e6b5f69735f6d6d61707065642028702900616c69676e65645f4f4b20286368756e6b326d656d20287029290028702d3e707265765f73697a65203d3d206f66667365742900726573756c742d3e61747461636865645f74687265616473203d3d2030003c756e6b6e6f776e3e00702d3e61747461636865645f74687265616473203d3d2030006d616c6c6f633a20746f70206368756e6b20697320636f727275707400636f727275707465642073697a652076732e20707265765f73697a6500636f7272757074656420646f75626c652d6c696e6b6564206c697374006672656528293a20696e76616c696420706f696e746572006672656528293a20696e76616c69642073697a6500696e76616c6964206661737462696e20656e7472792028667265652900686561702d3e61725f707472203d3d20617600702d3e73697a65203d3d202830207c20505245565f494e55534529006c6f636b656400636f7272656374696f6e203e3d2030006d616c6c6f6328293a206d656d6f727920636f7272757074696f6e0062697420213d2030007265616c6c6f6328293a20696e76616c6964206f6c642073697a65007265616c6c6f6328293a20696e76616c6964206e6578742073697a6500216368756e6b5f69735f6d6d617070656420286f6c647029006e636f70696573203e3d2033007265616c6c6f6328293a20696e76616c696420706f696e746572006e636c65617273203e3d203300544f505f5041445f00504552545552425f004d4d41505f4d41585f004152454e415f4d4158004152454e415f54455354005452494d5f5448524553484f4c445f004d4d41505f5448524553484f4c445f00686f6f6b732e63006d732d3e61765b32202a2069202b20335d203d3d2030004172656e612025643a0a0073797374656d20627974657320202020203d20253130750a00696e2075736520627974657320202020203d20253130750a00546f74616c2028696e636c2e206d6d6170293a0a006d6178206d6d617020726567696f6e73203d20253130750a006d6178206d6d61702062797465732020203d202531306c750a003c6d616c6c6f632076657273696f6e3d2231223e0a003c68656170206e723d222564223e0a3c73697a65733e0a003c2f686561703e0a006d7472696d002573257325733a25753a2025732573417373657274696f6e2060257327206661696c65642e0a0000282873697a65202b206f66667365742920262028474c524f2028646c5f7061676573697a6529202d20312929203d3d2030000000000000007265706c616365645f6172656e612d3e61747461636865645f74687265616473203e2030000000002a2a2a204572726f7220696e20602573273a2025733a2030782573202a2a2a0a00000000000000006d756e6d61705f6368756e6b28293a20696e76616c696420706f696e74657200636f7272757074656420646f75626c652d6c696e6b6564206c69737420286e6f7420736d616c6c2900000000000000006672656528293a20696e76616c6964206e6578742073697a652028666173742900000000000000006672656528293a20636f7272757074656420756e736f72746564206368756e6b7300000000000000646f75626c652066726565206f7220636f7272757074696f6e202866617374746f70290000000000646f75626c652066726565206f7220636f7272757074696f6e2028746f702900646f75626c652066726565206f7220636f7272757074696f6e20286f75742900646f75626c652066726565206f7220636f7272757074696f6e2028217072657629000000000000006672656528293a20696e76616c6964206e6578742073697a6520286e6f726d616c290000000000006e65775f73697a65203e2030202626206e65775f73697a65203c20286c6f6e6729202832202a204d494e53495a4529006e65775f73697a65203e2030202626206e65775f73697a65203c20484541505f4d41585f53495a4500000000000000002828756e7369676e6564206c6f6e672920282863686172202a292070202b206e65775f73697a65292026202870616765737a202d20312929203d3d2030000000282863686172202a292070202b206e65775f73697a6529203d3d20282863686172202a292068656170202b20686561702d3e73697a6529002f70726f632f7379732f766d2f6f766572636f6d6d69745f6d656d6f727900002828494e5445524e414c5f53495a455f5429206368756e6b326d656d20286d6d292026204d414c4c4f435f414c49474e5f4d41534b29203d3d20300000000000286f6c645f746f70203d3d20696e697469616c5f746f702028617629202626206f6c645f73697a65203d3d203029207c7c202828756e7369676e6564206c6f6e672920286f6c645f73697a6529203e3d204d494e53495a4520262620707265765f696e75736520286f6c645f746f7029202626202828756e7369676e6564206c6f6e6729206f6c645f656e64202620287061676573697a65202d20312929203d3d2030290000000028756e7369676e6564206c6f6e672920286f6c645f73697a6529203c2028756e7369676e6564206c6f6e672920286e62202b204d494e53495a45290000000000627265616b2061646a757374656420746f2066726565206d616c6c6f6320737061636500000000002828756e7369676e6564206c6f6e6729206368756e6b326d656d202862726b292026204d414c4c4f435f414c49474e5f4d41534b29203d3d20300000000000006d616c6c6f6328293a206d656d6f727920636f7272757074696f6e202866617374290000000000006d616c6c6f6328293a20736d616c6c62696e20646f75626c65206c696e6b6564206c69737420636f72727570746564006d616c6c6f6328293a20636f7272757074656420756e736f72746564206368756e6b7300000000006d616c6c6f6328293a20636f7272757074656420756e736f72746564206368756e6b7320320000002862636b2d3e626b2d3e73697a652026204e4f4e5f4d41494e5f4152454e4129203d3d2030000000286677642d3e73697a652026204e4f4e5f4d41494e5f4152454e4129203d3d20300000000000000028756e7369676e6564206c6f6e6729202873697a6529203e3d2028756e7369676e6564206c6f6e672920286e622900006e657773697a65203e3d206e6220262620282828756e7369676e6564206c6f6e672920286368756e6b326d656d202870292929202520616c69676e6d656e7429203d3d203000000028756e7369676e6564206c6f6e672920286e657773697a6529203e3d2028756e7369676e6564206c6f6e672920286e6229000000000000002176696374696d207c7c206368756e6b5f69735f6d6d617070656420286d656d326368756e6b202876696374696d2929207c7c2061725f707472203d3d206172656e615f666f725f6368756e6b20286d656d326368756e6b202876696374696d2929000000000000216e657770207c7c206368756e6b5f69735f6d6d617070656420286d656d326368756e6b20286e6577702929207c7c2061725f707472203d3d206172656e615f666f725f6368756e6b20286d656d326368756e6b20286e6577702929000000002170207c7c206368756e6b5f69735f6d6d617070656420286d656d326368756e6b2028702929207c7c2061725f707472203d3d206172656e615f666f725f6368756e6b20286d656d326368756e6b20287029290000000000216d656d207c7c206368756e6b5f69735f6d6d617070656420286d656d326368756e6b20286d656d2929207c7c206176203d3d206172656e615f666f725f6368756e6b20286d656d326368756e6b20286d656d29290000006d616c6c6f635f636865636b5f6765745f73697a653a206d656d6f727920636f7272757074696f6e00000000000000002863686172202a29206368756e6b326d656d20287029202b2034202a2053495a455f535a203c3d2070616c69676e65645f6d656d000000002863686172202a292070202b2073697a65203e2070616c69676e65645f6d656d00000000000000000909090909090920202020202020203c73697a652066726f6d3d22257a752220746f3d22257a752220746f74616c3d22257a752220636f756e743d22257a75222f3e0a000000000020203c756e736f727465642066726f6d3d22257a752220746f3d22257a752220746f74616c3d22257a752220636f756e743d22257a75222f3e0a0000000000003c2f73697a65733e0a3c746f74616c20747970653d22666173742220636f756e743d22257a75222073697a653d22257a75222f3e0a3c746f74616c20747970653d22726573742220636f756e743d22257a75222073697a653d22257a75222f3e0a3c73797374656d20747970653d2263757272656e74222073697a653d22257a75222f3e0a3c73797374656d20747970653d226d6178222073697a653d22257a75222f3e0a0000003c61737061636520747970653d22746f74616c222073697a653d22257a75222f3e0a3c61737061636520747970653d226d70726f74656374222073697a653d22257a75222f3e0a003c746f74616c20747970653d22666173742220636f756e743d22257a75222073697a653d22257a75222f3e0a3c746f74616c20747970653d22726573742220636f756e743d22257a75222073697a653d22257a75222f3e0a3c746f74616c20747970653d226d6d61702220636f756e743d222564222073697a653d22257a75222f3e0a3c73797374656d20747970653d2263757272656e74222073697a653d22257a75222f3e0a3c73797374656d20747970653d226d6178222073697a653d22257a75222f3e0a3c61737061636520747970653d22746f74616c222073697a653d22257a75222f3e0a3c61737061636520747970653d226d70726f74656374222073697a653d22257a75222f3e0a3c2f6d616c6c6f633e0a00000000000000005f5f6c6962635f63616c6c6f630000005f6d69645f6d656d616c69676e0000005f5f6c6962635f7265616c6c6f6300006465746163685f6172656e61000000006765745f667265655f6c6973740000005f5f6c6962635f6d616c6c6f630000005f696e745f7265616c6c6f63000000006d72656d61705f6368756e6b000000006d756e6d61705f6368756e6b00000000686561705f7472696d000000000000005f696e745f66726565000000000000007379736d616c6c6f63000000000000005f696e745f6d616c6c6f6300000000005f696e745f6d656d616c69676e00000010ee41000000000060ee41000000000000ef41000000000018ef41000000000078ee41000000000090ee410000000000c0ee410000000000e0ee41000000000089ee410000000000e0ed410000000000e8f141000000000084ef41000000000080f141000000000019f1410000000000d0f041000000000084ef41000000000084ef41000000000084ef41000000000084ef41000000000069f0410000000000000000000000000072656d6f76655f66726f6d5f667265655f6c69737400000000000000000000005f5f6d616c6c6f635f7365745f737461746500000000000000000000000000006172656e615f7468726561645f66726565726573000000000000000000000000ffffffffffffffff000000000000000090f8f7ff60f9f7ff30faf7fff0faf7ffc0fbf7ff90fcf7ff60fdf7ff30fef7ff00fff7ffd0fff7ffa000f8ff7001f8ff4002f8ff1003f8ffe003f8ff00f8f7ff10e4f7ff50e5f7ff90e6f7ffd0e7f7ff10e9f7ff50eaf7ff90ebf7ffd0ecf7ff10eef7ff50eff7ff90f0f7ffd0f1f7ff10f3f7ff50f4f7ff90f5f7ff70e3f7ff1009f8ff900af8ff100cf8ff900df8ff100ff8ff9010f8ff1012f8ff9013f8ff1015f8ff9016f8ff1018f8ff9019f8ff101bf8ff901cf8ff101ef8ff4008f8ff404040404040404040404040404040405b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b202020202020202020202020202020205a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5ab05ff8ff5061f8fff062f8ff9064f8ff3066f8ffd067f8ff7069f8ff106bf8ffb06cf8ff506ef8fff06ff8ff9071f8ff3073f8ffd074f8ff7076f8ff405ef8ffa07af8fff07bf8ff407df8ff907ef8ffe07ff8ff3081f8ff8082f8ffd083f8ff2085f8ff7086f8ffc087f8ff1089f8ff608af8ffb08bf8ff008df8ff9079f8ff003df8ff103ff8ff2041f8ff3043f8ff4045f8ff5047f8ff6049f8ff704bf8ff804df8ff904ff8ffa051f8ffb053f8ffc055f8ffd057f8ffe059f8ff803bf8ff68c742000000000080c742000000000090c7420000000000a8c7420000000000c0c7420000000000d8c7420000000000f0c6420000000000f0c7420000000000d0c9420000000000f0c942000000000010ca42000000000030ca42000000000050ca42000000000070ca42000000000050c942000000000090ca420000000000009df8ff209ef8ff409ff8ff60a0f8ff80a1f8ffa0a2f8ffc0a3f8ffe0a4f8ff00a6f8ff20a7f8ff40a8f8ff60a9f8ff80aaf8ffa0abf8ffc0acf8ff609cf8ff9fbcf8ff70bff8ff5ebef8ff60bff8ff91bcf8ff60bdf8ff50bef8ff40bff8ff66bcf8ff12bdf8ffe2bdf8ffe2bef8ff80bcf8ff30bdf8ff20bef8ff10bff8ff55bcf8ff01bdf8ffd1bdf8ffd1bef8ffd1bff8ff51c0f8ffd1c0f8ff51c1f8ffd1c1f8ff51c2f8ffe1c2f8ff71c3f8ff01c4f8ff91c4f8ff31c5f8ffd1c5f8ff4ec6f8ffe6bcf8ffb6bdf8ffb6bef8ffb6bff8ff36c0f8ffb6c0f8ff36c1f8ffb6c1f8ff36c2f8ffc6c2f8ff56c3f8ffe6c3f8ff76c4f8ff16c5f8ffb6c5f8ff37c6f8ffcbbcf8ff9bbdf8ff9bbef8ff9bbff8ff1bc0f8ff9bc0f8ff1bc1f8ff9bc1f8ff1bc2f8ffabc2f8ff3bc3f8ffcbc3f8ff5bc4f8fffbc4f8ff9bc5f8ff20c6f8ffb0bcf8ff80bdf8ff80bef8ff80bff8ff00c0f8ff80c0f8ff00c1f8ff80c1f8ff00c2f8ff90c2f8ff20c3f8ffb0c3f8ff40c4f8ffe0c4f8ff80c5f8ff38e0f8ff00e2f8ffe0e3f8ffc0e5f8ffa0e7f8ffa0e9f8ffa0ebf8ffa0edf8ff30e0f8fff0e1f8ffd0e3f8ffb0e5f8ff90e7f8ff80e9f8ff80ebf8ff80edf8ff10e0f8ffd0e1f8ffb0e3f8ff90e5f8ff70e7f8ff60e9f8ff60ebf8ff60edf8fff0dff8ffb0e1f8ff90e3f8ff70e5f8ff50e7f8ff30e9f8ff30ebf8ff30edf8ffc0dff8ff80e1f8ff60e3f8ff40e5f8ff20e7f8ff00e9f8ff00ebf8ff00edf8ff90dff8ff50e1f8ff30e3f8ff10e5f8fff0e6f8ffc0e8f8ffc0eaf8ffc0ecf8ff50dff8ff10e1f8fff0e2f8ffd0e4f8ffb0e6f8ff80e8f8ff80eaf8ff80ecf8ff10dff8ffd0e0f8ffb0e2f8ff90e4f8ff70e6f8ff40e8f8ff40eaf8ff40ecf8ffd0def8ff90e0f8ff60e2f8ff40e4f8ff30e6f8ff00e8f8ff00eaf8ff00ecf8ff90def8ff40e0f8ff10e2f8fff0e3f8ffe0e5f8ffb0e7f8ffb0e9f8ffb0ebf8ff60c5f8ffa0c9f8fff0caf8ff40ccf8ff90cdf8ffe0cef8ff30d0f8ff80d1f8ffd0d2f8ff20d4f8ff70d5f8ffc0d6f8ff10d8f8ff60d9f8ffb0daf8ff00dcf8ff40c7f8ff10caf8ff60cbf8ffb0ccf8ff00cef8ff50cff8ffa0d0f8fff0d1f8ff40d3f8ff90d4f8ffe0d5f8ff30d7f8ff80d8f8ffd0d9f8ff20dbf8ff70dcf8ffde18f9ff601ff9fff01ef9ff801ef9ff101ef9ffa01df9ff301df9ffc01cf9ff501cf9ffe01bf9ff701bf9ff001bf9ff901af9ff201af9ffb019f9ff4019f9ffd618f9ff461ff9ffd61ef9ff661ef9fff61df9ff861df9ff161df9ffa61cf9ff361cf9ffc61bf9ff561bf9ffe61af9ff761af9ff061af9ff9619f9ff2619f9ffcc18f9ff3c1ff9ffcc1ef9ff5c1ef9ffec1df9ff7c1df9ff0c1df9ff9c1cf9ff2c1cf9ffbc1bf9ff4c1bf9ffdc1af9ff6c1af9fffc19f9ff8c19f9ff1c19f9ffc218f9ff321ff9ffc21ef9ff521ef9ffe21df9ff721df9ff021df9ff921cf9ff221cf9ffb21bf9ff421bf9ffd21af9ff621af9fff219f9ff8219f9ff1219f9ffb818f9ff281ff9ffb81ef9ff481ef9ffd81df9ff681df9fff81cf9ff881cf9ff181cf9ffa81bf9ff381bf9ffc81af9ff581af9ffe819f9ff7819f9ff0819f9ffae18f9ff1e1ff9ffae1ef9ff3e1ef9ffce1df9ff5e1df9ffee1cf9ff7e1cf9ff0e1cf9ff9e1bf9ff2e1bf9ffbe1af9ff4e1af9ffde19f9ff6e19f9fffe18f9ffa418f9ff141ff9ffa41ef9ff341ef9ffc41df9ff541df9ffe41cf9ff741cf9ff041cf9ff941bf9ff241bf9ffb41af9ff441af9ffd419f9ff6419f9fff418f9ff9a18f9ff0a1ff9ff9a1ef9ff2a1ef9ffba1df9ff4a1df9ffda1cf9ff6a1cf9fffa1bf9ff8a1bf9ff1a1bf9ffaa1af9ff3a1af9ffca19f9ff5a19f9ffea18f9ff9018f9ff001ff9ff901ef9ff201ef9ffb01df9ff401df9ffd01cf9ff601cf9fff01bf9ff801bf9ff101bf9ffa01af9ff301af9ffc019f9ff5019f9ffe018f9ff800ef9ff4016f9ffc015f9ff3015f9ffb014f9ff3014f9ffb013f9ff3013f9ffb012f9ff3012f9ffb011f9ff3011f9ffb010f9ff2010f9ff900ff9ff000ff9ff760ef9ff1c16f9ff9c15f9ff0c15f9ff8c14f9ff0c14f9ff8c13f9ff0c13f9ff8c12f9ff0c12f9ff8c11f9ff0c11f9ff8c10f9fffc0ff9ff6c0ff9ffdc0ef9ff6c0ef9ff1216f9ff9215f9ff0215f9ff8214f9ff0214f9ff8213f9ff0213f9ff8212f9ff0212f9ff8211f9ff0211f9ff8210f9fff20ff9ff620ff9ffd20ef9ff620ef9ff0816f9ff8815f9fff814f9ff7814f9fff813f9ff7813f9fff812f9ff7812f9fff811f9ff7811f9fff810f9ff7810f9ffe80ff9ff580ff9ffc80ef9ff580ef9fffe15f9ff7e15f9ffee14f9ff6e14f9ffee13f9ff6e13f9ffee12f9ff6e12f9ffee11f9ff6e11f9ffee10f9ff6e10f9ffde0ff9ff4e0ff9ffbe0ef9ff4e0ef9fff415f9ff7415f9ffe414f9ff6414f9ffe413f9ff6413f9ffe412f9ff6412f9ffe411f9ff6411f9ffe410f9ff6410f9ffd40ff9ff440ff9ffb40ef9ff440ef9ffea15f9ff6a15f9ffda14f9ff5a14f9ffda13f9ff5a13f9ffda12f9ff5a12f9ffda11f9ff5a11f9ffda10f9ff5a10f9ffca0ff9ff3a0ff9ffaa0ef9ff3a0ef9ffe015f9ff6015f9ffd014f9ff5014f9ffd013f9ff5013f9ffd012f9ff5012f9ffd011f9ff5011f9ffd010f9ff5010f9ffc00ff9ff300ff9ffa00ef9ff300ef9ffd015f9ff5015f9ffc014f9ff4014f9ffc013f9ff4013f9ffc012f9ff4012f9ffc011f9ff4011f9ffc010f9ff4010f9ffb00ff9ff200ff9ff900ef9fff0f0f8ff10f2f8ff90f3f8ff10f5f8ff90f6f8ff10f8f8ff90f9f8ff10fbf8ff90fcf8ff10fef8ff90fff8ff1001f9ff9002f9ff1004f9ff9005f9ff1007f9ff50f1f8ff90f2f8ff10f4f8ff90f5f8ff10f7f8ff90f8f8ff10faf8ff90fbf8ff10fdf8ff90fef8ff1000f9ff9001f9ff1003f9ff9004f9ff1006f9ff9007f9ff6024f9ff6026f9ff6028f9ff602af9ff602cf9ff602ef9ff6030f9ff6032f9ff6034f9ff6036f9ff6038f9ff603af9ff603cf9ff603ef9ff6040f9ffe022f9fff075f9ff0076f9ff1076f9ff2076f9ff3076f9ff4076f9ff5076f9ff6076f9ff7076f9ff8076f9ff9076f9ffa076f9ffb076f9ffc076f9ffd076f9ffe076f9fff076f9ff0077f9ff2077f9ff3077f9ff4077f9ff6077f9ff8077f9ffa077f9ffc077f9ffe077f9ff0078f9ff2078f9ff4078f9ff6078f9ff8078f9ffa078f9ff907bf9ffa07bf9ffb07bf9ffc07bf9ffd07bf9ffe07bf9ff007cf9ff107cf9ff207cf9ff307cf9ff507cf9ff707cf9ff907cf9ffb07cf9ffd07cf9fff07cf9ff007df9ff107df9ff307df9ff507df9ff707df9ff907df9ffb07df9ffd07df9fff07df9ff107ef9ff307ef9ff507ef9ff707ef9ff907ef9ffb07ef9ffd07ef9ff2e2e2f737973646570732f7838365f36342f6361636865696e666f2e63006f6666736574203d3d20320021202263616e6e6f742068617070656e2200000000000000000000000000000000000000000028e443000000000038e4430000000000f7e343000000000000e443000000000058e4430000000000f0e343000000000070e443000000000090e443000000000018e4430000000000e7e4430000000000e7e4430000000000e7e4430000000000e0e3430000000000e7e4430000000000e0e34300000000009fe4430000000000e0e3430000000000c9e4430000000000e0e3430000000000c2e4430000000000bbe4430000000000b4e4430000000000ade4430000000000a6e4430000000000d0e4430000000000e2e3430000000000e2e3430000000000e2e3430000000000e0e3430000000000e2e3430000000000e0e34300000000009fe4430000000000e0e3430000000000c9e4430000000000e0e3430000000000c2e4430000000000bbe4430000000000b4e4430000000000ade4430000000000a6e4430000000000ece44300000000000000000000000000000000000000000000000000000000000604200000200000080420000040000009042000008000000a022003002000000c042003004000000d044003004000000e06400300600000210840060000040022044009000008002308400900001000250840090000200029084009000040002c08400300800000300840000080000039044006000002003a064006000003003b024006000002003c044006000004003d064006000006003e044006000008003f024006000004004104200600000200420420060000040043042006000008004404200600001000450420060000200046044009000040004708400900008000480c40060000300049104006000040004a0c4009000060004b104009000080004c0c40090000c0004d104009000000014e184006000060006008400300400000660440030020000067044003004000006804400300800000780840060000100079084006000002007a084006000004007b084006000008007c084006000010007d084006000020007f024006000008008008400600000800820820060000040083082006000008008408200600001000850820060000200086044006000008008708400600001000d004400900000800d104400900001000d204400900002000d608400900001000d708400900002000d808400900004000dc0c400900002000dd0c400900004000de0c400900008000e210400900002000e310400900004000e410400900008000ea1840090000c000eb18400900002001ec1840090000800168616e646c655f616d64000000000000696e74656c5f636865636b5f776f726400414e53495f58332e342d313936382f2f5452414e534c495400000000000000a0424a0000000000010000000000000020424a0000000000010000000000000000000000000000000000000000000000ffffff7f00000000ad544a0000000000e1414a00000000002082440000000000000000000000000000000000000000000000000000000000040000000400000001000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff7f00000000e1414a0000000000ad544a0000000000c07e440000000000d06b4400000000000000000000000000000000000000000001000000010000000400000004000000000000000000000000000000000000002f7573722f6c69622f676574636f6e6600474554434f4e465f444952002f70726f632f7379732f6b65726e656c2f72747369672d6d6178002f70726f632f7379732f6b65726e656c2f6e67726f7570735f6d617800494c5033325f4f4646333200494c5033325f4f464642494700000034ed43000000000040ed4300000000004aed43000000000056ed43000000000060ed4300000000006ced43000000000076ed43000000000097ed430000000000a1ed430000000000abed430000000000b5ed430000000000bfed430000000000c9ed430000000000d3ed430000000000dded430000000000e7ed430000000000f1ed430000000000fbed43000000000005ee4300000000000fee43000000000019ee43000000000023ee4300000000002dee43000000000034ed43000000000034ed43000000000050ee4300000000005aee43000000000034ed4300000000006eee43000000000078ee43000000000082ee4300000000008eee43000000000034ed430000000000a7ee43000000000034ed43000000000034ed430000000000caee430000000000d4ee430000000000deee430000000000e8ee430000000000f2ee4300000000004bf2430000000000fcee43000000000006ef43000000000010ef4300000000001aef43000000000024ef4300000000002eef43000000000038ef43000000000034ed43000000000034ed43000000000056ef43000000000060ef43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed430000000000b5ef43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000005f04300000000000ff043000000000019f043000000000023f04300000000002df043000000000037f043000000000041f04300000000004bf043000000000055f043000000000034ed43000000000069f043000000000073f04300000000007df043000000000087f043000000000091f04300000000009bf0430000000000a5f0430000000000b1f0430000000000bdf0430000000000c7f0430000000000d1f0430000000000dbf0430000000000e5f0430000000000eff0430000000000f9f043000000000003f14300000000000df143000000000017f143000000000021f14300000000002bf143000000000034ed4300000000003ff143000000000049f143000000000053f14300000000005df143000000000067f143000000000071f14300000000007df143000000000087f143000000000093f14300000000009df1430000000000a7f1430000000000b1f1430000000000bbf1430000000000c5f1430000000000cff1430000000000dbf1430000000000e5f1430000000000f1f1430000000000fbf143000000000034ed4300000000000ff243000000000019f243000000000023f24300000000002df243000000000037f243000000000041f24300000000002aed43000000000074ef43000000000037ee43000000000083ef43000000000034ed43000000000097ef430000000000a1ef430000000000fbef43000000000042ef4300000000004cef43000000000034ed43000000000034ed43000000000034ed43000000000005f243000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed4300000000008def430000000000f1ef43000000000035f143000000000034ed43000000000046ee43000000000034ed430000000000bfef43000000000034ed43000000000034ed43000000000034ed43000000000034ed4300000000005ff043000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed430000000000e2ef430000000000d3ef430000000000c9ef43000000000034ed430000000000abef43000000000034ed43000000000034ed43000000000034ed43000000000034ed4300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000004bf24300000000006aef430000000000c0ee430000000000b1ee43000000000098ee43000000000064ee43000000000034ed4300000000004bf243000000000034ed43000000000034ed43000000000034ed43000000000034ed43000000000034ed4300000000002e2e0000000000002e2e2f737973646570732f756e69782f737973762f6c696e75782f6765746377642e6300000000006572726e6f20213d204552414e4745207c7c2062756620213d204e554c4c207c7c2073697a6520213d203000000000005f5f67657463776400000000000000002e2e2f737973646570732f756e69782f737973762f6c696e75782f6765747061676573697a652e6300000000000000005f5f6765747061676573697a6500474c524f28646c5f7061676573697a652920213d2030000000002e2e2f737973646570732f756e69782f737973762f6c696e75782f67657473797373746174732e6300000000000000002f7379732f646576696365732f73797374656d2f6370752f6f6e6c696e6500006e6578745f6c696e65002a6370203c3d202a7265002f70726f632f73746174002f70726f632f637075696e666f0070726f636573736f72002f7379732f646576696365732f73797374656d2f637075002b3078002d3078005b3078002800627566666572206f766572666c6f7720646574656374656400737461636b002a2a2a202573202a2a2a3a202573207465726d696e617465640a00e030440000000000f02e440000000000d0304400000000000031440000000000f02e440000000000f02e440000000000f02e440000000000f02e440000000000f030440000000000c030440000000000b030440000000000a0304400000000008830440000000000703044000000000060304400000000004830440000000000f02e440000000000f02e440000000000f02e440000000000f02e4400000000002030440000000000f02e4400000000000830440000000000f02f440000000000f02e440000000000f02e440000000000f02e440000000000f02e440000000000f02e440000000000f02e440000000000d82e4400000000002f7661722f746d70002f7661722f70726f66696c65000000753d4400000000008e3d4400000000005c3d4400000000008e3d440000000000753d440000000000753d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d440000000000753d4400000000005c3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d440000000000753d4400000000008e3d440000000000753d440000000000753d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d440000000000513d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d440000000000513d4400000000008e3d4400000000008e3d440000000000513d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000008e3d4400000000002d3d4400000000008e3d4400000000008e3d440000000000513d4400000000008e3d4400000000008e3d440000000000513d4400000000000000000000000000000000000000000047434f4e565f5041544800474554434f4e465f44495200484f5354414c4941534553004c445f4155444954004c445f4445425547004c445f44454255475f4f5554505554004c445f44594e414d49435f5745414b004c445f48574341505f4d41534b004c445f4c4942524152595f50415448004c445f4f524947494e5f50415448004c445f5052454c4f4144004c445f50524f46494c45004c445f53484f575f41555856004c445f5553455f4c4f41445f42494153004c4f43414c444f4d41494e004c4f4350415448004d414c4c4f435f5452414345004e49535f50415448004e4c5350415448005245534f4c565f484f53545f434f4e46005245535f4f5054494f4e5300544d5044495200545a444952004c445f5052454645525f4d41505f33324249545f4558454300004c445f5741524e0073657475702d7664736f2e680070682d3e705f7479706520213d2050545f544c53006765742d64796e616d69632d696e666f2e68006f7574206f66206d656d6f72790a004c445f4c4942524152595f50415448004c445f42494e445f4e4f57004c445f42494e445f4e4f54004c445f44594e414d49435f5745414b004c445f50524f46494c455f4f5554505554002f6574632f737569642d6465627567004d414c4c4f435f434845434b5f004c445f415353554d455f4b45524e454c0000000000000000696e666f5b44545f504c5452454c5d2d3e645f756e2e645f76616c203d3d2044545f52454c410000696e666f5b44545f52454c41454e545d2d3e645f756e2e645f76616c203d3d2073697a656f662028456c66572852656c61292900000000000a5741524e494e473a20556e737570706f7274656420666c61672076616c7565287329206f66203078257820696e2044545f464c4147535f312e0a000000000073657475705f7664736f0000000000000000000000000000656c665f6765745f64796e616d69635f696e666f002f70726f632f7379732f6b65726e656c2f6f7372656c656173650049474e4f52450067636f6e762e6300697272657665727369626c6520213d204e554c4c00000000006f757462756620213d204e554c4c202626202a6f757462756620213d204e554c4c000000000000005f5f67636f6e760067636f6e765f64622e6300737465702d3e5f5f656e645f666374203d3d204e554c4c00000000000064657269762d3e73746570735b636e745d2e5f5f73686c69625f68616e646c6520213d204e554c4c0000000000000000667265655f64657269766174696f6e005f5f67636f6e765f72656c656173655f737465700067636f6e765f636f6e662e630063776420213d204e554c4c00656c656d20213d204e554c4c00616c696173006d6f64756c650049534f2d31303634362f554353342f003d494e5445524e414c2d3e75637334003d756373342d3e494e5445524e414c005543532d344c452f2f003d494e5445524e414c2d3e756373346c65003d756373346c652d3e494e5445524e414c0049534f2d31303634362f555446382f003d494e5445524e414c2d3e75746638003d757466382d3e494e5445524e414c0049534f2d31303634362f554353322f003d756373322d3e494e5445524e414c003d494e5445524e414c2d3e7563733200414e53495f58332e342d313936382f2f003d61736369692d3e494e5445524e414c003d494e5445524e414c2d3e617363696900554e49434f44454249472f2f003d75637332726576657273652d3e494e5445524e414c003d494e5445524e414c2d3e7563733272657665727365002e736f0000000000000000005f5f67636f6e765f6765745f7061746800000000000000000000000000000000554353342f2f0049534f2d31303634362f554353342f005543532d342f2f0049534f2d31303634362f554353342f005543532d3442452f2f0049534f2d31303634362f554353342f004353554353342f2f0049534f2d31303634362f554353342f0049534f2d31303634362f2f0049534f2d31303634362f554353342f0031303634362d313a313939332f2f0049534f2d31303634362f554353342f0031303634362d313a313939332f554353342f0049534f2d31303634362f554353342f004f534630303031303130342f2f0049534f2d31303634362f554353342f004f534630303031303130352f2f0049534f2d31303634362f554353342f004f534630303031303130362f2f0049534f2d31303634362f554353342f0057434841525f542f2f00494e5445524e414c00555446382f2f0049534f2d31303634362f555446382f005554462d382f2f0049534f2d31303634362f555446382f0049534f2d49522d3139332f2f0049534f2d31303634362f555446382f004f534630353031303030312f2f0049534f2d31303634362f555446382f0049534f2d31303634362f5554462d382f0049534f2d31303634362f555446382f00554353322f2f0049534f2d31303634362f554353322f005543532d322f2f0049534f2d31303634362f554353322f004f534630303031303130302f2f0049534f2d31303634362f554353322f004f534630303031303130312f2f0049534f2d31303634362f554353322f004f534630303031303130322f2f0049534f2d31303634362f554353322f00414e53495f58332e342f2f00414e53495f58332e342d313936382f2f0049534f2d49522d362f2f00414e53495f58332e342d313936382f2f00414e53495f58332e342d313938362f2f00414e53495f58332e342d313936382f2f0049534f5f3634362e4952563a313939312f2f00414e53495f58332e342d313936382f2f0041534349492f2f00414e53495f58332e342d313936382f2f0049534f3634362d55532f2f00414e53495f58332e342d313936382f2f0055532d41534349492f2f00414e53495f58332e342d313936382f2f0055532f2f00414e53495f58332e342d313936382f2f0049424d3336372f2f00414e53495f58332e342d313936382f2f0043503336372f2f00414e53495f58332e342d313936382f2f00435341534349492f2f00414e53495f58332e342d313936382f2f004f534630303031303032302f2f00414e53495f58332e342d313936382f2f00554e49434f44454c4954544c452f2f0049534f2d31303634362f554353322f005543532d324c452f2f0049534f2d31303634362f554353322f005543532d3242452f2f00554e49434f44454249472f2f00000067636f6e762d6d6f64756c6573000000000000000000000000000000000000000000000000000000000000000000000000000000000000002f7573722f6c69622f7838365f36342d6c696e75782d676e752f67636f6e760067636f6e765f6275696c74696e2e6300636e74203c2073697a656f6620286d617029202f2073697a656f6620286d61705b305d290000000000000000000000005f5f67636f6e765f6765745f6275696c74696e5f7472616e730000000000000018544a0000000000e06b4400000000000000000000000000040404040000000028544a0000000000e06f4400000000000000000000000000040404040000000042544a000000000040754400000000000000000000000000040404040000000054544a000000000080794400000000000000000000000000040404040000000076544a0000000000d0894400000000000000000000000000040401060000000086544a00000000006096440000000000d06b4400000000000106040400000000a6544a0000000000a0a744000000000000000000000000000202040400000000b6544a0000000000e0ad44000000000000000000000000000404020200000000d7544a0000000000c07e440000000000d06b4400000000000404010100000000e8544a000000000020824400000000000000000000000000040401010000000006554a000000000000b6440000000000000000000000000002020404000000001d554a000000000040bc440000000000000000000000000004040202000000002e2e2f69636f6e762f736b656c65746f6e2e63006f75746275667374617274203d3d204e554c4c00696e656e64202d202a696e70747270203c20340067636f6e765f73696d706c652e63002a6f757470747270202b2034203e206f7574656e64002e2e2f69636f6e762f6c6f6f702e63006f7574627566203d3d206f757465727200636820213d203078633020262620636820213d20307863310000000000002873746174652d3e5f5f636f756e742026203729203c3d2073697a656f66202873746174652d3e5f5f76616c75652900696e707472202d2062797465627566203e202873746174652d3e5f5f636f756e7420262037290000696e656e6420213d2026627974656275665b4d41585f4e45454445445f494e5055545d0000000000696e656e64202d20696e707472203e202873746174652d3e5f5f636f756e742026207e3729000000696e656e64202d20696e707472203c3d2073697a656f66202873746174652d3e5f5f76616c75652900000000000000006e737461747573203d3d205f5f47434f4e565f46554c4c5f4f555450555400000000000000000000696e7465726e616c5f75637332726576657273655f6c6f6f705f73696e676c6500000000000000000000000000000000000000000000000000000000000000005f5f67636f6e765f7472616e73666f726d5f696e7465726e616c5f7563733272657665727365000000000000000000000000000000000000000000000000000075637332726576657273655f696e7465726e616c5f6c6f6f705f73696e676c6500000000000000000000000000000000000000000000000000000000000000005f5f67636f6e765f7472616e73666f726d5f75637332726576657273655f696e7465726e616c00000000000000000000000000000000000000000000000000005f5f67636f6e765f7472616e73666f726d5f696e7465726e616c5f75637332005f5f67636f6e765f7472616e73666f726d5f756373325f696e7465726e616c005f5f67636f6e765f7472616e73666f726d5f757466385f696e7465726e616c005f5f67636f6e765f7472616e73666f726d5f696e7465726e616c5f75746638005f5f67636f6e765f7472616e73666f726d5f696e7465726e616c5f617363696900000000000000000000000000000000000000000000000000000000000000005f5f67636f6e765f7472616e73666f726d5f61736369695f696e7465726e616c00000000000000000000000000000000000000000000000000000000000000005f5f67636f6e765f7472616e73666f726d5f756373346c655f696e7465726e616c000000000000000000000000000000000000000000000000000000000000005f5f67636f6e765f7472616e73666f726d5f696e7465726e616c5f756373346c65000000000000000000000000000000000000000000000000000000000000005f5f67636f6e765f7472616e73666f726d5f756373345f696e7465726e616c005f5f67636f6e765f7472616e73666f726d5f696e7465726e616c5f7563733400696e7465726e616c5f756373325f6c6f6f705f73696e676c6500000000000000756373325f696e7465726e616c5f6c6f6f705f73696e676c6500000000000000757466385f696e7465726e616c5f6c6f6f705f73696e676c6500000000000000696e7465726e616c5f757466385f6c6f6f705f73696e676c6500000000000000696e7465726e616c5f61736369695f6c6f6f705f73696e676c65000000000000756373346c655f696e7465726e616c5f6c6f6f7000c0e0f0f8fc47434f4e565f50415448000000002f7573722f6c69622f7838365f36342d6c696e75782d676e752f67636f6e762f67636f6e762d6d6f64756c65732e63616368650067636f6e765f646c2e63006f626a2d3e636f756e746572203e203000666f756e642d3e68616e646c65203d3d204e554c4c0067636f6e760067636f6e765f696e69740067636f6e765f656e640000000000000000646f5f72656c656173655f73686c6962000000000000000000000000000000005f5f67636f6e765f66696e645f73686c6962004c4f43504154480000000000000000000000000000000000000000000000f5440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080a070a0b0b0608070a0c0e110000000b202b001433003f48505b68770000000000000000000000000000000000000000000000000000004c435f434f4c4c415445004c435f4354595045004c435f4d4f4e4554415259004c435f4e554d45524943004c435f54494d45004c435f4d45535341474553004c435f5041504552004c435f4e414d45004c435f41444452455353004c435f54454c4550484f4e45004c435f4d4541535552454d454e54004c435f4944454e54494649434154494f4e00000000000000000000000000000000000000000000000001000000000000000100000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c435f414c4c004c414e470066696e646c6f63616c652e63006c6f63616c655f636f646573657420213d204e554c4c0000000000000000002f2e2e2f000000000000000000000000000000000000000000000000000000000e000000050000006e000000120000002d000000040000000000000002000000060000000c00000004000000010000000f000000000000000000000000000000206c4a0000000000e0674b0000000000406e4b000000000040774b000000000020664b0000000000a0654b0000000000000000000000000000724b000000000080724b000000000040734b000000000000744b000000000080744b000000000080764b000000000000000000000000005f6e6c5f66696e645f6c6f63616c65002f7573722f6c69622f6c6f63616c65006c6f61646c6f63616c652e630063617465676f7279203d3d204c435f4354595045002f5359535f000000000000000000a0eb44000000000080eb44000000000070eb44000000000060eb44000000000050eb440000000000a8ea440000000000a0eb44000000000030eb44000000000020eb44000000000010eb440000000000a8ea44000000000090eb44000000000040eb44000000000000000000000000000000000000000000000000000000000000694a000000000020684a000000000060664a0000000000206a4a000000000040684a0000000000c0654a0000000000000000000000000040664a000000000020664a0000000000e0654a0000000000c0654a0000000000086b4a000000000080654a0000000000000000000000000000000000000000000000000000000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000002000000010000000100000001000000010000000100000001000000000000000000000000000000010000000100000001000000010000000100000001000000050000000100000001000000010000000100000001000000010000000000000000000000000000000100000001000000010000000100000001000000010000000100000000000000050000000500000001000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000010000000100000001000000010000000600000001000000010000000600000001000000010000000500000001000000090000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000008000000080000000800000008000000080000000a000000080000000800000003000000050000000300000003000000030000000300000001000000010000000800000001000000000000000100000001000000040000000500000005000000010000000000000000000000010000000100000001000000010000000400000001000000010000000300000003000000030000000300000003000000030000000300000003000000010000000300000003000000030000000300000003000000030000000100000001000000030000000300000003000000030000000300000003000000030000000300000003000000030000000300000003000000030000000300000005000000050000000500000005000000070000000500000005000000010000000000000000000000080000000800000000000000080000000000000008000000000000000000000000000000000000000600000006000000040000000500000001000000080000000800000005000000050000000500000001000000010000000100000001000000010000000100000001000000010000000100000001000000050000000800000008000000080000000800000008000000080000000800000008000000080000000800000001000000010000000100000001000000010000000100000001000000010000000100000001000000050000000500000005000000050000000500000005000000050000000500000005000000050000000500000008000000080000000800000008000000050000000800000005000000010000000500000005000000050000000100000008000000080000000800000008000000000000000000000000000000080000000800000008000000080000000500000008000000080000000800000008000000010000000000000000000000000000000000000000000000560000000000000006000000000000006f0000000000000013000000000000002e0000000000000005000000000000000000000000000000030000000000000007000000000000000d0000000000000005000000000000000200000000000000100000000000000000000000000000005f6e6c5f696e7465726e5f6c6f63616c655f64617461000003000000010000006c6f6164617263686976652e6300617263686d6170706564203d3d2026686561646d617000000000686561646d61702e6c656e203d3d20617263686976655f737461742e73745f73697a6500000000005f6e6c5f617263686976655f73756266726565726573000000000000000000005f6e6c5f6c6f61645f6c6f63616c655f66726f6d5f61726368697665000000002f7573722f6c69622f6c6f63616c652f6c6f63616c652d6172636869766500007570706572006c6f77657200616c70686100646967697400786469676974007370616365007072696e7400677261706800626c616e6b00636e74726c0070756e637400616c6e756d0000746f757070657200746f6c6f77657200000000000000bd4a4b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff01000000560000000000000080854a0000000000807b4a0000000000000000000000000080754a0000000000000000000000000080814a00000000000000000000000000000000000000000000000000000000000000000000000000c06b4a00000000000a6c4a0000000000206f4a00000000000100000000000000a8284b0000000000807d4a000000000080774a0000000000480000000000000054000000000000000100000000000000f34b4a0000000000ea4a4b0000000000084b4b000000000004244a0000000000ba5b4a000000000044284b000000000046284b000000000048284b000000000084544a00000000004a284b000000000001000000000000004c284b00000000005c354b000000000054284b00000000005c284b000000000064284b00000000006c284b000000000074284b00000000007c284b000000000084284b00000000008c284b0000000000f34b4a0000000000ea4a4b0000000000084b4b000000000004244a0000000000ba5b4a000000000044284b000000000046284b000000000048284b000000000084544a00000000004a284b00000000003000000000000000310000000000000032000000000000003300000000000000340000000000000035000000000000003600000000000000370000000000000038000000000000003900000000000000490500000000000020134b0000000000c0e84a000000000080d34a000000000080884a0000000000010000000000000094284b0000000000000000000000000000000000000000000000000000000000000000000000000040754a0000000000e0744a000000000080744a000000000020744a0000000000c0734a000000000060734a000000000000734a0000000000a0724a000000000040724a0000000000e0714a000000000080714a000000000020714a000000000040704a0000000000806f4a000000000000000000000000000000000000000000070000000100000004000000070000000f00000018000000380000000000000048000000480000004800000048000000480000004900000000ffffffffffffffffffffffffffffff01010101010101010101010101010101ff00000000000000070000000100000005000000030000001f00000018000000000000000000000028000000000000000000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000000100000005000000030000001f000000180000000000000000000000000000002800000000000000e0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffffe0ffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff03feffff07feffff07000000000000000000000000000000000700000001000000070000000000000003000000180000001c000000000000000000ff03feffff07feffff07000000000000000000000000000000000000000000000000feff00fc010000f801000078000000000000000000000000000000000700000001000000070000000000000003000000180000001c00000000000000feff00fc010000f8010000780000000000000000000000000000000000000000ffffffff000000000000000000000080000000000000000000000000000000000700000001000000070000000000000003000000180000001c000000ffffffff000000000000000000000080000000000000000000000000000000000000000000020000010000000000000000000000000000000000000000000000000000000600000001000000060000000000000001000000180000001c00000000020000010000000000000000000000000000000000000000000000000000000000000000000000feffffffffffffffffffff7f000000000000000000000000000000000700000001000000070000000000000003000000180000001c00000000000000feffffffffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffffffffffff7f000000000000000000000000000000000700000001000000070000000000000003000000180000001c00000000000000ffffffffffffffffffffff7f0000000000000000000000000000000000000000003e0000010000000000000000000000000000000000000000000000000000000600000001000000060000000000000001000000180000001c000000003e00000100000000000000000000000000000000000000000000000000000000000000000000000000ff037e0000007e000000000000000000000000000000000000000700000001000000070000000000000003000000180000001c000000000000000000ff037e0000007e0000000000000000000000000000000000000000000000000000000000ff030000000000000000000000000000000000000000000000000600000001000000060000000000000001000000180000001c000000000000000000ff03000000000000000000000000000000000000000000000000000000000000000000000000feffff07feffff07000000000000000000000000000000000700000001000000060000000100000001000000180000000000000020000000feffff07feffff07000000000000000000000000000000000000000000000000000000000000000000000000feffff0700000000000000000000000000000000070000000100000006000000010000000100000018000000000000002000000000000000feffff070000000000000000000000000000000000000000000000000000000000000000feffff0700000000000000000000000000000000000000000700000001000000060000000100000001000000180000000000000020000000feffff0700000000000000000000000000000000000000000000000000000000800000008100000082000000830000008400000085000000860000008700000088000000890000008a0000008b0000008c0000008d0000008e0000008f000000900000009100000092000000930000009400000095000000960000009700000098000000990000009a0000009b0000009c0000009d0000009e0000009f000000a0000000a1000000a2000000a3000000a4000000a5000000a6000000a7000000a8000000a9000000aa000000ab000000ac000000ad000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000ba000000bb000000bc000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000000c8000000c9000000ca000000cb000000cc000000cd000000ce000000cf000000d0000000d1000000d2000000d3000000d4000000d5000000d6000000d7000000d8000000d9000000da000000db000000dc000000dd000000de000000df000000e0000000e1000000e2000000e3000000e4000000e5000000e6000000e7000000e8000000e9000000ea000000eb000000ec000000ed000000ee000000ef000000f0000000f1000000f2000000f3000000f4000000f5000000f6000000f7000000f8000000f9000000fa000000fb000000fc000000fd000000fe000000ffffffff000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000006100000062000000630000006400000065000000660000006700000068000000690000006a0000006b0000006c0000006d0000006e0000006f000000700000007100000072000000730000007400000075000000760000007700000078000000790000007a0000005b0000005c0000005d0000005e0000005f000000600000006100000062000000630000006400000065000000660000006700000068000000690000006a0000006b0000006c0000006d0000006e0000006f000000700000007100000072000000730000007400000075000000760000007700000078000000790000007a0000007b0000007c0000007d0000007e0000007f000000800000008100000082000000830000008400000085000000860000008700000088000000890000008a0000008b0000008c0000008d0000008e0000008f000000900000009100000092000000930000009400000095000000960000009700000098000000990000009a0000009b0000009c0000009d0000009e0000009f000000a0000000a1000000a2000000a3000000a4000000a5000000a6000000a7000000a8000000a9000000aa000000ab000000ac000000ad000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000ba000000bb000000bc000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000000c8000000c9000000ca000000cb000000cc000000cd000000ce000000cf000000d0000000d1000000d2000000d3000000d4000000d5000000d6000000d7000000d8000000d9000000da000000db000000dc000000dd000000de000000df000000e0000000e1000000e2000000e3000000e4000000e5000000e6000000e7000000e8000000e9000000ea000000eb000000ec000000ed000000ee000000ef000000f0000000f1000000f2000000f3000000f4000000f5000000f6000000f7000000f8000000f9000000fa000000fb000000fc000000fd000000fe000000ff000000800000008100000082000000830000008400000085000000860000008700000088000000890000008a0000008b0000008c0000008d0000008e0000008f000000900000009100000092000000930000009400000095000000960000009700000098000000990000009a0000009b0000009c0000009d0000009e0000009f000000a0000000a1000000a2000000a3000000a4000000a5000000a6000000a7000000a8000000a9000000aa000000ab000000ac000000ad000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000ba000000bb000000bc000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000000c8000000c9000000ca000000cb000000cc000000cd000000ce000000cf000000d0000000d1000000d2000000d3000000d4000000d5000000d6000000d7000000d8000000d9000000da000000db000000dc000000dd000000de000000df000000e0000000e1000000e2000000e3000000e4000000e5000000e6000000e7000000e8000000e9000000ea000000eb000000ec000000ed000000ee000000ef000000f0000000f1000000f2000000f3000000f4000000f5000000f6000000f7000000f8000000f9000000fa000000fb000000fc000000fd000000fe000000ffffffff000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f000000500000005100000052000000530000005400000055000000560000005700000058000000590000005a0000005b0000005c0000005d0000005e0000005f000000600000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f000000500000005100000052000000530000005400000055000000560000005700000058000000590000005a0000007b0000007c0000007d0000007e0000007f000000800000008100000082000000830000008400000085000000860000008700000088000000890000008a0000008b0000008c0000008d0000008e0000008f000000900000009100000092000000930000009400000095000000960000009700000098000000990000009a0000009b0000009c0000009d0000009e0000009f000000a0000000a1000000a2000000a3000000a4000000a5000000a6000000a7000000a8000000a9000000aa000000ab000000ac000000ad000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000ba000000bb000000bc000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000000c8000000c9000000ca000000cb000000cc000000cd000000ce000000cf000000d0000000d1000000d2000000d3000000d4000000d5000000d6000000d7000000d8000000d9000000da000000db000000dc000000dd000000de000000df000000e0000000e1000000e2000000e3000000e4000000e5000000e6000000e7000000e8000000e9000000ea000000eb000000ec000000ed000000ee000000ef000000f0000000f1000000f2000000f3000000f4000000f5000000f6000000f7000000f8000000f9000000fa000000fb000000fc000000fd000000fe000000ff000000000002000000020000000200000002000000020000000200000002000000020000000200000003200000022000000220000002200000022000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000160000004c0000004c0000004c0000004c0000004c0000004c0000004c0000004c0000004c0000004c0000004c0000004c0000004c0000004c0000004c0000008d8000008d8000008d8000008d8000008d8000008d8000008d8000008d8000008d8000008d8000004c0000004c0000004c0000004c0000004c0000004c0000004c0000008d5000008d5000008d5000008d5000008d5000008d5000008c5000008c5000008c5000008c5000008c5000008c5000008c5000008c5000008c5000008c5000008c5000008c5000008c5000008c5000008c5000008c5000008c5000008c5000008c5000008c5000004c0000004c0000004c0000004c0000004c0000004c0000008d6000008d6000008d6000008d6000008d6000008d6000008c6000008c6000008c6000008c6000008c6000008c6000008c6000008c6000008c6000008c6000008c6000008c6000008c6000008c6000008c6000008c6000008c6000008c6000008c6000008c6000004c0000004c0000004c0000004c00000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000200020002000200020002000200020003200220022002200220020002000200020002000200020002000200020002000200020002000200020002000200016004c004c004c004c004c004c004c004c004c004c004c004c004c004c004c008d808d808d808d808d808d808d808d808d808d804c004c004c004c004c004c004c008d508d508d508d508d508d508c508c508c508c508c508c508c508c508c508c508c508c508c508c508c508c508c508c508c508c504c004c004c004c004c004c008d608d608d608d608d608d608c608c608c608c608c608c608c608c608c608c608c608c608c608c608c608c608c608c608c608c604c004c004c004c002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000028000000430000002900000000000000000000003c0000003c00000000000000000000002d000000000000000000000028000000520000002900000000000000000000007500000000000000000000002c00000000000000000000003e0000003e000000000000000000000020000000310000002f0000003400000020000000000000000000000020000000310000002f0000003200000020000000000000000000000020000000330000002f00000034000000200000000000000000000000410000004500000000000000000000007800000000000000000000007300000073000000000000000000000061000000650000000000000000000000490000004a0000000000000000000000690000006a0000000000000000000000270000006e00000000000000000000004f0000004500000000000000000000006f0000006500000000000000000000007300000000000000000000004c0000004a00000000000000000000004c0000006a00000000000000000000006c0000006a00000000000000000000004e0000004a00000000000000000000004e0000006a00000000000000000000006e0000006a0000000000000000000000440000005a0000000000000000000000440000007a0000000000000000000000640000007a00000000000000000000002700000000000000000000005e00000000000000000000002700000000000000000000006000000000000000000000005f00000000000000000000003a00000000000000000000007e000000000000000000000020000000000000000000000020000000000000000000000020000000000000000000000020000000000000000000000020000000000000000000000020000000000000000000000020000000000000000000000020000000000000000000000000000000000000002d00000000000000000000002d00000000000000000000002d00000000000000000000002d00000000000000000000002d0000002d00000000000000000000002d00000000000000000000002700000000000000000000002700000000000000000000002c00000000000000000000002700000000000000000000002200000000000000000000002200000000000000000000002c0000002c00000000000000000000002200000000000000000000002b00000000000000000000006f00000000000000000000002e00000000000000000000002e0000002e00000000000000000000002e0000002e0000002e00000000000000000000002000000000000000000000006000000000000000000000006000000060000000000000000000000060000000600000006000000000000000000000003c00000000000000000000003e0000000000000000000000210000002100000000000000000000002f00000000000000000000003f0000003f00000000000000000000003f000000210000000000000000000000210000003f00000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000430000003d0000000000000000000000520000007300000000000000000000004500000055000000520000000000000000000000490000004e000000520000000000000000000000610000002f000000630000000000000000000000610000002f000000730000000000000000000000430000000000000000000000630000002f0000006f0000000000000000000000630000002f0000007500000000000000000000006700000000000000000000004800000000000000000000004800000000000000000000004800000000000000000000006800000000000000000000004900000000000000000000004900000000000000000000004c00000000000000000000006c00000000000000000000004e00000000000000000000004e0000006f000000000000000000000050000000000000000000000051000000000000000000000052000000000000000000000052000000000000000000000052000000000000000000000054000000450000004c000000000000000000000028000000540000004d0000002900000000000000000000005a00000000000000000000004f000000680000006d00000000000000000000005a00000000000000000000004200000000000000000000004300000000000000000000006500000000000000000000006500000000000000000000004500000000000000000000004600000000000000000000004d00000000000000000000006f00000000000000000000006900000000000000000000004400000000000000000000006400000000000000000000006500000000000000000000006900000000000000000000006a000000000000000000000020000000310000002f0000003300000020000000000000000000000020000000320000002f0000003300000020000000000000000000000020000000310000002f0000003500000020000000000000000000000020000000320000002f0000003500000020000000000000000000000020000000330000002f0000003500000020000000000000000000000020000000340000002f0000003500000020000000000000000000000020000000310000002f0000003600000020000000000000000000000020000000350000002f0000003600000020000000000000000000000020000000310000002f0000003800000020000000000000000000000020000000330000002f0000003800000020000000000000000000000020000000350000002f0000003800000020000000000000000000000020000000370000002f0000003800000020000000000000000000000020000000310000002f000000000000000000000049000000000000000000000049000000490000000000000000000000490000004900000049000000000000000000000049000000560000000000000000000000560000000000000000000000560000004900000000000000000000005600000049000000490000000000000000000000560000004900000049000000490000000000000000000000490000005800000000000000000000005800000000000000000000005800000049000000000000000000000058000000490000004900000000000000000000004c00000000000000000000004300000000000000000000004400000000000000000000004d000000000000000000000069000000000000000000000069000000690000000000000000000000690000006900000069000000000000000000000069000000760000000000000000000000760000000000000000000000760000006900000000000000000000007600000069000000690000000000000000000000760000006900000069000000690000000000000000000000690000007800000000000000000000007800000000000000000000007800000069000000000000000000000078000000690000006900000000000000000000006c00000000000000000000006300000000000000000000006400000000000000000000006d00000000000000000000003c0000002d00000000000000000000002d0000003e00000000000000000000003c0000002d0000003e00000000000000000000003c0000003d00000000000000000000003d0000003e00000000000000000000003c0000003d0000003e00000000000000000000002d00000000000000000000002f00000000000000000000005c00000000000000000000002a00000000000000000000007c00000000000000000000003a00000000000000000000007e00000000000000000000003c0000003d00000000000000000000003e0000003d00000000000000000000003c0000003c00000000000000000000003e0000003e00000000000000000000003c0000003c0000003c00000000000000000000003e0000003e0000003e00000000000000000000004e000000550000004c0000000000000000000000530000004f00000048000000000000000000000053000000540000005800000000000000000000004500000054000000580000000000000000000000450000004f000000540000000000000000000000450000004e00000051000000000000000000000041000000430000004b000000000000000000000042000000450000004c000000000000000000000042000000530000000000000000000000480000005400000000000000000000004c000000460000000000000000000000560000005400000000000000000000004600000046000000000000000000000043000000520000000000000000000000530000004f000000000000000000000053000000490000000000000000000000440000004c00000045000000000000000000000044000000430000003100000000000000000000004400000043000000320000000000000000000000440000004300000033000000000000000000000044000000430000003400000000000000000000004e000000410000004b000000000000000000000053000000590000004e0000000000000000000000450000005400000042000000000000000000000043000000410000004e0000000000000000000000450000004d000000000000000000000053000000550000004200000000000000000000004500000053000000430000000000000000000000460000005300000000000000000000004700000053000000000000000000000052000000530000000000000000000000550000005300000000000000000000005300000050000000000000000000000044000000450000004c00000000000000000000005f00000000000000000000004e0000004c0000000000000000000000280000003100000029000000000000000000000028000000320000002900000000000000000000002800000033000000290000000000000000000000280000003400000029000000000000000000000028000000350000002900000000000000000000002800000036000000290000000000000000000000280000003700000029000000000000000000000028000000380000002900000000000000000000002800000039000000290000000000000000000000280000003100000030000000290000000000000000000000280000003100000031000000290000000000000000000000280000003100000032000000290000000000000000000000280000003100000033000000290000000000000000000000280000003100000034000000290000000000000000000000280000003100000035000000290000000000000000000000280000003100000036000000290000000000000000000000280000003100000037000000290000000000000000000000280000003100000038000000290000000000000000000000280000003100000039000000290000000000000000000000280000003200000030000000290000000000000000000000280000003100000029000000000000000000000028000000320000002900000000000000000000002800000033000000290000000000000000000000280000003400000029000000000000000000000028000000350000002900000000000000000000002800000036000000290000000000000000000000280000003700000029000000000000000000000028000000380000002900000000000000000000002800000039000000290000000000000000000000280000003100000030000000290000000000000000000000280000003100000031000000290000000000000000000000280000003100000032000000290000000000000000000000280000003100000033000000290000000000000000000000280000003100000034000000290000000000000000000000280000003100000035000000290000000000000000000000280000003100000036000000290000000000000000000000280000003100000037000000290000000000000000000000280000003100000038000000290000000000000000000000280000003100000039000000290000000000000000000000280000003200000030000000290000000000000000000000310000002e0000000000000000000000320000002e0000000000000000000000330000002e0000000000000000000000340000002e0000000000000000000000350000002e0000000000000000000000360000002e0000000000000000000000370000002e0000000000000000000000380000002e0000000000000000000000390000002e000000000000000000000031000000300000002e000000000000000000000031000000310000002e000000000000000000000031000000320000002e000000000000000000000031000000330000002e000000000000000000000031000000340000002e000000000000000000000031000000350000002e000000000000000000000031000000360000002e000000000000000000000031000000370000002e000000000000000000000031000000380000002e000000000000000000000031000000390000002e000000000000000000000032000000300000002e0000000000000000000000280000006100000029000000000000000000000028000000620000002900000000000000000000002800000063000000290000000000000000000000280000006400000029000000000000000000000028000000650000002900000000000000000000002800000066000000290000000000000000000000280000006700000029000000000000000000000028000000680000002900000000000000000000002800000069000000290000000000000000000000280000006a000000290000000000000000000000280000006b000000290000000000000000000000280000006c000000290000000000000000000000280000006d000000290000000000000000000000280000006e000000290000000000000000000000280000006f0000002900000000000000000000002800000070000000290000000000000000000000280000007100000029000000000000000000000028000000720000002900000000000000000000002800000073000000290000000000000000000000280000007400000029000000000000000000000028000000750000002900000000000000000000002800000076000000290000000000000000000000280000007700000029000000000000000000000028000000780000002900000000000000000000002800000079000000290000000000000000000000280000007a000000290000000000000000000000280000004100000029000000000000000000000028000000420000002900000000000000000000002800000043000000290000000000000000000000280000004400000029000000000000000000000028000000450000002900000000000000000000002800000046000000290000000000000000000000280000004700000029000000000000000000000028000000480000002900000000000000000000002800000049000000290000000000000000000000280000004a000000290000000000000000000000280000004b000000290000000000000000000000280000004c000000290000000000000000000000280000004d000000290000000000000000000000280000004e000000290000000000000000000000280000004f0000002900000000000000000000002800000050000000290000000000000000000000280000005100000029000000000000000000000028000000520000002900000000000000000000002800000053000000290000000000000000000000280000005400000029000000000000000000000028000000550000002900000000000000000000002800000056000000290000000000000000000000280000005700000029000000000000000000000028000000580000002900000000000000000000002800000059000000290000000000000000000000280000005a000000290000000000000000000000280000006100000029000000000000000000000028000000620000002900000000000000000000002800000063000000290000000000000000000000280000006400000029000000000000000000000028000000650000002900000000000000000000002800000066000000290000000000000000000000280000006700000029000000000000000000000028000000680000002900000000000000000000002800000069000000290000000000000000000000280000006a000000290000000000000000000000280000006b000000290000000000000000000000280000006c000000290000000000000000000000280000006d000000290000000000000000000000280000006e000000290000000000000000000000280000006f0000002900000000000000000000002800000070000000290000000000000000000000280000007100000029000000000000000000000028000000720000002900000000000000000000002800000073000000290000000000000000000000280000007400000029000000000000000000000028000000750000002900000000000000000000002800000076000000290000000000000000000000280000007700000029000000000000000000000028000000780000002900000000000000000000002800000079000000290000000000000000000000280000007a00000029000000000000000000000028000000300000002900000000000000000000002d00000000000000000000007c00000000000000000000002b00000000000000000000002b00000000000000000000002b00000000000000000000002b00000000000000000000002b00000000000000000000002b00000000000000000000002b00000000000000000000002b00000000000000000000002b00000000000000000000006f00000000000000000000003a0000003a0000003d00000000000000000000003d0000003d00000000000000000000003d0000003d0000003d00000000000000000000002000000000000000000000003d00000000000000000000002800000032000000310000002900000000000000000000002800000032000000320000002900000000000000000000002800000032000000330000002900000000000000000000002800000032000000340000002900000000000000000000002800000032000000350000002900000000000000000000002800000032000000360000002900000000000000000000002800000032000000370000002900000000000000000000002800000032000000380000002900000000000000000000002800000032000000390000002900000000000000000000002800000033000000300000002900000000000000000000002800000033000000310000002900000000000000000000002800000033000000320000002900000000000000000000002800000033000000330000002900000000000000000000002800000033000000340000002900000000000000000000002800000033000000350000002900000000000000000000002800000033000000360000002900000000000000000000002800000033000000370000002900000000000000000000002800000033000000380000002900000000000000000000002800000033000000390000002900000000000000000000002800000034000000300000002900000000000000000000002800000034000000310000002900000000000000000000002800000034000000320000002900000000000000000000002800000034000000330000002900000000000000000000002800000034000000340000002900000000000000000000002800000034000000350000002900000000000000000000002800000034000000360000002900000000000000000000002800000034000000370000002900000000000000000000002800000034000000380000002900000000000000000000002800000034000000390000002900000000000000000000002800000035000000300000002900000000000000000000006800000050000000610000000000000000000000640000006100000000000000000000004100000055000000000000000000000062000000610000007200000000000000000000006f00000056000000000000000000000070000000630000000000000000000000700000004100000000000000000000006e000000410000000000000000000000750000004100000000000000000000006d0000004100000000000000000000006b0000004100000000000000000000004b0000004200000000000000000000004d0000004200000000000000000000004700000042000000000000000000000063000000610000006c00000000000000000000006b00000063000000610000006c0000000000000000000000700000004600000000000000000000006e00000046000000000000000000000075000000460000000000000000000000750000006700000000000000000000006d0000006700000000000000000000006b000000670000000000000000000000480000007a00000000000000000000006b000000480000007a00000000000000000000004d000000480000007a000000000000000000000047000000480000007a000000000000000000000054000000480000007a0000000000000000000000750000006c00000000000000000000006d0000006c0000000000000000000000640000006c00000000000000000000006b0000006c0000000000000000000000660000006d00000000000000000000006e0000006d0000000000000000000000750000006d00000000000000000000006d0000006d0000000000000000000000630000006d00000000000000000000006b0000006d00000000000000000000006d0000006d0000005e000000320000000000000000000000630000006d0000005e0000003200000000000000000000006d0000005e0000003200000000000000000000006b0000006d0000005e0000003200000000000000000000006d0000006d0000005e000000330000000000000000000000630000006d0000005e0000003300000000000000000000006d0000005e0000003300000000000000000000006b0000006d0000005e0000003300000000000000000000006d0000002f0000007300000000000000000000006d0000002f000000730000005e000000320000000000000000000000500000006100000000000000000000006b000000500000006100000000000000000000004d00000050000000610000000000000000000000470000005000000061000000000000000000000072000000610000006400000000000000000000007200000061000000640000002f0000007300000000000000000000007200000061000000640000002f000000730000005e000000320000000000000000000000700000007300000000000000000000006e000000730000000000000000000000750000007300000000000000000000006d000000730000000000000000000000700000005600000000000000000000006e000000560000000000000000000000750000005600000000000000000000006d0000005600000000000000000000006b0000005600000000000000000000004d000000560000000000000000000000700000005700000000000000000000006e000000570000000000000000000000750000005700000000000000000000006d0000005700000000000000000000006b0000005700000000000000000000004d000000570000000000000000000000610000002e0000006d0000002e0000000000000000000000420000007100000000000000000000006300000063000000000000000000000063000000640000000000000000000000430000002f0000006b000000670000000000000000000000430000006f0000002e000000000000000000000064000000420000000000000000000000470000007900000000000000000000006800000061000000000000000000000048000000500000000000000000000000690000006e00000000000000000000004b0000004b00000000000000000000004b0000004d00000000000000000000006b0000007400000000000000000000006c0000006d00000000000000000000006c0000006e00000000000000000000006c0000006f0000006700000000000000000000006c0000007800000000000000000000006d0000006200000000000000000000006d000000690000006c00000000000000000000006d0000006f0000006c000000000000000000000050000000480000000000000000000000700000002e0000006d0000002e000000000000000000000050000000500000004d0000000000000000000000500000005200000000000000000000007300000072000000000000000000000053000000760000000000000000000000570000006200000000000000000000006600000066000000000000000000000066000000690000000000000000000000660000006c0000000000000000000000660000006600000069000000000000000000000066000000660000006c0000000000000000000000730000007400000000000000000000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005f00000000000000000000005f00000000000000000000005f00000000000000000000002c00000000000000000000002e00000000000000000000003b00000000000000000000003a00000000000000000000003f00000000000000000000002100000000000000000000002800000000000000000000002900000000000000000000007b00000000000000000000007d00000000000000000000002300000000000000000000002600000000000000000000002a00000000000000000000002b00000000000000000000002d00000000000000000000003c00000000000000000000003e00000000000000000000003d00000000000000000000005c000000000000000000000024000000000000000000000025000000000000000000000040000000000000000000000000000000000000002100000000000000000000002200000000000000000000002300000000000000000000002400000000000000000000002500000000000000000000002600000000000000000000002700000000000000000000002800000000000000000000002900000000000000000000002a00000000000000000000002b00000000000000000000002c00000000000000000000002d00000000000000000000002e00000000000000000000002f00000000000000000000003000000000000000000000003100000000000000000000003200000000000000000000003300000000000000000000003400000000000000000000003500000000000000000000003600000000000000000000003700000000000000000000003800000000000000000000003900000000000000000000003a00000000000000000000003b00000000000000000000003c00000000000000000000003d00000000000000000000003e00000000000000000000003f00000000000000000000004000000000000000000000004100000000000000000000004200000000000000000000004300000000000000000000004400000000000000000000004500000000000000000000004600000000000000000000004700000000000000000000004800000000000000000000004900000000000000000000004a00000000000000000000004b00000000000000000000004c00000000000000000000004d00000000000000000000004e00000000000000000000004f00000000000000000000005000000000000000000000005100000000000000000000005200000000000000000000005300000000000000000000005400000000000000000000005500000000000000000000005600000000000000000000005700000000000000000000005800000000000000000000005900000000000000000000005a00000000000000000000005b00000000000000000000005c00000000000000000000005d00000000000000000000005e00000000000000000000005f00000000000000000000006000000000000000000000006100000000000000000000006200000000000000000000006300000000000000000000006400000000000000000000006500000000000000000000006600000000000000000000006700000000000000000000006800000000000000000000006900000000000000000000006a00000000000000000000006b00000000000000000000006c00000000000000000000006d00000000000000000000006e00000000000000000000006f00000000000000000000007000000000000000000000007100000000000000000000007200000000000000000000007300000000000000000000007400000000000000000000007500000000000000000000007600000000000000000000007700000000000000000000007800000000000000000000007900000000000000000000007a00000000000000000000007b00000000000000000000007c00000000000000000000007d00000000000000000000007e00000000000000000000004100000000000000000000004200000000000000000000004300000000000000000000004400000000000000000000004500000000000000000000004600000000000000000000004700000000000000000000004800000000000000000000004900000000000000000000004a00000000000000000000004b00000000000000000000004c00000000000000000000004d00000000000000000000004e00000000000000000000004f00000000000000000000005000000000000000000000005100000000000000000000005200000000000000000000005300000000000000000000005400000000000000000000005500000000000000000000005600000000000000000000005700000000000000000000005800000000000000000000005900000000000000000000005a00000000000000000000006100000000000000000000006200000000000000000000006300000000000000000000006400000000000000000000006500000000000000000000006600000000000000000000006700000000000000000000006800000000000000000000006900000000000000000000006a00000000000000000000006b00000000000000000000006c00000000000000000000006d00000000000000000000006e00000000000000000000006f00000000000000000000007000000000000000000000007100000000000000000000007200000000000000000000007300000000000000000000007400000000000000000000007500000000000000000000007600000000000000000000007700000000000000000000007800000000000000000000007900000000000000000000007a00000000000000000000004100000000000000000000004200000000000000000000004300000000000000000000004400000000000000000000004500000000000000000000004600000000000000000000004700000000000000000000004800000000000000000000004900000000000000000000004a00000000000000000000004b00000000000000000000004c00000000000000000000004d00000000000000000000004e00000000000000000000004f00000000000000000000005000000000000000000000005100000000000000000000005200000000000000000000005300000000000000000000005400000000000000000000005500000000000000000000005600000000000000000000005700000000000000000000005800000000000000000000005900000000000000000000005a00000000000000000000006100000000000000000000006200000000000000000000006300000000000000000000006400000000000000000000006500000000000000000000006600000000000000000000006700000000000000000000006900000000000000000000006a00000000000000000000006b00000000000000000000006c00000000000000000000006d00000000000000000000006e00000000000000000000006f00000000000000000000007000000000000000000000007100000000000000000000007200000000000000000000007300000000000000000000007400000000000000000000007500000000000000000000007600000000000000000000007700000000000000000000007800000000000000000000007900000000000000000000007a00000000000000000000004100000000000000000000004200000000000000000000004300000000000000000000004400000000000000000000004500000000000000000000004600000000000000000000004700000000000000000000004800000000000000000000004900000000000000000000004a00000000000000000000004b00000000000000000000004c00000000000000000000004d00000000000000000000004e00000000000000000000004f00000000000000000000005000000000000000000000005100000000000000000000005200000000000000000000005300000000000000000000005400000000000000000000005500000000000000000000005600000000000000000000005700000000000000000000005800000000000000000000005900000000000000000000005a00000000000000000000006100000000000000000000006200000000000000000000006300000000000000000000006400000000000000000000006500000000000000000000006600000000000000000000006700000000000000000000006800000000000000000000006900000000000000000000006a00000000000000000000006b00000000000000000000006c00000000000000000000006d00000000000000000000006e00000000000000000000006f00000000000000000000007000000000000000000000007100000000000000000000007200000000000000000000007300000000000000000000007400000000000000000000007500000000000000000000007600000000000000000000007700000000000000000000007800000000000000000000007900000000000000000000007a00000000000000000000004100000000000000000000004300000000000000000000004400000000000000000000004700000000000000000000004a00000000000000000000004b00000000000000000000004e00000000000000000000004f00000000000000000000005000000000000000000000005100000000000000000000005300000000000000000000005400000000000000000000005500000000000000000000005600000000000000000000005700000000000000000000005800000000000000000000005900000000000000000000005a00000000000000000000006100000000000000000000006200000000000000000000006300000000000000000000006400000000000000000000006600000000000000000000006800000000000000000000006900000000000000000000006a00000000000000000000006b00000000000000000000006d00000000000000000000006e00000000000000000000007000000000000000000000007100000000000000000000007200000000000000000000007300000000000000000000007400000000000000000000007500000000000000000000007600000000000000000000007700000000000000000000007800000000000000000000007900000000000000000000007a00000000000000000000004100000000000000000000004200000000000000000000004300000000000000000000004400000000000000000000004500000000000000000000004600000000000000000000004700000000000000000000004800000000000000000000004900000000000000000000004a00000000000000000000004b00000000000000000000004c00000000000000000000004d00000000000000000000004e00000000000000000000004f00000000000000000000005000000000000000000000005100000000000000000000005200000000000000000000005300000000000000000000005400000000000000000000005500000000000000000000005600000000000000000000005700000000000000000000005800000000000000000000005900000000000000000000005a00000000000000000000006100000000000000000000006200000000000000000000006300000000000000000000006400000000000000000000006500000000000000000000006600000000000000000000006700000000000000000000006800000000000000000000006900000000000000000000006a00000000000000000000006b00000000000000000000006c00000000000000000000006d00000000000000000000006e00000000000000000000006f00000000000000000000007000000000000000000000007100000000000000000000007200000000000000000000007300000000000000000000007400000000000000000000007500000000000000000000007600000000000000000000007700000000000000000000007800000000000000000000007900000000000000000000007a00000000000000000000004100000000000000000000004200000000000000000000004400000000000000000000004500000000000000000000004600000000000000000000004700000000000000000000004a00000000000000000000004b00000000000000000000004c00000000000000000000004d00000000000000000000004e00000000000000000000004f00000000000000000000005000000000000000000000005100000000000000000000005300000000000000000000005400000000000000000000005500000000000000000000005600000000000000000000005700000000000000000000005800000000000000000000005900000000000000000000006100000000000000000000006200000000000000000000006300000000000000000000006400000000000000000000006500000000000000000000006600000000000000000000006700000000000000000000006800000000000000000000006900000000000000000000006a00000000000000000000006b00000000000000000000006c00000000000000000000006d00000000000000000000006e00000000000000000000006f00000000000000000000007000000000000000000000007100000000000000000000007200000000000000000000007300000000000000000000007400000000000000000000007500000000000000000000007600000000000000000000007700000000000000000000007800000000000000000000007900000000000000000000007a00000000000000000000004100000000000000000000004200000000000000000000004400000000000000000000004500000000000000000000004600000000000000000000004700000000000000000000004900000000000000000000004a00000000000000000000004b00000000000000000000004c00000000000000000000004d00000000000000000000004f00000000000000000000005300000000000000000000005400000000000000000000005500000000000000000000005600000000000000000000005700000000000000000000005800000000000000000000005900000000000000000000006100000000000000000000006200000000000000000000006300000000000000000000006400000000000000000000006500000000000000000000006600000000000000000000006700000000000000000000006800000000000000000000006900000000000000000000006a00000000000000000000006b00000000000000000000006c00000000000000000000006d00000000000000000000006e00000000000000000000006f00000000000000000000007000000000000000000000007100000000000000000000007200000000000000000000007300000000000000000000007400000000000000000000007500000000000000000000007600000000000000000000007700000000000000000000007800000000000000000000007900000000000000000000007a00000000000000000000004100000000000000000000004200000000000000000000004300000000000000000000004400000000000000000000004500000000000000000000004600000000000000000000004700000000000000000000004800000000000000000000004900000000000000000000004a00000000000000000000004b00000000000000000000004c00000000000000000000004d00000000000000000000004e00000000000000000000004f00000000000000000000005000000000000000000000005100000000000000000000005200000000000000000000005300000000000000000000005400000000000000000000005500000000000000000000005600000000000000000000005700000000000000000000005800000000000000000000005900000000000000000000005a00000000000000000000006100000000000000000000006200000000000000000000006300000000000000000000006400000000000000000000006500000000000000000000006600000000000000000000006700000000000000000000006800000000000000000000006900000000000000000000006a00000000000000000000006b00000000000000000000006c00000000000000000000006d00000000000000000000006e00000000000000000000006f00000000000000000000007000000000000000000000007100000000000000000000007200000000000000000000007300000000000000000000007400000000000000000000007500000000000000000000007600000000000000000000007700000000000000000000007800000000000000000000007900000000000000000000007a00000000000000000000004100000000000000000000004200000000000000000000004300000000000000000000004400000000000000000000004500000000000000000000004600000000000000000000004700000000000000000000004800000000000000000000004900000000000000000000004a00000000000000000000004b00000000000000000000004c00000000000000000000004d00000000000000000000004e00000000000000000000004f00000000000000000000005000000000000000000000005100000000000000000000005200000000000000000000005300000000000000000000005400000000000000000000005500000000000000000000005600000000000000000000005700000000000000000000005800000000000000000000005900000000000000000000005a00000000000000000000006100000000000000000000006200000000000000000000006300000000000000000000006400000000000000000000006500000000000000000000006600000000000000000000006700000000000000000000006800000000000000000000006900000000000000000000006a00000000000000000000006b00000000000000000000006c00000000000000000000006d00000000000000000000006e00000000000000000000006f00000000000000000000007000000000000000000000007100000000000000000000007200000000000000000000007300000000000000000000007400000000000000000000007500000000000000000000007600000000000000000000007700000000000000000000007800000000000000000000007900000000000000000000007a00000000000000000000004100000000000000000000004200000000000000000000004300000000000000000000004400000000000000000000004500000000000000000000004600000000000000000000004700000000000000000000004800000000000000000000004900000000000000000000004a00000000000000000000004b00000000000000000000004c00000000000000000000004d00000000000000000000004e00000000000000000000004f00000000000000000000005000000000000000000000005100000000000000000000005200000000000000000000005300000000000000000000005400000000000000000000005500000000000000000000005600000000000000000000005700000000000000000000005800000000000000000000005900000000000000000000005a00000000000000000000006100000000000000000000006200000000000000000000006300000000000000000000006400000000000000000000006500000000000000000000006600000000000000000000006700000000000000000000006800000000000000000000006900000000000000000000006a00000000000000000000006b00000000000000000000006c00000000000000000000006d00000000000000000000006e00000000000000000000006f00000000000000000000007000000000000000000000007100000000000000000000007200000000000000000000007300000000000000000000007400000000000000000000007500000000000000000000007600000000000000000000007700000000000000000000007800000000000000000000007900000000000000000000007a00000000000000000000004100000000000000000000004200000000000000000000004300000000000000000000004400000000000000000000004500000000000000000000004600000000000000000000004700000000000000000000004800000000000000000000004900000000000000000000004a00000000000000000000004b00000000000000000000004c00000000000000000000004d00000000000000000000004e00000000000000000000004f00000000000000000000005000000000000000000000005100000000000000000000005200000000000000000000005300000000000000000000005400000000000000000000005500000000000000000000005600000000000000000000005700000000000000000000005800000000000000000000005900000000000000000000005a00000000000000000000006100000000000000000000006200000000000000000000006300000000000000000000006400000000000000000000006500000000000000000000006600000000000000000000006700000000000000000000006800000000000000000000006900000000000000000000006a00000000000000000000006b00000000000000000000006c00000000000000000000006d00000000000000000000006e00000000000000000000006f00000000000000000000007000000000000000000000007100000000000000000000007200000000000000000000007300000000000000000000007400000000000000000000007500000000000000000000007600000000000000000000007700000000000000000000007800000000000000000000007900000000000000000000007a00000000000000000000004100000000000000000000004200000000000000000000004300000000000000000000004400000000000000000000004500000000000000000000004600000000000000000000004700000000000000000000004800000000000000000000004900000000000000000000004a00000000000000000000004b00000000000000000000004c00000000000000000000004d00000000000000000000004e00000000000000000000004f00000000000000000000005000000000000000000000005100000000000000000000005200000000000000000000005300000000000000000000005400000000000000000000005500000000000000000000005600000000000000000000005700000000000000000000005800000000000000000000005900000000000000000000005a00000000000000000000006100000000000000000000006200000000000000000000006300000000000000000000006400000000000000000000006500000000000000000000006600000000000000000000006700000000000000000000006800000000000000000000006900000000000000000000006a00000000000000000000006b00000000000000000000006c00000000000000000000006d00000000000000000000006e00000000000000000000006f00000000000000000000007000000000000000000000007100000000000000000000007200000000000000000000007300000000000000000000007400000000000000000000007500000000000000000000007600000000000000000000007700000000000000000000007800000000000000000000007900000000000000000000007a00000000000000000000004100000000000000000000004200000000000000000000004300000000000000000000004400000000000000000000004500000000000000000000004600000000000000000000004700000000000000000000004800000000000000000000004900000000000000000000004a00000000000000000000004b00000000000000000000004c00000000000000000000004d00000000000000000000004e00000000000000000000004f00000000000000000000005000000000000000000000005100000000000000000000005200000000000000000000005300000000000000000000005400000000000000000000005500000000000000000000005600000000000000000000005700000000000000000000005800000000000000000000005900000000000000000000005a00000000000000000000006100000000000000000000006200000000000000000000006300000000000000000000006400000000000000000000006500000000000000000000006600000000000000000000006700000000000000000000006800000000000000000000006900000000000000000000006a00000000000000000000006b00000000000000000000006c00000000000000000000006d00000000000000000000006e00000000000000000000006f00000000000000000000007000000000000000000000007100000000000000000000007200000000000000000000007300000000000000000000007400000000000000000000007500000000000000000000007600000000000000000000007700000000000000000000007800000000000000000000007900000000000000000000007a00000000000000000000003000000000000000000000003100000000000000000000003200000000000000000000003300000000000000000000003400000000000000000000003500000000000000000000003600000000000000000000003700000000000000000000003800000000000000000000003900000000000000000000003000000000000000000000003100000000000000000000003200000000000000000000003300000000000000000000003400000000000000000000003500000000000000000000003600000000000000000000003700000000000000000000003800000000000000000000003900000000000000000000003000000000000000000000003100000000000000000000003200000000000000000000003300000000000000000000003400000000000000000000003500000000000000000000003600000000000000000000003700000000000000000000003800000000000000000000003900000000000000000000003000000000000000000000003100000000000000000000003200000000000000000000003300000000000000000000003400000000000000000000003500000000000000000000003600000000000000000000003700000000000000000000003800000000000000000000003900000000000000000000003000000000000000000000003100000000000000000000003200000000000000000000003300000000000000000000003400000000000000000000003500000000000000000000003600000000000000000000003700000000000000000000003800000000000000000000003900000000000000000000000000000000000000000000000000000003000000080000000c0000000f00000014000000170000001a0000001e000000250000002c00000033000000370000003a0000003e00000042000000460000004a0000004e0000005200000056000000590000005d0000006100000065000000690000006d0000007100000075000000790000007d000000800000008300000086000000890000008c0000008f0000009200000095000000980000009b0000009e000000a1000000a4000000a7000000aa000000ac000000af000000b2000000b5000000b8000000bc000000bf000000c2000000c5000000c8000000cb000000ce000000d1000000d5000000d8000000db000000de000000e1000000e5000000ea000000ed000000f0000000f4000000f9000000fc000000ff00000003010000060100000a0100000e010000120100001501000017010000190100001b0100001d01000021010000250100002a0100002f01000034010000390100003c0100004101000046010000490100004c0100004f0100005201000055010000580100005b0100005e0100006101000064010000680100006b0100006e0100007101000074010000770100007c01000082010000850100008a0100008d010000900100009301000096010000990100009c0100009f010000a2010000a5010000a8010000ab010000ae010000b1010000b4010000b7010000be010000c5010000cc010000d3010000da010000e1010000e8010000ef010000f6010000fd010000040200000b0200001002000013020000170200001c0200002002000023020000270200002c0200003202000036020000390200003d0200004202000045020000480200004b0200004e02000051020000550200005a0200005e02000061020000650200006a0200007002000074020000770200007b020000800200008302000086020000890200008c0200009002000094020000990200009d020000a1020000a6020000a9020000ac020000af020000b2020000b5020000b8020000bb020000bf020000c3020000c7020000cb020000d0020000d5020000da020000df020000e4020000e9020000ee020000f3020000f8020000fd0200000103000005030000090300000d0300001103000015030000190300001d03000022030000270300002c03000031030000360300003b03000040030000450300004a0300004e03000053030000580300005c0300006003000064030000680300006c0300007103000074030000780300007d03000082030000870300008c03000091030000960300009b030000a0030000a5030000ab030000b1030000b7030000bd030000c3030000c9030000cf030000d5030000db030000e1030000e7030000ec030000f1030000f6030000fb03000000040000050400000a0400000f040000140400001a04000020040000260400002c04000032040000380400003e040000440400004a04000050040000560400005a0400005e04000062040000660400006a0400006e04000072040000760400007a0400007f04000084040000890400008e04000093040000980400009d040000a2040000a7040000ac040000b1040000b6040000bb040000c0040000c5040000ca040000cf040000d4040000d9040000de040000e3040000e8040000ed040000f2040000f7040000fc04000001050000060500000b05000010050000150500001a0500001f05000024050000290500002e05000033050000380500003d05000042050000470500004c05000051050000560500005b05000060050000650500006a0500006f05000074050000790500007e05000083050000880500008d05000092050000970500009c050000a1050000a6050000ab050000b0050000b5050000ba050000bf050000c4050000c9050000ce050000d3050000d8050000dd050000e2050000e7050000ec050000f1050000f6050000fb05000000060000050600000a0600000f06000014060000190600001e06000023060000280600002d06000032060000370600003c0600003f0600004206000045060000480600004b0600004e0600005106000054060000570600005a0600005d0600006006000065060000690600006e06000071060000740600007a06000080060000860600008c06000092060000980600009e060000a4060000aa060000b0060000b6060000bc060000c2060000c8060000ce060000d4060000da060000e0060000e6060000ec060000f2060000f8060000fe060000040700000a07000010070000160700001c07000022070000280700002d07000031070000350700003a0700003e07000042070000460700004a0700004e07000052070000560700005a0700005e07000062070000670700006d0700007107000075070000790700007d0700008107000085070000890700008e07000093070000980700009d070000a1070000a5070000a9070000ad070000b1070000b5070000b9070000bd070000c1070000c5070000cb070000d1070000d6070000dc070000e2070000e8070000ed070000f3070000f8070000ff07000003080000080800000d08000012080000170800001e080000270800002b0800002f08000033080000370800003b0800003f08000043080000470800004b0800004f08000053080000570800005b0800005f08000063080000670800006d0800007108000075080000790800007f08000084080000880800008c0800009008000094080000980800009c080000a0080000a4080000a8080000ac080000b1080000b5080000b9080000be080000c3080000c7080000cd080000d2080000d6080000da080000de080000e2080000e6080000ea080000ee080000f3080000f8080000fc080000ff08000001090000030900000509000007090000090900000b0900000d0900000f09000011090000130900001509000017090000190900001b0900001d0900001f0900002209000025090000280900002b0900002e0900003109000034090000370900003a0900003d090000400900004309000046090000490900004c0900004f0900005209000055090000580900005b0900005e0900006109000064090000670900006a0900006c0900006f0900007209000075090000780900007b0900007e0900008109000084090000870900008a0900008d090000900900009309000096090000990900009c0900009f090000a2090000a5090000a8090000ab090000ae090000b1090000b4090000b7090000ba090000bd090000c0090000c3090000c6090000c9090000cc090000cf090000d2090000d5090000d8090000db090000de090000e1090000e4090000e7090000ea090000ed090000f0090000f3090000f6090000f9090000fc090000ff090000020a0000050a0000080a00000b0a00000e0a0000110a0000140a0000170a00001a0a00001d0a0000200a0000230a0000260a0000290a00002c0a00002f0a0000320a0000350a0000380a00003b0a00003e0a0000410a0000440a0000470a00004a0a00004d0a0000500a0000530a0000560a0000590a00005c0a00005f0a0000620a0000650a0000680a00006b0a00006e0a0000710a0000740a0000770a00007a0a00007d0a0000800a0000830a0000860a0000890a00008c0a00008f0a0000920a0000950a0000980a00009b0a00009e0a0000a10a0000a40a0000a70a0000aa0a0000ad0a0000b00a0000b30a0000b60a0000b90a0000bc0a0000bf0a0000c20a0000c50a0000c80a0000cb0a0000ce0a0000d10a0000d40a0000d70a0000da0a0000dd0a0000e00a0000e30a0000e60a0000e90a0000ec0a0000ef0a0000f20a0000f50a0000f80a0000fb0a0000fe0a0000010b0000040b0000070b00000a0b00000d0b0000100b0000130b0000160b0000190b00001c0b00001f0b0000220b0000250b0000280b00002b0b00002e0b0000310b0000340b0000370b00003a0b00003d0b0000400b0000430b0000460b0000490b00004c0b00004f0b0000520b0000550b0000580b00005b0b00005e0b0000610b0000640b0000670b00006a0b00006d0b0000700b0000730b0000760b0000790b00007c0b00007f0b0000820b0000850b0000880b00008b0b00008e0b0000910b0000940b0000970b00009a0b00009d0b0000a00b0000a30b0000a60b0000a90b0000ac0b0000af0b0000b20b0000b50b0000b80b0000bb0b0000be0b0000c10b0000c40b0000c70b0000ca0b0000cd0b0000d00b0000d30b0000d60b0000d90b0000dc0b0000df0b0000e20b0000e50b0000e80b0000eb0b0000ee0b0000f10b0000f40b0000f70b0000fa0b0000fd0b0000000c0000030c0000060c0000090c00000c0c00000f0c0000120c0000150c0000180c00001b0c00001e0c0000210c0000240c0000270c00002a0c00002d0c0000300c0000330c0000360c0000390c00003c0c00003f0c0000420c0000450c0000480c00004b0c00004e0c0000510c0000540c0000570c00005a0c00005d0c0000600c0000630c0000660c0000690c00006c0c00006f0c0000720c0000750c0000780c00007b0c00007e0c0000810c0000840c0000870c00008a0c00008d0c0000900c0000930c0000960c0000990c00009c0c00009f0c0000a20c0000a50c0000a80c0000ab0c0000ae0c0000b10c0000b40c0000b70c0000ba0c0000bd0c0000c00c0000c30c0000c60c0000c90c0000cc0c0000cf0c0000d20c0000d50c0000d80c0000db0c0000de0c0000e10c0000e40c0000e70c0000ea0c0000ed0c0000f00c0000f30c0000f60c0000f90c0000fc0c0000ff0c0000020d0000050d0000080d00000b0d00000e0d0000110d0000140d0000170d00001a0d00001d0d0000200d0000230d0000260d0000290d00002c0d00002f0d0000320d0000350d0000380d00003b0d00003e0d0000410d0000440d0000470d00004a0d00004d0d0000500d0000530d0000560d0000590d00005c0d00005f0d0000620d0000650d0000680d00006b0d00006e0d0000710d0000740d0000770d00007a0d00007d0d0000800d0000830d0000860d0000890d00008c0d00008f0d0000920d0000950d0000980d00009b0d00009e0d0000a10d0000a40d0000a70d0000aa0d0000ad0d0000b00d0000b30d0000b60d0000b90d0000bc0d0000bf0d0000c20d0000c50d0000c80d0000cb0d0000ce0d0000d10d0000d40d0000d70d0000da0d0000dd0d0000e00d0000e30d0000e60d0000e90d0000ec0d0000ef0d0000f20d0000f50d0000f80d0000fb0d0000fe0d0000010e0000040e0000070e00000a0e00000d0e0000100e0000130e0000160e0000190e00001c0e00001f0e0000220e0000250e0000280e00002b0e00002e0e0000310e0000340e0000370e00003a0e00003d0e0000400e0000430e0000460e0000490e00004c0e00004f0e0000520e0000550e0000580e00005b0e00005e0e0000610e0000640e0000670e00006a0e00006d0e0000700e0000730e0000760e0000790e00007c0e00007f0e0000820e0000850e0000880e00008b0e00008e0e0000910e0000940e0000970e00009a0e00009d0e0000a00e0000a30e0000a60e0000a90e0000ac0e0000af0e0000b20e0000b50e0000b80e0000bb0e0000be0e0000c10e0000c40e0000c70e0000ca0e0000cd0e0000d00e0000d30e0000d60e0000d90e0000dc0e0000df0e0000e20e0000e50e0000e80e0000eb0e0000ee0e0000f10e0000f40e0000f70e0000fa0e0000fd0e0000000f0000030f0000060f0000090f00000c0f00000f0f0000120f0000150f0000180f00001b0f00001e0f0000210f0000240f0000270f00002a0f00002d0f0000300f0000330f0000360f0000390f00003c0f00003f0f0000420f0000450f0000480f00004b0f00004e0f0000510f0000540f0000570f00005a0f00005d0f0000600f0000630f0000660f0000690f00006c0f00006f0f0000720f0000750f0000780f00007b0f00007e0f0000810f0000840f0000870f00008a0f00008d0f0000900f0000930f0000960f0000990f00009c0f00009f0f0000a20f0000a50f0000a80f0000ab0f0000ae0f0000b10f0000b40f0000b70f0000ba0f0000bd0f0000c00f0000c30f0000c60f0000c90f0000cc0f0000cf0f0000d20f0000d50f0000d80f0000db0f0000de0f0000e10f0000e40f0000e70f0000ea0f0000ed0f0000f00f0000f30f0000f60f0000f90f0000fc0f0000ff0f00000210000005100000081000000b1000000e1000001110000014100000171000001a1000001d100000201000002310000026100000291000002c1000002f1000003210000035100000381000003b1000003e1000004110000044100000471000004a1000004d100000501000005310000056100000591000005c1000005f1000006210000065100000681000006b1000006e1000007110000074100000771000007a1000007d100000801000008310000086100000891000008c1000008f1000009210000095100000981000009b1000009e100000a1100000a4100000a7100000aa100000ad100000b0100000b3100000b6100000b9100000bc100000bf100000c2100000c5100000c8100000cb100000ce100000d1100000d4100000d7100000da100000dd100000e0100000e3100000e6100000e9100000ec100000ef100000f2100000f5100000f8100000fb100000fe1000000111000004110000071100000a1100000d110000101100001311000016110000191100001c1100001f1100002211000025110000281100002b1100002e1100003111000034110000371100003a1100003d110000401100004311000046110000491100004c1100004f1100005211000055110000581100005b1100005e1100006111000064110000671100006a1100006d110000701100007311000076110000791100007c1100007f1100008211000085110000881100008b1100008e1100009111000094110000971100009a1100009d110000a0110000a3110000a6110000a9110000ac110000af110000b2110000b5110000b8110000bb110000be110000c1110000c4110000c7110000ca110000cd110000d0110000d3110000d6110000d9110000dc110000df110000e2110000e5110000e8110000eb110000ee110000f1110000f4110000f7110000fa110000fd110000001200000312000006120000091200000c1200000f1200001212000015120000181200001b1200001e1200002112000024120000271200002a1200002d120000301200003312000036120000391200003c1200003f1200004212000045120000481200004b1200004e1200005112000054120000571200005a1200005d120000601200006312000066120000691200006c1200006f1200007212000075120000781200007b1200007e1200008112000084120000871200008a1200008d120000901200009312000096120000991200009c1200009f120000a2120000a5120000a8120000ab120000ae120000b1120000b4120000b7120000ba12000000000000000000000000000000000000000000000000000000000000a000000000000000a900000000000000ab00000000000000ad00000000000000ae00000000000000b500000000000000b800000000000000bb00000000000000bc00000000000000bd00000000000000be00000000000000c600000000000000d700000000000000df00000000000000e600000000000000320100000000000033010000000000004901000000000000520100000000000053010000000000007f01000000000000c701000000000000c801000000000000c901000000000000ca01000000000000cb01000000000000cc01000000000000f101000000000000f201000000000000f301000000000000bc02000000000000c602000000000000c802000000000000cb02000000000000cd02000000000000d002000000000000dc0200000000000002200000000000000320000000000000042000000000000005200000000000000620000000000000082000000000000009200000000000000a200000000000000b20000000000000102000000000000011200000000000001220000000000000132000000000000014200000000000001520000000000000182000000000000019200000000000001a200000000000001b200000000000001c200000000000001d200000000000001e200000000000001f20000000000000202000000000000022200000000000002420000000000000252000000000000026200000000000002f2000000000000035200000000000003620000000000000372000000000000039200000000000003a200000000000003c2000000000000044200000000000004720000000000000482000000000000049200000000000005f200000000000006020000000000000612000000000000062200000000000006320000000000000a120000000000000a820000000000000ac20000000000000b920000000000000002100000000000001210000000000000221000000000000052100000000000006210000000000000a210000000000000b210000000000000c210000000000000d210000000000000e2100000000000010210000000000001121000000000000122100000000000013210000000000001521000000000000162100000000000019210000000000001a210000000000001b210000000000001c210000000000001d21000000000000212100000000000022210000000000002421000000000000262100000000000028210000000000002c210000000000002d210000000000002e210000000000002f21000000000000302100000000000031210000000000003321000000000000342100000000000039210000000000004521000000000000462100000000000047210000000000004821000000000000492100000000000053210000000000005421000000000000552100000000000056210000000000005721000000000000582100000000000059210000000000005a210000000000005b210000000000005c210000000000005d210000000000005e210000000000005f2100000000000060210000000000006121000000000000622100000000000063210000000000006421000000000000652100000000000066210000000000006721000000000000682100000000000069210000000000006a210000000000006b210000000000006c210000000000006d210000000000006e210000000000006f2100000000000070210000000000007121000000000000722100000000000073210000000000007421000000000000752100000000000076210000000000007721000000000000782100000000000079210000000000007a210000000000007b210000000000007c210000000000007d210000000000007e210000000000007f21000000000000902100000000000092210000000000009421000000000000d021000000000000d221000000000000d4210000000000001222000000000000152200000000000016220000000000001722000000000000232200000000000036220000000000003c22000000000000642200000000000065220000000000006a220000000000006b22000000000000d822000000000000d92200000000000000240000000000000124000000000000022400000000000003240000000000000424000000000000052400000000000006240000000000000724000000000000082400000000000009240000000000000a240000000000000b240000000000000c240000000000000d240000000000000e240000000000000f2400000000000010240000000000001124000000000000122400000000000013240000000000001424000000000000152400000000000016240000000000001724000000000000182400000000000019240000000000001a240000000000001b240000000000001c240000000000001d240000000000001e240000000000001f24000000000000202400000000000021240000000000002324000000000000242400000000000060240000000000006124000000000000622400000000000063240000000000006424000000000000652400000000000066240000000000006724000000000000682400000000000069240000000000006a240000000000006b240000000000006c240000000000006d240000000000006e240000000000006f2400000000000070240000000000007124000000000000722400000000000073240000000000007424000000000000752400000000000076240000000000007724000000000000782400000000000079240000000000007a240000000000007b240000000000007c240000000000007d240000000000007e240000000000007f2400000000000080240000000000008124000000000000822400000000000083240000000000008424000000000000852400000000000086240000000000008724000000000000882400000000000089240000000000008a240000000000008b240000000000008c240000000000008d240000000000008e240000000000008f2400000000000090240000000000009124000000000000922400000000000093240000000000009424000000000000952400000000000096240000000000009724000000000000982400000000000099240000000000009a240000000000009b240000000000009c240000000000009d240000000000009e240000000000009f24000000000000a024000000000000a124000000000000a224000000000000a324000000000000a424000000000000a524000000000000a624000000000000a724000000000000a824000000000000a924000000000000aa24000000000000ab24000000000000ac24000000000000ad24000000000000ae24000000000000af24000000000000b024000000000000b124000000000000b224000000000000b324000000000000b424000000000000b524000000000000b624000000000000b724000000000000b824000000000000b924000000000000ba24000000000000bb24000000000000bc24000000000000bd24000000000000be24000000000000bf24000000000000c024000000000000c124000000000000c224000000000000c324000000000000c424000000000000c524000000000000c624000000000000c724000000000000c824000000000000c924000000000000ca24000000000000cb24000000000000cc24000000000000cd24000000000000ce24000000000000cf24000000000000d024000000000000d124000000000000d224000000000000d324000000000000d424000000000000d524000000000000d624000000000000d724000000000000d824000000000000d924000000000000da24000000000000db24000000000000dc24000000000000dd24000000000000de24000000000000df24000000000000e024000000000000e124000000000000e224000000000000e324000000000000e424000000000000e524000000000000e624000000000000e724000000000000e824000000000000e924000000000000ea24000000000000002500000000000002250000000000000c250000000000001025000000000000142500000000000018250000000000001c2500000000000024250000000000002c2500000000000034250000000000003c25000000000000e625000000000000742a000000000000752a000000000000762a0000000000000030000000000000a0300000000000005132000000000000523200000000000053320000000000005432000000000000553200000000000056320000000000005732000000000000583200000000000059320000000000005a320000000000005b320000000000005c320000000000005d320000000000005e320000000000005f32000000000000b132000000000000b232000000000000b332000000000000b432000000000000b532000000000000b632000000000000b732000000000000b832000000000000b932000000000000ba32000000000000bb32000000000000bc32000000000000bd32000000000000be32000000000000bf3200000000000071330000000000007233000000000000733300000000000074330000000000007533000000000000763300000000000080330000000000008133000000000000823300000000000083330000000000008433000000000000853300000000000086330000000000008733000000000000883300000000000089330000000000008a330000000000008b330000000000008c330000000000008d330000000000008e330000000000008f3300000000000090330000000000009133000000000000923300000000000093330000000000009433000000000000953300000000000096330000000000009733000000000000983300000000000099330000000000009a330000000000009b330000000000009c330000000000009d330000000000009e330000000000009f33000000000000a033000000000000a133000000000000a233000000000000a333000000000000a433000000000000a533000000000000a633000000000000a733000000000000a833000000000000a933000000000000aa33000000000000ab33000000000000ac33000000000000ad33000000000000ae33000000000000af33000000000000b033000000000000b133000000000000b233000000000000b333000000000000b433000000000000b533000000000000b633000000000000b733000000000000b833000000000000b933000000000000ba33000000000000bb33000000000000bc33000000000000bd33000000000000be33000000000000bf33000000000000c233000000000000c333000000000000c433000000000000c533000000000000c633000000000000c733000000000000c833000000000000c933000000000000ca33000000000000cb33000000000000cc33000000000000cd33000000000000ce33000000000000cf33000000000000d033000000000000d133000000000000d233000000000000d333000000000000d433000000000000d533000000000000d633000000000000d733000000000000d833000000000000d933000000000000da33000000000000db33000000000000dc33000000000000dd3300000000000000fb00000000000001fb00000000000002fb00000000000003fb00000000000004fb00000000000006fb00000000000029fb00000000000000fe00000000000001fe00000000000002fe00000000000003fe00000000000004fe00000000000005fe00000000000006fe00000000000007fe00000000000008fe00000000000009fe0000000000000afe0000000000000bfe0000000000000cfe0000000000000dfe0000000000000efe0000000000000ffe0000000000004dfe0000000000004efe0000000000004ffe00000000000050fe00000000000052fe00000000000054fe00000000000055fe00000000000056fe00000000000057fe00000000000059fe0000000000005afe0000000000005bfe0000000000005cfe0000000000005ffe00000000000060fe00000000000061fe00000000000062fe00000000000063fe00000000000064fe00000000000065fe00000000000066fe00000000000068fe00000000000069fe0000000000006afe0000000000006bfe000000000000fffe00000000000001ff00000000000002ff00000000000003ff00000000000004ff00000000000005ff00000000000006ff00000000000007ff00000000000008ff00000000000009ff0000000000000aff0000000000000bff0000000000000cff0000000000000dff0000000000000eff0000000000000fff00000000000010ff00000000000011ff00000000000012ff00000000000013ff00000000000014ff00000000000015ff00000000000016ff00000000000017ff00000000000018ff00000000000019ff0000000000001aff0000000000001bff0000000000001cff0000000000001dff0000000000001eff0000000000001fff00000000000020ff00000000000021ff00000000000022ff00000000000023ff00000000000024ff00000000000025ff00000000000026ff00000000000027ff00000000000028ff00000000000029ff0000000000002aff0000000000002bff0000000000002cff0000000000002dff0000000000002eff0000000000002fff00000000000030ff00000000000031ff00000000000032ff00000000000033ff00000000000034ff00000000000035ff00000000000036ff00000000000037ff00000000000038ff00000000000039ff0000000000003aff0000000000003bff0000000000003cff0000000000003dff0000000000003eff0000000000003fff00000000000040ff00000000000041ff00000000000042ff00000000000043ff00000000000044ff00000000000045ff00000000000046ff00000000000047ff00000000000048ff00000000000049ff0000000000004aff0000000000004bff0000000000004cff0000000000004dff0000000000004eff0000000000004fff00000000000050ff00000000000051ff00000000000052ff00000000000053ff00000000000054ff00000000000055ff00000000000056ff00000000000057ff00000000000058ff00000000000059ff0000000000005aff0000000000005bff0000000000005cff0000000000005dff0000000000005eff00000000000000d401000000000001d401000000000002d401000000000003d401000000000004d401000000000005d401000000000006d401000000000007d401000000000008d401000000000009d40100000000000ad40100000000000bd40100000000000cd40100000000000dd40100000000000ed40100000000000fd401000000000010d401000000000011d401000000000012d401000000000013d401000000000014d401000000000015d401000000000016d401000000000017d401000000000018d401000000000019d40100000000001ad40100000000001bd40100000000001cd40100000000001dd40100000000001ed40100000000001fd401000000000020d401000000000021d401000000000022d401000000000023d401000000000024d401000000000025d401000000000026d401000000000027d401000000000028d401000000000029d40100000000002ad40100000000002bd40100000000002cd40100000000002dd40100000000002ed40100000000002fd401000000000030d401000000000031d401000000000032d401000000000033d401000000000034d401000000000035d401000000000036d401000000000037d401000000000038d401000000000039d40100000000003ad40100000000003bd40100000000003cd40100000000003dd40100000000003ed40100000000003fd401000000000040d401000000000041d401000000000042d401000000000043d401000000000044d401000000000045d401000000000046d401000000000047d401000000000048d401000000000049d40100000000004ad40100000000004bd40100000000004cd40100000000004dd40100000000004ed40100000000004fd401000000000050d401000000000051d401000000000052d401000000000053d401000000000054d401000000000056d401000000000057d401000000000058d401000000000059d40100000000005ad40100000000005bd40100000000005cd40100000000005dd40100000000005ed40100000000005fd401000000000060d401000000000061d401000000000062d401000000000063d401000000000064d401000000000065d401000000000066d401000000000067d401000000000068d401000000000069d40100000000006ad40100000000006bd40100000000006cd40100000000006dd40100000000006ed40100000000006fd401000000000070d401000000000071d401000000000072d401000000000073d401000000000074d401000000000075d401000000000076d401000000000077d401000000000078d401000000000079d40100000000007ad40100000000007bd40100000000007cd40100000000007dd40100000000007ed40100000000007fd401000000000080d401000000000081d401000000000082d401000000000083d401000000000084d401000000000085d401000000000086d401000000000087d401000000000088d401000000000089d40100000000008ad40100000000008bd40100000000008cd40100000000008dd40100000000008ed40100000000008fd401000000000090d401000000000091d401000000000092d401000000000093d401000000000094d401000000000095d401000000000096d401000000000097d401000000000098d401000000000099d40100000000009ad40100000000009bd40100000000009cd40100000000009ed40100000000009fd4010000000000a2d4010000000000a5d4010000000000a6d4010000000000a9d4010000000000aad4010000000000abd4010000000000acd4010000000000aed4010000000000afd4010000000000b0d4010000000000b1d4010000000000b2d4010000000000b3d4010000000000b4d4010000000000b5d4010000000000b6d4010000000000b7d4010000000000b8d4010000000000b9d4010000000000bbd4010000000000bdd4010000000000bed4010000000000bfd4010000000000c0d4010000000000c2d4010000000000c3d4010000000000c5d4010000000000c6d4010000000000c7d4010000000000c8d4010000000000c9d4010000000000cad4010000000000cbd4010000000000ccd4010000000000cdd4010000000000ced4010000000000cfd4010000000000d0d4010000000000d1d4010000000000d2d4010000000000d3d4010000000000d4d4010000000000d5d4010000000000d6d4010000000000d7d4010000000000d8d4010000000000d9d4010000000000dad4010000000000dbd4010000000000dcd4010000000000ddd4010000000000ded4010000000000dfd4010000000000e0d4010000000000e1d4010000000000e2d4010000000000e3d4010000000000e4d4010000000000e5d4010000000000e6d4010000000000e7d4010000000000e8d4010000000000e9d4010000000000ead4010000000000ebd4010000000000ecd4010000000000edd4010000000000eed4010000000000efd4010000000000f0d4010000000000f1d4010000000000f2d4010000000000f3d4010000000000f4d4010000000000f5d4010000000000f6d4010000000000f7d4010000000000f8d4010000000000f9d4010000000000fad4010000000000fbd4010000000000fcd4010000000000fdd4010000000000fed4010000000000ffd401000000000000d501000000000001d501000000000002d501000000000003d501000000000004d501000000000005d501000000000007d501000000000008d501000000000009d50100000000000ad50100000000000dd50100000000000ed50100000000000fd501000000000010d501000000000011d501000000000012d501000000000013d501000000000014d501000000000016d501000000000017d501000000000018d501000000000019d50100000000001ad50100000000001bd50100000000001cd50100000000001ed50100000000001fd501000000000020d501000000000021d501000000000022d501000000000023d501000000000024d501000000000025d501000000000026d501000000000027d501000000000028d501000000000029d50100000000002ad50100000000002bd50100000000002cd50100000000002dd50100000000002ed50100000000002fd501000000000030d501000000000031d501000000000032d501000000000033d501000000000034d501000000000035d501000000000036d501000000000037d501000000000038d501000000000039d50100000000003bd50100000000003cd50100000000003dd50100000000003ed501000000000040d501000000000041d501000000000042d501000000000043d501000000000044d501000000000046d50100000000004ad50100000000004bd50100000000004cd50100000000004dd50100000000004ed50100000000004fd501000000000050d501000000000052d501000000000053d501000000000054d501000000000055d501000000000056d501000000000057d501000000000058d501000000000059d50100000000005ad50100000000005bd50100000000005cd50100000000005dd50100000000005ed50100000000005fd501000000000060d501000000000061d501000000000062d501000000000063d501000000000064d501000000000065d501000000000066d501000000000067d501000000000068d501000000000069d50100000000006ad50100000000006bd50100000000006cd50100000000006dd50100000000006ed50100000000006fd501000000000070d501000000000071d501000000000072d501000000000073d501000000000074d501000000000075d501000000000076d501000000000077d501000000000078d501000000000079d50100000000007ad50100000000007bd50100000000007cd50100000000007dd50100000000007ed50100000000007fd501000000000080d501000000000081d501000000000082d501000000000083d501000000000084d501000000000085d501000000000086d501000000000087d501000000000088d501000000000089d50100000000008ad50100000000008bd50100000000008cd50100000000008dd50100000000008ed50100000000008fd501000000000090d501000000000091d501000000000092d501000000000093d501000000000094d501000000000095d501000000000096d501000000000097d501000000000098d501000000000099d50100000000009ad50100000000009bd50100000000009cd50100000000009dd50100000000009ed50100000000009fd5010000000000a0d5010000000000a1d5010000000000a2d5010000000000a3d5010000000000a4d5010000000000a5d5010000000000a6d5010000000000a7d5010000000000a8d5010000000000a9d5010000000000aad5010000000000abd5010000000000acd5010000000000add5010000000000aed5010000000000afd5010000000000b0d5010000000000b1d5010000000000b2d5010000000000b3d5010000000000b4d5010000000000b5d5010000000000b6d5010000000000b7d5010000000000b8d5010000000000b9d5010000000000bad5010000000000bbd5010000000000bcd5010000000000bdd5010000000000bed5010000000000bfd5010000000000c0d5010000000000c1d5010000000000c2d5010000000000c3d5010000000000c4d5010000000000c5d5010000000000c6d5010000000000c7d5010000000000c8d5010000000000c9d5010000000000cad5010000000000cbd5010000000000ccd5010000000000cdd5010000000000ced5010000000000cfd5010000000000d0d5010000000000d1d5010000000000d2d5010000000000d3d5010000000000d4d5010000000000d5d5010000000000d6d5010000000000d7d5010000000000d8d5010000000000d9d5010000000000dad5010000000000dbd5010000000000dcd5010000000000ddd5010000000000ded5010000000000dfd5010000000000e0d5010000000000e1d5010000000000e2d5010000000000e3d5010000000000e4d5010000000000e5d5010000000000e6d5010000000000e7d5010000000000e8d5010000000000e9d5010000000000ead5010000000000ebd5010000000000ecd5010000000000edd5010000000000eed5010000000000efd5010000000000f0d5010000000000f1d5010000000000f2d5010000000000f3d5010000000000f4d5010000000000f5d5010000000000f6d5010000000000f7d5010000000000f8d5010000000000f9d5010000000000fad5010000000000fbd5010000000000fcd5010000000000fdd5010000000000fed5010000000000ffd501000000000000d601000000000001d601000000000002d601000000000003d601000000000004d601000000000005d601000000000006d601000000000007d601000000000008d601000000000009d60100000000000ad60100000000000bd60100000000000cd60100000000000dd60100000000000ed60100000000000fd601000000000010d601000000000011d601000000000012d601000000000013d601000000000014d601000000000015d601000000000016d601000000000017d601000000000018d601000000000019d60100000000001ad60100000000001bd60100000000001cd60100000000001dd60100000000001ed60100000000001fd601000000000020d601000000000021d601000000000022d601000000000023d601000000000024d601000000000025d601000000000026d601000000000027d601000000000028d601000000000029d60100000000002ad60100000000002bd60100000000002cd60100000000002dd60100000000002ed60100000000002fd601000000000030d601000000000031d601000000000032d601000000000033d601000000000034d601000000000035d601000000000036d601000000000037d601000000000038d601000000000039d60100000000003ad60100000000003bd60100000000003cd60100000000003dd60100000000003ed60100000000003fd601000000000040d601000000000041d601000000000042d601000000000043d601000000000044d601000000000045d601000000000046d601000000000047d601000000000048d601000000000049d60100000000004ad60100000000004bd60100000000004cd60100000000004dd60100000000004ed60100000000004fd601000000000050d601000000000051d601000000000052d601000000000053d601000000000054d601000000000055d601000000000056d601000000000057d601000000000058d601000000000059d60100000000005ad60100000000005bd60100000000005cd60100000000005dd60100000000005ed60100000000005fd601000000000060d601000000000061d601000000000062d601000000000063d601000000000064d601000000000065d601000000000066d601000000000067d601000000000068d601000000000069d60100000000006ad60100000000006bd60100000000006cd60100000000006dd60100000000006ed60100000000006fd601000000000070d601000000000071d601000000000072d601000000000073d601000000000074d601000000000075d601000000000076d601000000000077d601000000000078d601000000000079d60100000000007ad60100000000007bd60100000000007cd60100000000007dd60100000000007ed60100000000007fd601000000000080d601000000000081d601000000000082d601000000000083d601000000000084d601000000000085d601000000000086d601000000000087d601000000000088d601000000000089d60100000000008ad60100000000008bd60100000000008cd60100000000008dd60100000000008ed60100000000008fd601000000000090d601000000000091d601000000000092d601000000000093d601000000000094d601000000000095d601000000000096d601000000000097d601000000000098d601000000000099d60100000000009ad60100000000009bd60100000000009cd60100000000009dd60100000000009ed60100000000009fd6010000000000a0d6010000000000a1d6010000000000a2d6010000000000a3d6010000000000ced7010000000000cfd7010000000000d0d7010000000000d1d7010000000000d2d7010000000000d3d7010000000000d4d7010000000000d5d7010000000000d6d7010000000000d7d7010000000000d8d7010000000000d9d7010000000000dad7010000000000dbd7010000000000dcd7010000000000ddd7010000000000ded7010000000000dfd7010000000000e0d7010000000000e1d7010000000000e2d7010000000000e3d7010000000000e4d7010000000000e5d7010000000000e6d7010000000000e7d7010000000000e8d7010000000000e9d7010000000000ead7010000000000ebd7010000000000ecd7010000000000edd7010000000000eed7010000000000efd7010000000000f0d7010000000000f1d7010000000000f2d7010000000000f3d7010000000000f4d7010000000000f5d7010000000000f6d7010000000000f7d7010000000000f8d7010000000000f9d7010000000000fad7010000000000fbd7010000000000fcd7010000000000fdd7010000000000fed7010000000000ffd701000000000000000000000000000000000000000000000000000000000000000000020000000400000006000000080000000a0000000c0000000e00000010000000120000001400000016000000180000001a0000001c0000001e00000020000000220000002400000026000000280000002a0000002c0000002e00000030000000320000003400000036000000380000003a0000003c0000003e00000040000000420000004400000046000000480000004a0000004c0000004e00000050000000520000005400000056000000580000005a0000005c0000005e00000060000000620000006400000066000000680000006a0000006c0000006e00000070000000720000007400000076000000780000007a0000007c0000007e00000080000000820000008400000086000000880000008a0000008c0000008e00000090000000920000009400000096000000980000009a0000009c0000009e000000a0000000a2000000a4000000a6000000a8000000aa000000ac000000ae000000b0000000b2000000b4000000b6000000b8000000ba000000bc000000be000000c0000000c2000000c4000000c6000000c8000000ca000000cc000000ce000000d0000000d2000000d4000000d6000000d8000000da000000dc000000de000000e0000000e2000000e4000000e6000000e8000000ea000000ec000000ee000000f0000000f2000000f4000000f6000000f8000000fa000000fc000000fe00000000010000020100000401000006010000080100000a0100000c0100000e01000010010000120100001401000016010000180100001a0100001c0100001e01000020010000220100002401000026010000280100002a0100002c0100002e01000030010000320100003401000036010000380100003a0100003c0100003e01000040010000420100004401000046010000480100004a0100004c0100004e01000050010000520100005401000056010000580100005a0100005c0100005e01000060010000620100006401000066010000680100006a0100006c0100006e01000070010000720100007401000076010000780100007a0100007c0100007e01000080010000820100008401000086010000880100008a0100008c0100008e01000090010000920100009401000096010000980100009a0100009c0100009e010000a0010000a2010000a4010000a6010000a8010000aa010000ac010000ae010000b0010000b2010000b4010000b6010000b8010000ba010000bc010000be010000c0010000c2010000c4010000c6010000c8010000ca010000cc010000ce010000d0010000d2010000d4010000d6010000d8010000da010000dc010000de010000e0010000e2010000e4010000e6010000e8010000ea010000ec010000ee010000f0010000f2010000f4010000f6010000f8010000fa010000fc010000fe01000000020000020200000402000006020000080200000a0200000c0200000e02000010020000120200001402000016020000180200001a0200001c0200001e02000020020000220200002402000026020000280200002a0200002c0200002e02000030020000320200003402000036020000380200003a0200003c0200003e02000040020000420200004402000046020000480200004a0200004c0200004e02000050020000520200005402000056020000580200005a0200005c0200005e02000060020000620200006402000066020000680200006a0200006c0200006e02000070020000720200007402000076020000780200007a0200007c0200007e02000080020000820200008402000086020000880200008a0200008c0200008e02000090020000920200009402000096020000980200009a0200009c0200009e020000a0020000a2020000a4020000a6020000a8020000aa020000ac020000ae020000b0020000b2020000b4020000b6020000b8020000ba020000bc020000be020000c0020000c2020000c4020000c6020000c8020000ca020000cc020000ce020000d0020000d2020000d4020000d6020000d8020000da020000dc020000de020000e0020000e2020000e4020000e6020000e8020000ea020000ec020000ee020000f0020000f2020000f4020000f6020000f8020000fa020000fc020000fe02000000030000020300000403000006030000080300000a0300000c0300000e03000010030000120300001403000016030000180300001a0300001c0300001e03000020030000220300002403000026030000280300002a0300002c0300002e03000030030000320300003403000036030000380300003a0300003c0300003e03000040030000420300004403000046030000480300004a0300004c0300004e03000050030000520300005403000056030000580300005a0300005c0300005e03000060030000620300006403000066030000680300006a0300006c0300006e03000070030000720300007403000076030000780300007a0300007c0300007e03000080030000820300008403000086030000880300008a0300008c0300008e03000090030000920300009403000096030000980300009a0300009c0300009e030000a0030000a2030000a4030000a6030000a8030000aa030000ac030000ae030000b0030000b2030000b4030000b6030000b8030000ba030000bc030000be030000c0030000c2030000c4030000c6030000c8030000ca030000cc030000ce030000d0030000d2030000d4030000d6030000d8030000da030000dc030000de030000e0030000e2030000e4030000e6030000e8030000ea030000ec030000ee030000f0030000f2030000f4030000f6030000f8030000fa030000fc030000fe03000000040000020400000404000006040000080400000a0400000c0400000e04000010040000120400001404000016040000180400001a0400001c0400001e04000020040000220400002404000026040000280400002a0400002c0400002e04000030040000320400003404000036040000380400003a0400003c0400003e04000040040000420400004404000046040000480400004a0400004c0400004e04000050040000520400005404000056040000580400005a0400005c0400005e04000060040000620400006404000066040000680400006a0400006c0400006e04000070040000720400007404000076040000780400007a0400007c0400007e04000080040000820400008404000086040000880400008a0400008c0400008e04000090040000920400009404000096040000980400009a0400009c0400009e040000a0040000a2040000a4040000a6040000a8040000aa040000ac040000ae040000b0040000b2040000b4040000b6040000b8040000ba040000bc040000be040000c0040000c2040000c4040000c6040000c8040000ca040000cc040000ce040000d0040000d2040000d4040000d6040000d8040000da040000dc040000de040000e0040000e2040000e4040000e6040000e8040000ea040000ec040000ee040000f0040000f2040000f4040000f6040000f8040000fa040000fc040000fe04000000050000020500000405000006050000080500000a0500000c0500000e05000010050000120500001405000016050000180500001a0500001c0500001e05000020050000220500002405000026050000280500002a0500002c0500002e05000030050000320500003405000036050000380500003a0500003c0500003e05000040050000420500004405000046050000480500004a0500004c0500004e05000050050000520500005405000056050000580500005a0500005c0500005e05000060050000620500006405000066050000680500006a0500006c0500006e05000070050000720500007405000076050000780500007a0500007c0500007e05000080050000820500008405000086050000880500008a0500008c0500008e05000090050000920500009405000096050000980500009a0500009c0500009e050000a0050000a2050000a4050000a6050000a8050000aa050000ac050000ae050000b0050000b2050000b4050000b6050000b8050000ba050000bc050000be050000c0050000c2050000c4050000c6050000c8050000ca050000cc050000ce050000d0050000d2050000d4050000d6050000d8050000da050000dc050000de050000e0050000e2050000e4050000e6050000e8050000ea050000ec050000ee050000f0050000f2050000f4050000f6050000f8050000fa050000fc050000fe05000000060000020600000406000006060000080600000a0600000c0600000e06000010060000120600001406000016060000180600001a0600001c0600001e06000020060000220600002406000026060000280600002a0600002c0600002e06000030060000320600003406000036060000380600003a0600003c0600003e06000040060000420600004406000046060000480600004a0600004c0600004e06000050060000520600005406000056060000580600005a0600005c0600005e06000060060000620600006406000066060000680600006a0600006c0600006e06000070060000720600007406000076060000780600007a0600007c0600007e06000080060000820600008406000086060000880600008a0600008c0600008e06000090060000920600009406000096060000980600009a0600009c0600009e060000a0060000a2060000a4060000a6060000a8060000aa060000ac060000ae060000b0060000b2060000b4060000b6060000b8060000ba060000bc060000be060000c0060000c2060000c4060000c6060000c8060000ca060000cc060000ce060000d0060000d2060000d4060000d6060000d8060000da060000dc060000de060000e0060000e2060000e4060000e6060000e8060000ea060000ec060000ee060000f0060000f2060000f4060000f6060000f8060000fa060000fc060000fe06000000070000020700000407000006070000080700000a0700000c0700000e07000010070000120700001407000016070000180700001a0700001c0700001e07000020070000220700002407000026070000280700002a0700002c0700002e07000030070000320700003407000036070000380700003a0700003c0700003e07000040070000420700004407000046070000480700004a0700004c0700004e07000050070000520700005407000056070000580700005a0700005c0700005e07000060070000620700006407000066070000680700006a0700006c0700006e07000070070000720700007407000076070000780700007a0700007c0700007e07000080070000820700008407000086070000880700008a0700008c0700008e07000090070000920700009407000096070000980700009a0700009c0700009e070000a0070000a2070000a4070000a6070000a8070000aa070000ac070000ae070000b0070000b2070000b4070000b6070000b8070000ba070000bc070000be070000c0070000c2070000c4070000c6070000c8070000ca070000cc070000ce070000d0070000d2070000d4070000d6070000d8070000da070000dc070000de070000e0070000e2070000e4070000e6070000e8070000ea070000ec070000ee070000f0070000f2070000f4070000f6070000f8070000fa070000fc070000fe07000000080000020800000408000006080000080800000a0800000c0800000e08000010080000120800001408000016080000180800001a0800001c0800001e08000020080000220800002408000026080000280800002a0800002c0800002e08000030080000320800003408000036080000380800003a0800003c0800003e08000040080000420800004408000046080000480800004a0800004c0800004e08000050080000520800005408000056080000580800005a0800005c0800005e08000060080000620800006408000066080000680800006a0800006c0800006e08000070080000720800007408000076080000780800007a0800007c0800007e08000080080000820800008408000086080000880800008a0800008c0800008e08000090080000920800009408000096080000980800009a0800009c0800009e080000a0080000a2080000a4080000a6080000a8080000aa080000ac080000ae080000b0080000b2080000b4080000b6080000b8080000ba080000bc080000be080000c0080000c2080000c4080000c6080000c8080000ca080000cc080000ce080000d0080000d2080000d4080000d6080000d8080000da080000dc080000de080000e0080000e2080000e4080000e6080000e8080000ea080000ec080000ee080000f0080000f2080000f4080000f6080000f8080000fa080000fc080000fe08000000090000020900000409000006090000080900000a0900000c0900000e09000010090000120900001409000016090000180900001a0900001c0900001e09000020090000220900002409000026090000280900002a0900002c0900002e09000030090000320900003409000036090000380900003a0900003c0900003e09000040090000420900004409000046090000480900004a0900004c0900004e09000050090000520900005409000056090000580900005a0900005c0900005e09000060090000620900006409000066090000680900006a0900006c0900006e09000070090000720900007409000076090000780900007a0900007c0900007e09000080090000820900008409000086090000880900008a0900008c0900008e09000090090000920900009409000096090000980900009a0900009c0900009e090000a0090000a2090000a4090000a6090000a8090000aa090000ac090000ae090000b0090000b2090000b4090000b6090000b8090000ba090000bc090000be090000c0090000c2090000c4090000c6090000c8090000ca090000cc090000ce090000d0090000d2090000d4090000d6090000d8090000da090000dc090000de090000e0090000e2090000e4090000e6090000e8090000ea090000ec090000ee090000f0090000f2090000f4090000f6090000f8090000fa090000fc090000fe090000000a0000020a0000040a0000060a0000080a00000a0a00000c0a00000e0a0000100a0000120a0000140a0000160a0000180a00001a0a00001c0a00001e0a0000200a0000220a0000240a0000260a0000280a00002a0a00002c0a00002e0a0000300a0000320a0000340a0000360a0000380a00003a0a00003c0a00003e0a0000400a0000420a0000440a0000460a0000480a00004a0a00004c0a00004e0a0000500a0000520a0000540a0000560a0000580a00005a0a00005c0a00005e0a0000600a0000620a0000640a0000660a0000680a00006a0a00006c0a00006e0a0000700a0000720a0000740a0000760a0000780a00007a0a00007c0a00007e0a0000800a0000820a0000840a0000860a0000880a00008a0a00008c0a00008e0a0000900a000035003600370039003000000000000000320000000000000033000000000000003400000000000000350000000000000036000000000000003700000000000000380000000000000039000000000000003f000000000000006c6962630000000000000000414e53495f58332e342d3139363800000000000000000000206c4a0000000000e0674b0000000000406e4b000000000040774b000000000020664b0000000000a0654b0000000000000000000000000000724b000000000080724b000000000040734b000000000000744b000000000080744b000000000080764b000000000080864a000000000080774a0000000000807d4a0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b000000000000000000000000000000000000000000000000000000000001000300030107060504030201000f000f100f0f0f050f0f0f180f170f0f1f0f110f0f0000000000000000000000000000000000000000000000000000000000ffffffffffffff7f5555555555555555ffffffffffffff3f3333333333333333aaaaaaaaaaaaaa2a9224499224499224ffffffffffffff1f711cc7711cc7711c9999999999999919d145175d74d145175555555555555515b1133bb1133bb11349922449922449121111111111111111ffffffffffffff0f0f0f0f0f0f0f0f0f388ee3388ee3380e3594d7505e43790dcccccccccccccc0c300cc3300cc3300ce8a28b2ebae8a20b16b290852c64210baaaaaaaaaaaaaa0a703d0ad7a3703d0ad8899dd8899dd80925b497d05e427b09244992244992240908cb3d8db0dcd30888888888888888081042082184104208ffffffffffffff07f0c1071f7cf0c107878787878787870750077550077550071cc7711cc7711c070000000000000000303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a00000000000000000000000000000000000000000000000000000000303132333435363738394142434445464748494a4b4c4d4e4f505152535455565758595a746f5f6f757470756e637400286e696c290076667072696e74662e63005f5f6d6273696e69742028266d6273746174652900286e756c6c2900000000732d3e5f666c616773322026205f494f5f464c414753325f464f5254494659002a2a2a20696e76616c696420254e2420757365206465746563746564202a2a2a0a0000000000000028756e7369676e656420696e742920646f6e65203c2028756e7369676e656420696e742920494e545f4d4158000000002873697a655f742920646f6e65203c3d202873697a655f742920494e545f4d4158000000000000002a2a2a20256e20696e207772697461626c65207365676d656e74206465746563746564202a2a2a0a000000000000000000000000000000000000000000000000d035450000000000d035450000000000d035450000000000d035450000000000d035450000000000d035450000000000d035450000000000d035450000000000d035450000000000d035450000000000d035450000000000d035450000000000d035450000000000d035450000000000bd32450000000000893a450000000000ec324500000000005235450000000000613545000000000070354500000000003931450000000000713a45000000000010384500000000006638450000000000a0384500000000004231450000000000dd37450000000000d035450000000000d035450000000000d03545000000000000000000000000000000000000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a5724500000000007b53450000000000a572450000000000a5724500000000001f544500000000004e544500000000006b60450000000000fe5e450000000000156b4500000000006468450000000000bd6b4500000000008271450000000000a6614500000000000662450000000000356b450000000000a04f450000000000a069450000000000a572450000000000a572450000000000a57245000000000000000000000000000000000000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a5724500000000001f544500000000004e544500000000006b60450000000000fe5e450000000000156b4500000000006468450000000000bd6b4500000000008271450000000000a6614500000000000662450000000000356b450000000000a04f450000000000a069450000000000a572450000000000a572450000000000a57245000000000000000000000000000000000000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000bc74450000000000a572450000000000a572450000000000a5724500000000001f544500000000004e544500000000006b60450000000000fe5e450000000000156b450000000000a572450000000000a572450000000000a572450000000000a5724500000000000662450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a57245000000000000000000000000000000000000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000757445000000000034534500000000007b53450000000000cc534500000000001f544500000000004e544500000000006b60450000000000fe5e450000000000156b4500000000006468450000000000bd6b4500000000008271450000000000a6614500000000000662450000000000356b450000000000a04f450000000000a0694500000000001d54450000000000cc53450000000000a57245000000000000000000000000000000000000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000a572450000000000c06e450000000000757445000000000034534500000000007b53450000000000cc534500000000001f544500000000004e544500000000006b60450000000000fe5e450000000000156b4500000000006468450000000000bd6b4500000000008271450000000000a6614500000000000662450000000000356b450000000000a04f450000000000a0694500000000001d54450000000000cc53450000000000a57245000000000000000000000000000000000000000000a572450000000000a85f450000000000ef5f450000000000eb724500000000003573450000000000a75e4500000000004075450000000000a471450000000000da6d450000000000c06e450000000000757445000000000034534500000000007b53450000000000cc534500000000001f544500000000004e544500000000006b60450000000000fe5e450000000000156b4500000000006468450000000000bd6b4500000000008271450000000000a6614500000000000662450000000000356b450000000000a04f450000000000a0694500000000001d54450000000000cc53450000000000dc7345000000000000000000000000000000000000000000000000000000000000000000000000006058410000000000f022450000000000e050410000000000f050410000000000606641000000000020514100000000000052410000000000705b4100000000001055410000000000405441000000000050584100000000003055410000000000e067410000000000f067410000000000c0674100000000005058410000000000d0674100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000004000e0006000007020003090005080808080808080808000000000000001a001900131313001d00000c000000000000150000000012000d0000000000001a00140f1313130a0f1c000b181711160c00151b10000012000d00000000007072696e74665f706f736974696f6e616c0000000000000000000000000000005f494f5f76667072696e74665f696e7465726e616c00494e46004e414e006e616e00696e66000000490000004e00000046000000000000004e000000410000004e000000000000006e000000610000006e00000000000000690000006e0000006600000000000000300000002e0000003000000030000000300000003100000000000000000000000000000000000000ffffffffffffff7f0000000000000000ffffffffffffef7f2e2e2f737464696f2d636f6d6d6f6e2f7072696e74665f66706865782e6300002a646563696d616c20213d20275c302720262620646563696d616c776320213d204c275c302700005f5f7072696e74665f6670686578000030000000300000003000000030000000280000006e000000690000006c00000029000000000000005f494f5f7666777072696e7466000000000000000000000062d245000000000062d245000000000062d245000000000062d245000000000062d245000000000062d245000000000062d245000000000062d245000000000062d245000000000062d245000000000062d245000000000062d245000000000062d245000000000062d2450000000000a0d745000000000030e145000000000017d9450000000000f1d745000000000098da45000000000037da45000000000075d6450000000000d8e1450000000000c0db450000000000b0de45000000000015df4500000000007ed645000000000081db45000000000062d245000000000062d245000000000062d24500000000000000000000000000000000000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb450000000000531546000000000040fb45000000000040fb450000000000ee14460000000000b115460000000000f9154600000000009f03460000000000eb0f460000000000fa0f4600000000006ffb45000000000077fd450000000000a512460000000000ff12460000000000f0134600000000004af84500000000002c1146000000000040fb45000000000040fb45000000000040fb4500000000000000000000000000000000000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb450000000000ee14460000000000b115460000000000f9154600000000009f03460000000000eb0f460000000000fa0f4600000000006ffb45000000000077fd450000000000a512460000000000ff12460000000000f0134600000000004af84500000000002c1146000000000040fb45000000000040fb45000000000040fb4500000000000000000000000000000000000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb450000000000d21946000000000040fb45000000000040fb45000000000040fb450000000000ee14460000000000b115460000000000f9154600000000009f03460000000000eb0f46000000000040fb45000000000040fb45000000000040fb45000000000040fb450000000000ff1246000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb4500000000000000000000000000000000000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000094194600000000008c0146000000000053154600000000004e15460000000000ee14460000000000b115460000000000f9154600000000009f03460000000000eb0f460000000000fa0f4600000000006ffb45000000000077fd450000000000a512460000000000ff12460000000000f0134600000000004af84500000000002c11460000000000a614460000000000a61446000000000040fb4500000000000000000000000000000000000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb45000000000040fb4500000000001a1a46000000000094194600000000008c0146000000000053154600000000004e15460000000000ee14460000000000b115460000000000f9154600000000009f03460000000000eb0f460000000000fa0f4600000000006ffb45000000000077fd450000000000a512460000000000ff12460000000000f0134600000000004af84500000000002c11460000000000a614460000000000a61446000000000040fb4500000000000000000000000000000000000000000040fb450000000000f916460000000000ac1846000000000026184600000000006e18460000000000ca0146000000000014024600000000009e0246000000000083fa4500000000001a1a46000000000094194600000000008c0146000000000053154600000000004e15460000000000ee14460000000000b115460000000000f9154600000000009f03460000000000eb0f460000000000fa0f4600000000006ffb45000000000077fd450000000000a512460000000000ff12460000000000f0134600000000004af84500000000002c11460000000000a614460000000000a61446000000000060024600000000000000000000000000000000000000000000000000000000000000000000000000303d46000000000080c6450000000000e050410000000000f050410000000000503b4600000000000042460000000000b044460000000000705b4100000000001055410000000000405441000000000050584100000000008049460000000000e067410000000000f067410000000000c0674100000000005058410000000000d0674100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000004000e0006000007020003090005080808080808080808000000000000001a001900131313001d00000c000000000000150000000012000d0000000000001a00140f1313130a0f1c000b181711160c00151b10000012000d0000000000280000006e000000750000006c0000006c0000002900000000000000000000008020460000000000701f460000000000701f4600000000007020460000000000701f460000000000701f460000000000701f4600000000006020460000000000701f460000000000701f460000000000701f4600000000005020460000000000701f4600000000004020460000000000701f460000000000701f4600000000003020460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000701f460000000000581f460000000000b222460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000d820460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000c022460000000000a024460000000000d820460000000000a024460000000000a022460000000000a024460000000000a024460000000000a024460000000000a024460000000000b222460000000000a024460000000000a024460000000000d820460000000000a024460000000000a024460000000000a024460000000000a024460000000000a024460000000000d820460000000000e022460000000000b0244600000000009023460000000000b024460000000000e022460000000000e022460000000000e022460000000000b024460000000000b024460000000000b024460000000000b024460000000000b024460000000000b024460000000000b024460000000000b024460000000000b024460000000000b024460000000000b0244600000000006023460000000000b024460000000000b024460000000000b024460000000000b0244600000000007023460000000000b024460000000000b024460000000000b024460000000000b024460000000000b024460000000000b024460000000000b024460000000000b024460000000000e022460000000000b02446000000000008234600000000007023460000000000e022460000000000e022460000000000e022460000000000b0244600000000007023460000000000b024460000000000b024460000000000b024460000000000b024460000000000502346000000000070234600000000003023460000000000b024460000000000b0244600000000004023460000000000b0244600000000007023460000000000b024460000000000b0244600000000007023460000000000d026460000000000e026460000000000e026460000000000c026460000000000e026460000000000e026460000000000e026460000000000b026460000000000e026460000000000e026460000000000e026460000000000a026460000000000e0264600000000009826460000000000e026460000000000e0264600000000008826460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e026460000000000e0264600000000006026460000000000742a460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000b028460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000e027460000000000f827460000000000b028460000000000f827460000000000602a460000000000f827460000000000f827460000000000f827460000000000f827460000000000742a460000000000f827460000000000f827460000000000b028460000000000f827460000000000f827460000000000f827460000000000f827460000000000f827460000000000b028460000000000b02a460000000000e82b460000000000d82a460000000000e82b460000000000b02a460000000000b02a460000000000b02a460000000000e82b460000000000e82b460000000000e82b460000000000e82b460000000000e82b460000000000e82b460000000000e82b460000000000e82b460000000000e82b460000000000e82b460000000000e82b460000000000f82a460000000000e82b460000000000e82b460000000000e82b460000000000e82b460000000000082b460000000000e82b460000000000e82b460000000000e82b460000000000e82b460000000000e82b460000000000e82b460000000000e82b460000000000e82b460000000000b02a460000000000e82b460000000000302b460000000000082b460000000000b02a460000000000b02a460000000000b02a460000000000e82b460000000000082b460000000000e82b460000000000e82b460000000000e82b460000000000e82b460000000000402b460000000000082b460000000000882a460000000000e82b460000000000e82b460000000000e82a460000000000e82b460000000000082b460000000000e82b460000000000e82b460000000000082b460000000000303030303030303030303030303030303000000030000000300000003000000030000000300000003000000030000000300000003000000030000000300000003000000030000000300000003000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000696f66776964652e63000000000000005f494f5f66776964650000000000000000000000000000003050460000000000604f460000000000804e460000000000404e460000000000604e4600000000002051460000000000704e4600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000556e6b6e6f776e206572726f722000776372746f6d622e630000000000000000737461747573203d3d205f5f47434f4e565f4f4b207c7c20737461747573203d3d205f5f47434f4e565f454d5054595f494e505554207c7c20737461747573203d3d205f5f47434f4e565f494c4c4547414c5f494e505554207c7c20737461747573203d3d205f5f47434f4e565f494e434f4d504c4554455f494e505554207c7c20737461747573203d3d205f5f47434f4e565f46554c4c5f4f5554505554005f5f776372746f6d620077637372746f6d62732e6300646174612e5f5f6f75746275665b2d315d203d3d20275c3027005f5f6d6273696e69742028646174612e5f5f7374617465702900000000000000646174612e5f5f6f757462756620213d2028756e7369676e65642063686172202a292064737400005f5f77637372746f6d6273006d627372746f7763735f6c2e6300726573756c74203e203000000000282877636861725f74202a2920646174612e5f5f6f7574627566295b2d315d203d3d204c275c302700000000000000005f5f6d627372746f7763735f6c004d2568752e2568752e256875256e00256875256e3a256875256e3a256875256e002f6574632f6c6f63616c74696d6500556e6976657273616c00545a0055544300474d5400545a4449520025732f257300545a696600747a66696c652e63006e756d5f7479706573203d3d2031002e2e2f00706f73697872756c6573006e756d5f7479706573203d3d203200000000000000737472636d702028267a6f6e655f6e616d65735b696e666f2d3e6964785d2c205f5f747a6e616d655b74702d3e746d5f69736473745d29203d3d2030000000005f5f747a66696c655f726561640000005f5f747a66696c655f636f6d70757465000000000000000000000000000000002f7573722f73686172652f7a6f6e65696e666f0066696c6520746f6f2073686f72740063616e6e6f7420726561642066696c65206461746100696e76616c696420454c462068656164657200454c462066696c65204f532041424920696e76616c696400454c462066696c65204142492076657273696f6e20696e76616c6964006e6f6e7a65726f2070616464696e6720696e20655f6964656e7400696e7465726e616c206572726f72003a2573003c6d61696e2070726f6772616d3e002073656172636820706174683d0009092825732066726f6d2066696c65202573290a000909282573290a002020747279696e672066696c653d25730a0063616e6e6f74207374617420736861726564206f626a6563740063616e6e6f7420636c6f73652066696c652064657363726970746f720063616e6e6f74206d6170207a65726f2d66696c6c2070616765730063616e6e6f7420616c6c6f63617465206e616d65207265636f726400646c2d6c6f61642e63006c6173747020213d204e554c4c00722d3e725f7374617465203d3d2052545f414444004f524947494e00504c4154464f524d004c4942006c69622f7838365f36342d6c696e75782d676e750073797374656d2073656172636820706174680070656c656d2d3e6469726e616d655b305d203d3d20272f27003a3b006e736964203e3d2030006e736964203c20474c28646c5f6e6e73290052504154480052554e504154480077726f6e6720454c4620636c6173733a20454c46434c41535333320000000000454c462066696c65206461746120656e636f64696e67206e6f74206c6974746c652d656e6469616e0000000000000000454c462066696c652076657273696f6e206964656e7420646f6573206e6f74206d617463682063757272656e74206f6e6500000000000000454c462066696c652076657273696f6e20646f6573206e6f74206d617463682063757272656e74206f6e6500000000006f6e6c792045545f44594e20616e642045545f455845432063616e206265206c6f6164656400000063616e6e6f742064796e616d6963616c6c79206c6f61642065786563757461626c65000000000000454c462066696c652773207068656e7473697a65206e6f74207468652065787065637465642073697a6500000000000063616e6e6f742063726561746520736861726564206f626a6563742064657363726970746f72000063616e6e6f7420616c6c6f63617465206d656d6f727920666f722070726f6772616d20686561646572000000000000006f626a6563742066696c6520686173206e6f2064796e616d69632073656374696f6e000000000000736861726564206f626a6563742063616e6e6f7420626520646c6f70656e2829656400000000000063616e6e6f7420656e61626c652065786563757461626c6520737461636b20617320736861726564206f626a6563742072657175697265730000000000000000454c46206c6f616420636f6d6d616e6420616c69676e6d656e74206e6f7420706167652d616c69676e65640000000000454c46206c6f616420636f6d6d616e6420616464726573732f6f6666736574206e6f742070726f7065726c7920616c69676e65640000000063616e6e6f7420616c6c6f6361746520544c532064617461207374727563747572657320666f7220696e697469616c2074687265616400006f626a6563742066696c6520686173206e6f206c6f616461626c65207365676d656e74730000000063616e6e6f74206368616e6765206d656d6f72792070726f74656374696f6e7300000000000000006661696c656420746f206d6170207365676d656e742066726f6d20736861726564206f626a656374000000000000000066696c653d2573205b256c755d3b202067656e65726174696e67206c696e6b206d61700a000000007479706520213d2045545f45584543207c7c206c2d3e6c5f74797065203d3d206c745f65786563757461626c65000000202064796e616d69633a20307825302a6c782020626173653a20307825302a6c7820202073697a653a20307825302a5a780a20202020656e7472793a20307825302a6c782020706864723a20307825302a6c78202070686e756d3a202020252a750a0a0000000000286c292d3e6c5f6e616d655b305d203d3d20275c3027207c7c2049535f52544c4420286c2900000063616e6e6f742063726561746520636163686520666f72207365617263682070617468000000000063616e6e6f74206372656174652052554e504154482f525041544820636f7079000000000000000063616e6e6f7420637265617465207365617263682070617468206172726179000a66696c653d2573205b256c755d3b20206e6565646564206279202573205b256c755d0a000000000a66696c653d2573205b256c755d3b202064796e616d6963616c6c79206c6f61646564206279202573205b256c755d0a000000000000000066696e64206c6962726172793d2573205b256c755d3b20736561726368696e670a0000000000000063616e6e6f74206f70656e20736861726564206f626a6563742066696c6500005f646c5f6d61705f6f626a65637400005f646c5f696e69745f7061746873000000000000000000005f646c5f6d61705f6f626a6563745f66726f6d5f6664000000000000000000006164645f6e616d655f746f5f6f626a6563740000000000000000000000000000657870616e645f64796e616d69635f737472696e675f746f6b656e0000000000040000001000000001000000474e55007f454c460201010000000000000000007f454c460201010300000000000000000000000000000000000000000000000016000000000000001a00000000000000050000000000000009000000000000002f6c69622f7838365f36342d6c696e75782d676e752f002f7573722f6c69622f7838365f36342d6c696e75782d676e752f002f6c69622f002f7573722f6c69622f00000000000000646c2d6c6f6f6b75702e630020286e6f2076657273696f6e2073796d626f6c7329002c2076657273696f6e200070726f746563746564006e6f726d616c0076657273696f6e20213d204e554c4c0073796d626f6c2000206e6f7420646566696e656420696e2066696c6520002077697468206c696e6b2074696d65207265666572656e63650072656c6f636174696f6e206572726f7200756e646566696e65642073796d626f6c3a200073796d626f6c206c6f6f6b7570206572726f7200205b25735d0a0000000076657273696f6e2d3e66696c656e616d65203d3d204e554c4c207c7c2021205f646c5f6e616d655f6d617463685f70202876657273696f6e2d3e66696c656e616d652c206d617029000000000000000073796d626f6c3d25733b20206c6f6f6b757020696e2066696c653d2573205b256c755d0a0000000076657273696f6e203d3d204e554c4c207c7c2028666c6167732026207e28444c5f4c4f4f4b55505f4144445f444550454e44454e4359207c20444c5f4c4f4f4b55505f4753434f50455f4c4f434b2929203d3d20300000000a66696c653d2573205b256c755d3b20206e6565646564206279202573205b256c755d202872656c6f636174696f6e20646570656e64656e6379290a0a00000062696e64696e672066696c65202573205b256c755d20746f202573205b256c755d3a2025732073796d626f6c206025732700000000000000286269746d61736b5f6e776f726473202620286269746d61736b5f6e776f726473202d20312929203d3d2030000000005f646c5f73657475705f686173680000636865636b5f6d61746368000000000000000000000000005f646c5f6c6f6f6b75705f73796d626f6c5f78000000000063616e6e6f7420616c6c6f63617465206d656d6f727920696e2073746174696320544c5320626c6f636b00000000000063616e6e6f74206d616b65207365676d656e74207772697461626c6520666f722072656c6f636174696f6e000000000063616e6e6f7420726573746f7265207365676d656e742070726f742061667465722072656c6f630025733a2053796d626f6c206025732720636175736573206f766572666c6f7720696e20525f5838365f36345f33322072656c6f636174696f6e0a00000000000025733a2053796d626f6c206025732720636175736573206f766572666c6f7720696e20525f5838365f36345f504333322072656c6f636174696f6e0a0000000025733a2053796d626f6c20602573272068617320646966666572656e742073697a6520696e20736861726564206f626a6563742c20636f6e73696465722072652d6c696e6b696e670a000000000000002e2e2f737973646570732f7838365f36342f646c2d6d616368696e652e680000454c465728525f5459504529202872656c6f632d3e725f696e666f29203d3d20525f5838365f36345f52454c41544956450000000000000025733a206f7574206f66206d656d6f727920746f2073746f72652072656c6f636174696f6e20726573756c747320666f722025730a0020286c617a7929003c70726f6772616d206e616d6520756e6b6e6f776e3e000a72656c6f636174696f6e2070726f63657373696e673a20257325730a00000000000000000000000000000000000000000000701e470000000000281a470000000000f01d470000000000701e470000000000701e470000000000901d470000000000281a470000000000281a470000000000701e470000000000701e470000000000801b470000000000701e470000000000701e470000000000701e470000000000701e470000000000701e470000000000401d470000000000201d470000000000e01c470000000000701e470000000000701e470000000000701e470000000000701e470000000000701e470000000000701e470000000000701e470000000000701e470000000000701e470000000000701e470000000000701e470000000000701e470000000000701e470000000000781b470000000000201a470000000000701e470000000000701e470000000000a01c470000000000601d4700000000005f2647000000000002234700000000003f264700000000005f264700000000005f26470000000000df25470000000000022347000000000002234700000000005f264700000000005f26470000000000a0244700000000005f264700000000005f264700000000005f264700000000005f264700000000005f26470000000000fb244700000000004e2547000000000013254700000000005f264700000000005f264700000000005f264700000000005f264700000000005f264700000000005f264700000000005f264700000000005f264700000000005f264700000000005f264700000000005f264700000000005f264700000000005f264700000000009524470000000000f7224700000000005f264700000000005f264700000000006e25470000000000b125470000000000756e65787065637465642072656c6f6320747970652030780000000000000000000000000000756e657870656374656420504c542072656c6f63207479706520307800000000000000000000000000000000000000000000000000000000000063616e6e6f74206170706c79206164646974696f6e616c206d656d6f72792070726f74656374696f6e2061667465722072656c6f636174696f6e000000000000656c665f6d616368696e655f72656c615f72656c617469766500474e55002f6574632f6c642e736f2e6e6f687763617000746c7300646c2d6877636170732e63006d203d3d20636e740063616e6e6f7420637265617465206361706162696c697479206c6973740000000000000000005f646c5f696d706f7274616e745f6877636170730044594e414d4943204c494e4b4552204255472121210025733a2025733a20257325732573257325730a00636f6e74696e75656400666174616c0025733a206572726f723a2025733a20257320282573290a00006572726f72207768696c65206c6f6164696e6720736861726564206c6962726172696573000000006f7574206f66206d656d6f727900646c2d6d6973632e63006e696f76203c204e494f564d415800212022696e76616c696420666f726d617420737065636966696572220000000000706964203e3d20302026262073697a656f6620287069645f7429203c3d203400000000000000000000000000000000000000000000000000070000000d0000001f0000003d0000007f000000fb000000fd010000fd030000f7070000fd0f0000ff1f0000fd3f0000ed7f0000f1ff0000ffff0100fbff0300ffff0700fdff0f00f7ff1f00fdff3f00f1ff7f00fdffff00d9ffff01fbffff03d9ffff07c7ffff0ffdffff1fddffff3fffffff7ffbffffff00000000000000005f646c5f64656275675f76647072696e746600000000000063616e6e6f7420616c6c6f63617465206d656d6f727920666f72207468726561642d6c6f63616c20646174613a2041424f52540a00000000726573756c74203c3d20474c28646c5f746c735f6d61785f6474765f69647829202b203100000000726573756c74203d3d20474c28646c5f746c735f6d61785f6474765f69647829202b2031000000006c697374702d3e736c6f74696e666f5b636e745d2e67656e203c3d20474c28646c5f746c735f67656e65726174696f6e29000000000000006d61702d3e6c5f746c735f6d6f646964203d3d20746f74616c202b20636e74006d61702d3e6c5f746c735f626c6f636b73697a65203e3d206d61702d3e6c5f746c735f696e6974696d6167655f73697a65000000000000002873697a655f7429206d61702d3e6c5f746c735f6f6666736574203e3d206d61702d3e6c5f746c735f626c6f636b73697a6500000000000063616e6e6f742063726561746520544c532064617461207374727563747572657300646c2d746c732e63006c6973747020213d204e554c4c00696478203d3d203000646c6f70656e000000000000000000000000000000005f646c5f6164645f746f5f736c6f74696e666f000000000000000000000000005f646c5f616c6c6f636174655f746c735f696e697400000000000000000000005f646c5f6e6578745f746c735f6d6f646964002f70726f632f73656c662f657865006c696e6b76616c5b305d203d3d20272f2700000000002e2e2f737973646570732f756e69782f737973762f6c696e75782f646c2d6f726967696e2e6300005f646c5f6765745f6f726967696e0063616e6e6f7420657874656e6420676c6f62616c2073636f706500646c2d6f70656e2e63006e73203d3d206c2d3e6c5f6e7300696e76616c6964206d6f646520666f7220646c6f70656e2829006f626a6563743d2573205b256c755d0a002073636f70652025753a00206e6f2073636f70650a006d6f646520262052544c445f4e4f4c4f41440063616e6e6f74206372656174652073636f7065206c69737400696d61702d3e6c5f6e6565645f746c735f696e6974203d3d2030000000000000000a616464202573205b256c755d20746f20676c6f62616c2073636f70650a00006e6f206d6f7265206e616d6573706163657320617661696c61626c6520666f7220646c6d6f70656e2829000000000000696e76616c696420746172676574206e616d65737061636520696e20646c6d6f70656e28290000005f646c5f64656275675f696e697469616c697a652028302c20617267732e6e736964292d3e725f7374617465203d3d2052545f434f4e53495354454e540000006f70656e696e672066696c653d2573205b256c755d3b206469726563745f6f70656e636f756e743d25750a0a000000005f646c5f64656275675f696e697469616c697a652028302c20617267732d3e6e736964292d3e725f7374617465203d3d2052545f434f4e53495354454e540000544c532067656e65726174696f6e20636f756e7465722077726170706564212020506c65617365207265706f727420746869732e00000000646c5f6f70656e5f776f726b657200005f646c5f6f70656e00000000000000005f646c5f66696e645f64736f5f666f725f6f626a65637400646c2d636c6f73652e6300212073686f756c645f62655f7468657265006f6c645f6d61702d3e6c5f746c735f6d6f646964203d3d2069647800696478203d3d206e6c6f6164656400696d61702d3e6c5f6e73203d3d206e736964000a63616c6c696e672066696e693a202573205b256c755d0a0a00746d61702d3e6c5f6e73203d3d206e73696400646c636c6f736500696d61702d3e6c5f74797065203d3d206c745f6c6f61646564006e736964203d3d204c4d5f49445f4241534500696d61702d3e6c5f7072657620213d204e554c4c006d61702d3e6c5f696e69745f63616c6c656400736861726564206f626a656374206e6f74206f70656e0000000000282a6c70292d3e6c5f696478203e3d203020262620282a6c70292d3e6c5f696478203c206e6c6f6164656400000000006a6d61702d3e6c5f696478203e3d2030202626206a6d61702d3e6c5f696478203c206e6c6f6164656400000000000000696d61702d3e6c5f74797065203d3d206c745f6c6f616465642026262028696d61702d3e6c5f666c6167735f3120262044465f315f4e4f44454c45544529203d3d203000000000000a66696c653d2573205b256c755d3b202064657374726f79696e67206c696e6b206d61700a000000544c532067656e65726174696f6e20636f756e7465722077726170706564212020506c65617365207265706f72742061732064657363726962656420696e203c68747470733a2f2f627567732e6c61756e63687061642e6e65742f7562756e74752f2b736f757263652f676c6962632f2b627567733e2e0a00000000000000000a636c6f73696e672066696c653d25733b206469726563745f6f70656e636f756e743d25750a00005f646c5f636c6f73650000000000000072656d6f76655f736c6f74696e666f005f646c5f636c6f73655f776f726b6572002f6574632f6c642e736f2e636163686500207365617263682063616368653d25730a006c642e736f2d312e372e3000676c6962632d6c642e736f2e6361636865312e3100474c4942435f50524956415445005f646c5f6f70656e5f686f6f6b005e5b79595d005e5b6e4e5d00000000bd4a4b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000050000000000000091654b000000000097654b000000000065694b000000000065694b0000000000a8284b00000000002d00ff000000000000000000000000000000000000000000bd4a4b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000002e0000000000000065694b000000000065694b000000000065694b000000000065694b000000000065694b000000000065694b000000000065694b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b000000000008664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b000000000065694b000000000065694b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000000a664b00000000007527000000000000bfbef505000000007527000000000000bfbef50500000000d0674b000000000000000000000000000000000000000000a8284b000000000001000000010000000000000000000000bd4a4b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000600000000000000314b4a000000000065694b000000000065694b00000000002e000000000000000000000000000000a8284b000000000053756e004d6f6e00547565005765640054687500467269005361740053756e646179004d6f6e6461790054756573646179005765646e657364617900546875727364617900467269646179005361747572646179004a616e00466562004d617200417072004d6179004a756e004a756c0041756700536570004f6374004e6f7600446563004a616e75617279004665627275617279004d6172636800417072696c004a756e65004a756c79004175677573740053657074656d626572004f63746f626572004e6f76656d62657200446563656d62657200414d00504d0025612025622025652025483a254d3a255320255900256d2f25642f25790025483a254d3a25530025493a254d3a255320257000070004000100020025612025622025652025483a254d3a255320255a2025590053000000750000006e000000000000004d0000006f0000006e00000000000000540000007500000065000000000000005700000065000000640000000000000054000000680000007500000000000000460000007200000069000000000000005300000061000000740000000000000053000000750000006e000000640000006100000079000000000000004d0000006f0000006e00000064000000610000007900000000000000460000007200000069000000640000006100000079000000000000004a000000610000006e00000000000000460000006500000062000000000000004d000000610000007200000000000000410000007000000072000000000000004d0000006100000079000000000000004a000000750000006e000000000000004a000000750000006c0000000000000041000000750000006700000000000000530000006500000070000000000000004f0000006300000074000000000000004e0000006f0000007600000000000000440000006500000063000000000000004d0000006100000072000000630000006800000000000000410000007000000072000000690000006c000000000000004a000000750000006e00000065000000000000004a000000750000006c000000790000000000000041000000750000006700000075000000730000007400000000000000410000004d00000000000000500000004d0000000000000054000000750000006500000073000000640000006100000079000000000000005700000065000000640000006e00000065000000730000006400000061000000790000000000000054000000680000007500000072000000730000006400000061000000790000000000000000000000530000006100000074000000750000007200000064000000610000007900000000000000000000004a000000610000006e00000075000000610000007200000079000000000000004600000065000000620000007200000075000000610000007200000079000000000000000000000053000000650000007000000074000000650000006d000000620000006500000072000000000000004f00000063000000740000006f000000620000006500000072000000000000004e0000006f00000076000000650000006d0000006200000065000000720000000000000000000000440000006500000063000000650000006d000000620000006500000072000000000000000000000025000000610000002000000025000000620000002000000025000000650000002000000025000000480000003a000000250000004d0000003a00000025000000530000002000000025000000590000000000000000000000250000006d0000002f00000025000000640000002f0000002500000079000000000000000000000025000000480000003a000000250000004d0000003a0000002500000053000000000000000000000025000000490000003a000000250000004d0000003a00000025000000530000002000000025000000700000000000000025000000610000002000000025000000620000002000000025000000650000002000000025000000480000003a000000250000004d0000003a000000250000005300000020000000250000005a00000020000000250000005900000000000000bd4a4b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000006f0000000000000050684b000000000054684b000000000058684b00000000005c684b000000000060684b000000000064684b000000000068684b00000000006c684b000000000073684b00000000007a684b000000000082684b00000000008c684b000000000095684b00000000009c684b0000000000a5684b0000000000a9684b0000000000ad684b0000000000b1684b0000000000b5684b0000000000b9684b0000000000bd684b0000000000c1684b0000000000c5684b0000000000c9684b0000000000cd684b0000000000d1684b0000000000d5684b0000000000dd684b0000000000e6684b0000000000ec684b0000000000b5684b0000000000f2684b0000000000f7684b0000000000fc684b000000000003694b00000000000d694b000000000015694b00000000001e694b000000000027694b00000000002a694b00000000002d694b000000000042694b00000000004b694b000000000054694b000000000065694b000000000065694b000000000065694b000000000065694b000000000065694b000000000065694b0000000000000000000000000065694b000000000080694b000000000090694b0000000000a0694b0000000000b0694b0000000000c0694b0000000000d0694b0000000000e0694b0000000000f0694b00000000000c6a4b0000000000906b4b0000000000b06b4b0000000000d86b4b0000000000286a4b0000000000006c4b0000000000446a4b0000000000546a4b0000000000646a4b0000000000746a4b0000000000846a4b0000000000946a4b0000000000a46a4b0000000000b46a4b0000000000c46a4b0000000000d46a4b0000000000e46a4b0000000000f46a4b0000000000286c4b0000000000486c4b0000000000046b4b00000000001c6b4b0000000000846a4b0000000000346b4b0000000000486b4b00000000005c6b4b0000000000706c4b0000000000986c4b0000000000b86c4b0000000000e06c4b0000000000786b4b0000000000846b4b0000000000086d4b0000000000606d4b0000000000886d4b0000000000b06d4b000000000004364b000000000004364b000000000004364b000000000004364b000000000004364b000000000060694b00000000003abc30010000000062694b000000000064694b000000000066694b000000000064694b000000000065694b000000000068694b0000000000e06d4b0000000000a8284b00000000000000000000000000bd4a4b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000003000000000000002901000000000000d200000000000000a8284b00000000002570257425672574256d257425660000000000000000000000000000000000000000000000000000bd4a4b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000070000000000000058724b000000000065694b000000000065694b000000000065694b000000000065694b000000000065694b0000000000a8284b00000000002561254e2566254e2564254e2562254e2573202568202565202572254e25432d257a202554254e2563254e0000000000000000000000000000000000000000000000000000000000bd4a4b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000d00000000000000f8724b000000000065694b000000000065694b000000000065694b000000000065694b000000000065694b0000000000000000000000000065694b000000000065694b000000000065694b000000000065694b000000000065694b0000000000a8284b00000000002b256320256120256c000000000000000000000000000000bd4a4b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000500000000000000e8734b000000000065694b000000000065694b000000000065694b0000000000a8284b0000000000000000000000000000000000000000000000000000000000bd4a4b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000020000000000000064694b0000000000a8284b000000000049534f2f494543203134363532206931386e20464443432d736574004b656c642053696d6f6e73656e006b656c6440646b7575672e646b002b343520333132322d36353433002b343520333332352d363534330049534f00312e3000313939372d31322d3230000049534f2f494543204a5443312f534332322f57473230202d20696e7465726e6174696f6e616c697a6174696f6e000000432f6f204b656c642053696d6f6e73656e2c20536b742e204a6f7267656e7320416c6c6520382c20444b2d31363135204b6f62656e6861766e205600000000000000000000000000000000000000000000000000000000006931386e3a31393939006931386e3a31393939006931386e3a31393939006931386e3a31393939006931386e3a31393939006931386e3a3139393900006931386e3a31393939006931386e3a31393939006931386e3a31393939006931386e3a31393939006931386e3a31393939006931386e3a31393939006931386e3a31393939006931386e3a31393939006931386e3a31393939006931386e3a313939390000000000000000000000000000000000000000000000000000000000000000bd4a4b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000001000000000000000d0744b000000000038754b000000000068754b0000000000ec744b0000000000fa744b000000000008754b000000000016754b000000000065694b000000000024754b000000000065694b000000000065694b000000000065694b000000000028754b00000000002c754b0000000000c0754b0000000000a8284b0000000000bd4a4b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000013000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000407c4b000000000020784b0000000000a8284b0000000000000000000000000008000000010000000800000000000000ff000000180000001c000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f000000500000005100000052000000530000005400000055000000560000005700000058000000590000005a0000005b0000005c0000005d0000005e0000005f000000600000006100000062000000630000006400000065000000660000006700000068000000690000006a0000006b0000006c0000006d0000006e0000006f000000700000007100000072000000730000007400000075000000760000007700000078000000790000007a0000007b0000007c0000007d0000007e0000007f000000800000008100000082000000830000008400000085000000860000008700000088000000890000008a0000008b0000008c0000008d0000008e0000008f000000900000009100000092000000930000009400000095000000960000009700000098000000990000009a0000009b0000009c0000009d0000009e0000009f000000a0000000a1000000a2000000a3000000a4000000a5000000a6000000a7000000a8000000a9000000aa000000ab000000ac000000ad000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000ba000000bb000000bc000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000000c8000000c9000000ca000000cb000000cc000000cd000000ce000000cf000000d0000000d1000000d2000000d3000000d4000000d5000000d6000000d7000000d8000000d9000000da000000db000000dc000000dd000000de000000df000000e0000000e1000000e2000000e3000000e4000000e5000000e6000000e7000000e8000000e9000000ea000000eb000000ec000000ed000000ee000000ef000000f0000000f1000000f2000000f3000000f4000000f5000000f6000000f7000000f8000000f9000000fa000000fb000000fc000000fd000000fe000000ff00000000000000000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000000000000000002000000000000000400000000000000020000000000000002000000000000000700000004000000040000000000000002000000000000000e0000000a000000060000000000000002000000000000001b000000180000000800000000000000020000000000000036000000320000000a0000000000000003000000000000006b000000670000000d000000000000000500000000000000d5000000d200000012000000000000000800000000000000aa010000a60100001a000000000000000f00000000000000530300005003000029000000000000001c00000000000000a5060000a2060000450000000000000037000000000000004a0d0000470d00007c000000000000006c00000000000000941a0000901a0000e800000000000000d6000000000000002735000024350000be01000000000000ab010000000000004e6a00004a6a0000690300000000000054030000000000009bd4000098d4000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000640000000000000000000000000000001027000000000000000000000000000000e1f5050000000000000000000000000000c16ff286230000000000000000000000000081efac855b416d2dee04000000000000000000000000000000000000011f6abf64ed386eed97a7daf4f93fe9034f180000000000000000000000000000000000000000000000000000000000013e952e0999df03fd38150f2fe47423ecf5cfd308dc04c4dab0cdbc197f33a603261fe94e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000017c2e985b87d3be729fd9d8872f1512c650de6b706e4acf0fd895d56e71b226b066c6ad2436151d5ad3423c0e54ff63c07355cc17eff965f228bc55f7c7dc80dced6ef4ceefdc5ff75305000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f86cfc6772f277dc46958f6f97965d978a3ab8d91a1ec31305c4464757e694c17689c879b575443b73f828bfa11daa21d33e70eacf251e222f1ab22efb51bc5d4fe196aceda3bfae579c325371fce79506fcc32419a9855e635ff9e08e90b2e4adab932a7366135c7749940e5bbe69acaf437381bc99b0461da745489769a20373b08c131f0b8a978aab8cd938d2c1d41534631c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f01929722b5bf55b217c6e869fc21e874e1c99881ac51535c50a141a1e7d4c19d82ccc0e44d10eee346689fb6ce17d1ff6431e7d83ce9f9c2b1d23c7553e23d760dc658b2151f434d15c1c865963c99fbb2b923194e8a7072a9f9f5a69be62c442108e747a5b04e31dbe1aa522d88a11c434ba05b514d8b3de3fbf161ac58fbc96b8b1ecee6df5fd6bfb314b65f4b616361a10fb95756bfe471adc8980d980a5a5bd808228209a660feb31901f8ffc10336a977e7b6ae28a3668dfb8a0e33cce62428ea251a375c9b6b06c837559443f65b5318ae356c3a6abfa35a0fb900152edc49f1b49bc884a11401641805b005e23f3f449468d1e06dea8364953c5732abde6a70c97a6c194701847ef49dbd25b3f6c92d40962ae4939432dc6a3f434945d30d4051ad6d9250300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e03313656809e33f4d7db2cf8de24921472eec54e387ee847506b6bb8a8b3691a1e5a5556dd52e737782fd42d150eab28db7519e2c3498bcda50c8f1d66e86122c341987497992c269f8d24a2e91668ffdc7712d84a757eb525523cced7ffbe01c86f3e19c203849b413973401c134de546c8c9c28a8a74366bb2df364cbe301ff7480e92e89e3947fc110926ff1a8d61e28a8b3bb7a964014155aedfb5299441eb413c309e6af16a4bca21f8211f1b46412fb74c9ba91abd6c7d635ff488e43bd19446556a6c410555e68364c5533978649abfe21bd0d1d49fe3c66a42d98a74ceacb7b0c119e8a6bc57947a0c55f2e0ed88444f4a91a3c200f73abb1576aa6f752d762dca787ff454594600466402fa4c1775d37acc9efd766e8f0954674858c4281966bfca17b7c91d7193cf07b41eb335b91f715575fae6c8ffd0807db8eac25b1b7e65c785b81c656dbea466feebeee4ed85553193cde44a2c089739dbd1a765319d099cf4bc29ede39ce760d81b1be70eeec552e7960f8d54b9d6df5fb8688fb835aef13c5438f40a489333f4379d3fa5cf4cc5846f82df83e7f5c4118e81529f45c3d8b275f446a7ab5dbf870008fcaec03d88a347ce8b245928f036c8addbee0dec9c7567dac0e14fad32a4008dee07c6775f7d50abdf11e22be92b91ffa87a4049dcea96fc3d224706f3f62af28b0ee557890d6493ed8dcc5fa4eab1a15e76b8ccd777d3b750ab408f90a2336988c27300fe571272294d6e2081de628e9f7a65ceef23cb9611b2b96eb111cb24896a1cb2bce5471f73430bebe7b19a326e5ac29e38cd2744aded553dcb5b3e80900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0672a8d4e72d4e77afe8e901e9af8174108ef5451e05451bbb11329e86b5072b129fb4e5799e54661daf0d30e6c80bee56ab8935e1545c21c59c0347c1e7eda23487cce4c1f1de8a18b9b75dfbfd610be41e378aedfc2b2676b011a7f230fcdabbe3d74256aafd7e6b3ca800e2e14279195611148232c0197008782f94bcb849c16f88c2f0588d4e6dd68611713bc05090bff419cab5424b213764e301c1a7b16fe3b472d1c449cea6c4f8161f078b89f65eb41aec7300e0d7e94d7caeba156957dd94d503021cb09831a07d5acf22ac78e3f3a3782fdbc42a895324d0f28c08a61f3044f1a81b4a5c36d1b7a96d398c8b8158f38fedca0b24e4509b9388796e9c41011ccd92b0ccd973230ec5f65b12507aee80e09f4ee197d03ed6f8c396bf29a3b50a494c9431734b5b297a675c1b950ac925bcb3c0562e0ff619732a84252eadfdbca83ebf7ad9de769ee203c17680a1e7ab92170fa74307476a76c17f68afb77eb9ba1ecdef1ba9212b763af8bc835de8c8feba4e9d537e1a064b440e8cdd187bd3b9242ff628fcdf390262e16dc5e091b9fc8595dfda81f3d753851292b0a39182f158025d9d82d3ed884f9742e877aaf1f9ec12d544dedd0b5f9ec75ea6294df0a3cc534a1ae0c39d4a2378a2efac87e32812127b87b6e2008242de010be50b8d49358b92b31ab22232b1f253f0b44de7e62bf89c7da7295b808b62a7e7878f0b3de86ab7aee6ff47393bb7bf5ec277eb5d8f79f6aa2fcd2e8043dcb13dfc96a8272317c8d9ecde0d8fca89794c3b2d9417630c139c91ccfc40826bfc7d1b67e6a323de619afee5fe2138e2b3063ee976dfe2d581d9725c43c1de47c62800a9ab58dabc837ea9e77fb0ae9cf19ca902c35e39e50c8133682d678fe506e8f780409065ba4d11bb734b5ec3f0c452cb35738c320dacfe9a6cef439028771494895db9aa18aed92b4a8a6ac95d96ccd4d50231bcf2ab1e8fb8c77671acc3aeb3883a32dc3b16a12fba8403fa046f55bed2447cee9fd744a4cd830a1732d0e96d9c1d6eba2eb6fab947c3b236f80601249739a7b8e91908c4b99f998d2b536e835ffde6da9319b1196bcd90d6b8d3fccc6fb662528e782b8723b9f76d63d3474a69b50fc008977bfdc3f6a26d6fd4196ae1b54894e07349511030d40535ad70d8e4533b5e5ad198f10bc898b1054c9a441632b3be07f3d7b438eedac977066d6cbc208552c69bc0e65f02e4f5cbff64f90dfa285999eddad9f39d2d85e32585825b91ce5e3d4f1f40f9a2dc05604f84e8c138aa0c1c801fd137176d2e6f434c2a7cc76019df23dd7d089fa8b4dcd104f54b2e0172b7d5c0ab749fe86fd413f37dfbb954421fd57e884d513d300befc96044447baa482c9cae86e9ec2ae3870ec8719a500703b33eeae2ce466ff256bfd8a3bf6b403dc9179bdc7d9b85a4e68d42e6c1a74480d9406af4963dc2fcd7e3db06f9974e9f96778ac2187ec524a9dddbc002ddd8e06de5735f859c741b9d45639f20954a7a1d83c12ab0f10b6e2217b3e3b628d2ea29d9592775fa3bca5030c2057b4fc35e4c6b61b28b94ef7540b5d3d211dcc876f0464494042ae1875b268d896b4d28bf463551cf5d834c270e968f8ff1f15f9a2e47baeee33112722d90fbb32492525c09f0aa664cd4b1045012930620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000180cf642652349fe563496453508d7b29aaf0492fc845b978f40f43b86b3b930a2df85fd401c56474f1bb73b3e1c19e03e8fb3b890601e98e0d39f7808def3f25131df36b44732c927acaf579e3191cbef20a279c9d2df548ed2bebe172bf3ac2ffc44a0835cf7e829a01225a7a59383c7b6abe6eff519a3784d2a29dbe0a0ceac69e7cff8798c799c85158d020644381d5eaef7f54b572b5d2b199f8d87a075bbfdd5ced05433bc71a86e3fdf3882dbe436b3daa203239052438e59520d61c960ca161e1d1a0875da595cae633c968e282e09ebb898077e99e4241d4d8b6fb0d5029c57154cf2629beb96840b1c9d65a63be0752181584822157b535037383b40023eb312d31dd9bddd6059ca58d48254d7837402e2cdafa928d6a20d7576aac410b9532867af062f055cd6ad0ca2ee7dfa3e6b08bc9348f7d769cb12105b6d1af2a75be167de828d7e19d0c8b8ae5303801c619c1a22f56914f3cc8409b518ffc58501b7078ab479cc5ad54a502c56f28b30f4cf047666e07b49dc895a45eb1fa749c8b0ff0b43c7a7c89c6b492d040033e28a81ff332cc08b7eee23db6678b3c7b4f2bc02befe3bf14dac04493c4be85bcaa9ee6c4b6a68ace2e1610a1634dbacf19d9e46a72420bc90f07e76aee4ab09042c5ab9a4d0e072bfbcd0649f30a4bf51f0997ca52e1bf420b7015431676300f98bb65556b4a4c8ceb763ce69c71c7e4b9534ca23dfa66026f663c0eb5794fe376964bbb013ecf489924a1be0f12adbe86dc4efaa11c901ed1f97bb9c3030e73718ea50c371597b148e2676488977423db247e723cd2cc16216ed7678ecfae73f9d3edbd34ec80d63105ab42b0a0960e77173c5cfc74186fabce4e20b8a5f34358ed0c6c412f11dd1183017895d84bc7b113860e7e3b45c69610fc9fa7517615b20adad6fca7346a83acccd03d365a6e31ed496049b2bc22037da9a1de5aaaf2cd538d573931a91a1dc9650503edcb98d1270a4e328a3eb85d34254328e823bf90c034b15cb6da0add51509e00da61adf8d7a6367e575ec784aae6ffbd2e53d5b50e688d13acdd84bda1745f4ad100ffccfa8c53558c8b94b0118052482ef845e3d77a049eff70e76ef0be77ea6936c10f6725162fac2694866c68140664f43f3a82ed6342479b58b37a5a2057ad243f216bc46fae4e3ee03d3f132bd99b585a314ac2491bcb1b387338c141162594c97bda0a68bc9abccfa584982e96700d960af6128dfc4cef18ed68c8ac60145dea9a363011137ec847c7b0a5992db39b363a58366b0035518a11e6a63fe4907194b45ec03da1b83d73d77071bd0dd167fbc3e7d77e11492ad7e29ee95fc040db38965ba271d968d439425995151a3c220a85927311c1d8dbd222c05f7b56ebb4c5927a0051c09900cc11205735fb0d81076961818439f434855ef29ed16166c4e82e3cb00a8a76af34c214a59a8735a2749757dae559b366c49b5abd39f36d02ab4467fdb5bb0272972bf2c9853600dce5039e355470b0cf3952081fa19b627523f88786259cdd10b5a38fbfc752cfd01eb379e04532d3f89fffc738eeba62557df1b9b302f763854ccc5d27cacbd1d905e0acdb17e80a92c60550e3ce62c0ea1d0fb949e019749f5959167aa2b25a1d91f00df0ce7d66dd03365122553735378197da22a05f1694840dc257beef92e5a0309692615747cc53c943507311ad2635a8e04b44c03c46f8b53651ff1631660a2a2c5737f0da6404d3aa8dbfb1f718577f7e9e3e0fe7cfa4e524266fc2e45a9b8c85f4e8dfe382faf609154ac6ea4ab2ac20b22430c02ab0ddddfecddd74c534d8c3864c3899e004d971a548dd5fa05045745cb377715fe8816ddcebaab1b09b0f54c0cdd485dff47aaf8657848738e5e5ca912adf1182a5f6c4a3895615aaf68c3a9805a7522fbf9ff0fee72c624ae84865533b4a471a28f872088ad4f6dc23843e9c92f049504a041b07ece936ccde171b0ce3201328fc456a194233f9b7af4637e3016639447530d19480f112418bd3d10d4161366b79d8d84d7dd90bbce94791518080dae28415c138e4cdf1245d95a1599640b150091b5f63095abefeb165b97254610ac05d5267e00863d4e28940a405e7d40992fc43268bc132faa54744531127afdcca1736d2f0c44d86b32e69ef16a16abc9159650bdc410697954654649655c6e80f9c741a0ddc4b1e38d3a7612a29c5dc5fb64ec24c474273b1c6f2eec9df1999a1190ae32ecebe8d778bc67caa03aaf086dbc8bed254aee0012ab98ff4e3dea9c023605228aef63b7633a29ecb41a4dddd4632b7b48b3ac3a3fa44c8f28e3016851cfd342586d2e7eb253b6f6f3362456a330ce62c8e0b71f167e8f2a1ee11ec7239520349df682458c050b74cef51a8f24dcb15e1fa3f2fca1ab55f63d13ec61cffd69fc05a0ad6d98ede6fc73d0addd8c25dde1d9937b2ac5bf9136ead80ee053016a6c7f8d480d12532080f76a44d00ff5f871a2b9b7685eae7660bd05c528447ec0dd85d2839241120a1b30143c89f87ff8cb6cbfab8f66aaf84df7fb1f1d908c2769548f4e9a694872c86ccad4ce5830ea485169380c501ab3b29401efa84d7ca7fdf1d1f8460856bb222e7ce8b93391cb44e2574f4ebccc79a6dc2b9b9df086b24ce3e2eec5514981004f6df2b4e80bc8ba36fe00c5434b5523ce572efb2df025ac0a5b2a5a2025038333197ff537c5955f41dd61a26e534c52eac39ab0cbcc639758b38c02f733f04c7ea00d921fb921e9789c003a5ffb48f3ff97ab653e372231b31a8afc96682ca96e41db016dbdb510bfad6efa59199893056bd0fbe8c16e3a1540945927b532397d0532d276728b98c558626f0830b105dc8fa512956f895db5d1ec86836ad927bd248e6b730c9998ab519e374dea317a9cda9ee356ecb6ed14d7ad5e9804c3f07844da85ba974c0cfff9ceb8584d272637915cde91757dfa8ed774e3c47abe165b9ad5969adff5956c05b8038d66e270224fb0b851420dfdd5fd19245d7fd7df338b5822e8e3a6f397314f8eda5f6211ae43c1a35c40c64824e75735eb9aa961b82c763f42ff4aafa42c265ac00dd0e267e08f593d1172803be0dc9634a84960fd1f9dd91aa85ec27f1babbdab60aa5e685ce4fd2f51a166ab5e7195a6ccd9fd7d157282bfc5df0d24deca164fe186a21728d7720225f084af172119bb0d8ab38f03b441fcfc67c5d26c4e7b0b1da2c8d394668dccf7dd305e7b6e6d1af4a83112c36071170d8b798acf67e4d11ad249464d651b50ac4e4c6d1dd0f0332a1c884d2c92a661fdbee6940824b905741adb346c8ca8184d3178c240a1f8346c8eb5f74e8a8250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001009f097d68b5416e1bfdcb63ee758cea1c194bad9652d70ad894239bdab51eed04a018d9fe795c1cb0e337b8a167ed14a7d978d5341a2a0d7fbe8f16351d6bea437ce5815682a7e8321dc8e116e7d3000b8658653dd9a6979c15832f231301692212d6a0c32173f3926abed3a94ccaa576e2d16351e5c0d61559b0c1787a7ba40cae0f4bdfa3626fecab08110d03138a3346d4f2c8dc60d5d1055ff6f9e125ee0ba40413718c7fc07ef4889af59f5861368c30a16850ea8f10fb95ff7de80641e75915dcabd4d4e492e0017c9016eee6787b5acbab3ae7e0b76b14892837adc5436b4f1dfc49fd89f5290f539273d3565a74c4c2fcace2c7cb5cd7cd16d0ede0635aacd3cc82ef6e4952b3c4bfda2b01043d5b7f19b0013c6de9ad3d25d929babdbe191b6bc573257b5e251e7f2b1f7e456aa536c8996278cc635cc674caa293fe855cea1b57ee61258e50d0f1b52da9e6fdb1997bb8a9370ab94f070f26f7fdc558ff977eee5646fab9bacef9e642736f817867d2761b28c7b2fd9c5166458ddd17ae5fa9f6b9a133d51cea0d1667ac4b5314f9f8d8fc1d90f2f30a1f8b703b062988dfa15794a12a878f3593bb360e2c67b509d189d86a3ac67e7266309357d4b63968ab398206252eef1f7a0dbe35b651422255f60555bdf00e9168280364b6422cacfb159811d61f479c374e819d34d87dda5ba2a44cb886989de3b901a2e17c5ac9cb31ae327fd086af8fef83765b6bb6df0f4758739bd59689886151f70c40dcc60f8efc703669af568ea009e67d7391e182f6743f92030e6dc58a7fd4cf00749ae4058e3ceaeb4c64114e388c3de4b25ee00ab5d93e0b0f236100a43771136434199a4e00414005e61b62d955a22993bb7e345c1bebcb756b3484e655ee0f8453976abaf63638f47b5b506078924a335d476dfd6147b95daa75732660e110c1636d4f021066c92e194c9ba9f4c915b990fd8c3346a82ef0091ae5b9b18f92ae881de3fa21b73d1a26dd75849d48695707c4d47af0e9490ac875e234835d073d4a11631d1564a97247e9986b5f0b501d36dc0fd585501e1475127587343884e79e807822ee525cb1d2ea7a94027bdbfe44b79751a89be064a6d0498885aabe2313b9ec1167d67e0f4848985dea31639fe9908258d1644da2e5e9097e33205932df01a503a670c22738f73dbb705a7c3c3c839041f4f94b7d9bd8e5809461fca763b6effa492be562cdadb6d3fc4696803af72c1f4fed65b7fb4b1e53f205cd92a6d112aff330ee227410da38bb4764ed0856721ad322f2af546f3c7a569aa7bc128d0e7bc560461cfbd6346e9f1a486f9cc99dfe82db88f8a09e48d8fac0b48481a2dec083857a9787e830aeecbc1c8ccb48481d37d1e00efcb011d049fdb594d47d8d47e7f2673dad62abac2ae6b40af57dfc1d53452ed2750e0b8701b0b7496dbf731bfd7f801237079fdc52583e6f50f2e2c04a2ee6935aa5964d85e1d0c1db26a1837b910b1943d0bfef6916dfc7ddb6258fc9ea6220a6176c4778f260cb8303462596e9850ebe058cda348a676f3462206929e99bf59ab647191ba1bf0e2283fd90bfe9c115ecb199d63f34f0b202d00170aaea76cfb58a77c0a8ed7351e208b0b7c6e4004e4d3f5d501a34dd99124e9d1c7869fb4f955e4c47dda69c6e38f919dae0a6dde28e31dc98545e45da36b8673f1c18e421649a7ea955f6171ebb087a5221dc1217ad72296856d24200f1adbecc967b49cae0991e8685a58a0d50f6b0eedac3c3dc7ef76a506897eb5dbe609d7cb778d9e9957eb337940bad77757f7442c442be07fed25f6da95d8c4c7dc28f0d0fd52f0f2360cf0c3f05565bbd01113b0649d35627cafec050a10276a48d88c454be9a413306d156ed2061c72341b18d75e656b6768f1e744eb997d2216fbe969d436236279e409b4d5726662af9ff35058255bf3924e069b73868be4cfd0064ca640fa08a154b1fae52209e58a5cc049ee65efb4c64da581f6ef2960194b18a6be1e1be08f98beda409282fabab0bd5e6f7576e29890a6b316435f7fc4c4ab5c40a1d9acbd69f6ff8fb6b8369f4423b2921d38b6b1b1140b18f277c55d945b388d11fff3cd12cd3a03aecf792f78937a47f70abbfa4794deb8ca2b38e4dc2d9dcda34713eebe206764fc0d711d879b3bc0e3b2b33fc948cab538ba2015d6cc02a4300d9ca91ea7f08b0306d085f846449536f797d68e4fd67fe88f8566c04e0772148ae11cb98ce460c59840044eb1f9ba21b6e11162fff9c3e3ff78cca59311859843446edf056320cd1b7016aa1d9919e5b40243eee3ca6e43987b496b32a71781b3ffd5d83099f487a8c4ab79215817cdf05373f8d0e73f21fa62296b26837d39c25a684ff43e98fcf8183d86e56c67f42482894c73559fbd2cf8b8c7ea9d8ae0a7523cadd32ef0881aaf9fffb96aa39d0a188f5cde3007ee747db3f6bcd809a2ae75221529a8362a0ed105617efa1cf70a6c4e69f33eef3fb2d3bf5d7c2274ea492b0e447ccbc12a2dfc9834fd675547e99bf1913b599e5ff9fb6c7c21fe70556efdd6921834ebeb6fec81d92bf1dfbbd608d9f7572a0ef4635edeb0e02643dabcafea220dbf61812badd2bb6b2f0ef0131fa5cde8f1392312ed21421a53fadee87ddb108df427638a5d0346f7444486cd71703c44cc989f6e47160d7b7a2b4e05f15791c6e533fd4c7717dfb3e06d98d065f5fa73570772d6507460f756c65a1648ecfc2368b754d2193ef4893788905e4f3b774960b0b57108fbafabdd79df0ce1f262ba9b6211c071fb8ebcb6ced27f4d68c2244cf6fe56560c43650ef9d91ad8b84fdcca658d161a3dc27755904f34c7550855009fd0da7aaf54035db7a57354e3dbab54f6c73359f68fbcd82fae8efca0dab97f32fbd519cfea7776c840731818b613da497a7bc51965efcbc8fe0e21f79e8f7c01c2f779d6f427c886fd508abc3800063a6ee0dc66ed4e6b74eca7d9d1d686b0b7306daf2e0f04a68f48b036374095202d319ca9abb09bcb1ae55aa3344ed3dba3879f265784b3ee76b29281463f97ecc551d7a476b0bdf5218e1cdbda5ddceb30e0af08b1aca7272b54152ccfd02b0b39888ff628887c47253e8b329ca4bbf45ef1f7e8931d8f2af27540f059edf3c85e8ba75ac065cf600a7719cac5e14a3b2ba63debf5b2576e67b816ed0d36a4c3599ab25f8f25ee95a09cd11de784fd57eae01a0cb9d82b3bd18bd5a9e9ceb1804c5a3ad6c55e3e3aa7954d35fac9151ac211822d3d9d1c8518c3a31c83f8c0864a246c1edab54b1c55b759293c09e3457ba4af96c88d541b2d85a0a4ba9ab3658673a889f22ada99a06645d2f17460516da6603a48e80c30324170b35a2f070666e81fa27b8ce4feacf5fa6d5567b16b29f2bfecd6bc3fec94c4ca80f3296cd8485123eb8a8ed0925a5ec917be1c77edcbe45bcf43240c1a789e69bc00bb22efc1edfff5f83ef14596c96c6d88d77cd3b0feb5f1577d423c8874bd650a52257983188628b1a5a31e6178e647a9d7e4b283da42b84caca6798031f745901666ea9e1163e453cde3dae563ea5ef0aebc73ef3393f731d7578f86d8145f77067628dd217cbf4879e90ba6aa89328f3dcc1e24c1e1a42d095d869ddf6b9f5ea00bb8776c3ac789560ca390d495b4c6db8f8f07e73f26d9f4139c07b2669034a5272c460b06e931ec0dbb1351029544d988385ad73f620bc8ce01549b21fa6034858d7bc5be1b5dd88404225c2d41a04182cd17213a5b469bab23f28992296c211cdf3d6dc2523df54ac5ea5a3241d6ee1775b41cdb3c0859db9c7ef7b49e35411e98bcd6573aa0051b5eb99e60ea62709fcde74b3ef10a9ca8a3d0eb48306003fda89a09085751bcec620fff654f3f7a2fdf658abd26d3b76d01525af6c2d621925574071c38f6363984fbb00ea4d4aea096de99de65ffe016ba5610196ec329e52e90a26f8ea7ea301770571696f71a05adab13fcbdafe604290b73fa3752f0176bee5c024ae090f13dc23832e76cb8e5c128fcb175c5f1b40e0630a5f0a56e14786a757dcd47713eee57e8e22b994a20a34c5a6ae2ffeb0558a312d9272b708f1f6dd5bf10297b6df4e8a43cd66dbe190a1e44c58cbf68e569d5fe569ba76a36d09c1a65c94e2c745e9b377c90c6c5bcf9944691dae87b411ac3983cf6eccb3bce028b85071106b040ded03574659612c10160d72d0db08a933be2b74e276c022666a9648a4ef0c1d9f81de1dbf521360390c37b94acc85a5947f85eb06722f5a586bae3f1f0fcd493dfbe57876d4891b5be6e9745b9482ed83644eb7d9c44129cc7a087edc185c56e5f2091a3dcd4cbf77e904d31d6322a58e3723619b1017455a28e4b706a5f14bc2035862f872316854734ec8112b8a3f892bd17d910442ed0b8b698c97fb53987b773196c9e197b6058f025f1081035155f05590e355e230b6c1d0e21e3290b9d1f4fda844c14dff56301a52e0998914661c11a85268c9a908f55781944a394bf14ddca0932eec9456fa6a6e7783c28f04fa2ff76f1835c4b78814f96f7f038d1eec99a82777754812b601417d37cfb8684ea5a5690557b4a0a0c52afd9c3d06744c507c4c88a5f155199b0abf910b8d2f86f6e56153ff798fd3d30efb31fdc6c731e19f48c6b985b4f2eb8f6be8778e0ea82b99869942569a874868a5dd8c606e100d3e0e304b75760520255b19d5afd9aa375d39091fe80e390ae00aa2eedebef0fef55511d5b573d1276ecfeb729e78e976b7baf766b93802520908846c72c5eb4733a2e5dc653783c73e40d7928cfee3dd3c93ecca32ae7903d211e81b4180657541bd1bfa72b32521a9042fc484fee54edd2c92253a53684496e03bad496d368028fe1a841c1990e0f1e15f90fb59ad51a4c9d0a93b9c2edb56f21924a4a0e721e9a53c9a3c75a38ead91d0c7ce40b9bd998ff57e47c733498a8d8b59b2f79d65f51c1eaccf48879f33ab4aa0e23fb022e1376fbc4530ebfec9a0aa759c4e173cc15d58a00eb4bb58dc5abd963a821425204d717a3ceb9768696b3bb86c06e47da35f6b493b6a5de73782d30d383c511a0ec9fa26da648345f2eac6b512479ece79bffcf11f866e7cbebaa7a65915f5708d5314769425e4046bb2ff688725f4a51c07849e3f8411643b56678f5fa5a5b1622021bc5668dae5d118faf2172d5ece8c069cbca1b10f298eaff12d89c8b810ad17553eb4097459d08fc30744810d024ab6c9a9fed6e7e0d8f9aab2d5409b5ede4aed44da41bfd645a03caa87fc122dc6c8ac0847262e2110ff27120d4257ebfe5025a05de76866d6e1e5561dec15c232ef0b1eae7e8b047f22e9c0581986ea2aac1a25582504e1bb36a5fea167961d2e7deb33d20b5c43cf673c69b0ea18d961f0c93e90ace8c4d68817fb0e5b8f09b078d809175eb3123cb7e16c3f54ffb3a1bb7d8f8a6a8d60373e56e873400533a34907e064b9cabfebf9aa5c8d7e7cc83b94bdb2ed2df6f822c3de56e6223268c526160c677f9e08942f5437424094d24730e5c42f1e441984ac8d288bf945927fe9b4afa70d65158af7de2a0819ef0431de623c04c53dff0a3506cd7e8b0ae8e7ad0f60e0cc818e4de0f4eb810fe387f5f72a377ba08c8f2d6f1ce1de1c4b62d326c4adf8edeb9dca4fde225c78f734366b18e3fa95b5f8ac5fa7bfd716d33c00f63cfebb50cb23b0a15510c5fdcf6300779a8693d422e05110ebcefb7e458751c9ef9d10d8923867e2fd3ce17232aad434819cc05bad89bf1b182703c71e510932b621aa8621e7d7b58518e49c3f714689273d4926c586135c2ad2d5c4dffdce1c2859cfa63e9792f643be4eadc6c5ea7d89f46ca08250d92a56ce82bde9e528dbf0d828816ef0dd66017b70003fae7d6a75f5fb80465a030241114f334bbae7dffe905194756a1049bcf1e567ade3aa66a7a1d771e90e0414a2209174b315f4ea87dc1e3cb4aa177d63adc6c1585888c70303d90bb7d4bf0eebf43f889a4a3430ea1ed846549295ecf0de5ae7f5b5abc3d8bb20ce2cc2c1624294e623dbacc52140028035c63222810cb3944876f055cd9a567839ea969628b5d64d401b3e1cb35358de79362c8ad8a7b56e9aa8bd5696f09c8f5b6da8fde7c78164d5a7a6505db4bf1581539a4f5dd457c02400b14f009f00a0dda01c5e740f42acbd38bbcf15a6d4f01803bf1984ef3a0e207b3dcb3e1e6c16dd2f27589fcffa3b46cef5c02835a16333e359ea8cca20a06b11ddaa3d5abb3d473f52e5ea557f741e172209fb20d564849e706c1b95ce0702c4fd356deb0875faa895c4391cd1b0653d3181f07e4457261eb6a7f30123f7156309bbc5a7a3454ba403a9882f430087190819661b4eebbd667bbb7151246df58241de0bbd890d6cdef487608a0df75b85879a4974a2080a72c74a174096d4acddd9b08c48b34d447d39fe5b747bd07bcb7d197d569d6e1208b9e3f1fe4391ac02e0b96df95f1101220af6c8c9615b2fabab09a7444ab1739ca10c97793c84e6bba9e38cc13f5eee04040c9df54d76c2c20e993cbad04a0fbee8057d6499e55d369dc190290c4dacd9a9e52da780b6dde5e24c67026c6d5bc2f906e07860bd81dcfcb541fa42d79923ccccc0ad91c62cd85a21c3b073eab0e511a5a6e099f4b07ae253a24044d92125754744366e9a083711ab1d308b8fa3428a0500000000000000000000000000000000000000000000000000000000300000003100000032000000330000003400000035000000360000003700000038000000390000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f000000500000005100000052000000530000005400000055000000560000005700000058000000590000005a00000000000000000000000000000000000000300000003100000032000000330000003400000035000000360000003700000038000000390000006100000062000000630000006400000065000000660000006700000068000000690000006a0000006b0000006c0000006d0000006e0000006f000000700000007100000072000000730000007400000075000000760000007700000078000000790000007a00000053756363657373004f7065726174696f6e206e6f74207065726d6974746564004e6f20737563682066696c65206f72206469726563746f7279004e6f20737563682070726f6365737300496e7465727275707465642073797374656d2063616c6c00496e7075742f6f7574707574206572726f72004e6f207375636820646576696365206f72206164647265737300417267756d656e74206c69737420746f6f206c6f6e67004578656320666f726d6174206572726f72004261642066696c652064657363726970746f72004e6f206368696c642070726f6365737365730043616e6e6f7420616c6c6f63617465206d656d6f7279005065726d697373696f6e2064656e69656400426164206164647265737300426c6f636b2064657669636520726571756972656400446576696365206f72207265736f7572636520627573790046696c652065786973747300496e76616c69642063726f73732d646576696365206c696e6b004e6f207375636820646576696365004e6f742061206469726563746f72790049732061206469726563746f727900496e76616c696420617267756d656e7400546f6f206d616e79206f70656e2066696c657320696e2073797374656d00546f6f206d616e79206f70656e2066696c657300546578742066696c6520627573790046696c6520746f6f206c61726765004e6f207370616365206c656674206f6e2064657669636500496c6c6567616c207365656b00526561642d6f6e6c792066696c652073797374656d00546f6f206d616e79206c696e6b730042726f6b656e2070697065004e756d65726963616c20726573756c74206f7574206f662072616e6765005265736f7572636520646561646c6f636b2061766f696465640046696c65206e616d6520746f6f206c6f6e67004e6f206c6f636b7320617661696c61626c650046756e6374696f6e206e6f7420696d706c656d656e746564004469726563746f7279206e6f7420656d707479004e6f206d657373616765206f6620646573697265642074797065004964656e7469666965722072656d6f766564004368616e6e656c206e756d626572206f7574206f662072616e6765004c6576656c2032206e6f742073796e6368726f6e697a6564004c6576656c20332068616c746564004c6576656c2033207265736574004c696e6b206e756d626572206f7574206f662072616e67650050726f746f636f6c20647269766572206e6f74206174746163686564004e6f204353492073747275637475726520617661696c61626c65004c6576656c20322068616c74656400496e76616c69642065786368616e676500496e76616c696420726571756573742064657363726970746f720045786368616e67652066756c6c004e6f20616e6f646500496e76616c6964207265717565737420636f646500496e76616c696420736c6f740042616420666f6e742066696c6520666f726d617400446576696365206e6f7420612073747265616d004e6f206461746120617661696c61626c650054696d65722065787069726564004f7574206f662073747265616d73207265736f7572636573004d616368696e65206973206e6f74206f6e20746865206e6574776f726b005061636b616765206e6f7420696e7374616c6c6564004f626a6563742069732072656d6f7465004c696e6b20686173206265656e207365766572656400416476657274697365206572726f720053726d6f756e74206572726f7200436f6d6d756e69636174696f6e206572726f72206f6e2073656e640050726f746f636f6c206572726f72004d756c7469686f7020617474656d7074656400524653207370656369666963206572726f7200426164206d657373616765004e616d65206e6f7420756e69717565206f6e206e6574776f726b0046696c652064657363726970746f7220696e206261642073746174650052656d6f74652061646472657373206368616e6765640053747265616d732070697065206572726f7200546f6f206d616e792075736572730044657374696e6174696f6e2061646472657373207265717569726564004d65737361676520746f6f206c6f6e670050726f746f636f6c206e6f7420617661696c61626c650050726f746f636f6c206e6f7420737570706f7274656400536f636b65742074797065206e6f7420737570706f72746564004f7065726174696f6e206e6f7420737570706f727465640050726f746f636f6c2066616d696c79206e6f7420737570706f72746564004164647265737320616c726561647920696e20757365004e6574776f726b20697320646f776e004e6574776f726b20697320756e726561636861626c6500436f6e6e656374696f6e2072657365742062792070656572004e6f2062756666657220737061636520617661696c61626c6500436f6e6e656374696f6e2074696d6564206f757400436f6e6e656374696f6e207265667573656400486f737420697320646f776e004e6f20726f75746520746f20686f7374004f7065726174696f6e20616c726561647920696e2070726f6772657373004f7065726174696f6e206e6f7720696e2070726f6772657373005374616c652066696c652068616e646c6500537472756374757265206e6565647320636c65616e696e67004e6f7420612058454e4958206e616d656420747970652066696c65004e6f2058454e49582073656d6170686f72657320617661696c61626c650049732061206e616d656420747970652066696c650052656d6f746520492f4f206572726f72004469736b2071756f7461206578636565646564004e6f206d656469756d20666f756e640057726f6e67206d656469756d2074797065004f7065726174696f6e2063616e63656c6564005265717569726564206b6579206e6f7420617661696c61626c65004b6579206861732065787069726564004b657920686173206265656e207265766f6b6564004b6579207761732072656a65637465642062792073657276696365004f776e65722064696564005374617465206e6f74207265636f76657261626c65000000000000005265736f757263652074656d706f726172696c7920756e617661696c61626c650000000000000000496e617070726f70726961746520696f63746c20666f722064657669636500004e756d65726963616c20617267756d656e74206f7574206f6620646f6d61696e0000000000000000546f6f206d616e79206c6576656c73206f662073796d626f6c6963206c696e6b730000000000000056616c756520746f6f206c6172676520666f7220646566696e65642064617461207479706500000043616e206e6f74206163636573732061206e656564656420736861726564206c6962726172790000416363657373696e67206120636f7272757074656420736861726564206c696272617279000000002e6c69622073656374696f6e20696e20612e6f757420636f7272757074656400417474656d7074696e6720746f206c696e6b20696e20746f6f206d616e7920736861726564206c69627261726965730043616e6e6f742065786563206120736861726564206c696272617279206469726563746c79000000496e76616c6964206f7220696e636f6d706c657465206d756c746962797465206f7220776964652063686172616374657200000000000000496e7465727275707465642073797374656d2063616c6c2073686f756c64206265207265737461727465640000000000536f636b6574206f7065726174696f6e206f6e206e6f6e2d736f636b6574000050726f746f636f6c2077726f6e67207479706520666f7220736f636b65740000416464726573732066616d696c79206e6f7420737570706f727465642062792070726f746f636f6c000000000000000043616e6e6f742061737369676e207265717565737465642061646472657373004e6574776f726b2064726f7070656420636f6e6e656374696f6e206f6e2072657365740000000000536f6674776172652063617573656420636f6e6e656374696f6e2061626f727400000000000000005472616e73706f727420656e64706f696e7420697320616c726561647920636f6e6e6563746564005472616e73706f727420656e64706f696e74206973206e6f7420636f6e6e6563746564000000000043616e6e6f742073656e64206166746572207472616e73706f727420656e64706f696e742073687574646f776e000000546f6f206d616e79207265666572656e6365733a2063616e6e6f742073706c6963650000000000004f7065726174696f6e206e6f7420706f737369626c652064756520746f2052462d6b696c6c0000004d656d6f7279207061676520686173206861726477617265206572726f720000000000000000000000000000000000000000000000000000f0b54b0000000000f8b54b000000000010b64b00000000002ab64b00000000003ab64b000000000052b64b000000000065b64b00000000007fb64b000000000096b64b0000000000a8b64b0000000000bcb64b0000000000a8be4b0000000000cfb64b0000000000e6b64b0000000000f8b64b000000000004b74b00000000001ab74b000000000032b74b00000000003eb74b000000000058b74b000000000067b74b000000000077b74b000000000086b74b000000000097b74b0000000000b5b74b0000000000d0be4b0000000000c9b74b0000000000d8b74b0000000000e7b74b0000000000ffb74b00000000000cb84b000000000022b84b000000000031b84b0000000000f0be4b00000000003db84b00000000005bb84b000000000075b84b000000000088b84b00000000009bb84b0000000000b4b84b000000000018bf4b00000000000000000000000000c8b84b0000000000e3b84b0000000000f6b84b000000000012b94b00000000002bb94b00000000003ab94b000000000048b94b000000000061b94b00000000007eb94b000000000099b94b0000000000a8b94b0000000000b9b94b0000000000d4b94b0000000000e2b94b0000000000ebb94b000000000000ba4b000000000000000000000000000dba4b000000000022ba4b000000000036ba4b000000000048ba4b000000000056ba4b00000000006fba4b00000000008dba4b0000000000a3ba4b0000000000b4ba4b0000000000caba4b0000000000daba4b0000000000e8ba4b000000000004bb4b000000000013bb4b000000000026bb4b000000000039bb4b000000000040bf4b000000000045bb4b000000000060bb4b00000000007dbb4b000000000068bf4b000000000090bf4b0000000000b8bf4b0000000000d8bf4b000000000008c04b000000000030c04b000000000068c04b000000000094bb4b0000000000a7bb4b000000000098c04b0000000000b6bb4b0000000000d3bb4b0000000000b8c04b0000000000e4bb4b0000000000fbbb4b000000000012bc4b00000000002cbc4b000000000044bc4b0000000000d8c04b000000000062bc4b000000000008c14b000000000079bc4b000000000089bc4b000000000028c14b000000000050c14b0000000000a0bc4b0000000000b9bc4b000000000078c14b0000000000a0c14b0000000000c8c14b0000000000f8c14b0000000000d3bc4b0000000000e8bc4b0000000000fbbc4b000000000008bd4b000000000019bd4b000000000037bd4b000000000051bd4b000000000063bd4b00000000007cbd4b000000000098bd4b0000000000b6bd4b0000000000cbbd4b0000000000dcbd4b0000000000f0bd4b000000000000be4b000000000012be4b000000000025be4b000000000040be4b000000000050be4b000000000065be4b000000000081be4b00000000008cbe4b000000000020c24b000000000048c24b00000000000000000000000000870000006f7574206f66206d656d6f727900257325732573002573257325733a202573005f646c66636e5f686f6f6b00756e737570706f7274656420646c696e666f207265717565737400000000000020b0470000000000b0af470000000000c0af47000000000020b0470000000000d0af470000000000e0af470000000000f0af47000000000020b047000000000020b047000000000008b047000000000090af470000000000696e76616c6964206e616d65737061636500556e6b6e6f776e206572726f720000001f003b005a0078009700b500d400f300110130014e016d0100001f003c005b0079009800b600d500f400120131014f016e01646c2d646570732e6300636e74203c3d206e6c697374000000000000445354206e6f7420616c6c6f77656420696e20535549442f534749442070726f6772616d7300000063616e6e6f74206c6f616420617578696c6961727920602573272062656361757365206f6620656d7074792064796e616d696320737472696e6720746f6b656e20737562737469747574696f6e0a0000656d7074792064796e616d696320737472696e6720746f6b656e20737562737469747574696f6e006c6f616420617578696c69617279206f626a6563743d2573207265717565737465642062792066696c653d25730a000063616e6e6f7420616c6c6f6361746520646570656e64656e6379206c697374006d61702d3e6c5f7365617263686c6973742e725f6c697374203d3d204e554c4c000000000000000063616e6e6f7420616c6c6f636174652073796d626f6c20736561726368206c69737400000000000046696c74657273206e6f7420737570706f727465642077697468204c445f54524143455f5052454c494e4b494e4700006d61702d3e6c5f7365617263686c6973742e725f6c6973745b305d203d3d206d617000000000000000000000000000005f646c5f6d61705f6f626a6563745f64657073002e2e2f656c662f646c2d72756e74696d652e6300454c465728525f54595045292872656c6f632d3e725f696e666f29203d3d20454c465f4d414348494e455f4a4d505f534c4f5400000000005f646c5f6669787570000000000000005f646c5f70726f66696c655f6669787570000a63616c6c696e6720696e69743a2025730a0a000a63616c6c696e6720707265696e69743a2025730a0a00646c2d66696e692e630069203c206e6c6f616465640000000000006e7320213d204c4d5f49445f42415345207c7c2069203d3d206e6c6f6164656400000000000000006e73203d3d204c4d5f49445f42415345207c7c2069203d3d206e6c6f61646564207c7c2069203d3d206e6c6f61646564202d2031000000005f646c5f66696e6900646c2d76657273696f6e2e63006465665f6f666673657420213d203000756e737570706f727465642076657273696f6e2000206f6620566572646566207265636f7264007765616b2076657273696f6e20600027206e6f7420666f756e6420287265717569726564206279200076657273696f6e206c6f6f6b7570206572726f7200206f66205665726e656564207265636f72640a006e656564656420213d204e554c4c000000636865636b696e6720666f722076657273696f6e206025732720696e2066696c65202573205b256c755d2072657175697265642062792066696c65202573205b256c755d0a0000006e6f2076657273696f6e20696e666f726d6174696f6e20617661696c61626c652028726571756972656420627920000063616e6e6f7420616c6c6f636174652076657273696f6e207265666572656e6365207461626c65006d617463685f73796d626f6c0000000000000000000000005f646c5f636865636b5f6d61705f76657273696f6e730025733a2063616e6e6f74206f70656e2066696c653a2025730a0025733a2063616e6e6f7420737461742066696c653a2025730a0025733a2063616e6e6f74206d61702066696c653a2025730a0025733a2063616e6e6f74206372656174652066696c653a2025730a0025733a2066696c65206973206e6f20636f72726563742070726f66696c6520646174612066696c6520666f7220602573270a0000000000004f7574206f66206d656d6f7279207768696c6520696e697469616c697a696e672070726f66696c65720a00746f5f696e70756e63740076667363616e662e6300636e74203c204d425f4355525f4d41580000000000000000d609480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c4800000000006809480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c4800000000004609480000000000db0c480000000000e007480000000000db0c480000000000130a480000000000ee09480000000000db0c480000000000db0c480000000000db0c480000000000d609480000000000db0c480000000000db0c480000000000e007480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000db0c480000000000e007480000000000ce1f4800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a6448000000000020204800000000006a6448000000000037204800000000006a644800000000002020480000000000202048000000000020204800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000006a644800000000002f204800000000006a644800000000006a644800000000006a644800000000006a644800000000005a214800000000006a644800000000006a6448000000000052214800000000006a644800000000006a644800000000006a644800000000006a644800000000006a6448000000000020204800000000006a644800000000004a214800000000003b214800000000002020480000000000202048000000000020204800000000006a644800000000002c214800000000006a644800000000006a644800000000006a644800000000006a644800000000002421480000000000b81f4800000000008b1f4800000000006a644800000000006a64480000000000161d4800000000006a64480000000000001d4800000000006a644800000000006a644800000000005a214800000000002f154800000000006921480000000000db17480000000000db17480000000000db1748000000000069214800000000006921480000000000692148000000000069214800000000006921480000000000692148000000000069214800000000006921480000000000692148000000000069214800000000006921480000000000991348000000000069214800000000006921480000000000692148000000000069214800000000008713480000000000692148000000000069214800000000009a1148000000000069214800000000006921480000000000692148000000000069214800000000006921480000000000db1748000000000069214800000000000910480000000000f00f480000000000db17480000000000db17480000000000db1748000000000069214800000000000b0d48000000000069214800000000006921480000000000692148000000000069214800000000003917480000000000e820480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e9544800000000007d20480000000000e9544800000000003615480000000000e9544800000000007d204800000000007d204800000000007d20480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000e954480000000000a013480000000000e954480000000000e954480000000000e954480000000000e9544800000000003f20480000000000e954480000000000e954480000000000a111480000000000e954480000000000e954480000000000e954480000000000e954480000000000e9544800000000007d20480000000000e9544800000000001010480000000000e90f4800000000007d204800000000007d204800000000007d20480000000000e954480000000000040d480000000000e954480000000000e954480000000000e954480000000000e9544800000000004017480000000000b51f480000000000881f480000000000e954480000000000e954480000000000191d480000000000e954480000000000fd1c480000000000e954480000000000e9544800000000003f2048000000000000000000000000005f494f5f76667363616e665f696e7465726e616c0000000000000000000000000000000000000080000000000000000000000080000000000000000000000000696e76616c6964206d6f646520706172616d65746572006d6272746f77632e6300000000000000005f5f6d6272746f77630000000000000052544c445f4e455854207573656420696e20636f6465206e6f742064796e616d6963616c6c79206c6f6164656400646967636e74203e2030002a6e73697a65203c204d504e53495a4500646563696d616c5f6c656e203e203000696e697479006469675f6e6f203e3d20696e745f6e6f006269747320213d2030006e756d73697a65203c2052455455524e5f4c494d425f53495a4500696e745f6e6f203e2030202626206578706f6e656e74203d3d2030006e6565645f667261635f646967697473203e2030006e756d73697a65203d3d2031202626206e203c206400656d707479203d3d2031006e756d73697a65203d3d2064656e73697a6500637920213d20300000000000006469675f6e6f203c3d202875696e746d61785f742920494e544d41585f4d41580000000000000000696e745f6e6f203c3d202875696e746d61785f74292028494e544d41585f4d4158202b204d494e5f455850202d204d414e545f44494729202f203400000000006c6561645f7a65726f203d3d203020262620696e745f6e6f203c3d202875696e746d61785f742920494e544d41585f4d4158202f203400006c6561645f7a65726f203c3d202875696e746d61785f74292028494e544d41585f4d4158202d204d41585f455850202d203329202f203400696e745f6e6f203c3d202875696e746d61785f74292028494e544d41585f4d4158202b204d494e5f31305f455850202d204d414e545f444947290000000000006c6561645f7a65726f203d3d203020262620696e745f6e6f203c3d202875696e746d61785f742920494e544d41585f4d41580000000000006c6561645f7a65726f203c3d202875696e746d61785f74292028494e544d41585f4d4158202d204d41585f31305f455850202d20312900006c6561645f7a65726f203c3d202862617365203d3d203136203f202875696e746d61785f742920494e544d41585f4d4158202f2034203a202875696e746d61785f742920494e544d41585f4d415829006c6561645f7a65726f203c3d202862617365203d3d203136203f20282875696e746d61785f7429206578706f6e656e74202d202875696e746d61785f742920494e544d41585f4d494e29202f2034203a20282875696e746d61785f7429206578706f6e656e74202d202875696e746d61785f742920494e544d41585f4d494e292900000000000000696e745f6e6f203c3d202875696e746d61785f742920286578706f6e656e74203c2030203f2028494e544d41585f4d4158202d2062697473202b203129202f2034203a2028494e544d41585f4d4158202d206578706f6e656e74202d2062697473202b203129202f20342900000000006469675f6e6f203e20696e745f6e6f202626206578706f6e656e74203c3d2030202626206578706f6e656e74203e3d204d494e5f31305f455850202d2028444947202b2032290000696e745f6e6f203d3d2030202626202a73746172747020213d204c5f2827302729000000000000007374725f746f5f6d706e000000000000000000000100000002000000020000000300000003000000030000000300000004000000040000000400000004000000040000000400000004000000040000005f5f5f5f737472746f665f6c5f696e7465726e616c0000000000800000008080ffff7f7fffff7fff0000c07f000000800000807f000080ff0000000000000000d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0090909090909090909090909090909090101010101010101010101010101010100000000000000000000000000000000000000000100000002000000020000000300000003000000030000000300000004000000040000000400000004000000040000000400000004000000040000005f5f5f5f737472746f645f6c5f696e7465726e616c00000000000000000010000000000000001080ffffffffffffefff000000000000f87f0000000000000080000000000000f07f000000000000f0ff2e2e2f7374646c69622f737472746f645f6c2e6300000000000000000000000000000000000000000000000000000000000000000100000002000000020000000300000003000000030000000300000004000000040000000400000004000000040000000400000004000000040000005f5f5f5f737472746f6c645f6c5f696e7465726e616c000000000000000000000000000000000080010000000000000000000000000000800180000000000000fffffffffffffffffe7f000000000000fffffffffffffffffeff00000000000000000000000000000a000000000000006400000000000000e8030000000000001027000000000000a08601000000000040420f0000000000809698000000000000e1f5050000000000ca9a3b0000000000e40b540200000000e87648170000000010a5d4e800000000a0724e1809000000407a10f35a00000080c6a47e8d03000000c16ff286230000008a5d78456301000064a7b3b6e00d0000e8890423c78aa066fdff8068fdff606afdff306cfdff106efdfff06ffdffd071fdffb073fdff9075fdff7077fdff5079fdff307bfdff107dfdfff07efdffd080fdff0065fdffc085fdff4087fdffc088fdff408afdffc08bfdff408dfdffc08efdff4090fdffc091fdff4093fdffc094fdff4096fdffc097fdff4099fdffc09afdff7084fdffd03ffdff2042fdff7044fdffc046fdff1049fdff604bfdffb04dfdff0050fdff5052fdffa054fdfff056fdff4059fdff905bfdffe05dfdff3060fdff303efdff609ffdffa0a1fdffe0a3fdff20a6fdff60a8fdffa0aafdffe0acfdff20affdff60b1fdffa0b3fdffe0b5fdff20b8fdff60bafdffa0bcfdffe0befdffc09dfdff48c2fdff88c2fdffb0c2fdffc0c2fdff48c2fdff38c3fdff38c3fdff38c3fdff38c3fdffe0c2fdff78c2fdffd0c2fdff48c2fdff04c5fdff44c5fdff9cc5fdffbbc5fdffdac5fdfff8c5fdff70c6fdffb2c6fdfff2c6fdff1cc7fdff88c7fdffb8c7fdffdfc7fdff4dc8fdff8dc8fdffc3c8fdff00c9fdff70c9fdffe2c9fdff6bcafdffafcafdff0bccfdff28cbfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff7accfdff04c5fdff0cc5fdff90cbfdff24d3fdff2cd4fdff2cd4fdffecd3fdff2cd4fdffdcd3fdffccd3fdffb4d3fdffa4d3fdff94d3fdff84d3fdff24d3fdff24d3fdffc4d7fdff74d7fdff54d7fdff3cd7fdff1cd8fdfff4d7fdff3cd8fdffa4d5fdff2cd4fdffecd3fdff3cd6fdff3cd6fdff3cd6fdff3cd6fdff3cd6fdffecd3fdffecd3fdff3cd6fdff3cd6fdffecd3fdff3cd6fdff3cd6fdff3cd6fdff3cd6fdff0cd6fdff3cd6fdff3cd6fdff3cd6fdff3cd6fdff3cd6fdff3cd6fdfffcd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdffecd5fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdfff4d6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff7cd6fdff3cd5fdff2cd4fdff8cd4fdff2cd4fdffecd3fdff2cd4fdff7cd3fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff2cd4fdff34d4fdff0dd6fdfffad5fdffefd5fdffd8d6fdffb9d6fdff70d0fdff70d0fdffaed6fdffa3d6fdff70d0fdff98d6fdff8dd6fdff82d6fdff77d6fdff70d0fdff64d6fdff51d6fdff3ed6fdff2bd6fdff18d6fdffc5d6fdff3ad8fdff7cd9fdff3cd9fdff8cd8fdff24d8fdfff4d8fdff4ceafdff8ceafdffb4eafdffc4eafdff4ceafdff3cebfdff3cebfdff3cebfdff3cebfdffe4eafdff7ceafdffd4eafdff4ceafdff5803feff9803feffc003feffd003feff5803feff4804feff4804feff4804feff4804fefff003feff8803feffe003feff5803feff00000000e0ea490000000000c0ec49000000000010f649000000000030ff49000000000060ff490000000000c0ff49000000000020084a0000000000f0084a000000000050094a0000000000700d4a00000000004044410000000000000000000000000010104a00000000001400000000000000017a5200017810011b0c070890010710140000001c000000c024f4ff2a00000000000000000000001400000000000000017a5200017810011b0c0708900100001c0000001c000000ae25f4ffc301000000410e108602430d0603be010c0708002c0000003c0000006027f4ff9c02000000420e108e02420e188d03470e208c04410e288605440e3083064d0ec00100001c0000006c000000d029f4ff6700000000440e10830202620e08000000000000340000008c000000202af4ffdb03000000420e108d02420e188c03430e208604410e288305500e5002eb0a0e584a0e605d0b0000000000001c000000c4000000c82df4ffc101000000470ea001024e0a0e08410b000000004c000000e4000000782ff4ff1f02000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307470e5003ec010a0e38410e30410e28420e20420e18420e10420e08490b0000000014000000340100004831f4ff630000000000000000000000140000004c010000a031f4ff0f00000000000000000000003c000000640100009831f4ff8900000000420e108e02480e188d03490e208c04410e288605450e30830602680e28410e20420e18420e10420e080000000000001c000000a4010000e831f4ff3300000000410e1083026d0e08000000000000003c000000c40100000832f4ff3101000000420e108e02420e188d03470e208c04410e288605440e308306500e4002430e48420e50440e58410e60560e4000000024000000040200000833f4ff3e00000000420e108d02420e188c03440e208604410e2883055c0e30140000002c0200002033f4ff0f00000000000000000000001c00000044020000b804feffa900000000410e10830202a70e080000000000002c00000064020000f832f4ff7600000000410e108602410e1883034a0e20024a0a0e18410e10410e08480b00000000004c000000940200004833f4ff3907000000420e108f02420e188e03420e208d04420e288c05440e308606410e388307470e4002d20a0e38440e30410e28420e20420e18420e10420e08450b000000000064000000e4020000383af4ff120c000000410e108602460d06508f038e048d058c0683070355010a0c0708440b0386020a0c07084a0b0389010e90014c0e107d0e90014c0e10760e90014c0e107b0e90014c0e1003f7030e90014c0e10027a0e90014c0e100000002c0000004c030000f045f4ff5509000000410e108602430d06508f038e048d058c06830703ae030a0c0708410b0000009c0000007c030000204ff4ff6802000000420e108f02420e188e03470e208d04420e288c05440e308606410e3883074d0e80015e0e8801490e9001420e9801440ea001420ea801450eb001510e80016e0a0e38410e30410e28420e20420e18420e10420e08440b02440a0e38440e30410e28420e20420e18420e10420e08470b02870e8801490e9001420e9801460ea001440ea801490eb001530e8001000000240000001c0400009003feff4900000000410e108602410e188303440e2002400e18410e10410e083c00000044040000c850f4ff4915000000410e1086024f0d06498f038e048d058c06830702460e90014c0e1002ac0e90014c0e104e0a0c0708470b00000000003c000000840400007803feffd700000000420e108d02420e188c03440e208604410e288305440e3002a80a0e28440e20410e18420e10420e084a0b000000000014000000c40400009865f4ff10000000000000000000000034000000dc0400009065f4ff7c04000000410e1086024d0d06548f038e048d058c06830703c0020a0c0708460b0393010c070800000000005c00000014050000d869f4ffbf01000000420e108f02420e188e03470e208d04420e288c05430e308606410e388307470e406c0ec0014c0e400311010ec0014c0e40440a0e38440e30410e28420e20420e18420e10420e08410b0000000000009c00000074050000386bf4ffb105000000420e108f02420e188e03450e208d04420e288c05440e308606410e3883074b0e8001036d030e8801490e9001420e98014a0ea001470ea801470eb001580e8001027e0e8801480e9001410e98014c0ea001470ea8014c0eb0015b0e8001600a0e38410e30410e28420e20420e18420e10420e08420b02950a0e38440e30410e28420e20420e18420e10420e08410b003c000000140600005870f4ff0e01000000420e108d02420e188c03440e208604410e288305470e3002b40a0e28410e20410e18420e10420e08460b000000000044000000540600002871f4ff5f02000000420e108e02420e188d03420e208c04410e288605410e308306440e5003ad010a0e30410e28410e20420e18420e10420e08470b000000005c0000009c0600004073f4ffba060000004b0e108f02420e188e03420e208d04420e288c05410e308606410e388307470e40550a0e3844c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e084c0b0370060e08c3c6cccdcecf000000000064000000fc060000a079f4ff8337000000420e108f02420e188e03450e208d04420e288c05410e308606410e388307440e50790a0e38410e30410e28420e20420e18420e10420e08440b031c0d0a0e38430e30410e28420e20420e18420e10420e08480b000000006400000064070000c8b0f4ffc737000000420e108f02420e188e03420e208d04420e288c05440e308606410e388307490e5002870a0e38440e30410e28420e20420e18420e10420e08460b03c60a0a0e38410e30410e28420e20420e18420e10420e08480b0000004c000000cc07000030e8f4ff1f08000000420e108f02420e188e03450e208d04420e288c05440e308606410e388307520ee010031c020a0e38430e30410e28420e20420e18420e10420e08460b0000003c0000001c08000000f0f4ffdd00000000420e108d02420e188c03410e208604410e2883054a0e5002bb0a0e28410e20410e18420e10420e08410b0000000000140000005c080000a0f0f4ff3800000000000000000000001400000074080000c8f0f4ff070000000000000000000000140000008c080000c0f0f4ff7200000000000000000000002c000000a408000028f1f4ffeb02000000470eb00202450eb0034c0eb00202fc0eb0034c0eb002024f0eb0034c0eb0024c000000d4080000e8f3f4ff4304000000420e108f02420e188e03450e208d04420e288c05440e308606410e3883074d0e9001036c020a0e38410e30410e28420e20420e18420e10420e084d0b0000003400000024090000e8f7f4ff8704000000410e108602430d06488f038e048d058c06478307030c030a0c0708410b02600a0c0708480b0000140000005c09000040fcf4ff0800000000000000000000004c0000007409000038fcf4ffdc00000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307470e4002590a0e38440e30410e28420e20420e18420e10420e08490b000000000024000000c4090000c8fcf4ff2a01000000420e108d02420e188c03460e208604410e2883054c0e3014000000ec090000d0fdf4ff1300000000440e10000000003c000000040a0000d8fdf4ff8901000000410e108602410e1883034e0e206c0ea0014c0e2002db0ea0014c0e20440a0e18440e10410e08410b000000000000002c000000440a000028fff4ff4b00000000420e108c02410e188603440e208304790a0e18410e10420e08410b000000002c000000740a000048fff4ff4d00000000420e108c02410e188603440e2083047b0a0e18410e10420e08410b0000000014000000a40a000068fff4ff10000000000000000000000014000000bc0a000060fff4ff1200000000000000000000007c000000d40a000068fff4ff3504000000420e108f02420e188e03450e208d04420e288c05440e308606410e388307440e600300010a0e38410e30410e28420e20420e18420e10420e08420b024e0a0e38430e30410e28420e20420e18420e10420e08410b02ff0a0e38480e30410e28420e20420e18420e10420e08450b000014000000540b00002803f5ff0a0000000000000000000000640000006c0b00002003f5ff3702000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e5002e80a0e38410e30410e28420e20420e18420e10420e08480b550a0e38440e30410e28420e20420e18420e10420e08410b00000000001c000000d40b0000f804f5ff9e00000000470ee00102960e08000000000000001c000000f40b00007805f5ff8f00000000470ee00102870e08000000000000002c000000140c0000e805f5ff4601000000410e108602430d06458d038c0483050301010a0c0708460b5c0a0c0708410b1c00000000000000017a504c5200017810070380e74900031b0c0708900100005400000024000000e806f5ff5a020000040c934c00420e108c02410e188603410e20830402830ea0014c0e2002410ea0014c0e20660a0e18410e10420e08470b02490ea0014c0e2002730ea0014c0e2002620ea0014c0e203c0000007c000000f008f5ff37010000041f934c004a0e10830202490e90014c0e10740ac30e08450b730e90014c0e1043c30e084b0e1083027e0e90014c0e1014000000fc0c0000f009f5ff3b00000000000000000000004c000000140d0000180af5fff000000000420e108d02420e188c03440e208604410e2883054f0e3002700a0e28440e20410e18420e10420e08470b6f0a0e28440e20410e18420e10420e08480b0000003c000000640d0000b80af5ffd800000000420e108c02410e188603440e208304027a0a0e18410e10420e08440b6f0a0e18410e10420e08460b000000000000003c000000a40d0000580bf5ffca00000000420e108c02410e188603440e208304470e3002460a0e20410e18410e10420e08480b700e38430e40530e38410e3000f4000000a4010000e80bf5fff8050000042d934c00600e108f02420e188e03420e208d04420e288c05410e308606410e388307470e6002b00ee0014c0e6002ed0e68430e70550e68410e6002b90a0e3841c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08440b02840e68430e70580e68410e60680e08c3c6cccdcecf480e60830786068c058d048e038f025e0a0e3841c30e3046c60e2842cc0e2042cd0e1842ce0e1042cf0e084b0b700e68430e70670e68490e60026e0e3841c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08650e60830786068c058d048e038f0202ab0ee0014c0e6002650ee0014c0e60000000005c000000dc0e0000f010f5ff4b07000000420e108f02420e188e03450e208d04420e288c05410e308606410e388307470ef001024a0a0e38440e30410e28420e20420e18420e10420e08450b0392060ef801410e8002580ef801430ef00100004c0000003c0f0000e017f5ff48010000005f0e108602410e188303470e3002500e38430e405c0e38410e30630e1841c30e1041c60e084c0e30830386026e0e1841c30e1041c60e08680e3083038602001c0000008c0f0000e018f5ff2800000000410e1083024e0a0e08410b4b0e080074000000ac0f0000f018f5ffc201000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307470e70026c0e78410e80015a0e78410e7002b30a0e38410e30410e28420e20420e18420e10420e084a0b6f0a0e38430e30410e28420e20420e18420e10420e08410b000000000000005400000024100000481af5ff6b02000000610e108602410e188303490e2002ce0a0e1846c30e1041c60e08480b4e0a0e1843c30e1041c60e08460b640a0e1841c30e1041c60e08520b02740a0e1844c30e1041c60e084f0b340000007c100000601cf5ff5801000000420e108c02410e188603410e2083047b0a0e18460e10420e08490b650a0e18410e10420e08480b5c000000b4100000881df5ffce020000004b0e108f02420e188e03420e208d04420e288c05440e308606410e3883074a0e6003b3010e3847c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e084d0e60830786068c058d048e038f0200003c00000014110000f81ff5ff4701000000420e108d02420e188c03440e208604410e288305520ea00202cb0a0e28410e20410e18420e10420e08440b0000000014000000541100000821f5ff0500000000000000000000002c0000006c110000400ef4ff4301000000520e108602410e1883034e0ea00c031f010e1841c30e1041c60e0800000000240000009c110000d020f5ffb501000000410e108602480d06518f038e048d058c068307000000002c000000c41100006822f5ffc602000000410e108602430d064d8f038e048d058c06830703b9010a0c0708410b00000014000000f41100000825f5ff1800000000470e1000000000340000000c1200001025f5ff93000000004d0e108c02410e188603410e20830402470ac30e1841c60e1042cc0e08470b700e08c3c6cc00001c000000441200007825f5ff2900000000480e108302560a0e08420b480e080014000000641200008825f5ff2600000000000000000000001c0000007c120000a025f5ff2f00000000410e1083026d0e08000000000000001c0000009c120000b025f5ff6f00000000480e10830202430a0e08450b5e0e08640000007c0600000026f5ff8c0200000442934c00590e108602410e188303470e20026e0ea0014c0e2002670ea0014c0e2002660e1841c30e1041c60e08520e208303860202480a0e1846c30e1041c60e08490b02400e08c3c6590e20830386027f0ea0014c0e2044000000241300002828f5ff5604000000420e108e02420e188d03420e208c04410e288605410e3083064a0ec00102d40a0e30440e28410e20420e18420e10420e08470b000000001c0000006c130000402cf5ff4a00000000410e10830202480e08000000000000140000008c130000702cf5ff0800000000000000000000001c000000a4130000682cf5ff5a00000000410e1083027e0a0e08410b590e08003c000000c4130000a82cf5ff7a01000000420e108d02420e188c03440e208604410e2883054d0ec001026d0a0e28410e20410e18420e10420e08470b000000001400000004140000e82df5ff1000000000000000000000003c0000001c140000e02df5ffab00000000450e108e02450e188d03420e208c04410e288605410e30830602650a0e28410e20420e18420e10420e08460b0000004c0000005c140000502ef5ff9802000000420e108f02420e188e03450e208d04420e288c05440e308606410e3883074d0ed00103a6010a0e38410e30410e28420e20420e18420e10420e08430b0000004c000000ac140000a030f5ffe901000000420e108e02420e188d03450e208c04410e288605440e30830602e90a0e28440e20420e18420e10420e08470b029d0a0e28440e20420e18420e10420e08410b34000000fc1400004032f5ffe800000000410e108602410e188303470e2002770a0e18410e10410e08460b630a0e18410e10410e084b0b001400000034150000f832f5ff4000000000000000000000005c0000004c1500002033f5ffbb020000004d0e108f02420e188e03420e208d04420e288c05440e308606410e3883074a0e4002630e3841c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08490e40830786068c058d048e038f020000002c000000ac1500008035f5ff6a01000000410e108602410e1883034a0eb00102670a0e18410e10410e084b0b000000003c000000dc150000c036f5fff801000000510e108602410e1883034a0eb00102a30a0e1841c30e1041c60e08470b02b50a0e1841c30e1041c60e08410b000000240000001c1600008038f5ff2c00000000410e108602410e1883034e0e20590e18410e10410e08002c000000441600008838f5ffe800000000410e108602410e1883034d0e3002540a0e18410e10410e084b0b000000000034000000741600004839f5ff73000000004a0e108c02460e1886034d0e20830479c30e1841c60e1042cc0e084f0e20830486038c020000003c000000ac1600009039f5ff0d01000000520e108d02420e188c03440e208604410e2883054a0e3002a20a0e2841c30e2041c60e1842cc0e1042cd0e08450b0034000000ec160000603af5ff78010000004e0e108c02410e188603440e20830402f4c30e1841c60e1042cc0e08460e20830486038c0200009400000024170000a83bf5ffc007000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e606f0a0e38430e30410e28420e20420e18420e10420e08410b640a0e38410e30410e28420e20420e18420e10420e08480b0307040a0e38410e30440e28420e20420e18420e10420e08440b038c010a0e38440e30410e28420e20420e18420e10420e08410b000024000000bc170000d042f5ff7200000000410e108302790a0e08460b560a0e084a0b0000000000004c000000e41700002843f5fff601000000500e108c02410e188603430e208304024d0ac30e1841c60e1042cc0e08440b031f010ac30e1841c60e1042cc0e08460b500e08c3c6cc600e20830486038c022400000034180000d844f5ffb400000000410e10830202560a0e08490b02530e08000000000000001c0000005c18000080f0fdff3900000000410e108302770e08000000000000004c0000007c1800005045f5ffed01000000420e108f02420e188e03420e208d04420e288c05440e308606410e3883074a0e60028a0a0e38410e30410e28420e20420e18420e10420e08450b00000000001c000000cc180000f046f5ff9f0000000002470e88014c0e087e0e88014c0e0844000000ec1800007047f5ff5102000000420e108d02420e188c03440e208604410e288305440e3003d7010a0e28440e20410e18420e10420e08430b02400eb0014c0e30000000004c000000341900008849f5ff9d020000004a0e108602410e1883034c0e40025d0ec0014c0e4002670ec0014c0e4002cf0ec0014c0e40530e1841c30e1041c60e08450e4083038602660ec0014c0e40004c00000084190000d84bf5ff3f020000004b0e108602410e1883034e0e40025f0ec0014c0e4002690ec0014c0e40029a0ec0014c0e40530e1841c30e1041c60e084b0e408303860202680ec0014c0e4014000000d4190000c84df5ff25000000000000000000000014000000ec190000e04df5ff2b000000000000000000000014000000041a0000f84df5ff2b00000000000000000000001c0000001c1a0000104ef5ff6a00000000490e108302720a0e08450b000000001c0000003c1a0000604ef5ff5600000000410e10830202450a0e084a0b000000140000005c1a0000a04ef5ff2100000000000000000000002c000000741a0000b84ef5ff7001000000410e10830202560a0e08490b4b0a0e08450b710a0e08470b000000000000002c000000a41a0000f84ff5ff7001000000410e10830202560a0e08490b4b0a0e08450b028c0a0e08440b00000000000024000000d41a00003851f5ff5d00000000410e108302470e306a0a0e10410e08450b0000000000002c000000fc1a00007051f5ff8900000000520e108c02410e188603410e208304660ac30e1841c60e1042cc0e08430b00140000002c1b0000d051f5ff0600000000000000000000001c000000441b0000c851f5ff2400000000480e1083025b0e08000000000000003c000000641b0000d851f5ffc3000000004b0e108e02420e188d03450e208c04410e288605440e3083060295c30e2844c60e2042cc0e1842cd0e1042ce0e080014000000a41b00006852f5ff0d00000000000000000000003c000000bc1b00006052f5ff3e02000000420e108e02420e188d03450e208c04440e288605410e308306031f010a0e28440e20420e18420e10420e08490b00002c000000fc1b00006054f5ffc400000000420e108c02410e188603440e208304027e0a0e18410e10420e08480b000000140000002c1c00000055f5ff1100000000000000000000002c000000441c00000855f5ff5900000000420e108c02410e188603410e20830402440a0e18410e10420e08450b00000014000000741c00003855f5ffc20000000000000000000000140000008c1c0000f055f5ffa3000000000000000000000014000000a41c00008856f5ff37010000000000000000000014000000bc1c0000b057f5ff03000000000000000000000054000000d41c0000a857f5ff0e03000000410e108602410e188303470e40024e0a0e18410e10410e08470b02620ec0014c0e4002c10ec0014c0e4002530ec0014c0e40570a0e18410e10410e08450b025b0ec0014c0e4000140000002c1d0000605af5ff0800000000000000000000001c000000441d0000585af5ff4200000000410e1083026f0a0e08480b000000001c000000641d0000885af5ff3600000000490e108302550a0e08420b550e080014000000841d0000a85af5ff4000000000000000000000006c0000009c1d0000d05af5ffcd02000000420e108f02420e188e03450e208d04420e288c05410e308606410e388307440e6002710ee0014c0e60029c0ee0014c0e60028b0ee0014c0e6002550a0e38430e30410e28420e20420e18420e10420e08420b026d0ee0014c0e600000000000640000000c1e0000305df5ff7602000000420e108e02420e188d03420e208c04410e288605470e308306440e50025d0ed0014c0e5002920ed0014c0e5002860ed0014c0e50026f0ed0014c0e50530a0e30430e28410e20420e18420e10420e08450b0000000000005c000000741e0000485ff5ff6602000000420e108d02420e188c03410e208604410e288305490e50025d0ed0014c0e50027c0ed0014c0e50025c0ed0014c0e5002b90ed0014c0e50530a0e28410e20410e18420e10420e084a0b0000000000002c000000d41e00005861f5ffb300000000410e108602410e1883034a0e206c0a0e18410e10410e08460b00000000000014000000041f0000e861f5ff350000000000000000000000140000001c1f00001062f5ff07000000000000000000000014000000341f00000862f5ff2f0000000000000000000000140000004c1f00002062f5ff9600000000000000000000001c000000641f0000a862f5ff62000000005e0e1083020242c30e0800000000004c000000841f0000f862f5ff5401000000420e108f02420e188e03420e208d04420e288c05440e308606410e388307470e406d0a0e38410e30410e28420e20420e18420e10420e08450b00000000000014000000d41f00000864f5ff08000000000000000000000014000000ec1f00000064f5ff0600000000000000000000001400000004200000f863f5ff080000000000000000000000140000001c200000f063f5ff0300000000000000000000001400000034200000e863f5ff060000000000000000000000140000004c200000e063f5ff0200000000000000000000001400000064200000d863f5ff080000000000000000000000140000007c200000d063f5ff0300000000000000000000001400000094200000c863f5ff05000000000000000000000014000000ac200000c063f5ff0400000000000000000000001c000000c4200000b863f5ff600000000002450e88014c0e080000000000000014000000e4200000f863f5ff4c000000007e0e88014c0e0814000000fc2000003064f5ff20000000000000000000000014000000142100003864f5ff560000000000000000000000540000002c2100008064f5ff67010000005a0e108f02440e188e03420e208d04420e288c05460e308606410e388307440e400308010a0e3841c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08410b0000000000004c000000842100009865f5ff7c01000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e60670a0e38440e30410e28420e20420e18420e10420e08460b00000000000074000000d4210000c866f5ffbd01000000420e108d02420e188c03440e208604410e2883054a0e4002600a0e28440e20410e18420e10420e08440b540a0e28410e20410e18420e10420e08460b6f0a0e28410e20410e18420e10420e084b0b025c0a0e28410e20410e18420e10420e08460b000000000000140000004c2200001068f5ff1600000000000000000000001c000000642200001868f5ff2b00000000410e108302650e08000000000000003c000000842200002868f5ff9600000000420e108d02420e188c03440e208604410e2883054a0e30024e0a0e28410e20410e18420e10420e08490b00000000003c000000c42200008868f5ff9e00000000420e108d02420e188c03440e208604410e2883054f0e3002560a0e28410e20410e18420e10420e08440b00000000002c00000004230000e868f5ff7b00000000420e108c02430e188603410e208304025b0a0e18410e10420e08440b00000014000000342300003869f5ff1200000000000000000000001c0000004c2300004069f5ff5e00000000440e18710e20410e28410e305d0e10240000006c230000c008feffde00000000024f0e88014c0e08025b0e88014c0e08430e10000000002c000000942300005869f5ff9c01000000450e108c024f0e188603410e20830402840a0e18410e10420e08440b0000003c000000c4230000c86af5ff3801000000420e108d02420e188c03410e208604410e288305440e3002b90a0e28410e20410e18420e10420e08470b00000000001400000004240000ebfcf3ff1a00000000410e1000000000340000001c240000b06bf5ff4a01000000440e10024e0e90014c0e10027d0e90014c0e106d0e90014c0e104b0a0e08410b000000000000005400000054240000c86cf5ffee00000000420e108e02420e188d03420e208c04410e288605440e308306490e50690a0e30410e28410e20420e18420e10420e084b0b02740a0e30410e28410e20420e18420e10420e08440b3c000000ac240000606df5ffa600000000450e108e02420e188d03420e208c04410e288605410e308306660a0e28410e20420e18420e10420e08480b0000000074000000ec240000d06df5ff9105000000410e108602410e1883034a0e2002f70ea0014c0e207e0ea0014c0e20029f0ea0014c0e20570a0e18440e10410e08480b740a0e18460e10410e08450b0393010ea0014c0e207f0ea0014c0e20720ea0014c0e20024a0ea0014c0e20670ea0014c0e2000000000003400000064250000f872f5ffec000000006f0e88014c0e087c0e88014c0e08560e1083026d0e90014c0e104b0ac30e08410b49c30e0800005c0000009c250000b073f5ff0802000000420e108e02420e188d03420e208c04410e288605410e308306440e5002eb0a0e30410e28410e20420e18420e10420e08410b02400a0e30430e28410e20420e18420e10420e08460b000000000000003c000000fc2500006075f5ff3f01000000420e108d02420e188c03410e208604410e288305440e5002530a0e28410e20410e18420e10420e08450b00000000008c0000003c2600006076f5ff870a000000500e108f02420e188e03450e208d04420e288c05410e308606410e388307440ea00103cf010a0e3841c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08480b0334050e08c3c6cccdcecf02430ea001830786068c058d048e038f020382020e08c3c6cccdcecf560ea001830786068c058d048e038f020000000000003c000000cc2600006080f5ff1901000000420e108c02410e188603440e20830402d00a0e18410e10420e08410b4a0a0e185e0e10470e08410b000000000000007c0000000c2700004081f5ffdb0d0000004b0e108f02420e188e03450e208d04420e288c05460e308606410e388307460e706c0ef0014c0e7003a9030ef0014c0e704c0e3841c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e084c0e70830786068c058d048e038f0202920ef0014c0e70039c010ef0014c0e70000000940000008c270000a08ef5ff6c14000000420e108f02420e188e03420e208d04420e288c05410e308606410e3883074a0e9001033b010a0e38410e30410e28420e20420e18420e10420e08470b03e8030e90024c0e900102b60a0e38410e30410e28420e20420e18420e10420e08440b02e10e90024c0e90010345010e90024c0e900102400e90024c0e9001038c010e90024c0e900100004c0000002428000078a2f5ff0d09000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307470e9001036d010a0e38440e30410e28420e20420e18420e10420e08450b0000006c0000007428000038abf5ffc70f0000004f0e108f02420e188e03460e208d04420e288c05410e308606410e388307510ed00103f5020a0e3844c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08420b033d050e08c3c6cccdcecf540ed001830786068c058d048e038f02000064000000e428000098baf5ff1002000000500e108e02420e188d03420e208c04410e288605550e30830602ea0ac30e2841c60e2042cc0e1842cd0e1042ce0e08450b027fc30e2841c60e2042cc0e1842cd0e1042ce0e08620e30830686058c048d038e0200000000340000004c29000040bcf5ff4c010000004b0e108302760e90014c0e1002470e90014c0e100288c30e08600e10830243c30e080000000000440000008429000058bdf5ffef01000000410e108602410e188303470e2002560ea0014c0e20024a0ea0014c0e20028a0a0e18410e10410e08430b02540a0e18460e10410e08450b7c000000cc29000000bff5ff1107000000420e108f02420e188e03420e208d04420e288c05440e308606410e3883074a0e8001028d0a0e38410e30410e28420e20420e18420e10420e08420b0364010a0e38440e30410e28420e20420e18420e10420e08470b02470a0e38430e30410e28420e20420e18420e10420e08450b008c0000004c2a0000a0c5f5ff4c06000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e800102550e80024c0e8001036e010e80024c0e800102730e80024c0e800102730e80024c0e8001028d0a0e38410e30410e28420e20420e18420e10420e08420b0342010a0e38430e30410e28420e20420e18420e10420e08420b00000000001c000000dc2a000060cbf5ffa40000000002410e88014c0e08790e88014c0e081c000000fc2a0000f0cbf5ff82000000006e0e88014c0e087a0e88014c0e0800140000001c2b000060ccf5ff9e000000000000000000000014000000342b0000e8ccf5ff530000000000000000000000440000004c2b000030cdf5ff8801000000410e108602410e188303440e2002750ea0014c0e20770a0e18410e10410e08480b650ea0014c0e2002680a0e18410e10410e08450b00002c000000942b000078cef5ff0d02000000410e10830202490e90014c0e1003a2010e90014c0e10440a0e08410b430e085c000000c42b000058d0f5ffb201000000420e108d02420e188c03410e208604410e288305440e5002410a0e28410e20410e18420e10420e08470b02810a0e28410e20410e18420e10420e08410b4b0a0e28410e20410e18420e10420e08470b5c000000242c0000b8d1f5ffd203000000420e108f02420e188e03420e208d04420e288c05440e308606410e388307470e7002ab0a0e38440e30410e28420e20420e18420e10420e08440b028c0ef0014c0e70770ef0014c0e7000000000000054000000842c000038d5f5ff6802000000490e108c02440e188603410e20830402790ea0014c0e207b0ea0014c0e206b0a0e18410e10420e08480b02e90a0e18410e10420e084c0b410a0e18410e10420e08440b000000005c000000dc2c000050d7f5ff6903000000420e108d02450e188c03410e208604410e2883054f0e3002ed0eb0014c0e30670a0e28410e20410e18420e10420e08420b650eb0014c0e300343010a0e28410e20410e18420e10420e08460b0000005c0000003c2d000060daf5ffda01000000420e108d02420e188c03410e208604410e288305440e506d0a0e28410e20410e18420e10420e08430b480a0e28450e20410e18420e10420e08410b5a0a0e28430e20410e18420e10420e084b0b00003c0000009c2d0000e0dbf5ffda01000000410e108602410e188303490e2002410ea0014c0e2002930ea0014c0e20440a0e18430e10410e08410b0000000000003c000000dc2d000080ddf5ff6703000000420e108d02420e188c03410e208604410e288305440e3002e00a0e28410e20410e18420e10420e08480b0000000000440000001c2e0000b0e0f5ffb001000000410e108602410e188303470e2002860ea0014c0e20770a0e18410e10410e08440b650ea0014c0e20027d0a0e18440e10410e08450b00005c000000642e000018e2f5ff0204000000420e108f02420e188e03420e208d04420e288c05440e308606410e388307470e7002ca0a0e38440e30410e28420e20420e18420e10420e08450b028c0ef0014c0e70770ef0014c0e7000000000000064000000c42e0000c8e5f5ffa802000000420e108c02410e188603440e208304440e3002990eb0014c0e307b0eb0014c0e306e0a0e20410e18410e10420e08470b0304010a0e20440e18410e10420e08450b440a0e20440e18410e10420e08450b000000000000003c0000002c2f000010e8f5ff3605000000480e10830202640e90014c0e1003b8030e90014c0e10430a0e08410b02d50a0e08410b460a0e08410b000000000000540000006c2f000010edf5ff9002000000480e108c02440e188603410e208304028f0ea0014c0e207b0ea0014c0e206b0a0e18410e10420e08430b02e90a0e18440e10420e08490b410a0e18440e10420e08490b000000006c000000c42f000048eff5ffc502000000420e108c02410e188603410e208304440e3002c00eb0014c0e307b0eb0014c0e306e0a0e20410e18410e10420e08430b025a0a0e20430e18410e10420e08480b02940a0e20440e18410e10420e084d0b440a0e20470e18410e10420e08420b5c00000034300000a8f1f5ffaf02000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e6002500ee0014c0e60710ee0014c0e60600a0e38410e30410e28420e20420e18420e10420e08410b000000000000004400000094300000f8f3f5ff1201000000420e108c02410e188603440e208304440e5002690ed0014c0e50690ed0014c0e5002440a0e20440e18410e10420e08480b0000000000005c000000dc300000d0f4f5ffea01000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e7002960ef0014c0e7002740ef0014c0e70029d0a0e38410e30410e28420e20420e18420e10420e08490b00000000008c0000003c31000060f6f5ff8104000000420e108f02420e188e03420e208d04420e288c05410e308606410e3883074a0ed02302bd0ed0244c0ed0230385010ed0244c0ed02302a50ed823410ee023540ed823410ed023027a0ed823470ee023440ee823490ef023460ef823410e8024620e38430e30410e28420e20420e18420e10420e08440ed0230000000000000054000000cc31000060faf5ff8b020000006f0e108d02420e188c03440e208604410e2883054a0e3002c30eb0014c0e307d0eb0014c0e30790e2841c30e2041c60e1842cc0e1042cd0e084f0e30830586048c038d02000000140000002432000098fcf5ff180000000000000000000000140000003c320000a0fcf5ff1b00000000440e10560e08001400000054320000a8fcf5ff1b0000000000000000000000140000006c320000b0fcf5ff1a02000000000000000000001400000084320000b8fef5ff2e0000000000000000000000140000009c3200001013f6ffa90d0000000000000000000014000000b4320000b8fef5ff39140000000000000000000014000000cc3200009020f6ff2e000000000000000000000014000000e4320000a820f6ffdc000000000000000000000034000000fc3200007021f6ff4100000000410e108602410e188303470e205a0a0e18470e10410e084d0b440e18430e10410e08000000000014000000343300008821f6ff9c0100000000000000000000140000004c3300001023f6ff4918000000000000000000004c00000064330000483bf6ff0105000000420e108f02420e188e03420e208d04420e288c05440e308606410e388307550e9011037b040a0e38410e30410e28420e20420e18420e10420e08490b0000007c000000b43300000840f6ffc305000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e9001029a0a0e384d0e30410e28420e20420e18420e10420e084a0b460a0e38410e30410e28420e20420e18420e10420e08480b440a0e38440e30410e28420e20420e18420e10420e08470b0000000014000000343400005845f6ff160000000000000000000000140000004c3400006045f6ff44030000000000000000000014000000643400009848f6ff300000000000000000000000140000007c340000b048f6ff0004000000000000000000004c00000094340000984cf6ff5b01000000420e108d02450e188c03410e208604410e2883054a0e3002980a0e28440e20410e18420e10420e08410b028b0a0e28440e20410e18420e10420e08410b000014000000e4340000a34df6ff45000000000000000000000014000000fc340000d04df6ff3a00000000000000000000001400000014350000f84df6ff0c0000000000000000000000140000002c350000f04df6ff1600000000000000000000001400000044350000f84df6ffe300000000000000000000003c0000005c350000d04ef6ff52040000000394018e02458d03458c04458305038801c345cc45cd45ce788e02458d03458c0402bfcc45cd45ce00000000000000140000009c350000f052f6ff2e000000000000000000000014000000b43500000853f6ffdc000000000000000000000014000000cc350000d053f6ff3a000000000000000000000014000000e4350000f853f6ff4d000000000000000000000014000000fc3500007076f6ff10000000000000000000000014000000143600006876f6ff961b00000000000000000000140000002c360000f091f6ff1000000000000000000000001400000044360000e891f6ff561600000000000000000000140000005c360000d053f6ff1000000000000000000000001400000074360000c853f6ff2622000000000000000000003c0000008c36000000a8f6ff650400000003a4018e03458d04458c05458306038801c345cc45cd45ce788e03458d04458c0502bfcc45cd45ce0000000000000014000000cc36000030acf6ff2d01000000000000000000001c000000e436000048adf6ff2601000000590e10830202610a0e08460b000000140000000437000058aef6ff7601000000000000000000002c0000001c370000c0aff6ff56010000005a0e108c02410e188603480e20830402600a0e18410e10420e084a0b000000140000004c370000f0b0f6ff0402000000000000000000001400000064370000e8b2f6ff0a0200000000000000000000140000007c370000e0b4f6ff591200000000000000000000140000009437000028c7f6ffa3020000000000000000000014000000ac370000c0c9f6ff3e160000000000000000000014000000c4370000e8dff6ff09000000000000000000000014000000dc370000e0dff6ff672b0000000000000000000014000000f4370000380bf7ff090000000000000000000000140000000c380000300bf7ffdb04000000000000000000001400000024380000f80ff7ff090000000000000000000000140000003c380000f00ff7ff062b000000000000000000001400000054380000e83af7ff090000000000000000000000140000006c380000e03af7ff38070000000000000000000014000000843800000842f7ff100000000000000000000000140000009c3800000042f7ff36210000000000000000000014000000b43800002863f7ffa2170000000000000000000014000000cc380000c07af7ff03180000000000000000000014000000e4380000b892f7ff23060000000000000000000014000000fc380000d098f7ffa706000000000000000000001400000014390000689ff7ff150300000000000000000000140000002c39000070a2f7ff6317000000000000000000001400000044390000c8b9f7ff930400000000000000000000140000005c39000050bef7ff9401000000000000000000001400000074390000d8bff7ff700200000000000000000000740000008c39000030c2f7ffca02000000510e108d02420e188c03410e208604410e288305550e3002cd0a0e2841c30e2041c60e1842cc0e1042cd0e08430b030e010e2846c30e2045c60e1842cc0e1042cd0e08440e30830586048c038d02670a0e2841c30e2041c60e1842cc0e1042cd0e08410b00000074000000043a000088c4f7ff19010000004b0e108f02420e188e03480e208d04420e288c05470e308606410e388307460e5002c80e3841c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08510e50830786068c058d048e038f02440e3843c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e087c0000007c3a000030c5f7ff8901000000410e10830202520a0e08450b530a0e08450b520a0e08460b4b0a0e08450b4b0a0e08450b550a0e084b0b680a0e08500b550a0e08410b460a0e08410b460a0e08410b460a0e08410b460a0e08410b460a0e08410b460a0e08410b540a0e08430b440a0e08410b510a0e08430b00000014000000fc3a000040c6f7ff2b00000000000000000000003c000000143b0000f8e6f3ff9a02000000480e108c02410e188603410e2083044f0a0e18410e10420e08410b02f70a0e18480e10420e08410b0000000000000014000000543b000018c6f7ff3b0000000000000000000000140000006c3b000040c6f7ff0900000000000000000000001c000000843b000038c6f7ff4200000000410e108302760a0e08490b410e080034000000a43b000068c6f7ff5800000000410e1083024a0e20690a0e10430e08490b4c0a0e10410e08430b440e10430e080000000000000024000000dc3b000090c6f7ff4602000000410e108602480d06458d038c048305750a0c0708450b002c000000043c0000b8c8f7ff7c00000000410e108602410e188303470e2002510a0e18410e10410e08440b000000000044000000343c000008c9f7fff200000000410e108602410e188303520e30790a0e18410e10410e08410b02760a0e18410e10410e08480b4b0a0e18460e10410e08460b0000000000140000007c3c0000c0c9f7ff5800000000000000000000002c000000943c000008caf7ffe000000000410e108602430d06488f038e048d058c0650830702a90a0c07084b0b00000034000000c43c0000b8caf7ff1907000000410e108602410e1883034c0e500315010a0e18410e10410e084b0b4b0a0e18410e10410e08430b14000000fc3c0000a0d1f7ff14000000000000000000000014000000143d0000a8d1f7ff2400000000440e205f0e0800140000002c3d0000c0d1f7ff4c000000000000000000000014000000443d0000f8d1f7ff4c0000000000000000000000140000005c3d000030d2f7ff5100000000610e10630e080014000000743d000078d2f7ff5100000000610e10630e0800140000008c3d0000c0d2f7ff5100000000610e10630e080014000000a43d000008d3f7ff8200000000000000000000002c000000bc3d000080d3f7fffb00000000410e108302440e70024e0a0e10410e08440b6f0a0e10410e08480b000000004c000000ec3d000050d4f7fffd06000000420e108f02420e188e03450e208d04420e288c05410e308606410e3883074a0eb00202520a0e38410e30410e28420e20420e18420e10420e08450b00000000140000003c3e000000dbf7ff14000000000000000000000034000000543e000008dbf7ff9e00000000410e108602410e188303470e2002440a0e18440e10410e08460b690a0e18440e10410e084a0b00140000008c3e000070dbf7ff28000000004f0e100000000014000000a43e000088dbf7ff2300000000440e205c0e080044000000bc3e0000a0dbf7ffb600000000450e108f02450e188e03450e208d04450e288c05440e308606410e3883076a0a0e30410e28420e20420e18420e10420e08440b0000000014000000043f000018dcf7ff140000000000000000000000140000001c3f000020dcf7ff14000000000000000000000014000000343f000028dcf7ff140000000000000000000000340000004c3f000030dcf7ff8200000000420e108c02410e188603440e20830402570a0e18410e10420e084f0b480e18410e10420e0800004c000000843f000088dcf7fffb04000000420e108f02420e188e03420e208d04420e288c05440e308606410e388307470e5003d5040e38440e30410e28420e20420e18420e10420e08000000000000007c000000d43f000038e1f7ff5303000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e600325020a0e38410e30410e28420e20420e18420e10420e08430b02830a0e38410e30410e28420e20420e18420e10420e08430b440a0e38440e30410e28420e20420e18420e10420e08410b0000003c0000005440000018e4f7ff5300000000470e108c02440e188603440e2083046c0ac30e1843c60e1042cc0e08480b44c30e1841c60e1042cc0e080000000000340000009440000038e4f7ff4004000000410e108602430d064d8f038e048d058c06830702a50a0c07084a0b03e2010a0c0708460b00000064000000cc40000040e8f7ff920e000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e40038b0a0a0e38410e30410e28420e20420e18420e10420e08450b440a0e38410e30410e28420e20420e18420e10420e084a0b000000004c0000003441000078f6f7ffea040000004b0e108f02420e188e03420e208d04420e288c05410e308606410e3883074a0e4003b6040e3844c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08004c0000008441000018fbf7ff0c02000000420e108f02420e188e03450e208d04420e288c05440e308606410e388307470e5002480a0e38410e30410e28420e20420e18420e10420e08470b000000000034000000d4410000d8fcf7fff902000000410e108602450d064d8f038e048d058c0683070341010a0c0708410b0319010a0c0708410b0000340000000c420000a0fff7ff9b00000000420e108c02410e188603460e208304440e3002820a0e20410e18410e10420e08410b00000000002c000000444200000800f8ff6300000000410e108602410e188303440e9001025a0e18410e10410e08000000000000002c000000744200004800f8ff6300000000410e108602410e188303440e9001025a0e18410e10410e080000000000000014000000a44200008800f8ff1100000000000000000000002c000000bc4200009000f8ff4700000000460e108602410e188303440e20780e1841c30e1041c60e080000000000000014000000ec420000b000f8ff1400000000000000000000001400000004430000b800f8ff170000000000000000000000140000001c430000c000f8ff1400000000000000000000001400000034430000c800f8ff400000000000000000000000240000004c430000f000f8ff2800000000420e10410e188a028103620e10c1420e08ca00000000002400000074430000f800f8ff1c00000000410e10410e1884028103580e10c1410e08c40000000000140000009c430000f000f8ff5600000000700e100000000014000000b44300003801f8ff5900000000000000000000002c000000cc4300008001f8ff8600000000410e108602430d06458d038c048305025e0a0c0708490b550c07080000000024000000fc430000e001f8ff5900000000410e108602430d0602450a0c0708470b480c07080000005c000000244400001802f8ffd4020000004a0e108f02420e188e03450e208d04420e288c05440e308606410e3883074f0ed0020320020e3841c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08470ed002830786068c058d048e038f0214000000844400009804f8ff0e00000000440e10000000001c0000009c4400009004f8ff5400000000420e108c02410e188603440e20830414000000bc440000d004f8ff02000000000000000000000014000000d4440000c804f8ff6c000000000000000000000054000000ec4400002005f8ff35030000005c0e108f02450e188e034c0e208d04420e288c05440e308606410e38830703b701c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e084c0e38830786068c058d048e038f024c000000444500000808f8ff3c0d000000420e108d02420e188c03410e208604410e288305440e400357070a0e28410e20410e18420e10420e08490b03d5010a0e28410e20410e18420e10420e08450b4c00000094450000f814f8ffc402000000420e108f02420e188e03470e208d04420e288c05440e308606410e3883074a0e5003a2010a0e38430e30410e28420e20420e18420e10420e08410b0000000014000000e44500007817f8ff5300000000000000000000001c000000fc450000c017f8ff4500000000510e1083025c0ac30e08430b000000340000001c460000f017f8ff0501000000410e108602410e188303470ef003027d0a0e18410e10410e08410b520a0e18490e10410e084b0b2c00000054460000c818f8ff8100000000470e108c02470e188603440e20830402440a0e18410e10420e08470b00000014000000844600002819f8ff0900000000440e1000000000140000009c4600002019f8ff1000000000000000000000002c000000b44600001819f8ff0d05000000410e108602430d06488f038e048d058c06498307036d010a0c0708460b000074000000e4460000f81df8ff10020000004c0e108f02420e188e03450e208d04420e288c05440e308606410e3883074a0e6002c90e68450e70510e68410e606c0e3843c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08540e60830786068c058d048e038f026a0e684f0e70450e68410e600000003c0000005c470000901ff8ff6200000000420e108d02420e188c03410e208604410e2883054b0e30610a0e28470e20410e18420e10420e084a0b000000000000140000009c470000c01ff8ff0b00000000000000000000003c000000b447000068c1fdffd500000000420e108d02420e188c03440e208604410e288305440e3002a10a0e28440e20410e18420e10420e08450b000000000034000000f4470000781ff8ff3700000000410e108602410e1883034a0e205b0a0e18410e10410e08470b440e18410e10410e080000000000140000002c480000ddd8f3ff1a00000000410e10000000004c00000044480000b8c1fdff2b08000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307470e400308030a0e38410e30410e28420e20420e18420e10420e08450b00000000640000009448000098c9fdff1f09000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e40030b020a0e38460e30410e28420e20420e18420e10420e08480b03e4060e38410e30410e28420e20420e18420e10420e0800000000002c000000fc480000b01ef8ff560b000000410e108602460d06508f038e048d058c0683070353090a0c0708410b000000140000002c490000e029f8ff0800000000000000000000001400000044490000d829f8ff0800000000000000000000002c0000005c490000d029f8ff5c00000000410e108602410e188303470e2002440a0e18410e10410e08410b0000000000440000008c490000002af8ffed00000000420e108c02410e188603460e2083044a0e40710a0e20410e18410e10420e08480b02640a0e20410e18410e10420e08480b0000000000008c000000d4490000a82af8ffd802000000420e108f02420e188e03470e208d04420e288c05440e308606410e388307500e6002480ee0014c0e6002450ee0014c0e60460a0e38410e30410e28420e20420e18420e10420e08490b0310010ee0014c0e60580a0e38410e30410e28420e20420e18420e10420e08420b024a0ee0014c0e60740ee0014c0e6000000000000044000000644a0000f82cf8ff0c01000000420e108e02440e188d03450e208c04440e288605460e3083066c0eb0014c0e3002a80eb0014c0e30430e28410e20420e18420e10420e0814000000ac4a0000a0d0fdff2200000000000000000000005c000000c44a0000a82df8ffda00000000420e108e02420e188d03450e208c04440e288605460e308306740a0e28410e20420e18420e10420e08420b02420a0e28440e20420e18420e10420e08450b6d0e28410e20420e18420e10420e0800002c000000244b0000282ef8ff5403000000410e108602430d06488f038e048d058c06478307026f0a0c0708460b0000003c000000544b00005831f8ffe403000000410e1086024a0d064d8f038e048d058c0683076c0e90014c0e10740e90014c0e104e0a0c0708410b000000000000002c000000944b00000835f8ff0605000000410e108602430d064d8f038e048d058c06830703b5020a0c07084a0b0000001c000000c44b0000e839f8ff3a020000000306010e105a0e080000000000000014000000e44b0000083cf8ff100000000000000000000000cc000000fc4b0000003cf8ffff03000000420e108f02420e188e03460e208d04420e288c05440e308606410e388307500e800102650a0e38410e30410e28420e20420e18420e10420e08410b03d5010a0e38410e30410e28420e20420e18420e10420e08480b680e8801420e9001580e8801440e800102490a0e38430e30410e28420e20420e18420e10420e08410b730e8801420e9001540e8801420e8001440a0e38410e30410e28420e20420e18420e10420e08410b4c0a0e38430e30410e28420e20420e18420e10420e08410b0084000000cc4c0000303ff8ff5305000000420e108f02420e188e03460e208d04420e288c05440e308606410e388307500e8001025e0a0e38410e30410e28420e20420e18420e10420e08470b5a0e8801410e90014f0e8801420e8001440a0e38410e30410e28420e20420e18420e10420e08460b03c0020e8801420e90015f0e8801440e80010000cc000000544d00000844f8ff3c04000000420e108f02420e188e03460e208d04420e288c05440e308606410e3883074a0e8001027e0a0e38410e30410e28420e20420e18420e10420e08450b03db010a0e38410e30410e28420e20420e18420e10420e08430b630e8801420e90015b0e8801410e8001024c0a0e38430e30410e28420e20420e18420e10420e08470b7c0e8801420e9001530e8801420e8001440a0e38410e30410e28420e20420e18420e10420e08470b4c0a0e38430e30410e28420e20420e18420e10420e08480b0084000000244e00007847f8ff3d05000000420e108f02420e188e03460e208d04420e288c05440e308606410e388307500e8001025e0a0e38410e30410e28420e20420e18420e10420e08470b5a0e8801410e90014f0e8801420e8001440a0e38410e30410e28420e20420e18420e10420e08460b0386020e8801420e90015c0e8801440e800100006c000000ac4e0000304cf8ff5d03000000420e108f02420e188e03460e208d04420e288c05440e308606410e388307500e800102610a0e38440e30410e28420e20420e18420e10420e08410b570e8801410e9001530e8801440e8001033d010e8801420e90015c0e8801440e80010000ac0000001c4f0000204ff8ffaf07000000420e108f02420e188e03450e208d04420e288c05440e308606410e3883074d0eb00102850a0e38410e30410e28420e20420e18420e10420e08440b5c0eb801410ec001530eb801420eb001440a0e38410e30410e28420e20420e18420e10420e08480b0364010eb801480ec001650eb801460eb001026f0eb801420ec001580eb801440eb00103f1020eb8014c0ec001590eb801450eb00100000000000000a4000000cc4f00002056f8ff8b0c000000420e108f02420e188e03450e208d04420e288c05440e308606410e3883074a0ed00102930a0e38410e30410e28420e20420e18420e10420e08490b5c0ed801410ee001530ed801410ed00103f8020ed801470ee0016a0ed801460ed001025a0ed801420ee001660ed801410ed0010335020ed801470ee001660ed801440ed00103d6030ed801440ee001660ed801440ed001000000000084000000745000000862f8ff3511000000420e108f02420e188e03460e208d04420e288c05440e308606410e3883074a0ea00102810a0e38410e30410e28420e20420e18420e10420e084a0b5c0ea801410eb001530ea801420ea001440a0e38410e30410e28420e20420e18420e10420e08410b0315040ea801420eb0015c0ea801470ea001000084000000fc500000c072f8ff3a06000000420e108f02420e188e03460e208d04420e288c05440e308606410e388307500e900102610a0e38410e30410e28420e20420e18420e10420e08440b570e9801420ea001530e9801420e9001440a0e38410e30410e28420e20420e18420e10420e08440b0302020e9801420ea0015c0e9801440e90010000ac000000845100007878f8ff1108000000420e108f02420e188e03460e208d04420e288c05440e308606410e3883074d0eb001027c0a0e38410e30410e28420e20420e18420e10420e08440b5c0eb801410ec001530eb801420eb001440a0e38410e30410e28420e20420e18420e10420e08480b03b9010eb801450ec001630eb801450eb00102520eb801420ec001580eb801440eb0010324030eb801470ec001560eb801450eb001000000000000008400000034520000e87ff8ff3506000000420e108f02420e188e03460e208d04420e288c05440e308606410e388307500e900102610a0e38410e30410e28420e20420e18420e10420e08440b570e9801420ea001540e9801420e9001440a0e38410e30410e28420e20420e18420e10420e08430b03f8010e9801420ea001580e9801440e90010000ac000000bc520000a085f8ff4a08000000420e108f02420e188e03460e208d04420e288c05440e308606410e3883074d0eb001027c0a0e38410e30410e28420e20420e18420e10420e08440b5c0eb801410ec001530eb801420eb001440a0e38410e30410e28420e20420e18420e10420e08480b03bc010eb801480ec0015d0eb801440eb00102530eb801420ec001580eb801440eb001034e030eb801470ec001560eb801450eb001000000000000006c0000006c530000408df8ffc304000000420e108f02420e188e03450e208d04420e288c05440e308606410e388307470ec00103bc010a0e38410e30410e28420e20420e18420e10420e08410b02ad0ec801420ed001680ec801420ec00102ad0ec801420ed0016f0ec801410ec0010034000000dc530000a091f8fffc00000000410e108602430d06488f038e048d058c0647830702d10a0c0708440b530c070800000000000000140000001454000068c7fdff320000000000000000000000140000002c5400005092f8ff08000000000000000000000074000000445400004892f8ff1f02000000420e108d02420e188c03460e208604410e288305470ec00102f60a0e28410e20410e18420e10420e08420b580a0e28410e20410e18420e10420e08420b6f0a0e28460e20410e18420e10420e08460b02760a0e28460e20410e18420e10420e08470b000000000064000000bc540000f093f8ffa901000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e7002bd0a0e38410e30410e28420e20420e18420e10420e084b0b02b40a0e38410e30410e28420e20420e18420e10420e08410b000000004c000000245500003895f8ffd805000000420e108f02420e188e03480e208d04420e288c05410e308606410e388307440ea00102e10a0e38440e30410e28420e20420e18420e10420e08460b000000001400000074550000c89af8ff120000000000000000000000140000008c550000d09af8ff0b00000000000000000000001c000000a455000018c6fdff1b00000000410e108302550e080000000000000014000000c455000018c6fdff2500000000440e10600e080024000000dc550000909af8ff7500000000430e108302480a0e08450b790a0e08470b4b0a0e08410b5c00000004560000e89af8ffe301000000420e108d02420e188c03460e208604410e288305490e4002e70a0e28440e20410e18420e10420e08440b5b0a0e28440e20410e18420e10420e08440b026f0a0e28460e20410e18420e10420e08410b1400000064560000789cf8ff180000000000000000000000640000007c560000809cf8ffce02000000420e108f02420e188e03420e208d04420e288c05440e308606410e388307510e6002c70a0e38440e30410e28420e20420e18420e10420e08460b039d010a0e38470e30410e28420e20420e18420e10420e08480b0000006c000000e4560000e89ef8ff4708000000540e108f02420e188e03470e208d04420e288c05440e308606410e388307490ec002024d0a0e3841c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08440b0358010e08c3c6cccdcecf680ec002830786068c058d048e038f020000002c00000054570000b8c4fdff0e07000000410e108602410e188303490e2003fc060e18410e10410e0800000000000000340000008457000098a6f8ff6d07000000410e108602430d06488f038e048d058c0647830702600a0c0708450b750a0c0708430b0000000014000000bc570000d0adf8ff4a00000000000000000000004c000000d457000008aef8ff2f02000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e400336010a0e38410e30410e28420e20420e18420e10420e08420b000000003c00000024580000e8aff8ff8403000000410e108602430d06488f038e048d058c064a8307024d0a0c0708450b02c50a0c0708430b580a0c0708480b000000001c0000006458000038b3f8ff5e00000000410e1083026b0a0e084c0b000000003c0000008458000078b3f8ff1705000000410e108602430d06488f038e048d058c064b8307026f0a0c07084a0b0370020a0c0708410b03ed010a0c0708410b003c000000c458000058cafdff1301000000420e108d02420e188c03410e208604410e288305440e3002e90a0e28410e20410e18420e10420e08410b0000000000140000000459000018b8f8ff720000000000000000000000140000001c59000080b8f8ff170000000000000000000000140000003459000088b8f8ff110000000000000000000000140000004c59000090b8f8ff110000000000000000000000140000006459000098b8f8ff110000000000000000000000140000007c590000a0b8f8ff5600000000000000000000001400000094590000e8b8f8ff1e000000000000000000000014000000ac590000f0b8f8ff5800000000000000000000001c000000c459000038b9f8ff2600000000450e108302600e08000000000000001400000000000000017a525300017810011b0000000000007c0000001c0000003fb9f8ff0a000000000f0477a0010610080277281009027730100a027738100b0377c000100c0377c800100d0377d000100e0377d800100f0377e00010050377e80010040377f00010060377f80010030377800110010377880110000377900110020377980110070377a00110100377a801000000000000240000007c5a0000d0b8f8ff2802000000470ed80103d8010a0e08410b02400a0e08410b0000000014000000a45a0000d8baf8ff24000000000000000000000014000000bc5a0000f0baf8ff3200000000000000000000005c000000d45a000018bbf8ff511c0000004b0e108f02420e188e03450e208d04420e288c05490e308606410e3883074d0ea00903f3050e3841c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08420ea009830786068c058d048e038f0224000000345b000008c9fdffca00000000440e10730e90014c0e10025a0e90014c0e10600e080000440000005c5b0000f0d6f8ff6403000000410e108602430d06488f038e048d058c0648830702530e90014c0e1002f40e90014c0e10500a0c0708450b0330010e90014c0e1000000034000000a45b000018daf8ff5800000000450e108c02410e188603410e208304690a0e18410e10420e084d0b540e18410e10420e080000005c000000dc5b000040daf8ff3e01000000420e108d02420e188c03410e208604410e288305440e3002660eb0014c0e3002650eb0014c0e30440a0e28430e20410e18420e10420e08470b720e28460e20410e18420e10420e0800000000000000240000003c5c000020dbf8ffb000000000440e10730e90014c0e10025a0e90014c0e10460e08000014000000645c0000a8dbf8ff130000000000000000000000140000007c5c0000b0dbf8ff10000000000000000000000014000000945c0000a8dbf8ff12000000000000000000000064000000ac5c0000b0dbf8ffa404000000420e108f02420e188e03450e208d04420e288c05440e308606410e388307440e600300010a0e38410e30410e28420e20420e18420e10420e08420b024e0a0e38430e30410e28420e20420e18420e10420e08410b00000014000000145d0000f8dff8ff0a0000000000000000000000140000002c5d0000f0dff8ffcb000000000000000000000024000000445d0000a8e0f8ff1c01000000410e108302520e3002730a0e10440e08460b0000000000140000006c5d0000b7c3f3ff4a00000000000000000000004c000000845d000088e1f8ffba00000000420e108d02420e188c03410e208604410e288305490e306b0a0e28410e20410e18420e10420e08480b024c0a0e28480e20410e18420e10420e084f0b00000034000000d45d0000f8e1f8ff4001000000410e108602430d06488f038e048d058c06518307690a0c07084a0b02cb0a0c0708450b000000002c0000000c5e000000e3f8ff7402000000410e108602430d06488f038e048d058c064c830703b8010a0c0708410b00002c0000003c5e000050e5f8ffa523000000410e108602430d065b8f038e048d058c068307037b090a0c0708460b000000440000006c5e0000d008f9ff562b000000410e108602430d06508f038e048d058c0683070306010a0c0708460b02820e90014c0e106d0a0c0708450b660e90014c0e1000000000004c000000b45e0000e833f9ffda01000000420e108d02420e188c03410e208604410e288305470ed04202e70ed0434c0ed042025c0a0e28410e20410e18420e10420e08460b024b0ed0434c0ed04200004c000000045f00007835f9ff4801000000410e108602410e188303440e20025c0a0e18430e10410e084a0b02760a0e18430e10410e08460b680a0e18460e10410e08410b5a0a0e18430e10410e08420b2c000000545f00007836f9ff7e02000000410e108602430d06488f038e048d058c064c830703a0010a0c0708480b00003c000000845f0000c838f9ff9b27000000410e108602430d06488f038e048d058c0644830703fe070a0c0708420b0389010a0c0708470b640a0c0708440b000014000000c45f00002860f9ff19000000000000000000000014000000dc5f00003060f9ff4b000000000000000000000044000000f45f00006860f9ff0c010000004e0e108c02430e188603440e208304760ea0014c0e20024b0ea0014c0e20410ac30e1844c60e1042cc0e084b0b780e08c3c6cc00000000440000003c6000003061f9ff0c010000004e0e108c02430e188603440e208304760ea0014c0e20024b0ea0014c0e20410ac30e1844c60e1042cc0e084b0b780e08c3c6cc000000004c00000084600000f861f9ff401b000000420e108f02420e188e03420e208d04420e288c05440e308606410e3883074a0e80030333030a0e38410e30410e28420e20420e18420e10420e08440b0000002c000000d460000038c4fdff5c000000004d0e108602410e188303460e207c0e1844c30e1041c60e08000000000000005c00000004610000b87cf9ffaf01000000420e108d02420e188c03410e208604410e288305470e30026e0eb0014c0e3002a30eb0014c0e30440a0e28430e20410e18420e10420e08460b570a0e28410e20410e18420e10420e08410b000000004c00000064610000087ef9ffd700000000420e108e02420e188d03420e208c04410e288605440e30830602ac0a0e28410e20420e18420e10420e08410b4b0e28460e20420e18420e10420e080000000044000000b4610000987ef9ffc500000000420e108d02420e188c03410e208604410e28830502a30a0e20410e18420e10420e08410b4b0e20460e18420e10420e08000000000000002c000000fc610000207ff9ffe500000000410e108302760e90014c0e1002550e90014c0e10430a0e08490b00000000001c0000002c620000e07ff9ff8f00000000470ee00102870e0800000000000000140000004c62000021bff3ff4a00000000000000000000004c000000646200003880f9ffd200000000420e108d02420e188c03440e208604410e288305460e30740a0e28410e20410e18420e10420e08470b440a0e28460e20410e18420e10420e08490b000000002c000000b4620000c880f9ffef00000000410e108602460d064d8f038e048d058c0683075b0a0c0708410b000000000034000000e46200008881f9ff9f01000000410e108602430d06488f038e048d058c065083070341010a0c0708430b7e0c07080000000000002c0000001c630000f082f9ffed29000000410e108602430d065b8f038e048d058c068307032b0c0a0c0708460b0000004c0000004c630000b0acf9ff6628000000410e108602430d06488f038e048d058c06448307032b010e90014c0e1002760a0c0708430b5c0a0c0708440b660e90014c0e10026f0a0c0708470b00000000540000009c630000d0d4f9fff201000000420e108d02420e188c03440e208604410e288305580e80850202f90e8086024c0e80850202630a0e28440e20410e18420e10420e08460b730e8086024c0e80850200000000000014000000f463000078d6f9ff4100000000730e88014c0e08440000000c640000b0d6f9ff4107000000420e108c02410e188603440e208304510e3003d9020a0e20440e18410e10420e08480b5b0a0e20440e18410e10420e08460b00000000004400000054640000b8ddf9ff0b07000000420e108c02410e188603440e2083044b0e300377020a0e20440e18410e10420e08480b02630a0e20440e18410e10420e08460b00000000340000009c64000080e4f9ffe000000000420e108c02410e188603440e208304470eb00102710a0e20410e18410e10420e08450b00000000540000009458000028e5f9ff620100000456934c00420e108c02410e188603440e208304024f0ea0014c0e2002490a0e18430e10420e08480b02450ea0014c0e20410a0e18430e10420e08410b7e0ea0014c0e20000000002c0000002c65000040e6f9ff7300000000410e108602410e188303470e2002550a0e18410e10410e08480b00000000007c0000001c59000090e6f9ffc80100000465934c00420e108e02420e188d03420e208c04410e288605410e308306025f0eb0014c0e3002420a0e28440e20420e18420e10420e08410b7a0a0e28440e20420e18420e10420e08440b410a0e28430e20420e18420e10420e08460b730eb0014c0e30025d0eb0014c0e3000000000640000009c590000e0e7f9ff0c0300000474934c00420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e60026d0ee0014c0e6002560ee0014c0e60570a0e38440e30410e28420e20420e18420e10420e08430b03e8010ee0014c0e6000640000004466000088eaf9ffa701000000420e108f02420e188e03450e208d04420e288c05440e308606410e388307470e6002c50a0e38410e30410e28420e20420e18420e10420e084a0b02450a0e38410e30410e28420e20420e18420e10420e08410b0000000014000000ac660000d0ebf9ff0800000000000000000000004c000000c4660000c8ebf9ffb100000000420e108d02420e188c03470e208604410e288305470e4002680a0e28440e20410e18420e10420e08440b5c0e28440e20440e18420e10420e080000000000004c0000001467000038ecf9ffc100000000420e108d02420e188c03470e208604410e288305470e800102780a0e28440e20410e18420e10420e08440b5c0e28440e20440e18420e10420e0800000000004c00000064670000b8ecf9ff1602000000420e108f02420e188e03450e208d04420e288c05440e308606410e3883074a0e6002970a0e38410e30410e28420e20420e18420e10420e08450b000000000014000000b467000088eef9ff35000000000000000000000014000000cc670000b0eef9ff31000000000000000000000014000000e4670000d8eef9ff31000000000000000000000024000000fc67000000eff9ff6d00000000410e108302470e30730a0e10410e08440b000000000000640000002468000048eff9ffdd01000000420e108f02420e188e03450e208d04420e288c05440e308606410e388307440e5002620a0e38460e30410e28420e20420e18420e10420e084b0b02920a0e38410e30410e28420e20420e18420e10420e08440b000000001c0000008c680000c0f0f9ff7e00000000410e10830202530a0e084c0b0000001c000000ac68000020f1f9ff2e00000000480e108302650e080000000000000024000000cc68000030f1f9ff3700000000410e108602410e188303490e20680e18410e10410e080034000000f468000048f1f9fff0010000004f0e108302028ac30e08570e108302590ac30e08470b4a0ac30e08460b02ba0ac30e08460b00002c0000002c69000000f3f9ffe9010000004b0e1083020256c30e085f0e108302590ac30e08470b730ac30e08450b00004c0000005c690000c0f4f9ffa502000000420e108f02420e188e03440e208d04420e288c05410e308606410e388307440e50033c020a0e38410e30410e28420e20420e18420e10420e084a0b000000004c000000ac69000020f7f9ff3904000000420e108f02420e188e03490e208d04420e288c05440e308606410e3883074a0e6002eb0a0e38410e30410e28450e20420e18420e10420e084a0b00000000002c000000fc69000010fbf9ff8600000000520e108c02410e188603410e208304680ac30e1841c60e1042cc0e08410b002c0000002c6a000070fbf9ff6900000000420e108c02410e188603410e208304024d0a0e18410e10420e08440b0000001c0000005c6a0000b0fbf9ff7900000000480e108302790a0e08470b000000001c0000007c6a000010fcf9ff6d00000000410e108302025e0a0e08410b0000001c0000009c6a000060fcf9ff4100000000410e108302720a0e08450b000000001c000000bc6a000090fcf9ff4100000000480e1083025f0a0e08490b0000000014000000dc6a0000c0fcf9ff4400000000000000000000002c000000f46a0000f8fcf9ffc500000000410e108602410e1883034a0e20750a0e18410e10410e08450b00000000000014000000246b000098fdf9ff440000000000000000000000140000003c6b0000d0fdf9ffbd00000000000000000000001c000000546b000078fef9ff8d000000005a0e108302025ec30e08480e10830214000000746b0000e8fef9ff1e0000000000000000000000140000008c6b0000f0fef9ff03000000000000000000000014000000a46b0000e8fef9ff08000000000000000000000074000000bc6b0000e0fef9ffdb00000000420e108e02420e188d03450e208c04410e288605440e308306470e407d0e48420e50720e48410e40520a0e30460e28410e20420e18420e10420e084a0b440a0e30460e28410e20420e18420e10420e08470b480e30430e28410e20420e18420e10420e0800000064000000346c000048fff9ffc100000000420e108d02420e188c03440e208604410e288305470e407f0e48420e50670e48410e40520a0e28460e20410e18420e10420e084a0b440a0e28460e20410e18420e10420e08410b480e28430e20410e18420e10420e0800740000009c6c0000b0fff9ffeb00000000420e108e02420e188d03450e208c04410e288605440e308306470e4002490e48420e50780e48410e40520a0e30460e28410e20420e18420e10420e08480b440a0e30460e28410e20420e18420e10420e08470b480e30430e28410e20420e18420e10420e0800002c000000146d00002800faff9100000000410e1086024b0d064d8f038e048d058c06830702770c0708000000000000003c000000446d00009800faffd601000000420e108d02420e188c03410e208604410e288305470e50036e010a0e28410e20410e18420e10420e08470b000000003c000000846d00003802faffa200000000420e108e02420e188d03460e208c04410e288605410e308306790a0e28410e20420e18420e10420e08440b0000000034000000c46d0000a802faff4900000000410e108602410e188303470e205e0a0e184a0e10410e084e0b440e18430e10410e08000000000064000000fc6d0000c002faff7301000000420e108f02420e188e03420e208d04420e288c05440e308606410e3883074a0e60740a0e38410e30410e28420e20420e18420e10420e084b0b02800a0e38440e30410e28420e20420e18420e10420e08430b000000000014000000646e0000d803faff180200000000000000000000140000007c6e0000e005faffe202000000000000000000004c000000946e0000b808faff2c04000000420e108f02420e188e03450e208d04420e288c05440e308606410e388307570ee010034a020a0e38410e30410e28420e20420e18420e10420e08450b000000bc000000e46e0000980cfaffee030000005e0e108f02420e188e03420e208d04420e288c05440e308606410e3883074a0e6003f0010a0e3841c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08430b02400e08c3c6cccdcecf480e60830786068c058d048e038f026a0e08c3c6cccdcecf450e60830786068c058d048e038f0202d10a0e3844c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e084b0b02510e08c3c6cccdcecf430e60830786068c058d048e038f0200000000004c000000a46f0000c80ffaffcb00000000420e108e02420e188d03450e208c04410e288605440e308306028b0a0e28410e20420e18420e10420e08480b5b0e28410e20420e18420e10420e08000000003c000000f46f00004810faffa600000000420e108e02420e188d03450e208c04410e288605440e30830602890a0e28410e20420e18420e10420e08420b0000001400000034700000b810faff980200000000000000000000140000004c7000004013faff09000000000000000000000014000000647000003813faff090000000000000000000000140000007c7000003013faff7200000000000000000000004c000000947000009813faff74010000005e0e108c02410e188603410e208304460e7002590e2041c30e1841c60e1042cc0e084d0e70830486038c0202770e78450e80015f0e78440e7000000000000064000000e4700000c814faffe201000000420e108c02410e188603460e208304470e8001029b0e8801450e9001560e8801410e800102540a0e20480e18410e10420e084a0b610e8801420e9001560e8801410e80016f0a0e20410e18440e10420e08480b00000000140000004c7100005016faff1c00000000000000000000006c000000647100005816faff7e02000000420e108f02420e188e03470e208d04420e288c05440e308606410e3883074d0e900302900e9803420ea0035e0e9803410e9003024c0a0e38440e30410e28420e20420e18420e10420e08470b027f0e9803420ea003600e9803420e9003000014000000d47100006818faff99000000000000000000000014000000ec710000f018faff2000000000000000000000006c00000004720000f818faff2d03000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307470eb00302d50eb803450ec003550eb803410eb00302af0a0e38440e30410e28420e20420e18420e10420e08430b029f0eb803420ec0035f0eb803420eb00300001400000074720000b81bfaff080000000000000000000000140000008c720000b01bfaff2a000000000000000000000034000000a4720000c81bfaffc602000000450e108d02420e188c03410e208604410e2883050328020a0e20410e18420e10420e084a0b000064000000dc720000601efaffa001000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e5002400a0e38430e30410e28420e20420e18420e10420e08460b02ee0a0e38410e30460e28420e20420e18420e10420e08410b000000001c0000004473000028b2fdff4000000000480e108302770e08000000000000005c00000064730000781ffaff0403000000420e108d02420e188c03440e208604410e288305460e40027f0a0e28410e20410e18420e10420e08440b02bd0a0e28410e20460e18420e10420e08480b02810e48490e50590e48410e4000000000004c000000c47300002822faffe700000000420e108e02420e188d03420e208c04410e288605440e308306028a0a0e28410e20420e18420e10420e08410b7b0a0e28440e20420e18420e10420e08410b005400000014740000c822faff6a03000000420e108d02420e188c03460e208604410e2883054d0e5002910e58520e60530e58420e50030b010a0e28410e20410e18420e10420e08470b02bd0e58450e605a0e58410e500000340000006c740000e025faff3c02000000410e108602410e1883034b0e206c0ea0014c0e20740ea0014c0e204b0a0e18410e10410e08460b44000000a4740000e827faff3407000000460e108f02450e188e03420e208d04420e288c05410e308606480e388307035a050a0e30410e28420e20420e18420e10420e08410b00003c000000ec740000e02efaff6302000000410e108602410e1883034b0e206c0ea0014c0e200373010ea0014c0e20440a0e18410e10410e08460b0000000000007c0000002c7500001031faffd9030000004b0e108e02420e188d03440e208c04410e288605440e3083064f0e406c0ec0014c0e400324010ec0014c0e40780a0e3044c30e2841c60e2042cc0e1842cd0e1042ce0e08480b031c010a0e3043c30e2841c60e2042cc0e1842cd0e1042ce0e08420b02c80e08c3c6cccdce000000004c000000ac7500007034faff450d000000420e108f02420e188e03420e208d04420e288c05440e308606410e3883074a0ed00202510a0e38410e30410e28420e20420e18420e10420e08460b0000000064000000fc7500007041faff0002000000420e108f02420e188e03450e208d04420e288c05440e308606410e388307470e6003c5010a0e38410e30410e28420e20420e18420e10420e08410b4e0e38410e30410e28420e20420e18420e10420e08000000000000004c000000647600000843faffbf06000000420e108f02420e188e03420e208d04420e288c05440e308606410e388307470e50036f020a0e38410e30410e28420e20420e18420e10420e08430b0000000044000000b47600007849faff6d010000004a0e108602410e188303560eb00102980a0e1841c30e1041c60e08450b770e1843c30e1041c60e085d0eb001830386020000000000000044000000fc760000a04afaff6d010000004a0e108602410e188303530eb00102980a0e1841c30e1041c60e08480b770e1843c30e1041c60e085d0eb00183038602000000000000003400000044770000c84bfaff0b01000000420e108c02410e188603440e208304460e3002790a0e20410e18410e10420e08460b0000000000240000007c770000a04cfaff5400000000460e1083025a0ac30e08480b52c30e08000000000000004c000000a4770000d84cfafff800000000420e108d02420e188c03460e208604410e288305490e306f0eb0014c0e3002830eb0014c0e30440a0e28440e20410e18420e10420e08410b0000000000000024000000f4770000884dfaff9300000000410e1083026d0e90014c0e10024b0e90014c0e10410e084c0000001c780000004efaff8d00000000420e108f02420e188e03450e208d04420e288c05460e308606410e388307470e40024d0a0e38440e30410e28420e20420e18420e10420e08450b00000000002c0000006c780000404efaff9a00000000410e108302500ea001024e0a0e10410e08480b550a0e10430e08480b000000140000009c780000b04efaff14000000000000000000000014000000b4780000b84efaff08000000000000000000000014000000cc780000b04efaff08000000000000000000000014000000e4780000a84efaff08000000000000000000000014000000fc780000a04efaff0800000000000000000000001400000014790000984efaff4c0000000000000000000000140000002c790000d04efaff5400000000000000000000001400000044790000184ffaff140000000000000000000000140000005c790000204ffaff5100000000610e10630e08001400000074790000684ffaff1900000000440e50510e08002c0000008c790000704ffaffa900000000410e108302540e4002700a0e10430e08480b550e10430e080000000000000014000000bc790000f04ffaff5c000000000000000000000014000000d47900003850faff5100000000610e10630e08004c000000ec7900008050faff8500000000420e108d02420e188c03410e208604410e288305440e3002620a0e28410e20410e18420e10420e08460b440e28430e20410e18420e10420e08000000000000140000003c7a0000c050faff44000000000000000000000044000000547a0000f850faff9b01000000420e108e02420e188d03460e208c04410e288605440e308306510e50033f010a0e30410e28410e20420e18420e10420e08490b00000000140000009c7a00005052faffe400000000000000000000003c000000b47a00002853faffa9010000004a0e108602430d06438c03830402f10ac342cc41c60c0708440b700c0708c3c6cc480c0610830486028c030000000034000000f47a00009854faff7700000000420e108f02420e188e03450e208d04420e288c05440e308606410e3883074d0e400000000000002c0000002c7b0000e054faffcf04000000410e108602450d06488f038e048d058c064483070344020a0c07084a0b0000340000005c7b00008059fafffd05000000410e108602430d06508f038e048d058c0683070318020a0c0708440b025a0a0c0708460b0000002c000000947b0000485ffaff2a05000000410e108602450d06488f038e048d058c064483070344020a0c07084a0b000034000000c47b00004864faffc011000000410e108602430d06488f038e048d058c06448307034a010a0c0708460b0352060a0c0708410b004c000000fc7b0000d075faff7b01000000420e108f02420e188e03460e208d04420e288c05440e308606410e3883074c0e4002820a0e38440e30410e28420e20420e18420e10420e08440b00000000004c0000004c7c00000077faff7902000000420e108f02420e188e03450e208d04420e288c05440e308606410e3883074d0e700312010a0e38410e30410e28420e20420e18420e10420e08470b000000004c0000009c7c00003079faffa305000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307490e800103a8030a0e38440e30410e28420e20420e18420e10420e08410b00000084000000ec7c0000907efafff801000000530e108f02420e188e03420e208d04420e288c05410e308606410e388307470e4002810e48480e505e0e48410e405c0e3841c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08580e40830786068c058d048e038f02540a0e3843c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08480b0034000000747d00000880faffe702000000410e1086024d0d064d8f038e048d058c06830703ac010a0c0708490b02ca0a0c0708410b000000dc000000ac7d0000c082faff150a000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307470ef00702f10a0e38410e30410e28420e20420e18420e10420e08440b02da0ef807520e8008460e8808420e90084e0ef0070360010ef807510e8008420e8808420e90085b0ef007730ef807490e8008420e8808420e9008610ef00702b10ef807520e8008420e8808420e9008560ef007032e020ef8074e0e8008420e8808440e90085b0ef007027d0ef807460e8008420e8808440e90085b0ef00702f50a0ef8074b0e8008420e8808460e9008520b004c0000008c7e0000008cfaffd605000000420e108f02420e188e03450e208d04420e288c05440e308606410e388307440e6003d1010a0e38410e30410e28420e20420e18420e10420e08410b000000004c000000dc7e00009091faff8e01000000420e108d02420e188c03410e208604410e288305440e3002c50a0e28440e20410e18420e10420e08480b024b0a0e28430e20410e18420e10420e08450b0000840000002c7f0000d092faff650b000000420e108f02420e188e03420e208d04420e288c05440e308606410e388307470ec001036a010a0e38430e30410e28420e20420e18420e10420e08460b02e80ec801510ed0014d0ed801410ee001420ee801420ef001630ec001030b050ec801460ed001550ed801410ee001460ee801410ef0016a0ec0012c000000b47f0000b89dfaff7d0b000000410e108602430d06488f038e048d058c06518307038c010a0c0708470b000014000000e47f000008a9faffa700000000028e0e1000000034000000fc7f0000a0a9faffa900000000410e108602410e1883034f0e2002710a0e18460e10410e08470b440a0e18410e10410e084a0b004c0000003480000018aafaff2f03000000420e108f02420e188e03450e208d04420e288c05440e308606410e3883074a0e6003f8010a0e38410e30410e28420e20420e18420e10420e08440b000000001400000084800000f8acfaffb600000000029c0e104c0e08240000009c800000a0adfaffbc00000000440e1002920a0e084a0b440a0e08460b000000000000001c000000c480000038aefaff3f00000000410e108302790e08000000000000001c000000e480000058aefaff6100000000700e10830255c30e08420e108302001c00000004810000a8aefaffd200000000440e108602410e1883034d0e500000440000002481000068affaff75160000004e0e108602460d06488f038e048d058c064b830703a302c342cc42cd42ce42cf41c60c0708450c0610830786028c068d058e048f030000340000006c810000a0c5faff2408000000410e108602430d06488f038e048d058c0648830703f5020a0c0708410b03bb030a0c0708410b004c000000a481000098cdfaff6501000000420e108f02420e188e03470e208d04420e288c05440e308606410e388307500ed0080307010ed808410ee008410ee808420ef008550ed008000000000000003c000000f4810000b8cefaff7e00000000420e108d02420e188c03440e208604410e2883054d0e305c0a0e284a0e20410e18420e10420e08470b0000000000002c00000034820000f8cefaffcc00000000410e108302470ed00202a20a0e10410e08450b580e10430e08000000000000440000006482000098cffaff5700000000420e108f02420e188e03450e208d04420e288c05440e308606410e388307470e40750e38410e30410e28420e20420e18420e10420e08002c000000ac820000b0cffaff6c05000000410e108602430d06448f038e044c8d058c068307033b010a0c0708410b00003c000000dc820000f0d4faff8a00000000420e108d02420e188c03430e208604410e288305590ec00102410a0e28440e20410e18420e10420e08450b000000001c0000001c83000040d5faffa200000000470ee001029a0e08000000000000001c0000003c830000d0d5faffa200000000470ee001029a0e08000000000000001c0000005c83000060d6faff9400000000470ee001028c0e0800000000000000340000007c830000e0d6faff6b00000000410e108602410e1883034a0e2002450a0e18430e10410e084b0b440e18450e10410e080000000014000000b483000018d7faff75000000000000000000000014000000cc830000eb9df3ff1c00000000410e10000000001c000000e483000068d7faffe600000000440e105f0a0e08450b000000000000140000000484000038d8faff560000000000000000000000140000001c84000080d8faff150000000000000000000000340000003484000088d8faffa200000000420e108c02410e188603410e20830402810a0e18410e10420e08480b4e0e18410e10420e0800005c0000006c84000000d9faffe7020000004b0e108f02420e188e03420e208d04420e288c05410e308606410e388307440e6003a2010a0e3841c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08410b0320010e08c3c6cccdcecf0000002c000000cc84000090dbfaffde00000000450e108c02410e188603410e208304760a0e18410e10420e08480b000000004c000000fc84000040dcfaff8400000000420e108e02420e188d03450e208c04410e288605440e308306024f0a0e28410e20420e18420e10420e08440b480e28410e204a0e18420e10420e0800000000140000004c85000080dcfaff8000000000000000000000002c00000064850000e8dcfaffd600000000420e108c02440e188603480e20830402450a0e18410e10420e084a0b000000540000009485000098ddfaff6c01000000420e108c02410e188603460e208304510ea02002d70a0e20440e18410e10420e08480b470a0e204b0e18410e10420e08410b750a0e20440e18410e10420e08410b0000000000002c000000ec850000b0defaffc200000000410e108602410e188303470e20570a0e18410e10410e08460b000000000000240000001c86000050dffaff5c00000000660e1083025bc30e084f0e10830248c30e0800000000004c0000004486000088dffaff5402000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307470e500341010a0e38430e30410e28420e20420e18420e10420e08420b00000000340000009486000098e1faff8d000000004b0e108602410e188303470e20025b0e1841c30e1041c60e08440e2083038602000000000000002c000000cc860000f0e1faff9902000000410e108602430d06488f038e048d058c064b830702ec0a0c0708450b0000003c000000fc86000060e4faff2201000000420e108e02420e188d03450e208c04410e288605440e30830602f30a0e28410e20420e18420e10420e084c0b0000002c0000003c87000050e5faff6209000000410e108602480d064d8f038e048d058c06830703a8030a0c0708410b000000340000006c87000090eefaff3601000000410e108602410e188303500e20027c0a0e18430e10410e08460b02440a0e18460e10410e08450b2c000000a487000098effaff220d000000410e108602430d06508f038e048d058c06830703ec0b0a0c0708410b00000014000000d487000098fcfaff80000000000000000000000024000000ec87000000fdfaff0601000000410e108302026e0a0e08510b4a0a0e08460b00000000001400000000000000017a5200017810011b0c070890010e18240000001c000000d0fdfaff6401000000410e208304430d034b0ea0050349010d0744c3440e8805340000004400000018fffaff7304000000440e38448307480d03034b03c30d07440e08440e3883070d03030a01c30d07440e080000000000240000007c0000006003fbff5c01000000410e208304430d034b0ea0030341010d0744c3440e880334000000a40000009804fbff7504000000440e38448307480d03035b03c30d07440e08440e3883070d0302fcc30d07440e0800000000000024000000dc000000e008fbff3401000000410e208304430d034b0ea0020319010d0744c3440e88023400000004010000f809fbfff901000000440e38448307480d03033701c30d07440e08440e3883070d0302a4c30d07440e08000000000000140000004c890000c00bfbffe600000000000000000000003400000064890000980cfbff2808000000410e108602430d06498f038e048d058c06830702fb0a0c0708480b034d040a0c0708430b000000140000009c8900009014fbff38000000005c0e105b0e08004c000000b4890000b814fbffa001000000420e108c02410e188603410e208304440e405e0a0e20410e18410e10420e08460b7b0a0e20410e18410e10420e08410b02900e48420e50560e48410e4000001c000000048a00000816fbff4500000000590e105f0a0e08480b440e0800000014000000248a00003816fbff190000000000000000000000140000003c8a00004016fbff05000000000000000000000014000000548a00002d16fbff1900000000000000000000001c0000006c8a00002e16fbff7100000000420e10440e5802690e080000000000140000008c8a00007f16fbff7200000000450e50026b0e0814000000a48a0000e816fbff0c000000000000000000000014000000bc8a0000e016fbff22000000000000000000000024000000d48a0000f816fbff3a00000000410e1083025c0e184d0e204d0e18410e10410e0800000024000000fc8a00001017fbff5e00000000410e1083024e0e30790e38420e40520e10410e0800000024000000248b00004817fbff3500000000410e108302580e18420e20570e18410e10410e08000000140000004c8b00006017fbff0500000000000000000000001c000000648b00005817fbff6600000000440e40750a0e08470b650e0800000024000000848b0000a817fbff7e00000000440e5002570a0e08450b4d0a0e08430b0000000000000024000000ac8b00000018fbff0401000000440e7002c10a0e084b0b640a0e08440b0000000000000064000000d48b0000d899fdffd103000000420e108f02420e188e03470e208d04420e288c05410e308606410e388307440e600399030a0e38410e30410e28420e20420e18420e10420e084a0b440e38430e30410e28420e20420e18420e10420e08000000000000003c0000003c8c0000509dfdff9902000000420e108d02420e188c03410e208604410e288305440e300331020a0e28410e20410e18420e10420e084f0b00000000240000007c8c00004018fbff7e00000000440e5002570a0e08450b4d0a0e08430b000000000000001c000000a48c00009818fbff8600000000440e5002640a0e08480b550e08000014000000c48c00000819fbff1000000000000000000000002c000000dc8c00000019fbff5200000000740c05000907080906090910018300110c7e110d7d110e7c110f7b00000000140000000c8d00003019fbff3b000000000000000000000094000000248d00005819fbff4a04000000420e108f02420e188e03450e208d04420e288c05410e308606410e388307440eb00103d0010a0e38410e30410e28420e20420e18420e10420e08410b490a0e38430e30440e28420e20420e18420e10420e08440b02df0a0e38410e30440e28420e20420e18420e10420e08440b02ca0a0e38440e30410e28420e20420e18420e10420e08410b0014000000bc8d0000101dfbff03010000000000000000000014000000d48d0000081efbff0301000000000000000000002c000000ec8d0000001ffbfff803000000410e108602430d06488f038e048d058c064b8307032a010a0c0708470b00001c0000001c8e0000d022fbff1901000000410e1083020317010e08c3000000004c0000003c8e0000d023fbff9001000000420e108f02420e188e03450e208d04420e288c05440e308606410e3883074a0e4002820a0e38410e30410e28420e20420e18420e10420e084a0b00000000004c0000008c8e00001025fbff5505000000420e108f02420e188e03450e208d04420e288c05440e308606410e3883074a0e800102660a0e38410e30410e28420e20420e18420e10420e08460b000000003c000000dc8e0000202afbff7801000000420e108e02420e188d03450e208c04410e288605440e308306027b0a0e28410e20420e18420e10420e08480b0000004c0000001c8f0000602bfbffd404000000420e108f02420e188e03450e208d04420e288c05440e308606410e3883074a0e7002650a0e38410e30410e28420e20420e18420e10420e08470b0000000000340000006c8f0000f02ffbff6e00000000410e108602490d06650a0c0708410b460a0c07084a0b4f0a0c0708410b5d0c070800000000000014000000a48f00002830fbffad000000000000000000000014000000bc8f0000c030fbffeb000000000000000000000014000000d48f00009831fbff9c000000000000000000000014000000ec8f00002032fbffa500000000000000000000001c00000004900000b832fbff8f00000000470ee00102870e080000000000000034000000249000002833fbff6e00000000420e108c02410e188603440e208304570e9002024b0e20410e18410e10420e0800000000000000140000005c9000006033fbff2c00000000000000000000003c000000348400007833fbff250100000484934c00410e108302024c0e90014c0e10760a0e08410b730e90014c0e10430a0e08410b7e0e90014c0e10000000003c000000748400006834fbffb50100000492934c00410e10830202470e90014c0e10024b0a0e08410b7b0a0e08450b730e90014c0e1002820e90014c0e10000034000000f4900000e835fbff4d00000000420e108c02410e188603430e2083044d0a0e18410e10420e084a0b5f0a0e18410e10420e08460b140000002c9100000036fbff44000000004e0e10620e080034000000449100003836fbffed01000000410e108602410e188303490e30027d0a0e18410e10410e08460b02860a0e18410e10410e08480b1c0000007c910000f037fbff4a00000000410e108302780a0e084f0b410e08002c0000009c9100002038fbff6d01000000470e108c02470e188603440e20830402680a0e18410e10420e08430b00000014000000cc9100001090f3ff26000000000000000000000014000000e49100004839fbff1f00000000440e105a0e080014000000fc9100005039fbff09000000000000000000000014000000149200004839fbff2200000000000000000000003c0000002c9200006039fbffca00000000410e108302770a0e08480b4c0a0e08440b480a0e08480b470a0e08490b4a0a0e08460b4c0a0e084c0b560a0e08420b140000006c920000f039fbff3200000000440e30680e08002400000084920000183afbff6100000000410e108302780e18460e204c0e18410e10410a0e08410b14000000ac920000603afbff4a00000000440e4002450e0844000000c4920000983afbff8500000000420e108c02410e188603430e2083044f0a0e18410e10420e08480b650a0e18410e10420e08450b5c0a0e18410e10420e08540b00000000340000000c930000e03afbff7c00000000410e108602410e188303440e20770a0e18410e10410e08410b570a0e18440e10410e08440b00004400000044930000283bfbfff803000000420e108e02420e188c03440e208604410e2883050302030a0e20410e18420e10420e08480b02c40a0e20450e18420e10420e084b0b0000140000008c930000e03efbff0d000000000000000000000014000000a4930000d83efbff0f00000000000000000000004c000000bc930000cf3efbff8909000000420e108f02420e188e03450e208d04420e288c05440e308606410e388307470ed0020385070a0e38440e30410e28420e20420e18420e10420e08410b0000004c0000000c9400000848fbff5709000000420e108f02420e188e03450e208d04420e288c05410e308606410e388307470ec002035d070a0e38440e30410e28420e20420e18420e10420e08410b000000140000005c9400001051fbff3c00000000000000000000001c000000749400003851fbff3800000000410e108302760e08000000000000004c000000949400005851fbffc503000000420e108f02420e188e03450e208d04420e288c05450e308606410e388307440e7003a1030e38410e30410e28420e20460e18420e10420e08000000000000002c000000e4940000d854fbffa111000000440e108602470d065c8f038e048d058c06830703b10b0a0c0708410b0000002c000000149500005866fbffc001000000410e1083024d0e2002b50e28410e305e0e28410e20790a0e10410e08430b004400000044950000e867fbff2a02000000420e108d02420e188c03440e208604410e288305470e4002d60e48410e505e0e48410e40024f0a0e28410e20410e18420e10420e08450b140000008c950000d069fbff0200000000000000000000003c000000a4950000c869fbff1a01000000420e108e02420e188d03420e208c04410e288605410e308306029c0a0e28410e20420e18420e10420e08450b0000004c000000e4950000a86afbff2401000000420e108f02420e188e03450e208d04420e288c05440e308606410e388307490e40027b0a0e38410e30410e28420e20420e18420e10420e08410b00000000004400000034960000886bfbff3e020000004b0e108602450d064d8f038e048d058c068307038401c342cc42cd42ce42cf41c60c0708460c0610830786028c068d058e048f030000002c0000007c960000806dfbffb504000000410e108602430d064d8f038e048d058c0683070307040a0c0708410b00000034000000ac9600001072fbff5403000000410e108602430d06488f038e048d058c064e830702fd0a0c0708490b670a0c0708490b0000000064000000e49600003875fbff72040000004e0e108602430d06488f038e048d058c06488307035b020ac342cc42cd42ce42cf41c60c0708410b0326010ac342cc42cd42ce42cf41c60c0708410b5a0c0708c3c6cccdcecf430c0610830786028c068d058e048f03003c0000004c9700005079fbff6800000000420e108d02420e188c03410e208604410e288305440e3002510a0e28430e20410e18420e10420e08410b00000000002c0000008c9700008079fbff6807000000410e108602430d06508f038e048d058c06830703a8020a0c0708440b00000034000000bc970000c080fbff530200000002490e108c02410e188603410e208304038901c30e1841c60e1042cc0e08490e20830486038c0214000000f4970000e882fbffad0000000000000000000000140000000c9800008083fbffeb000000000000000000000044000000249800005884fbff6900000000480e108d02420e188c03440e208604410e2883054b0e30730e2841c30e2041c60e1842cc0e1042cd0e08450e30830586048c038d0200003c0000006c9800008084fbffc07a000000410e108602430d06488f038e048d058c064483070386020e90014c0e1002800a0c0708410b02ea0e90014c0e10000014000000ac98000000fffbff0700000000000000000000002c000000c4980000f8fefbffdf000000004a0e108302470e2002590a0e1041c30e08450b02480e08c3560e20830200005c000000b48c0000a8fffbffed01000004a0934c00420e108c02410e188603440e208304490e3002460eb0014c0e3002750a0e20440e18410e10420e08420b730eb0014c0e30440a0e20440e18410e10420e08460b02980eb0014c0e3000000024000000549900003801fcff7100000000410e108302790e18460e204c0e18410e10410a0e08410b140000007c9900009001fcff4500000000440e3002400e081400000094990000c801fcff05000000000000000000000014000000ac990000c001fcff2000000000440e10560e08001c000000c4990000c801fcff1a00000000410e108302580e080000000000000024000000e4990000c801fcff5c00000000410e108302490e3002450a0e10440e08450b00000000001c0000000c9a00000002fcff1e00000000410e1083025c0e0800000000000000240000002c9a00000002fcff8400000000410e108302490e60026d0a0e10440e08450b00000000003c000000549a00006802fcffb500000000450e108c02410e188603470e20830402520a0e18410e10420e08460b760a0e18410e10420e08470b000000000000001c000000949a0000e802fcff9c000000004d0e880202860e080000000000000014000000b49a00006803fcff1900000000000000000000007c000000cc9a00007003fcfff801000000420e108e02420e188d03420e208c04410e288605440e3083064c0e900102450a0e30410e28410e20420e18420e10420e08440b026c0e9801420ea001610e9801410e9001024c0a0e30480e28410e20420e18420e10420e08450b740a0e30430e28410e20420e18420e10420e084a0b140000004c9b0000f004fcff5000000000000000000000004c000000649b00002805fcfff701000000420e108d02420e188c03410e208604410e288305470ef001038a010a0e28410e20410e18420e10420e08430b02440a0e28410e20410e18420e10420e08460b14000000b49b0000d806fcff07000000000000000000000024000000cc9b0000d006fcff2f00000000410e108302610e18410e20490e18410e10410e080000002c000000f49b0000d806fcff7802000000410e108602430d06488f038e048d058c0647830702940a0c0708490b00000014000000249c00002809fcffb800000000440e3002b30e08140000003c9c0000d009fcff0d000000000000000000000014000000549c0000c809fcff100000000000000000000000140000006c9c0000c009fcff12000000000000000000000014000000849c0000c809fcff100000000000000000000000140000009c9c0000c009fcff12000000000000000000000014000000b49c0000c809fcff10000000000000000000000014000000cc9c0000c009fcff1200000000000000000000004c000000e49c0000c809fcffbe02000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e5003b0010a0e38440e30410e28420e20420e18420e10420e08450b0000000084000000349d0000380cfcff8d04000000420e108e02420e188d03450e208c04410e288605440e3083064a0e5002710a0e30410e28410e20420e18420e10420e08470b02400a0e30410e28410e20420e18420e10420e08480b640a0e30410e28450e20420e18420e10420e08480b028c0a0e30410e28450e20420e18420e10420e08480b0000000074000000bc9d00004010fcff9b2a000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307470e800303b5010a0e38410e30410e28420e20420e18420e10420e08410b0380120e8803440e9003760e8803410e800303a5030e88034c0e90036a0e8803420e80030000000000000014000000349e0000683afcff0a00000000000000000000004c0000004c9e0000603afcffbe02000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e5003b0010a0e38440e30410e28420e20420e18420e10420e08450b00000000840000009c9e0000d03cfcffad04000000420e108e02420e188d03450e208c04410e288605440e3083064a0e5002740a0e30410e28410e20420e18420e10420e08440b02430a0e30410e28410e20420e18420e10420e08450b640a0e30410e28450e20420e18420e10420e08480b028c0a0e30410e28450e20420e18420e10420e08480b0000000074000000249f0000f840fcff3027000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307470e900903b5010a0e38410e30410e28420e20420e18420e10420e08410b0393120e9809440ea009760e9809410e900903a2030e98094c0ea009690e9809410e900900000000000000140000009c9f0000b067fcff0a00000000000000000000004c000000b49f0000a867fcffc602000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e5003b8010a0e38440e30410e28420e20420e18420e10420e08450b000000008400000004a00000286afcff5b04000000420e108e02420e188d03450e208c04410e288605440e3083064a0e5002700a0e30410e28410e20420e18420e10420e08480b02410a0e30410e28410e20420e18420e10420e08470b620a0e30410e28410e20420e18420e10420e08460b028a0a0e30410e28410e20420e18420e10420e08460b00000000740000008ca00000006efcff9a24000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307470e806d03d3040a0e38410e30410e28420e20420e18420e10420e08410b03190f0e886d440e906d760e886d410e806d036e020e886d4c0e906d690e886d410e806d000000000000001400000004a100002892fcff0a00000000000000000000002c0000001ca100002092fcff7c00000000410e108602410e1883034a0e407c0a0e18410e10410e08410b0000000000002c0000004ca100007092fcffab00000000410e108602410e1883034a0e407c0a0e18410e10410e08410b0000000000002c0000007ca10000f092fcff9900000000410e108602410e1883034a0e407a0a0e18410e10410e08410b00000000000014000000aca100006093fcff24000000000000000000000014000000c4a100007893fcff3a000000000000000000000014000000dca10000a093fcff3f000000000000000000000014000000f4a10000c893fcff3a0000000000000000000000140000000ca20000f093fcff4d00000000000000000000001400000024a2000078bafcff100000000000000000000000140000003ca2000070bafcffb61f000000000000000000001400000054a2000018dafcff100000000000000000000000140000006ca2000010dafcff9619000000000000000000001400000084a20000c893fcff100000000000000000000000140000009ca20000c093fcff36260000000000000000000014000000b4a2000068f3fcff10000000000000000000000014000000cca2000060f3fcff46250000000000000000000014000000e4a200009818fdff43000000000000000000000014000000fca20000d018fdff1400000000000000000000001c00000014a30000d818fdff4701000000440e10025e0a0e08460b02de0e08002c00000034a30000081afdff6c00000000440e106e0a0e08460b460a0e08420b5b0a0e08450b4b0e08000000000000004400000064a30000481afdfff808000000550e108602430d06488f038e048d058c0644830702bec342cc42cd42ce42cf41c60c0708450c0610830786028c068d058e048f0300000014000000aca300000023fdff7800000000000000000000008c000000c4a300006823fdff4406000000780e108f02420e188e03450e208d04420e288c05480e308606410e388307470e7003bf010e08c3c6cccdcecf500e70830786068c058d048e038f0202fd0a0e3841c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08410b620a0e3846c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08470b000000000000004c00000054a400002829fdff2e08000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307470ef00402aa0a0e38410e30410e28420e20420e18420e10420e084b0b000000004c000000a4a400000831fdffde03000000420e108f02420e188e03450e208d04420e288c05460e308606410e388307470ef0020399010a0e38410e30410e28420e20420e18420e10420e08440b0000003c000000f4a400009834fdff7801000000420e108d02420e188c03430e208604410e288305550ec0030354010e28410e20410e18420e10420e080000000000003400000034a50000d835fdff8a00000000410e108602410e1883034a0e20024c0a0e18410e10410e08460b670e18410e10410e08000000004c0000006ca500003036fdffc000000000420e108d02420e188c03440e208604410e2883054a0eb00302820a0e28460e20410e18420e10420e08480b470a0e28460e20410e18420e10420e08410b00004c000000bca50000a036fdffd400000000420e108f02420e188e03420e208d04420e288c05440e308606410e3883074a0ec00302ae0a0e38410e30410e28420e20420e18420e10420e08410b000000002c0000000ca600003037fdffc001000000440e2002f90a0e08430b02460a0e084a0b025e0a0e08410b00000000000000140000003ca60000c038fdff4d00000000440e1002480e081400000054a60000f838fdff0800000000000000000000001c0000006ca60000f038fdff6100000000440e10024c0a0e08480b480e080000140000008ca600004039fdff08000000000000000000000014000000a4a600003839fdff15000000000000000000000014000000bca600004039fdff08000000000000000000000014000000d4a600003839fdff08000000000000000000000014000000eca600003039fdff0800000000000000000000001c00000004a700002839fdff2400000000440e305a0a0e08420b0000000000001400000024a700003839fdff080000000000000000000000140000003ca700003039fdff0800000000000000000000003400000054a700002839fdff0b01000000410e108602410e188303540e900502e30a0e18440e10410e08410b470e18430e10410e08000000140000008ca70000003afdff01000000000000000000000034000000a4a70000f839fdff5101000000410e108602430d06488f038e048d058c064e83078108800902980a0c0708460b0295c60c02080034000000dca70000203bfdffd100000000410e108602430d06488f038e048d058c0645830781085c800902510a0c0708410b024ec60c02082c00000014a80000c83bfdffba00000000410e108602430d064e8f038e048d058c06830781085c80090288c60c0208003400000044a80000583cfdffda00000000410e108602430d064a8f038e048d058c06830781084b800902690a0c0708460b024ec60c020800140000007ca80000003dfdff1a00000000000000000000002c00000094a80000083dfdff9700000000410e108602430d06488f038e048d058c06638307025a0a0c0708470b00000014000000c4a80000783dfdff1b00000000000000000000004c000000dca80000803dfdffc900000000420e108f02420e188e03450e208d04420e288c05440e308606410e3883074b0e6002990a0e38410e30410e28420e20420e18420e10420e08420b0000000000440000002ca90000003efdffa200000000420e108f02420e188e03450e208d04420e288c05440e308606410e3883074b0e50027c0e38410e30410e28420e20420e18420e10420e082c00000074a90000683efdff6700000000440e10660a0e08460b590a0e08470b490a0e08470b460e080000000000000024000000a4a90000a83efdff5900000000440e105f0a0e08450b640a0e08440b480e08000000000024000000cca90000e03efdff5900000000440e105f0a0e08450b640a0e08440b480e0800000000001c000000f4a90000183ffdff4701000000440e10025e0a0e08460b02de0e08003c00000014aa00004840fdff8600000000420e108e02420e188d03450e208c04410e288605440e3083064a0e4002650e30410e28410e20420e18420e10420e083400000054aa00009840fdff1901000000410e108602410e1883034b0e30660a0e18410e10410e084b0b02a00a0e18410e10410e08460b00640000008caa00008041fdff8101000000420e108f02420e188e03420e208d04420e288c05440e308606410e3883074d0e700343010a0e38440e30410e28420e20420e18420e10420e08460b440e38430e30410e28420e20420e18420e10420e080000000000000064000000f4aa0000a842fdff7904000000420e108f02420e188e03420e208d04420e288c05410e308606410e388307440e900103ac010a0e38410e30410e28420e20420e18420e10420e08440b4c0a0e38430e30410e28420e20420e18420e10420e08480b000000340000005cab0000c046fdff9b00000000420e108d02420e188c03440e208604410e2883054e0e40027d0e28410e20410e18420e10420e086c00000094ab00002847fdff51010000004c0e108f02420e188e03450e208d04420e288c05440e308606410e3883074c0e600303010a0e3841c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08450b440e3848c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e080000004c00000004ac00001848fdff3701000000420e108f02420e188e03420e208d04420e288c05440e308606410e3883074d0e600312010e38410e30410e28420e20420e18420e10420e08000000000000006400000054ac00000849fdfff906000000420e108f02420e188e03420e208d04420e288c05440e308606410e388307470e9001027f0a0e38410e30410e28420e20420e18420e10420e08430b03a3030a0e38410e30410e28420e20420e18420e10420e08410b00001c000000bcac0000a04ffdff7b00000000770e10830269c30e080000000000001c000000dcac00000050fdff84000000007c0e10830269c30e0800000000000014000000fcac00007050fdff1500000000000000000000001c00000014ad00007850fdff2a00000000510e10830254c30e080000000000001c00000034ad00008850fdff7300000000700e10830269c30e080000000000001400000054ad0000e850fdff0900000000000000000000001c0000006cad0000e050fdff1e00000000410e108302550e08000000000000003c0000008cad0000e050fdff2301000000450e108c02410e188603410e20830402bc0a0e18410e10420e084a0b660a0e18410e10420e08470b0000000000000014000000ccad0000d051fdff05000000000000000000000014000000e4ad0000c851fdff2500000000540e10490e080044000000fcad0000e051fdfff101000000420e108e02420e188d03450e208c04410e288605440e308306440e6002bd0a0e30410e28410e20420e18420e10420e08410b00000000002c00000044ae00009853fdff6c00000000440e10640a0e08480b460a0e084a0b570a0e08490b470e08000000000000001c00000074ae0000d853fdff4701000000440e10025e0a0e08460b02de0e08005400000094ae00000855fdff58020000005d0e108f02420e188e03450e208d04420e288c05440e308606410e388307440ea0010394010a0e3841c30e3041c60e2842cc0e2042cd0e1842ce0e1042cf0e08430b00000000003c000000ecae00001057fdfff400000000420e108e02420e188d03470e208c04410e288605440e308306470e7002d10e30440e28410e20420e18420e10420e0800000000ffff010f3c6e00008a0305880400d504050000ffff010a7c03e50100e001570000ffff0111ba02c6050000d108039d0b00eb0b050000ffff01109302350000a90303b904008705050000ffff010b950103900200dd02050000ffff010bd80103f50200c303050000ffff010cb803c001ba05008706050000ffff010a7405d30100a002050000ffff010a6f05e30200b003050000ffff010bc501038a0300d703050000, 0xc93af); -Load(0x6c9eb8, 0xc0b96c0000000000c0b96c0000000000e0b96c0000000000c8b96c00000000007009400000000000f0054000000000004009400000000000c005400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0b06c000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f60240000000000006034000000000001603400000000000260340000000000036034000000000004603400000000000560340000000000066034000000000007603400000000000860340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000008144a000000000060c16c0000000000000000000000000000000000000000000000000000000000e0a06c00000000000000000000000000000000000000000000000000000000008620adfb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a36c00000000000200000000000000ffffffffffffffff0000000000000000b0c56c0000000000ffffffffffffffff0000000000000000c0a16c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060204a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000601d4a000000000000000000000000008420adfb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a56c00000000000100000000000000ffffffffffffffff0000000000000000c0c56c0000000000ffffffffffffffff0000000000000000e0a36c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060204a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000601d4a000000000000000000000000008820adfb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000d0c56c0000000000ffffffffffffffff000000000000000000a66c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060204a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000601d4a0000000000e0a06c000000000000a36c000000000020a56c000000000000000000000000000000000000000000ffffffffffffffff0100000000000000030000000000000070f841000000000060f4410000000000b0f2410000000000000000000000000000000000000000000000020000000000000002000000000000000200000000000800000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a86c00000000000000000000000000010000000000000000000000000000000000000000000000c01242000000000000001000000000000000080000000000000010000000000000000800000000000080000000000000004000000000000000800000000000000040000000000000ffffffff0000000065694b000000000065694b00000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000005049470000000000070000007f03000003030000020000000010000000000000e012470000000000a0b16c0000000000010000000000000060b26c000000000001000000000000000100000000000000000000000000000060b26c0000000000010000000000000018b56c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065694b000000000000000000000000000000000000000000000000000000000060b26c00000000000000000000000000e0b66c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0b66c00000000000100000000000000c8c66c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018b56c00000000000000000000000000000000000000000000000000000000000400000000000000b8b56c000000000018b56c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000060b26c0000000000000000000000000065694b000000000000000000000000000100000000000000feffffffffffffff0100000000000000000000000000000000000000000000000000000000000000ad544a000000000008544a000000000001000000ffffff7f18544a000000000000000000000000000000000000000000000000000000000008544a0000000000ad544a000000000001000000ffffff7f28544a0000000000000000000000000000000000000000000000000000000000ad544a000000000038544a000000000001000000ffffff7f42544a000000000000000000000000000000000000000000000000000000000038544a0000000000ad544a000000000001000000ffffff7f54544a0000000000000000000000000000000000000000000000000000000000ad544a000000000066544a000000000001000000ffffff7f76544a000000000000000000000000000000000000000000000000000000000066544a0000000000ad544a000000000001000000ffffff7f86544a000000000000000000000000000000000000000000000000000000000096544a0000000000ad544a000000000001000000ffffff7fa6544a0000000000000000000000000000000000000000000000000000000000ad544a000000000096544a000000000001000000ffffff7fb6544a0000000000000000000000000000000000000000000000000000000000c6544a0000000000ad544a000000000001000000ffffff7fd7544a0000000000000000000000000000000000000000000000000000000000ad544a0000000000c6544a000000000001000000ffffff7fe8544a0000000000000000000000000000000000000000000000000000000000f9544a0000000000ad544a000000000001000000ffffff7f06554a0000000000000000000000000000000000000000000000000000000000ad544a0000000000f9544a000000000001000000ffffff7f1d554a0000000000000000000000000000000000000000000000000000000000206c4a0000000000e0674b0000000000406e4b000000000040774b000000000020664b0000000000a0654b0000000000000000000000000000724b000000000080724b000000000040734b000000000000744b000000000080744b000000000080764b000000000080864a000000000080774a0000000000807d4a0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b0000000000bd4a4b00000000007f03000008000000bf4a4b0000000000bf4a4b000000000090874700000000001087470000000000a086470000000000b089470000000000f07e480000000000507f480000000000907f480000000000108048000000000060ab47000000000030af47000000000040af47000000000040b0470000000000f0b04700000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 0x3550); diff --git a/semantics/run-on-elf.py b/semantics/run-on-elf.py index 199603f1c..0677fe01c 100755 --- a/semantics/run-on-elf.py +++ b/semantics/run-on-elf.py @@ -2,7 +2,7 @@ import xml.etree.ElementTree as et import subprocess, sys, os, shutil, re, signal from collections import defaultdict -from functools import reduce +import functools default_backend = "ocaml" @@ -104,51 +104,14 @@ def delete_old_instructions(): shutil.rmtree(under_test_directory) os.mkdir(under_test_directory) -def read_inum_instruction_map(): - inums = None - instructions = None - with open(os.path.join(decoder_directory, "generator", "datafiles", "inums.txt"), "r") as f: - inums = [int(line) for line in f.readlines()] - with open(os.path.join(decoder_directory, "generator", "datafiles", "instructions.s"), "r") as f: - instructions = f.readlines() - assert len(inums) == len(instructions) - multimap = defaultdict(list) - for (inum, inst) in zip(inums, instructions): - multimap[inum].append(inst.strip()) - return multimap +def inum_file_pair_from_line(line): + split = line.split("|") + assert len(split) == 3 + return (int(split[2]), split[0]) def get_instructions_from_inums(inums): - inum_instruction_map = read_inum_instruction_map() - return sorted(list(reduce(lambda s1, s2: s1.union(s2), map(lambda inum: set(inum_instruction_map[inum]), inums)))) - - -def flatten(lst): - ret = [] - for l in lst: - ret.extend(l) - return ret - -def find_instructions(): - return sorted(flatten(map(lambda directory: [os.path.join(directory, name) for name in os.listdir(os.path.join(semantics_directory, instruction_directory_prefix, directory))], instruction_directories)), key=lambda x: os.path.basename(x)) - -# needed_names is of the form addb_r8_r8 ... available is of the form registerInstructions/addb_r8_r8.k. Need to match these up. -# It's important that both of these are sorted by the file name (aka the basename) so we can match efficiently. -def match_names(needed_names, available_names): - ret = [] - still_available_names = available_names - for needed in needed_names: - found = False - for i in range(len(still_available_names)): - available_name = still_available_names[i] - if available_name.find(needed) > -1: - ret.append(available_name) - still_available_names = still_available_names[i:] - found = True - break - if not found: - print("Could not find {0} in\n[{1}]".format(needed, ",\n".join(still_available_names)), file=sys.stderr) - assert False - return ret + with open(os.path.join(decoder_directory, "generator", "datafiles", "full-map.txt"), "r") as f: + return list(map(lambda pair: pair[1], filter(lambda pair: pair[0] in inums, map(inum_file_pair_from_line, f.readlines())))) def copy_instructions(full_names): for name in full_names: @@ -167,7 +130,7 @@ def make_single_file_definition(full_names): imports X86-FLAG-CHECKS-SYNTAX """ - epilogue = "endmodule" + epilogue = "endmodule" with open(single_file_definition, "w") as out_f: print(prologue, file=out_f) for name in full_names: @@ -179,10 +142,11 @@ def make_single_file_definition(full_names): def regenerate_semantics(inums): + assert len(inums) > 0 delete_old_instructions() - needed_names = get_instructions_from_inums(inums) - available_names = find_instructions() - full_names = match_names(needed_names, available_names) + full_names = get_instructions_from_inums(inums) + print(full_names) + assert len(full_names) > 0 copy_instructions(full_names) # This step is actually not necessary (we create the single file definition without using the copied files), but it's useful for debugging. make_single_file_definition(full_names) diff --git a/semantics/systemInstructions/jecxz_rel32.k b/semantics/systemInstructions/jecxz_rel32.k deleted file mode 100644 index cf80e86ad..000000000 --- a/semantics/systemInstructions/jecxz_rel32.k +++ /dev/null @@ -1,20 +0,0 @@ -requires "x86-configuration.k" - - -module JECXZ-REL32 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jecxz Imm32:Imm, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) - - requires eqMInt(getRegisterValue(%ecx, RSMap), mi(32, 0)) - - rule - execinstr (jecxz Imm32:Imm, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt(getRegisterValue(%ecx, RSMap), mi(32, 0)) -endmodule diff --git a/semantics/systemInstructions/jrcxz_rel32.k b/semantics/systemInstructions/jrcxz_rel32.k deleted file mode 100644 index 21dd19c8b..000000000 --- a/semantics/systemInstructions/jrcxz_rel32.k +++ /dev/null @@ -1,20 +0,0 @@ -requires "x86-configuration.k" - - -module JRCXZ-REL32 - imports X86-CONFIGURATION - imports X86-FLAG-CHECS-SYNTAX - - rule - execinstr (jrcxz Imm32:Imm, .Operands) => . - ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) - - requires eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) - - rule - execinstr (jrcxz Imm32:Imm, .Operands) => . - ... - RSMap:Map - requires notBool eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) -endmodule From b3fb4fa4190b56d58730f2ebf7de6ac7833aaf59 Mon Sep 17 00:00:00 2001 From: andrew_miranti Date: Sat, 23 Feb 2019 23:13:08 -0600 Subject: [PATCH 10/15] New test case found issue with rel operands --- semantics/run-on-elf.py | 2 +- semantics/test.c | 44 +++++++++++++++++++---------------------- 2 files changed, 21 insertions(+), 25 deletions(-) diff --git a/semantics/run-on-elf.py b/semantics/run-on-elf.py index 0677fe01c..4d4528aea 100755 --- a/semantics/run-on-elf.py +++ b/semantics/run-on-elf.py @@ -171,7 +171,7 @@ def invoke_kompile(backend): def invoke_krun(elf_file, extra_args): - command = ["time", "krun", "--parser", parser_script, elf_file] + command = ["time", "krun", "-o", "none", "--parser", parser_script, elf_file] command.extend(extra_args) krun_process = subprocess.Popen(command, stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr, cwd=definition_directory) await_process_or_interrupt("KRun", krun_process) diff --git a/semantics/test.c b/semantics/test.c index 7de787ad9..6fe0ec8c0 100644 --- a/semantics/test.c +++ b/semantics/test.c @@ -1,30 +1,26 @@ #include #include -int main() { - const int sz = 5; - int * a = (int*)malloc(sz*sizeof(int)); - for (int i = 0; i < sz; ++i) { - a[i] = i; - } - int * b = (int*)malloc(sz*sizeof(int)); - for (int i = 0; i < sz; ++i) { - b[i] = i; - } - for (int i = 0; i < sz; ++i) { - printf("%d\n", a[i]); - } - for (int i = 0; i < sz; ++i) { - printf("%d\n", b[i]); - } - free(a); - a = (int*)malloc(2*sz*sizeof(int)); - for (int i = 0; i < 2*sz; ++i) { - a[i] = 10*i; +size_t fib(const int n) { + if (n == 0) { + return 0; + } else if (n == 1) { + return 1; + } else { + size_t nums[n + 1]; + nums[0] = 0; + nums[1] = 1; + for (int i = 2; i <= n; ++i) { + nums[i] = nums[i - 1] + nums[i - 2]; + } + return nums[n]; } - for (int i = 0; i < sz; ++i) { - printf("%d\n", a[i]); +} + +const int elems[] = {0, 1, 5, 10, 20, 40}; + +int main() { + for (int i = 0; i < sizeof(elems) / sizeof(int); ++i) { + printf("%d: %lu\n", elems[i], fib(elems[i])); } - free(a); - free(b); } From a3bef8f91d8aaae01c863d35dae54588e1a6ae09 Mon Sep 17 00:00:00 2001 From: Sandeep Dasgupta Date: Mon, 25 Feb 2019 14:55:39 -0600 Subject: [PATCH 11/15] Convert Immediate operand from Int or hexconstant to MInt --- docs/z3_artifcats/array2.z3 | 11 ++++ docs/z3_artifcats/datatypes.z3 | 7 +++ .../immediateInstructions/adcb_al_imm8.k | 17 ++--- .../immediateInstructions/adcb_r8_imm8.k | 17 ++--- .../immediateInstructions/adcb_rh_imm8.k | 17 ++--- .../immediateInstructions/adcl_eax_imm32.k | 17 ++--- .../immediateInstructions/adcl_r32_imm32.k | 17 ++--- .../immediateInstructions/adcl_r32_imm8.k | 17 ++--- .../immediateInstructions/adcq_r64_imm32.k | 17 ++--- .../immediateInstructions/adcq_r64_imm8.k | 17 ++--- .../immediateInstructions/adcq_rax_imm32.k | 17 ++--- .../immediateInstructions/adcw_ax_imm16.k | 17 ++--- .../immediateInstructions/adcw_r16_imm16.k | 17 ++--- .../immediateInstructions/adcw_r16_imm8.k | 17 ++--- .../immediateInstructions/addb_al_imm8.k | 17 ++--- .../immediateInstructions/addb_r8_imm8.k | 17 ++--- .../immediateInstructions/addb_rh_imm8.k | 17 ++--- .../immediateInstructions/addl_eax_imm32.k | 17 ++--- .../immediateInstructions/addl_r32_imm32.k | 17 ++--- .../immediateInstructions/addl_r32_imm8.k | 17 ++--- .../immediateInstructions/addq_r64_imm32.k | 17 ++--- .../immediateInstructions/addq_r64_imm8.k | 17 ++--- .../immediateInstructions/addq_rax_imm32.k | 17 ++--- .../immediateInstructions/addw_ax_imm16.k | 17 ++--- .../immediateInstructions/addw_r16_imm16.k | 17 ++--- .../immediateInstructions/addw_r16_imm8.k | 17 ++--- .../immediateInstructions/andb_al_imm8.k | 11 ++-- .../immediateInstructions/andb_r8_imm8.k | 11 ++-- .../immediateInstructions/andb_rh_imm8.k | 11 ++-- .../immediateInstructions/andl_eax_imm32.k | 11 ++-- .../immediateInstructions/andl_r32_imm32.k | 11 ++-- .../immediateInstructions/andl_r32_imm8.k | 11 ++-- .../immediateInstructions/andq_r64_imm32.k | 11 ++-- .../immediateInstructions/andq_r64_imm8.k | 11 ++-- .../immediateInstructions/andq_rax_imm32.k | 11 ++-- .../immediateInstructions/andw_ax_imm16.k | 11 ++-- .../immediateInstructions/andw_r16_imm16.k | 11 ++-- .../immediateInstructions/andw_r16_imm8.k | 11 ++-- .../blendpd_xmm_xmm_imm8.k | 5 +- .../blendps_xmm_xmm_imm8.k | 5 +- .../immediateInstructions/btcl_r32_imm8.k | 7 ++- .../immediateInstructions/btcq_r64_imm8.k | 7 ++- .../immediateInstructions/btcw_r16_imm8.k | 7 ++- .../immediateInstructions/btl_r32_imm8.k | 5 +- .../immediateInstructions/btq_r64_imm8.k | 5 +- .../immediateInstructions/btrl_r32_imm8.k | 7 ++- .../immediateInstructions/btrq_r64_imm8.k | 7 ++- .../immediateInstructions/btrw_r16_imm8.k | 7 ++- .../immediateInstructions/btsl_r32_imm8.k | 7 ++- .../immediateInstructions/btsq_r64_imm8.k | 7 ++- .../immediateInstructions/btsw_r16_imm8.k | 7 ++- .../immediateInstructions/btw_r16_imm8.k | 5 +- .../immediateInstructions/cmpb_al_imm8.k | 15 ++--- .../immediateInstructions/cmpb_r8_imm8.k | 15 ++--- .../immediateInstructions/cmpb_rh_imm8.k | 15 ++--- .../immediateInstructions/cmpl_eax_imm32.k | 15 ++--- .../immediateInstructions/cmpl_r32_imm32.k | 15 ++--- .../immediateInstructions/cmpl_r32_imm8.k | 15 ++--- .../cmppd_xmm_xmm_imm8.k | 5 +- .../cmpps_xmm_xmm_imm8.k | 5 +- .../immediateInstructions/cmpq_r64_imm32.k | 15 ++--- .../immediateInstructions/cmpq_r64_imm8.k | 15 ++--- .../immediateInstructions/cmpq_rax_imm32.k | 15 ++--- .../cmpsd_xmm_xmm_imm8.k | 5 +- .../cmpss_xmm_xmm_imm8.k | 5 +- .../immediateInstructions/cmpw_ax_imm16.k | 15 ++--- .../immediateInstructions/cmpw_r16_imm16.k | 15 ++--- .../immediateInstructions/cmpw_r16_imm8.k | 15 ++--- .../immediateInstructions/dppd_xmm_xmm_imm8.k | 5 +- .../immediateInstructions/dpps_xmm_xmm_imm8.k | 5 +- .../extractps_r32_xmm_imm8.k | 5 +- .../extractps_r64_xmm_imm8.k | 5 +- .../imull_r32_r32_imm32.k | 9 +-- .../imull_r32_r32_imm8.k | 9 +-- .../imulq_r64_r64_imm32.k | 9 +-- .../imulq_r64_r64_imm8.k | 9 +-- .../imulw_r16_r16_imm16.k | 9 +-- .../imulw_r16_r16_imm8.k | 9 +-- .../insertps_xmm_xmm_imm8.k | 5 +- .../immediateInstructions/movb_r8_imm8.k | 5 +- .../immediateInstructions/movb_rh_imm8.k | 5 +- .../immediateInstructions/movl_r32_imm32.k | 5 +- .../immediateInstructions/movq_r64_imm32.k | 5 +- .../immediateInstructions/movq_r64_imm64.k | 5 +- .../immediateInstructions/movw_r16_imm16.k | 5 +- .../mpsadbw_xmm_xmm_imm8.k | 33 +++++----- semantics/immediateInstructions/orb_al_imm8.k | 11 ++-- semantics/immediateInstructions/orb_r8_imm8.k | 11 ++-- semantics/immediateInstructions/orb_rh_imm8.k | 11 ++-- .../immediateInstructions/orl_eax_imm32.k | 11 ++-- .../immediateInstructions/orl_r32_imm32.k | 11 ++-- .../immediateInstructions/orl_r32_imm8.k | 11 ++-- .../immediateInstructions/orq_r64_imm32.k | 11 ++-- .../immediateInstructions/orq_r64_imm8.k | 11 ++-- .../immediateInstructions/orq_rax_imm32.k | 11 ++-- .../immediateInstructions/orw_ax_imm16.k | 11 ++-- .../immediateInstructions/orw_r16_imm16.k | 11 ++-- .../immediateInstructions/orw_r16_imm8.k | 11 ++-- .../palignr_xmm_xmm_imm8.k | 5 +- .../pblendw_xmm_xmm_imm8.k | 5 +- .../pclmulqdq_xmm_xmm_imm8.k | 9 ++- .../pcmpestri_xmm_xmm_imm8.k | 9 +-- .../pcmpestrm_xmm_xmm_imm8.k | 9 +-- .../pcmpistri_xmm_xmm_imm8.k | 9 +-- .../pcmpistrm_xmm_xmm_imm8.k | 9 +-- .../pextrb_r32_xmm_imm8.k | 5 +- .../pextrb_r64_xmm_imm8.k | 5 +- .../pextrd_r32_xmm_imm8.k | 5 +- .../pextrq_r64_xmm_imm8.k | 5 +- .../pextrw_r32_xmm_imm8.k | 5 +- .../pextrw_r64_xmm_imm8.k | 5 +- .../pinsrb_xmm_r32_imm8.k | 5 +- .../pinsrd_xmm_r32_imm8.k | 5 +- .../pinsrq_xmm_r64_imm8.k | 5 +- .../pinsrw_xmm_r32_imm8.k | 5 +- .../pshufd_xmm_xmm_imm8.k | 5 +- .../pshufhw_xmm_xmm_imm8.k | 5 +- .../pshuflw_xmm_xmm_imm8.k | 5 +- .../immediateInstructions/pslld_xmm_imm8.k | 5 +- .../immediateInstructions/pslldq_xmm_imm8.k | 5 +- .../immediateInstructions/psllq_xmm_imm8.k | 5 +- .../immediateInstructions/psllw_xmm_imm8.k | 5 +- .../immediateInstructions/psrad_xmm_imm8.k | 5 +- .../immediateInstructions/psraw_xmm_imm8.k | 5 +- .../immediateInstructions/psrld_xmm_imm8.k | 5 +- .../immediateInstructions/psrldq_xmm_imm8.k | 5 +- .../immediateInstructions/psrlq_xmm_imm8.k | 5 +- .../immediateInstructions/psrlw_xmm_imm8.k | 5 +- semantics/immediateInstructions/pushq_imm32.k | 5 +- .../immediateInstructions/rclb_r8_imm8.k | 9 +-- .../immediateInstructions/rclb_rh_imm8.k | 9 +-- .../immediateInstructions/rcll_r32_imm8.k | 9 +-- .../immediateInstructions/rclq_r64_imm8.k | 9 +-- .../immediateInstructions/rclw_r16_imm8.k | 9 +-- .../immediateInstructions/rcrb_r8_imm8.k | 9 +-- .../immediateInstructions/rcrb_rh_imm8.k | 9 +-- .../immediateInstructions/rcrl_r32_imm8.k | 9 +-- .../immediateInstructions/rcrq_r64_imm8.k | 9 +-- .../immediateInstructions/rcrw_r16_imm8.k | 9 +-- .../immediateInstructions/rolb_r8_imm8.k | 9 +-- .../immediateInstructions/rolb_rh_imm8.k | 9 +-- .../immediateInstructions/roll_r32_imm8.k | 9 +-- .../immediateInstructions/rolq_r64_imm8.k | 9 +-- .../immediateInstructions/rolw_r16_imm8.k | 9 +-- .../immediateInstructions/rorb_r8_imm8.k | 9 +-- .../immediateInstructions/rorb_rh_imm8.k | 9 +-- .../immediateInstructions/rorl_r32_imm8.k | 9 +-- .../immediateInstructions/rorq_r64_imm8.k | 9 +-- .../immediateInstructions/rorw_r16_imm8.k | 9 +-- .../rorxl_r32_r32_imm8.k | 7 ++- .../rorxq_r64_r64_imm8.k | 7 ++- .../roundpd_xmm_xmm_imm8.k | 5 +- .../roundps_xmm_xmm_imm8.k | 5 +- .../roundsd_xmm_xmm_imm8.k | 5 +- .../roundss_xmm_xmm_imm8.k | 5 +- .../immediateInstructions/salb_r8_imm8.k | 17 ++--- .../immediateInstructions/salb_rh_imm8.k | 17 ++--- .../immediateInstructions/sall_r32_imm8.k | 17 ++--- .../immediateInstructions/salq_r64_imm8.k | 17 ++--- .../immediateInstructions/salw_r16_imm8.k | 17 ++--- .../immediateInstructions/sarb_r8_imm8.k | 17 ++--- .../immediateInstructions/sarb_rh_imm8.k | 17 ++--- .../immediateInstructions/sarl_r32_imm8.k | 17 ++--- .../immediateInstructions/sarq_r64_imm8.k | 17 ++--- .../immediateInstructions/sarw_r16_imm8.k | 17 ++--- .../immediateInstructions/sbbb_al_imm8.k | 17 ++--- .../immediateInstructions/sbbb_r8_imm8.k | 17 ++--- .../immediateInstructions/sbbb_rh_imm8.k | 17 ++--- .../immediateInstructions/sbbl_eax_imm32.k | 17 ++--- .../immediateInstructions/sbbl_r32_imm32.k | 17 ++--- .../immediateInstructions/sbbl_r32_imm8.k | 17 ++--- .../immediateInstructions/sbbq_r64_imm32.k | 17 ++--- .../immediateInstructions/sbbq_r64_imm8.k | 17 ++--- .../immediateInstructions/sbbq_rax_imm32.k | 17 ++--- .../immediateInstructions/sbbw_ax_imm16.k | 17 ++--- .../immediateInstructions/sbbw_r16_imm16.k | 17 ++--- .../immediateInstructions/sbbw_r16_imm8.k | 17 ++--- .../immediateInstructions/shlb_r8_imm8.k | 17 ++--- .../immediateInstructions/shlb_rh_imm8.k | 17 ++--- .../shldl_r32_r32_imm8.k | 5 +- .../shldq_r64_r64_imm8.k | 5 +- .../shldw_r16_r16_imm8.k | 5 +- .../immediateInstructions/shll_r32_imm8.k | 17 ++--- .../immediateInstructions/shlq_r64_imm8.k | 17 ++--- .../immediateInstructions/shlw_r16_imm8.k | 17 ++--- .../immediateInstructions/shrb_r8_imm8.k | 17 ++--- .../immediateInstructions/shrb_rh_imm8.k | 17 ++--- .../shrdl_r32_r32_imm8.k | 5 +- .../shrdq_r64_r64_imm8.k | 5 +- .../shrdw_r16_r16_imm8.k | 5 +- .../immediateInstructions/shrl_r32_imm8.k | 17 ++--- .../immediateInstructions/shrq_r64_imm8.k | 17 ++--- .../immediateInstructions/shrw_r16_imm8.k | 17 ++--- .../shufpd_xmm_xmm_imm8.k | 5 +- .../shufps_xmm_xmm_imm8.k | 5 +- .../immediateInstructions/subb_al_imm8.k | 17 ++--- .../immediateInstructions/subb_r8_imm8.k | 17 ++--- .../immediateInstructions/subb_rh_imm8.k | 17 ++--- .../immediateInstructions/subl_eax_imm32.k | 17 ++--- .../immediateInstructions/subl_r32_imm32.k | 17 ++--- .../immediateInstructions/subl_r32_imm8.k | 17 ++--- .../immediateInstructions/subq_r64_imm32.k | 17 ++--- .../immediateInstructions/subq_r64_imm8.k | 17 ++--- .../immediateInstructions/subq_rax_imm32.k | 17 ++--- .../immediateInstructions/subw_ax_imm16.k | 17 ++--- .../immediateInstructions/subw_r16_imm16.k | 17 ++--- .../immediateInstructions/subw_r16_imm8.k | 17 ++--- .../immediateInstructions/testb_al_imm8.k | 9 +-- .../immediateInstructions/testb_r8_imm8.k | 9 +-- .../immediateInstructions/testb_rh_imm8.k | 9 +-- .../immediateInstructions/testl_eax_imm32.k | 9 +-- .../immediateInstructions/testl_r32_imm32.k | 9 +-- .../immediateInstructions/testq_r64_imm32.k | 9 +-- .../immediateInstructions/testq_rax_imm32.k | 9 +-- .../immediateInstructions/testw_ax_imm16.k | 9 +-- .../immediateInstructions/testw_r16_imm16.k | 9 +-- .../vblendpd_xmm_xmm_xmm_imm8.k | 5 +- .../vblendpd_ymm_ymm_ymm_imm8.k | 5 +- .../vblendps_xmm_xmm_xmm_imm8.k | 5 +- .../vblendps_ymm_ymm_ymm_imm8.k | 5 +- .../vcmppd_xmm_xmm_xmm_imm8.k | 5 +- .../vcmppd_ymm_ymm_ymm_imm8.k | 5 +- .../vcmpps_xmm_xmm_xmm_imm8.k | 5 +- .../vcmpps_ymm_ymm_ymm_imm8.k | 5 +- .../vcmpsd_xmm_xmm_xmm_imm8.k | 5 +- .../vcmpss_xmm_xmm_xmm_imm8.k | 5 +- .../vcvtps2ph_xmm_xmm_imm8.k | 5 +- .../vcvtps2ph_xmm_ymm_imm8.k | 5 +- .../vdppd_xmm_xmm_xmm_imm8.k | 5 +- .../vdpps_xmm_xmm_xmm_imm8.k | 5 +- .../vdpps_ymm_ymm_ymm_imm8.k | 5 +- .../vextractf128_xmm_ymm_imm8.k | 5 +- .../vextracti128_xmm_ymm_imm8.k | 5 +- .../vextractps_r32_xmm_imm8.k | 5 +- .../vinsertf128_ymm_ymm_xmm_imm8.k | 5 +- .../vinserti128_ymm_ymm_xmm_imm8.k | 5 +- .../vinsertps_xmm_xmm_xmm_imm8.k | 5 +- .../vmpsadbw_xmm_xmm_xmm_imm8.k | 33 +++++----- .../vmpsadbw_ymm_ymm_ymm_imm8.k | 63 ++++++++++--------- .../vpalignr_xmm_xmm_xmm_imm8.k | 5 +- .../vpalignr_ymm_ymm_ymm_imm8.k | 5 +- .../vpblendd_xmm_xmm_xmm_imm8.k | 5 +- .../vpblendd_ymm_ymm_ymm_imm8.k | 5 +- .../vpblendw_xmm_xmm_xmm_imm8.k | 5 +- .../vpblendw_ymm_ymm_ymm_imm8.k | 5 +- .../vpclmulqdq_xmm_xmm_xmm_imm8.k | 9 ++- .../vpcmpestri_xmm_xmm_imm8.k | 9 +-- .../vpcmpestrm_xmm_xmm_imm8.k | 9 +-- .../vpcmpistri_xmm_xmm_imm8.k | 9 +-- .../vpcmpistrm_xmm_xmm_imm8.k | 9 +-- .../vperm2f128_ymm_ymm_ymm_imm8.k | 5 +- .../vperm2i128_ymm_ymm_ymm_imm8.k | 5 +- .../vpermilpd_xmm_xmm_imm8.k | 5 +- .../vpermilpd_ymm_ymm_imm8.k | 5 +- .../vpermilps_xmm_xmm_imm8.k | 5 +- .../vpermilps_ymm_ymm_imm8.k | 5 +- .../vpermpd_ymm_ymm_imm8.k | 5 +- .../vpermq_ymm_ymm_imm8.k | 5 +- .../vpextrb_r32_xmm_imm8.k | 5 +- .../vpextrb_r64_xmm_imm8.k | 5 +- .../vpextrd_r32_xmm_imm8.k | 5 +- .../vpextrq_r64_xmm_imm8.k | 5 +- .../vpextrw_r32_xmm_imm8.k | 5 +- .../vpextrw_r64_xmm_imm8.k | 5 +- .../vpinsrb_xmm_xmm_r32_imm8.k | 5 +- .../vpinsrd_xmm_xmm_r32_imm8.k | 5 +- .../vpinsrq_xmm_xmm_r64_imm8.k | 5 +- .../vpinsrw_xmm_xmm_r32_imm8.k | 5 +- .../vpshufd_xmm_xmm_imm8.k | 5 +- .../vpshufd_ymm_ymm_imm8.k | 5 +- .../vpshufhw_xmm_xmm_imm8.k | 5 +- .../vpshufhw_ymm_ymm_imm8.k | 5 +- .../vpshuflw_xmm_xmm_imm8.k | 5 +- .../vpshuflw_ymm_ymm_imm8.k | 5 +- .../vpslld_xmm_xmm_imm8.k | 5 +- .../vpslld_ymm_ymm_imm8.k | 5 +- .../vpslldq_xmm_xmm_imm8.k | 5 +- .../vpslldq_ymm_ymm_imm8.k | 5 +- .../vpsllq_xmm_xmm_imm8.k | 5 +- .../vpsllq_ymm_ymm_imm8.k | 5 +- .../vpsllw_xmm_xmm_imm8.k | 5 +- .../vpsllw_ymm_ymm_imm8.k | 5 +- .../vpsrad_xmm_xmm_imm8.k | 5 +- .../vpsrad_ymm_ymm_imm8.k | 5 +- .../vpsraw_xmm_xmm_imm8.k | 5 +- .../vpsraw_ymm_ymm_imm8.k | 5 +- .../vpsrld_xmm_xmm_imm8.k | 5 +- .../vpsrld_ymm_ymm_imm8.k | 5 +- .../vpsrldq_xmm_xmm_imm8.k | 5 +- .../vpsrldq_ymm_ymm_imm8.k | 5 +- .../vpsrlq_xmm_xmm_imm8.k | 5 +- .../vpsrlq_ymm_ymm_imm8.k | 5 +- .../vpsrlw_xmm_xmm_imm8.k | 5 +- .../vpsrlw_ymm_ymm_imm8.k | 5 +- .../vroundpd_xmm_xmm_imm8.k | 5 +- .../vroundpd_ymm_ymm_imm8.k | 5 +- .../vroundps_xmm_xmm_imm8.k | 5 +- .../vroundps_ymm_ymm_imm8.k | 5 +- .../vroundsd_xmm_xmm_xmm_imm8.k | 5 +- .../vroundss_xmm_xmm_xmm_imm8.k | 5 +- .../vshufpd_xmm_xmm_xmm_imm8.k | 5 +- .../vshufpd_ymm_ymm_ymm_imm8.k | 5 +- .../vshufps_xmm_xmm_xmm_imm8.k | 5 +- .../vshufps_ymm_ymm_ymm_imm8.k | 5 +- .../immediateInstructions/xorb_al_imm8.k | 11 ++-- .../immediateInstructions/xorb_r8_imm8.k | 11 ++-- .../immediateInstructions/xorb_rh_imm8.k | 11 ++-- .../immediateInstructions/xorl_eax_imm32.k | 11 ++-- .../immediateInstructions/xorl_r32_imm32.k | 11 ++-- .../immediateInstructions/xorl_r32_imm8.k | 11 ++-- .../immediateInstructions/xorq_r64_imm32.k | 11 ++-- .../immediateInstructions/xorq_r64_imm8.k | 11 ++-- .../immediateInstructions/xorq_rax_imm32.k | 11 ++-- .../immediateInstructions/xorw_ax_imm16.k | 11 ++-- .../immediateInstructions/xorw_r16_imm16.k | 11 ++-- .../immediateInstructions/xorw_r16_imm8.k | 11 ++-- semantics/memoryInstructions/adcb_m8_imm8.k | 22 ++++--- semantics/memoryInstructions/adcl_m32_imm32.k | 22 ++++--- semantics/memoryInstructions/adcl_m32_imm8.k | 22 ++++--- semantics/memoryInstructions/adcq_m64_imm32.k | 22 ++++--- semantics/memoryInstructions/adcq_m64_imm8.k | 22 ++++--- semantics/memoryInstructions/adcw_m16_imm16.k | 22 ++++--- semantics/memoryInstructions/adcw_m16_imm8.k | 22 ++++--- semantics/memoryInstructions/addb_m8_imm8.k | 22 ++++--- semantics/memoryInstructions/addl_m32_imm32.k | 22 ++++--- semantics/memoryInstructions/addl_m32_imm8.k | 22 ++++--- semantics/memoryInstructions/addq_m64_imm32.k | 22 ++++--- semantics/memoryInstructions/addq_m64_imm8.k | 22 ++++--- semantics/memoryInstructions/addw_m16_imm16.k | 22 ++++--- semantics/memoryInstructions/addw_m16_imm8.k | 22 ++++--- semantics/memoryInstructions/andb_m8_imm8.k | 16 ++--- semantics/memoryInstructions/andl_m32_imm32.k | 16 ++--- semantics/memoryInstructions/andl_m32_imm8.k | 16 ++--- semantics/memoryInstructions/andq_m64_imm32.k | 16 ++--- semantics/memoryInstructions/andq_m64_imm8.k | 16 ++--- semantics/memoryInstructions/andw_m16_imm16.k | 16 ++--- semantics/memoryInstructions/andw_m16_imm8.k | 16 ++--- .../blendpd_xmm_m128_imm8.k | 10 +-- .../blendps_xmm_m128_imm8.k | 10 +-- semantics/memoryInstructions/btcl_m32_imm8.k | 16 ++--- semantics/memoryInstructions/btcq_m64_imm8.k | 16 ++--- semantics/memoryInstructions/btcw_m16_imm8.k | 16 ++--- semantics/memoryInstructions/btl_m32_imm8.k | 12 ++-- semantics/memoryInstructions/btq_m64_imm8.k | 12 ++-- semantics/memoryInstructions/btrl_m32_imm8.k | 16 ++--- semantics/memoryInstructions/btrq_m64_imm8.k | 16 ++--- semantics/memoryInstructions/btrw_m16_imm8.k | 16 ++--- semantics/memoryInstructions/btsl_m32_imm8.k | 16 ++--- semantics/memoryInstructions/btsq_m64_imm8.k | 16 ++--- semantics/memoryInstructions/btsw_m16_imm8.k | 16 ++--- semantics/memoryInstructions/btw_m16_imm8.k | 12 ++-- semantics/memoryInstructions/cmpb_m8_imm8.k | 20 +++--- semantics/memoryInstructions/cmpl_m32_imm32.k | 20 +++--- semantics/memoryInstructions/cmpl_m32_imm8.k | 20 +++--- .../memoryInstructions/cmppd_xmm_m128_imm8.k | 10 +-- .../memoryInstructions/cmpps_xmm_m128_imm8.k | 10 +-- semantics/memoryInstructions/cmpq_m64_imm32.k | 20 +++--- semantics/memoryInstructions/cmpq_m64_imm8.k | 20 +++--- .../memoryInstructions/cmpsd_xmm_m64_imm8.k | 10 +-- .../memoryInstructions/cmpss_xmm_m32_imm8.k | 10 +-- semantics/memoryInstructions/cmpw_m16_imm16.k | 20 +++--- semantics/memoryInstructions/cmpw_m16_imm8.k | 20 +++--- .../memoryInstructions/dppd_xmm_m128_imm8.k | 10 +-- .../memoryInstructions/dpps_xmm_m128_imm8.k | 10 +-- .../extractps_m32_xmm_imm8.k | 10 +-- .../memoryInstructions/imull_r32_m32_imm32.k | 14 +++-- .../memoryInstructions/imull_r32_m32_imm8.k | 14 +++-- .../memoryInstructions/imulq_r64_m64_imm32.k | 14 +++-- .../memoryInstructions/imulq_r64_m64_imm8.k | 14 +++-- .../memoryInstructions/imulw_r16_m16_imm16.k | 14 +++-- .../memoryInstructions/imulw_r16_m16_imm8.k | 14 +++-- .../insertps_xmm_m32_imm8.k | 10 +-- semantics/memoryInstructions/movb_m8_imm8.k | 7 ++- semantics/memoryInstructions/movl_m32_imm32.k | 7 ++- semantics/memoryInstructions/movq_m64_imm32.k | 7 ++- semantics/memoryInstructions/movw_m16_imm16.k | 7 ++- .../mpsadbw_xmm_m128_imm8.k | 33 +++++----- semantics/memoryInstructions/orb_m8_imm8.k | 16 ++--- semantics/memoryInstructions/orl_m32_imm32.k | 16 ++--- semantics/memoryInstructions/orl_m32_imm8.k | 16 ++--- semantics/memoryInstructions/orq_m64_imm32.k | 16 ++--- semantics/memoryInstructions/orq_m64_imm8.k | 16 ++--- semantics/memoryInstructions/orw_m16_imm16.k | 16 ++--- semantics/memoryInstructions/orw_m16_imm8.k | 16 ++--- .../palignr_xmm_m128_imm8.k | 10 +-- .../pblendw_xmm_m128_imm8.k | 10 +-- .../pclmulqdq_xmm_m128_imm8.k | 9 ++- .../pcmpestri_xmm_m128_imm8.k | 15 ++--- .../pcmpestrm_xmm_m128_imm8.k | 13 ++-- .../pcmpistri_xmm_m128_imm8.k | 15 ++--- .../pcmpistrm_xmm_m128_imm8.k | 14 +++-- .../memoryInstructions/pextrb_m8_xmm_imm8.k | 10 +-- .../memoryInstructions/pextrd_m32_xmm_imm8.k | 10 +-- .../memoryInstructions/pextrq_m64_xmm_imm8.k | 10 +-- .../memoryInstructions/pextrw_m16_xmm_imm8.k | 10 +-- .../memoryInstructions/pinsrb_xmm_m8_imm8.k | 10 +-- .../memoryInstructions/pinsrd_xmm_m32_imm8.k | 10 +-- .../memoryInstructions/pinsrq_xmm_m64_imm8.k | 10 +-- .../memoryInstructions/pinsrw_xmm_m16_imm8.k | 10 +-- .../memoryInstructions/pshufd_xmm_m128_imm8.k | 10 +-- .../pshufhw_xmm_m128_imm8.k | 10 +-- .../pshuflw_xmm_m128_imm8.k | 10 +-- semantics/memoryInstructions/rclb_m8_imm8.k | 14 +++-- semantics/memoryInstructions/rcll_m32_imm8.k | 14 +++-- semantics/memoryInstructions/rclq_m64_imm8.k | 14 +++-- semantics/memoryInstructions/rclw_m16_imm8.k | 14 +++-- semantics/memoryInstructions/rcrb_m8_imm8.k | 14 +++-- semantics/memoryInstructions/rcrl_m32_imm8.k | 14 +++-- semantics/memoryInstructions/rcrq_m64_imm8.k | 14 +++-- semantics/memoryInstructions/rcrw_m16_imm8.k | 14 +++-- semantics/memoryInstructions/rolb_m8_imm8.k | 14 +++-- semantics/memoryInstructions/roll_m32_imm8.k | 14 +++-- semantics/memoryInstructions/rolq_m64_imm8.k | 14 +++-- semantics/memoryInstructions/rolw_m16_imm8.k | 14 +++-- semantics/memoryInstructions/rorb_m8_imm8.k | 14 +++-- semantics/memoryInstructions/rorl_m32_imm8.k | 14 +++-- semantics/memoryInstructions/rorq_m64_imm8.k | 14 +++-- semantics/memoryInstructions/rorw_m16_imm8.k | 14 +++-- .../memoryInstructions/rorxl_r32_m32_imm8.k | 12 ++-- .../memoryInstructions/rorxq_r64_m64_imm8.k | 12 ++-- .../roundpd_xmm_m128_imm8.k | 10 +-- .../roundps_xmm_m128_imm8.k | 10 +-- .../memoryInstructions/roundsd_xmm_m64_imm8.k | 10 +-- .../memoryInstructions/roundss_xmm_m32_imm8.k | 10 +-- semantics/memoryInstructions/salb_m8_imm8.k | 22 ++++--- semantics/memoryInstructions/sall_m32_imm8.k | 22 ++++--- semantics/memoryInstructions/salq_m64_imm8.k | 22 ++++--- semantics/memoryInstructions/salw_m16_imm8.k | 22 ++++--- semantics/memoryInstructions/sarb_m8_imm8.k | 22 ++++--- semantics/memoryInstructions/sarl_m32_imm8.k | 22 ++++--- semantics/memoryInstructions/sarq_m64_imm8.k | 22 ++++--- semantics/memoryInstructions/sarw_m16_imm8.k | 22 ++++--- semantics/memoryInstructions/sbbb_m8_imm8.k | 22 ++++--- semantics/memoryInstructions/sbbl_m32_imm32.k | 22 ++++--- semantics/memoryInstructions/sbbl_m32_imm8.k | 22 ++++--- semantics/memoryInstructions/sbbq_m64_imm32.k | 22 ++++--- semantics/memoryInstructions/sbbq_m64_imm8.k | 22 ++++--- semantics/memoryInstructions/sbbw_m16_imm16.k | 22 ++++--- semantics/memoryInstructions/sbbw_m16_imm8.k | 22 ++++--- semantics/memoryInstructions/shlb_m8_imm8.k | 22 ++++--- .../memoryInstructions/shldl_m32_r32_imm8.k | 12 ++-- .../memoryInstructions/shldq_m64_r64_imm8.k | 12 ++-- .../memoryInstructions/shldw_m16_r16_imm8.k | 12 ++-- semantics/memoryInstructions/shll_m32_imm8.k | 22 ++++--- semantics/memoryInstructions/shlq_m64_imm8.k | 22 ++++--- semantics/memoryInstructions/shlw_m16_imm8.k | 22 ++++--- semantics/memoryInstructions/shrb_m8_imm8.k | 22 ++++--- .../memoryInstructions/shrdl_m32_r32_imm8.k | 12 ++-- .../memoryInstructions/shrdq_m64_r64_imm8.k | 12 ++-- .../memoryInstructions/shrdw_m16_r16_imm8.k | 12 ++-- semantics/memoryInstructions/shrl_m32_imm8.k | 22 ++++--- semantics/memoryInstructions/shrq_m64_imm8.k | 22 ++++--- semantics/memoryInstructions/shrw_m16_imm8.k | 22 ++++--- .../memoryInstructions/shufpd_xmm_m128_imm8.k | 10 +-- .../memoryInstructions/shufps_xmm_m128_imm8.k | 10 +-- semantics/memoryInstructions/subb_m8_imm8.k | 22 ++++--- semantics/memoryInstructions/subl_m32_imm32.k | 22 ++++--- semantics/memoryInstructions/subl_m32_imm8.k | 22 ++++--- semantics/memoryInstructions/subq_m64_imm32.k | 22 ++++--- semantics/memoryInstructions/subq_m64_imm8.k | 22 ++++--- semantics/memoryInstructions/subw_m16_imm16.k | 22 ++++--- semantics/memoryInstructions/subw_m16_imm8.k | 22 ++++--- semantics/memoryInstructions/testb_m8_imm8.k | 14 +++-- .../memoryInstructions/testl_m32_imm32.k | 14 +++-- .../memoryInstructions/testq_m64_imm32.k | 14 +++-- .../memoryInstructions/testw_m16_imm16.k | 14 +++-- .../vblendpd_xmm_xmm_m128_imm8.k | 10 +-- .../vblendpd_ymm_ymm_m256_imm8.k | 10 +-- .../vblendps_xmm_xmm_m128_imm8.k | 10 +-- .../vblendps_ymm_ymm_m256_imm8.k | 10 +-- .../vcmppd_xmm_xmm_m128_imm8.k | 10 +-- .../vcmppd_ymm_ymm_m256_imm8.k | 10 +-- .../vcmpps_xmm_xmm_m128_imm8.k | 10 +-- .../vcmpps_ymm_ymm_m256_imm8.k | 10 +-- .../vcmpsd_xmm_xmm_m64_imm8.k | 10 +-- .../vcmpss_xmm_xmm_m32_imm8.k | 10 +-- .../vcvtps2ph_m128_ymm_imm8.k | 10 +-- .../vcvtps2ph_m64_xmm_imm8.k | 10 +-- .../vdppd_xmm_xmm_m128_imm8.k | 10 +-- .../vdpps_xmm_xmm_m128_imm8.k | 10 +-- .../vdpps_ymm_ymm_m256_imm8.k | 10 +-- .../vextractf128_m128_ymm_imm8.k | 10 +-- .../vextracti128_m128_ymm_imm8.k | 10 +-- .../vextractps_m32_xmm_imm8.k | 10 +-- .../vinsertf128_ymm_ymm_m128_imm8.k | 10 +-- .../vinserti128_ymm_ymm_m128_imm8.k | 10 +-- .../vinsertps_xmm_xmm_m32_imm8.k | 10 +-- .../vmpsadbw_xmm_xmm_m128_imm8.k | 33 +++++----- .../vmpsadbw_ymm_ymm_m256_imm8.k | 63 ++++++++++--------- .../vpalignr_xmm_xmm_m128_imm8.k | 10 +-- .../vpalignr_ymm_ymm_m256_imm8.k | 10 +-- .../vpblendd_xmm_xmm_m128_imm8.k | 10 +-- .../vpblendd_ymm_ymm_m256_imm8.k | 10 +-- .../vpblendw_xmm_xmm_m128_imm8.k | 10 +-- .../vpblendw_ymm_ymm_m256_imm8.k | 10 +-- .../vpclmulqdq_xmm_xmm_m128_imm8.k | 9 ++- .../vpcmpestri_xmm_m128_imm8.k | 15 ++--- .../vpcmpestrm_xmm_m128_imm8.k | 13 ++-- .../vpcmpistri_xmm_m128_imm8.k | 15 ++--- .../vpcmpistrm_xmm_m128_imm8.k | 14 +++-- .../vperm2f128_ymm_ymm_m256_imm8.k | 10 +-- .../vperm2i128_ymm_ymm_m256_imm8.k | 10 +-- .../vpermilpd_xmm_m128_imm8.k | 10 +-- .../vpermilpd_ymm_m256_imm8.k | 10 +-- .../vpermilps_xmm_m128_imm8.k | 10 +-- .../vpermilps_ymm_m256_imm8.k | 10 +-- .../vpermpd_ymm_m256_imm8.k | 10 +-- .../memoryInstructions/vpermq_ymm_m256_imm8.k | 10 +-- .../memoryInstructions/vpextrb_m8_xmm_imm8.k | 10 +-- .../memoryInstructions/vpextrd_m32_xmm_imm8.k | 10 +-- .../memoryInstructions/vpextrq_m64_xmm_imm8.k | 10 +-- .../memoryInstructions/vpextrw_m16_xmm_imm8.k | 10 +-- .../vpinsrb_xmm_xmm_m8_imm8.k | 10 +-- .../vpinsrd_xmm_xmm_m32_imm8.k | 10 +-- .../vpinsrq_xmm_xmm_m64_imm8.k | 10 +-- .../vpinsrw_xmm_xmm_m16_imm8.k | 10 +-- .../vpshufd_xmm_m128_imm8.k | 10 +-- .../vpshufd_ymm_m256_imm8.k | 10 +-- .../vpshufhw_xmm_m128_imm8.k | 10 +-- .../vpshufhw_ymm_m256_imm8.k | 10 +-- .../vpshuflw_xmm_m128_imm8.k | 10 +-- .../vpshuflw_ymm_m256_imm8.k | 10 +-- .../vroundpd_xmm_m128_imm8.k | 10 +-- .../vroundpd_ymm_m256_imm8.k | 10 +-- .../vroundps_xmm_m128_imm8.k | 10 +-- .../vroundps_ymm_m256_imm8.k | 10 +-- .../vroundsd_xmm_xmm_m64_imm8.k | 10 +-- .../vroundss_xmm_xmm_m32_imm8.k | 10 +-- .../vshufpd_xmm_xmm_m128_imm8.k | 10 +-- .../vshufpd_ymm_ymm_m256_imm8.k | 10 +-- .../vshufps_xmm_xmm_m128_imm8.k | 10 +-- .../vshufps_ymm_ymm_m256_imm8.k | 10 +-- semantics/memoryInstructions/xorb_m8_imm8.k | 16 ++--- semantics/memoryInstructions/xorl_m32_imm32.k | 16 ++--- semantics/memoryInstructions/xorl_m32_imm8.k | 16 ++--- semantics/memoryInstructions/xorq_m64_imm32.k | 16 ++--- semantics/memoryInstructions/xorq_m64_imm8.k | 16 ++--- semantics/memoryInstructions/xorw_m16_imm16.k | 16 ++--- semantics/memoryInstructions/xorw_m16_imm8.k | 16 ++--- semantics/registerInstructions/pushq_imm32.k | 22 ------- semantics/registerInstructions/roll_r32_one.k | 39 +++++------- semantics/systemInstructions/callq_rel32.k | 12 ++-- semantics/systemInstructions/ja_rel32.k | 13 +++- semantics/systemInstructions/ja_rel8.k | 17 ++--- semantics/systemInstructions/jae_rel32.k | 12 ++-- semantics/systemInstructions/jae_rel8.k | 12 ++-- semantics/systemInstructions/jb_rel32.k | 12 ++-- semantics/systemInstructions/jb_rel8.k | 12 ++-- semantics/systemInstructions/jbe_rel32.k | 16 ++--- semantics/systemInstructions/jbe_rel8.k | 16 ++--- semantics/systemInstructions/jc_rel32.k | 12 ++-- semantics/systemInstructions/jc_rel8.k | 12 ++-- semantics/systemInstructions/je_rel32.k | 12 ++-- semantics/systemInstructions/je_rel8.k | 12 ++-- semantics/systemInstructions/jecxz_rel8.k | 12 ++-- semantics/systemInstructions/jg_rel32.k | 16 ++--- semantics/systemInstructions/jg_rel8.k | 16 ++--- semantics/systemInstructions/jge_rel32.k | 12 ++-- semantics/systemInstructions/jge_rel8.k | 12 ++-- semantics/systemInstructions/jl_rel32.k | 12 ++-- semantics/systemInstructions/jl_rel8.k | 12 ++-- semantics/systemInstructions/jle_rel32.k | 16 ++--- semantics/systemInstructions/jle_rel8.k | 16 ++--- semantics/systemInstructions/jmp_rel32.k | 5 +- semantics/systemInstructions/jmp_rel8.k | 5 +- semantics/systemInstructions/jna_rel32.k | 14 +++-- semantics/systemInstructions/jna_rel8.k | 14 +++-- semantics/systemInstructions/jnae_rel32.k | 12 ++-- semantics/systemInstructions/jnae_rel8.k | 12 ++-- semantics/systemInstructions/jnb_rel32.k | 12 ++-- semantics/systemInstructions/jnb_rel8.k | 12 ++-- semantics/systemInstructions/jnbe_rel32.k | 16 ++--- semantics/systemInstructions/jnbe_rel8.k | 16 ++--- semantics/systemInstructions/jnc_rel32.k | 12 ++-- semantics/systemInstructions/jnc_rel8.k | 12 ++-- semantics/systemInstructions/jne_rel32.k | 12 ++-- semantics/systemInstructions/jne_rel8.k | 12 ++-- semantics/systemInstructions/jng_rel32.k | 12 ++-- semantics/systemInstructions/jng_rel8.k | 12 ++-- semantics/systemInstructions/jnge_rel32.k | 12 ++-- semantics/systemInstructions/jnge_rel8.k | 12 ++-- semantics/systemInstructions/jnl_rel32.k | 12 ++-- semantics/systemInstructions/jnl_rel8.k | 12 ++-- semantics/systemInstructions/jnle_rel32.k | 12 ++-- semantics/systemInstructions/jnle_rel8.k | 12 ++-- semantics/systemInstructions/jno_rel32.k | 12 ++-- semantics/systemInstructions/jno_rel8.k | 12 ++-- semantics/systemInstructions/jnp_rel32.k | 12 ++-- semantics/systemInstructions/jnp_rel8.k | 12 ++-- semantics/systemInstructions/jns_rel32.k | 12 ++-- semantics/systemInstructions/jns_rel8.k | 12 ++-- semantics/systemInstructions/jnz_rel32.k | 12 ++-- semantics/systemInstructions/jnz_rel8.k | 12 ++-- semantics/systemInstructions/jo_rel32.k | 12 ++-- semantics/systemInstructions/jo_rel8.k | 12 ++-- semantics/systemInstructions/jp_rel32.k | 12 ++-- semantics/systemInstructions/jp_rel8.k | 12 ++-- semantics/systemInstructions/jpe_rel32.k | 12 ++-- semantics/systemInstructions/jpe_rel8.k | 12 ++-- semantics/systemInstructions/jpo_rel32.k | 12 ++-- semantics/systemInstructions/jpo_rel8.k | 12 ++-- semantics/systemInstructions/jrcxz_rel8.k | 12 ++-- semantics/systemInstructions/js_rel32.k | 12 ++-- semantics/systemInstructions/js_rel8.k | 12 ++-- semantics/systemInstructions/jz_rel32.k | 12 ++-- semantics/systemInstructions/jz_rel8.k | 12 ++-- semantics/systemInstructions/loop_rel8.k | 15 +++-- semantics/systemInstructions/loope_rel8.k | 19 +++--- semantics/systemInstructions/loopne_rel8.k | 19 +++--- semantics/systemInstructions/loopnz_rel8.k | 19 +++--- semantics/systemInstructions/loopz_rel8.k | 19 +++--- 611 files changed, 4069 insertions(+), 3200 deletions(-) create mode 100644 docs/z3_artifcats/array2.z3 create mode 100644 docs/z3_artifcats/datatypes.z3 delete mode 100644 semantics/registerInstructions/pushq_imm32.k diff --git a/docs/z3_artifcats/array2.z3 b/docs/z3_artifcats/array2.z3 new file mode 100644 index 000000000..ce19c7f46 --- /dev/null +++ b/docs/z3_artifcats/array2.z3 @@ -0,0 +1,11 @@ +(declare-const x Int) +(declare-const y Int) +(declare-const z Int) +(declare-const a1 (Array Int Int)) +(declare-const a2 (Array Int Int)) +(declare-const a3 (Array Int Int)) +(assert (= (select a1 x) x)) +(assert (= (store a1 x y) a1)) +(assert (not (= x y))) +(check-sat) +(get-model) diff --git a/docs/z3_artifcats/datatypes.z3 b/docs/z3_artifcats/datatypes.z3 new file mode 100644 index 000000000..2792deac9 --- /dev/null +++ b/docs/z3_artifcats/datatypes.z3 @@ -0,0 +1,7 @@ +(declare-datatypes (T1 T2) ((Pair (mk-pair (first T1) (second T2))))) +(declare-const p1 (Pair Int Int)) +(declare-const p2 (Pair Int Int)) +(assert (= p1 p2)) +(assert (> (second p1) 20)) +(check-sat) +(get-model) diff --git a/semantics/immediateInstructions/adcb_al_imm8.k b/semantics/immediateInstructions/adcb_al_imm8.k index 28521ea90..d1db6c394 100644 --- a/semantics/immediateInstructions/adcb_al_imm8.k +++ b/semantics/immediateInstructions/adcb_al_imm8.k @@ -5,26 +5,27 @@ module ADCB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (adcb Imm8:Imm, %al, .Operands) => . + execinstr (adcb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9)) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/adcb_r8_imm8.k b/semantics/immediateInstructions/adcb_r8_imm8.k index 0eeaf0432..f65368f92 100644 --- a/semantics/immediateInstructions/adcb_r8_imm8.k +++ b/semantics/immediateInstructions/adcb_r8_imm8.k @@ -5,26 +5,27 @@ module ADCB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (adcb Imm8:Imm, R2:R8, .Operands) => . + execinstr (adcb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/adcb_rh_imm8.k b/semantics/immediateInstructions/adcb_rh_imm8.k index a025b0120..f8b919377 100644 --- a/semantics/immediateInstructions/adcb_rh_imm8.k +++ b/semantics/immediateInstructions/adcb_rh_imm8.k @@ -5,26 +5,27 @@ module ADCB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (adcb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (adcb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/adcl_eax_imm32.k b/semantics/immediateInstructions/adcl_eax_imm32.k index b117c8ec5..86f4bcd28 100644 --- a/semantics/immediateInstructions/adcl_eax_imm32.k +++ b/semantics/immediateInstructions/adcl_eax_imm32.k @@ -5,26 +5,27 @@ module ADCL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (adcl Imm32:Imm, %eax, .Operands) => . + execinstr (adcl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33)) +"RAX" |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/adcl_r32_imm32.k b/semantics/immediateInstructions/adcl_r32_imm32.k index 14427f729..c9255bd51 100644 --- a/semantics/immediateInstructions/adcl_r32_imm32.k +++ b/semantics/immediateInstructions/adcl_r32_imm32.k @@ -5,26 +5,27 @@ module ADCL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (adcl Imm32:Imm, R2:R32, .Operands) => . + execinstr (adcl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/adcl_r32_imm8.k b/semantics/immediateInstructions/adcl_r32_imm8.k index 5e6491637..c499ab214 100644 --- a/semantics/immediateInstructions/adcl_r32_imm8.k +++ b/semantics/immediateInstructions/adcl_r32_imm8.k @@ -5,26 +5,27 @@ module ADCL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (adcl Imm8:Imm, R2:R32, .Operands) => . + execinstr (adcl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/adcq_r64_imm32.k b/semantics/immediateInstructions/adcq_r64_imm32.k index 26791db3c..03716b33c 100644 --- a/semantics/immediateInstructions/adcq_r64_imm32.k +++ b/semantics/immediateInstructions/adcq_r64_imm32.k @@ -5,26 +5,27 @@ module ADCQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (adcq Imm32:Imm, R2:R64, .Operands) => . + execinstr (adcq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) +convToRegKeys(R2) |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/adcq_r64_imm8.k b/semantics/immediateInstructions/adcq_r64_imm8.k index e7163a91a..75584ef82 100644 --- a/semantics/immediateInstructions/adcq_r64_imm8.k +++ b/semantics/immediateInstructions/adcq_r64_imm8.k @@ -5,26 +5,27 @@ module ADCQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (adcq Imm8:Imm, R2:R64, .Operands) => . + execinstr (adcq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) +convToRegKeys(R2) |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/adcq_rax_imm32.k b/semantics/immediateInstructions/adcq_rax_imm32.k index 606ca2b44..b289e48e7 100644 --- a/semantics/immediateInstructions/adcq_rax_imm32.k +++ b/semantics/immediateInstructions/adcq_rax_imm32.k @@ -5,26 +5,27 @@ module ADCQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (adcq Imm32:Imm, %rax, .Operands) => . + execinstr (adcq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65) +"RAX" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/adcw_ax_imm16.k b/semantics/immediateInstructions/adcw_ax_imm16.k index a0769e94b..5afbf0b28 100644 --- a/semantics/immediateInstructions/adcw_ax_imm16.k +++ b/semantics/immediateInstructions/adcw_ax_imm16.k @@ -5,26 +5,27 @@ module ADCW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (adcw Imm16:Imm, %ax, .Operands) => . + execinstr (adcw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17)) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/adcw_r16_imm16.k b/semantics/immediateInstructions/adcw_r16_imm16.k index 4b27cbf13..0af492233 100644 --- a/semantics/immediateInstructions/adcw_r16_imm16.k +++ b/semantics/immediateInstructions/adcw_r16_imm16.k @@ -5,26 +5,27 @@ module ADCW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (adcw Imm16:Imm, R2:R16, .Operands) => . + execinstr (adcw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/adcw_r16_imm8.k b/semantics/immediateInstructions/adcw_r16_imm8.k index 15a937d48..78e8a17b6 100644 --- a/semantics/immediateInstructions/adcw_r16_imm8.k +++ b/semantics/immediateInstructions/adcw_r16_imm8.k @@ -5,26 +5,27 @@ module ADCW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (adcw Imm8:Imm, R2:R16, .Operands) => . + execinstr (adcw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/addb_al_imm8.k b/semantics/immediateInstructions/addb_al_imm8.k index 98c0a035b..1c5345128 100644 --- a/semantics/immediateInstructions/addb_al_imm8.k +++ b/semantics/immediateInstructions/addb_al_imm8.k @@ -5,26 +5,27 @@ module ADDB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (addb Imm8:Imm, %al, .Operands) => . + execinstr (addb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9)) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/addb_r8_imm8.k b/semantics/immediateInstructions/addb_r8_imm8.k index 5dc756dbc..d20c14542 100644 --- a/semantics/immediateInstructions/addb_r8_imm8.k +++ b/semantics/immediateInstructions/addb_r8_imm8.k @@ -5,26 +5,27 @@ module ADDB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (addb Imm8:Imm, R2:R8, .Operands) => . + execinstr (addb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/addb_rh_imm8.k b/semantics/immediateInstructions/addb_rh_imm8.k index df381909c..61d7e62bc 100644 --- a/semantics/immediateInstructions/addb_rh_imm8.k +++ b/semantics/immediateInstructions/addb_rh_imm8.k @@ -5,26 +5,27 @@ module ADDB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (addb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (addb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/addl_eax_imm32.k b/semantics/immediateInstructions/addl_eax_imm32.k index 92f764010..9a9fdcc44 100644 --- a/semantics/immediateInstructions/addl_eax_imm32.k +++ b/semantics/immediateInstructions/addl_eax_imm32.k @@ -5,26 +5,27 @@ module ADDL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (addl Imm32:Imm, %eax, .Operands) => . + execinstr (addl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33)) +"RAX" |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/addl_r32_imm32.k b/semantics/immediateInstructions/addl_r32_imm32.k index 7856f4492..082cee38a 100644 --- a/semantics/immediateInstructions/addl_r32_imm32.k +++ b/semantics/immediateInstructions/addl_r32_imm32.k @@ -5,26 +5,27 @@ module ADDL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (addl Imm32:Imm, R2:R32, .Operands) => . + execinstr (addl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/addl_r32_imm8.k b/semantics/immediateInstructions/addl_r32_imm8.k index ea74935d9..5bbbebbbf 100644 --- a/semantics/immediateInstructions/addl_r32_imm8.k +++ b/semantics/immediateInstructions/addl_r32_imm8.k @@ -5,26 +5,27 @@ module ADDL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (addl Imm8:Imm, R2:R32, .Operands) => . + execinstr (addl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/addq_r64_imm32.k b/semantics/immediateInstructions/addq_r64_imm32.k index 4b5e64bfd..b70848610 100644 --- a/semantics/immediateInstructions/addq_r64_imm32.k +++ b/semantics/immediateInstructions/addq_r64_imm32.k @@ -5,26 +5,27 @@ module ADDQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (addq Imm32:Imm, R2:R64, .Operands) => . + execinstr (addq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) +convToRegKeys(R2) |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/addq_r64_imm8.k b/semantics/immediateInstructions/addq_r64_imm8.k index 6face7fbc..ee3e1fd81 100644 --- a/semantics/immediateInstructions/addq_r64_imm8.k +++ b/semantics/immediateInstructions/addq_r64_imm8.k @@ -5,26 +5,27 @@ module ADDQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (addq Imm8:Imm, R2:R64, .Operands) => . + execinstr (addq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) +convToRegKeys(R2) |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/addq_rax_imm32.k b/semantics/immediateInstructions/addq_rax_imm32.k index 6366ad150..dd4acff82 100644 --- a/semantics/immediateInstructions/addq_rax_imm32.k +++ b/semantics/immediateInstructions/addq_rax_imm32.k @@ -5,26 +5,27 @@ module ADDQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (addq Imm32:Imm, %rax, .Operands) => . + execinstr (addq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65) +"RAX" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/addw_ax_imm16.k b/semantics/immediateInstructions/addw_ax_imm16.k index ca187db86..4c5d171dc 100644 --- a/semantics/immediateInstructions/addw_ax_imm16.k +++ b/semantics/immediateInstructions/addw_ax_imm16.k @@ -5,26 +5,27 @@ module ADDW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (addw Imm16:Imm, %ax, .Operands) => . + execinstr (addw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17)) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/addw_r16_imm16.k b/semantics/immediateInstructions/addw_r16_imm16.k index f053830ea..fa58fed71 100644 --- a/semantics/immediateInstructions/addw_r16_imm16.k +++ b/semantics/immediateInstructions/addw_r16_imm16.k @@ -5,26 +5,27 @@ module ADDW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (addw Imm16:Imm, R2:R16, .Operands) => . + execinstr (addw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/addw_r16_imm8.k b/semantics/immediateInstructions/addw_r16_imm8.k index b88f7bb9b..7fa5d5e06 100644 --- a/semantics/immediateInstructions/addw_r16_imm8.k +++ b/semantics/immediateInstructions/addw_r16_imm8.k @@ -5,26 +5,27 @@ module ADDW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (addw Imm8:Imm, R2:R16, .Operands) => . + execinstr (addw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/andb_al_imm8.k b/semantics/immediateInstructions/andb_al_imm8.k index 3767e3011..fd3ad2eaa 100644 --- a/semantics/immediateInstructions/andb_al_imm8.k +++ b/semantics/immediateInstructions/andb_al_imm8.k @@ -5,26 +5,27 @@ module ANDB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (andb Imm8:Imm, %al, .Operands) => . + execinstr (andb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8))) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), Imm8)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/andb_r8_imm8.k b/semantics/immediateInstructions/andb_r8_imm8.k index 7e490cbd1..c7a0b6542 100644 --- a/semantics/immediateInstructions/andb_r8_imm8.k +++ b/semantics/immediateInstructions/andb_r8_imm8.k @@ -5,26 +5,27 @@ module ANDB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (andb Imm8:Imm, R2:R8, .Operands) => . + execinstr (andb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), andMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), andMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), Imm8)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/andb_rh_imm8.k b/semantics/immediateInstructions/andb_rh_imm8.k index 849ae23ba..d2312eaa2 100644 --- a/semantics/immediateInstructions/andb_rh_imm8.k +++ b/semantics/immediateInstructions/andb_rh_imm8.k @@ -5,26 +5,27 @@ module ANDB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (andb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (andb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), andMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), handleImmediateWithSignExtend(Imm8, 8, 8))), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), andMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), Imm8)), extractMInt( getParentValue(R2, RSMap), 56, 64)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 55, 56), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 54, 55), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 53, 54), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 52, 53), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 51, 52), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 50, 51), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 49, 50), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 55, 56), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 54, 55), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 53, 54), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 52, 53), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 51, 52), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 50, 51), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 49, 50), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/andl_eax_imm32.k b/semantics/immediateInstructions/andl_eax_imm32.k index 6575f6520..575bc8deb 100644 --- a/semantics/immediateInstructions/andl_eax_imm32.k +++ b/semantics/immediateInstructions/andl_eax_imm32.k @@ -5,26 +5,27 @@ module ANDL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (andl Imm32:Imm, %eax, .Operands) => . + execinstr (andl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32))) +"RAX" |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), Imm32)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/andl_r32_imm32.k b/semantics/immediateInstructions/andl_r32_imm32.k index e8689d3ce..9357a7cb6 100644 --- a/semantics/immediateInstructions/andl_r32_imm32.k +++ b/semantics/immediateInstructions/andl_r32_imm32.k @@ -5,26 +5,27 @@ module ANDL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (andl Imm32:Imm, R2:R32, .Operands) => . + execinstr (andl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), Imm32)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/andl_r32_imm8.k b/semantics/immediateInstructions/andl_r32_imm8.k index 126b2ae1f..0ba6528e3 100644 --- a/semantics/immediateInstructions/andl_r32_imm8.k +++ b/semantics/immediateInstructions/andl_r32_imm8.k @@ -5,26 +5,27 @@ module ANDL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (andl Imm8:Imm, R2:R32, .Operands) => . + execinstr (andl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(Imm8)))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(Imm8))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/andq_r64_imm32.k b/semantics/immediateInstructions/andq_r64_imm32.k index a366e4f75..bcabce0fd 100644 --- a/semantics/immediateInstructions/andq_r64_imm32.k +++ b/semantics/immediateInstructions/andq_r64_imm32.k @@ -5,26 +5,27 @@ module ANDQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (andq Imm32:Imm, R2:R64, .Operands) => . + execinstr (andq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) +convToRegKeys(R2) |-> andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm32))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/andq_r64_imm8.k b/semantics/immediateInstructions/andq_r64_imm8.k index aeb6a0d69..17c477e89 100644 --- a/semantics/immediateInstructions/andq_r64_imm8.k +++ b/semantics/immediateInstructions/andq_r64_imm8.k @@ -5,26 +5,27 @@ module ANDQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (andq Imm8:Imm, R2:R64, .Operands) => . + execinstr (andq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R2) |-> andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm8))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm8))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/andq_rax_imm32.k b/semantics/immediateInstructions/andq_rax_imm32.k index 004e0ca3a..03856141e 100644 --- a/semantics/immediateInstructions/andq_rax_imm32.k +++ b/semantics/immediateInstructions/andq_rax_imm32.k @@ -5,26 +5,27 @@ module ANDQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (andq Imm32:Imm, %rax, .Operands) => . + execinstr (andq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> andMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) +"RAX" |-> andMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(Imm32))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/andw_ax_imm16.k b/semantics/immediateInstructions/andw_ax_imm16.k index 57abcd076..23e3b7981 100644 --- a/semantics/immediateInstructions/andw_ax_imm16.k +++ b/semantics/immediateInstructions/andw_ax_imm16.k @@ -5,26 +5,27 @@ module ANDW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (andw Imm16:Imm, %ax, .Operands) => . + execinstr (andw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16))) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), Imm16)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/andw_r16_imm16.k b/semantics/immediateInstructions/andw_r16_imm16.k index e84db6e52..932520799 100644 --- a/semantics/immediateInstructions/andw_r16_imm16.k +++ b/semantics/immediateInstructions/andw_r16_imm16.k @@ -5,26 +5,27 @@ module ANDW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (andw Imm16:Imm, R2:R16, .Operands) => . + execinstr (andw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), Imm16)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/andw_r16_imm8.k b/semantics/immediateInstructions/andw_r16_imm8.k index 5438e4046..291b09534 100644 --- a/semantics/immediateInstructions/andw_r16_imm8.k +++ b/semantics/immediateInstructions/andw_r16_imm8.k @@ -5,26 +5,27 @@ module ANDW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (andw Imm8:Imm, R2:R16, .Operands) => . + execinstr (andw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(Imm8)))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(Imm8))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/blendpd_xmm_xmm_imm8.k b/semantics/immediateInstructions/blendpd_xmm_xmm_imm8.k index e9ebce867..718ab1618 100644 --- a/semantics/immediateInstructions/blendpd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/blendpd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module BLENDPD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (blendpd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (blendpd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/blendps_xmm_xmm_imm8.k b/semantics/immediateInstructions/blendps_xmm_xmm_imm8.k index cbc2a8235..190d4481b 100644 --- a/semantics/immediateInstructions/blendps_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/blendps_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module BLENDPS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (blendps Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (blendps Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btcl_r32_imm8.k b/semantics/immediateInstructions/btcl_r32_imm8.k index 7994b200a..33479f647 100644 --- a/semantics/immediateInstructions/btcl_r32_imm8.k +++ b/semantics/immediateInstructions/btcl_r32_imm8.k @@ -5,13 +5,13 @@ module BTCL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (btcl Imm8:Imm, R2:R32, .Operands) => . + execinstr (btcl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), shiftLeftMInt( mi(32, 1), uvalueMInt(mi(32, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))))))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), shiftLeftMInt( mi(32, 1), uvalueMInt(mi(32, svalueMInt(andMInt( Imm8, mi(8, 31)))))))) -"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(mi(32, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))))), 31, 32) +"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(mi(32, svalueMInt(andMInt( Imm8, mi(8, 31)))))), 31, 32) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParen ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btcq_r64_imm8.k b/semantics/immediateInstructions/btcq_r64_imm8.k index 6c7a97b5e..ac7ac1d96 100644 --- a/semantics/immediateInstructions/btcq_r64_imm8.k +++ b/semantics/immediateInstructions/btcq_r64_imm8.k @@ -5,13 +5,13 @@ module BTCQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (btcq Imm8:Imm, R2:R64, .Operands) => . + execinstr (btcq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> xorMInt( getParentValue(R2, RSMap), shiftLeftMInt( mi(64, 1), uvalueMInt(mi(64, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))))) +convToRegKeys(R2) |-> xorMInt( getParentValue(R2, RSMap), shiftLeftMInt( mi(64, 1), uvalueMInt(mi(64, svalueMInt(andMInt( Imm8, mi(8, 63))))))) -"CF" |-> extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(mi(64, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))))), 63, 64) +"CF" |-> extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(mi(64, svalueMInt(andMInt( Imm8, mi(8, 63)))))), 63, 64) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> xorMInt( getParentValue(R2, RSMap), shiftLeftMInt( mi(64, ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btcw_r16_imm8.k b/semantics/immediateInstructions/btcw_r16_imm8.k index b817247be..433f69826 100644 --- a/semantics/immediateInstructions/btcw_r16_imm8.k +++ b/semantics/immediateInstructions/btcw_r16_imm8.k @@ -5,13 +5,13 @@ module BTCW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (btcw Imm8:Imm, R2:R16, .Operands) => . + execinstr (btcw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), shiftLeftMInt( mi(16, 1), uvalueMInt(mi(16, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)))))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), shiftLeftMInt( mi(16, 1), uvalueMInt(mi(16, svalueMInt(andMInt( Imm8, mi(8, 15)))))))) -"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(mi(16, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)))))), 15, 16) +"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(mi(16, svalueMInt(andMInt( Imm8, mi(8, 15)))))), 15, 16) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0 ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btl_r32_imm8.k b/semantics/immediateInstructions/btl_r32_imm8.k index 5b3ef7855..f93177366 100644 --- a/semantics/immediateInstructions/btl_r32_imm8.k +++ b/semantics/immediateInstructions/btl_r32_imm8.k @@ -5,11 +5,11 @@ module BTL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (btl Imm8:Imm, R2:R32, .Operands) => . + execinstr (btl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(mi(32, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))))), 31, 32) +"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(mi(32, svalueMInt(andMInt( Imm8, mi(8, 31)))))), 31, 32) "PF" |-> (undefMInt) @@ -21,6 +21,7 @@ RSMap:Map => updateMap(RSMap, ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btq_r64_imm8.k b/semantics/immediateInstructions/btq_r64_imm8.k index 490d355c5..3faba1fc7 100644 --- a/semantics/immediateInstructions/btq_r64_imm8.k +++ b/semantics/immediateInstructions/btq_r64_imm8.k @@ -5,11 +5,11 @@ module BTQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (btq Imm8:Imm, R2:R64, .Operands) => . + execinstr (btq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(mi(64, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))))), 63, 64) +"CF" |-> extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(mi(64, svalueMInt(andMInt( Imm8, mi(8, 63)))))), 63, 64) "PF" |-> (undefMInt) @@ -21,6 +21,7 @@ RSMap:Map => updateMap(RSMap, ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btrl_r32_imm8.k b/semantics/immediateInstructions/btrl_r32_imm8.k index ef24cd754..18d7fc3f1 100644 --- a/semantics/immediateInstructions/btrl_r32_imm8.k +++ b/semantics/immediateInstructions/btrl_r32_imm8.k @@ -5,13 +5,13 @@ module BTRL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (btrl Imm8:Imm, R2:R32, .Operands) => . + execinstr (btrl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), negMInt( shiftLeftMInt( mi(32, 1), uvalueMInt(mi(32, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))))))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), negMInt( shiftLeftMInt( mi(32, 1), uvalueMInt(mi(32, svalueMInt(andMInt( Imm8, mi(8, 31))))))))) -"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(mi(32, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))))), 31, 32) +"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(mi(32, svalueMInt(andMInt( Imm8, mi(8, 31)))))), 31, 32) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), andMInt( extractMInt( getParen ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btrq_r64_imm8.k b/semantics/immediateInstructions/btrq_r64_imm8.k index 155df1033..7553de254 100644 --- a/semantics/immediateInstructions/btrq_r64_imm8.k +++ b/semantics/immediateInstructions/btrq_r64_imm8.k @@ -5,13 +5,13 @@ module BTRQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (btrq Imm8:Imm, R2:R64, .Operands) => . + execinstr (btrq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> andMInt( getParentValue(R2, RSMap), negMInt( shiftLeftMInt( mi(64, 1), uvalueMInt(mi(64, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))))))) +convToRegKeys(R2) |-> andMInt( getParentValue(R2, RSMap), negMInt( shiftLeftMInt( mi(64, 1), uvalueMInt(mi(64, svalueMInt(andMInt( Imm8, mi(8, 63)))))))) -"CF" |-> extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(mi(64, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))))), 63, 64) +"CF" |-> extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(mi(64, svalueMInt(andMInt( Imm8, mi(8, 63)))))), 63, 64) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> andMInt( getParentValue(R2, RSMap), negMInt( shiftLeftMInt ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btrw_r16_imm8.k b/semantics/immediateInstructions/btrw_r16_imm8.k index 5452e91bf..5c940cb10 100644 --- a/semantics/immediateInstructions/btrw_r16_imm8.k +++ b/semantics/immediateInstructions/btrw_r16_imm8.k @@ -5,13 +5,13 @@ module BTRW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (btrw Imm8:Imm, R2:R16, .Operands) => . + execinstr (btrw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), negMInt( shiftLeftMInt( mi(16, 1), uvalueMInt(mi(16, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15))))))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), negMInt( shiftLeftMInt( mi(16, 1), uvalueMInt(mi(16, svalueMInt(andMInt( Imm8, mi(8, 15))))))))) -"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(mi(16, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)))))), 15, 16) +"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(mi(16, svalueMInt(andMInt( Imm8, mi(8, 15)))))), 15, 16) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0 ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btsl_r32_imm8.k b/semantics/immediateInstructions/btsl_r32_imm8.k index 837d27cc6..021453338 100644 --- a/semantics/immediateInstructions/btsl_r32_imm8.k +++ b/semantics/immediateInstructions/btsl_r32_imm8.k @@ -5,13 +5,13 @@ module BTSL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (btsl Imm8:Imm, R2:R32, .Operands) => . + execinstr (btsl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), shiftLeftMInt( mi(32, 1), uvalueMInt(mi(32, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))))))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), shiftLeftMInt( mi(32, 1), uvalueMInt(mi(32, svalueMInt(andMInt( Imm8, mi(8, 31)))))))) -"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(mi(32, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))))), 31, 32) +"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(mi(32, svalueMInt(andMInt( Imm8, mi(8, 31)))))), 31, 32) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParent ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btsq_r64_imm8.k b/semantics/immediateInstructions/btsq_r64_imm8.k index 8a9cf93b1..025a173f9 100644 --- a/semantics/immediateInstructions/btsq_r64_imm8.k +++ b/semantics/immediateInstructions/btsq_r64_imm8.k @@ -5,13 +5,13 @@ module BTSQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (btsq Imm8:Imm, R2:R64, .Operands) => . + execinstr (btsq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> orMInt( getParentValue(R2, RSMap), shiftLeftMInt( mi(64, 1), uvalueMInt(mi(64, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))))) +convToRegKeys(R2) |-> orMInt( getParentValue(R2, RSMap), shiftLeftMInt( mi(64, 1), uvalueMInt(mi(64, svalueMInt(andMInt( Imm8, mi(8, 63))))))) -"CF" |-> extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(mi(64, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))))), 63, 64) +"CF" |-> extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(mi(64, svalueMInt(andMInt( Imm8, mi(8, 63)))))), 63, 64) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> orMInt( getParentValue(R2, RSMap), shiftLeftMInt( mi(64, 1 ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btsw_r16_imm8.k b/semantics/immediateInstructions/btsw_r16_imm8.k index b8795b147..ea2a84a37 100644 --- a/semantics/immediateInstructions/btsw_r16_imm8.k +++ b/semantics/immediateInstructions/btsw_r16_imm8.k @@ -5,13 +5,13 @@ module BTSW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (btsw Imm8:Imm, R2:R16, .Operands) => . + execinstr (btsw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), shiftLeftMInt( mi(16, 1), uvalueMInt(mi(16, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)))))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), shiftLeftMInt( mi(16, 1), uvalueMInt(mi(16, svalueMInt(andMInt( Imm8, mi(8, 15)))))))) -"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(mi(16, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)))))), 15, 16) +"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(mi(16, svalueMInt(andMInt( Imm8, mi(8, 15)))))), 15, 16) "PF" |-> (undefMInt) @@ -23,6 +23,7 @@ convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0 ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/btw_r16_imm8.k b/semantics/immediateInstructions/btw_r16_imm8.k index bd817430c..836f1d9e8 100644 --- a/semantics/immediateInstructions/btw_r16_imm8.k +++ b/semantics/immediateInstructions/btw_r16_imm8.k @@ -5,11 +5,11 @@ module BTW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (btw Imm8:Imm, R2:R16, .Operands) => . + execinstr (btw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(mi(16, svalueMInt(andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)))))), 15, 16) +"CF" |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(mi(16, svalueMInt(andMInt( Imm8, mi(8, 15)))))), 15, 16) "PF" |-> (undefMInt) @@ -21,6 +21,7 @@ RSMap:Map => updateMap(RSMap, ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpb_al_imm8.k b/semantics/immediateInstructions/cmpb_al_imm8.k index 45332095a..cb9434fd3 100644 --- a/semantics/immediateInstructions/cmpb_al_imm8.k +++ b/semantics/immediateInstructions/cmpb_al_imm8.k @@ -5,24 +5,25 @@ module CMPB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpb Imm8:Imm, %al, .Operands) => . + execinstr (cmpb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpb_r8_imm8.k b/semantics/immediateInstructions/cmpb_r8_imm8.k index 7d9b2a57c..b2ecbead1 100644 --- a/semantics/immediateInstructions/cmpb_r8_imm8.k +++ b/semantics/immediateInstructions/cmpb_r8_imm8.k @@ -5,24 +5,25 @@ module CMPB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpb Imm8:Imm, R2:R8, .Operands) => . + execinstr (cmpb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpb_rh_imm8.k b/semantics/immediateInstructions/cmpb_rh_imm8.k index 7746acbe6..a7ddaa8b2 100644 --- a/semantics/immediateInstructions/cmpb_rh_imm8.k +++ b/semantics/immediateInstructions/cmpb_rh_imm8.k @@ -5,24 +5,25 @@ module CMPB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (cmpb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpl_eax_imm32.k b/semantics/immediateInstructions/cmpl_eax_imm32.k index d9732c928..769fe7ea1 100644 --- a/semantics/immediateInstructions/cmpl_eax_imm32.k +++ b/semantics/immediateInstructions/cmpl_eax_imm32.k @@ -5,24 +5,25 @@ module CMPL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (cmpl Imm32:Imm, %eax, .Operands) => . + execinstr (cmpl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/cmpl_r32_imm32.k b/semantics/immediateInstructions/cmpl_r32_imm32.k index 089410bf1..d135eaf95 100644 --- a/semantics/immediateInstructions/cmpl_r32_imm32.k +++ b/semantics/immediateInstructions/cmpl_r32_imm32.k @@ -5,24 +5,25 @@ module CMPL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (cmpl Imm32:Imm, R2:R32, .Operands) => . + execinstr (cmpl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/cmpl_r32_imm8.k b/semantics/immediateInstructions/cmpl_r32_imm8.k index 553221e9d..fbe8ce041 100644 --- a/semantics/immediateInstructions/cmpl_r32_imm8.k +++ b/semantics/immediateInstructions/cmpl_r32_imm8.k @@ -5,24 +5,25 @@ module CMPL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpl Imm8:Imm, R2:R32, .Operands) => . + execinstr (cmpl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmppd_xmm_xmm_imm8.k b/semantics/immediateInstructions/cmppd_xmm_xmm_imm8.k index c5e3ef429..ebad58d81 100644 --- a/semantics/immediateInstructions/cmppd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/cmppd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module CMPPD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (cmppd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (cmppd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpps_xmm_xmm_imm8.k b/semantics/immediateInstructions/cmpps_xmm_xmm_imm8.k index 6daefaaac..58e1b5815 100644 --- a/semantics/immediateInstructions/cmpps_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/cmpps_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module CMPPS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpps Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (cmpps Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpq_r64_imm32.k b/semantics/immediateInstructions/cmpq_r64_imm32.k index 098d0d7b1..e9fdeae98 100644 --- a/semantics/immediateInstructions/cmpq_r64_imm32.k +++ b/semantics/immediateInstructions/cmpq_r64_imm32.k @@ -5,24 +5,25 @@ module CMPQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (cmpq Imm32:Imm, R2:R64, .Operands) => . + execinstr (cmpq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/cmpq_r64_imm8.k b/semantics/immediateInstructions/cmpq_r64_imm8.k index 31afa9136..45c1feb53 100644 --- a/semantics/immediateInstructions/cmpq_r64_imm8.k +++ b/semantics/immediateInstructions/cmpq_r64_imm8.k @@ -5,24 +5,25 @@ module CMPQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpq Imm8:Imm, R2:R64, .Operands) => . + execinstr (cmpq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpq_rax_imm32.k b/semantics/immediateInstructions/cmpq_rax_imm32.k index c40b120a6..6235d4060 100644 --- a/semantics/immediateInstructions/cmpq_rax_imm32.k +++ b/semantics/immediateInstructions/cmpq_rax_imm32.k @@ -5,24 +5,25 @@ module CMPQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (cmpq Imm32:Imm, %rax, .Operands) => . + execinstr (cmpq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/cmpsd_xmm_xmm_imm8.k b/semantics/immediateInstructions/cmpsd_xmm_xmm_imm8.k index 67f323431..989ff62a4 100644 --- a/semantics/immediateInstructions/cmpsd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/cmpsd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module CMPSD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpsd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (cmpsd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 192), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 192), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpss_xmm_xmm_imm8.k b/semantics/immediateInstructions/cmpss_xmm_xmm_imm8.k index 5921b29ba..361511237 100644 --- a/semantics/immediateInstructions/cmpss_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/cmpss_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module CMPSS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpss Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (cmpss Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 224), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 224), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/cmpw_ax_imm16.k b/semantics/immediateInstructions/cmpw_ax_imm16.k index 68c4909ad..bf10107bd 100644 --- a/semantics/immediateInstructions/cmpw_ax_imm16.k +++ b/semantics/immediateInstructions/cmpw_ax_imm16.k @@ -5,24 +5,25 @@ module CMPW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (cmpw Imm16:Imm, %ax, .Operands) => . + execinstr (cmpw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/cmpw_r16_imm16.k b/semantics/immediateInstructions/cmpw_r16_imm16.k index d237acdb4..b2e151a7d 100644 --- a/semantics/immediateInstructions/cmpw_r16_imm16.k +++ b/semantics/immediateInstructions/cmpw_r16_imm16.k @@ -5,24 +5,25 @@ module CMPW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (cmpw Imm16:Imm, R2:R16, .Operands) => . + execinstr (cmpw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/cmpw_r16_imm8.k b/semantics/immediateInstructions/cmpw_r16_imm8.k index 6fce01d8b..b70c61ae8 100644 --- a/semantics/immediateInstructions/cmpw_r16_imm8.k +++ b/semantics/immediateInstructions/cmpw_r16_imm8.k @@ -5,24 +5,25 @@ module CMPW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (cmpw Imm8:Imm, R2:R16, .Operands) => . + execinstr (cmpw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/dppd_xmm_xmm_imm8.k b/semantics/immediateInstructions/dppd_xmm_xmm_imm8.k index b1fe5b276..d2b684705 100644 --- a/semantics/immediateInstructions/dppd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/dppd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module DPPD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (dppd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (dppd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/dpps_xmm_xmm_imm8.k b/semantics/immediateInstructions/dpps_xmm_xmm_imm8.k index 400d5ae00..860c595e9 100644 --- a/semantics/immediateInstructions/dpps_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/dpps_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module DPPS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (dpps Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (dpps Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/extractps_r32_xmm_imm8.k b/semantics/immediateInstructions/extractps_r32_xmm_imm8.k index 4a9873a3a..48f94246d 100644 --- a/semantics/immediateInstructions/extractps_r32_xmm_imm8.k +++ b/semantics/immediateInstructions/extractps_r32_xmm_imm8.k @@ -5,14 +5,15 @@ module EXTRACTPS-R32-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (extractps Imm8:Imm, R2:Xmm, R3:R32, .Operands) => . + execinstr (extractps Imm8:MInt, R2:Xmm, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/extractps_r64_xmm_imm8.k b/semantics/immediateInstructions/extractps_r64_xmm_imm8.k index 8748b1321..438a0467f 100644 --- a/semantics/immediateInstructions/extractps_r64_xmm_imm8.k +++ b/semantics/immediateInstructions/extractps_r64_xmm_imm8.k @@ -5,14 +5,15 @@ module EXTRACTPS-R64-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (extractps Imm8:Imm, R2:Xmm, R3:R64, .Operands) => . + execinstr (extractps Imm8:MInt, R2:Xmm, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/imull_r32_r32_imm32.k b/semantics/immediateInstructions/imull_r32_r32_imm32.k index 57702c445..67c1829d9 100644 --- a/semantics/immediateInstructions/imull_r32_r32_imm32.k +++ b/semantics/immediateInstructions/imull_r32_r32_imm32.k @@ -5,13 +5,13 @@ module IMULL-R32-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (imull Imm32:Imm, R2:R32, R3:R32, .Operands) => . + execinstr (imull Imm32:MInt, R2:R32, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 32, 64)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm32))), 32, 64)) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm32))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm32))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -21,10 +21,11 @@ convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, s "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm32))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm32))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/imull_r32_r32_imm8.k b/semantics/immediateInstructions/imull_r32_r32_imm8.k index fb6071837..0c581bb88 100644 --- a/semantics/immediateInstructions/imull_r32_r32_imm8.k +++ b/semantics/immediateInstructions/imull_r32_r32_imm8.k @@ -5,13 +5,13 @@ module IMULL-R32-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (imull Imm8:Imm, R2:R32, R3:R32, .Operands) => . + execinstr (imull Imm8:MInt, R2:R32, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 32, 64)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm8))), 32, 64)) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm8))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm8))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -21,10 +21,11 @@ convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, s "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm8))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(extractMInt( getParentValue(R2, RSMap), 32, 64))), mi(64, svalueMInt(Imm8))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/imulq_r64_r64_imm32.k b/semantics/immediateInstructions/imulq_r64_r64_imm32.k index f88104746..0e2abacb7 100644 --- a/semantics/immediateInstructions/imulq_r64_r64_imm32.k +++ b/semantics/immediateInstructions/imulq_r64_r64_imm32.k @@ -5,13 +5,13 @@ module IMULQ-R64-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (imulq Imm32:Imm, R2:R64, R3:R64, .Operands) => . + execinstr (imulq Imm32:MInt, R2:R64, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 64, 128) +convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm32))), 64, 128) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm32))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm32))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -21,10 +21,11 @@ convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2 "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm32))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm32))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/imulq_r64_r64_imm8.k b/semantics/immediateInstructions/imulq_r64_r64_imm8.k index 09f92931c..231eef2cd 100644 --- a/semantics/immediateInstructions/imulq_r64_r64_imm8.k +++ b/semantics/immediateInstructions/imulq_r64_r64_imm8.k @@ -5,13 +5,13 @@ module IMULQ-R64-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (imulq Imm8:Imm, R2:R64, R3:R64, .Operands) => . + execinstr (imulq Imm8:MInt, R2:R64, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 64, 128) +convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm8))), 64, 128) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm8))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm8))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -21,10 +21,11 @@ convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2 "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm8))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(getParentValue(R2, RSMap))), mi(128, svalueMInt(Imm8))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/imulw_r16_r16_imm16.k b/semantics/immediateInstructions/imulw_r16_r16_imm16.k index 5a83cb2cf..3815f7edc 100644 --- a/semantics/immediateInstructions/imulw_r16_r16_imm16.k +++ b/semantics/immediateInstructions/imulw_r16_r16_imm16.k @@ -5,13 +5,13 @@ module IMULW-R16-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (imulw Imm16:Imm, R2:R16, R3:R16, .Operands) => . + execinstr (imulw Imm16:MInt, R2:R16, R3:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 48), extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), 16, 32)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 48), extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm16))), 16, 32)) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm16))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm16))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -21,10 +21,11 @@ convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0 "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm16))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm16))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/imulw_r16_r16_imm8.k b/semantics/immediateInstructions/imulw_r16_r16_imm8.k index 24b0d6d3b..a7c5657ce 100644 --- a/semantics/immediateInstructions/imulw_r16_r16_imm8.k +++ b/semantics/immediateInstructions/imulw_r16_r16_imm8.k @@ -5,13 +5,13 @@ module IMULW-R16-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (imulw Imm8:Imm, R2:R16, R3:R16, .Operands) => . + execinstr (imulw Imm8:MInt, R2:R16, R3:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 48), extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 16, 32)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 48), extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm8))), 16, 32)) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm8))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm8))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -21,10 +21,11 @@ convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0 "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm8))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(extractMInt( getParentValue(R2, RSMap), 48, 64))), mi(32, svalueMInt(Imm8))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/insertps_xmm_xmm_imm8.k b/semantics/immediateInstructions/insertps_xmm_xmm_imm8.k index 257c1c32b..9dfedb717 100644 --- a/semantics/immediateInstructions/insertps_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/insertps_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module INSERTPS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (insertps Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (insertps Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #fi) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 160, 192) #fi) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #fi) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 160, 192) #fi) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/movb_r8_imm8.k b/semantics/immediateInstructions/movb_r8_imm8.k index f5f3fca11..b7ab26b3b 100644 --- a/semantics/immediateInstructions/movb_r8_imm8.k +++ b/semantics/immediateInstructions/movb_r8_imm8.k @@ -5,14 +5,15 @@ module MOVB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (movb Imm8:Imm, R2:R8, .Operands) => . + execinstr (movb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), handleImmediateWithSignExtend(Imm8, 8, 8)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), Imm8) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/movb_rh_imm8.k b/semantics/immediateInstructions/movb_rh_imm8.k index f4592e2b2..f8da98827 100644 --- a/semantics/immediateInstructions/movb_rh_imm8.k +++ b/semantics/immediateInstructions/movb_rh_imm8.k @@ -5,14 +5,15 @@ module MOVB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (movb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (movb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), handleImmediateWithSignExtend(Imm8, 8, 8)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), Imm8), extractMInt( getParentValue(R2, RSMap), 56, 64)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/movl_r32_imm32.k b/semantics/immediateInstructions/movl_r32_imm32.k index 6555f7f5a..0fed3fbb9 100644 --- a/semantics/immediateInstructions/movl_r32_imm32.k +++ b/semantics/immediateInstructions/movl_r32_imm32.k @@ -5,14 +5,15 @@ module MOVL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (movl Imm32:Imm, R2:R32, .Operands) => . + execinstr (movl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), Imm32) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/movq_r64_imm32.k b/semantics/immediateInstructions/movq_r64_imm32.k index 73f896b97..12a2bed0f 100644 --- a/semantics/immediateInstructions/movq_r64_imm32.k +++ b/semantics/immediateInstructions/movq_r64_imm32.k @@ -5,14 +5,15 @@ module MOVQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (movq Imm32:Imm, R2:R64, .Operands) => . + execinstr (movq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))) +convToRegKeys(R2) |-> mi(64, svalueMInt(Imm32)) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/movq_r64_imm64.k b/semantics/immediateInstructions/movq_r64_imm64.k index cc4a8e719..7f2cdfeb6 100644 --- a/semantics/immediateInstructions/movq_r64_imm64.k +++ b/semantics/immediateInstructions/movq_r64_imm64.k @@ -5,14 +5,15 @@ module MOVQ-R64-IMM64 imports X86-CONFIGURATION rule - execinstr (movq Imm64:Imm, R2:R64, .Operands) => . + execinstr (movq Imm64:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> handleImmediateWithSignExtend(Imm64, 64, 64) +convToRegKeys(R2) |-> Imm64 ) + requires bitwidthMInt(Imm64) ==Int 64 endmodule diff --git a/semantics/immediateInstructions/movw_r16_imm16.k b/semantics/immediateInstructions/movw_r16_imm16.k index d7cec4199..a6a1ff2dc 100644 --- a/semantics/immediateInstructions/movw_r16_imm16.k +++ b/semantics/immediateInstructions/movw_r16_imm16.k @@ -5,14 +5,15 @@ module MOVW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (movw Imm16:Imm, R2:R16, .Operands) => . + execinstr (movw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), handleImmediateWithSignExtend(Imm16, 16, 16)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), Imm16) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/mpsadbw_xmm_xmm_imm8.k b/semantics/immediateInstructions/mpsadbw_xmm_xmm_imm8.k index 78725d1de..da0f7af7e 100644 --- a/semantics/immediateInstructions/mpsadbw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/mpsadbw_xmm_xmm_imm8.k @@ -4,43 +4,44 @@ module MPSADBW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (mpsadbw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => + execinstr (mpsadbw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => execinstr (mpsadbw selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 7 , 0 ), + extractMInt(Imm8, 6, 8), 7 , 0 ), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 15, 8 ), + extractMInt(Imm8, 6, 8), 15, 8 ), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 23, 16), + extractMInt(Imm8, 6, 8), 23, 16), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 31, 24), + extractMInt(Imm8, 6, 8), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 7 , 0), + extractMInt(Imm8, 5, 6), 7 , 0), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 15, 8), + extractMInt(Imm8, 5, 6), 15, 8), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 23, 16), + extractMInt(Imm8, 5, 6), 23, 16), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 31, 24), + extractMInt(Imm8, 5, 6), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 39, 32), + extractMInt(Imm8, 5, 6), 39, 32), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 47, 40), + extractMInt(Imm8, 5, 6), 47, 40), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 55, 48), + extractMInt(Imm8, 5, 6), 55, 48), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 63, 56), + extractMInt(Imm8, 5, 6), 63, 56), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 71, 64), + extractMInt(Imm8, 5, 6), 71, 64), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 79, 72), + extractMInt(Imm8, 5, 6), 79, 72), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 87, 80), + extractMInt(Imm8, 5, 6), 87, 80), R3:Xmm, .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (mpsadbw diff --git a/semantics/immediateInstructions/orb_al_imm8.k b/semantics/immediateInstructions/orb_al_imm8.k index 3f6603153..c0010c1f5 100644 --- a/semantics/immediateInstructions/orb_al_imm8.k +++ b/semantics/immediateInstructions/orb_al_imm8.k @@ -5,26 +5,27 @@ module ORB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (orb Imm8:Imm, %al, .Operands) => . + execinstr (orb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8))) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), Imm8)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/orb_r8_imm8.k b/semantics/immediateInstructions/orb_r8_imm8.k index 37563bc7a..189af7d4b 100644 --- a/semantics/immediateInstructions/orb_r8_imm8.k +++ b/semantics/immediateInstructions/orb_r8_imm8.k @@ -5,26 +5,27 @@ module ORB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (orb Imm8:Imm, R2:R8, .Operands) => . + execinstr (orb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), orMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), orMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), Imm8)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/orb_rh_imm8.k b/semantics/immediateInstructions/orb_rh_imm8.k index 627755af4..2a7e7d6d8 100644 --- a/semantics/immediateInstructions/orb_rh_imm8.k +++ b/semantics/immediateInstructions/orb_rh_imm8.k @@ -5,26 +5,27 @@ module ORB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (orb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (orb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), orMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), handleImmediateWithSignExtend(Imm8, 8, 8))), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), orMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), Imm8)), extractMInt( getParentValue(R2, RSMap), 56, 64)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 55, 56), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 54, 55), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 53, 54), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 52, 53), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 51, 52), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 50, 51), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 49, 50), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 55, 56), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 54, 55), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 53, 54), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 52, 53), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 51, 52), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 50, 51), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 49, 50), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/orl_eax_imm32.k b/semantics/immediateInstructions/orl_eax_imm32.k index d6f2b62e9..3eb01bf70 100644 --- a/semantics/immediateInstructions/orl_eax_imm32.k +++ b/semantics/immediateInstructions/orl_eax_imm32.k @@ -5,26 +5,27 @@ module ORL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (orl Imm32:Imm, %eax, .Operands) => . + execinstr (orl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32))) +"RAX" |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), Imm32)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/orl_r32_imm32.k b/semantics/immediateInstructions/orl_r32_imm32.k index c087060b6..37bf020a2 100644 --- a/semantics/immediateInstructions/orl_r32_imm32.k +++ b/semantics/immediateInstructions/orl_r32_imm32.k @@ -5,26 +5,27 @@ module ORL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (orl Imm32:Imm, R2:R32, .Operands) => . + execinstr (orl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), Imm32)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/orl_r32_imm8.k b/semantics/immediateInstructions/orl_r32_imm8.k index a06966384..51c069103 100644 --- a/semantics/immediateInstructions/orl_r32_imm8.k +++ b/semantics/immediateInstructions/orl_r32_imm8.k @@ -5,26 +5,27 @@ module ORL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (orl Imm8:Imm, R2:R32, .Operands) => . + execinstr (orl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(Imm8)))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(Imm8))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/orq_r64_imm32.k b/semantics/immediateInstructions/orq_r64_imm32.k index 127bcf860..e5418cf62 100644 --- a/semantics/immediateInstructions/orq_r64_imm32.k +++ b/semantics/immediateInstructions/orq_r64_imm32.k @@ -5,26 +5,27 @@ module ORQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (orq Imm32:Imm, R2:R64, .Operands) => . + execinstr (orq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> orMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) +convToRegKeys(R2) |-> orMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm32))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/orq_r64_imm8.k b/semantics/immediateInstructions/orq_r64_imm8.k index 2aa63623d..c086017f2 100644 --- a/semantics/immediateInstructions/orq_r64_imm8.k +++ b/semantics/immediateInstructions/orq_r64_imm8.k @@ -5,26 +5,27 @@ module ORQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (orq Imm8:Imm, R2:R64, .Operands) => . + execinstr (orq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> orMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R2) |-> orMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm8))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm8))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/orq_rax_imm32.k b/semantics/immediateInstructions/orq_rax_imm32.k index 3dc8c82bb..e8759e7d4 100644 --- a/semantics/immediateInstructions/orq_rax_imm32.k +++ b/semantics/immediateInstructions/orq_rax_imm32.k @@ -5,26 +5,27 @@ module ORQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (orq Imm32:Imm, %rax, .Operands) => . + execinstr (orq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> orMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) +"RAX" |-> orMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(Imm32))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/orw_ax_imm16.k b/semantics/immediateInstructions/orw_ax_imm16.k index 9be5a55b0..1b93b5fcd 100644 --- a/semantics/immediateInstructions/orw_ax_imm16.k +++ b/semantics/immediateInstructions/orw_ax_imm16.k @@ -5,26 +5,27 @@ module ORW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (orw Imm16:Imm, %ax, .Operands) => . + execinstr (orw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), orMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16))) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), orMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), Imm16)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/orw_r16_imm16.k b/semantics/immediateInstructions/orw_r16_imm16.k index 69c0d0b5c..415add486 100644 --- a/semantics/immediateInstructions/orw_r16_imm16.k +++ b/semantics/immediateInstructions/orw_r16_imm16.k @@ -5,26 +5,27 @@ module ORW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (orw Imm16:Imm, R2:R16, .Operands) => . + execinstr (orw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), Imm16)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/orw_r16_imm8.k b/semantics/immediateInstructions/orw_r16_imm8.k index 6ce996862..5c16b7b30 100644 --- a/semantics/immediateInstructions/orw_r16_imm8.k +++ b/semantics/immediateInstructions/orw_r16_imm8.k @@ -5,26 +5,27 @@ module ORW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (orw Imm8:Imm, R2:R16, .Operands) => . + execinstr (orw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(Imm8)))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(Imm8))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> orMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/palignr_xmm_xmm_imm8.k b/semantics/immediateInstructions/palignr_xmm_xmm_imm8.k index b28b23207..471323eac 100644 --- a/semantics/immediateInstructions/palignr_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/palignr_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module PALIGNR-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (palignr Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (palignr Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), extractMInt( getParentValue(R2, RSMap), 128, 256)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), uvalueMInt(mi(256, 3))))), 128, 256)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), extractMInt( getParentValue(R2, RSMap), 128, 256)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), Imm8), uvalueMInt(mi(256, 3))))), 128, 256)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pblendw_xmm_xmm_imm8.k b/semantics/immediateInstructions/pblendw_xmm_xmm_imm8.k index f4bdb29d0..a6b216eb6 100644 --- a/semantics/immediateInstructions/pblendw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pblendw_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module PBLENDW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pblendw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (pblendw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( getParentValue(R2, RSMap), 128, 144) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( getParentValue(R2, RSMap), 144, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( getParentValue(R2, RSMap), 160, 176) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( getParentValue(R2, RSMap), 176, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( getParentValue(R2, RSMap), 192, 208) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( getParentValue(R2, RSMap), 208, 224) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( getParentValue(R2, RSMap), 224, 240) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( getParentValue(R2, RSMap), 240, 256) #fi))))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( getParentValue(R2, RSMap), 128, 144) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( getParentValue(R2, RSMap), 144, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( getParentValue(R2, RSMap), 160, 176) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( getParentValue(R2, RSMap), 176, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( getParentValue(R2, RSMap), 192, 208) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( getParentValue(R2, RSMap), 208, 224) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( getParentValue(R2, RSMap), 224, 240) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( getParentValue(R2, RSMap), 240, 256) #fi))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pclmulqdq_xmm_xmm_imm8.k b/semantics/immediateInstructions/pclmulqdq_xmm_xmm_imm8.k index 300dac9b0..0853b148d 100644 --- a/semantics/immediateInstructions/pclmulqdq_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pclmulqdq_xmm_xmm_imm8.k @@ -49,15 +49,14 @@ module PCLMULQDQ-XMM-XMM-IMM8 TEMP2←SRC2 [127:64]; */ rule - execinstr (pclmulqdq Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => + execinstr (pclmulqdq Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => execinstr(pclmulqdq - selectSlice(getRegisterValue(R3, RSMap), handleImmediateWithSignExtend(Imm8, - 8, 8), 7, 64, 0), - selectSlice(getRegisterValue(R2, RSMap), handleImmediateWithSignExtend(Imm8, - 8, 8), 3, 64, 0), R3 + selectSlice(getRegisterValue(R3, RSMap), Imm8, 7, 64, 0), + selectSlice(getRegisterValue(R2, RSMap), Imm8, 3, 64, 0), R3 , .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (pclmulqdq TEMP1:MInt, TEMP2:MInt, R3:Xmm, .Operands) => diff --git a/semantics/immediateInstructions/pcmpestri_xmm_xmm_imm8.k b/semantics/immediateInstructions/pcmpestri_xmm_xmm_imm8.k index f5240fa90..e7f4be1ca 100644 --- a/semantics/immediateInstructions/pcmpestri_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pcmpestri_xmm_xmm_imm8.k @@ -6,16 +6,17 @@ module PCMPESTRI-XMM-XMM-IMM8 // Find Limit Index rule - execinstr (pcmpestri Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (pcmpestri Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (pcmpestri - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, getRegisterValue(Xmm2, RSMap), getRegisterValue(Xmm1, RSMap), - findLimitIndexE(getRegisterValue(Xmm2, RSMap), getRegisterValue(%rdx, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexE(getRegisterValue(Xmm2, RSMap), getRegisterValue(%rdx, RSMap), Imm8), + findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // pcmpestri 8'1 , 128'0 , 128'0 , 8'1 , 8'1 , 8'8 , 1'0 , 8'1 , .Operands diff --git a/semantics/immediateInstructions/pcmpestrm_xmm_xmm_imm8.k b/semantics/immediateInstructions/pcmpestrm_xmm_xmm_imm8.k index b3ece31d9..71661068d 100644 --- a/semantics/immediateInstructions/pcmpestrm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pcmpestrm_xmm_xmm_imm8.k @@ -6,16 +6,17 @@ module PCMPESTRM-XMM-XMM-IMM8 // Find Limit Index rule - execinstr (pcmpestrm Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (pcmpestrm Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (pcmpestrm - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, getRegisterValue(Xmm2, RSMap), getRegisterValue(Xmm1, RSMap), - findLimitIndexE(getRegisterValue(Xmm2, RSMap), getRegisterValue(%rdx, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexE(getRegisterValue(Xmm2, RSMap), getRegisterValue(%rdx, RSMap), Imm8), + findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/immediateInstructions/pcmpistri_xmm_xmm_imm8.k b/semantics/immediateInstructions/pcmpistri_xmm_xmm_imm8.k index ef5b1777b..5e8630969 100644 --- a/semantics/immediateInstructions/pcmpistri_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pcmpistri_xmm_xmm_imm8.k @@ -6,16 +6,17 @@ module PCMPISTRI-XMM-XMM-IMM8 // Find Limit Index rule - execinstr (pcmpistri Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (pcmpistri Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (pcmpistri - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, getRegisterValue(Xmm2, RSMap), getRegisterValue(Xmm1, RSMap), - findLimitIndexI(getRegisterValue(Xmm2, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexI(getRegisterValue(Xmm1, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexI(getRegisterValue(Xmm2, RSMap), Imm8), + findLimitIndexI(getRegisterValue(Xmm1, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/immediateInstructions/pcmpistrm_xmm_xmm_imm8.k b/semantics/immediateInstructions/pcmpistrm_xmm_xmm_imm8.k index 83616c053..5f54ea863 100644 --- a/semantics/immediateInstructions/pcmpistrm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pcmpistrm_xmm_xmm_imm8.k @@ -6,16 +6,17 @@ module PCMPISTRM-XMM-XMM-IMM8 // Find Limit Index rule - execinstr (pcmpistrm Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (pcmpistrm Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (pcmpistrm - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, getRegisterValue(Xmm2, RSMap), getRegisterValue(Xmm1, RSMap), - findLimitIndexI(getRegisterValue(Xmm2, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexI(getRegisterValue(Xmm1, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexI(getRegisterValue(Xmm2, RSMap), Imm8), + findLimitIndexI(getRegisterValue(Xmm1, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/immediateInstructions/pextrb_r32_xmm_imm8.k b/semantics/immediateInstructions/pextrb_r32_xmm_imm8.k index fcc0aac02..1e4e7e063 100644 --- a/semantics/immediateInstructions/pextrb_r32_xmm_imm8.k +++ b/semantics/immediateInstructions/pextrb_r32_xmm_imm8.k @@ -5,14 +5,15 @@ module PEXTRB-R32-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pextrb Imm8:Imm, R2:Xmm, R3:R32, .Operands) => . + execinstr (pextrb Imm8:MInt, R2:Xmm, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(56, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(56, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pextrb_r64_xmm_imm8.k b/semantics/immediateInstructions/pextrb_r64_xmm_imm8.k index c5a5d0f72..884104a0b 100644 --- a/semantics/immediateInstructions/pextrb_r64_xmm_imm8.k +++ b/semantics/immediateInstructions/pextrb_r64_xmm_imm8.k @@ -5,14 +5,15 @@ module PEXTRB-R64-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pextrb Imm8:Imm, R2:Xmm, R3:R64, .Operands) => . + execinstr (pextrb Imm8:MInt, R2:Xmm, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(56, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(56, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pextrd_r32_xmm_imm8.k b/semantics/immediateInstructions/pextrd_r32_xmm_imm8.k index d955bd640..95448d3b5 100644 --- a/semantics/immediateInstructions/pextrd_r32_xmm_imm8.k +++ b/semantics/immediateInstructions/pextrd_r32_xmm_imm8.k @@ -5,14 +5,15 @@ module PEXTRD-R32-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pextrd Imm8:Imm, R2:Xmm, R3:R32, .Operands) => . + execinstr (pextrd Imm8:MInt, R2:Xmm, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pextrq_r64_xmm_imm8.k b/semantics/immediateInstructions/pextrq_r64_xmm_imm8.k index 93a1a246b..9e2f02047 100644 --- a/semantics/immediateInstructions/pextrq_r64_xmm_imm8.k +++ b/semantics/immediateInstructions/pextrq_r64_xmm_imm8.k @@ -5,14 +5,15 @@ module PEXTRQ-R64-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pextrq Imm8:Imm, R2:Xmm, R3:R64, .Operands) => . + execinstr (pextrq Imm8:MInt, R2:Xmm, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))), 64, 128) +convToRegKeys(R3) |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))), 64, 128) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pextrw_r32_xmm_imm8.k b/semantics/immediateInstructions/pextrw_r32_xmm_imm8.k index 47edbf2b0..a8af52190 100644 --- a/semantics/immediateInstructions/pextrw_r32_xmm_imm8.k +++ b/semantics/immediateInstructions/pextrw_r32_xmm_imm8.k @@ -5,14 +5,15 @@ module PEXTRW-R32-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pextrw Imm8:Imm, R2:Xmm, R3:R32, .Operands) => . + execinstr (pextrw Imm8:MInt, R2:Xmm, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(48, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(48, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pextrw_r64_xmm_imm8.k b/semantics/immediateInstructions/pextrw_r64_xmm_imm8.k index 7d1b9d840..b4ad0a368 100644 --- a/semantics/immediateInstructions/pextrw_r64_xmm_imm8.k +++ b/semantics/immediateInstructions/pextrw_r64_xmm_imm8.k @@ -5,14 +5,15 @@ module PEXTRW-R64-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pextrw Imm8:Imm, R2:Xmm, R3:R64, .Operands) => . + execinstr (pextrw Imm8:MInt, R2:Xmm, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(48, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(48, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pinsrb_xmm_r32_imm8.k b/semantics/immediateInstructions/pinsrb_xmm_r32_imm8.k index bda1687b8..53c3ef516 100644 --- a/semantics/immediateInstructions/pinsrb_xmm_r32_imm8.k +++ b/semantics/immediateInstructions/pinsrb_xmm_r32_imm8.k @@ -5,14 +5,15 @@ module PINSRB-XMM-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (pinsrb Imm8:Imm, R2:R32, R3:Xmm, .Operands) => . + execinstr (pinsrb Imm8:MInt, R2:R32, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3)))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pinsrd_xmm_r32_imm8.k b/semantics/immediateInstructions/pinsrd_xmm_r32_imm8.k index 8a3be75ba..30f9332e3 100644 --- a/semantics/immediateInstructions/pinsrd_xmm_r32_imm8.k +++ b/semantics/immediateInstructions/pinsrd_xmm_r32_imm8.k @@ -5,14 +5,15 @@ module PINSRD-XMM-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (pinsrd Imm8:Imm, R2:R32, R3:Xmm, .Operands) => . + execinstr (pinsrd Imm8:MInt, R2:R32, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5)))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pinsrq_xmm_r64_imm8.k b/semantics/immediateInstructions/pinsrq_xmm_r64_imm8.k index 2d4809e9f..a29d34cb3 100644 --- a/semantics/immediateInstructions/pinsrq_xmm_r64_imm8.k +++ b/semantics/immediateInstructions/pinsrq_xmm_r64_imm8.k @@ -5,13 +5,14 @@ module PINSRQ-XMM-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (pinsrq Imm8:Imm, R2:R64, R3:Xmm .Operands) => . + execinstr (pinsrq Imm8:MInt, R2:R64, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(64, 0), getParentValue(R2, RSMap)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))), shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6)))))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(64, 0), getParentValue(R2, RSMap)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))), shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pinsrw_xmm_r32_imm8.k b/semantics/immediateInstructions/pinsrw_xmm_r32_imm8.k index 272fdcb42..ca70f970d 100644 --- a/semantics/immediateInstructions/pinsrw_xmm_r32_imm8.k +++ b/semantics/immediateInstructions/pinsrw_xmm_r32_imm8.k @@ -5,14 +5,15 @@ module PINSRW-XMM-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (pinsrw Imm8:Imm, R2:R32, R3:Xmm, .Operands) => . + execinstr (pinsrw Imm8:MInt, R2:R32, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4)))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pshufd_xmm_xmm_imm8.k b/semantics/immediateInstructions/pshufd_xmm_xmm_imm8.k index a554cd2b7..43d1089c6 100644 --- a/semantics/immediateInstructions/pshufd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pshufd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module PSHUFD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pshufd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (pshufd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pshufhw_xmm_xmm_imm8.k b/semantics/immediateInstructions/pshufhw_xmm_xmm_imm8.k index 978de61d5..3e0456fe3 100644 --- a/semantics/immediateInstructions/pshufhw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pshufhw_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module PSHUFHW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pshufhw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (pshufhw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 4))))), 48, 64), extractMInt( getParentValue(R2, RSMap), 192, 256)))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 4))))), 48, 64), extractMInt( getParentValue(R2, RSMap), 192, 256)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pshuflw_xmm_xmm_imm8.k b/semantics/immediateInstructions/pshuflw_xmm_xmm_imm8.k index 8c53a8222..09abf1203 100644 --- a/semantics/immediateInstructions/pshuflw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/pshuflw_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module PSHUFLW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pshuflw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (pshuflw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 4))))), 112, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 4))))), 112, 128)))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 4))))), 112, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 4))))), 112, 128)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pslld_xmm_imm8.k b/semantics/immediateInstructions/pslld_xmm_imm8.k index 2bde9c34b..1195b4be7 100644 --- a/semantics/immediateInstructions/pslld_xmm_imm8.k +++ b/semantics/immediateInstructions/pslld_xmm_imm8.k @@ -5,14 +5,15 @@ module PSLLD-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pslld Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (pslld Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(128, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))) #fi)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(128, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), Imm8)))))) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pslldq_xmm_imm8.k b/semantics/immediateInstructions/pslldq_xmm_imm8.k index 6f44cfd8f..c365871eb 100644 --- a/semantics/immediateInstructions/pslldq_xmm_imm8.k +++ b/semantics/immediateInstructions/pslldq_xmm_imm8.k @@ -5,14 +5,15 @@ module PSLLDQ-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (pslldq Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (pslldq Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), uvalueMInt(mi(128, 3)))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( Imm8, mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), Imm8) #fi), uvalueMInt(mi(128, 3)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/psllq_xmm_imm8.k b/semantics/immediateInstructions/psllq_xmm_imm8.k index ae6725194..9dce7d6cf 100644 --- a/semantics/immediateInstructions/psllq_xmm_imm8.k +++ b/semantics/immediateInstructions/psllq_xmm_imm8.k @@ -5,14 +5,15 @@ module PSLLQ-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (psllq Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (psllq Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)) #then mi(128, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))) #fi)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)) #then mi(128, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), Imm8)))) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/psllw_xmm_imm8.k b/semantics/immediateInstructions/psllw_xmm_imm8.k index b233d1eff..dc461e5e1 100644 --- a/semantics/immediateInstructions/psllw_xmm_imm8.k +++ b/semantics/immediateInstructions/psllw_xmm_imm8.k @@ -5,14 +5,15 @@ module PSLLW-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (psllw Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (psllw Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(128, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))))))) #fi)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(128, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), Imm8)))))))))) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/psrad_xmm_imm8.k b/semantics/immediateInstructions/psrad_xmm_imm8.k index d90474807..3f1defe46 100644 --- a/semantics/immediateInstructions/psrad_xmm_imm8.k +++ b/semantics/immediateInstructions/psrad_xmm_imm8.k @@ -5,14 +5,15 @@ module PSRAD-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (psrad Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (psrad Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/psraw_xmm_imm8.k b/semantics/immediateInstructions/psraw_xmm_imm8.k index 679082020..f9529c0ed 100644 --- a/semantics/immediateInstructions/psraw_xmm_imm8.k +++ b/semantics/immediateInstructions/psraw_xmm_imm8.k @@ -5,14 +5,15 @@ module PSRAW-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (psraw Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (psraw Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))))))))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/psrld_xmm_imm8.k b/semantics/immediateInstructions/psrld_xmm_imm8.k index 776ad7486..3580b50ed 100644 --- a/semantics/immediateInstructions/psrld_xmm_imm8.k +++ b/semantics/immediateInstructions/psrld_xmm_imm8.k @@ -5,14 +5,15 @@ module PSRLD-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (psrld Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (psrld Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(128, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))) #fi)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(128, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), Imm8)))))) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/psrldq_xmm_imm8.k b/semantics/immediateInstructions/psrldq_xmm_imm8.k index 9bcb50167..f08003628 100644 --- a/semantics/immediateInstructions/psrldq_xmm_imm8.k +++ b/semantics/immediateInstructions/psrldq_xmm_imm8.k @@ -5,14 +5,15 @@ module PSRLDQ-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (psrldq Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (psrldq Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), uvalueMInt(mi(128, 3)))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( Imm8, mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), Imm8) #fi), uvalueMInt(mi(128, 3)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/psrlq_xmm_imm8.k b/semantics/immediateInstructions/psrlq_xmm_imm8.k index 978a3fccf..023b4a50e 100644 --- a/semantics/immediateInstructions/psrlq_xmm_imm8.k +++ b/semantics/immediateInstructions/psrlq_xmm_imm8.k @@ -5,14 +5,15 @@ module PSRLQ-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (psrlq Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (psrlq Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)) #then mi(128, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))) #fi)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)) #then mi(128, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), Imm8)))) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/psrlw_xmm_imm8.k b/semantics/immediateInstructions/psrlw_xmm_imm8.k index 6886c12b8..67ccc89a2 100644 --- a/semantics/immediateInstructions/psrlw_xmm_imm8.k +++ b/semantics/immediateInstructions/psrlw_xmm_imm8.k @@ -5,14 +5,15 @@ module PSRLW-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (psrlw Imm8:Imm, R2:Xmm, .Operands) => . + execinstr (psrlw Imm8:MInt, R2:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(128, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))))))) #fi)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(128, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), Imm8)))))))))) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/pushq_imm32.k b/semantics/immediateInstructions/pushq_imm32.k index 143e8b115..08b4e40fd 100644 --- a/semantics/immediateInstructions/pushq_imm32.k +++ b/semantics/immediateInstructions/pushq_imm32.k @@ -11,12 +11,13 @@ module PUSHQ-IMM32 imports X86-CONFIGURATION rule - execinstr (pushq Imm32:Imm, .Operands) => + execinstr (pushq Imm32:MInt, .Operands) => storeToMemory( - handleImmediateWithSignExtend(Imm32, 32, 64), + signExtend(Imm32, 64), subMInt(getRegisterValue(%rsp, RSMap), mi(64, 8)), 64) ~> decRSPInBytes(8) ... RSMap + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/rclb_r8_imm8.k b/semantics/immediateInstructions/rclb_r8_imm8.k index 5913211ac..aeefc7462 100644 --- a/semantics/immediateInstructions/rclb_r8_imm8.k +++ b/semantics/immediateInstructions/rclb_r8_imm8.k @@ -5,18 +5,19 @@ module RCLB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (rclb Imm8:Imm, R2:R8, .Operands) => . + execinstr (rclb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 9)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 9)) -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rclb_rh_imm8.k b/semantics/immediateInstructions/rclb_rh_imm8.k index b2c83cd3a..e7e153a83 100644 --- a/semantics/immediateInstructions/rclb_rh_imm8.k +++ b/semantics/immediateInstructions/rclb_rh_imm8.k @@ -5,18 +5,19 @@ module RCLB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (rclb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (rclb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rcll_r32_imm8.k b/semantics/immediateInstructions/rcll_r32_imm8.k index 55e61300a..3101cb06a 100644 --- a/semantics/immediateInstructions/rcll_r32_imm8.k +++ b/semantics/immediateInstructions/rcll_r32_imm8.k @@ -5,18 +5,19 @@ module RCLL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (rcll Imm8:Imm, R2:R32, .Operands) => . + execinstr (rcll Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 1, 33)) -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rclq_r64_imm8.k b/semantics/immediateInstructions/rclq_r64_imm8.k index 6db2c8413..13acfe879 100644 --- a/semantics/immediateInstructions/rclq_r64_imm8.k +++ b/semantics/immediateInstructions/rclq_r64_imm8.k @@ -5,18 +5,19 @@ module RCLQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (rclq Imm8:Imm, R2:R64, .Operands) => . + execinstr (rclq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 1, 65) +convToRegKeys(R2) |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 1, 65) -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rclw_r16_imm8.k b/semantics/immediateInstructions/rclw_r16_imm8.k index 9e404c89b..e95041838 100644 --- a/semantics/immediateInstructions/rclw_r16_imm8.k +++ b/semantics/immediateInstructions/rclw_r16_imm8.k @@ -5,18 +5,19 @@ module RCLW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (rclw Imm8:Imm, R2:R16, .Operands) => . + execinstr (rclw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 1, 17)) -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rcrb_r8_imm8.k b/semantics/immediateInstructions/rcrb_r8_imm8.k index 1c33bd062..8e92aec8e 100644 --- a/semantics/immediateInstructions/rcrb_r8_imm8.k +++ b/semantics/immediateInstructions/rcrb_r8_imm8.k @@ -5,18 +5,19 @@ module RCRB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (rcrb Imm8:Imm, R2:R8, .Operands) => . + execinstr (rcrb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 9)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 9)) -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 56, 64)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rcrb_rh_imm8.k b/semantics/immediateInstructions/rcrb_rh_imm8.k index a85daf27c..e72b8197c 100644 --- a/semantics/immediateInstructions/rcrb_rh_imm8.k +++ b/semantics/immediateInstructions/rcrb_rh_imm8.k @@ -5,18 +5,19 @@ module RCRB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (rcrb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (rcrb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 56)), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rcrl_r32_imm8.k b/semantics/immediateInstructions/rcrl_r32_imm8.k index 9679a672b..f97273ee8 100644 --- a/semantics/immediateInstructions/rcrl_r32_imm8.k +++ b/semantics/immediateInstructions/rcrl_r32_imm8.k @@ -5,18 +5,19 @@ module RCRL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (rcrl Imm8:Imm, R2:R32, .Operands) => . + execinstr (rcrl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 1, 33)) -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 32, 64)), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rcrq_r64_imm8.k b/semantics/immediateInstructions/rcrq_r64_imm8.k index 07b09df9a..432f62fde 100644 --- a/semantics/immediateInstructions/rcrq_r64_imm8.k +++ b/semantics/immediateInstructions/rcrq_r64_imm8.k @@ -5,18 +5,19 @@ module RCRQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (rcrq Imm8:Imm, R2:R64, .Operands) => . + execinstr (rcrq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 1, 65) +convToRegKeys(R2) |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 1, 65) -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), getParentValue(R2, RSMap)), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rcrw_r16_imm8.k b/semantics/immediateInstructions/rcrw_r16_imm8.k index f55eb46d2..b245ac699 100644 --- a/semantics/immediateInstructions/rcrw_r16_imm8.k +++ b/semantics/immediateInstructions/rcrw_r16_imm8.k @@ -5,18 +5,19 @@ module RCRW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (rcrw Imm8:Imm, R2:R16, .Operands) => . + execinstr (rcrw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 1, 17)) -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), extractMInt( getParentValue(R2, RSMap), 48, 64)), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rolb_r8_imm8.k b/semantics/immediateInstructions/rolb_r8_imm8.k index a7f9e8fef..d697829d7 100644 --- a/semantics/immediateInstructions/rolb_r8_imm8.k +++ b/semantics/immediateInstructions/rolb_r8_imm8.k @@ -5,18 +5,19 @@ module ROLB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (rolb Imm8:Imm, R2:R8, .Operands) => . + execinstr (rolb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), rol( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), rol( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( Imm8, mi(8, 31)))) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 7, 8), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( Imm8, mi(8, 31))), 7, 8), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 7, 8), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( Imm8, mi(8, 31))), 7, 8), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rolb_rh_imm8.k b/semantics/immediateInstructions/rolb_rh_imm8.k index 8c0a498c8..ccbadbef3 100644 --- a/semantics/immediateInstructions/rolb_rh_imm8.k +++ b/semantics/immediateInstructions/rolb_rh_imm8.k @@ -5,18 +5,19 @@ module ROLB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (rolb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (rolb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), rol( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), rol( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( Imm8, mi(8, 31)))), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 7, 8), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( Imm8, mi(8, 31))), 7, 8), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 7, 8), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( Imm8, mi(8, 31))), 7, 8), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/roll_r32_imm8.k b/semantics/immediateInstructions/roll_r32_imm8.k index c296aea97..8fef9cbdf 100644 --- a/semantics/immediateInstructions/roll_r32_imm8.k +++ b/semantics/immediateInstructions/roll_r32_imm8.k @@ -5,18 +5,19 @@ module ROLL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (roll Imm8:Imm, R2:R32, .Operands) => . + execinstr (roll Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), rol( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), rol( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31))))) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 31, 32), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 31, 32), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 31, 32), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 31, 32), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rolq_r64_imm8.k b/semantics/immediateInstructions/rolq_r64_imm8.k index 429dd98c4..2017e2538 100644 --- a/semantics/immediateInstructions/rolq_r64_imm8.k +++ b/semantics/immediateInstructions/rolq_r64_imm8.k @@ -5,18 +5,19 @@ module ROLQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (rolq Imm8:Imm, R2:R64, .Operands) => . + execinstr (rolq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> rol( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))) +convToRegKeys(R2) |-> rol( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( rol( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 63, 64), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( rol( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 63, 64), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 63, 64), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 63, 64), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rolw_r16_imm8.k b/semantics/immediateInstructions/rolw_r16_imm8.k index 609fe7062..7a26343f5 100644 --- a/semantics/immediateInstructions/rolw_r16_imm8.k +++ b/semantics/immediateInstructions/rolw_r16_imm8.k @@ -5,18 +5,19 @@ module ROLW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (rolw Imm8:Imm, R2:R16, .Operands) => . + execinstr (rolw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), rol( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), rol( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31))))) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 15, 16), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 15, 16), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 15, 16), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 15, 16), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rorb_r8_imm8.k b/semantics/immediateInstructions/rorb_r8_imm8.k index ccb445c16..6b68e25b3 100644 --- a/semantics/immediateInstructions/rorb_r8_imm8.k +++ b/semantics/immediateInstructions/rorb_r8_imm8.k @@ -5,18 +5,19 @@ module RORB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (rorb Imm8:Imm, R2:R8, .Operands) => . + execinstr (rorb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), ror( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), ror( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( Imm8, mi(8, 31)))) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 56, 64), andMInt( Imm8, mi(8, 31))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rorb_rh_imm8.k b/semantics/immediateInstructions/rorb_rh_imm8.k index 82fccc58e..052e5e515 100644 --- a/semantics/immediateInstructions/rorb_rh_imm8.k +++ b/semantics/immediateInstructions/rorb_rh_imm8.k @@ -5,18 +5,19 @@ module RORB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (rorb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (rorb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), ror( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), ror( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( Imm8, mi(8, 31)))), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 56), andMInt( Imm8, mi(8, 31))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rorl_r32_imm8.k b/semantics/immediateInstructions/rorl_r32_imm8.k index 357200c7b..5cc890f4e 100644 --- a/semantics/immediateInstructions/rorl_r32_imm8.k +++ b/semantics/immediateInstructions/rorl_r32_imm8.k @@ -5,18 +5,19 @@ module RORL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (rorl Imm8:Imm, R2:R32, .Operands) => . + execinstr (rorl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), ror( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), ror( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31))))) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 32, 64), concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rorq_r64_imm8.k b/semantics/immediateInstructions/rorq_r64_imm8.k index da211c3f5..562b26a64 100644 --- a/semantics/immediateInstructions/rorq_r64_imm8.k +++ b/semantics/immediateInstructions/rorq_r64_imm8.k @@ -5,18 +5,19 @@ module RORQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (rorq Imm8:Imm, R2:R64, .Operands) => . + execinstr (rorq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> ror( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))) +convToRegKeys(R2) |-> ror( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( ror( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( ror( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( getParentValue(R2, RSMap), concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rorw_r16_imm8.k b/semantics/immediateInstructions/rorw_r16_imm8.k index d1236b28a..fd8e8c85f 100644 --- a/semantics/immediateInstructions/rorw_r16_imm8.k +++ b/semantics/immediateInstructions/rorw_r16_imm8.k @@ -5,18 +5,19 @@ module RORW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (rorw Imm8:Imm, R2:R16, .Operands) => . + execinstr (rorw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), ror( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), ror( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31))))) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( extractMInt( getParentValue(R2, RSMap), 48, 64), concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rorxl_r32_r32_imm8.k b/semantics/immediateInstructions/rorxl_r32_r32_imm8.k index bfe177a88..b76598261 100644 --- a/semantics/immediateInstructions/rorxl_r32_r32_imm8.k +++ b/semantics/immediateInstructions/rorxl_r32_r32_imm8.k @@ -5,17 +5,18 @@ module RORXL-R32-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (rorx Imm8:Imm, R2:R32, R3:R32, .Operands) => execinstr (rorxl Imm8:Imm, R2:R32, R3:R32, .Operands) + execinstr (rorx Imm8:MInt, R2:R32, R3:R32, .Operands) => execinstr (rorxl Imm8:MInt, R2:R32, R3:R32, .Operands) ... rule - execinstr (rorxl Imm8:Imm, R2:R32, R3:R32, .Operands) => . + execinstr (rorxl Imm8:MInt, R2:R32, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), orMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(andMInt( concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(32, 31)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(subMInt( mi(32, 32), andMInt( concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(32, 31))))))) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), orMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(andMInt( concatenateMInt( mi(24, 0), Imm8), mi(32, 31)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(subMInt( mi(32, 32), andMInt( concatenateMInt( mi(24, 0), Imm8), mi(32, 31))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/rorxq_r64_r64_imm8.k b/semantics/immediateInstructions/rorxq_r64_r64_imm8.k index 9fd93462f..8f983cc46 100644 --- a/semantics/immediateInstructions/rorxq_r64_r64_imm8.k +++ b/semantics/immediateInstructions/rorxq_r64_r64_imm8.k @@ -5,18 +5,19 @@ module RORXQ-R64-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (rorx Imm8:Imm, R2:R64, R3:R64, .Operands) => execinstr (rorxq Imm8:Imm, R2:R64, R3:R64, .Operands) + execinstr (rorx Imm8:MInt, R2:R64, R3:R64, .Operands) => execinstr (rorxq Imm8:MInt, R2:R64, R3:R64, .Operands) ... rule - execinstr (rorxq Imm8:Imm, R2:R64, R3:R64, .Operands) => . + execinstr (rorxq Imm8:MInt, R2:R64, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> orMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(andMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)))), shiftLeftMInt( getParentValue(R2, RSMap), uvalueMInt(subMInt( mi(64, 64), andMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)))))) +convToRegKeys(R3) |-> orMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(andMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)))), shiftLeftMInt( getParentValue(R2, RSMap), uvalueMInt(subMInt( mi(64, 64), andMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/roundpd_xmm_xmm_imm8.k b/semantics/immediateInstructions/roundpd_xmm_xmm_imm8.k index 3d905be1e..64d633062 100644 --- a/semantics/immediateInstructions/roundpd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/roundpd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module ROUNDPD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (roundpd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (roundpd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 128, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 128, 192), Imm8), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/roundps_xmm_xmm_imm8.k b/semantics/immediateInstructions/roundps_xmm_xmm_imm8.k index 01122c836..2b65954aa 100644 --- a/semantics/immediateInstructions/roundps_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/roundps_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module ROUNDPS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (roundps Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (roundps Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/roundsd_xmm_xmm_imm8.k b/semantics/immediateInstructions/roundsd_xmm_xmm_imm8.k index ac19aef92..b9a39369a 100644 --- a/semantics/immediateInstructions/roundsd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/roundsd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module ROUNDSD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (roundsd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (roundsd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 192), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 192), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/roundss_xmm_xmm_imm8.k b/semantics/immediateInstructions/roundss_xmm_xmm_imm8.k index 1b4627a59..c9cb2ebcd 100644 --- a/semantics/immediateInstructions/roundss_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/roundss_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module ROUNDSS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (roundss Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (roundss Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 224), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 224), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/salb_r8_imm8.k b/semantics/immediateInstructions/salb_r8_imm8.k index eb1b8d658..731d7b207 100644 --- a/semantics/immediateInstructions/salb_r8_imm8.k +++ b/semantics/immediateInstructions/salb_r8_imm8.k @@ -5,26 +5,27 @@ module SALB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (salb Imm8:Imm, R2:R8, .Operands) => . + execinstr (salb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/salb_rh_imm8.k b/semantics/immediateInstructions/salb_rh_imm8.k index 18f26de8b..481c601af 100644 --- a/semantics/immediateInstructions/salb_rh_imm8.k +++ b/semantics/immediateInstructions/salb_rh_imm8.k @@ -5,26 +5,27 @@ module SALB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (salb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (salb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sall_r32_imm8.k b/semantics/immediateInstructions/sall_r32_imm8.k index bd70d5bca..fc371c96a 100644 --- a/semantics/immediateInstructions/sall_r32_imm8.k +++ b/semantics/immediateInstructions/sall_r32_imm8.k @@ -5,26 +5,27 @@ module SALL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (sall Imm8:Imm, R2:R32, .Operands) => . + execinstr (sall Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 33)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/salq_r64_imm8.k b/semantics/immediateInstructions/salq_r64_imm8.k index a97ab3904..b6a9da66f 100644 --- a/semantics/immediateInstructions/salq_r64_imm8.k +++ b/semantics/immediateInstructions/salq_r64_imm8.k @@ -5,26 +5,27 @@ module SALQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (salq Imm8:Imm, R2:R64, .Operands) => . + execinstr (salq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 65) +convToRegKeys(R2) |-> extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 65) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 57, 58), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 57, 58), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 65), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 65), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/salw_r16_imm8.k b/semantics/immediateInstructions/salw_r16_imm8.k index daf6db4bc..3b91e6f6c 100644 --- a/semantics/immediateInstructions/salw_r16_imm8.k +++ b/semantics/immediateInstructions/salw_r16_imm8.k @@ -5,26 +5,27 @@ module SALW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (salw Imm8:Imm, R2:R16, .Operands) => . + execinstr (salw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 17)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 9, 10), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 9, 10), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 17), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 17), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sarb_r8_imm8.k b/semantics/immediateInstructions/sarb_r8_imm8.k index aaa4f3119..33b127101 100644 --- a/semantics/immediateInstructions/sarb_r8_imm8.k +++ b/semantics/immediateInstructions/sarb_r8_imm8.k @@ -5,26 +5,27 @@ module SARB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (sarb Imm8:Imm, R2:R8, .Operands) => . + execinstr (sarb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8)) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sarb_rh_imm8.k b/semantics/immediateInstructions/sarb_rh_imm8.k index a2bbb2422..484dbfa75 100644 --- a/semantics/immediateInstructions/sarb_rh_imm8.k +++ b/semantics/immediateInstructions/sarb_rh_imm8.k @@ -5,26 +5,27 @@ module SARB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (sarb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (sarb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sarl_r32_imm8.k b/semantics/immediateInstructions/sarl_r32_imm8.k index 3c8ca235a..1d500a865 100644 --- a/semantics/immediateInstructions/sarl_r32_imm8.k +++ b/semantics/immediateInstructions/sarl_r32_imm8.k @@ -5,26 +5,27 @@ module SARL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (sarl Imm8:Imm, R2:R32, .Operands) => . + execinstr (sarl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 32)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 32)) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 32, 33), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 32, 33), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sarq_r64_imm8.k b/semantics/immediateInstructions/sarq_r64_imm8.k index abe87b6c5..c1ddcbc44 100644 --- a/semantics/immediateInstructions/sarq_r64_imm8.k +++ b/semantics/immediateInstructions/sarq_r64_imm8.k @@ -5,26 +5,27 @@ module SARQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (sarq Imm8:Imm, R2:R64, .Operands) => . + execinstr (sarq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 64) +convToRegKeys(R2) |-> extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 64) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 64, 65), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 64, 65), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 63, 64), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 57, 58), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 56, 57), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 63, 64), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 57, 58), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 56, 57), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 64), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 64), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sarw_r16_imm8.k b/semantics/immediateInstructions/sarw_r16_imm8.k index b95200220..47c91a2eb 100644 --- a/semantics/immediateInstructions/sarw_r16_imm8.k +++ b/semantics/immediateInstructions/sarw_r16_imm8.k @@ -5,26 +5,27 @@ module SARW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (sarw Imm8:Imm, R2:R16, .Operands) => . + execinstr (sarw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 16)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 16)) -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 16, 17), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 16, 17), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 15, 16), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 9, 10), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 15, 16), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 9, 10), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 16), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 16), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sbbb_al_imm8.k b/semantics/immediateInstructions/sbbb_al_imm8.k index b284f3086..7aa8d8a4a 100644 --- a/semantics/immediateInstructions/sbbb_al_imm8.k +++ b/semantics/immediateInstructions/sbbb_al_imm8.k @@ -5,26 +5,27 @@ module SBBB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (sbbb Imm8:Imm, %al, .Operands) => . + execinstr (sbbb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9)) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sbbb_r8_imm8.k b/semantics/immediateInstructions/sbbb_r8_imm8.k index da7c9cc6f..02f1b4a23 100644 --- a/semantics/immediateInstructions/sbbb_r8_imm8.k +++ b/semantics/immediateInstructions/sbbb_r8_imm8.k @@ -5,26 +5,27 @@ module SBBB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (sbbb Imm8:Imm, R2:R8, .Operands) => . + execinstr (sbbb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sbbb_rh_imm8.k b/semantics/immediateInstructions/sbbb_rh_imm8.k index aa2791741..cf51a6ad0 100644 --- a/semantics/immediateInstructions/sbbb_rh_imm8.k +++ b/semantics/immediateInstructions/sbbb_rh_imm8.k @@ -5,26 +5,27 @@ module SBBB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (sbbb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (sbbb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sbbl_eax_imm32.k b/semantics/immediateInstructions/sbbl_eax_imm32.k index 144e8571d..2f8281dcb 100644 --- a/semantics/immediateInstructions/sbbl_eax_imm32.k +++ b/semantics/immediateInstructions/sbbl_eax_imm32.k @@ -5,26 +5,27 @@ module SBBL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (sbbl Imm32:Imm, %eax, .Operands) => . + execinstr (sbbl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33)) +"RAX" |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/sbbl_r32_imm32.k b/semantics/immediateInstructions/sbbl_r32_imm32.k index 4cea53199..c84bf62d0 100644 --- a/semantics/immediateInstructions/sbbl_r32_imm32.k +++ b/semantics/immediateInstructions/sbbl_r32_imm32.k @@ -5,26 +5,27 @@ module SBBL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (sbbl Imm32:Imm, R2:R32, .Operands) => . + execinstr (sbbl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/sbbl_r32_imm8.k b/semantics/immediateInstructions/sbbl_r32_imm8.k index b87231fa8..0dbacb0a0 100644 --- a/semantics/immediateInstructions/sbbl_r32_imm8.k +++ b/semantics/immediateInstructions/sbbl_r32_imm8.k @@ -5,26 +5,27 @@ module SBBL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (sbbl Imm8:Imm, R2:R32, .Operands) => . + execinstr (sbbl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sbbq_r64_imm32.k b/semantics/immediateInstructions/sbbq_r64_imm32.k index 1bdf5cf0a..7ff40a0a7 100644 --- a/semantics/immediateInstructions/sbbq_r64_imm32.k +++ b/semantics/immediateInstructions/sbbq_r64_imm32.k @@ -5,26 +5,27 @@ module SBBQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (sbbq Imm32:Imm, R2:R64, .Operands) => . + execinstr (sbbq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) +convToRegKeys(R2) |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/sbbq_r64_imm8.k b/semantics/immediateInstructions/sbbq_r64_imm8.k index a6e618e39..4d44c0e40 100644 --- a/semantics/immediateInstructions/sbbq_r64_imm8.k +++ b/semantics/immediateInstructions/sbbq_r64_imm8.k @@ -5,26 +5,27 @@ module SBBQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (sbbq Imm8:Imm, R2:R64, .Operands) => . + execinstr (sbbq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) +convToRegKeys(R2) |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/sbbq_rax_imm32.k b/semantics/immediateInstructions/sbbq_rax_imm32.k index 5f33798ee..9568a36fb 100644 --- a/semantics/immediateInstructions/sbbq_rax_imm32.k +++ b/semantics/immediateInstructions/sbbq_rax_imm32.k @@ -5,26 +5,27 @@ module SBBQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (sbbq Imm32:Imm, %rax, .Operands) => . + execinstr (sbbq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65) +"RAX" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/sbbw_ax_imm16.k b/semantics/immediateInstructions/sbbw_ax_imm16.k index a8c2c5bd3..758b25a49 100644 --- a/semantics/immediateInstructions/sbbw_ax_imm16.k +++ b/semantics/immediateInstructions/sbbw_ax_imm16.k @@ -5,26 +5,27 @@ module SBBW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (sbbw Imm16:Imm, %ax, .Operands) => . + execinstr (sbbw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17)) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/sbbw_r16_imm16.k b/semantics/immediateInstructions/sbbw_r16_imm16.k index 251a054d1..6d0ae3c6d 100644 --- a/semantics/immediateInstructions/sbbw_r16_imm16.k +++ b/semantics/immediateInstructions/sbbw_r16_imm16.k @@ -5,26 +5,27 @@ module SBBW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (sbbw Imm16:Imm, R2:R16, .Operands) => . + execinstr (sbbw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/sbbw_r16_imm8.k b/semantics/immediateInstructions/sbbw_r16_imm8.k index 0c9f975b2..3aeb7dd7d 100644 --- a/semantics/immediateInstructions/sbbw_r16_imm8.k +++ b/semantics/immediateInstructions/sbbw_r16_imm8.k @@ -5,26 +5,27 @@ module SBBW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (sbbw Imm8:Imm, R2:R16, .Operands) => . + execinstr (sbbw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shlb_r8_imm8.k b/semantics/immediateInstructions/shlb_r8_imm8.k index 0174e9636..4040f4247 100644 --- a/semantics/immediateInstructions/shlb_r8_imm8.k +++ b/semantics/immediateInstructions/shlb_r8_imm8.k @@ -5,26 +5,27 @@ module SHLB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (shlb Imm8:Imm, R2:R8, .Operands) => . + execinstr (shlb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shlb_rh_imm8.k b/semantics/immediateInstructions/shlb_rh_imm8.k index bfd30eb44..3e65a2faa 100644 --- a/semantics/immediateInstructions/shlb_rh_imm8.k +++ b/semantics/immediateInstructions/shlb_rh_imm8.k @@ -5,26 +5,27 @@ module SHLB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (shlb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (shlb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shldl_r32_r32_imm8.k b/semantics/immediateInstructions/shldl_r32_r32_imm8.k index 4671643c0..9bcbd4c3d 100644 --- a/semantics/immediateInstructions/shldl_r32_r32_imm8.k +++ b/semantics/immediateInstructions/shldl_r32_r32_imm8.k @@ -5,11 +5,12 @@ module SHLDL-R32-R32 imports X86-CONFIGURATION rule - execinstr (shldl Imm8:Imm, R2:R32, R1:R32, .Operands) => + execinstr (shldl Imm8:MInt, R2:R32, R1:R32, .Operands) => execinstr (shldl R1, getRegisterValue(R1, RSMap), getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 32), .Operands) + shiftCountMask(Imm8, 32), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shldl R, MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => diff --git a/semantics/immediateInstructions/shldq_r64_r64_imm8.k b/semantics/immediateInstructions/shldq_r64_r64_imm8.k index d0ec22d65..c37d6046e 100644 --- a/semantics/immediateInstructions/shldq_r64_r64_imm8.k +++ b/semantics/immediateInstructions/shldq_r64_r64_imm8.k @@ -5,11 +5,12 @@ module SHLDQ-R64-R64 imports X86-CONFIGURATION rule - execinstr (shldq Imm8:Imm, R2:R64, R1:R64, .Operands) => + execinstr (shldq Imm8:MInt, R2:R64, R1:R64, .Operands) => execinstr (shldq R1, getRegisterValue(R1, RSMap), getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 64), .Operands) + shiftCountMask(Imm8, 64), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shldq R, MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/immediateInstructions/shldw_r16_r16_imm8.k b/semantics/immediateInstructions/shldw_r16_r16_imm8.k index 184331886..a0ec3d9eb 100644 --- a/semantics/immediateInstructions/shldw_r16_r16_imm8.k +++ b/semantics/immediateInstructions/shldw_r16_r16_imm8.k @@ -5,11 +5,12 @@ module SHLDW-R16-R16 imports X86-CONFIGURATION rule - execinstr (shldw Imm8:Imm, R2:R16, R1:R16, .Operands) => + execinstr (shldw Imm8:MInt, R2:R16, R1:R16, .Operands) => execinstr (shldw R1, getRegisterValue(R1, RSMap), getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 32), .Operands) + shiftCountMask(Imm8, 32), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shldw R, MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/immediateInstructions/shll_r32_imm8.k b/semantics/immediateInstructions/shll_r32_imm8.k index 4e7ca5115..96e44fdec 100644 --- a/semantics/immediateInstructions/shll_r32_imm8.k +++ b/semantics/immediateInstructions/shll_r32_imm8.k @@ -5,26 +5,27 @@ module SHLL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (shll Imm8:Imm, R2:R32, .Operands) => . + execinstr (shll Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 33)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shlq_r64_imm8.k b/semantics/immediateInstructions/shlq_r64_imm8.k index b48fe11d4..97e23d1e6 100644 --- a/semantics/immediateInstructions/shlq_r64_imm8.k +++ b/semantics/immediateInstructions/shlq_r64_imm8.k @@ -5,26 +5,27 @@ module SHLQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (shlq Imm8:Imm, R2:R64, .Operands) => . + execinstr (shlq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 65) +convToRegKeys(R2) |-> extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 65) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 57, 58), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 57, 58), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 65), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 65), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), getParentValue(R2, RSMap)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shlw_r16_imm8.k b/semantics/immediateInstructions/shlw_r16_imm8.k index 55df900af..26db433cf 100644 --- a/semantics/immediateInstructions/shlw_r16_imm8.k +++ b/semantics/immediateInstructions/shlw_r16_imm8.k @@ -5,26 +5,27 @@ module SHLW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (shlw Imm8:Imm, R2:R16, .Operands) => . + execinstr (shlw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 17)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 9, 10), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 9, 10), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 17), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 17), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shrb_r8_imm8.k b/semantics/immediateInstructions/shrb_r8_imm8.k index 3b8d8c479..107f7f7fb 100644 --- a/semantics/immediateInstructions/shrb_r8_imm8.k +++ b/semantics/immediateInstructions/shrb_r8_imm8.k @@ -5,26 +5,27 @@ module SHRB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (shrb Imm8:Imm, R2:R8, .Operands) => . + execinstr (shrb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shrb_rh_imm8.k b/semantics/immediateInstructions/shrb_rh_imm8.k index 2a21f3d61..b71d3a547 100644 --- a/semantics/immediateInstructions/shrb_rh_imm8.k +++ b/semantics/immediateInstructions/shrb_rh_imm8.k @@ -5,26 +5,27 @@ module SHRB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (shrb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (shrb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shrdl_r32_r32_imm8.k b/semantics/immediateInstructions/shrdl_r32_r32_imm8.k index b005bfa99..69ffe4181 100644 --- a/semantics/immediateInstructions/shrdl_r32_r32_imm8.k +++ b/semantics/immediateInstructions/shrdl_r32_r32_imm8.k @@ -5,11 +5,12 @@ module SHRDL-R32-R32 imports X86-CONFIGURATION rule - execinstr (shrdl Imm8:Imm, R2:R32, R1:R32, .Operands) => + execinstr (shrdl Imm8:MInt, R2:R32, R1:R32, .Operands) => execinstr (shrdl R1, getRegisterValue(R1, RSMap), getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 32), .Operands) + shiftCountMask(Imm8, 32), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shrdl R, MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => diff --git a/semantics/immediateInstructions/shrdq_r64_r64_imm8.k b/semantics/immediateInstructions/shrdq_r64_r64_imm8.k index b3758651a..8186aa980 100644 --- a/semantics/immediateInstructions/shrdq_r64_r64_imm8.k +++ b/semantics/immediateInstructions/shrdq_r64_r64_imm8.k @@ -5,11 +5,12 @@ module SHLDQ-R64-R64 imports X86-CONFIGURATION rule - execinstr (shrdq Imm8:Imm, R2:R64, R1:R64, .Operands) => + execinstr (shrdq Imm8:MInt, R2:R64, R1:R64, .Operands) => execinstr (shrdq R1, getRegisterValue(R1, RSMap), getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 64), .Operands) + shiftCountMask(Imm8, 64), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shrdq R, MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/immediateInstructions/shrdw_r16_r16_imm8.k b/semantics/immediateInstructions/shrdw_r16_r16_imm8.k index 85326f59b..bf4ba14cb 100644 --- a/semantics/immediateInstructions/shrdw_r16_r16_imm8.k +++ b/semantics/immediateInstructions/shrdw_r16_r16_imm8.k @@ -5,11 +5,12 @@ module SHLDW-R16-R16 imports X86-CONFIGURATION rule - execinstr (shrdw Imm8:Imm, R2:R16, R1:R16, .Operands) => + execinstr (shrdw Imm8:MInt, R2:R16, R1:R16, .Operands) => execinstr (shrdw R1, getRegisterValue(R1, RSMap), getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 32), .Operands) + shiftCountMask(Imm8, 32), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shrdw R, MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/immediateInstructions/shrl_r32_imm8.k b/semantics/immediateInstructions/shrl_r32_imm8.k index 09e799d00..db234d059 100644 --- a/semantics/immediateInstructions/shrl_r32_imm8.k +++ b/semantics/immediateInstructions/shrl_r32_imm8.k @@ -5,26 +5,27 @@ module SHRL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (shrl Imm8:Imm, R2:R32, .Operands) => . + execinstr (shrl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 32)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 32)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 32, 33), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 32, 33), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shrq_r64_imm8.k b/semantics/immediateInstructions/shrq_r64_imm8.k index 4333f654e..b8fc04b9b 100644 --- a/semantics/immediateInstructions/shrq_r64_imm8.k +++ b/semantics/immediateInstructions/shrq_r64_imm8.k @@ -5,26 +5,27 @@ module SHRQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (shrq Imm8:Imm, R2:R64, .Operands) => . + execinstr (shrq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 64) +convToRegKeys(R2) |-> extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 64) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 64, 65), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 64, 65), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 63, 64), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 57, 58), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 56, 57), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 63, 64), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 57, 58), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 56, 57), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 64), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 64), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( getParentValue(R2, RSMap), mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shrw_r16_imm8.k b/semantics/immediateInstructions/shrw_r16_imm8.k index 6770d033b..44c8c50a9 100644 --- a/semantics/immediateInstructions/shrw_r16_imm8.k +++ b/semantics/immediateInstructions/shrw_r16_imm8.k @@ -5,26 +5,27 @@ module SHRW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (shrw Imm8:Imm, R2:R16, .Operands) => . + execinstr (shrw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 16)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 16)) -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 16, 17), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 16, 17), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 15, 16), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 9, 10), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 15, 16), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 9, 10), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 16), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 16), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shufpd_xmm_xmm_imm8.k b/semantics/immediateInstructions/shufpd_xmm_xmm_imm8.k index c86790412..cd66af7db 100644 --- a/semantics/immediateInstructions/shufpd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/shufpd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module SHUFPD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (shufpd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (shufpd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/shufps_xmm_xmm_imm8.k b/semantics/immediateInstructions/shufps_xmm_xmm_imm8.k index 5c6a1c7f4..5db83df0e 100644 --- a/semantics/immediateInstructions/shufps_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/shufps_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module SHUFPS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (shufps Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (shufps Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/subb_al_imm8.k b/semantics/immediateInstructions/subb_al_imm8.k index 618562cae..a8b857ea8 100644 --- a/semantics/immediateInstructions/subb_al_imm8.k +++ b/semantics/immediateInstructions/subb_al_imm8.k @@ -5,26 +5,27 @@ module SUBB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (subb Imm8:Imm, %al, .Operands) => . + execinstr (subb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9)) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/subb_r8_imm8.k b/semantics/immediateInstructions/subb_r8_imm8.k index 387d456f2..a43a7548d 100644 --- a/semantics/immediateInstructions/subb_r8_imm8.k +++ b/semantics/immediateInstructions/subb_r8_imm8.k @@ -5,26 +5,27 @@ module SUBB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (subb Imm8:Imm, R2:R8, .Operands) => . + execinstr (subb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 56, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/subb_rh_imm8.k b/semantics/immediateInstructions/subb_rh_imm8.k index e543de998..7c245cf10 100644 --- a/semantics/immediateInstructions/subb_rh_imm8.k +++ b/semantics/immediateInstructions/subb_rh_imm8.k @@ -5,26 +5,27 @@ module SUBB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (subb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (subb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9)), extractMInt( getParentValue(R2, RSMap), 56, 64)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 51, 52)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 56))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/subl_eax_imm32.k b/semantics/immediateInstructions/subl_eax_imm32.k index 29cd97b6a..c0ff3bfaf 100644 --- a/semantics/immediateInstructions/subl_eax_imm32.k +++ b/semantics/immediateInstructions/subl_eax_imm32.k @@ -5,26 +5,27 @@ module SUBL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (subl Imm32:Imm, %eax, .Operands) => . + execinstr (subl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33)) +"RAX" |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/subl_r32_imm32.k b/semantics/immediateInstructions/subl_r32_imm32.k index 0755bbf2d..33b4699d9 100644 --- a/semantics/immediateInstructions/subl_r32_imm32.k +++ b/semantics/immediateInstructions/subl_r32_imm32.k @@ -5,26 +5,27 @@ module SUBL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (subl Imm32:Imm, R2:R32, .Operands) => . + execinstr (subl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/subl_r32_imm8.k b/semantics/immediateInstructions/subl_r32_imm8.k index 8bc784fb6..c211b17c1 100644 --- a/semantics/immediateInstructions/subl_r32_imm8.k +++ b/semantics/immediateInstructions/subl_r32_imm8.k @@ -5,26 +5,27 @@ module SUBL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (subl Imm8:Imm, R2:R32, .Operands) => . + execinstr (subl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 32, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/subq_r64_imm32.k b/semantics/immediateInstructions/subq_r64_imm32.k index 431209925..61eab8859 100644 --- a/semantics/immediateInstructions/subq_r64_imm32.k +++ b/semantics/immediateInstructions/subq_r64_imm32.k @@ -5,26 +5,27 @@ module SUBQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (subq Imm32:Imm, R2:R64, .Operands) => . + execinstr (subq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) +convToRegKeys(R2) |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/subq_r64_imm8.k b/semantics/immediateInstructions/subq_r64_imm8.k index 43dc68abb..7e7143bb6 100644 --- a/semantics/immediateInstructions/subq_r64_imm8.k +++ b/semantics/immediateInstructions/subq_r64_imm8.k @@ -5,26 +5,27 @@ module SUBQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (subq Imm8:Imm, R2:R64, .Operands) => . + execinstr (subq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) +convToRegKeys(R2) |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(R2, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/subq_rax_imm32.k b/semantics/immediateInstructions/subq_rax_imm32.k index 55b2eea31..fcb689e44 100644 --- a/semantics/immediateInstructions/subq_rax_imm32.k +++ b/semantics/immediateInstructions/subq_rax_imm32.k @@ -5,26 +5,27 @@ module SUBQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (subq Imm32:Imm, %rax, .Operands) => . + execinstr (subq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65) +"RAX" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), getParentValue(%rax, RSMap))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/subw_ax_imm16.k b/semantics/immediateInstructions/subw_ax_imm16.k index b06af6178..30e03aec1 100644 --- a/semantics/immediateInstructions/subw_ax_imm16.k +++ b/semantics/immediateInstructions/subw_ax_imm16.k @@ -5,26 +5,27 @@ module SUBW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (subw Imm16:Imm, %ax, .Operands) => . + execinstr (subw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17)) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(%rax, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(%rax, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/subw_r16_imm16.k b/semantics/immediateInstructions/subw_r16_imm16.k index adf372649..c7dcc5abe 100644 --- a/semantics/immediateInstructions/subw_r16_imm16.k +++ b/semantics/immediateInstructions/subw_r16_imm16.k @@ -5,26 +5,27 @@ module SUBW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (subw Imm16:Imm, R2:R16, .Operands) => . + execinstr (subw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/subw_r16_imm8.k b/semantics/immediateInstructions/subw_r16_imm8.k index bcb7196b4..db1f91929 100644 --- a/semantics/immediateInstructions/subw_r16_imm8.k +++ b/semantics/immediateInstructions/subw_r16_imm8.k @@ -5,26 +5,27 @@ module SUBW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (subw Imm8:Imm, R2:R16, .Operands) => . + execinstr (subw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17)) -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( getParentValue(R2, RSMap), 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), extractMInt( getParentValue(R2, RSMap), 48, 64))), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/testb_al_imm8.k b/semantics/immediateInstructions/testb_al_imm8.k index 00b0709b1..99ddee5e5 100644 --- a/semantics/immediateInstructions/testb_al_imm8.k +++ b/semantics/immediateInstructions/testb_al_imm8.k @@ -5,24 +5,25 @@ module TESTB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (testb Imm8:Imm, %al, .Operands) => . + execinstr (testb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/testb_r8_imm8.k b/semantics/immediateInstructions/testb_r8_imm8.k index 2917ddb10..46ea4daed 100644 --- a/semantics/immediateInstructions/testb_r8_imm8.k +++ b/semantics/immediateInstructions/testb_r8_imm8.k @@ -5,24 +5,25 @@ module TESTB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (testb Imm8:Imm, R2:R8, .Operands) => . + execinstr (testb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/testb_rh_imm8.k b/semantics/immediateInstructions/testb_rh_imm8.k index d2535cf3d..fe652acf1 100644 --- a/semantics/immediateInstructions/testb_rh_imm8.k +++ b/semantics/immediateInstructions/testb_rh_imm8.k @@ -5,24 +5,25 @@ module TESTB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (testb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (testb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 55, 56), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 54, 55), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 53, 54), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 52, 53), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 51, 52), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 50, 51), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 49, 50), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 55, 56), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 54, 55), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 53, 54), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 52, 53), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 51, 52), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 50, 51), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 49, 50), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/testl_eax_imm32.k b/semantics/immediateInstructions/testl_eax_imm32.k index c74ce0f0b..ab7b1c10b 100644 --- a/semantics/immediateInstructions/testl_eax_imm32.k +++ b/semantics/immediateInstructions/testl_eax_imm32.k @@ -5,24 +5,25 @@ module TESTL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (testl Imm32:Imm, %eax, .Operands) => . + execinstr (testl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/testl_r32_imm32.k b/semantics/immediateInstructions/testl_r32_imm32.k index af624c5f6..4f2510169 100644 --- a/semantics/immediateInstructions/testl_r32_imm32.k +++ b/semantics/immediateInstructions/testl_r32_imm32.k @@ -5,24 +5,25 @@ module TESTL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (testl Imm32:Imm, R2:R32, .Operands) => . + execinstr (testl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/testq_r64_imm32.k b/semantics/immediateInstructions/testq_r64_imm32.k index 0bae894e7..63c1b68be 100644 --- a/semantics/immediateInstructions/testq_r64_imm32.k +++ b/semantics/immediateInstructions/testq_r64_imm32.k @@ -5,24 +5,25 @@ module TESTQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (testq Imm32:Imm, R2:R64, .Operands) => . + execinstr (testq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/testq_rax_imm32.k b/semantics/immediateInstructions/testq_rax_imm32.k index f470eeba8..bd2c6c983 100644 --- a/semantics/immediateInstructions/testq_rax_imm32.k +++ b/semantics/immediateInstructions/testq_rax_imm32.k @@ -5,24 +5,25 @@ module TESTQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (testq Imm32:Imm, %rax, .Operands) => . + execinstr (testq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/testw_ax_imm16.k b/semantics/immediateInstructions/testw_ax_imm16.k index b1976b2ce..18d1030ff 100644 --- a/semantics/immediateInstructions/testw_ax_imm16.k +++ b/semantics/immediateInstructions/testw_ax_imm16.k @@ -5,24 +5,25 @@ module TESTW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (testw Imm16:Imm, %ax, .Operands) => . + execinstr (testw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/testw_r16_imm16.k b/semantics/immediateInstructions/testw_r16_imm16.k index b7ced050b..f1c729743 100644 --- a/semantics/immediateInstructions/testw_r16_imm16.k +++ b/semantics/immediateInstructions/testw_r16_imm16.k @@ -5,24 +5,25 @@ module TESTW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (testw Imm16:Imm, R2:R16, .Operands) => . + execinstr (testw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> andMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/vblendpd_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vblendpd_xmm_xmm_xmm_imm8.k index 3ee018fd2..6fedd58aa 100644 --- a/semantics/immediateInstructions/vblendpd_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vblendpd_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VBLENDPD-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vblendpd Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vblendpd Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vblendpd_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vblendpd_ymm_ymm_ymm_imm8.k index 2b4f0530f..41d9e07f4 100644 --- a/semantics/immediateInstructions/vblendpd_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vblendpd_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VBLENDPD-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vblendpd Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vblendpd Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 128) #else extractMInt( getParentValue(R2, RSMap), 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi)))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 128) #else extractMInt( getParentValue(R2, RSMap), 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vblendps_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vblendps_xmm_xmm_xmm_imm8.k index f8ca5b094..efd6ef5d6 100644 --- a/semantics/immediateInstructions/vblendps_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vblendps_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VBLENDPS-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vblendps Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vblendps Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vblendps_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vblendps_ymm_ymm_ymm_imm8.k index b1879648f..800b2246c 100644 --- a/semantics/immediateInstructions/vblendps_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vblendps_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VBLENDPS-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vblendps Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vblendps Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 96) #else extractMInt( getParentValue(R2, RSMap), 64, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 128) #else extractMInt( getParentValue(R2, RSMap), 96, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi)))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 96) #else extractMInt( getParentValue(R2, RSMap), 64, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 128) #else extractMInt( getParentValue(R2, RSMap), 96, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vcmppd_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vcmppd_xmm_xmm_xmm_imm8.k index 96ee895b5..a5fa7aef6 100644 --- a/semantics/immediateInstructions/vcmppd_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vcmppd_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VCMPPD-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vcmppd Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vcmppd Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vcmppd_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vcmppd_ymm_ymm_ymm_imm8.k index cad4e5ef0..fe4085da0 100644 --- a/semantics/immediateInstructions/vcmppd_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vcmppd_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VCMPPD-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vcmppd Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vcmppd Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 0, 64), extractMInt( getParentValue(R2, RSMap), 0, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 64, 128), extractMInt( getParentValue(R2, RSMap), 64, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi)))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 0, 64), extractMInt( getParentValue(R2, RSMap), 0, 64), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 64, 128), extractMInt( getParentValue(R2, RSMap), 64, 128), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vcmpps_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vcmpps_xmm_xmm_xmm_imm8.k index fa90167e3..c91209c6d 100644 --- a/semantics/immediateInstructions/vcmpps_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vcmpps_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VCMPPS-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vcmpps Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vcmpps Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vcmpps_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vcmpps_ymm_ymm_ymm_imm8.k index e08fe406c..0e602f16e 100644 --- a/semantics/immediateInstructions/vcmpps_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vcmpps_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VCMPPS-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vcmpps Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vcmpps Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi)))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vcmpsd_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vcmpsd_xmm_xmm_xmm_imm8.k index 49e9c555f..e0d0e21c1 100644 --- a/semantics/immediateInstructions/vcmpsd_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vcmpsd_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VCMPSD-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vcmpsd Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vcmpsd Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 192), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 192), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vcmpss_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vcmpss_xmm_xmm_xmm_imm8.k index 687eb73a4..a5980ae2c 100644 --- a/semantics/immediateInstructions/vcmpss_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vcmpss_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VCMPSS-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vcmpss Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vcmpss Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 224), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 224), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vcvtps2ph_xmm_xmm_imm8.k b/semantics/immediateInstructions/vcvtps2ph_xmm_xmm_imm8.k index 4fea4a289..d67bd86eb 100644 --- a/semantics/immediateInstructions/vcvtps2ph_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vcvtps2ph_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VCVTPS2PH-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vcvtps2ph Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vcvtps2ph Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(192, 0), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(192, 0), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vcvtps2ph_xmm_ymm_imm8.k b/semantics/immediateInstructions/vcvtps2ph_xmm_ymm_imm8.k index 8634980c7..1260fd796 100644 --- a/semantics/immediateInstructions/vcvtps2ph_xmm_ymm_imm8.k +++ b/semantics/immediateInstructions/vcvtps2ph_xmm_ymm_imm8.k @@ -5,14 +5,15 @@ module VCVTPS2PH-XMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vcvtps2ph Imm8:Imm, R2:Ymm, R3:Xmm, .Operands) => . + execinstr (vcvtps2ph Imm8:MInt, R2:Ymm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)))))))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 0, 32), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 32, 64), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 64, 96), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 96, 128), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 128, 160), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 160, 192), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 192, 224), Imm8), cvt_single_to_fp16_rm(extractMInt( getParentValue(R3, RSMap), 224, 256), Imm8))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vdppd_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vdppd_xmm_xmm_xmm_imm8.k index 7643dd596..2bdf3f065 100644 --- a/semantics/immediateInstructions/vdppd_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vdppd_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VDPPD-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vdppd Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vdppd Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( getParentValue(R2, RSMap), 192, 256)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( getParentValue(R2, RSMap), 128, 192)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vdpps_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vdpps_xmm_xmm_xmm_imm8.k index 84d86ff46..eae75de42 100644 --- a/semantics/immediateInstructions/vdpps_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vdpps_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VDPPS-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vdpps Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vdpps Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vdpps_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vdpps_ymm_ymm_ymm_imm8.k index cf31908f8..c75495cc8 100644 --- a/semantics/immediateInstructions/vdpps_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vdpps_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VDPPS-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vdpps Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vdpps Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( getParentValue(R2, RSMap), 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( getParentValue(R2, RSMap), 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( getParentValue(R2, RSMap), 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( getParentValue(R2, RSMap), 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( getParentValue(R2, RSMap), 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( getParentValue(R2, RSMap), 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( getParentValue(R2, RSMap), 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( getParentValue(R2, RSMap), 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vextractf128_xmm_ymm_imm8.k b/semantics/immediateInstructions/vextractf128_xmm_ymm_imm8.k index ee009d9cc..ca0a85a25 100644 --- a/semantics/immediateInstructions/vextractf128_xmm_ymm_imm8.k +++ b/semantics/immediateInstructions/vextractf128_xmm_ymm_imm8.k @@ -5,14 +5,15 @@ module VEXTRACTF128-XMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vextractf128 Imm8:Imm, R2:Ymm, R3:Xmm, .Operands) => . + execinstr (vextractf128 Imm8:MInt, R2:Ymm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else extractMInt( getParentValue(R3, RSMap), 0, 128) #fi)) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else extractMInt( getParentValue(R3, RSMap), 0, 128) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vextracti128_xmm_ymm_imm8.k b/semantics/immediateInstructions/vextracti128_xmm_ymm_imm8.k index e2413f804..423412316 100644 --- a/semantics/immediateInstructions/vextracti128_xmm_ymm_imm8.k +++ b/semantics/immediateInstructions/vextracti128_xmm_ymm_imm8.k @@ -5,14 +5,15 @@ module VEXTRACTI128-XMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vextracti128 Imm8:Imm, R2:Ymm, R3:Xmm, .Operands) => . + execinstr (vextracti128 Imm8:MInt, R2:Ymm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else extractMInt( getParentValue(R3, RSMap), 0, 128) #fi)) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else extractMInt( getParentValue(R3, RSMap), 0, 128) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vextractps_r32_xmm_imm8.k b/semantics/immediateInstructions/vextractps_r32_xmm_imm8.k index 33b73fa68..c2449f05c 100644 --- a/semantics/immediateInstructions/vextractps_r32_xmm_imm8.k +++ b/semantics/immediateInstructions/vextractps_r32_xmm_imm8.k @@ -5,14 +5,15 @@ module VEXTRACTPS-R32-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vextractps Imm8:Imm, R2:Xmm, R3:R32, .Operands) => . + execinstr (vextractps Imm8:MInt, R2:Xmm, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vinsertf128_ymm_ymm_xmm_imm8.k b/semantics/immediateInstructions/vinsertf128_ymm_ymm_xmm_imm8.k index f5b7f8f85..9974c3c3d 100644 --- a/semantics/immediateInstructions/vinsertf128_ymm_ymm_xmm_imm8.k +++ b/semantics/immediateInstructions/vinsertf128_ymm_ymm_xmm_imm8.k @@ -5,14 +5,15 @@ module VINSERTF128-YMM-YMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vinsertf128 Imm8:Imm, R2:Xmm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vinsertf128 Imm8:MInt, R2:Xmm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( getParentValue(R2, RSMap), 128, 256)) #else concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), extractMInt( getParentValue(R3, RSMap), 128, 256)) #fi) +convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( getParentValue(R2, RSMap), 128, 256)) #else concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), extractMInt( getParentValue(R3, RSMap), 128, 256)) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vinserti128_ymm_ymm_xmm_imm8.k b/semantics/immediateInstructions/vinserti128_ymm_ymm_xmm_imm8.k index f036b5da0..5164dbda5 100644 --- a/semantics/immediateInstructions/vinserti128_ymm_ymm_xmm_imm8.k +++ b/semantics/immediateInstructions/vinserti128_ymm_ymm_xmm_imm8.k @@ -5,14 +5,15 @@ module VINSERTI128-YMM-YMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vinserti128 Imm8:Imm, R2:Xmm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vinserti128 Imm8:MInt, R2:Xmm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( getParentValue(R2, RSMap), 128, 256)) #else concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), extractMInt( getParentValue(R3, RSMap), 128, 256)) #fi) +convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( getParentValue(R2, RSMap), 128, 256)) #else concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), extractMInt( getParentValue(R3, RSMap), 128, 256)) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vinsertps_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vinsertps_xmm_xmm_xmm_imm8.k index c21683704..59d10863a 100644 --- a/semantics/immediateInstructions/vinsertps_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vinsertps_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VINSERTPS-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vinsertps Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vinsertps Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #fi) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 160, 192) #fi) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #fi) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 160, 192) #fi) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vmpsadbw_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vmpsadbw_xmm_xmm_xmm_imm8.k index 46056ab72..23adeda1e 100644 --- a/semantics/immediateInstructions/vmpsadbw_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vmpsadbw_xmm_xmm_xmm_imm8.k @@ -4,43 +4,44 @@ module VMPSADBW-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vmpsadbw Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vmpsadbw Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => execinstr (vmpsadbw selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 7 , 0 ), + extractMInt(Imm8, 6, 8), 7 , 0 ), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 15, 8 ), + extractMInt(Imm8, 6, 8), 15, 8 ), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 23, 16), + extractMInt(Imm8, 6, 8), 23, 16), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 31, 24), + extractMInt(Imm8, 6, 8), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 7 , 0), + extractMInt(Imm8, 5, 6), 7 , 0), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 15, 8), + extractMInt(Imm8, 5, 6), 15, 8), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 23, 16), + extractMInt(Imm8, 5, 6), 23, 16), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 31, 24), + extractMInt(Imm8, 5, 6), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 39, 32), + extractMInt(Imm8, 5, 6), 39, 32), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 47, 40), + extractMInt(Imm8, 5, 6), 47, 40), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 55, 48), + extractMInt(Imm8, 5, 6), 55, 48), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 63, 56), + extractMInt(Imm8, 5, 6), 63, 56), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 71, 64), + extractMInt(Imm8, 5, 6), 71, 64), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 79, 72), + extractMInt(Imm8, 5, 6), 79, 72), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 87, 80), + extractMInt(Imm8, 5, 6), 87, 80), R4:Xmm, .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (vmpsadbw diff --git a/semantics/immediateInstructions/vmpsadbw_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vmpsadbw_ymm_ymm_ymm_imm8.k index 18783c715..4939338ef 100644 --- a/semantics/immediateInstructions/vmpsadbw_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vmpsadbw_ymm_ymm_ymm_imm8.k @@ -5,93 +5,94 @@ module VMPSADBW-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vmpsadbw Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vmpsadbw Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => execinstr (vmpsadbw //Low slices selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 7 , 0 ), + extractMInt(Imm8, 6, 8), 7 , 0 ), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 15, 8 ), + extractMInt(Imm8, 6, 8), 15, 8 ), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 23, 16), + extractMInt(Imm8, 6, 8), 23, 16), selectSliceMPSAD(getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 31, 24), + extractMInt(Imm8, 6, 8), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 7 , 0), + extractMInt(Imm8, 5, 6), 7 , 0), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 15, 8), + extractMInt(Imm8, 5, 6), 15, 8), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 23, 16), + extractMInt(Imm8, 5, 6), 23, 16), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 31, 24), + extractMInt(Imm8, 5, 6), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 39, 32), + extractMInt(Imm8, 5, 6), 39, 32), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 47, 40), + extractMInt(Imm8, 5, 6), 47, 40), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 55, 48), + extractMInt(Imm8, 5, 6), 55, 48), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 63, 56), + extractMInt(Imm8, 5, 6), 63, 56), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 71, 64), + extractMInt(Imm8, 5, 6), 71, 64), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 79, 72), + extractMInt(Imm8, 5, 6), 79, 72), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 87, 80), + extractMInt(Imm8, 5, 6), 87, 80), //High slices selectSliceMPSAD( getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 3, 5), 7 +Int + extractMInt(Imm8, 3, 5), 7 +Int 128, 0 +Int 128), selectSliceMPSAD( getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 3, 5), 15+Int + extractMInt(Imm8, 3, 5), 15+Int 128, 8 +Int 128), selectSliceMPSAD( getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 3, 5), 23+Int + extractMInt(Imm8, 3, 5), 23+Int 128, 16+Int 128), selectSliceMPSAD( getRegisterValue(R2, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 3, 5), 31+Int + extractMInt(Imm8, 3, 5), 31+Int 128, 24+Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 7 + extractMInt(Imm8, 2, 3), 7 +Int 128, 0 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 15 + extractMInt(Imm8, 2, 3), 15 +Int 128, 8 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 23 + extractMInt(Imm8, 2, 3), 23 +Int 128, 16 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 31 + extractMInt(Imm8, 2, 3), 31 +Int 128, 24 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 39 + extractMInt(Imm8, 2, 3), 39 +Int 128, 32 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 47 + extractMInt(Imm8, 2, 3), 47 +Int 128, 40 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 55 + extractMInt(Imm8, 2, 3), 55 +Int 128, 48 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 63 + extractMInt(Imm8, 2, 3), 63 +Int 128, 56 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 71 + extractMInt(Imm8, 2, 3), 71 +Int 128, 64 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 79 + extractMInt(Imm8, 2, 3), 79 +Int 128, 72 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 87 + extractMInt(Imm8, 2, 3), 87 +Int 128, 80 +Int 128), R4:Ymm, .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule diff --git a/semantics/immediateInstructions/vpalignr_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpalignr_xmm_xmm_xmm_imm8.k index f11895469..9e104f62b 100644 --- a/semantics/immediateInstructions/vpalignr_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpalignr_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPALIGNR-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpalignr Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vpalignr Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), extractMInt( getParentValue(R2, RSMap), 128, 256)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), uvalueMInt(mi(256, 3))))), 128, 256)) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), extractMInt( getParentValue(R2, RSMap), 128, 256)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), Imm8), uvalueMInt(mi(256, 3))))), 128, 256)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpalignr_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpalignr_ymm_ymm_ymm_imm8.k index f07e6a747..5bbc52a69 100644 --- a/semantics/immediateInstructions/vpalignr_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpalignr_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPALIGNR-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpalignr Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vpalignr Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( getParentValue(R2, RSMap), 0, 128)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), uvalueMInt(mi(256, 3))))), 128, 256), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), extractMInt( getParentValue(R2, RSMap), 128, 256)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), uvalueMInt(mi(256, 3))))), 128, 256)) +convToRegKeys(R4) |-> concatenateMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( getParentValue(R2, RSMap), 0, 128)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), Imm8), uvalueMInt(mi(256, 3))))), 128, 256), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), extractMInt( getParentValue(R2, RSMap), 128, 256)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), Imm8), uvalueMInt(mi(256, 3))))), 128, 256)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpblendd_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpblendd_xmm_xmm_xmm_imm8.k index 43916d914..0a41f0c2b 100644 --- a/semantics/immediateInstructions/vpblendd_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpblendd_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPBLENDD-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpblendd Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vpblendd Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpblendd_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpblendd_ymm_ymm_ymm_imm8.k index 1d2114725..a126c731d 100644 --- a/semantics/immediateInstructions/vpblendd_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpblendd_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPBLENDD-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpblendd Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vpblendd Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 96) #else extractMInt( getParentValue(R2, RSMap), 64, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 128) #else extractMInt( getParentValue(R2, RSMap), 96, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi)))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 96) #else extractMInt( getParentValue(R2, RSMap), 64, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 128) #else extractMInt( getParentValue(R2, RSMap), 96, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpblendw_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpblendw_xmm_xmm_xmm_imm8.k index b57e01ea0..5f7d8143f 100644 --- a/semantics/immediateInstructions/vpblendw_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpblendw_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPBLENDW-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpblendw Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vpblendw Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( getParentValue(R2, RSMap), 128, 144) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( getParentValue(R2, RSMap), 144, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( getParentValue(R2, RSMap), 160, 176) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( getParentValue(R2, RSMap), 176, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( getParentValue(R2, RSMap), 192, 208) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( getParentValue(R2, RSMap), 208, 224) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( getParentValue(R2, RSMap), 224, 240) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( getParentValue(R2, RSMap), 240, 256) #fi))))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( getParentValue(R2, RSMap), 128, 144) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( getParentValue(R2, RSMap), 144, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( getParentValue(R2, RSMap), 160, 176) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( getParentValue(R2, RSMap), 176, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( getParentValue(R2, RSMap), 192, 208) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( getParentValue(R2, RSMap), 208, 224) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( getParentValue(R2, RSMap), 224, 240) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( getParentValue(R2, RSMap), 240, 256) #fi))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpblendw_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpblendw_ymm_ymm_ymm_imm8.k index f92d32b14..e706ad81c 100644 --- a/semantics/immediateInstructions/vpblendw_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpblendw_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPBLENDW-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpblendw Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vpblendw Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 16) #else extractMInt( getParentValue(R2, RSMap), 0, 16) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 16, 32) #else extractMInt( getParentValue(R2, RSMap), 16, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 48) #else extractMInt( getParentValue(R2, RSMap), 32, 48) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 48, 64) #else extractMInt( getParentValue(R2, RSMap), 48, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 80) #else extractMInt( getParentValue(R2, RSMap), 64, 80) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 80, 96) #else extractMInt( getParentValue(R2, RSMap), 80, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 112) #else extractMInt( getParentValue(R2, RSMap), 96, 112) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 112, 128) #else extractMInt( getParentValue(R2, RSMap), 112, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( getParentValue(R2, RSMap), 128, 144) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( getParentValue(R2, RSMap), 144, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( getParentValue(R2, RSMap), 160, 176) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( getParentValue(R2, RSMap), 176, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( getParentValue(R2, RSMap), 192, 208) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( getParentValue(R2, RSMap), 208, 224) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( getParentValue(R2, RSMap), 224, 240) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( getParentValue(R2, RSMap), 240, 256) #fi)))))))))))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 16) #else extractMInt( getParentValue(R2, RSMap), 0, 16) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 16, 32) #else extractMInt( getParentValue(R2, RSMap), 16, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 48) #else extractMInt( getParentValue(R2, RSMap), 32, 48) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 48, 64) #else extractMInt( getParentValue(R2, RSMap), 48, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 80) #else extractMInt( getParentValue(R2, RSMap), 64, 80) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 80, 96) #else extractMInt( getParentValue(R2, RSMap), 80, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 112) #else extractMInt( getParentValue(R2, RSMap), 96, 112) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 112, 128) #else extractMInt( getParentValue(R2, RSMap), 112, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( getParentValue(R2, RSMap), 128, 144) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( getParentValue(R2, RSMap), 144, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( getParentValue(R2, RSMap), 160, 176) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( getParentValue(R2, RSMap), 176, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( getParentValue(R2, RSMap), 192, 208) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( getParentValue(R2, RSMap), 208, 224) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( getParentValue(R2, RSMap), 224, 240) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( getParentValue(R2, RSMap), 240, 256) #fi)))))))))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpclmulqdq_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpclmulqdq_xmm_xmm_xmm_imm8.k index 87678aeda..5f21aeeea 100644 --- a/semantics/immediateInstructions/vpclmulqdq_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpclmulqdq_xmm_xmm_xmm_imm8.k @@ -18,15 +18,14 @@ module VPCLMULQDQ-XMM-XMM-XMM-IMM8 TEMP2←SRC2 [127:64]; */ rule - execinstr (vpclmulqdq Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpclmulqdq Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => execinstr(vpclmulqdq - selectSlice(getRegisterValue(R3, RSMap), handleImmediateWithSignExtend(Imm8, - 8, 8), 7, 64, 0), - selectSlice(getRegisterValue(R2, RSMap), handleImmediateWithSignExtend(Imm8, - 8, 8), 3, 64, 0), R4 + selectSlice(getRegisterValue(R3, RSMap), Imm8, 7, 64, 0), + selectSlice(getRegisterValue(R2, RSMap), Imm8, 3, 64, 0), R4 , .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (vpclmulqdq TEMP1:MInt, TEMP2:MInt, R4:Xmm, .Operands) => diff --git a/semantics/immediateInstructions/vpcmpestri_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpcmpestri_xmm_xmm_imm8.k index ecd631f0b..4efbc5984 100644 --- a/semantics/immediateInstructions/vpcmpestri_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpcmpestri_xmm_xmm_imm8.k @@ -6,16 +6,17 @@ module VPCMPESTRI-XMM-XMM-IMM8 // Find Limit Index rule - execinstr (vpcmpestri Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (vpcmpestri Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (vpcmpestri - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, getRegisterValue(Xmm2, RSMap), getRegisterValue(Xmm1, RSMap), - findLimitIndexE(getRegisterValue(Xmm2, RSMap), getRegisterValue(%rdx, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexE(getRegisterValue(Xmm2, RSMap), getRegisterValue(%rdx, RSMap), Imm8), + findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/immediateInstructions/vpcmpestrm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpcmpestrm_xmm_xmm_imm8.k index 49ea51ba3..dbc5620db 100644 --- a/semantics/immediateInstructions/vpcmpestrm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpcmpestrm_xmm_xmm_imm8.k @@ -6,16 +6,17 @@ module VPCMPESTRM-XMM-XMM-IMM8 // Find Limit Index rule - execinstr (vpcmpestrm Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (vpcmpestrm Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (vpcmpestrm - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, getRegisterValue(Xmm2, RSMap), getRegisterValue(Xmm1, RSMap), - findLimitIndexE(getRegisterValue(Xmm2, RSMap), getRegisterValue(%rdx, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexE(getRegisterValue(Xmm2, RSMap), getRegisterValue(%rdx, RSMap), Imm8), + findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/immediateInstructions/vpcmpistri_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpcmpistri_xmm_xmm_imm8.k index 01874f9fc..9adee87ad 100644 --- a/semantics/immediateInstructions/vpcmpistri_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpcmpistri_xmm_xmm_imm8.k @@ -6,16 +6,17 @@ module VPCMPISTRI-XMM-XMM-IMM8 // Find Limit Index rule - execinstr (vpcmpistri Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (vpcmpistri Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (vpcmpistri - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, getRegisterValue(Xmm2, RSMap), getRegisterValue(Xmm1, RSMap), - findLimitIndexI(getRegisterValue(Xmm2, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexI(getRegisterValue(Xmm1, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexI(getRegisterValue(Xmm2, RSMap), Imm8), + findLimitIndexI(getRegisterValue(Xmm1, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/immediateInstructions/vpcmpistrm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpcmpistrm_xmm_xmm_imm8.k index bb05a5a7d..fcfb65b8e 100644 --- a/semantics/immediateInstructions/vpcmpistrm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpcmpistrm_xmm_xmm_imm8.k @@ -6,16 +6,17 @@ module VPCMPISTRM-XMM-XMM-IMM8 // Find Limit Index rule - execinstr (vpcmpistrm Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (vpcmpistrm Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (vpcmpistrm - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, getRegisterValue(Xmm2, RSMap), getRegisterValue(Xmm1, RSMap), - findLimitIndexI(getRegisterValue(Xmm2, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexI(getRegisterValue(Xmm1, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexI(getRegisterValue(Xmm2, RSMap), Imm8), + findLimitIndexI(getRegisterValue(Xmm1, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/immediateInstructions/vperm2f128_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vperm2f128_ymm_ymm_ymm_imm8.k index 4c940b72c..1d22f5046 100644 --- a/semantics/immediateInstructions/vperm2f128_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vperm2f128_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPERM2F128-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vperm2f128 Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vperm2f128 Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi)) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi), mi(128, 0)) #else concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi)) #fi) #fi) +convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi)) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi), mi(128, 0)) #else concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi)) #fi) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vperm2i128_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vperm2i128_ymm_ymm_ymm_imm8.k index b9a4907eb..40fd4a6c3 100644 --- a/semantics/immediateInstructions/vperm2i128_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vperm2i128_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPERM2I128-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vperm2i128 Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vperm2i128 Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi)) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi), mi(128, 0)) #else concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi)) #fi) #fi) +convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi)) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi), mi(128, 0)) #else concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi) #fi) #fi)) #fi) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpermilpd_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpermilpd_xmm_xmm_imm8.k index c441f5301..e0fb6fd6f 100644 --- a/semantics/immediateInstructions/vpermilpd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpermilpd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPERMILPD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpermilpd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpermilpd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpermilpd_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpermilpd_ymm_ymm_imm8.k index 07ca15d3e..6651aa31b 100644 --- a/semantics/immediateInstructions/vpermilpd_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpermilpd_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPERMILPD-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpermilpd Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpermilpd Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 64, 128) #else extractMInt( getParentValue(R2, RSMap), 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 64, 128) #else extractMInt( getParentValue(R2, RSMap), 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi)))) +convToRegKeys(R3) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 64, 128) #else extractMInt( getParentValue(R2, RSMap), 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 64, 128) #else extractMInt( getParentValue(R2, RSMap), 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 192, 256) #else extractMInt( getParentValue(R2, RSMap), 128, 192) #fi)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpermilps_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpermilps_xmm_xmm_imm8.k index 727ac08e7..5a164c79d 100644 --- a/semantics/immediateInstructions/vpermilps_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpermilps_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPERMILPS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpermilps Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpermilps Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpermilps_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpermilps_ymm_ymm_imm8.k index 8b3adeadc..3abae2dcc 100644 --- a/semantics/immediateInstructions/vpermilps_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpermilps_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPERMILPS-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpermilps Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpermilps Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi)))))))) +convToRegKeys(R3) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R2, RSMap), 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R2, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 128, 160) #fi) #fi) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpermpd_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpermpd_ymm_ymm_imm8.k index b5e96219c..606dcc5c5 100644 --- a/semantics/immediateInstructions/vpermpd_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpermpd_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPERMPD-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpermpd Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpermpd Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 6))))), 192, 256), extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 6))))), 192, 256)))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 6))))), 192, 256), extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 6))))), 192, 256)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpermq_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpermq_ymm_ymm_imm8.k index 3fe351a2a..1232ef014 100644 --- a/semantics/immediateInstructions/vpermq_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpermq_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPERMQ-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpermq Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpermq Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 6))))), 192, 256), extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 6))))), 192, 256)))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 6))))), 192, 256), extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 6))))), 192, 256)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpextrb_r32_xmm_imm8.k b/semantics/immediateInstructions/vpextrb_r32_xmm_imm8.k index 35ecc3140..0524d2b45 100644 --- a/semantics/immediateInstructions/vpextrb_r32_xmm_imm8.k +++ b/semantics/immediateInstructions/vpextrb_r32_xmm_imm8.k @@ -5,14 +5,15 @@ module VPEXTRB-R32-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpextrb Imm8:Imm, R2:Xmm, R3:R32, .Operands) => . + execinstr (vpextrb Imm8:MInt, R2:Xmm, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(56, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(56, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpextrb_r64_xmm_imm8.k b/semantics/immediateInstructions/vpextrb_r64_xmm_imm8.k index a2ca89da4..40228395e 100644 --- a/semantics/immediateInstructions/vpextrb_r64_xmm_imm8.k +++ b/semantics/immediateInstructions/vpextrb_r64_xmm_imm8.k @@ -5,14 +5,15 @@ module VPEXTRB-R64-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpextrb Imm8:Imm, R2:Xmm, R3:R64, .Operands) => . + execinstr (vpextrb Imm8:MInt, R2:Xmm, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(56, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(56, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpextrd_r32_xmm_imm8.k b/semantics/immediateInstructions/vpextrd_r32_xmm_imm8.k index f0fda9e43..a81b794de 100644 --- a/semantics/immediateInstructions/vpextrd_r32_xmm_imm8.k +++ b/semantics/immediateInstructions/vpextrd_r32_xmm_imm8.k @@ -5,14 +5,15 @@ module VPEXTRD-R32-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpextrd Imm8:Imm, R2:Xmm, R3:R32, .Operands) => . + execinstr (vpextrd Imm8:MInt, R2:Xmm, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpextrq_r64_xmm_imm8.k b/semantics/immediateInstructions/vpextrq_r64_xmm_imm8.k index ce49e9beb..5c4b560c7 100644 --- a/semantics/immediateInstructions/vpextrq_r64_xmm_imm8.k +++ b/semantics/immediateInstructions/vpextrq_r64_xmm_imm8.k @@ -5,14 +5,15 @@ module VPEXTRQ-R64-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpextrq Imm8:Imm, R2:Xmm, R3:R64, .Operands) => . + execinstr (vpextrq Imm8:MInt, R2:Xmm, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))), 64, 128) +convToRegKeys(R3) |-> extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))), 64, 128) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpextrw_r32_xmm_imm8.k b/semantics/immediateInstructions/vpextrw_r32_xmm_imm8.k index 259dfa487..63146196c 100644 --- a/semantics/immediateInstructions/vpextrw_r32_xmm_imm8.k +++ b/semantics/immediateInstructions/vpextrw_r32_xmm_imm8.k @@ -5,14 +5,15 @@ module VPEXTRW-R32-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpextrw Imm8:Imm, R2:Xmm, R3:R32, .Operands) => . + execinstr (vpextrw Imm8:MInt, R2:Xmm, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(48, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(48, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpextrw_r64_xmm_imm8.k b/semantics/immediateInstructions/vpextrw_r64_xmm_imm8.k index 5440cfd4e..e657e5e58 100644 --- a/semantics/immediateInstructions/vpextrw_r64_xmm_imm8.k +++ b/semantics/immediateInstructions/vpextrw_r64_xmm_imm8.k @@ -5,14 +5,15 @@ module VPEXTRW-R64-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpextrw Imm8:Imm, R2:Xmm, R3:R64, .Operands) => . + execinstr (vpextrw Imm8:MInt, R2:Xmm, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(48, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128)) +convToRegKeys(R3) |-> concatenateMInt( mi(48, 0), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpinsrb_xmm_xmm_r32_imm8.k b/semantics/immediateInstructions/vpinsrb_xmm_xmm_r32_imm8.k index d26e5998c..e721c9609 100644 --- a/semantics/immediateInstructions/vpinsrb_xmm_xmm_r32_imm8.k +++ b/semantics/immediateInstructions/vpinsrb_xmm_xmm_r32_imm8.k @@ -5,14 +5,15 @@ module VPINSRB-XMM-XMM-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (vpinsrb Imm8:Imm, R2:R32, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vpinsrb Imm8:MInt, R2:R32, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3)))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpinsrd_xmm_xmm_r32_imm8.k b/semantics/immediateInstructions/vpinsrd_xmm_xmm_r32_imm8.k index 3f23f16c6..418d8fc0b 100644 --- a/semantics/immediateInstructions/vpinsrd_xmm_xmm_r32_imm8.k +++ b/semantics/immediateInstructions/vpinsrd_xmm_xmm_r32_imm8.k @@ -5,14 +5,15 @@ module VPINSRD-XMM-XMM-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (vpinsrd Imm8:Imm, R2:R32, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vpinsrd Imm8:MInt, R2:R32, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5)))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpinsrq_xmm_xmm_r64_imm8.k b/semantics/immediateInstructions/vpinsrq_xmm_xmm_r64_imm8.k index f3960b7c0..46fc1dc36 100644 --- a/semantics/immediateInstructions/vpinsrq_xmm_xmm_r64_imm8.k +++ b/semantics/immediateInstructions/vpinsrq_xmm_xmm_r64_imm8.k @@ -5,14 +5,15 @@ module VPINSRQ-XMM-XMM-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (vpinsrq Imm8:Imm, R2:R64, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vpinsrq Imm8:MInt, R2:R64, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(64, 0), getParentValue(R2, RSMap)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))), shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6)))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(64, 0), getParentValue(R2, RSMap)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))), shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpinsrw_xmm_xmm_r32_imm8.k b/semantics/immediateInstructions/vpinsrw_xmm_xmm_r32_imm8.k index 31194b38f..c6cf508d8 100644 --- a/semantics/immediateInstructions/vpinsrw_xmm_xmm_r32_imm8.k +++ b/semantics/immediateInstructions/vpinsrw_xmm_xmm_r32_imm8.k @@ -5,14 +5,15 @@ module VPINSRW-XMM-XMM-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (vpinsrw Imm8:Imm, R2:R32, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vpinsrw Imm8:MInt, R2:R32, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4)))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), extractMInt( getParentValue(R2, RSMap), 32, 64)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpshufd_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpshufd_xmm_xmm_imm8.k index 3472952e6..50fceb521 100644 --- a/semantics/immediateInstructions/vpshufd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpshufd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSHUFD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpshufd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpshufd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpshufd_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpshufd_ymm_ymm_imm8.k index be4fe86ec..e04937d7d 100644 --- a/semantics/immediateInstructions/vpshufd_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpshufd_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSHUFD-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpshufd Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpshufd Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpshufhw_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpshufhw_xmm_xmm_imm8.k index d5fab0cf4..abe2a617d 100644 --- a/semantics/immediateInstructions/vpshufhw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpshufhw_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSHUFHW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpshufhw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpshufhw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 4))))), 48, 64), extractMInt( getParentValue(R2, RSMap), 192, 256)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 4))))), 48, 64), extractMInt( getParentValue(R2, RSMap), 192, 256)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpshufhw_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpshufhw_ymm_ymm_imm8.k index d6e51ede8..d07b65afd 100644 --- a/semantics/immediateInstructions/vpshufhw_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpshufhw_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSHUFHW-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpshufhw Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpshufhw Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( getParentValue(R2, RSMap), 64, 128), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 4))))), 176, 192), extractMInt( getParentValue(R2, RSMap), 192, 256)))))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( getParentValue(R2, RSMap), 64, 128), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 4))))), 176, 192), extractMInt( getParentValue(R2, RSMap), 192, 256)))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpshuflw_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpshuflw_xmm_xmm_imm8.k index 01bbf9e9e..3f9d64295 100644 --- a/semantics/immediateInstructions/vpshuflw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpshuflw_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSHUFLW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpshuflw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpshuflw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 4))))), 112, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 4))))), 112, 128)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 4))))), 112, 128), extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 4))))), 112, 128)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpshuflw_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpshuflw_ymm_ymm_imm8.k index 399ccf9e8..94c3b26da 100644 --- a/semantics/immediateInstructions/vpshuflw_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpshuflw_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSHUFLW-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpshuflw Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpshuflw Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 64), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 4))))), 240, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 4))))), 240, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 4))))), 240, 256), extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 4))))), 240, 256)))))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 64), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 4))))), 240, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 4))))), 240, 256), concatenateMInt( extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 4))))), 240, 256), extractMInt( lshrMInt( getParentValue(R2, RSMap), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 4))))), 240, 256)))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpslld_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpslld_xmm_xmm_imm8.k index 0416825d9..4f658a82d 100644 --- a/semantics/immediateInstructions/vpslld_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpslld_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSLLD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpslld Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpslld Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpslld_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpslld_ymm_ymm_imm8.k index 5b56fa543..97f28fe8f 100644 --- a/semantics/immediateInstructions/vpslld_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpslld_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSLLD-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpslld Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpslld Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(256, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 0, 32), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 64, 96), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 96, 128), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(256, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 0, 32), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 64, 96), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 96, 128), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), Imm8)))))))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpslldq_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpslldq_xmm_xmm_imm8.k index 1e838d7c9..81cadc725 100644 --- a/semantics/immediateInstructions/vpslldq_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpslldq_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSLLDQ-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpslldq Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpslldq Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), uvalueMInt(mi(128, 3)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( Imm8, mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), Imm8) #fi), uvalueMInt(mi(128, 3)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpslldq_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpslldq_ymm_ymm_imm8.k index e0009cadf..a43d3df54 100644 --- a/semantics/immediateInstructions/vpslldq_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpslldq_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSLLDQ-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpslldq Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpslldq Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), uvalueMInt(mi(128, 3))))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), uvalueMInt(mi(128, 3)))))) +convToRegKeys(R3) |-> concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( Imm8, mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), Imm8) #fi), uvalueMInt(mi(128, 3))))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( Imm8, mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), Imm8) #fi), uvalueMInt(mi(128, 3)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsllq_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpsllq_xmm_xmm_imm8.k index e68b60273..d9e9e3493 100644 --- a/semantics/immediateInstructions/vpsllq_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpsllq_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSLLQ-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsllq Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpsllq Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsllq_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpsllq_ymm_ymm_imm8.k index 286cd7035..44c5bda6f 100644 --- a/semantics/immediateInstructions/vpsllq_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpsllq_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSLLQ-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsllq Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpsllq Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)) #then mi(256, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 0, 64), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 64, 128), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)) #then mi(256, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 0, 64), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 64, 128), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), Imm8)))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsllw_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpsllw_xmm_xmm_imm8.k index 0b59f484b..50ec2c8de 100644 --- a/semantics/immediateInstructions/vpsllw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpsllw_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSLLW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsllw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpsllw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))))))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))))))))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsllw_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpsllw_ymm_ymm_imm8.k index 3fb79d024..437973add 100644 --- a/semantics/immediateInstructions/vpsllw_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpsllw_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSLLW-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsllw Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpsllw Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(256, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 0, 16), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 16, 32), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 32, 48), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 64, 80), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 80, 96), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 96, 112), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 112, 128), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))))))))))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(256, 0) #else concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 0, 16), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 16, 32), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 32, 48), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 64, 80), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 80, 96), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 96, 112), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 112, 128), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), shiftLeftMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), Imm8)))))))))))))))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrad_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpsrad_xmm_xmm_imm8.k index f0a77bc5d..1d2635672 100644 --- a/semantics/immediateInstructions/vpsrad_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpsrad_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSRAD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrad Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpsrad Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrad_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpsrad_ymm_ymm_imm8.k index 7b635e65b..f99b84776 100644 --- a/semantics/immediateInstructions/vpsrad_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpsrad_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSRAD-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrad Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpsrad Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 0, 32), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 64, 96), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 96, 128), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi)))))))))) +convToRegKeys(R3) |-> concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 0, 32), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 64, 96), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 96, 128), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(32, 32) #else concatenateMInt( mi(24, 0), Imm8) #fi)))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsraw_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpsraw_xmm_xmm_imm8.k index 045c6f45b..7f20cbf0d 100644 --- a/semantics/immediateInstructions/vpsraw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpsraw_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSRAW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsraw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpsraw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))))))))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsraw_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpsraw_ymm_ymm_imm8.k index 175af874e..0e7743c82 100644 --- a/semantics/immediateInstructions/vpsraw_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpsraw_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSRAW-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsraw Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpsraw Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 0, 16), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 16, 32), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 32, 48), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 64, 80), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 80, 96), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 96, 112), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 112, 128), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi)))))))))))))))))) +convToRegKeys(R3) |-> concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 0, 16), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 16, 32), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 32, 48), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 64, 80), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 80, 96), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 96, 112), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 112, 128), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), concatenateMInt( aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi))), aShiftRightMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt((#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(16, 16) #else concatenateMInt( mi(8, 0), Imm8) #fi)))))))))))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrld_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpsrld_xmm_xmm_imm8.k index 15da742b1..2a39b8f50 100644 --- a/semantics/immediateInstructions/vpsrld_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpsrld_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSRLD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrld Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpsrld Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrld_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpsrld_ymm_ymm_imm8.k index 72a349d0f..978b933b9 100644 --- a/semantics/immediateInstructions/vpsrld_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpsrld_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSRLD-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrld Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpsrld Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 31)) #then mi(256, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 32), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 64, 96), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 96, 128), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 31)) #then mi(256, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 32), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 64, 96), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 96, 128), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 160), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 192), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 224), uvalueMInt(concatenateMInt( mi(24, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 256), uvalueMInt(concatenateMInt( mi(24, 0), Imm8)))))))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrldq_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpsrldq_xmm_xmm_imm8.k index 4fff94a26..694d609ba 100644 --- a/semantics/immediateInstructions/vpsrldq_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpsrldq_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSRLDQ-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrldq Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpsrldq Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), uvalueMInt(mi(128, 3)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( Imm8, mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), Imm8) #fi), uvalueMInt(mi(128, 3)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrldq_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpsrldq_ymm_ymm_imm8.k index 1c84a8358..5b96863c9 100644 --- a/semantics/immediateInstructions/vpsrldq_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpsrldq_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSRLDQ-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrldq Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpsrldq Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), uvalueMInt(mi(128, 3))))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), uvalueMInt(mi(128, 3)))))) +convToRegKeys(R3) |-> concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 128), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( Imm8, mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), Imm8) #fi), uvalueMInt(mi(128, 3))))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( (#ifMInt ugtMInt( Imm8, mi(8, 15)) #then concatenateMInt( mi(120, 0), mi(8, 16)) #else concatenateMInt( mi(120, 0), Imm8) #fi), uvalueMInt(mi(128, 3)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrlq_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpsrlq_xmm_xmm_imm8.k index a9f028f37..e939ba5fb 100644 --- a/semantics/immediateInstructions/vpsrlq_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpsrlq_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSRLQ-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrlq Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpsrlq Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrlq_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpsrlq_ymm_ymm_imm8.k index dc8e3143c..e17bbf1b4 100644 --- a/semantics/immediateInstructions/vpsrlq_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpsrlq_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSRLQ-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrlq Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpsrlq Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)) #then mi(256, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 64), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 64, 128), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)) #then mi(256, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 64), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 64, 128), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 192), uvalueMInt(concatenateMInt( mi(56, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 256), uvalueMInt(concatenateMInt( mi(56, 0), Imm8)))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrlw_xmm_xmm_imm8.k b/semantics/immediateInstructions/vpsrlw_xmm_xmm_imm8.k index feaac5ed6..fdfc88fc9 100644 --- a/semantics/immediateInstructions/vpsrlw_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vpsrlw_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VPSRLW-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrlw Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vpsrlw Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))))))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))))))))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vpsrlw_ymm_ymm_imm8.k b/semantics/immediateInstructions/vpsrlw_ymm_ymm_imm8.k index 468b8c297..895e2511d 100644 --- a/semantics/immediateInstructions/vpsrlw_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vpsrlw_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VPSRLW-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vpsrlw Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vpsrlw Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 15)) #then mi(256, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 16), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 16, 32), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 48), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 64, 80), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 80, 96), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 96, 112), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 112, 128), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8)))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), handleImmediateWithSignExtend(Imm8, 8, 8))))))))))))))))))) #fi) +convToRegKeys(R3) |-> (#ifMInt ugtMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 15)) #then mi(256, 0) #else concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 0, 16), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 16, 32), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 32, 48), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 64, 80), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 80, 96), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 96, 112), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 112, 128), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 144), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 144, 160), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 160, 176), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 176, 192), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 192, 208), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 208, 224), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), concatenateMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 224, 240), uvalueMInt(concatenateMInt( mi(8, 0), Imm8))), lshrMInt( extractMInt( getParentValue(R2, RSMap), 240, 256), uvalueMInt(concatenateMInt( mi(8, 0), Imm8)))))))))))))))))) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vroundpd_xmm_xmm_imm8.k b/semantics/immediateInstructions/vroundpd_xmm_xmm_imm8.k index 050188897..db640f24d 100644 --- a/semantics/immediateInstructions/vroundpd_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vroundpd_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VROUNDPD-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vroundpd Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vroundpd Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 128, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 128, 192), Imm8), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vroundpd_ymm_ymm_imm8.k b/semantics/immediateInstructions/vroundpd_ymm_ymm_imm8.k index 482e8f7d6..12b0c8742 100644 --- a/semantics/immediateInstructions/vroundpd_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vroundpd_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VROUNDPD-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vroundpd Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vroundpd Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 0, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 64, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 128, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8))))) +convToRegKeys(R3) |-> concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 0, 64), Imm8), concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 64, 128), Imm8), concatenateMInt( cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 128, 192), Imm8), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vroundps_xmm_xmm_imm8.k b/semantics/immediateInstructions/vroundps_xmm_xmm_imm8.k index 42d2190ce..9d699c753 100644 --- a/semantics/immediateInstructions/vroundps_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vroundps_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VROUNDPS-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vroundps Imm8:Imm, R2:Xmm, R3:Xmm, .Operands) => . + execinstr (vroundps Imm8:MInt, R2:Xmm, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vroundps_ymm_ymm_imm8.k b/semantics/immediateInstructions/vroundps_ymm_ymm_imm8.k index 72063c856..368824159 100644 --- a/semantics/immediateInstructions/vroundps_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vroundps_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VROUNDPS-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vroundps Imm8:Imm, R2:Ymm, R3:Ymm, .Operands) => . + execinstr (vroundps Imm8:MInt, R2:Ymm, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8))))))))) +convToRegKeys(R3) |-> concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 0, 32), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 32, 64), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 64, 96), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 96, 128), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vroundsd_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vroundsd_xmm_xmm_xmm_imm8.k index 7d492fc1b..57adaac82 100644 --- a/semantics/immediateInstructions/vroundsd_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vroundsd_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VROUNDSD-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vroundsd Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vroundsd Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 192), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 192), cvt_double_to_int64_rm(extractMInt( getParentValue(R2, RSMap), 192, 256), Imm8))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vroundss_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vroundss_xmm_xmm_xmm_imm8.k index a6db9c2ce..ebbc20f6a 100644 --- a/semantics/immediateInstructions/vroundss_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vroundss_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VROUNDSS-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vroundss Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vroundss Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 224), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 224), cvt_single_to_int32_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vshufpd_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vshufpd_xmm_xmm_xmm_imm8.k index 329f78599..997df08cc 100644 --- a/semantics/immediateInstructions/vshufpd_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vshufpd_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VSHUFPD-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vshufpd Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vshufpd Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vshufpd_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vshufpd_ymm_ymm_ymm_imm8.k index 1ce14cee5..3460a1480 100644 --- a/semantics/immediateInstructions/vshufpd_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vshufpd_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VSHUFPD-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vshufpd Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vshufpd Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 0, 64) #else extractMInt( getParentValue(R2, RSMap), 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 64) #else extractMInt( getParentValue(R3, RSMap), 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi)))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 0, 64) #else extractMInt( getParentValue(R2, RSMap), 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 64) #else extractMInt( getParentValue(R3, RSMap), 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 192) #else extractMInt( getParentValue(R2, RSMap), 192, 256) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vshufps_xmm_xmm_xmm_imm8.k b/semantics/immediateInstructions/vshufps_xmm_xmm_xmm_imm8.k index 3a944fb06..ca649b4cd 100644 --- a/semantics/immediateInstructions/vshufps_xmm_xmm_xmm_imm8.k +++ b/semantics/immediateInstructions/vshufps_xmm_xmm_xmm_imm8.k @@ -5,14 +5,15 @@ module VSHUFPS-XMM-XMM-XMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vshufps Imm8:Imm, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . + execinstr (vshufps Imm8:MInt, R2:Xmm, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/vshufps_ymm_ymm_ymm_imm8.k b/semantics/immediateInstructions/vshufps_ymm_ymm_ymm_imm8.k index 30a23256e..38a41a71d 100644 --- a/semantics/immediateInstructions/vshufps_ymm_ymm_ymm_imm8.k +++ b/semantics/immediateInstructions/vshufps_ymm_ymm_ymm_imm8.k @@ -5,14 +5,15 @@ module VSHUFPS-YMM-YMM-YMM-IMM8 imports X86-CONFIGURATION rule - execinstr (vshufps Imm8:Imm, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . + execinstr (vshufps Imm8:MInt, R2:Ymm, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 0, 32) #else extractMInt( getParentValue(R2, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 0, 32) #else extractMInt( getParentValue(R2, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R3, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R3, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R3, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R3, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi)))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 0, 32) #else extractMInt( getParentValue(R2, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 0, 32) #else extractMInt( getParentValue(R2, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 32, 64) #else extractMInt( getParentValue(R2, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R3, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R3, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R3, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R3, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 128, 160) #else extractMInt( getParentValue(R2, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( getParentValue(R2, RSMap), 160, 192) #else extractMInt( getParentValue(R2, RSMap), 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/xorb_al_imm8.k b/semantics/immediateInstructions/xorb_al_imm8.k index 0af254597..1018d6075 100644 --- a/semantics/immediateInstructions/xorb_al_imm8.k +++ b/semantics/immediateInstructions/xorb_al_imm8.k @@ -5,26 +5,27 @@ module XORB-AL-IMM8 imports X86-CONFIGURATION rule - execinstr (xorb Imm8:Imm, %al, .Operands) => . + execinstr (xorb Imm8:MInt, %al, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8))) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 56), xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), Imm8)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 64), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/xorb_r8_imm8.k b/semantics/immediateInstructions/xorb_r8_imm8.k index ec7753259..eae9a2526 100644 --- a/semantics/immediateInstructions/xorb_r8_imm8.k +++ b/semantics/immediateInstructions/xorb_r8_imm8.k @@ -5,26 +5,27 @@ module XORB-R8-IMM8 imports X86-CONFIGURATION rule - execinstr (xorb Imm8:Imm, R2:R8, .Operands) => . + execinstr (xorb Imm8:MInt, R2:R8, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 56), xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), Imm8)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 64), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/xorb_rh_imm8.k b/semantics/immediateInstructions/xorb_rh_imm8.k index a9a3ea477..19c5fe0e3 100644 --- a/semantics/immediateInstructions/xorb_rh_imm8.k +++ b/semantics/immediateInstructions/xorb_rh_imm8.k @@ -5,26 +5,27 @@ module XORB-RH-IMM8 imports X86-CONFIGURATION rule - execinstr (xorb Imm8:Imm, R2:Rh, .Operands) => . + execinstr (xorb Imm8:MInt, R2:Rh, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), handleImmediateWithSignExtend(Imm8, 8, 8))), extractMInt( getParentValue(R2, RSMap), 56, 64)) +convToRegKeys(R2) |-> concatenateMInt( concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), Imm8)), extractMInt( getParentValue(R2, RSMap), 56, 64)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 55, 56), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 54, 55), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 53, 54), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 52, 53), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 51, 52), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 50, 51), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 49, 50), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 55, 56), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 54, 55), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 53, 54), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 52, 53), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 51, 52), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 50, 51), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 49, 50), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 56), Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/xorl_eax_imm32.k b/semantics/immediateInstructions/xorl_eax_imm32.k index dc84f2486..1feaf1add 100644 --- a/semantics/immediateInstructions/xorl_eax_imm32.k +++ b/semantics/immediateInstructions/xorl_eax_imm32.k @@ -5,26 +5,27 @@ module XORL-EAX-IMM32 imports X86-CONFIGURATION rule - execinstr (xorl Imm32:Imm, %eax, .Operands) => . + execinstr (xorl Imm32:MInt, %eax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32))) +"RAX" |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), Imm32)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 32, 64), Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(%rax, RSMap), 32, 33), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/xorl_r32_imm32.k b/semantics/immediateInstructions/xorl_r32_imm32.k index 8e127eefa..f279404c0 100644 --- a/semantics/immediateInstructions/xorl_r32_imm32.k +++ b/semantics/immediateInstructions/xorl_r32_imm32.k @@ -5,26 +5,27 @@ module XORL-R32-IMM32 imports X86-CONFIGURATION rule - execinstr (xorl Imm32:Imm, R2:R32, .Operands) => . + execinstr (xorl Imm32:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), Imm32)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/xorl_r32_imm8.k b/semantics/immediateInstructions/xorl_r32_imm8.k index aa2031d02..5cf1b3a09 100644 --- a/semantics/immediateInstructions/xorl_r32_imm8.k +++ b/semantics/immediateInstructions/xorl_r32_imm8.k @@ -5,26 +5,27 @@ module XORL-R32-IMM8 imports X86-CONFIGURATION rule - execinstr (xorl Imm8:Imm, R2:R32, .Operands) => . + execinstr (xorl Imm8:MInt, R2:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(Imm8)))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, svalueMInt(Imm8))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 32, 33), extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/xorq_r64_imm32.k b/semantics/immediateInstructions/xorq_r64_imm32.k index f70089ca8..f9e3547b8 100644 --- a/semantics/immediateInstructions/xorq_r64_imm32.k +++ b/semantics/immediateInstructions/xorq_r64_imm32.k @@ -5,26 +5,27 @@ module XORQ-R64-IMM32 imports X86-CONFIGURATION rule - execinstr (xorq Imm32:Imm, R2:R64, .Operands) => . + execinstr (xorq Imm32:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> xorMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) +convToRegKeys(R2) |-> xorMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm32))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/xorq_r64_imm8.k b/semantics/immediateInstructions/xorq_r64_imm8.k index 62f739c12..63a2c5565 100644 --- a/semantics/immediateInstructions/xorq_r64_imm8.k +++ b/semantics/immediateInstructions/xorq_r64_imm8.k @@ -5,26 +5,27 @@ module XORQ-R64-IMM8 imports X86-CONFIGURATION rule - execinstr (xorq Imm8:Imm, R2:R64, .Operands) => . + execinstr (xorq Imm8:MInt, R2:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> xorMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R2) |-> xorMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm8))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( getParentValue(R2, RSMap), mi(64, svalueMInt(Imm8))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/immediateInstructions/xorq_rax_imm32.k b/semantics/immediateInstructions/xorq_rax_imm32.k index 3a645ba0b..48229bb94 100644 --- a/semantics/immediateInstructions/xorq_rax_imm32.k +++ b/semantics/immediateInstructions/xorq_rax_imm32.k @@ -5,26 +5,27 @@ module XORQ-RAX-IMM32 imports X86-CONFIGURATION rule - execinstr (xorq Imm32:Imm, %rax, .Operands) => . + execinstr (xorq Imm32:MInt, %rax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> xorMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) +"RAX" |-> xorMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(Imm32))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( getParentValue(%rax, RSMap), mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(%rax, RSMap), 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/immediateInstructions/xorw_ax_imm16.k b/semantics/immediateInstructions/xorw_ax_imm16.k index c5e109e8d..054d767ef 100644 --- a/semantics/immediateInstructions/xorw_ax_imm16.k +++ b/semantics/immediateInstructions/xorw_ax_imm16.k @@ -5,26 +5,27 @@ module XORW-AX-IMM16 imports X86-CONFIGURATION rule - execinstr (xorw Imm16:Imm, %ax, .Operands) => . + execinstr (xorw Imm16:MInt, %ax, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16))) +"RAX" |-> concatenateMInt( extractMInt( getParentValue(%rax, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), Imm16)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 63, 64), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 62, 63), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 61, 62), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 60, 61), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 59, 60), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 58, 59), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 57, 58), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 56, 57), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(%rax, RSMap), 48, 64), Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(%rax, RSMap), 48, 49), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/xorw_r16_imm16.k b/semantics/immediateInstructions/xorw_r16_imm16.k index fcd512cc9..b66317629 100644 --- a/semantics/immediateInstructions/xorw_r16_imm16.k +++ b/semantics/immediateInstructions/xorw_r16_imm16.k @@ -5,26 +5,27 @@ module XORW-R16-IMM16 imports X86-CONFIGURATION rule - execinstr (xorw Imm16:Imm, R2:R16, .Operands) => . + execinstr (xorw Imm16:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), Imm16)) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/immediateInstructions/xorw_r16_imm8.k b/semantics/immediateInstructions/xorw_r16_imm8.k index 2c9571a15..010dad89a 100644 --- a/semantics/immediateInstructions/xorw_r16_imm8.k +++ b/semantics/immediateInstructions/xorw_r16_imm8.k @@ -5,26 +5,27 @@ module XORW-R16-IMM8 imports X86-CONFIGURATION rule - execinstr (xorw Imm8:Imm, R2:R16, .Operands) => . + execinstr (xorw Imm8:MInt, R2:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) +convToRegKeys(R2) |-> concatenateMInt( extractMInt( getParentValue(R2, RSMap), 0, 48), xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(Imm8)))) "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 64), mi(16, svalueMInt(Imm8))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> xorMInt( extractMInt( getParentValue(R2, RSMap), 48, 49), extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/adcb_m8_imm8.k b/semantics/memoryInstructions/adcb_m8_imm8.k index 5e7da5cb1..aeb2b1e6a 100644 --- a/semantics/memoryInstructions/adcb_m8_imm8.k +++ b/semantics/memoryInstructions/adcb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADCB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(adcb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(adcb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (adcb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (adcb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (adcb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (adcb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (adcb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 9), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 9), MemOff, 8 ) @@ -25,17 +26,18 @@ module ADCB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(9, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm8), mi(9, 1)) #else concatenateMInt( mi(1, 0), Imm8) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/adcl_m32_imm32.k b/semantics/memoryInstructions/adcl_m32_imm32.k index aba9f1336..59969d39c 100644 --- a/semantics/memoryInstructions/adcl_m32_imm32.k +++ b/semantics/memoryInstructions/adcl_m32_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADCL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(adcl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(adcl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (adcl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (adcl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (adcl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (adcl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (adcl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module ADCL-M32-IMM32 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), mi(33, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm32), mi(33, 1)) #else concatenateMInt( mi(1, 0), Imm32) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/adcl_m32_imm8.k b/semantics/memoryInstructions/adcl_m32_imm8.k index df520b7c7..75b1baffd 100644 --- a/semantics/memoryInstructions/adcl_m32_imm8.k +++ b/semantics/memoryInstructions/adcl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADCL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(adcl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(adcl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (adcl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (adcl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (adcl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (adcl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (adcl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module ADCL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), mi(33, 1)) #else concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/adcq_m64_imm32.k b/semantics/memoryInstructions/adcq_m64_imm32.k index a9231fbd6..4114ab313 100644 --- a/semantics/memoryInstructions/adcq_m64_imm32.k +++ b/semantics/memoryInstructions/adcq_m64_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADCQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(adcq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(adcq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (adcq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (adcq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (adcq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (adcq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (adcq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module ADCQ-M64-IMM32 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/adcq_m64_imm8.k b/semantics/memoryInstructions/adcq_m64_imm8.k index 19d1c3614..ebe1b2d1b 100644 --- a/semantics/memoryInstructions/adcq_m64_imm8.k +++ b/semantics/memoryInstructions/adcq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADCQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(adcq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(adcq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (adcq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (adcq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (adcq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (adcq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (adcq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module ADCQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), mi(65, 1)) #else concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/adcw_m16_imm16.k b/semantics/memoryInstructions/adcw_m16_imm16.k index 7d42ab352..06bb87e88 100644 --- a/semantics/memoryInstructions/adcw_m16_imm16.k +++ b/semantics/memoryInstructions/adcw_m16_imm16.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADCW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(adcw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(adcw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (adcw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (adcw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (adcw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (adcw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (adcw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module ADCW-M16-IMM16 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), mi(17, 1)) #else concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), Imm16), mi(17, 1)) #else concatenateMInt( mi(1, 0), Imm16) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/adcw_m16_imm8.k b/semantics/memoryInstructions/adcw_m16_imm8.k index b665e40e5..619f4a481 100644 --- a/semantics/memoryInstructions/adcw_m16_imm8.k +++ b/semantics/memoryInstructions/adcw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADCW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(adcw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(adcw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (adcw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (adcw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (adcw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (adcw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (adcw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module ADCW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 0, 1) +"CF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), mi(17, 1)) #else concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/addb_m8_imm8.k b/semantics/memoryInstructions/addb_m8_imm8.k index 95b1b0027..34879efa5 100644 --- a/semantics/memoryInstructions/addb_m8_imm8.k +++ b/semantics/memoryInstructions/addb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADDB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(addb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(addb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (addb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (addb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (addb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (addb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (addb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 1, 9), + extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 1, 9), MemOff, 8 ) @@ -25,17 +26,18 @@ module ADDB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm8), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/addl_m32_imm32.k b/semantics/memoryInstructions/addl_m32_imm32.k index 028c9ad0d..52363d96b 100644 --- a/semantics/memoryInstructions/addl_m32_imm32.k +++ b/semantics/memoryInstructions/addl_m32_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADDL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(addl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(addl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (addl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (addl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (addl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (addl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (addl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), + extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module ADDL-M32-IMM32 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm32, 32, 32)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm32, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm32), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/addl_m32_imm8.k b/semantics/memoryInstructions/addl_m32_imm8.k index aecf5b636..0ef6c6e3b 100644 --- a/semantics/memoryInstructions/addl_m32_imm8.k +++ b/semantics/memoryInstructions/addl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADDL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(addl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(addl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (addl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (addl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (addl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (addl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (addl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 1, 33), + extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module ADDL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(32, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/addq_m64_imm32.k b/semantics/memoryInstructions/addq_m64_imm32.k index 88d7d7eca..bb7500194 100644 --- a/semantics/memoryInstructions/addq_m64_imm32.k +++ b/semantics/memoryInstructions/addq_m64_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADDQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(addq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(addq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (addq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (addq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (addq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (addq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (addq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 1, 65), + extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module ADDQ-M64-IMM32 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm32))), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/addq_m64_imm8.k b/semantics/memoryInstructions/addq_m64_imm8.k index 878771cb0..71c47e1ad 100644 --- a/semantics/memoryInstructions/addq_m64_imm8.k +++ b/semantics/memoryInstructions/addq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADDQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(addq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(addq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (addq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (addq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (addq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (addq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (addq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 1, 65), + extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module ADDQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(64, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/addw_m16_imm16.k b/semantics/memoryInstructions/addw_m16_imm16.k index c25bfea41..a9f6efd35 100644 --- a/semantics/memoryInstructions/addw_m16_imm16.k +++ b/semantics/memoryInstructions/addw_m16_imm16.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADDW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(addw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(addw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (addw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (addw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (addw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (addw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (addw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), + extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module ADDW-M16-IMM16 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), handleImmediateWithSignExtend(Imm16, 16, 16)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( Imm16, 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), Imm16), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/addw_m16_imm8.k b/semantics/memoryInstructions/addw_m16_imm8.k index b4e762107..f794ce67e 100644 --- a/semantics/memoryInstructions/addw_m16_imm8.k +++ b/semantics/memoryInstructions/addw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ADDW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(addw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(addw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (addw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (addw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (addw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (addw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (addw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 1, 17), + extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module ADDW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 0, 1) +"CF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 0, 1) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( concatenateMInt( mi(1, 0), mi(16, svalueMInt(Imm8))), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/andb_m8_imm8.k b/semantics/memoryInstructions/andb_m8_imm8.k index 4d8477121..773d06975 100644 --- a/semantics/memoryInstructions/andb_m8_imm8.k +++ b/semantics/memoryInstructions/andb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ANDB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(andb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(andb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (andb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (andb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (andb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (andb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (andb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem8, handleImmediateWithSignExtend(Imm8, 8, 8)), + andMInt( Mem8, Imm8), MemOff, 8 ) @@ -27,15 +28,16 @@ module ANDB-M8-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem8, 7, 8), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem8, 6, 7), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 5, 6), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 4, 5), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 3, 4), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 2, 3), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 1, 2), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem8, 7, 8), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem8, 6, 7), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 5, 6), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 4, 5), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 3, 4), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 2, 3), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 1, 2), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 0, 1), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem8, handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem8, Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem8, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem8, 0, 1), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/andl_m32_imm32.k b/semantics/memoryInstructions/andl_m32_imm32.k index 3db2f3670..43bb2a437 100644 --- a/semantics/memoryInstructions/andl_m32_imm32.k +++ b/semantics/memoryInstructions/andl_m32_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ANDL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(andl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(andl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (andl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (andl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (andl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (andl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (andl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem32, handleImmediateWithSignExtend(Imm32, 32, 32)), + andMInt( Mem32, Imm32), MemOff, 32 ) @@ -27,15 +28,16 @@ module ANDL-M32-IMM32 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem32, 31, 32), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem32, 30, 31), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 29, 30), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 28, 29), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 27, 28), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 26, 27), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 25, 26), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 24, 25), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem32, 31, 32), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem32, 30, 31), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 29, 30), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 28, 29), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 27, 28), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 26, 27), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 25, 26), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 24, 25), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem32, handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem32, Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem32, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem32, 0, 1), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/andl_m32_imm8.k b/semantics/memoryInstructions/andl_m32_imm8.k index 7456a323c..74bff59dd 100644 --- a/semantics/memoryInstructions/andl_m32_imm8.k +++ b/semantics/memoryInstructions/andl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ANDL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(andl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(andl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (andl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (andl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (andl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (andl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (andl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem32, mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + andMInt( Mem32, mi(32, svalueMInt(Imm8))), MemOff, 32 ) @@ -27,15 +28,16 @@ module ANDL-M32-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem32, 31, 32), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem32, 30, 31), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 29, 30), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 28, 29), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 27, 28), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 26, 27), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 25, 26), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 24, 25), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem32, 31, 32), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem32, 30, 31), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 29, 30), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 28, 29), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 27, 28), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 26, 27), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 25, 26), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 24, 25), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem32, mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem32, mi(32, svalueMInt(Imm8))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem32, 0, 1), extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem32, 0, 1), extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/andq_m64_imm32.k b/semantics/memoryInstructions/andq_m64_imm32.k index 9cde4fc91..363c9d58f 100644 --- a/semantics/memoryInstructions/andq_m64_imm32.k +++ b/semantics/memoryInstructions/andq_m64_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ANDQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(andq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(andq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (andq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (andq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (andq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (andq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (andq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), + andMInt( Mem64, mi(64, svalueMInt(Imm32))), MemOff, 64 ) @@ -27,15 +28,16 @@ module ANDQ-M64-IMM32 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem64, 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem64, 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem64, 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem64, 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem64, mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/andq_m64_imm8.k b/semantics/memoryInstructions/andq_m64_imm8.k index b6a7c05d6..f1ce252b8 100644 --- a/semantics/memoryInstructions/andq_m64_imm8.k +++ b/semantics/memoryInstructions/andq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ANDQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(andq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(andq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (andq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (andq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (andq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (andq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (andq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + andMInt( Mem64, mi(64, svalueMInt(Imm8))), MemOff, 64 ) @@ -27,15 +28,16 @@ module ANDQ-M64-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem64, 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem64, 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem64, 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem64, 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem64, mi(64, svalueMInt(Imm8))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/andw_m16_imm16.k b/semantics/memoryInstructions/andw_m16_imm16.k index 8de6251f8..c752696e8 100644 --- a/semantics/memoryInstructions/andw_m16_imm16.k +++ b/semantics/memoryInstructions/andw_m16_imm16.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ANDW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(andw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(andw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (andw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (andw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (andw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (andw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (andw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem16, handleImmediateWithSignExtend(Imm16, 16, 16)), + andMInt( Mem16, Imm16), MemOff, 16 ) @@ -27,15 +28,16 @@ module ANDW-M16-IMM16 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem16, 15, 16), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem16, 14, 15), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 13, 14), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 12, 13), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 11, 12), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 10, 11), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 9, 10), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 8, 9), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem16, 15, 16), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem16, 14, 15), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 13, 14), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 12, 13), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 11, 12), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 10, 11), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 9, 10), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 8, 9), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem16, handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem16, Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem16, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem16, 0, 1), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/andw_m16_imm8.k b/semantics/memoryInstructions/andw_m16_imm8.k index 21ab10b69..7306f6154 100644 --- a/semantics/memoryInstructions/andw_m16_imm8.k +++ b/semantics/memoryInstructions/andw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ANDW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(andw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(andw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (andw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (andw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (andw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (andw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (andw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem16, mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + andMInt( Mem16, mi(16, svalueMInt(Imm8))), MemOff, 16 ) @@ -27,15 +28,16 @@ module ANDW-M16-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem16, 15, 16), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem16, 14, 15), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 13, 14), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 12, 13), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 11, 12), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 10, 11), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 9, 10), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 8, 9), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem16, 15, 16), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem16, 14, 15), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 13, 14), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 12, 13), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 11, 12), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 10, 11), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 9, 10), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 8, 9), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem16, mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem16, mi(16, svalueMInt(Imm8))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem16, 0, 1), extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem16, 0, 1), extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/blendpd_xmm_m128_imm8.k b/semantics/memoryInstructions/blendpd_xmm_m128_imm8.k index 2b4e3e551..7bfcbde9f 100644 --- a/semantics/memoryInstructions/blendpd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/blendpd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module BLENDPD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(blendpd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(blendpd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (blendpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (blendpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (blendpd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (blendpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (blendpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( Mem128, 0, 64) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( Mem128, 64, 128) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( Mem128, 0, 64) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( Mem128, 64, 128) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/blendps_xmm_m128_imm8.k b/semantics/memoryInstructions/blendps_xmm_m128_imm8.k index 18406df58..0b92507e1 100644 --- a/semantics/memoryInstructions/blendps_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/blendps_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module BLENDPS-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(blendps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(blendps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (blendps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (blendps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (blendps Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (blendps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (blendps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem128, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem128, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem128, 64, 96) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem128, 96, 128) #fi))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem128, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem128, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem128, 64, 96) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem128, 96, 128) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btcl_m32_imm8.k b/semantics/memoryInstructions/btcl_m32_imm8.k index 9b1e17548..db820437a 100644 --- a/semantics/memoryInstructions/btcl_m32_imm8.k +++ b/semantics/memoryInstructions/btcl_m32_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTCL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(btcl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btcl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btcl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 3)))), 8) ~> + execinstr (btcl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 3)))), 8) ~> execinstr (btcl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btcl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btcl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7)))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 3)))), + xorMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7)))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 3)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTCL-M32-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btcq_m64_imm8.k b/semantics/memoryInstructions/btcq_m64_imm8.k index 0c16168e9..c8074422c 100644 --- a/semantics/memoryInstructions/btcq_m64_imm8.k +++ b/semantics/memoryInstructions/btcq_m64_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTCQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(btcq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btcq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btcq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 7)))), 8) ~> + execinstr (btcq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 7)))), 8) ~> execinstr (btcq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btcq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btcq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7)))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 7)))), + xorMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7)))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 7)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTCQ-M64-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btcw_m16_imm8.k b/semantics/memoryInstructions/btcw_m16_imm8.k index 83d7d4257..610a98bce 100644 --- a/semantics/memoryInstructions/btcw_m16_imm8.k +++ b/semantics/memoryInstructions/btcw_m16_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTCW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(btcw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btcw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btcw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 1)))), 8) ~> + execinstr (btcw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 1)))), 8) ~> execinstr (btcw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btcw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btcw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7)))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 1)))), + xorMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7)))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 1)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTCW-M16-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btl_m32_imm8.k b/semantics/memoryInstructions/btl_m32_imm8.k index 5bc2facb9..788990aaf 100644 --- a/semantics/memoryInstructions/btl_m32_imm8.k +++ b/semantics/memoryInstructions/btl_m32_imm8.k @@ -4,22 +4,23 @@ requires "x86-configuration.k" module BTL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(btl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 3)))), 8) ~> + execinstr (btl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 3)))), 8) ~> execinstr (btl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -30,4 +31,5 @@ module BTL-M32-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btq_m64_imm8.k b/semantics/memoryInstructions/btq_m64_imm8.k index aa5f03472..6e5a81d94 100644 --- a/semantics/memoryInstructions/btq_m64_imm8.k +++ b/semantics/memoryInstructions/btq_m64_imm8.k @@ -4,22 +4,23 @@ requires "x86-configuration.k" module BTQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(btq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 7)))), 8) ~> + execinstr (btq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 7)))), 8) ~> execinstr (btq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -30,4 +31,5 @@ module BTQ-M64-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btrl_m32_imm8.k b/semantics/memoryInstructions/btrl_m32_imm8.k index b83a0c4b7..4a0d298bd 100644 --- a/semantics/memoryInstructions/btrl_m32_imm8.k +++ b/semantics/memoryInstructions/btrl_m32_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTRL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(btrl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btrl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btrl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 3)))), 8) ~> + execinstr (btrl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 3)))), 8) ~> execinstr (btrl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btrl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btrl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem8, negMInt( shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 3)))), + andMInt( Mem8, negMInt( shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 3)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTRL-M32-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btrq_m64_imm8.k b/semantics/memoryInstructions/btrq_m64_imm8.k index 28c7f669d..4bebaff18 100644 --- a/semantics/memoryInstructions/btrq_m64_imm8.k +++ b/semantics/memoryInstructions/btrq_m64_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTRQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(btrq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btrq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 7)))), 8) ~> + execinstr (btrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 7)))), 8) ~> execinstr (btrq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem8, negMInt( shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 7)))), + andMInt( Mem8, negMInt( shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 7)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTRQ-M64-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btrw_m16_imm8.k b/semantics/memoryInstructions/btrw_m16_imm8.k index 3b46b7ec3..35772e165 100644 --- a/semantics/memoryInstructions/btrw_m16_imm8.k +++ b/semantics/memoryInstructions/btrw_m16_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTRW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(btrw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btrw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 1)))), 8) ~> + execinstr (btrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 1)))), 8) ~> execinstr (btrw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - andMInt( Mem8, negMInt( shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 1)))), + andMInt( Mem8, negMInt( shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 1)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTRW-M16-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btsl_m32_imm8.k b/semantics/memoryInstructions/btsl_m32_imm8.k index f4456f003..e0589bc22 100644 --- a/semantics/memoryInstructions/btsl_m32_imm8.k +++ b/semantics/memoryInstructions/btsl_m32_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTSL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(btsl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btsl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btsl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 3)))), 8) ~> + execinstr (btsl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 3)))), 8) ~> execinstr (btsl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btsl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btsl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7)))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 3)))), + orMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7)))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 3)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTSL-M32-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btsq_m64_imm8.k b/semantics/memoryInstructions/btsq_m64_imm8.k index 8fc078d34..cb01a0318 100644 --- a/semantics/memoryInstructions/btsq_m64_imm8.k +++ b/semantics/memoryInstructions/btsq_m64_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTSQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(btsq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btsq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btsq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 7)))), 8) ~> + execinstr (btsq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 7)))), 8) ~> execinstr (btsq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btsq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btsq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7)))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 7)))), + orMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7)))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 7)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTSQ-M64-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btsw_m16_imm8.k b/semantics/memoryInstructions/btsw_m16_imm8.k index 47add1981..f8ba9e111 100644 --- a/semantics/memoryInstructions/btsw_m16_imm8.k +++ b/semantics/memoryInstructions/btsw_m16_imm8.k @@ -4,28 +4,29 @@ requires "x86-configuration.k" module BTSW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(btsw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btsw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btsw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 1)))), 8) ~> + execinstr (btsw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 1)))), 8) ~> execinstr (btsw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btsw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btsw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7)))))), - addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 1)))), + orMInt( Mem8, shiftLeftMInt( mi(8, 1), uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7)))))), + addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 1)))), 8 ) ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -36,4 +37,5 @@ module BTSW-M16-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/btw_m16_imm8.k b/semantics/memoryInstructions/btw_m16_imm8.k index 7323d7516..c870485a3 100644 --- a/semantics/memoryInstructions/btw_m16_imm8.k +++ b/semantics/memoryInstructions/btw_m16_imm8.k @@ -4,22 +4,23 @@ requires "x86-configuration.k" module BTW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(btw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(btw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (btw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 5), mi(5, 1)))), 8) ~> + execinstr (btw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => + loadFromMemory( addMInt( MemOff, concatenateMInt( mi(59, 0), andMInt( extractMInt( Imm8, 0, 5), mi(5, 1)))), 8) ~> execinstr (btw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (btw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8), mi(3, 7))))), 7, 8) +"CF" |-> extractMInt( lshrMInt( Mem8, uvalueMInt(concatenateMInt( mi(5, 0), andMInt( extractMInt( Imm8, 5, 8), mi(3, 7))))), 7, 8) "PF" |-> (undefMInt) @@ -30,4 +31,5 @@ module BTW-M16-IMM8 "OF" |-> (undefMInt) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/cmpb_m8_imm8.k b/semantics/memoryInstructions/cmpb_m8_imm8.k index 7cd42a343..09fc6df54 100644 --- a/semantics/memoryInstructions/cmpb_m8_imm8.k +++ b/semantics/memoryInstructions/cmpb_m8_imm8.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module CMPB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(cmpb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(cmpb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (cmpb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (cmpb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (cmpb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (cmpb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (cmpb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/cmpl_m32_imm32.k b/semantics/memoryInstructions/cmpl_m32_imm32.k index a52295de7..309f2eb41 100644 --- a/semantics/memoryInstructions/cmpl_m32_imm32.k +++ b/semantics/memoryInstructions/cmpl_m32_imm32.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module CMPL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(cmpl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(cmpl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (cmpl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (cmpl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (cmpl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (cmpl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (cmpl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/cmpl_m32_imm8.k b/semantics/memoryInstructions/cmpl_m32_imm8.k index ad19aac8c..8541f59b0 100644 --- a/semantics/memoryInstructions/cmpl_m32_imm8.k +++ b/semantics/memoryInstructions/cmpl_m32_imm8.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module CMPL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(cmpl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(cmpl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (cmpl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (cmpl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (cmpl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (cmpl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (cmpl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/cmppd_xmm_m128_imm8.k b/semantics/memoryInstructions/cmppd_xmm_m128_imm8.k index bffc625cb..29759e606 100644 --- a/semantics/memoryInstructions/cmppd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/cmppd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module CMPPD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(cmppd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(cmppd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (cmppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (cmppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (cmppd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (cmppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (cmppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/cmpps_xmm_m128_imm8.k b/semantics/memoryInstructions/cmpps_xmm_m128_imm8.k index d80631593..80103aeb9 100644 --- a/semantics/memoryInstructions/cmpps_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/cmpps_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module CMPPS-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(cmpps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(cmpps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (cmpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (cmpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (cmpps Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (cmpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (cmpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/cmpq_m64_imm32.k b/semantics/memoryInstructions/cmpq_m64_imm32.k index 7b4346fc7..a68829089 100644 --- a/semantics/memoryInstructions/cmpq_m64_imm32.k +++ b/semantics/memoryInstructions/cmpq_m64_imm32.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module CMPQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(cmpq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(cmpq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (cmpq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (cmpq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (cmpq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (cmpq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (cmpq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/cmpq_m64_imm8.k b/semantics/memoryInstructions/cmpq_m64_imm8.k index 6e800adb5..0c49b2505 100644 --- a/semantics/memoryInstructions/cmpq_m64_imm8.k +++ b/semantics/memoryInstructions/cmpq_m64_imm8.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module CMPQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(cmpq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(cmpq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (cmpq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (cmpq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (cmpq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (cmpq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (cmpq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/cmpsd_xmm_m64_imm8.k b/semantics/memoryInstructions/cmpsd_xmm_m64_imm8.k index f30bf9a63..1cf993429 100644 --- a/semantics/memoryInstructions/cmpsd_xmm_m64_imm8.k +++ b/semantics/memoryInstructions/cmpsd_xmm_m64_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module CMPSD-XMM-M64-IMM8 imports X86-CONFIGURATION - context execinstr(cmpsd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(cmpsd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (cmpsd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (cmpsd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (cmpsd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (cmpsd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (cmpsd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 192), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), Mem64, handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 192), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), Mem64, Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/cmpss_xmm_m32_imm8.k b/semantics/memoryInstructions/cmpss_xmm_m32_imm8.k index ef8caec79..028025abf 100644 --- a/semantics/memoryInstructions/cmpss_xmm_m32_imm8.k +++ b/semantics/memoryInstructions/cmpss_xmm_m32_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module CMPSS-XMM-M32-IMM8 imports X86-CONFIGURATION - context execinstr(cmpss:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(cmpss:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (cmpss:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (cmpss:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (cmpss Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (cmpss:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (cmpss:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 224), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), Mem32, handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 224), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), Mem32, Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/cmpw_m16_imm16.k b/semantics/memoryInstructions/cmpw_m16_imm16.k index d6dc438b0..a0e749569 100644 --- a/semantics/memoryInstructions/cmpw_m16_imm16.k +++ b/semantics/memoryInstructions/cmpw_m16_imm16.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module CMPW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(cmpw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(cmpw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (cmpw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (cmpw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (cmpw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (cmpw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (cmpw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/cmpw_m16_imm8.k b/semantics/memoryInstructions/cmpw_m16_imm8.k index 4290ec3f9..a75df6a77 100644 --- a/semantics/memoryInstructions/cmpw_m16_imm8.k +++ b/semantics/memoryInstructions/cmpw_m16_imm8.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module CMPW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(cmpw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(cmpw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (cmpw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (cmpw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (cmpw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (cmpw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (cmpw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/dppd_xmm_m128_imm8.k b/semantics/memoryInstructions/dppd_xmm_m128_imm8.k index 7be89118c..97cb12f44 100644 --- a/semantics/memoryInstructions/dppd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/dppd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module DPPD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(dppd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(dppd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (dppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (dppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (dppd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (dppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (dppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/dpps_xmm_m128_imm8.k b/semantics/memoryInstructions/dpps_xmm_m128_imm8.k index 98bc51dbb..adb5c4c7e 100644 --- a/semantics/memoryInstructions/dpps_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/dpps_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module DPPS-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(dpps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(dpps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (dpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (dpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (dpps Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (dpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (dpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/extractps_m32_xmm_imm8.k b/semantics/memoryInstructions/extractps_m32_xmm_imm8.k index 0a8278596..699f00c6e 100644 --- a/semantics/memoryInstructions/extractps_m32_xmm_imm8.k +++ b/semantics/memoryInstructions/extractps_m32_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module EXTRACTPS-M32-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(extractps:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(extractps:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (extractps:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (extractps:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (extractps Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (extractps:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (extractps:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), MemOff, 32 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/imull_r32_m32_imm32.k b/semantics/memoryInstructions/imull_r32_m32_imm32.k index 294774e3b..867105d6c 100644 --- a/semantics/memoryInstructions/imull_r32_m32_imm32.k +++ b/semantics/memoryInstructions/imull_r32_m32_imm32.k @@ -4,24 +4,25 @@ requires "x86-configuration.k" module IMULL-R32-M32-IMM32 imports X86-CONFIGURATION - context execinstr(imull:Opcode Imm32:Imm, HOLE:Mem, R3:R32, .Operands) [result(MemOffset)] + context execinstr(imull:Opcode Imm32:MInt, HOLE:Mem, R3:R32, .Operands) [result(MemOffset)] rule - execinstr (imull:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => + execinstr (imull:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (imull Imm32, memOffset( MemOff), R3, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (imull:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (imull:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 32, 64)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm32))), 32, 64)) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm32))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm32))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -31,7 +32,8 @@ convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, s "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm32))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm32))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/imull_r32_m32_imm8.k b/semantics/memoryInstructions/imull_r32_m32_imm8.k index d20b7193e..555aae15b 100644 --- a/semantics/memoryInstructions/imull_r32_m32_imm8.k +++ b/semantics/memoryInstructions/imull_r32_m32_imm8.k @@ -4,24 +4,25 @@ requires "x86-configuration.k" module IMULL-R32-M32-IMM8 imports X86-CONFIGURATION - context execinstr(imull:Opcode Imm8:Imm, HOLE:Mem, R3:R32, .Operands) [result(MemOffset)] + context execinstr(imull:Opcode Imm8:MInt, HOLE:Mem, R3:R32, .Operands) [result(MemOffset)] rule - execinstr (imull:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => + execinstr (imull:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (imull Imm8, memOffset( MemOff), R3, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (imull:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (imull:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 32, 64)) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm8))), 32, 64)) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm8))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm8))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -31,7 +32,8 @@ convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), extractMInt( mulMInt( mi(64, s "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm8))), mi(64, svalueMInt(extractMInt( mulMInt( mi(64, svalueMInt(Mem32)), mi(64, svalueMInt(Imm8))), 32, 64))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/imulq_r64_m64_imm32.k b/semantics/memoryInstructions/imulq_r64_m64_imm32.k index 85f0420d1..f21476843 100644 --- a/semantics/memoryInstructions/imulq_r64_m64_imm32.k +++ b/semantics/memoryInstructions/imulq_r64_m64_imm32.k @@ -4,24 +4,25 @@ requires "x86-configuration.k" module IMULQ-R64-M64-IMM32 imports X86-CONFIGURATION - context execinstr(imulq:Opcode Imm32:Imm, HOLE:Mem, R3:R64, .Operands) [result(MemOffset)] + context execinstr(imulq:Opcode Imm32:MInt, HOLE:Mem, R3:R64, .Operands) [result(MemOffset)] rule - execinstr (imulq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => + execinstr (imulq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (imulq Imm32, memOffset( MemOff), R3, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (imulq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (imulq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 64, 128) +convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm32))), 64, 128) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm32))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm32))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -31,7 +32,8 @@ convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm32))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm32))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/imulq_r64_m64_imm8.k b/semantics/memoryInstructions/imulq_r64_m64_imm8.k index bb77f0b52..8877ae2d1 100644 --- a/semantics/memoryInstructions/imulq_r64_m64_imm8.k +++ b/semantics/memoryInstructions/imulq_r64_m64_imm8.k @@ -4,24 +4,25 @@ requires "x86-configuration.k" module IMULQ-R64-M64-IMM8 imports X86-CONFIGURATION - context execinstr(imulq:Opcode Imm8:Imm, HOLE:Mem, R3:R64, .Operands) [result(MemOffset)] + context execinstr(imulq:Opcode Imm8:MInt, HOLE:Mem, R3:R64, .Operands) [result(MemOffset)] rule - execinstr (imulq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => + execinstr (imulq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (imulq Imm8, memOffset( MemOff), R3, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (imulq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (imulq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 64, 128) +convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm8))), 64, 128) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm8))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm8))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -31,7 +32,8 @@ convToRegKeys(R3) |-> extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm8))), mi(128, svalueMInt(extractMInt( mulMInt( mi(128, svalueMInt(Mem64)), mi(128, svalueMInt(Imm8))), 64, 128))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/imulw_r16_m16_imm16.k b/semantics/memoryInstructions/imulw_r16_m16_imm16.k index c129cfdfa..d0442984c 100644 --- a/semantics/memoryInstructions/imulw_r16_m16_imm16.k +++ b/semantics/memoryInstructions/imulw_r16_m16_imm16.k @@ -4,24 +4,25 @@ requires "x86-configuration.k" module IMULW-R16-M16-IMM16 imports X86-CONFIGURATION - context execinstr(imulw:Opcode Imm16:Imm, HOLE:Mem, R3:R16, .Operands) [result(MemOffset)] + context execinstr(imulw:Opcode Imm16:MInt, HOLE:Mem, R3:R16, .Operands) [result(MemOffset)] rule - execinstr (imulw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, R3:R16, .Operands) => + execinstr (imulw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, R3:R16, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (imulw Imm16, memOffset( MemOff), R3, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (imulw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, R3:R16, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (imulw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, R3:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 48), extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), 16, 32)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 48), extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm16))), 16, 32)) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm16))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm16))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -31,7 +32,8 @@ convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0 "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm16, 16, 16)))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm16))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm16))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/imulw_r16_m16_imm8.k b/semantics/memoryInstructions/imulw_r16_m16_imm8.k index b9081447b..991155d3d 100644 --- a/semantics/memoryInstructions/imulw_r16_m16_imm8.k +++ b/semantics/memoryInstructions/imulw_r16_m16_imm8.k @@ -4,24 +4,25 @@ requires "x86-configuration.k" module IMULW-R16-M16-IMM8 imports X86-CONFIGURATION - context execinstr(imulw:Opcode Imm8:Imm, HOLE:Mem, R3:R16, .Operands) [result(MemOffset)] + context execinstr(imulw:Opcode Imm8:MInt, HOLE:Mem, R3:R16, .Operands) [result(MemOffset)] rule - execinstr (imulw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R16, .Operands) => + execinstr (imulw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R16, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (imulw Imm8, memOffset( MemOff), R3, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (imulw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R16, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (imulw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R16, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 48), extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 16, 32)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 48), extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm8))), 16, 32)) -"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm8))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm8))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) "PF" |-> (undefMInt) @@ -31,7 +32,8 @@ convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0 "SF" |-> (undefMInt) -"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt (notBool eqMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm8))), mi(32, svalueMInt(extractMInt( mulMInt( mi(32, svalueMInt(Mem16)), mi(32, svalueMInt(Imm8))), 16, 32))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/insertps_xmm_m32_imm8.k b/semantics/memoryInstructions/insertps_xmm_m32_imm8.k index f6861f6a5..a8f37f333 100644 --- a/semantics/memoryInstructions/insertps_xmm_m32_imm8.k +++ b/semantics/memoryInstructions/insertps_xmm_m32_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module INSERTPS-XMM-M32-IMM8 imports X86-CONFIGURATION - context execinstr(insertps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(insertps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (insertps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (insertps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (insertps Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (insertps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (insertps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else Mem32 #fi) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 160, 192) #fi) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else Mem32 #fi) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 160, 192) #fi) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/movb_m8_imm8.k b/semantics/memoryInstructions/movb_m8_imm8.k index c20f4a528..3117cf52f 100644 --- a/semantics/memoryInstructions/movb_m8_imm8.k +++ b/semantics/memoryInstructions/movb_m8_imm8.k @@ -4,17 +4,18 @@ requires "x86-configuration.k" module MOVB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(movb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(movb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (movb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (movb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, MemOff, 8 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/movl_m32_imm32.k b/semantics/memoryInstructions/movl_m32_imm32.k index b92e8ce16..617a1b1b0 100644 --- a/semantics/memoryInstructions/movl_m32_imm32.k +++ b/semantics/memoryInstructions/movl_m32_imm32.k @@ -4,17 +4,18 @@ requires "x86-configuration.k" module MOVL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(movl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(movl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (movl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (movl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - handleImmediateWithSignExtend(Imm32, 32, 32), + Imm32, MemOff, 32 ) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/movq_m64_imm32.k b/semantics/memoryInstructions/movq_m64_imm32.k index a7327cfbe..3cfb363fa 100644 --- a/semantics/memoryInstructions/movq_m64_imm32.k +++ b/semantics/memoryInstructions/movq_m64_imm32.k @@ -4,17 +4,18 @@ requires "x86-configuration.k" module MOVQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(movq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(movq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (movq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (movq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), + mi(64, svalueMInt(Imm32)), MemOff, 64 ) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/movw_m16_imm16.k b/semantics/memoryInstructions/movw_m16_imm16.k index b27741cec..ef60688ab 100644 --- a/semantics/memoryInstructions/movw_m16_imm16.k +++ b/semantics/memoryInstructions/movw_m16_imm16.k @@ -4,17 +4,18 @@ requires "x86-configuration.k" module MOVW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(movw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(movw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (movw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (movw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - handleImmediateWithSignExtend(Imm16, 16, 16), + Imm16, MemOff, 16 ) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/mpsadbw_xmm_m128_imm8.k b/semantics/memoryInstructions/mpsadbw_xmm_m128_imm8.k index 371a5ad43..c9368664f 100644 --- a/semantics/memoryInstructions/mpsadbw_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/mpsadbw_xmm_m128_imm8.k @@ -15,43 +15,44 @@ module MPSADBW-XMM-M128-IMM8 rule memLoadValue(MemVal:MInt):MemLoadValue ~> - execinstr (mpsadbw Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (mpsadbw Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => execinstr (mpsadbw selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 7 , 0 ), + extractMInt(Imm8, 6, 8), 7 , 0 ), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 15, 8 ), + extractMInt(Imm8, 6, 8), 15, 8 ), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 23, 16), + extractMInt(Imm8, 6, 8), 23, 16), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 31, 24), + extractMInt(Imm8, 6, 8), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 7 , 0), + extractMInt(Imm8, 5, 6), 7 , 0), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 15, 8), + extractMInt(Imm8, 5, 6), 15, 8), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 23, 16), + extractMInt(Imm8, 5, 6), 23, 16), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 31, 24), + extractMInt(Imm8, 5, 6), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 39, 32), + extractMInt(Imm8, 5, 6), 39, 32), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 47, 40), + extractMInt(Imm8, 5, 6), 47, 40), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 55, 48), + extractMInt(Imm8, 5, 6), 55, 48), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 63, 56), + extractMInt(Imm8, 5, 6), 63, 56), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 71, 64), + extractMInt(Imm8, 5, 6), 71, 64), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 79, 72), + extractMInt(Imm8, 5, 6), 79, 72), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 87, 80), + extractMInt(Imm8, 5, 6), 87, 80), R3:Xmm, .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (mpsadbw diff --git a/semantics/memoryInstructions/orb_m8_imm8.k b/semantics/memoryInstructions/orb_m8_imm8.k index b4ca5efcd..5ba532294 100644 --- a/semantics/memoryInstructions/orb_m8_imm8.k +++ b/semantics/memoryInstructions/orb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ORB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(orb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(orb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (orb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (orb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (orb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (orb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (orb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem8, handleImmediateWithSignExtend(Imm8, 8, 8)), + orMInt( Mem8, Imm8), MemOff, 8 ) @@ -27,15 +28,16 @@ module ORB-M8-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem8, 7, 8), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem8, 6, 7), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 5, 6), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 4, 5), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 3, 4), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 2, 3), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 1, 2), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem8, 7, 8), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem8, 6, 7), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 5, 6), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 4, 5), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 3, 4), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 2, 3), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 1, 2), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem8, 0, 1), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( Mem8, handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( Mem8, Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( Mem8, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> orMInt( extractMInt( Mem8, 0, 1), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/orl_m32_imm32.k b/semantics/memoryInstructions/orl_m32_imm32.k index ea98dc7d6..3ecaaea14 100644 --- a/semantics/memoryInstructions/orl_m32_imm32.k +++ b/semantics/memoryInstructions/orl_m32_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ORL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(orl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(orl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (orl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (orl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (orl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (orl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (orl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem32, handleImmediateWithSignExtend(Imm32, 32, 32)), + orMInt( Mem32, Imm32), MemOff, 32 ) @@ -27,15 +28,16 @@ module ORL-M32-IMM32 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem32, 31, 32), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem32, 30, 31), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 29, 30), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 28, 29), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 27, 28), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 26, 27), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 25, 26), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 24, 25), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem32, 31, 32), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem32, 30, 31), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 29, 30), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 28, 29), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 27, 28), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 26, 27), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 25, 26), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 24, 25), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( Mem32, handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( Mem32, Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( Mem32, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> orMInt( extractMInt( Mem32, 0, 1), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/orl_m32_imm8.k b/semantics/memoryInstructions/orl_m32_imm8.k index 04524a8c5..6340e5e0a 100644 --- a/semantics/memoryInstructions/orl_m32_imm8.k +++ b/semantics/memoryInstructions/orl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ORL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(orl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(orl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (orl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (orl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (orl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (orl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (orl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem32, mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + orMInt( Mem32, mi(32, svalueMInt(Imm8))), MemOff, 32 ) @@ -27,15 +28,16 @@ module ORL-M32-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem32, 31, 32), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem32, 30, 31), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 29, 30), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 28, 29), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 27, 28), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 26, 27), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 25, 26), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 24, 25), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem32, 31, 32), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem32, 30, 31), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 29, 30), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 28, 29), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 27, 28), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 26, 27), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 25, 26), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem32, 24, 25), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( Mem32, mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( Mem32, mi(32, svalueMInt(Imm8))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( Mem32, 0, 1), extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> orMInt( extractMInt( Mem32, 0, 1), extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/orq_m64_imm32.k b/semantics/memoryInstructions/orq_m64_imm32.k index eccfb584b..7bd639dc6 100644 --- a/semantics/memoryInstructions/orq_m64_imm32.k +++ b/semantics/memoryInstructions/orq_m64_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ORQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(orq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(orq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (orq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (orq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (orq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (orq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (orq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), + orMInt( Mem64, mi(64, svalueMInt(Imm32))), MemOff, 64 ) @@ -27,15 +28,16 @@ module ORQ-M64-IMM32 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem64, 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem64, 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem64, 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem64, 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( Mem64, mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> orMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/orq_m64_imm8.k b/semantics/memoryInstructions/orq_m64_imm8.k index af93c42cb..0b8480302 100644 --- a/semantics/memoryInstructions/orq_m64_imm8.k +++ b/semantics/memoryInstructions/orq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ORQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(orq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(orq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (orq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (orq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (orq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (orq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (orq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + orMInt( Mem64, mi(64, svalueMInt(Imm8))), MemOff, 64 ) @@ -27,15 +28,16 @@ module ORQ-M64-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem64, 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem64, 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem64, 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem64, 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem64, 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( Mem64, mi(64, svalueMInt(Imm8))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> orMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/orw_m16_imm16.k b/semantics/memoryInstructions/orw_m16_imm16.k index 4a1e8e32c..4968ddc8f 100644 --- a/semantics/memoryInstructions/orw_m16_imm16.k +++ b/semantics/memoryInstructions/orw_m16_imm16.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ORW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(orw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(orw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (orw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (orw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (orw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (orw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (orw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem16, handleImmediateWithSignExtend(Imm16, 16, 16)), + orMInt( Mem16, Imm16), MemOff, 16 ) @@ -27,15 +28,16 @@ module ORW-M16-IMM16 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem16, 15, 16), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem16, 14, 15), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 13, 14), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 12, 13), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 11, 12), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 10, 11), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 9, 10), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 8, 9), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem16, 15, 16), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem16, 14, 15), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 13, 14), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 12, 13), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 11, 12), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 10, 11), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 9, 10), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 8, 9), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( Mem16, handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( Mem16, Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( Mem16, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> orMInt( extractMInt( Mem16, 0, 1), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/orw_m16_imm8.k b/semantics/memoryInstructions/orw_m16_imm8.k index 3c5ace79a..0bfc5cc92 100644 --- a/semantics/memoryInstructions/orw_m16_imm8.k +++ b/semantics/memoryInstructions/orw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ORW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(orw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(orw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (orw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (orw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (orw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (orw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (orw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - orMInt( Mem16, mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + orMInt( Mem16, mi(16, svalueMInt(Imm8))), MemOff, 16 ) @@ -27,15 +28,16 @@ module ORW-M16-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem16, 15, 16), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem16, 14, 15), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 13, 14), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 12, 13), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 11, 12), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 10, 11), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 9, 10), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 8, 9), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( orMInt( extractMInt( Mem16, 15, 16), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( orMInt( extractMInt( Mem16, 14, 15), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 13, 14), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 12, 13), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 11, 12), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 10, 11), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 9, 10), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( orMInt( extractMInt( Mem16, 8, 9), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( orMInt( Mem16, mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( orMInt( Mem16, mi(16, svalueMInt(Imm8))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> orMInt( extractMInt( Mem16, 0, 1), extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> orMInt( extractMInt( Mem16, 0, 1), extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/palignr_xmm_m128_imm8.k b/semantics/memoryInstructions/palignr_xmm_m128_imm8.k index c7c367b4d..4a180da4e 100644 --- a/semantics/memoryInstructions/palignr_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/palignr_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PALIGNR-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(palignr:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(palignr:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (palignr:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (palignr:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (palignr Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (palignr:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (palignr:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), Mem128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), uvalueMInt(mi(256, 3))))), 128, 256)) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), Mem128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), Imm8), uvalueMInt(mi(256, 3))))), 128, 256)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pblendw_xmm_m128_imm8.k b/semantics/memoryInstructions/pblendw_xmm_m128_imm8.k index 43af6e40d..aa6593bf9 100644 --- a/semantics/memoryInstructions/pblendw_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pblendw_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PBLENDW-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(pblendw:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(pblendw:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pblendw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pblendw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (pblendw Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pblendw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pblendw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( Mem128, 0, 16) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( Mem128, 16, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( Mem128, 32, 48) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( Mem128, 48, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( Mem128, 64, 80) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( Mem128, 80, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( Mem128, 96, 112) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( Mem128, 112, 128) #fi))))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( Mem128, 0, 16) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( Mem128, 16, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( Mem128, 32, 48) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( Mem128, 48, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( Mem128, 64, 80) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( Mem128, 80, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( Mem128, 96, 112) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( Mem128, 112, 128) #fi))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pclmulqdq_xmm_m128_imm8.k b/semantics/memoryInstructions/pclmulqdq_xmm_m128_imm8.k index 99509379b..d7e6dd713 100644 --- a/semantics/memoryInstructions/pclmulqdq_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pclmulqdq_xmm_m128_imm8.k @@ -59,15 +59,14 @@ module PCLMULQDQ-XMM-M128-IMM8 */ rule memLoadValue(MemVal:MInt):MemLoadValue ~> - execinstr (pclmulqdq Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pclmulqdq Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => execinstr(pclmulqdq - selectSlice(getRegisterValue(R3, RSMap), handleImmediateWithSignExtend(Imm8, - 8, 8), 7, 64, 0), - selectSlice(MemVal, handleImmediateWithSignExtend(Imm8, - 8, 8), 3, 64, 0), R3 + selectSlice(getRegisterValue(R3, RSMap), Imm8, 7, 64, 0), + selectSlice(MemVal, Imm8, 3, 64, 0), R3 , .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (pclmulqdq TEMP1:MInt, TEMP2:MInt, R3:Xmm, .Operands) => diff --git a/semantics/memoryInstructions/pcmpestri_xmm_m128_imm8.k b/semantics/memoryInstructions/pcmpestri_xmm_m128_imm8.k index 61a510c17..45b1025e5 100644 --- a/semantics/memoryInstructions/pcmpestri_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pcmpestri_xmm_m128_imm8.k @@ -4,27 +4,28 @@ requires "x86-configuration.k" module PCMPESTRI-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(pcmpestri:Opcode Imm8:Imm, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] + context execinstr(pcmpestri:Opcode Imm8:MInt, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pcmpestri:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => + execinstr (pcmpestri:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (pcmpestri Imm8, memOffset( MemOff), Xmm1, .Operands) ... - + requires bitwidthMInt(Imm8) ==Int 8 // Find Limit Index rule memLoadValue(Mem128:MInt):MemLoadValue ~> - execinstr (pcmpestri Imm8:Imm, memOffset( MemOff), Xmm1:Xmm, .Operands) => + execinstr (pcmpestri Imm8:MInt, memOffset( MemOff), Xmm1:Xmm, .Operands) => execinstr (pcmpestri - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, Mem128, getRegisterValue(Xmm1, RSMap), - findLimitIndexE(Mem128, getRegisterValue(%rdx, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexE(Mem128, getRegisterValue(%rdx, RSMap), Imm8), + findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/memoryInstructions/pcmpestrm_xmm_m128_imm8.k b/semantics/memoryInstructions/pcmpestrm_xmm_m128_imm8.k index 958a11c68..767460a26 100644 --- a/semantics/memoryInstructions/pcmpestrm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pcmpestrm_xmm_m128_imm8.k @@ -4,26 +4,27 @@ requires "x86-configuration.k" module PCMPESTRM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(pcmpestrm:Opcode Imm8:Imm, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] + context execinstr(pcmpestrm:Opcode Imm8:MInt, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pcmpestrm:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => + execinstr (pcmpestrm:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (pcmpestrm Imm8, memOffset( MemOff), Xmm1, .Operands) ... - + requires bitwidthMInt(Imm8) ==Int 8 // Find Limit Index rule memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pcmpestrm Imm8, memOffset( MemOff), Xmm1, .Operands) => execinstr (pcmpestrm - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, Mem128, getRegisterValue(Xmm1, RSMap), - findLimitIndexE(Mem128, getRegisterValue(%rdx, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexE(Mem128, getRegisterValue(%rdx, RSMap), Imm8), + findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/memoryInstructions/pcmpistri_xmm_m128_imm8.k b/semantics/memoryInstructions/pcmpistri_xmm_m128_imm8.k index 5a15c9732..39b1d8978 100644 --- a/semantics/memoryInstructions/pcmpistri_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pcmpistri_xmm_m128_imm8.k @@ -4,27 +4,28 @@ requires "x86-configuration.k" module PCMPISTRI-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(pcmpistri:Opcode Imm8:Imm, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] + context execinstr(pcmpistri:Opcode Imm8:MInt, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pcmpistri:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => + execinstr (pcmpistri:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (pcmpistri Imm8, memOffset( MemOff), Xmm1, .Operands) ... - + requires bitwidthMInt(Imm8) ==Int 8 // Find Limit Index rule memLoadValue(Mem128:MInt):MemLoadValue ~> - execinstr (pcmpistri Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (pcmpistri Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (pcmpistri - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, Mem128, getRegisterValue(Xmm1, RSMap), - findLimitIndexI(Mem128, handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexI(getRegisterValue(Xmm1, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexI(Mem128, Imm8), + findLimitIndexI(getRegisterValue(Xmm1, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/memoryInstructions/pcmpistrm_xmm_m128_imm8.k b/semantics/memoryInstructions/pcmpistrm_xmm_m128_imm8.k index 62bca883f..6dd931b04 100644 --- a/semantics/memoryInstructions/pcmpistrm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pcmpistrm_xmm_m128_imm8.k @@ -4,26 +4,28 @@ requires "x86-configuration.k" module PCMPISTRM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(pcmpistrm:Opcode Imm8:Imm, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] + context execinstr(pcmpistrm:Opcode Imm8:MInt, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pcmpistrm:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => + execinstr (pcmpistrm:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (pcmpistrm Imm8, memOffset( MemOff), Xmm1, .Operands) ... + requires bitwidthMInt(Imm8) ==Int 8 // Find Limit Index rule memLoadValue(Mem128:MInt):MemLoadValue ~> - execinstr (pcmpistrm Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (pcmpistrm Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (pcmpistrm - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, Mem128, getRegisterValue(Xmm1, RSMap), - findLimitIndexI(Mem128, handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexI(getRegisterValue(Xmm1, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexI(Mem128, Imm8), + findLimitIndexI(getRegisterValue(Xmm1, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/memoryInstructions/pextrb_m8_xmm_imm8.k b/semantics/memoryInstructions/pextrb_m8_xmm_imm8.k index d7ab2d23b..b73966a0d 100644 --- a/semantics/memoryInstructions/pextrb_m8_xmm_imm8.k +++ b/semantics/memoryInstructions/pextrb_m8_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module PEXTRB-M8-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(pextrb:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(pextrb:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (pextrb:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (pextrb:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (pextrb Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (pextrb:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (pextrb:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128), MemOff, 8 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pextrd_m32_xmm_imm8.k b/semantics/memoryInstructions/pextrd_m32_xmm_imm8.k index f5407af77..7f06e8236 100644 --- a/semantics/memoryInstructions/pextrd_m32_xmm_imm8.k +++ b/semantics/memoryInstructions/pextrd_m32_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module PEXTRD-M32-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(pextrd:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(pextrd:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (pextrd:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (pextrd:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (pextrd Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (pextrd:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (pextrd:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), MemOff, 32 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pextrq_m64_xmm_imm8.k b/semantics/memoryInstructions/pextrq_m64_xmm_imm8.k index 0d61dfb30..5aa3bbb84 100644 --- a/semantics/memoryInstructions/pextrq_m64_xmm_imm8.k +++ b/semantics/memoryInstructions/pextrq_m64_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module PEXTRQ-M64-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(pextrq:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(pextrq:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (pextrq:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (pextrq:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (pextrq Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (pextrq:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (pextrq:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))), 64, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))), 64, 128), MemOff, 64 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pextrw_m16_xmm_imm8.k b/semantics/memoryInstructions/pextrw_m16_xmm_imm8.k index f95eff99d..9935ae96a 100644 --- a/semantics/memoryInstructions/pextrw_m16_xmm_imm8.k +++ b/semantics/memoryInstructions/pextrw_m16_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module PEXTRW-M16-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(pextrw:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(pextrw:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (pextrw:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (pextrw:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (pextrw Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (pextrw:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (pextrw:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128), MemOff, 16 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pinsrb_xmm_m8_imm8.k b/semantics/memoryInstructions/pinsrb_xmm_m8_imm8.k index 042e06a78..49e837687 100644 --- a/semantics/memoryInstructions/pinsrb_xmm_m8_imm8.k +++ b/semantics/memoryInstructions/pinsrb_xmm_m8_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PINSRB-XMM-M8-IMM8 imports X86-CONFIGURATION - context execinstr(pinsrb:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(pinsrb:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pinsrb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pinsrb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (pinsrb Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (pinsrb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (pinsrb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(120, 0), Mem8), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3)))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(120, 0), Mem8), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pinsrd_xmm_m32_imm8.k b/semantics/memoryInstructions/pinsrd_xmm_m32_imm8.k index 56522bc13..0516c0b31 100644 --- a/semantics/memoryInstructions/pinsrd_xmm_m32_imm8.k +++ b/semantics/memoryInstructions/pinsrd_xmm_m32_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PINSRD-XMM-M32-IMM8 imports X86-CONFIGURATION - context execinstr(pinsrd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(pinsrd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pinsrd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pinsrd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (pinsrd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (pinsrd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (pinsrd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), Mem32), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5)))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), Mem32), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pinsrq_xmm_m64_imm8.k b/semantics/memoryInstructions/pinsrq_xmm_m64_imm8.k index edfe63203..7b9bc6903 100644 --- a/semantics/memoryInstructions/pinsrq_xmm_m64_imm8.k +++ b/semantics/memoryInstructions/pinsrq_xmm_m64_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PINSRQ-XMM-M64-IMM8 imports X86-CONFIGURATION - context execinstr(pinsrq:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(pinsrq:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pinsrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pinsrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (pinsrq Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (pinsrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (pinsrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(64, 0), Mem64), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))), shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6)))))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(64, 0), Mem64), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))), shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pinsrw_xmm_m16_imm8.k b/semantics/memoryInstructions/pinsrw_xmm_m16_imm8.k index 5bed131d4..7ae87cb30 100644 --- a/semantics/memoryInstructions/pinsrw_xmm_m16_imm8.k +++ b/semantics/memoryInstructions/pinsrw_xmm_m16_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PINSRW-XMM-M16-IMM8 imports X86-CONFIGURATION - context execinstr(pinsrw:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(pinsrw:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pinsrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pinsrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (pinsrw Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (pinsrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (pinsrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(112, 0), Mem16), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4)))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(112, 0), Mem16), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pshufd_xmm_m128_imm8.k b/semantics/memoryInstructions/pshufd_xmm_m128_imm8.k index f0842f0ea..3a8776d47 100644 --- a/semantics/memoryInstructions/pshufd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pshufd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PSHUFD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(pshufd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(pshufd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pshufd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pshufd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (pshufd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pshufd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pshufd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pshufhw_xmm_m128_imm8.k b/semantics/memoryInstructions/pshufhw_xmm_m128_imm8.k index 21db89b0b..ac5963cc5 100644 --- a/semantics/memoryInstructions/pshufhw_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pshufhw_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PSHUFHW-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(pshufhw:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(pshufhw:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pshufhw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pshufhw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (pshufhw Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pshufhw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pshufhw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 4))))), 48, 64), extractMInt( Mem128, 64, 128)))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 4))))), 48, 64), extractMInt( Mem128, 64, 128)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/pshuflw_xmm_m128_imm8.k b/semantics/memoryInstructions/pshuflw_xmm_m128_imm8.k index 40071f4bf..916bf22a1 100644 --- a/semantics/memoryInstructions/pshuflw_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/pshuflw_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module PSHUFLW-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(pshuflw:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(pshuflw:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (pshuflw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (pshuflw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (pshuflw Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pshuflw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (pshuflw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( Mem128, 0, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 4))))), 112, 128), extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 4))))), 112, 128)))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( extractMInt( Mem128, 0, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 4))))), 112, 128), extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 4))))), 112, 128)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rclb_m8_imm8.k b/semantics/memoryInstructions/rclb_m8_imm8.k index 1e9c4b1a0..212f87c6f 100644 --- a/semantics/memoryInstructions/rclb_m8_imm8.k +++ b/semantics/memoryInstructions/rclb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RCLB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(rclb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rclb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rclb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rclb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (rclb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (rclb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (rclb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 9), + extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 9), MemOff, 8 ) @@ -25,9 +26,10 @@ module RCLB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rcll_m32_imm8.k b/semantics/memoryInstructions/rcll_m32_imm8.k index 1820d2099..e0da5ed9c 100644 --- a/semantics/memoryInstructions/rcll_m32_imm8.k +++ b/semantics/memoryInstructions/rcll_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RCLL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(rcll:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rcll:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rcll:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rcll:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (rcll Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (rcll:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (rcll:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 1, 33), + extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 1, 33), MemOff, 32 ) @@ -25,9 +26,10 @@ module RCLL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rclq_m64_imm8.k b/semantics/memoryInstructions/rclq_m64_imm8.k index 8f5625314..cf3443d73 100644 --- a/semantics/memoryInstructions/rclq_m64_imm8.k +++ b/semantics/memoryInstructions/rclq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RCLQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(rclq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rclq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rclq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rclq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (rclq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rclq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rclq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 1, 65), + extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 1, 65), MemOff, 64 ) @@ -25,9 +26,10 @@ module RCLQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rclw_m16_imm8.k b/semantics/memoryInstructions/rclw_m16_imm8.k index bd9fdc138..db3ea085e 100644 --- a/semantics/memoryInstructions/rclw_m16_imm8.k +++ b/semantics/memoryInstructions/rclw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RCLW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(rclw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rclw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rclw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rclw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (rclw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (rclw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (rclw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 1, 17), + extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 1, 17), MemOff, 16 ) @@ -25,9 +26,10 @@ module RCLW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 0, 1) +"CF" |-> extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1)) andBool (eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rcrb_m8_imm8.k b/semantics/memoryInstructions/rcrb_m8_imm8.k index 56168eaba..6b37b602b 100644 --- a/semantics/memoryInstructions/rcrb_m8_imm8.k +++ b/semantics/memoryInstructions/rcrb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RCRB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(rcrb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rcrb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rcrb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rcrb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (rcrb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (rcrb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (rcrb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 9), + extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 9), MemOff, 8 ) @@ -25,9 +26,10 @@ module RCRB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem8), uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))), mi(9, 9)), 1, 9), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rcrl_m32_imm8.k b/semantics/memoryInstructions/rcrl_m32_imm8.k index eb957b2fb..aa3cd6441 100644 --- a/semantics/memoryInstructions/rcrl_m32_imm8.k +++ b/semantics/memoryInstructions/rcrl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RCRL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(rcrl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rcrl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rcrl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rcrl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (rcrl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (rcrl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (rcrl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 1, 33), + extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 1, 33), MemOff, 32 ) @@ -25,9 +26,10 @@ module RCRL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem32), uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))), mi(33, 33)), 25, 33), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rcrq_m64_imm8.k b/semantics/memoryInstructions/rcrq_m64_imm8.k index e4ff5d706..4b542beb5 100644 --- a/semantics/memoryInstructions/rcrq_m64_imm8.k +++ b/semantics/memoryInstructions/rcrq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RCRQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(rcrq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rcrq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rcrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rcrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (rcrq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rcrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rcrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 1, 65), + extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 1, 65), MemOff, 64 ) @@ -25,9 +26,10 @@ module RCRQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem64), uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))), mi(65, 65)), 57, 65), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rcrw_m16_imm8.k b/semantics/memoryInstructions/rcrw_m16_imm8.k index d580ecd02..ba4cc16fe 100644 --- a/semantics/memoryInstructions/rcrw_m16_imm8.k +++ b/semantics/memoryInstructions/rcrw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RCRW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(rcrw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rcrw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rcrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rcrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (rcrw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (rcrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (rcrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 1, 17), + extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 1, 17), MemOff, 16 ) @@ -25,9 +26,10 @@ module RCRW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 0, 1) +"CF" |-> extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 0, 1) -"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1)) andBool (eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 1, 2), mi(1, 1)) xorBool eqMInt( extractMInt( ror( concatenateMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then mi(1, 1) #else mi(1, 0) #fi), Mem16), uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17))), 2, 3), mi(1, 1)))) orBool ((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 1))) andBool (((notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( extractMInt( uremMInt( concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))), mi(17, 17)), 9, 17), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rolb_m8_imm8.k b/semantics/memoryInstructions/rolb_m8_imm8.k index 115587aac..c825e8e4a 100644 --- a/semantics/memoryInstructions/rolb_m8_imm8.k +++ b/semantics/memoryInstructions/rolb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ROLB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(rolb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rolb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rolb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rolb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (rolb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (rolb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (rolb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - rol( Mem8, andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), + rol( Mem8, andMInt( Imm8, mi(8, 31))), MemOff, 8 ) @@ -25,9 +26,10 @@ module ROLB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( Mem8, andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 7, 8), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( Mem8, andMInt( Imm8, mi(8, 31))), 7, 8), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( Mem8, andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem8, andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 7, 8), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( Mem8, andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem8, andMInt( Imm8, mi(8, 31))), 7, 8), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/roll_m32_imm8.k b/semantics/memoryInstructions/roll_m32_imm8.k index 0e57abfb6..fe67f00e8 100644 --- a/semantics/memoryInstructions/roll_m32_imm8.k +++ b/semantics/memoryInstructions/roll_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ROLL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(roll:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(roll:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (roll:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (roll:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (roll Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (roll:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (roll:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - rol( Mem32, concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), + rol( Mem32, concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), MemOff, 32 ) @@ -25,9 +26,10 @@ module ROLL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( Mem32, concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 31, 32), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( Mem32, concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 31, 32), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( Mem32, concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem32, concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 31, 32), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( Mem32, concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem32, concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 31, 32), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rolq_m64_imm8.k b/semantics/memoryInstructions/rolq_m64_imm8.k index cc2e55f91..116062163 100644 --- a/semantics/memoryInstructions/rolq_m64_imm8.k +++ b/semantics/memoryInstructions/rolq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ROLQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(rolq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rolq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rolq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rolq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (rolq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rolq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rolq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - rol( Mem64, concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), + rol( Mem64, concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), MemOff, 64 ) @@ -25,9 +26,10 @@ module ROLQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( rol( Mem64, concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 63, 64), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( rol( Mem64, concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 63, 64), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( Mem64, concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem64, concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 63, 64), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( Mem64, concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem64, concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 63, 64), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rolw_m16_imm8.k b/semantics/memoryInstructions/rolw_m16_imm8.k index 7e03695af..83ebb9836 100644 --- a/semantics/memoryInstructions/rolw_m16_imm8.k +++ b/semantics/memoryInstructions/rolw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module ROLW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(rolw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rolw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rolw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rolw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (rolw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (rolw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (rolw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - rol( Mem16, concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), + rol( Mem16, concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), MemOff, 16 ) @@ -25,9 +26,10 @@ module ROLW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( Mem16, concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 15, 16), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( rol( Mem16, concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 15, 16), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( Mem16, concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem16, concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 15, 16), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( rol( Mem16, concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem16, concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 15, 16), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rorb_m8_imm8.k b/semantics/memoryInstructions/rorb_m8_imm8.k index e22fbf7e7..80e919c13 100644 --- a/semantics/memoryInstructions/rorb_m8_imm8.k +++ b/semantics/memoryInstructions/rorb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RORB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(rorb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rorb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rorb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rorb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (rorb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (rorb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (rorb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - ror( Mem8, andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), + ror( Mem8, andMInt( Imm8, mi(8, 31))), MemOff, 8 ) @@ -25,9 +26,10 @@ module RORB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( Mem8, andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( Mem8, andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( Mem8, andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( Mem8, andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( Mem8, andMInt( Imm8, mi(8, 31))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( Mem8, andMInt( Imm8, mi(8, 31))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rorl_m32_imm8.k b/semantics/memoryInstructions/rorl_m32_imm8.k index 8499c1983..50ef81eeb 100644 --- a/semantics/memoryInstructions/rorl_m32_imm8.k +++ b/semantics/memoryInstructions/rorl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RORL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(rorl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rorl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rorl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rorl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (rorl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (rorl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (rorl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - ror( Mem32, concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), + ror( Mem32, concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), MemOff, 32 ) @@ -25,9 +26,10 @@ module RORL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( Mem32, concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( Mem32, concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( Mem32, concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( Mem32, concatenateMInt( mi(24, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( Mem32, concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( Mem32, concatenateMInt( mi(24, 0), andMInt( Imm8, mi(8, 31)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rorq_m64_imm8.k b/semantics/memoryInstructions/rorq_m64_imm8.k index 8999aa369..d89905778 100644 --- a/semantics/memoryInstructions/rorq_m64_imm8.k +++ b/semantics/memoryInstructions/rorq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RORQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(rorq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rorq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rorq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rorq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (rorq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rorq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rorq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - ror( Mem64, concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), + ror( Mem64, concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), MemOff, 64 ) @@ -25,9 +26,10 @@ module RORQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( ror( Mem64, concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( ror( Mem64, concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( Mem64, concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( Mem64, concatenateMInt( mi(56, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( Mem64, concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( Mem64, concatenateMInt( mi(56, 0), andMInt( Imm8, mi(8, 63)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rorw_m16_imm8.k b/semantics/memoryInstructions/rorw_m16_imm8.k index 24b01f49f..b68cd20d0 100644 --- a/semantics/memoryInstructions/rorw_m16_imm8.k +++ b/semantics/memoryInstructions/rorw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module RORW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(rorw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(rorw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (rorw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (rorw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (rorw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (rorw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (rorw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - ror( Mem16, concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), + ror( Mem16, concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), MemOff, 16 ) @@ -25,9 +26,10 @@ module RORW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( Mem16, concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( ror( Mem16, concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( Mem16, concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( Mem16, concatenateMInt( mi(8, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (eqMInt( extractMInt( ror( Mem16, concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( ror( Mem16, concatenateMInt( mi(8, 0), andMInt( Imm8, mi(8, 31)))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rorxl_r32_m32_imm8.k b/semantics/memoryInstructions/rorxl_r32_m32_imm8.k index 403e4c689..93b6be969 100644 --- a/semantics/memoryInstructions/rorxl_r32_m32_imm8.k +++ b/semantics/memoryInstructions/rorxl_r32_m32_imm8.k @@ -5,24 +5,26 @@ module RORXL-R32-M32-IMM8 imports X86-CONFIGURATION rule - execinstr (rorx:Opcode Imm8:Imm, M:Mem, R3:R32, .Operands) => execinstr (rorxl:Opcode Imm8:Imm, M:Mem, R3:R32, .Operands) + execinstr (rorx:Opcode Imm8:MInt, M:Mem, R3:R32, .Operands) => execinstr (rorxl:Opcode Imm8:MInt, M:Mem, R3:R32, .Operands) ... - context execinstr(rorxl:Opcode Imm8:Imm, HOLE:Mem, R3:R32, .Operands) [result(MemOffset)] + context execinstr(rorxl:Opcode Imm8:MInt, HOLE:Mem, R3:R32, .Operands) [result(MemOffset)] rule - execinstr (rorxl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => + execinstr (rorxl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (rorxl Imm8, memOffset( MemOff), R3, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (rorxl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (rorxl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R32, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), orMInt( lshrMInt( Mem32, uvalueMInt(andMInt( concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(32, 31)))), shiftLeftMInt( Mem32, uvalueMInt(subMInt( mi(32, 32), andMInt( concatenateMInt( mi(24, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(32, 31))))))) +convToRegKeys(R3) |-> concatenateMInt( mi(32, 0), orMInt( lshrMInt( Mem32, uvalueMInt(andMInt( concatenateMInt( mi(24, 0), Imm8), mi(32, 31)))), shiftLeftMInt( Mem32, uvalueMInt(subMInt( mi(32, 32), andMInt( concatenateMInt( mi(24, 0), Imm8), mi(32, 31))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/rorxq_r64_m64_imm8.k b/semantics/memoryInstructions/rorxq_r64_m64_imm8.k index 4c6ff662d..66e54a499 100644 --- a/semantics/memoryInstructions/rorxq_r64_m64_imm8.k +++ b/semantics/memoryInstructions/rorxq_r64_m64_imm8.k @@ -5,24 +5,26 @@ module RORXQ-R64-M64-IMM8 imports X86-CONFIGURATION rule - execinstr (rorx:Opcode Imm8:Imm, M:Mem, R3:R64, .Operands) => execinstr (rorxq:Opcode Imm8:Imm, M:Mem, R3:R64, .Operands) + execinstr (rorx:Opcode Imm8:MInt, M:Mem, R3:R64, .Operands) => execinstr (rorxq:Opcode Imm8:MInt, M:Mem, R3:R64, .Operands) ... - context execinstr(rorxq:Opcode Imm8:Imm, HOLE:Mem, R3:R64, .Operands) [result(MemOffset)] + context execinstr(rorxq:Opcode Imm8:MInt, HOLE:Mem, R3:R64, .Operands) [result(MemOffset)] rule - execinstr (rorxq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => + execinstr (rorxq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (rorxq Imm8, memOffset( MemOff), R3, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rorxq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (rorxq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:R64, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> orMInt( lshrMInt( Mem64, uvalueMInt(andMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)))), shiftLeftMInt( Mem64, uvalueMInt(subMInt( mi(64, 64), andMInt( concatenateMInt( mi(56, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(64, 63)))))) +convToRegKeys(R3) |-> orMInt( lshrMInt( Mem64, uvalueMInt(andMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)))), shiftLeftMInt( Mem64, uvalueMInt(subMInt( mi(64, 64), andMInt( concatenateMInt( mi(56, 0), Imm8), mi(64, 63)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/roundpd_xmm_m128_imm8.k b/semantics/memoryInstructions/roundpd_xmm_m128_imm8.k index ae8284b22..2b1e60e30 100644 --- a/semantics/memoryInstructions/roundpd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/roundpd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module ROUNDPD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(roundpd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(roundpd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (roundpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (roundpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (roundpd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (roundpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (roundpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem128, 0, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_double_to_int64_rm(extractMInt( Mem128, 64, 128), handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem128, 0, 64), Imm8), cvt_double_to_int64_rm(extractMInt( Mem128, 64, 128), Imm8))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/roundps_xmm_m128_imm8.k b/semantics/memoryInstructions/roundps_xmm_m128_imm8.k index 53aba7948..1eafb838e 100644 --- a/semantics/memoryInstructions/roundps_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/roundps_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module ROUNDPS-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(roundps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(roundps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (roundps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (roundps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (roundps Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (roundps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (roundps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_int32_rm(extractMInt( Mem128, 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 0, 32), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 32, 64), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 64, 96), Imm8), cvt_single_to_int32_rm(extractMInt( Mem128, 96, 128), Imm8))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/roundsd_xmm_m64_imm8.k b/semantics/memoryInstructions/roundsd_xmm_m64_imm8.k index 8cc87cd6b..7e64db1ec 100644 --- a/semantics/memoryInstructions/roundsd_xmm_m64_imm8.k +++ b/semantics/memoryInstructions/roundsd_xmm_m64_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module ROUNDSD-XMM-M64-IMM8 imports X86-CONFIGURATION - context execinstr(roundsd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(roundsd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (roundsd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (roundsd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (roundsd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (roundsd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (roundsd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 192), cvt_double_to_int64_rm(Mem64, handleImmediateWithSignExtend(Imm8, 8, 8))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 192), cvt_double_to_int64_rm(Mem64, Imm8)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/roundss_xmm_m32_imm8.k b/semantics/memoryInstructions/roundss_xmm_m32_imm8.k index 40c5a4a58..87aa38cd2 100644 --- a/semantics/memoryInstructions/roundss_xmm_m32_imm8.k +++ b/semantics/memoryInstructions/roundss_xmm_m32_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module ROUNDSS-XMM-M32-IMM8 imports X86-CONFIGURATION - context execinstr(roundss:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(roundss:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (roundss:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (roundss:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (roundss Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (roundss:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (roundss:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 224), cvt_single_to_int32_rm(Mem32, handleImmediateWithSignExtend(Imm8, 8, 8))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 224), cvt_single_to_int32_rm(Mem32, Imm8)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/salb_m8_imm8.k b/semantics/memoryInstructions/salb_m8_imm8.k index 80244bebe..3f2288643 100644 --- a/semantics/memoryInstructions/salb_m8_imm8.k +++ b/semantics/memoryInstructions/salb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SALB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(salb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(salb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (salb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (salb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (salb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (salb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (salb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9), + extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9), MemOff, 8 ) @@ -25,17 +26,18 @@ module SALB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sall_m32_imm8.k b/semantics/memoryInstructions/sall_m32_imm8.k index e0db794b1..429a7ea76 100644 --- a/semantics/memoryInstructions/sall_m32_imm8.k +++ b/semantics/memoryInstructions/sall_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SALL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(sall:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sall:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sall:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sall:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (sall Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (sall:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (sall:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 33), + extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module SALL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/salq_m64_imm8.k b/semantics/memoryInstructions/salq_m64_imm8.k index 91a19ad89..055316671 100644 --- a/semantics/memoryInstructions/salq_m64_imm8.k +++ b/semantics/memoryInstructions/salq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SALQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(salq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(salq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (salq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (salq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (salq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (salq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (salq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 65), + extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module SALQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 57, 58), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 57, 58), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 65), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 65), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/salw_m16_imm8.k b/semantics/memoryInstructions/salw_m16_imm8.k index c83bfe219..496297d94 100644 --- a/semantics/memoryInstructions/salw_m16_imm8.k +++ b/semantics/memoryInstructions/salw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SALW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(salw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(salw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (salw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (salw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (salw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (salw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (salw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 17), + extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module SALW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 9, 10), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 9, 10), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 17), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 17), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sarb_m8_imm8.k b/semantics/memoryInstructions/sarb_m8_imm8.k index 59d97e5a7..5442d340f 100644 --- a/semantics/memoryInstructions/sarb_m8_imm8.k +++ b/semantics/memoryInstructions/sarb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SARB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(sarb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sarb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sarb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sarb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (sarb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (sarb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (sarb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8), + extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8), MemOff, 8 ) @@ -25,17 +26,18 @@ module SARB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sarl_m32_imm8.k b/semantics/memoryInstructions/sarl_m32_imm8.k index c73573a2f..bbbdd9d10 100644 --- a/semantics/memoryInstructions/sarl_m32_imm8.k +++ b/semantics/memoryInstructions/sarl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SARL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(sarl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sarl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sarl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sarl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (sarl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (sarl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (sarl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 32), + extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 32), MemOff, 32 ) @@ -25,17 +26,18 @@ module SARL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 32, 33), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 32, 33), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sarq_m64_imm8.k b/semantics/memoryInstructions/sarq_m64_imm8.k index 74a84be29..16befd942 100644 --- a/semantics/memoryInstructions/sarq_m64_imm8.k +++ b/semantics/memoryInstructions/sarq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SARQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(sarq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sarq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sarq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sarq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (sarq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (sarq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (sarq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 64), + extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 64), MemOff, 64 ) @@ -25,17 +26,18 @@ module SARQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 64, 65), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 64, 65), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 63, 64), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 57, 58), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 56, 57), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 63, 64), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 57, 58), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 56, 57), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 64), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 64), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sarw_m16_imm8.k b/semantics/memoryInstructions/sarw_m16_imm8.k index 26983a601..12f5232da 100644 --- a/semantics/memoryInstructions/sarw_m16_imm8.k +++ b/semantics/memoryInstructions/sarw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SARW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(sarw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sarw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sarw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sarw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (sarw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (sarw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (sarw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 16), + extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 16), MemOff, 16 ) @@ -25,17 +26,18 @@ module SARW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 16, 17), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 16, 17), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 15, 16), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 9, 10), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 15, 16), mi(1, 1)) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 9, 10), mi(1, 1))) xorBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 16), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 16), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( aShiftRightMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool false) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sbbb_m8_imm8.k b/semantics/memoryInstructions/sbbb_m8_imm8.k index a468e8290..cc891bd13 100644 --- a/semantics/memoryInstructions/sbbb_m8_imm8.k +++ b/semantics/memoryInstructions/sbbb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SBBB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(sbbb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sbbb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sbbb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sbbb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (sbbb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (sbbb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (sbbb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 9), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 9), MemOff, 8 ) @@ -25,17 +26,18 @@ module SBBB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm8)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)) #fi), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sbbl_m32_imm32.k b/semantics/memoryInstructions/sbbl_m32_imm32.k index 1ba0b6a37..876dc9a29 100644 --- a/semantics/memoryInstructions/sbbl_m32_imm32.k +++ b/semantics/memoryInstructions/sbbl_m32_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SBBL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(sbbl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sbbl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sbbl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sbbl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (sbbl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (sbbl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (sbbl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module SBBL-M32-IMM32 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm32)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/sbbl_m32_imm8.k b/semantics/memoryInstructions/sbbl_m32_imm8.k index 27e5f5e99..3c6ce1174 100644 --- a/semantics/memoryInstructions/sbbl_m32_imm8.k +++ b/semantics/memoryInstructions/sbbl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SBBL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(sbbl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sbbl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sbbl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sbbl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (sbbl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (sbbl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (sbbl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module SBBL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)) #fi), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sbbq_m64_imm32.k b/semantics/memoryInstructions/sbbq_m64_imm32.k index 411fc3817..b46c2d453 100644 --- a/semantics/memoryInstructions/sbbq_m64_imm32.k +++ b/semantics/memoryInstructions/sbbq_m64_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SBBQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(sbbq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sbbq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sbbq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sbbq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (sbbq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (sbbq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (sbbq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module SBBQ-M64-IMM32 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/sbbq_m64_imm8.k b/semantics/memoryInstructions/sbbq_m64_imm8.k index 3e298d180..23649dcf3 100644 --- a/semantics/memoryInstructions/sbbq_m64_imm8.k +++ b/semantics/memoryInstructions/sbbq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SBBQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(sbbq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sbbq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sbbq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sbbq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (sbbq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (sbbq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (sbbq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module SBBQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)) #fi), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/sbbw_m16_imm16.k b/semantics/memoryInstructions/sbbw_m16_imm16.k index ae798b603..0b9c92500 100644 --- a/semantics/memoryInstructions/sbbw_m16_imm16.k +++ b/semantics/memoryInstructions/sbbw_m16_imm16.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SBBW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(sbbw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sbbw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sbbw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sbbw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (sbbw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (sbbw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (sbbw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module SBBW-M16-IMM16 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( Imm16)) #else addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/sbbw_m16_imm8.k b/semantics/memoryInstructions/sbbw_m16_imm8.k index e9c12872c..0676dff77 100644 --- a/semantics/memoryInstructions/sbbw_m16_imm8.k +++ b/semantics/memoryInstructions/sbbw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SBBW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(sbbw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(sbbw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (sbbw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (sbbw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (sbbw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (sbbw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (sbbw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), + extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module SBBW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( (#ifMInt eqMInt(getFlag("CF", RSMap), mi(1,1)) #then concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))) #else addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)) #fi), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shlb_m8_imm8.k b/semantics/memoryInstructions/shlb_m8_imm8.k index 740e7baee..91cb93dda 100644 --- a/semantics/memoryInstructions/shlb_m8_imm8.k +++ b/semantics/memoryInstructions/shlb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SHLB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(shlb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(shlb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shlb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shlb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (shlb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (shlb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (shlb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9), + extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9), MemOff, 8 ) @@ -25,17 +26,18 @@ module SHLB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 9), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem8), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shldl_m32_r32_imm8.k b/semantics/memoryInstructions/shldl_m32_r32_imm8.k index 1bbfba3b8..a0c66fe5f 100644 --- a/semantics/memoryInstructions/shldl_m32_r32_imm8.k +++ b/semantics/memoryInstructions/shldl_m32_r32_imm8.k @@ -4,21 +4,23 @@ requires "x86-configuration.k" module SHLDL-M32-R32-IMM8 imports X86-CONFIGURATION - context execinstr (shldl Imm8:Imm, R2:R32, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr (shldl Imm8:MInt, R2:R32, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shldl Imm8:Imm, R2:R32, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shldl Imm8:MInt, R2:R32, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> - execinstr (shldl Imm8:Imm, R2, memOffset( MemOff), .Operands) + execinstr (shldl Imm8:MInt, R2, memOffset( MemOff), .Operands) ... + requires bitwidthMInt(Imm8) ==Int 8 rule memLoadValue(Mem32:MInt):MemLoadValue ~> - execinstr (shldl Imm8:Imm, R2:R32, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shldl Imm8:MInt, R2:R32, memOffset( MemOff:MInt):MemOffset, .Operands) => execinstr (shldl memOffset( MemOff), Mem32, getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 32), .Operands) + shiftCountMask(Imm8, 32), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shldl memOffset( MemOff), MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/memoryInstructions/shldq_m64_r64_imm8.k b/semantics/memoryInstructions/shldq_m64_r64_imm8.k index df6839aed..447ebf1df 100644 --- a/semantics/memoryInstructions/shldq_m64_r64_imm8.k +++ b/semantics/memoryInstructions/shldq_m64_r64_imm8.k @@ -4,21 +4,23 @@ requires "x86-configuration.k" module SHLDQ-M64-R64-CL imports X86-CONFIGURATION - context execinstr (shldq Imm8:Imm, R2:R64, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr (shldq Imm8:MInt, R2:R64, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shldq Imm8:Imm, R2:R64, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shldq Imm8:MInt, R2:R64, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> - execinstr (shldq Imm8:Imm, R2, memOffset( MemOff), .Operands) + execinstr (shldq Imm8:MInt, R2, memOffset( MemOff), .Operands) ... + requires bitwidthMInt(Imm8) ==Int 8 rule memLoadValue(Mem64:MInt):MemLoadValue ~> - execinstr (shldq Imm8:Imm, R2:R64, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shldq Imm8:MInt, R2:R64, memOffset( MemOff:MInt):MemOffset, .Operands) => execinstr (shldq memOffset( MemOff), Mem64, getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 64), .Operands) + shiftCountMask(Imm8, 64), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shldq memOffset( MemOff), MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/memoryInstructions/shldw_m16_r16_imm8.k b/semantics/memoryInstructions/shldw_m16_r16_imm8.k index 2506c083d..4ba4a6f2e 100644 --- a/semantics/memoryInstructions/shldw_m16_r16_imm8.k +++ b/semantics/memoryInstructions/shldw_m16_r16_imm8.k @@ -4,21 +4,23 @@ requires "x86-configuration.k" module SHLDW-M16-R16-CL imports X86-CONFIGURATION - context execinstr (shldw Imm8:Imm, R2:R16, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr (shldw Imm8:MInt, R2:R16, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shldw Imm8:Imm, R2:R16, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shldw Imm8:MInt, R2:R16, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> - execinstr (shldw Imm8:Imm, R2, memOffset( MemOff), .Operands) + execinstr (shldw Imm8:MInt, R2, memOffset( MemOff), .Operands) ... + requires bitwidthMInt(Imm8) ==Int 8 rule memLoadValue(Mem16:MInt):MemLoadValue ~> - execinstr (shldw Imm8:Imm, R2:R16, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shldw Imm8:MInt, R2:R16, memOffset( MemOff:MInt):MemOffset, .Operands) => execinstr (shldw memOffset( MemOff), Mem16, getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 32), .Operands) + shiftCountMask(Imm8, 32), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shldw memOffset( MemOff), MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/memoryInstructions/shll_m32_imm8.k b/semantics/memoryInstructions/shll_m32_imm8.k index a5b988a0b..ea987184f 100644 --- a/semantics/memoryInstructions/shll_m32_imm8.k +++ b/semantics/memoryInstructions/shll_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SHLL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(shll:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(shll:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shll:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shll:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (shll Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (shll:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (shll:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 33), + extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module SHLL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 25, 26), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 33), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem32), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shlq_m64_imm8.k b/semantics/memoryInstructions/shlq_m64_imm8.k index 7a96d38c0..62330d61f 100644 --- a/semantics/memoryInstructions/shlq_m64_imm8.k +++ b/semantics/memoryInstructions/shlq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SHLQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(shlq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(shlq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shlq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shlq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (shlq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (shlq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (shlq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 65), + extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module SHLQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 57, 58), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 57, 58), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 65), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 65), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem64), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shlw_m16_imm8.k b/semantics/memoryInstructions/shlw_m16_imm8.k index 3fcaebaf3..71db36930 100644 --- a/semantics/memoryInstructions/shlw_m16_imm8.k +++ b/semantics/memoryInstructions/shlw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SHLW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(shlw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(shlw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shlw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shlw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (shlw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (shlw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (shlw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 17), + extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module SHLW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 9, 10), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 9, 10), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 17), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 17), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool (((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) xorBool eqMInt( extractMInt( shiftLeftMInt( concatenateMInt( mi(1, 0), Mem16), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1)))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shrb_m8_imm8.k b/semantics/memoryInstructions/shrb_m8_imm8.k index 58f665a42..b6b5b4ebb 100644 --- a/semantics/memoryInstructions/shrb_m8_imm8.k +++ b/semantics/memoryInstructions/shrb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SHRB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(shrb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(shrb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shrb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (shrb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (shrb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (shrb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8), + extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8), MemOff, 8 ) @@ -25,17 +26,18 @@ module SHRB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 8))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 7, 8), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 1, 2), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 8), mi(8, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem8, mi(1, 0)), uvalueMInt(concatenateMInt( mi(1, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shrdl_m32_r32_imm8.k b/semantics/memoryInstructions/shrdl_m32_r32_imm8.k index 8ca298761..5fc70efe8 100644 --- a/semantics/memoryInstructions/shrdl_m32_r32_imm8.k +++ b/semantics/memoryInstructions/shrdl_m32_r32_imm8.k @@ -4,21 +4,23 @@ requires "x86-configuration.k" module SHLDL-M32-R32-CL imports X86-CONFIGURATION - context execinstr (shrdl Imm8:Imm, R2:R32, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr (shrdl Imm8:MInt, R2:R32, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shrdl Imm8:Imm, R2:R32, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrdl Imm8:MInt, R2:R32, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> - execinstr (shrdl Imm8:Imm, R2, memOffset( MemOff), .Operands) + execinstr (shrdl Imm8:MInt, R2, memOffset( MemOff), .Operands) ... + requires bitwidthMInt(Imm8) ==Int 8 rule memLoadValue(Mem32:MInt):MemLoadValue ~> - execinstr (shrdl Imm8:Imm, R2:R32, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrdl Imm8:MInt, R2:R32, memOffset( MemOff:MInt):MemOffset, .Operands) => execinstr (shrdl memOffset( MemOff), Mem32, getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 32), .Operands) + shiftCountMask(Imm8, 32), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shrdl memOffset( MemOff), MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/memoryInstructions/shrdq_m64_r64_imm8.k b/semantics/memoryInstructions/shrdq_m64_r64_imm8.k index 2959c8819..2cb4686ca 100644 --- a/semantics/memoryInstructions/shrdq_m64_r64_imm8.k +++ b/semantics/memoryInstructions/shrdq_m64_r64_imm8.k @@ -4,21 +4,23 @@ requires "x86-configuration.k" module SHRDQ-M64-R64-CL imports X86-CONFIGURATION - context execinstr (shrdq Imm8:Imm, R2:R64, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr (shrdq Imm8:MInt, R2:R64, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shrdq Imm8:Imm, R2:R64, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrdq Imm8:MInt, R2:R64, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> - execinstr (shrdq Imm8:Imm, R2, memOffset( MemOff), .Operands) + execinstr (shrdq Imm8:MInt, R2, memOffset( MemOff), .Operands) ... + requires bitwidthMInt(Imm8) ==Int 8 rule memLoadValue(Mem64:MInt):MemLoadValue ~> - execinstr (shrdq Imm8:Imm, R2:R64, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrdq Imm8:MInt, R2:R64, memOffset( MemOff:MInt):MemOffset, .Operands) => execinstr (shrdq memOffset( MemOff), Mem64, getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 64), .Operands) + shiftCountMask(Imm8, 64), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shrdq memOffset( MemOff), MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/memoryInstructions/shrdw_m16_r16_imm8.k b/semantics/memoryInstructions/shrdw_m16_r16_imm8.k index 53c6df4b2..dca5679cf 100644 --- a/semantics/memoryInstructions/shrdw_m16_r16_imm8.k +++ b/semantics/memoryInstructions/shrdw_m16_r16_imm8.k @@ -4,21 +4,23 @@ requires "x86-configuration.k" module SHLDW-M16-R16-CL imports X86-CONFIGURATION - context execinstr (shrdw Imm8:Imm, R2:R16, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr (shrdw Imm8:MInt, R2:R16, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shrdw Imm8:Imm, R2:R16, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrdw Imm8:MInt, R2:R16, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> - execinstr (shrdw Imm8:Imm, R2, memOffset( MemOff), .Operands) + execinstr (shrdw Imm8:MInt, R2, memOffset( MemOff), .Operands) ... + requires bitwidthMInt(Imm8) ==Int 8 rule memLoadValue(Mem16:MInt):MemLoadValue ~> - execinstr (shrdw Imm8:Imm, R2:R16, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrdw Imm8:MInt, R2:R16, memOffset( MemOff:MInt):MemOffset, .Operands) => execinstr (shrdw memOffset( MemOff), Mem16, getRegisterValue(R2, RSMap), - shiftCountMask(handleImmediateWithSignExtend(Imm8, 8, 8), 32), .Operands) + shiftCountMask(Imm8, 32), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (shrdw memOffset( MemOff), MIdest:MInt, MIsrc:MInt, MIcount:MInt, .Operands) => . diff --git a/semantics/memoryInstructions/shrl_m32_imm8.k b/semantics/memoryInstructions/shrl_m32_imm8.k index 971f379f2..b45c71d28 100644 --- a/semantics/memoryInstructions/shrl_m32_imm8.k +++ b/semantics/memoryInstructions/shrl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SHRL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(shrl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(shrl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shrl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (shrl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (shrl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (shrl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 32), + extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 32), MemOff, 32 ) @@ -25,17 +26,18 @@ module SHRL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 32, 33), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 32))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 32, 33), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 31, 32), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 25, 26), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 24, 25), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 32), mi(32, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem32, mi(1, 0)), uvalueMInt(concatenateMInt( mi(25, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shrq_m64_imm8.k b/semantics/memoryInstructions/shrq_m64_imm8.k index 476766193..24ad06c3a 100644 --- a/semantics/memoryInstructions/shrq_m64_imm8.k +++ b/semantics/memoryInstructions/shrq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SHRQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(shrq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(shrq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (shrq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (shrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (shrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 64), + extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 64), MemOff, 64 ) @@ -25,17 +26,18 @@ module SHRQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 64, 65), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 63)), mi(8, 64))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 64, 65), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 63, 64), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 57, 58), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 56, 57), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 63, 64), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 57, 58), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 56, 57), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 64), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 64), mi(64, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem64, mi(1, 0)), uvalueMInt(concatenateMInt( mi(57, 0), andMInt( Imm8, mi(8, 63))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1)) andBool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1)) andBool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 63)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shrw_m16_imm8.k b/semantics/memoryInstructions/shrw_m16_imm8.k index a86573f61..04927fdac 100644 --- a/semantics/memoryInstructions/shrw_m16_imm8.k +++ b/semantics/memoryInstructions/shrw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SHRW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(shrw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(shrw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (shrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (shrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (shrw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (shrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (shrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 16), + extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 16), MemOff, 16 ) @@ -25,17 +26,18 @@ module SHRW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt ((ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 16, 17), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt ((ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16)) andBool (undefBool)) orBool ((notBool ugeMInt( andMInt( Imm8, mi(8, 31)), mi(8, 16))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 16, 17), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("CF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 15, 16), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 9, 10), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 8, 9), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (notBool (((((((eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 15, 16), mi(1, 1)) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 9, 10), mi(1, 1))) xorBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 8, 9), mi(1, 1))))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("PF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"AF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("AF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 16), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 16), mi(16, 0))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("ZF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"SF" |-> (#ifMInt (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool eqMInt( extractMInt( lshrMInt( concatenateMInt( Mem16, mi(1, 0)), uvalueMInt(concatenateMInt( mi(9, 0), andMInt( Imm8, mi(8, 31))))), 0, 1), mi(1, 1))) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("SF", RSMap), mi(1,1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"OF" |-> (#ifMInt ((eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( handleImmediateWithSignExtend(Imm8, 8, 8), mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1)) andBool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) orBool ((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 1))) andBool (((notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0))) andBool (undefBool)) orBool ((notBool (notBool eqMInt( andMInt( Imm8, mi(8, 31)), mi(8, 0)))) andBool eqMInt(getFlag("OF", RSMap), mi(1,1)))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shufpd_xmm_m128_imm8.k b/semantics/memoryInstructions/shufpd_xmm_m128_imm8.k index 464bcd45f..761fdce69 100644 --- a/semantics/memoryInstructions/shufpd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/shufpd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module SHUFPD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(shufpd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(shufpd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (shufpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (shufpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (shufpd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (shufpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (shufpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( Mem128, 0, 64) #else extractMInt( Mem128, 64, 128) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( Mem128, 0, 64) #else extractMInt( Mem128, 64, 128) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/shufps_xmm_m128_imm8.k b/semantics/memoryInstructions/shufps_xmm_m128_imm8.k index 97946c5ec..c51379b39 100644 --- a/semantics/memoryInstructions/shufps_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/shufps_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module SHUFPS-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(shufps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(shufps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (shufps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (shufps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (shufps Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (shufps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (shufps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( Mem128, 0, 32) #else extractMInt( Mem128, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( Mem128, 0, 32) #else extractMInt( Mem128, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( Mem128, 0, 32) #else extractMInt( Mem128, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( Mem128, 0, 32) #else extractMInt( Mem128, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/subb_m8_imm8.k b/semantics/memoryInstructions/subb_m8_imm8.k index d20f17076..a33f9a8b6 100644 --- a/semantics/memoryInstructions/subb_m8_imm8.k +++ b/semantics/memoryInstructions/subb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SUBB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(subb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(subb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (subb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (subb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (subb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (subb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (subb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 9), + extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 9), MemOff, 8 ) @@ -25,17 +26,18 @@ module SUBB-M8-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 8, 9), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 7, 8), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 6, 7), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 5, 6), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 4, 5), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 3, 4), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 2, 3), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem8, 3, 4)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 4, 5)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 9), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm8, 8, 8))), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem8, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm8, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm8)), mi(9, 1)), concatenateMInt( mi(1, 0), Mem8)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/subl_m32_imm32.k b/semantics/memoryInstructions/subl_m32_imm32.k index 8a939714d..0c9d0d0c1 100644 --- a/semantics/memoryInstructions/subl_m32_imm32.k +++ b/semantics/memoryInstructions/subl_m32_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SUBL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(subl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(subl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (subl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (subl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (subl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (subl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (subl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), + extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module SUBL-M32-IMM32 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm32, 32, 32))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm32, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm32)), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/subl_m32_imm8.k b/semantics/memoryInstructions/subl_m32_imm8.k index f59e7d68a..31ff4f755 100644 --- a/semantics/memoryInstructions/subl_m32_imm8.k +++ b/semantics/memoryInstructions/subl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SUBL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(subl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(subl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (subl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (subl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (subl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (subl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (subl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), + extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), MemOff, 32 ) @@ -25,17 +26,18 @@ module SUBL-M32-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 32, 33), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 31, 32), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 30, 31), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 29, 30), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 27, 28), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 26, 27), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 25, 26), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem32, 27, 28)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 28, 29)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 33), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem32, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(32, svalueMInt(Imm8)))), mi(33, 1)), concatenateMInt( mi(1, 0), Mem32)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/subq_m64_imm32.k b/semantics/memoryInstructions/subq_m64_imm32.k index 426fb7c3c..358e84cf9 100644 --- a/semantics/memoryInstructions/subq_m64_imm32.k +++ b/semantics/memoryInstructions/subq_m64_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SUBQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(subq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(subq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (subq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (subq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (subq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (subq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (subq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), + extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module SUBQ-M64-IMM32 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm32, 27, 28), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm32)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/subq_m64_imm8.k b/semantics/memoryInstructions/subq_m64_imm8.k index 60c284973..e890fec12 100644 --- a/semantics/memoryInstructions/subq_m64_imm8.k +++ b/semantics/memoryInstructions/subq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SUBQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(subq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(subq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (subq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (subq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (subq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (subq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (subq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), + extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), MemOff, 64 ) @@ -25,17 +26,18 @@ module SUBQ-M64-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 64, 65), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 63, 64), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 62, 63), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 61, 62), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 59, 60), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 58, 59), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 57, 58), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem64, 59, 60)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 60, 61)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 65), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem64, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(64, svalueMInt(Imm8)))), mi(65, 1)), concatenateMInt( mi(1, 0), Mem64)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/subw_m16_imm16.k b/semantics/memoryInstructions/subw_m16_imm16.k index fe95e04b7..f2c0ed3da 100644 --- a/semantics/memoryInstructions/subw_m16_imm16.k +++ b/semantics/memoryInstructions/subw_m16_imm16.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SUBW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(subw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(subw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (subw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (subw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (subw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (subw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (subw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), + extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module SUBW-M16-IMM16 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm16, 11, 12), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( handleImmediateWithSignExtend(Imm16, 16, 16))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( Imm16, 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( Imm16)), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/subw_m16_imm8.k b/semantics/memoryInstructions/subw_m16_imm8.k index 67a007e25..b791b6e34 100644 --- a/semantics/memoryInstructions/subw_m16_imm8.k +++ b/semantics/memoryInstructions/subw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module SUBW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(subw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(subw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (subw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (subw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (subw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (subw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (subw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), + extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), MemOff, 16 ) @@ -25,17 +26,18 @@ module SUBW-M16-IMM8 ... RSMap:Map => updateMap(RSMap, -"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +"CF" |-> (#ifMInt (notBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 0, 1), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 16, 17), mi(1, 1)) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 15, 16), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 14, 15), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 13, 14), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 11, 12), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 10, 11), mi(1, 1))) xorBool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 9, 10), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) -"AF" |-> xorMInt( xorMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) +"AF" |-> xorMInt( xorMInt( extractMInt( Imm8, 3, 4), extractMInt( Mem16, 11, 12)), extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 12, 13)) -"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 17), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) +"SF" |-> extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2) -"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) +"OF" |-> (#ifMInt ((eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( Mem16, 0, 1), mi(1, 1))) andBool (notBool (eqMInt( negMInt( extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)), mi(1, 1)) ==Bool eqMInt( extractMInt( addMInt( addMInt( concatenateMInt( mi(1, 0), negMInt( mi(16, svalueMInt(Imm8)))), mi(17, 1)), concatenateMInt( mi(1, 0), Mem16)), 1, 2), mi(1, 1))))) #then mi(1, 1) #else mi(1, 0) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/testb_m8_imm8.k b/semantics/memoryInstructions/testb_m8_imm8.k index 9ebbc5ec5..57fe23957 100644 --- a/semantics/memoryInstructions/testb_m8_imm8.k +++ b/semantics/memoryInstructions/testb_m8_imm8.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module TESTB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(testb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(testb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (testb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (testb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (testb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (testb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (testb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem8, 7, 8), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem8, 6, 7), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 5, 6), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 4, 5), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 3, 4), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 2, 3), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 1, 2), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem8, 7, 8), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem8, 6, 7), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 5, 6), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 4, 5), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 3, 4), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 2, 3), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 1, 2), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem8, 0, 1), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem8, handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem8, Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem8, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem8, 0, 1), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/testl_m32_imm32.k b/semantics/memoryInstructions/testl_m32_imm32.k index f3584f5f9..c99574ca6 100644 --- a/semantics/memoryInstructions/testl_m32_imm32.k +++ b/semantics/memoryInstructions/testl_m32_imm32.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module TESTL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(testl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(testl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (testl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (testl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (testl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (testl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (testl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem32, 31, 32), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem32, 30, 31), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 29, 30), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 28, 29), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 27, 28), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 26, 27), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 25, 26), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 24, 25), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem32, 31, 32), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem32, 30, 31), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 29, 30), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 28, 29), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 27, 28), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 26, 27), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 25, 26), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem32, 24, 25), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem32, handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem32, Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem32, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem32, 0, 1), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/testq_m64_imm32.k b/semantics/memoryInstructions/testq_m64_imm32.k index 5058291c1..6f173a07d 100644 --- a/semantics/memoryInstructions/testq_m64_imm32.k +++ b/semantics/memoryInstructions/testq_m64_imm32.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module TESTQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(testq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(testq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (testq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (testq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (testq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (testq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (testq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem64, 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem64, 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem64, 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem64, 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem64, 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem64, mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/testw_m16_imm16.k b/semantics/memoryInstructions/testw_m16_imm16.k index 03e992232..a901cfbcd 100644 --- a/semantics/memoryInstructions/testw_m16_imm16.k +++ b/semantics/memoryInstructions/testw_m16_imm16.k @@ -4,32 +4,34 @@ requires "x86-configuration.k" module TESTW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(testw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(testw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (testw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (testw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (testw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (testw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (testw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => . ... RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem16, 15, 16), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem16, 14, 15), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 13, 14), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 12, 13), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 11, 12), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 10, 11), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 9, 10), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 8, 9), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( andMInt( extractMInt( Mem16, 15, 16), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( andMInt( extractMInt( Mem16, 14, 15), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 13, 14), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 12, 13), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 11, 12), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 10, 11), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 9, 10), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( andMInt( extractMInt( Mem16, 8, 9), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( andMInt( Mem16, handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( andMInt( Mem16, Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> andMInt( extractMInt( Mem16, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> andMInt( extractMInt( Mem16, 0, 1), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/vblendpd_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vblendpd_xmm_xmm_m128_imm8.k index ed8791ad7..4283994a4 100644 --- a/semantics/memoryInstructions/vblendpd_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vblendpd_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VBLENDPD-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vblendpd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vblendpd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vblendpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vblendpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vblendpd Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vblendpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vblendpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( Mem128, 0, 64) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( Mem128, 64, 128) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( Mem128, 0, 64) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( Mem128, 64, 128) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vblendpd_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vblendpd_ymm_ymm_m256_imm8.k index e889d3d3d..242024e71 100644 --- a/semantics/memoryInstructions/vblendpd_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vblendpd_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VBLENDPD-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vblendpd:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vblendpd:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vblendpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vblendpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vblendpd Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vblendpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vblendpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 64) #else extractMInt( Mem256, 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 128) #else extractMInt( Mem256, 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( Mem256, 128, 192) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( Mem256, 192, 256) #fi)))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 64) #else extractMInt( Mem256, 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 128) #else extractMInt( Mem256, 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( Mem256, 128, 192) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 256) #else extractMInt( Mem256, 192, 256) #fi)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vblendps_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vblendps_xmm_xmm_m128_imm8.k index d1f1ab93a..47def516b 100644 --- a/semantics/memoryInstructions/vblendps_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vblendps_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VBLENDPS-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vblendps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vblendps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vblendps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vblendps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vblendps Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vblendps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vblendps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem128, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem128, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem128, 64, 96) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem128, 96, 128) #fi))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem128, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem128, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem128, 64, 96) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem128, 96, 128) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vblendps_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vblendps_ymm_ymm_m256_imm8.k index d386aeb48..b346a3093 100644 --- a/semantics/memoryInstructions/vblendps_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vblendps_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VBLENDPS-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vblendps:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vblendps:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vblendps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vblendps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vblendps Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vblendps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vblendps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( Mem256, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( Mem256, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 96) #else extractMInt( Mem256, 64, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 128) #else extractMInt( Mem256, 96, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem256, 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem256, 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem256, 192, 224) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem256, 224, 256) #fi)))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( Mem256, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( Mem256, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 96) #else extractMInt( Mem256, 64, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 128) #else extractMInt( Mem256, 96, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem256, 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem256, 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem256, 192, 224) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem256, 224, 256) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vcmppd_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vcmppd_xmm_xmm_m128_imm8.k index 8d785b0de..bea305dd9 100644 --- a/semantics/memoryInstructions/vcmppd_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vcmppd_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VCMPPD-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vcmppd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vcmppd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vcmppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vcmppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vcmppd Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vcmppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vcmppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vcmppd_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vcmppd_ymm_ymm_m256_imm8.k index 8366dc03d..c31681d35 100644 --- a/semantics/memoryInstructions/vcmppd_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vcmppd_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VCMPPD-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vcmppd:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vcmppd:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vcmppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vcmppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vcmppd Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vcmppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vcmppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 0, 64), extractMInt( Mem256, 0, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 64, 128), extractMInt( Mem256, 64, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem256, 128, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem256, 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi)))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 0, 64), extractMInt( Mem256, 0, 64), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 64, 128), extractMInt( Mem256, 64, 128), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem256, 128, 192), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem256, 192, 256), Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vcmpps_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vcmpps_xmm_xmm_m128_imm8.k index cc4f2e0c1..c88249a4e 100644 --- a/semantics/memoryInstructions/vcmpps_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vcmpps_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VCMPPS-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vcmpps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vcmpps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vcmpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vcmpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vcmpps Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vcmpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vcmpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vcmpps_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vcmpps_ymm_ymm_m256_imm8.k index 3d32d8c9c..7f735164b 100644 --- a/semantics/memoryInstructions/vcmpps_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vcmpps_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VCMPPS-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vcmpps:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vcmpps:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vcmpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vcmpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vcmpps Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vcmpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vcmpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi)))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), concatenateMInt( (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256), Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vcmpsd_xmm_xmm_m64_imm8.k b/semantics/memoryInstructions/vcmpsd_xmm_xmm_m64_imm8.k index 674c8a278..878e37b39 100644 --- a/semantics/memoryInstructions/vcmpsd_xmm_xmm_m64_imm8.k +++ b/semantics/memoryInstructions/vcmpsd_xmm_xmm_m64_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VCMPSD-XMM-XMM-M64-IMM8 imports X86-CONFIGURATION - context execinstr(vcmpsd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vcmpsd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vcmpsd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vcmpsd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (vcmpsd Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vcmpsd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vcmpsd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 192), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), Mem64, handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 192), (#ifMInt eqMInt( cmp_double_pred(extractMInt( getParentValue(R3, RSMap), 192, 256), Mem64, Imm8), mi(1, 1)) #then mi(64, 18446744073709551615) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vcmpss_xmm_xmm_m32_imm8.k b/semantics/memoryInstructions/vcmpss_xmm_xmm_m32_imm8.k index fee669aa4..5722e531c 100644 --- a/semantics/memoryInstructions/vcmpss_xmm_xmm_m32_imm8.k +++ b/semantics/memoryInstructions/vcmpss_xmm_xmm_m32_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VCMPSS-XMM-XMM-M32-IMM8 imports X86-CONFIGURATION - context execinstr(vcmpss:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vcmpss:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vcmpss:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vcmpss:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (vcmpss Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vcmpss:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vcmpss:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 224), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), Mem32, handleImmediateWithSignExtend(Imm8, 8, 8)), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 224), (#ifMInt eqMInt( cmp_single_pred(extractMInt( getParentValue(R3, RSMap), 224, 256), Mem32, Imm8), mi(1, 1)) #then mi(32, 4294967295) #else mi(32, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vcvtps2ph_m128_ymm_imm8.k b/semantics/memoryInstructions/vcvtps2ph_m128_ymm_imm8.k index 6f287ad40..4d80b2d96 100644 --- a/semantics/memoryInstructions/vcvtps2ph_m128_ymm_imm8.k +++ b/semantics/memoryInstructions/vcvtps2ph_m128_ymm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VCVTPS2PH-M128-YMM-IMM8 imports X86-CONFIGURATION - context execinstr(vcvtps2ph:Opcode Imm8:Imm, R2:Ymm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vcvtps2ph:Opcode Imm8:MInt, R2:Ymm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vcvtps2ph:Opcode Imm8:Imm, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vcvtps2ph:Opcode Imm8:MInt, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vcvtps2ph Imm8, R2:Ymm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vcvtps2ph:Opcode Imm8:Imm, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vcvtps2ph:Opcode Imm8:MInt, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8))))))))), + concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 0, 32), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 32, 64), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 64, 96), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 96, 128), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8)))))))), MemOff, 128 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vcvtps2ph_m64_xmm_imm8.k b/semantics/memoryInstructions/vcvtps2ph_m64_xmm_imm8.k index 34710e494..6e9b8503b 100644 --- a/semantics/memoryInstructions/vcvtps2ph_m64_xmm_imm8.k +++ b/semantics/memoryInstructions/vcvtps2ph_m64_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VCVTPS2PH-M64-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(vcvtps2ph:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vcvtps2ph:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vcvtps2ph:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vcvtps2ph:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (vcvtps2ph Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vcvtps2ph:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vcvtps2ph:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8))))), + concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 128, 160), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 160, 192), Imm8), concatenateMInt( cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 192, 224), Imm8), cvt_single_to_fp16_rm(extractMInt( getParentValue(R2, RSMap), 224, 256), Imm8)))), MemOff, 64 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vdppd_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vdppd_xmm_xmm_m128_imm8.k index 3083d42da..ee49b48a4 100644 --- a/semantics/memoryInstructions/vdppd_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vdppd_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VDPPD-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vdppd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vdppd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vdppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vdppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vdppd Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vdppd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vdppd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_double((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 192, 256), extractMInt( Mem128, 64, 128)) #else mi(64, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_double(extractMInt( getParentValue(R3, RSMap), 128, 192), extractMInt( Mem128, 0, 64)) #else mi(64, 0) #fi)) #else mi(64, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vdpps_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vdpps_xmm_xmm_m128_imm8.k index dec7b45d3..0558c9571 100644 --- a/semantics/memoryInstructions/vdpps_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vdpps_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VDPPS-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vdpps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vdpps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vdpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vdpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vdpps Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vdpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vdpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem128, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem128, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem128, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem128, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vdpps_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vdpps_ymm_ymm_m256_imm8.k index 6df7c4137..58a41a41b 100644 --- a/semantics/memoryInstructions/vdpps_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vdpps_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VDPPS-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vdpps:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vdpps:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vdpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vdpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vdpps Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vdpps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vdpps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) +convToRegKeys(R4) |-> concatenateMInt( concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 96, 128), extractMInt( Mem256, 96, 128)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 64, 96), extractMInt( Mem256, 64, 96)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 32, 64), extractMInt( Mem256, 32, 64)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 0, 32), extractMInt( Mem256, 0, 32)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then add_single(add_single((#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 224, 256), extractMInt( Mem256, 224, 256)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 192, 224), extractMInt( Mem256, 192, 224)) #else mi(32, 0) #fi)), add_single((#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 160, 192), extractMInt( Mem256, 160, 192)) #else mi(32, 0) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then mul_single(extractMInt( getParentValue(R3, RSMap), 128, 160), extractMInt( Mem256, 128, 160)) #else mi(32, 0) #fi))) #else mi(32, 0) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vextractf128_m128_ymm_imm8.k b/semantics/memoryInstructions/vextractf128_m128_ymm_imm8.k index 270679406..d1fb6becd 100644 --- a/semantics/memoryInstructions/vextractf128_m128_ymm_imm8.k +++ b/semantics/memoryInstructions/vextractf128_m128_ymm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VEXTRACTF128-M128-YMM-IMM8 imports X86-CONFIGURATION - context execinstr(vextractf128:Opcode Imm8:Imm, R2:Ymm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vextractf128:Opcode Imm8:MInt, R2:Ymm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vextractf128:Opcode Imm8:Imm, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vextractf128:Opcode Imm8:MInt, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vextractf128 Imm8, R2:Ymm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vextractf128:Opcode Imm8:Imm, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vextractf128:Opcode Imm8:MInt, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi), + (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi), MemOff, 128 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vextracti128_m128_ymm_imm8.k b/semantics/memoryInstructions/vextracti128_m128_ymm_imm8.k index edc4a4c40..56d8cf7c0 100644 --- a/semantics/memoryInstructions/vextracti128_m128_ymm_imm8.k +++ b/semantics/memoryInstructions/vextracti128_m128_ymm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VEXTRACTI128-M128-YMM-IMM8 imports X86-CONFIGURATION - context execinstr(vextracti128:Opcode Imm8:Imm, R2:Ymm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vextracti128:Opcode Imm8:MInt, R2:Ymm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vextracti128:Opcode Imm8:Imm, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vextracti128:Opcode Imm8:MInt, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vextracti128 Imm8, R2:Ymm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vextracti128:Opcode Imm8:Imm, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vextracti128:Opcode Imm8:MInt, R2:Ymm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi), + (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R2, RSMap), 128, 256) #else extractMInt( getParentValue(R2, RSMap), 0, 128) #fi), MemOff, 128 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vextractps_m32_xmm_imm8.k b/semantics/memoryInstructions/vextractps_m32_xmm_imm8.k index 0e7977b47..fadb3b7b6 100644 --- a/semantics/memoryInstructions/vextractps_m32_xmm_imm8.k +++ b/semantics/memoryInstructions/vextractps_m32_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VEXTRACTPS-M32-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(vextractps:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vextractps:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vextractps:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vextractps:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (vextractps Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vextractps:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vextractps:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), MemOff, 32 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vinsertf128_ymm_ymm_m128_imm8.k b/semantics/memoryInstructions/vinsertf128_ymm_ymm_m128_imm8.k index d07b6a84e..97acdb03b 100644 --- a/semantics/memoryInstructions/vinsertf128_ymm_ymm_m128_imm8.k +++ b/semantics/memoryInstructions/vinsertf128_ymm_ymm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VINSERTF128-YMM-YMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vinsertf128:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vinsertf128:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vinsertf128:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vinsertf128:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vinsertf128 Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vinsertf128:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vinsertf128:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), Mem128) #else concatenateMInt( Mem128, extractMInt( getParentValue(R3, RSMap), 128, 256)) #fi) +convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), Mem128) #else concatenateMInt( Mem128, extractMInt( getParentValue(R3, RSMap), 128, 256)) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vinserti128_ymm_ymm_m128_imm8.k b/semantics/memoryInstructions/vinserti128_ymm_ymm_m128_imm8.k index a978ac780..a7aef1819 100644 --- a/semantics/memoryInstructions/vinserti128_ymm_ymm_m128_imm8.k +++ b/semantics/memoryInstructions/vinserti128_ymm_ymm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VINSERTI128-YMM-YMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vinserti128:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vinserti128:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vinserti128:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vinserti128:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vinserti128 Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vinserti128:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vinserti128:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), Mem128) #else concatenateMInt( Mem128, extractMInt( getParentValue(R3, RSMap), 128, 256)) #fi) +convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), Mem128) #else concatenateMInt( Mem128, extractMInt( getParentValue(R3, RSMap), 128, 256)) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vinsertps_xmm_xmm_m32_imm8.k b/semantics/memoryInstructions/vinsertps_xmm_xmm_m32_imm8.k index 9f9673cd7..543d56dda 100644 --- a/semantics/memoryInstructions/vinsertps_xmm_xmm_m32_imm8.k +++ b/semantics/memoryInstructions/vinsertps_xmm_xmm_m32_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VINSERTPS-XMM-XMM-M32-IMM8 imports X86-CONFIGURATION - context execinstr(vinsertps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vinsertps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vinsertps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vinsertps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (vinsertps Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vinsertps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vinsertps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else Mem32 #fi) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 160, 192) #fi) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( concatenateMInt( concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else Mem32 #fi) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 160, 192) #fi) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #fi) #fi)), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then mi(32, 0) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then Mem32 #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vmpsadbw_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vmpsadbw_xmm_xmm_m128_imm8.k index 2f4425bda..30a167788 100644 --- a/semantics/memoryInstructions/vmpsadbw_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vmpsadbw_xmm_xmm_m128_imm8.k @@ -13,43 +13,44 @@ module VMPSADBW-XMM-XMM-M128-IMM8 rule memLoadValue(MemVal:MInt):MemLoadValue ~> - execinstr (vmpsadbw Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vmpsadbw Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => execinstr (vmpsadbw selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 7 , 0 ), + extractMInt(Imm8, 6, 8), 7 , 0 ), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 15, 8 ), + extractMInt(Imm8, 6, 8), 15, 8 ), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 23, 16), + extractMInt(Imm8, 6, 8), 23, 16), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 31, 24), + extractMInt(Imm8, 6, 8), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 7 , 0), + extractMInt(Imm8, 5, 6), 7 , 0), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 15, 8), + extractMInt(Imm8, 5, 6), 15, 8), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 23, 16), + extractMInt(Imm8, 5, 6), 23, 16), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 31, 24), + extractMInt(Imm8, 5, 6), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 39, 32), + extractMInt(Imm8, 5, 6), 39, 32), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 47, 40), + extractMInt(Imm8, 5, 6), 47, 40), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 55, 48), + extractMInt(Imm8, 5, 6), 55, 48), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 63, 56), + extractMInt(Imm8, 5, 6), 63, 56), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 71, 64), + extractMInt(Imm8, 5, 6), 71, 64), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 79, 72), + extractMInt(Imm8, 5, 6), 79, 72), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 87, 80), + extractMInt(Imm8, 5, 6), 87, 80), R3:Xmm, .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (vmpsadbw diff --git a/semantics/memoryInstructions/vmpsadbw_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vmpsadbw_ymm_ymm_m256_imm8.k index 6f5ecf59f..e196b0265 100644 --- a/semantics/memoryInstructions/vmpsadbw_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vmpsadbw_ymm_ymm_m256_imm8.k @@ -14,93 +14,94 @@ module VMPSADBW-YMM-YMM-M256-IMM8 rule memLoadValue(MemVal:MInt):MemLoadValue ~> - execinstr (vmpsadbw Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vmpsadbw Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => execinstr (vmpsadbw //Low slices selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 7 , 0 ), + extractMInt(Imm8, 6, 8), 7 , 0 ), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 15, 8 ), + extractMInt(Imm8, 6, 8), 15, 8 ), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 23, 16), + extractMInt(Imm8, 6, 8), 23, 16), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), 31, 24), + extractMInt(Imm8, 6, 8), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 7 , 0), + extractMInt(Imm8, 5, 6), 7 , 0), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 15, 8), + extractMInt(Imm8, 5, 6), 15, 8), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 23, 16), + extractMInt(Imm8, 5, 6), 23, 16), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 31, 24), + extractMInt(Imm8, 5, 6), 31, 24), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 39, 32), + extractMInt(Imm8, 5, 6), 39, 32), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 47, 40), + extractMInt(Imm8, 5, 6), 47, 40), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 55, 48), + extractMInt(Imm8, 5, 6), 55, 48), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 63, 56), + extractMInt(Imm8, 5, 6), 63, 56), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 71, 64), + extractMInt(Imm8, 5, 6), 71, 64), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 79, 72), + extractMInt(Imm8, 5, 6), 79, 72), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), 87, 80), + extractMInt(Imm8, 5, 6), 87, 80), //High slices selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 3, 5), 7 +Int + extractMInt(Imm8, 3, 5), 7 +Int 128, 0 +Int 128), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 3, 5), 15+Int + extractMInt(Imm8, 3, 5), 15+Int 128, 8 +Int 128), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 3, 5), 23+Int + extractMInt(Imm8, 3, 5), 23+Int 128, 16+Int 128), selectSliceMPSAD(MemVal, - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 3, 5), 31+Int + extractMInt(Imm8, 3, 5), 31+Int 128, 24+Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 7 + extractMInt(Imm8, 2, 3), 7 +Int 128, 0 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 15 + extractMInt(Imm8, 2, 3), 15 +Int 128, 8 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 23 + extractMInt(Imm8, 2, 3), 23 +Int 128, 16 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 31 + extractMInt(Imm8, 2, 3), 31 +Int 128, 24 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 39 + extractMInt(Imm8, 2, 3), 39 +Int 128, 32 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 47 + extractMInt(Imm8, 2, 3), 47 +Int 128, 40 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 55 + extractMInt(Imm8, 2, 3), 55 +Int 128, 48 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 63 + extractMInt(Imm8, 2, 3), 63 +Int 128, 56 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 71 + extractMInt(Imm8, 2, 3), 71 +Int 128, 64 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 79 + extractMInt(Imm8, 2, 3), 79 +Int 128, 72 +Int 128), selectSliceMPSAD(getRegisterValue(R3, RSMap), - extractMInt(handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), 87 + extractMInt(Imm8, 2, 3), 87 +Int 128, 80 +Int 128), R4:Ymm, .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule diff --git a/semantics/memoryInstructions/vpalignr_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vpalignr_xmm_xmm_m128_imm8.k index 673f8b7c3..cd2fab0fa 100644 --- a/semantics/memoryInstructions/vpalignr_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpalignr_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPALIGNR-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpalignr:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpalignr:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpalignr:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpalignr:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpalignr Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpalignr:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpalignr:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), Mem128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), uvalueMInt(mi(256, 3))))), 128, 256)) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), Mem128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), Imm8), uvalueMInt(mi(256, 3))))), 128, 256)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpalignr_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vpalignr_ymm_ymm_m256_imm8.k index d0fef964e..b3a5c2aff 100644 --- a/semantics/memoryInstructions/vpalignr_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpalignr_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPALIGNR-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpalignr:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpalignr:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpalignr:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vpalignr:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpalignr Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpalignr:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpalignr:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( Mem256, 0, 128)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), uvalueMInt(mi(256, 3))))), 128, 256), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), extractMInt( Mem256, 128, 256)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), handleImmediateWithSignExtend(Imm8, 8, 8)), uvalueMInt(mi(256, 3))))), 128, 256)) +convToRegKeys(R4) |-> concatenateMInt( extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 0, 128), extractMInt( Mem256, 0, 128)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), Imm8), uvalueMInt(mi(256, 3))))), 128, 256), extractMInt( lshrMInt( concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), extractMInt( Mem256, 128, 256)), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(248, 0), Imm8), uvalueMInt(mi(256, 3))))), 128, 256)) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpblendd_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vpblendd_xmm_xmm_m128_imm8.k index 0c3aba64f..25d243aca 100644 --- a/semantics/memoryInstructions/vpblendd_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpblendd_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPBLENDD-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpblendd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpblendd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpblendd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpblendd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpblendd Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpblendd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpblendd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem128, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem128, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem128, 64, 96) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem128, 96, 128) #fi))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem128, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem128, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem128, 64, 96) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem128, 96, 128) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpblendd_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vpblendd_ymm_ymm_m256_imm8.k index 277454262..d1088492b 100644 --- a/semantics/memoryInstructions/vpblendd_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpblendd_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPBLENDD-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpblendd:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpblendd:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpblendd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vpblendd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpblendd Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpblendd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpblendd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( Mem256, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( Mem256, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 96) #else extractMInt( Mem256, 64, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 128) #else extractMInt( Mem256, 96, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem256, 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem256, 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem256, 192, 224) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem256, 224, 256) #fi)))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( Mem256, 0, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( Mem256, 32, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 96) #else extractMInt( Mem256, 64, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 128) #else extractMInt( Mem256, 96, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( Mem256, 128, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( Mem256, 160, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 224) #else extractMInt( Mem256, 192, 224) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 256) #else extractMInt( Mem256, 224, 256) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpblendw_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vpblendw_xmm_xmm_m128_imm8.k index b32352650..d076858e6 100644 --- a/semantics/memoryInstructions/vpblendw_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpblendw_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPBLENDW-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpblendw:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpblendw:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpblendw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpblendw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpblendw Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpblendw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpblendw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( Mem128, 0, 16) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( Mem128, 16, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( Mem128, 32, 48) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( Mem128, 48, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( Mem128, 64, 80) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( Mem128, 80, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( Mem128, 96, 112) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( Mem128, 112, 128) #fi))))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( Mem128, 0, 16) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( Mem128, 16, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( Mem128, 32, 48) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( Mem128, 48, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( Mem128, 64, 80) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( Mem128, 80, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( Mem128, 96, 112) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( Mem128, 112, 128) #fi))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpblendw_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vpblendw_ymm_ymm_m256_imm8.k index 194bee6b5..06c48df3d 100644 --- a/semantics/memoryInstructions/vpblendw_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpblendw_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPBLENDW-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpblendw:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpblendw:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpblendw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vpblendw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpblendw Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpblendw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpblendw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 16) #else extractMInt( Mem256, 0, 16) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 16, 32) #else extractMInt( Mem256, 16, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 48) #else extractMInt( Mem256, 32, 48) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 48, 64) #else extractMInt( Mem256, 48, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 80) #else extractMInt( Mem256, 64, 80) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 80, 96) #else extractMInt( Mem256, 80, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 112) #else extractMInt( Mem256, 96, 112) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 112, 128) #else extractMInt( Mem256, 112, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( Mem256, 128, 144) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( Mem256, 144, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( Mem256, 160, 176) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( Mem256, 176, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( Mem256, 192, 208) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( Mem256, 208, 224) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( Mem256, 224, 240) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( Mem256, 240, 256) #fi)))))))))))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 0, 16) #else extractMInt( Mem256, 0, 16) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 16, 32) #else extractMInt( Mem256, 16, 32) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 32, 48) #else extractMInt( Mem256, 32, 48) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 48, 64) #else extractMInt( Mem256, 48, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 64, 80) #else extractMInt( Mem256, 64, 80) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 80, 96) #else extractMInt( Mem256, 80, 96) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 96, 112) #else extractMInt( Mem256, 96, 112) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 112, 128) #else extractMInt( Mem256, 112, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 144) #else extractMInt( Mem256, 128, 144) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 144, 160) #else extractMInt( Mem256, 144, 160) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 160, 176) #else extractMInt( Mem256, 160, 176) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 176, 192) #else extractMInt( Mem256, 176, 192) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 192, 208) #else extractMInt( Mem256, 192, 208) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 208, 224) #else extractMInt( Mem256, 208, 224) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 224, 240) #else extractMInt( Mem256, 224, 240) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( getParentValue(R3, RSMap), 240, 256) #else extractMInt( Mem256, 240, 256) #fi)))))))))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpclmulqdq_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vpclmulqdq_xmm_xmm_m128_imm8.k index 743703713..4e8bec553 100644 --- a/semantics/memoryInstructions/vpclmulqdq_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpclmulqdq_xmm_xmm_m128_imm8.k @@ -25,15 +25,14 @@ module VPCLMULQDQ-XMM-XMM-M128-IMM8 */ rule memLoadValue(MemVal:MInt):MemLoadValue ~> - execinstr (vpclmulqdq Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpclmulqdq Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => execinstr(vpclmulqdq - selectSlice(getRegisterValue(R3, RSMap), handleImmediateWithSignExtend(Imm8, - 8, 8), 7, 64, 0), - selectSlice(MemVal, handleImmediateWithSignExtend(Imm8, - 8, 8), 3, 64, 0), R4 + selectSlice(getRegisterValue(R3, RSMap), Imm8, 7, 64, 0), + selectSlice(MemVal, Imm8, 3, 64, 0), R4 , .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule execinstr (vpclmulqdq TEMP1:MInt, TEMP2:MInt, R4:Xmm, .Operands) => diff --git a/semantics/memoryInstructions/vpcmpestri_xmm_m128_imm8.k b/semantics/memoryInstructions/vpcmpestri_xmm_m128_imm8.k index e04fd30e8..f878aa16a 100644 --- a/semantics/memoryInstructions/vpcmpestri_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpcmpestri_xmm_m128_imm8.k @@ -4,27 +4,28 @@ requires "x86-configuration.k" module VPCMPESTRI-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpcmpestri:Opcode Imm8:Imm, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpcmpestri:Opcode Imm8:MInt, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpcmpestri:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => + execinstr (vpcmpestri:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpcmpestri Imm8, memOffset( MemOff), Xmm1, .Operands) ... - + requires bitwidthMInt(Imm8) ==Int 8 // Find Limit Index rule memLoadValue(Mem128:MInt):MemLoadValue ~> - execinstr (vpcmpestri Imm8:Imm, memOffset( MemOff), Xmm1:Xmm, .Operands) => + execinstr (vpcmpestri Imm8:MInt, memOffset( MemOff), Xmm1:Xmm, .Operands) => execinstr (vpcmpestri - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, Mem128, getRegisterValue(Xmm1, RSMap), - findLimitIndexE(Mem128, getRegisterValue(%rdx, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexE(Mem128, getRegisterValue(%rdx, RSMap), Imm8), + findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/memoryInstructions/vpcmpestrm_xmm_m128_imm8.k b/semantics/memoryInstructions/vpcmpestrm_xmm_m128_imm8.k index 94bf1d1a2..9c5f2e32e 100644 --- a/semantics/memoryInstructions/vpcmpestrm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpcmpestrm_xmm_m128_imm8.k @@ -4,26 +4,27 @@ requires "x86-configuration.k" module VPCMPESTRM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpcmpestrm:Opcode Imm8:Imm, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpcmpestrm:Opcode Imm8:MInt, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpcmpestrm:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => + execinstr (vpcmpestrm:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpcmpestrm Imm8, memOffset( MemOff), Xmm1, .Operands) ... - + requires bitwidthMInt(Imm8) ==Int 8 // Find Limit Index rule memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpcmpestrm Imm8, memOffset( MemOff), Xmm1, .Operands) => execinstr (vpcmpestrm - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, Mem128, getRegisterValue(Xmm1, RSMap), - findLimitIndexE(Mem128, getRegisterValue(%rdx, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexE(Mem128, getRegisterValue(%rdx, RSMap), Imm8), + findLimitIndexE(getRegisterValue(Xmm1, RSMap), getRegisterValue(%rax, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/memoryInstructions/vpcmpistri_xmm_m128_imm8.k b/semantics/memoryInstructions/vpcmpistri_xmm_m128_imm8.k index e511e15cf..44e726ab5 100644 --- a/semantics/memoryInstructions/vpcmpistri_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpcmpistri_xmm_m128_imm8.k @@ -4,27 +4,28 @@ requires "x86-configuration.k" module VPCMPISTRI-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpcmpistri:Opcode Imm8:Imm, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpcmpistri:Opcode Imm8:MInt, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpcmpistri:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => + execinstr (vpcmpistri:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpcmpistri Imm8, memOffset( MemOff), Xmm1, .Operands) ... - + requires bitwidthMInt(Imm8) ==Int 8 // Find Limit Index rule memLoadValue(Mem128:MInt):MemLoadValue ~> - execinstr (vpcmpistri Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (vpcmpistri Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (vpcmpistri - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, Mem128, getRegisterValue(Xmm1, RSMap), - findLimitIndexI(Mem128, handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexI(getRegisterValue(Xmm1, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexI(Mem128, Imm8), + findLimitIndexI(getRegisterValue(Xmm1, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/memoryInstructions/vpcmpistrm_xmm_m128_imm8.k b/semantics/memoryInstructions/vpcmpistrm_xmm_m128_imm8.k index f13f75e4e..c65044991 100644 --- a/semantics/memoryInstructions/vpcmpistrm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpcmpistrm_xmm_m128_imm8.k @@ -4,26 +4,28 @@ requires "x86-configuration.k" module VPCMPISTRM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpcmpistrm:Opcode Imm8:Imm, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpcmpistrm:Opcode Imm8:MInt, HOLE:Mem, Xmm1:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpcmpistrm:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => + execinstr (vpcmpistrm:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, Xmm1:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpcmpistrm Imm8, memOffset( MemOff), Xmm1, .Operands) ... + requires bitwidthMInt(Imm8) ==Int 8 // Find Limit Index rule memLoadValue(Mem128:MInt):MemLoadValue ~> - execinstr (vpcmpistrm Imm8:Imm, Xmm2:Xmm, Xmm1:Xmm, .Operands) => + execinstr (vpcmpistrm Imm8:MInt, Xmm2:Xmm, Xmm1:Xmm, .Operands) => execinstr (vpcmpistrm - handleImmediateWithSignExtend(Imm8, 8, 8), + Imm8, Mem128, getRegisterValue(Xmm1, RSMap), - findLimitIndexI(Mem128, handleImmediateWithSignExtend(Imm8, 8, 8)), - findLimitIndexI(getRegisterValue(Xmm1, RSMap), handleImmediateWithSignExtend(Imm8, 8, 8)), + findLimitIndexI(Mem128, Imm8), + findLimitIndexI(getRegisterValue(Xmm1, RSMap), Imm8), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 // Find data size and interpretation rule diff --git a/semantics/memoryInstructions/vperm2f128_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vperm2f128_ymm_ymm_m256_imm8.k index e432ac1f1..c3ba655fe 100644 --- a/semantics/memoryInstructions/vperm2f128_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vperm2f128_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPERM2F128-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vperm2f128:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vperm2f128:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vperm2f128:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vperm2f128:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vperm2f128 Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vperm2f128:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vperm2f128:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi)) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi), mi(128, 0)) #else concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi)) #fi) #fi) +convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi)) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi), mi(128, 0)) #else concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi)) #fi) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vperm2i128_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vperm2i128_ymm_ymm_m256_imm8.k index 91bbba777..f9daa10d9 100644 --- a/semantics/memoryInstructions/vperm2i128_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vperm2i128_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPERM2I128-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vperm2i128:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vperm2i128:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vperm2i128:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vperm2i128:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vperm2i128 Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vperm2i128:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vperm2i128:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi)) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi), mi(128, 0)) #else concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi)) #fi) #fi) +convToRegKeys(R4) |-> (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then concatenateMInt( mi(128, 0), mi(128, 0)) #else concatenateMInt( mi(128, 0), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi)) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi), mi(128, 0)) #else concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( getParentValue(R3, RSMap), 128, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( Mem256, 128, 256) #else extractMInt( Mem256, 0, 128) #fi) #fi) #fi)) #fi) #fi) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpermilpd_xmm_m128_imm8.k b/semantics/memoryInstructions/vpermilpd_xmm_m128_imm8.k index 1cfdec4dc..38e7c5e5d 100644 --- a/semantics/memoryInstructions/vpermilpd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpermilpd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPERMILPD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpermilpd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpermilpd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpermilpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (vpermilpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpermilpd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpermilpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpermilpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( Mem128, 64, 128) #else extractMInt( Mem128, 0, 64) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( Mem128, 64, 128) #else extractMInt( Mem128, 0, 64) #fi))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( Mem128, 64, 128) #else extractMInt( Mem128, 0, 64) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( Mem128, 64, 128) #else extractMInt( Mem128, 0, 64) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpermilpd_ymm_m256_imm8.k b/semantics/memoryInstructions/vpermilpd_ymm_m256_imm8.k index 2c2e6d0a5..e22576e01 100644 --- a/semantics/memoryInstructions/vpermilpd_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpermilpd_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPERMILPD-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpermilpd:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpermilpd:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpermilpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vpermilpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpermilpd Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpermilpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpermilpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 0)) #then extractMInt( Mem256, 64, 128) #else extractMInt( Mem256, 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 0)) #then extractMInt( Mem256, 64, 128) #else extractMInt( Mem256, 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 0)) #then extractMInt( Mem256, 192, 256) #else extractMInt( Mem256, 128, 192) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 0)) #then extractMInt( Mem256, 192, 256) #else extractMInt( Mem256, 128, 192) #fi)))) +convToRegKeys(R3) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 0)) #then extractMInt( Mem256, 64, 128) #else extractMInt( Mem256, 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 0)) #then extractMInt( Mem256, 64, 128) #else extractMInt( Mem256, 0, 64) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 0)) #then extractMInt( Mem256, 192, 256) #else extractMInt( Mem256, 128, 192) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 0)) #then extractMInt( Mem256, 192, 256) #else extractMInt( Mem256, 128, 192) #fi)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpermilps_xmm_m128_imm8.k b/semantics/memoryInstructions/vpermilps_xmm_m128_imm8.k index 31d3585ea..c02fd7fbf 100644 --- a/semantics/memoryInstructions/vpermilps_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpermilps_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPERMILPS-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpermilps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpermilps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpermilps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (vpermilps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpermilps Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpermilps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpermilps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( Mem128, 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( Mem128, 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( Mem128, 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( Mem128, 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 0)) #then extractMInt( Mem128, 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 1)) #then extractMInt( Mem128, 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 2)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 0, 32) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( Mem128, 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( Mem128, 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 0, 32) #fi) #fi) #fi))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( Mem128, 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( Mem128, 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( Mem128, 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( Mem128, 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 0)) #then extractMInt( Mem128, 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 1)) #then extractMInt( Mem128, 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 2)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 0, 32) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( Mem128, 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( Mem128, 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 0, 32) #fi) #fi) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpermilps_ymm_m256_imm8.k b/semantics/memoryInstructions/vpermilps_ymm_m256_imm8.k index d8ed154f1..72f36a69e 100644 --- a/semantics/memoryInstructions/vpermilps_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpermilps_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPERMILPS-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpermilps:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpermilps:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpermilps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vpermilps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpermilps Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpermilps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpermilps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( Mem256, 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( Mem256, 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( Mem256, 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( Mem256, 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 0)) #then extractMInt( Mem256, 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 1)) #then extractMInt( Mem256, 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 2)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( Mem256, 96, 128) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( Mem256, 64, 96) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 0)) #then extractMInt( Mem256, 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 1)) #then extractMInt( Mem256, 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2), mi(2, 2)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 0)) #then extractMInt( Mem256, 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 1)) #then extractMInt( Mem256, 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4), mi(2, 2)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 0)) #then extractMInt( Mem256, 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 1)) #then extractMInt( Mem256, 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6), mi(2, 2)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 128, 160) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 0)) #then extractMInt( Mem256, 224, 256) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 1)) #then extractMInt( Mem256, 192, 224) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8), mi(2, 2)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 128, 160) #fi) #fi) #fi)))))))) +convToRegKeys(R3) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( Mem256, 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( Mem256, 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( Mem256, 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( Mem256, 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 0)) #then extractMInt( Mem256, 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 1)) #then extractMInt( Mem256, 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 2)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( Mem256, 96, 128) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( Mem256, 64, 96) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 0, 32) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 0)) #then extractMInt( Mem256, 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 1)) #then extractMInt( Mem256, 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 2), mi(2, 2)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 0)) #then extractMInt( Mem256, 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 1)) #then extractMInt( Mem256, 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 4), mi(2, 2)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 128, 160) #fi) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 0)) #then extractMInt( Mem256, 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 1)) #then extractMInt( Mem256, 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 6), mi(2, 2)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 128, 160) #fi) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 0)) #then extractMInt( Mem256, 224, 256) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 1)) #then extractMInt( Mem256, 192, 224) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 8), mi(2, 2)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 128, 160) #fi) #fi) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpermpd_ymm_m256_imm8.k b/semantics/memoryInstructions/vpermpd_ymm_m256_imm8.k index d2d475cfc..8f7b7aba0 100644 --- a/semantics/memoryInstructions/vpermpd_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpermpd_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPERMPD-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpermpd:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpermpd:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpermpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vpermpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpermpd Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpermpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpermpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 6))))), 192, 256), extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 6))))), 192, 256)))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 6))))), 192, 256), extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 6))))), 192, 256)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpermq_ymm_m256_imm8.k b/semantics/memoryInstructions/vpermq_ymm_m256_imm8.k index 2c1a26624..f3a50a7c3 100644 --- a/semantics/memoryInstructions/vpermq_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpermq_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPERMQ-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpermq:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpermq:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpermq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vpermq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpermq Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpermq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpermq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 6))))), 192, 256), extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 6))))), 192, 256)))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 6))))), 192, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 6))))), 192, 256), extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 6))))), 192, 256)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpextrb_m8_xmm_imm8.k b/semantics/memoryInstructions/vpextrb_m8_xmm_imm8.k index 7e2f2350a..625b55a01 100644 --- a/semantics/memoryInstructions/vpextrb_m8_xmm_imm8.k +++ b/semantics/memoryInstructions/vpextrb_m8_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VPEXTRB-M8-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(vpextrb:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vpextrb:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vpextrb:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vpextrb:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (vpextrb Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (vpextrb:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (vpextrb:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), 120, 128), MemOff, 8 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpextrd_m32_xmm_imm8.k b/semantics/memoryInstructions/vpextrd_m32_xmm_imm8.k index eda4b47f8..b1396072c 100644 --- a/semantics/memoryInstructions/vpextrd_m32_xmm_imm8.k +++ b/semantics/memoryInstructions/vpextrd_m32_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VPEXTRD-M32-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(vpextrd:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vpextrd:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vpextrd:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vpextrd:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (vpextrd Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vpextrd:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vpextrd:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), MemOff, 32 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpextrq_m64_xmm_imm8.k b/semantics/memoryInstructions/vpextrq_m64_xmm_imm8.k index 69be5d404..2a21f97c0 100644 --- a/semantics/memoryInstructions/vpextrq_m64_xmm_imm8.k +++ b/semantics/memoryInstructions/vpextrq_m64_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VPEXTRQ-M64-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(vpextrq:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vpextrq:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vpextrq:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vpextrq:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (vpextrq Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vpextrq:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vpextrq:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))), 64, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))), 64, 128), MemOff, 64 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpextrw_m16_xmm_imm8.k b/semantics/memoryInstructions/vpextrw_m16_xmm_imm8.k index 1f11f47b0..3106f1c26 100644 --- a/semantics/memoryInstructions/vpextrw_m16_xmm_imm8.k +++ b/semantics/memoryInstructions/vpextrw_m16_xmm_imm8.k @@ -4,24 +4,26 @@ requires "x86-configuration.k" module VPEXTRW-M16-XMM-IMM8 imports X86-CONFIGURATION - context execinstr(vpextrw:Opcode Imm8:Imm, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(vpextrw:Opcode Imm8:MInt, R2:Xmm, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (vpextrw:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (vpextrw:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (vpextrw Imm8, R2:Xmm, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (vpextrw:Opcode Imm8:Imm, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (vpextrw:Opcode Imm8:MInt, R2:Xmm, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128), + extractMInt( lshrMInt( extractMInt( getParentValue(R2, RSMap), 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), 112, 128), MemOff, 16 ) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpinsrb_xmm_xmm_m8_imm8.k b/semantics/memoryInstructions/vpinsrb_xmm_xmm_m8_imm8.k index 538f03f1d..01a8938e8 100644 --- a/semantics/memoryInstructions/vpinsrb_xmm_xmm_m8_imm8.k +++ b/semantics/memoryInstructions/vpinsrb_xmm_xmm_m8_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPINSRB-XMM-XMM-M8-IMM8 imports X86-CONFIGURATION - context execinstr(vpinsrb:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpinsrb:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpinsrb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpinsrb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (vpinsrb Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (vpinsrb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (vpinsrb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(120, 0), Mem8), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3))))), shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 8)), uvalueMInt(mi(128, 3)))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(120, 0), Mem8), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3))))), shiftLeftMInt( mi(128, 255), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(124, 0), extractMInt( Imm8, 4, 8)), uvalueMInt(mi(128, 3)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpinsrd_xmm_xmm_m32_imm8.k b/semantics/memoryInstructions/vpinsrd_xmm_xmm_m32_imm8.k index ba1b77448..0ad1d3051 100644 --- a/semantics/memoryInstructions/vpinsrd_xmm_xmm_m32_imm8.k +++ b/semantics/memoryInstructions/vpinsrd_xmm_xmm_m32_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPINSRD-XMM-XMM-M32-IMM8 imports X86-CONFIGURATION - context execinstr(vpinsrd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpinsrd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpinsrd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpinsrd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (vpinsrd Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vpinsrd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vpinsrd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), Mem32), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5)))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(96, 0), Mem32), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), shiftLeftMInt( mi(128, 4294967295), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpinsrq_xmm_xmm_m64_imm8.k b/semantics/memoryInstructions/vpinsrq_xmm_xmm_m64_imm8.k index 369b02406..7d24dc328 100644 --- a/semantics/memoryInstructions/vpinsrq_xmm_xmm_m64_imm8.k +++ b/semantics/memoryInstructions/vpinsrq_xmm_xmm_m64_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPINSRQ-XMM-XMM-M64-IMM8 imports X86-CONFIGURATION - context execinstr(vpinsrq:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpinsrq:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpinsrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpinsrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (vpinsrq Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vpinsrq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vpinsrq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(64, 0), Mem64), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6))))), shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), uvalueMInt(mi(128, 6)))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(64, 0), Mem64), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6))))), shiftLeftMInt( mi(128, 18446744073709551615), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(127, 0), extractMInt( Imm8, 7, 8)), uvalueMInt(mi(128, 6)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpinsrw_xmm_xmm_m16_imm8.k b/semantics/memoryInstructions/vpinsrw_xmm_xmm_m16_imm8.k index ce6b30e3f..29df94768 100644 --- a/semantics/memoryInstructions/vpinsrw_xmm_xmm_m16_imm8.k +++ b/semantics/memoryInstructions/vpinsrw_xmm_xmm_m16_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPINSRW-XMM-XMM-M16-IMM8 imports X86-CONFIGURATION - context execinstr(vpinsrw:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpinsrw:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpinsrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vpinsrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (vpinsrw Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (vpinsrw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (vpinsrw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(112, 0), Mem16), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4))))), shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 8)), uvalueMInt(mi(128, 4)))))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), orMInt( andMInt( extractMInt( getParentValue(R3, RSMap), 128, 256), negMInt( shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))))), andMInt( shiftLeftMInt( concatenateMInt( mi(112, 0), Mem16), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4))))), shiftLeftMInt( mi(128, 65535), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(125, 0), extractMInt( Imm8, 5, 8)), uvalueMInt(mi(128, 4)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpshufd_xmm_m128_imm8.k b/semantics/memoryInstructions/vpshufd_xmm_m128_imm8.k index 87d0d7b6e..74ba9c1c1 100644 --- a/semantics/memoryInstructions/vpshufd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpshufd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPSHUFD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpshufd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpshufd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpshufd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (vpshufd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpshufd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpshufd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpshufd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpshufd_ymm_m256_imm8.k b/semantics/memoryInstructions/vpshufd_ymm_m256_imm8.k index 0b6b17c78..d6a40a98b 100644 --- a/semantics/memoryInstructions/vpshufd_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpshufd_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPSHUFD-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpshufd:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpshufd:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpshufd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vpshufd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpshufd Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpshufd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpshufd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( extractMInt( Mem256, 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 0, 128), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 5))))), 96, 128), concatenateMInt( extractMInt( lshrMInt( extractMInt( Mem256, 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 5))))), 96, 128), extractMInt( lshrMInt( extractMInt( Mem256, 128, 256), uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 5))))), 96, 128)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpshufhw_xmm_m128_imm8.k b/semantics/memoryInstructions/vpshufhw_xmm_m128_imm8.k index eeb489202..957e825b1 100644 --- a/semantics/memoryInstructions/vpshufhw_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpshufhw_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPSHUFHW-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpshufhw:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpshufhw:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpshufhw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (vpshufhw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpshufhw Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpshufhw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpshufhw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 4))))), 48, 64), extractMInt( Mem128, 64, 128)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 4))))), 48, 64), extractMInt( Mem128, 64, 128)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpshufhw_ymm_m256_imm8.k b/semantics/memoryInstructions/vpshufhw_ymm_m256_imm8.k index a9b0def71..bbb390a6d 100644 --- a/semantics/memoryInstructions/vpshufhw_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpshufhw_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPSHUFHW-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpshufhw:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpshufhw:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpshufhw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vpshufhw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpshufhw Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpshufhw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpshufhw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( Mem256, 64, 128), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 4))))), 176, 192), extractMInt( Mem256, 192, 256)))))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 4))))), 48, 64), concatenateMInt( extractMInt( Mem256, 64, 128), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 4))))), 176, 192), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 4))))), 176, 192), extractMInt( Mem256, 192, 256)))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpshuflw_xmm_m128_imm8.k b/semantics/memoryInstructions/vpshuflw_xmm_m128_imm8.k index 4ea5e1628..e9ad30418 100644 --- a/semantics/memoryInstructions/vpshuflw_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vpshuflw_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPSHUFLW-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vpshuflw:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(vpshuflw:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vpshuflw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (vpshuflw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vpshuflw Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpshuflw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vpshuflw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( Mem128, 0, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(128, 4))))), 112, 128), extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(128, 4))))), 112, 128)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( Mem128, 0, 64), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(128, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(128, 4))))), 112, 128), extractMInt( lshrMInt( Mem128, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(126, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(128, 4))))), 112, 128)))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vpshuflw_ymm_m256_imm8.k b/semantics/memoryInstructions/vpshuflw_ymm_m256_imm8.k index c2d6f93cb..da5dd0671 100644 --- a/semantics/memoryInstructions/vpshuflw_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vpshuflw_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VPSHUFLW-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vpshuflw:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vpshuflw:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vpshuflw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vpshuflw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vpshuflw Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpshuflw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vpshuflw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( extractMInt( Mem256, 0, 64), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( Mem256, 128, 192), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 2)), uvalueMInt(mi(256, 4))))), 240, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 4)), uvalueMInt(mi(256, 4))))), 240, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 6)), uvalueMInt(mi(256, 4))))), 240, 256), extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 8)), uvalueMInt(mi(256, 4))))), 240, 256)))))))))) +convToRegKeys(R3) |-> concatenateMInt( extractMInt( Mem256, 0, 64), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 4))))), 112, 128), concatenateMInt( extractMInt( Mem256, 128, 192), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 0, 2)), uvalueMInt(mi(256, 4))))), 240, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 2, 4)), uvalueMInt(mi(256, 4))))), 240, 256), concatenateMInt( extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 4, 6)), uvalueMInt(mi(256, 4))))), 240, 256), extractMInt( lshrMInt( Mem256, uvalueMInt(shiftLeftMInt( concatenateMInt( mi(254, 0), extractMInt( Imm8, 6, 8)), uvalueMInt(mi(256, 4))))), 240, 256)))))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vroundpd_xmm_m128_imm8.k b/semantics/memoryInstructions/vroundpd_xmm_m128_imm8.k index 52c15f25c..eff64c13e 100644 --- a/semantics/memoryInstructions/vroundpd_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vroundpd_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VROUNDPD-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vroundpd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(vroundpd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vroundpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (vroundpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vroundpd Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vroundpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vroundpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem128, 0, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_double_to_int64_rm(extractMInt( Mem128, 64, 128), handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem128, 0, 64), Imm8), cvt_double_to_int64_rm(extractMInt( Mem128, 64, 128), Imm8))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vroundpd_ymm_m256_imm8.k b/semantics/memoryInstructions/vroundpd_ymm_m256_imm8.k index 0d86ea5fa..29c4f53db 100644 --- a/semantics/memoryInstructions/vroundpd_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vroundpd_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VROUNDPD-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vroundpd:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vroundpd:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vroundpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vroundpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vroundpd Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vroundpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vroundpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem256, 0, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem256, 64, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem256, 128, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_double_to_int64_rm(extractMInt( Mem256, 192, 256), handleImmediateWithSignExtend(Imm8, 8, 8))))) +convToRegKeys(R3) |-> concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem256, 0, 64), Imm8), concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem256, 64, 128), Imm8), concatenateMInt( cvt_double_to_int64_rm(extractMInt( Mem256, 128, 192), Imm8), cvt_double_to_int64_rm(extractMInt( Mem256, 192, 256), Imm8)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vroundps_xmm_m128_imm8.k b/semantics/memoryInstructions/vroundps_xmm_m128_imm8.k index 3ffb0eb80..19b62e4dd 100644 --- a/semantics/memoryInstructions/vroundps_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vroundps_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VROUNDPS-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vroundps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] + context execinstr(vroundps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vroundps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + execinstr (vroundps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vroundps Imm8, memOffset( MemOff), R3:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vroundps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vroundps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_int32_rm(extractMInt( Mem128, 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)))))) +convToRegKeys(R3) |-> concatenateMInt( mi(128, 0), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 0, 32), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 32, 64), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem128, 64, 96), Imm8), cvt_single_to_int32_rm(extractMInt( Mem128, 96, 128), Imm8))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vroundps_ymm_m256_imm8.k b/semantics/memoryInstructions/vroundps_ymm_m256_imm8.k index 653a1dc9f..870448c7c 100644 --- a/semantics/memoryInstructions/vroundps_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vroundps_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VROUNDPS-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vroundps:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] + context execinstr(vroundps:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vroundps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + execinstr (vroundps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vroundps Imm8, memOffset( MemOff), R3:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vroundps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vroundps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R3) |-> concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 0, 32), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 32, 64), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 64, 96), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 96, 128), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 128, 160), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 160, 192), handleImmediateWithSignExtend(Imm8, 8, 8)), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 192, 224), handleImmediateWithSignExtend(Imm8, 8, 8)), cvt_single_to_int32_rm(extractMInt( Mem256, 224, 256), handleImmediateWithSignExtend(Imm8, 8, 8))))))))) +convToRegKeys(R3) |-> concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 0, 32), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 32, 64), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 64, 96), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 96, 128), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 128, 160), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 160, 192), Imm8), concatenateMInt( cvt_single_to_int32_rm(extractMInt( Mem256, 192, 224), Imm8), cvt_single_to_int32_rm(extractMInt( Mem256, 224, 256), Imm8)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vroundsd_xmm_xmm_m64_imm8.k b/semantics/memoryInstructions/vroundsd_xmm_xmm_m64_imm8.k index 2b7aa82fb..b1b98e49a 100644 --- a/semantics/memoryInstructions/vroundsd_xmm_xmm_m64_imm8.k +++ b/semantics/memoryInstructions/vroundsd_xmm_xmm_m64_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VROUNDSD-XMM-XMM-M64-IMM8 imports X86-CONFIGURATION - context execinstr(vroundsd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vroundsd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vroundsd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vroundsd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (vroundsd Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vroundsd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (vroundsd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 192), cvt_double_to_int64_rm(Mem64, handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 192), cvt_double_to_int64_rm(Mem64, Imm8))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vroundss_xmm_xmm_m32_imm8.k b/semantics/memoryInstructions/vroundss_xmm_xmm_m32_imm8.k index 250e08378..3d8c7d7cf 100644 --- a/semantics/memoryInstructions/vroundss_xmm_xmm_m32_imm8.k +++ b/semantics/memoryInstructions/vroundss_xmm_xmm_m32_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VROUNDSS-XMM-XMM-M32-IMM8 imports X86-CONFIGURATION - context execinstr(vroundss:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vroundss:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vroundss:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vroundss:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (vroundss Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vroundss:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (vroundss:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 224), cvt_single_to_int32_rm(Mem32, handleImmediateWithSignExtend(Imm8, 8, 8)))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( extractMInt( getParentValue(R3, RSMap), 128, 224), cvt_single_to_int32_rm(Mem32, Imm8))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vshufpd_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vshufpd_xmm_xmm_m128_imm8.k index 6d9c32ce3..18c4fd73d 100644 --- a/semantics/memoryInstructions/vshufpd_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vshufpd_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VSHUFPD-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vshufpd:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vshufpd:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vshufpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vshufpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vshufpd Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vshufpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vshufpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( Mem128, 0, 64) #else extractMInt( Mem128, 64, 128) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( Mem128, 0, 64) #else extractMInt( Mem128, 64, 128) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vshufpd_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vshufpd_ymm_ymm_m256_imm8.k index 0743ec2af..e966968a3 100644 --- a/semantics/memoryInstructions/vshufpd_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vshufpd_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VSHUFPD-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vshufpd:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vshufpd:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vshufpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vshufpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vshufpd Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vshufpd:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vshufpd:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( Mem256, 0, 64) #else extractMInt( Mem256, 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 64) #else extractMInt( getParentValue(R3, RSMap), 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( Mem256, 128, 192) #else extractMInt( Mem256, 192, 256) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi)))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( Mem256, 0, 64) #else extractMInt( Mem256, 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 64) #else extractMInt( getParentValue(R3, RSMap), 64, 128) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( Mem256, 128, 192) #else extractMInt( Mem256, 192, 256) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 192) #else extractMInt( getParentValue(R3, RSMap), 192, 256) #fi)))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vshufps_xmm_xmm_m128_imm8.k b/semantics/memoryInstructions/vshufps_xmm_xmm_m128_imm8.k index 18d1e9b47..65694b991 100644 --- a/semantics/memoryInstructions/vshufps_xmm_xmm_m128_imm8.k +++ b/semantics/memoryInstructions/vshufps_xmm_xmm_m128_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VSHUFPS-XMM-XMM-M128-IMM8 imports X86-CONFIGURATION - context execinstr(vshufps:Opcode Imm8:Imm, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] + context execinstr(vshufps:Opcode Imm8:MInt, HOLE:Mem, R3:Xmm, R4:Xmm, .Operands) [result(MemOffset)] rule - execinstr (vshufps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + execinstr (vshufps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => loadFromMemory( MemOff, 128) ~> execinstr (vshufps Imm8, memOffset( MemOff), R3:Xmm, R4:Xmm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vshufps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => + memLoadValue(Mem128:MInt):MemLoadValue ~> execinstr (vshufps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Xmm, R4:Xmm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( Mem128, 0, 32) #else extractMInt( Mem128, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( Mem128, 0, 32) #else extractMInt( Mem128, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))))) +convToRegKeys(R4) |-> concatenateMInt( mi(128, 0), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( Mem128, 0, 32) #else extractMInt( Mem128, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( Mem128, 0, 32) #else extractMInt( Mem128, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( Mem128, 32, 64) #else extractMInt( Mem128, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/vshufps_ymm_ymm_m256_imm8.k b/semantics/memoryInstructions/vshufps_ymm_ymm_m256_imm8.k index bf4ea4da0..470be85fa 100644 --- a/semantics/memoryInstructions/vshufps_ymm_ymm_m256_imm8.k +++ b/semantics/memoryInstructions/vshufps_ymm_ymm_m256_imm8.k @@ -4,22 +4,24 @@ requires "x86-configuration.k" module VSHUFPS-YMM-YMM-M256-IMM8 imports X86-CONFIGURATION - context execinstr(vshufps:Opcode Imm8:Imm, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] + context execinstr(vshufps:Opcode Imm8:MInt, HOLE:Mem, R3:Ymm, R4:Ymm, .Operands) [result(MemOffset)] rule - execinstr (vshufps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + execinstr (vshufps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => loadFromMemory( MemOff, 256) ~> execinstr (vshufps Imm8, memOffset( MemOff), R3:Ymm, R4:Ymm, .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vshufps:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => + memLoadValue(Mem256:MInt):MemLoadValue ~> execinstr (vshufps:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, R3:Ymm, R4:Ymm, .Operands) => . ... RSMap:Map => updateMap(RSMap, -convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( Mem256, 0, 32) #else extractMInt( Mem256, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( Mem256, 0, 32) #else extractMInt( Mem256, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R3, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R3, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R3, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R3, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( Mem256, 128, 160) #else extractMInt( Mem256, 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1), mi(1, 1)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( Mem256, 128, 160) #else extractMInt( Mem256, 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3), mi(1, 1)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi)))))))) +convToRegKeys(R4) |-> concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( Mem256, 0, 32) #else extractMInt( Mem256, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( Mem256, 0, 32) #else extractMInt( Mem256, 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( Mem256, 32, 64) #else extractMInt( Mem256, 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R3, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R3, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 0, 32) #else extractMInt( getParentValue(R3, RSMap), 64, 96) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 32, 64) #else extractMInt( getParentValue(R3, RSMap), 96, 128) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 1, 2), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( Mem256, 128, 160) #else extractMInt( Mem256, 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 0, 1), mi(1, 1)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 3, 4), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( Mem256, 128, 160) #else extractMInt( Mem256, 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 2, 3), mi(1, 1)) #then extractMInt( Mem256, 160, 192) #else extractMInt( Mem256, 224, 256) #fi) #fi), concatenateMInt( (#ifMInt eqMInt( extractMInt( Imm8, 5, 6), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 4, 5), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi), (#ifMInt eqMInt( extractMInt( Imm8, 7, 8), mi(1, 1)) #then (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 128, 160) #else extractMInt( getParentValue(R3, RSMap), 192, 224) #fi) #else (#ifMInt eqMInt( extractMInt( Imm8, 6, 7), mi(1, 1)) #then extractMInt( getParentValue(R3, RSMap), 160, 192) #else extractMInt( getParentValue(R3, RSMap), 224, 256) #fi) #fi)))))))) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/xorb_m8_imm8.k b/semantics/memoryInstructions/xorb_m8_imm8.k index 1bfc2c39a..a338382b7 100644 --- a/semantics/memoryInstructions/xorb_m8_imm8.k +++ b/semantics/memoryInstructions/xorb_m8_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module XORB-M8-IMM8 imports X86-CONFIGURATION - context execinstr(xorb:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(xorb:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (xorb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (xorb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 8) ~> execinstr (xorb Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (xorb:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem8:MInt):MemLoadValue ~> execinstr (xorb:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem8, handleImmediateWithSignExtend(Imm8, 8, 8)), + xorMInt( Mem8, Imm8), MemOff, 8 ) @@ -27,15 +28,16 @@ module XORB-M8-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem8, 7, 8), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem8, 6, 7), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 5, 6), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 4, 5), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 3, 4), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 2, 3), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 1, 2), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem8, 7, 8), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem8, 6, 7), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 5, 6), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 4, 5), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 3, 4), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 2, 3), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 1, 2), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem8, 0, 1), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem8, handleImmediateWithSignExtend(Imm8, 8, 8)), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem8, Imm8), mi(8, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( Mem8, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)) +"SF" |-> xorMInt( extractMInt( Mem8, 0, 1), extractMInt( Imm8, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/xorl_m32_imm32.k b/semantics/memoryInstructions/xorl_m32_imm32.k index db7bfde46..7830673db 100644 --- a/semantics/memoryInstructions/xorl_m32_imm32.k +++ b/semantics/memoryInstructions/xorl_m32_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module XORL-M32-IMM32 imports X86-CONFIGURATION - context execinstr(xorl:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(xorl:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (xorl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (xorl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (xorl Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (xorl:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (xorl:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem32, handleImmediateWithSignExtend(Imm32, 32, 32)), + xorMInt( Mem32, Imm32), MemOff, 32 ) @@ -27,15 +28,16 @@ module XORL-M32-IMM32 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem32, 31, 32), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem32, 30, 31), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 29, 30), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 28, 29), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 27, 28), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 26, 27), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 25, 26), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 24, 25), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem32, 31, 32), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem32, 30, 31), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 29, 30), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 28, 29), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 27, 28), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 26, 27), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 25, 26), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 24, 25), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem32, handleImmediateWithSignExtend(Imm32, 32, 32)), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem32, Imm32), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( Mem32, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 0, 1)) +"SF" |-> xorMInt( extractMInt( Mem32, 0, 1), extractMInt( Imm32, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/xorl_m32_imm8.k b/semantics/memoryInstructions/xorl_m32_imm8.k index b2a9bea6c..281094860 100644 --- a/semantics/memoryInstructions/xorl_m32_imm8.k +++ b/semantics/memoryInstructions/xorl_m32_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module XORL-M32-IMM8 imports X86-CONFIGURATION - context execinstr(xorl:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(xorl:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (xorl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (xorl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 32) ~> execinstr (xorl Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (xorl:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (xorl:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem32, mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + xorMInt( Mem32, mi(32, svalueMInt(Imm8))), MemOff, 32 ) @@ -27,15 +28,16 @@ module XORL-M32-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem32, 31, 32), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem32, 30, 31), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 29, 30), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 28, 29), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 27, 28), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 26, 27), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 25, 26), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 24, 25), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem32, 31, 32), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem32, 30, 31), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 29, 30), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 28, 29), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 27, 28), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 26, 27), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 25, 26), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem32, 24, 25), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem32, mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem32, mi(32, svalueMInt(Imm8))), mi(32, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( Mem32, 0, 1), extractMInt( mi(32, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> xorMInt( extractMInt( Mem32, 0, 1), extractMInt( mi(32, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/xorq_m64_imm32.k b/semantics/memoryInstructions/xorq_m64_imm32.k index a77c4c11e..05f383ba0 100644 --- a/semantics/memoryInstructions/xorq_m64_imm32.k +++ b/semantics/memoryInstructions/xorq_m64_imm32.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module XORQ-M64-IMM32 imports X86-CONFIGURATION - context execinstr(xorq:Opcode Imm32:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(xorq:Opcode Imm32:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (xorq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (xorq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (xorq Imm32, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm32) ==Int 32 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (xorq:Opcode Imm32:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (xorq:Opcode Imm32:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), + xorMInt( Mem64, mi(64, svalueMInt(Imm32))), MemOff, 64 ) @@ -27,15 +28,16 @@ module XORQ-M64-IMM32 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem64, 63, 64), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem64, 62, 63), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 61, 62), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 60, 61), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 59, 60), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 58, 59), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 57, 58), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 56, 57), extractMInt( handleImmediateWithSignExtend(Imm32, 32, 32), 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem64, 63, 64), extractMInt( Imm32, 31, 32)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem64, 62, 63), extractMInt( Imm32, 30, 31)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 61, 62), extractMInt( Imm32, 29, 30)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 60, 61), extractMInt( Imm32, 28, 29)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 59, 60), extractMInt( Imm32, 27, 28)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 58, 59), extractMInt( Imm32, 26, 27)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 57, 58), extractMInt( Imm32, 25, 26)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 56, 57), extractMInt( Imm32, 24, 25)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem64, mi(64, svalueMInt(Imm32))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm32, 32, 32))), 0, 1)) +"SF" |-> xorMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(Imm32)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/memoryInstructions/xorq_m64_imm8.k b/semantics/memoryInstructions/xorq_m64_imm8.k index 1f8e023ad..1727eae5b 100644 --- a/semantics/memoryInstructions/xorq_m64_imm8.k +++ b/semantics/memoryInstructions/xorq_m64_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module XORQ-M64-IMM8 imports X86-CONFIGURATION - context execinstr(xorq:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(xorq:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (xorq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (xorq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 64) ~> execinstr (xorq Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (xorq:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem64:MInt):MemLoadValue ~> execinstr (xorq:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + xorMInt( Mem64, mi(64, svalueMInt(Imm8))), MemOff, 64 ) @@ -27,15 +28,16 @@ module XORQ-M64-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem64, 63, 64), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem64, 62, 63), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 61, 62), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 60, 61), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 59, 60), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 58, 59), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 57, 58), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 56, 57), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem64, 63, 64), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem64, 62, 63), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 61, 62), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 60, 61), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 59, 60), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 58, 59), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 57, 58), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem64, 56, 57), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem64, mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem64, mi(64, svalueMInt(Imm8))), mi(64, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> xorMInt( extractMInt( Mem64, 0, 1), extractMInt( mi(64, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/memoryInstructions/xorw_m16_imm16.k b/semantics/memoryInstructions/xorw_m16_imm16.k index b6c04a45b..6aab46f18 100644 --- a/semantics/memoryInstructions/xorw_m16_imm16.k +++ b/semantics/memoryInstructions/xorw_m16_imm16.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module XORW-M16-IMM16 imports X86-CONFIGURATION - context execinstr(xorw:Opcode Imm16:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(xorw:Opcode Imm16:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (xorw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (xorw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (xorw Imm16, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm16) ==Int 16 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (xorw:Opcode Imm16:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (xorw:Opcode Imm16:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem16, handleImmediateWithSignExtend(Imm16, 16, 16)), + xorMInt( Mem16, Imm16), MemOff, 16 ) @@ -27,15 +28,16 @@ module XORW-M16-IMM16 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem16, 15, 16), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 15, 16)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem16, 14, 15), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 14, 15)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 13, 14), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 13, 14)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 12, 13), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 12, 13)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 11, 12), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 11, 12)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 10, 11), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 10, 11)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 9, 10), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 9, 10)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 8, 9), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem16, 15, 16), extractMInt( Imm16, 15, 16)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem16, 14, 15), extractMInt( Imm16, 14, 15)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 13, 14), extractMInt( Imm16, 13, 14)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 12, 13), extractMInt( Imm16, 12, 13)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 11, 12), extractMInt( Imm16, 11, 12)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 10, 11), extractMInt( Imm16, 10, 11)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 9, 10), extractMInt( Imm16, 9, 10)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 8, 9), extractMInt( Imm16, 8, 9)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem16, handleImmediateWithSignExtend(Imm16, 16, 16)), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem16, Imm16), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( Mem16, 0, 1), extractMInt( handleImmediateWithSignExtend(Imm16, 16, 16), 0, 1)) +"SF" |-> xorMInt( extractMInt( Mem16, 0, 1), extractMInt( Imm16, 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm16) ==Int 16 endmodule diff --git a/semantics/memoryInstructions/xorw_m16_imm8.k b/semantics/memoryInstructions/xorw_m16_imm8.k index e3430d659..daea736e1 100644 --- a/semantics/memoryInstructions/xorw_m16_imm8.k +++ b/semantics/memoryInstructions/xorw_m16_imm8.k @@ -4,20 +4,21 @@ requires "x86-configuration.k" module XORW-M16-IMM8 imports X86-CONFIGURATION - context execinstr(xorw:Opcode Imm8:Imm, HOLE:Mem, .Operands) [result(MemOffset)] + context execinstr(xorw:Opcode Imm8:MInt, HOLE:Mem, .Operands) [result(MemOffset)] rule - execinstr (xorw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + execinstr (xorw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => loadFromMemory( MemOff, 16) ~> execinstr (xorw Imm8, memOffset( MemOff), .Operands) ... RSMap:Map + requires bitwidthMInt(Imm8) ==Int 8 rule - memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (xorw:Opcode Imm8:Imm, memOffset( MemOff:MInt):MemOffset, .Operands) => + memLoadValue(Mem16:MInt):MemLoadValue ~> execinstr (xorw:Opcode Imm8:MInt, memOffset( MemOff:MInt):MemOffset, .Operands) => storeToMemory( - xorMInt( Mem16, mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), + xorMInt( Mem16, mi(16, svalueMInt(Imm8))), MemOff, 16 ) @@ -27,15 +28,16 @@ module XORW-M16-IMM8 RSMap:Map => updateMap(RSMap, "CF" |-> mi(1, 0) -"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem16, 15, 16), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem16, 14, 15), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 13, 14), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 12, 13), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 11, 12), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 10, 11), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 9, 10), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 8, 9), extractMInt( handleImmediateWithSignExtend(Imm8, 8, 8), 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) +"PF" |-> (#ifMInt (notBool (((((((eqMInt( xorMInt( extractMInt( Mem16, 15, 16), extractMInt( Imm8, 7, 8)), mi(1, 1)) xorBool eqMInt( xorMInt( extractMInt( Mem16, 14, 15), extractMInt( Imm8, 6, 7)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 13, 14), extractMInt( Imm8, 5, 6)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 12, 13), extractMInt( Imm8, 4, 5)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 11, 12), extractMInt( Imm8, 3, 4)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 10, 11), extractMInt( Imm8, 2, 3)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 9, 10), extractMInt( Imm8, 1, 2)), mi(1, 1))) xorBool eqMInt( xorMInt( extractMInt( Mem16, 8, 9), extractMInt( Imm8, 0, 1)), mi(1, 1)))) #then mi(1, 1) #else mi(1, 0) #fi) "AF" |-> (undefMInt) -"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem16, mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8)))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) +"ZF" |-> (#ifMInt eqMInt( xorMInt( Mem16, mi(16, svalueMInt(Imm8))), mi(16, 0)) #then mi(1, 1) #else mi(1, 0) #fi) -"SF" |-> xorMInt( extractMInt( Mem16, 0, 1), extractMInt( mi(16, svalueMInt(handleImmediateWithSignExtend(Imm8, 8, 8))), 0, 1)) +"SF" |-> xorMInt( extractMInt( Mem16, 0, 1), extractMInt( mi(16, svalueMInt(Imm8)), 0, 1)) "OF" |-> mi(1, 0) ) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/registerInstructions/pushq_imm32.k b/semantics/registerInstructions/pushq_imm32.k deleted file mode 100644 index 143e8b115..000000000 --- a/semantics/registerInstructions/pushq_imm32.k +++ /dev/null @@ -1,22 +0,0 @@ -requires "x86-configuration.k" - - -/*@ - Push R: - 1. ValTostore = R - 2. *(RSP-8) = ValTostore - 3. RSP = RSP - 8 -*/ -module PUSHQ-IMM32 - imports X86-CONFIGURATION - - rule - execinstr (pushq Imm32:Imm, .Operands) => - storeToMemory( - handleImmediateWithSignExtend(Imm32, 32, 64), - subMInt(getRegisterValue(%rsp, RSMap), mi(64, 8)), - 64) ~> - decRSPInBytes(8) - ... - RSMap -endmodule diff --git a/semantics/registerInstructions/roll_r32_one.k b/semantics/registerInstructions/roll_r32_one.k index 34f3407b6..c2dfc627d 100644 --- a/semantics/registerInstructions/roll_r32_one.k +++ b/semantics/registerInstructions/roll_r32_one.k @@ -1,36 +1,25 @@ // Autogenerated using stratification. requires "x86-configuration.k" -module ROLL-M32-ONE +module ROLL-R32-ONE imports X86-CONFIGURATION - rule - execinstr (roll:Opcode M:Mem, .Operands) => execinstr (roll:Opcode $0x1, M:Mem, .Operands) - ... - context execinstr(roll:Opcode $0x1, HOLE:Mem, .Operands) [result(MemOffset)] - - rule - execinstr (roll:Opcode $0x1, memOffset( MemOff:MInt):MemOffset, .Operands) => - loadFromMemory( MemOff, 32) ~> - execinstr (roll $0x1, memOffset( MemOff), .Operands) - ... - RSMap:Map - rule - memLoadValue(Mem32:MInt):MemLoadValue ~> execinstr (roll:Opcode $0x1, memOffset( MemOff:MInt):MemOffset, .Operands) => - - storeToMemory( - rol( Mem32, mi(32, 1)), - MemOff, - 32 - ) - + execinstr (roll $0x1, R2:R32, .Operands) => . ... - RSMap:Map => updateMap(RSMap, -"CF" |-> extractMInt( rol( Mem32, mi(32, 1)), 31, 32) +RSMap:Map => updateMap(RSMap, +convToRegKeys(R2) |-> concatenateMInt( mi(32, 0), rol( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, 1))) + +"CF" |-> extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, 1)), 31, 32) + +"OF" |-> (#ifMInt (eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, 1)), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( extractMInt( getParentValue(R2, RSMap), 32, 64), mi(32, 1)), 31, 32), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) +) -"OF" |-> (#ifMInt (eqMInt( extractMInt( rol( Mem32, mi(32, 1)), 0, 1), mi(1, 1)) xorBool eqMInt( extractMInt( rol( Mem32, mi(32, 1)), 31, 32), mi(1, 1))) #then mi(1, 1) #else mi(1, 0) #fi) - ) + +endmodule + +module ROLL-R32-ONE-SEMANTICS + imports ROLL-R32-ONE endmodule diff --git a/semantics/systemInstructions/callq_rel32.k b/semantics/systemInstructions/callq_rel32.k index 42e5a159b..abd054b19 100644 --- a/semantics/systemInstructions/callq_rel32.k +++ b/semantics/systemInstructions/callq_rel32.k @@ -13,16 +13,18 @@ module CALLQ-REL32 rule - execinstr (callq Imm32:Imm, .Operands) => + execinstr (callq Imm32:MInt, .Operands) => storeToMemory({RSMap["RIP"]}:>MInt, subMInt(getRegisterValue(%rsp, RSMap), mi(64, 8)), 64) ~> decRSPInBytes(8) ... - RSMap => updateMap(RSMap, ("RIP" |->addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)) )) + RSMap => updateMap(RSMap, ("RIP" |->addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)) )) SymMap - requires notBool HasBuiltinAtAddress(SymMap, addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64))) + requires notBool HasBuiltinAtAddress(SymMap, addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64))) + andBool bitwidthMInt(Imm32) ==Int 32 - rule execinstr (callq Imm32:Imm, .Operands) => execinstr(call GetBuiltinFromAddress(SymMap, addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) ... + rule execinstr (callq Imm32:MInt, .Operands) => execinstr(call GetBuiltinFromAddress(SymMap, addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) ... RSMap SymMap - requires HasBuiltinAtAddress(SymMap, addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64))) + requires HasBuiltinAtAddress(SymMap, addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64))) + andBool bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/systemInstructions/ja_rel32.k b/semantics/systemInstructions/ja_rel32.k index 7edfdbd8f..987f2fc69 100644 --- a/semantics/systemInstructions/ja_rel32.k +++ b/semantics/systemInstructions/ja_rel32.k @@ -4,7 +4,14 @@ module JA-REL32 imports X86-CONFIGURATION imports X86-FLAG-CHECS-SYNTAX - rule execinstr (ja Imm32:Imm, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + rule execinstr (ja Imm32:MInt, .Operands) => . ... + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) + + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) + + rule execinstr (ja Imm32:MInt, .Operands) => . ... + RSMap + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) endmodule diff --git a/semantics/systemInstructions/ja_rel8.k b/semantics/systemInstructions/ja_rel8.k index 351771832..96bc20187 100644 --- a/semantics/systemInstructions/ja_rel8.k +++ b/semantics/systemInstructions/ja_rel8.k @@ -6,19 +6,20 @@ module JA-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (ja Imm8:Imm, .Operands) => . + execinstr (ja Imm8:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RIP" |-> - addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, - 8, 64)))) + addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) rule - execinstr (ja Imm8:Imm, .Operands) => . + execinstr (ja Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) endmodule diff --git a/semantics/systemInstructions/jae_rel32.k b/semantics/systemInstructions/jae_rel32.k index 8cd55a406..697ee5c2b 100644 --- a/semantics/systemInstructions/jae_rel32.k +++ b/semantics/systemInstructions/jae_rel32.k @@ -6,15 +6,17 @@ module JAE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jae Imm32:Imm, .Operands) => . + execinstr (jae Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) rule - execinstr (jae Imm32:Imm, .Operands) => . + execinstr (jae Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jae_rel8.k b/semantics/systemInstructions/jae_rel8.k index 4b2189dc2..059459b19 100644 --- a/semantics/systemInstructions/jae_rel8.k +++ b/semantics/systemInstructions/jae_rel8.k @@ -6,15 +6,17 @@ module JAE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jae Imm8:Imm, .Operands) => . + execinstr (jae Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) rule - execinstr (jae Imm8:Imm, .Operands) => . + execinstr (jae Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jb_rel32.k b/semantics/systemInstructions/jb_rel32.k index 004b1bd55..d951f3789 100644 --- a/semantics/systemInstructions/jb_rel32.k +++ b/semantics/systemInstructions/jb_rel32.k @@ -6,15 +6,17 @@ module JB-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jb Imm32:Imm, .Operands) => . + execinstr (jb Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) rule - execinstr (jb Imm32:Imm, .Operands) => . + execinstr (jb Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jb_rel8.k b/semantics/systemInstructions/jb_rel8.k index 2054d3e2b..dfb9fd6fe 100644 --- a/semantics/systemInstructions/jb_rel8.k +++ b/semantics/systemInstructions/jb_rel8.k @@ -6,15 +6,17 @@ module JB-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jb Imm8:Imm, .Operands) => . + execinstr (jb Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) rule - execinstr (jb Imm8:Imm, .Operands) => . + execinstr (jb Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jbe_rel32.k b/semantics/systemInstructions/jbe_rel32.k index 2682bbf2c..3f64d6359 100644 --- a/semantics/systemInstructions/jbe_rel32.k +++ b/semantics/systemInstructions/jbe_rel32.k @@ -6,17 +6,19 @@ module JBE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jbe Imm32:Imm, .Operands) => . + execinstr (jbe Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) rule - execinstr (jbe Imm32:Imm, .Operands) => . + execinstr (jbe Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) endmodule diff --git a/semantics/systemInstructions/jbe_rel8.k b/semantics/systemInstructions/jbe_rel8.k index ed8c2ceae..b0c3bb039 100644 --- a/semantics/systemInstructions/jbe_rel8.k +++ b/semantics/systemInstructions/jbe_rel8.k @@ -6,17 +6,19 @@ module JBE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jbe Imm8:Imm, .Operands) => . + execinstr (jbe Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) - orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + orBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) rule - execinstr (jbe Imm8:Imm, .Operands) => . + execinstr (jbe Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) endmodule diff --git a/semantics/systemInstructions/jc_rel32.k b/semantics/systemInstructions/jc_rel32.k index e33369bbe..d75d1231b 100644 --- a/semantics/systemInstructions/jc_rel32.k +++ b/semantics/systemInstructions/jc_rel32.k @@ -6,15 +6,17 @@ module JC-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jc Imm32:Imm, .Operands) => . + execinstr (jc Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) rule - execinstr (jc Imm32:Imm, .Operands) => . + execinstr (jc Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jc_rel8.k b/semantics/systemInstructions/jc_rel8.k index 656ff31d8..07e2e66a1 100644 --- a/semantics/systemInstructions/jc_rel8.k +++ b/semantics/systemInstructions/jc_rel8.k @@ -6,15 +6,17 @@ module JC-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jc Imm8:Imm, .Operands) => . + execinstr (jc Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) rule - execinstr (jc Imm8:Imm, .Operands) => . + execinstr (jc Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/je_rel32.k b/semantics/systemInstructions/je_rel32.k index 2948258c5..3071bf335 100644 --- a/semantics/systemInstructions/je_rel32.k +++ b/semantics/systemInstructions/je_rel32.k @@ -6,15 +6,17 @@ module JE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (je Imm32:Imm, .Operands) => . + execinstr (je Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) rule - execinstr (je Imm32:Imm, .Operands) => . + execinstr (je Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/je_rel8.k b/semantics/systemInstructions/je_rel8.k index 4d35997ca..204e8355c 100644 --- a/semantics/systemInstructions/je_rel8.k +++ b/semantics/systemInstructions/je_rel8.k @@ -6,15 +6,17 @@ module JE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (je Imm8:Imm, .Operands) => . + execinstr (je Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) rule - execinstr (je Imm8:Imm, .Operands) => . + execinstr (je Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jecxz_rel8.k b/semantics/systemInstructions/jecxz_rel8.k index c6fe21868..60e07b1de 100644 --- a/semantics/systemInstructions/jecxz_rel8.k +++ b/semantics/systemInstructions/jecxz_rel8.k @@ -6,15 +6,17 @@ module JECXZ-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jecxz Imm8:Imm, .Operands) => . + execinstr (jecxz Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt(getRegisterValue(%ecx, RSMap), mi(32, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt(getRegisterValue(%ecx, RSMap), mi(32, 0)) rule - execinstr (jecxz Imm8:Imm, .Operands) => . + execinstr (jecxz Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt(getRegisterValue(%ecx, RSMap), mi(32, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt(getRegisterValue(%ecx, RSMap), mi(32, 0)) endmodule diff --git a/semantics/systemInstructions/jg_rel32.k b/semantics/systemInstructions/jg_rel32.k index 34847e9a4..295492de4 100644 --- a/semantics/systemInstructions/jg_rel32.k +++ b/semantics/systemInstructions/jg_rel32.k @@ -4,19 +4,21 @@ module JG-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jg Imm32:Imm, .Operands) => . + execinstr (jg Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) rule - execinstr (jg Imm32:Imm, .Operands) => . + execinstr (jg Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) orBool - notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jg_rel8.k b/semantics/systemInstructions/jg_rel8.k index 2109d3880..49e48a412 100644 --- a/semantics/systemInstructions/jg_rel8.k +++ b/semantics/systemInstructions/jg_rel8.k @@ -4,19 +4,21 @@ module JG-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jg Imm8:Imm, .Operands) => . + execinstr (jg Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) rule - execinstr (jg Imm8:Imm, .Operands) => . + execinstr (jg Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) orBool - notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jge_rel32.k b/semantics/systemInstructions/jge_rel32.k index 0ef51e517..a5e4ba1bb 100644 --- a/semantics/systemInstructions/jge_rel32.k +++ b/semantics/systemInstructions/jge_rel32.k @@ -4,15 +4,17 @@ module JGE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jge Imm32:Imm, .Operands) => . + execinstr (jge Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) rule - execinstr (jge Imm32:Imm, .Operands) => . + execinstr (jge Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jge_rel8.k b/semantics/systemInstructions/jge_rel8.k index c8743fdc1..751e1bfd5 100644 --- a/semantics/systemInstructions/jge_rel8.k +++ b/semantics/systemInstructions/jge_rel8.k @@ -4,15 +4,17 @@ module JGE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jge Imm8:Imm, .Operands) => . + execinstr (jge Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) rule - execinstr (jge Imm8:Imm, .Operands) => . + execinstr (jge Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jl_rel32.k b/semantics/systemInstructions/jl_rel32.k index 339a7b9ec..407ce8bc6 100644 --- a/semantics/systemInstructions/jl_rel32.k +++ b/semantics/systemInstructions/jl_rel32.k @@ -4,15 +4,17 @@ module JL-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jl Imm32:Imm, .Operands) => . + execinstr (jl Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) rule - execinstr (jl Imm32:Imm, .Operands) => . + execinstr (jl Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jl_rel8.k b/semantics/systemInstructions/jl_rel8.k index 68260efd4..0a1ab84b9 100644 --- a/semantics/systemInstructions/jl_rel8.k +++ b/semantics/systemInstructions/jl_rel8.k @@ -4,15 +4,17 @@ module JL-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jl Imm8:Imm, .Operands) => . + execinstr (jl Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) rule - execinstr (jl Imm8:Imm, .Operands) => . + execinstr (jl Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jle_rel32.k b/semantics/systemInstructions/jle_rel32.k index 0449a5c20..c2f827b94 100644 --- a/semantics/systemInstructions/jle_rel32.k +++ b/semantics/systemInstructions/jle_rel32.k @@ -4,19 +4,21 @@ module JLE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jle Imm32:Imm, .Operands) => . + execinstr (jle Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool - (notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) + (notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt))) rule - execinstr (jle Imm32:Imm, .Operands) => . + execinstr (jle Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jle_rel8.k b/semantics/systemInstructions/jle_rel8.k index c901c2d30..f818684b9 100644 --- a/semantics/systemInstructions/jle_rel8.k +++ b/semantics/systemInstructions/jle_rel8.k @@ -4,19 +4,21 @@ module JLE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jle Imm8:Imm, .Operands) => . + execinstr (jle Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool - (notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) + (notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt))) rule - execinstr (jle Imm8:Imm, .Operands) => . + execinstr (jle Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool - eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jmp_rel32.k b/semantics/systemInstructions/jmp_rel32.k index 65e64af0e..20f25aa3c 100644 --- a/semantics/systemInstructions/jmp_rel32.k +++ b/semantics/systemInstructions/jmp_rel32.k @@ -5,9 +5,10 @@ module JMPQ-REL32 imports X86-CONFIGURATION rule - execinstr (jmp Imm32:Imm, .Operands) => . + execinstr (jmp Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) + requires bitwidthMInt(Imm32) ==Int 32 endmodule diff --git a/semantics/systemInstructions/jmp_rel8.k b/semantics/systemInstructions/jmp_rel8.k index c6b80b5ce..3c940e93e 100644 --- a/semantics/systemInstructions/jmp_rel8.k +++ b/semantics/systemInstructions/jmp_rel8.k @@ -5,9 +5,10 @@ module JMPQ-REL8 imports X86-CONFIGURATION rule - execinstr (jmp Imm8:Imm, .Operands) => . + execinstr (jmp Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) + requires bitwidthMInt(Imm8) ==Int 8 endmodule diff --git a/semantics/systemInstructions/jna_rel32.k b/semantics/systemInstructions/jna_rel32.k index 54a425921..a2740b9e3 100644 --- a/semantics/systemInstructions/jna_rel32.k +++ b/semantics/systemInstructions/jna_rel32.k @@ -6,17 +6,19 @@ module JNA-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jna Imm32:Imm, .Operands) => . + execinstr (jna Imm32:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RIP" |-> - addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, - 32, 64)))) + addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, + 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1))) rule - execinstr (jna Imm32:Imm, .Operands) => . + execinstr (jna Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1))) endmodule diff --git a/semantics/systemInstructions/jna_rel8.k b/semantics/systemInstructions/jna_rel8.k index 810660cc5..ae854f827 100644 --- a/semantics/systemInstructions/jna_rel8.k +++ b/semantics/systemInstructions/jna_rel8.k @@ -6,17 +6,19 @@ module JNA-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jna Imm8:Imm, .Operands) => . + execinstr (jna Imm8:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RIP" |-> - addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, - 8, 64)))) + addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, + 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1))) rule - execinstr (jna Imm8:Imm, .Operands) => . + execinstr (jna Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1))) endmodule diff --git a/semantics/systemInstructions/jnae_rel32.k b/semantics/systemInstructions/jnae_rel32.k index 9c8d96d54..ac18612a0 100644 --- a/semantics/systemInstructions/jnae_rel32.k +++ b/semantics/systemInstructions/jnae_rel32.k @@ -6,15 +6,17 @@ module JNAE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnae Imm32:Imm, .Operands) => . + execinstr (jnae Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) rule - execinstr (jnae Imm32:Imm, .Operands) => . + execinstr (jnae Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jnae_rel8.k b/semantics/systemInstructions/jnae_rel8.k index 1080e3fd4..9f5afa5dc 100644 --- a/semantics/systemInstructions/jnae_rel8.k +++ b/semantics/systemInstructions/jnae_rel8.k @@ -6,15 +6,17 @@ module JNAE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnae Imm8:Imm, .Operands) => . + execinstr (jnae Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) rule - execinstr (jnae Imm8:Imm, .Operands) => . + execinstr (jnae Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jnb_rel32.k b/semantics/systemInstructions/jnb_rel32.k index 471150ca7..23760c8a5 100644 --- a/semantics/systemInstructions/jnb_rel32.k +++ b/semantics/systemInstructions/jnb_rel32.k @@ -6,15 +6,17 @@ module JNB-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnb Imm32:Imm, .Operands) => . + execinstr (jnb Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) rule - execinstr (jnb Imm32:Imm, .Operands) => . + execinstr (jnb Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jnb_rel8.k b/semantics/systemInstructions/jnb_rel8.k index 215a340da..d831e9646 100644 --- a/semantics/systemInstructions/jnb_rel8.k +++ b/semantics/systemInstructions/jnb_rel8.k @@ -6,15 +6,17 @@ module JNB-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnb Imm8:Imm, .Operands) => . + execinstr (jnb Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) rule - execinstr (jnb Imm8:Imm, .Operands) => . + execinstr (jnb Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jnbe_rel32.k b/semantics/systemInstructions/jnbe_rel32.k index d63320a24..f042a5fbe 100644 --- a/semantics/systemInstructions/jnbe_rel32.k +++ b/semantics/systemInstructions/jnbe_rel32.k @@ -6,18 +6,20 @@ module JNBE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnbe Imm32:Imm, .Operands) => . + execinstr (jnbe Imm32:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RIP" |-> - addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, - 32, 64)))) + addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, + 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) rule - execinstr (jnbe Imm32:Imm, .Operands) => . + execinstr (jnbe Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) endmodule diff --git a/semantics/systemInstructions/jnbe_rel8.k b/semantics/systemInstructions/jnbe_rel8.k index 5790a0235..ea4ef54ac 100644 --- a/semantics/systemInstructions/jnbe_rel8.k +++ b/semantics/systemInstructions/jnbe_rel8.k @@ -6,18 +6,20 @@ module JNBE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnbe Imm8:Imm, .Operands) => . + execinstr (jnbe Imm8:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RIP" |-> - addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, - 8, 64)))) + addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, + 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) rule - execinstr (jnbe Imm8:Imm, .Operands) => . + execinstr (jnbe Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (notBool eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) endmodule diff --git a/semantics/systemInstructions/jnc_rel32.k b/semantics/systemInstructions/jnc_rel32.k index c83c6ce85..4c86fa2f7 100644 --- a/semantics/systemInstructions/jnc_rel32.k +++ b/semantics/systemInstructions/jnc_rel32.k @@ -6,15 +6,17 @@ module JNC-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnc Imm32:Imm, .Operands) => . + execinstr (jnc Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) rule - execinstr (jnc Imm32:Imm, .Operands) => . + execinstr (jnc Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jnc_rel8.k b/semantics/systemInstructions/jnc_rel8.k index 409270d14..348665660 100644 --- a/semantics/systemInstructions/jnc_rel8.k +++ b/semantics/systemInstructions/jnc_rel8.k @@ -6,15 +6,17 @@ module JNC-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnc Imm8:Imm, .Operands) => . + execinstr (jnc Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 0)) rule - execinstr (jnc Imm8:Imm, .Operands) => . + execinstr (jnc Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["CF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jne_rel32.k b/semantics/systemInstructions/jne_rel32.k index df758fe3b..3ef4d9f48 100644 --- a/semantics/systemInstructions/jne_rel32.k +++ b/semantics/systemInstructions/jne_rel32.k @@ -6,15 +6,17 @@ module JNE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jne Imm32:Imm, .Operands) => . + execinstr (jne Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) rule - execinstr (jne Imm32:Imm, .Operands) => . + execinstr (jne Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jne_rel8.k b/semantics/systemInstructions/jne_rel8.k index d6fbd8aca..d442a86c0 100644 --- a/semantics/systemInstructions/jne_rel8.k +++ b/semantics/systemInstructions/jne_rel8.k @@ -6,15 +6,17 @@ module JNE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jne Imm8:Imm, .Operands) => . + execinstr (jne Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) rule - execinstr (jne Imm8:Imm, .Operands) => . + execinstr (jne Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jng_rel32.k b/semantics/systemInstructions/jng_rel32.k index 8706aaf5e..4f9fafeda 100644 --- a/semantics/systemInstructions/jng_rel32.k +++ b/semantics/systemInstructions/jng_rel32.k @@ -6,15 +6,17 @@ module JNG-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jng Imm32:Imm, .Operands) => . + execinstr (jng Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) rule - execinstr (jng Imm32:Imm, .Operands) => . + execinstr (jng Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jng_rel8.k b/semantics/systemInstructions/jng_rel8.k index b15e8f7c0..d8b505c01 100644 --- a/semantics/systemInstructions/jng_rel8.k +++ b/semantics/systemInstructions/jng_rel8.k @@ -6,15 +6,17 @@ module JNG-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jng Imm8:Imm, .Operands) => . + execinstr (jng Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) rule - execinstr (jng Imm8:Imm, .Operands) => . + execinstr (jng Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jnge_rel32.k b/semantics/systemInstructions/jnge_rel32.k index a49f5d310..a04ced00d 100644 --- a/semantics/systemInstructions/jnge_rel32.k +++ b/semantics/systemInstructions/jnge_rel32.k @@ -6,15 +6,17 @@ module JNGE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnge Imm32:Imm, .Operands) => . + execinstr (jnge Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) rule - execinstr (jnge Imm32:Imm, .Operands) => . + execinstr (jnge Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jnge_rel8.k b/semantics/systemInstructions/jnge_rel8.k index e6cafc657..adf16426e 100644 --- a/semantics/systemInstructions/jnge_rel8.k +++ b/semantics/systemInstructions/jnge_rel8.k @@ -6,15 +6,17 @@ module JNGE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnge Imm8:Imm, .Operands) => . + execinstr (jnge Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) rule - execinstr (jnge Imm8:Imm, .Operands) => . + execinstr (jnge Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jnl_rel32.k b/semantics/systemInstructions/jnl_rel32.k index 0777ad103..440ddf0ea 100644 --- a/semantics/systemInstructions/jnl_rel32.k +++ b/semantics/systemInstructions/jnl_rel32.k @@ -6,15 +6,17 @@ module JNL-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnl Imm32:Imm, .Operands) => . + execinstr (jnl Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) rule - execinstr (jnl Imm32:Imm, .Operands) => . + execinstr (jnl Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jnl_rel8.k b/semantics/systemInstructions/jnl_rel8.k index 0db8374fb..50f56302d 100644 --- a/semantics/systemInstructions/jnl_rel8.k +++ b/semantics/systemInstructions/jnl_rel8.k @@ -6,15 +6,17 @@ module JNL-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnl Imm8:Imm, .Operands) => . + execinstr (jnl Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) rule - execinstr (jnl Imm8:Imm, .Operands) => . + execinstr (jnl Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) endmodule diff --git a/semantics/systemInstructions/jnle_rel32.k b/semantics/systemInstructions/jnle_rel32.k index 038a3e6a5..e772fc77a 100644 --- a/semantics/systemInstructions/jnle_rel32.k +++ b/semantics/systemInstructions/jnle_rel32.k @@ -6,15 +6,17 @@ module JNLE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnle Imm32:Imm, .Operands) => . + execinstr (jnle Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) rule - execinstr (jnle Imm32:Imm, .Operands) => . + execinstr (jnle Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm32) ==Int 32 andBool + (notBool eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jnle_rel8.k b/semantics/systemInstructions/jnle_rel8.k index 188425453..44fd34677 100644 --- a/semantics/systemInstructions/jnle_rel8.k +++ b/semantics/systemInstructions/jnle_rel8.k @@ -6,15 +6,17 @@ module JNLE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnle Imm8:Imm, .Operands) => . + execinstr (jnle Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) andBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) rule - execinstr (jnle Imm8:Imm, .Operands) => . + execinstr (jnle Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (notBool eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) orBool notBool eqMInt({RSMap["SF"]}:>MInt, {RSMap["OF"]}:>MInt)) endmodule diff --git a/semantics/systemInstructions/jno_rel32.k b/semantics/systemInstructions/jno_rel32.k index 52ca31290..593c31f33 100644 --- a/semantics/systemInstructions/jno_rel32.k +++ b/semantics/systemInstructions/jno_rel32.k @@ -6,15 +6,17 @@ module JNO-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jno Imm32:Imm, .Operands) => . + execinstr (jno Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) rule - execinstr (jno Imm32:Imm, .Operands) => . + execinstr (jno Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jno_rel8.k b/semantics/systemInstructions/jno_rel8.k index dbb1e0ce8..8741ffeef 100644 --- a/semantics/systemInstructions/jno_rel8.k +++ b/semantics/systemInstructions/jno_rel8.k @@ -6,15 +6,17 @@ module JNO-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jno Imm8:Imm, .Operands) => . + execinstr (jno Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) rule - execinstr (jno Imm8:Imm, .Operands) => . + execinstr (jno Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jnp_rel32.k b/semantics/systemInstructions/jnp_rel32.k index c44e8957b..68adf18c3 100644 --- a/semantics/systemInstructions/jnp_rel32.k +++ b/semantics/systemInstructions/jnp_rel32.k @@ -6,15 +6,17 @@ module JNP-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnp Imm32:Imm, .Operands) => . + execinstr (jnp Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) rule - execinstr (jnp Imm32:Imm, .Operands) => . + execinstr (jnp Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jnp_rel8.k b/semantics/systemInstructions/jnp_rel8.k index 0a0509c8b..9a54f70a8 100644 --- a/semantics/systemInstructions/jnp_rel8.k +++ b/semantics/systemInstructions/jnp_rel8.k @@ -6,15 +6,17 @@ module JNP-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnp Imm8:Imm, .Operands) => . + execinstr (jnp Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) rule - execinstr (jnp Imm8:Imm, .Operands) => . + execinstr (jnp Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jns_rel32.k b/semantics/systemInstructions/jns_rel32.k index e0f6b0b25..7e2a9b089 100644 --- a/semantics/systemInstructions/jns_rel32.k +++ b/semantics/systemInstructions/jns_rel32.k @@ -6,15 +6,17 @@ module JNS-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jns Imm32:Imm, .Operands) => . + execinstr (jns Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) rule - execinstr (jns Imm32:Imm, .Operands) => . + execinstr (jns Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jns_rel8.k b/semantics/systemInstructions/jns_rel8.k index ee3a25cdc..25353444d 100644 --- a/semantics/systemInstructions/jns_rel8.k +++ b/semantics/systemInstructions/jns_rel8.k @@ -6,15 +6,17 @@ module JNS-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jns Imm8:Imm, .Operands) => . + execinstr (jns Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) rule - execinstr (jns Imm8:Imm, .Operands) => . + execinstr (jns Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jnz_rel32.k b/semantics/systemInstructions/jnz_rel32.k index c4758b651..25380d73a 100644 --- a/semantics/systemInstructions/jnz_rel32.k +++ b/semantics/systemInstructions/jnz_rel32.k @@ -6,15 +6,17 @@ module JNZ-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnz Imm32:Imm, .Operands) => . + execinstr (jnz Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) rule - execinstr (jnz Imm32:Imm, .Operands) => . + execinstr (jnz Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jnz_rel8.k b/semantics/systemInstructions/jnz_rel8.k index 841e64a95..beeb4f24b 100644 --- a/semantics/systemInstructions/jnz_rel8.k +++ b/semantics/systemInstructions/jnz_rel8.k @@ -6,15 +6,17 @@ module JNZ-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jnz Imm8:Imm, .Operands) => . + execinstr (jnz Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) rule - execinstr (jnz Imm8:Imm, .Operands) => . + execinstr (jnz Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jo_rel32.k b/semantics/systemInstructions/jo_rel32.k index 86a412670..fe453c6f6 100644 --- a/semantics/systemInstructions/jo_rel32.k +++ b/semantics/systemInstructions/jo_rel32.k @@ -6,15 +6,17 @@ module JO-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jo Imm32:Imm, .Operands) => . + execinstr (jo Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) rule - execinstr (jo Imm32:Imm, .Operands) => . + execinstr (jo Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jo_rel8.k b/semantics/systemInstructions/jo_rel8.k index 739212785..4affc1844 100644 --- a/semantics/systemInstructions/jo_rel8.k +++ b/semantics/systemInstructions/jo_rel8.k @@ -6,15 +6,17 @@ module JO-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jo Imm8:Imm, .Operands) => . + execinstr (jo Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) rule - execinstr (jo Imm8:Imm, .Operands) => . + execinstr (jo Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["OF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jp_rel32.k b/semantics/systemInstructions/jp_rel32.k index 8733bf2df..ad9524a68 100644 --- a/semantics/systemInstructions/jp_rel32.k +++ b/semantics/systemInstructions/jp_rel32.k @@ -6,15 +6,17 @@ module JP-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jp Imm32:Imm, .Operands) => . + execinstr (jp Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) rule - execinstr (jp Imm32:Imm, .Operands) => . + execinstr (jp Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jp_rel8.k b/semantics/systemInstructions/jp_rel8.k index f96cfcf61..1bcddf0b4 100644 --- a/semantics/systemInstructions/jp_rel8.k +++ b/semantics/systemInstructions/jp_rel8.k @@ -6,15 +6,17 @@ module JP-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jp Imm8:Imm, .Operands) => . + execinstr (jp Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) rule - execinstr (jp Imm8:Imm, .Operands) => . + execinstr (jp Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jpe_rel32.k b/semantics/systemInstructions/jpe_rel32.k index 6508fdad4..31522376b 100644 --- a/semantics/systemInstructions/jpe_rel32.k +++ b/semantics/systemInstructions/jpe_rel32.k @@ -6,15 +6,17 @@ module JPE-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jpe Imm32:Imm, .Operands) => . + execinstr (jpe Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) rule - execinstr (jpe Imm32:Imm, .Operands) => . + execinstr (jpe Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jpe_rel8.k b/semantics/systemInstructions/jpe_rel8.k index d812fa336..ef6bb2dbc 100644 --- a/semantics/systemInstructions/jpe_rel8.k +++ b/semantics/systemInstructions/jpe_rel8.k @@ -6,15 +6,17 @@ module JPE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jpe Imm8:Imm, .Operands) => . + execinstr (jpe Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 1)) rule - execinstr (jpe Imm8:Imm, .Operands) => . + execinstr (jpe Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jpo_rel32.k b/semantics/systemInstructions/jpo_rel32.k index 1c2b4518f..ee70f0267 100644 --- a/semantics/systemInstructions/jpo_rel32.k +++ b/semantics/systemInstructions/jpo_rel32.k @@ -6,15 +6,17 @@ module JPO-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jpo Imm32:Imm, .Operands) => . + execinstr (jpo Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) rule - execinstr (jpo Imm32:Imm, .Operands) => . + execinstr (jpo Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jpo_rel8.k b/semantics/systemInstructions/jpo_rel8.k index 3cafc614b..45a4d5ca6 100644 --- a/semantics/systemInstructions/jpo_rel8.k +++ b/semantics/systemInstructions/jpo_rel8.k @@ -6,15 +6,17 @@ module JPO-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jpo Imm8:Imm, .Operands) => . + execinstr (jpo Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) rule - execinstr (jpo Imm8:Imm, .Operands) => . + execinstr (jpo Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["PF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jrcxz_rel8.k b/semantics/systemInstructions/jrcxz_rel8.k index a95d4d5e6..6c5be105f 100644 --- a/semantics/systemInstructions/jrcxz_rel8.k +++ b/semantics/systemInstructions/jrcxz_rel8.k @@ -6,15 +6,17 @@ module JRCXZ-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jrcxz Imm8:Imm, .Operands) => . + execinstr (jrcxz Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) rule - execinstr (jrcxz Imm8:Imm, .Operands) => . + execinstr (jrcxz Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt(getRegisterValue(%rcx, RSMap), mi(64, 0)) endmodule diff --git a/semantics/systemInstructions/js_rel32.k b/semantics/systemInstructions/js_rel32.k index 1de9d7f0a..50b6dcf19 100644 --- a/semantics/systemInstructions/js_rel32.k +++ b/semantics/systemInstructions/js_rel32.k @@ -6,15 +6,17 @@ module JS-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (js Imm32:Imm, .Operands) => . + execinstr (js Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) rule - execinstr (js Imm32:Imm, .Operands) => . + execinstr (js Imm32:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/js_rel8.k b/semantics/systemInstructions/js_rel8.k index 4f4c10f99..4d1431c76 100644 --- a/semantics/systemInstructions/js_rel8.k +++ b/semantics/systemInstructions/js_rel8.k @@ -6,15 +6,17 @@ module JS-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (js Imm8:Imm, .Operands) => . + execinstr (js Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["SF"]}:>MInt, mi(1, 1)) rule - execinstr (js Imm8:Imm, .Operands) => . + execinstr (js Imm8:MInt, .Operands) => . ... RSMap:Map - requires eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["SF"]}:>MInt, mi(1, 0)) endmodule diff --git a/semantics/systemInstructions/jz_rel32.k b/semantics/systemInstructions/jz_rel32.k index 2b9b564ca..788921fe5 100644 --- a/semantics/systemInstructions/jz_rel32.k +++ b/semantics/systemInstructions/jz_rel32.k @@ -6,15 +6,17 @@ module JZ-REL32 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jz Imm32:Imm, .Operands) => . + execinstr (jz Imm32:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm32, 32, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm32, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) rule - execinstr (jz Imm32:Imm, .Operands) => . + execinstr (jz Imm32:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm32) ==Int 32 andBool + notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/jz_rel8.k b/semantics/systemInstructions/jz_rel8.k index 2e216103a..a57a3d65a 100644 --- a/semantics/systemInstructions/jz_rel8.k +++ b/semantics/systemInstructions/jz_rel8.k @@ -6,15 +6,17 @@ module JZ-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (jz Imm8:Imm, .Operands) => . + execinstr (jz Imm8:MInt, .Operands) => . ... - RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64)))) + RSMap => updateMap(RSMap, ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64)))) - requires eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) rule - execinstr (jz Imm8:Imm, .Operands) => . + execinstr (jz Imm8:MInt, .Operands) => . ... RSMap:Map - requires notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) endmodule diff --git a/semantics/systemInstructions/loop_rel8.k b/semantics/systemInstructions/loop_rel8.k index afacd9541..e490e63f1 100644 --- a/semantics/systemInstructions/loop_rel8.k +++ b/semantics/systemInstructions/loop_rel8.k @@ -6,27 +6,30 @@ module LOOP-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (loop Imm8:Imm, .Operands) => execinstr (loop Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) + execinstr (loop Imm8:MInt, .Operands) => execinstr (loop Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule - execinstr (loop Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loop Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, - ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64))) + ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64))) ("RCX" |-> Count) ) - requires notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) rule - execinstr (loop Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loop Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RCX" |-> Count) ) - requires eqMInt(Count, mi(bitwidthMInt(Count), 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + eqMInt(Count, mi(bitwidthMInt(Count), 0)) endmodule diff --git a/semantics/systemInstructions/loope_rel8.k b/semantics/systemInstructions/loope_rel8.k index d904ef8a0..140a98d9d 100644 --- a/semantics/systemInstructions/loope_rel8.k +++ b/semantics/systemInstructions/loope_rel8.k @@ -6,29 +6,32 @@ module LOOPE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (loope Imm8:Imm, .Operands) => execinstr (loope Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) + execinstr (loope Imm8:MInt, .Operands) => execinstr (loope Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule - execinstr (loope Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loope Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, - ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64))) + ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64))) ("RCX" |-> Count) ) - requires notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) + andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) rule - execinstr (loope Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loope Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RCX" |-> Count) ) - requires eqMInt(Count, mi(bitwidthMInt(Count), 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt(Count, mi(bitwidthMInt(Count), 0)) + orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) endmodule diff --git a/semantics/systemInstructions/loopne_rel8.k b/semantics/systemInstructions/loopne_rel8.k index df3a61da7..a6cde7c73 100644 --- a/semantics/systemInstructions/loopne_rel8.k +++ b/semantics/systemInstructions/loopne_rel8.k @@ -6,29 +6,32 @@ module LOOPNE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (loopne Imm8:Imm, .Operands) => execinstr (loope Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) + execinstr (loopne Imm8:MInt, .Operands) => execinstr (loope Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule - execinstr (loopne Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loopne Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, - ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64))) + ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64))) ("RCX" |-> Count) ) - requires notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) + andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) rule - execinstr (loopne Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loopne Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RCX" |-> Count) ) - requires eqMInt(Count, mi(bitwidthMInt(Count), 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + (eqMInt(Count, mi(bitwidthMInt(Count), 0)) + orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) endmodule diff --git a/semantics/systemInstructions/loopnz_rel8.k b/semantics/systemInstructions/loopnz_rel8.k index c37403c96..bf1b354b7 100644 --- a/semantics/systemInstructions/loopnz_rel8.k +++ b/semantics/systemInstructions/loopnz_rel8.k @@ -6,29 +6,32 @@ module LOOPNE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (loopnz Imm8:Imm, .Operands) => execinstr (loopnz Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) + execinstr (loopnz Imm8:MInt, .Operands) => execinstr (loopnz Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule - execinstr (loopnz Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loopnz Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, - ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64))) + ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64))) ("RCX" |-> Count) ) - requires notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + ( notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) + andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) rule - execinstr (loopnz Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loopnz Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RCX" |-> Count) ) - requires eqMInt(Count, mi(bitwidthMInt(Count), 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + ( eqMInt(Count, mi(bitwidthMInt(Count), 0)) + orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 0))) endmodule diff --git a/semantics/systemInstructions/loopz_rel8.k b/semantics/systemInstructions/loopz_rel8.k index 444e23955..cfa525dd6 100644 --- a/semantics/systemInstructions/loopz_rel8.k +++ b/semantics/systemInstructions/loopz_rel8.k @@ -6,29 +6,32 @@ module LOOPE-REL8 imports X86-FLAG-CHECS-SYNTAX rule - execinstr (loopz Imm8:Imm, .Operands) => execinstr (loopz Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) + execinstr (loopz Imm8:MInt, .Operands) => execinstr (loopz Imm8, subMInt(getRegisterValue(%rcx, RSMap), mi(64, 1)), .Operands) ... RSMap + requires bitwidthMInt(Imm8) ==Int 8 rule - execinstr (loopz Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loopz Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, - ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, handleImmediateWithSignExtend(Imm8, 8, 64))) + ("RIP" |-> addMInt({RSMap["RIP"]}:>MInt, signExtend(Imm8, 64))) ("RCX" |-> Count) ) - requires notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) - andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + ( notBool eqMInt(Count, mi(bitwidthMInt(Count), 0)) + andBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) rule - execinstr (loopz Imm8:Imm, Count:MInt, .Operands) => . + execinstr (loopz Imm8:MInt, Count:MInt, .Operands) => . ... RSMap => updateMap(RSMap, ("RCX" |-> Count) ) - requires eqMInt(Count, mi(bitwidthMInt(Count), 0)) - orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1)) + requires bitwidthMInt(Imm8) ==Int 8 andBool + ( eqMInt(Count, mi(bitwidthMInt(Count), 0)) + orBool notBool eqMInt({RSMap["ZF"]}:>MInt, mi(1, 1))) endmodule From 5286c220625f34e7f0112ee5d7dd882071d6f1d2 Mon Sep 17 00:00:00 2001 From: andrew_miranti Date: Thu, 28 Feb 2019 13:41:36 -0600 Subject: [PATCH 12/15] Woops --- docs/z3_artifcats/array2.z3 | 11 +++ docs/z3_artifcats/datatypes.z3 | 7 ++ semantics/a.out | Bin 0 -> 912816 bytes .../common/library/common-c-library-stdio.k | 44 ++++++------ semantics/common/library/common-c-library.k | 8 +-- .../immediateInstructions/adcb_al_imm8.k | 17 ++--- .../immediateInstructions/adcb_r8_imm8.k | 17 ++--- .../immediateInstructions/adcb_rh_imm8.k | 17 ++--- .../immediateInstructions/adcl_eax_imm32.k | 17 ++--- .../immediateInstructions/adcl_r32_imm32.k | 17 ++--- .../immediateInstructions/adcl_r32_imm8.k | 17 ++--- .../immediateInstructions/adcq_r64_imm32.k | 17 ++--- .../immediateInstructions/adcq_r64_imm8.k | 17 ++--- .../immediateInstructions/adcq_rax_imm32.k | 17 ++--- .../immediateInstructions/adcw_ax_imm16.k | 17 ++--- .../immediateInstructions/adcw_r16_imm16.k | 17 ++--- .../immediateInstructions/adcw_r16_imm8.k | 17 ++--- .../immediateInstructions/addb_al_imm8.k | 17 ++--- .../immediateInstructions/addb_r8_imm8.k | 17 ++--- .../immediateInstructions/addb_rh_imm8.k | 17 ++--- .../immediateInstructions/addl_eax_imm32.k | 17 ++--- .../immediateInstructions/addl_r32_imm32.k | 17 ++--- .../immediateInstructions/addl_r32_imm8.k | 17 ++--- .../immediateInstructions/addq_r64_imm32.k | 17 ++--- .../immediateInstructions/addq_r64_imm8.k | 17 ++--- .../immediateInstructions/addq_rax_imm32.k | 17 ++--- .../immediateInstructions/addw_ax_imm16.k | 17 ++--- .../immediateInstructions/addw_r16_imm16.k | 17 ++--- .../immediateInstructions/addw_r16_imm8.k | 17 ++--- .../immediateInstructions/andb_al_imm8.k | 11 +-- .../immediateInstructions/andb_r8_imm8.k | 11 +-- .../immediateInstructions/andb_rh_imm8.k | 11 +-- .../immediateInstructions/andl_eax_imm32.k | 11 +-- .../immediateInstructions/andl_r32_imm32.k | 11 +-- .../immediateInstructions/andl_r32_imm8.k | 11 +-- .../immediateInstructions/andq_r64_imm32.k | 11 +-- .../immediateInstructions/andq_r64_imm8.k | 11 +-- .../immediateInstructions/andq_rax_imm32.k | 11 +-- .../immediateInstructions/andw_ax_imm16.k | 11 +-- .../immediateInstructions/andw_r16_imm16.k | 11 +-- .../immediateInstructions/andw_r16_imm8.k | 11 +-- .../blendpd_xmm_xmm_imm8.k | 5 +- .../blendps_xmm_xmm_imm8.k | 5 +- .../immediateInstructions/btcl_r32_imm8.k | 7 +- .../immediateInstructions/btcq_r64_imm8.k | 7 +- .../immediateInstructions/btcw_r16_imm8.k | 7 +- .../immediateInstructions/btl_r32_imm8.k | 5 +- .../immediateInstructions/btq_r64_imm8.k | 5 +- .../immediateInstructions/btrl_r32_imm8.k | 7 +- .../immediateInstructions/btrq_r64_imm8.k | 7 +- .../immediateInstructions/btrw_r16_imm8.k | 7 +- .../immediateInstructions/btsl_r32_imm8.k | 7 +- .../immediateInstructions/btsq_r64_imm8.k | 7 +- .../immediateInstructions/btsw_r16_imm8.k | 7 +- .../immediateInstructions/btw_r16_imm8.k | 5 +- .../immediateInstructions/cmpb_al_imm8.k | 15 +++-- .../immediateInstructions/cmpb_r8_imm8.k | 15 +++-- .../immediateInstructions/cmpb_rh_imm8.k | 15 +++-- .../immediateInstructions/cmpl_eax_imm32.k | 15 +++-- .../immediateInstructions/cmpl_r32_imm32.k | 15 +++-- .../immediateInstructions/cmpl_r32_imm8.k | 15 +++-- .../cmppd_xmm_xmm_imm8.k | 5 +- .../cmpps_xmm_xmm_imm8.k | 5 +- .../immediateInstructions/cmpq_r64_imm32.k | 15 +++-- .../immediateInstructions/cmpq_r64_imm8.k | 15 +++-- .../immediateInstructions/cmpq_rax_imm32.k | 15 +++-- .../cmpsd_xmm_xmm_imm8.k | 5 +- .../cmpss_xmm_xmm_imm8.k | 5 +- .../immediateInstructions/cmpw_ax_imm16.k | 15 +++-- .../immediateInstructions/cmpw_r16_imm16.k | 15 +++-- .../immediateInstructions/cmpw_r16_imm8.k | 15 +++-- .../immediateInstructions/dppd_xmm_xmm_imm8.k | 5 +- .../immediateInstructions/dpps_xmm_xmm_imm8.k | 5 +- .../extractps_r32_xmm_imm8.k | 5 +- .../extractps_r64_xmm_imm8.k | 5 +- .../imull_r32_r32_imm32.k | 9 +-- .../imull_r32_r32_imm8.k | 9 +-- .../imulq_r64_r64_imm32.k | 9 +-- .../imulq_r64_r64_imm8.k | 9 +-- .../imulw_r16_r16_imm16.k | 9 +-- .../imulw_r16_r16_imm8.k | 9 +-- .../insertps_xmm_xmm_imm8.k | 5 +- .../immediateInstructions/movb_r8_imm8.k | 5 +- .../immediateInstructions/movb_rh_imm8.k | 5 +- .../immediateInstructions/movl_r32_imm32.k | 5 +- .../immediateInstructions/movq_r64_imm32.k | 5 +- .../immediateInstructions/movq_r64_imm64.k | 5 +- .../immediateInstructions/movw_r16_imm16.k | 5 +- .../mpsadbw_xmm_xmm_imm8.k | 33 ++++----- semantics/immediateInstructions/orb_al_imm8.k | 11 +-- semantics/immediateInstructions/orb_r8_imm8.k | 11 +-- semantics/immediateInstructions/orb_rh_imm8.k | 11 +-- .../immediateInstructions/orl_eax_imm32.k | 11 +-- .../immediateInstructions/orl_r32_imm32.k | 11 +-- .../immediateInstructions/orl_r32_imm8.k | 11 +-- .../immediateInstructions/orq_r64_imm32.k | 11 +-- .../immediateInstructions/orq_r64_imm8.k | 11 +-- .../immediateInstructions/orq_rax_imm32.k | 11 +-- .../immediateInstructions/orw_ax_imm16.k | 11 +-- .../immediateInstructions/orw_r16_imm16.k | 11 +-- .../immediateInstructions/orw_r16_imm8.k | 11 +-- .../palignr_xmm_xmm_imm8.k | 5 +- .../pblendw_xmm_xmm_imm8.k | 5 +- .../pclmulqdq_xmm_xmm_imm8.k | 9 ++- .../pcmpestri_xmm_xmm_imm8.k | 9 +-- .../pcmpestrm_xmm_xmm_imm8.k | 9 +-- .../pcmpistri_xmm_xmm_imm8.k | 9 +-- .../pcmpistrm_xmm_xmm_imm8.k | 9 +-- .../pextrb_r32_xmm_imm8.k | 5 +- .../pextrb_r64_xmm_imm8.k | 5 +- .../pextrd_r32_xmm_imm8.k | 5 +- .../pextrq_r64_xmm_imm8.k | 5 +- .../pextrw_r32_xmm_imm8.k | 5 +- .../pextrw_r64_xmm_imm8.k | 5 +- .../pinsrb_xmm_r32_imm8.k | 5 +- .../pinsrd_xmm_r32_imm8.k | 5 +- .../pinsrq_xmm_r64_imm8.k | 5 +- .../pinsrw_xmm_r32_imm8.k | 5 +- .../pshufd_xmm_xmm_imm8.k | 5 +- .../pshufhw_xmm_xmm_imm8.k | 5 +- .../pshuflw_xmm_xmm_imm8.k | 5 +- .../immediateInstructions/pslld_xmm_imm8.k | 5 +- .../immediateInstructions/pslldq_xmm_imm8.k | 5 +- .../immediateInstructions/psllq_xmm_imm8.k | 5 +- .../immediateInstructions/psllw_xmm_imm8.k | 5 +- .../immediateInstructions/psrad_xmm_imm8.k | 5 +- .../immediateInstructions/psraw_xmm_imm8.k | 5 +- .../immediateInstructions/psrld_xmm_imm8.k | 5 +- .../immediateInstructions/psrldq_xmm_imm8.k | 5 +- .../immediateInstructions/psrlq_xmm_imm8.k | 5 +- .../immediateInstructions/psrlw_xmm_imm8.k | 5 +- semantics/immediateInstructions/pushq_imm32.k | 5 +- .../immediateInstructions/rclb_r8_imm8.k | 9 +-- .../immediateInstructions/rclb_rh_imm8.k | 9 +-- .../immediateInstructions/rcll_r32_imm8.k | 9 +-- .../immediateInstructions/rclq_r64_imm8.k | 9 +-- .../immediateInstructions/rclw_r16_imm8.k | 9 +-- .../immediateInstructions/rcrb_r8_imm8.k | 9 +-- .../immediateInstructions/rcrb_rh_imm8.k | 9 +-- .../immediateInstructions/rcrl_r32_imm8.k | 9 +-- .../immediateInstructions/rcrq_r64_imm8.k | 9 +-- .../immediateInstructions/rcrw_r16_imm8.k | 9 +-- .../immediateInstructions/rolb_r8_imm8.k | 9 +-- .../immediateInstructions/rolb_rh_imm8.k | 9 +-- .../immediateInstructions/roll_r32_imm8.k | 9 +-- .../immediateInstructions/rolq_r64_imm8.k | 9 +-- .../immediateInstructions/rolw_r16_imm8.k | 9 +-- .../immediateInstructions/rorb_r8_imm8.k | 9 +-- .../immediateInstructions/rorb_rh_imm8.k | 9 +-- .../immediateInstructions/rorl_r32_imm8.k | 9 +-- .../immediateInstructions/rorq_r64_imm8.k | 9 +-- .../immediateInstructions/rorw_r16_imm8.k | 9 +-- .../rorxl_r32_r32_imm8.k | 7 +- .../rorxq_r64_r64_imm8.k | 7 +- .../roundpd_xmm_xmm_imm8.k | 5 +- .../roundps_xmm_xmm_imm8.k | 5 +- .../roundsd_xmm_xmm_imm8.k | 5 +- .../roundss_xmm_xmm_imm8.k | 5 +- .../immediateInstructions/salb_r8_imm8.k | 17 ++--- .../immediateInstructions/salb_rh_imm8.k | 17 ++--- .../immediateInstructions/sall_r32_imm8.k | 17 ++--- .../immediateInstructions/salq_r64_imm8.k | 17 ++--- .../immediateInstructions/salw_r16_imm8.k | 17 ++--- .../immediateInstructions/sarb_r8_imm8.k | 17 ++--- .../immediateInstructions/sarb_rh_imm8.k | 17 ++--- .../immediateInstructions/sarl_r32_imm8.k | 17 ++--- .../immediateInstructions/sarq_r64_imm8.k | 17 ++--- .../immediateInstructions/sarw_r16_imm8.k | 17 ++--- .../immediateInstructions/sbbb_al_imm8.k | 17 ++--- .../immediateInstructions/sbbb_r8_imm8.k | 17 ++--- .../immediateInstructions/sbbb_rh_imm8.k | 17 ++--- .../immediateInstructions/sbbl_eax_imm32.k | 17 ++--- .../immediateInstructions/sbbl_r32_imm32.k | 17 ++--- .../immediateInstructions/sbbl_r32_imm8.k | 17 ++--- .../immediateInstructions/sbbq_r64_imm32.k | 17 ++--- .../immediateInstructions/sbbq_r64_imm8.k | 17 ++--- .../immediateInstructions/sbbq_rax_imm32.k | 17 ++--- .../immediateInstructions/sbbw_ax_imm16.k | 17 ++--- .../immediateInstructions/sbbw_r16_imm16.k | 17 ++--- .../immediateInstructions/sbbw_r16_imm8.k | 17 ++--- .../immediateInstructions/shlb_r8_imm8.k | 17 ++--- .../immediateInstructions/shlb_rh_imm8.k | 17 ++--- .../shldl_r32_r32_imm8.k | 5 +- .../shldq_r64_r64_imm8.k | 5 +- .../shldw_r16_r16_imm8.k | 5 +- .../immediateInstructions/shll_r32_imm8.k | 17 ++--- .../immediateInstructions/shlq_r64_imm8.k | 17 ++--- .../immediateInstructions/shlw_r16_imm8.k | 17 ++--- .../immediateInstructions/shrb_r8_imm8.k | 17 ++--- .../immediateInstructions/shrb_rh_imm8.k | 17 ++--- .../shrdl_r32_r32_imm8.k | 5 +- .../shrdq_r64_r64_imm8.k | 5 +- .../shrdw_r16_r16_imm8.k | 5 +- .../immediateInstructions/shrl_r32_imm8.k | 17 ++--- .../immediateInstructions/shrq_r64_imm8.k | 17 ++--- .../immediateInstructions/shrw_r16_imm8.k | 17 ++--- .../shufpd_xmm_xmm_imm8.k | 5 +- .../shufps_xmm_xmm_imm8.k | 5 +- .../immediateInstructions/subb_al_imm8.k | 17 ++--- .../immediateInstructions/subb_r8_imm8.k | 17 ++--- .../immediateInstructions/subb_rh_imm8.k | 17 ++--- .../immediateInstructions/subl_eax_imm32.k | 17 ++--- .../immediateInstructions/subl_r32_imm32.k | 17 ++--- .../immediateInstructions/subl_r32_imm8.k | 17 ++--- .../immediateInstructions/subq_r64_imm32.k | 17 ++--- .../immediateInstructions/subq_r64_imm8.k | 17 ++--- .../immediateInstructions/subq_rax_imm32.k | 17 ++--- .../immediateInstructions/subw_ax_imm16.k | 17 ++--- .../immediateInstructions/subw_r16_imm16.k | 17 ++--- .../immediateInstructions/subw_r16_imm8.k | 17 ++--- .../immediateInstructions/testb_al_imm8.k | 9 +-- .../immediateInstructions/testb_r8_imm8.k | 9 +-- .../immediateInstructions/testb_rh_imm8.k | 9 +-- .../immediateInstructions/testl_eax_imm32.k | 9 +-- .../immediateInstructions/testl_r32_imm32.k | 9 +-- .../immediateInstructions/testq_r64_imm32.k | 9 +-- .../immediateInstructions/testq_rax_imm32.k | 9 +-- .../immediateInstructions/testw_ax_imm16.k | 9 +-- .../immediateInstructions/testw_r16_imm16.k | 9 +-- .../vblendpd_xmm_xmm_xmm_imm8.k | 5 +- .../vblendpd_ymm_ymm_ymm_imm8.k | 5 +- .../vblendps_xmm_xmm_xmm_imm8.k | 5 +- .../vblendps_ymm_ymm_ymm_imm8.k | 5 +- .../vcmppd_xmm_xmm_xmm_imm8.k | 5 +- .../vcmppd_ymm_ymm_ymm_imm8.k | 5 +- .../vcmpps_xmm_xmm_xmm_imm8.k | 5 +- .../vcmpps_ymm_ymm_ymm_imm8.k | 5 +- .../vcmpsd_xmm_xmm_xmm_imm8.k | 5 +- .../vcmpss_xmm_xmm_xmm_imm8.k | 5 +- .../vcvtps2ph_xmm_xmm_imm8.k | 5 +- .../vcvtps2ph_xmm_ymm_imm8.k | 5 +- .../vdppd_xmm_xmm_xmm_imm8.k | 5 +- .../vdpps_xmm_xmm_xmm_imm8.k | 5 +- .../vdpps_ymm_ymm_ymm_imm8.k | 5 +- .../vextractf128_xmm_ymm_imm8.k | 5 +- .../vextracti128_xmm_ymm_imm8.k | 5 +- .../vextractps_r32_xmm_imm8.k | 5 +- .../vinsertf128_ymm_ymm_xmm_imm8.k | 5 +- .../vinserti128_ymm_ymm_xmm_imm8.k | 5 +- .../vinsertps_xmm_xmm_xmm_imm8.k | 5 +- .../vmpsadbw_xmm_xmm_xmm_imm8.k | 33 ++++----- .../vmpsadbw_ymm_ymm_ymm_imm8.k | 63 +++++++++--------- .../vpalignr_xmm_xmm_xmm_imm8.k | 5 +- .../vpalignr_ymm_ymm_ymm_imm8.k | 5 +- .../vpblendd_xmm_xmm_xmm_imm8.k | 5 +- .../vpblendd_ymm_ymm_ymm_imm8.k | 5 +- .../vpblendw_xmm_xmm_xmm_imm8.k | 5 +- .../vpblendw_ymm_ymm_ymm_imm8.k | 5 +- .../vpclmulqdq_xmm_xmm_xmm_imm8.k | 9 ++- .../vpcmpestri_xmm_xmm_imm8.k | 9 +-- .../vpcmpestrm_xmm_xmm_imm8.k | 9 +-- .../vpcmpistri_xmm_xmm_imm8.k | 9 +-- .../vpcmpistrm_xmm_xmm_imm8.k | 9 +-- .../vperm2f128_ymm_ymm_ymm_imm8.k | 5 +- .../vperm2i128_ymm_ymm_ymm_imm8.k | 5 +- .../vpermilpd_xmm_xmm_imm8.k | 5 +- .../vpermilpd_ymm_ymm_imm8.k | 5 +- .../vpermilps_xmm_xmm_imm8.k | 5 +- .../vpermilps_ymm_ymm_imm8.k | 5 +- .../vpermpd_ymm_ymm_imm8.k | 5 +- .../vpermq_ymm_ymm_imm8.k | 5 +- .../vpextrb_r32_xmm_imm8.k | 5 +- .../vpextrb_r64_xmm_imm8.k | 5 +- .../vpextrd_r32_xmm_imm8.k | 5 +- .../vpextrq_r64_xmm_imm8.k | 5 +- .../vpextrw_r32_xmm_imm8.k | 5 +- .../vpextrw_r64_xmm_imm8.k | 5 +- .../vpinsrb_xmm_xmm_r32_imm8.k | 5 +- .../vpinsrd_xmm_xmm_r32_imm8.k | 5 +- .../vpinsrq_xmm_xmm_r64_imm8.k | 5 +- .../vpinsrw_xmm_xmm_r32_imm8.k | 5 +- .../vpshufd_xmm_xmm_imm8.k | 5 +- .../vpshufd_ymm_ymm_imm8.k | 5 +- .../vpshufhw_xmm_xmm_imm8.k | 5 +- .../vpshufhw_ymm_ymm_imm8.k | 5 +- .../vpshuflw_xmm_xmm_imm8.k | 5 +- .../vpshuflw_ymm_ymm_imm8.k | 5 +- .../vpslld_xmm_xmm_imm8.k | 5 +- .../vpslld_ymm_ymm_imm8.k | 5 +- .../vpslldq_xmm_xmm_imm8.k | 5 +- .../vpslldq_ymm_ymm_imm8.k | 5 +- .../vpsllq_xmm_xmm_imm8.k | 5 +- .../vpsllq_ymm_ymm_imm8.k | 5 +- .../vpsllw_xmm_xmm_imm8.k | 5 +- .../vpsllw_ymm_ymm_imm8.k | 5 +- .../vpsrad_xmm_xmm_imm8.k | 5 +- .../vpsrad_ymm_ymm_imm8.k | 5 +- .../vpsraw_xmm_xmm_imm8.k | 5 +- .../vpsraw_ymm_ymm_imm8.k | 5 +- .../vpsrld_xmm_xmm_imm8.k | 5 +- .../vpsrld_ymm_ymm_imm8.k | 5 +- .../vpsrldq_xmm_xmm_imm8.k | 5 +- .../vpsrldq_ymm_ymm_imm8.k | 5 +- .../vpsrlq_xmm_xmm_imm8.k | 5 +- .../vpsrlq_ymm_ymm_imm8.k | 5 +- .../vpsrlw_xmm_xmm_imm8.k | 5 +- .../vpsrlw_ymm_ymm_imm8.k | 5 +- .../vroundpd_xmm_xmm_imm8.k | 5 +- .../vroundpd_ymm_ymm_imm8.k | 5 +- .../vroundps_xmm_xmm_imm8.k | 5 +- .../vroundps_ymm_ymm_imm8.k | 5 +- .../vroundsd_xmm_xmm_xmm_imm8.k | 5 +- .../vroundss_xmm_xmm_xmm_imm8.k | 5 +- .../vshufpd_xmm_xmm_xmm_imm8.k | 5 +- .../vshufpd_ymm_ymm_ymm_imm8.k | 5 +- .../vshufps_xmm_xmm_xmm_imm8.k | 5 +- .../vshufps_ymm_ymm_ymm_imm8.k | 5 +- .../immediateInstructions/xorb_al_imm8.k | 11 +-- .../immediateInstructions/xorb_r8_imm8.k | 11 +-- .../immediateInstructions/xorb_rh_imm8.k | 11 +-- .../immediateInstructions/xorl_eax_imm32.k | 11 +-- .../immediateInstructions/xorl_r32_imm32.k | 11 +-- .../immediateInstructions/xorl_r32_imm8.k | 11 +-- .../immediateInstructions/xorq_r64_imm32.k | 11 +-- .../immediateInstructions/xorq_r64_imm8.k | 11 +-- .../immediateInstructions/xorq_rax_imm32.k | 11 +-- .../immediateInstructions/xorw_ax_imm16.k | 11 +-- .../immediateInstructions/xorw_r16_imm16.k | 11 +-- .../immediateInstructions/xorw_r16_imm8.k | 11 +-- semantics/memoryInstructions/adcb_m8_imm8.k | 22 +++--- semantics/memoryInstructions/adcl_m32_imm32.k | 22 +++--- semantics/memoryInstructions/adcl_m32_imm8.k | 22 +++--- semantics/memoryInstructions/adcq_m64_imm32.k | 22 +++--- semantics/memoryInstructions/adcq_m64_imm8.k | 22 +++--- semantics/memoryInstructions/adcw_m16_imm16.k | 22 +++--- semantics/memoryInstructions/adcw_m16_imm8.k | 22 +++--- semantics/memoryInstructions/addb_m8_imm8.k | 22 +++--- semantics/memoryInstructions/addl_m32_imm32.k | 22 +++--- semantics/memoryInstructions/addl_m32_imm8.k | 22 +++--- semantics/memoryInstructions/addq_m64_imm32.k | 22 +++--- semantics/memoryInstructions/addq_m64_imm8.k | 22 +++--- semantics/memoryInstructions/addw_m16_imm16.k | 22 +++--- semantics/memoryInstructions/addw_m16_imm8.k | 22 +++--- semantics/memoryInstructions/andb_m8_imm8.k | 16 +++-- semantics/memoryInstructions/andl_m32_imm32.k | 16 +++-- semantics/memoryInstructions/andl_m32_imm8.k | 16 +++-- semantics/memoryInstructions/andq_m64_imm32.k | 16 +++-- semantics/memoryInstructions/andq_m64_imm8.k | 16 +++-- semantics/memoryInstructions/andw_m16_imm16.k | 16 +++-- semantics/memoryInstructions/andw_m16_imm8.k | 16 +++-- .../blendpd_xmm_m128_imm8.k | 10 +-- .../blendps_xmm_m128_imm8.k | 10 +-- semantics/memoryInstructions/btcl_m32_imm8.k | 16 +++-- semantics/memoryInstructions/btcq_m64_imm8.k | 16 +++-- semantics/memoryInstructions/btcw_m16_imm8.k | 16 +++-- semantics/memoryInstructions/btl_m32_imm8.k | 12 ++-- semantics/memoryInstructions/btq_m64_imm8.k | 12 ++-- semantics/memoryInstructions/btrl_m32_imm8.k | 16 +++-- semantics/memoryInstructions/btrq_m64_imm8.k | 16 +++-- semantics/memoryInstructions/btrw_m16_imm8.k | 16 +++-- semantics/memoryInstructions/btsl_m32_imm8.k | 16 +++-- semantics/memoryInstructions/btsq_m64_imm8.k | 16 +++-- semantics/memoryInstructions/btsw_m16_imm8.k | 16 +++-- semantics/memoryInstructions/btw_m16_imm8.k | 12 ++-- semantics/memoryInstructions/cmpb_m8_imm8.k | 20 +++--- semantics/memoryInstructions/cmpl_m32_imm32.k | 20 +++--- semantics/memoryInstructions/cmpl_m32_imm8.k | 20 +++--- .../memoryInstructions/cmppd_xmm_m128_imm8.k | 10 +-- .../memoryInstructions/cmpps_xmm_m128_imm8.k | 10 +-- semantics/memoryInstructions/cmpq_m64_imm32.k | 20 +++--- semantics/memoryInstructions/cmpq_m64_imm8.k | 20 +++--- .../memoryInstructions/cmpsd_xmm_m64_imm8.k | 10 +-- .../memoryInstructions/cmpss_xmm_m32_imm8.k | 10 +-- semantics/memoryInstructions/cmpw_m16_imm16.k | 20 +++--- semantics/memoryInstructions/cmpw_m16_imm8.k | 20 +++--- .../memoryInstructions/dppd_xmm_m128_imm8.k | 10 +-- .../memoryInstructions/dpps_xmm_m128_imm8.k | 10 +-- .../extractps_m32_xmm_imm8.k | 10 +-- .../memoryInstructions/imull_r32_m32_imm32.k | 14 ++-- .../memoryInstructions/imull_r32_m32_imm8.k | 14 ++-- .../memoryInstructions/imulq_r64_m64_imm32.k | 14 ++-- .../memoryInstructions/imulq_r64_m64_imm8.k | 14 ++-- .../memoryInstructions/imulw_r16_m16_imm16.k | 14 ++-- .../memoryInstructions/imulw_r16_m16_imm8.k | 14 ++-- .../insertps_xmm_m32_imm8.k | 10 +-- semantics/memoryInstructions/movb_m8_imm8.k | 7 +- semantics/memoryInstructions/movl_m32_imm32.k | 7 +- semantics/memoryInstructions/movq_m64_imm32.k | 7 +- semantics/memoryInstructions/movw_m16_imm16.k | 7 +- .../mpsadbw_xmm_m128_imm8.k | 33 ++++----- semantics/memoryInstructions/orb_m8_imm8.k | 16 +++-- semantics/memoryInstructions/orl_m32_imm32.k | 16 +++-- semantics/memoryInstructions/orl_m32_imm8.k | 16 +++-- semantics/memoryInstructions/orq_m64_imm32.k | 16 +++-- semantics/memoryInstructions/orq_m64_imm8.k | 16 +++-- semantics/memoryInstructions/orw_m16_imm16.k | 16 +++-- semantics/memoryInstructions/orw_m16_imm8.k | 16 +++-- .../palignr_xmm_m128_imm8.k | 10 +-- .../pblendw_xmm_m128_imm8.k | 10 +-- .../pclmulqdq_xmm_m128_imm8.k | 9 ++- .../pcmpestri_xmm_m128_imm8.k | 15 +++-- .../pcmpestrm_xmm_m128_imm8.k | 13 ++-- .../pcmpistri_xmm_m128_imm8.k | 15 +++-- .../pcmpistrm_xmm_m128_imm8.k | 14 ++-- .../memoryInstructions/pextrb_m8_xmm_imm8.k | 10 +-- .../memoryInstructions/pextrd_m32_xmm_imm8.k | 10 +-- .../memoryInstructions/pextrq_m64_xmm_imm8.k | 10 +-- .../memoryInstructions/pextrw_m16_xmm_imm8.k | 10 +-- .../memoryInstructions/pinsrb_xmm_m8_imm8.k | 10 +-- .../memoryInstructions/pinsrd_xmm_m32_imm8.k | 10 +-- .../memoryInstructions/pinsrq_xmm_m64_imm8.k | 10 +-- .../memoryInstructions/pinsrw_xmm_m16_imm8.k | 10 +-- .../memoryInstructions/pshufd_xmm_m128_imm8.k | 10 +-- .../pshufhw_xmm_m128_imm8.k | 10 +-- .../pshuflw_xmm_m128_imm8.k | 10 +-- semantics/memoryInstructions/rclb_m8_imm8.k | 14 ++-- semantics/memoryInstructions/rcll_m32_imm8.k | 14 ++-- semantics/memoryInstructions/rclq_m64_imm8.k | 14 ++-- semantics/memoryInstructions/rclw_m16_imm8.k | 14 ++-- semantics/memoryInstructions/rcrb_m8_imm8.k | 14 ++-- semantics/memoryInstructions/rcrl_m32_imm8.k | 14 ++-- semantics/memoryInstructions/rcrq_m64_imm8.k | 14 ++-- semantics/memoryInstructions/rcrw_m16_imm8.k | 14 ++-- semantics/memoryInstructions/rolb_m8_imm8.k | 14 ++-- semantics/memoryInstructions/roll_m32_imm8.k | 14 ++-- semantics/memoryInstructions/rolq_m64_imm8.k | 14 ++-- semantics/memoryInstructions/rolw_m16_imm8.k | 14 ++-- semantics/memoryInstructions/rorb_m8_imm8.k | 14 ++-- semantics/memoryInstructions/rorl_m32_imm8.k | 14 ++-- semantics/memoryInstructions/rorq_m64_imm8.k | 14 ++-- semantics/memoryInstructions/rorw_m16_imm8.k | 14 ++-- .../memoryInstructions/rorxl_r32_m32_imm8.k | 12 ++-- .../memoryInstructions/rorxq_r64_m64_imm8.k | 12 ++-- .../roundpd_xmm_m128_imm8.k | 10 +-- .../roundps_xmm_m128_imm8.k | 10 +-- .../memoryInstructions/roundsd_xmm_m64_imm8.k | 10 +-- .../memoryInstructions/roundss_xmm_m32_imm8.k | 10 +-- semantics/memoryInstructions/salb_m8_imm8.k | 22 +++--- semantics/memoryInstructions/sall_m32_imm8.k | 22 +++--- semantics/memoryInstructions/salq_m64_imm8.k | 22 +++--- semantics/memoryInstructions/salw_m16_imm8.k | 22 +++--- semantics/memoryInstructions/sarb_m8_imm8.k | 22 +++--- semantics/memoryInstructions/sarl_m32_imm8.k | 22 +++--- semantics/memoryInstructions/sarq_m64_imm8.k | 22 +++--- semantics/memoryInstructions/sarw_m16_imm8.k | 22 +++--- semantics/memoryInstructions/sbbb_m8_imm8.k | 22 +++--- semantics/memoryInstructions/sbbl_m32_imm32.k | 22 +++--- semantics/memoryInstructions/sbbl_m32_imm8.k | 22 +++--- semantics/memoryInstructions/sbbq_m64_imm32.k | 22 +++--- semantics/memoryInstructions/sbbq_m64_imm8.k | 22 +++--- semantics/memoryInstructions/sbbw_m16_imm16.k | 22 +++--- semantics/memoryInstructions/sbbw_m16_imm8.k | 22 +++--- semantics/memoryInstructions/shlb_m8_imm8.k | 22 +++--- .../memoryInstructions/shldl_m32_r32_imm8.k | 12 ++-- .../memoryInstructions/shldq_m64_r64_imm8.k | 12 ++-- .../memoryInstructions/shldw_m16_r16_imm8.k | 12 ++-- semantics/memoryInstructions/shll_m32_imm8.k | 22 +++--- semantics/memoryInstructions/shlq_m64_imm8.k | 22 +++--- semantics/memoryInstructions/shlw_m16_imm8.k | 22 +++--- semantics/memoryInstructions/shrb_m8_imm8.k | 22 +++--- .../memoryInstructions/shrdl_m32_r32_imm8.k | 12 ++-- .../memoryInstructions/shrdq_m64_r64_imm8.k | 12 ++-- .../memoryInstructions/shrdw_m16_r16_imm8.k | 12 ++-- semantics/memoryInstructions/shrl_m32_imm8.k | 22 +++--- semantics/memoryInstructions/shrq_m64_imm8.k | 22 +++--- semantics/memoryInstructions/shrw_m16_imm8.k | 22 +++--- .../memoryInstructions/shufpd_xmm_m128_imm8.k | 10 +-- .../memoryInstructions/shufps_xmm_m128_imm8.k | 10 +-- semantics/memoryInstructions/subb_m8_imm8.k | 22 +++--- semantics/memoryInstructions/subl_m32_imm32.k | 22 +++--- semantics/memoryInstructions/subl_m32_imm8.k | 22 +++--- semantics/memoryInstructions/subq_m64_imm32.k | 22 +++--- semantics/memoryInstructions/subq_m64_imm8.k | 22 +++--- semantics/memoryInstructions/subw_m16_imm16.k | 22 +++--- semantics/memoryInstructions/subw_m16_imm8.k | 22 +++--- semantics/memoryInstructions/testb_m8_imm8.k | 14 ++-- .../memoryInstructions/testl_m32_imm32.k | 14 ++-- .../memoryInstructions/testq_m64_imm32.k | 14 ++-- .../memoryInstructions/testw_m16_imm16.k | 14 ++-- .../vblendpd_xmm_xmm_m128_imm8.k | 10 +-- .../vblendpd_ymm_ymm_m256_imm8.k | 10 +-- .../vblendps_xmm_xmm_m128_imm8.k | 10 +-- .../vblendps_ymm_ymm_m256_imm8.k | 10 +-- .../vcmppd_xmm_xmm_m128_imm8.k | 10 +-- .../vcmppd_ymm_ymm_m256_imm8.k | 10 +-- .../vcmpps_xmm_xmm_m128_imm8.k | 10 +-- .../vcmpps_ymm_ymm_m256_imm8.k | 10 +-- .../vcmpsd_xmm_xmm_m64_imm8.k | 10 +-- .../vcmpss_xmm_xmm_m32_imm8.k | 10 +-- .../vcvtps2ph_m128_ymm_imm8.k | 10 +-- .../vcvtps2ph_m64_xmm_imm8.k | 10 +-- .../vdppd_xmm_xmm_m128_imm8.k | 10 +-- .../vdpps_xmm_xmm_m128_imm8.k | 10 +-- .../vdpps_ymm_ymm_m256_imm8.k | 10 +-- .../vextractf128_m128_ymm_imm8.k | 10 +-- .../vextracti128_m128_ymm_imm8.k | 10 +-- .../vextractps_m32_xmm_imm8.k | 10 +-- .../vinsertf128_ymm_ymm_m128_imm8.k | 10 +-- .../vinserti128_ymm_ymm_m128_imm8.k | 10 +-- .../vinsertps_xmm_xmm_m32_imm8.k | 10 +-- .../vmpsadbw_xmm_xmm_m128_imm8.k | 33 ++++----- .../vmpsadbw_ymm_ymm_m256_imm8.k | 63 +++++++++--------- .../vpalignr_xmm_xmm_m128_imm8.k | 10 +-- .../vpalignr_ymm_ymm_m256_imm8.k | 10 +-- .../vpblendd_xmm_xmm_m128_imm8.k | 10 +-- .../vpblendd_ymm_ymm_m256_imm8.k | 10 +-- .../vpblendw_xmm_xmm_m128_imm8.k | 10 +-- .../vpblendw_ymm_ymm_m256_imm8.k | 10 +-- .../vpclmulqdq_xmm_xmm_m128_imm8.k | 9 ++- .../vpcmpestri_xmm_m128_imm8.k | 15 +++-- .../vpcmpestrm_xmm_m128_imm8.k | 13 ++-- .../vpcmpistri_xmm_m128_imm8.k | 15 +++-- .../vpcmpistrm_xmm_m128_imm8.k | 14 ++-- .../vperm2f128_ymm_ymm_m256_imm8.k | 10 +-- .../vperm2i128_ymm_ymm_m256_imm8.k | 10 +-- .../vpermilpd_xmm_m128_imm8.k | 10 +-- .../vpermilpd_ymm_m256_imm8.k | 10 +-- .../vpermilps_xmm_m128_imm8.k | 10 +-- .../vpermilps_ymm_m256_imm8.k | 10 +-- .../vpermpd_ymm_m256_imm8.k | 10 +-- .../memoryInstructions/vpermq_ymm_m256_imm8.k | 10 +-- .../memoryInstructions/vpextrb_m8_xmm_imm8.k | 10 +-- .../memoryInstructions/vpextrd_m32_xmm_imm8.k | 10 +-- .../memoryInstructions/vpextrq_m64_xmm_imm8.k | 10 +-- .../memoryInstructions/vpextrw_m16_xmm_imm8.k | 10 +-- .../vpinsrb_xmm_xmm_m8_imm8.k | 10 +-- .../vpinsrd_xmm_xmm_m32_imm8.k | 10 +-- .../vpinsrq_xmm_xmm_m64_imm8.k | 10 +-- .../vpinsrw_xmm_xmm_m16_imm8.k | 10 +-- .../vpshufd_xmm_m128_imm8.k | 10 +-- .../vpshufd_ymm_m256_imm8.k | 10 +-- .../vpshufhw_xmm_m128_imm8.k | 10 +-- .../vpshufhw_ymm_m256_imm8.k | 10 +-- .../vpshuflw_xmm_m128_imm8.k | 10 +-- .../vpshuflw_ymm_m256_imm8.k | 10 +-- .../vroundpd_xmm_m128_imm8.k | 10 +-- .../vroundpd_ymm_m256_imm8.k | 10 +-- .../vroundps_xmm_m128_imm8.k | 10 +-- .../vroundps_ymm_m256_imm8.k | 10 +-- .../vroundsd_xmm_xmm_m64_imm8.k | 10 +-- .../vroundss_xmm_xmm_m32_imm8.k | 10 +-- .../vshufpd_xmm_xmm_m128_imm8.k | 10 +-- .../vshufpd_ymm_ymm_m256_imm8.k | 10 +-- .../vshufps_xmm_xmm_m128_imm8.k | 10 +-- .../vshufps_ymm_ymm_m256_imm8.k | 10 +-- semantics/memoryInstructions/xorb_m8_imm8.k | 16 +++-- semantics/memoryInstructions/xorl_m32_imm32.k | 16 +++-- semantics/memoryInstructions/xorl_m32_imm8.k | 16 +++-- semantics/memoryInstructions/xorq_m64_imm32.k | 16 +++-- semantics/memoryInstructions/xorq_m64_imm8.k | 16 +++-- semantics/memoryInstructions/xorw_m16_imm16.k | 16 +++-- semantics/memoryInstructions/xorw_m16_imm8.k | 16 +++-- semantics/registerInstructions/pushq_imm32.k | 22 ------ semantics/registerInstructions/roll_r32_one.k | 39 ++++------- semantics/run-on-elf.py | 2 +- semantics/systemInstructions/callq_rel32.k | 12 ++-- semantics/systemInstructions/ja_rel32.k | 13 +++- semantics/systemInstructions/ja_rel8.k | 17 ++--- semantics/systemInstructions/jae_rel32.k | 12 ++-- semantics/systemInstructions/jae_rel8.k | 12 ++-- semantics/systemInstructions/jb_rel32.k | 12 ++-- semantics/systemInstructions/jb_rel8.k | 12 ++-- semantics/systemInstructions/jbe_rel32.k | 16 +++-- semantics/systemInstructions/jbe_rel8.k | 16 +++-- semantics/systemInstructions/jc_rel32.k | 12 ++-- semantics/systemInstructions/jc_rel8.k | 12 ++-- semantics/systemInstructions/je_rel32.k | 12 ++-- semantics/systemInstructions/je_rel8.k | 12 ++-- semantics/systemInstructions/jecxz_rel8.k | 12 ++-- semantics/systemInstructions/jg_rel32.k | 16 +++-- semantics/systemInstructions/jg_rel8.k | 16 +++-- semantics/systemInstructions/jge_rel32.k | 12 ++-- semantics/systemInstructions/jge_rel8.k | 12 ++-- semantics/systemInstructions/jl_rel32.k | 12 ++-- semantics/systemInstructions/jl_rel8.k | 12 ++-- semantics/systemInstructions/jle_rel32.k | 16 +++-- semantics/systemInstructions/jle_rel8.k | 16 +++-- semantics/systemInstructions/jmp_rel32.k | 5 +- semantics/systemInstructions/jmp_rel8.k | 5 +- semantics/systemInstructions/jna_rel32.k | 14 ++-- semantics/systemInstructions/jna_rel8.k | 14 ++-- semantics/systemInstructions/jnae_rel32.k | 12 ++-- semantics/systemInstructions/jnae_rel8.k | 12 ++-- semantics/systemInstructions/jnb_rel32.k | 12 ++-- semantics/systemInstructions/jnb_rel8.k | 12 ++-- semantics/systemInstructions/jnbe_rel32.k | 16 +++-- semantics/systemInstructions/jnbe_rel8.k | 16 +++-- semantics/systemInstructions/jnc_rel32.k | 12 ++-- semantics/systemInstructions/jnc_rel8.k | 12 ++-- semantics/systemInstructions/jne_rel32.k | 12 ++-- semantics/systemInstructions/jne_rel8.k | 12 ++-- semantics/systemInstructions/jng_rel32.k | 12 ++-- semantics/systemInstructions/jng_rel8.k | 12 ++-- semantics/systemInstructions/jnge_rel32.k | 12 ++-- semantics/systemInstructions/jnge_rel8.k | 12 ++-- semantics/systemInstructions/jnl_rel32.k | 12 ++-- semantics/systemInstructions/jnl_rel8.k | 12 ++-- semantics/systemInstructions/jnle_rel32.k | 12 ++-- semantics/systemInstructions/jnle_rel8.k | 12 ++-- semantics/systemInstructions/jno_rel32.k | 12 ++-- semantics/systemInstructions/jno_rel8.k | 12 ++-- semantics/systemInstructions/jnp_rel32.k | 12 ++-- semantics/systemInstructions/jnp_rel8.k | 12 ++-- semantics/systemInstructions/jns_rel32.k | 12 ++-- semantics/systemInstructions/jns_rel8.k | 12 ++-- semantics/systemInstructions/jnz_rel32.k | 12 ++-- semantics/systemInstructions/jnz_rel8.k | 12 ++-- semantics/systemInstructions/jo_rel32.k | 12 ++-- semantics/systemInstructions/jo_rel8.k | 12 ++-- semantics/systemInstructions/jp_rel32.k | 12 ++-- semantics/systemInstructions/jp_rel8.k | 12 ++-- semantics/systemInstructions/jpe_rel32.k | 12 ++-- semantics/systemInstructions/jpe_rel8.k | 12 ++-- semantics/systemInstructions/jpo_rel32.k | 12 ++-- semantics/systemInstructions/jpo_rel8.k | 12 ++-- semantics/systemInstructions/jrcxz_rel8.k | 12 ++-- semantics/systemInstructions/js_rel32.k | 12 ++-- semantics/systemInstructions/js_rel8.k | 12 ++-- semantics/systemInstructions/jz_rel32.k | 12 ++-- semantics/systemInstructions/jz_rel8.k | 12 ++-- semantics/systemInstructions/leaveq.k | 2 +- semantics/systemInstructions/loop_rel8.k | 15 +++-- semantics/systemInstructions/loope_rel8.k | 19 +++--- semantics/systemInstructions/loopne_rel8.k | 19 +++--- semantics/systemInstructions/loopnz_rel8.k | 19 +++--- semantics/systemInstructions/loopz_rel8.k | 19 +++--- semantics/test.c | 6 +- semantics/x86-abstract-semantics.k | 61 +++++++++-------- semantics/x86-syntax.k | 1 + 619 files changed, 4136 insertions(+), 3257 deletions(-) create mode 100644 docs/z3_artifcats/array2.z3 create mode 100644 docs/z3_artifcats/datatypes.z3 create mode 100755 semantics/a.out delete mode 100644 semantics/registerInstructions/pushq_imm32.k diff --git a/docs/z3_artifcats/array2.z3 b/docs/z3_artifcats/array2.z3 new file mode 100644 index 000000000..ce19c7f46 --- /dev/null +++ b/docs/z3_artifcats/array2.z3 @@ -0,0 +1,11 @@ +(declare-const x Int) +(declare-const y Int) +(declare-const z Int) +(declare-const a1 (Array Int Int)) +(declare-const a2 (Array Int Int)) +(declare-const a3 (Array Int Int)) +(assert (= (select a1 x) x)) +(assert (= (store a1 x y) a1)) +(assert (not (= x y))) +(check-sat) +(get-model) diff --git a/docs/z3_artifcats/datatypes.z3 b/docs/z3_artifcats/datatypes.z3 new file mode 100644 index 000000000..2792deac9 --- /dev/null +++ b/docs/z3_artifcats/datatypes.z3 @@ -0,0 +1,7 @@ +(declare-datatypes (T1 T2) ((Pair (mk-pair (first T1) (second T2))))) +(declare-const p1 (Pair Int Int)) +(declare-const p2 (Pair Int Int)) +(assert (= p1 p2)) +(assert (> (second p1) 20)) +(check-sat) +(get-model) diff --git a/semantics/a.out b/semantics/a.out new file mode 100755 index 0000000000000000000000000000000000000000..e6531ce61e20dde0d4a5563c02db386c1c7de269 GIT binary patch literal 912816 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

  • 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 z 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